From fdc3c535293b4bc1db88083ab1813e8fddac9fbb Mon Sep 17 00:00:00 2001 From: adamnfish Date: Mon, 13 Apr 2026 21:54:23 +0100 Subject: [PATCH 1/3] Switch from create-elm-app to Parcel, add CI/CD workflows - Replace create-elm-app with Parcel 2 + @parcel/transformer-elm - Add GitHub Actions deploy workflow (Pages artifact, not docs/ branch) - Add CI workflow running elm-test on PRs and pushes to main - Remove service worker - Remove committed docs/ build output - Update elm.json: elm 0.19.1, elm/core 1.0.5, elm-explorations/test 2.0.0 - Add local dev instructions to README Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/ci.yml | 28 + .github/workflows/deploy.yml | 52 + .gitignore | 2 + README.md | 31 +- docs/asset-manifest.json | 11 - docs/index.html | 1 - docs/service-worker.js | 1 - docs/static/css/main.f98b609c.chunk.css | 3 - docs/static/css/main.f98b609c.chunk.css.map | 1 - docs/static/js/main.7ba80f70.chunk.js | 2 - docs/static/js/main.7ba80f70.chunk.js.map | 1 - docs/static/js/runtime~main.538a88e8.js | 2 - docs/static/js/runtime~main.538a88e8.js.map | 1 - docs/static/js/vendors~main.7b45496b.chunk.js | 2 - .../js/vendors~main.7b45496b.chunk.js.map | 1 - elm.json | 10 +- elmapp.config.js | 3 - package-lock.json | 4034 +++++++++++++++++ package.json | 18 + public/favicon.ico | Bin 1416 -> 0 bytes public/manifest.json | 15 - {docs => src}/favicon.ico | Bin {public => src}/index.html | 9 +- src/index.js | 3 - {docs => src}/manifest.json | 0 src/registerServiceWorker.js | 108 - 26 files changed, 4172 insertions(+), 167 deletions(-) create mode 100644 .github/workflows/ci.yml create mode 100644 .github/workflows/deploy.yml delete mode 100644 docs/asset-manifest.json delete mode 100644 docs/index.html delete mode 100644 docs/service-worker.js delete mode 100644 docs/static/css/main.f98b609c.chunk.css delete mode 100644 docs/static/css/main.f98b609c.chunk.css.map delete mode 100644 docs/static/js/main.7ba80f70.chunk.js delete mode 100644 docs/static/js/main.7ba80f70.chunk.js.map delete mode 100644 docs/static/js/runtime~main.538a88e8.js delete mode 100644 docs/static/js/runtime~main.538a88e8.js.map delete mode 100644 docs/static/js/vendors~main.7b45496b.chunk.js delete mode 100644 docs/static/js/vendors~main.7b45496b.chunk.js.map delete mode 100644 elmapp.config.js create mode 100644 package-lock.json create mode 100644 package.json delete mode 100644 public/favicon.ico delete mode 100644 public/manifest.json rename {docs => src}/favicon.ico (100%) rename {public => src}/index.html (56%) rename {docs => src}/manifest.json (100%) delete mode 100644 src/registerServiceWorker.js diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..0737288 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,28 @@ +name: CI + +on: + push: + branches: + - main + pull_request: + branches: + - main + +jobs: + test: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v6 + + - name: Setup Node + uses: actions/setup-node@v6 + with: + node-version: lts/* + cache: npm + + - name: Install dependencies + run: npm ci + + - name: Run Elm tests + run: npx elm-test diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..fdb5fdc --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,52 @@ +name: Deploy to GitHub Pages + +on: + push: + branches: + - main + workflow_dispatch: + +permissions: + contents: read + pages: write + id-token: write + +# Only allow one deployment at a time, but don't cancel in-progress runs +concurrency: + group: pages + cancel-in-progress: false + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v6 + + - name: Setup Node + uses: actions/setup-node@v6 + with: + node-version: lts/* + cache: npm + + - name: Install dependencies + run: npm ci + + - name: Build + run: npm run build + + - name: Upload Pages artifact + uses: actions/upload-pages-artifact@v3 + with: + path: dist + + deploy: + needs: build + runs-on: ubuntu-latest + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/.gitignore b/.gitignore index 1492b27..f483246 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,8 @@ # Distribution build/ +dist/ +.parcel-cache/ # elm-package generated files elm-stuff diff --git a/README.md b/README.md index 8bdd62d..b807a82 100644 --- a/README.md +++ b/README.md @@ -7,12 +7,39 @@ App to demonstrate gravitational slingshot maneuvers. -https://adamnfish.github.io/luna/index.html +https://adamnfish.github.io/luna/ + +## Local development + +Install dependencies: + +```sh +npm install +``` + +Start the dev server (available at http://localhost:1234): + +```sh +npm start +``` + +Run the Elm tests: + +```sh +npm test +``` + +Build for production (output in `dist/`): + +```sh +npm run build +``` ## Source code This is an Elm application built using -[create-elm-app](https://github.com/halfzebra/create-elm-app). The +[Parcel](https://parceljs.org/) with +[@parcel/transformer-elm](https://github.com/nicois/parcel-transformer-elm). The program runs from [`src/Main.elm`](src/Main.elm), which provides the initial state and browser integration (including a subscription to `requestAnimationFrame`). Updates to the state come from messages, diff --git a/docs/asset-manifest.json b/docs/asset-manifest.json deleted file mode 100644 index c3b65ea..0000000 --- a/docs/asset-manifest.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "main.css": "/luna/static/css/main.f98b609c.chunk.css", - "main.js": "/luna/static/js/main.7ba80f70.chunk.js", - "main.css.map": "/luna/static/css/main.f98b609c.chunk.css.map", - "main.js.map": "/luna/static/js/main.7ba80f70.chunk.js.map", - "runtime~main.js": "/luna/static/js/runtime~main.538a88e8.js", - "runtime~main.js.map": "/luna/static/js/runtime~main.538a88e8.js.map", - "vendors~main.js": "/luna/static/js/vendors~main.7b45496b.chunk.js", - "vendors~main.js.map": "/luna/static/js/vendors~main.7b45496b.chunk.js.map", - "index.html": "/luna/index.html" -} \ No newline at end of file diff --git a/docs/index.html b/docs/index.html deleted file mode 100644 index f7a742a..0000000 --- a/docs/index.html +++ /dev/null @@ -1 +0,0 @@ -Luna
\ No newline at end of file diff --git a/docs/service-worker.js b/docs/service-worker.js deleted file mode 100644 index 5cf96f6..0000000 --- a/docs/service-worker.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";var precacheConfig=[["/luna/index.html","9a255dffafbc9f9cc6a4f70e9279132e"],["/luna/static/css/main.f98b609c.chunk.css","125431b5c8237888bfc818181b2ae514"],["/luna/static/js/main.7ba80f70.chunk.js","5197b04bfe86330c406a6708abe4cb19"],["/luna/static/js/runtime~main.538a88e8.js","e585846e6c7a8690fdeb660773fcc126"],["/luna/static/js/vendors~main.7b45496b.chunk.js","e663b17a4b40b12eaf42a0b8470feda9"]],cacheName="sw-precache-v3-sw-precache-webpack-plugin-"+(self.registration?self.registration.scope:""),ignoreUrlParametersMatching=[/^utm_/],addDirectoryIndex=function(e,n){var t=new URL(e);return"/"===t.pathname.slice(-1)&&(t.pathname+=n),t.toString()},cleanResponse=function(e){return e.redirected?("body"in e?Promise.resolve(e.body):e.blob()).then(function(n){return new Response(n,{headers:e.headers,status:e.status,statusText:e.statusText})}):Promise.resolve(e)},createCacheKey=function(e,n,t,r){var a=new URL(e);return r&&a.pathname.match(r)||(a.search+=(a.search?"&":"")+encodeURIComponent(n)+"="+encodeURIComponent(t)),a.toString()},isPathWhitelisted=function(e,n){if(0===e.length)return!0;var t=new URL(n).pathname;return e.some(function(e){return t.match(e)})},stripIgnoredUrlParameters=function(e,n){var t=new URL(e);return t.hash="",t.search=t.search.slice(1).split("&").map(function(e){return e.split("=")}).filter(function(e){return n.every(function(n){return!n.test(e[0])})}).map(function(e){return e.join("=")}).join("&"),t.toString()},hashParamName="_sw-precache",urlsToCacheKeys=new Map(precacheConfig.map(function(e){var n=e[0],t=e[1],r=new URL(n,self.location),a=createCacheKey(r,hashParamName,t,/\.\w{8}\./);return[r.toString(),a]}));function setOfCachedUrls(e){return e.keys().then(function(e){return e.map(function(e){return e.url})}).then(function(e){return new Set(e)})}self.addEventListener("install",function(e){e.waitUntil(caches.open(cacheName).then(function(e){return setOfCachedUrls(e).then(function(n){return Promise.all(Array.from(urlsToCacheKeys.values()).map(function(t){if(!n.has(t)){var r=new Request(t,{credentials:"same-origin"});return fetch(r).then(function(n){if(!n.ok)throw new Error("Request for "+t+" returned a response with status "+n.status);return cleanResponse(n).then(function(n){return e.put(t,n)})})}}))})}).then(function(){return self.skipWaiting()}))}),self.addEventListener("activate",function(e){var n=new Set(urlsToCacheKeys.values());e.waitUntil(caches.open(cacheName).then(function(e){return e.keys().then(function(t){return Promise.all(t.map(function(t){if(!n.has(t.url))return e.delete(t)}))})}).then(function(){return self.clients.claim()}))}),self.addEventListener("fetch",function(e){if("GET"===e.request.method){var n,t=stripIgnoredUrlParameters(e.request.url,ignoreUrlParametersMatching);(n=urlsToCacheKeys.has(t))||(t=addDirectoryIndex(t,"index.html"),n=urlsToCacheKeys.has(t));0,n&&e.respondWith(caches.open(cacheName).then(function(e){return e.match(urlsToCacheKeys.get(t)).then(function(e){if(e)return e;throw Error("The cached response that was expected is missing.")})}).catch(function(n){return console.warn('Couldn\'t serve response for "%s" from cache: %O',e.request.url,n),fetch(e.request)}))}}); \ No newline at end of file diff --git a/docs/static/css/main.f98b609c.chunk.css b/docs/static/css/main.f98b609c.chunk.css deleted file mode 100644 index 491c019..0000000 --- a/docs/static/css/main.f98b609c.chunk.css +++ /dev/null @@ -1,3 +0,0 @@ -body{font-family:Source Sans Pro,Trebuchet MS,Lucida Grande,Bitstream Vera Sans,Helvetica Neue,sans-serif;margin:0;text-align:center;color:#293c4b;background-color:#f7f7f7}h1{font-size:30px}img{margin:20px 0;max-width:200px}.cta-button{padding:20px;min-width:200px;background-color:#333;border:1px solid #666;box-shadow:2px 2px #ccc;color:#f7f7f7}.cta-button:hover{background-color:#666;cursor:pointer}.controls-button{padding:8px;border:1px solid #666;background-color:#ccc;color:#111;min-width:120px;margin:5px}.universe{left:0;width:100%;height:100%}.controls,.universe{position:absolute;top:0}.controls{right:0;z-index:2}.info-box{margin-top:50px} - -/*# sourceMappingURL=main.f98b609c.chunk.css.map*/ \ No newline at end of file diff --git a/docs/static/css/main.f98b609c.chunk.css.map b/docs/static/css/main.f98b609c.chunk.css.map deleted file mode 100644 index 420cdfb..0000000 --- a/docs/static/css/main.f98b609c.chunk.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["main.css"],"names":[],"mappings":"AAAA,KACE,qGACA,SACA,kBACA,cACA,wBAA0B,CAG5B,GACE,cAAgB,CAGlB,IACE,cACA,eAAiB,CAGnB,YACE,aACA,gBACA,sBACA,sBAEA,wBACA,aAAe,CAEjB,kBACE,sBACA,cAAgB,CAGlB,iBACE,YACA,sBACA,sBACA,WACA,gBACA,UAAgB,CAGlB,UAGE,OACA,WACA,WAAa,CAGf,oBAPE,kBACA,KAAO,CAWR,UAFC,QACA,SAAW,CAGb,UACE,eAAiB,C","file":"static/css/main.f98b609c.chunk.css","sourcesContent":["body {\n font-family: 'Source Sans Pro', 'Trebuchet MS', 'Lucida Grande', 'Bitstream Vera Sans', 'Helvetica Neue', sans-serif;\n margin: 0;\n text-align: center;\n color: #293c4b;\n background-color: #f7f7f7;\n}\n\nh1 {\n font-size: 30px;\n}\n\nimg {\n margin: 20px 0;\n max-width: 200px;\n}\n\n.cta-button {\n padding: 20px;\n min-width: 200px;\n background-color: #333333;\n border: solid 1px #666666;\n /* border-radius: 5px; */\n box-shadow: 2px 2px #ccc;\n color: #f7f7f7;\n}\n.cta-button:hover {\n background-color: #666666;\n cursor: pointer;\n}\n\n.controls-button {\n padding: 8px;\n border: solid 1px #666666;\n background-color: #cccccc;\n color: #111111;\n min-width: 120px;\n margin: 5px 5px;\n}\n\n.universe {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n}\n\n.controls {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2;\n}\n\n.info-box {\n margin-top: 50px;\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/static/js/main.7ba80f70.chunk.js b/docs/static/js/main.7ba80f70.chunk.js deleted file mode 100644 index 8e45db2..0000000 --- a/docs/static/js/main.7ba80f70.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[0],[,function(n,r){!function(n){"use strict";function r(n,r,t){return t.a=n,t.f=r,t}function t(n){return r(2,n,function(r){return function(t){return n(r,t)}})}function e(n){return r(3,n,function(r){return function(t){return function(e){return n(r,t,e)}}})}function u(n){return r(4,n,function(r){return function(t){return function(e){return function(u){return n(r,t,e,u)}}}})}function i(n){return r(5,n,function(r){return function(t){return function(e){return function(u){return function(i){return n(r,t,e,u,i)}}}}})}function o(n){return r(6,n,function(r){return function(t){return function(e){return function(u){return function(i){return function(o){return n(r,t,e,u,i,o)}}}}}})}function a(n){return r(7,n,function(r){return function(t){return function(e){return function(u){return function(i){return function(o){return function(a){return n(r,t,e,u,i,o,a)}}}}}}})}function f(n){return r(8,n,function(r){return function(t){return function(e){return function(u){return function(i){return function(o){return function(a){return function(f){return n(r,t,e,u,i,o,a,f)}}}}}}}})}function c(n){return r(9,n,function(r){return function(t){return function(e){return function(u){return function(i){return function(o){return function(a){return function(f){return function(c){return n(r,t,e,u,i,o,a,f,c)}}}}}}}}})}function v(n,r,t){return 2===n.a?n.f(r,t):n(r)(t)}function s(n,r,t,e){return 3===n.a?n.f(r,t,e):n(r)(t)(e)}function l(n,r,t,e,u){return 4===n.a?n.f(r,t,e,u):n(r)(t)(e)(u)}function b(n,r,t,e,u,i){return 5===n.a?n.f(r,t,e,u,i):n(r)(t)(e)(u)(i)}function d(n,r,t,e,u,i,o){return 6===n.a?n.f(r,t,e,u,i,o):n(r)(t)(e)(u)(i)(o)}var h=e(function(n,r,t){for(var e=new Array(n),u=0;u=0;e--)r=v(n,t[e],r);return r}),w=t(function(n,r){for(var t=r.length,e=new Array(t),u=0;ut.length&&(u=t.length);for(var i=new Array(e+u),o=0;o"),r});function _(n){throw new Error("https://github.com/elm/core/blob/1.0.0/hints/"+n+".md")}function q(n,r){for(var t,e=[],u=C(n,r,0,e);u&&(t=e.pop());u=C(t.a,t.b,0,e));return u}function C(n,r,t,e){if(t>100)return e.push(M(n,r)),!0;if(n===r)return!0;if("object"!==typeof n||null===n||null===r)return"function"===typeof n&&_(5),!1;for(var u in n.$<0&&(n=Rr(n),r=Rr(r)),n)if(!C(n[u],r[u],t+1,e))return!1;return!0}t(q),t(function(n,r){return!q(n,r)});function O(n,r,t){if("object"!==typeof n)return n===r?0:n0}),t(function(n,r){return O(n,r)>=0});var x=t(function(n,r){var t=O(n,r);return t<0?Fr:t?Ir:Dr}),L=0;function M(n,r){return{a:n,b:r}}function B(n,r,t){return{a:n,b:r,c:t}}function S(n){return n}function T(n,r){var t={};for(var e in n)t[e]=n[e];for(var e in r)t[e]=r[e];return t}var D=t(F);function F(n,r){if("string"===typeof n)return n+r;if(!n.b)return r;var t=A(n.a,r);n=n.b;for(var e=t;n.b;n=n.b)e=e.b=A(n.a,r);return t}function W(n){return{$:0,a:n}}function G(n){return{$:2,b:n,c:null}}var I=t(function(n,r){return{$:3,b:n,d:r}}),J=t(function(n,r){return{$:4,b:n,d:r}});var R=0;function H(n){var r={$:0,e:R++,f:n,g:null,h:[]};return Q(r),r}function z(n){return G(function(r){r(W(H(n)))})}function P(n,r){n.h.push(r),Q(n)}var U=t(function(n,r){return G(function(t){P(n,r),t(W(L))})});var K=!1,Y=[];function Q(n){if(Y.push(n),!K){for(K=!0;n=Y.shift();)X(n);K=!1}}function X(n){for(;n.f;){var r=n.f.$;if(0===r||1===r){for(;n.g&&n.g.$!==r;)n.g=n.g.i;if(!n.g)return;n.f=n.g.b(n.f.a),n.g=n.g.i}else{if(2===r)return void(n.f.c=n.f.b(function(r){n.f=r,Q(n)}));if(5===r){if(0===n.h.length)return;n.f=n.f.b(n.h.shift())}else n.g={$:3===r?0:1,b:n.f.b,i:n.g},n.f=n.f.d}}}t(function(n,r){return n+r}),t(function(n,r){return n-r}),t(function(n,r){return n*r}),t(function(n,r){return n/r}),t(function(n,r){return n/r|0});var V=t(Math.pow);t(function(n,r){return r%n}),t(function(n,r){var t=r%n;return 0===n?_(11):t>0&&n<0||t<0&&n>0?t+n:t}),Math.PI,Math.E,Math.cos,Math.sin,Math.tan,Math.acos,Math.asin,Math.atan,t(Math.atan2);var Z=Math.ceil,nn=Math.floor,rn=Math.round,tn=Math.sqrt,en=Math.log;isNaN;t(function(n,r){return n&&r}),t(function(n,r){return n||r}),t(function(n,r){return n!==r});t(function(n,r){return n+r});t(function(n,r){return n+r});t(function(n,r){for(var t=r.length,e=new Array(t),u=0;u-1}),vn=(t(function(n,r){return 0===r.indexOf(n)}),t(function(n,r){return r.length>=n.length&&r.lastIndexOf(n)===r.length-n.length}),t(function(n,r){var t=n.length;if(t<1)return y;for(var e=0,u=[];(e=r.indexOf(n,e))>-1;)u.push(e),e+=t;return k(u)}));function sn(n){return n+""}var ln=t(function(n,r){return{$:10,d:n,b:r}});t(function(n,r){return{$:11,e:n,b:r}});function bn(n,r){return{$:13,f:n,g:r}}t(function(n,r){return{$:14,b:r,h:n}});var dn=t(function(n,r){return bn(n,[r])}),hn=e(function(n,r,t){return bn(n,[r,t])}),gn=(u(function(n,r,t,e){return bn(n,[r,t,e])}),i(function(n,r,t,e,u){return bn(n,[r,t,e,u])}),o(function(n,r,t,e,u,i){return bn(n,[r,t,e,u,i])}),a(function(n,r,t,e,u,i,o){return bn(n,[r,t,e,u,i,o])}),f(function(n,r,t,e,u,i,o,a){return bn(n,[r,t,e,u,i,o,a])}),c(function(n,r,t,e,u,i,o,a,f){return bn(n,[r,t,e,u,i,o,a,f])}),t(function(n,r){try{return $n(n,JSON.parse(r))}catch(n){return Et(v(_t,"This is not valid JSON! "+n.message,kn(r)))}}),t(function(n,r){return $n(n,En(r))}));function $n(n,r){switch(n.$){case 3:return"boolean"===typeof r?Nt(r):pn("a BOOL",r);case 2:return"number"!==typeof r?pn("an INT",r):-2147483647=r.length)return pn("a LONGER array. Need index "+u+" but only see "+r.length+" entries",r);e=$n(n.b,r[u]);return Yr(e)?e:Et(v(Ct,u,e.a));case 12:if("object"!==typeof r||null===r||Array.isArray(r))return pn("an OBJECT",r);var i=y;for(var o in r)if(r.hasOwnProperty(o)){e=$n(n.b,r[o]);if(!Yr(e))return Et(v(qt,o,e.a));i=A(M(o,e.a),i)}return Nt(Zr(i));case 13:for(var a=n.f,f=n.g,c=0;c0&&or(t,1,e,v));case 4:for(var s=n.j,l=r.j,b=!1,d=n.k;4===d.$;)b=!0,"object"!==typeof s?s=[s,d.j]:s.push(d.j),d=d.k;for(var h=r.k;4===h.$;)b=!0,"object"!==typeof l?l=[l,h.j]:l.push(h.j),h=h.k;return b&&s.length!==l.length?void or(t,0,e,r):((b?function(n,r){for(var t=0;ta?or(t,6,e,{v:a,i:o-a}):o0||o.length>0||q)&&or(t,8,e,{w:u,x:o,y:q})}var lr="_elmW6BL";function br(n,r,t,e,u,i){var o=n[t];if(!o)return o={c:0,z:e,r:u,s:void 0},i.push({r:u,A:o}),void(n[t]=o);if(1===o.c){i.push({r:u,A:o}),o.c=2;var a=[];return ar(o.z,e,a,o.r),o.r=u,void(o.s.s={w:a,A:o})}br(n,r,t+lr,e,u,i)}function dr(n,r,t,e,u){var i=n[t];if(i){if(0===i.c){i.c=2;var o=[];return ar(e,i.z,o,u),void or(r,9,u,{w:o,A:i})}dr(n,r,t+lr,e,u)}else{var a=or(r,9,u,void 0);n[t]={c:1,z:e,r:u,s:a}}}function hr(n,r,t,e){!function n(r,t,e,u,i,o,a){var f=e[u];var c=f.r;for(;c===i;){var v=f.$;if(1===v)hr(r,t.k,f.s,a);else if(8===v){f.t=r,f.u=a;var s=f.s.w;s.length>0&&n(r,t,s,0,i,o,a)}else if(9===v){f.t=r,f.u=a;var l=f.s;if(l){l.A.s=r;var s=l.w;s.length>0&&n(r,t,s,0,i,o,a)}}else f.t=r,f.u=a;if(!(f=e[++u])||(c=f.r)>o)return u}var b=t.$;if(4===b){for(var d=t.k;4===d.$;)d=d.k;return n(r,d,e,u,i+1,o,r.elm_event_node_ref)}var h=t.e;var g=r.childNodes;for(var $=0;$o))return u;i=w}return u}(n,r,t,0,0,r.b,e)}function gr(n,r,t,e){return 0===t.length?n:(hr(n,r,t,e),$r(n,t))}function $r(n,r){for(var t=0;t>n}),t(function(n,r){return r>>>n});t(function(n,r){return G(function(t){var e=setInterval(function(){H(r)},n);return function(){clearInterval(e)}})});var xr=function(n){return{$:5,a:n}},Lr=function(n){return{$:1,a:n}},Mr=e(function(n,r,t){return{aa:t,aA:r,aD:n}}),Br={$:1},Sr=m,Tr=e(function(n,r,e){var u=e.c,i=e.d,o=t(function(r,t){if(r.$){var e=r.a;return s(Sr,n,t,e)}var u=r.a;return s(Sr,o,t,u)});return s(Sr,o,s(Sr,n,r,i),u)}),Dr=1,Fr=0,Wr=j,Gr=function(n){return s(Tr,Wr,y,n)},Ir=2,Jr=e(function(n,r,t){for(;;){if(-2===t.$)return r;var e=t.b,u=t.c,i=t.d,o=t.e,a=n,f=s(n,e,u,s(Jr,n,r,o));n=a,r=f,t=i}}),Rr=function(n){return s(Jr,e(function(n,r,t){return v(Wr,M(n,r),t)}),y,n)},Hr=W,zr=Hr(s(Mr,y,Br,0)),Pr=Qr,Ur=function(n){for(;;){n=n}},Kr=function(n){return{$:0,a:n}},Yr=function(n){return!n.$},Qr=function(n){return n},Xr=Hr(0),Vr=e(function(n,r,t){for(;;){if(!t.b)return r;var e=t.a,u=t.b,i=n,o=v(n,e,r);n=i,r=o,t=u}}),Zr=function(n){return s(Vr,Wr,y,n)},nt=u(function(n,r,t,e){if(e.b){var u=e.a,i=e.b;if(i.b){var o=i.a,a=i.b;if(a.b){var f=a.a,c=a.b;if(c.b){var b=c.a,d=c.b;return v(n,u,v(n,o,v(n,f,v(n,b,t>500?s(Vr,n,r,Zr(d)):l(nt,n,r,t+1,d)))))}return v(n,u,v(n,o,v(n,f,r)))}return v(n,u,v(n,o,r))}return v(n,u,r)}return r}),rt=e(function(n,r,t){return l(nt,n,r,0,t)}),tt=t(function(n,r){return s(rt,t(function(r,t){return v(Wr,n(r),t)}),y,r)}),et=(t(function(n,r){return r(n)}),I),ut=t(function(n,r){return v(et,function(r){return Hr(n(r))},r)}),it=e(function(n,r,t){return v(et,function(r){return v(et,function(t){return Hr(v(n,r,t))},t)},r)}),ot=function(n){return s(rt,it(Wr),Hr(y),n)},at=u(function(n,r,t,e){return{$:0,a:n,b:r,c:t,d:e}}),ft=Z,ct=t(function(n,r){return en(r)/en(n)}),vt=ft(v(ct,2,32)),st=[],lt=l(at,0,vt,st,st),bt=function(n){return{$:1,a:n}},dt=function(n){return{$:0,a:n}},ht=g,gt=t(function(n,r){for(;;){var t=v(ht,32,n),e=t.a,u=t.b,i=v(Wr,dt(e),r);if(!u.b)return Zr(i);n=u,r=i}}),$t=t(function(n,r){for(;;){var t=ft(r/32);if(1===t)return v(ht,32,n).a;n=v(gt,n,y),r=t}}),mt=(t(function(n,r){return n(r)}),nn),wt=t(function(n,r){return O(n,r)>0?n:r}),pt=function(n){return n.length},yt=t(function(n,r){if(r.a){var t=32*r.a,e=mt(v(ct,32,t-1)),u=n?Zr(r.d):r.d,i=v($t,u,r.a);return l(at,pt(r.c)+t,v(wt,5,e*vt),i,r.c)}return l(at,pt(r.c),vt,st,r.c)}),At=h,jt=i(function(n,r,t,e,u){for(;;){if(r<0)return v(yt,!1,{d:e,a:t/32|0,c:u});var i=bt(s(At,32,r,n));n=n,r=r-32,t=t,e=v(Wr,i,e),u=u}}),kt=t(function(n,r){if(n<=0)return lt;var t=n%32,e=s(At,t,n-t,r);return b(jt,r,n-t-32,n,y,e)}),Et=function(n){return{$:1,a:n}},Nt=function(n){return{$:0,a:n}},_t=t(function(n,r){return{$:3,a:n,b:r}}),qt=t(function(n,r){return{$:0,a:n,b:r}}),Ct=t(function(n,r){return{$:1,a:n,b:r}}),Ot=function(n){return{$:2,a:n}},xt=D,Lt=function(n){var r=n.charCodeAt(0);return 55296<=r&&r<=56319?1024*(r-55296)+n.charCodeAt(1)-56320+65536:r},Mt=function(n){var r=Lt(n);return 97<=r&&r<=122},Bt=function(n){var r=Lt(n);return r<=90&&65<=r},St=function(n){return Mt(n)||Bt(n)},Tt=function(n){return Mt(n)||Bt(n)||function(n){var r=Lt(n);return r<=57&&48<=r}(n)},Dt=function(n){return s(Vr,t(function(n,r){return r+1}),0,n)},Ft=N,Wt=e(function(n,r,t){for(;;){if(!(O(n,r)<1))return t;var e=n,u=r-1,i=v(Wr,r,t);n=e,r=u,t=i}}),Gt=t(function(n,r){return s(Wt,n,r,y)}),It=t(function(n,r){return s(Ft,n,v(Gt,0,Dt(r)-1),r)}),Jt=fn,Rt=sn,Ht=t(function(n,r){return v(on,n,E(r))}),zt=function(n){var r=n.charCodeAt(0);return r?Kr(55296<=r&&r<=56319?M(S(n[0]+n[1]),n.slice(2)):M(S(n[0]),n.slice(1))):Br},Pt=t(function(n,r){return k(v(un,n,r))}),Ut=function(n){return v(Ht,"\n ",v(Pt,"\n",n))},Kt=jn,Yt=t(function(n,r){return"\n\n("+Rt(n+1)+") "+Ut(Qt(r))}),Qt=function(n){return v(Xt,n,y)},Xt=t(function(n,r){n:for(;;)switch(n.$){case 0:var t=n.a,e=n.b,u=function(){var n=zt(t);if(1===n.$)return!1;var r=n.a,e=r.a,u=r.b;return St(e)&&v(Jt,Tt,u)}(),i=e,o=v(Wr,u?"."+t:"['"+t+"']",r);n=i,r=o;continue n;case 1:var a=n.a,f=(e=n.b,"["+Rt(a)+"]");i=e,o=v(Wr,f,r);n=i,r=o;continue n;case 2:var c=n.a;if(c.b){if(c.b.b){var s=(r.b?"The Json.Decode.oneOf at json"+v(Ht,"",Zr(r)):"Json.Decode.oneOf")+" failed in the following "+Rt(Dt(c))+" ways:";return v(Ht,"\n\n",v(Wr,s,v(It,Yt,c)))}n=i=e=c.a,r=o=r;continue n}return"Ran into a Json.Decode.oneOf with no possibilities"+(r.b?" at json"+v(Ht,"",Zr(r)):"!");default:var l=n.a,b=n.b;return(s=r.b?"Problem with the value at json"+v(Ht,"",Zr(r))+":\n\n ":"Problem with the given value:\n\n")+(Ut(v(Kt,4,b))+"\n\n")+l}}),Vt=On,Zt=t(function(n,r){var t=r;return z(v(et,Vt(n),t))}),ne=e(function(n,r,t){return v(ut,function(n){return 0},ot(v(tt,Zt(n),r)))}),re=e(function(n,r,t){return Hr(0)}),te=t(function(n,r){return v(ut,n,r)});_n.Task=qn(Xr,ne,re,te);var ee=Ln("Task"),ue=t(function(n,r){return ee(v(ut,n,r))}),ie=dn,oe=hn,ae=function(n){return{$:0,a:n}},fe=function(n){switch(n.$){case 0:return 0;case 1:return 1;case 2:return 2;default:return 3}},ce=function(n){return n.length},ve=an,se=t(function(n,r){return n<1?r:s(ve,n,ce(r),r)}),le=vn,be=function(n){return""===n},de=t(function(n,r){return n<1?"":s(ve,0,n,r)}),he=cn,ge=function(n){for(var r=0,t=n.charCodeAt(0),e=43==t||45==t?1:0,u=e;u>>0,t)},Fe=function(n){var r=n.a,t=277803737*(r^r>>>4+(r>>>28));return(t>>>22^t)>>>0},We=t(function(n,r){return function(t){var e,u=De(t),i=(e=r-n)<0?-e:e,o=Fe(u);return M((134217728*(1*(67108863&Fe(t)))+1*(134217727&o))/9007199254740992*i+n,De(u))}}),Ge=u(function(n,r,t,e){for(;;){if(r<1)return M(n,e);var u=t(e),i=u.a,o=u.b;n=v(Wr,i,n),r=r-1,t=t,e=o}}),Ie=t(function(n,r){var t=r;return function(r){return l(Ge,y,n,t,r)}}),Je=e(function(n,r,t){var e=r,u=t;return function(r){var t=e(r),i=t.a,o=t.b,a=u(o),f=a.a,c=a.b;return M(v(n,i,f),c)}}),Re=v(Ie,150,v(t(function(n,r){return s(Je,t(function(n,r){return M(n,r)}),n,r)}),v(We,0,1e3),v(We,0,1e3))),He={$:0},ze=t(function(n,r){return{$:1,a:n,b:r}}),Pe=rn,Ue={$:0},Ke=Cr(function(){return{aC:Or(),aF:{r:Er.pageXOffset,s:Er.pageYOffset,aG:kr.documentElement.clientWidth,al:kr.documentElement.clientHeight}}}),Ye=Mn,Qe=J,Xe=t(function(n,r){return ee(v(Qe,v(Ce,v(Ce,Hr,n),Et),v(et,v(Ce,v(Ce,Hr,n),Nt),r)))}),Ve=(t(function(n,r){return{$:0,a:n,b:r}}),xe=_e,G(function(n){n(W(xe(Date.now())))})),Ze=v(et,function(n){return Hr(function(n){var r=De(v(Te,0,1013904223)),t=r.a,e=r.b;return De(v(Te,t+n>>>0,e))}(n))},Ve),nu=t(function(n,r){return n(r)}),ru=e(function(n,r,t){if(r.b){var e=r.a,u=r.b,i=v(nu,e,t),o=i.a,a=i.b;return v(et,function(r){return s(ru,n,u,a)},v(Vt,n,o))}return Hr(t)}),tu=e(function(n,r,t){return Hr(t)}),eu=t(function(n,r){var t=r;return function(r){var e=t(r),u=e.a,i=e.b;return M(n(u),i)}}),uu=t(function(n,r){return v(eu,n,r)});_n.Random=qn(Ze,ru,tu,uu);var iu=Ln("Random"),ou=t(function(n,r){return iu(v(eu,n,r))}),au=M({ap:Ue,a0:y,a7:{al:1e3,aG:1e3}},Ye(k([v(Xe,function(n){if(n.$)return n.a,He;var r=n.a;return v(ze,Pe(r.aF.aG),Pe(r.aF.al))},Ke),v(ou,function(n){return{$:2,a:n}},Re)]))),fu=function(n){return{$:1,a:n}},cu=t(function(n,r){return n/r.l}),vu=t(function(n,r){return{v:n.v+r.v,w:n.w+r.w}}),su=V,lu=tn,bu=t(function(n,r){return lu(v(su,n.r-r.r,2)+v(su,n.s-r.s,2))}),du=$,hu=e(function(n,r,e){var u=e.c,i=e.d,o=t(function(r,t){if(r.$){var e=r.a;return s(du,n,t,e)}var u=r.a;return s(du,o,t,u)});return s(du,n,s(du,o,r,u),i)}),gu=t(function(n,r){var e=t(function(r,t){var e=r.m.s-n.m.s,u=r.m.r-n.m.r,i=v(bu,n.m,r.m),o=i?1*n.l*r.l/v(su,i,2):0;return v(vu,t,{v:o*(u/i),w:o*(e/i)})});return s(hu,e,{v:0,w:0},r)}),$u=t(function(n,r){var t=v(gu,n,r);return{v:v(cu,t.v,n),w:v(cu,t.w,n)}}),mu=t(function(n,r){return{t:r.t+n.v,u:r.u+n.w}}),wu=t(function(n,r){return{r:r.r+n.t,s:r.s+n.u}}),pu=t(function(n,r){var t=v($u,n,r),e=v(mu,t,n.q);return T(n,{i:t,m:v(wu,e,n.m),q:e})}),yu=e(function(n,r,t){for(;;){var e=v(ht,32,n),u=e.a,i=e.b;if(O(pt(u),32)<0)return v(yt,!0,{d:r,a:t,c:u});n=i,r=v(Wr,bt(u),r),t=t+1}}),Au=function(n){return n.b?s(yu,n,y,0):lt},ju=p,ku=t(function(n,r){var e=r.a,u=r.c,i=r.d,o={d:y,a:0,c:s(ju,n,function(n){return n>>>5<<5}(e),i)},a=t(function(r,t){if(r.$){var e=r.a,u=32*t.a,i=bt(s(ju,n,u,e));return{d:v(Wr,i,t.d),a:t.a+1,c:t.c}}var o=r.a;return s(du,a,t,o)});return v(yt,!0,s(du,a,o,u))}),Eu=t(function(n,r){var e,u,i,o=(u=(e=r).a,i=t(function(n,r){var t=r.a,e=r.b;return M(t-1,v(Wr,M(t,n),e))}),s(Tr,i,M(u-1,y),e).b);return v(ku,t(function(r,e){return v(n,e,(u=r,i=s(rt,t(function(n,r){var t=n.a,e=n.b;return q(t,u)?r:v(Wr,e,r)}),y,o),Au(i)));var u,i}),r)}),Nu=function(n){return T(n,{aK:v(Eu,pu,n.aK),a2:n.a2+1})},_u=e(function(n,r,t){for(;;){if(r<=0)return n;n=v(Wr,t,n),r=r-1,t=t}}),qu=t(function(n,r){return s(_u,y,n,r)}),Cu=e(function(n,r,e){var u=v(qu,r,n);return s(Vr,t(function(n,r){return n(r)}),e,u)}),Ou=Ye(y),xu=t(function(n,r){switch(n.$){case 0:return M(r,Ou);case 1:var t=n.a;return M(T(r,{a7:{al:n.b,aG:t}}),Ou);case 2:return M(T(r,{a0:n.a}),Ou);case 3:var e=n.a;return M(T(r,{ap:fu({aK:Au(e),a$:!1,a2:0})}),Ou);case 4:return M(T(r,{ap:Ue}),Ou);case 5:var u=n.a,i=r.ap;if(i.$){var o=i.a,a=Pe(u/16),f=s(Cu,Nu,a,o);return M(T(r,{ap:fu(f)}),Ou)}return M(r,Ou);default:var c=r.ap;if(1===c.$){o=c.a;return M(T(r,{ap:fu(T(o,{a$:!o.a$}))}),Ou)}return M(r,Ou)}}),Lu=k([{i:{v:0,w:0},l:300,m:{r:500,s:500},n:11,q:{t:0,u:0}},{i:{v:0,w:0},l:1,m:{r:500,s:300},n:3,q:{t:1,u:.6}}]),Mu=k([{i:{v:0,w:0},l:300,m:{r:500,s:500},n:11,q:{t:0,u:0}},{i:{v:0,w:0},l:1,m:{r:500,s:300},n:3,q:{t:1.3,u:0}}]),Bu=k([{i:{v:0,w:0},l:1e3,m:{r:152,s:500},n:11,q:{t:.5,u:0}},{i:{v:0,w:0},l:1,m:{r:300,s:300},n:3,q:{t:-.5,u:.5}}]),Su=k([{i:{v:0,w:0},l:1e3,m:{r:500,s:500},n:20,q:{t:-.005,u:-1e-4}},{i:{v:0,w:0},l:30,m:{r:500,s:400},n:3,q:{t:3,u:0}},{i:{v:0,w:0},l:40,m:{r:500,s:850},n:5,q:{t:-1.7,u:0}},{i:{v:0,w:0},l:1,m:{r:700,s:350},n:1,q:{t:1,u:1.5}},{i:{v:0,w:0},l:1,m:{r:300,s:350},n:1,q:{t:1.2,u:-1.5}},{i:{v:0,w:0},l:1,m:{r:250,s:480},n:1,q:{t:.1,u:-1.8}}]),Tu={$:4},Du=function(n){return{$:3,a:n}},Fu={$:6},Wu=t(function(n,r){return O(n,r)<0?n:r}),Gu=sn,Iu=t(function(n,r){var t=v(Wu,n.aG,n.al);return Gu(r*(t/1e3))}),Ju=Gn("http://www.w3.org/2000/svg"),Ru=Ju("circle"),Hu=Ju("line"),zu=zn("cx"),Pu=zn("cy"),Uu=zn("fill"),Ku=zn("r"),Yu=zn("stroke"),Qu=zn("stroke-width"),Xu=zn("x1"),Vu=zn("x2"),Zu=zn("y1"),ni=zn("y2"),ri=e(function(n,r,t){var e=r?k([v(Hu,k([Xu(v(Iu,n,t.m.r)),Vu(v(Iu,n,t.m.r+50*t.q.t)),Zu(v(Iu,n,t.m.s)),ni(v(Iu,n,t.m.s+50*t.q.u)),Yu("yellow"),Qu("2")]),y),v(Hu,k([Xu(v(Iu,n,t.m.r)),Vu(v(Iu,n,t.m.r+1e3*t.i.v)),Zu(v(Iu,n,t.m.s)),ni(v(Iu,n,t.m.s+1e3*t.i.w)),Yu("red"),Qu("2")]),y)]):y;return F(k([v(Ru,k([Ku(v(Iu,n,t.n)),zu(v(Iu,n,t.m.r)),Pu(v(Iu,n,t.m.s)),Uu("#f7f7f7")]),y)]),e)}),ti=w,ei=t(function(n,r){var t=r.a,e=r.b,u=r.c,i=r.d,o=function(r){if(r.$){var t=r.a;return bt(v(ti,n,t))}var e=r.a;return dt(v(ti,o,e))};return l(at,t,e,v(ti,o,u),v(ti,n,i))}),ui=e(function(n,r,t){return e=Gr(v(ei,v(ri,n,r),t)),s(rt,xt,y,e);var e}),ii=t(function(n,r){var t=v(wt,n.aG,n.al);return Rt(Pe(r*(t/1e3)))}),oi=Ju("rect"),ai=zn("height"),fi=zn("width"),ci=zn("x"),vi=zn("y"),si=t(function(n,r){return v(tt,function(r){var t=r.a,e=r.b;return v(oi,k([ci(v(ii,n,t)),vi(v(ii,n,e)),fi("1"),ai("1"),Uu("#999999")]),y)},r)}),li=In("a"),bi=In("button"),di=In("div"),hi=In("h1"),gi=In("p"),$i=Wn,mi=kn,wi=t(function(n,r){return v(Hn,n,mi(r))}),pi=wi("className"),yi=Rn,Ai=t(function(n,r){return v(yi,n,{$:0,a:r})}),ji=function(n){return v(Ai,"click",ae(n))},ki=Ju("svg"),Ei=zn("class"),Ni=zn("viewBox"),_i=pr,qi=e(function(n,r,t){return{$:0,a:n,b:r,c:t}}),Ci=t(function(n,r){return{at:r,aD:n}}),Oi={$:-2},xi=Oi,Li=Hr(v(Ci,y,xi)),Mi=function(n){var r=n.a,t=n.b;return M(F(function(n){return n?"w_":"d_"}(r),t),n)},Bi=t(function(n,r){return{ai:r,an:n}}),Si=e(function(n,r,t){var e=t.a,u=t.b;return v(ut,function(n){return M(r,n)},s(Nr,e?Er:kr,u,function(t){return v(je,n,v(Bi,r,t))}))}),Ti=i(function(n,r,t,e,u){return{$:-1,a:n,b:r,c:t,d:e,e:u}}),Di=x,Fi=i(function(n,r,t,e,u){if(-1!==u.$||u.a){if(-1!==e.$||e.a||-1!==e.d.$||e.d.a)return b(Ti,n,r,t,e,u);e.a,h=e.b,g=e.c;var i=e.d,o=(i.a,i.b),a=i.c,f=i.d,c=i.e;m=e.e;return b(Ti,0,h,g,b(Ti,1,o,a,f,c),b(Ti,1,r,t,m,u))}u.a;var v=u.b,s=u.c,l=u.d,d=u.e;if(-1!==e.$||e.a)return b(Ti,n,v,s,b(Ti,0,r,t,e,l),d);e.a;var h=e.b,g=e.c,$=e.d,m=e.e;return b(Ti,0,r,t,b(Ti,1,h,g,$,m),b(Ti,1,v,s,l,d))}),Wi=e(function(n,r,t){if(-2===t.$)return b(Ti,0,n,r,Oi,Oi);var e=t.a,u=t.b,i=t.c,o=t.d,a=t.e;switch(v(Di,n,u)){case 0:return b(Fi,e,u,i,s(Wi,n,r,o),a);case 1:return b(Ti,e,u,r,o,a);default:return b(Fi,e,u,i,o,s(Wi,n,r,a))}}),Gi=e(function(n,r,t){var e=s(Wi,n,r,t);if(-1!==e.$||e.a)return e;e.a;var u=e.b,i=e.c,o=e.d,a=e.e;return b(Ti,1,u,i,o,a)}),Ii=function(n){return s(Vr,t(function(n,r){var t=n.a,e=n.b;return s(Gi,t,e,r)}),xi,n)},Ji=e(function(n,r,t){for(;;){if(-2===t.$)return r;var e=t.b,u=t.c,i=t.d,o=t.e,a=n,f=s(n,e,u,s(Ji,n,r,i));n=a,r=f,t=o}}),Ri=o(function(n,r,u,i,o,a){var f=e(function(t,e,i){n:for(;;){var o=i.a,a=i.b;if(o.b){var f=o.a,c=f.a,v=f.b,b=o.b;if(O(c,t)<0){t=t,e=e,i=M(b,s(n,c,v,a));continue n}return O(c,t)>0?M(o,s(u,t,e,a)):M(b,l(r,c,v,e,a))}return M(o,s(u,t,e,a))}}),c=s(Ji,f,M(Rr(i),a),o),v=c.a,b=c.b;return s(Vr,t(function(r,t){var e=r.a,u=r.b;return s(n,e,u,t)}),b,v)}),Hi=t(function(n,r){return s(Ji,Gi,r,n)}),zi=e(function(n,r,t){var i=e(function(r,t,e){var u=e.a,i=e.b,o=e.c;return B(u,i,v(Wr,s(Si,n,r,t),o))}),o=e(function(n,r,t){var e=t.a,u=t.b,i=t.c;return B(v(Wr,r,e),u,i)}),a=u(function(n,r,t,e){var u=e.a,i=e.b,o=e.c;return B(u,s(Gi,n,r,i),o)}),f=v(tt,Mi,r),c=d(Ri,o,a,i,t.at,Ii(f),B(y,xi,y)),l=c.a,b=c.b,h=c.c;return v(et,function(n){return Hr(v(Ci,f,v(Hi,b,Ii(n))))},v(et,function(n){return ot(h)},ot(v(tt,ke,l))))}),Pi=e(function(n,r,t){var e=n(r);if(e.$)return t;var u=e.a;return v(Wr,u,t)}),Ui=t(function(n,r){return s(rt,Pi(n),y,r)}),Ki=e(function(n,r,t){var e=r.an,u=r.ai,i=v(Ui,function(n){var r=n.a,t=n.b,i=(t.a,t.b,t.c);return q(r,e)?v(_r,i,u):Br},t.aD);return v(et,function(n){return Hr(t)},ot(v(tt,Vt(n),i)))}),Yi=t(function(n,r){var t=r.a,e=r.b,u=r.c;return s(qi,t,e,v(ie,n,u))});_n["Browser.Events"]=qn(Li,zi,Ki,0,Yi);var Qi,Xi=Ln("Browser.Events"),Vi=e(function(n,r,t){return Xi(s(qi,n,r,t))}),Zi=ln,no={$:2},ro=_i({aU:function(n){return au},a1:function(n){return Be(k([function(n){return n.ap.$?Me(xr):Se}(n),(r=ze,s(Vi,1,"resize",v(Zi,"target",s(oe,r,v(Zi,"innerWidth",no),v(Zi,"innerHeight",no)))))]));var r},a4:xu,a6:function(n){var r,t,e=n.ap;if(1===e.$){var u=e.a;return v(di,k([pi("universe--container")]),k([v(hi,y,k([$i("Luna")])),v(di,k([pi("controls")]),k([v(gi,y,k([v(bi,k([ji(Tu),pi("controls-button")]),k([$i("Quit")])),v(bi,k([ji(Fu),pi("controls-button")]),k([$i(u.a$?"Hide physics":"Show physics")]))]))])),v(ki,k([Ni("0 0 "+(Rt(n.a7.aG)+Rt(n.a7.al))),Ei("universe")]),F(k([v(oi,k([ai("100%"),fi("100%"),Yu("black"),Uu("#111111")]),y)]),F(s(ui,n.a7,u.a$,u.aK),v(si,n.a7,n.a0))))]))}return v(di,y,k([v(hi,y,k([$i("Luna")])),v(gi,y,k([v(bi,k([ji(Du(Bu)),pi("cta-button")]),k([$i("Slingshot")]))])),v(gi,y,k([v(bi,k([ji(Du(Mu)),pi("cta-button")]),k([$i("Orbit (regular)")]))])),v(gi,y,k([v(bi,k([ji(Du(Lu)),pi("cta-button")]),k([$i("Orbit (eccentric)")]))])),v(gi,y,k([v(bi,k([ji(Du(Su)),pi("cta-button")]),k([$i("Solar system")]))])),v(gi,k([pi("info-box")]),k([$i("Source code available at "),v(li,k([(r="https://github.com/adamnfish/luna",v(wi,"href",/^javascript:/i.test((t=r).replace(/\s/g,""))?"":t))]),k([$i("github.com/adamnfish/luna")]))]))]))}});Qi={Main:{init:ro(ae(0))(0)}},n.Elm?function n(r,t){for(var e in t)e in r?"init"==e?_(6):n(r[e],t[e]):r[e]=t[e]}(n.Elm,Qi):n.Elm=Qi}(this)},function(n,r,t){t(3),n.exports=t(11)},,,,,,,,function(n,r,t){},function(n,r,t){"use strict";t.r(r);t(10);var e=t(1),u=Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/));function i(n){navigator.serviceWorker.register(n).then(function(n){n.onupdatefound=function(){var r=n.installing;r.onstatechange=function(){"installed"===r.state&&(navigator.serviceWorker.controller?console.log("New content is available; please refresh."):console.log("Content is cached for offline use."))}}}).catch(function(n){console.error("Error during service worker registration:",n)})}e.Elm.Main.init({node:document.getElementById("root")}),function(){if("serviceWorker"in navigator){if(new URL("/luna",window.location).origin!==window.location.origin)return;window.addEventListener("load",function(){var n="".concat("/luna","/service-worker.js");u?function(n){fetch(n).then(function(r){404===r.status||-1===r.headers.get("content-type").indexOf("javascript")?navigator.serviceWorker.ready.then(function(n){n.unregister().then(function(){window.location.reload()})}):i(n)}).catch(function(){console.log("No internet connection found. App is running in offline mode.")})}(n):i(n)})}}()}],[[2,1,2]]]); -//# sourceMappingURL=main.7ba80f70.chunk.js.map \ No newline at end of file diff --git a/docs/static/js/main.7ba80f70.chunk.js.map b/docs/static/js/main.7ba80f70.chunk.js.map deleted file mode 100644 index 330c86f..0000000 --- a/docs/static/js/main.7ba80f70.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["Main.elm","registerServiceWorker.js","index.js"],"names":["scope","F","arity","fun","wrapper","a","f","F2","b","F3","c","F4","d","F5","e","F6","F7","g","F8","h","F9","i","A2","A3","A4","A5","A6","_JsArray_initialize","size","offset","func","result","Array","_JsArray_initializeFromList","max","ls","length","_Utils_Tuple2","_JsArray_foldl","index","array","value","acc","_JsArray_foldr","_JsArray_map","_JsArray_indexedMap","_List_Nil","from","to","slice","n","dest","source","destLen","itemsToCopy","$","_List_Cons","hd","tl","_List_cons","_List_fromArray","arr","out","_List_toArray","xs","push","_List_map2","ys","zs","ws","vs","sort","_Utils_cmp","ord","elm$core$Basics$EQ","elm$core$Basics$LT","tag","console","log","_Debug_crash","identifier","Error","_Utils_eq","x","y","pair","stack","isEqual","_Utils_eqHelp","pop","depth","key","elm$core$Dict$toList","_Utils_compare","elm$core$Basics$GT","_Utils_Tuple0","_Utils_Tuple3","_Utils_chr","_Utils_update","oldRecord","updatedFields","newRecord","_Utils_append","_Utils_ap","root","curr","_Scheduler_succeed","_Scheduler_binding","callback","_Scheduler_andThen","task","_Scheduler_onError","_Scheduler_guid","_Scheduler_rawSpawn","proc","_Scheduler_enqueue","_Scheduler_spawn","_Scheduler_rawSend","msg","_Scheduler_send","_Scheduler_working","_Scheduler_queue","shift","_Scheduler_step","rootTag","newRoot","_Basics_pow","Math","pow","modulus","answer","PI","E","cos","sin","tan","acos","asin","atan","atan2","_Basics_ceiling","ceil","_Basics_floor","floor","_Basics_round","round","_Basics_sqrt","sqrt","_Basics_log","isNaN","chr","str","string","len","word","charCodeAt","join","isGood","char","state","_String_split","sep","split","_String_join","strs","_String_slice","start","end","_String_all","_String_contains","sub","indexOf","_String_indexes","lastIndexOf","subLen","is","_String_fromNumber","number","_Json_decodeField","field","decoder","_Json_mapMany","decoders","_Json_map1","d1","_Json_map2","d2","_Json_run","d3","d4","d5","d6","d7","d8","_Json_runHelp","JSON","parse","elm$core$Result$Err","elm$json$Json$Decode$Failure","message","_Json_wrap","_Json_unwrap","elm$core$Result$Ok","_Json_expecting","isFinite","String","isArray","_Json_runArrayDecoder","_Json_toElmArray","elm$core$Result$isOk","elm$json$Json$Decode$Field","elm$json$Json$Decode$Index","keyValuePairs","hasOwnProperty","elm$core$List$reverse","errors","temp","elm$json$Json$Decode$OneOf","toElmValue","elm$core$Array$initialize","type","_Json_equality","_Json_listEquality","aDecoders","bDecoders","_Json_encode","indentLevel","stringify","object","impl","flagDecoder","debugMetadata","args","_Platform_initialize","aU","a4","a1","init","update","subscriptions","stepperBuilder","undefined","managers","model","stepper","sendToApp","ports","_Platform_effectManagers","manager","_Platform_instantiateManager","_Platform_setupEffects","viewMetadata","_Platform_dispatchEffects","_Platform_createManager","onEffects","onSelfMsg","cmdMap","subMap","info","router","loop","j","_Platform_sendToApp","_Platform_sendToSelf","_Platform_leaf","home","k","l","_Platform_batch","list","m","tagger","bag","o","cmdBag","subBag","effectsDict","_Platform_gatherEffects","isCmd","taggers","effect","q","p","_Platform_toEffect","newEffect","effects","_Platform_insert","_VirtualDom_divertHrefToApp","finalTagger","_VirtualDom_doc","document","_VirtualDom_appendChild","parent","child","appendChild","virtualNode","node","parentNode","replaceChild","_VirtualDom_render","_VirtualDom_text","_VirtualDom_nodeNS","namespace","factList","kidList","kids","descendantsCount","kid","_VirtualDom_organizeFacts","_VirtualDom_node","_VirtualDom_keyedNodeNS","_VirtualDom_thunk","refs","thunk","A7","A8","_VirtualDom_on","handler","_VirtualDom_property","_VirtualDom_attribute","attr","elm$virtual_dom$VirtualDom$toHandlerInt","elm$json$Json$Decode$map2","_VirtualDom_mapEventTuple","_VirtualDom_mapEventRecord","elm$json$Json$Decode$succeed","elm$json$Json$Decode$map","_VirtualDom_mapHandler","_VirtualDom_passiveSupported","tuple","record","B","ad","ab","facts","entry","subFacts","_VirtualDom_addClass","newClass","classes","vNode","eventNode","createTextNode","subNode","subEventRoot","domNode","elm_event_node_ref","_VirtualDom_applyFacts","createElementNS","createElement","addEventListener","_VirtualDom_applyStyles","_VirtualDom_applyEvents","_VirtualDom_applyAttrs","_VirtualDom_applyAttrsNS","styles","domNodeStyle","style","attrs","setAttribute","removeAttribute","nsAttrs","setAttributeNS","removeAttributeNS","events","allCallbacks","elmFs","newHandler","oldCallback","removeEventListener","_VirtualDom_makeCallback","passive","window","Object","defineProperty","get","initialHandler","event","stopPropagation","currentEventNode","preventDefault","_VirtualDom_equalEvents","_VirtualDom_diff","patches","_VirtualDom_diffHelp","_VirtualDom_pushPatch","data","patch","r","s","t","u","xType","yType","keyedNode","keyedKids","_VirtualDom_dekey","xRefs","yRefs","same","subPatches","xTaggers","yTaggers","nesting","xSubNode","ySubNode","as","bs","_VirtualDom_pairwiseRefEqual","_VirtualDom_diffNodes","_VirtualDom_diffKids","_VirtualDom_diffKeyedKids","factsDiff","_VirtualDom_diffFacts","diffKids","category","diff","xKey","xValue","yValue","subDiff","yKey","xParent","yParent","xKids","yKids","xLen","yLen","v","minLen","xKid","rootIndex","localPatches","changes","inserts","xIndex","yIndex","xNode","yNode","xNext","yNext","xNextKey","xNextNode","oldMatch","yNextKey","yNextNode","newMatch","_VirtualDom_insertNode","_VirtualDom_removeNode","endInserts","w","_VirtualDom_POSTFIX","vnode","z","A","_VirtualDom_addDomNodes","_VirtualDom_addDomNodesHelp","low","high","patchType","vKids","childNodes","vKid","nextLow","_VirtualDom_applyPatches","rootDomNode","oldVirtualNode","_VirtualDom_applyPatchesHelp","localDomNode","newNode","_VirtualDom_applyPatch","_VirtualDom_applyPatchRedraw","replaceData","removeChild","theEnd","insertBefore","frag","createDocumentFragment","insert","_VirtualDom_applyPatchReorderEndInsertsHelp","_VirtualDom_applyPatchReorder","_VirtualDom_virtualize","nodeType","textContent","attrList","attributes","name","tagName","toLowerCase","_Browser_element","initialModel","view","a6","currNode","_Browser_makeAnimator","nextNode","_Browser_requestAnimationFrame","divertHrefToApp","S","title","bodyNode","body","doc","aL","a3","requestAnimationFrame","setTimeout","draw","updateIfNeeded","nextModel","isSync","elm$core$Task$perform","elm$core$Basics$never","history","go","url","pushState","replaceState","_Browser_fakeNode","_Browser_doc","_Browser_window","_Browser_on","eventName","sendToSelf","_Browser_decodeEvent","elm$core$Maybe$Just","elm$core$Maybe$Nothing","_Browser_withNode","id","doStuff","getElementById","elm$browser$Browser$Dom$NotFound","_Browser_withWindow","functionName","_Browser_getScene","elem","documentElement","aG","scrollWidth","offsetWidth","clientWidth","al","scrollHeight","offsetHeight","clientHeight","scroll","scrollLeft","scrollTop","interval","setInterval","clearInterval","author$project$Msg$Tick","elm$browser$Browser$AnimationManager$Delta","elm$browser$Browser$AnimationManager$State","subs","request","oldTime","aa","aA","aD","elm$core$Elm$JsArray$foldr","elm$core$Array$foldr","baseCase","_n0","tree","tail","helper","values","subTree","elm$core$List$cons","elm$core$Array$toList","elm$core$Dict$foldr","left","right","$temp$func","$temp$acc","dict","elm$core$Task$succeed","elm$browser$Browser$AnimationManager$init","elm$core$Basics$identity","elm$core$Task$init","elm$core$List$foldl","elm$core$List$foldrHelper","fn","ctr","r1","r2","r3","r4","elm$core$List$foldr","elm$core$List$map","elm$core$Task$andThen","elm$core$Task$map","taskA","elm$core$Task$map2","taskB","elm$core$Task$sequence","tasks","elm$core$Array$Array_elm_builtin","elm$core$Basics$ceiling","elm$core$Basics$logBase","base","elm$core$Array$shiftStep","elm$core$Elm$JsArray$empty","elm$core$Array$empty","elm$core$Array$Leaf","elm$core$Array$SubTree","elm$core$Elm$JsArray$initializeFromList","elm$core$Array$compressNodes","nodes","remainingNodes","newAcc","elm$core$Array$treeFromBuilder","nodeList","nodeListSize","newNodeSize","elm$core$Basics$floor","elm$core$Basics$max","elm$core$Elm$JsArray$length","elm$core$Array$builderToArray","reverseNodeList","builder","treeLen","correctNodeList","elm$core$Elm$JsArray$initialize","elm$core$Array$initializeHelp","fromIndex","leaf","tailLen","elm$core$Basics$append","elm$core$Char$toCode","code","elm$core$Char$isLower","_char","elm$core$Char$isUpper","elm$core$Char$isAlpha","elm$core$Char$isAlphaNum","elm$core$Char$isDigit","elm$core$List$length","elm$core$List$map2","elm$core$List$rangeHelp","lo","hi","$temp$lo","$temp$hi","$temp$list","elm$core$List$range","elm$core$List$indexedMap","elm$core$String$all","elm$core$String$fromInt","elm$core$String$join","chunks","elm$core$String$uncons","elm$core$String$split","elm$json$Json$Decode$indent","elm$json$Json$Encode$encode","elm$json$Json$Decode$errorOneOf","error","elm$json$Json$Decode$errorToString","elm$json$Json$Decode$errorToStringHelp","context","errorToStringHelp","err","isSimple","_n1","_n2","rest","$temp$error","$temp$context","indexName","introduction","json","elm$core$Platform$sendToApp","elm$core$Task$spawnCmd","elm$core$Task$onEffects","commands","elm$core$Task$onSelfMsg","elm$core$Task$cmdMap","elm$core$Task$command","toMessage","elm$core$String$length","elm$core$String$slice","elm$core$String$dropLeft","elm$core$String$indexes","elm$core$String$isEmpty","elm$core$String$left","elm$core$String$contains","elm$core$String$toInt","total","code0","elm$url$Url$Url","protocol","host","port_","path","query","fragment","aj","am","au","ax","ay","elm$url$Url$chompBeforePath","params","elm$url$Url$chompBeforeQuery","elm$url$Url$chompBeforeFragment","elm$browser$Browser$AnimationManager$now","Date","now","elm$browser$Browser$AnimationManager$rAF","cancelAnimationFrame","elm$core$Platform$sendToSelf","elm$core$Process$kill","elm$core$Process$spawn","elm$browser$Browser$AnimationManager$onEffects","pid","time","_n3","elm$time$Time$millisToPosix","elm$browser$Browser$AnimationManager$onSelfMsg","newTime","send","elm$core$Basics$composeL","elm$browser$Browser$AnimationManager$subMap","millisToPosix","elm$browser$Browser$AnimationManager$subscription","elm$browser$Browser$Events$onAnimationFrameDelta","elm$core$Platform$Sub$batch","elm$core$Platform$Sub$none","elm$random$Random$Seed","elm$random$Random$next","state0","incr","elm$random$Random$peel","elm$random$Random$float","seed0","seed1","range","n1","elm$random$Random$listHelp","revList","gen","seed","newSeed","elm$random$Random$list","elm$random$Random$map2","genA","genB","seed2","author$project$Main$starField","author$project$Msg$NoOp","author$project$Msg$ResizeWindow","elm$core$Basics$round","author$project$Model$Welcome","elm$browser$Browser$Dom$getViewport","aC","aF","pageXOffset","pageYOffset","elm$core$Platform$Cmd$batch","elm$core$Task$onError","elm$core$Task$attempt","resultToMessage","elm$time$Time$now","elm$random$Random$init","state1","elm$random$Random$initialSeed","elm$random$Random$step","elm$random$Random$onEffects","generator","elm$random$Random$onSelfMsg","elm$random$Random$map","elm$random$Random$cmdMap","elm$random$Random$command","elm$random$Random$generate","author$project$Main$init","ap","a0","a7","res","viewport","author$project$Model$Run","author$project$Physics$fma","force","author$project$Physics$addAcceleration","a2","elm$core$Basics$pow","elm$core$Basics$sqrt","author$project$Physics$distanceBetween","p1","p2","elm$core$Elm$JsArray$foldl","elm$core$Array$foldl","author$project$Physics$forceDueToGravity","otherBodies","combine","otherBody","accumulatedAcceleration","yDistance","xDistance","distance","accelerationMagnitude","author$project$Physics$accelerationDueToGravity","author$project$Physics$applyAcceleration","acceleration","velocity","author$project$Physics$applyVelocity","position","author$project$Physics$advanceBody","currentAcceleration","newVelocity","elm$core$Array$fromListHelp","jsArray","remainingItems","elm$core$Array$fromList","elm$core$Elm$JsArray$indexedMap","elm$core$Array$indexedMap","initialBuilder","elm$core$Array$tailIndex","mappedLeaf","author$project$Utils$arrMapWithOthers","els","excludeIndex","otherEls","author$project$Physics$advanceUniverse","prevUniverse","aK","elm$core$List$repeatHelp","elm$core$List$repeat","author$project$Utils$repeatFn","fns","fni","ai","elm$core$Platform$Cmd$none","author$project$Msg$update","bodies","a$","δt","universe","δms","newUniverse","author$project$Examples$eccentricOrbit","author$project$Examples$orbit","author$project$Examples$slingshot","author$project$Examples$solarSystem","author$project$Msg$Apocalypse","author$project$Msg$Genesis","author$project$Msg$TogglePhysics","elm$core$Basics$min","elm$core$String$fromFloat","author$project$View$scaleDimension","coord","minDimension","elm$svg$Svg$trustedNode","elm$svg$Svg$circle","elm$svg$Svg$line","elm$svg$Svg$Attributes$cx","elm$svg$Svg$Attributes$cy","elm$svg$Svg$Attributes$fill","elm$svg$Svg$Attributes$r","elm$svg$Svg$Attributes$stroke","elm$svg$Svg$Attributes$strokeWidth","elm$svg$Svg$Attributes$x1","elm$svg$Svg$Attributes$x2","elm$svg$Svg$Attributes$y1","elm$svg$Svg$Attributes$y2","author$project$View$bodyEl","showPhysics","physics","elm$core$Elm$JsArray$map","elm$core$Array$map","startShift","author$project$View$bodyEls","author$project$View$stretchDimension","maxDimension","elm$svg$Svg$rect","elm$svg$Svg$Attributes$height","elm$svg$Svg$Attributes$width","elm$svg$Svg$Attributes$x","elm$svg$Svg$Attributes$y","author$project$View$displayStars","stars","starX","starY","elm$html$Html$a","elm$html$Html$button","elm$html$Html$div","elm$html$Html$h1","elm$html$Html$p","elm$html$Html$text","elm$json$Json$Encode$string","elm$html$Html$Attributes$stringProperty","elm$html$Html$Attributes$class","elm$virtual_dom$VirtualDom$on","elm$html$Html$Events$on","elm$html$Html$Events$onClick","elm$svg$Svg$svg","elm$svg$Svg$Attributes$class","elm$svg$Svg$Attributes$viewBox","elm$browser$Browser$element","elm$browser$Browser$Events$MySub","elm$browser$Browser$Events$State","pids","at","elm$core$Dict$RBEmpty_elm_builtin","elm$core$Dict$empty","elm$browser$Browser$Events$init","elm$browser$Browser$Events$addKey","elm$browser$Browser$Events$nodeToKey","elm$browser$Browser$Events$Event","an","elm$browser$Browser$Events$spawn","elm$core$Dict$RBNode_elm_builtin","elm$core$Basics$compare","elm$core$Dict$balance","color","lK","lV","_n6","llK","llV","llLeft","llRight","lRight","rK","rV","rLeft","rRight","lLeft","elm$core$Dict$insertHelp","nColor","nKey","nValue","nLeft","nRight","elm$core$Dict$insert","elm$core$Dict$fromList","assocs","elm$core$Dict$foldl","elm$core$Dict$merge","leftStep","bothStep","rightStep","leftDict","rightDict","initialResult","stepState","rKey","rValue","lKey","lValue","leftovers","intermediateResult","_n4","elm$core$Dict$union","t1","t2","elm$browser$Browser$Events$onEffects","stepRight","deads","lives","news","stepLeft","_n5","stepBoth","newSubs","deadPids","livePids","makeNewPids","elm$core$List$maybeCons","mx","elm$core$List$filterMap","elm$browser$Browser$Events$onSelfMsg","messages","subKey","elm$browser$Browser$Events$subMap","exports","elm$browser$Browser$Events$subscription","elm$browser$Browser$Events$on","elm$json$Json$Decode$field","elm$json$Json$Decode$int","author$project$Main$main","author$project$Main$animationTick","test","replace","Main","_Platform_mergeExportsProd","obj","this","isLocalhost","Boolean","registerValidSW","swUrl","navigator","registration","installingWorker","installing","controller","Elm","URL","process","location","publicUrl","origin","concat","fetch","response","checkValidServiceWorker","registerServiceWorker"],"mappings":"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","file":"static/js/main.7ba80f70.chunk.js","sourcesContent":["(function(scope){\n'use strict';\n\nfunction F(arity, fun, wrapper) {\n wrapper.a = arity;\n wrapper.f = fun;\n return wrapper;\n}\n\nfunction F2(fun) {\n return F(2, fun, function(a) { return function(b) { return fun(a,b); }; })\n}\nfunction F3(fun) {\n return F(3, fun, function(a) {\n return function(b) { return function(c) { return fun(a, b, c); }; };\n });\n}\nfunction F4(fun) {\n return F(4, fun, function(a) { return function(b) { return function(c) {\n return function(d) { return fun(a, b, c, d); }; }; };\n });\n}\nfunction F5(fun) {\n return F(5, fun, function(a) { return function(b) { return function(c) {\n return function(d) { return function(e) { return fun(a, b, c, d, e); }; }; }; };\n });\n}\nfunction F6(fun) {\n return F(6, fun, function(a) { return function(b) { return function(c) {\n return function(d) { return function(e) { return function(f) {\n return fun(a, b, c, d, e, f); }; }; }; }; };\n });\n}\nfunction F7(fun) {\n return F(7, fun, function(a) { return function(b) { return function(c) {\n return function(d) { return function(e) { return function(f) {\n return function(g) { return fun(a, b, c, d, e, f, g); }; }; }; }; }; };\n });\n}\nfunction F8(fun) {\n return F(8, fun, function(a) { return function(b) { return function(c) {\n return function(d) { return function(e) { return function(f) {\n return function(g) { return function(h) {\n return fun(a, b, c, d, e, f, g, h); }; }; }; }; }; }; };\n });\n}\nfunction F9(fun) {\n return F(9, fun, function(a) { return function(b) { return function(c) {\n return function(d) { return function(e) { return function(f) {\n return function(g) { return function(h) { return function(i) {\n return fun(a, b, c, d, e, f, g, h, i); }; }; }; }; }; }; }; };\n });\n}\n\nfunction A2(fun, a, b) {\n return fun.a === 2 ? fun.f(a, b) : fun(a)(b);\n}\nfunction A3(fun, a, b, c) {\n return fun.a === 3 ? fun.f(a, b, c) : fun(a)(b)(c);\n}\nfunction A4(fun, a, b, c, d) {\n return fun.a === 4 ? fun.f(a, b, c, d) : fun(a)(b)(c)(d);\n}\nfunction A5(fun, a, b, c, d, e) {\n return fun.a === 5 ? fun.f(a, b, c, d, e) : fun(a)(b)(c)(d)(e);\n}\nfunction A6(fun, a, b, c, d, e, f) {\n return fun.a === 6 ? fun.f(a, b, c, d, e, f) : fun(a)(b)(c)(d)(e)(f);\n}\nfunction A7(fun, a, b, c, d, e, f, g) {\n return fun.a === 7 ? fun.f(a, b, c, d, e, f, g) : fun(a)(b)(c)(d)(e)(f)(g);\n}\nfunction A8(fun, a, b, c, d, e, f, g, h) {\n return fun.a === 8 ? fun.f(a, b, c, d, e, f, g, h) : fun(a)(b)(c)(d)(e)(f)(g)(h);\n}\nfunction A9(fun, a, b, c, d, e, f, g, h, i) {\n return fun.a === 9 ? fun.f(a, b, c, d, e, f, g, h, i) : fun(a)(b)(c)(d)(e)(f)(g)(h)(i);\n}\n\n\n\n\nvar _JsArray_empty = [];\n\nfunction _JsArray_singleton(value)\n{\n return [value];\n}\n\nfunction _JsArray_length(array)\n{\n return array.length;\n}\n\nvar _JsArray_initialize = F3(function(size, offset, func)\n{\n var result = new Array(size);\n\n for (var i = 0; i < size; i++)\n {\n result[i] = func(offset + i);\n }\n\n return result;\n});\n\nvar _JsArray_initializeFromList = F2(function (max, ls)\n{\n var result = new Array(max);\n\n for (var i = 0; i < max && ls.b; i++)\n {\n result[i] = ls.a;\n ls = ls.b;\n }\n\n result.length = i;\n return _Utils_Tuple2(result, ls);\n});\n\nvar _JsArray_unsafeGet = F2(function(index, array)\n{\n return array[index];\n});\n\nvar _JsArray_unsafeSet = F3(function(index, value, array)\n{\n var length = array.length;\n var result = new Array(length);\n\n for (var i = 0; i < length; i++)\n {\n result[i] = array[i];\n }\n\n result[index] = value;\n return result;\n});\n\nvar _JsArray_push = F2(function(value, array)\n{\n var length = array.length;\n var result = new Array(length + 1);\n\n for (var i = 0; i < length; i++)\n {\n result[i] = array[i];\n }\n\n result[length] = value;\n return result;\n});\n\nvar _JsArray_foldl = F3(function(func, acc, array)\n{\n var length = array.length;\n\n for (var i = 0; i < length; i++)\n {\n acc = A2(func, array[i], acc);\n }\n\n return acc;\n});\n\nvar _JsArray_foldr = F3(function(func, acc, array)\n{\n for (var i = array.length - 1; i >= 0; i--)\n {\n acc = A2(func, array[i], acc);\n }\n\n return acc;\n});\n\nvar _JsArray_map = F2(function(func, array)\n{\n var length = array.length;\n var result = new Array(length);\n\n for (var i = 0; i < length; i++)\n {\n result[i] = func(array[i]);\n }\n\n return result;\n});\n\nvar _JsArray_indexedMap = F3(function(func, offset, array)\n{\n var length = array.length;\n var result = new Array(length);\n\n for (var i = 0; i < length; i++)\n {\n result[i] = A2(func, offset + i, array[i]);\n }\n\n return result;\n});\n\nvar _JsArray_slice = F3(function(from, to, array)\n{\n return array.slice(from, to);\n});\n\nvar _JsArray_appendN = F3(function(n, dest, source)\n{\n var destLen = dest.length;\n var itemsToCopy = n - destLen;\n\n if (itemsToCopy > source.length)\n {\n itemsToCopy = source.length;\n }\n\n var size = destLen + itemsToCopy;\n var result = new Array(size);\n\n for (var i = 0; i < destLen; i++)\n {\n result[i] = dest[i];\n }\n\n for (var i = 0; i < itemsToCopy; i++)\n {\n result[i + destLen] = source[i];\n }\n\n return result;\n});\n\n\n\nvar _List_Nil = { $: 0 };\nvar _List_Nil_UNUSED = { $: '[]' };\n\nfunction _List_Cons(hd, tl) { return { $: 1, a: hd, b: tl }; }\nfunction _List_Cons_UNUSED(hd, tl) { return { $: '::', a: hd, b: tl }; }\n\n\nvar _List_cons = F2(_List_Cons);\n\nfunction _List_fromArray(arr)\n{\n\tvar out = _List_Nil;\n\tfor (var i = arr.length; i--; )\n\t{\n\t\tout = _List_Cons(arr[i], out);\n\t}\n\treturn out;\n}\n\nfunction _List_toArray(xs)\n{\n\tfor (var out = []; xs.b; xs = xs.b) // WHILE_CONS\n\t{\n\t\tout.push(xs.a);\n\t}\n\treturn out;\n}\n\nvar _List_map2 = F3(function(f, xs, ys)\n{\n\tfor (var arr = []; xs.b && ys.b; xs = xs.b, ys = ys.b) // WHILE_CONSES\n\t{\n\t\tarr.push(A2(f, xs.a, ys.a));\n\t}\n\treturn _List_fromArray(arr);\n});\n\nvar _List_map3 = F4(function(f, xs, ys, zs)\n{\n\tfor (var arr = []; xs.b && ys.b && zs.b; xs = xs.b, ys = ys.b, zs = zs.b) // WHILE_CONSES\n\t{\n\t\tarr.push(A3(f, xs.a, ys.a, zs.a));\n\t}\n\treturn _List_fromArray(arr);\n});\n\nvar _List_map4 = F5(function(f, ws, xs, ys, zs)\n{\n\tfor (var arr = []; ws.b && xs.b && ys.b && zs.b; ws = ws.b, xs = xs.b, ys = ys.b, zs = zs.b) // WHILE_CONSES\n\t{\n\t\tarr.push(A4(f, ws.a, xs.a, ys.a, zs.a));\n\t}\n\treturn _List_fromArray(arr);\n});\n\nvar _List_map5 = F6(function(f, vs, ws, xs, ys, zs)\n{\n\tfor (var arr = []; vs.b && ws.b && xs.b && ys.b && zs.b; vs = vs.b, ws = ws.b, xs = xs.b, ys = ys.b, zs = zs.b) // WHILE_CONSES\n\t{\n\t\tarr.push(A5(f, vs.a, ws.a, xs.a, ys.a, zs.a));\n\t}\n\treturn _List_fromArray(arr);\n});\n\nvar _List_sortBy = F2(function(f, xs)\n{\n\treturn _List_fromArray(_List_toArray(xs).sort(function(a, b) {\n\t\treturn _Utils_cmp(f(a), f(b));\n\t}));\n});\n\nvar _List_sortWith = F2(function(f, xs)\n{\n\treturn _List_fromArray(_List_toArray(xs).sort(function(a, b) {\n\t\tvar ord = A2(f, a, b);\n\t\treturn ord === elm$core$Basics$EQ ? 0 : ord === elm$core$Basics$LT ? -1 : 1;\n\t}));\n});\n\n\n\n// LOG\n\nvar _Debug_log = F2(function(tag, value)\n{\n\treturn value;\n});\n\nvar _Debug_log_UNUSED = F2(function(tag, value)\n{\n\tconsole.log(tag + ': ' + _Debug_toString(value));\n\treturn value;\n});\n\n\n// TODOS\n\nfunction _Debug_todo(moduleName, region)\n{\n\treturn function(message) {\n\t\t_Debug_crash(8, moduleName, region, message);\n\t};\n}\n\nfunction _Debug_todoCase(moduleName, region, value)\n{\n\treturn function(message) {\n\t\t_Debug_crash(9, moduleName, region, value, message);\n\t};\n}\n\n\n// TO STRING\n\nfunction _Debug_toString(value)\n{\n\treturn '';\n}\n\nfunction _Debug_toString_UNUSED(value)\n{\n\treturn _Debug_toAnsiString(false, value);\n}\n\nfunction _Debug_toAnsiString(ansi, value)\n{\n\tif (typeof value === 'function')\n\t{\n\t\treturn _Debug_internalColor(ansi, '');\n\t}\n\n\tif (typeof value === 'boolean')\n\t{\n\t\treturn _Debug_ctorColor(ansi, value ? 'True' : 'False');\n\t}\n\n\tif (typeof value === 'number')\n\t{\n\t\treturn _Debug_numberColor(ansi, value + '');\n\t}\n\n\tif (value instanceof String)\n\t{\n\t\treturn _Debug_charColor(ansi, \"'\" + _Debug_addSlashes(value, true) + \"'\");\n\t}\n\n\tif (typeof value === 'string')\n\t{\n\t\treturn _Debug_stringColor(ansi, '\"' + _Debug_addSlashes(value, false) + '\"');\n\t}\n\n\tif (typeof value === 'object' && '$' in value)\n\t{\n\t\tvar tag = value.$;\n\n\t\tif (typeof tag === 'number')\n\t\t{\n\t\t\treturn _Debug_internalColor(ansi, '');\n\t\t}\n\n\t\tif (tag[0] === '#')\n\t\t{\n\t\t\tvar output = [];\n\t\t\tfor (var k in value)\n\t\t\t{\n\t\t\t\tif (k === '$') continue;\n\t\t\t\toutput.push(_Debug_toAnsiString(ansi, value[k]));\n\t\t\t}\n\t\t\treturn '(' + output.join(',') + ')';\n\t\t}\n\n\t\tif (tag === 'Set_elm_builtin')\n\t\t{\n\t\t\treturn _Debug_ctorColor(ansi, 'Set')\n\t\t\t\t+ _Debug_fadeColor(ansi, '.fromList') + ' '\n\t\t\t\t+ _Debug_toAnsiString(ansi, elm$core$Set$toList(value));\n\t\t}\n\n\t\tif (tag === 'RBNode_elm_builtin' || tag === 'RBEmpty_elm_builtin')\n\t\t{\n\t\t\treturn _Debug_ctorColor(ansi, 'Dict')\n\t\t\t\t+ _Debug_fadeColor(ansi, '.fromList') + ' '\n\t\t\t\t+ _Debug_toAnsiString(ansi, elm$core$Dict$toList(value));\n\t\t}\n\n\t\tif (tag === 'Array_elm_builtin')\n\t\t{\n\t\t\treturn _Debug_ctorColor(ansi, 'Array')\n\t\t\t\t+ _Debug_fadeColor(ansi, '.fromList') + ' '\n\t\t\t\t+ _Debug_toAnsiString(ansi, elm$core$Array$toList(value));\n\t\t}\n\n\t\tif (tag === '::' || tag === '[]')\n\t\t{\n\t\t\tvar output = '[';\n\n\t\t\tvalue.b && (output += _Debug_toAnsiString(ansi, value.a), value = value.b)\n\n\t\t\tfor (; value.b; value = value.b) // WHILE_CONS\n\t\t\t{\n\t\t\t\toutput += ',' + _Debug_toAnsiString(ansi, value.a);\n\t\t\t}\n\t\t\treturn output + ']';\n\t\t}\n\n\t\tvar output = '';\n\t\tfor (var i in value)\n\t\t{\n\t\t\tif (i === '$') continue;\n\t\t\tvar str = _Debug_toAnsiString(ansi, value[i]);\n\t\t\tvar c0 = str[0];\n\t\t\tvar parenless = c0 === '{' || c0 === '(' || c0 === '[' || c0 === '<' || c0 === '\"' || str.indexOf(' ') < 0;\n\t\t\toutput += ' ' + (parenless ? str : '(' + str + ')');\n\t\t}\n\t\treturn _Debug_ctorColor(ansi, tag) + output;\n\t}\n\n\tif (typeof value === 'object')\n\t{\n\t\tvar output = [];\n\t\tfor (var key in value)\n\t\t{\n\t\t\tvar field = key[0] === '_' ? key.slice(1) : key;\n\t\t\toutput.push(_Debug_fadeColor(ansi, field) + ' = ' + _Debug_toAnsiString(ansi, value[key]));\n\t\t}\n\t\tif (output.length === 0)\n\t\t{\n\t\t\treturn '{}';\n\t\t}\n\t\treturn '{ ' + output.join(', ') + ' }';\n\t}\n\n\treturn _Debug_internalColor(ansi, '');\n}\n\nfunction _Debug_addSlashes(str, isChar)\n{\n\tvar s = str\n\t\t.replace(/\\\\/g, '\\\\\\\\')\n\t\t.replace(/\\n/g, '\\\\n')\n\t\t.replace(/\\t/g, '\\\\t')\n\t\t.replace(/\\r/g, '\\\\r')\n\t\t.replace(/\\v/g, '\\\\v')\n\t\t.replace(/\\0/g, '\\\\0');\n\n\tif (isChar)\n\t{\n\t\treturn s.replace(/\\'/g, '\\\\\\'');\n\t}\n\telse\n\t{\n\t\treturn s.replace(/\\\"/g, '\\\\\"');\n\t}\n}\n\nfunction _Debug_ctorColor(ansi, string)\n{\n\treturn ansi ? '\\x1b[96m' + string + '\\x1b[0m' : string;\n}\n\nfunction _Debug_numberColor(ansi, string)\n{\n\treturn ansi ? '\\x1b[95m' + string + '\\x1b[0m' : string;\n}\n\nfunction _Debug_stringColor(ansi, string)\n{\n\treturn ansi ? '\\x1b[93m' + string + '\\x1b[0m' : string;\n}\n\nfunction _Debug_charColor(ansi, string)\n{\n\treturn ansi ? '\\x1b[92m' + string + '\\x1b[0m' : string;\n}\n\nfunction _Debug_fadeColor(ansi, string)\n{\n\treturn ansi ? '\\x1b[37m' + string + '\\x1b[0m' : string;\n}\n\nfunction _Debug_internalColor(ansi, string)\n{\n\treturn ansi ? '\\x1b[94m' + string + '\\x1b[0m' : string;\n}\n\n\n\n// CRASH\n\n\nfunction _Debug_crash(identifier)\n{\n\tthrow new Error('https://github.com/elm/core/blob/1.0.0/hints/' + identifier + '.md');\n}\n\n\nfunction _Debug_crash_UNUSED(identifier, fact1, fact2, fact3, fact4)\n{\n\tswitch(identifier)\n\t{\n\t\tcase 0:\n\t\t\tthrow new Error('What node should I take over? In JavaScript I need something like:\\n\\n Elm.Main.init({\\n node: document.getElementById(\"elm-node\")\\n })\\n\\nYou need to do this with any Browser.sandbox or Browser.element program.');\n\n\t\tcase 1:\n\t\t\tthrow new Error('Browser.application programs cannot handle URLs like this:\\n\\n ' + document.location.href + '\\n\\nWhat is the root? The root of your file system? Try looking at this program with `elm reactor` or some other server.');\n\n\t\tcase 2:\n\t\t\tvar jsonErrorString = fact1;\n\t\t\tthrow new Error('Problem with the flags given to your Elm program on initialization.\\n\\n' + jsonErrorString);\n\n\t\tcase 3:\n\t\t\tvar portName = fact1;\n\t\t\tthrow new Error('There can only be one port named `' + portName + '`, but your program has multiple.');\n\n\t\tcase 4:\n\t\t\tvar portName = fact1;\n\t\t\tvar problem = fact2;\n\t\t\tthrow new Error('Trying to send an unexpected type of value through port `' + portName + '`:\\n' + problem);\n\n\t\tcase 5:\n\t\t\tthrow new Error('Trying to use `(==)` on functions.\\nThere is no way to know if functions are \"the same\" in the Elm sense.\\nRead more about this at https://package.elm-lang.org/packages/elm/core/latest/Basics#== which describes why it is this way and what the better version will look like.');\n\n\t\tcase 6:\n\t\t\tvar moduleName = fact1;\n\t\t\tthrow new Error('Your page is loading multiple Elm scripts with a module named ' + moduleName + '. Maybe a duplicate script is getting loaded accidentally? If not, rename one of them so I know which is which!');\n\n\t\tcase 8:\n\t\t\tvar moduleName = fact1;\n\t\t\tvar region = fact2;\n\t\t\tvar message = fact3;\n\t\t\tthrow new Error('TODO in module `' + moduleName + '` ' + _Debug_regionToString(region) + '\\n\\n' + message);\n\n\t\tcase 9:\n\t\t\tvar moduleName = fact1;\n\t\t\tvar region = fact2;\n\t\t\tvar value = fact3;\n\t\t\tvar message = fact4;\n\t\t\tthrow new Error(\n\t\t\t\t'TODO in module `' + moduleName + '` from the `case` expression '\n\t\t\t\t+ _Debug_regionToString(region) + '\\n\\nIt received the following value:\\n\\n '\n\t\t\t\t+ _Debug_toString(value).replace('\\n', '\\n ')\n\t\t\t\t+ '\\n\\nBut the branch that handles it says:\\n\\n ' + message.replace('\\n', '\\n ')\n\t\t\t);\n\n\t\tcase 10:\n\t\t\tthrow new Error('Bug in https://github.com/elm/virtual-dom/issues');\n\n\t\tcase 11:\n\t\t\tthrow new Error('Cannot perform mod 0. Division by zero error.');\n\t}\n}\n\nfunction _Debug_regionToString(region)\n{\n\tif (region.ac.P === region.ah.P)\n\t{\n\t\treturn 'on line ' + region.ac.P;\n\t}\n\treturn 'on lines ' + region.ac.P + ' through ' + region.ah.P;\n}\n\n\n\n// EQUALITY\n\nfunction _Utils_eq(x, y)\n{\n\tfor (\n\t\tvar pair, stack = [], isEqual = _Utils_eqHelp(x, y, 0, stack);\n\t\tisEqual && (pair = stack.pop());\n\t\tisEqual = _Utils_eqHelp(pair.a, pair.b, 0, stack)\n\t\t)\n\t{}\n\n\treturn isEqual;\n}\n\nfunction _Utils_eqHelp(x, y, depth, stack)\n{\n\tif (depth > 100)\n\t{\n\t\tstack.push(_Utils_Tuple2(x,y));\n\t\treturn true;\n\t}\n\n\tif (x === y)\n\t{\n\t\treturn true;\n\t}\n\n\tif (typeof x !== 'object' || x === null || y === null)\n\t{\n\t\ttypeof x === 'function' && _Debug_crash(5);\n\t\treturn false;\n\t}\n\n\t/**_UNUSED/\n\tif (x.$ === 'Set_elm_builtin')\n\t{\n\t\tx = elm$core$Set$toList(x);\n\t\ty = elm$core$Set$toList(y);\n\t}\n\tif (x.$ === 'RBNode_elm_builtin' || x.$ === 'RBEmpty_elm_builtin')\n\t{\n\t\tx = elm$core$Dict$toList(x);\n\t\ty = elm$core$Dict$toList(y);\n\t}\n\t//*/\n\n\t/**/\n\tif (x.$ < 0)\n\t{\n\t\tx = elm$core$Dict$toList(x);\n\t\ty = elm$core$Dict$toList(y);\n\t}\n\t//*/\n\n\tfor (var key in x)\n\t{\n\t\tif (!_Utils_eqHelp(x[key], y[key], depth + 1, stack))\n\t\t{\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\n\nvar _Utils_equal = F2(_Utils_eq);\nvar _Utils_notEqual = F2(function(a, b) { return !_Utils_eq(a,b); });\n\n\n\n// COMPARISONS\n\n// Code in Generate/JavaScript.hs, Basics.js, and List.js depends on\n// the particular integer values assigned to LT, EQ, and GT.\n\nfunction _Utils_cmp(x, y, ord)\n{\n\tif (typeof x !== 'object')\n\t{\n\t\treturn x === y ? /*EQ*/ 0 : x < y ? /*LT*/ -1 : /*GT*/ 1;\n\t}\n\n\t/**_UNUSED/\n\tif (x instanceof String)\n\t{\n\t\tvar a = x.valueOf();\n\t\tvar b = y.valueOf();\n\t\treturn a === b ? 0 : a < b ? -1 : 1;\n\t}\n\t//*/\n\n\t/**/\n\tif (!x.$)\n\t//*/\n\t/**_UNUSED/\n\tif (x.$[0] === '#')\n\t//*/\n\t{\n\t\treturn (ord = _Utils_cmp(x.a, y.a))\n\t\t\t? ord\n\t\t\t: (ord = _Utils_cmp(x.b, y.b))\n\t\t\t\t? ord\n\t\t\t\t: _Utils_cmp(x.c, y.c);\n\t}\n\n\t// traverse conses until end of a list or a mismatch\n\tfor (; x.b && y.b && !(ord = _Utils_cmp(x.a, y.a)); x = x.b, y = y.b) {} // WHILE_CONSES\n\treturn ord || (x.b ? /*GT*/ 1 : y.b ? /*LT*/ -1 : /*EQ*/ 0);\n}\n\nvar _Utils_lt = F2(function(a, b) { return _Utils_cmp(a, b) < 0; });\nvar _Utils_le = F2(function(a, b) { return _Utils_cmp(a, b) < 1; });\nvar _Utils_gt = F2(function(a, b) { return _Utils_cmp(a, b) > 0; });\nvar _Utils_ge = F2(function(a, b) { return _Utils_cmp(a, b) >= 0; });\n\nvar _Utils_compare = F2(function(x, y)\n{\n\tvar n = _Utils_cmp(x, y);\n\treturn n < 0 ? elm$core$Basics$LT : n ? elm$core$Basics$GT : elm$core$Basics$EQ;\n});\n\n\n// COMMON VALUES\n\nvar _Utils_Tuple0 = 0;\nvar _Utils_Tuple0_UNUSED = { $: '#0' };\n\nfunction _Utils_Tuple2(a, b) { return { a: a, b: b }; }\nfunction _Utils_Tuple2_UNUSED(a, b) { return { $: '#2', a: a, b: b }; }\n\nfunction _Utils_Tuple3(a, b, c) { return { a: a, b: b, c: c }; }\nfunction _Utils_Tuple3_UNUSED(a, b, c) { return { $: '#3', a: a, b: b, c: c }; }\n\nfunction _Utils_chr(c) { return c; }\nfunction _Utils_chr_UNUSED(c) { return new String(c); }\n\n\n// RECORDS\n\nfunction _Utils_update(oldRecord, updatedFields)\n{\n\tvar newRecord = {};\n\n\tfor (var key in oldRecord)\n\t{\n\t\tnewRecord[key] = oldRecord[key];\n\t}\n\n\tfor (var key in updatedFields)\n\t{\n\t\tnewRecord[key] = updatedFields[key];\n\t}\n\n\treturn newRecord;\n}\n\n\n// APPEND\n\nvar _Utils_append = F2(_Utils_ap);\n\nfunction _Utils_ap(xs, ys)\n{\n\t// append Strings\n\tif (typeof xs === 'string')\n\t{\n\t\treturn xs + ys;\n\t}\n\n\t// append Lists\n\tif (!xs.b)\n\t{\n\t\treturn ys;\n\t}\n\tvar root = _List_Cons(xs.a, ys);\n\txs = xs.b\n\tfor (var curr = root; xs.b; xs = xs.b) // WHILE_CONS\n\t{\n\t\tcurr = curr.b = _List_Cons(xs.a, ys);\n\t}\n\treturn root;\n}\n\n\n\n// TASKS\n\nfunction _Scheduler_succeed(value)\n{\n\treturn {\n\t\t$: 0,\n\t\ta: value\n\t};\n}\n\nfunction _Scheduler_fail(error)\n{\n\treturn {\n\t\t$: 1,\n\t\ta: error\n\t};\n}\n\nfunction _Scheduler_binding(callback)\n{\n\treturn {\n\t\t$: 2,\n\t\tb: callback,\n\t\tc: null\n\t};\n}\n\nvar _Scheduler_andThen = F2(function(callback, task)\n{\n\treturn {\n\t\t$: 3,\n\t\tb: callback,\n\t\td: task\n\t};\n});\n\nvar _Scheduler_onError = F2(function(callback, task)\n{\n\treturn {\n\t\t$: 4,\n\t\tb: callback,\n\t\td: task\n\t};\n});\n\nfunction _Scheduler_receive(callback)\n{\n\treturn {\n\t\t$: 5,\n\t\tb: callback\n\t};\n}\n\n\n// PROCESSES\n\nvar _Scheduler_guid = 0;\n\nfunction _Scheduler_rawSpawn(task)\n{\n\tvar proc = {\n\t\t$: 0,\n\t\te: _Scheduler_guid++,\n\t\tf: task,\n\t\tg: null,\n\t\th: []\n\t};\n\n\t_Scheduler_enqueue(proc);\n\n\treturn proc;\n}\n\nfunction _Scheduler_spawn(task)\n{\n\treturn _Scheduler_binding(function(callback) {\n\t\tcallback(_Scheduler_succeed(_Scheduler_rawSpawn(task)));\n\t});\n}\n\nfunction _Scheduler_rawSend(proc, msg)\n{\n\tproc.h.push(msg);\n\t_Scheduler_enqueue(proc);\n}\n\nvar _Scheduler_send = F2(function(proc, msg)\n{\n\treturn _Scheduler_binding(function(callback) {\n\t\t_Scheduler_rawSend(proc, msg);\n\t\tcallback(_Scheduler_succeed(_Utils_Tuple0));\n\t});\n});\n\nfunction _Scheduler_kill(proc)\n{\n\treturn _Scheduler_binding(function(callback) {\n\t\tvar task = proc.f;\n\t\tif (task.$ === 2 && task.c)\n\t\t{\n\t\t\ttask.c();\n\t\t}\n\n\t\tproc.f = null;\n\n\t\tcallback(_Scheduler_succeed(_Utils_Tuple0));\n\t});\n}\n\n\n/* STEP PROCESSES\n\ntype alias Process =\n { $ : tag\n , id : unique_id\n , root : Task\n , stack : null | { $: SUCCEED | FAIL, a: callback, b: stack }\n , mailbox : [msg]\n }\n\n*/\n\n\nvar _Scheduler_working = false;\nvar _Scheduler_queue = [];\n\n\nfunction _Scheduler_enqueue(proc)\n{\n\t_Scheduler_queue.push(proc);\n\tif (_Scheduler_working)\n\t{\n\t\treturn;\n\t}\n\t_Scheduler_working = true;\n\twhile (proc = _Scheduler_queue.shift())\n\t{\n\t\t_Scheduler_step(proc);\n\t}\n\t_Scheduler_working = false;\n}\n\n\nfunction _Scheduler_step(proc)\n{\n\twhile (proc.f)\n\t{\n\t\tvar rootTag = proc.f.$;\n\t\tif (rootTag === 0 || rootTag === 1)\n\t\t{\n\t\t\twhile (proc.g && proc.g.$ !== rootTag)\n\t\t\t{\n\t\t\t\tproc.g = proc.g.i;\n\t\t\t}\n\t\t\tif (!proc.g)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tproc.f = proc.g.b(proc.f.a);\n\t\t\tproc.g = proc.g.i;\n\t\t}\n\t\telse if (rootTag === 2)\n\t\t{\n\t\t\tproc.f.c = proc.f.b(function(newRoot) {\n\t\t\t\tproc.f = newRoot;\n\t\t\t\t_Scheduler_enqueue(proc);\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\telse if (rootTag === 5)\n\t\t{\n\t\t\tif (proc.h.length === 0)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tproc.f = proc.f.b(proc.h.shift());\n\t\t}\n\t\telse // if (rootTag === 3 || rootTag === 4)\n\t\t{\n\t\t\tproc.g = {\n\t\t\t\t$: rootTag === 3 ? 0 : 1,\n\t\t\t\tb: proc.f.b,\n\t\t\t\ti: proc.g\n\t\t\t};\n\t\t\tproc.f = proc.f.d;\n\t\t}\n\t}\n}\n\n\n\n// MATH\n\nvar _Basics_add = F2(function(a, b) { return a + b; });\nvar _Basics_sub = F2(function(a, b) { return a - b; });\nvar _Basics_mul = F2(function(a, b) { return a * b; });\nvar _Basics_fdiv = F2(function(a, b) { return a / b; });\nvar _Basics_idiv = F2(function(a, b) { return (a / b) | 0; });\nvar _Basics_pow = F2(Math.pow);\n\nvar _Basics_remainderBy = F2(function(b, a) { return a % b; });\n\n// https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/divmodnote-letter.pdf\nvar _Basics_modBy = F2(function(modulus, x)\n{\n\tvar answer = x % modulus;\n\treturn modulus === 0\n\t\t? _Debug_crash(11)\n\t\t:\n\t((answer > 0 && modulus < 0) || (answer < 0 && modulus > 0))\n\t\t? answer + modulus\n\t\t: answer;\n});\n\n\n// TRIGONOMETRY\n\nvar _Basics_pi = Math.PI;\nvar _Basics_e = Math.E;\nvar _Basics_cos = Math.cos;\nvar _Basics_sin = Math.sin;\nvar _Basics_tan = Math.tan;\nvar _Basics_acos = Math.acos;\nvar _Basics_asin = Math.asin;\nvar _Basics_atan = Math.atan;\nvar _Basics_atan2 = F2(Math.atan2);\n\n\n// MORE MATH\n\nfunction _Basics_toFloat(x) { return x; }\nfunction _Basics_truncate(n) { return n | 0; }\nfunction _Basics_isInfinite(n) { return n === Infinity || n === -Infinity; }\n\nvar _Basics_ceiling = Math.ceil;\nvar _Basics_floor = Math.floor;\nvar _Basics_round = Math.round;\nvar _Basics_sqrt = Math.sqrt;\nvar _Basics_log = Math.log;\nvar _Basics_isNaN = isNaN;\n\n\n// BOOLEANS\n\nfunction _Basics_not(bool) { return !bool; }\nvar _Basics_and = F2(function(a, b) { return a && b; });\nvar _Basics_or = F2(function(a, b) { return a || b; });\nvar _Basics_xor = F2(function(a, b) { return a !== b; });\n\n\n\nfunction _Char_toCode(char)\n{\n\tvar code = char.charCodeAt(0);\n\tif (0xD800 <= code && code <= 0xDBFF)\n\t{\n\t\treturn (code - 0xD800) * 0x400 + char.charCodeAt(1) - 0xDC00 + 0x10000\n\t}\n\treturn code;\n}\n\nfunction _Char_fromCode(code)\n{\n\treturn _Utils_chr(\n\t\t(code < 0 || 0x10FFFF < code)\n\t\t\t? '\\uFFFD'\n\t\t\t:\n\t\t(code <= 0xFFFF)\n\t\t\t? String.fromCharCode(code)\n\t\t\t:\n\t\t(code -= 0x10000,\n\t\t\tString.fromCharCode(Math.floor(code / 0x400) + 0xD800)\n\t\t\t+\n\t\t\tString.fromCharCode(code % 0x400 + 0xDC00)\n\t\t)\n\t);\n}\n\nfunction _Char_toUpper(char)\n{\n\treturn _Utils_chr(char.toUpperCase());\n}\n\nfunction _Char_toLower(char)\n{\n\treturn _Utils_chr(char.toLowerCase());\n}\n\nfunction _Char_toLocaleUpper(char)\n{\n\treturn _Utils_chr(char.toLocaleUpperCase());\n}\n\nfunction _Char_toLocaleLower(char)\n{\n\treturn _Utils_chr(char.toLocaleLowerCase());\n}\n\n\n\nvar _String_cons = F2(function(chr, str)\n{\n\treturn chr + str;\n});\n\nfunction _String_uncons(string)\n{\n\tvar word = string.charCodeAt(0);\n\treturn word\n\t\t? elm$core$Maybe$Just(\n\t\t\t0xD800 <= word && word <= 0xDBFF\n\t\t\t\t? _Utils_Tuple2(_Utils_chr(string[0] + string[1]), string.slice(2))\n\t\t\t\t: _Utils_Tuple2(_Utils_chr(string[0]), string.slice(1))\n\t\t)\n\t\t: elm$core$Maybe$Nothing;\n}\n\nvar _String_append = F2(function(a, b)\n{\n\treturn a + b;\n});\n\nfunction _String_length(str)\n{\n\treturn str.length;\n}\n\nvar _String_map = F2(function(func, string)\n{\n\tvar len = string.length;\n\tvar array = new Array(len);\n\tvar i = 0;\n\twhile (i < len)\n\t{\n\t\tvar word = string.charCodeAt(i);\n\t\tif (0xD800 <= word && word <= 0xDBFF)\n\t\t{\n\t\t\tarray[i] = func(_Utils_chr(string[i] + string[i+1]));\n\t\t\ti += 2;\n\t\t\tcontinue;\n\t\t}\n\t\tarray[i] = func(_Utils_chr(string[i]));\n\t\ti++;\n\t}\n\treturn array.join('');\n});\n\nvar _String_filter = F2(function(isGood, str)\n{\n\tvar arr = [];\n\tvar len = str.length;\n\tvar i = 0;\n\twhile (i < len)\n\t{\n\t\tvar char = str[i];\n\t\tvar word = str.charCodeAt(i);\n\t\ti++;\n\t\tif (0xD800 <= word && word <= 0xDBFF)\n\t\t{\n\t\t\tchar += str[i];\n\t\t\ti++;\n\t\t}\n\n\t\tif (isGood(_Utils_chr(char)))\n\t\t{\n\t\t\tarr.push(char);\n\t\t}\n\t}\n\treturn arr.join('');\n});\n\nfunction _String_reverse(str)\n{\n\tvar len = str.length;\n\tvar arr = new Array(len);\n\tvar i = 0;\n\twhile (i < len)\n\t{\n\t\tvar word = str.charCodeAt(i);\n\t\tif (0xD800 <= word && word <= 0xDBFF)\n\t\t{\n\t\t\tarr[len - i] = str[i + 1];\n\t\t\ti++;\n\t\t\tarr[len - i] = str[i - 1];\n\t\t\ti++;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tarr[len - i] = str[i];\n\t\t\ti++;\n\t\t}\n\t}\n\treturn arr.join('');\n}\n\nvar _String_foldl = F3(function(func, state, string)\n{\n\tvar len = string.length;\n\tvar i = 0;\n\twhile (i < len)\n\t{\n\t\tvar char = string[i];\n\t\tvar word = string.charCodeAt(i);\n\t\ti++;\n\t\tif (0xD800 <= word && word <= 0xDBFF)\n\t\t{\n\t\t\tchar += string[i];\n\t\t\ti++;\n\t\t}\n\t\tstate = A2(func, _Utils_chr(char), state);\n\t}\n\treturn state;\n});\n\nvar _String_foldr = F3(function(func, state, string)\n{\n\tvar i = string.length;\n\twhile (i--)\n\t{\n\t\tvar char = string[i];\n\t\tvar word = string.charCodeAt(i);\n\t\tif (0xDC00 <= word && word <= 0xDFFF)\n\t\t{\n\t\t\ti--;\n\t\t\tchar = string[i] + char;\n\t\t}\n\t\tstate = A2(func, _Utils_chr(char), state);\n\t}\n\treturn state;\n});\n\nvar _String_split = F2(function(sep, str)\n{\n\treturn str.split(sep);\n});\n\nvar _String_join = F2(function(sep, strs)\n{\n\treturn strs.join(sep);\n});\n\nvar _String_slice = F3(function(start, end, str) {\n\treturn str.slice(start, end);\n});\n\nfunction _String_trim(str)\n{\n\treturn str.trim();\n}\n\nfunction _String_trimLeft(str)\n{\n\treturn str.replace(/^\\s+/, '');\n}\n\nfunction _String_trimRight(str)\n{\n\treturn str.replace(/\\s+$/, '');\n}\n\nfunction _String_words(str)\n{\n\treturn _List_fromArray(str.trim().split(/\\s+/g));\n}\n\nfunction _String_lines(str)\n{\n\treturn _List_fromArray(str.split(/\\r\\n|\\r|\\n/g));\n}\n\nfunction _String_toUpper(str)\n{\n\treturn str.toUpperCase();\n}\n\nfunction _String_toLower(str)\n{\n\treturn str.toLowerCase();\n}\n\nvar _String_any = F2(function(isGood, string)\n{\n\tvar i = string.length;\n\twhile (i--)\n\t{\n\t\tvar char = string[i];\n\t\tvar word = string.charCodeAt(i);\n\t\tif (0xDC00 <= word && word <= 0xDFFF)\n\t\t{\n\t\t\ti--;\n\t\t\tchar = string[i] + char;\n\t\t}\n\t\tif (isGood(_Utils_chr(char)))\n\t\t{\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n});\n\nvar _String_all = F2(function(isGood, string)\n{\n\tvar i = string.length;\n\twhile (i--)\n\t{\n\t\tvar char = string[i];\n\t\tvar word = string.charCodeAt(i);\n\t\tif (0xDC00 <= word && word <= 0xDFFF)\n\t\t{\n\t\t\ti--;\n\t\t\tchar = string[i] + char;\n\t\t}\n\t\tif (!isGood(_Utils_chr(char)))\n\t\t{\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n});\n\nvar _String_contains = F2(function(sub, str)\n{\n\treturn str.indexOf(sub) > -1;\n});\n\nvar _String_startsWith = F2(function(sub, str)\n{\n\treturn str.indexOf(sub) === 0;\n});\n\nvar _String_endsWith = F2(function(sub, str)\n{\n\treturn str.length >= sub.length &&\n\t\tstr.lastIndexOf(sub) === str.length - sub.length;\n});\n\nvar _String_indexes = F2(function(sub, str)\n{\n\tvar subLen = sub.length;\n\n\tif (subLen < 1)\n\t{\n\t\treturn _List_Nil;\n\t}\n\n\tvar i = 0;\n\tvar is = [];\n\n\twhile ((i = str.indexOf(sub, i)) > -1)\n\t{\n\t\tis.push(i);\n\t\ti = i + subLen;\n\t}\n\n\treturn _List_fromArray(is);\n});\n\n\n// TO STRING\n\nfunction _String_fromNumber(number)\n{\n\treturn number + '';\n}\n\n\n// INT CONVERSIONS\n\nfunction _String_toInt(str)\n{\n\tvar total = 0;\n\tvar code0 = str.charCodeAt(0);\n\tvar start = code0 == 0x2B /* + */ || code0 == 0x2D /* - */ ? 1 : 0;\n\n\tfor (var i = start; i < str.length; ++i)\n\t{\n\t\tvar code = str.charCodeAt(i);\n\t\tif (code < 0x30 || 0x39 < code)\n\t\t{\n\t\t\treturn elm$core$Maybe$Nothing;\n\t\t}\n\t\ttotal = 10 * total + code - 0x30;\n\t}\n\n\treturn i == start\n\t\t? elm$core$Maybe$Nothing\n\t\t: elm$core$Maybe$Just(code0 == 0x2D ? -total : total);\n}\n\n\n// FLOAT CONVERSIONS\n\nfunction _String_toFloat(s)\n{\n\t// check if it is a hex, octal, or binary number\n\tif (s.length === 0 || /[\\sxbo]/.test(s))\n\t{\n\t\treturn elm$core$Maybe$Nothing;\n\t}\n\tvar n = +s;\n\t// faster isNaN check\n\treturn n === n ? elm$core$Maybe$Just(n) : elm$core$Maybe$Nothing;\n}\n\nfunction _String_fromList(chars)\n{\n\treturn _List_toArray(chars).join('');\n}\n\n\n\n\n/**_UNUSED/\nfunction _Json_errorToString(error)\n{\n\treturn elm$json$Json$Decode$errorToString(error);\n}\n//*/\n\n\n// CORE DECODERS\n\nfunction _Json_succeed(msg)\n{\n\treturn {\n\t\t$: 0,\n\t\ta: msg\n\t};\n}\n\nfunction _Json_fail(msg)\n{\n\treturn {\n\t\t$: 1,\n\t\ta: msg\n\t};\n}\n\nvar _Json_decodeInt = { $: 2 };\nvar _Json_decodeBool = { $: 3 };\nvar _Json_decodeFloat = { $: 4 };\nvar _Json_decodeValue = { $: 5 };\nvar _Json_decodeString = { $: 6 };\n\nfunction _Json_decodeList(decoder) { return { $: 7, b: decoder }; }\nfunction _Json_decodeArray(decoder) { return { $: 8, b: decoder }; }\n\nfunction _Json_decodeNull(value) { return { $: 9, c: value }; }\n\nvar _Json_decodeField = F2(function(field, decoder)\n{\n\treturn {\n\t\t$: 10,\n\t\td: field,\n\t\tb: decoder\n\t};\n});\n\nvar _Json_decodeIndex = F2(function(index, decoder)\n{\n\treturn {\n\t\t$: 11,\n\t\te: index,\n\t\tb: decoder\n\t};\n});\n\nfunction _Json_decodeKeyValuePairs(decoder)\n{\n\treturn {\n\t\t$: 12,\n\t\tb: decoder\n\t};\n}\n\nfunction _Json_mapMany(f, decoders)\n{\n\treturn {\n\t\t$: 13,\n\t\tf: f,\n\t\tg: decoders\n\t};\n}\n\nvar _Json_andThen = F2(function(callback, decoder)\n{\n\treturn {\n\t\t$: 14,\n\t\tb: decoder,\n\t\th: callback\n\t};\n});\n\nfunction _Json_oneOf(decoders)\n{\n\treturn {\n\t\t$: 15,\n\t\tg: decoders\n\t};\n}\n\n\n// DECODING OBJECTS\n\nvar _Json_map1 = F2(function(f, d1)\n{\n\treturn _Json_mapMany(f, [d1]);\n});\n\nvar _Json_map2 = F3(function(f, d1, d2)\n{\n\treturn _Json_mapMany(f, [d1, d2]);\n});\n\nvar _Json_map3 = F4(function(f, d1, d2, d3)\n{\n\treturn _Json_mapMany(f, [d1, d2, d3]);\n});\n\nvar _Json_map4 = F5(function(f, d1, d2, d3, d4)\n{\n\treturn _Json_mapMany(f, [d1, d2, d3, d4]);\n});\n\nvar _Json_map5 = F6(function(f, d1, d2, d3, d4, d5)\n{\n\treturn _Json_mapMany(f, [d1, d2, d3, d4, d5]);\n});\n\nvar _Json_map6 = F7(function(f, d1, d2, d3, d4, d5, d6)\n{\n\treturn _Json_mapMany(f, [d1, d2, d3, d4, d5, d6]);\n});\n\nvar _Json_map7 = F8(function(f, d1, d2, d3, d4, d5, d6, d7)\n{\n\treturn _Json_mapMany(f, [d1, d2, d3, d4, d5, d6, d7]);\n});\n\nvar _Json_map8 = F9(function(f, d1, d2, d3, d4, d5, d6, d7, d8)\n{\n\treturn _Json_mapMany(f, [d1, d2, d3, d4, d5, d6, d7, d8]);\n});\n\n\n// DECODE\n\nvar _Json_runOnString = F2(function(decoder, string)\n{\n\ttry\n\t{\n\t\tvar value = JSON.parse(string);\n\t\treturn _Json_runHelp(decoder, value);\n\t}\n\tcatch (e)\n\t{\n\t\treturn elm$core$Result$Err(A2(elm$json$Json$Decode$Failure, 'This is not valid JSON! ' + e.message, _Json_wrap(string)));\n\t}\n});\n\nvar _Json_run = F2(function(decoder, value)\n{\n\treturn _Json_runHelp(decoder, _Json_unwrap(value));\n});\n\nfunction _Json_runHelp(decoder, value)\n{\n\tswitch (decoder.$)\n\t{\n\t\tcase 3:\n\t\t\treturn (typeof value === 'boolean')\n\t\t\t\t? elm$core$Result$Ok(value)\n\t\t\t\t: _Json_expecting('a BOOL', value);\n\n\t\tcase 2:\n\t\t\tif (typeof value !== 'number') {\n\t\t\t\treturn _Json_expecting('an INT', value);\n\t\t\t}\n\n\t\t\tif (-2147483647 < value && value < 2147483647 && (value | 0) === value) {\n\t\t\t\treturn elm$core$Result$Ok(value);\n\t\t\t}\n\n\t\t\tif (isFinite(value) && !(value % 1)) {\n\t\t\t\treturn elm$core$Result$Ok(value);\n\t\t\t}\n\n\t\t\treturn _Json_expecting('an INT', value);\n\n\t\tcase 4:\n\t\t\treturn (typeof value === 'number')\n\t\t\t\t? elm$core$Result$Ok(value)\n\t\t\t\t: _Json_expecting('a FLOAT', value);\n\n\t\tcase 6:\n\t\t\treturn (typeof value === 'string')\n\t\t\t\t? elm$core$Result$Ok(value)\n\t\t\t\t: (value instanceof String)\n\t\t\t\t\t? elm$core$Result$Ok(value + '')\n\t\t\t\t\t: _Json_expecting('a STRING', value);\n\n\t\tcase 9:\n\t\t\treturn (value === null)\n\t\t\t\t? elm$core$Result$Ok(decoder.c)\n\t\t\t\t: _Json_expecting('null', value);\n\n\t\tcase 5:\n\t\t\treturn elm$core$Result$Ok(_Json_wrap(value));\n\n\t\tcase 7:\n\t\t\tif (!Array.isArray(value))\n\t\t\t{\n\t\t\t\treturn _Json_expecting('a LIST', value);\n\t\t\t}\n\t\t\treturn _Json_runArrayDecoder(decoder.b, value, _List_fromArray);\n\n\t\tcase 8:\n\t\t\tif (!Array.isArray(value))\n\t\t\t{\n\t\t\t\treturn _Json_expecting('an ARRAY', value);\n\t\t\t}\n\t\t\treturn _Json_runArrayDecoder(decoder.b, value, _Json_toElmArray);\n\n\t\tcase 10:\n\t\t\tvar field = decoder.d;\n\t\t\tif (typeof value !== 'object' || value === null || !(field in value))\n\t\t\t{\n\t\t\t\treturn _Json_expecting('an OBJECT with a field named `' + field + '`', value);\n\t\t\t}\n\t\t\tvar result = _Json_runHelp(decoder.b, value[field]);\n\t\t\treturn (elm$core$Result$isOk(result)) ? result : elm$core$Result$Err(A2(elm$json$Json$Decode$Field, field, result.a));\n\n\t\tcase 11:\n\t\t\tvar index = decoder.e;\n\t\t\tif (!Array.isArray(value))\n\t\t\t{\n\t\t\t\treturn _Json_expecting('an ARRAY', value);\n\t\t\t}\n\t\t\tif (index >= value.length)\n\t\t\t{\n\t\t\t\treturn _Json_expecting('a LONGER array. Need index ' + index + ' but only see ' + value.length + ' entries', value);\n\t\t\t}\n\t\t\tvar result = _Json_runHelp(decoder.b, value[index]);\n\t\t\treturn (elm$core$Result$isOk(result)) ? result : elm$core$Result$Err(A2(elm$json$Json$Decode$Index, index, result.a));\n\n\t\tcase 12:\n\t\t\tif (typeof value !== 'object' || value === null || Array.isArray(value))\n\t\t\t{\n\t\t\t\treturn _Json_expecting('an OBJECT', value);\n\t\t\t}\n\n\t\t\tvar keyValuePairs = _List_Nil;\n\t\t\t// TODO test perf of Object.keys and switch when support is good enough\n\t\t\tfor (var key in value)\n\t\t\t{\n\t\t\t\tif (value.hasOwnProperty(key))\n\t\t\t\t{\n\t\t\t\t\tvar result = _Json_runHelp(decoder.b, value[key]);\n\t\t\t\t\tif (!elm$core$Result$isOk(result))\n\t\t\t\t\t{\n\t\t\t\t\t\treturn elm$core$Result$Err(A2(elm$json$Json$Decode$Field, key, result.a));\n\t\t\t\t\t}\n\t\t\t\t\tkeyValuePairs = _List_Cons(_Utils_Tuple2(key, result.a), keyValuePairs);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn elm$core$Result$Ok(elm$core$List$reverse(keyValuePairs));\n\n\t\tcase 13:\n\t\t\tvar answer = decoder.f;\n\t\t\tvar decoders = decoder.g;\n\t\t\tfor (var i = 0; i < decoders.length; i++)\n\t\t\t{\n\t\t\t\tvar result = _Json_runHelp(decoders[i], value);\n\t\t\t\tif (!elm$core$Result$isOk(result))\n\t\t\t\t{\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\t\t\t\tanswer = answer(result.a);\n\t\t\t}\n\t\t\treturn elm$core$Result$Ok(answer);\n\n\t\tcase 14:\n\t\t\tvar result = _Json_runHelp(decoder.b, value);\n\t\t\treturn (!elm$core$Result$isOk(result))\n\t\t\t\t? result\n\t\t\t\t: _Json_runHelp(decoder.h(result.a), value);\n\n\t\tcase 15:\n\t\t\tvar errors = _List_Nil;\n\t\t\tfor (var temp = decoder.g; temp.b; temp = temp.b) // WHILE_CONS\n\t\t\t{\n\t\t\t\tvar result = _Json_runHelp(temp.a, value);\n\t\t\t\tif (elm$core$Result$isOk(result))\n\t\t\t\t{\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\t\t\t\terrors = _List_Cons(result.a, errors);\n\t\t\t}\n\t\t\treturn elm$core$Result$Err(elm$json$Json$Decode$OneOf(elm$core$List$reverse(errors)));\n\n\t\tcase 1:\n\t\t\treturn elm$core$Result$Err(A2(elm$json$Json$Decode$Failure, decoder.a, _Json_wrap(value)));\n\n\t\tcase 0:\n\t\t\treturn elm$core$Result$Ok(decoder.a);\n\t}\n}\n\nfunction _Json_runArrayDecoder(decoder, value, toElmValue)\n{\n\tvar len = value.length;\n\tvar array = new Array(len);\n\tfor (var i = 0; i < len; i++)\n\t{\n\t\tvar result = _Json_runHelp(decoder, value[i]);\n\t\tif (!elm$core$Result$isOk(result))\n\t\t{\n\t\t\treturn elm$core$Result$Err(A2(elm$json$Json$Decode$Index, i, result.a));\n\t\t}\n\t\tarray[i] = result.a;\n\t}\n\treturn elm$core$Result$Ok(toElmValue(array));\n}\n\nfunction _Json_toElmArray(array)\n{\n\treturn A2(elm$core$Array$initialize, array.length, function(i) { return array[i]; });\n}\n\nfunction _Json_expecting(type, value)\n{\n\treturn elm$core$Result$Err(A2(elm$json$Json$Decode$Failure, 'Expecting ' + type, _Json_wrap(value)));\n}\n\n\n// EQUALITY\n\nfunction _Json_equality(x, y)\n{\n\tif (x === y)\n\t{\n\t\treturn true;\n\t}\n\n\tif (x.$ !== y.$)\n\t{\n\t\treturn false;\n\t}\n\n\tswitch (x.$)\n\t{\n\t\tcase 0:\n\t\tcase 1:\n\t\t\treturn x.a === y.a;\n\n\t\tcase 3:\n\t\tcase 2:\n\t\tcase 4:\n\t\tcase 6:\n\t\tcase 5:\n\t\t\treturn true;\n\n\t\tcase 9:\n\t\t\treturn x.c === y.c;\n\n\t\tcase 7:\n\t\tcase 8:\n\t\tcase 12:\n\t\t\treturn _Json_equality(x.b, y.b);\n\n\t\tcase 10:\n\t\t\treturn x.d === y.d && _Json_equality(x.b, y.b);\n\n\t\tcase 11:\n\t\t\treturn x.e === y.e && _Json_equality(x.b, y.b);\n\n\t\tcase 13:\n\t\t\treturn x.f === y.f && _Json_listEquality(x.g, y.g);\n\n\t\tcase 14:\n\t\t\treturn x.h === y.h && _Json_equality(x.b, y.b);\n\n\t\tcase 15:\n\t\t\treturn _Json_listEquality(x.g, y.g);\n\t}\n}\n\nfunction _Json_listEquality(aDecoders, bDecoders)\n{\n\tvar len = aDecoders.length;\n\tif (len !== bDecoders.length)\n\t{\n\t\treturn false;\n\t}\n\tfor (var i = 0; i < len; i++)\n\t{\n\t\tif (!_Json_equality(aDecoders[i], bDecoders[i]))\n\t\t{\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// ENCODE\n\nvar _Json_encode = F2(function(indentLevel, value)\n{\n\treturn JSON.stringify(_Json_unwrap(value), null, indentLevel) + '';\n});\n\nfunction _Json_wrap_UNUSED(value) { return { $: 0, a: value }; }\nfunction _Json_unwrap_UNUSED(value) { return value.a; }\n\nfunction _Json_wrap(value) { return value; }\nfunction _Json_unwrap(value) { return value; }\n\nfunction _Json_emptyArray() { return []; }\nfunction _Json_emptyObject() { return {}; }\n\nvar _Json_addField = F3(function(key, value, object)\n{\n\tobject[key] = _Json_unwrap(value);\n\treturn object;\n});\n\nfunction _Json_addEntry(func)\n{\n\treturn F2(function(entry, array)\n\t{\n\t\tarray.push(_Json_unwrap(func(entry)));\n\t\treturn array;\n\t});\n}\n\nvar _Json_encodeNull = _Json_wrap(null);\n\n\n\nfunction _Process_sleep(time)\n{\n\treturn _Scheduler_binding(function(callback) {\n\t\tvar id = setTimeout(function() {\n\t\t\tcallback(_Scheduler_succeed(_Utils_Tuple0));\n\t\t}, time);\n\n\t\treturn function() { clearTimeout(id); };\n\t});\n}\n\n\n\n\n// PROGRAMS\n\n\nvar _Platform_worker = F4(function(impl, flagDecoder, debugMetadata, args)\n{\n\treturn _Platform_initialize(\n\t\tflagDecoder,\n\t\targs,\n\t\timpl.aU,\n\t\timpl.a4,\n\t\timpl.a1,\n\t\tfunction() { return function() {} }\n\t);\n});\n\n\n\n// INITIALIZE A PROGRAM\n\n\nfunction _Platform_initialize(flagDecoder, args, init, update, subscriptions, stepperBuilder)\n{\n\tvar result = A2(_Json_run, flagDecoder, _Json_wrap(args ? args['flags'] : undefined));\n\telm$core$Result$isOk(result) || _Debug_crash(2 /**_UNUSED/, _Json_errorToString(result.a) /**/);\n\tvar managers = {};\n\tresult = init(result.a);\n\tvar model = result.a;\n\tvar stepper = stepperBuilder(sendToApp, model);\n\tvar ports = _Platform_setupEffects(managers, sendToApp);\n\n\tfunction sendToApp(msg, viewMetadata)\n\t{\n\t\tresult = A2(update, msg, model);\n\t\tstepper(model = result.a, viewMetadata);\n\t\t_Platform_dispatchEffects(managers, result.b, subscriptions(model));\n\t}\n\n\t_Platform_dispatchEffects(managers, result.b, subscriptions(model));\n\n\treturn ports ? { ports: ports } : {};\n}\n\n\n\n// TRACK PRELOADS\n//\n// This is used by code in elm/browser and elm/http\n// to register any HTTP requests that are triggered by init.\n//\n\n\nvar _Platform_preload;\n\n\nfunction _Platform_registerPreload(url)\n{\n\t_Platform_preload.add(url);\n}\n\n\n\n// EFFECT MANAGERS\n\n\nvar _Platform_effectManagers = {};\n\n\nfunction _Platform_setupEffects(managers, sendToApp)\n{\n\tvar ports;\n\n\t// setup all necessary effect managers\n\tfor (var key in _Platform_effectManagers)\n\t{\n\t\tvar manager = _Platform_effectManagers[key];\n\n\t\tif (manager.a)\n\t\t{\n\t\t\tports = ports || {};\n\t\t\tports[key] = manager.a(key, sendToApp);\n\t\t}\n\n\t\tmanagers[key] = _Platform_instantiateManager(manager, sendToApp);\n\t}\n\n\treturn ports;\n}\n\n\nfunction _Platform_createManager(init, onEffects, onSelfMsg, cmdMap, subMap)\n{\n\treturn {\n\t\tb: init,\n\t\tc: onEffects,\n\t\td: onSelfMsg,\n\t\te: cmdMap,\n\t\tf: subMap\n\t};\n}\n\n\nfunction _Platform_instantiateManager(info, sendToApp)\n{\n\tvar router = {\n\t\tg: sendToApp,\n\t\th: undefined\n\t};\n\n\tvar onEffects = info.c;\n\tvar onSelfMsg = info.d;\n\tvar cmdMap = info.e;\n\tvar subMap = info.f;\n\n\tfunction loop(state)\n\t{\n\t\treturn A2(_Scheduler_andThen, loop, _Scheduler_receive(function(msg)\n\t\t{\n\t\t\tvar value = msg.a;\n\n\t\t\tif (msg.$ === 0)\n\t\t\t{\n\t\t\t\treturn A3(onSelfMsg, router, value, state);\n\t\t\t}\n\n\t\t\treturn cmdMap && subMap\n\t\t\t\t? A4(onEffects, router, value.i, value.j, state)\n\t\t\t\t: A3(onEffects, router, cmdMap ? value.i : value.j, state);\n\t\t}));\n\t}\n\n\treturn router.h = _Scheduler_rawSpawn(A2(_Scheduler_andThen, loop, info.b));\n}\n\n\n\n// ROUTING\n\n\nvar _Platform_sendToApp = F2(function(router, msg)\n{\n\treturn _Scheduler_binding(function(callback)\n\t{\n\t\trouter.g(msg);\n\t\tcallback(_Scheduler_succeed(_Utils_Tuple0));\n\t});\n});\n\n\nvar _Platform_sendToSelf = F2(function(router, msg)\n{\n\treturn A2(_Scheduler_send, router.h, {\n\t\t$: 0,\n\t\ta: msg\n\t});\n});\n\n\n\n// BAGS\n\n\nfunction _Platform_leaf(home)\n{\n\treturn function(value)\n\t{\n\t\treturn {\n\t\t\t$: 1,\n\t\t\tk: home,\n\t\t\tl: value\n\t\t};\n\t};\n}\n\n\nfunction _Platform_batch(list)\n{\n\treturn {\n\t\t$: 2,\n\t\tm: list\n\t};\n}\n\n\nvar _Platform_map = F2(function(tagger, bag)\n{\n\treturn {\n\t\t$: 3,\n\t\tn: tagger,\n\t\to: bag\n\t}\n});\n\n\n\n// PIPE BAGS INTO EFFECT MANAGERS\n\n\nfunction _Platform_dispatchEffects(managers, cmdBag, subBag)\n{\n\tvar effectsDict = {};\n\t_Platform_gatherEffects(true, cmdBag, effectsDict, null);\n\t_Platform_gatherEffects(false, subBag, effectsDict, null);\n\n\tfor (var home in managers)\n\t{\n\t\t_Scheduler_rawSend(managers[home], {\n\t\t\t$: 'fx',\n\t\t\ta: effectsDict[home] || { i: _List_Nil, j: _List_Nil }\n\t\t});\n\t}\n}\n\n\nfunction _Platform_gatherEffects(isCmd, bag, effectsDict, taggers)\n{\n\tswitch (bag.$)\n\t{\n\t\tcase 1:\n\t\t\tvar home = bag.k;\n\t\t\tvar effect = _Platform_toEffect(isCmd, home, taggers, bag.l);\n\t\t\teffectsDict[home] = _Platform_insert(isCmd, effect, effectsDict[home]);\n\t\t\treturn;\n\n\t\tcase 2:\n\t\t\tfor (var list = bag.m; list.b; list = list.b) // WHILE_CONS\n\t\t\t{\n\t\t\t\t_Platform_gatherEffects(isCmd, list.a, effectsDict, taggers);\n\t\t\t}\n\t\t\treturn;\n\n\t\tcase 3:\n\t\t\t_Platform_gatherEffects(isCmd, bag.o, effectsDict, {\n\t\t\t\tp: bag.n,\n\t\t\t\tq: taggers\n\t\t\t});\n\t\t\treturn;\n\t}\n}\n\n\nfunction _Platform_toEffect(isCmd, home, taggers, value)\n{\n\tfunction applyTaggers(x)\n\t{\n\t\tfor (var temp = taggers; temp; temp = temp.q)\n\t\t{\n\t\t\tx = temp.p(x);\n\t\t}\n\t\treturn x;\n\t}\n\n\tvar map = isCmd\n\t\t? _Platform_effectManagers[home].e\n\t\t: _Platform_effectManagers[home].f;\n\n\treturn A2(map, applyTaggers, value)\n}\n\n\nfunction _Platform_insert(isCmd, newEffect, effects)\n{\n\teffects = effects || { i: _List_Nil, j: _List_Nil };\n\n\tisCmd\n\t\t? (effects.i = _List_Cons(newEffect, effects.i))\n\t\t: (effects.j = _List_Cons(newEffect, effects.j));\n\n\treturn effects;\n}\n\n\n\n// PORTS\n\n\nfunction _Platform_checkPortName(name)\n{\n\tif (_Platform_effectManagers[name])\n\t{\n\t\t_Debug_crash(3, name)\n\t}\n}\n\n\n\n// OUTGOING PORTS\n\n\nfunction _Platform_outgoingPort(name, converter)\n{\n\t_Platform_checkPortName(name);\n\t_Platform_effectManagers[name] = {\n\t\te: _Platform_outgoingPortMap,\n\t\tr: converter,\n\t\ta: _Platform_setupOutgoingPort\n\t};\n\treturn _Platform_leaf(name);\n}\n\n\nvar _Platform_outgoingPortMap = F2(function(tagger, value) { return value; });\n\n\nfunction _Platform_setupOutgoingPort(name)\n{\n\tvar subs = [];\n\tvar converter = _Platform_effectManagers[name].r;\n\n\t// CREATE MANAGER\n\n\tvar init = _Process_sleep(0);\n\n\t_Platform_effectManagers[name].b = init;\n\t_Platform_effectManagers[name].c = F3(function(router, cmdList, state)\n\t{\n\t\tfor ( ; cmdList.b; cmdList = cmdList.b) // WHILE_CONS\n\t\t{\n\t\t\t// grab a separate reference to subs in case unsubscribe is called\n\t\t\tvar currentSubs = subs;\n\t\t\tvar value = _Json_unwrap(converter(cmdList.a));\n\t\t\tfor (var i = 0; i < currentSubs.length; i++)\n\t\t\t{\n\t\t\t\tcurrentSubs[i](value);\n\t\t\t}\n\t\t}\n\t\treturn init;\n\t});\n\n\t// PUBLIC API\n\n\tfunction subscribe(callback)\n\t{\n\t\tsubs.push(callback);\n\t}\n\n\tfunction unsubscribe(callback)\n\t{\n\t\t// copy subs into a new array in case unsubscribe is called within a\n\t\t// subscribed callback\n\t\tsubs = subs.slice();\n\t\tvar index = subs.indexOf(callback);\n\t\tif (index >= 0)\n\t\t{\n\t\t\tsubs.splice(index, 1);\n\t\t}\n\t}\n\n\treturn {\n\t\tsubscribe: subscribe,\n\t\tunsubscribe: unsubscribe\n\t};\n}\n\n\n\n// INCOMING PORTS\n\n\nfunction _Platform_incomingPort(name, converter)\n{\n\t_Platform_checkPortName(name);\n\t_Platform_effectManagers[name] = {\n\t\tf: _Platform_incomingPortMap,\n\t\tr: converter,\n\t\ta: _Platform_setupIncomingPort\n\t};\n\treturn _Platform_leaf(name);\n}\n\n\nvar _Platform_incomingPortMap = F2(function(tagger, finalTagger)\n{\n\treturn function(value)\n\t{\n\t\treturn tagger(finalTagger(value));\n\t};\n});\n\n\nfunction _Platform_setupIncomingPort(name, sendToApp)\n{\n\tvar subs = _List_Nil;\n\tvar converter = _Platform_effectManagers[name].r;\n\n\t// CREATE MANAGER\n\n\tvar init = _Scheduler_succeed(null);\n\n\t_Platform_effectManagers[name].b = init;\n\t_Platform_effectManagers[name].c = F3(function(router, subList, state)\n\t{\n\t\tsubs = subList;\n\t\treturn init;\n\t});\n\n\t// PUBLIC API\n\n\tfunction send(incomingValue)\n\t{\n\t\tvar result = A2(_Json_run, converter, _Json_wrap(incomingValue));\n\n\t\telm$core$Result$isOk(result) || _Debug_crash(4, name, result.a);\n\n\t\tvar value = result.a;\n\t\tfor (var temp = subs; temp.b; temp = temp.b) // WHILE_CONS\n\t\t{\n\t\t\tsendToApp(temp.a(value));\n\t\t}\n\t}\n\n\treturn { send: send };\n}\n\n\n\n// EXPORT ELM MODULES\n//\n// Have DEBUG and PROD versions so that we can (1) give nicer errors in\n// debug mode and (2) not pay for the bits needed for that in prod mode.\n//\n\n\nfunction _Platform_export(exports)\n{\n\tscope['Elm']\n\t\t? _Platform_mergeExportsProd(scope['Elm'], exports)\n\t\t: scope['Elm'] = exports;\n}\n\n\nfunction _Platform_mergeExportsProd(obj, exports)\n{\n\tfor (var name in exports)\n\t{\n\t\t(name in obj)\n\t\t\t? (name == 'init')\n\t\t\t\t? _Debug_crash(6)\n\t\t\t\t: _Platform_mergeExportsProd(obj[name], exports[name])\n\t\t\t: (obj[name] = exports[name]);\n\t}\n}\n\n\nfunction _Platform_export_UNUSED(exports)\n{\n\tscope['Elm']\n\t\t? _Platform_mergeExportsDebug('Elm', scope['Elm'], exports)\n\t\t: scope['Elm'] = exports;\n}\n\n\nfunction _Platform_mergeExportsDebug(moduleName, obj, exports)\n{\n\tfor (var name in exports)\n\t{\n\t\t(name in obj)\n\t\t\t? (name == 'init')\n\t\t\t\t? _Debug_crash(6, moduleName)\n\t\t\t\t: _Platform_mergeExportsDebug(moduleName + '.' + name, obj[name], exports[name])\n\t\t\t: (obj[name] = exports[name]);\n\t}\n}\n\n\n\n\n// HELPERS\n\n\nvar _VirtualDom_divertHrefToApp;\n\nvar _VirtualDom_doc = typeof document !== 'undefined' ? document : {};\n\n\nfunction _VirtualDom_appendChild(parent, child)\n{\n\tparent.appendChild(child);\n}\n\nvar _VirtualDom_init = F4(function(virtualNode, flagDecoder, debugMetadata, args)\n{\n\t// NOTE: this function needs _Platform_export available to work\n\n\t/**/\n\tvar node = args['node'];\n\t//*/\n\t/**_UNUSED/\n\tvar node = args && args['node'] ? args['node'] : _Debug_crash(0);\n\t//*/\n\n\tnode.parentNode.replaceChild(\n\t\t_VirtualDom_render(virtualNode, function() {}),\n\t\tnode\n\t);\n\n\treturn {};\n});\n\n\n\n// TEXT\n\n\nfunction _VirtualDom_text(string)\n{\n\treturn {\n\t\t$: 0,\n\t\ta: string\n\t};\n}\n\n\n\n// NODE\n\n\nvar _VirtualDom_nodeNS = F2(function(namespace, tag)\n{\n\treturn F2(function(factList, kidList)\n\t{\n\t\tfor (var kids = [], descendantsCount = 0; kidList.b; kidList = kidList.b) // WHILE_CONS\n\t\t{\n\t\t\tvar kid = kidList.a;\n\t\t\tdescendantsCount += (kid.b || 0);\n\t\t\tkids.push(kid);\n\t\t}\n\t\tdescendantsCount += kids.length;\n\n\t\treturn {\n\t\t\t$: 1,\n\t\t\tc: tag,\n\t\t\td: _VirtualDom_organizeFacts(factList),\n\t\t\te: kids,\n\t\t\tf: namespace,\n\t\t\tb: descendantsCount\n\t\t};\n\t});\n});\n\n\nvar _VirtualDom_node = _VirtualDom_nodeNS(undefined);\n\n\n\n// KEYED NODE\n\n\nvar _VirtualDom_keyedNodeNS = F2(function(namespace, tag)\n{\n\treturn F2(function(factList, kidList)\n\t{\n\t\tfor (var kids = [], descendantsCount = 0; kidList.b; kidList = kidList.b) // WHILE_CONS\n\t\t{\n\t\t\tvar kid = kidList.a;\n\t\t\tdescendantsCount += (kid.b.b || 0);\n\t\t\tkids.push(kid);\n\t\t}\n\t\tdescendantsCount += kids.length;\n\n\t\treturn {\n\t\t\t$: 2,\n\t\t\tc: tag,\n\t\t\td: _VirtualDom_organizeFacts(factList),\n\t\t\te: kids,\n\t\t\tf: namespace,\n\t\t\tb: descendantsCount\n\t\t};\n\t});\n});\n\n\nvar _VirtualDom_keyedNode = _VirtualDom_keyedNodeNS(undefined);\n\n\n\n// CUSTOM\n\n\nfunction _VirtualDom_custom(factList, model, render, diff)\n{\n\treturn {\n\t\t$: 3,\n\t\td: _VirtualDom_organizeFacts(factList),\n\t\tg: model,\n\t\th: render,\n\t\ti: diff\n\t};\n}\n\n\n\n// MAP\n\n\nvar _VirtualDom_map = F2(function(tagger, node)\n{\n\treturn {\n\t\t$: 4,\n\t\tj: tagger,\n\t\tk: node,\n\t\tb: 1 + (node.b || 0)\n\t};\n});\n\n\n\n// LAZY\n\n\nfunction _VirtualDom_thunk(refs, thunk)\n{\n\treturn {\n\t\t$: 5,\n\t\tl: refs,\n\t\tm: thunk,\n\t\tk: undefined\n\t};\n}\n\nvar _VirtualDom_lazy = F2(function(func, a)\n{\n\treturn _VirtualDom_thunk([func, a], function() {\n\t\treturn func(a);\n\t});\n});\n\nvar _VirtualDom_lazy2 = F3(function(func, a, b)\n{\n\treturn _VirtualDom_thunk([func, a, b], function() {\n\t\treturn A2(func, a, b);\n\t});\n});\n\nvar _VirtualDom_lazy3 = F4(function(func, a, b, c)\n{\n\treturn _VirtualDom_thunk([func, a, b, c], function() {\n\t\treturn A3(func, a, b, c);\n\t});\n});\n\nvar _VirtualDom_lazy4 = F5(function(func, a, b, c, d)\n{\n\treturn _VirtualDom_thunk([func, a, b, c, d], function() {\n\t\treturn A4(func, a, b, c, d);\n\t});\n});\n\nvar _VirtualDom_lazy5 = F6(function(func, a, b, c, d, e)\n{\n\treturn _VirtualDom_thunk([func, a, b, c, d, e], function() {\n\t\treturn A5(func, a, b, c, d, e);\n\t});\n});\n\nvar _VirtualDom_lazy6 = F7(function(func, a, b, c, d, e, f)\n{\n\treturn _VirtualDom_thunk([func, a, b, c, d, e, f], function() {\n\t\treturn A6(func, a, b, c, d, e, f);\n\t});\n});\n\nvar _VirtualDom_lazy7 = F8(function(func, a, b, c, d, e, f, g)\n{\n\treturn _VirtualDom_thunk([func, a, b, c, d, e, f, g], function() {\n\t\treturn A7(func, a, b, c, d, e, f, g);\n\t});\n});\n\nvar _VirtualDom_lazy8 = F9(function(func, a, b, c, d, e, f, g, h)\n{\n\treturn _VirtualDom_thunk([func, a, b, c, d, e, f, g, h], function() {\n\t\treturn A8(func, a, b, c, d, e, f, g, h);\n\t});\n});\n\n\n\n// FACTS\n\n\nvar _VirtualDom_on = F2(function(key, handler)\n{\n\treturn {\n\t\t$: 'a0',\n\t\tn: key,\n\t\to: handler\n\t};\n});\nvar _VirtualDom_style = F2(function(key, value)\n{\n\treturn {\n\t\t$: 'a1',\n\t\tn: key,\n\t\to: value\n\t};\n});\nvar _VirtualDom_property = F2(function(key, value)\n{\n\treturn {\n\t\t$: 'a2',\n\t\tn: key,\n\t\to: value\n\t};\n});\nvar _VirtualDom_attribute = F2(function(key, value)\n{\n\treturn {\n\t\t$: 'a3',\n\t\tn: key,\n\t\to: value\n\t};\n});\nvar _VirtualDom_attributeNS = F3(function(namespace, key, value)\n{\n\treturn {\n\t\t$: 'a4',\n\t\tn: key,\n\t\to: { f: namespace, o: value }\n\t};\n});\n\n\n\n// XSS ATTACK VECTOR CHECKS\n\n\nfunction _VirtualDom_noScript(tag)\n{\n\treturn tag == 'script' ? 'p' : tag;\n}\n\nfunction _VirtualDom_noOnOrFormAction(key)\n{\n\treturn /^(on|formAction$)/i.test(key) ? 'data-' + key : key;\n}\n\nfunction _VirtualDom_noInnerHtmlOrFormAction(key)\n{\n\treturn key == 'innerHTML' || key == 'formAction' ? 'data-' + key : key;\n}\n\nfunction _VirtualDom_noJavaScriptUri(value)\n{\n\treturn /^javascript:/i.test(value.replace(/\\s/g,'')) ? '' : value;\n}\n\nfunction _VirtualDom_noJavaScriptUri_UNUSED(value)\n{\n\treturn /^javascript:/i.test(value.replace(/\\s/g,''))\n\t\t? 'javascript:alert(\"This is an XSS vector. Please use ports or web components instead.\")'\n\t\t: value;\n}\n\nfunction _VirtualDom_noJavaScriptOrHtmlUri(value)\n{\n\treturn /^\\s*(javascript:|data:text\\/html)/i.test(value) ? '' : value;\n}\n\nfunction _VirtualDom_noJavaScriptOrHtmlUri_UNUSED(value)\n{\n\treturn /^\\s*(javascript:|data:text\\/html)/i.test(value)\n\t\t? 'javascript:alert(\"This is an XSS vector. Please use ports or web components instead.\")'\n\t\t: value;\n}\n\n\n\n// MAP FACTS\n\n\nvar _VirtualDom_mapAttribute = F2(function(func, attr)\n{\n\treturn (attr.$ === 'a0')\n\t\t? A2(_VirtualDom_on, attr.n, _VirtualDom_mapHandler(func, attr.o))\n\t\t: attr;\n});\n\nfunction _VirtualDom_mapHandler(func, handler)\n{\n\tvar tag = elm$virtual_dom$VirtualDom$toHandlerInt(handler);\n\n\t// 0 = Normal\n\t// 1 = MayStopPropagation\n\t// 2 = MayPreventDefault\n\t// 3 = Custom\n\n\treturn {\n\t\t$: handler.$,\n\t\ta:\n\t\t\t!tag\n\t\t\t\t? A2(elm$json$Json$Decode$map, func, handler.a)\n\t\t\t\t:\n\t\t\tA3(elm$json$Json$Decode$map2,\n\t\t\t\ttag < 3\n\t\t\t\t\t? _VirtualDom_mapEventTuple\n\t\t\t\t\t: _VirtualDom_mapEventRecord,\n\t\t\t\telm$json$Json$Decode$succeed(func),\n\t\t\t\thandler.a\n\t\t\t)\n\t};\n}\n\nvar _VirtualDom_mapEventTuple = F2(function(func, tuple)\n{\n\treturn _Utils_Tuple2(func(tuple.a), tuple.b);\n});\n\nvar _VirtualDom_mapEventRecord = F2(function(func, record)\n{\n\treturn {\n\t\tB: func(record.B),\n\t\tad: record.ad,\n\t\tab: record.ab\n\t}\n});\n\n\n\n// ORGANIZE FACTS\n\n\nfunction _VirtualDom_organizeFacts(factList)\n{\n\tfor (var facts = {}; factList.b; factList = factList.b) // WHILE_CONS\n\t{\n\t\tvar entry = factList.a;\n\n\t\tvar tag = entry.$;\n\t\tvar key = entry.n;\n\t\tvar value = entry.o;\n\n\t\tif (tag === 'a2')\n\t\t{\n\t\t\t(key === 'className')\n\t\t\t\t? _VirtualDom_addClass(facts, key, _Json_unwrap(value))\n\t\t\t\t: facts[key] = _Json_unwrap(value);\n\n\t\t\tcontinue;\n\t\t}\n\n\t\tvar subFacts = facts[tag] || (facts[tag] = {});\n\t\t(tag === 'a3' && key === 'class')\n\t\t\t? _VirtualDom_addClass(subFacts, key, value)\n\t\t\t: subFacts[key] = value;\n\t}\n\n\treturn facts;\n}\n\nfunction _VirtualDom_addClass(object, key, newClass)\n{\n\tvar classes = object[key];\n\tobject[key] = classes ? classes + ' ' + newClass : newClass;\n}\n\n\n\n// RENDER\n\n\nfunction _VirtualDom_render(vNode, eventNode)\n{\n\tvar tag = vNode.$;\n\n\tif (tag === 5)\n\t{\n\t\treturn _VirtualDom_render(vNode.k || (vNode.k = vNode.m()), eventNode);\n\t}\n\n\tif (tag === 0)\n\t{\n\t\treturn _VirtualDom_doc.createTextNode(vNode.a);\n\t}\n\n\tif (tag === 4)\n\t{\n\t\tvar subNode = vNode.k;\n\t\tvar tagger = vNode.j;\n\n\t\twhile (subNode.$ === 4)\n\t\t{\n\t\t\ttypeof tagger !== 'object'\n\t\t\t\t? tagger = [tagger, subNode.j]\n\t\t\t\t: tagger.push(subNode.j);\n\n\t\t\tsubNode = subNode.k;\n\t\t}\n\n\t\tvar subEventRoot = { j: tagger, p: eventNode };\n\t\tvar domNode = _VirtualDom_render(subNode, subEventRoot);\n\t\tdomNode.elm_event_node_ref = subEventRoot;\n\t\treturn domNode;\n\t}\n\n\tif (tag === 3)\n\t{\n\t\tvar domNode = vNode.h(vNode.g);\n\t\t_VirtualDom_applyFacts(domNode, eventNode, vNode.d);\n\t\treturn domNode;\n\t}\n\n\t// at this point `tag` must be 1 or 2\n\n\tvar domNode = vNode.f\n\t\t? _VirtualDom_doc.createElementNS(vNode.f, vNode.c)\n\t\t: _VirtualDom_doc.createElement(vNode.c);\n\n\tif (_VirtualDom_divertHrefToApp && vNode.c == 'a')\n\t{\n\t\tdomNode.addEventListener('click', _VirtualDom_divertHrefToApp(domNode));\n\t}\n\n\t_VirtualDom_applyFacts(domNode, eventNode, vNode.d);\n\n\tfor (var kids = vNode.e, i = 0; i < kids.length; i++)\n\t{\n\t\t_VirtualDom_appendChild(domNode, _VirtualDom_render(tag === 1 ? kids[i] : kids[i].b, eventNode));\n\t}\n\n\treturn domNode;\n}\n\n\n\n// APPLY FACTS\n\n\nfunction _VirtualDom_applyFacts(domNode, eventNode, facts)\n{\n\tfor (var key in facts)\n\t{\n\t\tvar value = facts[key];\n\n\t\tkey === 'a1'\n\t\t\t? _VirtualDom_applyStyles(domNode, value)\n\t\t\t:\n\t\tkey === 'a0'\n\t\t\t? _VirtualDom_applyEvents(domNode, eventNode, value)\n\t\t\t:\n\t\tkey === 'a3'\n\t\t\t? _VirtualDom_applyAttrs(domNode, value)\n\t\t\t:\n\t\tkey === 'a4'\n\t\t\t? _VirtualDom_applyAttrsNS(domNode, value)\n\t\t\t:\n\t\t(key !== 'value' || key !== 'checked' || domNode[key] !== value) && (domNode[key] = value);\n\t}\n}\n\n\n\n// APPLY STYLES\n\n\nfunction _VirtualDom_applyStyles(domNode, styles)\n{\n\tvar domNodeStyle = domNode.style;\n\n\tfor (var key in styles)\n\t{\n\t\tdomNodeStyle[key] = styles[key];\n\t}\n}\n\n\n\n// APPLY ATTRS\n\n\nfunction _VirtualDom_applyAttrs(domNode, attrs)\n{\n\tfor (var key in attrs)\n\t{\n\t\tvar value = attrs[key];\n\t\tvalue\n\t\t\t? domNode.setAttribute(key, value)\n\t\t\t: domNode.removeAttribute(key);\n\t}\n}\n\n\n\n// APPLY NAMESPACED ATTRS\n\n\nfunction _VirtualDom_applyAttrsNS(domNode, nsAttrs)\n{\n\tfor (var key in nsAttrs)\n\t{\n\t\tvar pair = nsAttrs[key];\n\t\tvar namespace = pair.f;\n\t\tvar value = pair.o;\n\n\t\tvalue\n\t\t\t? domNode.setAttributeNS(namespace, key, value)\n\t\t\t: domNode.removeAttributeNS(namespace, key);\n\t}\n}\n\n\n\n// APPLY EVENTS\n\n\nfunction _VirtualDom_applyEvents(domNode, eventNode, events)\n{\n\tvar allCallbacks = domNode.elmFs || (domNode.elmFs = {});\n\n\tfor (var key in events)\n\t{\n\t\tvar newHandler = events[key];\n\t\tvar oldCallback = allCallbacks[key];\n\n\t\tif (!newHandler)\n\t\t{\n\t\t\tdomNode.removeEventListener(key, oldCallback);\n\t\t\tallCallbacks[key] = undefined;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (oldCallback)\n\t\t{\n\t\t\tvar oldHandler = oldCallback.q;\n\t\t\tif (oldHandler.$ === newHandler.$)\n\t\t\t{\n\t\t\t\toldCallback.q = newHandler;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tdomNode.removeEventListener(key, oldCallback);\n\t\t}\n\n\t\toldCallback = _VirtualDom_makeCallback(eventNode, newHandler);\n\t\tdomNode.addEventListener(key, oldCallback,\n\t\t\t_VirtualDom_passiveSupported\n\t\t\t&& { passive: elm$virtual_dom$VirtualDom$toHandlerInt(newHandler) < 2 }\n\t\t);\n\t\tallCallbacks[key] = oldCallback;\n\t}\n}\n\n\n\n// PASSIVE EVENTS\n\n\nvar _VirtualDom_passiveSupported;\n\ntry\n{\n\twindow.addEventListener('t', null, Object.defineProperty({}, 'passive', {\n\t\tget: function() { _VirtualDom_passiveSupported = true; }\n\t}));\n}\ncatch(e) {}\n\n\n\n// EVENT HANDLERS\n\n\nfunction _VirtualDom_makeCallback(eventNode, initialHandler)\n{\n\tfunction callback(event)\n\t{\n\t\tvar handler = callback.q;\n\t\tvar result = _Json_runHelp(handler.a, event);\n\n\t\tif (!elm$core$Result$isOk(result))\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tvar tag = elm$virtual_dom$VirtualDom$toHandlerInt(handler);\n\n\t\t// 0 = Normal\n\t\t// 1 = MayStopPropagation\n\t\t// 2 = MayPreventDefault\n\t\t// 3 = Custom\n\n\t\tvar value = result.a;\n\t\tvar message = !tag ? value : tag < 3 ? value.a : value.B;\n\t\tvar stopPropagation = tag == 1 ? value.b : tag == 3 && value.ad;\n\t\tvar currentEventNode = (\n\t\t\tstopPropagation && event.stopPropagation(),\n\t\t\t(tag == 2 ? value.b : tag == 3 && value.ab) && event.preventDefault(),\n\t\t\teventNode\n\t\t);\n\t\tvar tagger;\n\t\tvar i;\n\t\twhile (tagger = currentEventNode.j)\n\t\t{\n\t\t\tif (typeof tagger == 'function')\n\t\t\t{\n\t\t\t\tmessage = tagger(message);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tfor (var i = tagger.length; i--; )\n\t\t\t\t{\n\t\t\t\t\tmessage = tagger[i](message);\n\t\t\t\t}\n\t\t\t}\n\t\t\tcurrentEventNode = currentEventNode.p;\n\t\t}\n\t\tcurrentEventNode(message, stopPropagation); // stopPropagation implies isSync\n\t}\n\n\tcallback.q = initialHandler;\n\n\treturn callback;\n}\n\nfunction _VirtualDom_equalEvents(x, y)\n{\n\treturn x.$ == y.$ && _Json_equality(x.a, y.a);\n}\n\n\n\n// DIFF\n\n\n// TODO: Should we do patches like in iOS?\n//\n// type Patch\n// = At Int Patch\n// | Batch (List Patch)\n// | Change ...\n//\n// How could it not be better?\n//\nfunction _VirtualDom_diff(x, y)\n{\n\tvar patches = [];\n\t_VirtualDom_diffHelp(x, y, patches, 0);\n\treturn patches;\n}\n\n\nfunction _VirtualDom_pushPatch(patches, type, index, data)\n{\n\tvar patch = {\n\t\t$: type,\n\t\tr: index,\n\t\ts: data,\n\t\tt: undefined,\n\t\tu: undefined\n\t};\n\tpatches.push(patch);\n\treturn patch;\n}\n\n\nfunction _VirtualDom_diffHelp(x, y, patches, index)\n{\n\tif (x === y)\n\t{\n\t\treturn;\n\t}\n\n\tvar xType = x.$;\n\tvar yType = y.$;\n\n\t// Bail if you run into different types of nodes. Implies that the\n\t// structure has changed significantly and it's not worth a diff.\n\tif (xType !== yType)\n\t{\n\t\tif (xType === 1 && yType === 2)\n\t\t{\n\t\t\ty = _VirtualDom_dekey(y);\n\t\t\tyType = 1;\n\t\t}\n\t\telse\n\t\t{\n\t\t\t_VirtualDom_pushPatch(patches, 0, index, y);\n\t\t\treturn;\n\t\t}\n\t}\n\n\t// Now we know that both nodes are the same $.\n\tswitch (yType)\n\t{\n\t\tcase 5:\n\t\t\tvar xRefs = x.l;\n\t\t\tvar yRefs = y.l;\n\t\t\tvar i = xRefs.length;\n\t\t\tvar same = i === yRefs.length;\n\t\t\twhile (same && i--)\n\t\t\t{\n\t\t\t\tsame = xRefs[i] === yRefs[i];\n\t\t\t}\n\t\t\tif (same)\n\t\t\t{\n\t\t\t\ty.k = x.k;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ty.k = y.m();\n\t\t\tvar subPatches = [];\n\t\t\t_VirtualDom_diffHelp(x.k, y.k, subPatches, 0);\n\t\t\tsubPatches.length > 0 && _VirtualDom_pushPatch(patches, 1, index, subPatches);\n\t\t\treturn;\n\n\t\tcase 4:\n\t\t\t// gather nested taggers\n\t\t\tvar xTaggers = x.j;\n\t\t\tvar yTaggers = y.j;\n\t\t\tvar nesting = false;\n\n\t\t\tvar xSubNode = x.k;\n\t\t\twhile (xSubNode.$ === 4)\n\t\t\t{\n\t\t\t\tnesting = true;\n\n\t\t\t\ttypeof xTaggers !== 'object'\n\t\t\t\t\t? xTaggers = [xTaggers, xSubNode.j]\n\t\t\t\t\t: xTaggers.push(xSubNode.j);\n\n\t\t\t\txSubNode = xSubNode.k;\n\t\t\t}\n\n\t\t\tvar ySubNode = y.k;\n\t\t\twhile (ySubNode.$ === 4)\n\t\t\t{\n\t\t\t\tnesting = true;\n\n\t\t\t\ttypeof yTaggers !== 'object'\n\t\t\t\t\t? yTaggers = [yTaggers, ySubNode.j]\n\t\t\t\t\t: yTaggers.push(ySubNode.j);\n\n\t\t\t\tySubNode = ySubNode.k;\n\t\t\t}\n\n\t\t\t// Just bail if different numbers of taggers. This implies the\n\t\t\t// structure of the virtual DOM has changed.\n\t\t\tif (nesting && xTaggers.length !== yTaggers.length)\n\t\t\t{\n\t\t\t\t_VirtualDom_pushPatch(patches, 0, index, y);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// check if taggers are \"the same\"\n\t\t\tif (nesting ? !_VirtualDom_pairwiseRefEqual(xTaggers, yTaggers) : xTaggers !== yTaggers)\n\t\t\t{\n\t\t\t\t_VirtualDom_pushPatch(patches, 2, index, yTaggers);\n\t\t\t}\n\n\t\t\t// diff everything below the taggers\n\t\t\t_VirtualDom_diffHelp(xSubNode, ySubNode, patches, index + 1);\n\t\t\treturn;\n\n\t\tcase 0:\n\t\t\tif (x.a !== y.a)\n\t\t\t{\n\t\t\t\t_VirtualDom_pushPatch(patches, 3, index, y.a);\n\t\t\t}\n\t\t\treturn;\n\n\t\tcase 1:\n\t\t\t_VirtualDom_diffNodes(x, y, patches, index, _VirtualDom_diffKids);\n\t\t\treturn;\n\n\t\tcase 2:\n\t\t\t_VirtualDom_diffNodes(x, y, patches, index, _VirtualDom_diffKeyedKids);\n\t\t\treturn;\n\n\t\tcase 3:\n\t\t\tif (x.h !== y.h)\n\t\t\t{\n\t\t\t\t_VirtualDom_pushPatch(patches, 0, index, y);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar factsDiff = _VirtualDom_diffFacts(x.d, y.d);\n\t\t\tfactsDiff && _VirtualDom_pushPatch(patches, 4, index, factsDiff);\n\n\t\t\tvar patch = y.i(x.g, y.g);\n\t\t\tpatch && _VirtualDom_pushPatch(patches, 5, index, patch);\n\n\t\t\treturn;\n\t}\n}\n\n// assumes the incoming arrays are the same length\nfunction _VirtualDom_pairwiseRefEqual(as, bs)\n{\n\tfor (var i = 0; i < as.length; i++)\n\t{\n\t\tif (as[i] !== bs[i])\n\t\t{\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\nfunction _VirtualDom_diffNodes(x, y, patches, index, diffKids)\n{\n\t// Bail if obvious indicators have changed. Implies more serious\n\t// structural changes such that it's not worth it to diff.\n\tif (x.c !== y.c || x.f !== y.f)\n\t{\n\t\t_VirtualDom_pushPatch(patches, 0, index, y);\n\t\treturn;\n\t}\n\n\tvar factsDiff = _VirtualDom_diffFacts(x.d, y.d);\n\tfactsDiff && _VirtualDom_pushPatch(patches, 4, index, factsDiff);\n\n\tdiffKids(x, y, patches, index);\n}\n\n\n\n// DIFF FACTS\n\n\n// TODO Instead of creating a new diff object, it's possible to just test if\n// there *is* a diff. During the actual patch, do the diff again and make the\n// modifications directly. This way, there's no new allocations. Worth it?\nfunction _VirtualDom_diffFacts(x, y, category)\n{\n\tvar diff;\n\n\t// look for changes and removals\n\tfor (var xKey in x)\n\t{\n\t\tif (xKey === 'a1' || xKey === 'a0' || xKey === 'a3' || xKey === 'a4')\n\t\t{\n\t\t\tvar subDiff = _VirtualDom_diffFacts(x[xKey], y[xKey] || {}, xKey);\n\t\t\tif (subDiff)\n\t\t\t{\n\t\t\t\tdiff = diff || {};\n\t\t\t\tdiff[xKey] = subDiff;\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\t// remove if not in the new facts\n\t\tif (!(xKey in y))\n\t\t{\n\t\t\tdiff = diff || {};\n\t\t\tdiff[xKey] =\n\t\t\t\t!category\n\t\t\t\t\t? (typeof x[xKey] === 'string' ? '' : null)\n\t\t\t\t\t:\n\t\t\t\t(category === 'a1')\n\t\t\t\t\t? ''\n\t\t\t\t\t:\n\t\t\t\t(category === 'a0' || category === 'a3')\n\t\t\t\t\t? undefined\n\t\t\t\t\t:\n\t\t\t\t{ f: x[xKey].f, o: undefined };\n\n\t\t\tcontinue;\n\t\t}\n\n\t\tvar xValue = x[xKey];\n\t\tvar yValue = y[xKey];\n\n\t\t// reference equal, so don't worry about it\n\t\tif (xValue === yValue && xKey !== 'value' && xKey !== 'checked'\n\t\t\t|| category === 'a0' && _VirtualDom_equalEvents(xValue, yValue))\n\t\t{\n\t\t\tcontinue;\n\t\t}\n\n\t\tdiff = diff || {};\n\t\tdiff[xKey] = yValue;\n\t}\n\n\t// add new stuff\n\tfor (var yKey in y)\n\t{\n\t\tif (!(yKey in x))\n\t\t{\n\t\t\tdiff = diff || {};\n\t\t\tdiff[yKey] = y[yKey];\n\t\t}\n\t}\n\n\treturn diff;\n}\n\n\n\n// DIFF KIDS\n\n\nfunction _VirtualDom_diffKids(xParent, yParent, patches, index)\n{\n\tvar xKids = xParent.e;\n\tvar yKids = yParent.e;\n\n\tvar xLen = xKids.length;\n\tvar yLen = yKids.length;\n\n\t// FIGURE OUT IF THERE ARE INSERTS OR REMOVALS\n\n\tif (xLen > yLen)\n\t{\n\t\t_VirtualDom_pushPatch(patches, 6, index, {\n\t\t\tv: yLen,\n\t\t\ti: xLen - yLen\n\t\t});\n\t}\n\telse if (xLen < yLen)\n\t{\n\t\t_VirtualDom_pushPatch(patches, 7, index, {\n\t\t\tv: xLen,\n\t\t\te: yKids\n\t\t});\n\t}\n\n\t// PAIRWISE DIFF EVERYTHING ELSE\n\n\tfor (var minLen = xLen < yLen ? xLen : yLen, i = 0; i < minLen; i++)\n\t{\n\t\tvar xKid = xKids[i];\n\t\t_VirtualDom_diffHelp(xKid, yKids[i], patches, ++index);\n\t\tindex += xKid.b || 0;\n\t}\n}\n\n\n\n// KEYED DIFF\n\n\nfunction _VirtualDom_diffKeyedKids(xParent, yParent, patches, rootIndex)\n{\n\tvar localPatches = [];\n\n\tvar changes = {}; // Dict String Entry\n\tvar inserts = []; // Array { index : Int, entry : Entry }\n\t// type Entry = { tag : String, vnode : VNode, index : Int, data : _ }\n\n\tvar xKids = xParent.e;\n\tvar yKids = yParent.e;\n\tvar xLen = xKids.length;\n\tvar yLen = yKids.length;\n\tvar xIndex = 0;\n\tvar yIndex = 0;\n\n\tvar index = rootIndex;\n\n\twhile (xIndex < xLen && yIndex < yLen)\n\t{\n\t\tvar x = xKids[xIndex];\n\t\tvar y = yKids[yIndex];\n\n\t\tvar xKey = x.a;\n\t\tvar yKey = y.a;\n\t\tvar xNode = x.b;\n\t\tvar yNode = y.b;\n\n\t\t// check if keys match\n\n\t\tif (xKey === yKey)\n\t\t{\n\t\t\tindex++;\n\t\t\t_VirtualDom_diffHelp(xNode, yNode, localPatches, index);\n\t\t\tindex += xNode.b || 0;\n\n\t\t\txIndex++;\n\t\t\tyIndex++;\n\t\t\tcontinue;\n\t\t}\n\n\t\t// look ahead 1 to detect insertions and removals.\n\n\t\tvar xNext = xKids[xIndex + 1];\n\t\tvar yNext = yKids[yIndex + 1];\n\n\t\tif (xNext)\n\t\t{\n\t\t\tvar xNextKey = xNext.a;\n\t\t\tvar xNextNode = xNext.b;\n\t\t\tvar oldMatch = yKey === xNextKey;\n\t\t}\n\n\t\tif (yNext)\n\t\t{\n\t\t\tvar yNextKey = yNext.a;\n\t\t\tvar yNextNode = yNext.b;\n\t\t\tvar newMatch = xKey === yNextKey;\n\t\t}\n\n\n\t\t// swap x and y\n\t\tif (newMatch && oldMatch)\n\t\t{\n\t\t\tindex++;\n\t\t\t_VirtualDom_diffHelp(xNode, yNextNode, localPatches, index);\n\t\t\t_VirtualDom_insertNode(changes, localPatches, xKey, yNode, yIndex, inserts);\n\t\t\tindex += xNode.b || 0;\n\n\t\t\tindex++;\n\t\t\t_VirtualDom_removeNode(changes, localPatches, xKey, xNextNode, index);\n\t\t\tindex += xNextNode.b || 0;\n\n\t\t\txIndex += 2;\n\t\t\tyIndex += 2;\n\t\t\tcontinue;\n\t\t}\n\n\t\t// insert y\n\t\tif (newMatch)\n\t\t{\n\t\t\tindex++;\n\t\t\t_VirtualDom_insertNode(changes, localPatches, yKey, yNode, yIndex, inserts);\n\t\t\t_VirtualDom_diffHelp(xNode, yNextNode, localPatches, index);\n\t\t\tindex += xNode.b || 0;\n\n\t\t\txIndex += 1;\n\t\t\tyIndex += 2;\n\t\t\tcontinue;\n\t\t}\n\n\t\t// remove x\n\t\tif (oldMatch)\n\t\t{\n\t\t\tindex++;\n\t\t\t_VirtualDom_removeNode(changes, localPatches, xKey, xNode, index);\n\t\t\tindex += xNode.b || 0;\n\n\t\t\tindex++;\n\t\t\t_VirtualDom_diffHelp(xNextNode, yNode, localPatches, index);\n\t\t\tindex += xNextNode.b || 0;\n\n\t\t\txIndex += 2;\n\t\t\tyIndex += 1;\n\t\t\tcontinue;\n\t\t}\n\n\t\t// remove x, insert y\n\t\tif (xNext && xNextKey === yNextKey)\n\t\t{\n\t\t\tindex++;\n\t\t\t_VirtualDom_removeNode(changes, localPatches, xKey, xNode, index);\n\t\t\t_VirtualDom_insertNode(changes, localPatches, yKey, yNode, yIndex, inserts);\n\t\t\tindex += xNode.b || 0;\n\n\t\t\tindex++;\n\t\t\t_VirtualDom_diffHelp(xNextNode, yNextNode, localPatches, index);\n\t\t\tindex += xNextNode.b || 0;\n\n\t\t\txIndex += 2;\n\t\t\tyIndex += 2;\n\t\t\tcontinue;\n\t\t}\n\n\t\tbreak;\n\t}\n\n\t// eat up any remaining nodes with removeNode and insertNode\n\n\twhile (xIndex < xLen)\n\t{\n\t\tindex++;\n\t\tvar x = xKids[xIndex];\n\t\tvar xNode = x.b;\n\t\t_VirtualDom_removeNode(changes, localPatches, x.a, xNode, index);\n\t\tindex += xNode.b || 0;\n\t\txIndex++;\n\t}\n\n\twhile (yIndex < yLen)\n\t{\n\t\tvar endInserts = endInserts || [];\n\t\tvar y = yKids[yIndex];\n\t\t_VirtualDom_insertNode(changes, localPatches, y.a, y.b, undefined, endInserts);\n\t\tyIndex++;\n\t}\n\n\tif (localPatches.length > 0 || inserts.length > 0 || endInserts)\n\t{\n\t\t_VirtualDom_pushPatch(patches, 8, rootIndex, {\n\t\t\tw: localPatches,\n\t\t\tx: inserts,\n\t\t\ty: endInserts\n\t\t});\n\t}\n}\n\n\n\n// CHANGES FROM KEYED DIFF\n\n\nvar _VirtualDom_POSTFIX = '_elmW6BL';\n\n\nfunction _VirtualDom_insertNode(changes, localPatches, key, vnode, yIndex, inserts)\n{\n\tvar entry = changes[key];\n\n\t// never seen this key before\n\tif (!entry)\n\t{\n\t\tentry = {\n\t\t\tc: 0,\n\t\t\tz: vnode,\n\t\t\tr: yIndex,\n\t\t\ts: undefined\n\t\t};\n\n\t\tinserts.push({ r: yIndex, A: entry });\n\t\tchanges[key] = entry;\n\n\t\treturn;\n\t}\n\n\t// this key was removed earlier, a match!\n\tif (entry.c === 1)\n\t{\n\t\tinserts.push({ r: yIndex, A: entry });\n\n\t\tentry.c = 2;\n\t\tvar subPatches = [];\n\t\t_VirtualDom_diffHelp(entry.z, vnode, subPatches, entry.r);\n\t\tentry.r = yIndex;\n\t\tentry.s.s = {\n\t\t\tw: subPatches,\n\t\t\tA: entry\n\t\t};\n\n\t\treturn;\n\t}\n\n\t// this key has already been inserted or moved, a duplicate!\n\t_VirtualDom_insertNode(changes, localPatches, key + _VirtualDom_POSTFIX, vnode, yIndex, inserts);\n}\n\n\nfunction _VirtualDom_removeNode(changes, localPatches, key, vnode, index)\n{\n\tvar entry = changes[key];\n\n\t// never seen this key before\n\tif (!entry)\n\t{\n\t\tvar patch = _VirtualDom_pushPatch(localPatches, 9, index, undefined);\n\n\t\tchanges[key] = {\n\t\t\tc: 1,\n\t\t\tz: vnode,\n\t\t\tr: index,\n\t\t\ts: patch\n\t\t};\n\n\t\treturn;\n\t}\n\n\t// this key was inserted earlier, a match!\n\tif (entry.c === 0)\n\t{\n\t\tentry.c = 2;\n\t\tvar subPatches = [];\n\t\t_VirtualDom_diffHelp(vnode, entry.z, subPatches, index);\n\n\t\t_VirtualDom_pushPatch(localPatches, 9, index, {\n\t\t\tw: subPatches,\n\t\t\tA: entry\n\t\t});\n\n\t\treturn;\n\t}\n\n\t// this key has already been removed or moved, a duplicate!\n\t_VirtualDom_removeNode(changes, localPatches, key + _VirtualDom_POSTFIX, vnode, index);\n}\n\n\n\n// ADD DOM NODES\n//\n// Each DOM node has an \"index\" assigned in order of traversal. It is important\n// to minimize our crawl over the actual DOM, so these indexes (along with the\n// descendantsCount of virtual nodes) let us skip touching entire subtrees of\n// the DOM if we know there are no patches there.\n\n\nfunction _VirtualDom_addDomNodes(domNode, vNode, patches, eventNode)\n{\n\t_VirtualDom_addDomNodesHelp(domNode, vNode, patches, 0, 0, vNode.b, eventNode);\n}\n\n\n// assumes `patches` is non-empty and indexes increase monotonically.\nfunction _VirtualDom_addDomNodesHelp(domNode, vNode, patches, i, low, high, eventNode)\n{\n\tvar patch = patches[i];\n\tvar index = patch.r;\n\n\twhile (index === low)\n\t{\n\t\tvar patchType = patch.$;\n\n\t\tif (patchType === 1)\n\t\t{\n\t\t\t_VirtualDom_addDomNodes(domNode, vNode.k, patch.s, eventNode);\n\t\t}\n\t\telse if (patchType === 8)\n\t\t{\n\t\t\tpatch.t = domNode;\n\t\t\tpatch.u = eventNode;\n\n\t\t\tvar subPatches = patch.s.w;\n\t\t\tif (subPatches.length > 0)\n\t\t\t{\n\t\t\t\t_VirtualDom_addDomNodesHelp(domNode, vNode, subPatches, 0, low, high, eventNode);\n\t\t\t}\n\t\t}\n\t\telse if (patchType === 9)\n\t\t{\n\t\t\tpatch.t = domNode;\n\t\t\tpatch.u = eventNode;\n\n\t\t\tvar data = patch.s;\n\t\t\tif (data)\n\t\t\t{\n\t\t\t\tdata.A.s = domNode;\n\t\t\t\tvar subPatches = data.w;\n\t\t\t\tif (subPatches.length > 0)\n\t\t\t\t{\n\t\t\t\t\t_VirtualDom_addDomNodesHelp(domNode, vNode, subPatches, 0, low, high, eventNode);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tpatch.t = domNode;\n\t\t\tpatch.u = eventNode;\n\t\t}\n\n\t\ti++;\n\n\t\tif (!(patch = patches[i]) || (index = patch.r) > high)\n\t\t{\n\t\t\treturn i;\n\t\t}\n\t}\n\n\tvar tag = vNode.$;\n\n\tif (tag === 4)\n\t{\n\t\tvar subNode = vNode.k;\n\n\t\twhile (subNode.$ === 4)\n\t\t{\n\t\t\tsubNode = subNode.k;\n\t\t}\n\n\t\treturn _VirtualDom_addDomNodesHelp(domNode, subNode, patches, i, low + 1, high, domNode.elm_event_node_ref);\n\t}\n\n\t// tag must be 1 or 2 at this point\n\n\tvar vKids = vNode.e;\n\tvar childNodes = domNode.childNodes;\n\tfor (var j = 0; j < vKids.length; j++)\n\t{\n\t\tlow++;\n\t\tvar vKid = tag === 1 ? vKids[j] : vKids[j].b;\n\t\tvar nextLow = low + (vKid.b || 0);\n\t\tif (low <= index && index <= nextLow)\n\t\t{\n\t\t\ti = _VirtualDom_addDomNodesHelp(childNodes[j], vKid, patches, i, low, nextLow, eventNode);\n\t\t\tif (!(patch = patches[i]) || (index = patch.r) > high)\n\t\t\t{\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\tlow = nextLow;\n\t}\n\treturn i;\n}\n\n\n\n// APPLY PATCHES\n\n\nfunction _VirtualDom_applyPatches(rootDomNode, oldVirtualNode, patches, eventNode)\n{\n\tif (patches.length === 0)\n\t{\n\t\treturn rootDomNode;\n\t}\n\n\t_VirtualDom_addDomNodes(rootDomNode, oldVirtualNode, patches, eventNode);\n\treturn _VirtualDom_applyPatchesHelp(rootDomNode, patches);\n}\n\nfunction _VirtualDom_applyPatchesHelp(rootDomNode, patches)\n{\n\tfor (var i = 0; i < patches.length; i++)\n\t{\n\t\tvar patch = patches[i];\n\t\tvar localDomNode = patch.t\n\t\tvar newNode = _VirtualDom_applyPatch(localDomNode, patch);\n\t\tif (localDomNode === rootDomNode)\n\t\t{\n\t\t\trootDomNode = newNode;\n\t\t}\n\t}\n\treturn rootDomNode;\n}\n\nfunction _VirtualDom_applyPatch(domNode, patch)\n{\n\tswitch (patch.$)\n\t{\n\t\tcase 0:\n\t\t\treturn _VirtualDom_applyPatchRedraw(domNode, patch.s, patch.u);\n\n\t\tcase 4:\n\t\t\t_VirtualDom_applyFacts(domNode, patch.u, patch.s);\n\t\t\treturn domNode;\n\n\t\tcase 3:\n\t\t\tdomNode.replaceData(0, domNode.length, patch.s);\n\t\t\treturn domNode;\n\n\t\tcase 1:\n\t\t\treturn _VirtualDom_applyPatchesHelp(domNode, patch.s);\n\n\t\tcase 2:\n\t\t\tif (domNode.elm_event_node_ref)\n\t\t\t{\n\t\t\t\tdomNode.elm_event_node_ref.j = patch.s;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tdomNode.elm_event_node_ref = { j: patch.s, p: patch.u };\n\t\t\t}\n\t\t\treturn domNode;\n\n\t\tcase 6:\n\t\t\tvar data = patch.s;\n\t\t\tfor (var i = 0; i < data.i; i++)\n\t\t\t{\n\t\t\t\tdomNode.removeChild(domNode.childNodes[data.v]);\n\t\t\t}\n\t\t\treturn domNode;\n\n\t\tcase 7:\n\t\t\tvar data = patch.s;\n\t\t\tvar kids = data.e;\n\t\t\tvar i = data.v;\n\t\t\tvar theEnd = domNode.childNodes[i];\n\t\t\tfor (; i < kids.length; i++)\n\t\t\t{\n\t\t\t\tdomNode.insertBefore(_VirtualDom_render(kids[i], patch.u), theEnd);\n\t\t\t}\n\t\t\treturn domNode;\n\n\t\tcase 9:\n\t\t\tvar data = patch.s;\n\t\t\tif (!data)\n\t\t\t{\n\t\t\t\tdomNode.parentNode.removeChild(domNode);\n\t\t\t\treturn domNode;\n\t\t\t}\n\t\t\tvar entry = data.A;\n\t\t\tif (typeof entry.r !== 'undefined')\n\t\t\t{\n\t\t\t\tdomNode.parentNode.removeChild(domNode);\n\t\t\t}\n\t\t\tentry.s = _VirtualDom_applyPatchesHelp(domNode, data.w);\n\t\t\treturn domNode;\n\n\t\tcase 8:\n\t\t\treturn _VirtualDom_applyPatchReorder(domNode, patch);\n\n\t\tcase 5:\n\t\t\treturn patch.s(domNode);\n\n\t\tdefault:\n\t\t\t_Debug_crash(10); // 'Ran into an unknown patch!'\n\t}\n}\n\n\nfunction _VirtualDom_applyPatchRedraw(domNode, vNode, eventNode)\n{\n\tvar parentNode = domNode.parentNode;\n\tvar newNode = _VirtualDom_render(vNode, eventNode);\n\n\tif (!newNode.elm_event_node_ref)\n\t{\n\t\tnewNode.elm_event_node_ref = domNode.elm_event_node_ref;\n\t}\n\n\tif (parentNode && newNode !== domNode)\n\t{\n\t\tparentNode.replaceChild(newNode, domNode);\n\t}\n\treturn newNode;\n}\n\n\nfunction _VirtualDom_applyPatchReorder(domNode, patch)\n{\n\tvar data = patch.s;\n\n\t// remove end inserts\n\tvar frag = _VirtualDom_applyPatchReorderEndInsertsHelp(data.y, patch);\n\n\t// removals\n\tdomNode = _VirtualDom_applyPatchesHelp(domNode, data.w);\n\n\t// inserts\n\tvar inserts = data.x;\n\tfor (var i = 0; i < inserts.length; i++)\n\t{\n\t\tvar insert = inserts[i];\n\t\tvar entry = insert.A;\n\t\tvar node = entry.c === 2\n\t\t\t? entry.s\n\t\t\t: _VirtualDom_render(entry.z, patch.u);\n\t\tdomNode.insertBefore(node, domNode.childNodes[insert.r]);\n\t}\n\n\t// add end inserts\n\tif (frag)\n\t{\n\t\t_VirtualDom_appendChild(domNode, frag);\n\t}\n\n\treturn domNode;\n}\n\n\nfunction _VirtualDom_applyPatchReorderEndInsertsHelp(endInserts, patch)\n{\n\tif (!endInserts)\n\t{\n\t\treturn;\n\t}\n\n\tvar frag = _VirtualDom_doc.createDocumentFragment();\n\tfor (var i = 0; i < endInserts.length; i++)\n\t{\n\t\tvar insert = endInserts[i];\n\t\tvar entry = insert.A;\n\t\t_VirtualDom_appendChild(frag, entry.c === 2\n\t\t\t? entry.s\n\t\t\t: _VirtualDom_render(entry.z, patch.u)\n\t\t);\n\t}\n\treturn frag;\n}\n\n\nfunction _VirtualDom_virtualize(node)\n{\n\t// TEXT NODES\n\n\tif (node.nodeType === 3)\n\t{\n\t\treturn _VirtualDom_text(node.textContent);\n\t}\n\n\n\t// WEIRD NODES\n\n\tif (node.nodeType !== 1)\n\t{\n\t\treturn _VirtualDom_text('');\n\t}\n\n\n\t// ELEMENT NODES\n\n\tvar attrList = _List_Nil;\n\tvar attrs = node.attributes;\n\tfor (var i = attrs.length; i--; )\n\t{\n\t\tvar attr = attrs[i];\n\t\tvar name = attr.name;\n\t\tvar value = attr.value;\n\t\tattrList = _List_Cons( A2(_VirtualDom_attribute, name, value), attrList );\n\t}\n\n\tvar tag = node.tagName.toLowerCase();\n\tvar kidList = _List_Nil;\n\tvar kids = node.childNodes;\n\n\tfor (var i = kids.length; i--; )\n\t{\n\t\tkidList = _List_Cons(_VirtualDom_virtualize(kids[i]), kidList);\n\t}\n\treturn A3(_VirtualDom_node, tag, attrList, kidList);\n}\n\nfunction _VirtualDom_dekey(keyedNode)\n{\n\tvar keyedKids = keyedNode.e;\n\tvar len = keyedKids.length;\n\tvar kids = new Array(len);\n\tfor (var i = 0; i < len; i++)\n\t{\n\t\tkids[i] = keyedKids[i].b;\n\t}\n\n\treturn {\n\t\t$: 1,\n\t\tc: keyedNode.c,\n\t\td: keyedNode.d,\n\t\te: kids,\n\t\tf: keyedNode.f,\n\t\tb: keyedNode.b\n\t};\n}\n\n\n\n// ELEMENT\n\n\nvar _Debugger_element;\n\nvar _Browser_element = _Debugger_element || F4(function(impl, flagDecoder, debugMetadata, args)\n{\n\treturn _Platform_initialize(\n\t\tflagDecoder,\n\t\targs,\n\t\timpl.aU,\n\t\timpl.a4,\n\t\timpl.a1,\n\t\tfunction(sendToApp, initialModel) {\n\t\t\tvar view = impl.a6;\n\t\t\t/**/\n\t\t\tvar domNode = args['node'];\n\t\t\t//*/\n\t\t\t/**_UNUSED/\n\t\t\tvar domNode = args && args['node'] ? args['node'] : _Debug_crash(0);\n\t\t\t//*/\n\t\t\tvar currNode = _VirtualDom_virtualize(domNode);\n\n\t\t\treturn _Browser_makeAnimator(initialModel, function(model)\n\t\t\t{\n\t\t\t\tvar nextNode = view(model);\n\t\t\t\tvar patches = _VirtualDom_diff(currNode, nextNode);\n\t\t\t\tdomNode = _VirtualDom_applyPatches(domNode, currNode, patches, sendToApp);\n\t\t\t\tcurrNode = nextNode;\n\t\t\t});\n\t\t}\n\t);\n});\n\n\n\n// DOCUMENT\n\n\nvar _Debugger_document;\n\nvar _Browser_document = _Debugger_document || F4(function(impl, flagDecoder, debugMetadata, args)\n{\n\treturn _Platform_initialize(\n\t\tflagDecoder,\n\t\targs,\n\t\timpl.aU,\n\t\timpl.a4,\n\t\timpl.a1,\n\t\tfunction(sendToApp, initialModel) {\n\t\t\tvar divertHrefToApp = impl.S && impl.S(sendToApp)\n\t\t\tvar view = impl.a6;\n\t\t\tvar title = _VirtualDom_doc.title;\n\t\t\tvar bodyNode = _VirtualDom_doc.body;\n\t\t\tvar currNode = _VirtualDom_virtualize(bodyNode);\n\t\t\treturn _Browser_makeAnimator(initialModel, function(model)\n\t\t\t{\n\t\t\t\t_VirtualDom_divertHrefToApp = divertHrefToApp;\n\t\t\t\tvar doc = view(model);\n\t\t\t\tvar nextNode = _VirtualDom_node('body')(_List_Nil)(doc.aL);\n\t\t\t\tvar patches = _VirtualDom_diff(currNode, nextNode);\n\t\t\t\tbodyNode = _VirtualDom_applyPatches(bodyNode, currNode, patches, sendToApp);\n\t\t\t\tcurrNode = nextNode;\n\t\t\t\t_VirtualDom_divertHrefToApp = 0;\n\t\t\t\t(title !== doc.a3) && (_VirtualDom_doc.title = title = doc.a3);\n\t\t\t});\n\t\t}\n\t);\n});\n\n\n\n// ANIMATION\n\n\nvar _Browser_requestAnimationFrame =\n\ttypeof requestAnimationFrame !== 'undefined'\n\t\t? requestAnimationFrame\n\t\t: function(callback) { setTimeout(callback, 1000 / 60); };\n\n\nfunction _Browser_makeAnimator(model, draw)\n{\n\tdraw(model);\n\n\tvar state = 0;\n\n\tfunction updateIfNeeded()\n\t{\n\t\tstate = state === 1\n\t\t\t? 0\n\t\t\t: ( _Browser_requestAnimationFrame(updateIfNeeded), draw(model), 1 );\n\t}\n\n\treturn function(nextModel, isSync)\n\t{\n\t\tmodel = nextModel;\n\n\t\tisSync\n\t\t\t? ( draw(model),\n\t\t\t\tstate === 2 && (state = 1)\n\t\t\t\t)\n\t\t\t: ( state === 0 && _Browser_requestAnimationFrame(updateIfNeeded),\n\t\t\t\tstate = 2\n\t\t\t\t);\n\t};\n}\n\n\n\n// APPLICATION\n\n\nfunction _Browser_application(impl)\n{\n\tvar onUrlChange = impl.aX;\n\tvar onUrlRequest = impl.aY;\n\tvar key = function() { key.a(onUrlChange(_Browser_getUrl())); };\n\n\treturn _Browser_document({\n\t\tS: function(sendToApp)\n\t\t{\n\t\t\tkey.a = sendToApp;\n\t\t\t_Browser_window.addEventListener('popstate', key);\n\t\t\t_Browser_window.navigator.userAgent.indexOf('Trident') < 0 || _Browser_window.addEventListener('hashchange', key);\n\n\t\t\treturn F2(function(domNode, event)\n\t\t\t{\n\t\t\t\tif (!event.ctrlKey && !event.metaKey && !event.shiftKey && event.button < 1 && !domNode.target && !domNode.download)\n\t\t\t\t{\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tvar href = domNode.href;\n\t\t\t\t\tvar curr = _Browser_getUrl();\n\t\t\t\t\tvar next = elm$url$Url$fromString(href).a;\n\t\t\t\t\tsendToApp(onUrlRequest(\n\t\t\t\t\t\t(next\n\t\t\t\t\t\t\t&& curr.ax === next.ax\n\t\t\t\t\t\t\t&& curr.am === next.am\n\t\t\t\t\t\t\t&& curr.au.a === next.au.a\n\t\t\t\t\t\t)\n\t\t\t\t\t\t\t? elm$browser$Browser$Internal(next)\n\t\t\t\t\t\t\t: elm$browser$Browser$External(href)\n\t\t\t\t\t));\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\t\taU: function(flags)\n\t\t{\n\t\t\treturn A3(impl.aU, flags, _Browser_getUrl(), key);\n\t\t},\n\t\ta6: impl.a6,\n\t\ta4: impl.a4,\n\t\ta1: impl.a1\n\t});\n}\n\nfunction _Browser_getUrl()\n{\n\treturn elm$url$Url$fromString(_VirtualDom_doc.location.href).a || _Debug_crash(1);\n}\n\nvar _Browser_go = F2(function(key, n)\n{\n\treturn A2(elm$core$Task$perform, elm$core$Basics$never, _Scheduler_binding(function() {\n\t\tn && history.go(n);\n\t\tkey();\n\t}));\n});\n\nvar _Browser_pushUrl = F2(function(key, url)\n{\n\treturn A2(elm$core$Task$perform, elm$core$Basics$never, _Scheduler_binding(function() {\n\t\thistory.pushState({}, '', url);\n\t\tkey();\n\t}));\n});\n\nvar _Browser_replaceUrl = F2(function(key, url)\n{\n\treturn A2(elm$core$Task$perform, elm$core$Basics$never, _Scheduler_binding(function() {\n\t\thistory.replaceState({}, '', url);\n\t\tkey();\n\t}));\n});\n\n\n\n// GLOBAL EVENTS\n\n\nvar _Browser_fakeNode = { addEventListener: function() {}, removeEventListener: function() {} };\nvar _Browser_doc = typeof document !== 'undefined' ? document : _Browser_fakeNode;\nvar _Browser_window = typeof window !== 'undefined' ? window : _Browser_fakeNode;\n\nvar _Browser_on = F3(function(node, eventName, sendToSelf)\n{\n\treturn _Scheduler_spawn(_Scheduler_binding(function(callback)\n\t{\n\t\tfunction handler(event)\t{ _Scheduler_rawSpawn(sendToSelf(event)); }\n\t\tnode.addEventListener(eventName, handler, _VirtualDom_passiveSupported && { passive: true });\n\t\treturn function() { node.removeEventListener(eventName, handler); };\n\t}));\n});\n\nvar _Browser_decodeEvent = F2(function(decoder, event)\n{\n\tvar result = _Json_runHelp(decoder, event);\n\treturn elm$core$Result$isOk(result) ? elm$core$Maybe$Just(result.a) : elm$core$Maybe$Nothing;\n});\n\n\n\n// PAGE VISIBILITY\n\n\nfunction _Browser_visibilityInfo()\n{\n\treturn (typeof _VirtualDom_doc.hidden !== 'undefined')\n\t\t? { aS: 'hidden', O: 'visibilitychange' }\n\t\t:\n\t(typeof _VirtualDom_doc.mozHidden !== 'undefined')\n\t\t? { aS: 'mozHidden', O: 'mozvisibilitychange' }\n\t\t:\n\t(typeof _VirtualDom_doc.msHidden !== 'undefined')\n\t\t? { aS: 'msHidden', O: 'msvisibilitychange' }\n\t\t:\n\t(typeof _VirtualDom_doc.webkitHidden !== 'undefined')\n\t\t? { aS: 'webkitHidden', O: 'webkitvisibilitychange' }\n\t\t: { aS: 'hidden', O: 'visibilitychange' };\n}\n\n\n\n// ANIMATION FRAMES\n\n\nfunction _Browser_rAF()\n{\n\treturn _Scheduler_binding(function(callback)\n\t{\n\t\tvar id = requestAnimationFrame(function() {\n\t\t\tcallback(_Scheduler_succeed(Date.now()));\n\t\t});\n\n\t\treturn function() {\n\t\t\tcancelAnimationFrame(id);\n\t\t};\n\t});\n}\n\n\nfunction _Browser_now()\n{\n\treturn _Scheduler_binding(function(callback)\n\t{\n\t\tcallback(_Scheduler_succeed(Date.now()));\n\t});\n}\n\n\n\n// DOM STUFF\n\n\nfunction _Browser_withNode(id, doStuff)\n{\n\treturn _Scheduler_binding(function(callback)\n\t{\n\t\t_Browser_requestAnimationFrame(function() {\n\t\t\tvar node = document.getElementById(id);\n\t\t\tcallback(node\n\t\t\t\t? _Scheduler_succeed(doStuff(node))\n\t\t\t\t: _Scheduler_fail(elm$browser$Browser$Dom$NotFound(id))\n\t\t\t);\n\t\t});\n\t});\n}\n\n\nfunction _Browser_withWindow(doStuff)\n{\n\treturn _Scheduler_binding(function(callback)\n\t{\n\t\t_Browser_requestAnimationFrame(function() {\n\t\t\tcallback(_Scheduler_succeed(doStuff()));\n\t\t});\n\t});\n}\n\n\n// FOCUS and BLUR\n\n\nvar _Browser_call = F2(function(functionName, id)\n{\n\treturn _Browser_withNode(id, function(node) {\n\t\tnode[functionName]();\n\t\treturn _Utils_Tuple0;\n\t});\n});\n\n\n\n// WINDOW VIEWPORT\n\n\nfunction _Browser_getViewport()\n{\n\treturn {\n\t\taC: _Browser_getScene(),\n\t\taF: {\n\t\t\tr: _Browser_window.pageXOffset,\n\t\t\ts: _Browser_window.pageYOffset,\n\t\t\taG: _Browser_doc.documentElement.clientWidth,\n\t\t\tal: _Browser_doc.documentElement.clientHeight\n\t\t}\n\t};\n}\n\nfunction _Browser_getScene()\n{\n\tvar body = _Browser_doc.body;\n\tvar elem = _Browser_doc.documentElement;\n\treturn {\n\t\taG: Math.max(body.scrollWidth, body.offsetWidth, elem.scrollWidth, elem.offsetWidth, elem.clientWidth),\n\t\tal: Math.max(body.scrollHeight, body.offsetHeight, elem.scrollHeight, elem.offsetHeight, elem.clientHeight)\n\t};\n}\n\nvar _Browser_setViewport = F2(function(x, y)\n{\n\treturn _Browser_withWindow(function()\n\t{\n\t\t_Browser_window.scroll(x, y);\n\t\treturn _Utils_Tuple0;\n\t});\n});\n\n\n\n// ELEMENT VIEWPORT\n\n\nfunction _Browser_getViewportOf(id)\n{\n\treturn _Browser_withNode(id, function(node)\n\t{\n\t\treturn {\n\t\t\taC: {\n\t\t\t\taG: node.scrollWidth,\n\t\t\t\tal: node.scrollHeight\n\t\t\t},\n\t\t\taF: {\n\t\t\t\tr: node.scrollLeft,\n\t\t\t\ts: node.scrollTop,\n\t\t\t\taG: node.clientWidth,\n\t\t\t\tal: node.clientHeight\n\t\t\t}\n\t\t};\n\t});\n}\n\n\nvar _Browser_setViewportOf = F3(function(id, x, y)\n{\n\treturn _Browser_withNode(id, function(node)\n\t{\n\t\tnode.scrollLeft = x;\n\t\tnode.scrollTop = y;\n\t\treturn _Utils_Tuple0;\n\t});\n});\n\n\n\n// ELEMENT\n\n\nfunction _Browser_getElement(id)\n{\n\treturn _Browser_withNode(id, function(node)\n\t{\n\t\tvar rect = node.getBoundingClientRect();\n\t\tvar x = _Browser_window.pageXOffset;\n\t\tvar y = _Browser_window.pageYOffset;\n\t\treturn {\n\t\t\taC: _Browser_getScene(),\n\t\t\taF: {\n\t\t\t\tr: x,\n\t\t\t\ts: y,\n\t\t\t\taG: _Browser_doc.documentElement.clientWidth,\n\t\t\t\tal: _Browser_doc.documentElement.clientHeight\n\t\t\t},\n\t\t\taN: {\n\t\t\t\tr: x + rect.left,\n\t\t\t\ts: y + rect.top,\n\t\t\t\taG: rect.width,\n\t\t\t\tal: rect.height\n\t\t\t}\n\t\t};\n\t});\n}\n\n\n\n// LOAD and RELOAD\n\n\nfunction _Browser_reload(skipCache)\n{\n\treturn A2(elm$core$Task$perform, elm$core$Basics$never, _Scheduler_binding(function(callback)\n\t{\n\t\t_VirtualDom_doc.location.reload(skipCache);\n\t}));\n}\n\nfunction _Browser_load(url)\n{\n\treturn A2(elm$core$Task$perform, elm$core$Basics$never, _Scheduler_binding(function(callback)\n\t{\n\t\ttry\n\t\t{\n\t\t\t_Browser_window.location = url;\n\t\t}\n\t\tcatch(err)\n\t\t{\n\t\t\t// Only Firefox can throw a NS_ERROR_MALFORMED_URI exception here.\n\t\t\t// Other browsers reload the page, so let's be consistent about that.\n\t\t\t_VirtualDom_doc.location.reload(false);\n\t\t}\n\t}));\n}\n\n\n\nvar _Bitwise_and = F2(function(a, b)\n{\n\treturn a & b;\n});\n\nvar _Bitwise_or = F2(function(a, b)\n{\n\treturn a | b;\n});\n\nvar _Bitwise_xor = F2(function(a, b)\n{\n\treturn a ^ b;\n});\n\nfunction _Bitwise_complement(a)\n{\n\treturn ~a;\n};\n\nvar _Bitwise_shiftLeftBy = F2(function(offset, a)\n{\n\treturn a << offset;\n});\n\nvar _Bitwise_shiftRightBy = F2(function(offset, a)\n{\n\treturn a >> offset;\n});\n\nvar _Bitwise_shiftRightZfBy = F2(function(offset, a)\n{\n\treturn a >>> offset;\n});\n\n\n\nfunction _Time_now(millisToPosix)\n{\n\treturn _Scheduler_binding(function(callback)\n\t{\n\t\tcallback(_Scheduler_succeed(millisToPosix(Date.now())));\n\t});\n}\n\nvar _Time_setInterval = F2(function(interval, task)\n{\n\treturn _Scheduler_binding(function(callback)\n\t{\n\t\tvar id = setInterval(function() { _Scheduler_rawSpawn(task); }, interval);\n\t\treturn function() { clearInterval(id); };\n\t});\n});\n\nfunction _Time_here()\n{\n\treturn _Scheduler_binding(function(callback)\n\t{\n\t\tcallback(_Scheduler_succeed(\n\t\t\tA2(elm$time$Time$customZone, -(new Date().getTimezoneOffset()), _List_Nil)\n\t\t));\n\t});\n}\n\n\nfunction _Time_getZoneName()\n{\n\treturn _Scheduler_binding(function(callback)\n\t{\n\t\ttry\n\t\t{\n\t\t\tvar name = elm$time$Time$Name(Intl.DateTimeFormat().resolvedOptions().timeZone);\n\t\t}\n\t\tcatch (e)\n\t\t{\n\t\t\tvar name = elm$time$Time$Offset(new Date().getTimezoneOffset());\n\t\t}\n\t\tcallback(_Scheduler_succeed(name));\n\t});\n}\nvar author$project$Msg$Tick = function (a) {\n\treturn {$: 5, a: a};\n};\nvar elm$browser$Browser$AnimationManager$Delta = function (a) {\n\treturn {$: 1, a: a};\n};\nvar elm$browser$Browser$AnimationManager$State = F3(\n\tfunction (subs, request, oldTime) {\n\t\treturn {aa: oldTime, aA: request, aD: subs};\n\t});\nvar elm$core$Maybe$Nothing = {$: 1};\nvar elm$core$Elm$JsArray$foldr = _JsArray_foldr;\nvar elm$core$Array$foldr = F3(\n\tfunction (func, baseCase, _n0) {\n\t\tvar tree = _n0.c;\n\t\tvar tail = _n0.d;\n\t\tvar helper = F2(\n\t\t\tfunction (node, acc) {\n\t\t\t\tif (!node.$) {\n\t\t\t\t\tvar subTree = node.a;\n\t\t\t\t\treturn A3(elm$core$Elm$JsArray$foldr, helper, acc, subTree);\n\t\t\t\t} else {\n\t\t\t\t\tvar values = node.a;\n\t\t\t\t\treturn A3(elm$core$Elm$JsArray$foldr, func, acc, values);\n\t\t\t\t}\n\t\t\t});\n\t\treturn A3(\n\t\t\telm$core$Elm$JsArray$foldr,\n\t\t\thelper,\n\t\t\tA3(elm$core$Elm$JsArray$foldr, func, baseCase, tail),\n\t\t\ttree);\n\t});\nvar elm$core$Basics$EQ = 1;\nvar elm$core$Basics$LT = 0;\nvar elm$core$List$cons = _List_cons;\nvar elm$core$Array$toList = function (array) {\n\treturn A3(elm$core$Array$foldr, elm$core$List$cons, _List_Nil, array);\n};\nvar elm$core$Basics$GT = 2;\nvar elm$core$Dict$foldr = F3(\n\tfunction (func, acc, t) {\n\t\tfoldr:\n\t\twhile (true) {\n\t\t\tif (t.$ === -2) {\n\t\t\t\treturn acc;\n\t\t\t} else {\n\t\t\t\tvar key = t.b;\n\t\t\t\tvar value = t.c;\n\t\t\t\tvar left = t.d;\n\t\t\t\tvar right = t.e;\n\t\t\t\tvar $temp$func = func,\n\t\t\t\t\t$temp$acc = A3(\n\t\t\t\t\tfunc,\n\t\t\t\t\tkey,\n\t\t\t\t\tvalue,\n\t\t\t\t\tA3(elm$core$Dict$foldr, func, acc, right)),\n\t\t\t\t\t$temp$t = left;\n\t\t\t\tfunc = $temp$func;\n\t\t\t\tacc = $temp$acc;\n\t\t\t\tt = $temp$t;\n\t\t\t\tcontinue foldr;\n\t\t\t}\n\t\t}\n\t});\nvar elm$core$Dict$toList = function (dict) {\n\treturn A3(\n\t\telm$core$Dict$foldr,\n\t\tF3(\n\t\t\tfunction (key, value, list) {\n\t\t\t\treturn A2(\n\t\t\t\t\telm$core$List$cons,\n\t\t\t\t\t_Utils_Tuple2(key, value),\n\t\t\t\t\tlist);\n\t\t\t}),\n\t\t_List_Nil,\n\t\tdict);\n};\nvar elm$core$Dict$keys = function (dict) {\n\treturn A3(\n\t\telm$core$Dict$foldr,\n\t\tF3(\n\t\t\tfunction (key, value, keyList) {\n\t\t\t\treturn A2(elm$core$List$cons, key, keyList);\n\t\t\t}),\n\t\t_List_Nil,\n\t\tdict);\n};\nvar elm$core$Set$toList = function (_n0) {\n\tvar dict = _n0;\n\treturn elm$core$Dict$keys(dict);\n};\nvar elm$core$Task$succeed = _Scheduler_succeed;\nvar elm$browser$Browser$AnimationManager$init = elm$core$Task$succeed(\n\tA3(elm$browser$Browser$AnimationManager$State, _List_Nil, elm$core$Maybe$Nothing, 0));\nvar elm$browser$Browser$External = function (a) {\n\treturn {$: 1, a: a};\n};\nvar elm$browser$Browser$Internal = function (a) {\n\treturn {$: 0, a: a};\n};\nvar elm$browser$Browser$Dom$NotFound = elm$core$Basics$identity;\nvar elm$core$Basics$never = function (_n0) {\n\tnever:\n\twhile (true) {\n\t\tvar nvr = _n0;\n\t\tvar $temp$_n0 = nvr;\n\t\t_n0 = $temp$_n0;\n\t\tcontinue never;\n\t}\n};\nvar elm$core$Maybe$Just = function (a) {\n\treturn {$: 0, a: a};\n};\nvar elm$core$Basics$False = 1;\nvar elm$core$Basics$True = 0;\nvar elm$core$Result$isOk = function (result) {\n\tif (!result.$) {\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n};\nvar elm$core$Basics$identity = function (x) {\n\treturn x;\n};\nvar elm$core$Task$Perform = elm$core$Basics$identity;\nvar elm$core$Task$init = elm$core$Task$succeed(0);\nvar elm$core$Basics$add = _Basics_add;\nvar elm$core$Basics$gt = _Utils_gt;\nvar elm$core$List$foldl = F3(\n\tfunction (func, acc, list) {\n\t\tfoldl:\n\t\twhile (true) {\n\t\t\tif (!list.b) {\n\t\t\t\treturn acc;\n\t\t\t} else {\n\t\t\t\tvar x = list.a;\n\t\t\t\tvar xs = list.b;\n\t\t\t\tvar $temp$func = func,\n\t\t\t\t\t$temp$acc = A2(func, x, acc),\n\t\t\t\t\t$temp$list = xs;\n\t\t\t\tfunc = $temp$func;\n\t\t\t\tacc = $temp$acc;\n\t\t\t\tlist = $temp$list;\n\t\t\t\tcontinue foldl;\n\t\t\t}\n\t\t}\n\t});\nvar elm$core$List$reverse = function (list) {\n\treturn A3(elm$core$List$foldl, elm$core$List$cons, _List_Nil, list);\n};\nvar elm$core$List$foldrHelper = F4(\n\tfunction (fn, acc, ctr, ls) {\n\t\tif (!ls.b) {\n\t\t\treturn acc;\n\t\t} else {\n\t\t\tvar a = ls.a;\n\t\t\tvar r1 = ls.b;\n\t\t\tif (!r1.b) {\n\t\t\t\treturn A2(fn, a, acc);\n\t\t\t} else {\n\t\t\t\tvar b = r1.a;\n\t\t\t\tvar r2 = r1.b;\n\t\t\t\tif (!r2.b) {\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\tfn,\n\t\t\t\t\t\ta,\n\t\t\t\t\t\tA2(fn, b, acc));\n\t\t\t\t} else {\n\t\t\t\t\tvar c = r2.a;\n\t\t\t\t\tvar r3 = r2.b;\n\t\t\t\t\tif (!r3.b) {\n\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\tfn,\n\t\t\t\t\t\t\ta,\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\tfn,\n\t\t\t\t\t\t\t\tb,\n\t\t\t\t\t\t\t\tA2(fn, c, acc)));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar d = r3.a;\n\t\t\t\t\t\tvar r4 = r3.b;\n\t\t\t\t\t\tvar res = (ctr > 500) ? A3(\n\t\t\t\t\t\t\telm$core$List$foldl,\n\t\t\t\t\t\t\tfn,\n\t\t\t\t\t\t\tacc,\n\t\t\t\t\t\t\telm$core$List$reverse(r4)) : A4(elm$core$List$foldrHelper, fn, acc, ctr + 1, r4);\n\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\tfn,\n\t\t\t\t\t\t\ta,\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\tfn,\n\t\t\t\t\t\t\t\tb,\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\tfn,\n\t\t\t\t\t\t\t\t\tc,\n\t\t\t\t\t\t\t\t\tA2(fn, d, res))));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\nvar elm$core$List$foldr = F3(\n\tfunction (fn, acc, ls) {\n\t\treturn A4(elm$core$List$foldrHelper, fn, acc, 0, ls);\n\t});\nvar elm$core$List$map = F2(\n\tfunction (f, xs) {\n\t\treturn A3(\n\t\t\telm$core$List$foldr,\n\t\t\tF2(\n\t\t\t\tfunction (x, acc) {\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\telm$core$List$cons,\n\t\t\t\t\t\tf(x),\n\t\t\t\t\t\tacc);\n\t\t\t\t}),\n\t\t\t_List_Nil,\n\t\t\txs);\n\t});\nvar elm$core$Basics$apR = F2(\n\tfunction (x, f) {\n\t\treturn f(x);\n\t});\nvar elm$core$Task$andThen = _Scheduler_andThen;\nvar elm$core$Task$map = F2(\n\tfunction (func, taskA) {\n\t\treturn A2(\n\t\t\telm$core$Task$andThen,\n\t\t\tfunction (a) {\n\t\t\t\treturn elm$core$Task$succeed(\n\t\t\t\t\tfunc(a));\n\t\t\t},\n\t\t\ttaskA);\n\t});\nvar elm$core$Task$map2 = F3(\n\tfunction (func, taskA, taskB) {\n\t\treturn A2(\n\t\t\telm$core$Task$andThen,\n\t\t\tfunction (a) {\n\t\t\t\treturn A2(\n\t\t\t\t\telm$core$Task$andThen,\n\t\t\t\t\tfunction (b) {\n\t\t\t\t\t\treturn elm$core$Task$succeed(\n\t\t\t\t\t\t\tA2(func, a, b));\n\t\t\t\t\t},\n\t\t\t\t\ttaskB);\n\t\t\t},\n\t\t\ttaskA);\n\t});\nvar elm$core$Task$sequence = function (tasks) {\n\treturn A3(\n\t\telm$core$List$foldr,\n\t\telm$core$Task$map2(elm$core$List$cons),\n\t\telm$core$Task$succeed(_List_Nil),\n\t\ttasks);\n};\nvar elm$core$Array$branchFactor = 32;\nvar elm$core$Array$Array_elm_builtin = F4(\n\tfunction (a, b, c, d) {\n\t\treturn {$: 0, a: a, b: b, c: c, d: d};\n\t});\nvar elm$core$Basics$ceiling = _Basics_ceiling;\nvar elm$core$Basics$fdiv = _Basics_fdiv;\nvar elm$core$Basics$logBase = F2(\n\tfunction (base, number) {\n\t\treturn _Basics_log(number) / _Basics_log(base);\n\t});\nvar elm$core$Basics$toFloat = _Basics_toFloat;\nvar elm$core$Array$shiftStep = elm$core$Basics$ceiling(\n\tA2(elm$core$Basics$logBase, 2, elm$core$Array$branchFactor));\nvar elm$core$Elm$JsArray$empty = _JsArray_empty;\nvar elm$core$Array$empty = A4(elm$core$Array$Array_elm_builtin, 0, elm$core$Array$shiftStep, elm$core$Elm$JsArray$empty, elm$core$Elm$JsArray$empty);\nvar elm$core$Array$Leaf = function (a) {\n\treturn {$: 1, a: a};\n};\nvar elm$core$Array$SubTree = function (a) {\n\treturn {$: 0, a: a};\n};\nvar elm$core$Elm$JsArray$initializeFromList = _JsArray_initializeFromList;\nvar elm$core$Array$compressNodes = F2(\n\tfunction (nodes, acc) {\n\t\tcompressNodes:\n\t\twhile (true) {\n\t\t\tvar _n0 = A2(elm$core$Elm$JsArray$initializeFromList, elm$core$Array$branchFactor, nodes);\n\t\t\tvar node = _n0.a;\n\t\t\tvar remainingNodes = _n0.b;\n\t\t\tvar newAcc = A2(\n\t\t\t\telm$core$List$cons,\n\t\t\t\telm$core$Array$SubTree(node),\n\t\t\t\tacc);\n\t\t\tif (!remainingNodes.b) {\n\t\t\t\treturn elm$core$List$reverse(newAcc);\n\t\t\t} else {\n\t\t\t\tvar $temp$nodes = remainingNodes,\n\t\t\t\t\t$temp$acc = newAcc;\n\t\t\t\tnodes = $temp$nodes;\n\t\t\t\tacc = $temp$acc;\n\t\t\t\tcontinue compressNodes;\n\t\t\t}\n\t\t}\n\t});\nvar elm$core$Basics$eq = _Utils_equal;\nvar elm$core$Tuple$first = function (_n0) {\n\tvar x = _n0.a;\n\treturn x;\n};\nvar elm$core$Array$treeFromBuilder = F2(\n\tfunction (nodeList, nodeListSize) {\n\t\ttreeFromBuilder:\n\t\twhile (true) {\n\t\t\tvar newNodeSize = elm$core$Basics$ceiling(nodeListSize / elm$core$Array$branchFactor);\n\t\t\tif (newNodeSize === 1) {\n\t\t\t\treturn A2(elm$core$Elm$JsArray$initializeFromList, elm$core$Array$branchFactor, nodeList).a;\n\t\t\t} else {\n\t\t\t\tvar $temp$nodeList = A2(elm$core$Array$compressNodes, nodeList, _List_Nil),\n\t\t\t\t\t$temp$nodeListSize = newNodeSize;\n\t\t\t\tnodeList = $temp$nodeList;\n\t\t\t\tnodeListSize = $temp$nodeListSize;\n\t\t\t\tcontinue treeFromBuilder;\n\t\t\t}\n\t\t}\n\t});\nvar elm$core$Basics$apL = F2(\n\tfunction (f, x) {\n\t\treturn f(x);\n\t});\nvar elm$core$Basics$floor = _Basics_floor;\nvar elm$core$Basics$max = F2(\n\tfunction (x, y) {\n\t\treturn (_Utils_cmp(x, y) > 0) ? x : y;\n\t});\nvar elm$core$Basics$mul = _Basics_mul;\nvar elm$core$Basics$sub = _Basics_sub;\nvar elm$core$Elm$JsArray$length = _JsArray_length;\nvar elm$core$Array$builderToArray = F2(\n\tfunction (reverseNodeList, builder) {\n\t\tif (!builder.a) {\n\t\t\treturn A4(\n\t\t\t\telm$core$Array$Array_elm_builtin,\n\t\t\t\telm$core$Elm$JsArray$length(builder.c),\n\t\t\t\telm$core$Array$shiftStep,\n\t\t\t\telm$core$Elm$JsArray$empty,\n\t\t\t\tbuilder.c);\n\t\t} else {\n\t\t\tvar treeLen = builder.a * elm$core$Array$branchFactor;\n\t\t\tvar depth = elm$core$Basics$floor(\n\t\t\t\tA2(elm$core$Basics$logBase, elm$core$Array$branchFactor, treeLen - 1));\n\t\t\tvar correctNodeList = reverseNodeList ? elm$core$List$reverse(builder.d) : builder.d;\n\t\t\tvar tree = A2(elm$core$Array$treeFromBuilder, correctNodeList, builder.a);\n\t\t\treturn A4(\n\t\t\t\telm$core$Array$Array_elm_builtin,\n\t\t\t\telm$core$Elm$JsArray$length(builder.c) + treeLen,\n\t\t\t\tA2(elm$core$Basics$max, 5, depth * elm$core$Array$shiftStep),\n\t\t\t\ttree,\n\t\t\t\tbuilder.c);\n\t\t}\n\t});\nvar elm$core$Basics$idiv = _Basics_idiv;\nvar elm$core$Basics$lt = _Utils_lt;\nvar elm$core$Elm$JsArray$initialize = _JsArray_initialize;\nvar elm$core$Array$initializeHelp = F5(\n\tfunction (fn, fromIndex, len, nodeList, tail) {\n\t\tinitializeHelp:\n\t\twhile (true) {\n\t\t\tif (fromIndex < 0) {\n\t\t\t\treturn A2(\n\t\t\t\t\telm$core$Array$builderToArray,\n\t\t\t\t\tfalse,\n\t\t\t\t\t{d: nodeList, a: (len / elm$core$Array$branchFactor) | 0, c: tail});\n\t\t\t} else {\n\t\t\t\tvar leaf = elm$core$Array$Leaf(\n\t\t\t\t\tA3(elm$core$Elm$JsArray$initialize, elm$core$Array$branchFactor, fromIndex, fn));\n\t\t\t\tvar $temp$fn = fn,\n\t\t\t\t\t$temp$fromIndex = fromIndex - elm$core$Array$branchFactor,\n\t\t\t\t\t$temp$len = len,\n\t\t\t\t\t$temp$nodeList = A2(elm$core$List$cons, leaf, nodeList),\n\t\t\t\t\t$temp$tail = tail;\n\t\t\t\tfn = $temp$fn;\n\t\t\t\tfromIndex = $temp$fromIndex;\n\t\t\t\tlen = $temp$len;\n\t\t\t\tnodeList = $temp$nodeList;\n\t\t\t\ttail = $temp$tail;\n\t\t\t\tcontinue initializeHelp;\n\t\t\t}\n\t\t}\n\t});\nvar elm$core$Basics$le = _Utils_le;\nvar elm$core$Basics$remainderBy = _Basics_remainderBy;\nvar elm$core$Array$initialize = F2(\n\tfunction (len, fn) {\n\t\tif (len <= 0) {\n\t\t\treturn elm$core$Array$empty;\n\t\t} else {\n\t\t\tvar tailLen = len % elm$core$Array$branchFactor;\n\t\t\tvar tail = A3(elm$core$Elm$JsArray$initialize, tailLen, len - tailLen, fn);\n\t\t\tvar initialFromIndex = (len - tailLen) - elm$core$Array$branchFactor;\n\t\t\treturn A5(elm$core$Array$initializeHelp, fn, initialFromIndex, len, _List_Nil, tail);\n\t\t}\n\t});\nvar elm$core$Result$Err = function (a) {\n\treturn {$: 1, a: a};\n};\nvar elm$core$Result$Ok = function (a) {\n\treturn {$: 0, a: a};\n};\nvar elm$json$Json$Decode$Failure = F2(\n\tfunction (a, b) {\n\t\treturn {$: 3, a: a, b: b};\n\t});\nvar elm$json$Json$Decode$Field = F2(\n\tfunction (a, b) {\n\t\treturn {$: 0, a: a, b: b};\n\t});\nvar elm$json$Json$Decode$Index = F2(\n\tfunction (a, b) {\n\t\treturn {$: 1, a: a, b: b};\n\t});\nvar elm$json$Json$Decode$OneOf = function (a) {\n\treturn {$: 2, a: a};\n};\nvar elm$core$Basics$and = _Basics_and;\nvar elm$core$Basics$append = _Utils_append;\nvar elm$core$Basics$or = _Basics_or;\nvar elm$core$Char$toCode = _Char_toCode;\nvar elm$core$Char$isLower = function (_char) {\n\tvar code = elm$core$Char$toCode(_char);\n\treturn (97 <= code) && (code <= 122);\n};\nvar elm$core$Char$isUpper = function (_char) {\n\tvar code = elm$core$Char$toCode(_char);\n\treturn (code <= 90) && (65 <= code);\n};\nvar elm$core$Char$isAlpha = function (_char) {\n\treturn elm$core$Char$isLower(_char) || elm$core$Char$isUpper(_char);\n};\nvar elm$core$Char$isDigit = function (_char) {\n\tvar code = elm$core$Char$toCode(_char);\n\treturn (code <= 57) && (48 <= code);\n};\nvar elm$core$Char$isAlphaNum = function (_char) {\n\treturn elm$core$Char$isLower(_char) || (elm$core$Char$isUpper(_char) || elm$core$Char$isDigit(_char));\n};\nvar elm$core$List$length = function (xs) {\n\treturn A3(\n\t\telm$core$List$foldl,\n\t\tF2(\n\t\t\tfunction (_n0, i) {\n\t\t\t\treturn i + 1;\n\t\t\t}),\n\t\t0,\n\t\txs);\n};\nvar elm$core$List$map2 = _List_map2;\nvar elm$core$List$rangeHelp = F3(\n\tfunction (lo, hi, list) {\n\t\trangeHelp:\n\t\twhile (true) {\n\t\t\tif (_Utils_cmp(lo, hi) < 1) {\n\t\t\t\tvar $temp$lo = lo,\n\t\t\t\t\t$temp$hi = hi - 1,\n\t\t\t\t\t$temp$list = A2(elm$core$List$cons, hi, list);\n\t\t\t\tlo = $temp$lo;\n\t\t\t\thi = $temp$hi;\n\t\t\t\tlist = $temp$list;\n\t\t\t\tcontinue rangeHelp;\n\t\t\t} else {\n\t\t\t\treturn list;\n\t\t\t}\n\t\t}\n\t});\nvar elm$core$List$range = F2(\n\tfunction (lo, hi) {\n\t\treturn A3(elm$core$List$rangeHelp, lo, hi, _List_Nil);\n\t});\nvar elm$core$List$indexedMap = F2(\n\tfunction (f, xs) {\n\t\treturn A3(\n\t\t\telm$core$List$map2,\n\t\t\tf,\n\t\t\tA2(\n\t\t\t\telm$core$List$range,\n\t\t\t\t0,\n\t\t\t\telm$core$List$length(xs) - 1),\n\t\t\txs);\n\t});\nvar elm$core$String$all = _String_all;\nvar elm$core$String$fromInt = _String_fromNumber;\nvar elm$core$String$join = F2(\n\tfunction (sep, chunks) {\n\t\treturn A2(\n\t\t\t_String_join,\n\t\t\tsep,\n\t\t\t_List_toArray(chunks));\n\t});\nvar elm$core$String$uncons = _String_uncons;\nvar elm$core$String$split = F2(\n\tfunction (sep, string) {\n\t\treturn _List_fromArray(\n\t\t\tA2(_String_split, sep, string));\n\t});\nvar elm$json$Json$Decode$indent = function (str) {\n\treturn A2(\n\t\telm$core$String$join,\n\t\t'\\n ',\n\t\tA2(elm$core$String$split, '\\n', str));\n};\nvar elm$json$Json$Encode$encode = _Json_encode;\nvar elm$json$Json$Decode$errorOneOf = F2(\n\tfunction (i, error) {\n\t\treturn '\\n\\n(' + (elm$core$String$fromInt(i + 1) + (') ' + elm$json$Json$Decode$indent(\n\t\t\telm$json$Json$Decode$errorToString(error))));\n\t});\nvar elm$json$Json$Decode$errorToString = function (error) {\n\treturn A2(elm$json$Json$Decode$errorToStringHelp, error, _List_Nil);\n};\nvar elm$json$Json$Decode$errorToStringHelp = F2(\n\tfunction (error, context) {\n\t\terrorToStringHelp:\n\t\twhile (true) {\n\t\t\tswitch (error.$) {\n\t\t\t\tcase 0:\n\t\t\t\t\tvar f = error.a;\n\t\t\t\t\tvar err = error.b;\n\t\t\t\t\tvar isSimple = function () {\n\t\t\t\t\t\tvar _n1 = elm$core$String$uncons(f);\n\t\t\t\t\t\tif (_n1.$ === 1) {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar _n2 = _n1.a;\n\t\t\t\t\t\t\tvar _char = _n2.a;\n\t\t\t\t\t\t\tvar rest = _n2.b;\n\t\t\t\t\t\t\treturn elm$core$Char$isAlpha(_char) && A2(elm$core$String$all, elm$core$Char$isAlphaNum, rest);\n\t\t\t\t\t\t}\n\t\t\t\t\t}();\n\t\t\t\t\tvar fieldName = isSimple ? ('.' + f) : ('[\\'' + (f + '\\']'));\n\t\t\t\t\tvar $temp$error = err,\n\t\t\t\t\t\t$temp$context = A2(elm$core$List$cons, fieldName, context);\n\t\t\t\t\terror = $temp$error;\n\t\t\t\t\tcontext = $temp$context;\n\t\t\t\t\tcontinue errorToStringHelp;\n\t\t\t\tcase 1:\n\t\t\t\t\tvar i = error.a;\n\t\t\t\t\tvar err = error.b;\n\t\t\t\t\tvar indexName = '[' + (elm$core$String$fromInt(i) + ']');\n\t\t\t\t\tvar $temp$error = err,\n\t\t\t\t\t\t$temp$context = A2(elm$core$List$cons, indexName, context);\n\t\t\t\t\terror = $temp$error;\n\t\t\t\t\tcontext = $temp$context;\n\t\t\t\t\tcontinue errorToStringHelp;\n\t\t\t\tcase 2:\n\t\t\t\t\tvar errors = error.a;\n\t\t\t\t\tif (!errors.b) {\n\t\t\t\t\t\treturn 'Ran into a Json.Decode.oneOf with no possibilities' + function () {\n\t\t\t\t\t\t\tif (!context.b) {\n\t\t\t\t\t\t\t\treturn '!';\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn ' at json' + A2(\n\t\t\t\t\t\t\t\t\telm$core$String$join,\n\t\t\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t\t\t\telm$core$List$reverse(context));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (!errors.b.b) {\n\t\t\t\t\t\t\tvar err = errors.a;\n\t\t\t\t\t\t\tvar $temp$error = err,\n\t\t\t\t\t\t\t\t$temp$context = context;\n\t\t\t\t\t\t\terror = $temp$error;\n\t\t\t\t\t\t\tcontext = $temp$context;\n\t\t\t\t\t\t\tcontinue errorToStringHelp;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar starter = function () {\n\t\t\t\t\t\t\t\tif (!context.b) {\n\t\t\t\t\t\t\t\t\treturn 'Json.Decode.oneOf';\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\treturn 'The Json.Decode.oneOf at json' + A2(\n\t\t\t\t\t\t\t\t\t\telm$core$String$join,\n\t\t\t\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t\t\t\t\telm$core$List$reverse(context));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}();\n\t\t\t\t\t\t\tvar introduction = starter + (' failed in the following ' + (elm$core$String$fromInt(\n\t\t\t\t\t\t\t\telm$core$List$length(errors)) + ' ways:'));\n\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\telm$core$String$join,\n\t\t\t\t\t\t\t\t'\\n\\n',\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\telm$core$List$cons,\n\t\t\t\t\t\t\t\t\tintroduction,\n\t\t\t\t\t\t\t\t\tA2(elm$core$List$indexedMap, elm$json$Json$Decode$errorOneOf, errors)));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tvar msg = error.a;\n\t\t\t\t\tvar json = error.b;\n\t\t\t\t\tvar introduction = function () {\n\t\t\t\t\t\tif (!context.b) {\n\t\t\t\t\t\t\treturn 'Problem with the given value:\\n\\n';\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn 'Problem with the value at json' + (A2(\n\t\t\t\t\t\t\t\telm$core$String$join,\n\t\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t\t\telm$core$List$reverse(context)) + ':\\n\\n ');\n\t\t\t\t\t\t}\n\t\t\t\t\t}();\n\t\t\t\t\treturn introduction + (elm$json$Json$Decode$indent(\n\t\t\t\t\t\tA2(elm$json$Json$Encode$encode, 4, json)) + ('\\n\\n' + msg));\n\t\t\t}\n\t\t}\n\t});\nvar elm$core$Platform$sendToApp = _Platform_sendToApp;\nvar elm$core$Task$spawnCmd = F2(\n\tfunction (router, _n0) {\n\t\tvar task = _n0;\n\t\treturn _Scheduler_spawn(\n\t\t\tA2(\n\t\t\t\telm$core$Task$andThen,\n\t\t\t\telm$core$Platform$sendToApp(router),\n\t\t\t\ttask));\n\t});\nvar elm$core$Task$onEffects = F3(\n\tfunction (router, commands, state) {\n\t\treturn A2(\n\t\t\telm$core$Task$map,\n\t\t\tfunction (_n0) {\n\t\t\t\treturn 0;\n\t\t\t},\n\t\t\telm$core$Task$sequence(\n\t\t\t\tA2(\n\t\t\t\t\telm$core$List$map,\n\t\t\t\t\telm$core$Task$spawnCmd(router),\n\t\t\t\t\tcommands)));\n\t});\nvar elm$core$Task$onSelfMsg = F3(\n\tfunction (_n0, _n1, _n2) {\n\t\treturn elm$core$Task$succeed(0);\n\t});\nvar elm$core$Task$cmdMap = F2(\n\tfunction (tagger, _n0) {\n\t\tvar task = _n0;\n\t\treturn A2(elm$core$Task$map, tagger, task);\n\t});\n_Platform_effectManagers['Task'] = _Platform_createManager(elm$core$Task$init, elm$core$Task$onEffects, elm$core$Task$onSelfMsg, elm$core$Task$cmdMap);\nvar elm$core$Task$command = _Platform_leaf('Task');\nvar elm$core$Task$perform = F2(\n\tfunction (toMessage, task) {\n\t\treturn elm$core$Task$command(\n\t\t\tA2(elm$core$Task$map, toMessage, task));\n\t});\nvar elm$json$Json$Decode$map = _Json_map1;\nvar elm$json$Json$Decode$map2 = _Json_map2;\nvar elm$json$Json$Decode$succeed = _Json_succeed;\nvar elm$virtual_dom$VirtualDom$toHandlerInt = function (handler) {\n\tswitch (handler.$) {\n\t\tcase 0:\n\t\t\treturn 0;\n\t\tcase 1:\n\t\t\treturn 1;\n\t\tcase 2:\n\t\t\treturn 2;\n\t\tdefault:\n\t\t\treturn 3;\n\t}\n};\nvar elm$core$String$length = _String_length;\nvar elm$core$String$slice = _String_slice;\nvar elm$core$String$dropLeft = F2(\n\tfunction (n, string) {\n\t\treturn (n < 1) ? string : A3(\n\t\t\telm$core$String$slice,\n\t\t\tn,\n\t\t\telm$core$String$length(string),\n\t\t\tstring);\n\t});\nvar elm$core$String$startsWith = _String_startsWith;\nvar elm$url$Url$Http = 0;\nvar elm$url$Url$Https = 1;\nvar elm$core$String$indexes = _String_indexes;\nvar elm$core$String$isEmpty = function (string) {\n\treturn string === '';\n};\nvar elm$core$String$left = F2(\n\tfunction (n, string) {\n\t\treturn (n < 1) ? '' : A3(elm$core$String$slice, 0, n, string);\n\t});\nvar elm$core$String$contains = _String_contains;\nvar elm$core$String$toInt = _String_toInt;\nvar elm$url$Url$Url = F6(\n\tfunction (protocol, host, port_, path, query, fragment) {\n\t\treturn {aj: fragment, am: host, as: path, au: port_, ax: protocol, ay: query};\n\t});\nvar elm$url$Url$chompBeforePath = F5(\n\tfunction (protocol, path, params, frag, str) {\n\t\tif (elm$core$String$isEmpty(str) || A2(elm$core$String$contains, '@', str)) {\n\t\t\treturn elm$core$Maybe$Nothing;\n\t\t} else {\n\t\t\tvar _n0 = A2(elm$core$String$indexes, ':', str);\n\t\t\tif (!_n0.b) {\n\t\t\t\treturn elm$core$Maybe$Just(\n\t\t\t\t\tA6(elm$url$Url$Url, protocol, str, elm$core$Maybe$Nothing, path, params, frag));\n\t\t\t} else {\n\t\t\t\tif (!_n0.b.b) {\n\t\t\t\t\tvar i = _n0.a;\n\t\t\t\t\tvar _n1 = elm$core$String$toInt(\n\t\t\t\t\t\tA2(elm$core$String$dropLeft, i + 1, str));\n\t\t\t\t\tif (_n1.$ === 1) {\n\t\t\t\t\t\treturn elm$core$Maybe$Nothing;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar port_ = _n1;\n\t\t\t\t\t\treturn elm$core$Maybe$Just(\n\t\t\t\t\t\t\tA6(\n\t\t\t\t\t\t\t\telm$url$Url$Url,\n\t\t\t\t\t\t\t\tprotocol,\n\t\t\t\t\t\t\t\tA2(elm$core$String$left, i, str),\n\t\t\t\t\t\t\t\tport_,\n\t\t\t\t\t\t\t\tpath,\n\t\t\t\t\t\t\t\tparams,\n\t\t\t\t\t\t\t\tfrag));\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\treturn elm$core$Maybe$Nothing;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\nvar elm$url$Url$chompBeforeQuery = F4(\n\tfunction (protocol, params, frag, str) {\n\t\tif (elm$core$String$isEmpty(str)) {\n\t\t\treturn elm$core$Maybe$Nothing;\n\t\t} else {\n\t\t\tvar _n0 = A2(elm$core$String$indexes, '/', str);\n\t\t\tif (!_n0.b) {\n\t\t\t\treturn A5(elm$url$Url$chompBeforePath, protocol, '/', params, frag, str);\n\t\t\t} else {\n\t\t\t\tvar i = _n0.a;\n\t\t\t\treturn A5(\n\t\t\t\t\telm$url$Url$chompBeforePath,\n\t\t\t\t\tprotocol,\n\t\t\t\t\tA2(elm$core$String$dropLeft, i, str),\n\t\t\t\t\tparams,\n\t\t\t\t\tfrag,\n\t\t\t\t\tA2(elm$core$String$left, i, str));\n\t\t\t}\n\t\t}\n\t});\nvar elm$url$Url$chompBeforeFragment = F3(\n\tfunction (protocol, frag, str) {\n\t\tif (elm$core$String$isEmpty(str)) {\n\t\t\treturn elm$core$Maybe$Nothing;\n\t\t} else {\n\t\t\tvar _n0 = A2(elm$core$String$indexes, '?', str);\n\t\t\tif (!_n0.b) {\n\t\t\t\treturn A4(elm$url$Url$chompBeforeQuery, protocol, elm$core$Maybe$Nothing, frag, str);\n\t\t\t} else {\n\t\t\t\tvar i = _n0.a;\n\t\t\t\treturn A4(\n\t\t\t\t\telm$url$Url$chompBeforeQuery,\n\t\t\t\t\tprotocol,\n\t\t\t\t\telm$core$Maybe$Just(\n\t\t\t\t\t\tA2(elm$core$String$dropLeft, i + 1, str)),\n\t\t\t\t\tfrag,\n\t\t\t\t\tA2(elm$core$String$left, i, str));\n\t\t\t}\n\t\t}\n\t});\nvar elm$url$Url$chompAfterProtocol = F2(\n\tfunction (protocol, str) {\n\t\tif (elm$core$String$isEmpty(str)) {\n\t\t\treturn elm$core$Maybe$Nothing;\n\t\t} else {\n\t\t\tvar _n0 = A2(elm$core$String$indexes, '#', str);\n\t\t\tif (!_n0.b) {\n\t\t\t\treturn A3(elm$url$Url$chompBeforeFragment, protocol, elm$core$Maybe$Nothing, str);\n\t\t\t} else {\n\t\t\t\tvar i = _n0.a;\n\t\t\t\treturn A3(\n\t\t\t\t\telm$url$Url$chompBeforeFragment,\n\t\t\t\t\tprotocol,\n\t\t\t\t\telm$core$Maybe$Just(\n\t\t\t\t\t\tA2(elm$core$String$dropLeft, i + 1, str)),\n\t\t\t\t\tA2(elm$core$String$left, i, str));\n\t\t\t}\n\t\t}\n\t});\nvar elm$url$Url$fromString = function (str) {\n\treturn A2(elm$core$String$startsWith, 'http://', str) ? A2(\n\t\telm$url$Url$chompAfterProtocol,\n\t\t0,\n\t\tA2(elm$core$String$dropLeft, 7, str)) : (A2(elm$core$String$startsWith, 'https://', str) ? A2(\n\t\telm$url$Url$chompAfterProtocol,\n\t\t1,\n\t\tA2(elm$core$String$dropLeft, 8, str)) : elm$core$Maybe$Nothing);\n};\nvar elm$browser$Browser$AnimationManager$now = _Browser_now(0);\nvar elm$browser$Browser$AnimationManager$rAF = _Browser_rAF(0);\nvar elm$core$Platform$sendToSelf = _Platform_sendToSelf;\nvar elm$core$Process$kill = _Scheduler_kill;\nvar elm$core$Process$spawn = _Scheduler_spawn;\nvar elm$browser$Browser$AnimationManager$onEffects = F3(\n\tfunction (router, subs, _n0) {\n\t\tvar request = _n0.aA;\n\t\tvar oldTime = _n0.aa;\n\t\tvar _n1 = _Utils_Tuple2(request, subs);\n\t\tif (_n1.a.$ === 1) {\n\t\t\tif (!_n1.b.b) {\n\t\t\t\tvar _n2 = _n1.a;\n\t\t\t\treturn elm$browser$Browser$AnimationManager$init;\n\t\t\t} else {\n\t\t\t\tvar _n4 = _n1.a;\n\t\t\t\treturn A2(\n\t\t\t\t\telm$core$Task$andThen,\n\t\t\t\t\tfunction (pid) {\n\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\telm$core$Task$andThen,\n\t\t\t\t\t\t\tfunction (time) {\n\t\t\t\t\t\t\t\treturn elm$core$Task$succeed(\n\t\t\t\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t\t\t\telm$browser$Browser$AnimationManager$State,\n\t\t\t\t\t\t\t\t\t\tsubs,\n\t\t\t\t\t\t\t\t\t\telm$core$Maybe$Just(pid),\n\t\t\t\t\t\t\t\t\t\ttime));\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\telm$browser$Browser$AnimationManager$now);\n\t\t\t\t\t},\n\t\t\t\t\telm$core$Process$spawn(\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\telm$core$Task$andThen,\n\t\t\t\t\t\t\telm$core$Platform$sendToSelf(router),\n\t\t\t\t\t\t\telm$browser$Browser$AnimationManager$rAF)));\n\t\t\t}\n\t\t} else {\n\t\t\tif (!_n1.b.b) {\n\t\t\t\tvar pid = _n1.a.a;\n\t\t\t\treturn A2(\n\t\t\t\t\telm$core$Task$andThen,\n\t\t\t\t\tfunction (_n3) {\n\t\t\t\t\t\treturn elm$browser$Browser$AnimationManager$init;\n\t\t\t\t\t},\n\t\t\t\t\telm$core$Process$kill(pid));\n\t\t\t} else {\n\t\t\t\treturn elm$core$Task$succeed(\n\t\t\t\t\tA3(elm$browser$Browser$AnimationManager$State, subs, request, oldTime));\n\t\t\t}\n\t\t}\n\t});\nvar elm$time$Time$Posix = elm$core$Basics$identity;\nvar elm$time$Time$millisToPosix = elm$core$Basics$identity;\nvar elm$browser$Browser$AnimationManager$onSelfMsg = F3(\n\tfunction (router, newTime, _n0) {\n\t\tvar subs = _n0.aD;\n\t\tvar oldTime = _n0.aa;\n\t\tvar send = function (sub) {\n\t\t\tif (!sub.$) {\n\t\t\t\tvar tagger = sub.a;\n\t\t\t\treturn A2(\n\t\t\t\t\telm$core$Platform$sendToApp,\n\t\t\t\t\trouter,\n\t\t\t\t\ttagger(\n\t\t\t\t\t\telm$time$Time$millisToPosix(newTime)));\n\t\t\t} else {\n\t\t\t\tvar tagger = sub.a;\n\t\t\t\treturn A2(\n\t\t\t\t\telm$core$Platform$sendToApp,\n\t\t\t\t\trouter,\n\t\t\t\t\ttagger(newTime - oldTime));\n\t\t\t}\n\t\t};\n\t\treturn A2(\n\t\t\telm$core$Task$andThen,\n\t\t\tfunction (pid) {\n\t\t\t\treturn A2(\n\t\t\t\t\telm$core$Task$andThen,\n\t\t\t\t\tfunction (_n1) {\n\t\t\t\t\t\treturn elm$core$Task$succeed(\n\t\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t\telm$browser$Browser$AnimationManager$State,\n\t\t\t\t\t\t\t\tsubs,\n\t\t\t\t\t\t\t\telm$core$Maybe$Just(pid),\n\t\t\t\t\t\t\t\tnewTime));\n\t\t\t\t\t},\n\t\t\t\t\telm$core$Task$sequence(\n\t\t\t\t\t\tA2(elm$core$List$map, send, subs)));\n\t\t\t},\n\t\t\telm$core$Process$spawn(\n\t\t\t\tA2(\n\t\t\t\t\telm$core$Task$andThen,\n\t\t\t\t\telm$core$Platform$sendToSelf(router),\n\t\t\t\t\telm$browser$Browser$AnimationManager$rAF)));\n\t});\nvar elm$browser$Browser$AnimationManager$Time = function (a) {\n\treturn {$: 0, a: a};\n};\nvar elm$core$Basics$composeL = F3(\n\tfunction (g, f, x) {\n\t\treturn g(\n\t\t\tf(x));\n\t});\nvar elm$browser$Browser$AnimationManager$subMap = F2(\n\tfunction (func, sub) {\n\t\tif (!sub.$) {\n\t\t\tvar tagger = sub.a;\n\t\t\treturn elm$browser$Browser$AnimationManager$Time(\n\t\t\t\tA2(elm$core$Basics$composeL, func, tagger));\n\t\t} else {\n\t\t\tvar tagger = sub.a;\n\t\t\treturn elm$browser$Browser$AnimationManager$Delta(\n\t\t\t\tA2(elm$core$Basics$composeL, func, tagger));\n\t\t}\n\t});\n_Platform_effectManagers['Browser.AnimationManager'] = _Platform_createManager(elm$browser$Browser$AnimationManager$init, elm$browser$Browser$AnimationManager$onEffects, elm$browser$Browser$AnimationManager$onSelfMsg, 0, elm$browser$Browser$AnimationManager$subMap);\nvar elm$browser$Browser$AnimationManager$subscription = _Platform_leaf('Browser.AnimationManager');\nvar elm$browser$Browser$AnimationManager$onAnimationFrameDelta = function (tagger) {\n\treturn elm$browser$Browser$AnimationManager$subscription(\n\t\telm$browser$Browser$AnimationManager$Delta(tagger));\n};\nvar elm$browser$Browser$Events$onAnimationFrameDelta = elm$browser$Browser$AnimationManager$onAnimationFrameDelta;\nvar elm$core$Platform$Sub$batch = _Platform_batch;\nvar elm$core$Platform$Sub$none = elm$core$Platform$Sub$batch(_List_Nil);\nvar author$project$Main$animationTick = function (model) {\n\tvar _n0 = model.ap;\n\tif (!_n0.$) {\n\t\treturn elm$core$Platform$Sub$none;\n\t} else {\n\t\treturn elm$browser$Browser$Events$onAnimationFrameDelta(author$project$Msg$Tick);\n\t}\n};\nvar elm$core$Basics$negate = function (n) {\n\treturn -n;\n};\nvar elm$core$Basics$abs = function (n) {\n\treturn (n < 0) ? (-n) : n;\n};\nvar elm$core$Bitwise$and = _Bitwise_and;\nvar elm$random$Random$Generator = elm$core$Basics$identity;\nvar elm$core$Bitwise$shiftRightZfBy = _Bitwise_shiftRightZfBy;\nvar elm$random$Random$Seed = F2(\n\tfunction (a, b) {\n\t\treturn {$: 0, a: a, b: b};\n\t});\nvar elm$random$Random$next = function (_n0) {\n\tvar state0 = _n0.a;\n\tvar incr = _n0.b;\n\treturn A2(elm$random$Random$Seed, ((state0 * 1664525) + incr) >>> 0, incr);\n};\nvar elm$core$Bitwise$xor = _Bitwise_xor;\nvar elm$random$Random$peel = function (_n0) {\n\tvar state = _n0.a;\n\tvar word = (state ^ (state >>> ((state >>> 28) + 4))) * 277803737;\n\treturn ((word >>> 22) ^ word) >>> 0;\n};\nvar elm$random$Random$float = F2(\n\tfunction (a, b) {\n\t\treturn function (seed0) {\n\t\t\tvar seed1 = elm$random$Random$next(seed0);\n\t\t\tvar range = elm$core$Basics$abs(b - a);\n\t\t\tvar n1 = elm$random$Random$peel(seed1);\n\t\t\tvar n0 = elm$random$Random$peel(seed0);\n\t\t\tvar lo = (134217727 & n1) * 1.0;\n\t\t\tvar hi = (67108863 & n0) * 1.0;\n\t\t\tvar val = ((hi * 1.34217728e8) + lo) / 9.007199254740992e15;\n\t\t\tvar scaled = (val * range) + a;\n\t\t\treturn _Utils_Tuple2(\n\t\t\t\tscaled,\n\t\t\t\telm$random$Random$next(seed1));\n\t\t};\n\t});\nvar elm$random$Random$listHelp = F4(\n\tfunction (revList, n, gen, seed) {\n\t\tlistHelp:\n\t\twhile (true) {\n\t\t\tif (n < 1) {\n\t\t\t\treturn _Utils_Tuple2(revList, seed);\n\t\t\t} else {\n\t\t\t\tvar _n0 = gen(seed);\n\t\t\t\tvar value = _n0.a;\n\t\t\t\tvar newSeed = _n0.b;\n\t\t\t\tvar $temp$revList = A2(elm$core$List$cons, value, revList),\n\t\t\t\t\t$temp$n = n - 1,\n\t\t\t\t\t$temp$gen = gen,\n\t\t\t\t\t$temp$seed = newSeed;\n\t\t\t\trevList = $temp$revList;\n\t\t\t\tn = $temp$n;\n\t\t\t\tgen = $temp$gen;\n\t\t\t\tseed = $temp$seed;\n\t\t\t\tcontinue listHelp;\n\t\t\t}\n\t\t}\n\t});\nvar elm$random$Random$list = F2(\n\tfunction (n, _n0) {\n\t\tvar gen = _n0;\n\t\treturn function (seed) {\n\t\t\treturn A4(elm$random$Random$listHelp, _List_Nil, n, gen, seed);\n\t\t};\n\t});\nvar elm$random$Random$map2 = F3(\n\tfunction (func, _n0, _n1) {\n\t\tvar genA = _n0;\n\t\tvar genB = _n1;\n\t\treturn function (seed0) {\n\t\t\tvar _n2 = genA(seed0);\n\t\t\tvar a = _n2.a;\n\t\t\tvar seed1 = _n2.b;\n\t\t\tvar _n3 = genB(seed1);\n\t\t\tvar b = _n3.a;\n\t\t\tvar seed2 = _n3.b;\n\t\t\treturn _Utils_Tuple2(\n\t\t\t\tA2(func, a, b),\n\t\t\t\tseed2);\n\t\t};\n\t});\nvar elm$random$Random$pair = F2(\n\tfunction (genA, genB) {\n\t\treturn A3(\n\t\t\telm$random$Random$map2,\n\t\t\tF2(\n\t\t\t\tfunction (a, b) {\n\t\t\t\t\treturn _Utils_Tuple2(a, b);\n\t\t\t\t}),\n\t\t\tgenA,\n\t\t\tgenB);\n\t});\nvar author$project$Main$starField = A2(\n\telm$random$Random$list,\n\t150,\n\tA2(\n\t\telm$random$Random$pair,\n\t\tA2(elm$random$Random$float, 0, 1000),\n\t\tA2(elm$random$Random$float, 0, 1000)));\nvar author$project$Msg$NoOp = {$: 0};\nvar author$project$Msg$ResizeWindow = F2(\n\tfunction (a, b) {\n\t\treturn {$: 1, a: a, b: b};\n\t});\nvar elm$core$Basics$round = _Basics_round;\nvar author$project$Main$updateWindowDimensions = function (res) {\n\tif (!res.$) {\n\t\tvar viewport = res.a;\n\t\treturn A2(\n\t\t\tauthor$project$Msg$ResizeWindow,\n\t\t\telm$core$Basics$round(viewport.aF.aG),\n\t\t\telm$core$Basics$round(viewport.aF.al));\n\t} else {\n\t\tvar msg = res.a;\n\t\treturn author$project$Msg$NoOp;\n\t}\n};\nvar author$project$Model$Welcome = {$: 0};\nvar author$project$Msg$MakeStars = function (a) {\n\treturn {$: 2, a: a};\n};\nvar elm$browser$Browser$Dom$getViewport = _Browser_withWindow(_Browser_getViewport);\nvar elm$core$Platform$Cmd$batch = _Platform_batch;\nvar elm$core$Task$onError = _Scheduler_onError;\nvar elm$core$Task$attempt = F2(\n\tfunction (resultToMessage, task) {\n\t\treturn elm$core$Task$command(\n\t\t\tA2(\n\t\t\t\telm$core$Task$onError,\n\t\t\t\tA2(\n\t\t\t\t\telm$core$Basics$composeL,\n\t\t\t\t\tA2(elm$core$Basics$composeL, elm$core$Task$succeed, resultToMessage),\n\t\t\t\t\telm$core$Result$Err),\n\t\t\t\tA2(\n\t\t\t\t\telm$core$Task$andThen,\n\t\t\t\t\tA2(\n\t\t\t\t\t\telm$core$Basics$composeL,\n\t\t\t\t\t\tA2(elm$core$Basics$composeL, elm$core$Task$succeed, resultToMessage),\n\t\t\t\t\t\telm$core$Result$Ok),\n\t\t\t\t\ttask)));\n\t});\nvar elm$random$Random$Generate = elm$core$Basics$identity;\nvar elm$random$Random$initialSeed = function (x) {\n\tvar _n0 = elm$random$Random$next(\n\t\tA2(elm$random$Random$Seed, 0, 1013904223));\n\tvar state1 = _n0.a;\n\tvar incr = _n0.b;\n\tvar state2 = (state1 + x) >>> 0;\n\treturn elm$random$Random$next(\n\t\tA2(elm$random$Random$Seed, state2, incr));\n};\nvar elm$time$Time$Name = function (a) {\n\treturn {$: 0, a: a};\n};\nvar elm$time$Time$Offset = function (a) {\n\treturn {$: 1, a: a};\n};\nvar elm$time$Time$Zone = F2(\n\tfunction (a, b) {\n\t\treturn {$: 0, a: a, b: b};\n\t});\nvar elm$time$Time$customZone = elm$time$Time$Zone;\nvar elm$time$Time$now = _Time_now(elm$time$Time$millisToPosix);\nvar elm$time$Time$posixToMillis = function (_n0) {\n\tvar millis = _n0;\n\treturn millis;\n};\nvar elm$random$Random$init = A2(\n\telm$core$Task$andThen,\n\tfunction (time) {\n\t\treturn elm$core$Task$succeed(\n\t\t\telm$random$Random$initialSeed(\n\t\t\t\telm$time$Time$posixToMillis(time)));\n\t},\n\telm$time$Time$now);\nvar elm$random$Random$step = F2(\n\tfunction (_n0, seed) {\n\t\tvar generator = _n0;\n\t\treturn generator(seed);\n\t});\nvar elm$random$Random$onEffects = F3(\n\tfunction (router, commands, seed) {\n\t\tif (!commands.b) {\n\t\t\treturn elm$core$Task$succeed(seed);\n\t\t} else {\n\t\t\tvar generator = commands.a;\n\t\t\tvar rest = commands.b;\n\t\t\tvar _n1 = A2(elm$random$Random$step, generator, seed);\n\t\t\tvar value = _n1.a;\n\t\t\tvar newSeed = _n1.b;\n\t\t\treturn A2(\n\t\t\t\telm$core$Task$andThen,\n\t\t\t\tfunction (_n2) {\n\t\t\t\t\treturn A3(elm$random$Random$onEffects, router, rest, newSeed);\n\t\t\t\t},\n\t\t\t\tA2(elm$core$Platform$sendToApp, router, value));\n\t\t}\n\t});\nvar elm$random$Random$onSelfMsg = F3(\n\tfunction (_n0, _n1, seed) {\n\t\treturn elm$core$Task$succeed(seed);\n\t});\nvar elm$random$Random$map = F2(\n\tfunction (func, _n0) {\n\t\tvar genA = _n0;\n\t\treturn function (seed0) {\n\t\t\tvar _n1 = genA(seed0);\n\t\t\tvar a = _n1.a;\n\t\t\tvar seed1 = _n1.b;\n\t\t\treturn _Utils_Tuple2(\n\t\t\t\tfunc(a),\n\t\t\t\tseed1);\n\t\t};\n\t});\nvar elm$random$Random$cmdMap = F2(\n\tfunction (func, _n0) {\n\t\tvar generator = _n0;\n\t\treturn A2(elm$random$Random$map, func, generator);\n\t});\n_Platform_effectManagers['Random'] = _Platform_createManager(elm$random$Random$init, elm$random$Random$onEffects, elm$random$Random$onSelfMsg, elm$random$Random$cmdMap);\nvar elm$random$Random$command = _Platform_leaf('Random');\nvar elm$random$Random$generate = F2(\n\tfunction (tagger, generator) {\n\t\treturn elm$random$Random$command(\n\t\t\tA2(elm$random$Random$map, tagger, generator));\n\t});\nvar author$project$Main$init = _Utils_Tuple2(\n\t{\n\t\tap: author$project$Model$Welcome,\n\t\ta0: _List_Nil,\n\t\ta7: {al: 1000, aG: 1000}\n\t},\n\telm$core$Platform$Cmd$batch(\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\tA2(elm$core$Task$attempt, author$project$Main$updateWindowDimensions, elm$browser$Browser$Dom$getViewport),\n\t\t\t\tA2(elm$random$Random$generate, author$project$Msg$MakeStars, author$project$Main$starField)\n\t\t\t])));\nvar author$project$Model$Run = function (a) {\n\treturn {$: 1, a: a};\n};\nvar author$project$Physics$fma = F2(\n\tfunction (force, body) {\n\t\treturn force / body.l;\n\t});\nvar author$project$Physics$addAcceleration = F2(\n\tfunction (a1, a2) {\n\t\treturn {v: a1.v + a2.v, w: a1.w + a2.w};\n\t});\nvar elm$core$Basics$pow = _Basics_pow;\nvar elm$core$Basics$sqrt = _Basics_sqrt;\nvar author$project$Physics$distanceBetween = F2(\n\tfunction (p1, p2) {\n\t\treturn elm$core$Basics$sqrt(\n\t\t\tA2(elm$core$Basics$pow, p1.r - p2.r, 2) + A2(elm$core$Basics$pow, p1.s - p2.s, 2));\n\t});\nvar author$project$Physics$g = 1;\nvar elm$core$Elm$JsArray$foldl = _JsArray_foldl;\nvar elm$core$Array$foldl = F3(\n\tfunction (func, baseCase, _n0) {\n\t\tvar tree = _n0.c;\n\t\tvar tail = _n0.d;\n\t\tvar helper = F2(\n\t\t\tfunction (node, acc) {\n\t\t\t\tif (!node.$) {\n\t\t\t\t\tvar subTree = node.a;\n\t\t\t\t\treturn A3(elm$core$Elm$JsArray$foldl, helper, acc, subTree);\n\t\t\t\t} else {\n\t\t\t\t\tvar values = node.a;\n\t\t\t\t\treturn A3(elm$core$Elm$JsArray$foldl, func, acc, values);\n\t\t\t\t}\n\t\t\t});\n\t\treturn A3(\n\t\t\telm$core$Elm$JsArray$foldl,\n\t\t\tfunc,\n\t\t\tA3(elm$core$Elm$JsArray$foldl, helper, baseCase, tree),\n\t\t\ttail);\n\t});\nvar author$project$Physics$forceDueToGravity = F2(\n\tfunction (body, otherBodies) {\n\t\tvar zero = {v: 0, w: 0};\n\t\tvar combine = F2(\n\t\t\tfunction (otherBody, accumulatedAcceleration) {\n\t\t\t\tvar yDistance = otherBody.m.s - body.m.s;\n\t\t\t\tvar xDistance = otherBody.m.r - body.m.r;\n\t\t\t\tvar distance = A2(author$project$Physics$distanceBetween, body.m, otherBody.m);\n\t\t\t\tvar accelerationMagnitude = (!distance) ? 0 : (((author$project$Physics$g * body.l) * otherBody.l) / A2(elm$core$Basics$pow, distance, 2));\n\t\t\t\tvar acceleration = {v: accelerationMagnitude * (xDistance / distance), w: accelerationMagnitude * (yDistance / distance)};\n\t\t\t\treturn A2(author$project$Physics$addAcceleration, accumulatedAcceleration, acceleration);\n\t\t\t});\n\t\treturn A3(elm$core$Array$foldl, combine, zero, otherBodies);\n\t});\nvar author$project$Physics$accelerationDueToGravity = F2(\n\tfunction (body, otherBodies) {\n\t\tvar force = A2(author$project$Physics$forceDueToGravity, body, otherBodies);\n\t\treturn {\n\t\t\tv: A2(author$project$Physics$fma, force.v, body),\n\t\t\tw: A2(author$project$Physics$fma, force.w, body)\n\t\t};\n\t});\nvar author$project$Physics$applyAcceleration = F2(\n\tfunction (acceleration, velocity) {\n\t\treturn {t: velocity.t + acceleration.v, u: velocity.u + acceleration.w};\n\t});\nvar author$project$Physics$applyVelocity = F2(\n\tfunction (velocity, position) {\n\t\treturn {r: position.r + velocity.t, s: position.s + velocity.u};\n\t});\nvar author$project$Physics$advanceBody = F2(\n\tfunction (body, otherBodies) {\n\t\tvar currentAcceleration = A2(author$project$Physics$accelerationDueToGravity, body, otherBodies);\n\t\tvar newVelocity = A2(author$project$Physics$applyAcceleration, currentAcceleration, body.q);\n\t\tvar newPosition = A2(author$project$Physics$applyVelocity, newVelocity, body.m);\n\t\treturn _Utils_update(\n\t\t\tbody,\n\t\t\t{i: currentAcceleration, m: newPosition, q: newVelocity});\n\t});\nvar elm$core$Array$fromListHelp = F3(\n\tfunction (list, nodeList, nodeListSize) {\n\t\tfromListHelp:\n\t\twhile (true) {\n\t\t\tvar _n0 = A2(elm$core$Elm$JsArray$initializeFromList, elm$core$Array$branchFactor, list);\n\t\t\tvar jsArray = _n0.a;\n\t\t\tvar remainingItems = _n0.b;\n\t\t\tif (_Utils_cmp(\n\t\t\t\telm$core$Elm$JsArray$length(jsArray),\n\t\t\t\telm$core$Array$branchFactor) < 0) {\n\t\t\t\treturn A2(\n\t\t\t\t\telm$core$Array$builderToArray,\n\t\t\t\t\ttrue,\n\t\t\t\t\t{d: nodeList, a: nodeListSize, c: jsArray});\n\t\t\t} else {\n\t\t\t\tvar $temp$list = remainingItems,\n\t\t\t\t\t$temp$nodeList = A2(\n\t\t\t\t\telm$core$List$cons,\n\t\t\t\t\telm$core$Array$Leaf(jsArray),\n\t\t\t\t\tnodeList),\n\t\t\t\t\t$temp$nodeListSize = nodeListSize + 1;\n\t\t\t\tlist = $temp$list;\n\t\t\t\tnodeList = $temp$nodeList;\n\t\t\t\tnodeListSize = $temp$nodeListSize;\n\t\t\t\tcontinue fromListHelp;\n\t\t\t}\n\t\t}\n\t});\nvar elm$core$Array$fromList = function (list) {\n\tif (!list.b) {\n\t\treturn elm$core$Array$empty;\n\t} else {\n\t\treturn A3(elm$core$Array$fromListHelp, list, _List_Nil, 0);\n\t}\n};\nvar elm$core$Bitwise$shiftLeftBy = _Bitwise_shiftLeftBy;\nvar elm$core$Array$tailIndex = function (len) {\n\treturn (len >>> 5) << 5;\n};\nvar elm$core$Elm$JsArray$indexedMap = _JsArray_indexedMap;\nvar elm$core$Array$indexedMap = F2(\n\tfunction (func, _n0) {\n\t\tvar len = _n0.a;\n\t\tvar tree = _n0.c;\n\t\tvar tail = _n0.d;\n\t\tvar initialBuilder = {\n\t\t\td: _List_Nil,\n\t\t\ta: 0,\n\t\t\tc: A3(\n\t\t\t\telm$core$Elm$JsArray$indexedMap,\n\t\t\t\tfunc,\n\t\t\t\telm$core$Array$tailIndex(len),\n\t\t\t\ttail)\n\t\t};\n\t\tvar helper = F2(\n\t\t\tfunction (node, builder) {\n\t\t\t\tif (!node.$) {\n\t\t\t\t\tvar subTree = node.a;\n\t\t\t\t\treturn A3(elm$core$Elm$JsArray$foldl, helper, builder, subTree);\n\t\t\t\t} else {\n\t\t\t\t\tvar leaf = node.a;\n\t\t\t\t\tvar offset = builder.a * elm$core$Array$branchFactor;\n\t\t\t\t\tvar mappedLeaf = elm$core$Array$Leaf(\n\t\t\t\t\t\tA3(elm$core$Elm$JsArray$indexedMap, func, offset, leaf));\n\t\t\t\t\treturn {\n\t\t\t\t\t\td: A2(elm$core$List$cons, mappedLeaf, builder.d),\n\t\t\t\t\t\ta: builder.a + 1,\n\t\t\t\t\t\tc: builder.c\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t});\n\t\treturn A2(\n\t\t\telm$core$Array$builderToArray,\n\t\t\ttrue,\n\t\t\tA3(elm$core$Elm$JsArray$foldl, helper, initialBuilder, tree));\n\t});\nvar elm$core$Tuple$second = function (_n0) {\n\tvar y = _n0.b;\n\treturn y;\n};\nvar elm$core$Array$toIndexedList = function (array) {\n\tvar len = array.a;\n\tvar helper = F2(\n\t\tfunction (entry, _n0) {\n\t\t\tvar index = _n0.a;\n\t\t\tvar list = _n0.b;\n\t\t\treturn _Utils_Tuple2(\n\t\t\t\tindex - 1,\n\t\t\t\tA2(\n\t\t\t\t\telm$core$List$cons,\n\t\t\t\t\t_Utils_Tuple2(index, entry),\n\t\t\t\t\tlist));\n\t\t});\n\treturn A3(\n\t\telm$core$Array$foldr,\n\t\thelper,\n\t\t_Utils_Tuple2(len - 1, _List_Nil),\n\t\tarray).b;\n};\nvar author$project$Utils$arrMapWithOthers = F2(\n\tfunction (f, aa) {\n\t\tvar els = elm$core$Array$toIndexedList(aa);\n\t\tvar elsWithoutI = function (excludeIndex) {\n\t\t\tvar otherEls = A3(\n\t\t\t\telm$core$List$foldr,\n\t\t\t\tF2(\n\t\t\t\t\tfunction (_n0, acc) {\n\t\t\t\t\t\tvar i = _n0.a;\n\t\t\t\t\t\tvar a = _n0.b;\n\t\t\t\t\t\treturn _Utils_eq(i, excludeIndex) ? acc : A2(elm$core$List$cons, a, acc);\n\t\t\t\t\t}),\n\t\t\t\t_List_Nil,\n\t\t\t\tels);\n\t\t\treturn elm$core$Array$fromList(otherEls);\n\t\t};\n\t\treturn A2(\n\t\t\telm$core$Array$indexedMap,\n\t\t\tF2(\n\t\t\t\tfunction (i, a) {\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\tf,\n\t\t\t\t\t\ta,\n\t\t\t\t\t\telsWithoutI(i));\n\t\t\t\t}),\n\t\t\taa);\n\t});\nvar author$project$Physics$advanceUniverse = function (prevUniverse) {\n\tvar bodies = A2(author$project$Utils$arrMapWithOthers, author$project$Physics$advanceBody, prevUniverse.aK);\n\treturn _Utils_update(\n\t\tprevUniverse,\n\t\t{aK: bodies, a2: prevUniverse.a2 + 1});\n};\nvar elm$core$List$repeatHelp = F3(\n\tfunction (result, n, value) {\n\t\trepeatHelp:\n\t\twhile (true) {\n\t\t\tif (n <= 0) {\n\t\t\t\treturn result;\n\t\t\t} else {\n\t\t\t\tvar $temp$result = A2(elm$core$List$cons, value, result),\n\t\t\t\t\t$temp$n = n - 1,\n\t\t\t\t\t$temp$value = value;\n\t\t\t\tresult = $temp$result;\n\t\t\t\tn = $temp$n;\n\t\t\t\tvalue = $temp$value;\n\t\t\t\tcontinue repeatHelp;\n\t\t\t}\n\t\t}\n\t});\nvar elm$core$List$repeat = F2(\n\tfunction (n, value) {\n\t\treturn A3(elm$core$List$repeatHelp, _List_Nil, n, value);\n\t});\nvar author$project$Utils$repeatFn = F3(\n\tfunction (f, n, a) {\n\t\tvar fns = A2(elm$core$List$repeat, n, f);\n\t\treturn A3(\n\t\t\telm$core$List$foldl,\n\t\t\tF2(\n\t\t\t\tfunction (fni, ai) {\n\t\t\t\t\treturn fni(ai);\n\t\t\t\t}),\n\t\t\ta,\n\t\t\tfns);\n\t});\nvar elm$core$Basics$not = _Basics_not;\nvar elm$core$Platform$Cmd$none = elm$core$Platform$Cmd$batch(_List_Nil);\nvar author$project$Msg$update = F2(\n\tfunction (msg, model) {\n\t\tswitch (msg.$) {\n\t\t\tcase 0:\n\t\t\t\treturn _Utils_Tuple2(model, elm$core$Platform$Cmd$none);\n\t\t\tcase 1:\n\t\t\t\tvar x = msg.a;\n\t\t\t\tvar y = msg.b;\n\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ta7: {al: y, aG: x}\n\t\t\t\t\t\t}),\n\t\t\t\t\telm$core$Platform$Cmd$none);\n\t\t\tcase 2:\n\t\t\t\tvar stars = msg.a;\n\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t{a0: stars}),\n\t\t\t\t\telm$core$Platform$Cmd$none);\n\t\t\tcase 3:\n\t\t\t\tvar bodies = msg.a;\n\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tap: author$project$Model$Run(\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\taK: elm$core$Array$fromList(bodies),\n\t\t\t\t\t\t\t\t\ta$: false,\n\t\t\t\t\t\t\t\t\ta2: 0\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}),\n\t\t\t\t\telm$core$Platform$Cmd$none);\n\t\t\tcase 4:\n\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t{ap: author$project$Model$Welcome}),\n\t\t\t\t\telm$core$Platform$Cmd$none);\n\t\t\tcase 5:\n\t\t\t\tvar δt = msg.a;\n\t\t\t\tvar _n1 = model.ap;\n\t\t\t\tif (!_n1.$) {\n\t\t\t\t\treturn _Utils_Tuple2(model, elm$core$Platform$Cmd$none);\n\t\t\t\t} else {\n\t\t\t\t\tvar universe = _n1.a;\n\t\t\t\t\tvar δms = elm$core$Basics$round(δt / 16);\n\t\t\t\t\tvar newUniverse = A3(author$project$Utils$repeatFn, author$project$Physics$advanceUniverse, δms, universe);\n\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tap: author$project$Model$Run(newUniverse)\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\telm$core$Platform$Cmd$none);\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\tvar _n2 = model.ap;\n\t\t\t\tif (_n2.$ === 1) {\n\t\t\t\t\tvar universe = _n2.a;\n\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tap: author$project$Model$Run(\n\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\tuniverse,\n\t\t\t\t\t\t\t\t\t\t{a$: !universe.a$}))\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\telm$core$Platform$Cmd$none);\n\t\t\t\t} else {\n\t\t\t\t\treturn _Utils_Tuple2(model, elm$core$Platform$Cmd$none);\n\t\t\t\t}\n\t\t}\n\t});\nvar author$project$Examples$eccentricOrbit = _List_fromArray(\n\t[\n\t\t{\n\t\ti: {v: 0, w: 0},\n\t\tl: 300,\n\t\tm: {r: 500, s: 500},\n\t\tn: 11,\n\t\tq: {t: 0, u: 0}\n\t},\n\t\t{\n\t\ti: {v: 0, w: 0},\n\t\tl: 1,\n\t\tm: {r: 500, s: 300},\n\t\tn: 3,\n\t\tq: {t: 1, u: 0.6}\n\t}\n\t]);\nvar author$project$Examples$orbit = _List_fromArray(\n\t[\n\t\t{\n\t\ti: {v: 0, w: 0},\n\t\tl: 300,\n\t\tm: {r: 500, s: 500},\n\t\tn: 11,\n\t\tq: {t: 0, u: 0}\n\t},\n\t\t{\n\t\ti: {v: 0, w: 0},\n\t\tl: 1,\n\t\tm: {r: 500, s: 300},\n\t\tn: 3,\n\t\tq: {t: 1.3, u: 0}\n\t}\n\t]);\nvar author$project$Examples$slingshot = _List_fromArray(\n\t[\n\t\t{\n\t\ti: {v: 0, w: 0},\n\t\tl: 1000,\n\t\tm: {r: 152, s: 500},\n\t\tn: 11,\n\t\tq: {t: 0.5, u: 0}\n\t},\n\t\t{\n\t\ti: {v: 0, w: 0},\n\t\tl: 1,\n\t\tm: {r: 300, s: 300},\n\t\tn: 3,\n\t\tq: {t: -0.5, u: 0.5}\n\t}\n\t]);\nvar author$project$Examples$solarSystem = _List_fromArray(\n\t[\n\t\t{\n\t\ti: {v: 0, w: 0},\n\t\tl: 1000,\n\t\tm: {r: 500, s: 500},\n\t\tn: 20,\n\t\tq: {t: -5.0e-3, u: -1.0e-4}\n\t},\n\t\t{\n\t\ti: {v: 0, w: 0},\n\t\tl: 30,\n\t\tm: {r: 500, s: 400},\n\t\tn: 3,\n\t\tq: {t: 3, u: 0}\n\t},\n\t\t{\n\t\ti: {v: 0, w: 0},\n\t\tl: 40,\n\t\tm: {r: 500, s: 850},\n\t\tn: 5,\n\t\tq: {t: -1.7, u: 0}\n\t},\n\t\t{\n\t\ti: {v: 0, w: 0},\n\t\tl: 1,\n\t\tm: {r: 700, s: 350},\n\t\tn: 1,\n\t\tq: {t: 1, u: 1.5}\n\t},\n\t\t{\n\t\ti: {v: 0, w: 0},\n\t\tl: 1,\n\t\tm: {r: 300, s: 350},\n\t\tn: 1,\n\t\tq: {t: 1.2, u: -1.5}\n\t},\n\t\t{\n\t\ti: {v: 0, w: 0},\n\t\tl: 1,\n\t\tm: {r: 250, s: 480},\n\t\tn: 1,\n\t\tq: {t: 0.1, u: -1.8}\n\t}\n\t]);\nvar author$project$Msg$Apocalypse = {$: 4};\nvar author$project$Msg$Genesis = function (a) {\n\treturn {$: 3, a: a};\n};\nvar author$project$Msg$TogglePhysics = {$: 6};\nvar author$project$Utils$flattenList = function (list) {\n\treturn A3(elm$core$List$foldr, elm$core$Basics$append, _List_Nil, list);\n};\nvar elm$core$Basics$min = F2(\n\tfunction (x, y) {\n\t\treturn (_Utils_cmp(x, y) < 0) ? x : y;\n\t});\nvar elm$core$String$fromFloat = _String_fromNumber;\nvar author$project$View$scaleDimension = F2(\n\tfunction (window, coord) {\n\t\tvar minDimension = A2(elm$core$Basics$min, window.aG, window.al);\n\t\tvar scale = minDimension / 1000.0;\n\t\treturn elm$core$String$fromFloat(coord * scale);\n\t});\nvar elm$svg$Svg$trustedNode = _VirtualDom_nodeNS('http://www.w3.org/2000/svg');\nvar elm$svg$Svg$circle = elm$svg$Svg$trustedNode('circle');\nvar elm$svg$Svg$line = elm$svg$Svg$trustedNode('line');\nvar elm$svg$Svg$Attributes$cx = _VirtualDom_attribute('cx');\nvar elm$svg$Svg$Attributes$cy = _VirtualDom_attribute('cy');\nvar elm$svg$Svg$Attributes$fill = _VirtualDom_attribute('fill');\nvar elm$svg$Svg$Attributes$r = _VirtualDom_attribute('r');\nvar elm$svg$Svg$Attributes$stroke = _VirtualDom_attribute('stroke');\nvar elm$svg$Svg$Attributes$strokeWidth = _VirtualDom_attribute('stroke-width');\nvar elm$svg$Svg$Attributes$x1 = _VirtualDom_attribute('x1');\nvar elm$svg$Svg$Attributes$x2 = _VirtualDom_attribute('x2');\nvar elm$svg$Svg$Attributes$y1 = _VirtualDom_attribute('y1');\nvar elm$svg$Svg$Attributes$y2 = _VirtualDom_attribute('y2');\nvar author$project$View$bodyEl = F3(\n\tfunction (window, showPhysics, body) {\n\t\tvar physics = showPhysics ? _List_fromArray(\n\t\t\t[\n\t\t\t\tA2(\n\t\t\t\telm$svg$Svg$line,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\telm$svg$Svg$Attributes$x1(\n\t\t\t\t\t\tA2(author$project$View$scaleDimension, window, body.m.r)),\n\t\t\t\t\t\telm$svg$Svg$Attributes$x2(\n\t\t\t\t\t\tA2(author$project$View$scaleDimension, window, body.m.r + (body.q.t * 50))),\n\t\t\t\t\t\telm$svg$Svg$Attributes$y1(\n\t\t\t\t\t\tA2(author$project$View$scaleDimension, window, body.m.s)),\n\t\t\t\t\t\telm$svg$Svg$Attributes$y2(\n\t\t\t\t\t\tA2(author$project$View$scaleDimension, window, body.m.s + (body.q.u * 50))),\n\t\t\t\t\t\telm$svg$Svg$Attributes$stroke('yellow'),\n\t\t\t\t\t\telm$svg$Svg$Attributes$strokeWidth('2')\n\t\t\t\t\t]),\n\t\t\t\t_List_Nil),\n\t\t\t\tA2(\n\t\t\t\telm$svg$Svg$line,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\telm$svg$Svg$Attributes$x1(\n\t\t\t\t\t\tA2(author$project$View$scaleDimension, window, body.m.r)),\n\t\t\t\t\t\telm$svg$Svg$Attributes$x2(\n\t\t\t\t\t\tA2(author$project$View$scaleDimension, window, body.m.r + (body.i.v * 1000))),\n\t\t\t\t\t\telm$svg$Svg$Attributes$y1(\n\t\t\t\t\t\tA2(author$project$View$scaleDimension, window, body.m.s)),\n\t\t\t\t\t\telm$svg$Svg$Attributes$y2(\n\t\t\t\t\t\tA2(author$project$View$scaleDimension, window, body.m.s + (body.i.w * 1000))),\n\t\t\t\t\t\telm$svg$Svg$Attributes$stroke('red'),\n\t\t\t\t\t\telm$svg$Svg$Attributes$strokeWidth('2')\n\t\t\t\t\t]),\n\t\t\t\t_List_Nil)\n\t\t\t]) : _List_Nil;\n\t\treturn _Utils_ap(\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\tA2(\n\t\t\t\t\telm$svg$Svg$circle,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\telm$svg$Svg$Attributes$r(\n\t\t\t\t\t\t\tA2(author$project$View$scaleDimension, window, body.n)),\n\t\t\t\t\t\t\telm$svg$Svg$Attributes$cx(\n\t\t\t\t\t\t\tA2(author$project$View$scaleDimension, window, body.m.r)),\n\t\t\t\t\t\t\telm$svg$Svg$Attributes$cy(\n\t\t\t\t\t\t\tA2(author$project$View$scaleDimension, window, body.m.s)),\n\t\t\t\t\t\t\telm$svg$Svg$Attributes$fill('#f7f7f7')\n\t\t\t\t\t\t]),\n\t\t\t\t\t_List_Nil)\n\t\t\t\t]),\n\t\t\tphysics);\n\t});\nvar elm$core$Elm$JsArray$map = _JsArray_map;\nvar elm$core$Array$map = F2(\n\tfunction (func, _n0) {\n\t\tvar len = _n0.a;\n\t\tvar startShift = _n0.b;\n\t\tvar tree = _n0.c;\n\t\tvar tail = _n0.d;\n\t\tvar helper = function (node) {\n\t\t\tif (!node.$) {\n\t\t\t\tvar subTree = node.a;\n\t\t\t\treturn elm$core$Array$SubTree(\n\t\t\t\t\tA2(elm$core$Elm$JsArray$map, helper, subTree));\n\t\t\t} else {\n\t\t\t\tvar values = node.a;\n\t\t\t\treturn elm$core$Array$Leaf(\n\t\t\t\t\tA2(elm$core$Elm$JsArray$map, func, values));\n\t\t\t}\n\t\t};\n\t\treturn A4(\n\t\t\telm$core$Array$Array_elm_builtin,\n\t\t\tlen,\n\t\t\tstartShift,\n\t\t\tA2(elm$core$Elm$JsArray$map, helper, tree),\n\t\t\tA2(elm$core$Elm$JsArray$map, func, tail));\n\t});\nvar author$project$View$bodyEls = F3(\n\tfunction (window, showPhysics, bodies) {\n\t\treturn author$project$Utils$flattenList(\n\t\t\telm$core$Array$toList(\n\t\t\t\tA2(\n\t\t\t\t\telm$core$Array$map,\n\t\t\t\t\tA2(author$project$View$bodyEl, window, showPhysics),\n\t\t\t\t\tbodies)));\n\t});\nvar author$project$View$stretchDimension = F2(\n\tfunction (window, coord) {\n\t\tvar maxDimension = A2(elm$core$Basics$max, window.aG, window.al);\n\t\tvar scale = maxDimension / 1000.0;\n\t\treturn elm$core$String$fromInt(\n\t\t\telm$core$Basics$round(coord * scale));\n\t});\nvar elm$svg$Svg$rect = elm$svg$Svg$trustedNode('rect');\nvar elm$svg$Svg$Attributes$height = _VirtualDom_attribute('height');\nvar elm$svg$Svg$Attributes$width = _VirtualDom_attribute('width');\nvar elm$svg$Svg$Attributes$x = _VirtualDom_attribute('x');\nvar elm$svg$Svg$Attributes$y = _VirtualDom_attribute('y');\nvar author$project$View$displayStars = F2(\n\tfunction (window, stars) {\n\t\treturn A2(\n\t\t\telm$core$List$map,\n\t\t\tfunction (_n0) {\n\t\t\t\tvar starX = _n0.a;\n\t\t\t\tvar starY = _n0.b;\n\t\t\t\treturn A2(\n\t\t\t\t\telm$svg$Svg$rect,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\telm$svg$Svg$Attributes$x(\n\t\t\t\t\t\t\tA2(author$project$View$stretchDimension, window, starX)),\n\t\t\t\t\t\t\telm$svg$Svg$Attributes$y(\n\t\t\t\t\t\t\tA2(author$project$View$stretchDimension, window, starY)),\n\t\t\t\t\t\t\telm$svg$Svg$Attributes$width('1'),\n\t\t\t\t\t\t\telm$svg$Svg$Attributes$height('1'),\n\t\t\t\t\t\t\telm$svg$Svg$Attributes$fill('#999999')\n\t\t\t\t\t\t]),\n\t\t\t\t\t_List_Nil);\n\t\t\t},\n\t\t\tstars);\n\t});\nvar elm$html$Html$a = _VirtualDom_node('a');\nvar elm$html$Html$button = _VirtualDom_node('button');\nvar elm$html$Html$div = _VirtualDom_node('div');\nvar elm$html$Html$h1 = _VirtualDom_node('h1');\nvar elm$html$Html$p = _VirtualDom_node('p');\nvar elm$virtual_dom$VirtualDom$text = _VirtualDom_text;\nvar elm$html$Html$text = elm$virtual_dom$VirtualDom$text;\nvar elm$json$Json$Encode$string = _Json_wrap;\nvar elm$html$Html$Attributes$stringProperty = F2(\n\tfunction (key, string) {\n\t\treturn A2(\n\t\t\t_VirtualDom_property,\n\t\t\tkey,\n\t\t\telm$json$Json$Encode$string(string));\n\t});\nvar elm$html$Html$Attributes$class = elm$html$Html$Attributes$stringProperty('className');\nvar elm$html$Html$Attributes$href = function (url) {\n\treturn A2(\n\t\telm$html$Html$Attributes$stringProperty,\n\t\t'href',\n\t\t_VirtualDom_noJavaScriptUri(url));\n};\nvar elm$virtual_dom$VirtualDom$Normal = function (a) {\n\treturn {$: 0, a: a};\n};\nvar elm$virtual_dom$VirtualDom$on = _VirtualDom_on;\nvar elm$html$Html$Events$on = F2(\n\tfunction (event, decoder) {\n\t\treturn A2(\n\t\t\telm$virtual_dom$VirtualDom$on,\n\t\t\tevent,\n\t\t\telm$virtual_dom$VirtualDom$Normal(decoder));\n\t});\nvar elm$html$Html$Events$onClick = function (msg) {\n\treturn A2(\n\t\telm$html$Html$Events$on,\n\t\t'click',\n\t\telm$json$Json$Decode$succeed(msg));\n};\nvar elm$svg$Svg$svg = elm$svg$Svg$trustedNode('svg');\nvar elm$svg$Svg$Attributes$class = _VirtualDom_attribute('class');\nvar elm$svg$Svg$Attributes$viewBox = _VirtualDom_attribute('viewBox');\nvar author$project$View$view = function (model) {\n\tvar _n0 = model.ap;\n\tif (_n0.$ === 1) {\n\t\tvar universe = _n0.a;\n\t\treturn A2(\n\t\t\telm$html$Html$div,\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\telm$html$Html$Attributes$class('universe--container')\n\t\t\t\t]),\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\tA2(\n\t\t\t\t\telm$html$Html$h1,\n\t\t\t\t\t_List_Nil,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\telm$html$Html$text('Luna')\n\t\t\t\t\t\t])),\n\t\t\t\t\tA2(\n\t\t\t\t\telm$html$Html$div,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\telm$html$Html$Attributes$class('controls')\n\t\t\t\t\t\t]),\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\telm$html$Html$p,\n\t\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\telm$html$Html$button,\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\telm$html$Html$Events$onClick(author$project$Msg$Apocalypse),\n\t\t\t\t\t\t\t\t\t\t\telm$html$Html$Attributes$class('controls-button')\n\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\telm$html$Html$text('Quit')\n\t\t\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\telm$html$Html$button,\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\telm$html$Html$Events$onClick(author$project$Msg$TogglePhysics),\n\t\t\t\t\t\t\t\t\t\t\telm$html$Html$Attributes$class('controls-button')\n\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\telm$html$Html$text(\n\t\t\t\t\t\t\t\t\t\t\tuniverse.a$ ? 'Hide physics' : 'Show physics')\n\t\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t])),\n\t\t\t\t\tA2(\n\t\t\t\t\telm$svg$Svg$svg,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\telm$svg$Svg$Attributes$viewBox(\n\t\t\t\t\t\t\t'0 0 ' + (elm$core$String$fromInt(model.a7.aG) + elm$core$String$fromInt(model.a7.al))),\n\t\t\t\t\t\t\telm$svg$Svg$Attributes$class('universe')\n\t\t\t\t\t\t]),\n\t\t\t\t\t_Utils_ap(\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\telm$svg$Svg$rect,\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\telm$svg$Svg$Attributes$height('100%'),\n\t\t\t\t\t\t\t\t\t\telm$svg$Svg$Attributes$width('100%'),\n\t\t\t\t\t\t\t\t\t\telm$svg$Svg$Attributes$stroke('black'),\n\t\t\t\t\t\t\t\t\t\telm$svg$Svg$Attributes$fill('#111111')\n\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t_List_Nil)\n\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t_Utils_ap(\n\t\t\t\t\t\t\tA3(author$project$View$bodyEls, model.a7, universe.a$, universe.aK),\n\t\t\t\t\t\t\tA2(author$project$View$displayStars, model.a7, model.a0))))\n\t\t\t\t]));\n\t} else {\n\t\treturn A2(\n\t\t\telm$html$Html$div,\n\t\t\t_List_Nil,\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\tA2(\n\t\t\t\t\telm$html$Html$h1,\n\t\t\t\t\t_List_Nil,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\telm$html$Html$text('Luna')\n\t\t\t\t\t\t])),\n\t\t\t\t\tA2(\n\t\t\t\t\telm$html$Html$p,\n\t\t\t\t\t_List_Nil,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\telm$html$Html$button,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\telm$html$Html$Events$onClick(\n\t\t\t\t\t\t\t\t\tauthor$project$Msg$Genesis(author$project$Examples$slingshot)),\n\t\t\t\t\t\t\t\t\telm$html$Html$Attributes$class('cta-button')\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\telm$html$Html$text('Slingshot')\n\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t])),\n\t\t\t\t\tA2(\n\t\t\t\t\telm$html$Html$p,\n\t\t\t\t\t_List_Nil,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\telm$html$Html$button,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\telm$html$Html$Events$onClick(\n\t\t\t\t\t\t\t\t\tauthor$project$Msg$Genesis(author$project$Examples$orbit)),\n\t\t\t\t\t\t\t\t\telm$html$Html$Attributes$class('cta-button')\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\telm$html$Html$text('Orbit (regular)')\n\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t])),\n\t\t\t\t\tA2(\n\t\t\t\t\telm$html$Html$p,\n\t\t\t\t\t_List_Nil,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\telm$html$Html$button,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\telm$html$Html$Events$onClick(\n\t\t\t\t\t\t\t\t\tauthor$project$Msg$Genesis(author$project$Examples$eccentricOrbit)),\n\t\t\t\t\t\t\t\t\telm$html$Html$Attributes$class('cta-button')\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\telm$html$Html$text('Orbit (eccentric)')\n\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t])),\n\t\t\t\t\tA2(\n\t\t\t\t\telm$html$Html$p,\n\t\t\t\t\t_List_Nil,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\telm$html$Html$button,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\telm$html$Html$Events$onClick(\n\t\t\t\t\t\t\t\t\tauthor$project$Msg$Genesis(author$project$Examples$solarSystem)),\n\t\t\t\t\t\t\t\t\telm$html$Html$Attributes$class('cta-button')\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\telm$html$Html$text('Solar system')\n\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t])),\n\t\t\t\t\tA2(\n\t\t\t\t\telm$html$Html$p,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\telm$html$Html$Attributes$class('info-box')\n\t\t\t\t\t\t]),\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\telm$html$Html$text('Source code available at '),\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\telm$html$Html$a,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\telm$html$Html$Attributes$href('https://github.com/adamnfish/luna')\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\telm$html$Html$text('github.com/adamnfish/luna')\n\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t]))\n\t\t\t\t]));\n\t}\n};\nvar elm$browser$Browser$element = _Browser_element;\nvar elm$browser$Browser$Events$Window = 1;\nvar elm$browser$Browser$Events$MySub = F3(\n\tfunction (a, b, c) {\n\t\treturn {$: 0, a: a, b: b, c: c};\n\t});\nvar elm$browser$Browser$Events$State = F2(\n\tfunction (subs, pids) {\n\t\treturn {at: pids, aD: subs};\n\t});\nvar elm$core$Dict$RBEmpty_elm_builtin = {$: -2};\nvar elm$core$Dict$empty = elm$core$Dict$RBEmpty_elm_builtin;\nvar elm$browser$Browser$Events$init = elm$core$Task$succeed(\n\tA2(elm$browser$Browser$Events$State, _List_Nil, elm$core$Dict$empty));\nvar elm$browser$Browser$Events$nodeToKey = function (node) {\n\tif (!node) {\n\t\treturn 'd_';\n\t} else {\n\t\treturn 'w_';\n\t}\n};\nvar elm$browser$Browser$Events$addKey = function (sub) {\n\tvar node = sub.a;\n\tvar name = sub.b;\n\treturn _Utils_Tuple2(\n\t\t_Utils_ap(\n\t\t\telm$browser$Browser$Events$nodeToKey(node),\n\t\t\tname),\n\t\tsub);\n};\nvar elm$browser$Browser$Events$Event = F2(\n\tfunction (key, event) {\n\t\treturn {ai: event, an: key};\n\t});\nvar elm$browser$Browser$Events$spawn = F3(\n\tfunction (router, key, _n0) {\n\t\tvar node = _n0.a;\n\t\tvar name = _n0.b;\n\t\tvar actualNode = function () {\n\t\t\tif (!node) {\n\t\t\t\treturn _Browser_doc;\n\t\t\t} else {\n\t\t\t\treturn _Browser_window;\n\t\t\t}\n\t\t}();\n\t\treturn A2(\n\t\t\telm$core$Task$map,\n\t\t\tfunction (value) {\n\t\t\t\treturn _Utils_Tuple2(key, value);\n\t\t\t},\n\t\t\tA3(\n\t\t\t\t_Browser_on,\n\t\t\t\tactualNode,\n\t\t\t\tname,\n\t\t\t\tfunction (event) {\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\telm$core$Platform$sendToSelf,\n\t\t\t\t\t\trouter,\n\t\t\t\t\t\tA2(elm$browser$Browser$Events$Event, key, event));\n\t\t\t\t}));\n\t});\nvar elm$core$Dict$Black = 1;\nvar elm$core$Dict$RBNode_elm_builtin = F5(\n\tfunction (a, b, c, d, e) {\n\t\treturn {$: -1, a: a, b: b, c: c, d: d, e: e};\n\t});\nvar elm$core$Basics$compare = _Utils_compare;\nvar elm$core$Dict$Red = 0;\nvar elm$core$Dict$balance = F5(\n\tfunction (color, key, value, left, right) {\n\t\tif ((right.$ === -1) && (!right.a)) {\n\t\t\tvar _n1 = right.a;\n\t\t\tvar rK = right.b;\n\t\t\tvar rV = right.c;\n\t\t\tvar rLeft = right.d;\n\t\t\tvar rRight = right.e;\n\t\t\tif ((left.$ === -1) && (!left.a)) {\n\t\t\t\tvar _n3 = left.a;\n\t\t\t\tvar lK = left.b;\n\t\t\t\tvar lV = left.c;\n\t\t\t\tvar lLeft = left.d;\n\t\t\t\tvar lRight = left.e;\n\t\t\t\treturn A5(\n\t\t\t\t\telm$core$Dict$RBNode_elm_builtin,\n\t\t\t\t\t0,\n\t\t\t\t\tkey,\n\t\t\t\t\tvalue,\n\t\t\t\t\tA5(elm$core$Dict$RBNode_elm_builtin, 1, lK, lV, lLeft, lRight),\n\t\t\t\t\tA5(elm$core$Dict$RBNode_elm_builtin, 1, rK, rV, rLeft, rRight));\n\t\t\t} else {\n\t\t\t\treturn A5(\n\t\t\t\t\telm$core$Dict$RBNode_elm_builtin,\n\t\t\t\t\tcolor,\n\t\t\t\t\trK,\n\t\t\t\t\trV,\n\t\t\t\t\tA5(elm$core$Dict$RBNode_elm_builtin, 0, key, value, left, rLeft),\n\t\t\t\t\trRight);\n\t\t\t}\n\t\t} else {\n\t\t\tif ((((left.$ === -1) && (!left.a)) && (left.d.$ === -1)) && (!left.d.a)) {\n\t\t\t\tvar _n5 = left.a;\n\t\t\t\tvar lK = left.b;\n\t\t\t\tvar lV = left.c;\n\t\t\t\tvar _n6 = left.d;\n\t\t\t\tvar _n7 = _n6.a;\n\t\t\t\tvar llK = _n6.b;\n\t\t\t\tvar llV = _n6.c;\n\t\t\t\tvar llLeft = _n6.d;\n\t\t\t\tvar llRight = _n6.e;\n\t\t\t\tvar lRight = left.e;\n\t\t\t\treturn A5(\n\t\t\t\t\telm$core$Dict$RBNode_elm_builtin,\n\t\t\t\t\t0,\n\t\t\t\t\tlK,\n\t\t\t\t\tlV,\n\t\t\t\t\tA5(elm$core$Dict$RBNode_elm_builtin, 1, llK, llV, llLeft, llRight),\n\t\t\t\t\tA5(elm$core$Dict$RBNode_elm_builtin, 1, key, value, lRight, right));\n\t\t\t} else {\n\t\t\t\treturn A5(elm$core$Dict$RBNode_elm_builtin, color, key, value, left, right);\n\t\t\t}\n\t\t}\n\t});\nvar elm$core$Dict$insertHelp = F3(\n\tfunction (key, value, dict) {\n\t\tif (dict.$ === -2) {\n\t\t\treturn A5(elm$core$Dict$RBNode_elm_builtin, 0, key, value, elm$core$Dict$RBEmpty_elm_builtin, elm$core$Dict$RBEmpty_elm_builtin);\n\t\t} else {\n\t\t\tvar nColor = dict.a;\n\t\t\tvar nKey = dict.b;\n\t\t\tvar nValue = dict.c;\n\t\t\tvar nLeft = dict.d;\n\t\t\tvar nRight = dict.e;\n\t\t\tvar _n1 = A2(elm$core$Basics$compare, key, nKey);\n\t\t\tswitch (_n1) {\n\t\t\t\tcase 0:\n\t\t\t\t\treturn A5(\n\t\t\t\t\t\telm$core$Dict$balance,\n\t\t\t\t\t\tnColor,\n\t\t\t\t\t\tnKey,\n\t\t\t\t\t\tnValue,\n\t\t\t\t\t\tA3(elm$core$Dict$insertHelp, key, value, nLeft),\n\t\t\t\t\t\tnRight);\n\t\t\t\tcase 1:\n\t\t\t\t\treturn A5(elm$core$Dict$RBNode_elm_builtin, nColor, nKey, value, nLeft, nRight);\n\t\t\t\tdefault:\n\t\t\t\t\treturn A5(\n\t\t\t\t\t\telm$core$Dict$balance,\n\t\t\t\t\t\tnColor,\n\t\t\t\t\t\tnKey,\n\t\t\t\t\t\tnValue,\n\t\t\t\t\t\tnLeft,\n\t\t\t\t\t\tA3(elm$core$Dict$insertHelp, key, value, nRight));\n\t\t\t}\n\t\t}\n\t});\nvar elm$core$Dict$insert = F3(\n\tfunction (key, value, dict) {\n\t\tvar _n0 = A3(elm$core$Dict$insertHelp, key, value, dict);\n\t\tif ((_n0.$ === -1) && (!_n0.a)) {\n\t\t\tvar _n1 = _n0.a;\n\t\t\tvar k = _n0.b;\n\t\t\tvar v = _n0.c;\n\t\t\tvar l = _n0.d;\n\t\t\tvar r = _n0.e;\n\t\t\treturn A5(elm$core$Dict$RBNode_elm_builtin, 1, k, v, l, r);\n\t\t} else {\n\t\t\tvar x = _n0;\n\t\t\treturn x;\n\t\t}\n\t});\nvar elm$core$Dict$fromList = function (assocs) {\n\treturn A3(\n\t\telm$core$List$foldl,\n\t\tF2(\n\t\t\tfunction (_n0, dict) {\n\t\t\t\tvar key = _n0.a;\n\t\t\t\tvar value = _n0.b;\n\t\t\t\treturn A3(elm$core$Dict$insert, key, value, dict);\n\t\t\t}),\n\t\telm$core$Dict$empty,\n\t\tassocs);\n};\nvar elm$core$Dict$foldl = F3(\n\tfunction (func, acc, dict) {\n\t\tfoldl:\n\t\twhile (true) {\n\t\t\tif (dict.$ === -2) {\n\t\t\t\treturn acc;\n\t\t\t} else {\n\t\t\t\tvar key = dict.b;\n\t\t\t\tvar value = dict.c;\n\t\t\t\tvar left = dict.d;\n\t\t\t\tvar right = dict.e;\n\t\t\t\tvar $temp$func = func,\n\t\t\t\t\t$temp$acc = A3(\n\t\t\t\t\tfunc,\n\t\t\t\t\tkey,\n\t\t\t\t\tvalue,\n\t\t\t\t\tA3(elm$core$Dict$foldl, func, acc, left)),\n\t\t\t\t\t$temp$dict = right;\n\t\t\t\tfunc = $temp$func;\n\t\t\t\tacc = $temp$acc;\n\t\t\t\tdict = $temp$dict;\n\t\t\t\tcontinue foldl;\n\t\t\t}\n\t\t}\n\t});\nvar elm$core$Dict$merge = F6(\n\tfunction (leftStep, bothStep, rightStep, leftDict, rightDict, initialResult) {\n\t\tvar stepState = F3(\n\t\t\tfunction (rKey, rValue, _n0) {\n\t\t\t\tstepState:\n\t\t\t\twhile (true) {\n\t\t\t\t\tvar list = _n0.a;\n\t\t\t\t\tvar result = _n0.b;\n\t\t\t\t\tif (!list.b) {\n\t\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t\tlist,\n\t\t\t\t\t\t\tA3(rightStep, rKey, rValue, result));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar _n2 = list.a;\n\t\t\t\t\t\tvar lKey = _n2.a;\n\t\t\t\t\t\tvar lValue = _n2.b;\n\t\t\t\t\t\tvar rest = list.b;\n\t\t\t\t\t\tif (_Utils_cmp(lKey, rKey) < 0) {\n\t\t\t\t\t\t\tvar $temp$rKey = rKey,\n\t\t\t\t\t\t\t\t$temp$rValue = rValue,\n\t\t\t\t\t\t\t\t$temp$_n0 = _Utils_Tuple2(\n\t\t\t\t\t\t\t\trest,\n\t\t\t\t\t\t\t\tA3(leftStep, lKey, lValue, result));\n\t\t\t\t\t\t\trKey = $temp$rKey;\n\t\t\t\t\t\t\trValue = $temp$rValue;\n\t\t\t\t\t\t\t_n0 = $temp$_n0;\n\t\t\t\t\t\t\tcontinue stepState;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (_Utils_cmp(lKey, rKey) > 0) {\n\t\t\t\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t\t\t\tlist,\n\t\t\t\t\t\t\t\t\tA3(rightStep, rKey, rValue, result));\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t\t\t\trest,\n\t\t\t\t\t\t\t\t\tA4(bothStep, lKey, lValue, rValue, result));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\tvar _n3 = A3(\n\t\t\telm$core$Dict$foldl,\n\t\t\tstepState,\n\t\t\t_Utils_Tuple2(\n\t\t\t\telm$core$Dict$toList(leftDict),\n\t\t\t\tinitialResult),\n\t\t\trightDict);\n\t\tvar leftovers = _n3.a;\n\t\tvar intermediateResult = _n3.b;\n\t\treturn A3(\n\t\t\telm$core$List$foldl,\n\t\t\tF2(\n\t\t\t\tfunction (_n4, result) {\n\t\t\t\t\tvar k = _n4.a;\n\t\t\t\t\tvar v = _n4.b;\n\t\t\t\t\treturn A3(leftStep, k, v, result);\n\t\t\t\t}),\n\t\t\tintermediateResult,\n\t\t\tleftovers);\n\t});\nvar elm$core$Dict$union = F2(\n\tfunction (t1, t2) {\n\t\treturn A3(elm$core$Dict$foldl, elm$core$Dict$insert, t2, t1);\n\t});\nvar elm$browser$Browser$Events$onEffects = F3(\n\tfunction (router, subs, state) {\n\t\tvar stepRight = F3(\n\t\t\tfunction (key, sub, _n6) {\n\t\t\t\tvar deads = _n6.a;\n\t\t\t\tvar lives = _n6.b;\n\t\t\t\tvar news = _n6.c;\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\tdeads,\n\t\t\t\t\tlives,\n\t\t\t\t\tA2(\n\t\t\t\t\t\telm$core$List$cons,\n\t\t\t\t\t\tA3(elm$browser$Browser$Events$spawn, router, key, sub),\n\t\t\t\t\t\tnews));\n\t\t\t});\n\t\tvar stepLeft = F3(\n\t\t\tfunction (_n4, pid, _n5) {\n\t\t\t\tvar deads = _n5.a;\n\t\t\t\tvar lives = _n5.b;\n\t\t\t\tvar news = _n5.c;\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\tA2(elm$core$List$cons, pid, deads),\n\t\t\t\t\tlives,\n\t\t\t\t\tnews);\n\t\t\t});\n\t\tvar stepBoth = F4(\n\t\t\tfunction (key, pid, _n2, _n3) {\n\t\t\t\tvar deads = _n3.a;\n\t\t\t\tvar lives = _n3.b;\n\t\t\t\tvar news = _n3.c;\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\tdeads,\n\t\t\t\t\tA3(elm$core$Dict$insert, key, pid, lives),\n\t\t\t\t\tnews);\n\t\t\t});\n\t\tvar newSubs = A2(elm$core$List$map, elm$browser$Browser$Events$addKey, subs);\n\t\tvar _n0 = A6(\n\t\t\telm$core$Dict$merge,\n\t\t\tstepLeft,\n\t\t\tstepBoth,\n\t\t\tstepRight,\n\t\t\tstate.at,\n\t\t\telm$core$Dict$fromList(newSubs),\n\t\t\t_Utils_Tuple3(_List_Nil, elm$core$Dict$empty, _List_Nil));\n\t\tvar deadPids = _n0.a;\n\t\tvar livePids = _n0.b;\n\t\tvar makeNewPids = _n0.c;\n\t\treturn A2(\n\t\t\telm$core$Task$andThen,\n\t\t\tfunction (pids) {\n\t\t\t\treturn elm$core$Task$succeed(\n\t\t\t\t\tA2(\n\t\t\t\t\t\telm$browser$Browser$Events$State,\n\t\t\t\t\t\tnewSubs,\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\telm$core$Dict$union,\n\t\t\t\t\t\t\tlivePids,\n\t\t\t\t\t\t\telm$core$Dict$fromList(pids))));\n\t\t\t},\n\t\t\tA2(\n\t\t\t\telm$core$Task$andThen,\n\t\t\t\tfunction (_n1) {\n\t\t\t\t\treturn elm$core$Task$sequence(makeNewPids);\n\t\t\t\t},\n\t\t\t\telm$core$Task$sequence(\n\t\t\t\t\tA2(elm$core$List$map, elm$core$Process$kill, deadPids))));\n\t});\nvar elm$core$List$maybeCons = F3(\n\tfunction (f, mx, xs) {\n\t\tvar _n0 = f(mx);\n\t\tif (!_n0.$) {\n\t\t\tvar x = _n0.a;\n\t\t\treturn A2(elm$core$List$cons, x, xs);\n\t\t} else {\n\t\t\treturn xs;\n\t\t}\n\t});\nvar elm$core$List$filterMap = F2(\n\tfunction (f, xs) {\n\t\treturn A3(\n\t\t\telm$core$List$foldr,\n\t\t\telm$core$List$maybeCons(f),\n\t\t\t_List_Nil,\n\t\t\txs);\n\t});\nvar elm$browser$Browser$Events$onSelfMsg = F3(\n\tfunction (router, _n0, state) {\n\t\tvar key = _n0.an;\n\t\tvar event = _n0.ai;\n\t\tvar toMessage = function (_n2) {\n\t\t\tvar subKey = _n2.a;\n\t\t\tvar _n3 = _n2.b;\n\t\t\tvar node = _n3.a;\n\t\t\tvar name = _n3.b;\n\t\t\tvar decoder = _n3.c;\n\t\t\treturn _Utils_eq(subKey, key) ? A2(_Browser_decodeEvent, decoder, event) : elm$core$Maybe$Nothing;\n\t\t};\n\t\tvar messages = A2(elm$core$List$filterMap, toMessage, state.aD);\n\t\treturn A2(\n\t\t\telm$core$Task$andThen,\n\t\t\tfunction (_n1) {\n\t\t\t\treturn elm$core$Task$succeed(state);\n\t\t\t},\n\t\t\telm$core$Task$sequence(\n\t\t\t\tA2(\n\t\t\t\t\telm$core$List$map,\n\t\t\t\t\telm$core$Platform$sendToApp(router),\n\t\t\t\t\tmessages)));\n\t});\nvar elm$browser$Browser$Events$subMap = F2(\n\tfunction (func, _n0) {\n\t\tvar node = _n0.a;\n\t\tvar name = _n0.b;\n\t\tvar decoder = _n0.c;\n\t\treturn A3(\n\t\t\telm$browser$Browser$Events$MySub,\n\t\t\tnode,\n\t\t\tname,\n\t\t\tA2(elm$json$Json$Decode$map, func, decoder));\n\t});\n_Platform_effectManagers['Browser.Events'] = _Platform_createManager(elm$browser$Browser$Events$init, elm$browser$Browser$Events$onEffects, elm$browser$Browser$Events$onSelfMsg, 0, elm$browser$Browser$Events$subMap);\nvar elm$browser$Browser$Events$subscription = _Platform_leaf('Browser.Events');\nvar elm$browser$Browser$Events$on = F3(\n\tfunction (node, name, decoder) {\n\t\treturn elm$browser$Browser$Events$subscription(\n\t\t\tA3(elm$browser$Browser$Events$MySub, node, name, decoder));\n\t});\nvar elm$json$Json$Decode$field = _Json_decodeField;\nvar elm$json$Json$Decode$int = _Json_decodeInt;\nvar elm$browser$Browser$Events$onResize = function (func) {\n\treturn A3(\n\t\telm$browser$Browser$Events$on,\n\t\t1,\n\t\t'resize',\n\t\tA2(\n\t\t\telm$json$Json$Decode$field,\n\t\t\t'target',\n\t\t\tA3(\n\t\t\t\telm$json$Json$Decode$map2,\n\t\t\t\tfunc,\n\t\t\t\tA2(elm$json$Json$Decode$field, 'innerWidth', elm$json$Json$Decode$int),\n\t\t\t\tA2(elm$json$Json$Decode$field, 'innerHeight', elm$json$Json$Decode$int))));\n};\nvar author$project$Main$main = elm$browser$Browser$element(\n\t{\n\t\taU: function (_n0) {\n\t\t\treturn author$project$Main$init;\n\t\t},\n\t\ta1: function (model) {\n\t\t\treturn elm$core$Platform$Sub$batch(\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tauthor$project$Main$animationTick(model),\n\t\t\t\t\t\telm$browser$Browser$Events$onResize(author$project$Msg$ResizeWindow)\n\t\t\t\t\t]));\n\t\t},\n\t\ta4: author$project$Msg$update,\n\t\ta6: author$project$View$view\n\t});\n_Platform_export({'Main':{'init':author$project$Main$main(\n\telm$json$Json$Decode$succeed(0))(0)}});}(this));","// In production, we register a service worker to serve assets from local cache.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\n// cached resources are updated in the background.\n\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\n// This link also includes instructions on opting out of this behavior.\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport default function register() {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (!isLocalhost) {\n // Is not local host. Just register service worker\n registerValidSW(swUrl);\n } else {\n // This is running on localhost. Lets check if a service worker still exists or not.\n checkValidServiceWorker(swUrl);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and\n // the fresh content will have been added to the cache.\n // It's the perfect time to display a \"New content is\n // available; please refresh.\" message in your web app.\n console.log('New content is available; please refresh.');\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n if (\n response.status === 404 ||\n response.headers.get('content-type').indexOf('javascript') === -1\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import './main.css';\nimport { Elm } from './Main.elm';\nimport registerServiceWorker from './registerServiceWorker';\n\nElm.Main.init({\n node: document.getElementById('root')\n});\n\nregisterServiceWorker();\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/static/js/runtime~main.538a88e8.js b/docs/static/js/runtime~main.538a88e8.js deleted file mode 100644 index 79ac90e..0000000 --- a/docs/static/js/runtime~main.538a88e8.js +++ /dev/null @@ -1,2 +0,0 @@ -!function(e){function r(r){for(var t,l,f=r[0],i=r[1],a=r[2],c=0,s=[];cs){for(var e=0,r=o.length-i;e-1};c.prototype.append=function(t,e){t=a(t),e=u(e);var r=this.map[t];this.map[t]=r?r+","+e:e},c.prototype.delete=function(t){delete this.map[a(t)]},c.prototype.get=function(t){return t=a(t),this.has(t)?this.map[t]:null},c.prototype.has=function(t){return this.map.hasOwnProperty(a(t))},c.prototype.set=function(t,e){this.map[a(t)]=u(e)},c.prototype.forEach=function(t,e){for(var r in this.map)this.map.hasOwnProperty(r)&&t.call(e,this.map[r],r,this)},c.prototype.keys=function(){var t=[];return this.forEach(function(e,r){t.push(r)}),f(t)},c.prototype.values=function(){var t=[];return this.forEach(function(e){t.push(e)}),f(t)},c.prototype.entries=function(){var t=[];return this.forEach(function(e,r){t.push([r,e])}),f(t)},e.iterable&&(c.prototype[Symbol.iterator]=c.prototype.entries);var i=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];b.prototype.clone=function(){return new b(this,{body:this._bodyInit})},p.call(b.prototype),p.call(w.prototype),w.prototype.clone=function(){return new w(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new c(this.headers),url:this.url})},w.error=function(){var t=new w(null,{status:0,statusText:""});return t.type="error",t};var s=[301,302,303,307,308];w.redirect=function(t,e){if(-1===s.indexOf(e))throw new RangeError("Invalid status code");return new w(null,{status:e,headers:{location:t}})},t.Headers=c,t.Request=b,t.Response=w,t.fetch=function(t,r){return new Promise(function(n,o){var i=new b(t,r),s=new XMLHttpRequest;s.onload=function(){var t,e,r={status:s.status,statusText:s.statusText,headers:(t=s.getAllResponseHeaders()||"",e=new c,t.replace(/\r?\n[\t ]+/g," ").split(/\r?\n/).forEach(function(t){var r=t.split(":"),n=r.shift().trim();if(n){var o=r.join(":").trim();e.append(n,o)}}),e)};r.url="responseURL"in s?s.responseURL:r.headers.get("X-Request-URL");var o="response"in s?s.response:s.responseText;n(new w(o,r))},s.onerror=function(){o(new TypeError("Network request failed"))},s.ontimeout=function(){o(new TypeError("Network request failed"))},s.open(i.method,i.url,!0),"include"===i.credentials?s.withCredentials=!0:"omit"===i.credentials&&(s.withCredentials=!1),"responseType"in s&&e.blob&&(s.responseType="blob"),i.headers.forEach(function(t,e){s.setRequestHeader(e,t)}),s.send("undefined"===typeof i._bodyInit?null:i._bodyInit)})},t.fetch.polyfill=!0}function a(t){if("string"!==typeof t&&(t=String(t)),/[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(t))throw new TypeError("Invalid character in header field name");return t.toLowerCase()}function u(t){return"string"!==typeof t&&(t=String(t)),t}function f(t){var r={next:function(){var e=t.shift();return{done:void 0===e,value:e}}};return e.iterable&&(r[Symbol.iterator]=function(){return r}),r}function c(t){this.map={},t instanceof c?t.forEach(function(t,e){this.append(e,t)},this):Array.isArray(t)?t.forEach(function(t){this.append(t[0],t[1])},this):t&&Object.getOwnPropertyNames(t).forEach(function(e){this.append(e,t[e])},this)}function l(t){if(t.bodyUsed)return Promise.reject(new TypeError("Already read"));t.bodyUsed=!0}function h(t){return new Promise(function(e,r){t.onload=function(){e(t.result)},t.onerror=function(){r(t.error)}})}function d(t){var e=new FileReader,r=h(e);return e.readAsArrayBuffer(t),r}function y(t){if(t.slice)return t.slice(0);var e=new Uint8Array(t.byteLength);return e.set(new Uint8Array(t)),e.buffer}function p(){return this.bodyUsed=!1,this._initBody=function(t){if(this._bodyInit=t,t)if("string"===typeof t)this._bodyText=t;else if(e.blob&&Blob.prototype.isPrototypeOf(t))this._bodyBlob=t;else if(e.formData&&FormData.prototype.isPrototypeOf(t))this._bodyFormData=t;else if(e.searchParams&&URLSearchParams.prototype.isPrototypeOf(t))this._bodyText=t.toString();else if(e.arrayBuffer&&e.blob&&n(t))this._bodyArrayBuffer=y(t.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer]);else{if(!e.arrayBuffer||!ArrayBuffer.prototype.isPrototypeOf(t)&&!o(t))throw new Error("unsupported BodyInit type");this._bodyArrayBuffer=y(t)}else this._bodyText="";this.headers.get("content-type")||("string"===typeof t?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):e.searchParams&&URLSearchParams.prototype.isPrototypeOf(t)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},e.blob&&(this.blob=function(){var t=l(this);if(t)return t;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?l(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(d)}),this.text=function(){var t,e,r,n=l(this);if(n)return n;if(this._bodyBlob)return t=this._bodyBlob,e=new FileReader,r=h(e),e.readAsText(t),r;if(this._bodyArrayBuffer)return Promise.resolve(function(t){for(var e=new Uint8Array(t),r=new Array(e.length),n=0;n-1?n:r),this.mode=e.mode||this.mode||null,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&o)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(o)}function m(t){var e=new FormData;return t.trim().split("&").forEach(function(t){if(t){var r=t.split("="),n=r.shift().replace(/\+/g," "),o=r.join("=").replace(/\+/g," ");e.append(decodeURIComponent(n),decodeURIComponent(o))}}),e}function w(t,e){e||(e={}),this.type="default",this.status=void 0===e.status?200:e.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in e?e.statusText:"OK",this.headers=new c(e.headers),this.url=e.url||"",this._initBody(t)}}("undefined"!==typeof self?self:this)},function(t,e,r){"use strict";var n=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;t.exports=function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},r=0;r<10;r++)e["_"+String.fromCharCode(r)]=r;if("0123456789"!==Object.getOwnPropertyNames(e).map(function(t){return e[t]}).join(""))return!1;var n={};return"abcdefghijklmnopqrst".split("").forEach(function(t){n[t]=t}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},n)).join("")}catch(t){return!1}}()?Object.assign:function(t,e){for(var r,s,a=function(t){if(null===t||void 0===t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}(t),u=1;u capacity) {\n // Manually shift all values starting at the index back to the\n // beginning of the queue.\n for (var scan = 0, newLength = queue.length - index; scan < newLength; scan++) {\n queue[scan] = queue[scan + index];\n }\n queue.length -= index;\n index = 0;\n }\n }\n queue.length = 0;\n index = 0;\n flushing = false;\n}\n\n// `requestFlush` is implemented using a strategy based on data collected from\n// every available SauceLabs Selenium web driver worker at time of writing.\n// https://docs.google.com/spreadsheets/d/1mG-5UYGup5qxGdEMWkhP6BWCz053NUb2E1QoUTU16uA/edit#gid=783724593\n\n// Safari 6 and 6.1 for desktop, iPad, and iPhone are the only browsers that\n// have WebKitMutationObserver but not un-prefixed MutationObserver.\n// Must use `global` or `self` instead of `window` to work in both frames and web\n// workers. `global` is a provision of Browserify, Mr, Mrs, or Mop.\n\n/* globals self */\nvar scope = typeof global !== \"undefined\" ? global : self;\nvar BrowserMutationObserver = scope.MutationObserver || scope.WebKitMutationObserver;\n\n// MutationObservers are desirable because they have high priority and work\n// reliably everywhere they are implemented.\n// They are implemented in all modern browsers.\n//\n// - Android 4-4.3\n// - Chrome 26-34\n// - Firefox 14-29\n// - Internet Explorer 11\n// - iPad Safari 6-7.1\n// - iPhone Safari 7-7.1\n// - Safari 6-7\nif (typeof BrowserMutationObserver === \"function\") {\n requestFlush = makeRequestCallFromMutationObserver(flush);\n\n// MessageChannels are desirable because they give direct access to the HTML\n// task queue, are implemented in Internet Explorer 10, Safari 5.0-1, and Opera\n// 11-12, and in web workers in many engines.\n// Although message channels yield to any queued rendering and IO tasks, they\n// would be better than imposing the 4ms delay of timers.\n// However, they do not work reliably in Internet Explorer or Safari.\n\n// Internet Explorer 10 is the only browser that has setImmediate but does\n// not have MutationObservers.\n// Although setImmediate yields to the browser's renderer, it would be\n// preferrable to falling back to setTimeout since it does not have\n// the minimum 4ms penalty.\n// Unfortunately there appears to be a bug in Internet Explorer 10 Mobile (and\n// Desktop to a lesser extent) that renders both setImmediate and\n// MessageChannel useless for the purposes of ASAP.\n// https://github.com/kriskowal/q/issues/396\n\n// Timers are implemented universally.\n// We fall back to timers in workers in most engines, and in foreground\n// contexts in the following browsers.\n// However, note that even this simple case requires nuances to operate in a\n// broad spectrum of browsers.\n//\n// - Firefox 3-13\n// - Internet Explorer 6-9\n// - iPad Safari 4.3\n// - Lynx 2.8.7\n} else {\n requestFlush = makeRequestCallFromTimer(flush);\n}\n\n// `requestFlush` requests that the high priority event queue be flushed as\n// soon as possible.\n// This is useful to prevent an error thrown in a task from stalling the event\n// queue if the exception handled by Node.js’s\n// `process.on(\"uncaughtException\")` or by a domain.\nrawAsap.requestFlush = requestFlush;\n\n// To request a high priority event, we induce a mutation observer by toggling\n// the text of a text node between \"1\" and \"-1\".\nfunction makeRequestCallFromMutationObserver(callback) {\n var toggle = 1;\n var observer = new BrowserMutationObserver(callback);\n var node = document.createTextNode(\"\");\n observer.observe(node, {characterData: true});\n return function requestCall() {\n toggle = -toggle;\n node.data = toggle;\n };\n}\n\n// The message channel technique was discovered by Malte Ubl and was the\n// original foundation for this library.\n// http://www.nonblocking.io/2011/06/windownexttick.html\n\n// Safari 6.0.5 (at least) intermittently fails to create message ports on a\n// page's first load. Thankfully, this version of Safari supports\n// MutationObservers, so we don't need to fall back in that case.\n\n// function makeRequestCallFromMessageChannel(callback) {\n// var channel = new MessageChannel();\n// channel.port1.onmessage = callback;\n// return function requestCall() {\n// channel.port2.postMessage(0);\n// };\n// }\n\n// For reasons explained above, we are also unable to use `setImmediate`\n// under any circumstances.\n// Even if we were, there is another bug in Internet Explorer 10.\n// It is not sufficient to assign `setImmediate` to `requestFlush` because\n// `setImmediate` must be called *by name* and therefore must be wrapped in a\n// closure.\n// Never forget.\n\n// function makeRequestCallFromSetImmediate(callback) {\n// return function requestCall() {\n// setImmediate(callback);\n// };\n// }\n\n// Safari 6.0 has a problem where timers will get lost while the user is\n// scrolling. This problem does not impact ASAP because Safari 6.0 supports\n// mutation observers, so that implementation is used instead.\n// However, if we ever elect to use timers in Safari, the prevalent work-around\n// is to add a scroll event listener that calls for a flush.\n\n// `setTimeout` does not call the passed callback if the delay is less than\n// approximately 7 in web workers in Firefox 8 through 18, and sometimes not\n// even then.\n\nfunction makeRequestCallFromTimer(callback) {\n return function requestCall() {\n // We dispatch a timeout with a specified delay of 0 for engines that\n // can reliably accommodate that request. This will usually be snapped\n // to a 4 milisecond delay, but once we're flushing, there's no delay\n // between events.\n var timeoutHandle = setTimeout(handleTimer, 0);\n // However, since this timer gets frequently dropped in Firefox\n // workers, we enlist an interval handle that will try to fire\n // an event 20 times per second until it succeeds.\n var intervalHandle = setInterval(handleTimer, 50);\n\n function handleTimer() {\n // Whichever timer succeeds will cancel both timers and\n // execute the callback.\n clearTimeout(timeoutHandle);\n clearInterval(intervalHandle);\n callback();\n }\n };\n}\n\n// This is for `asap.js` only.\n// Its name will be periodically randomized to break any code that depends on\n// its existence.\nrawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer;\n\n// ASAP was originally a nextTick shim included in Q. This was factored out\n// into this ASAP package. It was later adapted to RSVP which made further\n// amendments. These decisions, particularly to marginalize MessageChannel and\n// to capture the MutationObserver implementation in a closure, were integrated\n// back into ASAP proper.\n// https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || Function(\"return this\")() || (1, eval)(\"this\");\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","'use strict';\n\n//This file contains the ES6 extensions to the core Promises/A+ API\n\nvar Promise = require('./core.js');\n\nmodule.exports = Promise;\n\n/* Static Functions */\n\nvar TRUE = valuePromise(true);\nvar FALSE = valuePromise(false);\nvar NULL = valuePromise(null);\nvar UNDEFINED = valuePromise(undefined);\nvar ZERO = valuePromise(0);\nvar EMPTYSTRING = valuePromise('');\n\nfunction valuePromise(value) {\n var p = new Promise(Promise._44);\n p._83 = 1;\n p._18 = value;\n return p;\n}\nPromise.resolve = function (value) {\n if (value instanceof Promise) return value;\n\n if (value === null) return NULL;\n if (value === undefined) return UNDEFINED;\n if (value === true) return TRUE;\n if (value === false) return FALSE;\n if (value === 0) return ZERO;\n if (value === '') return EMPTYSTRING;\n\n if (typeof value === 'object' || typeof value === 'function') {\n try {\n var then = value.then;\n if (typeof then === 'function') {\n return new Promise(then.bind(value));\n }\n } catch (ex) {\n return new Promise(function (resolve, reject) {\n reject(ex);\n });\n }\n }\n return valuePromise(value);\n};\n\nPromise.all = function (arr) {\n var args = Array.prototype.slice.call(arr);\n\n return new Promise(function (resolve, reject) {\n if (args.length === 0) return resolve([]);\n var remaining = args.length;\n function res(i, val) {\n if (val && (typeof val === 'object' || typeof val === 'function')) {\n if (val instanceof Promise && val.then === Promise.prototype.then) {\n while (val._83 === 3) {\n val = val._18;\n }\n if (val._83 === 1) return res(i, val._18);\n if (val._83 === 2) reject(val._18);\n val.then(function (val) {\n res(i, val);\n }, reject);\n return;\n } else {\n var then = val.then;\n if (typeof then === 'function') {\n var p = new Promise(then.bind(val));\n p.then(function (val) {\n res(i, val);\n }, reject);\n return;\n }\n }\n }\n args[i] = val;\n if (--remaining === 0) {\n resolve(args);\n }\n }\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n};\n\nPromise.reject = function (value) {\n return new Promise(function (resolve, reject) {\n reject(value);\n });\n};\n\nPromise.race = function (values) {\n return new Promise(function (resolve, reject) {\n values.forEach(function(value){\n Promise.resolve(value).then(resolve, reject);\n });\n });\n};\n\n/* Prototype Methods */\n\nPromise.prototype['catch'] = function (onRejected) {\n return this.then(null, onRejected);\n};\n","(function(self) {\n 'use strict';\n\n if (self.fetch) {\n return\n }\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob: 'FileReader' in self && 'Blob' in self && (function() {\n try {\n new Blob()\n return true\n } catch(e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ]\n\n var isDataView = function(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n var isArrayBufferView = ArrayBuffer.isView || function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n }\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name)\n }\n if (/[^a-z0-9\\-#$%&'*+.\\^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value)\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift()\n return {done: value === undefined, value: value}\n }\n }\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n }\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {}\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value)\n }, this)\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1])\n }, this)\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name])\n }, this)\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name)\n value = normalizeValue(value)\n var oldValue = this.map[name]\n this.map[name] = oldValue ? oldValue+','+value : value\n }\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)]\n }\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name)\n return this.has(name) ? this.map[name] : null\n }\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n }\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value)\n }\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this)\n }\n }\n }\n\n Headers.prototype.keys = function() {\n var items = []\n this.forEach(function(value, name) { items.push(name) })\n return iteratorFor(items)\n }\n\n Headers.prototype.values = function() {\n var items = []\n this.forEach(function(value) { items.push(value) })\n return iteratorFor(items)\n }\n\n Headers.prototype.entries = function() {\n var items = []\n this.forEach(function(value, name) { items.push([name, value]) })\n return iteratorFor(items)\n }\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result)\n }\n reader.onerror = function() {\n reject(reader.error)\n }\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsArrayBuffer(blob)\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsText(blob)\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf)\n var chars = new Array(view.length)\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i])\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength)\n view.set(new Uint8Array(buf))\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false\n\n this._initBody = function(body) {\n this._bodyInit = body\n if (!body) {\n this._bodyText = ''\n } else if (typeof body === 'string') {\n this._bodyText = body\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString()\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer)\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer])\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body)\n } else {\n throw new Error('unsupported BodyInit type')\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8')\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type)\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n }\n }\n }\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n }\n }\n\n this.text = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n }\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n }\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n }\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase()\n return (methods.indexOf(upcased) > -1) ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {}\n var body = options.body\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url\n this.credentials = input.credentials\n if (!options.headers) {\n this.headers = new Headers(input.headers)\n }\n this.method = input.method\n this.mode = input.mode\n if (!body && input._bodyInit != null) {\n body = input._bodyInit\n input.bodyUsed = true\n }\n } else {\n this.url = String(input)\n }\n\n this.credentials = options.credentials || this.credentials || 'omit'\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers)\n }\n this.method = normalizeMethod(options.method || this.method || 'GET')\n this.mode = options.mode || this.mode || null\n this.referrer = null\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body)\n }\n\n Request.prototype.clone = function() {\n return new Request(this, { body: this._bodyInit })\n }\n\n function decode(body) {\n var form = new FormData()\n body.trim().split('&').forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=')\n var name = split.shift().replace(/\\+/g, ' ')\n var value = split.join('=').replace(/\\+/g, ' ')\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers()\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ')\n preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':')\n var key = parts.shift().trim()\n if (key) {\n var value = parts.join(':').trim()\n headers.append(key, value)\n }\n })\n return headers\n }\n\n Body.call(Request.prototype)\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {}\n }\n\n this.type = 'default'\n this.status = options.status === undefined ? 200 : options.status\n this.ok = this.status >= 200 && this.status < 300\n this.statusText = 'statusText' in options ? options.statusText : 'OK'\n this.headers = new Headers(options.headers)\n this.url = options.url || ''\n this._initBody(bodyInit)\n }\n\n Body.call(Response.prototype)\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n }\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''})\n response.type = 'error'\n return response\n }\n\n var redirectStatuses = [301, 302, 303, 307, 308]\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n }\n\n self.Headers = Headers\n self.Request = Request\n self.Response = Response\n\n self.fetch = function(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init)\n var xhr = new XMLHttpRequest()\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n var body = 'response' in xhr ? xhr.response : xhr.responseText\n resolve(new Response(body, options))\n }\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.open(request.method, request.url, true)\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob'\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value)\n })\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n })\n }\n self.fetch.polyfill = true\n})(typeof self !== 'undefined' ? self : this);\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n"],"sourceRoot":""} \ No newline at end of file diff --git a/elm.json b/elm.json index 443399c..c061d42 100644 --- a/elm.json +++ b/elm.json @@ -3,11 +3,11 @@ "source-directories": [ "src" ], - "elm-version": "0.19.0", + "elm-version": "0.19.1", "dependencies": { "direct": { "elm/browser": "1.0.0", - "elm/core": "1.0.0", + "elm/core": "1.0.5", "elm/html": "1.0.0", "elm/random": "1.0.0", "elm/svg": "1.0.1" @@ -21,8 +21,10 @@ }, "test-dependencies": { "direct": { - "elm-explorations/test": "1.0.0" + "elm-explorations/test": "2.0.0" }, - "indirect": {} + "indirect": { + "elm/bytes": "1.0.8" + } } } \ No newline at end of file diff --git a/elmapp.config.js b/elmapp.config.js deleted file mode 100644 index eb9fe9a..0000000 --- a/elmapp.config.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - "homepage": "https://adamnfish.github.io/luna", -} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..8524add --- /dev/null +++ b/package-lock.json @@ -0,0 +1,4034 @@ +{ + "name": "luna", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "luna", + "version": "1.0.0", + "devDependencies": { + "@parcel/packager-raw-url": "^2.16.4", + "@parcel/transformer-elm": "^2.16.4", + "@parcel/transformer-webmanifest": "^2.16.4", + "elm": "^0.19.1-6", + "elm-test": "0.19.1-revision17", + "parcel": "^2.16.4" + } + }, + "node_modules/@elm_binaries/darwin_arm64": { + "version": "0.19.1-0", + "resolved": "https://registry.npmjs.org/@elm_binaries/darwin_arm64/-/darwin_arm64-0.19.1-0.tgz", + "integrity": "sha512-mjbsH7BNHEAmoE2SCJFcfk5fIHwFIpxtSgnEAqMsVLpBUFoEtAeX+LQ+N0vSFJB3WAh73+QYx/xSluxxLcL6dA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@elm_binaries/darwin_x64": { + "version": "0.19.1-0", + "resolved": "https://registry.npmjs.org/@elm_binaries/darwin_x64/-/darwin_x64-0.19.1-0.tgz", + "integrity": "sha512-QGUtrZTPBzaxgi9al6nr+9313wrnUVHuijzUK39UsPS+pa+n6CmWyV/69sHZeX9qy6UfeugE0PzF3qcUiy2GDQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@elm_binaries/linux_x64": { + "version": "0.19.1-0", + "resolved": "https://registry.npmjs.org/@elm_binaries/linux_x64/-/linux_x64-0.19.1-0.tgz", + "integrity": "sha512-T1ZrWVhg2kKAsi8caOd3vp/1A3e21VuCpSG63x8rDie50fHbCytTway9B8WHEdnBFv4mYWiA68dzGxYCiFmU2w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@elm_binaries/win32_x64": { + "version": "0.19.1-0", + "resolved": "https://registry.npmjs.org/@elm_binaries/win32_x64/-/win32_x64-0.19.1-0.tgz", + "integrity": "sha512-yDleiXqSE9EcqKtd9SkC/4RIW8I71YsXzMPL79ub2bBPHjWTcoyyeBbYjoOB9SxSlArJ74HaoBApzT6hY7Zobg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@lezer/common": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.5.2.tgz", + "integrity": "sha512-sxQE460fPZyU3sdc8lafxiPwJHBzZRy/udNFynGQky1SePYBdhkBl1kOagA9uT3pxR8K09bOrmTUqA9wb/PjSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@lezer/lr": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.4.8.tgz", + "integrity": "sha512-bPWa0Pgx69ylNlMlPvBPryqeLYQjyJjqPx+Aupm5zydLIF3NE+6MMLT8Yi23Bd9cif9VS00aUebn+6fDIGBcDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.0.0" + } + }, + "node_modules/@lmdb/lmdb-darwin-arm64": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-2.8.5.tgz", + "integrity": "sha512-KPDeVScZgA1oq0CiPBcOa3kHIqU+pTOwRFDIhxvmf8CTNvqdZQYp5cCKW0bUk69VygB2PuTiINFWbY78aR2pQw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@lmdb/lmdb-darwin-x64": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-2.8.5.tgz", + "integrity": "sha512-w/sLhN4T7MW1nB3R/U8WK5BgQLz904wh+/SmA2jD8NnF7BLLoUgflCNxOeSPOWp8geP6nP/+VjWzZVip7rZ1ug==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@lmdb/lmdb-linux-arm": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-2.8.5.tgz", + "integrity": "sha512-c0TGMbm2M55pwTDIfkDLB6BpIsgxV4PjYck2HiOX+cy/JWiBXz32lYbarPqejKs9Flm7YVAKSILUducU9g2RVg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@lmdb/lmdb-linux-arm64": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-2.8.5.tgz", + "integrity": "sha512-vtbZRHH5UDlL01TT5jB576Zox3+hdyogvpcbvVJlmU5PdL3c5V7cj1EODdh1CHPksRl+cws/58ugEHi8bcj4Ww==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@lmdb/lmdb-linux-x64": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-2.8.5.tgz", + "integrity": "sha512-Xkc8IUx9aEhP0zvgeKy7IQ3ReX2N8N1L0WPcQwnZweWmOuKfwpS3GRIYqLtK5za/w3E60zhFfNdS+3pBZPytqQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@lmdb/lmdb-win32-x64": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-2.8.5.tgz", + "integrity": "sha512-4wvrf5BgnR8RpogHhtpCPJMKBmvyZPhhUtEwMJbXh0ni2BucpfF07jlmyM11zRqQ2XIq6PbC2j7W7UCCcm1rRQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@mischnic/json-sourcemap": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@mischnic/json-sourcemap/-/json-sourcemap-0.1.1.tgz", + "integrity": "sha512-iA7+tyVqfrATAIsIRWQG+a7ZLLD0VaOCKV2Wd/v4mqIU3J9c4jx9p7S0nw1XH3gJCKNBOOwACOPYYSUu9pgT+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.0.0", + "@lezer/lr": "^1.0.0", + "json5": "^2.2.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@msgpackr-extract/msgpackr-extract-darwin-arm64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.3.tgz", + "integrity": "sha512-QZHtlVgbAdy2zAqNA9Gu1UpIuI8Xvsd1v8ic6B2pZmeFnFcMWiPLfWXh7TVw4eGEZ/C9TH281KwhVoeQUKbyjw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-darwin-x64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-3.0.3.tgz", + "integrity": "sha512-mdzd3AVzYKuUmiWOQ8GNhl64/IoFGol569zNRdkLReh6LRLHOXxU4U8eq0JwaD8iFHdVGqSy4IjFL4reoWCDFw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-3.0.3.tgz", + "integrity": "sha512-fg0uy/dG/nZEXfYilKoRe7yALaNmHoYeIoJuJ7KJ+YyU2bvY8vPv27f7UKhGRpY6euFYqEVhxCFZgAUNQBM3nw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.3.tgz", + "integrity": "sha512-YxQL+ax0XqBJDZiKimS2XQaf+2wDGVa1enVRGzEvLLVFeqa5kx2bWbtcSXgsxjQB7nRqqIGFIcLteF/sHeVtQg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-linux-x64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.3.tgz", + "integrity": "sha512-cvwNfbP07pKUfq1uH+S6KJ7dT9K8WOE4ZiAcsrSes+UY55E/0jLYc+vq+DO7jlmqRb5zAggExKm0H7O/CBaesg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-win32-x64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.3.tgz", + "integrity": "sha512-x0fWaQtYp4E6sktbsdAqnehxDgEc/VwM7uLsRCYWaiGu0ykYdZPiS8zCWdnjHwyiumousxfBm4SO31eXqwEZhQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@parcel/bundler-default": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/bundler-default/-/bundler-default-2.16.4.tgz", + "integrity": "sha512-Nb8peNvhfm1+660CLwssWh4weY+Mv6vEGS6GPKqzJmTMw50udi0eS1YuWFzvmhSiu1KsYcUD37mqQ1LuIDtWoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.16.4", + "@parcel/graph": "3.6.4", + "@parcel/plugin": "2.16.4", + "@parcel/rust": "2.16.4", + "@parcel/utils": "2.16.4", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.16.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/cache": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/cache/-/cache-2.16.4.tgz", + "integrity": "sha512-+uCyeElSga2MBbmbXpIj/WVKH7TByCrKaxtHbelfKKIJpYMgEHVjO4cuc7GUfTrUAmRUS8ZGvnX7Etgq6/jQhw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/fs": "2.16.4", + "@parcel/logger": "2.16.4", + "@parcel/utils": "2.16.4", + "lmdb": "2.8.5" + }, + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "peerDependencies": { + "@parcel/core": "^2.16.4" + } + }, + "node_modules/@parcel/codeframe": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/codeframe/-/codeframe-2.16.4.tgz", + "integrity": "sha512-s64aMfOJoPrXhKH+Y98ahX0O8aXWvTR+uNlOaX4yFkpr4FFDnviLcGngDe/Yo4Qq2FJZ0P6dNswbJTUH9EGxkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.2" + }, + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/compressor-raw": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/compressor-raw/-/compressor-raw-2.16.4.tgz", + "integrity": "sha512-IK8IpNhw61B2HKgA1JhGhO9y+ZJFRZNTEmvhN1NdLdPqvgEXm2EunT+m6D9z7xeoeT6XnUKqM0eRckEdD0OXbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/plugin": "2.16.4" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.16.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/config-default": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/config-default/-/config-default-2.16.4.tgz", + "integrity": "sha512-kBxuTY/5trEVnvXk92l7LVkYjNuz3SaqWymFhPjEnc8GY4ZVdcWrWdXWTB9hUhpmRYJctFCyGvM0nN05JTiM2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/bundler-default": "2.16.4", + "@parcel/compressor-raw": "2.16.4", + "@parcel/namer-default": "2.16.4", + "@parcel/optimizer-css": "2.16.4", + "@parcel/optimizer-html": "2.16.4", + "@parcel/optimizer-image": "2.16.4", + "@parcel/optimizer-svg": "2.16.4", + "@parcel/optimizer-swc": "2.16.4", + "@parcel/packager-css": "2.16.4", + "@parcel/packager-html": "2.16.4", + "@parcel/packager-js": "2.16.4", + "@parcel/packager-raw": "2.16.4", + "@parcel/packager-svg": "2.16.4", + "@parcel/packager-wasm": "2.16.4", + "@parcel/reporter-dev-server": "2.16.4", + "@parcel/resolver-default": "2.16.4", + "@parcel/runtime-browser-hmr": "2.16.4", + "@parcel/runtime-js": "2.16.4", + "@parcel/runtime-rsc": "2.16.4", + "@parcel/runtime-service-worker": "2.16.4", + "@parcel/transformer-babel": "2.16.4", + "@parcel/transformer-css": "2.16.4", + "@parcel/transformer-html": "2.16.4", + "@parcel/transformer-image": "2.16.4", + "@parcel/transformer-js": "2.16.4", + "@parcel/transformer-json": "2.16.4", + "@parcel/transformer-node": "2.16.4", + "@parcel/transformer-postcss": "2.16.4", + "@parcel/transformer-posthtml": "2.16.4", + "@parcel/transformer-raw": "2.16.4", + "@parcel/transformer-react-refresh-wrap": "2.16.4", + "@parcel/transformer-svg": "2.16.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "peerDependencies": { + "@parcel/core": "^2.16.4" + } + }, + "node_modules/@parcel/core": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/core/-/core-2.16.4.tgz", + "integrity": "sha512-a0CgrW5A5kwuSu5J1RFRoMQaMs9yagvfH2jJMYVw56+/7NRI4KOtu612SG9Y1ERWfY55ZwzyFxtLWvD6LO+Anw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@mischnic/json-sourcemap": "^0.1.1", + "@parcel/cache": "2.16.4", + "@parcel/diagnostic": "2.16.4", + "@parcel/events": "2.16.4", + "@parcel/feature-flags": "2.16.4", + "@parcel/fs": "2.16.4", + "@parcel/graph": "3.6.4", + "@parcel/logger": "2.16.4", + "@parcel/package-manager": "2.16.4", + "@parcel/plugin": "2.16.4", + "@parcel/profiler": "2.16.4", + "@parcel/rust": "2.16.4", + "@parcel/source-map": "^2.1.1", + "@parcel/types": "2.16.4", + "@parcel/utils": "2.16.4", + "@parcel/workers": "2.16.4", + "base-x": "^3.0.11", + "browserslist": "^4.24.5", + "clone": "^2.1.2", + "dotenv": "^16.5.0", + "dotenv-expand": "^11.0.7", + "json5": "^2.2.3", + "msgpackr": "^1.11.2", + "nullthrows": "^1.1.1", + "semver": "^7.7.1" + }, + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/diagnostic": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/diagnostic/-/diagnostic-2.16.4.tgz", + "integrity": "sha512-YN5CfX7lFd6yRLxyZT4Sj3sR6t7nnve4TdXSIqapXzQwL7Bw+sj79D95wTq2rCm3mzk5SofGxFAXul2/nG6gcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@mischnic/json-sourcemap": "^0.1.1", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/error-overlay": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/error-overlay/-/error-overlay-2.16.4.tgz", + "integrity": "sha512-e8KYKnMsfmQnqIhsUWBUZAXlDK30wkxsAGle1tZ0gOdoplaIdVq/WjGPatHLf6igLM76c3tRn2vw8jZFput0jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/events": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/events/-/events-2.16.4.tgz", + "integrity": "sha512-slWQkBRAA7o0cN0BLEd+yCckPmlVRVhBZn5Pn6ktm4EzEtrqoMzMeJOxxH8TXaRzrQDYnTcnYIHFgXWd4kkUfg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/feature-flags": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/feature-flags/-/feature-flags-2.16.4.tgz", + "integrity": "sha512-nYdx53siKPLYikHHxfzgjzzgxdrjquK6DMnuSgOTyIdRG4VHdEN0+NqKijRLuVgiUFo/dtxc2h+amwqFENMw8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/fs": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/fs/-/fs-2.16.4.tgz", + "integrity": "sha512-maCMOiVn7oJYZlqlfxgLne8n6tSktIT1k0AeyBp4UGWCXyeJUJ+nL7QYShFpKNLtMLeF0cEtgwRAknWzbcDS1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/feature-flags": "2.16.4", + "@parcel/rust": "2.16.4", + "@parcel/types-internal": "2.16.4", + "@parcel/utils": "2.16.4", + "@parcel/watcher": "^2.0.7", + "@parcel/workers": "2.16.4" + }, + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "peerDependencies": { + "@parcel/core": "^2.16.4" + } + }, + "node_modules/@parcel/graph": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/@parcel/graph/-/graph-3.6.4.tgz", + "integrity": "sha512-Cj9yV+/k88kFhE+D+gz0YuNRpvNOCVDskO9pFqkcQhGbsGq6kg2XpZ9V7HlYraih31xf8Vb589bZOwjKIiHixQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/feature-flags": "2.16.4", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/logger": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/logger/-/logger-2.16.4.tgz", + "integrity": "sha512-QR8QLlKo7xAy9JBpPDAh0RvluaixqPCeyY7Fvo2K7hrU3r85vBNNi06pHiPbWoDmB4x1+QoFwMaGnJOHR+/fMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.16.4", + "@parcel/events": "2.16.4" + }, + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/markdown-ansi": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/markdown-ansi/-/markdown-ansi-2.16.4.tgz", + "integrity": "sha512-0+oQApAVF3wMcQ6d1ZfZ0JsRzaMUYj9e4U+naj6YEsFsFGOPp+pQYKXBf1bobQeeB7cPKPT3SUHxFqced722Hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.2" + }, + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/namer-default": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/namer-default/-/namer-default-2.16.4.tgz", + "integrity": "sha512-CE+0lFg881sJq575EXxj2lKUn81tsS5itpNUUErHxit195m3PExyAhoXM6ed/SXxwi+uv+T5FS/jjDLBNuUFDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.16.4", + "@parcel/plugin": "2.16.4", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.16.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/node-resolver-core": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@parcel/node-resolver-core/-/node-resolver-core-3.7.4.tgz", + "integrity": "sha512-b3VDG+um6IWW5CTod6M9hQsTX5mdIelKmam7mzxzgqg4j5hnycgTWqPMc9UxhYoUY/Q/PHfWepccNcKtvP5JiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@mischnic/json-sourcemap": "^0.1.1", + "@parcel/diagnostic": "2.16.4", + "@parcel/fs": "2.16.4", + "@parcel/rust": "2.16.4", + "@parcel/utils": "2.16.4", + "nullthrows": "^1.1.1", + "semver": "^7.7.1" + }, + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/optimizer-css": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-css/-/optimizer-css-2.16.4.tgz", + "integrity": "sha512-aqdXCtmvpcXYgJFGk2DtXF34wuM2TD1fZorKMrJdKB9sSkWVRs1tq6RAXQrbi0ZPDH9wfE/9An3YdkTex7RHuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.16.4", + "@parcel/plugin": "2.16.4", + "@parcel/source-map": "^2.1.1", + "@parcel/utils": "2.16.4", + "browserslist": "^4.24.5", + "lightningcss": "^1.30.1", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.16.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/optimizer-html": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-html/-/optimizer-html-2.16.4.tgz", + "integrity": "sha512-vg/R2uuSni+NYYUUV8m+5bz8p5zBv8wc/nNleoBnGuCDwn7uaUwTZ8Gt9CjZO8jjG0xCLILoc/TW+e2FF3pfgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/plugin": "2.16.4", + "@parcel/rust": "2.16.4", + "@parcel/utils": "2.16.4" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.16.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/optimizer-image": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-image/-/optimizer-image-2.16.4.tgz", + "integrity": "sha512-2RV54WnvMYr18lxSx7Zlx/DXpJwMzOiPxDnoFyvaUoYutvgHO6chtcgFgh1Bvw/PoI95vYzlTkZ8QfUOk5A0JA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.16.4", + "@parcel/plugin": "2.16.4", + "@parcel/rust": "2.16.4", + "@parcel/utils": "2.16.4", + "@parcel/workers": "2.16.4" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.16.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "peerDependencies": { + "@parcel/core": "^2.16.4" + } + }, + "node_modules/@parcel/optimizer-svg": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-svg/-/optimizer-svg-2.16.4.tgz", + "integrity": "sha512-22+BqIffCrVErg8y2XwhasbTaFNn75OKXZ3KTDBIfOSAZKLUKs1iHfDXETzTRN7cVcS+Q36/6EHd7N/RA8i1fg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/plugin": "2.16.4", + "@parcel/rust": "2.16.4", + "@parcel/utils": "2.16.4" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.16.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/optimizer-swc": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-swc/-/optimizer-swc-2.16.4.tgz", + "integrity": "sha512-+URqwnB6u1gqaLbG1O1DDApH+UVj4WCbK9No1fdxLBxQ9a84jyli25o1kK1hYB9Nb/JMyYNnEBfvYUW6RphOxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.16.4", + "@parcel/plugin": "2.16.4", + "@parcel/source-map": "^2.1.1", + "@parcel/utils": "2.16.4", + "@swc/core": "^1.11.24", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.16.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/package-manager": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/package-manager/-/package-manager-2.16.4.tgz", + "integrity": "sha512-obWv9gZgdnkT3Kd+fBkKjhdNEY7zfOP5gVaox5i4nQstVCaVnDlMv5FwLEXwehL+WbwEcGyEGGxOHHkAFKk7Cg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.16.4", + "@parcel/fs": "2.16.4", + "@parcel/logger": "2.16.4", + "@parcel/node-resolver-core": "3.7.4", + "@parcel/types": "2.16.4", + "@parcel/utils": "2.16.4", + "@parcel/workers": "2.16.4", + "@swc/core": "^1.11.24", + "semver": "^7.7.1" + }, + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "peerDependencies": { + "@parcel/core": "^2.16.4" + } + }, + "node_modules/@parcel/packager-css": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/packager-css/-/packager-css-2.16.4.tgz", + "integrity": "sha512-rWRtfiX+VVIOZvq64jpeNUKkvWAbnokfHQsk/js1s5jD4ViNQgPcNLiRaiIANjymqL6+dQqWvGUSW2a5FAZYfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.16.4", + "@parcel/plugin": "2.16.4", + "@parcel/source-map": "^2.1.1", + "@parcel/utils": "2.16.4", + "lightningcss": "^1.30.1", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.16.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/packager-html": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/packager-html/-/packager-html-2.16.4.tgz", + "integrity": "sha512-AWo5f6SSqBsg2uWOsX0gPX8hCx2iE6GYLg2Z4/cDy2mPlwDICN8/bxItEztSZFmObi+ti26eetBKRDxAUivyIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/plugin": "2.16.4", + "@parcel/rust": "2.16.4", + "@parcel/types": "2.16.4", + "@parcel/utils": "2.16.4" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.16.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/packager-js": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/packager-js/-/packager-js-2.16.4.tgz", + "integrity": "sha512-L2o39f/fhta+hxto7w8OTUKdstY+te5BmHZREckbQm0KTBg93BG7jB0bfoxLSZF0d8uuAYIVXjzeHNqha+du1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.16.4", + "@parcel/plugin": "2.16.4", + "@parcel/rust": "2.16.4", + "@parcel/source-map": "^2.1.1", + "@parcel/types": "2.16.4", + "@parcel/utils": "2.16.4", + "globals": "^13.24.0", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.16.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/packager-raw": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/packager-raw/-/packager-raw-2.16.4.tgz", + "integrity": "sha512-A9j60G9OmbTkEeE4WRMXCiErEprHLs9NkUlC4HXCxmSrPMOVaMaMva2LdejE3A9kujZqYtYfuc8+a+jN+Nro4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/plugin": "2.16.4" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.16.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/packager-raw-url": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/packager-raw-url/-/packager-raw-url-2.16.4.tgz", + "integrity": "sha512-qrpsz/wTlPvYM5qnz3N+3pW0a9MRivrN7TiduoS1W1U/UBhsPoOYNG+S6F67KDCmq47mmBKTgEFN9tEazSV+Qw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/plugin": "2.16.4", + "@parcel/utils": "2.16.4" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.16.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/packager-svg": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/packager-svg/-/packager-svg-2.16.4.tgz", + "integrity": "sha512-LT9l7eInFrAZJ6w3mYzAUgDq3SIzYbbQyW46Dz26M9lJQbf6uCaATUTac3BEHegW0ikDuw4OOGHK41BVqeeusg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/plugin": "2.16.4", + "@parcel/rust": "2.16.4", + "@parcel/types": "2.16.4", + "@parcel/utils": "2.16.4" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.16.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/packager-wasm": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/packager-wasm/-/packager-wasm-2.16.4.tgz", + "integrity": "sha512-AY96Aqu/RpmaSZK2RGkIrZWjAperDw8DAlxLAiaP1D/RPVnikZtl5BmcUt/Wz3PrzG7/q9ZVqqKkWsLmhkjXZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/plugin": "2.16.4" + }, + "engines": { + "node": ">=16.0.0", + "parcel": "^2.16.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/plugin": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/plugin/-/plugin-2.16.4.tgz", + "integrity": "sha512-aN2VQoRGC1eB41ZCDbPR/Sp0yKOxe31oemzPx1nJzOuebK2Q6FxSrJ9Bjj9j/YCaLzDtPwelsuLOazzVpXJ6qg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/types": "2.16.4" + }, + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/profiler": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/profiler/-/profiler-2.16.4.tgz", + "integrity": "sha512-R3JhfcnoReTv2sVFHPR2xKZvs3d3IRrBl9sWmAftbIJFwT4rU70/W7IdwfaJVkD/6PzHq9mcgOh1WKL4KAxPdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.16.4", + "@parcel/events": "2.16.4", + "@parcel/types-internal": "2.16.4", + "chrome-trace-event": "^1.0.2" + }, + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/reporter-cli": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/reporter-cli/-/reporter-cli-2.16.4.tgz", + "integrity": "sha512-DQx9TwcTZrDv828+tcwEi//xyW7OHTGzGX1+UEVxPp0mSzuOmDn0zfER8qNIqGr1i4D/FXhb5UJQDhGHV8mOpQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/plugin": "2.16.4", + "@parcel/types": "2.16.4", + "@parcel/utils": "2.16.4", + "chalk": "^4.1.2", + "term-size": "^2.2.1" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.16.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/reporter-dev-server": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/reporter-dev-server/-/reporter-dev-server-2.16.4.tgz", + "integrity": "sha512-YWvay25htQDifpDRJ0+yFh6xUxKnbfeJxYkPYyuXdxpEUhq4T0UWW0PbPCN/wFX7StgeUTXq5Poeo/+eys9m3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/codeframe": "2.16.4", + "@parcel/plugin": "2.16.4", + "@parcel/source-map": "^2.1.1", + "@parcel/utils": "2.16.4" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.16.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/reporter-tracer": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/reporter-tracer/-/reporter-tracer-2.16.4.tgz", + "integrity": "sha512-JKnlXpPepak0/ZybmZn9JtyjJiDBWYrt7ZUlXQhQb0xzNcd/k+RqfwVkTKIwyFHsWtym0cwibkvsi2bWFzS7tw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/plugin": "2.16.4", + "@parcel/utils": "2.16.4", + "chrome-trace-event": "^1.0.3", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.16.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/resolver-default": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/resolver-default/-/resolver-default-2.16.4.tgz", + "integrity": "sha512-wJe9XQS0hn/t32pntQpJbls3ZL8mGVVhK9L7s7BTmZT9ufnvP2nif1psJz/nbgnP9LF6mLSk43OdMJKpoStsjQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/node-resolver-core": "3.7.4", + "@parcel/plugin": "2.16.4" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.16.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/runtime-browser-hmr": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.16.4.tgz", + "integrity": "sha512-asx7p3NjUSfibI3bC7+8+jUIGHWVk2Zuq9SjJGCGDt+auT9A4uSGljnsk1BWWPqqZ0WILubq4czSAqm0+wt4cw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/plugin": "2.16.4", + "@parcel/utils": "2.16.4" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.16.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/runtime-js": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/runtime-js/-/runtime-js-2.16.4.tgz", + "integrity": "sha512-gUKmsjg+PULQBu2QbX0QKll9tXSqHPO8NrfxHwWb2lz5xDKDos1oV0I7BoMWbHhUHkoToXZrm654oGViujtVUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.16.4", + "@parcel/plugin": "2.16.4", + "@parcel/utils": "2.16.4", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.16.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/runtime-rsc": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/runtime-rsc/-/runtime-rsc-2.16.4.tgz", + "integrity": "sha512-CHkotYE/cNiUjJmrc5FD9YhlFp1UF5wMNNJmoWaL40eBzsqcaV0sSn5V3bNapwewn3wrMYgdPgvOTHfaZaG73A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/plugin": "2.16.4", + "@parcel/rust": "2.16.4", + "@parcel/utils": "2.16.4", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.16.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/runtime-service-worker": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/runtime-service-worker/-/runtime-service-worker-2.16.4.tgz", + "integrity": "sha512-FT0Q58bf5Re+dq5cL2XHbxqHHFZco6qtRijeVpT3TSPMRPlniMArypSytTeZzVNL7h/hxjWsNu7fRuC0yLB5hA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/plugin": "2.16.4", + "@parcel/utils": "2.16.4", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.16.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/rust": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/rust/-/rust-2.16.4.tgz", + "integrity": "sha512-RBMKt9rCdv6jr4vXG6LmHtxzO5TuhQvXo1kSoSIF7fURRZ81D1jzBtLxwLmfxCPsofJNqWwdhy5vIvisX+TLlQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/rust-darwin-arm64": "2.16.4", + "@parcel/rust-darwin-x64": "2.16.4", + "@parcel/rust-linux-arm-gnueabihf": "2.16.4", + "@parcel/rust-linux-arm64-gnu": "2.16.4", + "@parcel/rust-linux-arm64-musl": "2.16.4", + "@parcel/rust-linux-x64-gnu": "2.16.4", + "@parcel/rust-linux-x64-musl": "2.16.4", + "@parcel/rust-win32-x64-msvc": "2.16.4" + }, + "peerDependencies": { + "napi-wasm": "^1.1.2" + }, + "peerDependenciesMeta": { + "napi-wasm": { + "optional": true + } + } + }, + "node_modules/@parcel/rust-darwin-arm64": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/rust-darwin-arm64/-/rust-darwin-arm64-2.16.4.tgz", + "integrity": "sha512-P3Se36H9EO1fOlwXqQNQ+RsVKTGn5ztRSUGbLcT8ba6oOMmU1w7J4R810GgsCbwCuF10TJNUMkuD3Q2Sz15Q3Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/rust-darwin-x64": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/rust-darwin-x64/-/rust-darwin-x64-2.16.4.tgz", + "integrity": "sha512-8aNKNyPIx3EthYpmVJevIdHmFsOApXAEYGi3HU69jTxLgSIfyEHDdGE9lEsMvhSrd/SSo4/euAtiV+pqK04wnA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/rust-linux-arm-gnueabihf": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/rust-linux-arm-gnueabihf/-/rust-linux-arm-gnueabihf-2.16.4.tgz", + "integrity": "sha512-QrvqiSHaWRLc0JBHgUHVvDthfWSkA6AFN+ikV1UGENv4j2r/QgvuwJiG0VHrsL6pH5dRqj0vvngHzEgguke9DA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/rust-linux-arm64-gnu": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/rust-linux-arm64-gnu/-/rust-linux-arm64-gnu-2.16.4.tgz", + "integrity": "sha512-f3gBWQHLHRUajNZi3SMmDQiEx54RoRbXtZYQNuBQy7+NolfFcgb1ik3QhkT7xovuTF/LBmaqP3UFy0PxvR/iwQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/rust-linux-arm64-musl": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/rust-linux-arm64-musl/-/rust-linux-arm64-musl-2.16.4.tgz", + "integrity": "sha512-cwml18RNKsBwHyZnrZg4jpecXkWjaY/mCArocWUxkFXjjB97L56QWQM9W86f2/Y3HcFcnIGJwx1SDDKJrV6OIA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/rust-linux-x64-gnu": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/rust-linux-x64-gnu/-/rust-linux-x64-gnu-2.16.4.tgz", + "integrity": "sha512-0xIjQaN8hiG0F9R8coPYidHslDIrbfOS/qFy5GJNbGA3S49h61wZRBMQqa7JFW4+2T8R0J9j0SKHhLXpbLXrIg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/rust-linux-x64-musl": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/rust-linux-x64-musl/-/rust-linux-x64-musl-2.16.4.tgz", + "integrity": "sha512-fYn21GIecHK9RoZPKwT9NOwxwl3Gy3RYPR6zvsUi0+hpFo19Ph9EzFXN3lT8Pi5KiwQMCU4rsLb5HoWOBM1FeA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/rust-win32-x64-msvc": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/rust-win32-x64-msvc/-/rust-win32-x64-msvc-2.16.4.tgz", + "integrity": "sha512-TcpWC3I1mJpfP2++018lgvM7UX0P8IrzNxceBTHUKEIDMwmAYrUKAQFiaU0j1Ldqk6yP8SPZD3cvphumsYpJOQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/source-map": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@parcel/source-map/-/source-map-2.1.1.tgz", + "integrity": "sha512-Ejx1P/mj+kMjQb8/y5XxDUn4reGdr+WyKYloBljpppUy8gs42T+BNoEOuRYqDVdgPc6NxduzIDoJS9pOFfV5Ew==", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-libc": "^1.0.3" + }, + "engines": { + "node": "^12.18.3 || >=14" + } + }, + "node_modules/@parcel/transformer-babel": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/transformer-babel/-/transformer-babel-2.16.4.tgz", + "integrity": "sha512-CMDUOQYX7+cmeyHxHSFnoPcwvXNL7rRFE+Q06uVFzsYYiVhbwGF/1J5Bx4cW3Froumqla4YTytTsEteJEybkdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.16.4", + "@parcel/plugin": "2.16.4", + "@parcel/source-map": "^2.1.1", + "@parcel/utils": "2.16.4", + "browserslist": "^4.24.5", + "json5": "^2.2.3", + "nullthrows": "^1.1.1", + "semver": "^7.7.1" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.16.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/transformer-css": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/transformer-css/-/transformer-css-2.16.4.tgz", + "integrity": "sha512-VG/+DbDci2HKe20GFRDs65ZQf5GUFfnmZAa1BhVl/MO+ijT3XC3eoVUy5cExRkq4VLcPY4ytL0g/1T2D6x7lBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.16.4", + "@parcel/plugin": "2.16.4", + "@parcel/source-map": "^2.1.1", + "@parcel/utils": "2.16.4", + "browserslist": "^4.24.5", + "lightningcss": "^1.30.1", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.16.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/transformer-elm": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/transformer-elm/-/transformer-elm-2.16.4.tgz", + "integrity": "sha512-ruLiVrIYiJaygp3Oqnk7ou7dsnNOVpJn5Z3xv+M4H9sE6A3+ZSDvrpJe5Cvs/yglY4795RQ6P3CIuri1f3sXRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.16.4", + "@parcel/plugin": "2.16.4", + "command-exists": "^1.2.9", + "cross-spawn": "^7.0.6", + "elm-hot": "^1.1.6", + "node-elm-compiler": "^5.0.6", + "nullthrows": "^1.1.1", + "terser": "^5.39.0" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.16.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "peerDependencies": { + "elm": "^0.19.1-5" + } + }, + "node_modules/@parcel/transformer-html": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/transformer-html/-/transformer-html-2.16.4.tgz", + "integrity": "sha512-w6JErYTeNS+KAzUAER18NHFIFFvxiLGd4Fht1UYcb/FDjJdLAMB/FljyEs0Rto/WAhZ2D0MuSL25HQh837R62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.16.4", + "@parcel/plugin": "2.16.4", + "@parcel/rust": "2.16.4" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.16.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/transformer-image": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/transformer-image/-/transformer-image-2.16.4.tgz", + "integrity": "sha512-ZzIn3KvvRqMfcect4Dy+57C9XoQXZhpVJKBdQWMp9wM1qJEgsVgGDcaSBYCs/UYSKMRMP6Wm20pKCt408RkQzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/plugin": "2.16.4", + "@parcel/utils": "2.16.4", + "@parcel/workers": "2.16.4", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.16.4" + }, + "peerDependencies": { + "@parcel/core": "^2.16.4" + } + }, + "node_modules/@parcel/transformer-js": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/transformer-js/-/transformer-js-2.16.4.tgz", + "integrity": "sha512-FD2fdO6URwAGBPidb3x1dDgLBt972mko0LelcSU05aC/pcKaV9mbCtINbPul1MlStzkxDelhuImcCYIyerheVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.16.4", + "@parcel/plugin": "2.16.4", + "@parcel/rust": "2.16.4", + "@parcel/source-map": "^2.1.1", + "@parcel/utils": "2.16.4", + "@parcel/workers": "2.16.4", + "@swc/helpers": "^0.5.0", + "browserslist": "^4.24.5", + "nullthrows": "^1.1.1", + "regenerator-runtime": "^0.14.1", + "semver": "^7.7.1" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.16.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "peerDependencies": { + "@parcel/core": "^2.16.4" + } + }, + "node_modules/@parcel/transformer-json": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/transformer-json/-/transformer-json-2.16.4.tgz", + "integrity": "sha512-pB3ZNqgokdkBCJ+4G0BrPYcIkyM9K1HVk0GvjzcLEFDKsoAp8BGEM68FzagFM/nVq9anYTshIaoh349GK0M/bg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/plugin": "2.16.4", + "json5": "^2.2.3" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.16.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/transformer-node": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/transformer-node/-/transformer-node-2.16.4.tgz", + "integrity": "sha512-7t43CPGfMJk1LqFokwxHSsRi+kKC2QvDXaMtqiMShmk50LCwn81WgzuFvNhMwf6lSiBihWupGwF3Fqksg+aisg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/plugin": "2.16.4" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.16.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/transformer-postcss": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/transformer-postcss/-/transformer-postcss-2.16.4.tgz", + "integrity": "sha512-jfmh9ho03H+qwz9S1b/a/oaOmgfMovtHKYDweIGMjKULKIee3AFRqo8RZIOuUMjDuqHWK8SqQmjery4syFV3Xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.16.4", + "@parcel/plugin": "2.16.4", + "@parcel/rust": "2.16.4", + "@parcel/utils": "2.16.4", + "clone": "^2.1.2", + "nullthrows": "^1.1.1", + "postcss-value-parser": "^4.2.0", + "semver": "^7.7.1" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.16.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/transformer-posthtml": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/transformer-posthtml/-/transformer-posthtml-2.16.4.tgz", + "integrity": "sha512-+GXsmGx1L25KQGQnwclgEuQe1t4QU+IoDkgN+Ikj+EnQCOWG4/ts2VpMBeqP5F18ZT4cCSRafj6317o/2lSGJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/plugin": "2.16.4", + "@parcel/utils": "2.16.4" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.16.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/transformer-raw": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/transformer-raw/-/transformer-raw-2.16.4.tgz", + "integrity": "sha512-7WDUPq+bW11G9jKxaQIVL+NPGolV99oq/GXhpjYip0SaGaLzRCW7gEk60cftuk0O7MsDaX5jcAJm3G/AX+LJKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/plugin": "2.16.4" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.16.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/transformer-react-refresh-wrap": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.16.4.tgz", + "integrity": "sha512-MiLNZrsGQJTANKKa4lzZyUbGj/en0Hms474mMdQkCBFg6GmjfmXwaMMgtTfPA3ZwSp2+3LeObCyca/f9B2gBZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/error-overlay": "2.16.4", + "@parcel/plugin": "2.16.4", + "@parcel/utils": "2.16.4", + "react-refresh": "^0.16.0" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.16.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/transformer-svg": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/transformer-svg/-/transformer-svg-2.16.4.tgz", + "integrity": "sha512-0dm4cQr/WpfQP6N0xjFtwdLTxcONDfoLgTOMk4eNUWydHipSgmLtvUk/nOc/FWkwztRScfAObtZXOiPOd3Oy9A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.16.4", + "@parcel/plugin": "2.16.4", + "@parcel/rust": "2.16.4" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.16.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/transformer-webmanifest": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/transformer-webmanifest/-/transformer-webmanifest-2.16.4.tgz", + "integrity": "sha512-VAgHURTHhgSI8LQwKIt/oGwAxwRLeWC07fKf+s9r3IX2gPHIKC+RNi1qhWFQEL2owVa5k3/J0B1L5k1/+Lmcjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@mischnic/json-sourcemap": "^0.1.1", + "@parcel/diagnostic": "2.16.4", + "@parcel/plugin": "2.16.4", + "@parcel/utils": "2.16.4" + }, + "engines": { + "parcel": "^2.16.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/types": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/types/-/types-2.16.4.tgz", + "integrity": "sha512-ctx4mBskZHXeDVHg4OjMwx18jfYH9BzI/7yqbDQVGvd5lyA+/oVVzYdpele2J2i2sSaJ87cA8nb57GDQ8kHAqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/types-internal": "2.16.4", + "@parcel/workers": "2.16.4" + } + }, + "node_modules/@parcel/types-internal": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/types-internal/-/types-internal-2.16.4.tgz", + "integrity": "sha512-PE6Qmt5cjzBxX+6MPLiF7r+twoC+V9Skt3zyuBQ+H1c0i9o07Bbz2NKX10nvlPukfmW6Fu/1RvTLkzBZR1bU6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.16.4", + "@parcel/feature-flags": "2.16.4", + "@parcel/source-map": "^2.1.1", + "utility-types": "^3.11.0" + } + }, + "node_modules/@parcel/utils": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/utils/-/utils-2.16.4.tgz", + "integrity": "sha512-lkmxQHcHyOWZLbV8t+h2CGZIkPiBurLm/TS5wNT7+tq0qt9KbVwL7FP2K93TbXhLMGTmpI79Bf3qKniPM167Mw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/codeframe": "2.16.4", + "@parcel/diagnostic": "2.16.4", + "@parcel/logger": "2.16.4", + "@parcel/markdown-ansi": "2.16.4", + "@parcel/rust": "2.16.4", + "@parcel/source-map": "^2.1.1", + "chalk": "^4.1.2", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.6.tgz", + "integrity": "sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "detect-libc": "^2.0.3", + "is-glob": "^4.0.3", + "node-addon-api": "^7.0.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "2.5.6", + "@parcel/watcher-darwin-arm64": "2.5.6", + "@parcel/watcher-darwin-x64": "2.5.6", + "@parcel/watcher-freebsd-x64": "2.5.6", + "@parcel/watcher-linux-arm-glibc": "2.5.6", + "@parcel/watcher-linux-arm-musl": "2.5.6", + "@parcel/watcher-linux-arm64-glibc": "2.5.6", + "@parcel/watcher-linux-arm64-musl": "2.5.6", + "@parcel/watcher-linux-x64-glibc": "2.5.6", + "@parcel/watcher-linux-x64-musl": "2.5.6", + "@parcel/watcher-win32-arm64": "2.5.6", + "@parcel/watcher-win32-ia32": "2.5.6", + "@parcel/watcher-win32-x64": "2.5.6" + } + }, + "node_modules/@parcel/watcher-android-arm64": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.6.tgz", + "integrity": "sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.6.tgz", + "integrity": "sha512-Z2ZdrnwyXvvvdtRHLmM4knydIdU9adO3D4n/0cVipF3rRiwP+3/sfzpAwA/qKFL6i1ModaabkU7IbpeMBgiVEA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-x64": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.6.tgz", + "integrity": "sha512-HgvOf3W9dhithcwOWX9uDZyn1lW9R+7tPZ4sug+NGrGIo4Rk1hAXLEbcH1TQSqxts0NYXXlOWqVpvS1SFS4fRg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-freebsd-x64": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.6.tgz", + "integrity": "sha512-vJVi8yd/qzJxEKHkeemh7w3YAn6RJCtYlE4HPMoVnCpIXEzSrxErBW5SJBgKLbXU3WdIpkjBTeUNtyBVn8TRng==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-glibc": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.6.tgz", + "integrity": "sha512-9JiYfB6h6BgV50CCfasfLf/uvOcJskMSwcdH1PHH9rvS1IrNy8zad6IUVPVUfmXr+u+Km9IxcfMLzgdOudz9EQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-musl": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.6.tgz", + "integrity": "sha512-Ve3gUCG57nuUUSyjBq/MAM0CzArtuIOxsBdQ+ftz6ho8n7s1i9E1Nmk/xmP323r2YL0SONs1EuwqBp2u1k5fxg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-glibc": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.6.tgz", + "integrity": "sha512-f2g/DT3NhGPdBmMWYoxixqYr3v/UXcmLOYy16Bx0TM20Tchduwr4EaCbmxh1321TABqPGDpS8D/ggOTaljijOA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-musl": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.6.tgz", + "integrity": "sha512-qb6naMDGlbCwdhLj6hgoVKJl2odL34z2sqkC7Z6kzir8b5W65WYDpLB6R06KabvZdgoHI/zxke4b3zR0wAbDTA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.6.tgz", + "integrity": "sha512-kbT5wvNQlx7NaGjzPFu8nVIW1rWqV780O7ZtkjuWaPUgpv2NMFpjYERVi0UYj1msZNyCzGlaCWEtzc+exjMGbQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.6.tgz", + "integrity": "sha512-1JRFeC+h7RdXwldHzTsmdtYR/Ku8SylLgTU/reMuqdVD7CtLwf0VR1FqeprZ0eHQkO0vqsbvFLXUmYm/uNKJBg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-arm64": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.6.tgz", + "integrity": "sha512-3ukyebjc6eGlw9yRt678DxVF7rjXatWiHvTXqphZLvo7aC5NdEgFufVwjFfY51ijYEWpXbqF5jtrK275z52D4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-ia32": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.6.tgz", + "integrity": "sha512-k35yLp1ZMwwee3Ez/pxBi5cf4AoBKYXj00CZ80jUz5h8prpiaQsiRPKQMxoLstNuqe2vR4RNPEAEcjEFzhEz/g==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-x64": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.6.tgz", + "integrity": "sha512-hbQlYcCq5dlAX9Qx+kFb0FHue6vbjlf0FrNzSKdYK2APUf7tGfGxQCk2ihEREmbR6ZMc0MVAD5RIX/41gpUzTw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher/node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/@parcel/workers": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/@parcel/workers/-/workers-2.16.4.tgz", + "integrity": "sha512-dkBEWqnHXDZnRbTZouNt4uEGIslJT+V0c8OH1MPOfjISp1ucD6/u9ET8k9d/PxS9h1hL53og0SpBuuSEPLDl6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.16.4", + "@parcel/logger": "2.16.4", + "@parcel/profiler": "2.16.4", + "@parcel/types-internal": "2.16.4", + "@parcel/utils": "2.16.4", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "peerDependencies": { + "@parcel/core": "^2.16.4" + } + }, + "node_modules/@swc/core": { + "version": "1.15.24", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.15.24.tgz", + "integrity": "sha512-5Hj8aNasue7yusUt8LGCUe/AjM7RMAce8ZoyDyiFwx7Al+GbYKL+yE7g4sJk8vEr1dKIkTRARkNIJENc4CjkBQ==", + "dev": true, + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@swc/counter": "^0.1.3", + "@swc/types": "^0.1.26" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/swc" + }, + "optionalDependencies": { + "@swc/core-darwin-arm64": "1.15.24", + "@swc/core-darwin-x64": "1.15.24", + "@swc/core-linux-arm-gnueabihf": "1.15.24", + "@swc/core-linux-arm64-gnu": "1.15.24", + "@swc/core-linux-arm64-musl": "1.15.24", + "@swc/core-linux-ppc64-gnu": "1.15.24", + "@swc/core-linux-s390x-gnu": "1.15.24", + "@swc/core-linux-x64-gnu": "1.15.24", + "@swc/core-linux-x64-musl": "1.15.24", + "@swc/core-win32-arm64-msvc": "1.15.24", + "@swc/core-win32-ia32-msvc": "1.15.24", + "@swc/core-win32-x64-msvc": "1.15.24" + }, + "peerDependencies": { + "@swc/helpers": ">=0.5.17" + }, + "peerDependenciesMeta": { + "@swc/helpers": { + "optional": true + } + } + }, + "node_modules/@swc/core-darwin-arm64": { + "version": "1.15.24", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.15.24.tgz", + "integrity": "sha512-uM5ZGfFXjtvtJ+fe448PVBEbn/CSxS3UAyLj3O9xOqKIWy3S6hPTXSPbszxkSsGDYKi+YFhzAsR4r/eXLxEQ0g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-darwin-x64": { + "version": "1.15.24", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.15.24.tgz", + "integrity": "sha512-fMIb/Zfn929pw25VMBhV7Ji2Dl+lCWtUPNdYJQYOke+00E5fcQ9ynxtP8+qhUo/HZc+mYQb1gJxwHM9vty+lXg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.15.24", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.15.24.tgz", + "integrity": "sha512-vOkjsyjjxnoYx3hMEWcGxQrMgnNrRm6WAegBXrN8foHtDAR+zpdhpGF5a4lj1bNPgXAvmysjui8cM1ov/Clkaw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.15.24", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.15.24.tgz", + "integrity": "sha512-h/oNu+upkXJ6Cicnq7YGVj9PkdfarLCdQa8l/FlHYvfv8CEiMaeeTnpLU7gSBH/rGxosM6Qkfa/J9mThGF9CLA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.15.24", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.15.24.tgz", + "integrity": "sha512-ZpF/pRe1guk6sKzQI9D1jAORtjTdNlyeXn9GDz8ophof/w2WhojRblvSDJaGe7rJjcPN8AaOkhwdRUh7q8oYIg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-ppc64-gnu": { + "version": "1.15.24", + "resolved": "https://registry.npmjs.org/@swc/core-linux-ppc64-gnu/-/core-linux-ppc64-gnu-1.15.24.tgz", + "integrity": "sha512-QZEsZfisHTSJlmyChgDFNmKPb3W6Lhbfo/O76HhIngfEdnQNmukS38/VSe1feho+xkV5A5hETyCbx3sALBZKAQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-s390x-gnu": { + "version": "1.15.24", + "resolved": "https://registry.npmjs.org/@swc/core-linux-s390x-gnu/-/core-linux-s390x-gnu-1.15.24.tgz", + "integrity": "sha512-DLdJKVsJgglqQrJBuoUYNmzm3leI7kUZhLbZGHv42onfKsGf6JDS3+bzCUQfte/XOqDjh/tmmn1DR/CF/tCJFw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.15.24", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.15.24.tgz", + "integrity": "sha512-IpLYfposPA/XLxYOKpRfeccl1p5dDa3+okZDHHTchBkXEaVCnq5MADPmIWwIYj1tudt7hORsEHccG5no6IUQRw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.15.24", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.15.24.tgz", + "integrity": "sha512-JHy3fMSc0t/EPWgo74+OK5TGr51aElnzqfUPaiRf2qJ/BfX5CUCfMiWVBuhI7qmVMBnk1jTRnL/xZnOSHDPLYg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.15.24", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.15.24.tgz", + "integrity": "sha512-Txj+qUH1z2bUd1P3JvwByfjKFti3cptlAxhWgmunBUUxy/IW3CXLZ6l6Gk4liANadKkU71nIU1X30Z5vpMT3BA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.15.24", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.15.24.tgz", + "integrity": "sha512-15D/nl3XwrhFpMv+MADFOiVwv3FvH9j8c6Rf8EXBT3Q5LoMh8YnDnSgPYqw1JzPnksvsBX6QPXLiPqmcR/Z4qQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-x64-msvc": { + "version": "1.15.24", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.15.24.tgz", + "integrity": "sha512-PR0PlTlPra2JbaDphrOAzm6s0v9rA0F17YzB+XbWD95B4g2cWcZY9LAeTa4xll70VLw9Jr7xBrlohqlQmelMFQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/@swc/helpers": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.21.tgz", + "integrity": "sha512-jI/VAmtdjB/RnI8GTnokyX7Ug8c+g+ffD6QRLa6XQewtnGyukKkKSk3wLTM3b5cjt1jNh9x0jfVlagdN2gDKQg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.8.0" + } + }, + "node_modules/@swc/types": { + "version": "0.1.26", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.26.tgz", + "integrity": "sha512-lyMwd7WGgG79RS7EERZV3T8wMdmPq3xwyg+1nmAM64kIhx5yl+juO2PYIHb7vTiPgPCj8LYjsNV2T5wiQHUEaw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@swc/counter": "^0.1.3" + } + }, + "node_modules/acorn": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", + "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/base-x": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.11.tgz", + "integrity": "sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/baseline-browser-mapping": { + "version": "2.10.18", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.18.tgz", + "integrity": "sha512-VSnGQAOLtP5mib/DPyg2/t+Tlv65NTBz83BJBJvmLVHHuKJVaDOBvJJykiT5TR++em5nfAySPccDZDa4oSrn8A==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.2.tgz", + "integrity": "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "baseline-browser-mapping": "^2.10.12", + "caniuse-lite": "^1.0.30001782", + "electron-to-chromium": "^1.5.328", + "node-releases": "^2.0.36", + "update-browserslist-db": "^1.2.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001787", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001787.tgz", + "integrity": "sha512-mNcrMN9KeI68u7muanUpEejSLghOKlVhRqS/Za2IeyGllJ9I9otGpR9g3nsw7n4W378TE/LyIteA0+/FOZm4Kg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/command-exists": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", + "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==", + "dev": true, + "license": "MIT" + }, + "node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/dotenv": { + "version": "16.6.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz", + "integrity": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dotenv-expand": { + "version": "11.0.7", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-11.0.7.tgz", + "integrity": "sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dotenv": "^16.4.5" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.335", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.335.tgz", + "integrity": "sha512-q9n5T4BR4Xwa2cwbrwcsDJtHD/enpQ5S1xF1IAtdqf5AAgqDFmR/aakqH3ChFdqd/QXJhS3rnnXFtexU7rax6Q==", + "dev": true, + "license": "ISC" + }, + "node_modules/elm": { + "version": "0.19.1-6", + "resolved": "https://registry.npmjs.org/elm/-/elm-0.19.1-6.tgz", + "integrity": "sha512-mKYyierHICPdMx/vhiIacdPmTPnh889gjHOZ75ZAoCxo3lZmSWbGP8HMw78wyctJH0HwvTmeKhlYSWboQNYPeQ==", + "dev": true, + "hasInstallScript": true, + "license": "BSD-3-Clause", + "bin": { + "elm": "bin/elm" + }, + "engines": { + "node": ">=7.0.0" + }, + "optionalDependencies": { + "@elm_binaries/darwin_arm64": "0.19.1-0", + "@elm_binaries/darwin_x64": "0.19.1-0", + "@elm_binaries/linux_x64": "0.19.1-0", + "@elm_binaries/win32_x64": "0.19.1-0" + } + }, + "node_modules/elm-hot": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/elm-hot/-/elm-hot-1.1.6.tgz", + "integrity": "sha512-zYZJlfs7Gt4BdjA+D+857K+XAWzwwySJmXCgFpHW1dIEfaHSZCIPYPf7/jinZBLfKRkOAlKzI32AA84DY50g7Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/elm-solve-deps-wasm": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/elm-solve-deps-wasm/-/elm-solve-deps-wasm-2.0.0.tgz", + "integrity": "sha512-11OV8FgB9qsth/F94q2SJjb1MoEgbworSyNM1L+YlxVoaxp7wtWPyA8cNcPEkSoIKG1B8Tqg68ED1P6dVamHSg==", + "dev": true, + "license": "MPL-2.0" + }, + "node_modules/elm-test": { + "version": "0.19.1-revision17", + "resolved": "https://registry.npmjs.org/elm-test/-/elm-test-0.19.1-revision17.tgz", + "integrity": "sha512-P9J8tXdLXmqgIMlSozfcb/KCORq4GuxfwBbzqFLMss8KlGmUKonOJwseRX6xVkdU5xgGVA/mz9rfMTNomIbwng==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "chalk": "^4.1.2", + "chokidar": "^3.5.3", + "commander": "^9.4.1", + "cross-spawn": "^7.0.6", + "elm-solve-deps-wasm": "^1.0.2 || ^2.0.0", + "graceful-fs": "^4.2.10", + "split": "^1.0.1", + "tinyglobby": "^0.2.10", + "which": "^2.0.2", + "xmlbuilder": "^15.1.1" + }, + "bin": { + "elm-test": "bin/elm-test" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-elm-dependencies": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/find-elm-dependencies/-/find-elm-dependencies-2.0.4.tgz", + "integrity": "sha512-x/4w4fVmlD2X4PD9oQ+yh9EyaQef6OtEULdMGBTuWx0Nkppvo2Z/bAiQioW2n+GdRYKypME2b9OmYTw5tw5qDg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "firstline": "^1.2.0", + "lodash": "^4.17.19" + }, + "bin": { + "find-elm-dependencies": "bin/cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/firstline": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/firstline/-/firstline-1.3.1.tgz", + "integrity": "sha512-ycwgqtoxujz1dm0kjkBFOPQMESxB9uKc/PlD951dQDIG+tBXRpYZC2UmJb0gDxopQ1ZX6oyRQN3goRczYu7Deg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.4.0" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-port": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-4.2.0.tgz", + "integrity": "sha512-/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/lightningcss": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", + "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.32.0", + "lightningcss-darwin-arm64": "1.32.0", + "lightningcss-darwin-x64": "1.32.0", + "lightningcss-freebsd-x64": "1.32.0", + "lightningcss-linux-arm-gnueabihf": "1.32.0", + "lightningcss-linux-arm64-gnu": "1.32.0", + "lightningcss-linux-arm64-musl": "1.32.0", + "lightningcss-linux-x64-gnu": "1.32.0", + "lightningcss-linux-x64-musl": "1.32.0", + "lightningcss-win32-arm64-msvc": "1.32.0", + "lightningcss-win32-x64-msvc": "1.32.0" + } + }, + "node_modules/lightningcss-android-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", + "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", + "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", + "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", + "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", + "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", + "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", + "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", + "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", + "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", + "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", + "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss/node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/lmdb": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-2.8.5.tgz", + "integrity": "sha512-9bMdFfc80S+vSldBmG3HOuLVHnxRdNTlpzR6QDnzqCQtCzGUEAGTzBKYMeIM+I/sU4oZfgbcbS7X7F65/z/oxQ==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "msgpackr": "^1.9.5", + "node-addon-api": "^6.1.0", + "node-gyp-build-optional-packages": "5.1.1", + "ordered-binary": "^1.4.1", + "weak-lru-cache": "^1.2.2" + }, + "bin": { + "download-lmdb-prebuilds": "bin/download-prebuilds.js" + }, + "optionalDependencies": { + "@lmdb/lmdb-darwin-arm64": "2.8.5", + "@lmdb/lmdb-darwin-x64": "2.8.5", + "@lmdb/lmdb-linux-arm": "2.8.5", + "@lmdb/lmdb-linux-arm64": "2.8.5", + "@lmdb/lmdb-linux-x64": "2.8.5", + "@lmdb/lmdb-win32-x64": "2.8.5" + } + }, + "node_modules/lmdb/node_modules/node-addon-api": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", + "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/msgpackr": { + "version": "1.11.9", + "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.11.9.tgz", + "integrity": "sha512-FkoAAyyA6HM8wL882EcEyFZ9s7hVADSwG9xrVx3dxxNQAtgADTrJoEWivID82Iv1zWDsv/OtbrrcZAzGzOMdNw==", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "msgpackr-extract": "^3.0.2" + } + }, + "node_modules/msgpackr-extract": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/msgpackr-extract/-/msgpackr-extract-3.0.3.tgz", + "integrity": "sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "node-gyp-build-optional-packages": "5.2.2" + }, + "bin": { + "download-msgpackr-prebuilds": "bin/download-prebuilds.js" + }, + "optionalDependencies": { + "@msgpackr-extract/msgpackr-extract-darwin-arm64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-darwin-x64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-linux-arm": "3.0.3", + "@msgpackr-extract/msgpackr-extract-linux-arm64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-linux-x64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-win32-x64": "3.0.3" + } + }, + "node_modules/msgpackr-extract/node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/msgpackr-extract/node_modules/node-gyp-build-optional-packages": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.2.2.tgz", + "integrity": "sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "detect-libc": "^2.0.1" + }, + "bin": { + "node-gyp-build-optional-packages": "bin.js", + "node-gyp-build-optional-packages-optional": "optional.js", + "node-gyp-build-optional-packages-test": "build-test.js" + } + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-addon-api": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-elm-compiler": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/node-elm-compiler/-/node-elm-compiler-5.0.6.tgz", + "integrity": "sha512-DWTRQR8b54rvschcZRREdsz7K84lnS8A6YJu8du3QLQ8f204SJbyTaA6NzYYbfUG97OTRKRv/0KZl82cTfpLhA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "cross-spawn": "6.0.5", + "find-elm-dependencies": "^2.0.4", + "lodash": "^4.17.19", + "temp": "^0.9.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/node-elm-compiler/node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/node-elm-compiler/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/node-elm-compiler/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/node-elm-compiler/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/node-elm-compiler/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/node-elm-compiler/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/node-gyp-build-optional-packages": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.1.1.tgz", + "integrity": "sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-libc": "^2.0.1" + }, + "bin": { + "node-gyp-build-optional-packages": "bin.js", + "node-gyp-build-optional-packages-optional": "optional.js", + "node-gyp-build-optional-packages-test": "build-test.js" + } + }, + "node_modules/node-gyp-build-optional-packages/node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/node-releases": { + "version": "2.0.37", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.37.tgz", + "integrity": "sha512-1h5gKZCF+pO/o3Iqt5Jp7wc9rH3eJJ0+nh/CIoiRwjRxde/hAHyLPXYN4V3CqKAbiZPSeJFSWHmJsbkicta0Eg==", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nullthrows": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", + "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==", + "dev": true, + "license": "MIT" + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/ordered-binary": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.6.1.tgz", + "integrity": "sha512-QkCdPooczexPLiXIrbVOPYkR3VO3T6v2OyKRkR1Xbhpy7/LAVXwahnRCgRp78Oe/Ehf0C/HATAxfSr6eA1oX+w==", + "dev": true, + "license": "MIT" + }, + "node_modules/parcel": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/parcel/-/parcel-2.16.4.tgz", + "integrity": "sha512-RQlrqs4ujYNJpTQi+dITqPKNhRWEqpjPd1YBcGp50Wy3FcJHpwu0/iRm7XWz2dKU/Bwp2qCcVYPIeEDYi2uOUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/config-default": "2.16.4", + "@parcel/core": "2.16.4", + "@parcel/diagnostic": "2.16.4", + "@parcel/events": "2.16.4", + "@parcel/feature-flags": "2.16.4", + "@parcel/fs": "2.16.4", + "@parcel/logger": "2.16.4", + "@parcel/package-manager": "2.16.4", + "@parcel/reporter-cli": "2.16.4", + "@parcel/reporter-dev-server": "2.16.4", + "@parcel/reporter-tracer": "2.16.4", + "@parcel/utils": "2.16.4", + "chalk": "^4.1.2", + "commander": "^12.1.0", + "get-port": "^4.2.0" + }, + "bin": { + "parcel": "lib/bin.js" + }, + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/parcel/node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/react-refresh": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.16.0.tgz", + "integrity": "sha512-FPvF2XxTSikpJxcr+bHut2H4gJ17+18Uy20D5/F+SKzFap62R3cM5wH6b8WN3LyGSYeQilLEcJcR1fjBSI2S1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/readdirp/node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "dev": true, + "license": "MIT" + }, + "node_modules/rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/split": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "through": "2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/temp": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/temp/-/temp-0.9.4.tgz", + "integrity": "sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mkdirp": "^0.5.1", + "rimraf": "~2.6.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/term-size": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", + "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser": { + "version": "5.46.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.46.1.tgz", + "integrity": "sha512-vzCjQO/rgUuK9sf8VJZvjqiqiHFaZLnOiimmUuOKODxWL8mm/xua7viT7aqX7dgPY60otQjUotzFMmCB4VdmqQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.15.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyglobby": { + "version": "0.2.16", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz", + "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/utility-types": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.11.0.tgz", + "integrity": "sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/weak-lru-cache": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/weak-lru-cache/-/weak-lru-cache-1.2.2.tgz", + "integrity": "sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw==", + "dev": true, + "license": "MIT" + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/xmlbuilder": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", + "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..e712c21 --- /dev/null +++ b/package.json @@ -0,0 +1,18 @@ +{ + "name": "luna", + "version": "1.0.0", + "private": true, + "scripts": { + "start": "parcel src/index.html --host 0.0.0.0", + "build": "parcel build src/index.html --no-source-maps --public-url ./", + "test": "elm-test" + }, + "devDependencies": { + "@parcel/packager-raw-url": "^2.16.4", + "@parcel/transformer-elm": "^2.16.4", + "@parcel/transformer-webmanifest": "^2.16.4", + "elm": "^0.19.1-6", + "elm-test": "0.19.1-revision17", + "parcel": "^2.16.4" + } +} diff --git a/public/favicon.ico b/public/favicon.ico deleted file mode 100644 index 629fc730f0a75255e0d470619762b8ddc13f1633..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1416 zcmZQzU!BE7?z#zuJz|a}s=g!L|#RX*YdV0770coHLh6WBcAbHp>@iYSi ztEH!lV@SoEw|A|xwW1}CeRQ|&nyzJ)Aj!egF*PA^Vf=wZm#%pwCF_eFRMtFl&uxR3 zv=bM%ePb)*L9dpTL0oZN3zWO6x^nn$Dqf$tbyLs#-`eK8p2hy?-~Q%|g`U3t_k@|e98hG2OfVs@UQ@g{?yO@Th|XnU#ohLCN+Mn=sB3s5VwAL!KZY-z~vn~ zckTN1W%7X(qk~_+ZtXa%In{5uVE=JJuGR-7QT0N1-5e-k&>5?bchfU3b@Ad0fEoUPG+=LTT(* z2?HMHUN`4kzy8=Bkk*=dD$wQ!!-CgVT2s5We6?%{&)O>0ba25d!+%0NY=Ntkq&G4(!+`K?V&b#+jT`*2erw8woST9 z&(x(I?B<7m;+^kdH=qA!&An?mtJm}a{u}2CuO@Q`YqSJJ3WTsV@1qYj-ZIU;yW3f7EX92xMagF z{UAmaAU@9S|B#NmwpjN{IY%w+-^!v67BXSBO(9|5+_f4U6c$vm ztX%V^KZHT9-yLXH;+C1 z4gPDcXJ1wJNKLI@!W5w+w#t3NsZ;+vSPkU*L;Dq`PW?NPE5Sfw1)PXte**QUZ;VpBDXmaZmV6n(;&XpX@RRq*q;ib+N|EfXDeo_P^|P6*m9YZ@F5(vAvz$#@6=X zqeo6BC0%_kANl*&_T9U8OXS+ui+^BUUUO97VK~3NYdd@MddVXUA3_h`;I6sr@NMvCXO%HZkh=d#Wzp$P!=4U1<0 diff --git a/public/manifest.json b/public/manifest.json deleted file mode 100644 index 777bc81..0000000 --- a/public/manifest.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "short_name": "Luna", - "name": "Luna", - "icons": [ - { - "src": "favicon.ico", - "sizes": "128x128", - "type": "image/png" - } - ], - "start_url": "./index.html", - "display": "standalone", - "theme_color": "#f7f7f7", - "background_color": "#666666" -} diff --git a/docs/favicon.ico b/src/favicon.ico similarity index 100% rename from docs/favicon.ico rename to src/favicon.ico diff --git a/public/index.html b/src/index.html similarity index 56% rename from public/index.html rename to src/index.html index 39a8f2f..e8d00cb 100644 --- a/public/index.html +++ b/src/index.html @@ -5,12 +5,8 @@ - - - + + Luna @@ -18,5 +14,6 @@ You need to enable JavaScript to run Luna.
+ diff --git a/src/index.js b/src/index.js index 1942e64..9e227a0 100644 --- a/src/index.js +++ b/src/index.js @@ -1,9 +1,6 @@ import './main.css'; import { Elm } from './Main.elm'; -import registerServiceWorker from './registerServiceWorker'; Elm.Main.init({ node: document.getElementById('root') }); - -registerServiceWorker(); diff --git a/docs/manifest.json b/src/manifest.json similarity index 100% rename from docs/manifest.json rename to src/manifest.json diff --git a/src/registerServiceWorker.js b/src/registerServiceWorker.js deleted file mode 100644 index 4a3ccf0..0000000 --- a/src/registerServiceWorker.js +++ /dev/null @@ -1,108 +0,0 @@ -// In production, we register a service worker to serve assets from local cache. - -// This lets the app load faster on subsequent visits in production, and gives -// it offline capabilities. However, it also means that developers (and users) -// will only see deployed updates on the "N+1" visit to a page, since previously -// cached resources are updated in the background. - -// To learn more about the benefits of this model, read https://goo.gl/KwvDNy. -// This link also includes instructions on opting out of this behavior. - -const isLocalhost = Boolean( - window.location.hostname === 'localhost' || - // [::1] is the IPv6 localhost address. - window.location.hostname === '[::1]' || - // 127.0.0.1/8 is considered localhost for IPv4. - window.location.hostname.match( - /^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/ - ) -); - -export default function register() { - if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) { - // The URL constructor is available in all browsers that support SW. - const publicUrl = new URL(process.env.PUBLIC_URL, window.location); - if (publicUrl.origin !== window.location.origin) { - // Our service worker won't work if PUBLIC_URL is on a different origin - // from what our page is served on. This might happen if a CDN is used to - // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374 - return; - } - - window.addEventListener('load', () => { - const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`; - - if (!isLocalhost) { - // Is not local host. Just register service worker - registerValidSW(swUrl); - } else { - // This is running on localhost. Lets check if a service worker still exists or not. - checkValidServiceWorker(swUrl); - } - }); - } -} - -function registerValidSW(swUrl) { - navigator.serviceWorker - .register(swUrl) - .then(registration => { - registration.onupdatefound = () => { - const installingWorker = registration.installing; - installingWorker.onstatechange = () => { - if (installingWorker.state === 'installed') { - if (navigator.serviceWorker.controller) { - // At this point, the old content will have been purged and - // the fresh content will have been added to the cache. - // It's the perfect time to display a "New content is - // available; please refresh." message in your web app. - console.log('New content is available; please refresh.'); - } else { - // At this point, everything has been precached. - // It's the perfect time to display a - // "Content is cached for offline use." message. - console.log('Content is cached for offline use.'); - } - } - }; - }; - }) - .catch(error => { - console.error('Error during service worker registration:', error); - }); -} - -function checkValidServiceWorker(swUrl) { - // Check if the service worker can be found. If it can't reload the page. - fetch(swUrl) - .then(response => { - // Ensure service worker exists, and that we really are getting a JS file. - if ( - response.status === 404 || - response.headers.get('content-type').indexOf('javascript') === -1 - ) { - // No service worker found. Probably a different app. Reload the page. - navigator.serviceWorker.ready.then(registration => { - registration.unregister().then(() => { - window.location.reload(); - }); - }); - } else { - // Service worker found. Proceed as normal. - registerValidSW(swUrl); - } - }) - .catch(() => { - console.log( - 'No internet connection found. App is running in offline mode.' - ); - }); -} - -export function unregister() { - if ('serviceWorker' in navigator) { - navigator.serviceWorker.ready.then(registration => { - registration.unregister(); - }); - } -} From 664661b46babbe2adfa4523dabba51c982df8d8b Mon Sep 17 00:00:00 2001 From: adamnfish Date: Mon, 13 Apr 2026 22:01:19 +0100 Subject: [PATCH 2/3] Add .tool-versions and use it in CI/CD workflows Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/ci.yml | 2 +- .github/workflows/deploy.yml | 2 +- .tool-versions | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 .tool-versions diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0737288..b8b2642 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,7 +18,7 @@ jobs: - name: Setup Node uses: actions/setup-node@v6 with: - node-version: lts/* + node-version-file: .tool-versions cache: npm - name: Install dependencies diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index fdb5fdc..1737483 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -26,7 +26,7 @@ jobs: - name: Setup Node uses: actions/setup-node@v6 with: - node-version: lts/* + node-version-file: .tool-versions cache: npm - name: Install dependencies diff --git a/.tool-versions b/.tool-versions new file mode 100644 index 0000000..695dfec --- /dev/null +++ b/.tool-versions @@ -0,0 +1 @@ +nodejs 24 From b1eec302653b015ba76e2d6e102acdf57e5c5a98 Mon Sep 17 00:00:00 2001 From: adamnfish Date: Mon, 13 Apr 2026 22:04:46 +0100 Subject: [PATCH 3/3] Add explicit .parcelrc to configure Parcel transformers Co-Authored-By: Claude Sonnet 4.6 --- .parcelrc | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .parcelrc diff --git a/.parcelrc b/.parcelrc new file mode 100644 index 0000000..5b5d25a --- /dev/null +++ b/.parcelrc @@ -0,0 +1,6 @@ +{ + "extends": ["@parcel/config-default"], + "transformers": { + "*.elm": ["@parcel/transformer-elm"] + } +}