{"version":3,"sources":["../public/Common/scripts/interior/initialize.js","../public/Common/scripts/interior/libs/flickity/2.2.2/flickity.pkgd.js","../public/Common/scripts/interior/fixGalleryInAccordion.js","../public/Common/scripts/interior/iframe.js","../public/Common/scripts/interior/textSize.js","../public/Common/scripts/interior/toggleContent.js","../public/Common/scripts/interior/layoutBuilder.js","../public/Common/scripts/interior/responsiveScripts.js","../public/Common/scripts/interior/share.js","../public/Common/scripts/interior/subNav.js"],"names":["window","factory","define","amd","jQuery","module","exports","require","jQueryBridget","arraySlice","Array","prototype","slice","console","logError","message","error","namespace","PluginClass","$","methodCall","$elems","methodName","args","returnValue","pluginMethodStr","each","i","elem","instance","data","method","charAt","value","apply","undefined","plainCall","options","option","_init","opts","isPlainObject","this","extend","fn","arg0","call","arguments","updateJQuery","bridget","global","EvEmitter","proto","on","eventName","listener","events","_events","listeners","indexOf","push","once","onceEvents","_onceEvents","off","length","index","splice","emitEvent","onceListeners","allOff","getSize","getStyleSize","num","parseFloat","isNaN","measurements","measurementsLength","getStyle","style","getComputedStyle","isBoxSizeOuter","isSetup","div","document","createElement","width","padding","borderStyle","borderWidth","boxSizing","body","documentElement","appendChild","Math","round","removeChild","setup","querySelector","nodeType","display","size","height","innerWidth","innerHeight","outerWidth","outerHeight","getZeroSize","offsetWidth","offsetHeight","isBorderBox","measurement","paddingWidth","paddingLeft","paddingRight","paddingHeight","paddingTop","paddingBottom","marginWidth","marginLeft","marginRight","marginHeight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderHeight","borderTopWidth","borderBottomWidth","isBorderBoxSizeOuter","styleWidth","styleHeight","matchesSelector","matchesMethod","ElemProto","Element","matches","prefixes","selector","fizzyUIUtils","utils","a","b","prop","makeArray","obj","isArray","removeFrom","ary","getParent","parentNode","getQueryElement","handleEvent","event","type","filterFindElements","elems","ffElems","forEach","HTMLElement","childElems","querySelectorAll","debounceMethod","_class","threshold","timeoutName","timeout","clearTimeout","_this","setTimeout","docReady","callback","readyState","addEventListener","toDashed","str","replace","match","$1","$2","toLowerCase","htmlInit","WidgetClass","dashedNamespace","dataAttr","dataAttrElems","jsDashElems","concat","dataOptionsAttr","attr","getAttribute","JSON","parse","className","Flickity","Cell","parent","element","create","position","setAttribute","x","shift","destroy","unselect","side","originSide","removeAttribute","setPosition","updateTarget","renderPosition","setDefaultTarget","marginProperty","target","cellAlign","getPositionValue","select","classList","add","remove","wrapShift","slideableWidth","Slide","isOriginLeft","cells","addCell","cell","max","beginMargin","firstMargin","endMargin","lastCell","getLastCell","lastMargin","slideWidth","getCellElements","map","animatePrototype","isAnimating","restingFrames","animate","applyDragForce","applySelectedAttraction","previousX","integratePhysics","positionSlider","settle","requestAnimationFrame","wrapAround","modulo","shiftWrapCells","setTranslateX","dispatchScrollEvent","is3d","cursorPosition","rightToLeft","translateX","slider","transform","firstSlide","slides","positionX","progress","slidesWidth","dispatchEvent","selectedSlide","velocity","percentPosition","isPointerDown","isFreeScrolling","selectedIndex","beforeGap","_shiftCells","beforeShiftCells","afterGap","afterShiftCells","gap","cellShift","getFrictionFactor","force","isDraggable","dragForce","dragX","applyForce","selectedAttraction","_Flickity","moveElements","toElem","GUID","instances","queryElement","flickityGUID","$element","constructor","defaults","_create","accessibility","freeScrollFriction","friction","namespaceJQueryEvents","resize","setGallerySize","createMethods","id","guid","viewport","_createSlider","watchCSS","activate","isActive","_filterFindCellElements","children","reloadCells","tabIndex","selectInitialIndex","isInitActivated","cellSelector","_makeCells","positionCells","_getWrapShiftCells","cellElem","getLastSlide","_sizeCells","_positionCells","maxCellHeight","cellX","startCell","len","updateSlides","_containSlides","slide","nextMargin","canCellFit","_getCanCellFit","updateSelectedSlide","groupCells","number","parseInt","percentMatch","percent","reposition","positionSliderAtSelected","setCellAlign","cellAlignShorthands","center","left","right","shorthand","adaptiveHeight","_unshiftCells","gapX","cellIndex","_getGapCells","increment","contain","isRightToLeft","contentWidth","isContentSmaller","beginBound","endBound","min","emitArgs","$event","jQEvent","Event","trigger","isWrap","isInstant","_wrapSelect","prevIndex","startAnimation","wrapIndex","delta","abs","backWrapDelta","forewardWrapDelta","isDragSelect","previous","next","unselectSelectedSlide","selectedCells","selectedElements","selectedCell","selectedElement","initialIndex","queryCell","selectCell","getCellSlideIndex","getCell","getCells","getParentCell","getAdjacentCellElements","adjCount","cellElems","slideIndex","uiChange","childUIPointerDown","preventDefault","focus","onresize","content","deactivate","onkeydown","isNotFocused","activeElement","handler","keyboardHandlers","keyCode","leftMethod","rightMethod","prevScrollY","pageYOffset","preventScroll","scrollTo","pageXOffset","removeEventListener","removeData","setJQuery","jq","Unipointer","Object","bindStartEvent","_bindStartEvent","unbindStartEvent","isAdd","bindMethod","startEvent","PointerEvent","getTouch","touches","touch","identifier","pointerIdentifier","onmousedown","button","_pointerDown","ontouchstart","changedTouches","onpointerdown","pointer","pointerId","pointerDown","_bindPostStartEvents","postStartEvents","mousedown","touchstart","pointerdown","_boundPointerEvents","_unbindPostStartEvents","onmousemove","_pointerMove","onpointermove","ontouchmove","pointerMove","onmouseup","_pointerUp","onpointerup","ontouchend","_pointerDone","pointerUp","_pointerReset","pointerDone","onpointercancel","_pointerCancel","ontouchcancel","pointerCancel","getPointerPoint","pageX","y","pageY","Unidragger","bindHandles","_bindHandles","unbindHandles","touchAction","_touchActionValue","handles","handle","okayPointerDown","pointerDownPointer","pointerDownBlur","cursorNodes","TEXTAREA","INPUT","SELECT","OPTION","clickTypes","radio","checkbox","submit","image","file","isCursorNode","nodeName","isClickType","isOkay","focused","blur","moveVector","_dragPointerMove","_dragMove","isDragging","hasDragStarted","_dragStart","_dragPointerUp","_dragEnd","_staticClick","isPreventingClicks","dragStart","dragMove","bind","dragEnd","onclick","isIgnoringMouseUp","staticClick","draggable","dragThreshold","isTouch","isTouchmoveScrollCanceled","_createDrag","onActivateDrag","_uiChangeDrag","onDeactivateDrag","updateDraggable","bindDrag","unbindDrag","_pointerDownPreventDefault","pointerDownFocus","pointerDownScroll","getScrollPosition","_pointerDownDefault","focusNodes","isTouchStart","isTouchPointer","pointerType","isFocusNode","isTouchScrolling","dragStartPosition","previousDragX","direction","originBound","dragMoveTime","Date","freeScroll","dragEndRestingSelect","restingX","getRestingPosition","dragEndBoostSelect","distance","getSlideDistance","positiveResting","_getClosestResting","negativeResting","minDistance","Infinity","condition","dist","minDist","isWrapAround","wrap","floor","clickedCell","onscroll","scroll","scrollMoveX","scrollMoveY","svgURI","PrevNextButton","isEnabled","isPrevious","leftDirection","isLeft","disable","svg","createSVG","update","createElementNS","path","pathMovements","shape","x0","x1","y1","x2","y2","x3","getArrowMovements","arrowShape","enable","disabled","lastIndex","boundIndex","prevNextButtons","_createPrevNextButtons","prevButton","nextButton","activatePrevNextButtons","deactivatePrevNextButtons","PageDots","holder","dots","handleClick","onClick","setDots","addDots","removeDots","count","fragment","createDocumentFragment","newDots","dot","updateSelected","selectedDot","onTap","pageDots","_createPageDots","activatePageDots","updateSelectedPageDots","updatePageDots","deactivatePageDots","Player","state","onVisibilityChange","visibilityChange","onVisibilityPlay","visibilityPlay","play","hidden","tick","time","autoPlay","clear","stop","pause","unpause","pauseAutoPlayOnHover","_createPlayer","player","activatePlayer","stopPlayer","deactivatePlayer","playPlayer","pausePlayer","unpausePlayer","onmouseenter","onmouseleave","insert","getCellsFragment","isAppend","insertCellElement","insertBefore","endCells","cellChange","append","prepend","minCellIndex","cellSizeChange","changedCellIndex","isPositioningSlider","prevSelectedElem","LazyLoader","img","flickity","load","_createLazyload","lazyLoad","lazyImages","lazyCellImages","lazyloadAttr","srcAttr","srcsetAttr","lazySelector","imgs","getCellLazyImages","src","srcset","onload","complete","onerror","_createAsNavFor","activateAsNavFor","deactivateAsNavFor","destroyAsNavFor","asNavForOption","asNavFor","setNavCompanion","companion","navCompanion","onNavCompanionSelect","navCompanionSelect","onNavStaticClick","companionCells","t","firstIndex","selectIndex","removeNavSelectedElements","navSelectedElements","changeNavSelectedClass","navElem","cellElement","imagesLoaded","ImagesLoaded","onAlways","queryElem","elements","getImages","jqDeferred","Deferred","check","images","addElementImages","addImage","background","addElementBackgroundImages","elementNodeTypes","childImgs","child","LoadingImage","Background","url","Image","reURL","exec","backgroundImage","addBackground","loadingImage","onProgress","progressedCount","hasAnyBroken","isLoaded","notify","debug","log","isComplete","jqMethod","getIsImageComplete","confirm","naturalWidth","proxyImage","unbindEvents","makeJQueryPlugin","promise","_createImagesLoaded","resizeEvent","createEvent","initUIEvent","e","wmode","iCreateObject","isSiteInICreateMode","isSiteInPreviewMode","video","test","issuu","iframeWidth","iframePadding","css","addClass","isFrontEndDev","icrt_table_resize","item","contentRow","closest","wideTable","wideTableContainer","languageResources","siblings","detach","unwrap","removeClass","ready","resizeText","hasClass","matchHeight","_update","contents","flickityData","stringify","parseJSON","triggerResizeEvent","win","sideWidgets","el","me","find","appendTo","resetMoveSideWidgets","moveSideWidgets","$share","empty","last","isSiteinICreateMode","showNAMessage","isExpanded","remove_trap_focus","trap_focus","curpage","encodeURIComponent","location","curPageHeading","trim","text","first","toggleClass","slideToggle","ddId","stopPropagation","fontSizeInitial","fontSize","sizer","toggleHtmlStructure","before","myForm","action","name","val","change","save","is"],"mappings":";;;;;;;;;;AA+BA,GCZA,SAAAA,EAAAC,GAGA,mBAAAC,QAAAA,OAAAC,IAEAD,OAAA,gCAAA,CAAA,WAAA,SAAAE,GACA,OAAAH,EAAAD,EAAAI,MAEA,iBAAAC,QAAAA,OAAAC,QAEAD,OAAAC,QAAAL,EACAD,EACAO,QAAA,WAIAP,EAAAQ,cAAAP,EACAD,EACAA,EAAAI,QAlBA,CAsBAJ,QAAA,SAAAA,EAAAI,GACA,aAIA,IAAAK,EAAAC,MAAAC,UAAAC,MAIAC,EAAAb,EAAAa,QACAC,OAAA,IAAAD,EAAA,aACA,SAAAE,GACAF,EAAAG,MAAAD,IAKA,SAAAP,EAAAS,EAAAC,EAAAC,GAgCA,SAAAC,EAAAC,EAAAC,EAAAC,GACA,IAAAC,EACAC,EAAA,OAAAR,EAAA,KAAAK,EAAA,KAuBA,OArBAD,EAAAK,MAAA,SAAAC,EAAAC,GAEA,IAAAC,EAAAV,EAAAW,KAAAF,EAAAX,GACA,GAAAY,EAAA,CAMA,IAAAE,EAAAF,EAAAP,GACA,GAAAS,GAAA,KAAAT,EAAAU,OAAA,GAAA,CAMA,IAAAC,EAAAF,EAAAG,MAAAL,EAAAN,GAEAC,OAAAW,IAAAX,EAAAS,EAAAT,OAPAV,EAAAW,EAAA,+BAPAX,EAAAG,EAAA,+CACAQ,WAgBAU,IAAAX,EAAAA,EAAAH,EAGA,SAAAe,EAAAf,EAAAgB,GACAhB,EAAAK,MAAA,SAAAC,EAAAC,GACA,IAAAC,EAAAV,EAAAW,KAAAF,EAAAX,GACAY,GAEAA,EAAAS,OAAAD,GACAR,EAAAU,UAGAV,EAAA,IAAAX,EAAAU,EAAAS,GACAlB,EAAAW,KAAAF,EAAAX,EAAAY,QArEAV,EAAAA,GAAAf,GAAAJ,EAAAI,UAMAc,EAAAP,UAAA2B,SAEApB,EAAAP,UAAA2B,OAAA,SAAAE,GAEArB,EAAAsB,cAAAD,KAGAE,KAAAL,QAAAlB,EAAAwB,QAAA,EAAAD,KAAAL,QAAAG,MAKArB,EAAAyB,GAAA3B,GAAA,SAAA4B,GACA,GAAA,iBAAAA,EAAA,CAGA,IAAAtB,EAAAd,EAAAqC,KAAAC,UAAA,GACA,OAAA3B,EAAAsB,KAAAG,EAAAtB,GAIA,OADAa,EAAAM,KAAAG,GACAH,MA+CAM,EAAA7B,IAOA,SAAA6B,EAAA7B,IACAA,GAAAA,GAAAA,EAAA8B,UAGA9B,EAAA8B,QAAAzC,GAOA,OAJAwC,EAAA5C,GAAAJ,EAAAI,QAIAI,KAYA,SAAA0C,EAAAjD,GAGA,mBAAAC,QAAAA,OAAAC,IAEAD,OAAA,wBAAAD,GACA,iBAAAI,QAAAA,OAAAC,QAEAD,OAAAC,QAAAL,IAGAiD,EAAAC,UAAAlD,IAXA,CAcA,oBAAAD,OAAAA,OAAA0C,MAAA,WAIA,SAAAS,KAEA,IAAAC,EAAAD,EAAAxC,UAiFA,OA/EAyC,EAAAC,GAAA,SAAAC,EAAAC,GACA,GAAAD,GAAAC,EAAA,CAIA,IAAAC,EAAAd,KAAAe,QAAAf,KAAAe,SAAA,GAEAC,EAAAF,EAAAF,GAAAE,EAAAF,IAAA,GAMA,OAJA,GAAAI,EAAAC,QAAAJ,IACAG,EAAAE,KAAAL,GAGAb,OAGAU,EAAAS,KAAA,SAAAP,EAAAC,GACA,GAAAD,GAAAC,EAAA,CAIAb,KAAAW,GAAAC,EAAAC,GAGA,IAAAO,EAAApB,KAAAqB,YAAArB,KAAAqB,aAAA,GAMA,OAJAD,EAAAR,GAAAQ,EAAAR,IAAA,IAEAC,IAAA,EAEAb,OAGAU,EAAAY,IAAA,SAAAV,EAAAC,GACA,IAAAG,EAAAhB,KAAAe,SAAAf,KAAAe,QAAAH,GACA,GAAAI,GAAAA,EAAAO,OAAA,CAGA,IAAAC,EAAAR,EAAAC,QAAAJ,GAKA,OAJA,GAAAW,GACAR,EAAAS,OAAAD,EAAA,GAGAxB,OAGAU,EAAAgB,UAAA,SAAAd,EAAA/B,GACA,IAAAmC,EAAAhB,KAAAe,SAAAf,KAAAe,QAAAH,GACA,GAAAI,GAAAA,EAAAO,OAAA,CAIAP,EAAAA,EAAA9C,MAAA,GACAW,EAAAA,GAAA,GAIA,IAFA,IAAA8C,EAAA3B,KAAAqB,aAAArB,KAAAqB,YAAAT,GAEA3B,EAAA,EAAAA,EAAA+B,EAAAO,OAAAtC,IAAA,CACA,IAAA4B,EAAAG,EAAA/B,GACA0C,GAAAA,EAAAd,KAIAb,KAAAsB,IAAAV,EAAAC,UAEAc,EAAAd,IAGAA,EAAArB,MAAAQ,KAAAnB,GAGA,OAAAmB,OAGAU,EAAAkB,OAAA,kBACA5B,KAAAe,eACAf,KAAAqB,aAGAZ;;;;;;AAaA,SAAAnD,EAAAC,GAEA,mBAAAC,QAAAA,OAAAC,IAEAD,OAAA,oBAAAD,GACA,iBAAAI,QAAAA,OAAAC,QAEAD,OAAAC,QAAAL,IAGAD,EAAAuE,QAAAtE,IAVA,CAaAD,QAAA,WACA,aAKA,SAAAwE,EAAAvC,GACA,IAAAwC,EAAAC,WAAAzC,GAGA,OADA,GAAAA,EAAA0B,QAAA,OAAAgB,MAAAF,IACAA,EAKA,IAAA3D,EAAA,oBAAAD,QAFA,aAGA,SAAAE,GACAF,QAAAG,MAAAD,IAKA6D,EAAA,CACA,cACA,eACA,aACA,gBACA,aACA,cACA,YACA,eACA,kBACA,mBACA,iBACA,qBAGAC,EAAAD,EAAAX,OAwBA,SAAAa,EAAAlD,GACA,IAAAmD,EAAAC,iBAAApD,GAMA,OALAmD,GACAjE,EAAA,kBAAAiE,EAAA,6FAIAA,EAKA,IAEAE,EAFAC,GAAA,EAyCA,SAAAX,EAAA3C,GASA,GAzCA,WAEA,IAAAsD,EAAA,CAGAA,GAAA,EAQA,IAAAC,EAAAC,SAAAC,cAAA,OACAF,EAAAJ,MAAAO,MAAA,QACAH,EAAAJ,MAAAQ,QAAA,kBACAJ,EAAAJ,MAAAS,YAAA,QACAL,EAAAJ,MAAAU,YAAA,kBACAN,EAAAJ,MAAAW,UAAA,aAEA,IAAAC,EAAAP,SAAAO,MAAAP,SAAAQ,gBACAD,EAAAE,YAAAV,GACA,IAAAJ,EAAAD,EAAAK,GAEAF,EAAA,KAAAa,KAAAC,MAAAvB,EAAAO,EAAAO,QACAf,EAAAU,eAAAA,EAEAU,EAAAK,YAAAb,IAMAc,GAGA,iBAAArE,IACAA,EAAAwD,SAAAc,cAAAtE,IAIAA,GAAA,iBAAAA,GAAAA,EAAAuE,SAAA,CAIA,IAAApB,EAAAD,EAAAlD,GAGA,GAAA,QAAAmD,EAAAqB,QACA,OA5FA,WASA,IARA,IAAAC,EAAA,CACAf,MAAA,EACAgB,OAAA,EACAC,WAAA,EACAC,YAAA,EACAC,WAAA,EACAC,YAAA,GAEA/E,EAAA,EAAAA,EAAAkD,EAAAlD,IAEA0E,EADAzB,EAAAjD,IACA,EAEA,OAAA0E,EA+EAM,GAGA,IAAAN,EAAA,GACAA,EAAAf,MAAA1D,EAAAgF,YACAP,EAAAC,OAAA1E,EAAAiF,aAKA,IAHA,IAAAC,EAAAT,EAAAS,YAAA,cAAA/B,EAAAW,UAGA/D,EAAA,EAAAA,EAAAkD,EAAAlD,IAAA,CACA,IAAAoF,EAAAnC,EAAAjD,GACAM,EAAA8C,EAAAgC,GACAtC,EAAAC,WAAAzC,GAEAoE,EAAAU,GAAApC,MAAAF,GAAA,EAAAA,EAGA,IAAAuC,EAAAX,EAAAY,YAAAZ,EAAAa,aACAC,EAAAd,EAAAe,WAAAf,EAAAgB,cACAC,EAAAjB,EAAAkB,WAAAlB,EAAAmB,YACAC,EAAApB,EAAAqB,UAAArB,EAAAsB,aACAlC,EAAAY,EAAAuB,gBAAAvB,EAAAwB,iBACAC,EAAAzB,EAAA0B,eAAA1B,EAAA2B,kBAEAC,EAAAnB,GAAA7B,EAGAiD,EAAA1D,EAAAO,EAAAO,QACA,IAAA4C,IACA7B,EAAAf,MAAA4C,GAEAD,EAAA,EAAAjB,EAAAvB,IAGA,IAAA0C,EAAA3D,EAAAO,EAAAuB,QAaA,OAZA,IAAA6B,IACA9B,EAAAC,OAAA6B,GAEAF,EAAA,EAAAd,EAAAW,IAGAzB,EAAAE,WAAAF,EAAAf,OAAA0B,EAAAvB,GACAY,EAAAG,YAAAH,EAAAC,QAAAa,EAAAW,GAEAzB,EAAAI,WAAAJ,EAAAf,MAAAgC,EACAjB,EAAAK,YAAAL,EAAAC,OAAAmB,EAEApB,GAGA,OAAA9B,KAYA,SAAAvE,EAAAC,GAEA,aAEA,mBAAAC,QAAAA,OAAAC,IAEAD,OAAA,6CAAAD,GACA,iBAAAI,QAAAA,OAAAC,QAEAD,OAAAC,QAAAL,IAGAD,EAAAoI,gBAAAnI,IAZA,CAeAD,QAAA,WACA,aAEA,IAAAqI,EAAA,WACA,IAAAC,EAAAtI,OAAAuI,QAAA5H,UAEA,GAAA2H,EAAAE,QACA,MAAA,UAGA,GAAAF,EAAAF,gBACA,MAAA,kBAKA,IAFA,IAAAK,EAAA,CAAA,SAAA,MAAA,KAAA,KAEA9G,EAAA,EAAAA,EAAA8G,EAAAxE,OAAAtC,IAAA,CACA,IACAI,EADA0G,EAAA9G,GACA,kBACA,GAAA2G,EAAAvG,GACA,OAAAA,GAjBA,GAsBA,OAAA,SAAAH,EAAA8G,GACA,OAAA9G,EAAAyG,GAAAK,OAYA,SAAA1I,EAAAC,GAIA,mBAAAC,QAAAA,OAAAC,IAEAD,OAAA,uBAAA,CACA,+CACA,SAAAkI,GACA,OAAAnI,EAAAD,EAAAoI,MAEA,iBAAA/H,QAAAA,OAAAC,QAEAD,OAAAC,QAAAL,EACAD,EACAO,QAAA,8BAIAP,EAAA2I,aAAA1I,EACAD,EACAA,EAAAoI,iBArBA,CAyBApI,QAAA,SAAAA,EAAAoI,GAIA,IAAAQ,EAAA,CAKAA,OAAA,SAAAC,EAAAC,GACA,IAAA,IAAAC,KAAAD,EACAD,EAAAE,GAAAD,EAAAC,GAEA,OAAAF,GAKAD,OAAA,SAAAnE,EAAAU,GACA,OAAAV,EAAAU,EAAAA,GAAAA,IAKA1E,EAAAC,MAAAC,UAAAC,MAGAgI,EAAAI,UAAA,SAAAC,GACA,OAAAvI,MAAAwI,QAAAD,GAEAA,EAGAA,MAAAA,EACA,GAGA,iBAAAA,GAAA,iBAAAA,EAAAhF,OAGAxD,EAAAqC,KAAAmG,GAIA,CAAAA,IAKAL,EAAAO,WAAA,SAAAC,EAAAH,GACA,IAAA/E,EAAAkF,EAAAzF,QAAAsF,IACA,GAAA/E,GACAkF,EAAAjF,OAAAD,EAAA,IAMA0E,EAAAS,UAAA,SAAAzH,EAAA8G,GACA,KAAA9G,EAAA0H,YAAA1H,GAAAwD,SAAAO,MAEA,GADA/D,EAAAA,EAAA0H,WACAlB,EAAAxG,EAAA8G,GACA,OAAA9G,GAQAgH,EAAAW,gBAAA,SAAA3H,GACA,MAAA,iBAAAA,EACAwD,SAAAc,cAAAtE,GAEAA,GAMAgH,EAAAY,YAAA,SAAAC,GACA,IAAA1H,EAAA,KAAA0H,EAAAC,KACAhH,KAAAX,IACAW,KAAAX,GAAA0H,IAMAb,EAAAe,mBAAA,SAAAC,EAAAlB,GAEAkB,EAAAhB,EAAAI,UAAAY,GACA,IAAAC,EAAA,GAyBA,OAvBAD,EAAAE,SAAA,SAAAlI,GAEA,GAAAA,aAAAmI,YAIA,GAAArB,EAAA,CAMAN,EAAAxG,EAAA8G,IACAmB,EAAAjG,KAAAhC,GAKA,IAFA,IAAAoI,EAAApI,EAAAqI,iBAAAvB,GAEA/G,EAAA,EAAAA,EAAAqI,EAAA/F,OAAAtC,IACAkI,EAAAjG,KAAAoG,EAAArI,SAZAkI,EAAAjG,KAAAhC,MAgBAiI,GAKAjB,EAAAsB,eAAA,SAAAC,EAAA7I,EAAA8I,GACAA,EAAAA,GAAA,IAEA,IAAArI,EAAAoI,EAAAxJ,UAAAW,GACA+I,EAAA/I,EAAA,UAEA6I,EAAAxJ,UAAAW,GAAA,WACA,IAAAgJ,EAAA5H,KAAA2H,GACAE,aAAAD,GAEA,IAAA/I,EAAAwB,UACAyH,EAAA9H,KACAA,KAAA2H,GAAAI,YAAA,WACA1I,EAAAG,MAAAsI,EAAAjJ,UACAiJ,EAAAH,KACAD,KAMAxB,EAAA8B,SAAA,SAAAC,GACA,IAAAC,EAAAxF,SAAAwF,WACA,YAAAA,GAAA,eAAAA,EAEAH,WAAAE,GAEAvF,SAAAyF,iBAAA,mBAAAF,IAOA/B,EAAAkC,SAAA,SAAAC,GACA,OAAAA,EAAAC,QAAA,eAAA,SAAAC,EAAAC,EAAAC,GACA,OAAAD,EAAA,IAAAC,KACAC,eAGA,IAAAvK,EAAAb,EAAAa,QA4CA,OAtCA+H,EAAAyC,SAAA,SAAAC,EAAArK,GACA2H,EAAA8B,UAAA,WACA,IAAAa,EAAA3C,EAAAkC,SAAA7J,GACAuK,EAAA,QAAAD,EACAE,EAAArG,SAAA6E,iBAAA,IAAAuB,EAAA,KACAE,EAAAtG,SAAA6E,iBAAA,OAAAsB,GACA3B,EAAAhB,EAAAI,UAAAyC,GACAE,OAAA/C,EAAAI,UAAA0C,IACAE,EAAAJ,EAAA,WACApL,EAAAJ,EAAAI,OAEAwJ,EAAAE,SAAA,SAAAlI,GACA,IAEAS,EAFAwJ,EAAAjK,EAAAkK,aAAAN,IACA5J,EAAAkK,aAAAF,GAEA,IACAvJ,EAAAwJ,GAAAE,KAAAC,MAAAH,GACA,MAAA7K,GAMA,YAJAH,GACAA,EAAAG,MAAA,iBAAAwK,EAAA,OAAA5J,EAAAqK,UACA,KAAAjL,IAKA,IAAAa,EAAA,IAAAyJ,EAAA1J,EAAAS,GAEAjC,GACAA,EAAA0B,KAAAF,EAAAX,EAAAY,UASA+G,KAKA,SAAA5I,EAAAC,GAEA,mBAAAC,QAAAA,OAAAC,IAEAD,OAAA,mBAAA,CACA,sBACA,SAAAqE,GACA,OAAAtE,EAAAD,EAAAuE,MAEA,iBAAAlE,QAAAA,OAAAC,QAEAD,OAAAC,QAAAL,EACAD,EACAO,QAAA,cAIAP,EAAAkM,SAAAlM,EAAAkM,UAAA,GACAlM,EAAAkM,SAAAC,KAAAlM,EACAD,EACAA,EAAAuE,UApBA,CAwBAvE,QAAA,SAAAA,EAAAuE,GAIA,SAAA4H,EAAAvK,EAAAwK,GACA1J,KAAA2J,QAAAzK,EACAc,KAAA0J,OAAAA,EAEA1J,KAAA4J,SAGA,IAAAlJ,EAAA+I,EAAAxL,UA+DA,OA7DAyC,EAAAkJ,OAAA,WACA5J,KAAA2J,QAAAtH,MAAAwH,SAAA,WACA7J,KAAA2J,QAAAG,aAAA,cAAA,QACA9J,KAAA+J,EAAA,EACA/J,KAAAgK,MAAA,GAGAtJ,EAAAuJ,QAAA,WAEAjK,KAAAkK,WACAlK,KAAA2J,QAAAtH,MAAAwH,SAAA,GACA,IAAAM,EAAAnK,KAAA0J,OAAAU,WACApK,KAAA2J,QAAAtH,MAAA8H,GAAA,GACAnK,KAAA2J,QAAAU,gBAAA,gBAGA3J,EAAAmB,QAAA,WACA7B,KAAA2D,KAAA9B,EAAA7B,KAAA2J,UAGAjJ,EAAA4J,YAAA,SAAAP,GACA/J,KAAA+J,EAAAA,EACA/J,KAAAuK,eACAvK,KAAAwK,eAAAT,IAIArJ,EAAA6J,aAAA7J,EAAA+J,iBAAA,WACA,IAAAC,EAAA,QAAA1K,KAAA0J,OAAAU,WAAA,aAAA,cACApK,KAAA2K,OAAA3K,KAAA+J,EAAA/J,KAAA2D,KAAA+G,GACA1K,KAAA2D,KAAAf,MAAA5C,KAAA0J,OAAAkB,WAGAlK,EAAA8J,eAAA,SAAAT,GAEA,IAAAI,EAAAnK,KAAA0J,OAAAU,WACApK,KAAA2J,QAAAtH,MAAA8H,GAAAnK,KAAA0J,OAAAmB,iBAAAd,IAGArJ,EAAAoK,OAAA,WACA9K,KAAA2J,QAAAoB,UAAAC,IAAA,eACAhL,KAAA2J,QAAAU,gBAAA,gBAGA3J,EAAAwJ,SAAA,WACAlK,KAAA2J,QAAAoB,UAAAE,OAAA,eACAjL,KAAA2J,QAAAG,aAAA,cAAA,SAMApJ,EAAAwK,UAAA,SAAAlB,GACAhK,KAAAgK,MAAAA,EACAhK,KAAAwK,eAAAxK,KAAA+J,EAAA/J,KAAA0J,OAAAyB,eAAAnB,IAGAtJ,EAAAuK,OAAA,WACAjL,KAAA2J,QAAA/C,WAAAtD,YAAAtD,KAAA2J,UAGAF,KAKA,SAAAnM,EAAAC,GAEA,mBAAAC,QAAAA,OAAAC,IAEAD,OAAA,oBAAAD,GACA,iBAAAI,QAAAA,OAAAC,QAEAD,OAAAC,QAAAL,KAGAD,EAAAkM,SAAAlM,EAAAkM,UAAA,GACAlM,EAAAkM,SAAA4B,MAAA7N,KAXA,CAcAD,QAAA,WACA,aAEA,SAAA8N,EAAA1B,GACA1J,KAAA0J,OAAAA,EACA1J,KAAAqL,aAAA,QAAA3B,EAAAU,WACApK,KAAAsL,MAAA,GACAtL,KAAA+D,WAAA,EACA/D,KAAA4D,OAAA,EAGA,IAAAlD,EAAA0K,EAAAnN,UA4CA,OA1CAyC,EAAA6K,QAAA,SAAAC,GAKA,GAJAxL,KAAAsL,MAAApK,KAAAsK,GACAxL,KAAA+D,YAAAyH,EAAA7H,KAAAI,WACA/D,KAAA4D,OAAAR,KAAAqI,IAAAD,EAAA7H,KAAAK,YAAAhE,KAAA4D,QAEA,GAAA5D,KAAAsL,MAAA/J,OAAA,CACAvB,KAAA+J,EAAAyB,EAAAzB,EACA,IAAA2B,EAAA1L,KAAAqL,aAAA,aAAA,cACArL,KAAA2L,YAAAH,EAAA7H,KAAA+H,KAIAhL,EAAA6J,aAAA,WACA,IAAAqB,EAAA5L,KAAAqL,aAAA,cAAA,aACAQ,EAAA7L,KAAA8L,cACAC,EAAAF,EAAAA,EAAAlI,KAAAiI,GAAA,EACAI,EAAAhM,KAAA+D,YAAA/D,KAAA2L,YAAAI,GACA/L,KAAA2K,OAAA3K,KAAA+J,EAAA/J,KAAA2L,YAAAK,EAAAhM,KAAA0J,OAAAkB,WAGAlK,EAAAoL,YAAA,WACA,OAAA9L,KAAAsL,MAAAtL,KAAAsL,MAAA/J,OAAA,IAGAb,EAAAoK,OAAA,WACA9K,KAAAsL,MAAAlE,SAAA,SAAAoE,GACAA,EAAAV,aAIApK,EAAAwJ,SAAA,WACAlK,KAAAsL,MAAAlE,SAAA,SAAAoE,GACAA,EAAAtB,eAIAxJ,EAAAuL,gBAAA,WACA,OAAAjM,KAAAsL,MAAAY,KAAA,SAAAV,GACA,OAAAA,EAAA7B,YAIAyB,KAKA,SAAA9N,EAAAC,GAEA,mBAAAC,QAAAA,OAAAC,IAEAD,OAAA,sBAAA,CACA,yBACA,SAAA0I,GACA,OAAA3I,EAAAD,EAAA4I,MAEA,iBAAAvI,QAAAA,OAAAC,QAEAD,OAAAC,QAAAL,EACAD,EACAO,QAAA,oBAIAP,EAAAkM,SAAAlM,EAAAkM,UAAA,GACAlM,EAAAkM,SAAA2C,iBAAA5O,EACAD,EACAA,EAAA2I,eApBA,CAwBA3I,QAAA,SAAAA,EAAA4I,GAMA,IAAAxF,EAAA,CAEAA,eAAA,WACAV,KAAAoM,cAIApM,KAAAoM,aAAA,EACApM,KAAAqM,cAAA,EACArM,KAAAsM,YAGA5L,QAAA,WACAV,KAAAuM,iBACAvM,KAAAwM,0BAEA,IAAAC,EAAAzM,KAAA+J,EAMA,GAJA/J,KAAA0M,mBACA1M,KAAA2M,iBACA3M,KAAA4M,OAAAH,GAEAzM,KAAAoM,YAAA,CACA,IAAAtE,EAAA9H,KACA6M,uBAAA,WACA/E,EAAAwE,eAKA5L,eAAA,WACA,IAAAqJ,EAAA/J,KAAA+J,EAEA/J,KAAAL,QAAAmN,YAAA9M,KAAAsL,MAAA/J,OAAA,IACAwI,EAAA7D,EAAA6G,OAAAhD,EAAA/J,KAAAmL,gBACApB,GAAA/J,KAAAmL,eACAnL,KAAAgN,eAAAjD,IAGA/J,KAAAiN,cAAAlD,EAAA/J,KAAAoM,aACApM,KAAAkN,uBAGAxM,cAAA,SAAAqJ,EAAAoD,GACApD,GAAA/J,KAAAoN,eAEArD,EAAA/J,KAAAL,QAAA0N,aAAAtD,EAAAA,EACA,IAAAuD,EAAAtN,KAAA6K,iBAAAd,GAGA/J,KAAAuN,OAAAlL,MAAAmL,UAAAL,EACA,eAAAG,EAAA,QAAA,cAAAA,EAAA,KAGA5M,oBAAA,WACA,IAAA+M,EAAAzN,KAAA0N,OAAA,GACA,GAAAD,EAAA,CAGA,IAAAE,GAAA3N,KAAA+J,EAAA0D,EAAA9C,OACAiD,EAAAD,EAAA3N,KAAA6N,YACA7N,KAAA8N,cAAA,SAAA,KAAA,CAAAF,EAAAD,MAGAjN,yBAAA,WACAV,KAAAsL,MAAA/J,SAGAvB,KAAA+J,GAAA/J,KAAA+N,cAAApD,OACA3K,KAAAgO,SAAA,EACAhO,KAAA2M,mBAGAjM,iBAAA,SAAAmJ,GACA,OAAA7J,KAAAL,QAAAsO,gBAEA,IAAA7K,KAAAC,MAAAwG,EAAA7J,KAAA2D,KAAAE,WAAA,KAAA,IAGAT,KAAAC,MAAAwG,GAAA,MAIAnJ,OAAA,SAAA+L,IAEAzM,KAAAkO,eACA9K,KAAAC,MAAA,IAAArD,KAAA+J,IAAA3G,KAAAC,MAAA,IAAAoJ,IAEAzM,KAAAqM,gBAGArM,KAAAqM,cAAA,IACArM,KAAAoM,aAAA,SACApM,KAAAmO,gBAEAnO,KAAA2M,iBACA3M,KAAA8N,cAAA,SAAA,KAAA,CAAA9N,KAAAoO,kBAIA1N,eAAA,SAAAqJ,GAEA,IAAAsE,EAAArO,KAAAoN,eAAArD,EACA/J,KAAAsO,YAAAtO,KAAAuO,iBAAAF,GAAA,GAEA,IAAAG,EAAAxO,KAAA2D,KAAAE,YAAAkG,EAAA/J,KAAAmL,eAAAnL,KAAAoN,gBACApN,KAAAsO,YAAAtO,KAAAyO,gBAAAD,EAAA,IAGA9N,YAAA,SAAA4K,EAAAoD,EAAA1E,GACA,IAAA,IAAA/K,EAAA,EAAAA,EAAAqM,EAAA/J,OAAAtC,IAAA,CACA,IAAAuM,EAAAF,EAAArM,GACA0P,EAAAD,EAAA,EAAA1E,EAAA,EACAwB,EAAAN,UAAAyD,GACAD,GAAAlD,EAAA7H,KAAAI,aAIArD,cAAA,SAAA4K,GACA,GAAAA,GAAAA,EAAA/J,OAGA,IAAA,IAAAtC,EAAA,EAAAA,EAAAqM,EAAA/J,OAAAtC,IACAqM,EAAArM,GAAAiM,UAAA,IAMAxK,iBAAA,WACAV,KAAA+J,GAAA/J,KAAAgO,SACAhO,KAAAgO,UAAAhO,KAAA4O,qBAGAlO,WAAA,SAAAmO,GACA7O,KAAAgO,UAAAa,GAGAnO,kBAAA,WACA,OAAA,EAAAV,KAAAL,QAAAK,KAAAmO,gBAAA,qBAAA,aAGAzN,mBAAA,WAEA,OAAAV,KAAA+J,EAAA/J,KAAAgO,UAAA,EAAAhO,KAAA4O,sBAGAlO,eAAA,WACA,GAAAV,KAAA8O,aAAA9O,KAAAkO,cAAA,CAIA,IACAa,EADA/O,KAAAgP,MAAAhP,KAAA+J,EACA/J,KAAAgO,SACAhO,KAAAiP,WAAAF,KAGArO,wBAAA,WAGA,KADAV,KAAA8O,aAAA9O,KAAAkO,iBACAlO,KAAAmO,iBAAAnO,KAAA0N,OAAAnM,OAAA,CAGA,IACAsN,IADA,EAAA7O,KAAA+N,cAAApD,OAAA3K,KAAA+J,GACA/J,KAAAL,QAAAuP,mBACAlP,KAAAiP,WAAAJ,MAGA,OAAAnO,KAMA,SAAApD,EAAAC,GAEA,GAAA,mBAAAC,QAAAA,OAAAC,IAEAD,OAAA,uBAAA,CACA,wBACA,oBACA,uBACA,SACA,UACA,cACA,SAAAiD,EAAAoB,EAAAqE,EAAAuD,EAAA2B,EAAAe,GACA,OAAA5O,EAAAD,EAAAmD,EAAAoB,EAAAqE,EAAAuD,EAAA2B,EAAAe,WAEA,GAAA,iBAAAxO,QAAAA,OAAAC,QAEAD,OAAAC,QAAAL,EACAD,EACAO,QAAA,cACAA,QAAA,YACAA,QAAA,kBACAA,QAAA,UACAA,QAAA,WACAA,QAAA,kBAEA,CAEA,IAAAsR,EAAA7R,EAAAkM,SAEAlM,EAAAkM,SAAAjM,EACAD,EACAA,EAAAmD,UACAnD,EAAAuE,QACAvE,EAAA2I,aACAkJ,EAAA1F,KACA0F,EAAA/D,MACA+D,EAAAhD,mBApCA,CAwCA7O,QAAA,SAAAA,EAAAmD,EAAAoB,EACAqE,EAAAuD,EAAA2B,EAAAe,GAMA,IAAAzO,EAAAJ,EAAAI,OACA4E,EAAAhF,EAAAgF,iBACAnE,EAAAb,EAAAa,QAEA,SAAAiR,EAAAlI,EAAAmI,GAEA,IADAnI,EAAAhB,EAAAI,UAAAY,GACAA,EAAA3F,QACA8N,EAAAlM,YAAA+D,EAAA8C,SAOA,IAAAsF,EAAA,EAEAC,EAAA,GAEA,SAAA/F,EAAAG,EAAAhK,GACA,IAAA6P,EAAAtJ,EAAAW,gBAAA8C,GACA,GAAA6F,EAAA,CAQA,GAFAxP,KAAA2J,QAAA6F,EAEAxP,KAAA2J,QAAA8F,aAAA,CACA,IAAAtQ,EAAAoQ,EAAAvP,KAAA2J,QAAA8F,cAEA,OADAtQ,GAAAA,EAAAS,OAAAD,GACAR,EAIAzB,IACAsC,KAAA0P,SAAAhS,EAAAsC,KAAA2J,UAGA3J,KAAAL,QAAAuG,EAAAjG,OAAA,GAAAD,KAAA2P,YAAAC,UACA5P,KAAAJ,OAAAD,GAGAK,KAAA6P,eAtBA1R,GACAA,EAAAG,MAAA,8BAAAkR,GAAA7F,IAwBAH,EAAAoG,SAAA,CACAE,eAAA,EAEAlF,UAAA,SAGAmF,mBAAA,KACAC,SAAA,IACAC,uBAAA,EAEAhC,iBAAA,EACAiC,QAAA,EACAhB,mBAAA,KACAiB,gBAAA,GAMA3G,EAAA4G,cAAA,GAEA,IAAA1P,EAAA8I,EAAAvL,UAEAiI,EAAAjG,OAAAS,EAAAD,EAAAxC,WAEAyC,EAAAmP,QAAA,WAEA,IAAAQ,EAAArQ,KAAAsQ,OAAAhB,EAqBA,IAAA,IAAA1O,KApBAZ,KAAA2J,QAAA8F,aAAAY,EACAd,EAAAc,GAAArQ,KAEAA,KAAAoO,cAAA,EAEApO,KAAAqM,cAAA,EAEArM,KAAA+J,EAAA,EACA/J,KAAAgO,SAAA,EACAhO,KAAAoK,WAAApK,KAAAL,QAAA0N,YAAA,QAAA,OAEArN,KAAAuQ,SAAA7N,SAAAC,cAAA,OACA3C,KAAAuQ,SAAAhH,UAAA,oBACAvJ,KAAAwQ,iBAEAxQ,KAAAL,QAAAuQ,QAAAlQ,KAAAL,QAAA8Q,WACAnT,EAAA6K,iBAAA,SAAAnI,MAIAA,KAAAL,QAAAgB,GAAA,CACA,IAAAE,EAAAb,KAAAL,QAAAgB,GAAAC,GACAZ,KAAAW,GAAAC,EAAAC,GAGA2I,EAAA4G,cAAAhJ,SAAA,SAAA/H,GACAW,KAAAX,OACAW,MAEAA,KAAAL,QAAA8Q,SACAzQ,KAAAyQ,WAEAzQ,KAAA0Q,YASAhQ,EAAAd,OAAA,SAAAE,GACAoG,EAAAjG,OAAAD,KAAAL,QAAAG,IAGAY,EAAAgQ,SAAA,WACA1Q,KAAA2Q,WAGA3Q,KAAA2Q,UAAA,EACA3Q,KAAA2J,QAAAoB,UAAAC,IAAA,oBACAhL,KAAAL,QAAA0N,aACArN,KAAA2J,QAAAoB,UAAAC,IAAA,gBAGAhL,KAAA6B,UAGAuN,EADApP,KAAA4Q,wBAAA5Q,KAAA2J,QAAAkH,UACA7Q,KAAAuN,QACAvN,KAAAuQ,SAAApN,YAAAnD,KAAAuN,QACAvN,KAAA2J,QAAAxG,YAAAnD,KAAAuQ,UAEAvQ,KAAA8Q,cAEA9Q,KAAAL,QAAAmQ,gBAEA9P,KAAA2J,QAAAoH,SAAA,EAEA/Q,KAAA2J,QAAAxB,iBAAA,UAAAnI,OAGAA,KAAA0B,UAAA,YACA1B,KAAAgR,qBAEAhR,KAAAiR,iBAAA,EAEAjR,KAAA8N,cAAA,WAIApN,EAAA8P,cAAA,WAEA,IAAAjD,EAAA7K,SAAAC,cAAA,OACA4K,EAAAhE,UAAA,kBACAgE,EAAAlL,MAAArC,KAAAoK,YAAA,EACApK,KAAAuN,OAAAA,GAGA7M,EAAAkQ,wBAAA,SAAA1J,GACA,OAAAhB,EAAAe,mBAAAC,EAAAlH,KAAAL,QAAAuR,eAIAxQ,EAAAoQ,YAAA,WAEA9Q,KAAAsL,MAAAtL,KAAAmR,WAAAnR,KAAAuN,OAAAsD,UACA7Q,KAAAoR,gBACApR,KAAAqR,qBACArR,KAAAmQ,kBAQAzP,EAAAyQ,WAAA,SAAAjK,GAQA,OAPAlH,KAAA4Q,wBAAA1J,GAGAgF,KAAA,SAAAoF,GACA,OAAA,IAAA7H,EAAA6H,EAAAtR,QACAA,OAKAU,EAAAoL,YAAA,WACA,OAAA9L,KAAAsL,MAAAtL,KAAAsL,MAAA/J,OAAA,IAGAb,EAAA6Q,aAAA,WACA,OAAAvR,KAAA0N,OAAA1N,KAAA0N,OAAAnM,OAAA,IAIAb,EAAA0Q,cAAA,WAEApR,KAAAwR,WAAAxR,KAAAsL,OAEAtL,KAAAyR,eAAA,IAOA/Q,EAAA+Q,eAAA,SAAAjQ,GACAA,EAAAA,GAAA,EAGAxB,KAAA0R,cAAAlQ,GAAAxB,KAAA0R,eAAA,EACA,IAAAC,EAAA,EAEA,GAAAnQ,EAAA,EAAA,CACA,IAAAoQ,EAAA5R,KAAAsL,MAAA9J,EAAA,GACAmQ,EAAAC,EAAA7H,EAAA6H,EAAAjO,KAAAI,WAGA,IADA,IAAA8N,EAAA7R,KAAAsL,MAAA/J,OACAtC,EAAAuC,EAAAvC,EAAA4S,EAAA5S,IAAA,CACA,IAAAuM,EAAAxL,KAAAsL,MAAArM,GACAuM,EAAAlB,YAAAqH,GACAA,GAAAnG,EAAA7H,KAAAI,WACA/D,KAAA0R,cAAAtO,KAAAqI,IAAAD,EAAA7H,KAAAK,YAAAhE,KAAA0R,eAGA1R,KAAAmL,eAAAwG,EAEA3R,KAAA8R,eAEA9R,KAAA+R,iBAEA/R,KAAA6N,YAAAgE,EAAA7R,KAAAuR,eAAA5G,OAAA3K,KAAA0N,OAAA,GAAA/C,OAAA,GAOAjK,EAAA8Q,WAAA,SAAAlG,GACAA,EAAAlE,SAAA,SAAAoE,GACAA,EAAA3J,cAMAnB,EAAAoR,aAAA,WAEA,GADA9R,KAAA0N,OAAA,GACA1N,KAAAsL,MAAA/J,OAAA,CAIA,IAAAyQ,EAAA,IAAA5G,EAAApL,MACAA,KAAA0N,OAAAxM,KAAA8Q,GACA,IACAC,EADA,QAAAjS,KAAAoK,WACA,cAAA,aAEA8H,EAAAlS,KAAAmS,iBAEAnS,KAAAsL,MAAAlE,SAAA,SAAAoE,EAAAvM,GAEA,GAAA+S,EAAA1G,MAAA/J,OAAA,CAKA,IAAAyK,EAAAgG,EAAAjO,WAAAiO,EAAArG,aACAH,EAAA7H,KAAAI,WAAAyH,EAAA7H,KAAAsO,IAEAC,EAAA9R,KAAAJ,KAAAf,EAAA+M,KAIAgG,EAAAzH,eAEAyH,EAAA,IAAA5G,EAAApL,MACAA,KAAA0N,OAAAxM,KAAA8Q,IANAA,EAAAzG,QAAAC,QARAwG,EAAAzG,QAAAC,KAiBAxL,MAEAgS,EAAAzH,eAEAvK,KAAAoS,wBAGA1R,EAAAyR,eAAA,WACA,IAAAE,EAAArS,KAAAL,QAAA0S,WACA,IAAAA,EACA,OAAA,WACA,OAAA,GAEA,GAAA,iBAAAA,EAAA,CAEA,IAAAC,EAAAC,SAAAF,EAAA,IACA,OAAA,SAAApT,GACA,OAAAA,EAAAqT,GAAA,GAKA,IAAAE,EAAA,iBAAAH,GACAA,EAAA9J,MAAA,YACAkK,EAAAD,EAAAD,SAAAC,EAAA,GAAA,IAAA,IAAA,EACA,OAAA,SAAAvT,EAAA+M,GAEA,OAAAA,IAAAhM,KAAA2D,KAAAE,WAAA,GAAA4O,IAKA/R,EAAAb,MACAa,EAAAgS,WAAA,WACA1S,KAAAoR,gBACApR,KAAA2S,4BAGAjS,EAAAmB,QAAA,WACA7B,KAAA2D,KAAA9B,EAAA7B,KAAA2J,SACA3J,KAAA4S,eACA5S,KAAAoN,eAAApN,KAAA2D,KAAAE,WAAA7D,KAAA4K,WAGA,IAAAiI,EAAA,CAEAC,OAAA,CACAC,KAAA,GACAC,MAAA,IAEAD,KAAA,CACAA,KAAA,EACAC,MAAA,GAEAA,MAAA,CACAA,MAAA,EACAD,KAAA,IA+hBA,OA3hBArS,EAAAkS,aAAA,WACA,IAAAK,EAAAJ,EAAA7S,KAAAL,QAAAiL,WACA5K,KAAA4K,UAAAqI,EAAAA,EAAAjT,KAAAoK,YAAApK,KAAAL,QAAAiL,WAGAlK,EAAAyP,eAAA,WACA,GAAAnQ,KAAAL,QAAAwQ,eAAA,CACA,IAAAvM,EAAA5D,KAAAL,QAAAuT,gBAAAlT,KAAA+N,cACA/N,KAAA+N,cAAAnK,OAAA5D,KAAA0R,cACA1R,KAAAuQ,SAAAlO,MAAAuB,OAAAA,EAAA,OAIAlD,EAAA2Q,mBAAA,WAEA,GAAArR,KAAAL,QAAAmN,WAAA,CAIA9M,KAAAmT,cAAAnT,KAAAuO,kBACAvO,KAAAmT,cAAAnT,KAAAyO,iBAGA,IAAA2E,EAAApT,KAAAoN,eACAiG,EAAArT,KAAAsL,MAAA/J,OAAA,EACAvB,KAAAuO,iBAAAvO,KAAAsT,aAAAF,EAAAC,GAAA,GAGAD,EAAApT,KAAA2D,KAAAE,WAAA7D,KAAAoN,eAEApN,KAAAyO,gBAAAzO,KAAAsT,aAAAF,EAAA,EAAA,KAGA1S,EAAA4S,aAAA,SAAAF,EAAAC,EAAAE,GAGA,IADA,IAAAjI,EAAA,GACA8H,EAAA,GAAA,CACA,IAAA5H,EAAAxL,KAAAsL,MAAA+H,GACA,IAAA7H,EACA,MAEAF,EAAApK,KAAAsK,GACA6H,GAAAE,EACAH,GAAA5H,EAAA7H,KAAAI,WAEA,OAAAuH,GAMA5K,EAAAqR,eAAA,WACA,GAAA/R,KAAAL,QAAA6T,UAAAxT,KAAAL,QAAAmN,YAAA9M,KAAAsL,MAAA/J,OAAA,CAGA,IAAAkS,EAAAzT,KAAAL,QAAA0N,YACA3B,EAAA+H,EAAA,cAAA,aACA7H,EAAA6H,EAAA,aAAA,cACAC,EAAA1T,KAAAmL,eAAAnL,KAAA8L,cAAAnI,KAAAiI,GAEA+H,EAAAD,EAAA1T,KAAA2D,KAAAE,WAEA+P,EAAA5T,KAAAoN,eAAApN,KAAAsL,MAAA,GAAA3H,KAAA+H,GACAmI,EAAAH,EAAA1T,KAAA2D,KAAAE,YAAA,EAAA7D,KAAA4K,WAEA5K,KAAA0N,OAAAtG,SAAA,SAAA4K,GACA2B,EAEA3B,EAAArH,OAAA+I,EAAA1T,KAAA4K,WAGAoH,EAAArH,OAAAvH,KAAAqI,IAAAuG,EAAArH,OAAAiJ,GACA5B,EAAArH,OAAAvH,KAAA0Q,IAAA9B,EAAArH,OAAAkJ,MAEA7T,QAWAU,EAAAoN,cAAA,SAAA9G,EAAAD,EAAAlI,GACA,IAAAkV,EAAAhN,EAAA,CAAAA,GAAAkC,OAAApK,GAAAA,EAGA,GAFAmB,KAAA0B,UAAAsF,EAAA+M,GAEArW,GAAAsC,KAAA0P,SAAA,CAGA,IAAAsE,EADAhN,GAAAhH,KAAAL,QAAAsQ,sBAAA,YAAA,GAEA,GAAAlJ,EAAA,CAEA,IAAAkN,EAAA,IAAAvW,EAAAwW,MAAAnN,GACAkN,EAAAjN,KAAAA,EACAgN,EAAAC,EAEAjU,KAAA0P,SAAAyE,QAAAH,EAAAnV,KAWA6B,EAAAoK,OAAA,SAAAtJ,EAAA4S,EAAAC,GACA,GAAArU,KAAA2Q,WAGAnP,EAAA+Q,SAAA/Q,EAAA,IACAxB,KAAAsU,YAAA9S,IAEAxB,KAAAL,QAAAmN,YAAAsH,KACA5S,EAAA0E,EAAA6G,OAAAvL,EAAAxB,KAAA0N,OAAAnM,SAGAvB,KAAA0N,OAAAlM,IAAA,CAGA,IAAA+S,EAAAvU,KAAAoO,cACApO,KAAAoO,cAAA5M,EACAxB,KAAAoS,sBACAiC,EACArU,KAAA2S,2BAEA3S,KAAAwU,iBAEAxU,KAAAL,QAAAuT,gBACAlT,KAAAmQ,iBAGAnQ,KAAA8N,cAAA,SAAA,KAAA,CAAAtM,IAEAA,GAAA+S,GACAvU,KAAA8N,cAAA,SAAA,KAAA,CAAAtM,IAGAxB,KAAA8N,cAAA,gBAIApN,EAAA4T,YAAA,SAAA9S,GACA,IAAAqQ,EAAA7R,KAAA0N,OAAAnM,OAEA,KADAvB,KAAAL,QAAAmN,YAAA+E,EAAA,GAEA,OAAArQ,EAEA,IAAAiT,EAAAvO,EAAA6G,OAAAvL,EAAAqQ,GAEA6C,EAAAtR,KAAAuR,IAAAF,EAAAzU,KAAAoO,eACAwG,EAAAxR,KAAAuR,IAAAF,EAAA5C,EAAA7R,KAAAoO,eACAyG,EAAAzR,KAAAuR,IAAAF,EAAA5C,EAAA7R,KAAAoO,gBACApO,KAAA8U,cAAAF,EAAAF,EACAlT,GAAAqQ,GACA7R,KAAA8U,cAAAD,EAAAH,IACAlT,GAAAqQ,GAGArQ,EAAA,EACAxB,KAAA+J,GAAA/J,KAAAmL,eACA3J,GAAAqQ,IACA7R,KAAA+J,GAAA/J,KAAAmL,iBAIAzK,EAAAqU,SAAA,SAAAX,EAAAC,GACArU,KAAA8K,OAAA9K,KAAAoO,cAAA,EAAAgG,EAAAC,IAGA3T,EAAAsU,KAAA,SAAAZ,EAAAC,GACArU,KAAA8K,OAAA9K,KAAAoO,cAAA,EAAAgG,EAAAC,IAGA3T,EAAA0R,oBAAA,WACA,IAAAJ,EAAAhS,KAAA0N,OAAA1N,KAAAoO,eAEA4D,IAIAhS,KAAAiV,wBAEAjV,KAAA+N,cAAAiE,EACAA,EAAAlH,SACA9K,KAAAkV,cAAAlD,EAAA1G,MACAtL,KAAAmV,iBAAAnD,EAAA/F,kBAGAjM,KAAAoV,aAAApD,EAAA1G,MAAA,GACAtL,KAAAqV,gBAAArV,KAAAmV,iBAAA,KAGAzU,EAAAuU,sBAAA,WACAjV,KAAA+N,eACA/N,KAAA+N,cAAA7D,YAIAxJ,EAAAsQ,mBAAA,WACA,IAAAsE,EAAAtV,KAAAL,QAAA2V,aAEA,GAAAtV,KAAAiR,gBACAjR,KAAA8K,OAAA9K,KAAAoO,eAAA,GAAA,OADA,CAKA,GAAAkH,GAAA,iBAAAA,EAEA,GADAtV,KAAAuV,UAAAD,GAGA,YADAtV,KAAAwV,WAAAF,GAAA,GAAA,GAKA,IAAA9T,EAAA,EAEA8T,GAAAtV,KAAA0N,OAAA4H,KACA9T,EAAA8T,GAGAtV,KAAA8K,OAAAtJ,GAAA,GAAA,KASAd,EAAA8U,WAAA,SAAAjW,EAAA6U,EAAAC,GAEA,IAAA7I,EAAAxL,KAAAuV,UAAAhW,GACA,GAAAiM,EAAA,CAIA,IAAAhK,EAAAxB,KAAAyV,kBAAAjK,GACAxL,KAAA8K,OAAAtJ,EAAA4S,EAAAC,KAGA3T,EAAA+U,kBAAA,SAAAjK,GAEA,IAAA,IAAAvM,EAAA,EAAAA,EAAAe,KAAA0N,OAAAnM,OAAAtC,IAAA,CAGA,IAAA,GAFAe,KAAA0N,OAAAzO,GACAqM,MAAArK,QAAAuK,GAEA,OAAAvM,IAYAyB,EAAAgV,QAAA,SAAAxW,GAEA,IAAA,IAAAD,EAAA,EAAAA,EAAAe,KAAAsL,MAAA/J,OAAAtC,IAAA,CACA,IAAAuM,EAAAxL,KAAAsL,MAAArM,GACA,GAAAuM,EAAA7B,SAAAzK,EACA,OAAAsM,IAUA9K,EAAAiV,SAAA,SAAAzO,GACAA,EAAAhB,EAAAI,UAAAY,GACA,IAAAoE,EAAA,GAOA,OANApE,EAAAE,SAAA,SAAAlI,GACA,IAAAsM,EAAAxL,KAAA0V,QAAAxW,GACAsM,GACAF,EAAApK,KAAAsK,KAEAxL,MACAsL,GAOA5K,EAAAuL,gBAAA,WACA,OAAAjM,KAAAsL,MAAAY,KAAA,SAAAV,GACA,OAAAA,EAAA7B,YASAjJ,EAAAkV,cAAA,SAAA1W,GAEA,IAAAsM,EAAAxL,KAAA0V,QAAAxW,GACA,OAAAsM,IAIAtM,EAAAgH,EAAAS,UAAAzH,EAAA,wBACAc,KAAA0V,QAAAxW,KASAwB,EAAAmV,wBAAA,SAAAC,EAAAtU,GACA,IAAAsU,EACA,OAAA9V,KAAA+N,cAAA9B,kBAEAzK,OAAA/B,IAAA+B,EAAAxB,KAAAoO,cAAA5M,EAEA,IAAAqQ,EAAA7R,KAAA0N,OAAAnM,OACA,GAAA,EAAA,EAAAuU,GAAAjE,EACA,OAAA7R,KAAAiM,kBAIA,IADA,IAAA8J,EAAA,GACA9W,EAAAuC,EAAAsU,EAAA7W,GAAAuC,EAAAsU,EAAA7W,IAAA,CACA,IAAA+W,EAAAhW,KAAAL,QAAAmN,WAAA5G,EAAA6G,OAAA9N,EAAA4S,GAAA5S,EACA+S,EAAAhS,KAAA0N,OAAAsI,GACAhE,IACA+D,EAAAA,EAAA9M,OAAA+I,EAAA/F,oBAGA,OAAA8J,GAQArV,EAAA6U,UAAA,SAAAvP,GACA,GAAA,iBAAAA,EAEA,OAAAhG,KAAAsL,MAAAtF,GAEA,GAAA,iBAAAA,EAAA,CAEA,GAAAA,EAAAuC,MAAA,eACA,OAGAvC,EAAAhG,KAAA2J,QAAAnG,cAAAwC,GAGA,OAAAhG,KAAA0V,QAAA1P,IAKAtF,EAAAuV,SAAA,WACAjW,KAAA0B,UAAA,aAIAhB,EAAAwV,mBAAA,SAAAnP,GAEA,cAAAA,EAAAC,MACAD,EAAAoP,iBAEAnW,KAAAoW,SAKA1V,EAAA2V,SAAA,WACArW,KAAAyQ,WACAzQ,KAAAkQ,UAGAhK,EAAAsB,eAAAgC,EAAA,WAAA,KAEA9I,EAAAwP,OAAA,WACA,GAAAlQ,KAAA2Q,SAAA,CAGA3Q,KAAA6B,UAEA7B,KAAAL,QAAAmN,aACA9M,KAAA+J,EAAA7D,EAAA6G,OAAA/M,KAAA+J,EAAA/J,KAAAmL,iBAEAnL,KAAAoR,gBACApR,KAAAqR,qBACArR,KAAAmQ,iBACAnQ,KAAA0B,UAAA,UAGA,IAAA2T,EAAArV,KAAAmV,kBAAAnV,KAAAmV,iBAAA,GACAnV,KAAAwV,WAAAH,GAAA,GAAA,KAIA3U,EAAA+P,SAAA,WACAzQ,KAAAL,QAAA8Q,YAOA,GAFAnO,EAAAtC,KAAA2J,QAAA,UAAA2M,QAEArV,QAAA,YACAjB,KAAA0Q,WAEA1Q,KAAAuW,eAOA7V,EAAA8V,UAAA,SAAAzP,GAEA,IAAA0P,EAAA/T,SAAAgU,eAAAhU,SAAAgU,eAAA1W,KAAA2J,QACA,GAAA3J,KAAAL,QAAAmQ,gBAAA2G,EAAA,CAIA,IAAAE,EAAAnN,EAAAoN,iBAAA7P,EAAA8P,SACAF,GACAA,EAAAvW,KAAAJ,QAIAwJ,EAAAoN,iBAAA,CAEA,GAAA,WACA,IAAAE,EAAA9W,KAAAL,QAAA0N,YAAA,OAAA,WACArN,KAAAiW,WACAjW,KAAA8W,MAGA,GAAA,WACA,IAAAC,EAAA/W,KAAAL,QAAA0N,YAAA,WAAA,OACArN,KAAAiW,WACAjW,KAAA+W,OAMArW,EAAA0V,MAAA,WAIA,IAAAY,EAAA1Z,EAAA2Z,YACAjX,KAAA2J,QAAAyM,MAAA,CAAAc,eAAA,IAEA5Z,EAAA2Z,aAAAD,GACA1Z,EAAA6Z,SAAA7Z,EAAA8Z,YAAAJ,IAOAtW,EAAA6V,WAAA,WACAvW,KAAA2Q,WAGA3Q,KAAA2J,QAAAoB,UAAAE,OAAA,oBACAjL,KAAA2J,QAAAoB,UAAAE,OAAA,gBACAjL,KAAAiV,wBAEAjV,KAAAsL,MAAAlE,SAAA,SAAAoE,GACAA,EAAAvB,aAEAjK,KAAA2J,QAAArG,YAAAtD,KAAAuQ,UAEAnB,EAAApP,KAAAuN,OAAAsD,SAAA7Q,KAAA2J,SACA3J,KAAAL,QAAAmQ,gBACA9P,KAAA2J,QAAAU,gBAAA,YACArK,KAAA2J,QAAA0N,oBAAA,UAAArX,OAGAA,KAAA2Q,UAAA,EACA3Q,KAAA0B,UAAA,gBAGAhB,EAAAuJ,QAAA,WACAjK,KAAAuW,aACAjZ,EAAA+Z,oBAAA,SAAArX,MACAA,KAAA4B,SACA5B,KAAA0B,UAAA,WACAhE,GAAAsC,KAAA0P,UACAhS,EAAA4Z,WAAAtX,KAAA2J,QAAA,mBAEA3J,KAAA2J,QAAA8F,oBACAF,EAAAvP,KAAAsQ,OAKApK,EAAAjG,OAAAS,EAAAyL,GASA3C,EAAApK,KAAA,SAAAF,GAEA,IAAAmR,GADAnR,EAAAgH,EAAAW,gBAAA3H,KACAA,EAAAuQ,aACA,OAAAY,GAAAd,EAAAc,IAGAnK,EAAAyC,SAAAa,EAAA,YAEA9L,GAAAA,EAAA6C,SACA7C,EAAA6C,QAAA,WAAAiJ,GAIAA,EAAA+N,UAAA,SAAAC,GACA9Z,EAAA8Z,GAGAhO,EAAAC,KAAAA,EACAD,EAAA4B,MAAAA,EAEA5B;;;;;;AAYA,SAAAlM,EAAAC,GAGA,mBAAAC,QAAAA,OAAAC,IAEAD,OAAA,wBAAA,CACA,0BACA,SAAAiD,GACA,OAAAlD,EAAAD,EAAAmD,MAEA,iBAAA9C,QAAAA,OAAAC,QAEAD,OAAAC,QAAAL,EACAD,EACAO,QAAA,eAIAP,EAAAma,WAAAla,EACAD,EACAA,EAAAmD,WApBA,CAwBAnD,QAAA,SAAAA,EAAAmD,GAMA,SAAAgX,KAGA,IAAA/W,EAAA+W,EAAAxZ,UAAAyZ,OAAA9N,OAAAnJ,EAAAxC,WAEAyC,EAAAiX,eAAA,SAAAzY,GACAc,KAAA4X,gBAAA1Y,GAAA,IAGAwB,EAAAmX,iBAAA,SAAA3Y,GACAc,KAAA4X,gBAAA1Y,GAAA,IAOAwB,EAAAkX,gBAAA,SAAA1Y,EAAA4Y,GAGA,IAAAC,GADAD,OAAArY,IAAAqY,GAAAA,GACA,mBAAA,sBAGAE,EAAA,YACA1a,EAAA2a,aAEAD,EAAA,cACA,iBAAA1a,IAEA0a,EAAA,cAEA9Y,EAAA6Y,GAAAC,EAAAhY,OAIAU,EAAAoG,YAAA,SAAAC,GACA,IAAA1H,EAAA,KAAA0H,EAAAC,KACAhH,KAAAX,IACAW,KAAAX,GAAA0H,IAKArG,EAAAwX,SAAA,SAAAC,GACA,IAAA,IAAAlZ,EAAA,EAAAA,EAAAkZ,EAAA5W,OAAAtC,IAAA,CACA,IAAAmZ,EAAAD,EAAAlZ,GACA,GAAAmZ,EAAAC,YAAArY,KAAAsY,kBACA,OAAAF,IAOA1X,EAAA6X,YAAA,SAAAxR,GAEA,IAAAyR,EAAAzR,EAAAyR,OACAA,GAAA,IAAAA,GAAA,IAAAA,GAGAxY,KAAAyY,aAAA1R,EAAAA,IAGArG,EAAAgY,aAAA,SAAA3R,GACA/G,KAAAyY,aAAA1R,EAAAA,EAAA4R,eAAA,KAGAjY,EAAAkY,cAAA,SAAA7R,GACA/G,KAAAyY,aAAA1R,EAAAA,IAQArG,EAAA+X,aAAA,SAAA1R,EAAA8R,GAGA9R,EAAAyR,QAAAxY,KAAAkO,gBAIAlO,KAAAkO,eAAA,EAEAlO,KAAAsY,uBAAA7Y,IAAAoZ,EAAAC,UAEAD,EAAAC,UAAAD,EAAAR,WAEArY,KAAA+Y,YAAAhS,EAAA8R,KAGAnY,EAAAqY,YAAA,SAAAhS,EAAA8R,GACA7Y,KAAAgZ,qBAAAjS,GACA/G,KAAA0B,UAAA,cAAA,CAAAqF,EAAA8R,KAIA,IAAAI,EAAA,CACAC,UAAA,CAAA,YAAA,WACAC,WAAA,CAAA,YAAA,WAAA,eACAC,YAAA,CAAA,cAAA,YAAA,kBA+JA,OA5JA1Y,EAAAsY,qBAAA,SAAAjS,GACA,GAAAA,EAAA,CAIA,IAAAjG,EAAAmY,EAAAlS,EAAAC,MAEAlG,EAAAsG,SAAA,SAAAxG,GACAtD,EAAA6K,iBAAAvH,EAAAZ,QACAA,MAEAA,KAAAqZ,oBAAAvY,IAGAJ,EAAA4Y,uBAAA,WAEAtZ,KAAAqZ,sBAGArZ,KAAAqZ,oBAAAjS,SAAA,SAAAxG,GACAtD,EAAA+Z,oBAAAzW,EAAAZ,QACAA,aAEAA,KAAAqZ,sBAKA3Y,EAAA6Y,YAAA,SAAAxS,GACA/G,KAAAwZ,aAAAzS,EAAAA,IAGArG,EAAA+Y,cAAA,SAAA1S,GACAA,EAAA+R,WAAA9Y,KAAAsY,mBACAtY,KAAAwZ,aAAAzS,EAAAA,IAIArG,EAAAgZ,YAAA,SAAA3S,GACA,IAAAqR,EAAApY,KAAAkY,SAAAnR,EAAA4R,gBACAP,GACApY,KAAAwZ,aAAAzS,EAAAqR,IAUA1X,EAAA8Y,aAAA,SAAAzS,EAAA8R,GACA7Y,KAAA2Z,YAAA5S,EAAA8R,IAIAnY,EAAAiZ,YAAA,SAAA5S,EAAA8R,GACA7Y,KAAA0B,UAAA,cAAA,CAAAqF,EAAA8R,KAMAnY,EAAAkZ,UAAA,SAAA7S,GACA/G,KAAA6Z,WAAA9S,EAAAA,IAGArG,EAAAoZ,YAAA,SAAA/S,GACAA,EAAA+R,WAAA9Y,KAAAsY,mBACAtY,KAAA6Z,WAAA9S,EAAAA,IAIArG,EAAAqZ,WAAA,SAAAhT,GACA,IAAAqR,EAAApY,KAAAkY,SAAAnR,EAAA4R,gBACAP,GACApY,KAAA6Z,WAAA9S,EAAAqR,IAUA1X,EAAAmZ,WAAA,SAAA9S,EAAA8R,GACA7Y,KAAAga,eACAha,KAAAia,UAAAlT,EAAA8R,IAIAnY,EAAAuZ,UAAA,SAAAlT,EAAA8R,GACA7Y,KAAA0B,UAAA,YAAA,CAAAqF,EAAA8R,KAMAnY,EAAAsZ,aAAA,WACAha,KAAAka,gBACAla,KAAAsZ,yBACAtZ,KAAAma,eAGAzZ,EAAAwZ,cAAA,WAEAla,KAAAkO,eAAA,SACAlO,KAAAsY,mBAGA5X,EAAAyZ,YAzNA,aA6NAzZ,EAAA0Z,gBAAA,SAAArT,GACAA,EAAA+R,WAAA9Y,KAAAsY,mBACAtY,KAAAqa,eAAAtT,EAAAA,IAIArG,EAAA4Z,cAAA,SAAAvT,GACA,IAAAqR,EAAApY,KAAAkY,SAAAnR,EAAA4R,gBACAP,GACApY,KAAAqa,eAAAtT,EAAAqR,IAUA1X,EAAA2Z,eAAA,SAAAtT,EAAA8R,GACA7Y,KAAAga,eACAha,KAAAua,cAAAxT,EAAA8R,IAIAnY,EAAA6Z,cAAA,SAAAxT,EAAA8R,GACA7Y,KAAA0B,UAAA,gBAAA,CAAAqF,EAAA8R,KAMApB,EAAA+C,gBAAA,SAAA3B,GACA,MAAA,CACA9O,EAAA8O,EAAA4B,MACAC,EAAA7B,EAAA8B,QAMAlD;;;;;;AAYA,SAAAna,EAAAC,GAIA,mBAAAC,QAAAA,OAAAC,IAEAD,OAAA,wBAAA,CACA,0BACA,SAAAia,GACA,OAAAla,EAAAD,EAAAma,MAEA,iBAAA9Z,QAAAA,OAAAC,QAEAD,OAAAC,QAAAL,EACAD,EACAO,QAAA,eAIAP,EAAAsd,WAAArd,EACAD,EACAA,EAAAma,YArBA,CAyBAna,QAAA,SAAAA,EAAAma,GAMA,SAAAmD,KAGA,IAAAla,EAAAka,EAAA3c,UAAAyZ,OAAA9N,OAAA6N,EAAAxZ,WAIAyC,EAAAma,YAAA,WACA7a,KAAA8a,cAAA,IAGApa,EAAAqa,cAAA,WACA/a,KAAA8a,cAAA,IAOApa,EAAAoa,aAAA,SAAAhD,GAMA,IAFA,IAAAC,GAFAD,OAAArY,IAAAqY,GAAAA,GAEA,mBAAA,sBACAkD,EAAAlD,EAAA9X,KAAAib,kBAAA,GACAhc,EAAA,EAAAA,EAAAe,KAAAkb,QAAA3Z,OAAAtC,IAAA,CACA,IAAAkc,EAAAnb,KAAAkb,QAAAjc,GACAe,KAAA4X,gBAAAuD,EAAArD,GACAqD,EAAApD,GAAA,QAAA/X,MAEA1C,EAAA2a,eACAkD,EAAA9Y,MAAA2Y,YAAAA,KAMAta,EAAAua,kBAAA,OASAva,EAAAqY,YAAA,SAAAhS,EAAA8R,GACA7Y,KAAAob,gBAAArU,KAMA/G,KAAAqb,mBAAA,CACAZ,MAAA5B,EAAA4B,MACAE,MAAA9B,EAAA8B,OAGA5T,EAAAoP,iBACAnW,KAAAsb,kBAEAtb,KAAAgZ,qBAAAjS,GACA/G,KAAA0B,UAAA,cAAA,CAAAqF,EAAA8R,MAIA,IAAA0C,EAAA,CACAC,UAAA,EACAC,OAAA,EACAC,QAAA,EACAC,QAAA,GAIAC,EAAA,CACAC,OAAA,EACAC,UAAA,EACAtD,QAAA,EACAuD,QAAA,EACAC,OAAA,EACAC,MAAA,GAiKA,OA7JAvb,EAAA0a,gBAAA,SAAArU,GACA,IAAAmV,EAAAX,EAAAxU,EAAA4D,OAAAwR,UACAC,EAAAR,EAAA7U,EAAA4D,OAAA3D,MACAqV,GAAAH,GAAAE,EAIA,OAHAC,GACArc,KAAAka,gBAEAmC,GAIA3b,EAAA4a,gBAAA,WACA,IAAAgB,EAAA5Z,SAAAgU,cAEA4F,GAAAA,EAAAC,MAAAD,GAAA5Z,SAAAO,MAEAqZ,EAAAC,QAWA7b,EAAAiZ,YAAA,SAAA5S,EAAA8R,GACA,IAAA2D,EAAAxc,KAAAyc,iBAAA1V,EAAA8R,GACA7Y,KAAA0B,UAAA,cAAA,CAAAqF,EAAA8R,EAAA2D,IACAxc,KAAA0c,UAAA3V,EAAA8R,EAAA2D,IAIA9b,EAAA+b,iBAAA,SAAA1V,EAAA8R,GACA,IAAA2D,EAAA,CACAzS,EAAA8O,EAAA4B,MAAAza,KAAAqb,mBAAAZ,MACAC,EAAA7B,EAAA8B,MAAA3a,KAAAqb,mBAAAV,OAMA,OAHA3a,KAAA2c,YAAA3c,KAAA4c,eAAAJ,IACAxc,KAAA6c,WAAA9V,EAAA8R,GAEA2D,GAIA9b,EAAAkc,eAAA,SAAAJ,GACA,OAAApZ,KAAAuR,IAAA6H,EAAAzS,GAAA,GAAA3G,KAAAuR,IAAA6H,EAAA9B,GAAA,GAUAha,EAAAuZ,UAAA,SAAAlT,EAAA8R,GACA7Y,KAAA0B,UAAA,YAAA,CAAAqF,EAAA8R,IACA7Y,KAAA8c,eAAA/V,EAAA8R,IAGAnY,EAAAoc,eAAA,SAAA/V,EAAA8R,GACA7Y,KAAA2c,WACA3c,KAAA+c,SAAAhW,EAAA8R,GAGA7Y,KAAAgd,aAAAjW,EAAA8R,IAOAnY,EAAAmc,WAAA,SAAA9V,EAAA8R,GACA7Y,KAAA2c,YAAA,EAEA3c,KAAAid,oBAAA,EACAjd,KAAAkd,UAAAnW,EAAA8R,IAGAnY,EAAAwc,UAAA,SAAAnW,EAAA8R,GACA7Y,KAAA0B,UAAA,YAAA,CAAAqF,EAAA8R,KAIAnY,EAAAgc,UAAA,SAAA3V,EAAA8R,EAAA2D,GAEAxc,KAAA2c,YAIA3c,KAAAmd,SAAApW,EAAA8R,EAAA2D,IAGA9b,EAAAyc,SAAA,SAAApW,EAAA8R,EAAA2D,GACAzV,EAAAoP,iBACAnW,KAAA0B,UAAA,WAAA,CAAAqF,EAAA8R,EAAA2D,KAIA9b,EAAAqc,SAAA,SAAAhW,EAAA8R,GAEA7Y,KAAA2c,YAAA,EAEA5U,WAAA,kBACA/H,KAAAid,oBACAG,KAAApd,OAEAA,KAAAqd,QAAAtW,EAAA8R,IAGAnY,EAAA2c,QAAA,SAAAtW,EAAA8R,GACA7Y,KAAA0B,UAAA,UAAA,CAAAqF,EAAA8R,KAMAnY,EAAA4c,QAAA,SAAAvW,GACA/G,KAAAid,oBACAlW,EAAAoP,kBAOAzV,EAAAsc,aAAA,SAAAjW,EAAA8R,GAEA7Y,KAAAud,mBAAA,WAAAxW,EAAAC,OAIAhH,KAAAwd,YAAAzW,EAAA8R,GAGA,WAAA9R,EAAAC,OACAhH,KAAAud,mBAAA,EAEAxV,WAAA,kBACA/H,KAAAud,mBACAH,KAAApd,MAAA,QAIAU,EAAA8c,YAAA,SAAAzW,EAAA8R,GACA7Y,KAAA0B,UAAA,cAAA,CAAAqF,EAAA8R,KAKA+B,EAAAJ,gBAAA/C,EAAA+C,gBAIAI,KAKA,SAAAtd,EAAAC,GAEA,mBAAAC,QAAAA,OAAAC,IAEAD,OAAA,mBAAA,CACA,aACA,wBACA,yBACA,SAAAgM,EAAAoR,EAAA1U,GACA,OAAA3I,EAAAD,EAAAkM,EAAAoR,EAAA1U,MAEA,iBAAAvI,QAAAA,OAAAC,QAEAD,OAAAC,QAAAL,EACAD,EACAO,QAAA,cACAA,QAAA,cACAA,QAAA,mBAIAP,EAAAkM,SAAAjM,EACAD,EACAA,EAAAkM,SACAlM,EAAAsd,WACAtd,EAAA2I,cAzBA,CA6BA3I,QAAA,SAAAA,EAAAkM,EAAAoR,EAAA1U,GAMAA,EAAAjG,OAAAuJ,EAAAoG,SAAA,CACA6N,UAAA,KACAC,cAAA,IAKAlU,EAAA4G,cAAAlP,KAAA,eAIA,IAAAR,EAAA8I,EAAAvL,UACAiI,EAAAjG,OAAAS,EAAAka,EAAA3c,WACAyC,EAAAua,kBAAA,QAIA,IAAA0C,EAAA,gBAAAjb,SACAkb,GAAA,EAEAld,EAAAmd,YAAA,WACA7d,KAAAW,GAAA,WAAAX,KAAA8d,gBACA9d,KAAAW,GAAA,WAAAX,KAAA+d,eACA/d,KAAAW,GAAA,aAAAX,KAAAge,kBACAhe,KAAAW,GAAA,aAAAX,KAAAie,iBAIAN,IAAAC,IACAtgB,EAAA6K,iBAAA,aAAA,eACAyV,GAAA,IAIAld,EAAAod,eAAA,WACA9d,KAAAkb,QAAA,CAAAlb,KAAAuQ,UACAvQ,KAAA6a,cACA7a,KAAAie,mBAGAvd,EAAAsd,iBAAA,WACAhe,KAAA+a,gBACA/a,KAAA2J,QAAAoB,UAAAE,OAAA,iBAGAvK,EAAAud,gBAAA,WAEA,MAAAje,KAAAL,QAAA8d,UACAzd,KAAA8O,YAAA9O,KAAA0N,OAAAnM,OAAA,EAEAvB,KAAA8O,YAAA9O,KAAAL,QAAA8d,UAEAzd,KAAA8O,YACA9O,KAAA2J,QAAAoB,UAAAC,IAAA,gBAEAhL,KAAA2J,QAAAoB,UAAAE,OAAA,iBAKAvK,EAAAwd,SAAA,WACAle,KAAAL,QAAA8d,WAAA,EACAzd,KAAAie,mBAGAvd,EAAAyd,WAAA,WACAne,KAAAL,QAAA8d,WAAA,EACAzd,KAAAie,mBAGAvd,EAAAqd,cAAA,kBACA/d,KAAAmO,iBAKAzN,EAAAqY,YAAA,SAAAhS,EAAA8R,GACA7Y,KAAA8O,YAIA9O,KAAAob,gBAAArU,KAKA/G,KAAAoe,2BAAArX,GACA/G,KAAAqe,iBAAAtX,GAEArE,SAAAgU,eAAA1W,KAAA2J,SAEA3J,KAAAsb,kBAIAtb,KAAAgP,MAAAhP,KAAA+J,EACA/J,KAAAuQ,SAAAxF,UAAAC,IAAA,mBAEAhL,KAAAse,kBAAAC,IACAjhB,EAAA6K,iBAAA,SAAAnI,MAEAA,KAAAwe,oBAAAzX,EAAA8R,IAvBA7Y,KAAAwe,oBAAAzX,EAAA8R,IA2BAnY,EAAA8d,oBAAA,SAAAzX,EAAA8R,GAGA7Y,KAAAqb,mBAAA,CACAZ,MAAA5B,EAAA4B,MACAE,MAAA9B,EAAA8B,OAGA3a,KAAAgZ,qBAAAjS,GACA/G,KAAA8N,cAAA,cAAA/G,EAAA,CAAA8R,KAGA,IAAA4F,EAAA,CACAhD,OAAA,EACAD,UAAA,EACAE,QAAA,GAqOA,SAAA6C,IACA,MAAA,CACAxU,EAAAzM,EAAA8Z,YACAsD,EAAApd,EAAA2Z,aAMA,OA3OAvW,EAAA2d,iBAAA,SAAAtX,GACA0X,EAAA1X,EAAA4D,OAAAwR,WAEAnc,KAAAoW,SAIA1V,EAAA0d,2BAAA,SAAArX,GACA,IAAA2X,EAAA,cAAA3X,EAAAC,KACA2X,EAAA,SAAA5X,EAAA6X,YACAC,EAAAJ,EAAA1X,EAAA4D,OAAAwR,UACAuC,GAAAC,GAAAE,GACA9X,EAAAoP,kBAMAzV,EAAAkc,eAAA,SAAAJ,GACA,OAAApZ,KAAAuR,IAAA6H,EAAAzS,GAAA/J,KAAAL,QAAA+d,eAKAhd,EAAAuZ,UAAA,SAAAlT,EAAA8R,UACA7Y,KAAA8e,iBACA9e,KAAAuQ,SAAAxF,UAAAE,OAAA,mBACAjL,KAAA8N,cAAA,YAAA/G,EAAA,CAAA8R,IACA7Y,KAAA8c,eAAA/V,EAAA8R,IAGAnY,EAAAyZ,YAAA,WACA7c,EAAA+Z,oBAAA,SAAArX,aACAA,KAAAse,mBAKA5d,EAAAwc,UAAA,SAAAnW,EAAA8R,GACA7Y,KAAA8O,cAGA9O,KAAA+e,kBAAA/e,KAAA+J,EACA/J,KAAAwU,iBACAlX,EAAA+Z,oBAAA,SAAArX,MACAA,KAAA8N,cAAA,YAAA/G,EAAA,CAAA8R,MAGAnY,EAAAiZ,YAAA,SAAA5S,EAAA8R,GACA,IAAA2D,EAAAxc,KAAAyc,iBAAA1V,EAAA8R,GACA7Y,KAAA8N,cAAA,cAAA/G,EAAA,CAAA8R,EAAA2D,IACAxc,KAAA0c,UAAA3V,EAAA8R,EAAA2D,IAGA9b,EAAAyc,SAAA,SAAApW,EAAA8R,EAAA2D,GACA,GAAAxc,KAAA8O,YAAA,CAGA/H,EAAAoP,iBAEAnW,KAAAgf,cAAAhf,KAAAgP,MAEA,IAAAiQ,EAAAjf,KAAAL,QAAA0N,aAAA,EAAA,EACArN,KAAAL,QAAAmN,aAEA0P,EAAAzS,GAAA/J,KAAAmL,gBAEA,IAAA6D,EAAAhP,KAAA+e,kBAAAvC,EAAAzS,EAAAkV,EAEA,IAAAjf,KAAAL,QAAAmN,YAAA9M,KAAA0N,OAAAnM,OAAA,CAEA,IAAA2d,EAAA9b,KAAAqI,KAAAzL,KAAA0N,OAAA,GAAA/C,OAAA3K,KAAA+e,mBACA/P,EAAAA,EAAAkQ,EAAA,IAAAlQ,EAAAkQ,GAAAlQ,EACA,IAAA6E,EAAAzQ,KAAA0Q,KAAA9T,KAAAuR,eAAA5G,OAAA3K,KAAA+e,mBACA/P,EAAAA,EAAA6E,EAAA,IAAA7E,EAAA6E,GAAA7E,EAGAhP,KAAAgP,MAAAA,EAEAhP,KAAAmf,aAAA,IAAAC,KACApf,KAAA8N,cAAA,WAAA/G,EAAA,CAAA8R,EAAA2D,MAGA9b,EAAA2c,QAAA,SAAAtW,EAAA8R,GACA,GAAA7Y,KAAA8O,YAAA,CAGA9O,KAAAL,QAAA0f,aACArf,KAAAmO,iBAAA,GAGA,IAAA3M,EAAAxB,KAAAsf,uBAEA,GAAAtf,KAAAL,QAAA0f,aAAArf,KAAAL,QAAAmN,WAAA,CAIA,IAAAyS,EAAAvf,KAAAwf,qBACAxf,KAAAmO,iBAAAoR,EAAAvf,KAAA0N,OAAA,GAAA/C,SACA4U,EAAAvf,KAAAuR,eAAA5G,YACA3K,KAAAL,QAAA0f,YAAA7d,GAAAxB,KAAAoO,gBAEA5M,GAAAxB,KAAAyf,6BAEAzf,KAAAgf,cAIAhf,KAAA8U,aAAA9U,KAAAL,QAAAmN,WACA9M,KAAA8K,OAAAtJ,UACAxB,KAAA8U,aACA9U,KAAA8N,cAAA,UAAA/G,EAAA,CAAA8R,MAGAnY,EAAA4e,qBAAA,WACA,IAAAC,EAAAvf,KAAAwf,qBAEAE,EAAAtc,KAAAuR,IAAA3U,KAAA2f,kBAAAJ,EAAAvf,KAAAoO,gBAEAwR,EAAA5f,KAAA6f,mBAAAN,EAAAG,EAAA,GACAI,EAAA9f,KAAA6f,mBAAAN,EAAAG,GAAA,GAIA,OAFAE,EAAAF,SAAAI,EAAAJ,SACAE,EAAApe,MAAAse,EAAAte,OAYAd,EAAAmf,mBAAA,SAAAN,EAAAG,EAAAnM,GAUA,IATA,IAAA/R,EAAAxB,KAAAoO,cACA2R,EAAAC,EAAAA,EACAC,EAAAjgB,KAAAL,QAAA6T,UAAAxT,KAAAL,QAAAmN,WAEA,SAAAoT,EAAAC,GACA,OAAAD,GAAAC,GACA,SAAAD,EAAAC,GACA,OAAAD,EAAAC,GAEAF,EAAAP,EAAAK,KAEAve,GAAA+R,EACAwM,EAAAL,EAEA,QADAA,EAAA1f,KAAA2f,kBAAAJ,EAAA/d,MAIAke,EAAAtc,KAAAuR,IAAA+K,GAEA,MAAA,CACAA,SAAAK,EAEAve,MAAAA,EAAA+R,IAUA7S,EAAAif,iBAAA,SAAA5V,EAAAvI,GACA,IAAAqQ,EAAA7R,KAAA0N,OAAAnM,OAEA6e,EAAApgB,KAAAL,QAAAmN,YAAA+E,EAAA,EACAmE,EAAAoK,EAAAla,EAAA6G,OAAAvL,EAAAqQ,GAAArQ,EACAwQ,EAAAhS,KAAA0N,OAAAsI,GACA,IAAAhE,EACA,OAAA,KAGA,IAAAqO,EAAAD,EAAApgB,KAAAmL,eAAA/H,KAAAkd,MAAA9e,EAAAqQ,GAAA,EACA,OAAA9H,GAAAiI,EAAArH,OAAA0V,IAGA3f,EAAA+e,mBAAA,WAEA,QAAAhgB,IAAAO,KAAAgf,gBAAAhf,KAAAmf,cAEA,IAAAC,KAAApf,KAAAmf,aAAA,IACA,OAAA,EAGA,IAAAO,EAAA1f,KAAA2f,kBAAA3f,KAAAgP,MAAAhP,KAAAoO,eACAsG,EAAA1U,KAAAgf,cAAAhf,KAAAgP,MACA,OAAA0Q,EAAA,GAAAhL,EAAA,EAEA,EACAgL,EAAA,GAAAhL,EAAA,GAEA,EAEA,GAKAhU,EAAA8c,YAAA,SAAAzW,EAAA8R,GAEA,IAAA0H,EAAAvgB,KAAA4V,cAAA7O,EAAA4D,QACA2G,EAAAiP,GAAAA,EAAA5W,QACA0J,EAAAkN,GAAAvgB,KAAAsL,MAAArK,QAAAsf,GACAvgB,KAAA8N,cAAA,cAAA/G,EAAA,CAAA8R,EAAAvH,EAAA+B,KAKA3S,EAAA8f,SAAA,WACA,IAAAC,EAAAlC,IACAmC,EAAA1gB,KAAAse,kBAAAvU,EAAA0W,EAAA1W,EACA4W,EAAA3gB,KAAAse,kBAAA5D,EAAA+F,EAAA/F,GAEAtX,KAAAuR,IAAA+L,GAAA,GAAAtd,KAAAuR,IAAAgM,GAAA,IACA3gB,KAAAga,gBAeAxQ,KAKA,SAAAlM,EAAAC,GAEA,mBAAAC,QAAAA,OAAAC,IAEAD,OAAA,+BAAA,CACA,aACA,wBACA,yBACA,SAAAgM,EAAAiO,EAAAvR,GACA,OAAA3I,EAAAD,EAAAkM,EAAAiO,EAAAvR,MAEA,iBAAAvI,QAAAA,OAAAC,QAEAD,OAAAC,QAAAL,EACAD,EACAO,QAAA,cACAA,QAAA,cACAA,QAAA,mBAIAN,EACAD,EACAA,EAAAkM,SACAlM,EAAAma,WACAna,EAAA2I,cAzBA,CA6BA3I,QAAA,SAAAA,EAAAkM,EAAAiO,EAAAvR,GACA,aAEA,IAAA0a,EAAA,6BAIA,SAAAC,EAAA5B,EAAAvV,GACA1J,KAAAif,UAAAA,EACAjf,KAAA0J,OAAAA,EACA1J,KAAA6P,UAGAgR,EAAA5iB,UAAAyZ,OAAA9N,OAAA6N,EAAAxZ,WAEA4iB,EAAA5iB,UAAA4R,QAAA,WAEA7P,KAAA8gB,WAAA,EACA9gB,KAAA+gB,YAAA,GAAA/gB,KAAAif,UACA,IAAA+B,EAAAhhB,KAAA0J,OAAA/J,QAAA0N,YAAA,GAAA,EACArN,KAAAihB,OAAAjhB,KAAAif,WAAA+B,EAEA,IAAArX,EAAA3J,KAAA2J,QAAAjH,SAAAC,cAAA,UACAgH,EAAAJ,UAAA,4CACAI,EAAAJ,WAAAvJ,KAAA+gB,WAAA,YAAA,QAEApX,EAAAG,aAAA,OAAA,UAEA9J,KAAAkhB,UAEAvX,EAAAG,aAAA,aAAA9J,KAAA+gB,WAAA,WAAA,QAGA,IAAAI,EAAAnhB,KAAAohB,YACAzX,EAAAxG,YAAAge,GAEAnhB,KAAA0J,OAAA/I,GAAA,SAAAX,KAAAqhB,OAAAjE,KAAApd,OACAA,KAAAW,GAAA,cAAAX,KAAA0J,OAAAwM,mBAAAkH,KAAApd,KAAA0J,UAGAmX,EAAA5iB,UAAAyS,SAAA,WACA1Q,KAAA2X,eAAA3X,KAAA2J,SACA3J,KAAA2J,QAAAxB,iBAAA,QAAAnI,MAEAA,KAAA0J,OAAAC,QAAAxG,YAAAnD,KAAA2J,UAGAkX,EAAA5iB,UAAAsY,WAAA,WAEAvW,KAAA0J,OAAAC,QAAArG,YAAAtD,KAAA2J,SAEA3J,KAAA6X,iBAAA7X,KAAA2J,SACA3J,KAAA2J,QAAA0N,oBAAA,QAAArX,OAGA6gB,EAAA5iB,UAAAmjB,UAAA,WACA,IAAAD,EAAAze,SAAA4e,gBAAAV,EAAA,OACAO,EAAArX,aAAA,QAAA,wBACAqX,EAAArX,aAAA,UAAA,eACA,IAAAyX,EAAA7e,SAAA4e,gBAAAV,EAAA,QACAY,EAYA,SAAAC,GAEA,GAAA,iBAAAA,EACA,OAAAA,EAGA,MAAA,KAAAA,EAAAC,GAAA,SACAD,EAAAE,GAAA,KAAAF,EAAAG,GAAA,IACA,MAAAH,EAAAI,GAAA,KAAAJ,EAAAK,GAAA,IACA,MAAAL,EAAAM,GAHA,UAIAN,EAAAI,GAAA,KAAA,GAAAJ,EAAAK,IACA,MAAAL,EAAAE,GAAA,KAAA,GAAAF,EAAAG,IACA,KAxBAI,CAAAhiB,KAAA0J,OAAA/J,QAAAsiB,YAQA,OAPAV,EAAAzX,aAAA,IAAA0X,GACAD,EAAAzX,aAAA,QAAA,SAEA9J,KAAAihB,QACAM,EAAAzX,aAAA,YAAA,oCAEAqX,EAAAhe,YAAAoe,GACAJ,GAmBAN,EAAA5iB,UAAA6I,YAAAZ,EAAAY,YAEA+Z,EAAA5iB,UAAAqf,QAAA,WACA,GAAAtd,KAAA8gB,UAAA,CAGA9gB,KAAA0J,OAAAuM,WACA,IAAA5W,EAAAW,KAAA+gB,WAAA,WAAA,OACA/gB,KAAA0J,OAAArK,OAKAwhB,EAAA5iB,UAAAikB,OAAA,WACAliB,KAAA8gB,YAGA9gB,KAAA2J,QAAAwY,UAAA,EACAniB,KAAA8gB,WAAA,IAGAD,EAAA5iB,UAAAijB,QAAA,WACAlhB,KAAA8gB,YAGA9gB,KAAA2J,QAAAwY,UAAA,EACAniB,KAAA8gB,WAAA,IAGAD,EAAA5iB,UAAAojB,OAAA,WAEA,IAAA3T,EAAA1N,KAAA0J,OAAAgE,OAEA,GAAA1N,KAAA0J,OAAA/J,QAAAmN,YAAAY,EAAAnM,OAAA,EACAvB,KAAAkiB,aADA,CAIA,IAAAE,EAAA1U,EAAAnM,OAAAmM,EAAAnM,OAAA,EAAA,EACA8gB,EAAAriB,KAAA+gB,WAAA,EAAAqB,EAEApiB,KADAA,KAAA0J,OAAA0E,eAAAiU,EAAA,UAAA,cAIAxB,EAAA5iB,UAAAgM,QAAA,WACAjK,KAAAuW,aACAvW,KAAA4B,UAKAsE,EAAAjG,OAAAuJ,EAAAoG,SAAA,CACA0S,iBAAA,EACAL,WAAA,CACAP,GAAA,GACAC,GAAA,GAAAC,GAAA,GACAC,GAAA,GAAAC,GAAA,GACAC,GAAA,MAIAvY,EAAA4G,cAAAlP,KAAA,0BACA,IAAAR,EAAA8I,EAAAvL,UA6BA,OA3BAyC,EAAA6hB,uBAAA,WACAviB,KAAAL,QAAA2iB,kBAIAtiB,KAAAwiB,WAAA,IAAA3B,GAAA,EAAA7gB,MACAA,KAAAyiB,WAAA,IAAA5B,EAAA,EAAA7gB,MAEAA,KAAAW,GAAA,WAAAX,KAAA0iB,2BAGAhiB,EAAAgiB,wBAAA,WACA1iB,KAAAwiB,WAAA9R,WACA1Q,KAAAyiB,WAAA/R,WACA1Q,KAAAW,GAAA,aAAAX,KAAA2iB,4BAGAjiB,EAAAiiB,0BAAA,WACA3iB,KAAAwiB,WAAAjM,aACAvW,KAAAyiB,WAAAlM,aACAvW,KAAAsB,IAAA,aAAAtB,KAAA2iB,4BAKAnZ,EAAAqX,eAAAA,EAEArX,KAKA,SAAAlM,EAAAC,GAEA,mBAAAC,QAAAA,OAAAC,IAEAD,OAAA,wBAAA,CACA,aACA,wBACA,yBACA,SAAAgM,EAAAiO,EAAAvR,GACA,OAAA3I,EAAAD,EAAAkM,EAAAiO,EAAAvR,MAEA,iBAAAvI,QAAAA,OAAAC,QAEAD,OAAAC,QAAAL,EACAD,EACAO,QAAA,cACAA,QAAA,cACAA,QAAA,mBAIAN,EACAD,EACAA,EAAAkM,SACAlM,EAAAma,WACAna,EAAA2I,cAzBA,CA6BA3I,QAAA,SAAAA,EAAAkM,EAAAiO,EAAAvR,GAMA,SAAA0c,EAAAlZ,GACA1J,KAAA0J,OAAAA,EACA1J,KAAA6P,UAGA+S,EAAA3kB,UAAAyZ,OAAA9N,OAAA6N,EAAAxZ,WAEA2kB,EAAA3kB,UAAA4R,QAAA,WAEA7P,KAAA6iB,OAAAngB,SAAAC,cAAA,MACA3C,KAAA6iB,OAAAtZ,UAAA,qBAEAvJ,KAAA8iB,KAAA,GAEA9iB,KAAA+iB,YAAA/iB,KAAAgjB,QAAA5F,KAAApd,MACAA,KAAAW,GAAA,cAAAX,KAAA0J,OAAAwM,mBAAAkH,KAAApd,KAAA0J,UAGAkZ,EAAA3kB,UAAAyS,SAAA,WACA1Q,KAAAijB,UACAjjB,KAAA6iB,OAAA1a,iBAAA,QAAAnI,KAAA+iB,aACA/iB,KAAA2X,eAAA3X,KAAA6iB,QAEA7iB,KAAA0J,OAAAC,QAAAxG,YAAAnD,KAAA6iB,SAGAD,EAAA3kB,UAAAsY,WAAA,WACAvW,KAAA6iB,OAAAxL,oBAAA,QAAArX,KAAA+iB,aACA/iB,KAAA6X,iBAAA7X,KAAA6iB,QAEA7iB,KAAA0J,OAAAC,QAAArG,YAAAtD,KAAA6iB,SAGAD,EAAA3kB,UAAAglB,QAAA,WAEA,IAAAvO,EAAA1U,KAAA0J,OAAAgE,OAAAnM,OAAAvB,KAAA8iB,KAAAvhB,OACAmT,EAAA,EACA1U,KAAAkjB,QAAAxO,GACAA,EAAA,GACA1U,KAAAmjB,YAAAzO,IAIAkO,EAAA3kB,UAAAilB,QAAA,SAAAE,GAMA,IALA,IAAAC,EAAA3gB,SAAA4gB,yBACAC,EAAA,GACAhiB,EAAAvB,KAAA8iB,KAAAvhB,OACAkK,EAAAlK,EAAA6hB,EAEAnkB,EAAAsC,EAAAtC,EAAAwM,EAAAxM,IAAA,CACA,IAAAukB,EAAA9gB,SAAAC,cAAA,MACA6gB,EAAAja,UAAA,MACAia,EAAA1Z,aAAA,aAAA,aAAA7K,EAAA,IACAokB,EAAAlgB,YAAAqgB,GACAD,EAAAriB,KAAAsiB,GAGAxjB,KAAA6iB,OAAA1f,YAAAkgB,GACArjB,KAAA8iB,KAAA9iB,KAAA8iB,KAAA7Z,OAAAsa,IAGAX,EAAA3kB,UAAAklB,WAAA,SAAAC,GAEApjB,KAAA8iB,KAAArhB,OAAAzB,KAAA8iB,KAAAvhB,OAAA6hB,EAAAA,GAEAhc,SAAA,SAAAoc,GACAxjB,KAAA6iB,OAAAvf,YAAAkgB,KACAxjB,OAGA4iB,EAAA3kB,UAAAwlB,eAAA,WAEAzjB,KAAA0jB,cACA1jB,KAAA0jB,YAAAna,UAAA,MACAvJ,KAAA0jB,YAAArZ,gBAAA,iBAGArK,KAAA8iB,KAAAvhB,SAGAvB,KAAA0jB,YAAA1jB,KAAA8iB,KAAA9iB,KAAA0J,OAAA0E,eACApO,KAAA0jB,YAAAna,UAAA,kBACAvJ,KAAA0jB,YAAA5Z,aAAA,eAAA,UAGA8Y,EAAA3kB,UAAA0lB,MACAf,EAAA3kB,UAAA+kB,QAAA,SAAAjc,GACA,IAAA4D,EAAA5D,EAAA4D,OAEA,GAAA,MAAAA,EAAAwR,SAAA,CAIAnc,KAAA0J,OAAAuM,WACA,IAAAzU,EAAAxB,KAAA8iB,KAAA7hB,QAAA0J,GACA3K,KAAA0J,OAAAoB,OAAAtJ,KAGAohB,EAAA3kB,UAAAgM,QAAA,WACAjK,KAAAuW,aACAvW,KAAA4B,UAGA4H,EAAAoZ,SAAAA,EAIA1c,EAAAjG,OAAAuJ,EAAAoG,SAAA,CACAgU,UAAA,IAGApa,EAAA4G,cAAAlP,KAAA,mBAEA,IAAAR,EAAA8I,EAAAvL,UAmCA,OAjCAyC,EAAAmjB,gBAAA,WACA7jB,KAAAL,QAAAikB,WAGA5jB,KAAA4jB,SAAA,IAAAhB,EAAA5iB,MAEAA,KAAAW,GAAA,WAAAX,KAAA8jB,kBACA9jB,KAAAW,GAAA,SAAAX,KAAA+jB,wBACA/jB,KAAAW,GAAA,aAAAX,KAAAgkB,gBACAhkB,KAAAW,GAAA,SAAAX,KAAAgkB,gBACAhkB,KAAAW,GAAA,aAAAX,KAAAikB,sBAGAvjB,EAAAojB,iBAAA,WACA9jB,KAAA4jB,SAAAlT,YAGAhQ,EAAAqjB,uBAAA,WACA/jB,KAAA4jB,SAAAH,kBAGA/iB,EAAAsjB,eAAA,WACAhkB,KAAA4jB,SAAAX,WAGAviB,EAAAujB,mBAAA,WACAjkB,KAAA4jB,SAAArN,cAKA/M,EAAAoZ,SAAAA,EAEApZ,KAKA,SAAAlM,EAAAC,GAEA,mBAAAC,QAAAA,OAAAC,IAEAD,OAAA,qBAAA,CACA,wBACA,uBACA,eACA,SAAAiD,EAAAyF,EAAAsD,GACA,OAAAjM,EAAAkD,EAAAyF,EAAAsD,MAEA,iBAAA7L,QAAAA,OAAAC,QAEAD,OAAAC,QAAAL,EACAM,QAAA,cACAA,QAAA,kBACAA,QAAA,eAIAN,EACAD,EAAAmD,UACAnD,EAAA2I,aACA3I,EAAAkM,UAvBA,CA2BAlM,QAAA,SAAAmD,EAAAyF,EAAAsD,GAMA,SAAA0a,EAAAxa,GACA1J,KAAA0J,OAAAA,EACA1J,KAAAmkB,MAAA,UAEAnkB,KAAAokB,mBAAApkB,KAAAqkB,iBAAAjH,KAAApd,MACAA,KAAAskB,iBAAAtkB,KAAAukB,eAAAnH,KAAApd,MAGAkkB,EAAAjmB,UAAAyZ,OAAA9N,OAAAnJ,EAAAxC,WAGAimB,EAAAjmB,UAAAumB,KAAA,WACA,WAAAxkB,KAAAmkB,QAIAzhB,SAAA+hB,OAEA/hB,SAAAyF,iBAAA,mBAAAnI,KAAAskB,mBAIAtkB,KAAAmkB,MAAA,UAEAzhB,SAAAyF,iBAAA,mBAAAnI,KAAAokB,oBAEApkB,KAAA0kB,UAGAR,EAAAjmB,UAAAymB,KAAA,WAEA,GAAA,WAAA1kB,KAAAmkB,MAAA,CAIA,IAAAQ,EAAA3kB,KAAA0J,OAAA/J,QAAAilB,SAEAD,EAAA,iBAAAA,EAAAA,EAAA,IACA,IAAA7c,EAAA9H,KAEAA,KAAA6kB,QACA7kB,KAAA4H,QAAAG,YAAA,WACAD,EAAA4B,OAAAsL,MAAA,GACAlN,EAAA4c,SACAC,KAGAT,EAAAjmB,UAAA6mB,KAAA,WACA9kB,KAAAmkB,MAAA,UACAnkB,KAAA6kB,QAEAniB,SAAA2U,oBAAA,mBAAArX,KAAAokB,qBAGAF,EAAAjmB,UAAA4mB,MAAA,WACAhd,aAAA7H,KAAA4H,UAGAsc,EAAAjmB,UAAA8mB,MAAA,WACA,WAAA/kB,KAAAmkB,QACAnkB,KAAAmkB,MAAA,SACAnkB,KAAA6kB,UAIAX,EAAAjmB,UAAA+mB,QAAA,WAEA,UAAAhlB,KAAAmkB,OACAnkB,KAAAwkB,QAKAN,EAAAjmB,UAAAomB,iBAAA,WAEArkB,KADA0C,SAAA+hB,OACA,QAAA,cAGAP,EAAAjmB,UAAAsmB,eAAA,WACAvkB,KAAAwkB,OACA9hB,SAAA2U,oBAAA,mBAAArX,KAAAskB,mBAKApe,EAAAjG,OAAAuJ,EAAAoG,SAAA,CACAqV,sBAAA,IAGAzb,EAAA4G,cAAAlP,KAAA,iBACA,IAAAR,EAAA8I,EAAAvL,UA+DA,OA7DAyC,EAAAwkB,cAAA,WACAllB,KAAAmlB,OAAA,IAAAjB,EAAAlkB,MAEAA,KAAAW,GAAA,WAAAX,KAAAolB,gBACAplB,KAAAW,GAAA,WAAAX,KAAAqlB,YACArlB,KAAAW,GAAA,cAAAX,KAAAqlB,YACArlB,KAAAW,GAAA,aAAAX,KAAAslB,mBAGA5kB,EAAA0kB,eAAA,WACAplB,KAAAL,QAAAilB,WAGA5kB,KAAAmlB,OAAAX,OACAxkB,KAAA2J,QAAAxB,iBAAA,aAAAnI,QAKAU,EAAA6kB,WAAA,WACAvlB,KAAAmlB,OAAAX,QAGA9jB,EAAA2kB,WAAA,WACArlB,KAAAmlB,OAAAL,QAGApkB,EAAA8kB,YAAA,WACAxlB,KAAAmlB,OAAAJ,SAGArkB,EAAA+kB,cAAA,WACAzlB,KAAAmlB,OAAAH,WAGAtkB,EAAA4kB,iBAAA,WACAtlB,KAAAmlB,OAAAL,OACA9kB,KAAA2J,QAAA0N,oBAAA,aAAArX,OAMAU,EAAAglB,aAAA,WACA1lB,KAAAL,QAAAslB,uBAGAjlB,KAAAmlB,OAAAJ,QACA/kB,KAAA2J,QAAAxB,iBAAA,aAAAnI,QAIAU,EAAAilB,aAAA,WACA3lB,KAAAmlB,OAAAH,UACAhlB,KAAA2J,QAAA0N,oBAAA,aAAArX,OAKAwJ,EAAA0a,OAAAA,EAEA1a,KAKA,SAAAlM,EAAAC,GAEA,mBAAAC,QAAAA,OAAAC,IAEAD,OAAA,8BAAA,CACA,aACA,yBACA,SAAAgM,EAAAtD,GACA,OAAA3I,EAAAD,EAAAkM,EAAAtD,MAEA,iBAAAvI,QAAAA,OAAAC,QAEAD,OAAAC,QAAAL,EACAD,EACAO,QAAA,cACAA,QAAA,mBAIAN,EACAD,EACAA,EAAAkM,SACAlM,EAAA2I,cAtBA,CA0BA3I,QAAA,SAAAA,EAAAkM,EAAAtD,GAeA,IAAAxF,EAAA8I,EAAAvL,UAoHA,OA7GAyC,EAAAklB,OAAA,SAAA1e,EAAA1F,GACA,IAAA8J,EAAAtL,KAAAmR,WAAAjK,GACA,GAAAoE,GAAAA,EAAA/J,OAAA,CAGA,IAAAsQ,EAAA7R,KAAAsL,MAAA/J,OAEAC,OAAA/B,IAAA+B,EAAAqQ,EAAArQ,EAEA,IAAA6hB,EA1BA,SAAA/X,GACA,IAAA+X,EAAA3gB,SAAA4gB,yBAIA,OAHAhY,EAAAlE,SAAA,SAAAoE,GACA6X,EAAAlgB,YAAAqI,EAAA7B,YAEA0Z,EAqBAwC,CAAAva,GAEAwa,EAAAtkB,GAAAqQ,EACA,GAAAiU,EACA9lB,KAAAuN,OAAApK,YAAAkgB,OACA,CACA,IAAA0C,EAAA/lB,KAAAsL,MAAA9J,GAAAmI,QACA3J,KAAAuN,OAAAyY,aAAA3C,EAAA0C,GAGA,GAAA,IAAAvkB,EAEAxB,KAAAsL,MAAAA,EAAArC,OAAAjJ,KAAAsL,YACA,GAAAwa,EAEA9lB,KAAAsL,MAAAtL,KAAAsL,MAAArC,OAAAqC,OACA,CAEA,IAAA2a,EAAAjmB,KAAAsL,MAAA7J,OAAAD,EAAAqQ,EAAArQ,GACAxB,KAAAsL,MAAAtL,KAAAsL,MAAArC,OAAAqC,GAAArC,OAAAgd,GAGAjmB,KAAAwR,WAAAlG,GACAtL,KAAAkmB,WAAA1kB,GAAA,KAGAd,EAAAylB,OAAA,SAAAjf,GACAlH,KAAA4lB,OAAA1e,EAAAlH,KAAAsL,MAAA/J,SAGAb,EAAA0lB,QAAA,SAAAlf,GACAlH,KAAA4lB,OAAA1e,EAAA,IAOAxG,EAAAuK,OAAA,SAAA/D,GACA,IAAAoE,EAAAtL,KAAA2V,SAAAzO,GACA,GAAAoE,GAAAA,EAAA/J,OAAA,CAIA,IAAA8kB,EAAArmB,KAAAsL,MAAA/J,OAAA,EAEA+J,EAAAlE,SAAA,SAAAoE,GACAA,EAAAP,SACA,IAAAzJ,EAAAxB,KAAAsL,MAAArK,QAAAuK,GACA6a,EAAAjjB,KAAA0Q,IAAAtS,EAAA6kB,GACAngB,EAAAO,WAAAzG,KAAAsL,MAAAE,KACAxL,MAEAA,KAAAkmB,WAAAG,GAAA,KAOA3lB,EAAA4lB,eAAA,SAAApnB,GACA,IAAAsM,EAAAxL,KAAA0V,QAAAxW,GACA,GAAAsM,EAAA,CAGAA,EAAA3J,UAEA,IAAAL,EAAAxB,KAAAsL,MAAArK,QAAAuK,GACAxL,KAAAkmB,WAAA1kB,KAQAd,EAAAwlB,WAAA,SAAAK,EAAAC,GACA,IAAAC,EAAAzmB,KAAAqV,gBACArV,KAAAyR,eAAA8U,GACAvmB,KAAAqR,qBACArR,KAAAmQ,iBAGA,IAAA3E,EAAAxL,KAAA0V,QAAA+Q,GACAjb,IACAxL,KAAAoO,cAAApO,KAAAyV,kBAAAjK,IAEAxL,KAAAoO,cAAAhL,KAAA0Q,IAAA9T,KAAA0N,OAAAnM,OAAA,EAAAvB,KAAAoO,eAEApO,KAAA0B,UAAA,aAAA,CAAA6kB,IAEAvmB,KAAA8K,OAAA9K,KAAAoO,eAEAoY,GACAxmB,KAAA2S,4BAMAnJ,KAKA,SAAAlM,EAAAC,GAEA,mBAAAC,QAAAA,OAAAC,IAEAD,OAAA,uBAAA,CACA,aACA,yBACA,SAAAgM,EAAAtD,GACA,OAAA3I,EAAAD,EAAAkM,EAAAtD,MAEA,iBAAAvI,QAAAA,OAAAC,QAEAD,OAAAC,QAAAL,EACAD,EACAO,QAAA,cACAA,QAAA,mBAIAN,EACAD,EACAA,EAAAkM,SACAlM,EAAA2I,cAtBA,CA0BA3I,QAAA,SAAAA,EAAAkM,EAAAtD,GACA,aAEAsD,EAAA4G,cAAAlP,KAAA,mBACA,IAAAR,EAAA8I,EAAAvL,UAkDA,SAAAyoB,EAAAC,EAAAC,GACA5mB,KAAA2mB,IAAAA,EACA3mB,KAAA4mB,SAAAA,EACA5mB,KAAA6mB,OAgDA,OAnGAnmB,EAAAomB,gBAAA,WACA9mB,KAAAW,GAAA,SAAAX,KAAA+mB,WAGArmB,EAAAqmB,SAAA,WACA,IAAAA,EAAA/mB,KAAAL,QAAAonB,SACA,GAAAA,EAAA,CAIA,IAAAjR,EAAA,iBAAAiR,EAAAA,EAAA,EACAhR,EAAA/V,KAAA6V,wBAAAC,GAEAkR,EAAA,GACAjR,EAAA3O,SAAA,SAAAkK,GACA,IAAA2V,EASA,SAAA3V,GAEA,GAAA,OAAAA,EAAA6K,SAAA,CACA,IAAA+K,EAAA5V,EAAAlI,aAAA,0BACA+d,EAAA7V,EAAAlI,aAAA,8BACAge,EAAA9V,EAAAlI,aAAA,iCACA,GAAA8d,GAAAC,GAAAC,EACA,MAAA,CAAA9V,GAIA,IAAA+V,EAAA,mGAEAC,EAAAhW,EAAA/J,iBAAA8f,GACA,OAAAnhB,EAAAI,UAAAghB,GAvBAC,CAAAjW,GACA0V,EAAAA,EAAA/d,OAAAge,MAGAD,EAAA5f,SAAA,SAAAuf,GACA,IAAAD,EAAAC,EAAA3mB,QACAA,QAiCA0mB,EAAAzoB,UAAA6I,YAAAZ,EAAAY,YAEA4f,EAAAzoB,UAAA4oB,KAAA,WACA7mB,KAAA2mB,IAAAxe,iBAAA,OAAAnI,MACAA,KAAA2mB,IAAAxe,iBAAA,QAAAnI,MAEA,IAAAwnB,EAAAxnB,KAAA2mB,IAAAvd,aAAA,2BACApJ,KAAA2mB,IAAAvd,aAAA,8BACAqe,EAAAznB,KAAA2mB,IAAAvd,aAAA,iCAEApJ,KAAA2mB,IAAAa,IAAAA,EACAC,GACAznB,KAAA2mB,IAAA7c,aAAA,SAAA2d,GAGAznB,KAAA2mB,IAAAtc,gBAAA,0BACArK,KAAA2mB,IAAAtc,gBAAA,8BACArK,KAAA2mB,IAAAtc,gBAAA,kCAGAqc,EAAAzoB,UAAAypB,OAAA,SAAA3gB,GACA/G,KAAA2nB,SAAA5gB,EAAA,wBAGA2f,EAAAzoB,UAAA2pB,QAAA,SAAA7gB,GACA/G,KAAA2nB,SAAA5gB,EAAA,uBAGA2f,EAAAzoB,UAAA0pB,SAAA,SAAA5gB,EAAAwC,GAEAvJ,KAAA2mB,IAAAtP,oBAAA,OAAArX,MACAA,KAAA2mB,IAAAtP,oBAAA,QAAArX,MAEA,IAAAwL,EAAAxL,KAAA4mB,SAAAhR,cAAA5V,KAAA2mB,KACArV,EAAA9F,GAAAA,EAAA7B,QACA3J,KAAA4mB,SAAAN,eAAAhV,GAEAtR,KAAA2mB,IAAA5b,UAAAC,IAAAzB,GACAvJ,KAAA4mB,SAAA9Y,cAAA,WAAA/G,EAAAuK,IAKA9H,EAAAkd,WAAAA,EAEAld;;;;;;;;;;;AAeA,SAAAlM,EAAAC,GAEA,mBAAAC,QAAAA,OAAAC,IAEAD,OAAA,oBAAA,CACA,aACA,SACA,qBACA,cACA,WACA,oBACA,cACAD,GACA,iBAAAI,QAAAA,OAAAC,UAEAD,OAAAC,QAAAL,EACAM,QAAA,cACAA,QAAA,UACAA,QAAA,sBACAA,QAAA,eACAA,QAAA,YACAA,QAAA,qBACAA,QAAA,gBAtBA,CA0BAP,QAAA,SAAAkM,GACA,OAAAA;;;;;AAUA,SAAAlM,EAAAC,GAGA,mBAAAC,QAAAA,OAAAC,IAEAD,OAAA,iCAAA,CACA,oBACA,wBACAD,GACA,iBAAAI,QAAAA,OAAAC,QAEAD,OAAAC,QAAAL,EACAM,QAAA,YACAA,QAAA,mBAIAP,EAAAkM,SAAAjM,EACAD,EAAAkM,SACAlM,EAAA2I,cAnBA,CAuBA3I,QAAA,SAAAkM,EAAAtD,GAQAsD,EAAA4G,cAAAlP,KAAA,mBAEA,IAAAR,EAAA8I,EAAAvL,UA6GA,OA3GAyC,EAAAmnB,gBAAA,WACA7nB,KAAAW,GAAA,WAAAX,KAAA8nB,kBACA9nB,KAAAW,GAAA,aAAAX,KAAA+nB,oBACA/nB,KAAAW,GAAA,UAAAX,KAAAgoB,iBAEA,IAAAC,EAAAjoB,KAAAL,QAAAuoB,SACA,GAAAD,EAAA,CAIA,IAAAngB,EAAA9H,KACA+H,YAAA,WACAD,EAAAqgB,gBAAAF,QAIAvnB,EAAAynB,gBAAA,SAAAjpB,GACAA,EAAAgH,EAAAW,gBAAA3H,GACA,IAAAkpB,EAAA5e,EAAApK,KAAAF,GAEA,GAAAkpB,GAAAA,GAAApoB,KAAA,CAIAA,KAAAqoB,aAAAD,EAEA,IAAAtgB,EAAA9H,KACAA,KAAAsoB,qBAAA,WACAxgB,EAAAygB,sBAEAH,EAAAznB,GAAA,SAAAX,KAAAsoB,sBAEAtoB,KAAAW,GAAA,cAAAX,KAAAwoB,kBAEAxoB,KAAAuoB,oBAAA,KAGA7nB,EAAA6nB,mBAAA,SAAAlU,GAEA,IAAAoU,EAAAzoB,KAAAqoB,cAAAroB,KAAAqoB,aAAAnT,cACA,GAAAuT,EAAA,CAIA,IAoBAtiB,EAAAC,EAAAsiB,EApBAtT,EAAAqT,EAAA,GACAE,EAAA3oB,KAAAqoB,aAAA/c,MAAArK,QAAAmU,GACAgN,EAAAuG,EAAAF,EAAAlnB,OAAA,EACAqnB,EAAAxlB,KAAAkd,OAiBAna,EAjBAwiB,EAiBAviB,EAjBAgc,EAiBAsG,EAhBA1oB,KAAAqoB,aAAAzd,WAiBAxE,EAAAD,GAAAuiB,EAAAviB,IAZA,GAJAnG,KAAAwV,WAAAoT,GAAA,EAAAvU,GAEArU,KAAA6oB,8BAEAD,GAAA5oB,KAAAsL,MAAA/J,QAAA,CAIA,IAAA2T,EAAAlV,KAAAsL,MAAApN,MAAAyqB,EAAAvG,EAAA,GACApiB,KAAA8oB,oBAAA5T,EAAAhJ,KAAA,SAAAV,GACA,OAAAA,EAAA7B,WAEA3J,KAAA+oB,uBAAA,UAOAroB,EAAAqoB,uBAAA,SAAA1pB,GACAW,KAAA8oB,oBAAA1hB,SAAA,SAAA4hB,GACAA,EAAAje,UAAA1L,GAAA,uBAIAqB,EAAAonB,iBAAA,WACA9nB,KAAAuoB,oBAAA,IAGA7nB,EAAAmoB,0BAAA,WACA7oB,KAAA8oB,sBAGA9oB,KAAA+oB,uBAAA,iBACA/oB,KAAA8oB,sBAGApoB,EAAA8nB,iBAAA,SAAAzhB,EAAA8R,EAAAoQ,EAAA5V,GACA,iBAAAA,GACArT,KAAAqoB,aAAA7S,WAAAnC,IAIA3S,EAAAqnB,mBAAA,WACA/nB,KAAA6oB,6BAGAnoB,EAAAsnB,gBAAA,WACAhoB,KAAAqoB,eAGAroB,KAAAqoB,aAAA/mB,IAAA,SAAAtB,KAAAsoB,sBACAtoB,KAAAsB,IAAA,cAAAtB,KAAAwoB,yBACAxoB,KAAAqoB,eAKA7e;;;;;;AAUA,SAAAlM,EAAAC,GAAA,aAKA,mBAAAC,QAAAA,OAAAC,IAEAD,OAAA,4BAAA,CACA,0BACA,SAAAiD,GACA,OAAAlD,EAAAD,EAAAmD,MAEA,iBAAA9C,QAAAA,OAAAC,QAEAD,OAAAC,QAAAL,EACAD,EACAO,QAAA,eAIAP,EAAA4rB,aAAA3rB,EACAD,EACAA,EAAAmD,WAtBA,CA0BA,oBAAAnD,OAAAA,OAAA0C,MAIA,SAAA1C,EAAAmD,GAIA,IAAAhC,EAAAnB,EAAAI,OACAS,EAAAb,EAAAa,QAKA,SAAA8B,EAAAkG,EAAAC,GACA,IAAA,IAAAC,KAAAD,EACAD,EAAAE,GAAAD,EAAAC,GAEA,OAAAF,EAGA,IAAApI,EAAAC,MAAAC,UAAAC,MA0BA,SAAAirB,EAAAjqB,EAAAS,EAAAypB,GAEA,KAAAppB,gBAAAmpB,GACA,OAAA,IAAAA,EAAAjqB,EAAAS,EAAAypB,GAGA,IA7BA7iB,EA6BA8iB,EAAAnqB,GACA,iBAAAA,IACAmqB,EAAA3mB,SAAA6E,iBAAArI,IAGAmqB,IAKArpB,KAAAspB,UAvCA/iB,EAuCA8iB,EAtCArrB,MAAAwI,QAAAD,GAEAA,EAGA,iBAAAA,GAAA,iBAAAA,EAAAhF,OAGAxD,EAAAqC,KAAAmG,GAIA,CAAAA,IA2BAvG,KAAAL,QAAAM,EAAA,GAAAD,KAAAL,SAEA,mBAAAA,EACAypB,EAAAzpB,EAEAM,EAAAD,KAAAL,QAAAA,GAGAypB,GACAppB,KAAAW,GAAA,SAAAyoB,GAGAppB,KAAAupB,YAEA9qB,IAEAuB,KAAAwpB,WAAA,IAAA/qB,EAAAgrB,UAIA1hB,WAAA/H,KAAA0pB,MAAAtM,KAAApd,QAzBA7B,EAAAG,MAAA,iCAAA+qB,GAAAnqB,IA4BAiqB,EAAAlrB,UAAAyZ,OAAA9N,OAAAnJ,EAAAxC,WAEAkrB,EAAAlrB,UAAA0B,QAAA,GAEAwpB,EAAAlrB,UAAAsrB,UAAA,WACAvpB,KAAA2pB,OAAA,GAGA3pB,KAAAspB,SAAAliB,QAAApH,KAAA4pB,iBAAA5pB,OAMAmpB,EAAAlrB,UAAA2rB,iBAAA,SAAA1qB,GAEA,OAAAA,EAAAid,UACAnc,KAAA6pB,SAAA3qB,IAGA,IAAAc,KAAAL,QAAAmqB,YACA9pB,KAAA+pB,2BAAA7qB,GAKA,IAAAuE,EAAAvE,EAAAuE,SACA,GAAAA,GAAAumB,EAAAvmB,GAAA,CAKA,IAFA,IAAAwmB,EAAA/qB,EAAAqI,iBAAA,OAEAtI,EAAA,EAAAA,EAAAgrB,EAAA1oB,OAAAtC,IAAA,CACA,IAAA0nB,EAAAsD,EAAAhrB,GACAe,KAAA6pB,SAAAlD,GAIA,GAAA,iBAAA3mB,KAAAL,QAAAmqB,WAAA,CACA,IAAAjZ,EAAA3R,EAAAqI,iBAAAvH,KAAAL,QAAAmqB,YACA,IAAA7qB,EAAA,EAAAA,EAAA4R,EAAAtP,OAAAtC,IAAA,CACA,IAAAirB,EAAArZ,EAAA5R,GACAe,KAAA+pB,2BAAAG,OAKA,IAAAF,EAAA,CACA,GAAA,EACA,GAAA,EACA,IAAA,GAwFA,SAAAG,EAAAxD,GACA3mB,KAAA2mB,IAAAA,EAiEA,SAAAyD,EAAAC,EAAA1gB,GACA3J,KAAAqqB,IAAAA,EACArqB,KAAA2J,QAAAA,EACA3J,KAAA2mB,IAAA,IAAA2D,MAgDA,OA1MAnB,EAAAlrB,UAAA8rB,2BAAA,SAAA7qB,GACA,IAAAmD,EAAAC,iBAAApD,GACA,GAAAmD,EAOA,IAFA,IAAAkoB,EAAA,0BACAzkB,EAAAykB,EAAAC,KAAAnoB,EAAAooB,iBACA,OAAA3kB,GAAA,CACA,IAAAukB,EAAAvkB,GAAAA,EAAA,GACAukB,GACArqB,KAAA0qB,cAAAL,EAAAnrB,GAEA4G,EAAAykB,EAAAC,KAAAnoB,EAAAooB,mBAOAtB,EAAAlrB,UAAA4rB,SAAA,SAAAlD,GACA,IAAAgE,EAAA,IAAAR,EAAAxD,GACA3mB,KAAA2pB,OAAAzoB,KAAAypB,IAGAxB,EAAAlrB,UAAAysB,cAAA,SAAAL,EAAAnrB,GACA,IAAA4qB,EAAA,IAAAM,EAAAC,EAAAnrB,GACAc,KAAA2pB,OAAAzoB,KAAA4oB,IAGAX,EAAAlrB,UAAAyrB,MAAA,WACA,IAAA5hB,EAAA9H,KASA,SAAA4qB,EAAA5O,EAAA9c,EAAAb,GAEA0J,YAAA,WACAD,EAAA8F,SAAAoO,EAAA9c,EAAAb,MAXA2B,KAAA6qB,gBAAA,EACA7qB,KAAA8qB,cAAA,EAEA9qB,KAAA2pB,OAAApoB,OAYAvB,KAAA2pB,OAAAviB,SAAA,SAAAujB,GACAA,EAAAxpB,KAAA,WAAAypB,GACAD,EAAAjB,WAbA1pB,KAAA2nB,YAiBAwB,EAAAlrB,UAAA2P,SAAA,SAAAoO,EAAA9c,EAAAb,GACA2B,KAAA6qB,kBACA7qB,KAAA8qB,aAAA9qB,KAAA8qB,eAAA9O,EAAA+O,SAEA/qB,KAAA0B,UAAA,WAAA,CAAA1B,KAAAgc,EAAA9c,IACAc,KAAAwpB,YAAAxpB,KAAAwpB,WAAAwB,QACAhrB,KAAAwpB,WAAAwB,OAAAhrB,KAAAgc,GAGAhc,KAAA6qB,iBAAA7qB,KAAA2pB,OAAApoB,QACAvB,KAAA2nB,WAGA3nB,KAAAL,QAAAsrB,OAAA9sB,GACAA,EAAA+sB,IAAA,aAAA7sB,EAAA2d,EAAA9c,IAIAiqB,EAAAlrB,UAAA0pB,SAAA,WACA,IAAA/mB,EAAAZ,KAAA8qB,aAAA,OAAA,OAIA,GAHA9qB,KAAAmrB,YAAA,EACAnrB,KAAA0B,UAAAd,EAAA,CAAAZ,OACAA,KAAA0B,UAAA,SAAA,CAAA1B,OACAA,KAAAwpB,WAAA,CACA,IAAA4B,EAAAprB,KAAA8qB,aAAA,SAAA,UACA9qB,KAAAwpB,WAAA4B,GAAAprB,QAUAmqB,EAAAlsB,UAAAyZ,OAAA9N,OAAAnJ,EAAAxC,WAEAksB,EAAAlsB,UAAAyrB,MAAA,WAGA1pB,KAAAqrB,qBAGArrB,KAAAsrB,QAAA,IAAAtrB,KAAA2mB,IAAA4E,aAAA,iBAKAvrB,KAAAwrB,WAAA,IAAAlB,MACAtqB,KAAAwrB,WAAArjB,iBAAA,OAAAnI,MACAA,KAAAwrB,WAAArjB,iBAAA,QAAAnI,MAEAA,KAAA2mB,IAAAxe,iBAAA,OAAAnI,MACAA,KAAA2mB,IAAAxe,iBAAA,QAAAnI,MACAA,KAAAwrB,WAAAhE,IAAAxnB,KAAA2mB,IAAAa,MAGA2C,EAAAlsB,UAAAotB,mBAAA,WAGA,OAAArrB,KAAA2mB,IAAAgB,UAAA3nB,KAAA2mB,IAAA4E,cAGApB,EAAAlsB,UAAAqtB,QAAA,SAAAP,EAAA1sB,GACA2B,KAAA+qB,SAAAA,EACA/qB,KAAA0B,UAAA,WAAA,CAAA1B,KAAAA,KAAA2mB,IAAAtoB,KAMA8rB,EAAAlsB,UAAA6I,YAAA,SAAAC,GACA,IAAA1H,EAAA,KAAA0H,EAAAC,KACAhH,KAAAX,IACAW,KAAAX,GAAA0H,IAIAojB,EAAAlsB,UAAAypB,OAAA,WACA1nB,KAAAsrB,SAAA,EAAA,UACAtrB,KAAAyrB,gBAGAtB,EAAAlsB,UAAA2pB,QAAA,WACA5nB,KAAAsrB,SAAA,EAAA,WACAtrB,KAAAyrB,gBAGAtB,EAAAlsB,UAAAwtB,aAAA,WACAzrB,KAAAwrB,WAAAnU,oBAAA,OAAArX,MACAA,KAAAwrB,WAAAnU,oBAAA,QAAArX,MACAA,KAAA2mB,IAAAtP,oBAAA,OAAArX,MACAA,KAAA2mB,IAAAtP,oBAAA,QAAArX,OAYAoqB,EAAAnsB,UAAAyZ,OAAA9N,OAAAugB,EAAAlsB,WAEAmsB,EAAAnsB,UAAAyrB,MAAA,WACA1pB,KAAA2mB,IAAAxe,iBAAA,OAAAnI,MACAA,KAAA2mB,IAAAxe,iBAAA,QAAAnI,MACAA,KAAA2mB,IAAAa,IAAAxnB,KAAAqqB,IAEArqB,KAAAqrB,uBAEArrB,KAAAsrB,QAAA,IAAAtrB,KAAA2mB,IAAA4E,aAAA,gBACAvrB,KAAAyrB,iBAIArB,EAAAnsB,UAAAwtB,aAAA,WACAzrB,KAAA2mB,IAAAtP,oBAAA,OAAArX,MACAA,KAAA2mB,IAAAtP,oBAAA,QAAArX,OAGAoqB,EAAAnsB,UAAAqtB,QAAA,SAAAP,EAAA1sB,GACA2B,KAAA+qB,SAAAA,EACA/qB,KAAA0B,UAAA,WAAA,CAAA1B,KAAAA,KAAA2J,QAAAtL,KAKA8qB,EAAAuC,iBAAA,SAAAhuB,IACAA,EAAAA,GAAAJ,EAAAI,WAKAe,EAAAf,GAEAwC,GAAAgpB,aAAA,SAAAvpB,EAAAsI,GAEA,OADA,IAAAkhB,EAAAnpB,KAAAL,EAAAsI,GACAuhB,WAAAmC,QAAAltB,EAAAuB,UAIAmpB,EAAAuC,mBAIAvC;;;;;AAWA,SAAA7rB,EAAAC,GAGA,mBAAAC,QAAAA,OAAAC,IAEAD,OAAA,CACA,oBACA,8BACA,SAAAgM,EAAA0f,GACA,OAAA3rB,EAAAD,EAAAkM,EAAA0f,MAEA,iBAAAvrB,QAAAA,OAAAC,QAEAD,OAAAC,QAAAL,EACAD,EACAO,QAAA,YACAA,QAAA,iBAIAP,EAAAkM,SAAAjM,EACAD,EACAA,EAAAkM,SACAlM,EAAA4rB,cAvBA,CA2BA5rB,QAAA,SAAAA,EAAAkM,EAAA0f,GACA,aAEA1f,EAAA4G,cAAAlP,KAAA,uBAEA,IAAAR,EAAA8I,EAAAvL,UAqBA,OAnBAyC,EAAAkrB,oBAAA,WACA5rB,KAAAW,GAAA,WAAAX,KAAAkpB,eAGAxoB,EAAAwoB,aAAA,WACA,GAAAlpB,KAAAL,QAAAupB,aAAA,CAGA,IAAAphB,EAAA9H,KAQAkpB,EAAAlpB,KAAAuN,QAAA5M,GAAA,YAPA,SAAAxB,EAAA6c,GACA,IAAAxQ,EAAA1D,EAAA8N,cAAAoG,EAAA2K,KACA7e,EAAAwe,eAAA9a,GAAAA,EAAA7B,SACA7B,EAAAnI,QAAA0f,YACAvX,EAAA6K,gCAMAnJ,KC/+IA/K,EAAA,qBAAAkC,GAAA,SAAA,WACA,GAAA,mBAAA,MAEArD,OAAAwQ,cAAA,IAAAoG,MAAA,eAEA,CAEA,IAAA2X,EAAAvuB,OAAAoF,SAAAopB,YAAA,YACAD,EAAAE,YAAA,UAAA,GAAA,EAAAzuB,OAAA,GACAA,OAAAwQ,cAAA+d,OCVAptB,EAAA,UAAAO,MAAA,WACA,IAAAgtB,EAAAvtB,EAAAuB,MAAAmJ,KAAA,OAEA6iB,GAAAA,EAAA/qB,QAAA,KAAA,EACAxC,EAAAuB,MAAAmJ,KAAA,CACAqe,IAAAwE,EAAA,qBACAC,MAAA,WAGAxtB,EAAAuB,MAAAmJ,KAAA,CACAqe,IAAAwE,EAAA,qBACAC,MAAA,cAKAxtB,GAAA,WAEAytB,cAAAC,sBAAAD,cAAAE,qBACA3tB,EAAA,UAAA8C,OAAA,GACA9C,EAAA,UAAAO,MAAA,WACA,IACAqtB,EADA,sCACAC,KAAA7tB,EAAAuB,MAAAmJ,KAAA,QAEAojB,EADA,eACAD,KAAA7tB,EAAAuB,MAAAmJ,KAAA,QACAqjB,EAAA/tB,EAAAuB,MAAA+D,aAEA0oB,EADAhuB,EAAAuB,MAAAgE,cACAwoB,EAAA,IAEAH,GACA,IAAA5tB,EAAAuB,MAAA0J,OAAA,qBAAAnI,QACA9C,EAAAuB,MAAAqgB,KAAA,oCAGA5hB,EAAAuB,MAAA0J,OAAA,qBAAAgjB,IAAA,iBAAAD,EAAA,KAEAhuB,EAAAuB,MAAAmJ,KAAA,WACA1K,EAAAuB,MAAAmJ,KAAA,SAAAZ,MAAA,OACA9J,EAAAuB,MAAA0J,OAAA,qBAAA2W,KAAA,0DAAA5hB,EAAAuB,MAAAmJ,KAAA,SAAA,gBAGAojB,GACA9tB,EAAAuB,MAAA0J,OAAA,eAAAijB,SAAA,oBAAAD,IAAA,iBAAAD,EAAA,aHXAP,cAAAC,qBAAAD,cAAAE,uBAAAQ,cAAA,CACA,SAAAC,oBACA,IAAAnZ,EAAAjV,EAAA,qBAAAmE,QACAnE,EAAA,2BAAAO,MAAA,SAAAwC,EAAAsrB,GACA,IAAAC,EAAAtuB,EAAAquB,GAAAE,QAAA,YACA,GAAAD,EAAAxrB,QAAA9C,EAAAuB,MAAA4C,QAAAnE,EAAAsuB,GAAAnqB,SAAAnE,EAAAuB,MAAA4C,QAAA8Q,GACA,GAAA,IAAAjV,EAAAuB,MAAA0J,OAAA,mBAAAnI,OAAA,CACA9C,EAAAuB,MAAAqgB,KAAA,kCACA,IAAA4M,EAAAxuB,EAAAuB,MAAA2sB,SAAA,aACAO,EAAAzuB,EAAAwuB,GAAAvjB,SACAjL,EAAA,mCAAAytB,cAAAiB,kBAAA,gDAAA,UAAAnH,aAAAkH,SAEAH,EAAAxrB,QAAA9C,EAAAuB,MAAA4C,SAAAnE,EAAAsuB,GAAAnqB,SAAAnE,EAAAuB,MAAA4C,SAAA8Q,IACAjV,EAAAuB,MAAA0J,OAAA,mBAAAnI,OAAA,IACA9C,EAAAuB,MAAA0J,SAAA0jB,SAAA,uBAAAC,SACA5uB,EAAAuB,MAAAstB,SACA7uB,EAAAuB,MAAAutB,YAAA,iBAMA9uB,EAAAiE,UAAA8qB,OAAA,WACA/uB,EAAA,qBAAAkC,GAAA,SAAA,WACAksB,0BAIApuB,EAAAnB,QAAAupB,MAAA,WACA9e,YAAA,WACA8kB,sBACA,MAGApuB,EAAAnB,QAAA4S,QAAA,WACAnI,YAAA,WACA8kB,sBACA,MI3CA,SAAAY,WAAA9pB,GACAlF,EAAA,cAAAiuB,IAAA,YAAA/oB,GACAlF,EAAA,mCAAAiuB,IAAA,YAAA/oB,GACAlF,EAAA,kCAAAiuB,IAAA,YAAA/oB,GACAlF,EAAA,gCAAAiuB,IAAA,YAAA/oB,GACAlF,EAAA,8BAAAiuB,IAAA,YAAA/oB,GACAlF,EAAA,YAAAiuB,IAAA,YAAA/oB,GACAlF,EAAA,SAAAivB,SAAA,aACAjvB,EAAAyB,GAAAytB,YAAAC,UCjCA,GCAAnvB,GAAA,WAEAA,EAAA,gBAAA8C,SACA9C,IAAAkvB,aACAlvB,EAAA,uBAAAkvB,cAIAlvB,EAAA,0BAAAO,MAAA,WACA,KAAAP,EAAAuB,MAAAmJ,KAAA,SAAA,MAAA1K,EAAAuB,MAAAmJ,KAAA,SAAA1K,EAAAuB,MAAAmJ,KAAA,SACA1K,EAAAuB,MAAA6tB,WAAAP,OAAA,SAMA7uB,EAAA,oBAAA8C,QACA9C,IAAAkvB,aACAlvB,EAAA,mCAAAkvB,cAKAlvB,EAAA,gBAAA8C,QACA9C,EAAA,gBAAAO,MAAA,WACA,IAAA8uB,EAAAzkB,KAAA0kB,UAAAtvB,EAAA,wBAAAuB,MAAAmJ,KAAA,kBACA1K,EAAAuvB,UAAAF,GAEA,SACArvB,EAAAuB,MAAA2sB,SAAA,sBAMAluB,EAAAnB,QAAAupB,MAAA,YAEApoB,EAAA,6BAAA8C,QACA2qB,cAAAC,sBAAAD,cAAAE,qBACA6B,qBAGAxvB,EAAA,mBAAA8C,QACA9C,EAAA,gBAAA8C,QACAwG,YAAA,WACAtJ,EAAA,sCAAAmoB,SAAA,gBACA,QC9CAnoB,GAAA,WACA,GAAAA,EAAA,SAAAivB,SAAA,YAAA,CAEAjvB,EAAA,qBAAA8C,OAAA,GACA9C,EAAA,SAAAkuB,SAAA,gBAGA,IAAAuB,EAAAzvB,EAAAnB,QAEA4wB,EAAAvtB,GAAA,eAAA,WACA,IAAAwtB,EAAA,CACA,wBACA,qBAGAD,EAAAtrB,SAAA,IAmBA,SAAAwrB,GACA,QAAA3uB,IAAA2uB,GAAA,OAAAA,EACA,IAAA,IAAAnvB,EAAA,EAAAA,EAAAmvB,EAAA7sB,OAAAtC,IAAA,CACA,IAAAovB,EAAAD,EAAAnvB,GAEAR,EAAA,cAAA6vB,KAAAD,GAAA9sB,QACA9C,EAAA,cAAA6vB,KAAAD,GAAAhB,SAAAkB,SAAA,mBAxBAC,CAAAL,GAMA,SAAAC,GACA,QAAA3uB,IAAA2uB,GAAA,OAAAA,EACA,IAAA,IAAAnvB,EAAA,EAAAA,EAAAmvB,EAAA7sB,OAAAtC,IAAA,CACA,IAAAovB,EAAAD,EAAAnvB,GAEAR,EAAA,kBAAA6vB,KAAAD,GAAA9sB,QACA9C,EAAA,kBAAA6vB,KAAAD,GAAAhB,SAAAkB,SAAA,eAVAE,CAAAN,UClBA1vB,GAAA,WACA,MAAAiwB,EAAAjwB,EAAA,UAEAytB,cAAAC,oBAGA1tB,EAAA,kBAAAkwB,QAFAlwB,EAAA,qBAAAmwB,OAAAjC,SAAA,QAKA+B,EAAAJ,KAAA,aAAA3tB,GAAA,SAAA,WACA,GAAAkuB,sBACAC,oBACA,CACA,IAAAC,EAAA,SAAAtwB,EAAAuB,MAAAmJ,KAAA,iBAEA1K,EAAAuB,MAAAmJ,KAAA,gBAAA4lB,EAAA,QAAA,QAEAA,EAAAC,kBAAAN,EAAA,aAAAO,WAAAP,EAAA,iBAKA,IAAAQ,EAAAC,mBAAA7xB,OAAA8xB,UACAC,EAAA5wB,EAAAiE,UAAA4rB,KAAA,MAAA/sB,OAAA9C,EAAA6wB,KAAA7wB,EAAA,MAAA8wB,QAAAjnB,QAAA,SAAA,KAAA7J,EAAA6wB,KAAA7wB,EAAAiE,UAAA4rB,KAAA,SAAAiB,QAEAb,EAAAJ,KAAA,YAAAnlB,KAAA,OAAA,yCAAA+lB,GACAR,EAAAJ,KAAA,YAAAnlB,KAAA,OAAA,uDAAA+lB,GACAR,EAAAJ,KAAA,YAAAnlB,KAAA,OAAA,wDAAAkmB,EAAA,IAAAH,MC3BAzwB,GAAA,WAEAA,EAAA,8CAAA+wB,QAAA3e,WAAAtP,OAGA9C,EAAA,kBAAA8uB,YAAA,QAFA9uB,EAAA,kBAAAkuB,SAAA,QAKAluB,EAAA,iDAAA+wB,QAAA3e,WAAAtP,OAGA9C,EAAA,oBAAA8uB,YAAA,QAFA9uB,EAAA,oBAAAkuB,SAAA,QAMAluB,EAAA,kBAAAkC,GAAA,SAAA,WACAlC,EAAAuB,MAAAmJ,KAAA,gBAAA,UAAA1K,EAAAuB,MAAAmJ,KAAA,iBAAA,OAAA,SAAAsmB,YAAA,aACAhxB,EAAA,kBAAAixB,iBAGAjxB,EAAA,kBAAA6vB,KAAA,WAAAtvB,MAAA,SAAAwC,GACA,IAAAmuB,EAAA,kBAAAnuB,EAGAmuB,EADAlxB,EAAAuB,MAAAgV,KAAA,MAAA7L,KAAA,MACA1K,EAAAuB,MAAAgV,KAAA,MAAA7L,KAAA,MACA1K,EAAAuB,MAAA0tB,SAAA,kBACA,eAEA,kBAAAlsB,EAGA/C,EAAAuB,MAAAmJ,KAAA,CACA,gBAAA,QACA,gBAAAwmB,IACA3a,KAAA,MAAA7L,KAAA,KAAAwmB,MAIAlxB,EAAA,uCAAAkC,GAAA,QAAA,qCAAA,SAAAoG,GACAA,EAAAoP,iBAEA1X,EAAA,wEAAA0K,KAAA,gBAAA,UAAA1K,EAAAuB,MAAAmJ,KAAA,iBAAA,OAAA,SAGA1K,EAAA,oCAAAixB,cAGAjxB,EAAA,qDAAA8C,OAAA,EACA9C,EAAA,mCAAA8uB,YAAA,QAAAe,KAAA,QAAAiB,MAAA,SAAA/tB,EAAA+tB,GACA,OAAAA,EAAAjnB,QAAA,QAAA,WAGA7J,EAAA,mCAAAkuB,SAAA,QAAA2B,KAAA,QAAAiB,MAAA,SAAA/tB,EAAA+tB,GACA,OAAAA,EAAAjnB,QAAA,OAAA,YAIA7J,EAAA,kCAAAiL,OAAA,OAAAsL,KAAA,MAAAtL,OAAA,MAAA+lB,YAAA,WAIAhxB,EAAA,WAAAkC,GAAA,QAAA,gCAAA,SAAAoG,GACAA,EAAAoP,iBACApP,EAAA6oB,kBAEAnxB,EAAAuB,MAAAmJ,KAAA,gBAAA,UAAA1K,EAAAuB,MAAAmJ,KAAA,iBAAA,OAAA,SAAA6L,KAAA,MAAA8P,OAAA4K,cAAAhmB,OAAA,MAAA+lB,YAAA,cLjEAhxB,GAAA,WACA,IAAAoxB,EAAAtd,SAAA9T,EAAA,cAAAiuB,IAAA,cACAoD,EAAAD,EAEApxB,EAAA,eAAA6vB,KAAA,UAAA3tB,GAAA,SAAA,SAAAoG,GAEA,GADAA,EAAAoP,iBACA+V,cAAAC,oBACA2C,oBACA,CACA,IAAAiB,EAAAtxB,EAAAuB,MACA+vB,EAAArC,SAAA,eAEAD,WADAqC,EAAAD,GAEAE,EAAArC,SAAA,iBAAAoC,EAAA,EAEArC,aADAqC,GAEAC,EAAArC,SAAA,iBAAAoC,EAAA,IAEArC,aADAqC,WCjBArxB,EAAA,SAAAivB,SAAA,kBAAA,CACA,GAAAxB,cAAAC,oBAAA,CACA,IAAA6D,oBAAA,iCAEAvxB,EAAA,kBAAA8C,OAAA,IACAyuB,qBAAA,8DACAA,qBAAA,mGAGAvxB,EAAA,oBAAA8C,OAAA,IACAyuB,qBAAA,yDACAA,qBAAA,yFAGAvxB,EAAA,oCAAA8C,OAAA,IACAyuB,qBAAA,8DACAA,qBAAA,wGAGAvxB,EAAA,yBAAA8C,OAAA,IACAyuB,qBAAA,+DACAA,qBAAA,qGAGAvxB,EAAA,uBAAA8C,OAAA,IACAyuB,qBAAA,+DACAA,qBAAA,2GAGAA,qBAAA,iEACAA,qBAAA,gHAEAA,qBAAA,SAEAvxB,EAAA,cAAAwxB,OAAAD,qBAGA,GAAAvxB,EAAA,gDAAA8C,QAAA,EAAA,CACA,IAAA2uB,OAAAzxB,EAAA,UACAyxB,OAAA/mB,KAAA,CAAAkH,GAAA,mBAAA8f,OAAA,MAEA1xB,EAAA,kBAAA8C,OAAA,GACA2uB,OAAA/J,OAAA1nB,EAAA,WAAA0K,KAAA,CAAAnC,KAAA,SAAAqJ,GAAA,qBAAA9Q,MAAAd,EAAA,SAAAivB,SAAA,QAAA,OAAA,MAGAjvB,EAAA,oBAAA8C,OAAA,GACA2uB,OAAA/J,OAAA1nB,EAAA,WAAA0K,KAAA,CAAAnC,KAAA,SAAAqJ,GAAA,gBAAA9Q,MAAAd,EAAA,oBAAAivB,SAAA,QAAA,OAAA,MAGAjvB,EAAA,oCAAA8C,OAAA,GACA2uB,OAAA/J,OAAA1nB,EAAA,WAAA0K,KAAA,CAAAnC,KAAA,SAAAqJ,GAAA,qBAAA9Q,MAAAd,EAAA,SAAAivB,SAAA,cAAA,aAAA,MAGAjvB,EAAA,yBAAA8C,OAAA,GACA2uB,OAAA/J,OAAA1nB,EAAA,WAAA0K,KAAA,CAAAnC,KAAA,SAAAqJ,GAAA,sBAAA9Q,MAAAd,EAAA,yBAAAivB,SAAA,QAAA,OAAA,MAGAjvB,EAAA,uBAAA8C,OAAA,GACA2uB,OAAA/J,OAAA1nB,EAAA,WAAA0K,KAAA,CAAAnC,KAAA,SAAAqJ,GAAA,sBAAA9Q,MAAAd,EAAA,uBAAAivB,SAAA,QAAA,OAAA,MAGAwC,OAAA/J,OAAA1nB,EAAA,WAAA0K,KAAA,CAAAnC,KAAA,SAAAqJ,GAAA,wBAAA9Q,MAAA,MACA2wB,OAAA/J,OAAA1nB,EAAA,WAAA0K,KAAA,CAAAnC,KAAA,SAAAqJ,GAAA,mBAAA+f,KAAA,mBAAA,aAAA,mBAAAzD,SAAA,eAEAluB,EAAA,8BAAAkwB,QAAAxI,OAAA+J,aAGAzxB,EAAA,uEAAA8C,QAAA,GACA9C,EAAA,gDAAA2nB,QAAA3nB,EAAA,WAAA0K,KAAA,CAAAnC,KAAA,SAAAqJ,GAAA,wBAAA9Q,MAAA,MAIAd,EAAA,+DAAA8C,QAAA,GACA9C,EAAA,gDAAA2nB,QAAA3nB,EAAA,WAAA0K,KAAA,CAAAnC,KAAA,SAAAqJ,GAAA,gBAAA9Q,MAAA,MAMAd,EAAA,0BAAA8C,OAAA,GAAA,SAAA9C,EAAA,0BAAA4xB,OACA5xB,EAAA,0BAAA8C,OAAA,GACA9C,EAAA,0BAAA0K,KAAA,UAAA,WAKA1K,EAAA,kBAAA8C,OAAA,GAAA9C,EAAA,uBAAA8C,OAAA,GAAA,SAAA9C,EAAA,uBAAA4xB,OACA5xB,EAAA,uBAAA8C,OAAA,GACA9C,EAAA,uBAAA0K,KAAA,UAAA,WAGA1K,EAAA,SAAAgxB,YAAA,QAAA,GACAhxB,EAAA,kBAAAgxB,YAAA,QAAA,IACAhxB,EAAA,kBAAA8C,OAAA,GAAA9C,EAAA,uBAAA8C,OAAA,GAAA,KAAA9C,EAAA,uBAAA4xB,QACA5xB,EAAA,SAAAgxB,YAAA,QAAA,GACAhxB,EAAA,kBAAAgxB,YAAA,QAAA,IAIAhxB,EAAA,oBAAA8C,OAAA,GAAA9C,EAAA,kBAAA8C,OAAA,GAAA,SAAA9C,EAAA,kBAAA4xB,OACA5xB,EAAA,kBAAA8C,OAAA,GACA9C,EAAA,kBAAA0K,KAAA,UAAA,WAGA1K,EAAA,oBAAAgxB,YAAA,QAAA,IACAhxB,EAAA,oBAAA8C,OAAA,GAAA9C,EAAA,kBAAA8C,OAAA,GAAA,KAAA9C,EAAA,kBAAA4xB,OACA5xB,EAAA,oBAAAgxB,YAAA,QAAA,GAIAhxB,EAAA,eAAA8C,OAAA,GAAA9C,EAAA,uBAAA8C,OAAA,GAAA,eAAA9C,EAAA,uBAAA4xB,OACA5xB,EAAA,uBAAA8C,OAAA,GACA9C,EAAA,uBAAA0K,KAAA,UAAA,WAEA1K,EAAA,SAAAgxB,YAAA,cAAA,IACAhxB,EAAA,eAAA8C,OAAA,GAAA9C,EAAA,uBAAA8C,OAAA,GAAA,KAAA9C,EAAA,uBAAA4xB,OACA5xB,EAAA,SAAAgxB,YAAA,cAAA,GAIAhxB,EAAA,wBAAA8C,OAAA,GAAA,SAAA9C,EAAA,wBAAA4xB,OACA5xB,EAAA,wBAAA8C,OAAA,GACA9C,EAAA,wBAAA0K,KAAA,UAAA,WAGA1K,EAAA,yBAAAgxB,YAAA,QAAA,IACAhxB,EAAA,wBAAA8C,OAAA,GAAA,KAAA9C,EAAA,wBAAA4xB,OACA5xB,EAAA,yBAAAgxB,YAAA,QAAA,GAIAhxB,EAAA,wBAAA8C,OAAA,GAAA,SAAA9C,EAAA,wBAAA4xB,OACA5xB,EAAA,wBAAA8C,OAAA,GACA9C,EAAA,wBAAA0K,KAAA,UAAA,WAGA1K,EAAA,uBAAAgxB,YAAA,QAAA,IACAhxB,EAAA,wBAAA8C,OAAA,GAAA,KAAA9C,EAAA,wBAAA4xB,OACA5xB,EAAA,uBAAAgxB,YAAA,QAAA,GAKAhxB,EAAA,0BAAA8C,OAAA,GACA9C,EAAA,0BAAA6xB,QAAA,WACA7xB,EAAA,0BAAA4xB,IAAA5xB,EAAA,kCAAA8C,OAAA,EAAA,OAAA,IAEA2qB,cAAAC,qBACA1tB,EAAA,8BAAA8xB,UAMA9xB,EAAA,kBAAA8C,OAAA,GAAA9C,EAAA,uBAAA8C,OAAA,GACA9C,EAAA,uBAAA6xB,QAAA,WACA7xB,EAAA,SAAAgxB,YAAA,OAAAhxB,EAAAuB,MAAAwwB,GAAA,aACA/xB,EAAA,kBAAAgxB,YAAA,OAAAhxB,EAAAuB,MAAAwwB,GAAA,aACA/xB,EAAA,uBAAA4xB,IAAA5xB,EAAA,kBAAAivB,SAAA,QAAA,OAAA,IAEAxB,cAAAC,qBACA1tB,EAAA,8BAAA8xB,UAKA9xB,EAAA,oBAAA8C,OAAA,GAAA9C,EAAA,kBAAA8C,OAAA,GACA9C,EAAA,kBAAA6xB,QAAA,WACA7xB,EAAA,oBAAAgxB,YAAA,OAAAhxB,EAAAuB,MAAAwwB,GAAA,aACA/xB,EAAA,kBAAA4xB,IAAA5xB,EAAA,oBAAAivB,SAAA,QAAA,OAAA,IAEAxB,cAAAC,qBACA1tB,EAAA,8BAAA8xB,UAMA9xB,EAAA,eAAA8C,OAAA,GAAA9C,EAAA,uBAAA8C,OAAA,GACA9C,EAAA,uBAAA6xB,QAAA,WACA7xB,EAAA,SAAAgxB,YAAA,aAAAhxB,EAAAuB,MAAAwwB,GAAA,aACA/xB,EAAA,uBAAA4xB,IAAA5xB,EAAA,SAAAivB,SAAA,cAAA,aAAA,IAEAxB,cAAAC,qBACA1tB,EAAA,8BAAA8xB,UAMA9xB,EAAA,wBAAA8C,OAAA,GACA9C,EAAA,wBAAA6xB,QAAA,WACA7xB,EAAA,yBAAAgxB,YAAA,OAAAhxB,EAAAuB,MAAAwwB,GAAA,aACA/xB,EAAA,wBAAA4xB,IAAA5xB,EAAA,yBAAAivB,SAAA,QAAA,OAAA,IAEAxB,cAAAC,qBACA1tB,EAAA,8BAAA8xB,UAMA9xB,EAAA,wBAAA8C,OAAA,GACA9C,EAAA,wBAAA6xB,QAAA,WACA7xB,EAAA,uBAAAgxB,YAAA,OAAAhxB,EAAAuB,MAAAwwB,GAAA,aACA/xB,EAAA,wBAAA4xB,IAAA5xB,EAAA,uBAAAivB,SAAA,QAAA,OAAA,IAEAxB,cAAAC,qBACA1tB,EAAA,8BAAA8xB","file":"../interior.js","sourcesContent":["/*==========================================================\r\nINITIALIZE INTERIOR SCRIPT\r\n==========================================================*/\r\n\r\n// PHOTO GALLERY\r\n//$(function() {\r\n// $(\".eSolutionsGroupPhotoGalleryV2PlaceholderDiv\").each(function () {\r\n// var method = $(this).attr(\"method\");\r\n// var id = $(this).attr(\"id\");\r\n// if (id != '') {\r\n// $(this).load(id, function () {\r\n// $(this).find(\".prev.keyboardnav\").attr(\"aria-label\", iCreateObject.languageResources[\"AriaLabel_Modules_PhotoGallery_PreviousArrow\"]);\r\n// $(this).find(\".next.keyboardnav\").attr(\"aria-label\", iCreateObject.languageResources[\"AriaLabel_Modules_PhotoGallery_NextArrow\"]);\r\n// $(this).find(\".pause.keyboardnav\").attr(\"aria-label\", iCreateObject.languageResources[\"AriaLabel_Modules_PhotoGallery_Pause\"]);\r\n// $(this).find(\".pause.paused.keyboardnav\").attr(\"aria-label\", iCreateObject.languageResources[\"AriaLabel_Modules_PhotoGallery_Play\"]);\r\n// $(this).find(\".pause.keyboardnav\").on('click', function (e) {\r\n// if ($(e.target).hasClass(\"paused\")) {\r\n// $(e.target).attr(\"aria-label\", iCreateObject.languageResources[\"AriaLabel_Modules_PhotoGallery_Pause\"]);\r\n// } else {\r\n// $(e.target).attr(\"aria-label\", iCreateObject.languageResources[\"AriaLabel_Modules_PhotoGallery_Play\"]);\r\n// }\r\n// });\r\n// return method;\r\n// });\r\n// } else {\r\n// $(this).html('');\r\n// }\r\n// });\r\n//});\r\n\r\n//Scripts to wrap tables\r\nif ((!iCreateObject.isSiteInICreateMode || iCreateObject.isSiteInPreviewMode) && !isFrontEndDev) {\r\n function icrt_table_resize() {\r\n var contentWidth = ($('#printAreaContent').width());\r\n $('#printAreaContent table').each(function (index,item) {\r\n var contentRow = $(item).closest('.fbg-row');\r\n if ((contentRow.length && $(this).width() > $(contentRow).width()) || $(this).width() > contentWidth) {\r\n if ($(this).parent('.tableContainer').length === 0) {\r\n $(this).wrap('
');\r\n var wideTable = $(this).addClass('wideTable');\r\n var wideTableContainer = $(wideTable).parent();\r\n $('
' + iCreateObject.languageResources['Common_Includes_headInterior_TableScrollMessage'] + '
').insertBefore(wideTableContainer);\r\n }\r\n } else if ((contentRow.length && $(this).width() <= $(contentRow).width()) || $(this).width() <= contentWidth) {\r\n if ($(this).parent('.tableContainer').length > 0) {\r\n $(this).parent().siblings('.tableContainerHead').detach();\r\n $(this).unwrap();\r\n $(this).removeClass('wideTable');\r\n }\r\n }\r\n });\r\n }\r\n\r\n $(document).ready(function () {\r\n $('.AccordionTrigger').on('click', function () {\r\n icrt_table_resize();\r\n });\r\n });\r\n\r\n $(window).load(function () {\r\n setTimeout(function () {\r\n icrt_table_resize();\r\n }, 0);\r\n });\r\n\r\n $(window).resize(function () {\r\n setTimeout(function () {\r\n icrt_table_resize();\r\n }, 0);\r\n });\r\n}\r\n","/*!\n * Flickity PACKAGED v2.2.2\n * Touch, responsive, flickable carousels\n *\n * Licensed GPLv3 for open source use\n * or Flickity Commercial License for commercial use\n *\n * https://flickity.metafizzy.co\n * Copyright 2015-2021 Metafizzy\n */\n\n/**\n * Bridget makes jQuery widgets\n * v2.0.1\n * MIT license\n */\n\n/* jshint browser: true, strict: true, undef: true, unused: true */\n\n( function( window, factory ) {\n // universal module definition\n /*jshint strict: false */ /* globals define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( 'jquery-bridget/jquery-bridget',[ 'jquery' ], function( jQuery ) {\n return factory( window, jQuery );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('jquery')\n );\n } else {\n // browser global\n window.jQueryBridget = factory(\n window,\n window.jQuery\n );\n }\n\n}( window, function factory( window, jQuery ) {\n'use strict';\n\n// ----- utils ----- //\n\nvar arraySlice = Array.prototype.slice;\n\n// helper function for logging errors\n// $.error breaks jQuery chaining\nvar console = window.console;\nvar logError = typeof console == 'undefined' ? function() {} :\n function( message ) {\n console.error( message );\n };\n\n// ----- jQueryBridget ----- //\n\nfunction jQueryBridget( namespace, PluginClass, $ ) {\n $ = $ || jQuery || window.jQuery;\n if ( !$ ) {\n return;\n }\n\n // add option method -> $().plugin('option', {...})\n if ( !PluginClass.prototype.option ) {\n // option setter\n PluginClass.prototype.option = function( opts ) {\n // bail out if not an object\n if ( !$.isPlainObject( opts ) ){\n return;\n }\n this.options = $.extend( true, this.options, opts );\n };\n }\n\n // make jQuery plugin\n $.fn[ namespace ] = function( arg0 /*, arg1 */ ) {\n if ( typeof arg0 == 'string' ) {\n // method call $().plugin( 'methodName', { options } )\n // shift arguments by 1\n var args = arraySlice.call( arguments, 1 );\n return methodCall( this, arg0, args );\n }\n // just $().plugin({ options })\n plainCall( this, arg0 );\n return this;\n };\n\n // $().plugin('methodName')\n function methodCall( $elems, methodName, args ) {\n var returnValue;\n var pluginMethodStr = '$().' + namespace + '(\"' + methodName + '\")';\n\n $elems.each( function( i, elem ) {\n // get instance\n var instance = $.data( elem, namespace );\n if ( !instance ) {\n logError( namespace + ' not initialized. Cannot call methods, i.e. ' +\n pluginMethodStr );\n return;\n }\n\n var method = instance[ methodName ];\n if ( !method || methodName.charAt(0) == '_' ) {\n logError( pluginMethodStr + ' is not a valid method' );\n return;\n }\n\n // apply method, get return value\n var value = method.apply( instance, args );\n // set return value if value is returned, use only first value\n returnValue = returnValue === undefined ? value : returnValue;\n });\n\n return returnValue !== undefined ? returnValue : $elems;\n }\n\n function plainCall( $elems, options ) {\n $elems.each( function( i, elem ) {\n var instance = $.data( elem, namespace );\n if ( instance ) {\n // set options & init\n instance.option( options );\n instance._init();\n } else {\n // initialize new instance\n instance = new PluginClass( elem, options );\n $.data( elem, namespace, instance );\n }\n });\n }\n\n updateJQuery( $ );\n\n}\n\n// ----- updateJQuery ----- //\n\n// set $.bridget for v1 backwards compatibility\nfunction updateJQuery( $ ) {\n if ( !$ || ( $ && $.bridget ) ) {\n return;\n }\n $.bridget = jQueryBridget;\n}\n\nupdateJQuery( jQuery || window.jQuery );\n\n// ----- ----- //\n\nreturn jQueryBridget;\n\n}));\n\n/**\n * EvEmitter v1.1.0\n * Lil' event emitter\n * MIT License\n */\n\n/* jshint unused: true, undef: true, strict: true */\n\n( function( global, factory ) {\n // universal module definition\n /* jshint strict: false */ /* globals define, module, window */\n if ( typeof define == 'function' && define.amd ) {\n // AMD - RequireJS\n define( 'ev-emitter/ev-emitter',factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS - Browserify, Webpack\n module.exports = factory();\n } else {\n // Browser globals\n global.EvEmitter = factory();\n }\n\n}( typeof window != 'undefined' ? window : this, function() {\n\n\n\nfunction EvEmitter() {}\n\nvar proto = EvEmitter.prototype;\n\nproto.on = function( eventName, listener ) {\n if ( !eventName || !listener ) {\n return;\n }\n // set events hash\n var events = this._events = this._events || {};\n // set listeners array\n var listeners = events[ eventName ] = events[ eventName ] || [];\n // only add once\n if ( listeners.indexOf( listener ) == -1 ) {\n listeners.push( listener );\n }\n\n return this;\n};\n\nproto.once = function( eventName, listener ) {\n if ( !eventName || !listener ) {\n return;\n }\n // add event\n this.on( eventName, listener );\n // set once flag\n // set onceEvents hash\n var onceEvents = this._onceEvents = this._onceEvents || {};\n // set onceListeners object\n var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {};\n // set flag\n onceListeners[ listener ] = true;\n\n return this;\n};\n\nproto.off = function( eventName, listener ) {\n var listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) {\n return;\n }\n var index = listeners.indexOf( listener );\n if ( index != -1 ) {\n listeners.splice( index, 1 );\n }\n\n return this;\n};\n\nproto.emitEvent = function( eventName, args ) {\n var listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) {\n return;\n }\n // copy over to avoid interference if .off() in listener\n listeners = listeners.slice(0);\n args = args || [];\n // once stuff\n var onceListeners = this._onceEvents && this._onceEvents[ eventName ];\n\n for ( var i=0; i < listeners.length; i++ ) {\n var listener = listeners[i]\n var isOnce = onceListeners && onceListeners[ listener ];\n if ( isOnce ) {\n // remove listener\n // remove before trigger to prevent recursion\n this.off( eventName, listener );\n // unset once flag\n delete onceListeners[ listener ];\n }\n // trigger listener\n listener.apply( this, args );\n }\n\n return this;\n};\n\nproto.allOff = function() {\n delete this._events;\n delete this._onceEvents;\n};\n\nreturn EvEmitter;\n\n}));\n\n/*!\n * getSize v2.0.3\n * measure size of elements\n * MIT license\n */\n\n/* jshint browser: true, strict: true, undef: true, unused: true */\n/* globals console: false */\n\n( function( window, factory ) {\n /* jshint strict: false */ /* globals define, module */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( 'get-size/get-size',factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.getSize = factory();\n }\n\n})( window, function factory() {\n'use strict';\n\n// -------------------------- helpers -------------------------- //\n\n// get a number from a string, not a percentage\nfunction getStyleSize( value ) {\n var num = parseFloat( value );\n // not a percent like '100%', and a number\n var isValid = value.indexOf('%') == -1 && !isNaN( num );\n return isValid && num;\n}\n\nfunction noop() {}\n\nvar logError = typeof console == 'undefined' ? noop :\n function( message ) {\n console.error( message );\n };\n\n// -------------------------- measurements -------------------------- //\n\nvar measurements = [\n 'paddingLeft',\n 'paddingRight',\n 'paddingTop',\n 'paddingBottom',\n 'marginLeft',\n 'marginRight',\n 'marginTop',\n 'marginBottom',\n 'borderLeftWidth',\n 'borderRightWidth',\n 'borderTopWidth',\n 'borderBottomWidth'\n];\n\nvar measurementsLength = measurements.length;\n\nfunction getZeroSize() {\n var size = {\n width: 0,\n height: 0,\n innerWidth: 0,\n innerHeight: 0,\n outerWidth: 0,\n outerHeight: 0\n };\n for ( var i=0; i < measurementsLength; i++ ) {\n var measurement = measurements[i];\n size[ measurement ] = 0;\n }\n return size;\n}\n\n// -------------------------- getStyle -------------------------- //\n\n/**\n * getStyle, get style of element, check for Firefox bug\n * https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n */\nfunction getStyle( elem ) {\n var style = getComputedStyle( elem );\n if ( !style ) {\n logError( 'Style returned ' + style +\n '. Are you running this code in a hidden iframe on Firefox? ' +\n 'See https://bit.ly/getsizebug1' );\n }\n return style;\n}\n\n// -------------------------- setup -------------------------- //\n\nvar isSetup = false;\n\nvar isBoxSizeOuter;\n\n/**\n * setup\n * check isBoxSizerOuter\n * do on first getSize() rather than on page load for Firefox bug\n */\nfunction setup() {\n // setup once\n if ( isSetup ) {\n return;\n }\n isSetup = true;\n\n // -------------------------- box sizing -------------------------- //\n\n /**\n * Chrome & Safari measure the outer-width on style.width on border-box elems\n * IE11 & Firefox<29 measures the inner-width\n */\n var div = document.createElement('div');\n div.style.width = '200px';\n div.style.padding = '1px 2px 3px 4px';\n div.style.borderStyle = 'solid';\n div.style.borderWidth = '1px 2px 3px 4px';\n div.style.boxSizing = 'border-box';\n\n var body = document.body || document.documentElement;\n body.appendChild( div );\n var style = getStyle( div );\n // round value for browser zoom. desandro/masonry#928\n isBoxSizeOuter = Math.round( getStyleSize( style.width ) ) == 200;\n getSize.isBoxSizeOuter = isBoxSizeOuter;\n\n body.removeChild( div );\n}\n\n// -------------------------- getSize -------------------------- //\n\nfunction getSize( elem ) {\n setup();\n\n // use querySeletor if elem is string\n if ( typeof elem == 'string' ) {\n elem = document.querySelector( elem );\n }\n\n // do not proceed on non-objects\n if ( !elem || typeof elem != 'object' || !elem.nodeType ) {\n return;\n }\n\n var style = getStyle( elem );\n\n // if hidden, everything is 0\n if ( style.display == 'none' ) {\n return getZeroSize();\n }\n\n var size = {};\n size.width = elem.offsetWidth;\n size.height = elem.offsetHeight;\n\n var isBorderBox = size.isBorderBox = style.boxSizing == 'border-box';\n\n // get all measurements\n for ( var i=0; i < measurementsLength; i++ ) {\n var measurement = measurements[i];\n var value = style[ measurement ];\n var num = parseFloat( value );\n // any 'auto', 'medium' value will be 0\n size[ measurement ] = !isNaN( num ) ? num : 0;\n }\n\n var paddingWidth = size.paddingLeft + size.paddingRight;\n var paddingHeight = size.paddingTop + size.paddingBottom;\n var marginWidth = size.marginLeft + size.marginRight;\n var marginHeight = size.marginTop + size.marginBottom;\n var borderWidth = size.borderLeftWidth + size.borderRightWidth;\n var borderHeight = size.borderTopWidth + size.borderBottomWidth;\n\n var isBorderBoxSizeOuter = isBorderBox && isBoxSizeOuter;\n\n // overwrite width and height if we can get it from style\n var styleWidth = getStyleSize( style.width );\n if ( styleWidth !== false ) {\n size.width = styleWidth +\n // add padding and border unless it's already including it\n ( isBorderBoxSizeOuter ? 0 : paddingWidth + borderWidth );\n }\n\n var styleHeight = getStyleSize( style.height );\n if ( styleHeight !== false ) {\n size.height = styleHeight +\n // add padding and border unless it's already including it\n ( isBorderBoxSizeOuter ? 0 : paddingHeight + borderHeight );\n }\n\n size.innerWidth = size.width - ( paddingWidth + borderWidth );\n size.innerHeight = size.height - ( paddingHeight + borderHeight );\n\n size.outerWidth = size.width + marginWidth;\n size.outerHeight = size.height + marginHeight;\n\n return size;\n}\n\nreturn getSize;\n\n});\n\n/**\n * matchesSelector v2.0.2\n * matchesSelector( element, '.selector' )\n * MIT license\n */\n\n/*jshint browser: true, strict: true, undef: true, unused: true */\n\n( function( window, factory ) {\n /*global define: false, module: false */\n 'use strict';\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( 'desandro-matches-selector/matches-selector',factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.matchesSelector = factory();\n }\n\n}( window, function factory() {\n 'use strict';\n\n var matchesMethod = ( function() {\n var ElemProto = window.Element.prototype;\n // check for the standard method name first\n if ( ElemProto.matches ) {\n return 'matches';\n }\n // check un-prefixed\n if ( ElemProto.matchesSelector ) {\n return 'matchesSelector';\n }\n // check vendor prefixes\n var prefixes = [ 'webkit', 'moz', 'ms', 'o' ];\n\n for ( var i=0; i < prefixes.length; i++ ) {\n var prefix = prefixes[i];\n var method = prefix + 'MatchesSelector';\n if ( ElemProto[ method ] ) {\n return method;\n }\n }\n })();\n\n return function matchesSelector( elem, selector ) {\n return elem[ matchesMethod ]( selector );\n };\n\n}));\n\n/**\n * Fizzy UI utils v2.0.7\n * MIT license\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true */\n\n( function( window, factory ) {\n // universal module definition\n /*jshint strict: false */ /*globals define, module, require */\n\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( 'fizzy-ui-utils/utils',[\n 'desandro-matches-selector/matches-selector'\n ], function( matchesSelector ) {\n return factory( window, matchesSelector );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('desandro-matches-selector')\n );\n } else {\n // browser global\n window.fizzyUIUtils = factory(\n window,\n window.matchesSelector\n );\n }\n\n}( window, function factory( window, matchesSelector ) {\n\n\n\nvar utils = {};\n\n// ----- extend ----- //\n\n// extends objects\nutils.extend = function( a, b ) {\n for ( var prop in b ) {\n a[ prop ] = b[ prop ];\n }\n return a;\n};\n\n// ----- modulo ----- //\n\nutils.modulo = function( num, div ) {\n return ( ( num % div ) + div ) % div;\n};\n\n// ----- makeArray ----- //\n\nvar arraySlice = Array.prototype.slice;\n\n// turn element or nodeList into an array\nutils.makeArray = function( obj ) {\n if ( Array.isArray( obj ) ) {\n // use object if already an array\n return obj;\n }\n // return empty array if undefined or null. #6\n if ( obj === null || obj === undefined ) {\n return [];\n }\n\n var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';\n if ( isArrayLike ) {\n // convert nodeList to array\n return arraySlice.call( obj );\n }\n\n // array of single index\n return [ obj ];\n};\n\n// ----- removeFrom ----- //\n\nutils.removeFrom = function( ary, obj ) {\n var index = ary.indexOf( obj );\n if ( index != -1 ) {\n ary.splice( index, 1 );\n }\n};\n\n// ----- getParent ----- //\n\nutils.getParent = function( elem, selector ) {\n while ( elem.parentNode && elem != document.body ) {\n elem = elem.parentNode;\n if ( matchesSelector( elem, selector ) ) {\n return elem;\n }\n }\n};\n\n// ----- getQueryElement ----- //\n\n// use element as selector string\nutils.getQueryElement = function( elem ) {\n if ( typeof elem == 'string' ) {\n return document.querySelector( elem );\n }\n return elem;\n};\n\n// ----- handleEvent ----- //\n\n// enable .ontype to trigger from .addEventListener( elem, 'type' )\nutils.handleEvent = function( event ) {\n var method = 'on' + event.type;\n if ( this[ method ] ) {\n this[ method ]( event );\n }\n};\n\n// ----- filterFindElements ----- //\n\nutils.filterFindElements = function( elems, selector ) {\n // make array of elems\n elems = utils.makeArray( elems );\n var ffElems = [];\n\n elems.forEach( function( elem ) {\n // check that elem is an actual element\n if ( !( elem instanceof HTMLElement ) ) {\n return;\n }\n // add elem if no selector\n if ( !selector ) {\n ffElems.push( elem );\n return;\n }\n // filter & find items if we have a selector\n // filter\n if ( matchesSelector( elem, selector ) ) {\n ffElems.push( elem );\n }\n // find children\n var childElems = elem.querySelectorAll( selector );\n // concat childElems to filterFound array\n for ( var i=0; i < childElems.length; i++ ) {\n ffElems.push( childElems[i] );\n }\n });\n\n return ffElems;\n};\n\n// ----- debounceMethod ----- //\n\nutils.debounceMethod = function( _class, methodName, threshold ) {\n threshold = threshold || 100;\n // original method\n var method = _class.prototype[ methodName ];\n var timeoutName = methodName + 'Timeout';\n\n _class.prototype[ methodName ] = function() {\n var timeout = this[ timeoutName ];\n clearTimeout( timeout );\n\n var args = arguments;\n var _this = this;\n this[ timeoutName ] = setTimeout( function() {\n method.apply( _this, args );\n delete _this[ timeoutName ];\n }, threshold );\n };\n};\n\n// ----- docReady ----- //\n\nutils.docReady = function( callback ) {\n var readyState = document.readyState;\n if ( readyState == 'complete' || readyState == 'interactive' ) {\n // do async to allow for other scripts to run. metafizzy/flickity#441\n setTimeout( callback );\n } else {\n document.addEventListener( 'DOMContentLoaded', callback );\n }\n};\n\n// ----- htmlInit ----- //\n\n// http://jamesroberts.name/blog/2010/02/22/string-functions-for-javascript-trim-to-camel-case-to-dashed-and-to-underscore/\nutils.toDashed = function( str ) {\n return str.replace( /(.)([A-Z])/g, function( match, $1, $2 ) {\n return $1 + '-' + $2;\n }).toLowerCase();\n};\n\nvar console = window.console;\n/**\n * allow user to initialize classes via [data-namespace] or .js-namespace class\n * htmlInit( Widget, 'widgetName' )\n * options are parsed from data-namespace-options\n */\nutils.htmlInit = function( WidgetClass, namespace ) {\n utils.docReady( function() {\n var dashedNamespace = utils.toDashed( namespace );\n var dataAttr = 'data-' + dashedNamespace;\n var dataAttrElems = document.querySelectorAll( '[' + dataAttr + ']' );\n var jsDashElems = document.querySelectorAll( '.js-' + dashedNamespace );\n var elems = utils.makeArray( dataAttrElems )\n .concat( utils.makeArray( jsDashElems ) );\n var dataOptionsAttr = dataAttr + '-options';\n var jQuery = window.jQuery;\n\n elems.forEach( function( elem ) {\n var attr = elem.getAttribute( dataAttr ) ||\n elem.getAttribute( dataOptionsAttr );\n var options;\n try {\n options = attr && JSON.parse( attr );\n } catch ( error ) {\n // log error, do not initialize\n if ( console ) {\n console.error( 'Error parsing ' + dataAttr + ' on ' + elem.className +\n ': ' + error );\n }\n return;\n }\n // initialize\n var instance = new WidgetClass( elem, options );\n // make available via $().data('namespace')\n if ( jQuery ) {\n jQuery.data( elem, namespace, instance );\n }\n });\n\n });\n};\n\n// ----- ----- //\n\nreturn utils;\n\n}));\n\n// Flickity.Cell\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( 'flickity/js/cell',[\n 'get-size/get-size',\n ], function( getSize ) {\n return factory( window, getSize );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('get-size')\n );\n } else {\n // browser global\n window.Flickity = window.Flickity || {};\n window.Flickity.Cell = factory(\n window,\n window.getSize\n );\n }\n\n}( window, function factory( window, getSize ) {\n\n\n\nfunction Cell( elem, parent ) {\n this.element = elem;\n this.parent = parent;\n\n this.create();\n}\n\nvar proto = Cell.prototype;\n\nproto.create = function() {\n this.element.style.position = 'absolute';\n this.element.setAttribute( 'aria-hidden', 'true' );\n this.x = 0;\n this.shift = 0;\n};\n\nproto.destroy = function() {\n // reset style\n this.unselect();\n this.element.style.position = '';\n var side = this.parent.originSide;\n this.element.style[ side ] = '';\n this.element.removeAttribute('aria-hidden');\n};\n\nproto.getSize = function() {\n this.size = getSize( this.element );\n};\n\nproto.setPosition = function( x ) {\n this.x = x;\n this.updateTarget();\n this.renderPosition( x );\n};\n\n// setDefaultTarget v1 method, backwards compatibility, remove in v3\nproto.updateTarget = proto.setDefaultTarget = function() {\n var marginProperty = this.parent.originSide == 'left' ? 'marginLeft' : 'marginRight';\n this.target = this.x + this.size[ marginProperty ] +\n this.size.width * this.parent.cellAlign;\n};\n\nproto.renderPosition = function( x ) {\n // render position of cell with in slider\n var side = this.parent.originSide;\n this.element.style[ side ] = this.parent.getPositionValue( x );\n};\n\nproto.select = function() {\n this.element.classList.add('is-selected');\n this.element.removeAttribute('aria-hidden');\n};\n\nproto.unselect = function() {\n this.element.classList.remove('is-selected');\n this.element.setAttribute( 'aria-hidden', 'true' );\n};\n\n/**\n * @param {Integer} shift - 0, 1, or -1\n */\nproto.wrapShift = function( shift ) {\n this.shift = shift;\n this.renderPosition( this.x + this.parent.slideableWidth * shift );\n};\n\nproto.remove = function() {\n this.element.parentNode.removeChild( this.element );\n};\n\nreturn Cell;\n\n} ) );\n\n// slide\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( 'flickity/js/slide',factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.Flickity = window.Flickity || {};\n window.Flickity.Slide = factory();\n }\n\n}( window, function factory() {\n'use strict';\n\nfunction Slide( parent ) {\n this.parent = parent;\n this.isOriginLeft = parent.originSide == 'left';\n this.cells = [];\n this.outerWidth = 0;\n this.height = 0;\n}\n\nvar proto = Slide.prototype;\n\nproto.addCell = function( cell ) {\n this.cells.push( cell );\n this.outerWidth += cell.size.outerWidth;\n this.height = Math.max( cell.size.outerHeight, this.height );\n // first cell stuff\n if ( this.cells.length == 1 ) {\n this.x = cell.x; // x comes from first cell\n var beginMargin = this.isOriginLeft ? 'marginLeft' : 'marginRight';\n this.firstMargin = cell.size[ beginMargin ];\n }\n};\n\nproto.updateTarget = function() {\n var endMargin = this.isOriginLeft ? 'marginRight' : 'marginLeft';\n var lastCell = this.getLastCell();\n var lastMargin = lastCell ? lastCell.size[ endMargin ] : 0;\n var slideWidth = this.outerWidth - ( this.firstMargin + lastMargin );\n this.target = this.x + this.firstMargin + slideWidth * this.parent.cellAlign;\n};\n\nproto.getLastCell = function() {\n return this.cells[ this.cells.length - 1 ];\n};\n\nproto.select = function() {\n this.cells.forEach( function( cell ) {\n cell.select();\n } );\n};\n\nproto.unselect = function() {\n this.cells.forEach( function( cell ) {\n cell.unselect();\n } );\n};\n\nproto.getCellElements = function() {\n return this.cells.map( function( cell ) {\n return cell.element;\n } );\n};\n\nreturn Slide;\n\n} ) );\n\n// animate\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( 'flickity/js/animate',[\n 'fizzy-ui-utils/utils',\n ], function( utils ) {\n return factory( window, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n window.Flickity = window.Flickity || {};\n window.Flickity.animatePrototype = factory(\n window,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, utils ) {\n\n\n\n// -------------------------- animate -------------------------- //\n\nvar proto = {};\n\nproto.startAnimation = function() {\n if ( this.isAnimating ) {\n return;\n }\n\n this.isAnimating = true;\n this.restingFrames = 0;\n this.animate();\n};\n\nproto.animate = function() {\n this.applyDragForce();\n this.applySelectedAttraction();\n\n var previousX = this.x;\n\n this.integratePhysics();\n this.positionSlider();\n this.settle( previousX );\n // animate next frame\n if ( this.isAnimating ) {\n var _this = this;\n requestAnimationFrame( function animateFrame() {\n _this.animate();\n } );\n }\n};\n\nproto.positionSlider = function() {\n var x = this.x;\n // wrap position around\n if ( this.options.wrapAround && this.cells.length > 1 ) {\n x = utils.modulo( x, this.slideableWidth );\n x -= this.slideableWidth;\n this.shiftWrapCells( x );\n }\n\n this.setTranslateX( x, this.isAnimating );\n this.dispatchScrollEvent();\n};\n\nproto.setTranslateX = function( x, is3d ) {\n x += this.cursorPosition;\n // reverse if right-to-left and using transform\n x = this.options.rightToLeft ? -x : x;\n var translateX = this.getPositionValue( x );\n // use 3D transforms for hardware acceleration on iOS\n // but use 2D when settled, for better font-rendering\n this.slider.style.transform = is3d ?\n 'translate3d(' + translateX + ',0,0)' : 'translateX(' + translateX + ')';\n};\n\nproto.dispatchScrollEvent = function() {\n var firstSlide = this.slides[0];\n if ( !firstSlide ) {\n return;\n }\n var positionX = -this.x - firstSlide.target;\n var progress = positionX / this.slidesWidth;\n this.dispatchEvent( 'scroll', null, [ progress, positionX ] );\n};\n\nproto.positionSliderAtSelected = function() {\n if ( !this.cells.length ) {\n return;\n }\n this.x = -this.selectedSlide.target;\n this.velocity = 0; // stop wobble\n this.positionSlider();\n};\n\nproto.getPositionValue = function( position ) {\n if ( this.options.percentPosition ) {\n // percent position, round to 2 digits, like 12.34%\n return ( Math.round( ( position / this.size.innerWidth ) * 10000 ) * 0.01 ) + '%';\n } else {\n // pixel positioning\n return Math.round( position ) + 'px';\n }\n};\n\nproto.settle = function( previousX ) {\n // keep track of frames where x hasn't moved\n var isResting = !this.isPointerDown &&\n Math.round( this.x * 100 ) == Math.round( previousX * 100 );\n if ( isResting ) {\n this.restingFrames++;\n }\n // stop animating if resting for 3 or more frames\n if ( this.restingFrames > 2 ) {\n this.isAnimating = false;\n delete this.isFreeScrolling;\n // render position with translateX when settled\n this.positionSlider();\n this.dispatchEvent( 'settle', null, [ this.selectedIndex ] );\n }\n};\n\nproto.shiftWrapCells = function( x ) {\n // shift before cells\n var beforeGap = this.cursorPosition + x;\n this._shiftCells( this.beforeShiftCells, beforeGap, -1 );\n // shift after cells\n var afterGap = this.size.innerWidth - ( x + this.slideableWidth + this.cursorPosition );\n this._shiftCells( this.afterShiftCells, afterGap, 1 );\n};\n\nproto._shiftCells = function( cells, gap, shift ) {\n for ( var i = 0; i < cells.length; i++ ) {\n var cell = cells[i];\n var cellShift = gap > 0 ? shift : 0;\n cell.wrapShift( cellShift );\n gap -= cell.size.outerWidth;\n }\n};\n\nproto._unshiftCells = function( cells ) {\n if ( !cells || !cells.length ) {\n return;\n }\n for ( var i = 0; i < cells.length; i++ ) {\n cells[i].wrapShift( 0 );\n }\n};\n\n// -------------------------- physics -------------------------- //\n\nproto.integratePhysics = function() {\n this.x += this.velocity;\n this.velocity *= this.getFrictionFactor();\n};\n\nproto.applyForce = function( force ) {\n this.velocity += force;\n};\n\nproto.getFrictionFactor = function() {\n return 1 - this.options[ this.isFreeScrolling ? 'freeScrollFriction' : 'friction' ];\n};\n\nproto.getRestingPosition = function() {\n // my thanks to Steven Wittens, who simplified this math greatly\n return this.x + this.velocity / ( 1 - this.getFrictionFactor() );\n};\n\nproto.applyDragForce = function() {\n if ( !this.isDraggable || !this.isPointerDown ) {\n return;\n }\n // change the position to drag position by applying force\n var dragVelocity = this.dragX - this.x;\n var dragForce = dragVelocity - this.velocity;\n this.applyForce( dragForce );\n};\n\nproto.applySelectedAttraction = function() {\n // do not attract if pointer down or no slides\n var dragDown = this.isDraggable && this.isPointerDown;\n if ( dragDown || this.isFreeScrolling || !this.slides.length ) {\n return;\n }\n var distance = this.selectedSlide.target * -1 - this.x;\n var force = distance * this.options.selectedAttraction;\n this.applyForce( force );\n};\n\nreturn proto;\n\n} ) );\n\n// Flickity main\n/* eslint-disable max-params */\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( 'flickity/js/flickity',[\n 'ev-emitter/ev-emitter',\n 'get-size/get-size',\n 'fizzy-ui-utils/utils',\n './cell',\n './slide',\n './animate',\n ], function( EvEmitter, getSize, utils, Cell, Slide, animatePrototype ) {\n return factory( window, EvEmitter, getSize, utils, Cell, Slide, animatePrototype );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('ev-emitter'),\n require('get-size'),\n require('fizzy-ui-utils'),\n require('./cell'),\n require('./slide'),\n require('./animate')\n );\n } else {\n // browser global\n var _Flickity = window.Flickity;\n\n window.Flickity = factory(\n window,\n window.EvEmitter,\n window.getSize,\n window.fizzyUIUtils,\n _Flickity.Cell,\n _Flickity.Slide,\n _Flickity.animatePrototype\n );\n }\n\n}( window, function factory( window, EvEmitter, getSize,\n utils, Cell, Slide, animatePrototype ) {\n\n/* eslint-enable max-params */\n\n\n// vars\nvar jQuery = window.jQuery;\nvar getComputedStyle = window.getComputedStyle;\nvar console = window.console;\n\nfunction moveElements( elems, toElem ) {\n elems = utils.makeArray( elems );\n while ( elems.length ) {\n toElem.appendChild( elems.shift() );\n }\n}\n\n// -------------------------- Flickity -------------------------- //\n\n// globally unique identifiers\nvar GUID = 0;\n// internal store of all Flickity intances\nvar instances = {};\n\nfunction Flickity( element, options ) {\n var queryElement = utils.getQueryElement( element );\n if ( !queryElement ) {\n if ( console ) {\n console.error( 'Bad element for Flickity: ' + ( queryElement || element ) );\n }\n return;\n }\n this.element = queryElement;\n // do not initialize twice on same element\n if ( this.element.flickityGUID ) {\n var instance = instances[ this.element.flickityGUID ];\n if ( instance ) instance.option( options );\n return instance;\n }\n\n // add jQuery\n if ( jQuery ) {\n this.$element = jQuery( this.element );\n }\n // options\n this.options = utils.extend( {}, this.constructor.defaults );\n this.option( options );\n\n // kick things off\n this._create();\n}\n\nFlickity.defaults = {\n accessibility: true,\n // adaptiveHeight: false,\n cellAlign: 'center',\n // cellSelector: undefined,\n // contain: false,\n freeScrollFriction: 0.075, // friction when free-scrolling\n friction: 0.28, // friction when selecting\n namespaceJQueryEvents: true,\n // initialIndex: 0,\n percentPosition: true,\n resize: true,\n selectedAttraction: 0.025,\n setGallerySize: true,\n // watchCSS: false,\n // wrapAround: false\n};\n\n// hash of methods triggered on _create()\nFlickity.createMethods = [];\n\nvar proto = Flickity.prototype;\n// inherit EventEmitter\nutils.extend( proto, EvEmitter.prototype );\n\nproto._create = function() {\n // add id for Flickity.data\n var id = this.guid = ++GUID;\n this.element.flickityGUID = id; // expando\n instances[ id ] = this; // associate via id\n // initial properties\n this.selectedIndex = 0;\n // how many frames slider has been in same position\n this.restingFrames = 0;\n // initial physics properties\n this.x = 0;\n this.velocity = 0;\n this.originSide = this.options.rightToLeft ? 'right' : 'left';\n // create viewport & slider\n this.viewport = document.createElement('div');\n this.viewport.className = 'flickity-viewport';\n this._createSlider();\n\n if ( this.options.resize || this.options.watchCSS ) {\n window.addEventListener( 'resize', this );\n }\n\n // add listeners from on option\n for ( var eventName in this.options.on ) {\n var listener = this.options.on[ eventName ];\n this.on( eventName, listener );\n }\n\n Flickity.createMethods.forEach( function( method ) {\n this[ method ]();\n }, this );\n\n if ( this.options.watchCSS ) {\n this.watchCSS();\n } else {\n this.activate();\n }\n\n};\n\n/**\n * set options\n * @param {Object} opts - options to extend\n */\nproto.option = function( opts ) {\n utils.extend( this.options, opts );\n};\n\nproto.activate = function() {\n if ( this.isActive ) {\n return;\n }\n this.isActive = true;\n this.element.classList.add('flickity-enabled');\n if ( this.options.rightToLeft ) {\n this.element.classList.add('flickity-rtl');\n }\n\n this.getSize();\n // move initial cell elements so they can be loaded as cells\n var cellElems = this._filterFindCellElements( this.element.children );\n moveElements( cellElems, this.slider );\n this.viewport.appendChild( this.slider );\n this.element.appendChild( this.viewport );\n // get cells from children\n this.reloadCells();\n\n if ( this.options.accessibility ) {\n // allow element to focusable\n this.element.tabIndex = 0;\n // listen for key presses\n this.element.addEventListener( 'keydown', this );\n }\n\n this.emitEvent('activate');\n this.selectInitialIndex();\n // flag for initial activation, for using initialIndex\n this.isInitActivated = true;\n // ready event. #493\n this.dispatchEvent('ready');\n};\n\n// slider positions the cells\nproto._createSlider = function() {\n // slider element does all the positioning\n var slider = document.createElement('div');\n slider.className = 'flickity-slider';\n slider.style[ this.originSide ] = 0;\n this.slider = slider;\n};\n\nproto._filterFindCellElements = function( elems ) {\n return utils.filterFindElements( elems, this.options.cellSelector );\n};\n\n// goes through all children\nproto.reloadCells = function() {\n // collection of item elements\n this.cells = this._makeCells( this.slider.children );\n this.positionCells();\n this._getWrapShiftCells();\n this.setGallerySize();\n};\n\n/**\n * turn elements into Flickity.Cells\n * @param {[Array, NodeList, HTMLElement]} elems - elements to make into cells\n * @returns {Array} items - collection of new Flickity Cells\n */\nproto._makeCells = function( elems ) {\n var cellElems = this._filterFindCellElements( elems );\n\n // create new Flickity for collection\n var cells = cellElems.map( function( cellElem ) {\n return new Cell( cellElem, this );\n }, this );\n\n return cells;\n};\n\nproto.getLastCell = function() {\n return this.cells[ this.cells.length - 1 ];\n};\n\nproto.getLastSlide = function() {\n return this.slides[ this.slides.length - 1 ];\n};\n\n// positions all cells\nproto.positionCells = function() {\n // size all cells\n this._sizeCells( this.cells );\n // position all cells\n this._positionCells( 0 );\n};\n\n/**\n * position certain cells\n * @param {Integer} index - which cell to start with\n */\nproto._positionCells = function( index ) {\n index = index || 0;\n // also measure maxCellHeight\n // start 0 if positioning all cells\n this.maxCellHeight = index ? this.maxCellHeight || 0 : 0;\n var cellX = 0;\n // get cellX\n if ( index > 0 ) {\n var startCell = this.cells[ index - 1 ];\n cellX = startCell.x + startCell.size.outerWidth;\n }\n var len = this.cells.length;\n for ( var i = index; i < len; i++ ) {\n var cell = this.cells[i];\n cell.setPosition( cellX );\n cellX += cell.size.outerWidth;\n this.maxCellHeight = Math.max( cell.size.outerHeight, this.maxCellHeight );\n }\n // keep track of cellX for wrap-around\n this.slideableWidth = cellX;\n // slides\n this.updateSlides();\n // contain slides target\n this._containSlides();\n // update slidesWidth\n this.slidesWidth = len ? this.getLastSlide().target - this.slides[0].target : 0;\n};\n\n/**\n * cell.getSize() on multiple cells\n * @param {Array} cells - cells to size\n */\nproto._sizeCells = function( cells ) {\n cells.forEach( function( cell ) {\n cell.getSize();\n } );\n};\n\n// -------------------------- -------------------------- //\n\nproto.updateSlides = function() {\n this.slides = [];\n if ( !this.cells.length ) {\n return;\n }\n\n var slide = new Slide( this );\n this.slides.push( slide );\n var isOriginLeft = this.originSide == 'left';\n var nextMargin = isOriginLeft ? 'marginRight' : 'marginLeft';\n\n var canCellFit = this._getCanCellFit();\n\n this.cells.forEach( function( cell, i ) {\n // just add cell if first cell in slide\n if ( !slide.cells.length ) {\n slide.addCell( cell );\n return;\n }\n\n var slideWidth = ( slide.outerWidth - slide.firstMargin ) +\n ( cell.size.outerWidth - cell.size[ nextMargin ] );\n\n if ( canCellFit.call( this, i, slideWidth ) ) {\n slide.addCell( cell );\n } else {\n // doesn't fit, new slide\n slide.updateTarget();\n\n slide = new Slide( this );\n this.slides.push( slide );\n slide.addCell( cell );\n }\n }, this );\n // last slide\n slide.updateTarget();\n // update .selectedSlide\n this.updateSelectedSlide();\n};\n\nproto._getCanCellFit = function() {\n var groupCells = this.options.groupCells;\n if ( !groupCells ) {\n return function() {\n return false;\n };\n } else if ( typeof groupCells == 'number' ) {\n // group by number. 3 -> [0,1,2], [3,4,5], ...\n var number = parseInt( groupCells, 10 );\n return function( i ) {\n return ( i % number ) !== 0;\n };\n }\n // default, group by width of slide\n // parse '75%\n var percentMatch = typeof groupCells == 'string' &&\n groupCells.match( /^(\\d+)%$/ );\n var percent = percentMatch ? parseInt( percentMatch[1], 10 ) / 100 : 1;\n return function( i, slideWidth ) {\n /* eslint-disable-next-line no-invalid-this */\n return slideWidth <= ( this.size.innerWidth + 1 ) * percent;\n };\n};\n\n// alias _init for jQuery plugin .flickity()\nproto._init =\nproto.reposition = function() {\n this.positionCells();\n this.positionSliderAtSelected();\n};\n\nproto.getSize = function() {\n this.size = getSize( this.element );\n this.setCellAlign();\n this.cursorPosition = this.size.innerWidth * this.cellAlign;\n};\n\nvar cellAlignShorthands = {\n // cell align, then based on origin side\n center: {\n left: 0.5,\n right: 0.5,\n },\n left: {\n left: 0,\n right: 1,\n },\n right: {\n right: 0,\n left: 1,\n },\n};\n\nproto.setCellAlign = function() {\n var shorthand = cellAlignShorthands[ this.options.cellAlign ];\n this.cellAlign = shorthand ? shorthand[ this.originSide ] : this.options.cellAlign;\n};\n\nproto.setGallerySize = function() {\n if ( this.options.setGallerySize ) {\n var height = this.options.adaptiveHeight && this.selectedSlide ?\n this.selectedSlide.height : this.maxCellHeight;\n this.viewport.style.height = height + 'px';\n }\n};\n\nproto._getWrapShiftCells = function() {\n // only for wrap-around\n if ( !this.options.wrapAround ) {\n return;\n }\n // unshift previous cells\n this._unshiftCells( this.beforeShiftCells );\n this._unshiftCells( this.afterShiftCells );\n // get before cells\n // initial gap\n var gapX = this.cursorPosition;\n var cellIndex = this.cells.length - 1;\n this.beforeShiftCells = this._getGapCells( gapX, cellIndex, -1 );\n // get after cells\n // ending gap between last cell and end of gallery viewport\n gapX = this.size.innerWidth - this.cursorPosition;\n // start cloning at first cell, working forwards\n this.afterShiftCells = this._getGapCells( gapX, 0, 1 );\n};\n\nproto._getGapCells = function( gapX, cellIndex, increment ) {\n // keep adding cells until the cover the initial gap\n var cells = [];\n while ( gapX > 0 ) {\n var cell = this.cells[ cellIndex ];\n if ( !cell ) {\n break;\n }\n cells.push( cell );\n cellIndex += increment;\n gapX -= cell.size.outerWidth;\n }\n return cells;\n};\n\n// ----- contain ----- //\n\n// contain cell targets so no excess sliding\nproto._containSlides = function() {\n if ( !this.options.contain || this.options.wrapAround || !this.cells.length ) {\n return;\n }\n var isRightToLeft = this.options.rightToLeft;\n var beginMargin = isRightToLeft ? 'marginRight' : 'marginLeft';\n var endMargin = isRightToLeft ? 'marginLeft' : 'marginRight';\n var contentWidth = this.slideableWidth - this.getLastCell().size[ endMargin ];\n // content is less than gallery size\n var isContentSmaller = contentWidth < this.size.innerWidth;\n // bounds\n var beginBound = this.cursorPosition + this.cells[0].size[ beginMargin ];\n var endBound = contentWidth - this.size.innerWidth * ( 1 - this.cellAlign );\n // contain each cell target\n this.slides.forEach( function( slide ) {\n if ( isContentSmaller ) {\n // all cells fit inside gallery\n slide.target = contentWidth * this.cellAlign;\n } else {\n // contain to bounds\n slide.target = Math.max( slide.target, beginBound );\n slide.target = Math.min( slide.target, endBound );\n }\n }, this );\n};\n\n// ----- ----- //\n\n/**\n * emits events via eventEmitter and jQuery events\n * @param {String} type - name of event\n * @param {Event} event - original event\n * @param {Array} args - extra arguments\n */\nproto.dispatchEvent = function( type, event, args ) {\n var emitArgs = event ? [ event ].concat( args ) : args;\n this.emitEvent( type, emitArgs );\n\n if ( jQuery && this.$element ) {\n // default trigger with type if no event\n type += this.options.namespaceJQueryEvents ? '.flickity' : '';\n var $event = type;\n if ( event ) {\n // create jQuery event\n var jQEvent = new jQuery.Event( event );\n jQEvent.type = type;\n $event = jQEvent;\n }\n this.$element.trigger( $event, args );\n }\n};\n\n// -------------------------- select -------------------------- //\n\n/**\n * @param {Integer} index - index of the slide\n * @param {Boolean} isWrap - will wrap-around to last/first if at the end\n * @param {Boolean} isInstant - will immediately set position at selected cell\n */\nproto.select = function( index, isWrap, isInstant ) {\n if ( !this.isActive ) {\n return;\n }\n index = parseInt( index, 10 );\n this._wrapSelect( index );\n\n if ( this.options.wrapAround || isWrap ) {\n index = utils.modulo( index, this.slides.length );\n }\n // bail if invalid index\n if ( !this.slides[ index ] ) {\n return;\n }\n var prevIndex = this.selectedIndex;\n this.selectedIndex = index;\n this.updateSelectedSlide();\n if ( isInstant ) {\n this.positionSliderAtSelected();\n } else {\n this.startAnimation();\n }\n if ( this.options.adaptiveHeight ) {\n this.setGallerySize();\n }\n // events\n this.dispatchEvent( 'select', null, [ index ] );\n // change event if new index\n if ( index != prevIndex ) {\n this.dispatchEvent( 'change', null, [ index ] );\n }\n // old v1 event name, remove in v3\n this.dispatchEvent('cellSelect');\n};\n\n// wraps position for wrapAround, to move to closest slide. #113\nproto._wrapSelect = function( index ) {\n var len = this.slides.length;\n var isWrapping = this.options.wrapAround && len > 1;\n if ( !isWrapping ) {\n return index;\n }\n var wrapIndex = utils.modulo( index, len );\n // go to shortest\n var delta = Math.abs( wrapIndex - this.selectedIndex );\n var backWrapDelta = Math.abs( ( wrapIndex + len ) - this.selectedIndex );\n var forewardWrapDelta = Math.abs( ( wrapIndex - len ) - this.selectedIndex );\n if ( !this.isDragSelect && backWrapDelta < delta ) {\n index += len;\n } else if ( !this.isDragSelect && forewardWrapDelta < delta ) {\n index -= len;\n }\n // wrap position so slider is within normal area\n if ( index < 0 ) {\n this.x -= this.slideableWidth;\n } else if ( index >= len ) {\n this.x += this.slideableWidth;\n }\n};\n\nproto.previous = function( isWrap, isInstant ) {\n this.select( this.selectedIndex - 1, isWrap, isInstant );\n};\n\nproto.next = function( isWrap, isInstant ) {\n this.select( this.selectedIndex + 1, isWrap, isInstant );\n};\n\nproto.updateSelectedSlide = function() {\n var slide = this.slides[ this.selectedIndex ];\n // selectedIndex could be outside of slides, if triggered before resize()\n if ( !slide ) {\n return;\n }\n // unselect previous selected slide\n this.unselectSelectedSlide();\n // update new selected slide\n this.selectedSlide = slide;\n slide.select();\n this.selectedCells = slide.cells;\n this.selectedElements = slide.getCellElements();\n // HACK: selectedCell & selectedElement is first cell in slide, backwards compatibility\n // Remove in v3?\n this.selectedCell = slide.cells[0];\n this.selectedElement = this.selectedElements[0];\n};\n\nproto.unselectSelectedSlide = function() {\n if ( this.selectedSlide ) {\n this.selectedSlide.unselect();\n }\n};\n\nproto.selectInitialIndex = function() {\n var initialIndex = this.options.initialIndex;\n // already activated, select previous selectedIndex\n if ( this.isInitActivated ) {\n this.select( this.selectedIndex, false, true );\n return;\n }\n // select with selector string\n if ( initialIndex && typeof initialIndex == 'string' ) {\n var cell = this.queryCell( initialIndex );\n if ( cell ) {\n this.selectCell( initialIndex, false, true );\n return;\n }\n }\n\n var index = 0;\n // select with number\n if ( initialIndex && this.slides[ initialIndex ] ) {\n index = initialIndex;\n }\n // select instantly\n this.select( index, false, true );\n};\n\n/**\n * select slide from number or cell element\n * @param {[Element, Number]} value - zero-based index or element to select\n * @param {Boolean} isWrap - enables wrapping around for extra index\n * @param {Boolean} isInstant - disables slide animation\n */\nproto.selectCell = function( value, isWrap, isInstant ) {\n // get cell\n var cell = this.queryCell( value );\n if ( !cell ) {\n return;\n }\n\n var index = this.getCellSlideIndex( cell );\n this.select( index, isWrap, isInstant );\n};\n\nproto.getCellSlideIndex = function( cell ) {\n // get index of slides that has cell\n for ( var i = 0; i < this.slides.length; i++ ) {\n var slide = this.slides[i];\n var index = slide.cells.indexOf( cell );\n if ( index != -1 ) {\n return i;\n }\n }\n};\n\n// -------------------------- get cells -------------------------- //\n\n/**\n * get Flickity.Cell, given an Element\n * @param {Element} elem - matching cell element\n * @returns {Flickity.Cell} cell - matching cell\n */\nproto.getCell = function( elem ) {\n // loop through cells to get the one that matches\n for ( var i = 0; i < this.cells.length; i++ ) {\n var cell = this.cells[i];\n if ( cell.element == elem ) {\n return cell;\n }\n }\n};\n\n/**\n * get collection of Flickity.Cells, given Elements\n * @param {[Element, Array, NodeList]} elems - multiple elements\n * @returns {Array} cells - Flickity.Cells\n */\nproto.getCells = function( elems ) {\n elems = utils.makeArray( elems );\n var cells = [];\n elems.forEach( function( elem ) {\n var cell = this.getCell( elem );\n if ( cell ) {\n cells.push( cell );\n }\n }, this );\n return cells;\n};\n\n/**\n * get cell elements\n * @returns {Array} cellElems\n */\nproto.getCellElements = function() {\n return this.cells.map( function( cell ) {\n return cell.element;\n } );\n};\n\n/**\n * get parent cell from an element\n * @param {Element} elem - child element\n * @returns {Flickit.Cell} cell - parent cell\n */\nproto.getParentCell = function( elem ) {\n // first check if elem is cell\n var cell = this.getCell( elem );\n if ( cell ) {\n return cell;\n }\n // try to get parent cell elem\n elem = utils.getParent( elem, '.flickity-slider > *' );\n return this.getCell( elem );\n};\n\n/**\n * get cells adjacent to a slide\n * @param {Integer} adjCount - number of adjacent slides\n * @param {Integer} index - index of slide to start\n * @returns {Array} cells - array of Flickity.Cells\n */\nproto.getAdjacentCellElements = function( adjCount, index ) {\n if ( !adjCount ) {\n return this.selectedSlide.getCellElements();\n }\n index = index === undefined ? this.selectedIndex : index;\n\n var len = this.slides.length;\n if ( 1 + ( adjCount * 2 ) >= len ) {\n return this.getCellElements();\n }\n\n var cellElems = [];\n for ( var i = index - adjCount; i <= index + adjCount; i++ ) {\n var slideIndex = this.options.wrapAround ? utils.modulo( i, len ) : i;\n var slide = this.slides[ slideIndex ];\n if ( slide ) {\n cellElems = cellElems.concat( slide.getCellElements() );\n }\n }\n return cellElems;\n};\n\n/**\n * select slide from number or cell element\n * @param {[Element, String, Number]} selector - element, selector string, or index\n * @returns {Flickity.Cell} - matching cell\n */\nproto.queryCell = function( selector ) {\n if ( typeof selector == 'number' ) {\n // use number as index\n return this.cells[ selector ];\n }\n if ( typeof selector == 'string' ) {\n // do not select invalid selectors from hash: #123, #/. #791\n if ( selector.match( /^[#.]?[\\d/]/ ) ) {\n return;\n }\n // use string as selector, get element\n selector = this.element.querySelector( selector );\n }\n // get cell from element\n return this.getCell( selector );\n};\n\n// -------------------------- events -------------------------- //\n\nproto.uiChange = function() {\n this.emitEvent('uiChange');\n};\n\n// keep focus on element when child UI elements are clicked\nproto.childUIPointerDown = function( event ) {\n // HACK iOS does not allow touch events to bubble up?!\n if ( event.type != 'touchstart' ) {\n event.preventDefault();\n }\n this.focus();\n};\n\n// ----- resize ----- //\n\nproto.onresize = function() {\n this.watchCSS();\n this.resize();\n};\n\nutils.debounceMethod( Flickity, 'onresize', 150 );\n\nproto.resize = function() {\n if ( !this.isActive ) {\n return;\n }\n this.getSize();\n // wrap values\n if ( this.options.wrapAround ) {\n this.x = utils.modulo( this.x, this.slideableWidth );\n }\n this.positionCells();\n this._getWrapShiftCells();\n this.setGallerySize();\n this.emitEvent('resize');\n // update selected index for group slides, instant\n // TODO: position can be lost between groups of various numbers\n var selectedElement = this.selectedElements && this.selectedElements[0];\n this.selectCell( selectedElement, false, true );\n};\n\n// watches the :after property, activates/deactivates\nproto.watchCSS = function() {\n var watchOption = this.options.watchCSS;\n if ( !watchOption ) {\n return;\n }\n\n var afterContent = getComputedStyle( this.element, ':after' ).content;\n // activate if :after { content: 'flickity' }\n if ( afterContent.indexOf('flickity') != -1 ) {\n this.activate();\n } else {\n this.deactivate();\n }\n};\n\n// ----- keydown ----- //\n\n// go previous/next if left/right keys pressed\nproto.onkeydown = function( event ) {\n // only work if element is in focus\n var isNotFocused = document.activeElement && document.activeElement != this.element;\n if ( !this.options.accessibility || isNotFocused ) {\n return;\n }\n\n var handler = Flickity.keyboardHandlers[ event.keyCode ];\n if ( handler ) {\n handler.call( this );\n }\n};\n\nFlickity.keyboardHandlers = {\n // left arrow\n 37: function() {\n var leftMethod = this.options.rightToLeft ? 'next' : 'previous';\n this.uiChange();\n this[ leftMethod ]();\n },\n // right arrow\n 39: function() {\n var rightMethod = this.options.rightToLeft ? 'previous' : 'next';\n this.uiChange();\n this[ rightMethod ]();\n },\n};\n\n// ----- focus ----- //\n\nproto.focus = function() {\n // TODO remove scrollTo once focus options gets more support\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus ...\n // #Browser_compatibility\n var prevScrollY = window.pageYOffset;\n this.element.focus({ preventScroll: true });\n // hack to fix scroll jump after focus, #76\n if ( window.pageYOffset != prevScrollY ) {\n window.scrollTo( window.pageXOffset, prevScrollY );\n }\n};\n\n// -------------------------- destroy -------------------------- //\n\n// deactivate all Flickity functionality, but keep stuff available\nproto.deactivate = function() {\n if ( !this.isActive ) {\n return;\n }\n this.element.classList.remove('flickity-enabled');\n this.element.classList.remove('flickity-rtl');\n this.unselectSelectedSlide();\n // destroy cells\n this.cells.forEach( function( cell ) {\n cell.destroy();\n } );\n this.element.removeChild( this.viewport );\n // move child elements back into element\n moveElements( this.slider.children, this.element );\n if ( this.options.accessibility ) {\n this.element.removeAttribute('tabIndex');\n this.element.removeEventListener( 'keydown', this );\n }\n // set flags\n this.isActive = false;\n this.emitEvent('deactivate');\n};\n\nproto.destroy = function() {\n this.deactivate();\n window.removeEventListener( 'resize', this );\n this.allOff();\n this.emitEvent('destroy');\n if ( jQuery && this.$element ) {\n jQuery.removeData( this.element, 'flickity' );\n }\n delete this.element.flickityGUID;\n delete instances[ this.guid ];\n};\n\n// -------------------------- prototype -------------------------- //\n\nutils.extend( proto, animatePrototype );\n\n// -------------------------- extras -------------------------- //\n\n/**\n * get Flickity instance from element\n * @param {[Element, String]} elem - element or selector string\n * @returns {Flickity} - Flickity instance\n */\nFlickity.data = function( elem ) {\n elem = utils.getQueryElement( elem );\n var id = elem && elem.flickityGUID;\n return id && instances[ id ];\n};\n\nutils.htmlInit( Flickity, 'flickity' );\n\nif ( jQuery && jQuery.bridget ) {\n jQuery.bridget( 'flickity', Flickity );\n}\n\n// set internal jQuery, for Webpack + jQuery v3, #478\nFlickity.setJQuery = function( jq ) {\n jQuery = jq;\n};\n\nFlickity.Cell = Cell;\nFlickity.Slide = Slide;\n\nreturn Flickity;\n\n} ) );\n\n/*!\n * Unipointer v2.3.0\n * base class for doing one thing with pointer event\n * MIT license\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true */\n\n( function( window, factory ) {\n // universal module definition\n /* jshint strict: false */ /*global define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( 'unipointer/unipointer',[\n 'ev-emitter/ev-emitter'\n ], function( EvEmitter ) {\n return factory( window, EvEmitter );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('ev-emitter')\n );\n } else {\n // browser global\n window.Unipointer = factory(\n window,\n window.EvEmitter\n );\n }\n\n}( window, function factory( window, EvEmitter ) {\n\n\n\nfunction noop() {}\n\nfunction Unipointer() {}\n\n// inherit EvEmitter\nvar proto = Unipointer.prototype = Object.create( EvEmitter.prototype );\n\nproto.bindStartEvent = function( elem ) {\n this._bindStartEvent( elem, true );\n};\n\nproto.unbindStartEvent = function( elem ) {\n this._bindStartEvent( elem, false );\n};\n\n/**\n * Add or remove start event\n * @param {Boolean} isAdd - remove if falsey\n */\nproto._bindStartEvent = function( elem, isAdd ) {\n // munge isAdd, default to true\n isAdd = isAdd === undefined ? true : isAdd;\n var bindMethod = isAdd ? 'addEventListener' : 'removeEventListener';\n\n // default to mouse events\n var startEvent = 'mousedown';\n if ( window.PointerEvent ) {\n // Pointer Events\n startEvent = 'pointerdown';\n } else if ( 'ontouchstart' in window ) {\n // Touch Events. iOS Safari\n startEvent = 'touchstart';\n }\n elem[ bindMethod ]( startEvent, this );\n};\n\n// trigger handler methods for events\nproto.handleEvent = function( event ) {\n var method = 'on' + event.type;\n if ( this[ method ] ) {\n this[ method ]( event );\n }\n};\n\n// returns the touch that we're keeping track of\nproto.getTouch = function( touches ) {\n for ( var i=0; i < touches.length; i++ ) {\n var touch = touches[i];\n if ( touch.identifier == this.pointerIdentifier ) {\n return touch;\n }\n }\n};\n\n// ----- start event ----- //\n\nproto.onmousedown = function( event ) {\n // dismiss clicks from right or middle buttons\n var button = event.button;\n if ( button && ( button !== 0 && button !== 1 ) ) {\n return;\n }\n this._pointerDown( event, event );\n};\n\nproto.ontouchstart = function( event ) {\n this._pointerDown( event, event.changedTouches[0] );\n};\n\nproto.onpointerdown = function( event ) {\n this._pointerDown( event, event );\n};\n\n/**\n * pointer start\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto._pointerDown = function( event, pointer ) {\n // dismiss right click and other pointers\n // button = 0 is okay, 1-4 not\n if ( event.button || this.isPointerDown ) {\n return;\n }\n\n this.isPointerDown = true;\n // save pointer identifier to match up touch events\n this.pointerIdentifier = pointer.pointerId !== undefined ?\n // pointerId for pointer events, touch.indentifier for touch events\n pointer.pointerId : pointer.identifier;\n\n this.pointerDown( event, pointer );\n};\n\nproto.pointerDown = function( event, pointer ) {\n this._bindPostStartEvents( event );\n this.emitEvent( 'pointerDown', [ event, pointer ] );\n};\n\n// hash of events to be bound after start event\nvar postStartEvents = {\n mousedown: [ 'mousemove', 'mouseup' ],\n touchstart: [ 'touchmove', 'touchend', 'touchcancel' ],\n pointerdown: [ 'pointermove', 'pointerup', 'pointercancel' ],\n};\n\nproto._bindPostStartEvents = function( event ) {\n if ( !event ) {\n return;\n }\n // get proper events to match start event\n var events = postStartEvents[ event.type ];\n // bind events to node\n events.forEach( function( eventName ) {\n window.addEventListener( eventName, this );\n }, this );\n // save these arguments\n this._boundPointerEvents = events;\n};\n\nproto._unbindPostStartEvents = function() {\n // check for _boundEvents, in case dragEnd triggered twice (old IE8 bug)\n if ( !this._boundPointerEvents ) {\n return;\n }\n this._boundPointerEvents.forEach( function( eventName ) {\n window.removeEventListener( eventName, this );\n }, this );\n\n delete this._boundPointerEvents;\n};\n\n// ----- move event ----- //\n\nproto.onmousemove = function( event ) {\n this._pointerMove( event, event );\n};\n\nproto.onpointermove = function( event ) {\n if ( event.pointerId == this.pointerIdentifier ) {\n this._pointerMove( event, event );\n }\n};\n\nproto.ontouchmove = function( event ) {\n var touch = this.getTouch( event.changedTouches );\n if ( touch ) {\n this._pointerMove( event, touch );\n }\n};\n\n/**\n * pointer move\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerMove = function( event, pointer ) {\n this.pointerMove( event, pointer );\n};\n\n// public\nproto.pointerMove = function( event, pointer ) {\n this.emitEvent( 'pointerMove', [ event, pointer ] );\n};\n\n// ----- end event ----- //\n\n\nproto.onmouseup = function( event ) {\n this._pointerUp( event, event );\n};\n\nproto.onpointerup = function( event ) {\n if ( event.pointerId == this.pointerIdentifier ) {\n this._pointerUp( event, event );\n }\n};\n\nproto.ontouchend = function( event ) {\n var touch = this.getTouch( event.changedTouches );\n if ( touch ) {\n this._pointerUp( event, touch );\n }\n};\n\n/**\n * pointer up\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerUp = function( event, pointer ) {\n this._pointerDone();\n this.pointerUp( event, pointer );\n};\n\n// public\nproto.pointerUp = function( event, pointer ) {\n this.emitEvent( 'pointerUp', [ event, pointer ] );\n};\n\n// ----- pointer done ----- //\n\n// triggered on pointer up & pointer cancel\nproto._pointerDone = function() {\n this._pointerReset();\n this._unbindPostStartEvents();\n this.pointerDone();\n};\n\nproto._pointerReset = function() {\n // reset properties\n this.isPointerDown = false;\n delete this.pointerIdentifier;\n};\n\nproto.pointerDone = noop;\n\n// ----- pointer cancel ----- //\n\nproto.onpointercancel = function( event ) {\n if ( event.pointerId == this.pointerIdentifier ) {\n this._pointerCancel( event, event );\n }\n};\n\nproto.ontouchcancel = function( event ) {\n var touch = this.getTouch( event.changedTouches );\n if ( touch ) {\n this._pointerCancel( event, touch );\n }\n};\n\n/**\n * pointer cancel\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerCancel = function( event, pointer ) {\n this._pointerDone();\n this.pointerCancel( event, pointer );\n};\n\n// public\nproto.pointerCancel = function( event, pointer ) {\n this.emitEvent( 'pointerCancel', [ event, pointer ] );\n};\n\n// ----- ----- //\n\n// utility function for getting x/y coords from event\nUnipointer.getPointerPoint = function( pointer ) {\n return {\n x: pointer.pageX,\n y: pointer.pageY\n };\n};\n\n// ----- ----- //\n\nreturn Unipointer;\n\n}));\n\n/*!\n * Unidragger v2.3.1\n * Draggable base class\n * MIT license\n */\n\n/*jshint browser: true, unused: true, undef: true, strict: true */\n\n( function( window, factory ) {\n // universal module definition\n /*jshint strict: false */ /*globals define, module, require */\n\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( 'unidragger/unidragger',[\n 'unipointer/unipointer'\n ], function( Unipointer ) {\n return factory( window, Unipointer );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('unipointer')\n );\n } else {\n // browser global\n window.Unidragger = factory(\n window,\n window.Unipointer\n );\n }\n\n}( window, function factory( window, Unipointer ) {\n\n\n\n// -------------------------- Unidragger -------------------------- //\n\nfunction Unidragger() {}\n\n// inherit Unipointer & EvEmitter\nvar proto = Unidragger.prototype = Object.create( Unipointer.prototype );\n\n// ----- bind start ----- //\n\nproto.bindHandles = function() {\n this._bindHandles( true );\n};\n\nproto.unbindHandles = function() {\n this._bindHandles( false );\n};\n\n/**\n * Add or remove start event\n * @param {Boolean} isAdd\n */\nproto._bindHandles = function( isAdd ) {\n // munge isAdd, default to true\n isAdd = isAdd === undefined ? true : isAdd;\n // bind each handle\n var bindMethod = isAdd ? 'addEventListener' : 'removeEventListener';\n var touchAction = isAdd ? this._touchActionValue : '';\n for ( var i=0; i < this.handles.length; i++ ) {\n var handle = this.handles[i];\n this._bindStartEvent( handle, isAdd );\n handle[ bindMethod ]( 'click', this );\n // touch-action: none to override browser touch gestures. metafizzy/flickity#540\n if ( window.PointerEvent ) {\n handle.style.touchAction = touchAction;\n }\n }\n};\n\n// prototype so it can be overwriteable by Flickity\nproto._touchActionValue = 'none';\n\n// ----- start event ----- //\n\n/**\n * pointer start\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerDown = function( event, pointer ) {\n var isOkay = this.okayPointerDown( event );\n if ( !isOkay ) {\n return;\n }\n // track start event position\n // Safari 9 overrides pageX and pageY. These values needs to be copied. flickity#842\n this.pointerDownPointer = {\n pageX: pointer.pageX,\n pageY: pointer.pageY,\n };\n\n event.preventDefault();\n this.pointerDownBlur();\n // bind move and end events\n this._bindPostStartEvents( event );\n this.emitEvent( 'pointerDown', [ event, pointer ] );\n};\n\n// nodes that have text fields\nvar cursorNodes = {\n TEXTAREA: true,\n INPUT: true,\n SELECT: true,\n OPTION: true,\n};\n\n// input types that do not have text fields\nvar clickTypes = {\n radio: true,\n checkbox: true,\n button: true,\n submit: true,\n image: true,\n file: true,\n};\n\n// dismiss inputs with text fields. flickity#403, flickity#404\nproto.okayPointerDown = function( event ) {\n var isCursorNode = cursorNodes[ event.target.nodeName ];\n var isClickType = clickTypes[ event.target.type ];\n var isOkay = !isCursorNode || isClickType;\n if ( !isOkay ) {\n this._pointerReset();\n }\n return isOkay;\n};\n\n// kludge to blur previously focused input\nproto.pointerDownBlur = function() {\n var focused = document.activeElement;\n // do not blur body for IE10, metafizzy/flickity#117\n var canBlur = focused && focused.blur && focused != document.body;\n if ( canBlur ) {\n focused.blur();\n }\n};\n\n// ----- move event ----- //\n\n/**\n * drag move\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerMove = function( event, pointer ) {\n var moveVector = this._dragPointerMove( event, pointer );\n this.emitEvent( 'pointerMove', [ event, pointer, moveVector ] );\n this._dragMove( event, pointer, moveVector );\n};\n\n// base pointer move logic\nproto._dragPointerMove = function( event, pointer ) {\n var moveVector = {\n x: pointer.pageX - this.pointerDownPointer.pageX,\n y: pointer.pageY - this.pointerDownPointer.pageY\n };\n // start drag if pointer has moved far enough to start drag\n if ( !this.isDragging && this.hasDragStarted( moveVector ) ) {\n this._dragStart( event, pointer );\n }\n return moveVector;\n};\n\n// condition if pointer has moved far enough to start drag\nproto.hasDragStarted = function( moveVector ) {\n return Math.abs( moveVector.x ) > 3 || Math.abs( moveVector.y ) > 3;\n};\n\n// ----- end event ----- //\n\n/**\n * pointer up\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerUp = function( event, pointer ) {\n this.emitEvent( 'pointerUp', [ event, pointer ] );\n this._dragPointerUp( event, pointer );\n};\n\nproto._dragPointerUp = function( event, pointer ) {\n if ( this.isDragging ) {\n this._dragEnd( event, pointer );\n } else {\n // pointer didn't move enough for drag to start\n this._staticClick( event, pointer );\n }\n};\n\n// -------------------------- drag -------------------------- //\n\n// dragStart\nproto._dragStart = function( event, pointer ) {\n this.isDragging = true;\n // prevent clicks\n this.isPreventingClicks = true;\n this.dragStart( event, pointer );\n};\n\nproto.dragStart = function( event, pointer ) {\n this.emitEvent( 'dragStart', [ event, pointer ] );\n};\n\n// dragMove\nproto._dragMove = function( event, pointer, moveVector ) {\n // do not drag if not dragging yet\n if ( !this.isDragging ) {\n return;\n }\n\n this.dragMove( event, pointer, moveVector );\n};\n\nproto.dragMove = function( event, pointer, moveVector ) {\n event.preventDefault();\n this.emitEvent( 'dragMove', [ event, pointer, moveVector ] );\n};\n\n// dragEnd\nproto._dragEnd = function( event, pointer ) {\n // set flags\n this.isDragging = false;\n // re-enable clicking async\n setTimeout( function() {\n delete this.isPreventingClicks;\n }.bind( this ) );\n\n this.dragEnd( event, pointer );\n};\n\nproto.dragEnd = function( event, pointer ) {\n this.emitEvent( 'dragEnd', [ event, pointer ] );\n};\n\n// ----- onclick ----- //\n\n// handle all clicks and prevent clicks when dragging\nproto.onclick = function( event ) {\n if ( this.isPreventingClicks ) {\n event.preventDefault();\n }\n};\n\n// ----- staticClick ----- //\n\n// triggered after pointer down & up with no/tiny movement\nproto._staticClick = function( event, pointer ) {\n // ignore emulated mouse up clicks\n if ( this.isIgnoringMouseUp && event.type == 'mouseup' ) {\n return;\n }\n\n this.staticClick( event, pointer );\n\n // set flag for emulated clicks 300ms after touchend\n if ( event.type != 'mouseup' ) {\n this.isIgnoringMouseUp = true;\n // reset flag after 300ms\n setTimeout( function() {\n delete this.isIgnoringMouseUp;\n }.bind( this ), 400 );\n }\n};\n\nproto.staticClick = function( event, pointer ) {\n this.emitEvent( 'staticClick', [ event, pointer ] );\n};\n\n// ----- utils ----- //\n\nUnidragger.getPointerPoint = Unipointer.getPointerPoint;\n\n// ----- ----- //\n\nreturn Unidragger;\n\n}));\n\n// drag\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( 'flickity/js/drag',[\n './flickity',\n 'unidragger/unidragger',\n 'fizzy-ui-utils/utils',\n ], function( Flickity, Unidragger, utils ) {\n return factory( window, Flickity, Unidragger, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('./flickity'),\n require('unidragger'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n window.Flickity = factory(\n window,\n window.Flickity,\n window.Unidragger,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, Flickity, Unidragger, utils ) {\n\n\n\n// ----- defaults ----- //\n\nutils.extend( Flickity.defaults, {\n draggable: '>1',\n dragThreshold: 3,\n} );\n\n// ----- create ----- //\n\nFlickity.createMethods.push('_createDrag');\n\n// -------------------------- drag prototype -------------------------- //\n\nvar proto = Flickity.prototype;\nutils.extend( proto, Unidragger.prototype );\nproto._touchActionValue = 'pan-y';\n\n// -------------------------- -------------------------- //\n\nvar isTouch = 'createTouch' in document;\nvar isTouchmoveScrollCanceled = false;\n\nproto._createDrag = function() {\n this.on( 'activate', this.onActivateDrag );\n this.on( 'uiChange', this._uiChangeDrag );\n this.on( 'deactivate', this.onDeactivateDrag );\n this.on( 'cellChange', this.updateDraggable );\n // TODO updateDraggable on resize? if groupCells & slides change\n // HACK - add seemingly innocuous handler to fix iOS 10 scroll behavior\n // #457, RubaXa/Sortable#973\n if ( isTouch && !isTouchmoveScrollCanceled ) {\n window.addEventListener( 'touchmove', function() {} );\n isTouchmoveScrollCanceled = true;\n }\n};\n\nproto.onActivateDrag = function() {\n this.handles = [ this.viewport ];\n this.bindHandles();\n this.updateDraggable();\n};\n\nproto.onDeactivateDrag = function() {\n this.unbindHandles();\n this.element.classList.remove('is-draggable');\n};\n\nproto.updateDraggable = function() {\n // disable dragging if less than 2 slides. #278\n if ( this.options.draggable == '>1' ) {\n this.isDraggable = this.slides.length > 1;\n } else {\n this.isDraggable = this.options.draggable;\n }\n if ( this.isDraggable ) {\n this.element.classList.add('is-draggable');\n } else {\n this.element.classList.remove('is-draggable');\n }\n};\n\n// backwards compatibility\nproto.bindDrag = function() {\n this.options.draggable = true;\n this.updateDraggable();\n};\n\nproto.unbindDrag = function() {\n this.options.draggable = false;\n this.updateDraggable();\n};\n\nproto._uiChangeDrag = function() {\n delete this.isFreeScrolling;\n};\n\n// -------------------------- pointer events -------------------------- //\n\nproto.pointerDown = function( event, pointer ) {\n if ( !this.isDraggable ) {\n this._pointerDownDefault( event, pointer );\n return;\n }\n var isOkay = this.okayPointerDown( event );\n if ( !isOkay ) {\n return;\n }\n\n this._pointerDownPreventDefault( event );\n this.pointerDownFocus( event );\n // blur\n if ( document.activeElement != this.element ) {\n // do not blur if already focused\n this.pointerDownBlur();\n }\n\n // stop if it was moving\n this.dragX = this.x;\n this.viewport.classList.add('is-pointer-down');\n // track scrolling\n this.pointerDownScroll = getScrollPosition();\n window.addEventListener( 'scroll', this );\n\n this._pointerDownDefault( event, pointer );\n};\n\n// default pointerDown logic, used for staticClick\nproto._pointerDownDefault = function( event, pointer ) {\n // track start event position\n // Safari 9 overrides pageX and pageY. These values needs to be copied. #779\n this.pointerDownPointer = {\n pageX: pointer.pageX,\n pageY: pointer.pageY,\n };\n // bind move and end events\n this._bindPostStartEvents( event );\n this.dispatchEvent( 'pointerDown', event, [ pointer ] );\n};\n\nvar focusNodes = {\n INPUT: true,\n TEXTAREA: true,\n SELECT: true,\n};\n\nproto.pointerDownFocus = function( event ) {\n var isFocusNode = focusNodes[ event.target.nodeName ];\n if ( !isFocusNode ) {\n this.focus();\n }\n};\n\nproto._pointerDownPreventDefault = function( event ) {\n var isTouchStart = event.type == 'touchstart';\n var isTouchPointer = event.pointerType == 'touch';\n var isFocusNode = focusNodes[ event.target.nodeName ];\n if ( !isTouchStart && !isTouchPointer && !isFocusNode ) {\n event.preventDefault();\n }\n};\n\n// ----- move ----- //\n\nproto.hasDragStarted = function( moveVector ) {\n return Math.abs( moveVector.x ) > this.options.dragThreshold;\n};\n\n// ----- up ----- //\n\nproto.pointerUp = function( event, pointer ) {\n delete this.isTouchScrolling;\n this.viewport.classList.remove('is-pointer-down');\n this.dispatchEvent( 'pointerUp', event, [ pointer ] );\n this._dragPointerUp( event, pointer );\n};\n\nproto.pointerDone = function() {\n window.removeEventListener( 'scroll', this );\n delete this.pointerDownScroll;\n};\n\n// -------------------------- dragging -------------------------- //\n\nproto.dragStart = function( event, pointer ) {\n if ( !this.isDraggable ) {\n return;\n }\n this.dragStartPosition = this.x;\n this.startAnimation();\n window.removeEventListener( 'scroll', this );\n this.dispatchEvent( 'dragStart', event, [ pointer ] );\n};\n\nproto.pointerMove = function( event, pointer ) {\n var moveVector = this._dragPointerMove( event, pointer );\n this.dispatchEvent( 'pointerMove', event, [ pointer, moveVector ] );\n this._dragMove( event, pointer, moveVector );\n};\n\nproto.dragMove = function( event, pointer, moveVector ) {\n if ( !this.isDraggable ) {\n return;\n }\n event.preventDefault();\n\n this.previousDragX = this.dragX;\n // reverse if right-to-left\n var direction = this.options.rightToLeft ? -1 : 1;\n if ( this.options.wrapAround ) {\n // wrap around move. #589\n moveVector.x %= this.slideableWidth;\n }\n var dragX = this.dragStartPosition + moveVector.x * direction;\n\n if ( !this.options.wrapAround && this.slides.length ) {\n // slow drag\n var originBound = Math.max( -this.slides[0].target, this.dragStartPosition );\n dragX = dragX > originBound ? ( dragX + originBound ) * 0.5 : dragX;\n var endBound = Math.min( -this.getLastSlide().target, this.dragStartPosition );\n dragX = dragX < endBound ? ( dragX + endBound ) * 0.5 : dragX;\n }\n\n this.dragX = dragX;\n\n this.dragMoveTime = new Date();\n this.dispatchEvent( 'dragMove', event, [ pointer, moveVector ] );\n};\n\nproto.dragEnd = function( event, pointer ) {\n if ( !this.isDraggable ) {\n return;\n }\n if ( this.options.freeScroll ) {\n this.isFreeScrolling = true;\n }\n // set selectedIndex based on where flick will end up\n var index = this.dragEndRestingSelect();\n\n if ( this.options.freeScroll && !this.options.wrapAround ) {\n // if free-scroll & not wrap around\n // do not free-scroll if going outside of bounding slides\n // so bounding slides can attract slider, and keep it in bounds\n var restingX = this.getRestingPosition();\n this.isFreeScrolling = -restingX > this.slides[0].target &&\n -restingX < this.getLastSlide().target;\n } else if ( !this.options.freeScroll && index == this.selectedIndex ) {\n // boost selection if selected index has not changed\n index += this.dragEndBoostSelect();\n }\n delete this.previousDragX;\n // apply selection\n // TODO refactor this, selecting here feels weird\n // HACK, set flag so dragging stays in correct direction\n this.isDragSelect = this.options.wrapAround;\n this.select( index );\n delete this.isDragSelect;\n this.dispatchEvent( 'dragEnd', event, [ pointer ] );\n};\n\nproto.dragEndRestingSelect = function() {\n var restingX = this.getRestingPosition();\n // how far away from selected slide\n var distance = Math.abs( this.getSlideDistance( -restingX, this.selectedIndex ) );\n // get closet resting going up and going down\n var positiveResting = this._getClosestResting( restingX, distance, 1 );\n var negativeResting = this._getClosestResting( restingX, distance, -1 );\n // use closer resting for wrap-around\n var index = positiveResting.distance < negativeResting.distance ?\n positiveResting.index : negativeResting.index;\n return index;\n};\n\n/**\n * given resting X and distance to selected cell\n * get the distance and index of the closest cell\n * @param {Number} restingX - estimated post-flick resting position\n * @param {Number} distance - distance to selected cell\n * @param {Integer} increment - +1 or -1, going up or down\n * @returns {Object} - { distance: {Number}, index: {Integer} }\n */\nproto._getClosestResting = function( restingX, distance, increment ) {\n var index = this.selectedIndex;\n var minDistance = Infinity;\n var condition = this.options.contain && !this.options.wrapAround ?\n // if contain, keep going if distance is equal to minDistance\n function( dist, minDist ) {\n return dist <= minDist;\n } : function( dist, minDist ) {\n return dist < minDist;\n };\n while ( condition( distance, minDistance ) ) {\n // measure distance to next cell\n index += increment;\n minDistance = distance;\n distance = this.getSlideDistance( -restingX, index );\n if ( distance === null ) {\n break;\n }\n distance = Math.abs( distance );\n }\n return {\n distance: minDistance,\n // selected was previous index\n index: index - increment,\n };\n};\n\n/**\n * measure distance between x and a slide target\n * @param {Number} x - horizontal position\n * @param {Integer} index - slide index\n * @returns {Number} - slide distance\n */\nproto.getSlideDistance = function( x, index ) {\n var len = this.slides.length;\n // wrap around if at least 2 slides\n var isWrapAround = this.options.wrapAround && len > 1;\n var slideIndex = isWrapAround ? utils.modulo( index, len ) : index;\n var slide = this.slides[ slideIndex ];\n if ( !slide ) {\n return null;\n }\n // add distance for wrap-around slides\n var wrap = isWrapAround ? this.slideableWidth * Math.floor( index/len ) : 0;\n return x - ( slide.target + wrap );\n};\n\nproto.dragEndBoostSelect = function() {\n // do not boost if no previousDragX or dragMoveTime\n if ( this.previousDragX === undefined || !this.dragMoveTime ||\n // or if drag was held for 100 ms\n new Date() - this.dragMoveTime > 100 ) {\n return 0;\n }\n\n var distance = this.getSlideDistance( -this.dragX, this.selectedIndex );\n var delta = this.previousDragX - this.dragX;\n if ( distance > 0 && delta > 0 ) {\n // boost to next if moving towards the right, and positive velocity\n return 1;\n } else if ( distance < 0 && delta < 0 ) {\n // boost to previous if moving towards the left, and negative velocity\n return -1;\n }\n return 0;\n};\n\n// ----- staticClick ----- //\n\nproto.staticClick = function( event, pointer ) {\n // get clickedCell, if cell was clicked\n var clickedCell = this.getParentCell( event.target );\n var cellElem = clickedCell && clickedCell.element;\n var cellIndex = clickedCell && this.cells.indexOf( clickedCell );\n this.dispatchEvent( 'staticClick', event, [ pointer, cellElem, cellIndex ] );\n};\n\n// ----- scroll ----- //\n\nproto.onscroll = function() {\n var scroll = getScrollPosition();\n var scrollMoveX = this.pointerDownScroll.x - scroll.x;\n var scrollMoveY = this.pointerDownScroll.y - scroll.y;\n // cancel click/tap if scroll is too much\n if ( Math.abs( scrollMoveX ) > 3 || Math.abs( scrollMoveY ) > 3 ) {\n this._pointerDone();\n }\n};\n\n// ----- utils ----- //\n\nfunction getScrollPosition() {\n return {\n x: window.pageXOffset,\n y: window.pageYOffset,\n };\n}\n\n// ----- ----- //\n\nreturn Flickity;\n\n} ) );\n\n// prev/next buttons\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( 'flickity/js/prev-next-button',[\n './flickity',\n 'unipointer/unipointer',\n 'fizzy-ui-utils/utils',\n ], function( Flickity, Unipointer, utils ) {\n return factory( window, Flickity, Unipointer, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('./flickity'),\n require('unipointer'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n factory(\n window,\n window.Flickity,\n window.Unipointer,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, Flickity, Unipointer, utils ) {\n'use strict';\n\nvar svgURI = 'http://www.w3.org/2000/svg';\n\n// -------------------------- PrevNextButton -------------------------- //\n\nfunction PrevNextButton( direction, parent ) {\n this.direction = direction;\n this.parent = parent;\n this._create();\n}\n\nPrevNextButton.prototype = Object.create( Unipointer.prototype );\n\nPrevNextButton.prototype._create = function() {\n // properties\n this.isEnabled = true;\n this.isPrevious = this.direction == -1;\n var leftDirection = this.parent.options.rightToLeft ? 1 : -1;\n this.isLeft = this.direction == leftDirection;\n\n var element = this.element = document.createElement('button');\n element.className = 'flickity-button flickity-prev-next-button';\n element.className += this.isPrevious ? ' previous' : ' next';\n // prevent button from submitting form http://stackoverflow.com/a/10836076/182183\n element.setAttribute( 'type', 'button' );\n // init as disabled\n this.disable();\n\n element.setAttribute( 'aria-label', this.isPrevious ? 'Previous' : 'Next' );\n\n // create arrow\n var svg = this.createSVG();\n element.appendChild( svg );\n // events\n this.parent.on( 'select', this.update.bind( this ) );\n this.on( 'pointerDown', this.parent.childUIPointerDown.bind( this.parent ) );\n};\n\nPrevNextButton.prototype.activate = function() {\n this.bindStartEvent( this.element );\n this.element.addEventListener( 'click', this );\n // add to DOM\n this.parent.element.appendChild( this.element );\n};\n\nPrevNextButton.prototype.deactivate = function() {\n // remove from DOM\n this.parent.element.removeChild( this.element );\n // click events\n this.unbindStartEvent( this.element );\n this.element.removeEventListener( 'click', this );\n};\n\nPrevNextButton.prototype.createSVG = function() {\n var svg = document.createElementNS( svgURI, 'svg' );\n svg.setAttribute( 'class', 'flickity-button-icon' );\n svg.setAttribute( 'viewBox', '0 0 100 100' );\n var path = document.createElementNS( svgURI, 'path' );\n var pathMovements = getArrowMovements( this.parent.options.arrowShape );\n path.setAttribute( 'd', pathMovements );\n path.setAttribute( 'class', 'arrow' );\n // rotate arrow\n if ( !this.isLeft ) {\n path.setAttribute( 'transform', 'translate(100, 100) rotate(180) ' );\n }\n svg.appendChild( path );\n return svg;\n};\n\n// get SVG path movmement\nfunction getArrowMovements( shape ) {\n // use shape as movement if string\n if ( typeof shape == 'string' ) {\n return shape;\n }\n // create movement string\n return 'M ' + shape.x0 + ',50' +\n ' L ' + shape.x1 + ',' + ( shape.y1 + 50 ) +\n ' L ' + shape.x2 + ',' + ( shape.y2 + 50 ) +\n ' L ' + shape.x3 + ',50 ' +\n ' L ' + shape.x2 + ',' + ( 50 - shape.y2 ) +\n ' L ' + shape.x1 + ',' + ( 50 - shape.y1 ) +\n ' Z';\n}\n\nPrevNextButton.prototype.handleEvent = utils.handleEvent;\n\nPrevNextButton.prototype.onclick = function() {\n if ( !this.isEnabled ) {\n return;\n }\n this.parent.uiChange();\n var method = this.isPrevious ? 'previous' : 'next';\n this.parent[ method ]();\n};\n\n// ----- ----- //\n\nPrevNextButton.prototype.enable = function() {\n if ( this.isEnabled ) {\n return;\n }\n this.element.disabled = false;\n this.isEnabled = true;\n};\n\nPrevNextButton.prototype.disable = function() {\n if ( !this.isEnabled ) {\n return;\n }\n this.element.disabled = true;\n this.isEnabled = false;\n};\n\nPrevNextButton.prototype.update = function() {\n // index of first or last slide, if previous or next\n var slides = this.parent.slides;\n // enable is wrapAround and at least 2 slides\n if ( this.parent.options.wrapAround && slides.length > 1 ) {\n this.enable();\n return;\n }\n var lastIndex = slides.length ? slides.length - 1 : 0;\n var boundIndex = this.isPrevious ? 0 : lastIndex;\n var method = this.parent.selectedIndex == boundIndex ? 'disable' : 'enable';\n this[ method ]();\n};\n\nPrevNextButton.prototype.destroy = function() {\n this.deactivate();\n this.allOff();\n};\n\n// -------------------------- Flickity prototype -------------------------- //\n\nutils.extend( Flickity.defaults, {\n prevNextButtons: true,\n arrowShape: {\n x0: 10,\n x1: 60, y1: 50,\n x2: 70, y2: 40,\n x3: 30,\n },\n} );\n\nFlickity.createMethods.push('_createPrevNextButtons');\nvar proto = Flickity.prototype;\n\nproto._createPrevNextButtons = function() {\n if ( !this.options.prevNextButtons ) {\n return;\n }\n\n this.prevButton = new PrevNextButton( -1, this );\n this.nextButton = new PrevNextButton( 1, this );\n\n this.on( 'activate', this.activatePrevNextButtons );\n};\n\nproto.activatePrevNextButtons = function() {\n this.prevButton.activate();\n this.nextButton.activate();\n this.on( 'deactivate', this.deactivatePrevNextButtons );\n};\n\nproto.deactivatePrevNextButtons = function() {\n this.prevButton.deactivate();\n this.nextButton.deactivate();\n this.off( 'deactivate', this.deactivatePrevNextButtons );\n};\n\n// -------------------------- -------------------------- //\n\nFlickity.PrevNextButton = PrevNextButton;\n\nreturn Flickity;\n\n} ) );\n\n// page dots\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( 'flickity/js/page-dots',[\n './flickity',\n 'unipointer/unipointer',\n 'fizzy-ui-utils/utils',\n ], function( Flickity, Unipointer, utils ) {\n return factory( window, Flickity, Unipointer, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('./flickity'),\n require('unipointer'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n factory(\n window,\n window.Flickity,\n window.Unipointer,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, Flickity, Unipointer, utils ) {\n\n// -------------------------- PageDots -------------------------- //\n\n\n\nfunction PageDots( parent ) {\n this.parent = parent;\n this._create();\n}\n\nPageDots.prototype = Object.create( Unipointer.prototype );\n\nPageDots.prototype._create = function() {\n // create holder element\n this.holder = document.createElement('ol');\n this.holder.className = 'flickity-page-dots';\n // create dots, array of elements\n this.dots = [];\n // events\n this.handleClick = this.onClick.bind( this );\n this.on( 'pointerDown', this.parent.childUIPointerDown.bind( this.parent ) );\n};\n\nPageDots.prototype.activate = function() {\n this.setDots();\n this.holder.addEventListener( 'click', this.handleClick );\n this.bindStartEvent( this.holder );\n // add to DOM\n this.parent.element.appendChild( this.holder );\n};\n\nPageDots.prototype.deactivate = function() {\n this.holder.removeEventListener( 'click', this.handleClick );\n this.unbindStartEvent( this.holder );\n // remove from DOM\n this.parent.element.removeChild( this.holder );\n};\n\nPageDots.prototype.setDots = function() {\n // get difference between number of slides and number of dots\n var delta = this.parent.slides.length - this.dots.length;\n if ( delta > 0 ) {\n this.addDots( delta );\n } else if ( delta < 0 ) {\n this.removeDots( -delta );\n }\n};\n\nPageDots.prototype.addDots = function( count ) {\n var fragment = document.createDocumentFragment();\n var newDots = [];\n var length = this.dots.length;\n var max = length + count;\n\n for ( var i = length; i < max; i++ ) {\n var dot = document.createElement('li');\n dot.className = 'dot';\n dot.setAttribute( 'aria-label', 'Page dot ' + ( i + 1 ) );\n fragment.appendChild( dot );\n newDots.push( dot );\n }\n\n this.holder.appendChild( fragment );\n this.dots = this.dots.concat( newDots );\n};\n\nPageDots.prototype.removeDots = function( count ) {\n // remove from this.dots collection\n var removeDots = this.dots.splice( this.dots.length - count, count );\n // remove from DOM\n removeDots.forEach( function( dot ) {\n this.holder.removeChild( dot );\n }, this );\n};\n\nPageDots.prototype.updateSelected = function() {\n // remove selected class on previous\n if ( this.selectedDot ) {\n this.selectedDot.className = 'dot';\n this.selectedDot.removeAttribute('aria-current');\n }\n // don't proceed if no dots\n if ( !this.dots.length ) {\n return;\n }\n this.selectedDot = this.dots[ this.parent.selectedIndex ];\n this.selectedDot.className = 'dot is-selected';\n this.selectedDot.setAttribute( 'aria-current', 'step' );\n};\n\nPageDots.prototype.onTap = // old method name, backwards-compatible\nPageDots.prototype.onClick = function( event ) {\n var target = event.target;\n // only care about dot clicks\n if ( target.nodeName != 'LI' ) {\n return;\n }\n\n this.parent.uiChange();\n var index = this.dots.indexOf( target );\n this.parent.select( index );\n};\n\nPageDots.prototype.destroy = function() {\n this.deactivate();\n this.allOff();\n};\n\nFlickity.PageDots = PageDots;\n\n// -------------------------- Flickity -------------------------- //\n\nutils.extend( Flickity.defaults, {\n pageDots: true,\n} );\n\nFlickity.createMethods.push('_createPageDots');\n\nvar proto = Flickity.prototype;\n\nproto._createPageDots = function() {\n if ( !this.options.pageDots ) {\n return;\n }\n this.pageDots = new PageDots( this );\n // events\n this.on( 'activate', this.activatePageDots );\n this.on( 'select', this.updateSelectedPageDots );\n this.on( 'cellChange', this.updatePageDots );\n this.on( 'resize', this.updatePageDots );\n this.on( 'deactivate', this.deactivatePageDots );\n};\n\nproto.activatePageDots = function() {\n this.pageDots.activate();\n};\n\nproto.updateSelectedPageDots = function() {\n this.pageDots.updateSelected();\n};\n\nproto.updatePageDots = function() {\n this.pageDots.setDots();\n};\n\nproto.deactivatePageDots = function() {\n this.pageDots.deactivate();\n};\n\n// ----- ----- //\n\nFlickity.PageDots = PageDots;\n\nreturn Flickity;\n\n} ) );\n\n// player & autoPlay\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( 'flickity/js/player',[\n 'ev-emitter/ev-emitter',\n 'fizzy-ui-utils/utils',\n './flickity',\n ], function( EvEmitter, utils, Flickity ) {\n return factory( EvEmitter, utils, Flickity );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n require('ev-emitter'),\n require('fizzy-ui-utils'),\n require('./flickity')\n );\n } else {\n // browser global\n factory(\n window.EvEmitter,\n window.fizzyUIUtils,\n window.Flickity\n );\n }\n\n}( window, function factory( EvEmitter, utils, Flickity ) {\n\n\n\n// -------------------------- Player -------------------------- //\n\nfunction Player( parent ) {\n this.parent = parent;\n this.state = 'stopped';\n // visibility change event handler\n this.onVisibilityChange = this.visibilityChange.bind( this );\n this.onVisibilityPlay = this.visibilityPlay.bind( this );\n}\n\nPlayer.prototype = Object.create( EvEmitter.prototype );\n\n// start play\nPlayer.prototype.play = function() {\n if ( this.state == 'playing' ) {\n return;\n }\n // do not play if page is hidden, start playing when page is visible\n var isPageHidden = document.hidden;\n if ( isPageHidden ) {\n document.addEventListener( 'visibilitychange', this.onVisibilityPlay );\n return;\n }\n\n this.state = 'playing';\n // listen to visibility change\n document.addEventListener( 'visibilitychange', this.onVisibilityChange );\n // start ticking\n this.tick();\n};\n\nPlayer.prototype.tick = function() {\n // do not tick if not playing\n if ( this.state != 'playing' ) {\n return;\n }\n\n var time = this.parent.options.autoPlay;\n // default to 3 seconds\n time = typeof time == 'number' ? time : 3000;\n var _this = this;\n // HACK: reset ticks if stopped and started within interval\n this.clear();\n this.timeout = setTimeout( function() {\n _this.parent.next( true );\n _this.tick();\n }, time );\n};\n\nPlayer.prototype.stop = function() {\n this.state = 'stopped';\n this.clear();\n // remove visibility change event\n document.removeEventListener( 'visibilitychange', this.onVisibilityChange );\n};\n\nPlayer.prototype.clear = function() {\n clearTimeout( this.timeout );\n};\n\nPlayer.prototype.pause = function() {\n if ( this.state == 'playing' ) {\n this.state = 'paused';\n this.clear();\n }\n};\n\nPlayer.prototype.unpause = function() {\n // re-start play if paused\n if ( this.state == 'paused' ) {\n this.play();\n }\n};\n\n// pause if page visibility is hidden, unpause if visible\nPlayer.prototype.visibilityChange = function() {\n var isPageHidden = document.hidden;\n this[ isPageHidden ? 'pause' : 'unpause' ]();\n};\n\nPlayer.prototype.visibilityPlay = function() {\n this.play();\n document.removeEventListener( 'visibilitychange', this.onVisibilityPlay );\n};\n\n// -------------------------- Flickity -------------------------- //\n\nutils.extend( Flickity.defaults, {\n pauseAutoPlayOnHover: true,\n} );\n\nFlickity.createMethods.push('_createPlayer');\nvar proto = Flickity.prototype;\n\nproto._createPlayer = function() {\n this.player = new Player( this );\n\n this.on( 'activate', this.activatePlayer );\n this.on( 'uiChange', this.stopPlayer );\n this.on( 'pointerDown', this.stopPlayer );\n this.on( 'deactivate', this.deactivatePlayer );\n};\n\nproto.activatePlayer = function() {\n if ( !this.options.autoPlay ) {\n return;\n }\n this.player.play();\n this.element.addEventListener( 'mouseenter', this );\n};\n\n// Player API, don't hate the ... thanks I know where the door is\n\nproto.playPlayer = function() {\n this.player.play();\n};\n\nproto.stopPlayer = function() {\n this.player.stop();\n};\n\nproto.pausePlayer = function() {\n this.player.pause();\n};\n\nproto.unpausePlayer = function() {\n this.player.unpause();\n};\n\nproto.deactivatePlayer = function() {\n this.player.stop();\n this.element.removeEventListener( 'mouseenter', this );\n};\n\n// ----- mouseenter/leave ----- //\n\n// pause auto-play on hover\nproto.onmouseenter = function() {\n if ( !this.options.pauseAutoPlayOnHover ) {\n return;\n }\n this.player.pause();\n this.element.addEventListener( 'mouseleave', this );\n};\n\n// resume auto-play on hover off\nproto.onmouseleave = function() {\n this.player.unpause();\n this.element.removeEventListener( 'mouseleave', this );\n};\n\n// ----- ----- //\n\nFlickity.Player = Player;\n\nreturn Flickity;\n\n} ) );\n\n// add, remove cell\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( 'flickity/js/add-remove-cell',[\n './flickity',\n 'fizzy-ui-utils/utils',\n ], function( Flickity, utils ) {\n return factory( window, Flickity, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('./flickity'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n factory(\n window,\n window.Flickity,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, Flickity, utils ) {\n\n\n\n// append cells to a document fragment\nfunction getCellsFragment( cells ) {\n var fragment = document.createDocumentFragment();\n cells.forEach( function( cell ) {\n fragment.appendChild( cell.element );\n } );\n return fragment;\n}\n\n// -------------------------- add/remove cell prototype -------------------------- //\n\nvar proto = Flickity.prototype;\n\n/**\n * Insert, prepend, or append cells\n * @param {[Element, Array, NodeList]} elems - Elements to insert\n * @param {Integer} index - Zero-based number to insert\n */\nproto.insert = function( elems, index ) {\n var cells = this._makeCells( elems );\n if ( !cells || !cells.length ) {\n return;\n }\n var len = this.cells.length;\n // default to append\n index = index === undefined ? len : index;\n // add cells with document fragment\n var fragment = getCellsFragment( cells );\n // append to slider\n var isAppend = index == len;\n if ( isAppend ) {\n this.slider.appendChild( fragment );\n } else {\n var insertCellElement = this.cells[ index ].element;\n this.slider.insertBefore( fragment, insertCellElement );\n }\n // add to this.cells\n if ( index === 0 ) {\n // prepend, add to start\n this.cells = cells.concat( this.cells );\n } else if ( isAppend ) {\n // append, add to end\n this.cells = this.cells.concat( cells );\n } else {\n // insert in this.cells\n var endCells = this.cells.splice( index, len - index );\n this.cells = this.cells.concat( cells ).concat( endCells );\n }\n\n this._sizeCells( cells );\n this.cellChange( index, true );\n};\n\nproto.append = function( elems ) {\n this.insert( elems, this.cells.length );\n};\n\nproto.prepend = function( elems ) {\n this.insert( elems, 0 );\n};\n\n/**\n * Remove cells\n * @param {[Element, Array, NodeList]} elems - ELements to remove\n */\nproto.remove = function( elems ) {\n var cells = this.getCells( elems );\n if ( !cells || !cells.length ) {\n return;\n }\n\n var minCellIndex = this.cells.length - 1;\n // remove cells from collection & DOM\n cells.forEach( function( cell ) {\n cell.remove();\n var index = this.cells.indexOf( cell );\n minCellIndex = Math.min( index, minCellIndex );\n utils.removeFrom( this.cells, cell );\n }, this );\n\n this.cellChange( minCellIndex, true );\n};\n\n/**\n * logic to be run after a cell's size changes\n * @param {Element} elem - cell's element\n */\nproto.cellSizeChange = function( elem ) {\n var cell = this.getCell( elem );\n if ( !cell ) {\n return;\n }\n cell.getSize();\n\n var index = this.cells.indexOf( cell );\n this.cellChange( index );\n};\n\n/**\n * logic any time a cell is changed: added, removed, or size changed\n * @param {Integer} changedCellIndex - index of the changed cell, optional\n * @param {Boolean} isPositioningSlider - Positions slider after selection\n */\nproto.cellChange = function( changedCellIndex, isPositioningSlider ) {\n var prevSelectedElem = this.selectedElement;\n this._positionCells( changedCellIndex );\n this._getWrapShiftCells();\n this.setGallerySize();\n // update selectedIndex\n // try to maintain position & select previous selected element\n var cell = this.getCell( prevSelectedElem );\n if ( cell ) {\n this.selectedIndex = this.getCellSlideIndex( cell );\n }\n this.selectedIndex = Math.min( this.slides.length - 1, this.selectedIndex );\n\n this.emitEvent( 'cellChange', [ changedCellIndex ] );\n // position slider\n this.select( this.selectedIndex );\n // do not position slider after lazy load\n if ( isPositioningSlider ) {\n this.positionSliderAtSelected();\n }\n};\n\n// ----- ----- //\n\nreturn Flickity;\n\n} ) );\n\n// lazyload\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( 'flickity/js/lazyload',[\n './flickity',\n 'fizzy-ui-utils/utils',\n ], function( Flickity, utils ) {\n return factory( window, Flickity, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('./flickity'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n factory(\n window,\n window.Flickity,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, Flickity, utils ) {\n'use strict';\n\nFlickity.createMethods.push('_createLazyload');\nvar proto = Flickity.prototype;\n\nproto._createLazyload = function() {\n this.on( 'select', this.lazyLoad );\n};\n\nproto.lazyLoad = function() {\n var lazyLoad = this.options.lazyLoad;\n if ( !lazyLoad ) {\n return;\n }\n // get adjacent cells, use lazyLoad option for adjacent count\n var adjCount = typeof lazyLoad == 'number' ? lazyLoad : 0;\n var cellElems = this.getAdjacentCellElements( adjCount );\n // get lazy images in those cells\n var lazyImages = [];\n cellElems.forEach( function( cellElem ) {\n var lazyCellImages = getCellLazyImages( cellElem );\n lazyImages = lazyImages.concat( lazyCellImages );\n } );\n // load lazy images\n lazyImages.forEach( function( img ) {\n new LazyLoader( img, this );\n }, this );\n};\n\nfunction getCellLazyImages( cellElem ) {\n // check if cell element is lazy image\n if ( cellElem.nodeName == 'IMG' ) {\n var lazyloadAttr = cellElem.getAttribute('data-flickity-lazyload');\n var srcAttr = cellElem.getAttribute('data-flickity-lazyload-src');\n var srcsetAttr = cellElem.getAttribute('data-flickity-lazyload-srcset');\n if ( lazyloadAttr || srcAttr || srcsetAttr ) {\n return [ cellElem ];\n }\n }\n // select lazy images in cell\n var lazySelector = 'img[data-flickity-lazyload], ' +\n 'img[data-flickity-lazyload-src], img[data-flickity-lazyload-srcset]';\n var imgs = cellElem.querySelectorAll( lazySelector );\n return utils.makeArray( imgs );\n}\n\n// -------------------------- LazyLoader -------------------------- //\n\n/**\n * class to handle loading images\n * @param {Image} img - Image element\n * @param {Flickity} flickity - Flickity instance\n */\nfunction LazyLoader( img, flickity ) {\n this.img = img;\n this.flickity = flickity;\n this.load();\n}\n\nLazyLoader.prototype.handleEvent = utils.handleEvent;\n\nLazyLoader.prototype.load = function() {\n this.img.addEventListener( 'load', this );\n this.img.addEventListener( 'error', this );\n // get src & srcset\n var src = this.img.getAttribute('data-flickity-lazyload') ||\n this.img.getAttribute('data-flickity-lazyload-src');\n var srcset = this.img.getAttribute('data-flickity-lazyload-srcset');\n // set src & serset\n this.img.src = src;\n if ( srcset ) {\n this.img.setAttribute( 'srcset', srcset );\n }\n // remove attr\n this.img.removeAttribute('data-flickity-lazyload');\n this.img.removeAttribute('data-flickity-lazyload-src');\n this.img.removeAttribute('data-flickity-lazyload-srcset');\n};\n\nLazyLoader.prototype.onload = function( event ) {\n this.complete( event, 'flickity-lazyloaded' );\n};\n\nLazyLoader.prototype.onerror = function( event ) {\n this.complete( event, 'flickity-lazyerror' );\n};\n\nLazyLoader.prototype.complete = function( event, className ) {\n // unbind events\n this.img.removeEventListener( 'load', this );\n this.img.removeEventListener( 'error', this );\n\n var cell = this.flickity.getParentCell( this.img );\n var cellElem = cell && cell.element;\n this.flickity.cellSizeChange( cellElem );\n\n this.img.classList.add( className );\n this.flickity.dispatchEvent( 'lazyLoad', event, cellElem );\n};\n\n// ----- ----- //\n\nFlickity.LazyLoader = LazyLoader;\n\nreturn Flickity;\n\n} ) );\n\n/*!\n * Flickity v2.2.2\n * Touch, responsive, flickable carousels\n *\n * Licensed GPLv3 for open source use\n * or Flickity Commercial License for commercial use\n *\n * https://flickity.metafizzy.co\n * Copyright 2015-2021 Metafizzy\n */\n\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( 'flickity/js/index',[\n './flickity',\n './drag',\n './prev-next-button',\n './page-dots',\n './player',\n './add-remove-cell',\n './lazyload',\n ], factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n require('./flickity'),\n require('./drag'),\n require('./prev-next-button'),\n require('./page-dots'),\n require('./player'),\n require('./add-remove-cell'),\n require('./lazyload')\n );\n }\n\n} )( window, function factory( Flickity ) {\n return Flickity;\n} );\n\n/*!\n * Flickity asNavFor v2.0.2\n * enable asNavFor for Flickity\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true*/\n\n( function( window, factory ) {\n // universal module definition\n /*jshint strict: false */ /*globals define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( 'flickity-as-nav-for/as-nav-for',[\n 'flickity/js/index',\n 'fizzy-ui-utils/utils'\n ], factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n require('flickity'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n window.Flickity = factory(\n window.Flickity,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( Flickity, utils ) {\n\n\n\n// -------------------------- asNavFor prototype -------------------------- //\n\n// Flickity.defaults.asNavFor = null;\n\nFlickity.createMethods.push('_createAsNavFor');\n\nvar proto = Flickity.prototype;\n\nproto._createAsNavFor = function() {\n this.on( 'activate', this.activateAsNavFor );\n this.on( 'deactivate', this.deactivateAsNavFor );\n this.on( 'destroy', this.destroyAsNavFor );\n\n var asNavForOption = this.options.asNavFor;\n if ( !asNavForOption ) {\n return;\n }\n // HACK do async, give time for other flickity to be initalized\n var _this = this;\n setTimeout( function initNavCompanion() {\n _this.setNavCompanion( asNavForOption );\n });\n};\n\nproto.setNavCompanion = function( elem ) {\n elem = utils.getQueryElement( elem );\n var companion = Flickity.data( elem );\n // stop if no companion or companion is self\n if ( !companion || companion == this ) {\n return;\n }\n\n this.navCompanion = companion;\n // companion select\n var _this = this;\n this.onNavCompanionSelect = function() {\n _this.navCompanionSelect();\n };\n companion.on( 'select', this.onNavCompanionSelect );\n // click\n this.on( 'staticClick', this.onNavStaticClick );\n\n this.navCompanionSelect( true );\n};\n\nproto.navCompanionSelect = function( isInstant ) {\n // wait for companion & selectedCells first. #8\n var companionCells = this.navCompanion && this.navCompanion.selectedCells;\n if ( !companionCells ) {\n return;\n }\n // select slide that matches first cell of slide\n var selectedCell = companionCells[0];\n var firstIndex = this.navCompanion.cells.indexOf( selectedCell );\n var lastIndex = firstIndex + companionCells.length - 1;\n var selectIndex = Math.floor( lerp( firstIndex, lastIndex,\n this.navCompanion.cellAlign ) );\n this.selectCell( selectIndex, false, isInstant );\n // set nav selected class\n this.removeNavSelectedElements();\n // stop if companion has more cells than this one\n if ( selectIndex >= this.cells.length ) {\n return;\n }\n\n var selectedCells = this.cells.slice( firstIndex, lastIndex + 1 );\n this.navSelectedElements = selectedCells.map( function( cell ) {\n return cell.element;\n });\n this.changeNavSelectedClass('add');\n};\n\nfunction lerp( a, b, t ) {\n return ( b - a ) * t + a;\n}\n\nproto.changeNavSelectedClass = function( method ) {\n this.navSelectedElements.forEach( function( navElem ) {\n navElem.classList[ method ]('is-nav-selected');\n });\n};\n\nproto.activateAsNavFor = function() {\n this.navCompanionSelect( true );\n};\n\nproto.removeNavSelectedElements = function() {\n if ( !this.navSelectedElements ) {\n return;\n }\n this.changeNavSelectedClass('remove');\n delete this.navSelectedElements;\n};\n\nproto.onNavStaticClick = function( event, pointer, cellElement, cellIndex ) {\n if ( typeof cellIndex == 'number' ) {\n this.navCompanion.selectCell( cellIndex );\n }\n};\n\nproto.deactivateAsNavFor = function() {\n this.removeNavSelectedElements();\n};\n\nproto.destroyAsNavFor = function() {\n if ( !this.navCompanion ) {\n return;\n }\n this.navCompanion.off( 'select', this.onNavCompanionSelect );\n this.off( 'staticClick', this.onNavStaticClick );\n delete this.navCompanion;\n};\n\n// ----- ----- //\n\nreturn Flickity;\n\n}));\n\n/*!\n * imagesLoaded v4.1.4\n * JavaScript is all like \"You images are done yet or what?\"\n * MIT License\n */\n\n( function( window, factory ) { 'use strict';\n // universal module definition\n\n /*global define: false, module: false, require: false */\n\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( 'imagesloaded/imagesloaded',[\n 'ev-emitter/ev-emitter'\n ], function( EvEmitter ) {\n return factory( window, EvEmitter );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('ev-emitter')\n );\n } else {\n // browser global\n window.imagesLoaded = factory(\n window,\n window.EvEmitter\n );\n }\n\n})( typeof window !== 'undefined' ? window : this,\n\n// -------------------------- factory -------------------------- //\n\nfunction factory( window, EvEmitter ) {\n\n\n\nvar $ = window.jQuery;\nvar console = window.console;\n\n// -------------------------- helpers -------------------------- //\n\n// extend objects\nfunction extend( a, b ) {\n for ( var prop in b ) {\n a[ prop ] = b[ prop ];\n }\n return a;\n}\n\nvar arraySlice = Array.prototype.slice;\n\n// turn element or nodeList into an array\nfunction makeArray( obj ) {\n if ( Array.isArray( obj ) ) {\n // use object if already an array\n return obj;\n }\n\n var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';\n if ( isArrayLike ) {\n // convert nodeList to array\n return arraySlice.call( obj );\n }\n\n // array of single index\n return [ obj ];\n}\n\n// -------------------------- imagesLoaded -------------------------- //\n\n/**\n * @param {Array, Element, NodeList, String} elem\n * @param {Object or Function} options - if function, use as callback\n * @param {Function} onAlways - callback function\n */\nfunction ImagesLoaded( elem, options, onAlways ) {\n // coerce ImagesLoaded() without new, to be new ImagesLoaded()\n if ( !( this instanceof ImagesLoaded ) ) {\n return new ImagesLoaded( elem, options, onAlways );\n }\n // use elem as selector string\n var queryElem = elem;\n if ( typeof elem == 'string' ) {\n queryElem = document.querySelectorAll( elem );\n }\n // bail if bad element\n if ( !queryElem ) {\n console.error( 'Bad element for imagesLoaded ' + ( queryElem || elem ) );\n return;\n }\n\n this.elements = makeArray( queryElem );\n this.options = extend( {}, this.options );\n // shift arguments if no options set\n if ( typeof options == 'function' ) {\n onAlways = options;\n } else {\n extend( this.options, options );\n }\n\n if ( onAlways ) {\n this.on( 'always', onAlways );\n }\n\n this.getImages();\n\n if ( $ ) {\n // add jQuery Deferred object\n this.jqDeferred = new $.Deferred();\n }\n\n // HACK check async to allow time to bind listeners\n setTimeout( this.check.bind( this ) );\n}\n\nImagesLoaded.prototype = Object.create( EvEmitter.prototype );\n\nImagesLoaded.prototype.options = {};\n\nImagesLoaded.prototype.getImages = function() {\n this.images = [];\n\n // filter & find items if we have an item selector\n this.elements.forEach( this.addElementImages, this );\n};\n\n/**\n * @param {Node} element\n */\nImagesLoaded.prototype.addElementImages = function( elem ) {\n // filter siblings\n if ( elem.nodeName == 'IMG' ) {\n this.addImage( elem );\n }\n // get background image on element\n if ( this.options.background === true ) {\n this.addElementBackgroundImages( elem );\n }\n\n // find children\n // no non-element nodes, #143\n var nodeType = elem.nodeType;\n if ( !nodeType || !elementNodeTypes[ nodeType ] ) {\n return;\n }\n var childImgs = elem.querySelectorAll('img');\n // concat childElems to filterFound array\n for ( var i=0; i < childImgs.length; i++ ) {\n var img = childImgs[i];\n this.addImage( img );\n }\n\n // get child background images\n if ( typeof this.options.background == 'string' ) {\n var children = elem.querySelectorAll( this.options.background );\n for ( i=0; i < children.length; i++ ) {\n var child = children[i];\n this.addElementBackgroundImages( child );\n }\n }\n};\n\nvar elementNodeTypes = {\n 1: true,\n 9: true,\n 11: true\n};\n\nImagesLoaded.prototype.addElementBackgroundImages = function( elem ) {\n var style = getComputedStyle( elem );\n if ( !style ) {\n // Firefox returns null if in a hidden iframe https://bugzil.la/548397\n return;\n }\n // get url inside url(\"...\")\n var reURL = /url\\((['\"])?(.*?)\\1\\)/gi;\n var matches = reURL.exec( style.backgroundImage );\n while ( matches !== null ) {\n var url = matches && matches[2];\n if ( url ) {\n this.addBackground( url, elem );\n }\n matches = reURL.exec( style.backgroundImage );\n }\n};\n\n/**\n * @param {Image} img\n */\nImagesLoaded.prototype.addImage = function( img ) {\n var loadingImage = new LoadingImage( img );\n this.images.push( loadingImage );\n};\n\nImagesLoaded.prototype.addBackground = function( url, elem ) {\n var background = new Background( url, elem );\n this.images.push( background );\n};\n\nImagesLoaded.prototype.check = function() {\n var _this = this;\n this.progressedCount = 0;\n this.hasAnyBroken = false;\n // complete if no images\n if ( !this.images.length ) {\n this.complete();\n return;\n }\n\n function onProgress( image, elem, message ) {\n // HACK - Chrome triggers event before object properties have changed. #83\n setTimeout( function() {\n _this.progress( image, elem, message );\n });\n }\n\n this.images.forEach( function( loadingImage ) {\n loadingImage.once( 'progress', onProgress );\n loadingImage.check();\n });\n};\n\nImagesLoaded.prototype.progress = function( image, elem, message ) {\n this.progressedCount++;\n this.hasAnyBroken = this.hasAnyBroken || !image.isLoaded;\n // progress event\n this.emitEvent( 'progress', [ this, image, elem ] );\n if ( this.jqDeferred && this.jqDeferred.notify ) {\n this.jqDeferred.notify( this, image );\n }\n // check if completed\n if ( this.progressedCount == this.images.length ) {\n this.complete();\n }\n\n if ( this.options.debug && console ) {\n console.log( 'progress: ' + message, image, elem );\n }\n};\n\nImagesLoaded.prototype.complete = function() {\n var eventName = this.hasAnyBroken ? 'fail' : 'done';\n this.isComplete = true;\n this.emitEvent( eventName, [ this ] );\n this.emitEvent( 'always', [ this ] );\n if ( this.jqDeferred ) {\n var jqMethod = this.hasAnyBroken ? 'reject' : 'resolve';\n this.jqDeferred[ jqMethod ]( this );\n }\n};\n\n// -------------------------- -------------------------- //\n\nfunction LoadingImage( img ) {\n this.img = img;\n}\n\nLoadingImage.prototype = Object.create( EvEmitter.prototype );\n\nLoadingImage.prototype.check = function() {\n // If complete is true and browser supports natural sizes,\n // try to check for image status manually.\n var isComplete = this.getIsImageComplete();\n if ( isComplete ) {\n // report based on naturalWidth\n this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' );\n return;\n }\n\n // If none of the checks above matched, simulate loading on detached element.\n this.proxyImage = new Image();\n this.proxyImage.addEventListener( 'load', this );\n this.proxyImage.addEventListener( 'error', this );\n // bind to image as well for Firefox. #191\n this.img.addEventListener( 'load', this );\n this.img.addEventListener( 'error', this );\n this.proxyImage.src = this.img.src;\n};\n\nLoadingImage.prototype.getIsImageComplete = function() {\n // check for non-zero, non-undefined naturalWidth\n // fixes Safari+InfiniteScroll+Masonry bug infinite-scroll#671\n return this.img.complete && this.img.naturalWidth;\n};\n\nLoadingImage.prototype.confirm = function( isLoaded, message ) {\n this.isLoaded = isLoaded;\n this.emitEvent( 'progress', [ this, this.img, message ] );\n};\n\n// ----- events ----- //\n\n// trigger specified handler for event type\nLoadingImage.prototype.handleEvent = function( event ) {\n var method = 'on' + event.type;\n if ( this[ method ] ) {\n this[ method ]( event );\n }\n};\n\nLoadingImage.prototype.onload = function() {\n this.confirm( true, 'onload' );\n this.unbindEvents();\n};\n\nLoadingImage.prototype.onerror = function() {\n this.confirm( false, 'onerror' );\n this.unbindEvents();\n};\n\nLoadingImage.prototype.unbindEvents = function() {\n this.proxyImage.removeEventListener( 'load', this );\n this.proxyImage.removeEventListener( 'error', this );\n this.img.removeEventListener( 'load', this );\n this.img.removeEventListener( 'error', this );\n};\n\n// -------------------------- Background -------------------------- //\n\nfunction Background( url, element ) {\n this.url = url;\n this.element = element;\n this.img = new Image();\n}\n\n// inherit LoadingImage prototype\nBackground.prototype = Object.create( LoadingImage.prototype );\n\nBackground.prototype.check = function() {\n this.img.addEventListener( 'load', this );\n this.img.addEventListener( 'error', this );\n this.img.src = this.url;\n // check if image is already complete\n var isComplete = this.getIsImageComplete();\n if ( isComplete ) {\n this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' );\n this.unbindEvents();\n }\n};\n\nBackground.prototype.unbindEvents = function() {\n this.img.removeEventListener( 'load', this );\n this.img.removeEventListener( 'error', this );\n};\n\nBackground.prototype.confirm = function( isLoaded, message ) {\n this.isLoaded = isLoaded;\n this.emitEvent( 'progress', [ this, this.element, message ] );\n};\n\n// -------------------------- jQuery -------------------------- //\n\nImagesLoaded.makeJQueryPlugin = function( jQuery ) {\n jQuery = jQuery || window.jQuery;\n if ( !jQuery ) {\n return;\n }\n // set local variable\n $ = jQuery;\n // $().imagesLoaded()\n $.fn.imagesLoaded = function( options, callback ) {\n var instance = new ImagesLoaded( this, options, callback );\n return instance.jqDeferred.promise( $(this) );\n };\n};\n// try making plugin\nImagesLoaded.makeJQueryPlugin();\n\n// -------------------------- -------------------------- //\n\nreturn ImagesLoaded;\n\n});\n\n/*!\n * Flickity imagesLoaded v2.0.0\n * enables imagesLoaded option for Flickity\n */\n\n/*jshint browser: true, strict: true, undef: true, unused: true */\n\n( function( window, factory ) {\n // universal module definition\n /*jshint strict: false */ /*globals define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'flickity/js/index',\n 'imagesloaded/imagesloaded'\n ], function( Flickity, imagesLoaded ) {\n return factory( window, Flickity, imagesLoaded );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('flickity'),\n require('imagesloaded')\n );\n } else {\n // browser global\n window.Flickity = factory(\n window,\n window.Flickity,\n window.imagesLoaded\n );\n }\n\n}( window, function factory( window, Flickity, imagesLoaded ) {\n'use strict';\n\nFlickity.createMethods.push('_createImagesLoaded');\n\nvar proto = Flickity.prototype;\n\nproto._createImagesLoaded = function() {\n this.on( 'activate', this.imagesLoaded );\n};\n\nproto.imagesLoaded = function() {\n if ( !this.options.imagesLoaded ) {\n return;\n }\n var _this = this;\n function onImagesLoadedProgress( instance, image ) {\n var cell = _this.getParentCell( image.img );\n _this.cellSizeChange( cell && cell.element );\n if ( !_this.options.freeScroll ) {\n _this.positionSliderAtSelected();\n }\n }\n imagesLoaded( this.slider ).on( 'progress', onImagesLoadedProgress );\n};\n\nreturn Flickity;\n\n}));\n\n","// Fix Gallery not visible in Accordion on expand\n$('.AccordionTrigger').on('click', function() {\n if (typeof(Event) === 'function') {\n // modern browsers\n window.dispatchEvent(new Event('resize'));\n\n } else {\n //This will be executed on old browsers and especially IE\n var resizeEvent = window.document.createEvent('UIEvents');\n resizeEvent.initUIEvent('resize', true, false, window, 0);\n window.dispatchEvent(resizeEvent);\n }\n});\n","$('iframe').each(function() {\n var e = $(this).attr('src');\n\n if (e && e.indexOf('?') > 0) {\n $(this).attr({\n src: e + '&wmode=transparent',\n wmode: 'Opaque'\n });\n } else {\n $(this).attr({\n src: e + '?wmode=transparent',\n wmode: 'Opaque'\n });\n }\n});\n\n$(function() {\n //responsive iframe handling\n if (!iCreateObject.isSiteInICreateMode || iCreateObject.isSiteInPreviewMode) {\n if ($('iframe').length > 0) {\n $('iframe').each(function() {\n var patternVideo = /(youtube\\.com|youtu\\.be|vimeo\\.com)/,\n video = patternVideo.test($(this).attr('src')),\n patternIssuu = /(issuu\\.com)/,\n issuu = patternIssuu.test($(this).attr('src')),\n iframeWidth = $(this).outerWidth(),\n iframeHeight = $(this).outerHeight(),\n iframePadding = iframeHeight / iframeWidth * 100;\n\n if (video) {\n if ($(this).parent('.iframe-container').length === 0) {\n $(this).wrap('
');\n }\n\n $(this).parent('.iframe-container').css('padding-bottom', iframePadding + '%');\n\n if ($(this).attr('width')) {\n if (!$(this).attr('width').match('%$')) {\n $(this).parent('.iframe-container').wrap('
');\n }\n }\n } else if (issuu) {\n $(this).parent('.issuuembed').addClass('iframe-container').css('padding-bottom', iframePadding + '%');\n }\n });\n }\n }\n});\n","$(function() {\r\n var fontSizeInitial = parseInt($('#printArea').css('font-size')),\r\n fontSize = fontSizeInitial;\r\n\r\n $('.resizeText').find('button').on('click', function(event) {\r\n event.preventDefault();\r\n if (iCreateObject.isSiteInICreateMode) {\r\n showNAMessage();\r\n } else {\r\n var sizer = $(this);\r\n if (sizer.hasClass('textDefault')) {\r\n fontSize = fontSizeInitial;\r\n resizeText(fontSize);\r\n } else if (sizer.hasClass('textDecrease') && fontSize > 8) {\r\n fontSize--;\r\n resizeText(fontSize);\r\n } else if (sizer.hasClass('textIncrease') && fontSize < 24) {\r\n fontSize++;\r\n resizeText(fontSize);\r\n }\r\n }\r\n\r\n });\r\n});\r\n\r\nfunction resizeText(size) {\r\n $('#printArea').css('font-size', size);\r\n $('#printArea .datatable .titlerow').css('font-size', size);\r\n $('.Accordion .AccordionTrigger *').css('font-size', size);\r\n $('.Accordion .AccordionContent').css('font-size', size);\r\n $('.Accordion .AccordionTitle').css('font-size', size);\r\n $('.icHowto').css('font-size', size);\r\n if ($('#uber').hasClass('interior')) {\r\n $.fn.matchHeight._update();\r\n }\r\n}\r\n","if (!$('#uber').hasClass('moduleInterior')) {\n if (iCreateObject.isSiteInICreateMode) {\n var toggleHtmlStructure = '
';\n\n if ($('#subNavWrapper').length > 0) {\n toggleHtmlStructure += '';\n }\n\n if ($('#subNavContainer').length > 0) {\n toggleHtmlStructure += '';\n }\n\n if ($('#uber:not(.blogFeed) #intBgImage').length > 0) {\n toggleHtmlStructure += '';\n }\n\n if ($('#contactMainContainer').length > 0) {\n toggleHtmlStructure += '';\n }\n\n if ($('#featureImageHolder').length > 0) {\n toggleHtmlStructure += '';\n }\n\n toggleHtmlStructure += '';\n\n toggleHtmlStructure += '
';\n\n $('#printArea').before(toggleHtmlStructure);\n }\n\n if ($('#TKInteriorHideAreasToggle #frmToggleContent').length <= 0) {\n var myForm = $('
');\n myForm.attr({ 'id': 'frmToggleContent', 'action': '#' });\n\n if ($('#subNavWrapper').length > 0) {\n myForm.append($('').attr({ 'type': 'hidden', 'id': 'hdnHideLeftContent', 'value': $('#uber').hasClass('wide') ? 'wide' : '' }));\n }\n\n if ($('#subNavContainer').length > 0) {\n myForm.append($('').attr({ 'type': 'hidden', 'id': 'hdnHideSubNav', 'value': $('#subNavContainer').hasClass('hide') ? 'hide' : '' }));\n }\n\n if ($('#uber:not(.blogFeed) #intBgImage').length > 0) {\n myForm.append($('').attr({ 'type': 'hidden', 'id': 'hdnHideBannerImage', 'value': $('#uber').hasClass('hideBanner') ? 'hideBanner' : '' }));\n }\n\n if ($('#contactMainContainer').length > 0) {\n myForm.append($('').attr({ 'type': 'hidden', 'id': 'hdnHideRightContact', 'value': $('#contactMainContainer').hasClass('hide') ? 'hide' : '' }));\n }\n\n if ($('#featureImageHolder').length > 0) {\n myForm.append($('').attr({ 'type': 'hidden', 'id': 'hdnHideFeatureImage', 'value': $('#featureImageHolder').hasClass('hide') ? 'hide' : '' }));\n }\n\n myForm.append($('').attr({ 'type': 'hidden', 'id': 'hdnHideEmergencyAlert', 'value': '' }));\n myForm.append($('').attr({ 'type': 'submit', 'id': 'btnToggleContent', 'name': 'btnToggleContent', 'aria-label': 'Toggle Content' }).addClass('hideButton'));\n\n $('#TKInteriorHideAreasToggle').empty().append(myForm);\n } else {\n //Insert emergency alert banner if not already there\n if ($('#TKInteriorHideAreasToggle #frmToggleContent #hdnHideEmergencyAlert').length <= 0) {\n $('#TKInteriorHideAreasToggle #frmToggleContent').prepend($('').attr({ 'type': 'hidden', 'id': 'hdnHideEmergencyAlert', 'value': '' }));\n }\n\n //Insert subnav if not already there\n if ($('#TKInteriorHideAreasToggle #frmToggleContent #hdnHideSubNav').length <= 0) {\n $('#TKInteriorHideAreasToggle #frmToggleContent').prepend($('').attr({ 'type': 'hidden', 'id': 'hdnHideSubNav', 'value': '' }));\n }\n }\n\n // bind checkbox with hidden fields\n //Emergency Banner\n if (($('#hdnHideEmergencyAlert').length > 0) && ($('#hdnHideEmergencyAlert').val() === 'hide')) {\n if ($('#chkHideEmergencyAlert').length > 0) {\n $('#chkHideEmergencyAlert').attr('checked', 'checked');\n }\n }\n\n //Side Panel\n if ($('#subNavWrapper').length > 0 && ($('#hdnHideLeftContent').length > 0) && ($('#hdnHideLeftContent').val() === 'wide')) {\n if ($('#chkHideLeftContent').length > 0) {\n $('#chkHideLeftContent').attr('checked', 'checked');\n }\n\n $('#uber').toggleClass('wide', true);\n $('#subNavWrapper').toggleClass('wide', true);\n } else if ($('#subNavWrapper').length > 0 && ($('#hdnHideLeftContent').length > 0) && ($('#hdnHideLeftContent').val() === '')) {\n $('#uber').toggleClass('wide', false);\n $('#subNavWrapper').toggleClass('wide', false);\n }\n\n //Subnav\n if ($('#subNavContainer').length > 0 && ($('#hdnHideSubNav').length > 0) && ($('#hdnHideSubNav').val() === 'hide')) {\n if ($('#chkHideSubNav').length > 0) {\n $('#chkHideSubNav').attr('checked', 'checked');\n }\n\n $('#subNavContainer').toggleClass('hide', true);\n } else if ($('#subNavContainer').length > 0 && ($('#hdnHideSubNav').length > 0) && ($('#hdnHideSubNav').val() === '')) {\n $('#subNavContainer').toggleClass('hide', false);\n }\n\n //Interior Banner\n if ($('#intBgImage').length > 0 && ($('#hdnHideBannerImage').length > 0) && ($('#hdnHideBannerImage').val() === 'hideBanner')) {\n if ($('#chkHideBannerImage').length > 0) {\n $('#chkHideBannerImage').attr('checked', 'checked');\n }\n $('#uber').toggleClass('hideBanner', true);\n } else if ($('#intBgImage').length > 0 && ($('#hdnHideBannerImage').length > 0) && ($('#hdnHideBannerImage').val() === '')) {\n $('#uber').toggleClass('hideBanner', false);\n }\n\n //Contact\n if (($('#hdnHideRightContact').length > 0) && ($('#hdnHideRightContact').val() === 'hide')) {\n if ($('#chkHideRightContact').length > 0) {\n $('#chkHideRightContact').attr('checked', 'checked');\n }\n\n $('#contactMainContainer').toggleClass('hide', true);\n } else if (($('#hdnHideRightContact').length > 0) && ($('#hdnHideRightContact').val() === '')) {\n $('#contactMainContainer').toggleClass('hide', false);\n }\n\n //Feature Image\n if (($('#hdnHideFeatureImage').length > 0) && ($('#hdnHideFeatureImage').val() === 'hide')) {\n if ($('#chkHideFeatureImage').length > 0) {\n $('#chkHideFeatureImage').attr('checked', 'checked');\n }\n\n $('#featureImageHolder').toggleClass('hide', true);\n } else if (($('#hdnHideFeatureImage').length > 0) && ($('#hdnHideFeatureImage').val() === '')) {\n $('#featureImageHolder').toggleClass('hide', false);\n }\n\n // bind checkbox change event\n //Emergency Banner\n if ($('#chkHideEmergencyAlert').length > 0) {\n $('#chkHideEmergencyAlert').change(function () {\n $('#hdnHideEmergencyAlert').val($('#chkHideEmergencyAlert:checked').length > 0 ? 'hide' : '');\n\n if (iCreateObject.isSiteInICreateMode) {\n $('#TKInteriorHideAreasToggle').save();\n }\n });\n }\n\n //Side Panel\n if ($('#subNavWrapper').length > 0 && $('#chkHideLeftContent').length > 0) {\n $('#chkHideLeftContent').change(function () {\n $('#uber').toggleClass('wide', $(this).is(':checked'));\n $('#subNavWrapper').toggleClass('wide', $(this).is(':checked'));\n $('#hdnHideLeftContent').val($('#subNavWrapper').hasClass('wide') ? 'wide' : '');\n\n if (iCreateObject.isSiteInICreateMode) {\n $('#TKInteriorHideAreasToggle').save();\n }\n });\n }\n //Subnav\n if ($('#subNavContainer').length > 0 && $('#chkHideSubNav').length > 0) {\n $('#chkHideSubNav').change(function () {\n $('#subNavContainer').toggleClass('hide', $(this).is(':checked'));\n $('#hdnHideSubNav').val($('#subNavContainer').hasClass('hide') ? 'hide' : '');\n\n if (iCreateObject.isSiteInICreateMode) {\n $('#TKInteriorHideAreasToggle').save();\n }\n });\n }\n\n //Interior Banner\n if ($('#intBgImage').length > 0 && $('#chkHideBannerImage').length > 0) {\n $('#chkHideBannerImage').change(function () {\n $('#uber').toggleClass('hideBanner', $(this).is(':checked'));\n $('#hdnHideBannerImage').val($('#uber').hasClass('hideBanner') ? 'hideBanner' : '');\n\n if (iCreateObject.isSiteInICreateMode) {\n $('#TKInteriorHideAreasToggle').save();\n }\n });\n }\n\n //Contact\n if ($('#chkHideRightContact').length > 0) {\n $('#chkHideRightContact').change(function () {\n $('#contactMainContainer').toggleClass('hide', $(this).is(':checked'));\n $('#hdnHideRightContact').val($('#contactMainContainer').hasClass('hide') ? 'hide' : '');\n\n if (iCreateObject.isSiteInICreateMode) {\n $('#TKInteriorHideAreasToggle').save();\n }\n });\n }\n\n //Feature Image\n if ($('#chkHideFeatureImage').length > 0) {\n $('#chkHideFeatureImage').change(function () {\n $('#featureImageHolder').toggleClass('hide', $(this).is(':checked'));\n $('#hdnHideFeatureImage').val($('#featureImageHolder').hasClass('hide') ? 'hide' : '');\n\n if (iCreateObject.isSiteInICreateMode) {\n $('#TKInteriorHideAreasToggle').save();\n\n }\n });\n }\n}\n","$(function () {\n // lb-imageBox\n if ($('.lb-imageBox').length) {\n if ($().matchHeight) {\n $('.lb-imageBox_header').matchHeight();\n }\n\n // unwrap lb-imageBox that has no link\n $('.fbg-row.lb-imageBox a').each(function() {\n if ($(this).attr('href') === '' || $(this).attr('href') === '#' || !$(this).attr('href')) { // don't style link\n $(this).contents().unwrap('a');\n }\n });\n }\n\n // lb-callToAction\n if ($('.lb-callToAction').length) {\n if ($().matchHeight) {\n $('.lb-callToAction_contentWrapper').matchHeight();\n }\n }\n\n // lb-carousel\n if ($('.lb-carousel').length) {\n $('.lb-carousel').each(function () {\n var flickityData = JSON.stringify($('.lb-carouselContainer', this).attr('data-flickity'));\n var objflickityData = $.parseJSON(flickityData);\n\n if (!objflickityData['contain']) {\n $(this).addClass('containFalse');\n }\n });\n }\n});\n\n$(window).load(function () {\n // lb-carousel\n if ($('.lb-carousel.containFalse').length\n && (!iCreateObject.isSiteInICreateMode || iCreateObject.isSiteInPreviewMode)) {\n triggerResizeEvent();\n }\n\n if ($('#uber.edit-mode').length) {\n if ($('.lb-carousel').length) {\n setTimeout(function () {\n $('.lb-carousel .lb-carouselContainer').flickity('stopPlayer');\n }, 1000);\n }\n }\n});\n","$(function () {\n\tif ($('#uber').hasClass('interior')) {\n\t\t// Add class to uber if calendar template\n\t\tif ($('#CalendarTemplate').length > 0) {\n\t\t\t$('#uber').addClass('calendarView');\n\t\t}\n\n\t\tvar win = $(window);\n\n\t\twin.on('load resize', function () {\n\t\t\tvar sideWidgets = [\n\t\t\t\t'#contactMainContainer',\n\t\t\t\t'#pageSubscription'\n\t\t\t];\n\n\t\t\tif (win.width() >= 992) {\n\t\t\t\tresetMoveSideWidgets(sideWidgets);\n\t\t\t} else {\n\t\t\t\tmoveSideWidgets(sideWidgets);\n\t\t\t}\n\t\t});\n\n\t\tfunction moveSideWidgets(el) {\n\t\t\tif (el !== undefined || el !== null) {\n\t\t\t\tfor (var i = 0; i < el.length; i++) {\n\t\t\t\t\tvar me = el[i];\n\n\t\t\t\t\tif ($('#subNavWrapper').find(me).length) {\n\t\t\t\t\t\t$('#subNavWrapper').find(me).detach().appendTo('#printArea');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction resetMoveSideWidgets(el) {\n\t\t\tif (el !== undefined || el !== null) {\n\t\t\t\tfor (var i = 0; i < el.length; i++) {\n\t\t\t\t\tvar me = el[i];\n\n\t\t\t\t\tif ($('#printArea').find(me).length) {\n\t\t\t\t\t\t$('#printArea').find(me).detach().appendTo('#subNavWrapper');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n});","$(function () {\n const $share = $('#share');\n\n if (!iCreateObject.isSiteInICreateMode) {\n $('#shareDropdown li').last().addClass('last');\n } else {\n $('#shareDropdown').empty();\n }\n\n $share.find('#shareBtn').on('click', function () {\n if (isSiteinICreateMode()) {\n showNAMessage();\n } else {\n let isExpanded = $(this).attr('aria-expanded') === 'true' ? true : false;\n\n $(this).attr('aria-expanded', isExpanded ? 'false' : 'true');\n\n isExpanded ? remove_trap_focus($share, 'shareTrap') : trap_focus($share, 'shareTrap');\n }\n });\n\n // Override the share links to current URL\n var curpage = encodeURIComponent(window.location);\n var curPageHeading = $(document).find('h1').length ? $.trim($('h1').text()).replace(/\\s\\s+/g, ' ') : $.trim($(document).find('title').text());\n\n $share.find('#fbShare').attr('href', 'https://www.facebook.com/sharer.php?u=' + curpage);\n $share.find('#liShare').attr('href', 'https://www.linkedin.com/shareArticle?mini=true&url=' + curpage);\n $share.find('#twShare').attr('href', 'https://www.twitter.com/intent/tweet?text=Check+out+ ' + curPageHeading + ' ' + curpage);\n});","$(function () {\n // Hide Mobile subNav trigger if subnav is empty\n if (!$('#subNavWrapper #subNavContainer .subNav li').first().children().length) {\n $('.subNavTrigger').addClass('hide');\n } else {\n $('.subNavTrigger').removeClass('hide');\n }\n\n if (!$('#subNavWrapper #subNavContainer .subNav li ul').first().children().length) {\n $('#subNavContainer').addClass('hide');\n } else {\n $('#subNavContainer').removeClass('hide');\n }\n\n // Mobile subNav open/close\n $('.subNavTrigger').on('click', function () {\n $(this).attr('aria-expanded', $(this).attr('aria-expanded') === 'false' ? 'true' : 'false').toggleClass('is-active');\n $('#subNavWrapper').slideToggle();\n });\n\n $('#subNavWrapper').find('.toggle').each(function (index) {\n let ddId = 'subNavDropdown-' + index;\n\n if ($(this).next('ul').attr('id')) {\n ddId = $(this).next('ul').attr('id');\n } else if ($(this).hasClass('extendedToggle')) {\n ddId = 'extendedMenu';\n } else {\n ddId = 'subNavDropdown-' + index;\n }\n\n $(this).attr({\n 'aria-expanded': 'false',\n 'aria-controls': ddId\n }).next('ul').attr('id', ddId);\n });\n\n // Subnav Extended Menu Toggle\n $('#subNavWrapper .extendedMenuWrapper').on('click', 'a.extendedMenu, > .extendedToggle', function (event) {\n event.preventDefault();\n\n $('#subNavWrapper .extendedMenuWrapper > [aria-controls=\"extendedMenu\"]').attr('aria-expanded', $(this).attr('aria-expanded') === 'false' ? 'true' : 'false');\n\n //show/hide menu items\n $('#subNavContainer ul#extendedMenu').slideToggle();\n\n //change button text to Close or View and add/remove class to control toggle\n if ($('#subNavContainer a.extendedMenu:contains(\"Close\")').length > 0) {\n $('#subNavContainer a.extendedMenu').removeClass('open').find('span').text(function (index, text) {\n return text.replace('Close', 'View');\n });\n } else {\n $('#subNavContainer a.extendedMenu').addClass('open').find('span').text(function (index, text) {\n return text.replace('View', 'Close');\n });\n }\n\n $('.extendedMenuWrapper > .toggle').parent('div').next('ul').parent('li').toggleClass('open');\n });\n\n // Subnav Menu Toggle Click\n $('.subNav').on('click', '.toggle:not(.extendedToggle)', function (event) {\n event.preventDefault();\n event.stopPropagation();\n\n $(this).attr('aria-expanded', $(this).attr('aria-expanded') === 'false' ? 'true' : 'false').next('ul').stop().slideToggle().parent('li').toggleClass('open');\n });\n});"]}