{"version":3,"sources":["webpack://Slider/webpack/universalModuleDefinition","webpack://Slider/webpack/bootstrap","webpack://Slider/external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}","webpack://Slider/./node_modules/classnames/index.js","webpack://Slider/external {\"root\":\"ReactDOM\",\"commonjs2\":\"react-dom\",\"commonjs\":\"react-dom\",\"amd\":\"react-dom\"}","webpack://Slider/./node_modules/json2mq/index.js","webpack://Slider/(webpack)/buildin/global.js","webpack://Slider/./node_modules/enquire.js/src/Util.js","webpack://Slider/./node_modules/lodash.debounce/index.js","webpack://Slider/./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","webpack://Slider/./node_modules/string-convert/camel2hyphen.js","webpack://Slider/./node_modules/enquire.js/src/index.js","webpack://Slider/./node_modules/enquire.js/src/MediaQueryDispatch.js","webpack://Slider/./node_modules/enquire.js/src/MediaQuery.js","webpack://Slider/./node_modules/enquire.js/src/QueryHandler.js","webpack://Slider/./src/initial-state.js","webpack://Slider/./src/utils/innerSliderUtils.js","webpack://Slider/./src/track.js","webpack://Slider/./src/dots.js","webpack://Slider/./src/arrows.js","webpack://Slider/./src/inner-slider.js","webpack://Slider/./src/default-props.js","webpack://Slider/./src/slider.js","webpack://Slider/./src/index.js"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__0__","__WEBPACK_EXTERNAL_MODULE__2__","installedModules","__webpack_require__","m","hasOwn","hasOwnProperty","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","inner","apply","key","call","join","default","obj2mq","obj","mq","features","Object","keys","forEach","feature","index","value","test","camel2hyphen","query","q","g","this","Function","e","isFunction","target","prototype","toString","each","collection","fn","now","Date","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","freeGlobal","global","freeSelf","self","objectToString","nativeMax","Math","max","nativeMin","min","isObject","type","toNumber","other","valueOf","replace","isBinary","slice","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","args","thisArg","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","setTimeout","debounced","isInvoking","cancel","clearTimeout","flush","MapShim","Map","getIndex","arr","some","entry","defineProperty","class_1","get","__entries__","enumerable","configurable","set","delete","entries","splice","has","clear","callback","ctx","_i","_a","isBrowser","document","global$1","requestAnimationFrame$1","requestAnimationFrame","bind","trailingTimeout","transitionKeys","mutationObserverSupported","MutationObserver","ResizeObserverController","addObserver","observer","observers_","indexOf","connected_","connect_","removeObserver","observers","disconnect_","refresh","updateObservers_","activeObservers","filter","gatherActive","hasActive","broadcastActive","addEventListener","onTransitionEnd_","mutationsObserver_","observe","attributes","childList","characterData","subtree","mutationEventsAdded_","removeEventListener","disconnect","_b","propertyName","getInstance","instance_","delay","leadingCall","trailingCall","resolvePending","proxy","timeoutCallback","timeStamp","defineConfigurable","props","writable","getWindowOf","ownerDocument","defaultView","emptyRect","createRectInit","toFloat","parseFloat","getBordersSize","styles","positions","reduce","size","position","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getBBox","getContentRect","bbox","width","height","clientWidth","clientHeight","getComputedStyle","paddings","positions_1","horizPad","left","right","vertPad","top","bottom","boxSizing","round","documentElement","vertScrollbar","horizScrollbar","abs","getHTMLElementContentRect","x","y","ResizeObservation","isActive","rect","contentRect_","broadcastWidth","broadcastHeight","broadcastRect","ResizeObserverEntry","rectInit","contentRect","Constr","DOMRectReadOnly","create","ResizeObserverSPI","Element","observations","observations_","controller_","unobserve","clearActive","_this","observation","activeObservations_","callbackCtx_","map","callback_","controller","callbackCtx","WeakMap","ResizeObserver","method","str","match","toLowerCase","MediaQueryDispatch","MediaQuery","Util","matchMedia","Error","queries","browserIsIncapable","matches","constructor","register","shouldDegrade","isUnconditional","handler","addHandler","unregister","removeHandler","QueryHandler","handlers","mql","listener","currentTarget","assess","addListener","constuctor","qh","on","h","equals","destroy","removeListener","action","deferSetup","setup","initialised","off","unmatch","initialState","animating","autoplaying","currentDirection","currentLeft","currentSlide","direction","dragging","edgeDragged","initialized","lazyLoadedList","listHeight","listWidth","scrolling","slideCount","slideHeight","slideWidth","swipeLeft","swiped","swiping","touchObject","startX","startY","curX","curY","trackStyle","trackWidth","getOnDemandLazySlides","spec","onDemandSlides","startIndex","lazyStartIndex","endIndex","lazyEndIndex","slideIndex","getWidth","elem","offsetWidth","getHeight","offsetHeight","getSwipeDirection","xDist","yDist","r","swipeAngle","verticalSwiping","atan2","PI","canGoNext","canGo","infinite","centerMode","slidesToShow","extractObject","newObject","checkSpecKeys","keysArray","console","error","getPostClones","unslick","canUseDOM","createElement","lazySlidesOnLeft","lazySlidesOnRight","floor","centerPadding","checkNavigable","navigables","breakpoint","counter","indexes","slidesToScroll","prevNavigable","n","getSlideCount","centerOffset","swipeToSlide","swipedSlide","slides","ReactDOM","findDOMNode","listRef","querySelectorAll","from","every","slide","vertical","offsetTop","offsetLeft","currentIndex","rtl","dataset","getTrackCSS","trackHeight","trackChildren","getTotalSlides","style","opacity","transition","WebkitTransition","useTransform","WebkitTransform","transform","msTransform","fade","attachEvent","marginTop","marginLeft","getTrackAnimateCSS","speed","cssEase","getTrackLeft","targetLeft","targetSlide","trackRef","variableWidth","slidesToOffset","getPreClones","targetSlideIndex","trackElem","childNodes","children","siblingDirection","slidesOnRight","slidesOnLeft","getSlideClasses","slickActive","slickCenter","slickCloned","getKey","child","fallbackKey","Track","React","PureComponent","preCloneSlides","postCloneSlides","childrenCount","Children","count","childOnClickOptions","message","lazyLoad","childStyle","slideClass","className","slideClasses","cloneElement","classnames","tabIndex","outline","onClick","focusOnSelect","preCloneNo","concat","reverse","renderSlides","mouseEvents","onMouseEnter","onMouseOver","onMouseLeave","Dots","preventDefault","clickHandler","dotCount","ceil","dots","split","leftBound","rightBound","dotOptions","customPaging","appendDots","dotsClass","PrevArrow","prevClasses","prevHandler","prevArrowProps","display","customProps","prevArrow","NextArrow","nextClasses","nextHandler","nextArrowProps","nextArrow","InnerSlider","ref","list","track","adaptiveHeight","querySelector","state","ssrInit","onInit","slidesToLoad","setState","prevState","onLazyLoad","updateState","adaptHeight","autoplay","autoPlay","lazyLoadTimer","setInterval","progressiveLazyLoad","ro","onWindowResized","callbackTimers","onfocus","pauseOnFocus","onSlideFocus","onblur","onSlideBlur","animationEndCallback","clearInterval","timer","detachEvent","autoplayTimer","nextProps","setTrackStyle","changeSlide","pause","checkImagesLoad","onReInit","debouncedResize","debounce","resizeWindow","updatedState","centerPaddingAdj","initialSlide","trackLeft","childrenWidths","preClones","postClones","currentWidth","images","imagesCount","loadedCount","image","onclick","prevClickHandler","parentNode","focus","onload","onerror","onLazyLoadError","dontAnimate","asNavFor","beforeChange","afterChange","waitForAnimate","useCSS","finalSlide","animationLeft","finalLeft","animationSlide","nextState","innerSlider","slideHandler","firstBatch","indexOffset","previousInt","slideOffset","Number","clickable","stopPropagation","dir","accessibility","tagName","keyCode","ontouchmove","event","returnValue","disableBodyScroll","swipe","draggable","touches","pageX","clientX","pageY","clientY","edgeFriction","onEdge","swipeEvent","curLeft","swipeLength","sqrt","pow","verticalSwipeLength","positionOffset","swipeDirection","touchSwipeLength","touchThreshold","onSwipe","minSwipe","newSlide","triggerSlideHandler","enableBodyScroll","isNaN","nextIndex","playType","play","autoplaySpeed","pauseType","trackProps","pauseOnHover","onTrackOver","onTrackLeave","selectHandler","dotProps","pauseOnDotsHover","onDotsLeave","onDotsOver","arrowProps","arrows","verticalHeightStyle","centerPaddingStyle","padding","listStyle","touchMove","listProps","onMouseDown","swipeStart","onMouseMove","swipeMove","onMouseUp","swipeEnd","onTouchStart","onTouchMove","onTouchEnd","onTouchCancel","onKeyDown","keyHandler","innerSliderProps","listRefHandler","trackRefHandler","Component","defaultProps","easing","responsive","rows","slidesPerRow","enquire","Slider","slickPrev","slickNext","slickGoTo","_responsiveMediaHandlers","breakpoints","breakpt","sort","bQuery","json2mq","minWidth","maxWidth","media","settings","newProps","resp","toArray","trim","warn","newChildren","j","row","k","innerSliderRefHandler","c","d","name","getter","o","Symbol","toStringTag","t","mode","__esModule","ns","object","property","p","s","moduleId","l","modules"],"mappings":"CAAA,SAA2CA,EAAMC,GAC1B,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,EAAQG,QAAQ,SAAUA,QAAQ,cAC1B,mBAAXC,QAAyBA,OAAOC,IAC9CD,OAAO,CAAC,QAAS,aAAcJ,GACL,iBAAZC,QACdA,QAAgB,OAAID,EAAQG,QAAQ,SAAUA,QAAQ,cAEtDJ,EAAa,OAAIC,EAAQD,EAAY,MAAGA,EAAe,UARzD,CASGO,OAAQ,SAASC,EAAgCC,GACpD,OCTMC,EAAmB,GA4BvBC,EAAoBC,E,iBC7BtBT,EAAOD,QAAUM,G,gBCAjB;;;;;;;;;;GAOC,WACA,aAEA,IAAIK,EAAS,GAAGC,eAEhB,SAASC,IAGR,IAFA,IAAIC,EAAU,GAELC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAC1C,IAAIG,EAAMF,UAAUD,GACpB,GAAKG,EAAL,CAEA,IAAIC,SAAiBD,EAErB,GAAgB,UAAZC,GAAoC,UAAZA,EAC3BL,EAAQM,KAAKF,QACP,GAAIG,MAAMC,QAAQJ,IAAQA,EAAID,OAAQ,CAC5C,IAAIM,EAAQV,EAAWW,MAAM,KAAMN,GAC/BK,GACHT,EAAQM,KAAKG,QAER,GAAgB,UAAZJ,EACV,IAAK,IAAIM,KAAOP,EACXP,EAAOe,KAAKR,EAAKO,IAAQP,EAAIO,IAChCX,EAAQM,KAAKK,IAMjB,OAAOX,EAAQa,KAAK,KAGgB1B,EAAOD,SAC3Ca,EAAWe,QAAUf,EACrBZ,EAAOD,QAAUa,aAGQ,EAAF,WACtB,OAAOA,GACP,QAFoB,OAEpB,aAxCF,I,cCPDZ,EAAOD,QAAUO,G,gBCOJ,SAATsB,EAAmBC,GACrB,IAAIC,EAAK,GACLC,EAAWC,OAAOC,KAAKJ,GAmB3B,OAlBAE,EAASG,QAAQ,SAAUC,EAASC,GAClC,IAAIC,EAAQR,EAAIM,IATF,SAAUA,GAE1B,MADS,kBACCG,KAAKH,GAFC,CAUdA,EAAUI,EAAaJ,KAEsB,iBAAVE,IACjCA,GAAgB,MAGhBP,QADEO,EACIF,OACGE,EACH,OAASF,EAET,IAAMA,EAAU,KAAOE,EAAQ,IAEnCD,EAAQL,EAASf,OAAO,IAC1Bc,GAAM,WAGHA,EA5BT,IAAIS,EAAe,EAAQ,GAkD3BvC,EAAOD,QAnBO,SAAUyC,GACtB,IAAIV,EAAK,GACT,MAAqB,iBAAVU,EACFA,EAGLA,aAAiBpB,OACnBoB,EAAMN,QAAQ,SAAUO,EAAGL,GACzBN,GAAMF,EAAOa,GACTL,EAAQI,EAAMxB,OAAO,IACvBc,GAAM,QAGHA,GAGFF,EAAOY,K,cC/ChB,IAAIE,EAGJA,EAAI,WACH,OAAOC,KADJ,GAIJ,IAECD,EAAIA,GAAK,IAAIE,SAAS,cAAb,GACR,MAAOC,GAEc,iBAAXzC,SAAqBsC,EAAItC,QAOrCJ,EAAOD,QAAU2C,G,cCoBjB1C,EAAOD,QAAU,CACb+C,WALJ,SAAoBC,GAChB,MAAyB,mBAAXA,GAKd1B,QAhBJ,SAAiB0B,GACb,MAAmD,mBAA5Cf,OAAOgB,UAAUC,SAAS1B,MAAMwB,IAgBvCG,KApCJ,SAAcC,EAAYC,GAKtB,IAJA,IAAItC,EAAS,EACTE,EAASmC,EAAWnC,OAGjBF,EAAIE,QACAoC,EAAGD,EAAWrC,GAAIA,GADVA,S,0BCXvB,GAwEU,SAANuC,IACF,OAAOxD,EAAKyD,KAAKD,MA/DnB,IAGIE,EAAM,IAGNC,EAAY,kBAGZC,EAAS,aAGTC,EAAa,qBAGbC,EAAa,aAGbC,EAAY,cAGZC,EAAeC,SAGfC,EAA8B,iBAAVC,GAAsBA,GAAUA,EAAOhC,SAAWA,QAAUgC,EAGhFC,EAA0B,iBAARC,MAAoBA,MAAQA,KAAKlC,SAAWA,QAAUkC,KAGxErE,EAAOkE,GAAcE,GAAYrB,SAAS,cAATA,GAUjCuB,EAPcnC,OAAOgB,UAOQC,SAG7BmB,EAAYC,KAAKC,IACjBC,EAAYF,KAAKG,IA+NrB,SAASC,EAASpC,GAChB,IAAIqC,SAAcrC,EAClB,QAASA,IAAkB,UAARqC,GAA4B,YAARA,GA4EzC,SAASC,EAAStC,GAChB,GAAoB,iBAATA,EACT,OAAOA,EAET,GAhCF,SAAkBA,GAChB,MAAuB,iBAATA,GAtBhB,SAAsBA,GACpB,QAASA,GAAyB,iBAATA,EAD3B,CAuBkBA,IAAU8B,EAAe1C,KAAKY,IAAUmB,EAF1D,CAgCenB,GACX,OAAOkB,EAET,GAAIkB,EAASpC,GAAQ,CACnB,IAAIuC,EAAgC,mBAAjBvC,EAAMwC,QAAwBxC,EAAMwC,UAAYxC,EACnEA,EAAQoC,EAASG,GAAUA,EAAQ,GAAMA,EAE3C,GAAoB,iBAATvC,EACT,OAAiB,IAAVA,EAAcA,GAASA,EAEhCA,EAAQA,EAAMyC,QAAQrB,EAAQ,IAC9B,IAAIsB,EAAWpB,EAAWrB,KAAKD,GAC/B,OAAQ0C,GAAYnB,EAAUtB,KAAKD,GAC/BwB,EAAaxB,EAAM2C,MAAM,GAAID,EAAW,EAAI,GAC3CrB,EAAWpB,KAAKD,GAASkB,GAAOlB,EAGvCrC,EAAOD,QAtPP,SAAkBkF,EAAMC,EAAMC,GAC5B,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAAiB,EACjBC,KACAC,KACAC,KAEJ,GAAmB,mBAARZ,EACT,MAAM,IAAIa,UArIQ,uBA+IpB,SAASC,EAAWC,GAClB,IAAIC,EAAOb,EACPc,EAAUb,EAKd,OAHAD,EAAWC,SACXK,EAAiBM,EACjBT,EAASN,EAAK1D,MAAM2E,EAASD,GAqB/B,SAASE,EAAaH,GACpB,IAAII,EAAoBJ,EAAOP,EAM/B,YAAO,IAACA,GAAoDP,GAArBkB,GACpCA,EAAoB,GAAOR,GAAiCN,GANrCU,EAAON,EASnC,SAASW,IACP,IAAIL,EAAO3C,IACX,GAAI8C,EAAaH,GACf,OAAOM,EAAaN,GAGtBR,EAAUe,WAAWF,EAzBvB,SAAuBL,GACrB,IAEIT,EAASL,GAFWc,EAAOP,GAI/B,OAAOG,EAASrB,EAAUgB,EAAQD,GAHRU,EAAON,IAGkCH,EALrE,CAyBmDS,IAGnD,SAASM,EAAaN,GAKpB,OAJAR,SAIIK,GAAYT,EACPW,EAAWC,IAEpBZ,EAAWC,SACJE,GAeT,SAASiB,IACP,IAAIR,EAAO3C,IACPoD,EAAaN,EAAaH,GAM9B,GAJAZ,EAAWrE,UACXsE,EAAW1C,KACX8C,EAAeO,EAEXS,EAAY,CACd,YAAIjB,EACF,OAvEN,SAAqBQ,GAMnB,OAJAN,EAAiBM,EAEjBR,EAAUe,WAAWF,EAAcnB,GAE5BS,EAAUI,EAAWC,GAAQT,EANtC,CAuEyBE,GAErB,GAAIG,EAGF,OADAJ,EAAUe,WAAWF,EAAcnB,GAC5Ba,EAAWN,GAMtB,YAAO,IAHHD,IACFA,EAAUe,WAAWF,EAAcnB,IAE9BK,EAIT,OAxGAL,EAAOP,EAASO,IAAS,EACrBT,EAASU,KACXQ,IAAYR,EAAQQ,QAEpBL,GADAM,EAAS,YAAaT,GACHf,EAAUO,EAASQ,EAAQG,UAAY,EAAGJ,GAAQI,EACrEO,EAAW,aAAcV,IAAYA,EAAQU,SAAWA,GAiG1DW,EAAUE,OAnCV,oBACMlB,GACFmB,aAAanB,GAGfJ,EAAWK,EAAeJ,EAAWG,OADrCE,EAAiB,IAgCnBc,EAAUI,MA5BV,WACE,YAAO,IAAApB,EAAwBD,EAASe,EAAajD,MA4BhDmD,K,wDCzPT,GAOA,IAAIK,EAAU,WACV,GAAmB,oBAARC,IACP,OAAOA,IASX,SAASC,EAASC,EAAKxF,GACnB,IAAI+D,GAAU,EAQd,OAPAyB,EAAIC,KAAK,SAAUC,EAAO9E,GACtB,OAAI8E,EAAM,KAAO1F,IACb+D,EAASnD,QAKVmD,EAEX,OAIIvD,OAAOmF,eAAeC,EAAQpE,UAAW,OAAQ,CAI7CqE,IAAK,WACD,OAAO1E,KAAK2E,YAAYtG,QAE5BuG,YAAWA,EACXC,cAAaA,IAMjBJ,EAAQpE,UAAUqE,IAAM,SAAU7F,GAC9B,IAAIY,EAAQ2E,EAASpE,KAAK2E,YAAa9F,GACnC0F,EAAQvE,KAAK2E,YAAYlF,GAC7B,OAAO8E,GAASA,EAAM,IAO1BE,EAAQpE,UAAUyE,IAAM,SAAUjG,EAAKa,GACnC,IAAID,EAAQ2E,EAASpE,KAAK2E,YAAa9F,IAClCY,EACDO,KAAK2E,YAAYlF,GAAO,GAAKC,EAG7BM,KAAK2E,YAAYnG,KAAK,CAACK,EAAKa,KAOpC+E,EAAQpE,UAAU0E,OAAS,SAAUlG,GACjC,IAAImG,EAAUhF,KAAK2E,YACflF,EAAQ2E,EAASY,EAASnG,IACzBY,GACDuF,EAAQC,OAAOxF,EAAO,IAO9BgF,EAAQpE,UAAU6E,IAAM,SAAUrG,GAC9B,SAAUuF,EAASpE,KAAK2E,YAAa9F,IAKzC4F,EAAQpE,UAAU8E,MAAQ,WACtBnF,KAAK2E,YAAYM,OAAO,IAO5BR,EAAQpE,UAAUd,QAAU,SAAU6F,EAAUC,YACxCA,IAAkBA,EAAM,MAC5B,IAAK,IAAIC,EAAK,EAAGC,EAAKvF,KAAK2E,YAAaW,EAAKC,EAAGlH,OAAQiH,IAAM,CAC1D,IAAIf,EAAQgB,EAAGD,GACfF,EAAStG,KAAKuG,EAAKd,EAAM,GAAIA,EAAM,MAGpCE,EAxEP,SAASA,IACLzE,KAAK2E,YAAc,IAxBjB,GAsGVa,EAA8B,oBAAX/H,QAA8C,oBAAbgI,UAA4BhI,OAAOgI,WAAaA,SAGpGC,WACWrE,GAA0BA,EAAOK,OAASA,KAC1CL,EAES,oBAATE,MAAwBA,KAAKG,OAASA,KACtCH,KAEW,oBAAX9D,QAA0BA,OAAOiE,OAASA,KAC1CjE,OAGJwC,SAAS,cAATA,GASP0F,EACqC,mBAA1BC,sBAIAA,sBAAsBC,KAAKH,GAE/B,SAAUN,GAAY,OAAOxB,WAAW,WAAc,OAAOwB,EAASzE,KAAKD,QAAW,IAAO,KAIpGoF,EAAkB,EAoElBC,EAAiB,CAAC,MAAO,QAAS,SAAU,OAAQ,QAAS,SAAU,OAAQ,UAE/EC,EAAwD,oBAArBC,iBAInCC,GAwCAA,EAAyB7F,UAAU8F,YAAc,SAAUC,IACjDpG,KAAKqG,WAAWC,QAAQF,IAC1BpG,KAAKqG,WAAW7H,KAAK4H,GAGpBpG,KAAKuG,YACNvG,KAAKwG,YASbN,EAAyB7F,UAAUoG,eAAiB,SAAUL,GAC1D,IAAIM,EAAY1G,KAAKqG,WACjB5G,EAAQiH,EAAUJ,QAAQF,IAEzB3G,GACDiH,EAAUzB,OAAOxF,EAAO,IAGvBiH,EAAUrI,QAAU2B,KAAKuG,YAC1BvG,KAAK2G,eASbT,EAAyB7F,UAAUuG,QAAU,WACnB5G,KAAK6G,oBAIvB7G,KAAK4G,WAWbV,EAAyB7F,UAAUwG,iBAAmB,WAElD,IAAIC,EAAkB9G,KAAKqG,WAAWU,OAAO,SAAUX,GACnD,OAAOA,EAASY,eAAgBZ,EAASa,cAQ7C,OADAH,EAAgBvH,QAAQ,SAAU6G,GAAY,OAAOA,EAASc,oBAC9B,EAAzBJ,EAAgBzI,QAQ3B6H,EAAyB7F,UAAUmG,SAAW,WAGrChB,IAAaxF,KAAKuG,aAMvBd,SAAS0B,iBAAiB,gBAAiBnH,KAAKoH,kBAChD3J,OAAO0J,iBAAiB,SAAUnH,KAAK4G,SACnCZ,GACAhG,KAAKqH,mBAAqB,IAAIpB,iBAAiBjG,KAAK4G,SACpD5G,KAAKqH,mBAAmBC,QAAQ7B,SAAU,CACtC8B,YAAWA,EACXC,WAAUA,EACVC,eAAcA,EACdC,SAAQA,MAIZjC,SAAS0B,iBAAiB,qBAAsBnH,KAAK4G,SACrD5G,KAAK2H,yBAET3H,KAAKuG,gBAQTL,EAAyB7F,UAAUsG,YAAc,WAGxCnB,GAAcxF,KAAKuG,aAGxBd,SAASmC,oBAAoB,gBAAiB5H,KAAKoH,kBACnD3J,OAAOmK,oBAAoB,SAAU5H,KAAK4G,SACtC5G,KAAKqH,oBACLrH,KAAKqH,mBAAmBQ,aAExB7H,KAAK2H,sBACLlC,SAASmC,oBAAoB,qBAAsB5H,KAAK4G,SAE5D5G,KAAKqH,mBAAqB,KAC1BrH,KAAK2H,wBACL3H,KAAKuG,gBASTL,EAAyB7F,UAAU+G,iBAAmB,SAAU7B,GAC5D,IAAIuC,EAAKvC,EAAGwC,aAAcA,WAAeD,EAAgB,GAAKA,EAEvC/B,EAAezB,KAAK,SAAUzF,GACjD,SAAUkJ,EAAazB,QAAQzH,MAG/BmB,KAAK4G,WAQbV,EAAyB8B,YAAc,WAInC,OAHKhI,KAAKiI,YACNjI,KAAKiI,UAAY,IAAI/B,GAElBlG,KAAKiI,WAOhB/B,EAAyB+B,UAAY,KAC9B/B,GA1LP,SAASA,IAMLlG,KAAKuG,cAMLvG,KAAK2H,wBAML3H,KAAKqH,mBAAqB,KAM1BrH,KAAKqG,WAAa,GAClBrG,KAAKoH,iBAAmBpH,KAAKoH,iBAAiBvB,KAAK7F,MACnDA,KAAK4G,QAjGb,SAAmBxB,EAAU8C,GACzB,IAAIC,KAAqBC,KAAsBtF,EAAe,EAO9D,SAASuF,IACDF,IACAA,KACA/C,KAEAgD,GACAE,IAUR,SAASC,IACL5C,EAAwB0C,GAO5B,SAASC,IACL,IAAIE,EAAY7H,KAAKD,MACrB,GAAIyH,EAAa,CAEb,GAAIK,EAAY1F,EAAegD,EAC3B,OAMJsC,UAIAA,IADAD,MAEAvE,WAAW2E,EAAiBL,GAEhCpF,EAAe0F,EAEnB,OAAOF,EApDX,CAiGgCtI,KAAK4G,QAAQf,KAAK7F,MAzC9B,IAmNpB,IAAIyI,EAAqB,SAAWrI,EAAQsI,GACxC,IAAK,IAAIpD,EAAK,EAAGC,EAAKlG,OAAOC,KAAKoJ,GAAQpD,EAAKC,EAAGlH,OAAQiH,IAAM,CAC5D,IAAIzG,EAAM0G,EAAGD,GACbjG,OAAOmF,eAAepE,EAAQvB,EAAK,CAC/Ba,MAAOgJ,EAAM7J,GACb+F,YAAWA,EACX+D,UAASA,EACT9D,cAAaA,IAGrB,OAAOzE,GASPwI,EAAc,SAAWxI,GAOzB,OAHkBA,GAAUA,EAAOyI,eAAiBzI,EAAOyI,cAAcC,aAGnDpD,GAItBqD,EAAYC,EAAe,EAAG,EAAG,EAAG,GAOxC,SAASC,EAAQvJ,GACb,OAAOwJ,WAAWxJ,IAAU,EAShC,SAASyJ,EAAeC,GAEpB,IADA,IAAIC,EAAY,GACP/D,EAAK,EAAGA,EAAKlH,UAAUC,OAAQiH,IACpC+D,EAAU/D,EAAK,GAAKlH,UAAUkH,GAElC,OAAO+D,EAAUC,OAAO,SAAUC,EAAMC,GAEpC,OAAOD,EAAON,EADFG,EAAO,UAAYI,EAAW,YAE3C,GA0GP,IAAIC,EAGkC,oBAAvBC,mBACA,SAAUtJ,GAAU,OAAOA,aAAkBwI,EAAYxI,GAAQsJ,oBAKrE,SAAUtJ,GAAU,OAAQA,aAAkBwI,EAAYxI,GAAQuJ,YAC3C,mBAAnBvJ,EAAOwJ,SAiBtB,SAASC,EAAezJ,GACpB,OAAKoF,EAGDiE,EAAqBrJ,GAhH7B,SAA2BA,GACvB,IAAI0J,EAAO1J,EAAOwJ,UAClB,OAAOZ,EAAe,EAAG,EAAGc,EAAKC,MAAOD,EAAKE,QAFjD,CAiHiC5J,GAvGjC,SAAmCA,GAG/B,IAAI6J,EAAc7J,EAAO6J,YAAaC,EAAe9J,EAAO8J,aAS5D,IAAKD,IAAgBC,EACjB,OAAOnB,EAEX,IAAIK,EAASR,EAAYxI,GAAQ+J,iBAAiB/J,GAC9CgK,EA3CR,SAAqBhB,GAGjB,IAFA,IACIgB,EAAW,GACN9E,EAAK,EAAG+E,EAFD,CAAC,MAAO,QAAS,SAAU,QAED/E,EAAK+E,EAAYhM,OAAQiH,IAAM,CACrE,IAAIkE,EAAWa,EAAY/E,GACvB5F,EAAQ0J,EAAO,WAAaI,GAChCY,EAASZ,GAAYP,EAAQvJ,GAEjC,OAAO0K,EARX,CA2C+BhB,GACvBkB,EAAWF,EAASG,KAAOH,EAASI,MACpCC,EAAUL,EAASM,IAAMN,EAASO,OAKlCZ,EAAQd,EAAQG,EAAOW,OAAQC,EAASf,EAAQG,EAAOY,QAqB3D,GAlByB,eAArBZ,EAAOwB,YAOHlJ,KAAKmJ,MAAMd,EAAQO,KAAcL,IACjCF,GAASZ,EAAeC,EAAQ,OAAQ,SAAWkB,GAEnD5I,KAAKmJ,MAAMb,EAASS,KAAaP,IACjCF,GAAUb,EAAeC,EAAQ,MAAO,UAAYqB,KAoDhE,SAA2BrK,GACvB,OAAOA,IAAWwI,EAAYxI,GAAQqF,SAASqF,gBADnD,CA7C2B1K,GAAS,CAK5B,IAAI2K,EAAgBrJ,KAAKmJ,MAAMd,EAAQO,GAAYL,EAC/Ce,EAAiBtJ,KAAKmJ,MAAMb,EAASS,GAAWP,EAMpB,IAA5BxI,KAAKuJ,IAAIF,KACThB,GAASgB,GAEoB,IAA7BrJ,KAAKuJ,IAAID,KACThB,GAAUgB,GAGlB,OAAOhC,EAAeoB,EAASG,KAAMH,EAASM,IAAKX,EAAOC,GA0CnDkB,CAA0B9K,GALtB2I,EAuCf,SAASC,EAAemC,EAAGC,EAAGrB,EAAOC,GACjC,MAAO,CAAEmB,EAAGA,EAAGC,EAAGA,EAAGrB,MAAOA,EAAOC,OAAQA,GAO/C,IAAIqB,GAiCAA,EAAkBhL,UAAUiL,SAAW,WACnC,IAAIC,EAAO1B,EAAe7J,KAAKI,QAE/B,OADAJ,KAAKwL,aAAeD,GACPxB,QAAU/J,KAAKyL,gBACxBF,EAAKvB,SAAWhK,KAAK0L,iBAQ7BL,EAAkBhL,UAAUsL,cAAgB,WACxC,IAAIJ,EAAOvL,KAAKwL,aAGhB,OAFAxL,KAAKyL,eAAiBF,EAAKxB,MAC3B/J,KAAK0L,gBAAkBH,EAAKvB,OACrBuB,GAEJF,GA7CP,SAASA,EAAkBjL,GAMvBJ,KAAKyL,eAAiB,EAMtBzL,KAAK0L,gBAAkB,EAMvB1L,KAAKwL,aAAexC,EAAe,EAAG,EAAG,EAAG,GAC5ChJ,KAAKI,OAASA,EA6BtB,IAAIwL,EAOA,SAA6BxL,EAAQyL,GACjC,IAAIC,EA/FZ,SAA4BvG,GACxB,IAAI4F,EAAI5F,EAAG4F,EAAGC,EAAI7F,EAAG6F,EAAGrB,EAAQxE,EAAGwE,MAAOC,EAASzE,EAAGyE,OAElD+B,EAAoC,oBAApBC,gBAAkCA,gBAAkB3M,OACpEkM,EAAOlM,OAAO4M,OAAOF,EAAO1L,WAShC,OAPAoI,EAAmB8C,EAAM,CACrBJ,EAAGA,EAAGC,EAAGA,EAAGrB,MAAOA,EAAOC,OAAQA,EAClCU,IAAKU,EACLZ,MAAOW,EAAIpB,EACXY,OAAQX,EAASoB,EACjBb,KAAMY,IAEHI,EAbX,CA+F6CM,GAOrCpD,EAAmBzI,KAAM,CAAEI,OAAQA,EAAQ0L,YAAaA,KAK5DI,GAsCAA,EAAkB7L,UAAUiH,QAAU,SAAUlH,GAC5C,IAAKhC,UAAUC,OACX,MAAM,IAAI8E,UAAU,4CAGxB,GAAuB,oBAAZgJ,SAA6BA,mBAAmB9M,OAA3D,CAGA,KAAMe,aAAkBwI,EAAYxI,GAAQ+L,SACxC,MAAM,IAAIhJ,UAAU,yCAExB,IAAIiJ,EAAepM,KAAKqM,cAEpBD,EAAalH,IAAI9E,KAGrBgM,EAAatH,IAAI1E,EAAQ,IAAIiL,EAAkBjL,IAC/CJ,KAAKsM,YAAYnG,YAAYnG,MAE7BA,KAAKsM,YAAY1F,aAQrBsF,EAAkB7L,UAAUkM,UAAY,SAAUnM,GAC9C,IAAKhC,UAAUC,OACX,MAAM,IAAI8E,UAAU,4CAGxB,GAAuB,oBAAZgJ,SAA6BA,mBAAmB9M,OAA3D,CAGA,KAAMe,aAAkBwI,EAAYxI,GAAQ+L,SACxC,MAAM,IAAIhJ,UAAU,yCAExB,IAAIiJ,EAAepM,KAAKqM,cAEnBD,EAAalH,IAAI9E,KAGtBgM,EAAarH,OAAO3E,GACfgM,EAAa7C,MACdvJ,KAAKsM,YAAY7F,eAAezG,SAQxCkM,EAAkB7L,UAAUwH,WAAa,WACrC7H,KAAKwM,cACLxM,KAAKqM,cAAclH,QACnBnF,KAAKsM,YAAY7F,eAAezG,OAQpCkM,EAAkB7L,UAAU2G,aAAe,WACvC,IAAIyF,EAAQzM,KACZA,KAAKwM,cACLxM,KAAKqM,cAAc9M,QAAQ,SAAUmN,GAC7BA,EAAYpB,YACZmB,EAAME,oBAAoBnO,KAAKkO,MAU3CR,EAAkB7L,UAAU6G,gBAAkB,WAE1C,GAAKlH,KAAKiH,YAAV,CAGA,IAAI5B,EAAMrF,KAAK4M,aAEX5H,EAAUhF,KAAK2M,oBAAoBE,IAAI,SAAUH,GACjD,OAAO,IAAId,EAAoBc,EAAYtM,OAAQsM,EAAYf,mBAEnE3L,KAAK8M,UAAUhO,KAAKuG,EAAKL,EAASK,GAClCrF,KAAKwM,gBAOTN,EAAkB7L,UAAUmM,YAAc,WACtCxM,KAAK2M,oBAAoB1H,OAAO,IAOpCiH,EAAkB7L,UAAU4G,UAAY,WACpC,OAAyC,EAAlCjH,KAAK2M,oBAAoBtO,QAE7B6N,GAvIP,SAASA,EAAkB9G,EAAU2H,EAAYC,GAc7C,GAPAhN,KAAK2M,oBAAsB,GAM3B3M,KAAKqM,cAAgB,IAAInI,EACD,mBAAbkB,EACP,MAAM,IAAIjC,UAAU,2DAExBnD,KAAK8M,UAAY1H,EACjBpF,KAAKsM,YAAcS,EACnB/M,KAAK4M,aAAeI,EA0H5B,IAAItG,EAA+B,oBAAZuG,QAA0B,IAAIA,QAAY,IAAI/I,EAKjEgJ,EAOA,SAASA,EAAe9H,GACpB,KAAMpF,gBAAgBkN,GAClB,MAAM,IAAI/J,UAAU,sCAExB,IAAK/E,UAAUC,OACX,MAAM,IAAI8E,UAAU,4CAExB,IAAI4J,EAAa7G,EAAyB8B,cACtC5B,EAAW,IAAI8F,EAAkB9G,EAAU2H,EAAY/M,MAC3D0G,EAAU5B,IAAI9E,KAAMoG,IAK5B,CACI,UACA,YACA,cACF7G,QAAQ,SAAU4N,GAChBD,EAAe7M,UAAU8M,GAAU,WAC/B,IAAI5H,EACJ,OAAQA,EAAKmB,EAAUhC,IAAI1E,OAAOmN,GAAQvO,MAAM2G,EAAInH,cAI5D,IAAIqB,WAEWiG,EAASwH,eACTxH,EAASwH,eAEbA,EAGI,Q,+BCv5Bf7P,EAAOD,QARY,SAAUgQ,GAC3B,OAAOA,EACEjL,QAAQ,SAAU,SAAUkL,GAC3B,MAAO,IAAMA,EAAMC,gBAEpBA,gB,gBCLX,IAAIC,EAAqB,EAAQ,IACjClQ,EAAOD,QAAU,IAAImQ,G,gBCDrB,IAAIC,EAAa,EAAQ,IACrBC,EAAO,EAAQ,GACflN,EAAOkN,EAAKlN,KACZJ,EAAasN,EAAKtN,WAClBzB,EAAU+O,EAAK/O,QAQnB,SAAS6O,IACL,IAAI9P,OAAOiQ,WACP,MAAM,IAAIC,MAAM,8DAGpB3N,KAAK4N,QAAU,GACf5N,KAAK6N,oBAAsBpQ,OAAOiQ,WAAW,YAAYI,QAG7DP,EAAmBlN,UAAY,CAE3B0N,YAAcR,EAadS,SAAW,SAASlO,EAAG0C,EAASyL,GAC5B,IAAIL,EAAkB5N,KAAK4N,QACvBM,EAAkBD,GAAiBjO,KAAK6N,mBAoB5C,OAlBID,EAAQ9N,KACR8N,EAAQ9N,GAAK,IAAI0N,EAAW1N,EAAGoO,IAIhC/N,EAAWqC,KACVA,EAAU,CAAE6K,MAAQ7K,IAEpB9D,EAAQ8D,KACRA,EAAU,CAACA,IAEfjC,EAAKiC,EAAS,SAAS2L,GACfhO,EAAWgO,KACXA,EAAU,CAAEd,MAAQc,IAExBP,EAAQ9N,GAAGsO,WAAWD,KAGnBnO,MASXqO,WAAa,SAASvO,EAAGqO,GACrB,IAAItO,EAAQG,KAAK4N,QAAQ9N,GAYzB,OAVGD,IACIsO,EACCtO,EAAMyO,cAAcH,IAGpBtO,EAAMsF,eACCnF,KAAK4N,QAAQ9N,KAIrBE,OAIf3C,EAAOD,QAAUmQ,G,gBCpFjB,IAAIgB,EAAe,EAAQ,IACvBhO,EAAO,EAAQ,GAAUA,KAS7B,SAASiN,EAAW3N,EAAOqO,GACvBlO,KAAKH,MAAQA,EACbG,KAAKkO,gBAAkBA,EACvBlO,KAAKwO,SAAW,GAChBxO,KAAKyO,IAAMhR,OAAOiQ,WAAW7N,GAE7B,IAAI0B,EAAOvB,KACXA,KAAK0O,SAAW,SAASD,GAErBlN,EAAKkN,IAAMA,EAAIE,eAAiBF,EAChClN,EAAKqN,UAET5O,KAAKyO,IAAII,YAAY7O,KAAK0O,UAG9BlB,EAAWnN,UAAY,CAEnByO,WAAatB,EAWbY,WAAa,SAASD,GAClB,IAAIY,EAAK,IAAIR,EAAaJ,GAC1BnO,KAAKwO,SAAShQ,KAAKuQ,GAEnB/O,KAAK8N,WAAaiB,EAAGC,MAQzBV,cAAgB,SAASH,GACrB,IAAIK,EAAWxO,KAAKwO,SACpBjO,EAAKiO,EAAU,SAASS,EAAG9Q,GACvB,GAAG8Q,EAAEC,OAAOf,GAER,OADAc,EAAEE,WACMX,EAASvJ,OAAO9G,EAAE,MAUtC2P,QAAU,WACN,OAAO9N,KAAKyO,IAAIX,SAAW9N,KAAKkO,iBAMpC/I,MAAQ,WACJ5E,EAAKP,KAAKwO,SAAU,SAASL,GACzBA,EAAQgB,YAEZnP,KAAKyO,IAAIW,eAAepP,KAAK0O,UAC7B1O,KAAKwO,SAASnQ,OAAS,GAM3BuQ,OAAS,WACL,IAAIS,EAASrP,KAAK8N,UAAY,KAAO,MAErCvN,EAAKP,KAAKwO,SAAU,SAASL,GACzBA,EAAQkB,SAKpBhS,EAAOD,QAAUoQ,G,cClFjB,SAASe,EAAa/L,IAClBxC,KAAKwC,QAAUA,GACN8M,YAActP,KAAKuP,QAGhChB,EAAalO,UAAY,CAErB0N,YAAcQ,EAOdgB,MAAQ,WACDvP,KAAKwC,QAAQ+M,OACZvP,KAAKwC,QAAQ+M,QAEjBvP,KAAKwP,gBAQTR,GAAK,WACAhP,KAAKwP,aAAexP,KAAKuP,QAC1BvP,KAAKwC,QAAQ6K,OAASrN,KAAKwC,QAAQ6K,SAQvCoC,IAAM,WACFzP,KAAKwC,QAAQkN,SAAW1P,KAAKwC,QAAQkN,WASzCP,QAAU,WACNnP,KAAKwC,QAAQ2M,QAAUnP,KAAKwC,QAAQ2M,UAAYnP,KAAKyP,OAUzDP,OAAS,SAAS9O,GACd,OAAOJ,KAAKwC,UAAYpC,GAAUJ,KAAKwC,QAAQ6K,QAAUjN,IAKjE/C,EAAOD,QAAUmR,G,wEChDFoB,EAzBM,CACnBC,WAAUA,EACVC,YAAa,KACbC,iBAAkB,EAClBC,YAAa,KACbC,aAAc,EACdC,UAAW,EACXC,UAASA,EACTC,aAAYA,EACZC,aAAYA,EACZC,eAAgB,GAChBC,WAAY,KACZC,UAAW,KACXC,WAAUA,EACVC,WAAY,KACZC,YAAa,KACbC,WAAY,KACZC,UAAW,KACXC,QAAOA,EACPC,SAAQA,EACRC,YAAa,CAAEC,OAAQ,EAAGC,OAAQ,EAAGC,KAAM,EAAGC,KAAM,GACpDC,WAAY,GACZC,WAAY,G,isBCnBuB,SAAxBC,EAAwBC,GAInC,IAHA,IAAIC,EAAiB,GACjBC,EAAaC,EAAeH,GAC5BI,EAAWC,EAAaL,GACnBM,EAAaJ,EAAYI,EAAaF,EAAUE,IACnDN,EAAKlB,eAAe/J,QAAQuL,GAAc,GAC5CL,EAAehT,KAAKqT,GAGxB,OAAOL,EA+Be,SAAXM,EAAWC,GAAI,OAAKA,GAAQA,EAAKC,aAAgB,EACrC,SAAZC,EAAYF,GAAI,OAAKA,GAAQA,EAAKG,cAAiB,EAC/B,SAApBC,EAAqBpB,EAAD,GAA0C,IACrEqB,EAAOC,EAAOC,EAAGC,EADwBC,EAA4B,6BAA1C,KAS/B,OAPAJ,EAAQrB,EAAYC,OAASD,EAAYG,KACzCmB,EAAQtB,EAAYE,OAASF,EAAYI,KACzCmB,EAAI5Q,KAAK+Q,MAAMJ,EAAOD,IACtBG,EAAa7Q,KAAKmJ,MAAU,IAAJyH,EAAU5Q,KAAKgR,KACtB,IACfH,EAAa,IAAM7Q,KAAKuJ,IAAIsH,IAG3BA,GAAc,IAAoB,GAAdA,GACpBA,GAAc,KAAqB,KAAdA,EAEf,OAES,KAAdA,GAAqBA,GAAc,IAC9B,aAELC,EACgB,IAAdD,GAAoBA,GAAc,IAC7B,KAEA,OAIJ,WAIgB,SAAZI,EAAYpB,GACvB,IAAIqB,KAWJ,OAVKrB,EAAKsB,WACJtB,EAAKuB,YAAcvB,EAAKvB,cAAgBuB,EAAKd,WAAa,EAC5DmC,MAEArB,EAAKd,YAAcc,EAAKwB,cACxBxB,EAAKvB,cAAgBuB,EAAKd,WAAac,EAAKwB,gBAE5CH,OAGGA,EAIoB,SAAhBI,EAAiBzB,EAAMjS,GAClC,IAAI2T,EAAY,GAEhB,OADA3T,EAAKC,QAAQ,SAAAV,GAAG,OAAKoU,EAAUpU,GAAO0S,EAAK1S,KACpCoU,EA2coB,SAAhBC,EAAiB3B,EAAM4B,GAAP,OAC3BA,EAAU7J,OAAO,SAAC5J,EAAOb,GAAR,OAAgBa,GAAS6R,EAAKvT,eAAea,QAC1D,KACAuU,QAAQC,MAAM,gBAAiB9B,GAyMR,SAAhB+B,EAAgB/B,GAC3B,OAAIA,EAAKgC,UAAYhC,EAAKsB,SACjB,EAEFtB,EAAKd,WA2DW,SAAZ+C,IAAY,QAEH,oBAAX/V,SACPA,OAAOgI,WACPhI,OAAOgI,SAASgO,eArzBb,IAwBM/B,EAAiB,SAAAH,GAAI,OAChCA,EAAKvB,aAAe0D,EAAiBnC,IAC1BK,EAAe,SAAAL,GAAI,OAAIA,EAAKvB,aAAe2D,EAAkBpC,IAC7DmC,EAAmB,SAAAnC,GAAI,OAClCA,EAAKuB,WACDpR,KAAKkS,MAAMrC,EAAKwB,aAAe,IACC,EAA/B5R,SAASoQ,EAAKsC,eAAqB,EAAI,GACxC,GACOF,EAAoB,SAAApC,GAAI,OACnCA,EAAKuB,WACDpR,KAAKkS,OAAOrC,EAAKwB,aAAe,GAAK,GACrC,GACgC,EAA/B5R,SAASoQ,EAAKsC,eAAqB,EAAI,GACxCtC,EAAKwB,cAucEe,EAAiB,SAACvC,EAAM9R,GACnC,IAAMsU,EAb2B,SAAAxC,GAKjC,IAJA,IAAI5P,EAAM4P,EAAKsB,SAA6B,EAAlBtB,EAAKd,WAAiBc,EAAKd,WACjDuD,EAAazC,EAAKsB,UAAgC,EAArBtB,EAAKwB,aAAoB,EACtDkB,EAAU1C,EAAKsB,UAAgC,EAArBtB,EAAKwB,aAAoB,EACnDmB,EAAU,GACPF,EAAarS,GAClBuS,EAAQ1V,KAAKwV,GACbA,EAAaC,EAAU1C,EAAK4C,eAC5BF,GAAWvS,KAAKG,IAAI0P,EAAK4C,eAAgB5C,EAAKwB,cAEhD,OAAOmB,EAV0B,CAaM3C,GACnC6C,EAAgB,EACpB,GAAI3U,EAAQsU,EAAWA,EAAW1V,OAAS,GACzCoB,EAAQsU,EAAWA,EAAW1V,OAAS,QAEvC,IAAK,IAAIgW,KAAKN,EAAY,CACxB,GAAItU,EAAQsU,EAAWM,GAAI,CACzB5U,EAAQ2U,EACR,MAEFA,EAAgBL,EAAWM,GAG/B,OAAO5U,GAEI6U,EAAgB,SAAA/C,GAC3B,IAAMgD,EAAehD,EAAKuB,WACtBvB,EAAKZ,WAAajP,KAAKkS,MAAMrC,EAAKwB,aAAe,GACjD,EACJ,GAAIxB,EAAKiD,aAAc,CACrB,IAAIC,EAEEC,EADYC,IAASC,YAAYrD,EAAKsD,SACnBC,iBAAiB,gBAoB1C,GAnBArW,MAAMsW,KAAKL,GAAQM,MAAM,SAAAC,GACvB,GAAK1D,EAAK2D,UASR,GAAID,EAAME,UAAYlD,EAAUgD,GAAS,GAAsB,EAAlB1D,EAAKX,UAEhD,OADA6D,EAAcQ,UAThB,GACEA,EAAMG,WAAab,EAAezC,EAASmD,GAAS,GAClC,EAAlB1D,EAAKX,UAGL,OADA6D,EAAcQ,KAUlB,OAAM,KAGHR,EACH,OAAO,EAET,IAAMY,OACJ9D,EAAK+D,IACD/D,EAAKd,WAAac,EAAKvB,aACvBuB,EAAKvB,aAGX,OADEtO,KAAKuJ,IAAIwJ,EAAYc,QAAQ9V,MAAQ4V,IAAiB,EAGxD,OAAO9D,EAAK4C,gBASHqB,EAAc,SAAAjE,GAQzB,IAAIF,EAAYoE,EAPhBvC,EAAc3B,EAAM,CAClB,OACA,gBACA,aACA,eACA,eAGF,IAAMmE,EAAgBnE,EAAKd,WAAa,EAAIc,EAAKwB,aAC5CxB,EAAK2D,SAGRO,EAAcC,EAAgBnE,EAAKb,YAFnCW,EAAasE,EAAepE,GAAQA,EAAKZ,WAI3C,IAAIiF,EAAQ,CACVC,QAAS,EACTC,WAAY,GACZC,iBAAkB,IAsCpB,OApCIxE,EAAKyE,aAUPJ,EAAQ,EAAH,GACAA,EADA,CAEHK,gBAXqB1E,EAAK2D,SAExB,oBAAsB3D,EAAKhH,KAAO,WADlC,eAAiBgH,EAAKhH,KAAO,gBAW/B2L,UATe3E,EAAK2D,SAElB,oBAAsB3D,EAAKhH,KAAO,WADlC,eAAiBgH,EAAKhH,KAAO,gBAS/B4L,YAPiB5E,EAAK2D,SAEpB,cAAgB3D,EAAKhH,KAAO,MAD5B,cAAgBgH,EAAKhH,KAAO,QAS5BgH,EAAK2D,SACPU,EAAK,IAAUrE,EAAKhH,KAEpBqL,EAAK,KAAWrE,EAAKhH,KAGrBgH,EAAK6E,OAAMR,EAAQ,CAAEC,QAAS,IAC9BxE,IAAYuE,EAAM7L,MAAQsH,GAC1BoE,IAAaG,EAAM5L,OAASyL,GAG5BhY,SAAWA,OAAO0J,kBAAoB1J,OAAO4Y,cAC1C9E,EAAK2D,SAGRU,EAAMU,UAAY/E,EAAKhH,KAAO,KAF9BqL,EAAMW,WAAahF,EAAKhH,KAAO,MAM5BqL,GAEIY,EAAqB,SAAAjF,GAChC2B,EAAc3B,EAAM,CAClB,OACA,gBACA,aACA,eACA,aACA,QACA,YAEF,IAAIqE,EAAQJ,EAAYjE,GAaxB,OAXIA,EAAKyE,cACPJ,EAAMG,iBACJ,qBAAuBxE,EAAKkF,MAAQ,MAAQlF,EAAKmF,QACnDd,EAAME,WAAa,aAAevE,EAAKkF,MAAQ,MAAQlF,EAAKmF,SAExDnF,EAAK2D,SACPU,EAAME,WAAa,OAASvE,EAAKkF,MAAQ,MAAQlF,EAAKmF,QAEtDd,EAAME,WAAa,QAAUvE,EAAKkF,MAAQ,MAAQlF,EAAKmF,QAGpDd,GAEIe,EAAe,SAAApF,GAC1B,GAAIA,EAAKgC,QACP,OAAO,EAGTL,EAAc3B,EAAM,CAClB,aACA,WACA,WACA,aACA,aACA,eACA,iBACA,aACA,YACA,gBACA,gBAhBgC,IAoC9BqF,EACAC,EAjBFhF,EAaEN,EAbFM,WACAiF,EAYEvF,EAZFuF,SACAjE,EAWEtB,EAXFsB,SACAC,EAUEvB,EAVFuB,WACArC,EASEc,EATFd,WACAsC,EAQExB,EARFwB,aACAoB,EAOE5C,EAPF4C,eACAxD,EAMEY,EANFZ,WACAJ,EAKEgB,EALFhB,UACAwG,EAIExF,EAJFwF,cACArG,EAGEa,EAHFb,YACA0F,EAEE7E,EAFF6E,KACAlB,EACE3D,EADF2D,SAQF,GAAIkB,GAA4B,IAApB7E,EAAKd,WACf,OAAO,EAGT,IAAIuG,EAAiB,EAoCrB,GAnCInE,GACFmE,GAAkBC,EAAa1F,GAG7Bd,EAAa0D,GAAmB,GACF1D,EAA9BoB,EAAasC,IAEb6C,IAAgCvG,EAAboB,EACfkB,GAAgBlB,EAAapB,GAC7BA,EAAa0D,IAGfrB,IACFkE,GAAkB7V,SAAS4R,EAAe,MAI1CtC,EAAa0D,GAAmB,GACF1D,EAA9BoB,EAAasC,IAEb6C,EAAiBjE,EAAetC,EAAa0D,GAE3CrB,IACFkE,EAAiB7V,SAAS4R,EAAe,KAS3C6D,EAHG1B,EAGUrD,EAAanB,GAAe,EAL1BsG,EAAiBtG,EAGnBmB,EAAalB,GAAc,EAJ5BqG,EAAiBrG,OAS3BoG,EAAwB,CAC1B,IAAIG,EACAC,EAAYxC,IAASC,YAAYkC,GAIrC,GAHAI,EAAmBrF,EAAaoF,EAAa1F,GAE7CqF,GADAC,EAAcM,GAAaA,EAAUC,WAAWF,KACK,EAA1BL,EAAYzB,WAAkB,OACrDtC,EAAqB,CACvBoE,EAAmBrE,EACfhB,EAAaoF,EAAa1F,GAC1BM,EACJgF,EAAcM,GAAaA,EAAUE,SAASH,GAE9C,IAAK,IAAIjC,EADT2B,EAAa,EACO3B,EAAQiC,EAAkBjC,IAC5C2B,GACEO,GACAA,EAAUE,SAASpC,IACnBkC,EAAUE,SAASpC,GAAOjD,YAE9B4E,GAAczV,SAASoQ,EAAKsC,eAC5B+C,GAAcC,IAAgBtG,EAAYsG,EAAY7E,aAAe,GAIzE,OAAO4E,GAGIK,EAAe,SAAA1F,GAC1B,OAAIA,EAAKgC,UAAYhC,EAAKsB,SACjB,EAELtB,EAAKwF,cACAxF,EAAKd,WAEPc,EAAKwB,cAAgBxB,EAAKuB,WAAa,EAAI,IAUvC6C,EAAiB,SAAApE,GAAI,OACZ,IAApBA,EAAKd,WACD,EACAwG,EAAa1F,GAAQA,EAAKd,WAAa6C,EAAc/B,IAC9C+F,EAAmB,SAAA/F,GAC9B,OAAIA,EAAKsF,YAActF,EAAKvB,aACtBuB,EAAKsF,YAActF,EAAKvB,aAAeuH,EAAchG,GAChD,OAEF,QAEHA,EAAKsF,YAActF,EAAKvB,aAAewH,EAAajG,GAC/C,QAEF,QAIEgG,EAAgB,SAAC,GAKxB,IAJJxE,EAII,EAJJA,aACAD,EAGI,EAHJA,WACAwC,EAEI,EAFJA,IACAzB,EACI,EADJA,cAGA,GAAIf,EAAY,CACd,IAAItI,GAASuI,EAAe,GAAK,EAAI,EAGrC,OAF8B,EAA1B5R,SAAS0S,KAAoBrJ,GAAS,GACtC8K,GAAOvC,EAAe,GAAM,IAAGvI,GAAS,GACrCA,EAET,OAAI8K,EACK,EAEFvC,EAAe,GAGXyE,EAAe,SAAC,GAKvB,IAJJzE,EAII,EAJJA,aACAD,EAGI,EAHJA,WACAwC,EAEI,EAFJA,IACAzB,EACI,EADJA,cAGA,GAAIf,EAAY,CACd,IAAIvI,GAAQwI,EAAe,GAAK,EAAI,EAGpC,OAF8B,EAA1B5R,SAAS0S,KAAoBtJ,GAAQ,GACpC+K,GAAOvC,EAAe,GAAM,IAAGxI,GAAQ,GACrCA,EAET,OAAI+K,EACKvC,EAAe,EAEjB,G,w9CCtyBe,SAAlB0E,EAAkBlG,GACtB,IAAImG,EAAaC,EAAaC,EAC1BrD,EAAc9U,EAuBlB,OAhBAmY,GAJEnY,EADE8R,EAAK+D,IACC/D,EAAKd,WAAa,EAAIc,EAAK9R,MAE3B8R,EAAK9R,OAEO,GAAKA,GAAS8R,EAAKd,WACrCc,EAAKuB,YACPyB,EAAe7S,KAAKkS,MAAMrC,EAAKwB,aAAe,GAC9C4E,GAAelY,EAAQ8R,EAAKvB,cAAgBuB,EAAKd,YAAe,EAE9DhR,EAAQ8R,EAAKvB,aAAeuE,EAAe,GAC3C9U,GAAS8R,EAAKvB,aAAeuE,IAE7BmD,OAGFA,EACEnG,EAAKvB,cAAgBvQ,GACrBA,EAAQ8R,EAAKvB,aAAeuB,EAAKwB,aAG9B,CACL,eAAc,EACd,eAAgB2E,EAChB,eAAgBC,EAChB,eAAgBC,EAChB,gBANiBnY,IAAU8R,EAAKvB,cAkDrB,SAAT6H,EAAUC,EAAOC,GAAR,OAAwBD,EAAMjZ,KAAOkZ,EA1EpD,IA2LaC,EAAb,oBAAA9X,IAAA,O,6FAAA,KAAAA,G,6LAAA,QAAAA,GAAA,8B,mOAAAA,EAA2B+X,IAAMC,e,qCAAjChY,EAAA,gCAEI,IAAMwU,EAjHW,SAAAnD,GACnB,IAAI1S,EACA6V,EAAS,GACTyD,EAAiB,GACjBC,EAAkB,GAClBC,EAAgBJ,IAAMK,SAASC,MAAMhH,EAAK8F,UAC1C5F,EAAaC,EAAeH,GAC5BI,EAAWC,EAAaL,GAiG5B,OA/FA0G,IAAMK,SAAS/Y,QAAQgS,EAAK8F,SAAU,SAACtF,EAAMtS,GAC3C,IAAIqY,EACAU,EAAsB,CACxBC,QAAS,WACThZ,MAAOA,EACP0U,eAAgB5C,EAAK4C,eACrBnE,aAAcuB,EAAKvB,cAQnB8H,GAHCvG,EAAKmH,UACLnH,EAAKmH,UAAkD,GAAtCnH,EAAKlB,eAAe/J,QAAQ7G,GAEtCsS,EAEA,8BAEV,IAAI4G,EArEc,SAAApH,GACpB,IAAIqE,EAAQ,GAoCZ,YAAO,IAlCHrE,EAAKwF,oBAA+BxF,EAAKwF,gBAC3CnB,EAAM7L,MAAQwH,EAAKZ,YAGjBY,EAAK6E,OACPR,EAAMpM,SAAW,WACb+H,EAAK2D,SACPU,EAAMlL,KAAO6G,EAAK9R,MAAQ0B,SAASoQ,EAAKb,aAExCkF,EAAMrL,MAAQgH,EAAK9R,MAAQ0B,SAASoQ,EAAKZ,YAE3CiF,EAAMC,QAAUtE,EAAKvB,eAAiBuB,EAAK9R,MAAQ,EAAI,EACvDmW,EAAME,WACJ,WACAvE,EAAKkF,MACL,MACAlF,EAAKmF,QACL,gBAEAnF,EAAKkF,MACL,MACAlF,EAAKmF,QACPd,EAAMG,iBACJ,WACAxE,EAAKkF,MACL,MACAlF,EAAKmF,QACL,gBAEAnF,EAAKkF,MACL,MACAlF,EAAKmF,SAGFd,EArCa,CAqEa,KAAKrE,EAAN,CAAY9R,WACtCmZ,EAAad,EAAMpP,MAAMmQ,WAAa,GACtCC,EAAerB,EAAgB,KAAKlG,EAAN,CAAY9R,WAoB9C,GAlBAiV,EAAOlW,KACLyZ,IAAMc,aAAajB,EAAO,CACxBjZ,IAAK,WAAagZ,EAAOC,EAAOrY,GAChC,aAAcA,EACdoZ,UAAWG,IAAWF,EAAcF,GACpCK,SAAU,KACV,eAAgBH,EAAa,gBAC7BlD,MAAO,GAAEsD,QAAS,QAAYpB,EAAMpP,MAAMkN,OAAS,GAA9C,GAAsD+C,GAC3DQ,QAAS,SAAAjZ,GACP4X,EAAMpP,OAASoP,EAAMpP,MAAMyQ,SAAWrB,EAAMpP,MAAMyQ,QAAQjZ,GACtDqR,EAAK6H,eACP7H,EAAK6H,cAAcZ,OAOvBjH,EAAKsB,eAAYtB,EAAK6E,KAAgB,CACxC,IAAIiD,EAAahB,EAAgB5Y,EAE/B4Z,GAAcpC,EAAa1F,IAC3B8G,IAAkB9G,EAAKwB,eAGZtB,IADX5S,GAAOwa,KAELvB,EAAQ/F,GAEV+G,EAAerB,EAAgB,KAAKlG,EAAN,CAAY9R,MAAOZ,KACjDsZ,EAAe3Z,KACbyZ,IAAMc,aAAajB,EAAO,CACxBjZ,IAAK,YAAcgZ,EAAOC,EAAOjZ,GACjC,aAAcA,EACdoa,SAAU,KACVJ,UAAWG,IAAWF,EAAcF,GACpC,eAAgBE,EAAa,gBAC7BlD,MAAO,KAAMkC,EAAMpP,MAAMkN,OAAS,GAA7B,GAAqC+C,GAC1CQ,QAAS,SAAAjZ,GACP4X,EAAMpP,OAASoP,EAAMpP,MAAMyQ,SAAWrB,EAAMpP,MAAMyQ,QAAQjZ,GACtDqR,EAAK6H,eACP7H,EAAK6H,cAAcZ,QAOzBH,IAAkB9G,EAAKwB,gBACzBlU,EAAMwZ,EAAgB5Y,GACZkS,IACRmG,EAAQ/F,GAEV+G,EAAerB,EAAgB,KAAKlG,EAAN,CAAY9R,MAAOZ,KACjDuZ,EAAgB5Z,KACdyZ,IAAMc,aAAajB,EAAO,CACxBjZ,IAAK,aAAegZ,EAAOC,EAAOjZ,GAClC,aAAcA,EACdoa,SAAU,KACVJ,UAAWG,IAAWF,EAAcF,GACpC,eAAgBE,EAAa,gBAC7BlD,MAAO,KAAMkC,EAAMpP,MAAMkN,OAAS,GAA7B,GAAqC+C,GAC1CQ,QAAS,SAAAjZ,GACP4X,EAAMpP,OAASoP,EAAMpP,MAAMyQ,SAAWrB,EAAMpP,MAAMyQ,QAAQjZ,GACtDqR,EAAK6H,eACP7H,EAAK6H,cAAcZ,WAS7BjH,EAAK+D,IACA6C,EAAemB,OAAO5E,EAAQ0D,GAAiBmB,UAE/CpB,EAAemB,OAAO5E,EAAQ0D,GAMtBoB,CAAaxZ,KAAK0I,OAD1B,EAE6C1I,KAAK0I,MACnD+Q,EAAc,CAAEC,aAHf,EAECA,aAC4BC,YAH7B,EAEeA,YAC2BC,aAH1C,EAE4BA,cAEnC,OACE,2BACEf,UAAU,cACVjD,MAAO5V,KAAK0I,MAAM0I,YACdqI,GAEH/E,OAXTxU,EAAA,G,87BCjMA,IAca2Z,GAAb,oBAAA3Z,IAAA,O,6FAAA,KAAAA,G,6LAAA,QAAAA,GAAA,8B,oOAAAA,EAA0B+X,IAAMC,e,qCAAhChY,EAAA,oCACesC,EAAStC,GAGpBA,EAAE4Z,iBACF9Z,KAAK0I,MAAMqR,aAAavX,KAL5B,+BAOW,WACHwX,EAtBY,SAAAzI,GAWlB,OARIA,EAAKsB,SACAnR,KAAKuY,KAAK1I,EAAKd,WAAac,EAAK4C,gBAGtCzS,KAAKuY,MAAM1I,EAAKd,WAAac,EAAKwB,cAAgBxB,EAAK4C,gBACvD,EARc,CAsBW,CACzB1D,WAAYzQ,KAAK0I,MAAM+H,WACvB0D,eAAgBnU,KAAK0I,MAAMyL,eAC3BpB,aAAc/S,KAAK0I,MAAMqK,aACzBF,SAAU7S,KAAK0I,MAAMmK,WALhB,EAW6C7S,KAAK0I,MACnD+Q,EAAc,CAAEC,aAZf,EAWCA,aAC4BC,YAZ7B,EAWeA,YAC2BC,aAZ1C,EAW4BA,cAE/BM,EAAOzb,MAAMG,MACf,KACAH,MAAMub,EAAW,GACdjb,KAAK,KACLob,MAAM,KACTtN,IAAI,SAAC1B,EAAGhN,GACR,IAAIic,EAAYjc,EAAI,EAAKuK,MAAMyL,eAC3BkG,EACFlc,EAAI,EAAKuK,MAAMyL,gBAAkB,EAAKzL,MAAMyL,eAAiB,GAC3D0E,EAAYG,IAAW,CACzB,eACE,EAAKtQ,MAAMsH,cAAgBoK,GAC3B,EAAK1R,MAAMsH,cAAgBqK,IAG3BC,EAAa,CACf7B,QAAS,OACThZ,MAAOtB,EACPgW,eAAgB,EAAKzL,MAAMyL,eAC3BnE,aAAc,EAAKtH,MAAMsH,cAGvBmJ,EAAU,EAAKY,aAAalU,KAAK,EAAMyU,GAC3C,OACE,wBAAIzb,IAAKV,EAAG0a,UAAWA,GACpBZ,IAAMc,aAAa,EAAKrQ,MAAM6R,aAAapc,GAAI,CAAEgb,eAKxD,OAAOlB,IAAMc,aAAa/Y,KAAK0I,MAAM8R,WAAWN,G,4UAAzC,CACLrB,UAAW7Y,KAAK0I,MAAM+R,WACnBhB,QApDTvZ,EAAA,G,2hECbO,IAAMwa,GAAb,oBAAAxa,IAAA,eAAAA,GAAA,WAAAA,GAAA,iCAAAA,EAA+B+X,IAAMC,eAArC,GAAAhY,EAAA,oCACesC,EAAStC,GAChBA,GACFA,EAAE4Z,iBAEJ9Z,KAAK0I,MAAMqR,aAAavX,EAAStC,KALrC,+BAQI,IAAIya,EAAc,CAAE,eAAc,EAAO,cAAa,GAClDC,EAAc5a,KAAK+Z,aAAalU,KAAK7F,KAAM,CAAEyY,QAAS,cAGvDzY,KAAK0I,MAAMmK,WACiB,IAA5B7S,KAAK0I,MAAMsH,cACVhQ,KAAK0I,MAAM+H,YAAczQ,KAAK0I,MAAMqK,gBAEtC4H,EAAY,qBACZC,EAAc,MAGhB,IAAIC,EAAiB,CACnBhc,IAAK,IACL,YAAa,OACbga,UAAWG,IAAW2B,GACtB/E,MAAO,CAAEkF,QAAS,SAClB3B,QAASyB,GAEPG,EAAc,CAChB/K,aAAchQ,KAAK0I,MAAMsH,aACzBS,WAAYzQ,KAAK0I,MAAM+H,YAkBzB,OAdIzQ,KAAK0I,MAAMsS,UACD/C,IAAMc,aAAa/Y,KAAK0I,MAAMsS,UAA9B,MACPH,EADO,GAEPE,IAIH,+BAAQlc,IAAI,IAAIkD,KAAK,UAAa8Y,GAC/B,IADH,gBAxCR3a,EAAA,GAmDa+a,GAAb,oBAAA/a,IAAA,eAAAA,GAAA,WAAAA,GAAA,iCAAAA,EAA+B+X,IAAMC,eAArC,GAAAhY,EAAA,oCACesC,EAAStC,GAChBA,GACFA,EAAE4Z,iBAEJ9Z,KAAK0I,MAAMqR,aAAavX,EAAStC,KALrC,+BAQI,IAAIgb,EAAc,CAAE,eAAc,EAAO,cAAa,GAClDC,EAAcnb,KAAK+Z,aAAalU,KAAK7F,KAAM,CAAEyY,QAAS,SAErD9F,EAAU3S,KAAK0I,SAClBwS,EAAY,qBACZC,EAAc,MAGhB,IAAIC,EAAiB,CACnBvc,IAAK,IACL,YAAa,OACbga,UAAWG,IAAWkC,GACtBtF,MAAO,CAAEkF,QAAS,SAClB3B,QAASgC,GAEPJ,EAAc,CAChB/K,aAAchQ,KAAK0I,MAAMsH,aACzBS,WAAYzQ,KAAK0I,MAAM+H,YAkBzB,OAdIzQ,KAAK0I,MAAM2S,UACDpD,IAAMc,aAAa/Y,KAAK0I,MAAM2S,UAA9B,MACPD,EADO,GAEPL,IAIH,+BAAQlc,IAAI,IAAIkD,KAAK,UAAaqZ,GAC/B,IADH,YApCRlb,EAAA,G,yzDC3BO,IAAMob,GAAb,WACE,WAAY5S,GAAO,a,6FAAA,cACjB,E,wEAAA,qBAAMA,KADW,iBAaF,SAAA6S,GAAG,OAAK,EAAKC,KAAOD,IAblB,2BAcD,SAAAA,GAAG,OAAK,EAAKE,MAAQF,IAdpB,uBAeL,WACZ,GAAI,EAAK7S,MAAMgT,gBAAkB,EAAKF,KAAM,CAC1C,IAAMzJ,EAAO,EAAKyJ,KAAKG,cAAV,uBACK,EAAKC,MAAM5L,aADhB,OAGb,EAAKwL,KAAK5F,MAAM5L,OAASiI,EAAUF,GAAQ,QApB5B,qCAuBS,WAG1B,GAFA,EAAK8J,UACL,EAAKnT,MAAMoT,QAAU,EAAKpT,MAAMoT,SAC5B,EAAKpT,MAAMgQ,SAAU,CACvB,IAAIqD,EAAezK,EAAsB,MACpC,EAAK5I,MAD8B,GAEnC,EAAKkT,QAEgB,EAAtBG,EAAa1d,SACf,EAAK2d,SAAS,SAAAC,GAAS,MAAK,CAC1B5L,eAAgB4L,EAAU5L,eAAeiJ,OAAOyC,MAE9C,EAAKrT,MAAMwT,YACb,EAAKxT,MAAMwT,WAAWH,OApCX,6BAyCC,WAClB,IAAIxK,EAAO,IAAEsD,QAAS,EAAK2G,KAAM1E,SAAU,EAAK2E,OAAU,EAAK/S,OAC/D,EAAKyT,YAAY5K,KAAY,WAC3B,EAAK6K,cACL,EAAK1T,MAAM2T,UAAY,EAAKC,SAAS,YAEX,gBAAxB,EAAK5T,MAAMgQ,WACb,EAAK6D,cAAgBC,YAAY,EAAKC,oBAAqB,MAE7D,EAAKC,GAAK,IAAIxP,KAAe,WACvB,EAAK0O,MAAMhM,WACb,EAAK+M,iBAAgBA,GACrB,EAAKC,eAAepe,KAClBoF,WAAW,kBAAM,EAAK+Y,mBAAmB,EAAKjU,MAAM+N,SAGtD,EAAKkG,oBAGT,EAAKD,GAAGpV,QAAQ,EAAKkU,MACrB/c,MAAM4B,UAAUd,QAAQT,KACtB2G,SAASqP,iBAAiB,gBAC1B,SAAAG,GACEA,EAAM4H,QAAU,EAAKnU,MAAMoU,aAAe,EAAKC,aAAe,KAC9D9H,EAAM+H,OAAS,EAAKtU,MAAMoU,aAAe,EAAKG,YAAc,OAI3Dxf,SAGDA,OAAO0J,iBACT1J,OAAO0J,iBAAiB,SAAU,EAAKwV,iBAEvClf,OAAO4Y,YAAY,WAAY,EAAKsG,oBA3ErB,gCA8EI,WACjB,EAAKO,sBACPlZ,aAAa,EAAKkZ,sBAEhB,EAAKX,eACPY,cAAc,EAAKZ,eAEjB,EAAKK,eAAeve,SACtB,EAAKue,eAAerd,QAAQ,SAAA6d,GAAK,OAAIpZ,aAAaoZ,KAClD,EAAKR,eAAiB,IAEpBnf,OAAO0J,iBACT1J,OAAOmK,oBAAoB,SAAU,EAAK+U,iBAE1Clf,OAAO4f,YAAY,WAAY,EAAKV,iBAElC,EAAKW,eACPH,cAAc,EAAKG,iBA/FJ,4CAkGgB,SAAAC,GAQjC,IAPA,IAAIhM,EAAO,IACTsD,QAAS,EAAK2G,KACd1E,SAAU,EAAK2E,OACZ8B,EAHG,GAIH,EAAK3B,OAEN4B,KACJ,MAAgBne,OAAOC,KAAK,EAAKoJ,OAAjC,eAAyC,CAApC,IAAI7J,EAAG,KACV,IAAK0e,EAAUvf,eAAea,GAAM,CAClC2e,KACA,MAEF,GAC4B,WAA1B,GAAOD,EAAU1e,KACS,mBAAnB0e,EAAU1e,IAIf0e,EAAU1e,KAAS,EAAK6J,MAAM7J,GAAM,CACtC2e,KACA,OAGJ,EAAKrB,YAAY5K,EAAMiM,EAAe,WAChC,EAAK5B,MAAM5L,cAAgBiI,IAAMK,SAASC,MAAMgF,EAAUlG,WAC5D,EAAKoG,YAAY,CACfhF,QAAS,QACThZ,MACEwY,IAAMK,SAASC,MAAMgF,EAAUlG,UAAYkG,EAAUxK,aACvD/C,aAAc,EAAK4L,MAAM5L,eAGzBuN,EAAUlB,SACZ,EAAKC,SAAS,UAEd,EAAKoB,MAAM,cAtIE,8BA0IE,WAGnB,GAFA,EAAKC,kBACL,EAAKjV,MAAMkV,UAAY,EAAKlV,MAAMkV,WAC9B,EAAKlV,MAAMgQ,SAAU,CACvB,IAAIqD,EAAezK,EAAsB,MACpC,EAAK5I,MAD8B,GAEnC,EAAKkT,QAEgB,EAAtBG,EAAa1d,SACf,EAAK2d,SAAS,SAAAC,GAAS,MAAK,CAC1B5L,eAAgB4L,EAAU5L,eAAeiJ,OAAOyC,MAE9C,EAAKrT,MAAMwT,YACb,EAAKxT,MAAMwT,WAAWH,IAO5B,EAAKK,gBA9JY,2BAgKD,SAAAoB,GACZ,EAAKK,iBAAiB,EAAKA,gBAAgB9Z,SAC/C,EAAK8Z,gBAAkBC,IAAS,kBAAM,EAAKC,aAAaP,IAAgB,IACxE,EAAKK,oBAnKY,wBAqKJ,WAA0B,IAAzBL,IAAyB,yDACvC,GAAK7I,IAASC,YAAY,EAAK6G,OAA/B,CACA,IAAIlK,EAAO,IACTsD,QAAS,EAAK2G,KACd1E,SAAU,EAAK2E,OACZ,EAAK/S,MAHF,GAIH,EAAKkT,OAEV,EAAKO,YAAY5K,EAAMiM,EAAe,WAChC,EAAK9U,MAAM2T,SAAU,EAAKC,SAAS,UAClC,EAAKoB,MAAM,YAGlB,EAAK1B,SAAS,CACZpM,WAAUA,IAEZ5L,aAAa,EAAKkZ,6BACX,EAAKA,wBAtLK,uBAwLL,SAAC3L,EAAMiM,EAAepY,GAClC,IAAI4Y,EJtHwB,SAAAzM,GAE9B,IAGIZ,EAHAF,EAAawH,IAAMK,SAASC,MAAMhH,EAAK8F,UACvC9G,EAAY7O,KAAKuY,KAAKnI,EAAS6C,IAASC,YAAYrD,EAAKsD,WACzDxD,EAAa3P,KAAKuY,KAAKnI,EAAS6C,IAASC,YAAYrD,EAAKuF,YAE9D,GAAKvF,EAAK2D,SAURvE,EAAaJ,MAVK,CAClB,IAAI0N,EAAmB1M,EAAKuB,YAA6C,EAA/B3R,SAASoQ,EAAKsC,eAExB,iBAAvBtC,EAAKsC,eACqB,MAAjCtC,EAAKsC,cAAcxR,OAAO,KAE1B4b,GAAoB1N,EAAY,KAElCI,EAAajP,KAAKuY,MAAM1J,EAAY0N,GAAoB1M,EAAKwB,cAI/D,IAAIrC,EACFiE,IAASC,YAAYrD,EAAKsD,UAC1B5C,EACE0C,IAASC,YAAYrD,EAAKsD,SAAS8G,cAAc,qBAEjDrL,EAAaI,EAAca,EAAKwB,aAChC/C,WACFuB,EAAKvB,aAA6BuB,EAAK2M,aAAe3M,EAAKvB,aACzDuB,EAAK+D,cAAO/D,EAAKvB,eACnBA,EAAeS,EAAa,EAAIc,EAAK2M,cAEvC,IAAI7N,EAAiBkB,EAAKlB,gBAAkB,GACxC0L,EAAezK,EACjB,CAAEtB,eAAcK,mBAGlBA,EAAeiJ,OAAOyC,GAEtB,IAAIH,EAAQ,CACVnL,aACAE,aACAJ,YACAc,aACArB,eACAU,cACAJ,aACAD,kBAOF,OAJyB,OAArBkB,EAAK1B,aAAwB0B,EAAK8K,WACpCT,EAAK,YAAkB,WAGlBA,EAnDuB,CIsHQrK,GAGpCA,EAAO,MAFPA,EAAO,MAAKA,EAAR,GAAiByM,EAAjB,CAA+BnM,WAAYmM,EAAahO,eAExD,CAAczF,KADDoM,EAAapF,KAE9B,IAAIH,EAAaoE,EAAYjE,IAE3BiM,GACAvF,IAAMK,SAASC,MAAM,EAAK7P,MAAM2O,YAC9BY,IAAMK,SAASC,MAAMhH,EAAK8F,YAE5B2G,EAAY,WAAiB5M,GAE/B,EAAK4K,SAASgC,EAAc5Y,KArMX,mBAwMT,WACR,GAAI,EAAKsD,MAAMqO,cAAf,CACE,IAAI1F,EAAa,EACf8M,EAAY,EACVC,EAAiB,GACjBC,EAAYpH,EAAa,MACxB,EAAKvO,MADkB,GAEvB,EAAKkT,MAFkB,CAG1BnL,WAAY,EAAK/H,MAAM2O,SAAShZ,UAE9BigB,EAAahL,EAAc,MAC1B,EAAK5K,MADoB,GAEzB,EAAKkT,MAFoB,CAG5BnL,WAAY,EAAK/H,MAAM2O,SAAShZ,UAElC,EAAKqK,MAAM2O,SAAS9X,QAAQ,SAAAuY,GAC1BsG,EAAe5f,KAAKsZ,EAAMpP,MAAMkN,MAAM7L,OACtCsH,GAAcyG,EAAMpP,MAAMkN,MAAM7L,QAElC,IAAK,IAAI5L,EAAI,EAAGA,EAAIkgB,EAAWlgB,IAC7BggB,GAAaC,EAAeA,EAAe/f,OAAS,EAAIF,GACxDkT,GAAc+M,EAAeA,EAAe/f,OAAS,EAAIF,GAE3D,IAAK,IAAIA,EAAI,EAAGA,EAAImgB,EAAYngB,IAC9BkT,GAAc+M,EAAejgB,GAE/B,IAAK,IAAIA,EAAI,EAAGA,EAAI,EAAKyd,MAAM5L,aAAc7R,IAC3CggB,GAAaC,EAAejgB,GAE9B,IAAIiT,EAAa,CACfrH,MAAOsH,EAAa,KACpB9G,MAAO4T,EAAY,MAErB,GAAI,EAAKzV,MAAMoK,WAAY,CACzB,IAAIyL,EAAe,GAAH,OAAMH,EAAe,EAAKxC,MAAM5L,cAAhC,MAChBoB,EAAW7G,KAAX,eAA0B6G,EAAW7G,KAArC,sBAAuDgU,EAAvD,YAEF,EAAKvC,SAAS,CACZ5K,mBArCJ,CAyCA,IAAIiH,EAAgBJ,IAAMK,SAASC,MAAM,EAAK7P,MAAM2O,UAC9C9F,EAAO,MAAK,EAAK7I,MAAb,GAAuB,EAAKkT,MAA5B,CAAmCnL,WAAY4H,IACrD5H,EAAawG,EAAa1F,GAAQ+B,EAAc/B,GAAQ8G,EACxDhH,EAAc,IAAM,EAAK3I,MAAMqK,aAAgBtC,EAC/CE,EAAa,IAAMF,EACnB0N,GACAxN,GACCsG,EAAa1F,GAAQ,EAAKqK,MAAM5L,cACjCqB,EACF,IACE,EAAK3I,MAAMoK,aACbqL,IAAc,IAAOxN,EAAaU,EAAc,KAAO,GAEzD,IAAID,EAAa,CACfrH,MAAOsH,EAAa,IACpB9G,KAAM4T,EAAY,KAEpB,EAAKnC,SAAS,CACZrL,WAAYA,EAAa,IACzBS,WAAYA,OArQG,2BAwQD,WAChB,IAAIoN,EAAS/Y,SAASqP,iBAAiB,oBACnC2J,EAAcD,EAAOngB,OACvBqgB,EAAc,EAChBjgB,MAAM4B,UAAUd,QAAQT,KAAK0f,EAAQ,SAAAG,GACnB,SAAVxQ,IAAU,QACZuQ,GAA8BD,GAAfC,GAA8B,EAAK/B,kBACtD,GAAKgC,EAAMC,QAEJ,CACL,IAAMC,EAAmBF,EAAMC,QAC/BD,EAAMC,QAAU,WACdC,IACAF,EAAMG,WAAWC,cALnBJ,EAAMC,QAAU,kBAAMD,EAAMG,WAAWC,SAQpCJ,EAAMK,SACL,EAAKtW,MAAMgQ,SACbiG,EAAMK,OAAS,WACb,EAAK5C,cACL,EAAKQ,eAAepe,KAClBoF,WAAW,EAAK+Y,gBAAiB,EAAKjU,MAAM+N,UAIhDkI,EAAMK,OAAS7Q,EACfwQ,EAAMM,QAAU,WACd9Q,IACA,EAAKzF,MAAMwW,iBAAmB,EAAKxW,MAAMwW,yBApShC,+BA0SG,WAGpB,IAFA,IAAInD,EAAe,GACbxK,EAAO,MAAK,EAAK7I,MAAb,GAAuB,EAAKkT,OAEhCnc,EAAQ,EAAKmc,MAAM5L,aACvBvQ,EAAQ,EAAKmc,MAAMnL,WAAa6C,EAAc/B,GAC9C9R,IAEA,GAAI,EAAKmc,MAAMvL,eAAe/J,QAAQ7G,GAAS,EAAG,CAChDsc,EAAavd,KAAKiB,GAClB,MAGJ,IACE,IAAIA,EAAQ,EAAKmc,MAAM5L,aAAe,EACtCvQ,IAAUwX,EAAa1F,GACvB9R,IAEA,GAAI,EAAKmc,MAAMvL,eAAe/J,QAAQ7G,GAAS,EAAG,CAChDsc,EAAavd,KAAKiB,GAClB,MAGsB,EAAtBsc,EAAa1d,QACf,EAAK2d,SAAS,SAAAJ,GAAK,MAAK,CACtBvL,eAAgBuL,EAAMvL,eAAeiJ,OAAOyC,MAE1C,EAAKrT,MAAMwT,YACb,EAAKxT,MAAMwT,WAAWH,IAGpB,EAAKQ,gBACPY,cAAc,EAAKZ,sBACZ,EAAKA,iBA3UC,wBA+UJ,SAAC9c,GAA+B,IAAxB0f,EAAwB,0DAOzC,EAAKzW,MALP0W,EAF2C,EAE3CA,SACAC,EAH2C,EAG3CA,aACAnD,EAJ2C,EAI3CA,WACAzF,EAL2C,EAK3CA,MACA6I,EAN2C,EAM3CA,YAGItP,EAAe,EAAK4L,MAAM5L,aATa,EJtNrB,SAAAuB,GAAQ,IAEhCgO,EAaEhO,EAbFgO,eACA3P,EAYE2B,EAZF3B,UACAwG,EAWE7E,EAXF6E,KACAvD,EAUEtB,EAVFsB,SACApT,EASE8R,EATF9R,MACAgR,EAQEc,EARFd,WACAJ,EAOEkB,EAPFlB,eACAqI,EAMEnH,EANFmH,SACA1I,EAKEuB,EALFvB,aACA8C,EAIEvB,EAJFuB,WACAqB,EAGE5C,EAHF4C,eACApB,EAEExB,EAFFwB,aACAyM,EACEjO,EADFiO,OAEF,GAAID,GAAkB3P,EAAW,MAAO,GACxC,IACE6P,EACAC,EACAC,EAHEC,EAAiBngB,EAIjBmc,EAAQ,GACViE,EAAY,GACd,GAAIzJ,EAAM,CACR,IAAKvD,IAAapT,EAAQ,GAAcgR,GAAThR,GAAsB,MAAO,GACxDA,EAAQ,EACVmgB,EAAiBngB,EAAQgR,EACPA,GAAThR,IACTmgB,EAAiBngB,EAAQgR,GAEvBiI,GAAYrI,EAAe/J,QAAQsZ,GAAkB,GACvDvP,EAAe7R,KAAKohB,GAOtBC,EAAY,CAAEjQ,YALdgM,EAAQ,CACNhM,WAAUA,EACVI,aAAc4P,EACdvP,yBAIFoP,EAAaG,GACQ,GACnBH,EAAaG,EAAiBnP,EACzBoC,EACIpC,EAAa0D,GAAmB,IACvCsL,EAAahP,EAAaA,EAAa0D,GAF1BsL,EAAa,IAGlB9M,EAAUpB,IAA0BvB,EAAjB4P,EAC7BA,EAAiBH,EAAazP,EACrB8C,GAAgCrC,GAAlBmP,GACvBA,EAAiB/M,EAAWpC,EAAaA,EAAa,EACtDgP,EAAa5M,EAAW,EAAIpC,EAAa,GACdA,GAAlBmP,IACTH,EAAaG,EAAiBnP,EACzBoC,EACIpC,EAAa0D,GAAmB,IAAGsL,EAAa,GAD1CA,EAAahP,EAAasC,GAG3C2M,EAAgB/I,EAAa,EAAD,GAAMpF,EAAN,CAAYM,WAAY+N,KACpDD,EAAYhJ,EAAa,EAAD,GAAMpF,EAAN,CAAYM,WAAY4N,KAC3C5M,IACC6M,IAAkBC,IAAWC,EAAiBH,GAClDC,EAAgBC,GAElBjH,GACErI,EAAeiJ,OACbhI,EAAsB,EAAD,GAAMC,EAAN,CAAYvB,aAAc4P,MAE9CJ,EAaHK,EAAY,CACVjQ,YAPFgM,EAAQ,CACNhM,WAAUA,EACVI,aAAcyP,EACdrO,WAAYoF,EAAmB,EAAD,GAAMjF,EAAN,CAAYhH,KAAMmV,KAChDrP,mBAIAL,aAAcyP,EACdrO,WAAYoE,EAAY,EAAD,GAAMjE,EAAN,CAAYhH,KAAMoV,KACzC/O,UAAW,MAhBbgL,EAAQ,CACN5L,aAAcyP,EACdrO,WAAYoE,EAAY,EAAD,GAAMjE,EAAN,CAAYhH,KAAMoV,KACzCtP,kBAiBN,MAAO,CAAEuL,QAAOiE,aAvFU,CIgOgB,IACtCpgB,SACG,EAAKiJ,MAF6B,GAGlC,EAAKkT,MAH6B,CAIrC9E,SAAU,EAAK2E,MACf+D,OAAQ,EAAK9W,MAAM8W,SAAWL,KAL1BvD,EAVuC,EAUvCA,MAAOiE,EAVgC,EAUhCA,UAOb,GAAKjE,EAAL,CACAyD,GAAgBA,EAAarP,EAAc4L,EAAM5L,cACjD,IAAI+L,EAAeH,EAAMvL,eAAetJ,OACtC,SAAArH,GAAK,OAAI,EAAKkc,MAAMvL,eAAe/J,QAAQ5G,GAAS,IAEtDwc,GAAoC,EAAtBH,EAAa1d,QAAc6d,EAAWH,GACpD,EAAKC,SAASJ,EAAO,WACnBwD,GAAYA,EAASU,YAAYC,aAAatgB,GACzCogB,IACL,EAAK3C,qBAAuBtZ,WAAW,WAAM,IACnCgM,EAA6BiQ,EAA7BjQ,UAAcoQ,EADqB,GACNH,EADM,eAE3C,EAAK7D,SAASgE,EAAY,WACxB,EAAKpD,eAAepe,KAClBoF,WAAW,kBAAM,EAAKoY,SAAS,CAAEpM,eAAc,KAEjD0P,GAAeA,EAAY1D,EAAM5L,qBAC1B,EAAKkN,wBAEbzG,SAlXY,uBAqXL,SAACjU,GAAiC,IAAxB2c,EAAwB,wDAE1CtI,EJpKmB,SAACtF,EAAM/O,GAChC,IAAIyd,EAAaC,EAAaC,EAA2BtJ,EAEvD1C,EAME5C,EANF4C,eACApB,EAKExB,EALFwB,aACAtC,EAIEc,EAJFd,WACAT,EAGEuB,EAHFvB,aACA0I,EAEEnH,EAFFmH,SACA7F,EACEtB,EADFsB,SAKF,GAFAoN,EADexP,EAAa0D,GAAmB,EAClB,GAAK1D,EAAaT,GAAgBmE,EAEvC,aAApB3R,EAAQiW,QAGV5B,EAAc7G,GAFdmQ,EACkB,GAAhBF,EAAoB9L,EAAiBpB,EAAekN,GAElDvH,IAAa7F,IAEfgE,GAA+B,IAD/BqJ,EAAclQ,EAAemQ,GACM1P,EAAa,EAAIyP,QAEjD,GAAwB,SAApB1d,EAAQiW,QAEjB5B,EAAc7G,GADdmQ,EAA8B,GAAhBF,EAAoB9L,EAAiB8L,GAE/CvH,IAAa7F,IACfgE,GAAe7G,EAAemE,GAAkB1D,EAAawP,QAE1D,GAAwB,SAApBzd,EAAQiW,SAGjB,IADA5B,EAAcrU,EAAQ/C,MAAQ+C,EAAQ2R,kBAClB3R,EAAQwN,aAC1B,OAAO,UAEJ,GAAwB,aAApBxN,EAAQiW,QAAwB,CAGzC,IADA5B,EAAcrU,EAAQ/C,SACF+C,EAAQwN,aAC1B,OAAO,KAET,GAAI6C,EAAU,CACZ,IAAI5C,EAAYqH,EAAiB,EAAD,GAAM/F,EAAN,CAAYsF,iBACxCA,EAAcrU,EAAQwN,cAA8B,SAAdC,EACxC4G,GAA4BpG,EACnBoG,EAAcrU,EAAQwN,cAA8B,UAAdC,IAC/C4G,GAA4BpG,SAG3B,GAAwB,UAApBjO,EAAQiW,UACjB5B,EAAcuJ,OAAO5d,EAAQ/C,UACT+C,EAAQwN,aAC1B,OAAO,KAGX,OAAO6G,EArDkB,CImKV,MAAK,EAAKnO,MAAb,GAAuB,EAAKkT,OACFpZ,GAChB,IAAhBqU,IAAsBA,SACtBsI,EACF,EAAKY,aAAalJ,EAAasI,GAE/B,EAAKY,aAAalJ,MA5XH,wBA+XJ,SAAA3W,QACT,EAAKmgB,YACPngB,EAAEogB,kBACFpgB,EAAE4Z,kBAEJ,EAAKuG,eApYY,sBAsYN,SAAAngB,GACX,IAAIqgB,EJ7HkB,SAACrgB,EAAGsgB,EAAelL,GAC3C,OAAIpV,EAAEE,OAAOqgB,QAAQpT,MAAM,2BAA6BmT,EAC/C,GACS,KAAdtgB,EAAEwgB,QAAuBpL,EAAM,OAAS,WAC1B,KAAdpV,EAAEwgB,QAAuBpL,EAAM,WAAa,OACzC,GALiB,CI6HDpV,EAAG,EAAKwI,MAAM8X,cAAe,EAAK9X,MAAM4M,KACrD,KAARiL,GAAc,EAAK9C,YAAY,CAAEhF,QAAS8H,MAxYzB,yBA0YH,SAAA/d,GACd,EAAKib,YAAYjb,KA3YA,6BA6YC,WAMlB/E,OAAOkjB,YALgB,SAAAzgB,IACrBA,EAAIA,GAAKzC,OAAOmjB,OACV9G,gBAAgB5Z,EAAE4Z,iBACxB5Z,EAAE2gB,kBAjZa,4BAqZA,WACjBpjB,OAAOkjB,YAAc,OAtZJ,sBAwZN,SAAAzgB,GACP,EAAKwI,MAAM8J,iBACb,EAAKsO,oBAEP,IAAIlF,EJ1IkB,SAAC1b,EAAG6gB,EAAOC,GAEnC,MADqB,QAArB9gB,EAAEE,OAAOqgB,SAAqBvgB,EAAE4Z,kBAC3BiH,IAAWC,IAA0C,IAA7B9gB,EAAE6B,KAAKuE,QAAQ,SAAyB,GAC9D,CACL4J,UAASA,EACTa,YAAa,CACXC,OAAQ9Q,EAAE+gB,QAAU/gB,EAAE+gB,QAAQ,GAAGC,MAAQhhB,EAAEihB,QAC3ClQ,OAAQ/Q,EAAE+gB,QAAU/gB,EAAE+gB,QAAQ,GAAGG,MAAQlhB,EAAEmhB,QAC3CnQ,KAAMhR,EAAE+gB,QAAU/gB,EAAE+gB,QAAQ,GAAGC,MAAQhhB,EAAEihB,QACzChQ,KAAMjR,EAAE+gB,QAAU/gB,EAAE+gB,QAAQ,GAAGG,MAAQlhB,EAAEmhB,UATrB,CI0ICnhB,EAAG,EAAKwI,MAAMqY,MAAO,EAAKrY,MAAMsY,WAC7C,KAAVpF,GAAgB,EAAKI,SAASJ,KA7Zb,qBA+ZP,SAAA1b,GACV,IAAI0b,EJjIiB,SAAC1b,EAAGqR,GAAS,IAGlCf,EAmBEe,EAnBFf,UACAZ,EAkBE2B,EAlBF3B,UACAsF,EAiBE3D,EAjBF2D,SACAV,EAgBEjD,EAhBFiD,aACAhC,EAeEjB,EAfFiB,gBACA8C,EAcE/D,EAdF+D,IACAtF,EAaEuB,EAbFvB,aACAsR,EAYE/P,EAZF+P,aACAnR,EAWEoB,EAXFpB,YACAoR,EAUEhQ,EAVFgQ,OACA1Q,EASEU,EATFV,OACAC,EAQES,EARFT,QACAL,EAOEc,EAPFd,WACA0D,EAME5C,EANF4C,eACAtB,EAKEtB,EALFsB,SACA9B,EAIEQ,EAJFR,YACAyQ,EAGEjQ,EAHFiQ,WACAlR,EAEEiB,EAFFjB,WACAC,EACEgB,EADFhB,UAEF,IAAIC,EAAJ,CACA,GAAIZ,EAAW,OAAO1P,EAAE4Z,iBACpB5E,GAAYV,GAAgBhC,GAAiBtS,EAAE4Z,iBACnD,IAAIlJ,EACFgL,EAAQ,GACN6F,EAAU9K,EAAapF,GAC3BR,EAAYG,KAAOhR,EAAE+gB,QAAU/gB,EAAE+gB,QAAQ,GAAGC,MAAQhhB,EAAEihB,QACtDpQ,EAAYI,KAAOjR,EAAE+gB,QAAU/gB,EAAE+gB,QAAQ,GAAGG,MAAQlhB,EAAEmhB,QACtDtQ,EAAY2Q,YAAchgB,KAAKmJ,MAC7BnJ,KAAKigB,KAAKjgB,KAAKkgB,IAAI7Q,EAAYG,KAAOH,EAAYC,OAAQ,KAE5D,IAAI6Q,EAAsBngB,KAAKmJ,MAC7BnJ,KAAKigB,KAAKjgB,KAAKkgB,IAAI7Q,EAAYI,KAAOJ,EAAYE,OAAQ,KAE5D,IAAKuB,IAAoB1B,GAAiC,GAAtB+Q,EAClC,MAAO,CAAErR,WAAUA,GAEjBgC,IAAiBzB,EAAY2Q,YAAcG,GAC/C,IAAIC,GACAxM,GAAW,EAAL,IAAWvE,EAAYG,KAAOH,EAAYC,OAAS,GAAK,GAC9DwB,IACFsP,EAAiB/Q,EAAYI,KAAOJ,EAAYE,OAAS,GAAK,GAEhE,IAAI+I,EAAWtY,KAAKuY,KAAKxJ,EAAa0D,GAClC4N,EAAiB5P,EAAkBZ,EAAKR,YAAayB,GACrDwP,EAAmBjR,EAAY2Q,YAqCnC,OApCK7O,IAEiB,IAAjB7C,GAAyC,UAAnB+R,GACF/H,GAApBhK,EAAe,GAAoC,SAAnB+R,IAC/BpP,EAAUpB,IAA4B,SAAnBwQ,KAErBC,EAAmBjR,EAAY2Q,YAAcJ,OACzCnR,GAAyBoR,IAC3BA,EAAOQ,GACPnG,EAAK,kBAIN/K,GAAU2Q,IACbA,EAAWO,GACXnG,EAAK,WASLhL,EAPGsE,EAQDuM,EAAUO,GAAoB1R,EAAaC,GAAauR,EAPrDxM,EAGSmM,EAAUO,EAAmBF,EAF7BL,EAAUO,EAAmBF,EAQzCtP,IACF5B,EAAY6Q,EAAUO,EAAmBF,GAE3ClG,EAAQ,EAAH,GACAA,EADA,CAEH7K,cACAH,YACAQ,WAAYoE,EAAY,EAAD,GAAMjE,EAAN,CAAYhH,KAAMqG,OAGzClP,KAAKuJ,IAAI8F,EAAYG,KAAOH,EAAYC,QACU,GAAlDtP,KAAKuJ,IAAI8F,EAAYI,KAAOJ,EAAYE,QAEjC2K,GAEqB,GAA1B7K,EAAY2Q,cACd9F,EAAK,WACL1b,EAAE4Z,kBAEG8B,IA/FgB,CIiIC1b,EAAD,MAChB,EAAKwI,MADW,GAEhB,EAAKkT,MAFW,CAGnB9E,SAAU,EAAK2E,MACf5G,QAAS,EAAK2G,KACd3J,WAAY,EAAK+J,MAAM5L,gBAEpB4L,IACDA,EAAK,UACP,EAAKyE,cAEP,EAAKrE,SAASJ,MA3aG,oBA6aR,SAAA1b,GACT,IAAI0b,EJ9CgB,SAAC1b,EAAGqR,GAAS,IAEjCrB,EAWEqB,EAXFrB,SACA6Q,EAUExP,EAVFwP,MACAhQ,EASEQ,EATFR,YACAR,EAQEgB,EARFhB,UACA0R,EAOE1Q,EAPF0Q,eACAzP,EAMEjB,EANFiB,gBACAlC,EAKEiB,EALFjB,WACAN,EAIEuB,EAJFvB,aACAwE,EAGEjD,EAHFiD,aACAhE,EAEEe,EAFFf,UACA0R,EACE3Q,EADF2Q,QAEF,IAAKhS,EAEH,OADI6Q,GAAO7gB,EAAE4Z,iBACN,GAET,IAAIqI,EAAW3P,EACXlC,EAAa2R,EACb1R,EAAY0R,EACZF,EAAiB5P,EAAkBpB,EAAayB,GAEhDoJ,EAAQ,CACV1L,UAASA,EACTC,aAAYA,EACZK,WAAUA,EACVM,SAAQA,EACRD,QAAOA,EACPD,UAAW,KACXG,YAAa,IAEf,GAAIP,EACF,OAAOoL,EAET,IAAK7K,EAAY2Q,YACf,OAAO9F,EAET,GAAI7K,EAAY2Q,YAAcS,EAAU,CAKtC,IAAI1R,EAAY2R,EAChB,OALAliB,EAAE4Z,iBACEoI,GACFA,EAAQH,GAGFA,GACN,IAAK,OACL,IAAK,KACHK,EAAWpS,EAAesE,EAAc/C,GACxCd,EAAa+D,EAAeV,EAAevC,EAAM6Q,GAAYA,EAC7DxG,EAAK,iBAAuB,EAC5B,MACF,IAAK,QACL,IAAK,OACHwG,EAAWpS,EAAesE,EAAc/C,GACxCd,EAAa+D,EAAeV,EAAevC,EAAM6Q,GAAYA,EAC7DxG,EAAK,iBAAuB,EAC5B,MACF,QACEnL,EAAaT,EAEjB4L,EAAK,oBAA0BnL,MAC1B,CAEL,IAAIV,EAAc4G,EAAapF,GAC/BqK,EAAK,WAAiBpF,EAAmB,EAAD,GAAMjF,EAAN,CAAYhH,KAAMwF,KAE5D,OAAO6L,EAlEe,CI8CC1b,EAAD,MACf,EAAKwI,MADU,GAEf,EAAKkT,MAFU,CAGlB9E,SAAU,EAAK2E,MACf5G,QAAS,EAAK2G,KACd3J,WAAY,EAAK+J,MAAM5L,gBAEzB,GAAK4L,EAAL,CACA,IAAIyG,EAAsBzG,EAAK,2BACxBA,EAAK,oBACZ,EAAKI,SAASJ,YACVyG,IACJ,EAAKtC,aAAasC,GACd,EAAK3Z,MAAM8J,iBACb,EAAK8P,uBA5bU,qBA+bP,WAIV,EAAK1F,eAAepe,KAClBoF,WAAW,kBAAM,EAAK6Z,YAAY,CAAEhF,QAAS,cAAe,MApc7C,qBAucP,WACV,EAAKmE,eAAepe,KAClBoF,WAAW,kBAAM,EAAK6Z,YAAY,CAAEhF,QAAS,UAAW,MAzczC,qBA4cP,SAACxD,GAA+B,IAAxBkK,EAAwB,wDAE1C,GADAlK,EAAQmL,OAAOnL,GACXsN,MAAMtN,GAAQ,MAAO,GACzB,EAAK2H,eAAepe,KAClBoF,WACE,kBACE,EAAK6Z,YACH,CACEhF,QAAS,QACThZ,MAAOwV,EACPjF,aAAc,EAAK4L,MAAM5L,cAE3BmP,IAEJ,MA1da,gBA8dZ,WACL,IAAIqD,EACJ,GAAI,EAAK9Z,MAAM4M,IACbkN,EAAY,EAAK5G,MAAM5L,aAAe,EAAKtH,MAAMyL,mBAC5C,CACL,IAAIxB,EAAU,MAAK,EAAKjK,MAAX,GAAqB,EAAKkT,QAGrC,OAAM,EAFN4G,EAAY,EAAK5G,MAAM5L,aAAe,EAAKtH,MAAMyL,eAMrD,EAAK4L,aAAayC,KA1eD,oBA6eR,SAAAC,GACL,EAAKnF,eACPH,cAAc,EAAKG,eAErB,IAAMzN,EAAc,EAAK+L,MAAM/L,YAC/B,GAAiB,WAAb4S,GACF,GACkB,YAAhB5S,GACgB,YAAhBA,GACgB,WAAhBA,EAEA,YAEG,GAAiB,UAAb4S,GACT,GAAoB,WAAhB5S,GAA4C,YAAhBA,EAC9B,YAEG,GAAiB,SAAb4S,IACW,WAAhB5S,GAA4C,YAAhBA,GAC9B,OAGJ,EAAKyN,cAAgBd,YAAY,EAAKkG,KAAM,EAAKha,MAAMia,cAAgB,IACvE,EAAK3G,SAAS,CAAEnM,YAAa,cApgBZ,iBAsgBX,SAAA+S,GACF,EAAKtF,gBACPH,cAAc,EAAKG,eACnB,EAAKA,cAAgB,MAEvB,IAAMzN,EAAc,EAAK+L,MAAM/L,YACb,WAAd+S,EACF,EAAK5G,SAAS,CAAEnM,YAAa,WACN,YAAd+S,EACW,YAAhB/S,GAA6C,YAAhBA,GAC/B,EAAKmM,SAAS,CAAEnM,YAAa,YAIX,YAAhBA,GACF,EAAKmM,SAAS,CAAEnM,YAAa,cArhBhB,sBAyhBN,kBAAM,EAAKnH,MAAM2T,UAAY,EAAKqB,MAAM,aAzhBlC,uBA0hBL,kBACZ,EAAKhV,MAAM2T,UACgB,YAA3B,EAAKT,MAAM/L,aACX,EAAKyM,SAAS,WA7hBG,uBA8hBL,kBAAM,EAAK5T,MAAM2T,UAAY,EAAKqB,MAAM,aA9hBnC,wBA+hBJ,kBACb,EAAKhV,MAAM2T,UACgB,YAA3B,EAAKT,MAAM/L,aACX,EAAKyM,SAAS,WAliBG,wBAmiBJ,kBAAM,EAAK5T,MAAM2T,UAAY,EAAKqB,MAAM,aAniBpC,uBAoiBL,kBACZ,EAAKhV,MAAM2T,UACgB,YAA3B,EAAKT,MAAM/L,aACX,EAAKyM,SAAS,UAviBG,kBAyiBV,WACP,IAqCIpC,EA4BAc,EAAWK,EAjEXxC,EAAYG,IAAW,eAAgB,EAAKtQ,MAAMmQ,UAAW,CAC/D,iBAAkB,EAAKnQ,MAAMwM,SAC7B,qBAAoB,IAElB3D,EAAO,MAAK,EAAK7I,MAAb,GAAuB,EAAKkT,OAChCiH,EAAa7P,EAAczB,EAAM,CACnC,OACA,UACA,QACA,WACA,aACA,gBACA,eACA,WACA,iBACA,MACA,aACA,cACA,aACA,WACA,eACA,iBACA,aACA,aACA,gBACA,UACA,kBAEMuR,EAAiB,EAAKpa,MAAtBoa,aAUR,GATAD,EAAa,MACRA,EADK,CAERnJ,aAAcoJ,EAAe,EAAKC,YAAc,KAChDnJ,aAAckJ,EAAe,EAAKE,aAAe,KACjDrJ,YAAamJ,EAAe,EAAKC,YAAc,KAC/C3J,cAAe,EAAK1Q,MAAM0Q,cAAgB,EAAK6J,cAAgB,YAK/D,EAAKva,MAAMwR,MACX,EAAK0B,MAAMnL,YAAc,EAAK/H,MAAMqK,aACpC,CACA,IAAImQ,EAAWlQ,EAAczB,EAAM,CACjC,YACA,aACA,eACA,eACA,iBACA,eACA,WACA,eACA,WACA,eAEM4R,EAAqB,EAAKza,MAA1Bya,iBACRD,EAAW,MACNA,EADG,CAENnJ,aAAc,EAAK0D,YACnB/D,aAAcyJ,EAAmB,EAAKC,YAAc,KACpDzJ,YAAawJ,EAAmB,EAAKE,WAAa,KAClDzJ,aAAcuJ,EAAmB,EAAKC,YAAc,OAEtDlJ,EAAO,kBAAC,GAASgJ,GAInB,IAAII,EAAatQ,EAAczB,EAAM,CACnC,WACA,aACA,eACA,aACA,eACA,YACA,cAEF+R,EAAWvJ,aAAe,EAAK0D,YAE3B,EAAK/U,MAAM6a,SACbvI,EAAY,kBAAC,GAAcsI,GAC3BjI,EAAY,kBAAC,GAAciI,IAG7B,IAAIE,EAAsB,KAEtB,EAAK9a,MAAMwM,WACbsO,EAAsB,CACpBxZ,OAAQ,EAAK4R,MAAMtL,aAIvB,IAAImT,EAAqB,MAAK,IAE1B,EAAK/a,MAAMwM,cACT,EAAKxM,MAAMoK,aACb2Q,EAAqB,CACnBC,QAAS,OAAS,EAAKhb,MAAMmL,qBAI7B,EAAKnL,MAAMoK,aACb2Q,EAAqB,CACnBC,QAAS,EAAKhb,MAAMmL,cAAgB,SAK1C,IAAM8P,EAAY,MAAKH,EAAR,GAAgCC,GACzCG,EAAY,EAAKlb,MAAMkb,UACzBC,EAAY,CACdhL,UAAW,aACXjD,MAAO+N,EACPxK,QAAS,EAAKY,aACd+J,YAAaF,EAAY,EAAKG,WAAa,KAC3CC,YAAa,EAAKpI,MAAM1L,UAAY0T,EAAY,EAAKK,UAAY,KACjEC,UAAWN,EAAY,EAAKO,SAAW,KACvCvK,aAAc,EAAKgC,MAAM1L,UAAY0T,EAAY,EAAKO,SAAW,KACjEC,aAAcR,EAAY,EAAKG,WAAa,KAC5CM,YAAa,EAAKzI,MAAM1L,UAAY0T,EAAY,EAAKK,UAAY,KACjEK,WAAYV,EAAY,EAAKO,SAAW,KACxCI,cAAe,EAAK3I,MAAM1L,UAAY0T,EAAY,EAAKO,SAAW,KAClEK,UAAW,EAAK9b,MAAM8X,cAAgB,EAAKiE,WAAa,MAGtDC,EAAmB,CACrB7L,UAAWA,EACX0H,IAAK,MACL3K,MAAM,EAAKlN,MAAMkN,OAOnB,OAJI,EAAKlN,MAAM6K,UACbsQ,EAAY,CAAEhL,UAAW,cACzB6L,EAAmB,CAAE7L,cAGrB,wBAAS6L,EACL,EAAKhc,MAAM6K,QAAsB,GAAZyH,EACvB,4BAAKO,IAAK,EAAKoJ,gBAAoBd,GACjC,kBAAC,EAAD,IAAOtI,IAAK,EAAKqJ,iBAAqB/B,GACnC,EAAKna,MAAM2O,WAGd,EAAK3O,MAAM6K,QAAsB,GAAZ8H,EACrB,EAAK3S,MAAM6K,QAAiB,GAAP2G,KAtrB3B,EAAKsB,KAAO,KACZ,EAAKC,MAAQ,KACb,EAAKG,MAAL,MACKjM,EADL,CAEEK,aAAc,EAAKtH,MAAMwV,aACzBzN,WAAYwH,IAAMK,SAASC,MAAM,EAAK7P,MAAM2O,YAE9C,EAAKuF,eAAiB,GACtB,EAAKyD,aACL,EAAKxC,gBAAkB,KAXN,EADrB,O,oOAAA,EAAiC5F,IAAM4M,WAAvC,K,mBCyBeC,GArDI,CACjBtE,eAAcA,EACd9E,gBAAeA,EACf4D,YAAa,KACb9E,WAAY,SAAAN,GAAI,OAAI,wBAAItE,MAAO,CAAEkF,QAAS,UAAYZ,IACtDqJ,QAAOA,EACPlH,UAASA,EACTsG,cAAe,IACftD,aAAc,KACdvM,YAAWA,EACXe,cAAe,OACfgF,UAAW,GACXnC,QAAS,OACT6D,aAAc,SAAApc,GAAC,OAAI,gCAASA,EAAI,IAChC+b,MAAKA,EACLO,UAAW,aACXuG,WAAUA,EACV+D,OAAQ,SACRzD,aAAc,IACdlL,MAAKA,EACLgD,eAAcA,EACdvG,UAASA,EACTqL,aAAc,EACdxF,SAAU,KACV2C,UAAW,KACXkG,OAAQ,KACRzF,OAAQ,KACRoD,gBAAiB,KACjBtB,SAAU,KACVuF,kBAAiBA,EACjBrG,cAAaA,EACbgG,cAAaA,EACb9H,UAAW,KACXgK,WAAY,KACZC,KAAM,EACN3P,KAAIA,EACJL,MAAO,MACPiQ,aAAc,EACd/Q,eAAgB,EAChBpB,aAAc,EACd0D,MAAO,IACPsK,OAAMA,EACNS,WAAY,KACZhN,cAAaA,EACboP,WAAUA,EACV3B,eAAgB,EAChBzC,QAAOA,EACPxJ,cAAaA,EACbe,eAAcA,EACd7B,UAASA,EACTqK,gBAAeA,G,mmDC7CjB,IAAM4F,GAAU3R,KAAelW,EAAQ,GAElB8nB,G,WACnB,WAAY1c,GAAO,a,6FAAA,cACjB,E,wEAAA,qBAAMA,KADW,wBAQK,SAAA6S,GAAG,OAAK,EAAKuE,YAAcvE,IARhC,qBAiEP,kBAAM,EAAKuE,YAAYuF,cAjEhB,qBAmEP,kBAAM,EAAKvF,YAAYwF,cAnEhB,qBAqEP,SAACrQ,GAAD,IAAQkK,EAAR,+DACV,EAAKW,YAAYyF,UAAUtQ,EAAOkK,KAtEjB,sBAwEN,kBAAM,EAAKW,YAAYpC,MAAM,YAxEvB,qBA0EP,kBAAM,EAAKoC,YAAYxD,SAAS,UAxE1C,EAAKV,MAAQ,CACX5H,WAAY,MAEd,EAAKwR,yBAA2B,GALf,E,6OADevN,IAAM4M,W,qEAWlChlB,EAAOsO,GAEXgX,GAAQnX,SAASnO,EAAOsO,GACxBnO,KAAKwlB,yBAAyBhnB,KAAK,CAAEqB,QAAOsO,c,kDAIlB,WAM1B,GAAInO,KAAK0I,MAAMsc,WAAY,CACzB,IAAIS,EAAczlB,KAAK0I,MAAMsc,WAAWnY,IACtC,SAAA6Y,GAAO,OAAIA,EAAQ1R,aAGrByR,EAAYE,KAAK,SAACxa,EAAGC,GAAJ,OAAUD,EAAIC,IAE/Bqa,EAAYlmB,QAAQ,SAACyU,EAAYvU,GAE/B,IAAImmB,EAEFA,EADY,IAAVnmB,EACOomB,KAAQ,CAAEC,SAAU,EAAGC,SAAU/R,IAEjC6R,KAAQ,CACfC,SAAUL,EAAYhmB,EAAQ,GAAK,EACnCsmB,SAAU/R,IAIdR,KACE,EAAKwS,MAAMJ,EAAQ,WACjB,EAAK5J,SAAS,CAAEhI,WAAYA,QAMlC,IAAInU,EAAQgmB,KAAQ,CAAEC,SAAUL,EAAYpjB,OAAO,GAAG,KAEtDmR,KACExT,KAAKgmB,MAAMnmB,EAAO,WAChB,EAAKmc,SAAS,CAAEhI,WAAY,Y,6CAMlChU,KAAKwlB,yBAAyBjmB,QAAQ,SAASL,GAC7CimB,GAAQ9W,WAAWnP,EAAIW,MAAOX,EAAIiP,a,+BAe7B,IACH8X,EACAC,EAFG,QAOLD,EAJEjmB,KAAK4b,MAAM5H,WAKc,aAJ3BkS,EAAWlmB,KAAK0I,MAAMsc,WAAWje,OAC/B,SAAAof,GAAI,OAAIA,EAAKnS,aAAe,EAAK4H,MAAM5H,cAG9B,GAAGiS,SACR,UADJ,MAESnB,GAFT,GAE0B9kB,KAAK0I,MAF/B,GAEyCwd,EAAS,GAAGD,UAE5C,MAAKnB,GAAR,GAAyB9kB,KAAK0I,QAI3BoK,aAETmT,EAAS9R,eAOX8R,EAAS9R,eAAiB,GAGxB8R,EAAS7P,OACP6P,EAASlT,aAMXkT,EAAS9R,eAOX8R,EAASlT,aAAe,EACxBkT,EAAS9R,eAAiB,GAI5B,IAAIkD,EAAWY,IAAMK,SAAS8N,QAAQpmB,KAAK0I,MAAM2O,UAIjDA,EAAWA,EAAStQ,OAAO,SAAA+Q,GACzB,MAAqB,iBAAVA,IACAA,EAAMuO,SAERvO,IAKTmO,EAASlP,gBACQ,EAAhBkP,EAAShB,MAAoC,EAAxBgB,EAASf,gBAE/B9R,QAAQkT,KAAR,0EAGAL,EAASlP,kBAIX,IAFA,IAAIwP,EAAc,GACdhI,EAAe,KAEbpgB,EAAI,EACRA,EAAIkZ,EAAShZ,OACbF,GAAK8nB,EAAShB,KAAOgB,EAASf,aAC9B,CAEA,IADA,IAAI9C,EAAW,GAEToE,EAAIroB,EACRqoB,EAAIroB,EAAI8nB,EAAShB,KAAOgB,EAASf,aACjCsB,GAAKP,EAASf,aACd,CAEA,IADA,IAAIuB,EAAM,GACDC,EAAIF,EAAGE,EAAIF,EAAIP,EAASf,eAC3Be,EAASlP,eAAiBM,EAASqP,GAAGhe,MAAMkN,QAC9C2I,EAAelH,EAASqP,GAAGhe,MAAMkN,MAAM7L,SAErC2c,GAAKrP,EAAShZ,SAJ2BqoB,GAAK,EAKlDD,EAAIjoB,KACFyZ,IAAMc,aAAa1B,EAASqP,GAAI,CAC9B7nB,IAAK,IAAMV,EAAI,GAAKqoB,EAAIE,EACxBzN,UAAW,EACXrD,MAAO,CACL7L,MAAO,GAAF,OAAK,IAAMkc,EAASf,aAApB,KACLpK,QAAS,mBAKjBsH,EAAS5jB,KAAK,yBAAKK,IAAK,GAAKV,EAAIqoB,GAAIC,IAEnCR,EAASlP,cACXwP,EAAY/nB,KACV,yBAAKK,IAAKV,EAAGyX,MAAO,CAAE7L,MAAOwU,IAC1B6D,IAILmE,EAAY/nB,KAAK,yBAAKK,IAAKV,GAAIikB,IAInC,GAAiB,YAAb6D,EAMJ,OAHWM,EAAYloB,QAAU4nB,EAASlT,eACxCkT,EAAS1S,YAGT,kBAAC,GAAD,IAAaqC,MAAO5V,KAAK0I,MAAMkN,MAAO2F,IAAKvb,KAAK2mB,uBAA2BV,GACxEM,GAPH,IAAM1N,EAAY,mBAAqB7Y,KAAK0I,MAAMmQ,WAAa,IAC/D,OAAO,yBAAKA,UAAWA,GAAY0N,O,KCrM1BnB,etB8BbvnB,EAAoB+oB,EAAIhpB,EAGxBC,EAAoBgpB,EAAI,SAASzpB,EAAS0pB,EAAMC,GAC3ClpB,EAAoBmpB,EAAE5pB,EAAS0pB,IAClCznB,OAAOmF,eAAepH,EAAS0pB,EAAM,CAAEliB,YAAWA,EAAOF,IAAKqiB,KAKhElpB,EAAoByU,EAAI,SAASlV,GACX,oBAAX6pB,QAA0BA,OAAOC,aAC1C7nB,OAAOmF,eAAepH,EAAS6pB,OAAOC,YAAa,CAAExnB,MAAO,WAE7DL,OAAOmF,eAAepH,EAAS,aAAc,CAAEsC,OAAMA,KAQtD7B,EAAoBspB,EAAI,SAASznB,EAAO0nB,GAEvC,GADU,EAAPA,IAAU1nB,EAAQ7B,EAAoB6B,IAC/B,EAAP0nB,EAAU,OAAO1nB,EACpB,GAAW,EAAP0nB,GAA8B,iBAAV1nB,GAAsBA,GAASA,EAAM2nB,WAAY,OAAO3nB,EAChF,IAAI4nB,EAAKjoB,OAAO4M,OAAO,MAGvB,GAFApO,EAAoByU,EAAEgV,GACtBjoB,OAAOmF,eAAe8iB,EAAI,UAAW,CAAE1iB,YAAWA,EAAOlF,MAAOA,IACtD,EAAP0nB,GAA4B,iBAAT1nB,EAAmB,IAAI,IAAIb,KAAOa,EAAO7B,EAAoBgpB,EAAES,EAAIzoB,EAAK,SAASA,GAAO,OAAOa,EAAMb,IAAQgH,KAAK,KAAMhH,IAC9I,OAAOyoB,GAIRzpB,EAAoBwW,EAAI,SAAShX,GAChC,IAAI0pB,EAAS1pB,GAAUA,EAAOgqB,WAC7B,WAAwB,OAAOhqB,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAQ,EAAoBgpB,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRlpB,EAAoBmpB,EAAI,SAASO,EAAQC,GAAY,OAAOnoB,OAAOgB,UAAUrC,eAAec,KAAKyoB,EAAQC,IAGzG3pB,EAAoB4pB,EAAI,GAIjB5pB,EAAoBA,EAAoB6pB,EAAI,IA9EnD,SAAS7pB,EAAoB8pB,GAG5B,GAAG/pB,EAAiB+pB,GACnB,OAAO/pB,EAAiB+pB,GAAUvqB,QAGnC,IAAIC,EAASO,EAAiB+pB,GAAY,CACzCxpB,EAAGwpB,EACHC,GAAEA,EACFxqB,QAAS,IAUV,OANAyqB,EAAQF,GAAU7oB,KAAKzB,EAAOD,QAASC,EAAQA,EAAOD,QAASS,GAG/DR,EAAOuqB,KAGAvqB,EAAOD,Q,MAvBXQ","file":"react-slick.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Slider\"] = factory(require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"Slider\"] = factory(root[\"React\"], root[\"ReactDOM\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__0__, __WEBPACK_EXTERNAL_MODULE__2__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 13);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__0__;","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","module.exports = __WEBPACK_EXTERNAL_MODULE__2__;","var camel2hyphen = require('string-convert/camel2hyphen');\n\nvar isDimension = function (feature) {\n var re = /[height|width]$/;\n return re.test(feature);\n};\n\nvar obj2mq = function (obj) {\n var mq = '';\n var features = Object.keys(obj);\n features.forEach(function (feature, index) {\n var value = obj[feature];\n feature = camel2hyphen(feature);\n // Add px to dimension features\n if (isDimension(feature) && typeof value === 'number') {\n value = value + 'px';\n }\n if (value === true) {\n mq += feature;\n } else if (value === false) {\n mq += 'not ' + feature;\n } else {\n mq += '(' + feature + ': ' + value + ')';\n }\n if (index < features.length-1) {\n mq += ' and '\n }\n });\n return mq;\n};\n\nvar json2mq = function (query) {\n var mq = '';\n if (typeof query === 'string') {\n return query;\n }\n // Handling array of media queries\n if (query instanceof Array) {\n query.forEach(function (q, index) {\n mq += obj2mq(q);\n if (index < query.length-1) {\n mq += ', '\n }\n });\n return mq;\n }\n // Handling single media query\n return obj2mq(query);\n};\n\nmodule.exports = json2mq;","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","/**\n * Helper function for iterating over a collection\n *\n * @param collection\n * @param fn\n */\nfunction each(collection, fn) {\n var i = 0,\n length = collection.length,\n cont;\n\n for(i; i < length; i++) {\n cont = fn(collection[i], i);\n if(cont === false) {\n break; //allow early exit\n }\n }\n}\n\n/**\n * Helper function for determining whether target object is an array\n *\n * @param target the object under test\n * @return {Boolean} true if array, false otherwise\n */\nfunction isArray(target) {\n return Object.prototype.toString.apply(target) === '[object Array]';\n}\n\n/**\n * Helper function for determining whether target object is a function\n *\n * @param target the object under test\n * @return {Boolean} true if function, false otherwise\n */\nfunction isFunction(target) {\n return typeof target === 'function';\n}\n\nmodule.exports = {\n isFunction : isFunction,\n isArray : isArray,\n each : each\n};\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","var camel2hyphen = function (str) {\n return str\n .replace(/[A-Z]/g, function (match) {\n return '-' + match.toLowerCase();\n })\n .toLowerCase();\n};\n\nmodule.exports = camel2hyphen;","var MediaQueryDispatch = require('./MediaQueryDispatch');\nmodule.exports = new MediaQueryDispatch();\n","var MediaQuery = require('./MediaQuery');\nvar Util = require('./Util');\nvar each = Util.each;\nvar isFunction = Util.isFunction;\nvar isArray = Util.isArray;\n\n/**\n * Allows for registration of query handlers.\n * Manages the query handler's state and is responsible for wiring up browser events\n *\n * @constructor\n */\nfunction MediaQueryDispatch () {\n if(!window.matchMedia) {\n throw new Error('matchMedia not present, legacy browsers require a polyfill');\n }\n\n this.queries = {};\n this.browserIsIncapable = !window.matchMedia('only all').matches;\n}\n\nMediaQueryDispatch.prototype = {\n\n constructor : MediaQueryDispatch,\n\n /**\n * Registers a handler for the given media query\n *\n * @param {string} q the media query\n * @param {object || Array || Function} options either a single query handler object, a function, or an array of query handlers\n * @param {function} options.match fired when query matched\n * @param {function} [options.unmatch] fired when a query is no longer matched\n * @param {function} [options.setup] fired when handler first triggered\n * @param {boolean} [options.deferSetup=false] whether setup should be run immediately or deferred until query is first matched\n * @param {boolean} [shouldDegrade=false] whether this particular media query should always run on incapable browsers\n */\n register : function(q, options, shouldDegrade) {\n var queries = this.queries,\n isUnconditional = shouldDegrade && this.browserIsIncapable;\n\n if(!queries[q]) {\n queries[q] = new MediaQuery(q, isUnconditional);\n }\n\n //normalise to object in an array\n if(isFunction(options)) {\n options = { match : options };\n }\n if(!isArray(options)) {\n options = [options];\n }\n each(options, function(handler) {\n if (isFunction(handler)) {\n handler = { match : handler };\n }\n queries[q].addHandler(handler);\n });\n\n return this;\n },\n\n /**\n * unregisters a query and all it's handlers, or a specific handler for a query\n *\n * @param {string} q the media query to target\n * @param {object || function} [handler] specific handler to unregister\n */\n unregister : function(q, handler) {\n var query = this.queries[q];\n\n if(query) {\n if(handler) {\n query.removeHandler(handler);\n }\n else {\n query.clear();\n delete this.queries[q];\n }\n }\n\n return this;\n }\n};\n\nmodule.exports = MediaQueryDispatch;\n","var QueryHandler = require('./QueryHandler');\nvar each = require('./Util').each;\n\n/**\n * Represents a single media query, manages it's state and registered handlers for this query\n *\n * @constructor\n * @param {string} query the media query string\n * @param {boolean} [isUnconditional=false] whether the media query should run regardless of whether the conditions are met. Primarily for helping older browsers deal with mobile-first design\n */\nfunction MediaQuery(query, isUnconditional) {\n this.query = query;\n this.isUnconditional = isUnconditional;\n this.handlers = [];\n this.mql = window.matchMedia(query);\n\n var self = this;\n this.listener = function(mql) {\n // Chrome passes an MediaQueryListEvent object, while other browsers pass MediaQueryList directly\n self.mql = mql.currentTarget || mql;\n self.assess();\n };\n this.mql.addListener(this.listener);\n}\n\nMediaQuery.prototype = {\n\n constuctor : MediaQuery,\n\n /**\n * add a handler for this query, triggering if already active\n *\n * @param {object} handler\n * @param {function} handler.match callback for when query is activated\n * @param {function} [handler.unmatch] callback for when query is deactivated\n * @param {function} [handler.setup] callback for immediate execution when a query handler is registered\n * @param {boolean} [handler.deferSetup=false] should the setup callback be deferred until the first time the handler is matched?\n */\n addHandler : function(handler) {\n var qh = new QueryHandler(handler);\n this.handlers.push(qh);\n\n this.matches() && qh.on();\n },\n\n /**\n * removes the given handler from the collection, and calls it's destroy methods\n *\n * @param {object || function} handler the handler to remove\n */\n removeHandler : function(handler) {\n var handlers = this.handlers;\n each(handlers, function(h, i) {\n if(h.equals(handler)) {\n h.destroy();\n return !handlers.splice(i,1); //remove from array and exit each early\n }\n });\n },\n\n /**\n * Determine whether the media query should be considered a match\n *\n * @return {Boolean} true if media query can be considered a match, false otherwise\n */\n matches : function() {\n return this.mql.matches || this.isUnconditional;\n },\n\n /**\n * Clears all handlers and unbinds events\n */\n clear : function() {\n each(this.handlers, function(handler) {\n handler.destroy();\n });\n this.mql.removeListener(this.listener);\n this.handlers.length = 0; //clear array\n },\n\n /*\n * Assesses the query, turning on all handlers if it matches, turning them off if it doesn't match\n */\n assess : function() {\n var action = this.matches() ? 'on' : 'off';\n\n each(this.handlers, function(handler) {\n handler[action]();\n });\n }\n};\n\nmodule.exports = MediaQuery;\n","/**\n * Delegate to handle a media query being matched and unmatched.\n *\n * @param {object} options\n * @param {function} options.match callback for when the media query is matched\n * @param {function} [options.unmatch] callback for when the media query is unmatched\n * @param {function} [options.setup] one-time callback triggered the first time a query is matched\n * @param {boolean} [options.deferSetup=false] should the setup callback be run immediately, rather than first time query is matched?\n * @constructor\n */\nfunction QueryHandler(options) {\n this.options = options;\n !options.deferSetup && this.setup();\n}\n\nQueryHandler.prototype = {\n\n constructor : QueryHandler,\n\n /**\n * coordinates setup of the handler\n *\n * @function\n */\n setup : function() {\n if(this.options.setup) {\n this.options.setup();\n }\n this.initialised = true;\n },\n\n /**\n * coordinates setup and triggering of the handler\n *\n * @function\n */\n on : function() {\n !this.initialised && this.setup();\n this.options.match && this.options.match();\n },\n\n /**\n * coordinates the unmatch event for the handler\n *\n * @function\n */\n off : function() {\n this.options.unmatch && this.options.unmatch();\n },\n\n /**\n * called when a handler is to be destroyed.\n * delegates to the destroy or unmatch callbacks, depending on availability.\n *\n * @function\n */\n destroy : function() {\n this.options.destroy ? this.options.destroy() : this.off();\n },\n\n /**\n * determines equality by reference.\n * if object is supplied compare options, if function, compare match callback\n *\n * @function\n * @param {object || function} [target] the target for comparison\n */\n equals : function(target) {\n return this.options === target || this.options.match === target;\n }\n\n};\n\nmodule.exports = QueryHandler;\n","const initialState = {\n animating: false,\n autoplaying: null,\n currentDirection: 0,\n currentLeft: null,\n currentSlide: 0,\n direction: 1,\n dragging: false,\n edgeDragged: false,\n initialized: false,\n lazyLoadedList: [],\n listHeight: null,\n listWidth: null,\n scrolling: false,\n slideCount: null,\n slideHeight: null,\n slideWidth: null,\n swipeLeft: null,\n swiped: false, // used by swipeEvent. differentites between touch and swipe.\n swiping: false,\n touchObject: { startX: 0, startY: 0, curX: 0, curY: 0 },\n trackStyle: {},\n trackWidth: 0\n};\n\nexport default initialState;\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\n\nexport const getOnDemandLazySlides = spec => {\n let onDemandSlides = [];\n let startIndex = lazyStartIndex(spec);\n let endIndex = lazyEndIndex(spec);\n for (let slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n if (spec.lazyLoadedList.indexOf(slideIndex) < 0) {\n onDemandSlides.push(slideIndex);\n }\n }\n return onDemandSlides;\n};\n\n// return list of slides that need to be present\nexport const getRequiredLazySlides = spec => {\n let requiredSlides = [];\n let startIndex = lazyStartIndex(spec);\n let endIndex = lazyEndIndex(spec);\n for (let slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n requiredSlides.push(slideIndex);\n }\n return requiredSlides;\n};\n\n// startIndex that needs to be present\nexport const lazyStartIndex = spec =>\n spec.currentSlide - lazySlidesOnLeft(spec);\nexport const lazyEndIndex = spec => spec.currentSlide + lazySlidesOnRight(spec);\nexport const lazySlidesOnLeft = spec =>\n spec.centerMode\n ? Math.floor(spec.slidesToShow / 2) +\n (parseInt(spec.centerPadding) > 0 ? 1 : 0)\n : 0;\nexport const lazySlidesOnRight = spec =>\n spec.centerMode\n ? Math.floor((spec.slidesToShow - 1) / 2) +\n 1 +\n (parseInt(spec.centerPadding) > 0 ? 1 : 0)\n : spec.slidesToShow;\n\n// get width of an element\nexport const getWidth = elem => (elem && elem.offsetWidth) || 0;\nexport const getHeight = elem => (elem && elem.offsetHeight) || 0;\nexport const getSwipeDirection = (touchObject, verticalSwiping = false) => {\n var xDist, yDist, r, swipeAngle;\n xDist = touchObject.startX - touchObject.curX;\n yDist = touchObject.startY - touchObject.curY;\n r = Math.atan2(yDist, xDist);\n swipeAngle = Math.round(r * 180 / Math.PI);\n if (swipeAngle < 0) {\n swipeAngle = 360 - Math.abs(swipeAngle);\n }\n if (\n (swipeAngle <= 45 && swipeAngle >= 0) ||\n (swipeAngle <= 360 && swipeAngle >= 315)\n ) {\n return \"left\";\n }\n if (swipeAngle >= 135 && swipeAngle <= 225) {\n return \"right\";\n }\n if (verticalSwiping === true) {\n if (swipeAngle >= 35 && swipeAngle <= 135) {\n return \"up\";\n } else {\n return \"down\";\n }\n }\n\n return \"vertical\";\n};\n\n// whether or not we can go next\nexport const canGoNext = spec => {\n let canGo = true;\n if (!spec.infinite) {\n if (spec.centerMode && spec.currentSlide >= spec.slideCount - 1) {\n canGo = false;\n } else if (\n spec.slideCount <= spec.slidesToShow ||\n spec.currentSlide >= spec.slideCount - spec.slidesToShow\n ) {\n canGo = false;\n }\n }\n return canGo;\n};\n\n// given an object and a list of keys, return new object with given keys\nexport const extractObject = (spec, keys) => {\n let newObject = {};\n keys.forEach(key => (newObject[key] = spec[key]));\n return newObject;\n};\n\n// get initialized state\nexport const initializedState = spec => {\n // spec also contains listRef, trackRef\n let slideCount = React.Children.count(spec.children);\n let listWidth = Math.ceil(getWidth(ReactDOM.findDOMNode(spec.listRef)));\n let trackWidth = Math.ceil(getWidth(ReactDOM.findDOMNode(spec.trackRef)));\n let slideWidth;\n if (!spec.vertical) {\n let centerPaddingAdj = spec.centerMode && parseInt(spec.centerPadding) * 2;\n if (\n typeof spec.centerPadding === \"string\" &&\n spec.centerPadding.slice(-1) === \"%\"\n ) {\n centerPaddingAdj *= listWidth / 100;\n }\n slideWidth = Math.ceil((listWidth - centerPaddingAdj) / spec.slidesToShow);\n } else {\n slideWidth = listWidth;\n }\n let slideHeight =\n ReactDOM.findDOMNode(spec.listRef) &&\n getHeight(\n ReactDOM.findDOMNode(spec.listRef).querySelector('[data-index=\"0\"]')\n );\n let listHeight = slideHeight * spec.slidesToShow;\n let currentSlide =\n spec.currentSlide === undefined ? spec.initialSlide : spec.currentSlide;\n if (spec.rtl && spec.currentSlide === undefined) {\n currentSlide = slideCount - 1 - spec.initialSlide;\n }\n let lazyLoadedList = spec.lazyLoadedList || [];\n let slidesToLoad = getOnDemandLazySlides(\n { currentSlide, lazyLoadedList },\n spec\n );\n lazyLoadedList.concat(slidesToLoad);\n\n let state = {\n slideCount,\n slideWidth,\n listWidth,\n trackWidth,\n currentSlide,\n slideHeight,\n listHeight,\n lazyLoadedList\n };\n\n if (spec.autoplaying === null && spec.autoplay) {\n state[\"autoplaying\"] = \"playing\";\n }\n\n return state;\n};\n\nexport const slideHandler = spec => {\n const {\n waitForAnimate,\n animating,\n fade,\n infinite,\n index,\n slideCount,\n lazyLoadedList,\n lazyLoad,\n currentSlide,\n centerMode,\n slidesToScroll,\n slidesToShow,\n useCSS\n } = spec;\n if (waitForAnimate && animating) return {};\n let animationSlide = index,\n finalSlide,\n animationLeft,\n finalLeft;\n let state = {},\n nextState = {};\n if (fade) {\n if (!infinite && (index < 0 || index >= slideCount)) return {};\n if (index < 0) {\n animationSlide = index + slideCount;\n } else if (index >= slideCount) {\n animationSlide = index - slideCount;\n }\n if (lazyLoad && lazyLoadedList.indexOf(animationSlide) < 0) {\n lazyLoadedList.push(animationSlide);\n }\n state = {\n animating: true,\n currentSlide: animationSlide,\n lazyLoadedList\n };\n nextState = { animating: false };\n } else {\n finalSlide = animationSlide;\n if (animationSlide < 0) {\n finalSlide = animationSlide + slideCount;\n if (!infinite) finalSlide = 0;\n else if (slideCount % slidesToScroll !== 0)\n finalSlide = slideCount - slideCount % slidesToScroll;\n } else if (!canGoNext(spec) && animationSlide > currentSlide) {\n animationSlide = finalSlide = currentSlide;\n } else if (centerMode && animationSlide >= slideCount) {\n animationSlide = infinite ? slideCount : slideCount - 1;\n finalSlide = infinite ? 0 : slideCount - 1;\n } else if (animationSlide >= slideCount) {\n finalSlide = animationSlide - slideCount;\n if (!infinite) finalSlide = slideCount - slidesToShow;\n else if (slideCount % slidesToScroll !== 0) finalSlide = 0;\n }\n animationLeft = getTrackLeft({ ...spec, slideIndex: animationSlide });\n finalLeft = getTrackLeft({ ...spec, slideIndex: finalSlide });\n if (!infinite) {\n if (animationLeft === finalLeft) animationSlide = finalSlide;\n animationLeft = finalLeft;\n }\n lazyLoad &&\n lazyLoadedList.concat(\n getOnDemandLazySlides({ ...spec, currentSlide: animationSlide })\n );\n if (!useCSS) {\n state = {\n currentSlide: finalSlide,\n trackStyle: getTrackCSS({ ...spec, left: finalLeft }),\n lazyLoadedList\n };\n } else {\n state = {\n animating: true,\n currentSlide: finalSlide,\n trackStyle: getTrackAnimateCSS({ ...spec, left: animationLeft }),\n lazyLoadedList\n };\n nextState = {\n animating: false,\n currentSlide: finalSlide,\n trackStyle: getTrackCSS({ ...spec, left: finalLeft }),\n swipeLeft: null\n };\n }\n }\n return { state, nextState };\n};\n\nexport const changeSlide = (spec, options) => {\n var indexOffset, previousInt, slideOffset, unevenOffset, targetSlide;\n const {\n slidesToScroll,\n slidesToShow,\n slideCount,\n currentSlide,\n lazyLoad,\n infinite\n } = spec;\n unevenOffset = slideCount % slidesToScroll !== 0;\n indexOffset = unevenOffset ? 0 : (slideCount - currentSlide) % slidesToScroll;\n\n if (options.message === \"previous\") {\n slideOffset =\n indexOffset === 0 ? slidesToScroll : slidesToShow - indexOffset;\n targetSlide = currentSlide - slideOffset;\n if (lazyLoad && !infinite) {\n previousInt = currentSlide - slideOffset;\n targetSlide = previousInt === -1 ? slideCount - 1 : previousInt;\n }\n } else if (options.message === \"next\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : indexOffset;\n targetSlide = currentSlide + slideOffset;\n if (lazyLoad && !infinite) {\n targetSlide = (currentSlide + slidesToScroll) % slideCount + indexOffset;\n }\n } else if (options.message === \"dots\") {\n // Click on dots\n targetSlide = options.index * options.slidesToScroll;\n if (targetSlide === options.currentSlide) {\n return null;\n }\n } else if (options.message === \"children\") {\n // Click on the slides\n targetSlide = options.index;\n if (targetSlide === options.currentSlide) {\n return null;\n }\n if (infinite) {\n let direction = siblingDirection({ ...spec, targetSlide });\n if (targetSlide > options.currentSlide && direction === \"left\") {\n targetSlide = targetSlide - slideCount;\n } else if (targetSlide < options.currentSlide && direction === \"right\") {\n targetSlide = targetSlide + slideCount;\n }\n }\n } else if (options.message === \"index\") {\n targetSlide = Number(options.index);\n if (targetSlide === options.currentSlide) {\n return null;\n }\n }\n return targetSlide;\n};\nexport const keyHandler = (e, accessibility, rtl) => {\n if (e.target.tagName.match(\"TEXTAREA|INPUT|SELECT\") || !accessibility)\n return \"\";\n if (e.keyCode === 37) return rtl ? \"next\" : \"previous\";\n if (e.keyCode === 39) return rtl ? \"previous\" : \"next\";\n return \"\";\n};\n\nexport const swipeStart = (e, swipe, draggable) => {\n e.target.tagName === \"IMG\" && e.preventDefault();\n if (!swipe || (!draggable && e.type.indexOf(\"mouse\") !== -1)) return \"\";\n return {\n dragging: true,\n touchObject: {\n startX: e.touches ? e.touches[0].pageX : e.clientX,\n startY: e.touches ? e.touches[0].pageY : e.clientY,\n curX: e.touches ? e.touches[0].pageX : e.clientX,\n curY: e.touches ? e.touches[0].pageY : e.clientY\n }\n };\n};\nexport const swipeMove = (e, spec) => {\n // spec also contains, trackRef and slideIndex\n const {\n scrolling,\n animating,\n vertical,\n swipeToSlide,\n verticalSwiping,\n rtl,\n currentSlide,\n edgeFriction,\n edgeDragged,\n onEdge,\n swiped,\n swiping,\n slideCount,\n slidesToScroll,\n infinite,\n touchObject,\n swipeEvent,\n listHeight,\n listWidth\n } = spec;\n if (scrolling) return;\n if (animating) return e.preventDefault();\n if (vertical && swipeToSlide && verticalSwiping) e.preventDefault();\n let swipeLeft,\n state = {};\n let curLeft = getTrackLeft(spec);\n touchObject.curX = e.touches ? e.touches[0].pageX : e.clientX;\n touchObject.curY = e.touches ? e.touches[0].pageY : e.clientY;\n touchObject.swipeLength = Math.round(\n Math.sqrt(Math.pow(touchObject.curX - touchObject.startX, 2))\n );\n let verticalSwipeLength = Math.round(\n Math.sqrt(Math.pow(touchObject.curY - touchObject.startY, 2))\n );\n if (!verticalSwiping && !swiping && verticalSwipeLength > 10) {\n return { scrolling: true };\n }\n if (verticalSwiping) touchObject.swipeLength = verticalSwipeLength;\n let positionOffset =\n (!rtl ? 1 : -1) * (touchObject.curX > touchObject.startX ? 1 : -1);\n if (verticalSwiping)\n positionOffset = touchObject.curY > touchObject.startY ? 1 : -1;\n\n let dotCount = Math.ceil(slideCount / slidesToScroll);\n let swipeDirection = getSwipeDirection(spec.touchObject, verticalSwiping);\n let touchSwipeLength = touchObject.swipeLength;\n if (!infinite) {\n if (\n (currentSlide === 0 && swipeDirection === \"right\") ||\n (currentSlide + 1 >= dotCount && swipeDirection === \"left\") ||\n (!canGoNext(spec) && swipeDirection === \"left\")\n ) {\n touchSwipeLength = touchObject.swipeLength * edgeFriction;\n if (edgeDragged === false && onEdge) {\n onEdge(swipeDirection);\n state[\"edgeDragged\"] = true;\n }\n }\n }\n if (!swiped && swipeEvent) {\n swipeEvent(swipeDirection);\n state[\"swiped\"] = true;\n }\n if (!vertical) {\n if (!rtl) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n } else {\n swipeLeft = curLeft - touchSwipeLength * positionOffset;\n }\n } else {\n swipeLeft =\n curLeft + touchSwipeLength * (listHeight / listWidth) * positionOffset;\n }\n if (verticalSwiping) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n }\n state = {\n ...state,\n touchObject,\n swipeLeft,\n trackStyle: getTrackCSS({ ...spec, left: swipeLeft })\n };\n if (\n Math.abs(touchObject.curX - touchObject.startX) <\n Math.abs(touchObject.curY - touchObject.startY) * 0.8\n ) {\n return state;\n }\n if (touchObject.swipeLength > 10) {\n state[\"swiping\"] = true;\n e.preventDefault();\n }\n return state;\n};\nexport const swipeEnd = (e, spec) => {\n const {\n dragging,\n swipe,\n touchObject,\n listWidth,\n touchThreshold,\n verticalSwiping,\n listHeight,\n currentSlide,\n swipeToSlide,\n scrolling,\n onSwipe\n } = spec;\n if (!dragging) {\n if (swipe) e.preventDefault();\n return {};\n }\n let minSwipe = verticalSwiping\n ? listHeight / touchThreshold\n : listWidth / touchThreshold;\n let swipeDirection = getSwipeDirection(touchObject, verticalSwiping);\n // reset the state of touch related state variables.\n let state = {\n dragging: false,\n edgeDragged: false,\n scrolling: false,\n swiping: false,\n swiped: false,\n swipeLeft: null,\n touchObject: {}\n };\n if (scrolling) {\n return state;\n }\n if (!touchObject.swipeLength) {\n return state;\n }\n if (touchObject.swipeLength > minSwipe) {\n e.preventDefault();\n if (onSwipe) {\n onSwipe(swipeDirection);\n }\n let slideCount, newSlide;\n switch (swipeDirection) {\n case \"left\":\n case \"up\":\n newSlide = currentSlide + getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 0;\n break;\n case \"right\":\n case \"down\":\n newSlide = currentSlide - getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 1;\n break;\n default:\n slideCount = currentSlide;\n }\n state[\"triggerSlideHandler\"] = slideCount;\n } else {\n // Adjust the track back to it's original position.\n let currentLeft = getTrackLeft(spec);\n state[\"trackStyle\"] = getTrackAnimateCSS({ ...spec, left: currentLeft });\n }\n return state;\n};\nexport const getNavigableIndexes = spec => {\n let max = spec.infinite ? spec.slideCount * 2 : spec.slideCount;\n let breakpoint = spec.infinite ? spec.slidesToShow * -1 : 0;\n let counter = spec.infinite ? spec.slidesToShow * -1 : 0;\n let indexes = [];\n while (breakpoint < max) {\n indexes.push(breakpoint);\n breakpoint = counter + spec.slidesToScroll;\n counter += Math.min(spec.slidesToScroll, spec.slidesToShow);\n }\n return indexes;\n};\nexport const checkNavigable = (spec, index) => {\n const navigables = getNavigableIndexes(spec);\n let prevNavigable = 0;\n if (index > navigables[navigables.length - 1]) {\n index = navigables[navigables.length - 1];\n } else {\n for (let n in navigables) {\n if (index < navigables[n]) {\n index = prevNavigable;\n break;\n }\n prevNavigable = navigables[n];\n }\n }\n return index;\n};\nexport const getSlideCount = spec => {\n const centerOffset = spec.centerMode\n ? spec.slideWidth * Math.floor(spec.slidesToShow / 2)\n : 0;\n if (spec.swipeToSlide) {\n let swipedSlide;\n const slickList = ReactDOM.findDOMNode(spec.listRef);\n const slides = slickList.querySelectorAll(\".slick-slide\");\n Array.from(slides).every(slide => {\n if (!spec.vertical) {\n if (\n slide.offsetLeft - centerOffset + getWidth(slide) / 2 >\n spec.swipeLeft * -1\n ) {\n swipedSlide = slide;\n return false;\n }\n } else {\n if (slide.offsetTop + getHeight(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n }\n\n return true;\n });\n\n if (!swipedSlide) {\n return 0;\n }\n const currentIndex =\n spec.rtl === true\n ? spec.slideCount - spec.currentSlide\n : spec.currentSlide;\n const slidesTraversed =\n Math.abs(swipedSlide.dataset.index - currentIndex) || 1;\n return slidesTraversed;\n } else {\n return spec.slidesToScroll;\n }\n};\n\nexport const checkSpecKeys = (spec, keysArray) =>\n keysArray.reduce((value, key) => value && spec.hasOwnProperty(key), true)\n ? null\n : console.error(\"Keys Missing:\", spec);\n\nexport const getTrackCSS = spec => {\n checkSpecKeys(spec, [\n \"left\",\n \"variableWidth\",\n \"slideCount\",\n \"slidesToShow\",\n \"slideWidth\"\n ]);\n let trackWidth, trackHeight;\n const trackChildren = spec.slideCount + 2 * spec.slidesToShow;\n if (!spec.vertical) {\n trackWidth = getTotalSlides(spec) * spec.slideWidth;\n } else {\n trackHeight = trackChildren * spec.slideHeight;\n }\n let style = {\n opacity: 1,\n transition: \"\",\n WebkitTransition: \"\"\n };\n if (spec.useTransform) {\n let WebkitTransform = !spec.vertical\n ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\"\n : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n let transform = !spec.vertical\n ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\"\n : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n let msTransform = !spec.vertical\n ? \"translateX(\" + spec.left + \"px)\"\n : \"translateY(\" + spec.left + \"px)\";\n style = {\n ...style,\n WebkitTransform,\n transform,\n msTransform\n };\n } else {\n if (spec.vertical) {\n style[\"top\"] = spec.left;\n } else {\n style[\"left\"] = spec.left;\n }\n }\n if (spec.fade) style = { opacity: 1 };\n if (trackWidth) style.width = trackWidth;\n if (trackHeight) style.height = trackHeight;\n\n // Fallback for IE8\n if (window && !window.addEventListener && window.attachEvent) {\n if (!spec.vertical) {\n style.marginLeft = spec.left + \"px\";\n } else {\n style.marginTop = spec.left + \"px\";\n }\n }\n\n return style;\n};\nexport const getTrackAnimateCSS = spec => {\n checkSpecKeys(spec, [\n \"left\",\n \"variableWidth\",\n \"slideCount\",\n \"slidesToShow\",\n \"slideWidth\",\n \"speed\",\n \"cssEase\"\n ]);\n let style = getTrackCSS(spec);\n // useCSS is true by default so it can be undefined\n if (spec.useTransform) {\n style.WebkitTransition =\n \"-webkit-transform \" + spec.speed + \"ms \" + spec.cssEase;\n style.transition = \"transform \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n if (spec.vertical) {\n style.transition = \"top \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n style.transition = \"left \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n return style;\n};\nexport const getTrackLeft = spec => {\n if (spec.unslick) {\n return 0;\n }\n\n checkSpecKeys(spec, [\n \"slideIndex\",\n \"trackRef\",\n \"infinite\",\n \"centerMode\",\n \"slideCount\",\n \"slidesToShow\",\n \"slidesToScroll\",\n \"slideWidth\",\n \"listWidth\",\n \"variableWidth\",\n \"slideHeight\"\n ]);\n\n const {\n slideIndex,\n trackRef,\n infinite,\n centerMode,\n slideCount,\n slidesToShow,\n slidesToScroll,\n slideWidth,\n listWidth,\n variableWidth,\n slideHeight,\n fade,\n vertical\n } = spec;\n\n var slideOffset = 0;\n var targetLeft;\n var targetSlide;\n var verticalOffset = 0;\n\n if (fade || spec.slideCount === 1) {\n return 0;\n }\n\n let slidesToOffset = 0;\n if (infinite) {\n slidesToOffset = -getPreClones(spec); // bring active slide to the beginning of visual area\n // if next scroll doesn't have enough children, just reach till the end of original slides instead of shifting slidesToScroll children\n if (\n slideCount % slidesToScroll !== 0 &&\n slideIndex + slidesToScroll > slideCount\n ) {\n slidesToOffset = -(slideIndex > slideCount\n ? slidesToShow - (slideIndex - slideCount)\n : slideCount % slidesToScroll);\n }\n // shift current slide to center of the frame\n if (centerMode) {\n slidesToOffset += parseInt(slidesToShow / 2);\n }\n } else {\n if (\n slideCount % slidesToScroll !== 0 &&\n slideIndex + slidesToScroll > slideCount\n ) {\n slidesToOffset = slidesToShow - slideCount % slidesToScroll;\n }\n if (centerMode) {\n slidesToOffset = parseInt(slidesToShow / 2);\n }\n }\n slideOffset = slidesToOffset * slideWidth;\n verticalOffset = slidesToOffset * slideHeight;\n\n if (!vertical) {\n targetLeft = slideIndex * slideWidth * -1 + slideOffset;\n } else {\n targetLeft = slideIndex * slideHeight * -1 + verticalOffset;\n }\n\n if (variableWidth === true) {\n var targetSlideIndex;\n let trackElem = ReactDOM.findDOMNode(trackRef);\n targetSlideIndex = slideIndex + getPreClones(spec);\n targetSlide = trackElem && trackElem.childNodes[targetSlideIndex];\n targetLeft = targetSlide ? targetSlide.offsetLeft * -1 : 0;\n if (centerMode === true) {\n targetSlideIndex = infinite\n ? slideIndex + getPreClones(spec)\n : slideIndex;\n targetSlide = trackElem && trackElem.children[targetSlideIndex];\n targetLeft = 0;\n for (let slide = 0; slide < targetSlideIndex; slide++) {\n targetLeft -=\n trackElem &&\n trackElem.children[slide] &&\n trackElem.children[slide].offsetWidth;\n }\n targetLeft -= parseInt(spec.centerPadding);\n targetLeft += targetSlide && (listWidth - targetSlide.offsetWidth) / 2;\n }\n }\n\n return targetLeft;\n};\n\nexport const getPreClones = spec => {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n if (spec.variableWidth) {\n return spec.slideCount;\n }\n return spec.slidesToShow + (spec.centerMode ? 1 : 0);\n};\n\nexport const getPostClones = spec => {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n return spec.slideCount;\n};\n\nexport const getTotalSlides = spec =>\n spec.slideCount === 1\n ? 1\n : getPreClones(spec) + spec.slideCount + getPostClones(spec);\nexport const siblingDirection = spec => {\n if (spec.targetSlide > spec.currentSlide) {\n if (spec.targetSlide > spec.currentSlide + slidesOnRight(spec)) {\n return \"left\";\n }\n return \"right\";\n } else {\n if (spec.targetSlide < spec.currentSlide - slidesOnLeft(spec)) {\n return \"right\";\n }\n return \"left\";\n }\n};\n\nexport const slidesOnRight = ({\n slidesToShow,\n centerMode,\n rtl,\n centerPadding\n}) => {\n // returns no of slides on the right of active slide\n if (centerMode) {\n let right = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) right += 1;\n if (rtl && slidesToShow % 2 === 0) right += 1;\n return right;\n }\n if (rtl) {\n return 0;\n }\n return slidesToShow - 1;\n};\n\nexport const slidesOnLeft = ({\n slidesToShow,\n centerMode,\n rtl,\n centerPadding\n}) => {\n // returns no of slides on the left of active slide\n if (centerMode) {\n let left = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) left += 1;\n if (!rtl && slidesToShow % 2 === 0) left += 1;\n return left;\n }\n if (rtl) {\n return slidesToShow - 1;\n }\n return 0;\n};\n\nexport const canUseDOM = () =>\n !!(\n typeof window !== \"undefined\" &&\n window.document &&\n window.document.createElement\n );\n","\"use strict\";\n\nimport React from \"react\";\nimport classnames from \"classnames\";\nimport {\n lazyStartIndex,\n lazyEndIndex,\n getPreClones\n} from \"./utils/innerSliderUtils\";\n\n// given specifications/props for a slide, fetch all the classes that need to be applied to the slide\nconst getSlideClasses = spec => {\n let slickActive, slickCenter, slickCloned;\n let centerOffset, index;\n\n if (spec.rtl) {\n index = spec.slideCount - 1 - spec.index;\n } else {\n index = spec.index;\n }\n slickCloned = index < 0 || index >= spec.slideCount;\n if (spec.centerMode) {\n centerOffset = Math.floor(spec.slidesToShow / 2);\n slickCenter = (index - spec.currentSlide) % spec.slideCount === 0;\n if (\n index > spec.currentSlide - centerOffset - 1 &&\n index <= spec.currentSlide + centerOffset\n ) {\n slickActive = true;\n }\n } else {\n slickActive =\n spec.currentSlide <= index &&\n index < spec.currentSlide + spec.slidesToShow;\n }\n let slickCurrent = index === spec.currentSlide;\n return {\n \"slick-slide\": true,\n \"slick-active\": slickActive,\n \"slick-center\": slickCenter,\n \"slick-cloned\": slickCloned,\n \"slick-current\": slickCurrent // dubious in case of RTL\n };\n};\n\nconst getSlideStyle = spec => {\n let style = {};\n\n if (spec.variableWidth === undefined || spec.variableWidth === false) {\n style.width = spec.slideWidth;\n }\n\n if (spec.fade) {\n style.position = \"relative\";\n if (spec.vertical) {\n style.top = -spec.index * parseInt(spec.slideHeight);\n } else {\n style.left = -spec.index * parseInt(spec.slideWidth);\n }\n style.opacity = spec.currentSlide === spec.index ? 1 : 0;\n style.transition =\n \"opacity \" +\n spec.speed +\n \"ms \" +\n spec.cssEase +\n \", \" +\n \"visibility \" +\n spec.speed +\n \"ms \" +\n spec.cssEase;\n style.WebkitTransition =\n \"opacity \" +\n spec.speed +\n \"ms \" +\n spec.cssEase +\n \", \" +\n \"visibility \" +\n spec.speed +\n \"ms \" +\n spec.cssEase;\n }\n\n return style;\n};\n\nconst getKey = (child, fallbackKey) => child.key || fallbackKey;\n\nconst renderSlides = spec => {\n let key;\n let slides = [];\n let preCloneSlides = [];\n let postCloneSlides = [];\n let childrenCount = React.Children.count(spec.children);\n let startIndex = lazyStartIndex(spec);\n let endIndex = lazyEndIndex(spec);\n\n React.Children.forEach(spec.children, (elem, index) => {\n let child;\n let childOnClickOptions = {\n message: \"children\",\n index: index,\n slidesToScroll: spec.slidesToScroll,\n currentSlide: spec.currentSlide\n };\n\n // in case of lazyLoad, whether or not we want to fetch the slide\n if (\n !spec.lazyLoad ||\n (spec.lazyLoad && spec.lazyLoadedList.indexOf(index) >= 0)\n ) {\n child = elem;\n } else {\n child =
;\n }\n let childStyle = getSlideStyle({ ...spec, index });\n let slideClass = child.props.className || \"\";\n let slideClasses = getSlideClasses({ ...spec, index });\n // push a cloned element of the desired slide\n slides.push(\n React.cloneElement(child, {\n key: \"original\" + getKey(child, index),\n \"data-index\": index,\n className: classnames(slideClasses, slideClass),\n tabIndex: \"-1\",\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: { outline: \"none\", ...(child.props.style || {}), ...childStyle },\n onClick: e => {\n child.props && child.props.onClick && child.props.onClick(e);\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n })\n );\n\n // if slide needs to be precloned or postcloned\n if (spec.infinite && spec.fade === false) {\n let preCloneNo = childrenCount - index;\n if (\n preCloneNo <= getPreClones(spec) &&\n childrenCount !== spec.slidesToShow\n ) {\n key = -preCloneNo;\n if (key >= startIndex) {\n child = elem;\n }\n slideClasses = getSlideClasses({ ...spec, index: key });\n preCloneSlides.push(\n React.cloneElement(child, {\n key: \"precloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: classnames(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: { ...(child.props.style || {}), ...childStyle },\n onClick: e => {\n child.props && child.props.onClick && child.props.onClick(e);\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n })\n );\n }\n\n if (childrenCount !== spec.slidesToShow) {\n key = childrenCount + index;\n if (key < endIndex) {\n child = elem;\n }\n slideClasses = getSlideClasses({ ...spec, index: key });\n postCloneSlides.push(\n React.cloneElement(child, {\n key: \"postcloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: classnames(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: { ...(child.props.style || {}), ...childStyle },\n onClick: e => {\n child.props && child.props.onClick && child.props.onClick(e);\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n })\n );\n }\n }\n });\n\n if (spec.rtl) {\n return preCloneSlides.concat(slides, postCloneSlides).reverse();\n } else {\n return preCloneSlides.concat(slides, postCloneSlides);\n }\n};\n\nexport class Track extends React.PureComponent {\n render() {\n const slides = renderSlides(this.props);\n const { onMouseEnter, onMouseOver, onMouseLeave } = this.props;\n const mouseEvents = { onMouseEnter, onMouseOver, onMouseLeave };\n return (\n \n {slides}\n
\n );\n }\n}\n","\"use strict\";\n\nimport React from \"react\";\nimport classnames from \"classnames\";\n\nconst getDotCount = spec => {\n let dots;\n\n if (spec.infinite) {\n dots = Math.ceil(spec.slideCount / spec.slidesToScroll);\n } else {\n dots =\n Math.ceil((spec.slideCount - spec.slidesToShow) / spec.slidesToScroll) +\n 1;\n }\n\n return dots;\n};\n\nexport class Dots extends React.PureComponent {\n clickHandler(options, e) {\n // In Autoplay the focus stays on clicked button even after transition\n // to next slide. That only goes away by click somewhere outside\n e.preventDefault();\n this.props.clickHandler(options);\n }\n render() {\n let dotCount = getDotCount({\n slideCount: this.props.slideCount,\n slidesToScroll: this.props.slidesToScroll,\n slidesToShow: this.props.slidesToShow,\n infinite: this.props.infinite\n });\n\n // Apply join & split to Array to pre-fill it for IE8\n //\n // Credit: http://stackoverflow.com/a/13735425/1849458\n const { onMouseEnter, onMouseOver, onMouseLeave } = this.props;\n const mouseEvents = { onMouseEnter, onMouseOver, onMouseLeave };\n let dots = Array.apply(\n null,\n Array(dotCount + 1)\n .join(\"0\")\n .split(\"\")\n ).map((x, i) => {\n let leftBound = i * this.props.slidesToScroll;\n let rightBound =\n i * this.props.slidesToScroll + (this.props.slidesToScroll - 1);\n let className = classnames({\n \"slick-active\":\n this.props.currentSlide >= leftBound &&\n this.props.currentSlide <= rightBound\n });\n\n let dotOptions = {\n message: \"dots\",\n index: i,\n slidesToScroll: this.props.slidesToScroll,\n currentSlide: this.props.currentSlide\n };\n\n let onClick = this.clickHandler.bind(this, dotOptions);\n return (\n
  • \n {React.cloneElement(this.props.customPaging(i), { onClick })}\n
  • \n );\n });\n\n return React.cloneElement(this.props.appendDots(dots), {\n className: this.props.dotsClass,\n ...mouseEvents\n });\n }\n}\n","\"use strict\";\n\nimport React from \"react\";\nimport classnames from \"classnames\";\nimport { canGoNext } from \"./utils/innerSliderUtils\";\n\nexport class PrevArrow extends React.PureComponent {\n clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n this.props.clickHandler(options, e);\n }\n render() {\n let prevClasses = { \"slick-arrow\": true, \"slick-prev\": true };\n let prevHandler = this.clickHandler.bind(this, { message: \"previous\" });\n\n if (\n !this.props.infinite &&\n (this.props.currentSlide === 0 ||\n this.props.slideCount <= this.props.slidesToShow)\n ) {\n prevClasses[\"slick-disabled\"] = true;\n prevHandler = null;\n }\n\n let prevArrowProps = {\n key: \"0\",\n \"data-role\": \"none\",\n className: classnames(prevClasses),\n style: { display: \"block\" },\n onClick: prevHandler\n };\n let customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n let prevArrow;\n\n if (this.props.prevArrow) {\n prevArrow = React.cloneElement(this.props.prevArrow, {\n ...prevArrowProps,\n ...customProps\n });\n } else {\n prevArrow = (\n \n );\n }\n\n return prevArrow;\n }\n}\n\nexport class NextArrow extends React.PureComponent {\n clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n this.props.clickHandler(options, e);\n }\n render() {\n let nextClasses = { \"slick-arrow\": true, \"slick-next\": true };\n let nextHandler = this.clickHandler.bind(this, { message: \"next\" });\n\n if (!canGoNext(this.props)) {\n nextClasses[\"slick-disabled\"] = true;\n nextHandler = null;\n }\n\n let nextArrowProps = {\n key: \"1\",\n \"data-role\": \"none\",\n className: classnames(nextClasses),\n style: { display: \"block\" },\n onClick: nextHandler\n };\n let customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n let nextArrow;\n\n if (this.props.nextArrow) {\n nextArrow = React.cloneElement(this.props.nextArrow, {\n ...nextArrowProps,\n ...customProps\n });\n } else {\n nextArrow = (\n \n );\n }\n\n return nextArrow;\n }\n}\n","\"use strict\";\n\nimport React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport initialState from \"./initial-state\";\nimport debounce from \"lodash.debounce\";\nimport classnames from \"classnames\";\nimport {\n getOnDemandLazySlides,\n extractObject,\n initializedState,\n getHeight,\n canGoNext,\n slideHandler,\n changeSlide,\n keyHandler,\n swipeStart,\n swipeMove,\n swipeEnd,\n getPreClones,\n getPostClones,\n getTrackLeft,\n getTrackCSS\n} from \"./utils/innerSliderUtils\";\n\nimport { Track } from \"./track\";\nimport { Dots } from \"./dots\";\nimport { PrevArrow, NextArrow } from \"./arrows\";\nimport ResizeObserver from \"resize-observer-polyfill\";\n\nexport class InnerSlider extends React.Component {\n constructor(props) {\n super(props);\n this.list = null;\n this.track = null;\n this.state = {\n ...initialState,\n currentSlide: this.props.initialSlide,\n slideCount: React.Children.count(this.props.children)\n };\n this.callbackTimers = [];\n this.clickable = true;\n this.debouncedResize = null;\n }\n listRefHandler = ref => (this.list = ref);\n trackRefHandler = ref => (this.track = ref);\n adaptHeight = () => {\n if (this.props.adaptiveHeight && this.list) {\n const elem = this.list.querySelector(\n `[data-index=\"${this.state.currentSlide}\"]`\n );\n this.list.style.height = getHeight(elem) + \"px\";\n }\n };\n UNSAFE_componentWillMount = () => {\n this.ssrInit();\n this.props.onInit && this.props.onInit();\n if (this.props.lazyLoad) {\n let slidesToLoad = getOnDemandLazySlides({\n ...this.props,\n ...this.state\n });\n if (slidesToLoad.length > 0) {\n this.setState(prevState => ({\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n }));\n if (this.props.onLazyLoad) {\n this.props.onLazyLoad(slidesToLoad);\n }\n }\n }\n };\n componentDidMount = () => {\n let spec = { listRef: this.list, trackRef: this.track, ...this.props };\n this.updateState(spec, true, () => {\n this.adaptHeight();\n this.props.autoplay && this.autoPlay(\"update\");\n });\n if (this.props.lazyLoad === \"progressive\") {\n this.lazyLoadTimer = setInterval(this.progressiveLazyLoad, 1000);\n }\n this.ro = new ResizeObserver(() => {\n if (this.state.animating) {\n this.onWindowResized(false); // don't set trackStyle hence don't break animation\n this.callbackTimers.push(\n setTimeout(() => this.onWindowResized(), this.props.speed)\n );\n } else {\n this.onWindowResized();\n }\n });\n this.ro.observe(this.list);\n Array.prototype.forEach.call(\n document.querySelectorAll(\".slick-slide\"),\n slide => {\n slide.onfocus = this.props.pauseOnFocus ? this.onSlideFocus : null;\n slide.onblur = this.props.pauseOnFocus ? this.onSlideBlur : null;\n }\n );\n // To support server-side rendering\n if (!window) {\n return;\n }\n if (window.addEventListener) {\n window.addEventListener(\"resize\", this.onWindowResized);\n } else {\n window.attachEvent(\"onresize\", this.onWindowResized);\n }\n };\n componentWillUnmount = () => {\n if (this.animationEndCallback) {\n clearTimeout(this.animationEndCallback);\n }\n if (this.lazyLoadTimer) {\n clearInterval(this.lazyLoadTimer);\n }\n if (this.callbackTimers.length) {\n this.callbackTimers.forEach(timer => clearTimeout(timer));\n this.callbackTimers = [];\n }\n if (window.addEventListener) {\n window.removeEventListener(\"resize\", this.onWindowResized);\n } else {\n window.detachEvent(\"onresize\", this.onWindowResized);\n }\n if (this.autoplayTimer) {\n clearInterval(this.autoplayTimer);\n }\n };\n UNSAFE_componentWillReceiveProps = nextProps => {\n let spec = {\n listRef: this.list,\n trackRef: this.track,\n ...nextProps,\n ...this.state\n };\n let setTrackStyle = false;\n for (let key of Object.keys(this.props)) {\n if (!nextProps.hasOwnProperty(key)) {\n setTrackStyle = true;\n break;\n }\n if (\n typeof nextProps[key] === \"object\" ||\n typeof nextProps[key] === \"function\"\n ) {\n continue;\n }\n if (nextProps[key] !== this.props[key]) {\n setTrackStyle = true;\n break;\n }\n }\n this.updateState(spec, setTrackStyle, () => {\n if (this.state.currentSlide >= React.Children.count(nextProps.children)) {\n this.changeSlide({\n message: \"index\",\n index:\n React.Children.count(nextProps.children) - nextProps.slidesToShow,\n currentSlide: this.state.currentSlide\n });\n }\n if (nextProps.autoplay) {\n this.autoPlay(\"update\");\n } else {\n this.pause(\"paused\");\n }\n });\n };\n componentDidUpdate = () => {\n this.checkImagesLoad();\n this.props.onReInit && this.props.onReInit();\n if (this.props.lazyLoad) {\n let slidesToLoad = getOnDemandLazySlides({\n ...this.props,\n ...this.state\n });\n if (slidesToLoad.length > 0) {\n this.setState(prevState => ({\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n }));\n if (this.props.onLazyLoad) {\n this.props.onLazyLoad(slidesToLoad);\n }\n }\n }\n // if (this.props.onLazyLoad) {\n // this.props.onLazyLoad([leftMostSlide])\n // }\n this.adaptHeight();\n };\n onWindowResized = setTrackStyle => {\n if (this.debouncedResize) this.debouncedResize.cancel();\n this.debouncedResize = debounce(() => this.resizeWindow(setTrackStyle), 50);\n this.debouncedResize();\n };\n resizeWindow = (setTrackStyle = true) => {\n if (!ReactDOM.findDOMNode(this.track)) return;\n let spec = {\n listRef: this.list,\n trackRef: this.track,\n ...this.props,\n ...this.state\n };\n this.updateState(spec, setTrackStyle, () => {\n if (this.props.autoplay) this.autoPlay(\"update\");\n else this.pause(\"paused\");\n });\n // animating state should be cleared while resizing, otherwise autoplay stops working\n this.setState({\n animating: false\n });\n clearTimeout(this.animationEndCallback);\n delete this.animationEndCallback;\n };\n updateState = (spec, setTrackStyle, callback) => {\n let updatedState = initializedState(spec);\n spec = { ...spec, ...updatedState, slideIndex: updatedState.currentSlide };\n let targetLeft = getTrackLeft(spec);\n spec = { ...spec, left: targetLeft };\n let trackStyle = getTrackCSS(spec);\n if (\n setTrackStyle ||\n React.Children.count(this.props.children) !==\n React.Children.count(spec.children)\n ) {\n updatedState[\"trackStyle\"] = trackStyle;\n }\n this.setState(updatedState, callback);\n };\n\n ssrInit = () => {\n if (this.props.variableWidth) {\n let trackWidth = 0,\n trackLeft = 0;\n let childrenWidths = [];\n let preClones = getPreClones({\n ...this.props,\n ...this.state,\n slideCount: this.props.children.length\n });\n let postClones = getPostClones({\n ...this.props,\n ...this.state,\n slideCount: this.props.children.length\n });\n this.props.children.forEach(child => {\n childrenWidths.push(child.props.style.width);\n trackWidth += child.props.style.width;\n });\n for (let i = 0; i < preClones; i++) {\n trackLeft += childrenWidths[childrenWidths.length - 1 - i];\n trackWidth += childrenWidths[childrenWidths.length - 1 - i];\n }\n for (let i = 0; i < postClones; i++) {\n trackWidth += childrenWidths[i];\n }\n for (let i = 0; i < this.state.currentSlide; i++) {\n trackLeft += childrenWidths[i];\n }\n let trackStyle = {\n width: trackWidth + \"px\",\n left: -trackLeft + \"px\"\n };\n if (this.props.centerMode) {\n let currentWidth = `${childrenWidths[this.state.currentSlide]}px`;\n trackStyle.left = `calc(${trackStyle.left} + (100% - ${currentWidth}) / 2 ) `;\n }\n this.setState({\n trackStyle\n });\n return;\n }\n let childrenCount = React.Children.count(this.props.children);\n const spec = { ...this.props, ...this.state, slideCount: childrenCount };\n let slideCount = getPreClones(spec) + getPostClones(spec) + childrenCount;\n let trackWidth = (100 / this.props.slidesToShow) * slideCount;\n let slideWidth = 100 / slideCount;\n let trackLeft =\n (-slideWidth *\n (getPreClones(spec) + this.state.currentSlide) *\n trackWidth) /\n 100;\n if (this.props.centerMode) {\n trackLeft += (100 - (slideWidth * trackWidth) / 100) / 2;\n }\n let trackStyle = {\n width: trackWidth + \"%\",\n left: trackLeft + \"%\"\n };\n this.setState({\n slideWidth: slideWidth + \"%\",\n trackStyle: trackStyle\n });\n };\n checkImagesLoad = () => {\n let images = document.querySelectorAll(\".slick-slide img\");\n let imagesCount = images.length,\n loadedCount = 0;\n Array.prototype.forEach.call(images, image => {\n const handler = () =>\n ++loadedCount && loadedCount >= imagesCount && this.onWindowResized();\n if (!image.onclick) {\n image.onclick = () => image.parentNode.focus();\n } else {\n const prevClickHandler = image.onclick;\n image.onclick = () => {\n prevClickHandler();\n image.parentNode.focus();\n };\n }\n if (!image.onload) {\n if (this.props.lazyLoad) {\n image.onload = () => {\n this.adaptHeight();\n this.callbackTimers.push(\n setTimeout(this.onWindowResized, this.props.speed)\n );\n };\n } else {\n image.onload = handler;\n image.onerror = () => {\n handler();\n this.props.onLazyLoadError && this.props.onLazyLoadError();\n };\n }\n }\n });\n };\n progressiveLazyLoad = () => {\n let slidesToLoad = [];\n const spec = { ...this.props, ...this.state };\n for (\n let index = this.state.currentSlide;\n index < this.state.slideCount + getPostClones(spec);\n index++\n ) {\n if (this.state.lazyLoadedList.indexOf(index) < 0) {\n slidesToLoad.push(index);\n break;\n }\n }\n for (\n let index = this.state.currentSlide - 1;\n index >= -getPreClones(spec);\n index--\n ) {\n if (this.state.lazyLoadedList.indexOf(index) < 0) {\n slidesToLoad.push(index);\n break;\n }\n }\n if (slidesToLoad.length > 0) {\n this.setState(state => ({\n lazyLoadedList: state.lazyLoadedList.concat(slidesToLoad)\n }));\n if (this.props.onLazyLoad) {\n this.props.onLazyLoad(slidesToLoad);\n }\n } else {\n if (this.lazyLoadTimer) {\n clearInterval(this.lazyLoadTimer);\n delete this.lazyLoadTimer;\n }\n }\n };\n slideHandler = (index, dontAnimate = false) => {\n const {\n asNavFor,\n beforeChange,\n onLazyLoad,\n speed,\n afterChange\n } = this.props;\n // capture currentslide before state is updated\n const currentSlide = this.state.currentSlide;\n let { state, nextState } = slideHandler({\n index,\n ...this.props,\n ...this.state,\n trackRef: this.track,\n useCSS: this.props.useCSS && !dontAnimate\n });\n if (!state) return;\n beforeChange && beforeChange(currentSlide, state.currentSlide);\n let slidesToLoad = state.lazyLoadedList.filter(\n value => this.state.lazyLoadedList.indexOf(value) < 0\n );\n onLazyLoad && slidesToLoad.length > 0 && onLazyLoad(slidesToLoad);\n this.setState(state, () => {\n asNavFor && asNavFor.innerSlider.slideHandler(index);\n if (!nextState) return;\n this.animationEndCallback = setTimeout(() => {\n const { animating, ...firstBatch } = nextState;\n this.setState(firstBatch, () => {\n this.callbackTimers.push(\n setTimeout(() => this.setState({ animating }), 10)\n );\n afterChange && afterChange(state.currentSlide);\n delete this.animationEndCallback;\n });\n }, speed);\n });\n };\n changeSlide = (options, dontAnimate = false) => {\n const spec = { ...this.props, ...this.state };\n let targetSlide = changeSlide(spec, options);\n if (targetSlide !== 0 && !targetSlide) return;\n if (dontAnimate === true) {\n this.slideHandler(targetSlide, dontAnimate);\n } else {\n this.slideHandler(targetSlide);\n }\n };\n clickHandler = e => {\n if (this.clickable === false) {\n e.stopPropagation();\n e.preventDefault();\n }\n this.clickable = true;\n };\n keyHandler = e => {\n let dir = keyHandler(e, this.props.accessibility, this.props.rtl);\n dir !== \"\" && this.changeSlide({ message: dir });\n };\n selectHandler = options => {\n this.changeSlide(options);\n };\n disableBodyScroll = () => {\n const preventDefault = e => {\n e = e || window.event;\n if (e.preventDefault) e.preventDefault();\n e.returnValue = false;\n };\n window.ontouchmove = preventDefault;\n };\n enableBodyScroll = () => {\n window.ontouchmove = null;\n };\n swipeStart = e => {\n if (this.props.verticalSwiping) {\n this.disableBodyScroll();\n }\n let state = swipeStart(e, this.props.swipe, this.props.draggable);\n state !== \"\" && this.setState(state);\n };\n swipeMove = e => {\n let state = swipeMove(e, {\n ...this.props,\n ...this.state,\n trackRef: this.track,\n listRef: this.list,\n slideIndex: this.state.currentSlide\n });\n if (!state) return;\n if (state[\"swiping\"]) {\n this.clickable = false;\n }\n this.setState(state);\n };\n swipeEnd = e => {\n let state = swipeEnd(e, {\n ...this.props,\n ...this.state,\n trackRef: this.track,\n listRef: this.list,\n slideIndex: this.state.currentSlide\n });\n if (!state) return;\n let triggerSlideHandler = state[\"triggerSlideHandler\"];\n delete state[\"triggerSlideHandler\"];\n this.setState(state);\n if (triggerSlideHandler === undefined) return;\n this.slideHandler(triggerSlideHandler);\n if (this.props.verticalSwiping) {\n this.enableBodyScroll();\n }\n };\n slickPrev = () => {\n // this and fellow methods are wrapped in setTimeout\n // to make sure initialize setState has happened before\n // any of such methods are called\n this.callbackTimers.push(\n setTimeout(() => this.changeSlide({ message: \"previous\" }), 0)\n );\n };\n slickNext = () => {\n this.callbackTimers.push(\n setTimeout(() => this.changeSlide({ message: \"next\" }), 0)\n );\n };\n slickGoTo = (slide, dontAnimate = false) => {\n slide = Number(slide);\n if (isNaN(slide)) return \"\";\n this.callbackTimers.push(\n setTimeout(\n () =>\n this.changeSlide(\n {\n message: \"index\",\n index: slide,\n currentSlide: this.state.currentSlide\n },\n dontAnimate\n ),\n 0\n )\n );\n };\n play = () => {\n var nextIndex;\n if (this.props.rtl) {\n nextIndex = this.state.currentSlide - this.props.slidesToScroll;\n } else {\n if (canGoNext({ ...this.props, ...this.state })) {\n nextIndex = this.state.currentSlide + this.props.slidesToScroll;\n } else {\n return false;\n }\n }\n\n this.slideHandler(nextIndex);\n };\n\n autoPlay = playType => {\n if (this.autoplayTimer) {\n clearInterval(this.autoplayTimer);\n }\n const autoplaying = this.state.autoplaying;\n if (playType === \"update\") {\n if (\n autoplaying === \"hovered\" ||\n autoplaying === \"focused\" ||\n autoplaying === \"paused\"\n ) {\n return;\n }\n } else if (playType === \"leave\") {\n if (autoplaying === \"paused\" || autoplaying === \"focused\") {\n return;\n }\n } else if (playType === \"blur\") {\n if (autoplaying === \"paused\" || autoplaying === \"hovered\") {\n return;\n }\n }\n this.autoplayTimer = setInterval(this.play, this.props.autoplaySpeed + 50);\n this.setState({ autoplaying: \"playing\" });\n };\n pause = pauseType => {\n if (this.autoplayTimer) {\n clearInterval(this.autoplayTimer);\n this.autoplayTimer = null;\n }\n const autoplaying = this.state.autoplaying;\n if (pauseType === \"paused\") {\n this.setState({ autoplaying: \"paused\" });\n } else if (pauseType === \"focused\") {\n if (autoplaying === \"hovered\" || autoplaying === \"playing\") {\n this.setState({ autoplaying: \"focused\" });\n }\n } else {\n // pauseType is 'hovered'\n if (autoplaying === \"playing\") {\n this.setState({ autoplaying: \"hovered\" });\n }\n }\n };\n onDotsOver = () => this.props.autoplay && this.pause(\"hovered\");\n onDotsLeave = () =>\n this.props.autoplay &&\n this.state.autoplaying === \"hovered\" &&\n this.autoPlay(\"leave\");\n onTrackOver = () => this.props.autoplay && this.pause(\"hovered\");\n onTrackLeave = () =>\n this.props.autoplay &&\n this.state.autoplaying === \"hovered\" &&\n this.autoPlay(\"leave\");\n onSlideFocus = () => this.props.autoplay && this.pause(\"focused\");\n onSlideBlur = () =>\n this.props.autoplay &&\n this.state.autoplaying === \"focused\" &&\n this.autoPlay(\"blur\");\n\n render = () => {\n var className = classnames(\"slick-slider\", this.props.className, {\n \"slick-vertical\": this.props.vertical,\n \"slick-initialized\": true\n });\n let spec = { ...this.props, ...this.state };\n let trackProps = extractObject(spec, [\n \"fade\",\n \"cssEase\",\n \"speed\",\n \"infinite\",\n \"centerMode\",\n \"focusOnSelect\",\n \"currentSlide\",\n \"lazyLoad\",\n \"lazyLoadedList\",\n \"rtl\",\n \"slideWidth\",\n \"slideHeight\",\n \"listHeight\",\n \"vertical\",\n \"slidesToShow\",\n \"slidesToScroll\",\n \"slideCount\",\n \"trackStyle\",\n \"variableWidth\",\n \"unslick\",\n \"centerPadding\"\n ]);\n const { pauseOnHover } = this.props;\n trackProps = {\n ...trackProps,\n onMouseEnter: pauseOnHover ? this.onTrackOver : null,\n onMouseLeave: pauseOnHover ? this.onTrackLeave : null,\n onMouseOver: pauseOnHover ? this.onTrackOver : null,\n focusOnSelect: this.props.focusOnSelect ? this.selectHandler : null\n };\n\n var dots;\n if (\n this.props.dots === true &&\n this.state.slideCount >= this.props.slidesToShow\n ) {\n let dotProps = extractObject(spec, [\n \"dotsClass\",\n \"slideCount\",\n \"slidesToShow\",\n \"currentSlide\",\n \"slidesToScroll\",\n \"clickHandler\",\n \"children\",\n \"customPaging\",\n \"infinite\",\n \"appendDots\"\n ]);\n const { pauseOnDotsHover } = this.props;\n dotProps = {\n ...dotProps,\n clickHandler: this.changeSlide,\n onMouseEnter: pauseOnDotsHover ? this.onDotsLeave : null,\n onMouseOver: pauseOnDotsHover ? this.onDotsOver : null,\n onMouseLeave: pauseOnDotsHover ? this.onDotsLeave : null\n };\n dots = ;\n }\n\n var prevArrow, nextArrow;\n let arrowProps = extractObject(spec, [\n \"infinite\",\n \"centerMode\",\n \"currentSlide\",\n \"slideCount\",\n \"slidesToShow\",\n \"prevArrow\",\n \"nextArrow\"\n ]);\n arrowProps.clickHandler = this.changeSlide;\n\n if (this.props.arrows) {\n prevArrow = ;\n nextArrow = ;\n }\n\n var verticalHeightStyle = null;\n\n if (this.props.vertical) {\n verticalHeightStyle = {\n height: this.state.listHeight\n };\n }\n\n var centerPaddingStyle = null;\n\n if (this.props.vertical === false) {\n if (this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: \"0px \" + this.props.centerPadding\n };\n }\n } else {\n if (this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: this.props.centerPadding + \" 0px\"\n };\n }\n }\n\n const listStyle = { ...verticalHeightStyle, ...centerPaddingStyle };\n const touchMove = this.props.touchMove;\n let listProps = {\n className: \"slick-list\",\n style: listStyle,\n onClick: this.clickHandler,\n onMouseDown: touchMove ? this.swipeStart : null,\n onMouseMove: this.state.dragging && touchMove ? this.swipeMove : null,\n onMouseUp: touchMove ? this.swipeEnd : null,\n onMouseLeave: this.state.dragging && touchMove ? this.swipeEnd : null,\n onTouchStart: touchMove ? this.swipeStart : null,\n onTouchMove: this.state.dragging && touchMove ? this.swipeMove : null,\n onTouchEnd: touchMove ? this.swipeEnd : null,\n onTouchCancel: this.state.dragging && touchMove ? this.swipeEnd : null,\n onKeyDown: this.props.accessibility ? this.keyHandler : null\n };\n\n let innerSliderProps = {\n className: className,\n dir: \"ltr\",\n style:this.props.style\n };\n\n if (this.props.unslick) {\n listProps = { className: \"slick-list\" };\n innerSliderProps = { className };\n }\n return (\n
    \n {!this.props.unslick ? prevArrow : \"\"}\n
    \n \n {this.props.children}\n \n
    \n {!this.props.unslick ? nextArrow : \"\"}\n {!this.props.unslick ? dots : \"\"}\n
    \n );\n };\n}\n","import React from \"react\";\n\nlet defaultProps = {\n accessibility: true,\n adaptiveHeight: false,\n afterChange: null,\n appendDots: dots =>
      {dots}
    ,\n arrows: true,\n autoplay: false,\n autoplaySpeed: 3000,\n beforeChange: null,\n centerMode: false,\n centerPadding: \"50px\",\n className: \"\",\n cssEase: \"ease\",\n customPaging: i => ,\n dots: false,\n dotsClass: \"slick-dots\",\n draggable: true,\n easing: \"linear\",\n edgeFriction: 0.35,\n fade: false,\n focusOnSelect: false,\n infinite: true,\n initialSlide: 0,\n lazyLoad: null,\n nextArrow: null,\n onEdge: null,\n onInit: null,\n onLazyLoadError: null,\n onReInit: null,\n pauseOnDotsHover: false,\n pauseOnFocus: false,\n pauseOnHover: true,\n prevArrow: null,\n responsive: null,\n rows: 1,\n rtl: false,\n slide: \"div\",\n slidesPerRow: 1,\n slidesToScroll: 1,\n slidesToShow: 1,\n speed: 500,\n swipe: true,\n swipeEvent: null,\n swipeToSlide: false,\n touchMove: true,\n touchThreshold: 5,\n useCSS: true,\n useTransform: true,\n variableWidth: false,\n vertical: false,\n waitForAnimate: true\n};\n\nexport default defaultProps;\n","\"use strict\";\n\nimport React from \"react\";\nimport { InnerSlider } from \"./inner-slider\";\nimport json2mq from \"json2mq\";\nimport defaultProps from \"./default-props\";\nimport { canUseDOM } from \"./utils/innerSliderUtils\";\nconst enquire = canUseDOM() && require(\"enquire.js\");\n\nexport default class Slider extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n breakpoint: null\n };\n this._responsiveMediaHandlers = [];\n }\n\n innerSliderRefHandler = ref => (this.innerSlider = ref);\n\n media(query, handler) {\n // javascript handler for css media query\n enquire.register(query, handler);\n this._responsiveMediaHandlers.push({ query, handler });\n }\n\n // handles responsive breakpoints\n UNSAFE_componentWillMount() {\n // performance monitoring\n //if (process.env.NODE_ENV !== 'production') {\n //const { whyDidYouUpdate } = require('why-did-you-update')\n //whyDidYouUpdate(React)\n //}\n if (this.props.responsive) {\n let breakpoints = this.props.responsive.map(\n breakpt => breakpt.breakpoint\n );\n // sort them in increasing order of their numerical value\n breakpoints.sort((x, y) => x - y);\n\n breakpoints.forEach((breakpoint, index) => {\n // media query for each breakpoint\n let bQuery;\n if (index === 0) {\n bQuery = json2mq({ minWidth: 0, maxWidth: breakpoint });\n } else {\n bQuery = json2mq({\n minWidth: breakpoints[index - 1] + 1,\n maxWidth: breakpoint\n });\n }\n // when not using server side rendering\n canUseDOM() &&\n this.media(bQuery, () => {\n this.setState({ breakpoint: breakpoint });\n });\n });\n\n // Register media query for full screen. Need to support resize from small to large\n // convert javascript object to media query string\n let query = json2mq({ minWidth: breakpoints.slice(-1)[0] });\n\n canUseDOM() &&\n this.media(query, () => {\n this.setState({ breakpoint: null });\n });\n }\n }\n\n componentWillUnmount() {\n this._responsiveMediaHandlers.forEach(function(obj) {\n enquire.unregister(obj.query, obj.handler);\n });\n }\n\n slickPrev = () => this.innerSlider.slickPrev();\n\n slickNext = () => this.innerSlider.slickNext();\n\n slickGoTo = (slide, dontAnimate = false) =>\n this.innerSlider.slickGoTo(slide, dontAnimate);\n\n slickPause = () => this.innerSlider.pause(\"paused\");\n\n slickPlay = () => this.innerSlider.autoPlay(\"play\");\n\n render() {\n var settings;\n var newProps;\n if (this.state.breakpoint) {\n newProps = this.props.responsive.filter(\n resp => resp.breakpoint === this.state.breakpoint\n );\n settings =\n newProps[0].settings === \"unslick\"\n ? \"unslick\"\n : { ...defaultProps, ...this.props, ...newProps[0].settings };\n } else {\n settings = { ...defaultProps, ...this.props };\n }\n\n // force scrolling by one if centerMode is on\n if (settings.centerMode) {\n if (\n settings.slidesToScroll > 1 &&\n process.env.NODE_ENV !== \"production\"\n ) {\n console.warn(\n `slidesToScroll should be equal to 1 in centerMode, you are using ${settings.slidesToScroll}`\n );\n }\n settings.slidesToScroll = 1;\n }\n // force showing one slide and scrolling by one if the fade mode is on\n if (settings.fade) {\n if (settings.slidesToShow > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\n `slidesToShow should be equal to 1 when fade is true, you're using ${settings.slidesToShow}`\n );\n }\n if (\n settings.slidesToScroll > 1 &&\n process.env.NODE_ENV !== \"production\"\n ) {\n console.warn(\n `slidesToScroll should be equal to 1 when fade is true, you're using ${settings.slidesToScroll}`\n );\n }\n settings.slidesToShow = 1;\n settings.slidesToScroll = 1;\n }\n\n // makes sure that children is an array, even when there is only 1 child\n let children = React.Children.toArray(this.props.children);\n\n // Children may contain false or null, so we should filter them\n // children may also contain string filled with spaces (in certain cases where we use jsx strings)\n children = children.filter(child => {\n if (typeof child === \"string\") {\n return !!child.trim();\n }\n return !!child;\n });\n\n // rows and slidesPerRow logic is handled here\n if (\n settings.variableWidth &&\n (settings.rows > 1 || settings.slidesPerRow > 1)\n ) {\n console.warn(\n `variableWidth is not supported in case of rows > 1 or slidesPerRow > 1`\n );\n settings.variableWidth = false;\n }\n let newChildren = [];\n let currentWidth = null;\n for (\n let i = 0;\n i < children.length;\n i += settings.rows * settings.slidesPerRow\n ) {\n let newSlide = [];\n for (\n let j = i;\n j < i + settings.rows * settings.slidesPerRow;\n j += settings.slidesPerRow\n ) {\n let row = [];\n for (let k = j; k < j + settings.slidesPerRow; k += 1) {\n if (settings.variableWidth && children[k].props.style) {\n currentWidth = children[k].props.style.width;\n }\n if (k >= children.length) break;\n row.push(\n React.cloneElement(children[k], {\n key: 100 * i + 10 * j + k,\n tabIndex: -1,\n style: {\n width: `${100 / settings.slidesPerRow}%`,\n display: \"inline-block\"\n }\n })\n );\n }\n newSlide.push(
    {row}
    );\n }\n if (settings.variableWidth) {\n newChildren.push(\n
    \n {newSlide}\n
    \n );\n } else {\n newChildren.push(
    {newSlide}
    );\n }\n }\n\n if (settings === \"unslick\") {\n const className = \"regular slider \" + (this.props.className || \"\");\n return
    {newChildren}
    ;\n } else if (newChildren.length <= settings.slidesToShow) {\n settings.unslick = true;\n }\n return (\n \n {newChildren}\n \n );\n }\n}\n","import Slider from \"./slider\";\n\nexport default Slider;\n"],"sourceRoot":""}