From 89a2fca7fd75c41ca6e4f27cd41cc85b139ba5e1 Mon Sep 17 00:00:00 2001 From: Ryan Gregg Date: Wed, 4 Feb 2026 21:24:43 -0800 Subject: [PATCH 1/3] Adjust how app dispalys as PWA to enable safe areas --- frontend/src/App.tsx | 2 +- frontend/src/styles.css | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 591fa076..2fb894de 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -758,7 +758,7 @@ export function App() { ); return ( -
+
Date: Wed, 4 Feb 2026 21:45:30 -0800 Subject: [PATCH 2/3] Fix for running as PWA --- ...-CmNe1fPT.js => BotCodeEditor-CIATUaxJ.js} | 4 +- ...T.js.map => BotCodeEditor-CIATUaxJ.js.map} | 2 +- frontend/dist/assets/index-1pMxV5ey.css | 1 + .../{index-AkYO4-QT.js => index-BOnoMNpm.js} | 6 +- ...-AkYO4-QT.js.map => index-BOnoMNpm.js.map} | 2 +- frontend/dist/assets/index-DJA5wYVF.css | 1 - frontend/dist/index.html | 4 +- frontend/package-lock.json | 1513 ++++++++++++++++- 8 files changed, 1521 insertions(+), 12 deletions(-) rename frontend/dist/assets/{BotCodeEditor-CmNe1fPT.js => BotCodeEditor-CIATUaxJ.js} (99%) rename frontend/dist/assets/{BotCodeEditor-CmNe1fPT.js.map => BotCodeEditor-CIATUaxJ.js.map} (99%) create mode 100644 frontend/dist/assets/index-1pMxV5ey.css rename frontend/dist/assets/{index-AkYO4-QT.js => index-BOnoMNpm.js} (99%) rename frontend/dist/assets/{index-AkYO4-QT.js.map => index-BOnoMNpm.js.map} (99%) delete mode 100644 frontend/dist/assets/index-DJA5wYVF.css diff --git a/frontend/dist/assets/BotCodeEditor-CmNe1fPT.js b/frontend/dist/assets/BotCodeEditor-CIATUaxJ.js similarity index 99% rename from frontend/dist/assets/BotCodeEditor-CmNe1fPT.js rename to frontend/dist/assets/BotCodeEditor-CIATUaxJ.js index 54030c7b..20c7f51f 100644 --- a/frontend/dist/assets/BotCodeEditor-CmNe1fPT.js +++ b/frontend/dist/assets/BotCodeEditor-CIATUaxJ.js @@ -1,4 +1,4 @@ -import{r as be,j as vr}from"./index-AkYO4-QT.js";function wr(){return wr=Object.assign?Object.assign.bind():function(n){for(var e=1;e{let n="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(e=>e?parseInt(e,36):1);for(let e=0,t=0;e>1;if(n=dh[i])e=i+1;else return!0;if(e==t)return!1}}function hl(n){return n>=127462&&n<=127487}const cl=8205;function Qu(n,e,t=!0,i=!0){return(t?ph:Au)(n,e,i)}function ph(n,e,t){if(e==n.length)return e;e&&mh(n.charCodeAt(e))&&gh(n.charCodeAt(e-1))&&e--;let i=Ls(n,e);for(e+=fl(i);e=0&&hl(Ls(n,o));)r++,o-=2;if(r%2==0)break;e+=2}else break}return e}function Au(n,e,t){for(;e>0;){let i=ph(n,e-2,t);if(i=56320&&n<57344}function gh(n){return n>=55296&&n<56320}function fl(n){return n<65536?1:2}class V{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,i){[e,t]=oi(this,e,t);let s=[];return this.decompose(0,e,s,2),i.length&&i.decompose(0,i.length,s,3),this.decompose(t,this.length,s,1),Ye.from(s,this.length-(t-e)+i.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){[e,t]=oi(this,e,t);let i=[];return this.decompose(e,t,i,0),Ye.from(i,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),i=this.length-this.scanIdentical(e,-1),s=new Qi(this),r=new Qi(e);for(let o=t,l=t;;){if(s.next(o),r.next(o),o=0,s.lineBreak!=r.lineBreak||s.done!=r.done||s.value!=r.value)return!1;if(l+=s.value.length,s.done||l>=i)return!0}}iter(e=1){return new Qi(this,e)}iterRange(e,t=this.length){return new Oh(this,e,t)}iterLines(e,t){let i;if(e==null)i=this.iter();else{t==null&&(t=this.lines+1);let s=this.line(e).from;i=this.iterRange(s,Math.max(s,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new yh(i)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?V.empty:e.length<=32?new Y(e):Ye.from(Y.split(e,[]))}}class Y extends V{constructor(e,t=Pu(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,i,s){for(let r=0;;r++){let o=this.text[r],l=s+o.length;if((t?i:l)>=e)return new Mu(s,l,i,o);s=l+1,i++}}decompose(e,t,i,s){let r=e<=0&&t>=this.length?this:new Y(ul(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(s&1){let o=i.pop(),l=$n(r.text,o.text.slice(),0,r.length);if(l.length<=32)i.push(new Y(l,o.length+r.length));else{let a=l.length>>1;i.push(new Y(l.slice(0,a)),new Y(l.slice(a)))}}else i.push(r)}replace(e,t,i){if(!(i instanceof Y))return super.replace(e,t,i);[e,t]=oi(this,e,t);let s=$n(this.text,$n(i.text,ul(this.text,0,e)),t),r=this.length+i.length-(t-e);return s.length<=32?new Y(s,r):Ye.from(Y.split(s,[]),r)}sliceString(e,t=this.length,i=` +import{r as be,j as vr}from"./index-BOnoMNpm.js";function wr(){return wr=Object.assign?Object.assign.bind():function(n){for(var e=1;e{let n="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(e=>e?parseInt(e,36):1);for(let e=0,t=0;e>1;if(n=dh[i])e=i+1;else return!0;if(e==t)return!1}}function hl(n){return n>=127462&&n<=127487}const cl=8205;function Qu(n,e,t=!0,i=!0){return(t?ph:Au)(n,e,i)}function ph(n,e,t){if(e==n.length)return e;e&&mh(n.charCodeAt(e))&&gh(n.charCodeAt(e-1))&&e--;let i=Ls(n,e);for(e+=fl(i);e=0&&hl(Ls(n,o));)r++,o-=2;if(r%2==0)break;e+=2}else break}return e}function Au(n,e,t){for(;e>0;){let i=ph(n,e-2,t);if(i=56320&&n<57344}function gh(n){return n>=55296&&n<56320}function fl(n){return n<65536?1:2}class V{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,i){[e,t]=oi(this,e,t);let s=[];return this.decompose(0,e,s,2),i.length&&i.decompose(0,i.length,s,3),this.decompose(t,this.length,s,1),Ye.from(s,this.length-(t-e)+i.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){[e,t]=oi(this,e,t);let i=[];return this.decompose(e,t,i,0),Ye.from(i,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),i=this.length-this.scanIdentical(e,-1),s=new Qi(this),r=new Qi(e);for(let o=t,l=t;;){if(s.next(o),r.next(o),o=0,s.lineBreak!=r.lineBreak||s.done!=r.done||s.value!=r.value)return!1;if(l+=s.value.length,s.done||l>=i)return!0}}iter(e=1){return new Qi(this,e)}iterRange(e,t=this.length){return new Oh(this,e,t)}iterLines(e,t){let i;if(e==null)i=this.iter();else{t==null&&(t=this.lines+1);let s=this.line(e).from;i=this.iterRange(s,Math.max(s,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new yh(i)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?V.empty:e.length<=32?new Y(e):Ye.from(Y.split(e,[]))}}class Y extends V{constructor(e,t=Pu(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,i,s){for(let r=0;;r++){let o=this.text[r],l=s+o.length;if((t?i:l)>=e)return new Mu(s,l,i,o);s=l+1,i++}}decompose(e,t,i,s){let r=e<=0&&t>=this.length?this:new Y(ul(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(s&1){let o=i.pop(),l=$n(r.text,o.text.slice(),0,r.length);if(l.length<=32)i.push(new Y(l,o.length+r.length));else{let a=l.length>>1;i.push(new Y(l.slice(0,a)),new Y(l.slice(a)))}}else i.push(r)}replace(e,t,i){if(!(i instanceof Y))return super.replace(e,t,i);[e,t]=oi(this,e,t);let s=$n(this.text,$n(i.text,ul(this.text,0,e)),t),r=this.length+i.length-(t-e);return s.length<=32?new Y(s,r):Ye.from(Y.split(s,[]),r)}sliceString(e,t=this.length,i=` `){[e,t]=oi(this,e,t);let s="";for(let r=0,o=0;r<=t&&oe&&o&&(s+=i),er&&(s+=l.slice(Math.max(0,e-r),t-r)),r=a+1}return s}flatten(e){for(let t of this.text)e.push(t)}scanIdentical(){return 0}static split(e,t){let i=[],s=-1;for(let r of e)i.push(r),s+=r.length+1,i.length==32&&(t.push(new Y(i,s)),i=[],s=-1);return s>-1&&t.push(new Y(i,s)),t}}class Ye extends V{constructor(e,t){super(),this.children=e,this.length=t,this.lines=0;for(let i of e)this.lines+=i.lines}lineInner(e,t,i,s){for(let r=0;;r++){let o=this.children[r],l=s+o.length,a=i+o.lines-1;if((t?a:l)>=e)return o.lineInner(e,t,i,s);s=l+1,i=a+1}}decompose(e,t,i,s){for(let r=0,o=0;o<=t&&r=o){let h=s&((o<=e?1:0)|(a>=t?2:0));o>=e&&a<=t&&!h?i.push(l):l.decompose(e-o,t-o,i,h)}o=a+1}}replace(e,t,i){if([e,t]=oi(this,e,t),i.lines=r&&t<=l){let a=o.replace(e-r,t-r,i),h=this.lines-o.lines+a.lines;if(a.lines>4&&a.lines>h>>6){let c=this.children.slice();return c[s]=a,new Ye(c,this.length-(t-e)+i.length)}return super.replace(r,l,a)}r=l+1}return super.replace(e,t,i)}sliceString(e,t=this.length,i=` `){[e,t]=oi(this,e,t);let s="";for(let r=0,o=0;re&&r&&(s+=i),eo&&(s+=l.sliceString(e-o,t-o,i)),o=a+1}return s}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof Ye))return 0;let i=0,[s,r,o,l]=t>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;s+=t,r+=t){if(s==o||r==l)return i;let a=this.children[s],h=e.children[r];if(a!=h)return i+a.scanIdentical(h,t);i+=a.length+1}}static from(e,t=e.reduce((i,s)=>i+s.length+1,-1)){let i=0;for(let d of e)i+=d.lines;if(i<32){let d=[];for(let p of e)p.flatten(d);return new Y(d,t)}let s=Math.max(32,i>>5),r=s<<1,o=s>>1,l=[],a=0,h=-1,c=[];function f(d){let p;if(d.lines>r&&d instanceof Ye)for(let m of d.children)f(m);else d.lines>o&&(a>o||!a)?(u(),l.push(d)):d instanceof Y&&a&&(p=c[c.length-1])instanceof Y&&d.lines+p.lines<=32?(a+=d.lines,h+=d.length+1,c[c.length-1]=new Y(p.text.concat(d.text),p.length+1+d.length)):(a+d.lines>s&&u(),a+=d.lines,h+=d.length+1,c.push(d))}function u(){a!=0&&(l.push(c.length==1?c[0]:Ye.from(c,h)),h=-1,a=c.length=0)}for(let d of e)f(d);return u(),l.length==1?l[0]:new Ye(l,t)}}V.empty=new Y([""],0);function Pu(n){let e=-1;for(let t of n)e+=t.length+1;return e}function $n(n,e,t=0,i=1e9){for(let s=0,r=0,o=!0;r=t&&(a>i&&(l=l.slice(0,i-s)),s0?1:(e instanceof Y?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let i=this.nodes.length-1,s=this.nodes[i],r=this.offsets[i],o=r>>1,l=s instanceof Y?s.text.length:s.children.length;if(o==(t>0?l:0)){if(i==0)return this.done=!0,this.value="",this;t>0&&this.offsets[i-1]++,this.nodes.pop(),this.offsets.pop()}else if((r&1)==(t>0?0:1)){if(this.offsets[i]+=t,e==0)return this.lineBreak=!0,this.value=` `,this;e--}else if(s instanceof Y){let a=s.text[o+(t<0?-1:0)];if(this.offsets[i]+=t,a.length>Math.max(0,e))return this.value=e==0?a:t>0?a.slice(e):a.slice(0,a.length-e),this;e-=a.length}else{let a=s.children[o+(t<0?-1:0)];e>a.length?(e-=a.length,this.offsets[i]+=t):(t<0&&this.offsets[i]--,this.nodes.push(a),this.offsets.push(t>0?1:(a instanceof Y?a.text.length:a.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}}class Oh{constructor(e,t,i){this.value="",this.done=!1,this.cursor=new Qi(e,t>i?-1:1),this.pos=t>i?e.length:0,this.from=Math.min(t,i),this.to=Math.max(t,i)}nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,t<0?this.pos-this.to:this.from-this.pos);let i=t<0?this.pos-this.from:this.to-this.pos;e>i&&(e=i),i-=e;let{value:s}=this.cursor.next(e);return this.pos+=(s.length+e)*t,this.value=s.length<=i?s:t<0?s.slice(s.length-i):s.slice(0,i),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}}class yh{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:i,value:s}=this.inner.next(e);return t&&this.afterBreak?(this.value="",this.afterBreak=!1):t?(this.done=!0,this.value=""):i?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=s,this.afterBreak=!1),this}get lineBreak(){return!1}}typeof Symbol<"u"&&(V.prototype[Symbol.iterator]=function(){return this.iter()},Qi.prototype[Symbol.iterator]=Oh.prototype[Symbol.iterator]=yh.prototype[Symbol.iterator]=function(){return this});class Mu{constructor(e,t,i,s){this.from=e,this.to=t,this.number=i,this.text=s}get length(){return this.to-this.from}}function oi(n,e,t){return e=Math.max(0,Math.min(n.length,e)),[e,Math.max(e,Math.min(n.length,t))]}function re(n,e,t=!0,i=!0){return Qu(n,e,t,i)}function Ru(n){return n>=56320&&n<57344}function Eu(n){return n>=55296&&n<56320}function ke(n,e){let t=n.charCodeAt(e);if(!Eu(t)||e+1==n.length)return t;let i=n.charCodeAt(e+1);return Ru(i)?(t-55296<<10)+(i-56320)+65536:t}function xo(n){return n<=65535?String.fromCharCode(n):(n-=65536,String.fromCharCode((n>>10)+55296,(n&1023)+56320))}function Ke(n){return n<65536?1:2}const Cr=/\r\n?|\n/;var de=(function(n){return n[n.Simple=0]="Simple",n[n.TrackDel=1]="TrackDel",n[n.TrackBefore=2]="TrackBefore",n[n.TrackAfter=3]="TrackAfter",n})(de||(de={}));class nt{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;te)return r+(e-s);r+=l}else{if(i!=de.Simple&&h>=e&&(i==de.TrackDel&&se||i==de.TrackBefore&&se))return null;if(h>e||h==e&&t<0&&!l)return e==s||t<0?r:r+a;r+=a}s=h}if(e>s)throw new RangeError(`Position ${e} is out of range for changeset of length ${s}`);return r}touchesRange(e,t=e){for(let i=0,s=0;i=0&&s<=t&&l>=e)return st?"cover":!0;s=l}return!1}toString(){let e="";for(let t=0;t=0?":"+s:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(t=>typeof t!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new nt(e)}static create(e){return new nt(e)}}class se extends nt{constructor(e,t){super(e),this.inserted=t}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return Qr(this,(t,i,s,r,o)=>e=e.replace(s,s+(i-t),o),!1),e}mapDesc(e,t=!1){return Ar(this,e,t,!0)}invert(e){let t=this.sections.slice(),i=[];for(let s=0,r=0;s=0){t[s]=l,t[s+1]=o;let a=s>>1;for(;i.length0&&xt(i,t,r.text),r.forward(c),l+=c}let h=e[o++];for(;l>1].toJSON()))}return e}static of(e,t,i){let s=[],r=[],o=0,l=null;function a(c=!1){if(!c&&!s.length)return;ou||f<0||u>t)throw new RangeError(`Invalid change range ${f} to ${u} (in doc of length ${t})`);let p=d?typeof d=="string"?V.of(d.split(i||Cr)):d:V.empty,m=p.length;if(f==u&&m==0)return;fo&&Oe(s,f-o,-1),Oe(s,u-f,m),xt(r,s,p),o=u}}return h(e),a(!l),l}static empty(e){return new se(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let t=[],i=[];for(let s=0;sl&&typeof o!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(r.length==1)t.push(r[0],0);else{for(;i.length=0&&t<=0&&t==n[s+1]?n[s]+=e:s>=0&&e==0&&n[s]==0?n[s+1]+=t:i?(n[s]+=e,n[s+1]+=t):n.push(e,t)}function xt(n,e,t){if(t.length==0)return;let i=e.length-2>>1;if(i>1])),!(t||o==n.sections.length||n.sections[o+1]<0);)l=n.sections[o++],a=n.sections[o++];e(s,h,r,c,f),s=h,r=c}}}function Ar(n,e,t,i=!1){let s=[],r=i?[]:null,o=new Wi(n),l=new Wi(e);for(let a=-1;;){if(o.done&&l.len||l.done&&o.len)throw new Error("Mismatched change set lengths");if(o.ins==-1&&l.ins==-1){let h=Math.min(o.len,l.len);Oe(s,h,-1),o.forward(h),l.forward(h)}else if(l.ins>=0&&(o.ins<0||a==o.i||o.off==0&&(l.len=0&&a=0){let h=0,c=o.len;for(;c;)if(l.ins==-1){let f=Math.min(c,l.len);h+=f,c-=f,l.forward(f)}else if(l.ins==0&&l.lena||o.ins>=0&&o.len>a)&&(l||i.length>h),r.forward2(a),o.forward(a)}}}}class Wi{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i>1;return t>=e.length?V.empty:e[t]}textBit(e){let{inserted:t}=this.set,i=this.i-2>>1;return i>=t.length&&!e?V.empty:t[i].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}}class Bt{constructor(e,t,i){this.from=e,this.to=t,this.flags=i}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get bidiLevel(){let e=this.flags&7;return e==7?null:e}get goalColumn(){let e=this.flags>>6;return e==16777215?void 0:e}map(e,t=-1){let i,s;return this.empty?i=s=e.mapPos(this.from,t):(i=e.mapPos(this.from,1),s=e.mapPos(this.to,-1)),i==this.from&&s==this.to?this:new Bt(i,s,this.flags)}extend(e,t=e){if(e<=this.anchor&&t>=this.anchor)return b.range(e,t);let i=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return b.range(this.anchor,i)}eq(e,t=!1){return this.anchor==e.anchor&&this.head==e.head&&this.goalColumn==e.goalColumn&&(!t||!this.empty||this.assoc==e.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return b.range(e.anchor,e.head)}static create(e,t,i){return new Bt(e,t,i)}}class b{constructor(e,t){this.ranges=e,this.mainIndex=t}map(e,t=-1){return e.empty?this:b.create(this.ranges.map(i=>i.map(e,t)),this.mainIndex)}eq(e,t=!1){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let i=0;ie.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new b(e.ranges.map(t=>Bt.fromJSON(t)),e.main)}static single(e,t=e){return new b([b.range(e,t)],0)}static create(e,t=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let i=0,s=0;se?8:0)|r)}static normalized(e,t=0){let i=e[t];e.sort((s,r)=>s.from-r.from),t=e.indexOf(i);for(let s=1;sr.head?b.range(a,l):b.range(l,a))}}return new b(e,t)}}function xh(n,e){for(let t of n.ranges)if(t.to>e)throw new RangeError("Selection points outside of document")}let So=0;class A{constructor(e,t,i,s,r){this.combine=e,this.compareInput=t,this.compare=i,this.isStatic=s,this.id=So++,this.default=e([]),this.extensions=typeof r=="function"?r(this):r}get reader(){return this}static define(e={}){return new A(e.combine||(t=>t),e.compareInput||((t,i)=>t===i),e.compare||(e.combine?(t,i)=>t===i:ko),!!e.static,e.enables)}of(e){return new Ln([],this,0,e)}compute(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new Ln(e,this,1,t)}computeN(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new Ln(e,this,2,t)}from(e,t){return t||(t=i=>i),this.compute([e],i=>t(i.field(e)))}}function ko(n,e){return n==e||n.length==e.length&&n.every((t,i)=>t===e[i])}class Ln{constructor(e,t,i,s){this.dependencies=e,this.facet=t,this.type=i,this.value=s,this.id=So++}dynamicSlot(e){var t;let i=this.value,s=this.facet.compareInput,r=this.id,o=e[r]>>1,l=this.type==2,a=!1,h=!1,c=[];for(let f of this.dependencies)f=="doc"?a=!0:f=="selection"?h=!0:(((t=e[f.id])!==null&&t!==void 0?t:1)&1)==0&&c.push(e[f.id]);return{create(f){return f.values[o]=i(f),1},update(f,u){if(a&&u.docChanged||h&&(u.docChanged||u.selection)||Pr(f,c)){let d=i(f);if(l?!dl(d,f.values[o],s):!s(d,f.values[o]))return f.values[o]=d,1}return 0},reconfigure:(f,u)=>{let d,p=u.config.address[r];if(p!=null){let m=Gn(u,p);if(this.dependencies.every(g=>g instanceof A?u.facet(g)===f.facet(g):g instanceof he?u.field(g,!1)==f.field(g,!1):!0)||(l?dl(d=i(f),m,s):s(d=i(f),m)))return f.values[o]=m,0}else d=i(f);return f.values[o]=d,1}}}}function dl(n,e,t){if(n.length!=e.length)return!1;for(let i=0;in[a.id]),s=t.map(a=>a.type),r=i.filter(a=>!(a&1)),o=n[e.id]>>1;function l(a){let h=[];for(let c=0;ci===s),e);return e.provide&&(t.provides=e.provide(t)),t}create(e){let t=e.facet(un).find(i=>i.field==this);return((t==null?void 0:t.create)||this.createF)(e)}slot(e){let t=e[this.id]>>1;return{create:i=>(i.values[t]=this.create(i),1),update:(i,s)=>{let r=i.values[t],o=this.updateF(r,s);return this.compareF(r,o)?0:(i.values[t]=o,1)},reconfigure:(i,s)=>{let r=i.facet(un),o=s.facet(un),l;return(l=r.find(a=>a.field==this))&&l!=o.find(a=>a.field==this)?(i.values[t]=l.create(i),1):s.config.address[this.id]!=null?(i.values[t]=s.field(this),0):(i.values[t]=this.create(i),1)}}}init(e){return[this,un.of({field:this,create:e})]}get extension(){return this}}const qt={lowest:4,low:3,default:2,high:1,highest:0};function yi(n){return e=>new Sh(e,n)}const Pt={highest:yi(qt.highest),high:yi(qt.high),default:yi(qt.default),low:yi(qt.low),lowest:yi(qt.lowest)};class Sh{constructor(e,t){this.inner=e,this.prec=t}}class ks{of(e){return new Mr(this,e)}reconfigure(e){return ks.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}}class Mr{constructor(e,t){this.compartment=e,this.inner=t}}class jn{constructor(e,t,i,s,r,o){for(this.base=e,this.compartments=t,this.dynamicSlots=i,this.address=s,this.staticValues=r,this.facets=o,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(e,t,i){let s=[],r=Object.create(null),o=new Map;for(let u of qu(e,t,o))u instanceof he?s.push(u):(r[u.facet.id]||(r[u.facet.id]=[])).push(u);let l=Object.create(null),a=[],h=[];for(let u of s)l[u.id]=h.length<<1,h.push(d=>u.slot(d));let c=i==null?void 0:i.config.facets;for(let u in r){let d=r[u],p=d[0].facet,m=c&&c[u]||[];if(d.every(g=>g.type==0))if(l[p.id]=a.length<<1|1,ko(m,d))a.push(i.facet(p));else{let g=p.combine(d.map(y=>y.value));a.push(i&&p.compare(g,i.facet(p))?i.facet(p):g)}else{for(let g of d)g.type==0?(l[g.id]=a.length<<1|1,a.push(g.value)):(l[g.id]=h.length<<1,h.push(y=>g.dynamicSlot(y)));l[p.id]=h.length<<1,h.push(g=>Du(g,p,d))}}let f=h.map(u=>u(l));return new jn(e,o,f,l,a,r)}}function qu(n,e,t){let i=[[],[],[],[],[]],s=new Map;function r(o,l){let a=s.get(o);if(a!=null){if(a<=l)return;let h=i[a].indexOf(o);h>-1&&i[a].splice(h,1),o instanceof Mr&&t.delete(o.compartment)}if(s.set(o,l),Array.isArray(o))for(let h of o)r(h,l);else if(o instanceof Mr){if(t.has(o.compartment))throw new RangeError("Duplicate use of compartment in extensions");let h=e.get(o.compartment)||o.inner;t.set(o.compartment,h),r(h,l)}else if(o instanceof Sh)r(o.inner,o.prec);else if(o instanceof he)i[l].push(o),o.provides&&r(o.provides,l);else if(o instanceof Ln)i[l].push(o),o.facet.extensions&&r(o.facet.extensions,qt.default);else{let h=o.extension;if(!h)throw new Error(`Unrecognized extension value in extension set (${o}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);r(h,l)}}return r(n,qt.default),i.reduce((o,l)=>o.concat(l))}function Ai(n,e){if(e&1)return 2;let t=e>>1,i=n.status[t];if(i==4)throw new Error("Cyclic dependency between fields and/or facets");if(i&2)return i;n.status[t]=4;let s=n.computeSlot(n,n.config.dynamicSlots[t]);return n.status[t]=2|s}function Gn(n,e){return e&1?n.config.staticValues[e>>1]:n.values[e>>1]}const kh=A.define(),Rr=A.define({combine:n=>n.some(e=>e),static:!0}),vh=A.define({combine:n=>n.length?n[0]:void 0,static:!0}),wh=A.define(),Th=A.define(),Ch=A.define(),Qh=A.define({combine:n=>n.length?n[0]:!1});class st{constructor(e,t){this.type=e,this.value=t}static define(){return new Wu}}class Wu{of(e){return new st(this,e)}}class Bu{constructor(e){this.map=e}of(e){return new D(this,e)}}class D{constructor(e,t){this.type=e,this.value=t}map(e){let t=this.type.map(this.value,e);return t===void 0?void 0:t==this.value?this:new D(this.type,t)}is(e){return this.type==e}static define(e={}){return new Bu(e.map||(t=>t))}static mapEffects(e,t){if(!e.length)return e;let i=[];for(let s of e){let r=s.map(t);r&&i.push(r)}return i}}D.reconfigure=D.define();D.appendConfig=D.define();class te{constructor(e,t,i,s,r,o){this.startState=e,this.changes=t,this.selection=i,this.effects=s,this.annotations=r,this.scrollIntoView=o,this._doc=null,this._state=null,i&&xh(i,t.newLength),r.some(l=>l.type==te.time)||(this.annotations=r.concat(te.time.of(Date.now())))}static create(e,t,i,s,r,o){return new te(e,t,i,s,r,o)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let t of this.annotations)if(t.type==e)return t.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let t=this.annotation(te.userEvent);return!!(t&&(t==e||t.length>e.length&&t.slice(0,e.length)==e&&t[e.length]=="."))}}te.time=st.define();te.userEvent=st.define();te.addToHistory=st.define();te.remote=st.define();function $u(n,e){let t=[];for(let i=0,s=0;;){let r,o;if(i=n[i]))r=n[i++],o=n[i++];else if(s=0;s--){let r=i[s](n);r instanceof te?n=r:Array.isArray(r)&&r.length==1&&r[0]instanceof te?n=r[0]:n=Ph(e,Jt(r),!1)}return n}function zu(n){let e=n.startState,t=e.facet(Ch),i=n;for(let s=t.length-1;s>=0;s--){let r=t[s](n);r&&Object.keys(r).length&&(i=Ah(i,Er(e,r,n.changes.newLength),!0))}return i==n?n:te.create(e,n.changes,n.selection,i.effects,i.annotations,i.scrollIntoView)}const Iu=[];function Jt(n){return n==null?Iu:Array.isArray(n)?n:[n]}var G=(function(n){return n[n.Word=0]="Word",n[n.Space=1]="Space",n[n.Other=2]="Other",n})(G||(G={}));const Nu=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let Dr;try{Dr=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function Vu(n){if(Dr)return Dr.test(n);for(let e=0;e"€"&&(t.toUpperCase()!=t.toLowerCase()||Nu.test(t)))return!0}return!1}function Xu(n){return e=>{if(!/\S/.test(e))return G.Space;if(Vu(e))return G.Word;for(let t=0;t-1)return G.Word;return G.Other}}class N{constructor(e,t,i,s,r,o){this.config=e,this.doc=t,this.selection=i,this.values=s,this.status=e.statusTemplate.slice(),this.computeSlot=r,o&&(o._state=this);for(let l=0;ls.set(h,a)),t=null),s.set(l.value.compartment,l.value.extension)):l.is(D.reconfigure)?(t=null,i=l.value):l.is(D.appendConfig)&&(t=null,i=Jt(i).concat(l.value));let r;t?r=e.startState.values.slice():(t=jn.resolve(i,s,this),r=new N(t,this.doc,this.selection,t.dynamicSlots.map(()=>null),(a,h)=>h.reconfigure(a,this),null).values);let o=e.startState.facet(Rr)?e.newSelection:e.newSelection.asSingle();new N(t,e.newDoc,o,r,(l,a)=>a.update(l,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(t=>({changes:{from:t.from,to:t.to,insert:e},range:b.cursor(t.from+e.length)}))}changeByRange(e){let t=this.selection,i=e(t.ranges[0]),s=this.changes(i.changes),r=[i.range],o=Jt(i.effects);for(let l=1;lo.spec.fromJSON(l,a)))}}return N.create({doc:e.doc,selection:b.fromJSON(e.selection),extensions:t.extensions?s.concat([t.extensions]):s})}static create(e={}){let t=jn.resolve(e.extensions||[],new Map),i=e.doc instanceof V?e.doc:V.of((e.doc||"").split(t.staticFacet(N.lineSeparator)||Cr)),s=e.selection?e.selection instanceof b?e.selection:b.single(e.selection.anchor,e.selection.head):b.single(0);return xh(s,i.length),t.staticFacet(Rr)||(s=s.asSingle()),new N(t,i,s,t.dynamicSlots.map(()=>null),(r,o)=>o.create(r),null)}get tabSize(){return this.facet(N.tabSize)}get lineBreak(){return this.facet(N.lineSeparator)||` @@ -12,4 +12,4 @@ import{r as be,j as vr}from"./index-AkYO4-QT.js";function wr(){return wr=Object. `:i=="r"?"\r":i=="t"?" ":"\\")}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp&&this.wholeWord==e.wholeWord&&this.test==e.test}create(){return this.regexp?new S0(this):new y0(this)}getCursor(e,t=0,i){let s=e.doc?e:N.create({doc:e});return i==null&&(i=s.doc.length),this.regexp?jt(this,s,t,i):Ht(this,s,t,i)}}class Uf{constructor(e){this.spec=e}}function g0(n,e,t){return(i,s,r,o)=>{if(t&&!t(i,s,r,o))return!1;let l=i>=o&&s<=o+r.length?r.slice(i-o,s-o):e.doc.sliceString(i,s);return n(l,e,i,s)}}function Ht(n,e,t,i){let s;return n.wholeWord&&(s=O0(e.doc,e.charCategorizer(e.selection.main.head))),n.test&&(s=g0(n.test,e,s)),new ui(e.doc,n.unquoted,t,i,n.caseSensitive?void 0:r=>r.toLowerCase(),s)}function O0(n,e){return(t,i,s,r)=>((r>t||r+s.length=t)return null;s.push(i.value)}return s}highlight(e,t,i,s){let r=Ht(this.spec,e,Math.max(0,t-this.spec.unquoted.length),Math.min(i+this.spec.unquoted.length,e.doc.length));for(;!r.next().done;)s(r.value.from,r.value.to)}}function b0(n,e,t){return(i,s,r)=>(!t||t(i,s,r))&&n(r[0],e,i,s)}function jt(n,e,t,i){let s;return n.wholeWord&&(s=x0(e.charCategorizer(e.selection.main.head))),n.test&&(s=b0(n.test,e,s)),new Xf(e.doc,n.search,{ignoreCase:!n.caseSensitive,test:s},t,i)}function ds(n,e){return n.slice(re(n,e,!1),e)}function ps(n,e){return n.slice(e,re(n,e))}function x0(n){return(e,t,i)=>!i[0].length||(n(ds(i.input,i.index))!=G.Word||n(ps(i.input,i.index))!=G.Word)&&(n(ps(i.input,i.index+i[0].length))!=G.Word||n(ds(i.input,i.index+i[0].length))!=G.Word)}class S0 extends Uf{nextMatch(e,t,i){let s=jt(this.spec,e,i,e.doc.length).next();return s.done&&(s=jt(this.spec,e,0,t).next()),s.done?null:s.value}prevMatchInRange(e,t,i){for(let s=1;;s++){let r=Math.max(t,i-s*1e4),o=jt(this.spec,e,r,i),l=null;for(;!o.next().done;)l=o.value;if(l&&(r==t||l.from>r+10))return l;if(r==t)return null}}prevMatch(e,t,i){return this.prevMatchInRange(e,0,t)||this.prevMatchInRange(e,i,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g,(t,i)=>{if(i=="&")return e.match[0];if(i=="$")return"$";for(let s=i.length;s>0;s--){let r=+i.slice(0,s);if(r>0&&r=t)return null;s.push(i.value)}return s}highlight(e,t,i,s){let r=jt(this.spec,e,Math.max(0,t-250),Math.min(i+250,e.doc.length));for(;!r.next().done;)s(r.value.from,r.value.to)}}const Ui=D.define(),Go=D.define(),kt=he.define({create(n){return new cr(Oo(n).create(),null)},update(n,e){for(let t of e.effects)t.is(Ui)?n=new cr(t.value.create(),n.panel):t.is(Go)&&(n=new cr(n.query,t.value?Zo:null));return n},provide:n=>Vi.from(n,e=>e.panel)});class cr{constructor(e,t){this.query=e,this.panel=t}}const k0=M.mark({class:"cm-searchMatch"}),v0=M.mark({class:"cm-searchMatch cm-searchMatch-selected"}),w0=J.fromClass(class{constructor(n){this.view=n,this.decorations=this.highlight(n.state.field(kt))}update(n){let e=n.state.field(kt);(e!=n.startState.field(kt)||n.docChanged||n.selectionSet||n.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:n,panel:e}){if(!e||!n.spec.valid)return M.none;let{view:t}=this,i=new pt;for(let s=0,r=t.visibleRanges,o=r.length;sr[s+1].from-500;)a=r[++s].to;n.highlight(t.state,l,a,(h,c)=>{let f=t.state.selection.ranges.some(u=>u.from==h&&u.to==c);i.add(h,c,f?v0:k0)})}return i.finish()}},{decorations:n=>n.decorations});function hn(n){return e=>{let t=e.state.field(kt,!1);return t&&t.query.spec.valid?n(e,t):Gf(e)}}const ms=hn((n,{query:e})=>{let{to:t}=n.state.selection.main,i=e.nextMatch(n.state,t,t);if(!i)return!1;let s=b.single(i.from,i.to),r=n.state.facet(gi);return n.dispatch({selection:s,effects:[Yo(n,i),r.scrollToMatch(s.main,n)],userEvent:"select.search"}),jf(n),!0}),gs=hn((n,{query:e})=>{let{state:t}=n,{from:i}=t.selection.main,s=e.prevMatch(t,i,i);if(!s)return!1;let r=b.single(s.from,s.to),o=n.state.facet(gi);return n.dispatch({selection:r,effects:[Yo(n,s),o.scrollToMatch(r.main,n)],userEvent:"select.search"}),jf(n),!0}),T0=hn((n,{query:e})=>{let t=e.matchAll(n.state,1e3);return!t||!t.length?!1:(n.dispatch({selection:b.create(t.map(i=>b.range(i.from,i.to))),userEvent:"select.search.matches"}),!0)}),C0=({state:n,dispatch:e})=>{let t=n.selection;if(t.ranges.length>1||t.main.empty)return!1;let{from:i,to:s}=t.main,r=[],o=0;for(let l=new ui(n.doc,n.sliceDoc(i,s));!l.next().done;){if(r.length>1e3)return!1;l.value.from==i&&(o=r.length),r.push(b.range(l.value.from,l.value.to))}return e(n.update({selection:b.create(r,o),userEvent:"select.search.matches"})),!0},Ra=hn((n,{query:e})=>{let{state:t}=n,{from:i,to:s}=t.selection.main;if(t.readOnly)return!1;let r=e.nextMatch(t,i,i);if(!r)return!1;let o=r,l=[],a,h,c=[];o.from==i&&o.to==s&&(h=t.toText(e.getReplacement(o)),l.push({from:o.from,to:o.to,insert:h}),o=e.nextMatch(t,o.from,o.to),c.push(C.announce.of(t.phrase("replaced match on line $",t.doc.lineAt(i).number)+".")));let f=n.state.changes(l);return o&&(a=b.single(o.from,o.to).map(f),c.push(Yo(n,o)),c.push(t.facet(gi).scrollToMatch(a.main,n))),n.dispatch({changes:f,selection:a,effects:c,userEvent:"input.replace"}),!0}),Q0=hn((n,{query:e})=>{if(n.state.readOnly)return!1;let t=e.matchAll(n.state,1e9).map(s=>{let{from:r,to:o}=s;return{from:r,to:o,insert:e.getReplacement(s)}});if(!t.length)return!1;let i=n.state.phrase("replaced $ matches",t.length)+".";return n.dispatch({changes:t,effects:C.announce.of(i),userEvent:"input.replace.all"}),!0});function Zo(n){return n.state.facet(gi).createPanel(n)}function Oo(n,e){var t,i,s,r,o;let l=n.selection.main,a=l.empty||l.to>l.from+100?"":n.sliceDoc(l.from,l.to);if(e&&!a)return e;let h=n.facet(gi);return new _f({search:((t=e==null?void 0:e.literal)!==null&&t!==void 0?t:h.literal)?a:a.replace(/\n/g,"\\n"),caseSensitive:(i=e==null?void 0:e.caseSensitive)!==null&&i!==void 0?i:h.caseSensitive,literal:(s=e==null?void 0:e.literal)!==null&&s!==void 0?s:h.literal,regexp:(r=e==null?void 0:e.regexp)!==null&&r!==void 0?r:h.regexp,wholeWord:(o=e==null?void 0:e.wholeWord)!==null&&o!==void 0?o:h.wholeWord})}function Hf(n){let e=Lo(n,Zo);return e&&e.dom.querySelector("[main-field]")}function jf(n){let e=Hf(n);e&&e==n.root.activeElement&&e.select()}const Gf=n=>{let e=n.state.field(kt,!1);if(e&&e.panel){let t=Hf(n);if(t&&t!=n.root.activeElement){let i=Oo(n.state,e.query.spec);i.valid&&n.dispatch({effects:Ui.of(i)}),t.focus(),t.select()}}else n.dispatch({effects:[Go.of(!0),e?Ui.of(Oo(n.state,e.query.spec)):D.appendConfig.of(R0)]});return!0},Zf=n=>{let e=n.state.field(kt,!1);if(!e||!e.panel)return!1;let t=Lo(n,Zo);return t&&t.dom.contains(n.root.activeElement)&&n.focus(),n.dispatch({effects:Go.of(!1)}),!0},A0=[{key:"Mod-f",run:Gf,scope:"editor search-panel"},{key:"F3",run:ms,shift:gs,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:ms,shift:gs,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:Zf,scope:"editor search-panel"},{key:"Mod-Shift-l",run:C0},{key:"Mod-Alt-g",run:s0},{key:"Mod-d",run:m0,preventDefault:!0}];class P0{constructor(e){this.view=e;let t=this.query=e.state.field(kt).query.spec;this.commit=this.commit.bind(this),this.searchField=_("input",{value:t.search,placeholder:Pe(e,"Find"),"aria-label":Pe(e,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=_("input",{value:t.replace,placeholder:Pe(e,"Replace"),"aria-label":Pe(e,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=_("input",{type:"checkbox",name:"case",form:"",checked:t.caseSensitive,onchange:this.commit}),this.reField=_("input",{type:"checkbox",name:"re",form:"",checked:t.regexp,onchange:this.commit}),this.wordField=_("input",{type:"checkbox",name:"word",form:"",checked:t.wholeWord,onchange:this.commit});function i(s,r,o){return _("button",{class:"cm-button",name:s,onclick:r,type:"button"},o)}this.dom=_("div",{onkeydown:s=>this.keydown(s),class:"cm-search"},[this.searchField,i("next",()=>ms(e),[Pe(e,"next")]),i("prev",()=>gs(e),[Pe(e,"previous")]),i("select",()=>T0(e),[Pe(e,"all")]),_("label",null,[this.caseField,Pe(e,"match case")]),_("label",null,[this.reField,Pe(e,"regexp")]),_("label",null,[this.wordField,Pe(e,"by word")]),...e.state.readOnly?[]:[_("br"),this.replaceField,i("replace",()=>Ra(e),[Pe(e,"replace")]),i("replaceAll",()=>Q0(e),[Pe(e,"replace all")])],_("button",{name:"close",onclick:()=>Zf(e),"aria-label":Pe(e,"close"),type:"button"},["×"])])}commit(){let e=new _f({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});e.eq(this.query)||(this.query=e,this.view.dispatch({effects:Ui.of(e)}))}keydown(e){Ep(this.view,e,"search-panel")?e.preventDefault():e.keyCode==13&&e.target==this.searchField?(e.preventDefault(),(e.shiftKey?gs:ms)(this.view)):e.keyCode==13&&e.target==this.replaceField&&(e.preventDefault(),Ra(this.view))}update(e){for(let t of e.transactions)for(let i of t.effects)i.is(Ui)&&!i.value.eq(this.query)&&this.setQuery(i.value)}setQuery(e){this.query=e,this.searchField.value=e.search,this.replaceField.value=e.replace,this.caseField.checked=e.caseSensitive,this.reField.checked=e.regexp,this.wordField.checked=e.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(gi).top}}function Pe(n,e){return n.state.phrase(e)}const Rn=30,En=/[\s\.,:;?!]/;function Yo(n,{from:e,to:t}){let i=n.state.doc.lineAt(e),s=n.state.doc.lineAt(t).to,r=Math.max(i.from,e-Rn),o=Math.min(s,t+Rn),l=n.state.sliceDoc(r,o);if(r!=i.from){for(let a=0;al.length-Rn;a--)if(!En.test(l[a-1])&&En.test(l[a])){l=l.slice(0,a);break}}return C.announce.of(`${n.state.phrase("current match")}. ${l} ${n.state.phrase("on line")} ${i.number}.`)}const M0=C.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),R0=[kt,Pt.low(w0),M0];class Yf{constructor(e,t,i,s){this.state=e,this.pos=t,this.explicit=i,this.view=s,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(e){let t=ae(this.state).resolveInner(this.pos,-1);for(;t&&e.indexOf(t.name)<0;)t=t.parent;return t?{from:t.from,to:this.pos,text:this.state.sliceDoc(t.from,this.pos),type:t.type}:null}matchBefore(e){let t=this.state.doc.lineAt(this.pos),i=Math.max(t.from,this.pos-250),s=t.text.slice(i-t.from,this.pos-t.from),r=s.search(Jf(e,!1));return r<0?null:{from:i+r,to:this.pos,text:s.slice(r)}}get aborted(){return this.abortListeners==null}addEventListener(e,t,i){e=="abort"&&this.abortListeners&&(this.abortListeners.push(t),i&&i.onDocChange&&(this.abortOnDocChange=!0))}}function Ea(n){let e=Object.keys(n).join(""),t=/\w/.test(e);return t&&(e=e.replace(/\w/g,"")),`[${t?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function E0(n){let e=Object.create(null),t=Object.create(null);for(let{label:s}of n){e[s[0]]=!0;for(let r=1;rtypeof s=="string"?{label:s}:s),[t,i]=e.every(s=>/^\w+$/.test(s.label))?[/\w*$/,/\w+$/]:E0(e);return s=>{let r=s.matchBefore(i);return r||s.explicit?{from:r?r.from:s.pos,options:e,validFor:t}:null}}function D0(n,e){return t=>{for(let i=ae(t.state).resolveInner(t.pos,-1);i;i=i.parent){if(n.indexOf(i.name)>-1)return null;if(i.type.isTop)break}return e(t)}}class Da{constructor(e,t,i,s){this.completion=e,this.source=t,this.match=i,this.score=s}}function It(n){return n.selection.main.from}function Jf(n,e){var t;let{source:i}=n,s=e&&i[0]!="^",r=i[i.length-1]!="$";return!s&&!r?n:new RegExp(`${s?"^":""}(?:${i})${r?"$":""}`,(t=n.flags)!==null&&t!==void 0?t:n.ignoreCase?"i":"")}const Ko=st.define();function q0(n,e,t,i){let{main:s}=n.selection,r=t-s.from,o=i-s.from;return{...n.changeByRange(l=>{if(l!=s&&t!=i&&n.sliceDoc(l.from+r,l.from+o)!=n.sliceDoc(t,i))return{range:l};let a=n.toText(e);return{changes:{from:l.from+r,to:i==s.from?l.to:l.from+o,insert:a},range:b.cursor(l.from+r+a.length)}}),scrollIntoView:!0,userEvent:"input.complete"}}const qa=new WeakMap;function W0(n){if(!Array.isArray(n))return n;let e=qa.get(n);return e||qa.set(n,e=Kf(n)),e}const Os=D.define(),Hi=D.define();class B0{constructor(e){this.pattern=e,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[],this.score=0,this.matched=[];for(let t=0;t=48&&S<=57||S>=97&&S<=122?2:S>=65&&S<=90?1:0:(w=xo(S))!=w.toLowerCase()?1:w!=w.toUpperCase()?2:0;(!k||v==1&&g||Q==0&&v!=0)&&(t[f]==S||i[f]==S&&(u=!0)?o[f++]=k:o.length&&(y=!1)),Q=v,k+=Ke(S)}return f==a&&o[0]==0&&y?this.result(-100+(u?-200:0),o,e):d==a&&p==0?this.ret(-200-e.length+(m==e.length?0:-100),[0,m]):l>-1?this.ret(-700-e.length,[l,l+this.pattern.length]):d==a?this.ret(-900-e.length,[p,m]):f==a?this.result(-100+(u?-200:0)+-700+(y?0:-1100),o,e):t.length==2?null:this.result((s[0]?-700:0)+-200+-1100,s,e)}result(e,t,i){let s=[],r=0;for(let o of t){let l=o+(this.astral?Ke(ke(i,o)):1);r&&s[r-1]==o?s[r-1]=l:(s[r++]=o,s[r++]=l)}return this.ret(e-i.length,s)}}class $0{constructor(e){this.pattern=e,this.matched=[],this.score=0,this.folded=e.toLowerCase()}match(e){if(e.length!1,activateOnTypingDelay:100,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],positionInfo:L0,filterStrict:!1,compareCompletions:(e,t)=>(e.sortText||e.label).localeCompare(t.sortText||t.label),interactionDelay:75,updateSyncTime:100},{defaultKeymap:(e,t)=>e&&t,closeOnBlur:(e,t)=>e&&t,icons:(e,t)=>e&&t,tooltipClass:(e,t)=>i=>Wa(e(i),t(i)),optionClass:(e,t)=>i=>Wa(e(i),t(i)),addToOptions:(e,t)=>e.concat(t),filterStrict:(e,t)=>e||t})}});function Wa(n,e){return n?e?n+" "+e:n:e}function L0(n,e,t,i,s,r){let o=n.textDirection==H.RTL,l=o,a=!1,h="top",c,f,u=e.left-s.left,d=s.right-e.right,p=i.right-i.left,m=i.bottom-i.top;if(l&&u=m||k>e.top?c=t.bottom-e.top:(h="bottom",c=e.bottom-t.top)}let g=(e.bottom-e.top)/r.offsetHeight,y=(e.right-e.left)/r.offsetWidth;return{style:`${h}: ${c/g}px; max-width: ${f/y}px`,class:"cm-completionInfo-"+(a?o?"left-narrow":"right-narrow":l?"left":"right")}}function z0(n){let e=n.addToOptions.slice();return n.icons&&e.push({render(t){let i=document.createElement("div");return i.classList.add("cm-completionIcon"),t.type&&i.classList.add(...t.type.split(/\s+/g).map(s=>"cm-completionIcon-"+s)),i.setAttribute("aria-hidden","true"),i},position:20}),e.push({render(t,i,s,r){let o=document.createElement("span");o.className="cm-completionLabel";let l=t.displayLabel||t.label,a=0;for(let h=0;ha&&o.appendChild(document.createTextNode(l.slice(a,c)));let u=o.appendChild(document.createElement("span"));u.appendChild(document.createTextNode(l.slice(c,f))),u.className="cm-completionMatchedText",a=f}return at.position-i.position).map(t=>t.render)}function fr(n,e,t){if(n<=t)return{from:0,to:n};if(e<0&&(e=0),e<=n>>1){let s=Math.floor(e/t);return{from:s*t,to:(s+1)*t}}let i=Math.floor((n-e)/t);return{from:n-(i+1)*t,to:n-i*t}}class I0{constructor(e,t,i){this.view=e,this.stateField=t,this.applyCompletion=i,this.info=null,this.infoDestroy=null,this.placeInfoReq={read:()=>this.measureInfo(),write:a=>this.placeInfo(a),key:this},this.space=null,this.currentClass="";let s=e.state.field(t),{options:r,selected:o}=s.open,l=e.state.facet(le);this.optionContent=z0(l),this.optionClass=l.optionClass,this.tooltipClass=l.tooltipClass,this.range=fr(r.length,o,l.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.updateTooltipClass(e.state),this.dom.addEventListener("mousedown",a=>{let{options:h}=e.state.field(t).open;for(let c=a.target,f;c&&c!=this.dom;c=c.parentNode)if(c.nodeName=="LI"&&(f=/-(\d+)$/.exec(c.id))&&+f[1]{let h=e.state.field(this.stateField,!1);h&&h.tooltip&&e.state.facet(le).closeOnBlur&&a.relatedTarget!=e.contentDOM&&e.dispatch({effects:Hi.of(null)})}),this.showOptions(r,s.id)}mount(){this.updateSel()}showOptions(e,t){this.list&&this.list.remove(),this.list=this.dom.appendChild(this.createListBox(e,t,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)})}update(e){var t;let i=e.state.field(this.stateField),s=e.startState.field(this.stateField);if(this.updateTooltipClass(e.state),i!=s){let{options:r,selected:o,disabled:l}=i.open;(!s.open||s.open.options!=r)&&(this.range=fr(r.length,o,e.state.facet(le).maxRenderedOptions),this.showOptions(r,i.id)),this.updateSel(),l!=((t=s.open)===null||t===void 0?void 0:t.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!l)}}updateTooltipClass(e){let t=this.tooltipClass(e);if(t!=this.currentClass){for(let i of this.currentClass.split(" "))i&&this.dom.classList.remove(i);for(let i of t.split(" "))i&&this.dom.classList.add(i);this.currentClass=t}}positioned(e){this.space=e,this.info&&this.view.requestMeasure(this.placeInfoReq)}updateSel(){let e=this.view.state.field(this.stateField),t=e.open;(t.selected>-1&&t.selected=this.range.to)&&(this.range=fr(t.options.length,t.selected,this.view.state.facet(le).maxRenderedOptions),this.showOptions(t.options,e.id));let i=this.updateSelectedOption(t.selected);if(i){this.destroyInfo();let{completion:s}=t.options[t.selected],{info:r}=s;if(!r)return;let o=typeof r=="string"?document.createTextNode(r):r(s);if(!o)return;"then"in o?o.then(l=>{l&&this.view.state.field(this.stateField,!1)==e&&this.addInfoPane(l,s)}).catch(l=>Te(this.view.state,l,"completion info")):(this.addInfoPane(o,s),i.setAttribute("aria-describedby",this.info.id))}}addInfoPane(e,t){this.destroyInfo();let i=this.info=document.createElement("div");if(i.className="cm-tooltip cm-completionInfo",i.id="cm-completionInfo-"+Math.floor(Math.random()*65535).toString(16),e.nodeType!=null)i.appendChild(e),this.infoDestroy=null;else{let{dom:s,destroy:r}=e;i.appendChild(s),this.infoDestroy=r||null}this.dom.appendChild(i),this.view.requestMeasure(this.placeInfoReq)}updateSelectedOption(e){let t=null;for(let i=this.list.firstChild,s=this.range.from;i;i=i.nextSibling,s++)i.nodeName!="LI"||!i.id?s--:s==e?i.hasAttribute("aria-selected")||(i.setAttribute("aria-selected","true"),t=i):i.hasAttribute("aria-selected")&&(i.removeAttribute("aria-selected"),i.removeAttribute("aria-describedby"));return t&&V0(this.list,t),t}measureInfo(){let e=this.dom.querySelector("[aria-selected]");if(!e||!this.info)return null;let t=this.dom.getBoundingClientRect(),i=this.info.getBoundingClientRect(),s=e.getBoundingClientRect(),r=this.space;if(!r){let o=this.dom.ownerDocument.documentElement;r={left:0,top:0,right:o.clientWidth,bottom:o.clientHeight}}return s.top>Math.min(r.bottom,t.bottom)-10||s.bottom{o.target==s&&o.preventDefault()});let r=null;for(let o=i.from;oi.from||i.from==0))if(r=u,typeof h!="string"&&h.header)s.appendChild(h.header(h));else{let d=s.appendChild(document.createElement("completion-section"));d.textContent=u}}const c=s.appendChild(document.createElement("li"));c.id=t+"-"+o,c.setAttribute("role","option");let f=this.optionClass(l);f&&(c.className=f);for(let u of this.optionContent){let d=u(l,this.view.state,this.view,a);d&&c.appendChild(d)}}return i.from&&s.classList.add("cm-completionListIncompleteTop"),i.tonew I0(t,n,e)}function V0(n,e){let t=n.getBoundingClientRect(),i=e.getBoundingClientRect(),s=t.height/n.offsetHeight;i.topt.bottom&&(n.scrollTop+=(i.bottom-t.bottom)/s)}function Ba(n){return(n.boost||0)*100+(n.apply?10:0)+(n.info?5:0)+(n.type?1:0)}function X0(n,e){let t=[],i=null,s=null,r=c=>{t.push(c);let{section:f}=c.completion;if(f){i||(i=[]);let u=typeof f=="string"?f:f.name;i.some(d=>d.name==u)||i.push(typeof f=="string"?{name:u}:f)}},o=e.facet(le);for(let c of n)if(c.hasResult()){let f=c.result.getMatch;if(c.result.filter===!1)for(let u of c.result.options)r(new Da(u,c.source,f?f(u):[],1e9-t.length));else{let u=e.sliceDoc(c.from,c.to),d,p=o.filterStrict?new $0(u):new B0(u);for(let m of c.result.options)if(d=p.match(m.label)){let g=m.displayLabel?f?f(m,d.matched):[]:d.matched,y=d.score+(m.boost||0);if(r(new Da(m,c.source,g,y)),typeof m.section=="object"&&m.section.rank==="dynamic"){let{name:k}=m.section;s||(s=Object.create(null)),s[k]=Math.max(y,s[k]||-1e9)}}}}if(i){let c=Object.create(null),f=0,u=(d,p)=>(d.rank==="dynamic"&&p.rank==="dynamic"?s[p.name]-s[d.name]:0)||(typeof d.rank=="number"?d.rank:1e9)-(typeof p.rank=="number"?p.rank:1e9)||(d.nameu.score-f.score||h(f.completion,u.completion))){let f=c.completion;!a||a.label!=f.label||a.detail!=f.detail||a.type!=null&&f.type!=null&&a.type!=f.type||a.apply!=f.apply||a.boost!=f.boost?l.push(c):Ba(c.completion)>Ba(a)&&(l[l.length-1]=c),a=c.completion}return l}class Kt{constructor(e,t,i,s,r,o){this.options=e,this.attrs=t,this.tooltip=i,this.timestamp=s,this.selected=r,this.disabled=o}setSelected(e,t){return e==this.selected||e>=this.options.length?this:new Kt(this.options,$a(t,e),this.tooltip,this.timestamp,e,this.disabled)}static build(e,t,i,s,r,o){if(s&&!o&&e.some(h=>h.isPending))return s.setDisabled();let l=X0(e,t);if(!l.length)return s&&e.some(h=>h.isPending)?s.setDisabled():null;let a=t.facet(le).selectOnOpen?0:-1;if(s&&s.selected!=a&&s.selected!=-1){let h=s.options[s.selected].completion;for(let c=0;cc.hasResult()?Math.min(h,c.from):h,1e8),create:G0,above:r.aboveCursor},s?s.timestamp:Date.now(),a,!1)}map(e){return new Kt(this.options,this.attrs,{...this.tooltip,pos:e.mapPos(this.tooltip.pos)},this.timestamp,this.selected,this.disabled)}setDisabled(){return new Kt(this.options,this.attrs,this.tooltip,this.timestamp,this.selected,!0)}}class ys{constructor(e,t,i){this.active=e,this.id=t,this.open=i}static start(){return new ys(H0,"cm-ac-"+Math.floor(Math.random()*2e6).toString(36),null)}update(e){let{state:t}=e,i=t.facet(le),r=(i.override||t.languageDataAt("autocomplete",It(t)).map(W0)).map(a=>(this.active.find(c=>c.source==a)||new Be(a,this.active.some(c=>c.state!=0)?1:0)).update(e,i));r.length==this.active.length&&r.every((a,h)=>a==this.active[h])&&(r=this.active);let o=this.open,l=e.effects.some(a=>a.is(Jo));o&&e.docChanged&&(o=o.map(e.changes)),e.selection||r.some(a=>a.hasResult()&&e.changes.touchesRange(a.from,a.to))||!F0(r,this.active)||l?o=Kt.build(r,t,this.id,o,i,l):o&&o.disabled&&!r.some(a=>a.isPending)&&(o=null),!o&&r.every(a=>!a.isPending)&&r.some(a=>a.hasResult())&&(r=r.map(a=>a.hasResult()?new Be(a.source,0):a));for(let a of e.effects)a.is(tu)&&(o=o&&o.setSelected(a.value,this.id));return r==this.active&&o==this.open?this:new ys(r,this.id,o)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:this.active.length?_0:U0}}function F0(n,e){if(n==e)return!0;for(let t=0,i=0;;){for(;t-1&&(t["aria-activedescendant"]=n+"-"+e),t}const H0=[];function eu(n,e){if(n.isUserEvent("input.complete")){let i=n.annotation(Ko);if(i&&e.activateOnCompletion(i))return 12}let t=n.isUserEvent("input.type");return t&&e.activateOnTyping?5:t?1:n.isUserEvent("delete.backward")?2:n.selection?8:n.docChanged?16:0}class Be{constructor(e,t,i=!1){this.source=e,this.state=t,this.explicit=i}hasResult(){return!1}get isPending(){return this.state==1}update(e,t){let i=eu(e,t),s=this;(i&8||i&16&&this.touches(e))&&(s=new Be(s.source,0)),i&4&&s.state==0&&(s=new Be(this.source,1)),s=s.updateFor(e,i);for(let r of e.effects)if(r.is(Os))s=new Be(s.source,1,r.value);else if(r.is(Hi))s=new Be(s.source,0);else if(r.is(Jo))for(let o of r.value)o.source==s.source&&(s=o);return s}updateFor(e,t){return this.map(e.changes)}map(e){return this}touches(e){return e.changes.touchesRange(It(e.state))}}class si extends Be{constructor(e,t,i,s,r,o){super(e,3,t),this.limit=i,this.result=s,this.from=r,this.to=o}hasResult(){return!0}updateFor(e,t){var i;if(!(t&3))return this.map(e.changes);let s=this.result;s.map&&!e.changes.empty&&(s=s.map(s,e.changes));let r=e.changes.mapPos(this.from),o=e.changes.mapPos(this.to,1),l=It(e.state);if(l>o||!s||t&2&&(It(e.startState)==this.from||lt.map(e))}}),tu=D.define(),ve=he.define({create(){return ys.start()},update(n,e){return n.update(e)},provide:n=>[$o.from(n,e=>e.tooltip),C.contentAttributes.from(n,e=>e.attrs)]});function el(n,e){const t=e.completion.apply||e.completion.label;let i=n.state.field(ve).active.find(s=>s.source==e.source);return i instanceof si?(typeof t=="string"?n.dispatch({...q0(n.state,t,i.from,i.to),annotations:Ko.of(e.completion)}):t(n,e.completion,i.from,i.to),!0):!1}const G0=N0(ve,el);function Dn(n,e="option"){return t=>{let i=t.state.field(ve,!1);if(!i||!i.open||i.open.disabled||Date.now()-i.open.timestamp-1?i.open.selected+s*(n?1:-1):n?0:o-1;return l<0?l=e=="page"?0:o-1:l>=o&&(l=e=="page"?o-1:0),t.dispatch({effects:tu.of(l)}),!0}}const Z0=n=>{let e=n.state.field(ve,!1);return n.state.readOnly||!e||!e.open||e.open.selected<0||e.open.disabled||Date.now()-e.open.timestampn.state.field(ve,!1)?(n.dispatch({effects:Os.of(!0)}),!0):!1,Y0=n=>{let e=n.state.field(ve,!1);return!e||!e.active.some(t=>t.state!=0)?!1:(n.dispatch({effects:Hi.of(null)}),!0)};class K0{constructor(e,t){this.active=e,this.context=t,this.time=Date.now(),this.updates=[],this.done=void 0}}const J0=50,ey=1e3,ty=J.fromClass(class{constructor(n){this.view=n,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.pendingStart=!1,this.composing=0;for(let e of n.state.field(ve).active)e.isPending&&this.startQuery(e)}update(n){let e=n.state.field(ve),t=n.state.facet(le);if(!n.selectionSet&&!n.docChanged&&n.startState.field(ve)==e)return;let i=n.transactions.some(r=>{let o=eu(r,t);return o&8||(r.selection||r.docChanged)&&!(o&3)});for(let r=0;rJ0&&Date.now()-o.time>ey){for(let l of o.context.abortListeners)try{l()}catch(a){Te(this.view.state,a)}o.context.abortListeners=null,this.running.splice(r--,1)}else o.updates.push(...n.transactions)}this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),n.transactions.some(r=>r.effects.some(o=>o.is(Os)))&&(this.pendingStart=!0);let s=this.pendingStart?50:t.activateOnTypingDelay;if(this.debounceUpdate=e.active.some(r=>r.isPending&&!this.running.some(o=>o.active.source==r.source))?setTimeout(()=>this.startUpdate(),s):-1,this.composing!=0)for(let r of n.transactions)r.isUserEvent("input.type")?this.composing=2:this.composing==2&&r.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1,this.pendingStart=!1;let{state:n}=this.view,e=n.field(ve);for(let t of e.active)t.isPending&&!this.running.some(i=>i.active.source==t.source)&&this.startQuery(t);this.running.length&&e.open&&e.open.disabled&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(le).updateSyncTime))}startQuery(n){let{state:e}=this.view,t=It(e),i=new Yf(e,t,n.explicit,this.view),s=new K0(n,i);this.running.push(s),Promise.resolve(n.source(i)).then(r=>{s.context.aborted||(s.done=r||null,this.scheduleAccept())},r=>{this.view.dispatch({effects:Hi.of(null)}),Te(this.view.state,r)})}scheduleAccept(){this.running.every(n=>n.done!==void 0)?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(le).updateSyncTime))}accept(){var n;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let e=[],t=this.view.state.facet(le),i=this.view.state.field(ve);for(let s=0;sl.source==r.active.source);if(o&&o.isPending)if(r.done==null){let l=new Be(r.active.source,0);for(let a of r.updates)l=l.update(a,t);l.isPending||e.push(l)}else this.startQuery(o)}(e.length||i.open&&i.open.disabled)&&this.view.dispatch({effects:Jo.of(e)})}},{eventHandlers:{blur(n){let e=this.view.state.field(ve,!1);if(e&&e.tooltip&&this.view.state.facet(le).closeOnBlur){let t=e.open&&Rc(this.view,e.open.tooltip);(!t||!t.dom.contains(n.relatedTarget))&&setTimeout(()=>this.view.dispatch({effects:Hi.of(null)}),10)}},compositionstart(){this.composing=1},compositionend(){this.composing==3&&setTimeout(()=>this.view.dispatch({effects:Os.of(!1)}),20),this.composing=0}}}),iy=typeof navigator=="object"&&/Win/.test(navigator.platform),ny=Pt.highest(C.domEventHandlers({keydown(n,e){let t=e.state.field(ve,!1);if(!t||!t.open||t.open.disabled||t.open.selected<0||n.key.length>1||n.ctrlKey&&!(iy&&n.altKey)||n.metaKey)return!1;let i=t.open.options[t.open.selected],s=t.active.find(o=>o.source==i.source),r=i.completion.commitCharacters||s.result.commitCharacters;return r&&r.indexOf(n.key)>-1&&el(e,i),!1}})),iu=C.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li, & > completion-section":{padding:"1px 3px",lineHeight:1.2},"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer"},"& > completion-section":{display:"list-item",borderBottom:"1px solid silver",paddingLeft:"0.5em",opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"···"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box",whiteSpace:"pre-line"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'ƒ'"}},".cm-completionIcon-class":{"&:after":{content:"'○'"}},".cm-completionIcon-interface":{"&:after":{content:"'◌'"}},".cm-completionIcon-variable":{"&:after":{content:"'𝑥'"}},".cm-completionIcon-constant":{"&:after":{content:"'𝐶'"}},".cm-completionIcon-type":{"&:after":{content:"'𝑡'"}},".cm-completionIcon-enum":{"&:after":{content:"'∪'"}},".cm-completionIcon-property":{"&:after":{content:"'□'"}},".cm-completionIcon-keyword":{"&:after":{content:"'🔑︎'"}},".cm-completionIcon-namespace":{"&:after":{content:"'▢'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}});class sy{constructor(e,t,i,s){this.field=e,this.line=t,this.from=i,this.to=s}}class tl{constructor(e,t,i){this.field=e,this.from=t,this.to=i}map(e){let t=e.mapPos(this.from,-1,de.TrackDel),i=e.mapPos(this.to,1,de.TrackDel);return t==null||i==null?null:new tl(this.field,t,i)}}class il{constructor(e,t){this.lines=e,this.fieldPositions=t}instantiate(e,t){let i=[],s=[t],r=e.doc.lineAt(t),o=/^\s*/.exec(r.text)[0];for(let a of this.lines){if(i.length){let h=o,c=/^\t*/.exec(a)[0].length;for(let f=0;fnew tl(a.field,s[a.line]+a.from,s[a.line]+a.to));return{text:i,ranges:l}}static parse(e){let t=[],i=[],s=[],r;for(let o of e.split(/\r\n?|\n/)){for(;r=/[#$]\{(?:(\d+)(?::([^{}]*))?|((?:\\[{}]|[^{}])*))\}/.exec(o);){let l=r[1]?+r[1]:null,a=r[2]||r[3]||"",h=-1,c=a.replace(/\\[{}]/g,f=>f[1]);for(let f=0;f=h&&u.field++}for(let f of s)if(f.line==i.length&&f.from>r.index){let u=r[2]?3+(r[1]||"").length:2;f.from-=u,f.to-=u}s.push(new sy(h,i.length,r.index,r.index+c.length)),o=o.slice(0,r.index)+a+o.slice(r.index+r[0].length)}o=o.replace(/\\([{}])/g,(l,a,h)=>{for(let c of s)c.line==i.length&&c.from>h&&(c.from--,c.to--);return a}),i.push(o)}return new il(i,s)}}let ry=M.widget({widget:new class extends Xe{toDOM(){let n=document.createElement("span");return n.className="cm-snippetFieldPosition",n}ignoreEvent(){return!1}}}),oy=M.mark({class:"cm-snippetField"});class Oi{constructor(e,t){this.ranges=e,this.active=t,this.deco=M.set(e.map(i=>(i.from==i.to?ry:oy).range(i.from,i.to)),!0)}map(e){let t=[];for(let i of this.ranges){let s=i.map(e);if(!s)return null;t.push(s)}return new Oi(t,this.active)}selectionInsideField(e){return e.ranges.every(t=>this.ranges.some(i=>i.field==this.active&&i.from<=t.from&&i.to>=t.to))}}const cn=D.define({map(n,e){return n&&n.map(e)}}),ly=D.define(),ji=he.define({create(){return null},update(n,e){for(let t of e.effects){if(t.is(cn))return t.value;if(t.is(ly)&&n)return new Oi(n.ranges,t.value)}return n&&e.docChanged&&(n=n.map(e.changes)),n&&e.selection&&!n.selectionInsideField(e.selection)&&(n=null),n},provide:n=>C.decorations.from(n,e=>e?e.deco:M.none)});function nl(n,e){return b.create(n.filter(t=>t.field==e).map(t=>b.range(t.from,t.to)))}function ay(n){let e=il.parse(n);return(t,i,s,r)=>{let{text:o,ranges:l}=e.instantiate(t.state,s),{main:a}=t.state.selection,h={changes:{from:s,to:r==a.from?a.to:r,insert:V.of(o)},scrollIntoView:!0,annotations:i?[Ko.of(i),te.userEvent.of("input.complete")]:void 0};if(l.length&&(h.selection=nl(l,0)),l.some(c=>c.field>0)){let c=new Oi(l,0),f=h.effects=[cn.of(c)];t.state.field(ji,!1)===void 0&&f.push(D.appendConfig.of([ji,dy,py,iu]))}t.dispatch(t.state.update(h))}}function nu(n){return({state:e,dispatch:t})=>{let i=e.field(ji,!1);if(!i||n<0&&i.active==0)return!1;let s=i.active+n,r=n>0&&!i.ranges.some(o=>o.field==s+n);return t(e.update({selection:nl(i.ranges,s),effects:cn.of(r?null:new Oi(i.ranges,s)),scrollIntoView:!0})),!0}}const hy=({state:n,dispatch:e})=>n.field(ji,!1)?(e(n.update({effects:cn.of(null)})),!0):!1,cy=nu(1),fy=nu(-1),uy=[{key:"Tab",run:cy,shift:fy},{key:"Escape",run:hy}],La=A.define({combine(n){return n.length?n[0]:uy}}),dy=Pt.highest(nn.compute([La],n=>n.facet(La)));function ot(n,e){return{...e,apply:ay(n)}}const py=C.domEventHandlers({mousedown(n,e){let t=e.state.field(ji,!1),i;if(!t||(i=e.posAtCoords({x:n.clientX,y:n.clientY}))==null)return!1;let s=t.ranges.find(r=>r.from<=i&&r.to>=i);return!s||s.field==t.active?!1:(e.dispatch({selection:nl(t.ranges,s.field),effects:cn.of(t.ranges.some(r=>r.field>s.field)?new Oi(t.ranges,s.field):null),scrollIntoView:!0}),!0)}}),Gi={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},Lt=D.define({map(n,e){let t=e.mapPos(n,-1,de.TrackAfter);return t??void 0}}),sl=new class extends vt{};sl.startSide=1;sl.endSide=-1;const su=he.define({create(){return z.empty},update(n,e){if(n=n.map(e.changes),e.selection){let t=e.state.doc.lineAt(e.selection.main.head);n=n.update({filter:i=>i>=t.from&&i<=t.to})}for(let t of e.effects)t.is(Lt)&&(n=n.update({add:[sl.range(t.value,t.value+1)]}));return n}});function my(){return[Oy,su]}const dr="()[]{}<>«»»«[]{}";function ru(n){for(let e=0;e{if((gy?n.composing:n.compositionStarted)||n.state.readOnly)return!1;let s=n.state.selection.main;if(i.length>2||i.length==2&&Ke(ke(i,0))==1||e!=s.from||t!=s.to)return!1;let r=xy(n.state,i);return r?(n.dispatch(r),!0):!1}),yy=({state:n,dispatch:e})=>{if(n.readOnly)return!1;let i=ou(n,n.selection.main.head).brackets||Gi.brackets,s=null,r=n.changeByRange(o=>{if(o.empty){let l=Sy(n.doc,o.head);for(let a of i)if(a==l&&Ws(n.doc,o.head)==ru(ke(a,0)))return{changes:{from:o.head-a.length,to:o.head+a.length},range:b.cursor(o.head-a.length)}}return{range:s=o}});return s||e(n.update(r,{scrollIntoView:!0,userEvent:"delete.backward"})),!s},by=[{key:"Backspace",run:yy}];function xy(n,e){let t=ou(n,n.selection.main.head),i=t.brackets||Gi.brackets;for(let s of i){let r=ru(ke(s,0));if(e==s)return r==s?wy(n,s,i.indexOf(s+s+s)>-1,t):ky(n,s,r,t.before||Gi.before);if(e==r&&lu(n,n.selection.main.from))return vy(n,s,r)}return null}function lu(n,e){let t=!1;return n.field(su).between(0,n.doc.length,i=>{i==e&&(t=!0)}),t}function Ws(n,e){let t=n.sliceString(e,e+2);return t.slice(0,Ke(ke(t,0)))}function Sy(n,e){let t=n.sliceString(e-2,e);return Ke(ke(t,0))==t.length?t:t.slice(1)}function ky(n,e,t,i){let s=null,r=n.changeByRange(o=>{if(!o.empty)return{changes:[{insert:e,from:o.from},{insert:t,from:o.to}],effects:Lt.of(o.to+e.length),range:b.range(o.anchor+e.length,o.head+e.length)};let l=Ws(n.doc,o.head);return!l||/\s/.test(l)||i.indexOf(l)>-1?{changes:{insert:e+t,from:o.head},effects:Lt.of(o.head+e.length),range:b.cursor(o.head+e.length)}:{range:s=o}});return s?null:n.update(r,{scrollIntoView:!0,userEvent:"input.type"})}function vy(n,e,t){let i=null,s=n.changeByRange(r=>r.empty&&Ws(n.doc,r.head)==t?{changes:{from:r.head,to:r.head+t.length,insert:t},range:b.cursor(r.head+t.length)}:i={range:r});return i?null:n.update(s,{scrollIntoView:!0,userEvent:"input.type"})}function wy(n,e,t,i){let s=i.stringPrefixes||Gi.stringPrefixes,r=null,o=n.changeByRange(l=>{if(!l.empty)return{changes:[{insert:e,from:l.from},{insert:e,from:l.to}],effects:Lt.of(l.to+e.length),range:b.range(l.anchor+e.length,l.head+e.length)};let a=l.head,h=Ws(n.doc,a),c;if(h==e){if(za(n,a))return{changes:{insert:e+e,from:a},effects:Lt.of(a+e.length),range:b.cursor(a+e.length)};if(lu(n,a)){let u=t&&n.sliceDoc(a,a+e.length*3)==e+e+e?e+e+e:e;return{changes:{from:a,to:a+u.length,insert:u},range:b.cursor(a+u.length)}}}else{if(t&&n.sliceDoc(a-2*e.length,a)==e+e&&(c=Ia(n,a-2*e.length,s))>-1&&za(n,c))return{changes:{insert:e+e+e+e,from:a},effects:Lt.of(a+e.length),range:b.cursor(a+e.length)};if(n.charCategorizer(a)(h)!=G.Word&&Ia(n,a,s)>-1&&!Ty(n,a,e,s))return{changes:{insert:e+e,from:a},effects:Lt.of(a+e.length),range:b.cursor(a+e.length)}}return{range:r=l}});return r?null:n.update(o,{scrollIntoView:!0,userEvent:"input.type"})}function za(n,e){let t=ae(n).resolveInner(e+1);return t.parent&&t.from==e}function Ty(n,e,t,i){let s=ae(n).resolveInner(e,-1),r=i.reduce((o,l)=>Math.max(o,l.length),0);for(let o=0;o<5;o++){let l=n.sliceDoc(s.from,Math.min(s.to,s.from+t.length+r)),a=l.indexOf(t);if(!a||a>-1&&i.indexOf(l.slice(0,a))>-1){let c=s.firstChild;for(;c&&c.from==s.from&&c.to-c.from>t.length+a;){if(n.sliceDoc(c.to-t.length,c.to)==t)return!1;c=c.firstChild}return!0}let h=s.to==e&&s.parent;if(!h)break;s=h}return!1}function Ia(n,e,t){let i=n.charCategorizer(e);if(i(n.sliceDoc(e-1,e))!=G.Word)return e;for(let s of t){let r=e-s.length;if(n.sliceDoc(r,e)==s&&i(n.sliceDoc(r-1,r))!=G.Word)return r}return-1}function Cy(n={}){return[ny,ve,le.of(n),ty,Qy,iu]}const au=[{key:"Ctrl-Space",run:ur},{mac:"Alt-`",run:ur},{mac:"Alt-i",run:ur},{key:"Escape",run:Y0},{key:"ArrowDown",run:Dn(!0)},{key:"ArrowUp",run:Dn(!1)},{key:"PageDown",run:Dn(!0,"page")},{key:"PageUp",run:Dn(!1,"page")},{key:"Enter",run:Z0}],Qy=Pt.highest(nn.computeN([le],n=>n.facet(le).defaultKeymap?[au]:[]));class Na{constructor(e,t,i){this.from=e,this.to=t,this.diagnostic=i}}class Wt{constructor(e,t,i){this.diagnostics=e,this.panel=t,this.selected=i}static init(e,t,i){let s=i.facet(Zi).markerFilter;s&&(e=s(e,i));let r=e.slice().sort((d,p)=>d.from-p.from||d.to-p.to),o=new pt,l=[],a=0,h=i.doc.iter(),c=0,f=i.doc.length;for(let d=0;;){let p=d==r.length?null:r[d];if(!p&&!l.length)break;let m,g;if(l.length)m=a,g=l.reduce((x,Q)=>Math.min(x,Q.to),p&&p.from>m?p.from:1e8);else{if(m=p.from,m>f)break;g=p.to,l.push(p),d++}for(;dx.from||x.to==m))l.push(x),d++,g=Math.min(x.to,g);else{g=Math.min(x.from,g);break}}g=Math.min(g,f);let y=!1;if(l.some(x=>x.from==m&&(x.to==g||g==f))&&(y=m==g,!y&&g-m<10)){let x=m-(c+h.value.length);x>0&&(h.next(x),c=m);for(let Q=m;;){if(Q>=g){y=!0;break}if(!h.lineBreak&&c+h.value.length>Q)break;Q=c+h.value.length,c+=h.value.length,h.next()}}let k=Iy(l);if(y)o.add(m,m,M.widget({widget:new By(k),diagnostics:l.slice()}));else{let x=l.reduce((Q,S)=>S.markClass?Q+" "+S.markClass:Q,"");o.add(m,g,M.mark({class:"cm-lintRange cm-lintRange-"+k+x,diagnostics:l.slice(),inclusiveEnd:l.some(Q=>Q.to>g)}))}if(a=g,a==f)break;for(let x=0;x{if(!(e&&o.diagnostics.indexOf(e)<0))if(!i)i=new Na(s,r,e||o.diagnostics[0]);else{if(o.diagnostics.indexOf(i.diagnostic)<0)return!1;i=new Na(i.from,r,i.diagnostic)}}),i}function Ay(n,e){let t=e.pos,i=e.end||t,s=n.state.facet(Zi).hideOn(n,t,i);if(s!=null)return s;let r=n.startState.doc.lineAt(e.pos);return!!(n.effects.some(o=>o.is(hu))||n.changes.touchesRange(r.from,Math.max(r.to,i)))}function Py(n,e){return n.field(Ee,!1)?e:e.concat(D.appendConfig.of(Ny))}const hu=D.define(),rl=D.define(),cu=D.define(),Ee=he.define({create(){return new Wt(M.none,null,null)},update(n,e){if(e.docChanged&&n.diagnostics.size){let t=n.diagnostics.map(e.changes),i=null,s=n.panel;if(n.selected){let r=e.changes.mapPos(n.selected.from,1);i=di(t,n.selected.diagnostic,r)||di(t,null,r)}!t.size&&s&&e.state.facet(Zi).autoPanel&&(s=null),n=new Wt(t,s,i)}for(let t of e.effects)if(t.is(hu)){let i=e.state.facet(Zi).autoPanel?t.value.length?Yi.open:null:n.panel;n=Wt.init(t.value,i,e.state)}else t.is(rl)?n=new Wt(n.diagnostics,t.value?Yi.open:null,n.selected):t.is(cu)&&(n=new Wt(n.diagnostics,n.panel,t.value));return n},provide:n=>[Vi.from(n,e=>e.panel),C.decorations.from(n,e=>e.diagnostics)]}),My=M.mark({class:"cm-lintRange cm-lintRange-active"});function Ry(n,e,t){let{diagnostics:i}=n.state.field(Ee),s,r=-1,o=-1;i.between(e-(t<0?1:0),e+(t>0?1:0),(a,h,{spec:c})=>{if(e>=a&&e<=h&&(a==h||(e>a||t>0)&&(euu(n,t,!1)))}const Dy=n=>{let e=n.state.field(Ee,!1);(!e||!e.panel)&&n.dispatch({effects:Py(n.state,[rl.of(!0)])});let t=Lo(n,Yi.open);return t&&t.dom.querySelector(".cm-panel-lint ul").focus(),!0},Va=n=>{let e=n.state.field(Ee,!1);return!e||!e.panel?!1:(n.dispatch({effects:rl.of(!1)}),!0)},qy=n=>{let e=n.state.field(Ee,!1);if(!e)return!1;let t=n.state.selection.main,i=e.diagnostics.iter(t.to+1);return!i.value&&(i=e.diagnostics.iter(0),!i.value||i.from==t.from&&i.to==t.to)?!1:(n.dispatch({selection:{anchor:i.from,head:i.to},scrollIntoView:!0}),!0)},Wy=[{key:"Mod-Shift-m",run:Dy,preventDefault:!0},{key:"F8",run:qy}],Zi=A.define({combine(n){return{sources:n.map(e=>e.source).filter(e=>e!=null),...rt(n.map(e=>e.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{delay:Math.max,markerFilter:Xa,tooltipFilter:Xa,needsRefresh:(e,t)=>e?t?i=>e(i)||t(i):e:t,hideOn:(e,t)=>e?t?(i,s,r)=>e(i,s,r)||t(i,s,r):e:t,autoPanel:(e,t)=>e||t})}}});function Xa(n,e){return n?e?(t,i)=>e(n(t,i),i):n:e}function fu(n){let e=[];if(n)e:for(let{name:t}of n){for(let i=0;ir.toLowerCase()==s.toLowerCase())){e.push(s);continue e}}e.push("")}return e}function uu(n,e,t){var i;let s=t?fu(e.actions):[];return _("li",{class:"cm-diagnostic cm-diagnostic-"+e.severity},_("span",{class:"cm-diagnosticText"},e.renderMessage?e.renderMessage(n):e.message),(i=e.actions)===null||i===void 0?void 0:i.map((r,o)=>{let l=!1,a=d=>{if(d.preventDefault(),l)return;l=!0;let p=di(n.state.field(Ee).diagnostics,e);p&&r.apply(n,p.from,p.to)},{name:h}=r,c=s[o]?h.indexOf(s[o]):-1,f=c<0?h:[h.slice(0,c),_("u",h.slice(c,c+1)),h.slice(c+1)],u=r.markClass?" "+r.markClass:"";return _("button",{type:"button",class:"cm-diagnosticAction"+u,onclick:a,onmousedown:a,"aria-label":` Action: ${h}${c<0?"":` (access key "${s[o]})"`}.`},f)}),e.source&&_("div",{class:"cm-diagnosticSource"},e.source))}class By extends Xe{constructor(e){super(),this.sev=e}eq(e){return e.sev==this.sev}toDOM(){return _("span",{class:"cm-lintPoint cm-lintPoint-"+this.sev})}}class Fa{constructor(e,t){this.diagnostic=t,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=uu(e,t,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class Yi{constructor(e){this.view=e,this.items=[];let t=s=>{if(!(s.ctrlKey||s.altKey||s.metaKey)){if(s.keyCode==27)Va(this.view),this.view.focus();else if(s.keyCode==38||s.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(s.keyCode==40||s.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(s.keyCode==36)this.moveSelection(0);else if(s.keyCode==35)this.moveSelection(this.items.length-1);else if(s.keyCode==13)this.view.focus();else if(s.keyCode>=65&&s.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:r}=this.items[this.selectedIndex],o=fu(r.actions);for(let l=0;l{for(let r=0;rVa(this.view)},"×")),this.update()}get selectedIndex(){let e=this.view.state.field(Ee).selected;if(!e)return-1;for(let t=0;t{for(let c of h.diagnostics){if(o.has(c))continue;o.add(c);let f=-1,u;for(let d=i;di&&(this.items.splice(i,f-i),s=!0)),t&&u.diagnostic==t.diagnostic?u.dom.hasAttribute("aria-selected")||(u.dom.setAttribute("aria-selected","true"),r=u):u.dom.hasAttribute("aria-selected")&&u.dom.removeAttribute("aria-selected"),i++}});i({sel:r.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:l,panel:a})=>{let h=a.height/this.list.offsetHeight;l.topa.bottom&&(this.list.scrollTop+=(l.bottom-a.bottom)/h)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),s&&this.sync()}sync(){let e=this.list.firstChild;function t(){let i=e;e=i.nextSibling,i.remove()}for(let i of this.items)if(i.dom.parentNode==this.list){for(;e!=i.dom;)t();e=i.dom.nextSibling}else this.list.insertBefore(i.dom,e);for(;e;)t()}moveSelection(e){if(this.selectedIndex<0)return;let t=this.view.state.field(Ee),i=di(t.diagnostics,this.items[e].diagnostic);i&&this.view.dispatch({selection:{anchor:i.from,head:i.to},scrollIntoView:!0,effects:cu.of(i)})}static open(e){return new Yi(e)}}function $y(n,e='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,${encodeURIComponent(n)}')`}function qn(n){return $y(``,'width="6" height="3"')}const Ly=C.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnostic-hint":{borderLeft:"5px solid #66d"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px",cursor:"pointer"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:qn("#d11")},".cm-lintRange-warning":{backgroundImage:qn("orange")},".cm-lintRange-info":{backgroundImage:qn("#999")},".cm-lintRange-hint":{backgroundImage:qn("#66d")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-lintPoint-hint":{"&:after":{borderBottomColor:"#66d"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}}});function zy(n){return n=="error"?4:n=="warning"?3:n=="info"?2:1}function Iy(n){let e="hint",t=1;for(let i of n){let s=zy(i.severity);s>t&&(t=s,e=i.severity)}return e}const Ny=[Ee,C.decorations.compute([Ee],n=>{let{selected:e,panel:t}=n.field(Ee);return!e||!t||e.from==e.to?M.none:M.set([My.range(e.from,e.to)])}),xm(Ry,{hideOn:Ay}),Ly];var _a=function(e){e===void 0&&(e={});var{crosshairCursor:t=!1}=e,i=[];e.closeBracketsKeymap!==!1&&(i=i.concat(by)),e.defaultKeymap!==!1&&(i=i.concat(t0)),e.searchKeymap!==!1&&(i=i.concat(A0)),e.historyKeymap!==!1&&(i=i.concat(aO)),e.foldKeymap!==!1&&(i=i.concat(kg)),e.completionKeymap!==!1&&(i=i.concat(au)),e.lintKeymap!==!1&&(i=i.concat(Wy));var s=[];return e.lineNumbers!==!1&&s.push(Dm()),e.highlightActiveLineGutter!==!1&&s.push(Bm()),e.highlightSpecialChars!==!1&&s.push(Gp()),e.history!==!1&&s.push(Jg()),e.foldGutter!==!1&&s.push(Cg()),e.drawSelection!==!1&&s.push(Lp()),e.dropCursor!==!1&&s.push(Xp()),e.allowMultipleSelections!==!1&&s.push(N.allowMultipleSelections.of(!0)),e.indentOnInput!==!1&&s.push(ug()),e.syntaxHighlighting!==!1&&s.push(rf(Mg,{fallback:!0})),e.bracketMatching!==!1&&s.push($g()),e.closeBrackets!==!1&&s.push(my()),e.autocompletion!==!1&&s.push(Cy()),e.rectangularSelection!==!1&&s.push(hm()),t!==!1&&s.push(um()),e.highlightActiveLine!==!1&&s.push(tm()),e.highlightSelectionMatches!==!1&&s.push(l0()),e.tabSize&&typeof e.tabSize=="number"&&s.push(rn.of(" ".repeat(e.tabSize))),s.concat([nn.of(i.flat())]).filter(Boolean)};const Vy="#e5c07b",Ua="#e06c75",Xy="#56b6c2",Fy="#ffffff",Fn="#abb2bf",yo="#7d8799",_y="#61afef",Uy="#98c379",Ha="#d19a66",Hy="#c678dd",jy="#21252b",ja="#2c313a",Ga="#282c34",pr="#353a42",Gy="#3E4451",Za="#528bff",Zy=C.theme({"&":{color:Fn,backgroundColor:Ga},".cm-content":{caretColor:Za},".cm-cursor, .cm-dropCursor":{borderLeftColor:Za},"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:Gy},".cm-panels":{backgroundColor:jy,color:Fn},".cm-panels.cm-panels-top":{borderBottom:"2px solid black"},".cm-panels.cm-panels-bottom":{borderTop:"2px solid black"},".cm-searchMatch":{backgroundColor:"#72a1ff59",outline:"1px solid #457dff"},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:"#6199ff2f"},".cm-activeLine":{backgroundColor:"#6699ff0b"},".cm-selectionMatch":{backgroundColor:"#aafe661a"},"&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bad0f847"},".cm-gutters":{backgroundColor:Ga,color:yo,border:"none"},".cm-activeLineGutter":{backgroundColor:ja},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:pr},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:pr,borderBottomColor:pr},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:ja,color:Fn}}},{dark:!0}),Yy=ln.define([{tag:O.keyword,color:Hy},{tag:[O.name,O.deleted,O.character,O.propertyName,O.macroName],color:Ua},{tag:[O.function(O.variableName),O.labelName],color:_y},{tag:[O.color,O.constant(O.name),O.standard(O.name)],color:Ha},{tag:[O.definition(O.name),O.separator],color:Fn},{tag:[O.typeName,O.className,O.number,O.changed,O.annotation,O.modifier,O.self,O.namespace],color:Vy},{tag:[O.operator,O.operatorKeyword,O.url,O.escape,O.regexp,O.link,O.special(O.string)],color:Xy},{tag:[O.meta,O.comment],color:yo},{tag:O.strong,fontWeight:"bold"},{tag:O.emphasis,fontStyle:"italic"},{tag:O.strikethrough,textDecoration:"line-through"},{tag:O.link,color:yo,textDecoration:"underline"},{tag:O.heading,fontWeight:"bold",color:Ua},{tag:[O.atom,O.bool,O.special(O.variableName)],color:Ha},{tag:[O.processingInstruction,O.string,O.inserted],color:Uy},{tag:O.invalid,color:Fy}]),du=[Zy,rf(Yy)];var Ky=C.theme({"&":{backgroundColor:"#fff"}},{dark:!1}),Jy=function(e){e===void 0&&(e={});var{indentWithTab:t=!0,editable:i=!0,readOnly:s=!1,theme:r="light",placeholder:o="",basicSetup:l=!0}=e,a=[];switch(t&&a.unshift(nn.of([i0])),l&&(typeof l=="boolean"?a.unshift(_a()):a.unshift(_a(l))),o&&a.unshift(rm(o)),r){case"light":a.push(Ky);break;case"dark":a.push(du);break;case"none":break;default:a.push(r);break}return i===!1&&a.push(C.editable.of(!1)),s&&a.push(N.readOnly.of(!0)),[...a]},e1=n=>({line:n.state.doc.lineAt(n.state.selection.main.from),lineCount:n.state.doc.lines,lineBreak:n.state.lineBreak,length:n.state.doc.length,readOnly:n.state.readOnly,tabSize:n.state.tabSize,selection:n.state.selection,selectionAsSingle:n.state.selection.asSingle().main,ranges:n.state.selection.ranges,selectionCode:n.state.sliceDoc(n.state.selection.main.from,n.state.selection.main.to),selections:n.state.selection.ranges.map(e=>n.state.sliceDoc(e.from,e.to)),selectedText:n.state.selection.ranges.some(e=>!e.empty)});class t1{constructor(e,t){this.timeLeftMS=void 0,this.timeoutMS=void 0,this.isCancelled=!1,this.isTimeExhausted=!1,this.callbacks=[],this.timeLeftMS=t,this.timeoutMS=t,this.callbacks.push(e)}tick(){if(!this.isCancelled&&!this.isTimeExhausted&&(this.timeLeftMS--,this.timeLeftMS<=0)){this.isTimeExhausted=!0;var e=this.callbacks.slice();this.callbacks.length=0,e.forEach(t=>{try{t()}catch(i){console.error("TimeoutLatch callback error:",i)}})}}cancel(){this.isCancelled=!0,this.callbacks.length=0}reset(){this.timeLeftMS=this.timeoutMS,this.isCancelled=!1,this.isTimeExhausted=!1}get isDone(){return this.isCancelled||this.isTimeExhausted}}class Ya{constructor(){this.interval=null,this.latches=new Set}add(e){this.latches.add(e),this.start()}remove(e){this.latches.delete(e),this.latches.size===0&&this.stop()}start(){this.interval===null&&(this.interval=setInterval(()=>{this.latches.forEach(e=>{e.tick(),e.isDone&&this.remove(e)})},1))}stop(){this.interval!==null&&(clearInterval(this.interval),this.interval=null)}}var mr=null,i1=()=>typeof window>"u"?new Ya:(mr||(mr=new Ya),mr),Ka=st.define(),n1=200,s1=[];function r1(n){var{value:e,selection:t,onChange:i,onStatistics:s,onCreateEditor:r,onUpdate:o,extensions:l=s1,autoFocus:a,theme:h="light",height:c=null,minHeight:f=null,maxHeight:u=null,width:d=null,minWidth:p=null,maxWidth:m=null,placeholder:g="",editable:y=!0,readOnly:k=!1,indentWithTab:x=!0,basicSetup:Q=!0,root:S,initialState:w}=n,[v,q]=be.useState(),[R,I]=be.useState(),[W,E]=be.useState(),B=be.useState(()=>({current:null}))[0],$=be.useState(()=>({current:null}))[0],X=C.theme({"&":{height:c,minHeight:f,maxHeight:u,width:d,minWidth:p,maxWidth:m},"& .cm-scroller":{height:"100% !important"}}),ne=C.updateListener.of(F=>{if(F.docChanged&&typeof i=="function"&&!F.transactions.some(ge=>ge.annotation(Ka))){B.current?B.current.reset():(B.current=new t1(()=>{if($.current){var ge=$.current;$.current=null,ge()}B.current=null},n1),i1().add(B.current));var ee=F.state.doc,ce=ee.toString();i(ce,F)}s&&s(e1(F))}),oe=Jy({theme:h,editable:y,readOnly:k,placeholder:g,indentWithTab:x,basicSetup:Q}),me=[ne,X,...oe];return o&&typeof o=="function"&&me.push(C.updateListener.of(o)),me=me.concat(l),be.useLayoutEffect(()=>{if(v&&!W){var F={doc:e,selection:t,extensions:me},ee=w?N.fromJSON(w.json,F,w.fields):N.create(F);if(E(ee),!R){var ce=new C({state:ee,parent:v,root:S});I(ce),r&&r(ce,ee)}}return()=>{R&&(E(void 0),I(void 0))}},[v,W]),be.useEffect(()=>{n.container&&q(n.container)},[n.container]),be.useEffect(()=>()=>{R&&(R.destroy(),I(void 0)),B.current&&(B.current.cancel(),B.current=null)},[R]),be.useEffect(()=>{a&&R&&R.focus()},[a,R]),be.useEffect(()=>{R&&R.dispatch({effects:D.reconfigure.of(me)})},[h,l,c,f,u,d,p,m,g,y,k,x,Q,i,o]),be.useEffect(()=>{if(e!==void 0){var F=R?R.state.doc.toString():"";if(R&&e!==F){var ee=B.current&&!B.current.isDone,ce=()=>{R&&e!==R.state.doc.toString()&&R.dispatch({changes:{from:0,to:R.state.doc.toString().length,insert:e||""},annotations:[Ka.of(!0)]})};ee?$.current=ce:ce()}}},[e,R]),{state:W,setState:E,view:R,setView:I,container:v,setContainer:q}}var o1=["className","value","selection","extensions","onChange","onStatistics","onCreateEditor","onUpdate","autoFocus","theme","height","minHeight","maxHeight","width","minWidth","maxWidth","basicSetup","placeholder","indentWithTab","editable","readOnly","root","initialState"],pu=be.forwardRef((n,e)=>{var{className:t,value:i="",selection:s,extensions:r=[],onChange:o,onStatistics:l,onCreateEditor:a,onUpdate:h,autoFocus:c,theme:f="light",height:u,minHeight:d,maxHeight:p,width:m,minWidth:g,maxWidth:y,basicSetup:k,placeholder:x,indentWithTab:Q,editable:S,readOnly:w,root:v,initialState:q}=n,R=Tu(n,o1),I=be.useRef(null),{state:W,view:E,container:B,setContainer:$}=r1({root:v,value:i,autoFocus:c,theme:f,height:u,minHeight:d,maxHeight:p,width:m,minWidth:g,maxWidth:y,basicSetup:k,placeholder:x,indentWithTab:Q,editable:S,readOnly:w,selection:s,onChange:o,onStatistics:l,onCreateEditor:a,onUpdate:h,extensions:r,initialState:q});be.useImperativeHandle(e,()=>({editor:I.current,state:W,view:E}),[I,B,W,E]);var X=be.useCallback(oe=>{I.current=oe,$(oe)},[$]);if(typeof i!="string")throw new Error("value must be typeof string but got "+typeof i);var ne=typeof f=="string"?"cm-theme-"+f:"cm-theme";return vr.jsx("div",wr({ref:X,className:""+ne+(t?" "+t:"")},R))});pu.displayName="CodeMirror";var Ja={};class bs{constructor(e,t,i,s,r,o,l,a,h,c=0,f){this.p=e,this.stack=t,this.state=i,this.reducePos=s,this.pos=r,this.score=o,this.buffer=l,this.bufferBase=a,this.curContext=h,this.lookAhead=c,this.parent=f}toString(){return`[${this.stack.filter((e,t)=>t%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,t,i=0){let s=e.parser.context;return new bs(e,[],t,i,i,0,[],0,s?new eh(s,s.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,t){this.stack.push(this.state,t,this.bufferBase+this.buffer.length),this.state=e}reduce(e){var t;let i=e>>19,s=e&65535,{parser:r}=this.p,o=this.reducePos=2e3&&!(!((t=this.p.parser.nodeSet.types[s])===null||t===void 0)&&t.isAnonymous)&&(h==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=c):this.p.lastBigReductionSizea;)this.stack.pop();this.reduceContext(s,h)}storeNode(e,t,i,s=4,r=!1){if(e==0&&(!this.stack.length||this.stack[this.stack.length-1]0&&o.buffer[l-4]==0&&o.buffer[l-1]>-1){if(t==i)return;if(o.buffer[l-2]>=t){o.buffer[l-2]=i;return}}}if(!r||this.pos==i)this.buffer.push(e,t,i,s);else{let o=this.buffer.length;if(o>0&&(this.buffer[o-4]!=0||this.buffer[o-1]<0)){let l=!1;for(let a=o;a>0&&this.buffer[a-2]>i;a-=4)if(this.buffer[a-1]>=0){l=!0;break}if(l)for(;o>0&&this.buffer[o-2]>i;)this.buffer[o]=this.buffer[o-4],this.buffer[o+1]=this.buffer[o-3],this.buffer[o+2]=this.buffer[o-2],this.buffer[o+3]=this.buffer[o-1],o-=4,s>4&&(s-=4)}this.buffer[o]=e,this.buffer[o+1]=t,this.buffer[o+2]=i,this.buffer[o+3]=s}}shift(e,t,i,s){if(e&131072)this.pushState(e&65535,this.pos);else if((e&262144)==0){let r=e,{parser:o}=this.p;this.pos=s;let l=o.stateFlag(r,1);!l&&(s>i||t<=o.maxNode)&&(this.reducePos=s),this.pushState(r,l?i:Math.min(i,this.reducePos)),this.shiftContext(t,i),t<=o.maxNode&&this.buffer.push(t,i,s,4)}else this.pos=s,this.shiftContext(t,i),t<=this.p.parser.maxNode&&this.buffer.push(t,i,s,4)}apply(e,t,i,s){e&65536?this.reduce(e):this.shift(e,t,i,s)}useNode(e,t){let i=this.p.reused.length-1;(i<0||this.p.reused[i]!=e)&&(this.p.reused.push(e),i++);let s=this.pos;this.reducePos=this.pos=s+e.length,this.pushState(t,s),this.buffer.push(i,s,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let e=this,t=e.buffer.length;for(;t>0&&e.buffer[t-2]>e.reducePos;)t-=4;let i=e.buffer.slice(t),s=e.bufferBase+t;for(;e&&s==e.bufferBase;)e=e.parent;return new bs(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,i,s,this.curContext,this.lookAhead,e)}recoverByDelete(e,t){let i=e<=this.p.parser.maxNode;i&&this.storeNode(e,this.pos,t,4),this.storeNode(0,this.pos,t,i?8:4),this.pos=this.reducePos=t,this.score-=190}canShift(e){for(let t=new l1(this);;){let i=this.p.parser.stateSlot(t.state,4)||this.p.parser.hasAction(t.state,e);if(i==0)return!1;if((i&65536)==0)return!0;t.reduce(i)}}recoverByInsert(e){if(this.stack.length>=300)return[];let t=this.p.parser.nextStates(this.state);if(t.length>8||this.stack.length>=120){let s=[];for(let r=0,o;ra&1&&l==o)||s.push(t[r],o)}t=s}let i=[];for(let s=0;s>19,s=t&65535,r=this.stack.length-i*3;if(r<0||e.getGoto(this.stack[r],s,!1)<0){let o=this.findForcedReduction();if(o==null)return!1;t=o}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(t),!0}findForcedReduction(){let{parser:e}=this.p,t=[],i=(s,r)=>{if(!t.includes(s))return t.push(s),e.allActions(s,o=>{if(!(o&393216))if(o&65536){let l=(o>>19)-r;if(l>1){let a=o&65535,h=this.stack.length-l*3;if(h>=0&&e.getGoto(this.stack[h],a,!1)>=0)return l<<19|65536|a}}else{let l=i(o,r+1);if(l!=null)return l}})};return i(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:e}=this.p;return e.data[e.stateSlot(this.state,1)]==65535&&!e.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let t=0;t0&&this.emitLookAhead()}}class eh{constructor(e,t){this.tracker=e,this.context=t,this.hash=e.strict?e.hash(t):0}}class l1{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let t=e&65535,i=e>>19;i==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(i-1)*3;let s=this.start.p.parser.getGoto(this.stack[this.base-3],t,!0);this.state=s}}class xs{constructor(e,t,i){this.stack=e,this.pos=t,this.index=i,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,t=e.bufferBase+e.buffer.length){return new xs(e,t,t-e.bufferBase)}maybeNext(){let e=this.stack.parent;e!=null&&(this.index=this.stack.bufferBase-e.bufferBase,this.stack=e,this.buffer=e.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new xs(this.stack,this.pos,this.index)}}function Wn(n,e=Uint16Array){if(typeof n!="string")return n;let t=null;for(let i=0,s=0;i=92&&o--,o>=34&&o--;let a=o-32;if(a>=46&&(a-=46,l=!0),r+=a,l)break;r*=46}t?t[s++]=r:t=new e(r)}return t}class _n{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}}const th=new _n;class a1{constructor(e,t){this.input=e,this.ranges=t,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=th,this.rangeIndex=0,this.pos=this.chunkPos=t[0].from,this.range=t[0],this.end=t[t.length-1].to,this.readNext()}resolveOffset(e,t){let i=this.range,s=this.rangeIndex,r=this.pos+e;for(;ri.to:r>=i.to;){if(s==this.ranges.length-1)return null;let o=this.ranges[++s];r+=o.from-i.to,i=o}return r}clipPos(e){if(e>=this.range.from&&ee)return Math.max(e,t.from);return this.end}peek(e){let t=this.chunkOff+e,i,s;if(t>=0&&t=this.chunk2Pos&&il.to&&(this.chunk2=this.chunk2.slice(0,l.to-i)),s=this.chunk2.charCodeAt(0)}}return i>=this.token.lookAhead&&(this.token.lookAhead=i+1),s}acceptToken(e,t=0){let i=t?this.resolveOffset(t,-1):this.pos;if(i==null||i=this.chunk2Pos&&this.posthis.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(e,t){if(t?(this.token=t,t.start=e,t.lookAhead=e+1,t.value=t.extended=-1):this.token=th,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e=this.chunkPos&&t<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,t-this.chunkPos);if(e>=this.chunk2Pos&&t<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,t-this.chunk2Pos);if(e>=this.range.from&&t<=this.range.to)return this.input.read(e,t);let i="";for(let s of this.ranges){if(s.from>=t)break;s.to>e&&(i+=this.input.read(Math.max(s.from,e),Math.min(s.to,t)))}return i}}class ri{constructor(e,t){this.data=e,this.id=t}token(e,t){let{parser:i}=t.p;h1(this.data,e,t,this.id,i.data,i.tokenPrecTable)}}ri.prototype.contextual=ri.prototype.fallback=ri.prototype.extend=!1;ri.prototype.fallback=ri.prototype.extend=!1;class Bs{constructor(e,t={}){this.token=e,this.contextual=!!t.contextual,this.fallback=!!t.fallback,this.extend=!!t.extend}}function h1(n,e,t,i,s,r){let o=0,l=1<0){let p=n[d];if(a.allows(p)&&(e.token.value==-1||e.token.value==p||c1(p,e.token.value,s,r))){e.acceptToken(p);break}}let c=e.next,f=0,u=n[o+2];if(e.next<0&&u>f&&n[h+u*3-3]==65535){o=n[h+u*3-1];continue e}for(;f>1,p=h+d+(d<<1),m=n[p],g=n[p+1]||65536;if(c=g)f=d+1;else{o=n[p+2],e.advance();continue e}}break}}function ih(n,e,t){for(let i=e,s;(s=n[i])!=65535;i++)if(s==t)return i-e;return-1}function c1(n,e,t,i){let s=ih(t,i,e);return s<0||ih(t,i,n)e)&&!i.type.isError)return t<0?Math.max(0,Math.min(i.to-1,e-25)):Math.min(n.length,Math.max(i.from+1,e+25));if(t<0?i.prevSibling():i.nextSibling())break;if(!i.parent())return t<0?0:n.length}}class f1{constructor(e,t){this.fragments=e,this.nodeSet=t,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?nh(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?nh(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(ee)return this.nextStart=o,null;if(r instanceof K){if(o==e){if(o=Math.max(this.safeFrom,e)&&(this.trees.push(r),this.start.push(o),this.index.push(0))}else this.index[t]++,this.nextStart=o+r.length}}}class u1{constructor(e,t){this.stream=t,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(i=>new _n)}getActions(e){let t=0,i=null,{parser:s}=e.p,{tokenizers:r}=s,o=s.stateSlot(e.state,3),l=e.curContext?e.curContext.hash:0,a=0;for(let h=0;hf.end+25&&(a=Math.max(f.lookAhead,a)),f.value!=0)){let u=t;if(f.extended>-1&&(t=this.addActions(e,f.extended,f.end,t)),t=this.addActions(e,f.value,f.end,t),!c.extend&&(i=f,t>u))break}}for(;this.actions.length>t;)this.actions.pop();return a&&e.setLookAhead(a),!i&&e.pos==this.stream.end&&(i=new _n,i.value=e.p.parser.eofTerm,i.start=i.end=e.pos,t=this.addActions(e,i.value,i.end,t)),this.mainToken=i,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let t=new _n,{pos:i,p:s}=e;return t.start=i,t.end=Math.min(i+1,s.stream.end),t.value=i==s.stream.end?s.parser.eofTerm:0,t}updateCachedToken(e,t,i){let s=this.stream.clipPos(i.pos);if(t.token(this.stream.reset(s,e),i),e.value>-1){let{parser:r}=i.p;for(let o=0;o=0&&i.p.parser.dialect.allows(l>>1)){(l&1)==0?e.value=l>>1:e.extended=l>>1;break}}}else e.value=0,e.end=this.stream.clipPos(s+1)}putAction(e,t,i,s){for(let r=0;re.bufferLength*4?new f1(i,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,t=this.minStackPos,i=this.stacks=[],s,r;if(this.bigReductionCount>300&&e.length==1){let[o]=e;for(;o.forceReduce()&&o.stack.length&&o.stack[o.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let o=0;ot)i.push(l);else{if(this.advanceStack(l,i,e))continue;{s||(s=[],r=[]),s.push(l);let a=this.tokens.getMainToken(l);r.push(a.value,a.end)}}break}}if(!i.length){let o=s&&g1(s);if(o)return Me&&console.log("Finish with "+this.stackID(o)),this.stackToTree(o);if(this.parser.strict)throw Me&&s&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+t);this.recovering||(this.recovering=5)}if(this.recovering&&s){let o=this.stoppedAt!=null&&s[0].pos>this.stoppedAt?s[0]:this.runRecovery(s,r,i);if(o)return Me&&console.log("Force-finish "+this.stackID(o)),this.stackToTree(o.forceAll())}if(this.recovering){let o=this.recovering==1?1:this.recovering*3;if(i.length>o)for(i.sort((l,a)=>a.score-l.score);i.length>o;)i.pop();i.some(l=>l.reducePos>t)&&this.recovering--}else if(i.length>1){e:for(let o=0;o500&&h.buffer.length>500)if((l.score-h.score||l.buffer.length-h.buffer.length)>0)i.splice(a--,1);else{i.splice(o--,1);continue e}}}i.length>12&&(i.sort((o,l)=>l.score-o.score),i.splice(12,i.length-12))}this.minStackPos=i[0].pos;for(let o=1;o ":"";if(this.stoppedAt!=null&&s>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let h=e.curContext&&e.curContext.tracker.strict,c=h?e.curContext.hash:0;for(let f=this.fragments.nodeAt(s);f;){let u=this.parser.nodeSet.types[f.type.id]==f.type?r.getGoto(e.state,f.type.id):-1;if(u>-1&&f.length&&(!h||(f.prop(L.contextHash)||0)==c))return e.useNode(f,u),Me&&console.log(o+this.stackID(e)+` (via reuse of ${r.getName(f.type.id)})`),!0;if(!(f instanceof K)||f.children.length==0||f.positions[0]>0)break;let d=f.children[0];if(d instanceof K&&f.positions[0]==0)f=d;else break}}let l=r.stateSlot(e.state,4);if(l>0)return e.reduce(l),Me&&console.log(o+this.stackID(e)+` (via always-reduce ${r.getName(l&65535)})`),!0;if(e.stack.length>=8400)for(;e.stack.length>6e3&&e.forceReduce(););let a=this.tokens.getActions(e);for(let h=0;hs?t.push(p):i.push(p)}return!1}advanceFully(e,t){let i=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>i)return sh(e,t),!0}}runRecovery(e,t,i){let s=null,r=!1;for(let o=0;o ":"";if(l.deadEnd&&(r||(r=!0,l.restart(),Me&&console.log(c+this.stackID(l)+" (restarted)"),this.advanceFully(l,i))))continue;let f=l.split(),u=c;for(let d=0;d<10&&f.forceReduce()&&(Me&&console.log(u+this.stackID(f)+" (via force-reduce)"),!this.advanceFully(f,i));d++)Me&&(u=this.stackID(f)+" -> ");for(let d of l.recoverByInsert(a))Me&&console.log(c+this.stackID(d)+" (via recover-insert)"),this.advanceFully(d,i);this.stream.end>l.pos?(h==l.pos&&(h++,a=0),l.recoverByDelete(a,h),Me&&console.log(c+this.stackID(l)+` (via recover-delete ${this.parser.getName(a)})`),sh(l,i)):(!s||s.scoren;class m1{constructor(e){this.start=e.start,this.shift=e.shift||Or,this.reduce=e.reduce||Or,this.reuse=e.reuse||Or,this.hash=e.hash||(()=>0),this.strict=e.strict!==!1}}class Ss extends Nc{constructor(e){if(super(),this.wrappers=[],e.version!=14)throw new RangeError(`Parser version (${e.version}) doesn't match runtime version (14)`);let t=e.nodeNames.split(" ");this.minRepeatTerm=t.length;for(let l=0;le.topRules[l][1]),s=[];for(let l=0;l=0)r(c,a,l[h++]);else{let f=l[h+-c];for(let u=-c;u>0;u--)r(l[h++],a,f);h++}}}this.nodeSet=new zo(t.map((l,a)=>Ae.define({name:a>=this.minRepeatTerm?void 0:l,id:a,props:s[a],top:i.indexOf(a)>-1,error:a==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(a)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=$c;let o=Wn(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let l=0;ltypeof l=="number"?new ri(o,l):l),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,t,i){let s=new d1(this,e,t,i);for(let r of this.wrappers)s=r(s,e,t,i);return s}getGoto(e,t,i=!1){let s=this.goto;if(t>=s[0])return-1;for(let r=s[t+1];;){let o=s[r++],l=o&1,a=s[r++];if(l&&i)return a;for(let h=r+(o>>1);r0}validAction(e,t){return!!this.allActions(e,i=>i==t?!0:null)}allActions(e,t){let i=this.stateSlot(e,4),s=i?t(i):void 0;for(let r=this.stateSlot(e,1);s==null;r+=3){if(this.data[r]==65535)if(this.data[r+1]==1)r=ft(this.data,r+2);else break;s=t(ft(this.data,r+1))}return s}nextStates(e){let t=[];for(let i=this.stateSlot(e,1);;i+=3){if(this.data[i]==65535)if(this.data[i+1]==1)i=ft(this.data,i+2);else break;if((this.data[i+2]&1)==0){let s=this.data[i+1];t.some((r,o)=>o&1&&r==s)||t.push(this.data[i],s)}}return t}configure(e){let t=Object.assign(Object.create(Ss.prototype),this);if(e.props&&(t.nodeSet=this.nodeSet.extend(...e.props)),e.top){let i=this.topRules[e.top];if(!i)throw new RangeError(`Invalid top rule name ${e.top}`);t.top=i}return e.tokenizers&&(t.tokenizers=this.tokenizers.map(i=>{let s=e.tokenizers.find(r=>r.from==i);return s?s.to:i})),e.specializers&&(t.specializers=this.specializers.slice(),t.specializerSpecs=this.specializerSpecs.map((i,s)=>{let r=e.specializers.find(l=>l.from==i.external);if(!r)return i;let o=Object.assign(Object.assign({},i),{external:r.to});return t.specializers[s]=rh(o),o})),e.contextTracker&&(t.context=e.contextTracker),e.dialect&&(t.dialect=this.parseDialect(e.dialect)),e.strict!=null&&(t.strict=e.strict),e.wrap&&(t.wrappers=t.wrappers.concat(e.wrap)),e.bufferLength!=null&&(t.bufferLength=e.bufferLength),t}hasWrappers(){return this.wrappers.length>0}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let t=this.dynamicPrecedences;return t==null?0:t[e]||0}parseDialect(e){let t=Object.keys(this.dialects),i=t.map(()=>!1);if(e)for(let r of e.split(" ")){let o=t.indexOf(r);o>=0&&(i[o]=!0)}let s=null;for(let r=0;ri)&&t.p.parser.stateFlag(t.state,2)&&(!e||e.scoren.external(t,i)<<1|e}return n.get}const O1=1,mu=194,gu=195,y1=196,oh=197,b1=198,x1=199,S1=200,k1=2,Ou=3,lh=201,v1=24,w1=25,T1=49,C1=50,Q1=55,A1=56,P1=57,M1=59,R1=60,E1=61,D1=62,q1=63,W1=65,B1=238,$1=71,L1=241,z1=242,I1=243,N1=244,V1=245,X1=246,F1=247,_1=248,yu=72,U1=249,H1=250,j1=251,G1=252,Z1=253,Y1=254,K1=255,J1=256,eb=73,tb=77,ib=263,nb=112,sb=130,rb=151,ob=152,lb=155,_t=10,Ki=13,ol=32,$s=9,ll=35,ab=40,hb=46,bo=123,ah=125,bu=39,xu=34,hh=92,cb=111,fb=120,ub=78,db=117,pb=85,mb=new Set([w1,T1,C1,ib,W1,sb,A1,P1,B1,D1,q1,yu,eb,tb,R1,E1,rb,ob,lb,nb]);function yr(n){return n==_t||n==Ki}function br(n){return n>=48&&n<=57||n>=65&&n<=70||n>=97&&n<=102}const gb=new Bs((n,e)=>{let t;if(n.next<0)n.acceptToken(x1);else if(e.context.flags&Un)yr(n.next)&&n.acceptToken(b1,1);else if(((t=n.peek(-1))<0||yr(t))&&e.canShift(oh)){let i=0;for(;n.next==ol||n.next==$s;)n.advance(),i++;(n.next==_t||n.next==Ki||n.next==ll)&&n.acceptToken(oh,-i)}else yr(n.next)&&n.acceptToken(y1,1)},{contextual:!0}),Ob=new Bs((n,e)=>{let t=e.context;if(t.flags)return;let i=n.peek(-1);if(i==_t||i==Ki){let s=0,r=0;for(;;){if(n.next==ol)s++;else if(n.next==$s)s+=8-s%8;else break;n.advance(),r++}s!=t.indent&&n.next!=_t&&n.next!=Ki&&n.next!=ll&&(s[n,e|Su])),xb=new m1({start:yb,reduce(n,e,t,i){return n.flags&Un&&mb.has(e)||(e==$1||e==yu)&&n.flags&Su?n.parent:n},shift(n,e,t,i){return e==mu?new Hn(n,bb(i.read(i.pos,t.pos)),0):e==gu?n.parent:e==v1||e==Q1||e==M1||e==Ou?new Hn(n,0,Un):ch.has(e)?new Hn(n,0,ch.get(e)|n.flags&Un):n},hash(n){return n.hash}}),Sb=new Bs(n=>{for(let e=0;e<5;e++){if(n.next!="print".charCodeAt(e))return;n.advance()}if(!/\w/.test(String.fromCharCode(n.next)))for(let e=0;;e++){let t=n.peek(e);if(!(t==ol||t==$s)){t!=ab&&t!=hb&&t!=_t&&t!=Ki&&t!=ll&&n.acceptToken(O1);return}}}),kb=new Bs((n,e)=>{let{flags:t}=e.context,i=t<?xu:bu,s=(t&at)>0,r=!(t&ht),o=(t&ct)>0,l=n.pos;for(;!(n.next<0);)if(o&&n.next==bo)if(n.peek(1)==bo)n.advance(2);else{if(n.pos==l){n.acceptToken(Ou,1);return}break}else if(r&&n.next==hh){if(n.pos==l){n.advance();let a=n.next;a>=0&&(n.advance(),vb(n,a)),n.acceptToken(k1);return}break}else if(n.next==hh&&!r&&n.peek(1)>-1)n.advance(2);else if(n.next==i&&(!s||n.peek(1)==i&&n.peek(2)==i)){if(n.pos==l){n.acceptToken(lh,s?3:1);return}break}else if(n.next==_t){if(s)n.advance();else if(n.pos==l){n.acceptToken(lh);return}break}else n.advance();n.pos>l&&n.acceptToken(S1)});function vb(n,e){if(e==cb)for(let t=0;t<2&&n.next>=48&&n.next<=55;t++)n.advance();else if(e==fb)for(let t=0;t<2&&br(n.next);t++)n.advance();else if(e==db)for(let t=0;t<4&&br(n.next);t++)n.advance();else if(e==pb)for(let t=0;t<8&&br(n.next);t++)n.advance();else if(e==ub&&n.next==bo){for(n.advance();n.next>=0&&n.next!=ah&&n.next!=bu&&n.next!=xu&&n.next!=_t;)n.advance();n.next==ah&&n.advance()}}const wb=Vc({'async "*" "**" FormatConversion FormatSpec':O.modifier,"for while if elif else try except finally return raise break continue with pass assert await yield match case":O.controlKeyword,"in not and or is del":O.operatorKeyword,"from def class global nonlocal lambda":O.definitionKeyword,import:O.moduleKeyword,"with as print":O.keyword,Boolean:O.bool,None:O.null,VariableName:O.variableName,"CallExpression/VariableName":O.function(O.variableName),"FunctionDefinition/VariableName":O.function(O.definition(O.variableName)),"ClassDefinition/VariableName":O.definition(O.className),PropertyName:O.propertyName,"CallExpression/MemberExpression/PropertyName":O.function(O.propertyName),Comment:O.lineComment,Number:O.number,String:O.string,FormatString:O.special(O.string),Escape:O.escape,UpdateOp:O.updateOperator,"ArithOp!":O.arithmeticOperator,BitOp:O.bitwiseOperator,CompareOp:O.compareOperator,AssignOp:O.definitionOperator,Ellipsis:O.punctuation,At:O.meta,"( )":O.paren,"[ ]":O.squareBracket,"{ }":O.brace,".":O.derefOperator,", ;":O.separator}),Tb={__proto__:null,await:44,or:54,and:56,in:60,not:62,is:64,if:70,else:72,lambda:76,yield:94,from:96,async:102,for:104,None:162,True:164,False:164,del:178,pass:182,break:186,continue:190,return:194,raise:202,import:206,as:208,global:212,nonlocal:214,assert:218,type:223,elif:236,while:240,try:246,except:248,finally:250,with:254,def:258,class:268,match:279,case:285},Cb=Ss.deserialize({version:14,states:"##jO`QeOOP$}OSOOO&WQtO'#HUOOQS'#Co'#CoOOQS'#Cp'#CpO'vQdO'#CnO*UQtO'#HTOOQS'#HU'#HUOOQS'#DU'#DUOOQS'#HT'#HTO*rQdO'#D_O+VQdO'#DfO+gQdO'#DjO+zOWO'#DuO,VOWO'#DvO.[QtO'#GuOOQS'#Gu'#GuO'vQdO'#GtO0ZQtO'#GtOOQS'#Eb'#EbO0rQdO'#EcOOQS'#Gs'#GsO0|QdO'#GrOOQV'#Gr'#GrO1XQdO'#FYOOQS'#G^'#G^O1^QdO'#FXOOQV'#IS'#ISOOQV'#Gq'#GqOOQV'#Fq'#FqQ`QeOOO'vQdO'#CqO1lQdO'#C}O1sQdO'#DRO2RQdO'#HYO2cQtO'#EVO'vQdO'#EWOOQS'#EY'#EYOOQS'#E['#E[OOQS'#E^'#E^O2wQdO'#E`O3_QdO'#EdO3rQdO'#EfO3zQtO'#EfO1XQdO'#EiO0rQdO'#ElO1XQdO'#EnO0rQdO'#EtO0rQdO'#EwO4VQdO'#EyO4^QdO'#FOO4iQdO'#EzO0rQdO'#FOO1XQdO'#FQO1XQdO'#FVO4nQdO'#F[P4uOdO'#GpPOOO)CBd)CBdOOQS'#Ce'#CeOOQS'#Cf'#CfOOQS'#Cg'#CgOOQS'#Ch'#ChOOQS'#Ci'#CiOOQS'#Cj'#CjOOQS'#Cl'#ClO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO5TQdO'#DoOOQS,5:Y,5:YO5hQdO'#HdOOQS,5:],5:]O5uQ!fO,5:]O5zQtO,59YO1lQdO,59bO1lQdO,59bO1lQdO,59bO8jQdO,59bO8oQdO,59bO8vQdO,59jO8}QdO'#HTO:TQdO'#HSOOQS'#HS'#HSOOQS'#D['#D[O:lQdO,59aO'vQdO,59aO:zQdO,59aOOQS,59y,59yO;PQdO,5:RO'vQdO,5:ROOQS,5:Q,5:QO;_QdO,5:QO;dQdO,5:XO'vQdO,5:XO'vQdO,5:VOOQS,5:U,5:UO;uQdO,5:UO;zQdO,5:WOOOW'#Fy'#FyOOOOQS'#Ds'#DsOOQS1G/w1G/wOOQS1G.|1G.|O!/[QtO1G.|O!/cQtO1G.|O1lQdO1G.|O!0OQdO1G/UOOQS'#DZ'#DZO0rQdO,59tOOQS1G.{1G.{O!0VQdO1G/eO!0gQdO1G/eO!0oQdO1G/fO'vQdO'#H[O!0tQdO'#H[O!0yQtO1G.{O!1ZQdO,59iO!2aQdO,5=zO!2qQdO,5=zO!2yQdO1G/mO!3OQtO1G/mOOQS1G/l1G/lO!3`QdO,5=uO!4VQdO,5=uO0rQdO1G/qO!4tQdO1G/sO!4yQtO1G/sO!5ZQtO1G/qOOQS1G/p1G/pOOQS1G/r1G/rOOOW-E9w-E9wOOQS1G/{1G/{O!5kQdO'#HxO0rQdO'#HxO!5|QdO,5>cOOOW-E9x-E9xOOQS1G/|1G/|OOQS-E9{-E9{O!6[Q#xO1G2zO!6{QtO1G2zO'vQdO,5kOOQS1G1`1G1`O!8RQdO1G1`OOQS'#DV'#DVO0rQdO,5=qOOQS,5=q,5=qO!8WQdO'#FrO!8cQdO,59oO!8kQdO1G/XO!8uQtO,5=uOOQS1G3`1G3`OOQS,5:m,5:mO!9fQdO'#GtOOQS,5jO!;ZQdO,5>jO1XQdO,5>jO!;lQdO,5>iOOQS-E:R-E:RO!;qQdO1G0lO!;|QdO1G0lO!lO!lO!hO!=VQdO,5>hO!=hQdO'#EpO0rQdO1G0tO!=sQdO1G0tO!=xQgO1G0zO!AvQgO1G0}O!EqQdO,5>oO!E{QdO,5>oO!FTQtO,5>oO0rQdO1G1PO!F_QdO1G1PO4iQdO1G1UO!!vQdO1G1WOOQV,5;a,5;aO!FdQfO,5;aO!FiQgO1G1QO!JjQdO'#GZO4iQdO1G1QO4iQdO1G1QO!JzQdO,5>pO!KXQdO,5>pO1XQdO,5>pOOQV1G1U1G1UO!KaQdO'#FSO!KrQ!fO1G1WO!KzQdO1G1WOOQV1G1]1G1]O4iQdO1G1]O!LPQdO1G1]O!LXQdO'#F^OOQV1G1b1G1bO!#ZQtO1G1bPOOO1G2v1G2vP!L^OSO1G2vOOQS,5=},5=}OOQS'#Dp'#DpO0rQdO,5=}O!LfQdO,5=|O!LyQdO,5=|OOQS1G/u1G/uO!MRQdO,5>PO!McQdO,5>PO!MkQdO,5>PO!NOQdO,5>PO!N`QdO,5>POOQS1G3j1G3jOOQS7+$h7+$hO!8kQdO7+$pO#!RQdO1G.|O#!YQdO1G.|OOQS1G/`1G/`OOQS,5<`,5<`O'vQdO,5<`OOQS7+%P7+%PO#!aQdO7+%POOQS-E9r-E9rOOQS7+%Q7+%QO#!qQdO,5=vO'vQdO,5=vOOQS7+$g7+$gO#!vQdO7+%PO##OQdO7+%QO##TQdO1G3fOOQS7+%X7+%XO##eQdO1G3fO##mQdO7+%XOOQS,5<_,5<_O'vQdO,5<_O##rQdO1G3aOOQS-E9q-E9qO#$iQdO7+%]OOQS7+%_7+%_O#$wQdO1G3aO#%fQdO7+%_O#%kQdO1G3gO#%{QdO1G3gO#&TQdO7+%]O#&YQdO,5>dO#&sQdO,5>dO#&sQdO,5>dOOQS'#Dx'#DxO#'UO&jO'#DzO#'aO`O'#HyOOOW1G3}1G3}O#'fQdO1G3}O#'nQdO1G3}O#'yQ#xO7+(fO#(jQtO1G2UP#)TQdO'#GOOOQS,5nQdO,5sQdO1G4OOOQS-E9y-E9yO#?^QdO1G4OO<[QdO'#H{OOOO'#D{'#D{OOOO'#F|'#F|O#?oO&jO,5:fOOOW,5>e,5>eOOOW7+)i7+)iO#?zQdO7+)iO#@SQdO1G2zO#@mQdO1G2zP'vQdO'#FuO0rQdO<mO#BQQdO,5>mOOQS1G0v1G0vOOQS<rO#KgQdO,5>rO#KrQdO,5>rO#K}QdO,5>qO#L`QdO,5>qOOQS1G1Y1G1YOOQS,5;p,5;pOOQV<VAN>VO$ oQdO<cAN>cO0rQdO1G1|O$!PQtO1G1|P$!ZQdO'#FvOOQS1G2R1G2RP$!hQdO'#F{O$!uQdO7+)jO$#`QdO,5>gOOOO-E9z-E9zOOOW<tO$4{QdO,5>tO1XQdO,5vO$)nQdO,5>vOOQS1G1p1G1pOOQS,5<[,5<[OOQU7+'P7+'PO$+zQdO1G/iO$)nQdO,5wO$8zQdO,5>wOOQS1G1s1G1sOOQS7+'S7+'SP$)nQdO'#GdO$9SQdO1G4bO$9^QdO1G4bO$9fQdO1G4bOOQS7+%T7+%TO$9tQdO1G1tO$:SQtO'#FaO$:ZQdO,5<}OOQS,5<},5<}O$:iQdO1G4cOOQS-E:a-E:aO$)nQdO,5<|O$:pQdO,5<|O$:uQdO7+)|OOQS-E:`-E:`O$;PQdO7+)|O$)nQdO,5S~O%cOS%^OSSOS%]PQ~OPdOVaOfoOhYOopOs!POvqO!PrO!Q{O!T!SO!U!RO!XZO!][O!h`O!r`O!s`O!t`O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#l!QO#o!TO#s!UO#u!VO#z!WO#}hO$P!XO%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~O%]!YO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%j![O%k!]O%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aO~Ok%xXl%xXm%xXn%xXo%xXp%xXs%xXz%xX{%xX!x%xX#g%xX%[%xX%_%xX%z%xXg%xX!T%xX!U%xX%{%xX!W%xX![%xX!Q%xX#[%xXt%xX!m%xX~P%SOfoOhYO!XZO!][O!h`O!r`O!s`O!t`O%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~Oz%wX{%wX#g%wX%[%wX%_%wX%z%wX~Ok!pOl!qOm!oOn!oOo!rOp!sOs!tO!x%wX~P)pOV!zOg!|Oo0cOv0qO!PrO~P'vOV#OOo0cOv0qO!W#PO~P'vOV#SOa#TOo0cOv0qO![#UO~P'vOQ#XO%`#XO%a#ZO~OQ#^OR#[O%`#^O%a#`O~OV%iX_%iXa%iXh%iXk%iXl%iXm%iXn%iXo%iXp%iXs%iXz%iX!X%iX!f%iX%j%iX%k%iX%l%iX%m%iX%n%iX%o%iX%p%iX%q%iX%r%iX%s%iXg%iX!T%iX!U%iX~O&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O{%iX!x%iX#g%iX%[%iX%_%iX%z%iX%{%iX!W%iX![%iX!Q%iX#[%iXt%iX!m%iX~P,eOz#dO{%hX!x%hX#g%hX%[%hX%_%hX%z%hX~Oo0cOv0qO~P'vO#g#gO%[#iO%_#iO~O%uWO~O!T#nO#u!VO#z!WO#}hO~OopO~P'vOV#sOa#tO%uWO{wP~OV#xOo0cOv0qO!Q#yO~P'vO{#{O!x$QO%z#|O#g!yX%[!yX%_!yX~OV#xOo0cOv0qO#g#SX%[#SX%_#SX~P'vOo0cOv0qO#g#WX%[#WX%_#WX~P'vOh$WO%uWO~O!f$YO!r$YO%uWO~OV$eO~P'vO!U$gO#s$hO#u$iO~O{$jO~OV$qO~P'vOS$sO%[$rO%_$rO%c$tO~OV$}Oa$}Og%POo0cOv0qO~P'vOo0cOv0qO{%SO~P'vO&Y%UO~Oa!bOh!iO!X!kO!f!mOVba_bakbalbambanbaobapbasbazba{ba!xba#gba%[ba%_ba%jba%kba%lba%mba%nba%oba%pba%qba%rba%sba%zbagba!Tba!Uba%{ba!Wba![ba!Qba#[batba!mba~On%ZO~Oo%ZO~P'vOo0cO~P'vOk0eOl0fOm0dOn0dOo0mOp0nOs0rOg%wX!T%wX!U%wX%{%wX!W%wX![%wX!Q%wX#[%wX!m%wX~P)pO%{%]Og%vXz%vX!T%vX!U%vX!W%vX{%vX~Og%_Oz%`O!T%dO!U%cO~Og%_O~Oz%gO!T%dO!U%cO!W&SX~O!W%kO~Oz%lO{%nO!T%dO!U%cO![%}X~O![%rO~O![%sO~OQ#XO%`#XO%a%uO~OV%wOo0cOv0qO!PrO~P'vOQ#^OR#[O%`#^O%a%zO~OV!qa_!qaa!qah!qak!qal!qam!qan!qao!qap!qas!qaz!qa{!qa!X!qa!f!qa!x!qa#g!qa%[!qa%_!qa%j!qa%k!qa%l!qa%m!qa%n!qa%o!qa%p!qa%q!qa%r!qa%s!qa%z!qag!qa!T!qa!U!qa%{!qa!W!qa![!qa!Q!qa#[!qat!qa!m!qa~P#yOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P%SOV&OOopOvqO{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P'vOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#g$zX%[$zX%_$zX~P'vO#g#gO%[&TO%_&TO~O!f&UOh&sX%[&sXz&sX#[&sX#g&sX%_&sX#Z&sXg&sX~Oh!iO%[&WO~Okealeameaneaoeapeaseazea{ea!xea#gea%[ea%_ea%zeagea!Tea!Uea%{ea!Wea![ea!Qea#[eatea!mea~P%SOsqazqa{qa#gqa%[qa%_qa%zqa~Ok!pOl!qOm!oOn!oOo!rOp!sO!xqa~PEcO%z&YOz%yX{%yX~O%uWOz%yX{%yX~Oz&]O{wX~O{&_O~Oz%lO#g%}X%[%}X%_%}Xg%}X{%}X![%}X!m%}X%z%}X~OV0lOo0cOv0qO!PrO~P'vO%z#|O#gUa%[Ua%_Ua~Oz&hO#g&PX%[&PX%_&PXn&PX~P%SOz&kO!Q&jO#g#Wa%[#Wa%_#Wa~Oz&lO#[&nO#g&rX%[&rX%_&rXg&rX~O!f$YO!r$YO#Z&qO%uWO~O#Z&qO~Oz&sO#g&tX%[&tX%_&tX~Oz&uO#g&pX%[&pX%_&pX{&pX~O!X&wO%z&xO~Oz&|On&wX~P%SOn'PO~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO%['UO~P'vOt'YO#p'WO#q'XOP#naV#naf#nah#nao#nas#nav#na!P#na!Q#na!T#na!U#na!X#na!]#na!h#na!r#na!s#na!t#na!{#na!}#na#P#na#R#na#T#na#X#na#Z#na#^#na#_#na#a#na#c#na#l#na#o#na#s#na#u#na#z#na#}#na$P#na%X#na%o#na%p#na%t#na%u#na&Z#na&[#na&]#na&^#na&_#na&`#na&a#na&b#na&c#na&d#na&e#na&f#na&g#na&h#na&i#na&j#na%Z#na%_#na~Oz'ZO#[']O{&xX~Oh'_O!X&wO~Oh!iO{$jO!X&wO~O{'eO~P%SO%['hO%_'hO~OS'iO%['hO%_'hO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%k!]O~P!#uO%kWi~P!#uOV!aO_!aOa!bOh!iO!X!kO!f!mO%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%m!_O%n!_O~P!&pO%mWi%nWi~P!&pOa!bOh!iO!X!kO!f!mOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%mWi%nWi%oWi%pWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~OV!aO_!aO%q!aO%r!aO%s!aO~P!)nOVWi_Wi%qWi%rWi%sWi~P!)nO!T%dO!U%cOg&VXz&VX~O%z'kO%{'kO~P,eOz'mOg&UX~Og'oO~Oz'pO{'rO!W&XX~Oo0cOv0qOz'pO{'sO!W&XX~P'vO!W'uO~Om!oOn!oOo!rOp!sOkjisjizji{ji!xji#gji%[ji%_ji%zji~Ol!qO~P!.aOlji~P!.aOk0eOl0fOm0dOn0dOo0mOp0nO~Ot'wO~P!/jOV'|Og'}Oo0cOv0qO~P'vOg'}Oz(OO~Og(QO~O!U(SO~Og(TOz(OO!T%dO!U%cO~P%SOk0eOl0fOm0dOn0dOo0mOp0nOgqa!Tqa!Uqa%{qa!Wqa![qa!Qqa#[qatqa!mqa~PEcOV'|Oo0cOv0qO!W&Sa~P'vOz(WO!W&Sa~O!W(XO~Oz(WO!T%dO!U%cO!W&Sa~P%SOV(]Oo0cOv0qO![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~P'vOz(^O![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~O![(aO~Oz(^O!T%dO!U%cO![%}a~P%SOz(dO!T%dO!U%cO![&Ta~P%SOz(gO{&lX![&lX!m&lX%z&lX~O{(kO![(mO!m(nO%z(jO~OV&OOopOvqO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~P'vOz(pO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~O!f&UOh&sa%[&saz&sa#[&sa#g&sa%_&sa#Z&sag&sa~O%[(uO~OV#sOa#tO%uWO~Oz&]O{wa~OopOvqO~P'vOz(^O#g%}a%[%}a%_%}ag%}a{%}a![%}a!m%}a%z%}a~P%SOz(zO#g%hX%[%hX%_%hX%z%hX~O%z#|O#gUi%[Ui%_Ui~O#g&Pa%[&Pa%_&Pan&Pa~P'vOz(}O#g&Pa%[&Pa%_&Pan&Pa~O%uWO#g&ra%[&ra%_&rag&ra~Oz)SO#g&ra%[&ra%_&rag&ra~Og)VO~OV)WOh$WO%uWO~O#Z)XO~O%uWO#g&ta%[&ta%_&ta~Oz)ZO#g&ta%[&ta%_&ta~Oo0cOv0qO#g&pa%[&pa%_&pa{&pa~P'vOz)^O#g&pa%[&pa%_&pa{&pa~OV)`Oa)`O%uWO~O%z)eO~Ot)hO#j)gOP#hiV#hif#hih#hio#his#hiv#hi!P#hi!Q#hi!T#hi!U#hi!X#hi!]#hi!h#hi!r#hi!s#hi!t#hi!{#hi!}#hi#P#hi#R#hi#T#hi#X#hi#Z#hi#^#hi#_#hi#a#hi#c#hi#l#hi#o#hi#s#hi#u#hi#z#hi#}#hi$P#hi%X#hi%o#hi%p#hi%t#hi%u#hi&Z#hi&[#hi&]#hi&^#hi&_#hi&`#hi&a#hi&b#hi&c#hi&d#hi&e#hi&f#hi&g#hi&h#hi&i#hi&j#hi%Z#hi%_#hi~Ot)iOP#kiV#kif#kih#kio#kis#kiv#ki!P#ki!Q#ki!T#ki!U#ki!X#ki!]#ki!h#ki!r#ki!s#ki!t#ki!{#ki!}#ki#P#ki#R#ki#T#ki#X#ki#Z#ki#^#ki#_#ki#a#ki#c#ki#l#ki#o#ki#s#ki#u#ki#z#ki#}#ki$P#ki%X#ki%o#ki%p#ki%t#ki%u#ki&Z#ki&[#ki&]#ki&^#ki&_#ki&`#ki&a#ki&b#ki&c#ki&d#ki&e#ki&f#ki&g#ki&h#ki&i#ki&j#ki%Z#ki%_#ki~OV)kOn&wa~P'vOz)lOn&wa~Oz)lOn&wa~P%SOn)pO~O%Y)tO~Ot)wO#p'WO#q)vOP#niV#nif#nih#nio#nis#niv#ni!P#ni!Q#ni!T#ni!U#ni!X#ni!]#ni!h#ni!r#ni!s#ni!t#ni!{#ni!}#ni#P#ni#R#ni#T#ni#X#ni#Z#ni#^#ni#_#ni#a#ni#c#ni#l#ni#o#ni#s#ni#u#ni#z#ni#}#ni$P#ni%X#ni%o#ni%p#ni%t#ni%u#ni&Z#ni&[#ni&]#ni&^#ni&_#ni&`#ni&a#ni&b#ni&c#ni&d#ni&e#ni&f#ni&g#ni&h#ni&i#ni&j#ni%Z#ni%_#ni~OV)zOo0cOv0qO{$jO~P'vOo0cOv0qO{&xa~P'vOz*OO{&xa~OV*SOa*TOg*WO%q*UO%uWO~O{$jO&{*YO~Oh'_O~Oh!iO{$jO~O%[*_O~O%[*aO%_*aO~OV$}Oa$}Oo0cOv0qOg&Ua~P'vOz*dOg&Ua~Oo0cOv0qO{*gO!W&Xa~P'vOz*hO!W&Xa~Oo0cOv0qOz*hO{*kO!W&Xa~P'vOo0cOv0qOz*hO!W&Xa~P'vOz*hO{*kO!W&Xa~Om0dOn0dOo0mOp0nOgjikjisjizji!Tji!Uji%{ji!Wji{ji![ji#gji%[ji%_ji!Qji#[jitji!mji%zji~Ol0fO~P!NkOlji~P!NkOV'|Og*pOo0cOv0qO~P'vOn*rO~Og*pOz*tO~Og*uO~OV'|Oo0cOv0qO!W&Si~P'vOz*vO!W&Si~O!W*wO~OV(]Oo0cOv0qO![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~P'vOz*zO!T%dO!U%cO![&Ti~Oz*}O![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~O![+OO~Oa+QOo0cOv0qO![&Ti~P'vOz*zO![&Ti~O![+SO~OV+UOo0cOv0qO{&la![&la!m&la%z&la~P'vOz+VO{&la![&la!m&la%z&la~O!]+YO&n+[O![!nX~O![+^O~O{(kO![+_O~O{(kO![+_O!m+`O~OV&OOopOvqO{%hq!x%hq#g%hq%[%hq%_%hq%z%hq~P'vOz$ri{$ri!x$ri#g$ri%[$ri%_$ri%z$ri~P%SOV&OOopOvqO~P'vOV&OOo0cOv0qO#g%ha%[%ha%_%ha%z%ha~P'vOz+aO#g%ha%[%ha%_%ha%z%ha~Oz$ia#g$ia%[$ia%_$ian$ia~P%SO#g&Pi%[&Pi%_&Pin&Pi~P'vOz+dO#g#Wq%[#Wq%_#Wq~O#[+eOz$va#g$va%[$va%_$vag$va~O%uWO#g&ri%[&ri%_&rig&ri~Oz+gO#g&ri%[&ri%_&rig&ri~OV+iOh$WO%uWO~O%uWO#g&ti%[&ti%_&ti~Oo0cOv0qO#g&pi%[&pi%_&pi{&pi~P'vO{#{Oz#eX!W#eX~Oz+mO!W&uX~O!W+oO~Ot+rO#j)gOP#hqV#hqf#hqh#hqo#hqs#hqv#hq!P#hq!Q#hq!T#hq!U#hq!X#hq!]#hq!h#hq!r#hq!s#hq!t#hq!{#hq!}#hq#P#hq#R#hq#T#hq#X#hq#Z#hq#^#hq#_#hq#a#hq#c#hq#l#hq#o#hq#s#hq#u#hq#z#hq#}#hq$P#hq%X#hq%o#hq%p#hq%t#hq%u#hq&Z#hq&[#hq&]#hq&^#hq&_#hq&`#hq&a#hq&b#hq&c#hq&d#hq&e#hq&f#hq&g#hq&h#hq&i#hq&j#hq%Z#hq%_#hq~On$|az$|a~P%SOV)kOn&wi~P'vOz+yOn&wi~Oz,TO{$jO#[,TO~O#q,VOP#nqV#nqf#nqh#nqo#nqs#nqv#nq!P#nq!Q#nq!T#nq!U#nq!X#nq!]#nq!h#nq!r#nq!s#nq!t#nq!{#nq!}#nq#P#nq#R#nq#T#nq#X#nq#Z#nq#^#nq#_#nq#a#nq#c#nq#l#nq#o#nq#s#nq#u#nq#z#nq#}#nq$P#nq%X#nq%o#nq%p#nq%t#nq%u#nq&Z#nq&[#nq&]#nq&^#nq&_#nq&`#nq&a#nq&b#nq&c#nq&d#nq&e#nq&f#nq&g#nq&h#nq&i#nq&j#nq%Z#nq%_#nq~O#[,WOz%Oa{%Oa~Oo0cOv0qO{&xi~P'vOz,YO{&xi~O{#{O%z,[Og&zXz&zX~O%uWOg&zXz&zX~Oz,`Og&yX~Og,bO~O%Y,eO~O!T%dO!U%cOg&Viz&Vi~OV$}Oa$}Oo0cOv0qOg&Ui~P'vO{,hOz$la!W$la~Oo0cOv0qO{,iOz$la!W$la~P'vOo0cOv0qO{*gO!W&Xi~P'vOz,lO!W&Xi~Oo0cOv0qOz,lO!W&Xi~P'vOz,lO{,oO!W&Xi~Og$hiz$hi!W$hi~P%SOV'|Oo0cOv0qO~P'vOn,qO~OV'|Og,rOo0cOv0qO~P'vOV'|Oo0cOv0qO!W&Sq~P'vOz$gi![$gi#g$gi%[$gi%_$gig$gi{$gi!m$gi%z$gi~P%SOV(]Oo0cOv0qO~P'vOa+QOo0cOv0qO![&Tq~P'vOz,sO![&Tq~O![,tO~OV(]Oo0cOv0qO![%}q#g%}q%[%}q%_%}qg%}q{%}q!m%}q%z%}q~P'vO{,uO~OV+UOo0cOv0qO{&li![&li!m&li%z&li~P'vOz,zO{&li![&li!m&li%z&li~O!]+YO&n+[O![!na~O{(kO![,}O~OV&OOo0cOv0qO#g%hi%[%hi%_%hi%z%hi~P'vOz-OO#g%hi%[%hi%_%hi%z%hi~O%uWO#g&rq%[&rq%_&rqg&rq~Oz-RO#g&rq%[&rq%_&rqg&rq~OV)`Oa)`O%uWO!W&ua~Oz-TO!W&ua~On$|iz$|i~P%SOV)kO~P'vOV)kOn&wq~P'vOt-XOP#myV#myf#myh#myo#mys#myv#my!P#my!Q#my!T#my!U#my!X#my!]#my!h#my!r#my!s#my!t#my!{#my!}#my#P#my#R#my#T#my#X#my#Z#my#^#my#_#my#a#my#c#my#l#my#o#my#s#my#u#my#z#my#}#my$P#my%X#my%o#my%p#my%t#my%u#my&Z#my&[#my&]#my&^#my&_#my&`#my&a#my&b#my&c#my&d#my&e#my&f#my&g#my&h#my&i#my&j#my%Z#my%_#my~O%Z-]O%_-]O~P`O#q-^OP#nyV#nyf#nyh#nyo#nys#nyv#ny!P#ny!Q#ny!T#ny!U#ny!X#ny!]#ny!h#ny!r#ny!s#ny!t#ny!{#ny!}#ny#P#ny#R#ny#T#ny#X#ny#Z#ny#^#ny#_#ny#a#ny#c#ny#l#ny#o#ny#s#ny#u#ny#z#ny#}#ny$P#ny%X#ny%o#ny%p#ny%t#ny%u#ny&Z#ny&[#ny&]#ny&^#ny&_#ny&`#ny&a#ny&b#ny&c#ny&d#ny&e#ny&f#ny&g#ny&h#ny&i#ny&j#ny%Z#ny%_#ny~Oz-aO{$jO#[-aO~Oo0cOv0qO{&xq~P'vOz-dO{&xq~O%z,[Og&zaz&za~O{#{Og&zaz&za~OV*SOa*TO%q*UO%uWOg&ya~Oz-hOg&ya~O$S-lO~OV$}Oa$}Oo0cOv0qO~P'vOo0cOv0qO{-mOz$li!W$li~P'vOo0cOv0qOz$li!W$li~P'vO{-mOz$li!W$li~Oo0cOv0qO{*gO~P'vOo0cOv0qO{*gO!W&Xq~P'vOz-pO!W&Xq~Oo0cOv0qOz-pO!W&Xq~P'vOs-sO!T%dO!U%cOg&Oq!W&Oq![&Oqz&Oq~P!/jOa+QOo0cOv0qO![&Ty~P'vOz$ji![$ji~P%SOa+QOo0cOv0qO~P'vOV+UOo0cOv0qO~P'vOV+UOo0cOv0qO{&lq![&lq!m&lq%z&lq~P'vO{(kO![-xO!m-yO%z-wO~OV&OOo0cOv0qO#g%hq%[%hq%_%hq%z%hq~P'vO%uWO#g&ry%[&ry%_&ryg&ry~OV)`Oa)`O%uWO!W&ui~Ot-}OP#m!RV#m!Rf#m!Rh#m!Ro#m!Rs#m!Rv#m!R!P#m!R!Q#m!R!T#m!R!U#m!R!X#m!R!]#m!R!h#m!R!r#m!R!s#m!R!t#m!R!{#m!R!}#m!R#P#m!R#R#m!R#T#m!R#X#m!R#Z#m!R#^#m!R#_#m!R#a#m!R#c#m!R#l#m!R#o#m!R#s#m!R#u#m!R#z#m!R#}#m!R$P#m!R%X#m!R%o#m!R%p#m!R%t#m!R%u#m!R&Z#m!R&[#m!R&]#m!R&^#m!R&_#m!R&`#m!R&a#m!R&b#m!R&c#m!R&d#m!R&e#m!R&f#m!R&g#m!R&h#m!R&i#m!R&j#m!R%Z#m!R%_#m!R~Oo0cOv0qO{&xy~P'vOV*SOa*TO%q*UO%uWOg&yi~O$S-lO%Z.VO%_.VO~OV.aOh._O!X.^O!].`O!h.YO!s.[O!t.[O%p.XO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O~Oo0cOv0qOz$lq!W$lq~P'vO{.fOz$lq!W$lq~Oo0cOv0qO{*gO!W&Xy~P'vOz.gO!W&Xy~Oo0cOv.kO~P'vOs-sO!T%dO!U%cOg&Oy!W&Oy![&Oyz&Oy~P!/jO{(kO![.nO~O{(kO![.nO!m.oO~OV*SOa*TO%q*UO%uWO~Oh.tO!f.rOz$TX#[$TX%j$TXg$TX~Os$TX{$TX!W$TX![$TX~P$-bO%o.vO%p.vOs$UXz$UX{$UX#[$UX%j$UX!W$UXg$UX![$UX~O!h.xO~Oz.|O#[/OO%j.yOs&|X{&|X!W&|Xg&|X~Oa/RO~P$)zOh.tOs&}Xz&}X{&}X#[&}X%j&}X!W&}Xg&}X![&}X~Os/VO{$jO~Oo0cOv0qOz$ly!W$ly~P'vOo0cOv0qO{*gO!W&X!R~P'vOz/ZO!W&X!R~Og&RXs&RX!T&RX!U&RX!W&RX![&RXz&RX~P!/jOs-sO!T%dO!U%cOg&Qa!W&Qa![&Qaz&Qa~O{(kO![/^O~O!f.rOh$[as$[az$[a{$[a#[$[a%j$[a!W$[ag$[a![$[a~O!h/eO~O%o.vO%p.vOs$Uaz$Ua{$Ua#[$Ua%j$Ua!W$Uag$Ua![$Ua~O%j.yOs$Yaz$Ya{$Ya#[$Ya!W$Yag$Ya![$Ya~Os&|a{&|a!W&|ag&|a~P$)nOz/jOs&|a{&|a!W&|ag&|a~O!W/mO~Og/mO~O{/oO~O![/pO~Oo0cOv0qO{*gO!W&X!Z~P'vO{/sO~O%z/tO~P$-bOz/uO#[/OO%j.yOg'PX~Oz/uOg'PX~Og/wO~O!h/xO~O#[/OOs%Saz%Sa{%Sa%j%Sa!W%Sag%Sa![%Sa~O#[/OO%j.yOs%Waz%Wa{%Wa!W%Wag%Wa~Os&|i{&|i!W&|ig&|i~P$)nOz/zO#[/OO%j.yO!['Oa~Og'Pa~P$)nOz0SOg'Pa~Oa0UO!['Oi~P$)zOz0WO!['Oi~Oz0WO#[/OO%j.yO!['Oi~O#[/OO%j.yOg$biz$bi~O%z0ZO~P$-bO#[/OO%j.yOg%Vaz%Va~Og'Pi~P$)nO{0^O~Oa0UO!['Oq~P$)zOz0`O!['Oq~O#[/OO%j.yOz%Ui![%Ui~Oa0UO~P$)zOa0UO!['Oy~P$)zO#[/OO%j.yOg$ciz$ci~O#[/OO%j.yOz%Uq![%Uq~Oz+aO#g%ha%[%ha%_%ha%z%ha~P%SOV&OOo0cOv0qO~P'vOn0hO~Oo0hO~P'vO{0iO~Ot0jO~P!/jO&]&Z&j&h&i&g&f&d&e&c&b&`&a&_&^&[%u~",goto:"!=j'QPPPPPP'RP'Z*s+[+t,_,y-fP.SP'Z.r.r'ZPPP'Z2[PPPPPP2[5PPP5PP7b7k=sPP=v>h>kPP'Z'ZPP>zPP'Z'ZPP'Z'Z'Z'Z'Z?O?w'ZP?zP@QDXGuGyPG|HWH['ZPPPH_Hk'RP'R'RP'RP'RP'RP'RP'R'R'RP'RPP'RPP'RP'RPHqH}IVPI^IdPI^PI^I^PPPI^PKrPK{LVL]KrPI^LfPI^PLmLsPLwM]MzNeLwLwNkNxLwLwLwLw! ^! d! g! l! o! y!!P!!]!!o!!u!#P!#V!#s!#y!$P!$Z!$a!$g!$y!%T!%Z!%a!%k!%q!%w!%}!&T!&Z!&e!&k!&u!&{!'U!'[!'k!'s!'}!(UPPPPPPPPPPP!([!(_!(e!(n!(x!)TPPPPPPPPPPPP!-u!/Z!3^!6oPP!6w!7W!7a!8Y!8P!8c!8i!8l!8o!8r!8z!9jPPPPPPPPPPPPPPPPP!9m!9q!9wP!:]!:a!:m!:v!;S!;j!;m!;p!;v!;|!_![!]Do!]!^Es!^!_FZ!_!`Gk!`!aHX!a!b%T!b!cIf!c!dJU!d!eK^!e!hJU!h!i!#f!i!tJU!t!u!,|!u!wJU!w!x!.t!x!}JU!}#O!0S#O#P&o#P#Q!0j#Q#R!1Q#R#SJU#S#T%T#T#UJU#U#VK^#V#YJU#Y#Z!#f#Z#fJU#f#g!,|#g#iJU#i#j!.t#j#oJU#o#p!1n#p#q!1s#q#r!2a#r#s!2f#s$g%T$g;'SJU;'S;=`KW<%lOJU`%YT&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T`%lP;=`<%l%To%v]&n`%c_OX%TXY%oY[%T[]%o]p%Tpq%oq#O%T#O#P&o#P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To&tX&n`OY%TYZ%oZ]%T]^%o^#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc'f[&n`O!_%T!_!`([!`#T%T#T#U(r#U#f%T#f#g(r#g#h(r#h#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(cTmR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(yT!mR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk)aV&n`&[ZOr%Trs)vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk){V&n`Or%Trs*bs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk*iT&n`&^ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To+PZS_&n`OY*xYZ%TZ]*x]^%T^#o*x#o#p+r#p#q*x#q#r+r#r;'S*x;'S;=`,^<%lO*x_+wTS_OY+rZ]+r^;'S+r;'S;=`,W<%lO+r_,ZP;=`<%l+ro,aP;=`<%l*xj,kV%rQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-XT!xY&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-oV%lQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.]V&n`&ZZOw%Twx.rx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.wV&n`Ow%Twx/^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/eT&n`&]ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/{ThZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc0cTgR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk0yXVZ&n`Oz%Tz{1f{!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk1mVaR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk2ZV%oZ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc2wTzR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To3_W%pZ&n`O!_%T!_!`-Q!`!a3w!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Td4OT&{S&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk4fX!fQ&n`O!O%T!O!P5R!P!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5WV&n`O!O%T!O!P5m!P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5tT!rZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti6[a!hX&n`O!Q%T!Q![6T![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S6T#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti7fZ&n`O{%T{|8X|}%T}!O8X!O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8^V&n`O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8z]!hX&n`O!Q%T!Q![8s![!l%T!l!m9s!m#R%T#R#S8s#S#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti9zT!hX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk:bX%qR&n`O!P%T!P!Q:}!Q!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj;UV%sQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti;ro!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!d%T!d!e?q!e!g%T!g!h7a!h!l%T!l!m9s!m!q%T!q!rA]!r!z%T!z!{Bq!{#R%T#R#S>_#S#U%T#U#V?q#V#X%T#X#Y7a#Y#^%T#^#_9s#_#c%T#c#dA]#d#l%T#l#mBq#m#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti=xV&n`O!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti>fc!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S>_#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti?vY&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti@mY!hX&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiAbX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBUX!hX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBv]&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiCv]!hX&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToDvV{_&n`O!_%T!_!`E]!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TcEdT%{R&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkEzT#gZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkFbXmR&n`O!^%T!^!_F}!_!`([!`!a([!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjGUV%mQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkGrV%zZ&n`O!_%T!_!`([!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkH`WmR&n`O!_%T!_!`([!`!aHx!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjIPV%nQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkIoV_Q#}P&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToJ_]&n`&YS%uZO!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoKZP;=`<%lJUoKge&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!tJU!t!uLx!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#gLx#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoMRa&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUkN_V&n`&`ZOr%TrsNts#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkNyV&n`Or%Trs! `s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! gT&n`&bZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! }V&n`&_ZOw%Twx!!dx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!!iV&n`Ow%Twx!#Ox#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!#VT&n`&aZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!#oe&n`&YS%uZOr%Trs!%Qsw%Twx!&px!Q%T!Q![JU![!c%T!c!tJU!t!u!(`!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#g!(`#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!%XV&n`&dZOr%Trs!%ns#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!%sV&n`Or%Trs!&Ys#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&aT&n`&fZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&wV&n`&cZOw%Twx!'^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!'cV&n`Ow%Twx!'xx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!(PT&n`&eZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!(ia&n`&YS%uZOr%Trs!)nsw%Twx!+^x!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!)uV&n`&hZOr%Trs!*[s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*aV&n`Or%Trs!*vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*}T&n`&jZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!+eV&n`&gZOw%Twx!+zx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,PV&n`Ow%Twx!,fx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,mT&n`&iZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!-Vi&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!dJU!d!eLx!e!hJU!h!i!(`!i!}JU!}#R%T#R#SJU#S#T%T#T#UJU#U#VLx#V#YJU#Y#Z!(`#Z#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUo!.}a&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!0ZT!XZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc!0qT!WR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj!1XV%kQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!1sO!]~k!1zV%jR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!2fO![~i!2mT%tX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T",tokenizers:[Sb,Ob,gb,kb,0,1,2,3,4],topRules:{Script:[0,5]},specialized:[{term:221,get:n=>Tb[n]||-1}],tokenPrec:7668}),fh=new Xm,ku=new Set(["Script","Body","FunctionDefinition","ClassDefinition","LambdaExpression","ForStatement","MatchClause"]);function Bn(n){return(e,t,i)=>{if(i)return!1;let s=e.node.getChild("VariableName");return s&&t(s,n),!0}}const Qb={FunctionDefinition:Bn("function"),ClassDefinition:Bn("class"),ForStatement(n,e,t){if(t){for(let i=n.node.firstChild;i;i=i.nextSibling)if(i.name=="VariableName")e(i,"variable");else if(i.name=="in")break}},ImportStatement(n,e){var t,i;let{node:s}=n,r=((t=s.firstChild)===null||t===void 0?void 0:t.name)=="from";for(let o=s.getChild("import");o;o=o.nextSibling)o.name=="VariableName"&&((i=o.nextSibling)===null||i===void 0?void 0:i.name)!="as"&&e(o,r?"variable":"namespace")},AssignStatement(n,e){for(let t=n.node.firstChild;t;t=t.nextSibling)if(t.name=="VariableName")e(t,"variable");else if(t.name==":"||t.name=="AssignOp")break},ParamList(n,e){for(let t=null,i=n.node.firstChild;i;i=i.nextSibling)i.name=="VariableName"&&(!t||!/\*|AssignOp/.test(t.name))&&e(i,"variable"),t=i},CapturePattern:Bn("variable"),AsPattern:Bn("variable"),__proto__:null};function vu(n,e){let t=fh.get(e);if(t)return t;let i=[],s=!0;function r(o,l){let a=n.sliceString(o.from,o.to);i.push({label:a,type:l})}return e.cursor(Z.IncludeAnonymous).iterate(o=>{if(o.name){let l=Qb[o.name];if(l&&l(o,r,s)||!s&&ku.has(o.name))return!1;s=!1}else if(o.to-o.from>8192){for(let l of vu(n,o.node))i.push(l);return!1}}),fh.set(e,i),i}const uh=/^[\w\xa1-\uffff][\w\d\xa1-\uffff]*$/,wu=["String","FormatString","Comment","PropertyName"];function Ab(n){let e=ae(n.state).resolveInner(n.pos,-1);if(wu.indexOf(e.name)>-1)return null;let t=e.name=="VariableName"||e.to-e.from<20&&uh.test(n.state.sliceDoc(e.from,e.to));if(!t&&!n.explicit)return null;let i=[];for(let s=e;s;s=s.parent)ku.has(s.name)&&(i=i.concat(vu(n.state.doc,s)));return{options:i,from:t?e.from:n.pos,validFor:uh}}const Pb=["__annotations__","__builtins__","__debug__","__doc__","__import__","__name__","__loader__","__package__","__spec__","False","None","True"].map(n=>({label:n,type:"constant"})).concat(["ArithmeticError","AssertionError","AttributeError","BaseException","BlockingIOError","BrokenPipeError","BufferError","BytesWarning","ChildProcessError","ConnectionAbortedError","ConnectionError","ConnectionRefusedError","ConnectionResetError","DeprecationWarning","EOFError","Ellipsis","EncodingWarning","EnvironmentError","Exception","FileExistsError","FileNotFoundError","FloatingPointError","FutureWarning","GeneratorExit","IOError","ImportError","ImportWarning","IndentationError","IndexError","InterruptedError","IsADirectoryError","KeyError","KeyboardInterrupt","LookupError","MemoryError","ModuleNotFoundError","NameError","NotADirectoryError","NotImplemented","NotImplementedError","OSError","OverflowError","PendingDeprecationWarning","PermissionError","ProcessLookupError","RecursionError","ReferenceError","ResourceWarning","RuntimeError","RuntimeWarning","StopAsyncIteration","StopIteration","SyntaxError","SyntaxWarning","SystemError","SystemExit","TabError","TimeoutError","TypeError","UnboundLocalError","UnicodeDecodeError","UnicodeEncodeError","UnicodeError","UnicodeTranslateError","UnicodeWarning","UserWarning","ValueError","Warning","ZeroDivisionError"].map(n=>({label:n,type:"type"}))).concat(["bool","bytearray","bytes","classmethod","complex","float","frozenset","int","list","map","memoryview","object","range","set","staticmethod","str","super","tuple","type"].map(n=>({label:n,type:"class"}))).concat(["abs","aiter","all","anext","any","ascii","bin","breakpoint","callable","chr","compile","delattr","dict","dir","divmod","enumerate","eval","exec","exit","filter","format","getattr","globals","hasattr","hash","help","hex","id","input","isinstance","issubclass","iter","len","license","locals","max","min","next","oct","open","ord","pow","print","property","quit","repr","reversed","round","setattr","slice","sorted","sum","vars","zip"].map(n=>({label:n,type:"function"}))),Mb=[ot("def ${name}(${params}):\n ${}",{label:"def",detail:"function",type:"keyword"}),ot("for ${name} in ${collection}:\n ${}",{label:"for",detail:"loop",type:"keyword"}),ot("while ${}:\n ${}",{label:"while",detail:"loop",type:"keyword"}),ot("try:\n ${}\nexcept ${error}:\n ${}",{label:"try",detail:"/ except block",type:"keyword"}),ot(`if \${}: `,{label:"if",detail:"block",type:"keyword"}),ot("if ${}:\n ${}\nelse:\n ${}",{label:"if",detail:"/ else block",type:"keyword"}),ot("class ${name}:\n def __init__(self, ${params}):\n ${}",{label:"class",detail:"definition",type:"keyword"}),ot("import ${module}",{label:"import",detail:"statement",type:"keyword"}),ot("from ${module} import ${names}",{label:"from",detail:"import",type:"keyword"})],Rb=D0(wu,Kf(Pb.concat(Mb)));function xr(n){let{node:e,pos:t}=n,i=n.lineIndent(t,-1),s=null;for(;;){let r=e.childBefore(t);if(r)if(r.name=="Comment")t=r.from;else if(r.name=="Body"||r.name=="MatchBody")n.baseIndentFor(r)+n.unit<=i&&(s=r),e=r;else if(r.name=="MatchClause")e=r;else if(r.type.is("Statement"))e=r;else break;else break}return s}function Sr(n,e){let t=n.baseIndentFor(e),i=n.lineAt(n.pos,-1),s=i.from+i.text.length;return/^\s*($|#)/.test(i.text)&&n.node.tot?null:t+n.unit}const kr=os.define({name:"python",parser:Cb.configure({props:[Uc.add({Body:n=>{var e;let t=/^\s*(#|$)/.test(n.textAfter)&&xr(n)||n.node;return(e=Sr(n,t))!==null&&e!==void 0?e:n.continue()},MatchBody:n=>{var e;let t=xr(n);return(e=Sr(n,t||n.node))!==null&&e!==void 0?e:n.continue()},IfStatement:n=>/^\s*(else:|elif )/.test(n.textAfter)?n.baseIndent:n.continue(),"ForStatement WhileStatement":n=>/^\s*else:/.test(n.textAfter)?n.baseIndent:n.continue(),TryStatement:n=>/^\s*(except[ :]|finally:|else:)/.test(n.textAfter)?n.baseIndent:n.continue(),MatchStatement:n=>/^\s*case /.test(n.textAfter)?n.baseIndent+n.unit:n.continue(),"TupleExpression ComprehensionExpression ParamList ArgList ParenthesizedExpression":sr({closing:")"}),"DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression":sr({closing:"}"}),"ArrayExpression ArrayComprehensionExpression":sr({closing:"]"}),MemberExpression:n=>n.baseIndent+n.unit,"String FormatString":()=>null,Script:n=>{var e;let t=xr(n);return(e=t&&Sr(n,t))!==null&&e!==void 0?e:n.continue()}}),Gc.add({"ArrayExpression DictionaryExpression SetExpression TupleExpression":pg,Body:(n,e)=>({from:n.from+1,to:n.to-(n.to==e.doc.length?0:1)}),"String FormatString":(n,e)=>({from:e.doc.lineAt(n.from).to,to:n.to})})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"'''",'"""'],stringPrefixes:["f","fr","rf","r","u","b","br","rb","F","FR","RF","R","U","B","BR","RB"]},commentTokens:{line:"#"},indentOnInput:/^\s*([\}\]\)]|else:|elif |except |finally:|case\s+[^:]*:?)$/}});function Eb(){return new ng(kr,[kr.data.of({autocomplete:Ab}),kr.data.of({autocomplete:Rb})])}function Bb({value:n,onChange:e,id:t}){return vr.jsx("div",{className:"w-full overflow-hidden rounded-md border border-input",children:vr.jsx(pu,{value:n,onChange:e,extensions:[Eb()],theme:du,height:"256px",basicSetup:{lineNumbers:!0,foldGutter:!1,highlightActiveLine:!0},className:"text-sm",id:t})})}export{Bb as BotCodeEditor}; -//# sourceMappingURL=BotCodeEditor-CmNe1fPT.js.map +//# sourceMappingURL=BotCodeEditor-CIATUaxJ.js.map diff --git a/frontend/dist/assets/BotCodeEditor-CmNe1fPT.js.map b/frontend/dist/assets/BotCodeEditor-CIATUaxJ.js.map similarity index 99% rename from frontend/dist/assets/BotCodeEditor-CmNe1fPT.js.map rename to frontend/dist/assets/BotCodeEditor-CIATUaxJ.js.map index e167f994..d8e2d914 100644 --- a/frontend/dist/assets/BotCodeEditor-CmNe1fPT.js.map +++ b/frontend/dist/assets/BotCodeEditor-CIATUaxJ.js.map @@ -1 +1 @@ -{"version":3,"file":"BotCodeEditor-CmNe1fPT.js","sources":["../../node_modules/@babel/runtime/helpers/esm/extends.js","../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../node_modules/@marijn/find-cluster-break/src/index.js","../../node_modules/@codemirror/state/dist/index.js","../../node_modules/style-mod/src/style-mod.js","../../node_modules/w3c-keyname/index.js","../../node_modules/crelt/index.js","../../node_modules/@codemirror/view/dist/index.js","../../node_modules/@lezer/common/dist/index.js","../../node_modules/@lezer/highlight/dist/index.js","../../node_modules/@codemirror/language/dist/index.js","../../node_modules/@codemirror/commands/dist/index.js","../../node_modules/@codemirror/search/dist/index.js","../../node_modules/@codemirror/autocomplete/dist/index.js","../../node_modules/@codemirror/lint/dist/index.js","../../node_modules/@uiw/codemirror-extensions-basic-setup/esm/index.js","../../node_modules/@codemirror/theme-one-dark/dist/index.js","../../node_modules/@uiw/react-codemirror/esm/theme/light.js","../../node_modules/@uiw/react-codemirror/esm/getDefaultExtensions.js","../../node_modules/@uiw/react-codemirror/esm/utils.js","../../node_modules/@uiw/react-codemirror/esm/timeoutLatch.js","../../node_modules/@uiw/react-codemirror/esm/useCodeMirror.js","../../node_modules/@uiw/react-codemirror/esm/index.js","../../node_modules/@lezer/lr/dist/index.js","../../node_modules/@lezer/python/dist/index.js","../../node_modules/@codemirror/lang-python/dist/index.js","../../src/components/BotCodeEditor.tsx"],"sourcesContent":["function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","// These are filled with ranges (rangeFrom[i] up to but not including\n// rangeTo[i]) of code points that count as extending characters.\nlet rangeFrom = [], rangeTo = []\n\n;(() => {\n // Compressed representation of the Grapheme_Cluster_Break=Extend\n // information from\n // http://www.unicode.org/Public/16.0.0/ucd/auxiliary/GraphemeBreakProperty.txt.\n // Each pair of elements represents a range, as an offet from the\n // previous range and a length. Numbers are in base-36, with the empty\n // string being a shorthand for 1.\n let numbers = \"lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o\".split(\",\").map(s => s ? parseInt(s, 36) : 1)\n for (let i = 0, n = 0; i < numbers.length; i++)\n (i % 2 ? rangeTo : rangeFrom).push(n = n + numbers[i])\n})()\n\nexport function isExtendingChar(code) {\n if (code < 768) return false\n for (let from = 0, to = rangeFrom.length;;) {\n let mid = (from + to) >> 1\n if (code < rangeFrom[mid]) to = mid\n else if (code >= rangeTo[mid]) from = mid + 1\n else return true\n if (from == to) return false\n }\n}\n\nfunction isRegionalIndicator(code) {\n return code >= 0x1F1E6 && code <= 0x1F1FF\n}\n\nfunction check(code) {\n for (let i = 0; i < rangeFrom.length; i++) {\n if (rangeTo[i] > code) return rangeFrom[i] <= code\n }\n return false\n}\n\nconst ZWJ = 0x200d\n\nexport function findClusterBreak(str, pos, forward = true, includeExtending = true) {\n return (forward ? nextClusterBreak : prevClusterBreak)(str, pos, includeExtending)\n}\n\nfunction nextClusterBreak(str, pos, includeExtending) {\n if (pos == str.length) return pos\n // If pos is in the middle of a surrogate pair, move to its start\n if (pos && surrogateLow(str.charCodeAt(pos)) && surrogateHigh(str.charCodeAt(pos - 1))) pos--\n let prev = codePointAt(str, pos)\n pos += codePointSize(prev)\n while (pos < str.length) {\n let next = codePointAt(str, pos)\n if (prev == ZWJ || next == ZWJ || includeExtending && isExtendingChar(next)) {\n pos += codePointSize(next)\n prev = next\n } else if (isRegionalIndicator(next)) {\n let countBefore = 0, i = pos - 2\n while (i >= 0 && isRegionalIndicator(codePointAt(str, i))) { countBefore++; i -= 2 }\n if (countBefore % 2 == 0) break\n else pos += 2\n } else {\n break\n }\n }\n return pos\n}\n\nfunction prevClusterBreak(str, pos, includeExtending) {\n while (pos > 0) {\n let found = nextClusterBreak(str, pos - 2, includeExtending)\n if (found < pos) return found\n pos--\n }\n return 0\n}\n\nfunction codePointAt(str, pos) {\n let code0 = str.charCodeAt(pos)\n if (!surrogateHigh(code0) || pos + 1 == str.length) return code0\n let code1 = str.charCodeAt(pos + 1)\n if (!surrogateLow(code1)) return code0\n return ((code0 - 0xd800) << 10) + (code1 - 0xdc00) + 0x10000\n}\n\nfunction surrogateLow(ch) { return ch >= 0xDC00 && ch < 0xE000 }\nfunction surrogateHigh(ch) { return ch >= 0xD800 && ch < 0xDC00 }\nfunction codePointSize(code) { return code < 0x10000 ? 1 : 2 }\n","import { findClusterBreak as findClusterBreak$1 } from '@marijn/find-cluster-break';\n\n/**\nThe data structure for documents. @nonabstract\n*/\nclass Text {\n /**\n Get the line description around the given position.\n */\n lineAt(pos) {\n if (pos < 0 || pos > this.length)\n throw new RangeError(`Invalid position ${pos} in document of length ${this.length}`);\n return this.lineInner(pos, false, 1, 0);\n }\n /**\n Get the description for the given (1-based) line number.\n */\n line(n) {\n if (n < 1 || n > this.lines)\n throw new RangeError(`Invalid line number ${n} in ${this.lines}-line document`);\n return this.lineInner(n, true, 1, 0);\n }\n /**\n Replace a range of the text with the given content.\n */\n replace(from, to, text) {\n [from, to] = clip(this, from, to);\n let parts = [];\n this.decompose(0, from, parts, 2 /* Open.To */);\n if (text.length)\n text.decompose(0, text.length, parts, 1 /* Open.From */ | 2 /* Open.To */);\n this.decompose(to, this.length, parts, 1 /* Open.From */);\n return TextNode.from(parts, this.length - (to - from) + text.length);\n }\n /**\n Append another document to this one.\n */\n append(other) {\n return this.replace(this.length, this.length, other);\n }\n /**\n Retrieve the text between the given points.\n */\n slice(from, to = this.length) {\n [from, to] = clip(this, from, to);\n let parts = [];\n this.decompose(from, to, parts, 0);\n return TextNode.from(parts, to - from);\n }\n /**\n Test whether this text is equal to another instance.\n */\n eq(other) {\n if (other == this)\n return true;\n if (other.length != this.length || other.lines != this.lines)\n return false;\n let start = this.scanIdentical(other, 1), end = this.length - this.scanIdentical(other, -1);\n let a = new RawTextCursor(this), b = new RawTextCursor(other);\n for (let skip = start, pos = start;;) {\n a.next(skip);\n b.next(skip);\n skip = 0;\n if (a.lineBreak != b.lineBreak || a.done != b.done || a.value != b.value)\n return false;\n pos += a.value.length;\n if (a.done || pos >= end)\n return true;\n }\n }\n /**\n Iterate over the text. When `dir` is `-1`, iteration happens\n from end to start. This will return lines and the breaks between\n them as separate strings.\n */\n iter(dir = 1) { return new RawTextCursor(this, dir); }\n /**\n Iterate over a range of the text. When `from` > `to`, the\n iterator will run in reverse.\n */\n iterRange(from, to = this.length) { return new PartialTextCursor(this, from, to); }\n /**\n Return a cursor that iterates over the given range of lines,\n _without_ returning the line breaks between, and yielding empty\n strings for empty lines.\n \n When `from` and `to` are given, they should be 1-based line numbers.\n */\n iterLines(from, to) {\n let inner;\n if (from == null) {\n inner = this.iter();\n }\n else {\n if (to == null)\n to = this.lines + 1;\n let start = this.line(from).from;\n inner = this.iterRange(start, Math.max(start, to == this.lines + 1 ? this.length : to <= 1 ? 0 : this.line(to - 1).to));\n }\n return new LineCursor(inner);\n }\n /**\n Return the document as a string, using newline characters to\n separate lines.\n */\n toString() { return this.sliceString(0); }\n /**\n Convert the document to an array of lines (which can be\n deserialized again via [`Text.of`](https://codemirror.net/6/docs/ref/#state.Text^of)).\n */\n toJSON() {\n let lines = [];\n this.flatten(lines);\n return lines;\n }\n /**\n @internal\n */\n constructor() { }\n /**\n Create a `Text` instance for the given array of lines.\n */\n static of(text) {\n if (text.length == 0)\n throw new RangeError(\"A document must have at least one line\");\n if (text.length == 1 && !text[0])\n return Text.empty;\n return text.length <= 32 /* Tree.Branch */ ? new TextLeaf(text) : TextNode.from(TextLeaf.split(text, []));\n }\n}\n// Leaves store an array of line strings. There are always line breaks\n// between these strings. Leaves are limited in size and have to be\n// contained in TextNode instances for bigger documents.\nclass TextLeaf extends Text {\n constructor(text, length = textLength(text)) {\n super();\n this.text = text;\n this.length = length;\n }\n get lines() { return this.text.length; }\n get children() { return null; }\n lineInner(target, isLine, line, offset) {\n for (let i = 0;; i++) {\n let string = this.text[i], end = offset + string.length;\n if ((isLine ? line : end) >= target)\n return new Line(offset, end, line, string);\n offset = end + 1;\n line++;\n }\n }\n decompose(from, to, target, open) {\n let text = from <= 0 && to >= this.length ? this\n : new TextLeaf(sliceText(this.text, from, to), Math.min(to, this.length) - Math.max(0, from));\n if (open & 1 /* Open.From */) {\n let prev = target.pop();\n let joined = appendText(text.text, prev.text.slice(), 0, text.length);\n if (joined.length <= 32 /* Tree.Branch */) {\n target.push(new TextLeaf(joined, prev.length + text.length));\n }\n else {\n let mid = joined.length >> 1;\n target.push(new TextLeaf(joined.slice(0, mid)), new TextLeaf(joined.slice(mid)));\n }\n }\n else {\n target.push(text);\n }\n }\n replace(from, to, text) {\n if (!(text instanceof TextLeaf))\n return super.replace(from, to, text);\n [from, to] = clip(this, from, to);\n let lines = appendText(this.text, appendText(text.text, sliceText(this.text, 0, from)), to);\n let newLen = this.length + text.length - (to - from);\n if (lines.length <= 32 /* Tree.Branch */)\n return new TextLeaf(lines, newLen);\n return TextNode.from(TextLeaf.split(lines, []), newLen);\n }\n sliceString(from, to = this.length, lineSep = \"\\n\") {\n [from, to] = clip(this, from, to);\n let result = \"\";\n for (let pos = 0, i = 0; pos <= to && i < this.text.length; i++) {\n let line = this.text[i], end = pos + line.length;\n if (pos > from && i)\n result += lineSep;\n if (from < end && to > pos)\n result += line.slice(Math.max(0, from - pos), to - pos);\n pos = end + 1;\n }\n return result;\n }\n flatten(target) {\n for (let line of this.text)\n target.push(line);\n }\n scanIdentical() { return 0; }\n static split(text, target) {\n let part = [], len = -1;\n for (let line of text) {\n part.push(line);\n len += line.length + 1;\n if (part.length == 32 /* Tree.Branch */) {\n target.push(new TextLeaf(part, len));\n part = [];\n len = -1;\n }\n }\n if (len > -1)\n target.push(new TextLeaf(part, len));\n return target;\n }\n}\n// Nodes provide the tree structure of the `Text` type. They store a\n// number of other nodes or leaves, taking care to balance themselves\n// on changes. There are implied line breaks _between_ the children of\n// a node (but not before the first or after the last child).\nclass TextNode extends Text {\n constructor(children, length) {\n super();\n this.children = children;\n this.length = length;\n this.lines = 0;\n for (let child of children)\n this.lines += child.lines;\n }\n lineInner(target, isLine, line, offset) {\n for (let i = 0;; i++) {\n let child = this.children[i], end = offset + child.length, endLine = line + child.lines - 1;\n if ((isLine ? endLine : end) >= target)\n return child.lineInner(target, isLine, line, offset);\n offset = end + 1;\n line = endLine + 1;\n }\n }\n decompose(from, to, target, open) {\n for (let i = 0, pos = 0; pos <= to && i < this.children.length; i++) {\n let child = this.children[i], end = pos + child.length;\n if (from <= end && to >= pos) {\n let childOpen = open & ((pos <= from ? 1 /* Open.From */ : 0) | (end >= to ? 2 /* Open.To */ : 0));\n if (pos >= from && end <= to && !childOpen)\n target.push(child);\n else\n child.decompose(from - pos, to - pos, target, childOpen);\n }\n pos = end + 1;\n }\n }\n replace(from, to, text) {\n [from, to] = clip(this, from, to);\n if (text.lines < this.lines)\n for (let i = 0, pos = 0; i < this.children.length; i++) {\n let child = this.children[i], end = pos + child.length;\n // Fast path: if the change only affects one child and the\n // child's size remains in the acceptable range, only update\n // that child\n if (from >= pos && to <= end) {\n let updated = child.replace(from - pos, to - pos, text);\n let totalLines = this.lines - child.lines + updated.lines;\n if (updated.lines < (totalLines >> (5 /* Tree.BranchShift */ - 1)) &&\n updated.lines > (totalLines >> (5 /* Tree.BranchShift */ + 1))) {\n let copy = this.children.slice();\n copy[i] = updated;\n return new TextNode(copy, this.length - (to - from) + text.length);\n }\n return super.replace(pos, end, updated);\n }\n pos = end + 1;\n }\n return super.replace(from, to, text);\n }\n sliceString(from, to = this.length, lineSep = \"\\n\") {\n [from, to] = clip(this, from, to);\n let result = \"\";\n for (let i = 0, pos = 0; i < this.children.length && pos <= to; i++) {\n let child = this.children[i], end = pos + child.length;\n if (pos > from && i)\n result += lineSep;\n if (from < end && to > pos)\n result += child.sliceString(from - pos, to - pos, lineSep);\n pos = end + 1;\n }\n return result;\n }\n flatten(target) {\n for (let child of this.children)\n child.flatten(target);\n }\n scanIdentical(other, dir) {\n if (!(other instanceof TextNode))\n return 0;\n let length = 0;\n let [iA, iB, eA, eB] = dir > 0 ? [0, 0, this.children.length, other.children.length]\n : [this.children.length - 1, other.children.length - 1, -1, -1];\n for (;; iA += dir, iB += dir) {\n if (iA == eA || iB == eB)\n return length;\n let chA = this.children[iA], chB = other.children[iB];\n if (chA != chB)\n return length + chA.scanIdentical(chB, dir);\n length += chA.length + 1;\n }\n }\n static from(children, length = children.reduce((l, ch) => l + ch.length + 1, -1)) {\n let lines = 0;\n for (let ch of children)\n lines += ch.lines;\n if (lines < 32 /* Tree.Branch */) {\n let flat = [];\n for (let ch of children)\n ch.flatten(flat);\n return new TextLeaf(flat, length);\n }\n let chunk = Math.max(32 /* Tree.Branch */, lines >> 5 /* Tree.BranchShift */), maxChunk = chunk << 1, minChunk = chunk >> 1;\n let chunked = [], currentLines = 0, currentLen = -1, currentChunk = [];\n function add(child) {\n let last;\n if (child.lines > maxChunk && child instanceof TextNode) {\n for (let node of child.children)\n add(node);\n }\n else if (child.lines > minChunk && (currentLines > minChunk || !currentLines)) {\n flush();\n chunked.push(child);\n }\n else if (child instanceof TextLeaf && currentLines &&\n (last = currentChunk[currentChunk.length - 1]) instanceof TextLeaf &&\n child.lines + last.lines <= 32 /* Tree.Branch */) {\n currentLines += child.lines;\n currentLen += child.length + 1;\n currentChunk[currentChunk.length - 1] = new TextLeaf(last.text.concat(child.text), last.length + 1 + child.length);\n }\n else {\n if (currentLines + child.lines > chunk)\n flush();\n currentLines += child.lines;\n currentLen += child.length + 1;\n currentChunk.push(child);\n }\n }\n function flush() {\n if (currentLines == 0)\n return;\n chunked.push(currentChunk.length == 1 ? currentChunk[0] : TextNode.from(currentChunk, currentLen));\n currentLen = -1;\n currentLines = currentChunk.length = 0;\n }\n for (let child of children)\n add(child);\n flush();\n return chunked.length == 1 ? chunked[0] : new TextNode(chunked, length);\n }\n}\nText.empty = /*@__PURE__*/new TextLeaf([\"\"], 0);\nfunction textLength(text) {\n let length = -1;\n for (let line of text)\n length += line.length + 1;\n return length;\n}\nfunction appendText(text, target, from = 0, to = 1e9) {\n for (let pos = 0, i = 0, first = true; i < text.length && pos <= to; i++) {\n let line = text[i], end = pos + line.length;\n if (end >= from) {\n if (end > to)\n line = line.slice(0, to - pos);\n if (pos < from)\n line = line.slice(from - pos);\n if (first) {\n target[target.length - 1] += line;\n first = false;\n }\n else\n target.push(line);\n }\n pos = end + 1;\n }\n return target;\n}\nfunction sliceText(text, from, to) {\n return appendText(text, [\"\"], from, to);\n}\nclass RawTextCursor {\n constructor(text, dir = 1) {\n this.dir = dir;\n this.done = false;\n this.lineBreak = false;\n this.value = \"\";\n this.nodes = [text];\n this.offsets = [dir > 0 ? 1 : (text instanceof TextLeaf ? text.text.length : text.children.length) << 1];\n }\n nextInner(skip, dir) {\n this.done = this.lineBreak = false;\n for (;;) {\n let last = this.nodes.length - 1;\n let top = this.nodes[last], offsetValue = this.offsets[last], offset = offsetValue >> 1;\n let size = top instanceof TextLeaf ? top.text.length : top.children.length;\n if (offset == (dir > 0 ? size : 0)) {\n if (last == 0) {\n this.done = true;\n this.value = \"\";\n return this;\n }\n if (dir > 0)\n this.offsets[last - 1]++;\n this.nodes.pop();\n this.offsets.pop();\n }\n else if ((offsetValue & 1) == (dir > 0 ? 0 : 1)) {\n this.offsets[last] += dir;\n if (skip == 0) {\n this.lineBreak = true;\n this.value = \"\\n\";\n return this;\n }\n skip--;\n }\n else if (top instanceof TextLeaf) {\n // Move to the next string\n let next = top.text[offset + (dir < 0 ? -1 : 0)];\n this.offsets[last] += dir;\n if (next.length > Math.max(0, skip)) {\n this.value = skip == 0 ? next : dir > 0 ? next.slice(skip) : next.slice(0, next.length - skip);\n return this;\n }\n skip -= next.length;\n }\n else {\n let next = top.children[offset + (dir < 0 ? -1 : 0)];\n if (skip > next.length) {\n skip -= next.length;\n this.offsets[last] += dir;\n }\n else {\n if (dir < 0)\n this.offsets[last]--;\n this.nodes.push(next);\n this.offsets.push(dir > 0 ? 1 : (next instanceof TextLeaf ? next.text.length : next.children.length) << 1);\n }\n }\n }\n }\n next(skip = 0) {\n if (skip < 0) {\n this.nextInner(-skip, (-this.dir));\n skip = this.value.length;\n }\n return this.nextInner(skip, this.dir);\n }\n}\nclass PartialTextCursor {\n constructor(text, start, end) {\n this.value = \"\";\n this.done = false;\n this.cursor = new RawTextCursor(text, start > end ? -1 : 1);\n this.pos = start > end ? text.length : 0;\n this.from = Math.min(start, end);\n this.to = Math.max(start, end);\n }\n nextInner(skip, dir) {\n if (dir < 0 ? this.pos <= this.from : this.pos >= this.to) {\n this.value = \"\";\n this.done = true;\n return this;\n }\n skip += Math.max(0, dir < 0 ? this.pos - this.to : this.from - this.pos);\n let limit = dir < 0 ? this.pos - this.from : this.to - this.pos;\n if (skip > limit)\n skip = limit;\n limit -= skip;\n let { value } = this.cursor.next(skip);\n this.pos += (value.length + skip) * dir;\n this.value = value.length <= limit ? value : dir < 0 ? value.slice(value.length - limit) : value.slice(0, limit);\n this.done = !this.value;\n return this;\n }\n next(skip = 0) {\n if (skip < 0)\n skip = Math.max(skip, this.from - this.pos);\n else if (skip > 0)\n skip = Math.min(skip, this.to - this.pos);\n return this.nextInner(skip, this.cursor.dir);\n }\n get lineBreak() { return this.cursor.lineBreak && this.value != \"\"; }\n}\nclass LineCursor {\n constructor(inner) {\n this.inner = inner;\n this.afterBreak = true;\n this.value = \"\";\n this.done = false;\n }\n next(skip = 0) {\n let { done, lineBreak, value } = this.inner.next(skip);\n if (done && this.afterBreak) {\n this.value = \"\";\n this.afterBreak = false;\n }\n else if (done) {\n this.done = true;\n this.value = \"\";\n }\n else if (lineBreak) {\n if (this.afterBreak) {\n this.value = \"\";\n }\n else {\n this.afterBreak = true;\n this.next();\n }\n }\n else {\n this.value = value;\n this.afterBreak = false;\n }\n return this;\n }\n get lineBreak() { return false; }\n}\nif (typeof Symbol != \"undefined\") {\n Text.prototype[Symbol.iterator] = function () { return this.iter(); };\n RawTextCursor.prototype[Symbol.iterator] = PartialTextCursor.prototype[Symbol.iterator] =\n LineCursor.prototype[Symbol.iterator] = function () { return this; };\n}\n/**\nThis type describes a line in the document. It is created\non-demand when lines are [queried](https://codemirror.net/6/docs/ref/#state.Text.lineAt).\n*/\nclass Line {\n /**\n @internal\n */\n constructor(\n /**\n The position of the start of the line.\n */\n from, \n /**\n The position at the end of the line (_before_ the line break,\n or at the end of document for the last line).\n */\n to, \n /**\n This line's line number (1-based).\n */\n number, \n /**\n The line's content.\n */\n text) {\n this.from = from;\n this.to = to;\n this.number = number;\n this.text = text;\n }\n /**\n The length of the line (not including any line break after it).\n */\n get length() { return this.to - this.from; }\n}\nfunction clip(text, from, to) {\n from = Math.max(0, Math.min(text.length, from));\n return [from, Math.max(from, Math.min(text.length, to))];\n}\n\n/**\nReturns a next grapheme cluster break _after_ (not equal to)\n`pos`, if `forward` is true, or before otherwise. Returns `pos`\nitself if no further cluster break is available in the string.\nMoves across surrogate pairs, extending characters (when\n`includeExtending` is true), characters joined with zero-width\njoiners, and flag emoji.\n*/\nfunction findClusterBreak(str, pos, forward = true, includeExtending = true) {\n return findClusterBreak$1(str, pos, forward, includeExtending);\n}\nfunction surrogateLow(ch) { return ch >= 0xDC00 && ch < 0xE000; }\nfunction surrogateHigh(ch) { return ch >= 0xD800 && ch < 0xDC00; }\n/**\nFind the code point at the given position in a string (like the\n[`codePointAt`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/codePointAt)\nstring method).\n*/\nfunction codePointAt(str, pos) {\n let code0 = str.charCodeAt(pos);\n if (!surrogateHigh(code0) || pos + 1 == str.length)\n return code0;\n let code1 = str.charCodeAt(pos + 1);\n if (!surrogateLow(code1))\n return code0;\n return ((code0 - 0xd800) << 10) + (code1 - 0xdc00) + 0x10000;\n}\n/**\nGiven a Unicode codepoint, return the JavaScript string that\nrespresents it (like\n[`String.fromCodePoint`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/fromCodePoint)).\n*/\nfunction fromCodePoint(code) {\n if (code <= 0xffff)\n return String.fromCharCode(code);\n code -= 0x10000;\n return String.fromCharCode((code >> 10) + 0xd800, (code & 1023) + 0xdc00);\n}\n/**\nThe amount of positions a character takes up in a JavaScript string.\n*/\nfunction codePointSize(code) { return code < 0x10000 ? 1 : 2; }\n\nconst DefaultSplit = /\\r\\n?|\\n/;\n/**\nDistinguishes different ways in which positions can be mapped.\n*/\nvar MapMode = /*@__PURE__*/(function (MapMode) {\n /**\n Map a position to a valid new position, even when its context\n was deleted.\n */\n MapMode[MapMode[\"Simple\"] = 0] = \"Simple\";\n /**\n Return null if deletion happens across the position.\n */\n MapMode[MapMode[\"TrackDel\"] = 1] = \"TrackDel\";\n /**\n Return null if the character _before_ the position is deleted.\n */\n MapMode[MapMode[\"TrackBefore\"] = 2] = \"TrackBefore\";\n /**\n Return null if the character _after_ the position is deleted.\n */\n MapMode[MapMode[\"TrackAfter\"] = 3] = \"TrackAfter\";\nreturn MapMode})(MapMode || (MapMode = {}));\n/**\nA change description is a variant of [change set](https://codemirror.net/6/docs/ref/#state.ChangeSet)\nthat doesn't store the inserted text. As such, it can't be\napplied, but is cheaper to store and manipulate.\n*/\nclass ChangeDesc {\n // Sections are encoded as pairs of integers. The first is the\n // length in the current document, and the second is -1 for\n // unaffected sections, and the length of the replacement content\n // otherwise. So an insertion would be (0, n>0), a deletion (n>0,\n // 0), and a replacement two positive numbers.\n /**\n @internal\n */\n constructor(\n /**\n @internal\n */\n sections) {\n this.sections = sections;\n }\n /**\n The length of the document before the change.\n */\n get length() {\n let result = 0;\n for (let i = 0; i < this.sections.length; i += 2)\n result += this.sections[i];\n return result;\n }\n /**\n The length of the document after the change.\n */\n get newLength() {\n let result = 0;\n for (let i = 0; i < this.sections.length; i += 2) {\n let ins = this.sections[i + 1];\n result += ins < 0 ? this.sections[i] : ins;\n }\n return result;\n }\n /**\n False when there are actual changes in this set.\n */\n get empty() { return this.sections.length == 0 || this.sections.length == 2 && this.sections[1] < 0; }\n /**\n Iterate over the unchanged parts left by these changes. `posA`\n provides the position of the range in the old document, `posB`\n the new position in the changed document.\n */\n iterGaps(f) {\n for (let i = 0, posA = 0, posB = 0; i < this.sections.length;) {\n let len = this.sections[i++], ins = this.sections[i++];\n if (ins < 0) {\n f(posA, posB, len);\n posB += len;\n }\n else {\n posB += ins;\n }\n posA += len;\n }\n }\n /**\n Iterate over the ranges changed by these changes. (See\n [`ChangeSet.iterChanges`](https://codemirror.net/6/docs/ref/#state.ChangeSet.iterChanges) for a\n variant that also provides you with the inserted text.)\n `fromA`/`toA` provides the extent of the change in the starting\n document, `fromB`/`toB` the extent of the replacement in the\n changed document.\n \n When `individual` is true, adjacent changes (which are kept\n separate for [position mapping](https://codemirror.net/6/docs/ref/#state.ChangeDesc.mapPos)) are\n reported separately.\n */\n iterChangedRanges(f, individual = false) {\n iterChanges(this, f, individual);\n }\n /**\n Get a description of the inverted form of these changes.\n */\n get invertedDesc() {\n let sections = [];\n for (let i = 0; i < this.sections.length;) {\n let len = this.sections[i++], ins = this.sections[i++];\n if (ins < 0)\n sections.push(len, ins);\n else\n sections.push(ins, len);\n }\n return new ChangeDesc(sections);\n }\n /**\n Compute the combined effect of applying another set of changes\n after this one. The length of the document after this set should\n match the length before `other`.\n */\n composeDesc(other) { return this.empty ? other : other.empty ? this : composeSets(this, other); }\n /**\n Map this description, which should start with the same document\n as `other`, over another set of changes, so that it can be\n applied after it. When `before` is true, map as if the changes\n in `this` happened before the ones in `other`.\n */\n mapDesc(other, before = false) { return other.empty ? this : mapSet(this, other, before); }\n mapPos(pos, assoc = -1, mode = MapMode.Simple) {\n let posA = 0, posB = 0;\n for (let i = 0; i < this.sections.length;) {\n let len = this.sections[i++], ins = this.sections[i++], endA = posA + len;\n if (ins < 0) {\n if (endA > pos)\n return posB + (pos - posA);\n posB += len;\n }\n else {\n if (mode != MapMode.Simple && endA >= pos &&\n (mode == MapMode.TrackDel && posA < pos && endA > pos ||\n mode == MapMode.TrackBefore && posA < pos ||\n mode == MapMode.TrackAfter && endA > pos))\n return null;\n if (endA > pos || endA == pos && assoc < 0 && !len)\n return pos == posA || assoc < 0 ? posB : posB + ins;\n posB += ins;\n }\n posA = endA;\n }\n if (pos > posA)\n throw new RangeError(`Position ${pos} is out of range for changeset of length ${posA}`);\n return posB;\n }\n /**\n Check whether these changes touch a given range. When one of the\n changes entirely covers the range, the string `\"cover\"` is\n returned.\n */\n touchesRange(from, to = from) {\n for (let i = 0, pos = 0; i < this.sections.length && pos <= to;) {\n let len = this.sections[i++], ins = this.sections[i++], end = pos + len;\n if (ins >= 0 && pos <= to && end >= from)\n return pos < from && end > to ? \"cover\" : true;\n pos = end;\n }\n return false;\n }\n /**\n @internal\n */\n toString() {\n let result = \"\";\n for (let i = 0; i < this.sections.length;) {\n let len = this.sections[i++], ins = this.sections[i++];\n result += (result ? \" \" : \"\") + len + (ins >= 0 ? \":\" + ins : \"\");\n }\n return result;\n }\n /**\n Serialize this change desc to a JSON-representable value.\n */\n toJSON() { return this.sections; }\n /**\n Create a change desc from its JSON representation (as produced\n by [`toJSON`](https://codemirror.net/6/docs/ref/#state.ChangeDesc.toJSON).\n */\n static fromJSON(json) {\n if (!Array.isArray(json) || json.length % 2 || json.some(a => typeof a != \"number\"))\n throw new RangeError(\"Invalid JSON representation of ChangeDesc\");\n return new ChangeDesc(json);\n }\n /**\n @internal\n */\n static create(sections) { return new ChangeDesc(sections); }\n}\n/**\nA change set represents a group of modifications to a document. It\nstores the document length, and can only be applied to documents\nwith exactly that length.\n*/\nclass ChangeSet extends ChangeDesc {\n constructor(sections, \n /**\n @internal\n */\n inserted) {\n super(sections);\n this.inserted = inserted;\n }\n /**\n Apply the changes to a document, returning the modified\n document.\n */\n apply(doc) {\n if (this.length != doc.length)\n throw new RangeError(\"Applying change set to a document with the wrong length\");\n iterChanges(this, (fromA, toA, fromB, _toB, text) => doc = doc.replace(fromB, fromB + (toA - fromA), text), false);\n return doc;\n }\n mapDesc(other, before = false) { return mapSet(this, other, before, true); }\n /**\n Given the document as it existed _before_ the changes, return a\n change set that represents the inverse of this set, which could\n be used to go from the document created by the changes back to\n the document as it existed before the changes.\n */\n invert(doc) {\n let sections = this.sections.slice(), inserted = [];\n for (let i = 0, pos = 0; i < sections.length; i += 2) {\n let len = sections[i], ins = sections[i + 1];\n if (ins >= 0) {\n sections[i] = ins;\n sections[i + 1] = len;\n let index = i >> 1;\n while (inserted.length < index)\n inserted.push(Text.empty);\n inserted.push(len ? doc.slice(pos, pos + len) : Text.empty);\n }\n pos += len;\n }\n return new ChangeSet(sections, inserted);\n }\n /**\n Combine two subsequent change sets into a single set. `other`\n must start in the document produced by `this`. If `this` goes\n `docA` → `docB` and `other` represents `docB` → `docC`, the\n returned value will represent the change `docA` → `docC`.\n */\n compose(other) { return this.empty ? other : other.empty ? this : composeSets(this, other, true); }\n /**\n Given another change set starting in the same document, maps this\n change set over the other, producing a new change set that can be\n applied to the document produced by applying `other`. When\n `before` is `true`, order changes as if `this` comes before\n `other`, otherwise (the default) treat `other` as coming first.\n \n Given two changes `A` and `B`, `A.compose(B.map(A))` and\n `B.compose(A.map(B, true))` will produce the same document. This\n provides a basic form of [operational\n transformation](https://en.wikipedia.org/wiki/Operational_transformation),\n and can be used for collaborative editing.\n */\n map(other, before = false) { return other.empty ? this : mapSet(this, other, before, true); }\n /**\n Iterate over the changed ranges in the document, calling `f` for\n each, with the range in the original document (`fromA`-`toA`)\n and the range that replaces it in the new document\n (`fromB`-`toB`).\n \n When `individual` is true, adjacent changes are reported\n separately.\n */\n iterChanges(f, individual = false) {\n iterChanges(this, f, individual);\n }\n /**\n Get a [change description](https://codemirror.net/6/docs/ref/#state.ChangeDesc) for this change\n set.\n */\n get desc() { return ChangeDesc.create(this.sections); }\n /**\n @internal\n */\n filter(ranges) {\n let resultSections = [], resultInserted = [], filteredSections = [];\n let iter = new SectionIter(this);\n done: for (let i = 0, pos = 0;;) {\n let next = i == ranges.length ? 1e9 : ranges[i++];\n while (pos < next || pos == next && iter.len == 0) {\n if (iter.done)\n break done;\n let len = Math.min(iter.len, next - pos);\n addSection(filteredSections, len, -1);\n let ins = iter.ins == -1 ? -1 : iter.off == 0 ? iter.ins : 0;\n addSection(resultSections, len, ins);\n if (ins > 0)\n addInsert(resultInserted, resultSections, iter.text);\n iter.forward(len);\n pos += len;\n }\n let end = ranges[i++];\n while (pos < end) {\n if (iter.done)\n break done;\n let len = Math.min(iter.len, end - pos);\n addSection(resultSections, len, -1);\n addSection(filteredSections, len, iter.ins == -1 ? -1 : iter.off == 0 ? iter.ins : 0);\n iter.forward(len);\n pos += len;\n }\n }\n return { changes: new ChangeSet(resultSections, resultInserted),\n filtered: ChangeDesc.create(filteredSections) };\n }\n /**\n Serialize this change set to a JSON-representable value.\n */\n toJSON() {\n let parts = [];\n for (let i = 0; i < this.sections.length; i += 2) {\n let len = this.sections[i], ins = this.sections[i + 1];\n if (ins < 0)\n parts.push(len);\n else if (ins == 0)\n parts.push([len]);\n else\n parts.push([len].concat(this.inserted[i >> 1].toJSON()));\n }\n return parts;\n }\n /**\n Create a change set for the given changes, for a document of the\n given length, using `lineSep` as line separator.\n */\n static of(changes, length, lineSep) {\n let sections = [], inserted = [], pos = 0;\n let total = null;\n function flush(force = false) {\n if (!force && !sections.length)\n return;\n if (pos < length)\n addSection(sections, length - pos, -1);\n let set = new ChangeSet(sections, inserted);\n total = total ? total.compose(set.map(total)) : set;\n sections = [];\n inserted = [];\n pos = 0;\n }\n function process(spec) {\n if (Array.isArray(spec)) {\n for (let sub of spec)\n process(sub);\n }\n else if (spec instanceof ChangeSet) {\n if (spec.length != length)\n throw new RangeError(`Mismatched change set length (got ${spec.length}, expected ${length})`);\n flush();\n total = total ? total.compose(spec.map(total)) : spec;\n }\n else {\n let { from, to = from, insert } = spec;\n if (from > to || from < 0 || to > length)\n throw new RangeError(`Invalid change range ${from} to ${to} (in doc of length ${length})`);\n let insText = !insert ? Text.empty : typeof insert == \"string\" ? Text.of(insert.split(lineSep || DefaultSplit)) : insert;\n let insLen = insText.length;\n if (from == to && insLen == 0)\n return;\n if (from < pos)\n flush();\n if (from > pos)\n addSection(sections, from - pos, -1);\n addSection(sections, to - from, insLen);\n addInsert(inserted, sections, insText);\n pos = to;\n }\n }\n process(changes);\n flush(!total);\n return total;\n }\n /**\n Create an empty changeset of the given length.\n */\n static empty(length) {\n return new ChangeSet(length ? [length, -1] : [], []);\n }\n /**\n Create a changeset from its JSON representation (as produced by\n [`toJSON`](https://codemirror.net/6/docs/ref/#state.ChangeSet.toJSON).\n */\n static fromJSON(json) {\n if (!Array.isArray(json))\n throw new RangeError(\"Invalid JSON representation of ChangeSet\");\n let sections = [], inserted = [];\n for (let i = 0; i < json.length; i++) {\n let part = json[i];\n if (typeof part == \"number\") {\n sections.push(part, -1);\n }\n else if (!Array.isArray(part) || typeof part[0] != \"number\" || part.some((e, i) => i && typeof e != \"string\")) {\n throw new RangeError(\"Invalid JSON representation of ChangeSet\");\n }\n else if (part.length == 1) {\n sections.push(part[0], 0);\n }\n else {\n while (inserted.length < i)\n inserted.push(Text.empty);\n inserted[i] = Text.of(part.slice(1));\n sections.push(part[0], inserted[i].length);\n }\n }\n return new ChangeSet(sections, inserted);\n }\n /**\n @internal\n */\n static createSet(sections, inserted) {\n return new ChangeSet(sections, inserted);\n }\n}\nfunction addSection(sections, len, ins, forceJoin = false) {\n if (len == 0 && ins <= 0)\n return;\n let last = sections.length - 2;\n if (last >= 0 && ins <= 0 && ins == sections[last + 1])\n sections[last] += len;\n else if (last >= 0 && len == 0 && sections[last] == 0)\n sections[last + 1] += ins;\n else if (forceJoin) {\n sections[last] += len;\n sections[last + 1] += ins;\n }\n else\n sections.push(len, ins);\n}\nfunction addInsert(values, sections, value) {\n if (value.length == 0)\n return;\n let index = (sections.length - 2) >> 1;\n if (index < values.length) {\n values[values.length - 1] = values[values.length - 1].append(value);\n }\n else {\n while (values.length < index)\n values.push(Text.empty);\n values.push(value);\n }\n}\nfunction iterChanges(desc, f, individual) {\n let inserted = desc.inserted;\n for (let posA = 0, posB = 0, i = 0; i < desc.sections.length;) {\n let len = desc.sections[i++], ins = desc.sections[i++];\n if (ins < 0) {\n posA += len;\n posB += len;\n }\n else {\n let endA = posA, endB = posB, text = Text.empty;\n for (;;) {\n endA += len;\n endB += ins;\n if (ins && inserted)\n text = text.append(inserted[(i - 2) >> 1]);\n if (individual || i == desc.sections.length || desc.sections[i + 1] < 0)\n break;\n len = desc.sections[i++];\n ins = desc.sections[i++];\n }\n f(posA, endA, posB, endB, text);\n posA = endA;\n posB = endB;\n }\n }\n}\nfunction mapSet(setA, setB, before, mkSet = false) {\n // Produce a copy of setA that applies to the document after setB\n // has been applied (assuming both start at the same document).\n let sections = [], insert = mkSet ? [] : null;\n let a = new SectionIter(setA), b = new SectionIter(setB);\n // Iterate over both sets in parallel. inserted tracks, for changes\n // in A that have to be processed piece-by-piece, whether their\n // content has been inserted already, and refers to the section\n // index.\n for (let inserted = -1;;) {\n if (a.done && b.len || b.done && a.len) {\n throw new Error(\"Mismatched change set lengths\");\n }\n else if (a.ins == -1 && b.ins == -1) {\n // Move across ranges skipped by both sets.\n let len = Math.min(a.len, b.len);\n addSection(sections, len, -1);\n a.forward(len);\n b.forward(len);\n }\n else if (b.ins >= 0 && (a.ins < 0 || inserted == a.i || a.off == 0 && (b.len < a.len || b.len == a.len && !before))) {\n // If there's a change in B that comes before the next change in\n // A (ordered by start pos, then len, then before flag), skip\n // that (and process any changes in A it covers).\n let len = b.len;\n addSection(sections, b.ins, -1);\n while (len) {\n let piece = Math.min(a.len, len);\n if (a.ins >= 0 && inserted < a.i && a.len <= piece) {\n addSection(sections, 0, a.ins);\n if (insert)\n addInsert(insert, sections, a.text);\n inserted = a.i;\n }\n a.forward(piece);\n len -= piece;\n }\n b.next();\n }\n else if (a.ins >= 0) {\n // Process the part of a change in A up to the start of the next\n // non-deletion change in B (if overlapping).\n let len = 0, left = a.len;\n while (left) {\n if (b.ins == -1) {\n let piece = Math.min(left, b.len);\n len += piece;\n left -= piece;\n b.forward(piece);\n }\n else if (b.ins == 0 && b.len < left) {\n left -= b.len;\n b.next();\n }\n else {\n break;\n }\n }\n addSection(sections, len, inserted < a.i ? a.ins : 0);\n if (insert && inserted < a.i)\n addInsert(insert, sections, a.text);\n inserted = a.i;\n a.forward(a.len - left);\n }\n else if (a.done && b.done) {\n return insert ? ChangeSet.createSet(sections, insert) : ChangeDesc.create(sections);\n }\n else {\n throw new Error(\"Mismatched change set lengths\");\n }\n }\n}\nfunction composeSets(setA, setB, mkSet = false) {\n let sections = [];\n let insert = mkSet ? [] : null;\n let a = new SectionIter(setA), b = new SectionIter(setB);\n for (let open = false;;) {\n if (a.done && b.done) {\n return insert ? ChangeSet.createSet(sections, insert) : ChangeDesc.create(sections);\n }\n else if (a.ins == 0) { // Deletion in A\n addSection(sections, a.len, 0, open);\n a.next();\n }\n else if (b.len == 0 && !b.done) { // Insertion in B\n addSection(sections, 0, b.ins, open);\n if (insert)\n addInsert(insert, sections, b.text);\n b.next();\n }\n else if (a.done || b.done) {\n throw new Error(\"Mismatched change set lengths\");\n }\n else {\n let len = Math.min(a.len2, b.len), sectionLen = sections.length;\n if (a.ins == -1) {\n let insB = b.ins == -1 ? -1 : b.off ? 0 : b.ins;\n addSection(sections, len, insB, open);\n if (insert && insB)\n addInsert(insert, sections, b.text);\n }\n else if (b.ins == -1) {\n addSection(sections, a.off ? 0 : a.len, len, open);\n if (insert)\n addInsert(insert, sections, a.textBit(len));\n }\n else {\n addSection(sections, a.off ? 0 : a.len, b.off ? 0 : b.ins, open);\n if (insert && !b.off)\n addInsert(insert, sections, b.text);\n }\n open = (a.ins > len || b.ins >= 0 && b.len > len) && (open || sections.length > sectionLen);\n a.forward2(len);\n b.forward(len);\n }\n }\n}\nclass SectionIter {\n constructor(set) {\n this.set = set;\n this.i = 0;\n this.next();\n }\n next() {\n let { sections } = this.set;\n if (this.i < sections.length) {\n this.len = sections[this.i++];\n this.ins = sections[this.i++];\n }\n else {\n this.len = 0;\n this.ins = -2;\n }\n this.off = 0;\n }\n get done() { return this.ins == -2; }\n get len2() { return this.ins < 0 ? this.len : this.ins; }\n get text() {\n let { inserted } = this.set, index = (this.i - 2) >> 1;\n return index >= inserted.length ? Text.empty : inserted[index];\n }\n textBit(len) {\n let { inserted } = this.set, index = (this.i - 2) >> 1;\n return index >= inserted.length && !len ? Text.empty\n : inserted[index].slice(this.off, len == null ? undefined : this.off + len);\n }\n forward(len) {\n if (len == this.len)\n this.next();\n else {\n this.len -= len;\n this.off += len;\n }\n }\n forward2(len) {\n if (this.ins == -1)\n this.forward(len);\n else if (len == this.ins)\n this.next();\n else {\n this.ins -= len;\n this.off += len;\n }\n }\n}\n\n/**\nA single selection range. When\n[`allowMultipleSelections`](https://codemirror.net/6/docs/ref/#state.EditorState^allowMultipleSelections)\nis enabled, a [selection](https://codemirror.net/6/docs/ref/#state.EditorSelection) may hold\nmultiple ranges. By default, selections hold exactly one range.\n*/\nclass SelectionRange {\n constructor(\n /**\n The lower boundary of the range.\n */\n from, \n /**\n The upper boundary of the range.\n */\n to, flags) {\n this.from = from;\n this.to = to;\n this.flags = flags;\n }\n /**\n The anchor of the range—the side that doesn't move when you\n extend it.\n */\n get anchor() { return this.flags & 32 /* RangeFlag.Inverted */ ? this.to : this.from; }\n /**\n The head of the range, which is moved when the range is\n [extended](https://codemirror.net/6/docs/ref/#state.SelectionRange.extend).\n */\n get head() { return this.flags & 32 /* RangeFlag.Inverted */ ? this.from : this.to; }\n /**\n True when `anchor` and `head` are at the same position.\n */\n get empty() { return this.from == this.to; }\n /**\n If this is a cursor that is explicitly associated with the\n character on one of its sides, this returns the side. -1 means\n the character before its position, 1 the character after, and 0\n means no association.\n */\n get assoc() { return this.flags & 8 /* RangeFlag.AssocBefore */ ? -1 : this.flags & 16 /* RangeFlag.AssocAfter */ ? 1 : 0; }\n /**\n The bidirectional text level associated with this cursor, if\n any.\n */\n get bidiLevel() {\n let level = this.flags & 7 /* RangeFlag.BidiLevelMask */;\n return level == 7 ? null : level;\n }\n /**\n The goal column (stored vertical offset) associated with a\n cursor. This is used to preserve the vertical position when\n [moving](https://codemirror.net/6/docs/ref/#view.EditorView.moveVertically) across\n lines of different length.\n */\n get goalColumn() {\n let value = this.flags >> 6 /* RangeFlag.GoalColumnOffset */;\n return value == 16777215 /* RangeFlag.NoGoalColumn */ ? undefined : value;\n }\n /**\n Map this range through a change, producing a valid range in the\n updated document.\n */\n map(change, assoc = -1) {\n let from, to;\n if (this.empty) {\n from = to = change.mapPos(this.from, assoc);\n }\n else {\n from = change.mapPos(this.from, 1);\n to = change.mapPos(this.to, -1);\n }\n return from == this.from && to == this.to ? this : new SelectionRange(from, to, this.flags);\n }\n /**\n Extend this range to cover at least `from` to `to`.\n */\n extend(from, to = from) {\n if (from <= this.anchor && to >= this.anchor)\n return EditorSelection.range(from, to);\n let head = Math.abs(from - this.anchor) > Math.abs(to - this.anchor) ? from : to;\n return EditorSelection.range(this.anchor, head);\n }\n /**\n Compare this range to another range.\n */\n eq(other, includeAssoc = false) {\n return this.anchor == other.anchor && this.head == other.head && this.goalColumn == other.goalColumn &&\n (!includeAssoc || !this.empty || this.assoc == other.assoc);\n }\n /**\n Return a JSON-serializable object representing the range.\n */\n toJSON() { return { anchor: this.anchor, head: this.head }; }\n /**\n Convert a JSON representation of a range to a `SelectionRange`\n instance.\n */\n static fromJSON(json) {\n if (!json || typeof json.anchor != \"number\" || typeof json.head != \"number\")\n throw new RangeError(\"Invalid JSON representation for SelectionRange\");\n return EditorSelection.range(json.anchor, json.head);\n }\n /**\n @internal\n */\n static create(from, to, flags) {\n return new SelectionRange(from, to, flags);\n }\n}\n/**\nAn editor selection holds one or more selection ranges.\n*/\nclass EditorSelection {\n constructor(\n /**\n The ranges in the selection, sorted by position. Ranges cannot\n overlap (but they may touch, if they aren't empty).\n */\n ranges, \n /**\n The index of the _main_ range in the selection (which is\n usually the range that was added last).\n */\n mainIndex) {\n this.ranges = ranges;\n this.mainIndex = mainIndex;\n }\n /**\n Map a selection through a change. Used to adjust the selection\n position for changes.\n */\n map(change, assoc = -1) {\n if (change.empty)\n return this;\n return EditorSelection.create(this.ranges.map(r => r.map(change, assoc)), this.mainIndex);\n }\n /**\n Compare this selection to another selection. By default, ranges\n are compared only by position. When `includeAssoc` is true,\n cursor ranges must also have the same\n [`assoc`](https://codemirror.net/6/docs/ref/#state.SelectionRange.assoc) value.\n */\n eq(other, includeAssoc = false) {\n if (this.ranges.length != other.ranges.length ||\n this.mainIndex != other.mainIndex)\n return false;\n for (let i = 0; i < this.ranges.length; i++)\n if (!this.ranges[i].eq(other.ranges[i], includeAssoc))\n return false;\n return true;\n }\n /**\n Get the primary selection range. Usually, you should make sure\n your code applies to _all_ ranges, by using methods like\n [`changeByRange`](https://codemirror.net/6/docs/ref/#state.EditorState.changeByRange).\n */\n get main() { return this.ranges[this.mainIndex]; }\n /**\n Make sure the selection only has one range. Returns a selection\n holding only the main range from this selection.\n */\n asSingle() {\n return this.ranges.length == 1 ? this : new EditorSelection([this.main], 0);\n }\n /**\n Extend this selection with an extra range.\n */\n addRange(range, main = true) {\n return EditorSelection.create([range].concat(this.ranges), main ? 0 : this.mainIndex + 1);\n }\n /**\n Replace a given range with another range, and then normalize the\n selection to merge and sort ranges if necessary.\n */\n replaceRange(range, which = this.mainIndex) {\n let ranges = this.ranges.slice();\n ranges[which] = range;\n return EditorSelection.create(ranges, this.mainIndex);\n }\n /**\n Convert this selection to an object that can be serialized to\n JSON.\n */\n toJSON() {\n return { ranges: this.ranges.map(r => r.toJSON()), main: this.mainIndex };\n }\n /**\n Create a selection from a JSON representation.\n */\n static fromJSON(json) {\n if (!json || !Array.isArray(json.ranges) || typeof json.main != \"number\" || json.main >= json.ranges.length)\n throw new RangeError(\"Invalid JSON representation for EditorSelection\");\n return new EditorSelection(json.ranges.map((r) => SelectionRange.fromJSON(r)), json.main);\n }\n /**\n Create a selection holding a single range.\n */\n static single(anchor, head = anchor) {\n return new EditorSelection([EditorSelection.range(anchor, head)], 0);\n }\n /**\n Sort and merge the given set of ranges, creating a valid\n selection.\n */\n static create(ranges, mainIndex = 0) {\n if (ranges.length == 0)\n throw new RangeError(\"A selection needs at least one range\");\n for (let pos = 0, i = 0; i < ranges.length; i++) {\n let range = ranges[i];\n if (range.empty ? range.from <= pos : range.from < pos)\n return EditorSelection.normalized(ranges.slice(), mainIndex);\n pos = range.to;\n }\n return new EditorSelection(ranges, mainIndex);\n }\n /**\n Create a cursor selection range at the given position. You can\n safely ignore the optional arguments in most situations.\n */\n static cursor(pos, assoc = 0, bidiLevel, goalColumn) {\n return SelectionRange.create(pos, pos, (assoc == 0 ? 0 : assoc < 0 ? 8 /* RangeFlag.AssocBefore */ : 16 /* RangeFlag.AssocAfter */) |\n (bidiLevel == null ? 7 : Math.min(6, bidiLevel)) |\n ((goalColumn !== null && goalColumn !== void 0 ? goalColumn : 16777215 /* RangeFlag.NoGoalColumn */) << 6 /* RangeFlag.GoalColumnOffset */));\n }\n /**\n Create a selection range.\n */\n static range(anchor, head, goalColumn, bidiLevel) {\n let flags = ((goalColumn !== null && goalColumn !== void 0 ? goalColumn : 16777215 /* RangeFlag.NoGoalColumn */) << 6 /* RangeFlag.GoalColumnOffset */) |\n (bidiLevel == null ? 7 : Math.min(6, bidiLevel));\n return head < anchor ? SelectionRange.create(head, anchor, 32 /* RangeFlag.Inverted */ | 16 /* RangeFlag.AssocAfter */ | flags)\n : SelectionRange.create(anchor, head, (head > anchor ? 8 /* RangeFlag.AssocBefore */ : 0) | flags);\n }\n /**\n @internal\n */\n static normalized(ranges, mainIndex = 0) {\n let main = ranges[mainIndex];\n ranges.sort((a, b) => a.from - b.from);\n mainIndex = ranges.indexOf(main);\n for (let i = 1; i < ranges.length; i++) {\n let range = ranges[i], prev = ranges[i - 1];\n if (range.empty ? range.from <= prev.to : range.from < prev.to) {\n let from = prev.from, to = Math.max(range.to, prev.to);\n if (i <= mainIndex)\n mainIndex--;\n ranges.splice(--i, 2, range.anchor > range.head ? EditorSelection.range(to, from) : EditorSelection.range(from, to));\n }\n }\n return new EditorSelection(ranges, mainIndex);\n }\n}\nfunction checkSelection(selection, docLength) {\n for (let range of selection.ranges)\n if (range.to > docLength)\n throw new RangeError(\"Selection points outside of document\");\n}\n\nlet nextID = 0;\n/**\nA facet is a labeled value that is associated with an editor\nstate. It takes inputs from any number of extensions, and combines\nthose into a single output value.\n\nExamples of uses of facets are the [tab\nsize](https://codemirror.net/6/docs/ref/#state.EditorState^tabSize), [editor\nattributes](https://codemirror.net/6/docs/ref/#view.EditorView^editorAttributes), and [update\nlisteners](https://codemirror.net/6/docs/ref/#view.EditorView^updateListener).\n\nNote that `Facet` instances can be used anywhere where\n[`FacetReader`](https://codemirror.net/6/docs/ref/#state.FacetReader) is expected.\n*/\nclass Facet {\n constructor(\n /**\n @internal\n */\n combine, \n /**\n @internal\n */\n compareInput, \n /**\n @internal\n */\n compare, isStatic, enables) {\n this.combine = combine;\n this.compareInput = compareInput;\n this.compare = compare;\n this.isStatic = isStatic;\n /**\n @internal\n */\n this.id = nextID++;\n this.default = combine([]);\n this.extensions = typeof enables == \"function\" ? enables(this) : enables;\n }\n /**\n Returns a facet reader for this facet, which can be used to\n [read](https://codemirror.net/6/docs/ref/#state.EditorState.facet) it but not to define values for it.\n */\n get reader() { return this; }\n /**\n Define a new facet.\n */\n static define(config = {}) {\n return new Facet(config.combine || ((a) => a), config.compareInput || ((a, b) => a === b), config.compare || (!config.combine ? sameArray : (a, b) => a === b), !!config.static, config.enables);\n }\n /**\n Returns an extension that adds the given value to this facet.\n */\n of(value) {\n return new FacetProvider([], this, 0 /* Provider.Static */, value);\n }\n /**\n Create an extension that computes a value for the facet from a\n state. You must take care to declare the parts of the state that\n this value depends on, since your function is only called again\n for a new state when one of those parts changed.\n \n In cases where your value depends only on a single field, you'll\n want to use the [`from`](https://codemirror.net/6/docs/ref/#state.Facet.from) method instead.\n */\n compute(deps, get) {\n if (this.isStatic)\n throw new Error(\"Can't compute a static facet\");\n return new FacetProvider(deps, this, 1 /* Provider.Single */, get);\n }\n /**\n Create an extension that computes zero or more values for this\n facet from a state.\n */\n computeN(deps, get) {\n if (this.isStatic)\n throw new Error(\"Can't compute a static facet\");\n return new FacetProvider(deps, this, 2 /* Provider.Multi */, get);\n }\n from(field, get) {\n if (!get)\n get = x => x;\n return this.compute([field], state => get(state.field(field)));\n }\n}\nfunction sameArray(a, b) {\n return a == b || a.length == b.length && a.every((e, i) => e === b[i]);\n}\nclass FacetProvider {\n constructor(dependencies, facet, type, value) {\n this.dependencies = dependencies;\n this.facet = facet;\n this.type = type;\n this.value = value;\n this.id = nextID++;\n }\n dynamicSlot(addresses) {\n var _a;\n let getter = this.value;\n let compare = this.facet.compareInput;\n let id = this.id, idx = addresses[id] >> 1, multi = this.type == 2 /* Provider.Multi */;\n let depDoc = false, depSel = false, depAddrs = [];\n for (let dep of this.dependencies) {\n if (dep == \"doc\")\n depDoc = true;\n else if (dep == \"selection\")\n depSel = true;\n else if ((((_a = addresses[dep.id]) !== null && _a !== void 0 ? _a : 1) & 1) == 0)\n depAddrs.push(addresses[dep.id]);\n }\n return {\n create(state) {\n state.values[idx] = getter(state);\n return 1 /* SlotStatus.Changed */;\n },\n update(state, tr) {\n if ((depDoc && tr.docChanged) || (depSel && (tr.docChanged || tr.selection)) || ensureAll(state, depAddrs)) {\n let newVal = getter(state);\n if (multi ? !compareArray(newVal, state.values[idx], compare) : !compare(newVal, state.values[idx])) {\n state.values[idx] = newVal;\n return 1 /* SlotStatus.Changed */;\n }\n }\n return 0;\n },\n reconfigure: (state, oldState) => {\n let newVal, oldAddr = oldState.config.address[id];\n if (oldAddr != null) {\n let oldVal = getAddr(oldState, oldAddr);\n if (this.dependencies.every(dep => {\n return dep instanceof Facet ? oldState.facet(dep) === state.facet(dep) :\n dep instanceof StateField ? oldState.field(dep, false) == state.field(dep, false) : true;\n }) || (multi ? compareArray(newVal = getter(state), oldVal, compare) : compare(newVal = getter(state), oldVal))) {\n state.values[idx] = oldVal;\n return 0;\n }\n }\n else {\n newVal = getter(state);\n }\n state.values[idx] = newVal;\n return 1 /* SlotStatus.Changed */;\n }\n };\n }\n}\nfunction compareArray(a, b, compare) {\n if (a.length != b.length)\n return false;\n for (let i = 0; i < a.length; i++)\n if (!compare(a[i], b[i]))\n return false;\n return true;\n}\nfunction ensureAll(state, addrs) {\n let changed = false;\n for (let addr of addrs)\n if (ensureAddr(state, addr) & 1 /* SlotStatus.Changed */)\n changed = true;\n return changed;\n}\nfunction dynamicFacetSlot(addresses, facet, providers) {\n let providerAddrs = providers.map(p => addresses[p.id]);\n let providerTypes = providers.map(p => p.type);\n let dynamic = providerAddrs.filter(p => !(p & 1));\n let idx = addresses[facet.id] >> 1;\n function get(state) {\n let values = [];\n for (let i = 0; i < providerAddrs.length; i++) {\n let value = getAddr(state, providerAddrs[i]);\n if (providerTypes[i] == 2 /* Provider.Multi */)\n for (let val of value)\n values.push(val);\n else\n values.push(value);\n }\n return facet.combine(values);\n }\n return {\n create(state) {\n for (let addr of providerAddrs)\n ensureAddr(state, addr);\n state.values[idx] = get(state);\n return 1 /* SlotStatus.Changed */;\n },\n update(state, tr) {\n if (!ensureAll(state, dynamic))\n return 0;\n let value = get(state);\n if (facet.compare(value, state.values[idx]))\n return 0;\n state.values[idx] = value;\n return 1 /* SlotStatus.Changed */;\n },\n reconfigure(state, oldState) {\n let depChanged = ensureAll(state, providerAddrs);\n let oldProviders = oldState.config.facets[facet.id], oldValue = oldState.facet(facet);\n if (oldProviders && !depChanged && sameArray(providers, oldProviders)) {\n state.values[idx] = oldValue;\n return 0;\n }\n let value = get(state);\n if (facet.compare(value, oldValue)) {\n state.values[idx] = oldValue;\n return 0;\n }\n state.values[idx] = value;\n return 1 /* SlotStatus.Changed */;\n }\n };\n}\nconst initField = /*@__PURE__*/Facet.define({ static: true });\n/**\nFields can store additional information in an editor state, and\nkeep it in sync with the rest of the state.\n*/\nclass StateField {\n constructor(\n /**\n @internal\n */\n id, createF, updateF, compareF, \n /**\n @internal\n */\n spec) {\n this.id = id;\n this.createF = createF;\n this.updateF = updateF;\n this.compareF = compareF;\n this.spec = spec;\n /**\n @internal\n */\n this.provides = undefined;\n }\n /**\n Define a state field.\n */\n static define(config) {\n let field = new StateField(nextID++, config.create, config.update, config.compare || ((a, b) => a === b), config);\n if (config.provide)\n field.provides = config.provide(field);\n return field;\n }\n create(state) {\n let init = state.facet(initField).find(i => i.field == this);\n return ((init === null || init === void 0 ? void 0 : init.create) || this.createF)(state);\n }\n /**\n @internal\n */\n slot(addresses) {\n let idx = addresses[this.id] >> 1;\n return {\n create: (state) => {\n state.values[idx] = this.create(state);\n return 1 /* SlotStatus.Changed */;\n },\n update: (state, tr) => {\n let oldVal = state.values[idx];\n let value = this.updateF(oldVal, tr);\n if (this.compareF(oldVal, value))\n return 0;\n state.values[idx] = value;\n return 1 /* SlotStatus.Changed */;\n },\n reconfigure: (state, oldState) => {\n let init = state.facet(initField), oldInit = oldState.facet(initField), reInit;\n if ((reInit = init.find(i => i.field == this)) && reInit != oldInit.find(i => i.field == this)) {\n state.values[idx] = reInit.create(state);\n return 1 /* SlotStatus.Changed */;\n }\n if (oldState.config.address[this.id] != null) {\n state.values[idx] = oldState.field(this);\n return 0;\n }\n state.values[idx] = this.create(state);\n return 1 /* SlotStatus.Changed */;\n }\n };\n }\n /**\n Returns an extension that enables this field and overrides the\n way it is initialized. Can be useful when you need to provide a\n non-default starting value for the field.\n */\n init(create) {\n return [this, initField.of({ field: this, create })];\n }\n /**\n State field instances can be used as\n [`Extension`](https://codemirror.net/6/docs/ref/#state.Extension) values to enable the field in a\n given state.\n */\n get extension() { return this; }\n}\nconst Prec_ = { lowest: 4, low: 3, default: 2, high: 1, highest: 0 };\nfunction prec(value) {\n return (ext) => new PrecExtension(ext, value);\n}\n/**\nBy default extensions are registered in the order they are found\nin the flattened form of nested array that was provided.\nIndividual extension values can be assigned a precedence to\noverride this. Extensions that do not have a precedence set get\nthe precedence of the nearest parent with a precedence, or\n[`default`](https://codemirror.net/6/docs/ref/#state.Prec.default) if there is no such parent. The\nfinal ordering of extensions is determined by first sorting by\nprecedence and then by order within each precedence.\n*/\nconst Prec = {\n /**\n The highest precedence level, for extensions that should end up\n near the start of the precedence ordering.\n */\n highest: /*@__PURE__*/prec(Prec_.highest),\n /**\n A higher-than-default precedence, for extensions that should\n come before those with default precedence.\n */\n high: /*@__PURE__*/prec(Prec_.high),\n /**\n The default precedence, which is also used for extensions\n without an explicit precedence.\n */\n default: /*@__PURE__*/prec(Prec_.default),\n /**\n A lower-than-default precedence.\n */\n low: /*@__PURE__*/prec(Prec_.low),\n /**\n The lowest precedence level. Meant for things that should end up\n near the end of the extension order.\n */\n lowest: /*@__PURE__*/prec(Prec_.lowest)\n};\nclass PrecExtension {\n constructor(inner, prec) {\n this.inner = inner;\n this.prec = prec;\n }\n}\n/**\nExtension compartments can be used to make a configuration\ndynamic. By [wrapping](https://codemirror.net/6/docs/ref/#state.Compartment.of) part of your\nconfiguration in a compartment, you can later\n[replace](https://codemirror.net/6/docs/ref/#state.Compartment.reconfigure) that part through a\ntransaction.\n*/\nclass Compartment {\n /**\n Create an instance of this compartment to add to your [state\n configuration](https://codemirror.net/6/docs/ref/#state.EditorStateConfig.extensions).\n */\n of(ext) { return new CompartmentInstance(this, ext); }\n /**\n Create an [effect](https://codemirror.net/6/docs/ref/#state.TransactionSpec.effects) that\n reconfigures this compartment.\n */\n reconfigure(content) {\n return Compartment.reconfigure.of({ compartment: this, extension: content });\n }\n /**\n Get the current content of the compartment in the state, or\n `undefined` if it isn't present.\n */\n get(state) {\n return state.config.compartments.get(this);\n }\n}\nclass CompartmentInstance {\n constructor(compartment, inner) {\n this.compartment = compartment;\n this.inner = inner;\n }\n}\nclass Configuration {\n constructor(base, compartments, dynamicSlots, address, staticValues, facets) {\n this.base = base;\n this.compartments = compartments;\n this.dynamicSlots = dynamicSlots;\n this.address = address;\n this.staticValues = staticValues;\n this.facets = facets;\n this.statusTemplate = [];\n while (this.statusTemplate.length < dynamicSlots.length)\n this.statusTemplate.push(0 /* SlotStatus.Unresolved */);\n }\n staticFacet(facet) {\n let addr = this.address[facet.id];\n return addr == null ? facet.default : this.staticValues[addr >> 1];\n }\n static resolve(base, compartments, oldState) {\n let fields = [];\n let facets = Object.create(null);\n let newCompartments = new Map();\n for (let ext of flatten(base, compartments, newCompartments)) {\n if (ext instanceof StateField)\n fields.push(ext);\n else\n (facets[ext.facet.id] || (facets[ext.facet.id] = [])).push(ext);\n }\n let address = Object.create(null);\n let staticValues = [];\n let dynamicSlots = [];\n for (let field of fields) {\n address[field.id] = dynamicSlots.length << 1;\n dynamicSlots.push(a => field.slot(a));\n }\n let oldFacets = oldState === null || oldState === void 0 ? void 0 : oldState.config.facets;\n for (let id in facets) {\n let providers = facets[id], facet = providers[0].facet;\n let oldProviders = oldFacets && oldFacets[id] || [];\n if (providers.every(p => p.type == 0 /* Provider.Static */)) {\n address[facet.id] = (staticValues.length << 1) | 1;\n if (sameArray(oldProviders, providers)) {\n staticValues.push(oldState.facet(facet));\n }\n else {\n let value = facet.combine(providers.map(p => p.value));\n staticValues.push(oldState && facet.compare(value, oldState.facet(facet)) ? oldState.facet(facet) : value);\n }\n }\n else {\n for (let p of providers) {\n if (p.type == 0 /* Provider.Static */) {\n address[p.id] = (staticValues.length << 1) | 1;\n staticValues.push(p.value);\n }\n else {\n address[p.id] = dynamicSlots.length << 1;\n dynamicSlots.push(a => p.dynamicSlot(a));\n }\n }\n address[facet.id] = dynamicSlots.length << 1;\n dynamicSlots.push(a => dynamicFacetSlot(a, facet, providers));\n }\n }\n let dynamic = dynamicSlots.map(f => f(address));\n return new Configuration(base, newCompartments, dynamic, address, staticValues, facets);\n }\n}\nfunction flatten(extension, compartments, newCompartments) {\n let result = [[], [], [], [], []];\n let seen = new Map();\n function inner(ext, prec) {\n let known = seen.get(ext);\n if (known != null) {\n if (known <= prec)\n return;\n let found = result[known].indexOf(ext);\n if (found > -1)\n result[known].splice(found, 1);\n if (ext instanceof CompartmentInstance)\n newCompartments.delete(ext.compartment);\n }\n seen.set(ext, prec);\n if (Array.isArray(ext)) {\n for (let e of ext)\n inner(e, prec);\n }\n else if (ext instanceof CompartmentInstance) {\n if (newCompartments.has(ext.compartment))\n throw new RangeError(`Duplicate use of compartment in extensions`);\n let content = compartments.get(ext.compartment) || ext.inner;\n newCompartments.set(ext.compartment, content);\n inner(content, prec);\n }\n else if (ext instanceof PrecExtension) {\n inner(ext.inner, ext.prec);\n }\n else if (ext instanceof StateField) {\n result[prec].push(ext);\n if (ext.provides)\n inner(ext.provides, prec);\n }\n else if (ext instanceof FacetProvider) {\n result[prec].push(ext);\n if (ext.facet.extensions)\n inner(ext.facet.extensions, Prec_.default);\n }\n else {\n let content = ext.extension;\n if (!content)\n throw new Error(`Unrecognized extension value in extension set (${ext}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);\n inner(content, prec);\n }\n }\n inner(extension, Prec_.default);\n return result.reduce((a, b) => a.concat(b));\n}\nfunction ensureAddr(state, addr) {\n if (addr & 1)\n return 2 /* SlotStatus.Computed */;\n let idx = addr >> 1;\n let status = state.status[idx];\n if (status == 4 /* SlotStatus.Computing */)\n throw new Error(\"Cyclic dependency between fields and/or facets\");\n if (status & 2 /* SlotStatus.Computed */)\n return status;\n state.status[idx] = 4 /* SlotStatus.Computing */;\n let changed = state.computeSlot(state, state.config.dynamicSlots[idx]);\n return state.status[idx] = 2 /* SlotStatus.Computed */ | changed;\n}\nfunction getAddr(state, addr) {\n return addr & 1 ? state.config.staticValues[addr >> 1] : state.values[addr >> 1];\n}\n\nconst languageData = /*@__PURE__*/Facet.define();\nconst allowMultipleSelections = /*@__PURE__*/Facet.define({\n combine: values => values.some(v => v),\n static: true\n});\nconst lineSeparator = /*@__PURE__*/Facet.define({\n combine: values => values.length ? values[0] : undefined,\n static: true\n});\nconst changeFilter = /*@__PURE__*/Facet.define();\nconst transactionFilter = /*@__PURE__*/Facet.define();\nconst transactionExtender = /*@__PURE__*/Facet.define();\nconst readOnly = /*@__PURE__*/Facet.define({\n combine: values => values.length ? values[0] : false\n});\n\n/**\nAnnotations are tagged values that are used to add metadata to\ntransactions in an extensible way. They should be used to model\nthings that effect the entire transaction (such as its [time\nstamp](https://codemirror.net/6/docs/ref/#state.Transaction^time) or information about its\n[origin](https://codemirror.net/6/docs/ref/#state.Transaction^userEvent)). For effects that happen\n_alongside_ the other changes made by the transaction, [state\neffects](https://codemirror.net/6/docs/ref/#state.StateEffect) are more appropriate.\n*/\nclass Annotation {\n /**\n @internal\n */\n constructor(\n /**\n The annotation type.\n */\n type, \n /**\n The value of this annotation.\n */\n value) {\n this.type = type;\n this.value = value;\n }\n /**\n Define a new type of annotation.\n */\n static define() { return new AnnotationType(); }\n}\n/**\nMarker that identifies a type of [annotation](https://codemirror.net/6/docs/ref/#state.Annotation).\n*/\nclass AnnotationType {\n /**\n Create an instance of this annotation.\n */\n of(value) { return new Annotation(this, value); }\n}\n/**\nRepresentation of a type of state effect. Defined with\n[`StateEffect.define`](https://codemirror.net/6/docs/ref/#state.StateEffect^define).\n*/\nclass StateEffectType {\n /**\n @internal\n */\n constructor(\n // The `any` types in these function types are there to work\n // around TypeScript issue #37631, where the type guard on\n // `StateEffect.is` mysteriously stops working when these properly\n // have type `Value`.\n /**\n @internal\n */\n map) {\n this.map = map;\n }\n /**\n Create a [state effect](https://codemirror.net/6/docs/ref/#state.StateEffect) instance of this\n type.\n */\n of(value) { return new StateEffect(this, value); }\n}\n/**\nState effects can be used to represent additional effects\nassociated with a [transaction](https://codemirror.net/6/docs/ref/#state.Transaction.effects). They\nare often useful to model changes to custom [state\nfields](https://codemirror.net/6/docs/ref/#state.StateField), when those changes aren't implicit in\ndocument or selection changes.\n*/\nclass StateEffect {\n /**\n @internal\n */\n constructor(\n /**\n @internal\n */\n type, \n /**\n The value of this effect.\n */\n value) {\n this.type = type;\n this.value = value;\n }\n /**\n Map this effect through a position mapping. Will return\n `undefined` when that ends up deleting the effect.\n */\n map(mapping) {\n let mapped = this.type.map(this.value, mapping);\n return mapped === undefined ? undefined : mapped == this.value ? this : new StateEffect(this.type, mapped);\n }\n /**\n Tells you whether this effect object is of a given\n [type](https://codemirror.net/6/docs/ref/#state.StateEffectType).\n */\n is(type) { return this.type == type; }\n /**\n Define a new effect type. The type parameter indicates the type\n of values that his effect holds. It should be a type that\n doesn't include `undefined`, since that is used in\n [mapping](https://codemirror.net/6/docs/ref/#state.StateEffect.map) to indicate that an effect is\n removed.\n */\n static define(spec = {}) {\n return new StateEffectType(spec.map || (v => v));\n }\n /**\n Map an array of effects through a change set.\n */\n static mapEffects(effects, mapping) {\n if (!effects.length)\n return effects;\n let result = [];\n for (let effect of effects) {\n let mapped = effect.map(mapping);\n if (mapped)\n result.push(mapped);\n }\n return result;\n }\n}\n/**\nThis effect can be used to reconfigure the root extensions of\nthe editor. Doing this will discard any extensions\n[appended](https://codemirror.net/6/docs/ref/#state.StateEffect^appendConfig), but does not reset\nthe content of [reconfigured](https://codemirror.net/6/docs/ref/#state.Compartment.reconfigure)\ncompartments.\n*/\nStateEffect.reconfigure = /*@__PURE__*/StateEffect.define();\n/**\nAppend extensions to the top-level configuration of the editor.\n*/\nStateEffect.appendConfig = /*@__PURE__*/StateEffect.define();\n/**\nChanges to the editor state are grouped into transactions.\nTypically, a user action creates a single transaction, which may\ncontain any number of document changes, may change the selection,\nor have other effects. Create a transaction by calling\n[`EditorState.update`](https://codemirror.net/6/docs/ref/#state.EditorState.update), or immediately\ndispatch one by calling\n[`EditorView.dispatch`](https://codemirror.net/6/docs/ref/#view.EditorView.dispatch).\n*/\nclass Transaction {\n constructor(\n /**\n The state from which the transaction starts.\n */\n startState, \n /**\n The document changes made by this transaction.\n */\n changes, \n /**\n The selection set by this transaction, or undefined if it\n doesn't explicitly set a selection.\n */\n selection, \n /**\n The effects added to the transaction.\n */\n effects, \n /**\n @internal\n */\n annotations, \n /**\n Whether the selection should be scrolled into view after this\n transaction is dispatched.\n */\n scrollIntoView) {\n this.startState = startState;\n this.changes = changes;\n this.selection = selection;\n this.effects = effects;\n this.annotations = annotations;\n this.scrollIntoView = scrollIntoView;\n /**\n @internal\n */\n this._doc = null;\n /**\n @internal\n */\n this._state = null;\n if (selection)\n checkSelection(selection, changes.newLength);\n if (!annotations.some((a) => a.type == Transaction.time))\n this.annotations = annotations.concat(Transaction.time.of(Date.now()));\n }\n /**\n @internal\n */\n static create(startState, changes, selection, effects, annotations, scrollIntoView) {\n return new Transaction(startState, changes, selection, effects, annotations, scrollIntoView);\n }\n /**\n The new document produced by the transaction. Contrary to\n [`.state`](https://codemirror.net/6/docs/ref/#state.Transaction.state)`.doc`, accessing this won't\n force the entire new state to be computed right away, so it is\n recommended that [transaction\n filters](https://codemirror.net/6/docs/ref/#state.EditorState^transactionFilter) use this getter\n when they need to look at the new document.\n */\n get newDoc() {\n return this._doc || (this._doc = this.changes.apply(this.startState.doc));\n }\n /**\n The new selection produced by the transaction. If\n [`this.selection`](https://codemirror.net/6/docs/ref/#state.Transaction.selection) is undefined,\n this will [map](https://codemirror.net/6/docs/ref/#state.EditorSelection.map) the start state's\n current selection through the changes made by the transaction.\n */\n get newSelection() {\n return this.selection || this.startState.selection.map(this.changes);\n }\n /**\n The new state created by the transaction. Computed on demand\n (but retained for subsequent access), so it is recommended not to\n access it in [transaction\n filters](https://codemirror.net/6/docs/ref/#state.EditorState^transactionFilter) when possible.\n */\n get state() {\n if (!this._state)\n this.startState.applyTransaction(this);\n return this._state;\n }\n /**\n Get the value of the given annotation type, if any.\n */\n annotation(type) {\n for (let ann of this.annotations)\n if (ann.type == type)\n return ann.value;\n return undefined;\n }\n /**\n Indicates whether the transaction changed the document.\n */\n get docChanged() { return !this.changes.empty; }\n /**\n Indicates whether this transaction reconfigures the state\n (through a [configuration compartment](https://codemirror.net/6/docs/ref/#state.Compartment) or\n with a top-level configuration\n [effect](https://codemirror.net/6/docs/ref/#state.StateEffect^reconfigure).\n */\n get reconfigured() { return this.startState.config != this.state.config; }\n /**\n Returns true if the transaction has a [user\n event](https://codemirror.net/6/docs/ref/#state.Transaction^userEvent) annotation that is equal to\n or more specific than `event`. For example, if the transaction\n has `\"select.pointer\"` as user event, `\"select\"` and\n `\"select.pointer\"` will match it.\n */\n isUserEvent(event) {\n let e = this.annotation(Transaction.userEvent);\n return !!(e && (e == event || e.length > event.length && e.slice(0, event.length) == event && e[event.length] == \".\"));\n }\n}\n/**\nAnnotation used to store transaction timestamps. Automatically\nadded to every transaction, holding `Date.now()`.\n*/\nTransaction.time = /*@__PURE__*/Annotation.define();\n/**\nAnnotation used to associate a transaction with a user interface\nevent. Holds a string identifying the event, using a\ndot-separated format to support attaching more specific\ninformation. The events used by the core libraries are:\n\n - `\"input\"` when content is entered\n - `\"input.type\"` for typed input\n - `\"input.type.compose\"` for composition\n - `\"input.paste\"` for pasted input\n - `\"input.drop\"` when adding content with drag-and-drop\n - `\"input.complete\"` when autocompleting\n - `\"delete\"` when the user deletes content\n - `\"delete.selection\"` when deleting the selection\n - `\"delete.forward\"` when deleting forward from the selection\n - `\"delete.backward\"` when deleting backward from the selection\n - `\"delete.cut\"` when cutting to the clipboard\n - `\"move\"` when content is moved\n - `\"move.drop\"` when content is moved within the editor through drag-and-drop\n - `\"select\"` when explicitly changing the selection\n - `\"select.pointer\"` when selecting with a mouse or other pointing device\n - `\"undo\"` and `\"redo\"` for history actions\n\nUse [`isUserEvent`](https://codemirror.net/6/docs/ref/#state.Transaction.isUserEvent) to check\nwhether the annotation matches a given event.\n*/\nTransaction.userEvent = /*@__PURE__*/Annotation.define();\n/**\nAnnotation indicating whether a transaction should be added to\nthe undo history or not.\n*/\nTransaction.addToHistory = /*@__PURE__*/Annotation.define();\n/**\nAnnotation indicating (when present and true) that a transaction\nrepresents a change made by some other actor, not the user. This\nis used, for example, to tag other people's changes in\ncollaborative editing.\n*/\nTransaction.remote = /*@__PURE__*/Annotation.define();\nfunction joinRanges(a, b) {\n let result = [];\n for (let iA = 0, iB = 0;;) {\n let from, to;\n if (iA < a.length && (iB == b.length || b[iB] >= a[iA])) {\n from = a[iA++];\n to = a[iA++];\n }\n else if (iB < b.length) {\n from = b[iB++];\n to = b[iB++];\n }\n else\n return result;\n if (!result.length || result[result.length - 1] < from)\n result.push(from, to);\n else if (result[result.length - 1] < to)\n result[result.length - 1] = to;\n }\n}\nfunction mergeTransaction(a, b, sequential) {\n var _a;\n let mapForA, mapForB, changes;\n if (sequential) {\n mapForA = b.changes;\n mapForB = ChangeSet.empty(b.changes.length);\n changes = a.changes.compose(b.changes);\n }\n else {\n mapForA = b.changes.map(a.changes);\n mapForB = a.changes.mapDesc(b.changes, true);\n changes = a.changes.compose(mapForA);\n }\n return {\n changes,\n selection: b.selection ? b.selection.map(mapForB) : (_a = a.selection) === null || _a === void 0 ? void 0 : _a.map(mapForA),\n effects: StateEffect.mapEffects(a.effects, mapForA).concat(StateEffect.mapEffects(b.effects, mapForB)),\n annotations: a.annotations.length ? a.annotations.concat(b.annotations) : b.annotations,\n scrollIntoView: a.scrollIntoView || b.scrollIntoView\n };\n}\nfunction resolveTransactionInner(state, spec, docSize) {\n let sel = spec.selection, annotations = asArray(spec.annotations);\n if (spec.userEvent)\n annotations = annotations.concat(Transaction.userEvent.of(spec.userEvent));\n return {\n changes: spec.changes instanceof ChangeSet ? spec.changes\n : ChangeSet.of(spec.changes || [], docSize, state.facet(lineSeparator)),\n selection: sel && (sel instanceof EditorSelection ? sel : EditorSelection.single(sel.anchor, sel.head)),\n effects: asArray(spec.effects),\n annotations,\n scrollIntoView: !!spec.scrollIntoView\n };\n}\nfunction resolveTransaction(state, specs, filter) {\n let s = resolveTransactionInner(state, specs.length ? specs[0] : {}, state.doc.length);\n if (specs.length && specs[0].filter === false)\n filter = false;\n for (let i = 1; i < specs.length; i++) {\n if (specs[i].filter === false)\n filter = false;\n let seq = !!specs[i].sequential;\n s = mergeTransaction(s, resolveTransactionInner(state, specs[i], seq ? s.changes.newLength : state.doc.length), seq);\n }\n let tr = Transaction.create(state, s.changes, s.selection, s.effects, s.annotations, s.scrollIntoView);\n return extendTransaction(filter ? filterTransaction(tr) : tr);\n}\n// Finish a transaction by applying filters if necessary.\nfunction filterTransaction(tr) {\n let state = tr.startState;\n // Change filters\n let result = true;\n for (let filter of state.facet(changeFilter)) {\n let value = filter(tr);\n if (value === false) {\n result = false;\n break;\n }\n if (Array.isArray(value))\n result = result === true ? value : joinRanges(result, value);\n }\n if (result !== true) {\n let changes, back;\n if (result === false) {\n back = tr.changes.invertedDesc;\n changes = ChangeSet.empty(state.doc.length);\n }\n else {\n let filtered = tr.changes.filter(result);\n changes = filtered.changes;\n back = filtered.filtered.mapDesc(filtered.changes).invertedDesc;\n }\n tr = Transaction.create(state, changes, tr.selection && tr.selection.map(back), StateEffect.mapEffects(tr.effects, back), tr.annotations, tr.scrollIntoView);\n }\n // Transaction filters\n let filters = state.facet(transactionFilter);\n for (let i = filters.length - 1; i >= 0; i--) {\n let filtered = filters[i](tr);\n if (filtered instanceof Transaction)\n tr = filtered;\n else if (Array.isArray(filtered) && filtered.length == 1 && filtered[0] instanceof Transaction)\n tr = filtered[0];\n else\n tr = resolveTransaction(state, asArray(filtered), false);\n }\n return tr;\n}\nfunction extendTransaction(tr) {\n let state = tr.startState, extenders = state.facet(transactionExtender), spec = tr;\n for (let i = extenders.length - 1; i >= 0; i--) {\n let extension = extenders[i](tr);\n if (extension && Object.keys(extension).length)\n spec = mergeTransaction(spec, resolveTransactionInner(state, extension, tr.changes.newLength), true);\n }\n return spec == tr ? tr : Transaction.create(state, tr.changes, tr.selection, spec.effects, spec.annotations, spec.scrollIntoView);\n}\nconst none = [];\nfunction asArray(value) {\n return value == null ? none : Array.isArray(value) ? value : [value];\n}\n\n/**\nThe categories produced by a [character\ncategorizer](https://codemirror.net/6/docs/ref/#state.EditorState.charCategorizer). These are used\ndo things like selecting by word.\n*/\nvar CharCategory = /*@__PURE__*/(function (CharCategory) {\n /**\n Word characters.\n */\n CharCategory[CharCategory[\"Word\"] = 0] = \"Word\";\n /**\n Whitespace.\n */\n CharCategory[CharCategory[\"Space\"] = 1] = \"Space\";\n /**\n Anything else.\n */\n CharCategory[CharCategory[\"Other\"] = 2] = \"Other\";\nreturn CharCategory})(CharCategory || (CharCategory = {}));\nconst nonASCIISingleCaseWordChar = /[\\u00df\\u0587\\u0590-\\u05f4\\u0600-\\u06ff\\u3040-\\u309f\\u30a0-\\u30ff\\u3400-\\u4db5\\u4e00-\\u9fcc\\uac00-\\ud7af]/;\nlet wordChar;\ntry {\n wordChar = /*@__PURE__*/new RegExp(\"[\\\\p{Alphabetic}\\\\p{Number}_]\", \"u\");\n}\ncatch (_) { }\nfunction hasWordChar(str) {\n if (wordChar)\n return wordChar.test(str);\n for (let i = 0; i < str.length; i++) {\n let ch = str[i];\n if (/\\w/.test(ch) || ch > \"\\x80\" && (ch.toUpperCase() != ch.toLowerCase() || nonASCIISingleCaseWordChar.test(ch)))\n return true;\n }\n return false;\n}\nfunction makeCategorizer(wordChars) {\n return (char) => {\n if (!/\\S/.test(char))\n return CharCategory.Space;\n if (hasWordChar(char))\n return CharCategory.Word;\n for (let i = 0; i < wordChars.length; i++)\n if (char.indexOf(wordChars[i]) > -1)\n return CharCategory.Word;\n return CharCategory.Other;\n };\n}\n\n/**\nThe editor state class is a persistent (immutable) data structure.\nTo update a state, you [create](https://codemirror.net/6/docs/ref/#state.EditorState.update) a\n[transaction](https://codemirror.net/6/docs/ref/#state.Transaction), which produces a _new_ state\ninstance, without modifying the original object.\n\nAs such, _never_ mutate properties of a state directly. That'll\njust break things.\n*/\nclass EditorState {\n constructor(\n /**\n @internal\n */\n config, \n /**\n The current document.\n */\n doc, \n /**\n The current selection.\n */\n selection, \n /**\n @internal\n */\n values, computeSlot, tr) {\n this.config = config;\n this.doc = doc;\n this.selection = selection;\n this.values = values;\n this.status = config.statusTemplate.slice();\n this.computeSlot = computeSlot;\n // Fill in the computed state immediately, so that further queries\n // for it made during the update return this state\n if (tr)\n tr._state = this;\n for (let i = 0; i < this.config.dynamicSlots.length; i++)\n ensureAddr(this, i << 1);\n this.computeSlot = null;\n }\n field(field, require = true) {\n let addr = this.config.address[field.id];\n if (addr == null) {\n if (require)\n throw new RangeError(\"Field is not present in this state\");\n return undefined;\n }\n ensureAddr(this, addr);\n return getAddr(this, addr);\n }\n /**\n Create a [transaction](https://codemirror.net/6/docs/ref/#state.Transaction) that updates this\n state. Any number of [transaction specs](https://codemirror.net/6/docs/ref/#state.TransactionSpec)\n can be passed. Unless\n [`sequential`](https://codemirror.net/6/docs/ref/#state.TransactionSpec.sequential) is set, the\n [changes](https://codemirror.net/6/docs/ref/#state.TransactionSpec.changes) (if any) of each spec\n are assumed to start in the _current_ document (not the document\n produced by previous specs), and its\n [selection](https://codemirror.net/6/docs/ref/#state.TransactionSpec.selection) and\n [effects](https://codemirror.net/6/docs/ref/#state.TransactionSpec.effects) are assumed to refer\n to the document created by its _own_ changes. The resulting\n transaction contains the combined effect of all the different\n specs. For [selection](https://codemirror.net/6/docs/ref/#state.TransactionSpec.selection), later\n specs take precedence over earlier ones.\n */\n update(...specs) {\n return resolveTransaction(this, specs, true);\n }\n /**\n @internal\n */\n applyTransaction(tr) {\n let conf = this.config, { base, compartments } = conf;\n for (let effect of tr.effects) {\n if (effect.is(Compartment.reconfigure)) {\n if (conf) {\n compartments = new Map;\n conf.compartments.forEach((val, key) => compartments.set(key, val));\n conf = null;\n }\n compartments.set(effect.value.compartment, effect.value.extension);\n }\n else if (effect.is(StateEffect.reconfigure)) {\n conf = null;\n base = effect.value;\n }\n else if (effect.is(StateEffect.appendConfig)) {\n conf = null;\n base = asArray(base).concat(effect.value);\n }\n }\n let startValues;\n if (!conf) {\n conf = Configuration.resolve(base, compartments, this);\n let intermediateState = new EditorState(conf, this.doc, this.selection, conf.dynamicSlots.map(() => null), (state, slot) => slot.reconfigure(state, this), null);\n startValues = intermediateState.values;\n }\n else {\n startValues = tr.startState.values.slice();\n }\n let selection = tr.startState.facet(allowMultipleSelections) ? tr.newSelection : tr.newSelection.asSingle();\n new EditorState(conf, tr.newDoc, selection, startValues, (state, slot) => slot.update(state, tr), tr);\n }\n /**\n Create a [transaction spec](https://codemirror.net/6/docs/ref/#state.TransactionSpec) that\n replaces every selection range with the given content.\n */\n replaceSelection(text) {\n if (typeof text == \"string\")\n text = this.toText(text);\n return this.changeByRange(range => ({ changes: { from: range.from, to: range.to, insert: text },\n range: EditorSelection.cursor(range.from + text.length) }));\n }\n /**\n Create a set of changes and a new selection by running the given\n function for each range in the active selection. The function\n can return an optional set of changes (in the coordinate space\n of the start document), plus an updated range (in the coordinate\n space of the document produced by the call's own changes). This\n method will merge all the changes and ranges into a single\n changeset and selection, and return it as a [transaction\n spec](https://codemirror.net/6/docs/ref/#state.TransactionSpec), which can be passed to\n [`update`](https://codemirror.net/6/docs/ref/#state.EditorState.update).\n */\n changeByRange(f) {\n let sel = this.selection;\n let result1 = f(sel.ranges[0]);\n let changes = this.changes(result1.changes), ranges = [result1.range];\n let effects = asArray(result1.effects);\n for (let i = 1; i < sel.ranges.length; i++) {\n let result = f(sel.ranges[i]);\n let newChanges = this.changes(result.changes), newMapped = newChanges.map(changes);\n for (let j = 0; j < i; j++)\n ranges[j] = ranges[j].map(newMapped);\n let mapBy = changes.mapDesc(newChanges, true);\n ranges.push(result.range.map(mapBy));\n changes = changes.compose(newMapped);\n effects = StateEffect.mapEffects(effects, newMapped).concat(StateEffect.mapEffects(asArray(result.effects), mapBy));\n }\n return {\n changes,\n selection: EditorSelection.create(ranges, sel.mainIndex),\n effects\n };\n }\n /**\n Create a [change set](https://codemirror.net/6/docs/ref/#state.ChangeSet) from the given change\n description, taking the state's document length and line\n separator into account.\n */\n changes(spec = []) {\n if (spec instanceof ChangeSet)\n return spec;\n return ChangeSet.of(spec, this.doc.length, this.facet(EditorState.lineSeparator));\n }\n /**\n Using the state's [line\n separator](https://codemirror.net/6/docs/ref/#state.EditorState^lineSeparator), create a\n [`Text`](https://codemirror.net/6/docs/ref/#state.Text) instance from the given string.\n */\n toText(string) {\n return Text.of(string.split(this.facet(EditorState.lineSeparator) || DefaultSplit));\n }\n /**\n Return the given range of the document as a string.\n */\n sliceDoc(from = 0, to = this.doc.length) {\n return this.doc.sliceString(from, to, this.lineBreak);\n }\n /**\n Get the value of a state [facet](https://codemirror.net/6/docs/ref/#state.Facet).\n */\n facet(facet) {\n let addr = this.config.address[facet.id];\n if (addr == null)\n return facet.default;\n ensureAddr(this, addr);\n return getAddr(this, addr);\n }\n /**\n Convert this state to a JSON-serializable object. When custom\n fields should be serialized, you can pass them in as an object\n mapping property names (in the resulting object, which should\n not use `doc` or `selection`) to fields.\n */\n toJSON(fields) {\n let result = {\n doc: this.sliceDoc(),\n selection: this.selection.toJSON()\n };\n if (fields)\n for (let prop in fields) {\n let value = fields[prop];\n if (value instanceof StateField && this.config.address[value.id] != null)\n result[prop] = value.spec.toJSON(this.field(fields[prop]), this);\n }\n return result;\n }\n /**\n Deserialize a state from its JSON representation. When custom\n fields should be deserialized, pass the same object you passed\n to [`toJSON`](https://codemirror.net/6/docs/ref/#state.EditorState.toJSON) when serializing as\n third argument.\n */\n static fromJSON(json, config = {}, fields) {\n if (!json || typeof json.doc != \"string\")\n throw new RangeError(\"Invalid JSON representation for EditorState\");\n let fieldInit = [];\n if (fields)\n for (let prop in fields) {\n if (Object.prototype.hasOwnProperty.call(json, prop)) {\n let field = fields[prop], value = json[prop];\n fieldInit.push(field.init(state => field.spec.fromJSON(value, state)));\n }\n }\n return EditorState.create({\n doc: json.doc,\n selection: EditorSelection.fromJSON(json.selection),\n extensions: config.extensions ? fieldInit.concat([config.extensions]) : fieldInit\n });\n }\n /**\n Create a new state. You'll usually only need this when\n initializing an editor—updated states are created by applying\n transactions.\n */\n static create(config = {}) {\n let configuration = Configuration.resolve(config.extensions || [], new Map);\n let doc = config.doc instanceof Text ? config.doc\n : Text.of((config.doc || \"\").split(configuration.staticFacet(EditorState.lineSeparator) || DefaultSplit));\n let selection = !config.selection ? EditorSelection.single(0)\n : config.selection instanceof EditorSelection ? config.selection\n : EditorSelection.single(config.selection.anchor, config.selection.head);\n checkSelection(selection, doc.length);\n if (!configuration.staticFacet(allowMultipleSelections))\n selection = selection.asSingle();\n return new EditorState(configuration, doc, selection, configuration.dynamicSlots.map(() => null), (state, slot) => slot.create(state), null);\n }\n /**\n The size (in columns) of a tab in the document, determined by\n the [`tabSize`](https://codemirror.net/6/docs/ref/#state.EditorState^tabSize) facet.\n */\n get tabSize() { return this.facet(EditorState.tabSize); }\n /**\n Get the proper [line-break](https://codemirror.net/6/docs/ref/#state.EditorState^lineSeparator)\n string for this state.\n */\n get lineBreak() { return this.facet(EditorState.lineSeparator) || \"\\n\"; }\n /**\n Returns true when the editor is\n [configured](https://codemirror.net/6/docs/ref/#state.EditorState^readOnly) to be read-only.\n */\n get readOnly() { return this.facet(readOnly); }\n /**\n Look up a translation for the given phrase (via the\n [`phrases`](https://codemirror.net/6/docs/ref/#state.EditorState^phrases) facet), or return the\n original string if no translation is found.\n \n If additional arguments are passed, they will be inserted in\n place of markers like `$1` (for the first value) and `$2`, etc.\n A single `$` is equivalent to `$1`, and `$$` will produce a\n literal dollar sign.\n */\n phrase(phrase, ...insert) {\n for (let map of this.facet(EditorState.phrases))\n if (Object.prototype.hasOwnProperty.call(map, phrase)) {\n phrase = map[phrase];\n break;\n }\n if (insert.length)\n phrase = phrase.replace(/\\$(\\$|\\d*)/g, (m, i) => {\n if (i == \"$\")\n return \"$\";\n let n = +(i || 1);\n return !n || n > insert.length ? m : insert[n - 1];\n });\n return phrase;\n }\n /**\n Find the values for a given language data field, provided by the\n the [`languageData`](https://codemirror.net/6/docs/ref/#state.EditorState^languageData) facet.\n \n Examples of language data fields are...\n \n - [`\"commentTokens\"`](https://codemirror.net/6/docs/ref/#commands.CommentTokens) for specifying\n comment syntax.\n - [`\"autocomplete\"`](https://codemirror.net/6/docs/ref/#autocomplete.autocompletion^config.override)\n for providing language-specific completion sources.\n - [`\"wordChars\"`](https://codemirror.net/6/docs/ref/#state.EditorState.charCategorizer) for adding\n characters that should be considered part of words in this\n language.\n - [`\"closeBrackets\"`](https://codemirror.net/6/docs/ref/#autocomplete.CloseBracketConfig) controls\n bracket closing behavior.\n */\n languageDataAt(name, pos, side = -1) {\n let values = [];\n for (let provider of this.facet(languageData)) {\n for (let result of provider(this, pos, side)) {\n if (Object.prototype.hasOwnProperty.call(result, name))\n values.push(result[name]);\n }\n }\n return values;\n }\n /**\n Return a function that can categorize strings (expected to\n represent a single [grapheme cluster](https://codemirror.net/6/docs/ref/#state.findClusterBreak))\n into one of:\n \n - Word (contains an alphanumeric character or a character\n explicitly listed in the local language's `\"wordChars\"`\n language data, which should be a string)\n - Space (contains only whitespace)\n - Other (anything else)\n */\n charCategorizer(at) {\n let chars = this.languageDataAt(\"wordChars\", at);\n return makeCategorizer(chars.length ? chars[0] : \"\");\n }\n /**\n Find the word at the given position, meaning the range\n containing all [word](https://codemirror.net/6/docs/ref/#state.CharCategory.Word) characters\n around it. If no word characters are adjacent to the position,\n this returns null.\n */\n wordAt(pos) {\n let { text, from, length } = this.doc.lineAt(pos);\n let cat = this.charCategorizer(pos);\n let start = pos - from, end = pos - from;\n while (start > 0) {\n let prev = findClusterBreak(text, start, false);\n if (cat(text.slice(prev, start)) != CharCategory.Word)\n break;\n start = prev;\n }\n while (end < length) {\n let next = findClusterBreak(text, end);\n if (cat(text.slice(end, next)) != CharCategory.Word)\n break;\n end = next;\n }\n return start == end ? null : EditorSelection.range(start + from, end + from);\n }\n}\n/**\nA facet that, when enabled, causes the editor to allow multiple\nranges to be selected. Be careful though, because by default the\neditor relies on the native DOM selection, which cannot handle\nmultiple selections. An extension like\n[`drawSelection`](https://codemirror.net/6/docs/ref/#view.drawSelection) can be used to make\nsecondary selections visible to the user.\n*/\nEditorState.allowMultipleSelections = allowMultipleSelections;\n/**\nConfigures the tab size to use in this state. The first\n(highest-precedence) value of the facet is used. If no value is\ngiven, this defaults to 4.\n*/\nEditorState.tabSize = /*@__PURE__*/Facet.define({\n combine: values => values.length ? values[0] : 4\n});\n/**\nThe line separator to use. By default, any of `\"\\n\"`, `\"\\r\\n\"`\nand `\"\\r\"` is treated as a separator when splitting lines, and\nlines are joined with `\"\\n\"`.\n\nWhen you configure a value here, only that precise separator\nwill be used, allowing you to round-trip documents through the\neditor without normalizing line separators.\n*/\nEditorState.lineSeparator = lineSeparator;\n/**\nThis facet controls the value of the\n[`readOnly`](https://codemirror.net/6/docs/ref/#state.EditorState.readOnly) getter, which is\nconsulted by commands and extensions that implement editing\nfunctionality to determine whether they should apply. It\ndefaults to false, but when its highest-precedence value is\n`true`, such functionality disables itself.\n\nNot to be confused with\n[`EditorView.editable`](https://codemirror.net/6/docs/ref/#view.EditorView^editable), which\ncontrols whether the editor's DOM is set to be editable (and\nthus focusable).\n*/\nEditorState.readOnly = readOnly;\n/**\nRegisters translation phrases. The\n[`phrase`](https://codemirror.net/6/docs/ref/#state.EditorState.phrase) method will look through\nall objects registered with this facet to find translations for\nits argument.\n*/\nEditorState.phrases = /*@__PURE__*/Facet.define({\n compare(a, b) {\n let kA = Object.keys(a), kB = Object.keys(b);\n return kA.length == kB.length && kA.every(k => a[k] == b[k]);\n }\n});\n/**\nA facet used to register [language\ndata](https://codemirror.net/6/docs/ref/#state.EditorState.languageDataAt) providers.\n*/\nEditorState.languageData = languageData;\n/**\nFacet used to register change filters, which are called for each\ntransaction (unless explicitly\n[disabled](https://codemirror.net/6/docs/ref/#state.TransactionSpec.filter)), and can suppress\npart of the transaction's changes.\n\nSuch a function can return `true` to indicate that it doesn't\nwant to do anything, `false` to completely stop the changes in\nthe transaction, or a set of ranges in which changes should be\nsuppressed. Such ranges are represented as an array of numbers,\nwith each pair of two numbers indicating the start and end of a\nrange. So for example `[10, 20, 100, 110]` suppresses changes\nbetween 10 and 20, and between 100 and 110.\n*/\nEditorState.changeFilter = changeFilter;\n/**\nFacet used to register a hook that gets a chance to update or\nreplace transaction specs before they are applied. This will\nonly be applied for transactions that don't have\n[`filter`](https://codemirror.net/6/docs/ref/#state.TransactionSpec.filter) set to `false`. You\ncan either return a single transaction spec (possibly the input\ntransaction), or an array of specs (which will be combined in\nthe same way as the arguments to\n[`EditorState.update`](https://codemirror.net/6/docs/ref/#state.EditorState.update)).\n\nWhen possible, it is recommended to avoid accessing\n[`Transaction.state`](https://codemirror.net/6/docs/ref/#state.Transaction.state) in a filter,\nsince it will force creation of a state that will then be\ndiscarded again, if the transaction is actually filtered.\n\n(This functionality should be used with care. Indiscriminately\nmodifying transaction is likely to break something or degrade\nthe user experience.)\n*/\nEditorState.transactionFilter = transactionFilter;\n/**\nThis is a more limited form of\n[`transactionFilter`](https://codemirror.net/6/docs/ref/#state.EditorState^transactionFilter),\nwhich can only add\n[annotations](https://codemirror.net/6/docs/ref/#state.TransactionSpec.annotations) and\n[effects](https://codemirror.net/6/docs/ref/#state.TransactionSpec.effects). _But_, this type\nof filter runs even if the transaction has disabled regular\n[filtering](https://codemirror.net/6/docs/ref/#state.TransactionSpec.filter), making it suitable\nfor effects that don't need to touch the changes or selection,\nbut do want to process every transaction.\n\nExtenders run _after_ filters, when both are present.\n*/\nEditorState.transactionExtender = transactionExtender;\nCompartment.reconfigure = /*@__PURE__*/StateEffect.define();\n\n/**\nUtility function for combining behaviors to fill in a config\nobject from an array of provided configs. `defaults` should hold\ndefault values for all optional fields in `Config`.\n\nThe function will, by default, error\nwhen a field gets two values that aren't `===`-equal, but you can\nprovide combine functions per field to do something else.\n*/\nfunction combineConfig(configs, defaults, // Should hold only the optional properties of Config, but I haven't managed to express that\ncombine = {}) {\n let result = {};\n for (let config of configs)\n for (let key of Object.keys(config)) {\n let value = config[key], current = result[key];\n if (current === undefined)\n result[key] = value;\n else if (current === value || value === undefined) ; // No conflict\n else if (Object.hasOwnProperty.call(combine, key))\n result[key] = combine[key](current, value);\n else\n throw new Error(\"Config merge conflict for field \" + key);\n }\n for (let key in defaults)\n if (result[key] === undefined)\n result[key] = defaults[key];\n return result;\n}\n\n/**\nEach range is associated with a value, which must inherit from\nthis class.\n*/\nclass RangeValue {\n /**\n Compare this value with another value. Used when comparing\n rangesets. The default implementation compares by identity.\n Unless you are only creating a fixed number of unique instances\n of your value type, it is a good idea to implement this\n properly.\n */\n eq(other) { return this == other; }\n /**\n Create a [range](https://codemirror.net/6/docs/ref/#state.Range) with this value.\n */\n range(from, to = from) { return Range.create(from, to, this); }\n}\nRangeValue.prototype.startSide = RangeValue.prototype.endSide = 0;\nRangeValue.prototype.point = false;\nRangeValue.prototype.mapMode = MapMode.TrackDel;\nfunction cmpVal(a, b) {\n return a == b || a.constructor == b.constructor && a.eq(b);\n}\n/**\nA range associates a value with a range of positions.\n*/\nclass Range {\n constructor(\n /**\n The range's start position.\n */\n from, \n /**\n Its end position.\n */\n to, \n /**\n The value associated with this range.\n */\n value) {\n this.from = from;\n this.to = to;\n this.value = value;\n }\n /**\n @internal\n */\n static create(from, to, value) {\n return new Range(from, to, value);\n }\n}\nfunction cmpRange(a, b) {\n return a.from - b.from || a.value.startSide - b.value.startSide;\n}\nclass Chunk {\n constructor(from, to, value, \n // Chunks are marked with the largest point that occurs\n // in them (or -1 for no points), so that scans that are\n // only interested in points (such as the\n // heightmap-related logic) can skip range-only chunks.\n maxPoint) {\n this.from = from;\n this.to = to;\n this.value = value;\n this.maxPoint = maxPoint;\n }\n get length() { return this.to[this.to.length - 1]; }\n // Find the index of the given position and side. Use the ranges'\n // `from` pos when `end == false`, `to` when `end == true`.\n findIndex(pos, side, end, startAt = 0) {\n let arr = end ? this.to : this.from;\n for (let lo = startAt, hi = arr.length;;) {\n if (lo == hi)\n return lo;\n let mid = (lo + hi) >> 1;\n let diff = arr[mid] - pos || (end ? this.value[mid].endSide : this.value[mid].startSide) - side;\n if (mid == lo)\n return diff >= 0 ? lo : hi;\n if (diff >= 0)\n hi = mid;\n else\n lo = mid + 1;\n }\n }\n between(offset, from, to, f) {\n for (let i = this.findIndex(from, -1000000000 /* C.Far */, true), e = this.findIndex(to, 1000000000 /* C.Far */, false, i); i < e; i++)\n if (f(this.from[i] + offset, this.to[i] + offset, this.value[i]) === false)\n return false;\n }\n map(offset, changes) {\n let value = [], from = [], to = [], newPos = -1, maxPoint = -1;\n for (let i = 0; i < this.value.length; i++) {\n let val = this.value[i], curFrom = this.from[i] + offset, curTo = this.to[i] + offset, newFrom, newTo;\n if (curFrom == curTo) {\n let mapped = changes.mapPos(curFrom, val.startSide, val.mapMode);\n if (mapped == null)\n continue;\n newFrom = newTo = mapped;\n if (val.startSide != val.endSide) {\n newTo = changes.mapPos(curFrom, val.endSide);\n if (newTo < newFrom)\n continue;\n }\n }\n else {\n newFrom = changes.mapPos(curFrom, val.startSide);\n newTo = changes.mapPos(curTo, val.endSide);\n if (newFrom > newTo || newFrom == newTo && val.startSide > 0 && val.endSide <= 0)\n continue;\n }\n if ((newTo - newFrom || val.endSide - val.startSide) < 0)\n continue;\n if (newPos < 0)\n newPos = newFrom;\n if (val.point)\n maxPoint = Math.max(maxPoint, newTo - newFrom);\n value.push(val);\n from.push(newFrom - newPos);\n to.push(newTo - newPos);\n }\n return { mapped: value.length ? new Chunk(from, to, value, maxPoint) : null, pos: newPos };\n }\n}\n/**\nA range set stores a collection of [ranges](https://codemirror.net/6/docs/ref/#state.Range) in a\nway that makes them efficient to [map](https://codemirror.net/6/docs/ref/#state.RangeSet.map) and\n[update](https://codemirror.net/6/docs/ref/#state.RangeSet.update). This is an immutable data\nstructure.\n*/\nclass RangeSet {\n constructor(\n /**\n @internal\n */\n chunkPos, \n /**\n @internal\n */\n chunk, \n /**\n @internal\n */\n nextLayer, \n /**\n @internal\n */\n maxPoint) {\n this.chunkPos = chunkPos;\n this.chunk = chunk;\n this.nextLayer = nextLayer;\n this.maxPoint = maxPoint;\n }\n /**\n @internal\n */\n static create(chunkPos, chunk, nextLayer, maxPoint) {\n return new RangeSet(chunkPos, chunk, nextLayer, maxPoint);\n }\n /**\n @internal\n */\n get length() {\n let last = this.chunk.length - 1;\n return last < 0 ? 0 : Math.max(this.chunkEnd(last), this.nextLayer.length);\n }\n /**\n The number of ranges in the set.\n */\n get size() {\n if (this.isEmpty)\n return 0;\n let size = this.nextLayer.size;\n for (let chunk of this.chunk)\n size += chunk.value.length;\n return size;\n }\n /**\n @internal\n */\n chunkEnd(index) {\n return this.chunkPos[index] + this.chunk[index].length;\n }\n /**\n Update the range set, optionally adding new ranges or filtering\n out existing ones.\n \n (Note: The type parameter is just there as a kludge to work\n around TypeScript variance issues that prevented `RangeSet`\n from being a subtype of `RangeSet` when `X` is a subtype of\n `Y`.)\n */\n update(updateSpec) {\n let { add = [], sort = false, filterFrom = 0, filterTo = this.length } = updateSpec;\n let filter = updateSpec.filter;\n if (add.length == 0 && !filter)\n return this;\n if (sort)\n add = add.slice().sort(cmpRange);\n if (this.isEmpty)\n return add.length ? RangeSet.of(add) : this;\n let cur = new LayerCursor(this, null, -1).goto(0), i = 0, spill = [];\n let builder = new RangeSetBuilder();\n while (cur.value || i < add.length) {\n if (i < add.length && (cur.from - add[i].from || cur.startSide - add[i].value.startSide) >= 0) {\n let range = add[i++];\n if (!builder.addInner(range.from, range.to, range.value))\n spill.push(range);\n }\n else if (cur.rangeIndex == 1 && cur.chunkIndex < this.chunk.length &&\n (i == add.length || this.chunkEnd(cur.chunkIndex) < add[i].from) &&\n (!filter || filterFrom > this.chunkEnd(cur.chunkIndex) || filterTo < this.chunkPos[cur.chunkIndex]) &&\n builder.addChunk(this.chunkPos[cur.chunkIndex], this.chunk[cur.chunkIndex])) {\n cur.nextChunk();\n }\n else {\n if (!filter || filterFrom > cur.to || filterTo < cur.from || filter(cur.from, cur.to, cur.value)) {\n if (!builder.addInner(cur.from, cur.to, cur.value))\n spill.push(Range.create(cur.from, cur.to, cur.value));\n }\n cur.next();\n }\n }\n return builder.finishInner(this.nextLayer.isEmpty && !spill.length ? RangeSet.empty\n : this.nextLayer.update({ add: spill, filter, filterFrom, filterTo }));\n }\n /**\n Map this range set through a set of changes, return the new set.\n */\n map(changes) {\n if (changes.empty || this.isEmpty)\n return this;\n let chunks = [], chunkPos = [], maxPoint = -1;\n for (let i = 0; i < this.chunk.length; i++) {\n let start = this.chunkPos[i], chunk = this.chunk[i];\n let touch = changes.touchesRange(start, start + chunk.length);\n if (touch === false) {\n maxPoint = Math.max(maxPoint, chunk.maxPoint);\n chunks.push(chunk);\n chunkPos.push(changes.mapPos(start));\n }\n else if (touch === true) {\n let { mapped, pos } = chunk.map(start, changes);\n if (mapped) {\n maxPoint = Math.max(maxPoint, mapped.maxPoint);\n chunks.push(mapped);\n chunkPos.push(pos);\n }\n }\n }\n let next = this.nextLayer.map(changes);\n return chunks.length == 0 ? next : new RangeSet(chunkPos, chunks, next || RangeSet.empty, maxPoint);\n }\n /**\n Iterate over the ranges that touch the region `from` to `to`,\n calling `f` for each. There is no guarantee that the ranges will\n be reported in any specific order. When the callback returns\n `false`, iteration stops.\n */\n between(from, to, f) {\n if (this.isEmpty)\n return;\n for (let i = 0; i < this.chunk.length; i++) {\n let start = this.chunkPos[i], chunk = this.chunk[i];\n if (to >= start && from <= start + chunk.length &&\n chunk.between(start, from - start, to - start, f) === false)\n return;\n }\n this.nextLayer.between(from, to, f);\n }\n /**\n Iterate over the ranges in this set, in order, including all\n ranges that end at or after `from`.\n */\n iter(from = 0) {\n return HeapCursor.from([this]).goto(from);\n }\n /**\n @internal\n */\n get isEmpty() { return this.nextLayer == this; }\n /**\n Iterate over the ranges in a collection of sets, in order,\n starting from `from`.\n */\n static iter(sets, from = 0) {\n return HeapCursor.from(sets).goto(from);\n }\n /**\n Iterate over two groups of sets, calling methods on `comparator`\n to notify it of possible differences.\n */\n static compare(oldSets, newSets, \n /**\n This indicates how the underlying data changed between these\n ranges, and is needed to synchronize the iteration.\n */\n textDiff, comparator, \n /**\n Can be used to ignore all non-point ranges, and points below\n the given size. When -1, all ranges are compared.\n */\n minPointSize = -1) {\n let a = oldSets.filter(set => set.maxPoint > 0 || !set.isEmpty && set.maxPoint >= minPointSize);\n let b = newSets.filter(set => set.maxPoint > 0 || !set.isEmpty && set.maxPoint >= minPointSize);\n let sharedChunks = findSharedChunks(a, b, textDiff);\n let sideA = new SpanCursor(a, sharedChunks, minPointSize);\n let sideB = new SpanCursor(b, sharedChunks, minPointSize);\n textDiff.iterGaps((fromA, fromB, length) => compare(sideA, fromA, sideB, fromB, length, comparator));\n if (textDiff.empty && textDiff.length == 0)\n compare(sideA, 0, sideB, 0, 0, comparator);\n }\n /**\n Compare the contents of two groups of range sets, returning true\n if they are equivalent in the given range.\n */\n static eq(oldSets, newSets, from = 0, to) {\n if (to == null)\n to = 1000000000 /* C.Far */ - 1;\n let a = oldSets.filter(set => !set.isEmpty && newSets.indexOf(set) < 0);\n let b = newSets.filter(set => !set.isEmpty && oldSets.indexOf(set) < 0);\n if (a.length != b.length)\n return false;\n if (!a.length)\n return true;\n let sharedChunks = findSharedChunks(a, b);\n let sideA = new SpanCursor(a, sharedChunks, 0).goto(from), sideB = new SpanCursor(b, sharedChunks, 0).goto(from);\n for (;;) {\n if (sideA.to != sideB.to ||\n !sameValues(sideA.active, sideB.active) ||\n sideA.point && (!sideB.point || !cmpVal(sideA.point, sideB.point)))\n return false;\n if (sideA.to > to)\n return true;\n sideA.next();\n sideB.next();\n }\n }\n /**\n Iterate over a group of range sets at the same time, notifying\n the iterator about the ranges covering every given piece of\n content. Returns the open count (see\n [`SpanIterator.span`](https://codemirror.net/6/docs/ref/#state.SpanIterator.span)) at the end\n of the iteration.\n */\n static spans(sets, from, to, iterator, \n /**\n When given and greater than -1, only points of at least this\n size are taken into account.\n */\n minPointSize = -1) {\n let cursor = new SpanCursor(sets, null, minPointSize).goto(from), pos = from;\n let openRanges = cursor.openStart;\n for (;;) {\n let curTo = Math.min(cursor.to, to);\n if (cursor.point) {\n let active = cursor.activeForPoint(cursor.to);\n let openCount = cursor.pointFrom < from ? active.length + 1\n : cursor.point.startSide < 0 ? active.length\n : Math.min(active.length, openRanges);\n iterator.point(pos, curTo, cursor.point, active, openCount, cursor.pointRank);\n openRanges = Math.min(cursor.openEnd(curTo), active.length);\n }\n else if (curTo > pos) {\n iterator.span(pos, curTo, cursor.active, openRanges);\n openRanges = cursor.openEnd(curTo);\n }\n if (cursor.to > to)\n return openRanges + (cursor.point && cursor.to > to ? 1 : 0);\n pos = cursor.to;\n cursor.next();\n }\n }\n /**\n Create a range set for the given range or array of ranges. By\n default, this expects the ranges to be _sorted_ (by start\n position and, if two start at the same position,\n `value.startSide`). You can pass `true` as second argument to\n cause the method to sort them.\n */\n static of(ranges, sort = false) {\n let build = new RangeSetBuilder();\n for (let range of ranges instanceof Range ? [ranges] : sort ? lazySort(ranges) : ranges)\n build.add(range.from, range.to, range.value);\n return build.finish();\n }\n /**\n Join an array of range sets into a single set.\n */\n static join(sets) {\n if (!sets.length)\n return RangeSet.empty;\n let result = sets[sets.length - 1];\n for (let i = sets.length - 2; i >= 0; i--) {\n for (let layer = sets[i]; layer != RangeSet.empty; layer = layer.nextLayer)\n result = new RangeSet(layer.chunkPos, layer.chunk, result, Math.max(layer.maxPoint, result.maxPoint));\n }\n return result;\n }\n}\n/**\nThe empty set of ranges.\n*/\nRangeSet.empty = /*@__PURE__*/new RangeSet([], [], null, -1);\nfunction lazySort(ranges) {\n if (ranges.length > 1)\n for (let prev = ranges[0], i = 1; i < ranges.length; i++) {\n let cur = ranges[i];\n if (cmpRange(prev, cur) > 0)\n return ranges.slice().sort(cmpRange);\n prev = cur;\n }\n return ranges;\n}\nRangeSet.empty.nextLayer = RangeSet.empty;\n/**\nA range set builder is a data structure that helps build up a\n[range set](https://codemirror.net/6/docs/ref/#state.RangeSet) directly, without first allocating\nan array of [`Range`](https://codemirror.net/6/docs/ref/#state.Range) objects.\n*/\nclass RangeSetBuilder {\n finishChunk(newArrays) {\n this.chunks.push(new Chunk(this.from, this.to, this.value, this.maxPoint));\n this.chunkPos.push(this.chunkStart);\n this.chunkStart = -1;\n this.setMaxPoint = Math.max(this.setMaxPoint, this.maxPoint);\n this.maxPoint = -1;\n if (newArrays) {\n this.from = [];\n this.to = [];\n this.value = [];\n }\n }\n /**\n Create an empty builder.\n */\n constructor() {\n this.chunks = [];\n this.chunkPos = [];\n this.chunkStart = -1;\n this.last = null;\n this.lastFrom = -1000000000 /* C.Far */;\n this.lastTo = -1000000000 /* C.Far */;\n this.from = [];\n this.to = [];\n this.value = [];\n this.maxPoint = -1;\n this.setMaxPoint = -1;\n this.nextLayer = null;\n }\n /**\n Add a range. Ranges should be added in sorted (by `from` and\n `value.startSide`) order.\n */\n add(from, to, value) {\n if (!this.addInner(from, to, value))\n (this.nextLayer || (this.nextLayer = new RangeSetBuilder)).add(from, to, value);\n }\n /**\n @internal\n */\n addInner(from, to, value) {\n let diff = from - this.lastTo || value.startSide - this.last.endSide;\n if (diff <= 0 && (from - this.lastFrom || value.startSide - this.last.startSide) < 0)\n throw new Error(\"Ranges must be added sorted by `from` position and `startSide`\");\n if (diff < 0)\n return false;\n if (this.from.length == 250 /* C.ChunkSize */)\n this.finishChunk(true);\n if (this.chunkStart < 0)\n this.chunkStart = from;\n this.from.push(from - this.chunkStart);\n this.to.push(to - this.chunkStart);\n this.last = value;\n this.lastFrom = from;\n this.lastTo = to;\n this.value.push(value);\n if (value.point)\n this.maxPoint = Math.max(this.maxPoint, to - from);\n return true;\n }\n /**\n @internal\n */\n addChunk(from, chunk) {\n if ((from - this.lastTo || chunk.value[0].startSide - this.last.endSide) < 0)\n return false;\n if (this.from.length)\n this.finishChunk(true);\n this.setMaxPoint = Math.max(this.setMaxPoint, chunk.maxPoint);\n this.chunks.push(chunk);\n this.chunkPos.push(from);\n let last = chunk.value.length - 1;\n this.last = chunk.value[last];\n this.lastFrom = chunk.from[last] + from;\n this.lastTo = chunk.to[last] + from;\n return true;\n }\n /**\n Finish the range set. Returns the new set. The builder can't be\n used anymore after this has been called.\n */\n finish() { return this.finishInner(RangeSet.empty); }\n /**\n @internal\n */\n finishInner(next) {\n if (this.from.length)\n this.finishChunk(false);\n if (this.chunks.length == 0)\n return next;\n let result = RangeSet.create(this.chunkPos, this.chunks, this.nextLayer ? this.nextLayer.finishInner(next) : next, this.setMaxPoint);\n this.from = null; // Make sure further `add` calls produce errors\n return result;\n }\n}\nfunction findSharedChunks(a, b, textDiff) {\n let inA = new Map();\n for (let set of a)\n for (let i = 0; i < set.chunk.length; i++)\n if (set.chunk[i].maxPoint <= 0)\n inA.set(set.chunk[i], set.chunkPos[i]);\n let shared = new Set();\n for (let set of b)\n for (let i = 0; i < set.chunk.length; i++) {\n let known = inA.get(set.chunk[i]);\n if (known != null && (textDiff ? textDiff.mapPos(known) : known) == set.chunkPos[i] &&\n !(textDiff === null || textDiff === void 0 ? void 0 : textDiff.touchesRange(known, known + set.chunk[i].length)))\n shared.add(set.chunk[i]);\n }\n return shared;\n}\nclass LayerCursor {\n constructor(layer, skip, minPoint, rank = 0) {\n this.layer = layer;\n this.skip = skip;\n this.minPoint = minPoint;\n this.rank = rank;\n }\n get startSide() { return this.value ? this.value.startSide : 0; }\n get endSide() { return this.value ? this.value.endSide : 0; }\n goto(pos, side = -1000000000 /* C.Far */) {\n this.chunkIndex = this.rangeIndex = 0;\n this.gotoInner(pos, side, false);\n return this;\n }\n gotoInner(pos, side, forward) {\n while (this.chunkIndex < this.layer.chunk.length) {\n let next = this.layer.chunk[this.chunkIndex];\n if (!(this.skip && this.skip.has(next) ||\n this.layer.chunkEnd(this.chunkIndex) < pos ||\n next.maxPoint < this.minPoint))\n break;\n this.chunkIndex++;\n forward = false;\n }\n if (this.chunkIndex < this.layer.chunk.length) {\n let rangeIndex = this.layer.chunk[this.chunkIndex].findIndex(pos - this.layer.chunkPos[this.chunkIndex], side, true);\n if (!forward || this.rangeIndex < rangeIndex)\n this.setRangeIndex(rangeIndex);\n }\n this.next();\n }\n forward(pos, side) {\n if ((this.to - pos || this.endSide - side) < 0)\n this.gotoInner(pos, side, true);\n }\n next() {\n for (;;) {\n if (this.chunkIndex == this.layer.chunk.length) {\n this.from = this.to = 1000000000 /* C.Far */;\n this.value = null;\n break;\n }\n else {\n let chunkPos = this.layer.chunkPos[this.chunkIndex], chunk = this.layer.chunk[this.chunkIndex];\n let from = chunkPos + chunk.from[this.rangeIndex];\n this.from = from;\n this.to = chunkPos + chunk.to[this.rangeIndex];\n this.value = chunk.value[this.rangeIndex];\n this.setRangeIndex(this.rangeIndex + 1);\n if (this.minPoint < 0 || this.value.point && this.to - this.from >= this.minPoint)\n break;\n }\n }\n }\n setRangeIndex(index) {\n if (index == this.layer.chunk[this.chunkIndex].value.length) {\n this.chunkIndex++;\n if (this.skip) {\n while (this.chunkIndex < this.layer.chunk.length && this.skip.has(this.layer.chunk[this.chunkIndex]))\n this.chunkIndex++;\n }\n this.rangeIndex = 0;\n }\n else {\n this.rangeIndex = index;\n }\n }\n nextChunk() {\n this.chunkIndex++;\n this.rangeIndex = 0;\n this.next();\n }\n compare(other) {\n return this.from - other.from || this.startSide - other.startSide || this.rank - other.rank ||\n this.to - other.to || this.endSide - other.endSide;\n }\n}\nclass HeapCursor {\n constructor(heap) {\n this.heap = heap;\n }\n static from(sets, skip = null, minPoint = -1) {\n let heap = [];\n for (let i = 0; i < sets.length; i++) {\n for (let cur = sets[i]; !cur.isEmpty; cur = cur.nextLayer) {\n if (cur.maxPoint >= minPoint)\n heap.push(new LayerCursor(cur, skip, minPoint, i));\n }\n }\n return heap.length == 1 ? heap[0] : new HeapCursor(heap);\n }\n get startSide() { return this.value ? this.value.startSide : 0; }\n goto(pos, side = -1000000000 /* C.Far */) {\n for (let cur of this.heap)\n cur.goto(pos, side);\n for (let i = this.heap.length >> 1; i >= 0; i--)\n heapBubble(this.heap, i);\n this.next();\n return this;\n }\n forward(pos, side) {\n for (let cur of this.heap)\n cur.forward(pos, side);\n for (let i = this.heap.length >> 1; i >= 0; i--)\n heapBubble(this.heap, i);\n if ((this.to - pos || this.value.endSide - side) < 0)\n this.next();\n }\n next() {\n if (this.heap.length == 0) {\n this.from = this.to = 1000000000 /* C.Far */;\n this.value = null;\n this.rank = -1;\n }\n else {\n let top = this.heap[0];\n this.from = top.from;\n this.to = top.to;\n this.value = top.value;\n this.rank = top.rank;\n if (top.value)\n top.next();\n heapBubble(this.heap, 0);\n }\n }\n}\nfunction heapBubble(heap, index) {\n for (let cur = heap[index];;) {\n let childIndex = (index << 1) + 1;\n if (childIndex >= heap.length)\n break;\n let child = heap[childIndex];\n if (childIndex + 1 < heap.length && child.compare(heap[childIndex + 1]) >= 0) {\n child = heap[childIndex + 1];\n childIndex++;\n }\n if (cur.compare(child) < 0)\n break;\n heap[childIndex] = cur;\n heap[index] = child;\n index = childIndex;\n }\n}\nclass SpanCursor {\n constructor(sets, skip, minPoint) {\n this.minPoint = minPoint;\n this.active = [];\n this.activeTo = [];\n this.activeRank = [];\n this.minActive = -1;\n // A currently active point range, if any\n this.point = null;\n this.pointFrom = 0;\n this.pointRank = 0;\n this.to = -1000000000 /* C.Far */;\n this.endSide = 0;\n // The amount of open active ranges at the start of the iterator.\n // Not including points.\n this.openStart = -1;\n this.cursor = HeapCursor.from(sets, skip, minPoint);\n }\n goto(pos, side = -1000000000 /* C.Far */) {\n this.cursor.goto(pos, side);\n this.active.length = this.activeTo.length = this.activeRank.length = 0;\n this.minActive = -1;\n this.to = pos;\n this.endSide = side;\n this.openStart = -1;\n this.next();\n return this;\n }\n forward(pos, side) {\n while (this.minActive > -1 && (this.activeTo[this.minActive] - pos || this.active[this.minActive].endSide - side) < 0)\n this.removeActive(this.minActive);\n this.cursor.forward(pos, side);\n }\n removeActive(index) {\n remove(this.active, index);\n remove(this.activeTo, index);\n remove(this.activeRank, index);\n this.minActive = findMinIndex(this.active, this.activeTo);\n }\n addActive(trackOpen) {\n let i = 0, { value, to, rank } = this.cursor;\n // Organize active marks by rank first, then by size\n while (i < this.activeRank.length && (rank - this.activeRank[i] || to - this.activeTo[i]) > 0)\n i++;\n insert(this.active, i, value);\n insert(this.activeTo, i, to);\n insert(this.activeRank, i, rank);\n if (trackOpen)\n insert(trackOpen, i, this.cursor.from);\n this.minActive = findMinIndex(this.active, this.activeTo);\n }\n // After calling this, if `this.point` != null, the next range is a\n // point. Otherwise, it's a regular range, covered by `this.active`.\n next() {\n let from = this.to, wasPoint = this.point;\n this.point = null;\n let trackOpen = this.openStart < 0 ? [] : null;\n for (;;) {\n let a = this.minActive;\n if (a > -1 && (this.activeTo[a] - this.cursor.from || this.active[a].endSide - this.cursor.startSide) < 0) {\n if (this.activeTo[a] > from) {\n this.to = this.activeTo[a];\n this.endSide = this.active[a].endSide;\n break;\n }\n this.removeActive(a);\n if (trackOpen)\n remove(trackOpen, a);\n }\n else if (!this.cursor.value) {\n this.to = this.endSide = 1000000000 /* C.Far */;\n break;\n }\n else if (this.cursor.from > from) {\n this.to = this.cursor.from;\n this.endSide = this.cursor.startSide;\n break;\n }\n else {\n let nextVal = this.cursor.value;\n if (!nextVal.point) { // Opening a range\n this.addActive(trackOpen);\n this.cursor.next();\n }\n else if (wasPoint && this.cursor.to == this.to && this.cursor.from < this.cursor.to) {\n // Ignore any non-empty points that end precisely at the end of the prev point\n this.cursor.next();\n }\n else { // New point\n this.point = nextVal;\n this.pointFrom = this.cursor.from;\n this.pointRank = this.cursor.rank;\n this.to = this.cursor.to;\n this.endSide = nextVal.endSide;\n this.cursor.next();\n this.forward(this.to, this.endSide);\n break;\n }\n }\n }\n if (trackOpen) {\n this.openStart = 0;\n for (let i = trackOpen.length - 1; i >= 0 && trackOpen[i] < from; i--)\n this.openStart++;\n }\n }\n activeForPoint(to) {\n if (!this.active.length)\n return this.active;\n let active = [];\n for (let i = this.active.length - 1; i >= 0; i--) {\n if (this.activeRank[i] < this.pointRank)\n break;\n if (this.activeTo[i] > to || this.activeTo[i] == to && this.active[i].endSide >= this.point.endSide)\n active.push(this.active[i]);\n }\n return active.reverse();\n }\n openEnd(to) {\n let open = 0;\n for (let i = this.activeTo.length - 1; i >= 0 && this.activeTo[i] > to; i--)\n open++;\n return open;\n }\n}\nfunction compare(a, startA, b, startB, length, comparator) {\n a.goto(startA);\n b.goto(startB);\n let endB = startB + length;\n let pos = startB, dPos = startB - startA;\n let bounds = !!comparator.boundChange;\n for (let boundChange = false;;) {\n let dEnd = (a.to + dPos) - b.to, diff = dEnd || a.endSide - b.endSide;\n let end = diff < 0 ? a.to + dPos : b.to, clipEnd = Math.min(end, endB);\n let point = a.point || b.point;\n if (point) {\n if (!(a.point && b.point && cmpVal(a.point, b.point) &&\n sameValues(a.activeForPoint(a.to), b.activeForPoint(b.to))))\n comparator.comparePoint(pos, clipEnd, a.point, b.point);\n boundChange = false;\n }\n else {\n if (boundChange)\n comparator.boundChange(pos);\n if (clipEnd > pos && !sameValues(a.active, b.active))\n comparator.compareRange(pos, clipEnd, a.active, b.active);\n if (bounds && clipEnd < endB && (dEnd || a.openEnd(end) != b.openEnd(end)))\n boundChange = true;\n }\n if (end > endB)\n break;\n pos = end;\n if (diff <= 0)\n a.next();\n if (diff >= 0)\n b.next();\n }\n}\nfunction sameValues(a, b) {\n if (a.length != b.length)\n return false;\n for (let i = 0; i < a.length; i++)\n if (a[i] != b[i] && !cmpVal(a[i], b[i]))\n return false;\n return true;\n}\nfunction remove(array, index) {\n for (let i = index, e = array.length - 1; i < e; i++)\n array[i] = array[i + 1];\n array.pop();\n}\nfunction insert(array, index, value) {\n for (let i = array.length - 1; i >= index; i--)\n array[i + 1] = array[i];\n array[index] = value;\n}\nfunction findMinIndex(value, array) {\n let found = -1, foundPos = 1000000000 /* C.Far */;\n for (let i = 0; i < array.length; i++)\n if ((array[i] - foundPos || value[i].endSide - value[found].endSide) < 0) {\n found = i;\n foundPos = array[i];\n }\n return found;\n}\n\n/**\nCount the column position at the given offset into the string,\ntaking extending characters and tab size into account.\n*/\nfunction countColumn(string, tabSize, to = string.length) {\n let n = 0;\n for (let i = 0; i < to && i < string.length;) {\n if (string.charCodeAt(i) == 9) {\n n += tabSize - (n % tabSize);\n i++;\n }\n else {\n n++;\n i = findClusterBreak(string, i);\n }\n }\n return n;\n}\n/**\nFind the offset that corresponds to the given column position in a\nstring, taking extending characters and tab size into account. By\ndefault, the string length is returned when it is too short to\nreach the column. Pass `strict` true to make it return -1 in that\nsituation.\n*/\nfunction findColumn(string, col, tabSize, strict) {\n for (let i = 0, n = 0;;) {\n if (n >= col)\n return i;\n if (i == string.length)\n break;\n n += string.charCodeAt(i) == 9 ? tabSize - (n % tabSize) : 1;\n i = findClusterBreak(string, i);\n }\n return strict === true ? -1 : string.length;\n}\n\nexport { Annotation, AnnotationType, ChangeDesc, ChangeSet, CharCategory, Compartment, EditorSelection, EditorState, Facet, Line, MapMode, Prec, Range, RangeSet, RangeSetBuilder, RangeValue, SelectionRange, StateEffect, StateEffectType, StateField, Text, Transaction, codePointAt, codePointSize, combineConfig, countColumn, findClusterBreak, findColumn, fromCodePoint };\n","const C = \"\\u037c\"\nconst COUNT = typeof Symbol == \"undefined\" ? \"__\" + C : Symbol.for(C)\nconst SET = typeof Symbol == \"undefined\" ? \"__styleSet\" + Math.floor(Math.random() * 1e8) : Symbol(\"styleSet\")\nconst top = typeof globalThis != \"undefined\" ? globalThis : typeof window != \"undefined\" ? window : {}\n\n// :: - Style modules encapsulate a set of CSS rules defined from\n// JavaScript. Their definitions are only available in a given DOM\n// root after it has been _mounted_ there with `StyleModule.mount`.\n//\n// Style modules should be created once and stored somewhere, as\n// opposed to re-creating them every time you need them. The amount of\n// CSS rules generated for a given DOM root is bounded by the amount\n// of style modules that were used. So to avoid leaking rules, don't\n// create these dynamically, but treat them as one-time allocations.\nexport class StyleModule {\n // :: (Object \ No newline at end of file diff --git a/frontend/dist/glyph.png b/frontend/dist/glyph.png deleted file mode 100644 index 7468ee612859a226a56615297aacb29848232267..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 98345 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
- - diff --git a/frontend/dist/site.webmanifest b/frontend/dist/site.webmanifest deleted file mode 100644 index 92caeb21..00000000 --- a/frontend/dist/site.webmanifest +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "RemoteTerm for MeshCore", - "short_name": "RemoteTerm", - "icons": [ - { - "src": "/web-app-manifest-192x192.png", - "sizes": "192x192", - "type": "image/png", - "purpose": "maskable" - }, - { - "src": "/web-app-manifest-512x512.png", - "sizes": "512x512", - "type": "image/png", - "purpose": "maskable" - } - ], - "theme_color": "#ffffff", - "background_color": "#ffffff", - "display": "standalone" -} \ No newline at end of file diff --git a/frontend/dist/web-app-manifest-192x192.png b/frontend/dist/web-app-manifest-192x192.png deleted file mode 100644 index c2b1e36411afb3e2eead1b1392c033b8b448f7d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15680 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" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@asamuzakjp/css-color": { - "version": "3.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@csstools/css-calc": "^2.1.3", - "@csstools/css-color-parser": "^3.0.9", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "lru-cache": "^10.4.3" - } - }, - "node_modules/@asamuzakjp/css-color/node_modules/lru-cache": { - "version": "10.4.3", - "dev": true, - "license": "ISC" - }, - "node_modules/@babel/code-frame": { - "version": "7.27.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.27.1", - "js-tokens": "^4.0.0", - "picocolors": "^1.1.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.28.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.28.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.5", - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-module-transforms": "^7.28.3", - "@babel/helpers": "^7.28.4", - "@babel/parser": "^7.28.5", - "@babel/template": "^7.27.2", - "@babel/traverse": "^7.28.5", - "@babel/types": "^7.28.5", - "@jridgewell/remapping": "^2.3.5", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/generator": { - "version": "7.28.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.28.5", - "@babel/types": "^7.28.5", - "@jridgewell/gen-mapping": "^0.3.12", - "@jridgewell/trace-mapping": "^0.3.28", - "jsesc": "^3.0.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.27.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.27.2", - "@babel/helper-validator-option": "^7.27.1", - "browserslist": "^4.24.0", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-globals": { - "version": "7.28.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.27.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.28.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1", - "@babel/traverse": "^7.28.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.27.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.27.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.28.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.27.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.28.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.28.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.28.5" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.27.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.27.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.28.4", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.27.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/parser": "^7.27.2", - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.28.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.5", - "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.5", - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.5", - "debug": "^4.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.28.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.28.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@codemirror/autocomplete": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.20.0.tgz", - "integrity": "sha512-bOwvTOIJcG5FVo5gUUupiwYh8MioPLQ4UcqbcRf7UQ98X90tCa9E1kZ3Z7tqwpZxYyOvh1YTYbmZE9RTfTp5hg==", - "license": "MIT", - "dependencies": { - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.17.0", - "@lezer/common": "^1.0.0" - } - }, - "node_modules/@codemirror/commands": { - "version": "6.10.1", - "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.10.1.tgz", - "integrity": "sha512-uWDWFypNdQmz2y1LaNJzK7fL7TYKLeUAU0npEC685OKTF3KcQ2Vu3klIM78D7I6wGhktme0lh3CuQLv0ZCrD9Q==", - "license": "MIT", - "dependencies": { - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.4.0", - "@codemirror/view": "^6.27.0", - "@lezer/common": "^1.1.0" - } - }, - "node_modules/@codemirror/lang-python": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@codemirror/lang-python/-/lang-python-6.2.1.tgz", - "integrity": "sha512-IRjC8RUBhn9mGR9ywecNhB51yePWCGgvHfY1lWN/Mrp3cKuHr0isDKia+9HnvhiWNnMpbGhWrkhuWOc09exRyw==", - "license": "MIT", - "dependencies": { - "@codemirror/autocomplete": "^6.3.2", - "@codemirror/language": "^6.8.0", - "@codemirror/state": "^6.0.0", - "@lezer/common": "^1.2.1", - "@lezer/python": "^1.1.4" - } - }, - "node_modules/@codemirror/language": { - "version": "6.12.1", - "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-6.12.1.tgz", - "integrity": "sha512-Fa6xkSiuGKc8XC8Cn96T+TQHYj4ZZ7RdFmXA3i9xe/3hLHfwPZdM+dqfX0Cp0zQklBKhVD8Yzc8LS45rkqcwpQ==", - "license": "MIT", - "dependencies": { - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.23.0", - "@lezer/common": "^1.5.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0", - "style-mod": "^4.0.0" - } - }, - "node_modules/@codemirror/lint": { - "version": "6.9.3", - "resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.9.3.tgz", - "integrity": "sha512-y3YkYhdnhjDBAe0VIA0c4wVoFOvnp8CnAvfLqi0TqotIv92wIlAAP7HELOpLBsKwjAX6W92rSflA6an/2zBvXw==", - "license": "MIT", - "dependencies": { - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.35.0", - "crelt": "^1.0.5" - } - }, - "node_modules/@codemirror/search": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@codemirror/search/-/search-6.6.0.tgz", - "integrity": "sha512-koFuNXcDvyyotWcgOnZGmY7LZqEOXZaaxD/j6n18TCLx2/9HieZJ5H6hs1g8FiRxBD0DNfs0nXn17g872RmYdw==", - "license": "MIT", - "dependencies": { - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.37.0", - "crelt": "^1.0.5" - } - }, - "node_modules/@codemirror/state": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.5.4.tgz", - "integrity": "sha512-8y7xqG/hpB53l25CIoit9/ngxdfoG+fx+V3SHBrinnhOtLvKHRyAJJuHzkWrR4YXXLX8eXBsejgAAxHUOdW1yw==", - "license": "MIT", - "dependencies": { - "@marijn/find-cluster-break": "^1.0.0" - } - }, - "node_modules/@codemirror/theme-one-dark": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/@codemirror/theme-one-dark/-/theme-one-dark-6.1.3.tgz", - "integrity": "sha512-NzBdIvEJmx6fjeremiGp3t/okrLPYT0d9orIc7AFun8oZcRk58aejkqhv6spnz4MLAevrKNPMQYXEWMg4s+sKA==", - "license": "MIT", - "dependencies": { - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "@lezer/highlight": "^1.0.0" - } - }, - "node_modules/@codemirror/view": { - "version": "6.39.11", - "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.39.11.tgz", - "integrity": "sha512-bWdeR8gWM87l4DB/kYSF9A+dVackzDb/V56Tq7QVrQ7rn86W0rgZFtlL3g3pem6AeGcb9NQNoy3ao4WpW4h5tQ==", - "license": "MIT", - "dependencies": { - "@codemirror/state": "^6.5.0", - "crelt": "^1.0.6", - "style-mod": "^4.1.0", - "w3c-keyname": "^2.2.4" - } - }, - "node_modules/@csstools/color-helpers": { - "version": "5.1.0", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - } - }, - "node_modules/@csstools/css-calc": { - "version": "2.1.4", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4" - } - }, - "node_modules/@csstools/css-color-parser": { - "version": "3.1.0", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "dependencies": { - "@csstools/color-helpers": "^5.1.0", - "@csstools/css-calc": "^2.1.4" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4" - } - }, - "node_modules/@csstools/css-parser-algorithms": { - "version": "3.0.5", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@csstools/css-tokenizer": "^3.0.4" - } - }, - "node_modules/@csstools/css-tokenizer": { - "version": "3.0.4", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", - "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", - "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", - "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", - "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", - "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", - "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", - "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", - "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", - "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", - "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", - "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", - "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", - "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", - "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", - "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", - "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.25.12", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", - "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", - "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", - "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", - "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openharmony-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", - "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", - "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", - "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", - "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", - "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", - "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", - "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/config-array": { - "version": "0.21.1", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.1.tgz", - "integrity": "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/object-schema": "^2.1.7", - "debug": "^4.3.1", - "minimatch": "^3.1.2" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/config-helpers": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", - "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/core": "^0.17.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/core": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", - "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@types/json-schema": "^7.0.15" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.3.tgz", - "integrity": "sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^10.0.1", - "globals": "^14.0.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.1", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/js": { - "version": "9.39.2", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.2.tgz", - "integrity": "sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://eslint.org/donate" - } - }, - "node_modules/@eslint/object-schema": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", - "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/plugin-kit": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", - "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/core": "^0.17.0", - "levn": "^0.4.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@humanfs/core": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", - "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18.0" - } - }, - "node_modules/@humanfs/node": { - "version": "0.16.7", - "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz", - "integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@humanfs/core": "^0.19.1", - "@humanwhocodes/retry": "^0.4.0" - }, - "engines": { - "node": ">=18.18.0" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/retry": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", - "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.13", - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "node_modules/@jridgewell/remapping": { - "version": "2.3.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.5", - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.31", - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@lezer/common": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.5.0.tgz", - "integrity": "sha512-PNGcolp9hr4PJdXR4ix7XtixDrClScvtSCYW3rQG106oVMOOI+jFb+0+J3mbeL/53g1Zd6s0kJzaw6Ri68GmAA==", - "license": "MIT" - }, - "node_modules/@lezer/highlight": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@lezer/highlight/-/highlight-1.2.3.tgz", - "integrity": "sha512-qXdH7UqTvGfdVBINrgKhDsVTJTxactNNxLk7+UMwZhU13lMHaOBlJe9Vqp907ya56Y3+ed2tlqzys7jDkTmW0g==", - "license": "MIT", - "dependencies": { - "@lezer/common": "^1.3.0" - } - }, - "node_modules/@lezer/lr": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.4.8.tgz", - "integrity": "sha512-bPWa0Pgx69ylNlMlPvBPryqeLYQjyJjqPx+Aupm5zydLIF3NE+6MMLT8Yi23Bd9cif9VS00aUebn+6fDIGBcDA==", - "license": "MIT", - "dependencies": { - "@lezer/common": "^1.0.0" - } - }, - "node_modules/@lezer/python": { - "version": "1.1.18", - "resolved": "https://registry.npmjs.org/@lezer/python/-/python-1.1.18.tgz", - "integrity": "sha512-31FiUrU7z9+d/ElGQLJFXl+dKOdx0jALlP3KEOsGTex8mvj+SoE1FgItcHWK/axkxCHGUSpqIHt6JAWfWu9Rhg==", - "license": "MIT", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@marijn/find-cluster-break": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@marijn/find-cluster-break/-/find-cluster-break-1.0.2.tgz", - "integrity": "sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==", - "license": "MIT" - }, - "node_modules/@michaelhart/meshcore-decoder": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/@michaelhart/meshcore-decoder/-/meshcore-decoder-0.2.7.tgz", - "integrity": "sha512-a3zNbqeACibYy7XlMx6F2fMfg8FT+mP7lcYCmr8EvQk2MvBw7Qs7+bV2DAnwTf+51IRZqFEPCq55GB0scsw1WA==", - "license": "MIT", - "dependencies": { - "@noble/ed25519": "^2.3.0", - "chalk": "^4.1.2", - "commander": "^12.0.0", - "crypto-js": "^4.2.0" - }, - "bin": { - "meshcore-decoder": "dist/cli.js" - } - }, - "node_modules/@michaelhart/meshcore-decoder/node_modules/commander": { - "version": "12.1.0", - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/@noble/ed25519": { - "version": "2.3.0", - "license": "MIT", - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@radix-ui/primitive": { - "version": "1.1.3", - "license": "MIT" - }, - "node_modules/@radix-ui/react-checkbox": { - "version": "1.3.3", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-presence": "1.1.5", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-controllable-state": "1.2.2", - "@radix-ui/react-use-previous": "1.1.1", - "@radix-ui/react-use-size": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-collection": { - "version": "1.1.7", - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-slot": "1.2.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-collection/node_modules/@radix-ui/react-slot": { - "version": "1.2.3", - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.2", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-context": { - "version": "1.1.2", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-dialog": { - "version": "1.1.15", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-dismissable-layer": "1.1.11", - "@radix-ui/react-focus-guards": "1.1.3", - "@radix-ui/react-focus-scope": "1.1.7", - "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-portal": "1.1.9", - "@radix-ui/react-presence": "1.1.5", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-slot": "1.2.3", - "@radix-ui/react-use-controllable-state": "1.2.2", - "aria-hidden": "^1.2.4", - "react-remove-scroll": "^2.6.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-slot": { - "version": "1.2.3", - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-direction": { - "version": "1.1.1", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-dismissable-layer": { - "version": "1.1.11", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-callback-ref": "1.1.1", - "@radix-ui/react-use-escape-keydown": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-focus-guards": { - "version": "1.1.3", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-focus-scope": { - "version": "1.1.7", - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-callback-ref": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-id": { - "version": "1.1.1", - "license": "MIT", - "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-label": { - "version": "2.1.8", - "license": "MIT", - "dependencies": { - "@radix-ui/react-primitive": "2.1.4" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-label/node_modules/@radix-ui/react-primitive": { - "version": "2.1.4", - "license": "MIT", - "dependencies": { - "@radix-ui/react-slot": "1.2.4" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-portal": { - "version": "1.1.9", - "license": "MIT", - "dependencies": { - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-layout-effect": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-presence": { - "version": "1.1.5", - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-use-layout-effect": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-primitive": { - "version": "2.1.3", - "license": "MIT", - "dependencies": { - "@radix-ui/react-slot": "1.2.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-primitive/node_modules/@radix-ui/react-slot": { - "version": "1.2.3", - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-roving-focus": { - "version": "1.1.11", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-collection": "1.1.7", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-direction": "1.1.1", - "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-callback-ref": "1.1.1", - "@radix-ui/react-use-controllable-state": "1.2.2" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-separator": { - "version": "1.1.8", - "license": "MIT", - "dependencies": { - "@radix-ui/react-primitive": "2.1.4" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-primitive": { - "version": "2.1.4", - "license": "MIT", - "dependencies": { - "@radix-ui/react-slot": "1.2.4" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-slot": { - "version": "1.2.4", - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-tabs": { - "version": "1.1.13", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-direction": "1.1.1", - "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-presence": "1.1.5", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-roving-focus": "1.1.11", - "@radix-ui/react-use-controllable-state": "1.2.2" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-callback-ref": { - "version": "1.1.1", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-controllable-state": { - "version": "1.2.2", - "license": "MIT", - "dependencies": { - "@radix-ui/react-use-effect-event": "0.0.2", - "@radix-ui/react-use-layout-effect": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-effect-event": { - "version": "0.0.2", - "license": "MIT", - "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-escape-keydown": { - "version": "1.1.1", - "license": "MIT", - "dependencies": { - "@radix-ui/react-use-callback-ref": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-layout-effect": { - "version": "1.1.1", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-previous": { - "version": "1.1.1", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-size": { - "version": "1.1.1", - "license": "MIT", - "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@react-leaflet/core": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@react-leaflet/core/-/core-2.1.0.tgz", - "integrity": "sha512-Qk7Pfu8BSarKGqILj4x7bCSZ1pjuAPZ+qmRwH5S7mDS91VSbVVsJSrW4qA+GPrro8t69gFYVMWb1Zc4yFmPiVg==", - "license": "Hippocratic-2.1", - "peerDependencies": { - "leaflet": "^1.9.0", - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@rolldown/pluginutils": { - "version": "1.0.0-beta.27", - "dev": true, - "license": "MIT" - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.55.1.tgz", - "integrity": "sha512-9R0DM/ykwfGIlNu6+2U09ga0WXeZ9MRC2Ter8jnz8415VbuIykVuc6bhdrbORFZANDmTDvq26mJrEVTl8TdnDg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.55.1.tgz", - "integrity": "sha512-eFZCb1YUqhTysgW3sj/55du5cG57S7UTNtdMjCW7LwVcj3dTTcowCsC8p7uBdzKsZYa8J7IDE8lhMI+HX1vQvg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.55.1.tgz", - "integrity": "sha512-p3grE2PHcQm2e8PSGZdzIhCKbMCw/xi9XvMPErPhwO17vxtvCN5FEA2mSLgmKlCjHGMQTP6phuQTYWUnKewwGg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.55.1.tgz", - "integrity": "sha512-rDUjG25C9qoTm+e02Esi+aqTKSBYwVTaoS1wxcN47/Luqef57Vgp96xNANwt5npq9GDxsH7kXxNkJVEsWEOEaQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.55.1.tgz", - "integrity": "sha512-+JiU7Jbp5cdxekIgdte0jfcu5oqw4GCKr6i3PJTlXTCU5H5Fvtkpbs4XJHRmWNXF+hKmn4v7ogI5OQPaupJgOg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.55.1.tgz", - "integrity": "sha512-V5xC1tOVWtLLmr3YUk2f6EJK4qksksOYiz/TCsFHu/R+woubcLWdC9nZQmwjOAbmExBIVKsm1/wKmEy4z4u4Bw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.55.1.tgz", - "integrity": "sha512-Rn3n+FUk2J5VWx+ywrG/HGPTD9jXNbicRtTM11e/uorplArnXZYsVifnPPqNNP5BsO3roI4n8332ukpY/zN7rQ==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.55.1.tgz", - "integrity": "sha512-grPNWydeKtc1aEdrJDWk4opD7nFtQbMmV7769hiAaYyUKCT1faPRm2av8CX1YJsZ4TLAZcg9gTR1KvEzoLjXkg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.55.1.tgz", - "integrity": "sha512-a59mwd1k6x8tXKcUxSyISiquLwB5pX+fJW9TkWU46lCqD/GRDe9uDN31jrMmVP3feI3mhAdvcCClhV8V5MhJFQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.55.1.tgz", - "integrity": "sha512-puS1MEgWX5GsHSoiAsF0TYrpomdvkaXm0CofIMG5uVkP6IBV+ZO9xhC5YEN49nsgYo1DuuMquF9+7EDBVYu4uA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loong64-gnu": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.55.1.tgz", - "integrity": "sha512-r3Wv40in+lTsULSb6nnoudVbARdOwb2u5fpeoOAZjFLznp6tDU8kd+GTHmJoqZ9lt6/Sys33KdIHUaQihFcu7g==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loong64-musl": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.55.1.tgz", - "integrity": "sha512-MR8c0+UxAlB22Fq4R+aQSPBayvYa3+9DrwG/i1TKQXFYEaoW3B5b/rkSRIypcZDdWjWnpcvxbNaAJDcSbJU3Lw==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.55.1.tgz", - "integrity": "sha512-3KhoECe1BRlSYpMTeVrD4sh2Pw2xgt4jzNSZIIPLFEsnQn9gAnZagW9+VqDqAHgm1Xc77LzJOo2LdigS5qZ+gw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-ppc64-musl": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.55.1.tgz", - "integrity": "sha512-ziR1OuZx0vdYZZ30vueNZTg73alF59DicYrPViG0NEgDVN8/Jl87zkAPu4u6VjZST2llgEUjaiNl9JM6HH1Vdw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.55.1.tgz", - "integrity": "sha512-uW0Y12ih2XJRERZ4jAfKamTyIHVMPQnTZcQjme2HMVDAHY4amf5u414OqNYC+x+LzRdRcnIG1YodLrrtA8xsxw==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.55.1.tgz", - "integrity": "sha512-u9yZ0jUkOED1BFrqu3BwMQoixvGHGZ+JhJNkNKY/hyoEgOwlqKb62qu+7UjbPSHYjiVy8kKJHvXKv5coH4wDeg==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.55.1.tgz", - "integrity": "sha512-/0PenBCmqM4ZUd0190j7J0UsQ/1nsi735iPRakO8iPciE7BQ495Y6msPzaOmvx0/pn+eJVVlZrNrSh4WSYLxNg==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.55.1", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.55.1", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-openbsd-x64": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.55.1.tgz", - "integrity": "sha512-eLXw0dOiqE4QmvikfQ6yjgkg/xDM+MdU9YJuP4ySTibXU0oAvnEWXt7UDJmD4UkYialMfOGFPJnIHSe/kdzPxg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ] - }, - "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.55.1.tgz", - "integrity": "sha512-xzm44KgEP11te3S2HCSyYf5zIzWmx3n8HDCc7EE59+lTcswEWNpvMLfd9uJvVX8LCg9QWG67Xt75AuHn4vgsXw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.55.1.tgz", - "integrity": "sha512-yR6Bl3tMC/gBok5cz/Qi0xYnVbIxGx5Fcf/ca0eB6/6JwOY+SRUcJfI0OpeTpPls7f194as62thCt/2BjxYN8g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.55.1.tgz", - "integrity": "sha512-3fZBidchE0eY0oFZBnekYCfg+5wAB0mbpCBuofh5mZuzIU/4jIVkbESmd2dOsFNS78b53CYv3OAtwqkZZmU5nA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-gnu": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.55.1.tgz", - "integrity": "sha512-xGGY5pXj69IxKb4yv/POoocPy/qmEGhimy/FoTpTSVju3FYXUQQMFCaZZXJVidsmGxRioZAwpThl/4zX41gRKg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.55.1.tgz", - "integrity": "sha512-SPEpaL6DX4rmcXtnhdrQYgzQ5W2uW3SCJch88lB2zImhJRhIIK44fkUrgIV/Q8yUNfw5oyZ5vkeQsZLhCb06lw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@testing-library/dom": { - "version": "10.4.1", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/runtime": "^7.12.5", - "@types/aria-query": "^5.0.1", - "aria-query": "5.3.0", - "dom-accessibility-api": "^0.5.9", - "lz-string": "^1.5.0", - "picocolors": "1.1.1", - "pretty-format": "^27.0.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@testing-library/jest-dom": { - "version": "6.9.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@adobe/css-tools": "^4.4.0", - "aria-query": "^5.0.0", - "css.escape": "^1.5.1", - "dom-accessibility-api": "^0.6.3", - "picocolors": "^1.1.1", - "redent": "^3.0.0" - }, - "engines": { - "node": ">=14", - "npm": ">=6", - "yarn": ">=1" - } - }, - "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": { - "version": "0.6.3", - "dev": true, - "license": "MIT" - }, - "node_modules/@testing-library/react": { - "version": "16.3.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.5" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@testing-library/dom": "^10.0.0", - "@types/react": "^18.0.0 || ^19.0.0", - "@types/react-dom": "^18.0.0 || ^19.0.0", - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@types/aria-query": { - "version": "5.0.4", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/@types/babel__core": { - "version": "7.20.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.27.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.28.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.28.2" - } - }, - "node_modules/@types/d3-force": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.10.tgz", - "integrity": "sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/estree": { - "version": "1.0.8", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/geojson": { - "version": "7946.0.16", - "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz", - "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/leaflet": { - "version": "1.9.21", - "resolved": "https://registry.npmjs.org/@types/leaflet/-/leaflet-1.9.21.tgz", - "integrity": "sha512-TbAd9DaPGSnzp6QvtYngntMZgcRk+igFELwR2N99XZn7RXUdKgsXMR+28bUO0rPsWp8MIu/f47luLIQuSLYv/w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/geojson": "*" - } - }, - "node_modules/@types/node": { - "version": "25.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "undici-types": "~7.16.0" - } - }, - "node_modules/@types/prop-types": { - "version": "15.7.15", - "devOptional": true, - "license": "MIT" - }, - "node_modules/@types/react": { - "version": "18.3.27", - "devOptional": true, - "license": "MIT", - "dependencies": { - "@types/prop-types": "*", - "csstype": "^3.2.2" - } - }, - "node_modules/@types/react-dom": { - "version": "18.3.7", - "devOptional": true, - "license": "MIT", - "peerDependencies": { - "@types/react": "^18.0.0" - } - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.53.0.tgz", - "integrity": "sha512-eEXsVvLPu8Z4PkFibtuFJLJOTAV/nPdgtSjkGoPpddpFk3/ym2oy97jynY6ic2m6+nc5M8SE1e9v/mHKsulcJg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/regexpp": "^4.12.2", - "@typescript-eslint/scope-manager": "8.53.0", - "@typescript-eslint/type-utils": "8.53.0", - "@typescript-eslint/utils": "8.53.0", - "@typescript-eslint/visitor-keys": "8.53.0", - "ignore": "^7.0.5", - "natural-compare": "^1.4.0", - "ts-api-utils": "^2.4.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^8.53.0", - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <6.0.0" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", - "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.53.0.tgz", - "integrity": "sha512-npiaib8XzbjtzS2N4HlqPvlpxpmZ14FjSJrteZpPxGUaYPlvhzlzUZ4mZyABo0EFrOWnvyd0Xxroq//hKhtAWg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/scope-manager": "8.53.0", - "@typescript-eslint/types": "8.53.0", - "@typescript-eslint/typescript-estree": "8.53.0", - "@typescript-eslint/visitor-keys": "8.53.0", - "debug": "^4.4.3" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <6.0.0" - } - }, - "node_modules/@typescript-eslint/project-service": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.53.0.tgz", - "integrity": "sha512-Bl6Gdr7NqkqIP5yP9z1JU///Nmes4Eose6L1HwpuVHwScgDPPuEWbUVhvlZmb8hy0vX9syLk5EGNL700WcBlbg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.53.0", - "@typescript-eslint/types": "^8.53.0", - "debug": "^4.4.3" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <6.0.0" - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.53.0.tgz", - "integrity": "sha512-kWNj3l01eOGSdVBnfAF2K1BTh06WS0Yet6JUgb9Cmkqaz3Jlu0fdVUjj9UI8gPidBWSMqDIglmEXifSgDT/D0g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.53.0", - "@typescript-eslint/visitor-keys": "8.53.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.53.0.tgz", - "integrity": "sha512-K6Sc0R5GIG6dNoPdOooQ+KtvT5KCKAvTcY8h2rIuul19vxH5OTQk7ArKkd4yTzkw66WnNY0kPPzzcmWA+XRmiA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <6.0.0" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.53.0.tgz", - "integrity": "sha512-BBAUhlx7g4SmcLhn8cnbxoxtmS7hcq39xKCgiutL3oNx1TaIp+cny51s8ewnKMpVUKQUGb41RAUWZ9kxYdovuw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.53.0", - "@typescript-eslint/typescript-estree": "8.53.0", - "@typescript-eslint/utils": "8.53.0", - "debug": "^4.4.3", - "ts-api-utils": "^2.4.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <6.0.0" - } - }, - "node_modules/@typescript-eslint/types": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.53.0.tgz", - "integrity": "sha512-Bmh9KX31Vlxa13+PqPvt4RzKRN1XORYSLlAE+sO1i28NkisGbTtSLFVB3l7PWdHtR3E0mVMuC7JilWJ99m2HxQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.53.0.tgz", - "integrity": "sha512-pw0c0Gdo7Z4xOG987u3nJ8akL9093yEEKv8QTJ+Bhkghj1xyj8cgPaavlr9rq8h7+s6plUJ4QJYw2gCZodqmGw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/project-service": "8.53.0", - "@typescript-eslint/tsconfig-utils": "8.53.0", - "@typescript-eslint/types": "8.53.0", - "@typescript-eslint/visitor-keys": "8.53.0", - "debug": "^4.4.3", - "minimatch": "^9.0.5", - "semver": "^7.7.3", - "tinyglobby": "^0.2.15", - "ts-api-utils": "^2.4.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <6.0.0" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.53.0.tgz", - "integrity": "sha512-XDY4mXTez3Z1iRDI5mbRhH4DFSt46oaIFsLg+Zn97+sYrXACziXSQcSelMybnVZ5pa1P6xYkPr5cMJyunM1ZDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.9.1", - "@typescript-eslint/scope-manager": "8.53.0", - "@typescript-eslint/types": "8.53.0", - "@typescript-eslint/typescript-estree": "8.53.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <6.0.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.53.0.tgz", - "integrity": "sha512-LZ2NqIHFhvFwxG0qZeLL9DvdNAHPGCY5dIRwBhyYeU+LfLhcStE1ImjsuTG/WaVh3XysGaeLW8Rqq7cGkPCFvw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.53.0", - "eslint-visitor-keys": "^4.2.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@uiw/codemirror-extensions-basic-setup": { - "version": "4.25.4", - "resolved": "https://registry.npmjs.org/@uiw/codemirror-extensions-basic-setup/-/codemirror-extensions-basic-setup-4.25.4.tgz", - "integrity": "sha512-YzNwkm0AbPv1EXhCHYR5v0nqfemG2jEB0Z3Att4rBYqKrlG7AA9Rhjc3IyBaOzsBu18wtrp9/+uhTyu7TXSRng==", - "license": "MIT", - "dependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/commands": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/lint": "^6.0.0", - "@codemirror/search": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0" - }, - "funding": { - "url": "https://jaywcjlove.github.io/#/sponsor" - }, - "peerDependencies": { - "@codemirror/autocomplete": ">=6.0.0", - "@codemirror/commands": ">=6.0.0", - "@codemirror/language": ">=6.0.0", - "@codemirror/lint": ">=6.0.0", - "@codemirror/search": ">=6.0.0", - "@codemirror/state": ">=6.0.0", - "@codemirror/view": ">=6.0.0" - } - }, - "node_modules/@uiw/react-codemirror": { - "version": "4.25.4", - "resolved": "https://registry.npmjs.org/@uiw/react-codemirror/-/react-codemirror-4.25.4.tgz", - "integrity": "sha512-ipO067oyfUw+DVaXhQCxkB0ZD9b7RnY+ByrprSYSKCHaULvJ3sqWYC/Zen6zVQ8/XC4o5EPBfatGiX20kC7XGA==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.18.6", - "@codemirror/commands": "^6.1.0", - "@codemirror/state": "^6.1.1", - "@codemirror/theme-one-dark": "^6.0.0", - "@uiw/codemirror-extensions-basic-setup": "4.25.4", - "codemirror": "^6.0.0" - }, - "funding": { - "url": "https://jaywcjlove.github.io/#/sponsor" - }, - "peerDependencies": { - "@babel/runtime": ">=7.11.0", - "@codemirror/state": ">=6.0.0", - "@codemirror/theme-one-dark": ">=6.0.0", - "@codemirror/view": ">=6.0.0", - "codemirror": ">=6.0.0", - "react": ">=17.0.0", - "react-dom": ">=17.0.0" - } - }, - "node_modules/@vitejs/plugin-react": { - "version": "4.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.28.0", - "@babel/plugin-transform-react-jsx-self": "^7.27.1", - "@babel/plugin-transform-react-jsx-source": "^7.27.1", - "@rolldown/pluginutils": "1.0.0-beta.27", - "@types/babel__core": "^7.20.5", - "react-refresh": "^0.17.0" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "peerDependencies": { - "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" - } - }, - "node_modules/@vitest/expect": { - "version": "2.1.9", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/spy": "2.1.9", - "@vitest/utils": "2.1.9", - "chai": "^5.1.2", - "tinyrainbow": "^1.2.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/pretty-format": { - "version": "2.1.9", - "dev": true, - "license": "MIT", - "dependencies": { - "tinyrainbow": "^1.2.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/runner": { - "version": "2.1.9", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/utils": "2.1.9", - "pathe": "^1.1.2" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/snapshot": { - "version": "2.1.9", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/pretty-format": "2.1.9", - "magic-string": "^0.30.12", - "pathe": "^1.1.2" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/spy": { - "version": "2.1.9", - "dev": true, - "license": "MIT", - "dependencies": { - "tinyspy": "^3.0.2" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/utils": { - "version": "2.1.9", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/pretty-format": "2.1.9", - "loupe": "^3.1.2", - "tinyrainbow": "^1.2.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/acorn": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", - "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/agent-base": { - "version": "7.1.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/any-promise": { - "version": "1.3.0", - "license": "MIT" - }, - "node_modules/anymatch": { - "version": "3.1.3", - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arg": { - "version": "5.0.2", - "license": "MIT" - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0" - }, - "node_modules/aria-hidden": { - "version": "1.2.6", - "license": "MIT", - "dependencies": { - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/aria-query": { - "version": "5.3.0", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "dequal": "^2.0.3" - } - }, - "node_modules/assertion-error": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "dev": true, - "license": "MIT" - }, - "node_modules/autoprefixer": { - "version": "10.4.23", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "browserslist": "^4.28.1", - "caniuse-lite": "^1.0.30001760", - "fraction.js": "^5.3.4", - "picocolors": "^1.1.1", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/baseline-browser-mapping": { - "version": "2.9.11", - "dev": true, - "license": "Apache-2.0", - "bin": { - "baseline-browser-mapping": "dist/cli.js" - } - }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "license": "MIT", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.28.1", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "baseline-browser-mapping": "^2.9.0", - "caniuse-lite": "^1.0.30001759", - "electron-to-chromium": "^1.5.263", - "node-releases": "^2.0.27", - "update-browserslist-db": "^1.2.0" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/cac": { - "version": "6.7.14", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase-css": { - "version": "2.0.1", - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001762", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, - "node_modules/chai": { - "version": "5.3.3", - "dev": true, - "license": "MIT", - "dependencies": { - "assertion-error": "^2.0.1", - "check-error": "^2.1.1", - "deep-eql": "^5.0.1", - "loupe": "^3.1.0", - "pathval": "^2.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/chalk/node_modules/ansi-styles": { - "version": "4.3.0", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/check-error": { - "version": "2.1.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 16" - } - }, - "node_modules/chokidar": { - "version": "3.6.0", - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/class-variance-authority": { - "version": "0.7.1", - "license": "Apache-2.0", - "dependencies": { - "clsx": "^2.1.1" - }, - "funding": { - "url": "https://polar.sh/cva" - } - }, - "node_modules/clsx": { - "version": "2.1.1", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/codemirror": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-6.0.2.tgz", - "integrity": "sha512-VhydHotNW5w1UGK0Qj96BwSk/Zqbp9WbnyK2W/eVMv4QyF41INRGpjUhFJY7/uDNuudSc33a/PKr4iDqRduvHw==", - "license": "MIT", - "dependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/commands": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/lint": "^6.0.0", - "@codemirror/search": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "license": "MIT" - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "dev": true, - "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "4.1.1", - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true, - "license": "MIT" - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/crelt": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz", - "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==", - "license": "MIT" - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/crypto-js": { - "version": "4.2.0", - "license": "MIT" - }, - "node_modules/css.escape": { - "version": "1.5.1", - "dev": true, - "license": "MIT" - }, - "node_modules/cssesc": { - "version": "3.0.0", - "license": "MIT", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssstyle": { - "version": "4.6.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@asamuzakjp/css-color": "^3.2.0", - "rrweb-cssom": "^0.8.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/cssstyle/node_modules/rrweb-cssom": { - "version": "0.8.0", - "dev": true, - "license": "MIT" - }, - "node_modules/csstype": { - "version": "3.2.3", - "devOptional": true, - "license": "MIT" - }, - "node_modules/d3-dispatch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", - "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-force": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", - "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", - "license": "ISC", - "dependencies": { - "d3-dispatch": "1 - 3", - "d3-quadtree": "1 - 3", - "d3-timer": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-quadtree": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", - "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-timer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", - "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/data-urls": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "whatwg-mimetype": "^4.0.0", - "whatwg-url": "^14.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/debug": { - "version": "4.4.3", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decimal.js": { - "version": "10.6.0", - "dev": true, - "license": "MIT" - }, - "node_modules/deep-eql": { - "version": "5.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/dequal": { - "version": "2.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/detect-node-es": { - "version": "1.1.0", - "license": "MIT" - }, - "node_modules/didyoumean": { - "version": "1.2.2", - "license": "Apache-2.0" - }, - "node_modules/dlv": { - "version": "1.1.3", - "license": "MIT" - }, - "node_modules/dom-accessibility-api": { - "version": "0.5.16", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.5.267", - "dev": true, - "license": "ISC" - }, - "node_modules/entities": { - "version": "6.0.1", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/es-define-property": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-module-lexer": { - "version": "1.7.0", - "dev": true, - "license": "MIT" - }, - "node_modules/es-object-atoms": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/esbuild": { - "version": "0.25.12", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.12", - "@esbuild/android-arm": "0.25.12", - "@esbuild/android-arm64": "0.25.12", - "@esbuild/android-x64": "0.25.12", - "@esbuild/darwin-arm64": "0.25.12", - "@esbuild/darwin-x64": "0.25.12", - "@esbuild/freebsd-arm64": "0.25.12", - "@esbuild/freebsd-x64": "0.25.12", - "@esbuild/linux-arm": "0.25.12", - "@esbuild/linux-arm64": "0.25.12", - "@esbuild/linux-ia32": "0.25.12", - "@esbuild/linux-loong64": "0.25.12", - "@esbuild/linux-mips64el": "0.25.12", - "@esbuild/linux-ppc64": "0.25.12", - "@esbuild/linux-riscv64": "0.25.12", - "@esbuild/linux-s390x": "0.25.12", - "@esbuild/linux-x64": "0.25.12", - "@esbuild/netbsd-arm64": "0.25.12", - "@esbuild/netbsd-x64": "0.25.12", - "@esbuild/openbsd-arm64": "0.25.12", - "@esbuild/openbsd-x64": "0.25.12", - "@esbuild/openharmony-arm64": "0.25.12", - "@esbuild/sunos-x64": "0.25.12", - "@esbuild/win32-arm64": "0.25.12", - "@esbuild/win32-ia32": "0.25.12", - "@esbuild/win32-x64": "0.25.12" - } - }, - "node_modules/escalade": { - "version": "3.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "9.39.2", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.2.tgz", - "integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.8.0", - "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.21.1", - "@eslint/config-helpers": "^0.4.2", - "@eslint/core": "^0.17.0", - "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.39.2", - "@eslint/plugin-kit": "^0.4.1", - "@humanfs/node": "^0.16.6", - "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.4.2", - "@types/estree": "^1.0.6", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.6", - "debug": "^4.3.2", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.4.0", - "eslint-visitor-keys": "^4.2.1", - "espree": "^10.4.0", - "esquery": "^1.5.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^8.0.0", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://eslint.org/donate" - }, - "peerDependencies": { - "jiti": "*" - }, - "peerDependenciesMeta": { - "jiti": { - "optional": true - } - } - }, - "node_modules/eslint-plugin-react-hooks": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz", - "integrity": "sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" - } - }, - "node_modules/eslint-scope": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", - "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", - "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/espree": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", - "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.15.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.2.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esquery": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", - "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-walker": { - "version": "3.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expect-type": { - "version": "1.3.0", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-glob": { - "version": "3.3.3", - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.8" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true, - "license": "MIT" - }, - "node_modules/fastq": { - "version": "1.20.1", - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/file-entry-cache": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", - "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "flat-cache": "^4.0.0" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", - "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", - "dev": true, - "license": "MIT", - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.4" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/flatted": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", - "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", - "dev": true, - "license": "ISC" - }, - "node_modules/form-data": { - "version": "4.0.5", - "dev": true, - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "hasown": "^2.0.2", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fraction.js": { - "version": "5.3.4", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/rawify" - } - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-intrinsic": { - "version": "1.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "function-bind": "^1.1.2", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-nonce": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/get-proto": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/globals": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", - "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/gopd": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-symbols": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/html-encoding-sniffer": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "whatwg-encoding": "^3.1.1" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/http-proxy-agent": { - "version": "7.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/https-proxy-agent": { - "version": "7.0.6", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "dev": true, - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-fresh": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", - "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "license": "MIT", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-core-module": { - "version": "2.16.1", - "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, - "license": "ISC" - }, - "node_modules/jiti": { - "version": "1.21.7", - "license": "MIT", - "bin": { - "jiti": "bin/jiti.js" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", - "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsdom": { - "version": "25.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "cssstyle": "^4.1.0", - "data-urls": "^5.0.0", - "decimal.js": "^10.4.3", - "form-data": "^4.0.0", - "html-encoding-sniffer": "^4.0.0", - "http-proxy-agent": "^7.0.2", - "https-proxy-agent": "^7.0.5", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.12", - "parse5": "^7.1.2", - "rrweb-cssom": "^0.7.1", - "saxes": "^6.0.0", - "symbol-tree": "^3.2.4", - "tough-cookie": "^5.0.0", - "w3c-xmlserializer": "^5.0.0", - "webidl-conversions": "^7.0.0", - "whatwg-encoding": "^3.1.1", - "whatwg-mimetype": "^4.0.0", - "whatwg-url": "^14.0.0", - "ws": "^8.18.0", - "xml-name-validator": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "canvas": "^2.11.2" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "node_modules/jsesc": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/json5": { - "version": "2.2.3", - "dev": true, - "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/leaflet": { - "version": "1.9.4", - "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.9.4.tgz", - "integrity": "sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA==", - "license": "BSD-2-Clause" - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lilconfig": { - "version": "3.1.3", - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antonk52" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "license": "MIT" - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "license": "MIT", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/loupe": { - "version": "3.2.1", - "dev": true, - "license": "MIT" - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/lucide-react": { - "version": "0.562.0", - "license": "ISC", - "peerDependencies": { - "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/lz-string": { - "version": "1.5.0", - "dev": true, - "license": "MIT", - "peer": true, - "bin": { - "lz-string": "bin/bin.js" - } - }, - "node_modules/magic-string": { - "version": "0.30.21", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.5" - } - }, - "node_modules/math-intrinsics": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/merge2": { - "version": "1.4.1", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/meshcore-hashtag-cracker": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/meshcore-hashtag-cracker/-/meshcore-hashtag-cracker-1.6.0.tgz", - "integrity": "sha512-NLfPibjwrNae6dhdCG0WqpSteaApZNS/RxyTjV9Rf4bgcrZGsl3Mz9di4jfHO6j4mWLU1lJT/6DqjJDjU1nPyw==", - "license": "MIT", - "dependencies": { - "@michaelhart/meshcore-decoder": "^0.2.7", - "crypto-js": "^4.2.0" - } - }, - "node_modules/micromatch": { - "version": "4.0.8", - "license": "MIT", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/min-indent": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "dev": true, - "license": "MIT" - }, - "node_modules/mz": { - "version": "2.7.0", - "license": "MIT", - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "node_modules/nanoid": { - "version": "3.3.11", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true, - "license": "MIT" - }, - "node_modules/node-releases": { - "version": "2.0.27", - "dev": true, - "license": "MIT" - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nosleep.js": { - "version": "0.12.0", - "license": "MIT" - }, - "node_modules/nwsapi": { - "version": "2.2.23", - "dev": true, - "license": "MIT" - }, - "node_modules/object-assign": { - "version": "4.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-hash": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/optionator": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", - "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.5" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse5": { - "version": "7.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "entities": "^6.0.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "license": "MIT" - }, - "node_modules/pathe": { - "version": "1.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/pathval": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14.16" - } - }, - "node_modules/picocolors": { - "version": "1.1.1", - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pirates": { - "version": "4.0.7", - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/postcss": { - "version": "8.5.6", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.11", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-import": { - "version": "15.1.0", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-js": { - "version": "4.1.0", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "camelcase-css": "^2.0.1" - }, - "engines": { - "node": "^12 || ^14 || >= 16" - }, - "peerDependencies": { - "postcss": "^8.4.21" - } - }, - "node_modules/postcss-load-config": { - "version": "6.0.1", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "lilconfig": "^3.1.1" - }, - "engines": { - "node": ">= 18" - }, - "peerDependencies": { - "jiti": ">=1.21.0", - "postcss": ">=8.0.9", - "tsx": "^4.8.1", - "yaml": "^2.4.2" - }, - "peerDependenciesMeta": { - "jiti": { - "optional": true - }, - "postcss": { - "optional": true - }, - "tsx": { - "optional": true - }, - "yaml": { - "optional": true - } - } - }, - "node_modules/postcss-nested": { - "version": "6.2.0", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.1.1" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "postcss": "^8.2.14" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.1.2", - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "license": "MIT" - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prettier": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.8.0.tgz", - "integrity": "sha512-yEPsovQfpxYfgWNhCfECjG5AQaO+K3dp6XERmOepyPDVqcJm+bjyCVO3pmU+nAPe0N5dDvekfGezt/EIiRe1TA==", - "dev": true, - "license": "MIT", - "bin": { - "prettier": "bin/prettier.cjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/pretty-format": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/punycode": { - "version": "2.3.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/react": { - "version": "18.3.1", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-dom": { - "version": "18.3.1", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.2" - }, - "peerDependencies": { - "react": "^18.3.1" - } - }, - "node_modules/react-is": { - "version": "17.0.2", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/react-leaflet": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/react-leaflet/-/react-leaflet-4.2.1.tgz", - "integrity": "sha512-p9chkvhcKrWn/H/1FFeVSqLdReGwn2qmiobOQGO3BifX+/vV/39qhY8dGqbdcPh1e6jxh/QHriLXr7a4eLFK4Q==", - "license": "Hippocratic-2.1", - "dependencies": { - "@react-leaflet/core": "^2.1.0" - }, - "peerDependencies": { - "leaflet": "^1.9.0", - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/react-refresh": { - "version": "0.17.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-remove-scroll": { - "version": "2.7.2", - "license": "MIT", - "dependencies": { - "react-remove-scroll-bar": "^2.3.7", - "react-style-singleton": "^2.2.3", - "tslib": "^2.1.0", - "use-callback-ref": "^1.3.3", - "use-sidecar": "^1.1.3" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-remove-scroll-bar": { - "version": "2.3.8", - "license": "MIT", - "dependencies": { - "react-style-singleton": "^2.2.2", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-style-singleton": { - "version": "2.2.3", - "license": "MIT", - "dependencies": { - "get-nonce": "^1.0.0", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/read-cache": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "pify": "^2.3.0" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/redent": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve": { - "version": "1.22.11", - "license": "MIT", - "dependencies": { - "is-core-module": "^2.16.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/reusify": { - "version": "1.1.0", - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rollup": { - "version": "4.55.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "1.0.8" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.55.1", - "@rollup/rollup-android-arm64": "4.55.1", - "@rollup/rollup-darwin-arm64": "4.55.1", - "@rollup/rollup-darwin-x64": "4.55.1", - "@rollup/rollup-freebsd-arm64": "4.55.1", - "@rollup/rollup-freebsd-x64": "4.55.1", - "@rollup/rollup-linux-arm-gnueabihf": "4.55.1", - "@rollup/rollup-linux-arm-musleabihf": "4.55.1", - "@rollup/rollup-linux-arm64-gnu": "4.55.1", - "@rollup/rollup-linux-arm64-musl": "4.55.1", - "@rollup/rollup-linux-loong64-gnu": "4.55.1", - "@rollup/rollup-linux-loong64-musl": "4.55.1", - "@rollup/rollup-linux-ppc64-gnu": "4.55.1", - "@rollup/rollup-linux-ppc64-musl": "4.55.1", - "@rollup/rollup-linux-riscv64-gnu": "4.55.1", - "@rollup/rollup-linux-riscv64-musl": "4.55.1", - "@rollup/rollup-linux-s390x-gnu": "4.55.1", - "@rollup/rollup-linux-x64-gnu": "4.55.1", - "@rollup/rollup-linux-x64-musl": "4.55.1", - "@rollup/rollup-openbsd-x64": "4.55.1", - "@rollup/rollup-openharmony-arm64": "4.55.1", - "@rollup/rollup-win32-arm64-msvc": "4.55.1", - "@rollup/rollup-win32-ia32-msvc": "4.55.1", - "@rollup/rollup-win32-x64-gnu": "4.55.1", - "@rollup/rollup-win32-x64-msvc": "4.55.1", - "fsevents": "~2.3.2" - } - }, - "node_modules/rrweb-cssom": { - "version": "0.7.1", - "dev": true, - "license": "MIT" - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/saxes": { - "version": "6.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=v12.22.7" - } - }, - "node_modules/scheduler": { - "version": "0.23.2", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - } - }, - "node_modules/semver": { - "version": "6.3.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/siginfo": { - "version": "2.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/sonner": { - "version": "2.0.7", - "license": "MIT", - "peerDependencies": { - "react": "^18.0.0 || ^19.0.0 || ^19.0.0-rc", - "react-dom": "^18.0.0 || ^19.0.0 || ^19.0.0-rc" - } - }, - "node_modules/source-map-js": { - "version": "1.2.1", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stackback": { - "version": "0.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/std-env": { - "version": "3.10.0", - "dev": true, - "license": "MIT" - }, - "node_modules/strip-indent": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "min-indent": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/style-mod": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.1.3.tgz", - "integrity": "sha512-i/n8VsZydrugj3Iuzll8+x/00GH2vnYsk1eomD8QiRrSAeW6ItbCQDtfXCeJHd0iwiNagqjQkvpvREEPtW3IoQ==", - "license": "MIT" - }, - "node_modules/sucrase": { - "version": "3.35.1", - "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "tinyglobby": "^0.2.11", - "ts-interface-checker": "^0.1.9" - }, - "bin": { - "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "dev": true, - "license": "MIT" - }, - "node_modules/tailwind-merge": { - "version": "3.4.0", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/dcastil" - } - }, - "node_modules/tailwindcss": { - "version": "3.4.19", - "license": "MIT", - "dependencies": { - "@alloc/quick-lru": "^5.2.0", - "arg": "^5.0.2", - "chokidar": "^3.6.0", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.3.2", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "jiti": "^1.21.7", - "lilconfig": "^3.1.3", - "micromatch": "^4.0.8", - "normalize-path": "^3.0.0", - "object-hash": "^3.0.0", - "picocolors": "^1.1.1", - "postcss": "^8.4.47", - "postcss-import": "^15.1.0", - "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.2 || ^5.0 || ^6.0", - "postcss-nested": "^6.2.0", - "postcss-selector-parser": "^6.1.2", - "resolve": "^1.22.8", - "sucrase": "^3.35.0" - }, - "bin": { - "tailwind": "lib/cli.js", - "tailwindcss": "lib/cli.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/tailwindcss-animate": { - "version": "1.0.7", - "license": "MIT", - "peerDependencies": { - "tailwindcss": ">=3.0.0 || insiders" - } - }, - "node_modules/thenify": { - "version": "3.3.1", - "license": "MIT", - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "license": "MIT", - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/tinybench": { - "version": "2.9.0", - "dev": true, - "license": "MIT" - }, - "node_modules/tinyexec": { - "version": "0.3.2", - "dev": true, - "license": "MIT" - }, - "node_modules/tinyglobby": { - "version": "0.2.15", - "license": "MIT", - "dependencies": { - "fdir": "^6.5.0", - "picomatch": "^4.0.3" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/SuperchupuDev" - } - }, - "node_modules/tinyglobby/node_modules/fdir": { - "version": "6.5.0", - "license": "MIT", - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/tinyglobby/node_modules/picomatch": { - "version": "4.0.3", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/tinypool": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.0.0 || >=20.0.0" - } - }, - "node_modules/tinyrainbow": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/tinyspy": { - "version": "3.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/tldts": { - "version": "6.1.86", - "dev": true, - "license": "MIT", - "dependencies": { - "tldts-core": "^6.1.86" - }, - "bin": { - "tldts": "bin/cli.js" - } - }, - "node_modules/tldts-core": { - "version": "6.1.86", - "dev": true, - "license": "MIT" - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/tough-cookie": { - "version": "5.1.2", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "tldts": "^6.1.32" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/tr46": { - "version": "5.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "punycode": "^2.3.1" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/ts-api-utils": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.4.0.tgz", - "integrity": "sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18.12" - }, - "peerDependencies": { - "typescript": ">=4.8.4" - } - }, - "node_modules/ts-interface-checker": { - "version": "0.1.13", - "license": "Apache-2.0" - }, - "node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/typescript": { - "version": "5.9.3", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/typescript-eslint": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.53.0.tgz", - "integrity": "sha512-xHURCQNxZ1dsWn0sdOaOfCSQG0HKeqSj9OexIxrz6ypU6wHYOdX2I3D2b8s8wFSsSOYJb+6q283cLiLlkEsBYw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/eslint-plugin": "8.53.0", - "@typescript-eslint/parser": "8.53.0", - "@typescript-eslint/typescript-estree": "8.53.0", - "@typescript-eslint/utils": "8.53.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <6.0.0" - } - }, - "node_modules/undici-types": { - "version": "7.16.0", - "dev": true, - "license": "MIT" - }, - "node_modules/update-browserslist-db": { - "version": "1.2.3", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "escalade": "^3.2.0", - "picocolors": "^1.1.1" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/use-callback-ref": { - "version": "1.3.3", - "license": "MIT", - "dependencies": { - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/use-sidecar": { - "version": "1.1.3", - "license": "MIT", - "dependencies": { - "detect-node-es": "^1.1.0", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "license": "MIT" - }, - "node_modules/vite": { - "version": "6.4.1", - "dev": true, - "license": "MIT", - "dependencies": { - "esbuild": "^0.25.0", - "fdir": "^6.4.4", - "picomatch": "^4.0.2", - "postcss": "^8.5.3", - "rollup": "^4.34.9", - "tinyglobby": "^0.2.13" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", - "jiti": ">=1.21.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "sass-embedded": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.16.0", - "tsx": "^4.8.1", - "yaml": "^2.4.2" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "jiti": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - }, - "tsx": { - "optional": true - }, - "yaml": { - "optional": true - } - } - }, - "node_modules/vite-node": { - "version": "2.1.9", - "dev": true, - "license": "MIT", - "dependencies": { - "cac": "^6.7.14", - "debug": "^4.3.7", - "es-module-lexer": "^1.5.4", - "pathe": "^1.1.2", - "vite": "^5.0.0" - }, - "bin": { - "vite-node": "vite-node.mjs" - }, - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/vite-node/node_modules/@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite-node/node_modules/@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite-node/node_modules/@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite-node/node_modules/@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite-node/node_modules/@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite-node/node_modules/@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite-node/node_modules/@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite-node/node_modules/@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite-node/node_modules/@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite-node/node_modules/@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite-node/node_modules/@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite-node/node_modules/@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite-node/node_modules/@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite-node/node_modules/@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite-node/node_modules/@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite-node/node_modules/@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite-node/node_modules/@esbuild/linux-x64": { - "version": "0.21.5", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite-node/node_modules/@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite-node/node_modules/@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite-node/node_modules/@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite-node/node_modules/@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite-node/node_modules/@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite-node/node_modules/@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite-node/node_modules/esbuild": { - "version": "0.21.5", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" - } - }, - "node_modules/vite-node/node_modules/vite": { - "version": "5.4.21", - "dev": true, - "license": "MIT", - "dependencies": { - "esbuild": "^0.21.3", - "postcss": "^8.4.43", - "rollup": "^4.20.0" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "sass-embedded": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } - } - }, - "node_modules/vite/node_modules/fdir": { - "version": "6.5.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/vite/node_modules/picomatch": { - "version": "4.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/vitest": { - "version": "2.1.9", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/expect": "2.1.9", - "@vitest/mocker": "2.1.9", - "@vitest/pretty-format": "^2.1.9", - "@vitest/runner": "2.1.9", - "@vitest/snapshot": "2.1.9", - "@vitest/spy": "2.1.9", - "@vitest/utils": "2.1.9", - "chai": "^5.1.2", - "debug": "^4.3.7", - "expect-type": "^1.1.0", - "magic-string": "^0.30.12", - "pathe": "^1.1.2", - "std-env": "^3.8.0", - "tinybench": "^2.9.0", - "tinyexec": "^0.3.1", - "tinypool": "^1.0.1", - "tinyrainbow": "^1.2.0", - "vite": "^5.0.0", - "vite-node": "2.1.9", - "why-is-node-running": "^2.3.0" - }, - "bin": { - "vitest": "vitest.mjs" - }, - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - }, - "peerDependencies": { - "@edge-runtime/vm": "*", - "@types/node": "^18.0.0 || >=20.0.0", - "@vitest/browser": "2.1.9", - "@vitest/ui": "2.1.9", - "happy-dom": "*", - "jsdom": "*" - }, - "peerDependenciesMeta": { - "@edge-runtime/vm": { - "optional": true - }, - "@types/node": { - "optional": true - }, - "@vitest/browser": { - "optional": true - }, - "@vitest/ui": { - "optional": true - }, - "happy-dom": { - "optional": true - }, - "jsdom": { - "optional": true - } - } - }, - "node_modules/vitest/node_modules/@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vitest/node_modules/@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vitest/node_modules/@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vitest/node_modules/@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vitest/node_modules/@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vitest/node_modules/@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vitest/node_modules/@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vitest/node_modules/@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vitest/node_modules/@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vitest/node_modules/@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vitest/node_modules/@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vitest/node_modules/@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vitest/node_modules/@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vitest/node_modules/@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vitest/node_modules/@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vitest/node_modules/@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vitest/node_modules/@esbuild/linux-x64": { - "version": "0.21.5", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vitest/node_modules/@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vitest/node_modules/@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vitest/node_modules/@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vitest/node_modules/@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vitest/node_modules/@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vitest/node_modules/@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vitest/node_modules/@vitest/mocker": { - "version": "2.1.9", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/spy": "2.1.9", - "estree-walker": "^3.0.3", - "magic-string": "^0.30.12" - }, - "funding": { - "url": "https://opencollective.com/vitest" - }, - "peerDependencies": { - "msw": "^2.4.9", - "vite": "^5.0.0" - }, - "peerDependenciesMeta": { - "msw": { - "optional": true - }, - "vite": { - "optional": true - } - } - }, - "node_modules/vitest/node_modules/esbuild": { - "version": "0.21.5", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" - } - }, - "node_modules/vitest/node_modules/vite": { - "version": "5.4.21", - "dev": true, - "license": "MIT", - "dependencies": { - "esbuild": "^0.21.3", - "postcss": "^8.4.43", - "rollup": "^4.20.0" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "sass-embedded": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } - } - }, - "node_modules/w3c-keyname": { - "version": "2.2.8", - "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", - "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==", - "license": "MIT" - }, - "node_modules/w3c-xmlserializer": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "xml-name-validator": "^5.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/webidl-conversions": { - "version": "7.0.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=12" - } - }, - "node_modules/whatwg-encoding": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "iconv-lite": "0.6.3" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/whatwg-mimetype": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/whatwg-url": { - "version": "14.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "tr46": "^5.1.0", - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/why-is-node-running": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "siginfo": "^2.0.0", - "stackback": "0.0.2" - }, - "bin": { - "why-is-node-running": "cli.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ws": { - "version": "8.19.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xml-name-validator": { - "version": "5.0.0", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18" - } - }, - "node_modules/xmlchars": { - "version": "2.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/yallist": { - "version": "3.1.1", - "dev": true, - "license": "ISC" - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - } -}

OG21b{O~SdlWMGUEI-6AL*Ghv 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 diff --git a/frontend/dist/glyph.svg b/frontend/dist/glyph.svg deleted file mode 100644 index 430323cc..00000000 --- a/frontend/dist/glyph.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/frontend/dist/glyph.xcf b/frontend/dist/glyph.xcf deleted file mode 100644 index a4109d582cf93f23c761975753e825136477ac48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 124059 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 yogJe}FWl?LrK$ - - - - - - - - - RemoteTerm for MeshCore - - - - - - - - - -