STreaming ARchives: stricter, verifiable, deterministic, highly compressible alternatives to CAR files for atproto repositories.
atproto car
9
fork

Configure Feed

Select the types of activity you want to include in your feed.

load cars

phil f5b951ab e58a5f85

+208 -20
-9
star-lite/viz/dist/assets/index-DAzQMesO.js
··· 1 - var Ui=Object.defineProperty;var Dn=e=>{throw TypeError(e)};var Gi=(e,t,r)=>t in e?Ui(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var qe=(e,t,r)=>Gi(e,typeof t!="symbol"?t+"":t,r),Ur=(e,t,r)=>t.has(e)||Dn("Cannot "+r);var u=(e,t,r)=>(Ur(e,t,"read from private field"),r?r.call(e):t.get(e)),S=(e,t,r)=>t.has(e)?Dn("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),I=(e,t,r,n)=>(Ur(e,t,"write to private field"),n?n.call(e,r):t.set(e,r),r),q=(e,t,r)=>(Ur(e,t,"access private method"),r);(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const s of i)if(s.type==="childList")for(const l of s.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&n(l)}).observe(document,{childList:!0,subtree:!0});function r(i){const s={};return i.integrity&&(s.integrity=i.integrity),i.referrerPolicy&&(s.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?s.credentials="include":i.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function n(i){if(i.ep)return;i.ep=!0;const s=r(i);fetch(i.href,s)}})();const Xi=!1;var ni=Array.isArray,Zi=Array.prototype.indexOf,Xt=Array.prototype.includes,$r=Array.from,Ji=Object.defineProperty,Bt=Object.getOwnPropertyDescriptor,Qi=Object.getOwnPropertyDescriptors,es=Object.prototype,ts=Array.prototype,ii=Object.getPrototypeOf,qn=Object.isExtensible;const rs=()=>{};function ns(e){for(var t=0;t<e.length;t++)e[t]()}function si(){var e,t,r=new Promise((n,i)=>{e=n,t=i});return{promise:r,resolve:e,reject:t}}const ae=2,Zt=4,Hr=8,li=1<<24,We=16,Ke=32,vt=64,fn=128,Me=512,Z=1024,ne=2048,Ue=4096,de=8192,xe=16384,zt=32768,un=1<<25,Jt=65536,cn=1<<17,is=1<<18,rr=1<<19,ss=1<<20,tt=1<<25,Lt=65536,qr=1<<21,cr=1<<22,dt=1<<23,Ct=Symbol("$state"),ls=Symbol("legacy props"),as=Symbol(""),Xe=new class extends Error{constructor(){super(...arguments);qe(this,"name","StaleReactionError");qe(this,"message","The reaction that called `getAbortSignal()` was re-run or destroyed")}};function os(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function fs(e,t,r){throw new Error("https://svelte.dev/e/each_key_duplicate")}function us(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function cs(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function ds(e){throw new Error("https://svelte.dev/e/effect_orphan")}function hs(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function vs(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function _s(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function ps(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function ys(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}const gs=1,ms=2,ws=16,bs=1,xs=2,Q=Symbol(),ai="http://www.w3.org/1999/xhtml";function ks(){console.warn("https://svelte.dev/e/derived_inert")}function Es(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}function oi(e){return e===this.v}function Ss(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function fi(e){return!Ss(e,this.v)}let As=!1,ke=null;function Qt(e){ke=e}function jr(e,t=!1,r){ke={p:ke,i:!1,c:null,e:null,s:e,x:null,r:T,l:null}}function Br(e){var t=ke,r=t.e;if(r!==null){t.e=null;for(var n of r)Mi(n)}return t.i=!0,ke=t.p,{}}function ui(){return!0}let bt=[];function ci(){var e=bt;bt=[],ns(e)}function ht(e){if(bt.length===0&&!fr){var t=bt;queueMicrotask(()=>{t===bt&&ci()})}bt.push(e)}function Is(){for(;bt.length>0;)ci()}function di(e){var t=T;if(t===null)return C.f|=dt,e;if((t.f&zt)===0&&(t.f&Zt)===0)throw e;ct(e,t)}function ct(e,t){for(;t!==null;){if((t.f&fn)!==0){if((t.f&zt)===0)throw e;try{t.b.error(e);return}catch(r){e=r}}t=t.parent}throw e}const Ts=-7169;function B(e,t){e.f=e.f&Ts|t}function kn(e){(e.f&Me)!==0||e.deps===null?B(e,Z):B(e,Ue)}function hi(e){if(e!==null)for(const t of e)(t.f&ae)===0||(t.f&Lt)===0||(t.f^=Lt,hi(t.deps))}function vi(e,t,r){(e.f&ne)!==0?t.add(e):(e.f&Ue)!==0&&r.add(e),hi(e.deps),B(e,Z)}let Ar=!1;function Cs(e){var t=Ar;try{return Ar=!1,[e(),Ar]}finally{Ar=t}}const gt=new Set;let x=null,re=null,dn=null,fr=!1,Gr=!1,Ht=null,Tr=null;var On=0;let Ms=1;var Yt,Vt,Et,Ze,Be,hr,me,vr,ft,Je,Ye,Wt,Ut,St,U,Cr,_i,Mr,hn,Rr,Rs;const Fr=class Fr{constructor(){S(this,U);qe(this,"id",Ms++);qe(this,"current",new Map);qe(this,"previous",new Map);S(this,Yt,new Set);S(this,Vt,new Set);S(this,Et,new Set);S(this,Ze,new Map);S(this,Be,new Map);S(this,hr,null);S(this,me,[]);S(this,vr,[]);S(this,ft,new Set);S(this,Je,new Set);S(this,Ye,new Map);S(this,Wt,new Set);qe(this,"is_fork",!1);S(this,Ut,!1);S(this,St,new Set)}skip_effect(t){u(this,Ye).has(t)||u(this,Ye).set(t,{d:[],m:[]}),u(this,Wt).delete(t)}unskip_effect(t,r=n=>this.schedule(n)){var n=u(this,Ye).get(t);if(n){u(this,Ye).delete(t);for(var i of n.d)B(i,ne),r(i);for(i of n.m)B(i,Ue),r(i)}u(this,Wt).add(t)}capture(t,r,n=!1){t.v!==Q&&!this.previous.has(t)&&this.previous.set(t,t.v),(t.f&dt)===0&&(this.current.set(t,[r,n]),re==null||re.set(t,r)),this.is_fork||(t.v=r)}activate(){x=this}deactivate(){x=null,re=null}flush(){try{Gr=!0,x=this,q(this,U,Mr).call(this)}finally{On=0,dn=null,Ht=null,Tr=null,Gr=!1,x=null,re=null,Mt.clear()}}discard(){for(const t of u(this,Vt))t(this);u(this,Vt).clear(),u(this,Et).clear(),gt.delete(this)}register_created_effect(t){u(this,vr).push(t)}increment(t,r){let n=u(this,Ze).get(r)??0;if(u(this,Ze).set(r,n+1),t){let i=u(this,Be).get(r)??0;u(this,Be).set(r,i+1)}}decrement(t,r,n){let i=u(this,Ze).get(r)??0;if(i===1?u(this,Ze).delete(r):u(this,Ze).set(r,i-1),t){let s=u(this,Be).get(r)??0;s===1?u(this,Be).delete(r):u(this,Be).set(r,s-1)}u(this,Ut)||n||(I(this,Ut,!0),ht(()=>{I(this,Ut,!1),this.flush()}))}transfer_effects(t,r){for(const n of t)u(this,ft).add(n);for(const n of r)u(this,Je).add(n);t.clear(),r.clear()}oncommit(t){u(this,Yt).add(t)}ondiscard(t){u(this,Vt).add(t)}on_fork_commit(t){u(this,Et).add(t)}run_fork_commit_callbacks(){for(const t of u(this,Et))t(this);u(this,Et).clear()}settled(){return(u(this,hr)??I(this,hr,si())).promise}static ensure(){if(x===null){const t=x=new Fr;Gr||(gt.add(x),fr||ht(()=>{x===t&&t.flush()}))}return x}apply(){{re=null;return}}schedule(t){var i;if(dn=t,(i=t.b)!=null&&i.is_pending&&(t.f&(Zt|Hr|li))!==0&&(t.f&zt)===0){t.b.defer_effect(t);return}for(var r=t;r.parent!==null;){r=r.parent;var n=r.f;if(Ht!==null&&r===T&&(C===null||(C.f&ae)===0))return;if((n&(vt|Ke))!==0){if((n&Z)===0)return;r.f^=Z}}u(this,me).push(r)}};Yt=new WeakMap,Vt=new WeakMap,Et=new WeakMap,Ze=new WeakMap,Be=new WeakMap,hr=new WeakMap,me=new WeakMap,vr=new WeakMap,ft=new WeakMap,Je=new WeakMap,Ye=new WeakMap,Wt=new WeakMap,Ut=new WeakMap,St=new WeakMap,U=new WeakSet,Cr=function(){return this.is_fork||u(this,Be).size>0},_i=function(){for(const n of u(this,St))for(const i of u(n,Be).keys()){for(var t=!1,r=i;r.parent!==null;){if(u(this,Ye).has(r)){t=!0;break}r=r.parent}if(!t)return!0}return!1},Mr=function(){var o,a;if(On++>1e3&&(gt.delete(this),Ls()),!q(this,U,Cr).call(this)){for(const f of u(this,ft))u(this,Je).delete(f),B(f,ne),this.schedule(f);for(const f of u(this,Je))B(f,Ue),this.schedule(f)}const t=u(this,me);I(this,me,[]),this.apply();var r=Ht=[],n=[],i=Tr=[];for(const f of t)try{q(this,U,hn).call(this,f,r,n)}catch(h){throw gi(f),h}if(x=null,i.length>0){var s=Fr.ensure();for(const f of i)s.schedule(f)}if(Ht=null,Tr=null,q(this,U,Cr).call(this)||q(this,U,_i).call(this)){q(this,U,Rr).call(this,n),q(this,U,Rr).call(this,r);for(const[f,h]of u(this,Ye))yi(f,h)}else{u(this,Ze).size===0&&gt.delete(this),u(this,ft).clear(),u(this,Je).clear();for(const f of u(this,Yt))f(this);u(this,Yt).clear(),zn(n),zn(r),(o=u(this,hr))==null||o.resolve()}var l=x;if(u(this,me).length>0){const f=l??(l=this);u(f,me).push(...u(this,me).filter(h=>!u(f,me).includes(h)))}l!==null&&(gt.add(l),q(a=l,U,Mr).call(a))},hn=function(t,r,n){t.f^=Z;for(var i=t.first;i!==null;){var s=i.f,l=(s&(Ke|vt))!==0,o=l&&(s&Z)!==0,a=o||(s&de)!==0||u(this,Ye).has(i);if(!a&&i.fn!==null){l?i.f^=Z:(s&Zt)!==0?r.push(i):wr(i)&&((s&We)!==0&&u(this,Je).add(i),tr(i));var f=i.first;if(f!==null){i=f;continue}}for(;i!==null;){var h=i.next;if(h!==null){i=h;break}i=i.parent}}},Rr=function(t){for(var r=0;r<t.length;r+=1)vi(t[r],u(this,ft),u(this,Je))},Rs=function(){var h,p,_;for(const v of gt){var t=v.id<this.id,r=[];for(const[d,[b,w]]of this.current){if(v.current.has(d)){var n=v.current.get(d)[0];if(t&&b!==n)v.current.set(d,[b,w]);else continue}r.push(d)}var i=[...v.current.keys()].filter(d=>!this.current.has(d));if(i.length===0)t&&v.discard();else if(r.length>0){if(t)for(const d of u(this,Wt))v.unskip_effect(d,b=>{var w;(b.f&(We|cr))!==0?v.schedule(b):q(w=v,U,Rr).call(w,[b])});v.activate();var s=new Set,l=new Map;for(var o of r)pi(o,i,s,l);l=new Map;var a=[...v.current.keys()].filter(d=>this.current.has(d)?this.current.get(d)[0]!==d:!0);for(const d of u(this,vr))(d.f&(xe|de|cn))===0&&En(d,a,l)&&((d.f&(cr|We))!==0?(B(d,ne),v.schedule(d)):u(v,ft).add(d));if(u(v,me).length>0){v.apply();for(var f of u(v,me))q(h=v,U,hn).call(h,f,[],[]);I(v,me,[])}v.deactivate()}}for(const v of gt)u(v,St).has(this)&&(u(v,St).delete(this),u(v,St).size===0&&!q(p=v,U,Cr).call(p)&&(v.activate(),q(_=v,U,Mr).call(_)))};let Dt=Fr;function Ns(e){var t=fr;fr=!0;try{for(var r;;){if(Is(),x===null)return r;x.flush()}}finally{fr=t}}function Ls(){try{hs()}catch(e){ct(e,dn)}}let Oe=null;function zn(e){var t=e.length;if(t!==0){for(var r=0;r<t;){var n=e[r++];if((n.f&(xe|de))===0&&wr(n)&&(Oe=new Set,tr(n),n.deps===null&&n.first===null&&n.nodes===null&&n.teardown===null&&n.ac===null&&Ni(n),(Oe==null?void 0:Oe.size)>0)){Mt.clear();for(const i of Oe){if((i.f&(xe|de))!==0)continue;const s=[i];let l=i.parent;for(;l!==null;)Oe.has(l)&&(Oe.delete(l),s.push(l)),l=l.parent;for(let o=s.length-1;o>=0;o--){const a=s[o];(a.f&(xe|de))===0&&tr(a)}}Oe.clear()}}Oe=null}}function pi(e,t,r,n){if(!r.has(e)&&(r.add(e),e.reactions!==null))for(const i of e.reactions){const s=i.f;(s&ae)!==0?pi(i,t,r,n):(s&(cr|We))!==0&&(s&ne)===0&&En(i,t,n)&&(B(i,ne),Sn(i))}}function En(e,t,r){const n=r.get(e);if(n!==void 0)return n;if(e.deps!==null)for(const i of e.deps){if(Xt.call(t,i))return!0;if((i.f&ae)!==0&&En(i,t,r))return r.set(i,!0),!0}return r.set(e,!1),!1}function Sn(e){x.schedule(e)}function yi(e,t){if(!((e.f&Ke)!==0&&(e.f&Z)!==0)){(e.f&ne)!==0?t.d.push(e):(e.f&Ue)!==0&&t.m.push(e),B(e,Z);for(var r=e.first;r!==null;)yi(r,t),r=r.next}}function gi(e){B(e,Z);for(var t=e.first;t!==null;)gi(t),t=t.next}function Ds(e){let t=0,r=qt(0),n;return()=>{Tn()&&(c(r),Vr(()=>(t===0&&(n=Ln(()=>e(()=>ur(r)))),t+=1,()=>{ht(()=>{t-=1,t===0&&(n==null||n(),n=void 0,ur(r))})})))}}var qs=Jt|rr;function Os(e,t,r,n){new zs(e,t,r,n)}var Ae,xn,Ie,At,ve,Te,ue,we,Qe,It,ut,Gt,_r,pr,et,Kr,K,Fs,Ks,Ps,vn,Nr,Lr,_n,pn;class zs{constructor(t,r,n,i){S(this,K);qe(this,"parent");qe(this,"is_pending",!1);qe(this,"transform_error");S(this,Ae);S(this,xn,null);S(this,Ie);S(this,At);S(this,ve);S(this,Te,null);S(this,ue,null);S(this,we,null);S(this,Qe,null);S(this,It,0);S(this,ut,0);S(this,Gt,!1);S(this,_r,new Set);S(this,pr,new Set);S(this,et,null);S(this,Kr,Ds(()=>(I(this,et,qt(u(this,It))),()=>{I(this,et,null)})));var s;I(this,Ae,t),I(this,Ie,r),I(this,At,l=>{var o=T;o.b=this,o.f|=fn,n(l)}),this.parent=T.b,this.transform_error=i??((s=this.parent)==null?void 0:s.transform_error)??(l=>l),I(this,ve,Cn(()=>{q(this,K,vn).call(this)},qs))}defer_effect(t){vi(t,u(this,_r),u(this,pr))}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!u(this,Ie).pending}update_pending_count(t,r){q(this,K,_n).call(this,t,r),I(this,It,u(this,It)+t),!(!u(this,et)||u(this,Gt))&&(I(this,Gt,!0),ht(()=>{I(this,Gt,!1),u(this,et)&&er(u(this,et),u(this,It))}))}get_effect_pending(){return u(this,Kr).call(this),c(u(this,et))}error(t){if(!u(this,Ie).onerror&&!u(this,Ie).failed)throw t;x!=null&&x.is_fork?(u(this,Te)&&x.skip_effect(u(this,Te)),u(this,ue)&&x.skip_effect(u(this,ue)),u(this,we)&&x.skip_effect(u(this,we)),x.on_fork_commit(()=>{q(this,K,pn).call(this,t)})):q(this,K,pn).call(this,t)}}Ae=new WeakMap,xn=new WeakMap,Ie=new WeakMap,At=new WeakMap,ve=new WeakMap,Te=new WeakMap,ue=new WeakMap,we=new WeakMap,Qe=new WeakMap,It=new WeakMap,ut=new WeakMap,Gt=new WeakMap,_r=new WeakMap,pr=new WeakMap,et=new WeakMap,Kr=new WeakMap,K=new WeakSet,Fs=function(){try{I(this,Te,Ce(()=>u(this,At).call(this,u(this,Ae))))}catch(t){this.error(t)}},Ks=function(t){const r=u(this,Ie).failed;r&&I(this,we,Ce(()=>{r(u(this,Ae),()=>t,()=>()=>{})}))},Ps=function(){const t=u(this,Ie).pending;t&&(this.is_pending=!0,I(this,ue,Ce(()=>t(u(this,Ae)))),ht(()=>{var r=I(this,Qe,document.createDocumentFragment()),n=Ot();r.append(n),I(this,Te,q(this,K,Lr).call(this,()=>Ce(()=>u(this,At).call(this,n)))),u(this,ut)===0&&(u(this,Ae).before(r),I(this,Qe,null),Rt(u(this,ue),()=>{I(this,ue,null)}),q(this,K,Nr).call(this,x))}))},vn=function(){try{if(this.is_pending=this.has_pending_snippet(),I(this,ut,0),I(this,It,0),I(this,Te,Ce(()=>{u(this,At).call(this,u(this,Ae))})),u(this,ut)>0){var t=I(this,Qe,document.createDocumentFragment());Nn(u(this,Te),t);const r=u(this,Ie).pending;I(this,ue,Ce(()=>r(u(this,Ae))))}else q(this,K,Nr).call(this,x)}catch(r){this.error(r)}},Nr=function(t){this.is_pending=!1,t.transfer_effects(u(this,_r),u(this,pr))},Lr=function(t){var r=T,n=C,i=ke;Ge(u(this,ve)),Ne(u(this,ve)),Qt(u(this,ve).ctx);try{return Dt.ensure(),t()}catch(s){return di(s),null}finally{Ge(r),Ne(n),Qt(i)}},_n=function(t,r){var n;if(!this.has_pending_snippet()){this.parent&&q(n=this.parent,K,_n).call(n,t,r);return}I(this,ut,u(this,ut)+t),u(this,ut)===0&&(q(this,K,Nr).call(this,r),u(this,ue)&&Rt(u(this,ue),()=>{I(this,ue,null)}),u(this,Qe)&&(u(this,Ae).before(u(this,Qe)),I(this,Qe,null)))},pn=function(t){u(this,Te)&&(pe(u(this,Te)),I(this,Te,null)),u(this,ue)&&(pe(u(this,ue)),I(this,ue,null)),u(this,we)&&(pe(u(this,we)),I(this,we,null));var r=u(this,Ie).onerror;let n=u(this,Ie).failed;var i=!1,s=!1;const l=()=>{if(i){Es();return}i=!0,s&&ys(),u(this,we)!==null&&Rt(u(this,we),()=>{I(this,we,null)}),q(this,K,Lr).call(this,()=>{q(this,K,vn).call(this)})},o=a=>{try{s=!0,r==null||r(a,l),s=!1}catch(f){ct(f,u(this,ve)&&u(this,ve).parent)}n&&I(this,we,q(this,K,Lr).call(this,()=>{try{return Ce(()=>{var f=T;f.b=this,f.f|=fn,n(u(this,Ae),()=>a,()=>l)})}catch(f){return ct(f,u(this,ve).parent),null}}))};ht(()=>{var a;try{a=this.transform_error(t)}catch(f){ct(f,u(this,ve)&&u(this,ve).parent);return}a!==null&&typeof a=="object"&&typeof a.then=="function"?a.then(o,f=>ct(f,u(this,ve)&&u(this,ve).parent)):o(a)})};function $s(e,t,r,n){const i=Yr;var s=e.filter(_=>!_.settled);if(r.length===0&&s.length===0){n(t.map(i));return}var l=T,o=Hs(),a=s.length===1?s[0].promise:s.length>1?Promise.all(s.map(_=>_.promise)):null;function f(_){o();try{n(_)}catch(v){(l.f&xe)===0&&ct(v,l)}Or()}if(r.length===0){a.then(()=>f(t.map(i)));return}var h=mi();function p(){Promise.all(r.map(_=>js(_))).then(_=>f([...t.map(i),..._])).catch(_=>ct(_,l)).finally(()=>h())}a?a.then(()=>{o(),p(),Or()}):p()}function Hs(){var e=T,t=C,r=ke,n=x;return function(s=!0){Ge(e),Ne(t),Qt(r),s&&(e.f&xe)===0&&(n==null||n.activate(),n==null||n.apply())}}function Or(e=!0){Ge(null),Ne(null),Qt(null),e&&(x==null||x.deactivate())}function mi(){var e=T,t=e.b,r=x,n=t.is_rendered();return t.update_pending_count(1,r),r.increment(n,e),(i=!1)=>{t.update_pending_count(-1,r),r.decrement(n,e,i)}}function Yr(e){var t=ae|ne;return T!==null&&(T.f|=rr),{ctx:ke,deps:null,effects:null,equals:oi,f:t,fn:e,reactions:null,rv:0,v:Q,wv:0,parent:T,ac:null}}function js(e,t,r){let n=T;n===null&&os();var i=void 0,s=qt(Q),l=!C,o=new Map;return il(()=>{var v;var a=T,f=si();i=f.promise;try{Promise.resolve(e()).then(f.resolve,f.reject).finally(Or)}catch(d){f.reject(d),Or()}var h=x;if(l){if((a.f&zt)!==0)var p=mi();if(n.b.is_rendered())(v=o.get(h))==null||v.reject(Xe),o.delete(h);else{for(const d of o.values())d.reject(Xe);o.clear()}o.set(h,f)}const _=(d,b=void 0)=>{if(p){var w=b===Xe;p(w)}if(!(b===Xe||(a.f&xe)!==0)){if(h.activate(),b)s.f|=dt,er(s,b);else{(s.f&dt)!==0&&(s.f^=dt),er(s,d);for(const[y,E]of o){if(o.delete(y),y===h)break;E.reject(Xe)}}h.deactivate()}};f.promise.then(_,d=>_(null,d||"unknown"))}),Ci(()=>{for(const a of o.values())a.reject(Xe)}),new Promise(a=>{function f(h){function p(){h===i?a(s):f(i)}h.then(p,p)}f(i)})}function z(e){const t=Yr(e);return qi(t),t}function Bs(e){const t=Yr(e);return t.equals=fi,t}function Ys(e){var t=e.effects;if(t!==null){e.effects=null;for(var r=0;r<t.length;r+=1)pe(t[r])}}function An(e){var t,r=T,n=e.parent;if(!rt&&n!==null&&(n.f&(xe|de))!==0)return ks(),e.v;Ge(n);try{e.f&=~Lt,Ys(e),t=Ki(e)}finally{Ge(r)}return t}function wi(e){var t=An(e);if(!e.equals(t)&&(e.wv=zi(),(!(x!=null&&x.is_fork)||e.deps===null)&&(x!==null?x.capture(e,t,!0):e.v=t,e.deps===null))){B(e,Z);return}rt||(re!==null?(Tn()||x!=null&&x.is_fork)&&re.set(e,t):kn(e))}function Vs(e){var t,r;if(e.effects!==null)for(const n of e.effects)(n.teardown||n.ac)&&((t=n.teardown)==null||t.call(n),(r=n.ac)==null||r.abort(Xe),n.teardown=rs,n.ac=null,dr(n,0),Mn(n))}function bi(e){if(e.effects!==null)for(const t of e.effects)t.teardown&&tr(t)}let yn=new Set;const Mt=new Map;let xi=!1;function qt(e,t){var r={f:0,v:e,reactions:null,equals:oi,rv:0,wv:0};return r}function le(e,t){const r=qt(e);return qi(r),r}function Ws(e,t=!1,r=!0){const n=qt(e);return t||(n.equals=fi),n}function N(e,t,r=!1){C!==null&&(!Fe||(C.f&cn)!==0)&&ui()&&(C.f&(ae|We|cr|cn))!==0&&(Re===null||!Xt.call(Re,e))&&ps();let n=r?jt(t):t;return er(e,n,Tr)}function er(e,t,r=null){if(!e.equals(t)){Mt.set(e,rt?t:e.v);var n=Dt.ensure();if(n.capture(e,t),(e.f&ae)!==0){const i=e;(e.f&ne)!==0&&An(i),re===null&&kn(i)}e.wv=zi(),ki(e,ne,r),T!==null&&(T.f&Z)!==0&&(T.f&(Ke|vt))===0&&(Se===null?al([e]):Se.push(e)),!n.is_fork&&yn.size>0&&!xi&&Us()}return t}function Us(){xi=!1;for(const e of yn)(e.f&Z)!==0&&B(e,Ue),wr(e)&&tr(e);yn.clear()}function ur(e){N(e,e.v+1)}function ki(e,t,r){var n=e.reactions;if(n!==null)for(var i=n.length,s=0;s<i;s++){var l=n[s],o=l.f,a=(o&ne)===0;if(a&&B(l,t),(o&ae)!==0){var f=l;re==null||re.delete(f),(o&Lt)===0&&(o&Me&&(T===null||(T.f&qr)===0)&&(l.f|=Lt),ki(f,Ue,r))}else if(a){var h=l;(o&We)!==0&&Oe!==null&&Oe.add(h),r!==null?r.push(h):Sn(h)}}}function jt(e){if(typeof e!="object"||e===null||Ct in e)return e;const t=ii(e);if(t!==es&&t!==ts)return e;var r=new Map,n=ni(e),i=le(0),s=Nt,l=o=>{if(Nt===s)return o();var a=C,f=Nt;Ne(null),Hn(s);var h=o();return Ne(a),Hn(f),h};return n&&r.set("length",le(e.length)),new Proxy(e,{defineProperty(o,a,f){(!("value"in f)||f.configurable===!1||f.enumerable===!1||f.writable===!1)&&vs();var h=r.get(a);return h===void 0?l(()=>{var p=le(f.value);return r.set(a,p),p}):N(h,f.value,!0),!0},deleteProperty(o,a){var f=r.get(a);if(f===void 0){if(a in o){const h=l(()=>le(Q));r.set(a,h),ur(i)}}else N(f,Q),ur(i);return!0},get(o,a,f){var v;if(a===Ct)return e;var h=r.get(a),p=a in o;if(h===void 0&&(!p||(v=Bt(o,a))!=null&&v.writable)&&(h=l(()=>{var d=jt(p?o[a]:Q),b=le(d);return b}),r.set(a,h)),h!==void 0){var _=c(h);return _===Q?void 0:_}return Reflect.get(o,a,f)},getOwnPropertyDescriptor(o,a){var f=Reflect.getOwnPropertyDescriptor(o,a);if(f&&"value"in f){var h=r.get(a);h&&(f.value=c(h))}else if(f===void 0){var p=r.get(a),_=p==null?void 0:p.v;if(p!==void 0&&_!==Q)return{enumerable:!0,configurable:!0,value:_,writable:!0}}return f},has(o,a){var _;if(a===Ct)return!0;var f=r.get(a),h=f!==void 0&&f.v!==Q||Reflect.has(o,a);if(f!==void 0||T!==null&&(!h||(_=Bt(o,a))!=null&&_.writable)){f===void 0&&(f=l(()=>{var v=h?jt(o[a]):Q,d=le(v);return d}),r.set(a,f));var p=c(f);if(p===Q)return!1}return h},set(o,a,f,h){var D;var p=r.get(a),_=a in o;if(n&&a==="length")for(var v=f;v<p.v;v+=1){var d=r.get(v+"");d!==void 0?N(d,Q):v in o&&(d=l(()=>le(Q)),r.set(v+"",d))}if(p===void 0)(!_||(D=Bt(o,a))!=null&&D.writable)&&(p=l(()=>le(void 0)),N(p,jt(f)),r.set(a,p));else{_=p.v!==Q;var b=l(()=>jt(f));N(p,b)}var w=Reflect.getOwnPropertyDescriptor(o,a);if(w!=null&&w.set&&w.set.call(h,f),!_){if(n&&typeof a=="string"){var y=r.get("length"),E=Number(a);Number.isInteger(E)&&E>=y.v&&N(y,E+1)}ur(i)}return!0},ownKeys(o){c(i);var a=Reflect.ownKeys(o).filter(p=>{var _=r.get(p);return _===void 0||_.v!==Q});for(var[f,h]of r)h.v!==Q&&!(f in o)&&a.push(f);return a},setPrototypeOf(){_s()}})}function Fn(e){try{if(e!==null&&typeof e=="object"&&Ct in e)return e[Ct]}catch{}return e}function Gs(e,t){return Object.is(Fn(e),Fn(t))}var Kn,Ei,Si,Ai;function Xs(){if(Kn===void 0){Kn=window,Ei=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,r=Text.prototype;Si=Bt(t,"firstChild").get,Ai=Bt(t,"nextSibling").get,qn(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),qn(r)&&(r.__t=void 0)}}function Ot(e=""){return document.createTextNode(e)}function ot(e){return Si.call(e)}function mr(e){return Ai.call(e)}function L(e,t){return ot(e)}function mt(e,t=!1){{var r=ot(e);return r instanceof Comment&&r.data===""?mr(r):r}}function M(e,t=1,r=!1){let n=e;for(;t--;)n=mr(n);return n}function Zs(e){e.textContent=""}function Ii(){return!1}function Js(e,t,r){return document.createElementNS(ai,e,void 0)}let Pn=!1;function Qs(){Pn||(Pn=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{var t;if(!e.defaultPrevented)for(const r of e.target.elements)(t=r.__on_r)==null||t.call(r)})},{capture:!0}))}function In(e){var t=C,r=T;Ne(null),Ge(null);try{return e()}finally{Ne(t),Ge(r)}}function Ti(e,t,r,n=r){e.addEventListener(t,()=>In(r));const i=e.__on_r;i?e.__on_r=()=>{i(),n(!0)}:e.__on_r=()=>n(!0),Qs()}function el(e){T===null&&(C===null&&ds(),cs()),rt&&us()}function tl(e,t){var r=t.last;r===null?t.last=t.first=e:(r.next=e,e.prev=r,t.last=e)}function nt(e,t){var r=T;r!==null&&(r.f&de)!==0&&(e|=de);var n={ctx:ke,deps:null,nodes:null,f:e|ne|Me,first:null,fn:t,last:null,next:null,parent:r,b:r&&r.b,prev:null,teardown:null,wv:0,ac:null};x==null||x.register_created_effect(n);var i=n;if((e&Zt)!==0)Ht!==null?Ht.push(n):Dt.ensure().schedule(n);else if(t!==null){try{tr(n)}catch(l){throw pe(n),l}i.deps===null&&i.teardown===null&&i.nodes===null&&i.first===i.last&&(i.f&rr)===0&&(i=i.first,(e&We)!==0&&(e&Jt)!==0&&i!==null&&(i.f|=Jt))}if(i!==null&&(i.parent=r,r!==null&&tl(i,r),C!==null&&(C.f&ae)!==0&&(e&vt)===0)){var s=C;(s.effects??(s.effects=[])).push(i)}return n}function Tn(){return C!==null&&!Fe}function Ci(e){const t=nt(Hr,null);return B(t,Z),t.teardown=e,t}function gn(e){el();var t=T.f,r=!C&&(t&Ke)!==0&&(t&zt)===0;if(r){var n=ke;(n.e??(n.e=[])).push(e)}else return Mi(e)}function Mi(e){return nt(Zt|ss,e)}function rl(e){Dt.ensure();const t=nt(vt|rr,e);return(r={})=>new Promise(n=>{r.outro?Rt(t,()=>{pe(t),n(void 0)}):(pe(t),n(void 0))})}function nl(e){return nt(Zt,e)}function il(e){return nt(cr|rr,e)}function Vr(e,t=0){return nt(Hr|t,e)}function ee(e,t=[],r=[],n=[]){$s(n,t,r,i=>{nt(Hr,()=>e(...i.map(c)))})}function Cn(e,t=0){var r=nt(We|t,e);return r}function Ce(e){return nt(Ke|rr,e)}function Ri(e){var t=e.teardown;if(t!==null){const r=rt,n=C;$n(!0),Ne(null);try{t.call(null)}finally{$n(r),Ne(n)}}}function Mn(e,t=!1){var r=e.first;for(e.first=e.last=null;r!==null;){const i=r.ac;i!==null&&In(()=>{i.abort(Xe)});var n=r.next;(r.f&vt)!==0?r.parent=null:pe(r,t),r=n}}function sl(e){for(var t=e.first;t!==null;){var r=t.next;(t.f&Ke)===0&&pe(t),t=r}}function pe(e,t=!0){var r=!1;(t||(e.f&is)!==0)&&e.nodes!==null&&e.nodes.end!==null&&(ll(e.nodes.start,e.nodes.end),r=!0),B(e,un),Mn(e,t&&!r),dr(e,0);var n=e.nodes&&e.nodes.t;if(n!==null)for(const s of n)s.stop();Ri(e),e.f^=un,e.f|=xe;var i=e.parent;i!==null&&i.first!==null&&Ni(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function ll(e,t){for(;e!==null;){var r=e===t?null:mr(e);e.remove(),e=r}}function Ni(e){var t=e.parent,r=e.prev,n=e.next;r!==null&&(r.next=n),n!==null&&(n.prev=r),t!==null&&(t.first===e&&(t.first=n),t.last===e&&(t.last=r))}function Rt(e,t,r=!0){var n=[];Li(e,n,!0);var i=()=>{r&&pe(e),t&&t()},s=n.length;if(s>0){var l=()=>--s||i();for(var o of n)o.out(l)}else i()}function Li(e,t,r){if((e.f&de)===0){e.f^=de;var n=e.nodes&&e.nodes.t;if(n!==null)for(const o of n)(o.is_global||r)&&t.push(o);for(var i=e.first;i!==null;){var s=i.next;if((i.f&vt)===0){var l=(i.f&Jt)!==0||(i.f&Ke)!==0&&(e.f&We)!==0;Li(i,t,l?r:!1)}i=s}}}function Rn(e){Di(e,!0)}function Di(e,t){if((e.f&de)!==0){e.f^=de,(e.f&Z)===0&&(B(e,ne),Dt.ensure().schedule(e));for(var r=e.first;r!==null;){var n=r.next,i=(r.f&Jt)!==0||(r.f&Ke)!==0;Di(r,i?t:!1),r=n}var s=e.nodes&&e.nodes.t;if(s!==null)for(const l of s)(l.is_global||t)&&l.in()}}function Nn(e,t){if(e.nodes)for(var r=e.nodes.start,n=e.nodes.end;r!==null;){var i=r===n?null:mr(r);t.append(r),r=i}}let Dr=!1,rt=!1;function $n(e){rt=e}let C=null,Fe=!1;function Ne(e){C=e}let T=null;function Ge(e){T=e}let Re=null;function qi(e){C!==null&&(Re===null?Re=[e]:Re.push(e))}let _e=null,ge=0,Se=null;function al(e){Se=e}let Oi=1,xt=0,Nt=xt;function Hn(e){Nt=e}function zi(){return++Oi}function wr(e){var t=e.f;if((t&ne)!==0)return!0;if(t&ae&&(e.f&=~Lt),(t&Ue)!==0){for(var r=e.deps,n=r.length,i=0;i<n;i++){var s=r[i];if(wr(s)&&wi(s),s.wv>e.wv)return!0}(t&Me)!==0&&re===null&&B(e,Z)}return!1}function Fi(e,t,r=!0){var n=e.reactions;if(n!==null&&!(Re!==null&&Xt.call(Re,e)))for(var i=0;i<n.length;i++){var s=n[i];(s.f&ae)!==0?Fi(s,t,!1):t===s&&(r?B(s,ne):(s.f&Z)!==0&&B(s,Ue),Sn(s))}}function Ki(e){var b;var t=_e,r=ge,n=Se,i=C,s=Re,l=ke,o=Fe,a=Nt,f=e.f;_e=null,ge=0,Se=null,C=(f&(Ke|vt))===0?e:null,Re=null,Qt(e.ctx),Fe=!1,Nt=++xt,e.ac!==null&&(In(()=>{e.ac.abort(Xe)}),e.ac=null);try{e.f|=qr;var h=e.fn,p=h();e.f|=zt;var _=e.deps,v=x==null?void 0:x.is_fork;if(_e!==null){var d;if(v||dr(e,ge),_!==null&&ge>0)for(_.length=ge+_e.length,d=0;d<_e.length;d++)_[ge+d]=_e[d];else e.deps=_=_e;if(Tn()&&(e.f&Me)!==0)for(d=ge;d<_.length;d++)((b=_[d]).reactions??(b.reactions=[])).push(e)}else!v&&_!==null&&ge<_.length&&(dr(e,ge),_.length=ge);if(ui()&&Se!==null&&!Fe&&_!==null&&(e.f&(ae|Ue|ne))===0)for(d=0;d<Se.length;d++)Fi(Se[d],e);if(i!==null&&i!==e){if(xt++,i.deps!==null)for(let w=0;w<r;w+=1)i.deps[w].rv=xt;if(t!==null)for(const w of t)w.rv=xt;Se!==null&&(n===null?n=Se:n.push(...Se))}return(e.f&dt)!==0&&(e.f^=dt),p}catch(w){return di(w)}finally{e.f^=qr,_e=t,ge=r,Se=n,C=i,Re=s,Qt(l),Fe=o,Nt=a}}function ol(e,t){let r=t.reactions;if(r!==null){var n=Zi.call(r,e);if(n!==-1){var i=r.length-1;i===0?r=t.reactions=null:(r[n]=r[i],r.pop())}}if(r===null&&(t.f&ae)!==0&&(_e===null||!Xt.call(_e,t))){var s=t;(s.f&Me)!==0&&(s.f^=Me,s.f&=~Lt),s.v!==Q&&kn(s),Vs(s),dr(s,0)}}function dr(e,t){var r=e.deps;if(r!==null)for(var n=t;n<r.length;n++)ol(e,r[n])}function tr(e){var t=e.f;if((t&xe)===0){B(e,Z);var r=T,n=Dr;T=e,Dr=!0;try{(t&(We|li))!==0?sl(e):Mn(e),Ri(e);var i=Ki(e);e.teardown=typeof i=="function"?i:null,e.wv=Oi;var s;Xi&&As&&(e.f&ne)!==0&&e.deps}finally{Dr=n,T=r}}}async function fl(){await Promise.resolve(),Ns()}function c(e){var t=e.f,r=(t&ae)!==0;if(C!==null&&!Fe){var n=T!==null&&(T.f&xe)!==0;if(!n&&(Re===null||!Xt.call(Re,e))){var i=C.deps;if((C.f&qr)!==0)e.rv<xt&&(e.rv=xt,_e===null&&i!==null&&i[ge]===e?ge++:_e===null?_e=[e]:_e.push(e));else{(C.deps??(C.deps=[])).push(e);var s=e.reactions;s===null?e.reactions=[C]:Xt.call(s,C)||s.push(C)}}}if(rt&&Mt.has(e))return Mt.get(e);if(r){var l=e;if(rt){var o=l.v;return((l.f&Z)===0&&l.reactions!==null||$i(l))&&(o=An(l)),Mt.set(l,o),o}var a=(l.f&Me)===0&&!Fe&&C!==null&&(Dr||(C.f&Me)!==0),f=(l.f&zt)===0;wr(l)&&(a&&(l.f|=Me),wi(l)),a&&!f&&(bi(l),Pi(l))}if(re!=null&&re.has(e))return re.get(e);if((e.f&dt)!==0)throw e.v;return e.v}function Pi(e){if(e.f|=Me,e.deps!==null)for(const t of e.deps)(t.reactions??(t.reactions=[])).push(e),(t.f&ae)!==0&&(t.f&Me)===0&&(bi(t),Pi(t))}function $i(e){if(e.v===Q)return!0;if(e.deps===null)return!1;for(const t of e.deps)if(Mt.has(t)||(t.f&ae)!==0&&$i(t))return!0;return!1}function Ln(e){var t=Fe;try{return Fe=!0,e()}finally{Fe=t}}const ul=["touchstart","touchmove"];function cl(e){return ul.includes(e)}const kt=Symbol("events"),Hi=new Set,mn=new Set;function ar(e,t,r){(t[kt]??(t[kt]={}))[e]=r}function ji(e){for(var t=0;t<e.length;t++)Hi.add(e[t]);for(var r of mn)r(e)}let jn=null;function Bn(e){var w,y;var t=this,r=t.ownerDocument,n=e.type,i=((w=e.composedPath)==null?void 0:w.call(e))||[],s=i[0]||e.target;jn=e;var l=0,o=jn===e&&e[kt];if(o){var a=i.indexOf(o);if(a!==-1&&(t===document||t===window)){e[kt]=t;return}var f=i.indexOf(t);if(f===-1)return;a<=f&&(l=a)}if(s=i[l]||e.target,s!==t){Ji(e,"currentTarget",{configurable:!0,get(){return s||r}});var h=C,p=T;Ne(null),Ge(null);try{for(var _,v=[];s!==null;){var d=s.assignedSlot||s.parentNode||s.host||null;try{var b=(y=s[kt])==null?void 0:y[n];b!=null&&(!s.disabled||e.target===s)&&b.call(s,e)}catch(E){_?v.push(E):_=E}if(e.cancelBubble||d===t||d===null)break;s=d}if(_){for(let E of v)queueMicrotask(()=>{throw E});throw _}}finally{e[kt]=t,delete e.currentTarget,Ne(h),Ge(p)}}}var ti;const Xr=((ti=globalThis==null?void 0:globalThis.window)==null?void 0:ti.trustedTypes)&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:e=>e});function dl(e){return(Xr==null?void 0:Xr.createHTML(e))??e}function Bi(e){var t=Js("template");return t.innerHTML=dl(e.replaceAll("<!>","<!---->")),t.content}function zr(e,t){var r=T;r.nodes===null&&(r.nodes={start:e,end:t,a:null,t:null})}function Ft(e,t){var r=(t&xs)!==0,n,i=!e.startsWith("<!>");return()=>{n===void 0&&(n=Bi(i?e:"<!>"+e),n=ot(n));var s=r||Ei?document.importNode(n,!0):n.cloneNode(!0);return zr(s,s),s}}function hl(e,t,r="svg"){var n=!e.startsWith("<!>"),i=(t&bs)!==0,s=`<${r}>${n?e:"<!>"+e}</${r}>`,l;return()=>{if(!l){var o=Bi(s),a=ot(o);if(i)for(l=document.createDocumentFragment();ot(a);)l.appendChild(ot(a));else l=ot(a)}var f=l.cloneNode(!0);if(i){var h=ot(f),p=f.lastChild;zr(h,p)}else zr(f,f);return f}}function Pe(e,t){return hl(e,t,"svg")}function Zr(){var e=document.createDocumentFragment(),t=document.createComment(""),r=Ot();return e.append(t,r),zr(t,r),e}function j(e,t){e!==null&&e.before(t)}function ce(e,t){var r=t==null?"":typeof t=="object"?`${t}`:t;r!==(e.__t??(e.__t=e.nodeValue))&&(e.__t=r,e.nodeValue=`${r}`)}function vl(e,t){return _l(e,t)}const Ir=new Map;function _l(e,{target:t,anchor:r,props:n={},events:i,context:s,intro:l=!0,transformError:o}){Xs();var a=void 0,f=rl(()=>{var h=r??t.appendChild(Ot());Os(h,{pending:()=>{}},v=>{jr({});var d=ke;s&&(d.c=s),i&&(n.$$events=i),a=e(v,n)||{},Br()},o);var p=new Set,_=v=>{for(var d=0;d<v.length;d++){var b=v[d];if(!p.has(b)){p.add(b);var w=cl(b);for(const D of[t,document]){var y=Ir.get(D);y===void 0&&(y=new Map,Ir.set(D,y));var E=y.get(b);E===void 0?(D.addEventListener(b,Bn,{passive:w}),y.set(b,1)):y.set(b,E+1)}}}};return _($r(Hi)),mn.add(_),()=>{var w;for(var v of p)for(const y of[t,document]){var d=Ir.get(y),b=d.get(v);--b==0?(y.removeEventListener(v,Bn),d.delete(v),d.size===0&&Ir.delete(y)):d.set(v,b)}mn.delete(_),h!==r&&((w=h.parentNode)==null||w.removeChild(h))}});return pl.set(a,f),a}let pl=new WeakMap;var ze,Ve,be,Tt,yr,gr,Pr;class yl{constructor(t,r=!0){qe(this,"anchor");S(this,ze,new Map);S(this,Ve,new Map);S(this,be,new Map);S(this,Tt,new Set);S(this,yr,!0);S(this,gr,t=>{if(u(this,ze).has(t)){var r=u(this,ze).get(t),n=u(this,Ve).get(r);if(n)Rn(n),u(this,Tt).delete(r);else{var i=u(this,be).get(r);i&&(u(this,Ve).set(r,i.effect),u(this,be).delete(r),i.fragment.lastChild.remove(),this.anchor.before(i.fragment),n=i.effect)}for(const[s,l]of u(this,ze)){if(u(this,ze).delete(s),s===t)break;const o=u(this,be).get(l);o&&(pe(o.effect),u(this,be).delete(l))}for(const[s,l]of u(this,Ve)){if(s===r||u(this,Tt).has(s))continue;const o=()=>{if(Array.from(u(this,ze).values()).includes(s)){var f=document.createDocumentFragment();Nn(l,f),f.append(Ot()),u(this,be).set(s,{effect:l,fragment:f})}else pe(l);u(this,Tt).delete(s),u(this,Ve).delete(s)};u(this,yr)||!n?(u(this,Tt).add(s),Rt(l,o,!1)):o()}}});S(this,Pr,t=>{u(this,ze).delete(t);const r=Array.from(u(this,ze).values());for(const[n,i]of u(this,be))r.includes(n)||(pe(i.effect),u(this,be).delete(n))});this.anchor=t,I(this,yr,r)}ensure(t,r){var n=x,i=Ii();if(r&&!u(this,Ve).has(t)&&!u(this,be).has(t))if(i){var s=document.createDocumentFragment(),l=Ot();s.append(l),u(this,be).set(t,{effect:Ce(()=>r(l)),fragment:s})}else u(this,Ve).set(t,Ce(()=>r(this.anchor)));if(u(this,ze).set(n,t),i){for(const[o,a]of u(this,Ve))o===t?n.unskip_effect(a):n.skip_effect(a);for(const[o,a]of u(this,be))o===t?n.unskip_effect(a.effect):n.skip_effect(a.effect);n.oncommit(u(this,gr)),n.ondiscard(u(this,Pr))}else u(this,gr).call(this,n)}}ze=new WeakMap,Ve=new WeakMap,be=new WeakMap,Tt=new WeakMap,yr=new WeakMap,gr=new WeakMap,Pr=new WeakMap;function lt(e,t,r=!1){var n=new yl(e),i=r?Jt:0;function s(l,o){n.ensure(l,o)}Cn(()=>{var l=!1;t((o,a=0)=>{l=!0,s(a,o)}),l||s(-1,null)},i)}function $t(e,t){return t}function gl(e,t,r){for(var n=[],i=t.length,s,l=t.length,o=0;o<i;o++){let p=t[o];Rt(p,()=>{if(s){if(s.pending.delete(p),s.done.add(p),s.pending.size===0){var _=e.outrogroups;wn(e,$r(s.done)),_.delete(s),_.size===0&&(e.outrogroups=null)}}else l-=1},!1)}if(l===0){var a=n.length===0&&r!==null;if(a){var f=r,h=f.parentNode;Zs(h),h.append(f),e.items.clear()}wn(e,t,!a)}else s={pending:new Set(t),done:new Set},(e.outrogroups??(e.outrogroups=new Set)).add(s)}function wn(e,t,r=!0){var n;if(e.pending.size>0){n=new Set;for(const l of e.pending.values())for(const o of l)n.add(e.items.get(o).e)}for(var i=0;i<t.length;i++){var s=t[i];if(n!=null&&n.has(s)){s.f|=tt;const l=document.createDocumentFragment();Nn(s,l)}else pe(t[i],r)}}var Yn;function wt(e,t,r,n,i,s=null){var l=e,o=new Map,a=null,f=Bs(()=>{var y=r();return ni(y)?y:y==null?[]:$r(y)}),h,p=new Map,_=!0;function v(y){(w.effect.f&xe)===0&&(w.pending.delete(y),w.fallback=a,ml(w,h,l,t,n),a!==null&&(h.length===0?(a.f&tt)===0?Rn(a):(a.f^=tt,or(a,null,l)):Rt(a,()=>{a=null})))}function d(y){w.pending.delete(y)}var b=Cn(()=>{h=c(f);for(var y=h.length,E=new Set,D=x,Le=Ii(),oe=0;oe<y;oe+=1){var Ee=h[oe],ie=n(Ee,oe),se=_?null:o.get(ie);se?(se.v&&er(se.v,Ee),se.i&&er(se.i,oe),Le&&D.unskip_effect(se.e)):(se=wl(o,_?l:Yn??(Yn=Ot()),Ee,ie,oe,i,t,r),_||(se.e.f|=tt),o.set(ie,se)),E.add(ie)}if(y===0&&s&&!a&&(_?a=Ce(()=>s(l)):(a=Ce(()=>s(Yn??(Yn=Ot()))),a.f|=tt)),y>E.size&&fs(),!_)if(p.set(D,E),Le){for(const[G,$e]of o)E.has(G)||D.skip_effect($e.e);D.oncommit(v),D.ondiscard(d)}else v(D);c(f)}),w={effect:b,items:o,pending:p,outrogroups:null,fallback:a};_=!1}function lr(e){for(;e!==null&&(e.f&Ke)===0;)e=e.next;return e}function ml(e,t,r,n,i){var se;var s=t.length,l=e.items,o=lr(e.effect.first),a,f=null,h=[],p=[],_,v,d,b;for(b=0;b<s;b+=1){if(_=t[b],v=i(_,b),d=l.get(v).e,e.outrogroups!==null)for(const G of e.outrogroups)G.pending.delete(d),G.done.delete(d);if((d.f&de)!==0&&Rn(d),(d.f&tt)!==0)if(d.f^=tt,d===o)or(d,null,r);else{var w=f?f.next:o;d===e.effect.last&&(e.effect.last=d.prev),d.prev&&(d.prev.next=d.next),d.next&&(d.next.prev=d.prev),st(e,f,d),st(e,d,w),or(d,w,r),f=d,h=[],p=[],o=lr(f.next);continue}if(d!==o){if(a!==void 0&&a.has(d)){if(h.length<p.length){var y=p[0],E;f=y.prev;var D=h[0],Le=h[h.length-1];for(E=0;E<h.length;E+=1)or(h[E],y,r);for(E=0;E<p.length;E+=1)a.delete(p[E]);st(e,D.prev,Le.next),st(e,f,D),st(e,Le,y),o=y,f=Le,b-=1,h=[],p=[]}else a.delete(d),or(d,o,r),st(e,d.prev,d.next),st(e,d,f===null?e.effect.first:f.next),st(e,f,d),f=d;continue}for(h=[],p=[];o!==null&&o!==d;)(a??(a=new Set)).add(o),p.push(o),o=lr(o.next);if(o===null)continue}(d.f&tt)===0&&h.push(d),f=d,o=lr(d.next)}if(e.outrogroups!==null){for(const G of e.outrogroups)G.pending.size===0&&(wn(e,$r(G.done)),(se=e.outrogroups)==null||se.delete(G));e.outrogroups.size===0&&(e.outrogroups=null)}if(o!==null||a!==void 0){var oe=[];if(a!==void 0)for(d of a)(d.f&de)===0&&oe.push(d);for(;o!==null;)(o.f&de)===0&&o!==e.fallback&&oe.push(o),o=lr(o.next);var Ee=oe.length;if(Ee>0){var ie=null;gl(e,oe,ie)}}}function wl(e,t,r,n,i,s,l,o){var a=(l&gs)!==0?(l&ws)===0?Ws(r,!1,!1):qt(r):null,f=(l&ms)!==0?qt(i):null;return{v:a,i:f,e:Ce(()=>(s(t,a??r,f??i,o),()=>{e.delete(n)}))}}function or(e,t,r){if(e.nodes)for(var n=e.nodes.start,i=e.nodes.end,s=t&&(t.f&tt)===0?t.nodes.start:r;n!==null;){var l=mr(n);if(s.before(n),n===i)return;n=l}}function st(e,t,r){t===null?e.effect.first=r:t.next=r,r===null?e.effect.last=t:r.prev=t}const Vn=[...` 2 - \r\f \v\uFEFF`];function bl(e,t,r){var n=e==null?"":""+e;if(r){for(var i of Object.keys(r))if(r[i])n=n?n+" "+i:i;else if(n.length)for(var s=i.length,l=0;(l=n.indexOf(i,l))>=0;){var o=l+s;(l===0||Vn.includes(n[l-1]))&&(o===n.length||Vn.includes(n[o]))?n=(l===0?"":n.substring(0,l))+n.substring(o+1):l=o}}return n===""?null:n}function Wn(e,t=!1){var r=t?" !important;":";",n="";for(var i of Object.keys(e)){var s=e[i];s!=null&&s!==""&&(n+=" "+i+": "+s+r)}return n}function xl(e,t){if(t){var r="",n,i;return Array.isArray(t)?(n=t[0],i=t[1]):n=t,n&&(r+=Wn(n)),i&&(r+=Wn(i,!0)),r=r.trim(),r===""?null:r}return String(e)}function Jr(e,t,r,n,i,s){var l=e.__className;if(l!==r||l===void 0){var o=bl(r,n,s);o==null?e.removeAttribute("class"):e.setAttribute("class",o),e.__className=r}else if(s&&i!==s)for(var a in s){var f=!!s[a];(i==null||f!==!!i[a])&&e.classList.toggle(a,f)}return s}function Qr(e,t={},r,n){for(var i in r){var s=r[i];t[i]!==s&&(r[i]==null?e.style.removeProperty(i):e.style.setProperty(i,s,n))}}function kl(e,t,r,n){var i=e.__style;if(i!==t){var s=xl(t,n);s==null?e.removeAttribute("style"):e.style.cssText=s,e.__style=t}else n&&(Array.isArray(n)?(Qr(e,r==null?void 0:r[0],n[0]),Qr(e,r==null?void 0:r[1],n[1],"important")):Qr(e,r,n));return n}const El=Symbol("is custom element"),Sl=Symbol("is html");function m(e,t,r,n){var i=Al(e);i[t]!==(i[t]=r)&&(t==="loading"&&(e[as]=r),r==null?e.removeAttribute(t):typeof r!="string"&&Il(e).includes(t)?e[t]=r:e.setAttribute(t,r))}function Al(e){return e.__attributes??(e.__attributes={[El]:e.nodeName.includes("-"),[Sl]:e.namespaceURI===ai})}var Un=new Map;function Il(e){var t=e.getAttribute("is")||e.nodeName,r=Un.get(t);if(r)return r;Un.set(t,r=[]);for(var n,i=e,s=Element.prototype;s!==i;){n=Qi(i);for(var l in n)n[l].set&&r.push(l);i=ii(i)}return r}function Gn(e,t,r=t){var n=new WeakSet;Ti(e,"input",async i=>{var s=i?e.defaultValue:e.value;if(s=tn(e)?rn(s):s,r(s),x!==null&&n.add(x),await fl(),s!==(s=t())){var l=e.selectionStart,o=e.selectionEnd,a=e.value.length;if(e.value=s??"",o!==null){var f=e.value.length;l===o&&o===a&&f>a?(e.selectionStart=f,e.selectionEnd=f):(e.selectionStart=l,e.selectionEnd=Math.min(o,f))}}}),Ln(t)==null&&e.value&&(r(tn(e)?rn(e.value):e.value),x!==null&&n.add(x)),Vr(()=>{var i=t();if(e===document.activeElement){var s=x;if(n.has(s))return}tn(e)&&i===rn(e.value)||e.type==="date"&&!i&&!e.value||i!==e.value&&(e.value=i??"")})}const en=new Set;function Tl(e,t,r,n,i=n){var s=r.getAttribute("type")==="checkbox",l=e;if(t!==null)for(var o of t)l=l[o]??(l[o]=[]);l.push(r),Ti(r,"change",()=>{var a=r.__value;s&&(a=Cl(l,a,r.checked)),i(a)},()=>i(s?[]:null)),Vr(()=>{var a=n();s?(a=a||[],r.checked=a.includes(r.__value)):r.checked=Gs(r.__value,a)}),Ci(()=>{var a=l.indexOf(r);a!==-1&&l.splice(a,1)}),en.has(l)||(en.add(l),ht(()=>{l.sort((a,f)=>a.compareDocumentPosition(f)===4?-1:1),en.delete(l)})),ht(()=>{})}function Cl(e,t,r){for(var n=new Set,i=0;i<e.length;i+=1)e[i].checked&&n.add(e[i].__value);return r||n.delete(t),Array.from(n)}function tn(e){var t=e.type;return t==="number"||t==="range"}function rn(e){return e===""?null:+e}function Xn(e,t){return e===t||(e==null?void 0:e[Ct])===t}function Ml(e={},t,r,n){var i=ke.r,s=T;return nl(()=>{var l,o;return Vr(()=>{l=o,o=[],Ln(()=>{e!==r(...o)&&(t(e,...o),l&&Xn(r(...l),e)&&t(null,...l))})}),()=>{let a=s;for(;a!==i&&a.parent!==null&&a.parent.f&un;)a=a.parent;const f=()=>{o&&Xn(r(...o),e)&&t(null,...o)},h=a.teardown;a.teardown=()=>{f(),h==null||h()}}}),e}function nn(e,t,r,n){var w;var i=n,s=!0,l=()=>(s&&(s=!1,i=n),i);let o;{var a=Ct in e||ls in e;o=((w=Bt(e,t))==null?void 0:w.set)??(a&&t in e?y=>e[t]=y:void 0)}var f,h=!1;[f,h]=Cs(()=>e[t]);var p;if(p=()=>{var y=e[t];return y===void 0?l():(s=!0,y)},o){var _=e.$$legacy;return(function(y,E){return arguments.length>0?((!E||_||h)&&o(E?p():y),y):p()})}var v=!1,d=Yr(()=>(v=!1,p()));c(d);var b=T;return(function(y,E){if(arguments.length>0){const D=E?c(d):jt(y);return N(d,D),v=!0,i!==void 0&&(i=D),y}return rt&&v||(b.f&xe)!==0?d.v:c(d)})}const Rl="5";var ri;typeof window<"u"&&((ri=window.__svelte??(window.__svelte={})).v??(ri.v=new Set)).add(Rl);let Yi=0;function bn(e){return`${e}#${(++Yi).toString(16).padStart(3,"0")}`}function Nl(){Yi=0}class Ll{constructor(){this.entries=[],this.leftSubtree=null,this.firstKeyIdx=null,this.lastKeyIdx=null}isEmpty(){return this.leftSubtree===null&&this.entries.length===0}reset(){this.entries=[],this.leftSubtree=null,this.firstKeyIdx=null,this.lastKeyIdx=null}linkRecord(t,r,n){this.entries.push({key:t,recordCid:r,keyIdx:n,rightSubtree:null}),this.firstKeyIdx===null&&(this.firstKeyIdx=n),this.lastKeyIdx=n}linkSubtree(t,r,n){this.entries.length===0?this.leftSubtree=t:this.entries[this.entries.length-1].rightSubtree=t,(this.firstKeyIdx===null||r<this.firstKeyIdx)&&(this.firstKeyIdx=r),(this.lastKeyIdx===null||n>this.lastKeyIdx)&&(this.lastKeyIdx=n)}snapshot(){return{entries:this.entries.map(t=>({...t})),leftSubtree:this.leftSubtree,firstKeyIdx:this.firstKeyIdx,lastKeyIdx:this.lastKeyIdx,isEmpty:this.isEmpty()}}}function at(e,t){return{cursor:e.cursor,prevLayer:e.prevLayer,stack:e.stack.map(r=>r.snapshot()),frozen:e.frozen.slice(),event:t}}function Zn(e,t,r){const n=e.stack[t],i=e.stack[t+1];if(n.isEmpty())return[at(e,{type:r?"finalFreezeSkipEmpty":"freezeSkipEmpty",layer:t})];const s=bn(`n${t}`),l={layer:t,firstKeyIdx:n.firstKeyIdx,lastKeyIdx:n.lastKeyIdx,entries:n.entries.map(o=>({...o})),leftSubtree:n.leftSubtree,cid:s};return e.frozen.push(l),i.linkSubtree(s,n.firstKeyIdx,n.lastKeyIdx),n.reset(),[at(e,{type:r?"finalFreezeNode":"freezeNode",layer:t,cid:s,frozenRecord:l})]}function Dl(e){Nl();const t={cursor:-1,prevLayer:-1,stack:[],frozen:[]},r=[];r.push(at(t,{type:"init"}));for(let i=0;i<e.length;i++){const{key:s,layer:l}=e[i];for(t.cursor=i,r.push(at(t,{type:"read",key:s,keyLayer:l,keyIdx:i}));t.stack.length<=l;)t.stack.push(new Ll),r.push(at(t,{type:"growStack",layer:t.stack.length-1}));if(l>t.prevLayer)for(let a=0;a<l;a++)r.push(...Zn(t,a,!1));const o=bn("r");t.stack[l].linkRecord(s,o,i),r.push(at(t,{type:"linkRecord",key:s,keyLayer:l,keyIdx:i,recordCid:o})),t.prevLayer=l}t.cursor=e.length,r.push(at(t,{type:"streamEnd"}));for(let i=0;i<t.stack.length-1;i++)r.push(...Zn(t,i,!0));let n;if(t.stack.length>0){const i=t.stack.length-1,s=t.stack[i];s.isEmpty()?n="bafyreih…(empty mst)":(n=bn("root"),t.frozen.push({layer:i,firstKeyIdx:s.firstKeyIdx,lastKeyIdx:s.lastKeyIdx,entries:s.entries.map(l=>({...l})),leftSubtree:s.leftSubtree,cid:n,isRoot:!0}),s.reset())}else n="bafyreih…(empty mst)";return r.push(at(t,{type:"rootCid",rootCid:n})),r}function ql(e){switch(e.type){case"init":return"idle — stream not yet read";case"read":return`read key "${e.key}" (layer ${e.keyLayer})`;case"growStack":return`grow stack to include layer ${e.layer}`;case"freezeSkipEmpty":return`cascade: layer ${e.layer} empty — skip`;case"freezeNode":return`cascade: freeze layer ${e.layer} → CID ${e.cid}, link into layer ${e.layer+1}`;case"linkRecord":return`link record "${e.key}" into layer ${e.keyLayer} (record CID ${e.recordCid})`;case"streamEnd":return"stream end — final rollup";case"finalFreezeSkipEmpty":return`final rollup: layer ${e.layer} empty — skip`;case"finalFreezeNode":return`final rollup: freeze layer ${e.layer} → CID ${e.cid}, link into layer ${e.layer+1}`;case"rootCid":return`root CID: ${e.rootCid}`;default:return e.type}}const Ol=[{key:"aa",layer:0},{key:"ab",layer:0},{key:"ac",layer:0},{key:"ad",layer:1},{key:"ae",layer:0},{key:"af",layer:0},{key:"ag",layer:0},{key:"ah",layer:1},{key:"ai",layer:0},{key:"aj",layer:2},{key:"ak",layer:0},{key:"al",layer:0},{key:"am",layer:1},{key:"an",layer:0},{key:"ao",layer:0},{key:"ap",layer:0}],zl=[{key:"aa",layer:0},{key:"ab",layer:0},{key:"ac",layer:1},{key:"ad",layer:0},{key:"ae",layer:0}],Fl=[{key:"aa",layer:1},{key:"ab",layer:1},{key:"ac",layer:2},{key:"ad",layer:0},{key:"ae",layer:0}],sn={small:Ol,tiny:zl,emptyBottom:Fl},Kl=[42,108,0],Pl=[1,113,18,32],ln=36,Jn=4096,Qn=830,ei=1024*1024;function an(e,t){let r=0,n=1,i=t;for(;i<e.length;){const s=e[i++];if(r+=(s&127)*n,(s&128)===0){if(!Number.isSafeInteger(r))throw new Error("varint overflow");return[r,i-t]}if(n*=128,n>2**49)throw new Error("varint too long")}throw new Error("varint truncated at end of buffer")}function on(e){return Array.from(e,t=>t.toString(16).padStart(2,"0")).join("")}function $l(e){const t=new Uint8Array(e);let r=0;if(t.length<3+ln+1)throw new Error("file too short to contain a STAR-lite header");for(let h=0;h<3;h++)if(t[r+h]!==Kl[h])throw new Error(`bad magic at offset 0: expected 2a 6c 00, got ${on(t.slice(0,3))}`);r+=3;const n=t.slice(r,r+ln);for(let h=0;h<4;h++)if(n[h]!==Pl[h])throw new Error(`bad CID prefix: expected 01 71 12 20, got ${on(n.slice(0,4))}`);const i=n.slice(4);r+=ln;const[s,l]=an(t,r);if(r+=l,s>Jn)throw new Error(`partial commit cbor len ${s} exceeds max ${Jn}`);if(r+s>t.length)throw new Error("truncated partial commit cbor");const o=s>0?t.slice(r,r+s):null;r+=s;const a=new TextDecoder("utf-8",{fatal:!0}),f=[];for(;r<t.length;){const[h,p]=an(t,r);if(r+=p,h>Qn)throw new Error(`record ${f.length}: key len ${h} exceeds max ${Qn}`);if(r+h>t.length)throw new Error(`record ${f.length}: truncated key`);let _;try{_=a.decode(t.slice(r,r+h))}catch{throw new Error(`record ${f.length}: key is not valid utf-8`)}r+=h;const[v,d]=an(t,r);if(r+=d,v>ei)throw new Error(`record ${f.length}: record len ${v} exceeds max ${ei}`);if(r+v>t.length)throw new Error(`record ${f.length}: truncated record body`);if(r+=v,f.length>0&&_<=f[f.length-1].key)throw new Error(`record ${f.length}: key "${_}" not in strict lex order after "${f[f.length-1].key}"`);f.push({key:_,recordSize:v})}return{headerCidDigest:i,headerCidHex:on(i),partialCommit:o,records:f}}const Hl=new TextEncoder;async function jl(e){const t=await crypto.subtle.digest("SHA-256",e);return new Uint8Array(t)}function Bl(e){let t=0;for(const r of e){if(r===0){t+=8;continue}return t+=Math.clz32(r)-24,t}return t}async function Yl(e){const t=await jl(Hl.encode(e));return Math.floor(Bl(t)/2)}async function Vl(e){return Promise.all(e.map(Yl))}var Wl=Pe('<g class="layer-bg"><text class="layer-label svelte-qc7y49"></text><line class="layer-divider svelte-qc7y49"></line></g>'),Ul=Pe('<text class="title svelte-qc7y49"> </text><text class="cid svelte-qc7y49"> </text>',1),Gl=Pe('<circle class="entry-dot svelte-qc7y49"></circle>'),Xl=Pe('<g><rect rx="5" class="svelte-qc7y49"></rect><!><!></g>'),Zl=Pe('<text class="title svelte-qc7y49"> </text><text class="cid svelte-qc7y49">building…</text>',1),Jl=Pe('<circle class="entry-dot active svelte-qc7y49"></circle>'),Ql=Pe('<g><rect rx="5" class="svelte-qc7y49"></rect><!><!></g>'),ea=Pe('<rect rx="5" class="ghost-skip svelte-qc7y49"></rect><text text-anchor="middle" class="ghost-label svelte-qc7y49">∅ skip</text>',1),ta=Pe('<text text-anchor="middle" class="key svelte-qc7y49"> </text><text text-anchor="middle" class="layer-tag svelte-qc7y49"> </text>',1),ra=Pe('<line class="layer-tick svelte-qc7y49"></line>'),na=Pe('<g><rect class="svelte-qc7y49"></rect><!></g>'),ia=Ft('<div class="viz-wrap svelte-qc7y49"><svg xmlns="http://www.w3.org/2000/svg" class="svelte-qc7y49"><!><!><!><line class="cursor svelte-qc7y49"></line><!></svg></div>');function sa(e,t){jr(t,!0);const r=24,n=28,i=16,s=18,l=56,o=10,a=16,f=1800,h=4,p=50,_=22;let v=z(()=>t.dataset.length),d=z(()=>c(v)===0?p:Math.max(h,Math.min(p,(f-2*r)/c(v)))),b=z(()=>c(d)>=_);function w(g){return r+g*c(d)}function y(g){return r+(g+1)*c(d)}function E(g){return r+g*c(d)+c(d)/2}let D=z(()=>r*2+c(v)*c(d)),Le=z(()=>Math.max(0,t.snapshot.stack.length-1,...t.snapshot.frozen.map(g=>g.layer))),oe=z(()=>t.dataset.reduce((g,k)=>Math.max(g,k.layer),0)),Ee=z(()=>Math.max(c(Le),c(oe))),ie=z(()=>a+(c(Ee)+1)*(l+o)+s),se=z(()=>c(ie)+n+i+12);function G(g){return a+(c(Ee)-g)*(l+o)}let $e=z(()=>t.snapshot.cursor<0?r:t.snapshot.cursor>=c(v)?y(c(v)-1):w(t.snapshot.cursor)),He=z(()=>{const g=t.snapshot.event;return g?g.type==="linkRecord"?{kind:"activeNode",layer:g.keyLayer}:g.type==="freezeNode"||g.type==="finalFreezeNode"?{kind:"frozenCid",cid:g.cid}:g.type==="freezeSkipEmpty"||g.type==="finalFreezeSkipEmpty"?{kind:"skipLayer",layer:g.layer}:g.type==="read"?{kind:"streamCell",idx:g.keyIdx}:null:null}),je=le(void 0);gn(()=>{if(!c(je))return;const g=c($e),k=c(je).scrollLeft,R=k+c(je).clientWidth,Y=Math.min(120,c(je).clientWidth/4);(g<k+Y||g>R-Y)&&(c(je).scrollLeft=Math.max(0,g-c(je).clientWidth/2))});const nr=["#1a1d24","#1f3550","#3a3214","#4a1e3e","#3e2c5a","#1f4a3a"];function br(g){return nr[Math.min(g,nr.length-1)]}var ir=ia(),Kt=L(ir),xr=L(Kt);wt(xr,17,()=>Array(c(Ee)+1),$t,(g,k,R)=>{var Y=Wl(),X=L(Y);m(X,"x",4),X.textContent=`L${R}`;var J=M(X);m(J,"x1",r-2),ee((F,V,P)=>{m(X,"y",F),m(J,"x2",c(D)-r+2),m(J,"y1",V),m(J,"y2",P)},[()=>G(R)+l/2+4,()=>G(R)+l+o/2,()=>G(R)+l+o/2]),j(g,Y)});var sr=M(xr);wt(sr,17,()=>t.snapshot.frozen,g=>g.cid,(g,k)=>{const R=z(()=>w(c(k).firstKeyIdx)),Y=z(()=>y(c(k).lastKeyIdx)-w(c(k).firstKeyIdx)),X=z(()=>G(c(k).layer)),J=z(()=>(c(k).leftSubtree?1:0)+c(k).entries.filter(H=>H.rightSubtree).length);var F=Xl();let V;var P=L(F);m(P,"height",l);var W=M(P);{var $=H=>{var fe=Ul(),ye=mt(fe),_t=L(ye),pt=M(ye),it=L(pt);ee(()=>{m(ye,"x",c(R)+7),m(ye,"y",c(X)+14),ce(_t,`L${c(k).layer??""} · ${c(k).entries.length??""}e${c(J)>0?` + ${c(J)}s`:""}${c(k).isRoot?" · root":""}`),m(pt,"x",c(R)+7),m(pt,"y",c(X)+28),ce(it,c(k).cid)}),j(H,fe)};lt(W,H=>{c(Y)>=60&&H($)})}var te=M(W);{var De=H=>{var fe=Zr(),ye=mt(fe);wt(ye,17,()=>c(k).entries,$t,(_t,pt)=>{var it=Gl();ee((he,yt)=>{m(it,"cx",he),m(it,"cy",c(X)+l-12),m(it,"r",yt)},[()=>E(c(pt).keyIdx),()=>Math.min(3,c(d)/3)]),j(_t,it)}),j(H,fe)};lt(te,H=>{c(d)>=8&&H(De)})}ee(()=>{var H;V=Jr(F,0,"node frozen svelte-qc7y49",null,V,{isRoot:c(k).isRoot,"pulse-cid":((H=c(He))==null?void 0:H.kind)==="frozenCid"&&c(He).cid===c(k).cid}),m(P,"x",c(R)),m(P,"y",c(X)),m(P,"width",c(Y))}),j(g,F)});var kr=M(sr);wt(kr,17,()=>t.snapshot.stack,$t,(g,k,R)=>{var Y=Zr(),X=mt(Y);{var J=V=>{const P=z(()=>w(c(k).firstKeyIdx)),W=z(()=>y(c(k).lastKeyIdx)),$=z(()=>G(R)),te=z(()=>(c(k).leftSubtree?1:0)+c(k).entries.filter(he=>he.rightSubtree).length);var De=Ql();let H;var fe=L(De);m(fe,"height",l);var ye=M(fe);{var _t=he=>{var yt=Zl(),Pt=mt(yt),Wr=L(Pt),Er=M(Pt);ee(()=>{m(Pt,"x",c(P)+7),m(Pt,"y",c($)+14),ce(Wr,`L${R} · ${c(k).entries.length??""}e${c(te)>0?` + ${c(te)}s`:""}`),m(Er,"x",c(P)+7),m(Er,"y",c($)+28)}),j(he,yt)};lt(ye,he=>{c(W)-c(P)>=60&&he(_t)})}var pt=M(ye);{var it=he=>{var yt=Zr(),Pt=mt(yt);wt(Pt,17,()=>c(k).entries,$t,(Wr,Er)=>{var Sr=Jl();ee((Vi,Wi)=>{m(Sr,"cx",Vi),m(Sr,"cy",c($)+l-12),m(Sr,"r",Wi)},[()=>E(c(Er).keyIdx),()=>Math.min(3.5,c(d)/3)]),j(Wr,Sr)}),j(he,yt)};lt(pt,he=>{c(d)>=8&&he(it)})}ee(()=>{var he;H=Jr(De,0,"node active svelte-qc7y49",null,H,{"pulse-active":((he=c(He))==null?void 0:he.kind)==="activeNode"&&c(He).layer===R}),m(fe,"x",c(P)),m(fe,"y",c($)),m(fe,"width",c(W)-c(P))}),j(V,De)},F=V=>{var P=ea(),W=mt(P);m(W,"width",56),m(W,"height",l);var $=M(W);ee((te,De)=>{m(W,"x",c($e)-28),m(W,"y",te),m($,"x",c($e)),m($,"y",De)},[()=>G(R),()=>G(R)+l/2+4]),j(V,P)};lt(X,V=>{var P;c(k).isEmpty?((P=c(He))==null?void 0:P.kind)==="skipLayer"&&c(He).layer===R&&V(F,1):V(J)})}j(g,Y)});var A=M(kr);m(A,"y1",a-4);var O=M(A);wt(O,17,()=>t.dataset,$t,(g,k,R)=>{var Y=na();let X;var J=L(Y);m(J,"height",n);var F=M(J);{var V=W=>{var $=ta(),te=mt($),De=L(te),H=M(te),fe=L(H);ee((ye,_t)=>{m(te,"x",ye),m(te,"y",c(ie)+18),ce(De,c(k).key),m(H,"x",_t),m(H,"y",c(ie)+n+12),ce(fe,`L${c(k).layer??""}`)},[()=>E(R),()=>E(R)]),j(W,$)},P=W=>{var $=ra();let te;ee((De,H,fe,ye)=>{m($,"x1",De),m($,"x2",H),m($,"y1",c(ie)+n),m($,"y2",fe),te=kl($,"",te,ye)},[()=>w(R)+c(d)/2,()=>w(R)+c(d)/2,()=>c(ie)+n+Math.min(i,4+c(k).layer*4),()=>({stroke:br(c(k).layer+1)||"#6cd0ff"})]),j(W,$)};lt(F,W=>{c(b)?W(V):c(k).layer>0&&W(P,1)})}ee((W,$)=>{var te;X=Jr(Y,0,"stream-cell svelte-qc7y49",null,X,{past:R<t.snapshot.cursor,current:R===t.snapshot.cursor,future:R>t.snapshot.cursor,"pulse-cell":((te=c(He))==null?void 0:te.kind)==="streamCell"&&c(He).idx===R}),m(J,"x",W),m(J,"y",c(ie)),m(J,"width",c(d)),m(J,"fill",$)},[()=>w(R),()=>br(c(k).layer)]),j(g,Y)}),Ml(ir,g=>N(je,g),()=>c(je)),ee(()=>{m(Kt,"width",c(D)),m(Kt,"height",c(se)),m(A,"x1",c($e)),m(A,"x2",c($e)),m(A,"y2",c(ie)+n+i+4)}),j(e,ir),Br()}var la=Ft('<div class="controls svelte-1y71c66"><button title="reset to start" class="svelte-1y71c66">⏮</button> <button title="step back" class="svelte-1y71c66">◀</button> <button class="play svelte-1y71c66"> </button> <button title="step forward" class="svelte-1y71c66">▶</button> <input class="scrub svelte-1y71c66" type="range" min="0"/> <label class="speed svelte-1y71c66">speed <input type="range" min="0.25" max="4" step="0.25" class="svelte-1y71c66"/> <span class="svelte-1y71c66"> </span></label> <span class="counter svelte-1y71c66"> </span></div>');function aa(e,t){jr(t,!0);let r=nn(t,"i"),n=nn(t,"playing"),i=nn(t,"speed");var s=la(),l=L(s),o=M(l,2),a=M(o,2),f=L(a),h=M(a,2),p=M(h,2),_=M(p,2),v=M(L(_)),d=M(v,2),b=L(d),w=M(_,2),y=L(w);ee(E=>{m(a,"title",n()?"pause":"play"),ce(f,n()?"⏸":"▶"),m(p,"max",t.total-1),ce(b,`${E??""}×`),ce(y,`${r()+1} / ${t.total??""}`)},[()=>i().toFixed(2)]),ar("click",l,function(...E){var D;(D=t.onReset)==null||D.apply(this,E)}),ar("click",o,()=>t.onStep(-1)),ar("click",a,()=>n(!n())),ar("click",h,()=>t.onStep(1)),Gn(p,r),Gn(v,i),j(e,s),Br()}ji(["click"]);var oa=Ft('<label class="svelte-1n46o8q"><input type="radio" class="svelte-1n46o8q"/> </label>'),fa=Ft('<p class="msg err svelte-1n46o8q"> </p>'),ua=Ft('<p class="msg ok svelte-1n46o8q"> </p>'),ca=Ft('<p class="msg muted svelte-1n46o8q">header CID digest: <code class="svelte-1n46o8q"> </code></p>'),da=Ft(`<main><header><h1>STAR-lite verification</h1> <p>step <span class="ev"> </span> &middot; <span class="ev"> </span> </p></header> <div class="dataset-picker svelte-1n46o8q"><!> <span class="spacer svelte-1n46o8q"></span> <label class="file-button svelte-1n46o8q"><input type="file" accept=".star,application/octet-stream" hidden=""/> load .star file…</label></div> <!> <!> <!> <!> <footer class="svelte-1n46o8q"><p class="svelte-1n46o8q">Stream is at the bottom (lex-ordered keys, layer tags below). The cursor sweeps left to 3 - right. Each MST node lives in its layer's row, spanning the keys it covers. Active 4 - (in-stack) nodes glow cyan; frozen nodes fade to gray once their CID has been linked into 5 - a parent. The final root node lights up amber.</p> <p class="svelte-1n46o8q">For loaded .star files, layers come from <code class="svelte-1n46o8q">floor(leading_zero_bits(sha256(key)) / 2)</code> (atproto MST fanout 4). 6 - Record CIDs and node CIDs in this viz are placeholders — visualizing the structure 7 - doesn't require the actual DAG-CBOR encoding step.</p> <p class="svelte-1n46o8q">Node labels: <code class="svelte-1n46o8q">Ne</code> = N direct entries (key/value pairs at this layer); <code class="svelte-1n46o8q">Ns</code> = N subtree links (left + per-entry right) into lower layers. 8 - A non-root MST node always has at least 1 entry; subtree count is bounded by <code class="svelte-1n46o8q">entries + 1</code>.</p></footer></main>`);function ha(e,t){jr(t,!0);const r=[];let n=le("small"),i=le(null),s=le(null),l=le(null),o=z(()=>c(n)==="custom"&&c(i)?c(i).dataset:sn[c(n)]),a=z(()=>Dl(c(o))),f=le(0),h=le(!1),p=le(1),_=z(()=>c(a)[Math.min(c(f),c(a).length-1)]);gn(()=>{c(n),N(f,0),N(h,!1)}),gn(()=>{if(!c(h))return;const A=Math.max(60,800/c(p)),O=setInterval(()=>{c(f)<c(a).length-1?N(f,c(f)+1):N(h,!1)},A);return()=>clearInterval(O)});function v(A){N(f,Math.max(0,Math.min(c(a).length-1,c(f)+A)),!0)}function d(){N(f,0),N(h,!1)}async function b(A){const O=A.target.files[0];if(O){N(l,null),N(s,`parsing ${O.name}…`);try{const g=await O.arrayBuffer(),k=$l(g);N(s,`computing layers for ${k.records.length} keys…`);const R=await Vl(k.records.map(F=>F.key)),Y=k.records.map((F,V)=>({key:F.key,layer:R[V]}));N(i,{label:O.name,dataset:Y,headerCidHex:k.headerCidHex},!0),N(n,"custom");const X=R.reduce((F,V)=>(F[V]=(F[V]??0)+1,F),{}),J=Object.keys(X).sort((F,V)=>+F-+V).map(F=>`L${F}:${X[F]}`).join(" ");N(s,`loaded ${O.name} — ${Y.length} keys (${J})`)}catch(g){console.error(g),N(l,`failed to load ${O.name}: ${g.message}`),N(s,null)}finally{A.target.value=""}}}let w=z(()=>[...Object.keys(sn).map(A=>({value:A,label:`${A} (${sn[A].length})`})),...c(i)?[{value:"custom",label:`${c(i).label} (${c(i).dataset.length})`}]:[]]);var y=da(),E=L(y),D=M(L(E),2),Le=M(L(D)),oe=L(Le),Ee=M(Le,2),ie=L(Ee),se=M(Ee),G=M(E,2),$e=L(G);wt($e,17,()=>c(w),$t,(A,O)=>{var g=oa(),k=L(g),R,Y=M(k);ee(()=>{R!==(R=c(O).value)&&(k.value=(k.__value=c(O).value)??""),ce(Y,` ${c(O).label??""}`)}),Tl(r,[],k,()=>(c(O).value,c(n)),X=>N(n,X)),j(A,g)});var He=M($e,4),je=L(He),nr=M(G,2);{var br=A=>{var O=fa(),g=L(O);ee(()=>ce(g,c(l))),j(A,O)},ir=A=>{var O=ua(),g=L(O);ee(()=>ce(g,c(s))),j(A,O)};lt(nr,A=>{c(l)?A(br):c(s)&&A(ir,1)})}var Kt=M(nr,2);{var xr=A=>{var O=ca(),g=M(L(O)),k=L(g);ee(()=>ce(k,c(i).headerCidHex)),j(A,O)};lt(Kt,A=>{c(n)==="custom"&&c(i)&&A(xr)})}var sr=M(Kt,2);sa(sr,{get snapshot(){return c(_)},get dataset(){return c(o)},get cursorIndex(){return c(_).cursor}});var kr=M(sr,2);aa(kr,{get total(){return c(a).length},onStep:v,onReset:d,get i(){return c(f)},set i(A){N(f,A,!0)},get playing(){return c(h)},set playing(A){N(h,A,!0)},get speed(){return c(p)},set speed(A){N(p,A,!0)}}),ee(A=>{ce(oe,`${c(f)+1} / ${c(a).length??""}`),ce(ie,c(_).event.type),ce(se,` · 9 - ${A??""}`)},[()=>ql(c(_).event)]),ar("change",je,b),j(e,y),Br()}ji(["change"]);vl(ha,{target:document.getElementById("app")});
+9
star-lite/viz/dist/assets/index-gGLyeoh4.js
··· 1 + var ws=Object.defineProperty;var Hn=e=>{throw TypeError(e)};var ms=(e,t,r)=>t in e?ws(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var fe=(e,t,r)=>ms(e,typeof t!="symbol"?t+"":t,r),Qr=(e,t,r)=>t.has(e)||Hn("Cannot "+r);var u=(e,t,r)=>(Qr(e,t,"read from private field"),r?r.call(e):t.get(e)),C=(e,t,r)=>t.has(e)?Hn("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),I=(e,t,r,n)=>(Qr(e,t,"write to private field"),n?n.call(e,r):t.set(e,r),r),D=(e,t,r)=>(Qr(e,t,"access private method"),r);(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const s of i)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&n(o)}).observe(document,{childList:!0,subtree:!0});function r(i){const s={};return i.integrity&&(s.integrity=i.integrity),i.referrerPolicy&&(s.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?s.credentials="include":i.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function n(i){if(i.ep)return;i.ep=!0;const s=r(i);fetch(i.href,s)}})();const bs=!1;var yi=Array.isArray,xs=Array.prototype.indexOf,Zt=Array.prototype.includes,Yr=Array.from,ks=Object.defineProperty,Yt=Object.getOwnPropertyDescriptor,Es=Object.getOwnPropertyDescriptors,Ss=Object.prototype,As=Array.prototype,gi=Object.getPrototypeOf,Un=Object.isExtensible;const Cs=()=>{};function Ts(e){for(var t=0;t<e.length;t++)e[t]()}function wi(){var e,t,r=new Promise((n,i)=>{e=n,t=i});return{promise:r,resolve:e,reject:t}}const ae=2,Qt=4,Vr=8,mi=1<<24,Ve=16,Ke=32,vt=64,vn=128,Me=512,J=1024,ne=2048,We=4096,he=8192,ke=16384,zt=32768,pn=1<<25,er=65536,_n=1<<17,Rs=1<<18,ir=1<<19,Is=1<<20,tt=1<<25,Nt=65536,Fr=1<<21,pr=1<<22,dt=1<<23,It=Symbol("$state"),Ms=Symbol("legacy props"),$s=Symbol(""),Xe=new class extends Error{constructor(){super(...arguments);fe(this,"name","StaleReactionError");fe(this,"message","The reaction that called `getAbortSignal()` was re-run or destroyed")}};function Os(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function Ns(e,t,r){throw new Error("https://svelte.dev/e/each_key_duplicate")}function Ls(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function Ds(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function qs(e){throw new Error("https://svelte.dev/e/effect_orphan")}function zs(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function Fs(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function Ks(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function Bs(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function Ps(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}const Hs=1,Us=2,js=16,Ys=1,Vs=2,Q=Symbol(),bi="http://www.w3.org/1999/xhtml";function Ws(){console.warn("https://svelte.dev/e/derived_inert")}function Gs(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}function xi(e){return e===this.v}function Xs(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function ki(e){return!Xs(e,this.v)}let Js=!1,Ee=null;function tr(e){Ee=e}function Wr(e,t=!1,r){Ee={p:Ee,i:!1,c:null,e:null,s:e,x:null,r:M,l:null}}function Gr(e){var t=Ee,r=t.e;if(r!==null){t.e=null;for(var n of r)Ui(n)}return t.i=!0,Ee=t.p,{}}function Ei(){return!0}let xt=[];function Si(){var e=xt;xt=[],Ts(e)}function ht(e){if(xt.length===0&&!hr){var t=xt;queueMicrotask(()=>{t===xt&&Si()})}xt.push(e)}function Zs(){for(;xt.length>0;)Si()}function Ai(e){var t=M;if(t===null)return $.f|=dt,e;if((t.f&zt)===0&&(t.f&Qt)===0)throw e;ut(e,t)}function ut(e,t){for(;t!==null;){if((t.f&vn)!==0){if((t.f&zt)===0)throw e;try{t.b.error(e);return}catch(r){e=r}}t=t.parent}throw e}const Qs=-7169;function W(e,t){e.f=e.f&Qs|t}function $n(e){(e.f&Me)!==0||e.deps===null?W(e,J):W(e,We)}function Ci(e){if(e!==null)for(const t of e)(t.f&ae)===0||(t.f&Nt)===0||(t.f^=Nt,Ci(t.deps))}function Ti(e,t,r){(e.f&ne)!==0?t.add(e):(e.f&We)!==0&&r.add(e),Ci(e.deps),W(e,J)}let Rr=!1;function eo(e){var t=Rr;try{return Rr=!1,[e(),Rr]}finally{Rr=t}}const wt=new Set;let E=null,re=null,yn=null,hr=!1,en=!1,Ut=null,$r=null;var jn=0;let to=1;var Vt,Wt,St,Je,Ue,yr,me,gr,ft,Ze,je,Gt,Xt,At,G,Or,Ri,Nr,gn,Lr,ro;const Hr=class Hr{constructor(){C(this,G);fe(this,"id",to++);fe(this,"current",new Map);fe(this,"previous",new Map);C(this,Vt,new Set);C(this,Wt,new Set);C(this,St,new Set);C(this,Je,new Map);C(this,Ue,new Map);C(this,yr,null);C(this,me,[]);C(this,gr,[]);C(this,ft,new Set);C(this,Ze,new Set);C(this,je,new Map);C(this,Gt,new Set);fe(this,"is_fork",!1);C(this,Xt,!1);C(this,At,new Set)}skip_effect(t){u(this,je).has(t)||u(this,je).set(t,{d:[],m:[]}),u(this,Gt).delete(t)}unskip_effect(t,r=n=>this.schedule(n)){var n=u(this,je).get(t);if(n){u(this,je).delete(t);for(var i of n.d)W(i,ne),r(i);for(i of n.m)W(i,We),r(i)}u(this,Gt).add(t)}capture(t,r,n=!1){t.v!==Q&&!this.previous.has(t)&&this.previous.set(t,t.v),(t.f&dt)===0&&(this.current.set(t,[r,n]),re==null||re.set(t,r)),this.is_fork||(t.v=r)}activate(){E=this}deactivate(){E=null,re=null}flush(){try{en=!0,E=this,D(this,G,Nr).call(this)}finally{jn=0,yn=null,Ut=null,$r=null,en=!1,E=null,re=null,Mt.clear()}}discard(){for(const t of u(this,Wt))t(this);u(this,Wt).clear(),u(this,St).clear(),wt.delete(this)}register_created_effect(t){u(this,gr).push(t)}increment(t,r){let n=u(this,Je).get(r)??0;if(u(this,Je).set(r,n+1),t){let i=u(this,Ue).get(r)??0;u(this,Ue).set(r,i+1)}}decrement(t,r,n){let i=u(this,Je).get(r)??0;if(i===1?u(this,Je).delete(r):u(this,Je).set(r,i-1),t){let s=u(this,Ue).get(r)??0;s===1?u(this,Ue).delete(r):u(this,Ue).set(r,s-1)}u(this,Xt)||n||(I(this,Xt,!0),ht(()=>{I(this,Xt,!1),this.flush()}))}transfer_effects(t,r){for(const n of t)u(this,ft).add(n);for(const n of r)u(this,Ze).add(n);t.clear(),r.clear()}oncommit(t){u(this,Vt).add(t)}ondiscard(t){u(this,Wt).add(t)}on_fork_commit(t){u(this,St).add(t)}run_fork_commit_callbacks(){for(const t of u(this,St))t(this);u(this,St).clear()}settled(){return(u(this,yr)??I(this,yr,wi())).promise}static ensure(){if(E===null){const t=E=new Hr;en||(wt.add(E),hr||ht(()=>{E===t&&t.flush()}))}return E}apply(){{re=null;return}}schedule(t){var i;if(yn=t,(i=t.b)!=null&&i.is_pending&&(t.f&(Qt|Vr|mi))!==0&&(t.f&zt)===0){t.b.defer_effect(t);return}for(var r=t;r.parent!==null;){r=r.parent;var n=r.f;if(Ut!==null&&r===M&&($===null||($.f&ae)===0))return;if((n&(vt|Ke))!==0){if((n&J)===0)return;r.f^=J}}u(this,me).push(r)}};Vt=new WeakMap,Wt=new WeakMap,St=new WeakMap,Je=new WeakMap,Ue=new WeakMap,yr=new WeakMap,me=new WeakMap,gr=new WeakMap,ft=new WeakMap,Ze=new WeakMap,je=new WeakMap,Gt=new WeakMap,Xt=new WeakMap,At=new WeakMap,G=new WeakSet,Or=function(){return this.is_fork||u(this,Ue).size>0},Ri=function(){for(const n of u(this,At))for(const i of u(n,Ue).keys()){for(var t=!1,r=i;r.parent!==null;){if(u(this,je).has(r)){t=!0;break}r=r.parent}if(!t)return!0}return!1},Nr=function(){var l,a;if(jn++>1e3&&(wt.delete(this),io()),!D(this,G,Or).call(this)){for(const f of u(this,ft))u(this,Ze).delete(f),W(f,ne),this.schedule(f);for(const f of u(this,Ze))W(f,We),this.schedule(f)}const t=u(this,me);I(this,me,[]),this.apply();var r=Ut=[],n=[],i=$r=[];for(const f of t)try{D(this,G,gn).call(this,f,r,n)}catch(c){throw $i(f),c}if(E=null,i.length>0){var s=Hr.ensure();for(const f of i)s.schedule(f)}if(Ut=null,$r=null,D(this,G,Or).call(this)||D(this,G,Ri).call(this)){D(this,G,Lr).call(this,n),D(this,G,Lr).call(this,r);for(const[f,c]of u(this,je))Mi(f,c)}else{u(this,Je).size===0&&wt.delete(this),u(this,ft).clear(),u(this,Ze).clear();for(const f of u(this,Vt))f(this);u(this,Vt).clear(),Yn(n),Yn(r),(l=u(this,yr))==null||l.resolve()}var o=E;if(u(this,me).length>0){const f=o??(o=this);u(f,me).push(...u(this,me).filter(c=>!u(f,me).includes(c)))}o!==null&&(wt.add(o),D(a=o,G,Nr).call(a))},gn=function(t,r,n){t.f^=J;for(var i=t.first;i!==null;){var s=i.f,o=(s&(Ke|vt))!==0,l=o&&(s&J)!==0,a=l||(s&he)!==0||u(this,je).has(i);if(!a&&i.fn!==null){o?i.f^=J:(s&Qt)!==0?r.push(i):Er(i)&&((s&Ve)!==0&&u(this,Ze).add(i),nr(i));var f=i.first;if(f!==null){i=f;continue}}for(;i!==null;){var c=i.next;if(c!==null){i=c;break}i=i.parent}}},Lr=function(t){for(var r=0;r<t.length;r+=1)Ti(t[r],u(this,ft),u(this,Ze))},ro=function(){var c,v,p;for(const _ of wt){var t=_.id<this.id,r=[];for(const[h,[y,b]]of this.current){if(_.current.has(h)){var n=_.current.get(h)[0];if(t&&y!==n)_.current.set(h,[y,b]);else continue}r.push(h)}var i=[..._.current.keys()].filter(h=>!this.current.has(h));if(i.length===0)t&&_.discard();else if(r.length>0){if(t)for(const h of u(this,Gt))_.unskip_effect(h,y=>{var b;(y.f&(Ve|pr))!==0?_.schedule(y):D(b=_,G,Lr).call(b,[y])});_.activate();var s=new Set,o=new Map;for(var l of r)Ii(l,i,s,o);o=new Map;var a=[..._.current.keys()].filter(h=>this.current.has(h)?this.current.get(h)[0]!==h:!0);for(const h of u(this,gr))(h.f&(ke|he|_n))===0&&On(h,a,o)&&((h.f&(pr|Ve))!==0?(W(h,ne),_.schedule(h)):u(_,ft).add(h));if(u(_,me).length>0){_.apply();for(var f of u(_,me))D(c=_,G,gn).call(c,f,[],[]);I(_,me,[])}_.deactivate()}}for(const _ of wt)u(_,At).has(this)&&(u(_,At).delete(this),u(_,At).size===0&&!D(v=_,G,Or).call(v)&&(_.activate(),D(p=_,G,Nr).call(p)))};let Lt=Hr;function no(e){var t=hr;hr=!0;try{for(var r;;){if(Zs(),E===null)return r;E.flush()}}finally{hr=t}}function io(){try{zs()}catch(e){ut(e,yn)}}let qe=null;function Yn(e){var t=e.length;if(t!==0){for(var r=0;r<t;){var n=e[r++];if((n.f&(ke|he))===0&&Er(n)&&(qe=new Set,nr(n),n.deps===null&&n.first===null&&n.nodes===null&&n.teardown===null&&n.ac===null&&Yi(n),(qe==null?void 0:qe.size)>0)){Mt.clear();for(const i of qe){if((i.f&(ke|he))!==0)continue;const s=[i];let o=i.parent;for(;o!==null;)qe.has(o)&&(qe.delete(o),s.push(o)),o=o.parent;for(let l=s.length-1;l>=0;l--){const a=s[l];(a.f&(ke|he))===0&&nr(a)}}qe.clear()}}qe=null}}function Ii(e,t,r,n){if(!r.has(e)&&(r.add(e),e.reactions!==null))for(const i of e.reactions){const s=i.f;(s&ae)!==0?Ii(i,t,r,n):(s&(pr|Ve))!==0&&(s&ne)===0&&On(i,t,n)&&(W(i,ne),Nn(i))}}function On(e,t,r){const n=r.get(e);if(n!==void 0)return n;if(e.deps!==null)for(const i of e.deps){if(Zt.call(t,i))return!0;if((i.f&ae)!==0&&On(i,t,r))return r.set(i,!0),!0}return r.set(e,!1),!1}function Nn(e){E.schedule(e)}function Mi(e,t){if(!((e.f&Ke)!==0&&(e.f&J)!==0)){(e.f&ne)!==0?t.d.push(e):(e.f&We)!==0&&t.m.push(e),W(e,J);for(var r=e.first;r!==null;)Mi(r,t),r=r.next}}function $i(e){W(e,J);for(var t=e.first;t!==null;)$i(t),t=t.next}function so(e){let t=0,r=Dt(0),n;return()=>{qn()&&(d(r),Jr(()=>(t===0&&(n=Pn(()=>e(()=>vr(r)))),t+=1,()=>{ht(()=>{t-=1,t===0&&(n==null||n(),n=void 0,vr(r))})})))}}var oo=er|ir;function ao(e,t,r,n){new lo(e,t,r,n)}var Ce,Mn,Te,Ct,pe,Re,ue,be,Qe,Tt,ct,Jt,wr,mr,et,Ur,j,fo,co,uo,wn,Dr,qr,mn,bn;class lo{constructor(t,r,n,i){C(this,j);fe(this,"parent");fe(this,"is_pending",!1);fe(this,"transform_error");C(this,Ce);C(this,Mn,null);C(this,Te);C(this,Ct);C(this,pe);C(this,Re,null);C(this,ue,null);C(this,be,null);C(this,Qe,null);C(this,Tt,0);C(this,ct,0);C(this,Jt,!1);C(this,wr,new Set);C(this,mr,new Set);C(this,et,null);C(this,Ur,so(()=>(I(this,et,Dt(u(this,Tt))),()=>{I(this,et,null)})));var s;I(this,Ce,t),I(this,Te,r),I(this,Ct,o=>{var l=M;l.b=this,l.f|=vn,n(o)}),this.parent=M.b,this.transform_error=i??((s=this.parent)==null?void 0:s.transform_error)??(o=>o),I(this,pe,zn(()=>{D(this,j,wn).call(this)},oo))}defer_effect(t){Ti(t,u(this,wr),u(this,mr))}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!u(this,Te).pending}update_pending_count(t,r){D(this,j,mn).call(this,t,r),I(this,Tt,u(this,Tt)+t),!(!u(this,et)||u(this,Jt))&&(I(this,Jt,!0),ht(()=>{I(this,Jt,!1),u(this,et)&&rr(u(this,et),u(this,Tt))}))}get_effect_pending(){return u(this,Ur).call(this),d(u(this,et))}error(t){if(!u(this,Te).onerror&&!u(this,Te).failed)throw t;E!=null&&E.is_fork?(u(this,Re)&&E.skip_effect(u(this,Re)),u(this,ue)&&E.skip_effect(u(this,ue)),u(this,be)&&E.skip_effect(u(this,be)),E.on_fork_commit(()=>{D(this,j,bn).call(this,t)})):D(this,j,bn).call(this,t)}}Ce=new WeakMap,Mn=new WeakMap,Te=new WeakMap,Ct=new WeakMap,pe=new WeakMap,Re=new WeakMap,ue=new WeakMap,be=new WeakMap,Qe=new WeakMap,Tt=new WeakMap,ct=new WeakMap,Jt=new WeakMap,wr=new WeakMap,mr=new WeakMap,et=new WeakMap,Ur=new WeakMap,j=new WeakSet,fo=function(){try{I(this,Re,Ie(()=>u(this,Ct).call(this,u(this,Ce))))}catch(t){this.error(t)}},co=function(t){const r=u(this,Te).failed;r&&I(this,be,Ie(()=>{r(u(this,Ce),()=>t,()=>()=>{})}))},uo=function(){const t=u(this,Te).pending;t&&(this.is_pending=!0,I(this,ue,Ie(()=>t(u(this,Ce)))),ht(()=>{var r=I(this,Qe,document.createDocumentFragment()),n=qt();r.append(n),I(this,Re,D(this,j,qr).call(this,()=>Ie(()=>u(this,Ct).call(this,n)))),u(this,ct)===0&&(u(this,Ce).before(r),I(this,Qe,null),$t(u(this,ue),()=>{I(this,ue,null)}),D(this,j,Dr).call(this,E))}))},wn=function(){try{if(this.is_pending=this.has_pending_snippet(),I(this,ct,0),I(this,Tt,0),I(this,Re,Ie(()=>{u(this,Ct).call(this,u(this,Ce))})),u(this,ct)>0){var t=I(this,Qe,document.createDocumentFragment());Bn(u(this,Re),t);const r=u(this,Te).pending;I(this,ue,Ie(()=>r(u(this,Ce))))}else D(this,j,Dr).call(this,E)}catch(r){this.error(r)}},Dr=function(t){this.is_pending=!1,t.transfer_effects(u(this,wr),u(this,mr))},qr=function(t){var r=M,n=$,i=Ee;Ge(u(this,pe)),Oe(u(this,pe)),tr(u(this,pe).ctx);try{return Lt.ensure(),t()}catch(s){return Ai(s),null}finally{Ge(r),Oe(n),tr(i)}},mn=function(t,r){var n;if(!this.has_pending_snippet()){this.parent&&D(n=this.parent,j,mn).call(n,t,r);return}I(this,ct,u(this,ct)+t),u(this,ct)===0&&(D(this,j,Dr).call(this,r),u(this,ue)&&$t(u(this,ue),()=>{I(this,ue,null)}),u(this,Qe)&&(u(this,Ce).before(u(this,Qe)),I(this,Qe,null)))},bn=function(t){u(this,Re)&&(ye(u(this,Re)),I(this,Re,null)),u(this,ue)&&(ye(u(this,ue)),I(this,ue,null)),u(this,be)&&(ye(u(this,be)),I(this,be,null));var r=u(this,Te).onerror;let n=u(this,Te).failed;var i=!1,s=!1;const o=()=>{if(i){Gs();return}i=!0,s&&Ps(),u(this,be)!==null&&$t(u(this,be),()=>{I(this,be,null)}),D(this,j,qr).call(this,()=>{D(this,j,wn).call(this)})},l=a=>{try{s=!0,r==null||r(a,o),s=!1}catch(f){ut(f,u(this,pe)&&u(this,pe).parent)}n&&I(this,be,D(this,j,qr).call(this,()=>{try{return Ie(()=>{var f=M;f.b=this,f.f|=vn,n(u(this,Ce),()=>a,()=>o)})}catch(f){return ut(f,u(this,pe).parent),null}}))};ht(()=>{var a;try{a=this.transform_error(t)}catch(f){ut(f,u(this,pe)&&u(this,pe).parent);return}a!==null&&typeof a=="object"&&typeof a.then=="function"?a.then(l,f=>ut(f,u(this,pe)&&u(this,pe).parent)):l(a)})};function ho(e,t,r,n){const i=Xr;var s=e.filter(p=>!p.settled);if(r.length===0&&s.length===0){n(t.map(i));return}var o=M,l=vo(),a=s.length===1?s[0].promise:s.length>1?Promise.all(s.map(p=>p.promise)):null;function f(p){l();try{n(p)}catch(_){(o.f&ke)===0&&ut(_,o)}Kr()}if(r.length===0){a.then(()=>f(t.map(i)));return}var c=Oi();function v(){Promise.all(r.map(p=>po(p))).then(p=>f([...t.map(i),...p])).catch(p=>ut(p,o)).finally(()=>c())}a?a.then(()=>{l(),v(),Kr()}):v()}function vo(){var e=M,t=$,r=Ee,n=E;return function(s=!0){Ge(e),Oe(t),tr(r),s&&(e.f&ke)===0&&(n==null||n.activate(),n==null||n.apply())}}function Kr(e=!0){Ge(null),Oe(null),tr(null),e&&(E==null||E.deactivate())}function Oi(){var e=M,t=e.b,r=E,n=t.is_rendered();return t.update_pending_count(1,r),r.increment(n,e),(i=!1)=>{t.update_pending_count(-1,r),r.decrement(n,e,i)}}function Xr(e){var t=ae|ne;return M!==null&&(M.f|=ir),{ctx:Ee,deps:null,effects:null,equals:xi,f:t,fn:e,reactions:null,rv:0,v:Q,wv:0,parent:M,ac:null}}function po(e,t,r){let n=M;n===null&&Os();var i=void 0,s=Dt(Q),o=!$,l=new Map;return Io(()=>{var _;var a=M,f=wi();i=f.promise;try{Promise.resolve(e()).then(f.resolve,f.reject).finally(Kr)}catch(h){f.reject(h),Kr()}var c=E;if(o){if((a.f&zt)!==0)var v=Oi();if(n.b.is_rendered())(_=l.get(c))==null||_.reject(Xe),l.delete(c);else{for(const h of l.values())h.reject(Xe);l.clear()}l.set(c,f)}const p=(h,y=void 0)=>{if(v){var b=y===Xe;v(b)}if(!(y===Xe||(a.f&ke)!==0)){if(c.activate(),y)s.f|=dt,rr(s,y);else{(s.f&dt)!==0&&(s.f^=dt),rr(s,h);for(const[g,m]of l){if(l.delete(g),g===c)break;m.reject(Xe)}}c.deactivate()}};f.promise.then(p,h=>p(null,h||"unknown"))}),Hi(()=>{for(const a of l.values())a.reject(Xe)}),new Promise(a=>{function f(c){function v(){c===i?a(s):f(i)}c.then(v,v)}f(i)})}function K(e){const t=Xr(e);return Gi(t),t}function _o(e){const t=Xr(e);return t.equals=ki,t}function yo(e){var t=e.effects;if(t!==null){e.effects=null;for(var r=0;r<t.length;r+=1)ye(t[r])}}function Ln(e){var t,r=M,n=e.parent;if(!rt&&n!==null&&(n.f&(ke|he))!==0)return Ws(),e.v;Ge(n);try{e.f&=~Nt,yo(e),t=Qi(e)}finally{Ge(r)}return t}function Ni(e){var t=Ln(e);if(!e.equals(t)&&(e.wv=Ji(),(!(E!=null&&E.is_fork)||e.deps===null)&&(E!==null?E.capture(e,t,!0):e.v=t,e.deps===null))){W(e,J);return}rt||(re!==null?(qn()||E!=null&&E.is_fork)&&re.set(e,t):$n(e))}function go(e){var t,r;if(e.effects!==null)for(const n of e.effects)(n.teardown||n.ac)&&((t=n.teardown)==null||t.call(n),(r=n.ac)==null||r.abort(Xe),n.teardown=Cs,n.ac=null,_r(n,0),Fn(n))}function Li(e){if(e.effects!==null)for(const t of e.effects)t.teardown&&nr(t)}let xn=new Set;const Mt=new Map;let Di=!1;function Dt(e,t){var r={f:0,v:e,reactions:null,equals:xi,rv:0,wv:0};return r}function oe(e,t){const r=Dt(e);return Gi(r),r}function wo(e,t=!1,r=!0){const n=Dt(e);return t||(n.equals=ki),n}function N(e,t,r=!1){$!==null&&(!Fe||($.f&_n)!==0)&&Ei()&&($.f&(ae|Ve|pr|_n))!==0&&($e===null||!Zt.call($e,e))&&Bs();let n=r?jt(t):t;return rr(e,n,$r)}function rr(e,t,r=null){if(!e.equals(t)){Mt.set(e,rt?t:e.v);var n=Lt.ensure();if(n.capture(e,t),(e.f&ae)!==0){const i=e;(e.f&ne)!==0&&Ln(i),re===null&&$n(i)}e.wv=Ji(),qi(e,ne,r),M!==null&&(M.f&J)!==0&&(M.f&(Ke|vt))===0&&(Ae===null?Oo([e]):Ae.push(e)),!n.is_fork&&xn.size>0&&!Di&&mo()}return t}function mo(){Di=!1;for(const e of xn)(e.f&J)!==0&&W(e,We),Er(e)&&nr(e);xn.clear()}function vr(e){N(e,e.v+1)}function qi(e,t,r){var n=e.reactions;if(n!==null)for(var i=n.length,s=0;s<i;s++){var o=n[s],l=o.f,a=(l&ne)===0;if(a&&W(o,t),(l&ae)!==0){var f=o;re==null||re.delete(f),(l&Nt)===0&&(l&Me&&(M===null||(M.f&Fr)===0)&&(o.f|=Nt),qi(f,We,r))}else if(a){var c=o;(l&Ve)!==0&&qe!==null&&qe.add(c),r!==null?r.push(c):Nn(c)}}}function jt(e){if(typeof e!="object"||e===null||It in e)return e;const t=gi(e);if(t!==Ss&&t!==As)return e;var r=new Map,n=yi(e),i=oe(0),s=Ot,o=l=>{if(Ot===s)return l();var a=$,f=Ot;Oe(null),Jn(s);var c=l();return Oe(a),Jn(f),c};return n&&r.set("length",oe(e.length)),new Proxy(e,{defineProperty(l,a,f){(!("value"in f)||f.configurable===!1||f.enumerable===!1||f.writable===!1)&&Fs();var c=r.get(a);return c===void 0?o(()=>{var v=oe(f.value);return r.set(a,v),v}):N(c,f.value,!0),!0},deleteProperty(l,a){var f=r.get(a);if(f===void 0){if(a in l){const c=o(()=>oe(Q));r.set(a,c),vr(i)}}else N(f,Q),vr(i);return!0},get(l,a,f){var _;if(a===It)return e;var c=r.get(a),v=a in l;if(c===void 0&&(!v||(_=Yt(l,a))!=null&&_.writable)&&(c=o(()=>{var h=jt(v?l[a]:Q),y=oe(h);return y}),r.set(a,c)),c!==void 0){var p=d(c);return p===Q?void 0:p}return Reflect.get(l,a,f)},getOwnPropertyDescriptor(l,a){var f=Reflect.getOwnPropertyDescriptor(l,a);if(f&&"value"in f){var c=r.get(a);c&&(f.value=d(c))}else if(f===void 0){var v=r.get(a),p=v==null?void 0:v.v;if(v!==void 0&&p!==Q)return{enumerable:!0,configurable:!0,value:p,writable:!0}}return f},has(l,a){var p;if(a===It)return!0;var f=r.get(a),c=f!==void 0&&f.v!==Q||Reflect.has(l,a);if(f!==void 0||M!==null&&(!c||(p=Yt(l,a))!=null&&p.writable)){f===void 0&&(f=o(()=>{var _=c?jt(l[a]):Q,h=oe(_);return h}),r.set(a,f));var v=d(f);if(v===Q)return!1}return c},set(l,a,f,c){var S;var v=r.get(a),p=a in l;if(n&&a==="length")for(var _=f;_<v.v;_+=1){var h=r.get(_+"");h!==void 0?N(h,Q):_ in l&&(h=o(()=>oe(Q)),r.set(_+"",h))}if(v===void 0)(!p||(S=Yt(l,a))!=null&&S.writable)&&(v=o(()=>oe(void 0)),N(v,jt(f)),r.set(a,v));else{p=v.v!==Q;var y=o(()=>jt(f));N(v,y)}var b=Reflect.getOwnPropertyDescriptor(l,a);if(b!=null&&b.set&&b.set.call(c,f),!p){if(n&&typeof a=="string"){var g=r.get("length"),m=Number(a);Number.isInteger(m)&&m>=g.v&&N(g,m+1)}vr(i)}return!0},ownKeys(l){d(i);var a=Reflect.ownKeys(l).filter(v=>{var p=r.get(v);return p===void 0||p.v!==Q});for(var[f,c]of r)c.v!==Q&&!(f in l)&&a.push(f);return a},setPrototypeOf(){Ks()}})}function Vn(e){try{if(e!==null&&typeof e=="object"&&It in e)return e[It]}catch{}return e}function bo(e,t){return Object.is(Vn(e),Vn(t))}var Wn,zi,Fi,Ki;function xo(){if(Wn===void 0){Wn=window,zi=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,r=Text.prototype;Fi=Yt(t,"firstChild").get,Ki=Yt(t,"nextSibling").get,Un(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),Un(r)&&(r.__t=void 0)}}function qt(e=""){return document.createTextNode(e)}function lt(e){return Fi.call(e)}function kr(e){return Ki.call(e)}function L(e,t){return lt(e)}function mt(e,t=!1){{var r=lt(e);return r instanceof Comment&&r.data===""?kr(r):r}}function O(e,t=1,r=!1){let n=e;for(;t--;)n=kr(n);return n}function ko(e){e.textContent=""}function Bi(){return!1}function Eo(e,t,r){return document.createElementNS(bi,e,void 0)}let Gn=!1;function So(){Gn||(Gn=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{var t;if(!e.defaultPrevented)for(const r of e.target.elements)(t=r.__on_r)==null||t.call(r)})},{capture:!0}))}function Dn(e){var t=$,r=M;Oe(null),Ge(null);try{return e()}finally{Oe(t),Ge(r)}}function Pi(e,t,r,n=r){e.addEventListener(t,()=>Dn(r));const i=e.__on_r;i?e.__on_r=()=>{i(),n(!0)}:e.__on_r=()=>n(!0),So()}function Ao(e){M===null&&($===null&&qs(),Ds()),rt&&Ls()}function Co(e,t){var r=t.last;r===null?t.last=t.first=e:(r.next=e,e.prev=r,t.last=e)}function nt(e,t){var r=M;r!==null&&(r.f&he)!==0&&(e|=he);var n={ctx:Ee,deps:null,nodes:null,f:e|ne|Me,first:null,fn:t,last:null,next:null,parent:r,b:r&&r.b,prev:null,teardown:null,wv:0,ac:null};E==null||E.register_created_effect(n);var i=n;if((e&Qt)!==0)Ut!==null?Ut.push(n):Lt.ensure().schedule(n);else if(t!==null){try{nr(n)}catch(o){throw ye(n),o}i.deps===null&&i.teardown===null&&i.nodes===null&&i.first===i.last&&(i.f&ir)===0&&(i=i.first,(e&Ve)!==0&&(e&er)!==0&&i!==null&&(i.f|=er))}if(i!==null&&(i.parent=r,r!==null&&Co(i,r),$!==null&&($.f&ae)!==0&&(e&vt)===0)){var s=$;(s.effects??(s.effects=[])).push(i)}return n}function qn(){return $!==null&&!Fe}function Hi(e){const t=nt(Vr,null);return W(t,J),t.teardown=e,t}function kn(e){Ao();var t=M.f,r=!$&&(t&Ke)!==0&&(t&zt)===0;if(r){var n=Ee;(n.e??(n.e=[])).push(e)}else return Ui(e)}function Ui(e){return nt(Qt|Is,e)}function To(e){Lt.ensure();const t=nt(vt|ir,e);return(r={})=>new Promise(n=>{r.outro?$t(t,()=>{ye(t),n(void 0)}):(ye(t),n(void 0))})}function Ro(e){return nt(Qt,e)}function Io(e){return nt(pr|ir,e)}function Jr(e,t=0){return nt(Vr|t,e)}function ee(e,t=[],r=[],n=[]){ho(n,t,r,i=>{nt(Vr,()=>e(...i.map(d)))})}function zn(e,t=0){var r=nt(Ve|t,e);return r}function Ie(e){return nt(Ke|ir,e)}function ji(e){var t=e.teardown;if(t!==null){const r=rt,n=$;Xn(!0),Oe(null);try{t.call(null)}finally{Xn(r),Oe(n)}}}function Fn(e,t=!1){var r=e.first;for(e.first=e.last=null;r!==null;){const i=r.ac;i!==null&&Dn(()=>{i.abort(Xe)});var n=r.next;(r.f&vt)!==0?r.parent=null:ye(r,t),r=n}}function Mo(e){for(var t=e.first;t!==null;){var r=t.next;(t.f&Ke)===0&&ye(t),t=r}}function ye(e,t=!0){var r=!1;(t||(e.f&Rs)!==0)&&e.nodes!==null&&e.nodes.end!==null&&($o(e.nodes.start,e.nodes.end),r=!0),W(e,pn),Fn(e,t&&!r),_r(e,0);var n=e.nodes&&e.nodes.t;if(n!==null)for(const s of n)s.stop();ji(e),e.f^=pn,e.f|=ke;var i=e.parent;i!==null&&i.first!==null&&Yi(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function $o(e,t){for(;e!==null;){var r=e===t?null:kr(e);e.remove(),e=r}}function Yi(e){var t=e.parent,r=e.prev,n=e.next;r!==null&&(r.next=n),n!==null&&(n.prev=r),t!==null&&(t.first===e&&(t.first=n),t.last===e&&(t.last=r))}function $t(e,t,r=!0){var n=[];Vi(e,n,!0);var i=()=>{r&&ye(e),t&&t()},s=n.length;if(s>0){var o=()=>--s||i();for(var l of n)l.out(o)}else i()}function Vi(e,t,r){if((e.f&he)===0){e.f^=he;var n=e.nodes&&e.nodes.t;if(n!==null)for(const l of n)(l.is_global||r)&&t.push(l);for(var i=e.first;i!==null;){var s=i.next;if((i.f&vt)===0){var o=(i.f&er)!==0||(i.f&Ke)!==0&&(e.f&Ve)!==0;Vi(i,t,o?r:!1)}i=s}}}function Kn(e){Wi(e,!0)}function Wi(e,t){if((e.f&he)!==0){e.f^=he,(e.f&J)===0&&(W(e,ne),Lt.ensure().schedule(e));for(var r=e.first;r!==null;){var n=r.next,i=(r.f&er)!==0||(r.f&Ke)!==0;Wi(r,i?t:!1),r=n}var s=e.nodes&&e.nodes.t;if(s!==null)for(const o of s)(o.is_global||t)&&o.in()}}function Bn(e,t){if(e.nodes)for(var r=e.nodes.start,n=e.nodes.end;r!==null;){var i=r===n?null:kr(r);t.append(r),r=i}}let zr=!1,rt=!1;function Xn(e){rt=e}let $=null,Fe=!1;function Oe(e){$=e}let M=null;function Ge(e){M=e}let $e=null;function Gi(e){$!==null&&($e===null?$e=[e]:$e.push(e))}let _e=null,we=0,Ae=null;function Oo(e){Ae=e}let Xi=1,kt=0,Ot=kt;function Jn(e){Ot=e}function Ji(){return++Xi}function Er(e){var t=e.f;if((t&ne)!==0)return!0;if(t&ae&&(e.f&=~Nt),(t&We)!==0){for(var r=e.deps,n=r.length,i=0;i<n;i++){var s=r[i];if(Er(s)&&Ni(s),s.wv>e.wv)return!0}(t&Me)!==0&&re===null&&W(e,J)}return!1}function Zi(e,t,r=!0){var n=e.reactions;if(n!==null&&!($e!==null&&Zt.call($e,e)))for(var i=0;i<n.length;i++){var s=n[i];(s.f&ae)!==0?Zi(s,t,!1):t===s&&(r?W(s,ne):(s.f&J)!==0&&W(s,We),Nn(s))}}function Qi(e){var y;var t=_e,r=we,n=Ae,i=$,s=$e,o=Ee,l=Fe,a=Ot,f=e.f;_e=null,we=0,Ae=null,$=(f&(Ke|vt))===0?e:null,$e=null,tr(e.ctx),Fe=!1,Ot=++kt,e.ac!==null&&(Dn(()=>{e.ac.abort(Xe)}),e.ac=null);try{e.f|=Fr;var c=e.fn,v=c();e.f|=zt;var p=e.deps,_=E==null?void 0:E.is_fork;if(_e!==null){var h;if(_||_r(e,we),p!==null&&we>0)for(p.length=we+_e.length,h=0;h<_e.length;h++)p[we+h]=_e[h];else e.deps=p=_e;if(qn()&&(e.f&Me)!==0)for(h=we;h<p.length;h++)((y=p[h]).reactions??(y.reactions=[])).push(e)}else!_&&p!==null&&we<p.length&&(_r(e,we),p.length=we);if(Ei()&&Ae!==null&&!Fe&&p!==null&&(e.f&(ae|We|ne))===0)for(h=0;h<Ae.length;h++)Zi(Ae[h],e);if(i!==null&&i!==e){if(kt++,i.deps!==null)for(let b=0;b<r;b+=1)i.deps[b].rv=kt;if(t!==null)for(const b of t)b.rv=kt;Ae!==null&&(n===null?n=Ae:n.push(...Ae))}return(e.f&dt)!==0&&(e.f^=dt),v}catch(b){return Ai(b)}finally{e.f^=Fr,_e=t,we=r,Ae=n,$=i,$e=s,tr(o),Fe=l,Ot=a}}function No(e,t){let r=t.reactions;if(r!==null){var n=xs.call(r,e);if(n!==-1){var i=r.length-1;i===0?r=t.reactions=null:(r[n]=r[i],r.pop())}}if(r===null&&(t.f&ae)!==0&&(_e===null||!Zt.call(_e,t))){var s=t;(s.f&Me)!==0&&(s.f^=Me,s.f&=~Nt),s.v!==Q&&$n(s),go(s),_r(s,0)}}function _r(e,t){var r=e.deps;if(r!==null)for(var n=t;n<r.length;n++)No(e,r[n])}function nr(e){var t=e.f;if((t&ke)===0){W(e,J);var r=M,n=zr;M=e,zr=!0;try{(t&(Ve|mi))!==0?Mo(e):Fn(e),ji(e);var i=Qi(e);e.teardown=typeof i=="function"?i:null,e.wv=Xi;var s;bs&&Js&&(e.f&ne)!==0&&e.deps}finally{zr=n,M=r}}}async function Lo(){await Promise.resolve(),no()}function d(e){var t=e.f,r=(t&ae)!==0;if($!==null&&!Fe){var n=M!==null&&(M.f&ke)!==0;if(!n&&($e===null||!Zt.call($e,e))){var i=$.deps;if(($.f&Fr)!==0)e.rv<kt&&(e.rv=kt,_e===null&&i!==null&&i[we]===e?we++:_e===null?_e=[e]:_e.push(e));else{($.deps??($.deps=[])).push(e);var s=e.reactions;s===null?e.reactions=[$]:Zt.call(s,$)||s.push($)}}}if(rt&&Mt.has(e))return Mt.get(e);if(r){var o=e;if(rt){var l=o.v;return((o.f&J)===0&&o.reactions!==null||ts(o))&&(l=Ln(o)),Mt.set(o,l),l}var a=(o.f&Me)===0&&!Fe&&$!==null&&(zr||($.f&Me)!==0),f=(o.f&zt)===0;Er(o)&&(a&&(o.f|=Me),Ni(o)),a&&!f&&(Li(o),es(o))}if(re!=null&&re.has(e))return re.get(e);if((e.f&dt)!==0)throw e.v;return e.v}function es(e){if(e.f|=Me,e.deps!==null)for(const t of e.deps)(t.reactions??(t.reactions=[])).push(e),(t.f&ae)!==0&&(t.f&Me)===0&&(Li(t),es(t))}function ts(e){if(e.v===Q)return!0;if(e.deps===null)return!1;for(const t of e.deps)if(Mt.has(t)||(t.f&ae)!==0&&ts(t))return!0;return!1}function Pn(e){var t=Fe;try{return Fe=!0,e()}finally{Fe=t}}const Do=["touchstart","touchmove"];function qo(e){return Do.includes(e)}const Et=Symbol("events"),rs=new Set,En=new Set;function ur(e,t,r){(t[Et]??(t[Et]={}))[e]=r}function ns(e){for(var t=0;t<e.length;t++)rs.add(e[t]);for(var r of En)r(e)}let Zn=null;function Qn(e){var b,g;var t=this,r=t.ownerDocument,n=e.type,i=((b=e.composedPath)==null?void 0:b.call(e))||[],s=i[0]||e.target;Zn=e;var o=0,l=Zn===e&&e[Et];if(l){var a=i.indexOf(l);if(a!==-1&&(t===document||t===window)){e[Et]=t;return}var f=i.indexOf(t);if(f===-1)return;a<=f&&(o=a)}if(s=i[o]||e.target,s!==t){ks(e,"currentTarget",{configurable:!0,get(){return s||r}});var c=$,v=M;Oe(null),Ge(null);try{for(var p,_=[];s!==null;){var h=s.assignedSlot||s.parentNode||s.host||null;try{var y=(g=s[Et])==null?void 0:g[n];y!=null&&(!s.disabled||e.target===s)&&y.call(s,e)}catch(m){p?_.push(m):p=m}if(e.cancelBubble||h===t||h===null)break;s=h}if(p){for(let m of _)queueMicrotask(()=>{throw m});throw p}}finally{e[Et]=t,delete e.currentTarget,Oe(c),Ge(v)}}}var hi;const tn=((hi=globalThis==null?void 0:globalThis.window)==null?void 0:hi.trustedTypes)&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:e=>e});function zo(e){return(tn==null?void 0:tn.createHTML(e))??e}function is(e){var t=Eo("template");return t.innerHTML=zo(e.replaceAll("<!>","<!---->")),t.content}function Br(e,t){var r=M;r.nodes===null&&(r.nodes={start:e,end:t,a:null,t:null})}function Ft(e,t){var r=(t&Vs)!==0,n,i=!e.startsWith("<!>");return()=>{n===void 0&&(n=is(i?e:"<!>"+e),n=lt(n));var s=r||zi?document.importNode(n,!0):n.cloneNode(!0);return Br(s,s),s}}function Fo(e,t,r="svg"){var n=!e.startsWith("<!>"),i=(t&Ys)!==0,s=`<${r}>${n?e:"<!>"+e}</${r}>`,o;return()=>{if(!o){var l=is(s),a=lt(l);if(i)for(o=document.createDocumentFragment();lt(a);)o.appendChild(lt(a));else o=lt(a)}var f=o.cloneNode(!0);if(i){var c=lt(f),v=f.lastChild;Br(c,v)}else Br(f,f);return f}}function Be(e,t){return Fo(e,t,"svg")}function rn(){var e=document.createDocumentFragment(),t=document.createComment(""),r=qt();return e.append(t,r),Br(t,r),e}function V(e,t){e!==null&&e.before(t)}function de(e,t){var r=t==null?"":typeof t=="object"?`${t}`:t;r!==(e.__t??(e.__t=e.nodeValue))&&(e.__t=r,e.nodeValue=`${r}`)}function Ko(e,t){return Bo(e,t)}const Ir=new Map;function Bo(e,{target:t,anchor:r,props:n={},events:i,context:s,intro:o=!0,transformError:l}){xo();var a=void 0,f=To(()=>{var c=r??t.appendChild(qt());ao(c,{pending:()=>{}},_=>{Wr({});var h=Ee;s&&(h.c=s),i&&(n.$$events=i),a=e(_,n)||{},Gr()},l);var v=new Set,p=_=>{for(var h=0;h<_.length;h++){var y=_[h];if(!v.has(y)){v.add(y);var b=qo(y);for(const S of[t,document]){var g=Ir.get(S);g===void 0&&(g=new Map,Ir.set(S,g));var m=g.get(y);m===void 0?(S.addEventListener(y,Qn,{passive:b}),g.set(y,1)):g.set(y,m+1)}}}};return p(Yr(rs)),En.add(p),()=>{var b;for(var _ of v)for(const g of[t,document]){var h=Ir.get(g),y=h.get(_);--y==0?(g.removeEventListener(_,Qn),h.delete(_),h.size===0&&Ir.delete(g)):h.set(_,y)}En.delete(p),c!==r&&((b=c.parentNode)==null||b.removeChild(c))}});return Po.set(a,f),a}let Po=new WeakMap;var ze,Ye,xe,Rt,br,xr,jr;class Ho{constructor(t,r=!0){fe(this,"anchor");C(this,ze,new Map);C(this,Ye,new Map);C(this,xe,new Map);C(this,Rt,new Set);C(this,br,!0);C(this,xr,t=>{if(u(this,ze).has(t)){var r=u(this,ze).get(t),n=u(this,Ye).get(r);if(n)Kn(n),u(this,Rt).delete(r);else{var i=u(this,xe).get(r);i&&(u(this,Ye).set(r,i.effect),u(this,xe).delete(r),i.fragment.lastChild.remove(),this.anchor.before(i.fragment),n=i.effect)}for(const[s,o]of u(this,ze)){if(u(this,ze).delete(s),s===t)break;const l=u(this,xe).get(o);l&&(ye(l.effect),u(this,xe).delete(o))}for(const[s,o]of u(this,Ye)){if(s===r||u(this,Rt).has(s))continue;const l=()=>{if(Array.from(u(this,ze).values()).includes(s)){var f=document.createDocumentFragment();Bn(o,f),f.append(qt()),u(this,xe).set(s,{effect:o,fragment:f})}else ye(o);u(this,Rt).delete(s),u(this,Ye).delete(s)};u(this,br)||!n?(u(this,Rt).add(s),$t(o,l,!1)):l()}}});C(this,jr,t=>{u(this,ze).delete(t);const r=Array.from(u(this,ze).values());for(const[n,i]of u(this,xe))r.includes(n)||(ye(i.effect),u(this,xe).delete(n))});this.anchor=t,I(this,br,r)}ensure(t,r){var n=E,i=Bi();if(r&&!u(this,Ye).has(t)&&!u(this,xe).has(t))if(i){var s=document.createDocumentFragment(),o=qt();s.append(o),u(this,xe).set(t,{effect:Ie(()=>r(o)),fragment:s})}else u(this,Ye).set(t,Ie(()=>r(this.anchor)));if(u(this,ze).set(n,t),i){for(const[l,a]of u(this,Ye))l===t?n.unskip_effect(a):n.skip_effect(a);for(const[l,a]of u(this,xe))l===t?n.unskip_effect(a.effect):n.skip_effect(a.effect);n.oncommit(u(this,xr)),n.ondiscard(u(this,jr))}else u(this,xr).call(this,n)}}ze=new WeakMap,Ye=new WeakMap,xe=new WeakMap,Rt=new WeakMap,br=new WeakMap,xr=new WeakMap,jr=new WeakMap;function ot(e,t,r=!1){var n=new Ho(e),i=r?er:0;function s(o,l){n.ensure(o,l)}zn(()=>{var o=!1;t((l,a=0)=>{o=!0,s(a,l)}),o||s(-1,null)},i)}function Ht(e,t){return t}function Uo(e,t,r){for(var n=[],i=t.length,s,o=t.length,l=0;l<i;l++){let v=t[l];$t(v,()=>{if(s){if(s.pending.delete(v),s.done.add(v),s.pending.size===0){var p=e.outrogroups;Sn(e,Yr(s.done)),p.delete(s),p.size===0&&(e.outrogroups=null)}}else o-=1},!1)}if(o===0){var a=n.length===0&&r!==null;if(a){var f=r,c=f.parentNode;ko(c),c.append(f),e.items.clear()}Sn(e,t,!a)}else s={pending:new Set(t),done:new Set},(e.outrogroups??(e.outrogroups=new Set)).add(s)}function Sn(e,t,r=!0){var n;if(e.pending.size>0){n=new Set;for(const o of e.pending.values())for(const l of o)n.add(e.items.get(l).e)}for(var i=0;i<t.length;i++){var s=t[i];if(n!=null&&n.has(s)){s.f|=tt;const o=document.createDocumentFragment();Bn(s,o)}else ye(t[i],r)}}var ei;function bt(e,t,r,n,i,s=null){var o=e,l=new Map,a=null,f=_o(()=>{var g=r();return yi(g)?g:g==null?[]:Yr(g)}),c,v=new Map,p=!0;function _(g){(b.effect.f&ke)===0&&(b.pending.delete(g),b.fallback=a,jo(b,c,o,t,n),a!==null&&(c.length===0?(a.f&tt)===0?Kn(a):(a.f^=tt,dr(a,null,o)):$t(a,()=>{a=null})))}function h(g){b.pending.delete(g)}var y=zn(()=>{c=d(f);for(var g=c.length,m=new Set,S=E,B=Bi(),X=0;X<g;X+=1){var Ne=c[X],te=n(Ne,X),ie=p?null:l.get(te);ie?(ie.v&&rr(ie.v,Ne),ie.i&&rr(ie.i,X),B&&S.unskip_effect(ie.e)):(ie=Yo(l,p?o:ei??(ei=qt()),Ne,te,X,i,t,r),p||(ie.e.f|=tt),l.set(te,ie)),m.add(te)}if(g===0&&s&&!a&&(p?a=Ie(()=>s(o)):(a=Ie(()=>s(ei??(ei=qt()))),a.f|=tt)),g>m.size&&Ns(),!p)if(v.set(S,m),B){for(const[Z,Pe]of l)m.has(Z)||S.skip_effect(Pe.e);S.oncommit(_),S.ondiscard(h)}else _(S);d(f)}),b={effect:y,items:l,pending:v,outrogroups:null,fallback:a};p=!1}function cr(e){for(;e!==null&&(e.f&Ke)===0;)e=e.next;return e}function jo(e,t,r,n,i){var ie;var s=t.length,o=e.items,l=cr(e.effect.first),a,f=null,c=[],v=[],p,_,h,y;for(y=0;y<s;y+=1){if(p=t[y],_=i(p,y),h=o.get(_).e,e.outrogroups!==null)for(const Z of e.outrogroups)Z.pending.delete(h),Z.done.delete(h);if((h.f&he)!==0&&Kn(h),(h.f&tt)!==0)if(h.f^=tt,h===l)dr(h,null,r);else{var b=f?f.next:l;h===e.effect.last&&(e.effect.last=h.prev),h.prev&&(h.prev.next=h.next),h.next&&(h.next.prev=h.prev),st(e,f,h),st(e,h,b),dr(h,b,r),f=h,c=[],v=[],l=cr(f.next);continue}if(h!==l){if(a!==void 0&&a.has(h)){if(c.length<v.length){var g=v[0],m;f=g.prev;var S=c[0],B=c[c.length-1];for(m=0;m<c.length;m+=1)dr(c[m],g,r);for(m=0;m<v.length;m+=1)a.delete(v[m]);st(e,S.prev,B.next),st(e,f,S),st(e,B,g),l=g,f=B,y-=1,c=[],v=[]}else a.delete(h),dr(h,l,r),st(e,h.prev,h.next),st(e,h,f===null?e.effect.first:f.next),st(e,f,h),f=h;continue}for(c=[],v=[];l!==null&&l!==h;)(a??(a=new Set)).add(l),v.push(l),l=cr(l.next);if(l===null)continue}(h.f&tt)===0&&c.push(h),f=h,l=cr(h.next)}if(e.outrogroups!==null){for(const Z of e.outrogroups)Z.pending.size===0&&(Sn(e,Yr(Z.done)),(ie=e.outrogroups)==null||ie.delete(Z));e.outrogroups.size===0&&(e.outrogroups=null)}if(l!==null||a!==void 0){var X=[];if(a!==void 0)for(h of a)(h.f&he)===0&&X.push(h);for(;l!==null;)(l.f&he)===0&&l!==e.fallback&&X.push(l),l=cr(l.next);var Ne=X.length;if(Ne>0){var te=null;Uo(e,X,te)}}}function Yo(e,t,r,n,i,s,o,l){var a=(o&Hs)!==0?(o&js)===0?wo(r,!1,!1):Dt(r):null,f=(o&Us)!==0?Dt(i):null;return{v:a,i:f,e:Ie(()=>(s(t,a??r,f??i,l),()=>{e.delete(n)}))}}function dr(e,t,r){if(e.nodes)for(var n=e.nodes.start,i=e.nodes.end,s=t&&(t.f&tt)===0?t.nodes.start:r;n!==null;){var o=kr(n);if(s.before(n),n===i)return;n=o}}function st(e,t,r){t===null?e.effect.first=r:t.next=r,r===null?e.effect.last=t:r.prev=t}const ti=[...` 2 + \r\f \v\uFEFF`];function Vo(e,t,r){var n=e==null?"":""+e;if(r){for(var i of Object.keys(r))if(r[i])n=n?n+" "+i:i;else if(n.length)for(var s=i.length,o=0;(o=n.indexOf(i,o))>=0;){var l=o+s;(o===0||ti.includes(n[o-1]))&&(l===n.length||ti.includes(n[l]))?n=(o===0?"":n.substring(0,o))+n.substring(l+1):o=l}}return n===""?null:n}function ri(e,t=!1){var r=t?" !important;":";",n="";for(var i of Object.keys(e)){var s=e[i];s!=null&&s!==""&&(n+=" "+i+": "+s+r)}return n}function Wo(e,t){if(t){var r="",n,i;return Array.isArray(t)?(n=t[0],i=t[1]):n=t,n&&(r+=ri(n)),i&&(r+=ri(i,!0)),r=r.trim(),r===""?null:r}return String(e)}function nn(e,t,r,n,i,s){var o=e.__className;if(o!==r||o===void 0){var l=Vo(r,n,s);l==null?e.removeAttribute("class"):e.setAttribute("class",l),e.__className=r}else if(s&&i!==s)for(var a in s){var f=!!s[a];(i==null||f!==!!i[a])&&e.classList.toggle(a,f)}return s}function sn(e,t={},r,n){for(var i in r){var s=r[i];t[i]!==s&&(r[i]==null?e.style.removeProperty(i):e.style.setProperty(i,s,n))}}function Go(e,t,r,n){var i=e.__style;if(i!==t){var s=Wo(t,n);s==null?e.removeAttribute("style"):e.style.cssText=s,e.__style=t}else n&&(Array.isArray(n)?(sn(e,r==null?void 0:r[0],n[0]),sn(e,r==null?void 0:r[1],n[1],"important")):sn(e,r,n));return n}const Xo=Symbol("is custom element"),Jo=Symbol("is html");function x(e,t,r,n){var i=Zo(e);i[t]!==(i[t]=r)&&(t==="loading"&&(e[$s]=r),r==null?e.removeAttribute(t):typeof r!="string"&&Qo(e).includes(t)?e[t]=r:e.setAttribute(t,r))}function Zo(e){return e.__attributes??(e.__attributes={[Xo]:e.nodeName.includes("-"),[Jo]:e.namespaceURI===bi})}var ni=new Map;function Qo(e){var t=e.getAttribute("is")||e.nodeName,r=ni.get(t);if(r)return r;ni.set(t,r=[]);for(var n,i=e,s=Element.prototype;s!==i;){n=Es(i);for(var o in n)n[o].set&&r.push(o);i=gi(i)}return r}function ii(e,t,r=t){var n=new WeakSet;Pi(e,"input",async i=>{var s=i?e.defaultValue:e.value;if(s=an(e)?ln(s):s,r(s),E!==null&&n.add(E),await Lo(),s!==(s=t())){var o=e.selectionStart,l=e.selectionEnd,a=e.value.length;if(e.value=s??"",l!==null){var f=e.value.length;o===l&&l===a&&f>a?(e.selectionStart=f,e.selectionEnd=f):(e.selectionStart=o,e.selectionEnd=Math.min(l,f))}}}),Pn(t)==null&&e.value&&(r(an(e)?ln(e.value):e.value),E!==null&&n.add(E)),Jr(()=>{var i=t();if(e===document.activeElement){var s=E;if(n.has(s))return}an(e)&&i===ln(e.value)||e.type==="date"&&!i&&!e.value||i!==e.value&&(e.value=i??"")})}const on=new Set;function ea(e,t,r,n,i=n){var s=r.getAttribute("type")==="checkbox",o=e;if(t!==null)for(var l of t)o=o[l]??(o[l]=[]);o.push(r),Pi(r,"change",()=>{var a=r.__value;s&&(a=ta(o,a,r.checked)),i(a)},()=>i(s?[]:null)),Jr(()=>{var a=n();s?(a=a||[],r.checked=a.includes(r.__value)):r.checked=bo(r.__value,a)}),Hi(()=>{var a=o.indexOf(r);a!==-1&&o.splice(a,1)}),on.has(o)||(on.add(o),ht(()=>{o.sort((a,f)=>a.compareDocumentPosition(f)===4?-1:1),on.delete(o)})),ht(()=>{})}function ta(e,t,r){for(var n=new Set,i=0;i<e.length;i+=1)e[i].checked&&n.add(e[i].__value);return r||n.delete(t),Array.from(n)}function an(e){var t=e.type;return t==="number"||t==="range"}function ln(e){return e===""?null:+e}function si(e,t){return e===t||(e==null?void 0:e[It])===t}function ra(e={},t,r,n){var i=Ee.r,s=M;return Ro(()=>{var o,l;return Jr(()=>{o=l,l=[],Pn(()=>{e!==r(...l)&&(t(e,...l),o&&si(r(...o),e)&&t(null,...o))})}),()=>{let a=s;for(;a!==i&&a.parent!==null&&a.parent.f&pn;)a=a.parent;const f=()=>{l&&si(r(...l),e)&&t(null,...l)},c=a.teardown;a.teardown=()=>{f(),c==null||c()}}}),e}function fn(e,t,r,n){var b;var i=n,s=!0,o=()=>(s&&(s=!1,i=n),i);let l;{var a=It in e||Ms in e;l=((b=Yt(e,t))==null?void 0:b.set)??(a&&t in e?g=>e[t]=g:void 0)}var f,c=!1;[f,c]=eo(()=>e[t]);var v;if(v=()=>{var g=e[t];return g===void 0?o():(s=!0,g)},l){var p=e.$$legacy;return(function(g,m){return arguments.length>0?((!m||p||c)&&l(m?v():g),g):v()})}var _=!1,h=Xr(()=>(_=!1,v()));d(h);var y=M;return(function(g,m){if(arguments.length>0){const S=m?d(h):jt(g);return N(h,S),_=!0,i!==void 0&&(i=S),g}return rt&&_||(y.f&ke)!==0?h.v:d(h)})}const na="5";var vi;typeof window<"u"&&((vi=window.__svelte??(window.__svelte={})).v??(vi.v=new Set)).add(na);let ss=0;function An(e){return`${e}#${(++ss).toString(16).padStart(3,"0")}`}function ia(){ss=0}class sa{constructor(){this.entries=[],this.leftSubtree=null,this.firstKeyIdx=null,this.lastKeyIdx=null}isEmpty(){return this.leftSubtree===null&&this.entries.length===0}reset(){this.entries=[],this.leftSubtree=null,this.firstKeyIdx=null,this.lastKeyIdx=null}linkRecord(t,r,n){this.entries.push({key:t,recordCid:r,keyIdx:n,rightSubtree:null}),this.firstKeyIdx===null&&(this.firstKeyIdx=n),this.lastKeyIdx=n}linkSubtree(t,r,n){this.entries.length===0?this.leftSubtree=t:this.entries[this.entries.length-1].rightSubtree=t,(this.firstKeyIdx===null||r<this.firstKeyIdx)&&(this.firstKeyIdx=r),(this.lastKeyIdx===null||n>this.lastKeyIdx)&&(this.lastKeyIdx=n)}snapshot(){return{entries:this.entries.map(t=>({...t})),leftSubtree:this.leftSubtree,firstKeyIdx:this.firstKeyIdx,lastKeyIdx:this.lastKeyIdx,isEmpty:this.isEmpty()}}}function at(e,t){return{cursor:e.cursor,prevLayer:e.prevLayer,stack:e.stack.map(r=>r.snapshot()),frozen:e.frozen.slice(),event:t}}function oi(e,t,r){const n=e.stack[t],i=e.stack[t+1];if(n.isEmpty())return[at(e,{type:r?"finalFreezeSkipEmpty":"freezeSkipEmpty",layer:t})];const s=An(`n${t}`),o={layer:t,firstKeyIdx:n.firstKeyIdx,lastKeyIdx:n.lastKeyIdx,entries:n.entries.map(l=>({...l})),leftSubtree:n.leftSubtree,cid:s};return e.frozen.push(o),i.linkSubtree(s,n.firstKeyIdx,n.lastKeyIdx),n.reset(),[at(e,{type:r?"finalFreezeNode":"freezeNode",layer:t,cid:s,frozenRecord:o})]}function oa(e){ia();const t={cursor:-1,prevLayer:-1,stack:[],frozen:[]},r=[];r.push(at(t,{type:"init"}));for(let i=0;i<e.length;i++){const{key:s,layer:o}=e[i];for(t.cursor=i,r.push(at(t,{type:"read",key:s,keyLayer:o,keyIdx:i}));t.stack.length<=o;)t.stack.push(new sa),r.push(at(t,{type:"growStack",layer:t.stack.length-1}));if(o>t.prevLayer)for(let a=0;a<o;a++)r.push(...oi(t,a,!1));const l=An("r");t.stack[o].linkRecord(s,l,i),r.push(at(t,{type:"linkRecord",key:s,keyLayer:o,keyIdx:i,recordCid:l})),t.prevLayer=o}t.cursor=e.length,r.push(at(t,{type:"streamEnd"}));for(let i=0;i<t.stack.length-1;i++)r.push(...oi(t,i,!0));let n;if(t.stack.length>0){const i=t.stack.length-1,s=t.stack[i];s.isEmpty()?n="bafyreih…(empty mst)":(n=An("root"),t.frozen.push({layer:i,firstKeyIdx:s.firstKeyIdx,lastKeyIdx:s.lastKeyIdx,entries:s.entries.map(o=>({...o})),leftSubtree:s.leftSubtree,cid:n,isRoot:!0}),s.reset())}else n="bafyreih…(empty mst)";return r.push(at(t,{type:"rootCid",rootCid:n})),r}function aa(e){switch(e.type){case"init":return"idle — stream not yet read";case"read":return`read key "${e.key}" (layer ${e.keyLayer})`;case"growStack":return`grow stack to include layer ${e.layer}`;case"freezeSkipEmpty":return`cascade: layer ${e.layer} empty — skip`;case"freezeNode":return`cascade: freeze layer ${e.layer} → CID ${e.cid}, link into layer ${e.layer+1}`;case"linkRecord":return`link record "${e.key}" into layer ${e.keyLayer} (record CID ${e.recordCid})`;case"streamEnd":return"stream end — final rollup";case"finalFreezeSkipEmpty":return`final rollup: layer ${e.layer} empty — skip`;case"finalFreezeNode":return`final rollup: freeze layer ${e.layer} → CID ${e.cid}, link into layer ${e.layer+1}`;case"rootCid":return`root CID: ${e.rootCid}`;default:return e.type}}const la=[{key:"aa",layer:0},{key:"ab",layer:0},{key:"ac",layer:0},{key:"ad",layer:1},{key:"ae",layer:0},{key:"af",layer:0},{key:"ag",layer:0},{key:"ah",layer:1},{key:"ai",layer:0},{key:"aj",layer:2},{key:"ak",layer:0},{key:"al",layer:0},{key:"am",layer:1},{key:"an",layer:0},{key:"ao",layer:0},{key:"ap",layer:0}],fa=[{key:"aa",layer:0},{key:"ab",layer:0},{key:"ac",layer:1},{key:"ad",layer:0},{key:"ae",layer:0}],ca=[{key:"aa",layer:1},{key:"ab",layer:1},{key:"ac",layer:2},{key:"ad",layer:0},{key:"ae",layer:0}],cn={small:la,tiny:fa,emptyBottom:ca},ua=[42,108,0],da=[1,113,18,32],un=36,ai=4096,li=830,fi=1024*1024;function dn(e,t){let r=0,n=1,i=t;for(;i<e.length;){const s=e[i++];if(r+=(s&127)*n,(s&128)===0){if(!Number.isSafeInteger(r))throw new Error("varint overflow");return[r,i-t]}if(n*=128,n>2**49)throw new Error("varint too long")}throw new Error("varint truncated at end of buffer")}function hn(e){return Array.from(e,t=>t.toString(16).padStart(2,"0")).join("")}function ha(e){const t=new Uint8Array(e);let r=0;if(t.length<3+un+1)throw new Error("file too short to contain a STAR-lite header");for(let c=0;c<3;c++)if(t[r+c]!==ua[c])throw new Error(`bad magic at offset 0: expected 2a 6c 00, got ${hn(t.slice(0,3))}`);r+=3;const n=t.slice(r,r+un);for(let c=0;c<4;c++)if(n[c]!==da[c])throw new Error(`bad CID prefix: expected 01 71 12 20, got ${hn(n.slice(0,4))}`);const i=n.slice(4);r+=un;const[s,o]=dn(t,r);if(r+=o,s>ai)throw new Error(`partial commit cbor len ${s} exceeds max ${ai}`);if(r+s>t.length)throw new Error("truncated partial commit cbor");const l=s>0?t.slice(r,r+s):null;r+=s;const a=new TextDecoder("utf-8",{fatal:!0}),f=[];for(;r<t.length;){const[c,v]=dn(t,r);if(r+=v,c>li)throw new Error(`record ${f.length}: key len ${c} exceeds max ${li}`);if(r+c>t.length)throw new Error(`record ${f.length}: truncated key`);let p;try{p=a.decode(t.slice(r,r+c))}catch{throw new Error(`record ${f.length}: key is not valid utf-8`)}r+=c;const[_,h]=dn(t,r);if(r+=h,_>fi)throw new Error(`record ${f.length}: record len ${_} exceeds max ${fi}`);if(r+_>t.length)throw new Error(`record ${f.length}: truncated record body`);if(r+=_,f.length>0&&p<=f[f.length-1].key)throw new Error(`record ${f.length}: key "${p}" not in strict lex order after "${f[f.length-1].key}"`);f.push({key:p,recordSize:_})}return{headerCidDigest:i,headerCidHex:hn(i),partialCommit:l,records:f}}new TextEncoder;const ci=new TextDecoder,va=e=>new Uint8Array(e),pa=va,ce=String.fromCharCode,_a=(e,t,r)=>{if(r<4){if(r<2){if(r===0)return"";const X=e[t];return X&128?null:ce(X)}const m=e[t],S=e[t+1];if((m|S)&128)return null;if(r===2)return ce(m,S);const B=e[t+2];return B&128?null:ce(m,S,B)}const n=e[t],i=e[t+1],s=e[t+2],o=e[t+3];if((n|i|s|o)&128)return null;if(r<8){if(r===4)return ce(n,i,s,o);const m=e[t+4];if(m&128)return null;if(r===5)return ce(n,i,s,o,m);const S=e[t+5];if(S&128)return null;if(r===6)return ce(n,i,s,o,m,S);const B=e[t+6];return B&128?null:ce(n,i,s,o,m,S,B)}const l=e[t+4],a=e[t+5],f=e[t+6],c=e[t+7];if((l|a|f|c)&128)return null;if(r<12){if(r===8)return ce(n,i,s,o,l,a,f,c);const m=e[t+8];if(m&128)return null;if(r===9)return ce(n,i,s,o,l,a,f,c,m);const S=e[t+9];if(S&128)return null;if(r===10)return ce(n,i,s,o,l,a,f,c,m,S);const B=e[t+10];return B&128?null:ce(n,i,s,o,l,a,f,c,m,S,B)}const v=e[t+8],p=e[t+9],_=e[t+10],h=e[t+11];if((v|p|_|h)&128)return null;if(r===12)return ce(n,i,s,o,l,a,f,c,v,p,_,h);const y=e[t+12];if(y&128)return null;if(r===13)return ce(n,i,s,o,l,a,f,c,v,p,_,h,y);const b=e[t+13];if(b&128)return null;if(r===14)return ce(n,i,s,o,l,a,f,c,v,p,_,h,y,b);const g=e[t+14];return g&128?null:ce(n,i,s,o,l,a,f,c,v,p,_,h,y,b,g)},ya=(e,t=0,r=e.length)=>{if(r<=15){const n=_a(e,t,r);if(n!==null)return n}return t===0&&r===e.length?ci.decode(e):ci.decode(e.subarray(t,t+r))},ga=(e,t,r)=>n=>{const i=(1<<t)-1;let s="",o=0,l=0;for(let a=0;a<n.length;++a)for(l=l<<8|n[a],o+=8;o>t;)o-=t,s+=e[i&l>>o];if(o!==0&&(s+=e[i&l<<t-o]),r)for(;(s.length*t&7)!==0;)s+="=";return s},wa=(e,t,r)=>{const n={};for(let i=0;i<e.length;++i)n[e[i]]=i;return i=>{let s=i.length;for(;r&&i[s-1]==="=";)--s;const o=pa(s*t/8|0);let l=0,a=0,f=0;for(let c=0;c<s;++c){const v=n[i[c]];if(v===void 0)throw new SyntaxError("invalid base string");a=a<<t|v,l+=t,l>=8&&(l-=8,o[f++]=255&a>>l)}if(l>=t||(255&a<<8-l)!==0)throw new SyntaxError("unexpected end of data");return o}},ma=e=>Uint8Array.fromBase64(e,{alphabet:"base64",lastChunkHandling:"loose"}),ba=e=>e.toBase64({alphabet:"base64",omitPadding:!0}),os="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",xa=wa(os,6,!1),ka=ga(os,6,!1),as="fromBase64"in Uint8Array,Ea=as?ma:xa,Sa=as?ba:ka,Aa="abcdefghijklmnopqrstuvwxyz234567",Ca=(()=>{const e=new Uint8Array(32);for(let t=0;t<32;t++)e[t]=Aa.charCodeAt(t);return e})(),Mr=String.fromCharCode,ls=e=>{const t=e.length,r=t/5|0,n=t-r*5,i=Ca;let s="",o=0;const l=r/2|0;for(let a=0;a<l;a++){const f=e[o],c=e[o+1],v=e[o+2],p=e[o+3],_=e[o+4],h=e[o+5],y=e[o+6],b=e[o+7],g=e[o+8],m=e[o+9];s+=Mr(i[f>>>3],i[(f<<2|c>>>6)&31],i[c>>>1&31],i[(c<<4|v>>>4)&31],i[(v<<1|p>>>7)&31],i[p>>>2&31],i[(p<<3|_>>>5)&31],i[_&31],i[h>>>3],i[(h<<2|y>>>6)&31],i[y>>>1&31],i[(y<<4|b>>>4)&31],i[(b<<1|g>>>7)&31],i[g>>>2&31],i[(g<<3|m>>>5)&31],i[m&31]),o+=10}if(r&1){const a=e[o],f=e[o+1],c=e[o+2],v=e[o+3],p=e[o+4];s+=Mr(i[a>>>3],i[(a<<2|f>>>6)&31],i[f>>>1&31],i[(f<<4|c>>>4)&31],i[(c<<1|v>>>7)&31],i[v>>>2&31],i[(v<<3|p>>>5)&31],i[p&31]),o+=5}if(n>0){let a=0,f=0;for(let c=o;c<t;c++)a=a<<8|e[c],f+=8;for(;f>=5;)f-=5,s+=Mr(i[a>>>f&31]);f>0&&(s+=Mr(i[a<<5-f&31]))}return s},Cn=1,fs=18,cs=85,us=113,Ta=e=>{if(e.length<36)throw new RangeError("cid too short");const t=e[0],r=e[1],n=e[2],i=e[3];if(t!==Cn)throw new RangeError(`incorrect cid version (got v${t})`);if(r!==us&&r!==cs)throw new RangeError(`incorrect cid codec (got 0x${r.toString(16)})`);if(n!==fs)throw new RangeError(`incorrect cid digest codec (got 0x${n.toString(16)})`);if(i!==32)throw new RangeError(`incorrect cid digest size (got ${i})`);return[{version:Cn,codec:r,digest:{codec:n,contents:e.subarray(4,36)},bytes:e.subarray(0,36)},e.subarray(36)]},Ra=e=>{const[t,r]=Ta(e);if(r.length!==0)throw new RangeError("cid bytes includes remainder");return t},ds=e=>`b${ls(e.bytes)}`,Ia=e=>{if(e.length!==37||e[0]!==0)throw new SyntaxError("invalid binary cid");return Ra(e.subarray(1))},Ma=Symbol.for("@atcute/cid-link-wrapper");var pi;pi=Ma;class hs{constructor(t){fe(this,pi,!0);fe(this,"bytes");this.bytes=t}get $link(){const t=`b${ls(this.bytes)}`;return Object.defineProperty(this,"$link",{value:t,enumerable:!0}),t}toJSON(){return{$link:this.$link}}}const $a=Symbol.for("@atcute/bytes-wrapper");var _i;_i=$a;class vs{constructor(t){fe(this,"buf");fe(this,_i,!0);this.buf=t}get $bytes(){return Sa(this.buf)}toJSON(){return{$bytes:this.$bytes}}}const Oa=e=>new vs(e),Na=e=>e instanceof vs?e.buf:Ea(e.$bytes),Tn=(e,t)=>{if(t<24)return t;let r;switch(t){case 24:{if(r=Pr(e),r<24)throw new TypeError("non-canonical argument encoding");break}case 25:{if(r=Da(e),r<256)throw new TypeError("non-canonical argument encoding");break}case 26:{if(r=Rn(e),r<65536)throw new TypeError("non-canonical argument encoding");break}case 27:{if(r=qa(e),r<4294967296)throw new TypeError("non-canonical argument encoding");break}default:throw new Error(`invalid argument encoding; got ${t}`)}return r},La=e=>{const r=(e.v??(e.v=new DataView(e.b.buffer,e.b.byteOffset,e.b.byteLength))).getFloat64(e.p);return e.p+=8,r},Pr=e=>e.b[e.p++],Da=e=>{let t=e.p;const r=e.b,n=r[t++]<<8|r[t++];return e.p=t,n},Rn=e=>{let t=e.p;const r=e.b,n=(r[t++]<<24|r[t++]<<16|r[t++]<<8|r[t++])>>>0;return e.p=t,n},qa=e=>{const t=Rn(e),r=Rn(e);if(t>2097151)throw new RangeError("can't decode integers beyond safe integer range");return t*2**32+r},ps=(e,t)=>{const r=ya(e.b,e.p,t);return e.p+=t,r},za=(e,t)=>{const r=e.b.subarray(e.p,e.p+=t);return Oa(r)},Fa=(e,t)=>{const r=Ia(e.b.subarray(e.p,e.p+=t));return new hs(r.bytes)},ui=e=>{const t=Pr(e),r=t>>5;if(r!==3)throw new TypeError(`expected map to only have string keys; got type ${r}`);const n=t&31,i=n<24?n:Tn(e,n);return ps(e,i)},Ka=e=>{const t=e.length,r={b:e,v:null,p:0};let n=null,i;e:for(;r.p<t;){const s=Pr(r),o=s>>5,l=s&31,a=o===7?0:l<24?l:Tn(r,l);switch(o){case 0:{i=a;break}case 1:{i=-1-a;break}case 2:{i=za(r,a);break}case 3:{i=ps(r,a);break}case 4:{if(a>0){n={t:1,c:i=new Array(a),k:null,r:a,n};continue e}i=[];break}case 5:{if(i={},a>0){const f=ui(r);n={t:0,c:i,k:f,r:a,n};continue e}break}case 6:{switch(a){case 42:{const f=Pr(r),c=f>>5,v=f&31;if(c!==2)throw new TypeError(`expected cid-link to be type 2 (bytes); got type ${c}`);const p=Tn(r,v);i=Fa(r,p);break}default:throw new TypeError(`unsupported tag; got ${a}`)}break}case 7:{switch(l){case 20:case 21:{i=l===21;break}case 22:{i=null;break}case 27:{i=La(r);break}default:throw new Error(`invalid simple value; got ${l}`)}break}default:throw new TypeError(`invalid type; got ${o}`)}for(;n!==null;){switch(n.t){case 0:{const f=n.c,c=n.k;c==="__proto__"&&Object.defineProperty(f,c,{enumerable:!0,configurable:!0,writable:!0}),f[c]=i;break}case 1:{const f=n.c,c=f.length-n.r;f[c]=i;break}}if(--n.r){if(!n.t){const f=n.k,c=ui(r);if(n.k=c,(c.length-f.length||(c>f?1:c<f?-1:0))<=0)throw new TypeError("map keys are not in canonical order or contain duplicates")}continue e}i=n.c,n=n.n}break}return[i,e.subarray(r.p)]},In=e=>{const[t,r]=Ka(e);if(r.length!==0)throw new Error("decoded value contains remainder");return t},Bt=128,Pt=127,Ba=2**28,Pa=Math.min,_s=(e,t=0,r=e.length)=>{const n=Pa(t+r,e.length);let i=t;if(i>=n)throw new RangeError("could not decode varint");let s=e[i++],o=s&Pt;if(s<Bt)return{value:o,nextOffset:i};if(i>=n)throw new RangeError("could not decode varint");if(s=e[i++],o|=(s&Pt)<<7,s<Bt)return{value:o,nextOffset:i};if(i>=n)throw new RangeError("could not decode varint");if(s=e[i++],o|=(s&Pt)<<14,s<Bt)return{value:o,nextOffset:i};if(i>=n)throw new RangeError("could not decode varint");if(s=e[i++],o|=(s&Pt)<<21,s<Bt)return{value:o,nextOffset:i};if(i>=n)throw new RangeError("could not decode varint");if(s=e[i++],o+=(s&Pt)*Ba,s<Bt)return{value:o,nextOffset:i};let l=35;do{if(i>=n)throw new RangeError("could not decode varint");s=e[i++],o+=(s&Pt)*2**l,l+=7}while(s>=Bt);return{value:o,nextOffset:i}},Ha=e=>{if(e===null||typeof e!="object")return!1;const{version:t,roots:r}=e;return t===1&&Array.isArray(r)&&r.every(n=>n instanceof hs)},Ua=e=>{const{header:t,nextOffset:r}=ja(e,0);let n=r;return{header:t,roots:t.data.roots,iterate(){return{next(){if(n>=e.length)return{done:!0,value:void 0};const i=n,{value:s,nextOffset:o}=_s(e,n,8);n=o;const l=n,{cid:a,nextOffset:f}=Ya(e,n);n=f;const c=n,v=s-(c-l);if(v<0||c+v>e.length)throw new RangeError("unexpected end of data");const p=c+v,_=e.subarray(c,p);return n=p,{done:!1,value:{cid:a,bytes:_,entryStart:i,entryEnd:p,cidStart:l,cidEnd:c,bytesStart:c,bytesEnd:p}}},[Symbol.iterator](){return this}}},[Symbol.iterator](){return this.iterate()}}},ja=(e,t)=>{const r=t,{value:n,nextOffset:i}=_s(e,t,8);if(n===0)throw new RangeError("invalid car header; length=0");const s=i,o=s+n;if(o>e.length)throw new RangeError("unexpected end of data");const l=In(e.subarray(s,o));if(!Ha(l))throw new TypeError("expected a car v1 archive");return{header:{data:l,headerStart:r,headerEnd:o,dataStart:s,dataEnd:o},nextOffset:o}},Ya=(e,t)=>{const r=t+36;if(r>e.length)throw new RangeError("unexpected end of data");const n=e.subarray(t,r),i=n[0],s=n[1],o=n[2],l=n[3];if(i!==Cn)throw new RangeError(`incorrect cid version (got v${i})`);if(s!==us&&s!==cs)throw new RangeError(`incorrect cid codec (got 0x${s.toString(16)})`);if(o!==fs)throw new RangeError(`incorrect cid digest type (got 0x${o.toString(16)})`);if(l!==32)throw new RangeError(`incorrect cid digest size (got ${l})`);return{cid:{version:i,codec:s,digest:{codec:o,contents:n.subarray(4,36)},bytes:n},nextOffset:r}},Va=new TextDecoder("utf-8",{fatal:!0});new TextEncoder;function di(e){if(e&&typeof e.$link=="string")return e.$link;if(e&&e.bytes)return ds(e);throw new Error("expected CidLink or Cid")}function Wa(e){return e&&e.buf instanceof Uint8Array?e.buf:Na(e)}function Ga(e){const t=new Uint8Array(e),r=Ua(t),n=new Map;for(const v of r)n.set(ds(v.cid),v.bytes);if(!r.roots.length)throw new Error("CAR has no root CIDs");const i=di(r.roots[0]),s=n.get(i);if(!s)throw new Error(`commit block not in CAR: ${i}`);let o;try{o=In(s)}catch(v){throw new Error(`commit block is not valid DAG-CBOR: ${v.message}`)}if(!o.data||typeof o.data.$link!="string")throw new Error("commit has no `data` CidLink to MST root");const l=o.data.$link,a=[];let f=new Uint8Array(0);function c(v){const p=di(v),_=n.get(p);if(!_)throw new Error(`MST block not in CAR: ${p}`);let h;try{h=In(_)}catch(y){throw new Error(`MST node ${p} is not valid DAG-CBOR: ${y.message}`)}if(!Array.isArray(h.e))throw new Error(`MST node ${p} has no entries array`);h.l&&c(h.l);for(const y of h.e){if(typeof y.p!="number")throw new Error("MST entry missing prefix length");const b=Wa(y.k),g=new Uint8Array(y.p+b.length);g.set(f.slice(0,y.p),0),g.set(b,y.p);const m=Va.decode(g);let S=0;if(y.v&&y.v.$link){const B=n.get(y.v.$link);B&&(S=B.length)}a.push({key:m,recordSize:S}),f=g,y.t&&c(y.t)}}c(o.data);for(let v=1;v<a.length;v++)if(a[v].key<=a[v-1].key)throw new Error(`CAR walk produced out-of-order keys at ${v}: "${a[v-1].key}" then "${a[v].key}" — likely malformed MST`);return{records:a,commitCidString:i,dataCidString:l,blockCount:n.size}}const Xa=new TextEncoder;async function Ja(e){const t=await crypto.subtle.digest("SHA-256",e);return new Uint8Array(t)}function Za(e){let t=0;for(const r of e){if(r===0){t+=8;continue}return t+=Math.clz32(r)-24,t}return t}async function Qa(e){const t=await Ja(Xa.encode(e));return Math.floor(Za(t)/2)}async function el(e){return Promise.all(e.map(Qa))}var tl=Be('<g class="layer-bg"><text class="layer-label svelte-qc7y49"></text><line class="layer-divider svelte-qc7y49"></line></g>'),rl=Be('<text class="title svelte-qc7y49"> </text><text class="cid svelte-qc7y49"> </text>',1),nl=Be('<circle class="entry-dot svelte-qc7y49"></circle>'),il=Be('<g><rect rx="5" class="svelte-qc7y49"></rect><!><!></g>'),sl=Be('<text class="title svelte-qc7y49"> </text><text class="cid svelte-qc7y49">building…</text>',1),ol=Be('<circle class="entry-dot active svelte-qc7y49"></circle>'),al=Be('<g><rect rx="5" class="svelte-qc7y49"></rect><!><!></g>'),ll=Be('<rect rx="5" class="ghost-skip svelte-qc7y49"></rect><text text-anchor="middle" class="ghost-label svelte-qc7y49">∅ skip</text>',1),fl=Be('<text text-anchor="middle" class="key svelte-qc7y49"> </text><text text-anchor="middle" class="layer-tag svelte-qc7y49"> </text>',1),cl=Be('<line class="layer-tick svelte-qc7y49"></line>'),ul=Be('<g><rect class="svelte-qc7y49"></rect><!></g>'),dl=Ft('<div class="viz-wrap svelte-qc7y49"><svg xmlns="http://www.w3.org/2000/svg" class="svelte-qc7y49"><!><!><!><line class="cursor svelte-qc7y49"></line><!></svg></div>');function hl(e,t){Wr(t,!0);const r=24,n=28,i=16,s=18,o=56,l=10,a=16,f=1800,c=4,v=50,p=22;let _=K(()=>t.dataset.length),h=K(()=>d(_)===0?v:Math.max(c,Math.min(v,(f-2*r)/d(_)))),y=K(()=>d(h)>=p);function b(w){return r+w*d(h)}function g(w){return r+(w+1)*d(h)}function m(w){return r+w*d(h)+d(h)/2}let S=K(()=>r*2+d(_)*d(h)),B=K(()=>Math.max(0,t.snapshot.stack.length-1,...t.snapshot.frozen.map(w=>w.layer))),X=K(()=>t.dataset.reduce((w,k)=>Math.max(w,k.layer),0)),Ne=K(()=>Math.max(d(B),d(X))),te=K(()=>a+(d(Ne)+1)*(o+l)+s),ie=K(()=>d(te)+n+i+12);function Z(w){return a+(d(Ne)-w)*(o+l)}let Pe=K(()=>t.snapshot.cursor<0?r:t.snapshot.cursor>=d(_)?g(d(_)-1):b(t.snapshot.cursor)),Le=K(()=>{const w=t.snapshot.event;return w?w.type==="linkRecord"?{kind:"activeNode",layer:w.keyLayer}:w.type==="freezeNode"||w.type==="finalFreezeNode"?{kind:"frozenCid",cid:w.cid}:w.type==="freezeSkipEmpty"||w.type==="finalFreezeSkipEmpty"?{kind:"skipLayer",layer:w.layer}:w.type==="read"?{kind:"streamCell",idx:w.keyIdx}:null:null}),He=oe(void 0);kn(()=>{if(!d(He))return;const w=d(Pe),k=d(He).scrollLeft,R=k+d(He).clientWidth,F=Math.min(120,d(He).clientWidth/4);(w<k+F||w>R-F)&&(d(He).scrollLeft=Math.max(0,w-d(He).clientWidth/2))});const Sr=["#1a1d24","#1f3550","#3a3214","#4a1e3e","#3e2c5a","#1f4a3a"];function sr(w){return Sr[Math.min(w,Sr.length-1)]}var or=dl(),ar=L(or),lr=L(ar);bt(lr,17,()=>Array(d(Ne)+1),Ht,(w,k,R)=>{var F=tl(),P=L(F);x(P,"x",4),P.textContent=`L${R}`;var H=O(P);x(H,"x1",r-2),ee((Se,se,q)=>{x(P,"y",Se),x(H,"x2",d(S)-r+2),x(H,"y1",se),x(H,"y2",q)},[()=>Z(R)+o/2+4,()=>Z(R)+o+l/2,()=>Z(R)+o+l/2]),V(w,F)});var Ar=O(lr);bt(Ar,17,()=>t.snapshot.frozen,w=>w.cid,(w,k)=>{const R=K(()=>b(d(k).firstKeyIdx)),F=K(()=>g(d(k).lastKeyIdx)-b(d(k).firstKeyIdx)),P=K(()=>Z(d(k).layer)),H=K(()=>(d(k).leftSubtree?1:0)+d(k).entries.filter(Y=>Y.rightSubtree).length);var Se=il();let se;var q=L(Se);x(q,"height",o);var U=O(q);{var A=Y=>{var le=rl(),ge=mt(le),_t=L(ge),yt=O(ge),it=L(yt);ee(()=>{x(ge,"x",d(R)+7),x(ge,"y",d(P)+14),de(_t,`L${d(k).layer??""} · ${d(k).entries.length??""}e${d(H)>0?` + ${d(H)}s`:""}${d(k).isRoot?" · root":""}`),x(yt,"x",d(R)+7),x(yt,"y",d(P)+28),de(it,d(k).cid)}),V(Y,le)};ot(U,Y=>{d(F)>=60&&Y(A)})}var z=O(U);{var De=Y=>{var le=rn(),ge=mt(le);bt(ge,17,()=>d(k).entries,Ht,(_t,yt)=>{var it=nl();ee((ve,gt)=>{x(it,"cx",ve),x(it,"cy",d(P)+o-12),x(it,"r",gt)},[()=>m(d(yt).keyIdx),()=>Math.min(3,d(h)/3)]),V(_t,it)}),V(Y,le)};ot(z,Y=>{d(h)>=8&&Y(De)})}ee(()=>{var Y;se=nn(Se,0,"node frozen svelte-qc7y49",null,se,{isRoot:d(k).isRoot,"pulse-cid":((Y=d(Le))==null?void 0:Y.kind)==="frozenCid"&&d(Le).cid===d(k).cid}),x(q,"x",d(R)),x(q,"y",d(P)),x(q,"width",d(F))}),V(w,Se)});var fr=O(Ar);bt(fr,17,()=>t.snapshot.stack,Ht,(w,k,R)=>{var F=rn(),P=mt(F);{var H=se=>{const q=K(()=>b(d(k).firstKeyIdx)),U=K(()=>g(d(k).lastKeyIdx)),A=K(()=>Z(R)),z=K(()=>(d(k).leftSubtree?1:0)+d(k).entries.filter(ve=>ve.rightSubtree).length);var De=al();let Y;var le=L(De);x(le,"height",o);var ge=O(le);{var _t=ve=>{var gt=sl(),Kt=mt(gt),Zr=L(Kt),Cr=O(Kt);ee(()=>{x(Kt,"x",d(q)+7),x(Kt,"y",d(A)+14),de(Zr,`L${R} · ${d(k).entries.length??""}e${d(z)>0?` + ${d(z)}s`:""}`),x(Cr,"x",d(q)+7),x(Cr,"y",d(A)+28)}),V(ve,gt)};ot(ge,ve=>{d(U)-d(q)>=60&&ve(_t)})}var yt=O(ge);{var it=ve=>{var gt=rn(),Kt=mt(gt);bt(Kt,17,()=>d(k).entries,Ht,(Zr,Cr)=>{var Tr=ol();ee((ys,gs)=>{x(Tr,"cx",ys),x(Tr,"cy",d(A)+o-12),x(Tr,"r",gs)},[()=>m(d(Cr).keyIdx),()=>Math.min(3.5,d(h)/3)]),V(Zr,Tr)}),V(ve,gt)};ot(yt,ve=>{d(h)>=8&&ve(it)})}ee(()=>{var ve;Y=nn(De,0,"node active svelte-qc7y49",null,Y,{"pulse-active":((ve=d(Le))==null?void 0:ve.kind)==="activeNode"&&d(Le).layer===R}),x(le,"x",d(q)),x(le,"y",d(A)),x(le,"width",d(U)-d(q))}),V(se,De)},Se=se=>{var q=ll(),U=mt(q);x(U,"width",56),x(U,"height",o);var A=O(U);ee((z,De)=>{x(U,"x",d(Pe)-28),x(U,"y",z),x(A,"x",d(Pe)),x(A,"y",De)},[()=>Z(R),()=>Z(R)+o/2+4]),V(se,q)};ot(P,se=>{var q;d(k).isEmpty?((q=d(Le))==null?void 0:q.kind)==="skipLayer"&&d(Le).layer===R&&se(Se,1):se(H)})}V(w,F)});var pt=O(fr);x(pt,"y1",a-4);var T=O(pt);bt(T,17,()=>t.dataset,Ht,(w,k,R)=>{var F=ul();let P;var H=L(F);x(H,"height",n);var Se=O(H);{var se=U=>{var A=fl(),z=mt(A),De=L(z),Y=O(z),le=L(Y);ee((ge,_t)=>{x(z,"x",ge),x(z,"y",d(te)+18),de(De,d(k).key),x(Y,"x",_t),x(Y,"y",d(te)+n+12),de(le,`L${d(k).layer??""}`)},[()=>m(R),()=>m(R)]),V(U,A)},q=U=>{var A=cl();let z;ee((De,Y,le,ge)=>{x(A,"x1",De),x(A,"x2",Y),x(A,"y1",d(te)+n),x(A,"y2",le),z=Go(A,"",z,ge)},[()=>b(R)+d(h)/2,()=>b(R)+d(h)/2,()=>d(te)+n+Math.min(i,4+d(k).layer*4),()=>({stroke:sr(d(k).layer+1)||"#6cd0ff"})]),V(U,A)};ot(Se,U=>{d(y)?U(se):d(k).layer>0&&U(q,1)})}ee((U,A)=>{var z;P=nn(F,0,"stream-cell svelte-qc7y49",null,P,{past:R<t.snapshot.cursor,current:R===t.snapshot.cursor,future:R>t.snapshot.cursor,"pulse-cell":((z=d(Le))==null?void 0:z.kind)==="streamCell"&&d(Le).idx===R}),x(H,"x",U),x(H,"y",d(te)),x(H,"width",d(h)),x(H,"fill",A)},[()=>b(R),()=>sr(d(k).layer)]),V(w,F)}),ra(or,w=>N(He,w),()=>d(He)),ee(()=>{x(ar,"width",d(S)),x(ar,"height",d(ie)),x(pt,"x1",d(Pe)),x(pt,"x2",d(Pe)),x(pt,"y2",d(te)+n+i+4)}),V(e,or),Gr()}var vl=Ft('<div class="controls svelte-1y71c66"><button title="reset to start" class="svelte-1y71c66">⏮</button> <button title="step back" class="svelte-1y71c66">◀</button> <button class="play svelte-1y71c66"> </button> <button title="step forward" class="svelte-1y71c66">▶</button> <input class="scrub svelte-1y71c66" type="range" min="0"/> <label class="speed svelte-1y71c66">speed <input type="range" min="0.25" max="4" step="0.25" class="svelte-1y71c66"/> <span class="svelte-1y71c66"> </span></label> <span class="counter svelte-1y71c66"> </span></div>');function pl(e,t){Wr(t,!0);let r=fn(t,"i"),n=fn(t,"playing"),i=fn(t,"speed");var s=vl(),o=L(s),l=O(o,2),a=O(l,2),f=L(a),c=O(a,2),v=O(c,2),p=O(v,2),_=O(L(p)),h=O(_,2),y=L(h),b=O(p,2),g=L(b);ee(m=>{x(a,"title",n()?"pause":"play"),de(f,n()?"⏸":"▶"),x(v,"max",t.total-1),de(y,`${m??""}×`),de(g,`${r()+1} / ${t.total??""}`)},[()=>i().toFixed(2)]),ur("click",o,function(...m){var S;(S=t.onReset)==null||S.apply(this,m)}),ur("click",l,()=>t.onStep(-1)),ur("click",a,()=>n(!n())),ur("click",c,()=>t.onStep(1)),ii(v,r),ii(_,i),V(e,s),Gr()}ns(["click"]);var _l=Ft('<label class="svelte-1n46o8q"><input type="radio" class="svelte-1n46o8q"/> </label>'),yl=Ft('<p class="msg err svelte-1n46o8q"> </p>'),gl=Ft('<p class="msg ok svelte-1n46o8q"> </p>'),wl=Ft('<p class="msg muted svelte-1n46o8q"><code class="svelte-1n46o8q"> </code></p>'),ml=Ft(`<main><header><h1>STAR-lite verification</h1> <p>step <span class="ev"> </span> &middot; <span class="ev"> </span> </p></header> <div class="dataset-picker svelte-1n46o8q"><!> <span class="spacer svelte-1n46o8q"></span> <label class="file-button svelte-1n46o8q"><input type="file" accept=".star,.car,application/octet-stream" hidden=""/> load .star or .car file…</label></div> <!> <!> <!> <!> <footer class="svelte-1n46o8q"><p class="svelte-1n46o8q">Stream is at the bottom (lex-ordered keys, layer tags below). The cursor sweeps left to 3 + right. Each MST node lives in its layer's row, spanning the keys it covers. Active 4 + (in-stack) nodes glow cyan; frozen nodes fade to gray once their CID has been linked into 5 + a parent. The final root node lights up amber.</p> <p class="svelte-1n46o8q">For loaded .star files, layers come from <code class="svelte-1n46o8q">floor(leading_zero_bits(sha256(key)) / 2)</code> (atproto MST fanout 4). 6 + Record CIDs and node CIDs in this viz are placeholders — visualizing the structure 7 + doesn't require the actual DAG-CBOR encoding step.</p> <p class="svelte-1n46o8q">Node labels: <code class="svelte-1n46o8q">Ne</code> = N direct entries (key/value pairs at this layer); <code class="svelte-1n46o8q">Ns</code> = N subtree links (left + per-entry right) into lower layers. 8 + A non-root MST node always has at least 1 entry; subtree count is bounded by <code class="svelte-1n46o8q">entries + 1</code>.</p></footer></main>`);function bl(e,t){Wr(t,!0);const r=[];let n=oe("small"),i=oe(null),s=oe(null),o=oe(null);function l(T){return T.length>=3&&T[0]===42&&T[1]===108&&T[2]===0?"star":"car"}let a=K(()=>d(n)==="custom"&&d(i)?d(i).dataset:cn[d(n)]),f=K(()=>oa(d(a))),c=oe(0),v=oe(!1),p=oe(1),_=K(()=>d(f)[Math.min(d(c),d(f).length-1)]);kn(()=>{d(n),N(c,0),N(v,!1)}),kn(()=>{if(!d(v))return;const T=Math.max(60,800/d(p)),w=setInterval(()=>{d(c)<d(f).length-1?N(c,d(c)+1):N(v,!1)},T);return()=>clearInterval(w)});function h(T){N(c,Math.max(0,Math.min(d(f).length-1,d(c)+T)),!0)}function y(){N(c,0),N(v,!1)}async function b(T){const w=T.target.files[0];if(w){N(o,null),N(s,`parsing ${w.name}…`);try{const k=await w.arrayBuffer(),R=new Uint8Array(k),F=l(R);let P,H;if(F==="star"){const A=ha(k);P=A.records,H=`STAR header CID digest: ${A.headerCidHex}`}else{const A=Ga(k);P=A.records,H=`CAR commit CID: ${A.commitCidString} · MST root: ${A.dataCidString} · ${A.blockCount} blocks`}N(s,`${F.toUpperCase()}: computing layers for ${P.length} keys…`);const Se=await el(P.map(A=>A.key)),se=P.map((A,z)=>({key:A.key,layer:Se[z]}));N(i,{label:w.name,dataset:se,headerLabel:H,sourceFormat:F},!0),N(n,"custom");const q=Se.reduce((A,z)=>(A[z]=(A[z]??0)+1,A),{}),U=Object.keys(q).sort((A,z)=>+A-+z).map(A=>`L${A}:${q[A]}`).join(" ");N(s,`loaded ${w.name} (${F.toUpperCase()}) — ${se.length} keys (${U})`)}catch(k){console.error(k),N(o,`failed to load ${w.name}: ${k.message}`),N(s,null)}finally{T.target.value=""}}}let g=K(()=>[...Object.keys(cn).map(T=>({value:T,label:`${T} (${cn[T].length})`})),...d(i)?[{value:"custom",label:`${d(i).label} (${d(i).dataset.length})`}]:[]]);var m=ml(),S=L(m),B=O(L(S),2),X=O(L(B)),Ne=L(X),te=O(X,2),ie=L(te),Z=O(te),Pe=O(S,2),Le=L(Pe);bt(Le,17,()=>d(g),Ht,(T,w)=>{var k=_l(),R=L(k),F,P=O(R);ee(()=>{F!==(F=d(w).value)&&(R.value=(R.__value=d(w).value)??""),de(P,` ${d(w).label??""}`)}),ea(r,[],R,()=>(d(w).value,d(n)),H=>N(n,H)),V(T,k)});var He=O(Le,4),Sr=L(He),sr=O(Pe,2);{var or=T=>{var w=yl(),k=L(w);ee(()=>de(k,d(o))),V(T,w)},ar=T=>{var w=gl(),k=L(w);ee(()=>de(k,d(s))),V(T,w)};ot(sr,T=>{d(o)?T(or):d(s)&&T(ar,1)})}var lr=O(sr,2);{var Ar=T=>{var w=wl(),k=L(w),R=L(k);ee(()=>de(R,d(i).headerLabel)),V(T,w)};ot(lr,T=>{d(n)==="custom"&&d(i)&&T(Ar)})}var fr=O(lr,2);hl(fr,{get snapshot(){return d(_)},get dataset(){return d(a)},get cursorIndex(){return d(_).cursor}});var pt=O(fr,2);pl(pt,{get total(){return d(f).length},onStep:h,onReset:y,get i(){return d(c)},set i(T){N(c,T,!0)},get playing(){return d(v)},set playing(T){N(v,T,!0)},get speed(){return d(p)},set speed(T){N(p,T,!0)}}),ee(T=>{de(Ne,`${d(c)+1} / ${d(f).length??""}`),de(ie,d(_).event.type),de(Z,` · 9 + ${T??""}`)},[()=>aa(d(_).event)]),ur("change",Sr,b),V(e,m),Gr()}ns(["change"]);Ko(bl,{target:document.getElementById("app")});
+1 -1
star-lite/viz/dist/index.html
··· 4 4 <meta charset="UTF-8" /> 5 5 <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 6 6 <title>STAR-lite verification viz</title> 7 - <script type="module" crossorigin src="/assets/index-DAzQMesO.js"></script> 7 + <script type="module" crossorigin src="/assets/index-gGLyeoh4.js"></script> 8 8 <link rel="stylesheet" crossorigin href="/assets/index-B_cDv0fH.css"> 9 9 </head> 10 10 <body>
+58
star-lite/viz/package-lock.json
··· 7 7 "": { 8 8 "name": "star-lite-viz", 9 9 "version": "0.0.0", 10 + "dependencies": { 11 + "@atcute/car": "^5.1.1", 12 + "@atcute/cbor": "^2.3.2" 13 + }, 10 14 "devDependencies": { 11 15 "@sveltejs/vite-plugin-svelte": "^5.0.0", 12 16 "svelte": "^5.0.0", 13 17 "vite": "^6.0.0" 14 18 } 19 + }, 20 + "node_modules/@atcute/car": { 21 + "version": "5.1.1", 22 + "resolved": "https://registry.npmjs.org/@atcute/car/-/car-5.1.1.tgz", 23 + "integrity": "sha512-MeRUJNXYgAHrJZw7mMoZJb9xIqv3LZLQw90rRRAVAo8SGNdICwyqe6Bf2LGesX73QM04MBuYO6Kqhvold3TFfg==", 24 + "license": "0BSD", 25 + "dependencies": { 26 + "@atcute/cbor": "^2.3.2", 27 + "@atcute/cid": "^2.4.1", 28 + "@atcute/uint8array": "^1.1.1", 29 + "@atcute/varint": "^2.0.0" 30 + } 31 + }, 32 + "node_modules/@atcute/cbor": { 33 + "version": "2.3.2", 34 + "resolved": "https://registry.npmjs.org/@atcute/cbor/-/cbor-2.3.2.tgz", 35 + "integrity": "sha512-xP2SORSau/VVI00x2V4BjwIkHr6EQ7l/MXEOPaa4LGYtePFc4gnD4L1yN10dT5NEuUnvGEuCh6arLB7gz1smVQ==", 36 + "license": "0BSD", 37 + "dependencies": { 38 + "@atcute/cid": "^2.4.1", 39 + "@atcute/multibase": "^1.1.8", 40 + "@atcute/uint8array": "^1.1.1" 41 + } 42 + }, 43 + "node_modules/@atcute/cid": { 44 + "version": "2.4.1", 45 + "resolved": "https://registry.npmjs.org/@atcute/cid/-/cid-2.4.1.tgz", 46 + "integrity": "sha512-bwhna69RCv7yetXudtj+2qrMPYvhhIQqvJz6YUpUS98v7OdF3X2dnye9Nig2NDrklZcuyOsu7sQo7GOykJXRLQ==", 47 + "license": "0BSD", 48 + "dependencies": { 49 + "@atcute/multibase": "^1.1.8", 50 + "@atcute/uint8array": "^1.1.1" 51 + } 52 + }, 53 + "node_modules/@atcute/multibase": { 54 + "version": "1.2.0", 55 + "resolved": "https://registry.npmjs.org/@atcute/multibase/-/multibase-1.2.0.tgz", 56 + "integrity": "sha512-ZK2GRra+qIYq9nNuQB52m2ul0hOmCQEtPobGfTSUxm7pF0OGEkWGkWHugFhNEDVzHzTwPxHp6VGotdZFue4lYQ==", 57 + "license": "0BSD", 58 + "dependencies": { 59 + "@atcute/uint8array": "^1.1.1" 60 + } 61 + }, 62 + "node_modules/@atcute/uint8array": { 63 + "version": "1.1.1", 64 + "resolved": "https://registry.npmjs.org/@atcute/uint8array/-/uint8array-1.1.1.tgz", 65 + "integrity": "sha512-3LsC8XB8TKe9q/5hOA5sFuzGaIFdJZJNewC5OKa3o/eU6+K7JR6see9Zy2JbQERNVnRl11EzbNov1efgLMAs4g==", 66 + "license": "0BSD" 67 + }, 68 + "node_modules/@atcute/varint": { 69 + "version": "2.0.0", 70 + "resolved": "https://registry.npmjs.org/@atcute/varint/-/varint-2.0.0.tgz", 71 + "integrity": "sha512-CEY/oVK/nVpL4e5y3sdenLETDL6/Xu5xsE/0TupK+f0Yv8jcD60t2gD8SHROWSvUwYLdkjczLCSA7YrtnjCzWw==", 72 + "license": "0BSD" 15 73 }, 16 74 "node_modules/@esbuild/aix-ppc64": { 17 75 "version": "0.25.12",
+4
star-lite/viz/package.json
··· 12 12 "@sveltejs/vite-plugin-svelte": "^5.0.0", 13 13 "svelte": "^5.0.0", 14 14 "vite": "^6.0.0" 15 + }, 16 + "dependencies": { 17 + "@atcute/car": "^5.1.1", 18 + "@atcute/cbor": "^2.3.2" 15 19 } 16 20 }
+31 -10
star-lite/viz/src/App.svelte
··· 2 2 import { computeSnapshots, describeEvent } from './lib/algorithm.js'; 3 3 import { demos } from './lib/dataset.js'; 4 4 import { parseStarLite } from './lib/star.js'; 5 + import { parseCar } from './lib/car.js'; 5 6 import { computeMstLayers } from './lib/mst.js'; 6 7 import Viz from './components/Viz.svelte'; 7 8 import Controls from './components/Controls.svelte'; 8 9 9 10 let datasetName = $state('small'); 10 - let customDataset = $state(null); // { label, dataset, headerCidHex } | null 11 + let customDataset = $state(null); // { label, dataset, headerLabel, sourceFormat } | null 11 12 let loadingMessage = $state(null); 12 13 let loadingError = $state(null); 14 + 15 + function detectFormat(bytes) { 16 + if (bytes.length >= 3 && bytes[0] === 0x2a && bytes[1] === 0x6c && bytes[2] === 0x00) { 17 + return 'star'; 18 + } 19 + return 'car'; 20 + } 13 21 14 22 let dataset = $derived( 15 23 datasetName === 'custom' && customDataset ? customDataset.dataset : demos[datasetName], ··· 58 66 loadingMessage = `parsing ${file.name}…`; 59 67 try { 60 68 const buf = await file.arrayBuffer(); 61 - const parsed = parseStarLite(buf); 62 - loadingMessage = `computing layers for ${parsed.records.length} keys…`; 63 - const layers = await computeMstLayers(parsed.records.map((r) => r.key)); 64 - const dataset = parsed.records.map((r, idx) => ({ key: r.key, layer: layers[idx] })); 69 + const bytes = new Uint8Array(buf); 70 + const format = detectFormat(bytes); 71 + let records; 72 + let headerLabel; 73 + if (format === 'star') { 74 + const parsed = parseStarLite(buf); 75 + records = parsed.records; 76 + headerLabel = `STAR header CID digest: ${parsed.headerCidHex}`; 77 + } else { 78 + const parsed = parseCar(buf); 79 + records = parsed.records; 80 + headerLabel = `CAR commit CID: ${parsed.commitCidString} · MST root: ${parsed.dataCidString} · ${parsed.blockCount} blocks`; 81 + } 82 + loadingMessage = `${format.toUpperCase()}: computing layers for ${records.length} keys…`; 83 + const layers = await computeMstLayers(records.map((r) => r.key)); 84 + const dataset = records.map((r, idx) => ({ key: r.key, layer: layers[idx] })); 65 85 customDataset = { 66 86 label: file.name, 67 87 dataset, 68 - headerCidHex: parsed.headerCidHex, 88 + headerLabel, 89 + sourceFormat: format, 69 90 }; 70 91 datasetName = 'custom'; 71 92 const layerHisto = layers.reduce((m, L) => ((m[L] = (m[L] ?? 0) + 1), m), {}); ··· 73 94 .sort((a, b) => +a - +b) 74 95 .map((L) => `L${L}:${layerHisto[L]}`) 75 96 .join(' '); 76 - loadingMessage = `loaded ${file.name} — ${dataset.length} keys (${histoStr})`; 97 + loadingMessage = `loaded ${file.name} (${format.toUpperCase()}) — ${dataset.length} keys (${histoStr})`; 77 98 } catch (err) { 78 99 console.error(err); 79 100 loadingError = `failed to load ${file.name}: ${err.message}`; ··· 113 134 {/each} 114 135 <span class="spacer"></span> 115 136 <label class="file-button"> 116 - <input type="file" accept=".star,application/octet-stream" onchange={onFileSelected} hidden /> 117 - load .star file… 137 + <input type="file" accept=".star,.car,application/octet-stream" onchange={onFileSelected} hidden /> 138 + load .star or .car file… 118 139 </label> 119 140 </div> 120 141 ··· 125 146 {/if} 126 147 127 148 {#if datasetName === 'custom' && customDataset} 128 - <p class="msg muted">header CID digest: <code>{customDataset.headerCidHex}</code></p> 149 + <p class="msg muted"><code>{customDataset.headerLabel}</code></p> 129 150 {/if} 130 151 131 152 <Viz snapshot={snap} {dataset} cursorIndex={snap.cursor} />
+105
star-lite/viz/src/lib/car.js
··· 1 + // CAR file parser for atproto repos. Walks the MST starting from the commit's 2 + // `data` link, yielding (key, recordSize) pairs in lex-key order (= depth-first 3 + // preorder MST walk). We don't verify CIDs or signatures — the user has opted 4 + // out of real CID computation, and this is just to feed the viz. 5 + 6 + import { fromUint8Array as carFromUint8Array } from '@atcute/car'; 7 + import { decode as decodeCbor, fromBytes } from '@atcute/cbor'; 8 + import { toString as cidToString } from '@atcute/cid'; 9 + 10 + const utf8 = new TextDecoder('utf-8', { fatal: true }); 11 + const enc = new TextEncoder(); 12 + 13 + function cidStr(linkOrCid) { 14 + if (linkOrCid && typeof linkOrCid.$link === 'string') return linkOrCid.$link; 15 + if (linkOrCid && linkOrCid.bytes) return cidToString(linkOrCid); 16 + throw new Error('expected CidLink or Cid'); 17 + } 18 + 19 + function bytesOf(wrapper) { 20 + if (wrapper && wrapper.buf instanceof Uint8Array) return wrapper.buf; 21 + return fromBytes(wrapper); 22 + } 23 + 24 + export function parseCar(buffer) { 25 + const bytes = new Uint8Array(buffer); 26 + const reader = carFromUint8Array(bytes); 27 + 28 + const blocks = new Map(); // base32 CID string → block bytes 29 + for (const entry of reader) { 30 + blocks.set(cidToString(entry.cid), entry.bytes); 31 + } 32 + 33 + if (!reader.roots.length) throw new Error('CAR has no root CIDs'); 34 + const commitCidStr = cidStr(reader.roots[0]); 35 + const commitBytes = blocks.get(commitCidStr); 36 + if (!commitBytes) throw new Error(`commit block not in CAR: ${commitCidStr}`); 37 + 38 + let commit; 39 + try { 40 + commit = decodeCbor(commitBytes); 41 + } catch (e) { 42 + throw new Error(`commit block is not valid DAG-CBOR: ${e.message}`); 43 + } 44 + if (!commit.data || typeof commit.data.$link !== 'string') { 45 + throw new Error('commit has no `data` CidLink to MST root'); 46 + } 47 + const dataCidStr = commit.data.$link; 48 + 49 + const records = []; 50 + let prevKey = ''; 51 + let prevKeyBytes = new Uint8Array(0); 52 + 53 + function walk(linkCid) { 54 + const cidString = cidStr(linkCid); 55 + const block = blocks.get(cidString); 56 + if (!block) throw new Error(`MST block not in CAR: ${cidString}`); 57 + let node; 58 + try { 59 + node = decodeCbor(block); 60 + } catch (e) { 61 + throw new Error(`MST node ${cidString} is not valid DAG-CBOR: ${e.message}`); 62 + } 63 + if (!Array.isArray(node.e)) { 64 + throw new Error(`MST node ${cidString} has no entries array`); 65 + } 66 + if (node.l) walk(node.l); 67 + for (const entry of node.e) { 68 + if (typeof entry.p !== 'number') throw new Error('MST entry missing prefix length'); 69 + const suffix = bytesOf(entry.k); 70 + const fullBytes = new Uint8Array(entry.p + suffix.length); 71 + fullBytes.set(prevKeyBytes.slice(0, entry.p), 0); 72 + fullBytes.set(suffix, entry.p); 73 + const key = utf8.decode(fullBytes); 74 + 75 + let recordSize = 0; 76 + if (entry.v && entry.v.$link) { 77 + const valueBytes = blocks.get(entry.v.$link); 78 + if (valueBytes) recordSize = valueBytes.length; 79 + } 80 + records.push({ key, recordSize }); 81 + 82 + prevKey = key; 83 + prevKeyBytes = fullBytes; 84 + if (entry.t) walk(entry.t); 85 + } 86 + } 87 + 88 + walk(commit.data); 89 + 90 + // sanity: keys must come out in strict lex order if the MST is well-formed 91 + for (let i = 1; i < records.length; i++) { 92 + if (records[i].key <= records[i - 1].key) { 93 + throw new Error( 94 + `CAR walk produced out-of-order keys at ${i}: "${records[i - 1].key}" then "${records[i].key}" — likely malformed MST`, 95 + ); 96 + } 97 + } 98 + 99 + return { 100 + records, 101 + commitCidString: commitCidStr, 102 + dataCidString: dataCidStr, 103 + blockCount: blocks.size, 104 + }; 105 + }