mirror of
https://github.com/Steffo99/unisteffo.git
synced 2024-11-23 08:24:20 +00:00
1 line
No EOL
168 KiB
Text
Generated
1 line
No EOL
168 KiB
Text
Generated
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./routes/vldigeometria.js?971d","webpack:///./routes/apprendimentoSistemiArtificiali.js?75cd","webpack:///./routes/statistica.js?3c70","webpack:///./routes/mingwinstall.js?cec4","webpack:///./routes/calcoloNumerico.js?8c12","webpack:///./index.js","webpack:///./components/copyright.js","webpack:///../node_modules/@preact/async-loader/async-legacy.js","webpack:///./routes/basiDiDati.js?e91b","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:///./routes/ottimizzazioneLineare.js?deb9","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:///../src/component-stack.js","webpack:///../src/debug.js","webpack:///../src/devtools.js","webpack:///../src/check-props.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","1","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","original","_children","_parent","_depth","_dom","_nextDom","_component","_original","options","createRef","Fragment","context","getDomSibling","childIndex","sibling","updateParentDomPointers","enqueueRender","_dirty","rerenderQueue","rerenderCount","prevDebounce","debounceRendering","defer","process","queue","a","_vnode","some","commitQueue","oldVNode","newDom","oldDom","parentDom","_parentDom","diff","_globalContext","ownerSVGElement","commitRoot","diffChildren","newParentVNode","oldParentVNode","globalContext","isSvg","excessDomChildren","isHydrating","j","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","componentContext","newType","_diff","contextType","_id","_defaultValue","_processingException","_pendingError","doRender","sub","_renderCallbacks","_nextState","getDerivedStateFromProps","componentWillReceiveProps","_force","_render","getChildContext","getSnapshotBeforeUpdate","diffElementNodes","diffed","_catchError","root","_commit","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","CLI_DATA","init","_extends","source","apply","isAbsolute","charAt","spliceOne","list","index","k","pop","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","getDisplayName","displayName","getCurrentVNode","renderStack","isPossibleOwner","getOwnerStack","stack","next","_owner","reduce","acc","owner","__source","fileName","lineNumber","hasBabelPlugin","warn","serializeVNode","attrs","prop","toString","stringify","__PREACT_DEVTOOLS__","attachPreact","loggedTypeFailures","ownerStack","isWeakMapSupported","WeakMap","oldDiff","oldDiffed","oldRoot","oldRender","parent","setupComponentStack","oldBeforeDiff","oldVnode","oldCatchError","oldHook","_hook","warnedComponents","useEffect","useLayoutEffect","lazyPropTypes","_childDidSuspend","isValid","componentName","typeSpecs","values","getClosestDomNodeParent","propTypes","has","lazyVNode","set","keys","typeSpecName","comp","deprecatedAttributes","deprecatedProto","v","__self","setPrototypeOf","__hooks","hooks","_list","hook","_factory","_args"],"mappings":"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","file":"bundle.978dc.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t};\n\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t1: 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t1: 0\n \t};\n\n\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"\" + ({\"0\":\"route-apprendimentoSistemiArtificiali~route-ottimizzazioneLineare\",\"3\":\"route-apprendimentoSistemiArtificiali\",\"4\":\"route-basiDiDati\",\"5\":\"route-calcoloNumerico\",\"6\":\"route-fisica\",\"7\":\"route-home\",\"8\":\"route-mingwinstall\",\"9\":\"route-ottimizzazioneLineare\",\"10\":\"route-statistica\",\"11\":\"route-vldigeometria\"}[chunkId]||chunkId) + \".chunk.\" + {\"0\":\"1207d\",\"3\":\"c8ca0\",\"4\":\"7695b\",\"5\":\"dc993\",\"6\":\"0ea3c\",\"7\":\"70ddb\",\"8\":\"0e2f4\",\"9\":\"8fb86\",\"10\":\"71281\",\"11\":\"4b46b\"}[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 = {\"0\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"\" + ({\"0\":\"route-apprendimentoSistemiArtificiali~route-ottimizzazioneLineare\",\"3\":\"route-apprendimentoSistemiArtificiali\",\"4\":\"route-basiDiDati\",\"5\":\"route-calcoloNumerico\",\"6\":\"route-fisica\",\"7\":\"route-home\",\"8\":\"route-mingwinstall\",\"9\":\"route-ottimizzazioneLineare\",\"10\":\"route-statistica\",\"11\":\"route-vldigeometria\"}[chunkId]||chunkId) + \".chunk.\" + {\"0\":\"20404\",\"3\":\"31d6c\",\"4\":\"ef885\",\"5\":\"ef885\",\"6\":\"6cdb9\",\"7\":\"a50aa\",\"8\":\"4f81b\",\"9\":\"1b1e4\",\"10\":\"2600b\",\"11\":\"e95fc\"}[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!./apprendimentoSistemiArtificiali.js\") );\n\t\t\t}, \"route-apprendimentoSistemiArtificiali\");\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","\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!./calcoloNumerico.js\") );\n\t\t\t}, \"route-calcoloNumerico\");\n\t\t}\n\n\t\texport default Async(load);\n\t","import \"preact/debug\";\nimport { Component } from 'preact';\n\n// noinspection ES6UnusedImports\nimport _style from './index.less';\n// noinspection ES6UnusedImports\nimport _manifest from './meta/manifest.json';\n// noinspection ES6UnusedImports\nimport _cname from './meta/CNAME';\n// noinspection ES6UnusedImports\nimport _nojekyll from './meta/.nojekyll';\n\nimport Router from 'preact-router';\nimport {createHashHistory} from \"history\";\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 OttimizzazioneLineare from \"./routes/ottimizzazioneLineare\";\nimport BasiDiDati from './routes/basiDiDati';\nimport CalcoloNumerico from './routes/calcoloNumerico';\nimport ApprendimentoSistemiArtificiali from \"./routes/apprendimentoSistemiArtificiali\";\n\n// noinspection JSUnusedGlobalSymbols\nexport default class App extends Component {\n\trender() {\n\t\treturn (\n\t\t\t<div id=\"app\">\n\t\t\t\t<h1><a href=\"/\">Appuntiweb</a> <small>di <a href=\"https://steffo.eu/\">Steffo</a></small></h1>\n\t\t\t\t<Router history={createHashHistory()}>\n\t\t\t\t\t<Home path=\"/\"/>\n\t\t\t\t\t<Fisica path=\"/fisica\"/>\n\t\t\t\t\t<VlDiGeometria path=\"/vldigeometria\"/>\n\t\t\t\t\t<MingwInstall path=\"/mingwinstall\"/>\n\t\t\t\t\t<Statistica path=\"/statistica\"/>\n\t\t\t\t\t<OttimizzazioneLineare path=\"/ottimizzazionelineare\"/>\n\t\t\t\t\t<BasiDiDati path=\"/basididati\"/>\n\t\t\t\t\t<CalcoloNumerico path=\"/calcolonumerico\"/>\n\t\t\t\t\t<ApprendimentoSistemiArtificiali path={\"/apprendimentosistemiartificiali\"}/>\n\t\t\t\t</Router>\n\t\t\t\t<Copyright/>\n\t\t\t</div>\n\t\t);\n\t}\n}\n","import style from './copyright.css';\nimport { Component } from 'preact';\n\nexport default class Copyright extends Component {\n\trender() {\n\t\treturn <div class={style.copyright}>© 2019 - Stefano Pigozzi - <a href=\"https://creativecommons.org/licenses/by-sa/4.0/\">CC BY-SA 4.0</a> - <a href=\"https://github.com/Steffo99/appuntiweb\">Codice sorgente</a> - <a href={\"https://ko-fi.com/steffo\"}>Supportami</a></div>;\n\t}\n}\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!./basiDiDati.js\") );\n\t\t\t}, \"route-basiDiDati\");\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!./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<ROUTERS.length; i++) {\n\t\tif (ROUTERS[i].routeTo(url)===true) {\n\t\t\tdidRoute = true;\n\t\t}\n\t}\n\tfor (let i=subscribers.length; i--; ) {\n\t\tsubscribers[i](url);\n\t}\n\treturn didRoute;\n}\n\n\nfunction routeFromLink(node) {\n\t// only valid elements\n\tif (!node || !node.getAttribute) return;\n\n\tlet href = node.getAttribute('href'),\n\t\ttarget = node.getAttribute('target');\n\n\t// ignore links with targets and non-path URLs\n\tif (!href || !href.match(/^\\//g) || (target && !target.match(/^_?self$/i))) return;\n\n\t// attempt to route, if no match simply cede control to browser\n\treturn route(href);\n}\n\n\nfunction handleLinkClick(e) {\n\tif (e.ctrlKey || e.metaKey || e.altKey || e.shiftKey || e.button!==0) return;\n\trouteFromLink(e.currentTarget || e.target || this);\n\treturn prevent(e);\n}\n\n\nfunction prevent(e) {\n\tif (e) {\n\t\tif (e.stopImmediatePropagation) e.stopImmediatePropagation();\n\t\tif (e.stopPropagation) e.stopPropagation();\n\t\te.preventDefault();\n\t}\n\treturn false;\n}\n\n\nfunction delegateLinkHandler(e) {\n\t// ignore events the browser takes care of already:\n\tif (e.ctrlKey || e.metaKey || e.altKey || e.shiftKey || e.button!==0) return;\n\n\tlet t = e.target;\n\tdo {\n\t\tif (String(t.nodeName).toUpperCase()==='A' && t.getAttribute('href')) {\n\t\t\tif (t.hasAttribute('native')) return;\n\t\t\t// if link is handled by the router, prevent browser defaults\n\t\t\tif (routeFromLink(t)) {\n\t\t\t\treturn prevent(e);\n\t\t\t}\n\t\t}\n\t} while ((t=t.parentNode));\n}\n\n\nlet eventListenersInitialized = false;\n\nfunction initEventListeners() {\n\tif (eventListenersInitialized) return;\n\n\tif (typeof addEventListener==='function') {\n\t\tif (!customHistory) {\n\t\t\taddEventListener('popstate', () => {\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<import('.').ComponentChildren>} [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\tnull\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, original) {\n\t// V8 seems to be better at detecting type shapes if the object is allocated from the same call site\n\t// Do not inline into createElement and coerceToVNode!\n\tconst vnode = {\n\t\ttype,\n\t\tprops,\n\t\tkey,\n\t\tref,\n\t\t_children: null,\n\t\t_parent: null,\n\t\t_depth: 0,\n\t\t_dom: null,\n\t\t// _nextDom must be initialized to undefined b/c it will eventually\n\t\t// be set to dom.nextSibling which can return `null` and it is important\n\t\t// to be able to distinguish between an uninitialized _nextDom and\n\t\t// a _nextDom that has been set to `null`\n\t\t_nextDom: undefined,\n\t\t_component: null,\n\t\tconstructor: undefined,\n\t\t_original: original\n\t};\n\n\tif (original == null) vnode._original = vnode;\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\tconst oldVNode = assign({}, vnode);\n\t\toldVNode._original = oldVNode;\n\n\t\tlet newDom = diff(\n\t\t\tparentDom,\n\t\t\tvnode,\n\t\t\toldVNode,\n\t\t\tcomponent._globalContext,\n\t\t\tparentDom.ownerSVGElement !== undefined,\n\t\t\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<import('./internal').Component>}\n */\nlet rerenderQueue = [];\nlet rerenderCount = 0;\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 &&\n\t\t\t(c._dirty = true) &&\n\t\t\trerenderQueue.push(c) &&\n\t\t\t!rerenderCount++) ||\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 queue;\n\twhile ((rerenderCount = rerenderQueue.length)) {\n\t\tqueue = rerenderQueue.sort((a, b) => a._vnode._depth - b._vnode._depth);\n\t\trerenderQueue = [];\n\t\t// Don't update `renderCount` yet. Keep its value non-zero to prevent unnecessary\n\t\t// process() calls from getting scheduled while `queue` is still being consumed.\n\t\tqueue.some(c => {\n\t\t\tif (c._dirty) renderComponent(c);\n\t\t});\n\t}\n}\n","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} globalContext The current context object - modified by getChildContext\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {Array<import('../internal').PreactElement>} excessDomChildren\n * @param {Array<import('../internal').Component>} 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\tglobalContext,\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\tglobalContext,\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<oldChildrenLength; j+=2` is an alternative to `j++<oldChildrenLength/2`\n\t\t\t\t\t\t\tfor (\n\t\t\t\t\t\t\t\tsibDom = oldDom, j = 0;\n\t\t\t\t\t\t\t\t(sibDom = sibDom.nextSibling) && j < oldChildrenLength;\n\t\t\t\t\t\t\t\tj += 2\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tif (sibDom == newDom) {\n\t\t\t\t\t\t\t\t\tbreak outer;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tparentDom.insertBefore(newDom, oldDom);\n\t\t\t\t\t\t\tnextDom = oldDom;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Browsers will infer an option's `value` from `textContent` when\n\t\t\t\t\t\t// no value is present. This essentially bypasses our code to set it\n\t\t\t\t\t\t// later in `diff()`. It works fine in all browsers except for IE11\n\t\t\t\t\t\t// where it breaks setting `select.value`. There it will be always set\n\t\t\t\t\t\t// to an empty string. Re-applying an options value will fix that, so\n\t\t\t\t\t\t// there are probably some internal data structures that aren't\n\t\t\t\t\t\t// updated properly.\n\t\t\t\t\t\t//\n\t\t\t\t\t\t// To fix it we make sure to reset the inferred value, so that our own\n\t\t\t\t\t\t// value check in `diff()` won't be skipped.\n\t\t\t\t\t\tif (newParentVNode.type == 'option') {\n\t\t\t\t\t\t\tparentDom.value = '';\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// If we have pre-calculated the nextDOM node, use it. Else calculate it now\n\t\t\t\t\t// Strictly check for `undefined` here cuz `null` is a valid value of `nextDom`.\n\t\t\t\t\t// See more detail in create-element.js:createVNode\n\t\t\t\t\tif (nextDom !== undefined) {\n\t\t\t\t\t\toldDom = nextDom;\n\t\t\t\t\t} else {\n\t\t\t\t\t\toldDom = newDom.nextSibling;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (typeof newParentVNode.type == 'function') {\n\t\t\t\t\t\t// Because the newParentVNode is Fragment-like, we need to set it's\n\t\t\t\t\t\t// _nextDom property to the nextSibling of its last child DOM node.\n\t\t\t\t\t\t//\n\t\t\t\t\t\t// `oldDom` contains the correct value here because if the last child\n\t\t\t\t\t\t// is a Fragment-like, then oldDom has already been set to that child's _nextDom.\n\t\t\t\t\t\t// If the last child is a DOM VNode, then oldDom will be set to that DOM\n\t\t\t\t\t\t// node's nextSibling.\n\n\t\t\t\t\t\tnewParentVNode._nextDom = oldDom;\n\t\t\t\t\t}\n\t\t\t\t} else if (\n\t\t\t\t\toldDom &&\n\t\t\t\t\toldVNode._dom == oldDom &&\n\t\t\t\t\toldDom.parentNode != parentDom\n\t\t\t\t) {\n\t\t\t\t\t// The above condition is to handle null placeholders. See test in placeholder.test.js:\n\t\t\t\t\t// `efficiently replace null placeholders in parent rerenders`\n\t\t\t\t\toldDom = getDomSibling(oldVNode);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ti++;\n\t\t\treturn childVNode;\n\t\t}\n\t);\n\n\tnewParentVNode._dom = firstChildDom;\n\n\t// Remove children that are not part of any vnode.\n\tif (excessDomChildren != null && typeof newParentVNode.type != 'function') {\n\t\tfor (i = excessDomChildren.length; i--; ) {\n\t\t\tif (excessDomChildren[i] != null) removeNode(excessDomChildren[i]);\n\t\t}\n\t}\n\n\t// Remove remaining oldChildren if there are any.\n\tfor (i = oldChildrenLength; i--; ) {\n\t\tif (oldChildren[i] != null) unmount(oldChildren[i], oldChildren[i]);\n\t}\n\n\t// Set refs only after unmount\n\tif (refs) {\n\t\tfor (i = 0; i < refs.length; i++) {\n\t\t\tapplyRef(refs[i], refs[++i], refs[++i]);\n\t\t}\n\t}\n}\n\n/**\n * Flatten and loop through the children of a virtual node\n * @param {import('../index').ComponentChildren} children The unflattened\n * children of a virtual node\n * @param {(vnode: import('../internal').VNode) => import('../internal').VNode} [callback]\n * A function to invoke for each child before it is added to the flattened list.\n * @param {Array<import('../internal').VNode | string | number>} [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, children)));\n\t} else if (children._dom != null || children._component != null) {\n\t\tflattened.push(\n\t\t\tcallback(\n\t\t\t\tcreateVNode(\n\t\t\t\t\tchildren.type,\n\t\t\t\t\tchildren.props,\n\t\t\t\t\tchildren.key,\n\t\t\t\t\tnull,\n\t\t\t\t\tchildren._original\n\t\t\t\t)\n\t\t\t)\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 !== 'children' && i !== 'key' && !(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 !== 'children' &&\n\t\t\ti !== 'key' &&\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\tlet s, useCapture, nameLower;\n\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 === 'style') {\n\t\ts = 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\tuseCapture = name !== (name = name.replace(/Capture$/, ''));\n\t\tnameLower = 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 (typeof value != 'function' && name !== 'dangerouslySetInnerHTML') {\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} globalContext The current context object. Modified by getChildContext\n * @param {boolean} isSvg Whether or not this element is an SVG node\n * @param {Array<import('../internal').PreactElement>} excessDomChildren\n * @param {Array<import('../internal').Component>} 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\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet tmp,\n\t\tnewType = newVNode.type;\n\n\t// When passing through createElement it assigns the object\n\t// constructor as undefined. This to prevent JSON-injection.\n\tif (newVNode.constructor !== undefined) return null;\n\n\tif ((tmp = options._diff)) tmp(newVNode);\n\n\ttry {\n\t\touter: if (typeof newType == 'function') {\n\t\t\tlet c, isNew, oldProps, oldState, snapshot, clearProcessingException;\n\t\t\tlet newProps = newVNode.props;\n\n\t\t\t// Necessary for createContext api. Setting this property will pass\n\t\t\t// the context value as `this.context` just for this component.\n\t\t\ttmp = newType.contextType;\n\t\t\tlet provider = tmp && globalContext[tmp._id];\n\t\t\tlet componentContext = tmp\n\t\t\t\t? provider\n\t\t\t\t\t? provider.props.value\n\t\t\t\t\t: tmp._defaultValue\n\t\t\t\t: globalContext;\n\n\t\t\t// Get component and set it to `c`\n\t\t\tif (oldVNode._component) {\n\t\t\t\tc = newVNode._component = oldVNode._component;\n\t\t\t\tclearProcessingException = c._processingException = c._pendingError;\n\t\t\t} else {\n\t\t\t\t// Instantiate the new component\n\t\t\t\tif ('prototype' in newType && newType.prototype.render) {\n\t\t\t\t\tnewVNode._component = c = new newType(newProps, componentContext); // eslint-disable-line new-cap\n\t\t\t\t} else {\n\t\t\t\t\tnewVNode._component = c = new Component(newProps, componentContext);\n\t\t\t\t\tc.constructor = newType;\n\t\t\t\t\tc.render = doRender;\n\t\t\t\t}\n\t\t\t\tif (provider) provider.sub(c);\n\n\t\t\t\tc.props = newProps;\n\t\t\t\tif (!c.state) c.state = {};\n\t\t\t\tc.context = componentContext;\n\t\t\t\tc._globalContext = globalContext;\n\t\t\t\tisNew = c._dirty = true;\n\t\t\t\tc._renderCallbacks = [];\n\t\t\t}\n\n\t\t\t// Invoke getDerivedStateFromProps\n\t\t\tif (c._nextState == null) {\n\t\t\t\tc._nextState = c.state;\n\t\t\t}\n\t\t\tif (newType.getDerivedStateFromProps != null) {\n\t\t\t\tif (c._nextState == c.state) {\n\t\t\t\t\tc._nextState = assign({}, c._nextState);\n\t\t\t\t}\n\n\t\t\t\tassign(\n\t\t\t\t\tc._nextState,\n\t\t\t\t\tnewType.getDerivedStateFromProps(newProps, c._nextState)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\toldProps = c.props;\n\t\t\toldState = c.state;\n\n\t\t\t// Invoke pre-render lifecycle methods\n\t\t\tif (isNew) {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tc.componentWillMount != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillMount();\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidMount != null) {\n\t\t\t\t\tc._renderCallbacks.push(c.componentDidMount);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tnewProps !== oldProps &&\n\t\t\t\t\tc.componentWillReceiveProps != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillReceiveProps(newProps, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t(!c._force &&\n\t\t\t\t\t\tc.shouldComponentUpdate != null &&\n\t\t\t\t\t\tc.shouldComponentUpdate(\n\t\t\t\t\t\t\tnewProps,\n\t\t\t\t\t\t\tc._nextState,\n\t\t\t\t\t\t\tcomponentContext\n\t\t\t\t\t\t) === false) ||\n\t\t\t\t\t(newVNode._original === oldVNode._original && !c._processingException)\n\t\t\t\t) {\n\t\t\t\t\tc.props = newProps;\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t\t// More info about this here: https://gist.github.com/JoviDeCroock/bec5f2ce93544d2e6070ef8e0036e4e8\n\t\t\t\t\tif (newVNode._original !== oldVNode._original) c._dirty = false;\n\t\t\t\t\tc._vnode = newVNode;\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\t\t\tcommitQueue.push(c);\n\t\t\t\t\t}\n\n\t\t\t\t\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\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\n\t\t\t\tif (c.componentWillUpdate != null) {\n\t\t\t\t\tc.componentWillUpdate(newProps, c._nextState, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidUpdate != null) {\n\t\t\t\t\tc._renderCallbacks.push(() => {\n\t\t\t\t\t\tc.componentDidUpdate(oldProps, oldState, snapshot);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tc.context = componentContext;\n\t\t\tc.props = newProps;\n\t\t\tc.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\n\t\t\t\t? tmp.props.children\n\t\t\t\t: Array.isArray(tmp)\n\t\t\t\t? tmp\n\t\t\t\t: [tmp];\n\n\t\t\tif (c.getChildContext != null) {\n\t\t\t\tglobalContext = assign(assign({}, globalContext), c.getChildContext());\n\t\t\t}\n\n\t\t\tif (!isNew && c.getSnapshotBeforeUpdate != null) {\n\t\t\t\tsnapshot = c.getSnapshotBeforeUpdate(oldProps, oldState);\n\t\t\t}\n\n\t\t\tdiffChildren(\n\t\t\t\tparentDom,\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\toldDom,\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\tc.base = newVNode._dom;\n\n\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\tcommitQueue.push(c);\n\t\t\t}\n\n\t\t\tif (clearProcessingException) {\n\t\t\t\tc._pendingError = c._processingException = null;\n\t\t\t}\n\n\t\t\tc._force = false;\n\t\t} else if (\n\t\t\texcessDomChildren == null &&\n\t\t\tnewVNode._original === oldVNode._original\n\t\t) {\n\t\t\tnewVNode._children = oldVNode._children;\n\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t} else {\n\t\t\tnewVNode._dom = diffElementNodes(\n\t\t\t\toldVNode._dom,\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\tisHydrating\n\t\t\t);\n\t\t}\n\n\t\tif ((tmp = options.diffed)) tmp(newVNode);\n\t} catch (e) {\n\t\tnewVNode._original = null;\n\t\toptions._catchError(e, newVNode, oldVNode);\n\t}\n\n\treturn newVNode._dom;\n}\n\n/**\n * @param {Array<import('../internal').Component>} 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} globalContext The current context object\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {*} excessDomChildren\n * @param {Array<import('../internal').Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @returns {import('../internal').PreactElement}\n */\nfunction diffElementNodes(\n\tdom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\tisHydrating\n) {\n\tlet 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 (excessDomChildren != null) {\n\t\tfor (i = 0; i < excessDomChildren.length; i++) {\n\t\t\tconst child = excessDomChildren[i];\n\n\t\t\t// if newVNode matches an element in excessDomChildren or the `dom`\n\t\t\t// argument matches an element in excessDomChildren, remove it from\n\t\t\t// excessDomChildren so it isn't later removed in diffChildren\n\t\t\tif (\n\t\t\t\tchild != 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\t\tdom == child)\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\t// we are creating a new node, so we can assume this is a new subtree (in case we are hydrating), this deopts the hydrate\n\t\tisHydrating = false;\n\t}\n\n\tif (newVNode.type === null) {\n\t\tif (oldProps !== newProps && dom.data != newProps) {\n\t\t\tdom.data = newProps;\n\t\t}\n\t} else {\n\t\tif (excessDomChildren != 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\tglobalContext,\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<import('./index').ComponentChildren>} rest Any additional arguments will be used as replacement children.\n * @returns {import('./internal').VNode}\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\tnull\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\n\t\t\t\tthis.shouldComponentUpdate = _props => {\n\t\t\t\t\tif (this.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\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\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 ELEMENT_NODE = 1;\nexport const DOCUMENT_NODE = 9;\nexport const DOCUMENT_FRAGMENT_NODE = 11;\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","\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!./ottimizzazioneLineare.js\") );\n\t\t\t}, \"route-ottimizzazioneLineare\");\n\t\t}\n\n\t\texport default Async(load);\n\t","/* global __webpack_public_path__ */\n\nimport * as Preact from 'preact';\nconst { h, render, hydrate } = Preact;\n\nconst interopDefault = m => (m && m.default ? m.default : m);\n\nconst normalizeURL = url => (url[url.length - 1] === '/' ? url : url + '/');\n\nif (process.env.NODE_ENV === 'development') {\n\t// enable preact devtools\n\trequire('preact/debug');\n\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 =\n\t\t\t\tJSON.parse(inlineDataElement.innerHTML).preRenderData || 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 currentURL = preRenderData.url ? normalizeURL(preRenderData.url) : '';\n\t\tconst canHydrate =\n\t\t\tprocess.env.PRERENDER &&\n\t\t\tprocess.env.NODE_ENV === 'production' &&\n\t\t\thydrate &&\n\t\t\tcurrentURL === location.pathname;\n\t\tconst doRender = canHydrate ? hydrate : render;\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","import { options, Fragment } from 'preact';\n\n/**\n * Get human readable name of the component/dom node\n * @param {import('./internal').VNode} vnode\n * @param {import('./internal').VNode} vnode\n * @returns {string}\n */\nexport function getDisplayName(vnode) {\n\tif (vnode.type === Fragment) {\n\t\treturn 'Fragment';\n\t} else if (typeof vnode.type == 'function') {\n\t\treturn vnode.type.displayName || vnode.type.name;\n\t} else if (typeof vnode.type == 'string') {\n\t\treturn vnode.type;\n\t}\n\n\treturn '#text';\n}\n\n/**\n * Used to keep track of the currently rendered `vnode` and print it\n * in debug messages.\n */\nlet renderStack = [];\n\n/**\n * Keep track of the current owners. An owner describes a component\n * which was responsible to render a specific `vnode`. This exclude\n * children that are passed via `props.children`, because they belong\n * to the parent owner.\n *\n * ```jsx\n * const Foo = props => <div>{props.children}</div> // div's owner is Foo\n * const Bar = props => {\n * return (\n * <Foo><span /></Foo> // Foo's owner is Bar, span's owner is Bar\n * )\n * }\n * ```\n *\n * Note: A `vnode` may be hoisted to the root scope due to compiler\n * optimiztions. In these cases the `_owner` will be different.\n */\nlet ownerStack = [];\n\n/**\n * Get the currently rendered `vnode`\n * @returns {import('./internal').VNode | null}\n */\nexport function getCurrentVNode() {\n\treturn renderStack.length > 0 ? renderStack[renderStack.length - 1] : null;\n}\n\n/**\n * If the user doesn't have `@babel/plugin-transform-react-jsx-source`\n * somewhere in his tool chain we can't print the filename and source\n * location of a component. In that case we just omit that, but we'll\n * print a helpful message to the console, notifying the user of it.\n */\nlet hasBabelPlugin = false;\n\n/**\n * Check if a `vnode` is a possible owner.\n * @param {import('./internal').VNode} vnode\n */\nfunction isPossibleOwner(vnode) {\n\treturn typeof vnode.type == 'function' && vnode.type != Fragment;\n}\n\n/**\n * Return the component stack that was captured up to this point.\n * @param {import('./internal').VNode} vnode\n * @returns {string}\n */\nexport function getOwnerStack(vnode) {\n\tconst stack = [vnode];\n\tlet next = vnode;\n\twhile (next._owner != null) {\n\t\tstack.push(next._owner);\n\t\tnext = next._owner;\n\t}\n\n\treturn stack.reduce((acc, owner) => {\n\t\tacc += ` in ${getDisplayName(owner)}`;\n\n\t\tconst source = owner.__source;\n\t\tif (source) {\n\t\t\tacc += ` (at ${source.fileName}:${source.lineNumber})`;\n\t\t} else if (!hasBabelPlugin) {\n\t\t\thasBabelPlugin = true;\n\t\t\tconsole.warn(\n\t\t\t\t'Add @babel/plugin-transform-react-jsx-source to get a more detailed component stack. Note that you should not add it to production builds of your App for bundle size reasons.'\n\t\t\t);\n\t\t}\n\n\t\treturn (acc += '\\n');\n\t}, '');\n}\n\n/**\n * Setup code to capture the component trace while rendering. Note that\n * we cannot simply traverse `vnode._parent` upwards, because we have some\n * debug messages for `this.setState` where the `vnode` is `undefined`.\n */\nexport function setupComponentStack() {\n\tlet oldDiff = options._diff;\n\tlet oldDiffed = options.diffed;\n\tlet oldRoot = options._root;\n\tlet oldVNode = options.vnode;\n\tlet oldRender = options._render;\n\n\toptions.diffed = vnode => {\n\t\tif (isPossibleOwner(vnode)) {\n\t\t\townerStack.pop();\n\t\t}\n\t\trenderStack.pop();\n\t\tif (oldDiffed) oldDiffed(vnode);\n\t};\n\n\toptions._diff = vnode => {\n\t\tif (isPossibleOwner(vnode)) {\n\t\t\trenderStack.push(vnode);\n\t\t}\n\t\tif (oldDiff) oldDiff(vnode);\n\t};\n\n\toptions._root = (vnode, parent) => {\n\t\townerStack = [];\n\t\tif (oldRoot) oldRoot(vnode, parent);\n\t};\n\n\toptions.vnode = vnode => {\n\t\tvnode._owner =\n\t\t\townerStack.length > 0 ? ownerStack[ownerStack.length - 1] : null;\n\t\tif (oldVNode) oldVNode(vnode);\n\t};\n\n\toptions._render = vnode => {\n\t\tif (isPossibleOwner(vnode)) {\n\t\t\townerStack.push(vnode);\n\t\t}\n\n\t\tif (oldRender) oldRender(vnode);\n\t};\n}\n","import { checkPropTypes } from './check-props';\nimport { options, Component } from 'preact';\nimport {\n\tELEMENT_NODE,\n\tDOCUMENT_NODE,\n\tDOCUMENT_FRAGMENT_NODE\n} from './constants';\nimport {\n\tgetOwnerStack,\n\tsetupComponentStack,\n\tgetCurrentVNode,\n\tgetDisplayName\n} from './component-stack';\n\nconst isWeakMapSupported = typeof WeakMap == 'function';\n\nfunction getClosestDomNodeParent(parent) {\n\tif (!parent) return {};\n\tif (typeof parent.type == 'function') {\n\t\treturn getClosestDomNodeParent(parent._parent);\n\t}\n\treturn parent;\n}\n\nexport function initDebug() {\n\tsetupComponentStack();\n\n\t/* eslint-disable no-console */\n\tlet oldBeforeDiff = options._diff;\n\tlet oldDiffed = options.diffed;\n\tlet oldVnode = options.vnode;\n\tlet oldCatchError = options._catchError;\n\tlet oldRoot = options._root;\n\tlet oldHook = options._hook;\n\tconst warnedComponents = !isWeakMapSupported\n\t\t? null\n\t\t: {\n\t\t\t\tuseEffect: new WeakMap(),\n\t\t\t\tuseLayoutEffect: new WeakMap(),\n\t\t\t\tlazyPropTypes: new WeakMap()\n\t\t };\n\n\toptions._catchError = (error, vnode, oldVNode) => {\n\t\tlet component = vnode && vnode._component;\n\t\tif (component && typeof error.then == 'function') {\n\t\t\tconst promise = error;\n\t\t\terror = new Error(\n\t\t\t\t`Missing Suspense. The throwing component was: ${getDisplayName(vnode)}`\n\t\t\t);\n\n\t\t\tlet parent = vnode;\n\t\t\tfor (; parent; parent = parent._parent) {\n\t\t\t\tif (parent._component && parent._component._childDidSuspend) {\n\t\t\t\t\terror = promise;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// We haven't recovered and we know at this point that there is no\n\t\t\t// Suspense component higher up in the tree\n\t\t\tif (error instanceof Error) {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\n\t\toldCatchError(error, vnode, oldVNode);\n\t};\n\n\toptions._root = (vnode, parentNode) => {\n\t\tif (!parentNode) {\n\t\t\tthrow new Error(\n\t\t\t\t'Undefined parent passed to render(), this is the second argument.\\n' +\n\t\t\t\t\t'Check if the element is available in the DOM/has the correct id.'\n\t\t\t);\n\t\t}\n\t\tlet isValid;\n\t\tswitch (parentNode.nodeType) {\n\t\t\tcase ELEMENT_NODE:\n\t\t\tcase DOCUMENT_FRAGMENT_NODE:\n\t\t\tcase DOCUMENT_NODE:\n\t\t\t\tisValid = true;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tisValid = false;\n\t\t}\n\n\t\tif (!isValid) {\n\t\t\tlet componentName = getDisplayName(vnode);\n\t\t\tthrow new Error(\n\t\t\t\t`Expected a valid HTML node as a second argument to render.\tReceived ${parentNode} instead: render(<${componentName} />, ${parentNode});`\n\t\t\t);\n\t\t}\n\n\t\tif (oldRoot) oldRoot(vnode, parentNode);\n\t};\n\n\toptions._diff = vnode => {\n\t\tlet { type, _parent: parent } = vnode;\n\t\tlet parentVNode = getClosestDomNodeParent(parent);\n\n\t\tif (type === undefined) {\n\t\t\tthrow new Error(\n\t\t\t\t'Undefined component passed to createElement()\\n\\n' +\n\t\t\t\t\t'You likely forgot to export your component or might have mixed up default and named imports' +\n\t\t\t\t\tserializeVNode(vnode) +\n\t\t\t\t\t`\\n\\n${getOwnerStack(vnode)}`\n\t\t\t);\n\t\t} else if (type != null && typeof type == 'object') {\n\t\t\tif (type._children !== undefined && type._dom !== undefined) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Invalid type passed to createElement(): ${type}\\n\\n` +\n\t\t\t\t\t\t'Did you accidentally pass a JSX literal as JSX twice?\\n\\n' +\n\t\t\t\t\t\t` let My${getDisplayName(vnode)} = ${serializeVNode(type)};\\n` +\n\t\t\t\t\t\t` let vnode = <My${getDisplayName(vnode)} />;\\n\\n` +\n\t\t\t\t\t\t'This usually happens when you export a JSX literal and not the component.' +\n\t\t\t\t\t\t`\\n\\n${getOwnerStack(vnode)}`\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tthrow new Error(\n\t\t\t\t'Invalid type passed to createElement(): ' +\n\t\t\t\t\t(Array.isArray(type) ? 'array' : type)\n\t\t\t);\n\t\t}\n\n\t\tif (\n\t\t\t(type === 'thead' || type === 'tfoot' || type === 'tbody') &&\n\t\t\tparentVNode.type !== 'table'\n\t\t) {\n\t\t\tconsole.error(\n\t\t\t\t'Improper nesting of table. Your <thead/tbody/tfoot> should have a <table> parent.' +\n\t\t\t\t\tserializeVNode(vnode) +\n\t\t\t\t\t`\\n\\n${getOwnerStack(vnode)}`\n\t\t\t);\n\t\t} else if (\n\t\t\ttype === 'tr' &&\n\t\t\tparentVNode.type !== 'thead' &&\n\t\t\tparentVNode.type !== 'tfoot' &&\n\t\t\tparentVNode.type !== 'tbody' &&\n\t\t\tparentVNode.type !== 'table'\n\t\t) {\n\t\t\tconsole.error(\n\t\t\t\t'Improper nesting of table. Your <tr> should have a <thead/tbody/tfoot/table> parent.' +\n\t\t\t\t\tserializeVNode(vnode) +\n\t\t\t\t\t`\\n\\n${getOwnerStack(vnode)}`\n\t\t\t);\n\t\t} else if (type === 'td' && parentVNode.type !== 'tr') {\n\t\t\tconsole.error(\n\t\t\t\t'Improper nesting of table. Your <td> should have a <tr> parent.' +\n\t\t\t\t\tserializeVNode(vnode) +\n\t\t\t\t\t`\\n\\n${getOwnerStack(vnode)}`\n\t\t\t);\n\t\t} else if (type === 'th' && parentVNode.type !== 'tr') {\n\t\t\tconsole.error(\n\t\t\t\t'Improper nesting of table. Your <th> should have a <tr>.' +\n\t\t\t\t\tserializeVNode(vnode) +\n\t\t\t\t\t`\\n\\n${getOwnerStack(vnode)}`\n\t\t\t);\n\t\t}\n\n\t\tif (\n\t\t\tvnode.ref !== undefined &&\n\t\t\ttypeof vnode.ref != 'function' &&\n\t\t\ttypeof vnode.ref != 'object' &&\n\t\t\t!('$$typeof' in vnode) // allow string refs when preact-compat is installed\n\t\t) {\n\t\t\tthrow new Error(\n\t\t\t\t`Component's \"ref\" property should be a function, or an object created ` +\n\t\t\t\t\t`by createRef(), but got [${typeof vnode.ref}] instead\\n` +\n\t\t\t\t\tserializeVNode(vnode) +\n\t\t\t\t\t`\\n\\n${getOwnerStack(vnode)}`\n\t\t\t);\n\t\t}\n\n\t\tif (typeof vnode.type == 'string') {\n\t\t\tfor (const key in vnode.props) {\n\t\t\t\tif (\n\t\t\t\t\tkey[0] === 'o' &&\n\t\t\t\t\tkey[1] === 'n' &&\n\t\t\t\t\ttypeof vnode.props[key] != 'function' &&\n\t\t\t\t\tvnode.props[key] != null\n\t\t\t\t) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`Component's \"${key}\" property should be a function, ` +\n\t\t\t\t\t\t\t`but got [${typeof vnode.props[key]}] instead\\n` +\n\t\t\t\t\t\t\tserializeVNode(vnode) +\n\t\t\t\t\t\t\t`\\n\\n${getOwnerStack(vnode)}`\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Check prop-types if available\n\t\tif (typeof vnode.type == 'function' && vnode.type.propTypes) {\n\t\t\tif (\n\t\t\t\tvnode.type.displayName === 'Lazy' &&\n\t\t\t\twarnedComponents &&\n\t\t\t\t!warnedComponents.lazyPropTypes.has(vnode.type)\n\t\t\t) {\n\t\t\t\tconst m =\n\t\t\t\t\t'PropTypes are not supported on lazy(). Use propTypes on the wrapped component itself. ';\n\t\t\t\ttry {\n\t\t\t\t\tconst lazyVNode = vnode.type();\n\t\t\t\t\twarnedComponents.lazyPropTypes.set(vnode.type, true);\n\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\tm + `Component wrapped in lazy() is ${getDisplayName(lazyVNode)}`\n\t\t\t\t\t);\n\t\t\t\t} catch (promise) {\n\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\tm + \"We will log the wrapped component's name once it is loaded.\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\tcheckPropTypes(\n\t\t\t\tvnode.type.propTypes,\n\t\t\t\tvnode.props,\n\t\t\t\t'prop',\n\t\t\t\tgetDisplayName(vnode)\n\t\t\t);\n\t\t}\n\n\t\tif (oldBeforeDiff) oldBeforeDiff(vnode);\n\t};\n\n\toptions._hook = comp => {\n\t\tif (!comp) {\n\t\t\tthrow new Error('Hook can only be invoked from render methods.');\n\t\t}\n\n\t\tif (oldHook) oldHook(comp);\n\t};\n\n\tconst warn = (property, err) => ({\n\t\tget() {\n\t\t\tthrow new Error(`getting vnode.${property} is deprecated, ${err}`);\n\t\t},\n\t\tset() {\n\t\t\tthrow new Error(`setting vnode.${property} is not allowed, ${err}`);\n\t\t}\n\t});\n\n\tconst deprecatedAttributes = {\n\t\tnodeName: warn('nodeName', 'use vnode.type'),\n\t\tattributes: warn('attributes', 'use vnode.props'),\n\t\tchildren: warn('children', 'use vnode.props.children')\n\t};\n\n\tconst deprecatedProto = Object.create({}, deprecatedAttributes);\n\n\toptions.vnode = vnode => {\n\t\tconst props = vnode.props;\n\t\tif (\n\t\t\tvnode.type !== null &&\n\t\t\tprops != null &&\n\t\t\t('__source' in props || '__self' in props)\n\t\t) {\n\t\t\tconst newProps = (vnode.props = {});\n\t\t\tfor (let i in props) {\n\t\t\t\tconst v = props[i];\n\t\t\t\tif (i === '__source') vnode.__source = v;\n\t\t\t\telse if (i === '__self') vnode.__self = v;\n\t\t\t\telse newProps[i] = v;\n\t\t\t}\n\t\t}\n\t\tObject.setPrototypeOf(vnode, deprecatedProto);\n\t\tif (oldVnode) oldVnode(vnode);\n\t};\n\n\toptions.diffed = vnode => {\n\t\t// Check if the user passed plain objects as children. Note that we cannot\n\t\t// move this check into `options.vnode` because components can receive\n\t\t// children in any shape they want (e.g.\n\t\t// `<MyJSONFormatter>{{ foo: 123, bar: \"abc\" }}</MyJSONFormatter>`).\n\t\t// Putting this check in `options.diffed` ensures that\n\t\t// `vnode._children` is set and that we only validate the children\n\t\t// that were actually rendered.\n\t\tif (vnode._children) {\n\t\t\tvnode._children.forEach(child => {\n\t\t\t\tif (child && child.type === undefined) {\n\t\t\t\t\t// Remove internal vnode keys that will always be patched\n\t\t\t\t\tdelete child._parent;\n\t\t\t\t\tdelete child._depth;\n\t\t\t\t\tconst keys = Object.keys(child).join(',');\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`Objects are not valid as a child. Encountered an object with the keys {${keys}}.` +\n\t\t\t\t\t\t\t`\\n\\n${getOwnerStack(vnode)}`\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t/** @type {import('./internal').Component} */\n\t\tconst component = vnode._component;\n\t\tif (component && component.__hooks) {\n\t\t\tlet hooks = component.__hooks;\n\t\t\tif (Array.isArray(hooks._list)) {\n\t\t\t\thooks._list.forEach(hook => {\n\t\t\t\t\tif (hook._factory && (!hook._args || !Array.isArray(hook._args))) {\n\t\t\t\t\t\tlet componentName = getDisplayName(vnode);\n\t\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t\t`In ${componentName} you are calling useMemo/useCallback without passing arguments.\\n` +\n\t\t\t\t\t\t\t\t`This is a noop since it will not be able to memoize, it will execute it every render.` +\n\t\t\t\t\t\t\t\t`\\n\\n${getOwnerStack(vnode)}`\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tif (oldDiffed) oldDiffed(vnode);\n\n\t\tif (vnode._children != null) {\n\t\t\tconst keys = [];\n\t\t\tfor (let i = 0; i < vnode._children.length; i++) {\n\t\t\t\tconst child = vnode._children[i];\n\t\t\t\tif (!child || child.key == null) continue;\n\n\t\t\t\tconst key = child.key;\n\t\t\t\tif (keys.indexOf(key) !== -1) {\n\t\t\t\t\tconsole.error(\n\t\t\t\t\t\t'Following component has two or more children with the ' +\n\t\t\t\t\t\t\t`same key attribute: \"${key}\". This may cause glitches and misbehavior ` +\n\t\t\t\t\t\t\t'in rendering process. Component: \\n\\n' +\n\t\t\t\t\t\t\tserializeVNode(vnode) +\n\t\t\t\t\t\t\t`\\n\\n${getOwnerStack(vnode)}`\n\t\t\t\t\t);\n\n\t\t\t\t\t// Break early to not spam the console\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tkeys.push(key);\n\t\t\t}\n\t\t}\n\t};\n}\n\nconst setState = Component.prototype.setState;\nComponent.prototype.setState = function(update, callback) {\n\tif (this._vnode == null) {\n\t\t// `this._vnode` will be `null` during componentWillMount. But it\n\t\t// is perfectly valid to call `setState` during cWM. So we\n\t\t// need an additional check to verify that we are dealing with a\n\t\t// call inside constructor.\n\t\tif (this.state == null) {\n\t\t\tconsole.warn(\n\t\t\t\t`Calling \"this.setState\" inside the constructor of a component is a ` +\n\t\t\t\t\t`no-op and might be a bug in your application. Instead, set ` +\n\t\t\t\t\t`\"this.state = {}\" directly.\\n\\n${getOwnerStack(getCurrentVNode())}`\n\t\t\t);\n\t\t}\n\t} else if (this._parentDom == null) {\n\t\tconsole.warn(\n\t\t\t`Can't call \"this.setState\" on an unmounted component. This is a no-op, ` +\n\t\t\t\t`but it indicates a memory leak in your application. To fix, cancel all ` +\n\t\t\t\t`subscriptions and asynchronous tasks in the componentWillUnmount method.` +\n\t\t\t\t`\\n\\n${getOwnerStack(this._vnode)}`\n\t\t);\n\t}\n\n\treturn setState.call(this, update, callback);\n};\n\nconst forceUpdate = Component.prototype.forceUpdate;\nComponent.prototype.forceUpdate = function(callback) {\n\tif (this._vnode == null) {\n\t\tconsole.warn(\n\t\t\t`Calling \"this.forceUpdate\" inside the constructor of a component is a ` +\n\t\t\t\t`no-op and might be a bug in your application.\\n\\n${getOwnerStack(\n\t\t\t\t\tgetCurrentVNode()\n\t\t\t\t)}`\n\t\t);\n\t} else if (this._parentDom == null) {\n\t\tconsole.warn(\n\t\t\t`Can't call \"this.forceUpdate\" on an unmounted component. This is a no-op, ` +\n\t\t\t\t`but it indicates a memory leak in your application. To fix, cancel all ` +\n\t\t\t\t`subscriptions and asynchronous tasks in the componentWillUnmount method.` +\n\t\t\t\t`\\n\\n${getOwnerStack(this._vnode)}`\n\t\t);\n\t}\n\treturn forceUpdate.call(this, callback);\n};\n\n/**\n * Serialize a vnode tree to a string\n * @param {import('./internal').VNode} vnode\n * @returns {string}\n */\nexport function serializeVNode(vnode) {\n\tlet { props } = vnode;\n\tlet name = getDisplayName(vnode);\n\n\tlet attrs = '';\n\tfor (let prop in props) {\n\t\tif (props.hasOwnProperty(prop) && prop !== 'children') {\n\t\t\tlet value = props[prop];\n\n\t\t\t// If it is an object but doesn't have toString(), use Object.toString\n\t\t\tif (typeof value == 'function') {\n\t\t\t\tvalue = `function ${value.displayName || value.name}() {}`;\n\t\t\t}\n\n\t\t\tvalue =\n\t\t\t\tObject(value) === value && !value.toString\n\t\t\t\t\t? Object.prototype.toString.call(value)\n\t\t\t\t\t: value + '';\n\n\t\t\tattrs += ` ${prop}=${JSON.stringify(value)}`;\n\t\t}\n\t}\n\n\tlet children = props.children;\n\treturn `<${name}${attrs}${\n\t\tchildren && children.length ? '>..</' + name + '>' : ' />'\n\t}`;\n}\n","import { options, Fragment } from 'preact';\n\nexport function initDevTools() {\n\tif (typeof window != 'undefined' && window.__PREACT_DEVTOOLS__) {\n\t\twindow.__PREACT_DEVTOOLS__.attachPreact('10.0.5', options, {\n\t\t\tFragment\n\t\t});\n\t}\n}\n","const ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nlet loggedTypeFailures = {};\n\n/**\n * Reset the history of which prop type warnings have been logged.\n */\nexport function resetPropWarnings() {\n\tloggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * Adapted from https://github.com/facebook/prop-types/blob/master/checkPropTypes.js\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n */\nexport function checkPropTypes(\n\ttypeSpecs,\n\tvalues,\n\tlocation,\n\tcomponentName,\n\tgetStack\n) {\n\tObject.keys(typeSpecs).forEach(typeSpecName => {\n\t\tlet error;\n\t\ttry {\n\t\t\terror = typeSpecs[typeSpecName](\n\t\t\t\tvalues,\n\t\t\t\ttypeSpecName,\n\t\t\t\tcomponentName,\n\t\t\t\tlocation,\n\t\t\t\tnull,\n\t\t\t\tReactPropTypesSecret\n\t\t\t);\n\t\t} catch (e) {\n\t\t\terror = e;\n\t\t}\n\t\tif (error && !(error.message in loggedTypeFailures)) {\n\t\t\tloggedTypeFailures[error.message] = true;\n\t\t\tconsole.error(\n\t\t\t\t`Failed ${location} type: ${error.message}${(getStack && getStack()) ||\n\t\t\t\t\t''}`\n\t\t\t);\n\t\t}\n\t});\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!./fisica.js\") );\n\t\t\t}, \"route-fisica\");\n\t\t}\n\n\t\texport default Async(load);\n\t"],"sourceRoot":""} |