{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///../src/util.js","webpack:///../src/index.js","webpack:///../node_modules/@slottracker/utils/dist/stats-formats/index.js","webpack:///../node_modules/react-modal/lib/helpers/ariaAppHider.js","webpack:///../node_modules/@slottracker/utils/dist/number/index.js","webpack:///../node_modules/@slottracker/utils/dist/stats/math.js","webpack:///../node_modules/@slottracker/utils/dist/http-codes/index.js","webpack:///../node_modules/react-modal/lib/helpers/scopeTab.js","webpack:///../node_modules/react-modal/lib/helpers/portalOpenInstances.js","webpack:///../node_modules/react-modal/lib/index.js","webpack:///./utils/api.ts","webpack:///../node_modules/@slottracker/utils/dist/slug/index.js","webpack:///../node_modules/@slottracker/utils/dist/interfaces/spin.js","webpack:///../node_modules/@slottracker/utils/dist/constants/index.js","webpack:///../node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///../node_modules/@slottracker/utils/dist/interfaces/language.js","webpack:///../node_modules/@slottracker/utils/dist/stats/stats.js","webpack:///../node_modules/@slottracker/utils/dist/stats/bet.js","webpack:///../node_modules/warning/warning.js","webpack:///../node_modules/@slottracker/utils/dist/interfaces/stats.js","webpack:///./config/index.ts","webpack:///../node_modules/exenv/index.js","webpack:///../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","webpack:///../node_modules/prop-types/factoryWithThrowingShims.js","webpack:///../lib/atob.js","webpack:///../lib/base64_url_decode.js","webpack:///../lib/index.js","webpack:///../node_modules/js-cookie/dist/js.cookie.mjs","webpack:///./utils/cookie.ts","webpack:///./utils/auth.ts","webpack:///../node_modules/prop-types/index.js","webpack:///../node_modules/react-modal/lib/components/ModalPortal.js","webpack:///../node_modules/react-modal/lib/helpers/tabbable.js","webpack:///../node_modules/@slottracker/utils/dist/volatility/index.js","webpack:///../node_modules/@slottracker/utils/dist/interfaces/user.js","webpack:///../node_modules/@slottracker/utils/dist/interfaces/game-feature.js","webpack:///../node_modules/@slottracker/utils/dist/interfaces/bet-line.js","webpack:///../node_modules/@slottracker/utils/dist/interfaces/cms-page.js","webpack:///../node_modules/react-modal/lib/components/Modal.js","webpack:///../node_modules/react-modal/lib/helpers/bodyTrap.js","webpack:///../src/create-element.js","webpack:///../src/component.js","webpack:///../src/diff/children.js","webpack:///../src/diff/props.js","webpack:///../src/diff/index.js","webpack:///../src/render.js","webpack:///../src/clone-element.js","webpack:///../src/create-context.js","webpack:///../src/options.js","webpack:///../src/constants.js","webpack:///../src/diff/catch-error.js","webpack:///../node_modules/@slottracker/utils/dist/interfaces/index.js","webpack:///../src/PureComponent.js","webpack:///../src/memo.js","webpack:///../src/forwardRef.js","webpack:///../src/Children.js","webpack:///../src/suspense.js","webpack:///../src/suspense-list.js","webpack:///../src/portals.js","webpack:///../node_modules/preact-cli/lib/lib/entry.js","webpack:///../node_modules/@slottracker/utils/dist/stats/index.js","webpack:///../node_modules/@slottracker/utils/dist/index.js","webpack:///../node_modules/react-modal/lib/helpers/focusManager.js","webpack:///../node_modules/react-modal/lib/helpers/classList.js","webpack:///../node_modules/@preact/async-loader/async.js","webpack:///./components/breadcrumbs/style.scss","webpack:///./components/breadcrumbs/index.tsx","webpack:///./components/redirect/index.tsx","webpack:///./routes/casinos/index.tsx?8580","webpack:///./routes/documentation/index.tsx?560f","webpack:///./routes/examples/index.tsx?b5be","webpack:///./routes/games/index.tsx?385d","webpack:///./routes/home/index.tsx?ade6","webpack:///./routes/login/index.tsx?50b8","webpack:///./routes/providers/index.tsx?36e5","webpack:///./routes/real-game-stats/index.tsx?13b7","webpack:///./app.tsx","webpack:///./index.ts","webpack:///../node_modules/@slottracker/utils/dist/object/index.js","webpack:///../node_modules/react-modal/lib/helpers/safeHTMLElement.js","webpack:///../node_modules/@slottracker/utils/dist/interfaces/auth.js","webpack:///../node_modules/@slottracker/utils/dist/interfaces/api.js","webpack:///../node_modules/preact-cli/node_modules/webpack/buildin/amd-options.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","__webpack_require__","installedModules","exports","module","l","installedCssChunks","e","promises","Promise","resolve","reject","href","fullhref","p","existingLinkTags","document","getElementsByTagName","dataHref","tag","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onerror","onload","event","errorType","realHref","target","err","Error","code","request","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","src","jsonpScriptSrc","error","clearTimeout","chunk","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","s","assign","obj","props","exec","url","route","opts","ret","reg","match","matches","split","decodeURIComponent","join","segmentize","replace","max","Math","charAt","param","flags","EMPTY","plus","indexOf","star","val","map","pathRankSort","a","b","rank","index","prepareVNodeForRanking","vnode","path","rankSegment","rankChild","segment","getCurrentUrl","customHistory","location","getCurrentLocation","pathname","search","ROUTERS","canRoute","history","setUrl","routeTo","didRoute","routeFromLink","node","prevent","stopImmediatePropagation","stopPropagation","preventDefault","delegateLinkHandler","ctrlKey","metaKey","altKey","shiftKey","button","localName","hasAttribute","Router","this","state","SUBS","GLOBAL_ROUTE_CONTEXT","RouterContext","createContext","eventListenersInitialized","Component","shouldComponentUpdate","onChange","children","toChildArray","_getMatchingChild","setState","_updating","forceUpdate","componentWillMount","componentDidMount","addEventListener","_unlisten","listen","action","_this","componentWillUnmount","splice","componentWillUpdate","componentDidUpdate","filter","sort","render","current","ctx","_contextValue","active","cloneElement","ref","previous","router","Provider","Link","Route","h","component","formatValue","getNotAvailableStats","constants_1","require","number_1","stats","noSpins","totalSpins","noBonusSpins","raw","bonusTotalSpins","RTP","PL","SRP","hitRate","wins","freq","bestWin","best","bonusFreq","avgBonus","apinsAgo","format","currency","fractionDigits","DEFAULT_PRECISION","toString","Number","toLocaleString","toFixedWithoutZeros","HUNDRED_PERCENT","Intl","NumberFormat","style","assertNodeList","nodeList","selector","validateElement","appElement","el","globalElement","Array","isArray","HTMLCollection","NodeList","_warning2","default","resetState","removeAttribute","forEach","element","querySelectorAll","log","setElement","useElement","_safeHTMLElement","canUseDOM","hide","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","iterator","next","done","return","show","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","documentNotReadyOrSSRTesting","_warning","toFixed","getStandardDeviation","getPercentage","getFrequency","getPL","getSRP","getRTP","DEFAULT_PERCENTAGE","DEFAULT_FREQUENCY","DEFAULT_SRP","DEFAULT_RTP","win","bet","sumRTP","sum","sumOfSquares","count","sqrt","pow","HttpCodes","getActiveElement","arguments","activeElement","shadowRoot","tabbable","_tabbable2","tail","focus","checkSafari","navigator","userAgent","x","_tabbable","portalOpenInstances","openInstances","PortalOpenInstances","register","openInstance","emit","deregister","subscribe","callback","subscribers","eventType","subscriber","_Modal","_Modal2","tokenRefreshPromise","refreshToken","auth","options","headers","authToken","Authorization","res","fetch","resJson","json","ok","status","Unauthorized","includes","buildUrl","endpoint","config","apiUrl","getMapped","post","body","method","JSON","stringify","postMapped","isSlug","slug","test","slugify","NON_LATIN","text","trim","toLowerCase","latin","re","RegExp","MAGIC_WAGERING_COEFFICIENT","SQUARE_POWER","NOT_AVAILABLE_PLACEHOLDER","__awaiter","thisArg","_arguments","P","generator","fulfilled","step","rejected","result","apply","addSpinToStats","combineStats","object_1","bet_1","math_1","firstItemDeepCloned","deepCopy","combinedStats","reduce","combined","item","sumBet","sumEURBet","sumWin","sumEURWin","winRatioSum","winRatioSquaresSum","totalWins","bestRTP","bonusSumWin","bonusSumEURWin","bonusSumBet","bonusSumEURBet","bonusWinRatioSum","bonusWinRatioSquaresSum","baseTotalSpins","spinsSinceLastBonus","min","baseSumWin","baseSumEURWin","baseSumBet","baseSumEURBet","baseWinRatioSum","baseWinRatioSquaresSum","winEUR","stddev","bonus","avg","base","wagering","gameId","spin","betLineLoader","currencyConverter","bonusChecker","statsRaw","spinWin","total_win","spinBet","getTotalBet","toUpperCase","dateString","date","dateInst","Date","isNaN","getTime","spinTotalWinEur","convertToEurFrom","spinTotalBetEur","spinRtp","spinIsBonus","isBonusSpin","features","lastSpinWin","lastSpinWinEUR","addSpinToStatsRaw","totalBet","total_bet","lines","level","betLine","getBetLine","override","multiplier","warning","environment","process","sharedCookiesDomain","websiteUrl","consoleUrl","extensionDownloadUrl","widgetUrl","ExecutionEnvironment","canUseWorkers","Worker","canUseEventListeners","attachEvent","canUseViewport","screen","define","constructor","getDerivedStateFromProps","componentWillReceiveProps","nextProps","prevState","nextState","prevProps","__reactInternalSnapshotFlag","__reactInternalSnapshot","getSnapshotBeforeUpdate","polyfill","isReactComponent","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","UNSAFE_componentWillMount","UNSAFE_componentWillReceiveProps","UNSAFE_componentWillUpdate","displayName","maybeSnapshot","__suppressDeprecationWarning","emptyFunction","emptyFunctionWithReset","ReactPropTypesSecret","resetWarningCache","shim","propName","componentName","propFullName","secret","getShim","isRequired","ReactPropTypes","array","bigint","bool","func","number","string","symbol","any","arrayOf","elementType","instanceOf","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","getHookState","__h","currentComponent","currentHook","hooks","__","__V","useState","initialState","useReducer","invokeOrReturn","reducer","init","hookState","currentIndex","_reducer","__c","currentValue","__N","nextValue","_hasScuFromHooks","prevScu","__H","stateHooks","every","shouldUpdate","hookItem","useEffect","args","argsChanged","_pendingArgs","useLayoutEffect","useRef","initialValue","useMemo","useImperativeHandle","createHandle","concat","factory","useCallback","useContext","context","provider","sub","useDebugValue","formatter","useErrorBoundary","cb","errState","componentDidCatch","errorInfo","useId","charCodeAt","hash","__v","_mask","flushAfterPaintEffects","afterPaintEffects","__P","invokeCleanup","invokeEffect","__e","afterNextFrame","raf","HAS_RAF","cancelAnimationFrame","requestAnimationFrame","hook","comp","cleanup","oldArgs","newArgs","some","arg","f","previousComponent","prevRaf","oldBeforeDiff","oldBeforeRender","__r","oldAfterDiff","diffed","oldCommit","oldBeforeUnmount","unmount","__b","Fragment","commitQueue","hasErrored","InvalidCharacterError","str","output","atob","b64DecodeUnicode","InvalidTokenError","source","input","String","bs","buffer","bc","idx","fromCharCode","token","pos","header","parse","base64_url_decode","api","converter","defaultAttributes","set","attributes","expires","now","toUTCString","encodeURIComponent","escape","stringifiedAttributes","attributeName","cookie","write","cookies","jar","parts","foundKey","read","remove","withAttributes","withConverter","freeze","buildCookieKey","getCookie","Cookies","setCookieCrossDomain","domain","setCookie","removeCookieCrossDomain","removeCookie","AUTH_DATA_STORAGE_KEY","USER_STORAGE_KEY","clearAuthDataAndRedirectToAuth","getAuthData","authData","accessToken","isAuthenticated","userData","Boolean","getAccessToken","decodedAccessToken","jwtDecode","cookieExpires","exp","userDetails","_interopRequireWildcard","newObj","_interopRequireDefault","_possibleConstructorReturn","self","ReferenceError","_extends","_typeof","_createClass","defineProperties","descriptor","configurable","writable","Constructor","protoProps","staticProps","_react","_propTypes2","focusManager","_scopeTab2","ariaAppHider","classList","_safeHTMLElement2","_portalOpenInstances2","CLASS_NAMES","overlay","content","ariaHiddenInstances","ModalPortal","_Component","__proto__","getPrototypeOf","setOverlayRef","overlayRef","setContentRef","contentRef","afterClose","_this$props","ariaHideApp","htmlOpenClassName","bodyOpenClassName","shouldFocusAfterRender","shouldReturnFocusAfterClose","returnFocus","preventScroll","teardownScopedFocus","popWithoutFocus","onAfterClose","open","beforeOpen","afterOpen","beforeClose","closeTimer","setupScopedFocus","markForFocusLater","isOpen","openAnimationFrame","onAfterOpen","overlayEl","contentEl","close","closeTimeoutMS","closeWithTimeout","closeWithoutTimeout","focusContent","contentHasFocus","closesAt","handleKeyDown","keyCode","shouldCloseOnEsc","requestClose","handleOverlayOnClick","shouldClose","shouldCloseOnOverlayClick","ownerHandlesClose","handleContentOnMouseUp","handleOverlayOnMouseDown","handleContentOnClick","handleContentOnMouseDown","onRequestClose","shouldBeClosed","contains","buildClassName","which","additional","classNames","className","attributesFromObject","prefix","items","keys","acc","moveFromContentToOverlay","subClass","superClass","TypeError","setPrototypeOf","_inherits","_props","add","_props2","id","overlayClassName","defaultStyles","contentStyles","overlayStyles","overlayProps","onClick","onMouseDown","contentProps","tabIndex","onKeyDown","onMouseUp","role","contentLabel","modal","aria","testId","contentElement","overlayElement","defaultProps","propTypes","SafeHTMLCollection","SafeNodeList","hidesContents","zeroSize","offsetWidth","offsetHeight","innerHTML","getComputedStyle","getPropertyValue","scrollWidth","scrollHeight","exception","warn","focusable","isTabIndexNotNaN","nodeName","tabbableNode","disabled","parentElement","rootNode","getRootNode","host","visible","isTabIndexNaN","findTabbableDescendants","finished","getVolatilityCMSKey","entries","EUserRole","EGameFeatureTypes","getParentElement","parentSelector","portalClassName","_react2","_reactDom2","_ModalPortal2","_reactLifecyclesCompat","isReact16","createPortal","createHTMLElement","getCreatePortal","unstable_renderSubtreeIntoContainer","Modal","_ref","_temp","_len","_key","removePortal","unmountComponentAtNode","parent","portalRef","portal","renderPortal","prevParent","nextParent","_","snapshot","position","top","left","right","bottom","backgroundColor","border","background","overflow","WebkitOverflowScrolling","borderRadius","outline","padding","instances","_arr","before","after","_i","_arr2","_i2","check","_portalOpenInstances","opacity","cloneNode","firstChild","insertBefore","lastChild","removeNode","normalizedProps","createVNode","original","__k","__d","vnodeId","createRef","getDomSibling","childIndex","sibling","updateParentDomPointers","child","enqueueRender","rerenderQueue","prevDebounce","debounceRendering","queue","oldVNode","oldDom","parentDom","diff","__n","ownerSVGElement","commitRoot","diffChildren","renderResult","newParentVNode","oldParentVNode","globalContext","isSvg","excessDomChildren","isHydrating","j","childVNode","newDom","firstChildDom","refs","oldChildren","EMPTY_ARR","oldChildrenLength","EMPTY_OBJ","reorderChildren","placeChild","applyRef","tmp","out","nextDom","sibDom","outer","nextSibling","diffProps","setStyle","setProperty","IS_NON_DIMENSIONAL","dom","oldValue","useCapture","cssText","eventProxyCapture","eventProxy","removeEventListener","newVNode","isNew","oldProps","oldState","clearProcessingException","newProps","componentContext","renderHook","newType","contextType","__E","doRender","__s","getChildContext","diffElementNodes","root","oldHtml","newHtml","nodeType","createTextNode","createElementNS","is","childNodes","dangerouslySetInnerHTML","__html","hydrate","checked","parentVNode","skipRemove","replaceNode","defaultValue","contextId","Consumer","contextValue","subs","old","ctor","handled","getDerivedStateFromError","update","__createBinding","k","k2","desc","getOwnPropertyDescriptor","__exportStar","shallowDiffers","PureComponent","memo","comparer","updateRef","Memoed","forwardRef","fn","Forwarded","clone","$$typeof","REACT_FORWARD_SYMBOL","__f","detachedClone","detachedParent","effect","removeOriginal","originalParent","Suspense","_suspenders","suspended","__a","lazy","loader","Lazy","prom","SuspenseList","_next","_map","ContextProvider","Portal","container","_container","containerInfo","textContent","preactRender","preactHydrate","empty","isPropagationStopped","cancelBubble","isDefaultPrevented","defaultPrevented","createFactory","isValidElement","REACT_ELEMENT_TYPE","preactCloneElement","findDOMNode","unstable_batchedUpdates","startTransition","useDeferredValue","useTransition","useInsertionEffect","useSyncExternalStore","getSnapshot","_instance","_getSnapshot","_useState","isPureReactComponent","oldDiffHook","for","mapFn","Children","only","normalized","toArray","oldCatchError","oldUnmount","__R","suspendingVNode","suspendingComponent","resolved","onResolved","onSuspensionComplete","__u","suspendedVNode","pop","wasHydrating","detachedComponent","fallback","list","delete","revealOrder","size","delegated","unsuspend","wrappedUnsuspend","Map","reverse","CAMEL_PROPS","IS_DOM","onChangeInputType","v","oldEventHook","persist","nativeEvent","classNameDescriptor","class","oldVNodeHook","nonCustomElement","multiple","selected","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentDispatcher","readContext","version","flushSync","StrictMode","Preact","interopDefault","getElementById","firstElementChild","app","preRenderData","inlineDataElement","querySelector","decodeURI","CLI_DATA","handleBlur","needToFocus","handleFocus","modalElement","focusLaterElements","toFocus","detachEvent","removeClass","at","cls","htmlElement","htmlClassList","_cls","docBodyClassList","classString","classListRef","poll","incrementReference","decrementReference","getPreviousSibling","inner","end","async","load","AsyncComponent","mod","prev","me","_parentDom","PENDING","preload","Breadcrumbs","routingConfig","breadcrumbs","currentUrl","unshift","breadcrumb","styles","to","App","setCurrentUrl","Login","Home","Documentation","RealGameStats","Examples","Games","Providers","Casinos","alt","isUserAuthenticated","onRouteChange","ReactModal","setAppElement","getObjectPropertyByString","jsonObject","pathParts","clonedJsonObject","pathPart","_exenv","EE","SafeHTMLElement","HTMLElement","__webpack_amd_options__"],"mappings":"aACE,SAASA,EAAqBC,GAQ7B,IAPA,IAMIC,EAAUC,EANVC,EAAWH,EAAK,GAChBI,EAAcJ,EAAK,GAKAK,EAAI,EAAGC,EAAW,GACpCD,EAAIF,EAASI,OAAQF,IACzBH,EAAUC,EAASE,GAChBG,OAAOC,UAAUC,eAAeC,KAAKC,EAAiBV,IAAYU,EAAgBV,IACpFI,EAASO,KAAKD,EAAgBV,GAAS,IAExCU,EAAgBV,GAAW,EAE5B,IAAID,KAAYG,EACZI,OAAOC,UAAUC,eAAeC,KAAKP,EAAaH,KACpDa,EAAQb,GAAYG,EAAYH,IAKlC,IAFGc,GAAqBA,EAAoBf,GAEtCM,EAASC,QACdD,EAASU,OAATV,EAGF,CA0BA,SAASW,EAAoBhB,GAG5B,GAAGiB,EAAiBjB,GACnB,OAAOiB,EAAiBjB,GAAUkB,QAGnC,IAAIC,EAASF,EAAiBjB,GAAY,CACzCI,EAAGJ,EACHoB,GAAG,EACHF,QAAS,CAAC,GAUX,OANAL,EAAQb,GAAUU,KAAKS,EAAOD,QAASC,EAAQA,EAAOD,QAASF,GAG/DG,EAAOC,GAAI,EAGJD,EAAOD,OACf,CA3CA,IAAID,EAAmB,CAAC,EAGpBI,EAAqB,CACxB,EAAG,GAMAV,EAAkB,CACrB,EAAG,GAoCJK,EAAoBM,EAAI,SAAuBrB,GAC9C,IAAIsB,EAAW,GAKZF,EAAmBpB,GAAUsB,EAASX,KAAKS,EAAmBpB,IACzB,IAAhCoB,EAAmBpB,IAFX,CAAC,EAAI,EAAE,EAAI,EAAE,EAAI,EAAE,EAAI,GAEgBA,IACtDsB,EAASX,KAAKS,EAAmBpB,GAAW,IAAIuB,SAAQ,SAASC,EAASC,GAIzE,IAHA,IAAIC,GAAa,CAAC,EAAI,oDAAoD,EAAI,gBAAgB,EAAI,sBAAsB,EAAI,iBAAiB,EAAI,cAAc,EAAI,aAAa,EAAI,cAAc,EAAI,kBAAkB,GAAK,yBAAyB1B,IAAUA,GAAW,UAAY,CAAC,EAAI,QAAQ,EAAI,QAAQ,EAAI,QAAQ,EAAI,QAAQ,EAAI,QAAQ,EAAI,QAAQ,EAAI,QAAQ,EAAI,QAAQ,GAAK,SAASA,GAAW,OAC7Y2B,EAAWZ,EAAoBa,EAAIF,EACnCG,EAAmBC,SAASC,qBAAqB,QAC7C5B,EAAI,EAAGA,EAAI0B,EAAiBxB,OAAQF,IAAK,CAChD,IACI6B,GADAC,EAAMJ,EAAiB1B,IACR+B,aAAa,cAAgBD,EAAIC,aAAa,QACjE,GAAe,eAAZD,EAAIE,MAAyBH,IAAaN,GAAQM,IAAaL,GAAW,OAAOH,GACrF,CACA,IAAIY,EAAoBN,SAASC,qBAAqB,SACtD,IAAQ5B,EAAI,EAAGA,EAAIiC,EAAkB/B,OAAQF,IAAK,CACjD,IAAI8B,EAEJ,IADID,GADAC,EAAMG,EAAkBjC,IACT+B,aAAa,gBAChBR,GAAQM,IAAaL,EAAU,OAAOH,GACvD,CACA,IAAIa,EAAUP,SAASQ,cAAc,QAErCD,EAAQF,IAAM,aACdE,EAAQE,KAAO,WAkBfF,EAAQG,QAAUH,EAAQI,OAjBL,SAAUC,GAG9B,GADAL,EAAQG,QAAUH,EAAQI,OAAS,KAChB,SAAfC,EAAMH,KACTf,QACM,CACN,IAAImB,EAAYD,IAAyB,SAAfA,EAAMH,KAAkB,UAAYG,EAAMH,MAChEK,EAAWF,GAASA,EAAMG,QAAUH,EAAMG,OAAOnB,MAAQC,EACzDmB,EAAM,IAAIC,MAAM,qBAAuB/C,EAAU,cAAgB4C,EAAW,KAChFE,EAAIE,KAAO,wBACXF,EAAIP,KAAOI,EACXG,EAAIG,QAAUL,SACPxB,EAAmBpB,GAC1BqC,EAAQa,WAAWC,YAAYd,GAC/BZ,EAAOqB,EACR,CACD,EAEAT,EAAQX,KAAOC,EAEfG,SAASsB,KAAKC,YAAYhB,EAC3B,IAAGiB,MAAK,WACPlC,EAAmBpB,GAAW,CAC/B,KAKD,IAAIuD,EAAqB7C,EAAgBV,GACzC,GAA0B,IAAvBuD,EAGF,GAAGA,EACFjC,EAASX,KAAK4C,EAAmB,QAC3B,CAEN,IAAIC,EAAU,IAAIjC,SAAQ,SAASC,EAASC,GAC3C8B,EAAqB7C,EAAgBV,GAAW,CAACwB,EAASC,EAC3D,IACAH,EAASX,KAAK4C,EAAmB,GAAKC,GAGtC,IACIC,EADAC,EAAS5B,SAASQ,cAAc,UAGpCoB,EAAOC,QAAU,QACjBD,EAAOE,QAAU,IACb7C,EAAoB8C,IACvBH,EAAOI,aAAa,QAAS/C,EAAoB8C,IAElDH,EAAOK,IA3GV,SAAwB/D,GACvB,OAAOe,EAAoBa,EAAI,IAAM,CAAC,EAAI,oDAAoD,EAAI,gBAAgB,EAAI,sBAAsB,EAAI,iBAAiB,EAAI,cAAc,EAAI,aAAa,EAAI,cAAc,EAAI,kBAAkB,GAAK,yBAAyB5B,IAAUA,GAAW,UAAY,CAAC,EAAI,QAAQ,EAAI,QAAQ,EAAI,QAAQ,EAAI,QAAQ,EAAI,QAAQ,EAAI,QAAQ,EAAI,QAAQ,EAAI,QAAQ,GAAK,SAASA,GAAW,KACta,CAyGgBgE,CAAehE,GAG5B,IAAIiE,EAAQ,IAAIlB,MAChBU,EAAmB,SAAUf,GAE5BgB,EAAOlB,QAAUkB,EAAOjB,OAAS,KACjCyB,aAAaN,GACb,IAAIO,EAAQzD,EAAgBV,GAC5B,GAAa,IAAVmE,EAAa,CACf,GAAGA,EAAO,CACT,IAAIxB,EAAYD,IAAyB,SAAfA,EAAMH,KAAkB,UAAYG,EAAMH,MAChE6B,EAAU1B,GAASA,EAAMG,QAAUH,EAAMG,OAAOkB,IACpDE,EAAMI,QAAU,iBAAmBrE,EAAU,cAAgB2C,EAAY,KAAOyB,EAAU,IAC1FH,EAAMK,KAAO,iBACbL,EAAM1B,KAAOI,EACbsB,EAAMhB,QAAUmB,EAChBD,EAAM,GAAGF,EACV,CACAvD,EAAgBV,QAAWuE,CAC5B,CACD,EACA,IAAIX,EAAUY,YAAW,WACxBf,EAAiB,CAAElB,KAAM,UAAWM,OAAQa,GAC7C,GAAG,MACHA,EAAOlB,QAAUkB,EAAOjB,OAASgB,EACjC3B,SAASsB,KAAKC,YAAYK,EAC3B,CAED,OAAOnC,QAAQkD,IAAInD,EACpB,EAGAP,EAAoB2D,EAAI9D,EAGxBG,EAAoB4D,EAAI3D,EAGxBD,EAAoB6D,EAAI,SAAS3D,EAASqD,EAAMO,GAC3C9D,EAAoB+D,EAAE7D,EAASqD,IAClChE,OAAOyE,eAAe9D,EAASqD,EAAM,CAAEU,YAAY,EAAMC,IAAKJ,GAEhE,EAGA9D,EAAoBmE,EAAI,SAASjE,GACX,oBAAXkE,QAA0BA,OAAOC,aAC1C9E,OAAOyE,eAAe9D,EAASkE,OAAOC,YAAa,CAAEC,MAAO,WAE7D/E,OAAOyE,eAAe9D,EAAS,aAAc,CAAEoE,OAAO,GACvD,EAOAtE,EAAoBuE,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQtE,EAAoBsE,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,iBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKnF,OAAOoF,OAAO,MAGvB,GAFA3E,EAAoBmE,EAAEO,GACtBnF,OAAOyE,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOtE,EAAoB6D,EAAEa,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,EAAM,EAAEC,KAAK,KAAMD,IAC9I,OAAOF,CACR,EAGA1E,EAAoB8E,EAAI,SAAS3E,GAChC,IAAI2D,EAAS3D,GAAUA,EAAOsE,WAC7B,WAAwB,OAAOtE,EAAgB,OAAG,EAClD,WAA8B,OAAOA,CAAQ,EAE9C,OADAH,EAAoB6D,EAAEC,EAAQ,IAAKA,GAC5BA,CACR,EAGA9D,EAAoB+D,EAAI,SAASgB,EAAQC,GAAY,OAAOzF,OAAOC,UAAUC,eAAeC,KAAKqF,EAAQC,EAAW,EAGpHhF,EAAoBa,EAAI,IAGxBb,EAAoBiF,GAAK,SAASlD,GAA2B,MAApBmD,QAAQhC,MAAMnB,GAAYA,CAAK,EAExE,IAAIoD,EAAaC,OAAqB,aAAIA,OAAqB,cAAK,GAChEC,EAAmBF,EAAWvF,KAAKiF,KAAKM,GAC5CA,EAAWvF,KAAOd,EAClBqG,EAAaA,EAAWG,QACxB,IAAI,IAAIlG,EAAI,EAAGA,EAAI+F,EAAW7F,OAAQF,IAAKN,EAAqBqG,EAAW/F,IAC3E,IAAIU,EAAsBuF,EAInBrF,EAAoBA,EAAoBuF,EAAI,O,uCC3PvC,SAEEC,EAAOC,EAAKC,GAE3B,IAAK,IAAItG,KAAKsG,EACbD,EAAIrG,GAAKsG,EAAMtG,GAEhB,OAAOqG,WAGQE,EAAKC,EAAKC,EAAOC,GAChC,IAGCC,EAHGC,EAAM,wBACTpC,EAAIgC,EAAIK,MAAMD,GACdE,EAAU,GAEX,GAAItC,GAAKA,EAAE,GAEV,IADA,IAAI/C,EAAI+C,EAAE,GAAGuC,MAAM,KACV/G,EAAI,EAAGA,EAAIyB,EAAEvB,OAAQF,IAAK,CAClC,IAAI+E,EAAItD,EAAEzB,GAAG+G,MAAM,KACnBD,EAAQE,mBAAmBjC,EAAE,KAAOiC,mBACnCjC,EAAEmB,MAAM,GAAGe,KAAK,KAInBT,GAAMU,EAAWV,EAAIW,QAAQP,EAAK,KAClCH,EAAQS,EAAWT,GAAS,IAE5B,IADA,IAAIW,EAAMC,KAAKD,IAAIZ,EAAItG,OAAQuG,EAAMvG,QAC5BF,EAAI,EAAGA,EAAIoH,EAAKpH,IACxB,GAAIyG,EAAMzG,IAA6B,MAAvByG,EAAMzG,GAAGsH,OAAO,GAAY,CAC3C,IAAIC,EAAQd,EAAMzG,GAAGmH,QAAQ,gBAAiB,IAC7CK,GAASf,EAAMzG,GAAG6G,MAAM,YAAcY,GAAO,IAAM,GACnDC,GAAQF,EAAMG,QAAQ,KACtBC,GAAQJ,EAAMG,QAAQ,KACtBE,EAAMrB,EAAIxG,IAAM,GACjB,IAAK6H,IAAQD,IAASJ,EAAMG,QAAQ,KAAO,GAAKD,GAAO,CACtDf,KACA,KAGD,IADAG,EAAQS,GAASP,mBAAmBa,GAChCH,GAAQE,EAAM,CACjBd,EAAQS,GAASf,EAAIN,MAAMlG,GAAG8H,IAAId,oBAAoBC,KAAK,KAC3D,eAESR,EAAMzG,KAAOwG,EAAIxG,GAAI,CAC/B2G,KACA,KAGF,aAAID,gBAAyBC,IACtBG,WAGQiB,EAAaC,EAAGC,GAC/B,OAAOD,EAAEE,KAAOD,EAAEC,KAAO,EAAIF,EAAEE,KAAOD,EAAEC,MAAQ,EAAIF,EAAEG,MAAQF,EAAEE,eAIjDC,EAAuBC,EAAOF,GAG7C,OAFAE,EAAMF,MAAQA,EACdE,EAAMH,KAkBP,SAAmBG,GAClB,OAAOA,EAAM/B,cAAgB,EAJtBY,EAI+BmB,EAAM/B,MAAMgC,MAJ1BR,IAAIS,GAAatB,KAAK,GAfjCuB,CAkBd,CAlBwBH,GAChBA,EAAM/B,eAGEY,EAAWV,GAC1B,OAAOA,EAAIW,QAAQ,eAAgB,IAAIJ,MAAM,cAG9BwB,EAAYE,GAC3B,MAA4B,KAArBA,EAAQnB,OAAO,GACnB,EAAI,MAAMK,QAAQc,EAAQnB,OAAOmB,EAAQvI,OAAS,KAAO,EACzD,CC5DJ,CAmCA,SAASwI,IACR,IAAIlC,EAQJ,WANCA,EADGmC,GAAiBA,EAAcC,SAC5BD,EAAcC,SACVD,GAAiBA,EAAcE,mBACnCF,EAAcE,qBAEM,oBAAbD,SAA2BA,SAAWnB,GAEtCqB,UAAY,KAAKtC,EAAIuC,QAAU,GAG9C,UAAStC,EAAMD,EAAKW,GAWnB,gBAXmBA,UACA,iBAARX,GAAoBA,EAAIA,MAClCW,EAAUX,EAAIW,QACdX,EAAMA,EAAIA,KAYZ,SAAkBA,GACjB,IAAK,IAAIxG,EAAIgJ,EAAQ9I,OAAQF,KAC5B,GAAIgJ,EAAQhJ,GAAGiJ,SAASzC,GAAM,SAE/B,QAZIyC,CAQL,CARczC,IA3Bd,SAAgBA,EAAKpE,kBAAO,QACvBuG,GAAiBA,EAAcvG,GAClCuG,EAAcvG,GAAMoE,GACS,oBAAZ0C,SAA2BA,QAAW9G,YACvD8G,QAAW9G,WAAa,KAAM,KAAMoE,EAwBpC2C,CA5BF,CA4BS3C,EAAKW,EAAU,UAAY,QAG5BiC,EAAQ5C,EAYhB,UAAS4C,EAAQ5C,GAEhB,IADA,IAAI6C,KACKrJ,EAAI,EAAGA,EAAIgJ,EAAQ9I,OAAQF,IAC/BgJ,EAAQhJ,GAAGoJ,QAAQ5C,KACtB6C,MAGF,OAAOA,CAGR,UAASC,EAAcC,GAEtB,GAAKA,GAASA,EAAKxH,aAAnB,CAEA,IAAIR,EAAOgI,EAAKxH,aAAa,QAC5BW,EAAS6G,EAAKxH,aAAa,UAG5B,GAAKR,GAASA,EAAKsF,MAAM,WAAYnE,GAAWA,EAAOmE,MAAM,cAI7D,OAAOJ,EAAMlF,GAGd,UAASiI,EAAQtI,GAIhB,OAHIA,EAAEuI,0BAA0BvI,EAAEuI,2BAC9BvI,EAAEwI,iBAAiBxI,EAAEwI,kBACzBxI,EAAEyI,mBAKH,UAASC,EAAoB1I,GAE5B,KAAIA,EAAE2I,SAAW3I,EAAE4I,SAAW5I,EAAE6I,QAAU7I,EAAE8I,UAAY9I,EAAE+I,QAA1D,CAEA,IAAI9E,EAAIjE,EAAEwB,OACV,GACC,GAAoB,MAAhByC,EAAE+E,WAAqB/E,EAAEpD,aAAa,QAAS,CAClD,GAAIoD,EAAEgF,aAAa,gBAAkBhF,EAAEgF,aAAa,UAAW,OAE/D,GAAIb,EAAcnE,GACjB,OAAOqE,EAAQtI,UAGRiE,EAAIA,EAAEpC,YAGjB,CAkBA,SAASqH,EAAO9D,GACXA,EAAM4C,UACTP,EAAgBrC,EAAM4C,SAGvBmB,KAAKC,MAAQ,CACZ9D,IAAKF,EAAME,KAAOkC,IAOpBtC,C,sHDhKMqB,G,UAAQ,ICURA,EAAQ,GACRuB,EAAU,GACVuB,EAAO,GACT5B,EAAgB,KAEd6B,EAAuB,CAC5BhE,IAAKkC,KAGA+B,EAAgBC,YAAcF,GA8GhCG,KA+BJvE,EAFqBgE,EAAOhK,UAAY,IAAIwK,IAExB,CACnBC,+BAAsBvE,GACrB,WAAIA,UAEHA,EAAME,MAAQ6D,KAAK/D,MAAME,KAAOF,EAAMwE,WAAaT,KAAK/D,MAAMwE,UAKhE7B,kBAASzC,GACR,IAAMuE,EAAWC,YAAaX,KAAK/D,MAAMyE,UACzC,gBAAiD3G,KAArC6G,EAAkBF,EAAUvE,IAIzC4C,iBAAQ5C,GACP6D,KAAKa,SAAS,CAAE1E,QAEhB,IAAM6C,EAAWgB,KAAKpB,SAASzC,GAK/B,OAFK6D,KAAKc,GAAWd,KAAKe,cAEnB/B,GAGRgC,8BACChB,KAAKc,IAAY,EAGlBG,wCA1DIX,IACJA,KAEKhC,GACJ4C,iBAAiB,YAAY,WAC5BnC,EAAQV,QAGV6C,iBAAiB,QAAS3B,IAoDzBZ,EAAQxI,KAAK6J,MACT1B,IACH0B,KAAKmB,EAAY7C,EAAc8C,QAAO,YACrC,IAAI7C,EAAW8C,EAAO9C,UAAY8C,EAClCC,EAAKvC,YAAWR,EAASE,UAAY,KAAKF,EAASG,QAAU,SAG/DsB,KAAKc,IAAY,EAGlBS,gCAC+B,wBAAdJ,GAA0BnB,KAAKmB,IAC/CxC,EAAQ6C,OAAO7C,EAAQrB,QAAQ0C,MAAO,IAGvCyB,+BACCzB,KAAKc,IAAY,EAGlBY,8BACC1B,KAAKc,IAAY,EAGlBF,WAAkBF,EAAUvE,GAC3BuE,EAAWA,EAASiB,OAAO5D,GAAwB6D,KAAKlE,GACxD,IAAK,IAAI/H,EAAI,EAAGA,EAAI+K,EAAS7K,OAAQF,IAAK,CACzC,IAAIqI,EAAQ0C,EAAS/K,GACjB8G,EAAUP,EAAKC,EAAK6B,EAAM/B,MAAMgC,KAAMD,EAAM/B,OAChD,GAAIQ,EAAS,MAAO,CAACuB,EAAOvB,KAI9BoF,yBAIKpF,EAASqF,EAJKrB,aAActE,QAC5B4F,EAAM/B,KAAKgC,EAEXC,EAASjC,KAAKY,EAAkBD,cAH5BD,UAGoDvE,GAa5D,GAXI8F,IAEHH,EAAUI,YACTD,EAAO,GACPlG,EAAOA,EAAO,CAAEI,MAAKM,QAHtBA,EAAUwF,EAAO,IAGgBxF,GAAU,CACzCtB,WACAgH,eAKChG,KAAS4F,GAAOA,EAAI5F,KAAM,CAU7BJ,EAAOoE,EAAuB4B,EAAM/B,KAAKgC,EAT5B,CACZ7F,MACAiG,SAAUL,GAAOA,EAAI5F,IACrB2F,UACA7D,KAAM6D,EAAUA,EAAQ7F,MAAMgC,KAAO,KACrCxB,YAODsF,EAAIM,OAASrC,KACb+B,EAAIE,OAASH,EAAU,CAACA,GAAW,GAGnC,IAAK,IAAInM,EAAIuK,EAAKrK,OAAQF,KAAOuK,EAAKvK,GAAG,IAEjB,mBAAb8K,GACVA,EAASsB,EAIX,QAAO,YACL3B,EAAckC,UAASzH,MAAOkH,GAAMD,MAKlCS,IAEAC,EAAQ,YAAAvG,OAASwG,YAAExG,EAAMyG,UAAWzG,G,sCC/Q1CnG,OAAOyE,eAAe9D,EAAS,aAAc,CAAEoE,OAAO,IACtDpE,EAAQkM,YAAclM,EAAQmM,0BAAuB,EACrD,IAAMC,EAAcC,EAAQ,QACtBC,EAAWD,EAAQ,QAmBzBrM,EAAQmM,qBAlBqB,SAACI,GAC1B,IAAMC,GAAWD,aAAqC,EAASA,EAAME,aAAe,EAC9EC,GAAgBH,aAAqC,EAASA,EAAMI,IAAIC,kBAAoB,EAIlG,MAAO,CACHC,IAAKL,IAJMD,aAAqC,EAASA,EAAMM,MAAQ,EAKvEC,GAAIN,EACJO,IAAKP,EACLQ,QAASR,IANMD,aAAqC,EAASA,EAAMU,KAAKC,OAAS,EAOjFC,QAASX,IANMD,aAAqC,EAASA,EAAMU,KAAKG,KAAKP,MAAQ,EAOrFQ,UAAWb,GAAWE,EACtBY,SAAUd,GAAWE,EACrBa,SAAUf,GAAWE,EACrBD,WAAYD,EAEnB,EA+BDxM,EAAQkM,YA7BY,SAAC9H,GAAoC,IAA7BoJ,EAA6B,uDAApB,MAAOC,EAAa,uCACrD,IAAKrJ,GAAmB,IAAVA,EACV,MAAO,IAEX,IAAMsJ,EAAiBtB,EAAYuB,kBACnC,OAAQH,GACJ,IAAK,MACD,OAAOpJ,EAAMwJ,WACjB,IAAK,SACD,OAAOC,OAAOzJ,GAAO0J,iBACzB,IAAK,UACD,MAAO,GAAP,QAAU,EAAIxB,EAASyB,qBAAqBF,OAAOzJ,GAAQsJ,GAA3D,KACJ,IAAK,QACD,MAAO,GAAP,QAAU,EAAIpB,EAASyB,qBAAqBF,OAAOzJ,GAAQsJ,GAA3D,KACJ,IAAK,gBACD,OAAO,EAAI1N,EAAQkM,aAAa2B,OAAOzJ,GAASgI,EAAY4B,gBAAiB,SACjF,IAAK,YACD,MAAO,KAAP,QAAY,EAAI1B,EAASyB,qBAAqB,EAAIF,OAAOzJ,GAAQsJ,IACrE,IAAK,WACD,OAAOO,KAAKC,aAAa,QAAS,CAC9BC,MAAO,WACPV,aACDD,OAAOK,OAAOzJ,IACrB,IAAK,YACD,OAAO6J,KAAKC,aAAa,SAASV,OAAOK,OAAOzJ,IACpD,QACI,MAAM,IAAItC,MAAM,gCAE3B,C,sCCED,SAASsM,EAAeC,EAAUC,GAChC,IAAKD,IAAaA,EAASjP,OACzB,MAAM,IAAI0C,MAAM,oDAAsDwM,EAAW,IAEpF,CAaD,SAASC,EAAgBC,GACvB,IAAIC,EAAKD,GAAcE,EACvB,OAAID,EACKE,MAAMC,QAAQH,IAAOA,aAAcI,gBAAkBJ,aAAcK,SAAWL,EAAK,CAACA,KAE3F,EAAIM,EAAUC,UAAS,EAAO,CAAC,2CAA4C,iEAAkE,0DAA2D,mEAAoE,qCAAqC7I,KAAK,MAE/S,GAEV,CA9ED9G,OAAOyE,eAAe9D,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAQiP,WAqBR,WACMP,IACEA,EAAcQ,gBAChBR,EAAcQ,gBAAgB,eACG,MAAxBR,EAActP,OACvBsP,EAAcS,SAAQ,SAAUC,GAC9B,OAAOA,EAAQF,gBAAgB,cAChC,IAEDrO,SAASwO,iBAAiBX,GAAeS,SAAQ,SAAUC,GACzD,OAAOA,EAAQF,gBAAgB,cAChC,KAGLR,EAAgB,IACjB,EAnCD1O,EAAQsP,IAsCR,WAOC,EA5CDtP,EAAQoO,eAAiBA,EACzBpO,EAAQuP,WAoDR,SAAoBH,GAClB,IAAII,EAAaJ,EACjB,GAA0B,iBAAfI,GAA2BC,EAAiBC,UAAW,CAChE,IAAIjB,EAAK5N,SAASwO,iBAAiBG,GACnCpB,EAAeK,EAAIe,GACnBA,EAAaf,CACd,CAED,OADAC,EAAgBc,GAAcd,CAE/B,EA5DD1O,EAAQuO,gBAAkBA,EAC1BvO,EAAQ2P,KAwER,SAAcnB,GACZ,IAAIoB,GAA4B,EAC5BC,GAAoB,EACpBC,OAAiBxM,EAErB,IACE,IAAK,IAAgEyM,EAA5DC,EAAYzB,EAAgBC,GAAYtK,OAAO+L,cAAsBL,GAA6BG,EAAQC,EAAUE,QAAQC,MAAOP,GAA4B,EAAM,CACnKG,EAAM3L,MAEZvB,aAAa,cAAe,OAChC,CAcF,CAbC,MAAOhB,GACPgO,GAAoB,EACpBC,EAAiBjO,CAClB,CATD,QAUE,KACO+N,GAA6BI,EAAUI,QAC1CJ,EAAUI,QAMb,CARD,QAKE,GAAIP,EACF,MAAMC,CAET,CACF,CACF,EAhGD9P,EAAQqQ,KAkGR,SAAc7B,GACZ,IAAI8B,GAA6B,EAC7BC,GAAqB,EACrBC,OAAkBlN,EAEtB,IACE,IAAK,IAAiEmN,EAA7DC,EAAanC,EAAgBC,GAAYtK,OAAO+L,cAAuBK,GAA8BG,EAASC,EAAWR,QAAQC,MAAOG,GAA6B,EAAM,CACzKG,EAAOrM,MAEb8K,gBAAgB,cACpB,CAcF,CAbC,MAAOrN,GACP0O,GAAqB,EACrBC,EAAkB3O,CACnB,CATD,QAUE,KACOyO,GAA8BI,EAAWN,QAC5CM,EAAWN,QAMd,CARD,QAKE,GAAIG,EACF,MAAMC,CAET,CACF,CACF,EA1HDxQ,EAAQ2Q,6BA4HR,WACEjC,EAAgB,IACjB,EA5HD,IAMgCnJ,EAN5BqL,EAAWvE,EAAQ,QAEnB0C,GAI4BxJ,EAJOqL,IAIcrL,EAAIhB,WAAagB,EAAM,CAAEyJ,QAASzJ,GAFnFkK,EAAmBpD,EAAQ,QAI3BqC,EAAgB,I,oCCrBpBrP,OAAOyE,eAAe9D,EAAS,aAAc,CAAEoE,OAAO,IACtDpE,EAAQ+N,yBAAsB,EAE9B/N,EAAQ+N,oBADoB,SAAC3J,EAAOsJ,GAAR,OAA2BG,OAAOzJ,EAAMyM,QAAQnD,IAAiBE,UAAjE,C,sCCF5BvO,OAAOyE,eAAe9D,EAAS,aAAc,CAAEoE,OAAO,IACtDpE,EAAQ8Q,qBAAuB9Q,EAAQ+Q,cAAgB/Q,EAAQgR,aAAehR,EAAQiR,MAAQjR,EAAQkR,OAASlR,EAAQmR,OAASnR,EAAQoR,mBAAqBpR,EAAQqR,kBAAoBrR,EAAQsR,YAActR,EAAQuR,iBAAc,EACrO,IAAMnF,EAAcC,EAAQ,QAC5BrM,EAAQuR,aAAe,EACvBvR,EAAQsR,aAAe,EACvBtR,EAAQqR,mBAAqB,EAC7BrR,EAAQoR,oBAAsB,EAW9BpR,EAAQmR,OALR,SAAgBK,EAAKC,GACjB,OAAQA,EACFD,EAAMC,EAAMrF,EAAY4B,gBACxBhO,EAAQuR,WACjB,EAODvR,EAAQkR,OALR,SAAgBQ,EAAQjF,GACpB,OAAQA,EACFiF,EAASjF,EACTzM,EAAQsR,WACjB,EAKDtR,EAAQiR,MAHR,SAAeQ,EAAKD,GAChB,OAAOA,EAAMC,CAChB,EAODzR,EAAQgR,aALR,SAAsB9J,EAAGC,GACrB,OAAQA,EACFD,EAAIC,EACJnH,EAAQqR,iBACjB,EAODrR,EAAQ+Q,cALR,SAAuB7J,EAAGC,GACtB,OAAQA,EACFD,EAAIC,EAAIiF,EAAY4B,gBACpBhO,EAAQoR,kBACjB,EASDpR,EAAQ8Q,qBAPR,SAA8Ba,EAAKC,EAAcC,GAC7C,OAAKA,EAIEtL,KAAKuL,KAAMF,EAAeC,EAAUtL,KAAKwL,IAAKJ,EAAME,EAD5C,IAFJ,CAId,C,oCC9CDxS,OAAOyE,eAAe9D,EAAS,aAAc,CAAEoE,OAAO,IACtDpE,EAAQgS,eAAY,EAEpB,SAAWA,GACPA,EAAUA,EAAS,GAAS,KAAO,KACnCA,EAAUA,EAAS,WAAiB,KAAO,aAC3CA,EAAUA,EAAS,aAAmB,KAAO,eAC7CA,EAAUA,EAAS,UAAgB,KAAO,YAC1CA,EAAUA,EAAS,SAAe,KAAO,UAL7C,EAMehS,EAAQgS,YAAchS,EAAQgS,UAAY,CAAC,G,sCCG1D,SAASC,IACP,IAAIxD,EAAKyD,UAAU9S,OAAS,QAAsBkE,IAAjB4O,UAAU,GAAmBA,UAAU,GAAKrR,SAE7E,OAAO4N,EAAG0D,cAAcC,WAAaH,EAAiBxD,EAAG0D,cAAcC,YAAc3D,EAAG0D,aACzF,CAfD9S,OAAOyE,eAAe9D,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAQgP,QAcR,SAAkBvG,EAAMhH,GACtB,IAAI4Q,GAAW,EAAIC,EAAWtD,SAASvG,GAEvC,GAAK4J,EAASjT,OAAd,CAMA,IAAIwC,OAAS,EAETsH,EAAWzH,EAAMyH,SACjB/G,EAAOkQ,EAAS,GAChBE,EAAOF,EAASA,EAASjT,OAAS,GAClC+S,EAAgBF,IAIpB,GAAIxJ,IAAS0J,EAAe,CAC1B,IAAKjJ,EAAU,OACftH,EAAS2Q,CACV,CAUD,GARIA,IAASJ,GAAkBjJ,IAC7BtH,EAASO,GAGPA,IAASgQ,GAAiBjJ,IAC5BtH,EAAS2Q,GAGP3Q,EAGF,OAFAH,EAAMoH,sBACNjH,EAAO4Q,QAeT,IAAIC,EAAc,4BAA4BhN,KAAKiN,UAAUC,WAK7D,GAJqC,MAAfF,GAAyC,UAAlBA,EAAY,IAAoE,MAAlD,qBAAqBhN,KAAKiN,UAAUC,WAI/G,CAEA,IAAIC,EAAIP,EAASxL,QAAQsL,GAUzB,GARIS,GAAK,IACPA,GAAK1J,GAAY,EAAI,QAOD,KAJtBtH,EAASyQ,EAASO,IAQhB,OAHAnR,EAAMoH,sBACNjH,EAASsH,EAAWqJ,EAAOpQ,GACpBqQ,QAIT/Q,EAAMoH,iBAENjH,EAAO4Q,OArBqB,CA9C3B,MAFC/Q,EAAMoH,gBAsET,EAvFD,IAIgCtD,EAJ5BsN,EAAYxG,EAAQ,QAEpBiG,GAE4B/M,EAFQsN,IAEatN,EAAIhB,WAAagB,EAAM,CAAEyJ,QAASzJ,GAoFvFtF,EAAOD,QAAUA,EAAO,O,oCC7FxBX,OAAOyE,eAAe9D,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAQsP,IAyDR,WACEtK,QAAQsK,IAAI,kCACZtK,QAAQsK,IAAIwD,EAAoBC,cAAc3T,QAC9C0T,EAAoBC,cAAc5D,SAAQ,SAAUxO,GAClD,OAAOqE,QAAQsK,IAAI3O,EACpB,IACDqE,QAAQsK,IAAI,qCACb,EA/DDtP,EAAQiP,WAkER,WACE6D,EAAsB,IAAIE,CAC3B,EA9DD,IAAIA,EAAsB,WACxB,IAAInI,EAAQtB,KAIZA,KAAK0J,SAAW,SAAUC,IAC2B,IAA/CrI,EAAMkI,cAAclM,QAAQqM,KAOhCrI,EAAMkI,cAAcrT,KAAKwT,GACzBrI,EAAMsI,KAAK,YACZ,EAED5J,KAAK6J,WAAa,SAAUF,GAC1B,IAAI7L,EAAQwD,EAAMkI,cAAclM,QAAQqM,IACzB,IAAX7L,IAOJwD,EAAMkI,cAAchI,OAAO1D,EAAO,GAClCwD,EAAMsI,KAAK,cACZ,EAED5J,KAAK8J,UAAY,SAAUC,GACzBzI,EAAM0I,YAAY7T,KAAK4T,EACxB,EAED/J,KAAK4J,KAAO,SAAUK,GACpB3I,EAAM0I,YAAYpE,SAAQ,SAAUsE,GAClC,OAAOA,EAAWD,EAElB3I,EAAMkI,cAAc3N,QACrB,GACF,EAEDmE,KAAKwJ,cAAgB,GACrBxJ,KAAKgK,YAAc,EACpB,EAEGT,EAAsB,IAAIE,EAmB9BhT,EAAQgP,QAAU8D,C,sCC3ElBzT,OAAOyE,eAAe9D,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAIgCmB,EAJ5BmO,EAASrH,EAAQ,QAEjBsH,GAE4BpO,EAFKmO,IAEgBnO,EAAIhB,WAAagB,EAAM,CAAEyJ,QAASzJ,GAEvFvF,EAAQgP,QAAU2E,EAAQ3E,QAC1B/O,EAAOD,QAAUA,EAAO,O,moCCPpB4T,EAA4C,KAC1CC,EAAY,oBAAG,YAQjB,OAPKD,IACDA,EAAsBE,MACjBzR,MAAK,WACFuR,EAAsB,IACzB,KAGFA,CACV,IATiB,qDAUZ5R,EAAO,oBAAG,UAAU0D,GAAqE,IAAxDqO,EAAwD,uDAAjC,CAAC,EACtDA,EAAQC,UACTD,EAAQC,QAAU,CAAC,GAGvB,IAAMC,EAAYH,MACZE,EAAU,CACZE,cAAe,UAAF,OAAYD,IAG7BF,EAAQC,QAAR,OACOD,EAAQC,SACRA,GAGP,IAAMG,QAAYC,MAAM1O,EAAKqO,GACvBM,QAAgBF,EAAIG,OAE1B,IAAKH,EAAII,IAAMJ,EAAIK,SAAWxC,YAAUyC,eAAiB/O,EAAIgP,SAAS,UAAW,CAC7E,UACUb,GAGT,CAFC,MAAOhS,GACL,OAAOwS,CACV,CAED,OAAOrS,EAAQ0D,EAAKqO,EACvB,CAED,OAAOM,CACV,IA7BY,sDA8BPM,EAAW,SAACC,GAAD,gBAAiCC,IAAOC,QAAxC,OAAiDF,EAAjD,EAEJ5Q,EAAG,oBAAG,UAAoB4Q,GACnC,IAAMlP,EAAMiP,EAASC,GAErB,OAAO5S,EAAQ0D,EAClB,IAJe,sDAMHqP,EAAS,oBAAG,UAAUH,GAG/B,aAFkB5Q,EAAO4Q,IAEd/V,IACd,IAJqB,sDAMTmW,EAAI,oBAAG,UAAoBJ,EAAkBK,GACtD,IAAMvP,EAAMiP,EAASC,GAErB,OAAO5S,EAAQ0D,EAAK,CAChBwP,OAAQ,OACRlB,QAAS,CACL,eAAgB,oBAEpBiB,KAAME,KAAKC,UAAUH,IAE5B,IAVgB,wDAYJI,EAAU,oBAAG,UAAUT,EAAkBK,GAGlD,aAFkBD,EAAQJ,EAAUK,IAEzBpW,IACd,IAJsB,uD,kCCtEvB,SAASyW,EAAOC,GACZ,MAAO,2BAA2BC,KAAKD,EAC1C,CAJDlW,OAAOyE,eAAe9D,EAAS,aAAc,CAAEoE,OAAO,IACtDpE,EAAQyV,QAAUzV,EAAQsV,YAAS,EAInCtV,EAAQsV,OAASA,EACjB,IAAMI,EAAY,CACd,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,MACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,MACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,MACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,MACN,CAAC,IAAK,MACN,CAAC,KAAM,MACP,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,MACN,CAAC,IAAK,MACN,CAAC,IAAK,KACN,C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","file":"bundle.fdd5f.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t};\n\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t1: 0\n \t};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t1: 0\n \t};\n\n\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"\" + ({\"0\":\"vendors~route-casinos~route-games~route-providers\",\"3\":\"route-casinos\",\"4\":\"route-documentation\",\"5\":\"route-examples\",\"6\":\"route-games\",\"7\":\"route-home\",\"8\":\"route-login\",\"9\":\"route-providers\",\"10\":\"route-real-game-stats\"}[chunkId]||chunkId) + \".chunk.\" + {\"0\":\"a2bdb\",\"3\":\"3a185\",\"4\":\"4df95\",\"5\":\"ad557\",\"6\":\"15de0\",\"7\":\"6e0a3\",\"8\":\"07d9f\",\"9\":\"f4fa4\",\"10\":\"6b945\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"3\":1,\"6\":1,\"8\":1,\"9\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"\" + ({\"0\":\"vendors~route-casinos~route-games~route-providers\",\"3\":\"route-casinos\",\"4\":\"route-documentation\",\"5\":\"route-examples\",\"6\":\"route-games\",\"7\":\"route-home\",\"8\":\"route-login\",\"9\":\"route-providers\",\"10\":\"route-real-game-stats\"}[chunkId]||chunkId) + \".chunk.\" + {\"0\":\"31d6c\",\"3\":\"ea606\",\"4\":\"31d6c\",\"5\":\"31d6c\",\"6\":\"ea606\",\"7\":\"31d6c\",\"8\":\"a15a6\",\"9\":\"ea606\",\"10\":\"31d6c\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tvar onLinkComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks.\n \t\t\t\t\tlinkTag.onerror = linkTag.onload = null;\n \t\t\t\t\tif (event.type === 'load') {\n \t\t\t\t\t\tresolve();\n \t\t\t\t\t} else {\n \t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n \t\t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n \t\t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\t\terr.type = errorType;\n \t\t\t\t\t\terr.request = realHref;\n \t\t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\t\treject(err);\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tdocument.head.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"mdyV\");\n","/**\n * Assign properties from `props` to `obj`\n * @template O, P The obj and props types\n * @param {O} obj The object to copy properties to\n * @param {P} props The object to copy properties from\n * @returns {O & P}\n */\nexport function assign(obj, props) {\n\tfor (let i in props) obj[i] = props[i];\n\treturn /** @type {O & P} */ (obj);\n}\n\n/**\n * Check if two objects have a different shape\n * @param {object} a\n * @param {object} b\n * @returns {boolean}\n */\nexport function shallowDiffers(a, b) {\n\tfor (let i in a) if (i !== '__source' && !(i in b)) return true;\n\tfor (let i in b) if (i !== '__source' && a[i] !== b[i]) return true;\n\treturn false;\n}\n\nexport function removeNode(node) {\n\tlet parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n","import {\n\tcreateElement,\n\trender as preactRender,\n\tcloneElement as preactCloneElement,\n\tcreateRef,\n\tComponent,\n\tcreateContext,\n\tFragment\n} from 'preact';\nimport {\n\tuseState,\n\tuseId,\n\tuseReducer,\n\tuseEffect,\n\tuseLayoutEffect,\n\tuseRef,\n\tuseImperativeHandle,\n\tuseMemo,\n\tuseCallback,\n\tuseContext,\n\tuseDebugValue\n} from 'preact/hooks';\nimport { PureComponent } from './PureComponent';\nimport { memo } from './memo';\nimport { forwardRef } from './forwardRef';\nimport { Children } from './Children';\nimport { Suspense, lazy } from './suspense';\nimport { SuspenseList } from './suspense-list';\nimport { createPortal } from './portals';\nimport {\n\thydrate,\n\trender,\n\tREACT_ELEMENT_TYPE,\n\t__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED\n} from './render';\n\nconst version = '17.0.2'; // trick libraries to think we are react\n\n/**\n * Legacy version of createElement.\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component constructor\n */\nfunction createFactory(type) {\n\treturn createElement.bind(null, type);\n}\n\n/**\n * Check if the passed element is a valid (p)react node.\n * @param {*} element The element to check\n * @returns {boolean}\n */\nfunction isValidElement(element) {\n\treturn !!element && element.$$typeof === REACT_ELEMENT_TYPE;\n}\n\n/**\n * Wrap `cloneElement` to abort if the passed element is not a valid element and apply\n * all vnode normalizations.\n * @param {import('./internal').VNode} element The vnode to clone\n * @param {object} props Props to add when cloning\n * @param {Array} rest Optional component children\n */\nfunction cloneElement(element) {\n\tif (!isValidElement(element)) return element;\n\treturn preactCloneElement.apply(null, arguments);\n}\n\n/**\n * Remove a component tree from the DOM, including state and event handlers.\n * @param {import('./internal').PreactElement} container\n * @returns {boolean}\n */\nfunction unmountComponentAtNode(container) {\n\tif (container._children) {\n\t\tpreactRender(null, container);\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n/**\n * Get the matching DOM node for a component\n * @param {import('./internal').Component} component\n * @returns {import('./internal').PreactElement | null}\n */\nfunction findDOMNode(component) {\n\treturn (\n\t\t(component &&\n\t\t\t(component.base || (component.nodeType === 1 && component))) ||\n\t\tnull\n\t);\n}\n\n/**\n * Deprecated way to control batched rendering inside the reconciler, but we\n * already schedule in batches inside our rendering code\n * @template Arg\n * @param {(arg: Arg) => void} callback function that triggers the updated\n * @param {Arg} [arg] Optional argument that can be passed to the callback\n */\n// eslint-disable-next-line camelcase\nconst unstable_batchedUpdates = (callback, arg) => callback(arg);\n\n/**\n * In React, `flushSync` flushes the entire tree and forces a rerender. It's\n * implmented here as a no-op.\n * @template Arg\n * @template Result\n * @param {(arg: Arg) => Result} callback function that runs before the flush\n * @param {Arg} [arg] Optional arugment that can be passed to the callback\n * @returns\n */\nconst flushSync = (callback, arg) => callback(arg);\n\n/**\n * Strict Mode is not implemented in Preact, so we provide a stand-in for it\n * that just renders its children without imposing any restrictions.\n */\nconst StrictMode = Fragment;\n\nexport function startTransition(cb) {\n\tcb();\n}\n\nexport function useDeferredValue(val) {\n\treturn val;\n}\n\nexport function useTransition() {\n\treturn [false, startTransition];\n}\n\n// TODO: in theory this should be done after a VNode is diffed as we want to insert\n// styles/... before it attaches\nexport const useInsertionEffect = useLayoutEffect;\n\n/**\n * This is taken from https://github.com/facebook/react/blob/main/packages/use-sync-external-store/src/useSyncExternalStoreShimClient.js#L84\n * on a high level this cuts out the warnings, ... and attempts a smaller implementation\n */\nexport function useSyncExternalStore(subscribe, getSnapshot) {\n\tconst value = getSnapshot();\n\n\tconst [{ _instance }, forceUpdate] = useState({\n\t\t_instance: { _value: value, _getSnapshot: getSnapshot }\n\t});\n\n\tuseLayoutEffect(() => {\n\t\t_instance._value = value;\n\t\t_instance._getSnapshot = getSnapshot;\n\n\t\tif (_instance._value !== getSnapshot()) {\n\t\t\tforceUpdate({ _instance });\n\t\t}\n\t}, [subscribe, value, getSnapshot]);\n\n\tuseEffect(() => {\n\t\tif (_instance._value !== _instance._getSnapshot()) {\n\t\t\tforceUpdate({ _instance });\n\t\t}\n\n\t\treturn subscribe(() => {\n\t\t\tif (_instance._value !== _instance._getSnapshot()) {\n\t\t\t\tforceUpdate({ _instance });\n\t\t\t}\n\t\t});\n\t}, [subscribe]);\n\n\treturn value;\n}\n\nexport * from 'preact/hooks';\nexport {\n\tversion,\n\tChildren,\n\trender,\n\thydrate,\n\tunmountComponentAtNode,\n\tcreatePortal,\n\tcreateElement,\n\tcreateContext,\n\tcreateFactory,\n\tcloneElement,\n\tcreateRef,\n\tFragment,\n\tisValidElement,\n\tfindDOMNode,\n\tComponent,\n\tPureComponent,\n\tmemo,\n\tforwardRef,\n\tflushSync,\n\t// eslint-disable-next-line camelcase\n\tunstable_batchedUpdates,\n\tStrictMode,\n\tSuspense,\n\tSuspenseList,\n\tlazy,\n\t__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED\n};\n\n// React copies the named exports to the default one.\nexport default {\n\tuseState,\n\tuseId,\n\tuseReducer,\n\tuseEffect,\n\tuseLayoutEffect,\n\tuseInsertionEffect,\n\tuseTransition,\n\tuseDeferredValue,\n\tuseSyncExternalStore,\n\tstartTransition,\n\tuseRef,\n\tuseImperativeHandle,\n\tuseMemo,\n\tuseCallback,\n\tuseContext,\n\tuseDebugValue,\n\tversion,\n\tChildren,\n\trender,\n\thydrate,\n\tunmountComponentAtNode,\n\tcreatePortal,\n\tcreateElement,\n\tcreateContext,\n\tcreateFactory,\n\tcloneElement,\n\tcreateRef,\n\tFragment,\n\tisValidElement,\n\tfindDOMNode,\n\tComponent,\n\tPureComponent,\n\tmemo,\n\tforwardRef,\n\tflushSync,\n\tunstable_batchedUpdates,\n\tStrictMode,\n\tSuspense,\n\tSuspenseList,\n\tlazy,\n\t__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.formatValue = exports.getNotAvailableStats = void 0;\nconst constants_1 = require(\"../constants\");\nconst number_1 = require(\"../number\");\nconst getNotAvailableStats = (stats) => {\n const noSpins = (stats === null || stats === void 0 ? void 0 : stats.totalSpins) <= 0;\n const noBonusSpins = (stats === null || stats === void 0 ? void 0 : stats.raw.bonusTotalSpins) <= 0;\n const noRTP = (stats === null || stats === void 0 ? void 0 : stats.RTP) <= 0;\n const noHitRate = (stats === null || stats === void 0 ? void 0 : stats.wins.freq) <= 0;\n const noBestWin = (stats === null || stats === void 0 ? void 0 : stats.wins.best.RTP) <= 0;\n return {\n RTP: noSpins || noRTP,\n PL: noSpins,\n SRP: noSpins,\n hitRate: noSpins || noHitRate,\n bestWin: noSpins || noBestWin,\n bonusFreq: noSpins || noBonusSpins,\n avgBonus: noSpins || noBonusSpins,\n apinsAgo: noSpins || noBonusSpins,\n totalSpins: noSpins,\n };\n};\nexports.getNotAvailableStats = getNotAvailableStats;\nconst formatValue = (value, format = 'raw', currency) => {\n if (!value && value !== 0) {\n return '-';\n }\n const fractionDigits = constants_1.DEFAULT_PRECISION;\n switch (format) {\n case 'raw':\n return value.toString();\n case 'number':\n return Number(value).toLocaleString();\n case 'percent':\n return `${(0, number_1.toFixedWithoutZeros)(Number(value), fractionDigits)}%`;\n case 'times':\n return `${(0, number_1.toFixedWithoutZeros)(Number(value), fractionDigits)}x`;\n case 'times-percent':\n return (0, exports.formatValue)(Number(value) / constants_1.HUNDRED_PERCENT, 'times');\n case 'frequency':\n return `1/${(0, number_1.toFixedWithoutZeros)(1 / Number(value), fractionDigits)}`;\n case 'currency':\n return Intl.NumberFormat('en-US', {\n style: 'currency',\n currency,\n }).format(Number(value));\n case 'thousands':\n return Intl.NumberFormat('en-US').format(Number(value));\n default:\n throw new Error('Unexpected Stat value format');\n }\n};\nexports.formatValue = formatValue;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\nexports.assertNodeList = assertNodeList;\nexports.setElement = setElement;\nexports.validateElement = validateElement;\nexports.hide = hide;\nexports.show = show;\nexports.documentNotReadyOrSSRTesting = documentNotReadyOrSSRTesting;\n\nvar _warning = require(\"warning\");\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _safeHTMLElement = require(\"./safeHTMLElement\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar globalElement = null;\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction resetState() {\n if (globalElement) {\n if (globalElement.removeAttribute) {\n globalElement.removeAttribute(\"aria-hidden\");\n } else if (globalElement.length != null) {\n globalElement.forEach(function (element) {\n return element.removeAttribute(\"aria-hidden\");\n });\n } else {\n document.querySelectorAll(globalElement).forEach(function (element) {\n return element.removeAttribute(\"aria-hidden\");\n });\n }\n }\n globalElement = null;\n}\n\n/* istanbul ignore next */\nfunction log() {\n if (process.env.NODE_ENV !== \"production\") {\n var check = globalElement || {};\n console.log(\"ariaAppHider ----------\");\n console.log(check.nodeName, check.className, check.id);\n console.log(\"end ariaAppHider ----------\");\n }\n}\n/* eslint-enable no-console */\n\nfunction assertNodeList(nodeList, selector) {\n if (!nodeList || !nodeList.length) {\n throw new Error(\"react-modal: No elements were found for selector \" + selector + \".\");\n }\n}\n\nfunction setElement(element) {\n var useElement = element;\n if (typeof useElement === \"string\" && _safeHTMLElement.canUseDOM) {\n var el = document.querySelectorAll(useElement);\n assertNodeList(el, useElement);\n useElement = el;\n }\n globalElement = useElement || globalElement;\n return globalElement;\n}\n\nfunction validateElement(appElement) {\n var el = appElement || globalElement;\n if (el) {\n return Array.isArray(el) || el instanceof HTMLCollection || el instanceof NodeList ? el : [el];\n } else {\n (0, _warning2.default)(false, [\"react-modal: App element is not defined.\", \"Please use `Modal.setAppElement(el)` or set `appElement={el}`.\", \"This is needed so screen readers don't see main content\", \"when modal is opened. It is not recommended, but you can opt-out\", \"by setting `ariaHideApp={false}`.\"].join(\" \"));\n\n return [];\n }\n}\n\nfunction hide(appElement) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = validateElement(appElement)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var el = _step.value;\n\n el.setAttribute(\"aria-hidden\", \"true\");\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n}\n\nfunction show(appElement) {\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = validateElement(appElement)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var el = _step2.value;\n\n el.removeAttribute(\"aria-hidden\");\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n}\n\nfunction documentNotReadyOrSSRTesting() {\n globalElement = null;\n}","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toFixedWithoutZeros = void 0;\nconst toFixedWithoutZeros = (value, fractionDigits) => Number(value.toFixed(fractionDigits)).toString();\nexports.toFixedWithoutZeros = toFixedWithoutZeros;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getStandardDeviation = exports.getPercentage = exports.getFrequency = exports.getPL = exports.getSRP = exports.getRTP = exports.DEFAULT_PERCENTAGE = exports.DEFAULT_FREQUENCY = exports.DEFAULT_SRP = exports.DEFAULT_RTP = void 0;\nconst constants_1 = require(\"../constants\");\nexports.DEFAULT_RTP = -1;\nexports.DEFAULT_SRP = -1;\nexports.DEFAULT_FREQUENCY = -1;\nexports.DEFAULT_PERCENTAGE = -1;\n/**\n * @param {number} win\n * @param {number} bet\n * @returns {number}\n */\nfunction getRTP(win, bet) {\n return (bet\n ? win / bet * constants_1.HUNDRED_PERCENT\n : exports.DEFAULT_RTP);\n}\nexports.getRTP = getRTP;\nfunction getSRP(sumRTP, totalSpins) {\n return (totalSpins\n ? sumRTP / totalSpins\n : exports.DEFAULT_SRP);\n}\nexports.getSRP = getSRP;\nfunction getPL(bet, win) {\n return win - bet;\n}\nexports.getPL = getPL;\nfunction getFrequency(a, b) {\n return (b\n ? a / b\n : exports.DEFAULT_FREQUENCY);\n}\nexports.getFrequency = getFrequency;\nfunction getPercentage(a, b) {\n return (b\n ? a / b * constants_1.HUNDRED_PERCENT\n : exports.DEFAULT_PERCENTAGE);\n}\nexports.getPercentage = getPercentage;\nfunction getStandardDeviation(sum, sumOfSquares, count) {\n if (!count) {\n return 0;\n }\n const square = 2;\n return Math.sqrt((sumOfSquares / count) - (Math.pow((sum / count), square)));\n}\nexports.getStandardDeviation = getStandardDeviation;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HttpCodes = void 0;\nvar HttpCodes;\n(function (HttpCodes) {\n HttpCodes[HttpCodes[\"Ok\"] = 200] = \"Ok\";\n HttpCodes[HttpCodes[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpCodes[HttpCodes[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpCodes[HttpCodes[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpCodes[HttpCodes[\"NotFound\"] = 404] = \"NotFound\";\n})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {}));\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = scopeTab;\n\nvar _tabbable = require(\"./tabbable\");\n\nvar _tabbable2 = _interopRequireDefault(_tabbable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction getActiveElement() {\n var el = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;\n\n return el.activeElement.shadowRoot ? getActiveElement(el.activeElement.shadowRoot) : el.activeElement;\n}\n\nfunction scopeTab(node, event) {\n var tabbable = (0, _tabbable2.default)(node);\n\n if (!tabbable.length) {\n // Do nothing, since there are no elements that can receive focus.\n event.preventDefault();\n return;\n }\n\n var target = void 0;\n\n var shiftKey = event.shiftKey;\n var head = tabbable[0];\n var tail = tabbable[tabbable.length - 1];\n var activeElement = getActiveElement();\n\n // proceed with default browser behavior on tab.\n // Focus on last element on shift + tab.\n if (node === activeElement) {\n if (!shiftKey) return;\n target = tail;\n }\n\n if (tail === activeElement && !shiftKey) {\n target = head;\n }\n\n if (head === activeElement && shiftKey) {\n target = tail;\n }\n\n if (target) {\n event.preventDefault();\n target.focus();\n return;\n }\n\n // Safari radio issue.\n //\n // Safari does not move the focus to the radio button,\n // so we need to force it to really walk through all elements.\n //\n // This is very error prone, since we are trying to guess\n // if it is a safari browser from the first occurence between\n // chrome or safari.\n //\n // The chrome user agent contains the first ocurrence\n // as the 'chrome/version' and later the 'safari/version'.\n var checkSafari = /(\\bChrome\\b|\\bSafari\\b)\\//.exec(navigator.userAgent);\n var isSafariDesktop = checkSafari != null && checkSafari[1] != \"Chrome\" && /\\biPod\\b|\\biPad\\b/g.exec(navigator.userAgent) == null;\n\n // If we are not in safari desktop, let the browser control\n // the focus\n if (!isSafariDesktop) return;\n\n var x = tabbable.indexOf(activeElement);\n\n if (x > -1) {\n x += shiftKey ? -1 : 1;\n }\n\n target = tabbable[x];\n\n // If the tabbable element does not exist,\n // focus head/tail based on shiftKey\n if (typeof target === \"undefined\") {\n event.preventDefault();\n target = shiftKey ? tail : head;\n target.focus();\n return;\n }\n\n event.preventDefault();\n\n target.focus();\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.log = log;\nexports.resetState = resetState;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// Tracks portals that are open and emits events to subscribers\n\nvar PortalOpenInstances = function PortalOpenInstances() {\n var _this = this;\n\n _classCallCheck(this, PortalOpenInstances);\n\n this.register = function (openInstance) {\n if (_this.openInstances.indexOf(openInstance) !== -1) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Cannot register modal instance that's already open\");\n }\n return;\n }\n _this.openInstances.push(openInstance);\n _this.emit(\"register\");\n };\n\n this.deregister = function (openInstance) {\n var index = _this.openInstances.indexOf(openInstance);\n if (index === -1) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Unable to deregister \" + openInstance + \" as \" + \"it was never registered\");\n }\n return;\n }\n _this.openInstances.splice(index, 1);\n _this.emit(\"deregister\");\n };\n\n this.subscribe = function (callback) {\n _this.subscribers.push(callback);\n };\n\n this.emit = function (eventType) {\n _this.subscribers.forEach(function (subscriber) {\n return subscriber(eventType,\n // shallow copy to avoid accidental mutation\n _this.openInstances.slice());\n });\n };\n\n this.openInstances = [];\n this.subscribers = [];\n};\n\nvar portalOpenInstances = new PortalOpenInstances();\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction log() {\n console.log(\"portalOpenInstances ----------\");\n console.log(portalOpenInstances.openInstances.length);\n portalOpenInstances.openInstances.forEach(function (p) {\n return console.log(p);\n });\n console.log(\"end portalOpenInstances ----------\");\n}\n\n/* istanbul ignore next */\nfunction resetState() {\n portalOpenInstances = new PortalOpenInstances();\n}\n/* eslint-enable no-console */\n\nexports.default = portalOpenInstances;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Modal = require(\"./components/Modal\");\n\nvar _Modal2 = _interopRequireDefault(_Modal);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _Modal2.default;\nmodule.exports = exports[\"default\"];","import { HttpCodes, IAPIResponse } from '@slottracker/utils';\n\nimport { config } from '../config';\n\nimport * as auth from './auth';\n\nlet tokenRefreshPromise: Promise | null = null;\nconst refreshToken = async (): Promise => {\n if (!tokenRefreshPromise) {\n tokenRefreshPromise = auth.refreshToken()\n .then(() => {\n tokenRefreshPromise = null;\n });\n }\n\n return tokenRefreshPromise;\n};\nconst request = async (url: string, options: RequestInit = {}): Promise> => {\n if (!options.headers) {\n options.headers = { };\n }\n\n const authToken = auth.getAccessToken();\n const headers = {\n Authorization: `Bearer ${authToken}`,\n };\n\n options.headers = {\n ...options.headers,\n ...headers,\n };\n\n const res = await fetch(url, options);\n const resJson = await res.json() as IAPIResponse;\n\n if (!res.ok && res.status === HttpCodes.Unauthorized && !url.includes('/auth/')) {\n try {\n await refreshToken();\n } catch (err: unknown) {\n return resJson;\n }\n\n return request(url, options);\n }\n\n return resJson;\n};\nconst buildUrl = (endpoint: string): string => `${config.apiUrl}${endpoint}`;\n\nexport const get = async (endpoint: string): Promise> => {\n const url = buildUrl(endpoint);\n\n return request(url);\n};\n\nexport const getMapped = async (endpoint: string): Promise => {\n const res = await get(endpoint);\n\n return res.data;\n};\n\nexport const post = async (endpoint: string, body?: unknown): Promise> => {\n const url = buildUrl(endpoint);\n\n return request(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(body),\n });\n};\n\nexport const postMapped = async (endpoint: string, body?: unknown): Promise => {\n const res = await post(endpoint, body);\n\n return res.data;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.slugify = exports.isSlug = void 0;\nfunction isSlug(slug) {\n return /^[a-z\\d]+(?:-[a-z\\d]+)*$/.test(slug);\n}\nexports.isSlug = isSlug;\nconst NON_LATIN = [\n ['à', 'a'],\n ['á', 'a'],\n ['â', 'a'],\n ['ã', 'a'],\n ['ä', 'a'],\n ['ä', 'a'],\n ['å', 'a'],\n ['ā', 'a'],\n ['ą', 'a'],\n ['ă', 'a'],\n ['æ', 'ae'],\n ['ç', 'c'],\n ['ć', 'c'],\n ['č', 'c'],\n ['ĉ', 'c'],\n ['ċ', 'c'],\n ['ď', 'd'],\n ['đ', 'd'],\n ['ð', 'd'],\n ['è', 'e'],\n ['é', 'e'],\n ['ê', 'e'],\n ['ë', 'e'],\n ['ē', 'e'],\n ['ę', 'e'],\n ['ě', 'e'],\n ['ĕ', 'e'],\n ['ė', 'e'],\n ['ƒ', 'f'],\n ['ĝ', 'g'],\n ['ğ', 'g'],\n ['ġ', 'g'],\n ['ģ', 'g'],\n ['ĥ', 'h'],\n ['ħ', 'h'],\n ['ì', 'i'],\n ['í', 'i'],\n ['î', 'i'],\n ['ï', 'i'],\n ['ī', 'i'],\n ['ĩ', 'i'],\n ['ĭ', 'i'],\n ['į', 'i'],\n ['ı', 'i'],\n ['ij', 'ij'],\n ['ĵ', 'j'],\n ['ķ', 'k'],\n ['ĸ', 'k'],\n ['ł', 'l'],\n ['ľ', 'l'],\n ['ĺ', 'l'],\n ['ļ', 'l'],\n ['ŀ', 'l'],\n ['ñ', 'n'],\n ['ń', 'n'],\n ['ň', 'n'],\n ['ņ', 'n'],\n ['ʼn', 'n'],\n ['ŋ', 'n'],\n ['ò', 'o'],\n ['ó', 'o'],\n ['ô', 'o'],\n ['õ', 'o'],\n ['ö', 'o'],\n ['ö', 'o'],\n ['ø', 'o'],\n ['ō', 'o'],\n ['ő', 'o'],\n ['ŏ', 'o'],\n ['œ', 'oe'],\n ['ŕ', 'r'],\n ['ř', 'r'],\n ['ŗ', 'r'],\n ['š', 's'],\n ['ù', 'u'],\n ['ú', 'u'],\n ['û', 'u'],\n ['ü', 'u'],\n ['ū', 'u'],\n ['ü', 'u'],\n ['ů', 'u'],\n ['ű', 'u'],\n ['ŭ', 'u'],\n ['ũ', 'u'],\n ['ų', 'u'],\n ['ŵ', 'w'],\n ['ý', 'y'],\n ['ÿ', 'y'],\n ['ŷ', 'y'],\n ['ž', 'z'],\n ['ż', 'z'],\n ['ź', 'z'],\n ['þ', 't'],\n ['ß', 'ss'],\n ['ſ', 'ss'],\n ['ый', 'iy'],\n ['а', 'a'],\n ['б', 'b'],\n ['в', 'v'],\n ['г', 'g'],\n ['д', 'd'],\n ['е', 'e'],\n ['ё', 'yo'],\n ['ж', 'zh'],\n ['з', 'z'],\n ['и', 'i'],\n ['й', 'y'],\n ['к', 'k'],\n ['л', 'l'],\n ['м', 'm'],\n ['н', 'n'],\n ['о', 'o'],\n ['п', 'p'],\n ['р', 'r'],\n ['с', 's'],\n ['т', 't'],\n ['у', 'u'],\n ['ф', 'f'],\n ['х', 'h'],\n ['ц', 'c'],\n ['ч', 'ch'],\n ['ш', 'sh'],\n ['щ', 'sch'],\n ['ъ', ''],\n ['ы', 'y'],\n ['ь', ''],\n ['э', 'e'],\n ['ю', 'yu'],\n ['я', 'ya'],\n];\nfunction slugify(text) {\n if (!text) {\n return '';\n }\n // NOTICE: currently no coverage of non-latin to latin char conversion\n let slug = text.trim().toLowerCase()\n .replace(/\\s+/g, '-');\n NON_LATIN.forEach((latin) => {\n const re = new RegExp(latin[0], 'g');\n slug = slug.replace(re, latin[1]);\n });\n slug = slug.replace(/[^a-z\\d-]/g, '');\n // replace multiple - with single -\n slug = slug.replace(/--+/g, '-');\n // One final test, just in case\n if (!isSlug(slug)) {\n throw new Error(`Error occurred when creating slug from text ${text}`);\n }\n return slug;\n}\nexports.slugify = slugify;\n","\"use strict\";\n/* eslint-disable @typescript-eslint/naming-convention */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MAGIC_WAGERING_COEFFICIENT = exports.SQUARE_POWER = exports.NOT_AVAILABLE_PLACEHOLDER = exports.DEFAULT_PRECISION = exports.HUNDRED_PERCENT = void 0;\nexports.HUNDRED_PERCENT = 100;\nexports.DEFAULT_PRECISION = 2;\nexports.NOT_AVAILABLE_PLACEHOLDER = 'N/A';\nexports.SQUARE_POWER = 2;\nexports.MAGIC_WAGERING_COEFFICIENT = 5; // TODO: investigate what 5 means\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\n/* eslint-disable require-atomic-updates */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.addSpinToStats = exports.combineStats = void 0;\n// @TODO add rounding for the values with a precision of 2 (old TODO)\nconst constants_1 = require(\"../constants\");\nconst object_1 = require(\"../object\");\nconst bet_1 = require(\"./bet\");\nconst math_1 = require(\"./math\");\nfunction combineStats(stats) {\n const firstItemDeepCloned = (0, object_1.deepCopy)(stats[0]);\n const combinedStats = stats.slice(1).reduce((combined, item) => {\n combined.raw.totalSpins += item.raw.totalSpins;\n combined.raw.sumBet += item.raw.sumBet;\n combined.raw.sumEURBet += item.raw.sumEURBet;\n combined.raw.sumWin += item.raw.sumWin;\n combined.raw.sumEURWin += item.raw.sumEURWin;\n combined.raw.winRatioSum += item.raw.winRatioSum;\n combined.raw.winRatioSquaresSum += item.raw.winRatioSquaresSum;\n combined.raw.sumRTP += item.raw.sumRTP;\n combined.raw.totalWins += item.raw.totalWins;\n if (!combined.raw.bestRTP || (item.raw.bestRTP && combined.raw.bestRTP < item.raw.bestRTP)) {\n combined.raw.bestRTP = item.raw.bestRTP;\n }\n combined.raw.bonusTotalSpins += item.raw.bonusTotalSpins;\n combined.raw.bonusSumWin += item.raw.bonusSumWin;\n combined.raw.bonusSumEURWin += item.raw.bonusSumEURWin;\n combined.raw.bonusSumBet += item.raw.bonusSumBet;\n combined.raw.bonusSumEURBet += item.raw.bonusSumEURBet;\n combined.raw.bonusWinRatioSum += item.raw.bonusWinRatioSum;\n combined.raw.bonusWinRatioSquaresSum += item.raw.bonusWinRatioSquaresSum;\n combined.raw.baseTotalSpins += item.raw.baseTotalSpins;\n combined.raw.spinsSinceLastBonus = Math.min(combined.raw.spinsSinceLastBonus, item.raw.spinsSinceLastBonus);\n combined.raw.baseSumWin += item.raw.baseSumWin;\n combined.raw.baseSumEURWin += item.raw.baseSumEURWin;\n combined.raw.baseSumBet += item.raw.baseSumBet;\n combined.raw.baseSumEURBet += item.raw.baseSumEURBet;\n combined.raw.baseWinRatioSum += item.raw.baseWinRatioSum;\n combined.raw.baseWinRatioSquaresSum += item.raw.baseWinRatioSquaresSum;\n combined.wins.best.win = Math.max(combined.wins.best.win || 0, item.wins.best.win || 0);\n combined.wins.best.winEUR = Math.max(combined.wins.best.win || 0, item.wins.best.winEUR || 0);\n return combined;\n }, firstItemDeepCloned);\n const raw = combinedStats.raw;\n combinedStats.totalSpins = raw.totalSpins;\n combinedStats.RTP = (0, math_1.getRTP)(raw.sumEURWin, raw.sumEURBet);\n combinedStats.SRP = (0, math_1.getSRP)(raw.sumRTP, raw.totalSpins);\n combinedStats.PL = (0, math_1.getPL)(raw.sumEURBet, raw.sumEURWin);\n combinedStats.stddev = (0, math_1.getStandardDeviation)(raw.winRatioSum, raw.winRatioSquaresSum, raw.totalSpins);\n combinedStats.wins.freq = (0, math_1.getFrequency)(raw.totalWins, raw.totalSpins);\n combinedStats.wins.stddev = (0, math_1.getStandardDeviation)(raw.winRatioSum, raw.winRatioSquaresSum, raw.totalSpins);\n combinedStats.wins.best.RTP = raw.bestRTP;\n combinedStats.bonus.freq = (0, math_1.getFrequency)(raw.bonusTotalSpins, raw.totalSpins); // @TODO default 0 in community (old comment)\n combinedStats.bonus.stddev = (0, math_1.getStandardDeviation)(raw.bonusWinRatioSum, raw.bonusWinRatioSquaresSum, raw.bonusTotalSpins);\n combinedStats.bonus.avg.RTP = (0, math_1.getPercentage)(raw.bonusSumEURWin, raw.bonusSumEURBet);\n combinedStats.base.stddev = (0, math_1.getStandardDeviation)(raw.baseWinRatioSum, raw.baseWinRatioSquaresSum, raw.baseTotalSpins);\n combinedStats.wagering = combinedStats.stddev / (((combinedStats.SRP / constants_1.HUNDRED_PERCENT)\n / ((combinedStats.base.stddev * (1 - (raw.bonusTotalSpins / raw.totalSpins)))\n + (combinedStats.bonus.stddev * (raw.bonusTotalSpins / raw.totalSpins)))) + ((combinedStats.SRP / constants_1.HUNDRED_PERCENT) / constants_1.MAGIC_WAGERING_COEFFICIENT));\n return combinedStats;\n}\nexports.combineStats = combineStats;\nfunction addSpinToStatsRaw(gameId, statsRaw, spin, betLineLoader, currencyConverter, bonusChecker) {\n return __awaiter(this, void 0, void 0, function* () {\n const spinWin = spin.request.body.total_win;\n const spinBet = yield (0, bet_1.getTotalBet)(gameId, spin.request.body, betLineLoader);\n const currency = spin.request.body.currency.toUpperCase();\n let dateString = spin.date.toString();\n if (/^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}:\\d{3}$/.test(dateString)) {\n dateString = dateString.replace(/:\\d{3}$/, '');\n }\n const dateInst = new Date(dateString);\n if (isNaN(dateInst.getTime())) {\n throw new Error(`Invalid date detected \"${spin.date}\"`);\n }\n const spinTotalWinEur = yield currencyConverter.convertToEurFrom(currency, spinWin, dateInst);\n const spinTotalBetEur = yield currencyConverter.convertToEurFrom(currency, spinBet, dateInst);\n const spinRtp = (0, math_1.getRTP)(spinWin, spinBet);\n const spinIsBonus = yield bonusChecker.isBonusSpin(gameId, spin.request.body.features);\n statsRaw.totalSpins++;\n statsRaw.lastSpinWin = spinWin;\n statsRaw.lastSpinWinEUR = spinTotalWinEur;\n statsRaw.sumBet += spinBet;\n statsRaw.sumEURBet += spinTotalBetEur;\n statsRaw.sumWin += spinWin;\n statsRaw.sumEURWin += spinTotalWinEur;\n statsRaw.winRatioSum += spinWin / spinBet;\n statsRaw.winRatioSquaresSum += Math.pow((spinWin / spinBet), constants_1.SQUARE_POWER);\n statsRaw.sumRTP += spinRtp;\n if (!statsRaw.bestRTP || spinRtp > statsRaw.bestRTP) {\n statsRaw.bestRTP = spinRtp;\n }\n if (spinWin > 0) {\n statsRaw.totalWins++;\n }\n if (spinIsBonus) {\n statsRaw.bonusTotalSpins++;\n statsRaw.spinsSinceLastBonus = 0;\n statsRaw.bonusSumWin += spinWin;\n statsRaw.bonusSumEURWin += spinTotalWinEur;\n statsRaw.bonusSumBet += spinBet;\n statsRaw.bonusSumEURBet += spinTotalBetEur;\n statsRaw.bonusWinRatioSum += spinWin / spinBet;\n statsRaw.bonusWinRatioSquaresSum += Math.pow((spinWin / spinBet), constants_1.SQUARE_POWER);\n }\n else {\n statsRaw.baseTotalSpins++;\n statsRaw.spinsSinceLastBonus++;\n statsRaw.baseSumWin += spinWin;\n statsRaw.baseSumEURWin += spinTotalWinEur;\n statsRaw.baseSumBet += spinBet;\n statsRaw.baseSumEURBet += spinTotalBetEur;\n statsRaw.baseWinRatioSum += spinWin / spinBet;\n statsRaw.baseWinRatioSquaresSum += Math.pow((spinWin / spinBet), constants_1.SQUARE_POWER);\n }\n });\n}\nfunction addSpinToStats(gameId, stats, spin, betLineLoader, currencyConverter, bonusChecker) {\n return __awaiter(this, void 0, void 0, function* () {\n const raw = stats.raw;\n yield addSpinToStatsRaw(gameId, raw, spin, betLineLoader, currencyConverter, bonusChecker);\n stats.totalSpins = raw.totalSpins;\n stats.RTP = (0, math_1.getRTP)(raw.sumEURWin, raw.sumEURBet);\n stats.SRP = (0, math_1.getSRP)(raw.sumRTP, raw.totalSpins);\n stats.PL = (0, math_1.getPL)(raw.sumEURBet, raw.sumEURWin);\n stats.stddev = (0, math_1.getStandardDeviation)(raw.winRatioSum, raw.winRatioSquaresSum, raw.totalSpins);\n stats.wins = {\n freq: (0, math_1.getFrequency)(raw.totalWins, raw.totalSpins),\n stddev: (0, math_1.getStandardDeviation)(raw.winRatioSum, raw.winRatioSquaresSum, raw.totalSpins),\n best: {\n RTP: raw.bestRTP,\n win: Math.max(raw.lastSpinWin, stats.wins.best.win || 0),\n winEUR: Math.max(raw.lastSpinWinEUR, stats.wins.best.winEUR || 0),\n },\n };\n stats.bonus = {\n freq: (0, math_1.getFrequency)(raw.bonusTotalSpins, raw.totalSpins),\n stddev: (0, math_1.getStandardDeviation)(raw.bonusWinRatioSum, raw.bonusWinRatioSquaresSum, raw.bonusTotalSpins),\n avg: {\n RTP: (0, math_1.getPercentage)(raw.bonusSumEURWin, raw.bonusSumEURBet),\n },\n };\n stats.base = {\n stddev: (0, math_1.getStandardDeviation)(raw.baseWinRatioSum, raw.baseWinRatioSquaresSum, raw.baseTotalSpins),\n };\n stats.wagering = stats.stddev / (((stats.SRP / constants_1.HUNDRED_PERCENT)\n / ((stats.base.stddev * (1 - (raw.bonusTotalSpins / stats.totalSpins)))\n + (stats.bonus.stddev * (raw.bonusTotalSpins / stats.totalSpins))))\n + ((stats.SRP / constants_1.HUNDRED_PERCENT) / constants_1.MAGIC_WAGERING_COEFFICIENT));\n return stats;\n });\n}\nexports.addSpinToStats = addSpinToStats;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getTotalBet = void 0;\nfunction getTotalBet(gameId, spin, betLineLoader) {\n return __awaiter(this, void 0, void 0, function* () {\n const bet = spin.bet;\n let totalBet = spin.total_bet;\n let lines = spin.lines;\n let level = spin.level;\n if (totalBet === 0 && bet !== 0) {\n if (lines === 0) {\n lines = 1;\n }\n if (level === 0) {\n level = 1;\n }\n const betLine = yield betLineLoader.getBetLine(gameId, spin.lines);\n if (betLine) {\n if (betLine.override === 0) {\n totalBet = level * lines * betLine.multiplier * bet;\n }\n else {\n totalBet = level * betLine.override * bet;\n }\n }\n }\n return totalBet;\n });\n}\nexports.getTotalBet = getTotalBet;\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","export const config = {\n environment: process.env.PREACT_APP_ENVIRONMENT,\n apiUrl: process.env.PREACT_APP_API_URL,\n sharedCookiesDomain: process.env.PREACT_APP_SHARED_COOKIES_DOMAIN,\n websiteUrl: process.env.PREACT_APP_WEBSITE_URL,\n consoleUrl: process.env.PREACT_APP_CONSOLE_URL,\n extensionDownloadUrl: process.env.PREACT_APP_EXTENSION_DOWNLOAD_URL,\n widgetUrl: process.env.PREACT_APP_WIDGET_URL,\n};\n","/*!\n Copyright (c) 2015 Jed Watson.\n Based on code that is Copyright 2013-2015, Facebook, Inc.\n All rights reserved.\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar canUseDOM = !!(\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.document &&\n\t\twindow.document.createElement\n\t);\n\n\tvar ExecutionEnvironment = {\n\n\t\tcanUseDOM: canUseDOM,\n\n\t\tcanUseWorkers: typeof Worker !== 'undefined',\n\n\t\tcanUseEventListeners:\n\t\t\tcanUseDOM && !!(window.addEventListener || window.attachEvent),\n\n\t\tcanUseViewport: canUseDOM && !!window.screen\n\n\t};\n\n\tif (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\tdefine(function () {\n\t\t\treturn ExecutionEnvironment;\n\t\t});\n\t} else if (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = ExecutionEnvironment;\n\t} else {\n\t\twindow.ExecutionEnvironment = ExecutionEnvironment;\n\t}\n\n}());\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * The code was extracted from:\n * https://github.com/davidchambers/Base64.js\n */\n\nvar chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n\nfunction InvalidCharacterError(message) {\n this.message = message;\n}\n\nInvalidCharacterError.prototype = new Error();\nInvalidCharacterError.prototype.name = \"InvalidCharacterError\";\n\nfunction polyfill(input) {\n var str = String(input).replace(/=+$/, \"\");\n if (str.length % 4 == 1) {\n throw new InvalidCharacterError(\n \"'atob' failed: The string to be decoded is not correctly encoded.\"\n );\n }\n for (\n // initialize result and counters\n var bc = 0, bs, buffer, idx = 0, output = \"\";\n // get next character\n (buffer = str.charAt(idx++));\n // character found in table? initialize bit storage and add its ascii value;\n ~buffer &&\n ((bs = bc % 4 ? bs * 64 + buffer : buffer),\n // and if not first of each 4 characters,\n // convert the first 8 bits to one ascii character\n bc++ % 4) ?\n (output += String.fromCharCode(255 & (bs >> ((-2 * bc) & 6)))) :\n 0\n ) {\n // try to find character in table (0-63, not found => -1)\n buffer = chars.indexOf(buffer);\n }\n return output;\n}\n\nexport default (typeof window !== \"undefined\" &&\n window.atob &&\n window.atob.bind(window)) ||\npolyfill;","import atob from \"./atob\";\n\nfunction b64DecodeUnicode(str) {\n return decodeURIComponent(\n atob(str).replace(/(.)/g, function(m, p) {\n var code = p.charCodeAt(0).toString(16).toUpperCase();\n if (code.length < 2) {\n code = \"0\" + code;\n }\n return \"%\" + code;\n })\n );\n}\n\nexport default function(str) {\n var output = str.replace(/-/g, \"+\").replace(/_/g, \"/\");\n switch (output.length % 4) {\n case 0:\n break;\n case 2:\n output += \"==\";\n break;\n case 3:\n output += \"=\";\n break;\n default:\n throw \"Illegal base64url string!\";\n }\n\n try {\n return b64DecodeUnicode(output);\n } catch (err) {\n return atob(output);\n }\n}","\"use strict\";\n\nimport base64_url_decode from \"./base64_url_decode\";\n\nexport function InvalidTokenError(message) {\n this.message = message;\n}\n\nInvalidTokenError.prototype = new Error();\nInvalidTokenError.prototype.name = \"InvalidTokenError\";\n\nexport default function(token, options) {\n if (typeof token !== \"string\") {\n throw new InvalidTokenError(\"Invalid token specified\");\n }\n\n options = options || {};\n var pos = options.header === true ? 0 : 1;\n try {\n return JSON.parse(base64_url_decode(token.split(\".\")[pos]));\n } catch (e) {\n throw new InvalidTokenError(\"Invalid token specified: \" + e.message);\n }\n}","/*! js-cookie v3.0.1 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n function set (key, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n key = encodeURIComponent(key)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n key + '=' + converter.write(value, key) + stringifiedAttributes)\n }\n\n function get (key) {\n if (typeof document === 'undefined' || (arguments.length && !key)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var foundKey = decodeURIComponent(parts[0]);\n jar[foundKey] = converter.read(value, foundKey);\n\n if (key === foundKey) {\n break\n }\n } catch (e) {}\n }\n\n return key ? jar[key] : jar\n }\n\n return Object.create(\n {\n set: set,\n get: get,\n remove: function (key, attributes) {\n set(\n key,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport default api;\n","import Cookies from 'js-cookie';\n\nimport { config } from '../config';\n\ninterface ICookieOptions {\n expires?: Date | number;\n domain?: string;\n}\n\nconst buildCookieKey = (key: string): string => `ST-${config.environment}_${key}`;\n\nexport const getCookie = (key: string): T | null => {\n const cookie: string | undefined = Cookies.get(buildCookieKey(key));\n\n return typeof cookie === 'undefined'\n ? null\n : JSON.parse(cookie) as T;\n};\n\nexport const setCookie = (key: string, value: string | object, expires: Date | number, isCrossDomain = false): void => {\n const options: ICookieOptions = {\n expires,\n };\n\n if (isCrossDomain) {\n options.domain = config.sharedCookiesDomain;\n }\n\n Cookies.set(\n buildCookieKey(key),\n JSON.stringify(value),\n options,\n );\n};\n\nexport const setCookieCrossDomain = (key: string, value: string | object, expires: Date | number): void => {\n setCookie(key, value, expires, true);\n};\n\nexport const removeCookie = (key: string, isCrossDomain = false): void => {\n const options: ICookieOptions = { };\n\n if (isCrossDomain) {\n options.domain = config.sharedCookiesDomain;\n }\n\n Cookies.remove(buildCookieKey(key), options);\n};\n\nexport const removeCookieCrossDomain = (key: string): void => {\n removeCookie(key, true);\n};\n","import jwtDecode from 'jwt-decode';\nimport { route } from 'preact-router';\n\nimport { IAuthDecodedPayload, IAuthResponse } from '@slottracker/utils';\n\nimport { postMapped } from './api';\nimport * as cookie from './cookie';\n\nconst AUTH_DATA_STORAGE_KEY = 'authData-v2';\nconst USER_STORAGE_KEY = 'user-v2';\nconst clearAuthData = (): void => {\n cookie.removeCookieCrossDomain(AUTH_DATA_STORAGE_KEY);\n cookie.removeCookieCrossDomain(USER_STORAGE_KEY);\n};\nconst clearAuthDataAndRedirectToAuth = (): void => {\n clearAuthData();\n route('/login');\n};\nconst getAuthData = (): IAuthResponse | null => {\n const authData: IAuthResponse | null = cookie.getCookie(AUTH_DATA_STORAGE_KEY);\n\n if (!authData) {\n return null;\n }\n\n if (\n typeof authData !== 'object'\n || typeof authData.accessToken !== 'string'\n || typeof authData.refreshToken !== 'string'\n ) {\n clearAuthDataAndRedirectToAuth();\n\n return null;\n }\n\n return authData;\n};\nconst getUser = (): object | null => cookie.getCookie(USER_STORAGE_KEY);\n\nexport const isAuthenticated = (): boolean => {\n const authData = getAuthData();\n const userData = getUser();\n\n return Boolean(authData) && Boolean(userData);\n};\n\nexport const getAccessToken = (): string | null => getAuthData()?.accessToken ?? null;\n\nexport const getRefreshToken = (): string | null => getAuthData()?.refreshToken ?? null;\n\nexport const refreshToken = async (): Promise => {\n const body = {\n accessToken: getAccessToken(),\n refreshToken: getRefreshToken(),\n };\n\n try {\n const data = await postMapped('/v2/auth/refresh-token', body);\n\n if (!data) {\n throw new Error('Refresh token fetching error.');\n }\n\n const decodedAccessToken = jwtDecode(data.accessToken);\n const decodedRefreshToken = jwtDecode(data.refreshToken);\n const cookieExpires = decodedRefreshToken.exp;\n const userDetails = decodedAccessToken.sub;\n\n cookie.setCookieCrossDomain(AUTH_DATA_STORAGE_KEY, data, cookieExpires);\n cookie.setCookieCrossDomain(USER_STORAGE_KEY, userDetails, cookieExpires);\n } catch (err: unknown) {\n clearAuthDataAndRedirectToAuth();\n\n throw err;\n }\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _focusManager = require(\"../helpers/focusManager\");\n\nvar focusManager = _interopRequireWildcard(_focusManager);\n\nvar _scopeTab = require(\"../helpers/scopeTab\");\n\nvar _scopeTab2 = _interopRequireDefault(_scopeTab);\n\nvar _ariaAppHider = require(\"../helpers/ariaAppHider\");\n\nvar ariaAppHider = _interopRequireWildcard(_ariaAppHider);\n\nvar _classList = require(\"../helpers/classList\");\n\nvar classList = _interopRequireWildcard(_classList);\n\nvar _safeHTMLElement = require(\"../helpers/safeHTMLElement\");\n\nvar _safeHTMLElement2 = _interopRequireDefault(_safeHTMLElement);\n\nvar _portalOpenInstances = require(\"../helpers/portalOpenInstances\");\n\nvar _portalOpenInstances2 = _interopRequireDefault(_portalOpenInstances);\n\nrequire(\"../helpers/bodyTrap\");\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// so that our CSS is statically analyzable\nvar CLASS_NAMES = {\n overlay: \"ReactModal__Overlay\",\n content: \"ReactModal__Content\"\n};\n\nvar TAB_KEY = 9;\nvar ESC_KEY = 27;\n\nvar ariaHiddenInstances = 0;\n\nvar ModalPortal = function (_Component) {\n _inherits(ModalPortal, _Component);\n\n function ModalPortal(props) {\n _classCallCheck(this, ModalPortal);\n\n var _this = _possibleConstructorReturn(this, (ModalPortal.__proto__ || Object.getPrototypeOf(ModalPortal)).call(this, props));\n\n _this.setOverlayRef = function (overlay) {\n _this.overlay = overlay;\n _this.props.overlayRef && _this.props.overlayRef(overlay);\n };\n\n _this.setContentRef = function (content) {\n _this.content = content;\n _this.props.contentRef && _this.props.contentRef(content);\n };\n\n _this.afterClose = function () {\n var _this$props = _this.props,\n appElement = _this$props.appElement,\n ariaHideApp = _this$props.ariaHideApp,\n htmlOpenClassName = _this$props.htmlOpenClassName,\n bodyOpenClassName = _this$props.bodyOpenClassName;\n\n // Remove classes.\n\n bodyOpenClassName && classList.remove(document.body, bodyOpenClassName);\n\n htmlOpenClassName && classList.remove(document.getElementsByTagName(\"html\")[0], htmlOpenClassName);\n\n // Reset aria-hidden attribute if all modals have been removed\n if (ariaHideApp && ariaHiddenInstances > 0) {\n ariaHiddenInstances -= 1;\n\n if (ariaHiddenInstances === 0) {\n ariaAppHider.show(appElement);\n }\n }\n\n if (_this.props.shouldFocusAfterRender) {\n if (_this.props.shouldReturnFocusAfterClose) {\n focusManager.returnFocus(_this.props.preventScroll);\n focusManager.teardownScopedFocus();\n } else {\n focusManager.popWithoutFocus();\n }\n }\n\n if (_this.props.onAfterClose) {\n _this.props.onAfterClose();\n }\n\n _portalOpenInstances2.default.deregister(_this);\n };\n\n _this.open = function () {\n _this.beforeOpen();\n if (_this.state.afterOpen && _this.state.beforeClose) {\n clearTimeout(_this.closeTimer);\n _this.setState({ beforeClose: false });\n } else {\n if (_this.props.shouldFocusAfterRender) {\n focusManager.setupScopedFocus(_this.node);\n focusManager.markForFocusLater();\n }\n\n _this.setState({ isOpen: true }, function () {\n _this.openAnimationFrame = requestAnimationFrame(function () {\n _this.setState({ afterOpen: true });\n\n if (_this.props.isOpen && _this.props.onAfterOpen) {\n _this.props.onAfterOpen({\n overlayEl: _this.overlay,\n contentEl: _this.content\n });\n }\n });\n });\n }\n };\n\n _this.close = function () {\n if (_this.props.closeTimeoutMS > 0) {\n _this.closeWithTimeout();\n } else {\n _this.closeWithoutTimeout();\n }\n };\n\n _this.focusContent = function () {\n return _this.content && !_this.contentHasFocus() && _this.content.focus({ preventScroll: true });\n };\n\n _this.closeWithTimeout = function () {\n var closesAt = Date.now() + _this.props.closeTimeoutMS;\n _this.setState({ beforeClose: true, closesAt: closesAt }, function () {\n _this.closeTimer = setTimeout(_this.closeWithoutTimeout, _this.state.closesAt - Date.now());\n });\n };\n\n _this.closeWithoutTimeout = function () {\n _this.setState({\n beforeClose: false,\n isOpen: false,\n afterOpen: false,\n closesAt: null\n }, _this.afterClose);\n };\n\n _this.handleKeyDown = function (event) {\n if (event.keyCode === TAB_KEY) {\n (0, _scopeTab2.default)(_this.content, event);\n }\n\n if (_this.props.shouldCloseOnEsc && event.keyCode === ESC_KEY) {\n event.stopPropagation();\n _this.requestClose(event);\n }\n };\n\n _this.handleOverlayOnClick = function (event) {\n if (_this.shouldClose === null) {\n _this.shouldClose = true;\n }\n\n if (_this.shouldClose && _this.props.shouldCloseOnOverlayClick) {\n if (_this.ownerHandlesClose()) {\n _this.requestClose(event);\n } else {\n _this.focusContent();\n }\n }\n _this.shouldClose = null;\n };\n\n _this.handleContentOnMouseUp = function () {\n _this.shouldClose = false;\n };\n\n _this.handleOverlayOnMouseDown = function (event) {\n if (!_this.props.shouldCloseOnOverlayClick && event.target == _this.overlay) {\n event.preventDefault();\n }\n };\n\n _this.handleContentOnClick = function () {\n _this.shouldClose = false;\n };\n\n _this.handleContentOnMouseDown = function () {\n _this.shouldClose = false;\n };\n\n _this.requestClose = function (event) {\n return _this.ownerHandlesClose() && _this.props.onRequestClose(event);\n };\n\n _this.ownerHandlesClose = function () {\n return _this.props.onRequestClose;\n };\n\n _this.shouldBeClosed = function () {\n return !_this.state.isOpen && !_this.state.beforeClose;\n };\n\n _this.contentHasFocus = function () {\n return document.activeElement === _this.content || _this.content.contains(document.activeElement);\n };\n\n _this.buildClassName = function (which, additional) {\n var classNames = (typeof additional === \"undefined\" ? \"undefined\" : _typeof(additional)) === \"object\" ? additional : {\n base: CLASS_NAMES[which],\n afterOpen: CLASS_NAMES[which] + \"--after-open\",\n beforeClose: CLASS_NAMES[which] + \"--before-close\"\n };\n var className = classNames.base;\n if (_this.state.afterOpen) {\n className = className + \" \" + classNames.afterOpen;\n }\n if (_this.state.beforeClose) {\n className = className + \" \" + classNames.beforeClose;\n }\n return typeof additional === \"string\" && additional ? className + \" \" + additional : className;\n };\n\n _this.attributesFromObject = function (prefix, items) {\n return Object.keys(items).reduce(function (acc, name) {\n acc[prefix + \"-\" + name] = items[name];\n return acc;\n }, {});\n };\n\n _this.state = {\n afterOpen: false,\n beforeClose: false\n };\n\n _this.shouldClose = null;\n _this.moveFromContentToOverlay = null;\n return _this;\n }\n\n _createClass(ModalPortal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.props.isOpen) {\n this.open();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n if (process.env.NODE_ENV !== \"production\") {\n if (prevProps.bodyOpenClassName !== this.props.bodyOpenClassName) {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"bodyOpenClassName\" prop has been modified. ' + \"This may cause unexpected behavior when multiple modals are open.\");\n }\n if (prevProps.htmlOpenClassName !== this.props.htmlOpenClassName) {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"htmlOpenClassName\" prop has been modified. ' + \"This may cause unexpected behavior when multiple modals are open.\");\n }\n }\n\n if (this.props.isOpen && !prevProps.isOpen) {\n this.open();\n } else if (!this.props.isOpen && prevProps.isOpen) {\n this.close();\n }\n\n // Focus only needs to be set once when the modal is being opened\n if (this.props.shouldFocusAfterRender && this.state.isOpen && !prevState.isOpen) {\n this.focusContent();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.state.isOpen) {\n this.afterClose();\n }\n clearTimeout(this.closeTimer);\n cancelAnimationFrame(this.openAnimationFrame);\n }\n }, {\n key: \"beforeOpen\",\n value: function beforeOpen() {\n var _props = this.props,\n appElement = _props.appElement,\n ariaHideApp = _props.ariaHideApp,\n htmlOpenClassName = _props.htmlOpenClassName,\n bodyOpenClassName = _props.bodyOpenClassName;\n\n // Add classes.\n\n bodyOpenClassName && classList.add(document.body, bodyOpenClassName);\n\n htmlOpenClassName && classList.add(document.getElementsByTagName(\"html\")[0], htmlOpenClassName);\n\n if (ariaHideApp) {\n ariaHiddenInstances += 1;\n ariaAppHider.hide(appElement);\n }\n\n _portalOpenInstances2.default.register(this);\n }\n\n // Don't steal focus from inner elements\n\n }, {\n key: \"render\",\n value: function render() {\n var _props2 = this.props,\n id = _props2.id,\n className = _props2.className,\n overlayClassName = _props2.overlayClassName,\n defaultStyles = _props2.defaultStyles,\n children = _props2.children;\n\n var contentStyles = className ? {} : defaultStyles.content;\n var overlayStyles = overlayClassName ? {} : defaultStyles.overlay;\n\n if (this.shouldBeClosed()) {\n return null;\n }\n\n var overlayProps = {\n ref: this.setOverlayRef,\n className: this.buildClassName(\"overlay\", overlayClassName),\n style: _extends({}, overlayStyles, this.props.style.overlay),\n onClick: this.handleOverlayOnClick,\n onMouseDown: this.handleOverlayOnMouseDown\n };\n\n var contentProps = _extends({\n id: id,\n ref: this.setContentRef,\n style: _extends({}, contentStyles, this.props.style.content),\n className: this.buildClassName(\"content\", className),\n tabIndex: \"-1\",\n onKeyDown: this.handleKeyDown,\n onMouseDown: this.handleContentOnMouseDown,\n onMouseUp: this.handleContentOnMouseUp,\n onClick: this.handleContentOnClick,\n role: this.props.role,\n \"aria-label\": this.props.contentLabel\n }, this.attributesFromObject(\"aria\", _extends({ modal: true }, this.props.aria)), this.attributesFromObject(\"data\", this.props.data || {}), {\n \"data-testid\": this.props.testId\n });\n\n var contentElement = this.props.contentElement(contentProps, children);\n return this.props.overlayElement(overlayProps, contentElement);\n }\n }]);\n\n return ModalPortal;\n}(_react.Component);\n\nModalPortal.defaultProps = {\n style: {\n overlay: {},\n content: {}\n },\n defaultStyles: {}\n};\nModalPortal.propTypes = {\n isOpen: _propTypes2.default.bool.isRequired,\n defaultStyles: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n style: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),\n overlayClassName: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),\n bodyOpenClassName: _propTypes2.default.string,\n htmlOpenClassName: _propTypes2.default.string,\n ariaHideApp: _propTypes2.default.bool,\n appElement: _propTypes2.default.oneOfType([_propTypes2.default.instanceOf(_safeHTMLElement2.default), _propTypes2.default.instanceOf(_safeHTMLElement.SafeHTMLCollection), _propTypes2.default.instanceOf(_safeHTMLElement.SafeNodeList), _propTypes2.default.arrayOf(_propTypes2.default.instanceOf(_safeHTMLElement2.default))]),\n onAfterOpen: _propTypes2.default.func,\n onAfterClose: _propTypes2.default.func,\n onRequestClose: _propTypes2.default.func,\n closeTimeoutMS: _propTypes2.default.number,\n shouldFocusAfterRender: _propTypes2.default.bool,\n shouldCloseOnOverlayClick: _propTypes2.default.bool,\n shouldReturnFocusAfterClose: _propTypes2.default.bool,\n preventScroll: _propTypes2.default.bool,\n role: _propTypes2.default.string,\n contentLabel: _propTypes2.default.string,\n aria: _propTypes2.default.object,\n data: _propTypes2.default.object,\n children: _propTypes2.default.node,\n shouldCloseOnEsc: _propTypes2.default.bool,\n overlayRef: _propTypes2.default.func,\n contentRef: _propTypes2.default.func,\n id: _propTypes2.default.string,\n overlayElement: _propTypes2.default.func,\n contentElement: _propTypes2.default.func,\n testId: _propTypes2.default.string\n};\nexports.default = ModalPortal;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = findTabbableDescendants;\n/*!\n * Adapted from jQuery UI core\n *\n * http://jqueryui.com\n *\n * Copyright 2014 jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/category/ui-core/\n */\n\nvar tabbableNode = /input|select|textarea|button|object|iframe/;\n\nfunction hidesContents(element) {\n var zeroSize = element.offsetWidth <= 0 && element.offsetHeight <= 0;\n\n // If the node is empty, this is good enough\n if (zeroSize && !element.innerHTML) return true;\n\n try {\n // Otherwise we need to check some styles\n var style = window.getComputedStyle(element);\n return zeroSize ? style.getPropertyValue(\"overflow\") !== \"visible\" ||\n // if 'overflow: visible' set, check if there is actually any overflow\n element.scrollWidth <= 0 && element.scrollHeight <= 0 : style.getPropertyValue(\"display\") == \"none\";\n } catch (exception) {\n // eslint-disable-next-line no-console\n console.warn(\"Failed to inspect element style\");\n return false;\n }\n}\n\nfunction visible(element) {\n var parentElement = element;\n var rootNode = element.getRootNode && element.getRootNode();\n while (parentElement) {\n if (parentElement === document.body) break;\n\n // if we are not hidden yet, skip to checking outside the Web Component\n if (rootNode && parentElement === rootNode) parentElement = rootNode.host.parentNode;\n\n if (hidesContents(parentElement)) return false;\n parentElement = parentElement.parentNode;\n }\n return true;\n}\n\nfunction focusable(element, isTabIndexNotNaN) {\n var nodeName = element.nodeName.toLowerCase();\n var res = tabbableNode.test(nodeName) && !element.disabled || (nodeName === \"a\" ? element.href || isTabIndexNotNaN : isTabIndexNotNaN);\n return res && visible(element);\n}\n\nfunction tabbable(element) {\n var tabIndex = element.getAttribute(\"tabindex\");\n if (tabIndex === null) tabIndex = undefined;\n var isTabIndexNaN = isNaN(tabIndex);\n return (isTabIndexNaN || tabIndex >= 0) && focusable(element, !isTabIndexNaN);\n}\n\nfunction findTabbableDescendants(element) {\n var descendants = [].slice.call(element.querySelectorAll(\"*\"), 0).reduce(function (finished, el) {\n return finished.concat(!el.shadowRoot ? [el] : findTabbableDescendants(el.shadowRoot));\n }, []);\n return descendants.filter(tabbable);\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getVolatilityCMSKey = void 0;\nconst getVolatilityCMSKey = (value) => {\n const volatilityLablesMap = {\n 'very-low': 3,\n 'low': 6,\n 'medium': 9,\n 'medium-high': 12,\n 'high': 15,\n 'very-high': 18,\n };\n for (const [cmsKey, volatilityValue] of Object.entries(volatilityLablesMap)) {\n if (value <= volatilityValue) {\n return `volatility.${cmsKey}`;\n }\n }\n return 'volatility.extreme';\n};\nexports.getVolatilityCMSKey = getVolatilityCMSKey;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EUserRole = void 0;\nvar EUserRole;\n(function (EUserRole) {\n EUserRole[\"Admin\"] = \"ADMIN\";\n EUserRole[\"User\"] = \"USER\";\n})(EUserRole = exports.EUserRole || (exports.EUserRole = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EGameFeatureTypes = void 0;\nvar EGameFeatureTypes;\n(function (EGameFeatureTypes) {\n EGameFeatureTypes[\"Unknown\"] = \"UNKNOWN\";\n EGameFeatureTypes[\"Bonus\"] = \"BONUS\";\n EGameFeatureTypes[\"BuyBonus\"] = \"BUY_BONUS\";\n EGameFeatureTypes[\"Other\"] = \"OTHER\";\n EGameFeatureTypes[\"NotABonus\"] = \"NOT_A_BONUS\";\n})(EGameFeatureTypes = exports.EGameFeatureTypes || (exports.EGameFeatureTypes = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.bodyOpenClassName = exports.portalClassName = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require(\"react-dom\");\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _ModalPortal = require(\"./ModalPortal\");\n\nvar _ModalPortal2 = _interopRequireDefault(_ModalPortal);\n\nvar _ariaAppHider = require(\"../helpers/ariaAppHider\");\n\nvar ariaAppHider = _interopRequireWildcard(_ariaAppHider);\n\nvar _safeHTMLElement = require(\"../helpers/safeHTMLElement\");\n\nvar _safeHTMLElement2 = _interopRequireDefault(_safeHTMLElement);\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar portalClassName = exports.portalClassName = \"ReactModalPortal\";\nvar bodyOpenClassName = exports.bodyOpenClassName = \"ReactModal__Body--open\";\n\nvar isReact16 = _safeHTMLElement.canUseDOM && _reactDom2.default.createPortal !== undefined;\n\nvar createHTMLElement = function createHTMLElement(name) {\n return document.createElement(name);\n};\n\nvar getCreatePortal = function getCreatePortal() {\n return isReact16 ? _reactDom2.default.createPortal : _reactDom2.default.unstable_renderSubtreeIntoContainer;\n};\n\nfunction getParentElement(parentSelector) {\n return parentSelector();\n}\n\nvar Modal = function (_Component) {\n _inherits(Modal, _Component);\n\n function Modal() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Modal);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Modal.__proto__ || Object.getPrototypeOf(Modal)).call.apply(_ref, [this].concat(args))), _this), _this.removePortal = function () {\n !isReact16 && _reactDom2.default.unmountComponentAtNode(_this.node);\n var parent = getParentElement(_this.props.parentSelector);\n if (parent && parent.contains(_this.node)) {\n parent.removeChild(_this.node);\n } else {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"parentSelector\" prop did not returned any DOM ' + \"element. Make sure that the parent element is unmounted to \" + \"avoid any memory leaks.\");\n }\n }, _this.portalRef = function (ref) {\n _this.portal = ref;\n }, _this.renderPortal = function (props) {\n var createPortal = getCreatePortal();\n var portal = createPortal(_this, _react2.default.createElement(_ModalPortal2.default, _extends({ defaultStyles: Modal.defaultStyles }, props)), _this.node);\n _this.portalRef(portal);\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Modal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!_safeHTMLElement.canUseDOM) return;\n\n if (!isReact16) {\n this.node = createHTMLElement(\"div\");\n }\n this.node.className = this.props.portalClassName;\n\n var parent = getParentElement(this.props.parentSelector);\n parent.appendChild(this.node);\n\n !isReact16 && this.renderPortal(this.props);\n }\n }, {\n key: \"getSnapshotBeforeUpdate\",\n value: function getSnapshotBeforeUpdate(prevProps) {\n var prevParent = getParentElement(prevProps.parentSelector);\n var nextParent = getParentElement(this.props.parentSelector);\n return { prevParent: prevParent, nextParent: nextParent };\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, _, snapshot) {\n if (!_safeHTMLElement.canUseDOM) return;\n var _props = this.props,\n isOpen = _props.isOpen,\n portalClassName = _props.portalClassName;\n\n\n if (prevProps.portalClassName !== portalClassName) {\n this.node.className = portalClassName;\n }\n\n var prevParent = snapshot.prevParent,\n nextParent = snapshot.nextParent;\n\n if (nextParent !== prevParent) {\n prevParent.removeChild(this.node);\n nextParent.appendChild(this.node);\n }\n\n // Stop unnecessary renders if modal is remaining closed\n if (!prevProps.isOpen && !isOpen) return;\n\n !isReact16 && this.renderPortal(this.props);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (!_safeHTMLElement.canUseDOM || !this.node || !this.portal) return;\n\n var state = this.portal.state;\n var now = Date.now();\n var closesAt = state.isOpen && this.props.closeTimeoutMS && (state.closesAt || now + this.props.closeTimeoutMS);\n\n if (closesAt) {\n if (!state.beforeClose) {\n this.portal.closeWithTimeout();\n }\n\n setTimeout(this.removePortal, closesAt - now);\n } else {\n this.removePortal();\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n if (!_safeHTMLElement.canUseDOM || !isReact16) {\n return null;\n }\n\n if (!this.node && isReact16) {\n this.node = createHTMLElement(\"div\");\n }\n\n var createPortal = getCreatePortal();\n return createPortal(_react2.default.createElement(_ModalPortal2.default, _extends({\n ref: this.portalRef,\n defaultStyles: Modal.defaultStyles\n }, this.props)), this.node);\n }\n }], [{\n key: \"setAppElement\",\n value: function setAppElement(element) {\n ariaAppHider.setElement(element);\n }\n\n /* eslint-disable react/no-unused-prop-types */\n\n /* eslint-enable react/no-unused-prop-types */\n\n }]);\n\n return Modal;\n}(_react.Component);\n\nModal.propTypes = {\n isOpen: _propTypes2.default.bool.isRequired,\n style: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n portalClassName: _propTypes2.default.string,\n bodyOpenClassName: _propTypes2.default.string,\n htmlOpenClassName: _propTypes2.default.string,\n className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.shape({\n base: _propTypes2.default.string.isRequired,\n afterOpen: _propTypes2.default.string.isRequired,\n beforeClose: _propTypes2.default.string.isRequired\n })]),\n overlayClassName: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.shape({\n base: _propTypes2.default.string.isRequired,\n afterOpen: _propTypes2.default.string.isRequired,\n beforeClose: _propTypes2.default.string.isRequired\n })]),\n appElement: _propTypes2.default.oneOfType([_propTypes2.default.instanceOf(_safeHTMLElement2.default), _propTypes2.default.instanceOf(_safeHTMLElement.SafeHTMLCollection), _propTypes2.default.instanceOf(_safeHTMLElement.SafeNodeList), _propTypes2.default.arrayOf(_propTypes2.default.instanceOf(_safeHTMLElement2.default))]),\n onAfterOpen: _propTypes2.default.func,\n onRequestClose: _propTypes2.default.func,\n closeTimeoutMS: _propTypes2.default.number,\n ariaHideApp: _propTypes2.default.bool,\n shouldFocusAfterRender: _propTypes2.default.bool,\n shouldCloseOnOverlayClick: _propTypes2.default.bool,\n shouldReturnFocusAfterClose: _propTypes2.default.bool,\n preventScroll: _propTypes2.default.bool,\n parentSelector: _propTypes2.default.func,\n aria: _propTypes2.default.object,\n data: _propTypes2.default.object,\n role: _propTypes2.default.string,\n contentLabel: _propTypes2.default.string,\n shouldCloseOnEsc: _propTypes2.default.bool,\n overlayRef: _propTypes2.default.func,\n contentRef: _propTypes2.default.func,\n id: _propTypes2.default.string,\n overlayElement: _propTypes2.default.func,\n contentElement: _propTypes2.default.func\n};\nModal.defaultProps = {\n isOpen: false,\n portalClassName: portalClassName,\n bodyOpenClassName: bodyOpenClassName,\n role: \"dialog\",\n ariaHideApp: true,\n closeTimeoutMS: 0,\n shouldFocusAfterRender: true,\n shouldCloseOnEsc: true,\n shouldCloseOnOverlayClick: true,\n shouldReturnFocusAfterClose: true,\n preventScroll: false,\n parentSelector: function parentSelector() {\n return document.body;\n },\n overlayElement: function overlayElement(props, contentEl) {\n return _react2.default.createElement(\n \"div\",\n props,\n contentEl\n );\n },\n contentElement: function contentElement(props, children) {\n return _react2.default.createElement(\n \"div\",\n props,\n children\n );\n }\n};\nModal.defaultStyles = {\n overlay: {\n position: \"fixed\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: \"rgba(255, 255, 255, 0.75)\"\n },\n content: {\n position: \"absolute\",\n top: \"40px\",\n left: \"40px\",\n right: \"40px\",\n bottom: \"40px\",\n border: \"1px solid #ccc\",\n background: \"#fff\",\n overflow: \"auto\",\n WebkitOverflowScrolling: \"touch\",\n borderRadius: \"4px\",\n outline: \"none\",\n padding: \"20px\"\n }\n};\n\n\n(0, _reactLifecyclesCompat.polyfill)(Modal);\n\nif (process.env.NODE_ENV !== \"production\") {\n Modal.setCreateHTMLElement = function (fn) {\n return createHTMLElement = fn;\n };\n}\n\nexports.default = Modal;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\n\nvar _portalOpenInstances = require(\"./portalOpenInstances\");\n\nvar _portalOpenInstances2 = _interopRequireDefault(_portalOpenInstances);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Body focus trap see Issue #742\n\nvar before = void 0,\n after = void 0,\n instances = [];\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction resetState() {\n var _arr = [before, after];\n\n for (var _i = 0; _i < _arr.length; _i++) {\n var item = _arr[_i];\n if (!item) continue;\n item.parentNode && item.parentNode.removeChild(item);\n }\n before = after = null;\n instances = [];\n}\n\n/* istanbul ignore next */\nfunction log() {\n console.log(\"bodyTrap ----------\");\n console.log(instances.length);\n var _arr2 = [before, after];\n for (var _i2 = 0; _i2 < _arr2.length; _i2++) {\n var item = _arr2[_i2];\n var check = item || {};\n console.log(check.nodeName, check.className, check.id);\n }\n console.log(\"edn bodyTrap ----------\");\n}\n/* eslint-enable no-console */\n\nfunction focusContent() {\n if (instances.length === 0) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Open instances > 0 expected\");\n }\n return;\n }\n instances[instances.length - 1].focusContent();\n}\n\nfunction bodyTrap(eventType, openInstances) {\n if (!before && !after) {\n before = document.createElement(\"div\");\n before.setAttribute(\"data-react-modal-body-trap\", \"\");\n before.style.position = \"absolute\";\n before.style.opacity = \"0\";\n before.setAttribute(\"tabindex\", \"0\");\n before.addEventListener(\"focus\", focusContent);\n after = before.cloneNode();\n after.addEventListener(\"focus\", focusContent);\n }\n\n instances = openInstances;\n\n if (instances.length > 0) {\n // Add focus trap\n if (document.body.firstChild !== before) {\n document.body.insertBefore(before, document.body.firstChild);\n }\n if (document.body.lastChild !== after) {\n document.body.appendChild(after);\n }\n } else {\n // Remove focus trap\n if (before.parentElement) {\n before.parentElement.removeChild(before);\n }\n if (after.parentElement) {\n after.parentElement.removeChild(after);\n }\n }\n}\n\n_portalOpenInstances2.default.subscribe(bodyTrap);","import { slice } from './util';\nimport options from './options';\n\nlet vnodeId = 0;\n\n/**\n * Create an virtual node (used for JSX)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * constructor for this virtual node\n * @param {object | null | undefined} [props] The properties of the virtual node\n * @param {Array} [children] The children of the virtual node\n * @returns {import('./internal').VNode}\n */\nexport function createElement(type, props, children) {\n\tlet normalizedProps = {},\n\t\tkey,\n\t\tref,\n\t\ti;\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 2) {\n\t\tnormalizedProps.children =\n\t\t\targuments.length > 3 ? slice.call(arguments, 2) : children;\n\t}\n\n\t// If a Component VNode, check for and apply defaultProps\n\t// Note: type may be undefined in development, must never error here.\n\tif (typeof type == 'function' && type.defaultProps != null) {\n\t\tfor (i in type.defaultProps) {\n\t\t\tif (normalizedProps[i] === undefined) {\n\t\t\t\tnormalizedProps[i] = type.defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn createVNode(type, normalizedProps, key, ref, null);\n}\n\n/**\n * Create a VNode (used internally by Preact)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * Constructor for this virtual node\n * @param {object | string | number | null} props The properties of this virtual node.\n * If this virtual node represents a text node, this is the text of the node (string or number).\n * @param {string | number | null} key The key for this virtual node, used when\n * diffing it against its children\n * @param {import('./internal').VNode[\"ref\"]} ref The ref property that will\n * receive a reference to its created child\n * @returns {import('./internal').VNode}\n */\nexport function createVNode(type, props, key, ref, original) {\n\t// V8 seems to be better at detecting type shapes if the object is allocated from the same call site\n\t// Do not inline into createElement and coerceToVNode!\n\tconst vnode = {\n\t\ttype,\n\t\tprops,\n\t\tkey,\n\t\tref,\n\t\t_children: null,\n\t\t_parent: null,\n\t\t_depth: 0,\n\t\t_dom: null,\n\t\t// _nextDom must be initialized to undefined b/c it will eventually\n\t\t// be set to dom.nextSibling which can return `null` and it is important\n\t\t// to be able to distinguish between an uninitialized _nextDom and\n\t\t// a _nextDom that has been set to `null`\n\t\t_nextDom: undefined,\n\t\t_component: null,\n\t\t_hydrating: null,\n\t\tconstructor: undefined,\n\t\t_original: original == null ? ++vnodeId : original\n\t};\n\n\t// Only invoke the vnode hook if this was *not* a direct copy:\n\tif (original == null && options.vnode != null) options.vnode(vnode);\n\n\treturn vnode;\n}\n\nexport function createRef() {\n\treturn { current: null };\n}\n\nexport function Fragment(props) {\n\treturn props.children;\n}\n\n/**\n * Check if a the argument is a valid Preact VNode.\n * @param {*} vnode\n * @returns {vnode is import('./internal').VNode}\n */\nexport const isValidElement = vnode =>\n\tvnode != null && vnode.constructor === undefined;\n","import { assign } from './util';\nimport { diff, commitRoot } from './diff/index';\nimport options from './options';\nimport { Fragment } from './create-element';\n\n/**\n * Base Component class. Provides `setState()` and `forceUpdate()`, which\n * trigger rendering\n * @param {object} props The initial component props\n * @param {object} context The initial context from parent components'\n * getChildContext\n */\nexport function Component(props, context) {\n\tthis.props = props;\n\tthis.context = context;\n}\n\n/**\n * Update component state and schedule a re-render.\n * @this {import('./internal').Component}\n * @param {object | ((s: object, p: object) => object)} update A hash of state\n * properties to update with new values or a function that given the current\n * state and props returns a new partial state\n * @param {() => void} [callback] A function to be called once component state is\n * updated\n */\nComponent.prototype.setState = function(update, callback) {\n\t// only clone state when copying to nextState the first time.\n\tlet s;\n\tif (this._nextState != null && this._nextState !== this.state) {\n\t\ts = this._nextState;\n\t} else {\n\t\ts = this._nextState = assign({}, this.state);\n\t}\n\n\tif (typeof update == 'function') {\n\t\t// Some libraries like `immer` mark the current state as readonly,\n\t\t// preventing us from mutating it, so we need to clone it. See #2716\n\t\tupdate = update(assign({}, s), this.props);\n\t}\n\n\tif (update) {\n\t\tassign(s, update);\n\t}\n\n\t// Skip update if updater function returned null\n\tif (update == null) return;\n\n\tif (this._vnode) {\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Immediately perform a synchronous re-render of the component\n * @this {import('./internal').Component}\n * @param {() => void} [callback] A function to be called after component is\n * re-rendered\n */\nComponent.prototype.forceUpdate = function(callback) {\n\tif (this._vnode) {\n\t\t// Set render mode so that we can differentiate where the render request\n\t\t// is coming from. We need this because forceUpdate should never call\n\t\t// shouldComponentUpdate\n\t\tthis._force = true;\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\n * Virtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\n * @param {object} props Props (eg: JSX attributes) received from parent\n * element/component\n * @param {object} state The component's current state\n * @param {object} context Context object, as returned by the nearest\n * ancestor's `getChildContext()`\n * @returns {import('./index').ComponentChildren | void}\n */\nComponent.prototype.render = Fragment;\n\n/**\n * @param {import('./internal').VNode} vnode\n * @param {number | null} [childIndex]\n */\nexport function getDomSibling(vnode, childIndex) {\n\tif (childIndex == null) {\n\t\t// Use childIndex==null as a signal to resume the search from the vnode's sibling\n\t\treturn vnode._parent\n\t\t\t? getDomSibling(vnode._parent, vnode._parent._children.indexOf(vnode) + 1)\n\t\t\t: null;\n\t}\n\n\tlet sibling;\n\tfor (; childIndex < vnode._children.length; childIndex++) {\n\t\tsibling = vnode._children[childIndex];\n\n\t\tif (sibling != null && sibling._dom != null) {\n\t\t\t// Since updateParentDomPointers keeps _dom pointer correct,\n\t\t\t// we can rely on _dom to tell us if this subtree contains a\n\t\t\t// rendered DOM node, and what the first rendered DOM node is\n\t\t\treturn sibling._dom;\n\t\t}\n\t}\n\n\t// If we get here, we have not found a DOM node in this vnode's children.\n\t// We must resume from this vnode's sibling (in it's parent _children array)\n\t// Only climb up and search the parent if we aren't searching through a DOM\n\t// VNode (meaning we reached the DOM parent of the original vnode that began\n\t// the search)\n\treturn typeof vnode.type == 'function' ? getDomSibling(vnode) : null;\n}\n\n/**\n * Trigger in-place re-rendering of a component.\n * @param {import('./internal').Component} component The component to rerender\n */\nfunction renderComponent(component) {\n\tlet vnode = component._vnode,\n\t\toldDom = vnode._dom,\n\t\tparentDom = component._parentDom;\n\n\tif (parentDom) {\n\t\tlet commitQueue = [];\n\t\tconst oldVNode = assign({}, vnode);\n\t\toldVNode._original = vnode._original + 1;\n\n\t\tdiff(\n\t\t\tparentDom,\n\t\t\tvnode,\n\t\t\toldVNode,\n\t\t\tcomponent._globalContext,\n\t\t\tparentDom.ownerSVGElement !== undefined,\n\t\t\tvnode._hydrating != null ? [oldDom] : null,\n\t\t\tcommitQueue,\n\t\t\toldDom == null ? getDomSibling(vnode) : oldDom,\n\t\t\tvnode._hydrating\n\t\t);\n\t\tcommitRoot(commitQueue, vnode);\n\n\t\tif (vnode._dom != oldDom) {\n\t\t\tupdateParentDomPointers(vnode);\n\t\t}\n\t}\n}\n\n/**\n * @param {import('./internal').VNode} vnode\n */\nfunction updateParentDomPointers(vnode) {\n\tif ((vnode = vnode._parent) != null && vnode._component != null) {\n\t\tvnode._dom = vnode._component.base = null;\n\t\tfor (let i = 0; i < vnode._children.length; i++) {\n\t\t\tlet child = vnode._children[i];\n\t\t\tif (child != null && child._dom != null) {\n\t\t\t\tvnode._dom = vnode._component.base = child._dom;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn updateParentDomPointers(vnode);\n\t}\n}\n\n/**\n * The render queue\n * @type {Array}\n */\nlet rerenderQueue = [];\n\n/*\n * The value of `Component.debounce` must asynchronously invoke the passed in callback. It is\n * important that contributors to Preact can consistently reason about what calls to `setState`, etc.\n * do, and when their effects will be applied. See the links below for some further reading on designing\n * asynchronous APIs.\n * * [Designing APIs for Asynchrony](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\n * * [Callbacks synchronous and asynchronous](https://blog.ometer.com/2011/07/24/callbacks-synchronous-and-asynchronous/)\n */\n\nlet prevDebounce;\n\n/**\n * Enqueue a rerender of a component\n * @param {import('./internal').Component} c The component to rerender\n */\nexport function enqueueRender(c) {\n\tif (\n\t\t(!c._dirty &&\n\t\t\t(c._dirty = true) &&\n\t\t\trerenderQueue.push(c) &&\n\t\t\t!process._rerenderCount++) ||\n\t\tprevDebounce !== options.debounceRendering\n\t) {\n\t\tprevDebounce = options.debounceRendering;\n\t\t(prevDebounce || setTimeout)(process);\n\t}\n}\n\n/** Flush the render queue by rerendering all queued components */\nfunction process() {\n\tlet queue;\n\twhile ((process._rerenderCount = rerenderQueue.length)) {\n\t\tqueue = rerenderQueue.sort((a, b) => a._vnode._depth - b._vnode._depth);\n\t\trerenderQueue = [];\n\t\t// Don't update `renderCount` yet. Keep its value non-zero to prevent unnecessary\n\t\t// process() calls from getting scheduled while `queue` is still being consumed.\n\t\tqueue.some(c => {\n\t\t\tif (c._dirty) renderComponent(c);\n\t\t});\n\t}\n}\n\nprocess._rerenderCount = 0;\n","import { diff, unmount, applyRef } from './index';\nimport { createVNode, Fragment } from '../create-element';\nimport { EMPTY_OBJ, EMPTY_ARR } from '../constants';\nimport { getDomSibling } from '../component';\n\n/**\n * Diff the children of a virtual node\n * @param {import('../internal').PreactElement} parentDom The DOM element whose\n * children are being diffed\n * @param {import('../internal').ComponentChildren[]} renderResult\n * @param {import('../internal').VNode} newParentVNode The new virtual\n * node whose children should be diff'ed against oldParentVNode\n * @param {import('../internal').VNode} oldParentVNode The old virtual\n * node whose children should be diff'ed against newParentVNode\n * @param {object} globalContext The current context object - modified by getChildContext\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {Array} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').PreactElement} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} isHydrating Whether or not we are in hydration\n */\nexport function diffChildren(\n\tparentDom,\n\trenderResult,\n\tnewParentVNode,\n\toldParentVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet i, j, oldVNode, childVNode, newDom, firstChildDom, refs;\n\n\t// This is a compression of oldParentVNode!=null && oldParentVNode != EMPTY_OBJ && oldParentVNode._children || EMPTY_ARR\n\t// as EMPTY_OBJ._children should be `undefined`.\n\tlet oldChildren = (oldParentVNode && oldParentVNode._children) || EMPTY_ARR;\n\n\tlet oldChildrenLength = oldChildren.length;\n\n\tnewParentVNode._children = [];\n\tfor (i = 0; i < renderResult.length; i++) {\n\t\tchildVNode = renderResult[i];\n\n\t\tif (childVNode == null || typeof childVNode == 'boolean') {\n\t\t\tchildVNode = newParentVNode._children[i] = null;\n\t\t}\n\t\t// If this newVNode is being reused (e.g.
{reuse}{reuse}
) in the same diff,\n\t\t// or we are rendering a component (e.g. setState) copy the oldVNodes so it can have\n\t\t// it's own DOM & etc. pointers\n\t\telse if (\n\t\t\ttypeof childVNode == 'string' ||\n\t\t\ttypeof childVNode == 'number' ||\n\t\t\t// eslint-disable-next-line valid-typeof\n\t\t\ttypeof childVNode == 'bigint'\n\t\t) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tnull,\n\t\t\t\tchildVNode,\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tchildVNode\n\t\t\t);\n\t\t} else if (Array.isArray(childVNode)) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tFragment,\n\t\t\t\t{ children: childVNode },\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tnull\n\t\t\t);\n\t\t} else if (childVNode._depth > 0) {\n\t\t\t// VNode is already in use, clone it. This can happen in the following\n\t\t\t// scenario:\n\t\t\t// const reuse =
\n\t\t\t//
{reuse}{reuse}
\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tchildVNode.type,\n\t\t\t\tchildVNode.props,\n\t\t\t\tchildVNode.key,\n\t\t\t\tchildVNode.ref ? childVNode.ref : null,\n\t\t\t\tchildVNode._original\n\t\t\t);\n\t\t} else {\n\t\t\tchildVNode = newParentVNode._children[i] = childVNode;\n\t\t}\n\n\t\t// Terser removes the `continue` here and wraps the loop body\n\t\t// in a `if (childVNode) { ... } condition\n\t\tif (childVNode == null) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tchildVNode._parent = newParentVNode;\n\t\tchildVNode._depth = newParentVNode._depth + 1;\n\n\t\t// Check if we find a corresponding element in oldChildren.\n\t\t// If found, delete the array item by setting to `undefined`.\n\t\t// We use `undefined`, as `null` is reserved for empty placeholders\n\t\t// (holes).\n\t\toldVNode = oldChildren[i];\n\n\t\tif (\n\t\t\toldVNode === null ||\n\t\t\t(oldVNode &&\n\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\tchildVNode.type === oldVNode.type)\n\t\t) {\n\t\t\toldChildren[i] = undefined;\n\t\t} else {\n\t\t\t// Either oldVNode === undefined or oldChildrenLength > 0,\n\t\t\t// so after this loop oldVNode == null or oldVNode is a valid value.\n\t\t\tfor (j = 0; j < oldChildrenLength; j++) {\n\t\t\t\toldVNode = oldChildren[j];\n\t\t\t\t// If childVNode is unkeyed, we only match similarly unkeyed nodes, otherwise we match by key.\n\t\t\t\t// We always match by type (in either case).\n\t\t\t\tif (\n\t\t\t\t\toldVNode &&\n\t\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\t\tchildVNode.type === oldVNode.type\n\t\t\t\t) {\n\t\t\t\t\toldChildren[j] = undefined;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\toldVNode = null;\n\t\t\t}\n\t\t}\n\n\t\toldVNode = oldVNode || EMPTY_OBJ;\n\n\t\t// Morph the old element into the new one, but don't append it to the dom yet\n\t\tdiff(\n\t\t\tparentDom,\n\t\t\tchildVNode,\n\t\t\toldVNode,\n\t\t\tglobalContext,\n\t\t\tisSvg,\n\t\t\texcessDomChildren,\n\t\t\tcommitQueue,\n\t\t\toldDom,\n\t\t\tisHydrating\n\t\t);\n\n\t\tnewDom = childVNode._dom;\n\n\t\tif ((j = childVNode.ref) && oldVNode.ref != j) {\n\t\t\tif (!refs) refs = [];\n\t\t\tif (oldVNode.ref) refs.push(oldVNode.ref, null, childVNode);\n\t\t\trefs.push(j, childVNode._component || newDom, childVNode);\n\t\t}\n\n\t\tif (newDom != null) {\n\t\t\tif (firstChildDom == null) {\n\t\t\t\tfirstChildDom = newDom;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\ttypeof childVNode.type == 'function' &&\n\t\t\t\tchildVNode._children === oldVNode._children\n\t\t\t) {\n\t\t\t\tchildVNode._nextDom = oldDom = reorderChildren(\n\t\t\t\t\tchildVNode,\n\t\t\t\t\toldDom,\n\t\t\t\t\tparentDom\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\toldDom = placeChild(\n\t\t\t\t\tparentDom,\n\t\t\t\t\tchildVNode,\n\t\t\t\t\toldVNode,\n\t\t\t\t\toldChildren,\n\t\t\t\t\tnewDom,\n\t\t\t\t\toldDom\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (typeof newParentVNode.type == 'function') {\n\t\t\t\t// Because the newParentVNode is Fragment-like, we need to set it's\n\t\t\t\t// _nextDom property to the nextSibling of its last child DOM node.\n\t\t\t\t//\n\t\t\t\t// `oldDom` contains the correct value here because if the last child\n\t\t\t\t// is a Fragment-like, then oldDom has already been set to that child's _nextDom.\n\t\t\t\t// If the last child is a DOM VNode, then oldDom will be set to that DOM\n\t\t\t\t// node's nextSibling.\n\t\t\t\tnewParentVNode._nextDom = oldDom;\n\t\t\t}\n\t\t} else if (\n\t\t\toldDom &&\n\t\t\toldVNode._dom == oldDom &&\n\t\t\toldDom.parentNode != parentDom\n\t\t) {\n\t\t\t// The above condition is to handle null placeholders. See test in placeholder.test.js:\n\t\t\t// `efficiently replace null placeholders in parent rerenders`\n\t\t\toldDom = getDomSibling(oldVNode);\n\t\t}\n\t}\n\n\tnewParentVNode._dom = firstChildDom;\n\n\t// Remove remaining oldChildren if there are any.\n\tfor (i = oldChildrenLength; i--; ) {\n\t\tif (oldChildren[i] != null) {\n\t\t\tif (\n\t\t\t\ttypeof newParentVNode.type == 'function' &&\n\t\t\t\toldChildren[i]._dom != null &&\n\t\t\t\toldChildren[i]._dom == newParentVNode._nextDom\n\t\t\t) {\n\t\t\t\t// If the newParentVNode.__nextDom points to a dom node that is about to\n\t\t\t\t// be unmounted, then get the next sibling of that vnode and set\n\t\t\t\t// _nextDom to it\n\t\t\t\tnewParentVNode._nextDom = getDomSibling(oldParentVNode, i + 1);\n\t\t\t}\n\n\t\t\tunmount(oldChildren[i], oldChildren[i]);\n\t\t}\n\t}\n\n\t// Set refs only after unmount\n\tif (refs) {\n\t\tfor (i = 0; i < refs.length; i++) {\n\t\t\tapplyRef(refs[i], refs[++i], refs[++i]);\n\t\t}\n\t}\n}\n\nfunction reorderChildren(childVNode, oldDom, parentDom) {\n\t// Note: VNodes in nested suspended trees may be missing _children.\n\tlet c = childVNode._children;\n\tlet tmp = 0;\n\tfor (; c && tmp < c.length; tmp++) {\n\t\tlet vnode = c[tmp];\n\t\tif (vnode) {\n\t\t\t// We typically enter this code path on sCU bailout, where we copy\n\t\t\t// oldVNode._children to newVNode._children. If that is the case, we need\n\t\t\t// to update the old children's _parent pointer to point to the newVNode\n\t\t\t// (childVNode here).\n\t\t\tvnode._parent = childVNode;\n\n\t\t\tif (typeof vnode.type == 'function') {\n\t\t\t\toldDom = reorderChildren(vnode, oldDom, parentDom);\n\t\t\t} else {\n\t\t\t\toldDom = placeChild(parentDom, vnode, vnode, c, vnode._dom, oldDom);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn oldDom;\n}\n\n/**\n * Flatten and loop through the children of a virtual node\n * @param {import('../index').ComponentChildren} children The unflattened\n * children of a virtual node\n * @returns {import('../internal').VNode[]}\n */\nexport function toChildArray(children, out) {\n\tout = out || [];\n\tif (children == null || typeof children == 'boolean') {\n\t} else if (Array.isArray(children)) {\n\t\tchildren.some(child => {\n\t\t\ttoChildArray(child, out);\n\t\t});\n\t} else {\n\t\tout.push(children);\n\t}\n\treturn out;\n}\n\nfunction placeChild(\n\tparentDom,\n\tchildVNode,\n\toldVNode,\n\toldChildren,\n\tnewDom,\n\toldDom\n) {\n\tlet nextDom;\n\tif (childVNode._nextDom !== undefined) {\n\t\t// Only Fragments or components that return Fragment like VNodes will\n\t\t// have a non-undefined _nextDom. Continue the diff from the sibling\n\t\t// of last DOM child of this child VNode\n\t\tnextDom = childVNode._nextDom;\n\n\t\t// Eagerly cleanup _nextDom. We don't need to persist the value because\n\t\t// it is only used by `diffChildren` to determine where to resume the diff after\n\t\t// diffing Components and Fragments. Once we store it the nextDOM local var, we\n\t\t// can clean up the property\n\t\tchildVNode._nextDom = undefined;\n\t} else if (\n\t\toldVNode == null ||\n\t\tnewDom != oldDom ||\n\t\tnewDom.parentNode == null\n\t) {\n\t\touter: if (oldDom == null || oldDom.parentNode !== parentDom) {\n\t\t\tparentDom.appendChild(newDom);\n\t\t\tnextDom = null;\n\t\t} else {\n\t\t\t// `j href (xlink:href was removed from SVG and isn't needed)\n\t\t\t// - className --> class\n\t\t\tname = name.replace(/xlink(H|:h)/, 'h').replace(/sName$/, 's');\n\t\t} else if (\n\t\t\tname !== 'href' &&\n\t\t\tname !== 'list' &&\n\t\t\tname !== 'form' &&\n\t\t\t// Default value in browsers is `-1` and an empty string is\n\t\t\t// cast to `0` instead\n\t\t\tname !== 'tabIndex' &&\n\t\t\tname !== 'download' &&\n\t\t\tname in dom\n\t\t) {\n\t\t\ttry {\n\t\t\t\tdom[name] = value == null ? '' : value;\n\t\t\t\t// labelled break is 1b smaller here than a return statement (sorry)\n\t\t\t\tbreak o;\n\t\t\t} catch (e) {}\n\t\t}\n\n\t\t// ARIA-attributes have a different notion of boolean values.\n\t\t// The value `false` is different from the attribute not\n\t\t// existing on the DOM, so we can't remove it. For non-boolean\n\t\t// ARIA-attributes we could treat false as a removal, but the\n\t\t// amount of exceptions would cost us too many bytes. On top of\n\t\t// that other VDOM frameworks also always stringify `false`.\n\n\t\tif (typeof value === 'function') {\n\t\t\t// never serialize functions as attribute values\n\t\t} else if (\n\t\t\tvalue != null &&\n\t\t\t(value !== false || (name[0] === 'a' && name[1] === 'r'))\n\t\t) {\n\t\t\tdom.setAttribute(name, value);\n\t\t} else {\n\t\t\tdom.removeAttribute(name);\n\t\t}\n\t}\n}\n\n/**\n * Proxy an event to hooked event handlers\n * @param {Event} e The event object from the browser\n * @private\n */\nfunction eventProxy(e) {\n\tthis._listeners[e.type + false](options.event ? options.event(e) : e);\n}\n\nfunction eventProxyCapture(e) {\n\tthis._listeners[e.type + true](options.event ? options.event(e) : e);\n}\n","import { EMPTY_OBJ } from '../constants';\nimport { Component, getDomSibling } from '../component';\nimport { Fragment } from '../create-element';\nimport { diffChildren } from './children';\nimport { diffProps, setProperty } from './props';\nimport { assign, removeNode, slice } from '../util';\nimport options from '../options';\n\n/**\n * Diff two virtual nodes and apply proper changes to the DOM\n * @param {import('../internal').PreactElement} parentDom The parent of the DOM element\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object. Modified by getChildContext\n * @param {boolean} isSvg Whether or not this element is an SVG node\n * @param {Array} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').PreactElement} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} [isHydrating] Whether or not we are in hydration\n */\nexport function diff(\n\tparentDom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet tmp,\n\t\tnewType = newVNode.type;\n\n\t// When passing through createElement it assigns the object\n\t// constructor as undefined. This to prevent JSON-injection.\n\tif (newVNode.constructor !== undefined) return null;\n\n\t// If the previous diff bailed out, resume creating/hydrating.\n\tif (oldVNode._hydrating != null) {\n\t\tisHydrating = oldVNode._hydrating;\n\t\toldDom = newVNode._dom = oldVNode._dom;\n\t\t// if we resume, we want the tree to be \"unlocked\"\n\t\tnewVNode._hydrating = null;\n\t\texcessDomChildren = [oldDom];\n\t}\n\n\tif ((tmp = options._diff)) tmp(newVNode);\n\n\ttry {\n\t\touter: if (typeof newType == 'function') {\n\t\t\tlet c, isNew, oldProps, oldState, snapshot, clearProcessingException;\n\t\t\tlet newProps = newVNode.props;\n\n\t\t\t// Necessary for createContext api. Setting this property will pass\n\t\t\t// the context value as `this.context` just for this component.\n\t\t\ttmp = newType.contextType;\n\t\t\tlet provider = tmp && globalContext[tmp._id];\n\t\t\tlet componentContext = tmp\n\t\t\t\t? provider\n\t\t\t\t\t? provider.props.value\n\t\t\t\t\t: tmp._defaultValue\n\t\t\t\t: globalContext;\n\n\t\t\t// Get component and set it to `c`\n\t\t\tif (oldVNode._component) {\n\t\t\t\tc = newVNode._component = oldVNode._component;\n\t\t\t\tclearProcessingException = c._processingException = c._pendingError;\n\t\t\t} else {\n\t\t\t\t// Instantiate the new component\n\t\t\t\tif ('prototype' in newType && newType.prototype.render) {\n\t\t\t\t\t// @ts-ignore The check above verifies that newType is suppose to be constructed\n\t\t\t\t\tnewVNode._component = c = new newType(newProps, componentContext); // eslint-disable-line new-cap\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore Trust me, Component implements the interface we want\n\t\t\t\t\tnewVNode._component = c = new Component(newProps, componentContext);\n\t\t\t\t\tc.constructor = newType;\n\t\t\t\t\tc.render = doRender;\n\t\t\t\t}\n\t\t\t\tif (provider) provider.sub(c);\n\n\t\t\t\tc.props = newProps;\n\t\t\t\tif (!c.state) c.state = {};\n\t\t\t\tc.context = componentContext;\n\t\t\t\tc._globalContext = globalContext;\n\t\t\t\tisNew = c._dirty = true;\n\t\t\t\tc._renderCallbacks = [];\n\t\t\t}\n\n\t\t\t// Invoke getDerivedStateFromProps\n\t\t\tif (c._nextState == null) {\n\t\t\t\tc._nextState = c.state;\n\t\t\t}\n\t\t\tif (newType.getDerivedStateFromProps != null) {\n\t\t\t\tif (c._nextState == c.state) {\n\t\t\t\t\tc._nextState = assign({}, c._nextState);\n\t\t\t\t}\n\n\t\t\t\tassign(\n\t\t\t\t\tc._nextState,\n\t\t\t\t\tnewType.getDerivedStateFromProps(newProps, c._nextState)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\toldProps = c.props;\n\t\t\toldState = c.state;\n\n\t\t\t// Invoke pre-render lifecycle methods\n\t\t\tif (isNew) {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tc.componentWillMount != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillMount();\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidMount != null) {\n\t\t\t\t\tc._renderCallbacks.push(c.componentDidMount);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tnewProps !== oldProps &&\n\t\t\t\t\tc.componentWillReceiveProps != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillReceiveProps(newProps, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t(!c._force &&\n\t\t\t\t\t\tc.shouldComponentUpdate != null &&\n\t\t\t\t\t\tc.shouldComponentUpdate(\n\t\t\t\t\t\t\tnewProps,\n\t\t\t\t\t\t\tc._nextState,\n\t\t\t\t\t\t\tcomponentContext\n\t\t\t\t\t\t) === false) ||\n\t\t\t\t\tnewVNode._original === oldVNode._original\n\t\t\t\t) {\n\t\t\t\t\tc.props = newProps;\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t\t// More info about this here: https://gist.github.com/JoviDeCroock/bec5f2ce93544d2e6070ef8e0036e4e8\n\t\t\t\t\tif (newVNode._original !== oldVNode._original) c._dirty = false;\n\t\t\t\t\tc._vnode = newVNode;\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t\tnewVNode._children.forEach(vnode => {\n\t\t\t\t\t\tif (vnode) vnode._parent = newVNode;\n\t\t\t\t\t});\n\t\t\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\t\t\tcommitQueue.push(c);\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\n\t\t\t\tif (c.componentWillUpdate != null) {\n\t\t\t\t\tc.componentWillUpdate(newProps, c._nextState, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidUpdate != null) {\n\t\t\t\t\tc._renderCallbacks.push(() => {\n\t\t\t\t\t\tc.componentDidUpdate(oldProps, oldState, snapshot);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tc.context = componentContext;\n\t\t\tc.props = newProps;\n\t\t\tc._vnode = newVNode;\n\t\t\tc._parentDom = parentDom;\n\n\t\t\tlet renderHook = options._render,\n\t\t\t\tcount = 0;\n\t\t\tif ('prototype' in newType && newType.prototype.render) {\n\t\t\t\tc.state = c._nextState;\n\t\t\t\tc._dirty = false;\n\n\t\t\t\tif (renderHook) renderHook(newVNode);\n\n\t\t\t\ttmp = c.render(c.props, c.state, c.context);\n\t\t\t} else {\n\t\t\t\tdo {\n\t\t\t\t\tc._dirty = false;\n\t\t\t\t\tif (renderHook) renderHook(newVNode);\n\n\t\t\t\t\ttmp = c.render(c.props, c.state, c.context);\n\n\t\t\t\t\t// Handle setState called in render, see #2553\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t} while (c._dirty && ++count < 25);\n\t\t\t}\n\n\t\t\t// Handle setState called in render, see #2553\n\t\t\tc.state = c._nextState;\n\n\t\t\tif (c.getChildContext != null) {\n\t\t\t\tglobalContext = assign(assign({}, globalContext), c.getChildContext());\n\t\t\t}\n\n\t\t\tif (!isNew && c.getSnapshotBeforeUpdate != null) {\n\t\t\t\tsnapshot = c.getSnapshotBeforeUpdate(oldProps, oldState);\n\t\t\t}\n\n\t\t\tlet isTopLevelFragment =\n\t\t\t\ttmp != null && tmp.type === Fragment && tmp.key == null;\n\t\t\tlet renderResult = isTopLevelFragment ? tmp.props.children : tmp;\n\n\t\t\tdiffChildren(\n\t\t\t\tparentDom,\n\t\t\t\tArray.isArray(renderResult) ? renderResult : [renderResult],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\toldDom,\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\tc.base = newVNode._dom;\n\n\t\t\t// We successfully rendered this VNode, unset any stored hydration/bailout state:\n\t\t\tnewVNode._hydrating = null;\n\n\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\tcommitQueue.push(c);\n\t\t\t}\n\n\t\t\tif (clearProcessingException) {\n\t\t\t\tc._pendingError = c._processingException = null;\n\t\t\t}\n\n\t\t\tc._force = false;\n\t\t} else if (\n\t\t\texcessDomChildren == null &&\n\t\t\tnewVNode._original === oldVNode._original\n\t\t) {\n\t\t\tnewVNode._children = oldVNode._children;\n\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t} else {\n\t\t\tnewVNode._dom = diffElementNodes(\n\t\t\t\toldVNode._dom,\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\tisHydrating\n\t\t\t);\n\t\t}\n\n\t\tif ((tmp = options.diffed)) tmp(newVNode);\n\t} catch (e) {\n\t\tnewVNode._original = null;\n\t\t// if hydrating or creating initial tree, bailout preserves DOM:\n\t\tif (isHydrating || excessDomChildren != null) {\n\t\t\tnewVNode._dom = oldDom;\n\t\t\tnewVNode._hydrating = !!isHydrating;\n\t\t\texcessDomChildren[excessDomChildren.indexOf(oldDom)] = null;\n\t\t\t// ^ could possibly be simplified to:\n\t\t\t// excessDomChildren.length = 0;\n\t\t}\n\t\toptions._catchError(e, newVNode, oldVNode);\n\t}\n}\n\n/**\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').VNode} root\n */\nexport function commitRoot(commitQueue, root) {\n\tif (options._commit) options._commit(root, commitQueue);\n\n\tcommitQueue.some(c => {\n\t\ttry {\n\t\t\t// @ts-ignore Reuse the commitQueue variable here so the type changes\n\t\t\tcommitQueue = c._renderCallbacks;\n\t\t\tc._renderCallbacks = [];\n\t\t\tcommitQueue.some(cb => {\n\t\t\t\t// @ts-ignore See above ts-ignore on commitQueue\n\t\t\t\tcb.call(c);\n\t\t\t});\n\t\t} catch (e) {\n\t\t\toptions._catchError(e, c._vnode);\n\t\t}\n\t});\n}\n\n/**\n * Diff two virtual nodes representing DOM element\n * @param {import('../internal').PreactElement} dom The DOM element representing\n * the virtual nodes being diffed\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {*} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @returns {import('../internal').PreactElement}\n */\nfunction diffElementNodes(\n\tdom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\tisHydrating\n) {\n\tlet oldProps = oldVNode.props;\n\tlet newProps = newVNode.props;\n\tlet nodeType = newVNode.type;\n\tlet i = 0;\n\n\t// Tracks entering and exiting SVG namespace when descending through the tree.\n\tif (nodeType === 'svg') isSvg = true;\n\n\tif (excessDomChildren != null) {\n\t\tfor (; i < excessDomChildren.length; i++) {\n\t\t\tconst child = excessDomChildren[i];\n\n\t\t\t// if newVNode matches an element in excessDomChildren or the `dom`\n\t\t\t// argument matches an element in excessDomChildren, remove it from\n\t\t\t// excessDomChildren so it isn't later removed in diffChildren\n\t\t\tif (\n\t\t\t\tchild &&\n\t\t\t\t'setAttribute' in child === !!nodeType &&\n\t\t\t\t(nodeType ? child.localName === nodeType : child.nodeType === 3)\n\t\t\t) {\n\t\t\t\tdom = child;\n\t\t\t\texcessDomChildren[i] = null;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (dom == null) {\n\t\tif (nodeType === null) {\n\t\t\t// @ts-ignore createTextNode returns Text, we expect PreactElement\n\t\t\treturn document.createTextNode(newProps);\n\t\t}\n\n\t\tif (isSvg) {\n\t\t\tdom = document.createElementNS(\n\t\t\t\t'http://www.w3.org/2000/svg',\n\t\t\t\t// @ts-ignore We know `newVNode.type` is a string\n\t\t\t\tnodeType\n\t\t\t);\n\t\t} else {\n\t\t\tdom = document.createElement(\n\t\t\t\t// @ts-ignore We know `newVNode.type` is a string\n\t\t\t\tnodeType,\n\t\t\t\tnewProps.is && newProps\n\t\t\t);\n\t\t}\n\n\t\t// we created a new parent, so none of the previously attached children can be reused:\n\t\texcessDomChildren = null;\n\t\t// we are creating a new node, so we can assume this is a new subtree (in case we are hydrating), this deopts the hydrate\n\t\tisHydrating = false;\n\t}\n\n\tif (nodeType === null) {\n\t\t// During hydration, we still have to split merged text from SSR'd HTML.\n\t\tif (oldProps !== newProps && (!isHydrating || dom.data !== newProps)) {\n\t\t\tdom.data = newProps;\n\t\t}\n\t} else {\n\t\t// If excessDomChildren was not null, repopulate it with the current element's children:\n\t\texcessDomChildren = excessDomChildren && slice.call(dom.childNodes);\n\n\t\toldProps = oldVNode.props || EMPTY_OBJ;\n\n\t\tlet oldHtml = oldProps.dangerouslySetInnerHTML;\n\t\tlet newHtml = newProps.dangerouslySetInnerHTML;\n\n\t\t// During hydration, props are not diffed at all (including dangerouslySetInnerHTML)\n\t\t// @TODO we should warn in debug mode when props don't match here.\n\t\tif (!isHydrating) {\n\t\t\t// But, if we are in a situation where we are using existing DOM (e.g. replaceNode)\n\t\t\t// we should read the existing DOM attributes to diff them\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\toldProps = {};\n\t\t\t\tfor (i = 0; i < dom.attributes.length; i++) {\n\t\t\t\t\toldProps[dom.attributes[i].name] = dom.attributes[i].value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (newHtml || oldHtml) {\n\t\t\t\t// Avoid re-applying the same '__html' if it did not changed between re-render\n\t\t\t\tif (\n\t\t\t\t\t!newHtml ||\n\t\t\t\t\t((!oldHtml || newHtml.__html != oldHtml.__html) &&\n\t\t\t\t\t\tnewHtml.__html !== dom.innerHTML)\n\t\t\t\t) {\n\t\t\t\t\tdom.innerHTML = (newHtml && newHtml.__html) || '';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tdiffProps(dom, newProps, oldProps, isSvg, isHydrating);\n\n\t\t// If the new vnode didn't have dangerouslySetInnerHTML, diff its children\n\t\tif (newHtml) {\n\t\t\tnewVNode._children = [];\n\t\t} else {\n\t\t\ti = newVNode.props.children;\n\t\t\tdiffChildren(\n\t\t\t\tdom,\n\t\t\t\tArray.isArray(i) ? i : [i],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg && nodeType !== 'foreignObject',\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\texcessDomChildren\n\t\t\t\t\t? excessDomChildren[0]\n\t\t\t\t\t: oldVNode._children && getDomSibling(oldVNode, 0),\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\t// Remove children that are not part of any vnode.\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\tfor (i = excessDomChildren.length; i--; ) {\n\t\t\t\t\tif (excessDomChildren[i] != null) removeNode(excessDomChildren[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// (as above, don't diff props during hydration)\n\t\tif (!isHydrating) {\n\t\t\tif (\n\t\t\t\t'value' in newProps &&\n\t\t\t\t(i = newProps.value) !== undefined &&\n\t\t\t\t// #2756 For the -element the initial value is 0,\n\t\t\t\t// despite the attribute not being present. When the attribute\n\t\t\t\t// is missing the progress bar is treated as indeterminate.\n\t\t\t\t// To fix that we'll always update it when it is 0 for progress elements\n\t\t\t\t(i !== dom.value ||\n\t\t\t\t\t(nodeType === 'progress' && !i) ||\n\t\t\t\t\t// This is only for IE 11 to fix \n\t\tif (\n\t\t\ttype == 'select' &&\n\t\t\tnormalizedProps.multiple &&\n\t\t\tArray.isArray(normalizedProps.value)\n\t\t) {\n\t\t\t// forEach() always returns undefined, which we abuse here to unset the value prop.\n\t\t\tnormalizedProps.value = toChildArray(props.children).forEach(child => {\n\t\t\t\tchild.props.selected =\n\t\t\t\t\tnormalizedProps.value.indexOf(child.props.value) != -1;\n\t\t\t});\n\t\t}\n\n\t\t// Adding support for defaultValue in select tag\n\t\tif (type == 'select' && normalizedProps.defaultValue != null) {\n\t\t\tnormalizedProps.value = toChildArray(props.children).forEach(child => {\n\t\t\t\tif (normalizedProps.multiple) {\n\t\t\t\t\tchild.props.selected =\n\t\t\t\t\t\tnormalizedProps.defaultValue.indexOf(child.props.value) != -1;\n\t\t\t\t} else {\n\t\t\t\t\tchild.props.selected =\n\t\t\t\t\t\tnormalizedProps.defaultValue == child.props.value;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tvnode.props = normalizedProps;\n\n\t\tif (props.class != props.className) {\n\t\t\tclassNameDescriptor.enumerable = 'className' in props;\n\t\t\tif (props.className != null) normalizedProps.class = props.className;\n\t\t\tObject.defineProperty(normalizedProps, 'className', classNameDescriptor);\n\t\t}\n\t}\n\n\tvnode.$$typeof = REACT_ELEMENT_TYPE;\n\n\tif (oldVNodeHook) oldVNodeHook(vnode);\n};\n\n// Only needed for react-relay\nlet currentComponent;\nconst oldBeforeRender = options._render;\noptions._render = function(vnode) {\n\tif (oldBeforeRender) {\n\t\toldBeforeRender(vnode);\n\t}\n\tcurrentComponent = vnode._component;\n};\n\n// This is a very very private internal function for React it\n// is used to sort-of do runtime dependency injection. So far\n// only `react-relay` makes use of it. It uses it to read the\n// context value.\nexport const __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = {\n\tReactCurrentDispatcher: {\n\t\tcurrent: {\n\t\t\treadContext(context) {\n\t\t\t\treturn currentComponent._globalContext[context._id].props.value;\n\t\t\t}\n\t\t}\n\t}\n};\n","import { assign, slice } from './util';\nimport { createVNode } from './create-element';\n\n/**\n * Clones the given VNode, optionally adding attributes/props and replacing its children.\n * @param {import('./internal').VNode} vnode The virtual DOM element to clone\n * @param {object} props Attributes/props to add when cloning\n * @param {Array} rest Any additional arguments will be used as replacement children.\n * @returns {import('./internal').VNode}\n */\nexport function cloneElement(vnode, props, children) {\n\tlet normalizedProps = assign({}, vnode.props),\n\t\tkey,\n\t\tref,\n\t\ti;\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 2) {\n\t\tnormalizedProps.children =\n\t\t\targuments.length > 3 ? slice.call(arguments, 2) : children;\n\t}\n\n\treturn createVNode(\n\t\tvnode.type,\n\t\tnormalizedProps,\n\t\tkey || vnode.key,\n\t\tref || vnode.ref,\n\t\tnull\n\t);\n}\n","import { enqueueRender } from './component';\n\nexport let i = 0;\n\nexport function createContext(defaultValue, contextId) {\n\tcontextId = '__cC' + i++;\n\n\tconst context = {\n\t\t_id: contextId,\n\t\t_defaultValue: defaultValue,\n\t\t/** @type {import('./internal').FunctionComponent} */\n\t\tConsumer(props, contextValue) {\n\t\t\t// return props.children(\n\t\t\t// \tcontext[contextId] ? context[contextId].props.value : defaultValue\n\t\t\t// );\n\t\t\treturn props.children(contextValue);\n\t\t},\n\t\t/** @type {import('./internal').FunctionComponent} */\n\t\tProvider(props) {\n\t\t\tif (!this.getChildContext) {\n\t\t\t\tlet subs = [];\n\t\t\t\tlet ctx = {};\n\t\t\t\tctx[contextId] = this;\n\n\t\t\t\tthis.getChildContext = () => ctx;\n\n\t\t\t\tthis.shouldComponentUpdate = function(_props) {\n\t\t\t\t\tif (this.props.value !== _props.value) {\n\t\t\t\t\t\t// I think the forced value propagation here was only needed when `options.debounceRendering` was being bypassed:\n\t\t\t\t\t\t// https://github.com/preactjs/preact/commit/4d339fb803bea09e9f198abf38ca1bf8ea4b7771#diff-54682ce380935a717e41b8bfc54737f6R358\n\t\t\t\t\t\t// In those cases though, even with the value corrected, we're double-rendering all nodes.\n\t\t\t\t\t\t// It might be better to just tell folks not to use force-sync mode.\n\t\t\t\t\t\t// Currently, using `useContext()` in a class component will overwrite its `this.context` value.\n\t\t\t\t\t\t// subs.some(c => {\n\t\t\t\t\t\t// \tc.context = _props.value;\n\t\t\t\t\t\t// \tenqueueRender(c);\n\t\t\t\t\t\t// });\n\n\t\t\t\t\t\t// subs.some(c => {\n\t\t\t\t\t\t// \tc.context[contextId] = _props.value;\n\t\t\t\t\t\t// \tenqueueRender(c);\n\t\t\t\t\t\t// });\n\t\t\t\t\t\tsubs.some(enqueueRender);\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tthis.sub = c => {\n\t\t\t\t\tsubs.push(c);\n\t\t\t\t\tlet old = c.componentWillUnmount;\n\t\t\t\t\tc.componentWillUnmount = () => {\n\t\t\t\t\t\tsubs.splice(subs.indexOf(c), 1);\n\t\t\t\t\t\tif (old) old.call(c);\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn props.children;\n\t\t}\n\t};\n\n\t// Devtools needs access to the context object when it\n\t// encounters a Provider. This is necessary to support\n\t// setting `displayName` on the context object instead\n\t// of on the component itself. See:\n\t// https://reactjs.org/docs/context.html#contextdisplayname\n\n\treturn (context.Provider._contextRef = context.Consumer.contextType = context);\n}\n","import { _catchError } from './diff/catch-error';\n\n/**\n * The `option` object can potentially contain callback functions\n * that are called during various stages of our renderer. This is the\n * foundation on which all our addons like `preact/debug`, `preact/compat`,\n * and `preact/hooks` are based on. See the `Options` type in `internal.d.ts`\n * for a full list of available option hooks (most editors/IDEs allow you to\n * ctrl+click or cmd+click on mac the type definition below).\n * @type {import('./internal').Options}\n */\nconst options = {\n\t_catchError\n};\n\nexport default options;\n","export const EMPTY_OBJ = {};\nexport const EMPTY_ARR = [];\nexport const IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;\n","/**\n * Find the closest error boundary to a thrown error and call it\n * @param {object} error The thrown value\n * @param {import('../internal').VNode} vnode The vnode that threw\n * the error that was caught (except for unmounting when this parameter\n * is the highest parent that was being unmounted)\n * @param {import('../internal').VNode} [oldVNode]\n * @param {import('../internal').ErrorInfo} [errorInfo]\n */\nexport function _catchError(error, vnode, oldVNode, errorInfo) {\n\t/** @type {import('../internal').Component} */\n\tlet component, ctor, handled;\n\n\tfor (; (vnode = vnode._parent); ) {\n\t\tif ((component = vnode._component) && !component._processingException) {\n\t\t\ttry {\n\t\t\t\tctor = component.constructor;\n\n\t\t\t\tif (ctor && ctor.getDerivedStateFromError != null) {\n\t\t\t\t\tcomponent.setState(ctor.getDerivedStateFromError(error));\n\t\t\t\t\thandled = component._dirty;\n\t\t\t\t}\n\n\t\t\t\tif (component.componentDidCatch != null) {\n\t\t\t\t\tcomponent.componentDidCatch(error, errorInfo || {});\n\t\t\t\t\thandled = component._dirty;\n\t\t\t\t}\n\n\t\t\t\t// This is an error boundary. Mark it as having bailed out, and whether it was mid-hydration.\n\t\t\t\tif (handled) {\n\t\t\t\t\treturn (component._pendingError = component);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\terror = e;\n\t\t\t}\n\t\t}\n\t}\n\n\tthrow error;\n}\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./api\"), exports);\n__exportStar(require(\"./auth\"), exports);\n__exportStar(require(\"./bet-line\"), exports);\n__exportStar(require(\"./cms-page\"), exports);\n__exportStar(require(\"./game-feature\"), exports);\n__exportStar(require(\"./language\"), exports);\n__exportStar(require(\"./spin\"), exports);\n__exportStar(require(\"./stats\"), exports);\n__exportStar(require(\"./user\"), exports);\n","import { Component } from 'preact';\nimport { shallowDiffers } from './util';\n\n/**\n * Component class with a predefined `shouldComponentUpdate` implementation\n */\nexport function PureComponent(p) {\n\tthis.props = p;\n}\nPureComponent.prototype = new Component();\n// Some third-party libraries check if this property is present\nPureComponent.prototype.isPureReactComponent = true;\nPureComponent.prototype.shouldComponentUpdate = function(props, state) {\n\treturn shallowDiffers(this.props, props) || shallowDiffers(this.state, state);\n};\n","import { createElement } from 'preact';\nimport { shallowDiffers } from './util';\n\n/**\n * Memoize a component, so that it only updates when the props actually have\n * changed. This was previously known as `React.pure`.\n * @param {import('./internal').FunctionComponent} c functional component\n * @param {(prev: object, next: object) => boolean} [comparer] Custom equality function\n * @returns {import('./internal').FunctionComponent}\n */\nexport function memo(c, comparer) {\n\tfunction shouldUpdate(nextProps) {\n\t\tlet ref = this.props.ref;\n\t\tlet updateRef = ref == nextProps.ref;\n\t\tif (!updateRef && ref) {\n\t\t\tref.call ? ref(null) : (ref.current = null);\n\t\t}\n\n\t\tif (!comparer) {\n\t\t\treturn shallowDiffers(this.props, nextProps);\n\t\t}\n\n\t\treturn !comparer(this.props, nextProps) || !updateRef;\n\t}\n\n\tfunction Memoed(props) {\n\t\tthis.shouldComponentUpdate = shouldUpdate;\n\t\treturn createElement(c, props);\n\t}\n\tMemoed.displayName = 'Memo(' + (c.displayName || c.name) + ')';\n\tMemoed.prototype.isReactComponent = true;\n\tMemoed._forwarded = true;\n\treturn Memoed;\n}\n","import { options } from 'preact';\nimport { assign } from './util';\n\nlet oldDiffHook = options._diff;\noptions._diff = vnode => {\n\tif (vnode.type && vnode.type._forwarded && vnode.ref) {\n\t\tvnode.props.ref = vnode.ref;\n\t\tvnode.ref = null;\n\t}\n\tif (oldDiffHook) oldDiffHook(vnode);\n};\n\nexport const REACT_FORWARD_SYMBOL =\n\t(typeof Symbol != 'undefined' &&\n\t\tSymbol.for &&\n\t\tSymbol.for('react.forward_ref')) ||\n\t0xf47;\n\n/**\n * Pass ref down to a child. This is mainly used in libraries with HOCs that\n * wrap components. Using `forwardRef` there is an easy way to get a reference\n * of the wrapped component instead of one of the wrapper itself.\n * @param {import('./index').ForwardFn} fn\n * @returns {import('./internal').FunctionComponent}\n */\nexport function forwardRef(fn) {\n\tfunction Forwarded(props) {\n\t\tlet clone = assign({}, props);\n\t\tdelete clone.ref;\n\t\treturn fn(clone, props.ref || null);\n\t}\n\n\t// mobx-react checks for this being present\n\tForwarded.$$typeof = REACT_FORWARD_SYMBOL;\n\t// mobx-react heavily relies on implementation details.\n\t// It expects an object here with a `render` property,\n\t// and prototype.render will fail. Without this\n\t// mobx-react throws.\n\tForwarded.render = Forwarded;\n\n\tForwarded.prototype.isReactComponent = Forwarded._forwarded = true;\n\tForwarded.displayName = 'ForwardRef(' + (fn.displayName || fn.name) + ')';\n\treturn Forwarded;\n}\n","import { toChildArray } from 'preact';\n\nconst mapFn = (children, fn) => {\n\tif (children == null) return null;\n\treturn toChildArray(toChildArray(children).map(fn));\n};\n\n// This API is completely unnecessary for Preact, so it's basically passthrough.\nexport const Children = {\n\tmap: mapFn,\n\tforEach: mapFn,\n\tcount(children) {\n\t\treturn children ? toChildArray(children).length : 0;\n\t},\n\tonly(children) {\n\t\tconst normalized = toChildArray(children);\n\t\tif (normalized.length !== 1) throw 'Children.only';\n\t\treturn normalized[0];\n\t},\n\ttoArray: toChildArray\n};\n","import { Component, createElement, options, Fragment } from 'preact';\nimport { assign } from './util';\n\nconst oldCatchError = options._catchError;\noptions._catchError = function(error, newVNode, oldVNode, errorInfo) {\n\tif (error.then) {\n\t\t/** @type {import('./internal').Component} */\n\t\tlet component;\n\t\tlet vnode = newVNode;\n\n\t\tfor (; (vnode = vnode._parent); ) {\n\t\t\tif ((component = vnode._component) && component._childDidSuspend) {\n\t\t\t\tif (newVNode._dom == null) {\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t}\n\t\t\t\t// Don't call oldCatchError if we found a Suspense\n\t\t\t\treturn component._childDidSuspend(error, newVNode);\n\t\t\t}\n\t\t}\n\t}\n\toldCatchError(error, newVNode, oldVNode, errorInfo);\n};\n\nconst oldUnmount = options.unmount;\noptions.unmount = function(vnode) {\n\t/** @type {import('./internal').Component} */\n\tconst component = vnode._component;\n\tif (component && component._onResolve) {\n\t\tcomponent._onResolve();\n\t}\n\n\t// if the component is still hydrating\n\t// most likely it is because the component is suspended\n\t// we set the vnode.type as `null` so that it is not a typeof function\n\t// so the unmount will remove the vnode._dom\n\tif (component && vnode._hydrating === true) {\n\t\tvnode.type = null;\n\t}\n\n\tif (oldUnmount) oldUnmount(vnode);\n};\n\nfunction detachedClone(vnode, detachedParent, parentDom) {\n\tif (vnode) {\n\t\tif (vnode._component && vnode._component.__hooks) {\n\t\t\tvnode._component.__hooks._list.forEach(effect => {\n\t\t\t\tif (typeof effect._cleanup == 'function') effect._cleanup();\n\t\t\t});\n\n\t\t\tvnode._component.__hooks = null;\n\t\t}\n\n\t\tvnode = assign({}, vnode);\n\t\tif (vnode._component != null) {\n\t\t\tif (vnode._component._parentDom === parentDom) {\n\t\t\t\tvnode._component._parentDom = detachedParent;\n\t\t\t}\n\t\t\tvnode._component = null;\n\t\t}\n\n\t\tvnode._children =\n\t\t\tvnode._children &&\n\t\t\tvnode._children.map(child =>\n\t\t\t\tdetachedClone(child, detachedParent, parentDom)\n\t\t\t);\n\t}\n\n\treturn vnode;\n}\n\nfunction removeOriginal(vnode, detachedParent, originalParent) {\n\tif (vnode) {\n\t\tvnode._original = null;\n\t\tvnode._children =\n\t\t\tvnode._children &&\n\t\t\tvnode._children.map(child =>\n\t\t\t\tremoveOriginal(child, detachedParent, originalParent)\n\t\t\t);\n\n\t\tif (vnode._component) {\n\t\t\tif (vnode._component._parentDom === detachedParent) {\n\t\t\t\tif (vnode._dom) {\n\t\t\t\t\toriginalParent.insertBefore(vnode._dom, vnode._nextDom);\n\t\t\t\t}\n\t\t\t\tvnode._component._force = true;\n\t\t\t\tvnode._component._parentDom = originalParent;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn vnode;\n}\n\n// having custom inheritance instead of a class here saves a lot of bytes\nexport function Suspense() {\n\t// we do not call super here to golf some bytes...\n\tthis._pendingSuspensionCount = 0;\n\tthis._suspenders = null;\n\tthis._detachOnNextRender = null;\n}\n\n// Things we do here to save some bytes but are not proper JS inheritance:\n// - call `new Component()` as the prototype\n// - do not set `Suspense.prototype.constructor` to `Suspense`\nSuspense.prototype = new Component();\n\n/**\n * @this {import('./internal').SuspenseComponent}\n * @param {Promise} promise The thrown promise\n * @param {import('./internal').VNode} suspendingVNode The suspending component\n */\nSuspense.prototype._childDidSuspend = function(promise, suspendingVNode) {\n\tconst suspendingComponent = suspendingVNode._component;\n\n\t/** @type {import('./internal').SuspenseComponent} */\n\tconst c = this;\n\n\tif (c._suspenders == null) {\n\t\tc._suspenders = [];\n\t}\n\tc._suspenders.push(suspendingComponent);\n\n\tconst resolve = suspended(c._vnode);\n\n\tlet resolved = false;\n\tconst onResolved = () => {\n\t\tif (resolved) return;\n\n\t\tresolved = true;\n\t\tsuspendingComponent._onResolve = null;\n\n\t\tif (resolve) {\n\t\t\tresolve(onSuspensionComplete);\n\t\t} else {\n\t\t\tonSuspensionComplete();\n\t\t}\n\t};\n\n\tsuspendingComponent._onResolve = onResolved;\n\n\tconst onSuspensionComplete = () => {\n\t\tif (!--c._pendingSuspensionCount) {\n\t\t\t// If the suspension was during hydration we don't need to restore the\n\t\t\t// suspended children into the _children array\n\t\t\tif (c.state._suspended) {\n\t\t\t\tconst suspendedVNode = c.state._suspended;\n\t\t\t\tc._vnode._children[0] = removeOriginal(\n\t\t\t\t\tsuspendedVNode,\n\t\t\t\t\tsuspendedVNode._component._parentDom,\n\t\t\t\t\tsuspendedVNode._component._originalParentDom\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tc.setState({ _suspended: (c._detachOnNextRender = null) });\n\n\t\t\tlet suspended;\n\t\t\twhile ((suspended = c._suspenders.pop())) {\n\t\t\t\tsuspended.forceUpdate();\n\t\t\t}\n\t\t}\n\t};\n\n\t/**\n\t * We do not set `suspended: true` during hydration because we want the actual markup\n\t * to remain on screen and hydrate it when the suspense actually gets resolved.\n\t * While in non-hydration cases the usual fallback -> component flow would occour.\n\t */\n\tconst wasHydrating = suspendingVNode._hydrating === true;\n\tif (!c._pendingSuspensionCount++ && !wasHydrating) {\n\t\tc.setState({ _suspended: (c._detachOnNextRender = c._vnode._children[0]) });\n\t}\n\tpromise.then(onResolved, onResolved);\n};\n\nSuspense.prototype.componentWillUnmount = function() {\n\tthis._suspenders = [];\n};\n\n/**\n * @this {import('./internal').SuspenseComponent}\n * @param {import('./internal').SuspenseComponent[\"props\"]} props\n * @param {import('./internal').SuspenseState} state\n */\nSuspense.prototype.render = function(props, state) {\n\tif (this._detachOnNextRender) {\n\t\t// When the Suspense's _vnode was created by a call to createVNode\n\t\t// (i.e. due to a setState further up in the tree)\n\t\t// it's _children prop is null, in this case we \"forget\" about the parked vnodes to detach\n\t\tif (this._vnode._children) {\n\t\t\tconst detachedParent = document.createElement('div');\n\t\t\tconst detachedComponent = this._vnode._children[0]._component;\n\t\t\tthis._vnode._children[0] = detachedClone(\n\t\t\t\tthis._detachOnNextRender,\n\t\t\t\tdetachedParent,\n\t\t\t\t(detachedComponent._originalParentDom = detachedComponent._parentDom)\n\t\t\t);\n\t\t}\n\n\t\tthis._detachOnNextRender = null;\n\t}\n\n\t// Wrap fallback tree in a VNode that prevents itself from being marked as aborting mid-hydration:\n\t/** @type {import('./internal').VNode} */\n\tconst fallback =\n\t\tstate._suspended && createElement(Fragment, null, props.fallback);\n\tif (fallback) fallback._hydrating = null;\n\n\treturn [\n\t\tcreateElement(Fragment, null, state._suspended ? null : props.children),\n\t\tfallback\n\t];\n};\n\n/**\n * Checks and calls the parent component's _suspended method, passing in the\n * suspended vnode. This is a way for a parent (e.g. SuspenseList) to get notified\n * that one of its children/descendants suspended.\n *\n * The parent MAY return a callback. The callback will get called when the\n * suspension resolves, notifying the parent of the fact.\n * Moreover, the callback gets function `unsuspend` as a parameter. The resolved\n * child descendant will not actually get unsuspended until `unsuspend` gets called.\n * This is a way for the parent to delay unsuspending.\n *\n * If the parent does not return a callback then the resolved vnode\n * gets unsuspended immediately when it resolves.\n *\n * @param {import('./internal').VNode} vnode\n * @returns {((unsuspend: () => void) => void)?}\n */\nexport function suspended(vnode) {\n\t/** @type {import('./internal').Component} */\n\tlet component = vnode._parent._component;\n\treturn component && component._suspended && component._suspended(vnode);\n}\n\nexport function lazy(loader) {\n\tlet prom;\n\tlet component;\n\tlet error;\n\n\tfunction Lazy(props) {\n\t\tif (!prom) {\n\t\t\tprom = loader();\n\t\t\tprom.then(\n\t\t\t\texports => {\n\t\t\t\t\tcomponent = exports.default || exports;\n\t\t\t\t},\n\t\t\t\te => {\n\t\t\t\t\terror = e;\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\tif (error) {\n\t\t\tthrow error;\n\t\t}\n\n\t\tif (!component) {\n\t\t\tthrow prom;\n\t\t}\n\n\t\treturn createElement(component, props);\n\t}\n\n\tLazy.displayName = 'Lazy';\n\tLazy._forwarded = true;\n\treturn Lazy;\n}\n","import { Component, toChildArray } from 'preact';\nimport { suspended } from './suspense.js';\n\n// Indexes to linked list nodes (nodes are stored as arrays to save bytes).\nconst SUSPENDED_COUNT = 0;\nconst RESOLVED_COUNT = 1;\nconst NEXT_NODE = 2;\n\n// Having custom inheritance instead of a class here saves a lot of bytes.\nexport function SuspenseList() {\n\tthis._next = null;\n\tthis._map = null;\n}\n\n// Mark one of child's earlier suspensions as resolved.\n// Some pending callbacks may become callable due to this\n// (e.g. the last suspended descendant gets resolved when\n// revealOrder === 'together'). Process those callbacks as well.\nconst resolve = (list, child, node) => {\n\tif (++node[RESOLVED_COUNT] === node[SUSPENDED_COUNT]) {\n\t\t// The number a child (or any of its descendants) has been suspended\n\t\t// matches the number of times it's been resolved. Therefore we\n\t\t// mark the child as completely resolved by deleting it from ._map.\n\t\t// This is used to figure out when *all* children have been completely\n\t\t// resolved when revealOrder is 'together'.\n\t\tlist._map.delete(child);\n\t}\n\n\t// If revealOrder is falsy then we can do an early exit, as the\n\t// callbacks won't get queued in the node anyway.\n\t// If revealOrder is 'together' then also do an early exit\n\t// if all suspended descendants have not yet been resolved.\n\tif (\n\t\t!list.props.revealOrder ||\n\t\t(list.props.revealOrder[0] === 't' && list._map.size)\n\t) {\n\t\treturn;\n\t}\n\n\t// Walk the currently suspended children in order, calling their\n\t// stored callbacks on the way. Stop if we encounter a child that\n\t// has not been completely resolved yet.\n\tnode = list._next;\n\twhile (node) {\n\t\twhile (node.length > 3) {\n\t\t\tnode.pop()();\n\t\t}\n\t\tif (node[RESOLVED_COUNT] < node[SUSPENDED_COUNT]) {\n\t\t\tbreak;\n\t\t}\n\t\tlist._next = node = node[NEXT_NODE];\n\t}\n};\n\n// Things we do here to save some bytes but are not proper JS inheritance:\n// - call `new Component()` as the prototype\n// - do not set `Suspense.prototype.constructor` to `Suspense`\nSuspenseList.prototype = new Component();\n\nSuspenseList.prototype._suspended = function(child) {\n\tconst list = this;\n\tconst delegated = suspended(list._vnode);\n\n\tlet node = list._map.get(child);\n\tnode[SUSPENDED_COUNT]++;\n\n\treturn unsuspend => {\n\t\tconst wrappedUnsuspend = () => {\n\t\t\tif (!list.props.revealOrder) {\n\t\t\t\t// Special case the undefined (falsy) revealOrder, as there\n\t\t\t\t// is no need to coordinate a specific order or unsuspends.\n\t\t\t\tunsuspend();\n\t\t\t} else {\n\t\t\t\tnode.push(unsuspend);\n\t\t\t\tresolve(list, child, node);\n\t\t\t}\n\t\t};\n\t\tif (delegated) {\n\t\t\tdelegated(wrappedUnsuspend);\n\t\t} else {\n\t\t\twrappedUnsuspend();\n\t\t}\n\t};\n};\n\nSuspenseList.prototype.render = function(props) {\n\tthis._next = null;\n\tthis._map = new Map();\n\n\tconst children = toChildArray(props.children);\n\tif (props.revealOrder && props.revealOrder[0] === 'b') {\n\t\t// If order === 'backwards' (or, well, anything starting with a 'b')\n\t\t// then flip the child list around so that the last child will be\n\t\t// the first in the linked list.\n\t\tchildren.reverse();\n\t}\n\t// Build the linked list. Iterate through the children in reverse order\n\t// so that `_next` points to the first linked list node to be resolved.\n\tfor (let i = children.length; i--; ) {\n\t\t// Create a new linked list node as an array of form:\n\t\t// \t[suspended_count, resolved_count, next_node]\n\t\t// where suspended_count and resolved_count are numeric counters for\n\t\t// keeping track how many times a node has been suspended and resolved.\n\t\t//\n\t\t// Note that suspended_count starts from 1 instead of 0, so we can block\n\t\t// processing callbacks until componentDidMount has been called. In a sense\n\t\t// node is suspended at least until componentDidMount gets called!\n\t\t//\n\t\t// Pending callbacks are added to the end of the node:\n\t\t// \t[suspended_count, resolved_count, next_node, callback_0, callback_1, ...]\n\t\tthis._map.set(children[i], (this._next = [1, 0, this._next]));\n\t}\n\treturn props.children;\n};\n\nSuspenseList.prototype.componentDidUpdate = SuspenseList.prototype.componentDidMount = function() {\n\t// Iterate through all children after mounting for two reasons:\n\t// 1. As each node[SUSPENDED_COUNT] starts from 1, this iteration increases\n\t// each node[RELEASED_COUNT] by 1, therefore balancing the counters.\n\t// The nodes can now be completely consumed from the linked list.\n\t// 2. Handle nodes that might have gotten resolved between render and\n\t// componentDidMount.\n\tthis._map.forEach((node, child) => {\n\t\tresolve(this, child, node);\n\t});\n};\n","import { createElement, render } from 'preact';\n\n/**\n * @param {import('../../src/index').RenderableProps<{ context: any }>} props\n */\nfunction ContextProvider(props) {\n\tthis.getChildContext = () => props.context;\n\treturn props.children;\n}\n\n/**\n * Portal component\n * @this {import('./internal').Component}\n * @param {object | null | undefined} props\n *\n * TODO: use createRoot() instead of fake root\n */\nfunction Portal(props) {\n\tconst _this = this;\n\tlet container = props._container;\n\n\t_this.componentWillUnmount = function() {\n\t\trender(null, _this._temp);\n\t\t_this._temp = null;\n\t\t_this._container = null;\n\t};\n\n\t// When we change container we should clear our old container and\n\t// indicate a new mount.\n\tif (_this._container && _this._container !== container) {\n\t\t_this.componentWillUnmount();\n\t}\n\n\t// When props.vnode is undefined/false/null we are dealing with some kind of\n\t// conditional vnode. This should not trigger a render.\n\tif (props._vnode) {\n\t\tif (!_this._temp) {\n\t\t\t_this._container = container;\n\n\t\t\t// Create a fake DOM parent node that manages a subset of `container`'s children:\n\t\t\t_this._temp = {\n\t\t\t\tnodeType: 1,\n\t\t\t\tparentNode: container,\n\t\t\t\tchildNodes: [],\n\t\t\t\tappendChild(child) {\n\t\t\t\t\tthis.childNodes.push(child);\n\t\t\t\t\t_this._container.appendChild(child);\n\t\t\t\t},\n\t\t\t\tinsertBefore(child, before) {\n\t\t\t\t\tthis.childNodes.push(child);\n\t\t\t\t\t_this._container.appendChild(child);\n\t\t\t\t},\n\t\t\t\tremoveChild(child) {\n\t\t\t\t\tthis.childNodes.splice(this.childNodes.indexOf(child) >>> 1, 1);\n\t\t\t\t\t_this._container.removeChild(child);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\t// Render our wrapping element into temp.\n\t\trender(\n\t\t\tcreateElement(ContextProvider, { context: _this.context }, props._vnode),\n\t\t\t_this._temp\n\t\t);\n\t}\n\t// When we come from a conditional render, on a mounted\n\t// portal we should clear the DOM.\n\telse if (_this._temp) {\n\t\t_this.componentWillUnmount();\n\t}\n}\n\n/**\n * Create a `Portal` to continue rendering the vnode tree at a different DOM node\n * @param {import('./internal').VNode} vnode The vnode to render\n * @param {import('./internal').PreactElement} container The DOM node to continue rendering in to.\n */\nexport function createPortal(vnode, container) {\n\tconst el = createElement(Portal, { _vnode: vnode, _container: container });\n\tel.containerInfo = container;\n\treturn el;\n}\n","/* global __webpack_public_path__ */\n\nimport * as Preact from 'preact';\nconst { h, render, hydrate } = Preact;\n\nconst interopDefault = m => (m && m.default ? m.default : m);\n\nconst normalizeURL = url => (url[url.length - 1] === '/' ? url : url + '/');\n\nif (process.env.NODE_ENV === 'development') {\n\t// enable preact devtools\n\trequire('preact/debug');\n\n\t// only add a debug sw if webpack service worker is not requested.\n\tif (process.env.ADD_SW === undefined && 'serviceWorker' in navigator) {\n\t\tnavigator.serviceWorker.register(\n\t\t\tnormalizeURL(__webpack_public_path__) + 'sw-debug.js'\n\t\t);\n\t} else if (process.env.ADD_SW && 'serviceWorker' in navigator) {\n\t\tnavigator.serviceWorker.register(\n\t\t\tnormalizeURL(__webpack_public_path__) +\n\t\t\t\t(process.env.ES_BUILD ? 'sw-esm.js' : 'sw.js')\n\t\t);\n\t}\n} else if (process.env.ADD_SW && 'serviceWorker' in navigator) {\n\tnavigator.serviceWorker.register(\n\t\tnormalizeURL(__webpack_public_path__) +\n\t\t\t(process.env.ES_BUILD ? 'sw-esm.js' : 'sw.js')\n\t);\n}\n\nlet app = interopDefault(require('preact-cli-entrypoint'));\n\nif (typeof app === 'function') {\n\tlet root =\n\t\tdocument.getElementById('preact_root') || document.body.firstElementChild;\n\n\tlet init = () => {\n\t\tlet app = interopDefault(require('preact-cli-entrypoint'));\n\t\tlet preRenderData = {};\n\t\tconst inlineDataElement = document.querySelector(\n\t\t\t'[type=\"__PREACT_CLI_DATA__\"]'\n\t\t);\n\t\tif (inlineDataElement) {\n\t\t\tpreRenderData =\n\t\t\t\tJSON.parse(decodeURI(inlineDataElement.innerHTML)).preRenderData ||\n\t\t\t\tpreRenderData;\n\t\t}\n\t\t/* An object named CLI_DATA is passed as a prop,\n\t\t * this keeps us future proof if in case we decide,\n\t\t * to send other data like at some point in time.\n\t\t */\n\t\tconst CLI_DATA = { preRenderData };\n\t\tconst currentURL = preRenderData.url ? normalizeURL(preRenderData.url) : '';\n\t\tconst canHydrate =\n\t\t\tprocess.env.PRERENDER &&\n\t\t\tprocess.env.NODE_ENV === 'production' &&\n\t\t\thydrate &&\n\t\t\tcurrentURL === normalizeURL(location.pathname);\n\t\tconst doRender = canHydrate ? hydrate : render;\n\t\tdoRender(h(app, { CLI_DATA }), document.body, root);\n\t};\n\n\tif (module.hot) module.hot.accept('preact-cli-entrypoint', init);\n\n\tinit();\n}\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./bet\"), exports);\n__exportStar(require(\"./math\"), exports);\n__exportStar(require(\"./stats\"), exports);\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./constants\"), exports);\n__exportStar(require(\"./http-codes\"), exports);\n__exportStar(require(\"./interfaces\"), exports);\n__exportStar(require(\"./number\"), exports);\n__exportStar(require(\"./object\"), exports);\n__exportStar(require(\"./slug\"), exports);\n__exportStar(require(\"./stats\"), exports);\n__exportStar(require(\"./stats-formats\"), exports);\n__exportStar(require(\"./volatility\"), exports);\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\nexports.handleBlur = handleBlur;\nexports.handleFocus = handleFocus;\nexports.markForFocusLater = markForFocusLater;\nexports.returnFocus = returnFocus;\nexports.popWithoutFocus = popWithoutFocus;\nexports.setupScopedFocus = setupScopedFocus;\nexports.teardownScopedFocus = teardownScopedFocus;\n\nvar _tabbable = require(\"../helpers/tabbable\");\n\nvar _tabbable2 = _interopRequireDefault(_tabbable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar focusLaterElements = [];\nvar modalElement = null;\nvar needToFocus = false;\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction resetState() {\n focusLaterElements = [];\n}\n\n/* istanbul ignore next */\nfunction log() {\n if (process.env.NODE_ENV !== \"production\") {\n console.log(\"focusManager ----------\");\n focusLaterElements.forEach(function (f) {\n var check = f || {};\n console.log(check.nodeName, check.className, check.id);\n });\n console.log(\"end focusManager ----------\");\n }\n}\n/* eslint-enable no-console */\n\nfunction handleBlur() {\n needToFocus = true;\n}\n\nfunction handleFocus() {\n if (needToFocus) {\n needToFocus = false;\n if (!modalElement) {\n return;\n }\n // need to see how jQuery shims document.on('focusin') so we don't need the\n // setTimeout, firefox doesn't support focusin, if it did, we could focus\n // the element outside of a setTimeout. Side-effect of this implementation\n // is that the document.body gets focus, and then we focus our element right\n // after, seems fine.\n setTimeout(function () {\n if (modalElement.contains(document.activeElement)) {\n return;\n }\n var el = (0, _tabbable2.default)(modalElement)[0] || modalElement;\n el.focus();\n }, 0);\n }\n}\n\nfunction markForFocusLater() {\n focusLaterElements.push(document.activeElement);\n}\n\n/* eslint-disable no-console */\nfunction returnFocus() {\n var preventScroll = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n var toFocus = null;\n try {\n if (focusLaterElements.length !== 0) {\n toFocus = focusLaterElements.pop();\n toFocus.focus({ preventScroll: preventScroll });\n }\n return;\n } catch (e) {\n console.warn([\"You tried to return focus to\", toFocus, \"but it is not in the DOM anymore\"].join(\" \"));\n }\n}\n/* eslint-enable no-console */\n\nfunction popWithoutFocus() {\n focusLaterElements.length > 0 && focusLaterElements.pop();\n}\n\nfunction setupScopedFocus(element) {\n modalElement = element;\n\n if (window.addEventListener) {\n window.addEventListener(\"blur\", handleBlur, false);\n document.addEventListener(\"focus\", handleFocus, true);\n } else {\n window.attachEvent(\"onBlur\", handleBlur);\n document.attachEvent(\"onFocus\", handleFocus);\n }\n}\n\nfunction teardownScopedFocus() {\n modalElement = null;\n\n if (window.addEventListener) {\n window.removeEventListener(\"blur\", handleBlur);\n document.removeEventListener(\"focus\", handleFocus);\n } else {\n window.detachEvent(\"onBlur\", handleBlur);\n document.detachEvent(\"onFocus\", handleFocus);\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\nvar htmlClassList = {};\nvar docBodyClassList = {};\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction removeClass(at, cls) {\n at.classList.remove(cls);\n}\n\n/* istanbul ignore next */\nfunction resetState() {\n var htmlElement = document.getElementsByTagName(\"html\")[0];\n for (var cls in htmlClassList) {\n removeClass(htmlElement, htmlClassList[cls]);\n }\n\n var body = document.body;\n for (var _cls in docBodyClassList) {\n removeClass(body, docBodyClassList[_cls]);\n }\n\n htmlClassList = {};\n docBodyClassList = {};\n}\n\n/* istanbul ignore next */\nfunction log() {\n if (process.env.NODE_ENV !== \"production\") {\n var classes = document.getElementsByTagName(\"html\")[0].className;\n var buffer = \"Show tracked classes:\\n\\n\";\n\n buffer += \" (\" + classes + \"):\\n \";\n for (var x in htmlClassList) {\n buffer += \" \" + x + \" \" + htmlClassList[x] + \"\\n \";\n }\n\n classes = document.body.className;\n\n buffer += \"\\n\\ndoc.body (\" + classes + \"):\\n \";\n for (var _x in docBodyClassList) {\n buffer += \" \" + _x + \" \" + docBodyClassList[_x] + \"\\n \";\n }\n\n buffer += \"\\n\";\n\n console.log(buffer);\n }\n}\n/* eslint-enable no-console */\n\n/**\n * Track the number of reference of a class.\n * @param {object} poll The poll to receive the reference.\n * @param {string} className The class name.\n * @return {string}\n */\nvar incrementReference = function incrementReference(poll, className) {\n if (!poll[className]) {\n poll[className] = 0;\n }\n poll[className] += 1;\n return className;\n};\n\n/**\n * Drop the reference of a class.\n * @param {object} poll The poll to receive the reference.\n * @param {string} className The class name.\n * @return {string}\n */\nvar decrementReference = function decrementReference(poll, className) {\n if (poll[className]) {\n poll[className] -= 1;\n }\n return className;\n};\n\n/**\n * Track a class and add to the given class list.\n * @param {Object} classListRef A class list of an element.\n * @param {Object} poll The poll to be used.\n * @param {Array} classes The list of classes to be tracked.\n */\nvar trackClass = function trackClass(classListRef, poll, classes) {\n classes.forEach(function (className) {\n incrementReference(poll, className);\n classListRef.add(className);\n });\n};\n\n/**\n * Untrack a class and remove from the given class list if the reference\n * reaches 0.\n * @param {Object} classListRef A class list of an element.\n * @param {Object} poll The poll to be used.\n * @param {Array} classes The list of classes to be untracked.\n */\nvar untrackClass = function untrackClass(classListRef, poll, classes) {\n classes.forEach(function (className) {\n decrementReference(poll, className);\n poll[className] === 0 && classListRef.remove(className);\n });\n};\n\n/**\n * Public inferface to add classes to the document.body.\n * @param {string} bodyClass The class string to be added.\n * It may contain more then one class\n * with ' ' as separator.\n */\nvar add = exports.add = function add(element, classString) {\n return trackClass(element.classList, element.nodeName.toLowerCase() == \"html\" ? htmlClassList : docBodyClassList, classString.split(\" \"));\n};\n\n/**\n * Public inferface to remove classes from the document.body.\n * @param {string} bodyClass The class string to be added.\n * It may contain more then one class\n * with ' ' as separator.\n */\nvar remove = exports.remove = function remove(element, classString) {\n return untrackClass(element.classList, element.nodeName.toLowerCase() == \"html\" ? htmlClassList : docBodyClassList, classString.split(\" \"));\n};","import { h, Component } from 'preact';\n\nconst PENDING = {};\n\n// Given a VNode, finds its previous element sibling\nfunction getPreviousSibling(vnode, inner) {\n\t// in an element parent with no preceeding siblings means we're the first child\n\tif (typeof vnode.type === 'string') return null;\n\tconst parent = vnode.__;\n\tif (!parent) return;\n\tlet children = parent.__k;\n\tif (children) {\n\t\tif (!Array.isArray(children)) children = [children];\n\t\t// only search previous children\n\t\tlet end = children.indexOf(vnode);\n\t\tif (end === -1) end = children.length;\n\t\tfor (let i=end; i--; ) {\n\t\t\tconst child = children[i];\n\t\t\tconst dom = child && child.__e || getPreviousSibling(child, true);\n\t\t\tif (dom) return dom;\n\t\t}\n\t}\n\tif (!inner) return getPreviousSibling(parent);\n}\n\nexport default function async(load) {\n\tlet component;\n\n\tfunction AsyncComponent() {\n\t\tComponent.call(this);\n\n\t\tif (!component) {\n\t\t\tthis.componentWillMount = () => {\n\t\t\t\tload((mod) => {\n\t\t\t\t\tcomponent = (mod && mod.default) || mod;\n\t\t\t\t\tthis.setState({});\n\t\t\t\t});\n\t\t\t};\n\n\t\t\tthis.shouldComponentUpdate = () => component != null;\n\t\t}\n\n\t\tthis.render = (props) => {\n\t\t\tif (component) {\n\t\t\t\treturn h(component, props);\n\t\t\t}\n\n\t\t\tconst prev = getPreviousSibling(this.__v);\n\t\t\tconst me = prev && prev.nextSibling || (this.__P || this._parentDom).firstChild;\n\n\t\t\treturn (\n\t\t\t\tme &&\n\t\t\t\th(me.localName, {\n\t\t\t\t\tdangerouslySetInnerHTML: PENDING,\n\t\t\t\t})\n\t\t\t);\n\t\t};\n\t}\n\n\tAsyncComponent.preload = load;\n\t(AsyncComponent.prototype = new Component()).constructor = AsyncComponent;\n\n\treturn AsyncComponent;\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"breadcrumbs\":\"breadcrumbs__HSSwX\"};","import { Fragment, FunctionalComponent, h } from 'preact';\n\nimport { IRoutingConfig } from '../../interfaces/routing';\n\nimport styles from './style.scss';\n\ninterface IProps {\n currentUrl: string;\n routingConfig: IRoutingConfig;\n}\n\nconst Breadcrumbs: FunctionalComponent = ({ currentUrl, routingConfig }) => {\n const breadcrumbs: { path: string; breadcrumb: string }[] = [];\n let path: string | null = currentUrl;\n\n while (path) {\n if (!routingConfig[path]) {\n break;\n }\n\n breadcrumbs.unshift({\n path,\n breadcrumb: routingConfig[path].breadcrumb,\n });\n\n path = routingConfig[path].parent ?? null;\n }\n\n return breadcrumbs.length > 1\n ?

{ breadcrumbs.map((item, index) => (\n index === breadcrumbs.length - 1\n ? { item.breadcrumb }\n : \n { item.breadcrumb } >\n \n\n )) }

\n : null;\n};\n\nexport default Breadcrumbs;\n","import { FunctionalComponent } from 'preact';\nimport { route } from 'preact-router';\nimport { useEffect } from 'preact/hooks';\n\ninterface IProps {\n to: string;\n}\n\nconst Breadcrumbs: FunctionalComponent = ({ to }) => {\n useEffect(() => {\n route(to, true);\n }, []);\n\n return null;\n};\n\nexport default Breadcrumbs;\n","\n\t\timport Async from \"../../../node_modules/@preact/async-loader/async.js\";\n\n\t\tfunction load(cb) {\n\t\t\trequire.ensure([], function (require) {\n\t\t\t\tvar result = require(\"!!../../../node_modules/babel-loader/lib/index.js??ref--4!./index.tsx\");\n\t\t\t\ttypeof cb === 'function' && cb(result);\n\t\t\t}, \"route-casinos\");\n\t\t}\n\n\t\texport default Async(load);\n\t","\n\t\timport Async from \"../../../node_modules/@preact/async-loader/async.js\";\n\n\t\tfunction load(cb) {\n\t\t\trequire.ensure([], function (require) {\n\t\t\t\tvar result = require(\"!!../../../node_modules/babel-loader/lib/index.js??ref--4!./index.tsx\");\n\t\t\t\ttypeof cb === 'function' && cb(result);\n\t\t\t}, \"route-documentation\");\n\t\t}\n\n\t\texport default Async(load);\n\t","\n\t\timport Async from \"../../../node_modules/@preact/async-loader/async.js\";\n\n\t\tfunction load(cb) {\n\t\t\trequire.ensure([], function (require) {\n\t\t\t\tvar result = require(\"!!../../../node_modules/babel-loader/lib/index.js??ref--4!./index.tsx\");\n\t\t\t\ttypeof cb === 'function' && cb(result);\n\t\t\t}, \"route-examples\");\n\t\t}\n\n\t\texport default Async(load);\n\t","\n\t\timport Async from \"../../../node_modules/@preact/async-loader/async.js\";\n\n\t\tfunction load(cb) {\n\t\t\trequire.ensure([], function (require) {\n\t\t\t\tvar result = require(\"!!../../../node_modules/babel-loader/lib/index.js??ref--4!./index.tsx\");\n\t\t\t\ttypeof cb === 'function' && cb(result);\n\t\t\t}, \"route-games\");\n\t\t}\n\n\t\texport default Async(load);\n\t","\n\t\timport Async from \"../../../node_modules/@preact/async-loader/async.js\";\n\n\t\tfunction load(cb) {\n\t\t\trequire.ensure([], function (require) {\n\t\t\t\tvar result = require(\"!!../../../node_modules/babel-loader/lib/index.js??ref--4!./index.tsx\");\n\t\t\t\ttypeof cb === 'function' && cb(result);\n\t\t\t}, \"route-home\");\n\t\t}\n\n\t\texport default Async(load);\n\t","\n\t\timport Async from \"../../../node_modules/@preact/async-loader/async.js\";\n\n\t\tfunction load(cb) {\n\t\t\trequire.ensure([], function (require) {\n\t\t\t\tvar result = require(\"!!../../../node_modules/babel-loader/lib/index.js??ref--4!./index.tsx\");\n\t\t\t\ttypeof cb === 'function' && cb(result);\n\t\t\t}, \"route-login\");\n\t\t}\n\n\t\texport default Async(load);\n\t","\n\t\timport Async from \"../../../node_modules/@preact/async-loader/async.js\";\n\n\t\tfunction load(cb) {\n\t\t\trequire.ensure([], function (require) {\n\t\t\t\tvar result = require(\"!!../../../node_modules/babel-loader/lib/index.js??ref--4!./index.tsx\");\n\t\t\t\ttypeof cb === 'function' && cb(result);\n\t\t\t}, \"route-providers\");\n\t\t}\n\n\t\texport default Async(load);\n\t","\n\t\timport Async from \"../../../node_modules/@preact/async-loader/async.js\";\n\n\t\tfunction load(cb) {\n\t\t\trequire.ensure([], function (require) {\n\t\t\t\tvar result = require(\"!!../../../node_modules/babel-loader/lib/index.js??ref--4!./index.tsx\");\n\t\t\t\ttypeof cb === 'function' && cb(result);\n\t\t\t}, \"route-real-game-stats\");\n\t\t}\n\n\t\texport default Async(load);\n\t","import { FunctionalComponent, h } from 'preact';\nimport { route, Route, Router, RouterOnChangeArgs } from 'preact-router';\nimport { useState } from 'preact/hooks';\n\nimport Breadcrumbs from './components/breadcrumbs';\nimport Redirect from './components/redirect';\nimport { config } from './config';\n\nimport { IRoutingConfig } from './interfaces/routing';\nimport Casinos from './routes/casinos';\nimport Documentation from './routes/documentation';\nimport Examples from './routes/examples';\nimport Games from './routes/games';\nimport Home from './routes/home';\nimport Login from './routes/login';\nimport Providers from './routes/providers';\nimport RealGameStats from './routes/real-game-stats';\nimport { isAuthenticated } from './utils/auth';\n\nconst App: FunctionalComponent = () => {\n const [currentUrl, setCurrentUrl] = useState(window.location.pathname);\n const routingConfig: IRoutingConfig = {\n '/login': {\n component: Login,\n breadcrumb: 'Login',\n },\n '/': {\n component: Home,\n breadcrumb: 'Slot Tracker Widgets',\n },\n '/documentation': {\n parent: '/',\n component: Documentation,\n breadcrumb: 'Documentation',\n },\n '/real-game-stats': {\n parent: '/',\n component: RealGameStats,\n breadcrumb: 'Real Game Stats',\n },\n '/examples': {\n parent: '/',\n component: Examples,\n breadcrumb: 'Examples',\n },\n '/games': {\n parent: '/',\n component: Games,\n breadcrumb: 'Games',\n },\n '/providers': {\n parent: '/',\n component: Providers,\n breadcrumb: 'Providers',\n },\n '/casinos': {\n parent: '/',\n component: Casinos,\n breadcrumb: 'Casinos',\n },\n };\n const onRouteChange = (e: RouterOnChangeArgs): void => {\n setCurrentUrl(e.url);\n\n const isUserAuthenticated = isAuthenticated();\n const loginRoute = '/login';\n\n if (!isUserAuthenticated && e.url !== loginRoute) {\n route('/login');\n } else if (isUserAuthenticated && e.url === '/login') {\n route('/');\n }\n };\n\n return (\n
\n
\n \n \"\"\n \n
\n\n
\n \n
\n\n
\n {\n onRouteChange(e);\n }}>\n { Object.entries(routingConfig).map(([path, options]) =>\n )}\n \n \n
\n
\n );\n};\n\nexport default App;\n","import ReactModal from 'react-modal';\n\nimport './style/index.scss';\nimport App from './app';\n\nReactModal.setAppElement('body');\n\nexport default App;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getObjectPropertyByString = exports.deepCopy = void 0;\nconst deepCopy = (obj) => JSON.parse(JSON.stringify(obj));\nexports.deepCopy = deepCopy;\nconst getObjectPropertyByString = (jsonObject, path) => {\n const pathParts = path.split('.');\n let clonedJsonObject = (0, exports.deepCopy)(jsonObject);\n for (const pathPart of pathParts) {\n if (pathPart in clonedJsonObject) {\n clonedJsonObject = clonedJsonObject[pathPart];\n }\n else {\n return null;\n }\n }\n return clonedJsonObject;\n};\nexports.getObjectPropertyByString = getObjectPropertyByString;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.canUseDOM = exports.SafeNodeList = exports.SafeHTMLCollection = undefined;\n\nvar _exenv = require(\"exenv\");\n\nvar _exenv2 = _interopRequireDefault(_exenv);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar EE = _exenv2.default;\n\nvar SafeHTMLElement = EE.canUseDOM ? window.HTMLElement : {};\n\nvar SafeHTMLCollection = exports.SafeHTMLCollection = EE.canUseDOM ? window.HTMLCollection : {};\n\nvar SafeNodeList = exports.SafeNodeList = EE.canUseDOM ? window.NodeList : {};\n\nvar canUseDOM = exports.canUseDOM = EE.canUseDOM;\n\nexports.default = SafeHTMLElement;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n"],"sourceRoot":""}