{"version":3,"sources":["webpack:///./src/components/HeaderMobile/HeaderMobile.tsx","webpack:///./src/components/ServiceMenuMobileLinks/ServiceMenuMobileLinks.tsx","webpack:///./src/components/ServiceMenuMobile/ServiceMenuMobile.tsx","webpack:///./src/components/SideMenuMobile/SideMenuMobile.tsx","webpack:///./src/components/NavigationMobile/NavigationMobile.tsx","webpack:///./src/components/PageLinks/PageLinks.tsx","webpack:///./src/components/ServiceMenuDesktop/ServiceMenuDesktop.tsx","webpack:///./src/components/NavigationDesktop/NavigationDesktop.tsx","webpack:///./src/modules/Navigation/index.ts","webpack:///./src/utils/gtag.ts","webpack:///./src/utils/dom.ts","webpack:///./src/utils/request.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./src/utils/image-utils.ts","webpack:///./node_modules/lodash/isObject.js","webpack:///./node_modules/lodash/throttle.js","webpack:///./node_modules/compute-scroll-into-view/dist/index.mjs","webpack:///./node_modules/downshift/dist/downshift.esm.js","webpack:///./node_modules/lodash/debounce.js","webpack:///./node_modules/lodash/now.js","webpack:///./node_modules/lodash/_root.js","webpack:///./node_modules/lodash/_freeGlobal.js","webpack:///./node_modules/lodash/toNumber.js","webpack:///./node_modules/browser-cookie-lite/index.js","webpack:///./src/components/NotificationCount/NotificationCount.tsx","webpack:///./src/components/NewsTicker/NewsTicker.tsx","webpack:///./src/components/SearchBar/SearchBar.tsx","webpack:///./src/components/Viewport/Viewport.ts","webpack:///./src/components/Accordion/Accordion.tsx","webpack:///./src/modules/Navigation/Navigation.tsx","webpack:///./src/components/PageLogin/PageLogin.tsx","webpack:///./src/components/Dropdown/Dropdown.tsx","webpack:///./src/components/DropdownLinks/DropdownLinks.tsx","webpack:///./src/components/NavigationLogo/NavigationLogo.tsx"],"names":["eventMeta","event","HeaderMobile","_React$Component","_classCallCheck","_callSuper","arguments","_inherits","_createClass","key","get","pageLogin","this","props","alignLogin","React","PageLogin","items","links","title","loggedIn","align","value","_this$props","logo","onToggle","isOpen","notificationCount","className","styles","headerMobile","BaseButton","onClick","cx","burgerHolder","open","burger","NotificationCount","NavigationLogo","Object","assign","logo_mobile","renderPageLogin","_defineProperty","ServiceMenuMobileLinks","item","href","Link","itemLink","itemLinkActive","active","secondary","label","serviceMenuMobileLinks","map","renderItem","ServiceMenuMobile","_this","_len","length","args","Array","_key","concat","isSearchOpen","setState","state","index","Accordion","header","component","link","serviceMenuMobileItem","serviceMenu","searchBtn","onSubmit","serviceMenuMobile","menu","searchTrigger","handleSearchToggle","Icon","iconSrc","search","width","height","icon","triggerText","BaseModal","searchComp","show","hide","SearchBar","onSearchToggle","searchOverlay","_close","Sidebar","Keyframes","Spring","delay","x","close","_asyncToGenerator","_regeneratorRuntime","mark","_callee","call","wrap","_context","prev","next","stop","_x","apply","Content","Trail","opacity","SideMenuMobile","prevProps","body","document","getElementsByTagName","setTimeout","style","overflow","mobileCurrentItems","currentLinksOpen","topLevelLinks","onBackClick","myPageLink","sidebarState","currentLinksState","topLevelLinksState","native","_ref","animated","div","sideMenu","transform","interpolate","Measure","bounds","_ref2","measureRef","contentRect","contentHolder","ref","absolute","disabled","keys","_","i","reverse","_ref3","_objectWithoutProperties","_excluded","_objectSpread","backStringHolder","backString","prevAngle","menuItemHolder","menuItem","linkActive","position","nextAngle","iconName","_ref4","_excluded2","first","NavigationMobile","mobileMenuItems","arr","unshift","push","backLink","backLinkHolder","arrowLeft","breakingNewsLink","_this$state","mobileNavigation","handleToggle","overlay","isActive","handleBackClick","renderBackLink","NewsTicker","top","bottom","DividerComp","marginTop","marginBot","noSideMargin","PageLinks","noUnderline","pageLinks","ServiceMenuDesktop","Dropdown","name","serviceMenuDesktopItem","DropdownLinks","_this2","_this3","serviceMenuDesktop","logo_small","renderSearchBtn","searchBg","container","closeSearch","closeText","times","closeIcon","NavigationDesktop","renderLogo","_this$props2","breakingNewsDesktop","newsItems","labelStyle","backLinkHolderStyle","linkStyle","whiteSpace","textOverflow","maxWidth","bottomBar","renderBreakingNews","onSide","full","_this$props3","myPageDiv","_this$props4","hideBottomDivider","navigationDesktop","noDivider","mainNavigation","serviceMenuWrapper","renderServiceMenu","pageMenu","margin","pageMenuInner","renderPageLinks","renderMyPageLink","renderBottomBar","ONLY_SERVER","global","trackEvent","eventData","eventLabel","window","gtmEvent","site_section","dataLayer","truncateString","string","substring","Error","defaultGetHeaders","defaultPostHeaders","parseJSON","response","contentType","headers","indexOf","json","catch","error","fetchError","Promise","resolve","redirect","location","_handleError","request","url","URL","pathname","sent","message","statusText","t0","status","abrupt","reject","checkStatus","ok","_x2","handleError","options","undefined","method","fetch","then","e","t","r","prototype","n","hasOwnProperty","o","defineProperty","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","h","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","__await","callInvokeWithMethodAndArg","done","delegate","maybeInvokeDelegate","_sent","dispatchException","TypeError","resultName","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","isNaN","displayName","isGeneratorFunction","constructor","setPrototypeOf","__proto__","awrap","async","pop","charAt","slice","rval","handle","complete","finish","delegateYield","asyncGeneratorStep","_next","_throw","DIMENSION_NAMES","aspectRatios","mobile","desktop","defaultBreakpoints","hd","breakpoints","xs","sm","md","lg","generateSizes","imageBreaks","queries","reduce","acc","breakpoint","breakpointSize","module","exports","debounce","isObject","func","wait","leading","trailing","nodeType","clientHeight","scrollHeight","clientWidth","scrollWidth","getComputedStyle","overflowY","overflowX","ownerDocument","defaultView","frameElement","l","idCounter","cbToCb","cb","noop","node","menuNode","scrollMode","block","inline","boundary","skipOverflowHiddenElements","scrollingElement","documentElement","m","parentElement","getRootNode","host","w","visualViewport","innerWidth","innerHeight","W","scrollX","pageXOffset","H","scrollY","pageYOffset","b","getBoundingClientRect","E","M","V","right","I","left","C","R","T","k","B","D","O","X","Y","L","S","j","N","q","parseInt","borderLeftWidth","z","borderTopWidth","A","borderRightWidth","F","borderBottomWidth","G","J","K","offsetWidth","P","offsetHeight","Q","U","Math","max","Z","scrollLeft","$","scrollTop","min","el","isOrContainsNode","parent","child","contains","fn","time","timeoutId","cancel","clearTimeout","wrapper","callAllEventHandlers","_len2","fns","_key2","_len3","_key3","some","preventDownshiftDefault","nativeEvent","handleRefs","_len4","refs","_key4","current","selectedItem","resultCount","previousResultCount","itemToString","unwrapArray","defaultValue","isArray","isDOMElement","element","getElementProps","stateKeys","pickState","result","normalizeArrowKey","keyCode","getNextWrappingIndex","moveAmount","baseIndex","itemCount","itemsLastIndex","newIndex","cleanupStatus","getStatusDiv","textContent","setStatus","documentProp","statusDiv","getElementById","createElement","setAttribute","border","clip","padding","appendChild","stateChangeTypes","freeze","unknown","mouseUp","itemMouseEnter","keyDownArrowUp","keyDownArrowDown","keyDownEscape","keyDownEnter","keyDownHome","keyDownEnd","clickItem","blurInput","changeInput","keyDownSpaceButton","clickButton","blurButton","controlledPropUpdatedSelectedItem","touchEnd","Downshift","_Component","_props","id","String","menuId","labelId","inputId","getItemId","input","timeoutIds","internalSetTimeout","filter","setItemCount","count","unsetItemCount","setHighlightedIndex","highlightedIndex","otherStateToSet","defaultHighlightedIndex","internalSetState","clearSelection","inputValue","defaultIsOpen","selectItem","selectItemAtIndex","itemIndex","selectHighlightedItem","getState","stateToSet","isItemSelected","onChangeArg","onStateChangeArg","isStateToSetFunction","onInputValueChange","getStateAndHelpers","newStateToSet","stateReducer","nextState","nextFullState","isControlledProp","onStateChange","onSelect","onChange","onUserAction","rootRef","_rootNode","getRootProps","_temp","_temp2","_extends2","_ref$refKey","refKey","rest","_ref2$suppressRefErro","suppressRefError","called","role","keyDownHandlers","ArrowDown","preventDefault","amount","shiftKey","moveHighlightedIndex","getItemCount","ArrowUp","Enter","_this$getState2","itemNode","getItemNodeFromIndex","hasAttribute","Escape","buttonKeyDownHandlers","toggleMenu","inputKeyDownHandlers","Home","highlightFirstOrLastIndex","End","getToggleButtonProps","_temp3","onKeyDown","onPress","onKeyUp","onBlur","enabledEventHandlers","buttonHandleClick","buttonHandleKeyDown","buttonHandleKeyUp","buttonHandleBlur","eventHandlers","environment","activeElement","target","focus","blurTarget","isMouseDown","getLabelProps","htmlFor","getInputProps","_temp4","onInput","onChangeText","_eventHandlers","_this$getState4","inputHandleChange","inputHandleKeyDown","inputHandleBlur","autoComplete","downshiftButtonIsActive","dataset","toggle","menuRef","_menuNode","getMenuProps","_temp5","_temp6","_extends3","_ref5","_ref5$refKey","_ref6$suppressRefErro","getItemProps","_temp7","_enabledEventHandlers","_ref7","onMouseMove","onMouseDown","_ref7$item","customClickHandler","avoidScrolling","clearItems","_ref8","_ref9","_this$getState5","openMenu","closeMenu","updateStatus","getA11yStatusMessage","highlightedItem","_this$props$initialHi","initialHighlightedIndex","_highlightedIndex","_this$props$initialIs","initialIsOpen","_isOpen","_this$props$initialIn","initialInputValue","_inputValue","_this$props$initialSe","initialSelectedItem","_selectedItem","_state","_proto","internalClearTimeouts","stateToMerge","_this4","scrollHighlightedItemIntoView","scrollIntoView","nextHighlightedIndex","_this$getState6","componentDidMount","_this5","targetWithinDownshift","checkActiveElement","contextNode","onMouseUp","onOuterClick","onTouchStart","isTouchMove","onTouchMove","onTouchEnd","contextWithinDownshift","addEventListener","cleanup","removeEventListener","shouldScroll","prevState","currentHighlightedIndex","prevHighlightedIndex","componentDidUpdate","selectedItemChanged","componentWillUnmount","render","children","defaultProps","prevItem","array","isRequired","bool","number","any","shape","now","toNumber","nativeMax","nativeMin","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","maxing","invokeFunc","thisArg","leadingEdge","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","flush","root","Date","freeGlobal","freeSelf","self","Function","cookie","ttl","path","domain","secure","encodeURIComponent","toUTCString","decodeURIComponent","split","tickerWidth","gridWidth","contentFits","showContent","parentNode","cookieLite","animationDuration","animationDelay","ticker_1","Paragraph","tickerItem","lastItem","size","marginBottom","text","ticker_2","hasAcceptedCookies","_this$state2","eventMetaLink","tickerContainer","polygonHolder","polygon","handleClose","ticker","static","dynamic","getWidth","pointer","renderTicker","results","searchPhrase","suggestionsOpen","throttle","fetchResults","throttledFetch","heading","triggerSearch","query","queryUrl","apiString","res","err","console","_this$input","_this$input$current","loading","searchBar","handleSubmit","handleDownshiftChange","inputHolder","inputHolderInner","closeMobile","placeholder","inputOnChange","Button","small","color","Viewport","isDesktop","getHeight","handleResize","_Viewport","expandIcon","angleUp","angleDown","activeKey","Panel","forceRender","accordion","Collapse","handleChange","getItems","Navigation","redirectEndpoint","navigation","handleRedirect","_this$props$align","shift","button","handleShowMenu","dropdownVisible","eventName","renderLoggedIn","showMenu","handleCloseMenu","_this$dropdownMenu","dropdownMenu","dropdown","renderTitle","dropdownLinks","setRef","textAlign","image","Image","contain"],"mappings":"8OAoBMA,EAAY,CAChBC,MAAO,cAGHC,EAAY,SAAAC,GAAA,SAAAD,IAAA,OAAAE,YAAA,KAAAF,GAAAG,YAAA,KAAAH,EAAAI,WAAA,OAAAC,YAAAL,EAAAC,GAAAK,YAAAN,EAAA,EAAAO,IAAA,kBAAAC,IAIhB,WACE,IAAMC,EAAYC,KAAKC,MAAMF,UACtBG,EAAcF,KAAKC,MAAnBC,WACP,OAAKH,EAGHI,gBAACC,IAAS,CAACC,MAAON,EAAUO,MAAOC,MAAOR,EAAUQ,MAAOC,SAAUT,EAAUS,SAAUC,MAAOP,IAH3E,OAKxB,CAAAL,IAAA,SAAAa,MAED,WACE,IAAAC,EAAsDX,KAAKC,MAAnDW,EAAID,EAAJC,KAAMC,EAAQF,EAARE,SAAUC,EAAMH,EAANG,OAAQC,EAAiBJ,EAAjBI,kBAEhC,OACEZ,gBAAA,OAAKa,UAAWC,IAAOC,cACrBf,gBAACgB,IAAU,CAACC,QAASP,EAAUzB,UAAW0B,EAAS,GAAK1B,GACtDe,gBAAA,OAAKa,UAAWK,IAAGJ,IAAOK,aAAcR,GAAUG,IAAOM,OACvDpB,gBAAA,OAAKa,UAAWK,IAAGJ,IAAOO,OAAQV,GAAUG,IAAOM,OACjDpB,gBAAA,aACAA,gBAAA,aACAA,gBAAA,cAEDY,GAAqBZ,gBAACsB,IAAiB,CAACV,kBAAmBA,MAGhEZ,gBAACuB,IAAcC,OAAAC,OAAA,GAAKhB,EAAI,CAAEI,UAAWC,IAAOY,eAC5C1B,gBAAA,WAAMH,KAAK8B,sBA9BD,CAAS3B,aAAe4B,YAApCzC,EAAY,cACK,gBAAcyC,YAD/BzC,EAAY,eAEM,IAkCTA,Q,8HChDT0C,EAAsB,SAAAzC,GAAA,SAAAyC,IAAA,OAAAxC,YAAA,KAAAwC,GAAAvC,YAAA,KAAAuC,EAAAtC,WAAA,OAAAC,YAAAqC,EAAAzC,GAAAK,YAAAoC,EAAA,EAAAnC,IAAA,aAAAa,MAI1B,SAAWuB,GACT,OACE9B,gBAAA,MAAIN,IAAKoC,EAAKC,KAAMlB,UAAWC,IAAOgB,MACpC9B,gBAACgC,IAAIR,OAAAC,OAAA,GACCK,EAAI,CACRjB,UAAWK,IAAGJ,IAAOmB,SAAQL,YAAA,GAC1Bd,IAAOoB,eAAiBJ,EAAKK,SAEhCC,WAAS,IAERN,EAAKO,UAIb,CAAA3C,IAAA,SAAAa,MAED,WACE,IAAQL,EAAUL,KAAKC,MAAfI,MAER,OAAKA,EAIEF,gBAAA,MAAIa,UAAWC,IAAOwB,wBAAyBpC,EAAMqC,IAAI1C,KAAK2C,aAH5D,SAxBe,CAASxC,aAAe4B,YAA9CC,EAAsB,cACL,0BAAwBD,YADzCC,EAAsB,eAEJ,IA6BTA,Q,kBChBTY,EAAiB,SAAArD,GAAA,SAAAqD,IAAA,IAAAC,EAAArD,YAAA,KAAAoD,GAAA,QAAAE,EAAApD,UAAAqD,OAAAC,EAAA,IAAAC,MAAAH,GAAAI,EAAA,EAAAA,EAAAJ,EAAAI,IAAAF,EAAAE,GAAAxD,UAAAwD,GAUpB,OAVoBL,EAAApD,YAAA,KAAAmD,EAAA,GAAAO,OAAAH,IAAAjB,YAAAc,EAAA,QAGb,CACNO,cAAc,IACfrB,YAAAc,EAAA,sBACoB,WACnBA,EAAKQ,SAAS,CACZD,cAAeP,EAAKS,MAAMF,kBAE7BP,EAAA,OAAAlD,YAAAiD,EAAArD,GAAAK,YAAAgD,EAAA,EAAA/C,IAAA,aAAAa,MAED,SAAWuB,EAAgCsB,GACzC,OAAItB,EAAK3B,MAELH,gBAACqD,IAAS,CACR3D,IAAK0D,EACLvC,UAAWC,IAAOgB,KAClB5B,MAAO,CACL,CACEoD,OAAQxB,EAAK1B,MACbmD,UAAWvD,gBAAC6B,EAAsB,CAAC3B,MAAO4B,EAAK3B,YAOrD2B,EAAK0B,KAELxD,gBAACgC,IAAIR,OAAAC,OAAA,CACH/B,IAAK0D,GACDtB,EAAK0B,KAAI,CACb3C,UAAWK,IAAGJ,IAAO2C,sBAAuB3C,IAAOgB,MACnDM,WAAS,IAEPN,EAAK0B,MAAQ1B,EAAK0B,KAAKnB,OAAUP,EAAK1B,OAIvC,OACR,CAAAV,IAAA,SAAAa,MAED,WACE,IAAAC,EAAqDX,KAAKC,MAAlD4D,EAAWlD,EAAXkD,YAAaC,EAASnD,EAATmD,UAAWhD,EAAMH,EAANG,OAAQiD,EAAQpD,EAARoD,SAChCX,EAAiBpD,KAAKsD,MAAtBF,aACR,OAAKS,GAAgBA,EAAYvD,MAG/BH,gBAAA,OAAKa,UAAWC,IAAO+C,mBACrB7D,gBAAA,OAAKa,UAAWC,IAAOgD,MACpBH,GACC3D,gBAACgB,IAAU,CAACH,UAAWC,IAAOiD,cAAe9C,QAASpB,KAAKmE,oBACzDhE,gBAACiE,IAAI,CAACC,QAASC,IAAQC,MAAM,OAAOC,OAAO,OAAOxD,UAAWC,IAAOwD,OACpEtE,gBAAA,YAAO2D,EAAUY,cAGpBb,EAAYvD,MAAMoC,IAAI1C,KAAK2C,aAE7B7B,GACCX,gBAACwE,IAAS,CAAC7D,OAAQsC,GACjBjD,gBAAA,OAAKa,UAAWK,IAAGJ,IAAO2D,WAAYxB,EAAenC,IAAO4D,KAAO5D,IAAO6D,OACxE3E,gBAAC4E,IAAS,CACRjB,UAAWA,EACXkB,eAAgBhF,KAAKmE,mBACrBJ,SAAUA,KAGd5D,gBAAA,OACEa,UAAWK,IAAGJ,IAAOgE,cAAe7B,GAAgBnC,IAAO4D,MAC3DzD,QAASpB,KAAKmE,uBAxBuB,SA9C5B,CAAShE,aAAe4B,YAAzCa,EAAiB,cACA,qBAAmBb,YADpCa,EAAiB,eAEC,IA6ETA,ICpFRsC,EDoFQtC,I,kCCzFTuC,EAAeC,IAAUC,OAAO,CACpC9D,KAAM,CACJ+D,MAAO,EACPC,EAAG,GAELC,OAAKN,EAAAO,YAAAC,cAAAC,MAAE,SAAAC,EAAOC,GAAI,OAAAH,cAAAI,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACVJ,EAAK,CACTP,MAAO,EACPC,GAAI,MACJ,wBAAAQ,EAAAG,UAAAN,OACH,SALIO,GAAA,OAAAjB,EAAAkB,MAAA,KAAA1G,eAUD2G,EAAejB,IAAUkB,MAAM,CACnC/E,KAAM,CACJgE,EAAG,EACHgB,QAAS,EACTjB,MAAO,IAETE,MAAO,CACLD,GAAI,IACJgB,QAAS,EACTjB,MAAO,KAkBLkB,EAAc,SAAAjH,GAAA,SAAAiH,IAAA,OAAAhH,YAAA,KAAAgH,GAAA/G,YAAA,KAAA+G,EAAA9G,WAAA,OAAAC,YAAA6G,EAAAjH,GAAAK,YAAA4G,EAAA,EAAA3G,IAAA,qBAAAa,MAIlB,SAAmB+F,GACjB,GAAIA,EAAU3F,SAAWd,KAAKC,MAAMa,OAAQ,CAC1C,IAAM4F,EAAOC,SAASC,qBAAqB,QAAQ,GAE/C5G,KAAKC,MAAMa,OACb+F,YAAW,WACTH,EAAKI,MAAMC,SAAW,SACtBL,EAAKI,MAAMtC,OAAS,QACpBkC,EAAKI,MAAMvC,MAAQ,UAClB,MAGHmC,EAAKI,MAAMC,SAAW,UACtBL,EAAKI,MAAMvC,MAAQ,OACnBmC,EAAKI,MAAMtC,OAAS,WAGzB,CAAA3E,IAAA,SAAAa,MAED,WACE,IAAAC,EAWIX,KAAKC,MAVPa,EAAMH,EAANG,OACAkG,EAAkBrG,EAAlBqG,mBACAC,EAAgBtG,EAAhBsG,iBACAC,EAAavG,EAAbuG,cACArD,EAAWlD,EAAXkD,YACAsD,EAAWxG,EAAXwG,YACArD,EAASnD,EAATmD,UACAsD,EAAUzG,EAAVyG,WACArG,EAAiBJ,EAAjBI,kBACAgD,EAAQpD,EAARoD,SAEIsD,EAAevG,EAAS,OAAS,QACjCwG,EAAoBL,EAAmB,OAAS,QAChDM,EACJN,GAAoBnG,EAAS,SAAWmG,GAAoBnG,EAAS,OAAS,QAChF,OAAKkG,EAGH7G,gBAACgF,EAAO,CAACqC,QAAM,EAAClE,MAAO+D,IACpB,SAAAI,GAAA,IAAGlC,EAACkC,EAADlC,EAAC,OACHpF,gBAACuH,IAASC,IAAG,CACX3G,UAAWK,IAAGJ,IAAO2G,SAAU9G,GAAUG,IAAOH,QAChDgG,MAAO,CACLe,UAAWtC,EAAEuC,aAAY,SAACvC,GAAC,qBAAApC,OAAoBoC,EAAC,eAGlDpF,gBAAC4H,IAAO,CAACC,QAAM,IACZ,SAAAC,GAAA,IAAGC,EAAUD,EAAVC,WAAYC,EAAWF,EAAXE,YAAW,OACzBhI,gBAAA,OACEa,UAAWC,IAAOmH,cAClBtB,MAAO,CACLtC,OAAQ2D,EAAYH,OAAOxD,SAG7BrE,gBAAA,OAAKkI,IAAKH,GACR/H,gBAAA,OACEa,UAAWK,KACR4F,GAAoBC,GAAiBpG,GAAUG,IAAOqH,UACtDrB,GAAoBC,GAAiBjG,IAAOsH,WAG/CpI,gBAACkG,EAAO,CACNmB,QAAM,EACNnH,MAAO2G,EACPwB,KAAMxB,EAAmBtE,KAAI,SAAC+F,EAAGC,GAAC,OAAKA,KACvCC,SAAU7H,EACVwC,MAAOgE,IAEN,SAACrF,EAAMyG,GAAC,OAAK,SAAAE,GAAqB,IAAlBrD,EAACqD,EAADrD,EAAMtF,EAAK4I,YAAAD,EAAAE,GAC1B,MAAoB,iBAAT7G,GAA2B,IAANyG,EAE5BvI,gBAACuH,IAASC,IAAG,CACXb,MAAKiC,YAAA,CACHlB,UAAWtC,EAAEuC,aAAY,SAACvC,GAAC,qBAAApC,OAAoBoC,EAAC,cAC7CtF,GAELe,UAAWC,IAAO+H,iBAClB5H,QAAS+F,GAEThH,gBAAA,OAAKa,UAAWC,IAAOgI,YACrB9I,gBAACiE,IAAI,CACHC,QAAS6E,IACTlI,UAAWC,IAAOiI,UAClB3E,MAAM,MACNC,OAAO,SAETrE,gBAAA,WAAM8B,KAIHmF,GAAcsB,IAAM1B,EAAmBjE,OAAS,EAEvD5C,gBAACuH,IAASC,IAAG,CACXb,MAAKiC,YAAA,CACHlB,UAAWtC,EAAEuC,aAAY,SAACvC,GAAC,qBAAApC,OAAoBoC,EAAC,cAC7CtF,GAELe,UAAWK,IAAGJ,IAAOkI,eAAgBlI,IAAOmG,aAE5CjH,gBAACgC,IAAIR,OAAAC,OAAA,GACCK,EAAI,CACRjB,UAAWK,IAAGJ,IAAOmI,SAAQrH,YAAA,GAC1Bd,IAAOoI,WAAapH,EAAKK,SAE5BC,WAAS,IAETpC,gBAAA,OACE2G,MAAO,CACLwC,SAAU,aAGXrH,EAAKO,MACLzB,GACCZ,gBAACsB,IAAiB,CAACV,kBAAmBA,KAG1CZ,gBAACiE,IAAI,CACHpD,UAAWC,IAAOsI,UAClBC,SAAS,aACTjF,MAAM,OACNC,OAAO,WAQfrE,gBAACuH,IAASC,IAAG,CACXb,MAAKiC,YAAA,CACHlB,UAAWtC,EAAEuC,aAAY,SAACvC,GAAC,qBAAApC,OAAoBoC,EAAC,cAC7CtF,GAELe,UAAWC,IAAOkI,gBAElBhJ,gBAACgC,IAAIR,OAAAC,OAAA,GACCK,EAAI,CACRjB,UAAWK,IAAGJ,IAAOmI,SAAQrH,YAAA,GAC1Bd,IAAOoI,WAAapH,EAAKK,SAE5BC,WAAS,IAERN,EAAKO,MACNrC,gBAACiE,IAAI,CACHpD,UAAWC,IAAOsI,UAClBC,SAAS,aACTjF,MAAM,OACNC,OAAO,gBAQpB0C,GACC/G,gBAAA,OACEa,UAAWK,KACR4F,IAAsBA,IAAqBnG,IAAYG,IAAOqH,SAC/DrB,GAAoBhG,IAAOsH,WAG7BpI,gBAACkG,EAAO,CACNmB,QAAM,EACNnH,MAAO6G,EACPsB,KAAMtB,EAAcxE,KAAI,SAAC+F,EAAGC,GAAC,OAAKA,KAClCC,SAAU7H,EACVwC,MAAOiE,IAEN,SAACtF,EAAMyG,GAAC,OAAK,SAAAe,GAAqB,IAAlBlE,EAACkE,EAADlE,EAAMtF,EAAK4I,YAAAY,EAAAC,GAC1B,OACEvJ,gBAACuH,IAASC,IAAG,CACXb,MAAKiC,YAAA,CACHlB,UAAWtC,EAAEuC,aAAY,SAACvC,GAAC,qBAAApC,OAAoBoC,EAAC,cAC7CtF,GAELe,UAAWK,IAAGJ,IAAOkI,eAAsB,IAANT,GAAWzH,IAAO0I,QAEvDxJ,gBAACgC,IAAIR,OAAAC,OAAA,GACCK,EAAI,CACRjB,UAAWK,IAAGJ,IAAOmI,SAAQrH,YAAA,GAC1Bd,IAAOoI,WAAapH,EAAKK,SAE5BC,WAAS,IAERN,EAAKO,MACNrC,gBAACiE,IAAI,CACHpD,UAAWC,IAAOsI,UAClBC,SAAS,aACTjF,MAAM,OACNC,OAAO,qBAa9BX,GACC1D,gBAACyC,EAAiB,CAChBiB,YAAaA,EACbC,UAAWA,EACXhD,OAAQA,EACRiD,SAAUA,QA7KU,SAxChB,CAAS5D,aAAe4B,YAAtCyE,EAAc,cACG,kBAAgBzE,YADjCyE,EAAc,eAEI,IA6NTA,Q,kBCjPToD,EAAgB,SAAArK,GAAA,SAAAqK,IAAA,IAAA/G,EAAArD,YAAA,KAAAoK,GAAA,QAAA9G,EAAApD,UAAAqD,OAAAC,EAAA,IAAAC,MAAAH,GAAAI,EAAA,EAAAA,EAAAJ,EAAAI,IAAAF,EAAAE,GAAAxD,UAAAwD,GAuChB,OAvCgBL,EAAApD,YAAA,KAAAmK,EAAA,GAAAzG,OAAAH,IAAAjB,YAAAc,EAAA,QAGZ,CACN/B,QAAQ,EACRmG,kBAAkB,EAClBD,mBAAoB,KACrBjF,YAAAc,EAAA,gBAwBc,kBACbA,EAAKQ,UAAS,SAACC,GAAK,MAAM,CACxBxC,QAASwC,EAAMxC,OACfmG,kBAAmB3D,EAAMxC,cACxBiB,YAAAc,EAAA,mBACa,kBAChBA,EAAKQ,SAAS,CACZ4D,kBAAkB,OAClBpE,EAAA,OAAAlD,YAAAiK,EAAArK,GAAAK,YAAAgK,EAAA,EAAA/J,IAAA,oBAAAa,MA9BJ,WACE,GAAIV,KAAKC,MAAM4J,gBAAiB,CAC9B,IAAApC,EAA8BzH,KAAKC,MAAM4J,gBAAjCZ,EAAUxB,EAAVwB,WAAY3I,EAAKmH,EAALnH,MACZ8G,EAAepH,KAAKC,MAApBmH,WAEJ0C,EAAuBxJ,GAAS,GAEhCwJ,IACEb,GAGFa,EAAIC,QAAQd,GAGV7B,GAAY0C,EAAIE,KAAK5C,GACzBpH,KAAKqD,SAAS,CACZ2D,mBAAoB8C,QAI3B,CAAAjK,IAAA,iBAAAC,IAYD,WACE,IAAQmK,EAAajK,KAAKC,MAAlBgK,SACR,IAAKA,EAAU,OAAO,KAKtB,OACE9J,gBAAA,OAAKa,UAAWK,IAAGJ,IAAOiJ,iBACxB/J,gBAACgC,IAAIR,OAAAC,OAAA,GAAKqI,EAAQ,CAAEjJ,UAAWC,IAAOgJ,SAAU7K,UAN1B,CACxBC,MAAO,eAMHc,gBAACiE,IAAI,CAACC,QAAS8F,IAAWnJ,UAAWC,IAAOiI,UAAW3E,MAAM,OAAOC,OAAO,SAC3ErE,gBAAA,WAAM8J,EAASzH,WAItB,CAAA3C,IAAA,SAAAa,MAED,WACE,IAAAC,EAeIX,KAAKC,MAdP6E,EAAInE,EAAJmE,KACAlE,EAAID,EAAJC,KACAb,EAASY,EAATZ,UACA8J,EAAelJ,EAAfkJ,gBACAhG,EAAWlD,EAAXkD,YACAC,EAASnD,EAATmD,UACAmG,EAAQtJ,EAARsJ,SACA5J,EAAKM,EAALN,MACAoD,EAAM9C,EAAN8C,OACA2G,EAAgBzJ,EAAhByJ,iBACArJ,EAAiBJ,EAAjBI,kBACAqG,EAAUzG,EAAVyG,WACAlH,EAAUS,EAAVT,WACA6D,EAAQpD,EAARoD,SAEFsG,EAAyDrK,KAAKsD,MAAtDxC,EAAMuJ,EAANvJ,OAAQmG,EAAgBoD,EAAhBpD,iBAAkBD,EAAkBqD,EAAlBrD,mBAClC,OAAa,OAATlC,IAA0B,IAATA,EAAsB,KACtC+E,EAGH1J,gBAAA,OAAKa,UAAWK,IAAGJ,IAAOqJ,iBAAkBxJ,GAAUG,IAAOH,SAC3DX,gBAACb,EAAY,CACXsB,KAAMA,EACNb,UAAWA,EACXc,SAAUb,KAAKuK,aACfzJ,OAAQA,EACRC,kBAAmBA,EACnBb,WAAYA,IAEdC,gBAAA,OACEa,UAAWK,IAAGJ,IAAOuJ,QAAS1J,GAAUG,IAAOwJ,UAC/CrJ,QAASpB,KAAKuK,eAEhBpK,gBAACqG,EAAc,CACb1F,OAAQA,EACRmG,iBAAkBA,EAClBD,mBAAoBA,EACpBE,cAAe2C,EAAgB3C,cAC/BrD,YAAaA,EACbsD,YAAanH,KAAK0K,gBAClB5G,UAAWA,EACX/C,kBAAmBA,EACnBqG,WAAYA,EACZrD,SAAUA,IAEX/D,KAAK2K,eACLtK,GAASoD,GACRtD,gBAACyK,IAAU,CACTvK,MAAOA,EACPoD,OAAQA,EACRzC,UAAWiJ,EAAWhJ,IAAO4J,IAAM5J,IAAO6J,OAC1CV,iBAAkBA,IAGrBH,GAAY9J,gBAAC4K,IAAW,CAACC,UAAU,OAAOC,UAAU,OAAOC,cAAY,KArC/C,SA7EX,CAAS/K,aAAe4B,YAAxC6H,EAAgB,cACC,oBAAkB7H,YADnC6H,EAAgB,eAEE,IAsHTA,O,2KCnJTuB,EAAS,SAAA5L,GAAA,SAAA4L,IAAA,IAAAtI,EAAArD,YAAA,KAAA2L,GAAA,QAAArI,EAAApD,UAAAqD,OAAAC,EAAA,IAAAC,MAAAH,GAAAI,EAAA,EAAAA,EAAAJ,EAAAI,IAAAF,EAAAE,GAAAxD,UAAAwD,GAqBZ,OArBYL,EAAApD,YAAA,KAAA0L,EAAA,GAAAhI,OAAAH,IAAAjB,YAAAc,EAAA,cAIA,SAACZ,GACZ,IAAQlB,EAAsB8B,EAAK5C,MAA3Bc,kBAER,OACEZ,gBAAA,MAAIN,IAAKoC,EAAKC,KAAMlB,UAAWC,IAAOgB,MACpC9B,gBAACgC,IAAIR,OAAAC,OAAA,GACCK,EAAI,CACRmJ,aAAW,EACXpK,UAAWK,IAAGJ,IAAO0C,KAAI5B,YAAA,GACtBd,IAAOoI,WAAapH,EAAKK,WAG3BL,EAAKO,MACLzB,GAAqBZ,gBAACsB,IAAiB,CAACV,kBAAmBA,SAInE8B,EAAA,OAAAlD,YAAAwL,EAAA5L,GAAAK,YAAAuL,EAAA,EAAAtL,IAAA,SAAAa,MAED,WACE,IAAQL,EAAUL,KAAKC,MAAfI,MAER,OAAKA,EAIEF,gBAAA,MAAIa,UAAWC,IAAOoK,WAAYhL,EAAMqC,IAAI1C,KAAK2C,aAH/C,SA3BE,CAASxC,aAAe4B,YAAjCoJ,EAAS,cACQ,aAAWpJ,YAD5BoJ,EAAS,eAES,IAgCTA,Q,wECpBTG,EAAkB,SAAA/L,GAAA,SAAA+L,IAAA,IAAAzI,EAAArD,YAAA,KAAA8L,GAAA,QAAAxI,EAAApD,UAAAqD,OAAAC,EAAA,IAAAC,MAAAH,GAAAI,EAAA,EAAAA,EAAAJ,EAAAI,IAAAF,EAAAE,GAAAxD,UAAAwD,GAKrB,OALqBL,EAAApD,YAAA,KAAA6L,EAAA,GAAAnI,OAAAH,IAAAjB,YAAAc,EAAA,QAGd,CACNO,cAAc,IACfP,EAAA,OAAAlD,YAAA2L,EAAA/L,GAAAK,YAAA0L,EAAA,EAAAzL,IAAA,aAAAa,MAED,SAAWuB,GACT,OAAIA,EAAK3B,MAELH,gBAACoL,IAAQ,CACPC,KAAM,eACN3L,IAAKoC,EAAK1B,MACVA,MAAO0B,EAAK1B,MACZS,UAAWC,IAAOwK,wBAElBtL,gBAACuL,IAAa,CAACrL,MAAO4B,EAAK3B,MAAOgJ,SAAS,UAM/CnJ,gBAACgC,IAAIR,OAAAC,OAAA,CAAC/B,IAAKoC,EAAK1B,OAAW0B,EAAK0B,KAAI,CAAE3C,UAAWC,IAAOwK,uBAAwBlJ,WAAS,IACtFN,EAAK0B,KAAO1B,EAAK0B,KAAKnB,MAAQP,EAAK1B,SAGzC,CAAAV,IAAA,kBAAAa,MAED,WAAkB,IAAAiL,EAAA,KACR7H,EAAc9D,KAAKC,MAAnB6D,UACR,OAAKA,EAGH3D,gBAACgB,IAAU,CACTH,UAAWC,IAAOiD,cAClB9C,QAAS,WAAF,OACLuK,EAAKtI,SAAS,CACZD,cAAc,MAIlBjD,gBAACiE,IAAI,CAACC,QAASC,IAAQC,MAAM,OAAOC,OAAO,OAAOxD,UAAWC,IAAOwD,OACpEtE,gBAAA,YAAO2D,EAAUY,cAZE,OAexB,CAAA7E,IAAA,SAAAa,MAED,WAAS,IAAAkL,EAAA,KACPjL,EAA6CX,KAAKC,MAA1CK,EAAKK,EAALL,MAAOM,EAAID,EAAJC,KAAMkD,EAASnD,EAATmD,UAAWC,EAAQpD,EAARoD,SACxBX,EAAiBpD,KAAKsD,MAAtBF,aACR,OAAK9C,EAGHH,gBAAA,OAAKa,UAAWC,IAAO4K,oBACrB1L,gBAACuB,IAAcC,OAAAC,OAAA,GAAKhB,EAAI,CAAEI,UAAWC,IAAO6K,cAC5C3L,gBAAA,OAAKa,UAAWC,IAAOgD,MACpB3D,EAAMoC,IAAI1C,KAAK2C,YACf3C,KAAK+L,kBACN5L,gBAAA,OAAKa,UAAWK,IAAGJ,IAAO2D,WAAYxB,EAAenC,IAAO4D,KAAO5D,IAAO6D,OACxE3E,gBAAA,OAAKa,UAAWC,IAAO+K,UACrB7L,gBAAA,OAAKa,UAAWC,IAAOgL,WAErB9L,gBAAC4E,IAAS,CAACjB,UAAWA,EAAWC,SAAUA,EAAUX,aAAcA,IACnEjD,gBAACgB,IAAU,CACTH,UAAWC,IAAOiL,YAClB9K,QAAS,WAAF,OACLwK,EAAKvI,SAAS,CACZD,cAAc,MAIjBU,GAAa3D,gBAAA,YAAO2D,EAAUqI,WAC/BhM,gBAACiE,IAAI,CAACC,QAAS+H,IAAO7H,MAAM,MAAMC,OAAO,OAAOxD,UAAWC,IAAOoL,kBAtB7D,SAlDC,CAASlM,aAAe4B,YAA1CuJ,EAAkB,cACD,sBAAoBvJ,YADrCuJ,EAAkB,eAEA,IAiFTA,Q,kBC1ETgB,EAAiB,SAAA/M,GAAA,SAAA+M,IAAA,OAAA9M,YAAA,KAAA8M,GAAA7M,YAAA,KAAA6M,EAAA5M,WAAA,OAAAC,YAAA2M,EAAA/M,GAAAK,YAAA0M,EAAA,EAAAzM,IAAA,oBAAAC,IAIrB,WACE,IAAAa,EAA8DX,KAAKC,MAA3D4D,EAAWlD,EAAXkD,YAAajD,EAAID,EAAJC,KAAMyK,EAAS1K,EAAT0K,UAAWvH,EAASnD,EAATmD,UAAWC,EAAQpD,EAARoD,SACjD,OAAKF,EAGH1D,gBAACmL,EAAkB,CACjBhL,MAAOuD,EAAYvD,MACnBM,KAAMA,EACN2L,aAAclB,EACdvH,UAAWA,EACXC,SAAUA,IARW,OAW1B,CAAAlE,IAAA,kBAAAC,IAED,WACE,IAAQuL,EAAcrL,KAAKC,MAAnBoL,UACR,OAAKA,EAEElL,gBAACgL,EAAS,CAAC9K,MAAOgL,IAFF,OAGxB,CAAAxL,IAAA,kBAAAC,IAED,WACE,IAAMC,EAAYC,KAAKC,MAAMF,UACrBG,EAAeF,KAAKC,MAApBC,WACR,OAAKH,EAGHI,gBAACC,IAAS,CAACC,MAAON,EAAUO,MAAOC,MAAOR,EAAUQ,MAAOC,SAAUT,EAAUS,SAAUC,MAAOP,IAH3E,OAKxB,CAAAL,IAAA,qBAAAa,MAED,SAAmBM,GACjB,IAAAwL,EAA4CxM,KAAKC,MAAzCI,EAAKmM,EAALnM,MAAOoD,EAAM+I,EAAN/I,OAAQ2G,EAAgBoC,EAAhBpC,iBACvB,OAAK/J,GAAUoD,EAGbtD,gBAAA,OAAKa,UAAWK,IAAGJ,IAAOwL,oBAAqBzL,GAAaA,IAC1Db,gBAACyK,IAAU,CAACvK,MAAOA,EAAOoD,OAAQA,EAAQ2G,iBAAkBA,KAJlC,OAO/B,CAAAvK,IAAA,iBAAAC,IAED,WACE,IAAQmK,EAAajK,KAAKC,MAAlBgK,SACFyC,EAAY1M,KAAKC,MAAMI,MAC7B,IAAK4J,EAAU,OAAO,KACtB,IAGI0C,EAAa,GACbC,EAAsB,GACtBC,EAAY,GAgBhB,OAdIH,IACFC,EAAa,CACXG,WAAY,SACZC,aAAc,WACdhG,SAAU,UAEZ6F,EAAsB,CACpBrI,MAAO,SAETsI,EAAY,CACVG,SAAU,UAKZ7M,gBAAA,OAAKa,UAAWC,IAAOiJ,eAAgBpD,MAAO8F,GAC5CzM,gBAACgC,IAAIR,OAAAC,OAAA,GACCqI,EAAQ,CACZhJ,OAAQ4L,EACR7L,UAAWC,IAAOgJ,SAClB7K,UA3BoB,CACxBC,MAAO,eA4BHc,gBAACiE,IAAI,CAACC,QAAS8F,IAAWnJ,UAAWC,IAAOiI,UAAW3E,MAAM,OAAOC,OAAO,SAC3ErE,gBAAA,OAAK2G,MAAO6F,GAAa1C,EAASzH,WAIzC,CAAA3C,IAAA,kBAAAC,IAED,WAGE,OAFqBE,KAAKC,MAAlBgK,SAIJ9J,gBAAA,OAAKa,UAAWK,IAAGJ,IAAOgM,YACvBjN,KAAK2K,eACL3K,KAAKkN,mBAAmBjM,IAAOkM,SAK/BhN,2BAAA,KAAGH,KAAKkN,mBAAmBjM,IAAOmM,SAC1C,CAAAvN,IAAA,mBAAAC,IAED,WACE,IAAKE,KAAKC,MAAMmH,aAAepH,KAAKC,MAAMoL,UAAW,OAAO,KAC5D,IAAAgC,EAA0CrN,KAAKC,MAAvCmH,EAAUiG,EAAVjG,WAAYrG,EAAiBsM,EAAjBtM,kBAEpB,OACEZ,gBAAA,OAAKa,UAAWC,IAAOqM,WACrBnN,gBAACgL,EAAS,CAAC9K,MAAO,CAAC+G,GAAarG,kBAAmBA,OAGxD,CAAAlB,IAAA,SAAAa,MAED,WACE,IAAA6M,EAA+CvN,KAAKC,MAA5C6E,EAAIyI,EAAJzI,KAAMuG,EAASkC,EAATlC,UAAWmC,EAAiBD,EAAjBC,kBACzB,OAAa,OAAT1I,GAAiBA,EAAa,KAGhC3E,gBAAA,OAAKa,UAAWK,IAAGJ,IAAOwM,kBAAmBD,EAAoBvM,IAAOyM,UAAY,KAClFvN,gBAAA,OAAKa,UAAWC,IAAO0M,gBACrBxN,gBAAA,OAAKa,UAAWC,IAAO2M,oBACrBzN,2BAAA,KACGH,KAAK6N,kBACL7N,KAAK8B,kBAGV3B,gBAAA,OAAKa,UAAWK,IAAGJ,IAAO6M,SAAUzC,GAAapK,IAAO8M,SACtD5N,gBAAA,OAAKa,UAAWC,IAAO+M,eACpBhO,KAAKiO,gBACLjO,KAAKkO,oBAIXlO,KAAKmO,qBArIS,CAAShO,aAAe4B,YAAzCuK,EAAiB,cACA,qBAAmBvK,YADpCuK,EAAiB,eAEC,IAyITA,O,iCChLf,0GAMO,IAAM8B,GAAc,G,kCCN3BC,YAWO,SAASC,EAAU7G,GAA8C,IAA3CpI,EAAKoI,EAALpI,MAAOkP,EAAS9G,EAAT8G,UAAWC,EAAU/G,EAAV+G,WAC7C,GAAsB,oBAAXC,OAAX,CACA,IACMC,EAAW,CACfrP,MAFgBA,EAAQ,GAAH8D,OAAMsL,OAAOE,cAAgB,SAAQ,KAAAxL,OAAI9D,GAAU,GAGxE,aAAckP,GAAa,GAC3B,cAAeC,GAAc,IAG3BH,EAAOO,WAAaF,EAASrP,OAC/BgP,EAAOO,UAAU5E,KAAK0E,IArB1BL,oCAAOO,UAAYP,EAAOO,WAAa,K,mDC2KhC,SAASC,EAAeC,EAAQ/L,GACrC,GAAI+L,EAAO/L,OAASA,EAAQ,CAC1B,GAAsB,iBAAX+L,GAAyC,iBAAX/L,EACvC,OAAO+L,EAAOC,UAAU,EAAGhM,GAAU,IAErC,MAAM,IAAIiM,MAAM,sDAEb,OAAOF,EAlLhB,mC,sHCGMG,EAAoB,GACpBC,EAAqB,CACzB,eAAgB,qCASlB,SAASC,EAAUC,GACjB,IAAMC,EAAcD,EAASE,QAAQxP,IAAI,gBAEzC,OAAIuP,IAA4D,IAA7CA,EAAYE,QAAQ,oBAC9BH,EAASI,OAAOC,OAAM,SAACC,GAI5B,OAFAC,YAAWD,EAAON,GAEX,MAGFQ,QAAQC,QAAQ,IAI3B,SAASC,EAASpJ,GAMhB,OALIA,GAAiC,iBAAlBA,EAAKoJ,UAEtBzB,EAAO0B,SAASnO,OAAO8E,EAAKoJ,UAGvBpJ,EA+CT,SAAAsJ,IAFC,OAEDA,EAAAvK,YAAAC,cAAAC,MA5CA,SAAAC,EAA2BwJ,EAAoBa,GAAuB,IAAAC,EAAAxJ,EAAAgJ,EAAA,OAAAhK,cAAAI,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAM7D,OALDiK,EACJ7B,EAAO8B,KAASf,EAASc,IACrB,IAAI7B,EAAO8B,IAAIf,EAASc,KACxB,CACEE,SAAUhB,EAASc,KACpBnK,EAAAE,KAAA,EACYkJ,EAAUC,GAAS,OAAhC1I,EAAIX,EAAAsK,KACJX,EAAQ,IAAIV,MAAMtI,EAAK4J,SAAWlB,EAASmB,YAAWxK,EAAAyK,GAEpDpB,EAASqB,OAAM1K,EAAAE,KAChB,MADgBF,EAAAyK,IAGhB,MAFGzK,EAAAyK,IAIH,MAFGzK,EAAAyK,GAFA,EAIA,sBAAAzK,EAAA2K,OAAA,mBAaL,OAPDf,YACE,IAAIX,MAAM,GAAD7L,OAAIiM,EAASqB,OAAM,MAAAtN,OAAKiM,EAASmB,WAAU,MAAApN,OAAK+M,EAAIE,SAAQ,MACrEhB,EACAa,EACA,CACEvJ,SAEHX,EAAA2K,OAAA,oBAKS,OAAdZ,EAASpJ,GAAKX,EAAA2K,OAAA,SAEPd,QAAQe,OAAO,CACpBL,QAAS5J,EAAK4J,SAAWZ,EAAMY,QAC/BZ,QACAN,WACAa,UACAvJ,UACA,yBAAAX,EAAAG,UAAAN,QACHQ,MAAA,KAAA1G,WAUM,SAASkR,EAAYxB,EAAoBa,GAC9C,OAAIb,EAASyB,GAAWzB,EAvDzB,SAEyBjJ,EAAA2K,GAAA,OAAAd,EAAA5J,MAAC,KAAD1G,WAuDjBqR,CAAY3B,EAAUa,GAWhB,SAASA,EACtBC,GAE8B,IAD9Bc,EAAuBtR,UAAAqD,OAAA,QAAAkO,IAAAvR,UAAA,GAAAA,UAAA,GAAG,GAEpBuQ,EAAOlH,YAAA,CACXmI,OAAQF,EAAQE,QAAU,MAG1B5B,QAA4B,SAAnB0B,EAAQE,OAAoBhC,EAAqBD,GACvD+B,GAGL,OAAOG,MAAMjB,EAAKD,GACfmB,MAAK,SAAChC,GAAkB,OAAKwB,EAAYxB,EAAUa,MACnDmB,KAAKjC,M,mDCtHV,8CACA,SAASzJ;AAEPA,EAAsB,WACpB,OAAO2L,GAET,IAAIC,EACFD,EAAI,GACJE,EAAI5P,OAAO6P,UACXC,EAAIF,EAAEG,eACNC,EAAIhQ,OAAOiQ,gBAAkB,SAAUN,EAAGD,EAAGE,GAC3CD,EAAED,GAAKE,EAAE7Q,OAEXgI,EAAI,mBAAqBmJ,OAASA,OAAS,GAC3CC,EAAIpJ,EAAEqJ,UAAY,aAClBC,EAAItJ,EAAEuJ,eAAiB,kBACvBC,EAAIxJ,EAAEyJ,aAAe,gBACvB,SAASC,EAAOd,EAAGD,EAAGE,GACpB,OAAO5P,OAAOiQ,eAAeN,EAAGD,EAAG,CACjC3Q,MAAO6Q,EACPc,YAAY,EACZC,cAAc,EACdC,UAAU,IACRjB,EAAED,GAER,IACEe,EAAO,GAAI,IACX,MAAOd,GACPc,EAAS,SAAgBd,EAAGD,EAAGE,GAC7B,OAAOD,EAAED,GAAKE,GAGlB,SAASzL,EAAKwL,EAAGD,EAAGE,EAAGE,GACrB,IAAI/I,EAAI2I,GAAKA,EAAEG,qBAAqBgB,EAAYnB,EAAImB,EAClDV,EAAInQ,OAAO8Q,OAAO/J,EAAE8I,WACpBQ,EAAI,IAAIU,EAAQjB,GAAK,IACvB,OAAOE,EAAEG,EAAG,UAAW,CACrBpR,MAAOiS,EAAiBrB,EAAGC,EAAGS,KAC5BF,EAEN,SAASc,EAAStB,EAAGD,EAAGE,GACtB,IACE,MAAO,CACLsB,KAAM,SACNC,IAAKxB,EAAEzL,KAAKwL,EAAGE,IAEjB,MAAOD,GACP,MAAO,CACLuB,KAAM,QACNC,IAAKxB,IAIXD,EAAEvL,KAAOA,EACT,IAAIiN,EAAI,iBAENC,EAAI,YACJC,EAAI,YACJC,EAAI,GACN,SAASV,KACT,SAASW,KACT,SAASC,KACT,IAAIC,EAAI,GACRjB,EAAOiB,EAAGvB,GAAG,WACX,OAAO9R,QAET,IAAIsT,EAAI3R,OAAO4R,eACbC,EAAIF,GAAKA,EAAEA,EAAEG,EAAO,MACtBD,GAAKA,IAAMjC,GAAKE,EAAE5L,KAAK2N,EAAG1B,KAAOuB,EAAIG,GACrC,IAAIE,EAAIN,EAA2B5B,UAAYgB,EAAUhB,UAAY7P,OAAO8Q,OAAOY,GACnF,SAASM,EAAsBrC,GAC7B,CAAC,OAAQ,QAAS,UAAUsC,SAAQ,SAAUvC,GAC5Ce,EAAOd,EAAGD,GAAG,SAAUC,GACrB,OAAOtR,KAAK6T,QAAQxC,EAAGC,SAI7B,SAASwC,EAAcxC,EAAGD,GACxB,SAAS0C,EAAOxC,EAAGI,EAAGjJ,EAAGoJ,GACvB,IAAIE,EAAIY,EAAStB,EAAEC,GAAID,EAAGK,GAC1B,GAAI,UAAYK,EAAEa,KAAM,CACtB,IAAIX,EAAIF,EAAEc,IACRC,EAAIb,EAAExR,MACR,OAAOqS,GAAK,UAAY,YAAQA,IAAMtB,EAAE5L,KAAKkN,EAAG,WAAa1B,EAAExB,QAAQkD,EAAEiB,SAAS5C,MAAK,SAAUE,GAC/FyC,EAAO,OAAQzC,EAAG5I,EAAGoJ,MACpB,SAAUR,GACXyC,EAAO,QAASzC,EAAG5I,EAAGoJ,MACnBT,EAAExB,QAAQkD,GAAG3B,MAAK,SAAUE,GAC/BY,EAAExR,MAAQ4Q,EAAG5I,EAAEwJ,MACd,SAAUZ,GACX,OAAOyC,EAAO,QAASzC,EAAG5I,EAAGoJ,MAGjCA,EAAEE,EAAEc,KAEN,IAAIvB,EACJI,EAAE3R,KAAM,UAAW,CACjBU,MAAO,SAAe4Q,EAAGG,GACvB,SAASwC,IACP,OAAO,IAAI5C,GAAE,SAAUA,EAAGE,GACxBwC,EAAOzC,EAAGG,EAAGJ,EAAGE,MAGpB,OAAOA,EAAIA,EAAIA,EAAEH,KAAK6C,EAA4BA,GAA8BA,OAItF,SAAStB,EAAiBtB,EAAGE,EAAGE,GAC9B,IAAIE,EAAIoB,EACR,OAAO,SAAUrK,EAAGoJ,GAClB,GAAIH,IAAMqB,EAAG,MAAMhE,MAAM,gCACzB,GAAI2C,IAAMsB,EAAG,CACX,GAAI,UAAYvK,EAAG,MAAMoJ,EACzB,MAAO,CACLpR,MAAO4Q,EACP4C,MAAM,GAGV,IAAKzC,EAAEP,OAASxI,EAAG+I,EAAEqB,IAAMhB,IAAK,CAC9B,IAAIE,EAAIP,EAAE0C,SACV,GAAInC,EAAG,CACL,IAAIE,EAAIkC,EAAoBpC,EAAGP,GAC/B,GAAIS,EAAG,CACL,GAAIA,IAAMgB,EAAG,SACb,OAAOhB,GAGX,GAAI,SAAWT,EAAEP,OAAQO,EAAEpB,KAAOoB,EAAE4C,MAAQ5C,EAAEqB,SAAS,GAAI,UAAYrB,EAAEP,OAAQ,CAC/E,GAAIS,IAAMoB,EAAG,MAAMpB,EAAIsB,EAAGxB,EAAEqB,IAC5BrB,EAAE6C,kBAAkB7C,EAAEqB,SACjB,WAAarB,EAAEP,QAAUO,EAAEf,OAAO,SAAUe,EAAEqB,KACrDnB,EAAIqB,EACJ,IAAIK,EAAIT,EAASvB,EAAGE,EAAGE,GACvB,GAAI,WAAa4B,EAAER,KAAM,CACvB,GAAIlB,EAAIF,EAAEyC,KAAOjB,EA/EnB,iBA+E0BI,EAAEP,MAAQI,EAAG,SACrC,MAAO,CACLxS,MAAO2S,EAAEP,IACToB,KAAMzC,EAAEyC,MAGZ,UAAYb,EAAER,OAASlB,EAAIsB,EAAGxB,EAAEP,OAAS,QAASO,EAAEqB,IAAMO,EAAEP,OAIlE,SAASsB,EAAoB/C,EAAGE,GAC9B,IAAIE,EAAIF,EAAEL,OACRS,EAAIN,EAAEU,SAASN,GACjB,GAAIE,IAAML,EAAG,OAAOC,EAAE4C,SAAW,KAAM,UAAY1C,GAAKJ,EAAEU,SAAiB,SAAMR,EAAEL,OAAS,SAAUK,EAAEuB,IAAMxB,EAAG8C,EAAoB/C,EAAGE,GAAI,UAAYA,EAAEL,SAAW,WAAaO,IAAMF,EAAEL,OAAS,QAASK,EAAEuB,IAAM,IAAIyB,UAAU,oCAAsC9C,EAAI,aAAcyB,EAC1R,IAAIxK,EAAIkK,EAASjB,EAAGN,EAAEU,SAAUR,EAAEuB,KAClC,GAAI,UAAYpK,EAAEmK,KAAM,OAAOtB,EAAEL,OAAS,QAASK,EAAEuB,IAAMpK,EAAEoK,IAAKvB,EAAE4C,SAAW,KAAMjB,EACrF,IAAIpB,EAAIpJ,EAAEoK,IACV,OAAOhB,EAAIA,EAAEoC,MAAQ3C,EAAEF,EAAEmD,YAAc1C,EAAEpR,MAAO6Q,EAAEtL,KAAOoL,EAAEoD,QAAS,WAAalD,EAAEL,SAAWK,EAAEL,OAAS,OAAQK,EAAEuB,IAAMxB,GAAIC,EAAE4C,SAAW,KAAMjB,GAAKpB,GAAKP,EAAEL,OAAS,QAASK,EAAEuB,IAAM,IAAIyB,UAAU,oCAAqChD,EAAE4C,SAAW,KAAMjB,GAE9P,SAASwB,EAAapD,GACpB,IAAID,EAAI,CACNsD,OAAQrD,EAAE,IAEZ,KAAKA,IAAMD,EAAEuD,SAAWtD,EAAE,IAAK,KAAKA,IAAMD,EAAEwD,WAAavD,EAAE,GAAID,EAAEyD,SAAWxD,EAAE,IAAKtR,KAAK+U,WAAW/K,KAAKqH,GAE1G,SAAS2D,EAAc1D,GACrB,IAAID,EAAIC,EAAE2D,YAAc,GACxB5D,EAAEwB,KAAO,gBAAiBxB,EAAEyB,IAAKxB,EAAE2D,WAAa5D,EAElD,SAASqB,EAAQpB,GACftR,KAAK+U,WAAa,CAAC,CACjBJ,OAAQ,SACNrD,EAAEsC,QAAQc,EAAc1U,MAAOA,KAAKkV,OAAM,GAEhD,SAASzB,EAAOpC,GACd,GAAIA,GAAK,KAAOA,EAAG,CACjB,IAAIE,EAAIF,EAAES,GACV,GAAIP,EAAG,OAAOA,EAAE1L,KAAKwL,GACrB,GAAI,mBAAqBA,EAAEpL,KAAM,OAAOoL,EACxC,IAAK8D,MAAM9D,EAAEtO,QAAS,CACpB,IAAI4O,GAAK,EACPjJ,EAAI,SAASzC,IACX,OAAS0L,EAAIN,EAAEtO,QAAS,GAAI0O,EAAE5L,KAAKwL,EAAGM,GAAI,OAAO1L,EAAKvF,MAAQ2Q,EAAEM,GAAI1L,EAAKiO,MAAO,EAAIjO,EACpF,OAAOA,EAAKvF,MAAQ4Q,EAAGrL,EAAKiO,MAAO,EAAIjO,GAE3C,OAAOyC,EAAEzC,KAAOyC,GAGpB,MAAM,IAAI6L,UAAU,YAAQlD,GAAK,oBAEnC,OAAO8B,EAAkB3B,UAAY4B,EAA4BzB,EAAE+B,EAAG,cAAe,CACnFhT,MAAO0S,EACPd,cAAc,IACZX,EAAEyB,EAA4B,cAAe,CAC/C1S,MAAOyS,EACPb,cAAc,IACZa,EAAkBiC,YAAchD,EAAOgB,EAA4BlB,EAAG,qBAAsBb,EAAEgE,oBAAsB,SAAU/D,GAChI,IAAID,EAAI,mBAAqBC,GAAKA,EAAEgE,YACpC,QAASjE,IAAMA,IAAM8B,GAAqB,uBAAyB9B,EAAE+D,aAAe/D,EAAE7F,QACrF6F,EAAE1L,KAAO,SAAU2L,GACpB,OAAO3P,OAAO4T,eAAiB5T,OAAO4T,eAAejE,EAAG8B,IAA+B9B,EAAEkE,UAAYpC,EAA4BhB,EAAOd,EAAGY,EAAG,sBAAuBZ,EAAEE,UAAY7P,OAAO8Q,OAAOiB,GAAIpC,GACpMD,EAAEoE,MAAQ,SAAUnE,GACrB,MAAO,CACL0C,QAAS1C,IAEVqC,EAAsBG,EAActC,WAAYY,EAAO0B,EAActC,UAAWQ,GAAG,WACpF,OAAOhS,QACLqR,EAAEyC,cAAgBA,EAAezC,EAAEqE,MAAQ,SAAUpE,EAAGC,EAAGE,EAAGE,EAAGjJ,QACnE,IAAWA,IAAMA,EAAIkH,SACrB,IAAIkC,EAAI,IAAIgC,EAAchO,EAAKwL,EAAGC,EAAGE,EAAGE,GAAIjJ,GAC5C,OAAO2I,EAAEgE,oBAAoB9D,GAAKO,EAAIA,EAAE7L,OAAOmL,MAAK,SAAUE,GAC5D,OAAOA,EAAE4C,KAAO5C,EAAE5Q,MAAQoR,EAAE7L,WAE7B0N,EAAsBD,GAAItB,EAAOsB,EAAGxB,EAAG,aAAcE,EAAOsB,EAAG5B,GAAG,WACnE,OAAO9R,QACLoS,EAAOsB,EAAG,YAAY,WACxB,MAAO,wBACLrC,EAAE7I,KAAO,SAAU8I,GACrB,IAAID,EAAI1P,OAAO2P,GACbC,EAAI,GACN,IAAK,IAAIE,KAAKJ,EAAGE,EAAEvH,KAAKyH,GACxB,OAAOF,EAAE5I,UAAW,SAAS1C,IAC3B,KAAOsL,EAAExO,QAAS,CAChB,IAAIuO,EAAIC,EAAEoE,MACV,GAAIrE,KAAKD,EAAG,OAAOpL,EAAKvF,MAAQ4Q,EAAGrL,EAAKiO,MAAO,EAAIjO,EAErD,OAAOA,EAAKiO,MAAO,EAAIjO,IAExBoL,EAAEoC,OAASA,EAAQf,EAAQlB,UAAY,CACxC8D,YAAa5C,EACbwC,MAAO,SAAe7D,GACpB,GAAIrR,KAAKgG,KAAO,EAAGhG,KAAKiG,KAAO,EAAGjG,KAAKqQ,KAAOrQ,KAAKqU,MAAQ/C,EAAGtR,KAAKkU,MAAO,EAAIlU,KAAKmU,SAAW,KAAMnU,KAAKkR,OAAS,OAAQlR,KAAK8S,IAAMxB,EAAGtR,KAAK+U,WAAWnB,QAAQoB,IAAiB3D,EAAG,IAAK,IAAIE,KAAKvR,KAAM,MAAQuR,EAAEqE,OAAO,IAAMnE,EAAE5L,KAAK7F,KAAMuR,KAAO4D,OAAO5D,EAAEsE,MAAM,MAAQ7V,KAAKuR,GAAKD,IAEtRpL,KAAM,WACJlG,KAAKkU,MAAO,EACZ,IAAI5C,EAAItR,KAAK+U,WAAW,GAAGE,WAC3B,GAAI,UAAY3D,EAAEuB,KAAM,MAAMvB,EAAEwB,IAChC,OAAO9S,KAAK8V,MAEdxB,kBAAmB,SAA2BjD,GAC5C,GAAIrR,KAAKkU,KAAM,MAAM7C,EACrB,IAAIE,EAAIvR,KACR,SAAS+V,EAAOtE,EAAGE,GACjB,OAAOG,EAAEe,KAAO,QAASf,EAAEgB,IAAMzB,EAAGE,EAAEtL,KAAOwL,EAAGE,IAAMJ,EAAEL,OAAS,OAAQK,EAAEuB,IAAMxB,KAAMK,EAEzF,IAAK,IAAIA,EAAI3R,KAAK+U,WAAWhS,OAAS,EAAG4O,GAAK,IAAKA,EAAG,CACpD,IAAIjJ,EAAI1I,KAAK+U,WAAWpD,GACtBG,EAAIpJ,EAAEuM,WACR,GAAI,SAAWvM,EAAEiM,OAAQ,OAAOoB,EAAO,OACvC,GAAIrN,EAAEiM,QAAU3U,KAAKgG,KAAM,CACzB,IAAIgM,EAAIP,EAAE5L,KAAK6C,EAAG,YAChBwJ,EAAIT,EAAE5L,KAAK6C,EAAG,cAChB,GAAIsJ,GAAKE,EAAG,CACV,GAAIlS,KAAKgG,KAAO0C,EAAEkM,SAAU,OAAOmB,EAAOrN,EAAEkM,UAAU,GACtD,GAAI5U,KAAKgG,KAAO0C,EAAEmM,WAAY,OAAOkB,EAAOrN,EAAEmM,iBACzC,GAAI7C,GACT,GAAIhS,KAAKgG,KAAO0C,EAAEkM,SAAU,OAAOmB,EAAOrN,EAAEkM,UAAU,OACjD,CACL,IAAK1C,EAAG,MAAMlD,MAAM,0CACpB,GAAIhP,KAAKgG,KAAO0C,EAAEmM,WAAY,OAAOkB,EAAOrN,EAAEmM,gBAKtDnE,OAAQ,SAAgBY,EAAGD,GACzB,IAAK,IAAIE,EAAIvR,KAAK+U,WAAWhS,OAAS,EAAGwO,GAAK,IAAKA,EAAG,CACpD,IAAII,EAAI3R,KAAK+U,WAAWxD,GACxB,GAAII,EAAEgD,QAAU3U,KAAKgG,MAAQyL,EAAE5L,KAAK8L,EAAG,eAAiB3R,KAAKgG,KAAO2L,EAAEkD,WAAY,CAChF,IAAInM,EAAIiJ,EACR,OAGJjJ,IAAM,UAAY4I,GAAK,aAAeA,IAAM5I,EAAEiM,QAAUtD,GAAKA,GAAK3I,EAAEmM,aAAenM,EAAI,MACvF,IAAIoJ,EAAIpJ,EAAIA,EAAEuM,WAAa,GAC3B,OAAOnD,EAAEe,KAAOvB,EAAGQ,EAAEgB,IAAMzB,EAAG3I,GAAK1I,KAAKkR,OAAS,OAAQlR,KAAKiG,KAAOyC,EAAEmM,WAAY3B,GAAKlT,KAAKgW,SAASlE,IAExGkE,SAAU,SAAkB1E,EAAGD,GAC7B,GAAI,UAAYC,EAAEuB,KAAM,MAAMvB,EAAEwB,IAChC,MAAO,UAAYxB,EAAEuB,MAAQ,aAAevB,EAAEuB,KAAO7S,KAAKiG,KAAOqL,EAAEwB,IAAM,WAAaxB,EAAEuB,MAAQ7S,KAAK8V,KAAO9V,KAAK8S,IAAMxB,EAAEwB,IAAK9S,KAAKkR,OAAS,SAAUlR,KAAKiG,KAAO,OAAS,WAAaqL,EAAEuB,MAAQxB,IAAMrR,KAAKiG,KAAOoL,GAAI6B,GAE1N+C,OAAQ,SAAgB3E,GACtB,IAAK,IAAID,EAAIrR,KAAK+U,WAAWhS,OAAS,EAAGsO,GAAK,IAAKA,EAAG,CACpD,IAAIE,EAAIvR,KAAK+U,WAAW1D,GACxB,GAAIE,EAAEsD,aAAevD,EAAG,OAAOtR,KAAKgW,SAASzE,EAAE0D,WAAY1D,EAAEuD,UAAWE,EAAczD,GAAI2B,IAG9F,MAAS,SAAgB5B,GACvB,IAAK,IAAID,EAAIrR,KAAK+U,WAAWhS,OAAS,EAAGsO,GAAK,IAAKA,EAAG,CACpD,IAAIE,EAAIvR,KAAK+U,WAAW1D,GACxB,GAAIE,EAAEoD,SAAWrD,EAAG,CAClB,IAAIG,EAAIF,EAAE0D,WACV,GAAI,UAAYxD,EAAEoB,KAAM,CACtB,IAAIlB,EAAIF,EAAEqB,IACVkC,EAAczD,GAEhB,OAAOI,GAGX,MAAM3C,MAAM,0BAEdkH,cAAe,SAAuB7E,EAAGE,EAAGE,GAC1C,OAAOzR,KAAKmU,SAAW,CACrBpC,SAAU0B,EAAOpC,GACjBmD,WAAYjD,EACZkD,QAAShD,GACR,SAAWzR,KAAKkR,SAAWlR,KAAK8S,IAAMxB,GAAI4B,IAE9C7B,I,iCC7SL,SAAS8E,EAAmB1E,EAAGH,EAAGD,EAAGE,EAAGI,EAAGG,EAAGE,GAC5C,IACE,IAAItJ,EAAI+I,EAAEK,GAAGE,GACXE,EAAIxJ,EAAEhI,MACR,MAAO+Q,GACP,YAAYJ,EAAEI,GAEhB/I,EAAEwL,KAAO5C,EAAEY,GAAKtC,QAAQC,QAAQqC,GAAGd,KAAKG,EAAGI,GAE7C,SAASlM,EAAkBgM,GACzB,OAAO,WACL,IAAIH,EAAItR,KACNqR,EAAI3R,UACN,OAAO,IAAIkQ,SAAQ,SAAU2B,EAAGI,GAC9B,IAAIG,EAAIL,EAAErL,MAAMkL,EAAGD,GACnB,SAAS+E,EAAM3E,GACb0E,EAAmBrE,EAAGP,EAAGI,EAAGyE,EAAOC,EAAQ,OAAQ5E,GAErD,SAAS4E,EAAO5E,GACd0E,EAAmBrE,EAAGP,EAAGI,EAAGyE,EAAOC,EAAQ,QAAS5E,GAEtD2E,OAAM,OArBZ,mC,iCCCA,oEAAO,IAAME,EAAkB,CAAC,KAAM,KAAM,KAAM,KAAM,MAC3CC,EAAe,CAC1BC,OAAQ,GAAK,GACbC,QAAS,GAAK,IAiBVC,EAAqB,CACzBC,GAAI,SAEAC,EAAc,CAClBC,GAAI,EACJC,GAAI,GAEJC,GAAI,GAEJC,GAAI,GAEJL,GAAI,IAiCC,SAASM,IAGd,IAFAC,EAA6BxX,UAAAqD,OAAA,QAAAkO,IAAAvR,UAAA,GAAAA,UAAA,GAAGgX,EAChC1J,EAAyBtN,UAAAqD,OAAA,QAAAkO,IAAAvR,UAAA,GAAAA,UAAA,GAAG,SAEtByX,EAAUb,EAAgBc,QAAO,SAACC,EAAKC,EAAY/T,GAEvD,IAAMyJ,EAAW4J,EAAYU,IAAeV,EAAYN,EAAgB/S,EAAQ,IAC1EgU,EAAiBL,EAAYI,GAEnC,OAAIC,EACK,GAAPpU,OAAUkU,EAAG,gBAAAlU,OAAe6J,EAAQ,QAAA7J,OAAOoU,EAAc,MAGpDF,IACN,IACH,OAAOF,GAA+B,iBAAbnK,EAAwB,GAAH7J,OAAM6J,EAAQ,MAAOA,K,kBClDrEwK,EAAOC,QALP,SAAkB/W,GAChB,IAAImS,SAAcnS,EAClB,OAAgB,MAATA,IAA0B,UAARmS,GAA4B,YAARA,K,oBC3B/C,IAAI6E,EAAW,EAAQ,KACnBC,EAAW,EAAQ,KAmEvBH,EAAOC,QAlBP,SAAkBG,EAAMC,EAAM7G,GAC5B,IAAI8G,GAAU,EACVC,GAAW,EAEf,GAAmB,mBAARH,EACT,MAAM,IAAIrD,UAnDQ,uBAyDpB,OAJIoD,EAAS3G,KACX8G,EAAU,YAAa9G,IAAYA,EAAQ8G,QAAUA,EACrDC,EAAW,aAAc/G,IAAYA,EAAQ+G,SAAWA,GAEnDL,EAASE,EAAMC,EAAM,CAC1B,QAAWC,EACX,QAAWD,EACX,SAAYE,M,0GChEhB,SAASzG,EAAEA,GAAG,MAAM,iBAAiBA,GAAG,MAAMA,GAAG,IAAIA,EAAE0G,SAAS,SAAS3G,EAAEC,EAAED,GAAG,QAAQA,GAAG,WAAWC,IAAI,YAAYA,GAAG,SAASA,EAAE,SAASG,EAAEH,EAAEG,GAAG,GAAGH,EAAE2G,aAAa3G,EAAE4G,cAAc5G,EAAE6G,YAAY7G,EAAE8G,YAAY,CAAC,IAAI7G,EAAE8G,iBAAiB/G,EAAE,MAAM,OAAOD,EAAEE,EAAE+G,UAAU7G,IAAIJ,EAAEE,EAAEgH,UAAU9G,IAAI,SAASH,GAAG,IAAID,EAAE,SAASC,GAAG,IAAIA,EAAEkH,gBAAgBlH,EAAEkH,cAAcC,YAAY,OAAO,KAAK,IAAI,OAAOnH,EAAEkH,cAAcC,YAAYC,aAAa,MAAMpH,GAAG,OAAO,MAA9I,CAAqJA,GAAG,QAAQD,IAAIA,EAAE4G,aAAa3G,EAAE4G,cAAc7G,EAAE8G,YAAY7G,EAAE8G,aAArO,CAAmP9G,GAAG,OAAM,EAAG,SAASC,EAAED,EAAED,EAAEI,EAAEF,EAAE7I,EAAEiJ,EAAEgH,EAAErF,GAAG,OAAO3B,EAAEL,GAAGqH,EAAEtH,GAAGM,EAAEL,GAAGqH,EAAEtH,EAAE,EAAEM,GAAGL,GAAGgC,GAAG7B,GAAGkH,GAAGtH,GAAGiC,GAAG7B,EAAEE,EAAEL,EAAEC,EAAEoH,EAAEtH,GAAGiC,EAAE7B,GAAGE,EAAEL,GAAGgC,EAAE7B,EAAEkH,EAAEtH,EAAE3I,EAAE,EAAE,ICSxoBkQ,EAAY,EAUhB,SAASC,EAAOC,GACd,MAAqB,mBAAPA,EAAoBA,EAAKC,EAGzC,SAASA,KAQT,SAAS,EAAeC,EAAMC,GACf,OAATD,GDhC4oB,SAAS3H,EAAE3I,GAAG,IAAIiJ,EAAElD,OAAOkK,EAAEjQ,EAAEwQ,WAAW5F,EAAE5K,EAAEyQ,MAAMnG,EAAEtK,EAAE0Q,OAAOrG,EAAErK,EAAE2Q,SAASnH,EAAExJ,EAAE4Q,2BAA2BrG,EAAE,mBAAmBF,EAAEA,EAAE,SAASzB,GAAG,OAAOA,IAAIyB,GAAG,IAAIzB,EAAED,GAAG,MAAM,IAAIkD,UAAU,kBAAkB,IAAI,IAAIzC,EAAEE,EAAE0B,EAAE/M,SAAS4S,kBAAkB5S,SAAS6S,gBAAgBnG,EAAE,GAAGoG,EAAEpI,EAAEC,EAAEmI,IAAIxG,EAAEwG,IAAI,CAAC,IAAIA,EAAE,OAAOzH,GAAGF,EAAE2H,GAAGC,eAAe5H,EAAE6H,cAAcC,MAAM,KAAK5H,KAAK0B,EAAE,CAACL,EAAErJ,KAAKyP,GAAG,MAAM,MAAMA,GAAGA,IAAI9S,SAASD,MAAM+K,EAAEgI,KAAKhI,EAAE9K,SAAS6S,kBAAkB,MAAMC,GAAGhI,EAAEgI,EAAEvH,IAAImB,EAAErJ,KAAKyP,GAAG,IAAI,IAAII,EAAElI,EAAEmI,eAAenI,EAAEmI,eAAevV,MAAMwV,WAAWvG,EAAE7B,EAAEmI,eAAenI,EAAEmI,eAAetV,OAAOwV,YAAYC,EAAExL,OAAOyL,SAASC,YAAYC,EAAE3L,OAAO4L,SAASC,YAAYC,EAAElJ,EAAEmJ,wBAAwBtH,EAAEqH,EAAE/V,OAAOiW,EAAEF,EAAEhW,MAAMmW,EAAEH,EAAE1P,IAAI8P,EAAEJ,EAAEK,MAAMrV,EAAEgV,EAAEzP,OAAO+P,EAAEN,EAAEO,KAAKC,EAAE,UAAUzH,GAAG,YAAYA,EAAEoH,EAAE,QAAQpH,EAAE/N,EAAEmV,EAAExH,EAAE,EAAE8H,EAAE,WAAWhI,EAAE6H,EAAEJ,EAAE,EAAE,QAAQzH,EAAE2H,EAAEE,EAAEI,EAAE,GAAGC,EAAE,EAAEA,EAAE7H,EAAEtQ,OAAOmY,IAAI,CAAC,IAAIC,EAAE9H,EAAE6H,GAAGE,EAAED,EAAEX,wBAAwBa,EAAED,EAAE5W,OAAO8W,EAAEF,EAAE7W,MAAMgX,EAAEH,EAAEvQ,IAAI2Q,EAAEJ,EAAER,MAAMa,EAAEL,EAAEtQ,OAAO4Q,EAAEN,EAAEN,KAAK,GAAG,cAAcnC,GAAG+B,GAAG,GAAGG,GAAG,GAAGtV,GAAGiO,GAAGmH,GAAGd,GAAGa,GAAGa,GAAGhW,GAAGkW,GAAGZ,GAAGa,GAAGf,GAAGa,EAAE,OAAOP,EAAE,IAAIU,EAAEtD,iBAAiB8C,GAAGS,EAAEC,SAASF,EAAEG,gBAAgB,IAAIC,EAAEF,SAASF,EAAEK,eAAe,IAAIC,EAAEJ,SAASF,EAAEO,iBAAiB,IAAIC,EAAEN,SAASF,EAAES,kBAAkB,IAAIC,EAAE,EAAEC,EAAE,EAAEC,EAAE,gBAAgBpB,EAAEA,EAAEqB,YAAYrB,EAAEhD,YAAYyD,EAAEK,EAAE,EAAEQ,EAAE,iBAAiBtB,EAAEA,EAAEuB,aAAavB,EAAElD,aAAa8D,EAAEI,EAAE,EAAEQ,EAAE,gBAAgBxB,EAAE,IAAIA,EAAEqB,YAAY,EAAElB,EAAEH,EAAEqB,YAAY,EAAEI,EAAE,iBAAiBzB,EAAE,IAAIA,EAAEuB,aAAa,EAAErB,EAAEF,EAAEuB,aAAa,EAAE,GAAGhJ,IAAIyH,EAAEkB,EAAE,UAAU/I,EAAEyH,EAAE,QAAQzH,EAAEyH,EAAEvH,EAAE,YAAYF,EAAE/B,EAAE6I,EAAEA,EAAE5G,EAAEA,EAAEuI,EAAEI,EAAE/B,EAAEW,EAAEX,EAAEW,EAAE7H,EAAEA,GAAG6H,EAAEvH,EAAE,EAAE8I,EAAE,UAAUtJ,EAAEgI,EAAE,WAAWhI,EAAEgI,EAAEnB,EAAE,EAAE,QAAQ7G,EAAEgI,EAAEnB,EAAEtI,EAAE0I,EAAEA,EAAEJ,EAAEA,EAAE+B,EAAEK,EAAEhC,EAAEe,EAAEf,EAAEe,EAAEP,EAAEA,GAAG4B,EAAEQ,KAAKC,IAAI,EAAET,EAAEjC,GAAGkC,EAAEO,KAAKC,IAAI,EAAER,EAAErC,OAAO,CAACoC,EAAE,UAAU/I,EAAEyH,EAAEQ,EAAEQ,EAAE,QAAQzI,EAAEyH,EAAEU,EAAEU,EAAEM,EAAE,YAAYnJ,EAAE/B,EAAEgK,EAAEE,EAAEJ,EAAEU,EAAEI,EAAEM,EAAE1B,EAAEA,EAAE7H,EAAEA,GAAG6H,GAAGQ,EAAEF,EAAE,GAAGoB,EAAE,EAAEH,EAAE,UAAUtJ,EAAEgI,EAAEU,EAAEE,EAAE,WAAW5I,EAAEgI,GAAGU,EAAEJ,EAAE,GAAGiB,EAAE,EAAE,QAAQvJ,EAAEgI,EAAEQ,EAAES,EAAEM,EAAEhL,EAAEmK,EAAEF,EAAEF,EAAEM,EAAEK,EAAEM,EAAEvB,EAAEA,EAAEP,EAAEA,GAAG,IAAIsC,EAAE5B,EAAE6B,WAAWC,EAAE9B,EAAE+B,UAAUnC,GAAGkC,GAAGZ,EAAEQ,KAAKC,IAAI,EAAED,KAAKM,IAAIF,EAAEZ,EAAEO,EAAEzB,EAAEjD,aAAamD,EAAEuB,EAAEH,KAAKzB,GAAG+B,GAAGT,EAAEO,KAAKC,IAAI,EAAED,KAAKM,IAAIJ,EAAET,EAAEK,EAAExB,EAAE/C,YAAYkD,EAAEqB,EAAEJ,KAAKtB,EAAEjR,KAAK,CAACoT,GAAGjC,EAAEtQ,IAAIwR,EAAEvB,KAAKwB,IAAI,OAAOrB,ECoC5jF,CAAsBjC,EAAM,CACxCK,SAAUJ,EACVE,MAAO,UACPD,WAAY,cAENtF,SAAQ,SAAUnM,GACxB,IAAI2V,EAAK3V,EAAK2V,GACVvS,EAAMpD,EAAKoD,IACXiQ,EAAOrT,EAAKqT,KAChBsC,EAAGF,UAAYrS,EACfuS,EAAGJ,WAAalC,KAUpB,SAASuC,EAAiBC,EAAQC,GAChC,OAAOD,IAAWC,GAASD,EAAOE,UAAYF,EAAOE,SAASD,GAYhE,SAAS7F,EAAS+F,EAAIC,GACpB,IAAIC,EAEJ,SAASC,IACHD,GACFE,aAAaF,GAIjB,SAASG,IACP,IAAK,IAAIhb,EAAOpD,UAAUqD,OAAQC,EAAO,IAAIC,MAAMH,GAAOI,EAAO,EAAGA,EAAOJ,EAAMI,IAC/EF,EAAKE,GAAQxD,UAAUwD,GAGzB0a,IACAD,EAAY9W,YAAW,WACrB8W,EAAY,KACZF,EAAGrX,WAAM,EAAQpD,KAChB0a,GAIL,OADAI,EAAQF,OAASA,EACVE,EAWT,SAASC,IACP,IAAK,IAAIC,EAAQte,UAAUqD,OAAQkb,EAAM,IAAIhb,MAAM+a,GAAQE,EAAQ,EAAGA,EAAQF,EAAOE,IACnFD,EAAIC,GAASxe,UAAUwe,GAGzB,OAAO,SAAU7e,GACf,IAAK,IAAI8e,EAAQze,UAAUqD,OAAQC,EAAO,IAAIC,MAAMkb,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IACxGpb,EAAKob,EAAQ,GAAK1e,UAAU0e,GAG9B,OAAOH,EAAII,MAAK,SAAUZ,GAKxB,OAJIA,GACFA,EAAGrX,WAAM,EAAQ,CAAC/G,GAAO8D,OAAOH,IAG3B3D,EAAMif,yBAA2Bjf,EAAMqS,eAAe,gBAAkBrS,EAAMkf,YAAYD,4BAKvG,SAASE,IACP,IAAK,IAAIC,EAAQ/e,UAAUqD,OAAQ2b,EAAO,IAAIzb,MAAMwb,GAAQE,EAAQ,EAAGA,EAAQF,EAAOE,IACpFD,EAAKC,GAASjf,UAAUif,GAG1B,OAAO,SAAU3F,GACf0F,EAAK9K,SAAQ,SAAUvL,GACF,mBAARA,EACTA,EAAI2Q,GACK3Q,IACTA,EAAIuW,QAAU5F,OA4BtB,SAAS,EAAqB/Q,GAC5B,IAAInH,EAASmH,EAAMnH,OACf+d,EAAe5W,EAAM4W,aACrBC,EAAc7W,EAAM6W,YACpBC,EAAsB9W,EAAM8W,oBAC5BC,EAAe/W,EAAM+W,aAEzB,OAAKle,EAIAge,EAIDA,IAAgBC,EACXD,EAAc,WAA6B,IAAhBA,EAAoB,MAAQ,SAAW,iFAGpE,GAPE,4BAJAD,EAAeG,EAAaH,GAAgB,GAsBvD,SAASI,EAAYnM,EAAKoM,GAKxB,QAJApM,EAAM7P,MAAMkc,QAAQrM,GAEpBA,EAAI,GAAKA,IAEGoM,EACHA,EAEApM,EASX,SAASsM,EAAaC,GAEpB,MAA+B,iBAAjBA,EAAQxM,KAQxB,SAASyM,EAAgBD,GACvB,OAAOA,EAAQpf,MAejB,IAAIsf,EAAY,CAAC,mBAAoB,aAAc,SAAU,eAAgB,QAM7E,SAASC,EAAUlc,QACH,IAAVA,IACFA,EAAQ,IAGV,IAAImc,EAAS,GAMb,OALAF,EAAU3L,SAAQ,SAAUsH,GACtB5X,EAAMoO,eAAewJ,KACvBuE,EAAOvE,GAAK5X,EAAM4X,OAGfuE,EAST,SAASC,EAAkBrgB,GACzB,IAAIQ,EAAMR,EAAMQ,IACZ8f,EAAUtgB,EAAMsgB,QAGpB,OAAIA,GAAW,IAAMA,GAAW,IAA+B,IAAzB9f,EAAI0P,QAAQ,SACzC,QAAU1P,EAGZA,EAuBT,SAAS+f,EAAqBC,EAAYC,EAAWC,GACnD,IAAIC,EAAiBD,EAAY,GAER,iBAAdD,GAA0BA,EAAY,GAAKA,GAAaC,KACjED,EAAYD,EAAa,GAAK,EAAIG,EAAiB,GAGrD,IAAIC,EAAWH,EAAYD,EAQ3B,OANII,EAAW,EACbA,EAAWD,EACFC,EAAWD,IACpBC,EAAW,GAGNA,EAGT,IAAIC,EAAgBxI,GAAS,WAC3ByI,IAAeC,YAAc,KAC5B,KAMH,SAASC,EAAU5P,EAAQ6P,GACzB,IAAI3Y,EAAMwY,EAAaG,GAElB7P,IAIL9I,EAAIyY,YAAc3P,EAClByP,KASF,SAASC,EAAaG,QACC,IAAjBA,IACFA,EAAe3Z,UAGjB,IAAI4Z,EAAYD,EAAaE,eAAe,uBAE5C,OAAID,KAIJA,EAAYD,EAAaG,cAAc,QAC7BC,aAAa,KAAM,uBAC7BH,EAAUG,aAAa,OAAQ,UAC/BH,EAAUG,aAAa,YAAa,UACpCH,EAAUG,aAAa,gBAAiB,kBACxC/e,OAAOC,OAAO2e,EAAUzZ,MAAO,CAC7B6Z,OAAQ,IACRC,KAAM,gBACNpc,OAAQ,MACRuJ,OAAQ,OACRhH,SAAU,SACV8Z,QAAS,IACTvX,SAAU,WACV/E,MAAO,QAET+b,EAAa5Z,KAAKoa,YAAYP,GACvBA,GAGT,IAkBIQ,EAAgCpf,OAAOqf,OAAO,CAChDxL,UAAW,KACXyL,QApBiF,EAqBjFC,QApBiF,EAqBjFC,eApBgG,EAqBhGC,eApBiG,EAqBjGC,iBApBqG,EAqBrGC,cApB8F,EAqB9FC,aApB4F,EAqB5FC,YApB0F,EAqB1FC,WApBwF,EAqBxFC,UApBsF,EAqBtFC,UApBsF,GAqBtFC,YApB0F,GAqB1FC,mBApByG,GAqBzGC,YApB0F,GAqB1FC,WApBwF,GAqBxFC,kCApByI,GAqBzIC,SApBmF,KAuBjF,EAEJ,WACE,IAAIC,EAEJ,SAAUC,GAGR,SAASD,EAAUE,GACjB,IAAIvf,EAAQsf,EAAWtc,KAAK7F,KAAMoiB,IAAWpiB,KAE7C6C,EAAMwf,GAAKxf,EAAM5C,MAAMoiB,IAAM,aA9Q1BC,OAAO1J,KA+QV/V,EAAM0f,OAAS1f,EAAM5C,MAAMsiB,QAAU1f,EAAMwf,GAAK,QAChDxf,EAAM2f,QAAU3f,EAAM5C,MAAMuiB,SAAW3f,EAAMwf,GAAK,SAClDxf,EAAM4f,QAAU5f,EAAM5C,MAAMwiB,SAAW5f,EAAMwf,GAAK,SAElDxf,EAAM6f,UAAY7f,EAAM5C,MAAMyiB,WAAa,SAAUnf,GACnD,OAAOV,EAAMwf,GAAK,SAAW9e,GAG/BV,EAAM8f,MAAQ,KACd9f,EAAMxC,MAAQ,GACdwC,EAAMkd,UAAY,KAClBld,EAAMkc,oBAAsB,EAC5Blc,EAAM+f,WAAa,GAEnB/f,EAAMggB,mBAAqB,SAAUpF,EAAIC,GACvC,IAAI2E,EAAKxb,YAAW,WAClBhE,EAAM+f,WAAa/f,EAAM+f,WAAWE,QAAO,SAAUpa,GACnD,OAAOA,IAAM2Z,KAEf5E,MACCC,GAEH7a,EAAM+f,WAAW5Y,KAAKqY,IAGxBxf,EAAMkgB,aAAe,SAAUC,GAC7BngB,EAAMkd,UAAYiD,GAGpBngB,EAAMogB,eAAiB,WACrBpgB,EAAMkd,UAAY,MAGpBld,EAAMqgB,oBAAsB,SAAUC,EAAkBC,QAC7B,IAArBD,IACFA,EAAmBtgB,EAAM5C,MAAMojB,8BAGT,IAApBD,IACFA,EAAkB,IAGpBA,EAAkB5D,EAAU4D,GAE5BvgB,EAAMygB,iBAAiB,YAAS,CAC9BH,iBAAkBA,GACjBC,KAGLvgB,EAAM0gB,eAAiB,SAAUzK,GAC/BjW,EAAMygB,iBAAiB,CACrBzE,aAAc,KACd2E,WAAY,GACZL,iBAAkBtgB,EAAM5C,MAAMojB,wBAC9BviB,OAAQ+B,EAAM5C,MAAMwjB,eACnB3K,IAGLjW,EAAM6gB,WAAa,SAAUzhB,EAAMmhB,EAAiBtK,GAClDsK,EAAkB5D,EAAU4D,GAE5BvgB,EAAMygB,iBAAiB,YAAS,CAC9BxiB,OAAQ+B,EAAM5C,MAAMwjB,cACpBN,iBAAkBtgB,EAAM5C,MAAMojB,wBAC9BxE,aAAc5c,EACduhB,WAAY3gB,EAAM5C,MAAM+e,aAAa/c,IACpCmhB,GAAkBtK,IAGvBjW,EAAM8gB,kBAAoB,SAAUC,EAAWR,EAAiBtK,GAC9D,IAAI7W,EAAOY,EAAMxC,MAAMujB,GAEX,MAAR3hB,GAIJY,EAAM6gB,WAAWzhB,EAAMmhB,EAAiBtK,IAG1CjW,EAAMghB,sBAAwB,SAAUT,EAAiBtK,GACvD,OAAOjW,EAAM8gB,kBAAkB9gB,EAAMihB,WAAWX,iBAAkBC,EAAiBtK,IAGrFjW,EAAMygB,iBAAmB,SAAUS,EAAYjL,GAC7C,IAAIkL,EAAgBC,EAChBC,EAAmB,GACnBC,EAA6C,mBAAfJ,EAUlC,OAJKI,GAAwBJ,EAAWrS,eAAe,eACrD7O,EAAM5C,MAAMmkB,mBAAmBL,EAAWP,WAAY,YAAS,GAAI3gB,EAAMwhB,qBAAsB,GAAIN,IAG9FlhB,EAAMQ,UAAS,SAAUC,GAC9BA,EAAQT,EAAMihB,SAASxgB,GACvB,IAAIghB,EAAgBH,EAAuBJ,EAAWzgB,GAASygB,EAE/DO,EAAgBzhB,EAAM5C,MAAMskB,aAAajhB,EAAOghB,GAIhDN,EAAiBM,EAAc5S,eAAe,gBAE9C,IAAI8S,EAAY,GAEZC,EAAgB,GAsCpB,OAlCIT,GAAkBM,EAAczF,eAAiBvb,EAAMub,eACzDoF,EAAcK,EAAczF,cAG9ByF,EAAczR,KAAOyR,EAAczR,MAvKsC,EAwKzElR,OAAO6G,KAAK8b,GAAe1Q,SAAQ,SAAU/T,GAGvCyD,EAAMzD,KAASykB,EAAczkB,KAC/BqkB,EAAiBrkB,GAAOykB,EAAczkB,IAS5B,SAARA,IAIJ4kB,EAAc5kB,GAAOykB,EAAczkB,GAE9BgD,EAAM6hB,iBAAiB7kB,KAC1B2kB,EAAU3kB,GAAOykB,EAAczkB,QAK/BskB,GAAwBG,EAAc5S,eAAe,eACvD7O,EAAM5C,MAAMmkB,mBAAmBE,EAAcd,WAAY,YAAS,GAAI3gB,EAAMwhB,qBAAsB,GAAIC,IAGjGE,KACN,WAED3L,EAAOC,EAAPD,GAG2BlX,OAAO6G,KAAK0b,GAAkBnhB,OAAS,GAGhEF,EAAM5C,MAAM0kB,cAAcT,EAAkBrhB,EAAMwhB,sBAGhDL,GACFnhB,EAAM5C,MAAM2kB,SAASb,EAAWlF,aAAchc,EAAMwhB,2BAGlCpT,IAAhBgT,GACFphB,EAAM5C,MAAM4kB,SAASZ,EAAaphB,EAAMwhB,sBAK1CxhB,EAAM5C,MAAM6kB,aAAaZ,EAAkBrhB,EAAMwhB,0BAIrDxhB,EAAMkiB,QAAU,SAAU/L,GACxB,OAAOnW,EAAMmiB,UAAYhM,GAG3BnW,EAAMoiB,aAAe,SAAUC,EAAOC,GACpC,IAAIC,EAEA3d,OAAiB,IAAVyd,EAAmB,GAAKA,EAC/BG,EAAc5d,EAAK6d,OACnBA,OAAyB,IAAhBD,EAAyB,MAAQA,EAC1Chd,EAAMZ,EAAKY,IACXkd,EAAO,YAA8B9d,EAAM,CAAC,SAAU,QAGtD+d,QADmB,IAAXL,EAAoB,GAAKA,GACHM,iBAC9BA,OAA6C,IAA1BD,GAA2CA,EAIlE3iB,EAAMoiB,aAAaS,QAAS,EAC5B7iB,EAAMoiB,aAAaK,OAASA,EAC5BziB,EAAMoiB,aAAaQ,iBAAmBA,EAEtC,IACI3kB,EADiB+B,EAAMihB,WACChjB,OAE5B,OAAO,cAAUskB,EAAY,IAAcE,GAAU9G,EAAWnW,EAAKxF,EAAMkiB,SAAUK,EAAUO,KAAO,WAAYP,EAAU,iBAAmBtkB,EAAQskB,EAAU,iBAAmB,UAAWA,EAAU,aAAetkB,EAAS+B,EAAM0f,OAAS,KAAM6C,EAAU,mBAAqBviB,EAAM2f,QAAS4C,GAAYG,IAGlT1iB,EAAM+iB,gBAAkB,CACtBC,UAAW,SAAmBxmB,GAC5B,IAAIsM,EAAS3L,KAIb,GAFAX,EAAMymB,iBAEF9lB,KAAK8jB,WAAWhjB,OAAQ,CAC1B,IAAIilB,EAAS1mB,EAAM2mB,SAAW,EAAI,EAClChmB,KAAKimB,qBAAqBF,EAAQ,CAChClT,KAjQyF,SAoQ3F7S,KAAKsjB,iBAAiB,CACpBxiB,QAAQ,EACR+R,KAtQyF,IAuQxF,WACD,IAAIkN,EAAYpU,EAAOua,eAEnBnG,EAAY,GACdpU,EAAOuX,oBAAoBtD,EAAqB,EAAGjU,EAAOmY,WAAWX,iBAAkBpD,GAAY,CACjGlN,KA5QqF,QAkR/FsT,QAAS,SAAiB9mB,GACxB,IAAIuM,EAAS5L,KAIb,GAFAX,EAAMymB,iBAEF9lB,KAAK8jB,WAAWhjB,OAAQ,CAC1B,IAAIilB,EAAS1mB,EAAM2mB,UAAY,GAAK,EACpChmB,KAAKimB,qBAAqBF,EAAQ,CAChClT,KA3RqF,SA8RvF7S,KAAKsjB,iBAAiB,CACpBxiB,QAAQ,EACR+R,KAhSqF,IAiSpF,WACD,IAAIkN,EAAYnU,EAAOsa,eAEnBnG,EAAY,GACdnU,EAAOsX,oBAAoBtD,GAAsB,EAAGhU,EAAOkY,WAAWX,iBAAkBpD,GAAY,CAClGlN,KArSqF,QA2S/FuT,MAAO,SAAe/mB,GACpB,IAAIgnB,EAAkBrmB,KAAK8jB,WACvBhjB,EAASulB,EAAgBvlB,OACzBqiB,EAAmBkD,EAAgBlD,iBAEvC,GAAIriB,GAA8B,MAApBqiB,EAA0B,CACtC9jB,EAAMymB,iBACN,IAAI7jB,EAAOjC,KAAKK,MAAM8iB,GAClBmD,EAAWtmB,KAAKumB,qBAAqBpD,GAEzC,GAAY,MAARlhB,GAAgBqkB,GAAYA,EAASE,aAAa,YACpD,OAGFxmB,KAAK6jB,sBAAsB,CACzBhR,KAxTgF,MA4TtF4T,OAAQ,SAAgBpnB,GACtBA,EAAMymB,iBACN9lB,KAAKkV,MAAM,CACTrC,KAhUoF,EAiUpFgM,aAAc,KACd2E,WAAY,OAIlB3gB,EAAM6jB,sBAAwB,YAAS,GAAI7jB,EAAM+iB,gBAAiB,CAChE,IAAK,SAAWvmB,GACdA,EAAMymB,iBACN9lB,KAAK2mB,WAAW,CACd9T,KAnU+F,QAuUrGhQ,EAAM+jB,qBAAuB,YAAS,GAAI/jB,EAAM+iB,gBAAiB,CAC/DiB,KAAM,SAAcxnB,GAClBW,KAAK8mB,0BAA0BznB,GAAO,EAAM,CAC1CwT,KA/UgF,KAkVpFkU,IAAK,SAAa1nB,GAChBW,KAAK8mB,0BAA0BznB,GAAO,EAAO,CAC3CwT,KAnV8E,OAwVpFhQ,EAAMmkB,qBAAuB,SAAUC,GACrC,IAAIre,OAAmB,IAAXqe,EAAoB,GAAKA,EACjC7lB,EAAUwH,EAAMxH,QAEhB8lB,GADUte,EAAMue,QACJve,EAAMse,WAClBE,EAAUxe,EAAMwe,QAChBC,EAASze,EAAMye,OACf9B,EAAO,YAA8B3c,EAAO,CAAC,UAAW,UAAW,YAAa,UAAW,WAG3F9H,EADkB+B,EAAMihB,WACChjB,OAEzBwmB,EAAuB,CACzBlmB,QAAS2c,EAAqB3c,EAASyB,EAAM0kB,mBAC7CL,UAAWnJ,EAAqBmJ,EAAWrkB,EAAM2kB,qBACjDJ,QAASrJ,EAAqBqJ,EAASvkB,EAAM4kB,mBAC7CJ,OAAQtJ,EAAqBsJ,EAAQxkB,EAAM6kB,mBAEzCC,EAAgBpC,EAAKhd,SAAW,GAAK+e,EACzC,OAAO,YAAS,CACdzU,KAAM,SACN8S,KAAM,SACN,aAAc7kB,EAAS,aAAe,YACtC,iBAAiB,EACjB,eAAe,GACd6mB,EAAe,GAAIpC,IAGxB1iB,EAAM4kB,kBAAoB,SAAUpoB,GAElCA,EAAMymB,kBAGRjjB,EAAM2kB,oBAAsB,SAAUnoB,GACpC,IAAIQ,EAAM6f,EAAkBrgB,GAExBwD,EAAM6jB,sBAAsB7mB,IAC9BgD,EAAM6jB,sBAAsB7mB,GAAKgG,KAAK,YAAuBhD,GAAQxD,IAIzEwD,EAAM0kB,kBAAoB,SAAUloB,GAClCA,EAAMymB,iBAKDjjB,EAAM5C,MAAM2nB,YAAYjhB,SAASkhB,gBAAkBhlB,EAAM5C,MAAM2nB,YAAYjhB,SAASD,MACvFrH,EAAMyoB,OAAOC,QAYbllB,EAAMggB,oBAAmB,WACvB,OAAOhgB,EAAM8jB,WAAW,CACtB9T,KAjZ8E,SAuZtFhQ,EAAM6kB,iBAAmB,SAAUroB,GACjC,IAAI2oB,EAAa3oB,EAAMyoB,OAGvBjlB,EAAMggB,oBAAmB,WAClBhgB,EAAMolB,aAAkE,MAAlDplB,EAAM5C,MAAM2nB,YAAYjhB,SAASkhB,eAAyBhlB,EAAM5C,MAAM2nB,YAAYjhB,SAASkhB,cAAcxF,KAAOxf,EAAM4f,SAAY5f,EAAM5C,MAAM2nB,YAAYjhB,SAASkhB,gBAAkBG,GAE5MnlB,EAAMqS,MAAM,CACVrC,KA9Z0E,SAoapFhQ,EAAMqlB,cAAgB,SAAUjoB,GAC9B,OAAO,YAAS,CACdkoB,QAAStlB,EAAM4f,QACfJ,GAAIxf,EAAM2f,SACTviB,IAGL4C,EAAMulB,cAAgB,SAAUC,GAC9B,IAAI5e,OAAmB,IAAX4e,EAAoB,GAAKA,EACjCnB,EAAYzd,EAAMyd,UAClBG,EAAS5d,EAAM4d,OACfxC,EAAWpb,EAAMob,SACjByD,EAAU7e,EAAM6e,QAEhB/C,GADe9b,EAAM8e,aACd,YAA8B9e,EAAO,CAAC,YAAa,SAAU,WAAY,UAAW,kBAG3Fke,EAAgB,GAKpB,IAMMa,EANFC,EAAkB5lB,EAAMihB,WACxBN,EAAaiF,EAAgBjF,WAC7B1iB,EAAS2nB,EAAgB3nB,OACzBqiB,EAAmBsF,EAAgBtF,iBAElCoC,EAAKhd,YAGSigB,EAAiB,IAA8B,SAAIzK,EAAqB8G,EAAUyD,EAASzlB,EAAM6lB,mBAAoBF,EAAetB,UAAYnJ,EAAqBmJ,EAAWrkB,EAAM8lB,oBAAqBH,EAAenB,OAAStJ,EAAqBsJ,EAAQxkB,EAAM+lB,iBAAvRjB,EAAySa,GAK3S,OAAO,YAAS,CACd,oBAAqB,OACrB,wBAAyB1nB,GAAsC,iBAArBqiB,GAAiCA,GAAoB,EAAItgB,EAAM6f,UAAUS,GAAoB,KACvI,gBAAiBriB,EAAS+B,EAAM0f,OAAS,KACzC,kBAAmB1f,EAAM2f,QAGzBqG,aAAc,MACdnoB,MAAO8iB,EACPnB,GAAIxf,EAAM4f,SACTkF,EAAe,GAAIpC,IAGxB1iB,EAAM8lB,mBAAqB,SAAUtpB,GACnC,IAAIQ,EAAM6f,EAAkBrgB,GAExBQ,GAAOgD,EAAM+jB,qBAAqB/mB,IACpCgD,EAAM+jB,qBAAqB/mB,GAAKgG,KAAK,YAAuBhD,GAAQxD,IAIxEwD,EAAM6lB,kBAAoB,SAAUrpB,GAClCwD,EAAMygB,iBAAiB,CACrBzQ,KAjekF,GAkelF/R,QAAQ,EACR0iB,WAAYnkB,EAAMyoB,OAAOpnB,MACzByiB,iBAAkBtgB,EAAM5C,MAAMojB,2BAIlCxgB,EAAM+lB,gBAAkB,WAEtB/lB,EAAMggB,oBAAmB,WACvB,IAAIiG,EAA0BjmB,EAAM5C,MAAM2nB,YAAYjhB,YAAc9D,EAAM5C,MAAM2nB,YAAYjhB,SAASkhB,iBAAmBhlB,EAAM5C,MAAM2nB,YAAYjhB,SAASkhB,cAAckB,SAAWlmB,EAAM5C,MAAM2nB,YAAYjhB,SAASkhB,cAAckB,QAAQC,QAAUnmB,EAAMmiB,WAAaniB,EAAMmiB,UAAUxH,SAAS3a,EAAM5C,MAAM2nB,YAAYjhB,SAASkhB,eAE3ThlB,EAAMolB,aAAgBa,GACzBjmB,EAAMqS,MAAM,CACVrC,KAhf0E,SAsflFhQ,EAAMomB,QAAU,SAAUjQ,GACxBnW,EAAMqmB,UAAYlQ,GAGpBnW,EAAMsmB,aAAe,SAAUC,EAAQC,GACrC,IAAIC,EAEAC,OAAmB,IAAXH,EAAoB,GAAKA,EACjCI,EAAeD,EAAMjE,OACrBA,OAA0B,IAAjBkE,EAA0B,MAAQA,EAC3CnhB,EAAMkhB,EAAMlhB,IACZpI,EAAQ,YAA8BspB,EAAO,CAAC,SAAU,QAGxDE,QADmB,IAAXJ,EAAoB,GAAKA,GACH5D,iBAC9BA,OAA6C,IAA1BgE,GAA2CA,EAKlE,OAHA5mB,EAAMsmB,aAAazD,QAAS,EAC5B7iB,EAAMsmB,aAAa7D,OAASA,EAC5BziB,EAAMsmB,aAAa1D,iBAAmBA,EAC/B,cAAU6D,EAAY,IAAchE,GAAU9G,EAAWnW,EAAKxF,EAAMomB,SAAUK,EAAU3D,KAAO,UAAW2D,EAAU,mBAAqBrpB,GAASA,EAAM,cAAgB,KAAO4C,EAAM2f,QAAS8G,EAAUjH,GAAKxf,EAAM0f,OAAQ+G,GAAYrpB,IAGhP4C,EAAM6mB,aAAe,SAAUC,GAC7B,IAAIC,EAEAC,OAAmB,IAAXF,EAAoB,GAAKA,EACjCG,EAAcD,EAAMC,YACpBC,EAAcF,EAAME,YACpB3oB,EAAUyoB,EAAMzoB,QAEhBmC,GADUsmB,EAAM1C,QACR0C,EAAMtmB,OACdymB,EAAaH,EAAM5nB,KACnBA,OAAsB,IAAf+nB,OAEX/Y,EAAmD+Y,EAC/CzE,EAAO,YAA8BsE,EAAO,CAAC,cAAe,cAAe,UAAW,UAAW,QAAS,cAEhG5Y,IAAV1N,GACFV,EAAMxC,MAAM2J,KAAK/H,GAEjBsB,EAAQV,EAAMxC,MAAMkP,QAAQtN,IAE5BY,EAAMxC,MAAMkD,GAAStB,EAGvB,IACIgoB,EAAqB7oB,EACrBkmB,IAAwBsC,EAAwB,CAIlDE,YAAa/L,EAAqB+L,GAAa,WACzCvmB,IAAUV,EAAMihB,WAAWX,mBAI/BtgB,EAAMqgB,oBAAoB3f,EAAO,CAC/BsP,KAxjBoF,IA+jBtFhQ,EAAMqnB,gBAAiB,EAEvBrnB,EAAMggB,oBAAmB,WACvB,OAAOhgB,EAAMqnB,gBAAiB,IAC7B,SAELH,YAAahM,EAAqBgM,GAAa,SAAU1qB,GAIvDA,EAAMymB,sBAE0B,QAAI/H,EAAqBkM,GAAoB,WAC/EpnB,EAAM8gB,kBAAkBpgB,EAAO,CAC7BsP,KAtkB4E,OAwkB5E+W,GAGAjC,EAAgBpC,EAAKhd,SAAW,CAClCwhB,YAAazC,EAAqByC,aAChCzC,EACJ,OAAO,YAAS,CACdjF,GAAIxf,EAAM6f,UAAUnf,GACpBoiB,KAAM,SACN,gBAAiB9iB,EAAMihB,WAAWX,mBAAqB5f,GACtDokB,EAAe,GAAIpC,IAGxB1iB,EAAMsnB,WAAa,WACjBtnB,EAAMxC,MAAQ,IAGhBwC,EAAMqS,MAAQ,SAAUkO,EAAiBtK,QACf,IAApBsK,IACFA,EAAkB,IAGpBA,EAAkB5D,EAAU4D,GAE5BvgB,EAAMygB,kBAAiB,SAAU8G,GAC/B,IAAIvL,EAAeuL,EAAMvL,aACzB,OAAO,YAAS,CACd/d,OAAQ+B,EAAM5C,MAAMwjB,cACpBN,iBAAkBtgB,EAAM5C,MAAMojB,wBAC9BG,WAAY3gB,EAAM5C,MAAM+e,aAAaH,IACpCuE,KACFtK,IAGLjW,EAAM8jB,WAAa,SAAUvD,EAAiBtK,QACpB,IAApBsK,IACFA,EAAkB,IAGpBA,EAAkB5D,EAAU4D,GAE5BvgB,EAAMygB,kBAAiB,SAAU+G,GAC/B,IAAIvpB,EAASupB,EAAMvpB,OACnB,OAAO,YAAS,CACdA,QAASA,GACRA,GAAU,CACXqiB,iBAAkBtgB,EAAM5C,MAAMojB,yBAC7B,GAAID,MACN,WACD,IAAIkH,EAAkBznB,EAAMihB,WACxBhjB,EAASwpB,EAAgBxpB,OACzBqiB,EAAmBmH,EAAgBnH,iBAEnCriB,GACE+B,EAAMqjB,eAAiB,GAAiC,iBAArB/C,GACrCtgB,EAAMqgB,oBAAoBC,EAAkBC,GAIhDvK,EAAOC,EAAPD,OAIJhW,EAAM0nB,SAAW,SAAUzR,GACzBjW,EAAMygB,iBAAiB,CACrBxiB,QAAQ,GACPgY,IAGLjW,EAAM2nB,UAAY,SAAU1R,GAC1BjW,EAAMygB,iBAAiB,CACrBxiB,QAAQ,GACPgY,IAGLjW,EAAM4nB,aAAe/S,GAAS,WAC5B,IAAIpU,EAAQT,EAAMihB,WAEd7hB,EAAOY,EAAMxC,MAAMiD,EAAM6f,kBAEzBrE,EAAcjc,EAAMqjB,eAEpBzV,EAAS5N,EAAM5C,MAAMyqB,qBAAqB,YAAS,CACrD1L,aAAcnc,EAAM5C,MAAM+e,aAC1BD,oBAAqBlc,EAAMkc,oBAC3BD,YAAaA,EACb6L,gBAAiB1oB,GAChBqB,IAEHT,EAAMkc,oBAAsBD,EAC5BuB,EAAU5P,EAAQ5N,EAAM5C,MAAM2nB,YAAYjhB,YACzC,KAKH,IAAIhG,EAAckC,EAAM5C,MACpBojB,EAA0B1iB,EAAY0iB,wBACtCuH,EAAwBjqB,EAAYkqB,wBACpCC,OAA8C,IAA1BF,EAAmCvH,EAA0BuH,EACjFnH,EAAgB9iB,EAAY8iB,cAC5BsH,EAAwBpqB,EAAYqqB,cACpCC,OAAoC,IAA1BF,EAAmCtH,EAAgBsH,EAC7DG,EAAwBvqB,EAAYwqB,kBACpCC,OAAwC,IAA1BF,EAAmC,GAAKA,EACtDG,EAAwB1qB,EAAY2qB,oBACpCC,OAA0C,IAA1BF,EAAmC,KAAOA,EAE1DG,EAAS3oB,EAAMihB,SAAS,CAC1BX,iBAAkB2H,EAClBhqB,OAAQmqB,EACRzH,WAAY4H,EACZvM,aAAc0M,IAQhB,OAL2B,MAAvBC,EAAO3M,mBAA0D5N,IAAlCpO,EAAM5C,MAAMkrB,oBAC7CK,EAAOhI,WAAa3gB,EAAM5C,MAAM+e,aAAawM,EAAO3M,eAGtDhc,EAAMS,MAAQkoB,EACP3oB,EA5pBT,YAAeqf,EAAWC,GA+pB1B,IAAIsJ,EAASvJ,EAAU1Q,UA8VvB,OAzVAia,EAAOC,sBAAwB,WAC7B1rB,KAAK4iB,WAAWhP,SAAQ,SAAUyO,GAChCxE,aAAawE,MAEfriB,KAAK4iB,WAAa,IAmBpB6I,EAAO3H,SAAW,SAAkB6H,GAClC,IAAIC,EAAS5rB,KAMb,YAJqB,IAAjB2rB,IACFA,EAAe3rB,KAAKsD,OAGf3B,OAAO6G,KAAKmjB,GAAcvU,QAAO,SAAU9T,EAAOzD,GAEvD,OADAyD,EAAMzD,GAAO+rB,EAAOlH,iBAAiB7kB,GAAO+rB,EAAO3rB,MAAMJ,GAAO8rB,EAAa9rB,GACtEyD,IACN,KAWLmoB,EAAO/G,iBAAmB,SAA0B7kB,GAClD,YAA2BoR,IAApBjR,KAAKC,MAAMJ,IAGpB4rB,EAAOvF,aAAe,WAKpB,IAAInG,EAAY/f,KAAKK,MAAM0C,OAQ3B,OANsB,MAAlB/C,KAAK+f,UACPA,EAAY/f,KAAK+f,eACiB9O,IAAzBjR,KAAKC,MAAM8f,YACpBA,EAAY/f,KAAKC,MAAM8f,WAGlBA,GAGT0L,EAAOlF,qBAAuB,SAA8BhjB,GAC1D,OAAOvD,KAAKC,MAAM2nB,YAAYjhB,SAAS6Z,eAAexgB,KAAK0iB,UAAUnf,KAGvEkoB,EAAOI,8BAAgC,WAGnC,IAAI7S,EAAOhZ,KAAKumB,qBAAqBvmB,KAAK8jB,WAAWX,kBACrDnjB,KAAKC,MAAM6rB,eAAe9S,EAAMhZ,KAAKkpB,YAIzCuC,EAAOxF,qBAAuB,SAA8BF,EAAQ3C,GAClE,IAAIrD,EAAY/f,KAAKkmB,eAErB,GAAInG,EAAY,EAAG,CACjB,IAAIgM,EAAuBnM,EAAqBmG,EAAQ/lB,KAAK8jB,WAAWX,iBAAkBpD,GAC1F/f,KAAKkjB,oBAAoB6I,EAAsB3I,KAInDqI,EAAO3E,0BAA4B,SAAmCznB,EAAOsK,EAAOyZ,GAClF,IAAIpD,EAAiBhgB,KAAKkmB,eAAiB,EAEvClG,EAAiB,IAAMhgB,KAAK8jB,WAAWhjB,SAI3CzB,EAAMymB,iBACN9lB,KAAKkjB,oBAAoBvZ,EAAQ,EAAIqW,EAAgBoD,KAGvDqI,EAAOpH,mBAAqB,WAC1B,IAAI2H,EAAkBhsB,KAAK8jB,WACvBX,EAAmB6I,EAAgB7I,iBACnCK,EAAawI,EAAgBxI,WAC7B3E,EAAemN,EAAgBnN,aAC/B/d,EAASkrB,EAAgBlrB,OAEzBke,EAAehf,KAAKC,MAAM+e,aAC1BqD,EAAKriB,KAAKqiB,GACV4C,EAAejlB,KAAKilB,aACpB+B,EAAuBhnB,KAAKgnB,qBAC5BkB,EAAgBloB,KAAKkoB,cACrBiB,EAAenpB,KAAKmpB,aACpBf,EAAgBpoB,KAAKooB,cACrBsB,EAAe1pB,KAAK0pB,aACpBa,EAAWvqB,KAAKuqB,SAChBC,EAAYxqB,KAAKwqB,UACjB7D,EAAa3mB,KAAK2mB,WAClBjD,EAAa1jB,KAAK0jB,WAClBC,EAAoB3jB,KAAK2jB,kBACzBE,EAAwB7jB,KAAK6jB,sBAC7BX,EAAsBljB,KAAKkjB,oBAC3BK,EAAiBvjB,KAAKujB,eACtB4G,EAAanqB,KAAKmqB,WAKtB,MAAO,CAELlF,aAAcA,EACd+B,qBAAsBA,EACtBkB,cAAeA,EACfiB,aAAcA,EACdf,cAAeA,EACfsB,aAAcA,EAEdxU,MAbUlV,KAAKkV,MAcfqV,SAAUA,EACVC,UAAWA,EACX7D,WAAYA,EACZjD,WAAYA,EACZC,kBAAmBA,EACnBE,sBAAuBA,EACvBX,oBAAqBA,EACrBK,eAAgBA,EAChB4G,WAAYA,EACZpH,aAtBiB/iB,KAAK+iB,aAuBtBE,eAtBmBjjB,KAAKijB,eAuBxB5f,SAtBarD,KAAKsjB,iBAwBlBtE,aAAcA,EAEdqD,GAAIA,EAEJc,iBAAkBA,EAClBK,WAAYA,EACZ1iB,OAAQA,EACR+d,aAAcA,IAKlB4M,EAAOQ,kBAAoB,WACzB,IAAIC,EAASlsB,KAUX,IAAImsB,EAAwB,SAAUrE,EAAQsE,QACjB,IAAvBA,IACFA,GAAqB,GAGvB,IAAIzlB,EAAWulB,EAAOjsB,MAAM2nB,YAAYjhB,SACxC,MAAO,CAACulB,EAAOlH,UAAWkH,EAAOhD,WAAW7K,MAAK,SAAUgO,GACzD,OAAOA,IAAgBhP,EAAiBgP,EAAavE,IAAWsE,GAAsB/O,EAAiBgP,EAAa1lB,EAASkhB,oBAS7HkC,EAAc,WAChBmC,EAAOjE,aAAc,GAGnBqE,EAAY,SAAUjtB,GACxB6sB,EAAOjE,aAAc,GAGQkE,EAAsB9sB,EAAMyoB,SAE1BoE,EAAOpI,WAAWhjB,QAC/CorB,EAAOhX,MAAM,CACXrC,KAt5BqE,IAu5BpE,WACD,OAAOqZ,EAAOjsB,MAAMssB,aAAaL,EAAO7H,0BAW1CmI,EAAe,WACjBN,EAAOO,aAAc,GAGnBC,EAAc,WAChBR,EAAOO,aAAc,GAGnBE,EAAa,SAAUttB,GACzB,IAAIutB,EAAyBT,EAAsB9sB,EAAMyoB,QAAQ,GAE5DoE,EAAOO,aAAgBG,IAA0BV,EAAOpI,WAAWhjB,QACtEorB,EAAOhX,MAAM,CACXrC,KAj6BuE,KAk6BtE,WACD,OAAOqZ,EAAOjsB,MAAMssB,aAAaL,EAAO7H,0BAK1CuD,EAAc5nB,KAAKC,MAAM2nB,YAC7BA,EAAYiF,iBAAiB,YAAa9C,GAC1CnC,EAAYiF,iBAAiB,UAAWP,GACxC1E,EAAYiF,iBAAiB,aAAcL,GAC3C5E,EAAYiF,iBAAiB,YAAaH,GAC1C9E,EAAYiF,iBAAiB,WAAYF,GAEzC3sB,KAAK8sB,QAAU,WACbZ,EAAOR,wBAEPQ,EAAOzB,aAAa7M,SAEpBgK,EAAYmF,oBAAoB,YAAahD,GAC7CnC,EAAYmF,oBAAoB,UAAWT,GAC3C1E,EAAYmF,oBAAoB,aAAcP,GAC9C5E,EAAYmF,oBAAoB,YAAaL,GAC7C9E,EAAYmF,oBAAoB,WAAYJ,KAKlDlB,EAAOuB,aAAe,SAAsBC,EAAWxmB,GACrD,IACIymB,QADyCjc,IAAhCjR,KAAKC,MAAMkjB,iBAAiCnjB,KAAK8jB,WAAa9jB,KAAKC,OAC3CkjB,iBAGjCgK,QADwClc,IAA/BxK,EAAU0c,iBAAiC8J,EAAYxmB,GAClC0c,iBAGlC,OADqB+J,GAA2BltB,KAAK8jB,WAAWhjB,SAAWmsB,EAAUnsB,QAC5DosB,IAA4BC,GAGvD1B,EAAO2B,mBAAqB,SAA4B3mB,EAAWwmB,GAU7DjtB,KAAK0kB,iBAAiB,iBAAmB1kB,KAAKC,MAAMotB,oBAAoB5mB,EAAUoY,aAAc7e,KAAKC,MAAM4e,eAC7G7e,KAAKsjB,iBAAiB,CACpBzQ,KAr9BiI,GAs9BjI2Q,WAAYxjB,KAAKC,MAAM+e,aAAahf,KAAKC,MAAM4e,iBAI9C7e,KAAKkqB,gBAAkBlqB,KAAKgtB,aAAaC,EAAWxmB,IACvDzG,KAAK6rB,gCAKP7rB,KAAKyqB,gBAGPgB,EAAO6B,qBAAuB,WAC5BttB,KAAK8sB,WAGPrB,EAAO8B,OAAS,WACd,IAAIC,EAAWvO,EAAYjf,KAAKC,MAAMutB,SAAUzU,GAIhD/Y,KAAKmqB,aAKLnqB,KAAKilB,aAAaS,QAAS,EAC3B1lB,KAAKilB,aAAaK,YAASrU,EAC3BjR,KAAKilB,aAAaQ,sBAAmBxU,EAErCjR,KAAKmpB,aAAazD,QAAS,EAC3B1lB,KAAKmpB,aAAa7D,YAASrU,EAC3BjR,KAAKmpB,aAAa1D,sBAAmBxU,EAErCjR,KAAKkoB,cAAcxC,QAAS,EAE5B1lB,KAAKooB,cAAc1C,QAAS,EAC5B,IAAIrG,EAAUJ,EAAYuO,EAASxtB,KAAKqkB,uBAExC,OAAKhF,EAIDrf,KAAKilB,aAAaS,QAAU1lB,KAAKC,MAAMwlB,iBAKlCpG,EACED,EAAaC,GAGf,uBAAaA,EAASrf,KAAKilB,aAAa3F,EAAgBD,UAK7D,EAjBK,MA4BJ6C,EA9/BT,CA+/BE,aAqCF,OAnCAA,EAAUuL,aAAe,CACvBpK,wBAAyB,KACzBI,eAAe,EACfiH,qBAAsB,EACtB1L,aAAc,SAAsBtW,GAClC,OAAS,MAALA,EACK,GAQF4Z,OAAO5Z,IAEhBic,cAAe5L,EACfqL,mBAAoBrL,EACpB+L,aAAc/L,EACd8L,SAAU9L,EACV6L,SAAU7L,EACVwT,aAAcxT,EACdsU,oBAAqB,SAA6BK,EAAUzrB,GAC1D,OAAOyrB,IAAazrB,GAEtB2lB,YAA+B,oBAAXnZ,OAElB,GAAKA,OACP8V,aAAc,SAAsBjhB,EAAOygB,GACzC,OAAOA,GAET0B,kBAAkB,EAClBqG,eAAgB,GAElB5J,EAAUnB,iBAAmBA,EACtBmB,EAviCT,GAs5CS,IAAUyL,MAAMC,WACT,IAAUhW,KACF,IAAUA,KACP,IAAUA,KACf,IAAUiW,KACZ,IAAUC,OACH,IAAUA,OACV,IAAUA,OAC3B,IAAUD,KACH,IAAUA,KACV,IAAUA,KACX,IAAUE,IACH,IAAUA,IACV,IAAUA,IAC3B,IAAUjf,OACL,IAAUA,OACX,IAAUA,OACP,IAAU8I,KACL,IAAU9I,OACZ,IAAU8I,KACF,IAAUA,KACN,IAAUA,KACrB,IAAUA,KACT,IAAUA,KACb,IAAUoW,MAAM,CAC3BnB,iBAAkB,IAAUjV,KAC5BmV,oBAAqB,IAAUnV,KAC/BjR,SAAU,IAAUqnB,MAAM,CACxBxN,eAAgB,IAAU5I,KAC1BiQ,cAAe,IAAUkG,IACzBrnB,KAAM,IAAUqnB,QAgPW,oBAAXtf,QAEbA,OA6ZM,O,oBCx9Ef,IAAIkJ,EAAW,EAAQ,KACnBsW,EAAM,EAAQ,KACdC,EAAW,EAAQ,KAMnBC,EAAYtR,KAAKC,IACjBsR,EAAYvR,KAAKM,IAqLrB3F,EAAOC,QA7HP,SAAkBG,EAAMC,EAAM7G,GAC5B,IAAIqd,EACAC,EACAC,EACA9O,EACA+O,EACAC,EACAC,EAAiB,EACjB5W,GAAU,EACV6W,GAAS,EACT5W,GAAW,EAEf,GAAmB,mBAARH,EACT,MAAM,IAAIrD,UAzEQ,uBAmFpB,SAASqa,EAAWlR,GAClB,IAAI1a,EAAOqrB,EACPQ,EAAUP,EAKd,OAHAD,EAAWC,OAAWrd,EACtByd,EAAiBhR,EACjB+B,EAAS7H,EAAKxR,MAAMyoB,EAAS7rB,GAI/B,SAAS8rB,EAAYpR,GAMnB,OAJAgR,EAAiBhR,EAEjB8Q,EAAU3nB,WAAWkoB,EAAclX,GAE5BC,EAAU8W,EAAWlR,GAAQ+B,EAatC,SAASuP,EAAatR,GACpB,IAAIuR,EAAoBvR,EAAO+Q,EAM/B,YAAyBxd,IAAjBwd,GAA+BQ,GAAqBpX,GACzDoX,EAAoB,GAAON,GANJjR,EAAOgR,GAM8BH,EAGjE,SAASQ,IACP,IAAIrR,EAAOuQ,IACX,GAAIe,EAAatR,GACf,OAAOwR,EAAaxR,GAGtB8Q,EAAU3nB,WAAWkoB,EA3BvB,SAAuBrR,GACrB,IAEIyR,EAActX,GAFM6F,EAAO+Q,GAI/B,OAAOE,EACHP,EAAUe,EAAaZ,GAJD7Q,EAAOgR,IAK7BS,EAoB+BC,CAAc1R,IAGnD,SAASwR,EAAaxR,GAKpB,OAJA8Q,OAAUvd,EAIN8G,GAAYsW,EACPO,EAAWlR,IAEpB2Q,EAAWC,OAAWrd,EACfwO,GAeT,SAAS4P,IACP,IAAI3R,EAAOuQ,IACPqB,EAAaN,EAAatR,GAM9B,GAJA2Q,EAAW3uB,UACX4uB,EAAWtuB,KACXyuB,EAAe/Q,EAEX4R,EAAY,CACd,QAAgBre,IAAZud,EACF,OAAOM,EAAYL,GAErB,GAAIE,EAIF,OAFA9Q,aAAa2Q,GACbA,EAAU3nB,WAAWkoB,EAAclX,GAC5B+W,EAAWH,GAMtB,YAHgBxd,IAAZud,IACFA,EAAU3nB,WAAWkoB,EAAclX,IAE9B4H,EAIT,OA3GA5H,EAAOqW,EAASrW,IAAS,EACrBF,EAAS3G,KACX8G,IAAY9G,EAAQ8G,QAEpByW,GADAI,EAAS,YAAa3d,GACHmd,EAAUD,EAASld,EAAQud,UAAY,EAAG1W,GAAQ0W,EACrExW,EAAW,aAAc/G,IAAYA,EAAQ+G,SAAWA,GAoG1DsX,EAAUzR,OApCV,gBACkB3M,IAAZud,GACF3Q,aAAa2Q,GAEfE,EAAiB,EACjBL,EAAWI,EAAeH,EAAWE,OAAUvd,GAgCjDoe,EAAUE,MA7BV,WACE,YAAmBte,IAAZud,EAAwB/O,EAASyP,EAAajB,MA6BhDoB,I,oBC3LT,IAAIG,EAAO,EAAQ,KAsBnBhY,EAAOC,QAJG,WACR,OAAO+X,EAAKC,KAAKxB,Q,oBCnBnB,IAAIyB,EAAa,EAAQ,KAGrBC,EAA0B,iBAARC,MAAoBA,MAAQA,KAAKjuB,SAAWA,QAAUiuB,KAGxEJ,EAAOE,GAAcC,GAAYE,SAAS,cAATA,GAErCrY,EAAOC,QAAU+X,G,qBCRjB,YACA,IAAIE,EAA8B,iBAAVrhB,GAAsBA,GAAUA,EAAO1M,SAAWA,QAAU0M,EAEpFmJ,EAAOC,QAAUiY,I,oCCiBjBlY,EAAOC,QAJP,SAAkB/W,GAChB,OAAOA,I;;;;;;;;ACFTV,KAAK8vB,OAAS,SAAStkB,EAAM9K,EAAOqvB,EAAKC,EAAMC,EAAQC,GAEtD,OAAIxwB,UAAUqD,OAAS,EACf4D,SAASmpB,OAAStkB,EAAO,IAAM2kB,mBAAmBzvB,IACvDqvB,EAAM,aAAe,IAAIN,MAAM,IAAIA,KAAY,IAAJM,GAAWK,cAAgB,KACtEJ,EAAS,UAAYA,EAAO,KAC5BC,EAAS,YAAcA,EAAS,KAChCC,EAAS,WAAa,IAGlBG,qBAAqB,KAAK1pB,SAASmpB,QAAQQ,MAAM,KAAK9kB,EAAK,KAAK,IAAI,IAAI8kB,MAAM,KAAK,M,iCCzB3F,8BAMA,SAAS7uB,EAAiBgG,GAA+B,IAA5B1G,EAAiB0G,EAAjB1G,kBAC3B,OAAKA,EACEZ,gBAAA,QAAMa,UAAWC,IAAOF,mBAAoBA,GADpB,KAIjCU,EAAkB2T,YAAc,oBAChC3T,EAAkBgsB,aAAe,GAClBhsB,O,mLCcTmJ,EAAU,SAAArL,GAAA,SAAAqL,IAAA,IAAA/H,EAAArD,YAAA,KAAAoL,GAAA,QAAA9H,EAAApD,UAAAqD,OAAAC,EAAA,IAAAC,MAAAH,GAAAI,EAAA,EAAAA,EAAAJ,EAAAI,IAAAF,EAAAE,GAAAxD,UAAAwD,GA8Fb,OA9FaL,EAAApD,YAAA,KAAAmL,EAAA,GAAAzH,OAAAH,IAAAjB,YAAAc,EAAA,QAGN,CACN0tB,YAAa,EACbC,UAAW,EACXC,aAAa,EACbC,aAAa,EACb5vB,QAAQ,IACTiB,YAAAc,EAAA,YAUU,SAACmW,GACV,GAAIA,EAAM,CACR,IAAMuX,EAAcvX,EAAKwB,wBAAwBjW,MAC3CisB,EAAYxX,EAAK2X,WAAWnW,wBAAwBjW,MACpDksB,EAAcF,GAAeC,EAAY,IAE/C3tB,EAAKQ,SAAS,CACZktB,cACAC,YACAC,cACAC,aAAa,QAGlB3uB,YAAAc,EAAA,sBACoB,WACnB,MAAyB,oBAAX4L,QAA0BmiB,iBAAW,oBACpD7uB,YAAAc,EAAA,eACa,WAGZ+tB,iBAAW,iBAAiB,EAAM,MAAU,KAC5C/tB,EAAKQ,SAAS,CACZvC,QAAQ,IAKVwN,YAHuB,CACrBjP,MAAO,qBAGV0C,YAAAc,EAAA,gBACc,WACb,IAAQxC,EAAUwC,EAAK5C,MAAfI,MACRgK,EAAqCxH,EAAKS,MAAlCmtB,EAAWpmB,EAAXomB,YACFI,EAD0BxmB,EAAXkmB,YACmB,GAClCO,EAAiBD,EAAoB,EAE3C,OACE1wB,gBAACA,WAAc,KACbA,gBAAA,OACEa,UAAWC,IAAO8vB,SAClBjqB,MAAO,CACL+pB,kBAAmBA,EAAoB,MAGxCxwB,EAAMqC,KAAI,SAACT,GAAI,OACd9B,gBAAC6wB,IAAS,CACRhwB,UAAWK,IAAGJ,IAAOgwB,WAA6B,IAAjB5wB,EAAM0C,QAAgB9B,IAAOiwB,UAC9DC,KAAK,QACLC,aAAa,OACbvxB,IAAKoC,EAAKovB,MAETpvB,EAAKovB,UAIZlxB,gBAAA,OACEa,UAAWC,IAAOqwB,SAClBxqB,MAAO,CACL+pB,kBAAmBA,EAAoB,IACvCC,eAAgBA,EAAiB,OAGjCL,GACApwB,EAAMqC,KAAI,SAACT,GAAI,OACb9B,gBAAC6wB,IAAS,CACRhwB,UAAWC,IAAOgwB,WAClBE,KAAK,QACLC,aAAa,OACbvxB,IAAG,GAAAsD,OAAKlB,EAAKovB,KAAI,OAEhBpvB,EAAKovB,cAMnBxuB,EAAA,OAAAlD,YAAAiL,EAAArL,GAAAK,YAAAgL,EAAA,EAAA/K,IAAA,oBAAAa,MAnFD,WACOV,KAAKuxB,sBACRvxB,KAAKqD,SAAS,CACZvC,QAAQ,MAGb,CAAAjB,IAAA,SAAAa,MA+ED,WACE,IAAAC,EAAuDX,KAAKC,MAApDI,EAAKM,EAALN,MAAOoD,EAAM9C,EAAN8C,OAAQzC,EAASL,EAATK,UAAWoJ,EAAgBzJ,EAAhByJ,iBAClConB,EAA6CxxB,KAAKsD,MAA1CmtB,EAAWe,EAAXf,YAAaC,EAAWc,EAAXd,YAAa5vB,EAAM0wB,EAAN1wB,OAC5B2wB,EAAgB,CACpBpyB,MAAO,gBACPkP,UAAWnE,EAAmBA,EAAiBlI,KAAO,IAExD,OAAK7B,GAAUS,EAGbX,gBAAA,OAAKa,UAAWK,IAAGJ,IAAOywB,gBAAiB1wB,GAAaA,IACtDb,gBAAA,OAAKa,UAAWC,IAAO0wB,eACrBxxB,gBAAA,UAAQa,UAAWC,IAAO2wB,QAASxwB,QAASpB,KAAK6xB,aAC/C1xB,gBAAA,YAAOsD,GACPtD,gBAAA,YACEA,gBAACiE,IAAI,CAACC,QAAS+H,IAAO7H,MAAM,MAAMC,OAAO,YAI/CrE,gBAAA,OACEa,UAAWK,IACTJ,IAAO6wB,OACNrB,EAA+BxvB,IAAO8wB,OAAxB9wB,IAAO+wB,QACtBtB,GAAezvB,IAAOyvB,aAExBroB,IAAKrI,KAAKiyB,UAET7nB,GAAoBA,EAAiBlI,KACpC/B,gBAACgC,IAAI,CAACD,KAAMkI,EAAiBlI,KAAMlB,UAAWC,IAAOixB,QAAS9yB,UAAWqyB,GACtEzxB,KAAKmyB,gBAGRnyB,KAAKmyB,iBAzBiB,SAvGlB,CAAShyB,aAAe4B,YAAlC6I,EAAU,cACO,cAAY7I,YAD7B6I,EAAU,eAEQ,IAsITA,O,4LCjIT7F,EAAS,SAAAxF,GAAA,SAAAwF,IAAA,IAAAlC,EAAArD,YAAA,KAAAuF,GAAA,QAAAjC,EAAApD,UAAAqD,OAAAC,EAAA,IAAAC,MAAAH,GAAAI,EAAA,EAAAA,EAAAJ,EAAAI,IAAAF,EAAAE,GAAAxD,UAAAwD,GA0DZ,OA1DYL,EAAApD,YAAA,KAAAsF,EAAA,GAAA5B,OAAAH,IAAAjB,YAAAc,EAAA,QAKL,CACNuvB,QAAS,GACT1xB,MAAOmC,EAAK5C,MAAMoyB,cAAgB,GAClCC,iBAAiB,IAEnBvwB,YAAAc,EAAA,QAC8B1C,eAAiB4B,YAAAc,EAAA,iBAC9B0vB,KAAS,SAAC7xB,GAAU,OAAKmC,EAAK2vB,aAAa9xB,KAAQ,MACpEqB,YAAAc,EAAA,iBACgB,SAACwO,GACf,IAAQ3Q,EAAU2Q,EAAEyW,OAAZpnB,MACRmC,EAAKQ,SAAS,CACZ3C,QACA4xB,iBAAiB,IAEf5xB,EAAMqC,OAAS,GAAGF,EAAK4vB,eAAe/xB,MAC3CqB,YAAAc,EAAA,yBACuB,SAACnC,GACvBmC,EAAKQ,SAAS,CACZ3C,MAAOA,EAAMgyB,QACbJ,iBAAiB,IAEnBzvB,EAAK8vB,cAAcjyB,EAAMgyB,YAE3B3wB,YAAAc,EAAA,gBACwC,SAACwO,GACvCA,EAAEyU,iBACF,IAAQplB,EAAUmC,EAAKS,MAAf5C,MACRmC,EAAK8vB,cAAcjyB,MACpBqB,YAAAc,EAAA,iBACe,SAACnC,GACf,IAAQqD,EAAalB,EAAK5C,MAAlB8D,SACRlB,EAAKQ,SAAS,CACZivB,iBAAiB,IAGf5xB,GAASqD,GACXA,EAASrD,MAEZqB,YAAAc,EAAA,gBACc,SAAC+vB,GACd,IAAQ9uB,EAAcjB,EAAK5C,MAAnB6D,UACR,IAAKA,EAAW,OAAO,KACvB,IAAM+uB,EAAW,GAAH1vB,OAAMW,EAAUgvB,WAAS3vB,OAAGyvB,GAC1C3iB,YAAQ4iB,GACLzhB,MAAK,SAAC2hB,GACDH,IAAU/vB,EAAKS,MAAM5C,OACvBmC,EAAKQ,SAAS,CACZ+uB,QAASW,EAAIrsB,UAIlB+I,OAAM,SAACujB,GAAG,OAAKC,QAAQvjB,MAAMsjB,EAAItjB,aACrC7M,EAAA,OAAAlD,YAAAoF,EAAAxF,GAAAK,YAAAmF,EAAA,EAAAlF,IAAA,qBAAAa,MAED,SAAmB+F,GAC2E,IAAAysB,EAAAC,EAAxF1sB,EAAUrD,eAAiBpD,KAAKC,MAAMmD,eAA4C,IAA5BpD,KAAKC,MAAMmD,eACzD,QAAV8vB,EAAAlzB,KAAK2iB,aAAK,IAAAuQ,GAAS,QAATC,EAAVD,EAAYtU,eAAO,IAAAuU,GAAnBA,EAAqBpL,SAGnBthB,EAAUrD,eAAiBpD,KAAKC,MAAMmD,eAA4C,IAA5BpD,KAAKC,MAAMmD,cACnEpD,KAAKqD,SAAS,CACZ3C,MAAO,OAGZ,CAAAb,IAAA,SAAAa,MAED,WAAS,IAAAiL,EAAA,KACPhL,EAA8DX,KAAKC,MAA3DoiB,EAAE1hB,EAAF0hB,GAAIve,EAASnD,EAATmD,UAAWkB,EAAcrE,EAAdqE,eAAgBhE,EAASL,EAATK,UAAWoyB,EAAOzyB,EAAPyyB,QAClD/oB,EAAqCrK,KAAKsD,MAAlC8uB,EAAO/nB,EAAP+nB,QAASE,EAAejoB,EAAfioB,gBACjB,OAAKxuB,EAGH3D,gBAAA,OAAKa,UAAWK,IAAGJ,IAAOoyB,UAAWryB,IACnCb,gBAAA,QAAMkiB,GAAIA,EAAIte,SAAU/D,KAAKszB,cAC3BnzB,gBAAC+hB,IAAS,CACRG,GAAI,oBACJvhB,OAAQwxB,EACR/F,aAAc,WAAF,OACV5gB,EAAKtI,SAAS,CACZivB,iBAAiB,KAGrBzN,SAAU7kB,KAAKuzB,sBACfvU,aAAc,SAAC/c,GAAI,OAAMA,EAAOA,EAAKywB,QAAU,IAC/ClP,WAAYxjB,KAAKsD,MAAM5C,OAAS,KAE/B,SAAAuH,GAAA,IAAGmgB,EAAangB,EAAbmgB,cAAesB,EAAYzhB,EAAZyhB,aAAcvG,EAAgBlb,EAAhBkb,iBAAkBriB,EAAMmH,EAANnH,OAAM,OACvDX,gBAAA,OAAKa,UAAWC,IAAOuyB,aACrBrzB,gBAAA,OAAKa,UAAWC,IAAOwyB,kBACrBtzB,gBAAA,OAAKa,UAAWC,IAAOyyB,YAAatyB,QAAS4D,GAC3C7E,gBAACiE,IAAI,CAACC,QAAS+H,IAAO7H,MAAM,OAAOC,OAAO,UAE5CrE,gBAAA,QAAAwB,OAAAC,OAAA,GACMwmB,EAAc,CAChBuL,YAAa7vB,EAAU6vB,YACvB9O,SAAUlZ,EAAKioB,gBACf,CACFvrB,IAAKsD,EAAKgX,SAEZxiB,gBAAC0zB,IAAM,CAACC,OAAK,EAACjhB,KAAK,UAChB/O,EAAUY,cAGd5D,GAAUsxB,GAAWA,EAAQrvB,OAAS,IAAMqwB,GAC3CjzB,gBAAA,OAAKa,UAAWC,IAAOmxB,SACpBA,EAAQ1vB,KAAI,SAACT,EAA2BsB,GAAa,OACpDpD,gBAAA,MAAAwB,OAAAC,OAAA,GACM8nB,EAAa,CACf7pB,IAAK0D,EACLA,QACAtB,SACA,CACF6E,MAAO,CACLitB,MAAO5Q,IAAqB5f,EAAQ,UAAY,WAElDvC,UAAWC,IAAOwe,SAEjBxd,EAAKywB,mBAhDH,SA3EZ,CAASvyB,aAAe4B,YAAjCgD,EAAS,cACQ,aAAWhD,YAD5BgD,EAAS,eAES,CACpBsd,GAAI,WAsIOtd,O,2FC5JTivB,EAAQ,SAAAz0B,GAAA,SAAAy0B,IAAA,IAAAnxB,EAAArD,YAAA,KAAAw0B,GAAA,QAAAlxB,EAAApD,UAAAqD,OAAAC,EAAA,IAAAC,MAAAH,GAAAI,EAAA,EAAAA,EAAAJ,EAAAI,IAAAF,EAAAE,GAAAxD,UAAAwD,GAwCX,OAxCWL,EAAApD,YAAA,KAAAu0B,EAAA,GAAA7wB,OAAAH,IAAAjB,YAAAc,EAAA,QACG,CACb0B,MAAO,EACPC,OAAQ,EACRyvB,eAAWhjB,IACZlP,YAAAc,EAAA,gBA0Bc,WACb,IAAM0B,EAAQyvB,EAAS/B,WACjBztB,EAASwvB,EAASE,YAClBD,EAAYD,EAASC,YAC3BpxB,EAAKQ,SAAS,CACZkB,QACAC,SACAyvB,iBAEHpxB,EAAA,OAAAlD,YAAAq0B,EAAAz0B,GAAAK,YAAAo0B,EAAA,EAAAn0B,IAAA,oBAAAa,MAlBD,WACE+N,OAAOoe,iBAAiB,SAAU7sB,KAAKm0B,cACvCn0B,KAAKm0B,iBACN,CAAAt0B,IAAA,uBAAAa,MAED,WACE+N,OAAOse,oBAAoB,SAAU/sB,KAAKm0B,gBAC3C,CAAAt0B,IAAA,SAAAa,MAaD,WACE,OAAOV,KAAKsD,MAAQtD,KAAKC,MAAMutB,SAASxtB,KAAKsD,OAAS,SA3C5C,CAASnD,aAAei0B,EAAhCJ,EAAQjyB,YAARiyB,EAAQ,YAMM,iBACE,oBAAXvlB,OACHoO,KAAKC,IACHnW,SAAS6S,gBAAkB7S,SAAS6S,gBAAgBrB,YAAc,EAClE1J,OAAOsL,YAAc,GAEvB,KAAChY,YAZHiyB,EAAQ,aAaO,iBACC,oBAAXvlB,OACHoO,KAAKC,IACHnW,SAAS6S,gBAAkB7S,SAAS6S,gBAAgBvB,aAAe,EACnExJ,OAAOuL,aAAe,GAExB,KAACjY,YAnBHiyB,EAAQ,aAoBO,kBAAMA,EAAS/B,YAAc,OA2BnC+B,O,wJC5CTK,EAAa,SAAH5sB,GAAqB,IAAfgD,EAAQhD,EAARgD,SACpB,OACEtK,gBAAA,OAAKa,UAAWC,IAAOozB,YACrBl0B,gBAACiE,IAAI,CAACC,QAASoG,EAAW6pB,IAAUC,IAAWhwB,MAAO,UAKtDf,EAAS,SAAAjE,GAAA,SAAAiE,IAAA,IAAAX,EAAArD,YAAA,KAAAgE,GAAA,QAAAV,EAAApD,UAAAqD,OAAAC,EAAA,IAAAC,MAAAH,GAAAI,EAAA,EAAAA,EAAAJ,EAAAI,IAAAF,EAAAE,GAAAxD,UAAAwD,GAYZ,OAZYL,EAAApD,YAAA,KAAA+D,EAAA,GAAAL,OAAAH,IAAAjB,YAAAc,EAAA,QAGL,CACN6a,KAAM,EACN8W,UAAW,KACZzyB,YAAAc,EAAA,gBAEc,SAAC2xB,GACd3xB,EAAKQ,SAAS,CACZmxB,iBAEH3xB,EAAA,OAAAlD,YAAA6D,EAAAjE,GAAAK,YAAA4D,EAAA,EAAA3D,IAAA,WAAAa,MAED,WACE,IAAQL,EAAUL,KAAKC,MAAfI,MACR,OAAKA,EAEEA,EAAMqC,KAAI,SAAC6a,EAAOha,GAAK,OAC5BpD,gBAACs0B,IAAK,CACJC,aAAa,EACbjxB,OAAQ8Z,EAAM9Z,OACd5D,IAAG,mBAAAsD,OAAqBI,GACxB8wB,WAAYA,GAEX9W,EAAM7Z,cATQ,OAYpB,CAAA7D,IAAA,SAAAa,MAED,WACE,IAAAC,EAAiCX,KAAKC,MAA9B00B,EAASh0B,EAATg0B,UAAW3zB,EAASL,EAATK,UACbwzB,EAAYx0B,KAAKsD,MAAMkxB,UAE7B,OACEr0B,gBAAA,OAAKa,UAAWK,IAAGJ,IAAO0zB,UAAW3zB,GAAaA,IAChDb,gBAACy0B,IAAQ,CACPD,UAAWA,EACX9P,SAAU7kB,KAAK60B,aACfL,UAAWA,EACXH,WAAYA,GAEXr0B,KAAK80B,iBA1CD,CAAS30B,aAAe4B,YAAjCyB,EAAS,cACQ,aAAWzB,YAD5ByB,EAAS,eAES,IA+CTA,O,qJC1CTuxB,EAAU,SAAAx1B,GAAA,SAAAw1B,IAAA,IAAAlyB,EAAArD,YAAA,KAAAu1B,GAAA,QAAAjyB,EAAApD,UAAAqD,OAAAC,EAAA,IAAAC,MAAAH,GAAAI,EAAA,EAAAA,EAAAJ,EAAAI,IAAAF,EAAAE,GAAAxD,UAAAwD,GAYb,OAZaL,EAAApD,YAAA,KAAAs1B,EAAA,GAAA5xB,OAAAH,IAAAjB,YAAAc,EAAA,QAGC,IAAEd,YAAAc,EAAA,kBAEA,SAACnC,GAChB,IAAQs0B,EAAqBnyB,EAAK5C,MAA1B+0B,iBAER,GAAIA,GAAoBt0B,EAAO,CAC7B,IAAMoP,EAAW,GAAH3M,OAAM6xB,GAAgB7xB,OAAGzC,GACvC2N,EAAO0B,SAASnO,OAAOkO,OAE1BjN,EAAA,OAAAlD,YAAAo1B,EAAAx1B,GAAAK,YAAAm1B,EAAA,EAAAl1B,IAAA,SAAAa,MAED,WAAS,IAAAiL,EAAA,KACPhL,EAeIX,KAAKC,MAdPW,EAAID,EAAJC,KACAiD,EAAWlD,EAAXkD,YACAC,EAASnD,EAATmD,UACAuH,EAAS1K,EAAT0K,UACAtL,EAASY,EAATZ,UACA8J,EAAelJ,EAAfkJ,gBACAI,EAAQtJ,EAARsJ,SACA5J,EAAKM,EAALN,MACAoD,EAAM9C,EAAN8C,OACA2G,EAAgBzJ,EAAhByJ,iBACAhD,EAAUzG,EAAVyG,WACArG,EAAiBJ,EAAjBI,kBACAyM,EAAiB7M,EAAjB6M,kBACEtN,EAAUS,EAAVT,WAGJ,OACEC,gBAAA,UAAQa,UAAWC,IAAOg0B,YACxB90B,gBAAC6zB,IAAQ,MACN,SAAAvsB,GAAA,IAAGwsB,EAASxsB,EAATwsB,UAAS,OACX9zB,gBAACA,WAAc,KACbA,gBAACmM,IAAiB,CAChBxH,MAAoB,IAAdmvB,EACNrzB,KAAMA,EACNiD,YAAaA,EACbC,UAAWA,EACXuH,UAAWA,EACXtL,UAAWA,EACXkK,SAAUA,EACV5J,MAAOA,EACPoD,OAAQA,EACR2G,iBAAkBA,EAClBhD,WAAYA,EACZrG,kBAAmBA,EACnByM,kBAAmBA,EACnBzJ,SAAU4H,EAAKupB,eACfh1B,WAAYA,IAEdC,gBAACyJ,IAAgB,CACf9E,MAAoB,IAAdmvB,EACNrzB,KAAMA,EACNb,UAAWA,EACX8J,gBAAiBA,EACjBhG,YAAaA,EACboG,SAAUA,EACV5J,MAAOA,EACPoD,OAAQA,EACR2G,iBAAkBA,EAClBtG,UAAWA,EACX/C,kBAAmBA,EACnBqG,WAAYA,EACZrD,SAAU4H,EAAKupB,eACfh1B,WAAYA,aApEZ,CAASC,aAAe4B,YAAlCgzB,EAAU,cACO,cAAYhzB,YAD7BgzB,EAAU,eAEQ,IA4ETA,Q,4LC7FT31B,EAAY,CAChBC,MAAO,cAGHe,EAAS,SAAAb,GAAA,SAAAa,IAAA,OAAAZ,YAAA,KAAAY,GAAAX,YAAA,KAAAW,EAAAV,WAAA,OAAAC,YAAAS,EAAAb,GAAAK,YAAAQ,EAAA,EAAAP,IAAA,iBAAAC,IAIb,WACE,IAAAa,EAAoDX,KAAKC,MAAjDI,EAAKM,EAALN,MAAOG,EAAQG,EAARH,SAAUD,EAAKI,EAALJ,MAAK40B,EAAAx0B,EAAEF,aAAK,IAAA00B,EAAG,QAAOA,EAE/C,IAAK90B,EACH,OAAO,KAGT,GAAIG,EAAU,CACZ,IAAMyB,EAAkC5B,EAAQA,EAAM+0B,QAAU,GAEhE,OACEj1B,gBAAC0zB,IAAMlyB,OAAAC,OAAA,GAAKK,EAAI,CAAEjB,UAAWC,IAAOo0B,SACA,IAAE90B,GAIxC,OACEJ,gBAACoL,IAAQ,CACPhL,MAAO,SAAC+0B,EAAgBC,GACtB,OACEp1B,gBAAC0zB,IAAM,CACLC,OAAK,EACL9yB,UAAWC,IAAOo0B,OAClBj0B,QAASk0B,EACTl2B,UAAWm2B,EAAkB,GAAKn2B,GAEjCmB,EACDJ,gBAACiE,IAAI,CAACC,QAASkxB,EAAkBjB,IAAUC,IAAW/vB,OAAO,OAAOD,MAAM,YAKhFpE,gBAACuL,IAAa,CACZrL,MAAOA,EACPiJ,SAAU7I,EACVO,UAAWK,IAAGJ,IAAOlB,UAAWkB,IAAOR,IACvC+0B,UAAU,aAKnB,CAAA31B,IAAA,SAAAa,MAED,WAEE,OADcV,KAAKC,MAAMI,MAGlBF,gBAAA,OAAKa,UAAWC,IAAOlB,WAAYC,KAAKy1B,gBAF5B,SAjDR,CAASt1B,aAAe4B,YAAjC3B,EAAS,cACQ,aAAW2B,YAD5B3B,EAAS,eAES,IAqDTA,O,iKC1DTmL,EAAQ,SAAAhM,GAAA,SAAAgM,IAAA,IAAA1I,EAAArD,YAAA,KAAA+L,GAAA,QAAAzI,EAAApD,UAAAqD,OAAAC,EAAA,IAAAC,MAAAH,GAAAI,EAAA,EAAAA,EAAAJ,EAAAI,IAAAF,EAAAE,GAAAxD,UAAAwD,GA6CX,OA7CWL,EAAApD,YAAA,KAAA8L,EAAA,GAAApI,OAAAH,IAAAjB,YAAAc,EAAA,uBAAAd,YAAAc,EAAA,QAKJ,CACN6yB,UAAU,IACX3zB,YAAAc,EAAA,kBAEgB,SAACxD,GAChBA,EAAMymB,iBACNjjB,EAAKQ,SACH,CACEqyB,UAAU,IAEZ,WACE/uB,SAASkmB,iBAAiB,QAAShqB,EAAK8yB,uBAG7C5zB,YAAAc,EAAA,mBACiB,SAACxD,GAAsB,IAAAu2B,EACjB,QAAlBA,EAAC/yB,EAAKgzB,oBAAY,IAAAD,GAAjBA,EAAmBpY,SAASne,EAAMyoB,SACrCjlB,EAAKQ,SACH,CACEqyB,UAAU,IAEZ,WACE/uB,SAASomB,oBAAoB,QAASlqB,EAAK8yB,uBAIlD5zB,YAAAc,EAAA,UAYQ,SAACua,GACRva,EAAKgzB,aAAezY,KACrBva,EAAA,OAAAlD,YAAA4L,EAAAhM,GAAAK,YAAA2L,EAAA,EAAA1L,IAAA,qBAAAa,MAZD,SAAmB+F,EAAgBwmB,GAC7BA,EAAUyI,WAAa11B,KAAKsD,MAAMoyB,WAAoC,IAAxB11B,KAAKsD,MAAMoyB,UACnC,iBAApB11B,KAAKC,MAAMuL,MACb8C,YAAW,CACTjP,MAAO,4BAId,CAAAQ,IAAA,cAAAa,MAMD,SAAYH,EAAYm1B,GAGtB,MAAa,kBAFOn1B,EAIhBJ,gBAACgB,IAAU,CACTH,UAAWK,IAAGJ,IAAOV,MAAKwB,YAAA,GACvBd,IAAOqB,OAASozB,IAEnBt0B,QAASpB,KAAKs1B,gBAEdn1B,gBAAA,YAAOI,GAAc,IACrBJ,gBAACiE,IAAI,CAACC,QAASqxB,EAAWpB,IAAUC,IAAW/vB,OAAO,OAAOD,MAAM,UAIhEhE,EAAMP,KAAKs1B,eAAgBI,KAErC,CAAA71B,IAAA,SAAAa,MAED,WACE,IAAAC,EAAuCX,KAAKC,MAApCutB,EAAQ7sB,EAAR6sB,SAAUjtB,EAAKI,EAALJ,MAAOS,EAASL,EAATK,UACjB00B,EAAa11B,KAAKsD,MAAlBoyB,SAER,OACEv1B,gBAAA,OAAKa,UAAWK,IAAGJ,IAAO60B,SAAU90B,IACjCT,GAASP,KAAK+1B,YAAYx1B,EAAOm1B,GACjCA,GACCv1B,gBAAA,OAAKa,UAAWC,IAAO+0B,cAAe3tB,IAAKrI,KAAKi2B,QAC7CzI,QA5EC,CAASrtB,aAAe4B,YAAhCwJ,EAAQ,cACS,YAAUxJ,YAD3BwJ,EAAQ,eAEU,IAkFTA,O,sICvFTG,EAAa,SAAAnM,GAAA,SAAAmM,IAAA,IAAA7I,EAAArD,YAAA,KAAAkM,GAAA,QAAA5I,EAAApD,UAAAqD,OAAAC,EAAA,IAAAC,MAAAH,GAAAI,EAAA,EAAAA,EAAAJ,EAAAI,IAAAF,EAAAE,GAAAxD,UAAAwD,GA+ChB,OA/CgBL,EAAApD,YAAA,KAAAiM,EAAA,GAAAvI,OAAAH,IAAAjB,YAAAc,EAAA,cAyBJ,SAACZ,GAEe,UAAzBY,EAAK5C,MAAMu1B,WAGMvzB,EAAKO,MAIxB,OACErC,gBAAA,MAAIN,IAAKoC,EAAKC,KAAMlB,UAAWC,IAAOgB,MACpC9B,gBAACgC,IAAIR,OAAAC,OAAA,GACCK,EAAI,CACRmJ,aAAW,EACXpK,UAAWK,IAAGJ,IAAOmB,SAAQL,YAAA,GAC1Bd,IAAOoB,eAAiBJ,EAAKK,WAG/BL,EAAKO,WAIbK,EAAA,OAAAlD,YAAA+L,EAAAnM,GAAAK,YAAA8L,EAAA,EAAA7L,IAAA,SAAAC,IA3CD,WACE,IAAQwJ,EAAatJ,KAAKC,MAAlBqJ,SAER,MAAiB,UAAbA,EACK,CACLwR,KAAM,OACNF,MAAO,EACPsb,UAAW,SAES,WAAb5sB,EACF,CACLwR,KAAM,MACNjT,UAAW,oBAGN,CACL+S,MAAO,KAGZ,CAAA/a,IAAA,SAAAa,MA0BD,WACE,IAAAC,EAA6BX,KAAKC,MAA1BI,EAAKM,EAALN,MAAOW,EAASL,EAATK,UAEf,OAAKX,EAKHF,gBAAA,MAAIa,UAAWK,IAAGJ,IAAO+0B,cAAeh1B,GAAaA,GAAY8F,MAAO9G,KAAKiB,QAC1EZ,EAAMqC,IAAI1C,KAAK2C,aALX,SArDM,CAASxC,aAAe4B,YAArC2J,EAAa,cACI,iBAAe3J,YADhC2J,EAAa,eAEK,IA8DTA,O,2GCrEThK,EAAc,SAAAnC,GAAA,SAAAmC,IAAA,OAAAlC,YAAA,KAAAkC,GAAAjC,YAAA,KAAAiC,EAAAhC,WAAA,OAAAC,YAAA+B,EAAAnC,GAAAK,YAAA8B,EAAA,EAAA7B,IAAA,SAAAa,MAIlB,WACE,IAAAC,EAAmCX,KAAKC,MAAhCk2B,EAAKx1B,EAALw1B,MAAOxyB,EAAIhD,EAAJgD,KAAM3C,EAASL,EAATK,UACrB,OAAKm1B,GAAUxyB,EAGbxD,gBAAA,OAAKa,UAAWA,GAAwB,IACrC2C,EACCxD,gBAACgC,IAASwB,EACRxD,gBAACi2B,IAAKz0B,OAAAC,OAAA,GAAKu0B,EAAK,CAAEE,SAAO,MAG3Bl2B,gBAACi2B,IAAUD,IATW,SANZ,CAASh2B,aAAe4B,YAAtCL,EAAc,cACG,kBAAgBK,YADjCL,EAAc,eAEI,IAoBTA","file":"static/scripts/16-b4763c7baa6fe3c42f4a.js","sourcesContent":["import cx from 'classnames'\nimport * as React from 'react'\n\nimport type { PageLoginViewModel } from '@/modules/Navigation/view-models/PageLoginViewModel'\nimport type { NavigationLogoViewModel } from '@/view-models/NavigationLogoViewModel'\nimport BaseButton from '../BaseButton/BaseButton'\nimport NavigationLogo from '../NavigationLogo/NavigationLogo'\nimport NotificationCount from '../NotificationCount/NotificationCount'\nimport PageLogin from '../PageLogin/PageLogin'\nimport styles from './headerMobile-style.css'\n\ntype Props = {\n logo: NavigationLogoViewModel\n pageLogin?: PageLoginViewModel\n onToggle: (...args: Array) => any\n isOpen: boolean\n notificationCount?: string\n alignLogin?: 'right' | 'left'\n}\ntype State = {}\nconst eventMeta = {\n event: 'burgermenu',\n}\n\nclass HeaderMobile extends React.Component {\n static displayName = 'HeaderMobile'\n static defaultProps = {}\n\n get renderPageLogin() {\n const pageLogin = this.props.pageLogin\n const {alignLogin} = this.props\n if (!pageLogin) return null\n\n return (\n \n )\n }\n\n render() {\n const { logo, onToggle, isOpen, notificationCount } = this.props\n\n return (\n
\n \n
\n
\n \n \n \n
\n {notificationCount && }\n
\n
\n \n
{this.renderPageLogin}
\n
\n )\n }\n}\n\nexport default HeaderMobile","import cx from 'classnames'\nimport * as React from 'react'\n\nimport type { LinkViewModel } from '../../view-models/LinkViewModel'\nimport Link from '../Link/Link'\nimport styles from './serviceMenuMobileLinks-style.css'\n\ntype Props = {\n items?: LinkViewModel[]\n}\ntype State = {}\n\nclass ServiceMenuMobileLinks extends React.Component {\n static displayName = 'ServiceMenuMobileLinks'\n static defaultProps = {}\n\n renderItem(item: LinkViewModel) {\n return (\n
  • \n \n {item.label}\n \n
  • \n )\n }\n\n render() {\n const { items } = this.props\n\n if (!items) {\n return null\n }\n\n return
      {items.map(this.renderItem)}
    \n }\n}\n\nexport default ServiceMenuMobileLinks","import cx from 'classnames'\nimport * as React from 'react'\n\nimport { search } from '../../icons'\nimport type { SearchBarViewModel } from '../../view-models/SearchBarViewModel'\nimport type { ServiceMenuItemViewModel } from '../../view-models/ServiceMenuItemViewModel'\nimport type { ServiceMenuViewModel } from '../../view-models/ServiceMenuViewModel'\nimport Accordion from '../Accordion/Accordion'\nimport BaseButton from '../BaseButton/BaseButton'\nimport BaseModal from '../BaseModal/BaseModal'\nimport Icon from '../Icon/Icon'\nimport Link from '../Link/Link'\nimport SearchBar from '../SearchBar/SearchBar'\nimport ServiceMenuMobileLinks from '../ServiceMenuMobileLinks/ServiceMenuMobileLinks'\nimport styles from './serviceMenuMobile-style.css'\n\ntype Props = {\n serviceMenu: ServiceMenuViewModel\n searchBtn?: SearchBarViewModel\n isOpen?: boolean\n onSubmit?: (...args: Array) => any\n}\n\ntype State = {\n isSearchOpen: boolean\n}\n\nclass ServiceMenuMobile extends React.Component {\n static displayName = 'ServiceMenuMobile'\n static defaultProps = {}\n state = {\n isSearchOpen: false,\n }\n handleSearchToggle = () => {\n this.setState({\n isSearchOpen: !this.state.isSearchOpen,\n })\n }\n\n renderItem(item: ServiceMenuItemViewModel, index: number) {\n if (item.links) {\n return (\n ,\n },\n ]}\n />\n )\n }\n\n if (item.link)\n return (\n \n {(item.link && item.link.label) || item.title}\n \n )\n\n return null\n }\n\n render() {\n const { serviceMenu, searchBtn, isOpen, onSubmit } = this.props\n const { isSearchOpen } = this.state\n if (!serviceMenu || !serviceMenu.links) return null\n\n return (\n
    \n
    \n {searchBtn && (\n \n \n {searchBtn.triggerText}\n \n )}\n {serviceMenu.links.map(this.renderItem)}\n
    \n {isOpen && (\n \n
    \n \n
    \n \n
    \n )}\n
    \n )\n }\n}\n\nexport default ServiceMenuMobile","import cx from 'classnames'\nimport * as React from 'react'\nimport Measure from 'react-measure'\nimport { animated, Keyframes } from 'react-spring'\n\nimport { prevAngle } from '../../icons'\nimport type { LinkViewModel } from '../../view-models/LinkViewModel'\nimport type { SearchBarViewModel } from '../../view-models/SearchBarViewModel'\nimport type { ServiceMenuViewModel } from '../../view-models/ServiceMenuViewModel'\nimport Icon from '../Icon/Icon'\nimport Link from '../Link/Link'\nimport NotificationCount from '../NotificationCount/NotificationCount'\nimport ServiceMenuMobile from '../ServiceMenuMobile/ServiceMenuMobile'\nimport styles from './sideMenuMobile-style.css'\n\n//TODO: any\n//Just installing the react-spring type was not enough.\nconst Sidebar: any = Keyframes.Spring({\n open: {\n delay: 0,\n x: 0,\n },\n close: async (call) => {\n await call({\n delay: 0,\n x: -100,\n })\n },\n})\n\n//TODO: any\n//Just installing the react-spring type was not enough.\nconst Content: any = Keyframes.Trail({\n open: {\n x: 0,\n opacity: 1,\n delay: 50,\n },\n close: {\n x: -100,\n opacity: 0,\n delay: 0,\n },\n})\n\ntype Props = {\n isOpen: boolean\n currentLinksOpen: boolean\n mobileCurrentItems: Array\n topLevelLinks?: Array\n serviceMenu?: ServiceMenuViewModel\n onBackClick: (...args: Array) => any\n searchBtn?: SearchBarViewModel\n notificationCount?: string\n myPageLink?: LinkViewModel\n onSubmit?: (...args: Array) => any\n}\ntype State = {}\n\nclass SideMenuMobile extends React.Component {\n static displayName = 'SideMenuMobile'\n static defaultProps = {}\n\n componentDidUpdate(prevProps: any): void {\n if (prevProps.isOpen !== this.props.isOpen) {\n const body = document.getElementsByTagName('body')[0]\n\n if (this.props.isOpen) {\n setTimeout(() => {\n body.style.overflow = 'hidden'\n body.style.height = '100vh'\n body.style.width = '100vw'\n }, 400)\n } else {\n //reset\n body.style.overflow = 'visible'\n body.style.width = 'auto'\n body.style.height = 'auto'\n }\n }\n }\n\n render() {\n const {\n isOpen,\n mobileCurrentItems,\n currentLinksOpen,\n topLevelLinks,\n serviceMenu,\n onBackClick,\n searchBtn,\n myPageLink,\n notificationCount,\n onSubmit,\n } = this.props\n const sidebarState = isOpen ? 'open' : 'close'\n const currentLinksState = currentLinksOpen ? 'open' : 'close'\n const topLevelLinksState =\n currentLinksOpen && isOpen ? 'close' : !currentLinksOpen && isOpen ? 'open' : 'close'\n if (!mobileCurrentItems) return null\n\n return (\n \n {({ x }) => (\n `translate3d(${x}%,0,0)`),\n }}\n >\n \n {({ measureRef, contentRect }) => (\n \n
    \n \n i)}\n reverse={!isOpen}\n state={currentLinksState}\n >\n {(item, i) => ({ x, ...props }) => {\n if (typeof item === 'string' && i === 0) {\n return (\n `translate3d(${x}%,0,0)`),\n ...props,\n }}\n className={styles.backStringHolder}\n onClick={onBackClick}\n >\n
    \n \n
    {item}
    \n
    \n \n )\n } else if (myPageLink && i === mobileCurrentItems.length - 1) {\n return (\n `translate3d(${x}%,0,0)`),\n ...props,\n }}\n className={cx(styles.menuItemHolder, styles.myPageLink)}\n >\n \n \n {item.label}\n {notificationCount && (\n \n )}\n
    \n \n \n \n )\n }\n\n return (\n `translate3d(${x}%,0,0)`),\n ...props,\n }}\n className={styles.menuItemHolder}\n >\n \n {item.label}\n \n \n \n )\n }}\n \n \n {topLevelLinks && (\n \n i)}\n reverse={!isOpen}\n state={topLevelLinksState}\n >\n {(item, i) => ({ x, ...props }) => {\n return (\n `translate3d(${x}%,0,0)`),\n ...props,\n }}\n className={cx(styles.menuItemHolder, i === 0 && styles.first)}\n >\n \n {item.label}\n \n \n \n )\n }}\n \n \n )}\n \n \n )}\n
    \n {serviceMenu && (\n \n )}\n \n )}\n
    \n )\n }\n}\n\nexport default SideMenuMobile","import cx from 'classnames'\nimport * as React from 'react'\n\nimport { arrowLeft } from '../../icons'\nimport type { PageLoginViewModel } from '../../modules/Navigation/view-models/PageLoginViewModel'\nimport type { BreakingNewsItemViewModel } from '../../view-models/BreakingNewsItemViewModel'\nimport type { LinkViewModel } from '../../view-models/LinkViewModel'\nimport type { MobileMenuViewModel } from '../../view-models/MobileMenuViewModel'\nimport type { NavigationLogoViewModel } from '../../view-models/NavigationLogoViewModel'\nimport type { SearchBarViewModel } from '../../view-models/SearchBarViewModel'\nimport type { ServiceMenuViewModel } from '../../view-models/ServiceMenuViewModel'\nimport DividerComp from '../DividerComp/DividerComp'\nimport HeaderMobile from '../HeaderMobile/HeaderMobile'\nimport Icon from '../Icon/Icon'\nimport Link from '../Link/Link'\nimport NewsTicker from '../NewsTicker/NewsTicker'\nimport SideMenuMobile from '../SideMenuMobile/SideMenuMobile'\nimport styles from './navigationMobile-style.css'\n\ntype Props = {\n logo: NavigationLogoViewModel\n pageLogin?: PageLoginViewModel\n mobileMenuItems: MobileMenuViewModel\n serviceMenu?: ServiceMenuViewModel\n searchBtn?: SearchBarViewModel\n backLink?: LinkViewModel\n items?: Array\n header?: string\n hide?: boolean | null\n breakingNewsLink?: LinkViewModel\n notificationCount?: string\n myPageLink?: LinkViewModel\n onSubmit?: (...args: Array) => any\n alignLogin?: 'right'| 'left'\n}\ntype State = {\n isOpen: boolean\n currentLinksOpen: boolean\n mobileCurrentItems: Array\n}\n\nclass NavigationMobile extends React.Component {\n static displayName = 'NavigationMobile'\n static defaultProps = {}\n state = {\n isOpen: false,\n currentLinksOpen: false,\n mobileCurrentItems: [],\n }\n\n componentDidMount(): void {\n if (this.props.mobileMenuItems) {\n const { backString, links } = this.props.mobileMenuItems as MobileMenuViewModel\n const { myPageLink } = this.props\n //TODO: Is this type correct?\n let arr: LinkViewModel[] = links || []\n\n if (arr) {\n if (backString) {\n //TODO: Is it ok to ignore this here?\n // @ts-ignore\n arr.unshift(backString) // arr expects Array, but backString has to be a string\n }\n\n if (myPageLink) arr.push(myPageLink)\n this.setState({\n mobileCurrentItems: arr,\n })\n }\n }\n }\n\n handleToggle = () =>\n this.setState((state) => ({\n isOpen: !state.isOpen,\n currentLinksOpen: !state.isOpen,\n }))\n handleBackClick = () =>\n this.setState({\n currentLinksOpen: false,\n })\n\n get renderBackLink() {\n const { backLink } = this.props\n if (!backLink) return null\n const backLinkEventMeta = {\n event: 'back-link',\n }\n\n return (\n
    \n \n \n
    {backLink.label}
    \n \n
    \n )\n }\n\n render() {\n const {\n hide,\n logo,\n pageLogin,\n mobileMenuItems,\n serviceMenu,\n searchBtn,\n backLink,\n items,\n header,\n breakingNewsLink,\n notificationCount,\n myPageLink,\n alignLogin,\n onSubmit,\n } = this.props\n const { isOpen, currentLinksOpen, mobileCurrentItems } = this.state\n if (hide !== null && hide === true) return null\n if (!mobileMenuItems) return null\n\n return (\n
    \n \n \n \n {this.renderBackLink}\n {items && header && (\n \n )}\n {backLink && }\n
    \n )\n }\n}\n\nexport default NavigationMobile","import cx from 'classnames'\nimport * as React from 'react'\n\nimport type { LinkViewModel } from '../../view-models/LinkViewModel'\nimport Link from '../Link/Link'\nimport NotificationCount from '../NotificationCount/NotificationCount'\nimport styles from './pageLinks-style.css'\n\ntype Props = {\n items: Array\n notificationCount?: string\n}\ntype State = {}\n\nclass PageLinks extends React.Component {\n static displayName = 'PageLinks'\n static defaultProps = {}\n\n renderItem = (item: LinkViewModel) => {\n const { notificationCount } = this.props\n\n return (\n
  • \n \n {item.label}\n {notificationCount && }\n \n
  • \n )\n }\n\n render() {\n const { items } = this.props\n\n if (!items) {\n return null\n }\n\n return
      {items.map(this.renderItem)}
    \n }\n}\n\nexport default PageLinks","import cx from 'classnames'\nimport * as React from 'react'\n\nimport { search, times } from '../../icons'\nimport type { NavigationLogoViewModel } from '../../view-models/NavigationLogoViewModel'\nimport type { SearchBarViewModel } from '../../view-models/SearchBarViewModel'\nimport type { ServiceMenuItemViewModel } from '../../view-models/ServiceMenuItemViewModel'\nimport type { ServiceMenuViewModel } from '../../view-models/ServiceMenuViewModel'\nimport BaseButton from '../BaseButton/BaseButton'\nimport Dropdown from '../Dropdown/Dropdown'\nimport DropdownLinks from '../DropdownLinks/DropdownLinks'\nimport Icon from '../Icon/Icon'\nimport Link from '../Link/Link'\nimport NavigationLogo from '../NavigationLogo/NavigationLogo'\nimport SearchBar from '../SearchBar/SearchBar'\nimport styles from './serviceMenuDesktop-style.css'\n\ntype Props = ServiceMenuViewModel & {\n renderLogo?: boolean\n logo: NavigationLogoViewModel\n searchBtn?: SearchBarViewModel\n onSubmit?: (...args: Array) => any\n}\n\ntype State = {\n isSearchOpen: boolean\n}\n\nclass ServiceMenuDesktop extends React.Component {\n static displayName = 'ServiceMenuDesktop'\n static defaultProps = {}\n state = {\n isSearchOpen: false,\n }\n\n renderItem(item: ServiceMenuItemViewModel) {\n if (item.links) {\n return (\n \n \n \n )\n }\n\n return (\n \n {item.link ? item.link.label : item.title}\n \n )\n }\n\n renderSearchBtn() {\n const { searchBtn } = this.props\n if (!searchBtn) return null\n\n return (\n \n this.setState({\n isSearchOpen: true,\n })\n }\n >\n \n {searchBtn.triggerText}\n \n )\n }\n\n render() {\n const { links, logo, searchBtn, onSubmit } = this.props\n const { isSearchOpen } = this.state\n if (!links) return null\n\n return (\n
    \n \n
    \n {links.map(this.renderItem)}\n {this.renderSearchBtn()}\n
    \n
    \n
    \n {/**/}\n \n \n this.setState({\n isSearchOpen: false,\n })\n }\n >\n {searchBtn && {searchBtn.closeText}}\n \n \n
    \n
    \n
    \n
    \n
    \n )\n }\n}\n\nexport default ServiceMenuDesktop","import cx from 'classnames'\nimport * as React from 'react'\n\nimport { arrowLeft } from '../../icons'\nimport type { PageLoginViewModel } from '../../modules/Navigation/view-models/PageLoginViewModel'\nimport type { BreakingNewsItemViewModel } from '../../view-models/BreakingNewsItemViewModel'\nimport type { LinkViewModel } from '../../view-models/LinkViewModel'\nimport type { NavigationLogoViewModel } from '../../view-models/NavigationLogoViewModel'\nimport type { SearchBarViewModel } from '../../view-models/SearchBarViewModel'\nimport type { ServiceMenuViewModel } from '../../view-models/ServiceMenuViewModel'\nimport Icon from '../Icon/Icon'\nimport Link from '../Link/Link'\nimport NewsTicker from '../NewsTicker/NewsTicker'\nimport PageLinks from '../PageLinks/PageLinks'\nimport PageLogin from '../PageLogin/PageLogin'\nimport ServiceMenuDesktop from '../ServiceMenuDesktop/ServiceMenuDesktop'\nimport styles from './navigationDesktop-style.css'\n\ntype Props = {\n logo: NavigationLogoViewModel\n serviceMenu?: ServiceMenuViewModel\n searchBtn?: SearchBarViewModel\n pageLinks?: Array\n pageLogin?: PageLoginViewModel\n backLink?: LinkViewModel\n items?: Array\n header?: string\n hide?: boolean | null\n breakingNewsLink?: LinkViewModel\n myPageLink?: LinkViewModel\n notificationCount?: string\n hideBottomDivider?: boolean\n onSubmit?: (...args: Array) => any\n alignLogin?: 'right' | 'left'\n}\ntype State = {}\n\nclass NavigationDesktop extends React.Component {\n static displayName = 'NavigationDesktop'\n static defaultProps = {}\n\n get renderServiceMenu() {\n const { serviceMenu, logo, pageLinks, searchBtn, onSubmit } = this.props\n if (!serviceMenu) return null\n\n return (\n \n )\n }\n\n get renderPageLinks() {\n const { pageLinks } = this.props\n if (!pageLinks) return null\n\n return \n }\n\n get renderPageLogin() {\n const pageLogin = this.props.pageLogin\n const { alignLogin } = this.props\n if (!pageLogin) return null\n\n return (\n \n )\n }\n\n renderBreakingNews(className: string) {\n const { items, header, breakingNewsLink } = this.props\n if (!items || !header) return null\n\n return (\n
    \n \n
    \n )\n }\n\n get renderBackLink() {\n const { backLink } = this.props\n const newsItems = this.props.items\n if (!backLink) return null\n const backLinkEventMeta = {\n event: 'back-link',\n }\n let labelStyle = {}\n let backLinkHolderStyle = {}\n let linkStyle = {}\n\n if (newsItems) {\n labelStyle = {\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n }\n backLinkHolderStyle = {\n width: '200px',\n }\n linkStyle = {\n maxWidth: '185px',\n }\n }\n\n return (\n
    \n \n \n
    {backLink.label}
    \n \n
    \n )\n }\n\n get renderBottomBar() {\n const { backLink } = this.props\n\n if (backLink) {\n return (\n
    \n {this.renderBackLink}\n {this.renderBreakingNews(styles.onSide)}\n
    \n )\n }\n\n return <>{this.renderBreakingNews(styles.full)}\n }\n\n get renderMyPageLink() {\n if (!this.props.myPageLink || !this.props.pageLinks) return null\n const { myPageLink, notificationCount } = this.props\n\n return (\n
    \n \n
    \n )\n }\n\n render() {\n const { hide, pageLinks, hideBottomDivider } = this.props\n if (hide !== null && hide) return null\n\n return (\n
    \n \n {this.renderBottomBar}\n
    \n )\n }\n}\n\nexport default NavigationDesktop","export { default } from './Navigation'\n\n/**\n * Should the component only render server side?\n * You can set this to true if the component is a pure static component.\n */\nexport const ONLY_SERVER = false","global.dataLayer = global.dataLayer || []\nexport type GtagEvent = {\n event?: string\n eventData?: string\n eventLabel?: string\n}\n\n/**\n * Track an event\n * Supply a callback, that gets triggered after the event is tracked\n */\nexport function trackEvent({ event, eventData, eventLabel }: GtagEvent) {\n if (typeof window === 'undefined') return\n const eventName = event ? `${window.site_section || 'pensam'}-${event}` : ''\n const gtmEvent = {\n event: eventName,\n 'event-data': eventData || '',\n 'event-label': eventLabel || '',\n }\n\n if (global.dataLayer && gtmEvent.event) {\n global.dataLayer.push(gtmEvent)\n } //\n // if (\n // process.env.NODE_ENV === 'development' &&\n // global.dataLayer &&\n // gtmEvent.event\n // ) {\n // console.log('dataLayer', global.dataLayer)\n // }\n}\n","export function scrollOffset(element, offset = 0, alignment = 'top') {\n const body = document.body\n const html = document.documentElement\n const elemRect = element.getBoundingClientRect()\n const clientHeight = html.clientHeight\n const documentHeight = Math.max(\n body.scrollHeight,\n body.offsetHeight,\n html.clientHeight,\n html.scrollHeight,\n html.offsetHeight,\n )\n let scrollPosition\n\n if (alignment === 'bottom') {\n scrollPosition = elemRect.bottom - clientHeight\n } else if (alignment === 'middle') {\n scrollPosition = elemRect.bottom - clientHeight / 2 - elemRect.height / 2\n } else {\n // top and default\n scrollPosition = elemRect.top\n }\n\n const maxScrollPosition = documentHeight - clientHeight\n return Math.min(scrollPosition + offset + window.pageYOffset, maxScrollPosition)\n}\n\n/**\n * Return true if child is contained in parent\n * @param parent {HTMLElement}\n * @param child {HTMLElement}\n * @returns {boolean}\n */\nexport function isDescendant(parent, child) {\n if (!child || !child.parentNode) return false\n let node = child.parentNode\n\n while (node != null) {\n if (node === parent) {\n return true\n }\n\n node = node.parentNode\n }\n\n return false\n}\nlet matchesFn\n\n/**\n * Find the closest element that matches the selector\n * @param el {HTMLElement}\n * @param selector {string}\n * @returns {HTMLElement}\n */\nexport function closest(el, selector) {\n if (!matchesFn) {\n // find vendor prefix\n ;[\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector',\n ].some((fn) => {\n if (typeof document.body[fn] === 'function') {\n matchesFn = fn\n return true\n }\n\n return false\n })\n }\n\n // traverse parents\n let parent\n let element = el\n\n while (element !== null) {\n parent = element.parentElement\n\n if (parent !== null && parent[matchesFn](selector)) {\n return parent\n }\n\n element = parent\n }\n\n return null\n}\n\n/**\n * Get the previous sibling DOM node to an element\n * @param node {HTMLElement}\n * @returns {HTMLElement}\n */\nexport function previousSibling(node) {\n if (!node) return null\n let element = node\n\n do {\n element = element.previousSibling\n if (!isIgnorable(element)) return element\n } while (element)\n\n return null\n}\n\n/**\n * Get the next sibling DOM node to an element\n * @param node {HTMLElement}\n * @returns {HTMLElement}\n */\nexport function nextSibling(node) {\n if (!node) return null\n let element = node\n\n do {\n element = element.nextSibling\n if (element && !isIgnorable(element)) return element\n } while (element)\n\n return null\n}\n\n/**\n * Ignore commment and text nodes.\n * @param node\n * @returns {*}\n */\nfunction isIgnorable(node) {\n if (!node) return null\n return node.nodeType === 8 || (node.nodeType === 3 && isAllWs(node))\n}\n\n/**\n * Ignore all whitespace nodes\n * @param node\n * @returns {*}\n */\nfunction isAllWs(node) {\n if (!node) return null\n // Use ECMA-262 Edition 3 String and RegExp features\n return !/[^\\t\\n\\r ]/.test(node.textContent)\n}\n\nexport function getNodePath(node) {\n if (!node) return null\n let currentNode = node\n let path\n\n while (currentNode.parentNode) {\n const tag = currentNode.tagName.toLowerCase()\n const classes = currentNode.getAttribute('class')\n const className = classes ? `.${classes.trim().split(' ').join('.')}` : ''\n\n if (path) {\n path = `${tag}${className} > ${path}`\n } else {\n path = `${tag}${className}`\n }\n\n // Move up in the tree\n currentNode = currentNode.parentNode\n }\n\n return path\n}\nexport function insertAfter(newNode, referenceNode) {\n referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling)\n}\nexport function truncateString(string, length) {\n if (string.length > length) {\n if (typeof string === 'string' && typeof length === 'number') {\n return string.substring(0, length) + '\\u2026'\n } else {\n throw new Error('Function truncateString take args @string, @number')\n }\n } else return string\n}\nexport default {\n closest,\n isDescendant,\n previousSibling,\n nextSibling,\n scrollOffset,\n getNodePath,\n insertAfter,\n truncateString,\n}","import {RequestOptions} from \"http\";\n\nimport { fetchError } from './error-tracking'\nconst defaultGetHeaders = {}\nconst defaultPostHeaders = {\n 'Content-Type': 'application/x-www-form-urlencoded',\n}\n\n/**\n * Parses the JSON returned by a network request\n *\n * @param {Response} response A response from a network request\n * @return {object} The parsed JSON from the request\n */\nfunction parseJSON(response: Response) {\n const contentType = response.headers.get('content-type')\n\n if (contentType && contentType.indexOf('application/json') !== -1) {\n return response.json().catch((error) => {\n // If we fail to parse the JSON log it and return empty object\n fetchError(error, response)\n\n return {}\n })\n } else {\n return Promise.resolve({})\n }\n}\n\nfunction redirect(body) {\n if (body && typeof body.redirect === 'string') {\n // If the response has a redirect key, update the current browser URL\n global.location.assign(body.redirect)\n }\n\n return body\n}\n\nasync function handleError(response: Response, request: RequestOptions) {\n const url =\n global.URL && !!response.url\n ? new global.URL(response.url)\n : {\n pathname: response.url,\n }\n const body = await parseJSON(response)\n const error = new Error(body.message || response.statusText)\n\n switch (response.status) {\n case 400: // Bad Request - Form validation error or similar\n\n case 401: // Unauthorized\n\n case 403:\n // Forbidden\n // Expected errors, so don't log as error\n break\n\n default:\n fetchError(\n new Error(`${response.status}: ${response.statusText} (${url.pathname})`),\n response,\n request,\n {\n body,\n },\n )\n break\n }\n\n // Perform a redirect if necessary\n redirect(body)\n\n return Promise.reject({\n message: body.message || error.message,\n error,\n response,\n request,\n body,\n })\n}\n\n/**\n * Checks if a network request came back fine, and throws an error if not\n *\n * @param {Response} response A response from a network request\n * @param {RequestOptions} request The original request options\n *\n * @return {object|undefined} Returns either the response, or throws an error\n */\nexport function checkStatus(response: Response, request: RequestOptions) {\n if (response.ok) return response\n\n return handleError(response, request)\n}\n/**\n * Requests a URL, returning a promise\n *\n * @param {string} url The URL we want to request\n * @param {RequestOptions} [options] The options we want to pass to \"fetch\"\n *\n * @return {object} The response data\n */\n\nexport default function request(\n url: string,\n options: RequestOptions = {},\n): Promise> {\n const request = {\n method: options.method || 'GET',\n\n /* By default, we set the Content-Type for POST requests */\n headers: options.method === 'POST' ? defaultPostHeaders : defaultGetHeaders,\n ...options,\n }\n\n return fetch(url, request)\n .then((response: Response) => checkStatus(response, request))\n .then(parseJSON) // .then(redirect)\n}","import _typeof from \"./typeof.js\";\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n };\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = \"function\" == typeof Symbol ? Symbol : {},\n a = i.iterator || \"@@iterator\",\n c = i.asyncIterator || \"@@asyncIterator\",\n u = i.toStringTag || \"@@toStringTag\";\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, \"\");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, \"_invoke\", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: \"normal\",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: \"throw\",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = \"suspendedStart\",\n l = \"suspendedYield\",\n f = \"executing\",\n s = \"completed\",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n function defineIteratorMethods(t) {\n [\"next\", \"throw\", \"return\"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if (\"throw\" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) {\n invoke(\"next\", t, i, a);\n }, function (t) {\n invoke(\"throw\", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke(\"throw\", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, \"_invoke\", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw Error(\"Generator is already running\");\n if (o === s) {\n if (\"throw\" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else \"return\" === n.method && n.abrupt(\"return\", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if (\"normal\" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y);\n }\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = \"normal\", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || \"\" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) {\n var e = \"function\" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () {\n return this;\n }), define(g, \"toString\", function () {\n return \"[object Generator]\";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) r.push(n);\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if (\"throw\" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if (\"root\" === i.tryLoc) return handle(\"end\");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, \"catchLoc\"),\n u = n.call(i, \"finallyLoc\");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw Error(\"try statement without catch or finally\");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if (\"throw\" === t.type) throw t.arg;\n return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n \"catch\": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if (\"throw\" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, \"next\" === this.method && (this.arg = t), y;\n }\n }, e;\n}\nexport { _regeneratorRuntime as default };","function asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n _next(void 0);\n });\n };\n}\nexport { _asyncToGenerator as default };","export type ImageRatio = 'original' | 'dim16_9' | 'dim3_2'\nexport const DIMENSION_NAMES = ['xs', 'sm', 'md', 'lg', 'hd']\nexport const aspectRatios = {\n mobile: 10 / 23,\n desktop: 10 / 27,\n}\n\n/** Max image width at a given breakpoint. */\nexport type ImageBreakpoints = {\n xs?: string\n sm?: string\n md?: string\n lg?: string\n hd?: string\n}\nexport const IMAGE_WIDTHS = [150, 300, 560, 660, 750, 880, 1024, 1350, 1440, 1720, 1920, 2048, 2700]\nexport type ImageSizes = {\n breakpoints?: ImageBreakpoints\n maxWidth: string | number\n}\n// If image breaks are undefined, make sure the width tops out 100 viewport width\nconst defaultBreakpoints = {\n hd: '100vw',\n}\nconst breakpoints = {\n xs: 0,\n sm: 48,\n // 48*16 = 768px\n md: 64,\n // 64*16 = 1024px\n lg: 75,\n // 75*16 = 1200px\n hd: 90, // 88*16 = 1408px\n}\n\n/**\n * Converts a string number with a known unit type, to a unitless number in px size\n **/\nexport function sizeToNumber(size: string | number): number {\n if (!size) return 0\n if (typeof size === 'number') return size\n if (size.endsWith('px')) return parseInt(size.substr(0, size.length - 2), 10)\n if (size.endsWith('em')) return parseInt(size.substr(0, size.length - 2), 10) * 16\n if (size.endsWith('vw')) return (parseInt(size.substr(0, size.length - 2), 10) * 1440) / 100\n if (size.endsWith('rem')) return parseInt(size.substr(0, size.length - 3), 10) * 16\n return parseInt(size, 10)\n}\n\n/**\n * Generate the actual ratio for the the known Image ratios\n **/\nexport function calculateRatio(width: number = 16, height: number = 9, aspect: number) {\n return Math.min(aspect, height === 0 ? 1 : height / width === 0 ? 1 : width) // switch (aspect) {\n // case 'dim3_2':\n // return 2 / 3\n // case 'dim16_9':\n // return 9 / 16\n // default:\n // return height / width\n // }\n}\n\n/**\n * Generate sizes for images, while respecting Breakpoints\n **/\nexport function generateSizes(\n imageBreaks: ImageBreakpoints = defaultBreakpoints,\n maxWidth: string | number = '1440px',\n) {\n const queries = DIMENSION_NAMES.reduce((acc, breakpoint, index) => {\n // If the breakpoint is 0, or undefined, take the next dimension\n const maxWidth = breakpoints[breakpoint] || breakpoints[DIMENSION_NAMES[index + 1]]\n const breakpointSize = imageBreaks[breakpoint]\n\n if (breakpointSize) {\n return `${acc}(max-width: ${maxWidth}em) ${breakpointSize}, `\n }\n\n return acc\n }, '')\n return queries + (typeof maxWidth === 'number' ? `${maxWidth}px` : maxWidth)\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 != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var debounce = require('./debounce'),\n isObject = require('./isObject');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` 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 throttled 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 `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nmodule.exports = throttle;\n","function t(t){return\"object\"==typeof t&&null!=t&&1===t.nodeType}function e(t,e){return(!e||\"hidden\"!==t)&&\"visible\"!==t&&\"clip\"!==t}function n(t,n){if(t.clientHeighte||o>t&&l=e&&d>=n?o-t-r:l>e&&dn?l-e+i:0}var i=function(e,i){var o=window,l=i.scrollMode,d=i.block,f=i.inline,h=i.boundary,u=i.skipOverflowHiddenElements,s=\"function\"==typeof h?h:function(t){return t!==h};if(!t(e))throw new TypeError(\"Invalid target\");for(var a,c,g=document.scrollingElement||document.documentElement,p=[],m=e;t(m)&&s(m);){if((m=null==(c=(a=m).parentElement)?a.getRootNode().host||null:c)===g){p.push(m);break}null!=m&&m===document.body&&n(m)&&!n(document.documentElement)||null!=m&&n(m,u)&&p.push(m)}for(var w=o.visualViewport?o.visualViewport.width:innerWidth,v=o.visualViewport?o.visualViewport.height:innerHeight,W=window.scrollX||pageXOffset,H=window.scrollY||pageYOffset,b=e.getBoundingClientRect(),y=b.height,E=b.width,M=b.top,V=b.right,x=b.bottom,I=b.left,C=\"start\"===d||\"nearest\"===d?M:\"end\"===d?x:M+y/2,R=\"center\"===f?I+E/2:\"end\"===f?V:I,T=[],k=0;k=0&&I>=0&&x<=v&&V<=w&&M>=Y&&x<=S&&I>=j&&V<=L)return T;var N=getComputedStyle(B),q=parseInt(N.borderLeftWidth,10),z=parseInt(N.borderTopWidth,10),A=parseInt(N.borderRightWidth,10),F=parseInt(N.borderBottomWidth,10),G=0,J=0,K=\"offsetWidth\"in B?B.offsetWidth-B.clientWidth-q-A:0,P=\"offsetHeight\"in B?B.offsetHeight-B.clientHeight-z-F:0,Q=\"offsetWidth\"in B?0===B.offsetWidth?0:X/B.offsetWidth:0,U=\"offsetHeight\"in B?0===B.offsetHeight?0:O/B.offsetHeight:0;if(g===B)G=\"start\"===d?C:\"end\"===d?C-v:\"nearest\"===d?r(H,H+v,v,z,F,H+C,H+C+y,y):C-v/2,J=\"start\"===f?R:\"center\"===f?R-w/2:\"end\"===f?R-w:r(W,W+w,w,q,A,W+R,W+R+E,E),G=Math.max(0,G+H),J=Math.max(0,J+W);else{G=\"start\"===d?C-Y-z:\"end\"===d?C-S+F+P:\"nearest\"===d?r(Y,S,O,z,F+P,C,C+y,y):C-(Y+O/2)+P/2,J=\"start\"===f?R-j-q:\"center\"===f?R-(j+X/2)+K/2:\"end\"===f?R-L+A+K:r(j,L,X,q,A+K,R,R+E,E);var Z=B.scrollLeft,$=B.scrollTop;C+=$-(G=Math.max(0,Math.min($+G/U,B.scrollHeight-O/U+P))),R+=Z-(J=Math.max(0,Math.min(Z+J/Q,B.scrollWidth-X/Q+K)))}T.push({el:B,top:G,left:J})}return T};export{i as default};\n//# sourceMappingURL=index.mjs.map\n","import _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport { cloneElement, Component, useCallback, useReducer, useState, useEffect, useRef } from 'react';\nimport { isForwardRef } from 'react-is';\nimport computeScrollIntoView from 'compute-scroll-into-view';\n\nvar idCounter = 0;\n/**\n * Accepts a parameter and returns it if it's a function\n * or a noop function if it's not. This allows us to\n * accept a callback, but not worry about it if it's not\n * passed.\n * @param {Function} cb the callback\n * @return {Function} a function\n */\n\nfunction cbToCb(cb) {\n return typeof cb === 'function' ? cb : noop;\n}\n\nfunction noop() {}\n/**\n * Scroll node into view if necessary\n * @param {HTMLElement} node the element that should scroll into view\n * @param {HTMLElement} menuNode the menu element of the component\n */\n\n\nfunction scrollIntoView(node, menuNode) {\n if (node === null) {\n return;\n }\n\n var actions = computeScrollIntoView(node, {\n boundary: menuNode,\n block: 'nearest',\n scrollMode: 'if-needed'\n });\n actions.forEach(function (_ref) {\n var el = _ref.el,\n top = _ref.top,\n left = _ref.left;\n el.scrollTop = top;\n el.scrollLeft = left;\n });\n}\n/**\n * @param {HTMLElement} parent the parent node\n * @param {HTMLElement} child the child node\n * @return {Boolean} whether the parent is the child or the child is in the parent\n */\n\n\nfunction isOrContainsNode(parent, child) {\n return parent === child || parent.contains && parent.contains(child);\n}\n/**\n * Simple debounce implementation. Will call the given\n * function once after the time given has passed since\n * it was last called.\n * @param {Function} fn the function to call after the time\n * @param {Number} time the time to wait\n * @return {Function} the debounced function\n */\n\n\nfunction debounce(fn, time) {\n var timeoutId;\n\n function cancel() {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n }\n\n function wrapper() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n cancel();\n timeoutId = setTimeout(function () {\n timeoutId = null;\n fn.apply(void 0, args);\n }, time);\n }\n\n wrapper.cancel = cancel;\n return wrapper;\n}\n/**\n * This is intended to be used to compose event handlers.\n * They are executed in order until one of them sets\n * `event.preventDownshiftDefault = true`.\n * @param {...Function} fns the event handler functions\n * @return {Function} the event handler to add to an element\n */\n\n\nfunction callAllEventHandlers() {\n for (var _len2 = arguments.length, fns = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n fns[_key2] = arguments[_key2];\n }\n\n return function (event) {\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n\n return fns.some(function (fn) {\n if (fn) {\n fn.apply(void 0, [event].concat(args));\n }\n\n return event.preventDownshiftDefault || event.hasOwnProperty('nativeEvent') && event.nativeEvent.preventDownshiftDefault;\n });\n };\n}\n\nfunction handleRefs() {\n for (var _len4 = arguments.length, refs = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n refs[_key4] = arguments[_key4];\n }\n\n return function (node) {\n refs.forEach(function (ref) {\n if (typeof ref === 'function') {\n ref(node);\n } else if (ref) {\n ref.current = node;\n }\n });\n };\n}\n/**\n * This generates a unique ID for an instance of Downshift\n * @return {String} the unique ID\n */\n\n\nfunction generateId() {\n return String(idCounter++);\n}\n/**\n * Resets idCounter to 0. Used for SSR.\n */\n\n\nfunction resetIdCounter() {\n idCounter = 0;\n}\n/**\n * @param {Object} param the downshift state and other relevant properties\n * @return {String} the a11y status message\n */\n\n\nfunction getA11yStatusMessage(_ref2) {\n var isOpen = _ref2.isOpen,\n selectedItem = _ref2.selectedItem,\n resultCount = _ref2.resultCount,\n previousResultCount = _ref2.previousResultCount,\n itemToString = _ref2.itemToString;\n\n if (!isOpen) {\n return selectedItem ? itemToString(selectedItem) : '';\n }\n\n if (!resultCount) {\n return 'No results are available.';\n }\n\n if (resultCount !== previousResultCount) {\n return resultCount + \" result\" + (resultCount === 1 ? ' is' : 's are') + \" available, use up and down arrow keys to navigate. Press Enter key to select.\";\n }\n\n return '';\n}\n/**\n * Takes an argument and if it's an array, returns the first item in the array\n * otherwise returns the argument\n * @param {*} arg the maybe-array\n * @param {*} defaultValue the value if arg is falsey not defined\n * @return {*} the arg or it's first item\n */\n\n\nfunction unwrapArray(arg, defaultValue) {\n arg = Array.isArray(arg) ?\n /* istanbul ignore next (preact) */\n arg[0] : arg;\n\n if (!arg && defaultValue) {\n return defaultValue;\n } else {\n return arg;\n }\n}\n/**\n * @param {Object} element (P)react element\n * @return {Boolean} whether it's a DOM element\n */\n\n\nfunction isDOMElement(element) {\n // then we assume this is react\n return typeof element.type === 'string';\n}\n/**\n * @param {Object} element (P)react element\n * @return {Object} the props\n */\n\n\nfunction getElementProps(element) {\n return element.props;\n}\n/**\n * Throws a helpful error message for required properties. Useful\n * to be used as a default in destructuring or object params.\n * @param {String} fnName the function name\n * @param {String} propName the prop name\n */\n\n\nfunction requiredProp(fnName, propName) {\n // eslint-disable-next-line no-console\n console.error(\"The property \\\"\" + propName + \"\\\" is required in \\\"\" + fnName + \"\\\"\");\n}\n\nvar stateKeys = ['highlightedIndex', 'inputValue', 'isOpen', 'selectedItem', 'type'];\n/**\n * @param {Object} state the state object\n * @return {Object} state that is relevant to downshift\n */\n\nfunction pickState(state) {\n if (state === void 0) {\n state = {};\n }\n\n var result = {};\n stateKeys.forEach(function (k) {\n if (state.hasOwnProperty(k)) {\n result[k] = state[k];\n }\n });\n return result;\n}\n/**\n * Normalizes the 'key' property of a KeyboardEvent in IE/Edge\n * @param {Object} event a keyboardEvent object\n * @return {String} keyboard key\n */\n\n\nfunction normalizeArrowKey(event) {\n var key = event.key,\n keyCode = event.keyCode;\n /* istanbul ignore next (ie) */\n\n if (keyCode >= 37 && keyCode <= 40 && key.indexOf('Arrow') !== 0) {\n return \"Arrow\" + key;\n }\n\n return key;\n}\n/**\n * Simple check if the value passed is object literal\n * @param {*} obj any things\n * @return {Boolean} whether it's object literal\n */\n\n\nfunction isPlainObject(obj) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n}\n/**\n * Returns the new index in the list, in a circular way. If next value is out of bonds from the total,\n * it will wrap to either 0 or itemCount - 1.\n *\n * @param {number} moveAmount Number of positions to move. Negative to move backwards, positive forwards.\n * @param {number} baseIndex The initial position to move from.\n * @param {number} itemCount The total number of items.\n * @returns {number} The new index after the move.\n */\n\n\nfunction getNextWrappingIndex(moveAmount, baseIndex, itemCount) {\n var itemsLastIndex = itemCount - 1;\n\n if (typeof baseIndex !== 'number' || baseIndex < 0 || baseIndex >= itemCount) {\n baseIndex = moveAmount > 0 ? -1 : itemsLastIndex + 1;\n }\n\n var newIndex = baseIndex + moveAmount;\n\n if (newIndex < 0) {\n newIndex = itemsLastIndex;\n } else if (newIndex > itemsLastIndex) {\n newIndex = 0;\n }\n\n return newIndex;\n}\n\nvar cleanupStatus = debounce(function () {\n getStatusDiv().textContent = '';\n}, 500);\n/**\n * @param {String} status the status message\n * @param {Object} documentProp document passed by the user.\n */\n\nfunction setStatus(status, documentProp) {\n var div = getStatusDiv(documentProp);\n\n if (!status) {\n return;\n }\n\n div.textContent = status;\n cleanupStatus();\n}\n/**\n * Get the status node or create it if it does not already exist.\n * @param {Object} documentProp document passed by the user.\n * @return {HTMLElement} the status node.\n */\n\n\nfunction getStatusDiv(documentProp) {\n if (documentProp === void 0) {\n documentProp = document;\n }\n\n var statusDiv = documentProp.getElementById('a11y-status-message');\n\n if (statusDiv) {\n return statusDiv;\n }\n\n statusDiv = documentProp.createElement('div');\n statusDiv.setAttribute('id', 'a11y-status-message');\n statusDiv.setAttribute('role', 'status');\n statusDiv.setAttribute('aria-live', 'polite');\n statusDiv.setAttribute('aria-relevant', 'additions text');\n Object.assign(statusDiv.style, {\n border: '0',\n clip: 'rect(0 0 0 0)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: '0',\n position: 'absolute',\n width: '1px'\n });\n documentProp.body.appendChild(statusDiv);\n return statusDiv;\n}\n\nvar unknown = process.env.NODE_ENV !== \"production\" ? '__autocomplete_unknown__' : 0;\nvar mouseUp = process.env.NODE_ENV !== \"production\" ? '__autocomplete_mouseup__' : 1;\nvar itemMouseEnter = process.env.NODE_ENV !== \"production\" ? '__autocomplete_item_mouseenter__' : 2;\nvar keyDownArrowUp = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_arrow_up__' : 3;\nvar keyDownArrowDown = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_arrow_down__' : 4;\nvar keyDownEscape = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_escape__' : 5;\nvar keyDownEnter = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_enter__' : 6;\nvar keyDownHome = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_home__' : 7;\nvar keyDownEnd = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_end__' : 8;\nvar clickItem = process.env.NODE_ENV !== \"production\" ? '__autocomplete_click_item__' : 9;\nvar blurInput = process.env.NODE_ENV !== \"production\" ? '__autocomplete_blur_input__' : 10;\nvar changeInput = process.env.NODE_ENV !== \"production\" ? '__autocomplete_change_input__' : 11;\nvar keyDownSpaceButton = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_space_button__' : 12;\nvar clickButton = process.env.NODE_ENV !== \"production\" ? '__autocomplete_click_button__' : 13;\nvar blurButton = process.env.NODE_ENV !== \"production\" ? '__autocomplete_blur_button__' : 14;\nvar controlledPropUpdatedSelectedItem = process.env.NODE_ENV !== \"production\" ? '__autocomplete_controlled_prop_updated_selected_item__' : 15;\nvar touchEnd = process.env.NODE_ENV !== \"production\" ? '__autocomplete_touchend__' : 16;\n\nvar stateChangeTypes = /*#__PURE__*/Object.freeze({\n __proto__: null,\n unknown: unknown,\n mouseUp: mouseUp,\n itemMouseEnter: itemMouseEnter,\n keyDownArrowUp: keyDownArrowUp,\n keyDownArrowDown: keyDownArrowDown,\n keyDownEscape: keyDownEscape,\n keyDownEnter: keyDownEnter,\n keyDownHome: keyDownHome,\n keyDownEnd: keyDownEnd,\n clickItem: clickItem,\n blurInput: blurInput,\n changeInput: changeInput,\n keyDownSpaceButton: keyDownSpaceButton,\n clickButton: clickButton,\n blurButton: blurButton,\n controlledPropUpdatedSelectedItem: controlledPropUpdatedSelectedItem,\n touchEnd: touchEnd\n});\n\nvar Downshift =\n/*#__PURE__*/\nfunction () {\n var Downshift =\n /*#__PURE__*/\n function (_Component) {\n _inheritsLoose(Downshift, _Component);\n\n function Downshift(_props) {\n var _this = _Component.call(this, _props) || this;\n\n _this.id = _this.props.id || \"downshift-\" + generateId();\n _this.menuId = _this.props.menuId || _this.id + \"-menu\";\n _this.labelId = _this.props.labelId || _this.id + \"-label\";\n _this.inputId = _this.props.inputId || _this.id + \"-input\";\n\n _this.getItemId = _this.props.getItemId || function (index) {\n return _this.id + \"-item-\" + index;\n };\n\n _this.input = null;\n _this.items = [];\n _this.itemCount = null;\n _this.previousResultCount = 0;\n _this.timeoutIds = [];\n\n _this.internalSetTimeout = function (fn, time) {\n var id = setTimeout(function () {\n _this.timeoutIds = _this.timeoutIds.filter(function (i) {\n return i !== id;\n });\n fn();\n }, time);\n\n _this.timeoutIds.push(id);\n };\n\n _this.setItemCount = function (count) {\n _this.itemCount = count;\n };\n\n _this.unsetItemCount = function () {\n _this.itemCount = null;\n };\n\n _this.setHighlightedIndex = function (highlightedIndex, otherStateToSet) {\n if (highlightedIndex === void 0) {\n highlightedIndex = _this.props.defaultHighlightedIndex;\n }\n\n if (otherStateToSet === void 0) {\n otherStateToSet = {};\n }\n\n otherStateToSet = pickState(otherStateToSet);\n\n _this.internalSetState(_extends({\n highlightedIndex: highlightedIndex\n }, otherStateToSet));\n };\n\n _this.clearSelection = function (cb) {\n _this.internalSetState({\n selectedItem: null,\n inputValue: '',\n highlightedIndex: _this.props.defaultHighlightedIndex,\n isOpen: _this.props.defaultIsOpen\n }, cb);\n };\n\n _this.selectItem = function (item, otherStateToSet, cb) {\n otherStateToSet = pickState(otherStateToSet);\n\n _this.internalSetState(_extends({\n isOpen: _this.props.defaultIsOpen,\n highlightedIndex: _this.props.defaultHighlightedIndex,\n selectedItem: item,\n inputValue: _this.props.itemToString(item)\n }, otherStateToSet), cb);\n };\n\n _this.selectItemAtIndex = function (itemIndex, otherStateToSet, cb) {\n var item = _this.items[itemIndex];\n\n if (item == null) {\n return;\n }\n\n _this.selectItem(item, otherStateToSet, cb);\n };\n\n _this.selectHighlightedItem = function (otherStateToSet, cb) {\n return _this.selectItemAtIndex(_this.getState().highlightedIndex, otherStateToSet, cb);\n };\n\n _this.internalSetState = function (stateToSet, cb) {\n var isItemSelected, onChangeArg;\n var onStateChangeArg = {};\n var isStateToSetFunction = typeof stateToSet === 'function'; // we want to call `onInputValueChange` before the `setState` call\n // so someone controlling the `inputValue` state gets notified of\n // the input change as soon as possible. This avoids issues with\n // preserving the cursor position.\n // See https://github.com/downshift-js/downshift/issues/217 for more info.\n\n if (!isStateToSetFunction && stateToSet.hasOwnProperty('inputValue')) {\n _this.props.onInputValueChange(stateToSet.inputValue, _extends({}, _this.getStateAndHelpers(), {}, stateToSet));\n }\n\n return _this.setState(function (state) {\n state = _this.getState(state);\n var newStateToSet = isStateToSetFunction ? stateToSet(state) : stateToSet; // Your own function that could modify the state that will be set.\n\n newStateToSet = _this.props.stateReducer(state, newStateToSet); // checks if an item is selected, regardless of if it's different from\n // what was selected before\n // used to determine if onSelect and onChange callbacks should be called\n\n isItemSelected = newStateToSet.hasOwnProperty('selectedItem'); // this keeps track of the object we want to call with setState\n\n var nextState = {}; // this is just used to tell whether the state changed\n\n var nextFullState = {}; // we need to call on change if the outside world is controlling any of our state\n // and we're trying to update that state. OR if the selection has changed and we're\n // trying to update the selection\n\n if (isItemSelected && newStateToSet.selectedItem !== state.selectedItem) {\n onChangeArg = newStateToSet.selectedItem;\n }\n\n newStateToSet.type = newStateToSet.type || unknown;\n Object.keys(newStateToSet).forEach(function (key) {\n // onStateChangeArg should only have the state that is\n // actually changing\n if (state[key] !== newStateToSet[key]) {\n onStateChangeArg[key] = newStateToSet[key];\n } // the type is useful for the onStateChangeArg\n // but we don't actually want to set it in internal state.\n // this is an undocumented feature for now... Not all internalSetState\n // calls support it and I'm not certain we want them to yet.\n // But it enables users controlling the isOpen state to know when\n // the isOpen state changes due to mouseup events which is quite handy.\n\n\n if (key === 'type') {\n return;\n }\n\n nextFullState[key] = newStateToSet[key]; // if it's coming from props, then we don't care to set it internally\n\n if (!_this.isControlledProp(key)) {\n nextState[key] = newStateToSet[key];\n }\n }); // if stateToSet is a function, then we weren't able to call onInputValueChange\n // earlier, so we'll call it now that we know what the inputValue state will be.\n\n if (isStateToSetFunction && newStateToSet.hasOwnProperty('inputValue')) {\n _this.props.onInputValueChange(newStateToSet.inputValue, _extends({}, _this.getStateAndHelpers(), {}, newStateToSet));\n }\n\n return nextState;\n }, function () {\n // call the provided callback if it's a function\n cbToCb(cb)(); // only call the onStateChange and onChange callbacks if\n // we have relevant information to pass them.\n\n var hasMoreStateThanType = Object.keys(onStateChangeArg).length > 1;\n\n if (hasMoreStateThanType) {\n _this.props.onStateChange(onStateChangeArg, _this.getStateAndHelpers());\n }\n\n if (isItemSelected) {\n _this.props.onSelect(stateToSet.selectedItem, _this.getStateAndHelpers());\n }\n\n if (onChangeArg !== undefined) {\n _this.props.onChange(onChangeArg, _this.getStateAndHelpers());\n } // this is currently undocumented and therefore subject to change\n // We'll try to not break it, but just be warned.\n\n\n _this.props.onUserAction(onStateChangeArg, _this.getStateAndHelpers());\n });\n };\n\n _this.rootRef = function (node) {\n return _this._rootNode = node;\n };\n\n _this.getRootProps = function (_temp, _temp2) {\n var _extends2;\n\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$refKey = _ref.refKey,\n refKey = _ref$refKey === void 0 ? 'ref' : _ref$refKey,\n ref = _ref.ref,\n rest = _objectWithoutPropertiesLoose(_ref, [\"refKey\", \"ref\"]);\n\n var _ref2 = _temp2 === void 0 ? {} : _temp2,\n _ref2$suppressRefErro = _ref2.suppressRefError,\n suppressRefError = _ref2$suppressRefErro === void 0 ? false : _ref2$suppressRefErro;\n\n // this is used in the render to know whether the user has called getRootProps.\n // It uses that to know whether to apply the props automatically\n _this.getRootProps.called = true;\n _this.getRootProps.refKey = refKey;\n _this.getRootProps.suppressRefError = suppressRefError;\n\n var _this$getState = _this.getState(),\n isOpen = _this$getState.isOpen;\n\n return _extends((_extends2 = {}, _extends2[refKey] = handleRefs(ref, _this.rootRef), _extends2.role = 'combobox', _extends2['aria-expanded'] = isOpen, _extends2['aria-haspopup'] = 'listbox', _extends2['aria-owns'] = isOpen ? _this.menuId : null, _extends2['aria-labelledby'] = _this.labelId, _extends2), rest);\n };\n\n _this.keyDownHandlers = {\n ArrowDown: function ArrowDown(event) {\n var _this2 = this;\n\n event.preventDefault();\n\n if (this.getState().isOpen) {\n var amount = event.shiftKey ? 5 : 1;\n this.moveHighlightedIndex(amount, {\n type: keyDownArrowDown\n });\n } else {\n this.internalSetState({\n isOpen: true,\n type: keyDownArrowDown\n }, function () {\n var itemCount = _this2.getItemCount();\n\n if (itemCount > 0) {\n _this2.setHighlightedIndex(getNextWrappingIndex(1, _this2.getState().highlightedIndex, itemCount), {\n type: keyDownArrowDown\n });\n }\n });\n }\n },\n ArrowUp: function ArrowUp(event) {\n var _this3 = this;\n\n event.preventDefault();\n\n if (this.getState().isOpen) {\n var amount = event.shiftKey ? -5 : -1;\n this.moveHighlightedIndex(amount, {\n type: keyDownArrowUp\n });\n } else {\n this.internalSetState({\n isOpen: true,\n type: keyDownArrowUp\n }, function () {\n var itemCount = _this3.getItemCount();\n\n if (itemCount > 0) {\n _this3.setHighlightedIndex(getNextWrappingIndex(-1, _this3.getState().highlightedIndex, itemCount), {\n type: keyDownArrowDown\n });\n }\n });\n }\n },\n Enter: function Enter(event) {\n var _this$getState2 = this.getState(),\n isOpen = _this$getState2.isOpen,\n highlightedIndex = _this$getState2.highlightedIndex;\n\n if (isOpen && highlightedIndex != null) {\n event.preventDefault();\n var item = this.items[highlightedIndex];\n var itemNode = this.getItemNodeFromIndex(highlightedIndex);\n\n if (item == null || itemNode && itemNode.hasAttribute('disabled')) {\n return;\n }\n\n this.selectHighlightedItem({\n type: keyDownEnter\n });\n }\n },\n Escape: function Escape(event) {\n event.preventDefault();\n this.reset({\n type: keyDownEscape,\n selectedItem: null,\n inputValue: ''\n });\n }\n };\n _this.buttonKeyDownHandlers = _extends({}, _this.keyDownHandlers, {\n ' ': function _(event) {\n event.preventDefault();\n this.toggleMenu({\n type: keyDownSpaceButton\n });\n }\n });\n _this.inputKeyDownHandlers = _extends({}, _this.keyDownHandlers, {\n Home: function Home(event) {\n this.highlightFirstOrLastIndex(event, true, {\n type: keyDownHome\n });\n },\n End: function End(event) {\n this.highlightFirstOrLastIndex(event, false, {\n type: keyDownEnd\n });\n }\n });\n\n _this.getToggleButtonProps = function (_temp3) {\n var _ref3 = _temp3 === void 0 ? {} : _temp3,\n onClick = _ref3.onClick,\n onPress = _ref3.onPress,\n onKeyDown = _ref3.onKeyDown,\n onKeyUp = _ref3.onKeyUp,\n onBlur = _ref3.onBlur,\n rest = _objectWithoutPropertiesLoose(_ref3, [\"onClick\", \"onPress\", \"onKeyDown\", \"onKeyUp\", \"onBlur\"]);\n\n var _this$getState3 = _this.getState(),\n isOpen = _this$getState3.isOpen;\n\n var enabledEventHandlers = {\n onClick: callAllEventHandlers(onClick, _this.buttonHandleClick),\n onKeyDown: callAllEventHandlers(onKeyDown, _this.buttonHandleKeyDown),\n onKeyUp: callAllEventHandlers(onKeyUp, _this.buttonHandleKeyUp),\n onBlur: callAllEventHandlers(onBlur, _this.buttonHandleBlur)\n };\n var eventHandlers = rest.disabled ? {} : enabledEventHandlers;\n return _extends({\n type: 'button',\n role: 'button',\n 'aria-label': isOpen ? 'close menu' : 'open menu',\n 'aria-haspopup': true,\n 'data-toggle': true\n }, eventHandlers, {}, rest);\n };\n\n _this.buttonHandleKeyUp = function (event) {\n // Prevent click event from emitting in Firefox\n event.preventDefault();\n };\n\n _this.buttonHandleKeyDown = function (event) {\n var key = normalizeArrowKey(event);\n\n if (_this.buttonKeyDownHandlers[key]) {\n _this.buttonKeyDownHandlers[key].call(_assertThisInitialized(_this), event);\n }\n };\n\n _this.buttonHandleClick = function (event) {\n event.preventDefault(); // handle odd case for Safari and Firefox which\n // don't give the button the focus properly.\n\n /* istanbul ignore if (can't reasonably test this) */\n\n if ( _this.props.environment.document.activeElement === _this.props.environment.document.body) {\n event.target.focus();\n } // to simplify testing components that use downshift, we'll not wrap this in a setTimeout\n // if the NODE_ENV is test. With the proper build system, this should be dead code eliminated\n // when building for production and should therefore have no impact on production code.\n\n\n if (process.env.NODE_ENV === 'test') {\n _this.toggleMenu({\n type: clickButton\n });\n } else {\n // Ensure that toggle of menu occurs after the potential blur event in iOS\n _this.internalSetTimeout(function () {\n return _this.toggleMenu({\n type: clickButton\n });\n });\n }\n };\n\n _this.buttonHandleBlur = function (event) {\n var blurTarget = event.target; // Save blur target for comparison with activeElement later\n // Need setTimeout, so that when the user presses Tab, the activeElement is the next focused element, not body element\n\n _this.internalSetTimeout(function () {\n if (!_this.isMouseDown && (_this.props.environment.document.activeElement == null || _this.props.environment.document.activeElement.id !== _this.inputId) && _this.props.environment.document.activeElement !== blurTarget // Do nothing if we refocus the same element again (to solve issue in Safari on iOS)\n ) {\n _this.reset({\n type: blurButton\n });\n }\n });\n };\n\n _this.getLabelProps = function (props) {\n return _extends({\n htmlFor: _this.inputId,\n id: _this.labelId\n }, props);\n };\n\n _this.getInputProps = function (_temp4) {\n var _ref4 = _temp4 === void 0 ? {} : _temp4,\n onKeyDown = _ref4.onKeyDown,\n onBlur = _ref4.onBlur,\n onChange = _ref4.onChange,\n onInput = _ref4.onInput,\n onChangeText = _ref4.onChangeText,\n rest = _objectWithoutPropertiesLoose(_ref4, [\"onKeyDown\", \"onBlur\", \"onChange\", \"onInput\", \"onChangeText\"]);\n\n var onChangeKey;\n var eventHandlers = {};\n /* istanbul ignore next (preact) */\n\n onChangeKey = 'onChange';\n\n var _this$getState4 = _this.getState(),\n inputValue = _this$getState4.inputValue,\n isOpen = _this$getState4.isOpen,\n highlightedIndex = _this$getState4.highlightedIndex;\n\n if (!rest.disabled) {\n var _eventHandlers;\n\n eventHandlers = (_eventHandlers = {}, _eventHandlers[onChangeKey] = callAllEventHandlers(onChange, onInput, _this.inputHandleChange), _eventHandlers.onKeyDown = callAllEventHandlers(onKeyDown, _this.inputHandleKeyDown), _eventHandlers.onBlur = callAllEventHandlers(onBlur, _this.inputHandleBlur), _eventHandlers);\n }\n /* istanbul ignore if (react-native) */\n\n\n return _extends({\n 'aria-autocomplete': 'list',\n 'aria-activedescendant': isOpen && typeof highlightedIndex === 'number' && highlightedIndex >= 0 ? _this.getItemId(highlightedIndex) : null,\n 'aria-controls': isOpen ? _this.menuId : null,\n 'aria-labelledby': _this.labelId,\n // https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion\n // revert back since autocomplete=\"nope\" is ignored on latest Chrome and Opera\n autoComplete: 'off',\n value: inputValue,\n id: _this.inputId\n }, eventHandlers, {}, rest);\n };\n\n _this.inputHandleKeyDown = function (event) {\n var key = normalizeArrowKey(event);\n\n if (key && _this.inputKeyDownHandlers[key]) {\n _this.inputKeyDownHandlers[key].call(_assertThisInitialized(_this), event);\n }\n };\n\n _this.inputHandleChange = function (event) {\n _this.internalSetState({\n type: changeInput,\n isOpen: true,\n inputValue: event.target.value,\n highlightedIndex: _this.props.defaultHighlightedIndex\n });\n };\n\n _this.inputHandleBlur = function () {\n // Need setTimeout, so that when the user presses Tab, the activeElement is the next focused element, not the body element\n _this.internalSetTimeout(function () {\n var downshiftButtonIsActive = _this.props.environment.document && !!_this.props.environment.document.activeElement && !!_this.props.environment.document.activeElement.dataset && _this.props.environment.document.activeElement.dataset.toggle && _this._rootNode && _this._rootNode.contains(_this.props.environment.document.activeElement);\n\n if (!_this.isMouseDown && !downshiftButtonIsActive) {\n _this.reset({\n type: blurInput\n });\n }\n });\n };\n\n _this.menuRef = function (node) {\n _this._menuNode = node;\n };\n\n _this.getMenuProps = function (_temp5, _temp6) {\n var _extends3;\n\n var _ref5 = _temp5 === void 0 ? {} : _temp5,\n _ref5$refKey = _ref5.refKey,\n refKey = _ref5$refKey === void 0 ? 'ref' : _ref5$refKey,\n ref = _ref5.ref,\n props = _objectWithoutPropertiesLoose(_ref5, [\"refKey\", \"ref\"]);\n\n var _ref6 = _temp6 === void 0 ? {} : _temp6,\n _ref6$suppressRefErro = _ref6.suppressRefError,\n suppressRefError = _ref6$suppressRefErro === void 0 ? false : _ref6$suppressRefErro;\n\n _this.getMenuProps.called = true;\n _this.getMenuProps.refKey = refKey;\n _this.getMenuProps.suppressRefError = suppressRefError;\n return _extends((_extends3 = {}, _extends3[refKey] = handleRefs(ref, _this.menuRef), _extends3.role = 'listbox', _extends3['aria-labelledby'] = props && props['aria-label'] ? null : _this.labelId, _extends3.id = _this.menuId, _extends3), props);\n };\n\n _this.getItemProps = function (_temp7) {\n var _enabledEventHandlers;\n\n var _ref7 = _temp7 === void 0 ? {} : _temp7,\n onMouseMove = _ref7.onMouseMove,\n onMouseDown = _ref7.onMouseDown,\n onClick = _ref7.onClick,\n onPress = _ref7.onPress,\n index = _ref7.index,\n _ref7$item = _ref7.item,\n item = _ref7$item === void 0 ? process.env.NODE_ENV === 'production' ?\n /* istanbul ignore next */\n undefined : requiredProp('getItemProps', 'item') : _ref7$item,\n rest = _objectWithoutPropertiesLoose(_ref7, [\"onMouseMove\", \"onMouseDown\", \"onClick\", \"onPress\", \"index\", \"item\"]);\n\n if (index === undefined) {\n _this.items.push(item);\n\n index = _this.items.indexOf(item);\n } else {\n _this.items[index] = item;\n }\n\n var onSelectKey = 'onClick';\n var customClickHandler = onClick;\n var enabledEventHandlers = (_enabledEventHandlers = {\n // onMouseMove is used over onMouseEnter here. onMouseMove\n // is only triggered on actual mouse movement while onMouseEnter\n // can fire on DOM changes, interrupting keyboard navigation\n onMouseMove: callAllEventHandlers(onMouseMove, function () {\n if (index === _this.getState().highlightedIndex) {\n return;\n }\n\n _this.setHighlightedIndex(index, {\n type: itemMouseEnter\n }); // We never want to manually scroll when changing state based\n // on `onMouseMove` because we will be moving the element out\n // from under the user which is currently scrolling/moving the\n // cursor\n\n\n _this.avoidScrolling = true;\n\n _this.internalSetTimeout(function () {\n return _this.avoidScrolling = false;\n }, 250);\n }),\n onMouseDown: callAllEventHandlers(onMouseDown, function (event) {\n // This prevents the activeElement from being changed\n // to the item so it can remain with the current activeElement\n // which is a more common use case.\n event.preventDefault();\n })\n }, _enabledEventHandlers[onSelectKey] = callAllEventHandlers(customClickHandler, function () {\n _this.selectItemAtIndex(index, {\n type: clickItem\n });\n }), _enabledEventHandlers); // Passing down the onMouseDown handler to prevent redirect\n // of the activeElement if clicking on disabled items\n\n var eventHandlers = rest.disabled ? {\n onMouseDown: enabledEventHandlers.onMouseDown\n } : enabledEventHandlers;\n return _extends({\n id: _this.getItemId(index),\n role: 'option',\n 'aria-selected': _this.getState().highlightedIndex === index\n }, eventHandlers, {}, rest);\n };\n\n _this.clearItems = function () {\n _this.items = [];\n };\n\n _this.reset = function (otherStateToSet, cb) {\n if (otherStateToSet === void 0) {\n otherStateToSet = {};\n }\n\n otherStateToSet = pickState(otherStateToSet);\n\n _this.internalSetState(function (_ref8) {\n var selectedItem = _ref8.selectedItem;\n return _extends({\n isOpen: _this.props.defaultIsOpen,\n highlightedIndex: _this.props.defaultHighlightedIndex,\n inputValue: _this.props.itemToString(selectedItem)\n }, otherStateToSet);\n }, cb);\n };\n\n _this.toggleMenu = function (otherStateToSet, cb) {\n if (otherStateToSet === void 0) {\n otherStateToSet = {};\n }\n\n otherStateToSet = pickState(otherStateToSet);\n\n _this.internalSetState(function (_ref9) {\n var isOpen = _ref9.isOpen;\n return _extends({\n isOpen: !isOpen\n }, isOpen && {\n highlightedIndex: _this.props.defaultHighlightedIndex\n }, {}, otherStateToSet);\n }, function () {\n var _this$getState5 = _this.getState(),\n isOpen = _this$getState5.isOpen,\n highlightedIndex = _this$getState5.highlightedIndex;\n\n if (isOpen) {\n if (_this.getItemCount() > 0 && typeof highlightedIndex === 'number') {\n _this.setHighlightedIndex(highlightedIndex, otherStateToSet);\n }\n }\n\n cbToCb(cb)();\n });\n };\n\n _this.openMenu = function (cb) {\n _this.internalSetState({\n isOpen: true\n }, cb);\n };\n\n _this.closeMenu = function (cb) {\n _this.internalSetState({\n isOpen: false\n }, cb);\n };\n\n _this.updateStatus = debounce(function () {\n var state = _this.getState();\n\n var item = _this.items[state.highlightedIndex];\n\n var resultCount = _this.getItemCount();\n\n var status = _this.props.getA11yStatusMessage(_extends({\n itemToString: _this.props.itemToString,\n previousResultCount: _this.previousResultCount,\n resultCount: resultCount,\n highlightedItem: item\n }, state));\n\n _this.previousResultCount = resultCount;\n setStatus(status, _this.props.environment.document);\n }, 200);\n\n // fancy destructuring + defaults + aliases\n // this basically says each value of state should either be set to\n // the initial value or the default value if the initial value is not provided\n var _this$props = _this.props,\n defaultHighlightedIndex = _this$props.defaultHighlightedIndex,\n _this$props$initialHi = _this$props.initialHighlightedIndex,\n _highlightedIndex = _this$props$initialHi === void 0 ? defaultHighlightedIndex : _this$props$initialHi,\n defaultIsOpen = _this$props.defaultIsOpen,\n _this$props$initialIs = _this$props.initialIsOpen,\n _isOpen = _this$props$initialIs === void 0 ? defaultIsOpen : _this$props$initialIs,\n _this$props$initialIn = _this$props.initialInputValue,\n _inputValue = _this$props$initialIn === void 0 ? '' : _this$props$initialIn,\n _this$props$initialSe = _this$props.initialSelectedItem,\n _selectedItem = _this$props$initialSe === void 0 ? null : _this$props$initialSe;\n\n var _state = _this.getState({\n highlightedIndex: _highlightedIndex,\n isOpen: _isOpen,\n inputValue: _inputValue,\n selectedItem: _selectedItem\n });\n\n if (_state.selectedItem != null && _this.props.initialInputValue === undefined) {\n _state.inputValue = _this.props.itemToString(_state.selectedItem);\n }\n\n _this.state = _state;\n return _this;\n }\n\n var _proto = Downshift.prototype;\n\n /**\n * Clear all running timeouts\n */\n _proto.internalClearTimeouts = function internalClearTimeouts() {\n this.timeoutIds.forEach(function (id) {\n clearTimeout(id);\n });\n this.timeoutIds = [];\n }\n /**\n * Gets the state based on internal state or props\n * If a state value is passed via props, then that\n * is the value given, otherwise it's retrieved from\n * stateToMerge\n *\n * This will perform a shallow merge of the given state object\n * with the state coming from props\n * (for the controlled component scenario)\n * This is used in state updater functions so they're referencing\n * the right state regardless of where it comes from.\n *\n * @param {Object} stateToMerge defaults to this.state\n * @return {Object} the state\n */\n ;\n\n _proto.getState = function getState(stateToMerge) {\n var _this4 = this;\n\n if (stateToMerge === void 0) {\n stateToMerge = this.state;\n }\n\n return Object.keys(stateToMerge).reduce(function (state, key) {\n state[key] = _this4.isControlledProp(key) ? _this4.props[key] : stateToMerge[key];\n return state;\n }, {});\n }\n /**\n * This determines whether a prop is a \"controlled prop\" meaning it is\n * state which is controlled by the outside of this component rather\n * than within this component.\n * @param {String} key the key to check\n * @return {Boolean} whether it is a controlled controlled prop\n */\n ;\n\n _proto.isControlledProp = function isControlledProp(key) {\n return this.props[key] !== undefined;\n };\n\n _proto.getItemCount = function getItemCount() {\n // things read better this way. They're in priority order:\n // 1. `this.itemCount`\n // 2. `this.props.itemCount`\n // 3. `this.items.length`\n var itemCount = this.items.length;\n\n if (this.itemCount != null) {\n itemCount = this.itemCount;\n } else if (this.props.itemCount !== undefined) {\n itemCount = this.props.itemCount;\n }\n\n return itemCount;\n };\n\n _proto.getItemNodeFromIndex = function getItemNodeFromIndex(index) {\n return this.props.environment.document.getElementById(this.getItemId(index));\n };\n\n _proto.scrollHighlightedItemIntoView = function scrollHighlightedItemIntoView() {\n /* istanbul ignore else (react-native) */\n {\n var node = this.getItemNodeFromIndex(this.getState().highlightedIndex);\n this.props.scrollIntoView(node, this._menuNode);\n }\n };\n\n _proto.moveHighlightedIndex = function moveHighlightedIndex(amount, otherStateToSet) {\n var itemCount = this.getItemCount();\n\n if (itemCount > 0) {\n var nextHighlightedIndex = getNextWrappingIndex(amount, this.getState().highlightedIndex, itemCount);\n this.setHighlightedIndex(nextHighlightedIndex, otherStateToSet);\n }\n };\n\n _proto.highlightFirstOrLastIndex = function highlightFirstOrLastIndex(event, first, otherStateToSet) {\n var itemsLastIndex = this.getItemCount() - 1;\n\n if (itemsLastIndex < 0 || !this.getState().isOpen) {\n return;\n }\n\n event.preventDefault();\n this.setHighlightedIndex(first ? 0 : itemsLastIndex, otherStateToSet);\n };\n\n _proto.getStateAndHelpers = function getStateAndHelpers() {\n var _this$getState6 = this.getState(),\n highlightedIndex = _this$getState6.highlightedIndex,\n inputValue = _this$getState6.inputValue,\n selectedItem = _this$getState6.selectedItem,\n isOpen = _this$getState6.isOpen;\n\n var itemToString = this.props.itemToString;\n var id = this.id;\n var getRootProps = this.getRootProps,\n getToggleButtonProps = this.getToggleButtonProps,\n getLabelProps = this.getLabelProps,\n getMenuProps = this.getMenuProps,\n getInputProps = this.getInputProps,\n getItemProps = this.getItemProps,\n openMenu = this.openMenu,\n closeMenu = this.closeMenu,\n toggleMenu = this.toggleMenu,\n selectItem = this.selectItem,\n selectItemAtIndex = this.selectItemAtIndex,\n selectHighlightedItem = this.selectHighlightedItem,\n setHighlightedIndex = this.setHighlightedIndex,\n clearSelection = this.clearSelection,\n clearItems = this.clearItems,\n reset = this.reset,\n setItemCount = this.setItemCount,\n unsetItemCount = this.unsetItemCount,\n setState = this.internalSetState;\n return {\n // prop getters\n getRootProps: getRootProps,\n getToggleButtonProps: getToggleButtonProps,\n getLabelProps: getLabelProps,\n getMenuProps: getMenuProps,\n getInputProps: getInputProps,\n getItemProps: getItemProps,\n // actions\n reset: reset,\n openMenu: openMenu,\n closeMenu: closeMenu,\n toggleMenu: toggleMenu,\n selectItem: selectItem,\n selectItemAtIndex: selectItemAtIndex,\n selectHighlightedItem: selectHighlightedItem,\n setHighlightedIndex: setHighlightedIndex,\n clearSelection: clearSelection,\n clearItems: clearItems,\n setItemCount: setItemCount,\n unsetItemCount: unsetItemCount,\n setState: setState,\n // props\n itemToString: itemToString,\n // derived\n id: id,\n // state\n highlightedIndex: highlightedIndex,\n inputValue: inputValue,\n isOpen: isOpen,\n selectedItem: selectedItem\n };\n } //////////////////////////// ROOT\n ;\n\n _proto.componentDidMount = function componentDidMount() {\n var _this5 = this;\n\n /* istanbul ignore if (react-native) */\n if (process.env.NODE_ENV !== 'production' && !false && this.getMenuProps.called && !this.getMenuProps.suppressRefError) {\n validateGetMenuPropsCalledCorrectly(this._menuNode, this.getMenuProps);\n }\n /* istanbul ignore if (react-native) */\n\n\n {\n var targetWithinDownshift = function (target, checkActiveElement) {\n if (checkActiveElement === void 0) {\n checkActiveElement = true;\n }\n\n var document = _this5.props.environment.document;\n return [_this5._rootNode, _this5._menuNode].some(function (contextNode) {\n return contextNode && (isOrContainsNode(contextNode, target) || checkActiveElement && isOrContainsNode(contextNode, document.activeElement));\n });\n }; // this.isMouseDown helps us track whether the mouse is currently held down.\n // This is useful when the user clicks on an item in the list, but holds the mouse\n // down long enough for the list to disappear (because the blur event fires on the input)\n // this.isMouseDown is used in the blur handler on the input to determine whether the blur event should\n // trigger hiding the menu.\n\n\n var onMouseDown = function () {\n _this5.isMouseDown = true;\n };\n\n var onMouseUp = function (event) {\n _this5.isMouseDown = false; // if the target element or the activeElement is within a downshift node\n // then we don't want to reset downshift\n\n var contextWithinDownshift = targetWithinDownshift(event.target);\n\n if (!contextWithinDownshift && _this5.getState().isOpen) {\n _this5.reset({\n type: mouseUp\n }, function () {\n return _this5.props.onOuterClick(_this5.getStateAndHelpers());\n });\n }\n }; // Touching an element in iOS gives focus and hover states, but touching out of\n // the element will remove hover, and persist the focus state, resulting in the\n // blur event not being triggered.\n // this.isTouchMove helps us track whether the user is tapping or swiping on a touch screen.\n // If the user taps outside of Downshift, the component should be reset,\n // but not if the user is swiping\n\n\n var onTouchStart = function () {\n _this5.isTouchMove = false;\n };\n\n var onTouchMove = function () {\n _this5.isTouchMove = true;\n };\n\n var onTouchEnd = function (event) {\n var contextWithinDownshift = targetWithinDownshift(event.target, false);\n\n if (!_this5.isTouchMove && !contextWithinDownshift && _this5.getState().isOpen) {\n _this5.reset({\n type: touchEnd\n }, function () {\n return _this5.props.onOuterClick(_this5.getStateAndHelpers());\n });\n }\n };\n\n var environment = this.props.environment;\n environment.addEventListener('mousedown', onMouseDown);\n environment.addEventListener('mouseup', onMouseUp);\n environment.addEventListener('touchstart', onTouchStart);\n environment.addEventListener('touchmove', onTouchMove);\n environment.addEventListener('touchend', onTouchEnd);\n\n this.cleanup = function () {\n _this5.internalClearTimeouts();\n\n _this5.updateStatus.cancel();\n\n environment.removeEventListener('mousedown', onMouseDown);\n environment.removeEventListener('mouseup', onMouseUp);\n environment.removeEventListener('touchstart', onTouchStart);\n environment.removeEventListener('touchmove', onTouchMove);\n environment.removeEventListener('touchend', onTouchEnd);\n };\n }\n };\n\n _proto.shouldScroll = function shouldScroll(prevState, prevProps) {\n var _ref10 = this.props.highlightedIndex === undefined ? this.getState() : this.props,\n currentHighlightedIndex = _ref10.highlightedIndex;\n\n var _ref11 = prevProps.highlightedIndex === undefined ? prevState : prevProps,\n prevHighlightedIndex = _ref11.highlightedIndex;\n\n var scrollWhenOpen = currentHighlightedIndex && this.getState().isOpen && !prevState.isOpen;\n return scrollWhenOpen || currentHighlightedIndex !== prevHighlightedIndex;\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (process.env.NODE_ENV !== 'production') {\n validateControlledUnchanged(prevProps, this.props);\n /* istanbul ignore if (react-native) */\n\n if ( this.getMenuProps.called && !this.getMenuProps.suppressRefError) {\n validateGetMenuPropsCalledCorrectly(this._menuNode, this.getMenuProps);\n }\n }\n\n if (this.isControlledProp('selectedItem') && this.props.selectedItemChanged(prevProps.selectedItem, this.props.selectedItem)) {\n this.internalSetState({\n type: controlledPropUpdatedSelectedItem,\n inputValue: this.props.itemToString(this.props.selectedItem)\n });\n }\n\n if (!this.avoidScrolling && this.shouldScroll(prevState, prevProps)) {\n this.scrollHighlightedItemIntoView();\n }\n /* istanbul ignore else (react-native) */\n\n\n this.updateStatus();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cleanup(); // avoids memory leak\n };\n\n _proto.render = function render() {\n var children = unwrapArray(this.props.children, noop); // because the items are rerendered every time we call the children\n // we clear this out each render and it will be populated again as\n // getItemProps is called.\n\n this.clearItems(); // we reset this so we know whether the user calls getRootProps during\n // this render. If they do then we don't need to do anything,\n // if they don't then we need to clone the element they return and\n // apply the props for them.\n\n this.getRootProps.called = false;\n this.getRootProps.refKey = undefined;\n this.getRootProps.suppressRefError = undefined; // we do something similar for getMenuProps\n\n this.getMenuProps.called = false;\n this.getMenuProps.refKey = undefined;\n this.getMenuProps.suppressRefError = undefined; // we do something similar for getLabelProps\n\n this.getLabelProps.called = false; // and something similar for getInputProps\n\n this.getInputProps.called = false;\n var element = unwrapArray(children(this.getStateAndHelpers()));\n\n if (!element) {\n return null;\n }\n\n if (this.getRootProps.called || this.props.suppressRefError) {\n if (process.env.NODE_ENV !== 'production' && !this.getRootProps.suppressRefError && !this.props.suppressRefError) {\n validateGetRootPropsCalledCorrectly(element, this.getRootProps);\n }\n\n return element;\n } else if (isDOMElement(element)) {\n // they didn't apply the root props, but we can clone\n // this and apply the props ourselves\n return cloneElement(element, this.getRootProps(getElementProps(element)));\n }\n /* istanbul ignore else */\n\n\n if (process.env.NODE_ENV !== 'production') {\n // they didn't apply the root props, but they need to\n // otherwise we can't query around the autocomplete\n throw new Error('downshift: If you return a non-DOM element, you must apply the getRootProps function');\n }\n /* istanbul ignore next */\n\n\n return undefined;\n };\n\n return Downshift;\n }(Component);\n\n Downshift.defaultProps = {\n defaultHighlightedIndex: null,\n defaultIsOpen: false,\n getA11yStatusMessage: getA11yStatusMessage,\n itemToString: function itemToString(i) {\n if (i == null) {\n return '';\n }\n\n if (process.env.NODE_ENV !== 'production' && isPlainObject(i) && !i.hasOwnProperty('toString')) {\n // eslint-disable-next-line no-console\n console.warn('downshift: An object was passed to the default implementation of `itemToString`. You should probably provide your own `itemToString` implementation. Please refer to the `itemToString` API documentation.', 'The object that was passed:', i);\n }\n\n return String(i);\n },\n onStateChange: noop,\n onInputValueChange: noop,\n onUserAction: noop,\n onChange: noop,\n onSelect: noop,\n onOuterClick: noop,\n selectedItemChanged: function selectedItemChanged(prevItem, item) {\n return prevItem !== item;\n },\n environment: typeof window === 'undefined'\n /* istanbul ignore next (ssr) */\n ? {} : window,\n stateReducer: function stateReducer(state, stateToSet) {\n return stateToSet;\n },\n suppressRefError: false,\n scrollIntoView: scrollIntoView\n };\n Downshift.stateChangeTypes = stateChangeTypes;\n return Downshift;\n}();\n\nprocess.env.NODE_ENV !== \"production\" ? Downshift.propTypes = {\n children: PropTypes.func,\n defaultHighlightedIndex: PropTypes.number,\n defaultIsOpen: PropTypes.bool,\n initialHighlightedIndex: PropTypes.number,\n initialSelectedItem: PropTypes.any,\n initialInputValue: PropTypes.string,\n initialIsOpen: PropTypes.bool,\n getA11yStatusMessage: PropTypes.func,\n itemToString: PropTypes.func,\n onChange: PropTypes.func,\n onSelect: PropTypes.func,\n onStateChange: PropTypes.func,\n onInputValueChange: PropTypes.func,\n onUserAction: PropTypes.func,\n onOuterClick: PropTypes.func,\n selectedItemChanged: PropTypes.func,\n stateReducer: PropTypes.func,\n itemCount: PropTypes.number,\n id: PropTypes.string,\n environment: PropTypes.shape({\n addEventListener: PropTypes.func,\n removeEventListener: PropTypes.func,\n document: PropTypes.shape({\n getElementById: PropTypes.func,\n activeElement: PropTypes.any,\n body: PropTypes.any\n })\n }),\n suppressRefError: PropTypes.bool,\n scrollIntoView: PropTypes.func,\n // things we keep in state for uncontrolled components\n // but can accept as props for controlled components\n\n /* eslint-disable react/no-unused-prop-types */\n selectedItem: PropTypes.any,\n isOpen: PropTypes.bool,\n inputValue: PropTypes.string,\n highlightedIndex: PropTypes.number,\n labelId: PropTypes.string,\n inputId: PropTypes.string,\n menuId: PropTypes.string,\n getItemId: PropTypes.func\n /* eslint-enable react/no-unused-prop-types */\n\n} : void 0;\n\nfunction validateGetMenuPropsCalledCorrectly(node, _ref12) {\n var refKey = _ref12.refKey;\n\n if (!node) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: The ref prop \\\"\" + refKey + \"\\\" from getMenuProps was not applied correctly on your menu element.\");\n }\n}\n\nfunction validateGetRootPropsCalledCorrectly(element, _ref13) {\n var refKey = _ref13.refKey;\n var refKeySpecified = refKey !== 'ref';\n var isComposite = !isDOMElement(element);\n\n if (isComposite && !refKeySpecified && !isForwardRef(element)) {\n // eslint-disable-next-line no-console\n console.error('downshift: You returned a non-DOM element. You must specify a refKey in getRootProps');\n } else if (!isComposite && refKeySpecified) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: You returned a DOM element. You should not specify a refKey in getRootProps. You specified \\\"\" + refKey + \"\\\"\");\n }\n\n if (!isForwardRef(element) && !getElementProps(element)[refKey]) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: You must apply the ref prop \\\"\" + refKey + \"\\\" from getRootProps onto your root element.\");\n }\n}\n\nfunction validateControlledUnchanged(prevProps, nextProps) {\n var warningDescription = \"This prop should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled Downshift element for the lifetime of the component. More info: https://github.com/downshift-js/downshift#control-props\";\n ['selectedItem', 'isOpen', 'inputValue', 'highlightedIndex'].forEach(function (propKey) {\n if (prevProps[propKey] !== undefined && nextProps[propKey] === undefined) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: A component has changed the controlled prop \\\"\" + propKey + \"\\\" to be uncontrolled. \" + warningDescription);\n } else if (prevProps[propKey] === undefined && nextProps[propKey] !== undefined) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: A component has changed the uncontrolled prop \\\"\" + propKey + \"\\\" to be controlled. \" + warningDescription);\n }\n });\n}\n\nfunction getElementIds(generateDefaultId, _temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n id = _ref.id,\n labelId = _ref.labelId,\n menuId = _ref.menuId,\n getItemId = _ref.getItemId,\n toggleButtonId = _ref.toggleButtonId;\n\n var uniqueId = id === undefined ? \"downshift-\" + generateDefaultId() : id;\n return {\n labelId: labelId || uniqueId + \"-label\",\n menuId: menuId || uniqueId + \"-menu\",\n getItemId: getItemId || function (index) {\n return uniqueId + \"-item-\" + index;\n },\n toggleButtonId: toggleButtonId || uniqueId + \"-toggle-button\"\n };\n}\n\nfunction getNextWrappingIndex$1(moveAmount, baseIndex, itemsLength, circular) {\n if (baseIndex === -1) {\n return moveAmount > 0 ? 0 : itemsLength - 1;\n }\n\n var nextIndex = baseIndex + moveAmount;\n\n if (nextIndex < 0) {\n return circular ? itemsLength - 1 : 0;\n }\n\n if (nextIndex >= itemsLength) {\n return circular ? 0 : itemsLength - 1;\n }\n\n return nextIndex;\n}\n\nfunction getItemIndexByCharacterKey(keysSoFar, highlightedIndex, items, itemToStringParam) {\n var newHighlightedIndex = -1;\n var itemStrings = items.map(function (item) {\n return itemToStringParam(item).toLowerCase();\n });\n var startPosition = highlightedIndex + 1;\n newHighlightedIndex = itemStrings.slice(startPosition).findIndex(function (itemString) {\n return itemString.startsWith(keysSoFar);\n });\n\n if (newHighlightedIndex > -1) {\n return newHighlightedIndex + startPosition;\n } else {\n return itemStrings.slice(0, startPosition).findIndex(function (itemString) {\n return itemString.startsWith(keysSoFar);\n });\n }\n}\n\nfunction getState(state, props) {\n return Object.keys(state).reduce(function (prevState, key) {\n // eslint-disable-next-line no-param-reassign\n prevState[key] = key in props ? props[key] : state[key];\n return prevState;\n }, {});\n}\n\nfunction getItemIndex(index, item, items) {\n if (index !== undefined) {\n return index;\n }\n\n if (items.length === 0) {\n return -1;\n }\n\n return items.indexOf(item);\n}\n\nfunction itemToString(item) {\n return item ? String(item) : '';\n}\n\nfunction getPropTypesValidator(caller, propTypes) {\n // istanbul ignore next\n return function (options) {\n if (options === void 0) {\n options = {};\n }\n\n Object.entries(propTypes).forEach(function (_ref2) {\n var key = _ref2[0];\n PropTypes.checkPropTypes(propTypes, options, key, caller.name);\n });\n };\n}\n\nfunction isAcceptedCharacterKey(key) {\n return /^\\S{1}$/.test(key);\n}\n\nfunction capitalizeString(string) {\n return \"\" + string.slice(0, 1).toUpperCase() + string.slice(1);\n}\n\nfunction invokeOnChangeHandler(propKey, props, state, changes) {\n var handler = \"on\" + capitalizeString(propKey) + \"Change\";\n\n if (props[handler] && changes[propKey] !== undefined && changes[propKey] !== state[propKey]) {\n props[handler](changes);\n }\n}\n\nfunction callOnChangeProps(props, state, changes) {\n Object.keys(state).forEach(function (stateKey) {\n invokeOnChangeHandler(stateKey, props, state, changes);\n });\n\n if (props.onStateChange && changes !== undefined) {\n props.onStateChange(changes);\n }\n}\n\nfunction useEnhancedReducer(reducer, initialState, props) {\n var enhancedReducer = useCallback(function (state, action) {\n state = getState(state, action.props);\n var stateReducer = action.props.stateReducer;\n var changes = reducer(state, action);\n var newState = stateReducer(state, _extends({}, action, {\n changes: changes\n }));\n callOnChangeProps(action.props, state, newState);\n return newState;\n }, [reducer]);\n\n var _useReducer = useReducer(enhancedReducer, initialState),\n state = _useReducer[0],\n dispatch = _useReducer[1];\n\n return [getState(state, props), dispatch];\n}\n\nvar lastId = 0; // istanbul ignore next\n\nvar genId = function () {\n return ++lastId;\n};\n/**\n * Autogenerate IDs to facilitate WAI-ARIA and server rendering.\n * Taken from @reach/auto-id\n * @see https://github.com/reach/reach-ui/blob/6e9dbcf716d5c9a3420e062e5bac1ac4671d01cb/packages/auto-id/src/index.js\n */\n// istanbul ignore next\n\n\nfunction useId() {\n var _useState = useState(null),\n id = _useState[0],\n setId = _useState[1];\n\n useEffect(function () {\n return setId(genId());\n }, []);\n return id;\n}\n/**\n * Checks if nextElement receives focus after the blur event.\n *\n * @param {FocusEvent} event The blur event.\n * @param {Element} nextElement The element to check that receive focus next.\n * @returns {boolean} If the focus lands on nextElement.\n */\n\n\nfunction focusLandsOnElement(event, nextElement) {\n return event.relatedTarget === nextElement || // https://github.com/downshift-js/downshift/issues/832 - workaround for Firefox.\n event.nativeEvent && (nextElement === event.nativeEvent.explicitOriginalTarget || nextElement.contains(event.nativeEvent.explicitOriginalTarget));\n}\n\nvar defaultStateValues = {\n highlightedIndex: -1,\n isOpen: false,\n selectedItem: null\n};\n\nfunction getA11yStatusMessage$1(_ref) {\n var isOpen = _ref.isOpen,\n items = _ref.items;\n\n if (!items) {\n return '';\n }\n\n var resultCount = items.length;\n\n if (isOpen) {\n if (resultCount === 0) {\n return 'No results are available';\n }\n\n return resultCount + \" result\" + (resultCount === 1 ? ' is' : 's are') + \" available, use up and down arrow keys to navigate. Press Enter key to select.\";\n }\n\n return '';\n}\n\nfunction getA11ySelectionMessage(_ref2) {\n var selectedItem = _ref2.selectedItem,\n itemToString = _ref2.itemToString;\n return itemToString(selectedItem) + \" has been selected.\";\n}\n\nfunction getHighlightedIndexOnOpen(props, state, offset) {\n var items = props.items,\n initialHighlightedIndex = props.initialHighlightedIndex,\n defaultHighlightedIndex = props.defaultHighlightedIndex;\n var selectedItem = state.selectedItem,\n highlightedIndex = state.highlightedIndex; // initialHighlightedIndex will give value to highlightedIndex on initial state only.\n\n if (initialHighlightedIndex !== undefined && highlightedIndex > -1) {\n return initialHighlightedIndex;\n }\n\n if (defaultHighlightedIndex !== undefined) {\n return defaultHighlightedIndex;\n }\n\n if (selectedItem) {\n if (offset === 0) {\n return items.indexOf(selectedItem);\n }\n\n return getNextWrappingIndex$1(offset, items.indexOf(selectedItem), items.length, false);\n }\n\n if (offset === 0) {\n return -1;\n }\n\n return offset < 0 ? items.length - 1 : 0;\n}\n\nfunction getDefaultValue(props, propKey) {\n var defaultPropKey = \"default\" + capitalizeString(propKey);\n\n if (defaultPropKey in props) {\n return props[defaultPropKey];\n }\n\n return defaultStateValues[propKey];\n}\n\nfunction getInitialValue(props, propKey) {\n if (propKey in props) {\n return props[propKey];\n }\n\n var initialPropKey = \"initial\" + capitalizeString(propKey);\n\n if (initialPropKey in props) {\n return props[initialPropKey];\n }\n\n return getDefaultValue(props, propKey);\n}\n\nfunction getInitialState(props) {\n var selectedItem = getInitialValue(props, 'selectedItem');\n var highlightedIndex = getInitialValue(props, 'highlightedIndex');\n var isOpen = getInitialValue(props, 'isOpen');\n return {\n highlightedIndex: highlightedIndex < 0 && selectedItem ? props.items.indexOf(selectedItem) : highlightedIndex,\n isOpen: isOpen,\n selectedItem: selectedItem,\n keysSoFar: ''\n };\n}\n\nvar propTypes = {\n items: PropTypes.array.isRequired,\n itemToString: PropTypes.func,\n getA11yStatusMessage: PropTypes.func,\n getA11ySelectionMessage: PropTypes.func,\n circularNavigation: PropTypes.bool,\n highlightedIndex: PropTypes.number,\n defaultHighlightedIndex: PropTypes.number,\n initialHighlightedIndex: PropTypes.number,\n isOpen: PropTypes.bool,\n defaultIsOpen: PropTypes.bool,\n initialIsOpen: PropTypes.bool,\n selectedItem: PropTypes.any,\n initialSelectedItem: PropTypes.any,\n defaultSelectedItem: PropTypes.any,\n id: PropTypes.string,\n labelId: PropTypes.string,\n menuId: PropTypes.string,\n getItemId: PropTypes.func,\n toggleButtonId: PropTypes.string,\n stateReducer: PropTypes.func,\n onSelectedItemChange: PropTypes.func,\n onHighlightedIndexChange: PropTypes.func,\n onStateChange: PropTypes.func,\n onIsOpenChange: PropTypes.func,\n environment: PropTypes.shape({\n addEventListener: PropTypes.func,\n removeEventListener: PropTypes.func,\n document: PropTypes.shape({\n getElementById: PropTypes.func,\n activeElement: PropTypes.any,\n body: PropTypes.any\n })\n })\n};\n\nvar MenuKeyDownArrowDown = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_arrow_down__' : 0;\nvar MenuKeyDownArrowUp = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_arrow_up__' : 1;\nvar MenuKeyDownEscape = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_escape__' : 2;\nvar MenuKeyDownHome = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_home__' : 3;\nvar MenuKeyDownEnd = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_end__' : 4;\nvar MenuKeyDownEnter = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_enter__' : 5;\nvar MenuKeyDownCharacter = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_character__' : 6;\nvar MenuBlur = process.env.NODE_ENV !== \"production\" ? '__menu_blur__' : 7;\nvar MenuMouseLeave = process.env.NODE_ENV !== \"production\" ? '__menu_mouse_leave__' : 8;\nvar ItemMouseMove = process.env.NODE_ENV !== \"production\" ? '__item_mouse_move__' : 9;\nvar ItemClick = process.env.NODE_ENV !== \"production\" ? '__item_click__' : 10;\nvar ToggleButtonKeyDownCharacter = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_character__' : 11;\nvar ToggleButtonKeyDownArrowDown = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_arrow_down__' : 12;\nvar ToggleButtonKeyDownArrowUp = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_arrow_up__' : 13;\nvar ToggleButtonClick = process.env.NODE_ENV !== \"production\" ? '__togglebutton_click__' : 14;\nvar FunctionToggleMenu = process.env.NODE_ENV !== \"production\" ? '__function_toggle_menu__' : 15;\nvar FunctionOpenMenu = process.env.NODE_ENV !== \"production\" ? '__function_open_menu__' : 16;\nvar FunctionCloseMenu = process.env.NODE_ENV !== \"production\" ? '__function_close_menu__' : 17;\nvar FunctionSetHighlightedIndex = process.env.NODE_ENV !== \"production\" ? '__function_set_highlighted_index__' : 18;\nvar FunctionSelectItem = process.env.NODE_ENV !== \"production\" ? '__function_select_item__' : 19;\nvar FunctionClearKeysSoFar = process.env.NODE_ENV !== \"production\" ? '__function_clear_keys_so_far__' : 20;\nvar FunctionReset = process.env.NODE_ENV !== \"production\" ? '__function_reset__' : 21;\n\nvar stateChangeTypes$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n MenuKeyDownArrowDown: MenuKeyDownArrowDown,\n MenuKeyDownArrowUp: MenuKeyDownArrowUp,\n MenuKeyDownEscape: MenuKeyDownEscape,\n MenuKeyDownHome: MenuKeyDownHome,\n MenuKeyDownEnd: MenuKeyDownEnd,\n MenuKeyDownEnter: MenuKeyDownEnter,\n MenuKeyDownCharacter: MenuKeyDownCharacter,\n MenuBlur: MenuBlur,\n MenuMouseLeave: MenuMouseLeave,\n ItemMouseMove: ItemMouseMove,\n ItemClick: ItemClick,\n ToggleButtonKeyDownCharacter: ToggleButtonKeyDownCharacter,\n ToggleButtonKeyDownArrowDown: ToggleButtonKeyDownArrowDown,\n ToggleButtonKeyDownArrowUp: ToggleButtonKeyDownArrowUp,\n ToggleButtonClick: ToggleButtonClick,\n FunctionToggleMenu: FunctionToggleMenu,\n FunctionOpenMenu: FunctionOpenMenu,\n FunctionCloseMenu: FunctionCloseMenu,\n FunctionSetHighlightedIndex: FunctionSetHighlightedIndex,\n FunctionSelectItem: FunctionSelectItem,\n FunctionClearKeysSoFar: FunctionClearKeysSoFar,\n FunctionReset: FunctionReset\n});\n\n/* eslint-disable complexity */\n\nfunction downshiftSelectReducer(state, action) {\n var type = action.type,\n props = action.props,\n shiftKey = action.shiftKey;\n var changes;\n\n switch (type) {\n case ItemMouseMove:\n changes = {\n highlightedIndex: action.index\n };\n break;\n\n case ItemClick:\n changes = {\n isOpen: getDefaultValue(props, 'isOpen'),\n highlightedIndex: getDefaultValue(props, 'highlightedIndex'),\n selectedItem: props.items[action.index]\n };\n break;\n\n case MenuBlur:\n changes = {\n isOpen: false,\n highlightedIndex: -1\n };\n break;\n\n case MenuKeyDownArrowDown:\n changes = {\n highlightedIndex: getNextWrappingIndex$1(shiftKey ? 5 : 1, state.highlightedIndex, props.items.length, props.circularNavigation)\n };\n break;\n\n case MenuKeyDownArrowUp:\n changes = {\n highlightedIndex: getNextWrappingIndex$1(shiftKey ? -5 : -1, state.highlightedIndex, props.items.length, props.circularNavigation)\n };\n break;\n\n case MenuKeyDownHome:\n changes = {\n highlightedIndex: 0\n };\n break;\n\n case MenuKeyDownEnd:\n changes = {\n highlightedIndex: props.items.length - 1\n };\n break;\n\n case MenuKeyDownEscape:\n changes = {\n isOpen: false,\n highlightedIndex: -1\n };\n break;\n\n case MenuKeyDownEnter:\n changes = _extends({\n isOpen: getDefaultValue(props, 'isOpen'),\n highlightedIndex: getDefaultValue(props, 'highlightedIndex')\n }, state.highlightedIndex >= 0 && {\n selectedItem: props.items[state.highlightedIndex]\n });\n break;\n\n case MenuKeyDownCharacter:\n {\n var lowercasedKey = action.key;\n var keysSoFar = \"\" + state.keysSoFar + lowercasedKey;\n var highlightedIndex = getItemIndexByCharacterKey(keysSoFar, state.highlightedIndex, props.items, props.itemToString);\n changes = _extends({\n keysSoFar: keysSoFar\n }, highlightedIndex >= 0 && {\n highlightedIndex: highlightedIndex\n });\n }\n break;\n\n case MenuMouseLeave:\n changes = {\n highlightedIndex: -1\n };\n break;\n\n case ToggleButtonKeyDownCharacter:\n {\n var _lowercasedKey = action.key;\n\n var _keysSoFar = \"\" + state.keysSoFar + _lowercasedKey;\n\n var itemIndex = getItemIndexByCharacterKey(_keysSoFar, state.selectedItem ? props.items.indexOf(state.selectedItem) : -1, props.items, props.itemToString);\n changes = _extends({\n keysSoFar: _keysSoFar\n }, itemIndex >= 0 && {\n selectedItem: props.items[itemIndex]\n });\n }\n break;\n\n case ToggleButtonKeyDownArrowDown:\n {\n changes = {\n isOpen: true,\n highlightedIndex: getHighlightedIndexOnOpen(props, state, 1)\n };\n break;\n }\n\n case ToggleButtonKeyDownArrowUp:\n changes = {\n isOpen: true,\n highlightedIndex: getHighlightedIndexOnOpen(props, state, -1)\n };\n break;\n\n case ToggleButtonClick:\n case FunctionToggleMenu:\n changes = {\n isOpen: !state.isOpen,\n highlightedIndex: state.isOpen ? -1 : getHighlightedIndexOnOpen(props, state, 0)\n };\n break;\n\n case FunctionOpenMenu:\n changes = {\n isOpen: true,\n highlightedIndex: getHighlightedIndexOnOpen(props, state, 0)\n };\n break;\n\n case FunctionCloseMenu:\n changes = {\n isOpen: false\n };\n break;\n\n case FunctionSetHighlightedIndex:\n changes = {\n highlightedIndex: action.highlightedIndex\n };\n break;\n\n case FunctionSelectItem:\n changes = {\n selectedItem: action.selectedItem\n };\n break;\n\n case FunctionClearKeysSoFar:\n changes = {\n keysSoFar: ''\n };\n break;\n\n case FunctionReset:\n changes = {\n highlightedIndex: getDefaultValue(props, 'highlightedIndex'),\n isOpen: getDefaultValue(props, 'isOpen'),\n selectedItem: getDefaultValue(props, 'selectedItem')\n };\n break;\n\n default:\n throw new Error('Reducer called without proper action type.');\n }\n\n return _extends({}, state, {}, changes);\n}\n/* eslint-enable complexity */\n\nvar validatePropTypes = process.env.NODE_ENV === 'production' ?\n/* istanbul ignore next */\nnull : getPropTypesValidator(useSelect, propTypes);\nvar defaultProps = {\n itemToString: itemToString,\n stateReducer: function stateReducer(s, a) {\n return a.changes;\n },\n getA11yStatusMessage: getA11yStatusMessage$1,\n getA11ySelectionMessage: getA11ySelectionMessage,\n scrollIntoView: scrollIntoView,\n environment: typeof window === 'undefined'\n /* istanbul ignore next (ssr) */\n ? {} : window\n};\nuseSelect.stateChangeTypes = stateChangeTypes$1;\n\nfunction useSelect(userProps) {\n if (userProps === void 0) {\n userProps = {};\n }\n\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n validatePropTypes(userProps);\n } // Props defaults and destructuring.\n\n\n var props = _extends({}, defaultProps, {}, userProps);\n\n var items = props.items,\n itemToString = props.itemToString,\n getA11yStatusMessage = props.getA11yStatusMessage,\n getA11ySelectionMessage = props.getA11ySelectionMessage,\n initialIsOpen = props.initialIsOpen,\n defaultIsOpen = props.defaultIsOpen,\n scrollIntoView = props.scrollIntoView,\n environment = props.environment; // Initial state depending on controlled props.\n\n var initialState = getInitialState(props); // Reducer init.\n\n var _useEnhancedReducer = useEnhancedReducer(downshiftSelectReducer, initialState, props),\n _useEnhancedReducer$ = _useEnhancedReducer[0],\n isOpen = _useEnhancedReducer$.isOpen,\n highlightedIndex = _useEnhancedReducer$.highlightedIndex,\n selectedItem = _useEnhancedReducer$.selectedItem,\n keysSoFar = _useEnhancedReducer$.keysSoFar,\n dispatchWithoutProps = _useEnhancedReducer[1];\n\n var dispatch = function (action) {\n return dispatchWithoutProps(_extends({\n props: props\n }, action));\n }; // IDs generation.\n\n\n var _getElementIds = getElementIds(useId, props),\n labelId = _getElementIds.labelId,\n getItemId = _getElementIds.getItemId,\n menuId = _getElementIds.menuId,\n toggleButtonId = _getElementIds.toggleButtonId;\n /* Refs */\n\n\n var toggleButtonRef = useRef(null);\n var menuRef = useRef(null);\n var itemRefs = useRef();\n itemRefs.current = [];\n var isInitialMount = useRef(true);\n var shouldScroll = useRef(true);\n var clearTimeout = useRef(null);\n /* Effects */\n\n /* Sets a11y status message on changes in isOpen. */\n\n useEffect(function () {\n if (isInitialMount.current) {\n return;\n }\n\n setStatus(getA11yStatusMessage({\n isOpen: isOpen,\n items: items,\n selectedItem: selectedItem,\n itemToString: itemToString\n }), environment.document); // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpen]);\n /* Sets a11y status message on changes in selectedItem. */\n\n useEffect(function () {\n if (isInitialMount.current) {\n return;\n }\n\n setStatus(getA11ySelectionMessage({\n isOpen: isOpen,\n items: items,\n selectedItem: selectedItem,\n itemToString: itemToString\n }), environment.document); // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedItem]);\n /* Sets cleanup for the keysSoFar after 500ms. */\n\n useEffect(function () {\n // init the clean function here as we need access to dispatch.\n if (isInitialMount.current) {\n clearTimeout.current = debounce(function () {\n dispatch({\n type: FunctionClearKeysSoFar\n });\n }, 500);\n }\n\n if (!keysSoFar) {\n return;\n }\n\n clearTimeout.current(); // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [keysSoFar]);\n /* Controls the focus on the menu or the toggle button. */\n\n useEffect(function () {\n // Don't focus menu on first render.\n if (isInitialMount.current) {\n // Unless it was initialised as open.\n if (initialIsOpen || defaultIsOpen || isOpen) {\n menuRef.current.focus();\n }\n\n return;\n } // Focus menu on open.\n // istanbul ignore next\n\n\n if (isOpen) {\n menuRef.current.focus(); // Focus toggleButton on close.\n } else if (environment.document.activeElement === menuRef.current) {\n toggleButtonRef.current.focus();\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, [isOpen]);\n /* Scroll on highlighted item if change comes from keyboard. */\n\n useEffect(function () {\n if (highlightedIndex < 0 || !isOpen || !itemRefs.current.length) {\n return;\n }\n\n if (shouldScroll.current === false) {\n shouldScroll.current = true;\n } else {\n scrollIntoView(itemRefs.current[highlightedIndex], menuRef.current);\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, [highlightedIndex]);\n /* Make initial ref false. */\n\n useEffect(function () {\n isInitialMount.current = false;\n }, []);\n /* Event handler functions */\n\n var menuKeyDownHandlers = {\n ArrowDown: function ArrowDown(event) {\n event.preventDefault();\n dispatch({\n type: MenuKeyDownArrowDown,\n shiftKey: event.shiftKey\n });\n },\n ArrowUp: function ArrowUp(event) {\n event.preventDefault();\n dispatch({\n type: MenuKeyDownArrowUp,\n shiftKey: event.shiftKey\n });\n },\n Home: function Home(event) {\n event.preventDefault();\n dispatch({\n type: MenuKeyDownHome\n });\n },\n End: function End(event) {\n event.preventDefault();\n dispatch({\n type: MenuKeyDownEnd\n });\n },\n Escape: function Escape() {\n dispatch({\n type: MenuKeyDownEscape\n });\n },\n Enter: function Enter(event) {\n event.preventDefault();\n dispatch({\n type: MenuKeyDownEnter\n });\n },\n Tab: function Tab(event) {\n // The exception that calls MenuBlur.\n // istanbul ignore next\n if (event.shiftKey) {\n dispatch({\n type: MenuBlur\n });\n }\n }\n };\n var toggleButtonKeyDownHandlers = {\n ArrowDown: function ArrowDown(event) {\n event.preventDefault();\n dispatch({\n type: ToggleButtonKeyDownArrowDown\n });\n },\n ArrowUp: function ArrowUp(event) {\n event.preventDefault();\n dispatch({\n type: ToggleButtonKeyDownArrowUp\n });\n }\n }; // Event handlers.\n\n var menuHandleKeyDown = function (event) {\n var key = normalizeArrowKey(event);\n\n if (key && menuKeyDownHandlers[key]) {\n menuKeyDownHandlers[key](event);\n } else if (isAcceptedCharacterKey(key)) {\n dispatch({\n type: MenuKeyDownCharacter,\n key: key\n });\n }\n }; // Focus going back to the toggleButton is something we control (Escape, Enter, Click).\n // We are toggleing special actions for these cases in reducer, not MenuBlur.\n // Since Shift-Tab also lands focus on toggleButton, we will handle it as exception and call MenuBlur.\n\n\n var menuHandleBlur = function (event) {\n if (!focusLandsOnElement(event, toggleButtonRef.current)) {\n dispatch({\n type: MenuBlur\n });\n }\n };\n\n var menuHandleMouseLeave = function () {\n dispatch({\n type: MenuMouseLeave\n });\n };\n\n var toggleButtonHandleClick = function () {\n dispatch({\n type: ToggleButtonClick\n });\n };\n\n var toggleButtonHandleKeyDown = function (event) {\n var key = normalizeArrowKey(event);\n\n if (key && toggleButtonKeyDownHandlers[key]) {\n toggleButtonKeyDownHandlers[key](event);\n } else if (isAcceptedCharacterKey(key)) {\n dispatch({\n type: ToggleButtonKeyDownCharacter,\n key: key\n });\n }\n };\n\n var itemHandleMouseMove = function (index) {\n if (index === highlightedIndex) {\n return;\n }\n\n shouldScroll.current = false;\n dispatch({\n type: ItemMouseMove,\n index: index\n });\n };\n\n var itemHandleClick = function (index) {\n dispatch({\n type: ItemClick,\n index: index\n });\n }; // returns\n\n\n return {\n // prop getters.\n getToggleButtonProps: function getToggleButtonProps(_temp2) {\n var _extends3;\n\n var _ref2 = _temp2 === void 0 ? {} : _temp2,\n onClick = _ref2.onClick,\n onKeyDown = _ref2.onKeyDown,\n _ref2$refKey = _ref2.refKey,\n refKey = _ref2$refKey === void 0 ? 'ref' : _ref2$refKey,\n ref = _ref2.ref,\n rest = _objectWithoutPropertiesLoose(_ref2, [\"onClick\", \"onKeyDown\", \"refKey\", \"ref\"]);\n\n var toggleProps = _extends((_extends3 = {}, _extends3[refKey] = handleRefs(ref, function (toggleButtonNode) {\n toggleButtonRef.current = toggleButtonNode;\n }), _extends3.id = toggleButtonId, _extends3['aria-haspopup'] = 'listbox', _extends3['aria-expanded'] = isOpen, _extends3['aria-labelledby'] = labelId + \" \" + toggleButtonId, _extends3), rest);\n\n if (!rest.disabled) {\n toggleProps.onClick = callAllEventHandlers(onClick, toggleButtonHandleClick);\n toggleProps.onKeyDown = callAllEventHandlers(onKeyDown, toggleButtonHandleKeyDown);\n }\n\n return toggleProps;\n },\n getLabelProps: function getLabelProps(labelProps) {\n return _extends({\n id: labelId,\n htmlFor: toggleButtonId\n }, labelProps);\n },\n getMenuProps: function getMenuProps(_temp) {\n var _extends2;\n\n var _ref = _temp === void 0 ? {} : _temp,\n onKeyDown = _ref.onKeyDown,\n onBlur = _ref.onBlur,\n onMouseLeave = _ref.onMouseLeave,\n _ref$refKey = _ref.refKey,\n refKey = _ref$refKey === void 0 ? 'ref' : _ref$refKey,\n ref = _ref.ref,\n rest = _objectWithoutPropertiesLoose(_ref, [\"onKeyDown\", \"onBlur\", \"onMouseLeave\", \"refKey\", \"ref\"]);\n\n return _extends((_extends2 = {}, _extends2[refKey] = handleRefs(ref, function (menuNode) {\n menuRef.current = menuNode;\n }), _extends2.id = menuId, _extends2.role = 'listbox', _extends2['aria-labelledby'] = labelId, _extends2.tabIndex = -1, _extends2), highlightedIndex > -1 && {\n 'aria-activedescendant': getItemId(highlightedIndex)\n }, {\n onKeyDown: callAllEventHandlers(onKeyDown, menuHandleKeyDown),\n onBlur: callAllEventHandlers(onBlur, menuHandleBlur),\n onMouseLeave: callAllEventHandlers(onMouseLeave, menuHandleMouseLeave)\n }, rest);\n },\n getItemProps: function getItemProps(_temp3) {\n var _extends4;\n\n var _ref3 = _temp3 === void 0 ? {} : _temp3,\n item = _ref3.item,\n index = _ref3.index,\n _ref3$refKey = _ref3.refKey,\n refKey = _ref3$refKey === void 0 ? 'ref' : _ref3$refKey,\n ref = _ref3.ref,\n onMouseMove = _ref3.onMouseMove,\n onClick = _ref3.onClick,\n rest = _objectWithoutPropertiesLoose(_ref3, [\"item\", \"index\", \"refKey\", \"ref\", \"onMouseMove\", \"onClick\"]);\n\n var itemIndex = getItemIndex(index, item, items);\n\n if (itemIndex < 0) {\n throw new Error('Pass either item or item index in getItemProps!');\n }\n\n var itemProps = _extends((_extends4 = {}, _extends4[refKey] = handleRefs(ref, function (itemNode) {\n if (itemNode) {\n itemRefs.current.push(itemNode);\n }\n }), _extends4.role = 'option', _extends4), itemIndex === highlightedIndex && {\n 'aria-selected': true\n }, {\n id: getItemId(itemIndex)\n }, rest);\n\n if (!rest.disabled) {\n itemProps.onMouseMove = callAllEventHandlers(onMouseMove, function () {\n return itemHandleMouseMove(itemIndex);\n });\n itemProps.onClick = callAllEventHandlers(onClick, function () {\n return itemHandleClick(itemIndex);\n });\n }\n\n return itemProps;\n },\n // actions.\n toggleMenu: function toggleMenu() {\n dispatch({\n type: FunctionToggleMenu\n });\n },\n openMenu: function openMenu() {\n dispatch({\n type: FunctionOpenMenu\n });\n },\n closeMenu: function closeMenu() {\n dispatch({\n type: FunctionCloseMenu\n });\n },\n setHighlightedIndex: function setHighlightedIndex(newHighlightedIndex) {\n dispatch({\n type: FunctionSetHighlightedIndex,\n highlightedIndex: newHighlightedIndex\n });\n },\n selectItem: function selectItem(newSelectedItem) {\n dispatch({\n type: FunctionSelectItem,\n selectedItem: newSelectedItem\n });\n },\n reset: function reset() {\n dispatch({\n type: FunctionReset\n });\n },\n // state.\n highlightedIndex: highlightedIndex,\n isOpen: isOpen,\n selectedItem: selectedItem\n };\n}\n\nexport default Downshift;\nexport { resetIdCounter, useSelect };\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\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 * 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 timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\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 clearTimeout(timerId);\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\nmodule.exports = debounce;\n","var root = require('./_root');\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\nmodule.exports = now;\n","var freeGlobal = require('./_freeGlobal');\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\nmodule.exports = root;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","\n\n\n/*\n* @version 1.0.4\n* @date 2015-03-13\n* @stability 3 - Stable\n* @author Lauri Rooden \n* @license MIT License\n*/\n\n\n// In browser `this` refers to the window object,\n// in NodeJS `this` refers to the exports.\n\nthis.cookie = function(name, value, ttl, path, domain, secure) {\n\n\tif (arguments.length > 1) {\n\t\treturn document.cookie = name + \"=\" + encodeURIComponent(value) +\n\t\t\t(ttl ? \"; expires=\" + new Date(+new Date()+(ttl*1000)).toUTCString() : \"\") +\n\t\t\t(path ? \"; path=\" + path : \"\") +\n\t\t\t(domain ? \"; domain=\" + domain : \"\") +\n\t\t\t(secure ? \"; secure\" : \"\")\n\t}\n\n\treturn decodeURIComponent(((\"; \"+document.cookie).split(\"; \"+name+\"=\")[1]||\"\").split(\";\")[0])\n}\n","import * as React from 'react'\nimport styles from './notificationCount-style.css'\ntype Props = {\n notificationCount: string\n}\n\nfunction NotificationCount({ notificationCount }: Props) {\n if (!notificationCount) return null\n return {notificationCount}\n}\n\nNotificationCount.displayName = 'NotificationCount'\nNotificationCount.defaultProps = {}\nexport default NotificationCount","import { cookie as cookieLite } from 'browser-cookie-lite'\nimport cx from 'classnames'\nimport * as React from 'react'\n\nimport { times } from '../../icons'\nimport type { BreakingNewsItemViewModel } from '../../view-models/BreakingNewsItemViewModel'\nimport type { LinkViewModel } from '../../view-models/LinkViewModel'\nimport { trackEvent } from '../../utils/gtag'\nimport Icon from '../Icon/Icon'\nimport Link from '../Link/Link'\nimport Paragraph from '../Paragraph/Paragraph'\nimport styles from './newsTicker-style.css'\n\ntype Props = {\n items: Array\n header: string\n className?: string\n breakingNewsLink?: LinkViewModel\n}\ntype State = {\n tickerWidth: number\n gridWidth: number\n contentFits: boolean\n showContent: boolean\n isOpen: boolean\n}\n\nclass NewsTicker extends React.Component {\n static displayName = 'NewsTicker'\n static defaultProps = {}\n state = {\n tickerWidth: 0,\n gridWidth: 0,\n contentFits: true,\n showContent: false,\n isOpen: false,\n }\n\n componentDidMount() {\n if (!this.hasAcceptedCookies()) {\n this.setState({\n isOpen: true,\n })\n }\n }\n\n getWidth = (node: any) => {\n if (node) {\n const tickerWidth = node.getBoundingClientRect().width\n const gridWidth = node.parentNode.getBoundingClientRect().width\n const contentFits = tickerWidth <= gridWidth - 160 // 160 is the btn width\n\n this.setState({\n tickerWidth,\n gridWidth,\n contentFits,\n showContent: true,\n })\n }\n }\n hasAcceptedCookies = () => {\n return typeof window !== 'undefined' && cookieLite('breaking-news')\n }\n handleClose = () => {\n // add cookie so it doesnt show on every refresh and close\n // expires after 24 hrs\n cookieLite('breaking-news', true, 86400000, '/')\n this.setState({\n isOpen: false,\n })\n const eventMetaClose = {\n event: 'breaking-news',\n }\n trackEvent(eventMetaClose)\n }\n renderTicker = () => {\n const { items } = this.props\n const { contentFits, tickerWidth } = this.state\n const animationDuration = tickerWidth / 25\n const animationDelay = animationDuration / 2\n\n return (\n \n \n {items.map((item) => (\n \n {item.text}\n \n ))}\n \n \n {!contentFits &&\n items.map((item) => (\n \n {item.text}\n \n ))}\n \n \n )\n }\n\n render() {\n const { items, header, className, breakingNewsLink } = this.props\n const { contentFits, showContent, isOpen } = this.state\n const eventMetaLink = {\n event: 'breaking-news',\n eventData: breakingNewsLink ? breakingNewsLink.href : '',\n }\n if (!items || !isOpen) return null\n\n return (\n
    \n
    \n \n
    \n \n {breakingNewsLink && breakingNewsLink.href ? (\n \n {this.renderTicker()}\n \n ) : (\n this.renderTicker()\n )}\n
    \n \n )\n }\n}\n\nexport default NewsTicker","import cx from 'classnames'\nimport Downshift from 'downshift'\nimport throttle from 'lodash/throttle'\nimport * as React from 'react'\n\nimport { times } from '../../icons'\nimport type { SearchBarViewModel } from '../../view-models/SearchBarViewModel'\nimport request from '../../utils/request'\nimport Button from '../Button/Button'\nimport Icon from '../Icon/Icon'\nimport styles from './searchBar-style.css'\n\ntype Props = {\n searchBtn?: SearchBarViewModel\n id: string\n onSearchToggle?: (...args: any[]) => any\n\n /** @internal */\n onSubmit?: (...args: any[]) => any\n\n /** @internal */\n className?: string\n\n /** @internal */\n loading?: boolean\n isSearchOpen?: boolean\n searchPhrase?: string\n}\ntype State = {\n results: Record[]\n value: string\n suggestionsOpen: boolean\n}\n\nclass SearchBar extends React.Component {\n static displayName = 'SearchBar'\n static defaultProps = {\n id: 'search',\n }\n state = {\n results: [],\n value: this.props.searchPhrase || '',\n suggestionsOpen: false,\n }\n //TODO: any\n input: React.RefObject = React.createRef()\n throttledFetch = throttle((value: any) => this.fetchResults(value), 250)\n //TODO: any\n inputOnChange = (e: any) => {\n const { value } = e.target\n this.setState({\n value,\n suggestionsOpen: true,\n })\n if (value.length > 1) this.throttledFetch(value)\n }\n handleDownshiftChange = (value: Record) => {\n this.setState({\n value: value.heading,\n suggestionsOpen: false,\n })\n this.triggerSearch(value.heading)\n }\n //TODO: Is this correct?\n handleSubmit: (...args: any[]) => any = (e: Event) => {\n e.preventDefault()\n const { value } = this.state\n this.triggerSearch(value)\n }\n triggerSearch = (value: string) => {\n const { onSubmit } = this.props as Props\n this.setState({\n suggestionsOpen: false,\n })\n\n if (value && onSubmit) {\n onSubmit(value)\n }\n }\n fetchResults = (query: string) => {\n const { searchBtn } = this.props\n if (!searchBtn) return null\n const queryUrl = `${searchBtn.apiString}${query}`\n request(queryUrl)\n .then((res) => {\n if (query === this.state.value) {\n this.setState({\n results: res.body,\n })\n }\n })\n .catch((err) => console.error(err.error))\n }\n\n componentDidUpdate(prevProps: Record) {\n if (prevProps.isSearchOpen !== this.props.isSearchOpen && this.props.isSearchOpen === true) {\n this.input?.current?.focus()\n }\n\n if (prevProps.isSearchOpen !== this.props.isSearchOpen && this.props.isSearchOpen === false) {\n this.setState({\n value: '',\n })\n }\n }\n\n render() {\n const { id, searchBtn, onSearchToggle, className, loading } = this.props\n const { results, suggestionsOpen } = this.state\n if (!searchBtn) return null\n\n return (\n
    \n
    \n \n this.setState({\n suggestionsOpen: false,\n })\n }\n onChange={this.handleDownshiftChange}\n itemToString={(item) => (item ? item.heading : '')}\n inputValue={this.state.value || ''}\n >\n {({ getInputProps, getItemProps, highlightedIndex, isOpen }) => (\n
    \n
    \n
    \n \n
    \n \n \n
    \n {isOpen && results && results.length > 0 && !loading && (\n
    \n {results.map((item: Record, index: number) => (\n \n {item.heading}\n
    \n ))}\n
    \n )}\n
    \n )}\n \n \n \n )\n }\n}\n\nexport default SearchBar","import * as React from 'react'\n\ntype Props = {\n children: (size: {\n width: number\n height: number\n isDesktop?: boolean\n }) => React.ReactNode | null | undefined\n}\ntype State = {\n width: number\n height: number\n isDesktop?: boolean\n}\n\nclass Viewport extends React.Component {\n state: State = {\n width: 0,\n height: 0,\n isDesktop: undefined,\n }\n static getWidth = () =>\n typeof window !== 'undefined'\n ? Math.max(\n document.documentElement ? document.documentElement.clientWidth : 0,\n window.innerWidth || 0,\n )\n : 0\n static getHeight = () =>\n typeof window !== 'undefined'\n ? Math.max(\n document.documentElement ? document.documentElement.clientHeight : 0,\n window.innerHeight || 0,\n )\n : 0\n static isDesktop = () => Viewport.getWidth() >= 992\n\n componentDidMount() {\n window.addEventListener('resize', this.handleResize)\n this.handleResize()\n }\n\n componentWillUnmount() {\n window.removeEventListener('resize', this.handleResize)\n }\n\n handleResize = () => {\n const width = Viewport.getWidth()\n const height = Viewport.getHeight()\n const isDesktop = Viewport.isDesktop()\n this.setState({\n width,\n height,\n isDesktop,\n })\n }\n\n render() {\n return this.state ? this.props.children(this.state) : null\n }\n}\n\nexport default Viewport\n","import cx from 'classnames'\nimport Collapse, { Panel } from 'rc-collapse'\nimport * as React from 'react'\n\nimport { angleDown, angleUp } from '../../icons'\nimport type { AccordionItemViewModel } from '../../view-models/AccordionItemViewModel'\nimport Icon from '../Icon/Icon'\nimport styles from './accordion-style.css'\ntype Props = {\n items: Array\n accordion?: boolean\n className?: string\n}\ntype State = {\n time: number\n activeKey: Array\n}\n\nconst expandIcon = ({ isActive }) => {\n return (\n
    \n \n
    \n )\n}\n\nclass Accordion extends React.Component {\n static displayName = 'Accordion'\n static defaultProps = {}\n state = {\n time: 4,\n activeKey: [],\n }\n\n handleChange = (activeKey: Array) => {\n this.setState({\n activeKey,\n })\n }\n\n getItems(): Array | null | undefined {\n const { items } = this.props\n if (!items) return null\n\n return items.map((child, index) => (\n \n {child.component}\n \n ))\n }\n\n render() {\n const { accordion, className } = this.props\n const activeKey = this.state.activeKey\n\n return (\n
    \n \n {this.getItems()}\n \n
    \n )\n }\n}\n\nexport default Accordion","import * as React from 'react'\n\nimport NavigationDesktop from '../../components/NavigationDesktop/NavigationDesktop'\nimport NavigationMobile from '../../components/NavigationMobile/NavigationMobile'\nimport Viewport from '../../components/Viewport/Viewport'\nimport type { BreakingNewsItemViewModel } from '../../view-models/BreakingNewsItemViewModel'\nimport type { LinkViewModel } from '../../view-models/LinkViewModel'\nimport type { MobileMenuViewModel } from '../../view-models/MobileMenuViewModel'\nimport type { NavigationLogoViewModel } from '../../view-models/NavigationLogoViewModel'\nimport type { SearchBarViewModel } from '../../view-models/SearchBarViewModel'\nimport type { ServiceMenuViewModel } from '../../view-models/ServiceMenuViewModel'\nimport styles from './navigation-style.css'\nimport type { PageLoginViewModel } from './view-models/PageLoginViewModel'\n\ntype Props = {\n logo: NavigationLogoViewModel\n serviceMenu: ServiceMenuViewModel\n searchBtn?: SearchBarViewModel\n pageLinks?: Array\n pageLogin?: PageLoginViewModel\n mobileMenuItems: MobileMenuViewModel\n backLink?: LinkViewModel\n items?: Array\n header?: string\n breakingNewsLink?: LinkViewModel\n myPageLink?: LinkViewModel\n notificationCount?: string\n hideBottomDivider?: boolean\n redirectEndpoint?: string\n alignLogin?: 'right' | 'left'\n}\ntype State = {}\n\nclass Navigation extends React.Component {\n static displayName = 'Navigation'\n static defaultProps = {}\n state: State = {}\n\n handleRedirect = (value: string) => {\n const { redirectEndpoint } = this.props\n\n if (redirectEndpoint && value) {\n const redirect = `${redirectEndpoint}${value}`\n global.location.assign(redirect)\n }\n }\n\n render() {\n const {\n logo,\n serviceMenu,\n searchBtn,\n pageLinks,\n pageLogin,\n mobileMenuItems,\n backLink,\n items,\n header,\n breakingNewsLink,\n myPageLink,\n notificationCount,\n hideBottomDivider,\n alignLogin\n } = this.props\n\n return (\n
    \n \n {({ isDesktop }) => (\n \n \n \n \n )}\n \n
    \n )\n }\n}\n\nexport default Navigation","import * as React from 'react'\n\nimport { angleDown, angleUp } from '../../icons/index'\nimport type { LinkViewModel } from '../../view-models/LinkViewModel'\nimport Button from '../Button/Button'\nimport Dropdown from '../Dropdown/Dropdown'\nimport DropdownLinks from '../DropdownLinks/DropdownLinks'\nimport Icon from '../Icon/Icon'\nimport styles from './pageLogin-style.css'\nimport cx from 'classnames'\n\ntype Props = {\n loggedIn?: boolean\n title?: string\n items?: Array\n align?: 'right' | 'left'\n}\ntype State = {}\nconst eventMeta = {\n event: 'menu-login',\n}\n\nclass PageLogin extends React.Component {\n static displayName = 'PageLogin'\n static defaultProps = {}\n\n get renderLoggedIn() {\n const { items, loggedIn, title, align = 'right' } = this.props\n\n if (!items) {\n return null\n }\n\n if (loggedIn) {\n const item: LinkViewModel | undefined = items ? items.shift() : {}\n\n return (\n \n )\n } else {\n return (\n {\n return (\n \n {title}\n \n \n )\n }}\n >\n \n \n )\n }\n }\n\n render() {\n const items = this.props.items\n if (!items) return null\n\n return
    {this.renderLoggedIn}
    \n }\n}\n\nexport default PageLogin","import cx from 'classnames'\nimport * as React from 'react'\n\nimport { angleDown, angleUp } from '../../icons/index'\nimport { trackEvent } from '../../utils/gtag'\nimport BaseButton from '../BaseButton/BaseButton'\nimport Icon from '../Icon/Icon'\nimport styles from './dropdown-style.css'\n\ntype Props = {\n children?: React.ReactNode\n title?: any\n className?: string\n name?: string\n}\ntype State = {\n showMenu: boolean\n}\n\nclass Dropdown extends React.Component {\n static displayName = 'Dropdown'\n static defaultProps = {}\n dropdownMenu: HTMLDivElement\n\n state = {\n showMenu: false,\n }\n\n handleShowMenu = (event: MouseEvent) => {\n event.preventDefault()\n this.setState(\n {\n showMenu: true,\n },\n () => {\n document.addEventListener('click', this.handleCloseMenu)\n },\n )\n }\n handleCloseMenu = (event: MouseEvent) => {\n if (!this.dropdownMenu?.contains(event.target as any)) {\n this.setState(\n {\n showMenu: false,\n },\n () => {\n document.removeEventListener('click', this.handleCloseMenu)\n },\n )\n }\n }\n\n componentDidUpdate(prevProps: any, prevState: any): void {\n if (prevState.showMenu !== this.state.showMenu && this.state.showMenu === true) {\n if (this.props.name === 'service-menu') {\n trackEvent({\n event: 'desktop-menu-dropdown',\n })\n }\n }\n }\n\n setRef = (el: any) => {\n this.dropdownMenu = el\n }\n\n renderTitle(title: any, showMenu: boolean) {\n const type = typeof title\n\n if (type === 'string') {\n return (\n \n {title}{' '}\n \n \n )\n } else {\n return title(this.handleShowMenu, showMenu)\n }\n }\n\n render() {\n const { children, title, className } = this.props\n const { showMenu } = this.state\n\n return (\n
    \n {title && this.renderTitle(title, showMenu)}\n {showMenu && (\n
    \n {children}\n
    \n )}\n
    \n )\n }\n}\n\nexport default Dropdown","import cx from 'classnames'\nimport * as React from 'react'\nimport {CSSProperties} from \"react\";\n\nimport type { LinkViewModel } from '../../view-models/LinkViewModel'\nimport Link from '../Link/Link'\nimport styles from './dropdownLinks-style.css'\n\ntype Props = {\n items?: Array\n position?: string\n className?: string\n eventName?: string\n}\ntype State = {}\n\nclass DropdownLinks extends React.Component {\n static displayName = 'DropdownLinks'\n static defaultProps = {}\n\n get styles(): CSSProperties {\n const { position } = this.props\n\n if (position === 'right') {\n return {\n left: 'auto',\n right: 0,\n textAlign: 'right',\n }\n } else if (position === 'center') {\n return {\n left: '50%',\n transform: 'translateX(-50%)',\n }\n } else {\n return {\n right: 0,\n }\n }\n }\n\n renderItem = (item: LinkViewModel) => {\n const eventMeta =\n this.props.eventName === 'login'\n ? {\n event: 'login',\n eventData: item.label,\n }\n : {}\n\n return (\n
  • \n \n {item.label}\n \n
  • \n )\n }\n\n render() {\n const { items, className } = this.props\n\n if (!items) {\n return null\n }\n\n return (\n
      \n {items.map(this.renderItem)}\n
    \n )\n }\n}\n\nexport default DropdownLinks","import * as React from 'react'\n\nimport type { NavigationLogoViewModel } from '../../view-models/NavigationLogoViewModel'\nimport Image from '../Image/Image'\nimport Link from '../Link/Link'\n\ntype Props = NavigationLogoViewModel & {\n className?: string\n}\ntype State = {}\n\nclass NavigationLogo extends React.Component {\n static displayName = 'NavigationLogo'\n static defaultProps = {}\n\n render() {\n const { image, link, className } = this.props\n if (!image && !link) return null\n\n return (\n
    \n {link ? (\n \n \n \n ) : (\n \n )}\n
    \n )\n }\n}\n\nexport default NavigationLogo"],"sourceRoot":""}