From 5836b2dc40672a8b77c3fb5f1d435448ce68e982 Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Mon, 16 Mar 2020 16:49:00 +0100 Subject: [PATCH] Update calcoloNumerico.js --- docs/{bundle.7b35a.js => bundle.0cb08.js} | 4 +- ...undle.7b35a.js.map => bundle.0cb08.js.map} | 2 +- ...undle.1c866.esm.js => bundle.85ae2.esm.js} | 4 +- ...866.esm.js.map => bundle.85ae2.esm.js.map} | 2 +- docs/index.html | 2 +- ...t.0d9a7bb8206f79b695db196363a66740.esm.js} | 20 +-- ...ifest.ecfa5672e4bfb1b4e59f0e190b654487.js} | 22 +-- docs/push-manifest.json | 2 +- docs/route-calcoloNumerico.chunk.5f4f3.esm.js | 2 - docs/route-calcoloNumerico.chunk.726a6.js | 2 + docs/route-calcoloNumerico.chunk.726a6.js.map | 1 + docs/route-calcoloNumerico.chunk.9cc26.css | 1 + docs/route-calcoloNumerico.chunk.a852d.js | 2 - docs/route-calcoloNumerico.chunk.a852d.js.map | 1 - docs/route-calcoloNumerico.chunk.b8d1f.esm.js | 2 + ...te-calcoloNumerico.chunk.b8d1f.esm.js.map} | 2 +- docs/route-calcoloNumerico.chunk.c2edb.css | 1 - docs/sw-esm.js | 2 +- docs/sw.js | 2 +- size-plugin.json | 2 +- src/routes/calcoloNumerico.js | 128 +++++++++++++++++- 21 files changed, 161 insertions(+), 45 deletions(-) rename docs/{bundle.7b35a.js => bundle.0cb08.js} (99%) rename docs/{bundle.7b35a.js.map => bundle.0cb08.js.map} (99%) rename docs/{bundle.1c866.esm.js => bundle.85ae2.esm.js} (99%) rename docs/{bundle.1c866.esm.js.map => bundle.85ae2.esm.js.map} (66%) rename docs/{precache-manifest.8eff6c9cf3c41600a917358493b8de5f.esm.js => precache-manifest.0d9a7bb8206f79b695db196363a66740.esm.js} (84%) rename docs/{precache-manifest.8436a5a2fecf4d21f53555910f03a9d7.js => precache-manifest.ecfa5672e4bfb1b4e59f0e190b654487.js} (84%) delete mode 100644 docs/route-calcoloNumerico.chunk.5f4f3.esm.js create mode 100644 docs/route-calcoloNumerico.chunk.726a6.js create mode 100644 docs/route-calcoloNumerico.chunk.726a6.js.map create mode 100644 docs/route-calcoloNumerico.chunk.9cc26.css delete mode 100644 docs/route-calcoloNumerico.chunk.a852d.js delete mode 100644 docs/route-calcoloNumerico.chunk.a852d.js.map create mode 100644 docs/route-calcoloNumerico.chunk.b8d1f.esm.js rename docs/{route-calcoloNumerico.chunk.5f4f3.esm.js.map => route-calcoloNumerico.chunk.b8d1f.esm.js.map} (54%) delete mode 100644 docs/route-calcoloNumerico.chunk.c2edb.css diff --git a/docs/bundle.7b35a.js b/docs/bundle.0cb08.js similarity index 99% rename from docs/bundle.7b35a.js rename to docs/bundle.0cb08.js index 75082ce..7d966c6 100644 --- a/docs/bundle.7b35a.js +++ b/docs/bundle.0cb08.js @@ -1,2 +1,2 @@ -!function(t){function e(e){for(var n,o,r=e[0],a=e[1],u=0,c=[];ue.rank?-1:t.index-e.index}function a(t,e){return t.index=e,t.rank=function(t){return t.props.default?0:(e=t.props.path,u(e).map(c).join(""));var e}(t),t.props}function u(t){return t.replace(/(^\/+|\/+$)/g,"").split("/")}function c(t){return":"==t.charAt(0)?1+"*+?".indexOf(t.charAt(t.length-1))||4:5}function l(){var t;return""+((t=m&&m.location?m.location:m&&m.getCurrentLocation?m.getCurrentLocation():"undefined"!=typeof location?location:w).pathname||"")+(t.search||"")}function s(t,e){return void 0===e&&(e=!1),"string"!=typeof t&&t.url&&(e=t.replace,t=t.url),function(t){for(var e=g.length;e--;)if(g[e].canRoute(t))return!0;return!1}(t)&&function(t,e){void 0===e&&(e="push"),m&&m[e]?m[e](t):"undefined"!=typeof history&&history[e+"State"]&&history[e+"State"](null,null,t)}(t,e?"replace":"push"),p(t)}function p(t){for(var e=!1,n=0;n0},e.prototype.routeTo=function(t){this.setState({url:t});var e=this.canRoute(t);return this.updating||this.forceUpdate(),e},e.prototype.componentWillMount=function(){g.push(this),this.updating=!0},e.prototype.componentDidMount=function(){var t=this;m&&(this.unlisten=m.listen((function(e){t.routeTo(""+(e.pathname||"")+(e.search||""))}))),this.updating=!1},e.prototype.componentWillUnmount=function(){"function"==typeof this.unlisten&&this.unlisten(),g.splice(g.indexOf(this),1)},e.prototype.componentWillUpdate=function(){this.updating=!0},e.prototype.componentDidUpdate=function(){this.updating=!1},e.prototype.getMatchingChildren=function(t,e,n){return t.filter(a).sort(i).map((function(t){var i=r(e,t.props.path,t.props);if(i){if(!1!==n){var a={url:e,matches:i};return o(a,i),delete a.ref,delete a.key,Object(y.cloneElement)(t,a)}return t}})).filter(Boolean)},e.prototype.render=function(t,e){var n=t.children,o=t.onChange,r=e.url,i=this.getMatchingChildren(Object(y.toChildArray)(n),r,!0),a=i[0]||null,u=this.previousUrl;return r!==u&&(this.previousUrl=r,"function"==typeof o&&o({router:this,url:r,previous:u,active:i,current:a})),a},e}(y.Component);C.subscribers=b,C.getCurrentUrl=l,C.route=s,C.Router=C,C.Route=function(t){return Object(y.createElement)(t.component,t)},C.Link=function(t){return Object(y.createElement)("a",o({onClick:d},t))},C.exec=r,e.a=C},YPgt:function(t){t.exports={copyright:"copyright__2FTnU"}},afj4:function(){},hosL:function(t,e,n){"use strict";function o(t,e){for(var n in e)t[n]=e[n];return t}function r(t){var e=t.parentNode;e&&e.removeChild(t)}function i(t,e,n){var o,r=arguments,i={};for(o in e)"key"!==o&&"ref"!==o&&(i[o]=e[o]);if(arguments.length>3)for(n=[n],o=3;o2&&(e.children=M.slice.call(arguments,2)),a(t.type,e,e.key||t.key,e.ref||t.ref)}function P(t){var e={},n={__c:"__cC"+I++,__:t,Consumer:function(t,e){return t.children(e)},Provider:function(t){var o,r=this;return this.getChildContext||(o=[],this.getChildContext=function(){return e[n.__c]=r,e},this.shouldComponentUpdate=function(e){t.value!==e.value&&o.some((function(t){t.context=e.value,f(t)}))},this.sub=function(t){o.push(t);var e=t.componentWillUnmount;t.componentWillUnmount=function(){o.splice(o.indexOf(t),1),e&&e.call(t)}}),t.children}};return n.Consumer.contextType=n,n}n.r(e),n.d(e,"render",(function(){return O})),n.d(e,"hydrate",(function(){return S})),n.d(e,"createElement",(function(){return i})),n.d(e,"h",(function(){return i})),n.d(e,"Fragment",(function(){return c})),n.d(e,"createRef",(function(){return u})),n.d(e,"isValidElement",(function(){return A})),n.d(e,"Component",(function(){return l})),n.d(e,"cloneElement",(function(){return x})),n.d(e,"createContext",(function(){return P})),n.d(e,"toChildArray",(function(){return _})),n.d(e,"_unmount",(function(){return C})),n.d(e,"options",(function(){return T}));var T,A,L,j,U,N,I,D={},M=[],R=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord/i;T={__e:function(t,e){for(var n,o;e=e.__;)if((n=e.__c)&&!n.__)try{if(n.constructor&&null!=n.constructor.getDerivedStateFromError&&(o=!0,n.setState(n.constructor.getDerivedStateFromError(t))),null!=n.componentDidCatch&&(o=!0,n.componentDidCatch(t)),o)return f(n.__E=n)}catch(e){t=e}throw t}},A=function(t){return null!=t&&void 0===t.constructor},l.prototype.setState=function(t,e){var n;n=this.__s!==this.state?this.__s:this.__s=o({},this.state),"function"==typeof t&&(t=t(n,this.props)),t&&o(n,t),null!=t&&this.__v&&(e&&this.__h.push(e),f(this))},l.prototype.forceUpdate=function(t){this.__v&&(this.__e=!0,t&&this.__h.push(t),f(this))},l.prototype.render=c,L=[],j="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,N=D,I=0},mIK7:function(t,e,n){"use strict";var o=n("SdNZ");e.a=Object(o.a)((function(t){n.e(8).then(function(){t(n("/fDt"))}.bind(null,n)).catch(n.oe)}))},mdyV:function(t,e,n){"use strict";n.r(e);var o=n("hosL"),r=o.h,i=o.render,a=function(t){return t&&t.default?t.default:t};if("serviceWorker"in navigator&&navigator.serviceWorker.register(n.p+"sw.js"),"function"==typeof a(n("QfWi"))){var u=document.getElementById("preact_root")||document.body.firstElementChild;0,function(){var t=a(n("QfWi")),e={},o=document.querySelector('[type="__PREACT_CLI_DATA__"]');o&&(e=JSON.parse(o.innerHTML).preRenderData||e);var c;e.url&&(c=e.url);u=i(r(t,{CLI_DATA:{preRenderData:e}}),document.body,u)}()}},ve3R:function(t,e,n){"use strict";function o(){return(o=Object.assign||function(t){for(var e=1;e=0;f--){var d=a[f];"."===d?i(a,f):".."===d?(i(a,f),p++):p&&(i(a,f),p--)}if(!l)for(;p--;p)a.unshift("..");!l||""===a[0]||a[0]&&r(a[0])||a.unshift("");var h=a.join("/");return n&&"/"!==h.substr(-1)&&(h+="/"),h},g=function(t){if(!t)throw new Error("Invariant failed")},b=!("undefined"==typeof window||!window.document||!window.document.createElement),w={hashbang:{encodePath:function(t){return"!"===t.charAt(0)?t:"!/"+u(t)},decodePath:function(t){return"!"===t.charAt(0)?t.substr(1):t}},noslash:{encodePath:u,decodePath:a},slash:{encodePath:a,decodePath:a}}},"y+LV":function(t,e,n){"use strict";function o(t){return t.type===c.Fragment?"Fragment":"function"==typeof t.type?t.type.displayName||t.type.name:"string"==typeof t.type?t.type:"#text"}function r(){return s.length>0?s[s.length-1]:null}function i(t){return"function"==typeof t.type&&t.type!==c.Fragment}function a(t){for(var e=[t],n=t;null!=n.__o;)e.push(n.__o),n=n.__o;return e.reduce((function(t,e){t+=" in "+o(e);var n=e.__source;return n?t+=" (at "+n.fileName+":"+n.lineNumber+")":f||(f=!0,console.warn("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.")),t+"\n"}),"")}function u(t){var e=t.props,n=o(t),r="";for(var i in e)if(e.hasOwnProperty(i)&&"children"!==i){var a=e[i];"function"==typeof a&&(a="function "+(a.displayName||a.name)+"() {}"),a=Object(a)!==a||a.toString?a+"":Object.prototype.toString.call(a),r+=" "+i+"="+JSON.stringify(a)}var u=e.children;return"<"+n+r+(u&&u.length?">..":" />")}var c=n("hosL");"undefined"!=typeof window&&window.__PREACT_DEVTOOLS__&&window.__PREACT_DEVTOOLS__.attachPreact("10.0.5",c.options,{Fragment:c.Fragment});var l={},s=[],p=[],f=!1,d="function"==typeof WeakMap,h=c.Component.prototype.setState;c.Component.prototype.setState=function(t,e){return null==this.__v?null==this.state&&console.warn('Calling "this.setState" inside the constructor of a component is a no-op and might be a bug in your application. Instead, set "this.state = {}" directly.\n\n'+a(r())):null==this.__P&&console.warn('Can\'t call "this.setState" on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in the componentWillUnmount method.\n\n'+a(this.__v)),h.call(this,t,e)};var _=c.Component.prototype.forceUpdate;c.Component.prototype.forceUpdate=function(t){return null==this.__v?console.warn('Calling "this.forceUpdate" inside the constructor of a component is a no-op and might be a bug in your application.\n\n'+a(r())):null==this.__P&&console.warn('Can\'t call "this.forceUpdate" on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in the componentWillUnmount method.\n\n'+a(this.__v)),_.call(this,t)},function(){!function(){var t=c.options.__b,e=c.options.diffed,n=c.options.__,o=c.options.vnode,r=c.options.__r;c.options.diffed=function(t){i(t)&&p.pop(),s.pop(),e&&e(t)},c.options.__b=function(e){i(e)&&s.push(e),t&&t(e)},c.options.__=function(t,e){p=[],n&&n(t,e)},c.options.vnode=function(t){t.__o=p.length>0?p[p.length-1]:null,o&&o(t)},c.options.__r=function(t){i(t)&&p.push(t),r&&r(t)}}();var t=c.options.__b,e=c.options.diffed,n=c.options.vnode,r=c.options.__e,f=c.options.__,h=c.options.__h,_=d?{useEffect:new WeakMap,useLayoutEffect:new WeakMap,lazyPropTypes:new WeakMap}:null;c.options.__e=function(t,e,n){if(e&&e.__c&&"function"==typeof t.then){var i=t;t=new Error("Missing Suspense. The throwing component was: "+o(e));for(var a=e;a;a=a.__)if(a.__c&&a.__c.__c){t=i;break}if(t instanceof Error)throw t}r(t,e,n)},c.options.__=function(t,e){if(!e)throw new Error("Undefined parent passed to render(), this is the second argument.\nCheck if the element is available in the DOM/has the correct id.");var n;switch(e.nodeType){case 1:case 11:case 9:n=!0;break;default:n=!1}if(!n){var r=o(t);throw new Error("Expected a valid HTML node as a second argument to render.\tReceived "+e+" instead: render(<"+r+" />, "+e+");")}f&&f(t,e)},c.options.__b=function(e){var n,r,i,c,s=e.type,p=function t(e){return e?"function"==typeof e.type?t(e.__):e:{}}(e.__);if(void 0===s)throw new Error("Undefined component passed to createElement()\n\nYou likely forgot to export your component or might have mixed up default and named imports"+u(e)+"\n\n"+a(e));if(null!=s&&"object"==typeof s){if(void 0!==s.__k&&void 0!==s.__e)throw new Error("Invalid type passed to createElement(): "+s+"\n\nDid you accidentally pass a JSX literal as JSX twice?\n\n let My"+o(e)+" = "+u(s)+";\n let vnode = ;\n\nThis usually happens when you export a JSX literal and not the component.\n\n"+a(e));throw new Error("Invalid type passed to createElement(): "+(Array.isArray(s)?"array":s))}if("thead"!==s&&"tfoot"!==s&&"tbody"!==s||"table"===p.type?"tr"===s&&"thead"!==p.type&&"tfoot"!==p.type&&"tbody"!==p.type&&"table"!==p.type?console.error("Improper nesting of table. Your should have a parent."+u(e)+"\n\n"+a(e)):"td"===s&&"tr"!==p.type?console.error("Improper nesting of table. Your should have a parent."+u(e)+"\n\n"+a(e)):"th"===s&&"tr"!==p.type&&console.error("Improper nesting of table. Your should have a ."+u(e)+"\n\n"+a(e)):console.error("Improper nesting of table. Your should have a parent."+u(e)+"\n\n"+a(e)),void 0!==e.ref&&"function"!=typeof e.ref&&"object"!=typeof e.ref&&!("$$typeof"in e))throw new Error('Component\'s "ref" property should be a function, or an object created by createRef(), but got ['+typeof e.ref+"] instead\n"+u(e)+"\n\n"+a(e));if("string"==typeof e.type)for(var f in e.props)if("o"===f[0]&&"n"===f[1]&&"function"!=typeof e.props[f]&&null!=e.props[f])throw new Error("Component's \""+f+'" property should be a function, but got ['+typeof e.props[f]+"] instead\n"+u(e)+"\n\n"+a(e));if("function"==typeof e.type&&e.type.propTypes){if("Lazy"===e.type.displayName&&_&&!_.lazyPropTypes.has(e.type)){var d="PropTypes are not supported on lazy(). Use propTypes on the wrapped component itself. ";try{var h=e.type();_.lazyPropTypes.set(e.type,!0),console.warn(d+"Component wrapped in lazy() is "+o(h))}catch(e){console.warn(d+"We will log the wrapped component's name once it is loaded.")}}n=e.type.propTypes,r=e.props,i=o(e),c=u(e),Object.keys(n).forEach((function(t){var e;try{e=n[t](r,t,c,i,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(t){e=t}!e||e.message in l||(l[e.message]=!0,console.error("Failed "+i+" type: "+e.message))}))}t&&t(e)},c.options.__h=function(t){if(!t)throw new Error("Hook can only be invoked from render methods.");h&&h(t)};var y=function(t,e){return{get:function(){throw new Error("getting vnode."+t+" is deprecated, "+e)},set:function(){throw new Error("setting vnode."+t+" is not allowed, "+e)}}},v={nodeName:y("nodeName","use vnode.type"),attributes:y("attributes","use vnode.props"),children:y("children","use vnode.props.children")},m=Object.create({},v);c.options.vnode=function(t){var e=t.props;if(null!==t.type&&null!=e&&("__source"in e||"__self"in e)){var o=t.props={};for(var r in e){var i=e[r];"__source"===r?t.__source=i:"__self"===r?t.__self=i:o[r]=i}}Object.setPrototypeOf(t,m),n&&n(t)},c.options.diffed=function(t){t.__k&&t.__k.forEach((function(t){if(t&&void 0===t.type){delete t.__,delete t.__b;var e=Object.keys(t).join(",");throw new Error("Objects are not valid as a child. Encountered an object with the keys {"+e+"}.")}}));var n=t.__c;if(n&&n.__H){var r=n.__H;Array.isArray(r.__)&&r.__.forEach((function(e){if(e.__h&&(!e.__H||!Array.isArray(e.__H))){var n=o(t);console.warn("In "+n+" you are calling useMemo/useCallback without passing arguments.\nThis is a noop since it will not be able to memoize, it will execute it every render.\n\n"+a(t))}}))}if(e&&e(t),null!=t.__k)for(var i=[],c=0;ce.rank?-1:t.index-e.index}function a(t,e){return t.index=e,t.rank=function(t){return t.props.default?0:(e=t.props.path,u(e).map(c).join(""));var e}(t),t.props}function u(t){return t.replace(/(^\/+|\/+$)/g,"").split("/")}function c(t){return":"==t.charAt(0)?1+"*+?".indexOf(t.charAt(t.length-1))||4:5}function l(){var t;return""+((t=m&&m.location?m.location:m&&m.getCurrentLocation?m.getCurrentLocation():"undefined"!=typeof location?location:w).pathname||"")+(t.search||"")}function s(t,e){return void 0===e&&(e=!1),"string"!=typeof t&&t.url&&(e=t.replace,t=t.url),function(t){for(var e=g.length;e--;)if(g[e].canRoute(t))return!0;return!1}(t)&&function(t,e){void 0===e&&(e="push"),m&&m[e]?m[e](t):"undefined"!=typeof history&&history[e+"State"]&&history[e+"State"](null,null,t)}(t,e?"replace":"push"),p(t)}function p(t){for(var e=!1,n=0;n0},e.prototype.routeTo=function(t){this.setState({url:t});var e=this.canRoute(t);return this.updating||this.forceUpdate(),e},e.prototype.componentWillMount=function(){g.push(this),this.updating=!0},e.prototype.componentDidMount=function(){var t=this;m&&(this.unlisten=m.listen((function(e){t.routeTo(""+(e.pathname||"")+(e.search||""))}))),this.updating=!1},e.prototype.componentWillUnmount=function(){"function"==typeof this.unlisten&&this.unlisten(),g.splice(g.indexOf(this),1)},e.prototype.componentWillUpdate=function(){this.updating=!0},e.prototype.componentDidUpdate=function(){this.updating=!1},e.prototype.getMatchingChildren=function(t,e,n){return t.filter(a).sort(i).map((function(t){var i=r(e,t.props.path,t.props);if(i){if(!1!==n){var a={url:e,matches:i};return o(a,i),delete a.ref,delete a.key,Object(y.cloneElement)(t,a)}return t}})).filter(Boolean)},e.prototype.render=function(t,e){var n=t.children,o=t.onChange,r=e.url,i=this.getMatchingChildren(Object(y.toChildArray)(n),r,!0),a=i[0]||null,u=this.previousUrl;return r!==u&&(this.previousUrl=r,"function"==typeof o&&o({router:this,url:r,previous:u,active:i,current:a})),a},e}(y.Component);C.subscribers=b,C.getCurrentUrl=l,C.route=s,C.Router=C,C.Route=function(t){return Object(y.createElement)(t.component,t)},C.Link=function(t){return Object(y.createElement)("a",o({onClick:d},t))},C.exec=r,e.a=C},YPgt:function(t){t.exports={copyright:"copyright__2FTnU"}},afj4:function(){},hosL:function(t,e,n){"use strict";function o(t,e){for(var n in e)t[n]=e[n];return t}function r(t){var e=t.parentNode;e&&e.removeChild(t)}function i(t,e,n){var o,r=arguments,i={};for(o in e)"key"!==o&&"ref"!==o&&(i[o]=e[o]);if(arguments.length>3)for(n=[n],o=3;o2&&(e.children=M.slice.call(arguments,2)),a(t.type,e,e.key||t.key,e.ref||t.ref)}function P(t){var e={},n={__c:"__cC"+I++,__:t,Consumer:function(t,e){return t.children(e)},Provider:function(t){var o,r=this;return this.getChildContext||(o=[],this.getChildContext=function(){return e[n.__c]=r,e},this.shouldComponentUpdate=function(e){t.value!==e.value&&o.some((function(t){t.context=e.value,f(t)}))},this.sub=function(t){o.push(t);var e=t.componentWillUnmount;t.componentWillUnmount=function(){o.splice(o.indexOf(t),1),e&&e.call(t)}}),t.children}};return n.Consumer.contextType=n,n}n.r(e),n.d(e,"render",(function(){return O})),n.d(e,"hydrate",(function(){return S})),n.d(e,"createElement",(function(){return i})),n.d(e,"h",(function(){return i})),n.d(e,"Fragment",(function(){return c})),n.d(e,"createRef",(function(){return u})),n.d(e,"isValidElement",(function(){return A})),n.d(e,"Component",(function(){return l})),n.d(e,"cloneElement",(function(){return x})),n.d(e,"createContext",(function(){return P})),n.d(e,"toChildArray",(function(){return _})),n.d(e,"_unmount",(function(){return C})),n.d(e,"options",(function(){return T}));var T,A,L,j,U,N,I,D={},M=[],R=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord/i;T={__e:function(t,e){for(var n,o;e=e.__;)if((n=e.__c)&&!n.__)try{if(n.constructor&&null!=n.constructor.getDerivedStateFromError&&(o=!0,n.setState(n.constructor.getDerivedStateFromError(t))),null!=n.componentDidCatch&&(o=!0,n.componentDidCatch(t)),o)return f(n.__E=n)}catch(e){t=e}throw t}},A=function(t){return null!=t&&void 0===t.constructor},l.prototype.setState=function(t,e){var n;n=this.__s!==this.state?this.__s:this.__s=o({},this.state),"function"==typeof t&&(t=t(n,this.props)),t&&o(n,t),null!=t&&this.__v&&(e&&this.__h.push(e),f(this))},l.prototype.forceUpdate=function(t){this.__v&&(this.__e=!0,t&&this.__h.push(t),f(this))},l.prototype.render=c,L=[],j="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,N=D,I=0},mIK7:function(t,e,n){"use strict";var o=n("SdNZ");e.a=Object(o.a)((function(t){n.e(8).then(function(){t(n("/fDt"))}.bind(null,n)).catch(n.oe)}))},mdyV:function(t,e,n){"use strict";n.r(e);var o=n("hosL"),r=o.h,i=o.render,a=function(t){return t&&t.default?t.default:t};if("serviceWorker"in navigator&&navigator.serviceWorker.register(n.p+"sw.js"),"function"==typeof a(n("QfWi"))){var u=document.getElementById("preact_root")||document.body.firstElementChild;0,function(){var t=a(n("QfWi")),e={},o=document.querySelector('[type="__PREACT_CLI_DATA__"]');o&&(e=JSON.parse(o.innerHTML).preRenderData||e);var c;e.url&&(c=e.url);u=i(r(t,{CLI_DATA:{preRenderData:e}}),document.body,u)}()}},ve3R:function(t,e,n){"use strict";function o(){return(o=Object.assign||function(t){for(var e=1;e=0;f--){var d=a[f];"."===d?i(a,f):".."===d?(i(a,f),p++):p&&(i(a,f),p--)}if(!l)for(;p--;p)a.unshift("..");!l||""===a[0]||a[0]&&r(a[0])||a.unshift("");var h=a.join("/");return n&&"/"!==h.substr(-1)&&(h+="/"),h},g=function(t){if(!t)throw new Error("Invariant failed")},b=!("undefined"==typeof window||!window.document||!window.document.createElement),w={hashbang:{encodePath:function(t){return"!"===t.charAt(0)?t:"!/"+u(t)},decodePath:function(t){return"!"===t.charAt(0)?t.substr(1):t}},noslash:{encodePath:u,decodePath:a},slash:{encodePath:a,decodePath:a}}},"y+LV":function(t,e,n){"use strict";function o(t){return t.type===c.Fragment?"Fragment":"function"==typeof t.type?t.type.displayName||t.type.name:"string"==typeof t.type?t.type:"#text"}function r(){return s.length>0?s[s.length-1]:null}function i(t){return"function"==typeof t.type&&t.type!==c.Fragment}function a(t){for(var e=[t],n=t;null!=n.__o;)e.push(n.__o),n=n.__o;return e.reduce((function(t,e){t+=" in "+o(e);var n=e.__source;return n?t+=" (at "+n.fileName+":"+n.lineNumber+")":f||(f=!0,console.warn("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.")),t+"\n"}),"")}function u(t){var e=t.props,n=o(t),r="";for(var i in e)if(e.hasOwnProperty(i)&&"children"!==i){var a=e[i];"function"==typeof a&&(a="function "+(a.displayName||a.name)+"() {}"),a=Object(a)!==a||a.toString?a+"":Object.prototype.toString.call(a),r+=" "+i+"="+JSON.stringify(a)}var u=e.children;return"<"+n+r+(u&&u.length?">..":" />")}var c=n("hosL");"undefined"!=typeof window&&window.__PREACT_DEVTOOLS__&&window.__PREACT_DEVTOOLS__.attachPreact("10.0.5",c.options,{Fragment:c.Fragment});var l={},s=[],p=[],f=!1,d="function"==typeof WeakMap,h=c.Component.prototype.setState;c.Component.prototype.setState=function(t,e){return null==this.__v?null==this.state&&console.warn('Calling "this.setState" inside the constructor of a component is a no-op and might be a bug in your application. Instead, set "this.state = {}" directly.\n\n'+a(r())):null==this.__P&&console.warn('Can\'t call "this.setState" on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in the componentWillUnmount method.\n\n'+a(this.__v)),h.call(this,t,e)};var _=c.Component.prototype.forceUpdate;c.Component.prototype.forceUpdate=function(t){return null==this.__v?console.warn('Calling "this.forceUpdate" inside the constructor of a component is a no-op and might be a bug in your application.\n\n'+a(r())):null==this.__P&&console.warn('Can\'t call "this.forceUpdate" on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in the componentWillUnmount method.\n\n'+a(this.__v)),_.call(this,t)},function(){!function(){var t=c.options.__b,e=c.options.diffed,n=c.options.__,o=c.options.vnode,r=c.options.__r;c.options.diffed=function(t){i(t)&&p.pop(),s.pop(),e&&e(t)},c.options.__b=function(e){i(e)&&s.push(e),t&&t(e)},c.options.__=function(t,e){p=[],n&&n(t,e)},c.options.vnode=function(t){t.__o=p.length>0?p[p.length-1]:null,o&&o(t)},c.options.__r=function(t){i(t)&&p.push(t),r&&r(t)}}();var t=c.options.__b,e=c.options.diffed,n=c.options.vnode,r=c.options.__e,f=c.options.__,h=c.options.__h,_=d?{useEffect:new WeakMap,useLayoutEffect:new WeakMap,lazyPropTypes:new WeakMap}:null;c.options.__e=function(t,e,n){if(e&&e.__c&&"function"==typeof t.then){var i=t;t=new Error("Missing Suspense. The throwing component was: "+o(e));for(var a=e;a;a=a.__)if(a.__c&&a.__c.__c){t=i;break}if(t instanceof Error)throw t}r(t,e,n)},c.options.__=function(t,e){if(!e)throw new Error("Undefined parent passed to render(), this is the second argument.\nCheck if the element is available in the DOM/has the correct id.");var n;switch(e.nodeType){case 1:case 11:case 9:n=!0;break;default:n=!1}if(!n){var r=o(t);throw new Error("Expected a valid HTML node as a second argument to render.\tReceived "+e+" instead: render(<"+r+" />, "+e+");")}f&&f(t,e)},c.options.__b=function(e){var n,r,i,c,s=e.type,p=function t(e){return e?"function"==typeof e.type?t(e.__):e:{}}(e.__);if(void 0===s)throw new Error("Undefined component passed to createElement()\n\nYou likely forgot to export your component or might have mixed up default and named imports"+u(e)+"\n\n"+a(e));if(null!=s&&"object"==typeof s){if(void 0!==s.__k&&void 0!==s.__e)throw new Error("Invalid type passed to createElement(): "+s+"\n\nDid you accidentally pass a JSX literal as JSX twice?\n\n let My"+o(e)+" = "+u(s)+";\n let vnode = ;\n\nThis usually happens when you export a JSX literal and not the component.\n\n"+a(e));throw new Error("Invalid type passed to createElement(): "+(Array.isArray(s)?"array":s))}if("thead"!==s&&"tfoot"!==s&&"tbody"!==s||"table"===p.type?"tr"===s&&"thead"!==p.type&&"tfoot"!==p.type&&"tbody"!==p.type&&"table"!==p.type?console.error("Improper nesting of table. Your should have a parent."+u(e)+"\n\n"+a(e)):"td"===s&&"tr"!==p.type?console.error("Improper nesting of table. Your parent."+u(e)+"\n\n"+a(e)):"th"===s&&"tr"!==p.type&&console.error("Improper nesting of table. Your ."+u(e)+"\n\n"+a(e)):console.error("Improper nesting of table. Your should have a
should have a
should have a
parent."+u(e)+"\n\n"+a(e)),void 0!==e.ref&&"function"!=typeof e.ref&&"object"!=typeof e.ref&&!("$$typeof"in e))throw new Error('Component\'s "ref" property should be a function, or an object created by createRef(), but got ['+typeof e.ref+"] instead\n"+u(e)+"\n\n"+a(e));if("string"==typeof e.type)for(var f in e.props)if("o"===f[0]&&"n"===f[1]&&"function"!=typeof e.props[f]&&null!=e.props[f])throw new Error("Component's \""+f+'" property should be a function, but got ['+typeof e.props[f]+"] instead\n"+u(e)+"\n\n"+a(e));if("function"==typeof e.type&&e.type.propTypes){if("Lazy"===e.type.displayName&&_&&!_.lazyPropTypes.has(e.type)){var d="PropTypes are not supported on lazy(). Use propTypes on the wrapped component itself. ";try{var h=e.type();_.lazyPropTypes.set(e.type,!0),console.warn(d+"Component wrapped in lazy() is "+o(h))}catch(e){console.warn(d+"We will log the wrapped component's name once it is loaded.")}}n=e.type.propTypes,r=e.props,i=o(e),c=u(e),Object.keys(n).forEach((function(t){var e;try{e=n[t](r,t,c,i,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(t){e=t}!e||e.message in l||(l[e.message]=!0,console.error("Failed "+i+" type: "+e.message))}))}t&&t(e)},c.options.__h=function(t){if(!t)throw new Error("Hook can only be invoked from render methods.");h&&h(t)};var y=function(t,e){return{get:function(){throw new Error("getting vnode."+t+" is deprecated, "+e)},set:function(){throw new Error("setting vnode."+t+" is not allowed, "+e)}}},v={nodeName:y("nodeName","use vnode.type"),attributes:y("attributes","use vnode.props"),children:y("children","use vnode.props.children")},m=Object.create({},v);c.options.vnode=function(t){var e=t.props;if(null!==t.type&&null!=e&&("__source"in e||"__self"in e)){var o=t.props={};for(var r in e){var i=e[r];"__source"===r?t.__source=i:"__self"===r?t.__self=i:o[r]=i}}Object.setPrototypeOf(t,m),n&&n(t)},c.options.diffed=function(t){t.__k&&t.__k.forEach((function(t){if(t&&void 0===t.type){delete t.__,delete t.__b;var e=Object.keys(t).join(",");throw new Error("Objects are not valid as a child. Encountered an object with the keys {"+e+"}.")}}));var n=t.__c;if(n&&n.__H){var r=n.__H;Array.isArray(r.__)&&r.__.forEach((function(e){if(e.__h&&(!e.__H||!Array.isArray(e.__H))){var n=o(t);console.warn("In "+n+" you are calling useMemo/useCallback without passing arguments.\nThis is a noop since it will not be able to memoize, it will execute it every render.\n\n"+a(t))}}))}if(e&&e(t),null!=t.__k)for(var i=[],c=0;c\n\t\t\t\t

Appuntiweb di Steffo

\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t}\n}\n","import style from './copyright.css';\r\nimport { Component } from 'preact';\r\n\r\nexport default class Copyright extends Component {\r\n\trender() {\r\n\t\treturn
© 2019 - Stefano Pigozzi - CC BY-SA 4.0 - Codice sorgente
;\r\n\t}\r\n}","import { h, Component } from 'preact';\n\nexport default function(req) {\n\tfunction Async() {\n\t\tComponent.call(this);\n\n\t\tlet b, old;\n\t\tthis.componentWillMount = () => {\n\t\t\tb = this.base = this.nextBase || this.__b; // short circuits 1st render\n\t\t\treq(m => {\n\t\t\t\tthis.setState({ child: m.default || m });\n\t\t\t});\n\t\t};\n\n\t\tthis.shouldComponentUpdate = (_, nxt) => {\n\t\t\tnxt = nxt.child === void 0;\n\t\t\tif (nxt && old === void 0 && b) {\n\t\t\t\t// Node.TEXT_NODE\n\t\t\t\tif (b.nodeType === 3) {\n\t\t\t\t\told = b.data;\n\t\t\t\t} else {\n\t\t\t\t\told = h(b.nodeName, {\n\t\t\t\t\t\tdangerouslySetInnerHTML: { __html: b.innerHTML },\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\told = ''; // dump it\n\t\t\t}\n\t\t\treturn !nxt;\n\t\t};\n\n\t\tthis.render = (p, s) => (s.child ? h(s.child, p) : old);\n\t}\n\t(Async.prototype = new Component()).constructor = Async;\n\treturn Async;\n}\n","\n\t\timport Async from \"../../node_modules/@preact/async-loader/async-legacy.js\";\n\n\t\tfunction load(cb) {\n\t\t\trequire.ensure([], function (require) {\n\t\t\t\tcb( require(\"!!../../node_modules/babel-loader/lib/index.js??ref--4!./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 { initDebug } from './debug';\nimport 'preact/devtools';\n\ninitDebug();\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"copyright\":\"copyright__2FTnU\"};","import options from './options';\n\n/**\n * Create an virtual node (used for JSX)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * constructor for this virtual node\n * @param {object | null | undefined} [props] The properties of the virtual node\n * @param {Array} [children] The children of the virtual node\n * @returns {import('./internal').VNode}\n */\nexport function createElement(type, props, children) {\n\tlet normalizedProps = {},\n\t\ti;\n\tfor (i in props) {\n\t\tif (i !== 'key' && i !== 'ref') normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 3) {\n\t\tchildren = [children];\n\t\t// https://github.com/preactjs/preact/issues/1916\n\t\tfor (i = 3; i < arguments.length; i++) {\n\t\t\tchildren.push(arguments[i]);\n\t\t}\n\t}\n\tif (children != null) {\n\t\tnormalizedProps.children = children;\n\t}\n\n\t// If a Component VNode, check for and apply defaultProps\n\t// Note: type may be undefined in development, must never error here.\n\tif (typeof type === 'function' && type.defaultProps != null) {\n\t\tfor (i in type.defaultProps) {\n\t\t\tif (normalizedProps[i] === undefined) {\n\t\t\t\tnormalizedProps[i] = type.defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn createVNode(\n\t\ttype,\n\t\tnormalizedProps,\n\t\tprops && props.key,\n\t\tprops && props.ref\n\t);\n}\n\n/**\n * Create a VNode (used internally by Preact)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * Constructor for this virtual node\n * @param {object | string | number | null} props The properties of this virtual node.\n * If this virtual node represents a text node, this is the text of the node (string or number).\n * @param {string | number | null} key The key for this virtual node, used when\n * diffing it against its children\n * @param {import('./internal').VNode[\"ref\"]} ref The ref property that will\n * receive a reference to its created child\n * @returns {import('./internal').VNode}\n */\nexport function createVNode(type, props, key, ref) {\n\t// V8 seems to be better at detecting type shapes if the object is allocated from the same call site\n\t// Do not inline into createElement and coerceToVNode!\n\tconst vnode = {\n\t\ttype,\n\t\tprops,\n\t\tkey,\n\t\tref,\n\t\t_children: null,\n\t\t_parent: null,\n\t\t_depth: 0,\n\t\t_dom: null,\n\t\t// _nextDom must be initialized to undefined b/c it will eventually\n\t\t// be set to dom.nextSibling which can return `null` and it is important\n\t\t// to be able to distinguish between an uninitialized _nextDom and\n\t\t// a _nextDom that has been set to `null`\n\t\t_nextDom: undefined,\n\t\t_component: null,\n\t\tconstructor: undefined\n\t};\n\n\tif (options.vnode) options.vnode(vnode);\n\n\treturn vnode;\n}\n\nexport function createRef() {\n\treturn {};\n}\n\nexport function Fragment(props) {\n\treturn props.children;\n}\n\n/**\n * Check if a the argument is a valid Preact VNode.\n * @param {*} vnode\n * @returns {vnode is import('./internal').VNode}\n */\nexport const isValidElement = vnode =>\n\tvnode != null && vnode.constructor === undefined;\n","import { assign } from './util';\nimport { diff, commitRoot } from './diff/index';\nimport options from './options';\nimport { Fragment } from './create-element';\n\n/**\n * Base Component class. Provides `setState()` and `forceUpdate()`, which\n * trigger rendering\n * @param {object} props The initial component props\n * @param {object} context The initial context from parent components'\n * getChildContext\n */\nexport function Component(props, context) {\n\tthis.props = props;\n\tthis.context = context;\n}\n\n/**\n * Update component state and schedule a re-render.\n * @param {object | ((s: object, p: object) => object)} update A hash of state\n * properties to update with new values or a function that given the current\n * state and props returns a new partial state\n * @param {() => void} [callback] A function to be called once component state is\n * updated\n */\nComponent.prototype.setState = function(update, callback) {\n\t// only clone state when copying to nextState the first time.\n\tlet s;\n\tif (this._nextState !== this.state) {\n\t\ts = this._nextState;\n\t} else {\n\t\ts = this._nextState = assign({}, this.state);\n\t}\n\n\tif (typeof update == 'function') {\n\t\tupdate = update(s, this.props);\n\t}\n\n\tif (update) {\n\t\tassign(s, update);\n\t}\n\n\t// Skip update if updater function returned null\n\tif (update == null) return;\n\n\tif (this._vnode) {\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Immediately perform a synchronous re-render of the component\n * @param {() => void} [callback] A function to be called after component is\n * re-rendered\n */\nComponent.prototype.forceUpdate = function(callback) {\n\tif (this._vnode) {\n\t\t// Set render mode so that we can differentiate where the render request\n\t\t// is coming from. We need this because forceUpdate should never call\n\t\t// shouldComponentUpdate\n\t\tthis._force = true;\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\n * Virtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\n * @param {object} props Props (eg: JSX attributes) received from parent\n * element/component\n * @param {object} state The component's current state\n * @param {object} context Context object, as returned by the nearest\n * ancestor's `getChildContext()`\n * @returns {import('./index').ComponentChildren | void}\n */\nComponent.prototype.render = Fragment;\n\n/**\n * @param {import('./internal').VNode} vnode\n * @param {number | null} [childIndex]\n */\nexport function getDomSibling(vnode, childIndex) {\n\tif (childIndex == null) {\n\t\t// Use childIndex==null as a signal to resume the search from the vnode's sibling\n\t\treturn vnode._parent\n\t\t\t? getDomSibling(vnode._parent, vnode._parent._children.indexOf(vnode) + 1)\n\t\t\t: null;\n\t}\n\n\tlet sibling;\n\tfor (; childIndex < vnode._children.length; childIndex++) {\n\t\tsibling = vnode._children[childIndex];\n\n\t\tif (sibling != null && sibling._dom != null) {\n\t\t\t// Since updateParentDomPointers keeps _dom pointer correct,\n\t\t\t// we can rely on _dom to tell us if this subtree contains a\n\t\t\t// rendered DOM node, and what the first rendered DOM node is\n\t\t\treturn sibling._dom;\n\t\t}\n\t}\n\n\t// If we get here, we have not found a DOM node in this vnode's children.\n\t// We must resume from this vnode's sibling (in it's parent _children array)\n\t// Only climb up and search the parent if we aren't searching through a DOM\n\t// VNode (meaning we reached the DOM parent of the original vnode that began\n\t// the search)\n\treturn typeof vnode.type === 'function' ? getDomSibling(vnode) : null;\n}\n\n/**\n * Trigger in-place re-rendering of a component.\n * @param {import('./internal').Component} component The component to rerender\n */\nfunction renderComponent(component) {\n\tlet vnode = component._vnode,\n\t\toldDom = vnode._dom,\n\t\tparentDom = component._parentDom;\n\n\tif (parentDom) {\n\t\tlet commitQueue = [];\n\t\tlet newDom = diff(\n\t\t\tparentDom,\n\t\t\tvnode,\n\t\t\tassign({}, vnode),\n\t\t\tcomponent._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}\n */\nlet rerenderQueue = [];\n\n/**\n * Asynchronously schedule a callback\n * @type {(cb: () => void) => void}\n */\n/* istanbul ignore next */\n// Note the following line isn't tree-shaken by rollup cuz of rollup/rollup#2566\nconst defer =\n\ttypeof Promise == 'function'\n\t\t? Promise.prototype.then.bind(Promise.resolve())\n\t\t: setTimeout;\n\n/*\n * The value of `Component.debounce` must asynchronously invoke the passed in callback. It is\n * important that contributors to Preact can consistently reason about what calls to `setState`, etc.\n * do, and when their effects will be applied. See the links below for some further reading on designing\n * asynchronous APIs.\n * * [Designing APIs for Asynchrony](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\n * * [Callbacks synchronous and asynchronous](https://blog.ometer.com/2011/07/24/callbacks-synchronous-and-asynchronous/)\n */\n\nlet prevDebounce;\n\n/**\n * Enqueue a rerender of a component\n * @param {import('./internal').Component} c The component to rerender\n */\nexport function enqueueRender(c) {\n\tif (\n\t\t(!c._dirty && (c._dirty = true) && rerenderQueue.push(c) === 1) ||\n\t\tprevDebounce !== options.debounceRendering\n\t) {\n\t\tprevDebounce = options.debounceRendering;\n\t\t(prevDebounce || defer)(process);\n\t}\n}\n\n/** Flush the render queue by rerendering all queued components */\nfunction process() {\n\tlet c;\n\trerenderQueue.sort((a, b) => b._vnode._depth - a._vnode._depth);\n\twhile ((c = rerenderQueue.pop())) {\n\t\t// forceUpdate's callback argument is reused here to indicate a non-forced update.\n\t\tif (c._dirty) renderComponent(c);\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} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {Node | Text} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} isHydrating Whether or not we are in hydration\n */\nexport function diffChildren(\n\tparentDom,\n\tnewParentVNode,\n\toldParentVNode,\n\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 import('../internal').VNode} [callback]\n * A function to invoke for each child before it is added to the flattened list.\n * @param {Array} [flattened] An flat array of children to modify\n * @returns {import('../internal').VNode[]}\n */\nexport function toChildArray(children, callback, flattened) {\n\tif (flattened == null) flattened = [];\n\n\tif (children == null || typeof children === 'boolean') {\n\t\tif (callback) flattened.push(callback(null));\n\t} else if (Array.isArray(children)) {\n\t\tfor (let i = 0; i < children.length; i++) {\n\t\t\ttoChildArray(children[i], callback, flattened);\n\t\t}\n\t} else if (!callback) {\n\t\tflattened.push(children);\n\t} else if (typeof children === 'string' || typeof children === 'number') {\n\t\tflattened.push(callback(createVNode(null, children, null, null)));\n\t} else if (children._dom != null || children._component != null) {\n\t\tflattened.push(\n\t\t\tcallback(createVNode(children.type, children.props, children.key, null))\n\t\t);\n\t} else {\n\t\tflattened.push(callback(children));\n\t}\n\n\treturn flattened;\n}\n","import { IS_NON_DIMENSIONAL } from '../constants';\nimport options from '../options';\n\n/**\n * Diff the old and new properties of a VNode and apply changes to the DOM node\n * @param {import('../internal').PreactElement} dom The DOM node to apply\n * changes to\n * @param {object} newProps The new props\n * @param {object} oldProps The old props\n * @param {boolean} isSvg Whether or not this node is an SVG node\n * @param {boolean} hydrate Whether or not we are in hydration mode\n */\nexport function diffProps(dom, newProps, oldProps, isSvg, hydrate) {\n\tlet i;\n\n\tfor (i in oldProps) {\n\t\tif (!(i in newProps)) {\n\t\t\tsetProperty(dom, i, null, oldProps[i], isSvg);\n\t\t}\n\t}\n\n\tfor (i in newProps) {\n\t\tif (\n\t\t\t(!hydrate || typeof newProps[i] == 'function') &&\n\t\t\ti !== 'value' &&\n\t\t\ti !== 'checked' &&\n\t\t\toldProps[i] !== newProps[i]\n\t\t) {\n\t\t\tsetProperty(dom, i, newProps[i], oldProps[i], isSvg);\n\t\t}\n\t}\n}\n\nfunction setStyle(style, key, value) {\n\tif (key[0] === '-') {\n\t\tstyle.setProperty(key, value);\n\t} else if (\n\t\ttypeof value === 'number' &&\n\t\tIS_NON_DIMENSIONAL.test(key) === false\n\t) {\n\t\tstyle[key] = value + 'px';\n\t} else if (value == null) {\n\t\tstyle[key] = '';\n\t} else {\n\t\tstyle[key] = value;\n\t}\n}\n\n/**\n * Set a property value on a DOM node\n * @param {import('../internal').PreactElement} dom The DOM node to modify\n * @param {string} name The name of the property to set\n * @param {*} value The value to set the property to\n * @param {*} oldValue The old value the property had\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node or not\n */\nfunction setProperty(dom, name, value, oldValue, isSvg) {\n\tif (isSvg) {\n\t\tif (name === 'className') {\n\t\t\tname = 'class';\n\t\t}\n\t} else if (name === 'class') {\n\t\tname = 'className';\n\t}\n\n\tif (name === 'key' || name === 'children') {\n\t} else if (name === 'style') {\n\t\tconst s = dom.style;\n\n\t\tif (typeof value === 'string') {\n\t\t\ts.cssText = value;\n\t\t} else {\n\t\t\tif (typeof oldValue === 'string') {\n\t\t\t\ts.cssText = '';\n\t\t\t\toldValue = null;\n\t\t\t}\n\n\t\t\tif (oldValue) {\n\t\t\t\tfor (let i in oldValue) {\n\t\t\t\t\tif (!(value && i in value)) {\n\t\t\t\t\t\tsetStyle(s, i, '');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (value) {\n\t\t\t\tfor (let i in value) {\n\t\t\t\t\tif (!oldValue || value[i] !== oldValue[i]) {\n\t\t\t\t\t\tsetStyle(s, i, value[i]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// Benchmark for comparison: https://esbench.com/bench/574c954bdb965b9a00965ac6\n\telse if (name[0] === 'o' && name[1] === 'n') {\n\t\tlet useCapture = name !== (name = name.replace(/Capture$/, ''));\n\t\tlet nameLower = name.toLowerCase();\n\t\tname = (nameLower in dom ? nameLower : name).slice(2);\n\n\t\tif (value) {\n\t\t\tif (!oldValue) dom.addEventListener(name, eventProxy, useCapture);\n\t\t\t(dom._listeners || (dom._listeners = {}))[name] = value;\n\t\t} else {\n\t\t\tdom.removeEventListener(name, eventProxy, useCapture);\n\t\t}\n\t} else if (\n\t\tname !== 'list' &&\n\t\tname !== 'tagName' &&\n\t\t// HTMLButtonElement.form and HTMLInputElement.form are read-only but can be set using\n\t\t// setAttribute\n\t\tname !== 'form' &&\n\t\tname !== 'type' &&\n\t\tname !== 'size' &&\n\t\t!isSvg &&\n\t\tname in dom\n\t) {\n\t\tdom[name] = value == null ? '' : value;\n\t} else if (\n\t\ttypeof value !== 'function' &&\n\t\tname !== 'dangerouslySetInnerHTML'\n\t) {\n\t\tif (name !== (name = name.replace(/^xlink:?/, ''))) {\n\t\t\tif (value == null || value === false) {\n\t\t\t\tdom.removeAttributeNS(\n\t\t\t\t\t'http://www.w3.org/1999/xlink',\n\t\t\t\t\tname.toLowerCase()\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tdom.setAttributeNS(\n\t\t\t\t\t'http://www.w3.org/1999/xlink',\n\t\t\t\t\tname.toLowerCase(),\n\t\t\t\t\tvalue\n\t\t\t\t);\n\t\t\t}\n\t\t} else if (\n\t\t\tvalue == null ||\n\t\t\t(value === false &&\n\t\t\t\t// ARIA-attributes have a different notion of boolean values.\n\t\t\t\t// The value `false` is different from the attribute not\n\t\t\t\t// existing on the DOM, so we can't remove it. For non-boolean\n\t\t\t\t// ARIA-attributes we could treat false as a removal, but the\n\t\t\t\t// amount of exceptions would cost us too many bytes. On top of\n\t\t\t\t// that other VDOM frameworks also always stringify `false`.\n\t\t\t\t!/^ar/.test(name))\n\t\t) {\n\t\t\tdom.removeAttribute(name);\n\t\t} else {\n\t\t\tdom.setAttribute(name, value);\n\t\t}\n\t}\n}\n\n/**\n * Proxy an event to hooked event handlers\n * @param {Event} e The event object from the browser\n * @private\n */\nfunction eventProxy(e) {\n\tthis._listeners[e.type](options.event ? options.event(e) : e);\n}\n","import { EMPTY_OBJ, EMPTY_ARR } from '../constants';\nimport { Component } from '../component';\nimport { Fragment } from '../create-element';\nimport { diffChildren } from './children';\nimport { diffProps } from './props';\nimport { assign, removeNode } from '../util';\nimport options from '../options';\n\n/**\n * Diff two virtual nodes and apply proper changes to the DOM\n * @param {import('../internal').PreactElement} parentDom The parent of the DOM element\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object. Modified by getChildContext\n * @param {boolean} isSvg Whether or not this element is an SVG node\n * @param {Array} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {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\tc.shouldComponentUpdate != null &&\n\t\t\t\t\tc.shouldComponentUpdate(newProps, c._nextState, componentContext) ===\n\t\t\t\t\t\tfalse\n\t\t\t\t) {\n\t\t\t\t\tc.props = newProps;\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t\tc._dirty = false;\n\t\t\t\t\tc._vnode = newVNode;\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\t\t\tcommitQueue.push(c);\n\t\t\t\t\t}\n\t\t\t\t\tfor (tmp = 0; tmp < newVNode._children.length; tmp++) {\n\t\t\t\t\t\tif (newVNode._children[tmp]) {\n\t\t\t\t\t\t\tnewVNode._children[tmp]._parent = newVNode;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\n\t\t\t\tif (c.componentWillUpdate != null) {\n\t\t\t\t\tc.componentWillUpdate(newProps, c._nextState, 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 {\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\toptions._catchError(e, newVNode, oldVNode);\n\t}\n\n\treturn newVNode._dom;\n}\n\n/**\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').VNode} root\n */\nexport function commitRoot(commitQueue, root) {\n\tif (options._commit) options._commit(root, commitQueue);\n\n\tcommitQueue.some(c => {\n\t\ttry {\n\t\t\tcommitQueue = c._renderCallbacks;\n\t\t\tc._renderCallbacks = [];\n\t\t\tcommitQueue.some(cb => {\n\t\t\t\tcb.call(c);\n\t\t\t});\n\t\t} catch (e) {\n\t\t\toptions._catchError(e, c._vnode);\n\t\t}\n\t});\n}\n\n/**\n * Diff two virtual nodes representing DOM element\n * @param {import('../internal').PreactElement} dom The DOM element representing\n * the virtual nodes being diffed\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {*} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @returns {import('../internal').PreactElement}\n */\nfunction diffElementNodes(\n\tdom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\tisHydrating\n) {\n\tlet 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}\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 if (newVNode !== oldVNode) {\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} rest Any additional arguments will be used as replacement children.\n */\nexport function cloneElement(vnode, props) {\n\tprops = assign(assign({}, vnode.props), props);\n\tif (arguments.length > 2) props.children = EMPTY_ARR.slice.call(arguments, 2);\n\treturn createVNode(\n\t\tvnode.type,\n\t\tprops,\n\t\tprops.key || vnode.key,\n\t\tprops.ref || vnode.ref\n\t);\n}\n","import { enqueueRender } from './component';\n\nexport let i = 0;\n\nexport function createContext(defaultValue) {\n\tconst ctx = {};\n\n\tconst context = {\n\t\t_id: '__cC' + i++,\n\t\t_defaultValue: defaultValue,\n\t\tConsumer(props, context) {\n\t\t\treturn props.children(context);\n\t\t},\n\t\tProvider(props) {\n\t\t\tif (!this.getChildContext) {\n\t\t\t\tconst subs = [];\n\t\t\t\tthis.getChildContext = () => {\n\t\t\t\t\tctx[context._id] = this;\n\t\t\t\t\treturn ctx;\n\t\t\t\t};\n\t\t\t\tthis.shouldComponentUpdate = _props => {\n\t\t\t\t\tif (props.value !== _props.value) {\n\t\t\t\t\t\tsubs.some(c => {\n\t\t\t\t\t\t\tc.context = _props.value;\n\t\t\t\t\t\t\tenqueueRender(c);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tthis.sub = c => {\n\t\t\t\t\tsubs.push(c);\n\t\t\t\t\tlet old = c.componentWillUnmount;\n\t\t\t\t\tc.componentWillUnmount = () => {\n\t\t\t\t\t\tsubs.splice(subs.indexOf(c), 1);\n\t\t\t\t\t\told && old.call(c);\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn props.children;\n\t\t}\n\t};\n\n\tcontext.Consumer.contextType = context;\n\n\treturn context;\n}\n","export const 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 =>
{props.children}
// div's owner is Foo\n * const Bar = props => {\n * return (\n * // 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 = ;\\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
should have a
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 should have a 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 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 .' +\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\tgetDisplayName(vnode),\n\t\t\t\tserializeVNode(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// `{{ foo: 123, bar: \"abc\" }}`).\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);\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 ? '>..' : ' />'\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\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":""} \ No newline at end of file +{"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","0","e","promises","Promise","resolve","reject","href","fullhref","p","existingLinkTags","document","getElementsByTagName","dataHref","tag","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","jsonpScriptSrc","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","head","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","s","cb","App","render","id","history","createHashHistory","path","Component","Copyright","class","style","copyright","req","Async","b","old","this","componentWillMount","base","nextBase","__b","setState","child","default","shouldComponentUpdate","_","nxt","nodeType","h","nodeName","dangerouslySetInnerHTML","__html","innerHTML","constructor","let","EMPTY","super","const","assign","obj","props","removeNode","node","children","normalizedProps","arguments","defaultProps","createVNode","ref","vnode","_children","_parent","_depth","_dom","_nextDom","_component","options","createRef","Fragment","context","getDomSibling","childIndex","indexOf","sibling","updateParentDomPointers","enqueueRender","_dirty","rerenderQueue","prevDebounce","debounceRendering","defer","process","component","commitQueue","newDom","oldDom","parentDom","sort","a","_vnode","pop","_parentDom","diff","_globalContext","ownerSVGElement","commitRoot","diffChildren","newParentVNode","oldParentVNode","globalContext","isSvg","excessDomChildren","isHydrating","j","oldVNode","sibDom","firstChildDom","refs","oldChildren","EMPTY_ARR","oldChildrenLength","EMPTY_OBJ","toChildArray","childVNode","nextDom","outer","nextSibling","insertBefore","unmount","applyRef","callback","flattened","Array","isArray","setStyle","setProperty","IS_NON_DIMENSIONAL","test","dom","oldValue","useCapture","nameLower","cssText","replace","toLowerCase","addEventListener","eventProxy","_listeners","removeEventListener","removeAttributeNS","setAttributeNS","removeAttribute","newVNode","tmp","isNew","oldProps","oldState","snapshot","clearProcessingException","newProps","provider","componentContext","newType","_diff","contextType","_id","_defaultValue","_processingException","_pendingError","doRender","sub","state","_renderCallbacks","_nextState","getDerivedStateFromProps","componentDidMount","componentWillReceiveProps","_force","componentWillUpdate","componentDidUpdate","_render","getChildContext","getSnapshotBeforeUpdate","diffElementNodes","diffed","_catchError","root","_commit","some","oldHtml","newHtml","localName","createTextNode","createElementNS","is","childNodes","attributes","hydrate","diffProps","checked","current","parentVNode","skipRemove","componentWillUnmount","replaceNode","_root","IS_HYDRATE","cloneElement","createContext","defaultValue","ctx","Consumer","Provider","subs","_this","_props","splice","isValidElement","hasCaught","getDerivedStateFromError","componentDidCatch","update","forceUpdate","Preact","interopDefault","navigator","serviceWorker","register","__webpack_public_path__","require","getElementById","body","firstElementChild","app","preRenderData","inlineDataElement","querySelector","JSON","parse","url","CLI_DATA","init","_extends","source","apply","isAbsolute","pathname","charAt","spliceOne","list","index","k","addLeadingSlash","stripLeadingSlash","substr","stripBasename","prefix","hasBasename","stripTrailingSlash","createPath","location","search","hash","createLocation","currentLocation","hashIndex","searchIndex","parsePath","decodeURI","URIError","resolvePathname","createTransitionManager","prompt","listeners","setPrompt","nextPrompt","confirmTransitionTo","action","getUserConfirmation","result","appendListener","fn","listener","isActive","filter","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","listen","unlisten","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":"aACE,SAASA,EAAqBC,GAQ7B,IAPA,IAMIC,EAAUC,EANVC,EAAWH,EAAK,GAChBI,EAAcJ,EAAK,GAKAK,EAAI,EAAGC,EAAW,GACpCD,EAAIF,EAASI,OAAQF,IACzBH,EAAUC,EAASE,GAChBG,OAAOC,UAAUC,eAAeC,KAAKC,EAAiBV,IAAYU,EAAgBV,IACpFI,EAASO,KAAKD,EAAgBV,GAAS,IAExCU,EAAgBV,GAAW,EAE5B,IAAID,KAAYG,EACZI,OAAOC,UAAUC,eAAeC,KAAKP,EAAaH,KACpDa,EAAQb,GAAYG,EAAYH,IAKlC,IAFGc,GAAqBA,EAAoBf,GAEtCM,EAASC,QACdD,EAASU,OAATV,GA6BF,SAASW,EAAoBhB,GAG5B,GAAGiB,EAAiBjB,GACnB,OAAOiB,EAAiBjB,GAAUkB,QAGnC,IAAIC,EAASF,EAAiBjB,GAAY,CACzCI,EAAGJ,EACHoB,GAAG,EACHF,QAAS,IAUV,OANAL,EAAQb,GAAUU,KAAKS,EAAOD,QAASC,EAAQA,EAAOD,QAASF,GAG/DG,EAAOC,GAAI,EAGJD,EAAOD,QA1Cf,IAAID,EAAmB,GAGnBI,EAAqB,CACxBC,EAAG,GAMAX,EAAkB,CACrBW,EAAG,GAoCJN,EAAoBO,EAAI,SAAuBtB,GAC9C,IAAIuB,EAAW,GAKZH,EAAmBpB,GAAUuB,EAASZ,KAAKS,EAAmBpB,IACzB,IAAhCoB,EAAmBpB,IAFX,CAAC,EAAI,EAAE,EAAI,EAAE,EAAI,EAAE,EAAI,EAAE,EAAI,EAAE,EAAI,EAAE,EAAI,EAAE,EAAI,EAAE,GAAK,GAEfA,IACtDuB,EAASZ,KAAKS,EAAmBpB,GAAW,IAAIwB,SAAQ,SAASC,EAASC,GAIzE,IAHA,IAAIC,GAAa,CAAC,EAAI,wCAAwC,EAAI,mBAAmB,EAAI,wBAAwB,EAAI,eAAe,EAAI,aAAa,EAAI,qBAAqB,EAAI,8BAA8B,EAAI,mBAAmB,GAAK,uBAAuB3B,IAAUA,GAAW,UAAY,CAAC,EAAI,QAAQ,EAAI,QAAQ,EAAI,QAAQ,EAAI,QAAQ,EAAI,QAAQ,EAAI,QAAQ,EAAI,QAAQ,EAAI,QAAQ,GAAK,SAASA,GAAW,OAC1Z4B,EAAWb,EAAoBc,EAAIF,EACnCG,EAAmBC,SAASC,qBAAqB,QAC7C7B,EAAI,EAAGA,EAAI2B,EAAiBzB,OAAQF,IAAK,CAChD,IACI8B,GADAC,EAAMJ,EAAiB3B,IACRgC,aAAa,cAAgBD,EAAIC,aAAa,QACjE,GAAe,eAAZD,EAAIE,MAAyBH,IAAaN,GAAQM,IAAaL,GAAW,OAAOH,IAErF,IAAIY,EAAoBN,SAASC,qBAAqB,SACtD,IAAQ7B,EAAI,EAAGA,EAAIkC,EAAkBhC,OAAQF,IAAK,CACjD,IAAI+B,EAEJ,IADID,GADAC,EAAMG,EAAkBlC,IACTgC,aAAa,gBAChBR,GAAQM,IAAaL,EAAU,OAAOH,IAEvD,IAAIa,EAAUP,SAASQ,cAAc,QACrCD,EAAQF,IAAM,aACdE,EAAQE,KAAO,WACfF,EAAQG,OAAShB,EACjBa,EAAQI,QAAU,SAASC,GAC1B,IAAIC,EAAUD,GAASA,EAAME,QAAUF,EAAME,OAAOC,KAAOlB,EACvDmB,EAAM,IAAIC,MAAM,qBAAuBhD,EAAU,cAAgB4C,EAAU,KAC/EG,EAAIE,KAAO,wBACXF,EAAIH,QAAUA,SACPxB,EAAmBpB,GAC1BsC,EAAQY,WAAWC,YAAYb,GAC/BZ,EAAOqB,IAERT,EAAQX,KAAOC,EAEJG,SAASC,qBAAqB,QAAQ,GAC5CoB,YAAYd,MACfe,MAAK,WACPjC,EAAmBpB,GAAW,MAMhC,IAAIsD,EAAqB5C,EAAgBV,GACzC,GAA0B,IAAvBsD,EAGF,GAAGA,EACF/B,EAASZ,KAAK2C,EAAmB,QAC3B,CAEN,IAAIC,EAAU,IAAI/B,SAAQ,SAASC,EAASC,GAC3C4B,EAAqB5C,EAAgBV,GAAW,CAACyB,EAASC,MAE3DH,EAASZ,KAAK2C,EAAmB,GAAKC,GAGtC,IACIC,EADAC,EAAS1B,SAASQ,cAAc,UAGpCkB,EAAOC,QAAU,QACjBD,EAAOE,QAAU,IACb5C,EAAoB6C,IACvBH,EAAOI,aAAa,QAAS9C,EAAoB6C,IAElDH,EAAOX,IAnGV,SAAwB9C,GACvB,OAAOe,EAAoBc,EAAI,IAAM,CAAC,EAAI,wCAAwC,EAAI,mBAAmB,EAAI,wBAAwB,EAAI,eAAe,EAAI,aAAa,EAAI,qBAAqB,EAAI,8BAA8B,EAAI,mBAAmB,GAAK,uBAAuB7B,IAAUA,GAAW,UAAY,CAAC,EAAI,QAAQ,EAAI,QAAQ,EAAI,QAAQ,EAAI,QAAQ,EAAI,QAAQ,EAAI,QAAQ,EAAI,QAAQ,EAAI,QAAQ,GAAK,SAASA,GAAW,MAkGna8D,CAAe9D,GAG5B,IAAI+D,EAAQ,IAAIf,MAChBQ,EAAmB,SAAUb,GAE5Bc,EAAOf,QAAUe,EAAOhB,OAAS,KACjCuB,aAAaL,GACb,IAAIM,EAAQvD,EAAgBV,GAC5B,GAAa,IAAViE,EAAa,CACf,GAAGA,EAAO,CACT,IAAIC,EAAYvB,IAAyB,SAAfA,EAAMH,KAAkB,UAAYG,EAAMH,MAChE2B,EAAUxB,GAASA,EAAME,QAAUF,EAAME,OAAOC,IACpDiB,EAAMK,QAAU,iBAAmBpE,EAAU,cAAgBkE,EAAY,KAAOC,EAAU,IAC1FJ,EAAMM,KAAO,iBACbN,EAAMvB,KAAO0B,EACbH,EAAMnB,QAAUuB,EAChBF,EAAM,GAAGF,GAEVrD,EAAgBV,QAAWsE,IAG7B,IAAIX,EAAUY,YAAW,WACxBf,EAAiB,CAAEhB,KAAM,UAAWK,OAAQY,MAC1C,MACHA,EAAOf,QAAUe,EAAOhB,OAASe,EACjCzB,SAASyC,KAAKpB,YAAYK,GAG5B,OAAOjC,QAAQiD,IAAIlD,IAIpBR,EAAoB2D,EAAI9D,EAGxBG,EAAoB4D,EAAI3D,EAGxBD,EAAoB6D,EAAI,SAAS3D,EAASoD,EAAMQ,GAC3C9D,EAAoB+D,EAAE7D,EAASoD,IAClC/D,OAAOyE,eAAe9D,EAASoD,EAAM,CAAEW,YAAY,EAAMC,IAAKJ,KAKhE9D,EAAoBmE,EAAI,SAASjE,GACX,oBAAXkE,QAA0BA,OAAOC,aAC1C9E,OAAOyE,eAAe9D,EAASkE,OAAOC,YAAa,CAAEC,MAAO,WAE7D/E,OAAOyE,eAAe9D,EAAS,aAAc,CAAEoE,OAAO,KAQvDtE,EAAoBuE,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQtE,EAAoBsE,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,iBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKnF,OAAOoF,OAAO,MAGvB,GAFA3E,EAAoBmE,EAAEO,GACtBnF,OAAOyE,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOtE,EAAoB6D,EAAEa,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIR1E,EAAoB8E,EAAI,SAAS3E,GAChC,IAAI2D,EAAS3D,GAAUA,EAAOsE,WAC7B,WAAwB,OAAOtE,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAH,EAAoB6D,EAAEC,EAAQ,IAAKA,GAC5BA,GAIR9D,EAAoB+D,EAAI,SAASgB,EAAQC,GAAY,OAAOzF,OAAOC,UAAUC,eAAeC,KAAKqF,EAAQC,IAGzGhF,EAAoBc,EAAI,IAGxBd,EAAoBiF,GAAK,SAASjD,GAA2B,MAApBkD,QAAQlC,MAAMhB,GAAYA,GAEnE,IAAImD,EAAaC,OAAqB,aAAIA,OAAqB,cAAK,GAChEC,EAAmBF,EAAWvF,KAAKiF,KAAKM,GAC5CA,EAAWvF,KAAOd,EAClBqG,EAAaA,EAAWG,QACxB,IAAI,IAAIlG,EAAI,EAAGA,EAAI+F,EAAW7F,OAAQF,IAAKN,EAAqBqG,EAAW/F,IAC3E,IAAIU,EAAsBuF,EAInBrF,EAAoBA,EAAoBuF,EAAI,Q,qGC1OpC,iBANf,SAAcC,GACb,wBACCA,EAAI,EAAQ,UACZ,8B,oDCGa,iBANf,SAAcA,GACb,uBACCA,EAAI,EAAQ,UACZ,8B,oDCGa,iBANf,SAAcA,GACb,uBACCA,EAAI,EAAQ,UACZ,8B,kDCGa,iBANf,SAAcA,GACb,uBACCA,EAAI,EAAQ,UACZ,8B,gHCGa,iBANf,SAAcA,GACb,uBACCA,EAAI,EAAQ,UACZ,8B,iTCoBiBC,E,gLACpBC,OAAA,WACC,OACC,SAAKC,GAAG,OACP,YAAI,OAAG/E,KAAK,KAAR,cAAJ,IAA+B,qBAAU,OAAGA,KAAK,sBAAR,YACzC,EAAC,IAAD,CAAQgF,QAASC,eAChB,EAAC,IAAD,CAAMC,KAAK,MACX,EAAC,IAAD,CAAQA,KAAK,YACb,EAAC,IAAD,CAAeA,KAAK,mBACpB,EAAC,IAAD,CAAcA,KAAK,kBACnB,EAAC,IAAD,CAAYA,KAAK,gBACjB,EAAC,IAAD,CAAuBA,KAAK,2BAC5B,EAAC,IAAD,CAAYA,KAAK,gBACjB,EAAC,IAAD,CAAiBA,KAAK,qBACtB,EAAC,IAAD,CAAiCA,KAAM,sCAExC,EAAC,IAAD,Q,GAhB6BC,c,kICvBZC,E,gLACpBN,OAAA,WACC,OAAO,SAAKO,MAAOC,IAAMC,WAAlB,8BAAwD,OAAGvF,KAAK,mDAAR,gBAAxD,MAAqI,OAAGA,KAAK,0CAAR,qB,aAFvGmF,a,0DCHvC,gBAEe,aAASK,GACvB,SAASC,IAAQ,IAGZC,EAAGC,EAHS,OAChBR,YAAUrG,KAAK8G,MAGfA,KAAKC,mBAAqB,WACzBH,EAAI,EAAKI,KAAO,EAAKC,UAAY,EAAKC,IACtCR,GAAI,SAAAzC,GACH,EAAKkD,SAAS,CAAEC,MAAOnD,EAAEoD,SAAWpD,QAItC6C,KAAKQ,sBAAwB,SAACC,EAAGC,GAchC,OATEX,GAJFW,OAAoB,IAAdA,EAAIJ,aACS,IAARP,GAAkBD,EAET,IAAfA,EAAEa,SACCb,EAAEvH,KAEFqI,YAAEd,EAAEe,SAAU,CACnBC,wBAAyB,CAAEC,OAAQjB,EAAEkB,aAIjC,IAECN,GAGTV,KAAKd,OAAS,SAAC5E,EAAGyE,GAAJ,OAAWA,EAAEuB,MAAQM,YAAE7B,EAAEuB,MAAOhG,GAAKyF,GAGpD,OADCF,EAAM7G,UAAY,IAAIuG,aAAa0B,YAAcpB,EAC3CA,I,kDCzBS,iBANf,SAAcb,GACb,uBACCA,EAAI,EAAQ,UACZ,8B,kDCGa,iBANf,SAAcA,GACb,uBACCA,EAAI,EAAQ,UACZ,8B,kCCHJ,SAAgB,EAAO,EAAK,GAE3B,IAAKkC,IAAI,KAAK,EACb,EAAI,GAAK,EAAM,GAEhB,OAAO,EAGR,SAAgB,EAAK,EAAK,EAAO,GAChCA,IAGC,EAHG,EAAM,wBACT,EAAI,EAAI,MAAM,GACd,EAAU,GAEX,GAAI,GAAK,EAAE,GAEV,IADAA,IAAI,EAAI,EAAE,GAAG,MAAM,KACV,EAAE,EAAG,EAAE,EAAE,OAAQ,IAAK,CAC9BA,IAAIvD,EAAI,EAAE,GAAG,MAAM,KACnB,EAAQ,mBAAmB,EAAE,KAAO,mBAAmB,EAAE,MAAM,GAAG,KAAK,MAGzE,EAAM,EAAW,EAAI,QAAQ,EAAK,KAClC,EAAQ,EAAW,GAAS,IAE5B,IADAuD,IAAI,EAAM,KAAK,IAAI,EAAI,OAAQ,EAAM,QAC5BtI,EAAE,EAAGA,EAAE,EAAKA,IACpB,GAAI,EAAMA,IAA2B,MAArB,EAAMA,GAAG,OAAO,GAAU,CACzCsI,IAAI,EAAQ,EAAMtI,GAAG,QAAQ,gBAAiB,IAC7C,GAAS,EAAMA,GAAG,MAAM,YAAcuI,GAAO,IAAM,GACnD,GAAQ,EAAM,QAAQ,KACtB,GAAQ,EAAM,QAAQ,KACtB,EAAM,EAAIvI,IAAM,GACjB,IAAK,IAAQ,IAAS,EAAM,QAAQ,KAAK,GAAK,GAAO,CACpD,GAAM,EACN,MAGD,GADA,EAAQ,GAAS,mBAAmB,GAChC,GAAQ,EAAM,CACjB,EAAQ,GAAS,EAAI,MAAMA,GAAG,IAAI,oBAAoB,KAAK,KAC3D,YAGG,GAAI,EAAMA,KAAK,EAAIA,GAAI,CAC3B,GAAM,EACN,MAGF,QAAmB,IAAf,EAAK,UAAwB,IAAN,IACpB,EAGR,SAAgB,EAAa,EAAG,GAC/B,OACE,EAAE,KAAO,EAAE,KAAQ,EAClB,EAAE,KAAO,EAAE,MAAS,EACnB,EAAE,MAAQ,EAAE,MAKjB,SAAgB,EAAuB,EAAO,GAG7C,OAFA,EAAM,MAAQ,EACd,EAAM,KAgBP,SAAmB,GAClB,OAAO,EAAM,MAAM,QAAU,GALT,EAKkB,EAAM,MAAM,KAJ3C,EAAW,GAAM,IAAI,GAAa,KAAK,KAD/C,IAAqB,EAZP,CAAU,GAChB,EAAM,MAGd,SAAgB,EAAW,GAC1B,OAAO,EAAI,QAAQ,eAAgB,IAAI,MAAM,KAG9C,SAAgB,EAAY,GAC3B,MAA0B,KAAnB,EAAQ,OAAO,GAAW,EAAI,MAAM,QAAQ,EAAQ,OAAO,EAAQ,OAAO,KAAQ,EAAI,ECnD9F,SAAS,IACRsI,IAAI,EAUJ,MAAO,KARN,EADG,GAAiB,EAAc,SAC5B,EAAc,SAEZ,GAAiB,EAAc,mBACjC,EAAc,qBAGI,oBAAX,SAAyB,SAAW,GAEpC,UAAY,KAAK,EAAI,QAAU,IAK9C,SAAS,EAAM,EAAK,GAWnB,Y,WAX2B,GACV,iBAAN,GAAkB,EAAI,MAChC,EAAU,EAAI,QACd,EAAM,EAAI,KAaZ,SAAkB,GACjB,IAAKA,IAAI,EAAE,EAAQ,OAAQ,KAC1B,GAAI,EAAQ,GAAG,SAAS,GAAM,OAAO,EAEtC,OAAO,EAbH,CAAS,IAjCd,SAAgB,EAAK,Q,UAAK,QACrB,GAAiB,EAAc,GAClC,EAAc,GAAM,GAEK,oBAAV,SAAyB,QAAQ,EAAK,UACrD,QAAQ,EAAK,SAAS,KAAM,KAAM,GA6BlC,CAAO,EAAK,EAAU,UAAY,QAG5B,EAAQ,GAchB,SAAS,EAAQ,GAEhB,IADAA,IAAI,GAAW,EACN,EAAE,EAAG,EAAE,EAAQ,OAAQ,KACD,IAA1B,EAAQ,GAAG,QAAQ,KACtB,GAAW,GAGb,IAAKA,IAAItI,EAAE,EAAY,OAAQA,KAC9B,EAAYA,GAAG,GAEhB,OAAO,EAIR,SAAS,EAAc,GAEtB,GAAK,GAAS,EAAK,aAAnB,CAEAsI,IAAI,EAAO,EAAK,aAAa,QAC5B,EAAS,EAAK,aAAa,UAG5B,GAAK,GAAS,EAAK,MAAM,WAAY,GAAW,EAAO,MAAM,cAG7D,OAAO,EAAM,IAId,SAAS,EAAgB,GACxB,KAAI,EAAE,SAAW,EAAE,SAAW,EAAE,QAAU,EAAE,UAAuB,IAAX,EAAE,QAE1D,OADA,EAAc,EAAE,eAAiB,EAAE,QAAU,MACtC,EAAQ,GAIhB,SAAS,EAAQ,GAMhB,OALI,IACC,EAAE,0BAA0B,EAAE,2BAC9B,EAAE,iBAAiB,EAAE,kBACzB,EAAE,mBAEI,EAIR,SAAS,EAAoB,GAE5B,KAAI,EAAE,SAAW,EAAE,SAAW,EAAE,QAAU,EAAE,UAAuB,IAAX,EAAE,QAA1D,CAEAA,IAAI,EAAI,EAAE,OACV,GACC,GAAuC,MAAnC,OAAO,EAAE,UAAU,eAAuB,EAAE,aAAa,QAAS,CACrE,GAAI,EAAE,aAAa,UAAW,OAE9B,GAAI,EAAc,GACjB,OAAO,EAAQ,UAGR,EAAE,EAAE,a,gBDxHTC,EAAQ,GCEV,EAAgB,KAEd,EAAU,GAEV,EAAc,GAEd,EAAQ,GAoHV,GAA4B,EAiB1B,EAAM,YAAmB,WAClB,GACXC,EAAK,KAAC,QACF,EAAM,UACT,EAAgB,EAAM,SAGvB,KAAK,MAAQ,CACZ,IAAK,EAAM,KAAO,KAtBhB,IAE0B,mBAAnB,mBACL,GACJ,iBAAiB,YAAY,WAC5B,EAAQ,QAGV,iBAAiB,QAAS,IAE3B,GAA4B,G,kFAgB3B,EAED,kCAAqB,SAAC,GACrB,OAAmB,IAAf,EAAM,SACH,EAAM,MAAM,KAAK,MAAM,KAAO,EAAM,WAAW,KAAK,MAAM,WAIlE,qBAAQ,SAAC,GACRC,IAAM,EAAW,uBAAa,KAAK,MAAM,UACzC,OAAO,KAAK,oBAAoB,EAAU,GAAK,GAAO,OAAS,GAIhE,oBAAO,SAAC,GACP,KAAK,SAAS,CAAE,QAEhBA,IAAM,EAAW,KAAK,SAAS,GAK/B,OAFK,KAAK,UAAU,KAAK,cAElB,GAGR,+BAAkB,WACjB,EAAQ,KAAK,MACb,KAAK,UAAW,GAGjB,8BAAiB,W,WACZ,IACH,KAAK,SAAW,EAAc,QAAO,SAAC,GACrCrB,EAAK,QAAQ,IAAG,EAAS,UAAY,KAAK,EAAS,QAAU,SAG/D,KAAK,UAAW,GAGjB,iCAAoB,WACQ,mBAAhB,KAAK,UAAuB,KAAK,WAC5C,EAAQ,OAAO,EAAQ,QAAQ,MAAO,IAGvC,gCAAmB,WAClB,KAAK,UAAW,GAGjB,+BAAkB,WACjB,KAAK,UAAW,GAGjB,gCAAmB,SAAC,EAAU,EAAK,GAClC,OAAO,EACL,OAAO,GACP,KAAK,GACL,KAAK,YACLkB,IAAI,EAAU,EAAK,EAAK,EAAM,MAAM,KAAM,EAAM,OAChD,GAAI,EAAS,CACZ,IAAe,IAAX,EAAkB,CACrBA,IAAI,EAAW,CAAE,MAAK,WAItB,OAHA,EAAO,EAAU,UACV,EAAS,WACT,EAAS,IACT,uBAAa,EAAO,GAE5B,OAAO,MAEN,OAAO,UAGZ,mBAAM,SAAC,EAAwB,G,IAAtB,EAAQ,WAAE,EAAQ,WAAM,EAAG,MAC/B,EAAS,KAAK,oBAAoB,uBAAa,GAAW,GAAK,GAE/D,EAAU,EAAO,IAAM,KAEvB,EAAW,KAAK,YAcpB,OAbI,IAAM,IACT,KAAK,YAAc,EACG,mBAAX,GACV,EAAS,CACR,OAAQ,KACR,MACA,WACA,SACA,aAKI,G,EAtGG,CAAS,aAgHrB,EAAO,YAAc,EACrB,EAAO,cAAgB,EACvB,EAAO,MAAQ,EACf,EAAO,OAAS,EAChB,EAAO,MANO,YAAM,OAAG,wBAAc,EAAM,UAAW,IAOtD,EAAO,KAXM,SAAC,GAAO,OACpB,wBAAc,IAAK,EAAO,CAAE,QAAS,GAAmB,KAWzD,EAAO,KAAO,E,wBCnQdvH,EAAOD,QAAU,CAAC,UAAY,qB,oDFMvB,SAAS4H,EAAOC,EAAKC,OACtB,IAAI5I,KAAK4I,EAAOD,EAAI3I,GAAK4I,EAAM5I,YAU9B,SAAS6I,EAAWC,OACtB/F,EAAa+F,EAAK/F,WAClBA,GAAYA,EAAWC,YAAY8F,GGVxC,SAAgB1G,EAAcC,EAAMuG,EAAOG,GAA3C,IAEE/I,cADGgJ,EAAkB,OAEjBhJ,KAAK4I,EACC,QAAN5I,GAAqB,QAANA,IAAagJ,EAAgBhJ,GAAK4I,EAAM5I,OAGxDiJ,UAAU/I,OAAS,MACtB6I,EAAW,CAACA,GAEP/I,EAAI,EAAGA,EAAIiJ,UAAU/I,OAAQF,IACjC+I,EAASvI,KAAKyI,EAAUjJ,OAGV,MAAZ+I,IACHC,EAAgBD,SAAWA,GAKR,mBAAT1G,GAA4C,MAArBA,EAAK6G,iBACjClJ,KAAKqC,EAAK6G,sBACVF,EAAgBhJ,KACnBgJ,EAAgBhJ,GAAKqC,EAAK6G,aAAalJ,WAKnCmJ,EACN9G,EACA2G,EACAJ,GAASA,EAAMpD,IACfoD,GAASA,EAAMQ,KAgBjB,SAAgBD,EAAY9G,EAAMuG,EAAOpD,EAAK4D,OAGvCC,EAAQ,CACbhH,OACAuG,QACApD,MACA4D,MACAE,IAAW,KACXC,GAAS,KACTC,IAAQ,EACRC,IAAM,KAKNC,WACAC,IAAY,KACZtB,oBAAalE,OAGVyF,EAAQP,OAAOO,EAAQP,MAAMA,GAE1BA,EAGR,SAAgBQ,UACR,GAGD,SAASC,EAASlB,UACjBA,EAAMG,SC7EP,SAASpC,EAAUiC,EAAOmB,QAC3BnB,MAAQA,OACRmB,QAAUA,EAqET,SAASC,EAAcX,EAAOY,MAClB,MAAdA,SAEIZ,EAAME,GACVS,EAAcX,EAAME,GAASF,EAAME,GAAQD,IAAUY,QAAQb,GAAS,GACtE,aAGAc,EACGF,EAAaZ,EAAMC,IAAUpJ,OAAQ+J,OAG5B,OAFfE,EAAUd,EAAMC,IAAUW,KAEa,MAAhBE,EAAQV,WAIvBU,EAAQV,UASY,mBAAfJ,EAAMhH,KAAsB2H,EAAcX,GAAS,KAmClE,SAASe,EAAwBf,GAAjC,IAGWrJ,EACJ0H,KAHyB,OAA1B2B,EAAQA,EAAME,KAAwC,MAApBF,EAAMM,IAAoB,KAChEN,EAAMI,IAAOJ,EAAMM,IAAWrC,KAAO,KAC5BtH,EAAI,EAAGA,EAAIqJ,EAAMC,IAAUpJ,OAAQF,OAE9B,OADT0H,EAAQ2B,EAAMC,IAAUtJ,KACO,MAAd0H,EAAM+B,IAAc,CACxCJ,EAAMI,IAAOJ,EAAMM,IAAWrC,KAAOI,EAAM+B,iBAKtCW,EAAwBf,IAoC1B,SAASgB,EAAc7F,KAE1BA,EAAE8F,MAAW9F,EAAE8F,SAA4C,IAA1BC,EAAc/J,KAAKgE,IACtDgG,IAAiBZ,EAAQa,sBAEzBD,EAAeZ,EAAQa,oBACNC,GAAOC,GAK1B,SAASA,QACJnG,EAvFoBoG,EAMnBC,EACAC,EANDzB,EACH0B,EACAC,MAqFDT,EAAcU,MAAK,SAACC,EAAGhE,UAAMA,EAAEiE,IAAO3B,IAAS0B,EAAEC,IAAO3B,OAChDhF,EAAI+F,EAAca,OAErB5G,EAAE8F,MArFFO,SACAC,SALJC,GADG1B,GADoBuB,EA2FOpG,GA1FT2G,KACN1B,KACfuB,EAAYJ,EAAUS,OAGlBR,EAAc,GACdC,EAASQ,EACZN,EACA3B,EACAX,EAAO,GAAIW,GACXuB,EAAUW,aACVP,EAAUQ,gBACV,KACAX,EACU,MAAVE,EAAiBf,EAAcX,GAAS0B,GAEzCU,EAAWZ,EAAaxB,GAEpByB,GAAUC,GACbX,EAAwBf,KC9G3B,SAAgBqC,EACfV,EACAW,EACAC,EACAC,EACAC,EACAC,EACAlB,EACAE,EACAiB,GATD,IAWKhM,EAAGiM,EAAGC,EAAUpB,EAAQqB,EAAQC,EAAeC,EAI/CC,EAAeV,GAAkBA,EAAetC,KAAciD,EAE9DC,EAAoBF,EAAYpM,UAMhC6K,GAAU0B,IAEZ1B,EADwB,MAArBgB,EACMA,EAAkB,GACjBS,EACDxC,EAAc4B,EAAgB,GAE9B,MAIX5L,EAAI,EACJ2L,EAAerC,IAAYoD,EAC1Bf,EAAerC,KACf,eACmB,MAAdqD,EAAoB,IACvBA,EAAWpD,GAAUoC,EACrBgB,EAAWnD,IAASmC,EAAenC,IAAS,EAS9B,QAHd0C,EAAWI,EAAYtM,KAIrBkM,GACAS,EAAWnH,KAAO0G,EAAS1G,KAC3BmH,EAAWtK,OAAS6J,EAAS7J,KAE9BiK,EAAYtM,eAAKmE,IAIZ8H,EAAI,EAAGA,EAAIO,EAAmBP,IAAK,KACvCC,EAAWI,EAAYL,KAKtBU,EAAWnH,KAAO0G,EAAS1G,KAC3BmH,EAAWtK,OAAS6J,EAAS7J,KAC5B,CACDiK,EAAYL,UAAK9H,MAGlB+H,EAAW,QAObpB,EAASQ,EACRN,EACA2B,EALDT,EAAWA,GAAYO,EAOtBZ,EACAC,EACAC,EACAlB,EACAE,EACAiB,IAGIC,EAAIU,EAAWvD,MAAQ8C,EAAS9C,KAAO6C,IACtCI,IAAMA,EAAO,IACdH,EAAS9C,KAAKiD,EAAK7L,KAAK0L,EAAS9C,IAAK,KAAMuD,GAChDN,EAAK7L,KAAKyL,EAAGU,EAAWhD,KAAcmB,EAAQ6B,IAIjC,MAAV7B,EAAgB,KAKf8B,KAJiB,MAAjBR,IACHA,EAAgBtB,YAIb6B,EAAWjD,IAIdkD,EAAUD,EAAWjD,IAMrBiD,EAAWjD,gBACL,GACNqC,GAAqBG,GACrBpB,GAAUC,GACW,MAArBD,EAAO/H,WACN,CAKD8J,EAAO,GAAc,MAAV9B,GAAkBA,EAAOhI,aAAeiI,EAClDA,EAAU/H,YAAY6H,GACtB8B,EAAU,SACJ,KAGLT,EAASpB,EAAQkB,EAAI,GACpBE,EAASA,EAAOW,cAAgBb,EAAIO,EACrCP,GAAK,KAEDE,GAAUrB,QACP+B,EAGR7B,EAAU+B,aAAajC,EAAQC,GAC/B6B,EAAU7B,EAagB,UAAvBY,EAAetJ,OAClB2I,EAAU9F,MAAQ,IAQnB6F,WADG6B,EACMA,EAEA9B,EAAOgC,YAGiB,mBAAvBnB,EAAetJ,OASzBsJ,EAAejC,IAAWqB,QAG3BA,GACAmB,EAASzC,KAAQsB,GACjBA,EAAOhI,YAAciI,IAIrBD,EAASf,EAAckC,WAIzBlM,IACO2M,KAIThB,EAAelC,IAAO2C,EAGG,MAArBL,GAA4D,mBAAxBJ,EAAetJ,SACjDrC,EAAI+L,EAAkB7L,OAAQF,KACN,MAAxB+L,EAAkB/L,IAAY6I,EAAWkD,EAAkB/L,QAK5DA,EAAIwM,EAAmBxM,KACL,MAAlBsM,EAAYtM,IAAYgN,EAAQV,EAAYtM,GAAIsM,EAAYtM,OAI7DqM,MACErM,EAAI,EAAGA,EAAIqM,EAAKnM,OAAQF,IAC5BiN,EAASZ,EAAKrM,GAAIqM,IAAOrM,GAAIqM,IAAOrM,IAcvC,SAAgB0M,EAAa3D,EAAUmE,EAAUC,MAC/B,MAAbA,IAAmBA,EAAY,IAEnB,MAAZpE,GAAwC,kBAAbA,EAC1BmE,GAAUC,EAAU3M,KAAK0M,EAAS,YAChC,GAAIE,MAAMC,QAAQtE,OACnB,IAAI/I,EAAI,EAAGA,EAAI+I,EAAS7I,OAAQF,IACpC0M,EAAa3D,EAAS/I,GAAIkN,EAAUC,QAKrCA,EAAU3M,KAHC0M,EAGIA,EADe,iBAAbnE,GAA6C,iBAAbA,EACzBI,EAAY,KAAMJ,EAAU,KAAM,MAC/B,MAAjBA,EAASU,KAAuC,MAAvBV,EAASY,IAElCR,EAAYJ,EAAS1G,KAAM0G,EAASH,MAAOG,EAASvD,IAAK,MAG3CuD,GARTA,UAWToE,EC1OR,SAASG,EAASxG,EAAOtB,EAAKN,GACd,MAAXM,EAAI,GACPsB,EAAMyG,YAAY/H,EAAKN,GAKvB4B,EAAMtB,GAHW,iBAAVN,QACPsI,EAAmBC,KAAKjI,GAEXN,EAAQ,KACF,MAATA,EACG,GAEAA,EAYf,SAASqI,EAAYG,EAAKxJ,EAAMgB,EAAOyI,EAAU7B,GAAjD,IAWQ3F,EAWKnG,EAQAA,EAUP4N,EACAC,KAxCD/B,EACU,cAAT5H,IACHA,EAAO,SAEW,UAATA,IACVA,EAAO,aAGK,QAATA,GAA2B,aAATA,QACf,GAAa,UAATA,KACJiC,EAAIuH,EAAI5G,MAEO,iBAAV5B,EACViB,EAAE2H,QAAU5I,MACN,IACkB,iBAAbyI,IACVxH,EAAE2H,QAAU,GACZH,EAAW,MAGRA,MACM3N,KAAK2N,EACPzI,GAASlF,KAAKkF,GACnBoI,EAASnH,EAAGnG,EAAG,OAKdkF,MACMlF,KAAKkF,EACRyI,GAAYzI,EAAMlF,KAAO2N,EAAS3N,IACtCsN,EAASnH,EAAGnG,EAAGkF,EAAMlF,QAOL,MAAZkE,EAAK,IAA0B,MAAZA,EAAK,IAC5B0J,EAAa1J,KAAUA,EAAOA,EAAK6J,QAAQ,WAAY,KACvDF,EAAY3J,EAAK8J,cACrB9J,GAAQ2J,KAAaH,EAAMG,EAAY3J,GAAMgC,MAAM,GAE/ChB,GACEyI,GAAUD,EAAIO,iBAAiB/J,EAAMgK,EAAYN,IACrDF,EAAIS,IAAeT,EAAIS,EAAa,KAAKjK,GAAQgB,GAElDwI,EAAIU,oBAAoBlK,EAAMgK,EAAYN,IAGlC,SAAT1J,GACS,YAATA,GAGS,SAATA,GACS,SAATA,GACS,SAATA,IACC4H,GACD5H,KAAQwJ,EAERA,EAAIxJ,GAAiB,MAATgB,EAAgB,GAAKA,EAEhB,mBAAVA,GACE,4BAAThB,IAEIA,KAAUA,EAAOA,EAAK6J,QAAQ,WAAY,KAChC,MAAT7I,QAAiBA,EACpBwI,EAAIW,kBACH,+BACAnK,EAAK8J,eAGNN,EAAIY,eACH,+BACApK,EAAK8J,cACL9I,GAIO,MAATA,QACCA,IAOC,MAAMuI,KAAKvJ,GAEbwJ,EAAIa,gBAAgBrK,GAEpBwJ,EAAIhK,aAAaQ,EAAMgB,IAU1B,SAASgJ,EAAW/M,QACdgN,EAAWhN,EAAEkB,MAAMuH,EAAQpH,MAAQoH,EAAQpH,MAAMrB,GAAKA,GCvI5D,SAAgBmK,EACfN,EACAwD,EACAtC,EACAL,EACAC,EACAC,EACAlB,EACAE,EACAiB,GATD,IAWKyC,EAWEjK,EAAGkK,EAAOC,EAAUC,EAAUC,EAAUC,EACxCC,EAKAC,EACAC,EAjBLC,EAAUV,EAASnM,iBAIhBmM,EAASnG,YAA2B,OAAO,MAE1CoG,EAAM7E,EAAQuF,MAAQV,EAAID,OAG9B3B,EAAO,GAAuB,mBAAZqC,EAAwB,IAErCH,EAAWP,EAAS5F,MAKpBoG,GADJP,EAAMS,EAAQE,cACQvD,EAAc4C,EAAIY,KACpCJ,EAAmBR,EACpBO,EACCA,EAASpG,MAAM1D,MACfuJ,EAAIa,GACLzD,EAGCK,EAASvC,IAEZmF,GADAtK,EAAIgK,EAAS7E,IAAauC,EAASvC,KACN4F,GAAuB/K,EAAEgL,KAGlD,cAAeN,GAAWA,EAAQ9O,UAAUkG,OAC/CkI,EAAS7E,IAAanF,EAAI,IAAI0K,EAAQH,EAAUE,IAEhDT,EAAS7E,IAAanF,EAAI,IAAImC,EAAUoI,EAAUE,GAClDzK,EAAE6D,YAAc6G,EAChB1K,EAAE8B,OAASmJ,GAERT,GAAUA,EAASU,IAAIlL,GAE3BA,EAAEoE,MAAQmG,EACLvK,EAAEmL,QAAOnL,EAAEmL,MAAQ,IACxBnL,EAAEuF,QAAUkF,EACZzK,EAAE+G,IAAiBM,EACnB6C,EAAQlK,EAAE8F,OACV9F,EAAEoL,IAAmB,IAIF,MAAhBpL,EAAEqL,MACLrL,EAAEqL,IAAarL,EAAEmL,OAEsB,MAApCT,EAAQY,2BACPtL,EAAEqL,KAAcrL,EAAEmL,QACrBnL,EAAEqL,IAAanH,EAAO,GAAIlE,EAAEqL,MAG7BnH,EACClE,EAAEqL,IACFX,EAAQY,yBAAyBf,EAAUvK,EAAEqL,OAI/ClB,EAAWnK,EAAEoE,MACbgG,EAAWpK,EAAEmL,MAGTjB,EAEkC,MAApCQ,EAAQY,0BACgB,MAAxBtL,EAAE6C,oBAEF7C,EAAE6C,qBAGwB,MAAvB7C,EAAEuL,mBACLvL,EAAEoL,IAAiBpP,KAAKgE,EAAEuL,uBAErB,IAE+B,MAApCb,EAAQY,0BACRf,IAAaJ,GACkB,MAA/BnK,EAAEwL,2BAEFxL,EAAEwL,0BAA0BjB,EAAUE,IAIrCzK,EAAEyL,KACwB,MAA3BzL,EAAEoD,4BACFpD,EAAEoD,sBAAsBmH,EAAUvK,EAAEqL,IAAYZ,GAE/C,KACDzK,EAAEoE,MAAQmG,EACVvK,EAAEmL,MAAQnL,EAAEqL,IACZrL,EAAE8F,OACF9F,EAAE2G,IAASqD,EACXA,EAAS/E,IAAOyC,EAASzC,IACzB+E,EAASlF,IAAY4C,EAAS5C,IAC1B9E,EAAEoL,IAAiB1P,QACtB2K,EAAYrK,KAAKgE,GAEbiK,EAAM,EAAGA,EAAMD,EAASlF,IAAUpJ,OAAQuO,IAC1CD,EAASlF,IAAUmF,KACtBD,EAASlF,IAAUmF,GAAKlF,GAAUiF,SAG9B3B,EAGsB,MAAzBrI,EAAE0L,qBACL1L,EAAE0L,oBAAoBnB,EAAUvK,EAAEqL,IAAYZ,GAGnB,MAAxBzK,EAAE2L,oBACL3L,EAAEoL,IAAiBpP,MAAK,WACvBgE,EAAE2L,mBAAmBxB,EAAUC,EAAUC,MAK5CrK,EAAEuF,QAAUkF,EACZzK,EAAEoE,MAAQmG,EACVvK,EAAEmL,MAAQnL,EAAEqL,KAEPpB,EAAM7E,EAAQwG,MAAU3B,EAAID,GAEjChK,EAAE8F,OACF9F,EAAE2G,IAASqD,EACXhK,EAAE6G,IAAaL,EAEfyD,EAAMjK,EAAE8B,OAAO9B,EAAEoE,MAAOpE,EAAEmL,MAAOnL,EAAEuF,SAGnCyE,EAASlF,IADD,MAAPmF,GAAeA,EAAIpM,MAAQyH,GAAuB,MAAX2E,EAAIjJ,IAEzCiJ,EAAI7F,MAAMG,SACVqE,MAAMC,QAAQoB,GACdA,EACA,CAACA,GAEqB,MAArBjK,EAAE6L,kBACLxE,EAAgBnD,EAAOA,EAAO,GAAImD,GAAgBrH,EAAE6L,oBAGhD3B,GAAsC,MAA7BlK,EAAE8L,0BACfzB,EAAWrK,EAAE8L,wBAAwB3B,EAAUC,IAGhDlD,EACCV,EACAwD,EACAtC,EACAL,EACAC,EACAC,EACAlB,EACAE,EACAiB,GAGDxH,EAAE8C,KAAOkH,EAAS/E,IAEdjF,EAAEoL,IAAiB1P,QACtB2K,EAAYrK,KAAKgE,GAGdsK,IACHtK,EAAEgL,IAAgBhL,EAAE+K,GAAuB,MAG5C/K,EAAEyL,YAEFzB,EAAS/E,IAAO8G,EACfrE,EAASzC,IACT+E,EACAtC,EACAL,EACAC,EACAC,EACAlB,EACAmB,IAIGyC,EAAM7E,EAAQ4G,SAAS/B,EAAID,GAC/B,MAAOrN,GACRyI,EAAQ6G,IAAYtP,EAAGqN,EAAUtC,UAG3BsC,EAAS/E,IAQV,SAASgC,EAAWZ,EAAa6F,GACnC9G,EAAQ+G,KAAS/G,EAAQ+G,IAAQD,EAAM7F,GAE3CA,EAAY+F,MAAK,gBAEf/F,EAAcrG,EAAEoL,IAChBpL,EAAEoL,IAAmB,GACrB/E,EAAY+F,MAAK,YAChBxK,EAAG9F,KAAKkE,MAER,MAAOrD,GACRyI,EAAQ6G,IAAYtP,EAAGqD,EAAE2G,SAmB5B,SAASoF,EACR7C,EACAc,EACAtC,EACAL,EACAC,EACAC,EACAlB,EACAmB,GARD,IAUKhM,EASI0H,EA6CHmJ,EACAC,EAOO9Q,EA7DR2O,EAAWzC,EAAStD,MACpBmG,EAAWP,EAAS5F,SAGxBkD,EAA0B,QAAlB0C,EAASnM,MAAkByJ,EAEV,MAArBC,MACE/L,EAAI,EAAGA,EAAI+L,EAAkB7L,OAAQF,OAO/B,OANJ0H,EAAQqE,EAAkB/L,OAOX,OAAlBwO,EAASnM,KACW,IAAnBqF,EAAMK,SACNL,EAAMqJ,YAAcvC,EAASnM,OAC/BqL,GAAOhG,GACP,CACDgG,EAAMhG,EACNqE,EAAkB/L,GAAK,cAMf,MAAP0N,EAAa,IACM,OAAlBc,EAASnM,YACLT,SAASoP,eAAejC,GAGhCrB,EAAM5B,EACHlK,SAASqP,gBAAgB,6BAA8BzC,EAASnM,MAChET,SAASQ,cACToM,EAASnM,KACT0M,EAASmC,IAAM,CAAEA,GAAInC,EAASmC,KAGjCnF,EAAoB,QAGC,OAAlByC,EAASnM,KACRsM,IAAaI,GAAYrB,EAAI/N,MAAQoP,IACxCrB,EAAI/N,KAAOoP,QAEN,GAAIP,IAAatC,EAAU,IACR,MAArBH,IACHA,EAAoBQ,EAAUrG,MAAM5F,KAAKoN,EAAIyD,aAK1CN,GAFJlC,EAAWzC,EAAStD,OAAS6D,GAENvE,wBACnB4I,EAAU/B,EAAS7G,yBAIlB8D,EAAa,IACb2C,IAAalC,MAChBkC,EAAW,GACF3O,EAAI,EAAGA,EAAI0N,EAAI0D,WAAWlR,OAAQF,IAC1C2O,EAASjB,EAAI0D,WAAWpR,GAAGkE,MAAQwJ,EAAI0D,WAAWpR,GAAGkF,OAInD4L,GAAWD,KAETC,GAAYD,GAAWC,EAAQ3I,QAAU0I,EAAQ1I,SACrDuF,EAAItF,UAAa0I,GAAWA,EAAQ3I,QAAW,MDzU7C,SAAmBuF,EAAKqB,EAAUJ,EAAU7C,EAAOuF,OACrDrR,MAECA,KAAK2O,EACH3O,KAAK+O,GACVxB,EAAYG,EAAK1N,EAAG,KAAM2O,EAAS3O,GAAI8L,OAIpC9L,KAAK+O,EAENsC,GAAiC,mBAAftC,EAAS/O,IACvB,UAANA,GACM,YAANA,GACA2O,EAAS3O,KAAO+O,EAAS/O,IAEzBuN,EAAYG,EAAK1N,EAAG+O,EAAS/O,GAAI2O,EAAS3O,GAAI8L,IC8T/CwF,CAAU5D,EAAKqB,EAAUJ,EAAU7C,EAAOE,GAE1CwC,EAASlF,IAAYkF,EAAS5F,MAAMG,SAG/B+H,GACJpF,EACCgC,EACAc,EACAtC,EACAL,EACkB,kBAAlB2C,EAASnM,MAAmCyJ,EAC5CC,EACAlB,EACA4B,EACAT,GAKGA,IAEH,UAAW+C,YACXA,EAAS7J,OACT6J,EAAS7J,QAAUwI,EAAIxI,QAEvBwI,EAAIxI,MAA0B,MAAlB6J,EAAS7J,MAAgB,GAAK6J,EAAS7J,OAGnD,YAAa6J,YACbA,EAASwC,SACTxC,EAASwC,UAAY7D,EAAI6D,UAEzB7D,EAAI6D,QAAUxC,EAASwC,iBAKnB7D,EASR,SAAgBT,EAAS7D,EAAKlE,EAAOmE,OAEjB,mBAAPD,EAAmBA,EAAIlE,GAC7BkE,EAAIoI,QAAUtM,EAClB,MAAO/D,GACRyI,EAAQ6G,IAAYtP,EAAGkI,IAYzB,SAAgB2D,EAAQ3D,EAAOoI,EAAaC,GAA5C,IACK3M,EAOA2I,EAsBM1N,KA5BN4J,EAAQoD,SAASpD,EAAQoD,QAAQ3D,IAEhCtE,EAAIsE,EAAMD,OACTrE,EAAEyM,SAAWzM,EAAEyM,UAAYnI,EAAMI,KAAMwD,EAASlI,EAAG,KAAM0M,IAI1DC,GAAoC,mBAAfrI,EAAMhH,OAC/BqP,EAAmC,OAArBhE,EAAMrE,EAAMI,MAK3BJ,EAAMI,IAAOJ,EAAMK,WAEW,OAAzB3E,EAAIsE,EAAMM,KAAqB,IAC/B5E,EAAE4M,yBAEJ5M,EAAE4M,uBACD,MAAOxQ,GACRyI,EAAQ6G,IAAYtP,EAAGsQ,GAIzB1M,EAAEuC,KAAOvC,EAAEsG,IAAa,QAGpBtG,EAAIsE,EAAMC,QACLtJ,EAAI,EAAGA,EAAI+E,EAAE7E,OAAQF,IACzB+E,EAAE/E,IAAIgN,EAAQjI,EAAE/E,GAAIyR,EAAaC,GAI5B,MAAPhE,GAAa7E,EAAW6E,GAI7B,SAAS+B,EAAS7G,EAAO+G,EAAO5F,UACxB3C,KAAKiB,YAAYO,EAAOmB,GCnbhC,SAAgBzD,EAAO+C,EAAO2B,EAAW4G,GAAzC,IAMK5F,EAOAE,EAMArB,EAlBAjB,EAAQiI,IAAOjI,EAAQiI,GAAMxI,EAAO2B,GAYpCkB,GAPAF,EAAc4F,IAAgBE,GAQ/B,KACCF,GAAeA,EAAYtI,KAAc0B,EAAU1B,IACvDD,EAAQjH,EAAc0H,EAAU,KAAM,CAACT,IAGnCwB,EAAc,GAClBS,EACCN,GAGEgB,EAAchB,EAAY4G,GAAe5G,GAAW1B,IAAYD,EAClE6C,GAAYO,EACZA,WACAzB,EAAUQ,gBACVoG,IAAgB5F,EACb,CAAC4F,GACD1F,EACA,KACAK,EAAUrG,MAAM5F,KAAK0K,EAAUmG,YAClCtG,EACA+G,GAAenF,EACfT,GAIDP,EAAWZ,EAAaxB,GASlB,SAASgI,EAAQhI,EAAO2B,GAC9B1E,EAAO+C,EAAO2B,EAAW8G,GCtDnB,SAASC,EAAa1I,EAAOT,UACnCA,EAAQF,EAAOA,EAAO,GAAIW,EAAMT,OAAQA,GACpCK,UAAU/I,OAAS,IAAG0I,EAAMG,SAAWwD,EAAUrG,MAAM5F,KAAK2I,UAAW,IACpEE,EACNE,EAAMhH,KACNuG,EACAA,EAAMpD,KAAO6D,EAAM7D,IACnBoD,EAAMQ,KAAOC,EAAMD,KCbd,SAAS4I,EAAcC,GAAvB,IACAC,EAAM,GAENnI,EAAU,CACfsF,IAAK,OAASrP,IACdsP,GAAe2C,EACfE,kBAASvJ,EAAOmB,UACRnB,EAAMG,SAASgB,IAEvBqI,kBAASxJ,OAEDyJ,gBADFjL,KAAKiJ,kBACHgC,EAAO,QACRhC,gBAAkB,kBACtB6B,EAAInI,EAAQsF,KAAOiD,EACZJ,QAEHtK,sBAAwB,YACxBgB,EAAM1D,QAAUqN,EAAOrN,OAC1BmN,EAAKzB,MAAK,YACTpM,EAAEuF,QAAUwI,EAAOrN,MACnBmF,EAAc7F,YAIZkL,IAAM,YACV2C,EAAK7R,KAAKgE,OACN2C,EAAM3C,EAAEmN,qBACZnN,EAAEmN,qBAAuB,WACxBU,EAAKG,OAAOH,EAAKnI,QAAQ1F,GAAI,GAC7B2C,GAAOA,EAAI7G,KAAKkE,MAIZoE,EAAMG,kBAIfgB,EAAQoI,SAAS/C,YAAcrF,EAExBA,EC3CD,+iBCWDH,ETsFO6I,ECiETlI,EAQEG,EAcFF,EInLEsH,EEHK9R,ECFEyM,EAAY,GACZF,EAAY,GACZiB,EAAqB,8DCS5B5D,EAAU,CACf6G,ICHM,SAAqB7M,EAAOyF,WAE9BuB,EAAW8H,EAEPrJ,EAAQA,EAAME,QAChBqB,EAAYvB,EAAMM,OAAgBiB,EAAU2E,UAG9C3E,EAAUvC,aACwC,MAAlDuC,EAAUvC,YAAYsK,2BAEtBD,KACA9H,EAAUnD,SACTmD,EAAUvC,YAAYsK,yBAAyB/O,KAId,MAA/BgH,EAAUgI,oBACbF,KACA9H,EAAUgI,kBAAkBhP,IAGzB8O,EACH,OAAOrI,EAAeO,EAAU4E,IAAgB5E,GAChD,MAAOzJ,GACRyC,EAAQzC,QAKLyC,IV0DM6O,EAAiB,mBACpB,MAATpJ,YAAiBA,EAAMhB,aCzExB1B,EAAUvG,UAAUqH,SAAW,SAASoL,EAAQ3F,OAE3C/G,EAEHA,EADGiB,KAAKyI,MAAezI,KAAKuI,MACxBvI,KAAKyI,IAELzI,KAAKyI,IAAanH,EAAO,GAAItB,KAAKuI,OAGlB,mBAAVkD,IACVA,EAASA,EAAO1M,EAAGiB,KAAKwB,QAGrBiK,GACHnK,EAAOvC,EAAG0M,GAIG,MAAVA,GAEAzL,KAAK+D,MACJ+B,GAAU9F,KAAKwI,IAAiBpP,KAAK0M,GACzC7C,EAAcjD,QAShBT,EAAUvG,UAAU0S,YAAc,SAAS5F,GACtC9F,KAAK+D,WAIH8E,OACD/C,GAAU9F,KAAKwI,IAAiBpP,KAAK0M,GACzC7C,EAAcjD,QAchBT,EAAUvG,UAAUkG,OAASwD,EAqFzBS,EAAgB,GAQdG,EACa,mBAAXrJ,QACJA,QAAQjB,UAAU8C,KAAKuC,KAAKpE,QAAQC,WACpC8C,WIxKE0N,EAAarF,EEHRzM,EAAI,G,kDIOE,iBANf,SAAcoG,GACb,uBACCA,EAAI,EAAQ,UACZ,8B,kCCNJ,uBAGQ4B,EAAuB+K,IAApBzM,EAAoByM,SAEzBC,EAAiB,SAAAzO,GAAC,OAAKA,GAAKA,EAAEoD,QAAUpD,EAAEoD,QAAUpD,GA+B1D,GATiC,kBAAmB0O,WAEnDA,UAAUC,cAAcC,SACvBC,IAAgE,SAM/C,mBAFTJ,EAAeK,EAAQ,SAEF,CAC9B,IAAI3C,EACH9O,SAAS0R,eAAe,gBAAkB1R,SAAS2R,KAAKC,kBA2BrDzS,EAzBO,WACV,IAAI0S,EAAMT,EAAeK,EAAQ,SAC7BK,EAAgB,GACdC,EAAoB/R,SAASgS,cAClC,gCAEGD,IACHD,EACCG,KAAKC,MAAMH,EAAkBvL,WAAWsL,eAAiBA,GAM3D,IA/CmBK,EAgDAL,EAAcK,MAhDdA,EAgDiCL,EAAcK,KAOlErD,EADwCpK,EACxB0B,EAAEyL,EAAK,CAAEO,SARR,CAAEN,mBAQmB9R,SAAS2R,KAAM7C,GAKtDuD,K,kCCnEc,SAASC,IAetB,OAdAA,EAAW/T,OAAOuI,QAAU,SAAUhG,GACpC,IAAK,IAAI1C,EAAI,EAAGA,EAAIiJ,UAAU/I,OAAQF,IAAK,CACzC,IAAImU,EAASlL,UAAUjJ,GAEvB,IAAK,IAAIwF,KAAO2O,EACVhU,OAAOC,UAAUC,eAAeC,KAAK6T,EAAQ3O,KAC/C9C,EAAO8C,GAAO2O,EAAO3O,IAK3B,OAAO9C,IAGO0R,MAAMhN,KAAM6B,WCf9B,SAASoL,EAAWC,GAClB,MAA8B,MAAvBA,EAASC,OAAO,GAIzB,SAASC,EAAUC,EAAMC,GACvB,IAAK,IAAI1U,EAAI0U,EAAOC,EAAI3U,EAAI,EAAG0F,EAAI+O,EAAKvU,OAAQyU,EAAIjP,EAAG1F,GAAK,EAAG2U,GAAK,EAClEF,EAAKzU,GAAKyU,EAAKE,GAGjBF,EAAKrJ,MCJP,SAASwJ,EAAgBlO,GACvB,MAA0B,MAAnBA,EAAK6N,OAAO,GAAa7N,EAAO,IAAMA,EAE/C,SAASmO,EAAkBnO,GACzB,MAA0B,MAAnBA,EAAK6N,OAAO,GAAa7N,EAAKoO,OAAO,GAAKpO,EAKnD,SAASqO,EAAcrO,EAAMsO,GAC3B,OAJF,SAAqBtO,EAAMsO,GACzB,OAA4D,IAArDtO,EAAKsH,cAAc9D,QAAQ8K,EAAOhH,iBAAuE,IAA/C,MAAM9D,QAAQxD,EAAK6N,OAAOS,EAAO9U,SAG3F+U,CAAYvO,EAAMsO,GAAUtO,EAAKoO,OAAOE,EAAO9U,QAAUwG,EAElE,SAASwO,EAAmBxO,GAC1B,MAAwC,MAAjCA,EAAK6N,OAAO7N,EAAKxG,OAAS,GAAawG,EAAKR,MAAM,GAAI,GAAKQ,EA0BpE,SAASyO,EAAWC,GAClB,IACIC,EAASD,EAASC,OAClBC,EAAOF,EAASE,KAChB5O,EAHW0O,EAASd,UAGD,IAGvB,OAFIe,GAAqB,MAAXA,IAAgB3O,GAA6B,MAArB2O,EAAOd,OAAO,GAAac,EAAS,IAAMA,GAC5EC,GAAiB,MAATA,IAAc5O,GAA2B,MAAnB4O,EAAKf,OAAO,GAAae,EAAO,IAAMA,GACjE5O,EAGT,SAAS6O,EAAe7O,EAAMiJ,EAAOnK,EAAKgQ,GACxC,IAAIJ,EAEgB,iBAAT1O,GAET0O,EAvCJ,SAAmB1O,GACjB,IAAI4N,EAAW5N,GAAQ,IACnB2O,EAAS,GACTC,EAAO,GACPG,EAAYnB,EAASpK,QAAQ,MAEd,IAAfuL,IACFH,EAAOhB,EAASQ,OAAOW,GACvBnB,EAAWA,EAASQ,OAAO,EAAGW,IAGhC,IAAIC,EAAcpB,EAASpK,QAAQ,KAOnC,OALqB,IAAjBwL,IACFL,EAASf,EAASQ,OAAOY,GACzBpB,EAAWA,EAASQ,OAAO,EAAGY,IAGzB,CACLpB,SAAUA,EACVe,OAAmB,MAAXA,EAAiB,GAAKA,EAC9BC,KAAe,MAATA,EAAe,GAAKA,GAkBfK,CAAUjP,IACZiJ,MAAQA,QAISxL,KAD1BiR,EAAWlB,EAAS,GAAIxN,IACX4N,WAAwBc,EAASd,SAAW,IAErDc,EAASC,OACuB,MAA9BD,EAASC,OAAOd,OAAO,KAAYa,EAASC,OAAS,IAAMD,EAASC,QAExED,EAASC,OAAS,GAGhBD,EAASE,KACqB,MAA5BF,EAASE,KAAKf,OAAO,KAAYa,EAASE,KAAO,IAAMF,EAASE,MAEpEF,EAASE,KAAO,QAGJnR,IAAVwL,QAA0CxL,IAAnBiR,EAASzF,QAAqByF,EAASzF,MAAQA,IAG5E,IACEyF,EAASd,SAAWsB,UAAUR,EAASd,UACvC,MAAOnT,GACP,MAAIA,aAAa0U,SACT,IAAIA,SAAS,aAAeT,EAASd,SAAW,iFAEhDnT,EAoBV,OAhBIqE,IAAK4P,EAAS5P,IAAMA,GAEpBgQ,EAEGJ,EAASd,SAE6B,MAAhCc,EAASd,SAASC,OAAO,KAClCa,EAASd,SAAWwB,EAAgBV,EAASd,SAAUkB,EAAgBlB,WAFvEc,EAASd,SAAWkB,EAAgBlB,SAMjCc,EAASd,WACZc,EAASd,SAAW,KAIjBc,EAMT,SAASW,IACP,IAAIC,EAAS,KAiCTC,EAAY,GA4BhB,MAAO,CACLC,UA5DF,SAAmBC,GAGjB,OADAH,EAASG,EACF,WACDH,IAAWG,IAAYH,EAAS,QAyDtCI,oBArDF,SAA6BhB,EAAUiB,EAAQC,EAAqBpJ,GAIlE,GAAc,MAAV8I,EAAgB,CAClB,IAAIO,EAA2B,mBAAXP,EAAwBA,EAAOZ,EAAUiB,GAAUL,EAEjD,iBAAXO,EAC0B,mBAAxBD,EACTA,EAAoBC,EAAQrJ,GAG5BA,GAAS,GAIXA,GAAoB,IAAXqJ,QAGXrJ,GAAS,IAmCXsJ,eA7BF,SAAwBC,GAGtB,SAASC,IACHC,GAAUF,EAAGrC,WAAM,EAAQnL,WAHjC,IAAI0N,GAAW,EAOf,OADAV,EAAUzV,KAAKkW,GACR,WACLC,GAAW,EACXV,EAAYA,EAAUW,QAAO,SAAUC,GACrC,OAAOA,IAASH,OAmBpBI,gBAdF,WACE,IAAK,IAAIC,EAAO9N,UAAU/I,OAAQ8W,EAAO,IAAI5J,MAAM2J,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/ED,EAAKC,GAAQhO,UAAUgO,GAGzBhB,EAAUiB,SAAQ,SAAUR,GAC1B,OAAOA,EAAStC,WAAM,EAAQ4C,QAapC,SAASG,EAAgBlT,EAASiJ,GAChCA,EAASlH,OAAOoR,QAAQnT,IAkU1B,SAASoT,EAAUtD,GACjB,IAAI0B,EAAY1B,EAAI7J,QAAQ,KAC5B,OAAsB,IAAfuL,EAAmB1B,EAAMA,EAAI7N,MAAM,EAAGuP,GAG/C,SAAS6B,IAGP,IAAI9V,EAAOwE,OAAOoP,SAAS5T,KACvBiU,EAAYjU,EAAK0I,QAAQ,KAC7B,OAAsB,IAAfuL,EAAmB,GAAKjU,EAAK+V,UAAU9B,EAAY,GAO5D,SAAS+B,EAAgB9Q,GACvBV,OAAOoP,SAASrH,QAAQsJ,EAAUrR,OAAOoP,SAAS5T,MAAQ,IAAMkF,GAGlE,SAASD,EAAkBmC,GAkBzB,SAAS6O,IACP,IAAI/Q,EAAOgR,EAAWJ,KAGtB,OADIK,IAAUjR,EAAOqO,EAAcrO,EAAMiR,IAClCpC,EAAe7O,GAKxB,SAASe,EAASmQ,GAChB1D,EAAS1N,EAASoR,GAElBpR,EAAQtG,OAAS2X,EAAc3X,OAC/B4X,EAAkBhB,gBAAgBtQ,EAAQ4O,SAAU5O,EAAQ6P,QAU9D,SAAS0B,IACP,IAL4B7M,EAAGhE,EAK3BR,EAAO4Q,IACPU,EAAcC,EAAWvR,GAE7B,GAAIA,IAASsR,EAEXR,EAAgBQ,OACX,CACL,IAAI5C,EAAWqC,IAEf,IAAKS,KAdqBhN,EAaP1E,EAAQ4O,UAZpBd,YADsBpN,EAc2BkO,GAblCd,UAAYpJ,EAAEmK,SAAWnO,EAAEmO,QAAUnK,EAAEoK,OAASpO,EAAEoO,MAaL,OAEnE,GAAI6C,IAAehD,EAAWC,GAAW,OAEzC+C,EAAa,KAKjB,SAAmB/C,GACjB,GAAI8C,EACFA,GAAe,EACfzQ,QACK,CAELqQ,EAAkB1B,oBAAoBhB,EADzB,MAC2CkB,GAAqB,SAAU8B,GACjFA,EACF3Q,EAAS,CACP4O,OAJO,MAKPjB,SAAUA,IASpB,SAAmBiD,GACjB,IAIIC,EAAUC,EAASC,YAAYrD,EAJlB3O,EAAQ4O,YAKR,IAAbkD,IAAgBA,EAAU,GAC9B,IAAIG,EAAYF,EAASC,YAAYrD,EAAWkD,KAC7B,IAAfI,IAAkBA,EAAY,GAClC,IAAIC,EAAQJ,EAAUG,EAElBC,IACFR,GAAe,EACfS,EAAGD,IAnBCE,CAAUxD,OAjBdyD,CAAUzD,IAoHd,SAASuD,EAAGjT,GAEVmS,EAAcc,GAAGjT,GAanB,SAASoT,EAAkBJ,GAGH,KAFtBK,GAAiBL,IAEoB,IAAVA,EACzB1S,OAAOiI,iBAxOW,aAwOyB8J,GAChB,IAAlBgB,GACT/S,OAAOoI,oBA1OW,aA0O4B2J,QAhMpC,IAAVnP,IACFA,EAAQ,IAGToQ,GAAmGC,GAAU,GAC9G,IAAIpB,EAAgB7R,OAAOQ,QAGvB0S,GApUGlT,OAAOiN,UAAUkG,UAAUjP,QAAQ,WAmU7BtB,EACsB0N,qBAC/BA,OAAgD,IAA1B4C,EAAmC/B,EAAkB+B,EAC3EE,EAHSxQ,EAGgByQ,SACzBA,OAA+B,IAApBD,EAA6B,QAAUA,EAClDzB,EAAW/O,EAAM+O,SAAWzC,EAAmBN,EAAgBhM,EAAM+O,WAAa,GAClF2B,EAAwBC,EAAeF,GACvCpB,EAAaqB,EAAsBrB,WACnCP,EAAa4B,EAAsB5B,WASnCI,EAAoB/B,IASpBmC,GAAe,EACfC,EAAa,KA8DbzR,EAAO4Q,IACPU,EAAcC,EAAWvR,GACzBA,IAASsR,GAAaR,EAAgBQ,GAC1C,IAAIwB,EAAkB/B,IAClBc,EAAW,CAACpD,EAAWqE,IAoFvBT,EAAgB,EAYhBU,GAAY,EAiCZjT,EAAU,CACZtG,OAAQ2X,EAAc3X,OACtBmW,OAAQ,MACRjB,SAAUoE,EACVE,WAnIF,SAAoBtE,GAClB,IAAIuE,EAAU/X,SAASgS,cAAc,QACjCpS,EAAO,GAMX,OAJImY,GAAWA,EAAQ3X,aAAa,UAClCR,EAAO6V,EAAUrR,OAAOoP,SAAS5T,OAG5BA,EAAO,IAAMyW,EAAWN,EAAWxC,EAAWC,KA4HrD5U,KAzHF,SAAckG,GAEZ,IACI0O,EAAWG,EAAe7O,OAAMvC,OAAWA,EAAWqC,EAAQ4O,UAClE0C,EAAkB1B,oBAAoBhB,EAFzB,OAE2CkB,GAAqB,SAAU8B,GACrF,GAAKA,EAAL,CACA,IAAI1R,EAAOyO,EAAWC,GAClB4C,EAAcC,EAAWN,EAAWjR,GAGxC,GAFkB4Q,MAAkBU,EAEnB,CAIfG,EAAazR,EAxIrB,SAAsBA,GACpBV,OAAOoP,SAASE,KAAO5O,EAwIjBkT,CAAa5B,GACb,IAAI6B,EAAYtB,EAASC,YAAYrD,EAAW3O,EAAQ4O,WACpD0E,EAAYvB,EAASrS,MAAM,EAAG2T,EAAY,GAC9CC,EAAUtZ,KAAKkG,GACf6R,EAAWuB,EACXrS,EAAS,CACP4O,OAnBO,OAoBPjB,SAAUA,SAIZ3N,SAgGJsG,QA3FF,SAAiBrH,GAEf,IACI0O,EAAWG,EAAe7O,OAAMvC,OAAWA,EAAWqC,EAAQ4O,UAClE0C,EAAkB1B,oBAAoBhB,EAFzB,UAE2CkB,GAAqB,SAAU8B,GACrF,GAAKA,EAAL,CACA,IAAI1R,EAAOyO,EAAWC,GAClB4C,EAAcC,EAAWN,EAAWjR,GACtB4Q,MAAkBU,IAMlCG,EAAazR,EACb8Q,EAAgBQ,IAGlB,IAAI6B,EAAYtB,EAASrO,QAAQiL,EAAW3O,EAAQ4O,YACjC,IAAfyE,IAAkBtB,EAASsB,GAAanT,GAC5Ce,EAAS,CACP4O,OAnBS,UAoBTjB,SAAUA,SAsEduD,GAAIA,EACJoB,OA7DF,WACEpB,GAAI,IA6DJqB,UA1DF,WACErB,EAAG,IA0DHsB,MAzCF,SAAejE,QACE,IAAXA,IACFA,GAAS,GAGX,IAAIkE,EAAUpC,EAAkB5B,UAAUF,GAO1C,OALKyD,IACHX,EAAkB,GAClBW,GAAY,GAGP,WAML,OALIA,IACFA,GAAY,EACZX,GAAmB,IAGdoB,MAwBTC,OApBF,SAAgBzD,GACd,IAAI0D,EAAWtC,EAAkBtB,eAAeE,GAEhD,OADAoC,EAAkB,GACX,WACLA,GAAmB,GACnBsB,OAiBJ,OAAO5T,E,kCD1rBMsP,MA5Df,SAAyBuE,EAAIC,QACdnW,IAATmW,IAAoBA,EAAO,IAE/B,IAkBIC,EAlBAC,EAAWH,GAAMA,EAAGI,MAAM,MAAS,GACnCC,EAAaJ,GAAQA,EAAKG,MAAM,MAAS,GAEzCE,EAAUN,GAAMhG,EAAWgG,GAC3BO,EAAYN,GAAQjG,EAAWiG,GAC/BO,EAAaF,GAAWC,EAW5B,GATIP,GAAMhG,EAAWgG,GAEnBK,EAAYF,EACHA,EAAQta,SAEjBwa,EAAUtP,MACVsP,EAAYA,EAAUI,OAAON,KAG1BE,EAAUxa,OAAQ,MAAO,IAG9B,GAAIwa,EAAUxa,OAAQ,CACpB,IAAI6a,EAAOL,EAAUA,EAAUxa,OAAS,GACxCqa,EAA4B,MAATQ,GAAyB,OAATA,GAA0B,KAATA,OAEpDR,GAAmB,EAIrB,IADA,IAAIS,EAAK,EACAhb,EAAI0a,EAAUxa,OAAQF,GAAK,EAAGA,IAAK,CAC1C,IAAIib,EAAOP,EAAU1a,GAER,MAATib,EACFzG,EAAUkG,EAAW1a,GACH,OAATib,GACTzG,EAAUkG,EAAW1a,GACrBgb,KACSA,IACTxG,EAAUkG,EAAW1a,GACrBgb,KAIJ,IAAKH,EAAY,KAAOG,IAAMA,EAAIN,EAAUQ,QAAQ,OAGlDL,GACiB,KAAjBH,EAAU,IACRA,EAAU,IAAOrG,EAAWqG,EAAU,KAExCA,EAAUQ,QAAQ,IAEpB,IAAI3E,EAASmE,EAAUS,KAAK,KAI5B,OAFIZ,GAA0C,MAAtBhE,EAAOzB,QAAQ,KAAYyB,GAAU,KAEtDA,GE3DM0C,EAVf,SAAmBmC,GACf,IAAIA,EAIA,MAAM,IAAIvY,MANL,qBDuLTmW,IAAiC,oBAAXhT,SAA0BA,OAAOpE,WAAYoE,OAAOpE,SAASQ,eAiTnFmX,EAAiB,CACnB8B,SAAU,CACRpD,WAAY,SAAoBvR,GAC9B,MAA0B,MAAnBA,EAAK6N,OAAO,GAAa7N,EAAO,KAAOmO,EAAkBnO,IAElEgR,WAAY,SAAoBhR,GAC9B,MAA0B,MAAnBA,EAAK6N,OAAO,GAAa7N,EAAKoO,OAAO,GAAKpO,IAGrD4U,QAAS,CACPrD,WAAYpD,EACZ6C,WAAY9C,GAEd2G,MAAO,CACLtD,WAAYrD,EACZ8C,WAAY9C,K,oCEhfT,SAAS4G,EAAenS,UAC1BA,EAAMhH,OAASyH,WACX,WACyB,mBAAfT,EAAMhH,KAChBgH,EAAMhH,KAAKoZ,aAAepS,EAAMhH,KAAK6B,KACZ,iBAAfmF,EAAMhH,KAChBgH,EAAMhH,KAGP,QAiCR,SAAgBqZ,WACRC,EAAYzb,OAAS,EAAIyb,EAAYA,EAAYzb,OAAS,GAAK,KAevE,SAAS0b,EAAgBvS,SACK,mBAAfA,EAAMhH,MAAuBgH,EAAMhH,OAASyH,WAQpD,SAAS+R,EAAcxS,WACvByS,EAAQ,CAACzS,GACX0S,EAAO1S,EACW,MAAf0S,EAAKC,KACXF,EAAMtb,KAAKub,EAAKC,KAChBD,EAAOA,EAAKC,WAGNF,EAAMG,QAAO,SAACC,EAAKC,GACzBD,WAAeV,EAAeW,OAExBhI,EAASgI,EAAMC,gBACjBjI,EACH+H,WAAe/H,EAAOkI,aAAYlI,EAAOmI,eAC9BC,IACXA,KACAzW,QAAQ0W,KACP,mLAIMN,EAAO,OACb,ICkSG,SAASO,EAAepT,OACxBT,EAAUS,EAAVT,MACF1E,EAAOsX,EAAenS,GAEtBqT,EAAQ,OACP,IAAIC,KAAQ/T,KACZA,EAAMvI,eAAesc,IAAkB,aAATA,EAAqB,KAClDzX,EAAQ0D,EAAM+T,GAGG,mBAAVzX,IACVA,eAAoBA,EAAMuW,aAAevW,EAAMhB,eAGhDgB,EACC/E,OAAO+E,KAAWA,GAAUA,EAAM0X,SAE/B1X,EAAQ,GADR/E,OAAOC,UAAUwc,SAAStc,KAAK4E,GAGnCwX,OAAaC,MAAQ9I,KAAKgJ,UAAU3X,OAIlC6D,EAAWH,EAAMG,mBACV7E,EAAOwY,GACjB3T,GAAYA,EAAS7I,OAAS,QAAUgE,EAAO,IAAM,O,gBCzZhC,oBAAX8B,QAA0BA,OAAO8W,qBAC3C9W,OAAO8W,oBAAoBC,aAAa,SAAUnT,UAAS,CAC1DE,sBCLH,IAEIkT,EAAqB,GHsBrBrB,EAAc,GAoBdsB,EAAa,GAgBbV,KC9CEW,EAAwC,mBAAZC,QAkU5B1V,EAAWd,YAAUvG,UAAUqH,SACrCd,YAAUvG,UAAUqH,SAAW,SAASoL,EAAQ3F,UAC5B,MAAf9F,KAAK+D,IAKU,MAAd/D,KAAKuI,OACR7J,QAAQ0W,KACP,gKAEmCX,EAAcH,MAGtB,MAAnBtU,KAAKiE,KACfvF,QAAQ0W,KACP,8NAGQX,EAAczU,KAAK+D,MAItB1D,EAASnH,KAAK8G,KAAMyL,EAAQ3F,IAGpC,IAAM4F,EAAcnM,YAAUvG,UAAU0S,YACxCnM,YAAUvG,UAAU0S,YAAc,SAAS5F,UACvB,MAAf9F,KAAK+D,IACRrF,QAAQ0W,KACP,0HACqDX,EACnDH,MAG0B,MAAnBtU,KAAKiE,KACfvF,QAAQ0W,KACP,iOAGQX,EAAczU,KAAK+D,MAGtB2H,EAAYxS,KAAK8G,KAAM8F,IAnW/B,YDiFA,eACKkQ,EAAUxT,UAAQuF,IAClBkO,EAAYzT,UAAQ4G,OACpB8M,EAAU1T,UAAQiI,GAClB3F,EAAWtC,UAAQP,MACnBkU,EAAY3T,UAAQwG,IAExBxG,UAAQ4G,OAAS,YACZoL,EAAgBvS,IACnB4T,EAAW7R,MAEZuQ,EAAYvQ,MACRiS,GAAWA,EAAUhU,IAG1BO,UAAQuF,IAAQ,YACXyM,EAAgBvS,IACnBsS,EAAYnb,KAAK6I,GAEd+T,GAASA,EAAQ/T,IAGtBO,UAAQiI,GAAQ,SAACxI,EAAOmU,GACvBP,EAAa,GACTK,GAASA,EAAQjU,EAAOmU,IAG7B5T,UAAQP,MAAQ,YACfA,EAAM2S,IACLiB,EAAW/c,OAAS,EAAI+c,EAAWA,EAAW/c,OAAS,GAAK,KACzDgM,GAAUA,EAAS7C,IAGxBO,UAAQwG,IAAU,YACbwL,EAAgBvS,IACnB4T,EAAWzc,KAAK6I,GAGbkU,GAAWA,EAAUlU,IAtC3B,GChFCoU,IAGIC,EAAgB9T,UAAQuF,IACxBkO,EAAYzT,UAAQ4G,OACpBmN,EAAW/T,UAAQP,MACnBuU,EAAgBhU,UAAQ6G,IACxB6M,EAAU1T,UAAQiI,GAClBgM,EAAUjU,UAAQkU,IAChBC,EAAoBb,EAEvB,CACAc,UAAW,IAAIb,QACfc,gBAAiB,IAAId,QACrBe,cAAe,IAAIf,SAJnB,KAOHvT,UAAQ6G,IAAc,SAAC7M,EAAOyF,EAAO6C,MACpB7C,GAASA,EAAMM,KACQ,mBAAf/F,EAAMV,KAAqB,KAC5CE,EAAUQ,EAChBA,EAAQ,IAAIf,uDACsC2Y,EAAenS,YAG7DmU,EAASnU,EACNmU,EAAQA,EAASA,EAAOjU,MAC1BiU,EAAO7T,KAAc6T,EAAO7T,IAAWwU,IAAkB,CAC5Dva,EAAQR,WAONQ,aAAiBf,YACde,EAIRga,EAAcha,EAAOyF,EAAO6C,IAG7BtC,UAAQiI,GAAQ,SAACxI,EAAOtG,OAClBA,QACE,IAAIF,MACT,2IAIEub,SACIrb,EAAWgF,eV5EO,OAEU,QADT,EU+EzBqW,KAAU,cAGVA,KAAU,IAGPA,EAAS,KACTC,EAAgB7C,EAAenS,SAC7B,IAAIxG,8EAC8DE,uBAA+Bsb,UAAqBtb,QAIzHua,GAASA,EAAQjU,EAAOtG,IAG7B6G,UAAQuF,IAAQ,gBE3FhBmP,EACAC,EACAnJ,EACAiJ,EFyFOhc,EAA0BgH,EAA1BhH,KACFoP,EAlFN,SAAS+M,EAAwBhB,UAC3BA,EACsB,mBAAhBA,EAAOnb,KACVmc,EAAwBhB,EAAOjU,IAEhCiU,EAJa,GADrB,CAiFkCnU,EAApBE,gBAGRlH,QACG,IAAIQ,MACT,+IAEC4Z,EAAepT,UACRwS,EAAcxS,IAEjB,GAAY,MAARhH,GAAgC,iBAATA,EAAmB,aAChDA,EAAKiH,cAA2BjH,EAAKoH,UAClC,IAAI5G,MACT,2CAA2CR,0EAE/BmZ,EAAenS,SAAYoT,EAAepa,0BACjCmZ,EAAenS,2FAE5BwS,EAAcxS,UAIlB,IAAIxG,MACT,4CACEuK,MAAMC,QAAQhL,GAAQ,QAAUA,OAKzB,UAATA,GAA6B,UAATA,GAA6B,UAATA,GACpB,UAArBoP,EAAYpP,KAQH,OAATA,GACqB,UAArBoP,EAAYpP,MACS,UAArBoP,EAAYpP,MACS,UAArBoP,EAAYpP,MACS,UAArBoP,EAAYpP,KAEZyD,QAAQlC,MACP,uFACC6Y,EAAepT,UACRwS,EAAcxS,IAEJ,OAAThH,GAAsC,OAArBoP,EAAYpP,KACvCyD,QAAQlC,MACP,kEACC6Y,EAAepT,UACRwS,EAAcxS,IAEJ,OAAThH,GAAsC,OAArBoP,EAAYpP,MACvCyD,QAAQlC,MACP,2DACC6Y,EAAepT,UACRwS,EAAcxS,IA3BvBvD,QAAQlC,MACP,oFACC6Y,EAAepT,UACRwS,EAAcxS,aA6BvBA,EAAMD,KACe,mBAAdC,EAAMD,KACQ,iBAAdC,EAAMD,OACX,aAAcC,SAEV,IAAIxG,MACT,0GACoCwG,EAAMD,kBACzCqT,EAAepT,UACRwS,EAAcxS,OAIE,iBAAfA,EAAMhH,SACX,IAAMmD,KAAO6D,EAAMT,SAEX,MAAXpD,EAAI,IACO,MAAXA,EAAI,IACwB,mBAArB6D,EAAMT,MAAMpD,IACC,MAApB6D,EAAMT,MAAMpD,SAEN,IAAI3C,MACT,iBAAgB2C,sDACI6D,EAAMT,MAAMpD,iBAC/BiX,EAAepT,UACRwS,EAAcxS,OAOA,mBAAfA,EAAMhH,MAAuBgH,EAAMhH,KAAKoc,UAAW,IAEjC,SAA3BpV,EAAMhH,KAAKoZ,aACXsC,IACCA,EAAiBG,cAAcQ,IAAIrV,EAAMhH,MACzC,KACKkC,EACL,iGAEMoa,EAAYtV,EAAMhH,OACxB0b,EAAiBG,cAAcU,IAAIvV,EAAMhH,SACzCyD,QAAQ0W,KACPjY,oCAAsCiX,EAAemD,IAErD,MAAOvb,GACR0C,QAAQ0W,KACPjY,EAAI,gEE5MT+Z,EFiNGjV,EAAMhH,KAAKoc,UEhNdF,EFiNGlV,EAAMT,MEhNTwM,EFiNGoG,EAAenS,GEhNlBgV,EFiNG5B,EAAepT,GE9MlBlJ,OAAO0e,KAAKP,GAAWpH,SAAQ,gBAC1BtT,MAEHA,EAAQ0a,EAAUQ,GACjBP,EACAO,EACAT,EACAjJ,EACA,KAnByB,gDAsBzB,MAAOjU,GACRyC,EAAQzC,GAELyC,GAAWA,EAAMK,WAAW+Y,IAC/BA,EAAmBpZ,EAAMK,YACzB6B,QAAQlC,gBACGwR,YAAkBxR,EAAMK,aFiMhCyZ,GAAeA,EAAcrU,IAGlCO,UAAQkU,IAAQ,gBACViB,QACE,IAAIlc,MAAM,iDAGbgb,GAASA,EAAQkB,QAGhBvC,EAAO,SAAC5W,EAAUhD,SAAS,CAChCkC,qBACO,IAAIjC,uBAAuB+C,qBAA2BhD,IAE7Dgc,qBACO,IAAI/b,uBAAuB+C,sBAA4BhD,MAIzDoc,EAAuB,CAC5B/W,SAAUuU,EAAK,WAAY,kBAC3BpL,WAAYoL,EAAK,aAAc,mBAC/BzT,SAAUyT,EAAK,WAAY,6BAGtByC,EAAkB9e,OAAOoF,OAAO,GAAIyZ,GAE1CpV,UAAQP,MAAQ,gBACTT,EAAQS,EAAMT,SAEJ,OAAfS,EAAMhH,MACG,MAATuG,IACC,aAAcA,GAAS,WAAYA,GACnC,KACKmG,EAAY1F,EAAMT,MAAQ,OAC3B,IAAI5I,KAAK4I,EAAO,KACdsW,EAAItW,EAAM5I,GACN,aAANA,EAAkBqJ,EAAM+S,SAAW8C,EACxB,WAANlf,EAAgBqJ,EAAM8V,OAASD,EACnCnQ,EAAS/O,GAAKkf,GAGrB/e,OAAOif,eAAe/V,EAAO4V,GACzBtB,GAAUA,EAAStU,IAGxBO,UAAQ4G,OAAS,YAQZnH,EAAMC,KACTD,EAAMC,IAAU4N,SAAQ,eACnBxP,YAASA,EAAMrF,KAAoB,QAE/BqF,EAAM6B,UACN7B,EAAM8B,QACPqV,EAAO1e,OAAO0e,KAAKnX,GAAOyT,KAAK,WAC/B,IAAItY,gFACiEgc,gBAOxEjU,EAAYvB,EAAMM,OACpBiB,GAAaA,EAAUyU,IAAS,KAC/BC,EAAQ1U,EAAUyU,IAClBjS,MAAMC,QAAQiS,EAAMC,KACvBD,EAAMC,GAAMrI,SAAQ,eACfsI,EAAKC,OAAcD,EAAKE,MAAUtS,MAAMC,QAAQmS,EAAKE,MAAS,KAC7DrB,EAAgB7C,EAAenS,GACnCvD,QAAQ0W,KACP,MAAM6B,+JAEExC,EAAcxS,WAOvBgU,GAAWA,EAAUhU,GAEF,MAAnBA,EAAMC,YACHuV,EAAO,GACJ7e,EAAI,EAAGA,EAAIqJ,EAAMC,IAAUpJ,OAAQF,IAAK,KAC1C0H,EAAQ2B,EAAMC,IAAUtJ,MACzB0H,GAAsB,MAAbA,EAAMlC,SAEdA,EAAMkC,EAAMlC,QACS,IAAvBqZ,EAAK3U,QAAQ1E,GAAa,CAC7BM,QAAQlC,MACP,8EACyB4B,qFAExBiX,EAAepT,UACRwS,EAAcxS,UAOxBwV,EAAKre,KAAKgF,MAlTd,I,kDGfiB,iBANf,SAAcY,GACb,uBACCA,EAAI,EAAQ,UACZ","file":"bundle.0cb08.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t};\n\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t0: 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t0: 0\n \t};\n\n\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"\" + ({\"2\":\"route-apprendimentoSistemiArtificiali\",\"3\":\"route-basiDiDati\",\"4\":\"route-calcoloNumerico\",\"5\":\"route-fisica\",\"6\":\"route-home\",\"7\":\"route-mingwinstall\",\"8\":\"route-ottimizzazioneLineare\",\"9\":\"route-statistica\",\"10\":\"route-vldigeometria\"}[chunkId]||chunkId) + \".chunk.\" + {\"2\":\"b1ca4\",\"3\":\"eb3c5\",\"4\":\"726a6\",\"5\":\"3f6c6\",\"6\":\"65775\",\"7\":\"9d6e9\",\"8\":\"e117d\",\"9\":\"fe1f8\",\"10\":\"3b8b9\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"\" + ({\"2\":\"route-apprendimentoSistemiArtificiali\",\"3\":\"route-basiDiDati\",\"4\":\"route-calcoloNumerico\",\"5\":\"route-fisica\",\"6\":\"route-home\",\"7\":\"route-mingwinstall\",\"8\":\"route-ottimizzazioneLineare\",\"9\":\"route-statistica\",\"10\":\"route-vldigeometria\"}[chunkId]||chunkId) + \".chunk.\" + {\"2\":\"c2edb\",\"3\":\"9cc26\",\"4\":\"9cc26\",\"5\":\"0b01a\",\"6\":\"deccf\",\"7\":\"4f81b\",\"8\":\"c2edb\",\"9\":\"025c9\",\"10\":\"e54c2\"}[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
\n\t\t\t\t

Appuntiweb di Steffo

\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t);\n\t}\n}\n","import style from './copyright.css';\r\nimport { Component } from 'preact';\r\n\r\nexport default class Copyright extends Component {\r\n\trender() {\r\n\t\treturn
© 2019 - Stefano Pigozzi - CC BY-SA 4.0 - Codice sorgente
;\r\n\t}\r\n}","import { h, Component } from 'preact';\n\nexport default function(req) {\n\tfunction Async() {\n\t\tComponent.call(this);\n\n\t\tlet b, old;\n\t\tthis.componentWillMount = () => {\n\t\t\tb = this.base = this.nextBase || this.__b; // short circuits 1st render\n\t\t\treq(m => {\n\t\t\t\tthis.setState({ child: m.default || m });\n\t\t\t});\n\t\t};\n\n\t\tthis.shouldComponentUpdate = (_, nxt) => {\n\t\t\tnxt = nxt.child === void 0;\n\t\t\tif (nxt && old === void 0 && b) {\n\t\t\t\t// Node.TEXT_NODE\n\t\t\t\tif (b.nodeType === 3) {\n\t\t\t\t\told = b.data;\n\t\t\t\t} else {\n\t\t\t\t\told = h(b.nodeName, {\n\t\t\t\t\t\tdangerouslySetInnerHTML: { __html: b.innerHTML },\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\told = ''; // dump it\n\t\t\t}\n\t\t\treturn !nxt;\n\t\t};\n\n\t\tthis.render = (p, s) => (s.child ? h(s.child, p) : old);\n\t}\n\t(Async.prototype = new Component()).constructor = Async;\n\treturn Async;\n}\n","\n\t\timport Async from \"../../node_modules/@preact/async-loader/async-legacy.js\";\n\n\t\tfunction load(cb) {\n\t\t\trequire.ensure([], function (require) {\n\t\t\t\tcb( require(\"!!../../node_modules/babel-loader/lib/index.js??ref--4!./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 { initDebug } from './debug';\nimport 'preact/devtools';\n\ninitDebug();\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"copyright\":\"copyright__2FTnU\"};","import options from './options';\n\n/**\n * Create an virtual node (used for JSX)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * constructor for this virtual node\n * @param {object | null | undefined} [props] The properties of the virtual node\n * @param {Array} [children] The children of the virtual node\n * @returns {import('./internal').VNode}\n */\nexport function createElement(type, props, children) {\n\tlet normalizedProps = {},\n\t\ti;\n\tfor (i in props) {\n\t\tif (i !== 'key' && i !== 'ref') normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 3) {\n\t\tchildren = [children];\n\t\t// https://github.com/preactjs/preact/issues/1916\n\t\tfor (i = 3; i < arguments.length; i++) {\n\t\t\tchildren.push(arguments[i]);\n\t\t}\n\t}\n\tif (children != null) {\n\t\tnormalizedProps.children = children;\n\t}\n\n\t// If a Component VNode, check for and apply defaultProps\n\t// Note: type may be undefined in development, must never error here.\n\tif (typeof type === 'function' && type.defaultProps != null) {\n\t\tfor (i in type.defaultProps) {\n\t\t\tif (normalizedProps[i] === undefined) {\n\t\t\t\tnormalizedProps[i] = type.defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn createVNode(\n\t\ttype,\n\t\tnormalizedProps,\n\t\tprops && props.key,\n\t\tprops && props.ref\n\t);\n}\n\n/**\n * Create a VNode (used internally by Preact)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * Constructor for this virtual node\n * @param {object | string | number | null} props The properties of this virtual node.\n * If this virtual node represents a text node, this is the text of the node (string or number).\n * @param {string | number | null} key The key for this virtual node, used when\n * diffing it against its children\n * @param {import('./internal').VNode[\"ref\"]} ref The ref property that will\n * receive a reference to its created child\n * @returns {import('./internal').VNode}\n */\nexport function createVNode(type, props, key, ref) {\n\t// V8 seems to be better at detecting type shapes if the object is allocated from the same call site\n\t// Do not inline into createElement and coerceToVNode!\n\tconst vnode = {\n\t\ttype,\n\t\tprops,\n\t\tkey,\n\t\tref,\n\t\t_children: null,\n\t\t_parent: null,\n\t\t_depth: 0,\n\t\t_dom: null,\n\t\t// _nextDom must be initialized to undefined b/c it will eventually\n\t\t// be set to dom.nextSibling which can return `null` and it is important\n\t\t// to be able to distinguish between an uninitialized _nextDom and\n\t\t// a _nextDom that has been set to `null`\n\t\t_nextDom: undefined,\n\t\t_component: null,\n\t\tconstructor: undefined\n\t};\n\n\tif (options.vnode) options.vnode(vnode);\n\n\treturn vnode;\n}\n\nexport function createRef() {\n\treturn {};\n}\n\nexport function Fragment(props) {\n\treturn props.children;\n}\n\n/**\n * Check if a the argument is a valid Preact VNode.\n * @param {*} vnode\n * @returns {vnode is import('./internal').VNode}\n */\nexport const isValidElement = vnode =>\n\tvnode != null && vnode.constructor === undefined;\n","import { assign } from './util';\nimport { diff, commitRoot } from './diff/index';\nimport options from './options';\nimport { Fragment } from './create-element';\n\n/**\n * Base Component class. Provides `setState()` and `forceUpdate()`, which\n * trigger rendering\n * @param {object} props The initial component props\n * @param {object} context The initial context from parent components'\n * getChildContext\n */\nexport function Component(props, context) {\n\tthis.props = props;\n\tthis.context = context;\n}\n\n/**\n * Update component state and schedule a re-render.\n * @param {object | ((s: object, p: object) => object)} update A hash of state\n * properties to update with new values or a function that given the current\n * state and props returns a new partial state\n * @param {() => void} [callback] A function to be called once component state is\n * updated\n */\nComponent.prototype.setState = function(update, callback) {\n\t// only clone state when copying to nextState the first time.\n\tlet s;\n\tif (this._nextState !== this.state) {\n\t\ts = this._nextState;\n\t} else {\n\t\ts = this._nextState = assign({}, this.state);\n\t}\n\n\tif (typeof update == 'function') {\n\t\tupdate = update(s, this.props);\n\t}\n\n\tif (update) {\n\t\tassign(s, update);\n\t}\n\n\t// Skip update if updater function returned null\n\tif (update == null) return;\n\n\tif (this._vnode) {\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Immediately perform a synchronous re-render of the component\n * @param {() => void} [callback] A function to be called after component is\n * re-rendered\n */\nComponent.prototype.forceUpdate = function(callback) {\n\tif (this._vnode) {\n\t\t// Set render mode so that we can differentiate where the render request\n\t\t// is coming from. We need this because forceUpdate should never call\n\t\t// shouldComponentUpdate\n\t\tthis._force = true;\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\n * Virtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\n * @param {object} props Props (eg: JSX attributes) received from parent\n * element/component\n * @param {object} state The component's current state\n * @param {object} context Context object, as returned by the nearest\n * ancestor's `getChildContext()`\n * @returns {import('./index').ComponentChildren | void}\n */\nComponent.prototype.render = Fragment;\n\n/**\n * @param {import('./internal').VNode} vnode\n * @param {number | null} [childIndex]\n */\nexport function getDomSibling(vnode, childIndex) {\n\tif (childIndex == null) {\n\t\t// Use childIndex==null as a signal to resume the search from the vnode's sibling\n\t\treturn vnode._parent\n\t\t\t? getDomSibling(vnode._parent, vnode._parent._children.indexOf(vnode) + 1)\n\t\t\t: null;\n\t}\n\n\tlet sibling;\n\tfor (; childIndex < vnode._children.length; childIndex++) {\n\t\tsibling = vnode._children[childIndex];\n\n\t\tif (sibling != null && sibling._dom != null) {\n\t\t\t// Since updateParentDomPointers keeps _dom pointer correct,\n\t\t\t// we can rely on _dom to tell us if this subtree contains a\n\t\t\t// rendered DOM node, and what the first rendered DOM node is\n\t\t\treturn sibling._dom;\n\t\t}\n\t}\n\n\t// If we get here, we have not found a DOM node in this vnode's children.\n\t// We must resume from this vnode's sibling (in it's parent _children array)\n\t// Only climb up and search the parent if we aren't searching through a DOM\n\t// VNode (meaning we reached the DOM parent of the original vnode that began\n\t// the search)\n\treturn typeof vnode.type === 'function' ? getDomSibling(vnode) : null;\n}\n\n/**\n * Trigger in-place re-rendering of a component.\n * @param {import('./internal').Component} component The component to rerender\n */\nfunction renderComponent(component) {\n\tlet vnode = component._vnode,\n\t\toldDom = vnode._dom,\n\t\tparentDom = component._parentDom;\n\n\tif (parentDom) {\n\t\tlet commitQueue = [];\n\t\tlet newDom = diff(\n\t\t\tparentDom,\n\t\t\tvnode,\n\t\t\tassign({}, vnode),\n\t\t\tcomponent._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}\n */\nlet rerenderQueue = [];\n\n/**\n * Asynchronously schedule a callback\n * @type {(cb: () => void) => void}\n */\n/* istanbul ignore next */\n// Note the following line isn't tree-shaken by rollup cuz of rollup/rollup#2566\nconst defer =\n\ttypeof Promise == 'function'\n\t\t? Promise.prototype.then.bind(Promise.resolve())\n\t\t: setTimeout;\n\n/*\n * The value of `Component.debounce` must asynchronously invoke the passed in callback. It is\n * important that contributors to Preact can consistently reason about what calls to `setState`, etc.\n * do, and when their effects will be applied. See the links below for some further reading on designing\n * asynchronous APIs.\n * * [Designing APIs for Asynchrony](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\n * * [Callbacks synchronous and asynchronous](https://blog.ometer.com/2011/07/24/callbacks-synchronous-and-asynchronous/)\n */\n\nlet prevDebounce;\n\n/**\n * Enqueue a rerender of a component\n * @param {import('./internal').Component} c The component to rerender\n */\nexport function enqueueRender(c) {\n\tif (\n\t\t(!c._dirty && (c._dirty = true) && rerenderQueue.push(c) === 1) ||\n\t\tprevDebounce !== options.debounceRendering\n\t) {\n\t\tprevDebounce = options.debounceRendering;\n\t\t(prevDebounce || defer)(process);\n\t}\n}\n\n/** Flush the render queue by rerendering all queued components */\nfunction process() {\n\tlet c;\n\trerenderQueue.sort((a, b) => b._vnode._depth - a._vnode._depth);\n\twhile ((c = rerenderQueue.pop())) {\n\t\t// forceUpdate's callback argument is reused here to indicate a non-forced update.\n\t\tif (c._dirty) renderComponent(c);\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} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {Node | Text} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} isHydrating Whether or not we are in hydration\n */\nexport function diffChildren(\n\tparentDom,\n\tnewParentVNode,\n\toldParentVNode,\n\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 import('../internal').VNode} [callback]\n * A function to invoke for each child before it is added to the flattened list.\n * @param {Array} [flattened] An flat array of children to modify\n * @returns {import('../internal').VNode[]}\n */\nexport function toChildArray(children, callback, flattened) {\n\tif (flattened == null) flattened = [];\n\n\tif (children == null || typeof children === 'boolean') {\n\t\tif (callback) flattened.push(callback(null));\n\t} else if (Array.isArray(children)) {\n\t\tfor (let i = 0; i < children.length; i++) {\n\t\t\ttoChildArray(children[i], callback, flattened);\n\t\t}\n\t} else if (!callback) {\n\t\tflattened.push(children);\n\t} else if (typeof children === 'string' || typeof children === 'number') {\n\t\tflattened.push(callback(createVNode(null, children, null, null)));\n\t} else if (children._dom != null || children._component != null) {\n\t\tflattened.push(\n\t\t\tcallback(createVNode(children.type, children.props, children.key, null))\n\t\t);\n\t} else {\n\t\tflattened.push(callback(children));\n\t}\n\n\treturn flattened;\n}\n","import { IS_NON_DIMENSIONAL } from '../constants';\nimport options from '../options';\n\n/**\n * Diff the old and new properties of a VNode and apply changes to the DOM node\n * @param {import('../internal').PreactElement} dom The DOM node to apply\n * changes to\n * @param {object} newProps The new props\n * @param {object} oldProps The old props\n * @param {boolean} isSvg Whether or not this node is an SVG node\n * @param {boolean} hydrate Whether or not we are in hydration mode\n */\nexport function diffProps(dom, newProps, oldProps, isSvg, hydrate) {\n\tlet i;\n\n\tfor (i in oldProps) {\n\t\tif (!(i in newProps)) {\n\t\t\tsetProperty(dom, i, null, oldProps[i], isSvg);\n\t\t}\n\t}\n\n\tfor (i in newProps) {\n\t\tif (\n\t\t\t(!hydrate || typeof newProps[i] == 'function') &&\n\t\t\ti !== 'value' &&\n\t\t\ti !== 'checked' &&\n\t\t\toldProps[i] !== newProps[i]\n\t\t) {\n\t\t\tsetProperty(dom, i, newProps[i], oldProps[i], isSvg);\n\t\t}\n\t}\n}\n\nfunction setStyle(style, key, value) {\n\tif (key[0] === '-') {\n\t\tstyle.setProperty(key, value);\n\t} else if (\n\t\ttypeof value === 'number' &&\n\t\tIS_NON_DIMENSIONAL.test(key) === false\n\t) {\n\t\tstyle[key] = value + 'px';\n\t} else if (value == null) {\n\t\tstyle[key] = '';\n\t} else {\n\t\tstyle[key] = value;\n\t}\n}\n\n/**\n * Set a property value on a DOM node\n * @param {import('../internal').PreactElement} dom The DOM node to modify\n * @param {string} name The name of the property to set\n * @param {*} value The value to set the property to\n * @param {*} oldValue The old value the property had\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node or not\n */\nfunction setProperty(dom, name, value, oldValue, isSvg) {\n\tif (isSvg) {\n\t\tif (name === 'className') {\n\t\t\tname = 'class';\n\t\t}\n\t} else if (name === 'class') {\n\t\tname = 'className';\n\t}\n\n\tif (name === 'key' || name === 'children') {\n\t} else if (name === 'style') {\n\t\tconst s = dom.style;\n\n\t\tif (typeof value === 'string') {\n\t\t\ts.cssText = value;\n\t\t} else {\n\t\t\tif (typeof oldValue === 'string') {\n\t\t\t\ts.cssText = '';\n\t\t\t\toldValue = null;\n\t\t\t}\n\n\t\t\tif (oldValue) {\n\t\t\t\tfor (let i in oldValue) {\n\t\t\t\t\tif (!(value && i in value)) {\n\t\t\t\t\t\tsetStyle(s, i, '');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (value) {\n\t\t\t\tfor (let i in value) {\n\t\t\t\t\tif (!oldValue || value[i] !== oldValue[i]) {\n\t\t\t\t\t\tsetStyle(s, i, value[i]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// Benchmark for comparison: https://esbench.com/bench/574c954bdb965b9a00965ac6\n\telse if (name[0] === 'o' && name[1] === 'n') {\n\t\tlet useCapture = name !== (name = name.replace(/Capture$/, ''));\n\t\tlet nameLower = name.toLowerCase();\n\t\tname = (nameLower in dom ? nameLower : name).slice(2);\n\n\t\tif (value) {\n\t\t\tif (!oldValue) dom.addEventListener(name, eventProxy, useCapture);\n\t\t\t(dom._listeners || (dom._listeners = {}))[name] = value;\n\t\t} else {\n\t\t\tdom.removeEventListener(name, eventProxy, useCapture);\n\t\t}\n\t} else if (\n\t\tname !== 'list' &&\n\t\tname !== 'tagName' &&\n\t\t// HTMLButtonElement.form and HTMLInputElement.form are read-only but can be set using\n\t\t// setAttribute\n\t\tname !== 'form' &&\n\t\tname !== 'type' &&\n\t\tname !== 'size' &&\n\t\t!isSvg &&\n\t\tname in dom\n\t) {\n\t\tdom[name] = value == null ? '' : value;\n\t} else if (\n\t\ttypeof value !== 'function' &&\n\t\tname !== 'dangerouslySetInnerHTML'\n\t) {\n\t\tif (name !== (name = name.replace(/^xlink:?/, ''))) {\n\t\t\tif (value == null || value === false) {\n\t\t\t\tdom.removeAttributeNS(\n\t\t\t\t\t'http://www.w3.org/1999/xlink',\n\t\t\t\t\tname.toLowerCase()\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tdom.setAttributeNS(\n\t\t\t\t\t'http://www.w3.org/1999/xlink',\n\t\t\t\t\tname.toLowerCase(),\n\t\t\t\t\tvalue\n\t\t\t\t);\n\t\t\t}\n\t\t} else if (\n\t\t\tvalue == null ||\n\t\t\t(value === false &&\n\t\t\t\t// ARIA-attributes have a different notion of boolean values.\n\t\t\t\t// The value `false` is different from the attribute not\n\t\t\t\t// existing on the DOM, so we can't remove it. For non-boolean\n\t\t\t\t// ARIA-attributes we could treat false as a removal, but the\n\t\t\t\t// amount of exceptions would cost us too many bytes. On top of\n\t\t\t\t// that other VDOM frameworks also always stringify `false`.\n\t\t\t\t!/^ar/.test(name))\n\t\t) {\n\t\t\tdom.removeAttribute(name);\n\t\t} else {\n\t\t\tdom.setAttribute(name, value);\n\t\t}\n\t}\n}\n\n/**\n * Proxy an event to hooked event handlers\n * @param {Event} e The event object from the browser\n * @private\n */\nfunction eventProxy(e) {\n\tthis._listeners[e.type](options.event ? options.event(e) : e);\n}\n","import { EMPTY_OBJ, EMPTY_ARR } from '../constants';\nimport { Component } from '../component';\nimport { Fragment } from '../create-element';\nimport { diffChildren } from './children';\nimport { diffProps } from './props';\nimport { assign, removeNode } from '../util';\nimport options from '../options';\n\n/**\n * Diff two virtual nodes and apply proper changes to the DOM\n * @param {import('../internal').PreactElement} parentDom The parent of the DOM element\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object. Modified by getChildContext\n * @param {boolean} isSvg Whether or not this element is an SVG node\n * @param {Array} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {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\tc.shouldComponentUpdate != null &&\n\t\t\t\t\tc.shouldComponentUpdate(newProps, c._nextState, componentContext) ===\n\t\t\t\t\t\tfalse\n\t\t\t\t) {\n\t\t\t\t\tc.props = newProps;\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t\tc._dirty = false;\n\t\t\t\t\tc._vnode = newVNode;\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\t\t\tcommitQueue.push(c);\n\t\t\t\t\t}\n\t\t\t\t\tfor (tmp = 0; tmp < newVNode._children.length; tmp++) {\n\t\t\t\t\t\tif (newVNode._children[tmp]) {\n\t\t\t\t\t\t\tnewVNode._children[tmp]._parent = newVNode;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\n\t\t\t\tif (c.componentWillUpdate != null) {\n\t\t\t\t\tc.componentWillUpdate(newProps, c._nextState, 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 {\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\toptions._catchError(e, newVNode, oldVNode);\n\t}\n\n\treturn newVNode._dom;\n}\n\n/**\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').VNode} root\n */\nexport function commitRoot(commitQueue, root) {\n\tif (options._commit) options._commit(root, commitQueue);\n\n\tcommitQueue.some(c => {\n\t\ttry {\n\t\t\tcommitQueue = c._renderCallbacks;\n\t\t\tc._renderCallbacks = [];\n\t\t\tcommitQueue.some(cb => {\n\t\t\t\tcb.call(c);\n\t\t\t});\n\t\t} catch (e) {\n\t\t\toptions._catchError(e, c._vnode);\n\t\t}\n\t});\n}\n\n/**\n * Diff two virtual nodes representing DOM element\n * @param {import('../internal').PreactElement} dom The DOM element representing\n * the virtual nodes being diffed\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {*} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @returns {import('../internal').PreactElement}\n */\nfunction diffElementNodes(\n\tdom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\tisHydrating\n) {\n\tlet 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}\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 if (newVNode !== oldVNode) {\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} rest Any additional arguments will be used as replacement children.\n */\nexport function cloneElement(vnode, props) {\n\tprops = assign(assign({}, vnode.props), props);\n\tif (arguments.length > 2) props.children = EMPTY_ARR.slice.call(arguments, 2);\n\treturn createVNode(\n\t\tvnode.type,\n\t\tprops,\n\t\tprops.key || vnode.key,\n\t\tprops.ref || vnode.ref\n\t);\n}\n","import { enqueueRender } from './component';\n\nexport let i = 0;\n\nexport function createContext(defaultValue) {\n\tconst ctx = {};\n\n\tconst context = {\n\t\t_id: '__cC' + i++,\n\t\t_defaultValue: defaultValue,\n\t\tConsumer(props, context) {\n\t\t\treturn props.children(context);\n\t\t},\n\t\tProvider(props) {\n\t\t\tif (!this.getChildContext) {\n\t\t\t\tconst subs = [];\n\t\t\t\tthis.getChildContext = () => {\n\t\t\t\t\tctx[context._id] = this;\n\t\t\t\t\treturn ctx;\n\t\t\t\t};\n\t\t\t\tthis.shouldComponentUpdate = _props => {\n\t\t\t\t\tif (props.value !== _props.value) {\n\t\t\t\t\t\tsubs.some(c => {\n\t\t\t\t\t\t\tc.context = _props.value;\n\t\t\t\t\t\t\tenqueueRender(c);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tthis.sub = c => {\n\t\t\t\t\tsubs.push(c);\n\t\t\t\t\tlet old = c.componentWillUnmount;\n\t\t\t\t\tc.componentWillUnmount = () => {\n\t\t\t\t\t\tsubs.splice(subs.indexOf(c), 1);\n\t\t\t\t\t\told && old.call(c);\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn props.children;\n\t\t}\n\t};\n\n\tcontext.Consumer.contextType = context;\n\n\treturn context;\n}\n","export const 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 =>
{props.children}
// div's owner is Foo\n * const Bar = props => {\n * return (\n * // 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 = ;\\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
should have a
should have a
should have a
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 should have a 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 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 .' +\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\tgetDisplayName(vnode),\n\t\t\t\tserializeVNode(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// `{{ foo: 123, bar: \"abc\" }}`).\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);\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 ? '>..' : ' />'\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\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":""} \ No newline at end of file diff --git a/docs/bundle.1c866.esm.js b/docs/bundle.85ae2.esm.js similarity index 99% rename from docs/bundle.1c866.esm.js rename to docs/bundle.85ae2.esm.js index e57507f..49c7c7c 100644 --- a/docs/bundle.1c866.esm.js +++ b/docs/bundle.85ae2.esm.js @@ -1,2 +1,2 @@ -!function(t){function e(e){for(var n,o,r=e[0],a=e[1],u=0,c=[];u{e=this.base=this.nextBase||this.__b,t(t=>{this.setState({child:t.default||t})})},this.shouldComponentUpdate=(t,r)=>(n=(r=void 0===r.child)&&void 0===n&&e?3===e.nodeType?e.data:Object(o.h)(e.nodeName,{dangerouslySetInnerHTML:{__html:e.innerHTML}}):"",!r),this.render=(t,e)=>e.child?Object(o.h)(e.child,t):n}return(e.prototype=new o.Component).constructor=e,e}},Vh2B:function(t,e,n){"use strict";var o=n("SdNZ");e.a=Object(o.a)((function(t){n.e(3).then(function(){t(n("HmML"))}.bind(null,n)).catch(n.oe)}))},WC2o:function(t,e,n){"use strict";var o=n("SdNZ");e.a=Object(o.a)((function(t){n.e(6).then(function(){t(n("EIZr"))}.bind(null,n)).catch(n.oe)}))},Y3FI:function(t,e,n){"use strict";function o(t,e){for(var n in e)t[n]=e[n];return t}function r(t,e,n){var o,r=/(?:\?([^#]*))?(#.*)?$/,i=t.match(r),a={};if(i&&i[1])for(var c=i[1].split("&"),l=0;le.rank?-1:t.index-e.index}function a(t,e){return t.index=e,t.rank=function(t){return t.props.default?0:u(t.props.path).map(c).join("")}(t),t.props}function u(t){return t.replace(/(^\/+|\/+$)/g,"").split("/")}function c(t){return":"==t.charAt(0)?1+"*+?".indexOf(t.charAt(t.length-1))||4:5}function l(){var t;return""+((t=v&&v.location?v.location:v&&v.getCurrentLocation?v.getCurrentLocation():"undefined"!=typeof location?location:w).pathname||"")+(t.search||"")}function s(t,e){return void 0===e&&(e=!1),"string"!=typeof t&&t.url&&(e=t.replace,t=t.url),function(t){for(var e=g.length;e--;)if(g[e].canRoute(t))return!0;return!1}(t)&&function(t,e){void 0===e&&(e="push"),v&&v[e]?v[e](t):"undefined"!=typeof history&&history[e+"State"]&&history[e+"State"](null,null,t)}(t,e?"replace":"push"),f(t)}function f(t){for(var e=!1,n=0;n0},e.prototype.routeTo=function(t){this.setState({url:t});var e=this.canRoute(t);return this.updating||this.forceUpdate(),e},e.prototype.componentWillMount=function(){g.push(this),this.updating=!0},e.prototype.componentDidMount=function(){var t=this;v&&(this.unlisten=v.listen((function(e){t.routeTo(""+(e.pathname||"")+(e.search||""))}))),this.updating=!1},e.prototype.componentWillUnmount=function(){"function"==typeof this.unlisten&&this.unlisten(),g.splice(g.indexOf(this),1)},e.prototype.componentWillUpdate=function(){this.updating=!0},e.prototype.componentDidUpdate=function(){this.updating=!1},e.prototype.getMatchingChildren=function(t,e,n){return t.filter(a).sort(i).map((function(t){var i=r(e,t.props.path,t.props);if(i){if(!1!==n){var a={url:e,matches:i};return o(a,i),delete a.ref,delete a.key,Object(y.cloneElement)(t,a)}return t}})).filter(Boolean)},e.prototype.render=function(t,e){var n=t.children,o=t.onChange,r=e.url,i=this.getMatchingChildren(Object(y.toChildArray)(n),r,!0),a=i[0]||null,u=this.previousUrl;return r!==u&&(this.previousUrl=r,"function"==typeof o&&o({router:this,url:r,previous:u,active:i,current:a})),a},e}(y.Component);C.subscribers=b,C.getCurrentUrl=l,C.route=s,C.Router=C,C.Route=function(t){return Object(y.createElement)(t.component,t)},C.Link=function(t){return Object(y.createElement)("a",o({onClick:d},t))},C.exec=r,e.a=C},YPgt:function(t){t.exports={copyright:"copyright__2FTnU"}},afj4:function(){},hosL:function(t,e,n){"use strict";function o(t,e){for(var n in e)t[n]=e[n];return t}function r(t){var e=t.parentNode;e&&e.removeChild(t)}function i(t,e,n){var o,r=arguments,i={};for(o in e)"key"!==o&&"ref"!==o&&(i[o]=e[o]);if(arguments.length>3)for(n=[n],o=3;o2&&(e.children=M.slice.call(arguments,2)),a(t.type,e,e.key||t.key,e.ref||t.ref)}function P(t){var e={},n={__c:"__cC"+I++,__:t,Consumer:function(t,e){return t.children(e)},Provider:function(t){var o,r=this;return this.getChildContext||(o=[],this.getChildContext=function(){return e[n.__c]=r,e},this.shouldComponentUpdate=function(e){t.value!==e.value&&o.some((function(t){t.context=e.value,p(t)}))},this.sub=function(t){o.push(t);var e=t.componentWillUnmount;t.componentWillUnmount=function(){o.splice(o.indexOf(t),1),e&&e.call(t)}}),t.children}};return n.Consumer.contextType=n,n}n.r(e),n.d(e,"render",(function(){return O})),n.d(e,"hydrate",(function(){return S})),n.d(e,"createElement",(function(){return i})),n.d(e,"h",(function(){return i})),n.d(e,"Fragment",(function(){return c})),n.d(e,"createRef",(function(){return u})),n.d(e,"isValidElement",(function(){return A})),n.d(e,"Component",(function(){return l})),n.d(e,"cloneElement",(function(){return x})),n.d(e,"createContext",(function(){return P})),n.d(e,"toChildArray",(function(){return _})),n.d(e,"_unmount",(function(){return C})),n.d(e,"options",(function(){return T}));var T,A,L,j,U,N,I,D={},M=[],R=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord/i;T={__e:function(t,e){for(var n,o;e=e.__;)if((n=e.__c)&&!n.__)try{if(n.constructor&&null!=n.constructor.getDerivedStateFromError&&(o=!0,n.setState(n.constructor.getDerivedStateFromError(t))),null!=n.componentDidCatch&&(o=!0,n.componentDidCatch(t)),o)return p(n.__E=n)}catch(e){t=e}throw t}},A=function(t){return null!=t&&void 0===t.constructor},l.prototype.setState=function(t,e){var n;n=this.__s!==this.state?this.__s:this.__s=o({},this.state),"function"==typeof t&&(t=t(n,this.props)),t&&o(n,t),null!=t&&this.__v&&(e&&this.__h.push(e),p(this))},l.prototype.forceUpdate=function(t){this.__v&&(this.__e=!0,t&&this.__h.push(t),p(this))},l.prototype.render=c,L=[],j="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,N=D,I=0},mIK7:function(t,e,n){"use strict";var o=n("SdNZ");e.a=Object(o.a)((function(t){n.e(8).then(function(){t(n("/fDt"))}.bind(null,n)).catch(n.oe)}))},mdyV:function(t,e,n){"use strict";n.r(e);var o=n("hosL");const{h:r,render:i}=o,a=t=>t&&t.default?t.default:t;if("serviceWorker"in navigator&&navigator.serviceWorker.register(n.p+"sw-esm.js"),"function"==typeof a(n("QfWi"))){let t=document.getElementById("preact_root")||document.body.firstElementChild;(()=>{let e=a(n("QfWi")),o={};const u=document.querySelector('[type="__PREACT_CLI_DATA__"]');u&&(o=JSON.parse(u.innerHTML).preRenderData||o),t=i(r(e,{CLI_DATA:{preRenderData:o}}),document.body,t)})()}},ve3R:function(t,e,n){"use strict";function o(){return(o=Object.assign||function(t){for(var e=1;e=0;p--){var d=a[p];"."===d?i(a,p):".."===d?(i(a,p),f++):f&&(i(a,p),f--)}if(!l)for(;f--;f)a.unshift("..");!l||""===a[0]||a[0]&&r(a[0])||a.unshift("");var h=a.join("/");return n&&"/"!==h.substr(-1)&&(h+="/"),h},y=function(t){if(!t)throw new Error("Invariant failed")},m=!("undefined"==typeof window||!window.document||!window.document.createElement),v={hashbang:{encodePath:function(t){return"!"===t.charAt(0)?t:"!/"+u(t)},decodePath:function(t){return"!"===t.charAt(0)?t.substr(1):t}},noslash:{encodePath:u,decodePath:a},slash:{encodePath:a,decodePath:a}}},"y+LV":function(t,e,n){"use strict";function o(t){return t.type===c.Fragment?"Fragment":"function"==typeof t.type?t.type.displayName||t.type.name:"string"==typeof t.type?t.type:"#text"}function r(){return s.length>0?s[s.length-1]:null}function i(t){return"function"==typeof t.type&&t.type!==c.Fragment}function a(t){for(var e=[t],n=t;null!=n.__o;)e.push(n.__o),n=n.__o;return e.reduce((function(t,e){t+=" in "+o(e);var n=e.__source;return n?t+=" (at "+n.fileName+":"+n.lineNumber+")":p||(p=!0,console.warn("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.")),t+"\n"}),"")}function u(t){var e=t.props,n=o(t),r="";for(var i in e)if(e.hasOwnProperty(i)&&"children"!==i){var a=e[i];"function"==typeof a&&(a="function "+(a.displayName||a.name)+"() {}"),a=Object(a)!==a||a.toString?a+"":Object.prototype.toString.call(a),r+=" "+i+"="+JSON.stringify(a)}var u=e.children;return"<"+n+r+(u&&u.length?">..":" />")}var c=n("hosL");"undefined"!=typeof window&&window.__PREACT_DEVTOOLS__&&window.__PREACT_DEVTOOLS__.attachPreact("10.0.5",c.options,{Fragment:c.Fragment});var l={},s=[],f=[],p=!1,d="function"==typeof WeakMap,h=c.Component.prototype.setState;c.Component.prototype.setState=function(t,e){return null==this.__v?null==this.state&&console.warn('Calling "this.setState" inside the constructor of a component is a no-op and might be a bug in your application. Instead, set "this.state = {}" directly.\n\n'+a(r())):null==this.__P&&console.warn('Can\'t call "this.setState" on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in the componentWillUnmount method.\n\n'+a(this.__v)),h.call(this,t,e)};var _=c.Component.prototype.forceUpdate;c.Component.prototype.forceUpdate=function(t){return null==this.__v?console.warn('Calling "this.forceUpdate" inside the constructor of a component is a no-op and might be a bug in your application.\n\n'+a(r())):null==this.__P&&console.warn('Can\'t call "this.forceUpdate" on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in the componentWillUnmount method.\n\n'+a(this.__v)),_.call(this,t)},function(){!function(){var t=c.options.__b,e=c.options.diffed,n=c.options.__,o=c.options.vnode,r=c.options.__r;c.options.diffed=function(t){i(t)&&f.pop(),s.pop(),e&&e(t)},c.options.__b=function(e){i(e)&&s.push(e),t&&t(e)},c.options.__=function(t,e){f=[],n&&n(t,e)},c.options.vnode=function(t){t.__o=f.length>0?f[f.length-1]:null,o&&o(t)},c.options.__r=function(t){i(t)&&f.push(t),r&&r(t)}}();var t=c.options.__b,e=c.options.diffed,n=c.options.vnode,r=c.options.__e,p=c.options.__,h=c.options.__h,_=d?{useEffect:new WeakMap,useLayoutEffect:new WeakMap,lazyPropTypes:new WeakMap}:null;c.options.__e=function(t,e,n){if(e&&e.__c&&"function"==typeof t.then){var i=t;t=new Error("Missing Suspense. The throwing component was: "+o(e));for(var a=e;a;a=a.__)if(a.__c&&a.__c.__c){t=i;break}if(t instanceof Error)throw t}r(t,e,n)},c.options.__=function(t,e){if(!e)throw new Error("Undefined parent passed to render(), this is the second argument.\nCheck if the element is available in the DOM/has the correct id.");var n;switch(e.nodeType){case 1:case 11:case 9:n=!0;break;default:n=!1}if(!n){var r=o(t);throw new Error("Expected a valid HTML node as a second argument to render.\tReceived "+e+" instead: render(<"+r+" />, "+e+");")}p&&p(t,e)},c.options.__b=function(e){var n,r,i,c,s=e.type,f=function t(e){return e?"function"==typeof e.type?t(e.__):e:{}}(e.__);if(void 0===s)throw new Error("Undefined component passed to createElement()\n\nYou likely forgot to export your component or might have mixed up default and named imports"+u(e)+"\n\n"+a(e));if(null!=s&&"object"==typeof s){if(void 0!==s.__k&&void 0!==s.__e)throw new Error("Invalid type passed to createElement(): "+s+"\n\nDid you accidentally pass a JSX literal as JSX twice?\n\n let My"+o(e)+" = "+u(s)+";\n let vnode = ;\n\nThis usually happens when you export a JSX literal and not the component.\n\n"+a(e));throw new Error("Invalid type passed to createElement(): "+(Array.isArray(s)?"array":s))}if("thead"!==s&&"tfoot"!==s&&"tbody"!==s||"table"===f.type?"tr"===s&&"thead"!==f.type&&"tfoot"!==f.type&&"tbody"!==f.type&&"table"!==f.type?console.error("Improper nesting of table. Your should have a parent."+u(e)+"\n\n"+a(e)):"td"===s&&"tr"!==f.type?console.error("Improper nesting of table. Your parent."+u(e)+"\n\n"+a(e)):"th"===s&&"tr"!==f.type&&console.error("Improper nesting of table. Your ."+u(e)+"\n\n"+a(e)):console.error("Improper nesting of table. Your should have a
should have a
should have a
should have a
should have a
parent."+u(e)+"\n\n"+a(e)),void 0!==e.ref&&"function"!=typeof e.ref&&"object"!=typeof e.ref&&!("$$typeof"in e))throw new Error('Component\'s "ref" property should be a function, or an object created by createRef(), but got ['+typeof e.ref+"] instead\n"+u(e)+"\n\n"+a(e));if("string"==typeof e.type)for(var p in e.props)if("o"===p[0]&&"n"===p[1]&&"function"!=typeof e.props[p]&&null!=e.props[p])throw new Error("Component's \""+p+'" property should be a function, but got ['+typeof e.props[p]+"] instead\n"+u(e)+"\n\n"+a(e));if("function"==typeof e.type&&e.type.propTypes){if("Lazy"===e.type.displayName&&_&&!_.lazyPropTypes.has(e.type)){var d="PropTypes are not supported on lazy(). Use propTypes on the wrapped component itself. ";try{var h=e.type();_.lazyPropTypes.set(e.type,!0),console.warn(d+"Component wrapped in lazy() is "+o(h))}catch(e){console.warn(d+"We will log the wrapped component's name once it is loaded.")}}n=e.type.propTypes,r=e.props,i=o(e),c=u(e),Object.keys(n).forEach((function(t){var e;try{e=n[t](r,t,c,i,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(t){e=t}!e||e.message in l||(l[e.message]=!0,console.error("Failed "+i+" type: "+e.message))}))}t&&t(e)},c.options.__h=function(t){if(!t)throw new Error("Hook can only be invoked from render methods.");h&&h(t)};var y=function(t,e){return{get:function(){throw new Error("getting vnode."+t+" is deprecated, "+e)},set:function(){throw new Error("setting vnode."+t+" is not allowed, "+e)}}},m={nodeName:y("nodeName","use vnode.type"),attributes:y("attributes","use vnode.props"),children:y("children","use vnode.props.children")},v=Object.create({},m);c.options.vnode=function(t){var e=t.props;if(null!==t.type&&null!=e&&("__source"in e||"__self"in e)){var o=t.props={};for(var r in e){var i=e[r];"__source"===r?t.__source=i:"__self"===r?t.__self=i:o[r]=i}}Object.setPrototypeOf(t,v),n&&n(t)},c.options.diffed=function(t){t.__k&&t.__k.forEach((function(t){if(t&&void 0===t.type){delete t.__,delete t.__b;var e=Object.keys(t).join(",");throw new Error("Objects are not valid as a child. Encountered an object with the keys {"+e+"}.")}}));var n=t.__c;if(n&&n.__H){var r=n.__H;Array.isArray(r.__)&&r.__.forEach((function(e){if(e.__h&&(!e.__H||!Array.isArray(e.__H))){var n=o(t);console.warn("In "+n+" you are calling useMemo/useCallback without passing arguments.\nThis is a noop since it will not be able to memoize, it will execute it every render.\n\n"+a(t))}}))}if(e&&e(t),null!=t.__k)for(var i=[],c=0;c{e=this.base=this.nextBase||this.__b,t(t=>{this.setState({child:t.default||t})})},this.shouldComponentUpdate=(t,r)=>(n=(r=void 0===r.child)&&void 0===n&&e?3===e.nodeType?e.data:Object(o.h)(e.nodeName,{dangerouslySetInnerHTML:{__html:e.innerHTML}}):"",!r),this.render=(t,e)=>e.child?Object(o.h)(e.child,t):n}return(e.prototype=new o.Component).constructor=e,e}},Vh2B:function(t,e,n){"use strict";var o=n("SdNZ");e.a=Object(o.a)((function(t){n.e(3).then(function(){t(n("HmML"))}.bind(null,n)).catch(n.oe)}))},WC2o:function(t,e,n){"use strict";var o=n("SdNZ");e.a=Object(o.a)((function(t){n.e(6).then(function(){t(n("EIZr"))}.bind(null,n)).catch(n.oe)}))},Y3FI:function(t,e,n){"use strict";function o(t,e){for(var n in e)t[n]=e[n];return t}function r(t,e,n){var o,r=/(?:\?([^#]*))?(#.*)?$/,i=t.match(r),a={};if(i&&i[1])for(var c=i[1].split("&"),l=0;le.rank?-1:t.index-e.index}function a(t,e){return t.index=e,t.rank=function(t){return t.props.default?0:u(t.props.path).map(c).join("")}(t),t.props}function u(t){return t.replace(/(^\/+|\/+$)/g,"").split("/")}function c(t){return":"==t.charAt(0)?1+"*+?".indexOf(t.charAt(t.length-1))||4:5}function l(){var t;return""+((t=v&&v.location?v.location:v&&v.getCurrentLocation?v.getCurrentLocation():"undefined"!=typeof location?location:w).pathname||"")+(t.search||"")}function s(t,e){return void 0===e&&(e=!1),"string"!=typeof t&&t.url&&(e=t.replace,t=t.url),function(t){for(var e=g.length;e--;)if(g[e].canRoute(t))return!0;return!1}(t)&&function(t,e){void 0===e&&(e="push"),v&&v[e]?v[e](t):"undefined"!=typeof history&&history[e+"State"]&&history[e+"State"](null,null,t)}(t,e?"replace":"push"),f(t)}function f(t){for(var e=!1,n=0;n0},e.prototype.routeTo=function(t){this.setState({url:t});var e=this.canRoute(t);return this.updating||this.forceUpdate(),e},e.prototype.componentWillMount=function(){g.push(this),this.updating=!0},e.prototype.componentDidMount=function(){var t=this;v&&(this.unlisten=v.listen((function(e){t.routeTo(""+(e.pathname||"")+(e.search||""))}))),this.updating=!1},e.prototype.componentWillUnmount=function(){"function"==typeof this.unlisten&&this.unlisten(),g.splice(g.indexOf(this),1)},e.prototype.componentWillUpdate=function(){this.updating=!0},e.prototype.componentDidUpdate=function(){this.updating=!1},e.prototype.getMatchingChildren=function(t,e,n){return t.filter(a).sort(i).map((function(t){var i=r(e,t.props.path,t.props);if(i){if(!1!==n){var a={url:e,matches:i};return o(a,i),delete a.ref,delete a.key,Object(y.cloneElement)(t,a)}return t}})).filter(Boolean)},e.prototype.render=function(t,e){var n=t.children,o=t.onChange,r=e.url,i=this.getMatchingChildren(Object(y.toChildArray)(n),r,!0),a=i[0]||null,u=this.previousUrl;return r!==u&&(this.previousUrl=r,"function"==typeof o&&o({router:this,url:r,previous:u,active:i,current:a})),a},e}(y.Component);C.subscribers=b,C.getCurrentUrl=l,C.route=s,C.Router=C,C.Route=function(t){return Object(y.createElement)(t.component,t)},C.Link=function(t){return Object(y.createElement)("a",o({onClick:d},t))},C.exec=r,e.a=C},YPgt:function(t){t.exports={copyright:"copyright__2FTnU"}},afj4:function(){},hosL:function(t,e,n){"use strict";function o(t,e){for(var n in e)t[n]=e[n];return t}function r(t){var e=t.parentNode;e&&e.removeChild(t)}function i(t,e,n){var o,r=arguments,i={};for(o in e)"key"!==o&&"ref"!==o&&(i[o]=e[o]);if(arguments.length>3)for(n=[n],o=3;o2&&(e.children=M.slice.call(arguments,2)),a(t.type,e,e.key||t.key,e.ref||t.ref)}function P(t){var e={},n={__c:"__cC"+I++,__:t,Consumer:function(t,e){return t.children(e)},Provider:function(t){var o,r=this;return this.getChildContext||(o=[],this.getChildContext=function(){return e[n.__c]=r,e},this.shouldComponentUpdate=function(e){t.value!==e.value&&o.some((function(t){t.context=e.value,p(t)}))},this.sub=function(t){o.push(t);var e=t.componentWillUnmount;t.componentWillUnmount=function(){o.splice(o.indexOf(t),1),e&&e.call(t)}}),t.children}};return n.Consumer.contextType=n,n}n.r(e),n.d(e,"render",(function(){return O})),n.d(e,"hydrate",(function(){return S})),n.d(e,"createElement",(function(){return i})),n.d(e,"h",(function(){return i})),n.d(e,"Fragment",(function(){return c})),n.d(e,"createRef",(function(){return u})),n.d(e,"isValidElement",(function(){return A})),n.d(e,"Component",(function(){return l})),n.d(e,"cloneElement",(function(){return x})),n.d(e,"createContext",(function(){return P})),n.d(e,"toChildArray",(function(){return _})),n.d(e,"_unmount",(function(){return C})),n.d(e,"options",(function(){return T}));var T,A,L,j,U,N,I,D={},M=[],R=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord/i;T={__e:function(t,e){for(var n,o;e=e.__;)if((n=e.__c)&&!n.__)try{if(n.constructor&&null!=n.constructor.getDerivedStateFromError&&(o=!0,n.setState(n.constructor.getDerivedStateFromError(t))),null!=n.componentDidCatch&&(o=!0,n.componentDidCatch(t)),o)return p(n.__E=n)}catch(e){t=e}throw t}},A=function(t){return null!=t&&void 0===t.constructor},l.prototype.setState=function(t,e){var n;n=this.__s!==this.state?this.__s:this.__s=o({},this.state),"function"==typeof t&&(t=t(n,this.props)),t&&o(n,t),null!=t&&this.__v&&(e&&this.__h.push(e),p(this))},l.prototype.forceUpdate=function(t){this.__v&&(this.__e=!0,t&&this.__h.push(t),p(this))},l.prototype.render=c,L=[],j="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,N=D,I=0},mIK7:function(t,e,n){"use strict";var o=n("SdNZ");e.a=Object(o.a)((function(t){n.e(8).then(function(){t(n("/fDt"))}.bind(null,n)).catch(n.oe)}))},mdyV:function(t,e,n){"use strict";n.r(e);var o=n("hosL");const{h:r,render:i}=o,a=t=>t&&t.default?t.default:t;if("serviceWorker"in navigator&&navigator.serviceWorker.register(n.p+"sw-esm.js"),"function"==typeof a(n("QfWi"))){let t=document.getElementById("preact_root")||document.body.firstElementChild;(()=>{let e=a(n("QfWi")),o={};const u=document.querySelector('[type="__PREACT_CLI_DATA__"]');u&&(o=JSON.parse(u.innerHTML).preRenderData||o),t=i(r(e,{CLI_DATA:{preRenderData:o}}),document.body,t)})()}},ve3R:function(t,e,n){"use strict";function o(){return(o=Object.assign||function(t){for(var e=1;e=0;p--){var d=a[p];"."===d?i(a,p):".."===d?(i(a,p),f++):f&&(i(a,p),f--)}if(!l)for(;f--;f)a.unshift("..");!l||""===a[0]||a[0]&&r(a[0])||a.unshift("");var h=a.join("/");return n&&"/"!==h.substr(-1)&&(h+="/"),h},y=function(t){if(!t)throw new Error("Invariant failed")},m=!("undefined"==typeof window||!window.document||!window.document.createElement),v={hashbang:{encodePath:function(t){return"!"===t.charAt(0)?t:"!/"+u(t)},decodePath:function(t){return"!"===t.charAt(0)?t.substr(1):t}},noslash:{encodePath:u,decodePath:a},slash:{encodePath:a,decodePath:a}}},"y+LV":function(t,e,n){"use strict";function o(t){return t.type===c.Fragment?"Fragment":"function"==typeof t.type?t.type.displayName||t.type.name:"string"==typeof t.type?t.type:"#text"}function r(){return s.length>0?s[s.length-1]:null}function i(t){return"function"==typeof t.type&&t.type!==c.Fragment}function a(t){for(var e=[t],n=t;null!=n.__o;)e.push(n.__o),n=n.__o;return e.reduce((function(t,e){t+=" in "+o(e);var n=e.__source;return n?t+=" (at "+n.fileName+":"+n.lineNumber+")":p||(p=!0,console.warn("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.")),t+"\n"}),"")}function u(t){var e=t.props,n=o(t),r="";for(var i in e)if(e.hasOwnProperty(i)&&"children"!==i){var a=e[i];"function"==typeof a&&(a="function "+(a.displayName||a.name)+"() {}"),a=Object(a)!==a||a.toString?a+"":Object.prototype.toString.call(a),r+=" "+i+"="+JSON.stringify(a)}var u=e.children;return"<"+n+r+(u&&u.length?">..":" />")}var c=n("hosL");"undefined"!=typeof window&&window.__PREACT_DEVTOOLS__&&window.__PREACT_DEVTOOLS__.attachPreact("10.0.5",c.options,{Fragment:c.Fragment});var l={},s=[],f=[],p=!1,d="function"==typeof WeakMap,h=c.Component.prototype.setState;c.Component.prototype.setState=function(t,e){return null==this.__v?null==this.state&&console.warn('Calling "this.setState" inside the constructor of a component is a no-op and might be a bug in your application. Instead, set "this.state = {}" directly.\n\n'+a(r())):null==this.__P&&console.warn('Can\'t call "this.setState" on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in the componentWillUnmount method.\n\n'+a(this.__v)),h.call(this,t,e)};var _=c.Component.prototype.forceUpdate;c.Component.prototype.forceUpdate=function(t){return null==this.__v?console.warn('Calling "this.forceUpdate" inside the constructor of a component is a no-op and might be a bug in your application.\n\n'+a(r())):null==this.__P&&console.warn('Can\'t call "this.forceUpdate" on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in the componentWillUnmount method.\n\n'+a(this.__v)),_.call(this,t)},function(){!function(){var t=c.options.__b,e=c.options.diffed,n=c.options.__,o=c.options.vnode,r=c.options.__r;c.options.diffed=function(t){i(t)&&f.pop(),s.pop(),e&&e(t)},c.options.__b=function(e){i(e)&&s.push(e),t&&t(e)},c.options.__=function(t,e){f=[],n&&n(t,e)},c.options.vnode=function(t){t.__o=f.length>0?f[f.length-1]:null,o&&o(t)},c.options.__r=function(t){i(t)&&f.push(t),r&&r(t)}}();var t=c.options.__b,e=c.options.diffed,n=c.options.vnode,r=c.options.__e,p=c.options.__,h=c.options.__h,_=d?{useEffect:new WeakMap,useLayoutEffect:new WeakMap,lazyPropTypes:new WeakMap}:null;c.options.__e=function(t,e,n){if(e&&e.__c&&"function"==typeof t.then){var i=t;t=new Error("Missing Suspense. The throwing component was: "+o(e));for(var a=e;a;a=a.__)if(a.__c&&a.__c.__c){t=i;break}if(t instanceof Error)throw t}r(t,e,n)},c.options.__=function(t,e){if(!e)throw new Error("Undefined parent passed to render(), this is the second argument.\nCheck if the element is available in the DOM/has the correct id.");var n;switch(e.nodeType){case 1:case 11:case 9:n=!0;break;default:n=!1}if(!n){var r=o(t);throw new Error("Expected a valid HTML node as a second argument to render.\tReceived "+e+" instead: render(<"+r+" />, "+e+");")}p&&p(t,e)},c.options.__b=function(e){var n,r,i,c,s=e.type,f=function t(e){return e?"function"==typeof e.type?t(e.__):e:{}}(e.__);if(void 0===s)throw new Error("Undefined component passed to createElement()\n\nYou likely forgot to export your component or might have mixed up default and named imports"+u(e)+"\n\n"+a(e));if(null!=s&&"object"==typeof s){if(void 0!==s.__k&&void 0!==s.__e)throw new Error("Invalid type passed to createElement(): "+s+"\n\nDid you accidentally pass a JSX literal as JSX twice?\n\n let My"+o(e)+" = "+u(s)+";\n let vnode = ;\n\nThis usually happens when you export a JSX literal and not the component.\n\n"+a(e));throw new Error("Invalid type passed to createElement(): "+(Array.isArray(s)?"array":s))}if("thead"!==s&&"tfoot"!==s&&"tbody"!==s||"table"===f.type?"tr"===s&&"thead"!==f.type&&"tfoot"!==f.type&&"tbody"!==f.type&&"table"!==f.type?console.error("Improper nesting of table. Your should have a parent."+u(e)+"\n\n"+a(e)):"td"===s&&"tr"!==f.type?console.error("Improper nesting of table. Your parent."+u(e)+"\n\n"+a(e)):"th"===s&&"tr"!==f.type&&console.error("Improper nesting of table. Your ."+u(e)+"\n\n"+a(e)):console.error("Improper nesting of table. Your should have a
should have a
should have a
parent."+u(e)+"\n\n"+a(e)),void 0!==e.ref&&"function"!=typeof e.ref&&"object"!=typeof e.ref&&!("$$typeof"in e))throw new Error('Component\'s "ref" property should be a function, or an object created by createRef(), but got ['+typeof e.ref+"] instead\n"+u(e)+"\n\n"+a(e));if("string"==typeof e.type)for(var p in e.props)if("o"===p[0]&&"n"===p[1]&&"function"!=typeof e.props[p]&&null!=e.props[p])throw new Error("Component's \""+p+'" property should be a function, but got ['+typeof e.props[p]+"] instead\n"+u(e)+"\n\n"+a(e));if("function"==typeof e.type&&e.type.propTypes){if("Lazy"===e.type.displayName&&_&&!_.lazyPropTypes.has(e.type)){var d="PropTypes are not supported on lazy(). Use propTypes on the wrapped component itself. ";try{var h=e.type();_.lazyPropTypes.set(e.type,!0),console.warn(d+"Component wrapped in lazy() is "+o(h))}catch(e){console.warn(d+"We will log the wrapped component's name once it is loaded.")}}n=e.type.propTypes,r=e.props,i=o(e),c=u(e),Object.keys(n).forEach((function(t){var e;try{e=n[t](r,t,c,i,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(t){e=t}!e||e.message in l||(l[e.message]=!0,console.error("Failed "+i+" type: "+e.message))}))}t&&t(e)},c.options.__h=function(t){if(!t)throw new Error("Hook can only be invoked from render methods.");h&&h(t)};var y=function(t,e){return{get:function(){throw new Error("getting vnode."+t+" is deprecated, "+e)},set:function(){throw new Error("setting vnode."+t+" is not allowed, "+e)}}},m={nodeName:y("nodeName","use vnode.type"),attributes:y("attributes","use vnode.props"),children:y("children","use vnode.props.children")},v=Object.create({},m);c.options.vnode=function(t){var e=t.props;if(null!==t.type&&null!=e&&("__source"in e||"__self"in e)){var o=t.props={};for(var r in e){var i=e[r];"__source"===r?t.__source=i:"__self"===r?t.__self=i:o[r]=i}}Object.setPrototypeOf(t,v),n&&n(t)},c.options.diffed=function(t){t.__k&&t.__k.forEach((function(t){if(t&&void 0===t.type){delete t.__,delete t.__b;var e=Object.keys(t).join(",");throw new Error("Objects are not valid as a child. Encountered an object with the keys {"+e+"}.")}}));var n=t.__c;if(n&&n.__H){var r=n.__H;Array.isArray(r.__)&&r.__.forEach((function(e){if(e.__h&&(!e.__H||!Array.isArray(e.__H))){var n=o(t);console.warn("In "+n+" you are calling useMemo/useCallback without passing arguments.\nThis is a noop since it will not be able to memoize, it will execute it every render.\n\n"+a(t))}}))}if(e&&e(t),null!=t.__k)for(var i=[],c=0;cAppunti Web \ No newline at end of file +Appunti Web \ No newline at end of file diff --git a/docs/precache-manifest.8eff6c9cf3c41600a917358493b8de5f.esm.js b/docs/precache-manifest.0d9a7bb8206f79b695db196363a66740.esm.js similarity index 84% rename from docs/precache-manifest.8eff6c9cf3c41600a917358493b8de5f.esm.js rename to docs/precache-manifest.0d9a7bb8206f79b695db196363a66740.esm.js index f0a21a8..6d7754f 100644 --- a/docs/precache-manifest.8eff6c9cf3c41600a917358493b8de5f.esm.js +++ b/docs/precache-manifest.0d9a7bb8206f79b695db196363a66740.esm.js @@ -4,15 +4,15 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ "url": "/assets/icon.png" }, { - "revision": "7b35a729d2ded13c3fb0", - "url": "/bundle.1c866.esm.js" - }, - { - "revision": "7b35a729d2ded13c3fb0", + "revision": "0cb08f52575278376708", "url": "/bundle.69171.css" }, { - "revision": "f33288a1ddead274079d9be4f5314eef", + "revision": "0cb08f52575278376708", + "url": "/bundle.85ae2.esm.js" + }, + { + "revision": "d44710768e88fd5d03fcee8d7ca73368", "url": "/index.html" }, { @@ -36,12 +36,12 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ "url": "/route-basiDiDati.chunk.ee3b7.esm.js" }, { - "revision": "a852daff915a3d8d415c", - "url": "/route-calcoloNumerico.chunk.5f4f3.esm.js" + "revision": "726a6c218a997a83178b", + "url": "/route-calcoloNumerico.chunk.9cc26.css" }, { - "revision": "a852daff915a3d8d415c", - "url": "/route-calcoloNumerico.chunk.c2edb.css" + "revision": "726a6c218a997a83178b", + "url": "/route-calcoloNumerico.chunk.b8d1f.esm.js" }, { "revision": "3f6c6e546e25cd8e9a13", diff --git a/docs/precache-manifest.8436a5a2fecf4d21f53555910f03a9d7.js b/docs/precache-manifest.ecfa5672e4bfb1b4e59f0e190b654487.js similarity index 84% rename from docs/precache-manifest.8436a5a2fecf4d21f53555910f03a9d7.js rename to docs/precache-manifest.ecfa5672e4bfb1b4e59f0e190b654487.js index 90dd148..ab177dd 100644 --- a/docs/precache-manifest.8436a5a2fecf4d21f53555910f03a9d7.js +++ b/docs/precache-manifest.ecfa5672e4bfb1b4e59f0e190b654487.js @@ -4,15 +4,15 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ "url": "/assets/icon.png" }, { - "revision": "7b35a729d2ded13c3fb0", + "revision": "0cb08f52575278376708", + "url": "/bundle.0cb08.js" + }, + { + "revision": "0cb08f52575278376708", "url": "/bundle.69171.css" }, { - "revision": "7b35a729d2ded13c3fb0", - "url": "/bundle.7b35a.js" - }, - { - "revision": "f33288a1ddead274079d9be4f5314eef", + "revision": "d44710768e88fd5d03fcee8d7ca73368", "url": "/index.html" }, { @@ -36,12 +36,12 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ "url": "/route-basiDiDati.chunk.eb3c5.js" }, { - "revision": "a852daff915a3d8d415c", - "url": "/route-calcoloNumerico.chunk.a852d.js" + "revision": "726a6c218a997a83178b", + "url": "/route-calcoloNumerico.chunk.726a6.js" }, { - "revision": "a852daff915a3d8d415c", - "url": "/route-calcoloNumerico.chunk.c2edb.css" + "revision": "726a6c218a997a83178b", + "url": "/route-calcoloNumerico.chunk.9cc26.css" }, { "revision": "3f6c6e546e25cd8e9a13", @@ -96,7 +96,7 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ "url": "/sw-debug.js" }, { - "revision": "f54b1ccfd8d64fe0c6385eb214927fb9", + "revision": "5ac8f86f72818f6b0402886fd3abec76", "url": "/sw-esm.js" }, { diff --git a/docs/push-manifest.json b/docs/push-manifest.json index d56ffd4..f42c7cd 100644 --- a/docs/push-manifest.json +++ b/docs/push-manifest.json @@ -1 +1 @@ -{"/":{"bundle.69171.css":{"type":"style","weight":1},"bundle.1c866.esm.js":{"type":"script","weight":1},"route-home.chunk.86a07.esm.js":{"type":"script","weight":0.9},"route-home.chunk.deccf.css":{"type":"style","weight":0.9}},"/apprendimentoSistemiArtificiali":{"bundle.69171.css":{"type":"style","weight":1},"bundle.1c866.esm.js":{"type":"script","weight":1},"route-apprendimentoSistemiArtificiali.chunk.fdc4f.esm.js":{"type":"script","weight":0.9},"route-apprendimentoSistemiArtificiali.chunk.c2edb.css":{"type":"style","weight":0.9}},"/basiDiDati":{"bundle.69171.css":{"type":"style","weight":1},"bundle.1c866.esm.js":{"type":"script","weight":1},"route-basiDiDati.chunk.ee3b7.esm.js":{"type":"script","weight":0.9},"route-basiDiDati.chunk.9cc26.css":{"type":"style","weight":0.9}},"/calcoloNumerico":{"bundle.69171.css":{"type":"style","weight":1},"bundle.1c866.esm.js":{"type":"script","weight":1},"route-calcoloNumerico.chunk.5f4f3.esm.js":{"type":"script","weight":0.9},"route-calcoloNumerico.chunk.c2edb.css":{"type":"style","weight":0.9}},"/fisica":{"bundle.69171.css":{"type":"style","weight":1},"bundle.1c866.esm.js":{"type":"script","weight":1},"route-fisica.chunk.4ed8c.esm.js":{"type":"script","weight":0.9},"route-fisica.chunk.0b01a.css":{"type":"style","weight":0.9}},"/mingwinstall":{"bundle.69171.css":{"type":"style","weight":1},"bundle.1c866.esm.js":{"type":"script","weight":1},"route-mingwinstall.chunk.ea3ae.esm.js":{"type":"script","weight":0.9},"route-mingwinstall.chunk.4f81b.css":{"type":"style","weight":0.9}},"/ottimizzazioneLineare":{"bundle.69171.css":{"type":"style","weight":1},"bundle.1c866.esm.js":{"type":"script","weight":1},"route-ottimizzazioneLineare.chunk.96c0e.esm.js":{"type":"script","weight":0.9},"route-ottimizzazioneLineare.chunk.c2edb.css":{"type":"style","weight":0.9}},"/statistica":{"bundle.69171.css":{"type":"style","weight":1},"bundle.1c866.esm.js":{"type":"script","weight":1},"route-statistica.chunk.26925.esm.js":{"type":"script","weight":0.9},"route-statistica.chunk.025c9.css":{"type":"style","weight":0.9}},"/vldigeometria":{"bundle.69171.css":{"type":"style","weight":1},"bundle.1c866.esm.js":{"type":"script","weight":1},"route-vldigeometria.chunk.24244.esm.js":{"type":"script","weight":0.9},"route-vldigeometria.chunk.e54c2.css":{"type":"style","weight":0.9}}} \ No newline at end of file +{"/":{"bundle.69171.css":{"type":"style","weight":1},"bundle.85ae2.esm.js":{"type":"script","weight":1},"route-home.chunk.86a07.esm.js":{"type":"script","weight":0.9},"route-home.chunk.deccf.css":{"type":"style","weight":0.9}},"/apprendimentoSistemiArtificiali":{"bundle.69171.css":{"type":"style","weight":1},"bundle.85ae2.esm.js":{"type":"script","weight":1},"route-apprendimentoSistemiArtificiali.chunk.fdc4f.esm.js":{"type":"script","weight":0.9},"route-apprendimentoSistemiArtificiali.chunk.c2edb.css":{"type":"style","weight":0.9}},"/basiDiDati":{"bundle.69171.css":{"type":"style","weight":1},"bundle.85ae2.esm.js":{"type":"script","weight":1},"route-basiDiDati.chunk.ee3b7.esm.js":{"type":"script","weight":0.9},"route-basiDiDati.chunk.9cc26.css":{"type":"style","weight":0.9}},"/calcoloNumerico":{"bundle.69171.css":{"type":"style","weight":1},"bundle.85ae2.esm.js":{"type":"script","weight":1},"route-calcoloNumerico.chunk.b8d1f.esm.js":{"type":"script","weight":0.9},"route-calcoloNumerico.chunk.9cc26.css":{"type":"style","weight":0.9}},"/fisica":{"bundle.69171.css":{"type":"style","weight":1},"bundle.85ae2.esm.js":{"type":"script","weight":1},"route-fisica.chunk.4ed8c.esm.js":{"type":"script","weight":0.9},"route-fisica.chunk.0b01a.css":{"type":"style","weight":0.9}},"/mingwinstall":{"bundle.69171.css":{"type":"style","weight":1},"bundle.85ae2.esm.js":{"type":"script","weight":1},"route-mingwinstall.chunk.ea3ae.esm.js":{"type":"script","weight":0.9},"route-mingwinstall.chunk.4f81b.css":{"type":"style","weight":0.9}},"/ottimizzazioneLineare":{"bundle.69171.css":{"type":"style","weight":1},"bundle.85ae2.esm.js":{"type":"script","weight":1},"route-ottimizzazioneLineare.chunk.96c0e.esm.js":{"type":"script","weight":0.9},"route-ottimizzazioneLineare.chunk.c2edb.css":{"type":"style","weight":0.9}},"/statistica":{"bundle.69171.css":{"type":"style","weight":1},"bundle.85ae2.esm.js":{"type":"script","weight":1},"route-statistica.chunk.26925.esm.js":{"type":"script","weight":0.9},"route-statistica.chunk.025c9.css":{"type":"style","weight":0.9}},"/vldigeometria":{"bundle.69171.css":{"type":"style","weight":1},"bundle.85ae2.esm.js":{"type":"script","weight":1},"route-vldigeometria.chunk.24244.esm.js":{"type":"script","weight":0.9},"route-vldigeometria.chunk.e54c2.css":{"type":"style","weight":0.9}}} \ No newline at end of file diff --git a/docs/route-calcoloNumerico.chunk.5f4f3.esm.js b/docs/route-calcoloNumerico.chunk.5f4f3.esm.js deleted file mode 100644 index 27a78b7..0000000 --- a/docs/route-calcoloNumerico.chunk.5f4f3.esm.js +++ /dev/null @@ -1,2 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[4],{"+AyP":function(e){e.exports={latex:"latex__3Esv7"}},"1nLj":function(e){e.exports={panel:"panel__1ubJw"}},"68UE":function(e){e.exports={example:"example__P0_NL"}},"6GOG":function(e,l,i){"use strict";i.r(l),function(e){i.d(l,"default",(function(){return o}));var t=i("hosL"),n=i("ddBW"),a=(i("ZsnK"),i("9yVG"));i("PEwj"),i("7bXG");class o extends t.Component{render(){return e("div",null,e("h1",null,"Calcolo Numerico"),e(n.a,{title:"Materiale"},e(a.a,{title:"Slides"},e("p",null,"Ultimo aggiornamento: ",e("time",null,"2020-03-11")),e("ul",null,e("li",null,e("a",{href:"https://t.me/unimorefiles/13"},"Richiami di Algebra Lineare")),e("li",null,e("a",{href:"https://t.me/unimorefiles/14"},"Slides")),e("li",null,e("a",{href:"https://t.me/unimorefiles/15"},"Laboratorio")),e("li",null,e("a",{href:"https://t.me/unimorefiles/16"},"Matlab"))),e("p",null,e("i",null,"Per slides più aggiornate, visitate ",e("a",{href:"https://dolly.fim.unimore.it/2019/course/view.php?id=25"},"Dolly"),"!"))),e(a.a,{title:"Videolezioni"},e("ol",null,e("li",null,e("a",{href:"https://eu.bbcollab.com/collab/ui/session/playback/load/ef3c5cf6f4e74a948f03220bc1c3a87d"},"Introduzione al corso")),e("li",null,e("a",{href:"https://eu.bbcollab.com/collab/ui/session/playback/load/ef3c5cf6f4e74a948f03220bc1c3a87d"},"Introduzione alla materia")),e("li",null,e("a",{href:"https://eu.bbcollab.com/collab/ui/session/playback/load/57489722ce4e426194fd8c9cb06a1867"},"Rappresentazione dei numeri")),e("li",null,e("a",{href:"https://eu.bbcollab.com/collab/ui/session/playback/load/57489722ce4e426194fd8c9cb06a1867"},"Rappresentazione fixed point degli interi")),e("li",null,e("a",{href:"https://eu.bbcollab.com/collab/ui/session/playback/load/6da751c5e49143eebe203e388ca8a4b8"},"Rappresentazione floating point dei reali")),e("li",null,e("a",{href:"https://eu.bbcollab.com/collab/ui/session/playback/load/6da751c5e49143eebe203e388ca8a4b8"},"Operazioni di macchina")))),e(a.a,{title:"Team-based Learning"},e("blockquote",null,e("p",null,"Le lezioni in modalità TBL, previste per il corso di Laurea in Informatica, saranno erogate solo quando sarà possibile tornare alla modalità didattica in presenza, per la natura stessa di questa metodologia che non prevede uno svolgimento a distanza."),e("p",null,"Per il momento, vista l'incertezza della situazione in continua evoluzione, è inutile dare ulteriori indicazioni sulle date o altri aspetti pratici legati al progetto."),e("p",null,"Appena sarà possibile, gli interessati verranno informati tramite email.")))))}}}.call(this,i("hosL").h)},"7bXG":function(e,l,i){"use strict";(function(e){i.d(l,"a",(function(){return o}));var t=i("kpQM"),n=i.n(t),a=i("hosL");class o extends a.Component{render(){return e("span",{class:n.a.todo},this.props.children)}}}).call(this,i("hosL").h)},"9yVG":function(e,l,i){"use strict";(function(e){i.d(l,"a",(function(){return o}));var t=i("1nLj"),n=i.n(t),a=i("hosL");class o extends a.Component{getStyle(){return n.a.panel}render(){let l=null;return void 0!==this.props.title&&(l=e("h3",null,this.props.title)),e("div",{class:this.getStyle(),id:this.props.id},l,this.props.children)}}}).call(this,i("hosL").h)},PEwj:function(e,l,i){"use strict";(function(e){i.d(l,"a",(function(){return o}));var t=i("68UE"),n=i.n(t),a=i("hosL");class o extends a.Component{render(){return e("blockquote",{class:n.a.example},this.props.children)}}}).call(this,i("hosL").h)},ZsnK:function(e,l,i){"use strict";(function(e){i.d(l,"a",(function(){return o}));var t=i("+AyP"),n=i.n(t),a=i("hosL");class o extends a.Component{render(){return e("img",{src:`https://latex.codecogs.com/svg.latex?${`{\\color{White} ${this.props.children} }`}`,alt:this.props.children,title:this.props.children,class:n.a.latex})}}}).call(this,i("hosL").h)},ddBW:function(e,l,i){"use strict";(function(e){i.d(l,"a",(function(){return o}));var t=i("rMrT"),n=i.n(t),a=i("hosL");class o extends a.Component{render(){let l,i=null;return void 0!==this.props.title&&(i=e("h2",null,this.props.title)),l=Array.isArray(this.props.children)?this.props.children.map(l=>e("div",{class:n.a.splitchild},l)):e("div",{class:n.a.splitchild},this.props.children),e("div",{class:n.a.split},i,e("div",{class:n.a.splitparent},l))}}}).call(this,i("hosL").h)},kpQM:function(e){e.exports={todo:"todo__1pOoN"}},rMrT:function(e){e.exports={split:"split__3qCWp",splitparent:"splitparent__2xagg",splitchild:"splitchild__3cEoc"}}}]); -//# sourceMappingURL=route-calcoloNumerico.chunk.5f4f3.esm.js.map \ No newline at end of file diff --git a/docs/route-calcoloNumerico.chunk.726a6.js b/docs/route-calcoloNumerico.chunk.726a6.js new file mode 100644 index 0000000..0c005d9 --- /dev/null +++ b/docs/route-calcoloNumerico.chunk.726a6.js @@ -0,0 +1,2 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[4],{"+AyP":function(t){t.exports={latex:"latex__3Esv7"}},"1nLj":function(t){t.exports={panel:"panel__1ubJw"}},"68UE":function(t){t.exports={example:"example__P0_NL"}},"6GOG":function(t,e,n){"use strict";n.r(e),function(t){function i(){var t=p(["mathbb{R}"],["\\mathbb{R}"]);return i=function(){return t},t}function o(){var t=p(["\frac{1}{2}"],["\\frac{1}{2}"]);return o=function(){return t},t}function a(){var t=p(["E_r leq k cdot \beta^{1-t}"],["E_r \\leq k \\cdot \\beta^{1-t}"]);return a=function(){return t},t}function l(){var t=p(["\forall alpha \neq 0, E_r = \frac{E_a}{left | alpha \right |}"],["\\forall \\alpha \\neq 0, E_r = \\frac{E_a}{\\left | \\alpha \\right |}"]);return l=function(){return t},t}function r(){var t=p(["E_a = left | alpha - alpha^* \right |"],["E_a = \\left | \\alpha - \\alpha^* \\right |"]);return r=function(){return t},t}function s(){var t=p(["alpha^*"],["\\alpha^*"]);return s=function(){return t},t}function u(){var t=p(["alpha"],["\\alpha"]);return u=function(){return t},t}function p(t,e){return e||(e=t.slice(0)),t.raw=e,t}n.d(e,"default",(function(){return g}));var c=n("hosL"),d=n("ddBW"),h=n("ZsnK"),m=n("9yVG"),f=n("PEwj"),v=(n("7bXG"),n("810C")),_=String.raw,g=function(e){function n(){return e.apply(this,arguments)||this}var p,c;return c=e,(p=n).prototype=Object.create(c.prototype),p.prototype.constructor=p,p.__proto__=c,n.prototype.render=function(){return t("div",null,t("h1",null,"Calcolo Numerico"),t(d.a,{title:"Materiale"},t(m.a,{title:"Slides"},t("p",null,"Ultimo aggiornamento: ",t("time",null,"2020-03-11")),t("ul",null,t("li",null,t("a",{href:"https://t.me/unimorefiles/13"},"Richiami di Algebra Lineare")),t("li",null,t("a",{href:"https://t.me/unimorefiles/14"},"Slides")),t("li",null,t("a",{href:"https://t.me/unimorefiles/15"},"Laboratorio")),t("li",null,t("a",{href:"https://t.me/unimorefiles/16"},"Matlab"))),t("p",null,t("i",null,"Per slides più aggiornate, visitate ",t("a",{href:"https://dolly.fim.unimore.it/2019/course/view.php?id=25"},"Dolly"),"!"))),t(m.a,{title:"Videolezioni"},t("ol",null,t("li",null,t("a",{href:"https://t.me/unimorefiles/34"},"Introduzione al corso")),t("li",null,t("a",{href:"https://t.me/unimorefiles/35"},"Introduzione alla materia")),t("li",null,t("a",{href:"https://t.me/unimorefiles/36"},"Rappresentazione dei numeri")),t("li",null,t("a",{href:"https://t.me/unimorefiles/37"},"Rappresentazione fixed point degli interi")),t("li",null,t("a",{href:"https://t.me/unimorefiles/38"},"Rappresentazione floating point dei reali")),t("li",null,t("a",{href:"https://t.me/unimorefiles/39"},"Operazioni di macchina")),t("li",null,"Analisi degli errori: condizionamento e stabilità"),t("li",null,"Richiami di Algebra lineare"))),t(m.a,{title:"Team-based Learning"},t("blockquote",null,t("p",null,"Le lezioni in modalità TBL, previste per il corso di Laurea in Informatica, saranno erogate solo quando sarà possibile tornare alla modalità didattica in presenza, per la natura stessa di questa metodologia che non prevede uno svolgimento a distanza."),t("p",null,"Per il momento, vista l'incertezza della situazione in continua evoluzione, è inutile dare ulteriori indicazioni sulle date o altri aspetti pratici legati al progetto."),t("p",null,"Appena sarà possibile, gli interessati verranno informati tramite email.")),t("p",null,"Partecipare al Team-based Learning può portare all'ottenimento di fino a 3 punti bonus all'esame e esenzione dalla domanda di Matlab."))),t(d.a,{title:"Contatti"},t(m.a,{title:"Email della prof.ssa"},t("p",null,t("a",{href:"mailto:silvia.bonettini@unimore.it"},"silvia.bonettini@unimore.it"))),t(m.a,{title:"Ricevimento"},t("p",null,"Su appuntamento."))),t(d.a,{title:"Esame"},t(m.a,{title:"Orale"},t("p",null,"E' composto da:"),t("ul",null,t("li",null,"2 domande sugli argomenti teorici"),t("li",null,"1 domanda di implementazione algoritmo in MATLAB ",t("small",null,"(facoltativa per i punteggi migliori del TBL)"))),t("p",null,"Prossimo appello:",t(v.a,null)))),t(d.a,{title:"Algoritmi"},t(m.a,{title:"Algoritmi numerici"},t("p",null,"Algoritmi che hanno:"),t("ul",null,t("li",null,"numeri reali in input e output"),t("li",null,"successioni delle quattro operazioni aritmetiche fondamentali come passi")))),t(d.a,{title:"Errore di rappresentazione"},t(m.a,{title:"Errore di rappresentazione"},t("p",null,"Con i numeri floating point può capitare che un certo numero ",t(h.a,null,_(u()))," non sia rappresentato correttamente."),t("p",null,"In tal caso, il numero si indica con ",t(h.a,null,_(s())),".")),t(m.a,{title:"Errore assoluto"},t("p",null,"È la differenza tra il numero desiderato e il numero rappresentato:"),t("p",null,t(h.a,null,_(r()))),t(f.a,null,"Vale sempre 0, tranne in caso di underflow o overflow.")),t(m.a,{title:"Errore relativo"},t("p",null,"Indica quanto il numero rappresentato differisce dal numero desiderato:"),t("p",null,t(h.a,null,_(l()))))),t(d.a,{title:"Floating point"},t(m.a,{title:"Precisione di macchina"},t("p",null,"L'errore relativo di un numero reale rappresentato in virgola mobile è minore o uguale alla ",t("i",null,"precisione di macchina"),":"),t("p",null,t(h.a,null,_(a()))),t("ul",null,t("li",null,t(h.a,null,"\\beta")," è uguale alla base utilizzata (solitamente 2)."),t("li",null,t(h.a,null,"t")," è uguale al numero di cifre della mantissa."),t("li",null,t(h.a,null,"k")," è uguale a ",t(h.a,null,"1")," se il numero viene rappresentato per troncamento oppure a ",t(h.a,null,_(o()))," se viene rappresentato per arrotondamento.")))),t(d.a,{title:"Operazioni di macchina"},t(m.a,{title:"Un nuovo insieme"},t("p",null,"L'insieme ",t(h.a,null,"F")," è il sottoinsieme dei numeri reali rappresentabili in floating point dalla macchina che stiamo usando."),t("p",null,"Operazioni tra elementi di ",t(h.a,null,"F")," producono risultati in ",t(h.a,null,_(i())),", che però decaderanno nuovamente a elementi di ",t(h.a,null,"F"),", perdendo informazioni."),t("p",null,"Il teorema della precisione di macchina si applica quindi anche ai risultati delle operazioni.")),t(m.a,{title:"Caratteristiche delle operazioni di macchina"},t("ul",null,t("li",null,"Hanno più di un elemento neutro."),t("li",null,"Un numero ha più opposti."),t("li",null,"Non sono associative."),t("li",null,"Non sono distributive."),t("li",null,"Non vale la legge di annullamento del prodotto.")))))},n}(c.Component)}.call(this,n("hosL").h)},"7bXG":function(t,e,n){"use strict";(function(t){n.d(e,"a",(function(){return a}));var i=n("kpQM"),o=n.n(i),a=function(e){function n(){return e.apply(this,arguments)||this}var i,a;return a=e,(i=n).prototype=Object.create(a.prototype),i.prototype.constructor=i,i.__proto__=a,n.prototype.render=function(){return t("span",{class:o.a.todo},this.props.children)},n}(n("hosL").Component)}).call(this,n("hosL").h)},"810C":function(t,e,n){"use strict";(function(t){n.d(e,"a",(function(){return l}));var i=n("hosL"),o=n("Q3JM"),a=n.n(o),l=function(e){function n(){var t;return(t=e.call(this)||this).state={now:Date.now()},t.timer=null,t}var i,o;o=e,(i=n).prototype=Object.create(o.prototype),i.prototype.constructor=i,i.__proto__=o;var l=n.prototype;return l.componentDidMount=function(){var t=this;this.timer=setInterval((function(){t.setState({now:Date.now()})}),1e3)},l.componentWillUnmount=function(){null!==this.timer&&clearInterval(this.timer)},l.render=function(){var e="Unknown date",n=a.a.timer,i={milliseconds:"?",seconds:"?",minutes:"?",hours:"?",days:"?"};if(this.props.to){var o=(e=new Date(this.props.to))-this.state.now;o>0?i={milliseconds:o%1e3,seconds:Math.floor(o/1e3)%60,minutes:Math.floor(o/6e4)%60,hours:Math.floor(o/36e5)%24,days:Math.floor(o/864e5)}:(i={milliseconds:0,seconds:0,minutes:0,hours:0,days:0},n+=" "+a.a.expired)}else n+=" "+a.a.unknown;return t("div",{class:n,title:e},t("div",{class:a.a.days+" "+a.a.count},i.days),t("div",{className:a.a.days+" "+a.a.text},"giorni"),t("div",{class:a.a.hours+" "+a.a.count},i.hours),t("div",{className:a.a.hours+" "+a.a.text},"ore"),t("div",{class:a.a.minutes+" "+a.a.count},i.minutes),t("div",{className:a.a.minutes+" "+a.a.text},"minuti"),t("div",{class:a.a.seconds+" "+a.a.count},i.seconds),t("div",{class:a.a.seconds+" "+a.a.text},"secondi"),t("div",{class:a.a.remaining},"rimasti"))},n}(i.Component)}).call(this,n("hosL").h)},"9yVG":function(t,e,n){"use strict";(function(t){n.d(e,"a",(function(){return a}));var i=n("1nLj"),o=n.n(i),a=function(e){function n(){return e.apply(this,arguments)||this}var i,a;a=e,(i=n).prototype=Object.create(a.prototype),i.prototype.constructor=i,i.__proto__=a;var l=n.prototype;return l.getStyle=function(){return o.a.panel},l.render=function(){var e=null;return void 0!==this.props.title&&(e=t("h3",null,this.props.title)),t("div",{class:this.getStyle(),id:this.props.id},e,this.props.children)},n}(n("hosL").Component)}).call(this,n("hosL").h)},PEwj:function(t,e,n){"use strict";(function(t){n.d(e,"a",(function(){return a}));var i=n("68UE"),o=n.n(i),a=function(e){function n(){return e.apply(this,arguments)||this}var i,a;return a=e,(i=n).prototype=Object.create(a.prototype),i.prototype.constructor=i,i.__proto__=a,n.prototype.render=function(){return t("blockquote",{class:o.a.example},this.props.children)},n}(n("hosL").Component)}).call(this,n("hosL").h)},Q3JM:function(t){t.exports={timer:"timer__23gHK",days:"days__3ZzFX",hours:"hours__3LtGw",minutes:"minutes__1_j61",seconds:"seconds__gE-gj",count:"count__28Md8",text:"text__2kIQZ",remaining:"remaining__1HVwa",unknown:"unknown__teMQN",expired:"expired__3wewI"}},ZsnK:function(t,e,n){"use strict";(function(t){n.d(e,"a",(function(){return a}));var i=n("+AyP"),o=n.n(i),a=function(e){function n(){return e.apply(this,arguments)||this}var i,a;return a=e,(i=n).prototype=Object.create(a.prototype),i.prototype.constructor=i,i.__proto__=a,n.prototype.render=function(){return t("img",{src:"https://latex.codecogs.com/svg.latex?"+("{\\color{White} "+this.props.children+" }"),alt:this.props.children,title:this.props.children,class:o.a.latex})},n}(n("hosL").Component)}).call(this,n("hosL").h)},ddBW:function(t,e,n){"use strict";(function(t){n.d(e,"a",(function(){return a}));var i=n("rMrT"),o=n.n(i),a=function(e){function n(){return e.apply(this,arguments)||this}var i,a;return a=e,(i=n).prototype=Object.create(a.prototype),i.prototype.constructor=i,i.__proto__=a,n.prototype.render=function(){var e,n=null;return void 0!==this.props.title&&(n=t("h2",null,this.props.title)),e=Array.isArray(this.props.children)?this.props.children.map((function(e){return t("div",{class:o.a.splitchild},e)})):t("div",{class:o.a.splitchild},this.props.children),t("div",{class:o.a.split},n,t("div",{class:o.a.splitparent},e))},n}(n("hosL").Component)}).call(this,n("hosL").h)},kpQM:function(t){t.exports={todo:"todo__1pOoN"}},rMrT:function(t){t.exports={split:"split__3qCWp",splitparent:"splitparent__2xagg",splitchild:"splitchild__3cEoc"}}}]); +//# sourceMappingURL=route-calcoloNumerico.chunk.726a6.js.map \ No newline at end of file diff --git a/docs/route-calcoloNumerico.chunk.726a6.js.map b/docs/route-calcoloNumerico.chunk.726a6.js.map new file mode 100644 index 0000000..1326c6f --- /dev/null +++ b/docs/route-calcoloNumerico.chunk.726a6.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///./components/latex.css","webpack:///./components/panel.css","webpack:///./components/example.css","webpack:///./routes/calcoloNumerico.js","webpack:///./components/todo.js","webpack:///./components/timer.js","webpack:///./components/panel.js","webpack:///./components/example.js","webpack:///./components/timer.less","webpack:///./components/latex.js","webpack:///./components/split.js","webpack:///./components/todo.css","webpack:///./components/split.css"],"names":["module","exports","r","String","raw","CalcoloNumerico","render","title","href","Component","Todo","class","style","todo","this","props","children","Timer","state","Date","now","timer","componentDidMount","setInterval","setState","componentWillUnmount","clearInterval","dateTo","className","parts","milliseconds","seconds","minutes","hours","days","to","timeLeft","Math","floor","expired","unknown","count","text","remaining","Panel","getStyle","panel","undefined","id","Example","example","Latex","src","alt","latex","Split","Array","isArray","map","element","splitchild","split","splitparent"],"mappings":"4EACAA,EAAOC,QAAU,CAAC,MAAQ,iB,mBCA1BD,EAAOC,QAAU,CAAC,MAAQ,iB,mBCA1BD,EAAOC,QAAU,CAAC,QAAU,mB,+/BCOtBC,EAAIC,OAAOC,IAEIC,E,gLACjBC,OAAA,WACI,OACI,aACI,gCACA,EAAC,IAAD,CAAOC,MAAO,aACV,EAAC,IAAD,CAAOA,MAAO,UACV,oCAC0B,6BAE1B,YACI,YAAI,OAAGC,KAAM,gCAAT,gCACJ,YAAI,OAAGA,KAAM,gCAAT,WACJ,YAAI,OAAGA,KAAM,gCAAT,gBACJ,YAAI,OAAGA,KAAM,gCAAT,YAER,WACI,kDAAuC,OAAGA,KAAM,2DAAT,SAAvC,OAGR,EAAC,IAAD,CAAOD,MAAO,gBACV,YACI,YAAI,OAAGC,KAAM,gCAAT,0BACJ,YAAI,OAAGA,KAAM,gCAAT,8BACJ,YAAI,OAAGA,KAAM,gCAAT,gCACJ,YAAI,OAAGA,KAAM,gCAAT,8CACJ,YAAI,OAAGA,KAAM,gCAAT,8CACJ,YAAI,OAAGA,KAAM,gCAAT,2BACJ,iEACA,6CAGR,EAAC,IAAD,CAAOD,MAAO,uBACV,oBACI,yQAGA,sLAGA,wFAIJ,sJAKR,EAAC,IAAD,CAAOA,MAAO,YACV,EAAC,IAAD,CAAOA,MAAO,wBACV,WACI,OAAGC,KAAM,sCAAT,iCAGR,EAAC,IAAD,CAAOD,MAAO,eACV,iCAKR,EAAC,IAAD,CAAOA,MAAO,SACV,EAAC,IAAD,CAAOA,MAAO,SACV,8BAGA,YACI,iDACA,gEAAqD,kEAEzD,+BAEI,EAAC,IAAD,SAIZ,EAAC,IAAD,CAAOA,MAAO,aACV,EAAC,IAAD,CAAOA,MAAO,sBACV,mCAGA,YACI,8CACA,2FAIZ,EAAC,IAAD,CAAOA,MAAO,8BACV,EAAC,IAAD,CAAOA,MAAO,8BACV,2EACiE,EAAC,IAAD,KAAQL,EAAR,MADjE,yCAGA,mDACyC,EAAC,IAAD,KAAQA,EAAR,MADzC,MAIJ,EAAC,IAAD,CAAOK,MAAO,mBACV,kFAGA,WACI,EAAC,IAAD,KAAQL,EAAR,OAEJ,EAAC,IAAD,gEAIJ,EAAC,IAAD,CAAOK,MAAO,mBACV,sFAGA,WACI,EAAC,IAAD,KAAQL,EAAR,SAIZ,EAAC,IAAD,CAAOK,MAAO,kBACV,EAAC,IAAD,CAAOA,MAAO,0BACV,0GACgG,qCADhG,KAGA,WACI,EAAC,IAAD,KAAQL,EAAR,OAEJ,YACI,YACI,EAAC,IAAD,eADJ,mDAGA,YACI,EAAC,IAAD,UADJ,gDAGA,YACI,EAAC,IAAD,UADJ,eACgC,EAAC,IAAD,UADhC,8DAC2G,EAAC,IAAD,KAAQA,EAAR,MAD3G,kDAMZ,EAAC,IAAD,CAAOK,MAAO,0BACV,EAAC,IAAD,CAAOA,MAAO,oBACV,wBACc,EAAC,IAAD,UADd,2GAGA,yCAC+B,EAAC,IAAD,UAD/B,2BACuE,EAAC,IAAD,KAAQL,EAAR,MADvE,mDACqJ,EAAC,IAAD,UADrJ,4BAGA,8GAIJ,EAAC,IAAD,CAAOK,MAAO,gDACV,YACI,gDACA,yCACA,qCACA,sCACA,oE,GA3JiBE,c,oICPxBC,E,gLACpBJ,OAAA,WACC,OAAO,UAAMK,MAAOC,IAAMC,MAAOC,KAAKC,MAAMC,W,aAFZP,a,gJCCbQ,E,YACjB,aAAc,aACV,sBACKC,MAAQ,CACT,IAAOC,KAAKC,OAEhB,EAAKC,MAAQ,KALH,E,0HAQdC,kBAAA,WAAoB,WAChBR,KAAKO,MAAQE,aAAY,WACrB,EAAKC,SAAS,CAAC,IAAOL,KAAKC,UAC5B,M,EAGPK,qBAAA,WACsB,OAAfX,KAAKO,OACJK,cAAcZ,KAAKO,Q,EAI3Bf,OAAA,WACI,IAAIqB,EAAS,eACTC,EAAYhB,IAAMS,MAElBQ,EAAQ,CACRC,aAAc,IACdC,QAAS,IACTC,QAAS,IACTC,MAAO,IACPC,KAAM,KAGV,GAAGpB,KAAKC,MAAMoB,GAAI,CAEd,IAAIC,GADJT,EAAS,IAAIR,KAAKL,KAAKC,MAAMoB,KACLrB,KAAKI,MAAME,IAEhCgB,EAAW,EACVP,EAAQ,CACJC,aAAcM,EAAW,IACzBL,QAASM,KAAKC,MAAMF,EAAW,KAAQ,GACvCJ,QAASK,KAAKC,MAAMF,EAAW,KAAS,GACxCH,MAAOI,KAAKC,MAAMF,EAAW,MAAW,GACxCF,KAAMG,KAAKC,MAAMF,EAAW,SAKhCP,EAAQ,CACJC,aAAc,EACdC,QAAS,EACTC,QAAS,EACTC,MAAO,EACPC,KAAM,GAGVN,GAAa,IAAMhB,IAAM2B,cAI7BX,GAAa,IAAMhB,IAAM4B,QAG7B,OACI,SAAK7B,MAAOiB,EAAWrB,MAAOoB,GAC1B,SAAKhB,MAAOC,IAAMsB,KAAO,IAAMtB,IAAM6B,OAChCZ,EAAMK,MAEX,SAAKN,UAAWhB,IAAMsB,KAAO,IAAMtB,IAAM8B,MAAzC,UAGA,SAAK/B,MAAOC,IAAMqB,MAAQ,IAAMrB,IAAM6B,OACjCZ,EAAMI,OAEX,SAAKL,UAAWhB,IAAMqB,MAAQ,IAAMrB,IAAM8B,MAA1C,OAGA,SAAK/B,MAAOC,IAAMoB,QAAU,IAAMpB,IAAM6B,OACnCZ,EAAMG,SAEX,SAAKJ,UAAWhB,IAAMoB,QAAU,IAAMpB,IAAM8B,MAA5C,UAGA,SAAK/B,MAAOC,IAAMmB,QAAU,IAAMnB,IAAM6B,OACnCZ,EAAME,SAEX,SAAKpB,MAAOC,IAAMmB,QAAU,IAAMnB,IAAM8B,MAAxC,WAGA,SAAK/B,MAAOC,IAAM+B,WAAlB,a,GAzFmBlC,e,oICDdmC,E,wLACpBC,SAAA,WACC,OAAOjC,IAAMkC,O,EAGdxC,OAAA,WACC,IAAIC,EAAQ,KAKZ,YAJwBwC,IAArBjC,KAAKC,MAAMR,QACbA,EAAS,YAAKO,KAAKC,MAAMR,QAIzB,SAAKI,MAAOG,KAAK+B,WAAYG,GAAIlC,KAAKC,MAAMiC,IAC1CzC,EACAO,KAAKC,MAAMC,W,aAdmBP,a,kICAdwC,E,gLACjB3C,OAAA,WACI,OACI,gBAAYK,MAAOC,IAAMsC,SACpBpC,KAAKC,MAAMC,W,aAJSP,a,yCCFrCT,EAAOC,QAAU,CAAC,MAAQ,eAAe,KAAO,cAAc,MAAQ,eAAe,QAAU,iBAAiB,QAAU,iBAAiB,MAAQ,eAAe,KAAO,cAAc,UAAY,mBAAmB,QAAU,iBAAiB,QAAU,mB,0GCEtOkD,E,gLACpB7C,OAAA,WAEC,OACC,SAAK8C,IAAG,yCAFM,mBAAmBtC,KAAKC,MAAMC,SAAjC,MAGTqC,IAAKvC,KAAKC,MAAMC,SACbT,MAAOO,KAAKC,MAAMC,SAClBL,MAAOC,IAAM0C,S,aAPc7C,a,kICAd8C,E,gLACpBjD,OAAA,WACI,IAKOU,EALHT,EAAQ,KAcf,YAb2BwC,IAArBjC,KAAKC,MAAMR,QACPA,EAAS,YAAKO,KAAKC,MAAMR,QAKzBS,EADDwC,MAAMC,QAAQ3C,KAAKC,MAAMC,UACbF,KAAKC,MAAMC,SAAS0C,KAAI,SAAAC,GAC/B,OAAQ,SAAKhD,MAAOC,IAAMgD,YAAaD,MAIhC,SAAKhD,MAAOC,IAAMgD,YAAa9C,KAAKC,MAAMC,UAGxD,SAAKL,MAAOC,IAAMiD,OACVtD,EACD,SAAKI,MAAOC,IAAMkD,aAAc9C,K,aAnBbP,a,yCCFnCT,EAAOC,QAAU,CAAC,KAAO,gB,iBCAzBD,EAAOC,QAAU,CAAC,MAAQ,eAAe,YAAc,qBAAqB,WAAa","file":"route-calcoloNumerico.chunk.726a6.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"latex\":\"latex__3Esv7\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"panel\":\"panel__1ubJw\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"example\":\"example__P0_NL\"};","import {Component} from 'preact'\nimport Split from \"../components/split\";\nimport Latex from \"../components/latex\";\nimport Panel from \"../components/panel\";\nimport Example from \"../components/example\";\nimport Todo from \"../components/todo\";\nimport Timer from \"../components/timer\";\n\nconst r = String.raw;\n\nexport default class CalcoloNumerico extends Component {\n render() {\n return (\n
\n

Calcolo Numerico

\n \n \n

\n Ultimo aggiornamento: \n

\n \n

\n Per slides più aggiornate, visitate Dolly!\n

\n
\n \n
    \n
  1. Introduzione al corso
  2. \n
  3. Introduzione alla materia
  4. \n
  5. Rappresentazione dei numeri
  6. \n
  7. Rappresentazione fixed point degli interi
  8. \n
  9. Rappresentazione floating point dei reali
  10. \n
  11. Operazioni di macchina
  12. \n
  13. Analisi degli errori: condizionamento e stabilità
  14. \n
  15. Richiami di Algebra lineare
  16. \n
\n
\n \n
\n

\n Le lezioni in modalità TBL, previste per il corso di Laurea in Informatica, saranno erogate solo quando sarà possibile tornare alla modalità didattica in presenza, per la natura stessa di questa metodologia che non prevede uno svolgimento a distanza.\n

\n

\n Per il momento, vista l'incertezza della situazione in continua evoluzione, è inutile dare ulteriori indicazioni sulle date o altri aspetti pratici legati al progetto.\n

\n

\n Appena sarà possibile, gli interessati verranno informati tramite email.\n

\n
\n

\n Partecipare al Team-based Learning può portare all'ottenimento di fino a 3 punti bonus all'esame e esenzione dalla domanda di Matlab.\n

\n
\n
\n \n \n

\n silvia.bonettini@unimore.it\n

\n
\n \n

\n Su appuntamento.\n

\n
\n
\n \n \n

\n E' composto da:\n

\n
    \n
  • 2 domande sugli argomenti teorici
  • \n
  • 1 domanda di implementazione algoritmo in MATLAB (facoltativa per i punteggi migliori del TBL)
  • \n
\n

\n Prossimo appello:\n \n

\n
\n
\n \n \n

\n Algoritmi che hanno:\n

\n
    \n
  • numeri reali in input e output
  • \n
  • successioni delle quattro operazioni aritmetiche fondamentali come passi
  • \n
\n
\n
\n \n \n

\n Con i numeri floating point può capitare che un certo numero {r`\\alpha`} non sia rappresentato correttamente.\n

\n

\n In tal caso, il numero si indica con {r`\\alpha^*`}.\n

\n
\n \n

\n È la differenza tra il numero desiderato e il numero rappresentato:\n

\n

\n {r`E_a = \\left | \\alpha - \\alpha^* \\right |`}\n

\n \n Vale sempre 0, tranne in caso di underflow o overflow.\n \n
\n \n

\n Indica quanto il numero rappresentato differisce dal numero desiderato:\n

\n

\n {r`\\forall \\alpha \\neq 0, E_r = \\frac{E_a}{\\left | \\alpha \\right |}`}\n

\n
\n
\n \n \n

\n L'errore relativo di un numero reale rappresentato in virgola mobile è minore o uguale alla precisione di macchina:\n

\n

\n {r`E_r \\leq k \\cdot \\beta^{1-t}`}\n

\n
    \n
  • \n \\beta è uguale alla base utilizzata (solitamente 2).\n
  • \n
  • \n t è uguale al numero di cifre della mantissa.\n
  • \n
  • \n k è uguale a 1 se il numero viene rappresentato per troncamento oppure a {r`\\frac{1}{2}`} se viene rappresentato per arrotondamento.\n
  • \n
\n
\n
\n \n \n

\n L'insieme F è il sottoinsieme dei numeri reali rappresentabili in floating point dalla macchina che stiamo usando.\n

\n

\n Operazioni tra elementi di F producono risultati in {r`\\mathbb{R}`}, che però decaderanno nuovamente a elementi di F, perdendo informazioni.\n

\n

\n Il teorema della precisione di macchina si applica quindi anche ai risultati delle operazioni.\n

\n
\n \n
    \n
  • Hanno più di un elemento neutro.
  • \n
  • Un numero ha più opposti.
  • \n
  • Non sono associative.
  • \n
  • Non sono distributive.
  • \n
  • Non vale la legge di annullamento del prodotto.
  • \n
\n
\n
\n
\n )\n }\n}\n","import style from \"./todo.css\";\r\nimport { Component } from 'preact';\r\n\r\nexport default class Todo extends Component {\r\n\trender() {\r\n\t\treturn {this.props.children};\r\n\t}\r\n}\r\n","import {Component} from 'preact'\r\nimport style from \"./timer.less\"\r\n\r\n\r\nexport default class Timer extends Component {\r\n constructor() {\r\n super();\r\n this.state = {\r\n \"now\": Date.now()\r\n };\r\n this.timer = null;\r\n }\r\n\r\n componentDidMount() {\r\n this.timer = setInterval(() => {\r\n this.setState({\"now\": Date.now()})\r\n }, 1000)\r\n }\r\n\r\n componentWillUnmount() {\r\n if(this.timer !== null) {\r\n clearInterval(this.timer)\r\n }\r\n }\r\n\r\n render() {\r\n let dateTo = \"Unknown date\";\r\n let className = style.timer;\r\n\r\n let parts = {\r\n milliseconds: \"?\",\r\n seconds: \"?\",\r\n minutes: \"?\",\r\n hours: \"?\",\r\n days: \"?\",\r\n };\r\n\r\n if(this.props.to) {\r\n dateTo = new Date(this.props.to);\r\n let timeLeft = dateTo - this.state.now;\r\n\r\n if(timeLeft > 0) {\r\n parts = {\r\n milliseconds: timeLeft % 1000,\r\n seconds: Math.floor(timeLeft / 1000) % 60,\r\n minutes: Math.floor(timeLeft / 60000) % 60,\r\n hours: Math.floor(timeLeft / 3600000) % 24,\r\n days: Math.floor(timeLeft / 86400000),\r\n };\r\n }\r\n\r\n else {\r\n parts = {\r\n milliseconds: 0,\r\n seconds: 0,\r\n minutes: 0,\r\n hours: 0,\r\n days: 0,\r\n };\r\n\r\n className += \" \" + style.expired;\r\n }\r\n }\r\n else {\r\n className += \" \" + style.unknown;\r\n }\r\n\r\n return (\r\n
\r\n
\r\n {parts.days}\r\n
\r\n
\r\n giorni\r\n
\r\n
\r\n {parts.hours}\r\n
\r\n
\r\n ore\r\n
\r\n
\r\n {parts.minutes}\r\n
\r\n
\r\n minuti\r\n
\r\n
\r\n {parts.seconds}\r\n
\r\n
\r\n secondi\r\n
\r\n
\r\n rimasti\r\n
\r\n
\r\n )\r\n }\r\n}\r\n","import style from \"./panel.css\";\nimport { Component } from 'preact';\n\nexport default class Panel extends Component {\n\tgetStyle() {\n\t\treturn style.panel;\n\t};\n\n\trender() {\n\t\tlet title = null;\n\t\tif(this.props.title !== undefined) {\n\t\t\ttitle = (

{this.props.title}

);\n\t\t}\n\n\t\treturn (\n\t\t\t
\n\t\t\t\t{title}\n\t\t\t\t{this.props.children}\n\t\t\t
\n\t\t);\n\t}\n}\n","import style from \"./example.css\";\nimport {Component} from \"preact\";\n\nexport default class Example extends Component {\n render() {\n return (\n
\n {this.props.children}\n
\n )\n }\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"timer\":\"timer__23gHK\",\"days\":\"days__3ZzFX\",\"hours\":\"hours__3LtGw\",\"minutes\":\"minutes__1_j61\",\"seconds\":\"seconds__gE-gj\",\"count\":\"count__28Md8\",\"text\":\"text__2kIQZ\",\"remaining\":\"remaining__1HVwa\",\"unknown\":\"unknown__teMQN\",\"expired\":\"expired__3wewI\"};","import style from './latex.css';\nimport { Component } from 'preact';\n\nexport default class Latex extends Component {\n\trender() {\n\t\tlet equation = `{\\\\color{White} ${this.props.children} }`;\n\t\treturn (\n\t\t\t{this.props.children}\n\t\t\t);\n\t}\n}","import style from \"./split.css\";\nimport { Component } from 'preact';\n\nexport default class Split extends Component {\n\trender() {\n\t let title = null;\n\t if(this.props.title !== undefined) {\n title = (

{this.props.title}

)\n }\n\n let children;\n if(Array.isArray(this.props.children)) {\n children = this.props.children.map(element => {\n return (
{element}
);\n });\n }\n else {\n children =
{this.props.children}
;\n }\n\t\treturn (\n\t
\n {title}\n
{children}
\n
\n );\n\t}\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"todo\":\"todo__1pOoN\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"split\":\"split__3qCWp\",\"splitparent\":\"splitparent__2xagg\",\"splitchild\":\"splitchild__3cEoc\"};"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/route-calcoloNumerico.chunk.9cc26.css b/docs/route-calcoloNumerico.chunk.9cc26.css new file mode 100644 index 0000000..e86890b --- /dev/null +++ b/docs/route-calcoloNumerico.chunk.9cc26.css @@ -0,0 +1 @@ +.splitparent__2xagg{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.splitchild__3cEoc{-ms-flex-positive:1;flex-grow:1;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:0;flex-basis:0}.latex__3Esv7{display:inline-block;vertical-align:middle}.panel__1ubJw{background-color:rgba(160,204,255,.1);padding:4px;border-radius:4px;margin:4px;height:calc(100% - 8px);min-width:256px}.example__P0_NL{border:none;color:#d3a1ff;background-color:rgba(211,161,255,.1);border-radius:4px}.example__P0_NL:before{content:"♦ "}.todo__1pOoN{border:4px solid #ff0;border-radius:4px;padding:2px;background-color:#000;color:#ff0}.timer__23gHK{display:grid;text-align:center;-ms-flex-align:center;align-items:center;-ms-flex-pack:start;justify-content:start;margin-top:8px;margin-bottom:8px;grid-template-columns:80px 80px 80px 80px 50px}.days__3ZzFX{grid-column:1}.hours__3LtGw{grid-column:2}.minutes__1_j61{grid-column:3}.seconds__gE-gj{grid-column:4}.count__28Md8{grid-row:1;font-size:xx-large;color:#fff}.text__2kIQZ{grid-row:2;font-size:small}.remaining__1HVwa{grid-column:5;grid-row-start:1;grid-row-end:3}.unknown__teMQN,.unknown__teMQN .count__28Md8{color:#ff7dff}.expired__3wewI,.expired__3wewI .count__28Md8{color:#ff7d7d} \ No newline at end of file diff --git a/docs/route-calcoloNumerico.chunk.a852d.js b/docs/route-calcoloNumerico.chunk.a852d.js deleted file mode 100644 index 9702f56..0000000 --- a/docs/route-calcoloNumerico.chunk.a852d.js +++ /dev/null @@ -1,2 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[4],{"+AyP":function(t){t.exports={latex:"latex__3Esv7"}},"1nLj":function(t){t.exports={panel:"panel__1ubJw"}},"68UE":function(t){t.exports={example:"example__P0_NL"}},"6GOG":function(t,e,o){"use strict";o.r(e),function(t){o.d(e,"default",(function(){return l}));var i=o("hosL"),n=o("ddBW"),r=(o("ZsnK"),o("9yVG")),l=(o("PEwj"),o("7bXG"),function(e){function o(){return e.apply(this,arguments)||this}var i,l;return l=e,(i=o).prototype=Object.create(l.prototype),i.prototype.constructor=i,i.__proto__=l,o.prototype.render=function(){return t("div",null,t("h1",null,"Calcolo Numerico"),t(n.a,{title:"Materiale"},t(r.a,{title:"Slides"},t("p",null,"Ultimo aggiornamento: ",t("time",null,"2020-03-11")),t("ul",null,t("li",null,t("a",{href:"https://t.me/unimorefiles/13"},"Richiami di Algebra Lineare")),t("li",null,t("a",{href:"https://t.me/unimorefiles/14"},"Slides")),t("li",null,t("a",{href:"https://t.me/unimorefiles/15"},"Laboratorio")),t("li",null,t("a",{href:"https://t.me/unimorefiles/16"},"Matlab"))),t("p",null,t("i",null,"Per slides più aggiornate, visitate ",t("a",{href:"https://dolly.fim.unimore.it/2019/course/view.php?id=25"},"Dolly"),"!"))),t(r.a,{title:"Videolezioni"},t("ol",null,t("li",null,t("a",{href:"https://eu.bbcollab.com/collab/ui/session/playback/load/ef3c5cf6f4e74a948f03220bc1c3a87d"},"Introduzione al corso")),t("li",null,t("a",{href:"https://eu.bbcollab.com/collab/ui/session/playback/load/ef3c5cf6f4e74a948f03220bc1c3a87d"},"Introduzione alla materia")),t("li",null,t("a",{href:"https://eu.bbcollab.com/collab/ui/session/playback/load/57489722ce4e426194fd8c9cb06a1867"},"Rappresentazione dei numeri")),t("li",null,t("a",{href:"https://eu.bbcollab.com/collab/ui/session/playback/load/57489722ce4e426194fd8c9cb06a1867"},"Rappresentazione fixed point degli interi")),t("li",null,t("a",{href:"https://eu.bbcollab.com/collab/ui/session/playback/load/6da751c5e49143eebe203e388ca8a4b8"},"Rappresentazione floating point dei reali")),t("li",null,t("a",{href:"https://eu.bbcollab.com/collab/ui/session/playback/load/6da751c5e49143eebe203e388ca8a4b8"},"Operazioni di macchina")))),t(r.a,{title:"Team-based Learning"},t("blockquote",null,t("p",null,"Le lezioni in modalità TBL, previste per il corso di Laurea in Informatica, saranno erogate solo quando sarà possibile tornare alla modalità didattica in presenza, per la natura stessa di questa metodologia che non prevede uno svolgimento a distanza."),t("p",null,"Per il momento, vista l'incertezza della situazione in continua evoluzione, è inutile dare ulteriori indicazioni sulle date o altri aspetti pratici legati al progetto."),t("p",null,"Appena sarà possibile, gli interessati verranno informati tramite email.")))))},o}(i.Component))}.call(this,o("hosL").h)},"7bXG":function(t,e,o){"use strict";(function(t){o.d(e,"a",(function(){return r}));var i=o("kpQM"),n=o.n(i),r=function(e){function o(){return e.apply(this,arguments)||this}var i,r;return r=e,(i=o).prototype=Object.create(r.prototype),i.prototype.constructor=i,i.__proto__=r,o.prototype.render=function(){return t("span",{class:n.a.todo},this.props.children)},o}(o("hosL").Component)}).call(this,o("hosL").h)},"9yVG":function(t,e,o){"use strict";(function(t){o.d(e,"a",(function(){return r}));var i=o("1nLj"),n=o.n(i),r=function(e){function o(){return e.apply(this,arguments)||this}var i,r;r=e,(i=o).prototype=Object.create(r.prototype),i.prototype.constructor=i,i.__proto__=r;var l=o.prototype;return l.getStyle=function(){return n.a.panel},l.render=function(){var e=null;return void 0!==this.props.title&&(e=t("h3",null,this.props.title)),t("div",{class:this.getStyle(),id:this.props.id},e,this.props.children)},o}(o("hosL").Component)}).call(this,o("hosL").h)},PEwj:function(t,e,o){"use strict";(function(t){o.d(e,"a",(function(){return r}));var i=o("68UE"),n=o.n(i),r=function(e){function o(){return e.apply(this,arguments)||this}var i,r;return r=e,(i=o).prototype=Object.create(r.prototype),i.prototype.constructor=i,i.__proto__=r,o.prototype.render=function(){return t("blockquote",{class:n.a.example},this.props.children)},o}(o("hosL").Component)}).call(this,o("hosL").h)},ZsnK:function(t,e,o){"use strict";(function(t){o.d(e,"a",(function(){return r}));var i=o("+AyP"),n=o.n(i),r=function(e){function o(){return e.apply(this,arguments)||this}var i,r;return r=e,(i=o).prototype=Object.create(r.prototype),i.prototype.constructor=i,i.__proto__=r,o.prototype.render=function(){return t("img",{src:"https://latex.codecogs.com/svg.latex?"+("{\\color{White} "+this.props.children+" }"),alt:this.props.children,title:this.props.children,class:n.a.latex})},o}(o("hosL").Component)}).call(this,o("hosL").h)},ddBW:function(t,e,o){"use strict";(function(t){o.d(e,"a",(function(){return r}));var i=o("rMrT"),n=o.n(i),r=function(e){function o(){return e.apply(this,arguments)||this}var i,r;return r=e,(i=o).prototype=Object.create(r.prototype),i.prototype.constructor=i,i.__proto__=r,o.prototype.render=function(){var e,o=null;return void 0!==this.props.title&&(o=t("h2",null,this.props.title)),e=Array.isArray(this.props.children)?this.props.children.map((function(e){return t("div",{class:n.a.splitchild},e)})):t("div",{class:n.a.splitchild},this.props.children),t("div",{class:n.a.split},o,t("div",{class:n.a.splitparent},e))},o}(o("hosL").Component)}).call(this,o("hosL").h)},kpQM:function(t){t.exports={todo:"todo__1pOoN"}},rMrT:function(t){t.exports={split:"split__3qCWp",splitparent:"splitparent__2xagg",splitchild:"splitchild__3cEoc"}}}]); -//# sourceMappingURL=route-calcoloNumerico.chunk.a852d.js.map \ No newline at end of file diff --git a/docs/route-calcoloNumerico.chunk.a852d.js.map b/docs/route-calcoloNumerico.chunk.a852d.js.map deleted file mode 100644 index 6995630..0000000 --- a/docs/route-calcoloNumerico.chunk.a852d.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///./components/latex.css","webpack:///./components/panel.css","webpack:///./components/example.css","webpack:///./routes/calcoloNumerico.js","webpack:///./components/todo.js","webpack:///./components/panel.js","webpack:///./components/example.js","webpack:///./components/latex.js","webpack:///./components/split.js","webpack:///./components/todo.css","webpack:///./components/split.css"],"names":["module","exports","CalcoloNumerico","render","title","href","Component","Todo","class","style","todo","this","props","children","Panel","getStyle","panel","undefined","id","Example","example","Latex","src","alt","latex","Split","Array","isArray","map","element","splitchild","split","splitparent"],"mappings":"4EACAA,EAAOC,QAAU,CAAC,MAAQ,iB,mBCA1BD,EAAOC,QAAU,CAAC,MAAQ,iB,mBCA1BD,EAAOC,QAAU,CAAC,QAAU,mB,mJCQPC,G,oMACjBC,OAAA,WACI,OACI,aACI,gCACA,EAAC,IAAD,CAAOC,MAAO,aACV,EAAC,IAAD,CAAOA,MAAO,UACV,oCAC0B,6BAE1B,YACI,YAAI,OAAGC,KAAM,gCAAT,gCACJ,YAAI,OAAGA,KAAM,gCAAT,WACJ,YAAI,OAAGA,KAAM,gCAAT,gBACJ,YAAI,OAAGA,KAAM,gCAAT,YAER,WACI,kDAAuC,OAAGA,KAAM,2DAAT,SAAvC,OAGR,EAAC,IAAD,CAAOD,MAAO,gBACV,YACI,YAAI,OAAGC,KAAM,4FAAT,0BACJ,YAAI,OAAGA,KAAM,4FAAT,8BACJ,YAAI,OAAGA,KAAM,4FAAT,gCACJ,YAAI,OAAGA,KAAM,4FAAT,8CACJ,YAAI,OAAGA,KAAM,4FAAT,8CACJ,YAAI,OAAGA,KAAM,4FAAT,6BAGZ,EAAC,IAAD,CAAOD,MAAO,uBACV,oBACI,yQAGA,sLAGA,4F,GAtCiBE,e,oICNxBC,E,gLACpBJ,OAAA,WACC,OAAO,UAAMK,MAAOC,IAAMC,MAAOC,KAAKC,MAAMC,W,aAFZP,a,oICAbQ,E,wLACpBC,SAAA,WACC,OAAON,IAAMO,O,EAGdb,OAAA,WACC,IAAIC,EAAQ,KAKZ,YAJwBa,IAArBN,KAAKC,MAAMR,QACbA,EAAS,YAAKO,KAAKC,MAAMR,QAIzB,SAAKI,MAAOG,KAAKI,WAAYG,GAAIP,KAAKC,MAAMM,IAC1Cd,EACAO,KAAKC,MAAMC,W,aAdmBP,a,kICAda,E,gLACjBhB,OAAA,WACI,OACI,gBAAYK,MAAOC,IAAMW,SACpBT,KAAKC,MAAMC,W,aAJSP,a,kICAhBe,E,gLACpBlB,OAAA,WAEC,OACC,SAAKmB,IAAG,yCAFM,mBAAmBX,KAAKC,MAAMC,SAAjC,MAGTU,IAAKZ,KAAKC,MAAMC,SACbT,MAAOO,KAAKC,MAAMC,SAClBL,MAAOC,IAAMe,S,aAPclB,a,kICAdmB,E,gLACpBtB,OAAA,WACI,IAKOU,EALHT,EAAQ,KAcf,YAb2Ba,IAArBN,KAAKC,MAAMR,QACPA,EAAS,YAAKO,KAAKC,MAAMR,QAKzBS,EADDa,MAAMC,QAAQhB,KAAKC,MAAMC,UACbF,KAAKC,MAAMC,SAASe,KAAI,SAAAC,GAC/B,OAAQ,SAAKrB,MAAOC,IAAMqB,YAAaD,MAIhC,SAAKrB,MAAOC,IAAMqB,YAAanB,KAAKC,MAAMC,UAGxD,SAAKL,MAAOC,IAAMsB,OACV3B,EACD,SAAKI,MAAOC,IAAMuB,aAAcnB,K,aAnBbP,a,yCCFnCN,EAAOC,QAAU,CAAC,KAAO,gB,iBCAzBD,EAAOC,QAAU,CAAC,MAAQ,eAAe,YAAc,qBAAqB,WAAa","file":"route-calcoloNumerico.chunk.a852d.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"latex\":\"latex__3Esv7\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"panel\":\"panel__1ubJw\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"example\":\"example__P0_NL\"};","import {Component} from 'preact'\nimport Split from \"../components/split\";\nimport Latex from \"../components/latex\";\nimport Panel from \"../components/panel\";\nimport Example from \"../components/example\";\nimport Todo from \"../components/todo\";\n\nconst r = String.raw;\n\nexport default class CalcoloNumerico extends Component {\n render() {\n return (\n
\n

Calcolo Numerico

\n \n \n

\n Ultimo aggiornamento: \n

\n \n

\n Per slides più aggiornate, visitate Dolly!\n

\n
\n \n
    \n
  1. Introduzione al corso
  2. \n
  3. Introduzione alla materia
  4. \n
  5. Rappresentazione dei numeri
  6. \n
  7. Rappresentazione fixed point degli interi
  8. \n
  9. Rappresentazione floating point dei reali
  10. \n
  11. Operazioni di macchina
  12. \n
\n
\n \n
\n

\n Le lezioni in modalità TBL, previste per il corso di Laurea in Informatica, saranno erogate solo quando sarà possibile tornare alla modalità didattica in presenza, per la natura stessa di questa metodologia che non prevede uno svolgimento a distanza.\n

\n

\n Per il momento, vista l'incertezza della situazione in continua evoluzione, è inutile dare ulteriori indicazioni sulle date o altri aspetti pratici legati al progetto.\n

\n

\n Appena sarà possibile, gli interessati verranno informati tramite email.\n

\n
\n
\n
\n
\n )\n }\n}\n","import style from \"./todo.css\";\r\nimport { Component } from 'preact';\r\n\r\nexport default class Todo extends Component {\r\n\trender() {\r\n\t\treturn {this.props.children};\r\n\t}\r\n}\r\n","import style from \"./panel.css\";\nimport { Component } from 'preact';\n\nexport default class Panel extends Component {\n\tgetStyle() {\n\t\treturn style.panel;\n\t};\n\n\trender() {\n\t\tlet title = null;\n\t\tif(this.props.title !== undefined) {\n\t\t\ttitle = (

{this.props.title}

);\n\t\t}\n\n\t\treturn (\n\t\t\t
\n\t\t\t\t{title}\n\t\t\t\t{this.props.children}\n\t\t\t
\n\t\t);\n\t}\n}\n","import style from \"./example.css\";\nimport {Component} from \"preact\";\n\nexport default class Example extends Component {\n render() {\n return (\n
\n {this.props.children}\n
\n )\n }\n}\n","import style from './latex.css';\nimport { Component } from 'preact';\n\nexport default class Latex extends Component {\n\trender() {\n\t\tlet equation = `{\\\\color{White} ${this.props.children} }`;\n\t\treturn (\n\t\t\t{this.props.children}\n\t\t\t);\n\t}\n}","import style from \"./split.css\";\nimport { Component } from 'preact';\n\nexport default class Split extends Component {\n\trender() {\n\t let title = null;\n\t if(this.props.title !== undefined) {\n title = (

{this.props.title}

)\n }\n\n let children;\n if(Array.isArray(this.props.children)) {\n children = this.props.children.map(element => {\n return (
{element}
);\n });\n }\n else {\n children =
{this.props.children}
;\n }\n\t\treturn (\n\t
\n {title}\n
{children}
\n
\n );\n\t}\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"todo\":\"todo__1pOoN\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"split\":\"split__3qCWp\",\"splitparent\":\"splitparent__2xagg\",\"splitchild\":\"splitchild__3cEoc\"};"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/route-calcoloNumerico.chunk.b8d1f.esm.js b/docs/route-calcoloNumerico.chunk.b8d1f.esm.js new file mode 100644 index 0000000..e6bc49f --- /dev/null +++ b/docs/route-calcoloNumerico.chunk.b8d1f.esm.js @@ -0,0 +1,2 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[4],{"+AyP":function(e){e.exports={latex:"latex__3Esv7"}},"1nLj":function(e){e.exports={panel:"panel__1ubJw"}},"68UE":function(e){e.exports={example:"example__P0_NL"}},"6GOG":function(e,i,n){"use strict";n.r(i),function(e){n.d(i,"default",(function(){return _}));var l=n("hosL"),t=n("ddBW"),a=n("ZsnK"),o=n("9yVG"),r=n("PEwj"),s=(n("7bXG"),n("810C"));let u,p,d,c,m,h,f,g=e=>e;const v=String.raw;class _ extends l.Component{render(){return e("div",null,e("h1",null,"Calcolo Numerico"),e(t.a,{title:"Materiale"},e(o.a,{title:"Slides"},e("p",null,"Ultimo aggiornamento: ",e("time",null,"2020-03-11")),e("ul",null,e("li",null,e("a",{href:"https://t.me/unimorefiles/13"},"Richiami di Algebra Lineare")),e("li",null,e("a",{href:"https://t.me/unimorefiles/14"},"Slides")),e("li",null,e("a",{href:"https://t.me/unimorefiles/15"},"Laboratorio")),e("li",null,e("a",{href:"https://t.me/unimorefiles/16"},"Matlab"))),e("p",null,e("i",null,"Per slides più aggiornate, visitate ",e("a",{href:"https://dolly.fim.unimore.it/2019/course/view.php?id=25"},"Dolly"),"!"))),e(o.a,{title:"Videolezioni"},e("ol",null,e("li",null,e("a",{href:"https://t.me/unimorefiles/34"},"Introduzione al corso")),e("li",null,e("a",{href:"https://t.me/unimorefiles/35"},"Introduzione alla materia")),e("li",null,e("a",{href:"https://t.me/unimorefiles/36"},"Rappresentazione dei numeri")),e("li",null,e("a",{href:"https://t.me/unimorefiles/37"},"Rappresentazione fixed point degli interi")),e("li",null,e("a",{href:"https://t.me/unimorefiles/38"},"Rappresentazione floating point dei reali")),e("li",null,e("a",{href:"https://t.me/unimorefiles/39"},"Operazioni di macchina")),e("li",null,"Analisi degli errori: condizionamento e stabilità"),e("li",null,"Richiami di Algebra lineare"))),e(o.a,{title:"Team-based Learning"},e("blockquote",null,e("p",null,"Le lezioni in modalità TBL, previste per il corso di Laurea in Informatica, saranno erogate solo quando sarà possibile tornare alla modalità didattica in presenza, per la natura stessa di questa metodologia che non prevede uno svolgimento a distanza."),e("p",null,"Per il momento, vista l'incertezza della situazione in continua evoluzione, è inutile dare ulteriori indicazioni sulle date o altri aspetti pratici legati al progetto."),e("p",null,"Appena sarà possibile, gli interessati verranno informati tramite email.")),e("p",null,"Partecipare al Team-based Learning può portare all'ottenimento di fino a 3 punti bonus all'esame e esenzione dalla domanda di Matlab."))),e(t.a,{title:"Contatti"},e(o.a,{title:"Email della prof.ssa"},e("p",null,e("a",{href:"mailto:silvia.bonettini@unimore.it"},"silvia.bonettini@unimore.it"))),e(o.a,{title:"Ricevimento"},e("p",null,"Su appuntamento."))),e(t.a,{title:"Esame"},e(o.a,{title:"Orale"},e("p",null,"E' composto da:"),e("ul",null,e("li",null,"2 domande sugli argomenti teorici"),e("li",null,"1 domanda di implementazione algoritmo in MATLAB ",e("small",null,"(facoltativa per i punteggi migliori del TBL)"))),e("p",null,"Prossimo appello:",e(s.a,null)))),e(t.a,{title:"Algoritmi"},e(o.a,{title:"Algoritmi numerici"},e("p",null,"Algoritmi che hanno:"),e("ul",null,e("li",null,"numeri reali in input e output"),e("li",null,"successioni delle quattro operazioni aritmetiche fondamentali come passi")))),e(t.a,{title:"Errore di rappresentazione"},e(o.a,{title:"Errore di rappresentazione"},e("p",null,"Con i numeri floating point può capitare che un certo numero ",e(a.a,null,v(u||(u=g`\alpha`)))," non sia rappresentato correttamente."),e("p",null,"In tal caso, il numero si indica con ",e(a.a,null,v(p||(p=g`\alpha^*`))),".")),e(o.a,{title:"Errore assoluto"},e("p",null,"È la differenza tra il numero desiderato e il numero rappresentato:"),e("p",null,e(a.a,null,v(d||(d=g`E_a = \left | \alpha - \alpha^* \right |`)))),e(r.a,null,"Vale sempre 0, tranne in caso di underflow o overflow.")),e(o.a,{title:"Errore relativo"},e("p",null,"Indica quanto il numero rappresentato differisce dal numero desiderato:"),e("p",null,e(a.a,null,v(c||(c=g`\forall \alpha \neq 0, E_r = \frac{E_a}{\left | \alpha \right |}`)))))),e(t.a,{title:"Floating point"},e(o.a,{title:"Precisione di macchina"},e("p",null,"L'errore relativo di un numero reale rappresentato in virgola mobile è minore o uguale alla ",e("i",null,"precisione di macchina"),":"),e("p",null,e(a.a,null,v(m||(m=g`E_r \leq k \cdot \beta^{1-t}`)))),e("ul",null,e("li",null,e(a.a,null,"\\beta")," è uguale alla base utilizzata (solitamente 2)."),e("li",null,e(a.a,null,"t")," è uguale al numero di cifre della mantissa."),e("li",null,e(a.a,null,"k")," è uguale a ",e(a.a,null,"1")," se il numero viene rappresentato per troncamento oppure a ",e(a.a,null,v(h||(h=g`\frac{1}{2}`)))," se viene rappresentato per arrotondamento.")))),e(t.a,{title:"Operazioni di macchina"},e(o.a,{title:"Un nuovo insieme"},e("p",null,"L'insieme ",e(a.a,null,"F")," è il sottoinsieme dei numeri reali rappresentabili in floating point dalla macchina che stiamo usando."),e("p",null,"Operazioni tra elementi di ",e(a.a,null,"F")," producono risultati in ",e(a.a,null,v(f||(f=g`\mathbb{R}`))),", che però decaderanno nuovamente a elementi di ",e(a.a,null,"F"),", perdendo informazioni."),e("p",null,"Il teorema della precisione di macchina si applica quindi anche ai risultati delle operazioni.")),e(o.a,{title:"Caratteristiche delle operazioni di macchina"},e("ul",null,e("li",null,"Hanno più di un elemento neutro."),e("li",null,"Un numero ha più opposti."),e("li",null,"Non sono associative."),e("li",null,"Non sono distributive."),e("li",null,"Non vale la legge di annullamento del prodotto.")))))}}}.call(this,n("hosL").h)},"7bXG":function(e,i,n){"use strict";(function(e){n.d(i,"a",(function(){return o}));var l=n("kpQM"),t=n.n(l),a=n("hosL");class o extends a.Component{render(){return e("span",{class:t.a.todo},this.props.children)}}}).call(this,n("hosL").h)},"810C":function(e,i,n){"use strict";(function(e){n.d(i,"a",(function(){return o}));var l=n("hosL"),t=n("Q3JM"),a=n.n(t);class o extends l.Component{constructor(){super(),this.state={now:Date.now()},this.timer=null}componentDidMount(){this.timer=setInterval(()=>{this.setState({now:Date.now()})},1e3)}componentWillUnmount(){null!==this.timer&&clearInterval(this.timer)}render(){let i="Unknown date",n=a.a.timer,l={milliseconds:"?",seconds:"?",minutes:"?",hours:"?",days:"?"};if(this.props.to){i=new Date(this.props.to);let e=i-this.state.now;e>0?l={milliseconds:e%1e3,seconds:Math.floor(e/1e3)%60,minutes:Math.floor(e/6e4)%60,hours:Math.floor(e/36e5)%24,days:Math.floor(e/864e5)}:(l={milliseconds:0,seconds:0,minutes:0,hours:0,days:0},n+=" "+a.a.expired)}else n+=" "+a.a.unknown;return e("div",{class:n,title:i},e("div",{class:a.a.days+" "+a.a.count},l.days),e("div",{className:a.a.days+" "+a.a.text},"giorni"),e("div",{class:a.a.hours+" "+a.a.count},l.hours),e("div",{className:a.a.hours+" "+a.a.text},"ore"),e("div",{class:a.a.minutes+" "+a.a.count},l.minutes),e("div",{className:a.a.minutes+" "+a.a.text},"minuti"),e("div",{class:a.a.seconds+" "+a.a.count},l.seconds),e("div",{class:a.a.seconds+" "+a.a.text},"secondi"),e("div",{class:a.a.remaining},"rimasti"))}}}).call(this,n("hosL").h)},"9yVG":function(e,i,n){"use strict";(function(e){n.d(i,"a",(function(){return o}));var l=n("1nLj"),t=n.n(l),a=n("hosL");class o extends a.Component{getStyle(){return t.a.panel}render(){let i=null;return void 0!==this.props.title&&(i=e("h3",null,this.props.title)),e("div",{class:this.getStyle(),id:this.props.id},i,this.props.children)}}}).call(this,n("hosL").h)},PEwj:function(e,i,n){"use strict";(function(e){n.d(i,"a",(function(){return o}));var l=n("68UE"),t=n.n(l),a=n("hosL");class o extends a.Component{render(){return e("blockquote",{class:t.a.example},this.props.children)}}}).call(this,n("hosL").h)},Q3JM:function(e){e.exports={timer:"timer__23gHK",days:"days__3ZzFX",hours:"hours__3LtGw",minutes:"minutes__1_j61",seconds:"seconds__gE-gj",count:"count__28Md8",text:"text__2kIQZ",remaining:"remaining__1HVwa",unknown:"unknown__teMQN",expired:"expired__3wewI"}},ZsnK:function(e,i,n){"use strict";(function(e){n.d(i,"a",(function(){return o}));var l=n("+AyP"),t=n.n(l),a=n("hosL");class o extends a.Component{render(){return e("img",{src:`https://latex.codecogs.com/svg.latex?${`{\\color{White} ${this.props.children} }`}`,alt:this.props.children,title:this.props.children,class:t.a.latex})}}}).call(this,n("hosL").h)},ddBW:function(e,i,n){"use strict";(function(e){n.d(i,"a",(function(){return o}));var l=n("rMrT"),t=n.n(l),a=n("hosL");class o extends a.Component{render(){let i,n=null;return void 0!==this.props.title&&(n=e("h2",null,this.props.title)),i=Array.isArray(this.props.children)?this.props.children.map(i=>e("div",{class:t.a.splitchild},i)):e("div",{class:t.a.splitchild},this.props.children),e("div",{class:t.a.split},n,e("div",{class:t.a.splitparent},i))}}}).call(this,n("hosL").h)},kpQM:function(e){e.exports={todo:"todo__1pOoN"}},rMrT:function(e){e.exports={split:"split__3qCWp",splitparent:"splitparent__2xagg",splitchild:"splitchild__3cEoc"}}}]); +//# sourceMappingURL=route-calcoloNumerico.chunk.b8d1f.esm.js.map \ No newline at end of file diff --git a/docs/route-calcoloNumerico.chunk.5f4f3.esm.js.map b/docs/route-calcoloNumerico.chunk.b8d1f.esm.js.map similarity index 54% rename from docs/route-calcoloNumerico.chunk.5f4f3.esm.js.map rename to docs/route-calcoloNumerico.chunk.b8d1f.esm.js.map index a86258b..67fcedf 100644 --- a/docs/route-calcoloNumerico.chunk.5f4f3.esm.js.map +++ b/docs/route-calcoloNumerico.chunk.b8d1f.esm.js.map @@ -1 +1 @@ -{"version":3,"sources":[],"names":[],"mappings":"","file":"route-calcoloNumerico.chunk.5f4f3.esm.js","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":[],"names":[],"mappings":"","file":"route-calcoloNumerico.chunk.b8d1f.esm.js","sourceRoot":""} \ No newline at end of file diff --git a/docs/route-calcoloNumerico.chunk.c2edb.css b/docs/route-calcoloNumerico.chunk.c2edb.css deleted file mode 100644 index f19390d..0000000 --- a/docs/route-calcoloNumerico.chunk.c2edb.css +++ /dev/null @@ -1 +0,0 @@ -.splitparent__2xagg{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.splitchild__3cEoc{-ms-flex-positive:1;flex-grow:1;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:0;flex-basis:0}.latex__3Esv7{display:inline-block;vertical-align:middle}.panel__1ubJw{background-color:rgba(160,204,255,.1);padding:4px;border-radius:4px;margin:4px;height:calc(100% - 8px);min-width:256px}.example__P0_NL{border:none;color:#d3a1ff;background-color:rgba(211,161,255,.1);border-radius:4px}.example__P0_NL:before{content:"♦ "}.todo__1pOoN{border:4px solid #ff0;border-radius:4px;padding:2px;background-color:#000;color:#ff0} \ No newline at end of file diff --git a/docs/sw-esm.js b/docs/sw-esm.js index 18bba17..794a1e0 100644 --- a/docs/sw-esm.js +++ b/docs/sw-esm.js @@ -1,4 +1,4 @@ -importScripts("/precache-manifest.8eff6c9cf3c41600a917358493b8de5f.esm.js", "https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js"); +importScripts("/precache-manifest.0d9a7bb8206f79b695db196363a66740.esm.js", "https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js"); !function(e){function t(n){if(r[n])return r[n].exports;var o=r[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var r={};t.m=e,t.c=r,t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:n})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,r){if(1&r&&(e=t(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(t.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var o in e)t.d(n,o,function(t){return e[t]}.bind(null,o));return n},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/",t(t.s="idKB")}({idKB:function(){self.__precacheManifest=[].concat(self.__precacheManifest||[]);const e=e=>"navigate"===e.request.mode;workbox.routing.registerRoute(({event:t})=>e(t),new workbox.strategies.NetworkFirst({cacheName:workbox.core.cacheNames.precache,networkTimeoutSeconds:5,plugins:[new workbox.cacheableResponse.Plugin({statuses:[200]})]})),workbox.precaching.precacheAndRoute(self.__precacheManifest,{}),workbox.routing.setCatchHandler(({event:t})=>e(t)?caches.match(workbox.precaching.getCacheKeyForURL("/index.html")):Response.error())}}); //# sourceMappingURL=sw-esm.js.map diff --git a/docs/sw.js b/docs/sw.js index 0c814e7..6402492 100644 --- a/docs/sw.js +++ b/docs/sw.js @@ -1,4 +1,4 @@ -importScripts("/precache-manifest.8436a5a2fecf4d21f53555910f03a9d7.js", "https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js"); +importScripts("/precache-manifest.ecfa5672e4bfb1b4e59f0e190b654487.js", "https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js"); !function(e){function t(n){if(r[n])return r[n].exports;var o=r[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var r={};t.m=e,t.c=r,t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:n})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,r){if(1&r&&(e=t(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(t.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var o in e)t.d(n,o,function(t){return e[t]}.bind(null,o));return n},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/",t(t.s="idKB")}({idKB:function(){self.__precacheManifest=[].concat(self.__precacheManifest||[]);const e=e=>"navigate"===e.request.mode;workbox.routing.registerRoute(({event:t})=>e(t),new workbox.strategies.NetworkFirst({cacheName:workbox.core.cacheNames.precache,networkTimeoutSeconds:5,plugins:[new workbox.cacheableResponse.Plugin({statuses:[200]})]})),workbox.precaching.precacheAndRoute(self.__precacheManifest,{}),workbox.routing.setCatchHandler(({event:t})=>e(t)?caches.match(workbox.precaching.getCacheKeyForURL("/index.html")):Response.error())}}); //# sourceMappingURL=sw.js.map diff --git a/size-plugin.json b/size-plugin.json index 5e65368..b8d0598 100644 --- a/size-plugin.json +++ b/size-plugin.json @@ -1 +1 @@ -[{"timestamp":1584117678940,"files":[{"filename":"sw-esm.js","previous":741,"size":741,"diff":0},{"filename":"sw.js","previous":738,"size":738,"diff":0},{"filename":"bundle.69171.css","previous":618,"size":618,"diff":0},{"filename":"bundle.5f7c2.esm.js","previous":9835,"size":0,"diff":-9835},{"filename":"polyfills.7484f.esm.js","previous":2012,"size":2012,"diff":0},{"filename":"route-apprendimentoSistemiArtificiali.chunk.c2edb.css","previous":388,"size":388,"diff":0},{"filename":"route-apprendimentoSistemiArtificiali.chunk.fdc4f.esm.js","previous":1004,"size":1004,"diff":0},{"filename":"route-basiDiDati.chunk.c2edb.css","previous":388,"size":0,"diff":-388},{"filename":"route-basiDiDati.chunk.ac797.esm.js","previous":938,"size":0,"diff":-938},{"filename":"route-calcoloNumerico.chunk.c2edb.css","previous":388,"size":388,"diff":0},{"filename":"route-calcoloNumerico.chunk.5f4f3.esm.js","previous":1563,"size":1563,"diff":0},{"filename":"route-fisica.chunk.0b01a.css","previous":354,"size":354,"diff":0},{"filename":"route-fisica.chunk.4ed8c.esm.js","previous":11150,"size":11150,"diff":0},{"filename":"route-home.chunk.deccf.css","previous":287,"size":287,"diff":0},{"filename":"route-home.chunk.86a07.esm.js","previous":2176,"size":2176,"diff":0},{"filename":"route-mingwinstall.chunk.4f81b.css","previous":137,"size":137,"diff":0},{"filename":"route-mingwinstall.chunk.ea3ae.esm.js","previous":1721,"size":1721,"diff":0},{"filename":"route-ottimizzazioneLineare.chunk.c2edb.css","previous":388,"size":388,"diff":0},{"filename":"route-ottimizzazioneLineare.chunk.d97a3.esm.js","previous":2149,"size":0,"diff":-2149},{"filename":"route-statistica.chunk.025c9.css","previous":444,"size":444,"diff":0},{"filename":"route-statistica.chunk.26925.esm.js","previous":15566,"size":15566,"diff":0},{"filename":"route-vldigeometria.chunk.e54c2.css","previous":137,"size":137,"diff":0},{"filename":"route-vldigeometria.chunk.24244.esm.js","previous":25899,"size":25899,"diff":0},{"filename":"bundle.c755a.js","previous":9889,"size":0,"diff":-9889},{"filename":"polyfills.b96b2.js","previous":2013,"size":2013,"diff":0},{"filename":"route-apprendimentoSistemiArtificiali.chunk.b1ca4.js","previous":1120,"size":1120,"diff":0},{"filename":"route-basiDiDati.chunk.d1ab5.js","previous":1052,"size":0,"diff":-1052},{"filename":"route-calcoloNumerico.chunk.a852d.js","previous":1677,"size":1677,"diff":0},{"filename":"route-fisica.chunk.3f6c6.js","previous":12401,"size":12401,"diff":0},{"filename":"route-home.chunk.65775.js","previous":2288,"size":2288,"diff":0},{"filename":"route-mingwinstall.chunk.9d6e9.js","previous":1812,"size":1812,"diff":0},{"filename":"route-ottimizzazioneLineare.chunk.56a70.js","previous":2387,"size":0,"diff":-2387},{"filename":"route-statistica.chunk.fe1f8.js","previous":18159,"size":18159,"diff":0},{"filename":"route-vldigeometria.chunk.3b8b9.js","previous":26055,"size":26055,"diff":0},{"filename":"bundle.1c866.esm.js","previous":0,"size":12517,"diff":12517},{"filename":"route-basiDiDati.chunk.9cc26.css","previous":0,"size":647,"diff":647},{"filename":"route-basiDiDati.chunk.ee3b7.esm.js","previous":0,"size":2032,"diff":2032},{"filename":"route-ottimizzazioneLineare.chunk.96c0e.esm.js","previous":0,"size":2149,"diff":2149},{"filename":"bundle.7b35a.js","previous":0,"size":12574,"diff":12574},{"filename":"route-basiDiDati.chunk.eb3c5.js","previous":0,"size":2169,"diff":2169},{"filename":"route-ottimizzazioneLineare.chunk.e117d.js","previous":0,"size":2386,"diff":2386}]},{"timestamp":1583950901344,"files":[{"filename":"sw-esm.js","previous":0,"size":741,"diff":741},{"filename":"sw.js","previous":0,"size":738,"diff":738},{"filename":"bundle.69171.css","previous":0,"size":618,"diff":618},{"filename":"bundle.5f7c2.esm.js","previous":0,"size":9835,"diff":9835},{"filename":"polyfills.7484f.esm.js","previous":0,"size":2012,"diff":2012},{"filename":"route-apprendimentoSistemiArtificiali.chunk.c2edb.css","previous":0,"size":388,"diff":388},{"filename":"route-apprendimentoSistemiArtificiali.chunk.fdc4f.esm.js","previous":0,"size":1004,"diff":1004},{"filename":"route-basiDiDati.chunk.c2edb.css","previous":0,"size":388,"diff":388},{"filename":"route-basiDiDati.chunk.ac797.esm.js","previous":0,"size":938,"diff":938},{"filename":"route-calcoloNumerico.chunk.c2edb.css","previous":0,"size":388,"diff":388},{"filename":"route-calcoloNumerico.chunk.5f4f3.esm.js","previous":0,"size":1563,"diff":1563},{"filename":"route-fisica.chunk.0b01a.css","previous":0,"size":354,"diff":354},{"filename":"route-fisica.chunk.4ed8c.esm.js","previous":0,"size":11150,"diff":11150},{"filename":"route-home.chunk.deccf.css","previous":0,"size":287,"diff":287},{"filename":"route-home.chunk.86a07.esm.js","previous":0,"size":2176,"diff":2176},{"filename":"route-mingwinstall.chunk.4f81b.css","previous":0,"size":137,"diff":137},{"filename":"route-mingwinstall.chunk.ea3ae.esm.js","previous":0,"size":1721,"diff":1721},{"filename":"route-ottimizzazioneLineare.chunk.c2edb.css","previous":0,"size":388,"diff":388},{"filename":"route-ottimizzazioneLineare.chunk.d97a3.esm.js","previous":0,"size":2149,"diff":2149},{"filename":"route-statistica.chunk.025c9.css","previous":0,"size":444,"diff":444},{"filename":"route-statistica.chunk.26925.esm.js","previous":0,"size":15566,"diff":15566},{"filename":"route-vldigeometria.chunk.e54c2.css","previous":0,"size":137,"diff":137},{"filename":"route-vldigeometria.chunk.24244.esm.js","previous":0,"size":25899,"diff":25899},{"filename":"bundle.c755a.js","previous":0,"size":9889,"diff":9889},{"filename":"polyfills.b96b2.js","previous":0,"size":2013,"diff":2013},{"filename":"route-apprendimentoSistemiArtificiali.chunk.b1ca4.js","previous":0,"size":1120,"diff":1120},{"filename":"route-basiDiDati.chunk.d1ab5.js","previous":0,"size":1052,"diff":1052},{"filename":"route-calcoloNumerico.chunk.a852d.js","previous":0,"size":1677,"diff":1677},{"filename":"route-fisica.chunk.3f6c6.js","previous":0,"size":12401,"diff":12401},{"filename":"route-home.chunk.65775.js","previous":0,"size":2288,"diff":2288},{"filename":"route-mingwinstall.chunk.9d6e9.js","previous":0,"size":1812,"diff":1812},{"filename":"route-ottimizzazioneLineare.chunk.56a70.js","previous":0,"size":2387,"diff":2387},{"filename":"route-statistica.chunk.fe1f8.js","previous":0,"size":18159,"diff":18159},{"filename":"route-vldigeometria.chunk.3b8b9.js","previous":0,"size":26055,"diff":26055}]}] +[{"timestamp":1584373363140,"files":[{"filename":"sw-esm.js","previous":741,"size":741,"diff":0},{"filename":"sw.js","previous":738,"size":738,"diff":0},{"filename":"bundle.69171.css","previous":618,"size":618,"diff":0},{"filename":"polyfills.7484f.esm.js","previous":2012,"size":2012,"diff":0},{"filename":"route-apprendimentoSistemiArtificiali.chunk.c2edb.css","previous":388,"size":388,"diff":0},{"filename":"route-apprendimentoSistemiArtificiali.chunk.fdc4f.esm.js","previous":1004,"size":1004,"diff":0},{"filename":"route-calcoloNumerico.chunk.c2edb.css","previous":388,"size":0,"diff":-388},{"filename":"route-calcoloNumerico.chunk.5f4f3.esm.js","previous":1563,"size":0,"diff":-1563},{"filename":"route-fisica.chunk.0b01a.css","previous":354,"size":354,"diff":0},{"filename":"route-fisica.chunk.4ed8c.esm.js","previous":11150,"size":11150,"diff":0},{"filename":"route-home.chunk.deccf.css","previous":287,"size":287,"diff":0},{"filename":"route-home.chunk.86a07.esm.js","previous":2176,"size":2176,"diff":0},{"filename":"route-mingwinstall.chunk.4f81b.css","previous":137,"size":137,"diff":0},{"filename":"route-mingwinstall.chunk.ea3ae.esm.js","previous":1721,"size":1721,"diff":0},{"filename":"route-ottimizzazioneLineare.chunk.c2edb.css","previous":388,"size":388,"diff":0},{"filename":"route-statistica.chunk.025c9.css","previous":444,"size":444,"diff":0},{"filename":"route-statistica.chunk.26925.esm.js","previous":15566,"size":15566,"diff":0},{"filename":"route-vldigeometria.chunk.e54c2.css","previous":137,"size":137,"diff":0},{"filename":"route-vldigeometria.chunk.24244.esm.js","previous":25899,"size":25899,"diff":0},{"filename":"polyfills.b96b2.js","previous":2013,"size":2013,"diff":0},{"filename":"route-apprendimentoSistemiArtificiali.chunk.b1ca4.js","previous":1120,"size":1120,"diff":0},{"filename":"route-calcoloNumerico.chunk.a852d.js","previous":1677,"size":0,"diff":-1677},{"filename":"route-fisica.chunk.3f6c6.js","previous":12401,"size":12401,"diff":0},{"filename":"route-home.chunk.65775.js","previous":2288,"size":2288,"diff":0},{"filename":"route-mingwinstall.chunk.9d6e9.js","previous":1812,"size":1812,"diff":0},{"filename":"route-statistica.chunk.fe1f8.js","previous":18159,"size":18159,"diff":0},{"filename":"route-vldigeometria.chunk.3b8b9.js","previous":26055,"size":26055,"diff":0},{"filename":"bundle.1c866.esm.js","previous":12517,"size":0,"diff":-12517},{"filename":"route-basiDiDati.chunk.9cc26.css","previous":647,"size":647,"diff":0},{"filename":"route-basiDiDati.chunk.ee3b7.esm.js","previous":2032,"size":2032,"diff":0},{"filename":"route-ottimizzazioneLineare.chunk.96c0e.esm.js","previous":2149,"size":2149,"diff":0},{"filename":"bundle.7b35a.js","previous":12574,"size":0,"diff":-12574},{"filename":"route-basiDiDati.chunk.eb3c5.js","previous":2169,"size":2169,"diff":0},{"filename":"route-ottimizzazioneLineare.chunk.e117d.js","previous":2386,"size":2386,"diff":0},{"filename":"bundle.85ae2.esm.js","previous":0,"size":12517,"diff":12517},{"filename":"route-calcoloNumerico.chunk.9cc26.css","previous":0,"size":647,"diff":647},{"filename":"route-calcoloNumerico.chunk.b8d1f.esm.js","previous":0,"size":3201,"diff":3201},{"filename":"bundle.0cb08.js","previous":0,"size":12572,"diff":12572},{"filename":"route-calcoloNumerico.chunk.726a6.js","previous":0,"size":3450,"diff":3450}]},{"timestamp":1584117678940,"files":[{"filename":"sw-esm.js","previous":741,"size":741,"diff":0},{"filename":"sw.js","previous":738,"size":738,"diff":0},{"filename":"bundle.69171.css","previous":618,"size":618,"diff":0},{"filename":"bundle.5f7c2.esm.js","previous":9835,"size":0,"diff":-9835},{"filename":"polyfills.7484f.esm.js","previous":2012,"size":2012,"diff":0},{"filename":"route-apprendimentoSistemiArtificiali.chunk.c2edb.css","previous":388,"size":388,"diff":0},{"filename":"route-apprendimentoSistemiArtificiali.chunk.fdc4f.esm.js","previous":1004,"size":1004,"diff":0},{"filename":"route-basiDiDati.chunk.c2edb.css","previous":388,"size":0,"diff":-388},{"filename":"route-basiDiDati.chunk.ac797.esm.js","previous":938,"size":0,"diff":-938},{"filename":"route-calcoloNumerico.chunk.c2edb.css","previous":388,"size":388,"diff":0},{"filename":"route-calcoloNumerico.chunk.5f4f3.esm.js","previous":1563,"size":1563,"diff":0},{"filename":"route-fisica.chunk.0b01a.css","previous":354,"size":354,"diff":0},{"filename":"route-fisica.chunk.4ed8c.esm.js","previous":11150,"size":11150,"diff":0},{"filename":"route-home.chunk.deccf.css","previous":287,"size":287,"diff":0},{"filename":"route-home.chunk.86a07.esm.js","previous":2176,"size":2176,"diff":0},{"filename":"route-mingwinstall.chunk.4f81b.css","previous":137,"size":137,"diff":0},{"filename":"route-mingwinstall.chunk.ea3ae.esm.js","previous":1721,"size":1721,"diff":0},{"filename":"route-ottimizzazioneLineare.chunk.c2edb.css","previous":388,"size":388,"diff":0},{"filename":"route-ottimizzazioneLineare.chunk.d97a3.esm.js","previous":2149,"size":0,"diff":-2149},{"filename":"route-statistica.chunk.025c9.css","previous":444,"size":444,"diff":0},{"filename":"route-statistica.chunk.26925.esm.js","previous":15566,"size":15566,"diff":0},{"filename":"route-vldigeometria.chunk.e54c2.css","previous":137,"size":137,"diff":0},{"filename":"route-vldigeometria.chunk.24244.esm.js","previous":25899,"size":25899,"diff":0},{"filename":"bundle.c755a.js","previous":9889,"size":0,"diff":-9889},{"filename":"polyfills.b96b2.js","previous":2013,"size":2013,"diff":0},{"filename":"route-apprendimentoSistemiArtificiali.chunk.b1ca4.js","previous":1120,"size":1120,"diff":0},{"filename":"route-basiDiDati.chunk.d1ab5.js","previous":1052,"size":0,"diff":-1052},{"filename":"route-calcoloNumerico.chunk.a852d.js","previous":1677,"size":1677,"diff":0},{"filename":"route-fisica.chunk.3f6c6.js","previous":12401,"size":12401,"diff":0},{"filename":"route-home.chunk.65775.js","previous":2288,"size":2288,"diff":0},{"filename":"route-mingwinstall.chunk.9d6e9.js","previous":1812,"size":1812,"diff":0},{"filename":"route-ottimizzazioneLineare.chunk.56a70.js","previous":2387,"size":0,"diff":-2387},{"filename":"route-statistica.chunk.fe1f8.js","previous":18159,"size":18159,"diff":0},{"filename":"route-vldigeometria.chunk.3b8b9.js","previous":26055,"size":26055,"diff":0},{"filename":"bundle.1c866.esm.js","previous":0,"size":12517,"diff":12517},{"filename":"route-basiDiDati.chunk.9cc26.css","previous":0,"size":647,"diff":647},{"filename":"route-basiDiDati.chunk.ee3b7.esm.js","previous":0,"size":2032,"diff":2032},{"filename":"route-ottimizzazioneLineare.chunk.96c0e.esm.js","previous":0,"size":2149,"diff":2149},{"filename":"bundle.7b35a.js","previous":0,"size":12574,"diff":12574},{"filename":"route-basiDiDati.chunk.eb3c5.js","previous":0,"size":2169,"diff":2169},{"filename":"route-ottimizzazioneLineare.chunk.e117d.js","previous":0,"size":2386,"diff":2386}]},{"timestamp":1583950901344,"files":[{"filename":"sw-esm.js","previous":0,"size":741,"diff":741},{"filename":"sw.js","previous":0,"size":738,"diff":738},{"filename":"bundle.69171.css","previous":0,"size":618,"diff":618},{"filename":"bundle.5f7c2.esm.js","previous":0,"size":9835,"diff":9835},{"filename":"polyfills.7484f.esm.js","previous":0,"size":2012,"diff":2012},{"filename":"route-apprendimentoSistemiArtificiali.chunk.c2edb.css","previous":0,"size":388,"diff":388},{"filename":"route-apprendimentoSistemiArtificiali.chunk.fdc4f.esm.js","previous":0,"size":1004,"diff":1004},{"filename":"route-basiDiDati.chunk.c2edb.css","previous":0,"size":388,"diff":388},{"filename":"route-basiDiDati.chunk.ac797.esm.js","previous":0,"size":938,"diff":938},{"filename":"route-calcoloNumerico.chunk.c2edb.css","previous":0,"size":388,"diff":388},{"filename":"route-calcoloNumerico.chunk.5f4f3.esm.js","previous":0,"size":1563,"diff":1563},{"filename":"route-fisica.chunk.0b01a.css","previous":0,"size":354,"diff":354},{"filename":"route-fisica.chunk.4ed8c.esm.js","previous":0,"size":11150,"diff":11150},{"filename":"route-home.chunk.deccf.css","previous":0,"size":287,"diff":287},{"filename":"route-home.chunk.86a07.esm.js","previous":0,"size":2176,"diff":2176},{"filename":"route-mingwinstall.chunk.4f81b.css","previous":0,"size":137,"diff":137},{"filename":"route-mingwinstall.chunk.ea3ae.esm.js","previous":0,"size":1721,"diff":1721},{"filename":"route-ottimizzazioneLineare.chunk.c2edb.css","previous":0,"size":388,"diff":388},{"filename":"route-ottimizzazioneLineare.chunk.d97a3.esm.js","previous":0,"size":2149,"diff":2149},{"filename":"route-statistica.chunk.025c9.css","previous":0,"size":444,"diff":444},{"filename":"route-statistica.chunk.26925.esm.js","previous":0,"size":15566,"diff":15566},{"filename":"route-vldigeometria.chunk.e54c2.css","previous":0,"size":137,"diff":137},{"filename":"route-vldigeometria.chunk.24244.esm.js","previous":0,"size":25899,"diff":25899},{"filename":"bundle.c755a.js","previous":0,"size":9889,"diff":9889},{"filename":"polyfills.b96b2.js","previous":0,"size":2013,"diff":2013},{"filename":"route-apprendimentoSistemiArtificiali.chunk.b1ca4.js","previous":0,"size":1120,"diff":1120},{"filename":"route-basiDiDati.chunk.d1ab5.js","previous":0,"size":1052,"diff":1052},{"filename":"route-calcoloNumerico.chunk.a852d.js","previous":0,"size":1677,"diff":1677},{"filename":"route-fisica.chunk.3f6c6.js","previous":0,"size":12401,"diff":12401},{"filename":"route-home.chunk.65775.js","previous":0,"size":2288,"diff":2288},{"filename":"route-mingwinstall.chunk.9d6e9.js","previous":0,"size":1812,"diff":1812},{"filename":"route-ottimizzazioneLineare.chunk.56a70.js","previous":0,"size":2387,"diff":2387},{"filename":"route-statistica.chunk.fe1f8.js","previous":0,"size":18159,"diff":18159},{"filename":"route-vldigeometria.chunk.3b8b9.js","previous":0,"size":26055,"diff":26055}]}] diff --git a/src/routes/calcoloNumerico.js b/src/routes/calcoloNumerico.js index 8bfe59e..b872e81 100644 --- a/src/routes/calcoloNumerico.js +++ b/src/routes/calcoloNumerico.js @@ -4,6 +4,7 @@ import Latex from "../components/latex"; import Panel from "../components/panel"; import Example from "../components/example"; import Todo from "../components/todo"; +import Timer from "../components/timer"; const r = String.raw; @@ -29,12 +30,14 @@ export default class CalcoloNumerico extends Component {
    -
  1. Introduzione al corso
  2. -
  3. Introduzione alla materia
  4. -
  5. Rappresentazione dei numeri
  6. -
  7. Rappresentazione fixed point degli interi
  8. -
  9. Rappresentazione floating point dei reali
  10. -
  11. Operazioni di macchina
  12. +
  13. Introduzione al corso
  14. +
  15. Introduzione alla materia
  16. +
  17. Rappresentazione dei numeri
  18. +
  19. Rappresentazione fixed point degli interi
  20. +
  21. Rappresentazione floating point dei reali
  22. +
  23. Operazioni di macchina
  24. +
  25. Analisi degli errori: condizionamento e stabilità
  26. +
  27. Richiami di Algebra lineare
@@ -49,6 +52,119 @@ export default class CalcoloNumerico extends Component { Appena sarà possibile, gli interessati verranno informati tramite email.

+

+ Partecipare al Team-based Learning può portare all'ottenimento di fino a 3 punti bonus all'esame e esenzione dalla domanda di Matlab. +

+
+ + + +

+ silvia.bonettini@unimore.it +

+
+ +

+ Su appuntamento. +

+
+
+ + +

+ E' composto da: +

+
    +
  • 2 domande sugli argomenti teorici
  • +
  • 1 domanda di implementazione algoritmo in MATLAB (facoltativa per i punteggi migliori del TBL)
  • +
+

+ Prossimo appello: + +

+
+
+ + +

+ Algoritmi che hanno: +

+
    +
  • numeri reali in input e output
  • +
  • successioni delle quattro operazioni aritmetiche fondamentali come passi
  • +
+
+
+ + +

+ Con i numeri floating point può capitare che un certo numero {r`\alpha`} non sia rappresentato correttamente. +

+

+ In tal caso, il numero si indica con {r`\alpha^*`}. +

+
+ +

+ È la differenza tra il numero desiderato e il numero rappresentato: +

+

+ {r`E_a = \left | \alpha - \alpha^* \right |`} +

+ + Vale sempre 0, tranne in caso di underflow o overflow. + +
+ +

+ Indica quanto il numero rappresentato differisce dal numero desiderato: +

+

+ {r`\forall \alpha \neq 0, E_r = \frac{E_a}{\left | \alpha \right |}`} +

+
+
+ + +

+ L'errore relativo di un numero reale rappresentato in virgola mobile è minore o uguale alla precisione di macchina: +

+

+ {r`E_r \leq k \cdot \beta^{1-t}`} +

+
    +
  • + \beta è uguale alla base utilizzata (solitamente 2). +
  • +
  • + t è uguale al numero di cifre della mantissa. +
  • +
  • + k è uguale a 1 se il numero viene rappresentato per troncamento oppure a {r`\frac{1}{2}`} se viene rappresentato per arrotondamento. +
  • +
+
+
+ + +

+ L'insieme F è il sottoinsieme dei numeri reali rappresentabili in floating point dalla macchina che stiamo usando. +

+

+ Operazioni tra elementi di F producono risultati in {r`\mathbb{R}`}, che però decaderanno nuovamente a elementi di F, perdendo informazioni. +

+

+ Il teorema della precisione di macchina si applica quindi anche ai risultati delle operazioni. +

+
+ +
    +
  • Hanno più di un elemento neutro.
  • +
  • Un numero ha più opposti.
  • +
  • Non sono associative.
  • +
  • Non sono distributive.
  • +
  • Non vale la legge di annullamento del prodotto.
  • +