{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./routes/vldigeometria.js?971d","webpack:///./routes/statistica.js?3c70","webpack:///./routes/mingwinstall.js?cec4","webpack:///./index.js","webpack:///./components/copyright.js","webpack:///../node_modules/@preact/async-loader/async-legacy.js","webpack:///./routes/home.js?7109","webpack:///../src/util.js","webpack:///../src/index.js","webpack:///./components/copyright.css","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/constants.js","webpack:///../src/options.js","webpack:///../src/diff/catch-error.js","webpack:///../node_modules/preact-cli/lib/lib/entry.js","webpack:///../node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///../node_modules/resolve-pathname/esm/resolve-pathname.js","webpack:///../node_modules/history/esm/history.js","webpack:///../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","webpack:///./routes/fisica.js?9847"],"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","0","e","promises","Promise","resolve","reject","href","fullhref","p","existingLinkTags","document","getElementsByTagName","dataHref","tag","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","jsonpScriptSrc","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","head","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","cb","App","render","id","history","createHashHistory","path","Component","Copyright","class","style","copyright","req","Async","b","old","this","componentWillMount","base","nextBase","__b","setState","child","default","shouldComponentUpdate","_","nxt","nodeType","h","nodeName","dangerouslySetInnerHTML","__html","innerHTML","constructor","let","EMPTY","getCurrentUrl","url","customHistory","location","getCurrentLocation","pathname","search","route","replace","ROUTERS","canRoute","setUrl","routeTo","didRoute","subscribers","routeFromLink","node","match","handleLinkClick","ctrlKey","metaKey","altKey","shiftKey","button","currentTarget","prevent","stopImmediatePropagation","stopPropagation","preventDefault","delegateLinkHandler","String","toUpperCase","hasAttribute","eventListenersInitialized","Router","props","super","state","addEventListener","static","onChange","const","children","getMatchingChildren","updating","forceUpdate","componentDidMount","unlisten","listen","componentWillUnmount","splice","indexOf","componentWillUpdate","componentDidUpdate","invoke","filter","prepareVNodeForRanking","sort","pathRankSort","map","vnode","matches","exec","newProps","assign","ref","Boolean","active","current","previous","previousUrl","router","Route","component","Link","onClick","obj","removeNode","normalizedProps","arguments","defaultProps","createVNode","_children","_parent","_depth","_dom","_nextDom","_component","options","createRef","Fragment","context","getDomSibling","childIndex","sibling","updateParentDomPointers","enqueueRender","_dirty","q","prevDebounce","debounceRendering","defer","process","commitQueue","newDom","oldDom","parentDom","a","_vnode","pop","_parentDom","diff","_context","ownerSVGElement","commitRoot","diffChildren","newParentVNode","oldParentVNode","isSvg","excessDomChildren","isHydrating","j","oldVNode","sibDom","firstChildDom","refs","oldChildren","EMPTY_ARR","oldChildrenLength","EMPTY_OBJ","toChildArray","childVNode","nextDom","outer","nextSibling","insertBefore","unmount","applyRef","callback","flattened","Array","isArray","setStyle","setProperty","IS_NON_DIMENSIONAL","test","dom","oldValue","useCapture","nameLower","cssText","toLowerCase","eventProxy","_listeners","removeEventListener","removeAttributeNS","setAttributeNS","removeAttribute","newVNode","tmp","isNew","oldProps","oldState","snapshot","clearProcessingException","provider","cctx","newType","_diff","contextType","_id","_defaultValue","_processingException","_pendingError","doRender","sub","_renderCallbacks","_nextState","getDerivedStateFromProps","componentWillReceiveProps","_force","_render","getChildContext","getSnapshotBeforeUpdate","diffElementNodes","diffed","_catchError","root","_commit","some","oldHtml","newHtml","localName","createTextNode","createElementNS","is","childNodes","attributes","hydrate","diffProps","checked","parentVNode","skipRemove","replaceNode","_root","IS_HYDRATE","cloneElement","createContext","defaultValue","ctx","Consumer","Provider","subs","_this","_props","isValidElement","hasCaught","getDerivedStateFromError","componentDidCatch","update","Preact","interopDefault","navigator","serviceWorker","register","__webpack_public_path__","require","getElementById","body","firstElementChild","app","preRenderData","inlineDataElement","querySelector","JSON","parse","tagName","CLI_DATA","init","_extends","source","apply","isAbsolute","charAt","spliceOne","list","index","k","addLeadingSlash","stripLeadingSlash","substr","stripBasename","prefix","hasBasename","stripTrailingSlash","createPath","hash","createLocation","currentLocation","hashIndex","searchIndex","parsePath","decodeURI","URIError","resolvePathname","createTransitionManager","prompt","listeners","setPrompt","nextPrompt","confirmTransitionTo","action","getUserConfirmation","result","appendListener","fn","listener","isActive","item","notifyListeners","_len","args","_key","forEach","getConfirmation","confirm","stripHash","getHashPath","substring","replaceHashPath","getDOMLocation","decodePath","basename","nextState","globalHistory","transitionManager","handleHashChange","encodedPath","encodePath","forceNextPop","ignorePath","ok","fromLocation","toIndex","allPaths","lastIndexOf","fromIndex","delta","go","revertPop","handlePop","checkDOMListeners","listenerCount","canUseDOM","invariant","_props$getUserConfirm","userAgent","_props$hashType","hashType","_HashPathCoders$hashT","HashPathCoders","initialLocation","isBlocked","createHref","baseTag","pushHashPath","prevIndex","nextPaths","goBack","goForward","block","unblock","to","from","hasTrailingSlash","toParts","split","fromParts","isToAbs","isFromAbs","mustEndAbs","concat","last","up","part","unshift","join","condition","hashbang","noslash","slash"],"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,GA6BF,SAASW,EAAoBhB,GAG5B,GAAGiB,EAAiBjB,GACnB,OAAOiB,EAAiBjB,GAAUkB,QAGnC,IAAIC,EAASF,EAAiBjB,GAAY,CACzCI,EAAGJ,EACHoB,GAAG,EACHF,QAAS,IAUV,OANAL,EAAQb,GAAUU,KAAKS,EAAOD,QAASC,EAAQA,EAAOD,QAASF,GAG/DG,EAAOC,GAAI,EAGJD,EAAOD,QA1Cf,IAAID,EAAmB,GAGnBI,EAAqB,CACxBC,EAAG,GAMAX,EAAkB,CACrBW,EAAG,GAoCJN,EAAoBO,EAAI,SAAuBtB,GAC9C,IAAIuB,EAAW,GAKZH,EAAmBpB,GAAUuB,EAASZ,KAAKS,EAAmBpB,IACzB,IAAhCoB,EAAmBpB,IAFX,CAAC,EAAI,EAAE,EAAI,EAAE,EAAI,EAAE,EAAI,EAAE,EAAI,GAEUA,IACtDuB,EAASZ,KAAKS,EAAmBpB,GAAW,IAAIwB,SAAQ,SAASC,EAASC,GAIzE,IAHA,IAAIC,GAAa,CAAC,EAAI,eAAe,EAAI,aAAa,EAAI,qBAAqB,EAAI,mBAAmB,EAAI,uBAAuB3B,IAAUA,GAAW,UAAY,CAAC,EAAI,QAAQ,EAAI,QAAQ,EAAI,QAAQ,EAAI,QAAQ,EAAI,SAASA,GAAW,OACvO4B,EAAWb,EAAoBc,EAAIF,EACnCG,EAAmBC,SAASC,qBAAqB,QAC7C7B,EAAI,EAAGA,EAAI2B,EAAiBzB,OAAQF,IAAK,CAChD,IACI8B,GADAC,EAAMJ,EAAiB3B,IACRgC,aAAa,cAAgBD,EAAIC,aAAa,QACjE,GAAe,eAAZD,EAAIE,MAAyBH,IAAaN,GAAQM,IAAaL,GAAW,OAAOH,IAErF,IAAIY,EAAoBN,SAASC,qBAAqB,SACtD,IAAQ7B,EAAI,EAAGA,EAAIkC,EAAkBhC,OAAQF,IAAK,CACjD,IAAI+B,EAEJ,IADID,GADAC,EAAMG,EAAkBlC,IACTgC,aAAa,gBAChBR,GAAQM,IAAaL,EAAU,OAAOH,IAEvD,IAAIa,EAAUP,SAASQ,cAAc,QACrCD,EAAQF,IAAM,aACdE,EAAQE,KAAO,WACfF,EAAQG,OAAShB,EACjBa,EAAQI,QAAU,SAASC,GAC1B,IAAIC,EAAUD,GAASA,EAAME,QAAUF,EAAME,OAAOC,KAAOlB,EACvDmB,EAAM,IAAIC,MAAM,qBAAuBhD,EAAU,cAAgB4C,EAAU,KAC/EG,EAAIE,KAAO,wBACXF,EAAIH,QAAUA,SACPxB,EAAmBpB,GAC1BsC,EAAQY,WAAWC,YAAYb,GAC/BZ,EAAOqB,IAERT,EAAQX,KAAOC,EAEJG,SAASC,qBAAqB,QAAQ,GAC5CoB,YAAYd,MACfe,MAAK,WACPjC,EAAmBpB,GAAW,MAMhC,IAAIsD,EAAqB5C,EAAgBV,GACzC,GAA0B,IAAvBsD,EAGF,GAAGA,EACF/B,EAASZ,KAAK2C,EAAmB,QAC3B,CAEN,IAAIC,EAAU,IAAI/B,SAAQ,SAASC,EAASC,GAC3C4B,EAAqB5C,EAAgBV,GAAW,CAACyB,EAASC,MAE3DH,EAASZ,KAAK2C,EAAmB,GAAKC,GAGtC,IACIC,EADAC,EAAS1B,SAASQ,cAAc,UAGpCkB,EAAOC,QAAU,QACjBD,EAAOE,QAAU,IACb5C,EAAoB6C,IACvBH,EAAOI,aAAa,QAAS9C,EAAoB6C,IAElDH,EAAOX,IAnGV,SAAwB9C,GACvB,OAAOe,EAAoBc,EAAI,IAAM,CAAC,EAAI,eAAe,EAAI,aAAa,EAAI,qBAAqB,EAAI,mBAAmB,EAAI,uBAAuB7B,IAAUA,GAAW,UAAY,CAAC,EAAI,QAAQ,EAAI,QAAQ,EAAI,QAAQ,EAAI,QAAQ,EAAI,SAASA,GAAW,MAkGhP8D,CAAe9D,GAG5B,IAAI+D,EAAQ,IAAIf,MAChBQ,EAAmB,SAAUb,GAE5Bc,EAAOf,QAAUe,EAAOhB,OAAS,KACjCuB,aAAaL,GACb,IAAIM,EAAQvD,EAAgBV,GAC5B,GAAa,IAAViE,EAAa,CACf,GAAGA,EAAO,CACT,IAAIC,EAAYvB,IAAyB,SAAfA,EAAMH,KAAkB,UAAYG,EAAMH,MAChE2B,EAAUxB,GAASA,EAAME,QAAUF,EAAME,OAAOC,IACpDiB,EAAMK,QAAU,iBAAmBpE,EAAU,cAAgBkE,EAAY,KAAOC,EAAU,IAC1FJ,EAAMM,KAAO,iBACbN,EAAMvB,KAAO0B,EACbH,EAAMnB,QAAUuB,EAChBF,EAAM,GAAGF,GAEVrD,EAAgBV,QAAWsE,IAG7B,IAAIX,EAAUY,YAAW,WACxBf,EAAiB,CAAEhB,KAAM,UAAWK,OAAQY,MAC1C,MACHA,EAAOf,QAAUe,EAAOhB,OAASe,EACjCzB,SAASyC,KAAKpB,YAAYK,GAG5B,OAAOjC,QAAQiD,IAAIlD,IAIpBR,EAAoB2D,EAAI9D,EAGxBG,EAAoB4D,EAAI3D,EAGxBD,EAAoB6D,EAAI,SAAS3D,EAASoD,EAAMQ,GAC3C9D,EAAoB+D,EAAE7D,EAASoD,IAClC/D,OAAOyE,eAAe9D,EAASoD,EAAM,CAAEW,YAAY,EAAMC,IAAKJ,KAKhE9D,EAAoBmE,EAAI,SAASjE,GACX,oBAAXkE,QAA0BA,OAAOC,aAC1C9E,OAAOyE,eAAe9D,EAASkE,OAAOC,YAAa,CAAEC,MAAO,WAE7D/E,OAAOyE,eAAe9D,EAAS,aAAc,CAAEoE,OAAO,KAQvDtE,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,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIR1E,EAAoB8E,EAAI,SAAS3E,GAChC,IAAI2D,EAAS3D,GAAUA,EAAOsE,WAC7B,WAAwB,OAAOtE,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAH,EAAoB6D,EAAEC,EAAQ,IAAKA,GAC5BA,GAIR9D,EAAoB+D,EAAI,SAASgB,EAAQC,GAAY,OAAOzF,OAAOC,UAAUC,eAAeC,KAAKqF,EAAQC,IAGzGhF,EAAoBc,EAAI,IAGxBd,EAAoBiF,GAAK,SAASjD,GAA2B,MAApBkD,QAAQlC,MAAMhB,GAAYA,GAEnE,IAAImD,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,Q,qGC1OpC,iBANf,SAAcC,GACb,uBACCA,EAAI,EAAQ,UACZ,8B,oDCGa,iBANf,SAAcA,GACb,uBACCA,EAAI,EAAQ,UACZ,8B,kDCGa,iBANf,SAAcA,GACb,uBACCA,EAAI,EAAQ,UACZ,8B,qTCSiBC,E,gLACpBC,OAAA,WACC,OACC,SAAKC,GAAG,OACP,YAAI,OAAG/E,KAAK,KAAR,cAAJ,IAA+B,qBAAU,OAAGA,KAAK,sBAAR,YACzC,EAAC,IAAD,CAAQgF,QAASC,eAChB,EAAC,IAAD,CAAMC,KAAK,MACX,EAAC,IAAD,CAAQA,KAAK,YACb,EAAC,IAAD,CAAeA,KAAK,mBACpB,EAAC,IAAD,CAAcA,KAAK,kBACnB,EAAC,IAAD,CAAYA,KAAK,iBAElB,EAAC,IAAD,Q,GAZ6BC,c,kICZZC,E,gLACpBN,OAAA,WACC,OAAO,SAAKO,MAAOC,IAAMC,WAAlB,8BAAwD,OAAGvF,KAAK,mDAAR,gBAAxD,MAAqI,OAAGA,KAAK,0CAAR,qB,aAFvGmF,a,0DCHvC,gBAEe,aAASK,GACvB,SAASC,IAAQ,IAGZC,EAAGC,EAHS,OAChBR,YAAUrG,KAAK8G,MAGfA,KAAKC,mBAAqB,WACzBH,EAAI,EAAKI,KAAO,EAAKC,UAAY,EAAKC,IACtCR,GAAI,SAAAzC,GACH,EAAKkD,SAAS,CAAEC,MAAOnD,EAAEoD,SAAWpD,QAItC6C,KAAKQ,sBAAwB,SAACC,EAAGC,GAchC,OATEX,GAJFW,OAAoB,IAAdA,EAAIJ,aACS,IAARP,GAAkBD,EAET,IAAfA,EAAEa,SACCb,EAAEvH,KAEFqI,YAAEd,EAAEe,SAAU,CACnBC,wBAAyB,CAAEC,OAAQjB,EAAEkB,aAIjC,IAECN,GAGTV,KAAKd,OAAS,SAAC5E,EAAGyE,GAAJ,OAAWA,EAAEuB,MAAQM,YAAE7B,EAAEuB,MAAOhG,GAAKyF,GAGpD,OADCF,EAAM7G,UAAY,IAAIuG,aAAa0B,YAAcpB,EAC3CA,I,kDCzBS,iBANf,SAAcb,GACb,uBACCA,EAAI,EAAQ,UACZ,8B,kCCHJ,SAAgB,EAAO,EAAK,GAE3B,IAAKkC,IAAI,KAAK,EACb,EAAI,GAAK,EAAM,GAEhB,OAAO,EAGR,SAAgB,EAAK,EAAK,EAAO,GAChCA,IAGC,EAHG,EAAM,wBACT,EAAI,EAAI,MAAM,GACd,EAAU,GAEX,GAAI,GAAK,EAAE,GAEV,IADAA,IAAI,EAAI,EAAE,GAAG,MAAM,KACV,EAAE,EAAG,EAAE,EAAE,OAAQ,IAAK,CAC9BA,IAAIvD,EAAI,EAAE,GAAG,MAAM,KACnB,EAAQ,mBAAmB,EAAE,KAAO,mBAAmB,EAAE,MAAM,GAAG,KAAK,MAGzE,EAAM,EAAW,EAAI,QAAQ,EAAK,KAClC,EAAQ,EAAW,GAAS,IAE5B,IADAuD,IAAI,EAAM,KAAK,IAAI,EAAI,OAAQ,EAAM,QAC5BtI,EAAE,EAAGA,EAAE,EAAKA,IACpB,GAAI,EAAMA,IAA2B,MAArB,EAAMA,GAAG,OAAO,GAAU,CACzCsI,IAAI,EAAQ,EAAMtI,GAAG,QAAQ,gBAAiB,IAC7C,GAAS,EAAMA,GAAG,MAAM,YAAcuI,GAAO,IAAM,GACnD,GAAQ,EAAM,QAAQ,KACtB,GAAQ,EAAM,QAAQ,KACtB,EAAM,EAAIvI,IAAM,GACjB,IAAK,IAAQ,IAAS,EAAM,QAAQ,KAAK,GAAK,GAAO,CACpD,GAAM,EACN,MAGD,GADA,EAAQ,GAAS,mBAAmB,GAChC,GAAQ,EAAM,CACjB,EAAQ,GAAS,EAAI,MAAMA,GAAG,IAAI,oBAAoB,KAAK,KAC3D,YAGG,GAAI,EAAMA,KAAK,EAAIA,GAAI,CAC3B,GAAM,EACN,MAGF,QAAmB,IAAf,EAAK,UAAwB,IAAN,IACpB,EAGR,SAAgB,EAAa,EAAG,GAC/B,OACE,EAAE,KAAO,EAAE,KAAQ,EAClB,EAAE,KAAO,EAAE,MAAS,EACnB,EAAE,MAAQ,EAAE,MAKjB,SAAgB,EAAuB,EAAO,GAG7C,OAFA,EAAM,MAAQ,EACd,EAAM,KAgBP,SAAmB,GAClB,OAAO,EAAM,MAAM,QAAU,GALT,EAKkB,EAAM,MAAM,KAJ3C,EAAW,GAAM,IAAI,GAAa,KAAK,KAD/C,IAAqB,EAZP,CAAU,GAChB,EAAM,MAGd,SAAgB,EAAW,GAC1B,OAAO,EAAI,QAAQ,eAAgB,IAAI,MAAM,KAG9C,SAAgB,EAAY,GAC3B,MAA0B,KAAnB,EAAQ,OAAO,GAAW,EAAI,MAAM,QAAQ,EAAQ,OAAO,EAAQ,OAAO,KAAQ,EAAI,ECnD9F,SAASwI,IACRF,IAAIG,EAUJ,MAAO,KARNA,EADGC,GAAiBA,EAAcC,SAC5BD,EAAcC,SAEZD,GAAiBA,EAAcE,mBACjCF,EAAcE,qBAGI,oBAAXD,SAAyBA,SAAWJ,GAEpCM,UAAY,KAAKJ,EAAIK,QAAU,IAK9C,SAASC,EAAMN,EAAKO,GAWnB,Y,WAX2B,GACV,iBAANP,GAAkBA,EAAIA,MAChCO,EAAUP,EAAIO,QACdP,EAAMA,EAAIA,KAaZ,SAAkBA,GACjB,IAAKH,IAAItI,EAAEiJ,EAAQ/I,OAAQF,KAC1B,GAAIiJ,EAAQjJ,GAAGkJ,SAAST,GAAM,OAAO,EAEtC,OAAO,EAbHS,CAAST,IAjCd,SAAgBA,EAAKpG,Q,UAAK,QACrBqG,GAAiBA,EAAcrG,GAClCqG,EAAcrG,GAAMoG,GAEK,oBAAVjC,SAAyBA,QAAQnE,EAAK,UACrDmE,QAAQnE,EAAK,SAAS,KAAM,KAAMoG,GA6BlCU,CAAOV,EAAKO,EAAU,UAAY,QAG5BI,EAAQX,GAchB,SAASW,EAAQX,GAEhB,IADAH,IAAIe,GAAW,EACNrJ,EAAE,EAAGA,EAAEiJ,EAAQ/I,OAAQF,KACD,IAA1BiJ,EAAQjJ,GAAGoJ,QAAQX,KACtBY,GAAW,GAGb,IAAKf,IAAItI,EAAEsJ,EAAYpJ,OAAQF,KAC9BsJ,EAAYtJ,GAAGyI,GAEhB,OAAOY,EAIR,SAASE,EAAcC,GAEtB,GAAKA,GAASA,EAAKxH,aAAnB,CAEAsG,IAAI9G,EAAOgI,EAAKxH,aAAa,QAC5BU,EAAS8G,EAAKxH,aAAa,UAG5B,GAAKR,GAASA,EAAKiI,MAAM,WAAY/G,GAAWA,EAAO+G,MAAM,cAG7D,OAAOV,EAAMvH,IAId,SAASkI,EAAgBvI,GACxB,KAAIA,EAAEwI,SAAWxI,EAAEyI,SAAWzI,EAAE0I,QAAU1I,EAAE2I,UAAuB,IAAX3I,EAAE4I,QAE1D,OADAR,EAAcpI,EAAE6I,eAAiB7I,EAAEuB,QAAU0E,MACtC6C,EAAQ9I,GAIhB,SAAS8I,EAAQ9I,GAMhB,OALIA,IACCA,EAAE+I,0BAA0B/I,EAAE+I,2BAC9B/I,EAAEgJ,iBAAiBhJ,EAAEgJ,kBACzBhJ,EAAEiJ,mBAEI,EAIR,SAASC,EAAoBlJ,GAE5B,KAAIA,EAAEwI,SAAWxI,EAAEyI,SAAWzI,EAAE0I,QAAU1I,EAAE2I,UAAuB,IAAX3I,EAAE4I,QAA1D,CAEAzB,IAAInD,EAAIhE,EAAEuB,OACV,GACC,GAAuC,MAAnC4H,OAAOnF,EAAE8C,UAAUsC,eAAuBpF,EAAEnD,aAAa,QAAS,CACrE,GAAImD,EAAEqF,aAAa,UAAW,OAE9B,GAAIjB,EAAcpE,GACjB,OAAO8E,EAAQ9I,UAGRgE,EAAEA,EAAEpC,a,gBDxHTwF,EAAQ,GCEVG,EAAgB,KAEdO,EAAU,GAEVK,EAAc,GAEdf,EAAQ,GAoHVkC,GAA4B,EAiB1BC,EAAM,YAAmB,WAClBC,GACXC,EAAK,KAAC,KAAAD,GACFA,EAAMnE,UACTkC,EAAgBiC,EAAMnE,SAGvBY,KAAKyD,MAAQ,CACZpC,IAAKkC,EAAMlC,KAAOD,KAtBhBiC,IAE0B,mBAAnBK,mBACLpC,GACJoC,iBAAiB,YAAY,WAC5B1B,EAAQZ,QAGVsC,iBAAiB,QAAST,IAE3BI,GAA4B,G,kFAgB3B,EAED,YAAA7C,sBAAqB,SAAC+C,GACrB,OAAmB,IAAfA,EAAMI,SACHJ,EAAMlC,MAAMrB,KAAKuD,MAAMlC,KAAOkC,EAAMK,WAAW5D,KAAKuD,MAAMK,WAIlE,YAAA9B,SAAQ,SAACT,GACRwC,IAAMC,EAAW,uBAAa9D,KAAKuD,MAAMO,UACzC,OAAO9D,KAAK+D,oBAAoBD,EAAUzC,GAAK,GAAOvI,OAAS,GAIhE,YAAAkJ,QAAO,SAACX,GACPrB,KAAKK,SAAS,CAAEgB,QAEhBwC,IAAM5B,EAAWjC,KAAK8B,SAAST,GAK/B,OAFKrB,KAAKgE,UAAUhE,KAAKiE,cAElBhC,GAGR,YAAAhC,mBAAkB,WACjB4B,EAAQzI,KAAK4G,MACbA,KAAKgE,UAAW,GAGjB,YAAAE,kBAAiB,W,WACZ5C,IACHtB,KAAKmE,SAAW7C,EAAc8C,QAAO,SAAC7C,GACrCvB,EAAKgC,QAAQ,IAAGT,EAASE,UAAY,KAAKF,EAASG,QAAU,SAG/D1B,KAAKgE,UAAW,GAGjB,YAAAK,qBAAoB,WACQ,mBAAhBrE,KAAKmE,UAAuBnE,KAAKmE,WAC5CtC,EAAQyC,OAAOzC,EAAQ0C,QAAQvE,MAAO,IAGvC,YAAAwE,oBAAmB,WAClBxE,KAAKgE,UAAW,GAGjB,YAAAS,mBAAkB,WACjBzE,KAAKgE,UAAW,GAGjB,YAAAD,oBAAmB,SAACD,EAAUzC,EAAKqD,GAClC,OAAOZ,EACLa,OAAOC,GACPC,KAAKC,GACLC,KAAK,SAAAC,GACL9D,IAAI+D,EAAUC,EAAK7D,EAAK2D,EAAMzB,MAAMjE,KAAM0F,EAAMzB,OAChD,GAAI0B,EAAS,CACZ,IAAe,IAAXP,EAAkB,CACrBxD,IAAIiE,EAAW,CAAE9D,MAAK4D,WAItB,OAHAG,EAAOD,EAAUF,UACVE,EAASE,WACTF,EAAS/G,IACT,uBAAa4G,EAAOG,GAE5B,OAAOH,MAENL,OAAOW,UAGZ,YAAApG,OAAM,SAAC,EAAwB,G,IAAtB4E,EAAQ,WAAEF,EAAQ,WAAMvC,EAAG,MAC/BkE,EAASvF,KAAK+D,oBAAoB,uBAAaD,GAAWzC,GAAK,GAE/DmE,EAAUD,EAAO,IAAM,KAEvBE,EAAWzF,KAAK0F,YAcpB,OAbIrE,IAAMoE,IACTzF,KAAK0F,YAAcrE,EACG,mBAAXuC,GACVA,EAAS,CACR+B,OAAQ3F,KACRqB,MACAoE,WACAF,SACAC,aAKIA,G,EAtGG,CAAS,aAgHrBlC,EAAOpB,YAAcA,EACrBoB,EAAOlC,cAAgBA,EACvBkC,EAAO3B,MAAQA,EACf2B,EAAOA,OAASA,EAChBA,EAAOsC,MANO,SAAArC,GAAM,OAAG,wBAAcA,EAAMsC,UAAWtC,IAOtDD,EAAOwC,KAXM,SAACvC,GAAO,OACpB,wBAAc,IAAK6B,EAAO,CAAEW,QAASzD,GAAmBiB,KAWzDD,EAAO4B,KAAOA,E,wBCnQdvL,EAAOD,QAAU,CAAC,UAAY,qB,kCFMvB,SAAS0L,EAAOY,EAAKzC,OACtB,IAAI3K,KAAK2K,EAAOyC,EAAIpN,GAAK2K,EAAM3K,YAU9B,SAASqN,EAAW7D,OACtBzG,EAAayG,EAAKzG,WAClBA,GAAYA,EAAWC,YAAYwG,GGVxC,SAAgBpH,EAAcC,EAAMsI,EAAOO,GAA3C,IAEElL,cADGsN,EAAkB,OAEjBtN,KAAK2K,EACC,QAAN3K,GAAqB,QAANA,IAAasN,EAAgBtN,GAAK2K,EAAM3K,OAGxDuN,UAAUrN,OAAS,MACtBgL,EAAW,CAACA,GAEPlL,EAAI,EAAGA,EAAIuN,UAAUrN,OAAQF,IACjCkL,EAAS1K,KAAK+M,EAAUvN,OAGV,MAAZkL,IACHoC,EAAgBpC,SAAWA,GAKR,mBAAT7I,GAA4C,MAArBA,EAAKmL,iBACjCxN,KAAKqC,EAAKmL,sBACVF,EAAgBtN,KACnBsN,EAAgBtN,GAAKqC,EAAKmL,aAAaxN,WAKnCyN,EACNpL,EACAiL,EACA3C,GAASA,EAAMnF,IACfmF,GAASA,EAAM8B,KAgBjB,SAAgBgB,EAAYpL,EAAMsI,EAAOnF,EAAKiH,OAGvCL,EAAQ,CACb/J,OACAsI,QACAnF,MACAiH,MACAiB,IAAW,KACXC,GAAS,KACTC,IAAQ,EACRC,IAAM,KAKNC,WACAC,IAAY,KACZ1F,oBAAalE,OAGV6J,EAAQ5B,OAAO4B,EAAQ5B,MAAMA,GAE1BA,EAGR,SAAgB6B,UACR,GAGD,SAASC,EAASvD,UACjBA,EAAMO,SC7EP,SAASvE,EAAUgE,EAAOwD,QAC3BxD,MAAQA,OACRwD,QAAUA,EAqET,SAASC,EAAchC,EAAOiC,MAClB,MAAdA,SAEIjC,EAAMuB,GACVS,EAAchC,EAAMuB,GAASvB,EAAMuB,GAAQD,IAAU/B,QAAQS,GAAS,GACtE,aAGAkC,EACGD,EAAajC,EAAMsB,IAAUxN,OAAQmO,OAG5B,OAFfC,EAAUlC,EAAMsB,IAAUW,KAEa,MAAhBC,EAAQT,WAIvBS,EAAQT,UASY,mBAAfzB,EAAM/J,KAAsB+L,EAAchC,GAAS,KAmClE,SAASmC,EAAwBnC,GAAjC,IAGWpM,EACJ0H,KAHyB,OAA1B0E,EAAQA,EAAMuB,KAAwC,MAApBvB,EAAM2B,IAAoB,KAChE3B,EAAMyB,IAAOzB,EAAM2B,IAAWzG,KAAO,KAC5BtH,EAAI,EAAGA,EAAIoM,EAAMsB,IAAUxN,OAAQF,OAE9B,OADT0H,EAAQ0E,EAAMsB,IAAU1N,KACO,MAAd0H,EAAMmG,IAAc,CACxCzB,EAAMyB,IAAOzB,EAAM2B,IAAWzG,KAAOI,EAAMmG,iBAKtCU,EAAwBnC,IAoC1B,SAASoC,EAAchK,KAE1BA,EAAEiK,MAAWjK,EAAEiK,SAAgC,IAAdC,EAAElO,KAAKgE,IAC1CmK,IAAiBX,EAAQY,sBAEzBD,EAAeX,EAAQY,oBACNC,GAAOC,GAK1B,SAASA,QACJpN,EAvFoBuL,EAMnB8B,EACAC,EAND5C,EACH6C,EACAC,MAqFDR,EAAEzC,MAAK,SAACkD,EAAGjI,UAAMA,EAAEkI,IAAOxB,IAASuB,EAAEC,IAAOxB,OACpClM,EAAIgN,EAAEW,OAET3N,EAAE+M,MArFFM,SACAC,SALJC,GADG7C,GADoBa,EA2FOvL,GA1FT0N,KACNvB,KACfqB,EAAYjC,EAAUqC,OAGlBP,EAAc,GACdC,EAASO,EACZL,EACA9C,EACAI,EAAO,GAAIJ,GACXa,EAAUuC,aACVN,EAAUO,gBACV,KACAV,EACU,MAAVE,EAAiBb,EAAchC,GAAS6C,GAEzCS,EAAWX,EAAa3C,GAEpB4C,GAAUC,GACbV,EAAwBnC,KC9G3B,SAAgBuD,EACfT,EACAU,EACAC,EACA1B,EACA2B,EACAC,EACAhB,EACAE,EACAe,GATD,IAWKhQ,EAAGiQ,EAAGC,EAAUlB,EAAQmB,EAAQC,EAAeC,EAI/CC,EAAeT,GAAkBA,EAAenC,KAAc6C,EAE9DC,EAAoBF,EAAYpQ,UAMhC+O,GAAUwB,IAEZxB,EADwB,MAArBc,EACMA,EAAkB,GACjBS,EACDpC,EAAcyB,EAAgB,GAE9B,MAIX7P,EAAI,EACJ4P,EAAelC,IAAYgD,EAC1Bd,EAAelC,KACf,eACmB,MAAdiD,EAAoB,IACvBA,EAAWhD,GAAUiC,EACrBe,EAAW/C,IAASgC,EAAehC,IAAS,EAS9B,QAHdsC,EAAWI,EAAYtQ,KAIrBkQ,GACAS,EAAWnL,KAAO0K,EAAS1K,KAC3BmL,EAAWtO,OAAS6N,EAAS7N,KAE9BiO,EAAYtQ,eAAKmE,IAIZ8L,EAAI,EAAGA,EAAIO,EAAmBP,IAAK,KACvCC,EAAWI,EAAYL,KAKtBU,EAAWnL,KAAO0K,EAAS1K,KAC3BmL,EAAWtO,OAAS6N,EAAS7N,KAC5B,CACDiO,EAAYL,UAAK9L,MAGlB+L,EAAW,QAOblB,EAASO,EACRL,EACAyB,EALDT,EAAWA,GAAYO,EAOtBtC,EACA2B,EACAC,EACAhB,EACAE,EACAe,IAGIC,EAAIU,EAAWlE,MAAQyD,EAASzD,KAAOwD,IACtCI,IAAMA,EAAO,IACdH,EAASzD,KAAK4D,EAAK7P,KAAK0P,EAASzD,IAAK,KAAMkE,GAChDN,EAAK7P,KAAKyP,EAAGU,EAAW5C,KAAciB,EAAQ2B,IAIjC,MAAV3B,EAAgB,KAKf4B,KAJiB,MAAjBR,IACHA,EAAgBpB,YAIb2B,EAAW7C,IAId8C,EAAUD,EAAW7C,IAMrB6C,EAAW7C,gBACL,GACNiC,GAAqBG,GACrBlB,GAAUC,GACW,MAArBD,EAAOjM,WACN,CAKD8N,EAAO,GAAc,MAAV5B,GAAkBA,EAAOlM,aAAemM,EAClDA,EAAUjM,YAAY+L,GACtB4B,EAAU,SACJ,KAGLT,EAASlB,EAAQgB,EAAI,GACpBE,EAASA,EAAOW,cAAgBb,EAAIO,EACrCP,GAAK,KAEDE,GAAUnB,QACP6B,EAGR3B,EAAU6B,aAAa/B,EAAQC,GAC/B2B,EAAU3B,EAagB,UAAvBW,EAAevN,OAClB6M,EAAUhK,MAAQ,IAQnB+J,WADG2B,EACMA,EAEA5B,EAAO8B,YAGiB,mBAAvBlB,EAAevN,OASzBuN,EAAe9B,IAAWmB,WAK7BjP,IACO2Q,KAITf,EAAe/B,IAAOuC,EAGG,MAArBL,GAA4D,mBAAxBH,EAAevN,SACjDrC,EAAI+P,EAAkB7P,OAAQF,KACN,MAAxB+P,EAAkB/P,IAAYqN,EAAW0C,EAAkB/P,QAK5DA,EAAIwQ,EAAmBxQ,KACL,MAAlBsQ,EAAYtQ,IAAYgR,EAAQV,EAAYtQ,GAAIsQ,EAAYtQ,OAI7DqQ,MACErQ,EAAI,EAAGA,EAAIqQ,EAAKnQ,OAAQF,IAC5BiR,EAASZ,EAAKrQ,GAAIqQ,IAAOrQ,GAAIqQ,IAAOrQ,IAcvC,SAAgB0Q,EAAaxF,EAAUgG,EAAUC,MAC/B,MAAbA,IAAmBA,EAAY,IAEnB,MAAZjG,GAAwC,kBAAbA,EAC1BgG,GAAUC,EAAU3Q,KAAK0Q,EAAS,YAChC,GAAIE,MAAMC,QAAQnG,OACnB,IAAIlL,EAAI,EAAGA,EAAIkL,EAAShL,OAAQF,IACpC0Q,EAAaxF,EAASlL,GAAIkR,EAAUC,QAKrCA,EAAU3Q,KAHC0Q,EAGIA,EADe,iBAAbhG,GAA6C,iBAAbA,EACzBuC,EAAY,KAAMvC,EAAU,KAAM,MAC/B,MAAjBA,EAAS2C,KAAuC,MAAvB3C,EAAS6C,IAElCN,EAAYvC,EAAS7I,KAAM6I,EAASP,MAAOO,EAAS1F,IAAK,MAG3C0F,GARTA,UAWTiG,EClOR,SAASG,EAASxK,EAAOtB,EAAKN,GACd,MAAXM,EAAI,GACPsB,EAAMyK,YAAY/L,EAAKN,GAKvB4B,EAAMtB,GAHW,iBAAVN,QACPsM,EAAmBC,KAAKjM,GAEXN,EAAQ,KACF,MAATA,EACG,GAEAA,EAYf,SAASqM,EAAYG,EAAKxN,EAAMgB,EAAOyM,EAAU7B,GAAjD,IAWQ3J,EAWKnG,EAQAA,EAUP4R,EACAC,KAxCD/B,EACU,cAAT5L,IACHA,EAAO,SAEW,UAATA,IACVA,EAAO,aAGK,QAATA,GAA2B,aAATA,QACf,GAAa,UAATA,KACJiC,EAAIuL,EAAI5K,MAEO,iBAAV5B,EACViB,EAAE2L,QAAU5M,MACN,IACkB,iBAAbyM,IACVxL,EAAE2L,QAAU,GACZH,EAAW,MAGRA,MACM3R,KAAK2R,EACPzM,GAASlF,KAAKkF,GACnBoM,EAASnL,EAAGnG,EAAG,OAKdkF,MACMlF,KAAKkF,EACRyM,GAAYzM,EAAMlF,KAAO2R,EAAS3R,IACtCsR,EAASnL,EAAGnG,EAAGkF,EAAMlF,QAOL,MAAZkE,EAAK,IAA0B,MAAZA,EAAK,IAC5B0N,EAAa1N,KAAUA,EAAOA,EAAK8E,QAAQ,WAAY,KACvD6I,EAAY3N,EAAK6N,cACrB7N,GAAQ2N,KAAaH,EAAMG,EAAY3N,GAAMgC,MAAM,GAE/ChB,GACEyM,GAAUD,EAAI5G,iBAAiB5G,EAAM8N,EAAYJ,IACrDF,EAAIO,IAAeP,EAAIO,EAAa,KAAK/N,GAAQgB,GAElDwM,EAAIQ,oBAAoBhO,EAAM8N,EAAYJ,IAGlC,SAAT1N,GACS,YAATA,GAGS,SAATA,GACS,SAATA,GACS,SAATA,IACC4L,GACD5L,KAAQwN,EAERA,EAAIxN,GAAiB,MAATgB,EAAgB,GAAKA,EAEhB,mBAAVA,GACE,4BAAThB,IAEIA,KAAUA,EAAOA,EAAK8E,QAAQ,WAAY,KAChC,MAAT9D,QAAiBA,EACpBwM,EAAIS,kBACH,+BACAjO,EAAK6N,eAGNL,EAAIU,eACH,+BACAlO,EAAK6N,cACL7M,GAIO,MAATA,QACCA,IAOC,MAAMuM,KAAKvN,GAEbwN,EAAIW,gBAAgBnO,GAEpBwN,EAAIhO,aAAaQ,EAAMgB,IAU1B,SAAS8M,EAAW7Q,QACd8Q,EAAW9Q,EAAEkB,MAAM2L,EAAQxL,MAAQwL,EAAQxL,MAAMrB,GAAKA,GCvI5D,SAAgBoO,EACfL,EACAoD,EACApC,EACA/B,EACA2B,EACAC,EACAhB,EACAE,EACAe,GATD,IAWKuC,EAWE/N,EAAGgO,EAAOC,EAAUC,EAAUC,EAAUC,EACxCrG,EAKAsG,EACAC,EAjBLC,EAAUT,EAASjQ,iBAIhBiQ,EAASjK,YAA2B,OAAO,MAE1CkK,EAAMvE,EAAQgF,MAAQT,EAAID,OAG9BzB,EAAO,GAAuB,mBAAZkC,EAAwB,IAErCxG,EAAW+F,EAAS3H,MAKpBkI,GADJN,EAAMQ,EAAQE,cACQ9E,EAAQoE,EAAIW,KAC9BJ,EAAOP,EACRM,EACCA,EAASlI,MAAMzF,MACfqN,EAAIY,GACLhF,EAGC+B,EAASnC,IAEZ6E,GADApO,EAAI8N,EAASvE,IAAamC,EAASnC,KACNqF,GAAuB5O,EAAE6O,KAGlD,cAAeN,GAAWA,EAAQ3S,UAAUkG,OAC/CgM,EAASvE,IAAavJ,EAAI,IAAIuO,EAAQxG,EAAUuG,IAEhDR,EAASvE,IAAavJ,EAAI,IAAImC,EAAU4F,EAAUuG,GAClDtO,EAAE6D,YAAc0K,EAChBvO,EAAE8B,OAASgN,GAERT,GAAUA,EAASU,IAAI/O,GAE3BA,EAAEmG,MAAQ4B,EACL/H,EAAEqG,QAAOrG,EAAEqG,MAAQ,IACxBrG,EAAE2J,QAAU2E,EACZtO,EAAEgL,IAAWrB,EACbqE,EAAQhO,EAAEiK,OACVjK,EAAEgP,IAAmB,IAIF,MAAhBhP,EAAEiP,MACLjP,EAAEiP,IAAajP,EAAEqG,OAEsB,MAApCkI,EAAQW,2BACPlP,EAAEiP,KAAcjP,EAAEqG,QACrBrG,EAAEiP,IAAajH,EAAO,GAAIhI,EAAEiP,MAG7BjH,EACChI,EAAEiP,IACFV,EAAQW,yBAAyBnH,EAAU/H,EAAEiP,OAI/ChB,EAAWjO,EAAEmG,MACb+H,EAAWlO,EAAEqG,MAGT2H,EAEkC,MAApCO,EAAQW,0BACgB,MAAxBlP,EAAE6C,oBAEF7C,EAAE6C,qBAGwB,MAAvB7C,EAAE8G,mBACL9G,EAAEgP,IAAiBhT,KAAKgE,EAAE8G,uBAErB,IAE+B,MAApCyH,EAAQW,0BACRnH,IAAakG,GACkB,MAA/BjO,EAAEmP,2BAEFnP,EAAEmP,0BAA0BpH,EAAUuG,IAIrCtO,EAAEoP,KACwB,MAA3BpP,EAAEoD,4BACFpD,EAAEoD,sBAAsB2E,EAAU/H,EAAEiP,IAAYX,GAC/C,KACDtO,EAAEmG,MAAQ4B,EACV/H,EAAEqG,MAAQrG,EAAEiP,IACZjP,EAAEiK,OACFjK,EAAE4K,IAASkD,EACXA,EAASzE,IAAOqC,EAASrC,IACzByE,EAAS5E,IAAYwC,EAASxC,IAC1BlJ,EAAEgP,IAAiBtT,QACtB6O,EAAYvO,KAAKgE,GAEb+N,EAAM,EAAGA,EAAMD,EAAS5E,IAAUxN,OAAQqS,IAC1CD,EAAS5E,IAAU6E,KACtBD,EAAS5E,IAAU6E,GAAK5E,GAAU2E,SAG9BzB,EAGsB,MAAzBrM,EAAEoH,qBACLpH,EAAEoH,oBAAoBW,EAAU/H,EAAEiP,IAAYX,GAGnB,MAAxBtO,EAAEqH,oBACLrH,EAAEgP,IAAiBhT,MAAK,WACvBgE,EAAEqH,mBAAmB4G,EAAUC,EAAUC,MAK5CnO,EAAE2J,QAAU2E,EACZtO,EAAEmG,MAAQ4B,EACV/H,EAAEqG,MAAQrG,EAAEiP,KAEPlB,EAAMvE,EAAQ6F,MAAUtB,EAAID,GAEjC9N,EAAEiK,OACFjK,EAAE4K,IAASkD,EACX9N,EAAE8K,IAAaJ,EAEfqD,EAAM/N,EAAE8B,OAAO9B,EAAEmG,MAAOnG,EAAEqG,MAAOrG,EAAE2J,SAGnCmE,EAAS5E,IADD,MAAP6E,GAAeA,EAAIlQ,MAAQ6L,GAAuB,MAAXqE,EAAI/M,IACF+M,EAAI5H,MAAMO,SAAWqH,EAEtC,MAArB/N,EAAEsP,kBACL3F,EAAU3B,EAAOA,EAAO,GAAI2B,GAAU3J,EAAEsP,oBAGpCtB,GAAsC,MAA7BhO,EAAEuP,0BACfpB,EAAWnO,EAAEuP,wBAAwBtB,EAAUC,IAGhD/C,EACCT,EACAoD,EACApC,EACA/B,EACA2B,EACAC,EACAhB,EACAE,EACAe,GAGDxL,EAAE8C,KAAOgL,EAASzE,IAEdrJ,EAAEgP,IAAiBtT,QACtB6O,EAAYvO,KAAKgE,GAGdoO,IACHpO,EAAE6O,IAAgB7O,EAAE4O,GAAuB,MAG5C5O,EAAEoP,YAEFtB,EAASzE,IAAOmG,EACf9D,EAASrC,IACTyE,EACApC,EACA/B,EACA2B,EACAC,EACAhB,EACAiB,IAIGuC,EAAMvE,EAAQiG,SAAS1B,EAAID,GAC/B,MAAOnR,GACR6M,EAAQkG,IAAY/S,EAAGmR,EAAUpC,UAG3BoC,EAASzE,IAQV,SAAS6B,EAAWX,EAAaoF,GACnCnG,EAAQoG,KAASpG,EAAQoG,IAAQD,EAAMpF,GAE3CA,EAAYsF,MAAK,gBAEftF,EAAcvK,EAAEgP,IAChBhP,EAAEgP,IAAmB,GACrBzE,EAAYsF,MAAK,YAChBjO,EAAG9F,KAAKkE,MAER,MAAOrD,GACR6M,EAAQkG,IAAY/S,EAAGqD,EAAE4K,SAmB5B,SAAS4E,EACRtC,EACAY,EACApC,EACA/B,EACA2B,EACAC,EACAhB,EACAiB,GARD,IAUKhQ,EASI0H,EA8CH4M,EACAC,EAOOvU,EA9DRyS,EAAWvC,EAASvF,MACpB4B,EAAW+F,EAAS3H,SAGxBmF,EAA0B,QAAlBwC,EAASjQ,MAAkByN,EAExB,MAAP4B,GAAoC,MAArB3B,MACb/P,EAAI,EAAGA,EAAI+P,EAAkB7P,OAAQF,OAI/B,OAHJ0H,EAAQqI,EAAkB/P,MAIZ,OAAlBsS,EAASjQ,KACY,IAAnBqF,EAAMK,SACNL,EAAM8M,YAAclC,EAASjQ,MAC/B,CACDqP,EAAMhK,EACNqI,EAAkB/P,GAAK,cAMf,MAAP0R,EAAa,IACM,OAAlBY,EAASjQ,YACLT,SAAS6S,eAAelI,GAGhCmF,EAAM5B,EACHlO,SAAS8S,gBAAgB,6BAA8BpC,EAASjQ,MAChET,SAASQ,cACTkQ,EAASjQ,KACTkK,EAASoI,IAAM,CAAEA,GAAIpI,EAASoI,KAGjC5E,EAAoB,QAGC,OAAlBuC,EAASjQ,KACa,MAArB0N,IACHA,EAAkBA,EAAkBpE,QAAQ+F,IAAQ,MAGjDe,IAAalG,GAAYmF,EAAI/R,MAAQ4M,IACxCmF,EAAI/R,KAAO4M,QAEN,GAAI+F,IAAapC,EAAU,IACR,MAArBH,IACHA,EAAkBA,EAAkBpE,QAAQ+F,IAAQ,KACpD3B,EAAoBQ,EAAUrK,MAAM5F,KAAKoR,EAAIkD,aAK1CN,GAFJ7B,EAAWvC,EAASvF,OAAS8F,GAENvI,wBACnBqM,EAAUhI,EAASrE,yBAIlB8H,EAAa,IACbyC,IAAahC,MAChBgC,EAAW,GACFzS,EAAI,EAAGA,EAAI0R,EAAImD,WAAW3U,OAAQF,IAC1CyS,EAASf,EAAImD,WAAW7U,GAAGkE,MAAQwN,EAAImD,WAAW7U,GAAGkF,OAInDqP,GAAWD,KAETC,GAAYD,GAAWC,EAAQpM,QAAUmM,EAAQnM,SACrDuJ,EAAItJ,UAAamM,GAAWA,EAAQpM,QAAW,MDrU7C,SAAmBuJ,EAAKnF,EAAUkG,EAAU3C,EAAOgF,OACrD9U,MAECA,KAAKyS,EACHzS,KAAKuM,GACVgF,EAAYG,EAAK1R,EAAG,KAAMyS,EAASzS,GAAI8P,OAIpC9P,KAAKuM,EAENuI,GAAiC,mBAAfvI,EAASvM,IACvB,UAANA,GACM,YAANA,GACAyS,EAASzS,KAAOuM,EAASvM,IAEzBuR,EAAYG,EAAK1R,EAAGuM,EAASvM,GAAIyS,EAASzS,GAAI8P,IC0T/CiF,CAAUrD,EAAKnF,EAAUkG,EAAU3C,EAAOE,GAE1CsC,EAAS5E,IAAY4E,EAAS3H,MAAMO,SAG/BqJ,GACJ5E,EACC+B,EACAY,EACApC,EACA/B,EACkB,kBAAlBmE,EAASjQ,MAAmCyN,EAC5CC,EACAhB,EACA0B,EACAT,GAKGA,IAEH,UAAWzD,YACXA,EAASrH,OACTqH,EAASrH,QAAUwM,EAAIxM,QAEvBwM,EAAIxM,MAA0B,MAAlBqH,EAASrH,MAAgB,GAAKqH,EAASrH,OAGnD,YAAaqH,YACbA,EAASyI,SACTzI,EAASyI,UAAYtD,EAAIsD,UAEzBtD,EAAIsD,QAAUzI,EAASyI,iBAKnBtD,EASR,SAAgBT,EAASxE,EAAKvH,EAAOkH,OAEjB,mBAAPK,EAAmBA,EAAIvH,GAC7BuH,EAAIG,QAAU1H,EAClB,MAAO/D,GACR6M,EAAQkG,IAAY/S,EAAGiL,IAYzB,SAAgB4E,EAAQ5E,EAAO6I,EAAaC,GAA5C,IACKnQ,EAOA2M,EAsBM1R,KA5BNgO,EAAQgD,SAAShD,EAAQgD,QAAQ5E,IAEhCrH,EAAIqH,EAAMK,OACT1H,EAAE6H,SAAW7H,EAAE6H,UAAYR,EAAMyB,KAAMoD,EAASlM,EAAG,KAAMkQ,IAI1DC,GAAoC,mBAAf9I,EAAM/J,OAC/B6S,EAAmC,OAArBxD,EAAMtF,EAAMyB,MAK3BzB,EAAMyB,IAAOzB,EAAM0B,WAEW,OAAzB/I,EAAIqH,EAAM2B,KAAqB,IAC/BhJ,EAAE0G,yBAEJ1G,EAAE0G,uBACD,MAAOtK,GACR6M,EAAQkG,IAAY/S,EAAG8T,GAIzBlQ,EAAEuC,KAAOvC,EAAEuK,IAAa,QAGpBvK,EAAIqH,EAAMsB,QACL1N,EAAI,EAAGA,EAAI+E,EAAE7E,OAAQF,IACzB+E,EAAE/E,IAAIgR,EAAQjM,EAAE/E,GAAIiV,EAAaC,GAI5B,MAAPxD,GAAarE,EAAWqE,GAI7B,SAAS4B,EAAS3I,EAAOE,EAAOsD,UACxB/G,KAAKiB,YAAYsC,EAAOwD,GC/ahC,SAAgB7H,EAAO8F,EAAO8C,EAAWiG,GAAzC,IAMKnF,EAOAE,EAMAnB,EAlBAf,EAAQoH,IAAOpH,EAAQoH,GAAMhJ,EAAO8C,GAYpCgB,GAPAF,EAAcmF,IAAgBE,GAQ/B,KACCF,GAAeA,EAAYzH,KAAcwB,EAAUxB,IACvDtB,EAAQhK,EAAc8L,EAAU,KAAM,CAAC9B,IAGnC2C,EAAc,GAClBQ,EACCL,GAGEc,EAAcd,EAAYiG,GAAejG,GAAWxB,IAAYtB,EAClE8D,GAAYO,EACZA,WACAvB,EAAUO,gBACV0F,IAAgBnF,EACb,CAACmF,GACDjF,EACA,KACAK,EAAUrK,MAAM5F,KAAK4O,EAAU0F,YAClC7F,EACAoG,GAAe1E,EACfT,GAIDN,EAAWX,EAAa3C,GASlB,SAAS0I,EAAQ1I,EAAO8C,GAC9B5I,EAAO8F,EAAO8C,EAAWmG,GCtDnB,SAASC,EAAalJ,EAAOzB,UACnCA,EAAQ6B,EAAOA,EAAO,GAAIJ,EAAMzB,OAAQA,GACpC4C,UAAUrN,OAAS,IAAGyK,EAAMO,SAAWqF,EAAUrK,MAAM5F,KAAKiN,UAAW,IACpEE,EACNrB,EAAM/J,KACNsI,EACAA,EAAMnF,KAAO4G,EAAM5G,IACnBmF,EAAM8B,KAAOL,EAAMK,KCbd,SAAS8I,EAAcC,GAAvB,IACAC,EAAM,GAENtH,EAAU,CACf+E,IAAK,OAASlT,IACdmT,GAAeqC,EACfE,kBAAS/K,EAAOwD,UACRxD,EAAMO,SAASiD,IAEvBwH,kBAAShL,OAEDiL,gBADFxO,KAAK0M,kBACH8B,EAAO,QACR9B,gBAAkB,kBACtB2B,EAAItH,EAAQ+E,KAAO2C,EACZJ,QAEH7N,sBAAwB,YACxB+C,EAAMzF,QAAU4Q,EAAO5Q,OAC1B0Q,EAAKvB,MAAK,YACT7P,EAAE2J,QAAU2H,EAAO5Q,MACnBsJ,EAAchK,YAIZ+O,IAAM,YACVqC,EAAKpV,KAAKgE,OACN2C,EAAM3C,EAAEiH,qBACZjH,EAAEiH,qBAAuB,WACxBmK,EAAKlK,OAAOkK,EAAKjK,QAAQnH,GAAI,GAC7B2C,GAAOA,EAAI7G,KAAKkE,MAIZmG,EAAMO,kBAIfiD,EAAQuH,SAASzC,YAAc9E,EAExBA,EC3CD,+iBCWDH,ETsFO+H,ECiETrH,EAQEG,EAcFF,EInLE0G,EEHKrV,ECFEyQ,EAAY,GACZF,EAAY,GACZiB,EAAqB,8DCS5BxD,EAAU,CACfkG,ICHM,SAAqBtQ,EAAOwI,WAE9Ba,EAAW+I,EAEP5J,EAAQA,EAAMuB,QAChBV,EAAYb,EAAM2B,OAAgBd,EAAUmG,UAG9CnG,EAAU5E,aACwC,MAAlD4E,EAAU5E,YAAY4N,2BAEtBD,KACA/I,EAAUxF,SACTwF,EAAU5E,YAAY4N,yBAAyBrS,KAId,MAA/BqJ,EAAUiJ,oBACbF,KACA/I,EAAUiJ,kBAAkBtS,IAGzBoS,EACH,OAAOxH,EAAevB,EAAUoG,IAAgBpG,GAChD,MAAO9L,GACRyC,EAAQzC,QAKLyC,IV0DMmS,EAAiB,mBACpB,MAAT3J,YAAiBA,EAAM/D,aCzExB1B,EAAUvG,UAAUqH,SAAW,SAAS0O,EAAQjF,OAE3C/K,EAEHA,EADGiB,KAAKqM,MAAerM,KAAKyD,MACxBzD,KAAKqM,IAELrM,KAAKqM,IAAajH,EAAO,GAAIpF,KAAKyD,OAGlB,mBAAVsL,IACVA,EAASA,EAAOhQ,EAAGiB,KAAKuD,QAGrBwL,GACH3J,EAAOrG,EAAGgQ,GAIG,MAAVA,GAEA/O,KAAKgI,MACJ8B,GAAU9J,KAAKoM,IAAiBhT,KAAK0Q,GACzC1C,EAAcpH,QAShBT,EAAUvG,UAAUiL,YAAc,SAAS6F,GACtC9J,KAAKgI,WAIHwE,OACD1C,GAAU9J,KAAKoM,IAAiBhT,KAAK0Q,GACzC1C,EAAcpH,QAchBT,EAAUvG,UAAUkG,OAAS4H,EAqFzBQ,EAAI,GAQFG,EACa,mBAAXxN,QACJA,QAAQjB,UAAU8C,KAAKuC,KAAKpE,QAAQC,WACpC8C,WIxKEiR,EAAa5E,EEHRzQ,EAAI,G,kCIFf,uBAGQgI,EAAuBoO,IAApB9P,EAAoB8P,SAAZtB,EAAYsB,UAEzBC,EAAiB,SAAA9R,GAAC,OAAKA,GAAKA,EAAEoD,QAAUpD,EAAEoD,QAAUpD,GA6B1D,GATiC,kBAAmB+R,WAEnDA,UAAUC,cAAcC,SACvBC,IAAgE,SAM/C,mBAFTJ,EAAeK,EAAQ,SAEF,CAC9B,IAAIvC,EACHvS,SAAS+U,eAAe,gBAAkB/U,SAASgV,KAAKC,kBAyBrD9V,EAvBO,WACV,IAAI+V,EAAMT,EAAeK,EAAQ,SAC7BK,EAAgB,GACdC,EAAoBpV,SAASqV,cAClC,gCAEGD,IACHD,EAAgBG,KAAKC,MAAMH,EAAkB5O,WAAW2O,eAazD5C,GAJkB,WAAjBA,EAAKiD,SACJtC,EAEEA,EADAxO,GAEY0B,EAAE8O,EAAK,CAAEO,SAPR,CAAEN,mBAOmBnV,SAASgV,KAAMzC,GAKtDmD,K,oDC/Dc,SAASC,IAetB,OAdAA,EAAWpX,OAAOqM,QAAU,SAAU9J,GACpC,IAAK,IAAI1C,EAAI,EAAGA,EAAIuN,UAAUrN,OAAQF,IAAK,CACzC,IAAIwX,EAASjK,UAAUvN,GAEvB,IAAK,IAAIwF,KAAOgS,EACVrX,OAAOC,UAAUC,eAAeC,KAAKkX,EAAQhS,KAC/C9C,EAAO8C,GAAOgS,EAAOhS,IAK3B,OAAO9C,IAGO+U,MAAMrQ,KAAMmG,WCf9B,SAASmK,EAAW7O,GAClB,MAA8B,MAAvBA,EAAS8O,OAAO,GAIzB,SAASC,EAAUC,EAAMC,GACvB,IAAK,IAAI9X,EAAI8X,EAAOC,EAAI/X,EAAI,EAAG0F,EAAImS,EAAK3X,OAAQ6X,EAAIrS,EAAG1F,GAAK,EAAG+X,GAAK,EAClEF,EAAK7X,GAAK6X,EAAKE,GAGjBF,EAAKxI,MCJP,SAAS2I,EAAgBtR,GACvB,MAA0B,MAAnBA,EAAKiR,OAAO,GAAajR,EAAO,IAAMA,EAE/C,SAASuR,EAAkBvR,GACzB,MAA0B,MAAnBA,EAAKiR,OAAO,GAAajR,EAAKwR,OAAO,GAAKxR,EAKnD,SAASyR,EAAczR,EAAM0R,GAC3B,OAJF,SAAqB1R,EAAM0R,GACzB,OAA4D,IAArD1R,EAAKqL,cAAcpG,QAAQyM,EAAOrG,iBAAuE,IAA/C,MAAMpG,QAAQjF,EAAKiR,OAAOS,EAAOlY,SAG3FmY,CAAY3R,EAAM0R,GAAU1R,EAAKwR,OAAOE,EAAOlY,QAAUwG,EAElE,SAAS4R,EAAmB5R,GAC1B,MAAwC,MAAjCA,EAAKiR,OAAOjR,EAAKxG,OAAS,GAAawG,EAAKR,MAAM,GAAI,GAAKQ,EA0BpE,SAAS6R,EAAW5P,GAClB,IACIG,EAASH,EAASG,OAClB0P,EAAO7P,EAAS6P,KAChB9R,EAHWiC,EAASE,UAGD,IAGvB,OAFIC,GAAqB,MAAXA,IAAgBpC,GAA6B,MAArBoC,EAAO6O,OAAO,GAAa7O,EAAS,IAAMA,GAC5E0P,GAAiB,MAATA,IAAc9R,GAA2B,MAAnB8R,EAAKb,OAAO,GAAaa,EAAO,IAAMA,GACjE9R,EAGT,SAAS+R,EAAe/R,EAAMmE,EAAOrF,EAAKkT,GACxC,IAAI/P,EAEgB,iBAATjC,GAETiC,EAvCJ,SAAmBjC,GACjB,IAAImC,EAAWnC,GAAQ,IACnBoC,EAAS,GACT0P,EAAO,GACPG,EAAY9P,EAAS8C,QAAQ,MAEd,IAAfgN,IACFH,EAAO3P,EAASqP,OAAOS,GACvB9P,EAAWA,EAASqP,OAAO,EAAGS,IAGhC,IAAIC,EAAc/P,EAAS8C,QAAQ,KAOnC,OALqB,IAAjBiN,IACF9P,EAASD,EAASqP,OAAOU,GACzB/P,EAAWA,EAASqP,OAAO,EAAGU,IAGzB,CACL/P,SAAUA,EACVC,OAAmB,MAAXA,EAAiB,GAAKA,EAC9B0P,KAAe,MAATA,EAAe,GAAKA,GAkBfK,CAAUnS,IACZmE,MAAQA,QAIS1G,KAD1BwE,EAAW4O,EAAS,GAAI7Q,IACXmC,WAAwBF,EAASE,SAAW,IAErDF,EAASG,OACuB,MAA9BH,EAASG,OAAO6O,OAAO,KAAYhP,EAASG,OAAS,IAAMH,EAASG,QAExEH,EAASG,OAAS,GAGhBH,EAAS6P,KACqB,MAA5B7P,EAAS6P,KAAKb,OAAO,KAAYhP,EAAS6P,KAAO,IAAM7P,EAAS6P,MAEpE7P,EAAS6P,KAAO,QAGJrU,IAAV0G,QAA0C1G,IAAnBwE,EAASkC,QAAqBlC,EAASkC,MAAQA,IAG5E,IACElC,EAASE,SAAWiQ,UAAUnQ,EAASE,UACvC,MAAO1H,GACP,MAAIA,aAAa4X,SACT,IAAIA,SAAS,aAAepQ,EAASE,SAAW,iFAEhD1H,EAoBV,OAhBIqE,IAAKmD,EAASnD,IAAMA,GAEpBkT,EAEG/P,EAASE,SAE6B,MAAhCF,EAASE,SAAS8O,OAAO,KAClChP,EAASE,SAAWmQ,EAAgBrQ,EAASE,SAAU6P,EAAgB7P,WAFvEF,EAASE,SAAW6P,EAAgB7P,SAMjCF,EAASE,WACZF,EAASE,SAAW,KAIjBF,EAMT,SAASsQ,IACP,IAAIC,EAAS,KAiCTC,EAAY,GA4BhB,MAAO,CACLC,UA5DF,SAAmBC,GAGjB,OADAH,EAASG,EACF,WACDH,IAAWG,IAAYH,EAAS,QAyDtCI,oBArDF,SAA6B3Q,EAAU4Q,EAAQC,EAAqBtI,GAIlE,GAAc,MAAVgI,EAAgB,CAClB,IAAIO,EAA2B,mBAAXP,EAAwBA,EAAOvQ,EAAU4Q,GAAUL,EAEjD,iBAAXO,EAC0B,mBAAxBD,EACTA,EAAoBC,EAAQvI,GAG5BA,GAAS,GAIXA,GAAoB,IAAXuI,QAGXvI,GAAS,IAmCXwI,eA7BF,SAAwBC,GAGtB,SAASC,IACHC,GAAUF,EAAGlC,WAAM,EAAQlK,WAHjC,IAAIsM,GAAW,EAOf,OADAV,EAAU3Y,KAAKoZ,GACR,WACLC,GAAW,EACXV,EAAYA,EAAUpN,QAAO,SAAU+N,GACrC,OAAOA,IAASF,OAmBpBG,gBAdF,WACE,IAAK,IAAIC,EAAOzM,UAAUrN,OAAQ+Z,EAAO,IAAI7I,MAAM4I,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/ED,EAAKC,GAAQ3M,UAAU2M,GAGzBf,EAAUgB,SAAQ,SAAUP,GAC1B,OAAOA,EAASnC,WAAM,EAAQwC,QAapC,SAASG,EAAgBnW,EAASiN,GAChCA,EAASlL,OAAOqU,QAAQpW,IAkU1B,SAASqW,EAAU7R,GACjB,IAAIkQ,EAAYlQ,EAAIkD,QAAQ,KAC5B,OAAsB,IAAfgN,EAAmBlQ,EAAMA,EAAIvC,MAAM,EAAGyS,GAG/C,SAAS4B,IAGP,IAAI/Y,EAAOwE,OAAO2C,SAASnH,KACvBmX,EAAYnX,EAAKmK,QAAQ,KAC7B,OAAsB,IAAfgN,EAAmB,GAAKnX,EAAKgZ,UAAU7B,EAAY,GAO5D,SAAS8B,EAAgB/T,GACvBV,OAAO2C,SAASK,QAAQsR,EAAUtU,OAAO2C,SAASnH,MAAQ,IAAMkF,GAGlE,SAASD,EAAkBkE,GAkBzB,SAAS+P,IACP,IAAIhU,EAAOiU,EAAWJ,KAGtB,OADIK,IAAUlU,EAAOyR,EAAczR,EAAMkU,IAClCnC,EAAe/R,GAKxB,SAASe,EAASoT,GAChBtD,EAAS/Q,EAASqU,GAElBrU,EAAQtG,OAAS4a,EAAc5a,OAC/B6a,EAAkBhB,gBAAgBvT,EAAQmC,SAAUnC,EAAQ+S,QAU9D,SAASyB,IACP,IAL4B7L,EAAGjI,EAK3BR,EAAO6T,IACPU,EAAcC,EAAWxU,GAE7B,GAAIA,IAASuU,EAEXR,EAAgBQ,OACX,CACL,IAAItS,EAAW+R,IAEf,IAAKS,KAdqBhM,EAaP3I,EAAQmC,UAZpBE,YADsB3B,EAc2ByB,GAblCE,UAAYsG,EAAErG,SAAW5B,EAAE4B,QAAUqG,EAAEqJ,OAAStR,EAAEsR,MAaL,OAEnE,GAAI4C,IAAe7C,EAAW5P,GAAW,OAEzCyS,EAAa,KAKjB,SAAmBzS,GACjB,GAAIwS,EACFA,GAAe,EACf1T,QACK,CAELsT,EAAkBzB,oBAAoB3Q,EADzB,MAC2C6Q,GAAqB,SAAU6B,GACjFA,EACF5T,EAAS,CACP8R,OAJO,MAKP5Q,SAAUA,IASpB,SAAmB2S,GACjB,IAIIC,EAAUC,EAASC,YAAYlD,EAJlB/R,EAAQmC,YAKR,IAAb4S,IAAgBA,EAAU,GAC9B,IAAIG,EAAYF,EAASC,YAAYlD,EAAW+C,KAC7B,IAAfI,IAAkBA,EAAY,GAClC,IAAIC,EAAQJ,EAAUG,EAElBC,IACFR,GAAe,EACfS,EAAGD,IAnBCE,CAAUlT,OAjBdmT,CAAUnT,IAoHd,SAASiT,EAAGlW,GAEVoV,EAAcc,GAAGlW,GAanB,SAASqW,EAAkBJ,GAGH,KAFtBK,GAAiBL,IAEoB,IAAVA,EACzB3V,OAAO8E,iBAxOW,aAwOyBkQ,GAChB,IAAlBgB,GACThW,OAAOkM,oBA1OW,aA0O4B8I,QAhMpC,IAAVrQ,IACFA,EAAQ,IAGTsR,GAAmGC,GAAU,GAC9G,IAAIpB,EAAgB9U,OAAOQ,QAGvB2V,GApUGnW,OAAOsQ,UAAU8F,UAAUzQ,QAAQ,WAmU7BhB,EACsB6O,qBAC/BA,OAAgD,IAA1B2C,EAAmC/B,EAAkB+B,EAC3EE,EAHS1R,EAGgB2R,SACzBA,OAA+B,IAApBD,EAA6B,QAAUA,EAClDzB,EAAWjQ,EAAMiQ,SAAWtC,EAAmBN,EAAgBrN,EAAMiQ,WAAa,GAClF2B,EAAwBC,EAAeF,GACvCpB,EAAaqB,EAAsBrB,WACnCP,EAAa4B,EAAsB5B,WASnCI,EAAoB9B,IASpBkC,GAAe,EACfC,EAAa,KA8Db1U,EAAO6T,IACPU,EAAcC,EAAWxU,GACzBA,IAASuU,GAAaR,EAAgBQ,GAC1C,IAAIwB,EAAkB/B,IAClBc,EAAW,CAACjD,EAAWkE,IAoFvBT,EAAgB,EAYhBU,GAAY,EAiCZlW,EAAU,CACZtG,OAAQ4a,EAAc5a,OACtBqZ,OAAQ,MACR5Q,SAAU8T,EACVE,WAnIF,SAAoBhU,GAClB,IAAIiU,EAAUhb,SAASqV,cAAc,QACjCzV,EAAO,GAMX,OAJIob,GAAWA,EAAQ5a,aAAa,UAClCR,EAAO8Y,EAAUtU,OAAO2C,SAASnH,OAG5BA,EAAO,IAAM0Z,EAAWN,EAAWrC,EAAW5P,KA4HrDnI,KAzHF,SAAckG,GAEZ,IACIiC,EAAW8P,EAAe/R,OAAMvC,OAAWA,EAAWqC,EAAQmC,UAClEoS,EAAkBzB,oBAAoB3Q,EAFzB,OAE2C6Q,GAAqB,SAAU6B,GACrF,GAAKA,EAAL,CACA,IAAI3U,EAAO6R,EAAW5P,GAClBsS,EAAcC,EAAWN,EAAWlU,GAGxC,GAFkB6T,MAAkBU,EAEnB,CAIfG,EAAa1U,EAxIrB,SAAsBA,GACpBV,OAAO2C,SAAS6P,KAAO9R,EAwIjBmW,CAAa5B,GACb,IAAI6B,EAAYtB,EAASC,YAAYlD,EAAW/R,EAAQmC,WACpDoU,EAAYvB,EAAStV,MAAM,EAAG4W,EAAY,GAC9CC,EAAUvc,KAAKkG,GACf8U,EAAWuB,EACXtV,EAAS,CACP8R,OAnBO,OAoBP5Q,SAAUA,SAIZlB,SAgGJuB,QA3FF,SAAiBtC,GAEf,IACIiC,EAAW8P,EAAe/R,OAAMvC,OAAWA,EAAWqC,EAAQmC,UAClEoS,EAAkBzB,oBAAoB3Q,EAFzB,UAE2C6Q,GAAqB,SAAU6B,GACrF,GAAKA,EAAL,CACA,IAAI3U,EAAO6R,EAAW5P,GAClBsS,EAAcC,EAAWN,EAAWlU,GACtB6T,MAAkBU,IAMlCG,EAAa1U,EACb+T,EAAgBQ,IAGlB,IAAI6B,EAAYtB,EAAS7P,QAAQ4M,EAAW/R,EAAQmC,YACjC,IAAfmU,IAAkBtB,EAASsB,GAAapW,GAC5Ce,EAAS,CACP8R,OAnBS,UAoBT5Q,SAAUA,SAsEdiT,GAAIA,EACJoB,OA7DF,WACEpB,GAAI,IA6DJqB,UA1DF,WACErB,EAAG,IA0DHsB,MAzCF,SAAehE,QACE,IAAXA,IACFA,GAAS,GAGX,IAAIiE,EAAUpC,EAAkB3B,UAAUF,GAO1C,OALKwD,IACHX,EAAkB,GAClBW,GAAY,GAGP,WAML,OALIA,IACFA,GAAY,EACZX,GAAmB,IAGdoB,MAwBT3R,OApBF,SAAgBoO,GACd,IAAIrO,EAAWwP,EAAkBrB,eAAeE,GAEhD,OADAmC,EAAkB,GACX,WACLA,GAAmB,GACnBxQ,OAiBJ,OAAO/E,ED1rBMwS,MA5Df,SAAyBoE,EAAIC,QACdlZ,IAATkZ,IAAoBA,EAAO,IAE/B,IAkBIC,EAlBAC,EAAWH,GAAMA,EAAGI,MAAM,MAAS,GACnCC,EAAaJ,GAAQA,EAAKG,MAAM,MAAS,GAEzCE,EAAUN,GAAM1F,EAAW0F,GAC3BO,EAAYN,GAAQ3F,EAAW2F,GAC/BO,EAAaF,GAAWC,EAW5B,GATIP,GAAM1F,EAAW0F,GAEnBK,EAAYF,EACHA,EAAQrd,SAEjBud,EAAUpO,MACVoO,EAAYA,EAAUI,OAAON,KAG1BE,EAAUvd,OAAQ,MAAO,IAG9B,GAAIud,EAAUvd,OAAQ,CACpB,IAAI4d,EAAOL,EAAUA,EAAUvd,OAAS,GACxCod,EAA4B,MAATQ,GAAyB,OAATA,GAA0B,KAATA,OAEpDR,GAAmB,EAIrB,IADA,IAAIS,EAAK,EACA/d,EAAIyd,EAAUvd,OAAQF,GAAK,EAAGA,IAAK,CAC1C,IAAIge,EAAOP,EAAUzd,GAER,MAATge,EACFpG,EAAU6F,EAAWzd,GACH,OAATge,GACTpG,EAAU6F,EAAWzd,GACrB+d,KACSA,IACTnG,EAAU6F,EAAWzd,GACrB+d,KAIJ,IAAKH,EAAY,KAAOG,IAAMA,EAAIN,EAAUQ,QAAQ,OAGlDL,GACiB,KAAjBH,EAAU,IACRA,EAAU,IAAO/F,EAAW+F,EAAU,KAExCA,EAAUQ,QAAQ,IAEpB,IAAIxE,EAASgE,EAAUS,KAAK,KAI5B,OAFIZ,GAA0C,MAAtB7D,EAAOvB,QAAQ,KAAYuB,GAAU,KAEtDA,GE3DMyC,EAVf,SAAmBiC,GACf,IAAIA,EAIA,MAAM,IAAItb,MANL,qBDDb,kCAwLA,IAAIoZ,IAAiC,oBAAXjW,SAA0BA,OAAOpE,WAAYoE,OAAOpE,SAASQ,eAiTnFoa,EAAiB,CACnB4B,SAAU,CACRlD,WAAY,SAAoBxU,GAC9B,MAA0B,MAAnBA,EAAKiR,OAAO,GAAajR,EAAO,KAAOuR,EAAkBvR,IAElEiU,WAAY,SAAoBjU,GAC9B,MAA0B,MAAnBA,EAAKiR,OAAO,GAAajR,EAAKwR,OAAO,GAAKxR,IAGrD2X,QAAS,CACPnD,WAAYjD,EACZ0C,WAAY3C,GAEdsG,MAAO,CACLpD,WAAYlD,EACZ2C,WAAY3C,K,kDE/eC,iBANf,SAAc5R,GACb,uBACCA,EAAI,EAAQ,UACZ","file":"bundle.f77a1.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\t0: 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\t0: 0\n \t};\n\n\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"\" + ({\"2\":\"route-fisica\",\"3\":\"route-home\",\"4\":\"route-mingwinstall\",\"5\":\"route-statistica\",\"6\":\"route-vldigeometria\"}[chunkId]||chunkId) + \".chunk.\" + {\"2\":\"823c8\",\"3\":\"b306e\",\"4\":\"4b543\",\"5\":\"0864e\",\"6\":\"5dcf1\"}[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 = {\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":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 = \"\" + ({\"2\":\"route-fisica\",\"3\":\"route-home\",\"4\":\"route-mingwinstall\",\"5\":\"route-statistica\",\"6\":\"route-vldigeometria\"}[chunkId]||chunkId) + \".chunk.\" + {\"2\":\"98137\",\"3\":\"0c2c0\",\"4\":\"1d3c8\",\"5\":\"57ea3\",\"6\":\"5dea5\"}[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 \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.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\t\timport Async from \"../../node_modules/@preact/async-loader/async-legacy.js\";\n\n\t\tfunction load(cb) {\n\t\t\trequire.ensure([], function (require) {\n\t\t\t\tcb( require(\"!!../../node_modules/babel-loader/lib/index.js??ref--4!./vldigeometria.js\") );\n\t\t\t}, \"route-vldigeometria\");\n\t\t}\n\n\t\texport default Async(load);\n\t","\n\t\timport Async from \"../../node_modules/@preact/async-loader/async-legacy.js\";\n\n\t\tfunction load(cb) {\n\t\t\trequire.ensure([], function (require) {\n\t\t\t\tcb( require(\"!!../../node_modules/babel-loader/lib/index.js??ref--4!./statistica.js\") );\n\t\t\t}, \"route-statistica\");\n\t\t}\n\n\t\texport default Async(load);\n\t","\n\t\timport Async from \"../../node_modules/@preact/async-loader/async-legacy.js\";\n\n\t\tfunction load(cb) {\n\t\t\trequire.ensure([], function (require) {\n\t\t\t\tcb( require(\"!!../../node_modules/babel-loader/lib/index.js??ref--4!./mingwinstall.js\") );\n\t\t\t}, \"route-mingwinstall\");\n\t\t}\n\n\t\texport default Async(load);\n\t","import { Component } from 'preact';\nimport Router from 'preact-router';\nimport Home from './routes/home';\nimport Fisica from './routes/fisica';\nimport VlDiGeometria from './routes/vldigeometria';\nimport MingwInstall from './routes/mingwinstall';\nimport Copyright from './components/copyright';\nimport Statistica from './routes/statistica';\nimport _style from './index.css';\nimport _manifest from './meta/manifest.json';\nimport _cname from './meta/CNAME';\nimport _nojekyll from './meta/.nojekyll';\nimport {createHashHistory} from \"history\";\n\n// noinspection JSUnusedGlobalSymbols\nexport default class App extends Component {\n\trender() {\n\t\treturn (\n\t\t\t
\n\t\t\t\t

Appuntiweb di Steffo

\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t);\n\t}\n}\n","import style from './copyright.css';\r\nimport { Component } from 'preact';\r\n\r\nexport default class Copyright extends Component {\r\n\trender() {\r\n\t\treturn
© 2019 - Stefano Pigozzi - CC BY-SA 4.0 - Codice sorgente
;\r\n\t}\r\n}","import { h, Component } from 'preact';\n\nexport default function(req) {\n\tfunction Async() {\n\t\tComponent.call(this);\n\n\t\tlet b, old;\n\t\tthis.componentWillMount = () => {\n\t\t\tb = this.base = this.nextBase || this.__b; // short circuits 1st render\n\t\t\treq(m => {\n\t\t\t\tthis.setState({ child: m.default || m });\n\t\t\t});\n\t\t};\n\n\t\tthis.shouldComponentUpdate = (_, nxt) => {\n\t\t\tnxt = nxt.child === void 0;\n\t\t\tif (nxt && old === void 0 && b) {\n\t\t\t\t// Node.TEXT_NODE\n\t\t\t\tif (b.nodeType === 3) {\n\t\t\t\t\told = b.data;\n\t\t\t\t} else {\n\t\t\t\t\told = h(b.nodeName, {\n\t\t\t\t\t\tdangerouslySetInnerHTML: { __html: b.innerHTML },\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\told = ''; // dump it\n\t\t\t}\n\t\t\treturn !nxt;\n\t\t};\n\n\t\tthis.render = (p, s) => (s.child ? h(s.child, p) : old);\n\t}\n\t(Async.prototype = new Component()).constructor = Async;\n\treturn Async;\n}\n","\n\t\timport Async from \"../../node_modules/@preact/async-loader/async-legacy.js\";\n\n\t\tfunction load(cb) {\n\t\t\trequire.ensure([], function (require) {\n\t\t\t\tcb( require(\"!!../../node_modules/babel-loader/lib/index.js??ref--4!./home.js\") );\n\t\t\t}, \"route-home\");\n\t\t}\n\n\t\texport default Async(load);\n\t","/**\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 * Remove a child node from its parent if attached. This is a workaround for\n * IE11 which doesn't support `Element.prototype.remove()`. Using this function\n * is smaller than including a dedicated polyfill.\n * @param {Node} node The node to remove\n */\nexport function removeNode(node) {\n\tlet parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n","import { cloneElement, createElement, Component, toChildArray } from 'preact';\nimport { exec, prepareVNodeForRanking, assign, pathRankSort } from './util';\n\nlet customHistory = null;\n\nconst ROUTERS = [];\n\nconst subscribers = [];\n\nconst EMPTY = {};\n\nfunction setUrl(url, type='push') {\n\tif (customHistory && customHistory[type]) {\n\t\tcustomHistory[type](url);\n\t}\n\telse if (typeof history!=='undefined' && history[type+'State']) {\n\t\thistory[type+'State'](null, null, url);\n\t}\n}\n\n\nfunction getCurrentUrl() {\n\tlet url;\n\tif (customHistory && customHistory.location) {\n\t\turl = customHistory.location;\n\t}\n\telse if (customHistory && customHistory.getCurrentLocation) {\n\t\turl = customHistory.getCurrentLocation();\n\t}\n\telse {\n\t\turl = typeof location!=='undefined' ? location : EMPTY;\n\t}\n\treturn `${url.pathname || ''}${url.search || ''}`;\n}\n\n\n\nfunction route(url, replace=false) {\n\tif (typeof url!=='string' && url.url) {\n\t\treplace = url.replace;\n\t\turl = url.url;\n\t}\n\n\t// only push URL into history if we can handle it\n\tif (canRoute(url)) {\n\t\tsetUrl(url, replace ? 'replace' : 'push');\n\t}\n\n\treturn routeTo(url);\n}\n\n\n/** Check if the given URL can be handled by any router instances. */\nfunction canRoute(url) {\n\tfor (let i=ROUTERS.length; i--; ) {\n\t\tif (ROUTERS[i].canRoute(url)) return true;\n\t}\n\treturn false;\n}\n\n\n/** Tell all router instances to handle the given URL. */\nfunction routeTo(url) {\n\tlet didRoute = false;\n\tfor (let i=0; i {\n\t\t\t\trouteTo(getCurrentUrl());\n\t\t\t});\n\t\t}\n\t\taddEventListener('click', delegateLinkHandler);\n\t}\n\teventListenersInitialized = true;\n}\n\n\nclass Router extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tif (props.history) {\n\t\t\tcustomHistory = props.history;\n\t\t}\n\n\t\tthis.state = {\n\t\t\turl: props.url || getCurrentUrl()\n\t\t};\n\n\t\tinitEventListeners();\n\t}\n\n\tshouldComponentUpdate(props) {\n\t\tif (props.static!==true) return true;\n\t\treturn props.url!==this.props.url || props.onChange!==this.props.onChange;\n\t}\n\n\t/** Check if the given URL can be matched against any children */\n\tcanRoute(url) {\n\t\tconst children = toChildArray(this.props.children);\n\t\treturn this.getMatchingChildren(children, url, false).length > 0;\n\t}\n\n\t/** Re-render children with a new URL to match against. */\n\trouteTo(url) {\n\t\tthis.setState({ url });\n\n\t\tconst didRoute = this.canRoute(url);\n\n\t\t// trigger a manual re-route if we're not in the middle of an update:\n\t\tif (!this.updating) this.forceUpdate();\n\n\t\treturn didRoute;\n\t}\n\n\tcomponentWillMount() {\n\t\tROUTERS.push(this);\n\t\tthis.updating = true;\n\t}\n\n\tcomponentDidMount() {\n\t\tif (customHistory) {\n\t\t\tthis.unlisten = customHistory.listen((location) => {\n\t\t\t\tthis.routeTo(`${location.pathname || ''}${location.search || ''}`);\n\t\t\t});\n\t\t}\n\t\tthis.updating = false;\n\t}\n\n\tcomponentWillUnmount() {\n\t\tif (typeof this.unlisten==='function') this.unlisten();\n\t\tROUTERS.splice(ROUTERS.indexOf(this), 1);\n\t}\n\n\tcomponentWillUpdate() {\n\t\tthis.updating = true;\n\t}\n\n\tcomponentDidUpdate() {\n\t\tthis.updating = false;\n\t}\n\n\tgetMatchingChildren(children, url, invoke) {\n\t\treturn children\n\t\t\t.filter(prepareVNodeForRanking)\n\t\t\t.sort(pathRankSort)\n\t\t\t.map( vnode => {\n\t\t\t\tlet matches = exec(url, vnode.props.path, vnode.props);\n\t\t\t\tif (matches) {\n\t\t\t\t\tif (invoke !== false) {\n\t\t\t\t\t\tlet newProps = { url, matches };\n\t\t\t\t\t\tassign(newProps, matches);\n\t\t\t\t\t\tdelete newProps.ref;\n\t\t\t\t\t\tdelete newProps.key;\n\t\t\t\t\t\treturn cloneElement(vnode, newProps);\n\t\t\t\t\t}\n\t\t\t\t\treturn vnode;\n\t\t\t\t}\n\t\t\t}).filter(Boolean);\n\t}\n\n\trender({ children, onChange }, { url }) {\n\t\tlet active = this.getMatchingChildren(toChildArray(children), url, true);\n\n\t\tlet current = active[0] || null;\n\n\t\tlet previous = this.previousUrl;\n\t\tif (url!==previous) {\n\t\t\tthis.previousUrl = url;\n\t\t\tif (typeof onChange==='function') {\n\t\t\t\tonChange({\n\t\t\t\t\trouter: this,\n\t\t\t\t\turl,\n\t\t\t\t\tprevious,\n\t\t\t\t\tactive,\n\t\t\t\t\tcurrent\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\treturn current;\n\t}\n}\n\nconst Link = (props) => (\n\tcreateElement('a', assign({ onClick: handleLinkClick }, props))\n);\n\nconst Route = props => createElement(props.component, props);\n\nRouter.subscribers = subscribers;\nRouter.getCurrentUrl = getCurrentUrl;\nRouter.route = route;\nRouter.Router = Router;\nRouter.Route = Route;\nRouter.Link = Link;\nRouter.exec = exec;\n\nexport { subscribers, getCurrentUrl, route, Router, Route, Link, exec };\nexport default Router;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"copyright\":\"copyright__2FTnU\"};","import options from './options';\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\ti;\n\tfor (i in props) {\n\t\tif (i !== 'key' && i !== 'ref') normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 3) {\n\t\tchildren = [children];\n\t\t// https://github.com/preactjs/preact/issues/1916\n\t\tfor (i = 3; i < arguments.length; i++) {\n\t\t\tchildren.push(arguments[i]);\n\t\t}\n\t}\n\tif (children != null) {\n\t\tnormalizedProps.children = 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(\n\t\ttype,\n\t\tnormalizedProps,\n\t\tprops && props.key,\n\t\tprops && props.ref\n\t);\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) {\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\tconstructor: undefined\n\t};\n\n\tif (options.vnode) options.vnode(vnode);\n\n\treturn vnode;\n}\n\nexport function createRef() {\n\treturn {};\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 * @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 !== 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\tupdate = update(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 * @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\tlet newDom = diff(\n\t\t\tparentDom,\n\t\t\tvnode,\n\t\t\tassign({}, vnode),\n\t\t\tcomponent._context,\n\t\t\tparentDom.ownerSVGElement !== undefined,\n\t\t\tnull,\n\t\t\tcommitQueue,\n\t\t\toldDom == null ? getDomSibling(vnode) : oldDom\n\t\t);\n\t\tcommitRoot(commitQueue, vnode);\n\n\t\tif (newDom != 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 q = [];\n\n/**\n * Asynchronously schedule a callback\n * @type {(cb: () => void) => void}\n */\n/* istanbul ignore next */\n// Note the following line isn't tree-shaken by rollup cuz of rollup/rollup#2566\nconst defer =\n\ttypeof Promise == 'function'\n\t\t? Promise.prototype.then.bind(Promise.resolve())\n\t\t: setTimeout;\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 && (c._dirty = true) && q.push(c) === 1) ||\n\t\tprevDebounce !== options.debounceRendering\n\t) {\n\t\tprevDebounce = options.debounceRendering;\n\t\t(prevDebounce || defer)(process);\n\t}\n}\n\n/** Flush the render queue by rerendering all queued components */\nfunction process() {\n\tlet p;\n\tq.sort((a, b) => b._vnode._depth - a._vnode._depth);\n\twhile ((p = q.pop())) {\n\t\t// forceUpdate's callback argument is reused here to indicate a non-forced update.\n\t\tif (p._dirty) renderComponent(p);\n\t}\n}\n","import { diff, unmount, applyRef } from './index';\nimport { createVNode } from '../create-element';\nimport { EMPTY_OBJ, EMPTY_ARR } from '../constants';\nimport { removeNode } from '../util';\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').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} context The current context object\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 {Node | Text} 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\tnewParentVNode,\n\toldParentVNode,\n\tcontext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet i, j, oldVNode, newDom, sibDom, 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\t// Only in very specific places should this logic be invoked (top level `render` and `diffElementNodes`).\n\t// I'm using `EMPTY_OBJ` to signal when `diffChildren` is invoked in these situations. I can't use `null`\n\t// for this purpose, because `null` is a valid value for `oldDom` which can mean to skip to this logic\n\t// (e.g. if mounting a new tree in which the old DOM should be ignored (usually for Fragments).\n\tif (oldDom == EMPTY_OBJ) {\n\t\tif (excessDomChildren != null) {\n\t\t\toldDom = excessDomChildren[0];\n\t\t} else if (oldChildrenLength) {\n\t\t\toldDom = getDomSibling(oldParentVNode, 0);\n\t\t} else {\n\t\t\toldDom = null;\n\t\t}\n\t}\n\n\ti = 0;\n\tnewParentVNode._children = toChildArray(\n\t\tnewParentVNode._children,\n\t\tchildVNode => {\n\t\t\tif (childVNode != null) {\n\t\t\t\tchildVNode._parent = newParentVNode;\n\t\t\t\tchildVNode._depth = newParentVNode._depth + 1;\n\n\t\t\t\t// Check if we find a corresponding element in oldChildren.\n\t\t\t\t// If found, delete the array item by setting to `undefined`.\n\t\t\t\t// We use `undefined`, as `null` is reserved for empty placeholders\n\t\t\t\t// (holes).\n\t\t\t\toldVNode = oldChildren[i];\n\n\t\t\t\tif (\n\t\t\t\t\toldVNode === null ||\n\t\t\t\t\t(oldVNode &&\n\t\t\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\t\t\tchildVNode.type === oldVNode.type)\n\t\t\t\t) {\n\t\t\t\t\toldChildren[i] = undefined;\n\t\t\t\t} else {\n\t\t\t\t\t// Either oldVNode === undefined or oldChildrenLength > 0,\n\t\t\t\t\t// so after this loop oldVNode == null or oldVNode is a valid value.\n\t\t\t\t\tfor (j = 0; j < oldChildrenLength; j++) {\n\t\t\t\t\t\toldVNode = oldChildren[j];\n\t\t\t\t\t\t// If childVNode is unkeyed, we only match similarly unkeyed nodes, otherwise we match by key.\n\t\t\t\t\t\t// We always match by type (in either case).\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\toldVNode &&\n\t\t\t\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\t\t\t\tchildVNode.type === oldVNode.type\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\toldChildren[j] = undefined;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\toldVNode = null;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\toldVNode = oldVNode || EMPTY_OBJ;\n\n\t\t\t\t// Morph the old element into the new one, but don't append it to the dom yet\n\t\t\t\tnewDom = diff(\n\t\t\t\t\tparentDom,\n\t\t\t\t\tchildVNode,\n\t\t\t\t\toldVNode,\n\t\t\t\t\tcontext,\n\t\t\t\t\tisSvg,\n\t\t\t\t\texcessDomChildren,\n\t\t\t\t\tcommitQueue,\n\t\t\t\t\toldDom,\n\t\t\t\t\tisHydrating\n\t\t\t\t);\n\n\t\t\t\tif ((j = childVNode.ref) && oldVNode.ref != j) {\n\t\t\t\t\tif (!refs) refs = [];\n\t\t\t\t\tif (oldVNode.ref) refs.push(oldVNode.ref, null, childVNode);\n\t\t\t\t\trefs.push(j, childVNode._component || newDom, childVNode);\n\t\t\t\t}\n\n\t\t\t\t// Only proceed if the vnode has not been unmounted by `diff()` above.\n\t\t\t\tif (newDom != null) {\n\t\t\t\t\tif (firstChildDom == null) {\n\t\t\t\t\t\tfirstChildDom = newDom;\n\t\t\t\t\t}\n\n\t\t\t\t\tlet nextDom;\n\t\t\t\t\tif (childVNode._nextDom !== undefined) {\n\t\t\t\t\t\t// Only Fragments or components that return Fragment like VNodes will\n\t\t\t\t\t\t// have a non-undefined _nextDom. Continue the diff from the sibling\n\t\t\t\t\t\t// of last DOM child of this child VNode\n\t\t\t\t\t\tnextDom = childVNode._nextDom;\n\n\t\t\t\t\t\t// Eagerly cleanup _nextDom. We don't need to persist the value because\n\t\t\t\t\t\t// it is only used by `diffChildren` to determine where to resume the diff after\n\t\t\t\t\t\t// diffing Components and Fragments. Once we store it the nextDOM local var, we\n\t\t\t\t\t\t// can clean up the property\n\t\t\t\t\t\tchildVNode._nextDom = undefined;\n\t\t\t\t\t} else if (\n\t\t\t\t\t\texcessDomChildren == oldVNode ||\n\t\t\t\t\t\tnewDom != oldDom ||\n\t\t\t\t\t\tnewDom.parentNode == null\n\t\t\t\t\t) {\n\t\t\t\t\t\t// NOTE: excessDomChildren==oldVNode above:\n\t\t\t\t\t\t// This is a compression of excessDomChildren==null && oldVNode==null!\n\t\t\t\t\t\t// The values only have the same type when `null`.\n\n\t\t\t\t\t\touter: if (oldDom == null || oldDom.parentNode !== parentDom) {\n\t\t\t\t\t\t\tparentDom.appendChild(newDom);\n\t\t\t\t\t\t\tnextDom = null;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// `j import('../internal').VNode} [callback]\n * A function to invoke for each child before it is added to the flattened list.\n * @param {Array} [flattened] An flat array of children to modify\n * @returns {import('../internal').VNode[]}\n */\nexport function toChildArray(children, callback, flattened) {\n\tif (flattened == null) flattened = [];\n\n\tif (children == null || typeof children === 'boolean') {\n\t\tif (callback) flattened.push(callback(null));\n\t} else if (Array.isArray(children)) {\n\t\tfor (let i = 0; i < children.length; i++) {\n\t\t\ttoChildArray(children[i], callback, flattened);\n\t\t}\n\t} else if (!callback) {\n\t\tflattened.push(children);\n\t} else if (typeof children === 'string' || typeof children === 'number') {\n\t\tflattened.push(callback(createVNode(null, children, null, null)));\n\t} else if (children._dom != null || children._component != null) {\n\t\tflattened.push(\n\t\t\tcallback(createVNode(children.type, children.props, children.key, null))\n\t\t);\n\t} else {\n\t\tflattened.push(callback(children));\n\t}\n\n\treturn flattened;\n}\n","import { IS_NON_DIMENSIONAL } from '../constants';\nimport options from '../options';\n\n/**\n * Diff the old and new properties of a VNode and apply changes to the DOM node\n * @param {import('../internal').PreactElement} dom The DOM node to apply\n * changes to\n * @param {object} newProps The new props\n * @param {object} oldProps The old props\n * @param {boolean} isSvg Whether or not this node is an SVG node\n * @param {boolean} hydrate Whether or not we are in hydration mode\n */\nexport function diffProps(dom, newProps, oldProps, isSvg, hydrate) {\n\tlet i;\n\n\tfor (i in oldProps) {\n\t\tif (!(i in newProps)) {\n\t\t\tsetProperty(dom, i, null, oldProps[i], isSvg);\n\t\t}\n\t}\n\n\tfor (i in newProps) {\n\t\tif (\n\t\t\t(!hydrate || typeof newProps[i] == 'function') &&\n\t\t\ti !== 'value' &&\n\t\t\ti !== 'checked' &&\n\t\t\toldProps[i] !== newProps[i]\n\t\t) {\n\t\t\tsetProperty(dom, i, newProps[i], oldProps[i], isSvg);\n\t\t}\n\t}\n}\n\nfunction setStyle(style, key, value) {\n\tif (key[0] === '-') {\n\t\tstyle.setProperty(key, value);\n\t} else if (\n\t\ttypeof value === 'number' &&\n\t\tIS_NON_DIMENSIONAL.test(key) === false\n\t) {\n\t\tstyle[key] = value + 'px';\n\t} else if (value == null) {\n\t\tstyle[key] = '';\n\t} else {\n\t\tstyle[key] = value;\n\t}\n}\n\n/**\n * Set a property value on a DOM node\n * @param {import('../internal').PreactElement} dom The DOM node to modify\n * @param {string} name The name of the property to set\n * @param {*} value The value to set the property to\n * @param {*} oldValue The old value the property had\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node or not\n */\nfunction setProperty(dom, name, value, oldValue, isSvg) {\n\tif (isSvg) {\n\t\tif (name === 'className') {\n\t\t\tname = 'class';\n\t\t}\n\t} else if (name === 'class') {\n\t\tname = 'className';\n\t}\n\n\tif (name === 'key' || name === 'children') {\n\t} else if (name === 'style') {\n\t\tconst s = dom.style;\n\n\t\tif (typeof value === 'string') {\n\t\t\ts.cssText = value;\n\t\t} else {\n\t\t\tif (typeof oldValue === 'string') {\n\t\t\t\ts.cssText = '';\n\t\t\t\toldValue = null;\n\t\t\t}\n\n\t\t\tif (oldValue) {\n\t\t\t\tfor (let i in oldValue) {\n\t\t\t\t\tif (!(value && i in value)) {\n\t\t\t\t\t\tsetStyle(s, i, '');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (value) {\n\t\t\t\tfor (let i in value) {\n\t\t\t\t\tif (!oldValue || value[i] !== oldValue[i]) {\n\t\t\t\t\t\tsetStyle(s, i, value[i]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// Benchmark for comparison: https://esbench.com/bench/574c954bdb965b9a00965ac6\n\telse if (name[0] === 'o' && name[1] === 'n') {\n\t\tlet useCapture = name !== (name = name.replace(/Capture$/, ''));\n\t\tlet nameLower = name.toLowerCase();\n\t\tname = (nameLower in dom ? nameLower : name).slice(2);\n\n\t\tif (value) {\n\t\t\tif (!oldValue) dom.addEventListener(name, eventProxy, useCapture);\n\t\t\t(dom._listeners || (dom._listeners = {}))[name] = value;\n\t\t} else {\n\t\t\tdom.removeEventListener(name, eventProxy, useCapture);\n\t\t}\n\t} else if (\n\t\tname !== 'list' &&\n\t\tname !== 'tagName' &&\n\t\t// HTMLButtonElement.form and HTMLInputElement.form are read-only but can be set using\n\t\t// setAttribute\n\t\tname !== 'form' &&\n\t\tname !== 'type' &&\n\t\tname !== 'size' &&\n\t\t!isSvg &&\n\t\tname in dom\n\t) {\n\t\tdom[name] = value == null ? '' : value;\n\t} else if (\n\t\ttypeof value !== 'function' &&\n\t\tname !== 'dangerouslySetInnerHTML'\n\t) {\n\t\tif (name !== (name = name.replace(/^xlink:?/, ''))) {\n\t\t\tif (value == null || value === false) {\n\t\t\t\tdom.removeAttributeNS(\n\t\t\t\t\t'http://www.w3.org/1999/xlink',\n\t\t\t\t\tname.toLowerCase()\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tdom.setAttributeNS(\n\t\t\t\t\t'http://www.w3.org/1999/xlink',\n\t\t\t\t\tname.toLowerCase(),\n\t\t\t\t\tvalue\n\t\t\t\t);\n\t\t\t}\n\t\t} else if (\n\t\t\tvalue == null ||\n\t\t\t(value === false &&\n\t\t\t\t// ARIA-attributes have a different notion of boolean values.\n\t\t\t\t// The value `false` is different from the attribute not\n\t\t\t\t// existing on the DOM, so we can't remove it. For non-boolean\n\t\t\t\t// ARIA-attributes we could treat false as a removal, but the\n\t\t\t\t// amount of exceptions would cost us too many bytes. On top of\n\t\t\t\t// that other VDOM frameworks also always stringify `false`.\n\t\t\t\t!/^ar/.test(name))\n\t\t) {\n\t\t\tdom.removeAttribute(name);\n\t\t} else {\n\t\t\tdom.setAttribute(name, value);\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](options.event ? options.event(e) : e);\n}\n","import { EMPTY_OBJ, EMPTY_ARR } from '../constants';\nimport { Component } from '../component';\nimport { Fragment } from '../create-element';\nimport { diffChildren } from './children';\nimport { diffProps } from './props';\nimport { assign, removeNode } 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} context The current context object\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 {Element | Text} 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\tcontext,\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\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 && context[tmp._id];\n\t\t\tlet cctx = 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: context;\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\tnewVNode._component = c = new newType(newProps, cctx); // eslint-disable-line new-cap\n\t\t\t\t} else {\n\t\t\t\t\tnewVNode._component = c = new Component(newProps, cctx);\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 = cctx;\n\t\t\t\tc._context = context;\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, cctx);\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t!c._force &&\n\t\t\t\t\tc.shouldComponentUpdate != null &&\n\t\t\t\t\tc.shouldComponentUpdate(newProps, c._nextState, cctx) === false\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\tc._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\tif (c._renderCallbacks.length) {\n\t\t\t\t\t\tcommitQueue.push(c);\n\t\t\t\t\t}\n\t\t\t\t\tfor (tmp = 0; tmp < newVNode._children.length; tmp++) {\n\t\t\t\t\t\tif (newVNode._children[tmp]) {\n\t\t\t\t\t\t\tnewVNode._children[tmp]._parent = newVNode;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\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, cctx);\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 = cctx;\n\t\t\tc.props = newProps;\n\t\t\tc.state = c._nextState;\n\n\t\t\tif ((tmp = options._render)) tmp(newVNode);\n\n\t\t\tc._dirty = false;\n\t\t\tc._vnode = newVNode;\n\t\t\tc._parentDom = parentDom;\n\n\t\t\ttmp = c.render(c.props, c.state, c.context);\n\t\t\tlet isTopLevelFragment =\n\t\t\t\ttmp != null && tmp.type == Fragment && tmp.key == null;\n\t\t\tnewVNode._children = isTopLevelFragment ? tmp.props.children : tmp;\n\n\t\t\tif (c.getChildContext != null) {\n\t\t\t\tcontext = assign(assign({}, context), 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\tdiffChildren(\n\t\t\t\tparentDom,\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tcontext,\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\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 {\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\tcontext,\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\toptions._catchError(e, newVNode, oldVNode);\n\t}\n\n\treturn newVNode._dom;\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\tcommitQueue = c._renderCallbacks;\n\t\t\tc._renderCallbacks = [];\n\t\t\tcommitQueue.some(cb => {\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} context 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\tcontext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\tisHydrating\n) {\n\tlet i;\n\tlet oldProps = oldVNode.props;\n\tlet newProps = newVNode.props;\n\n\t// Tracks entering and exiting SVG namespace when descending through the tree.\n\tisSvg = newVNode.type === 'svg' || isSvg;\n\n\tif (dom == null && excessDomChildren != null) {\n\t\tfor (i = 0; i < excessDomChildren.length; i++) {\n\t\t\tconst child = excessDomChildren[i];\n\n\t\t\tif (\n\t\t\t\tchild != null &&\n\t\t\t\t(newVNode.type === null\n\t\t\t\t\t? child.nodeType === 3\n\t\t\t\t\t: child.localName === newVNode.type)\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 (newVNode.type === null) {\n\t\t\treturn document.createTextNode(newProps);\n\t\t}\n\n\t\tdom = isSvg\n\t\t\t? document.createElementNS('http://www.w3.org/2000/svg', newVNode.type)\n\t\t\t: document.createElement(\n\t\t\t\t\tnewVNode.type,\n\t\t\t\t\tnewProps.is && { is: newProps.is }\n\t\t\t );\n\t\t// we created a new parent, so none of the previously attached children can be reused:\n\t\texcessDomChildren = null;\n\t}\n\n\tif (newVNode.type === null) {\n\t\tif (excessDomChildren != null) {\n\t\t\texcessDomChildren[excessDomChildren.indexOf(dom)] = null;\n\t\t}\n\n\t\tif (oldProps !== newProps && dom.data != newProps) {\n\t\t\tdom.data = newProps;\n\t\t}\n\t} else if (newVNode !== oldVNode) {\n\t\tif (excessDomChildren != null) {\n\t\t\texcessDomChildren[excessDomChildren.indexOf(dom)] = null;\n\t\t\texcessDomChildren = EMPTY_ARR.slice.call(dom.childNodes);\n\t\t}\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\tif (oldProps === EMPTY_OBJ) {\n\t\t\t\toldProps = {};\n\t\t\t\tfor (let 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 (!newHtml || !oldHtml || newHtml.__html != oldHtml.__html) {\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\tnewVNode._children = newVNode.props.children;\n\n\t\t// If the new vnode didn't have dangerouslySetInnerHTML, diff its children\n\t\tif (!newHtml) {\n\t\t\tdiffChildren(\n\t\t\t\tdom,\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tcontext,\n\t\t\t\tnewVNode.type === 'foreignObject' ? false : isSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\tEMPTY_OBJ,\n\t\t\t\tisHydrating\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\tnewProps.value !== undefined &&\n\t\t\t\tnewProps.value !== dom.value\n\t\t\t) {\n\t\t\t\tdom.value = newProps.value == null ? '' : newProps.value;\n\t\t\t}\n\t\t\tif (\n\t\t\t\t'checked' in newProps &&\n\t\t\t\tnewProps.checked !== undefined &&\n\t\t\t\tnewProps.checked !== dom.checked\n\t\t\t) {\n\t\t\t\tdom.checked = newProps.checked;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn dom;\n}\n\n/**\n * Invoke or update a ref, depending on whether it is a function or object ref.\n * @param {object|function} ref\n * @param {any} value\n * @param {import('../internal').VNode} vnode\n */\nexport function applyRef(ref, value, vnode) {\n\ttry {\n\t\tif (typeof ref == 'function') ref(value);\n\t\telse ref.current = value;\n\t} catch (e) {\n\t\toptions._catchError(e, vnode);\n\t}\n}\n\n/**\n * Unmount a virtual node from the tree and apply DOM changes\n * @param {import('../internal').VNode} vnode The virtual node to unmount\n * @param {import('../internal').VNode} parentVNode The parent of the VNode that\n * initiated the unmount\n * @param {boolean} [skipRemove] Flag that indicates that a parent node of the\n * current element is already detached from the DOM.\n */\nexport function unmount(vnode, parentVNode, skipRemove) {\n\tlet r;\n\tif (options.unmount) options.unmount(vnode);\n\n\tif ((r = vnode.ref)) {\n\t\tif (!r.current || r.current === vnode._dom) applyRef(r, null, parentVNode);\n\t}\n\n\tlet dom;\n\tif (!skipRemove && typeof vnode.type !== 'function') {\n\t\tskipRemove = (dom = vnode._dom) != null;\n\t}\n\n\t// Must be set to `undefined` to properly clean up `_nextDom`\n\t// for which `null` is a valid value. See comment in `create-element.js`\n\tvnode._dom = vnode._nextDom = undefined;\n\n\tif ((r = vnode._component) != null) {\n\t\tif (r.componentWillUnmount) {\n\t\t\ttry {\n\t\t\t\tr.componentWillUnmount();\n\t\t\t} catch (e) {\n\t\t\t\toptions._catchError(e, parentVNode);\n\t\t\t}\n\t\t}\n\n\t\tr.base = r._parentDom = null;\n\t}\n\n\tif ((r = vnode._children)) {\n\t\tfor (let i = 0; i < r.length; i++) {\n\t\t\tif (r[i]) unmount(r[i], parentVNode, skipRemove);\n\t\t}\n\t}\n\n\tif (dom != null) removeNode(dom);\n}\n\n/** The `.render()` method for a PFC backing instance. */\nfunction doRender(props, state, context) {\n\treturn this.constructor(props, context);\n}\n","import { EMPTY_OBJ, EMPTY_ARR } from './constants';\nimport { commitRoot, diff } from './diff/index';\nimport { createElement, Fragment } from './create-element';\nimport options from './options';\n\nconst IS_HYDRATE = EMPTY_OBJ;\n\n/**\n * Render a Preact virtual node into a DOM element\n * @param {import('./index').ComponentChild} vnode The virtual node to render\n * @param {import('./internal').PreactElement} parentDom The DOM element to\n * render into\n * @param {Element | Text} [replaceNode] Optional: Attempt to re-use an\n * existing DOM tree rooted at `replaceNode`\n */\nexport function render(vnode, parentDom, replaceNode) {\n\tif (options._root) options._root(vnode, parentDom);\n\n\t// We abuse the `replaceNode` parameter in `hydrate()` to signal if we\n\t// are in hydration mode or not by passing `IS_HYDRATE` instead of a\n\t// DOM element.\n\tlet isHydrating = replaceNode === IS_HYDRATE;\n\n\t// To be able to support calling `render()` multiple times on the same\n\t// DOM node, we need to obtain a reference to the previous tree. We do\n\t// this by assigning a new `_children` property to DOM nodes which points\n\t// to the last rendered tree. By default this property is not present, which\n\t// means that we are mounting a new tree for the first time.\n\tlet oldVNode = isHydrating\n\t\t? null\n\t\t: (replaceNode && replaceNode._children) || parentDom._children;\n\tvnode = createElement(Fragment, null, [vnode]);\n\n\t// List of effects that need to be called after diffing.\n\tlet commitQueue = [];\n\tdiff(\n\t\tparentDom,\n\t\t// Determine the new vnode tree and store it on the DOM element on\n\t\t// our custom `_children` property.\n\t\t((isHydrating ? parentDom : replaceNode || parentDom)._children = vnode),\n\t\toldVNode || EMPTY_OBJ,\n\t\tEMPTY_OBJ,\n\t\tparentDom.ownerSVGElement !== undefined,\n\t\treplaceNode && !isHydrating\n\t\t\t? [replaceNode]\n\t\t\t: oldVNode\n\t\t\t? null\n\t\t\t: EMPTY_ARR.slice.call(parentDom.childNodes),\n\t\tcommitQueue,\n\t\treplaceNode || EMPTY_OBJ,\n\t\tisHydrating\n\t);\n\n\t// Flush all queued effects\n\tcommitRoot(commitQueue, vnode);\n}\n\n/**\n * Update an existing DOM element with data from a Preact virtual node\n * @param {import('./index').ComponentChild} vnode The virtual node to render\n * @param {import('./internal').PreactElement} parentDom The DOM element to\n * update\n */\nexport function hydrate(vnode, parentDom) {\n\trender(vnode, parentDom, IS_HYDRATE);\n}\n","import { assign } from './util';\nimport { EMPTY_ARR } from './constants';\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 */\nexport function cloneElement(vnode, props) {\n\tprops = assign(assign({}, vnode.props), props);\n\tif (arguments.length > 2) props.children = EMPTY_ARR.slice.call(arguments, 2);\n\treturn createVNode(\n\t\tvnode.type,\n\t\tprops,\n\t\tprops.key || vnode.key,\n\t\tprops.ref || vnode.ref\n\t);\n}\n","import { enqueueRender } from './component';\n\nexport let i = 0;\n\nexport function createContext(defaultValue) {\n\tconst ctx = {};\n\n\tconst context = {\n\t\t_id: '__cC' + i++,\n\t\t_defaultValue: defaultValue,\n\t\tConsumer(props, context) {\n\t\t\treturn props.children(context);\n\t\t},\n\t\tProvider(props) {\n\t\t\tif (!this.getChildContext) {\n\t\t\t\tconst subs = [];\n\t\t\t\tthis.getChildContext = () => {\n\t\t\t\t\tctx[context._id] = this;\n\t\t\t\t\treturn ctx;\n\t\t\t\t};\n\t\t\t\tthis.shouldComponentUpdate = _props => {\n\t\t\t\t\tif (props.value !== _props.value) {\n\t\t\t\t\t\tsubs.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\t\t\t\t\t}\n\t\t\t\t};\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\told && old.call(c);\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn props.children;\n\t\t}\n\t};\n\n\tcontext.Consumer.contextType = context;\n\n\treturn context;\n}\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/i;\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","import { enqueueRender } from '../component';\n\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 */\nexport function _catchError(error, vnode) {\n\t/** @type {import('../internal').Component} */\n\tlet component, hasCaught;\n\n\tfor (; (vnode = vnode._parent); ) {\n\t\tif ((component = vnode._component) && !component._processingException) {\n\t\t\ttry {\n\t\t\t\tif (\n\t\t\t\t\tcomponent.constructor &&\n\t\t\t\t\tcomponent.constructor.getDerivedStateFromError != null\n\t\t\t\t) {\n\t\t\t\t\thasCaught = true;\n\t\t\t\t\tcomponent.setState(\n\t\t\t\t\t\tcomponent.constructor.getDerivedStateFromError(error)\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif (component.componentDidCatch != null) {\n\t\t\t\t\thasCaught = true;\n\t\t\t\t\tcomponent.componentDidCatch(error);\n\t\t\t\t}\n\n\t\t\t\tif (hasCaught)\n\t\t\t\t\treturn enqueueRender((component._pendingError = component));\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","/* 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\nif (process.env.NODE_ENV === 'development') {\n\t// enable preact devtools\n\trequire('preact/debug');\n\tif (process.env.RHL) {\n\t\t// enable hot loader\n\t\tconst hotLoader = interopDefault(require('react-hot-loader'));\n\t\thotLoader.preact(interopDefault(require('preact')));\n\t}\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\t// eslint-disable-next-line no-undef\n\t\tnavigator.serviceWorker.register(__webpack_public_path__ + 'sw-debug.js');\n\t} else if (process.env.ADD_SW && 'serviceWorker' in navigator) {\n\t\t// eslint-disable-next-line no-undef\n\t\tnavigator.serviceWorker.register(\n\t\t\t__webpack_public_path__ + (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\t// eslint-disable-next-line no-undef\n\tnavigator.serviceWorker.register(\n\t\t__webpack_public_path__ + (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 = JSON.parse(inlineDataElement.innerHTML).preRenderData;\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 doRender =\n\t\t\tprocess.env.NODE_ENV !== 'production' ||\n\t\t\troot.tagName === 'script' ||\n\t\t\t!hydrate\n\t\t\t\t? render\n\t\t\t\t: hydrate;\n\t\troot = doRender(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","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n throw new Error(prefix + \": \" + (message || ''));\n}\n\nexport default invariant;\n","\n\t\timport Async from \"../../node_modules/@preact/async-loader/async-legacy.js\";\n\n\t\tfunction load(cb) {\n\t\t\trequire.ensure([], function (require) {\n\t\t\t\tcb( require(\"!!../../node_modules/babel-loader/lib/index.js??ref--4!./fisica.js\") );\n\t\t\t}, \"route-fisica\");\n\t\t}\n\n\t\texport default Async(load);\n\t"],"sourceRoot":""}