gadidae 0.1.4 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +35 -0
  2. package/dist/index.js +462 -30
  3. package/package.json +1 -1
package/README.md ADDED
@@ -0,0 +1,35 @@
1
+ # Cod
2
+
3
+ Cod creates CodeHS-container computers.
4
+
5
+ ## How to use Cod
6
+
7
+ 1. Go to https://codehs.com/explore/sandbox
8
+ 2. Replace the code with
9
+ ```js
10
+ await import("https://esm.sh/gadidae")
11
+ ```
12
+ 3. Press Run
13
+ 4. Press Cod
14
+
15
+ ## Apps
16
+
17
+ - Firefox is automatically installed, set as default, and launched.
18
+ - Prism Launcher is automatically installed. Use a valid Microsoft account, and once you're playing, ctrl+click to enable relative mouse.
19
+ - opencode is automatically installed. Launch with the UI or with `opencode web` to avoid problems with Cod's terminal.
20
+ - A terminal is always available. Use the Tasks tab to view logs for various Cod processes. Make a new tab to use bash. Long lines may behave unexpectedly.
21
+
22
+ > [!WARNING]
23
+ > While we install the latest versions of:
24
+ > - `firefox`
25
+ > - `prismlauncher`
26
+ > - `opencode`
27
+ >
28
+ > These tools you may want to use inside the terminal use CodeHS's default versions:
29
+ > - `node` (12.22.9)
30
+ > - `npm` (8.5.1)
31
+ > - `python` (3.8.20)
32
+ > - `~/.pyvenv311/bin/python` (3.11.14)
33
+ > - `pip` (21.3.1)
34
+ > - `dotnet` (6.0.428)
35
+ > - `java` (1.8.0_472)
package/dist/index.js CHANGED
@@ -725,41 +725,127 @@ body {
725
725
  .cod-ansi-bright-white {
726
726
  color: light-dark(#1b1b1b, #f3f3f3);
727
727
  }
728
- `;const a=globalThis.process?.env?.NODE_ENV;var o=a&&!a.toLowerCase().startsWith(`prod`),s=Array.isArray,c=Array.prototype.indexOf,l=Array.prototype.includes,u=Array.from,d=Object.defineProperty,f=Object.getOwnPropertyDescriptor,p=Object.getOwnPropertyDescriptors,m=Object.prototype,h=Array.prototype,g=Object.getPrototypeOf,_=Object.isExtensible;const v=()=>{};function y(e){for(var t=0;t<e.length;t++)e[t]()}function b(){var e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}const x=1024,S=2048,C=4096,w=8192,ee=32768,te=1<<25,ne=65536,re=1<<25,ie=65536,ae=1<<21,oe=1<<23,se=Symbol(`$state`),ce=Symbol(``),le=Symbol(`proxy path`),ue=Symbol(`attributes`),de=Symbol(`class`),fe=Symbol(`style`),pe=Symbol(`text`),me=Symbol(`hmr anchor`),he=new class extends Error{name=`StaleReactionError`;message="The reaction that called `getAbortSignal()` was re-run or destroyed"},ge=!!globalThis.document?.contentType&&globalThis.document.contentType.includes(`xml`);function _e(){if(o){let e=Error("async_derived_orphan\nCannot create a `$derived(...)` with an `await` expression outside of an effect tree\nhttps://svelte.dev/e/async_derived_orphan");throw e.name=`Svelte error`,e}else throw Error(`https://svelte.dev/e/async_derived_orphan`)}function ve(){if(o){let e=Error(`derived_references_self
728
+ `;const a=globalThis.process?.env?.NODE_ENV;var o=a&&!a.toLowerCase().startsWith(`prod`),s=Array.isArray,c=Array.prototype.indexOf,l=Array.prototype.includes,u=Array.from,d=Object.defineProperty,f=Object.getOwnPropertyDescriptor,p=Object.getOwnPropertyDescriptors,m=Object.prototype,h=Array.prototype,g=Object.getPrototypeOf,_=Object.isExtensible;const v=()=>{};function y(e){for(var t=0;t<e.length;t++)e[t]()}function b(){var e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}const x=1024,S=2048,C=4096,w=8192,ee=32768,te=1<<25,ne=65536,T=1<<25,re=65536,ie=1<<21,ae=1<<23,oe=Symbol(`$state`),se=Symbol(``),ce=Symbol(`proxy path`),le=Symbol(`attributes`),ue=Symbol(`class`),de=Symbol(`style`),fe=Symbol(`text`),pe=Symbol(`hmr anchor`),me=new class extends Error{name=`StaleReactionError`;message="The reaction that called `getAbortSignal()` was re-run or destroyed"},he=!!globalThis.document?.contentType&&globalThis.document.contentType.includes(`xml`);function ge(){if(o){let e=Error("async_derived_orphan\nCannot create a `$derived(...)` with an `await` expression outside of an effect tree\nhttps://svelte.dev/e/async_derived_orphan");throw e.name=`Svelte error`,e}else throw Error(`https://svelte.dev/e/async_derived_orphan`)}function _e(){if(o){let e=Error(`derived_references_self
729
729
  A derived value cannot reference itself recursively
730
- https://svelte.dev/e/derived_references_self`);throw e.name=`Svelte error`,e}else throw Error(`https://svelte.dev/e/derived_references_self`)}function ye(e,t,n){if(o){let r=Error(`each_key_duplicate\n${n?`Keyed each block has duplicate key \`${n}\` at indexes ${e} and ${t}`:`Keyed each block has duplicate key at indexes ${e} and ${t}`}\nhttps://svelte.dev/e/each_key_duplicate`);throw r.name=`Svelte error`,r}else throw Error(`https://svelte.dev/e/each_key_duplicate`)}function be(e,t,n){if(o){let r=Error(`each_key_volatile\nKeyed each block has key that is not idempotent — the key for item at index ${e} was \`${t}\` but is now \`${n}\`. Keys must be the same each time for a given item\nhttps://svelte.dev/e/each_key_volatile`);throw r.name=`Svelte error`,r}else throw Error(`https://svelte.dev/e/each_key_volatile`)}function xe(e){if(o){let t=Error(`effect_in_teardown\n\`${e}\` cannot be used inside an effect cleanup function\nhttps://svelte.dev/e/effect_in_teardown`);throw t.name=`Svelte error`,t}else throw Error(`https://svelte.dev/e/effect_in_teardown`)}function Se(){if(o){let e=Error(`effect_in_unowned_derived
730
+ https://svelte.dev/e/derived_references_self`);throw e.name=`Svelte error`,e}else throw Error(`https://svelte.dev/e/derived_references_self`)}function ve(e,t,n){if(o){let r=Error(`each_key_duplicate\n${n?`Keyed each block has duplicate key \`${n}\` at indexes ${e} and ${t}`:`Keyed each block has duplicate key at indexes ${e} and ${t}`}\nhttps://svelte.dev/e/each_key_duplicate`);throw r.name=`Svelte error`,r}else throw Error(`https://svelte.dev/e/each_key_duplicate`)}function ye(e,t,n){if(o){let r=Error(`each_key_volatile\nKeyed each block has key that is not idempotent — the key for item at index ${e} was \`${t}\` but is now \`${n}\`. Keys must be the same each time for a given item\nhttps://svelte.dev/e/each_key_volatile`);throw r.name=`Svelte error`,r}else throw Error(`https://svelte.dev/e/each_key_volatile`)}function be(e){if(o){let t=Error(`effect_in_teardown\n\`${e}\` cannot be used inside an effect cleanup function\nhttps://svelte.dev/e/effect_in_teardown`);throw t.name=`Svelte error`,t}else throw Error(`https://svelte.dev/e/effect_in_teardown`)}function xe(){if(o){let e=Error(`effect_in_unowned_derived
731
731
  Effect cannot be created inside a \`$derived\` value that was not itself created inside an effect
732
- https://svelte.dev/e/effect_in_unowned_derived`);throw e.name=`Svelte error`,e}else throw Error(`https://svelte.dev/e/effect_in_unowned_derived`)}function Ce(e){if(o){let t=Error(`effect_orphan\n\`${e}\` can only be used inside an effect (e.g. during component initialisation)\nhttps://svelte.dev/e/effect_orphan`);throw t.name=`Svelte error`,t}else throw Error(`https://svelte.dev/e/effect_orphan`)}function we(){if(o){let e=Error(`effect_update_depth_exceeded
732
+ https://svelte.dev/e/effect_in_unowned_derived`);throw e.name=`Svelte error`,e}else throw Error(`https://svelte.dev/e/effect_in_unowned_derived`)}function Se(e){if(o){let t=Error(`effect_orphan\n\`${e}\` can only be used inside an effect (e.g. during component initialisation)\nhttps://svelte.dev/e/effect_orphan`);throw t.name=`Svelte error`,t}else throw Error(`https://svelte.dev/e/effect_orphan`)}function Ce(){if(o){let e=Error(`effect_update_depth_exceeded
733
733
  Maximum update depth exceeded. This typically indicates that an effect reads and writes the same piece of state
734
- https://svelte.dev/e/effect_update_depth_exceeded`);throw e.name=`Svelte error`,e}else throw Error(`https://svelte.dev/e/effect_update_depth_exceeded`)}function Te(e){if(o){let t=Error(`rune_outside_svelte\nThe \`${e}\` rune is only available inside \`.svelte\` and \`.svelte.js/ts\` files\nhttps://svelte.dev/e/rune_outside_svelte`);throw t.name=`Svelte error`,t}else throw Error(`https://svelte.dev/e/rune_outside_svelte`)}function Ee(){if(o){let e=Error("state_descriptors_fixed\nProperty descriptors defined on `$state` objects must contain `value` and always be `enumerable`, `configurable` and `writable`.\nhttps://svelte.dev/e/state_descriptors_fixed");throw e.name=`Svelte error`,e}else throw Error(`https://svelte.dev/e/state_descriptors_fixed`)}function De(){if(o){let e=Error(`state_prototype_fixed
734
+ https://svelte.dev/e/effect_update_depth_exceeded`);throw e.name=`Svelte error`,e}else throw Error(`https://svelte.dev/e/effect_update_depth_exceeded`)}function we(e){if(o){let t=Error(`rune_outside_svelte\nThe \`${e}\` rune is only available inside \`.svelte\` and \`.svelte.js/ts\` files\nhttps://svelte.dev/e/rune_outside_svelte`);throw t.name=`Svelte error`,t}else throw Error(`https://svelte.dev/e/rune_outside_svelte`)}function Te(){if(o){let e=Error("state_descriptors_fixed\nProperty descriptors defined on `$state` objects must contain `value` and always be `enumerable`, `configurable` and `writable`.\nhttps://svelte.dev/e/state_descriptors_fixed");throw e.name=`Svelte error`,e}else throw Error(`https://svelte.dev/e/state_descriptors_fixed`)}function Ee(){if(o){let e=Error(`state_prototype_fixed
735
735
  Cannot set prototype of \`$state\` object
736
- https://svelte.dev/e/state_prototype_fixed`);throw e.name=`Svelte error`,e}else throw Error(`https://svelte.dev/e/state_prototype_fixed`)}function Oe(){if(o){let e=Error("state_unsafe_mutation\nUpdating state inside `$derived(...)`, `$inspect(...)` or a template expression is forbidden. If the value should not be reactive, declare it without `$state`\nhttps://svelte.dev/e/state_unsafe_mutation");throw e.name=`Svelte error`,e}else throw Error(`https://svelte.dev/e/state_unsafe_mutation`)}function ke(){if(o){let e=Error("svelte_boundary_reset_onerror\nA `<svelte:boundary>` `reset` function cannot be called while an error is still being handled\nhttps://svelte.dev/e/svelte_boundary_reset_onerror");throw e.name=`Svelte error`,e}else throw Error(`https://svelte.dev/e/svelte_boundary_reset_onerror`)}const Ae={},T=Symbol(`uninitialized`),je=Symbol(`filename`);var Me=`font-weight: bold`,Ne=`font-weight: normal`;function Pe(e){o?console.warn(`%c[svelte] await_reactivity_loss\n%cDetected reactivity loss when reading \`${e}\`. This happens when state is read in an async function after an earlier \`await\`\nhttps://svelte.dev/e/await_reactivity_loss`,Me,Ne):console.warn(`https://svelte.dev/e/await_reactivity_loss`)}function Fe(e,t){o?console.warn(`%c[svelte] await_waterfall\n%cAn async derived, \`${e}\` (${t}) was not read immediately after it resolved. This often indicates an unnecessary waterfall, which can slow down your app\nhttps://svelte.dev/e/await_waterfall`,Me,Ne):console.warn(`https://svelte.dev/e/await_waterfall`)}function Ie(){o?console.warn(`%c[svelte] derived_inert
736
+ https://svelte.dev/e/state_prototype_fixed`);throw e.name=`Svelte error`,e}else throw Error(`https://svelte.dev/e/state_prototype_fixed`)}function De(){if(o){let e=Error("state_unsafe_mutation\nUpdating state inside `$derived(...)`, `$inspect(...)` or a template expression is forbidden. If the value should not be reactive, declare it without `$state`\nhttps://svelte.dev/e/state_unsafe_mutation");throw e.name=`Svelte error`,e}else throw Error(`https://svelte.dev/e/state_unsafe_mutation`)}function Oe(){if(o){let e=Error("svelte_boundary_reset_onerror\nA `<svelte:boundary>` `reset` function cannot be called while an error is still being handled\nhttps://svelte.dev/e/svelte_boundary_reset_onerror");throw e.name=`Svelte error`,e}else throw Error(`https://svelte.dev/e/svelte_boundary_reset_onerror`)}const ke={},E=Symbol(`uninitialized`),Ae=Symbol(`filename`);var je=`font-weight: bold`,Me=`font-weight: normal`;function Ne(e){o?console.warn(`%c[svelte] await_reactivity_loss\n%cDetected reactivity loss when reading \`${e}\`. This happens when state is read in an async function after an earlier \`await\`\nhttps://svelte.dev/e/await_reactivity_loss`,je,Me):console.warn(`https://svelte.dev/e/await_reactivity_loss`)}function D(e,t){o?console.warn(`%c[svelte] await_waterfall\n%cAn async derived, \`${e}\` (${t}) was not read immediately after it resolved. This often indicates an unnecessary waterfall, which can slow down your app\nhttps://svelte.dev/e/await_waterfall`,je,Me):console.warn(`https://svelte.dev/e/await_waterfall`)}function Pe(){o?console.warn(`%c[svelte] derived_inert
737
737
  %cReading a derived belonging to a now-destroyed effect may result in stale values
738
- https://svelte.dev/e/derived_inert`,Me,Ne):console.warn(`https://svelte.dev/e/derived_inert`)}function Le(e,t,n){o?console.warn(`%c[svelte] hydration_attribute_changed\n%cThe \`${e}\` attribute on \`${t}\` changed its value between server and client renders. The client value, \`${n}\`, will be ignored in favour of the server value\nhttps://svelte.dev/e/hydration_attribute_changed`,Me,Ne):console.warn(`https://svelte.dev/e/hydration_attribute_changed`)}function Re(e){o?console.warn(`%c[svelte] hydration_mismatch\n%c${e?`Hydration failed because the initial UI does not match what was rendered on the server. The error occurred near ${e}`:`Hydration failed because the initial UI does not match what was rendered on the server`}\nhttps://svelte.dev/e/hydration_mismatch`,Me,Ne):console.warn(`https://svelte.dev/e/hydration_mismatch`)}function ze(e){o?console.warn(`%c[svelte] state_proxy_equality_mismatch\n%cReactive \`$state(...)\` proxies and the values they proxy have different identities. Because of this, comparisons with \`${e}\` will produce unexpected results\nhttps://svelte.dev/e/state_proxy_equality_mismatch`,Me,Ne):console.warn(`https://svelte.dev/e/state_proxy_equality_mismatch`)}function Be(){o?console.warn("%c[svelte] svelte_boundary_reset_noop\n%cA `<svelte:boundary>` `reset` function only resets the boundary the first time it is called\nhttps://svelte.dev/e/svelte_boundary_reset_noop",Me,Ne):console.warn(`https://svelte.dev/e/svelte_boundary_reset_noop`)}let E=!1;function Ve(e){E=e}let D;function O(e){if(e===null)throw Re(),Ae;return D=e}function He(){return O(jn(D))}function k(e){if(E){if(jn(D)!==null)throw Re(),Ae;D=e}}function Ue(e=1){if(E){for(var t=e,n=D;t--;)n=jn(n);D=n}}function We(e=!0){for(var t=0,n=D;;){if(n.nodeType===8){var r=n.data;if(r===`]`){if(t===0)return n;--t}else (r===`[`||r===`[!`||r[0]===`[`&&!isNaN(Number(r.slice(1))))&&(t+=1)}var i=jn(n);e&&n.remove(),n=i}}function Ge(e){if(!e||e.nodeType!==8)throw Re(),Ae;return e.data}function Ke(e){return e===this.v}function qe(e,t){return e==e?e!==t||typeof e==`object`&&!!e||typeof e==`function`:t==t}function Je(e){return!qe(e,this.v)}function Ye(e,t){return e.label=t,Xe(e.v,t),e}function Xe(e,t){return e?.[le]?.(t),e}function Ze(e){let t=Error(),n=Qe();return n.length===0?null:(n.unshift(`
738
+ https://svelte.dev/e/derived_inert`,je,Me):console.warn(`https://svelte.dev/e/derived_inert`)}function Fe(e,t,n){o?console.warn(`%c[svelte] hydration_attribute_changed\n%cThe \`${e}\` attribute on \`${t}\` changed its value between server and client renders. The client value, \`${n}\`, will be ignored in favour of the server value\nhttps://svelte.dev/e/hydration_attribute_changed`,je,Me):console.warn(`https://svelte.dev/e/hydration_attribute_changed`)}function Ie(e){o?console.warn(`%c[svelte] hydration_html_changed\n%c${e?`The value of an \`{@html ...}\` block ${e} changed between server and client renders. The client value will be ignored in favour of the server value`:"The value of an `{@html ...}` block changed between server and client renders. The client value will be ignored in favour of the server value"}\nhttps://svelte.dev/e/hydration_html_changed`,je,Me):console.warn(`https://svelte.dev/e/hydration_html_changed`)}function Le(e){o?console.warn(`%c[svelte] hydration_mismatch\n%c${e?`Hydration failed because the initial UI does not match what was rendered on the server. The error occurred near ${e}`:`Hydration failed because the initial UI does not match what was rendered on the server`}\nhttps://svelte.dev/e/hydration_mismatch`,je,Me):console.warn(`https://svelte.dev/e/hydration_mismatch`)}function Re(e){o?console.warn(`%c[svelte] state_proxy_equality_mismatch\n%cReactive \`$state(...)\` proxies and the values they proxy have different identities. Because of this, comparisons with \`${e}\` will produce unexpected results\nhttps://svelte.dev/e/state_proxy_equality_mismatch`,je,Me):console.warn(`https://svelte.dev/e/state_proxy_equality_mismatch`)}function ze(){o?console.warn("%c[svelte] svelte_boundary_reset_noop\n%cA `<svelte:boundary>` `reset` function only resets the boundary the first time it is called\nhttps://svelte.dev/e/svelte_boundary_reset_noop",je,Me):console.warn(`https://svelte.dev/e/svelte_boundary_reset_noop`)}let O=!1;function Be(e){O=e}let k;function A(e){if(e===null)throw Le(),ke;return k=e}function Ve(){return A(jn(k))}function j(e){if(O){if(jn(k)!==null)throw Le(),ke;k=e}}function He(e=1){if(O){for(var t=e,n=k;t--;)n=jn(n);k=n}}function Ue(e=!0){for(var t=0,n=k;;){if(n.nodeType===8){var r=n.data;if(r===`]`){if(t===0)return n;--t}else (r===`[`||r===`[!`||r[0]===`[`&&!isNaN(Number(r.slice(1))))&&(t+=1)}var i=jn(n);e&&n.remove(),n=i}}function We(e){if(!e||e.nodeType!==8)throw Le(),ke;return e.data}function Ge(e){return e===this.v}function Ke(e,t){return e==e?e!==t||typeof e==`object`&&!!e||typeof e==`function`:t==t}function qe(e){return!Ke(e,this.v)}function Je(e,t){return e.label=t,Ye(e.v,t),e}function Ye(e,t){return e?.[ce]?.(t),e}function Xe(e){let t=Error(),n=Ze();return n.length===0?null:(n.unshift(`
739
739
  `),d(t,`stack`,{value:n.join(`
740
- `)}),d(t,`name`,{value:e}),t)}function Qe(){let e=Error.stackTraceLimit;Error.stackTraceLimit=1/0;let t=Error().stack;if(Error.stackTraceLimit=e,!t)return[];let n=t.split(`
741
- `),r=[];for(let e=0;e<n.length;e++){let t=n[e],i=t.replaceAll(`\\`,`/`);if(t.trim()!==`Error`){if(t.includes(`validate_each_keys`))return[];i.includes(`svelte/src/internal`)||i.includes(`node_modules/.vite`)||r.push(t)}}return r}let A=null;function $e(e){A=e}let et=null;function tt(e){et=e}let nt=null;function rt(e){nt=e}function it(e,t=!1,n){A={p:A,i:!1,c:null,e:null,s:e,x:null,r:G,l:null},o&&(A.function=n,nt=n)}function at(e){var t=A,n=t.e;if(n!==null){t.e=null;for(var r of n)Wn(r)}return e!==void 0&&(t.x=e),t.i=!0,A=t.p,o&&(nt=A?.function??null),e??{}}function ot(){return!0}let st=[];function ct(){var e=st;st=[],y(e)}function lt(e){if(st.length===0&&!St){var t=st;queueMicrotask(()=>{t===st&&ct()})}st.push(e)}function ut(){for(;st.length>0;)ct()}const dt=new WeakMap;function ft(e){var t=G;if(t===null)return H.f|=oe,e;if(o&&e instanceof Error&&!dt.has(e)&&dt.set(e,mt(e,t)),!(t.f&32768)&&!(t.f&4))throw o&&!t.parent&&e instanceof Error&&ht(e),e;pt(e,t)}function pt(e,t){for(;t!==null;){if(t.f&128){if(!(t.f&32768))throw e;try{t.b.error(e);return}catch(t){e=t}}t=t.parent}throw o&&e instanceof Error&&ht(e),e}function mt(e,t){let n=f(e,`message`);if(!(n&&!n.configurable)){for(var r=En?` `:` `,i=`\n${r}in ${t.fn?.name||`<unknown>`}`,a=t.ctx;a!==null;)i+=`\n${r}in ${a.function?.[je].split(`/`).pop()}`,a=a.p;return{message:e.message+`\n${i}\n`,stack:e.stack?.split(`
740
+ `)}),d(t,`name`,{value:e}),t)}function Ze(){let e=Error.stackTraceLimit;Error.stackTraceLimit=1/0;let t=Error().stack;if(Error.stackTraceLimit=e,!t)return[];let n=t.split(`
741
+ `),r=[];for(let e=0;e<n.length;e++){let t=n[e],i=t.replaceAll(`\\`,`/`);if(t.trim()!==`Error`){if(t.includes(`validate_each_keys`))return[];i.includes(`svelte/src/internal`)||i.includes(`node_modules/.vite`)||r.push(t)}}return r}let M=null;function Qe(e){M=e}let $e=null;function et(e){$e=e}let tt=null;function nt(e){tt=e}function rt(e,t=!1,n){M={p:M,i:!1,c:null,e:null,s:e,x:null,r:K,l:null},o&&(M.function=n,tt=n)}function it(e){var t=M,n=t.e;if(n!==null){t.e=null;for(var r of n)Wn(r)}return e!==void 0&&(t.x=e),t.i=!0,M=t.p,o&&(tt=M?.function??null),e??{}}function at(){return!0}let ot=[];function st(){var e=ot;ot=[],y(e)}function ct(e){if(ot.length===0&&!St){var t=ot;queueMicrotask(()=>{t===ot&&st()})}ot.push(e)}function lt(){for(;ot.length>0;)st()}const ut=new WeakMap;function dt(e){var t=K;if(t===null)return U.f|=ae,e;if(o&&e instanceof Error&&!ut.has(e)&&ut.set(e,pt(e,t)),!(t.f&32768)&&!(t.f&4))throw o&&!t.parent&&e instanceof Error&&mt(e),e;ft(e,t)}function ft(e,t){for(;t!==null;){if(t.f&128){if(!(t.f&32768))throw e;try{t.b.error(e);return}catch(t){e=t}}t=t.parent}throw o&&e instanceof Error&&mt(e),e}function pt(e,t){let n=f(e,`message`);if(!(n&&!n.configurable)){for(var r=En?` `:` `,i=`\n${r}in ${t.fn?.name||`<unknown>`}`,a=t.ctx;a!==null;)i+=`\n${r}in ${a.function?.[Ae].split(`/`).pop()}`,a=a.p;return{message:e.message+`\n${i}\n`,stack:e.stack?.split(`
742
742
  `).filter(e=>!e.includes(`svelte/src/internal`)).join(`
743
- `)}}}function ht(e){let t=dt.get(e);t&&(d(e,`message`,{value:t.message}),d(e,`stack`,{value:t.stack}))}function j(e,t){e.f=e.f&-7169|t}function gt(e){e.f&512||e.deps===null?j(e,x):j(e,C)}function _t(e){if(e!==null)for(let t of e)!(t.f&2)||!(t.f&65536)||(t.f^=ie,_t(t.deps))}function vt(e,t,n){e.f&2048?t.add(e):e.f&4096&&n.add(e),_t(e.deps),j(e,x)}let yt=null,M=null,bt=null,N=null,xt=null,St=!1,Ct=!1,wt=null,Tt=null;var Et=0,Dt=new Set;let Ot=1;var kt=class e{id=Ot++;#e=!1;linked=!0;#t=null;#n=null;async_deriveds=new Map;current=new Map;previous=new Map;unblocked=new Set;#r=new Set;#i=new Set;#a=new Set;#o=0;#s=new Map;#c=null;#l=[];#u=[];#d=new Set;#f=new Set;#p=new Map;#m=new Set;is_fork=!1;#h=!1;#g(){if(this.is_fork)return!0;for(let n of this.#s.keys()){for(var e=n,t=!1;e.parent!==null;){if(this.#p.has(e)){t=!0;break}e=e.parent}if(!t)return!0}return!1}skip_effect(e){this.#p.has(e)||this.#p.set(e,{d:[],m:[]}),this.#m.delete(e)}unskip_effect(e,t=e=>this.schedule(e)){var n=this.#p.get(e);if(n){this.#p.delete(e);for(var r of n.d)j(r,S),t(r);for(r of n.m)j(r,C),t(r)}this.#m.add(e)}#_(){if(this.#e=!0,Et++>1e3&&(this.#C(),jt()),o)for(let e of this.current.keys())Dt.add(e);if(!this.#g()){for(let e of this.#d)this.#f.delete(e),j(e,S),this.schedule(e);for(let e of this.#f)j(e,C),this.schedule(e)}let t=this.#l;this.#l=[],this.apply();var n=wt=[],r=[],i=Tt=[];for(let e of t)try{this.#v(e,n,r)}catch(t){throw Rt(e),t}if(M=null,i.length>0){var a=e.ensure();for(let e of i)a.schedule(e)}if(wt=null,Tt=null,this.#g()){this.#x(r),this.#x(n);for(let[e,t]of this.#p)Lt(e,t);i.length>0&&M.#_();return}let s=this.#y();if(s){s.#b(this);return}this.#d.clear(),this.#f.clear();for(let e of this.#r)e(this);this.#r.clear(),bt=this,Nt(r),Nt(n),bt=null,this.#c?.resolve();var c=M;if(this.linked&&this.#o===0&&this.#C(),this.#l.length>0){c===null&&(c=this,this.#S());let e=c;e.#l.push(...this.#l.filter(t=>!e.#l.includes(t)))}c!==null&&c.#_()}#v(e,t,n){e.f^=x;for(var r=e.first;r!==null;){var i=r.f,a=(i&96)!=0;if(!(a&&i&1024||i&8192||this.#p.has(r))&&r.fn!==null){a?r.f^=x:i&4?t.push(r):vr(r)&&(i&16&&this.#f.add(r),Cr(r));var o=r.first;if(o!==null){r=o;continue}}for(;r!==null;){var s=r.next;if(s!==null){r=s;break}r=r.parent}}}#y(){for(var e=this.#t;e!==null;){if(!e.is_fork){for(let[t,[,n]]of this.current)if(e.current.has(t)&&!n)return e}e=e.#t}return null}#b(e){for(let[t,n]of e.current)!this.previous.has(t)&&e.previous.has(t)&&this.previous.set(t,e.previous.get(t)),this.current.set(t,n);for(let[t,n]of e.async_deriveds){let e=this.async_deriveds.get(t);e&&n.promise.then(e.resolve)}let t=e=>{var n=e.reactions;if(n!==null)for(let e of n){var r=e.f;if(r&2)t(e);else{var i=e;r&4194320&&!this.async_deriveds.has(i)&&(this.#f.delete(i),j(i,S),this.schedule(i))}}};for(let e of this.current.keys())t(e);this.oncommit(()=>e.discard()),e.#C(),M=this,this.#_()}#x(e){for(var t=0;t<e.length;t+=1)vt(e[t],this.#d,this.#f)}capture(e,t,n=!1){e.v!==T&&!this.previous.has(e)&&this.previous.set(e,e.v),e.f&8388608||(this.current.set(e,[t,n]),N?.set(e,t)),this.is_fork||(e.v=t)}activate(){M=this}deactivate(){M=null,N=null}flush(){try{o&&Dt.clear(),Ct=!0,M=this,this.#_()}finally{if(Et=0,xt=null,wt=null,Tt=null,Ct=!1,M=null,N=null,cn.clear(),o)for(let e of Dt)e.updated=null}}discard(){for(let e of this.#i)e(this);this.#i.clear(),this.#a.clear(),this.#C()}register_created_effect(e){this.#u.push(e)}increment(e,t){if(this.#o+=1,e){let e=this.#s.get(t)??0;this.#s.set(t,e+1)}}decrement(e,t){if(--this.#o,e){let e=this.#s.get(t)??0;e===1?this.#s.delete(t):this.#s.set(t,e-1)}this.#h||(this.#h=!0,lt(()=>{this.#h=!1,this.linked&&this.flush()}))}transfer_effects(e,t){for(let t of e)this.#d.add(t);for(let e of t)this.#f.add(e);e.clear(),t.clear()}oncommit(e){this.#r.add(e)}ondiscard(e){this.#i.add(e)}on_fork_commit(e){this.#a.add(e)}run_fork_commit_callbacks(){for(let e of this.#a)e(this);this.#a.clear()}settled(){return(this.#c??=b()).promise}static ensure(){if(M===null){let t=M=new e;t.#S(),!Ct&&!St&&lt(()=>{t.#e||t.flush()})}return M}apply(){N=null}schedule(e){if(xt=e,e.b?.is_pending&&e.f&16777228&&!(e.f&32768)){e.b.defer_effect(e);return}for(var t=e;t.parent!==null;){t=t.parent;var n=t.f;if(wt!==null&&t===G&&(H===null||!(H.f&2)))return;if(n&96){if(!(n&1024))return;t.f^=x}}this.#l.push(t)}#S(){yt===null?yt=this:(yt.#n=this,this.#t=yt),yt=this}#C(){var e=this.#t,t=this.#n;e===null||(e.#n=t),t===null?yt=e:t.#t=e,this.linked=!1}};function At(e){var t=St;St=!0;try{var n;for(e&&(M!==null&&!M.is_fork&&M.flush(),n=e());;){if(ut(),M===null)return n;M.flush()}}finally{St=t}}function jt(){if(o){var e=new Map;for(let n of M.current.keys())for(let[r,i]of n.updated??[]){var t=e.get(r);t||(t={error:i.error,count:0},e.set(r,t)),t.count+=i.count}for(let t of e.values())t.error&&console.error(t.error)}try{we()}catch(e){o&&d(e,`stack`,{value:``}),pt(e,xt)}}let Mt=null;function Nt(e){var t=e.length;if(t!==0){for(var n=0;n<t;){var r=e[n++];if(!(r.f&24576)&&vr(r)&&(Mt=new Set,Cr(r),r.deps===null&&r.first===null&&r.nodes===null&&r.teardown===null&&r.ac===null&&nr(r),Mt?.size>0)){cn.clear();for(let e of Mt){if(e.f&24576)continue;let t=[e],n=e.parent;for(;n!==null;)Mt.has(n)&&(Mt.delete(n),t.push(n)),n=n.parent;for(let e=t.length-1;e>=0;e--){let n=t[e];n.f&24576||Cr(n)}}Mt.clear()}}Mt=null}}function Pt(e,t,n,r){if(!n.has(e)&&(n.add(e),e.reactions!==null))for(let i of e.reactions){let e=i.f;e&2?Pt(i,t,n,r):e&4194320&&!(e&2048)&&Ft(i,t,r)&&(j(i,S),It(i))}}function Ft(e,t,n){let r=n.get(e);if(r!==void 0)return r;if(e.deps!==null)for(let r of e.deps){if(l.call(t,r))return!0;if(r.f&2&&Ft(r,t,n))return n.set(r,!0),!0}return n.set(e,!1),!1}function It(e){M.schedule(e)}function Lt(e,t){if(!(e.f&32&&e.f&1024)){e.f&2048?t.d.push(e):e.f&4096&&t.m.push(e),j(e,x);for(var n=e.first;n!==null;)Lt(n,t),n=n.next}}function Rt(e){j(e,x);for(var t=e.first;t!==null;)Rt(t),t=t.next}function zt(e){let t=0,n=fn(0),r;return o&&Ye(n,`createSubscriber version`),()=>{Vn()&&(Z(n),Jn(()=>(t===0&&(r=Dr(()=>e(()=>gn(n)))),t+=1,()=>{lt(()=>{--t,t===0&&(r?.(),r=void 0,gn(n))})})))}}var Bt=589824;function Vt(e,t,n,r){new Ht(e,t,n,r)}var Ht=class{parent;is_pending=!1;transform_error;#e;#t=E?D:null;#n;#r;#i;#a=null;#o=null;#s=null;#c=null;#l=0;#u=0;#d=!1;#f=new Set;#p=new Set;#m=null;#h=zt(()=>(this.#m=fn(this.#l),o&&Ye(this.#m,`$effect.pending()`),()=>{this.#m=null}));constructor(e,t,n,r){this.#e=e,this.#n=t,this.#r=e=>{var t=G;t.b=this,t.f|=128,n(e)},this.parent=G.b,this.transform_error=r??this.parent?.transform_error??(e=>e),this.#i=Xn(()=>{if(E){let e=this.#t;He();let t=e.data===`[!`;if(e.data.startsWith(`[?`)){let t=JSON.parse(e.data.slice(2));this.#_(t)}else t?this.#v():this.#g()}else this.#y()},Bt),E&&(this.#e=D)}#g(){try{this.#a=B(()=>this.#r(this.#e))}catch(e){this.error(e)}}#_(e){let t=this.#n.failed;t&&(this.#s=B(()=>{t(this.#e,()=>e,()=>()=>{})}))}#v(){let e=this.#n.pending;e&&(this.is_pending=!0,this.#o=B(()=>e(this.#e)),lt(()=>{var e=this.#c=document.createDocumentFragment(),t=L();e.append(t),this.#a=this.#x(()=>B(()=>this.#r(t))),this.#u===0&&(this.#e.before(e),this.#c=null,rr(this.#o,()=>{this.#o=null}),this.#b(M))}))}#y(){try{if(this.is_pending=this.has_pending_snippet(),this.#u=0,this.#l=0,this.#a=B(()=>{this.#r(this.#e)}),this.#u>0){var e=this.#c=document.createDocumentFragment();sr(this.#a,e);let t=this.#n.pending;this.#o=B(()=>t(this.#e))}else this.#b(M)}catch(e){this.error(e)}}#b(e){this.is_pending=!1,e.transfer_effects(this.#f,this.#p)}defer_effect(e){vt(e,this.#f,this.#p)}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!this.#n.pending}#x(e){var t=G,n=H,r=A;K(this.#i),W(this.#i),$e(this.#i.ctx);try{return kt.ensure(),e()}catch(e){return ft(e),null}finally{K(t),W(n),$e(r)}}#S(e,t){if(!this.has_pending_snippet()){this.parent&&this.parent.#S(e,t);return}this.#u+=e,this.#u===0&&(this.#b(t),this.#o&&rr(this.#o,()=>{this.#o=null}),this.#c&&=(this.#e.before(this.#c),null))}update_pending_count(e,t){this.#S(e,t),this.#l+=e,!(!this.#m||this.#d)&&(this.#d=!0,lt(()=>{this.#d=!1,this.#m&&mn(this.#m,this.#l)}))}get_effect_pending(){return this.#h(),Z(this.#m)}error(e){if(!this.#n.onerror&&!this.#n.failed)throw e;M?.is_fork?(this.#a&&M.skip_effect(this.#a),this.#o&&M.skip_effect(this.#o),this.#s&&M.skip_effect(this.#s),M.on_fork_commit(()=>{this.#C(e)})):this.#C(e)}#C(e){this.#a&&=(V(this.#a),null),this.#o&&=(V(this.#o),null),this.#s&&=(V(this.#s),null),E&&(O(this.#t),Ue(),O(We()));var t=this.#n.onerror;let n=this.#n.failed;var r=!1,i=!1;let a=()=>{if(r){Be();return}r=!0,i&&ke(),this.#s!==null&&rr(this.#s,()=>{this.#s=null}),this.#x(()=>{this.#y()})},o=e=>{try{i=!0,t?.(e,a),i=!1}catch(e){pt(e,this.#i&&this.#i.parent)}n&&(this.#s=this.#x(()=>{try{return B(()=>{var t=G;t.b=this,t.f|=128,n(this.#e,()=>e,()=>a)})}catch(e){return pt(e,this.#i.parent),null}}))};lt(()=>{var t;try{t=this.transform_error(e)}catch(e){pt(e,this.#i&&this.#i.parent);return}typeof t==`object`&&t&&typeof t.then==`function`?t.then(o,e=>pt(e,this.#i&&this.#i.parent)):o(t)})}};function Ut(e,t,n,r){let i=ot()?Yt:$t;var a=e.filter(e=>!e.settled);if(n.length===0&&a.length===0){r(t.map(i));return}var o=G,s=Wt(),c=a.length===1?a[0].promise:a.length>1?Promise.all(a.map(e=>e.promise)):null;function l(e){if(!(o.f&16384)){s();try{r(e)}catch(e){pt(e,o)}Gt()}}var u=Kt();if(n.length===0){c.then(()=>l(t.map(i))).finally(u);return}function d(){Promise.all(n.map(e=>Zt(e))).then(e=>l([...t.map(i),...e])).catch(e=>pt(e,o)).finally(u)}c?c.then(()=>{s(),d(),Gt()}):d()}function Wt(){var e=G,t=H,n=A,r=M;if(o)var i=et;return function(a=!0){K(e),W(t),$e(n),a&&!(e.f&16384)&&(r?.activate(),r?.apply()),o&&(qt(null),tt(i))}}function Gt(e=!0){K(null),W(null),$e(null),e&&M?.deactivate(),o&&(qt(null),tt(null))}function Kt(){var e=G,t=e.b,n=M,r=t.is_rendered();return t.update_pending_count(1,n),n.increment(r,e),()=>{t.update_pending_count(-1,n),n.decrement(r,e)}}let P=null;function qt(e){P=e}const Jt=new Set;function Yt(e){return G!==null&&(G.f|=524288),{ctx:A,deps:null,effects:null,equals:Ke,f:2050,fn:e,reactions:null,rv:0,v:T,wv:0,parent:G,ac:null}}const Xt=Symbol(`obsolete`);function Zt(e,t,n){let r=G;r===null&&_e();var i=void 0,a=fn(T);o&&(a.label=t??e.toString());var s=!H,c=new Set;return qn(()=>{var t=G;o&&(P={effect:t,effect_deps:new Set,warned:!1});var l=b();i=l.promise;try{Promise.resolve(e()).then(l.resolve,e=>{e!==he&&l.reject(e)}).finally(Gt)}catch(e){l.reject(e),Gt()}if(o){if(P){if(t.deps!==null)for(let e=0;e<Y;e+=1)P.effect_deps.add(t.deps[e]);if(J!==null)for(let e=0;e<J.length;e+=1)P.effect_deps.add(J[e])}P=null}var u=M;if(s){if(t.f&32768)var d=Kt();if(r.b.is_rendered())u.async_deriveds.get(t)?.reject(Xt);else for(let e of c.values())e.reject(Xt);c.add(l),u.async_deriveds.set(t,l)}let f=(e,r=void 0)=>{o&&(P=null),d?.(),c.delete(l),r!==Xt&&(u.activate(),r?(a.f|=oe,mn(a,r)):(a.f&8388608&&(a.f^=oe),mn(a,e),o&&n!==void 0&&(Jt.add(a),setTimeout(()=>{Jt.has(a)&&!(t.f&16384)&&(Fe(a.label,n),Jt.delete(a))}))),u.deactivate())};l.promise.then(f,e=>f(null,e||`unknown`))}),Hn(()=>{for(let e of c)e.reject(Xt)}),o&&(a.f|=4194304),new Promise(e=>{function t(n){function r(){n===i?e(a):t(i)}n.then(r,r)}t(i)})}function Qt(e){let t=Yt(e);return dr(t),t}function $t(e){let t=Yt(e);return t.equals=Je,t}function en(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n<t.length;n+=1)V(t[n])}}let tn=[];function nn(e){var t,n=G,r=e.parent;if(!lr&&r!==null&&e.v!==T&&r.f&24576)return Ie(),e.v;if(K(r),o){let r=sn;ln(new Set);try{l.call(tn,e)&&ve(),tn.push(e),e.f&=-65537,en(e),t=br(e)}finally{K(n),ln(r),tn.pop()}}else try{e.f&=-65537,en(e),t=br(e)}finally{K(n)}return t}function rn(e){var t=nn(e);if(!e.equals(t)&&(e.wv=_r(),(!M?.is_fork||e.deps===null)&&(M===null?e.v=t:(M.capture(e,t,!0),bt?.capture(e,t,!0)),e.deps===null))){j(e,x);return}lr||(N===null?gt(e):(Vn()||M?.is_fork)&&N.set(e,t))}function an(e){if(e.effects!==null)for(let t of e.effects)(t.teardown||t.ac)&&(t.teardown?.(),t.ac?.abort(he),t.fn!==null&&(t.teardown=v),t.ac=null,Sr(t,0),$n(t))}function on(e){if(e.effects!==null)for(let t of e.effects)t.teardown&&t.fn!==null&&Cr(t)}let sn=new Set;const cn=new Map;function ln(e){sn=e}let un=!1;function dn(){un=!0}function fn(e,t){return{f:0,v:e,reactions:null,equals:Ke,rv:0,wv:0}}function F(e,t){let n=fn(e,t);return dr(n),n}function pn(e,t=!1,n=!0){let r=fn(e);return t||(r.equals=Je),r}function I(e,t,n=!1){H!==null&&(!U||H.f&131072)&&ot()&&H.f&4325394&&(q===null||!l.call(q,e))&&Oe();let r=n?yn(t):t;return o&&Xe(r,e.label),mn(e,r,Tt)}function mn(e,t,n=null){if(!e.equals(t)){cn.set(e,lr?t:e.v);var r=kt.ensure();if(r.capture(e,t),o){if(G!==null){e.updated??=new Map;let t=(e.updated.get(``)?.count??0)+1;if(e.updated.set(``,{error:null,count:t}),t>5){let t=Ze(`updated at`);if(t!==null){let n=e.updated.get(t.stack);n||(n={error:t,count:0},e.updated.set(t.stack,n)),n.count++}}}G!==null&&(e.set_during_effect=!0)}if(e.f&2){let t=e;e.f&2048&&nn(t),N===null&&gt(t)}e.wv=_r(),_n(e,S,n),ot()&&G!==null&&G.f&1024&&!(G.f&96)&&(X===null?fr([e]):X.push(e)),!r.is_fork&&sn.size>0&&!un&&hn()}return t}function hn(){un=!1;for(let e of sn){e.f&1024&&j(e,C);let t;try{t=vr(e)}catch{t=!0}t&&Cr(e)}sn.clear()}function gn(e){I(e,e.v+1)}function _n(e,t,n){var r=e.reactions;if(r!==null)for(var i=ot(),a=r.length,o=0;o<a;o++){var s=r[o],c=s.f;if(!(!i&&s===G)){var l=(c&S)==0;if(l&&j(s,t),c&131072)sn.add(s);else if(c&2){var u=s;N?.delete(u),c&65536||(c&512&&(G===null||!(G.f&2097152))&&(s.f|=ie),_n(u,C,n))}else if(l){var d=s;c&16&&Mt!==null&&Mt.add(d),n===null?It(d):n.push(d)}}}}const vn=/^[a-zA-Z_$][a-zA-Z_$0-9]*$/;function yn(e){if(typeof e!=`object`||!e||se in e)return e;let t=g(e);if(t!==m&&t!==h)return e;var n=new Map,r=s(e),i=F(0),a=null,c=hr,l=e=>{if(hr===c)return e();var t=H,n=hr;W(null),gr(c);var r=e();return W(t),gr(n),r};r&&(n.set(`length`,F(e.length,a)),o&&(e=Cn(e)));var u=``;let d=!1;function p(e){if(!d){d=!0,u=e,Ye(i,`${u} version`);for(let[e,t]of n)Ye(t,bn(u,e));d=!1}}return new Proxy(e,{defineProperty(e,t,r){(!(`value`in r)||r.configurable===!1||r.enumerable===!1||r.writable===!1)&&Ee();var i=n.get(t);return i===void 0?l(()=>{var e=F(r.value,a);return n.set(t,e),o&&typeof t==`string`&&Ye(e,bn(u,t)),e}):I(i,r.value,!0),!0},deleteProperty(e,t){var r=n.get(t);if(r===void 0){if(t in e){let e=l(()=>F(T,a));n.set(t,e),gn(i),o&&Ye(e,bn(u,t))}}else I(r,T),gn(i);return!0},get(t,r,i){if(r===se)return e;if(o&&r===le)return p;var s=n.get(r),c=r in t;if(s===void 0&&(!c||f(t,r)?.writable)&&(s=l(()=>{var e=F(yn(c?t[r]:T),a);return o&&Ye(e,bn(u,r)),e}),n.set(r,s)),s!==void 0){var d=Z(s);return d===T?void 0:d}return Reflect.get(t,r,i)},getOwnPropertyDescriptor(e,t){var r=Reflect.getOwnPropertyDescriptor(e,t);if(r&&`value`in r){var i=n.get(t);i&&(r.value=Z(i))}else if(r===void 0){var a=n.get(t),o=a?.v;if(a!==void 0&&o!==T)return{enumerable:!0,configurable:!0,value:o,writable:!0}}return r},has(e,t){if(t===se)return!0;var r=n.get(t),i=r!==void 0&&r.v!==T||Reflect.has(e,t);return(r!==void 0||G!==null&&(!i||f(e,t)?.writable))&&(r===void 0&&(r=l(()=>{var n=F(i?yn(e[t]):T,a);return o&&Ye(n,bn(u,t)),n}),n.set(t,r)),Z(r)===T)?!1:i},set(e,t,s,c){var d=n.get(t),p=t in e;if(r&&t===`length`)for(var m=s;m<d.v;m+=1){var h=n.get(m+``);h===void 0?m in e&&(h=l(()=>F(T,a)),n.set(m+``,h),o&&Ye(h,bn(u,m))):I(h,T)}if(d===void 0)(!p||f(e,t)?.writable)&&(d=l(()=>F(void 0,a)),o&&Ye(d,bn(u,t)),I(d,yn(s)),n.set(t,d));else{p=d.v!==T;var g=l(()=>yn(s));I(d,g)}var _=Reflect.getOwnPropertyDescriptor(e,t);if(_?.set&&_.set.call(c,s),!p){if(r&&typeof t==`string`){var v=n.get(`length`),y=Number(t);Number.isInteger(y)&&y>=v.v&&I(v,y+1)}gn(i)}return!0},ownKeys(e){Z(i);var t=Reflect.ownKeys(e).filter(e=>{var t=n.get(e);return t===void 0||t.v!==T});for(var[r,a]of n)a.v!==T&&!(r in e)&&t.push(r);return t},setPrototypeOf(){De()}})}function bn(e,t){return typeof t==`symbol`?`${e}[Symbol(${t.description??``})]`:vn.test(t)?`${e}.${t}`:/^\d+$/.test(t)?`${e}[${t}]`:`${e}['${t}']`}function xn(e){try{if(typeof e==`object`&&e&&se in e)return e[se]}catch{}return e}const Sn=new Set([`copyWithin`,`fill`,`pop`,`push`,`reverse`,`shift`,`sort`,`splice`,`unshift`]);function Cn(e){return new Proxy(e,{get(e,t,n){var r=Reflect.get(e,t,n);return Sn.has(t)?function(...e){dn();var t=r.apply(this,e);return hn(),t}:r}})}function wn(){let e=Array.prototype,t=Array.__svelte_cleanup;t&&t();let{indexOf:n,lastIndexOf:r,includes:i}=e;e.indexOf=function(e,t){let r=n.call(this,e,t);if(r===-1){for(let n=t??0;n<this.length;n+=1)if(xn(this[n])===e){ze(`array.indexOf(...)`);break}}return r},e.lastIndexOf=function(e,t){let n=r.call(this,e,t??this.length-1);if(n===-1){for(let n=0;n<=(t??this.length-1);n+=1)if(xn(this[n])===e){ze(`array.lastIndexOf(...)`);break}}return n},e.includes=function(e,t){let n=i.call(this,e,t);if(!n){for(let t=0;t<this.length;t+=1)if(xn(this[t])===e){ze(`array.includes(...)`);break}}return n},Array.__svelte_cleanup=()=>{e.indexOf=n,e.lastIndexOf=r,e.includes=i}}var Tn,En,Dn,On;function kn(){if(Tn===void 0){Tn=window,En=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;Dn=f(t,`firstChild`).get,On=f(t,`nextSibling`).get,_(e)&&(e[de]=void 0,e[ue]=null,e[fe]=void 0,e.__e=void 0),_(n)&&(n[pe]=void 0),o&&(e.__svelte_meta=null,wn())}}function L(e=``){return document.createTextNode(e)}function An(e){return Dn.call(e)}function jn(e){return On.call(e)}function R(e,t){if(!E)return An(e);var n=An(D);if(n===null)n=D.appendChild(L());else if(t&&n.nodeType!==3){var r=L();return n?.before(r),O(r),r}return t&&In(n),O(n),n}function Mn(e,t=!1){if(!E){var n=An(e);return n instanceof Comment&&n.data===``?jn(n):n}if(t){if(D?.nodeType!==3){var r=L();return D?.before(r),O(r),r}In(D)}return D}function z(e,t=1,n=!1){let r=E?D:e;for(var i;t--;)i=r,r=jn(r);if(!E)return r;if(n){if(r?.nodeType!==3){var a=L();return r===null?i?.after(a):r.before(a),O(a),a}In(r)}return O(r),r}function Nn(e){e.textContent=``}function Pn(){return!1}function Fn(e,t,n){let r=n?{is:n}:void 0;return document.createElementNS(t??`http://www.w3.org/1999/xhtml`,e,r)}function In(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===3;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}function Ln(e){var t=H,n=G;W(null),K(null);try{return e()}finally{W(t),K(n)}}function Rn(e){G===null&&(H===null&&Ce(e),Se()),lr&&xe(e)}function zn(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function Bn(e,t){var n=G;if(o)for(;n!==null&&n.f&131072;)n=n.parent;n!==null&&n.f&8192&&(e|=w);var r={ctx:A,deps:null,nodes:null,f:e|2560,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};o&&(r.component_function=nt),M?.register_created_effect(r);var i=r;if(e&4)wt===null?kt.ensure().schedule(r):wt.push(r);else if(t!==null){try{Cr(r)}catch(e){throw V(r),e}i.deps===null&&i.teardown===null&&i.nodes===null&&i.first===i.last&&!(i.f&524288)&&(i=i.first,e&16&&e&65536&&i!==null&&(i.f|=ne))}if(i!==null&&(i.parent=n,n!==null&&zn(i,n),H!==null&&H.f&2&&!(e&64))){var a=H;(a.effects??=[]).push(i)}return r}function Vn(){return H!==null&&!U}function Hn(e){let t=Bn(8,null);return j(t,x),t.teardown=e,t}function Un(e){Rn(`$effect`),o&&d(e,`name`,{value:`$effect`});var t=G.f;if(!H&&t&32&&!(t&32768)){var n=A;(n.e??=[]).push(e)}else return Wn(e)}function Wn(e){return Bn(1048580,e)}function Gn(e){kt.ensure();let t=Bn(524352,e);return(e={})=>new Promise(n=>{e.outro?rr(t,()=>{V(t),n(void 0)}):(V(t),n(void 0))})}function Kn(e){return Bn(4,e)}function qn(e){return Bn(4718592,e)}function Jn(e,t=0){return Bn(8|t,e)}function Yn(e,t=[],n=[],r=[]){Ut(r,t,n,t=>{Bn(8,()=>e(...t.map(Z)))})}function Xn(e,t=0){var n=Bn(16|t,e);return o&&(n.dev_stack=et),n}function Zn(e,t=0){var n=Bn(16777216|t,e);return o&&(n.dev_stack=et),n}function B(e){return Bn(524320,e)}function Qn(e){var t=e.teardown;if(t!==null){let e=lr,n=H;ur(!0),W(null);try{t.call(null)}finally{ur(e),W(n)}}}function $n(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){let e=n.ac;e!==null&&Ln(()=>{e.abort(he)});var r=n.next;n.f&64?n.parent=null:V(n,t),n=r}}function er(e){for(var t=e.first;t!==null;){var n=t.next;t.f&32||V(t),t=n}}function V(e,t=!0){var n=!1;(t||e.f&262144)&&e.nodes!==null&&e.nodes.end!==null&&(tr(e.nodes.start,e.nodes.end),n=!0),j(e,te),$n(e,t&&!n),Sr(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(let e of r)e.stop();Qn(e),e.f^=te,e.f|=16384;var i=e.parent;i!==null&&i.first!==null&&nr(e),o&&(e.component_function=null),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function tr(e,t){for(;e!==null;){var n=e===t?null:jn(e);e.remove(),e=n}}function nr(e){var t=e.parent,n=e.prev,r=e.next;n!==null&&(n.next=r),r!==null&&(r.prev=n),t!==null&&(t.first===e&&(t.first=r),t.last===e&&(t.last=n))}function rr(e,t,n=!0){var r=[];ir(e,r,!0);var i=()=>{n&&V(e),t&&t()},a=r.length;if(a>0){var o=()=>--a||i();for(var s of r)s.out(o)}else i()}function ir(e,t,n){if(!(e.f&8192)){e.f^=w;var r=e.nodes&&e.nodes.t;if(r!==null)for(let e of r)(e.is_global||n)&&t.push(e);for(var i=e.first;i!==null;){var a=i.next;if(!(i.f&64)){var o=(i.f&65536)!=0||(i.f&32)!=0&&(e.f&16)!=0;ir(i,t,o?n:!1)}i=a}}}function ar(e){or(e,!0)}function or(e,t){if(e.f&8192){e.f^=w,e.f&1024||(j(e,S),kt.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,i=(n.f&65536)!=0||(n.f&32)!=0;or(n,i?t:!1),n=r}var a=e.nodes&&e.nodes.t;if(a!==null)for(let e of a)(e.is_global||t)&&e.in()}}function sr(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var i=n===r?null:jn(n);t.append(n),n=i}}let cr=!1,lr=!1;function ur(e){lr=e}let H=null,U=!1;function W(e){H=e}let G=null;function K(e){G=e}let q=null;function dr(e){H!==null&&(q===null?q=[e]:q.push(e))}let J=null,Y=0,X=null;function fr(e){X=e}let pr=1,mr=0,hr=mr;function gr(e){hr=e}function _r(){return++pr}function vr(e){var t=e.f;if(t&2048)return!0;if(t&2&&(e.f&=-65537),t&4096){for(var n=e.deps,r=n.length,i=0;i<r;i++){var a=n[i];if(vr(a)&&rn(a),a.wv>e.wv)return!0}t&512&&N===null&&j(e,x)}return!1}function yr(e,t,n=!0){var r=e.reactions;if(r!==null&&!(q!==null&&l.call(q,e)))for(var i=0;i<r.length;i++){var a=r[i];a.f&2?yr(a,t,!1):t===a&&(n?j(a,S):a.f&1024&&j(a,C),It(a))}}function br(e){var t=J,n=Y,r=X,i=H,a=q,o=A,s=U,c=hr,l=e.f;J=null,Y=0,X=null,H=l&96?null:e,q=null,$e(e.ctx),U=!1,hr=++mr,e.ac!==null&&(Ln(()=>{e.ac.abort(he)}),e.ac=null);try{e.f|=ae;var u=e.fn,d=u();e.f|=ee;var f=e.deps,p=M?.is_fork;if(J!==null){var m;if(p||Sr(e,Y),f!==null&&Y>0)for(f.length=Y+J.length,m=0;m<J.length;m++)f[Y+m]=J[m];else e.deps=f=J;if(Vn()&&e.f&512)for(m=Y;m<f.length;m++)(f[m].reactions??=[]).push(e)}else !p&&f!==null&&Y<f.length&&(Sr(e,Y),f.length=Y);if(ot()&&X!==null&&!U&&f!==null&&!(e.f&6146))for(m=0;m<X.length;m++)yr(X[m],e);if(i!==null&&i!==e){if(mr++,i.deps!==null)for(let e=0;e<n;e+=1)i.deps[e].rv=mr;if(t!==null)for(let e of t)e.rv=mr;X!==null&&(r===null?r=X:r.push(...X))}return e.f&8388608&&(e.f^=oe),d}catch(e){return ft(e)}finally{e.f^=ae,J=t,Y=n,X=r,H=i,q=a,$e(o),U=s,hr=c}}function xr(e,t){let n=t.reactions;if(n!==null){var r=c.call(n,e);if(r!==-1){var i=n.length-1;i===0?n=t.reactions=null:(n[r]=n[i],n.pop())}}if(n===null&&t.f&2&&(J===null||!l.call(J,t))){var a=t;a.f&512&&(a.f^=512,a.f&=-65537),a.v!==T&&gt(a),an(a),Sr(a,0)}}function Sr(e,t){var n=e.deps;if(n!==null)for(var r=t;r<n.length;r++)xr(e,n[r])}function Cr(e){var t=e.f;if(!(t&16384)){j(e,x);var n=G,r=cr;if(G=e,cr=!0,o){var i=nt;rt(e.component_function);var a=et;tt(e.dev_stack??et)}try{t&16777232?er(e):$n(e),Qn(e);var s=br(e);e.teardown=typeof s==`function`?s:null,e.wv=pr}finally{cr=r,G=n,o&&(rt(i),tt(a))}}}async function wr(){await Promise.resolve(),At()}function Z(e){var t=(e.f&2)!=0;if(H!==null&&!U&&!(G!==null&&G.f&16384)&&(q===null||!l.call(q,e))){var n=H.deps;if(H.f&2097152)e.rv<mr&&(e.rv=mr,J===null&&n!==null&&n[Y]===e?Y++:J===null?J=[e]:J.push(e));else{H.deps??=[],l.call(H.deps,e)||H.deps.push(e);var r=e.reactions;r===null?e.reactions=[H]:l.call(r,H)||r.push(H)}}if(o){if(!U&&P&&!P.warned&&!(P.effect.f&2097152)&&!P.effect_deps.has(e)){P.warned=!0,Pe(e.label);var i=Ze(`traced at`);i&&console.warn(i)}Jt.delete(e)}if(lr&&cn.has(e))return cn.get(e);if(t){var a=e;if(lr){var s=a.v;return(!(a.f&1024)&&a.reactions!==null||Er(a))&&(s=nn(a)),cn.set(a,s),s}var c=(a.f&512)==0&&!U&&H!==null&&(cr||(H.f&512)!=0),u=(a.f&ee)==0;vr(a)&&(c&&(a.f|=512),rn(a)),c&&!u&&(on(a),Tr(a))}if(N?.has(e))return N.get(e);if(e.f&8388608)throw e.v;return e.v}function Tr(e){if(e.f|=512,e.deps!==null)for(let t of e.deps)(t.reactions??=[]).push(e),t.f&2&&!(t.f&512)&&(on(t),Tr(t))}function Er(e){if(e.v===T)return!0;if(e.deps===null)return!1;for(let t of e.deps)if(cn.has(t)||t.f&2&&Er(t))return!0;return!1}function Dr(e){var t=U;try{return U=!0,e()}finally{U=t}}[...`allowfullscreen.async.autofocus.autoplay.checked.controls.default.disabled.formnovalidate.indeterminate.inert.ismap.loop.multiple.muted.nomodule.novalidate.open.playsinline.readonly.required.reversed.seamless.selected.webkitdirectory.defer.disablepictureinpicture.disableremoteplayback`.split(`.`)];const Or=[`touchstart`,`touchmove`];function kr(e){return Or.includes(e)}var Ar=new Map;function jr(e,t){var n=Ar.get(e);n||(n=new Set,Ar.set(e,n)),n.add(t)}const Mr=Symbol(`events`),Nr=new Set,Pr=new Set;function Fr(e,t,n,r={}){function i(e){if(r.capture||Br.call(t,e),!e.cancelBubble)return Ln(()=>n?.call(this,e))}return e.startsWith(`pointer`)||e.startsWith(`touch`)||e===`wheel`?lt(()=>{t.addEventListener(e,i,r)}):t.addEventListener(e,i,r),i}function Ir(e,t,n,r,i){var a={capture:r,passive:i},o=Fr(e,t,n,a);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&Hn(()=>{t.removeEventListener(e,o,a)})}function Lr(e,t,n){(t[Mr]??={})[e]=n}function Rr(e){for(var t=0;t<e.length;t++)Nr.add(e[t]);for(var n of Pr)n(e)}let zr=null;function Br(e){var t=this,n=t.ownerDocument,r=e.type,i=e.composedPath?.()||[],a=i[0]||e.target;zr=e;var o=0,s=zr===e&&e[Mr];if(s){var c=i.indexOf(s);if(c!==-1&&(t===document||t===window)){e[Mr]=t;return}var l=i.indexOf(t);if(l===-1)return;c<=l&&(o=c)}if(a=i[o]||e.target,a!==t){d(e,`currentTarget`,{configurable:!0,get(){return a||n}});var u=H,f=G;W(null),K(null);try{for(var p,m=[];a!==null;){var h=a.assignedSlot||a.parentNode||a.host||null;try{var g=a[Mr]?.[r];g!=null&&(!a.disabled||e.target===a)&&g.call(a,e)}catch(e){p?m.push(e):p=e}if(e.cancelBubble||h===t||h===null)break;a=h}if(p){for(let e of m)queueMicrotask(()=>{throw e});throw p}}finally{e[Mr]=t,delete e.currentTarget,W(u),K(f)}}}const Vr=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy(`svelte-trusted-html`,{createHTML:e=>e});function Hr(e){return Vr?.createHTML(e)??e}function Ur(e){var t=Fn(`template`);return t.innerHTML=Hr(e.replaceAll(`<!>`,`<!---->`)),t.content}function Wr(e,t){var n=G;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function Q(e,t){var n=(t&1)!=0,r=(t&2)!=0,i,a=!e.startsWith(`<!>`);return()=>{if(E)return Wr(D,null),D;i===void 0&&(i=Ur(a?e:`<!>`+e),n||(i=An(i)));var t=r||En?document.importNode(i,!0):i.cloneNode(!0);if(n){var o=An(t),s=t.lastChild;Wr(o,s)}else Wr(t,t);return t}}function $(e,t){if(E){var n=G;(!(n.f&32768)||n.nodes.end===null)&&(n.nodes.end=D),He();return}e!==null&&e.before(t)}function Gr(e,t){var n=t==null?``:typeof t==`object`?`${t}`:t;n!==(e[pe]??=e.nodeValue)&&(e[pe]=n,e.nodeValue=`${n}`)}function Kr(e,t){return Jr(e,t)}const qr=new Map;function Jr(e,{target:t,anchor:n,props:r={},events:i,context:a,intro:o=!0,transformError:s}){kn();var c=void 0,l=Gn(()=>{var o=n??t.appendChild(L());Vt(o,{pending:()=>{}},t=>{it({});var n=A;if(a&&(n.c=a),i&&(r.$$events=i),E&&Wr(t,null),c=e(t,r)||{},E&&(G.nodes.end=D,D===null||D.nodeType!==8||D.data!==`]`))throw Re(),Ae;at()},s);var l=new Set,d=e=>{for(var n=0;n<e.length;n++){var r=e[n];if(!l.has(r)){l.add(r);var i=kr(r);for(let e of[t,document]){var a=qr.get(e);a===void 0&&(a=new Map,qr.set(e,a));var o=a.get(r);o===void 0?(e.addEventListener(r,Br,{passive:i}),a.set(r,1)):a.set(r,o+1)}}}};return d(u(Nr)),Pr.add(d),()=>{for(var e of l)for(let n of[t,document]){var r=qr.get(n),i=r.get(e);--i==0?(n.removeEventListener(e,Br),r.delete(e),r.size===0&&qr.delete(n)):r.set(e,i)}Pr.delete(d),o!==n&&o.parentNode?.removeChild(o)}});return Yr.set(c,l),c}let Yr=new WeakMap;var Xr=class{anchor;#e=new Map;#t=new Map;#n=new Map;#r=new Set;#i=!0;constructor(e,t=!0){this.anchor=e,this.#i=t}#a=e=>{if(this.#e.has(e)){var t=this.#e.get(e),n=this.#t.get(t);if(n)ar(n),this.#r.delete(t);else{var r=this.#n.get(t);r&&(this.#t.set(t,r.effect),this.#n.delete(t),o&&(r.fragment.lastChild[me]=this.anchor),r.fragment.lastChild.remove(),this.anchor.before(r.fragment),n=r.effect)}for(let[t,n]of this.#e){if(this.#e.delete(t),t===e)break;let r=this.#n.get(n);r&&(V(r.effect),this.#n.delete(n))}for(let[e,r]of this.#t){if(e===t||this.#r.has(e))continue;let i=()=>{if(Array.from(this.#e.values()).includes(e)){var t=document.createDocumentFragment();sr(r,t),t.append(L()),this.#n.set(e,{effect:r,fragment:t})}else V(r);this.#r.delete(e),this.#t.delete(e)};this.#i||!n?(this.#r.add(e),rr(r,i,!1)):i()}}};#o=e=>{this.#e.delete(e);let t=Array.from(this.#e.values());for(let[e,n]of this.#n)t.includes(e)||(V(n.effect),this.#n.delete(e))};ensure(e,t){var n=M,r=Pn();if(t&&!this.#t.has(e)&&!this.#n.has(e))if(r){var i=document.createDocumentFragment(),a=L();i.append(a),this.#n.set(e,{effect:B(()=>t(a)),fragment:i})}else this.#t.set(e,B(()=>t(this.anchor)));if(this.#e.set(n,e),r){for(let[t,r]of this.#t)t===e?n.unskip_effect(r):n.skip_effect(r);for(let[t,r]of this.#n)t===e?n.unskip_effect(r.effect):n.skip_effect(r.effect);n.oncommit(this.#a),n.ondiscard(this.#o)}else E&&(this.anchor=D),this.#a(n)}};function Zr(e,t,n=!1){var r;E&&(r=D,He());var i=new Xr(e),a=n?ne:0;function o(e,t){if(E){var n=Ge(r);if(e!==parseInt(n.substring(1))){var a=We();O(a),i.anchor=a,Ve(!1),i.ensure(e,t),Ve(!0);return}}i.ensure(e,t)}Xn(()=>{var e=!1;t((t,n=0)=>{e=!0,o(n,t)}),e||o(-1,null)},a)}function Qr(e,t){return t}function $r(e,t,n){for(var r=[],i=t.length,a,o=t.length,s=0;s<i;s++){let n=t[s];rr(n,()=>{if(a){if(a.pending.delete(n),a.done.add(n),a.pending.size===0){var t=e.outrogroups;ei(e,u(a.done)),t.delete(a),t.size===0&&(e.outrogroups=null)}}else --o},!1)}if(o===0){var c=r.length===0&&n!==null;if(c){var l=n,d=l.parentNode;Nn(d),d.append(l),e.items.clear()}ei(e,t,!c)}else a={pending:new Set(t),done:new Set},(e.outrogroups??=new Set).add(a)}function ei(e,t,n=!0){var r;if(e.pending.size>0){r=new Set;for(let t of e.pending.values())for(let n of t)r.add(e.items.get(n).e)}for(var i=0;i<t.length;i++){var a=t[i];r?.has(a)?(a.f|=re,sr(a,document.createDocumentFragment())):V(t[i],n)}}var ti;function ni(e,t,n,r,i,a=null){var c=e,l=new Map;if(t&4){var d=e;c=E?O(An(d)):d.appendChild(L())}E&&He();var f=null,p=$t(()=>{var e=n();return s(e)?e:e==null?[]:u(e)});o&&Ye(p,`{#each ...}`);var m,h=new Map,g=!0;function _(e){y.effect.f&16384||(y.pending.delete(e),y.fallback=f,ii(y,m,c,t,r),f!==null&&(m.length===0?f.f&33554432?(f.f^=re,oi(f,null,c)):ar(f):rr(f,()=>{f=null})))}function v(e){y.pending.delete(e)}var y={effect:Xn(()=>{m=Z(p);var e=m.length;let s=!1;E&&Ge(c)===`[!`!=(e===0)&&(c=We(),O(c),Ve(!1),s=!0);for(var u=new Set,d=M,y=Pn(),b=0;b<e;b+=1){E&&D.nodeType===8&&D.data===`]`&&(c=D,s=!0,Ve(!1));var x=m[b],S=r(x,b);if(o){var C=r(x,b);S!==C&&be(String(b),String(S),String(C))}var w=g?null:l.get(S);w?(w.v&&mn(w.v,x),w.i&&mn(w.i,b),y&&d.unskip_effect(w.e)):(w=ai(l,g?c:ti??=L(),x,S,b,i,t,n),g||(w.e.f|=re),l.set(S,w)),u.add(S)}if(e===0&&a&&!f&&(g?f=B(()=>a(c)):(f=B(()=>a(ti??=L())),f.f|=re)),e>u.size&&(o?ci(m,r):ye(``,``,``)),E&&e>0&&O(We()),!g)if(h.set(d,u),y){for(let[e,t]of l)u.has(e)||d.skip_effect(t.e);d.oncommit(_),d.ondiscard(v)}else _(d);s&&Ve(!0),Z(p)}),flags:t,items:l,pending:h,outrogroups:null,fallback:f};g=!1,E&&(c=D)}function ri(e){for(;e!==null&&!(e.f&32);)e=e.next;return e}function ii(e,t,n,r,i){var a=(r&8)!=0,o=t.length,s=e.items,c=ri(e.effect.first),l,d=null,f,p=[],m=[],h,g,_,v;if(a)for(v=0;v<o;v+=1)h=t[v],g=i(h,v),_=s.get(g).e,_.f&33554432||(_.nodes?.a?.measure(),(f??=new Set).add(_));for(v=0;v<o;v+=1){if(h=t[v],g=i(h,v),_=s.get(g).e,e.outrogroups!==null)for(let t of e.outrogroups)t.pending.delete(_),t.done.delete(_);if(_.f&8192&&(ar(_),a&&(_.nodes?.a?.unfix(),(f??=new Set).delete(_))),_.f&33554432)if(_.f^=re,_===c)oi(_,null,n);else{var y=d?d.next:c;_===e.effect.last&&(e.effect.last=_.prev),_.prev&&(_.prev.next=_.next),_.next&&(_.next.prev=_.prev),si(e,d,_),si(e,_,y),oi(_,y,n),d=_,p=[],m=[],c=ri(d.next);continue}if(_!==c){if(l!==void 0&&l.has(_)){if(p.length<m.length){var b=m[0],x;d=b.prev;var S=p[0],C=p[p.length-1];for(x=0;x<p.length;x+=1)oi(p[x],b,n);for(x=0;x<m.length;x+=1)l.delete(m[x]);si(e,S.prev,C.next),si(e,d,S),si(e,C,b),c=b,d=C,--v,p=[],m=[]}else l.delete(_),oi(_,c,n),si(e,_.prev,_.next),si(e,_,d===null?e.effect.first:d.next),si(e,d,_),d=_;continue}for(p=[],m=[];c!==null&&c!==_;)(l??=new Set).add(c),m.push(c),c=ri(c.next);if(c===null)continue}_.f&33554432||p.push(_),d=_,c=ri(_.next)}if(e.outrogroups!==null){for(let t of e.outrogroups)t.pending.size===0&&(ei(e,u(t.done)),e.outrogroups?.delete(t));e.outrogroups.size===0&&(e.outrogroups=null)}if(c!==null||l!==void 0){var w=[];if(l!==void 0)for(_ of l)_.f&8192||w.push(_);for(;c!==null;)!(c.f&8192)&&c!==e.fallback&&w.push(c),c=ri(c.next);var ee=w.length;if(ee>0){var te=r&4&&o===0?n:null;if(a){for(v=0;v<ee;v+=1)w[v].nodes?.a?.measure();for(v=0;v<ee;v+=1)w[v].nodes?.a?.fix()}$r(e,w,te)}}a&&lt(()=>{if(f!==void 0)for(_ of f)_.nodes?.a?.apply()})}function ai(e,t,n,r,i,a,s,c){var l=s&1?s&16?fn(n):pn(n,!1,!1):null,u=s&2?fn(i):null;return o&&l&&(l.trace=()=>{c()[u?.v??i]}),{v:l,i:u,e:B(()=>(a(t,l??n,u??i,c),()=>{e.delete(r)}))}}function oi(e,t,n){if(e.nodes)for(var r=e.nodes.start,i=e.nodes.end,a=t&&!(t.f&33554432)?t.nodes.start:n;r!==null;){var o=jn(r);if(a.before(r),r===i)return;r=o}}function si(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}function ci(e,t){let n=new Map,r=e.length;for(let i=0;i<r;i++){let r=t(e[i],i);if(n.has(r)){let e=String(n.get(r)),t=String(i),a=String(r);a.startsWith(`[object `)&&(a=null),ye(e,t,a)}n.set(r,i)}}function li(e,t){Kn(()=>{var n=e.getRootNode(),r=n.host?n:n.head??n.ownerDocument.head;if(!r.querySelector(`#`+t.hash)){let e=Fn(`style`);e.id=t.hash,e.textContent=t.code,r.appendChild(e),o&&jr(t.hash,e)}})}function ui(e,t){var n=void 0,r;Zn(()=>{n!==(n=t())&&(r&&=(V(r),null),n&&(r=B(()=>{Kn(()=>n(e))})))})}function di(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`)if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(n=di(e[t]))&&(r&&(r+=` `),r+=n)}else for(n in e)e[n]&&(r&&(r+=` `),r+=n);return r}function fi(){for(var e,t,n=0,r=``,i=arguments.length;n<i;n++)(e=arguments[n])&&(t=di(e))&&(r&&(r+=` `),r+=t);return r}function pi(e){return typeof e==`object`?fi(e):e??``}const mi=[...`
744
- \r\f\xA0\v`];function hi(e,t,n){var r=e==null?``:``+e;if(t&&(r=r?r+` `+t:t),n){for(var i of Object.keys(n))if(n[i])r=r?r+` `+i:i;else if(r.length)for(var a=i.length,o=0;(o=r.indexOf(i,o))>=0;){var s=o+a;(o===0||mi.includes(r[o-1]))&&(s===r.length||mi.includes(r[s]))?r=(o===0?``:r.substring(0,o))+r.substring(s+1):o=s}}return r===``?null:r}function gi(e,t,n,r,i,a){var o=e[de];if(E||o!==n||o===void 0){var s=hi(n,r,a);(!E||s!==e.getAttribute(`class`))&&(s==null?e.removeAttribute(`class`):t?e.className=s:e.setAttribute(`class`,s)),e[de]=n}else if(a&&i!==a)for(var c in a){var l=!!a[c];(i==null||l!==!!i[c])&&e.classList.toggle(c,l)}return a}const _i=Symbol(`is custom element`),vi=Symbol(`is html`),yi=ge?`link`:`LINK`;function bi(e,t,n,r){var i=xi(e);if(E&&(i[t]=e.getAttribute(t),t===`src`||t===`srcset`||t===`href`&&e.nodeName===yi)){r||wi(e,t,n??``);return}i[t]!==(i[t]=n)&&(t===`loading`&&(e[ce]=n),n==null?e.removeAttribute(t):typeof n!=`string`&&Ci(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function xi(e){return e[ue]??={[_i]:e.nodeName.includes(`-`),[vi]:e.namespaceURI===`http://www.w3.org/1999/xhtml`}}var Si=new Map;function Ci(e){var t=e.getAttribute(`is`)||e.nodeName,n=Si.get(t);if(n)return n;Si.set(t,n=[]);for(var r,i=e,a=Element.prototype;a!==i;){for(var o in r=p(i),r)r[o].set&&o!==`innerHTML`&&o!==`textContent`&&o!==`innerText`&&n.push(o);i=g(i)}return n}function wi(e,t,n){o&&(t===`srcset`&&Di(e,n)||Ti(e.getAttribute(t)??``,n)||Le(t,e.outerHTML.replace(e.innerHTML,e.innerHTML&&`...`),String(n)))}function Ti(e,t){return e===t?!0:new URL(e,document.baseURI).href===new URL(t,document.baseURI).href}function Ei(e){return e.split(`,`).map(e=>e.trim().split(` `).filter(Boolean))}function Di(e,t){var n=Ei(e.srcset),r=Ei(t);return r.length===n.length&&r.every(([e,t],r)=>t===n[r][1]&&(Ti(n[r][0],e)||Ti(e,n[r][0])))}function Oi(e,t){return e===t||e?.[se]===t}function ki(e={},t,n,r){var i=A.r,a=G;return Kn(()=>{var o,s;return Jn(()=>{o=s,s=r?.()||[],Dr(()=>{Oi(n(...s),e)||(t(e,...s),o&&Oi(n(...o),e)&&t(null,...o))})}),()=>{let r=a;for(;r!==i&&r.parent!==null&&r.parent.f&33554432;)r=r.parent;let o=()=>{s&&Oi(n(...s),e)&&t(null,...s)},c=r.teardown;r.teardown=()=>{o(),c?.()}}}),e}if(o){function e(e){if(!(e in globalThis)){let t;Object.defineProperty(globalThis,e,{configurable:!0,get:()=>{if(t!==void 0)return t;Te(e)},set:e=>{t=e}})}}e(`$state`),e(`$effect`),e(`$derived`),e(`$inspect`),e(`$props`),e(`$bindable`)}typeof window<`u`&&((window.__svelte??={}).v??=new Set).add(`5`);var Ai=`data:image/webp;base64,UklGRhhgAABXRUJQVlA4WAoAAAASAAAAKwEA4wAAQU5JTQYAAAD/////AABBTk1G/gcAAAAAAAAAACsBAOMAACgAAAJWUDhM5QcAAC8rwTgQh6AokqQ2eDkfCOCF2ki2kq+4S0wH9F8VIbHiSJKS88Od/OPkxfwHALht/fdQKyYB0yC0im3ECnpRnu/1S9JDTI67mAn8yuDbtu2qtW3bcjcdddxa627j/z/XBkkl6ca45xzRf1mQJDlWk7MEJf8coDey34//lTDpTpV9o+rjNtV9Yt8n9n1i3yf2fWLfJ/Z9Yt8n9n1i3yf2fWLfJ/Z9Yt8n9o3i/0Aj3SfSfSLdJ9LdsOj6/Zkmll2NYtHVLJZcDWPBVY67YVeu6qKpBdXZ79A0tJw6+x2eZhZTZ7+RWb09M3+biZXblUdFA8uoEi5wi6gyMmBLqBpsrPSZlV2HjlU+X7dr8bHCLZBdr3EkL4gd0STSyjbWdkyDuN4B9oLYPDtYZ/aC2G3YgTqzF8QmoJEysyA2IxIVtTA2JRaFWhibE41MLYxNisepFsYmHcRRk5IW8Ns/Kuo74ZKa1CTZpOM6sfpoUJNkR5UrHNIJXpNkx5UqHLoOXLNkQr7CIWWgtRS5CofyA9ZiXCscUgFWy3GucKg8UE3WD4QOwHNv4U9N1g8R9J1wuQpQdaZWBF0nVpXCVWtiRVB+6qtasED7JIqg8tQVacsUaNfInCmC6qZcpM2+FGjXyGxfiqD6yVdQsT5OBdo1MvvjVATF5lphhTr5FGjXyOyTTxEUn28BsnXxJ2jXyDK310E4BNieiEw1sGtkyTl21PGdcBlyqQZ2jazmLog4rhMrzKka2DWyuoerXevIT32BPtWCRpZcy65xlKeuSN4mKznCLjnqplwke7KSo+yco37yRbInK5lgnx2xuRbJnqxkiv3jVMH4FsmerGTQD4nYtW4ke7KSQbn1YWyDSLInKxmUXR+Gdq0ke7KSQdH14XWHAfpUA4+hJYOi68Prtoe0PRt4aGgJFF0fXvdipM2QUk1SdH143SCSNmPyNUfxrdhl10raDMoV6TGyH8QcT5M2g3Zdi/Todg7udXyDSNoM2j9zrqxxy8a+TXjXStoMOt/m3yoYtggHsWzdTNoMCvxi9qBFOIhl62bSZkCuAoYswkEsWzeToGcQ1woZsDKCFY7NpKch5woarrJCFY7NpKcx3wobrAoCFY7NJPZZvABDVVF1hWMz6WlQcgtd/74tALJsfZr0dEi5IOOUJAUhy9anSU8HlQozUklSALJsfZr0dFi+QGOVJFVClq30AhGQK1T3FVp2xXYYNbtWErTnuRas/4rcA9FtT2nXStoMOReu94rdA/G9WG7XStqM+VYDfVf0HiA2iOddK2kzaC5/yOdHL/M0odGudSYOm3msErtWRpNd60wcxCLVyGXbTGmwa52Jg1ikGrlsmzn4rnUmDmKRauSybSbBu1bSSwNU/B4wctk2R9Q04lox5erdQSxSjVy2zaSnIeeKKlXvDmKRauSybSY9DdoVl6/eHcQi1chl20x6GrSLkKveHb3MZtLToGTGtXqHPFgF7VpJT4OSKefqHfJOUNCulfQ0KJnzrd4hH1wF7VpJT4OSSS/1DvlJm1rvWpFptGutqd4hTwY63LUalBxTrt4hTzJ73LWCkqNK1TtkedHjrhWUHJev3iFLsR53raBkQq56x/zm0Q53raBdjGv17y8zvym5s10raBflXGM4BfARo6NdK2gX51ujuATwM5FOdq2gXaSXxpEJ4Ge4HexaCY12rSPJBvDMqemuNZnRZNc6lkIAz8ib7VqTKQ12raMpBrDpabJrTebgu9ax2chOzPiuNRmUkF1rq+qT3d2uNRmUzGhT/bKBIiWDkiktqm92sEjJoGQOX/2zA0VKBiWT6BqDXVmkZFByROsah11RpD8ESo5pW2OxCxVTLlByVMsaj52pqFKBkuPa1ZjsU8Xli5QIrWpc9kbIVXfa1PRcq0MtaoLO1SW+puhbnaKrdz978Yd60bgGYPdgVz+a1hiIAKonDWsURISrL81qHEQEC7QzGtVIiAgVaBekSY2FiECBdmEa1GiIqC7QLhBe4yGiskC7SPTnjIiIqgLtCmlbgyKi4pYF7QpqWcMioni7gnaFtauBEVG4VUG7AK1qaERkb1OQd0SbmhW7JBlkQ1rUzNg5ySAbw9fs2GfJIBtE1xQQsSWDbNKbrVlyAtmk92fAWhCb9D4PVQtihxXqgqkFsQH54k56TMU/OvEyIlfcSZ4NuwMvQS5VFKsJ+URjL5HeVROoWbEbeon0rp1Q+TEldiMvkd6BCdWs2A28FFJREYGaGRv2EukdndqaHRv0EukNTFXNkA15ifRmplyzZANeQmQKUqqZsoNeIr3BydZs2QEvkd7sXP8/U5NDRL5A3+LPQ9NDRK5IUgMPTRAR1yJJLWiKiDgXSefhX6aIiG+RlBm65oiIl0jKD1rLYJJUANaKqWKoWjHVDVIrptpBajXR8kWK13yjveBP+4K1omC+N/788mPi005yXG157kdtQL/RtKrmT+Jxv325otZwxEJ/U3yp1nHESQY9lK+1HDGSQafrcq31+Om4nwl0vTLnqjkLUI5iGZS9Nr+qZ/7KUSrQQwhPXznyBTpdHejVYiJXoIcEnsXEtUAPiT1riXOBHqJZS4lvgULXJGIlYYMe0rKPcA+FLe4I9ZCWf4ShrsTySAhJzc+6oqZAkVpWVBR6qmthUSz61NXSolCtjxY2RVJzWtxkqd3ka4HR/nd1Z2qF8aHW86l/G4wAAEFOTUbwBwAAAQAAAQAAHQEA4AAAKAAAAlZQOEzYBwAALx0BOBCPoKSRJOZ7Qccfvn+Np0NRI0nK8h7D/zycf1kkQHHbSMoyHLyo/zpJmv/AHH9PTleKI7Jltx2tdjFFBpGnqvXdWKofighpM0T8jcG6tu1h2zaRQxO1lFabzv9oJRL4vgcgyCu/3jei/xLcNpIkiZEFCLn3vR3b+4HX35f5vjYlXZxHV6Y+Ls6ji/PoqtTexXl0cR5dkaq7OI8uzqOrUW0X59HFeXQlKubiPLoMdWl8Xxvf18b3XypX53O5Nv6K/O1cF+fRxXkUq0vjb8oKW6f7/M++MLydi8K1uR7cnCtgrVf7nL7VrlYoOjiXeqtUOHBnUhu7SgXsPGpnU+lAnUVV/CchATqHaugd3y1ncNOEBfVOoelXBBint1Mqa0zP+D4VxVEd4ztk4hWGH2f/DWTaldErvqMmXTmd4jtsyjdZXaJ8nwUb0CGKz4LdjZSqs2B3JYXrLNjdKVZZvz3PAnFR/wbEH8+yUMmoFuD32xxvYOnYVUuwPiZYsB/lSe9qiz+eXiVFSsRxiYg/nlylRQoIOyZQe1MrQLvyYZvxe4YK6ycwwaL8Pg3VAsJOadR5qBQQNubrTOwKCJvzlePp+snPtgCVyvFEPIx42HnSatBXjj0Pj/cw5XzcJMi2cvwxixvCozqpQn0leWMKhXi0Jl6srxz70IprhXhEJlasL+f40Mp79oV4RKddsCXJR7b9btkW4pGZesEW5dgHtv+O+RTikZ19pbVvknxgte+bHwmgBzGfG0Cj0nxcxQ1SQOBrlreIUa1piX2fSwnaT7YolZqW4igpSPXJFGdX01KcoQi1J1qkTU1LcZLUothEivWuaSkGSDWKT6tY0jItxRBpQ7mp3rCkeSkGScTGaFswaVqKzYIWaotg0rQUw5iFmm6CSdNSDHvYxLkJJmFeh1MMYxZqugkmYV7SLB7uFUpw28iSxHnlSEfHLdRYy430ytHRYQs12CLKtnJ0cNhCDbYI9cqRjg1ZqH0Ktoj0rpxx60fYHWC5wRaxXkkDF4JZqHkRbBFrddWRCoEt1Fj5v1sEKmncmwR+oQZblNesrFErh16owSRCowIOUVnJhVqzckLNqFbaoAXIbtSqBbuJUqmg4aspXkAsgt3E2d3kjfq+FgCzUPMi1k0ifYow8Ht+krb7NGChxroJtjpn1Gq8nI/DFmqwm2DFiCGrETHYQg12U1q7GCNWINqwhRrsJkCrCENW6lRf/QNxE0xC1AsyYOUivRlpbBuTIg2p3UAGrGzstkZAdFioYXZ1SMg6yGXQhRppU0eEbIPsURdqrHcd0Y8kIEZdqMHWckTNbVDmD0IgFsEWwVYf0Q+zLWMWal4EW8Rabc5oBYQk4iyCLWKtRo1VQDALNXdYqLFWw0aqfBx7oaZ9we4a5yYfR1+oaVtZgRrCwzZBAy7UdBNsdV6zPoZZqBE/H/NuC+wm2GrWfT8DvYpL/l4GxE0wfqFmRq3G0F4HJf4cBOImGL9Qw+xrDLF1UPDvUEAMv1ADbWsMzNvAJrFQQ31qCMg2SDr0Qq1WsLuGkN8GEa/6awVbhNlXUqTG8A+yLQP2aduCLQJtK619MwzgMAs13wTrsFADNGoo2WAWal4E4xdqjGoNx+67UPPwCzVKpYaTiPY+7SgLtWZxdjUse0ILNa0mbWpo9ugLNRXBVrPu0vBs4oVtvWDFlErlROoYjCxFsP8g2i7Wame16zBsaCW5CNC6Ya0GtGpsHYJ6I261YKsR9TocO1uUSsFs2J1+RmFnirMrmI3pVQOxo0XaFMxm3fkajB0p1rtgNqpHDchuFexXiRhoodahBuVqsX5JMd0WagPUuOzdTV6rYHZa9xqbvQhRL5gN63AzCbWC2YieNQ/7Gtqdr5nY1qgOXNKfUXxqXH1qHPYQ1l8aWY8aSj6Q8tg61FiAQ9TYOtwMJx/5Gk7nGlE+sjW0O19jykeuWKshHWtU+cgUazWmW40rH/Eb1mpQpxpZPoIFWw3rcHMsdloxbDWMrwNyTjFsdc4AdUx2XDFsNevO13HZMcWs1c7rXMdmtxWzbETXOj67Kv36PdKQjjUH9k4xrBjW4WYe7LdiWDGoT02Gi2HFrDtfk1fMegqvuUt/3RwoCa65K4Y9t0PWMf1/GMWwZ2WwOix7CPfCqBarvHRodnd3UWqFnuLjs7u6i/WMTLbmwO7mLtYzOKmagHxkN/Ksp6ISNRfG3ZUTK/aU2jMLNuqurEixp34zETbmrrxmsUq1ZsNG3AV7EhOuGbHT7mI9qYnVrNgpd7Ge4ARqFvLR3MhztkVq1uzYEXfBnvTUayKAUyuYnvxUbuYiH/uCST1sazrysS2YpD7nXROSj0+xVBncSzPmu1iqD10nSGpg6wQpMGCdIMWGq4nFKKQgqqYe2NPpvOY4vWX/IpauSUZPxVnJOoOA/n4l/vxrvyYbPUBrAwVrwiRaMUWhmvQRqRgUqIkfUYpRatxMnv4A/hSzXlKtWmfKnPXHsJfe9hU4U9aKdsH235hPnYZWtApW/db86/CZftSL9ZIQ1uyjVqyXdGqnFvsbVuybkjH32BTsJZ3g0e68C/YSzpp7wHLfjNMh4V7SyR6RXlLeGR1RoG/CKZEIki7EiRTopI5SxE6mTiSa1f/oJCZEPSZWJxOd31cYqdOJ3m8sbNYJRfc3FlbrjM6bNABdmJlnCUFOTUYYCAAAAAAAAAAAFQEA4wAAKAAAAlZQOEz/BwAALxXBOBCPoKiRJGX5mF/k3+X5UNtIUvP+H28yCqD/5oiR2kaSmvf/uAg6oP/yiOz8R1v9u4mwMQlfH3O1dgjWUCcayr1GzrbH4NcB8NU/UVsQgMG3bdt1I8m25eZGEmGUh6eZ/v9rbwBGGyDIjKfeI/pPUZIk2W2Tuy9UGp8gdACrhx+4/xeyPi/KdU34mvA14WvC14SvCV8TviZ8Tfia8DXha8LXhK8JXxO+JnxN+JrwNeFrwp0uyvUfxUwX5dJFuXRRLl2USxfl0kW5dFEuXZRLF+VS/fo/3s8l8fNYvHOsZ1wKP/V1Gfy013nbGtWxz9n2WPXqC8ypVMVPbEFOpCp+4gtxGlXxrx1nn6Ktvv61mTi/N6WbO2QNP+vmXx3S4vNElK1LVnyehmJ3YiNwgD7xCkgZfrZNuyJS4rPDpCsmIz57THlCs1P2fAuQE6VttpXG0XKHuVYmO1Q9fs90ks3uri6/Pc0ioVF7AM3Lk6xhuLvs5uUpFi0a1aprXp7ghMdExwNoXp5d4b4ei4iuB9C8PPWye4qIzV2al2c2wX1VV6xifp+Nr+YKTIJ+9/G8fXWtvgr73cfT9tW92hX30cez9hVa9QJ89PGcfYVXZUL46OPJuJlxs8OkZzE++vjFRMqGCtnLBvno41fTqCemiFiUykdXGhPErbUik1w+uGLXinHrWZ2VzcdW/PBejFvn6ql0PrL3r8VrMW6B1Src2uYDK6740g1xi67aBLdqItovAgG6AeulCO3JRPS9NA6SJCIWMRo1EYE3DAGSRMQqSrUmIvg2qo/qKzQRp1ITAby5bFN7dRfqbTIRzFvuBvWtroI9ayLAg4gK9a9m4VZNBHw886Tgqk5w0kTkHFpF91vhJE1EMY45x9KjcFKKA59xdv2kBOLxRcVJOQ5y7gv9i4hYxJPi7se+gFePRCzCSQLc+2gKbtBB1iKchLj30QSED2xq5xM4iXHvo+NDDmxezid46wK599Hh3aCDrEW4VWId5/qivoUOshbhViUbdyIhKgc28SMb3Kps4xajemITLNwqpRu2GJKQvQq3Cre5bdRiCDrIWoVbhdvcYdAJovvApucYC7cKt7nHkMUIHdg0Coe9oGxU1bjX7YtAnmPhFmGqkz5j3tsBuEEHWatwi3Cb24a8et8w9f1hLLGXVbhFuM3dhqvO3f0H1OFzLBz/RvVZ/Yar3gj8oX3oHAu3CFc2B4xW/RG6kaH7HAu3CFccMtgkErF7O/qOsXCLAO2KGaqCEb3fpXmOhZOEaFXMSBXf8XuAqudYuFWU+uQQvpjjmJf7oohYhFvFqdQhQPexWNAzlvEzcBXprQ4BupHF1DO2Coef2LzUIUA3spg7x8KtwhUbMcSE2NQTBv9YyzvHogxQRFDP2CpY1jkWJ72IoJ6xVTilnGORkosI7hwLtwi32UdA3chCPWGrhFuE23wI0I0sgp4wr+Itwm3G7Up+QwF8nzjHwi0S6nUS11EZbjayuY+U4RbhNiOakwTUB6PAj5ThFuHKBqlXBuhGFtlG9iLcIuGKMbXKAN3IIu4jZbhFuGKD3ivDzUY295GyoL4LV8x6nWT4hzmOAT9ShluFK6Y9Kguybccj6xYgXDFuVyKb+AE44jnWKhzxarmnktnEL1bjnWPhigntSbJIgB8pw63CFTMalS6wuY+U4VYJt5lSrRH0BveRMlzOkQ2nUoOxiXdW+edYuM2ot8mAbOBdeP0YC1eM2wx71qhs7iNluGLjNuN2jczQR8pwxbgt5RxrMHxk/LJUjNsM6JgcgB0rXjEu5RzrKOz+whUbZyecYx2JOwtXjLONqdXB2B0TXDHOJiVO8tn14v0qOJuVVaRgvBful4SzaTk1EL8UoVk427Q9pcbiVYxG4WxczuSgqhOcTciv43qvBGZkV4o/o3it8e0plcUew7PGlzPJ5BFsvzS2tMoVDqY8vKTKFg6kxrenVL5wADW+nMkIwhGeDCm/xhDfscJtlOwaRjgihduM21NqIOHoL9xmXM5kKOHoneA2o9JqeI4qxm02LKmOwI4oxm3G5UyOwu5VjNscNkQNKhyNLxxuM2CAOhy3FONsI9LriOya4qiupiRPjsp+VYwr5mTWodnP351wxaS8OryCKzYrq6arGJczma5i3LcT6iD+NxDk/66jbNN1HNIginHf7wutY5EGsBdIV9ng5HikZLsw1aJ38UEp0S7hvtuLqOOSkuzCfXeteB2blGAX7rt3BSfHJ8F24b4DK1CTINAuhZFlE3VwEmQX7ju8wjUBEmAXo1X0Lo2aBCloF6VauNbkqMLRcaCL+8ZWb82GOu3CfaOr6989IVKHXbBn4VqTgwtHrXDf/GrU8YXjfYKTlLBrNTt6sQsnKcd7TZDkXThJaftlMkk7TlLeftRZker4OinqWPi/ZyoxDvUt9O+fzh6E1Ams6QZ35e371Fau6MtLYjK3yAO8D4nWBCNHcaK/d818Uy+kxe+/mieJRd5e2DfRXLc4xaSemvAWA79luVWTprg/xbh7vaa9/zjGxj0fSm3S3HNVj3bh3h5Lpab+TT1ahas9lr9S75511Ce4u6rOZlcK134kEXOOt8LdJXDPOV4muLv6BPacw7jAozgPynCXznCLdlfQmWyRgIdwKiTI8xGc7SZIlMA+g+irAfYJRHelj+YfubeHRWr+kXwvVG+dws6+F6pvMv+okbJ01GlE+u1h1TqXZWWv97oa631yOfb0SgBBTk1GugcAAAEAAAAAAAsBAOMAACgAAAJWUDhMoQcAAC8LwTgQh6CokSRleY/pe+ff5Z4ORZEkNZfvyMEDhX9X/DGgMJIk4/C2P/88Nf+xVn+PJayYGF8/c+FsK1tEHWlItRnxlHeTtA5EsPIW3zP4tm2rbm3btlqzLnQ3tX7x//+tLUEpqQBWGNeSI/pPwW0kSZLEiAQEn2Ozas/MjRe8/hWxlltx6U5c/6qwvN2KS7fi0q24dCsu3YPrXxWWO2G5E5Y7YbkTljth+VeFpelWXLoVl27FpVtx/WtgpltxyXD9q8K/Dp4GdSsu3YpLt+JS9fr3v7/zPsjPugeysr6/bKzvLg3ru9rVmFj297R/VrWsgfgKVZPOBfgCVfFnAstt+pOKPz8rZi81c6+WqFiqZl5G/C9a6uY9sSDjqygyQsP8vnnKZRYSS8uEywf/RUvTdCc+/HBpm2t5RUTbTMuvh5jnBBC0S91jkgWJiKK6h6ZYwSTPpG2Ckw7IWm0PaXbFcoWlDB5vcysaF6W+6pdmNuG5o1I2j5NpFe+ZwD6X0eNsUsV7vhcRe5HV42JKxcvKcpYAEypcNparPB4GjzlLwzKXy+NLSOMyTXx+Wjwm7OlYrfL6afGYrqdzVcvtp8Vjtn49/esyCfGYhV+ZUGUSO3cFeZzMoBh5XV5rRnmcjV+MrC/XJKerqD5hZHuZK9JjTKcvoFKMtC1bhXoM6fIFXIqR9tWuWBpRUcXzVzLSt+oT3JaDq38Fz88ipH9dCmCowRUZZDZZ7g3Yn0I0a3CG79eyzXfmteUKadTYimSXaVX9h7GzONXJ2IqcMg2ezeUo0rUGVwTIlqdpGSescw2uiJFZ8zSvduE+k7EViZN58nStRvFyG1wRLFPpXpUJL3NwRTzmhcineJnJ6vnNGDtOItaNl0nr/B0h98uQWJOX6fTqX+HZX4gYHn95mV4vi9fgfmUie01eZrq9LF5Dg16IZK7Jy4zxGhnzQuT0+MvLDPIaGPNCJHNN3pYJ6v56ghey1+RtGafHysR+EhHYV9m6rUgdThiZiewteVtmqO6KAb0QydySt2Ww3oqRmYnElrwtebvqOpswmBcip6c+3pYAQzV0VQ2uQvaWXsaFaE4uursM/3HqmRCxJW9NSr3a+vpf8wDijcjl5RBvTU6temV9cAk7t7IlD34cuE5MuilbhJ1b4a0JO5VRJ2XeQedWeGvi3mXVycQeEedWeGsmT7tZF+UK/twKb02eJLseyhn0uRXemjzJLPw/55gnfPbcCo57TGxUr6An/ATPrfC25FQnvYKe8BM8t8LbknStbkFP+AmeW+FtyTpXr6gn/OTOrfACHhM/E0JcEQGeW+FtydsLJKiQDZ5b4W3J24WJmRDBnVvhbZm8XaCAIqKbcyu2i7dLvYKe8IFbq7wc4q3J29Ur4xN+6LkVHPuYWKlemZ/w486t8NZkXSa8Q9xTnzGizq3w1qR9indICN8Tfsy5Fd6avF2MVjG8T/gB51Z4ayauSJR6MfxP+Pi5Fd6avCJQbcIgnvC7P7fCK0JdigPszs+t8IpgpwL9Ibc5nFupTXCHxPLuWZxbuZSbqXiumMe5lVMBDBXBHlM5t0L9V31zEsMakzm3QqlXFOOezLkVTq0CGeI5mXMrpGuFakbH51aKeLtg50lHpH7PrRRxaoV7V2/U57mVIpGuE96hDkn+4hXBTgWwTDol+Sa8It4uRLN6JnvxisTTDmlU5yRb8Yp45BuR6mQAUrt4RTyJd0RcQaT6hPej8CRWXMXRtXg/MnEBb0SiKpT0KUSzeBIvaBJOG6RRPMmvjxpIdYKD3oj0UEO5VgBB4ieDOVfHgov0W334TLoWWjSpA/uPERwxhXNvpjSCoEkEbyCTEcRUEG/4q0edVBhveKtPXUziuLevehVfsbzhmeDed0eJrmjeMBdvFyh2Es8bxuLtQgVWl+RUJN4uWFj1SnIo4r3vDhc06ZlkVMTb5dZJ9cQb9W+LtwvQRQ1BDUU8SbgjpkYhVRS5mZoXNBmJdFLEK+LEVo/cu0i4IpEia0TiFcHiJlNUhAuqOSri/R1SPfunH8jdtSefxU86p05Ad9eu02ZrAFIHjgJp1BVZg5BiHRLu78bCaiAKdIhUKXwXaSxSkEOscxkANSCJd0i4v63LW4OSWId46ViuycAEOsRL17LX4CTGIfHSu4AalOR3iJfE8k4GJvkc4iWzXDU6ORziJbbsNRpvtN6Doq4TfLcmkyC1HeJl8kqjZkKqO8RLfjVrTO59mfDe9xKw65NheeNTvPe9xKjUrEiHeO+bCdvn+ibqd8P7TL6I5t3Q03d9E5bbwWsCux/G+4FrgnEEL3Iyx0115H6dapZB/Yq4fE1qxSmK9JrYCsE8MPomM9u8+msEfv+V+ZpdsIow1prhFgY+AWmZzJKE4M/FNmuq2+934TVqsvu3XH5LuJekymTG6tEs3uWznGvOux6N4lU+yqese67D6oRX/yQeU41r8V7v9UX2Jc7Fe4mTmml8Jjzjx/CYafBe7/WddoSXPKa/RfN+hvmTQK/3+n5bkJcQX2ETsA/gMe+wVfyed5gn0aNpR+xZFUdNewef2jHXvCP4rIqxZh7Rp3Ysk7lH+KmdRs1/h993pe7Buk5uwp5WCQBBTk1GDAgAAAEAAAAAAAsBAOMAACgAAAJWUDhM9AcAAC8LwTgQj6CokSRl+Zhf5N/l+VDbSFLz/h9vMgqg/+aIkdpGkpr3/7gIOqD/8ojs/Edb/buJsDEJXx9ztXYI1lAnGsq9Rs62x+DXAfDVP1FbEIDBt23bdSPJtuXuRhIpKS5m+v+vvQEYbQAQM556j+g/RUmSZLdN7r5QaXxC0AEsH37g/l/F+joV15ngM8Fngs8Enwk+E3wm+EzwmeAzwWeCzwSfCT4TfCb4TPCZ4DPBZ4LPBHc6Fdd/ADOdikun4tKpuHQqLp2KS6fi0qm4dCounYpL9ev/ZD8nws9j8T5ZPeME+KmvD++nvT6to1Ed+5M6HqtefYH5AFXxE1uQ5VfFT3whFl8Vf9tx9gdz1NffNhPxt4Trrg5Zw6/1O9whLb6WrxxdsuJr8YrdiY3AcfNyKyBl+NW22IpIia8OS62YjPjqsdAJzU7ZqyxATpS2NVYaR8sdVliZ7FD1+LO+STa7u7r88eKKhEbtATQvL62G4e6ym5cXVrRoVKuueXlZEx4THQ+geXlNhbs8FhFdD6B5ecFl9xQRh7s0L69ngrtUV6xi/nwGl+YKTIL+9PFqXbpWX4X96ePFunSvdsX97uO1uoRWvQC/+3ilLuFVmRB+9/ES3My42WHSsxi/+/jF9GVDheztgPzu41eT1xNTRGxK5TmVxgRxa63IJJenVOxaMW49q7OyeUbFD+/FuHWunkrn+bz/CLwW4xZYrcLtbZ5OccVFN8QtumoT3K7ptV+qAXQD1ksR2pPp9b1sDZIkIjYxGjW9wEv4AEkiYhelWtMLvp3po/oKTcSp1PSAt3Ztaq/uQr1Npse8zW1Q3+oq2LOmB77lr1D/ahZu1/Tg448nBVd1gpOml3MUFN1vhZM0vWIcczqkR+GkFNOdEnb9sgPi8UOJk3IMfV4K/YuI2MST4u4zXsBrPCI24SQB7n00sRt0PLQJJyHufTSt8IFI7SQAJzHufTQr5EDk5SSAt2+Qex9N6gYdD23C7RJr9OtCfQsdD23C7Uo22kRCVA5E4kciuF3ZRitG9UQkWLhdSjdYMSQhexduF+5w21jFEHQ8tAu3C3e4w1ATROBApH0kgtuFO9xjoGKEDkQahcNe9jWqarTrdiGQp0O4TZjqpM9IdykAbtDx0C7cJtzhtoGu3jcufV9+JPa2C7cJd7jbINW5u78QGz4dwvFvE5/Vb5DqjcCXpEOnQ7hNuHI4YIzqj9AX57tPh3CbcMUhQ0wiEbtLoe9wCLcJ0K6YASoY0fs1mqdDOEmIVsXkV3zH71ypng7hdlHqk4FdmOOOl3t4iNiE28Wp1MCg+zAs6HnK+DW2i/RWA4NuxDD1PO3C4SciLzUw6EYMc6dDuF24YiMSJ8Smnib451Xe6RAlrYignqddsKzTIU5SEUE9T7twSjkdIqUUEdzpEG4T7rDHRd2IQT1Nu4TbhDs8MOhGDEFPk3fxNuEO465KeYkPfJ84HcJtEup1EtdRnJuNbO7jRbhNuMOI5gRDfVwG/HgRbhOuHJB6caAbMWQb2Ztwm4QrxtSKA92IIe7jRbhNuGKD3otzs5HNfbwoqO/CFbNeJyDmuAP8eBFuF66Y9ijW/4htOx5ZN67ginFX4WziJ9uIp0O7cMQr2Z5KYRO/CY13OoQrJrQnOQIBfrwItwtXzGhUlv7NfbwIt0u4w5RqJeoM7uNFuJwjEU6lhmAT73DyT4dwh1Fvk2HYwDvf+uEQrhh3GPassdjcx4twxcYdxl01gIStjNOhYtyRcjo0Bjwyfrspxh0GdEyGZceKV4xLOR0am91fuGLj7ITTofG5s3DFONuYWk3B7pjginE2KXGSxa4X71fB2aysSmW/F+6XhLNpOZXOL0VoFs427ZpSI/AuRqNwNi5nMpXqBGcT8ms275XAjOyaz2uN75pSrL88hmeNL2fC8wiOXxpbWqWIBlMeXlIliQZS47umVJpoADW+nEmiaIQnQ8qvVOEdK9xBya5s0YgU7jDumlL5otFfuMO4nMkIotE7wR1GpdWgHFWMO2xYUo3LjijGHcblTMZm9yrGHQ4bosYSjcYPF+4wYICahFuKcbYR6TUPu6Y4qqspyZO52K+KccWczJqQ/fwTBldMyqtJFVyxWVm1SMW4nMkiFeO+nVCLhPzfdZRtukb3rwZRjPt+X2jNQBrAtUC6ygYns5CSXYWpFr2Lp6JEVwn33V5EzUZKchXuu2vFa0ZSgqtw370rOJmVBLsK9x1YgZqaQFcpjCybqClJkKtw3+EVrmlJgKsYraJ3adTUpKCrKNXCtSaTiUbHQSjuG1u9tQbqdBXuG11d/+5lkDpcBXsWrjWZUzRqhfvmV6OmFY33CU5Swq7VmujFVThJOd5rWSRfhZOUtl8mS3PFScrbj/ospDq+Pgp1LPrfs4I9DvUt9O9fxB6E1AmsRQZ35e37glau6ItAYrKiyAO8M4jWsiJHcaJ/7lrvpl7kit//aHUkFnmzW99EK9ziFJN6aplbDPzG2FYtleIeR/K4e70Wu/9yjI17PpTapLlXqB7twr09lkot+Jt6tApXeyz/SL17rVGf4O6q+gy7Urj2I4lYabwV7i6Be6XxMsHd1SewVxrGBR7F6inDXfpcW7S7gta/RQIewgcgQZ6P4DNugkQJ7HVHXw2wlx3dlT5adeTewBSpVUfyfTu9tfCdfd9O32TlkX3fTkctPtJvYKrWJ1hW9nqvc7DeJydhL6sEQU5NRvIHAAAAAAAAAAAVAQDjAAAoAAACVlA4TNkHAAAvFcE4EI+gpJEk5ntBxx++f42nQ1EjScryHsP/PJx/WSRAcdtIyjIcvKj/Okma/8Acf09OV4ojsmW3Ha12MUUGkaeq9d1Yqh+KCGkzRPyNwbdt23UjybYVNKcRYZRHKlP//7USCWA0XMi89x7RfwluG0mSxMgChNz73o7t/cDrP1Xm+56UdFMe3ZH6uCmPbsqju1FnN+XRTXl0Jyrvpjy6KY/uQpXdlEc35dEdqDo35dHl1y3xfU983xPf/yJyVz6Xe+JfEn+b1k15dFMe1dUt8a+MFbEu8/m7fUP4ODeDc3MfuDhXbstX+Vy2zc5WVTRwDfWWqerAXUEdnCoUsPnXyaHCgZp9ZfxNQgI09ypoHd8lM78pwoJ6p8y0qwYYl7XTSVudlvF9CZJrNYzvKhOuavhx9N8UplsRreK71mQrplF8V5vqTVSTSN+zZwMaRPLs2c1IoZo9uympumbPbk51FfXL8ysQF/lvQP3j2RUqGNkC/Hqb2w0sHKcqqayPiRXsR3HSu8rqH0+rgmpKxHGqUf94UhVWU0DYdSrqbEoFKFc8bDN+zUxi/VRMZVF+TV+2gLBDCjV/mQLCxnxdgVMBYXO+YjxNP/E5FiBTMZ6AhxEPO07aDPqKscf3eA9TjsciQY4V44/RbwiP7IQK9RXkg6EL8ShNfbG+YuwhJecK8aiZumJ9OcZDSu85F+JRO+WCrUEe0fG741iIR2TyBVsVYw/o/B3yKcQjOucKK98EeUC575MfCaAHMZ8bQKHCPJ7kAqlCxdcsbhUjW9NR930tBeg80aJkajqSa0mVlJ9IcU41HckRqqHy1BbpUNORHCSVqG5qivWu6UgGSDmqn1KxpHU6kiHSgWKTvWFJ85EMkoiNzbFg0nQkmwUtslbBpOlIhjGLLC2CSdORDHvYxFkEkzCvYSTDmEWWFsEkzEsa/eFeSVRu91iSOK8YaVTcIou1LqRXjEaFLbJgqyjHitGgsEUWbBXqFSONCVlkfQq2ivSumP7qR9gdYF1gq1ivoA4LwSyyvAq2irU5a4RCYIssVvzvCBUV1N9NAL/Igq2KK1ZUbxVDL7JgEqFQFbquqOAiq1gxVc3IVlhnBYhusrIFW0TJVKVuq6i+gFgFW8Q53cT19v4OALPI8irWIpE+RejwPS9Bxz0WsMhiLYJtjumtCi+v62GLLNgiWDKiqypEHWyRBVsUVi5GT1URZdgiC7YIUCpCVxU62VfjQCyCSYh8QTqqWIQ3FIXtXlBNQ3I3kI4qGqetDRANFlmYUw0FWcc4dbrIIh1qJMg2xu51kcV610h+JAHR6yILtqWRFLcxkT/YgFgFWwXbPJIfZkvFLLK8CraKtdmcXgoIScRZBVvF2ozqo4BgFllusMhibYb1UPEYe5Glc8F2tb+Jx+iLLB0rqqKaetgmqMNFlhbBNscV66P5Iov4+Re3rLBFsM2s/TwdvMoK/l4FxCIYv8gyI1dtldcxgT/XgFgE4xdZmHO1VbeOqfw7EBDdL7JAx2qLedvTJBZZqE81hWxjpKEXWbmC7Woqvo0hXoXnCrYKc66gmmrrT2RLBeyxjgVbBTpWWPmmOeAwiywvgjVYZAEK1YVoMIssr4LxiyxGtrpht11kuftFFiVT3QhEeY81yiKrWJxTdcee0CJLm0mH6pLd+yJLSbDNrF3qlk284MwXLJmSqZia6puR5QT2HxDLxdrsqHJ1z4ZWgKsApRvWZkCp+tQgqDeUZgu2GZGvYdjRomQKZsN2+mnNjhTnVDAb06o6YNcW6VAwm7XzRQtETbHeBbNRLYoXilLB/kg1OlpkNajOOFusP6Q6zRZZHVR/7NNNXKlgdljz6pO9CpEvmA1rcDO4XMFsRMsa37m6tvM1A8fqVatq7HcvPtWvNtWe3YXtD/WsRXUhHki5bw2qD8Ahqm8NbroRj3h1p3H1JB7R6trOV1/iESvWZkjD6k08IsXajGlW/YlH/Q1rM6hR9SgelQXbDGtwMwY7LBm2GcbXQByTDNsc00GNxa6XDNvM2vkaj10nmbXZcY1rTHZZMstGNK1x2Vnh19M1DWlYY7NPkmHJsAY347PfkmHJoDY1CU6GJbN2viYtmfUUXnOWbNbzPXDNWTLseRyyxvKPbiTDnpnBajh2F/bEyBYrvTQku7ldlFyhJ3lcdlO7WM+aidbY7GZ2sZ6VE6qBxSO66WY9VStQc2Dcrpi6Yk/KPaOzUbuiaoo9+ZsJsDG74orFStmaBRuxC/Ykprpmwg7bxXpSU1ezYYfsYj3BqajRxaO46eYci1SsWbFr7II96cnXBAAnVzA9+cnczEE8zgWTWjjWNMTjWDBJbc67JiIen2IpM7iXZsq7WMoPXRdGKmDrwqhiwLowqhuuJhS9kCpRNeXAnkbnNbdpLfoXqXBNLlpKjgrWzAP6+5H485f9mmS0AL2MV2VNlERLpqiqJntESgZV1ISPKMkoFW4mTb8Bv5NZLylXpTNVjvpt2Etv56o4U1WKcsHO35hPTV8pSgXLfmv+cvWZduSL9ZIQ1qwjV6yXdEknF+cbVt03JWLOcSjYS7qwo9N5F+wlnDXngMW+GZdBwr2kizwivaS4KzmiQN+ESyERJN2AU1OgizkKETuRuoAoVvujyU8VtZi6uoho/L65mrqMaP3GuWJdSDR/41y2ruS8SR3QDZl3/RM2AgBBTk1G+gcAAAEAAAEAAB0BAOAAACgAAAJWUDhM4QcAAC8dATgQh6AokqQ2eDkfCOCF2ki2kq+4S0wH9F8VIbHiSJKS88Od/OPkxfwHALht/fdQKyYB0yC0im3ECnpRnu/1S9JDTI67mAn8yuDbtu2qtW3bcoeOOm4X9/H/n2uDpJJ087jnHNF/SYwkSZJiWat17pnmmkl2gffjP5MnfTdlfzX19sXUN8P+ZtjfDPubYX8z7G+G/c2wvxn2N8P+ZtjfDMfmC6ig5VfY4uur4f9gIq0cUWsXr9WL1vots/5+TxMLrUaxzGoWi6yGscQqx/odylVdrN3xnnvVR0MLqKu/w9PM9Ovqb2QamXzd/TYTTUy98qhoYOJVwgVu2lVGBmzSVYONtT1/sevQsa5nvnYtPta0M7HrNY7kJbAjmkRay57WjmkQ90tuL4HNs4N1ZS+BHQfH/ZLbS2AT0EiZWQKbEYmKWgqbEotCLYXNiUamlsImxeNSS2GTTuKoSUlTfkODivpMuKQmNS026bxPrN4a1LTYUeUKh3SB17TYcaUKh+4D17yYkK9wSBloTV6uwqH8gDV99wqHVIDVAlwrHCoPVNPzA6ETsB0t/Knp+SGCPhMuVwGqzmSKoPvEqlK4ak2lCMpPfVULFugYtggqT12R9kyBDo3FmSKobspF2u1bgQ6NxfatCKqffAUV6+1SoENjsd8uRVBs7hVWqIt3gQ6Nxb54F0Hx+RQgWzd/gg6NJXOFTsIpwL4hMtXAobHkL7kddX4mXIbcqoFDY6m56BHnfWKFuVQDh8aSXHfZa535qS/Qu1rQWJJr2TXO8tQVyfv0JEfYJWfdlItkT09ylJ1z1k++SPb0JBPsqzM29yLZ05NMsX9cKhifItnTkwz6IRH7xp1kT08yKLdQi+3USPb0JIOyC7XQvpFkT08yKLJQy+9GQO9q4DGYZFB0oXbfjZD2rYGHBpNA0YXafW9E2g0p1bREF2r3nRppNyZfsxLfGt32jaTdoFyRHmP5Qcy5mbQbdOhepEdHc3Kv4zs10m7Q8Z5rZY1UNvZlwvtG0m7Q9Sp/qmCgIpzEwnE3aTco8AeswxThJBaOu0m7AbkKGKQIJ7Fw3E2CHrXfK2SIyghWOHaTNkOuFTRAZYUqHLtJmzGfCuu+CgIVjt0k9vmwAJ1XUXWFYzdpMyi5hc7e7geALBw3kzaHlAvSc0lSELJw3EzaHFQqTN8lSQHIwnEzaXNYvkC9lyRVQhaO9EoNkCtUp1V9zWPP/2v2jSRoK3IvWI8VuebR3Uhp30jaDbkWrr+KXfP43ii3byTtxnyqgd4qes2Jndp130jaDRr9nS9+9DKbCY32jWM7bebHI7FvZDTZN47tJJaJRm7bbkqDfePYTmKZaOS27ebg+8axncQy0cht202C942kp7qs+DU3ctt2R9Q04l4x5erPSSwTjdy23aTNkGtFlao/J7FMNHLbdpM2gw7F5as/J7FMNHLbdpM2gw4RctWfs5fZTdoMSmbcqz/ID0hB+0bSZlAy5Vr9QX4xE7RvJG0GJXM+1R/kN0JB+0bSZlAy6an+IA+i1HrfiEyjfWNN9Qd5AN7hvtGg5Jhy9Qd58tbjvhGUHFWq/iBP/HvcN4KS4/LVH2Rp1OO+EZRMyFV/mDci7HDfCDrEuFeP/jLzBqid7RtBhyjX6tUlgF/rO9o3gg5xPtUzm3nD9072jaBDpKd6lgngMWYH+0ZCo31j37IBPD9pum9MZjTZN/auEMBz22b7xmRKg31j/4oB7EWa7BuTOfi+cTQ2sjMyvm9MBiVk39iqemF3t29MBiUz2lRPbKBIyaBkSovqjR0sUjIomcNXj+xAkZJBySS6emVXFikZlBzRunpmVxTpD4GSY9pW7+xCxZQLlBzVskZgZyqqVKDkuHY1CvtScfkiJUKrGom9E3LVnTY1IffqUIuakmt1ia9J+VSn6OrPz178oV40ri7ZPTjUj6bVKyKA6knD6hcR4epLs+oZEcECHYxG1TciQgU6BGlSvSMiUKBDmAbVPyKqC3QIhNcIiKgs0CES/TFjIKKqQIdC2ta47Khk0KGgljU2OyIZdCisXQ2FiMJ1BB0CtKrBEJG9iiAfiDY1D3ZJMsiGtKi5sHOSQTaGr/mwr5JBNoiuQRGxJ4Ns0outeXEC2aTXe8BaApv0ug5VS2CHFeqGqSWwAfniTnoM7h+deBqRK+4kj8/uwFOQWxXFagre0dhTpFfVBGoe7IaeIr1qJ1R+TILdyFOkV2BCNQ92A0+FVFREoObChj1FekWntubDBj1FegFTVXNiQ54ivZgp17zYgKcQmYKUam7soKdIL3CyNT92wFOkFzv3/93NdBCRL9Cn+PPQhBCRK5LUwENTQsS9SFILmhQirkXSdfiXSSHiUyRlhq5ZIeIpkvKD1sSZJBWAtUaqGKrWSHWD1BqpdpCaf7R8keI1w2gv+DAsWGsI5mvjzy8/pjrtJMfVlmd71Ab0BodVNWMSj3tT1Yqa9RELfSPnUs38iJMMeihfsz9iJIMu9+VeK/DTcT8T6H5nrlVzpqwcxTIoe29+Vc+MlaNUoIcQnrBy5At0uTvQq+lHrkAPCTzTj3uBHhJ7Zh/XAj1EsyYfnwKF7knE3MMGPaSFHuEeClvOEeohLfgIQ92JBZEQkhZ+FCY1p+lPiOCprqVEsehTV4uJQrU+WsoUSc1pOZOldpOvJUX7t9nN1JriTa3nXf8EjgAAQU5NRhYIAAABAAADAAAkAQDcAAAoAAACVlA4TP0HAAAvJAE3EJegoI0k5ZgeFKB/j+9DTSRJyuEzW/j4/SvDTG0bScphxI/9d/nZa/5j1vGtTY1QK3oQkQB85/nTZNgw2uhv1SdZ46LwsLBuNlWGNxl827Zdt7IkWyY5HO6alC2XO///ZyUSwGjERX7vPaL/FNxGkiRJ9MyFNvYq9DnjyN4H7P/VNj/6hk709fg5zZdz8vX4qczXcvL1+GmaL+Tk6/ETmK/i5OvxE54v4eTr8QPN8k++ID//2evv3xB/5tvh8wxg8vfVscrTcnRrn351EOs6SYXqIpZV+nBs+rFPvD4cny7sM68DI3O1fep18jczcampV4moWK+kCi4WK1WRsVBJDdiDNcqpBR7rk93mgqDNt1r1Ez9qNNtqd0Fkr+qZDJskxW8v6pkM06RYVS1jLWPHtE9z1axju2eHkZFdsZAlsQ3govjqF/NMho2govLq/2SDJliQcJxqVbIxQLxrVbIxD0Jalox5fCZcWpVsyuM8sVqVbMyjOO21KtmYR3XaalWyMY+mqVcX/mLP+HapopEURp3M3CM2pxuAnEzdIz6fIsRP5u5BzC0xgidT83zEPd8TL1EiJ3PzfA9xfyJYnOaTFpMpwLM0gbrUn6VGUynAszpthbn7reFkfp6AZ9PUK6JaB7WTmcnVskMVjltMpU6KNTfZx4p7hqZQQcUqKJzMTbb9qbhneA6FuRcdTyan+Q1/xW3fb5i7y/4szU425iGgjKiW/T69mIf6Pc8jSscJFuRTPbHdv+pbP0KlCRTG7ojtATR9iLZSbRpvzE39sD2E1lVCC7VMSwVUqxu2xxDZt9SodWqFufXC9iCiS6kSRaZUQeXqg+1RIJu7I0XnUGGl6oM9DGy9+UQWnncDzjVZ2RwDK2EhjjVZ2Rhg3ambIJ+arGwMsO6UbhhptjLmaTscN1Hs2cqmPG2H4yaMZyubQqw7dRPGnq2MAdadugljX2qX5gVYd+omjI1Jems4mZgnMDdh7IhqHdROxtXJfcfYmKST4snAHoL+pvhOmGJjkgrOJyN7KA5Yd9p3Y4xJKjqcDO2hOGLd6bsxMuBUZbs0tocAksJxN0aipMrsrTNSAYB1p+/GSJjUE/VQAGDd6bsxEiapH1JntwIVjbsxEia7G+qkKporHHeMFFEt0hAV90SeRb1TpJhK9aKbx7/igHWndBNGUcXqRF9PyAUB607dhJHCCtWH/h4idACw7tRNGAmTu6COqvktTz+LirERx+qA1NEdeMuzz6JibMinrqe+KvKmLz4hFz24YWxM9uXUVwXf8sBDhOedMMXGJF1NnVX4LY88ZyndhDEm6WLqrfqY+w1jU5IwYwyy8AXWnb4bY1OSMNsQhSx8mWdRMTYmYTaPAFn4Ms+iYmxMUkSthkAsfBvWndfuOxHHwmxDIBa+Ih5GJfedmKSoYo2AWPiKeBiV3HdikuIKNQJi4SviYdS7McJkE041AmLhK+ZZVIzUrl6MQ42AWPj2su/kd8KUd43g+UBYXew78Z0wZfMQiM/h88/A97HvJHfC7eo1BOK7AfKPgd8iyZ0wZhsC8esK5Ndn5L6TcKqYSo2A+BUq8iv9mzBmHCqqWCOI/V4HfRYVY0PeFVeoEUR/2ww+i4qxKSkTTjUCZAHD/Aw8xsYkxqFGgKzyOtt3YpIg7xrCk9HTvhOThNnG8Fc/ff2fkPtOTFK7hhrGJ679W3radxYqolojiRxAz6JiMuFUMZUaSiCgn4HHZFOSMBt4d6I9mJ+Bx2RjUtwV1YvWYH4GHpONSQLw1Y9qIAvPY2GyMdkIunrSEMy6747JxmRjyOqazfx/AijZmGwMWd2zHS5MxgTWnVfWGOxQYbIpGdwJg/c47ObC/MqU7JDLaih2U2F+CZODLqrh2FzZtcJkR11SQ7KpssuFAXfCZA3Lhm6Xqit49YyZd8WdqzNwje+O+dWfDbwn6VDdQWuW3tWBC2ua0q8uXFbTlNSJaZX02ybEqz9kjQOJaHXkghoJErEbk0TAayxIhIqShNnAezRIBIqSRGFrOEg0FyZh0BoQEo2FSWp3YY2JOGgqTBKGrEmw47IxSTEX1UTYMdmYpKhLajLsgIxJwmzgPSF2o2yKTeBrTuwG2Rgz6BpcdMqyMTaErcmxz7IxNuVF1gTZH9kYG/OysZokOxtjY16HYWo9bMzrPECthx1VLMy+HnZcqagrez02zKs+kZqKf/RhM+XVNM01G9L1NlNerROpuZCutRnzwuTTPR/SdTZjXpFprckozCU2R9SLus41LxJuM+YVn3rNjcTaosiyazU/EuVTlBc0xZojibGZ8uLmXPMkxW3GvMg51MwgUS3Ip2D75BAHlcK88NknB4liYTbzPDlIFCqu/AIX8wckiNtNXwnomh0kjkWovj605geJT0GqL5CrJZA2Y6ovhqrVank1SK1W48uJ11pcOcFaDKTbxe7VXMw/gV9/7NOdq8V/hdtY0oQvXYr4rVJbTfrSZaCHUhtq4pcukQ2p1uQv4bIxe7EWQEJlY/b3FO5FXMJkY/bjnGodl34TfmfMroI/Wmfe7KjfxuzF+WM9GqJ2Y3aJueatISpF2SXsmraGKBZmb7KaqyEKhdmPQx6t4eBUmF3Cr0XEoTC7dMW1hngXZpcuutYQGCluSZdgQmZNJJCklV8SRNwEakHRUqDmWlI0FHq11aKiWvTVUMuKSl1w1e6FRbGuvfZVTYV0sX1pU6Ar51RriwN9QbPWEgBBTk1GFggAAAIAAAUAACUBANgAACgAAAJWUDhM/gcAAC8lATYQl6AokqTmciJJwAD+ffEHH4oiSWouPwNgAw/414CM+ERh20bK8T3j/pOS5j9mzLtvaqJHpPi5FtUOt+yzYmXtB+DgzuuMQUy8ZVatzAS+zuBbtu26rW3batJg7R601EfTGPz/n7VIADUDBDXupUT0n4LbSJIkiZ4BCJlz1hzb7Vu7D9j+G26+P6Avu5vP59mn47syn8uzT8d343wezz4d38n5HJ59Or6huf5nlGu/8+8Wf/cnxPv5cLg0nwxX5lPhhvkwLLtqnc/Boh/OzIdgeXNyPgDLbgwM64rqaKy4nm+nZKy4mn+ilvxNVAxi01yrggv3tmm2VUfe6GfTfKsBHNco1ASPCxStOtzoYLLVio9QB1MtipSvKxPKgCNyvjV5kdI67bXT4ePYWVYSGIUffIfPh+ZYaVgUf/AdPq+eYQGoiKIO+5n5FSE9xyq7mj1fQPLxrpq/2N+wydUolrgyIcgKlK5MCLLuJnkuTUDWwmTqyoQYa2Va68qEIGt9WurKhCBr41TOpQnImphSXZpgrMnZ1wdgzc+i8XzNF1A3jebrZyZjVd7jZ9IHA37Z+XjYRL0jV+P4qsxUKs3laS7I3WlfDTORynN1mqpdtZK+GmcaleemqZ6MSqX8YX/NzCPPzVMuyD3hj5+ZlthXmnNzqKRSldSfTUxI78pzen4q7Vhl5WdT0/jKt1XeHWLXHJ9NTgiyCigz7Lo/fmZ+ArLuJ1kQV31LM1R8/XPWwiQKcvOUVX8B2q2VaSzITVPW9Ge5zdowDSehVnPWvH+pWlunUpDbnKW2VEVrZgqVU6yRDfxrlt7lHa3J2VVWocY19O9sZOP5tgJzzzvUqAb/84/thR/IohiwqzGN/7dkQB7AovgmyG1EZ/hnSQgCLIpvgkgDsscXgiB7Yog9ZSHIg1gUQ+w5C8gDWBTfBDFkmY0Q4wEsim+C2IxFsxEQYFF8E8SGLHP2IBbFEDujUhnvD8WmoNeeGOKcYhU0PTurB3IP2BND7KRCFVWfndcqUd9Kbk8MsSFLRfHZma3KW/OL4rshEmBfNYdnnQ1QeSuxKIZIiHdVvV+x01vzVmBRfDdEkKU+myZgVQK3KL4bIkFiRsovd6aScTdEgoQmZFXeSiyKIRIkNCNrFrMnvt0hSinX2PpV2sPEnhgi5ZRqZB0/wl/zgEXxTRAJEuPq/ja6JHdbFLecvEMNapC3GiYYeGfvTQybsKshDfR+TNttDCyKb4KY8VMDksYq224ALIpvgtiQGI40Ytl2BbAovgliblE8Fmncsu0CE4tiiA1Z1Mfo/2I9/cozO9CbIIYsgjwBY72JfoS5G2IzFkGezpJOVsCi+G6IDVkSavXjRP8JHfDS60SL4kNBnucCvPIaaFFM2FVOsU6l+MpnKht3QyTGoqxCnQqxKgcWxXdDJMiSd6hTWYGXXvlF8d0QCRICVMs+RWVDwyyKJUgI8jyX1Ctfqmxg/2pTkBDk6VMBXnlmTwyRINEqX/bg1f+6CSJBQs2qdSoPAwUsiod5y+qxIM9zgf6BkI2bIAbsK6VcpwK89OieOL8oJrwrqVSnQrz0wMezN0FsSKQd61SQT3uIRTHEhiwBeZ4K8ik0sihm2JBFhF2dCvDSe6A39kIWMX7qVIDdHrMnhtiQBfI0YDp7YoidU6xmfNmn2hMTi2KIDVmwRfHJ/NWG9sQaYE+cd6iUHjWSXBDf0N2QEGBXkCd2hmN3WxTfDQlBljS8BlMM/qP+OyQEWahFMVfjab2xIotiSEBCBLQG1BjEzuZuSIgRYoBfa3g2tii+GxKCBASsMbUE8v9hgIQgoVbdalBtkz+QECQE4epU7GRBAhLK6FKnYycK8isgkdPha52S3ViQX4KEkvgaW3K441pBJAhXp2ZXCvJrHGydno2UXayBkF9rCuxdZRVqKGDNgn3PO1Rf/WqqdjUWrqbrV3997k7XLw2gS83WoiF0qFP5DUnXWLg6GzGRPJAFANcJMZErxiIC+rXOCbmRKcjCIOucmGgvyCIIV2fFRGtBFjXrVefFRNuBLIJwX+vUkBtNBVlSutRMSIQQZFFOh5oNKSsEWQThakaklIAsyoPr/BLTKsQIEdCvNTVSixAkGGTNjlQTgoQgXM2QVBSQEORlqqaBmL0QIwR5vQc5M8HEPQQJyOswQM2WAhJivEqTrYsSSiod5gpdlFDasSBxVQLyapjmuig249U2iZqMf4zAZrQeu7XmQ+rNhrwS01QzspuO7GZc2Q1nYqReDHllp1pzI/VgM17AlGtaygOzc9BjF2qSJJANeVGzPxMlUZ55bNm7mhwmGorxQmfT/CA3qoWgjz0/TFQK8uJnepgoFsQ2f6aHicKBeDf0kwlCbhwL4sOgNUNM7Avi0nA1R0y8C2LztlliIp4QV4epK6Enwy0D1AVz22TrgtmNcnVBkINf2yUhntLXn/Y22xhA+oO4xprxpc6ATwfcUrO+1FGIUD8zv6Q+QgxXavakDgKyScW6gkuwEGPbzbGu4hIoBNkOsztXcuk343dANhX82TzzJuX9FmQrzwVpitqBbBJ0zVtTVIqxSdw1by03igXZdIFXUxQKsglmXUYcCrJJ+CVdRewOZJO6XBOPyo13QTZ1uy7ihiCbdMWXaJsQ13SJtFGTqckHZQOnva7pRscjtZ3LinqxV0tdV1QKV68ri3J1uGp1aTf6HqlUVxeF6nnp2qak74/eur7Z2z6h+X2xR0FOTUaCBwAAAgAABwAAJgEA1AAAKAAAAlZQOExqBwAALyYBNRCXoCAAkITG1gUu8P8uB8APRZEkNRfImRciMIF/CdjIT4VtGynH94z7T0qa/1h5vn0zJU5xyaKTG+0j1Rg8Kc3mLNzz5/HGpErEcrtmphX+zkBBsu26jWNTeRPT5sRKuP/NUiTw3gXwwPzvjeg/BbeRJEkSPQPQZF8zfbdv7wf2fy7NJ3l/Hvcyt+dx747P+tyVx705PiNzLx52d3xC5hY87t3xiZ2Znzn6/SbRMTeILnNzqDz3hepzU8g198LjVP65Dx46KjbdS7Ok3+Mzfw+dQGbqHkKS5u1x9Rt7C+yjZVhFvcVcvmJUIEMQE/kOTR5dPfo0vtd/OPQWk/hpyOjRIDQ9Rp8GYZwboxv8hk2O4ZDRmhsjFBmpuTFG+MdZF5N6WcY2yMDhnL6btXZIb5Ez+rHIGBYeV5Hz+fna2B7pOZzNpsbYB9Lxl//lmImwXkhzY8RYyXjNjRFjvUzoTI4FVCsa0twYIyonGtLcGDFW11RrboxRpYqGJsfirhUN6Q5Yw3PUDQAovmuC1rgvAU6fPnJxvOoBR1K0OvRxTCpOr3pAnSJSGItwPgqTyYlTZZzlVi2Qj9okUmFyjOOALBAfnkmj4uSbWmEsCvvx4Z0kKk6BKRTGopgfr0mKnU6cgnOqqGtVOB6WFyNfFSbAvIMsVZXHTY3zdd/iLAI4Vd31cbNjxFjJeEEc5fC6kyAjxnqZUGFwqfskU1R+A1RVKxoLCNNWfRO4rbXxFQaZNdeHs8vqmmphkFkzRj/rlSoaCwjTZm4kS9bQXAuDzJoxhLxYo/MqDHIAUqd74zDygNgdLxhk97p95zZCELI7BmHfuv4cYBhfkN0xBtmxzj9VGjEgu2MMsVf9f0UxYkB2xxhSc4HpnREDsjsGUdoM4wuyO8aQMB7KhxEDsjvGkNyqlRDDgOyOMaSASmUNsjsGEcgjbGdSELUIQ4opVcjpG7Ixuf4Te4vdMYYUda2K+sPGtdKjj92x58Sdq6r8uCNbSdfvtaB3xyAEeThcHndwK73Au2MMEuKouv2Y8a30g+6OMUgMe9TtTMFaEKpgLMIgMYxJWRkC2x2DEMSSsjIItTvGIDGMOVkZhtkdY5AYxqSscZDdMQaJYUzK1xrWze5YBLFWur97etUHDbQ7Plfvmv9CYsBQu+NXda2X39p0Gmx3bGyq52/2Ha/6uuF2x70ieytJqhhud9wjkuzzSCoYbneMsYV0uhYNvupfBtsdP4SxCYbspuIz3O4YZMMgOVINtzsOqFRcf/9nIsM13O44pFhx3VX8Va/hdsdBhRoO4FXP4XbHUfWjgSoaw+2O46olDXOiMdzuGGPTcAC/Aj3c7hhj03AAr3qmsDsGHI1Q0Uhid1yv4QBe9wDvg+yOazWcr3glsjsun+EgPuFlsjsu1mgQXz5z2R0Xajigb1mD8U4M9bI7vtRwAD8B5bM7Bhz1Wo6oH3cMuzuOl9TniUZOu2MNB7DHSmp3DDP73THGDdgdj3f46yi7Y+thd9ygOnPMCLtjwwgvReHVI6n33bEd08/uGFa9knreHdtputkdo07PpF53x8azHnbHyOqcpB53x3bVw+4YVyOQetsdGwsa7I6bnY55Yo1bhGEsarA7blUdcw2gMKw2DXbHbapv+FhADMQiWtSIpEhhvFldg90x/nQvMs7CeKNHg90xvEYmOSqgUj4NdsfgGgIwFpC3bkBrDIApVEyp+gE8aZBOFXWtnuAqE9ISd662WlXG3roCq4Qd1VyLuxl7vHWgQSXsoS7AK2OPrsBqQN/ECBaGAKB3B4WJUGFICMgaFSYCB0PCwNXAIDf8hSEQWI0ME97CkLwa3R0bJnyFIfm1qcFhwnMwpIgWNTrHQNgDQyCwSggZZsSQgtB3k0KGGDGkMHClwD9uBmIA0EoO6WLEMCIAT4LIKiOGEeMJqxyRLDFiGDGeEqgSRV4YiGE8T4OoZJEHI0boL+Y4UvgkjDQMI8azNMGalvBfrFSQi5wXC7sUBjkvG+N8RwqcOdmE8fSNu6ZkE8bTPdVK6/APNrdhPCPjqayQTW3CeIKcKy3naWUTxjM6lUoPCXapiEpBLp5Oiki4LQZ6pGtliSTSJownak6VKhJlE8YTODvTRSJsAjjVbEBu1A4E+kgZwkSlMPSET4IwUSwM6TCdP2CicDB0GnDlCHLjWhi6DPIkCRPnwlBpcDUH5NkmDFUGVImC3LANQ6qB1GRww5Bj4mfK5JtozUi7CdWMGeHXT02Z4f08Zr7C3/H66iTfaQzxu5ueSvtiS4agaqV+sRUjxl4+6V9kA0aMnSzWFC6CGTH201xqGkgkw9ivc6qpXPwGMWLspfnpnsSRAN/E2EnIlThf1ApjJ1FX3nxRPhg7Z8h1o1gYO6FX2nxRKIydnOFFuuJSGDvZ5JrFo58Oxk62uaYRr8LYWxFnEd/E2AETMocbGDs57YtQO2oClX3A7MBx16RuOArJV/OKemEvx5lZND1kvWZ2o1INrnJNLgrVago1vbhWU5zcFDX924sznLP9Ds33bItBTk1GGAgAAAIAAAcAACYBANQAACgAAAJWUDhMAAgAAC8mATUQl6AokqTmciJJwAD+ffEHH4oiSWouPwNgAw/414CM+ERh20bK8T3j/pOS5j9mzLtvaqJHpPi5FtUOt+yzYmXtB+DgzuuMQUy8ZVatzAS+zuBbtu26rW3batJg7R601EfTGPz/n7VIADUDBDXupUT0n4LbSJIkiZ4BCJlzVs/R7dO7D9j+pTTfn9CX3c0H9Ozj8V2ZD+bZx+O7cT6QZx+P7+R8EM8+Ht/QfADPKBd/598w/u6PiPfz6XBpPhquzMfCDfNpWHbVOh+ERT+cmU/B8ubkjG2e9WZgWJdUR2PFBX07JWPF5fy9WvI3UTGITZOtCi7c26bpVh15o59NE64GcFykUBM8rlC06nCjg9lWKz5CHcy1KFK+Lk0oA47I+dbsRUrrtNdOh3dop1lJYBR+8B0+NJpkpWFR/MF3+CB7igWgIoo6rGsmWIT0HKvschZ/AcnHu2r+Yn/DZlejWOLShCArULo0Ici6m+S5NgFZC5OpSxNirJVprUsTgqz1aalLE4KsjVM51yYga2JKdW2CsSZnX9fv5+Rn0Xi+Jgyom0bz9TOzsSrv8TPpgwG/7IQ8bKLekatxfFVmLpXm8jQX5O60r4aZSeW5Ok3VrlpJX40zj8pz01RPRqVS/rC/puaR5+YpF+Se8MfPzEvsK825OVRSqUrqz2YmpHflOT0/lXassvKzuWl86dsq7w6xa47PZicEWQWUGXbdHz8zQQFZ95MsiKu+pSkqvgFy1sIkCnLznFXfAu3WyjQW5KY5a/rt3GZtmIaTUKtJa17HVK2tUynIbdJSW6uiNTOFyinWyEZ+o6WXe0drcnaVVahxjf1rG9mBvq3A3PMONarR/wjAVsUPZHcM2NWYTvAnZUAewO74JshtRKf4CyUEAXbHN0GkAdknEIIgq2OIPWchyIPYHUPsSQvIA9gd3wQxZJmOEOMB7I5vgtiMRdMREGB3fBPEhiyT9iB2xxA7o1IZ73fJ5qDX6hjinGIVND07rQdyD1gdQ+ykQhVVn53YKlHfSm51DLEhS0Xx2amtylvzu+O7IRJgXzWHZye3Km8ldscQCfGuqvcrdn5r3grsju+GCLLUZ9MMrErgdsd3QyRITEn59c5UMu6GSJDQjKzKW4ndMUSChKZkzWJWx7c7RCnlGlvHSnuYWB1DpJxSjazn+/prHrA7vgkiQWJc/T/RLsnddsctJ+9QgxrlsxETDHz+700Mm7CrIY30OZu22xjYHd8EMeOnBiQNVrbdANgd3wSxITEcaciy7Qpgd3wTxNzueCzSwGXbBSZ2xxAbsqiP4f/NPf3SM1vRmyCGLII8AYN9tv0IczfEZiyCPJ0lna2A3fHdEBuyJNTqx5n+kzvgtdeJdseHgjxPBnjpNdDumLCrnGKdS/Glz1Q27oZIjEVZhToXYn0O7I7vhkiQJe9Q57ICr73yu+O7IRIkBKiWfY7KhobZHUuQEOR5MqmXvlTZwP7NU5AQ5OlzAV56ZnUMkSDRKl/26NX/ugkiQULNqnUuDwMF7I6H+bzWY0GeJwP9rZCNmyAG7CulXOcCvPbo6ji/Oya8K6lU50K89sA7tjdBbEikHetckI+AiN0xxIYsAXmeC/LxNLI7ZtiQRYRdnQvw2nugT/+FLGL81LkAyz5mdQyxIQvkacB8VscQO6dYzfiyz7U6JnbHEBuyYLvjs/mrDa2ONcDqOO9QKT1qKLkgvqG7ISHAriBP7IzH7rY7vhsSgixpeI2mGPz7/3dICLJQu2OuBtR6Y0V2x5CAhAhojagxiBXO3ZAQI8QAv9b4bGx3fDckBAkIWINqCeR/4AAJQUKtutWo2iZ/ICFICMLVudjJggQklNGlzsdOFORXQCKnw9c6J7uxIL8ECSXxNbjkcMe1gkgQrs7NrhTk1zjYOj8bKbtYAyG/1hzYu8oq1FDAmgb7nneovvrVXO1qLFzN16/++tydr18aQJearkVD6FDn8huSrrFwdTpiInkgCwCuM2IiV4xFBPRrnRRyI1OQhUHWSTHRXpBFEK5Oi4nWgixq1qtOjIm2A1kE4b7WuSE3mgqypHSpqZAIIciinA41HVJWCLIIwtWUSCkBWZQH1wQkplWIESKgX2tupBYhSDDImh6pJgQJQbiaIqkoICHIy1TNAzF7IUYI8noPcqaCiXsIEpDXYYCaLgUkxHiVJltXJZRUOswVuiqhtGNB4rIE5NUwzXVVbMarbRI1G/8Ygc1oPXZrTYjUmw15JaappmQ3HdnNuLIbzsxIvRjyyk61JkfqwWa8gCnXvJQHZuegxy7ULEkgG/KiZn9mSqI889iydzU7TDQU44XOpglCblQLQR97gpioFOTFz/wwUSyIbf7MDxOFA/Fu6CczhNw4FsSHQWuKmNgXxKXhapKYeBfE5m3TxEQ8Ia4OU5dCT4ZbBqgr5rbJ1hWzG+XqiiAHv7ZrQjylrz/tbboxgPQ7c4015UudAR8YuKWmfamjEKF+pn5JfYQYrtT0SR0EZJOKdQmXYCHGtptjXcYlUAiyHWZ3LuXSb8bvgGwq+LN5Jk7K+y3IVp4r0hS1A9kk6Jq4pqgUY5O4a+JabhQLsukKr6YoFGQTzLqOOBRkk/BLuozYHcgmdblmHpUb74Js6nZdxQ1BNumSL9E2IS7qEmmjJlOzD8oGTntd1I2OR2o71xX1Yq+WurCoFK5elxbl6nDV6tpu9D1SqS4vCtXz0sVNSd8fvXWBs7d9RPP7ao8AQU5NRhYIAAAAAAAAAAArAQDjAAAoAAACVlA4TP0HAAAvK8E4EJegoI0k5ZgeFKB/j+9DTSRJyuEzW/j4/SvDTG0bScphxI/9d/nZa/5j1vGtTY1QK3oQkQB85/nTZNgw2uhv1SdZ46LwsLBuNlWGNxl827Zdt7IkWyY5HO6alC2XO///ZyUSwGjERX7vPaL/EiRJciTFawYLGrVoKBvbB+z/P3B+9EWd6Fvyc5rv6ORb8lOZb+fkW/LTNN/LybfkJzDfyMm35Cc838XJt+QHmm/h5Hvy8x/P/v5F8We+JD7PN8T21bHY03J0a19FdRDLO0mF6iJWV/pwbPqxz78+HJ8u7AuoAyNztX0FdfI3M3GpFVSJqFi2pAou1ixVkbFeSQ3Yg6XKqQUey5Td5oKgTbta9RM/ajTpandBZC/u8RKbJMVvr+3xEtOkWFWtZv9jx7RPc9UsZ6loh5GRXbGeTbUN4KL46tf0eImNoKLy6v9kg+ZZkHCcanGyMUC8a3GyMQ9CWp2MeXwmXFqcbMrjPLFanGzMozjttTjZmEd12mpxsjGPpqlXF/5iT/x2qaKRFEadLMAjNqcbgJyswCM+nyLET5bgQcwtMYInM/R8xD3fEy9RIidT9HwPcX8iWJzmkxZzKsCzNIG61J+lRjMqwLM6bYW5+63hZJqegGfT1CuiWge1kwnK1bJDFY4b5u6TYk1R9rHinqEpFOXugsLJFGXbn4p7hudQmHvR8WSOmn/8r7jt+w1zd9mfpUnKxjwElBHVst+nF/OI/4F6ROk4wYJ8qie2h1H9SYhQaQKFsTtiexxNv2BbqTaNN+amftgeSeuyooVapqUCqtUN20OJLHZq1Dq1wtx6YXss0SVYiSJTqqBy9cH2YJCF4ZGic6iwUvXBHg22XH0i69a7Aeeas2yOgb20EMeas2wMsGzVTZBPzVk2Bli2SjeMNGkZ87Qdjpso9qRlU562w3ETxpOWTSGWrboJY09axgDLVt2EsS+1S9MDLFt1E8bGJL01nMzPE5ibMHZEtQ5qJ8Pr5L5jbEzSSfFkfA9Bnym+mKbYmKSC88kEPBQHLFvtuzHGJBUdTmbgoThi2eq7MTLgVGW7NAUPASSF426MREmV2VtnwAIAy1bfjZEwqSfqqADAstV3YyRMUj+kPm8FKhp3YyRMdjfUV1U0VzjuGCmiWqSRKu6JPI57p0gxlepFb0+5xQHLVukmjKKK1YkunwcMApatugkjhRWqD90+OekAYNmqmzASJndB/VXzTwD9OC7GRhyrA1Lnt+0C9nFcjA351PXUZUV+BorPA0YPbhgbk305dVnBnwDgycnzYppiY5Kupj4r/BOAPGMq3YQxJuli6rT6mPsNY1OSMEMNsnUGlq2+G2NTkjDbSIVsnZnHcTE2JmE2DwTZOjOP42JsTFJErUZCbJ0blq3XblsRx8JsIyG2ziKexyW3rZikqGINhNg6i3gel9y2YpLiCjUQYuss4nncuzHCZBNONRBi6yzmcVyM1K5ejEMNhNg697Jt5RfTlHcN5PlAWF1sW/HFNGXzSI6/sZE/BNXHtpVcTLer10iIvzCQLwb+ZUoupjHbSIh/iCD/riO3rYRTxVRqIMQ/cJH/L9yEMeNQUcUaSOw/TujjuBgb8q64Qg0k+j9y8HFcjE1JmXCqgSCbHuZNCDA2JjEONRBkg9jZthWTBHnXSJ6MnratmCTMNpS/+unrP0JuWzFJ7RpqNJ+49rP0tG0tVES1BhQ5gB7HxWTCqWIqNaJAQG9CgMmmJGE28O5LezBvQoDJxqS4K6ozrcG8CQEmG5ME4Ks71UDWrcfCZGOyEXR1qCGYLeMdk43JxpA1Apt5vwZKNiYbQ9YobIcLkzGBZeuVNRQ7VJhsSgYX0+A9HLu5ML8yJTvkshqR3VSYX8LkoItqVDZXdq0w2VGX1MhsquxyYcDFNFmjs6HbpeoKXgNg5l1x5+oMXNNwx/zqzwbec3Wo7qA1We/qwIU1W+lXFy6r2UrqxOxK+m0T4tUfsoaDRLQ6ckENCInYjUki4DUkJEJFScJs4D0oJAJFSaKwNSokmguTMGiNC4nGwiS1u7CGRhw0FSYJQ9Zc2HHZmKSYi2o+7JhsTFLUJTUndkDGJGE28J4Xu1E2xSbwNTV2g2yMGXRNj+2ybIwNYWuO7LNsjE15kTVP9kc2xsa8bKzmys7G2JjXYZhaFhvzOg9Qy2JHFQuzL4sdVyrqyl6WDfOqT6Rm5B992Ex5NU1zTYp0vc2UV+tEakqka23GvDD5dE+LdJ3NmFdkWmtOCnOJzRH1oq5zTY+E24x5xadeUySxtiiy7FpNk0T5FOUFTbGmSmJspry4Odd0SXGbMS9yDjVBSFQL8inYPkfEQaUwL3z2OUKiWJjNPM8REoWKK7/ANX2ABHG76Y8HuiYJiWMRqq8PrWlC4lOQ6gvkaiWkzZjqi6Fq0VpeDVKL1vhy4rUkV06w1gTpdrF7URfzJfDrj33Wc7X4P5AbS5r3pUsR/+9qq7lfugz0XG5Dzf/SJbIh1VrDJVw2Zi/WOkiobMz+nsK9lkuYbMx+nFMt59Jvwu+M2VXwR+tMnx3125i9OH8sS0PUbswuMdf0NUSlKLuEXbPXEMXC7E0WdTVEoTD7ccijpRycCrNL+LWWOBRml664lhLvwuzSRddSAiPFrewSTMgsjQSS9AVcEkTcBGpd0VKg5lpZNBR6tdXaolr01VCri0pdcNXu9UWxrr32xU2FdLF9hVOgK+dUS4wDfU9j/UtjBAA=`,ji=Q(`<span> </span>`),Mi=Q(`<pre></pre>`);function Ni(e,t){it(t,!0);let n=(e,t)=>{let n=[],r=e=>{let t=n.at(-1);t&&t.className===e.className?t.text+=e.text:e.text&&n.push(e)},i=0;for(let n of t)n.start>i&&r({text:e.slice(i,n.start)}),r({className:n.name,text:e.slice(n.start,n.end)}),i=n.end;return i<e.length&&r({text:e.slice(i)}),n},r=F(void 0),i=Qt(()=>n(t.text,t.ranges));Un(()=>{t.text,Z(r),wr().then(()=>{Z(r)&&(Z(r).scrollTop=Z(r).scrollHeight)})});var a=Mi();ni(a,21,()=>Z(i),Qr,(e,t)=>{var n=ji(),r=R(n,!0);k(n),Yn(()=>{gi(n,1,pi(Z(t).className)),Gr(r,Z(t).text)}),$(e,n)}),k(a),ki(a,e=>I(r,e),()=>Z(r)),Yn(()=>bi(a,`data-terminal-id`,t.id)),$(e,a),at()}const Pi={30:`black`,31:`red`,32:`green`,33:`yellow`,34:`blue`,35:`magenta`,36:`cyan`,37:`white`,90:`bright-black`,91:`bright-red`,92:`bright-green`,93:`bright-yellow`,94:`bright-blue`,95:`bright-magenta`,96:`bright-cyan`,97:`bright-white`},Fi=e=>{if(e.ctrlKey&&e.key.length===1){let t=e.key.toUpperCase().charCodeAt(0)-64;if(t>=1&&t<=26)return String.fromCharCode(t)}if(e.key===`Enter`)return`\r`;if(e.key===`Backspace`)return``;if(e.key===`Tab`)return` `;if(e.key===`Escape`)return`\x1B`;if(e.key===`ArrowUp`)return`\x1B[A`;if(e.key===`ArrowDown`)return`\x1B[B`;if(e.key===`ArrowRight`)return`\x1B[C`;if(e.key===`ArrowLeft`)return`\x1B[D`;if(e.key===`Home`)return`\x1B[H`;if(e.key===`End`)return`\x1B[F`;if(e.key===`Delete`)return`\x1B[3~`;if(e.key===`PageUp`)return`\x1B[5~`;if(e.key===`PageDown`)return`\x1B[6~`;if(e.key.length===1&&!e.metaKey&&!e.altKey)return e.key},Ii=e=>{let t=e.lines.map(e=>e.text).join(``).replace(/\x1b(?!\[)/g,``),n=[],r=[[]],i=0,a=0,o=``,s=!1,c=()=>(r[i]??=[],r[i]),l=e=>{let t=c();for(;t.length<a;)t.push({text:` `,foreground:``,bold:!1});t[a]={text:e,foreground:o,bold:s},a+=1},u=e=>{let t=c();if(e===2)r[i]=[],a=0;else if(e===1)for(let e=0;e<=a;e+=1)t[e]={text:` `,foreground:``,bold:!1};else t.length=a},d=e=>{let t=e?e.split(`;`).map(Number):[0];for(let e of t)e===0?(o=``,s=!1):e===1?s=!0:e===22?s=!1:e===39?o=``:Pi[e]&&(o=Pi[e])};for(let e=0;e<t.length;e+=1){let n=t[e];if(n===`\x1B`&&t[e+1]===`[`){let n=t.slice(e).match(/^\x1b\[([0-9;?]*)([A-Za-z~])/);if(!n)continue;e+=n[0].length-1;let r=n[1],o=n[2],s=Number(r.split(`;`)[0])||0;o===`m`?d(r):o===`K`?u(s):o===`G`?a=Math.max(0,s-1):o===`C`?a+=s||1:o===`D`?a=Math.max(0,a-(s||1)):o===`A`?(i=Math.max(0,i-(s||1)),a=Math.min(a,c().length)):o===`B`&&(i+=s||1,a=Math.min(a,c().length));continue}if(n===`\r`)a=0;else if(n===`
745
- `)i+=1,a=0,c();else if(n===`\b`||n===``){a=Math.max(0,a-1);let e=c();a===e.length-1?e.length=a:e[a]&&(e[a]={text:` `,foreground:``,bold:!1})}else if(n===` `){let e=a+(8-a%8);for(;a<e;)l(` `)}else n>=` `&&l(n)}let f=``;return r.forEach((e,t)=>{t>0&&(f+=`
746
- `),e.forEach(e=>{let t=f.length;f+=e.text,e.foreground&&n.push({name:`cod-ansi-${e.bold&&!e.foreground.startsWith(`bright-`)?`bright-${e.foreground}`:e.foreground}`,start:t,end:f.length})})}),{text:f,ranges:n}};var Li=Q(`<button type="button"><div class="terminal-tab-background m3-layer"><span> </span></div></button>`),Ri=Q(`<p class="empty">No tasks have started yet</p>`),zi=Q(`<img aria-label="running" class="task-loader" alt="running"/>`),Bi=Q(`<article><button class="task-summary m3-layer" type="button"><span class="task-chevron" aria-hidden="true"> </span> <span class="task-label"><span class="task-title"> </span> <!></span></button> <!></article>`),Vi=Q(`<div class="task-list"><!> <!></div>`),Hi=Q(`<div class="empty terminal-empty"><button class="m3-layer" type="button">+ bash</button></div>`),Ui=Q(`<dialog aria-label="Terminal" class="terminal-app" data-terminal-app="" closedby="any" tabindex="-1"><header class="terminal-header"><nav aria-label="Terminal tabs" class="terminal-tabs"><button type="button"><div class="terminal-tab-background m3-layer"><span>Tasks</span></div></button> <!></nav> <button aria-label="New terminal" class="new-terminal" type="button"><div class="new-terminal-background m3-layer"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24" aria-hidden="true"><path fill="currentColor" d="M11 13v3q0 .425.288.713T12 17t.713-.288T13 16v-3h3q.425 0 .713-.288T17 12t-.288-.712T16 11h-3V8q0-.425-.288-.712T12 7t-.712.288T11 8v3H8q-.425 0-.712.288T7 12t.288.713T8 13zm-6 8q-.825 0-1.412-.587T3 19V5q0-.825.588-1.412T5 3h14q.825 0 1.413.588T21 5v14q0 .825-.587 1.413T19 21zm0-2h14V5H5zM5 5v14z"></path></svg></div></button></header> <!></dialog>`);function Wi(e,t){it(t,!0);let n=F(void 0),r=!1,i=()=>t.terminals.filter(e=>e.kind===`task`),a=()=>t.terminals.filter(e=>e.kind===`terminal`),o=()=>a().find(e=>e.id===t.activeTab),s=e=>Ii(e),c=e=>{let n=o();if(!n||n.kind!==`terminal`)return;let r=Fi(e);r&&(e.preventDefault(),t.onInput(n.id,r))};Un(()=>{Z(n)&&(t.open&&!Z(n).open?(Z(n).showModal(),Z(n).focus({preventScroll:!0})):!t.open&&Z(n).open&&(r=!0,Z(n).close()))});var l=Ui(),u=R(l),d=R(u),f=R(d);let p;ni(z(f,2),17,a,e=>e.id,(e,n)=>{var r=Li();let i;var a=R(r),o=R(a),s=R(o,!0);k(o),k(a),k(r),Yn(()=>{bi(r,`aria-current`,t.activeTab===Z(n).id?`page`:void 0),i=gi(r,1,`terminal-tab`,null,i,{active:t.activeTab===Z(n).id}),Gr(s,Z(n).title)}),Lr(`click`,r,()=>t.onSelectTab(Z(n).id)),$(e,r)}),k(d);var m=z(d,2);k(u);var h=z(u,2),g=e=>{var n=Vi(),r=R(n),a=e=>{$(e,Ri())},o=Qt(()=>i().length===0);Zr(r,e=>{Z(o)&&e(a)}),ni(z(r,2),17,i,e=>e.id,(e,n)=>{var r=Bi();let i;var a=R(r),o=R(a),c=R(o);k(o);var l=z(o,2),u=R(l),d=R(u,!0);k(u);var f=z(u,2),p=e=>{var t=zi();Yn(()=>bi(t,`src`,Ai)),$(e,t)};Zr(f,e=>{Z(n).running&&e(p)}),k(l),k(a);var m=z(a,2),h=e=>{let t=Qt(()=>s(Z(n)));Ni(e,{get id(){return Z(n).id},get text(){return Z(t).text},get ranges(){return Z(t).ranges}})};Zr(m,e=>{Z(n).collapsed||e(h)}),k(r),Yn(()=>{i=gi(r,1,`task-entry`,null,i,{error:Z(n).failed,finished:!Z(n).running}),bi(a,`aria-expanded`,!Z(n).collapsed),Gr(c,`[${Z(n).collapsed?`+`:`-`}]`),Gr(d,Z(n).title)}),Lr(`click`,a,()=>t.onToggleTask(Z(n).id)),$(e,r)}),k(n),$(e,n)},_=e=>{let n=Qt(()=>s(o()));Ni(e,{get id(){return t.activeTab},get text(){return Z(n).text},get ranges(){return Z(n).ranges}})},v=Qt(()=>o()),y=e=>{var n=Hi(),r=R(n);k(n),Lr(`click`,r,function(...e){t.onNewTerminal?.apply(this,e)}),$(e,n)};Zr(h,e=>{t.activeTab===`tasks`?e(g):Z(v)?e(_,1):e(y,-1)}),k(l),ki(l,e=>I(n,e),()=>Z(n)),Yn(()=>{bi(f,`aria-current`,t.activeTab===`tasks`?`page`:void 0),p=gi(f,1,`terminal-tab`,null,p,{active:t.activeTab===`tasks`})}),Ir(`close`,l,()=>{if(r){r=!1;return}t.onClose()}),Lr(`keydown`,l,c),Lr(`click`,f,()=>t.onSelectTab(`tasks`)),Lr(`click`,m,function(...e){t.onNewTerminal?.apply(this,e)}),$(e,l),at()}Rr([`keydown`,`click`]);var Gi=Q(`<button class="app-entry alive m3-layer svelte-1ywbbn9" type="button"><span class="svelte-1ywbbn9"> </span></button>`),Ki=Q(`<button class="app-entry m3-layer svelte-1ywbbn9" type="button"><span class="svelte-1ywbbn9">Launch Firefox</span></button>`),qi=Q(`<div class="screen svelte-1ywbbn9"></div> <!> <div><nav class="bar svelte-1ywbbn9" aria-label="Open windows"><!> <!> <button type="button" title="Terminal"><span class="svelte-1ywbbn9">Terminal</span></button></nav></div> <div><img alt="Loading Cod" class="svelte-1ywbbn9"/></div>`,1);const Ji={hash:`svelte-1ywbbn9`,code:`.screen.svelte-1ywbbn9 {position:absolute;z-index:10;inset:0;overflow:visible;canvas {max-width:none;max-height:none;object-fit:none;}}.bar-anchor.svelte-1ywbbn9 {display:contents;--transition: 220ms cubic-bezier(0.2, 0, 0, 1);}.bar.svelte-1ywbbn9 {position:fixed;z-index:100;bottom:0;left:50%;display:flex;align-items:center;gap:0.25rem;width:max-content;max-width:calc(100vw - 1rem);height:2.25rem;overflow:visible;padding:0.25rem;background:transparent;translate:-50% 0;transition:height var(--transition),
743
+ `)}}}function mt(e){let t=ut.get(e);t&&(d(e,`message`,{value:t.message}),d(e,`stack`,{value:t.stack}))}function N(e,t){e.f=e.f&-7169|t}function ht(e){e.f&512||e.deps===null?N(e,x):N(e,C)}function gt(e){if(e!==null)for(let t of e)!(t.f&2)||!(t.f&65536)||(t.f^=re,gt(t.deps))}function _t(e,t,n){e.f&2048?t.add(e):e.f&4096&&n.add(e),gt(e.deps),N(e,x)}let vt=null,P=null,yt=null,bt=null,xt=null,St=!1,Ct=!1,wt=null,Tt=null;var Et=0,Dt=new Set;let Ot=1;var kt=class e{id=Ot++;#e=!1;linked=!0;#t=null;#n=null;async_deriveds=new Map;current=new Map;previous=new Map;unblocked=new Set;#r=new Set;#i=new Set;#a=new Set;#o=0;#s=new Map;#c=null;#l=[];#u=[];#d=new Set;#f=new Set;#p=new Map;#m=new Set;is_fork=!1;#h=!1;#g(){if(this.is_fork)return!0;for(let n of this.#s.keys()){for(var e=n,t=!1;e.parent!==null;){if(this.#p.has(e)){t=!0;break}e=e.parent}if(!t)return!0}return!1}skip_effect(e){this.#p.has(e)||this.#p.set(e,{d:[],m:[]}),this.#m.delete(e)}unskip_effect(e,t=e=>this.schedule(e)){var n=this.#p.get(e);if(n){this.#p.delete(e);for(var r of n.d)N(r,S),t(r);for(r of n.m)N(r,C),t(r)}this.#m.add(e)}#_(){if(this.#e=!0,Et++>1e3&&(this.#C(),jt()),o)for(let e of this.current.keys())Dt.add(e);if(!this.#g()){for(let e of this.#d)this.#f.delete(e),N(e,S),this.schedule(e);for(let e of this.#f)N(e,C),this.schedule(e)}let t=this.#l;this.#l=[],this.apply();var n=wt=[],r=[],i=Tt=[];for(let e of t)try{this.#v(e,n,r)}catch(t){throw Rt(e),t}if(P=null,i.length>0){var a=e.ensure();for(let e of i)a.schedule(e)}if(wt=null,Tt=null,this.#g()){this.#x(r),this.#x(n);for(let[e,t]of this.#p)Lt(e,t);i.length>0&&P.#_();return}let s=this.#y();if(s){s.#b(this);return}this.#d.clear(),this.#f.clear();for(let e of this.#r)e(this);this.#r.clear(),yt=this,Nt(r),Nt(n),yt=null,this.#c?.resolve();var c=P;if(this.linked&&this.#o===0&&this.#C(),this.#l.length>0){c===null&&(c=this,this.#S());let e=c;e.#l.push(...this.#l.filter(t=>!e.#l.includes(t)))}c!==null&&c.#_()}#v(e,t,n){e.f^=x;for(var r=e.first;r!==null;){var i=r.f,a=(i&96)!=0;if(!(a&&i&1024||i&8192||this.#p.has(r))&&r.fn!==null){a?r.f^=x:i&4?t.push(r):yr(r)&&(i&16&&this.#f.add(r),wr(r));var o=r.first;if(o!==null){r=o;continue}}for(;r!==null;){var s=r.next;if(s!==null){r=s;break}r=r.parent}}}#y(){for(var e=this.#t;e!==null;){if(!e.is_fork){for(let[t,[,n]]of this.current)if(e.current.has(t)&&!n)return e}e=e.#t}return null}#b(e){for(let[t,n]of e.current)!this.previous.has(t)&&e.previous.has(t)&&this.previous.set(t,e.previous.get(t)),this.current.set(t,n);for(let[t,n]of e.async_deriveds){let e=this.async_deriveds.get(t);e&&n.promise.then(e.resolve)}let t=e=>{var n=e.reactions;if(n!==null)for(let e of n){var r=e.f;if(r&2)t(e);else{var i=e;r&4194320&&!this.async_deriveds.has(i)&&(this.#f.delete(i),N(i,S),this.schedule(i))}}};for(let e of this.current.keys())t(e);this.oncommit(()=>e.discard()),e.#C(),P=this,this.#_()}#x(e){for(var t=0;t<e.length;t+=1)_t(e[t],this.#d,this.#f)}capture(e,t,n=!1){e.v!==E&&!this.previous.has(e)&&this.previous.set(e,e.v),e.f&8388608||(this.current.set(e,[t,n]),bt?.set(e,t)),this.is_fork||(e.v=t)}activate(){P=this}deactivate(){P=null,bt=null}flush(){try{o&&Dt.clear(),Ct=!0,P=this,this.#_()}finally{if(Et=0,xt=null,wt=null,Tt=null,Ct=!1,P=null,bt=null,cn.clear(),o)for(let e of Dt)e.updated=null}}discard(){for(let e of this.#i)e(this);this.#i.clear(),this.#a.clear(),this.#C()}register_created_effect(e){this.#u.push(e)}increment(e,t){if(this.#o+=1,e){let e=this.#s.get(t)??0;this.#s.set(t,e+1)}}decrement(e,t){if(--this.#o,e){let e=this.#s.get(t)??0;e===1?this.#s.delete(t):this.#s.set(t,e-1)}this.#h||(this.#h=!0,ct(()=>{this.#h=!1,this.linked&&this.flush()}))}transfer_effects(e,t){for(let t of e)this.#d.add(t);for(let e of t)this.#f.add(e);e.clear(),t.clear()}oncommit(e){this.#r.add(e)}ondiscard(e){this.#i.add(e)}on_fork_commit(e){this.#a.add(e)}run_fork_commit_callbacks(){for(let e of this.#a)e(this);this.#a.clear()}settled(){return(this.#c??=b()).promise}static ensure(){if(P===null){let t=P=new e;t.#S(),!Ct&&!St&&ct(()=>{t.#e||t.flush()})}return P}apply(){bt=null}schedule(e){if(xt=e,e.b?.is_pending&&e.f&16777228&&!(e.f&32768)){e.b.defer_effect(e);return}for(var t=e;t.parent!==null;){t=t.parent;var n=t.f;if(wt!==null&&t===K&&(U===null||!(U.f&2)))return;if(n&96){if(!(n&1024))return;t.f^=x}}this.#l.push(t)}#S(){vt===null?vt=this:(vt.#n=this,this.#t=vt),vt=this}#C(){var e=this.#t,t=this.#n;e===null||(e.#n=t),t===null?vt=e:t.#t=e,this.linked=!1}};function At(e){var t=St;St=!0;try{var n;for(e&&(P!==null&&!P.is_fork&&P.flush(),n=e());;){if(lt(),P===null)return n;P.flush()}}finally{St=t}}function jt(){if(o){var e=new Map;for(let n of P.current.keys())for(let[r,i]of n.updated??[]){var t=e.get(r);t||(t={error:i.error,count:0},e.set(r,t)),t.count+=i.count}for(let t of e.values())t.error&&console.error(t.error)}try{Ce()}catch(e){o&&d(e,`stack`,{value:``}),ft(e,xt)}}let Mt=null;function Nt(e){var t=e.length;if(t!==0){for(var n=0;n<t;){var r=e[n++];if(!(r.f&24576)&&yr(r)&&(Mt=new Set,wr(r),r.deps===null&&r.first===null&&r.nodes===null&&r.teardown===null&&r.ac===null&&nr(r),Mt?.size>0)){cn.clear();for(let e of Mt){if(e.f&24576)continue;let t=[e],n=e.parent;for(;n!==null;)Mt.has(n)&&(Mt.delete(n),t.push(n)),n=n.parent;for(let e=t.length-1;e>=0;e--){let n=t[e];n.f&24576||wr(n)}}Mt.clear()}}Mt=null}}function Pt(e,t,n,r){if(!n.has(e)&&(n.add(e),e.reactions!==null))for(let i of e.reactions){let e=i.f;e&2?Pt(i,t,n,r):e&4194320&&!(e&2048)&&Ft(i,t,r)&&(N(i,S),It(i))}}function Ft(e,t,n){let r=n.get(e);if(r!==void 0)return r;if(e.deps!==null)for(let r of e.deps){if(l.call(t,r))return!0;if(r.f&2&&Ft(r,t,n))return n.set(r,!0),!0}return n.set(e,!1),!1}function It(e){P.schedule(e)}function Lt(e,t){if(!(e.f&32&&e.f&1024)){e.f&2048?t.d.push(e):e.f&4096&&t.m.push(e),N(e,x);for(var n=e.first;n!==null;)Lt(n,t),n=n.next}}function Rt(e){N(e,x);for(var t=e.first;t!==null;)Rt(t),t=t.next}function zt(e){let t=0,n=fn(0),r;return o&&Je(n,`createSubscriber version`),()=>{Vn()&&(Z(n),Jn(()=>(t===0&&(r=Or(()=>e(()=>gn(n)))),t+=1,()=>{ct(()=>{--t,t===0&&(r?.(),r=void 0,gn(n))})})))}}var Bt=589824;function Vt(e,t,n,r){new Ht(e,t,n,r)}var Ht=class{parent;is_pending=!1;transform_error;#e;#t=O?k:null;#n;#r;#i;#a=null;#o=null;#s=null;#c=null;#l=0;#u=0;#d=!1;#f=new Set;#p=new Set;#m=null;#h=zt(()=>(this.#m=fn(this.#l),o&&Je(this.#m,`$effect.pending()`),()=>{this.#m=null}));constructor(e,t,n,r){this.#e=e,this.#n=t,this.#r=e=>{var t=K;t.b=this,t.f|=128,n(e)},this.parent=K.b,this.transform_error=r??this.parent?.transform_error??(e=>e),this.#i=Xn(()=>{if(O){let e=this.#t;Ve();let t=e.data===`[!`;if(e.data.startsWith(`[?`)){let t=JSON.parse(e.data.slice(2));this.#_(t)}else t?this.#v():this.#g()}else this.#y()},Bt),O&&(this.#e=k)}#g(){try{this.#a=V(()=>this.#r(this.#e))}catch(e){this.error(e)}}#_(e){let t=this.#n.failed;t&&(this.#s=V(()=>{t(this.#e,()=>e,()=>()=>{})}))}#v(){let e=this.#n.pending;e&&(this.is_pending=!0,this.#o=V(()=>e(this.#e)),ct(()=>{var e=this.#c=document.createDocumentFragment(),t=R();e.append(t),this.#a=this.#x(()=>V(()=>this.#r(t))),this.#u===0&&(this.#e.before(e),this.#c=null,rr(this.#o,()=>{this.#o=null}),this.#b(P))}))}#y(){try{if(this.is_pending=this.has_pending_snippet(),this.#u=0,this.#l=0,this.#a=V(()=>{this.#r(this.#e)}),this.#u>0){var e=this.#c=document.createDocumentFragment();sr(this.#a,e);let t=this.#n.pending;this.#o=V(()=>t(this.#e))}else this.#b(P)}catch(e){this.error(e)}}#b(e){this.is_pending=!1,e.transfer_effects(this.#f,this.#p)}defer_effect(e){_t(e,this.#f,this.#p)}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!this.#n.pending}#x(e){var t=K,n=U,r=M;dr(this.#i),G(this.#i),Qe(this.#i.ctx);try{return kt.ensure(),e()}catch(e){return dt(e),null}finally{dr(t),G(n),Qe(r)}}#S(e,t){if(!this.has_pending_snippet()){this.parent&&this.parent.#S(e,t);return}this.#u+=e,this.#u===0&&(this.#b(t),this.#o&&rr(this.#o,()=>{this.#o=null}),this.#c&&=(this.#e.before(this.#c),null))}update_pending_count(e,t){this.#S(e,t),this.#l+=e,!(!this.#m||this.#d)&&(this.#d=!0,ct(()=>{this.#d=!1,this.#m&&mn(this.#m,this.#l)}))}get_effect_pending(){return this.#h(),Z(this.#m)}error(e){if(!this.#n.onerror&&!this.#n.failed)throw e;P?.is_fork?(this.#a&&P.skip_effect(this.#a),this.#o&&P.skip_effect(this.#o),this.#s&&P.skip_effect(this.#s),P.on_fork_commit(()=>{this.#C(e)})):this.#C(e)}#C(e){this.#a&&=(H(this.#a),null),this.#o&&=(H(this.#o),null),this.#s&&=(H(this.#s),null),O&&(A(this.#t),He(),A(Ue()));var t=this.#n.onerror;let n=this.#n.failed;var r=!1,i=!1;let a=()=>{if(r){ze();return}r=!0,i&&Oe(),this.#s!==null&&rr(this.#s,()=>{this.#s=null}),this.#x(()=>{this.#y()})},o=e=>{try{i=!0,t?.(e,a),i=!1}catch(e){ft(e,this.#i&&this.#i.parent)}n&&(this.#s=this.#x(()=>{try{return V(()=>{var t=K;t.b=this,t.f|=128,n(this.#e,()=>e,()=>a)})}catch(e){return ft(e,this.#i.parent),null}}))};ct(()=>{var t;try{t=this.transform_error(e)}catch(e){ft(e,this.#i&&this.#i.parent);return}typeof t==`object`&&t&&typeof t.then==`function`?t.then(o,e=>ft(e,this.#i&&this.#i.parent)):o(t)})}};function Ut(e,t,n,r){let i=at()?Yt:$t;var a=e.filter(e=>!e.settled);if(n.length===0&&a.length===0){r(t.map(i));return}var o=K,s=Wt(),c=a.length===1?a[0].promise:a.length>1?Promise.all(a.map(e=>e.promise)):null;function l(e){if(!(o.f&16384)){s();try{r(e)}catch(e){ft(e,o)}Gt()}}var u=Kt();if(n.length===0){c.then(()=>l(t.map(i))).finally(u);return}function d(){Promise.all(n.map(e=>Zt(e))).then(e=>l([...t.map(i),...e])).catch(e=>ft(e,o)).finally(u)}c?c.then(()=>{s(),d(),Gt()}):d()}function Wt(){var e=K,t=U,n=M,r=P;if(o)var i=$e;return function(a=!0){dr(e),G(t),Qe(n),a&&!(e.f&16384)&&(r?.activate(),r?.apply()),o&&(qt(null),et(i))}}function Gt(e=!0){dr(null),G(null),Qe(null),e&&P?.deactivate(),o&&(qt(null),et(null))}function Kt(){var e=K,t=e.b,n=P,r=t.is_rendered();return t.update_pending_count(1,n),n.increment(r,e),()=>{t.update_pending_count(-1,n),n.decrement(r,e)}}let F=null;function qt(e){F=e}const Jt=new Set;function Yt(e){return K!==null&&(K.f|=524288),{ctx:M,deps:null,effects:null,equals:Ge,f:2050,fn:e,reactions:null,rv:0,v:E,wv:0,parent:K,ac:null}}const Xt=Symbol(`obsolete`);function Zt(e,t,n){let r=K;r===null&&ge();var i=void 0,a=fn(E);o&&(a.label=t??e.toString());var s=!U,c=new Set;return qn(()=>{var t=K;o&&(F={effect:t,effect_deps:new Set,warned:!1});var l=b();i=l.promise;try{Promise.resolve(e()).then(l.resolve,e=>{e!==me&&l.reject(e)}).finally(Gt)}catch(e){l.reject(e),Gt()}if(o){if(F){if(t.deps!==null)for(let e=0;e<Y;e+=1)F.effect_deps.add(t.deps[e]);if(J!==null)for(let e=0;e<J.length;e+=1)F.effect_deps.add(J[e])}F=null}var u=P;if(s){if(t.f&32768)var d=Kt();if(r.b.is_rendered())u.async_deriveds.get(t)?.reject(Xt);else for(let e of c.values())e.reject(Xt);c.add(l),u.async_deriveds.set(t,l)}let f=(e,r=void 0)=>{o&&(F=null),d?.(),c.delete(l),r!==Xt&&(u.activate(),r?(a.f|=ae,mn(a,r)):(a.f&8388608&&(a.f^=ae),mn(a,e),o&&n!==void 0&&(Jt.add(a),setTimeout(()=>{Jt.has(a)&&!(t.f&16384)&&(D(a.label,n),Jt.delete(a))}))),u.deactivate())};l.promise.then(f,e=>f(null,e||`unknown`))}),Hn(()=>{for(let e of c)e.reject(Xt)}),o&&(a.f|=4194304),new Promise(e=>{function t(n){function r(){n===i?e(a):t(i)}n.then(r,r)}t(i)})}function Qt(e){let t=Yt(e);return fr(t),t}function $t(e){let t=Yt(e);return t.equals=qe,t}function en(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n<t.length;n+=1)H(t[n])}}let tn=[];function nn(e){var t,n=K,r=e.parent;if(!lr&&r!==null&&e.v!==E&&r.f&24576)return Pe(),e.v;if(dr(r),o){let r=sn;ln(new Set);try{l.call(tn,e)&&_e(),tn.push(e),e.f&=-65537,en(e),t=xr(e)}finally{dr(n),ln(r),tn.pop()}}else try{e.f&=-65537,en(e),t=xr(e)}finally{dr(n)}return t}function rn(e){var t=nn(e);if(!e.equals(t)&&(e.wv=vr(),(!P?.is_fork||e.deps===null)&&(P===null?e.v=t:(P.capture(e,t,!0),yt?.capture(e,t,!0)),e.deps===null))){N(e,x);return}lr||(bt===null?ht(e):(Vn()||P?.is_fork)&&bt.set(e,t))}function an(e){if(e.effects!==null)for(let t of e.effects)(t.teardown||t.ac)&&(t.teardown?.(),t.ac?.abort(me),t.fn!==null&&(t.teardown=v),t.ac=null,Cr(t,0),$n(t))}function on(e){if(e.effects!==null)for(let t of e.effects)t.teardown&&t.fn!==null&&wr(t)}let sn=new Set;const cn=new Map;function ln(e){sn=e}let un=!1;function dn(){un=!0}function fn(e,t){return{f:0,v:e,reactions:null,equals:Ge,rv:0,wv:0}}function I(e,t){let n=fn(e,t);return fr(n),n}function pn(e,t=!1,n=!0){let r=fn(e);return t||(r.equals=qe),r}function L(e,t,n=!1){U!==null&&(!W||U.f&131072)&&at()&&U.f&4325394&&(q===null||!l.call(q,e))&&De();let r=n?yn(t):t;return o&&Ye(r,e.label),mn(e,r,Tt)}function mn(e,t,n=null){if(!e.equals(t)){cn.set(e,lr?t:e.v);var r=kt.ensure();if(r.capture(e,t),o){if(K!==null){e.updated??=new Map;let t=(e.updated.get(``)?.count??0)+1;if(e.updated.set(``,{error:null,count:t}),t>5){let t=Xe(`updated at`);if(t!==null){let n=e.updated.get(t.stack);n||(n={error:t,count:0},e.updated.set(t.stack,n)),n.count++}}}K!==null&&(e.set_during_effect=!0)}if(e.f&2){let t=e;e.f&2048&&nn(t),bt===null&&ht(t)}e.wv=vr(),_n(e,S,n),at()&&K!==null&&K.f&1024&&!(K.f&96)&&(X===null?pr([e]):X.push(e)),!r.is_fork&&sn.size>0&&!un&&hn()}return t}function hn(){un=!1;for(let e of sn){e.f&1024&&N(e,C);let t;try{t=yr(e)}catch{t=!0}t&&wr(e)}sn.clear()}function gn(e){L(e,e.v+1)}function _n(e,t,n){var r=e.reactions;if(r!==null)for(var i=at(),a=r.length,o=0;o<a;o++){var s=r[o],c=s.f;if(!(!i&&s===K)){var l=(c&S)==0;if(l&&N(s,t),c&131072)sn.add(s);else if(c&2){var u=s;bt?.delete(u),c&65536||(c&512&&(K===null||!(K.f&2097152))&&(s.f|=re),_n(u,C,n))}else if(l){var d=s;c&16&&Mt!==null&&Mt.add(d),n===null?It(d):n.push(d)}}}}const vn=/^[a-zA-Z_$][a-zA-Z_$0-9]*$/;function yn(e){if(typeof e!=`object`||!e||oe in e)return e;let t=g(e);if(t!==m&&t!==h)return e;var n=new Map,r=s(e),i=I(0),a=null,c=gr,l=e=>{if(gr===c)return e();var t=U,n=gr;G(null),_r(c);var r=e();return G(t),_r(n),r};r&&(n.set(`length`,I(e.length,a)),o&&(e=Cn(e)));var u=``;let d=!1;function p(e){if(!d){d=!0,u=e,Je(i,`${u} version`);for(let[e,t]of n)Je(t,bn(u,e));d=!1}}return new Proxy(e,{defineProperty(e,t,r){(!(`value`in r)||r.configurable===!1||r.enumerable===!1||r.writable===!1)&&Te();var i=n.get(t);return i===void 0?l(()=>{var e=I(r.value,a);return n.set(t,e),o&&typeof t==`string`&&Je(e,bn(u,t)),e}):L(i,r.value,!0),!0},deleteProperty(e,t){var r=n.get(t);if(r===void 0){if(t in e){let e=l(()=>I(E,a));n.set(t,e),gn(i),o&&Je(e,bn(u,t))}}else L(r,E),gn(i);return!0},get(t,r,i){if(r===oe)return e;if(o&&r===ce)return p;var s=n.get(r),c=r in t;if(s===void 0&&(!c||f(t,r)?.writable)&&(s=l(()=>{var e=I(yn(c?t[r]:E),a);return o&&Je(e,bn(u,r)),e}),n.set(r,s)),s!==void 0){var d=Z(s);return d===E?void 0:d}return Reflect.get(t,r,i)},getOwnPropertyDescriptor(e,t){var r=Reflect.getOwnPropertyDescriptor(e,t);if(r&&`value`in r){var i=n.get(t);i&&(r.value=Z(i))}else if(r===void 0){var a=n.get(t),o=a?.v;if(a!==void 0&&o!==E)return{enumerable:!0,configurable:!0,value:o,writable:!0}}return r},has(e,t){if(t===oe)return!0;var r=n.get(t),i=r!==void 0&&r.v!==E||Reflect.has(e,t);return(r!==void 0||K!==null&&(!i||f(e,t)?.writable))&&(r===void 0&&(r=l(()=>{var n=I(i?yn(e[t]):E,a);return o&&Je(n,bn(u,t)),n}),n.set(t,r)),Z(r)===E)?!1:i},set(e,t,s,c){var d=n.get(t),p=t in e;if(r&&t===`length`)for(var m=s;m<d.v;m+=1){var h=n.get(m+``);h===void 0?m in e&&(h=l(()=>I(E,a)),n.set(m+``,h),o&&Je(h,bn(u,m))):L(h,E)}if(d===void 0)(!p||f(e,t)?.writable)&&(d=l(()=>I(void 0,a)),o&&Je(d,bn(u,t)),L(d,yn(s)),n.set(t,d));else{p=d.v!==E;var g=l(()=>yn(s));L(d,g)}var _=Reflect.getOwnPropertyDescriptor(e,t);if(_?.set&&_.set.call(c,s),!p){if(r&&typeof t==`string`){var v=n.get(`length`),y=Number(t);Number.isInteger(y)&&y>=v.v&&L(v,y+1)}gn(i)}return!0},ownKeys(e){Z(i);var t=Reflect.ownKeys(e).filter(e=>{var t=n.get(e);return t===void 0||t.v!==E});for(var[r,a]of n)a.v!==E&&!(r in e)&&t.push(r);return t},setPrototypeOf(){Ee()}})}function bn(e,t){return typeof t==`symbol`?`${e}[Symbol(${t.description??``})]`:vn.test(t)?`${e}.${t}`:/^\d+$/.test(t)?`${e}[${t}]`:`${e}['${t}']`}function xn(e){try{if(typeof e==`object`&&e&&oe in e)return e[oe]}catch{}return e}const Sn=new Set([`copyWithin`,`fill`,`pop`,`push`,`reverse`,`shift`,`sort`,`splice`,`unshift`]);function Cn(e){return new Proxy(e,{get(e,t,n){var r=Reflect.get(e,t,n);return Sn.has(t)?function(...e){dn();var t=r.apply(this,e);return hn(),t}:r}})}function wn(){let e=Array.prototype,t=Array.__svelte_cleanup;t&&t();let{indexOf:n,lastIndexOf:r,includes:i}=e;e.indexOf=function(e,t){let r=n.call(this,e,t);if(r===-1){for(let n=t??0;n<this.length;n+=1)if(xn(this[n])===e){Re(`array.indexOf(...)`);break}}return r},e.lastIndexOf=function(e,t){let n=r.call(this,e,t??this.length-1);if(n===-1){for(let n=0;n<=(t??this.length-1);n+=1)if(xn(this[n])===e){Re(`array.lastIndexOf(...)`);break}}return n},e.includes=function(e,t){let n=i.call(this,e,t);if(!n){for(let t=0;t<this.length;t+=1)if(xn(this[t])===e){Re(`array.includes(...)`);break}}return n},Array.__svelte_cleanup=()=>{e.indexOf=n,e.lastIndexOf=r,e.includes=i}}var Tn,En,Dn,On;function kn(){if(Tn===void 0){Tn=window,En=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;Dn=f(t,`firstChild`).get,On=f(t,`nextSibling`).get,_(e)&&(e[ue]=void 0,e[le]=null,e[de]=void 0,e.__e=void 0),_(n)&&(n[fe]=void 0),o&&(e.__svelte_meta=null,wn())}}function R(e=``){return document.createTextNode(e)}function An(e){return Dn.call(e)}function jn(e){return On.call(e)}function z(e,t){if(!O)return An(e);var n=An(k);if(n===null)n=k.appendChild(R());else if(t&&n.nodeType!==3){var r=R();return n?.before(r),A(r),r}return t&&In(n),A(n),n}function Mn(e,t=!1){if(!O){var n=An(e);return n instanceof Comment&&n.data===``?jn(n):n}if(t){if(k?.nodeType!==3){var r=R();return k?.before(r),A(r),r}In(k)}return k}function B(e,t=1,n=!1){let r=O?k:e;for(var i;t--;)i=r,r=jn(r);if(!O)return r;if(n){if(r?.nodeType!==3){var a=R();return r===null?i?.after(a):r.before(a),A(a),a}In(r)}return A(r),r}function Nn(e){e.textContent=``}function Pn(){return!1}function Fn(e,t,n){let r=n?{is:n}:void 0;return document.createElementNS(t??`http://www.w3.org/1999/xhtml`,e,r)}function In(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===3;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}function Ln(e){var t=U,n=K;G(null),dr(null);try{return e()}finally{G(t),dr(n)}}function Rn(e){K===null&&(U===null&&Se(e),xe()),lr&&be(e)}function zn(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function Bn(e,t){var n=K;if(o)for(;n!==null&&n.f&131072;)n=n.parent;n!==null&&n.f&8192&&(e|=w);var r={ctx:M,deps:null,nodes:null,f:e|2560,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};o&&(r.component_function=tt),P?.register_created_effect(r);var i=r;if(e&4)wt===null?kt.ensure().schedule(r):wt.push(r);else if(t!==null){try{wr(r)}catch(e){throw H(r),e}i.deps===null&&i.teardown===null&&i.nodes===null&&i.first===i.last&&!(i.f&524288)&&(i=i.first,e&16&&e&65536&&i!==null&&(i.f|=ne))}if(i!==null&&(i.parent=n,n!==null&&zn(i,n),U!==null&&U.f&2&&!(e&64))){var a=U;(a.effects??=[]).push(i)}return r}function Vn(){return U!==null&&!W}function Hn(e){let t=Bn(8,null);return N(t,x),t.teardown=e,t}function Un(e){Rn(`$effect`),o&&d(e,`name`,{value:`$effect`});var t=K.f;if(!U&&t&32&&!(t&32768)){var n=M;(n.e??=[]).push(e)}else return Wn(e)}function Wn(e){return Bn(1048580,e)}function Gn(e){kt.ensure();let t=Bn(524352,e);return(e={})=>new Promise(n=>{e.outro?rr(t,()=>{H(t),n(void 0)}):(H(t),n(void 0))})}function Kn(e){return Bn(4,e)}function qn(e){return Bn(4718592,e)}function Jn(e,t=0){return Bn(8|t,e)}function Yn(e,t=[],n=[],r=[]){Ut(r,t,n,t=>{Bn(8,()=>e(...t.map(Z)))})}function Xn(e,t=0){var n=Bn(16|t,e);return o&&(n.dev_stack=$e),n}function Zn(e,t=0){var n=Bn(16777216|t,e);return o&&(n.dev_stack=$e),n}function V(e){return Bn(524320,e)}function Qn(e){var t=e.teardown;if(t!==null){let e=lr,n=U;ur(!0),G(null);try{t.call(null)}finally{ur(e),G(n)}}}function $n(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){let e=n.ac;e!==null&&Ln(()=>{e.abort(me)});var r=n.next;n.f&64?n.parent=null:H(n,t),n=r}}function er(e){for(var t=e.first;t!==null;){var n=t.next;t.f&32||H(t),t=n}}function H(e,t=!0){var n=!1;(t||e.f&262144)&&e.nodes!==null&&e.nodes.end!==null&&(tr(e.nodes.start,e.nodes.end),n=!0),N(e,te),$n(e,t&&!n),Cr(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(let e of r)e.stop();Qn(e),e.f^=te,e.f|=16384;var i=e.parent;i!==null&&i.first!==null&&nr(e),o&&(e.component_function=null),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function tr(e,t){for(;e!==null;){var n=e===t?null:jn(e);e.remove(),e=n}}function nr(e){var t=e.parent,n=e.prev,r=e.next;n!==null&&(n.next=r),r!==null&&(r.prev=n),t!==null&&(t.first===e&&(t.first=r),t.last===e&&(t.last=n))}function rr(e,t,n=!0){var r=[];ir(e,r,!0);var i=()=>{n&&H(e),t&&t()},a=r.length;if(a>0){var o=()=>--a||i();for(var s of r)s.out(o)}else i()}function ir(e,t,n){if(!(e.f&8192)){e.f^=w;var r=e.nodes&&e.nodes.t;if(r!==null)for(let e of r)(e.is_global||n)&&t.push(e);for(var i=e.first;i!==null;){var a=i.next;if(!(i.f&64)){var o=(i.f&65536)!=0||(i.f&32)!=0&&(e.f&16)!=0;ir(i,t,o?n:!1)}i=a}}}function ar(e){or(e,!0)}function or(e,t){if(e.f&8192){e.f^=w,e.f&1024||(N(e,S),kt.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,i=(n.f&65536)!=0||(n.f&32)!=0;or(n,i?t:!1),n=r}var a=e.nodes&&e.nodes.t;if(a!==null)for(let e of a)(e.is_global||t)&&e.in()}}function sr(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var i=n===r?null:jn(n);t.append(n),n=i}}let cr=!1,lr=!1;function ur(e){lr=e}let U=null,W=!1;function G(e){U=e}let K=null;function dr(e){K=e}let q=null;function fr(e){U!==null&&(q===null?q=[e]:q.push(e))}let J=null,Y=0,X=null;function pr(e){X=e}let mr=1,hr=0,gr=hr;function _r(e){gr=e}function vr(){return++mr}function yr(e){var t=e.f;if(t&2048)return!0;if(t&2&&(e.f&=-65537),t&4096){for(var n=e.deps,r=n.length,i=0;i<r;i++){var a=n[i];if(yr(a)&&rn(a),a.wv>e.wv)return!0}t&512&&bt===null&&N(e,x)}return!1}function br(e,t,n=!0){var r=e.reactions;if(r!==null&&!(q!==null&&l.call(q,e)))for(var i=0;i<r.length;i++){var a=r[i];a.f&2?br(a,t,!1):t===a&&(n?N(a,S):a.f&1024&&N(a,C),It(a))}}function xr(e){var t=J,n=Y,r=X,i=U,a=q,o=M,s=W,c=gr,l=e.f;J=null,Y=0,X=null,U=l&96?null:e,q=null,Qe(e.ctx),W=!1,gr=++hr,e.ac!==null&&(Ln(()=>{e.ac.abort(me)}),e.ac=null);try{e.f|=ie;var u=e.fn,d=u();e.f|=ee;var f=e.deps,p=P?.is_fork;if(J!==null){var m;if(p||Cr(e,Y),f!==null&&Y>0)for(f.length=Y+J.length,m=0;m<J.length;m++)f[Y+m]=J[m];else e.deps=f=J;if(Vn()&&e.f&512)for(m=Y;m<f.length;m++)(f[m].reactions??=[]).push(e)}else !p&&f!==null&&Y<f.length&&(Cr(e,Y),f.length=Y);if(at()&&X!==null&&!W&&f!==null&&!(e.f&6146))for(m=0;m<X.length;m++)br(X[m],e);if(i!==null&&i!==e){if(hr++,i.deps!==null)for(let e=0;e<n;e+=1)i.deps[e].rv=hr;if(t!==null)for(let e of t)e.rv=hr;X!==null&&(r===null?r=X:r.push(...X))}return e.f&8388608&&(e.f^=ae),d}catch(e){return dt(e)}finally{e.f^=ie,J=t,Y=n,X=r,U=i,q=a,Qe(o),W=s,gr=c}}function Sr(e,t){let n=t.reactions;if(n!==null){var r=c.call(n,e);if(r!==-1){var i=n.length-1;i===0?n=t.reactions=null:(n[r]=n[i],n.pop())}}if(n===null&&t.f&2&&(J===null||!l.call(J,t))){var a=t;a.f&512&&(a.f^=512,a.f&=-65537),a.v!==E&&ht(a),an(a),Cr(a,0)}}function Cr(e,t){var n=e.deps;if(n!==null)for(var r=t;r<n.length;r++)Sr(e,n[r])}function wr(e){var t=e.f;if(!(t&16384)){N(e,x);var n=K,r=cr;if(K=e,cr=!0,o){var i=tt;nt(e.component_function);var a=$e;et(e.dev_stack??$e)}try{t&16777232?er(e):$n(e),Qn(e);var s=xr(e);e.teardown=typeof s==`function`?s:null,e.wv=mr}finally{cr=r,K=n,o&&(nt(i),et(a))}}}async function Tr(){await Promise.resolve(),At()}function Z(e){var t=(e.f&2)!=0;if(U!==null&&!W&&!(K!==null&&K.f&16384)&&(q===null||!l.call(q,e))){var n=U.deps;if(U.f&2097152)e.rv<hr&&(e.rv=hr,J===null&&n!==null&&n[Y]===e?Y++:J===null?J=[e]:J.push(e));else{U.deps??=[],l.call(U.deps,e)||U.deps.push(e);var r=e.reactions;r===null?e.reactions=[U]:l.call(r,U)||r.push(U)}}if(o){if(!W&&F&&!F.warned&&!(F.effect.f&2097152)&&!F.effect_deps.has(e)){F.warned=!0,Ne(e.label);var i=Xe(`traced at`);i&&console.warn(i)}Jt.delete(e)}if(lr&&cn.has(e))return cn.get(e);if(t){var a=e;if(lr){var s=a.v;return(!(a.f&1024)&&a.reactions!==null||Dr(a))&&(s=nn(a)),cn.set(a,s),s}var c=(a.f&512)==0&&!W&&U!==null&&(cr||(U.f&512)!=0),u=(a.f&ee)==0;yr(a)&&(c&&(a.f|=512),rn(a)),c&&!u&&(on(a),Er(a))}if(bt?.has(e))return bt.get(e);if(e.f&8388608)throw e.v;return e.v}function Er(e){if(e.f|=512,e.deps!==null)for(let t of e.deps)(t.reactions??=[]).push(e),t.f&2&&!(t.f&512)&&(on(t),Er(t))}function Dr(e){if(e.v===E)return!0;if(e.deps===null)return!1;for(let t of e.deps)if(cn.has(t)||t.f&2&&Dr(t))return!0;return!1}function Or(e){var t=W;try{return W=!0,e()}finally{W=t}}const kr=/\r/g;function Ar(e){e=e.replace(kr,``);let t=5381,n=e.length;for(;n--;)t=(t<<5)-t^e.charCodeAt(n);return(t>>>0).toString(36)}[...`allowfullscreen.async.autofocus.autoplay.checked.controls.default.disabled.formnovalidate.indeterminate.inert.ismap.loop.multiple.muted.nomodule.novalidate.open.playsinline.readonly.required.reversed.seamless.selected.webkitdirectory.defer.disablepictureinpicture.disableremoteplayback`.split(`.`)];const jr=[`touchstart`,`touchmove`];function Mr(e){return jr.includes(e)}function Nr(e){return e?.replace(/\//g,`/​`)}var Pr=new Map;function Fr(e,t){var n=Pr.get(e);n||(n=new Set,Pr.set(e,n)),n.add(t)}const Ir=Symbol(`events`),Lr=new Set,Rr=new Set;function zr(e,t,n,r={}){function i(e){if(r.capture||Wr.call(t,e),!e.cancelBubble)return Ln(()=>n?.call(this,e))}return e.startsWith(`pointer`)||e.startsWith(`touch`)||e===`wheel`?ct(()=>{t.addEventListener(e,i,r)}):t.addEventListener(e,i,r),i}function Br(e,t,n,r,i){var a={capture:r,passive:i},o=zr(e,t,n,a);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&Hn(()=>{t.removeEventListener(e,o,a)})}function Vr(e,t,n){(t[Ir]??={})[e]=n}function Hr(e){for(var t=0;t<e.length;t++)Lr.add(e[t]);for(var n of Rr)n(e)}let Ur=null;function Wr(e){var t=this,n=t.ownerDocument,r=e.type,i=e.composedPath?.()||[],a=i[0]||e.target;Ur=e;var o=0,s=Ur===e&&e[Ir];if(s){var c=i.indexOf(s);if(c!==-1&&(t===document||t===window)){e[Ir]=t;return}var l=i.indexOf(t);if(l===-1)return;c<=l&&(o=c)}if(a=i[o]||e.target,a!==t){d(e,`currentTarget`,{configurable:!0,get(){return a||n}});var u=U,f=K;G(null),dr(null);try{for(var p,m=[];a!==null;){var h=a.assignedSlot||a.parentNode||a.host||null;try{var g=a[Ir]?.[r];g!=null&&(!a.disabled||e.target===a)&&g.call(a,e)}catch(e){p?m.push(e):p=e}if(e.cancelBubble||h===t||h===null)break;a=h}if(p){for(let e of m)queueMicrotask(()=>{throw e});throw p}}finally{e[Ir]=t,delete e.currentTarget,G(u),dr(f)}}}const Gr=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy(`svelte-trusted-html`,{createHTML:e=>e});function Kr(e){return Gr?.createHTML(e)??e}function qr(e){var t=Fn(`template`);return t.innerHTML=Kr(e.replaceAll(`<!>`,`<!---->`)),t.content}function Jr(e,t){var n=K;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function Q(e,t){var n=(t&1)!=0,r=(t&2)!=0,i,a=!e.startsWith(`<!>`);return()=>{if(O)return Jr(k,null),k;i===void 0&&(i=qr(a?e:`<!>`+e),n||(i=An(i)));var t=r||En?document.importNode(i,!0):i.cloneNode(!0);if(n){var o=An(t),s=t.lastChild;Jr(o,s)}else Jr(t,t);return t}}function Yr(){if(O)return Jr(k,null),k;var e=document.createDocumentFragment(),t=document.createComment(``),n=R();return e.append(t,n),Jr(t,n),e}function $(e,t){if(O){var n=K;(!(n.f&32768)||n.nodes.end===null)&&(n.nodes.end=k),Ve();return}e!==null&&e.before(t)}function Xr(e,t){var n=t==null?``:typeof t==`object`?`${t}`:t;n!==(e[fe]??=e.nodeValue)&&(e[fe]=n,e.nodeValue=`${n}`)}function Zr(e,t){return $r(e,t)}const Qr=new Map;function $r(e,{target:t,anchor:n,props:r={},events:i,context:a,intro:o=!0,transformError:s}){kn();var c=void 0,l=Gn(()=>{var o=n??t.appendChild(R());Vt(o,{pending:()=>{}},t=>{rt({});var n=M;if(a&&(n.c=a),i&&(r.$$events=i),O&&Jr(t,null),c=e(t,r)||{},O&&(K.nodes.end=k,k===null||k.nodeType!==8||k.data!==`]`))throw Le(),ke;it()},s);var l=new Set,d=e=>{for(var n=0;n<e.length;n++){var r=e[n];if(!l.has(r)){l.add(r);var i=Mr(r);for(let e of[t,document]){var a=Qr.get(e);a===void 0&&(a=new Map,Qr.set(e,a));var o=a.get(r);o===void 0?(e.addEventListener(r,Wr,{passive:i}),a.set(r,1)):a.set(r,o+1)}}}};return d(u(Lr)),Rr.add(d),()=>{for(var e of l)for(let n of[t,document]){var r=Qr.get(n),i=r.get(e);--i==0?(n.removeEventListener(e,Wr),r.delete(e),r.size===0&&Qr.delete(n)):r.set(e,i)}Rr.delete(d),o!==n&&o.parentNode?.removeChild(o)}});return ei.set(c,l),c}let ei=new WeakMap;var ti=class{anchor;#e=new Map;#t=new Map;#n=new Map;#r=new Set;#i=!0;constructor(e,t=!0){this.anchor=e,this.#i=t}#a=e=>{if(this.#e.has(e)){var t=this.#e.get(e),n=this.#t.get(t);if(n)ar(n),this.#r.delete(t);else{var r=this.#n.get(t);r&&(this.#t.set(t,r.effect),this.#n.delete(t),o&&(r.fragment.lastChild[pe]=this.anchor),r.fragment.lastChild.remove(),this.anchor.before(r.fragment),n=r.effect)}for(let[t,n]of this.#e){if(this.#e.delete(t),t===e)break;let r=this.#n.get(n);r&&(H(r.effect),this.#n.delete(n))}for(let[e,r]of this.#t){if(e===t||this.#r.has(e))continue;let i=()=>{if(Array.from(this.#e.values()).includes(e)){var t=document.createDocumentFragment();sr(r,t),t.append(R()),this.#n.set(e,{effect:r,fragment:t})}else H(r);this.#r.delete(e),this.#t.delete(e)};this.#i||!n?(this.#r.add(e),rr(r,i,!1)):i()}}};#o=e=>{this.#e.delete(e);let t=Array.from(this.#e.values());for(let[e,n]of this.#n)t.includes(e)||(H(n.effect),this.#n.delete(e))};ensure(e,t){var n=P,r=Pn();if(t&&!this.#t.has(e)&&!this.#n.has(e))if(r){var i=document.createDocumentFragment(),a=R();i.append(a),this.#n.set(e,{effect:V(()=>t(a)),fragment:i})}else this.#t.set(e,V(()=>t(this.anchor)));if(this.#e.set(n,e),r){for(let[t,r]of this.#t)t===e?n.unskip_effect(r):n.skip_effect(r);for(let[t,r]of this.#n)t===e?n.unskip_effect(r.effect):n.skip_effect(r.effect);n.oncommit(this.#a),n.ondiscard(this.#o)}else O&&(this.anchor=k),this.#a(n)}};function ni(e,t,n=!1){var r;O&&(r=k,Ve());var i=new ti(e),a=n?ne:0;function o(e,t){if(O){var n=We(r);if(e!==parseInt(n.substring(1))){var a=Ue();A(a),i.anchor=a,Be(!1),i.ensure(e,t),Be(!0);return}}i.ensure(e,t)}Xn(()=>{var e=!1;t((t,n=0)=>{e=!0,o(n,t)}),e||o(-1,null)},a)}function ri(e,t){return t}function ii(e,t,n){for(var r=[],i=t.length,a,o=t.length,s=0;s<i;s++){let n=t[s];rr(n,()=>{if(a){if(a.pending.delete(n),a.done.add(n),a.pending.size===0){var t=e.outrogroups;ai(e,u(a.done)),t.delete(a),t.size===0&&(e.outrogroups=null)}}else --o},!1)}if(o===0){var c=r.length===0&&n!==null;if(c){var l=n,d=l.parentNode;Nn(d),d.append(l),e.items.clear()}ai(e,t,!c)}else a={pending:new Set(t),done:new Set},(e.outrogroups??=new Set).add(a)}function ai(e,t,n=!0){var r;if(e.pending.size>0){r=new Set;for(let t of e.pending.values())for(let n of t)r.add(e.items.get(n).e)}for(var i=0;i<t.length;i++){var a=t[i];r?.has(a)?(a.f|=T,sr(a,document.createDocumentFragment())):H(t[i],n)}}var oi;function si(e,t,n,r,i,a=null){var c=e,l=new Map;if(t&4){var d=e;c=O?A(An(d)):d.appendChild(R())}O&&Ve();var f=null,p=$t(()=>{var e=n();return s(e)?e:e==null?[]:u(e)});o&&Je(p,`{#each ...}`);var m,h=new Map,g=!0;function _(e){y.effect.f&16384||(y.pending.delete(e),y.fallback=f,li(y,m,c,t,r),f!==null&&(m.length===0?f.f&33554432?(f.f^=T,di(f,null,c)):ar(f):rr(f,()=>{f=null})))}function v(e){y.pending.delete(e)}var y={effect:Xn(()=>{m=Z(p);var e=m.length;let s=!1;O&&We(c)===`[!`!=(e===0)&&(c=Ue(),A(c),Be(!1),s=!0);for(var u=new Set,d=P,y=Pn(),b=0;b<e;b+=1){O&&k.nodeType===8&&k.data===`]`&&(c=k,s=!0,Be(!1));var x=m[b],S=r(x,b);if(o){var C=r(x,b);S!==C&&ye(String(b),String(S),String(C))}var w=g?null:l.get(S);w?(w.v&&mn(w.v,x),w.i&&mn(w.i,b),y&&d.unskip_effect(w.e)):(w=ui(l,g?c:oi??=R(),x,S,b,i,t,n),g||(w.e.f|=T),l.set(S,w)),u.add(S)}if(e===0&&a&&!f&&(g?f=V(()=>a(c)):(f=V(()=>a(oi??=R())),f.f|=T)),e>u.size&&(o?pi(m,r):ve(``,``,``)),O&&e>0&&A(Ue()),!g)if(h.set(d,u),y){for(let[e,t]of l)u.has(e)||d.skip_effect(t.e);d.oncommit(_),d.ondiscard(v)}else _(d);s&&Be(!0),Z(p)}),flags:t,items:l,pending:h,outrogroups:null,fallback:f};g=!1,O&&(c=k)}function ci(e){for(;e!==null&&!(e.f&32);)e=e.next;return e}function li(e,t,n,r,i){var a=(r&8)!=0,o=t.length,s=e.items,c=ci(e.effect.first),l,d=null,f,p=[],m=[],h,g,_,v;if(a)for(v=0;v<o;v+=1)h=t[v],g=i(h,v),_=s.get(g).e,_.f&33554432||(_.nodes?.a?.measure(),(f??=new Set).add(_));for(v=0;v<o;v+=1){if(h=t[v],g=i(h,v),_=s.get(g).e,e.outrogroups!==null)for(let t of e.outrogroups)t.pending.delete(_),t.done.delete(_);if(_.f&8192&&(ar(_),a&&(_.nodes?.a?.unfix(),(f??=new Set).delete(_))),_.f&33554432)if(_.f^=T,_===c)di(_,null,n);else{var y=d?d.next:c;_===e.effect.last&&(e.effect.last=_.prev),_.prev&&(_.prev.next=_.next),_.next&&(_.next.prev=_.prev),fi(e,d,_),fi(e,_,y),di(_,y,n),d=_,p=[],m=[],c=ci(d.next);continue}if(_!==c){if(l!==void 0&&l.has(_)){if(p.length<m.length){var b=m[0],x;d=b.prev;var S=p[0],C=p[p.length-1];for(x=0;x<p.length;x+=1)di(p[x],b,n);for(x=0;x<m.length;x+=1)l.delete(m[x]);fi(e,S.prev,C.next),fi(e,d,S),fi(e,C,b),c=b,d=C,--v,p=[],m=[]}else l.delete(_),di(_,c,n),fi(e,_.prev,_.next),fi(e,_,d===null?e.effect.first:d.next),fi(e,d,_),d=_;continue}for(p=[],m=[];c!==null&&c!==_;)(l??=new Set).add(c),m.push(c),c=ci(c.next);if(c===null)continue}_.f&33554432||p.push(_),d=_,c=ci(_.next)}if(e.outrogroups!==null){for(let t of e.outrogroups)t.pending.size===0&&(ai(e,u(t.done)),e.outrogroups?.delete(t));e.outrogroups.size===0&&(e.outrogroups=null)}if(c!==null||l!==void 0){var w=[];if(l!==void 0)for(_ of l)_.f&8192||w.push(_);for(;c!==null;)!(c.f&8192)&&c!==e.fallback&&w.push(c),c=ci(c.next);var ee=w.length;if(ee>0){var te=r&4&&o===0?n:null;if(a){for(v=0;v<ee;v+=1)w[v].nodes?.a?.measure();for(v=0;v<ee;v+=1)w[v].nodes?.a?.fix()}ii(e,w,te)}}a&&ct(()=>{if(f!==void 0)for(_ of f)_.nodes?.a?.apply()})}function ui(e,t,n,r,i,a,s,c){var l=s&1?s&16?fn(n):pn(n,!1,!1):null,u=s&2?fn(i):null;return o&&l&&(l.trace=()=>{c()[u?.v??i]}),{v:l,i:u,e:V(()=>(a(t,l??n,u??i,c),()=>{e.delete(r)}))}}function di(e,t,n){if(e.nodes)for(var r=e.nodes.start,i=e.nodes.end,a=t&&!(t.f&33554432)?t.nodes.start:n;r!==null;){var o=jn(r);if(a.before(r),r===i)return;r=o}}function fi(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}function pi(e,t){let n=new Map,r=e.length;for(let i=0;i<r;i++){let r=t(e[i],i);if(n.has(r)){let e=String(n.get(r)),t=String(i),a=String(r);a.startsWith(`[object `)&&(a=null),ve(e,t,a)}n.set(r,i)}}function mi(e,t,n){if(!t||t===Ar(String(n??``)))return;let r,i=e.__svelte_meta?.loc;i?r=`near ${i.file}:${i.line}:${i.column}`:tt?.[Ae]&&(r=`in ${tt[Ae]}`),Ie(Nr(r))}function hi(e,t,n=!1,r=!1,i=!1,a=!1){var s=e,c=``;if(n){var l=e;O&&(s=A(An(l)))}Yn(()=>{var e=K;if(c===(c=t()??``)){O&&Ve();return}if(n&&!O){e.nodes=null,l.innerHTML=c,c!==``&&Jr(An(l),l.lastChild);return}if(e.nodes!==null&&(tr(e.nodes.start,e.nodes.end),e.nodes=null),c!==``){if(O){for(var u=k.data,d=Ve(),f=d;d!==null&&(d.nodeType!==8||d.data!==``);)f=d,d=jn(d);if(d===null)throw Le(),ke;o&&!a&&mi(d.parentNode,u,c),Jr(k,f),s=A(d);return}var p=Fn(r?`svg`:i?`math`:`template`,r?`http://www.w3.org/2000/svg`:i?`http://www.w3.org/1998/Math/MathML`:void 0);p.innerHTML=c;var m=r||i?p:p.content;if(Jr(An(m),m.lastChild),r||i)for(;An(m);)s.before(An(m));else s.before(m)}})}function gi(e,t){Kn(()=>{var n=e.getRootNode(),r=n.host?n:n.head??n.ownerDocument.head;if(!r.querySelector(`#`+t.hash)){let e=Fn(`style`);e.id=t.hash,e.textContent=t.code,r.appendChild(e),o&&Fr(t.hash,e)}})}function _i(e,t){var n=void 0,r;Zn(()=>{n!==(n=t())&&(r&&=(H(r),null),n&&(r=V(()=>{Kn(()=>n(e))})))})}function vi(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`)if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(n=vi(e[t]))&&(r&&(r+=` `),r+=n)}else for(n in e)e[n]&&(r&&(r+=` `),r+=n);return r}function yi(){for(var e,t,n=0,r=``,i=arguments.length;n<i;n++)(e=arguments[n])&&(t=vi(e))&&(r&&(r+=` `),r+=t);return r}function bi(e){return typeof e==`object`?yi(e):e??``}const xi=[...`
744
+ \r\f\xA0\v`];function Si(e,t,n){var r=e==null?``:``+e;if(t&&(r=r?r+` `+t:t),n){for(var i of Object.keys(n))if(n[i])r=r?r+` `+i:i;else if(r.length)for(var a=i.length,o=0;(o=r.indexOf(i,o))>=0;){var s=o+a;(o===0||xi.includes(r[o-1]))&&(s===r.length||xi.includes(r[s]))?r=(o===0?``:r.substring(0,o))+r.substring(s+1):o=s}}return r===``?null:r}function Ci(e,t,n,r,i,a){var o=e[ue];if(O||o!==n||o===void 0){var s=Si(n,r,a);(!O||s!==e.getAttribute(`class`))&&(s==null?e.removeAttribute(`class`):t?e.className=s:e.setAttribute(`class`,s)),e[ue]=n}else if(a&&i!==a)for(var c in a){var l=!!a[c];(i==null||l!==!!i[c])&&e.classList.toggle(c,l)}return a}const wi=Symbol(`is custom element`),Ti=Symbol(`is html`),Ei=he?`link`:`LINK`;function Di(e,t,n,r){var i=Oi(e);if(O&&(i[t]=e.getAttribute(t),t===`src`||t===`srcset`||t===`href`&&e.nodeName===Ei)){r||ji(e,t,n??``);return}i[t]!==(i[t]=n)&&(t===`loading`&&(e[se]=n),n==null?e.removeAttribute(t):typeof n!=`string`&&Ai(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function Oi(e){return e[le]??={[wi]:e.nodeName.includes(`-`),[Ti]:e.namespaceURI===`http://www.w3.org/1999/xhtml`}}var ki=new Map;function Ai(e){var t=e.getAttribute(`is`)||e.nodeName,n=ki.get(t);if(n)return n;ki.set(t,n=[]);for(var r,i=e,a=Element.prototype;a!==i;){for(var o in r=p(i),r)r[o].set&&o!==`innerHTML`&&o!==`textContent`&&o!==`innerText`&&n.push(o);i=g(i)}return n}function ji(e,t,n){o&&(t===`srcset`&&Pi(e,n)||Mi(e.getAttribute(t)??``,n)||Fe(t,e.outerHTML.replace(e.innerHTML,e.innerHTML&&`...`),String(n)))}function Mi(e,t){return e===t?!0:new URL(e,document.baseURI).href===new URL(t,document.baseURI).href}function Ni(e){return e.split(`,`).map(e=>e.trim().split(` `).filter(Boolean))}function Pi(e,t){var n=Ni(e.srcset),r=Ni(t);return r.length===n.length&&r.every(([e,t],r)=>t===n[r][1]&&(Mi(n[r][0],e)||Mi(e,n[r][0])))}function Fi(e,t){return e===t||e?.[oe]===t}function Ii(e={},t,n,r){var i=M.r,a=K;return Kn(()=>{var o,s;return Jn(()=>{o=s,s=r?.()||[],Or(()=>{Fi(n(...s),e)||(t(e,...s),o&&Fi(n(...o),e)&&t(null,...o))})}),()=>{let r=a;for(;r!==i&&r.parent!==null&&r.parent.f&33554432;)r=r.parent;let o=()=>{s&&Fi(n(...s),e)&&t(null,...s)},c=r.teardown;r.teardown=()=>{o(),c?.()}}}),e}if(o){function e(e){if(!(e in globalThis)){let t;Object.defineProperty(globalThis,e,{configurable:!0,get:()=>{if(t!==void 0)return t;we(e)},set:e=>{t=e}})}}e(`$state`),e(`$effect`),e(`$derived`),e(`$inspect`),e(`$props`),e(`$bindable`)}typeof window<`u`&&((window.__svelte??={}).v??=new Set).add(`5`);var Li=`data:image/webp;base64,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`,Ri=`<svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 512 512"><defs><radialGradient id="g" cx="210%" cy="-100%" r="290%"><stop offset=".1" stop-color="#ffe226"/><stop offset=".79" stop-color="#ff7139"/></radialGradient><radialGradient id="c" cx="49%" cy="40%" r="128%" gradientTransform="matrix(.82 0 0 1 .088 0)"><stop offset=".3" stop-color="#960e18"/><stop offset=".35" stop-color="#b11927" stop-opacity=".74"/><stop offset=".43" stop-color="#db293d" stop-opacity=".34"/><stop offset=".5" stop-color="#f5334b" stop-opacity=".09"/><stop offset=".53" stop-color="#ff3750" stop-opacity="0"/></radialGradient><radialGradient id="d" cx="48%" cy="-12%" r="140%"><stop offset=".13" stop-color="#fff44f"/><stop offset=".53" stop-color="#ff980e"/></radialGradient><radialGradient id="e" cx="22.76%" cy="110.11%" r="100%"><stop offset=".35" stop-color="#3a8ee6"/><stop offset=".67" stop-color="#9059ff"/><stop offset="1" stop-color="#c139e6"/></radialGradient><radialGradient id="f" cx="52%" cy="33%" r="59%" gradientTransform="scale(.9 1)"><stop offset=".21" stop-color="#9059ff" stop-opacity="0"/><stop offset=".97" stop-color="#6e008b" stop-opacity=".6"/></radialGradient><radialGradient id="b" cx="87.4%" cy="-12.9%" r="128%" gradientTransform="matrix(.8 0 0 1 .178 .129)"><stop offset=".13" stop-color="#ffbd4f"/><stop offset=".28" stop-color="#ff980e"/><stop offset=".47" stop-color="#ff3750"/><stop offset=".78" stop-color="#eb0878"/><stop offset=".86" stop-color="#e50080"/></radialGradient><radialGradient id="h" cx="84%" cy="-41%" r="180%"><stop offset=".11" stop-color="#fff44f"/><stop offset=".46" stop-color="#ff980e"/><stop offset=".72" stop-color="#ff3647"/><stop offset=".9" stop-color="#e31587"/></radialGradient><radialGradient id="i" cx="16.1%" cy="-18.6%" r="348.8%" gradientTransform="scale(1 .47) rotate(84 .279 -.297)"><stop offset="0" stop-color="#fff44f"/><stop offset=".3" stop-color="#ff980e"/><stop offset=".57" stop-color="#ff3647"/><stop offset=".74" stop-color="#e31587"/></radialGradient><radialGradient id="j" cx="18.9%" cy="-42.5%" r="238.4%"><stop offset=".14" stop-color="#fff44f"/><stop offset=".48" stop-color="#ff980e"/><stop offset=".66" stop-color="#ff3647"/><stop offset=".9" stop-color="#e31587"/></radialGradient><radialGradient id="k" cx="159.3%" cy="-44.72%" r="313.1%"><stop offset=".09" stop-color="#fff44f"/><stop offset=".63" stop-color="#ff980e"/></radialGradient><linearGradient id="a" x1="87.25%" y1="15.5%" x2="9.4%" y2="93.1%"><stop offset=".05" stop-color="#fff44f"/><stop offset=".37" stop-color="#ff980e"/><stop offset=".53" stop-color="#ff3647"/><stop offset=".7" stop-color="#e31587"/></linearGradient><linearGradient id="l" x1="80%" y1="14%" x2="18%" y2="84%"><stop offset=".17" stop-color="#fff44f" stop-opacity=".8"/><stop offset=".6" stop-color="#fff44f" stop-opacity="0"/></linearGradient></defs><path d="M478.711 166.353c-10.445-25.124-31.6-52.248-48.212-60.821 13.52 26.505 21.345 53.093 24.335 72.936 0 .039.015.136.047.4C427.706 111.135 381.627 83.823 344 24.355c-1.9-3.007-3.805-6.022-5.661-9.2a73.716 73.716 0 01-2.646-4.972A43.7 43.7 0 01332.1.677a.626.626 0 00-.546-.644.818.818 0 00-.451 0c-.034.012-.084.051-.12.065-.053.021-.12.069-.176.1.027-.036.083-.117.1-.136-60.37 35.356-80.85 100.761-82.732 133.484a120.249 120.249 0 00-66.142 25.488 71.355 71.355 0 00-6.225-4.7 111.338 111.338 0 01-.674-58.732c-24.688 11.241-43.89 29.01-57.85 44.7h-.111c-9.527-12.067-8.855-51.873-8.312-60.184-.114-.515-7.107 3.63-8.023 4.255a175.073 175.073 0 00-23.486 20.12 210.478 210.478 0 00-22.442 26.913c0 .012-.007.026-.011.038 0-.013.007-.026.011-.038a202.838 202.838 0 00-32.247 72.805c-.115.521-.212 1.061-.324 1.586-.452 2.116-2.08 12.7-2.365 15-.022.177-.032.347-.053.524a229.066 229.066 0 00-3.9 33.157c0 .41-.025.816-.025 1.227C16 388.418 123.6 496 256.324 496c118.865 0 217.56-86.288 236.882-199.63.407-3.076.733-6.168 1.092-9.271 4.777-41.21-.53-84.525-15.587-120.746zM201.716 354.447c1.124.537 2.18 1.124 3.334 1.639.048.033.114.07.163.1a126.191 126.191 0 01-3.497-1.739zm55.053-144.93zm198.131-30.59l-.032-.233c.012.085.027.174.04.259z" fill="url(#a)"/><path d="M478.711 166.353c-10.445-25.124-31.6-52.248-48.212-60.821 13.52 26.505 21.345 53.093 24.335 72.936 0-.058.011.048.036.226.012.085.027.174.04.259 22.675 61.47 10.322 123.978-7.479 162.175-27.539 59.1-94.215 119.67-198.576 116.716C136.1 454.651 36.766 370.988 18.223 261.41c-3.379-17.28 0-26.054 1.7-40.084-2.071 10.816-2.86 13.94-3.9 33.157 0 .41-.025.816-.025 1.227C16 388.418 123.6 496 256.324 496c118.865 0 217.56-86.288 236.882-199.63.407-3.076.733-6.168 1.092-9.271 4.777-41.21-.53-84.525-15.587-120.746z" fill="url(#b)"/><path d="M478.711 166.353c-10.445-25.124-31.6-52.248-48.212-60.821 13.52 26.505 21.345 53.093 24.335 72.936 0-.058.011.048.036.226.012.085.027.174.04.259 22.675 61.47 10.322 123.978-7.479 162.175-27.539 59.1-94.215 119.67-198.576 116.716C136.1 454.651 36.766 370.988 18.223 261.41c-3.379-17.28 0-26.054 1.7-40.084-2.071 10.816-2.86 13.94-3.9 33.157 0 .41-.025.816-.025 1.227C16 388.418 123.6 496 256.324 496c118.865 0 217.56-86.288 236.882-199.63.407-3.076.733-6.168 1.092-9.271 4.777-41.21-.53-84.525-15.587-120.746z" fill="url(#c)"/><path d="M361.922 194.6c.524.368 1 .734 1.493 1.1a130.706 130.706 0 00-22.31-29.112C266.4 91.892 321.516 4.626 330.811.194c.027-.036.083-.117.1-.136-60.37 35.356-80.85 100.761-82.732 133.484 2.8-.194 5.592-.429 8.442-.429 45.051 0 84.289 24.77 105.301 61.487z" fill="url(#d)"/><path d="M256.772 209.514c-.393 5.978-21.514 26.593-28.9 26.593-68.339 0-79.432 41.335-79.432 41.335 3.027 34.81 27.261 63.475 56.611 78.643 1.339.692 2.694 1.317 4.05 1.935a132.768 132.768 0 007.059 2.886 106.743 106.743 0 0031.271 6.031c119.78 5.618 142.986-143.194 56.545-186.408 22.137-3.85 45.115 5.053 57.947 14.067-21.012-36.714-60.25-61.484-105.3-61.484-2.85 0-5.641.235-8.442.429a120.249 120.249 0 00-66.142 25.488c3.664 3.1 7.8 7.244 16.514 15.828 16.302 16.067 58.13 32.705 58.219 34.657z" fill="url(#e)"/><path d="M256.772 209.514c-.393 5.978-21.514 26.593-28.9 26.593-68.339 0-79.432 41.335-79.432 41.335 3.027 34.81 27.261 63.475 56.611 78.643 1.339.692 2.694 1.317 4.05 1.935a132.768 132.768 0 007.059 2.886 106.743 106.743 0 0031.271 6.031c119.78 5.618 142.986-143.194 56.545-186.408 22.137-3.85 45.115 5.053 57.947 14.067-21.012-36.714-60.25-61.484-105.3-61.484-2.85 0-5.641.235-8.442.429a120.249 120.249 0 00-66.142 25.488c3.664 3.1 7.8 7.244 16.514 15.828 16.302 16.067 58.13 32.705 58.219 34.657z" fill="url(#f)"/><path d="M170.829 151.036a244.042 244.042 0 014.981 3.3 111.338 111.338 0 01-.674-58.732c-24.688 11.241-43.89 29.01-57.85 44.7 1.155-.033 36.014-.66 53.543 10.732z" fill="url(#g)"/><path d="M18.223 261.41C36.766 370.988 136.1 454.651 248.855 457.844c104.361 2.954 171.037-57.62 198.576-116.716 17.8-38.2 30.154-100.7 7.479-162.175l-.008-.026-.032-.233c-.025-.178-.04-.284-.036-.226 0 .039.015.136.047.4 8.524 55.661-19.79 109.584-64.051 146.044l-.133.313c-86.245 70.223-168.774 42.368-185.484 30.966a144.108 144.108 0 01-3.5-1.743c-50.282-24.029-71.054-69.838-66.6-109.124-42.457 0-56.934-35.809-56.934-35.809s38.119-27.179 88.358-3.541c46.53 21.893 90.228 3.543 90.233 3.541-.089-1.952-41.917-18.59-58.223-34.656-8.713-8.584-12.85-12.723-16.514-15.828a71.355 71.355 0 00-6.225-4.7 282.929 282.929 0 00-4.981-3.3c-17.528-11.392-52.388-10.765-53.543-10.735h-.111c-9.527-12.067-8.855-51.873-8.312-60.184-.114-.515-7.107 3.63-8.023 4.255a175.073 175.073 0 00-23.486 20.12 210.478 210.478 0 00-22.442 26.919c0 .012-.007.026-.011.038 0-.013.007-.026.011-.038a202.838 202.838 0 00-32.247 72.805c-.115.521-8.65 37.842-4.44 57.199z" fill="url(#h)"/><path d="M341.105 166.587a130.706 130.706 0 0122.31 29.112c1.323.994 2.559 1.985 3.608 2.952 54.482 50.2 25.936 121.2 23.807 126.26 44.261-36.46 72.575-90.383 64.051-146.044C427.706 111.135 381.627 83.823 344 24.355c-1.9-3.007-3.805-6.022-5.661-9.2a73.716 73.716 0 01-2.646-4.972A43.7 43.7 0 01332.1.677a.626.626 0 00-.546-.644.818.818 0 00-.451 0c-.034.012-.084.051-.12.065-.053.021-.12.069-.176.1-9.291 4.428-64.407 91.694 10.298 166.389z" fill="url(#i)"/><path d="M367.023 198.651c-1.049-.967-2.285-1.958-3.608-2.952-.489-.368-.969-.734-1.493-1.1-12.832-9.014-35.81-17.917-57.947-14.067 86.441 43.214 63.235 192.026-56.545 186.408a106.743 106.743 0 01-31.271-6.031 134.51 134.51 0 01-7.059-2.886c-1.356-.618-2.711-1.243-4.05-1.935.048.033.114.07.163.1 16.71 11.4 99.239 39.257 185.484-30.966l.133-.313c2.129-5.054 30.675-76.057-23.807-126.258z" fill="url(#j)"/><path d="M148.439 277.443s11.093-41.335 79.432-41.335c7.388 0 28.509-20.615 28.9-26.593s-43.7 18.352-90.233-3.541c-50.239-23.638-88.358 3.541-88.358 3.541s14.477 35.809 56.934 35.809c-4.453 39.286 16.319 85.1 66.6 109.124 1.124.537 2.18 1.124 3.334 1.639-29.348-15.169-53.582-43.834-56.609-78.644z" fill="url(#k)"/><path d="M478.711 166.353c-10.445-25.124-31.6-52.248-48.212-60.821 13.52 26.505 21.345 53.093 24.335 72.936 0 .039.015.136.047.4C427.706 111.135 381.627 83.823 344 24.355c-1.9-3.007-3.805-6.022-5.661-9.2a73.716 73.716 0 01-2.646-4.972A43.7 43.7 0 01332.1.677a.626.626 0 00-.546-.644.818.818 0 00-.451 0c-.034.012-.084.051-.12.065-.053.021-.12.069-.176.1.027-.036.083-.117.1-.136-60.37 35.356-80.85 100.761-82.732 133.484 2.8-.194 5.592-.429 8.442-.429 45.053 0 84.291 24.77 105.3 61.484-12.832-9.014-35.81-17.917-57.947-14.067 86.441 43.214 63.235 192.026-56.545 186.408a106.743 106.743 0 01-31.271-6.031 134.51 134.51 0 01-7.059-2.886c-1.356-.618-2.711-1.243-4.05-1.935.048.033.114.07.163.1a144.108 144.108 0 01-3.5-1.743c1.124.537 2.18 1.124 3.334 1.639-29.35-15.168-53.584-43.833-56.611-78.643 0 0 11.093-41.335 79.432-41.335 7.388 0 28.509-20.615 28.9-26.593-.089-1.952-41.917-18.59-58.223-34.656-8.713-8.584-12.85-12.723-16.514-15.828a71.355 71.355 0 00-6.225-4.7 111.338 111.338 0 01-.674-58.732c-24.688 11.241-43.89 29.01-57.85 44.7h-.111c-9.527-12.067-8.855-51.873-8.312-60.184-.114-.515-7.107 3.63-8.023 4.255a175.073 175.073 0 00-23.486 20.12 210.478 210.478 0 00-22.435 26.916c0 .012-.007.026-.011.038 0-.013.007-.026.011-.038a202.838 202.838 0 00-32.247 72.805c-.115.521-.212 1.061-.324 1.586-.452 2.116-2.486 12.853-2.77 15.156-.022.177.021-.176 0 0a279.565 279.565 0 00-3.544 33.53c0 .41-.025.816-.025 1.227C16 388.418 123.6 496 256.324 496c118.865 0 217.56-86.288 236.882-199.63.407-3.076.733-6.168 1.092-9.271 4.777-41.21-.53-84.525-15.587-120.746zm-23.841 12.341c.012.085.027.174.04.259l-.008-.026-.032-.233z" fill="url(#l)"/></svg>`,zi=`<svg width="24" height="30" viewBox="0 6 24 30" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
745
+ <path d="M18 30H6V18H18V30Z" fill="#4B4646" />
746
+ <path d="M18 12H6V30H18V12ZM24 36H0V6H24V36Z" fill="#B7B1B1" />
747
+ </svg>
748
+ `,Bi=`<?xml version="1.0" encoding="UTF-8"?>
749
+ <!-- Created with Inkscape (http://www.inkscape.org/) -->
750
+ <svg width="48" height="48" version="1.1" viewBox="0 0 12.7 12.7" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
751
+ <title>Prism Launcher Logo</title>
752
+ <g stroke-width=".26458">
753
+ <path d="m6.35 6.35" fill="#99cd61"/>
754
+ <path d="m6.35 0.52917-2.5208 4.3656 2.5208 1.4552 2.5203-1.4552 0.10955-3.0996c-1.1511-0.66459-2.3388-1.2661-2.6298-1.2661z" fill="#df6277"/>
755
+ <path d="m8.9798 1.7952-2.6298 4.5548 2.5203 1.4552 2.5208-4.3656c-0.14552-0.25205-1.2601-0.97975-2.4112-1.6443z" fill="#fb9168"/>
756
+ <path d="m11.391 3.4396-5.041 2.9104 2.5203 1.4552 2.7389-1.4552c0-1.3292-0.072554-2.6584-0.21808-2.9104z" fill="#f3db6c"/>
757
+ <path d="m6.35 6.35v2.9104h5.041c0.14552-0.25205 0.21807-1.5812 0.21808-2.9104h-5.2591z" fill="#7ab392"/>
758
+ <path d="m6.35 6.35v2.9104l2.6298 1.6443c1.1511-0.66459 2.2657-1.3923 2.4112-1.6443l-5.041-2.9104z" fill="#4b7cbc"/>
759
+ <path d="m6.35 6.35-2.5208 1.4552 2.5208 4.3656c0.29104 0 1.4787-0.60148 2.6298-1.2661l-2.6298-4.5548z" fill="#6f488c"/>
760
+ <path d="m3.8292 4.8948-2.5203 4.3656c0.29104 0.5041 4.459 2.9104 5.041 2.9104v-5.8208l-2.5208-1.4552z" fill="#4d3f33"/>
761
+ <path d="m1.309 3.4396c-0.29104 0.5041-0.29104 5.3167 0 5.8208l5.041-2.9104v-2.9104h-5.041z" fill="#7a573b"/>
762
+ <path d="m6.35 0.52917c-0.58208-2e-8 -4.75 2.4063-5.041 2.9104l5.041 2.9104v-5.8208z" fill="#99cd61"/>
763
+ </g>
764
+ <g transform="matrix(.88 0 0 .88 -10.906 -1.2421)">
765
+ <g transform="translate(13.26 2.2776)">
766
+ <path transform="matrix(.96975 0 0 .96975 .1921 .1921)" d="m6.3498 2.9393c-0.34105 0-2.7827 1.4099-2.9532 1.7052l2.9532 5.1157 2.9538-5.1157c-0.17052-0.29535-2.6127-1.7052-2.9538-1.7052z" fill="#fff" stroke-width=".26458"/>
767
+ </g>
768
+ <path d="m16.746 6.9737 2.8639 4.9609c0.33073 0 2.6991-1.3672 2.8644-1.6536 0.16536-0.28642 0.16536-3.0209 0-3.3073l-2.8644 1.6536z" fill="#dfdfdf" stroke-width=".26458"/>
769
+ </g>
770
+ <path d="m3.8299 4.8948c-0.14551 0.25205-0.14553 2.6584 0 2.9104 0.14553 0.25204 2.2292 1.4552 2.5203 1.4552v-2.9104z" fill="#d6d2d2" stroke-width=".26458"/>
771
+ <metadata>
772
+ <rdf:RDF>
773
+ <cc:Work rdf:about="">
774
+ <dc:title>Prism Launcher Logo</dc:title>
775
+ <dc:date>19/10/2022</dc:date>
776
+ <dc:creator>
777
+ <cc:Agent>
778
+ <dc:title>Prism Launcher</dc:title>
779
+ </cc:Agent>
780
+ </dc:creator>
781
+ <dc:contributor>
782
+ <cc:Agent>
783
+ <dc:title>AutiOne, Boba, ely, Fulmine, gon sawa, Pankakes, tobimori, Zeke</dc:title>
784
+ </cc:Agent>
785
+ </dc:contributor>
786
+ <dc:source>https://github.com/PrismLauncher/PrismLauncher</dc:source>
787
+ <dc:publisher>
788
+ <cc:Agent>
789
+ <dc:title>Prism Launcher</dc:title>
790
+ </cc:Agent>
791
+ </dc:publisher>
792
+ <cc:license rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/"/>
793
+ </cc:Work>
794
+ <cc:License rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
795
+ <cc:permits rdf:resource="http://creativecommons.org/ns#Reproduction"/>
796
+ <cc:permits rdf:resource="http://creativecommons.org/ns#Distribution"/>
797
+ <cc:requires rdf:resource="http://creativecommons.org/ns#Notice"/>
798
+ <cc:requires rdf:resource="http://creativecommons.org/ns#Attribution"/>
799
+ <cc:permits rdf:resource="http://creativecommons.org/ns#DerivativeWorks"/>
800
+ <cc:requires rdf:resource="http://creativecommons.org/ns#ShareAlike"/>
801
+ </cc:License>
802
+ </rdf:RDF>
803
+ </metadata>
804
+ </svg>
805
+ `,Vi=Q(`<span> </span>`),Hi=Q(`<pre></pre>`);function Ui(e,t){rt(t,!0);let n=(e,t)=>{let n=[],r=e=>{let t=n.at(-1);t&&t.className===e.className?t.text+=e.text:e.text&&n.push(e)},i=0;for(let n of t)n.start>i&&r({text:e.slice(i,n.start)}),r({className:n.name,text:e.slice(n.start,n.end)}),i=n.end;return i<e.length&&r({text:e.slice(i)}),n},r=I(void 0),i=Qt(()=>n(t.text,t.ranges));Un(()=>{t.text,Z(r),Tr().then(()=>{Z(r)&&(Z(r).scrollTop=Z(r).scrollHeight)})});var a=Hi();si(a,21,()=>Z(i),ri,(e,t)=>{var n=Vi(),r=z(n,!0);j(n),Yn(()=>{Ci(n,1,bi(Z(t).className)),Xr(r,Z(t).text)}),$(e,n)}),j(a),Ii(a,e=>L(r,e),()=>Z(r)),Yn(()=>Di(a,`data-terminal-id`,t.id)),$(e,a),it()}const Wi={30:`black`,31:`red`,32:`green`,33:`yellow`,34:`blue`,35:`magenta`,36:`cyan`,37:`white`,90:`bright-black`,91:`bright-red`,92:`bright-green`,93:`bright-yellow`,94:`bright-blue`,95:`bright-magenta`,96:`bright-cyan`,97:`bright-white`},Gi=e=>{let t=e.key.toLowerCase(),n=e.view?.getSelection(),r=n?!n.isCollapsed:!1;if(!(e.ctrlKey&&t===`v`)&&!(e.ctrlKey&&t===`c`&&r)){if(e.ctrlKey&&e.key.length===1){let t=e.key.toUpperCase().charCodeAt(0)-64;if(t>=1&&t<=26)return String.fromCharCode(t)}if(e.key===`Enter`)return`\r`;if(e.key===`Backspace`)return``;if(e.key===`Tab`)return` `;if(e.key===`Escape`)return`\x1B`;if(e.key===`ArrowUp`)return`\x1B[A`;if(e.key===`ArrowDown`)return`\x1B[B`;if(e.key===`ArrowRight`)return`\x1B[C`;if(e.key===`ArrowLeft`)return`\x1B[D`;if(e.key===`Home`)return`\x1B[H`;if(e.key===`End`)return`\x1B[F`;if(e.key===`Delete`)return`\x1B[3~`;if(e.key===`PageUp`)return`\x1B[5~`;if(e.key===`PageDown`)return`\x1B[6~`;if(e.key.length===1&&!e.metaKey&&!e.altKey)return e.key}},Ki=e=>{let t=e.lines.map(e=>e.text).join(``).replace(/\x1b(?!\[)/g,``),n=[],r=[[]],i=0,a=0,o=``,s=!1,c=()=>(r[i]??=[],r[i]),l=e=>{let t=c();for(;t.length<a;)t.push({text:` `,foreground:``,bold:!1});t[a]={text:e,foreground:o,bold:s},a+=1},u=e=>{let t=c();if(e===2)r[i]=[],a=0;else if(e===1)for(let e=0;e<=a;e+=1)t[e]={text:` `,foreground:``,bold:!1};else t.length=a},d=e=>{let t=e?e.split(`;`).map(Number):[0];for(let e of t)e===0?(o=``,s=!1):e===1?s=!0:e===22?s=!1:e===39?o=``:Wi[e]&&(o=Wi[e])};for(let e=0;e<t.length;e+=1){let n=t[e];if(n===`\x1B`&&t[e+1]===`[`){let n=t.slice(e).match(/^\x1b\[([0-9;?]*)([A-Za-z~])/);if(!n)continue;e+=n[0].length-1;let r=n[1],o=n[2],s=Number(r.split(`;`)[0])||0;o===`m`?d(r):o===`K`?u(s):o===`G`?a=Math.max(0,s-1):o===`C`?a+=s||1:o===`D`?a=Math.max(0,a-(s||1)):o===`A`?(i=Math.max(0,i-(s||1)),a=Math.min(a,c().length)):o===`B`&&(i+=s||1,a=Math.min(a,c().length));continue}if(n===`\r`)a=0;else if(n===`
806
+ `)i+=1,a=0,c();else if(n===`\b`||n===``)a=Math.max(0,a-1);else if(n===` `){let e=a+(8-a%8);for(;a<e;)l(` `)}else n>=` `&&l(n)}let f=``;return r.forEach((e,t)=>{t>0&&(f+=`
807
+ `),e.forEach(e=>{let t=f.length;f+=e.text,e.foreground&&n.push({name:`cod-ansi-${e.bold&&!e.foreground.startsWith(`bright-`)?`bright-${e.foreground}`:e.foreground}`,start:t,end:f.length})})}),{text:f,ranges:n}};var qi=Q(`<button type="button"><div class="terminal-tab-background m3-layer"><span> </span></div></button>`),Ji=Q(`<p class="empty">No tasks have started yet</p>`),Yi=Q(`<img aria-label="running" class="task-loader" alt="running"/>`),Xi=Q(`<article><button class="task-summary m3-layer" type="button"><span class="task-chevron" aria-hidden="true"> </span> <span class="task-label"><span class="task-title"> </span> <!></span></button> <!></article>`),Zi=Q(`<div class="task-list"><!> <!></div>`),Qi=Q(`<div class="empty terminal-empty"><button class="m3-layer" type="button">+ bash</button></div>`),$i=Q(`<dialog aria-label="Terminal" class="terminal-app" data-terminal-app="" closedby="any" tabindex="-1"><header class="terminal-header"><nav aria-label="Terminal tabs" class="terminal-tabs"><button type="button"><div class="terminal-tab-background m3-layer"><span>Tasks</span></div></button> <!></nav> <button aria-label="New terminal" class="new-terminal" type="button"><div class="new-terminal-background m3-layer"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24" aria-hidden="true"><path fill="currentColor" d="M11 13v3q0 .425.288.713T12 17t.713-.288T13 16v-3h3q.425 0 .713-.288T17 12t-.288-.712T16 11h-3V8q0-.425-.288-.712T12 7t-.712.288T11 8v3H8q-.425 0-.712.288T7 12t.288.713T8 13zm-6 8q-.825 0-1.412-.587T3 19V5q0-.825.588-1.412T5 3h14q.825 0 1.413.588T21 5v14q0 .825-.587 1.413T19 21zm0-2h14V5H5zM5 5v14z"></path></svg></div></button></header> <!></dialog>`);function ea(e,t){rt(t,!0);let n=I(void 0),r=!1,i=()=>t.terminals.filter(e=>e.kind===`task`),a=()=>t.terminals.filter(e=>e.kind===`terminal`),o=()=>a().find(e=>e.id===t.activeTab),s=e=>Ki(e),c=e=>{let n=o();if(!n||n.kind!==`terminal`)return;let r=Gi(e);r&&(e.preventDefault(),t.onInput(n.id,r))},l=e=>{let n=o();if(!n||n.kind!==`terminal`)return;let r=e.clipboardData?.getData(`text`);r&&(e.preventDefault(),t.onInput(n.id,r))};Un(()=>{Z(n)&&(t.open&&!Z(n).open?(Z(n).showModal(),Z(n).focus({preventScroll:!0})):!t.open&&Z(n).open&&(r=!0,Z(n).close()))});var u=$i(),d=z(u),f=z(d),p=z(f);let m;si(B(p,2),17,a,e=>e.id,(e,n)=>{var r=qi();let i;var a=z(r),o=z(a),s=z(o,!0);j(o),j(a),j(r),Yn(()=>{Di(r,`aria-current`,t.activeTab===Z(n).id?`page`:void 0),i=Ci(r,1,`terminal-tab`,null,i,{active:t.activeTab===Z(n).id}),Xr(s,Z(n).title)}),Vr(`click`,r,()=>t.onSelectTab(Z(n).id)),$(e,r)}),j(f);var h=B(f,2);j(d);var g=B(d,2),_=e=>{var n=Zi(),r=z(n),a=e=>{$(e,Ji())},o=Qt(()=>i().length===0);ni(r,e=>{Z(o)&&e(a)}),si(B(r,2),17,i,e=>e.id,(e,n)=>{var r=Xi();let i;var a=z(r),o=z(a),c=z(o);j(o);var l=B(o,2),u=z(l),d=z(u,!0);j(u);var f=B(u,2),p=e=>{var t=Yi();Yn(()=>Di(t,`src`,Li)),$(e,t)};ni(f,e=>{Z(n).running&&e(p)}),j(l),j(a);var m=B(a,2),h=e=>{let t=Qt(()=>s(Z(n)));Ui(e,{get id(){return Z(n).id},get text(){return Z(t).text},get ranges(){return Z(t).ranges}})};ni(m,e=>{Z(n).collapsed||e(h)}),j(r),Yn(()=>{i=Ci(r,1,`task-entry`,null,i,{error:Z(n).failed,finished:!Z(n).running}),Di(a,`aria-expanded`,!Z(n).collapsed),Xr(c,`[${Z(n).collapsed?`+`:`-`}]`),Xr(d,Z(n).title)}),Vr(`click`,a,()=>t.onToggleTask(Z(n).id)),$(e,r)}),j(n),$(e,n)},v=e=>{let n=Qt(()=>s(o()));Ui(e,{get id(){return t.activeTab},get text(){return Z(n).text},get ranges(){return Z(n).ranges}})},y=Qt(()=>o()),b=e=>{var n=Qi(),r=z(n);j(n),Vr(`click`,r,function(...e){t.onNewTerminal?.apply(this,e)}),$(e,n)};ni(g,e=>{t.activeTab===`tasks`?e(_):Z(y)?e(v,1):e(b,-1)}),j(u),Ii(u,e=>L(n,e),()=>Z(n)),Yn(()=>{Di(p,`aria-current`,t.activeTab===`tasks`?`page`:void 0),m=Ci(p,1,`terminal-tab`,null,m,{active:t.activeTab===`tasks`})}),Br(`close`,u,()=>{if(r){r=!1;return}t.onClose()}),Vr(`keydown`,u,c),Br(`paste`,u,l),Vr(`click`,p,()=>t.onSelectTab(`tasks`)),Vr(`click`,h,function(...e){t.onNewTerminal?.apply(this,e)}),$(e,u),it()}Hr([`keydown`,`click`]);var ta=Q(`<div> </div>`),na=Q(`<button class="app-entry alive m3-layer svelte-1ywbbn9" type="button"><span class="svelte-1ywbbn9"> </span></button>`),ra=Q(`<button class="app-entry launcher m3-layer svelte-1ywbbn9" type="button"><!> <span class="svelte-1ywbbn9"> </span></button>`),ia=Q(`<div class="screen svelte-1ywbbn9"></div> <!> <!> <div><nav class="bar svelte-1ywbbn9" aria-label="Open windows"><!> <button type="button" title="Terminal"><span class="svelte-1ywbbn9">Terminal</span></button> <!></nav></div> <div><img alt="Loading Cod" class="svelte-1ywbbn9"/></div>`,1);const aa={hash:`svelte-1ywbbn9`,code:`.screen.svelte-1ywbbn9 {position:absolute;z-index:10;inset:0;overflow:visible;canvas {max-width:none;max-height:none;object-fit:none;}}.mouse-lock-hint.svelte-1ywbbn9 {position:fixed;z-index:120;top:0.75rem;left:50%;max-width:calc(100vw - 1.5rem);border-radius:999px;padding:0.45rem 0.75rem;background:color-mix(in srgb, var(--m3c-surface-container-highest) 88%, transparent);color:var(--m3c-on-surface);font-size:0.8125rem;font-weight:650;opacity:0.9;pointer-events:none;translate:-50% 0;
808
+ animation: svelte-1ywbbn9-mouse-lock-hint-in 180ms ease-out;box-shadow:0 0.375rem 1.5rem rgb(0 0 0 / 0.18);&.active {background:var(--m3c-primary-container);color:var(--m3c-on-primary-container);opacity:1;}}
809
+
810
+ @keyframes svelte-1ywbbn9-mouse-lock-hint-in {
811
+ from {
812
+ opacity: 0;
813
+ transform: translateY(-0.35rem);
814
+ }
815
+
816
+ to {
817
+ opacity: 0.9;
818
+ transform: translateY(0);
819
+ }
820
+ }.bar-anchor.svelte-1ywbbn9 {display:contents;--transition: 220ms cubic-bezier(0.2, 0, 0, 1);}.bar.svelte-1ywbbn9 {position:fixed;z-index:100;bottom:0;left:50%;display:flex;align-items:center;gap:0.25rem;width:max-content;max-width:calc(100vw - 1rem);height:2.25rem;overflow:visible;padding:0.25rem;background:transparent;translate:-50% 0;transition:height var(--transition),
747
821
  width var(--transition),
748
822
  padding var(--transition),
749
823
  border-radius var(--transition);&::after {position:absolute;bottom:0.1875rem;left:50%;width:2.75rem;height:0.25rem;border-radius:999px;background:var(--m3c-primary-container);content:'';translate:-50% 0;transition:opacity var(--transition),
750
824
  visibility var(--transition);}}.bar-anchor.svelte-1ywbbn9:not(:hover, :focus-within, .force-expand) > .bar:where(.svelte-1ywbbn9) {width:3.5rem;height:0.75rem;padding:0;}.bar-anchor.svelte-1ywbbn9:is(:where(.svelte-1ywbbn9):hover, :where(.svelte-1ywbbn9):focus-within, .force-expand:where(.svelte-1ywbbn9)) > .bar:where(.svelte-1ywbbn9)::after {visibility:hidden;opacity:0;}.bar-anchor.svelte-1ywbbn9:not(:hover, :focus-within, .force-expand) > .bar:where(.svelte-1ywbbn9) > button:where(.svelte-1ywbbn9) {width:0;min-width:0;padding-inline:0;visibility:hidden;}.bar.svelte-1ywbbn9 button:where(.svelte-1ywbbn9) {position:relative;display:flex;align-items:center;justify-content:center;min-width:5.25rem;max-width:10rem;height:1.75rem;border:0;border-radius:0.5rem;padding:0 0.625rem;background:var(--m3c-surface-container-low);color:var(--m3c-on-surface);text-align:center;cursor:pointer;transition:width var(--transition),
751
825
  min-width var(--transition),
752
826
  padding var(--transition),
753
- background 120ms;&:hover {background:var(--m3c-surface-container-high);}&.alive::after {position:absolute;bottom:0.2rem;left:50%;width:0.25rem;height:0.25rem;border-radius:999px;background:currentColor;content:'';opacity:0.75;translate:-50% 0;}span:where(.svelte-1ywbbn9) {overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:650;line-height:1.1;}}.loader.svelte-1ywbbn9 {position:absolute;z-index:60;inset:0;display:grid;place-items:center;align-content:center;gap:1rem;background:var(--m3c-surface-container-lowest);transition:opacity 140ms;&.hidden {visibility:hidden;opacity:0;}img:where(.svelte-1ywbbn9) {width:min(50vw, 50vh, 24rem);height:auto;}}`};function Yi(e,t){it(t,!0),li(e,Ji);let n=String.raw`set -euo pipefail
827
+ background 120ms;&:hover {background:var(--m3c-surface-container-high);}&.alive::after {position:absolute;bottom:0.2rem;left:50%;width:0.25rem;height:0.25rem;border-radius:999px;background:currentColor;content:'';opacity:0.75;translate:-50% 0;}span:where(.svelte-1ywbbn9) {overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:650;line-height:1.1;}&.launcher {width:2rem;min-width:2rem;padding:0;svg {width:1.25rem;height:1.25rem;object-fit:contain;pointer-events:none;}span:where(.svelte-1ywbbn9) {position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}}}.loader.svelte-1ywbbn9 {position:absolute;z-index:60;inset:0;display:grid;place-items:center;align-content:center;gap:1rem;background:var(--m3c-surface-container-lowest);transition:opacity 140ms;&.hidden {visibility:hidden;opacity:0;}img:where(.svelte-1ywbbn9) {width:min(50vw, 50vh, 24rem);height:auto;}}`};function oa(e,t){rt(t,!0),gi(e,aa);let n=`task-relative-mouse`,r=String.raw`export DISPLAY=:99
828
+ export XDG_RUNTIME_DIR="$HOME/.local/run"
829
+ mkdir -p "$XDG_RUNTIME_DIR"
830
+ chmod 700 "$XDG_RUNTIME_DIR"
831
+ if [ -r "$HOME/.cod-desktop-env" ]; then
832
+ . "$HOME/.cod-desktop-env"
833
+ fi
834
+ export NO_AT_BRIDGE=1
835
+ export GTK_A11Y=none
836
+ export GTK_MODULES=
837
+ export DBUS_SESSION_BUS_ADDRESS="unix:path=$XDG_RUNTIME_DIR/bus"`,i=e=>`${r}\n${e}`,a=String.raw`set -euo pipefail
754
838
  echo "Installing Firefox..."
755
839
  export PATH="$HOME/.local/bin:$PATH"
756
840
  BIN_DIR="$HOME/.local/bin"
757
841
  APP_DIR="$HOME/.local"
758
- mkdir -p "$BIN_DIR" "$APP_DIR"
842
+ APPLICATIONS_DIR="$HOME/.local/share/applications"
843
+ mkdir -p "$BIN_DIR" "$APP_DIR" "$APPLICATIONS_DIR"
759
844
  BROWSER="$APP_DIR/firefox/firefox"
845
+ DESKTOP_FILE="$APPLICATIONS_DIR/firefox.desktop"
760
846
 
761
847
  if [ ! -x "$BROWSER" ]; then
762
- ARCHIVE="/tmp/codehs-firefox.tar.xz"
848
+ ARCHIVE="/tmp/firefox.tar.xz"
763
849
  EXTRACT_DIR="$(mktemp -d "$APP_DIR/firefox-install.XXXXXX")"
764
850
  URL="https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US"
765
851
  cleanup() {
@@ -779,7 +865,7 @@ with urllib.request.urlopen(url) as response:
779
865
  content_type = response.headers.get('content-type', '')
780
866
  if response.status != 200:
781
867
  raise RuntimeError(f'unexpected Firefox response: {response.status} {content_type}')
782
- with open('/tmp/codehs-firefox.tar.xz', 'wb') as f:
868
+ with open('/tmp/firefox.tar.xz', 'wb') as f:
783
869
  f.write(response.read())
784
870
  PY
785
871
  fi
@@ -789,10 +875,269 @@ PY
789
875
  mv "$EXTRACT_DIR/firefox" "$APP_DIR/firefox"
790
876
  fi
791
877
 
878
+ ln -sfn "$BROWSER" "$BIN_DIR/firefox"
879
+ cat > "$DESKTOP_FILE" <<EOF
880
+ [Desktop Entry]
881
+ Encoding=UTF-8
882
+ Version=1.0
883
+ Type=Application
884
+ NoDisplay=true
885
+ Exec=$BROWSER %u
886
+ Name=Firefox
887
+ Comment=Custom definition for Firefox
888
+ Icon=$APP_DIR/firefox/browser/chrome/icons/default/default128.png
889
+ MimeType=x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/chrome;text/html;application/x-extension-htm;application/x-extension-html;application/x-extension-shtml;application/xhtml+xml;application/x-extension-xhtml;application/x-extension-xht;
890
+ StartupWMClass=firefox
891
+ EOF
892
+ chmod 644 "$DESKTOP_FILE"
893
+ mkdir -p "$HOME/.config"
894
+ python3 - <<'PY'
895
+ import configparser
896
+ import os
897
+
898
+ home = os.environ['HOME']
899
+ path = os.path.join(home, '.config', 'mimeapps.list')
900
+ defaults = {
901
+ 'x-scheme-handler/http': 'firefox.desktop',
902
+ 'x-scheme-handler/https': 'firefox.desktop',
903
+ 'x-scheme-handler/chrome': 'firefox.desktop',
904
+ 'text/html': 'firefox.desktop',
905
+ 'application/x-extension-htm': 'firefox.desktop',
906
+ 'application/x-extension-html': 'firefox.desktop',
907
+ 'application/x-extension-shtml': 'firefox.desktop',
908
+ 'application/xhtml+xml': 'firefox.desktop',
909
+ 'application/x-extension-xhtml': 'firefox.desktop',
910
+ 'application/x-extension-xht': 'firefox.desktop',
911
+ }
912
+ config = configparser.RawConfigParser(strict=False, delimiters=('='))
913
+ config.optionxform = str
914
+ config.read(path)
915
+ for section, suffix in [('Default Applications', ''), ('Added Associations', ';')]:
916
+ if not config.has_section(section):
917
+ config.add_section(section)
918
+ for key, value in defaults.items():
919
+ config.set(section, key, value + suffix)
920
+ with open(path, 'w') as f:
921
+ config.write(f, space_around_delimiters=False)
922
+ PY
923
+
792
924
  "$BROWSER" --version
793
925
  echo "Firefox is ready: $BROWSER"
794
- `,r=String.raw`import json
926
+ `,o=String.raw`set -euo pipefail
927
+ echo "Installing Prism Launcher..."
928
+ python3 - <<'PY'
929
+ import json
930
+ import os
931
+ import shutil
932
+ import subprocess
933
+ import tarfile
934
+ import urllib.request
935
+
936
+ release_api = 'https://api.github.com/repos/PrismLauncher/PrismLauncher/releases/latest'
937
+ fallback_url = 'https://github.com/PrismLauncher/PrismLauncher/releases/download/11.0.2/PrismLauncher-Linux-Qt6-Portable-11.0.2.tar.gz'
938
+ home = os.environ.get('HOME') or '/tmp'
939
+ app_root = os.path.join(home, '.local', 'prism')
940
+ bin_dir = os.path.join(home, '.local', 'bin')
941
+ extract_dir = os.path.join(app_root, 'portable')
942
+ launcher = os.path.join(bin_dir, 'prismlauncher')
943
+ os.makedirs(app_root, exist_ok=True)
944
+ os.makedirs(bin_dir, exist_ok=True)
945
+
946
+ def download(url, dest, timeout=240):
947
+ curl = shutil.which('curl')
948
+ wget = shutil.which('wget')
949
+ if curl:
950
+ return subprocess.run([curl, '-L', '--fail', '--max-time', str(timeout), '-o', dest, url]).returncode == 0
951
+ if wget:
952
+ return subprocess.run([wget, '-O', dest, url], timeout=timeout + 30).returncode == 0
953
+ req = urllib.request.Request(url, headers={'User-Agent': 'prism-bootstrap/1'})
954
+ with urllib.request.urlopen(req, timeout=timeout) as resp, open(dest, 'wb') as f:
955
+ shutil.copyfileobj(resp, f)
956
+ return True
957
+
958
+ def latest_url():
959
+ override = os.environ.get('PRISM_URL')
960
+ if override:
961
+ return override
962
+ try:
963
+ req = urllib.request.Request(release_api, headers={'User-Agent': 'prism-bootstrap/1'})
964
+ with urllib.request.urlopen(req, timeout=30) as resp:
965
+ release = json.load(resp)
966
+ assets = release.get('assets') or []
967
+ for asset in assets:
968
+ name = asset.get('name') or ''
969
+ if name.startswith('PrismLauncher-Linux-Qt6-Portable-') and name.endswith('.tar.gz'):
970
+ print('Prism release:', release.get('tag_name'), name, flush=True)
971
+ return asset.get('browser_download_url')
972
+ for asset in assets:
973
+ name = asset.get('name') or ''
974
+ if name == 'PrismLauncher-Linux-x86_64.AppImage':
975
+ print('Prism AppImage fallback:', release.get('tag_name'), name, flush=True)
976
+ return asset.get('browser_download_url')
977
+ except Exception as exc:
978
+ print('Could not look up latest Prism release:', type(exc).__name__, str(exc), flush=True)
979
+ return fallback_url
980
+
981
+ def find_prism(root):
982
+ names = {'prismlauncher', 'PrismLauncher', 'prismlauncher.bin'}
983
+ for dirpath, _dirs, files in os.walk(root):
984
+ for name in files:
985
+ if name in names:
986
+ path = os.path.join(dirpath, name)
987
+ os.chmod(path, os.stat(path).st_mode | 0o111)
988
+ return path
989
+ return None
990
+
991
+ url = latest_url()
992
+ archive = os.path.join(app_root, os.path.basename(url.split('?', 1)[0]) or 'prism.tar.gz')
993
+ if not os.path.exists(archive) or os.path.getsize(archive) < 1024 * 1024:
994
+ print('Downloading Prism from', url, flush=True)
995
+ tmp = archive + '.download'
996
+ if os.path.exists(tmp):
997
+ os.remove(tmp)
998
+ if not download(url, tmp):
999
+ raise RuntimeError('failed to download Prism')
1000
+ os.replace(tmp, archive)
1001
+
1002
+ print('Prism archive:', archive, os.path.getsize(archive), flush=True)
1003
+ shutil.rmtree(extract_dir, ignore_errors=True)
1004
+ os.makedirs(extract_dir, exist_ok=True)
1005
+ if archive.endswith('.AppImage'):
1006
+ os.chmod(archive, os.stat(archive).st_mode | 0o111)
1007
+ result = subprocess.run([archive, '--appimage-extract'], cwd=extract_dir)
1008
+ if result.returncode != 0:
1009
+ raise RuntimeError('failed to extract Prism AppImage')
1010
+ else:
1011
+ with tarfile.open(archive, 'r:gz') as tar:
1012
+ tar.extractall(extract_dir)
1013
+
1014
+ prism = find_prism(extract_dir)
1015
+ if not prism:
1016
+ raise RuntimeError('could not find Prism executable after extraction')
1017
+
1018
+ with open(launcher, 'w') as f:
1019
+ f.write('#!/bin/sh\nexec "{}" "$@"\n'.format(prism))
1020
+ os.chmod(launcher, 0o755)
1021
+ subprocess.run([launcher, '--version'], timeout=30, check=True)
1022
+ print('Prism is ready:', launcher, flush=True)
1023
+ PY
1024
+ `,s=String.raw`set -euo pipefail
1025
+ echo "Installing opencode..."
1026
+ URL="https://github.com/anomalyco/opencode/releases/latest/download/opencode-linux-x64.tar.gz"
1027
+ BIN_DIR="$HOME/.local/bin"
1028
+ APP_DIR="$HOME/.local/opencode"
1029
+ TARGET="$BIN_DIR/opencode"
1030
+ ARCHIVE="$(mktemp /tmp/opencode-linux-x64.XXXXXX.tar.gz)"
1031
+ EXTRACT_DIR="$(mktemp -d /tmp/opencode-install.XXXXXX)"
1032
+ mkdir -p "$BIN_DIR" "$APP_DIR"
1033
+ cleanup() {
1034
+ rm -rf "$ARCHIVE" "$EXTRACT_DIR"
1035
+ }
1036
+ trap cleanup EXIT
1037
+
1038
+ echo "Downloading latest opencode from $URL..."
1039
+ if command -v curl >/dev/null 2>&1; then
1040
+ curl -L --fail --retry 2 --max-time 180 -o "$ARCHIVE" "$URL"
1041
+ elif command -v wget >/dev/null 2>&1; then
1042
+ wget -O "$ARCHIVE" "$URL"
1043
+ else
1044
+ OPENCODE_URL="$URL" OPENCODE_ARCHIVE="$ARCHIVE" python3 - <<'PY'
1045
+ import os
1046
+ import shutil
1047
+ import urllib.request
1048
+
1049
+ req = urllib.request.Request(os.environ['OPENCODE_URL'], headers={'User-Agent': 'cod-opencode-bootstrap/1'})
1050
+ with urllib.request.urlopen(req, timeout=180) as response, open(os.environ['OPENCODE_ARCHIVE'], 'wb') as f:
1051
+ if response.status != 200:
1052
+ raise RuntimeError(f'unexpected opencode response: {response.status}')
1053
+ shutil.copyfileobj(response, f)
1054
+ PY
1055
+ fi
1056
+
1057
+ echo "Extracting opencode..."
1058
+ tar -xzf "$ARCHIVE" -C "$EXTRACT_DIR"
1059
+ if [ ! -f "$EXTRACT_DIR/opencode" ]; then
1060
+ echo "Error: opencode archive did not contain a root opencode executable" >&2
1061
+ exit 1
1062
+ fi
1063
+ cp "$EXTRACT_DIR/opencode" "$TARGET"
1064
+ chmod 755 "$TARGET"
1065
+ "$TARGET" --version
1066
+ echo "opencode is ready: $TARGET"
1067
+ `,c=String.raw`set -euo pipefail
1068
+ export DISPLAY=:99
1069
+ for _ in $(seq 1 1200); do
1070
+ if xdpyinfo -display :99 >/dev/null 2>&1; then
1071
+ break
1072
+ fi
1073
+ sleep 0.5
1074
+ done
1075
+ xdpyinfo -display :99 >/dev/null
1076
+ HELPER="$(mktemp /tmp/cod-relative-mouse.XXXXXX.py)"
1077
+ trap 'rm -f "$HELPER"' EXIT
1078
+ cat > "$HELPER" <<'PY'
1079
+ import ctypes
1080
+ import sys
1081
+
1082
+ x11 = ctypes.cdll.LoadLibrary('libX11.so.6')
1083
+ xtst = ctypes.cdll.LoadLibrary('libXtst.so.6')
1084
+
1085
+ XErrorHandler = ctypes.CFUNCTYPE(ctypes.c_int, ctypes.c_void_p, ctypes.c_void_p)
1086
+ XIOErrorHandler = ctypes.CFUNCTYPE(ctypes.c_int, ctypes.c_void_p)
1087
+
1088
+ @XErrorHandler
1089
+ def handle_x_error(display, event):
1090
+ print('Relative mouse X error', flush=True)
1091
+ return 0
1092
+
1093
+ @XIOErrorHandler
1094
+ def handle_x_io_error(display):
1095
+ print('Relative mouse X IO error', flush=True)
1096
+ return 0
1097
+
1098
+ x11.XOpenDisplay.restype = ctypes.c_void_p
1099
+ x11.XSync.argtypes = [ctypes.c_void_p, ctypes.c_int]
1100
+ x11.XSetErrorHandler.argtypes = [XErrorHandler]
1101
+ x11.XSetIOErrorHandler.argtypes = [XIOErrorHandler]
1102
+ xtst.XTestFakeRelativeMotionEvent.argtypes = [ctypes.c_void_p, ctypes.c_int, ctypes.c_int, ctypes.c_int, ctypes.c_ulong]
1103
+ xtst.XTestFakeRelativeMotionEvent.restype = ctypes.c_int
1104
+ xtst.XTestFakeButtonEvent.argtypes = [ctypes.c_void_p, ctypes.c_uint, ctypes.c_int, ctypes.c_ulong]
1105
+ xtst.XTestFakeButtonEvent.restype = ctypes.c_int
1106
+
1107
+ x11.XSetErrorHandler(handle_x_error)
1108
+ x11.XSetIOErrorHandler(handle_x_io_error)
1109
+ display = x11.XOpenDisplay(None)
1110
+ if not display:
1111
+ raise SystemExit('could not open DISPLAY')
1112
+
1113
+ print('Relative mouse helper ready', flush=True)
1114
+
1115
+ def clamp(value):
1116
+ return max(-2000, min(2000, int(value)))
1117
+
1118
+ for line in sys.stdin:
1119
+ parts = line.split()
1120
+ if not parts:
1121
+ continue
1122
+ try:
1123
+ if parts[0] == 'm' and len(parts) == 3:
1124
+ dx = clamp(parts[1])
1125
+ dy = clamp(parts[2])
1126
+ if dx or dy:
1127
+ xtst.XTestFakeRelativeMotionEvent(display, dx, dy, 0, 0)
1128
+ x11.XSync(display, 0)
1129
+ elif parts[0] == 'b' and len(parts) == 3:
1130
+ button = max(1, min(7, int(parts[1])))
1131
+ down = 1 if int(parts[2]) else 0
1132
+ xtst.XTestFakeButtonEvent(display, button, down, 0)
1133
+ x11.XSync(display, 0)
1134
+ except Exception as exc:
1135
+ print('Relative mouse input error:', type(exc).__name__, exc, flush=True)
1136
+ PY
1137
+ exec python3 -u "$HELPER"
1138
+ `,l=String.raw`import json
795
1139
  import os
1140
+ import shutil
796
1141
  import subprocess
797
1142
  import sys
798
1143
  import threading
@@ -803,9 +1148,21 @@ import time
803
1148
  HOME = os.environ.get('HOME') or '/home/karel'
804
1149
  BIN_DIR = os.path.join(HOME, '.local', 'bin')
805
1150
  WM_DIR = os.path.join(HOME, '.local', 'codehs-wm')
1151
+ RUNTIME_DIR = os.path.join(HOME, '.local', 'run')
1152
+ DESKTOP_ENV_FILE = os.path.join(HOME, '.cod-desktop-env')
1153
+ DBUS_BUS_PATH = os.path.join(RUNTIME_DIR, 'bus')
1154
+ DBUS_BUS_ADDRESS = 'unix:path=' + DBUS_BUS_PATH
806
1155
  os.makedirs(BIN_DIR, exist_ok=True)
807
1156
  os.makedirs(WM_DIR, exist_ok=True)
1157
+ os.makedirs(RUNTIME_DIR, exist_ok=True)
1158
+ os.chmod(RUNTIME_DIR, 0o700)
808
1159
  os.environ['PATH'] = BIN_DIR + ':' + os.environ.get('PATH', '')
1160
+ os.environ['DISPLAY'] = ':99'
1161
+ os.environ['XDG_RUNTIME_DIR'] = RUNTIME_DIR
1162
+ os.environ['DBUS_SESSION_BUS_ADDRESS'] = DBUS_BUS_ADDRESS
1163
+ os.environ['NO_AT_BRIDGE'] = '1'
1164
+ os.environ['GTK_A11Y'] = 'none'
1165
+ os.environ['GTK_MODULES'] = ''
809
1166
 
810
1167
  GRAPHICS_WIDTH = 1920
811
1168
  GRAPHICS_HEIGHT = 1080
@@ -835,6 +1192,35 @@ def run(cmd, timeout=60, cwd=None, env=None, quiet=False):
835
1192
  say('Command failed:', type(exc).__name__, str(exc))
836
1193
  return False, '', str(exc)
837
1194
 
1195
+ def sh_quote(value):
1196
+ return "'" + value.replace("'", "'\"'\"'") + "'"
1197
+
1198
+ def write_desktop_env():
1199
+ with open(DESKTOP_ENV_FILE, 'w') as f:
1200
+ for key in ['DISPLAY', 'XDG_RUNTIME_DIR', 'DBUS_SESSION_BUS_ADDRESS', 'NO_AT_BRIDGE', 'GTK_A11Y', 'GTK_MODULES']:
1201
+ f.write('export {}={}\n'.format(key, sh_quote(os.environ.get(key, ''))))
1202
+
1203
+ def start_session_bus():
1204
+ run(['pkill', '-f', 'dbus-daemon --session --address=' + DBUS_BUS_ADDRESS], timeout=5, quiet=True)
1205
+ try:
1206
+ os.remove(DBUS_BUS_PATH)
1207
+ except FileNotFoundError:
1208
+ pass
1209
+ except Exception as exc:
1210
+ say('Warning: could not remove stale D-Bus socket', type(exc).__name__, str(exc))
1211
+
1212
+ start_background(
1213
+ ['dbus-daemon', '--session', '--address=' + DBUS_BUS_ADDRESS, '--nofork', '--nopidfile'],
1214
+ '/tmp/cod-dbus.log',
1215
+ )
1216
+ deadline = time.time() + 5
1217
+ while time.time() < deadline:
1218
+ if os.path.exists(DBUS_BUS_PATH):
1219
+ say('Session D-Bus is ready:', DBUS_BUS_ADDRESS)
1220
+ return
1221
+ time.sleep(0.1)
1222
+ say('Warning: session D-Bus socket did not appear')
1223
+
838
1224
  def download(url, path, timeout=120):
839
1225
  return run(['curl', '-L', '--fail', '--max-time', str(timeout - 20), '-o', path, url], timeout=timeout)[0]
840
1226
 
@@ -938,24 +1324,43 @@ def write_jwmrc(path):
938
1324
  <Class>firefox</Class>
939
1325
  <Class>Firefox</Class>
940
1326
  <Option>maximized</Option>
1327
+ <Option>noborder</Option>
1328
+ <Option>notitle</Option>
1329
+ </Group>
1330
+ <Group>
1331
+ <Name>PrismLauncher</Name>
1332
+ <Class>PrismLauncher</Class>
1333
+ <Class>prismlauncher</Class>
1334
+ <Option>maximized</Option>
941
1335
  </Group>
942
1336
  <Group>
943
1337
  <Option>tiled</Option>
944
1338
  <Option>aerosnap</Option>
945
- <Option>noborder</Option>
946
- <Option>notitle</Option>
947
1339
  </Group>
948
1340
  <WindowStyle decorations="motif">
949
1341
  <Font>Sans-10</Font>
950
- <Width>0</Width>
951
- <Height>0</Height>
1342
+ <Width>1</Width>
1343
+ <Height>20</Height>
1344
+ <Corner>0</Corner>
1345
+ <Foreground>#81b69f</Foreground>
1346
+ <Background>#001e14</Background>
1347
+ <Outline>#001e14</Outline>
1348
+ <Active>
1349
+ <Foreground>#daffec</Foreground>
1350
+ <Background>#002c1f</Background>
1351
+ <Outline>#002c1f</Outline>
1352
+ </Active>
952
1353
  </WindowStyle>
1354
+ <TitleButtonOrder>tx</TitleButtonOrder>
953
1355
  <Tray autohide="true" x="0" y="-1" height="1"></Tray>
954
1356
  <FocusModel>click</FocusModel>
955
1357
  <MoveMode>opaque</MoveMode>
956
1358
  <ResizeMode>opaque</ResizeMode>
957
1359
  <DoubleClickSpeed>400</DoubleClickSpeed>
958
1360
  <DoubleClickDelta>2</DoubleClickDelta>
1361
+ <Mouse context="title" button="1">move</Mouse>
1362
+ <Mouse context="title" button="11">maximize</Mouse>
1363
+ <Mouse context="close" button="1">close</Mouse>
959
1364
  <Key key="A-Tab">nextstacked</Key>
960
1365
  <Key key="A-F4">close</Key>
961
1366
  </JWM>
@@ -997,6 +1402,8 @@ def watch_windows():
997
1402
  time.sleep(1)
998
1403
 
999
1404
  say('Starting desktop services')
1405
+ write_desktop_env()
1406
+ start_session_bus()
1000
1407
  restart_graphics_stack()
1001
1408
  try:
1002
1409
  subprocess.run(['xsetroot', '-solid', '#00120a'], timeout=5)
@@ -1026,7 +1433,7 @@ while True:
1026
1433
  say('Error: window manager stopped with code', wm.returncode)
1027
1434
  sys.exit(4)
1028
1435
  time.sleep(5)
1029
- `,i=F(!0),a,o=0,s=F(!1),c=F(`tasks`),l=F(yn([])),u=F(yn([])),d=F(!1),f,p=(e=Z(c))=>{I(c,e,!0),I(s,!0),t.appWindow.setTimeout(ie)},m=()=>{I(s,!1)},h=(e,t)=>new Promise((n,r)=>{if([...e.scripts].find(e=>e.src===t)){n();return}let i=e.createElement(`script`);i.src=t,i.onload=()=>n(),i.onerror=()=>r(Error(`failed to load ${t}`)),e.head.appendChild(i)}),g=()=>({width:Math.max(1,Math.round(t.appWindow.innerWidth)),height:Math.max(1,Math.round(t.appWindow.innerHeight))}),_=e=>{let n=0,r,i=()=>{n=0;let t=g();r?.width===t.width&&r.height===t.height||(r=t,e(t))},a=()=>{n&&t.appWindow.clearTimeout(n),n=t.appWindow.setTimeout(i)};return t.appWindow.addEventListener(`resize`,a),a(),()=>{t.appWindow.removeEventListener(`resize`,a),n&&t.appWindow.clearTimeout(n)}},v=e=>{let t=e.querySelector(`canvas`);t instanceof HTMLCanvasElement&&(t.style.width=`${t.width}px`,t.style.height=`${t.height}px`,t.style.maxWidth=`none`,t.style.maxHeight=`none`,t.style.objectFit=`fill`)},y=e=>{let t,n=()=>{let n=e.querySelector(`canvas`);if(!(n instanceof HTMLCanvasElement))return!1;t?.disconnect();let r=new MutationObserver(()=>v(e));return t=r,r.observe(n,{attributes:!0,attributeFilter:[`width`,`height`]}),v(e),!0},r=new MutationObserver(()=>{n()&&r.disconnect()});n()||r.observe(e,{childList:!0,subtree:!0})},b=(e,n,r)=>{let i=!1,a,o=0,s=()=>{let c=t.appWindow.RFB;c&&(i=!1,o=0,a=new c(e,n,{}),a.scaleViewport=!1,a.resizeSession=!1,a.clipViewport=!0,a.focusOnClick=!0,a.addEventListener(`disconnect`,e=>{i&&console.warn(`[rfb] disconnected`,e),i=!1,o||=t.appWindow.setTimeout(s,1e3)}),a.addEventListener(`connect`,()=>{i=!0,r()}))};return s(),()=>{o&&t.appWindow.clearTimeout(o),a?.disconnect()}},x=e=>{a={width:Math.min(e.width,1920),height:Math.min(e.height,1080)},o&&t.appWindow.clearTimeout(o),o=t.appWindow.setTimeout(()=>{o=0;let e=a;if(!e)return;let t=`set -euo pipefail
1436
+ `,u=I(!0),d,f=0,p=I(!1),m=I(`tasks`),h=I(yn([])),g=I(yn([])),_=I(!1),v=I(!1),y=I(!1),b=I(!1),x=I(!1),S=I(!1),C,w=!1,ee=0,te=0,ne=0,T=0,re=new Map,ie=(e=Z(m))=>{L(m,e,!0),L(p,!0),t.appWindow.setTimeout(Ee)},ae=()=>{L(p,!1)},oe=(e,t)=>new Promise((n,r)=>{if([...e.scripts].find(e=>e.src===t)){n();return}let i=e.createElement(`script`);i.src=t,i.onload=()=>n(),i.onerror=()=>r(Error(`failed to load ${t}`)),e.head.appendChild(i)}),se=()=>({width:Math.max(1,Math.round(t.appWindow.innerWidth)),height:Math.max(1,Math.round(t.appWindow.innerHeight))}),ce=e=>{let n=0,r,i=()=>{n=0;let t=se();r?.width===t.width&&r.height===t.height||(r=t,e(t))},a=()=>{n&&t.appWindow.clearTimeout(n),n=t.appWindow.setTimeout(i)};return t.appWindow.addEventListener(`resize`,a),a(),()=>{t.appWindow.removeEventListener(`resize`,a),n&&t.appWindow.clearTimeout(n)}},le=e=>{let t=e.querySelector(`canvas`);t instanceof HTMLCanvasElement&&(t.style.width=`${t.width}px`,t.style.height=`${t.height}px`,t.style.maxWidth=`none`,t.style.maxHeight=`none`,t.style.objectFit=`fill`)},ue=e=>{let t,n=()=>{let n=e.querySelector(`canvas`);if(!(n instanceof HTMLCanvasElement))return!1;t?.disconnect();let r=new MutationObserver(()=>le(e));return t=r,r.observe(n,{attributes:!0,attributeFilter:[`width`,`height`]}),le(e),!0},r=new MutationObserver(()=>{n()&&r.disconnect()});n()||r.observe(e,{childList:!0,subtree:!0})},de=()=>{ne=0;let e=Math.round(ee),r=Math.round(te);ee=0,te=0,w&&(!e&&!r||t.session.input(n,`m ${e} ${r}\n`))},fe=(e,n)=>{ee+=e,te+=n,ne||=t.appWindow.setTimeout(de,8)},pe=e=>{if(e.button===0)return 1;if(e.button===1)return 2;if(e.button===2)return 3},me=e=>e.title.toLowerCase().includes(`minecraft`),he=()=>{Z(S)||Z(b)||(L(S,!0),L(x,!0),T&&t.appWindow.clearTimeout(T),T=t.appWindow.setTimeout(()=>{T=0,L(x,!1)},6500))},ge=e=>{let r=t.appWindow.document,i=()=>r.pointerLockElement===e,a=()=>{!i()&&ne&&(t.appWindow.clearTimeout(ne),de()),L(b,i(),!0)},o=t=>{!t.ctrlKey||t.button!==0||i()||(e.requestPointerLock(),t.preventDefault(),t.stopImmediatePropagation())},s=e=>{i()&&(fe(e.movementX,e.movementY),e.preventDefault(),e.stopImmediatePropagation())},c=e=>{if(!i())return;let r=pe(e);r&&t.session.input(n,`b ${r} ${+(e.type===`mousedown`)}\n`),e.preventDefault(),e.stopImmediatePropagation()},l=e=>{i()&&(e.preventDefault(),e.stopImmediatePropagation())};return e.addEventListener(`mousedown`,o,{capture:!0}),r.addEventListener(`mousemove`,s,{capture:!0}),r.addEventListener(`pointermove`,s,{capture:!0}),r.addEventListener(`mousedown`,c,{capture:!0}),r.addEventListener(`mouseup`,c,{capture:!0}),r.addEventListener(`contextmenu`,l,{capture:!0}),r.addEventListener(`pointerlockchange`,a),()=>{e.removeEventListener(`mousedown`,o,{capture:!0}),r.removeEventListener(`mousemove`,s,{capture:!0}),r.removeEventListener(`pointermove`,s,{capture:!0}),r.removeEventListener(`mousedown`,c,{capture:!0}),r.removeEventListener(`mouseup`,c,{capture:!0}),r.removeEventListener(`contextmenu`,l,{capture:!0}),r.removeEventListener(`pointerlockchange`,a),ne&&t.appWindow.clearTimeout(ne),ne=0,L(b,!1)}},_e=(e,n,r)=>{let i=!1,a,o=0,s=()=>{let c=t.appWindow.RFB;c&&(i=!1,o=0,a=new c(e,n,{}),a.scaleViewport=!1,a.resizeSession=!1,a.clipViewport=!0,a.focusOnClick=!0,a.addEventListener(`disconnect`,e=>{i&&console.warn(`[rfb] disconnected`,e),i=!1,o||=t.appWindow.setTimeout(s,1e3)}),a.addEventListener(`connect`,()=>{i=!0,r()}))};return s(),()=>{o&&t.appWindow.clearTimeout(o),a?.disconnect()}},ve=e=>{d={width:Math.min(e.width,1920),height:Math.min(e.height,1080)},f&&t.appWindow.clearTimeout(f),f=t.appWindow.setTimeout(()=>{f=0;let e=d;if(!e)return;let t=`set -euo pipefail
1030
1437
  WIDTH=${e.width}
1031
1438
  HEIGHT=${e.height}
1032
1439
  MODE="\${WIDTH}x\${HEIGHT}"
@@ -1054,14 +1461,13 @@ for _ in $(seq 1 10); do
1054
1461
  sleep 0.5
1055
1462
  done
1056
1463
  xrandr -d :99 --output screen --mode "$MODE" >/dev/null
1057
- `;de({id:`task-display-resize-${Date.now()}`,title:`Resize display to ${e.width}x${e.height}`,command:t})},120)},S=e=>{let t=e.slice(12).trim();try{let e=JSON.parse(t).filter(e=>typeof e.id==`string`&&typeof e.title==`string`);e.length>0&&I(d,!0);let n=new Map(e.map(e=>[e.id,e])),r=Z(u).map(e=>n.get(e.id)).filter(e=>!!e);for(let t of e)r.some(e=>e.id===t.id)||r.push(t);I(u,r,!0)}catch(t){console.warn(`[wm] failed to parse windows`,t,e)}},C=e=>{for(let t of e.split(`
1058
- `))t.startsWith(`COD_WINDOWS `)&&S(t)},w=()=>t.session.transfer({"main.py":r}),ee=()=>{let e=`set -e
1464
+ `;D({id:`task-display-resize-${Date.now()}`,title:`Resize display to ${e.width}x${e.height}`,command:t})},120)},ye=e=>{let t=e.slice(12).trim();try{let e=JSON.parse(t).filter(e=>typeof e.id==`string`&&typeof e.title==`string`),n=new Map(e.map(e=>[e.id,e])),r=Z(g).map(e=>n.get(e.id)).filter(e=>!!e);for(let t of e)r.some(e=>e.id===t.id)||r.push(t);L(g,r,!0),r.some(me)&&he()}catch(t){console.warn(`[wm] failed to parse windows`,t,e)}},be=()=>t.session.transfer({"main.py":l}),xe=e=>{let t=`set -e
1059
1465
  source "./.pyvenv311/bin/activate"
1060
- python -B "$MAIN_FILE"`;de({id:`task-desktop`,title:`Starting desktop`,command:e,args:[`-i`,`-c`,e],type:`echopty`,env:{MAIN_FILE:`main.py`,DEBUG_MODE:0},track:!1})},te=async e=>{let r=`wss://scalinghub.codehs.com/user/${t.uid}/graphics`,a,o=new Promise(e=>{a=e});if(y(e),t.session.setOutputHandler((e,t,n)=>{let r=String(t??``);n&&Z(l).some(e=>e.id===n)&&le(n,e,r),e===`stderr`&&console.warn(`[spawn]`,r),r.split(`
1061
- `).some(e=>e.trim()===`COD_WINDOWS []`)&&a(),C(r)}),_(x),await w(),ee(),de({id:`task-firefox-install`,title:`Installing Firefox`,command:n}),oe(),await h(t.appWindow.document,`https://static1.codehs.com/lib/noVNC/noVNC.js`),!t.appWindow.RFB)throw Error(`noVNC RFB global did not load`);await o,b(e,r,()=>{I(i,!1),v(e)})},ne=e=>{f=e,te(e)},re=()=>{let e=f?.querySelector(`canvas`);e instanceof HTMLCanvasElement&&e.focus({preventScroll:!0})},ie=()=>{t.appWindow.document.querySelector(`[data-terminal-app]`)?.focus({preventScroll:!0})},ae=()=>Z(l).filter(e=>e.kind===`terminal`).length,oe=()=>{de({id:`task-firefox-launch-${Date.now()}`,title:`Launching Firefox`,command:`set -euo pipefail
1466
+ python -B "$MAIN_FILE"`;D({id:`task-desktop`,title:`Starting desktop`,command:t,args:[`-i`,`-c`,t],type:`echopty`,env:{MAIN_FILE:`main.py`,DEBUG_MODE:0},track:!1,onOutput:(t,n)=>{for(let t of n.split(`
1467
+ `))t.startsWith(`COD_WINDOWS `)&&ye(t),t.trim()===`COD_WINDOWS []`&&e()}})},Se=()=>{w=!1,D({id:n,title:`Relative mouse helper`,command:c,args:[`-lc`,c],type:`echopty`,track:!1,onOutput:(e,t)=>{t.includes(`Relative mouse helper ready`)&&(w=!0)}})},Ce=async e=>{let n=`wss://scalinghub.codehs.com/user/${t.uid}/graphics`,r=()=>{},i=new Promise(e=>{r=e});if(ue(e),t.session.setOutputHandler((e,t,n)=>{let r=String(t??``);n&&Z(h).some(e=>e.id===n)&&Me(n,e,r),n&&re.get(n)?.(e,r),e===`stderr`&&console.warn(`[spawn]`,r)}),ce(ve),await be(),xe(r),D({id:`task-firefox-install`,title:`Installing Firefox`,command:a,onSuccess:()=>{L(_,!0),ke()}}),D({id:`task-prism-install`,title:`Installing Prism Launcher`,command:o,onSuccess:()=>{L(v,!0)}}),D({id:`task-opencode-install`,title:`Installing opencode`,command:s,onSuccess:()=>{L(y,!0)}}),await oe(t.appWindow.document,`https://static1.codehs.com/lib/noVNC/noVNC.js`),!t.appWindow.RFB)throw Error(`noVNC RFB global did not load`);await i,Se(),_e(e,n,()=>{L(u,!1),le(e)})},we=e=>{C=e;let n=ge(e);return Ce(e),()=>{n(),T&&t.appWindow.clearTimeout(T),T=0,L(x,!1),C=void 0}},Te=()=>{let e=C?.querySelector(`canvas`);e instanceof HTMLCanvasElement&&e.focus({preventScroll:!0})},Ee=()=>{t.appWindow.document.querySelector(`[data-terminal-app]`)?.focus({preventScroll:!0})},De=()=>Z(h).filter(e=>e.kind===`terminal`).length,Oe=e=>Z(g).some(t=>t.title.toLowerCase().includes(e)),ke=()=>{Z(_)&&D({id:`task-firefox-launch-${Date.now()}`,title:`Launching Firefox`,command:`set -euo pipefail
1062
1468
  BROWSER="$HOME/.local/firefox/firefox"
1063
1469
  for _ in $(seq 1 1200); do
1064
- if [ -x "$BROWSER" ] && xdpyinfo -display :99 >/dev/null 2>&1 && xprop -root _NET_SUPPORTING_WM_CHECK >/dev/null 2>&1; then
1470
+ if xdpyinfo -display :99 >/dev/null 2>&1 && xprop -root _NET_SUPPORTING_WM_CHECK >/dev/null 2>&1; then
1065
1471
  break
1066
1472
  fi
1067
1473
  sleep 0.5
@@ -1069,7 +1475,33 @@ done
1069
1475
  [ -x "$BROWSER" ]
1070
1476
  xdpyinfo -display :99 >/dev/null
1071
1477
  xprop -root _NET_SUPPORTING_WM_CHECK >/dev/null
1072
- "$BROWSER" about:blank`})},se=()=>{let e=`terminal-${Date.now()}`;I(l,[...Z(l),{id:e,title:`Bash ${ae()+1}`,kind:`terminal`,running:!0,started:!0,failed:!1,collapsed:!1,lines:[]}],!0),I(c,e),p(e),t.session.spawnCommand(e,`exec bash -l`,{type:`echopty`,args:[`-l`],untracked:!0})},ce=e=>{if(t.session){let t=JSON.stringify(e.id);de({id:`task-focus-${Date.now()}`,title:`Focus ${e.title}`,command:`python -B - <<'PY'
1478
+ "$BROWSER" about:blank`})},E=[{id:`firefox`,name:`Firefox`,icon:Ri,isInstalled:()=>Z(_),isRunning:()=>Oe(`firefox`),launch:ke},{id:`prism`,name:`Prism Launcher`,icon:Bi,isInstalled:()=>Z(v),isRunning:()=>Oe(`prism`),launch:()=>{Z(v)&&D({id:`task-prism-launch-${Date.now()}`,title:`Launching Prism Launcher`,command:`set -euo pipefail
1479
+ PRISM="$HOME/.local/bin/prismlauncher"
1480
+ export QT_XCB_GL_INTEGRATION="\${QT_XCB_GL_INTEGRATION:-none}"
1481
+ export QT_LOGGING_RULES="\${QT_LOGGING_RULES:-qt.qpa.*=true}"
1482
+ export LIBGL_ALWAYS_SOFTWARE="\${LIBGL_ALWAYS_SOFTWARE:-1}"
1483
+ export MESA_LOADER_DRIVER_OVERRIDE="\${MESA_LOADER_DRIVER_OVERRIDE:-llvmpipe}"
1484
+ for _ in $(seq 1 1200); do
1485
+ if xdpyinfo -display :99 >/dev/null 2>&1 && xprop -root _NET_SUPPORTING_WM_CHECK >/dev/null 2>&1; then
1486
+ break
1487
+ fi
1488
+ sleep 0.5
1489
+ done
1490
+ [ -x "$PRISM" ]
1491
+ xdpyinfo -display :99 >/dev/null
1492
+ xprop -root _NET_SUPPORTING_WM_CHECK >/dev/null
1493
+ "$PRISM" \${PRISM_ARGS:-}`})}},{id:`opencode`,name:`opencode`,icon:zi,isInstalled:()=>Z(y),isRunning:()=>Oe(`opencode`),launch:()=>{Z(y)&&D({id:`task-opencode-launch-${Date.now()}`,title:`Launching opencode`,command:`set -euo pipefail
1494
+ OPENCODE="$HOME/.local/bin/opencode"
1495
+ for _ in $(seq 1 1200); do
1496
+ if xdpyinfo -display :99 >/dev/null 2>&1 && xprop -root _NET_SUPPORTING_WM_CHECK >/dev/null 2>&1; then
1497
+ break
1498
+ fi
1499
+ sleep 0.5
1500
+ done
1501
+ [ -x "$OPENCODE" ]
1502
+ xdpyinfo -display :99 >/dev/null
1503
+ xprop -root _NET_SUPPORTING_WM_CHECK >/dev/null
1504
+ "$OPENCODE" web`})}}],Ae=()=>{let e=`terminal-${Date.now()}`;L(h,[...Z(h),{id:e,title:`Bash ${De()+1}`,kind:`terminal`,running:!0,started:!0,failed:!1,collapsed:!1,lines:[]}],!0),L(m,e),ie(e);let n=i(`exec bash -l`);t.session.spawnCommand(e,n,{type:`echopty`,args:[`-lc`,n],untracked:!0})},je=e=>{if(t.session){let t=JSON.stringify(e.id);D({id:`task-focus-${Date.now()}`,title:`Focus ${e.title}`,command:`python -B - <<'PY'
1073
1505
  import ctypes
1074
1506
  import time
1075
1507
 
@@ -1128,6 +1560,6 @@ try:
1128
1560
  x11.XFlush(display)
1129
1561
  finally:
1130
1562
  x11.XCloseDisplay(display)
1131
- PY`})}t.appWindow.setTimeout(re)},le=(e,t,n)=>{I(l,Z(l).map(r=>r.id===e?{...r,running:t===`system`&&n.includes(`exited`)?!1:r.running,lines:[...r.lines,{stream:t,text:n}].slice(-500)}:r),!0)},ue=(e,t,n)=>{I(l,Z(l).map(r=>r.id===e?{...r,running:!1,failed:t,collapsed:!0,lines:[...r.lines,{stream:`system`,text:n}].slice(-500)}:r),!0)},de=({id:e,title:n,command:r,args:i,env:a,type:o,track:s=!0,onSuccess:c,onFailure:u})=>{if(Z(l).some(t=>t.id===e))throw Error(`cannot start ${e}: terminal already exists`);let d=`COD_TASK_EXIT ${e} `,f=`set +e\n(\n${r}\n)\ncode=$?\necho "${d}$code"\nexit 0`,p=s?f:r;I(l,[...Z(l),{id:e,title:n,kind:`task`,running:!0,started:!0,failed:!1,collapsed:!0,lines:[]}],!0);let m;try{m=t.session.spawnCommand(e,p,{type:o??`echopty`,args:i??[`-lc`,p],env:a,untracked:!s,resolveOnOutput:e=>e.includes(`${d}0`),rejectOnOutput:e=>{let t=e.match(RegExp(`${d}(\\d+)`));if(!(!t||t[1]===`0`))return Error(`${n} exited with code ${t[1]}`)}})}catch(t){let n=t instanceof Error?t:Error(String(t));ue(e,!0,`\nTask failed to start: ${n.message}\n`),u?.(n);return}m?.then(()=>{ue(e,!1,`
1563
+ PY`})}t.appWindow.setTimeout(Te)},Me=(e,t,n)=>{L(h,Z(h).map(r=>r.id===e?{...r,running:t===`system`&&n.includes(`exited`)?!1:r.running,lines:[...r.lines,{stream:t,text:n}].slice(-500)}:r),!0)},Ne=(e,t,n)=>{L(h,Z(h).map(r=>r.id===e?{...r,running:!1,failed:t,collapsed:!0,lines:[...r.lines,{stream:`system`,text:n}].slice(-500)}:r),!0)},D=({id:e,title:n,command:r,args:a,env:o,type:s,track:c=!0,onOutput:l,onSuccess:u,onFailure:d})=>{if(Z(h).some(t=>t.id===e))throw Error(`cannot start ${e}: terminal already exists`);let f=`COD_TASK_EXIT ${e} `,p=i(r),m=`set +e\n(\n${p}\n)\ncode=$?\necho "${f}$code"\nexit 0`,g=c?m:p,_=a?a.map(e=>e===r?p:e):[`-lc`,g];L(h,[...Z(h),{id:e,title:n,kind:`task`,running:!0,started:!0,failed:!1,collapsed:!0,lines:[]}],!0),l&&re.set(e,l);let v;try{v=t.session.spawnCommand(e,g,{type:s??`echopty`,args:_,env:o,untracked:!c,resolveOnOutput:e=>e.includes(`${f}0`),rejectOnOutput:e=>{let t=e.match(RegExp(`${f}(\\d+)`));if(!(!t||t[1]===`0`))return Error(`${n} exited with code ${t[1]}`)}})}catch(t){re.delete(e);let n=t instanceof Error?t:Error(String(t));Ne(e,!0,`\nTask failed to start: ${n.message}\n`),d?.(n);return}v?.then(()=>{re.delete(e),Ne(e,!1,`
1132
1564
  Task completed successfully.
1133
- `),c?.()}).catch(t=>{ue(e,!0,`\nTask failed: ${t.message}\n`),u?.(t)})},fe=e=>{I(c,e,!0),p(e)},pe=e=>{I(l,Z(l).map(t=>t.id===e?{...t,collapsed:!t.collapsed}:t),!0)},me=(e,n)=>{t.session?.input(e,n)};var he=qi(),ge=Mn(he);ui(ge,()=>ne);var _e=z(ge,2);Wi(_e,{get terminals(){return Z(l)},get open(){return Z(s)},get activeTab(){return Z(c)},onClose:m,onSelectTab:fe,onToggleTask:pe,onNewTerminal:se,onInput:me});var ve=z(_e,2);let ye;var be=R(ve),xe=R(be);ni(xe,17,()=>Z(u),e=>e.id,(e,t)=>{var n=Gi(),r=R(n),i=R(r,!0);k(r),k(n),Yn(()=>{bi(n,`title`,Z(t).title),Gr(i,Z(t).title)}),Lr(`click`,n,()=>ce(Z(t))),$(e,n)});var Se=z(xe,2),Ce=e=>{var t=Ki();Lr(`click`,t,oe),$(e,t)};Zr(Se,e=>{Z(d)&&Z(u).length===0&&e(Ce)});var we=z(Se,2);let Te;k(be),k(ve);var Ee=z(ve,2);let De;var Oe=R(Ee);k(Ee),Yn(()=>{ye=gi(ve,1,`bar-anchor svelte-1ywbbn9`,null,ye,{"force-expand":Z(i)}),Te=gi(we,1,`app-entry m3-layer svelte-1ywbbn9`,null,Te,{alive:Z(s)||Z(l).length>0}),De=gi(Ee,1,`loader svelte-1ywbbn9`,null,De,{hidden:!Z(i)}),bi(Oe,`src`,Ai)}),Lr(`click`,we,()=>p()),$(e,he),at()}Rr([`click`]);const Xi=e=>{let{document:t,HTMLButtonElement:n,HTMLInputElement:r,HTMLLabelElement:i}=e,a=[],o=[],s=e=>{if(e instanceof n&&e.disabled||e instanceof r&&e.disabled)return!1;if(e instanceof i){let t=e.control;if(t instanceof r&&t.disabled)return!1}return!0},c=(n,r,i,a,o)=>{if(e.matchMedia(`(prefers-reduced-motion: reduce)`).matches)return;let s=Math.hypot(Math.max(r,a-r),Math.max(i,o-i))*2.5,c=Math.max(Math.min(Math.log(s)*50,600),200),l=t.createElementNS(`http://www.w3.org/2000/svg`,`radialGradient`);l.id=`ripple-${Date.now()}-${Math.random().toString(36).slice(2)}`;for(let{offset:e,opacity:n}of[{offset:`0%`,opacity:`0.12`},{offset:`70%`,opacity:`0.12`},{offset:`100%`,opacity:`0`}]){let r=t.createElementNS(`http://www.w3.org/2000/svg`,`stop`);r.setAttribute(`offset`,e),r.setAttribute(`stop-color`,`currentColor`),r.setAttribute(`stop-opacity`,n),l.appendChild(r)}let u=t.createElementNS(`http://www.w3.org/2000/svg`,`circle`);u.setAttribute(`cx`,`${r}`),u.setAttribute(`cy`,`${i}`),u.setAttribute(`r`,`0`),u.setAttribute(`fill`,`url(#${l.id})`);let d=t.createElementNS(`http://www.w3.org/2000/svg`,`animate`);d.setAttribute(`attributeName`,`r`),d.setAttribute(`from`,`0`),d.setAttribute(`to`,`${s/2}`),d.setAttribute(`dur`,`${c}ms`),d.setAttribute(`fill`,`freeze`),d.setAttribute(`calcMode`,`spline`),d.setAttribute(`keySplines`,`0.4 0, 0.2 1`),u.appendChild(d);let f=t.createElementNS(`http://www.w3.org/2000/svg`,`svg`);return f.classList.add(`active-ripple`),f.style.cssText=[`position: absolute`,`inset: 0`,`width: 100%`,`height: 100%`,`overflow: hidden`,`border-radius: inherit`,`pointer-events: none`].join(`;`),f.appendChild(l),f.appendChild(u),n.appendChild(f),()=>{let n=t.createElementNS(`http://www.w3.org/2000/svg`,`animate`);n.setAttribute(`attributeName`,`opacity`),n.setAttribute(`from`,`1`),n.setAttribute(`to`,`0`),n.setAttribute(`dur`,`800ms`),n.setAttribute(`fill`,`freeze`),n.setAttribute(`calcMode`,`spline`),n.setAttribute(`keySplines`,`0.4 0, 0.2 1`),u.appendChild(n),n.beginElement(),e.setTimeout(()=>f.remove(),800)}};t.documentElement.classList.add(`js`),t.addEventListener(`pointerdown`,e=>{if(e.button!==0)return;let t=e.target?.closest(`.m3-layer`);if(!t||!s(t))return;let n=t.getBoundingClientRect(),r=c(t,e.clientX-n.left,e.clientY-n.top,n.width,n.height);r&&a.push(r)});let l=()=>{for(let e of a)e();a.length=0};t.addEventListener(`pointerup`,l),t.addEventListener(`dragend`,l),t.addEventListener(`keydown`,e=>{if(e.repeat)return;let t=e.target?.closest(`.m3-layer`);if(!t||!s(t)||!(e.key===`Enter`||e.key===` `&&t.tagName===`BUTTON`))return;let n=t.getBoundingClientRect(),r=c(t,n.width/2,n.height/2,n.width,n.height);r&&o.push(r)}),t.addEventListener(`keyup`,()=>{for(let e of o)e();o.length=0})},Zi=(t,n,r)=>{let{document:a}=n;a.title=`New Tab`;let o=a.createElement(`style`);o.textContent=e+i,a.head.appendChild(o),Xi(n),Kr(Yi,{target:a.body,props:{uid:t,appWindow:n,session:r}})},Qi=e=>{let t=new Map;return{start(e,n={}){if(t.has(e))throw Error(`spawn id already running: ${e}`);return new Promise((r,i)=>{t.set(e,{output:``,resolve:r,reject:i,resolveOnOutput:n.resolveOnOutput??(()=>!1),rejectOnOutput:n.rejectOnOutput??(()=>void 0)})})},handleOutput(n,r){let i=r?.id,a=i?t.get(i):void 0;if(!a){e(n,r?.data??r,i);return}let o=String(r?.data??``);a.output+=o,e(n,o,i);let s=a.rejectOnOutput(o);if(s){t.delete(i),a.reject(s);return}a.resolveOnOutput(o)&&(t.delete(i),a.resolve())},handleExit(e){let n=e?.id,r=n?t.get(n):void 0;if(!n||!r)return;t.delete(n);let i=e?.data,a=typeof i==`number`?i:i?.code??i?.exitCode??i?.status,o=typeof i==`number`?null:i?.signal;if(a===0&&!o){r.resolve();return}r.reject(Error(`${n} exited with code ${a??`unknown`} signal ${o??`null`}: ${r.output}`))}}},$i=(e,t,n)=>{let r=new WebSocket(`wss://scalinghub.codehs.com/user/${e}/spawn/?watch=true&EIO=3&transport=websocket`),i=!1,a={width:1100,height:800},o,s=new Promise(e=>{o=e}),c=(e,t)=>{if(!i||r.readyState!==WebSocket.OPEN)throw Error(`spawn socket is not open; cannot send ${e}`);r.send(`42${JSON.stringify([e,t])}`)};return t.setInterval(()=>{i&&r.readyState===WebSocket.OPEN&&c(`keepalive`,null)},2e4),r.addEventListener(`message`,e=>{if(typeof e.data==`string`){if(e.data.startsWith(`0`)){r.send(`40`);return}if(e.data===`40`){i=!0,o();return}if(e.data.startsWith(`42`)){let[t,r]=JSON.parse(e.data.slice(2));t===`stdout`?n.onStdout?.(r):t===`stderr`?n.onStderr?.(r):t===`exit`?n.onExit?.(r):t===`transferComplete`&&n.onTransferComplete?.(r);return}e.data===`2`&&r.send(`3`)}}),r.addEventListener(`close`,()=>{i=!1}),{ready:s,spawn(e){c(`spawn`,e)},kill(e){c(`kill`,{id:e})},input(e,t){c(`stdin`,{id:e,data:t})},resize(e,t){a={width:Math.max(1,Math.round(e)),height:Math.max(1,Math.round(t))},c(`resize`,{w:a.width,h:a.height})},transfer(e){c(`transfer`,e)}}},ea=(e,t,n=()=>{})=>{let r=n,i=Qi((e,t,n)=>{r(e,t,n)}),a=[],o=$i(e,t,{onStdout:e=>i.handleOutput(`stdout`,e),onStderr:e=>i.handleOutput(`stderr`,e),onExit:e=>i.handleExit(e),onTransferComplete:()=>a.shift()?.()});return{ready:o.ready,setOutputHandler(e){r=e},spawnCommand:(e,t,n={})=>{let r=n.untracked?void 0:i.start(e,n);return o.spawn({cmd:`bash`,args:n.args??[`-lc`,t],id:e,options:{type:n.type??`normal`,env:n.env}}),r},kill(e){o.kill(e)},input(e,t){o.input(e,t)},resize(e,t){o.resize(e,t)},transfer(e){let t=new Promise(e=>{a.push(e)});return o.transfer(e),t}}},ta=(Math.random()*1e5).toFixed(0),na=fetch(`https://scalinghub.codehs.com/hub/api/spinup/${ta}/config/default`,{credentials:`include`}),ra=document.createElement(`style`);ra.textContent=e+t,document.head.appendChild(ra);const ia=document.createElement(`button`);ia.innerHTML=n,ia.disabled=!0;const aa=document.createElement(`a`);aa.innerHTML=`Made by <span>${r} Abundance</span>, the makers of <u>0K</u>`,aa.href=`https://cdn.jsdelivr.net/gh/abndnce/b0k@main/jsdelivr/index.svg`,aa.target=`_blank`,document.body.replaceChildren(ia,aa),na.then(async()=>{let e=ea(ta,window);await e.ready,ia.disabled=!1,ia.onclick=()=>{let t=window.open(`about:blank`,`_blank`);if(!t)throw Error(`failed to open`);Zi(ta,t,e)}});
1565
+ `),u?.()}).catch(t=>{re.delete(e),Ne(e,!0,`\nTask failed: ${t.message}\n`),d?.(t)})},Pe=e=>{L(m,e,!0),ie(e)},Fe=e=>{L(h,Z(h).map(t=>t.id===e?{...t,collapsed:!t.collapsed}:t),!0)},Ie=(e,n)=>{t.session?.input(e,n)};var Le=ia(),Re=Mn(Le);_i(Re,()=>we);var ze=B(Re,2),O=e=>{var t=ta();let n;var r=z(t,!0);j(t),Yn(()=>{n=Ci(t,1,`mouse-lock-hint svelte-1ywbbn9`,null,n,{active:Z(b)}),Xr(r,Z(b)?`Relative mouse active. Press Esc to release.`:`Game detected. Ctrl+click the desktop for relative mouse.`)}),$(e,t)};ni(ze,e=>{(Z(x)||Z(b))&&e(O)});var Be=B(ze,2);ea(Be,{get terminals(){return Z(h)},get open(){return Z(p)},get activeTab(){return Z(m)},onClose:ae,onSelectTab:Pe,onToggleTask:Fe,onNewTerminal:Ae,onInput:Ie});var k=B(Be,2);let A;var Ve=z(k),He=z(Ve);si(He,17,()=>Z(g),e=>e.id,(e,t)=>{var n=na(),r=z(n),i=z(r,!0);j(r),j(n),Yn(()=>{Di(n,`title`,Z(t).title),Xr(i,Z(t).title)}),Vr(`click`,n,()=>je(Z(t))),$(e,n)});var Ue=B(He,2);let We;si(B(Ue,2),17,()=>E,e=>e.id,(e,t)=>{var n=Yr(),r=Mn(n),i=e=>{var n=ra(),r=z(n);hi(r,()=>Z(t).icon);var i=B(r,2),a=z(i,!0);j(i),j(n),Yn(()=>{Di(n,`title`,`Launch ${Z(t).name}`),Di(n,`aria-label`,`Launch ${Z(t).name}`),Xr(a,Z(t).name)}),Vr(`click`,n,function(...e){Z(t).launch?.apply(this,e)}),$(e,n)},a=Qt(()=>Z(t).isInstalled()&&!Z(t).isRunning());ni(r,e=>{Z(a)&&e(i)}),$(e,n)}),j(Ve),j(k);var Ge=B(k,2);let Ke;var qe=z(Ge);j(Ge),Yn(()=>{A=Ci(k,1,`bar-anchor svelte-1ywbbn9`,null,A,{"force-expand":Z(u)}),We=Ci(Ue,1,`app-entry m3-layer svelte-1ywbbn9`,null,We,{alive:Z(p)||Z(h).length>0}),Ke=Ci(Ge,1,`loader svelte-1ywbbn9`,null,Ke,{hidden:!Z(u)}),Di(qe,`src`,Li)}),Vr(`click`,Ue,()=>ie()),$(e,Le),it()}Hr([`click`]);const sa=e=>{let{document:t,HTMLButtonElement:n,HTMLInputElement:r,HTMLLabelElement:i}=e,a=[],o=[],s=e=>{if(e instanceof n&&e.disabled||e instanceof r&&e.disabled)return!1;if(e instanceof i){let t=e.control;if(t instanceof r&&t.disabled)return!1}return!0},c=(n,r,i,a,o)=>{if(e.matchMedia(`(prefers-reduced-motion: reduce)`).matches)return;let s=Math.hypot(Math.max(r,a-r),Math.max(i,o-i))*2.5,c=Math.max(Math.min(Math.log(s)*50,600),200),l=t.createElementNS(`http://www.w3.org/2000/svg`,`radialGradient`);l.id=`ripple-${Date.now()}-${Math.random().toString(36).slice(2)}`;for(let{offset:e,opacity:n}of[{offset:`0%`,opacity:`0.12`},{offset:`70%`,opacity:`0.12`},{offset:`100%`,opacity:`0`}]){let r=t.createElementNS(`http://www.w3.org/2000/svg`,`stop`);r.setAttribute(`offset`,e),r.setAttribute(`stop-color`,`currentColor`),r.setAttribute(`stop-opacity`,n),l.appendChild(r)}let u=t.createElementNS(`http://www.w3.org/2000/svg`,`circle`);u.setAttribute(`cx`,`${r}`),u.setAttribute(`cy`,`${i}`),u.setAttribute(`r`,`0`),u.setAttribute(`fill`,`url(#${l.id})`);let d=t.createElementNS(`http://www.w3.org/2000/svg`,`animate`);d.setAttribute(`attributeName`,`r`),d.setAttribute(`from`,`0`),d.setAttribute(`to`,`${s/2}`),d.setAttribute(`dur`,`${c}ms`),d.setAttribute(`fill`,`freeze`),d.setAttribute(`calcMode`,`spline`),d.setAttribute(`keySplines`,`0.4 0, 0.2 1`),u.appendChild(d);let f=t.createElementNS(`http://www.w3.org/2000/svg`,`svg`);return f.classList.add(`active-ripple`),f.style.cssText=[`position: absolute`,`inset: 0`,`width: 100%`,`height: 100%`,`overflow: hidden`,`border-radius: inherit`,`pointer-events: none`].join(`;`),f.appendChild(l),f.appendChild(u),n.appendChild(f),()=>{let n=t.createElementNS(`http://www.w3.org/2000/svg`,`animate`);n.setAttribute(`attributeName`,`opacity`),n.setAttribute(`from`,`1`),n.setAttribute(`to`,`0`),n.setAttribute(`dur`,`800ms`),n.setAttribute(`fill`,`freeze`),n.setAttribute(`calcMode`,`spline`),n.setAttribute(`keySplines`,`0.4 0, 0.2 1`),u.appendChild(n),n.beginElement(),e.setTimeout(()=>f.remove(),800)}};t.documentElement.classList.add(`js`),t.addEventListener(`pointerdown`,e=>{if(e.button!==0)return;let t=e.target?.closest(`.m3-layer`);if(!t||!s(t))return;let n=t.getBoundingClientRect(),r=c(t,e.clientX-n.left,e.clientY-n.top,n.width,n.height);r&&a.push(r)});let l=()=>{for(let e of a)e();a.length=0};t.addEventListener(`pointerup`,l),t.addEventListener(`dragend`,l),t.addEventListener(`keydown`,e=>{if(e.repeat)return;let t=e.target?.closest(`.m3-layer`);if(!t||!s(t)||!(e.key===`Enter`||e.key===` `&&t.tagName===`BUTTON`))return;let n=t.getBoundingClientRect(),r=c(t,n.width/2,n.height/2,n.width,n.height);r&&o.push(r)}),t.addEventListener(`keyup`,()=>{for(let e of o)e();o.length=0})},ca=(t,n,r)=>{let{document:a}=n;a.title=`New Tab`;let o=a.createElement(`style`);o.textContent=e+i,a.head.appendChild(o),sa(n),Zr(oa,{target:a.body,props:{uid:t,appWindow:n,session:r}})},la=e=>{let t=new Map;return{start(e,n={}){if(t.has(e))throw Error(`spawn id already running: ${e}`);return new Promise((r,i)=>{t.set(e,{output:``,resolve:r,reject:i,resolveOnOutput:n.resolveOnOutput??(()=>!1),rejectOnOutput:n.rejectOnOutput??(()=>void 0)})})},handleOutput(n,r){let i=r?.id,a=i?t.get(i):void 0;if(!a){e(n,r?.data??r,i);return}let o=String(r?.data??``);a.output+=o,e(n,o,i);let s=a.rejectOnOutput(o);if(s){t.delete(i),a.reject(s);return}a.resolveOnOutput(o)&&(t.delete(i),a.resolve())},handleExit(e){let n=e?.id,r=n?t.get(n):void 0;if(!n||!r)return;t.delete(n);let i=e?.data,a=typeof i==`number`?i:i?.code??i?.exitCode??i?.status,o=typeof i==`number`?null:i?.signal;if(a===0&&!o){r.resolve();return}r.reject(Error(`${n} exited with code ${a??`unknown`} signal ${o??`null`}: ${r.output}`))}}},ua=(e,t,n)=>{let r=new WebSocket(`wss://scalinghub.codehs.com/user/${e}/spawn/?watch=true&EIO=3&transport=websocket`),i=!1,a={width:1100,height:800},o,s=new Promise(e=>{o=e}),c=(e,t)=>{if(!i||r.readyState!==WebSocket.OPEN)throw Error(`spawn socket is not open; cannot send ${e}`);r.send(`42${JSON.stringify([e,t])}`)};return t.setInterval(()=>{i&&r.readyState===WebSocket.OPEN&&c(`keepalive`,null)},2e4),r.addEventListener(`message`,e=>{if(typeof e.data==`string`){if(e.data.startsWith(`0`)){r.send(`40`);return}if(e.data===`40`){i=!0,o();return}if(e.data.startsWith(`42`)){let[t,r]=JSON.parse(e.data.slice(2));t===`stdout`?n.onStdout?.(r):t===`stderr`?n.onStderr?.(r):t===`exit`?n.onExit?.(r):t===`transferComplete`&&n.onTransferComplete?.(r);return}e.data===`2`&&r.send(`3`)}}),r.addEventListener(`close`,()=>{i=!1}),{ready:s,spawn(e){c(`spawn`,e)},kill(e){c(`kill`,{id:e})},input(e,t){c(`stdin`,{id:e,data:t})},resize(e,t){a={width:Math.max(1,Math.round(e)),height:Math.max(1,Math.round(t))},c(`resize`,{w:a.width,h:a.height})},transfer(e){c(`transfer`,e)}}},da=(e,t,n=()=>{})=>{let r=n,i=la((e,t,n)=>{r(e,t,n)}),a=[],o=ua(e,t,{onStdout:e=>i.handleOutput(`stdout`,e),onStderr:e=>i.handleOutput(`stderr`,e),onExit:e=>i.handleExit(e),onTransferComplete:()=>a.shift()?.()});return{ready:o.ready,setOutputHandler(e){r=e},spawnCommand:(e,t,n={})=>{let r=n.untracked?void 0:i.start(e,n);return o.spawn({cmd:`bash`,args:n.args??[`-lc`,t],id:e,options:{type:n.type??`normal`,env:n.env}}),r},kill(e){o.kill(e)},input(e,t){o.input(e,t)},resize(e,t){o.resize(e,t)},transfer(e){let t=new Promise(e=>{a.push(e)});return o.transfer(e),t}}},fa=(Math.random()*1e5).toFixed(0),pa=fetch(`https://scalinghub.codehs.com/hub/api/spinup/${fa}/config/default`,{credentials:`include`}),ma=document.createElement(`style`);ma.textContent=e+t,document.head.appendChild(ma);const ha=document.createElement(`button`);ha.innerHTML=n,ha.disabled=!0;const ga=document.createElement(`a`);ga.innerHTML=`Made by <span>${r} Abundance</span>, the makers of <u>0K</u>`,ga.href=`https://cdn.jsdelivr.net/gh/abndnce/b0k@main/jsdelivr/index.svg`,ga.target=`_blank`,document.body.replaceChildren(ha,ga),pa.then(async()=>{let e=da(fa,window);await e.ready,ha.disabled=!1,ha.onclick=()=>{let t=window.open(`about:blank`,`_blank`);if(!t)throw Error(`failed to open`);ca(fa,t,e)}});
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "gadidae",
3
3
  "type": "module",
4
- "version": "0.1.4",
4
+ "version": "0.2.0",
5
5
  "description": "cod",
6
6
  "license": "UNLICENSED",
7
7
  "exports": {