jbrowse-plugin-graphgenomeviewer 7.2.0 → 7.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/GbzBaseSyntenyAdapter-FXMGIM7Z.js +2 -0
- package/dist/chunks/{GbzBaseSyntenyAdapter-NB6WBBZH.js.map → GbzBaseSyntenyAdapter-FXMGIM7Z.js.map} +3 -3
- package/dist/chunks/{GraphGenomeView-4O5F5I37.js → GraphGenomeView-WJ3FIDY2.js} +2 -2
- package/dist/chunks/{GraphTrackSettingsDialog-WZEJAF7F.js → GraphTrackSettingsDialog-ZW7ALMDV.js} +2 -2
- package/dist/chunks/{HighlightColorDialog-SRT2FPXP.js → HighlightColorDialog-VBZRUKD5.js} +2 -2
- package/dist/chunks/{LinearGraphDisplay-Z33PVCJL.js → LinearGraphDisplay-SPOPTJEN.js} +2 -2
- package/dist/chunks/MinigraphBubbleAdapter-QCOMFPLL.js +2 -0
- package/dist/chunks/{MinigraphBubbleAdapter-HDLUZ6YF.js.map → MinigraphBubbleAdapter-QCOMFPLL.js.map} +1 -1
- package/dist/chunks/RgfaTabixAdapter-O3NMNRZ2.js +2 -0
- package/dist/chunks/RgfaTabixAdapter-O3NMNRZ2.js.map +7 -0
- package/dist/chunks/WalkTabixSyntenyAdapter-7VDCNSFD.js +2 -0
- package/dist/chunks/WalkTabixSyntenyAdapter-7VDCNSFD.js.map +7 -0
- package/dist/chunks/chunk-2M4XYSLG.js +2 -0
- package/dist/chunks/chunk-2M4XYSLG.js.map +7 -0
- package/dist/chunks/{chunk-JLGPQO5L.js → chunk-2O3YVA2I.js} +2 -2
- package/dist/chunks/{chunk-CWNJR5XB.js → chunk-44CJ2N3N.js} +1 -1
- package/dist/chunks/{chunk-CWNJR5XB.js.map → chunk-44CJ2N3N.js.map} +1 -1
- package/dist/chunks/chunk-6KUHGRHU.js +2 -0
- package/dist/chunks/chunk-6KUHGRHU.js.map +7 -0
- package/dist/chunks/chunk-6MUBJVBG.js +2 -0
- package/dist/chunks/chunk-6MUBJVBG.js.map +7 -0
- package/dist/chunks/{chunk-GUXZESDR.js → chunk-7HWHWPRW.js} +1 -1
- package/dist/chunks/{chunk-GUXZESDR.js.map → chunk-7HWHWPRW.js.map} +1 -1
- package/dist/chunks/chunk-B2EP6FOQ.js +3 -0
- package/dist/chunks/chunk-B2EP6FOQ.js.map +7 -0
- package/dist/chunks/{chunk-44HZPYGC.js → chunk-BXRTG7FU.js} +2 -2
- package/dist/chunks/{chunk-44HZPYGC.js.map → chunk-BXRTG7FU.js.map} +1 -1
- package/dist/chunks/{chunk-HLKZCTQ3.js → chunk-DBPEUVUC.js} +1 -1
- package/dist/chunks/{chunk-HLKZCTQ3.js.map → chunk-DBPEUVUC.js.map} +1 -1
- package/dist/chunks/{chunk-FME624X3.js → chunk-DUR437TH.js} +2 -2
- package/dist/chunks/{chunk-FME624X3.js.map → chunk-DUR437TH.js.map} +1 -1
- package/dist/chunks/{chunk-6WA6WF6A.js → chunk-FIRQAKMX.js} +1 -1
- package/dist/chunks/{chunk-6WA6WF6A.js.map → chunk-FIRQAKMX.js.map} +1 -1
- package/dist/chunks/chunk-JCAZTNYG.js +2 -0
- package/dist/chunks/chunk-JCAZTNYG.js.map +7 -0
- package/dist/chunks/chunk-N74HGPAW.js +3 -0
- package/dist/chunks/chunk-N74HGPAW.js.map +7 -0
- package/dist/chunks/chunk-PEDWEPNK.js +2 -0
- package/dist/chunks/chunk-PEDWEPNK.js.map +7 -0
- package/dist/chunks/chunk-PYQG3JHP.js +3 -0
- package/dist/chunks/chunk-PYQG3JHP.js.map +7 -0
- package/dist/chunks/chunk-RFDSEB2X.js +4 -0
- package/dist/chunks/chunk-RFDSEB2X.js.map +7 -0
- package/dist/chunks/{chunk-O7Y7LYN6.js → chunk-RW775LQN.js} +2 -2
- package/dist/chunks/{chunk-O7Y7LYN6.js.map → chunk-RW775LQN.js.map} +1 -1
- package/dist/chunks/{chunk-N4WBX2OS.js → chunk-VQ77X5QU.js} +2 -2
- package/dist/chunks/{chunk-N4WBX2OS.js.map → chunk-VQ77X5QU.js.map} +1 -1
- package/dist/chunks/{chunk-LXCMWL7B.js → chunk-WUSKVEA6.js} +2 -2
- package/dist/chunks/{chunk-LXCMWL7B.js.map → chunk-WUSKVEA6.js.map} +1 -1
- package/dist/chunks/{chunk-ZNT7TQLN.js → chunk-YKSUKPYY.js} +2 -2
- package/dist/chunks/chunk-YKSUKPYY.js.map +7 -0
- package/dist/chunks/{renderSvg-RRWCAEGF.js → renderSvg-WD6YDV2I.js} +2 -2
- package/dist/jbrowse-plugin-graphgenomeviewer.esm.js +4 -4
- package/dist/jbrowse-plugin-graphgenomeviewer.esm.js.map +4 -4
- package/package.json +3 -3
- package/src/GbzBaseSyntenyAdapter/GbzBaseSyntenyAdapter.test.ts +2 -2
- package/src/GbzBaseSyntenyAdapter/GbzBaseSyntenyAdapter.ts +1 -1
- package/src/GetSubgraph.ts +1 -1
- package/src/GraphGenomeView/genes/genes.test.ts +20 -2
- package/src/GraphGenomeView/legendSections.test.ts +1 -1
- package/src/GraphGenomeView/legendSections.ts +1 -7
- package/src/GraphGenomeView/model.test.ts +1 -2
- package/src/GraphGenomeView/pane/graphViews.ts +24 -35
- package/src/GraphGenomeView/pane/loadActions.ts +4 -3
- package/src/GraphGenomeView/pane/paneBase.ts +1 -1
- package/src/GraphGenomeView/subgraphLoad.test.ts +41 -1
- package/src/GraphGenomeView/walkRowsCut.ts +10 -44
- package/src/RgfaTabixAdapter/RgfaTabixAdapter.test.ts +23 -4
- package/src/RgfaTabixAdapter/RgfaTabixAdapter.ts +2 -3
- package/src/RgfaTabixAdapter/bubbleTier.test.ts +1 -1
- package/src/RgfaTabixAdapter/test_data/walks3_inversion.GRCh38.walks.bed.gz +0 -0
- package/src/RgfaTabixAdapter/test_data/walks3_inversion.GRCh38.walks.bed.gz.tbi +0 -0
- package/src/RgfaTabixAdapter/walkCut.ts +20 -0
- package/src/RgfaTabixAdapter/walkFiles.test.ts +2 -2
- package/src/RgfaTabixAdapter/walkReader.ts +1 -1
- package/src/WalkTabixSyntenyAdapter/WalkTabixSyntenyAdapter.test.ts +77 -1
- package/src/WalkTabixSyntenyAdapter/WalkTabixSyntenyAdapter.ts +2 -2
- package/src/WalkTabixSyntenyAdapter/walkLanes.ts +55 -18
- package/src/version.ts +1 -1
- package/dist/chunks/GbzBaseSyntenyAdapter-NB6WBBZH.js +0 -2
- package/dist/chunks/MinigraphBubbleAdapter-HDLUZ6YF.js +0 -2
- package/dist/chunks/RgfaTabixAdapter-XZRTWQMZ.js +0 -3
- package/dist/chunks/RgfaTabixAdapter-XZRTWQMZ.js.map +0 -7
- package/dist/chunks/WalkTabixSyntenyAdapter-WBHOZLAN.js +0 -2
- package/dist/chunks/WalkTabixSyntenyAdapter-WBHOZLAN.js.map +0 -7
- package/dist/chunks/chunk-BWP3XYKD.js +0 -2
- package/dist/chunks/chunk-BWP3XYKD.js.map +0 -7
- package/dist/chunks/chunk-EDSIYH4H.js +0 -2
- package/dist/chunks/chunk-EDSIYH4H.js.map +0 -7
- package/dist/chunks/chunk-III4GT4G.js +0 -2
- package/dist/chunks/chunk-III4GT4G.js.map +0 -7
- package/dist/chunks/chunk-N5GYTUIL.js +0 -3
- package/dist/chunks/chunk-N5GYTUIL.js.map +0 -7
- package/dist/chunks/chunk-PA4HKAUJ.js +0 -2
- package/dist/chunks/chunk-PA4HKAUJ.js.map +0 -7
- package/dist/chunks/chunk-PFAHNHMM.js +0 -2
- package/dist/chunks/chunk-PFAHNHMM.js.map +0 -7
- package/dist/chunks/chunk-UFQTIWSN.js +0 -4
- package/dist/chunks/chunk-UFQTIWSN.js.map +0 -7
- package/dist/chunks/chunk-VDHDEEMF.js +0 -2
- package/dist/chunks/chunk-VDHDEEMF.js.map +0 -7
- package/dist/chunks/chunk-WGVATZLM.js +0 -3
- package/dist/chunks/chunk-WGVATZLM.js.map +0 -7
- package/dist/chunks/chunk-ZNT7TQLN.js.map +0 -7
- package/src/RgfaTabixAdapter/rgfaBed.test.ts +0 -254
- package/src/RgfaTabixAdapter/rgfaBed.ts +0 -314
- package/src/RgfaTabixAdapter/rgfaCut.ts +0 -139
- package/src/RgfaTabixAdapter/walkRowRuns.test.ts +0 -192
- package/src/RgfaTabixAdapter/walkRowRuns.ts +0 -520
- /package/dist/chunks/{GraphGenomeView-4O5F5I37.js.map → GraphGenomeView-WJ3FIDY2.js.map} +0 -0
- /package/dist/chunks/{GraphTrackSettingsDialog-WZEJAF7F.js.map → GraphTrackSettingsDialog-ZW7ALMDV.js.map} +0 -0
- /package/dist/chunks/{HighlightColorDialog-SRT2FPXP.js.map → HighlightColorDialog-VBZRUKD5.js.map} +0 -0
- /package/dist/chunks/{LinearGraphDisplay-Z33PVCJL.js.map → LinearGraphDisplay-SPOPTJEN.js.map} +0 -0
- /package/dist/chunks/{chunk-JLGPQO5L.js.map → chunk-2O3YVA2I.js.map} +0 -0
- /package/dist/chunks/{renderSvg-RRWCAEGF.js.map → renderSvg-WD6YDV2I.js.map} +0 -0
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{b as wt}from"./chunk-MVVXRZXV.js";import{d as ut,g as ke,h as qA}from"./chunk-GUXZESDR.js";import{a as pt,b as Dt}from"./chunk-OGQ6OQDN.js";import{g as kt}from"./chunk-NDRLCGPC.js";var sA=JBrowseExports["@jbrowse/core/data_adapters/BaseAdapter"],mt=t=>sA!=null&&t in Object(sA)?sA[t]:Object.assign(function(){throw new Error("This JBrowse does not provide '"+t+"' from '@jbrowse/core/data_adapters/BaseAdapter' to plugins: GraphGenomeView was built for a different JBrowse version, so update the plugin or JBrowse")},{jbrowseHostMissing:t});var Ho=mt("BaseFeatureDataAdapter");var yt=mt("cachedSetup");var Ko=sA&&sA.__esModule?sA.default:sA;var aA=class extends Error{constructor(e,A,n,o){super(e),this.regionTooLarge=!0,this.name="NodeLimitError",this.limit=A,this.windowBp=n,this.fitsBp=o}},hA="#";function pe(t){return t.split(hA)[0]}function De(t){let e=t.split(hA);return e.length>=3?e.slice(2).join(hA):e.length===2?e[1]:t}function NA(t){let e=t.split(hA);return e.length>=3?`${e[0]}${hA}${e[1]}`:void 0}function ZA(t,e){return e!==void 0&&(t===e||t.startsWith(e+hA))}var Nt=t=>Number.parseFloat(t.toPrecision(3));function xA(t){let e=Nt(t/1e6);return e>=1?`${e.toLocaleString("en-US")}Mbp`:t>=1e3?`${Nt(t/1e3).toLocaleString("en-US")}Kbp`:`${Math.floor(t)}bp`}var G=t=>(t-(t&1))/2,P=t=>t&1?t-1:t+1;function bA(t,e,A){if(t===".")return A;let n=0,o=!1;for(let i=0;i<=t.length;i++){let r=i<t.length?t.charCodeAt(i):44;if(r===44){let s=o?-n:n,C=s&1;e.id+=(s-C)/2,A.push(e.id*2+C),n=0,o=!1}else r===45?o=!0:n=n*10+(r-48)}return A}function OA(t){return t==="."?[]:t.split(",").map(Number)}function XA(t,e){return t>P(e)?[P(e),P(t)]:[t,e]}function me(t,e){let A=t.lastIndexOf(":");return{refName:t[3]==="Z"?t.slice(5,A):e,start:+t.slice(A+1)}}function xt(t,e,A){let n={};for(let o=e;o<t.length;o++){let i=t[o],r=i.slice(0,2);if(r==="pv")n.prev=me(i,A);else if(r==="nx")n.next=me(i,A);else if(r==="pg"||r==="ng"){let s=r==="pg"?"prevRecord":"nextRecord";n[s]={...n[s],bp:+i.slice(5)}}else if(r==="pr"||r==="nr"){let s=r==="pr"?"prevRecord":"nextRecord";n[s]={bp:0,...n[s],chunk:me(i,A)}}}return n}var ye=class{constructor(){this.handles=[],this.before=[0],this.occurrences=new Map}add(e,A){for(let n=0;n<e.length;n++){let o=e[n],i=this.handles.length;this.handles.push(o),this.before.push(this.before[i]+A[n]);let r=G(o),s=this.occurrences.get(r);s?s.push(i):this.occurrences.set(r,[i])}}bp(e){return this.before[e]}first(e){var A;return(A=this.occurrences.get(G(e)))===null||A===void 0?void 0:A[0]}nearest(e,A){var n;let o;for(let i of(n=this.occurrences.get(G(e)))!==null&&n!==void 0?n:[])(o===void 0||Math.abs(i-A)<=Math.abs(o-A))&&(o=i);return o}reach(e,A,n){var o;let i=this.handles[e]===A,r;for(let s of(o=this.occurrences.get(G(n)))!==null&&o!==void 0?o:[])i&&s>=e&&this.handles[s]===n?(r===void 0||s<r)&&(r=s):!i&&s<=e&&P(this.handles[s])===n&&(r===void 0||s>r)&&(r=s);return r}handleAt(e,A){return A?this.handles[e]:P(this.handles[e])}},q=class extends Error{},Ne=(t,e)=>e?t.exit===-1?-1:P(t.exit):t.entry,Ft=(t,e)=>e?t.entry===-1?-1:P(t.entry):t.exit,PA=(t,e,A)=>e?P(t.interior[t.interior.length-1-A]):t.interior[A];function ui(t){let e=[];if(t!=="."){let A=0,n=0,o=!1,i=0,r=!1;for(let s=0;s<=t.length;s++){let C=s<t.length?t.charCodeAt(s):44;if(C===44){let a=o?-n:n,g=r?i:a,h=g&1;A+=(g-h)/2,e.push(A,h,r?a:0),n=0,o=!1,r=!1}else C===58?(i=o?-n:n,n=0,o=!1,r=!0):C===45?o=!0:n=n*10+(C-48)}}return e}function St(t,e,A,n,o,i){let r=n.indexOf(":"),s=A+ +(r<0?n:n.slice(0,r)),C=r>=0,a=C?+n.slice(r+1):0,g=u=>{let d=e[u];if(!d)throw new q(`route ${u} is not in the chunk`);return d},h=0;if(o.length>0&&Ne(g(o[0]),o[1]===1)===-1){if(!i.route(o[0],o[1]===1))return;h=3}let l=A,Q=t.first(l);if(Q===void 0)throw new q("a walk row starts off its chunk");i.step(l);let c=(u,d)=>{let p=t.handles[Q]===l,k=C?Q+(p?d:-d):t.reach(Q,l,u);if(k===void 0||k<0||k>=t.handles.length)throw new q("a walk row runs off its chunk");k!==Q&&i.stretch(Q,k,p),Q=k,l=t.handleAt(k,p)};for(;h<o.length;h+=3){let u=o[h],d=o[h+1]===1,p=g(u),k=Ne(p,d);if(k===-1)throw new q("an open route after the first choice");if(c(k,o[h+2]),!i.route(u,d))return;let D=Ft(p,d);if(D===-1)return;if(l=D,Q=t.nearest(l,Q),Q===void 0)throw new q("a route lands off its chunk");i.step(l)}if(c(s,a),l!==s)throw new q("a walk row misses its last handle")}function wi(t,e,A,n,o){let i=new Int32Array(o),r=new Uint8Array(o),s=0,C=a=>{if(s>=o)throw new q("a walk row decodes to more steps than it states");i[s]=G(a),r[s++]=a&1};if(St(t,e,+A[9],A[10],n,{step:C,stretch(a,g,h){if(h)for(let l=a+1;l<=g;l++)C(t.handles[l]);else for(let l=a-1;l>=g;l--)C(P(t.handles[l]))},route(a,g){let h=e[a];for(let l=0;l<h.interior.length;l++)C(PA(h,g,l));return!0}}),s!==o)throw new q(`a walk row decodes to ${s} steps, not ${o}`);return{ids:i,rev:r}}function bt(t,e,A,n,o){let i=t.slice(e).find(s=>s.startsWith("SQ:Z:"));if(i===void 0)return;let r=5;for(let s=0;s<A.length;s++){let C=n[s];o.set(A[s],i.slice(r,r+C)),r+=C}}function Rt(t,e,A=!1){var n,o,i;let r=new ye,s=new Map,C=[],a={sequences:new Map,rows:[],nodes:new Map,ends:[],chunk:{path:r,routes:C,walks:[],lengths:s}},g={id:0},h=t.filter(Q=>Q[3]==="ref").sort((Q,c)=>+Q[6]-+c[6]);for(let Q of h){let c=Q[0],u=bA(Q[9],{id:0},[]),d=OA(Q[10]),p=+Q[6];r.add(u,d),A&&bt(Q,11,u.map(G),d,a.sequences);let k=p;for(let D=0;D<u.length;D++){let I=G(u[D]),f=d[D];s.set(I,f),a.nodes.has(I)||a.nodes.set(I,{refName:Q[4],start:k,end:k+f,rank:0}),k+=f}a.ends.push({name:Q[4],fragStart:+Q[5],piece:+Q[7],first:u[0],last:u.at(-1)}),(e===void 0||e(Q[4]))&&a.rows.push({chunkStart:+Q[1],name:Q[4],fragStart:+Q[5],hapOffset:p,piece:+Q[7],n:u.length,steps:{ids:Int32Array.from(u,G),rev:Uint8Array.from(u,D=>D&1)},...xt(Q,11,c)})}for(let Q of t)if(Q[3]==="nodes"){let c=OA(Q[4]),u=OA(Q[5]),d=0;for(let p=0;p<c.length;p++)d+=c[p],c[p]=d,s.set(d,u[p]);A&&bt(Q,6,c,u,a.sequences)}else if(Q[3]==="route"){let c=bA(Q[4],g,[]),u=bA(Q[5],g,[]),d=bA(Q[6],g,[]);C.push({entry:(n=c[0])!==null&&n!==void 0?n:-1,interior:u,exit:(o=d[0])!==null&&o!==void 0?o:-1})}let l=Q=>{let c=C[Q];if(!c)throw new q(`route ${Q} is not in the chunk`);return c};for(let Q of t){if(Q[3]!=="walk")continue;let c=ui(Q[11]);a.chunk.walks.push({cols:Q,choices:c});let u=Q[4],d=+Q[9],p=Q[10],k=p.indexOf(":"),D=d,I=d+ +(k<0?p:p.slice(0,k));if(c.length>0){let f=l(c[0]),E=c[1]===1;Ne(f,E)===-1&&(D=PA(f,E,0));let B=c.length-3,w=l(c[B]),y=c[B+1]===1;Ft(w,y)===-1&&(I=PA(w,y,w.interior.length-1))}if(a.ends.push({name:u,fragStart:+Q[5],piece:+Q[7],first:D,last:I}),e===void 0||e(u)){let f=+Q[8];for(let E=0;E<c.length;E+=3)for(let B of l(c[E]).interior){let w=G(B);if(!a.nodes.has(w)){let y=(i=s.get(w))!==null&&i!==void 0?i:0;a.nodes.set(w,{refName:u,start:0,end:y,rank:1})}}a.rows.push({chunkStart:+Q[1],name:u,fragStart:+Q[5],hapOffset:+Q[6],piece:+Q[7],n:f,steps:wi(r,C,Q,c,f),...xt(Q,12,Q[0])})}}return a}function vt(t,e,A,n){let o=new Map;for(let{path:i,routes:r,walks:s,lengths:C}of t){let a=i.handles;for(let u=1;u<a.length;u++)e.has(G(a[u-1]))&&e.has(G(a[u]))&&n(...XA(a[u-1],a[u]));let g=new Uint8Array(r.length);for(let u=0;u<r.length;u++){let{entry:d,interior:p,exit:k}=r[u],D=!1,I=d;for(let f of p){let E=e.has(G(f));D||(D=E),E&&I!==-1&&e.has(G(I))&&n(...XA(I,f)),I=f}I!==-1&&k!==-1&&e.has(G(I))&&e.has(G(k))&&n(...XA(I,k)),g[u]=D?1:0}let h=u=>{var d;return(d=C.get(G(u)))!==null&&d!==void 0?d:0},l=new Float64Array(r.length).fill(-1),Q=u=>(l[u]<0&&(l[u]=r[u].interior.reduce((d,p)=>d+h(p),0)),l[u]),c=new Uint8Array(r.length);for(let{cols:u,choices:d}of s){let p=0;for(let I=0;I<d.length;I+=3){let f=d[I];g[f]&&!c[f]&&p++}if(p===0)continue;let k=u[4],D=+u[6];St(i,r,+u[9],u[10],d,{step(I){D+=h(I)},stretch(I,f,E){D+=E?i.bp(f+1)-i.bp(I+1):i.bp(I)-i.bp(f)},route(I,f){if(!g[I]||c[I])return D+=Q(I),!0;c[I]=1;let E=r[I];for(let B=0;B<E.interior.length;B++){let w=PA(E,f,B),y=G(w),m=h(w);if(e.has(y)){let N=o.get(y);(!N||k<N.refName||k===N.refName&&D<N.start)&&o.set(y,{refName:k,start:D,end:D+m,rank:1})}D+=m}return p--,p>0}})}}for(let[i,r]of o)A(i,r)}function ki(t){let e=[];for(let A of t){if(A[3]!=="ref")continue;let n=bA(A[9],{id:0},[]),o=OA(A[10]),i=+A[6];for(let r=0;r<n.length;r++){let s=o[r];e.push({id:G(n[r]),refName:A[4],start:i,end:i+s,rank:0}),i+=s}}return e}function Jt(t){let e=new Map;for(let n of t){let o=`${n.name} ${n.fragStart}`,i=e.get(o);i||(i=new Map,e.set(o,i)),i.set(n.piece,n)}let A=[];for(let n of e.values())for(let[o,i]of n){let r=n.get(o+1);r&&A.push(XA(i.last,r.first))}return A}var Gt=["elsewhere","break","end"];function xe(t,e){let A=new RegExp(`(?:^|\\t)${e}:i:(\\d+)`).exec(t);return A?+A[1]:void 0}function be(t){var e,A,n;let o={references:[],haplotypes:[]};for(let i of t){let[r,s=""]=i.split(" ");r==="#reference"?o.references.push(s):r==="#haplotype"?o.haplotypes.push(s):((e=o.format)!==null&&e!==void 0||(o.format=xe(i,"format")),(A=o.chunk)!==null&&A!==void 0||(o.chunk=xe(i,"chunk")),(n=o.maxNode)!==null&&n!==void 0||(o.maxNode=xe(i,"maxnode")))}return o}function Fe(t,e){return t===void 0?1:Math.max(1,Math.ceil(t/e))}function zA(t,e,A=1){return Math.max(0,(Math.floor(t/e)-A)*e)}function Mt(t,e){return t===void 0||t.length===0?void 0:A=>ZA(A,e)||t.some(n=>ZA(A,n))}function pi(t,e){var A;return Mt(t,(A=NA(e))!==null&&A!==void 0?A:e)}function jA(t){let e=new Map;for(let n of t){let o=`${n.name} ${n.fragStart}`,i=e.get(o);i?i.push(n):e.set(o,[n])}let A=[];for(let n of e.values()){n.sort((i,r)=>i.piece-r.piece);let o=0;for(let i=1;i<=n.length;i++)(i===n.length||n[i].piece!==n[i-1].piece+1)&&(A.push(Di(n.slice(o,i))),o=i)}return A}function Di(t){let e=t.reduce((s,C)=>s+C.n,0),A=new Int32Array(e),n=new Uint8Array(e),o=0;for(let s of t)A.set(s.steps.ids,o),n.set(s.steps.rev,o),o+=s.n;let i=t[0],r=t.at(-1);return{name:i.name,fragStart:i.fragStart,hapOffset:i.hapOffset,firstPiece:i.piece,ids:A,rev:n,prev:i.prev,next:r.next,prevRecord:i.prevRecord,nextRecord:r.nextRecord}}function WA(t,e,A){let n=I=>{var f;return((f=e.get(I))===null||f===void 0?void 0:f.onWindow)===!0},o=I=>{let f=e.get(I);return f?.rank===0?f:void 0},i=new Map,r=I=>{I&&i.set(`${I.refName}:${I.start}`,I)},s=(I,f,E)=>{let{ids:B}=I,w=f+E;for(;w>=0&&w<B.length&&o(B[w])===void 0;)w+=E;if(w<0||w>=B.length)return r(E<0?I.prev:I.next),w-E;let y=o(B[f]),m=o(B[w]);return m.refName!==A?w-E:w===f+E&&(m.start===y.end||m.end===y.start)?f:w},C=1/0,a=-1/0,g=[];for(let I of t){let{ids:f}=I,E=-1,B=-1;for(let w=0;w<f.length;w++)n(f[w])&&(E<0&&(E=w),B=w);if(E>=0){if(I.name!==A){E=s(I,E,-1),B=s(I,B,1);for(let w of[E,B]){let y=o(f[w]);y&&(C=Math.min(C,y.start),a=Math.max(a,y.end))}}g.push({run:I,first:E,last:B})}}let h=I=>{let f=o(I);return n(I)||f?.refName===A&&f.end>C&&f.start<a},l=new Set;for(let[I,f]of e)f.onWindow&&l.add(I);for(let I of g){let{ids:f}=I.run;if(I.run.name===A){for(;I.first>0&&h(f[I.first-1]);)I.first--;for(;I.last<f.length-1&&h(f[I.last+1]);)I.last++}for(let E=I.first;E<=I.last;E++)l.add(f[E])}let Q=I=>{let f=e.get(I);return f===void 0?0:f.end-f.start},c=(I,f,E)=>{let B=0;for(let w=f;w<E;w++)B+=Q(I[w]);return B},u=new Map;for(let I of t){let f=`${I.name} ${I.fragStart}`,E=u.get(f);E?E.push(I):u.set(f,[I])}let d=new Map;for(let I of u.values())I.sort((f,E)=>f.firstPiece-E.firstPiece),I.forEach((f,E)=>{d.set(f,[I[E-1],I[E+1]])});let p=I=>I.hapOffset+c(I.ids,0,I.ids.length),k=(I,f,E)=>{var B;let w=E>0?{trimmed:E}:{},y=f?I.next:I.prev;if(y){let N=(B=d.get(I))===null||B===void 0?void 0:B[f?1:0];return N?{kind:"elsewhere",chunk:y,bp:f?N.hapOffset-p(I):I.hapOffset-p(N),...w}:{kind:"elsewhere",chunk:y,...w}}let m=f?I.nextRecord:I.prevRecord;return m?{kind:"break",...m,...w}:{kind:"end",...w}},D=[];for(let{run:I,first:f,last:E}of g){let{ids:B,rev:w}=I,y=f,m=E;for(;y>0&&l.has(B[y-1]);)y--;for(;m<B.length-1&&l.has(B[m+1]);)m++;let N=I.hapOffset+c(B,0,y),x=N+c(B,y,m+1);D.push({name:I.name,fragStart:I.fragStart,hapStart:N,hapEnd:x,ids:B.subarray(y,m+1),rev:w.subarray(y,m+1),before:k(I,!1,N-I.hapOffset),after:k(I,!0,p(I)-x)})}return{kept:l,fragments:D,open:[...i.values()]}}function Lt(t){let e=[],A=new Map,n={kinds:new Uint8Array(t.length),kindNames:[...Gt],bp:new Float64Array(t.length).fill(Number.NaN),trimmed:new Float64Array(t.length),chunkRefs:new Int32Array(t.length).fill(-1),chunkStarts:new Float64Array(t.length).fill(Number.NaN),chunkRefNames:e};return t.forEach((o,i)=>{var r;if(n.kinds[i]=Gt.indexOf(o.kind),n.trimmed[i]=(r=o.trimmed)!==null&&r!==void 0?r:0,"bp"in o&&o.bp!==void 0&&(n.bp[i]=o.bp),"chunk"in o&&o.chunk){let{refName:s,start:C}=o.chunk,a=A.get(s);a===void 0&&(a=e.length,A.set(s,a),e.push(s)),n.chunkRefs[i]=a,n.chunkStarts[i]=C}}),n}var FA=class{constructor(e){this.nodes=new Map,this.sequences=new Map,this.links=[],this.chunks=[],this.window=e}placeNode(e,A){if(this.nodes.has(e))return;let{window:n}=this;this.nodes.set(e,{...A,onWindow:A.rank===0&&A.refName===n.refName&&A.end>n.start-n.context&&A.start<n.end+n.context})}addLinkEnds(e,A){this.links.push(e,A)}addChunk(e){this.chunks.push(e)}addSequences(e){if(this.window.sequences)for(let[A,n]of e)this.sequences.set(A,n)}tables(e,A){this.chunks.length>0&&vt(this.chunks,e,(E,B)=>{let w=this.nodes.get(E);w&&this.nodes.set(E,{...w,...B})},(E,B)=>{this.links.push(E,B)});let n=[];for(let E of e){let B=this.nodes.get(E);B&&n.push({...B,id:E})}n.sort((E,B)=>E.refName<B.refName?-1:E.refName>B.refName?1:E.start-B.start||E.id-B.id);let o=new Map,i=[],r=[],s=new Map,C=new Int32Array(n.length),a=new Int32Array(n.length),g=new Float64Array(n.length),h=new Int32Array(n.length);n.forEach(({id:E,refName:B,start:w,end:y,rank:m},N)=>{o.set(E,N),i.push(String(E));let x=s.get(B);x===void 0&&(x=r.length,s.set(B,x),r.push(B)),C[N]=y-w,a[N]=x,g[N]=w,h[N]=m});let l=E=>{let B=o.get(E);return B===void 0&&(B=i.length,o.set(E,B),i.push(String(E))),B},Q=new Map;for(let E=0;E<this.links.length;E+=2){let B=this.links[E],w=this.links[E+1],y=Math.floor(B/2),m=Math.floor(w/2);e.has(y)&&e.has(m)&&Q.set(`${y} ${B%2?"-":"+"} ${m} ${w%2?"-":"+"}`,E)}let c=[...Q.keys()].sort(),u=new Int32Array(c.length),d=new Int32Array(c.length),p=new Uint8Array(c.length);c.forEach((E,B)=>{let w=Q.get(E),y=this.links[w],m=this.links[w+1];u[B]=l(Math.floor(y/2)),d[B]=l(Math.floor(m/2)),p[B]=y%2|m%2<<1});let k=this.referenceFirst(A),D=new Int32Array(k.length+1);k.forEach(({ids:E},B)=>{D[B+1]=D[B]+E.length});let I=new Int32Array(D[k.length]),f=new Uint8Array(I.length);return k.forEach(({ids:E,rev:B},w)=>{let y=D[w];for(let m=0;m<E.length;m++)I[y+m]=l(E[m]);f.set(B,y)}),{nodes:{names:i,lengths:C,refs:a,starts:g,ranks:h,refNames:r},links:{from:u,to:d,strands:p},walks:{names:k.map(E=>E.name),starts:Float64Array.from(k,E=>E.hapStart),ends:Float64Array.from(k,E=>E.hapEnd),offsets:D,steps:I,reversed:f,before:Lt(k.map(E=>E.before)),after:Lt(k.map(E=>E.after))}}}referenceFirst(e){let{refName:A}=this.window;return[...e].sort((n,o)=>+(o.name===A)-+(n.name===A)||(n.name<o.name?-1:n.name>o.name?1:n.hapStart-o.hapStart))}},Se={steps:"the step budget",bytes:"a byte budget of"};function Re(t,e,A,n,o,i,r=Se){var s;let C=0,a=new Map,g=new Set;for(let d of t)C+=d.n,a.set(d.chunkStart,((s=a.get(d.chunkStart))!==null&&s!==void 0?s:0)+d.n),g.add(d.name);let h=e*A;if(C<=h)return;let l=n.end-n.start,Q=0,c=0;for(let d of[...a.keys()].sort((p,k)=>p-k)){if(Q+=a.get(d),Q>h)break;c=Math.max(c,d+o-n.start)}let u=!i&&g.size>2&&2*C/g.size<=h;return new aA(c>0?`Zoom in to about ${xA(c)}${u?", or choose fewer haplotypes,":""} to see the graph`:`Too many haplotype steps here to draw ${i?"these haplotypes":"every haplotype"} (${Q.toLocaleString()} steps read, over ${A} \xD7 ${r.steps} of ${e.toLocaleString()}); choose fewer haplotypes`,h,l,Math.max(c,1))}function ve(t,e,A,n){let o=t.reduce((s,C)=>s+C.ids.length,0);if(o<=e)return;let i=A.end-A.start,r=Math.max(1,Math.floor(i*e/o));return new aA(`Zoom in to about ${xA(r)}${n?"":", or choose fewer haplotypes,"} to see the graph`,e,i,r)}async function Je(t,e,A,n,o=Se){let i=await t(A.end);if(i<=e)return;let r=0,s;for(let a=Math.floor(A.start/n)*n;a<A.end;a+=n){let g=await t(a+1);if(s??(s=g),g>e)break;r=a+n-A.start}let C=A.end-A.start;return new aA(r>0?`Zoom in to about ${xA(r)} to see the graph`:`Too much graph here to fetch (${Ut(s??i)} against ${o.bytes} ${Ut(e)})`,e,C,Math.max(r,1))}var Ut=t=>`${(t/1e6).toFixed(1)} MB`;function Ge(t,e){return`${t} ${e}`}function SA(t){let e=new Map;for(let A of t){e.set(A,A);let n=pe(A);if(n!==A){let o=De(A);e.set(Ge(n,o),A);let i=NA(A);i!==void 0&&e.set(Ge(i,o),A)}}return e}function RA(t,e,A){var n;return(n=t.get(Ge(e,A)))!==null&&n!==void 0?n:t.get(A)}var mi=8,yi=3,Ni=4,xi=1e3,bi={stepBudget:4e6,byteBudget:8e6},VA=class extends Error{constructor(){super(...arguments),this.name="WalkFormatError"}};function dA(t,e,A){if(!Number.isFinite(e)||!Number.isFinite(A))throw new Error(`${t}:${e}-${A} is not a finite range to query the graph's index for`)}function _t(t,e){return e?(e.throwIfAborted(),new Promise((A,n)=>{let o=()=>{n(e.reason instanceof Error?e.reason:new Error(String(e.reason)))};e.addEventListener("abort",o,{once:!0}),t.then(A,n).finally(()=>{e.removeEventListener("abort",o)})})):t}var Le=class{constructor(e){this.walks=e}header(e={}){if(!this.headerRead){let A=this.walks.getHeaderLines().then(n=>{var o,i;let r=be(n);if(r.format!==3)throw new VA(`This walk file is format ${(o=r.format)!==null&&o!==void 0?o:1}; @jbrowse/graph-walks reads format 3, so rebuild it with gfa-to-tabix 1.1 or later`);let s=(i=r.chunk)!==null&&i!==void 0?i:65536;return{...r,chunk:s,lookback:Fe(r.maxNode,s)}});A.catch(()=>{this.headerRead===A&&(this.headerRead=void 0)}),this.headerRead=A}return _t(this.headerRead,e.signal)}referenceSequences(e={}){return this.walks.getReferenceSequenceNames(e)}async sequenceFor(e,A,n={}){if(!this.lookupRead){let i=this.walks.getReferenceSequenceNames().then(SA);i.catch(()=>{this.lookupRead===i&&(this.lookupRead=void 0)}),this.lookupRead=i}let o=await _t(this.lookupRead,n.signal);return RA(o,e,A)}async queryStart(e,A={}){let{chunk:n,lookback:o}=await this.header(A);return zA(e,n,o)}async cut(e,A,n={}){var o;let{signal:i,keep:r,context:s=xi,stepBudget:C=1/0,byteBudget:a=1/0,links:g=!0}=n,{chunk:h,lookback:l}=await this.header({signal:i}),Q=zA(A.start,h,l),c=(o=this.walks.bytesForRegions)===null||o===void 0?void 0:o.bind(this.walks),u=Number.isFinite(a)&&c!==void 0,d=async N=>u?c(N.map(x=>({refName:e,...x})),{signal:i}):0,p=u?await Je(async N=>(dA(e,Q,N),d([{start:Q,end:N}])),a,A,h,n.budgetNames):void 0;if(p)throw p;let k=new AbortController,D=()=>{k.abort(i?.reason)};i?.throwIfAborted(),i?.addEventListener("abort",D,{once:!0});let I=[],f,E=new FA({refName:e,start:A.start,end:A.end,context:s,sequences:n.sequences}),B=new Set,w=[],y=async(N,x)=>{dA(e,N,x);let S=new Map;await this.walks.getLines(e,N,x,{signal:k.signal,lineCallback:F=>{let L=F.split(" "),J=+L[1],U=S.get(J);U?U.push(L):S.set(J,[L])}});for(let[F,L]of S){if(B.has(F))continue;B.add(F);let J=Rt(L,r,n.sequences);I.push(...J.rows);for(let[U,oA]of J.nodes)E.placeNode(U,oA);E.addSequences(J.sequences),E.addChunk(J.chunk),w.push(...J.ends)}if(g)for(let[F,L]of Jt(w))E.addLinkEnds(F,L)};try{await y(Q,A.end);let N=Re(I,C,mi,A,h,r!==void 0,n.budgetNames);if(N)throw N;let x=Q,S=Math.floor((A.end-1)/h)*h,F=Ni*h,[L,J]=[x-F,S+F];f=WA(jA(I),E.nodes,e);let U=await d([{start:Q,end:A.end}]);for(let oA=0;oA<yi;oA++){let X=f.open.filter(v=>v.refName===e&&v.start>=L&&v.start<=J).map(v=>v.start),rA=[{start:Math.min(x,...X),end:x},{start:S+h,end:Math.max(S,...X)+1}].filter(v=>v.end>v.start);if(rA.length===0||(U+=await d(rA),U>a))break;x=Math.min(x,...X),S=Math.max(S,...X),await Promise.all(rA.map(({start:v,end:lA})=>y(v,lA))),f=WA(jA(I),E.nodes,e)}}catch(N){throw k.abort(),N}finally{i?.removeEventListener("abort",D)}let m=ve(f.fragments,C,A,r!==void 0);if(m)throw m;return{graph:E,...f}}};async function ar(t,e,A,n,o){return dA(e,A,n),t.getLines(e,A,n,o)}async function Yt(t,e,A){for(let{refName:n,start:o,end:i}of e)dA(n,o,i);return t.bytesForRegions(e,A)}var Ue=0;var Me=2;var vA=4;var AA=0,JA=1,Ht=2;var Kt=-5;function Fi(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function Tt(t){for(var e=Array.prototype.slice.call(arguments,1);e.length;){var A=e.shift();if(A){if(typeof A!="object")throw new TypeError(A+"must be non-object");for(var n in A)Fi(A,n)&&(t[n]=A[n])}}return t}function Ae(t,e){return t.length===e?t:t.subarray?t.subarray(0,e):(t.length=e,t)}var GA={arraySet:function(t,e,A,n,o){if(e.subarray&&t.subarray){t.set(e.subarray(A,A+n),o);return}for(var i=0;i<n;i++)t[o+i]=e[A+i]},flattenChunks:function(t){var e,A,n,o,i,r;for(n=0,e=0,A=t.length;e<A;e++)n+=t[e].length;for(r=new Uint8Array(n),o=0,e=0,A=t.length;e<A;e++)i=t[e],r.set(i,o),o+=i.length;return r},Buf8:function(t){return new Uint8Array(t)},Buf16:function(t){return new Uint16Array(t)},Buf32:function(t){return new Int32Array(t)}},LA={arraySet:function(t,e,A,n,o){for(var i=0;i<n;i++)t[o+i]=e[A+i]},flattenChunks:function(t){return[].concat.apply([],t)},Buf8:function(t){return new Array(t)},Buf16:function(t){return new Array(t)},Buf32:function(t){return new Array(t)}},uA=()=>{let t=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Int32Array<"u";return uA=()=>t,t},Z=(t,e,A,n,o)=>(Z=uA()?GA.arraySet:LA.arraySet,Z(t,e,A,n,o)),$A=t=>($A=uA()?GA.flattenChunks:LA.flattenChunks,$A(t)),z=t=>(z=uA()?GA.Buf8:LA.Buf8,z(t)),eA=t=>(eA=uA()?GA.Buf16:LA.Buf16,eA(t)),gA=t=>(gA=uA()?GA.Buf32:LA.Buf32,gA(t));var qt=function(){let t=!0;try{String.fromCharCode.apply(null,[0])}catch{t=!1}return qt=()=>t,t},Zt=function(){let t=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{t=!1}return Zt=()=>t,t},_e=function(t){for(var e=z(256),A=0;A<256;A++)e[A]=A>=252?6:A>=248?5:A>=240?4:A>=224?3:A>=192?2:1;return e[254]=e[254]=1,_e=n=>e[n],e[t]};function Ye(t){var e,A,n,o,i,r=t.length,s=0;for(o=0;o<r;o++)A=t.charCodeAt(o),(A&64512)===55296&&o+1<r&&(n=t.charCodeAt(o+1),(n&64512)===56320&&(A=65536+(A-55296<<10)+(n-56320),o++)),s+=A<128?1:A<2048?2:A<65536?3:4;for(e=new Uint8Array(s),i=0,o=0;i<s;o++)A=t.charCodeAt(o),(A&64512)===55296&&o+1<r&&(n=t.charCodeAt(o+1),(n&64512)===56320&&(A=65536+(A-55296<<10)+(n-56320),o++)),A<128?e[i++]=A:A<2048?(e[i++]=192|A>>>6,e[i++]=128|A&63):A<65536?(e[i++]=224|A>>>12,e[i++]=128|A>>>6&63,e[i++]=128|A&63):(e[i++]=240|A>>>18,e[i++]=128|A>>>12&63,e[i++]=128|A>>>6&63,e[i++]=128|A&63);return e}function Si(t,e){if(e<65534&&(t.subarray&&Zt()||!t.subarray&&qt()))return String.fromCharCode.apply(null,Ae(t,e));for(var A="",n=0;n<e;n++)A+=String.fromCharCode(t[n]);return A}function Ot(t){for(var e=new Uint8Array(t.length),A=0,n=e.length;A<n;A++)e[A]=t.charCodeAt(A);return e}function Xt(t,e){var A,n,o,i,r=e||t.length,s=new Array(r*2);for(n=0,A=0;A<r;){if(o=t[A++],o<128){s[n++]=o;continue}if(i=_e(o),i>4){s[n++]=65533,A+=i-1;continue}for(o&=i===2?31:i===3?15:7;i>1&&A<r;)o=o<<6|t[A++]&63,i--;if(i>1){s[n++]=65533;continue}o<65536?s[n++]=o:(o-=65536,s[n++]=55296|o>>10&1023,s[n++]=56320|o&1023)}return Si(s,n)}function Pt(t,e){var A;for(e=e||t.length,e>t.length&&(e=t.length),A=e-1;A>=0&&(t[A]&192)===128;)A--;return A<0||A===0?e:A+_e(t[A])>e?A:e}function He(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}function UA(t,e,A,n){for(var o=t&65535|0,i=t>>>16&65535|0,r=0;A!==0;){r=A>2e3?2e3:A,A-=r;do o=o+e[n++]|0,i=i+o|0;while(--r);o%=65521,i%=65521}return o|i<<16|0}function Ri(){for(var t,e=[],A=0;A<256;A++){t=A;for(var n=0;n<8;n++)t=t&1?3988292384^t>>>1:t>>>1;e[A]=t}return e}var zt=function(){let t=Ri();return zt=()=>t,t};function _(t,e,A,n){var o=zt(),i=n+A;t^=-1;for(var r=n;r<i;r++)t=t>>>8^o[(t^e[r])&255];return t^-1}var ee=30,vi=12;function Ke(t,e){var A,n,o,i,r,s,C,a,g,h,l,Q,c,u,d,p,k,D,I,f,E,B,w,y,m;A=t.state,n=t.next_in,y=t.input,o=n+(t.avail_in-5),i=t.next_out,m=t.output,r=i-(e-t.avail_out),s=i+(t.avail_out-257),C=A.dmax,a=A.wsize,g=A.whave,h=A.wnext,l=A.window,Q=A.hold,c=A.bits,u=A.lencode,d=A.distcode,p=(1<<A.lenbits)-1,k=(1<<A.distbits)-1;A:do{c<15&&(Q+=y[n++]<<c,c+=8,Q+=y[n++]<<c,c+=8),D=u[Q&p];e:for(;;){if(I=D>>>24,Q>>>=I,c-=I,I=D>>>16&255,I===0)m[i++]=D&65535;else if(I&16){f=D&65535,I&=15,I&&(c<I&&(Q+=y[n++]<<c,c+=8),f+=Q&(1<<I)-1,Q>>>=I,c-=I),c<15&&(Q+=y[n++]<<c,c+=8,Q+=y[n++]<<c,c+=8),D=d[Q&k];t:for(;;){if(I=D>>>24,Q>>>=I,c-=I,I=D>>>16&255,I&16){if(E=D&65535,I&=15,c<I&&(Q+=y[n++]<<c,c+=8,c<I&&(Q+=y[n++]<<c,c+=8)),E+=Q&(1<<I)-1,E>C){t.msg="invalid distance too far back",A.mode=ee;break A}if(Q>>>=I,c-=I,I=i-r,E>I){if(I=E-I,I>g&&A.sane){t.msg="invalid distance too far back",A.mode=ee;break A}if(B=0,w=l,h===0){if(B+=a-I,I<f){f-=I;do m[i++]=l[B++];while(--I);B=i-E,w=m}}else if(h<I){if(B+=a+h-I,I-=h,I<f){f-=I;do m[i++]=l[B++];while(--I);if(B=0,h<f){I=h,f-=I;do m[i++]=l[B++];while(--I);B=i-E,w=m}}}else if(B+=h-I,I<f){f-=I;do m[i++]=l[B++];while(--I);B=i-E,w=m}for(;f>2;)m[i++]=w[B++],m[i++]=w[B++],m[i++]=w[B++],f-=3;f&&(m[i++]=w[B++],f>1&&(m[i++]=w[B++]))}else{B=i-E;do m[i++]=m[B++],m[i++]=m[B++],m[i++]=m[B++],f-=3;while(f>2);f&&(m[i++]=m[B++],f>1&&(m[i++]=m[B++]))}}else if((I&64)===0){D=d[(D&65535)+(Q&(1<<I)-1)];continue t}else{t.msg="invalid distance code",A.mode=ee;break A}break}}else if((I&64)===0){D=u[(D&65535)+(Q&(1<<I)-1)];continue e}else if(I&32){A.mode=vi;break A}else{t.msg="invalid literal/length code",A.mode=ee;break A}break}}while(n<o&&i<s);f=c>>3,n-=f,c-=f<<3,Q&=(1<<c)-1,t.next_in=n,t.next_out=i,t.avail_in=n<o?5+(o-n):5-(n-o),t.avail_out=i<s?257+(s-i):257-(i-s),A.hold=Q,A.bits=c}var wA=15,jt=852,Wt=592,Vt=0,Te=1,$t=2,Ji=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],Gi=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],Li=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],Ui=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];function IA(t,e,A,n,o,i,r,s){var C=s.bits,a=0,g=0,h=0,l=0,Q=0,c=0,u=0,d=0,p=0,k=0,D,I,f,E,B,w=null,y=0,m,N=eA(wA+1),x=eA(wA+1),S=null,F=0,L,J,U;for(a=0;a<=wA;a++)N[a]=0;for(g=0;g<n;g++)N[e[A+g]]++;for(Q=C,l=wA;l>=1&&N[l]===0;l--);if(Q>l&&(Q=l),l===0)return o[i++]=1<<24|64<<16|0,o[i++]=1<<24|64<<16|0,s.bits=1,0;for(h=1;h<l&&N[h]===0;h++);for(Q<h&&(Q=h),d=1,a=1;a<=wA;a++)if(d<<=1,d-=N[a],d<0)return-1;if(d>0&&(t===Vt||l!==1))return-1;for(x[1]=0,a=1;a<wA;a++)x[a+1]=x[a]+N[a];for(g=0;g<n;g++)e[A+g]!==0&&(r[x[e[A+g]]++]=g);if(t===Vt?(w=S=r,m=19):t===Te?(w=Ji,y-=257,S=Gi,F-=257,m=256):(w=Li,S=Ui,m=-1),k=0,g=0,a=h,B=i,c=Q,u=0,f=-1,p=1<<Q,E=p-1,t===Te&&p>jt||t===$t&&p>Wt)return 1;for(;;){L=a-u,r[g]<m?(J=0,U=r[g]):r[g]>m?(J=S[F+r[g]],U=w[y+r[g]]):(J=96,U=0),D=1<<a-u,I=1<<c,h=I;do I-=D,o[B+(k>>u)+I]=L<<24|J<<16|U|0;while(I!==0);for(D=1<<a-1;k&D;)D>>=1;if(D!==0?(k&=D-1,k+=D):k=0,g++,--N[a]===0){if(a===l)break;a=e[A+r[g]]}if(a>Q&&(k&E)!==f){for(u===0&&(u=Q),B+=h,c=a-u,d=1<<c;c+u<l&&(d-=N[c+u],!(d<=0));)c++,d<<=1;if(p+=1<<c,t===Te&&p>jt||t===$t&&p>Wt)return 1;f=k&E,o[f]=Q<<24|c<<16|B-i|0}}return k!==0&&(o[B+k]=a-u<<24|64<<16|0),s.bits=Q,0}var Mi=0,yn=1,Nn=2,An=4,_i=5,te=6,QA=0,Yi=1,Hi=2,Y=-2,xn=-3,ze=-4,Ki=-5,en=8,bn=1,tn=2,nn=3,on=4,rn=5,sn=6,an=7,gn=8,In=9,Qn=10,oe=11,j=12,qe=13,Cn=14,Ze=15,Bn=16,En=17,cn=18,fn=19,ne=20,ie=21,ln=22,hn=23,dn=24,un=25,wn=26,Oe=27,kn=28,pn=29,R=30,je=31,Ti=32,qi=852,Zi=592;function Dn(t){return(t>>>24&255)+(t>>>8&65280)+((t&65280)<<8)+((t&255)<<24)}function Oi(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=eA(320),this.work=eA(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function Xi(t){var e;return!t||!t.state?Y:(e=t.state,t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=e.wrap&1),e.mode=bn,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=gA(qi),e.distcode=e.distdyn=gA(Zi),e.sane=1,e.back=-1,QA)}function Pi(t){var e;return!t||!t.state?Y:(e=t.state,e.wsize=0,e.whave=0,e.wnext=0,Xi(t))}function zi(t,e){var A,n;return!t||!t.state||(n=t.state,e<0?(A=0,e=-e):(A=(e>>4)+1,e<48&&(e&=15)),e&&(e<8||e>15))?Y:(n.window!==null&&n.wbits!==e&&(n.window=null),n.wrap=A,n.wbits=e,Pi(t))}function Fn(t,e){var A,n;return t?(n=new Oi,t.state=n,n.window=null,A=zi(t,e),A!==QA&&(t.state=null),A):Y}var mn=!0,Xe,Pe;function ji(t){if(mn){var e;for(Xe=gA(512),Pe=gA(32),e=0;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(IA(yn,t.lens,0,288,Xe,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;IA(Nn,t.lens,0,32,Pe,0,t.work,{bits:5}),mn=!1}t.lencode=Xe,t.lenbits=9,t.distcode=Pe,t.distbits=5}function Sn(t,e,A,n){var o,i=t.state;return i.window===null&&(i.wsize=1<<i.wbits,i.wnext=0,i.whave=0,i.window=z(i.wsize)),n>=i.wsize?(Z(i.window,e,A-i.wsize,i.wsize,0),i.wnext=0,i.whave=i.wsize):(o=i.wsize-i.wnext,o>n&&(o=n),Z(i.window,e,A-n,o,i.wnext),n-=o,n?(Z(i.window,e,A-n,n,0),i.wnext=n,i.whave=i.wsize):(i.wnext+=o,i.wnext===i.wsize&&(i.wnext=0),i.whave<i.wsize&&(i.whave+=o))),0}function Rn(t,e){var A,n,o,i,r,s,C,a,g,h,l,Q,c,u,d=0,p,k,D,I,f,E,B,w,y=z(4),m,N,x=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!t||!t.state||!t.output||!t.input&&t.avail_in!==0)return Y;A=t.state,A.mode===j&&(A.mode=qe),r=t.next_out,o=t.output,C=t.avail_out,i=t.next_in,n=t.input,s=t.avail_in,a=A.hold,g=A.bits,h=s,l=C,w=QA;A:for(;;)switch(A.mode){case bn:if(A.wrap===0){A.mode=qe;break}for(;g<16;){if(s===0)break A;s--,a+=n[i++]<<g,g+=8}if(A.wrap&2&&a===35615){A.check=0,y[0]=a&255,y[1]=a>>>8&255,A.check=_(A.check,y,2,0),a=0,g=0,A.mode=tn;break}if(A.flags=0,A.head&&(A.head.done=!1),!(A.wrap&1)||(((a&255)<<8)+(a>>8))%31){t.msg="incorrect header check",A.mode=R;break}if((a&15)!==en){t.msg="unknown compression method",A.mode=R;break}if(a>>>=4,g-=4,B=(a&15)+8,A.wbits===0)A.wbits=B;else if(B>A.wbits){t.msg="invalid window size",A.mode=R;break}A.dmax=1<<B,t.adler=A.check=1,A.mode=a&512?Qn:j,a=0,g=0;break;case tn:for(;g<16;){if(s===0)break A;s--,a+=n[i++]<<g,g+=8}if(A.flags=a,(A.flags&255)!==en){t.msg="unknown compression method",A.mode=R;break}if(A.flags&57344){t.msg="unknown header flags set",A.mode=R;break}A.head&&(A.head.text=a>>8&1),A.flags&512&&(y[0]=a&255,y[1]=a>>>8&255,A.check=_(A.check,y,2,0)),a=0,g=0,A.mode=nn;case nn:for(;g<32;){if(s===0)break A;s--,a+=n[i++]<<g,g+=8}A.head&&(A.head.time=a),A.flags&512&&(y[0]=a&255,y[1]=a>>>8&255,y[2]=a>>>16&255,y[3]=a>>>24&255,A.check=_(A.check,y,4,0)),a=0,g=0,A.mode=on;case on:for(;g<16;){if(s===0)break A;s--,a+=n[i++]<<g,g+=8}A.head&&(A.head.xflags=a&255,A.head.os=a>>8),A.flags&512&&(y[0]=a&255,y[1]=a>>>8&255,A.check=_(A.check,y,2,0)),a=0,g=0,A.mode=rn;case rn:if(A.flags&1024){for(;g<16;){if(s===0)break A;s--,a+=n[i++]<<g,g+=8}A.length=a,A.head&&(A.head.extra_len=a),A.flags&512&&(y[0]=a&255,y[1]=a>>>8&255,A.check=_(A.check,y,2,0)),a=0,g=0}else A.head&&(A.head.extra=null);A.mode=sn;case sn:if(A.flags&1024&&(Q=A.length,Q>s&&(Q=s),Q&&(A.head&&(B=A.head.extra_len-A.length,A.head.extra||(A.head.extra=new Array(A.head.extra_len)),Z(A.head.extra,n,i,Q,B)),A.flags&512&&(A.check=_(A.check,n,Q,i)),s-=Q,i+=Q,A.length-=Q),A.length))break A;A.length=0,A.mode=an;case an:if(A.flags&2048){if(s===0)break A;Q=0;do B=n[i+Q++],A.head&&B&&A.length<65536&&(A.head.name+=String.fromCharCode(B));while(B&&Q<s);if(A.flags&512&&(A.check=_(A.check,n,Q,i)),s-=Q,i+=Q,B)break A}else A.head&&(A.head.name=null);A.length=0,A.mode=gn;case gn:if(A.flags&4096){if(s===0)break A;Q=0;do B=n[i+Q++],A.head&&B&&A.length<65536&&(A.head.comment+=String.fromCharCode(B));while(B&&Q<s);if(A.flags&512&&(A.check=_(A.check,n,Q,i)),s-=Q,i+=Q,B)break A}else A.head&&(A.head.comment=null);A.mode=In;case In:if(A.flags&512){for(;g<16;){if(s===0)break A;s--,a+=n[i++]<<g,g+=8}if(a!==(A.check&65535)){t.msg="header crc mismatch",A.mode=R;break}a=0,g=0}A.head&&(A.head.hcrc=A.flags>>9&1,A.head.done=!0),t.adler=A.check=0,A.mode=j;break;case Qn:for(;g<32;){if(s===0)break A;s--,a+=n[i++]<<g,g+=8}t.adler=A.check=Dn(a),a=0,g=0,A.mode=oe;case oe:if(A.havedict===0)return t.next_out=r,t.avail_out=C,t.next_in=i,t.avail_in=s,A.hold=a,A.bits=g,Hi;t.adler=A.check=1,A.mode=j;case j:if(e===_i||e===te)break A;case qe:if(A.last){a>>>=g&7,g-=g&7,A.mode=Oe;break}for(;g<3;){if(s===0)break A;s--,a+=n[i++]<<g,g+=8}switch(A.last=a&1,a>>>=1,g-=1,a&3){case 0:A.mode=Cn;break;case 1:if(ji(A),A.mode=ne,e===te){a>>>=2,g-=2;break A}break;case 2:A.mode=En;break;case 3:t.msg="invalid block type",A.mode=R}a>>>=2,g-=2;break;case Cn:for(a>>>=g&7,g-=g&7;g<32;){if(s===0)break A;s--,a+=n[i++]<<g,g+=8}if((a&65535)!==(a>>>16^65535)){t.msg="invalid stored block lengths",A.mode=R;break}if(A.length=a&65535,a=0,g=0,A.mode=Ze,e===te)break A;case Ze:A.mode=Bn;case Bn:if(Q=A.length,Q){if(Q>s&&(Q=s),Q>C&&(Q=C),Q===0)break A;Z(o,n,i,Q,r),s-=Q,i+=Q,C-=Q,r+=Q,A.length-=Q;break}A.mode=j;break;case En:for(;g<14;){if(s===0)break A;s--,a+=n[i++]<<g,g+=8}if(A.nlen=(a&31)+257,a>>>=5,g-=5,A.ndist=(a&31)+1,a>>>=5,g-=5,A.ncode=(a&15)+4,a>>>=4,g-=4,A.nlen>286||A.ndist>30){t.msg="too many length or distance symbols",A.mode=R;break}A.have=0,A.mode=cn;case cn:for(;A.have<A.ncode;){for(;g<3;){if(s===0)break A;s--,a+=n[i++]<<g,g+=8}A.lens[x[A.have++]]=a&7,a>>>=3,g-=3}for(;A.have<19;)A.lens[x[A.have++]]=0;if(A.lencode=A.lendyn,A.lenbits=7,m={bits:A.lenbits},w=IA(Mi,A.lens,0,19,A.lencode,0,A.work,m),A.lenbits=m.bits,w){t.msg="invalid code lengths set",A.mode=R;break}A.have=0,A.mode=fn;case fn:for(;A.have<A.nlen+A.ndist;){for(;d=A.lencode[a&(1<<A.lenbits)-1],p=d>>>24,k=d>>>16&255,D=d&65535,!(p<=g);){if(s===0)break A;s--,a+=n[i++]<<g,g+=8}if(D<16)a>>>=p,g-=p,A.lens[A.have++]=D;else{if(D===16){for(N=p+2;g<N;){if(s===0)break A;s--,a+=n[i++]<<g,g+=8}if(a>>>=p,g-=p,A.have===0){t.msg="invalid bit length repeat",A.mode=R;break}B=A.lens[A.have-1],Q=3+(a&3),a>>>=2,g-=2}else if(D===17){for(N=p+3;g<N;){if(s===0)break A;s--,a+=n[i++]<<g,g+=8}a>>>=p,g-=p,B=0,Q=3+(a&7),a>>>=3,g-=3}else{for(N=p+7;g<N;){if(s===0)break A;s--,a+=n[i++]<<g,g+=8}a>>>=p,g-=p,B=0,Q=11+(a&127),a>>>=7,g-=7}if(A.have+Q>A.nlen+A.ndist){t.msg="invalid bit length repeat",A.mode=R;break}for(;Q--;)A.lens[A.have++]=B}}if(A.mode===R)break;if(A.lens[256]===0){t.msg="invalid code -- missing end-of-block",A.mode=R;break}if(A.lenbits=9,m={bits:A.lenbits},w=IA(yn,A.lens,0,A.nlen,A.lencode,0,A.work,m),A.lenbits=m.bits,w){t.msg="invalid literal/lengths set",A.mode=R;break}if(A.distbits=6,A.distcode=A.distdyn,m={bits:A.distbits},w=IA(Nn,A.lens,A.nlen,A.ndist,A.distcode,0,A.work,m),A.distbits=m.bits,w){t.msg="invalid distances set",A.mode=R;break}if(A.mode=ne,e===te)break A;case ne:A.mode=ie;case ie:if(s>=6&&C>=258){t.next_out=r,t.avail_out=C,t.next_in=i,t.avail_in=s,A.hold=a,A.bits=g,Ke(t,l),r=t.next_out,o=t.output,C=t.avail_out,i=t.next_in,n=t.input,s=t.avail_in,a=A.hold,g=A.bits,A.mode===j&&(A.back=-1);break}for(A.back=0;d=A.lencode[a&(1<<A.lenbits)-1],p=d>>>24,k=d>>>16&255,D=d&65535,!(p<=g);){if(s===0)break A;s--,a+=n[i++]<<g,g+=8}if(k&&(k&240)===0){for(I=p,f=k,E=D;d=A.lencode[E+((a&(1<<I+f)-1)>>I)],p=d>>>24,k=d>>>16&255,D=d&65535,!(I+p<=g);){if(s===0)break A;s--,a+=n[i++]<<g,g+=8}a>>>=I,g-=I,A.back+=I}if(a>>>=p,g-=p,A.back+=p,A.length=D,k===0){A.mode=wn;break}if(k&32){A.back=-1,A.mode=j;break}if(k&64){t.msg="invalid literal/length code",A.mode=R;break}A.extra=k&15,A.mode=ln;case ln:if(A.extra){for(N=A.extra;g<N;){if(s===0)break A;s--,a+=n[i++]<<g,g+=8}A.length+=a&(1<<A.extra)-1,a>>>=A.extra,g-=A.extra,A.back+=A.extra}A.was=A.length,A.mode=hn;case hn:for(;d=A.distcode[a&(1<<A.distbits)-1],p=d>>>24,k=d>>>16&255,D=d&65535,!(p<=g);){if(s===0)break A;s--,a+=n[i++]<<g,g+=8}if((k&240)===0){for(I=p,f=k,E=D;d=A.distcode[E+((a&(1<<I+f)-1)>>I)],p=d>>>24,k=d>>>16&255,D=d&65535,!(I+p<=g);){if(s===0)break A;s--,a+=n[i++]<<g,g+=8}a>>>=I,g-=I,A.back+=I}if(a>>>=p,g-=p,A.back+=p,k&64){t.msg="invalid distance code",A.mode=R;break}A.offset=D,A.extra=k&15,A.mode=dn;case dn:if(A.extra){for(N=A.extra;g<N;){if(s===0)break A;s--,a+=n[i++]<<g,g+=8}A.offset+=a&(1<<A.extra)-1,a>>>=A.extra,g-=A.extra,A.back+=A.extra}if(A.offset>A.dmax){t.msg="invalid distance too far back",A.mode=R;break}A.mode=un;case un:if(C===0)break A;if(Q=l-C,A.offset>Q){if(Q=A.offset-Q,Q>A.whave&&A.sane){t.msg="invalid distance too far back",A.mode=R;break}Q>A.wnext?(Q-=A.wnext,c=A.wsize-Q):c=A.wnext-Q,Q>A.length&&(Q=A.length),u=A.window}else u=o,c=r-A.offset,Q=A.length;Q>C&&(Q=C),C-=Q,A.length-=Q;do o[r++]=u[c++];while(--Q);A.length===0&&(A.mode=ie);break;case wn:if(C===0)break A;o[r++]=A.length,C--,A.mode=ie;break;case Oe:if(A.wrap){for(;g<32;){if(s===0)break A;s--,a|=n[i++]<<g,g+=8}if(l-=C,t.total_out+=l,A.total+=l,l&&(t.adler=A.check=A.flags?_(A.check,o,l,r-l):UA(A.check,o,l,r-l)),l=C,(A.flags?a:Dn(a))!==A.check){t.msg="incorrect data check",A.mode=R;break}a=0,g=0}A.mode=kn;case kn:if(A.wrap&&A.flags){for(;g<32;){if(s===0)break A;s--,a+=n[i++]<<g,g+=8}if(a!==(A.total&4294967295)){t.msg="incorrect length check",A.mode=R;break}a=0,g=0}A.mode=pn;case pn:w=Yi;break A;case R:w=xn;break A;case je:return ze;case Ti:default:return Y}return t.next_out=r,t.avail_out=C,t.next_in=i,t.avail_in=s,A.hold=a,A.bits=g,(A.wsize||l!==t.avail_out&&A.mode<R&&(A.mode<Oe||e!==An))&&Sn(t,t.output,t.next_out,l-t.avail_out)?(A.mode=je,ze):(h-=t.avail_in,l-=t.avail_out,t.total_in+=h,t.total_out+=l,A.total+=l,A.wrap&&l&&(t.adler=A.check=A.flags?_(A.check,o,l,t.next_out-l):UA(A.check,o,l,t.next_out-l)),t.data_type=A.bits+(A.last?64:0)+(A.mode===j?128:0)+(A.mode===ne||A.mode===Ze?256:0),(h===0&&l===0||e===An)&&w===QA&&(w=Ki),w)}function vn(t){if(!t||!t.state)return Y;var e=t.state;return e.window&&(e.window=null),t.state=null,QA}function Jn(t,e){var A;return!t||!t.state||(A=t.state,(A.wrap&2)===0)?Y:(A.head=e,e.done=!1,QA)}function We(t,e){var A=e.length,n,o,i;return!t||!t.state||(n=t.state,n.wrap!==0&&n.mode!==oe)?Y:n.mode===oe&&(o=1,o=UA(o,e,A,0),o!==n.check)?xn:(i=Sn(t,e,A,A),i?(n.mode=je,ze):(n.havedict=1,QA))}var re={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"};function Ve(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}var $e=Object.prototype.toString,At=class t{constructor(e){if(!(this instanceof t))return new t(e);this.options=Tt({chunkSize:16384,windowBits:0,to:""},e||{});var A=this.options;A.raw&&A.windowBits>=0&&A.windowBits<16&&(A.windowBits=-A.windowBits,A.windowBits===0&&(A.windowBits=-15)),A.windowBits>=0&&A.windowBits<16&&!(e&&e.windowBits)&&(A.windowBits+=32),A.windowBits>15&&A.windowBits<48&&(A.windowBits&15)===0&&(A.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Ve,this.strm.avail_out=0;var n=Fn(this.strm,A.windowBits);if(n!==AA)throw new Error(re[n]);if(this.header=new He,Jn(this.strm,this.header),A.dictionary&&(typeof A.dictionary=="string"?A.dictionary=Ye(A.dictionary):$e.call(A.dictionary)==="[object ArrayBuffer]"&&(A.dictionary=new Uint8Array(A.dictionary)),A.raw&&(n=We(this.strm,A.dictionary),n!==AA)))throw new Error(re[n])}push(e,A){var n=this.strm,o=this.options.chunkSize,i=this.options.dictionary,r,s,C,a,g,h,l=!1;if(this.ended)return!1;s=A===~~A?A:A===!0?vA:Ue,typeof e=="string"?n.input=Ot(e):$e.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;do{if(n.avail_out===0&&(n.output=z(o),n.next_out=0,n.avail_out=o),r=Rn(n,Ue),r===Ht&&i&&(typeof i=="string"?h=Ye(i):$e.call(i)==="[object ArrayBuffer]"?h=new Uint8Array(i):h=i,r=We(this.strm,h)),r===Kt&&l===!0&&(r=AA,l=!1),r!==JA&&r!==AA)return this.onEnd(r),this.ended=!0,!1;n.next_out&&(n.avail_out===0||r===JA||n.avail_in===0&&(s===vA||s===Me))&&(this.options.to==="string"?(C=Pt(n.output,n.next_out),a=n.next_out-C,g=Xt(n.output,C),n.next_out=a,n.avail_out=o-a,a&&Z(n.output,n.output,C,a,0),this.onData(g)):this.onData(Ae(n.output,n.next_out))),n.avail_in===0&&n.avail_out===0&&(l=!0)}while((n.avail_in>0||n.avail_out===0)&&r!==JA);return r===JA&&(s=vA),s===vA?(r=vn(this.strm),this.onEnd(r),this.ended=!0,r===AA):(s===Me&&(this.onEnd(AA),n.avail_out=0),!0)}onData(e){this.chunks.push(e)}onEnd(e){e===AA&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=$A(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg}};function Wi(t,e){var A=new At(e);if(A.push(t,!0),A.err)throw A.msg||re[A.err];return A.result}var Gn=Wi;function et(t,e,A){let n=[],o=0,i=e;for(;o+26<=t.length&&!(t[o]!==31||t[o+1]!==139||t[o+2]!==8||t[o+3]!==4||t[o+10]!==6||t[o+12]!==66||t[o+13]!==67);){let r=(t[o+16]|t[o+17]<<8)+1;if(r<26||o+r>t.length)break;let s=o+r-8,C=(t[s+4]|t[s+5]<<8|t[s+6]<<16|t[s+7]<<24)>>>0;if(n.push({inputOffset:o,compressedSize:r,decompressedSize:C,filePosition:i}),i>=A)break;o+=r,i+=r}return n}function Ln(t){let e=0;for(let o of t)e+=o.length;let A=new Uint8Array(e),n=0;for(let o of t)A.set(o,n),n+=o.length;return A}var tA={};tA.d=(t,e)=>{if(Array.isArray(e))for(var A=0;A<e.length;){var n=e[A++],o=e[A++];tA.o(t,n)?o===0&&A++:o===0?Object.defineProperty(t,n,{enumerable:!0,value:e[A++]}):Object.defineProperty(t,n,{enumerable:!0,get:o})}else for(var n in e)tA.o(e,n)&&!tA.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})};tA.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);tA.r=t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var nt={};tA.r(nt);tA.d(nt,{ChunkSliceResult:()=>pA,__wbg_Error_92b29b0548f8b746:()=>$i,__wbg___wbindgen_throw_344f42d3211c4765:()=>Ao,__wbg_set_wasm:()=>Zn,decompress_all:()=>_n,decompress_chunk_slice:()=>Yn});var Vi="data:application/wasm;base64,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AyABNgIEIAMgADYCACADQRmtQiCGIAOthDcDCEGWgcAAIANBCGogAhAwAAs8AAJAIAAoAgBBf0YNACABIAAoAgQgACgCCBBLDwsgASgCACABKAIEIAAoAgwoAgAiACgCACAAKAIEEAwLNgACQCACQX9GDQAgACACIAEoAhARBQBFDQBBAQ8LAkAgAw0AQQAPCyAAIAMgBCABKAIMEQcACzIAAkACQCABaUEBRw0AIABBgICAgHggAWtLDQAgAEUNARBpIAAgARBXIgENAQsACyABCzUBAX8CQCAARQ0AAkAgASgCACICRQ0AIAAgAhECAAsgASgCBCICRQ0AIAAgAiABKAIIEFELCysBAX8jAEEQayIBJAAgAUEYrUIghiABQQ9qrYQ3AwBBloHAACABIAAQMAALKgEBfyMAQRBrIgMkACADIAI2AgwgAyABNgIIIAMgADYCBCADQQRqEGMACy0BAX8jAEEQayIBJAAgASAAKQIANwIIIAFBCGpBwJPAACAAKAIIQQFBABAVAAssAgF/AX4jAEEQayIBJAAgACkCACECIAEgADYCDCABIAI3AgQgAUEEahBlAAsjAQF/IwBBEGsiAiQAIAIgATYCDCACIAA2AgggAkEIahBkAAslAQF/AkBBvIjAABAsIgBFDQAgAA8LQfCHwABBOkGsiMAAEDcACyAAAkAgASgCAEUNACAAQYiWwAA2AgQgACABNgIADwsACx4BAX8CQCAAKAIAIgJFDQAgASACIAAoAgQQSw8LAAsbAQF/EGkgAEEEakEEEFciASAANgIAIAFBBGoLHgEBfwJAIAAoAgAiAUEBSA0AIAAoAgQgAUEBEFELCx4AIAAoAgAgACgCBEEAKAKgnUAiAEEEIAAbEQQAAAscAQF/AkAgACgCACIBRQ0AIAAoAgQgAUEBEFELCxcAAkAgAUEJSQ0AIAEgABAODwsgABACCxUAIABBfGoiACAAKAIAQQRqQQQQUQsUAAJAIABFDQAgACABEF4ACxBUAAsRACAAIAFBAXRBAXIgAhAwAAsSAAJAIAFFDQAgACABIAIQUQsLEgAgACABIAIgAyAEQQAgBRADCxUAAkAgAEUNACAAIAAoAqhaEQIACwsaACAAQQApAsSUQDcCCCAAQQApAryUQDcCAAsaACAAQQApArSUQDcCCCAAQQApAqyUQDcCAAsW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AA2AAAAOgAAAD4AAABCAAAARgAAAEoAAABOAAAAUgAAAFYAAABaAAAAXgAAAGIAAABmAAAAagAAAG4AAAByAAAAdgAAAHoAAAB+AAAAggAAAIYAAACKAAAAjgAAAJIAAACWAAAAmgAAAJ4AAACiAAAApgAAAKoAAACuAAAAsgAAALYAAAC6AAAAvgAAAMIAAADGAAAAygAAAM4AAADSAAAA1gAAANoAAADeAAAA4gAAAOYAAADqAAAA7gAAAPIAAAD2AAAA+gAAAP4AAAECAAABBgAAAQoAAAEOAAABEgAAARYAAAEaAAABHgAAASIAAAEmAAABKgAAAS4AAAEyAAABNgAAAToAAAE+AAABQgAAAUYAAAFKAAABTgAAAVIAAAFWAAABWgAAAV4AAAFiAAABZgAAAWoAAAFuAAABcgAAAXYAAAF6AAABfgAAAYIAAAGGAAABigAAAY4AAAGSAAABlgAAAZoAAAGeAAABogAAAaYAAAGqAAABrgAAAbIAAAG2AAABugAAAb4AAAHCAAABxgAAAcoAAAHOAAAB0gAAAdYAAAHaAAAB3gAAAeIAAAHmAAAB6gAAAe4AAAHyAAAB9gAAAfoAAAH+AAACAgAAAgYAAAIKAAACDgAAAhIAAAIWAAACGgAAAh4AAAIiAAACJgAAAioAAAIuAAACMgAAAjYAAAI6AAACPgAAAkIAAAJGAAACSgAAAk4AAAJSAAACVgAAAloAAAJeAAACYgAAAmYAAAJqAAACbgAAAnIAAAJ2AAACegAAAn4AAAKCAAAChgAAAooAAAKOAAACkgAAApYAAAKaAAACngAAAqIAAAKmAAACqgAAAq4AAAKyAAACtgAAAroAAAK+AAACwgAAAsYAAALKAAACzgAAAtIAAALWAAAC2gAAAt4AAALiAAAC5gAAAuoAAALuAAAC8gAAAvYAAAL6AAAC/gAAAwIAAAMGAAADCgAAAw4AAAMSAAADFgAAAxoAAAMeAAADIgAAAyYAAAMqAAADLgAAAzIAAAM2AAADOgAAAz4AAANCAAADRgAAA0oAAANOAAADUgAAA1YAAANaAAADXgAAA2IAAANmAAADagAAA24AAANyAAADdgAAA3oAAAN+AAADggAAA4YAAAOKAAADjgAAA5IAAAOWAAADmgAAA54AAAOiAAADpgAAA6oAAAOuAAADsgAAA7YAA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",pA=class t{static __wrap(e){let A=Object.create(t.prototype);return A.__wbg_ptr=e,Un.register(A,A.__wbg_ptr,A),A}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,Un.unregister(this),e}free(){let e=this.__destroy_into_raw();b.__wbg_chunksliceresult_free(e,0)}take_buffer(){try{let o=b.__wbindgen_add_to_stack_pointer(-16);b.chunksliceresult_take_buffer(o,this.__wbg_ptr);var e=M().getInt32(o+0,!0),A=M().getInt32(o+4,!0),n=Hn(e,A).slice();return b.__wbindgen_export(e,A*1,1),n}finally{b.__wbindgen_add_to_stack_pointer(16)}}take_cpositions(){try{let o=b.__wbindgen_add_to_stack_pointer(-16);b.chunksliceresult_take_cpositions(o,this.__wbg_ptr);var e=M().getInt32(o+0,!0),A=M().getInt32(o+4,!0),n=Mn(e,A).slice();return b.__wbindgen_export(e,A*8,8),n}finally{b.__wbindgen_add_to_stack_pointer(16)}}take_dpositions(){try{let o=b.__wbindgen_add_to_stack_pointer(-16);b.chunksliceresult_take_dpositions(o,this.__wbg_ptr);var e=M().getInt32(o+0,!0),A=M().getInt32(o+4,!0),n=Mn(e,A).slice();return b.__wbindgen_export(e,A*8,8),n}finally{b.__wbindgen_add_to_stack_pointer(16)}}};Symbol.dispose&&(pA.prototype[Symbol.dispose]=pA.prototype.free);function _n(t){try{let r=b.__wbindgen_add_to_stack_pointer(-16),s=Tn(t,b.__wbindgen_export2),C=ot;b.decompress_all(r,s,C);var e=M().getInt32(r+0,!0),A=M().getInt32(r+4,!0),n=M().getInt32(r+8,!0),o=M().getInt32(r+12,!0);if(o)throw qn(n);var i=Hn(e,A).slice();return b.__wbindgen_export(e,A*1,1),i}finally{b.__wbindgen_add_to_stack_pointer(16)}}function Yn(t,e,A,n,o){try{let C=b.__wbindgen_add_to_stack_pointer(-16),a=Tn(t,b.__wbindgen_export2),g=ot;b.decompress_chunk_slice(C,a,g,e,A,n,o);var i=M().getInt32(C+0,!0),r=M().getInt32(C+4,!0),s=M().getInt32(C+8,!0);if(s)throw qn(r);return pA.__wrap(i)}finally{b.__wbindgen_add_to_stack_pointer(16)}}function $i(t,e){let A=Error(Kn(t,e));return eo(A)}function Ao(t,e){throw new Error(Kn(t,e))}var Un=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(t=>b.__wbg_chunksliceresult_free(t,1));function eo(t){MA===W.length&&W.push(W.length+1);let e=MA;return MA=W[e],W[e]=t,e}function to(t){t<1028||(W[t]=MA,MA=t)}function Mn(t,e){return t=t>>>0,no().subarray(t/8,t/8+e)}function Hn(t,e){return t=t>>>0,it().subarray(t/1,t/1+e)}var kA=null;function M(){return(kA===null||kA.buffer.detached===!0||kA.buffer.detached===void 0&&kA.buffer!==b.memory.buffer)&&(kA=new DataView(b.memory.buffer)),kA}var se=null;function no(){return(se===null||se.byteLength===0)&&(se=new Float64Array(b.memory.buffer)),se}function Kn(t,e){return ro(t>>>0,e)}var ae=null;function it(){return(ae===null||ae.byteLength===0)&&(ae=new Uint8Array(b.memory.buffer)),ae}function io(t){return W[t]}var W=new Array(1024).fill(void 0);W.push(void 0,null,!0,!1);var MA=W.length;function Tn(t,e){let A=e(t.length*1,1)>>>0;return it().set(t,A/1),ot=t.length,A}function qn(t){let e=io(t);return to(t),e}var Ie=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});Ie.decode();var oo=2146435072,tt=0;function ro(t,e){return tt+=e,tt>=oo&&(Ie=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),Ie.decode(),tt=e),Ie.decode(it().subarray(t,t+e).slice())}var ot=0,b;function Zn(t){b=t}var CA=null,ge=null;async function On(){return CA||(ge||(ge=(async()=>{let e=await(await fetch(Vi)).arrayBuffer(),{instance:A}=await WebAssembly.instantiate(e,{"./bgzf_wasm_bg.js":nt});return CA=A.exports,Zn(CA),CA})().catch(t=>{throw ge=null,t})),ge)}async function Xn(t){return CA||await On(),_n(t)}async function Pn(t,e,A,n,o){CA||await On();let i=Yn(t,e,A,n,o),r=i.take_buffer(),s=i.take_cpositions(),C=i.take_dpositions();return i.free(),{buffer:r,cpositions:s,dpositions:C}}var so=26;function jn(t){return t[0]===31&&t[1]===139}function ao(t){return t.length>=so&&jn(t)&&t[2]===8&&t[3]===4&&t[10]===6&&t[12]===66&&t[13]===67}function Wn(t){return t instanceof Error?t.message:`${t}`}async function zn(t){if(typeof DecompressionStream<"u"){let e=new Blob([t]).stream().pipeThrough(new DecompressionStream("gzip"));return new Uint8Array(await new Response(e).arrayBuffer())}else return Gn(t,void 0)}function Vn(t){return Wn(t).includes("invalid gzip header")?new Error("problem decompressing block: incorrect gzip header check",{cause:t}):t}async function _A(t){if(t.length===0)return new Uint8Array(0);if(!ao(t)){if(jn(t))return zn(t);throw new Error("problem decompressing block: not a valid bgzf or gzip block")}try{return await Xn(t)}catch(e){if(Wn(e).includes("invalid bgzf header"))return zn(t);throw Vn(e)}}function $n(t,e,A,n){let o=[],i=[],r=[],s=A.dataPosition;for(let C=0;C<t.length;C++){let a=t[C],g=e[C],h=g.filePosition>=n.blockPosition;o.push(g.filePosition),i.push(s);let l=C===0?A.dataPosition:0,Q=h?Math.min(n.dataPosition+1,a.length):a.length;if(l<Q&&r.push(a.subarray(l,Q)),s+=a.length-l,h){o.push(g.filePosition+g.compressedSize),i.push(s);break}}return{slices:r,cpositions:Float64Array.from(o),dpositions:Float64Array.from(i)}}function go(t,e,A,n){let{slices:o,cpositions:i,dpositions:r}=$n(t,e,A,n);return{buffer:Ln(o),cpositions:i,dpositions:r}}function Io(t){let e=[],A;for(let n of t)A?.buffer===n.buffer&&A.byteOffset+A.length===n.byteOffset?A=new Uint8Array(A.buffer,A.byteOffset,A.length+n.length):(A&&e.push(A),A=n);return A&&e.push(A),e}async function rt(t,e,A){let{minv:n,maxv:o}=e;if(A){let C=et(t,n.blockPosition,o.blockPosition);if(Ai(C)>=st){let a=await A.decompressBlocks(t,C),{slices:g,cpositions:h,dpositions:l}=$n(a.blocks,C,n,o);return{segments:Io(g),cpositions:h,dpositions:l}}}let{buffer:i,cpositions:r,dpositions:s}=await ei(t,e);return{segments:[i],cpositions:r,dpositions:s}}var st=4e5;function Ai(t){let e=0;for(let A of t)e+=A.decompressedSize;return e}async function ei(t,e,A){let{minv:n,maxv:o}=e;if(A){let i=et(t,n.blockPosition,o.blockPosition);if(Ai(i)>=st){let r=await A.decompressBlocks(t,i);return go(r.blocks,i,n,o)}}try{let i=await Pn(t,n.blockPosition,n.dataPosition,o.blockPosition,o.dataPosition);return{buffer:i.buffer,cpositions:i.cpositions,dpositions:i.dpositions}}catch(i){throw Vn(i)}}function BA(t){if(t?.aborted)throw at(t)}function at(t){let e=t.reason;return e===void 0?new DOMException("This operation was aborted","AbortError"):e}function ti(t){return typeof t?.addEventListener=="function"}var nA=class{entries=new Map;total=0;settledCount=0;limit;shared;fill;sizeOf;toCacheKey;idleTimeoutMs;sweepTimer;constructor({fill:e,maxSize:A=1/0,sizeOf:n=()=>1,cacheKey:o=s=>String(s),idleTimeoutMs:i=0,budget:r}={}){this.fill=e,this.limit=A,this.shared=r&&{budget:r,membership:r.register(this)},this.sizeOf=n,this.toCacheKey=o,this.idleTimeoutMs=i>0&&Number.isFinite(i)?i:void 0}get size(){return this.entries.size}get totalSize(){return this.total}get maxSize(){return this.limit}set maxSize(e){this.limit=e,this.evict()}waiterCount(e){return this.entries.get(this.toCacheKey(e))?.pending?.signals.size??0}async get(e,A,n){BA(A);let o=this.toCacheKey(e),i=this.entries.get(o);i&&this.isDoomed(i)&&(this.release(o),i=void 0),i?this.touch(o,i):i=this.start(o,e,n),i.pending&&this.join(i.pending,A);try{return await this.settleFor(i,A)}finally{BA(A)}}settleFor(e,A){if(!e.pending||!ti(A))return e.promise;let n,o=new Promise((r,s)=>{n=s}),i=()=>{n(at(A))};return A.addEventListener("abort",i,{once:!0}),Promise.race([e.promise,o]).finally(()=>{A.removeEventListener("abort",i)})}getIfCached(e){let A=this.toCacheKey(e),n=this.entries.get(A);if(n){if(this.isDoomed(n)){this.release(A);return}return this.touch(A,n),n.promise}}has(e){let A=this.entries.get(this.toCacheKey(e));return A!==void 0&&!this.isDoomed(A)}delete(e){this.release(this.toCacheKey(e))}clear(){this.entries.clear(),this.shared?.budget.charge(this.shared.membership,-this.total),this.total=0,this.settledCount=0,this.stopSweep()}touch(e,A){this.entries.delete(e),this.entries.set(e,A),A.lastTouched=Date.now(),A.seq=this.stamp()}stamp(){return this.shared?.budget.nextSeq()??0}isDoomed(e){return e.pending?.controller.signal.aborted===!0}sweepIdle(){let e=this.idleTimeoutMs;if(e===void 0)return;let A=Date.now()-e;for(let[n,o]of this.entries)!o.pending&&o.lastTouched<=A&&this.release(n);this.settledCount===0&&this.stopSweep()}startSweep(){let e=this.idleTimeoutMs;if(e===void 0||this.sweepTimer!==void 0)return;let A=Math.min(2**31-1,Math.max(1e3,Math.floor(e/4))),n=new WeakRef(this),o=setInterval(()=>{let i=n.deref();i?i.sweepIdle():clearInterval(o)},A);this.sweepTimer=o,o.unref?.()}stopSweep(){this.sweepTimer!==void 0&&(clearInterval(this.sweepTimer),this.sweepTimer=void 0)}start(e,A,n){let o=n??(this.fill&&(a=>this.fill(A,a)));if(!o)throw new Error("SharedReadCache needs a fill, either on the cache or on the get() call");let i={signals:new Map,pinned:!1,controller:new AbortController},r={promise:Promise.resolve(o(i.controller.signal)),pending:i,size:0,lastTouched:Date.now(),seq:this.stamp()};this.entries.set(e,r);let s=()=>this.entries.get(e)===r,C=()=>{for(let[a,g]of i.signals)a.removeEventListener("abort",g);r.pending=void 0};return r.promise.then(a=>{let g=s()?this.weigh(a):void 0,h=s();C(),h&&(g===void 0?this.entries.delete(e):(r.lastTouched=Date.now(),r.size=g,this.settledCount++,this.total+=g,this.shared?.budget.charge(this.shared.membership,g),this.startSweep())),this.evict(),this.shared?.budget.evict()},()=>{s()&&this.release(e),C()}),r}weigh(e){try{let A=this.sizeOf(e);return Number.isFinite(A)&&A>=0?A:void 0}catch{return}}join(e,A){if(!ti(A))e.pinned=!0;else if(!A.aborted&&!e.signals.has(A)){let n=()=>{e.signals.delete(A),!e.pinned&&e.signals.size===0&&e.controller.abort(A.reason)};e.signals.set(A,n),A.addEventListener("abort",n,{once:!0})}}release(e){let A=this.entries.get(e);A&&(this.entries.delete(e),A.pending||this.settledCount--,this.total-=A.size,this.shared?.budget.charge(this.shared.membership,-A.size))}lruSpare(e=!1){if(!(this.settledCount<=(e?0:1))){for(let[A,n]of this.entries)if(!n.pending)return{cacheKey:A,seq:n.seq,last:this.settledCount===1}}}evict(){if(!(this.total<=this.limit))for(let[e,A]of this.entries){if(this.total<=this.limit||this.settledCount<=1)break;A.pending||this.release(e)}}};async function Qe(t){return t.bytes?t.bytes():new Uint8Array(await t.arrayBuffer())}async function ni(t,e,A){if(e==="utf8"||e==="utf-8")return t.text();if(e)throw new Error(`unsupported encoding: ${e}`);return A&&"body"in t?gt(t,A):Qe(t)}function ii(t){return typeof t=="string"?{encoding:t,opts:{}}:{encoding:t?.encoding,opts:t??{}}}function oi(t){let e=/\/(\d+)$/.exec(t??"")?.[1];return e===void 0?void 0:parseInt(e,10)}function Qo(t){let e=t.headers.get("content-length"),A=e===null?Number.NaN:Number(e);return Number.isSafeInteger(A)&&A>=0?A:void 0}var Co=50;async function gt(t,e){let A=Qo(t),n=t.body;if(!n||A===void 0){let C=await Qe(t);return e(C.byteLength,A??C.byteLength),C}let o=n.getReader(),i=new Uint8Array(A),r=0,s=Date.now();e(0,A);for(let C=await o.read();!C.done;C=await o.read()){if(r+C.value.byteLength>i.length){let g=new Uint8Array(Math.max(r+C.value.byteLength,i.length*2));g.set(i.subarray(0,r)),i=g}i.set(C.value,r),r+=C.value.byteLength;let a=Date.now();a-s>=Co&&(s=a,e(r,A))}return e(r,A),r===i.length?i:i.slice(0,r)}function Bo(...t){let e=new Map;for(let A of t)for(let[n,o]of Object.entries(A??{}))e.set(n.toLowerCase(),[n,o]);return Object.fromEntries(e.values())}function It(t){let e=t.body;typeof e?.cancel=="function"&&e.cancel().catch(()=>{})}function ri(t){return Number.isSafeInteger(t)&&t>=0}function Eo(t){return typeof t=="object"&&t!==null&&"name"in t&&t.name==="TypeError"}function co(t){return(typeof t=="object"&&t!==null&&"message"in t&&typeof t.message=="string"?t.message:`${t}`).replace(/\.$/,"")}var V=class{url;get source(){return this.url}_stat;statProbe;fetchImplementation;baseHeaders;baseOverrides;baseSignal;constructor(e,A={}){this.url=e,this.baseHeaders=A.headers??{},this.baseOverrides=A.overrides??{},this.baseSignal=A.signal,this.fetchImplementation=A.fetch??globalThis.fetch.bind(globalThis)}buildRequest(e,A){let n=e.signal??this.baseSignal;return{method:"GET",redirect:"follow",mode:"cors",...this.baseOverrides,...e.overrides,headers:Bo(this.baseHeaders,e.headers,A),...n?{signal:n}:{}}}async fetch(e,A){let n=i=>Eo(i)&&!A?.signal?.aborted?new Error(`${co(i)} fetching ${e}`,{cause:i}):i,o;try{o=await this.fetchImplementation(e,A)}catch(i){if(`${i}`.includes("Failed to fetch")){console.warn(`generic-filehandle: refetching ${e} to attempt to work around chrome CORS header caching bug`);try{o=await this.fetchImplementation(e,{...A,cache:"reload"})}catch(r){throw n(r)}}else throw n(i)}return o}async read(e,A,n={}){if(!ri(e)||!ri(A))throw new TypeError(`read() called with an invalid length or position (length=${e}, position=${A}). The index file may be corrupt.`);return e===0?new Uint8Array(0):this.fetchBytes(e,A,n)}async fetchBytes(e,A,n){let o=await this.fetch(this.url,this.buildRequest(n,{range:`bytes=${A}-${A+e-1}`}));if(o.status===416)return It(o),new Uint8Array(0);if(this.checkOk(o),o.status===200&&A===0||o.status===206){let i=oi(o.headers.get("content-range"));i!==void 0&&(this._stat={size:i});let r=n.onProgress?await gt(o,n.onProgress):await Qe(o);return!this._stat&&o.status===200&&(this._stat={size:r.byteLength}),r.byteLength<=e?r:r.slice(0,e)}throw It(o),new Error(o.status===200?`${this.url} fetch returned status 200, expected 206`:`HTTP ${o.status} fetching ${this.url}`)}checkOk(e){if(!e.ok)throw It(e),new Error(`HTTP ${e.status} fetching ${this.url}`)}async readFile(e){let{encoding:A,opts:n}=ii(e),o=await this.fetch(this.url,this.buildRequest(n));this.checkOk(o);let i=await this.readFileBody(o,A,n.onProgress);return o.status===200&&typeof i!="string"&&(this._stat={size:i.byteLength}),i}readFileBody(e,A,n){return ni(e,A,n)}async stat(){return this._stat||(this.statProbe??=this.read(10,0).finally(()=>{this.statProbe=void 0}),await this.statProbe),this._stat??{size:0}}close(){return Promise.resolve()}};var EA=class{source;constructor(e,A={}){this.source=e}unimplemented(){return Promise.reject(new Error(`LocalFile is unimplemented in the browser (${this.source})`))}readFile(e){return this.unimplemented()}read(e,A,n){return this.unimplemented()}stat(){return this.unimplemented()}close(){return this.unimplemented()}};var O=class{minv;maxv;bin;endPosition;constructor(e,A,n,o=A.blockPosition+65536){this.minv=e,this.maxv=A,this.bin=n,this.endPosition=o}toString(){return`${this.minv.toString()}..${this.maxv.toString()} (bin ${this.bin}, fetchedSize ${this.fetchedSize()})`}fetchedSize(){return this.endPosition-this.minv.blockPosition}};function Qt(t,e){if(!(e>0))throw new TypeError(`\`${t}\` must be a number greater than 0`)}var YA=class{#A=new Map;#e=new Map;#t;#i;#o;constructor(e){let A=e.maxAge??Number.POSITIVE_INFINITY;Qt("maxSize",e.maxSize),Qt("maxAge",A),this.#t=e.maxSize,this.#i=A,this.#o=e.onEviction}#r(e){let A=this.#o;if(A)for(let[n,o]of e)A(n,o.value)}#n(e,A){return A.expiry!==void 0&&A.expiry<=Date.now()?(this.#o?.(e,A.value),this.delete(e),!0):!1}#a(e,A){return this.#n(e,A)?void 0:A.value}#g(e,A){if(this.#e.delete(e),this.#A.set(e,A),this.#A.size>=this.#t){let n=this.#e;this.#e=this.#A,this.#A=new Map,this.#r(n)}}#I(e){this.#e=new Map(e),this.#A=new Map}*#s(){for(let e of[this.#e,this.#A])for(let A of e)this.#n(...A)||(yield A)}get(e){let A=this.#A.get(e);if(A)return this.#a(e,A);let n=this.#e.get(e);if(n&&!this.#n(e,n))return this.#g(e,n),n.value}set(e,A,{maxAge:n=this.#i}={}){let o={value:A,expiry:n===Number.POSITIVE_INFINITY?void 0:Date.now()+n};return this.#A.has(e)?this.#A.set(e,o):this.#g(e,o),this}has(e){let A=this.#A.get(e)??this.#e.get(e);return A!==void 0&&!this.#n(e,A)}peek(e){let A=this.#A.get(e)??this.#e.get(e);return A?this.#a(e,A):void 0}expiresIn(e){let A=this.#A.get(e)??this.#e.get(e);if(A)return A.expiry===void 0?Number.POSITIVE_INFINITY:A.expiry-Date.now()}delete(e){return this.#A.delete(e)||this.#e.delete(e)}clear(){this.#A.clear(),this.#e.clear()}resize(e){Qt("maxSize",e);let A=[...this.#s()],n=A.length-e;n<0?(this.#A=new Map(A),this.#e=new Map):(this.#r(A.slice(0,n)),this.#I(A.slice(n))),this.#t=e}evict(e=1){if(!(e>0))return;let A=[...this.#s()],n=Math.trunc(Math.min(e,A.length-1));n>0&&(this.#r(A.slice(0,n)),this.#I(A.slice(n)))}get size(){return Math.min(this.#A.size+this.#e.size,this.#t)}get maxSize(){return this.#t}get maxAge(){return this.#i}*entriesAscending(){for(let[e,A]of this.#s())yield[e,A.value]}*entriesDescending(){for(let e of[this.#A,this.#e])for(let[A,n]of[...e].reverse())this.#n(A,n)||(yield[A,n.value])}entries(){return this.entriesAscending()}[Symbol.iterator](){return this.entriesAscending()}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}forEach(e,A=this){for(let[n,o]of this)e.call(A,o,n,this)}get[Symbol.toStringTag](){return"QuickLRU"}toString(){return`QuickLRU(${this.size}/${this.maxSize})`}[Symbol.for("nodejs.util.inspect.custom")](){return this.toString()}};function si(t,e=0){let A=t[e]|t[e+1]<<8|t[e+2]<<16|t[e+3]<<24;return((t[e+4]|t[e+5]<<8|t[e+6]<<16|t[e+7]<<24)>>>0)*4294967296+(A>>>0)}var DA=class{blockPosition;dataPosition;constructor(e,A){this.blockPosition=e,this.dataPosition=A}toString(){return`${this.blockPosition}:${this.dataPosition}`}compareTo(e){return this.blockPosition-e.blockPosition||this.dataPosition-e.dataPosition}};function iA(t,e=0){return new DA(t[e+7]*1099511627776+t[e+6]*4294967296+t[e+5]*16777216+t[e+4]*65536+t[e+3]*256+t[e+2],t[e+1]<<8|t[e])}function Ce(t,e){let A=t.length;if(A===0)return t;let n;if(e){let s=e.blockPosition,C=e.dataPosition;n=[];for(let a=0;a<A;a++){let g=t[a];(g.maxv.blockPosition-s||g.maxv.dataPosition-C)>0&&n.push(g)}if(n.length===0)return n}else n=t;n.sort((s,C)=>{let a=s.minv.blockPosition-C.minv.blockPosition;return a===0?s.minv.dataPosition-C.minv.dataPosition:a});let o=[n[0]],i=n[0].minv.blockPosition,r=n[0].maxv.blockPosition;for(let s=1;s<n.length;s++){let C=n[s],a=C.minv.blockPosition,g=C.maxv.blockPosition;if(a-r<65e3&&g-i<5e6){let h=o.at(-1);(g-r||C.maxv.dataPosition-h.maxv.dataPosition)>0&&(o[o.length-1]=new O(h.minv,C.maxv,h.bin,C.endPosition),r=g)}else o.push(C),i=a,r=g}return fo(o)}function fo(t){let e=[t[0]];for(let A=1;A<t.length;A++){let n=t[A],o=e.at(-1).maxv;if((n.minv.blockPosition-o.blockPosition||n.minv.dataPosition-o.dataPosition)>=0){e.push(n);continue}(n.maxv.blockPosition-o.blockPosition||n.maxv.dataPosition-o.dataPosition)>0&&e.push(new O(o,n.maxv,n.bin,n.endPosition))}return e}function Be(t,e=[]){let A=[...e];for(let n of t)A.push(n.minv.blockPosition,n.maxv.blockPosition);A.sort((n,o)=>n-o);for(let n of t){let o=n.maxv.blockPosition,i=0,r=A.length;for(;i<r;){let s=i+r>>>1;A[s]>o?r=s:i=s+1}i<A.length&&(n.endPosition=Math.min(n.endPosition,A[i]))}}function Ee(t,e,A,n){let o=n?n.blockPosition:1/0,i=n?n.dataPosition:0,r=!1;for(let s=0;s<A;s++){let C=e+s*8,a=t[C+7]*1099511627776+t[C+6]*4294967296+t[C+5]*16777216+t[C+4]*65536+t[C+3]*256+t[C+2],g=t[C+1]<<8|t[C];(a<o||a===o&&g<i)&&(o=a,i=g,r=!0)}return r?new DA(o,i):n}function lo(t){let e=new TextDecoder("utf-8"),A=[],n={},o=0,i=0;for(;i<t.length;){let r=t.indexOf(0,i);if(r===-1)break;if(r>i){let s=e.decode(t.subarray(i,r));A[o]=s,n[s]=o}i=r+1,o++}return{refNameToId:n,refIdToName:A}}var ho={0:"generic",1:"SAM",2:"VCF",3:"GAF"};function ce(t,e){let A=new DataView(t.buffer,t.byteOffset,t.byteLength),n=A.getInt32(e,!0),o=n&65536?"zero-based-half-open":"1-based-closed",i=ho[n&15];if(!i)throw new Error(`invalid Tabix preset format flags ${n}`);let r={ref:A.getInt32(e+4,!0),start:A.getInt32(e+8,!0),end:A.getInt32(e+12,!0)},s=A.getInt32(e+16,!0),C=s?String.fromCharCode(s):void 0,a=A.getInt32(e+20,!0),g=A.getInt32(e+24,!0),{refIdToName:h,refNameToId:l}=lo(t.subarray(e+28,e+28+g));return{refIdToName:h,refNameToId:l,skipLines:a,metaChar:C,columnNumbers:r,format:i,coordinateType:o}}function fe(t,e){return{lineCount:si(t,e)}}function le(t,e=5){let A=new YA({maxSize:e});return n=>{let o=A.get(n);if(o!==void 0)return o;let i=t(n);return i!==void 0&&A.set(n,i),i}}function ai(t){let e=0;for(let o of t)e+=o.length;let A=new Uint8Array(e),n=0;for(let o of t)A.set(o,n),n+=o.length;return A}var gi=10;function Ct(t,e){let A=0,n,o=0;for(let i of t){let r=0;if(n){let a=i.indexOf(gi);if(a===-1){n=ai([n,i]),A+=i.length;continue}if(e(ai([n,i.subarray(0,a+1)]),o))return!0;r=a+1,n=void 0}let s=i.lastIndexOf(gi);if(s>=r&&e(i.subarray(r,s+1),A+r))return!0;let C=Math.max(r,s+1);C<i.length&&(n=i.slice(C),o=A+C),A+=i.length}return!1}function uo(t,e,A,n){if(e>2**(A+n*3))return;let o=(8**(n+1)-1)/7,i=(8**n-1)/7+Math.floor((e-1)/2**A)+1;for(i>=o&&(i=0);;){for(;i%8===1;)i=(i-1)/8;if(i===0)return;let r=t[i];if(r?.length){let s=r[0].minv;for(let C=1;C<r.length;C++){let a=r[C].minv;a.compareTo(s)<0&&(s=a)}return s}i++}}function Ii(t,e){return t.format==="GAF"?0:t.refNameToId[e]}var cA=class{filehandle;parseCache=new nA({});constructor({filehandle:e}){this.filehandle=e}async readIndexBytes(e){let A=await this.filehandle.readFile({signal:e.signal,onProgress:e.onProgress}),n=await _A(A);return{bytes:n,dataView:new DataView(n.buffer,n.byteOffset,n.byteLength)}}async lineCount(e,A={}){let n=await this.parse(A),o=Ii(n,e);return o===void 0?-1:n.indices(o)?.stats?.lineCount??-1}async getMetadata(e={}){let{indices:A,...n}=await this.parse(e);return n}async blocksForRange(e,A,n,o={}){let i=await this.parse(o),r=Ii(i,e);if(r===void 0)return[];let s=i.indices(r);if(!s)return[];i.format==="GAF"&&(A=Math.max(A-1,0));let C=[];for(let[h,l]of this.reg2bins(A,n,i))for(let Q=h;Q<=l;Q++){let c=s.binIndex[Q];if(c)for(let u of c)C.push(u)}let a=Ce(C,this.lowestOffset(s,A,i)),g=uo(s.binIndex,n,i.minShift,i.depth);if(g){let h=a.length;for(;h>0&&a[h-1].minv.compareTo(g)>=0;)h--;a.length=h}return a}parse(e={}){return this.parseCache.get("index",e.signal,A=>this._parse({...e,signal:A}))}async hasRefSeq(e,A={}){return!!(await this.parse(A)).indices(e)?.binIndex}};var wo=21582659,ko=38359875;function Qi(t,e){return t*2**e}function Bt(t,e){return Math.floor(t/2**e)}var fA=class extends cA{async _parse(e={}){let{bytes:A,dataView:n}=await this.readIndexBytes(e),o=n.getUint32(0,!0),i;if(o===wo)i=1;else if(o===ko)i=2;else throw new Error(`Not a CSI file (magic=${o})`);let r=n.getInt32(4,!0),s=n.getInt32(8,!0),C=(8**(s+1)-1)/7,a=2**(r+s*3),g=n.getInt32(12,!0),h=g>=28&&(n.getInt32(16,!0)&15)===3;if(g<30&&!h)throw new Error("CSI index has no tabix header, so it names no references; it may be a BAM or BCF index");let l=ce(A,16),Q=n.getInt32(16+g,!0),c=16+g+4,u,d=[];for(let k=0;k<Q;k++){d.push(c);let D=n.getInt32(c,!0);c+=4;for(let I=0;I<D;I++){let f=n.getUint32(c,!0);if(c+=4,f>C)c+=44;else{u=Ee(A,c,1,u),c+=8;let E=n.getInt32(c,!0);c+=4+16*E}}}function p(k){let D=d[k];if(D===void 0)return;let I=D,f=n.getInt32(I,!0);I+=4;let E={},B={},w;for(let y=0;y<f;y++){let m=n.getUint32(I,!0);if(I+=4,m>C)w=fe(A,I+28),I+=44;else{B[m]=iA(A,I),I+=8;let N=n.getInt32(I,!0);I+=4;let x=Array.from({length:N});for(let S=0;S<N;S++)x[S]=new O(iA(A,I),iA(A,I+8),m),I+=16;E[m]=x}}return Be(Object.values(E).flat()),{binIndex:E,loffsets:B,stats:w}}return{...l,csi:!0,refCount:Q,maxBlockSize:65536,firstDataLine:u,csiVersion:i,indices:le(p),minShift:r,depth:s,maxBinNumber:C,maxRefLength:a}}lowestOffset(e,A,{minShift:n,depth:o}){let{loffsets:i}=e,r;if(i){let s=(Qi(1,3*o)-1)/7+Bt(Math.max(A,0),n);for(;r===void 0&&s>0;)if(r=i[s],r===void 0){let C=Math.floor((s-1)/8),a=C*8+1;s=s>a?s-1:C}r??=i[0]}return r}reg2bins(e,A,{minShift:n,depth:o,maxBinNumber:i}){e=Math.max(e,0);let r=2**(n+o*3);A>r&&(A=r),A-=1;let s=0,C=0,a=n+o*3,g=[];for(;s<=o;a-=3,C+=Qi(1,s*3),s+=1){let h=C+Bt(e,a),l=C+Bt(A,a);if(l-h+g.length>i)throw new Error(`query ${e}-${A} is too large for current binning scheme (shift ${n}, depth ${o}), try a smaller query or a coarser index binning scheme`);g.push([h,l])}return g}};var po=21578324,Et=5,ct=14,he=2**(ct+Et*3);function Ci(t){return Math.min(Math.max(t,0),he)}var $=class extends cA{reg2bins(e,A){e>he&&console.warn("querying outside of possible tabix range");let n=Ci(e),o=Math.min(A,he)-1,i=[];return n<=o&&i.push([0,0],[1+(n>>26),1+(o>>26)],[9+(n>>23),9+(o>>23)],[73+(n>>20),73+(o>>20)],[585+(n>>17),585+(o>>17)],[4681+(n>>14),4681+(o>>14)]),i}lowestOffset(e,A){let n=e.linearIndex;return n?.[Math.min(Ci(A)>>ct,n.length-1)]}async _parse(e={}){let{bytes:A,dataView:n}=await this.readIndexBytes(e);if(n.getUint32(0,!0)!==po)throw new Error("Not a TBI file");let o=n.getUint32(4,!0),i=((1<<(Et+1)*3)-1)/7,{refNameToId:r,refIdToName:s,coordinateType:C,format:a,columnNumbers:g,metaChar:h,skipLines:l}=ce(A,8),c=36+n.getInt32(32,!0),u,d=[];for(let k=0;k<o;k++){d.push(c);let D=n.getInt32(c,!0);c+=4;for(let f=0;f<D;f++){let E=n.getUint32(c,!0);c+=4;let B=n.getInt32(c,!0);if(c+=4,E>i+1)throw new Error("tabix index contains too many bins, please use a CSI index");c+=16*B}let I=n.getInt32(c,!0);c+=4,u=Ee(A,c,I,u),c+=8*I}function p(k){let D=d[k];if(D===void 0)return;let I=D,f=n.getInt32(I,!0);I+=4;let E={},B;for(let m=0;m<f;m++){let N=n.getUint32(I,!0);if(I+=4,N>i+1)throw new Error("tabix index contains too many bins, please use a CSI index");if(N===i+1){let x=n.getInt32(I,!0);I+=4,x===2&&(B=fe(A,I+16)),I+=16*x}else{let x=n.getInt32(I,!0);I+=4;let S=Array.from({length:x});for(let F=0;F<x;F++)S[F]=new O(iA(A,I),iA(A,I+8),N),I+=16;E[N]=S}}let w=n.getInt32(I,!0);I+=4;let y=Array.from({length:w});for(let m=0;m<w;m++)y[m]=iA(A,I),I+=8;return Be(Object.values(E).flat(),y.map(m=>m.blockPosition)),{binIndex:E,linearIndex:y,stats:B}}return{indices:le(p),metaChar:h,minShift:ct,depth:Et,maxBinNumber:i,maxRefLength:he,skipLines:l,firstDataLine:u,columnNumbers:g,coordinateType:C,format:a,refIdToName:s,refNameToId:r,maxBlockSize:65536}}};var ft=9,ue=10,ci=13,Do=59,mo=60,yo=62,No=6,xo=1024*2**20,bo=180*1e3;function Fo(t,e,A){if(t)return t;if(e)return new EA(e);if(A)return new V(A);throw new TypeError("must provide either filehandle, path, or url")}function So({tbiFilehandle:t,csiFilehandle:e,tbiPath:A,csiPath:n,tbiUrl:o,csiUrl:i,path:r,url:s}){if(t)return new $({filehandle:t});if(e)return new fA({filehandle:e});if(A)return new $({filehandle:new EA(A)});if(n)return new fA({filehandle:new EA(n)});if(i)return new fA({filehandle:new V(i)});if(o)return new $({filehandle:new V(o)});if(r)return new $({filehandle:new EA(`${r}.tbi`)});if(s)return new $({filehandle:new V(`${s}.tbi`)});throw new TypeError("must provide one of tbiFilehandle, tbiPath, csiFilehandle, csiPath, tbiUrl, csiUrl")}function fi(t,e,A,n,o){return t[A]*256+(n-e[A])+o+1}function Ro(t,e,A,n,o,i,r){let s=n-A,C=e+s,a=0;if(t[o]===46)return C;let g=o;for(let h=o;h<=i;h++)if(h===i||t[h]===Do){let l=h-g;if(l>=10&&t[g]===83&&t[g+1]===86&&t[g+2]===84&&t[g+3]===89&&t[g+4]===80&&t[g+5]===69&&t[g+6]===61&&t[g+7]===84&&t[g+8]===82&&t[g+9]===65)return e+1;if(l>=4&&t[g]===69&&t[g+1]===78&&t[g+2]===68&&t[g+3]===61){let Q=de(t,g+4,h);Q>e&&(C=Q)}else l>=6&&t[g]===83&&t[g+1]===86&&t[g+2]===76&&t[g+3]===69&&t[g+4]===78&&t[g+5]===61&&(a=Jo(t,g+6,h,n+1,r));g=h+1}return Math.max(C,e+a)}var Bi=44;function vo(t,e,A){if(A-e<5||t[e]!==60||t[A-1]!==62)return!1;let n=t[e+4];if(n!==62&&n!==58)return!1;let o=t[e+1],i=t[e+2],r=t[e+3];return o===67&&i===78&&r===86||o===68&&i===69&&r===76||o===68&&i===85&&r===80||o===73&&i===78&&r===86}function Jo(t,e,A,n,o){let i=0,r=e,s=n;for(;r<A&&s<o;){let C=t.indexOf(Bi,r);(C===-1||C>A)&&(C=A);let a=t.indexOf(Bi,s);if((a===-1||a>o)&&(a=o),vo(t,s,a)){let g=de(t,t[r]===45?r+1:r,C);g>i&&(i=g)}r=C+1,s=a+1}return i}var li=new TextDecoder;function Ei(t,e){let A=-1,n=e.charCodeAt(0);for(let o=0,i=t.length;o<i;o++){let r=t[o];if(o===A+1&&r!==n)break;r===ue&&(A=o)}return t.subarray(0,A+1)}function Go(t,e){let A=0;for(let n=0;n<e;n++){let o=t.indexOf(ue,A);if(o===-1){A=t.length;break}A=o+1}return li.decode(t.subarray(0,A)).split(/\r?\n/).slice(0,e)}function de(t,e,A){let n=0;for(let o=e;o<A;o++){let i=t[o];if(i>=48&&i<=57)n=n*10+(i-48);else break}return n}function Lo(t,e,A,n,o,{start:i,end:r,pathCol:s,metaCharCode:C,decoder:a,callback:g}){let h=0,l=0;for(;h<t.length;){let Q=t.indexOf(ue,h);if(Q===-1)break;let c=h;h=Q+1;let u=c+e+o;for(;l<n.length&&u>=n[l];)l++;if(t[c]===C)continue;let d=c;for(let E=1;E<s;E++){let B=t.indexOf(ft,d);if(B===-1||B>=Q){d=Q;break}d=B+1}let p=t[d];if(p!==yo&&p!==mo)continue;let k=t.indexOf(ft,d);(k===-1||k>Q)&&(k=Q);let D=1/0,I=-1,f=d;for(;f<k;){let E=0,B=f+1;for(;B<k;B++){let w=t[B]-48;if(w<0||w>9)break;E=E*10+w}E<D&&(D=E),E>I&&(I=E),f=B}if(D>=r)return!0;if(I>=i){let E=t[Q-1]===ci?Q-1:Q;g(a.decode(t.subarray(c,E)),fi(A,n,l,c+e,o),D,I+1)}}return!1}var mA=class{filehandle;index;chunkCache;headerCache=new nA({});bgzfWorkerPool;constructor({path:e,filehandle:A,url:n,tbiPath:o,tbiUrl:i,tbiFilehandle:r,csiPath:s,csiUrl:C,csiFilehandle:a,chunkCacheSize:g=xo,chunkCacheIdleTimeoutMs:h=bo,chunkCacheBudget:l,bgzfWorkerPool:Q}){this.bgzfWorkerPool=Q,this.filehandle=Fo(A,e,n),this.index=So({tbiFilehandle:r,csiFilehandle:a,tbiPath:o,csiPath:s,tbiUrl:i,csiUrl:C,path:e,url:n}),this.chunkCache=new nA({maxSize:g,sizeOf:c=>{let u=0;for(let d of c.segments)u+=d.byteLength;return u},cacheKey:c=>c.toString(),idleTimeoutMs:h,budget:l,fill:(c,u)=>this.readChunk(c,{signal:u})})}clearChunkCache(){this.chunkCache.clear()}async bytesForRegions(e,A={}){let n=[];for(let{refName:i,start:r,end:s}of e){let C=await this.index.blocksForRange(i,r,s,A);for(let a of C)n.push(a)}let o=0;for(let i of Ce(n))o+=i.fetchedSize();return o}async getLines(e,A,n,o){let i,r={},s,C;typeof o=="function"?s=o:(r=o,s=o.lineCallback,i=o.signal,C=o.onProgress);let a=await this.index.getMetadata(r),g=A??0,h=n??a.maxRefLength;if(g>h)throw new TypeError("invalid start and end coordinates. start must be less than or equal to end");if(g===h)return;let l=await this.index.blocksForRange(e,g,h,r),Q=a.format==="VCF",c=a.columnNumbers.ref||0,u=a.columnNumbers.start||0,d=Q?8:a.columnNumbers.end||0,p=Math.max(c,u,d),k=a.metaChar?.charCodeAt(0),D=a.coordinateType==="1-based-closed"?-1:0,I=new TextEncoder,f=new TextDecoder,E=I.encode(e),B=new Int32Array(p+1),w=a.format==="GAF"?{start:g,end:h,pathCol:u,metaCharCode:k,decoder:f,callback:s}:void 0,y=0;for(let F of l)y+=F.fetchedSize();let m=0;C?.(0,y);let N=1,x=[],S=F=>{for(;x.length<Math.min(F,l.length);){let L=l[x.length],J=this.chunkCache.get(L,i);J.catch(()=>{}),x.push(J)}};S(1);for(let F=0,L=l.length;F<L;F++){let J=l[F],{segments:U,cpositions:oA,dpositions:X}=await x[F];m+=J.fetchedSize(),C?.(m,y);let rA=J.minv.dataPosition;if(w){if(Ct(U,(v,lA)=>Lo(v,lA,oA,X,rA,w)))return}else if(Ct(U,(v,lA)=>{let H=0,HA=0;for(;H<v.length;){let K=v.indexOf(ue,H);if(K===-1)break;let di=H+lA+rA;for(;HA<X.length&&di>=X[HA];)HA++;if(k!==void 0&&v[H]===k){H=K+1;continue}B[0]=H-1;for(let T=0;T<p;T++){let TA=B[T],we=TA<K?v.indexOf(ft,TA+1):-1;B[T+1]=we===-1||we>=K?K:we}let lt=B[c-1]+1,ht=B[c]-lt;if(ht!==E.length){H=K+1;continue}let dt=!0;for(let T=0;T<ht;T++)if(v[lt+T]!==E[T]){dt=!1;break}if(!dt){H=K+1;continue}let KA=de(v,B[u-1]+1,B[u])+D;if(KA>=h)return!0;let yA;if(d===0||d===u?yA=KA+1:Q?yA=Ro(v,KA,B[3]+1,B[4],B[d-1]+1,B[d],B[5]):yA=de(v,B[d-1]+1,B[d]),yA>g){let T=v[K-1]===ci?K-1:K,TA=f.decode(v.subarray(H,T));s(TA,fi(oA,X,HA,H+lA,rA),KA,yA)}H=K+1}return!1}))return;N=Math.min(N*2,No),S(F+1+N)}}async getMetadata(e={}){return this.index.getMetadata(e)}async readHeaderBytes(e){let{firstDataLine:A,maxBlockSize:n}=await this.getMetadata(e),o=(A?.blockPosition??0)+n,i=await this.filehandle.read(o,0,e);return _A(i)}async parseHeader(e){let{metaChar:A,skipLines:n=0}=await this.getMetadata(e),o=await this.readHeaderBytes(e);return{header:li.decode(A?Ei(o,A):o),skippedLines:n>0?Go(o,n):[]}}getParsedHeader(e={}){return this.headerCache.get("header",e.signal,A=>this.parseHeader({...e,signal:A}))}async getHeaderBuffer(e={}){let{metaChar:A}=await this.getMetadata(e),n=await this.readHeaderBytes(e);return A?Ei(n,A):n}async getSkippedLines(e={}){let{skipLines:A=0}=await this.getMetadata(e);return A<=0?[]:(await this.getParsedHeader(e)).skippedLines}async getHeader(e={}){return(await this.getParsedHeader(e)).header}async getHeaderLines(e={}){let{header:A,skippedLines:n}=await this.getParsedHeader(e);return(A?A.split(/\r?\n/):n).filter(Boolean)}async getReferenceSequenceNames(e={}){return(await this.getMetadata(e)).refIdToName}async lineCount(e,A={}){return this.index.lineCount(e,A)}async readChunk(e,A={}){let n=await this.filehandle.read(e.fetchedSize(),e.minv.blockPosition,A);BA(A.signal);let o=await this.bgzfWorkerPool;return rt(n,e,o)}};var Uo=t=>({type:"fileLocation",defaultValue:{uri:t,locationType:"UriLocation"}}),Zs=(t,e="")=>wt(t,{indexType:{model:kt.enumeration("IndexType",["TBI","CSI"]),type:"stringEnum",defaultValue:"TBI"},location:Uo(e)});function Mo(t,e,A){return{indexType:A?"CSI":"TBI",location:{uri:`${t}.${A?"csi":"tbi"}`,baseUri:e}}}function Os(t){let{walksUri:e,baseUri:A,csi:n}=t;if(typeof e!="string")return t;let o=`${e}.walks.bed.gz`;return{...t,walksLocation:{uri:o,baseUri:A},walksIndex:Mo(o,A,n)}}function Xs(t,e,A){let n=t.pluginManager;return new mA({filehandle:pt(t.getConf(e),n),...Dt(t.getConf([...A,"location"]),t.getConf([...A,"indexType"]),n)})}function _o(t){return`${t.assemblyName} ${t.refName} is not in this graph's index; a graph with PanSN names (GRCh38#0#chr1) needs ${t.assemblyName} mapped to its prefix in assemblyNameToPanSN`}var hi=class{constructor(e,A){this.file=e;this.adapter=A;this.lookup=yt({setup:async e=>SA(await this.file.getReferenceSequenceNames(e))})}async assemblyRefNames(e={}){let A=await this.file.getReferenceSequenceNames(e),n=qA(this.adapter,e.assemblyName),o=A.filter(i=>ke(i,n)).map(i=>ut(i));return o.length>0?[...new Set(o)]:A}async resolve(e,A){let n=await this.lookup(A);return RA(n,qA(this.adapter,e.assemblyName),e.refName)}async resolveMapped(e,A){let n=await this.resolve(e,A);if(n===void 0&&e.assemblyName){let o=await this.file.getReferenceSequenceNames(A),i=qA(this.adapter,e.assemblyName);if(o.every(r=>r.includes("#"))&&!o.some(r=>ke(r,i)))throw new Error(_o(e))}return n}async regionBytes(e,A={},n=async o=>o){let o=[];for(let i of e){let r=await this.resolve(i,A);r!==void 0&&o.push({refName:r,start:await n(i.start),end:i.end})}return Yt(this.file,o,A)}};export{_A as a,Ho as b,yt as c,ki as d,pi as e,bi as f,Le as g,ar as h,Uo as i,Zs as j,Mo as k,Os as l,Xs as m,_o as n,hi as o};
|
|
2
|
-
//# sourceMappingURL=chunk-EDSIYH4H.js.map
|