jbrowse-plugin-graphgenomeviewer 7.3.0 → 7.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/dist/chunks/{GbzBaseSyntenyAdapter-FXMGIM7Z.js → GbzBaseSyntenyAdapter-NYI2YVNG.js} +2 -2
  2. package/dist/chunks/{MinigraphBubbleAdapter-QCOMFPLL.js → MinigraphBubbleAdapter-ABZPIZYV.js} +2 -2
  3. package/dist/chunks/{RgfaTabixAdapter-O3NMNRZ2.js → RgfaTabixAdapter-3NQC5QPT.js} +2 -2
  4. package/dist/chunks/{WalkTabixSyntenyAdapter-7VDCNSFD.js → WalkTabixSyntenyAdapter-ZJJ4SQHH.js} +2 -2
  5. package/dist/chunks/chunk-BKBH3WGW.js +3 -0
  6. package/dist/chunks/chunk-BKBH3WGW.js.map +7 -0
  7. package/dist/chunks/{chunk-YKSUKPYY.js → chunk-QTOA4RB7.js} +2 -2
  8. package/dist/chunks/{chunk-2O3YVA2I.js → chunk-YXVEGNFQ.js} +2 -2
  9. package/dist/jbrowse-plugin-graphgenomeviewer.esm.js +2 -2
  10. package/dist/jbrowse-plugin-graphgenomeviewer.esm.js.map +1 -1
  11. package/package.json +2 -2
  12. package/src/RgfaTabixAdapter/configSchema.ts +4 -4
  13. package/src/RgfaTabixAdapter/test_data/{walks3_follow.GRCh38.walks.bed.gz → walks4_follow.GRCh38.walks.bed.gz} +0 -0
  14. package/src/RgfaTabixAdapter/test_data/{walks3_header.GRCh38.walks.bed.gz → walks4_header.GRCh38.walks.bed.gz} +0 -0
  15. package/src/RgfaTabixAdapter/test_data/walks4_inversion.GRCh38.walks.bed.gz +0 -0
  16. package/src/RgfaTabixAdapter/test_data/walks4_inversion.GRCh38.walks.bed.gz.tbi +0 -0
  17. package/src/RgfaTabixAdapter/test_data/walks4_lanepairs.GRCh38.walks.bed.gz +0 -0
  18. package/src/RgfaTabixAdapter/test_data/walks4_lanepairs.GRCh38.walks.bed.gz.tbi +0 -0
  19. package/src/RgfaTabixAdapter/test_data/walks4_maxnode.GRCh38.walks.bed.gz +0 -0
  20. package/src/RgfaTabixAdapter/test_data/walks4_rejoin.GRCh38.walks.bed.gz +0 -0
  21. package/src/RgfaTabixAdapter/test_data/{walks3_twopart.GRCh38.walks.bed.gz → walks4_twopart.GRCh38.walks.bed.gz} +0 -0
  22. package/src/RgfaTabixAdapter/walkFiles.test.ts +9 -9
  23. package/src/WalkTabixSyntenyAdapter/WalkTabixSyntenyAdapter.test.ts +5 -5
  24. package/src/WalkTabixSyntenyAdapter/configSchema.ts +3 -3
  25. package/src/WalkTabixSyntenyAdapter/gbzParity.test.ts +2 -2
  26. package/src/panSNAliases/panSNAliases.test.ts +2 -2
  27. package/src/version.ts +1 -1
  28. package/dist/chunks/chunk-B2EP6FOQ.js +0 -3
  29. package/dist/chunks/chunk-B2EP6FOQ.js.map +0 -7
  30. package/src/RgfaTabixAdapter/test_data/walks3_inversion.GRCh38.walks.bed.gz +0 -0
  31. package/src/RgfaTabixAdapter/test_data/walks3_inversion.GRCh38.walks.bed.gz.tbi +0 -0
  32. package/src/RgfaTabixAdapter/test_data/walks3_lanepairs.GRCh38.walks.bed.gz +0 -0
  33. package/src/RgfaTabixAdapter/test_data/walks3_lanepairs.GRCh38.walks.bed.gz.tbi +0 -0
  34. package/src/RgfaTabixAdapter/test_data/walks3_maxnode.GRCh38.walks.bed.gz +0 -0
  35. package/src/RgfaTabixAdapter/test_data/walks3_rejoin.GRCh38.walks.bed.gz +0 -0
  36. /package/dist/chunks/{GbzBaseSyntenyAdapter-FXMGIM7Z.js.map → GbzBaseSyntenyAdapter-NYI2YVNG.js.map} +0 -0
  37. /package/dist/chunks/{MinigraphBubbleAdapter-QCOMFPLL.js.map → MinigraphBubbleAdapter-ABZPIZYV.js.map} +0 -0
  38. /package/dist/chunks/{RgfaTabixAdapter-O3NMNRZ2.js.map → RgfaTabixAdapter-3NQC5QPT.js.map} +0 -0
  39. /package/dist/chunks/{WalkTabixSyntenyAdapter-7VDCNSFD.js.map → WalkTabixSyntenyAdapter-ZJJ4SQHH.js.map} +0 -0
  40. /package/dist/chunks/{chunk-YKSUKPYY.js.map → chunk-QTOA4RB7.js.map} +0 -0
  41. /package/dist/chunks/{chunk-2O3YVA2I.js.map → chunk-YXVEGNFQ.js.map} +0 -0
  42. /package/src/RgfaTabixAdapter/test_data/{walks3_follow.GRCh38.walks.bed.gz.tbi → walks4_follow.GRCh38.walks.bed.gz.tbi} +0 -0
  43. /package/src/RgfaTabixAdapter/test_data/{walks3_header.GRCh38.walks.bed.gz.tbi → walks4_header.GRCh38.walks.bed.gz.tbi} +0 -0
  44. /package/src/RgfaTabixAdapter/test_data/{walks3_maxnode.GRCh38.walks.bed.gz.tbi → walks4_maxnode.GRCh38.walks.bed.gz.tbi} +0 -0
  45. /package/src/RgfaTabixAdapter/test_data/{walks3_rejoin.GRCh38.walks.bed.gz.tbi → walks4_rejoin.GRCh38.walks.bed.gz.tbi} +0 -0
  46. /package/src/RgfaTabixAdapter/test_data/{walks3_twopart.GRCh38.walks.bed.gz.tbi → walks4_twopart.GRCh38.walks.bed.gz.tbi} +0 -0
@@ -1,2 +1,2 @@
1
- import{a as ne,b as ae,c as ue,d as re,e as oe,f as O,g as ie,h as se}from"./chunk-2O3YVA2I.js";import{a as te}from"./chunk-JCAZTNYG.js";import{a as ee}from"./chunk-KOB7YIMR.js";import{a as Q,b as D,c as Z,d as u,e as k,f as M,g as j,h as $,i as W,k as U}from"./chunk-WUSKVEA6.js";import"./chunk-RW775LQN.js";import{b as z,c as E}from"./chunk-VQ77X5QU.js";import"./chunk-M2D7NUOY.js";import"./chunk-YBLNN5FU.js";import"./chunk-6KUHGRHU.js";import"./chunk-6MUBJVBG.js";import{a as K,c as L,p as V}from"./chunk-B2EP6FOQ.js";import"./chunk-YBLNN5FU.js";import"./chunk-MVVXRZXV.js";import{g as F,h as N,i as C}from"./chunk-7HWHWPRW.js";import"./chunk-T4R3ZVEM.js";import{d as G,g as X,h as Y,i as J}from"./chunk-IKJZPPOA.js";import"./chunk-7WIBGKBU.js";import{a as P}from"./chunk-OGQ6OQDN.js";import"./chunk-NDRLCGPC.js";import{e as _,o as B}from"./chunk-TENPGIPX.js";function A(n){let i=/\.gbz\.db$/i;return i.test(n)?n.replace(i,".haplotype-index.db"):void 0}function ge(n){return Y(n)&&A(X(n))?J(n,i=>A(i)):void 0}function ye(n){return n instanceof Error&&(/\bHTTP 40[34]\b/.test(n.message)||n.code==="ENOENT")}async function ce(n,i){let e=ge(n);if(!e)return{};try{return await P(e,i).stat(),{location:e}}catch(t){return ye(t)?{}:{unreadable:String(t)}}}var be=5e3,we=50*2**20,H=class extends Error{constructor(e){super(`this GAF is ${(e/2**20).toFixed(0)} MB without an index; bgzip it and index it with tabix -p gaf`);this.name="UnindexedGafTooLargeError"}};function xe(n,i){if(n.length<=i)return n;let e=n.length/i;return Array.from({length:i},(t,a)=>n[Math.floor(a*e)])}var pe=(n,i)=>n.path.some(e=>i.has(e.name)),v=class{constructor(i,e){this.file=i;this.tabix=e;this.whole=L({setup:async({signal:i})=>{let{size:e}=await this.file.stat();if(e>we)throw new H(e);let t=await this.file.readFile({signal:i}),a=new TextDecoder().decode(t[0]===31&&t[1]===139?await K(t):t);return E(a)}})}async readIndexed(i,e,t){let a=1/0,r=-1/0;for(let s of e){let c=Number(s);Number.isInteger(c)&&(a=Math.min(a,c),r=Math.max(r,c))}let o=[];return a<=r&&await i.getLines("{node}",a,r+1,{signal:t,lineCallback:s=>{let c=z(s);c&&pe(c,e)&&o.push(c)}}),o}async readsOver(i,{signal:e}={}){let t=this.tabix?await this.readIndexed(this.tabix,i,e):(await this.whole({signal:e})).filter(a=>pe(a,i));return{records:xe(t,be),total:t.length}}};var I=class extends Error{constructor(e){super(e===void 0?"no haplotype index is set, so the walks cannot be named; build one with gbz-haplotype-index (cargo install gbz-haplotype-index) and set it as haplotypeIndexLocation":`the haplotype index beside the graph database could not be checked (${e}), so the walks cannot be named; if it is there, reload to try again, or set haplotypeIndexLocation`);this.name="NoHaplotypeIndexError"}},q=class extends Error{constructor(e,t){super(`the graph is cut on its reference, ${t}; a window on ${e} has no reference coordinates to cut at. Open the graph from a ${t} view, and find this haplotype's lane there`);this.name="HaplotypeWindowError"}};function Se(n,i){return`${u(n)}#${n.contig}@${i.start.node}.${i.start.offset}`}function Ne({alignment:n,assemblyName:i,refName:e,lane:t}){let{refStart:a,refEnd:r,strand:o,cigar:s}=n;if(!(r<=a)){let{name:c,hapStart:p,hapEnd:l}=n,f=Se(c,n),g={uniqueId:f,assemblyName:i,refName:e,start:a,end:r,type:"match",strand:o==="-"?-1:1,CIGAR:s,syntenyId:f,mate:{refName:c.contig,start:p,end:l,assemblyName:t}};return new ne(g)}}function Pe({pair:n,lane:i,mateLane:e}){return se({target:{name:`${u(n.target)}#${n.target.contig}`,assemblyName:i,refName:n.target.contig,start:n.targetStart,end:n.targetEnd},query:{name:`${u(n.query)}#${n.query.contig}`,assemblyName:e,refName:n.query.contig,start:n.queryStart,end:n.queryEnd},strand:n.strand,cigar:n.cigar,matches:n.matches,columns:n.columns})}var Le=12e4;function Re(n,i){let e=new Map;for(let a of n)for(let{name:r,start:o,end:s}of a.walkSpans()){let c=u(r);if(i.has(c)){let p=`${c}#${r.contig}`,l=e.get(p);l?l.push([o,s]):e.set(p,[[o,s]])}}let t=0;for(let a of e.values()){a.sort((r,o)=>r[0]-o[0]);for(let r=1;r<a.length;r++){let o=a[r][0]-a[r-1][1];o>0&&o<=Le&&(t=Math.max(t,o))}}return t}function fe(n,i){return n instanceof Z&&(n.message=`Zoom in to about ${_(n.fitsBp)} to see ${i}`),n}var le=(n,i,e)=>ie(fe(W(n,i,e)??n,"lanes"),e),me=n=>({...n,start:Math.floor(n.start),end:Math.ceil(n.end)}),T=class extends ae{constructor(){super(...arguments);this.graph=L({label:"Opening pangenome database",setup:async()=>{let e=this.getConf("gbzDbLocation"),t=this.getConf("haplotypeIndexLocation"),a=G(t)?{location:t}:await ce(e,this.pluginManager),r=a.location,o=await D.open({source:P(e,this.pluginManager),haplotypeIndex:r?P(r,this.pluginManager):void 0}),s=this.getConf("assemblyNames")[0];if(s===void 0)throw new Error("GbzBaseSyntenyAdapter needs assemblyNames: its first entry is the assembly the reference sample is loaded as");let c=await M(o),p=j({configured:this.getConf("referenceSample"),anchorPrefix:N(this,s),referenceSamples:c});return{db:o,anchor:s,referenceSample:p,referenceSamples:c,unreadableIndex:a.unreadable}}});this.gaf=L({label:"Opening reads",setup:async()=>{let e=this.getConf("readsLocation"),t=this.getConf(["readsIndex","location"]);return G(e)?new v(P(e,this.pluginManager),G(t)?V(this,["readsLocation"],["readsIndex"]):void 0):void 0}})}async referenceQuery(e,t){let{db:a,referenceSample:r}=await this.graph(t);return $(a,r,e)}async getHaplotypes(e={}){let{db:t,referenceSamples:a}=await this.graph(e),r=new Map;for(let o of await t.paths()){let s=u(o.name),c=r.get(s);c?c.contigs.includes(o.name.contig)||c.contigs.push(o.name.contig):r.set(s,{prefix:s,sample:o.name.sample,haplotype:o.name.haplotype,contigs:[o.name.contig],isReference:a.includes(o.name.sample)})}return[...r.values()]}async getHeader(e={}){let{anchor:t,referenceSample:a}=await this.graph(e),r=C(this),o=[];for(let s of await this.getHaplotypes(e))s.sample!==a&&o.push({name:O(r,s.prefix),label:s.prefix,group:s.sample});return{hasCoarseTier:!1,anchorAssemblyName:t,lanes:o}}async getRefNames(e={}){let{db:t,anchor:a,referenceSample:r}=await this.graph(e),{assemblyName:o}=e,s=o===a?void 0:N(this,o),c=(await t.paths()).filter(p=>o===a?p.isIndexed&&p.name.sample===r:F(u(p.name),s)).map(p=>p.name.contig);return[...new Set(c)]}keepPredicate(e,t){let a=e===void 0||e.length===0?void 0:e.map(r=>N(this,r));return a===void 0&&t===void 0?void 0:r=>k(r,a)&&(t===void 0||F(u(r),t))}async getSubgraph(e,t={}){let{signal:a}=t,{db:r,anchor:o,referenceSample:s,unreadableIndex:c}=await this.graph({signal:a}),{assemblyName:p,refName:l,start:f,end:g}=me(e);if(p!==o)throw new q(p,o);let y=await this.referenceQuery(l,{signal:a});if(!y)throw new Error(`${s} has no indexed path ${l} in this graph`);let b=this.keepPredicate(t.haplotypes);if(b!==void 0&&!r.hasHaplotypeIndex)throw new I(c);let d=await U(r,y,f,g,{context:this.getConf("context"),snarls:t.snarls??this.getConf("subgraphSnarls"),limit:this.getConf("nodeLimit"),signal:t.signal,keep:b}).catch(w=>{throw fe(w,"the graph")});return typeof d=="string"?d:te(d,{start:f,end:g},t.walkRows)}async getReads(e,t={}){let a=await this.gaf(t);return a?a.readsOver(new Set(e),t):{records:[],total:0}}async laneHaplotypes(e,t){let a=N(this,e);return(await this.getHaplotypes(t)).filter(r=>F(r.prefix,a))}async anchorFeatures(e,t){let{db:a}=await this.graph(t),{assemblyName:r,refName:o,start:s,end:c}=e,p=N(this,t.targetAssemblyName),l=C(this),f=this.keepPredicate(t.haplotypes,p),g=await this.referenceQuery(o,t),y=this.getConf("nodeLimit");return(g?await B(`Reading graph ${o}:${s.toLocaleString()}-${c.toLocaleString()}`,t.statusCallback,()=>a.getAlignments({path:g,start:s,end:c,context:this.getConf("context"),haplotypes:"all",limit:y,signal:t.signal,keep:f}).catch(d=>{throw le(d,y,c-s)})):[]).flatMap(d=>{let w=d.resolved?Ne({alignment:d,assemblyName:r,refName:o,lane:O(l,u(d.name))}):void 0;return w===void 0?[]:[w]})}async pairFeatures(e,t,a){let{db:r}=await this.graph(a),{refName:o,start:s,end:c}=e,l=(await Promise.all(t.map(async m=>({pair:m,featureSide:await this.laneHaplotypes(m.queryAssemblyName,a),mateSide:await this.laneHaplotypes(m.targetAssemblyName,a)})))).filter(({featureSide:m,mateSide:h})=>m.length>0&&h.length>0),f=new Set(l.flatMap(({featureSide:m,mateSide:h})=>[...m,...h].map(u))),g=await this.referenceQuery(o,a),y=this.getConf("nodeLimit"),b=this.getConf("context"),d=(m,h)=>r.getSubgraphs({path:m,start:s,end:c,context:h,snarls:this.getConf("subgraphSnarls"),haplotypes:"all",limit:y,signal:a.signal,keep:x=>f.has(u(x))}),w=async m=>{let h=await d(m,b).catch(S=>{throw le(S,y,c-s)}),x=Re(h,f),R=Math.ceil(x/2)+2e3;return x>0&&R>b?d(m,R).catch(S=>{if(S instanceof Q)return h;throw S}):h};return(g&&l.length>0?await B(oe(t),a.statusCallback,()=>w(g)):[]).flatMap(m=>l.flatMap(({pair:h,featureSide:x,mateSide:R})=>x.flatMap(S=>R.flatMap(de=>m.pairAlignments({target:S,query:de,bases:!1}).map(he=>Pe({pair:he,lane:h.queryAssemblyName,mateLane:h.targetAssemblyName}))))))}getFeatures(e,t={}){let a=me(e);return ee(async r=>{let{db:o,anchor:s,unreadableIndex:c}=await this.graph(t);if(!o.hasHaplotypeIndex)throw new I(c);if(a.assemblyName===s){let p=re(t),l=p.length>0?await this.pairFeatures(a,p,t):await this.anchorFeatures(a,t);for(let f of l)r.next(f)}r.complete()},t.signal)}};export{I as NoHaplotypeIndexError,ue as PairTargetError,T as default,Re as widestWalkGap};
2
- //# sourceMappingURL=GbzBaseSyntenyAdapter-FXMGIM7Z.js.map
1
+ import{a as ne,b as ae,c as ue,d as re,e as oe,f as O,g as ie,h as se}from"./chunk-YXVEGNFQ.js";import{a as te}from"./chunk-JCAZTNYG.js";import{a as ee}from"./chunk-KOB7YIMR.js";import{a as Q,b as D,c as Z,d as u,e as k,f as M,g as j,h as $,i as W,k as U}from"./chunk-WUSKVEA6.js";import"./chunk-RW775LQN.js";import{b as z,c as E}from"./chunk-VQ77X5QU.js";import"./chunk-M2D7NUOY.js";import"./chunk-YBLNN5FU.js";import"./chunk-6KUHGRHU.js";import"./chunk-6MUBJVBG.js";import{a as K,c as L,p as V}from"./chunk-BKBH3WGW.js";import"./chunk-YBLNN5FU.js";import"./chunk-MVVXRZXV.js";import{g as F,h as N,i as C}from"./chunk-7HWHWPRW.js";import"./chunk-T4R3ZVEM.js";import{d as G,g as X,h as Y,i as J}from"./chunk-IKJZPPOA.js";import"./chunk-7WIBGKBU.js";import{a as P}from"./chunk-OGQ6OQDN.js";import"./chunk-NDRLCGPC.js";import{e as _,o as B}from"./chunk-TENPGIPX.js";function A(n){let i=/\.gbz\.db$/i;return i.test(n)?n.replace(i,".haplotype-index.db"):void 0}function ge(n){return Y(n)&&A(X(n))?J(n,i=>A(i)):void 0}function ye(n){return n instanceof Error&&(/\bHTTP 40[34]\b/.test(n.message)||n.code==="ENOENT")}async function ce(n,i){let e=ge(n);if(!e)return{};try{return await P(e,i).stat(),{location:e}}catch(t){return ye(t)?{}:{unreadable:String(t)}}}var be=5e3,we=50*2**20,H=class extends Error{constructor(e){super(`this GAF is ${(e/2**20).toFixed(0)} MB without an index; bgzip it and index it with tabix -p gaf`);this.name="UnindexedGafTooLargeError"}};function xe(n,i){if(n.length<=i)return n;let e=n.length/i;return Array.from({length:i},(t,a)=>n[Math.floor(a*e)])}var pe=(n,i)=>n.path.some(e=>i.has(e.name)),v=class{constructor(i,e){this.file=i;this.tabix=e;this.whole=L({setup:async({signal:i})=>{let{size:e}=await this.file.stat();if(e>we)throw new H(e);let t=await this.file.readFile({signal:i}),a=new TextDecoder().decode(t[0]===31&&t[1]===139?await K(t):t);return E(a)}})}async readIndexed(i,e,t){let a=1/0,r=-1/0;for(let s of e){let c=Number(s);Number.isInteger(c)&&(a=Math.min(a,c),r=Math.max(r,c))}let o=[];return a<=r&&await i.getLines("{node}",a,r+1,{signal:t,lineCallback:s=>{let c=z(s);c&&pe(c,e)&&o.push(c)}}),o}async readsOver(i,{signal:e}={}){let t=this.tabix?await this.readIndexed(this.tabix,i,e):(await this.whole({signal:e})).filter(a=>pe(a,i));return{records:xe(t,be),total:t.length}}};var I=class extends Error{constructor(e){super(e===void 0?"no haplotype index is set, so the walks cannot be named; build one with gbz-haplotype-index (cargo install gbz-haplotype-index) and set it as haplotypeIndexLocation":`the haplotype index beside the graph database could not be checked (${e}), so the walks cannot be named; if it is there, reload to try again, or set haplotypeIndexLocation`);this.name="NoHaplotypeIndexError"}},q=class extends Error{constructor(e,t){super(`the graph is cut on its reference, ${t}; a window on ${e} has no reference coordinates to cut at. Open the graph from a ${t} view, and find this haplotype's lane there`);this.name="HaplotypeWindowError"}};function Se(n,i){return`${u(n)}#${n.contig}@${i.start.node}.${i.start.offset}`}function Ne({alignment:n,assemblyName:i,refName:e,lane:t}){let{refStart:a,refEnd:r,strand:o,cigar:s}=n;if(!(r<=a)){let{name:c,hapStart:p,hapEnd:l}=n,f=Se(c,n),g={uniqueId:f,assemblyName:i,refName:e,start:a,end:r,type:"match",strand:o==="-"?-1:1,CIGAR:s,syntenyId:f,mate:{refName:c.contig,start:p,end:l,assemblyName:t}};return new ne(g)}}function Pe({pair:n,lane:i,mateLane:e}){return se({target:{name:`${u(n.target)}#${n.target.contig}`,assemblyName:i,refName:n.target.contig,start:n.targetStart,end:n.targetEnd},query:{name:`${u(n.query)}#${n.query.contig}`,assemblyName:e,refName:n.query.contig,start:n.queryStart,end:n.queryEnd},strand:n.strand,cigar:n.cigar,matches:n.matches,columns:n.columns})}var Le=12e4;function Re(n,i){let e=new Map;for(let a of n)for(let{name:r,start:o,end:s}of a.walkSpans()){let c=u(r);if(i.has(c)){let p=`${c}#${r.contig}`,l=e.get(p);l?l.push([o,s]):e.set(p,[[o,s]])}}let t=0;for(let a of e.values()){a.sort((r,o)=>r[0]-o[0]);for(let r=1;r<a.length;r++){let o=a[r][0]-a[r-1][1];o>0&&o<=Le&&(t=Math.max(t,o))}}return t}function fe(n,i){return n instanceof Z&&(n.message=`Zoom in to about ${_(n.fitsBp)} to see ${i}`),n}var le=(n,i,e)=>ie(fe(W(n,i,e)??n,"lanes"),e),me=n=>({...n,start:Math.floor(n.start),end:Math.ceil(n.end)}),T=class extends ae{constructor(){super(...arguments);this.graph=L({label:"Opening pangenome database",setup:async()=>{let e=this.getConf("gbzDbLocation"),t=this.getConf("haplotypeIndexLocation"),a=G(t)?{location:t}:await ce(e,this.pluginManager),r=a.location,o=await D.open({source:P(e,this.pluginManager),haplotypeIndex:r?P(r,this.pluginManager):void 0}),s=this.getConf("assemblyNames")[0];if(s===void 0)throw new Error("GbzBaseSyntenyAdapter needs assemblyNames: its first entry is the assembly the reference sample is loaded as");let c=await M(o),p=j({configured:this.getConf("referenceSample"),anchorPrefix:N(this,s),referenceSamples:c});return{db:o,anchor:s,referenceSample:p,referenceSamples:c,unreadableIndex:a.unreadable}}});this.gaf=L({label:"Opening reads",setup:async()=>{let e=this.getConf("readsLocation"),t=this.getConf(["readsIndex","location"]);return G(e)?new v(P(e,this.pluginManager),G(t)?V(this,["readsLocation"],["readsIndex"]):void 0):void 0}})}async referenceQuery(e,t){let{db:a,referenceSample:r}=await this.graph(t);return $(a,r,e)}async getHaplotypes(e={}){let{db:t,referenceSamples:a}=await this.graph(e),r=new Map;for(let o of await t.paths()){let s=u(o.name),c=r.get(s);c?c.contigs.includes(o.name.contig)||c.contigs.push(o.name.contig):r.set(s,{prefix:s,sample:o.name.sample,haplotype:o.name.haplotype,contigs:[o.name.contig],isReference:a.includes(o.name.sample)})}return[...r.values()]}async getHeader(e={}){let{anchor:t,referenceSample:a}=await this.graph(e),r=C(this),o=[];for(let s of await this.getHaplotypes(e))s.sample!==a&&o.push({name:O(r,s.prefix),label:s.prefix,group:s.sample});return{hasCoarseTier:!1,anchorAssemblyName:t,lanes:o}}async getRefNames(e={}){let{db:t,anchor:a,referenceSample:r}=await this.graph(e),{assemblyName:o}=e,s=o===a?void 0:N(this,o),c=(await t.paths()).filter(p=>o===a?p.isIndexed&&p.name.sample===r:F(u(p.name),s)).map(p=>p.name.contig);return[...new Set(c)]}keepPredicate(e,t){let a=e===void 0||e.length===0?void 0:e.map(r=>N(this,r));return a===void 0&&t===void 0?void 0:r=>k(r,a)&&(t===void 0||F(u(r),t))}async getSubgraph(e,t={}){let{signal:a}=t,{db:r,anchor:o,referenceSample:s,unreadableIndex:c}=await this.graph({signal:a}),{assemblyName:p,refName:l,start:f,end:g}=me(e);if(p!==o)throw new q(p,o);let y=await this.referenceQuery(l,{signal:a});if(!y)throw new Error(`${s} has no indexed path ${l} in this graph`);let b=this.keepPredicate(t.haplotypes);if(b!==void 0&&!r.hasHaplotypeIndex)throw new I(c);let d=await U(r,y,f,g,{context:this.getConf("context"),snarls:t.snarls??this.getConf("subgraphSnarls"),limit:this.getConf("nodeLimit"),signal:t.signal,keep:b}).catch(w=>{throw fe(w,"the graph")});return typeof d=="string"?d:te(d,{start:f,end:g},t.walkRows)}async getReads(e,t={}){let a=await this.gaf(t);return a?a.readsOver(new Set(e),t):{records:[],total:0}}async laneHaplotypes(e,t){let a=N(this,e);return(await this.getHaplotypes(t)).filter(r=>F(r.prefix,a))}async anchorFeatures(e,t){let{db:a}=await this.graph(t),{assemblyName:r,refName:o,start:s,end:c}=e,p=N(this,t.targetAssemblyName),l=C(this),f=this.keepPredicate(t.haplotypes,p),g=await this.referenceQuery(o,t),y=this.getConf("nodeLimit");return(g?await B(`Reading graph ${o}:${s.toLocaleString()}-${c.toLocaleString()}`,t.statusCallback,()=>a.getAlignments({path:g,start:s,end:c,context:this.getConf("context"),haplotypes:"all",limit:y,signal:t.signal,keep:f}).catch(d=>{throw le(d,y,c-s)})):[]).flatMap(d=>{let w=d.resolved?Ne({alignment:d,assemblyName:r,refName:o,lane:O(l,u(d.name))}):void 0;return w===void 0?[]:[w]})}async pairFeatures(e,t,a){let{db:r}=await this.graph(a),{refName:o,start:s,end:c}=e,l=(await Promise.all(t.map(async m=>({pair:m,featureSide:await this.laneHaplotypes(m.queryAssemblyName,a),mateSide:await this.laneHaplotypes(m.targetAssemblyName,a)})))).filter(({featureSide:m,mateSide:h})=>m.length>0&&h.length>0),f=new Set(l.flatMap(({featureSide:m,mateSide:h})=>[...m,...h].map(u))),g=await this.referenceQuery(o,a),y=this.getConf("nodeLimit"),b=this.getConf("context"),d=(m,h)=>r.getSubgraphs({path:m,start:s,end:c,context:h,snarls:this.getConf("subgraphSnarls"),haplotypes:"all",limit:y,signal:a.signal,keep:x=>f.has(u(x))}),w=async m=>{let h=await d(m,b).catch(S=>{throw le(S,y,c-s)}),x=Re(h,f),R=Math.ceil(x/2)+2e3;return x>0&&R>b?d(m,R).catch(S=>{if(S instanceof Q)return h;throw S}):h};return(g&&l.length>0?await B(oe(t),a.statusCallback,()=>w(g)):[]).flatMap(m=>l.flatMap(({pair:h,featureSide:x,mateSide:R})=>x.flatMap(S=>R.flatMap(de=>m.pairAlignments({target:S,query:de,bases:!1}).map(he=>Pe({pair:he,lane:h.queryAssemblyName,mateLane:h.targetAssemblyName}))))))}getFeatures(e,t={}){let a=me(e);return ee(async r=>{let{db:o,anchor:s,unreadableIndex:c}=await this.graph(t);if(!o.hasHaplotypeIndex)throw new I(c);if(a.assemblyName===s){let p=re(t),l=p.length>0?await this.pairFeatures(a,p,t):await this.anchorFeatures(a,t);for(let f of l)r.next(f)}r.complete()},t.signal)}};export{I as NoHaplotypeIndexError,ue as PairTargetError,T as default,Re as widestWalkGap};
2
+ //# sourceMappingURL=GbzBaseSyntenyAdapter-NYI2YVNG.js.map
@@ -1,2 +1,2 @@
1
- import{a as f,d as c,f as d}from"./chunk-FIRQAKMX.js";import{a as g}from"./chunk-KOB7YIMR.js";import{b,k as m,p,r as u}from"./chunk-B2EP6FOQ.js";import"./chunk-YBLNN5FU.js";import"./chunk-MVVXRZXV.js";import"./chunk-7HWHWPRW.js";import"./chunk-OGQ6OQDN.js";import"./chunk-NDRLCGPC.js";import{a as i,o as l}from"./chunk-TENPGIPX.js";var a=class extends b{constructor(){super(...arguments);this.bubbles=p(this,["bubblesLocation"],["index"]);this.refNames=new u(this.bubbles,this)}static{this.capabilities=["getFeatures","getRefNames"]}async getRefNames(t={}){return this.refNames.assemblyRefNames(t)}async getRegionByteSize(t,s={}){return this.refNames.regionBytes(t,s)}async hasDataForRefName(){return!0}getFeatures(t,s={}){let{signal:n,statusCallback:h}=s;return g(async r=>{let o=await this.refNames.resolveMapped(t,s);o!==void 0&&await l("Downloading bubbles",h,()=>m(this.bubbles,o,t.start,t.end,{signal:n,lineCallback:(N,y)=>{let e=f(N);r.next(new i({uniqueId:`bubble-${y}`,refName:t.refName,start:e.start,end:e.end,name:c(e),description:d(e),type:"bubble",score:e.segmentCount,segmentCount:e.segmentCount,pathCount:e.pathCount,inversion:e.inversion,shortestAlleleLength:e.shortestAlleleLength,longestAlleleLength:e.longestAlleleLength,segments:e.segments,shortestAllele:e.shortestAllele,longestAllele:e.longestAllele}))}})),r.complete()},n)}};export{a as default};
2
- //# sourceMappingURL=MinigraphBubbleAdapter-QCOMFPLL.js.map
1
+ import{a as f,d as c,f as d}from"./chunk-FIRQAKMX.js";import{a as g}from"./chunk-KOB7YIMR.js";import{b,k as m,p,r as u}from"./chunk-BKBH3WGW.js";import"./chunk-YBLNN5FU.js";import"./chunk-MVVXRZXV.js";import"./chunk-7HWHWPRW.js";import"./chunk-OGQ6OQDN.js";import"./chunk-NDRLCGPC.js";import{a as i,o as l}from"./chunk-TENPGIPX.js";var a=class extends b{constructor(){super(...arguments);this.bubbles=p(this,["bubblesLocation"],["index"]);this.refNames=new u(this.bubbles,this)}static{this.capabilities=["getFeatures","getRefNames"]}async getRefNames(t={}){return this.refNames.assemblyRefNames(t)}async getRegionByteSize(t,s={}){return this.refNames.regionBytes(t,s)}async hasDataForRefName(){return!0}getFeatures(t,s={}){let{signal:n,statusCallback:h}=s;return g(async r=>{let o=await this.refNames.resolveMapped(t,s);o!==void 0&&await l("Downloading bubbles",h,()=>m(this.bubbles,o,t.start,t.end,{signal:n,lineCallback:(N,y)=>{let e=f(N);r.next(new i({uniqueId:`bubble-${y}`,refName:t.refName,start:e.start,end:e.end,name:c(e),description:d(e),type:"bubble",score:e.segmentCount,segmentCount:e.segmentCount,pathCount:e.pathCount,inversion:e.inversion,shortestAlleleLength:e.shortestAlleleLength,longestAlleleLength:e.longestAlleleLength,segments:e.segments,shortestAllele:e.shortestAllele,longestAllele:e.longestAllele}))}})),r.complete()},n)}};export{a as default};
2
+ //# sourceMappingURL=MinigraphBubbleAdapter-ABZPIZYV.js.map
@@ -1,2 +1,2 @@
1
- import{a as b}from"./chunk-YKSUKPYY.js";import"./chunk-JCAZTNYG.js";import{a as N}from"./chunk-KOB7YIMR.js";import"./chunk-YBLNN5FU.js";import"./chunk-6KUHGRHU.js";import"./chunk-6MUBJVBG.js";import{b as g,h as c,i as u,j as h,k as w,p as m,q as k,r as x}from"./chunk-B2EP6FOQ.js";import"./chunk-YBLNN5FU.js";import"./chunk-MVVXRZXV.js";import"./chunk-7HWHWPRW.js";import{d}from"./chunk-IKJZPPOA.js";import"./chunk-OGQ6OQDN.js";import"./chunk-NDRLCGPC.js";import{a as p,o as f}from"./chunk-TENPGIPX.js";var l=class extends g{constructor(){super(...arguments);this.fine=this.openIndex([])}static{this.capabilities=["getFeatures","getRefNames"]}openIndex(e){let t=m(this,[...e,"segmentsLocation"],[...e,"segmentsIndex"]),s=m(this,[...e,"linksLocation"],[...e,"linksIndex"]),n=this.getConf("walksLocation"),i=e.length===0&&d(n)?new b(m(this,["walksLocation"],["walksIndex"]),this):void 0;return{segments:t,links:s,walks:i,refNames:new x(i?.file??t,this)}}async getHaplotypeNames(e={}){return this.fine.walks?.haplotypeNames(e)}index(e="fine"){return e==="fine"?this.fine:(this.coarse??=this.openIndex(["coarse"]),this.coarse)}async getRefNames(e={}){return this.fine.refNames.assemblyRefNames(e)}async getRegionByteSize(e,t={}){let{walks:s,refNames:n}=this.fine;return n.regionBytes(e,t,s&&(i=>s.reader.queryStart(i,t)))}async hasDataForRefName(){return!0}getFeatures(e,t={}){return N(async s=>{let n=await this.fine.refNames.resolveMapped(e,t);if(n!==void 0){let{walks:i}=this.fine,a=r=>{s.next(r)};await(i?this.walkFeatures(i,n,e,t,a):this.segmentFeatures(n,e,t,a))}s.complete()},t.signal)}async walkFeatures(e,t,s,n,i){let a=await f("Downloading walks",n.statusCallback,()=>e.referenceNodes(t,s,n));for(let r of a){let o=String(r.id);i(new p({uniqueId:o,refName:s.refName,start:r.start,end:r.end,name:o,type:"segment",rank:0,stableName:r.refName}))}}async segmentFeatures(e,t,s,n){await f("Downloading segments",s.statusCallback,()=>w(this.fine.segments,e,t.start,t.end,{signal:s.signal,lineCallback:i=>{let{segment:a,anchored:r}=c(i);if(r&&a.refName!==e)return;let o=u(a);n(new p({uniqueId:a.id,refName:t.refName,start:a.start,end:a.end,name:a.id,type:"segment",rank:a.rank,stableName:a.refName,...o&&{samples:o,sampleCount:o.length}}))}}))}async getSubgraph(e,t={}){let{hops:s,signal:n,tier:i}=t,a=this.index(i),r=await a.refNames.resolve(e,{signal:n});if(r===void 0)throw new Error(k(e));return a.walks?a.walks.subgraph(r,e,t):h(a,{refName:r,start:e.start,end:e.end},{hops:s,signal:n})}};export{l as default};
2
- //# sourceMappingURL=RgfaTabixAdapter-O3NMNRZ2.js.map
1
+ import{a as b}from"./chunk-QTOA4RB7.js";import"./chunk-JCAZTNYG.js";import{a as N}from"./chunk-KOB7YIMR.js";import"./chunk-YBLNN5FU.js";import"./chunk-6KUHGRHU.js";import"./chunk-6MUBJVBG.js";import{b as g,h as c,i as u,j as h,k as w,p as m,q as k,r as x}from"./chunk-BKBH3WGW.js";import"./chunk-YBLNN5FU.js";import"./chunk-MVVXRZXV.js";import"./chunk-7HWHWPRW.js";import{d}from"./chunk-IKJZPPOA.js";import"./chunk-OGQ6OQDN.js";import"./chunk-NDRLCGPC.js";import{a as p,o as f}from"./chunk-TENPGIPX.js";var l=class extends g{constructor(){super(...arguments);this.fine=this.openIndex([])}static{this.capabilities=["getFeatures","getRefNames"]}openIndex(e){let t=m(this,[...e,"segmentsLocation"],[...e,"segmentsIndex"]),s=m(this,[...e,"linksLocation"],[...e,"linksIndex"]),n=this.getConf("walksLocation"),i=e.length===0&&d(n)?new b(m(this,["walksLocation"],["walksIndex"]),this):void 0;return{segments:t,links:s,walks:i,refNames:new x(i?.file??t,this)}}async getHaplotypeNames(e={}){return this.fine.walks?.haplotypeNames(e)}index(e="fine"){return e==="fine"?this.fine:(this.coarse??=this.openIndex(["coarse"]),this.coarse)}async getRefNames(e={}){return this.fine.refNames.assemblyRefNames(e)}async getRegionByteSize(e,t={}){let{walks:s,refNames:n}=this.fine;return n.regionBytes(e,t,s&&(i=>s.reader.queryStart(i,t)))}async hasDataForRefName(){return!0}getFeatures(e,t={}){return N(async s=>{let n=await this.fine.refNames.resolveMapped(e,t);if(n!==void 0){let{walks:i}=this.fine,a=r=>{s.next(r)};await(i?this.walkFeatures(i,n,e,t,a):this.segmentFeatures(n,e,t,a))}s.complete()},t.signal)}async walkFeatures(e,t,s,n,i){let a=await f("Downloading walks",n.statusCallback,()=>e.referenceNodes(t,s,n));for(let r of a){let o=String(r.id);i(new p({uniqueId:o,refName:s.refName,start:r.start,end:r.end,name:o,type:"segment",rank:0,stableName:r.refName}))}}async segmentFeatures(e,t,s,n){await f("Downloading segments",s.statusCallback,()=>w(this.fine.segments,e,t.start,t.end,{signal:s.signal,lineCallback:i=>{let{segment:a,anchored:r}=c(i);if(r&&a.refName!==e)return;let o=u(a);n(new p({uniqueId:a.id,refName:t.refName,start:a.start,end:a.end,name:a.id,type:"segment",rank:a.rank,stableName:a.refName,...o&&{samples:o,sampleCount:o.length}}))}}))}async getSubgraph(e,t={}){let{hops:s,signal:n,tier:i}=t,a=this.index(i),r=await a.refNames.resolve(e,{signal:n});if(r===void 0)throw new Error(k(e));return a.walks?a.walks.subgraph(r,e,t):h(a,{refName:r,start:e.start,end:e.end},{hops:s,signal:n})}};export{l as default};
2
+ //# sourceMappingURL=RgfaTabixAdapter-3NQC5QPT.js.map
@@ -1,2 +1,2 @@
1
- import{a as K}from"./chunk-YKSUKPYY.js";import{b as q,d as U,e as X,f as O,g as z,h as G}from"./chunk-2O3YVA2I.js";import"./chunk-JCAZTNYG.js";import{a as H}from"./chunk-KOB7YIMR.js";import{p as M,q as _,r as T}from"./chunk-M2D7NUOY.js";import"./chunk-YBLNN5FU.js";import"./chunk-6KUHGRHU.js";import"./chunk-6MUBJVBG.js";import{e as $,p as j,r as D}from"./chunk-B2EP6FOQ.js";import"./chunk-YBLNN5FU.js";import"./chunk-MVVXRZXV.js";import{a as A,c as I,d as W,g as F,h as w,i as x}from"./chunk-7HWHWPRW.js";import"./chunk-T4R3ZVEM.js";import"./chunk-7WIBGKBU.js";import"./chunk-OGQ6OQDN.js";import"./chunk-NDRLCGPC.js";import{o as R}from"./chunk-TENPGIPX.js";var se=50;function re(r){let i=[];for(let e=0;e<r.length;e++){let[t,a]=r[e],[s,n]=r[e+1]??[];a===n&&a<=se&&(t==="I"&&s==="D"||t==="D"&&s==="I")?(i.push(["X",a]),e++):i.push([t,a])}return i}function v(r){return Array.from(r.ids,(i,e)=>2*i+r.rev[e])}function P(r,i){let e=r.get(i);return e===void 0?0:e.end-e.start}function V(r){let i=new Map,e=s=>{let n=P(r,s),o=i.get(n);return o===void 0&&(o="N".repeat(n),i.set(n,o)),o},t=new Map,a=s=>{let n=t.get(s);return n===void 0&&(n=v(s),t.set(s,n)),n};return(s,n)=>_({query:a(s),target:a(n),sequenceOf:e,bases:!1})}var B=100;function E(r,i,e){let t=r.at(-1);e>0&&(t?.[0]===i?t[1]+=e:r.push([i,e]))}function Z(r){let i=t=>P(r,t>>1),e=t=>{let a=new Float64Array(t.length+1);return t.forEach((s,n)=>{a[n+1]=a[n]+i(s)}),a};return(t,a)=>{let s=v(a),n=v(t),[o,l]=M(n,s,i),[u,f]=M(n.map(g=>g^1).reverse(),s,i),c=f>l,p=c?u:o,N=Math.max(l,f);if(N<B)return[];let d=e(s),h=e(n),y=g=>c?n.length-1-p[g][0]:p[g][0],m=[];p.forEach(([,g],k)=>{if(k>0){let[ee,te]=[y(k-1),y(k)].sort((ae,ne)=>ae-ne);E(m,"I",h[te]-h[ee+1]),E(m,"D",d[g]-d[p[k-1][1]+1])}E(m,"=",i(s[g]))});let[b,S]=[y(0),y(p.length-1)].sort((g,k)=>g-k);return[{queryStart:h[b],queryEnd:h[S+1],targetStart:d[p[0][1]],targetEnd:d[p.at(-1)[1]+1],strand:c?"-":"+",edits:m,sharedBases:N}]}}function oe(r){let i=new Map,e=new Set;r.ids.forEach((t,a)=>{i.has(t)?e.add(t):i.set(t,r.rev[a])});for(let t of e)i.delete(t);return i}function J(r){let i=new Map,e=t=>{let a=i.get(t);return a===void 0&&(a=oe(t),i.set(t,a)),a};return(t,a)=>{let s=e(a),n=0,o=0;for(let[l,u]of e(t)){let f=s.get(l);f===u?n+=P(r,l):f!==void 0&&(o+=P(r,l))}return{same:n,opposite:o}}}function Q(r){let i=Z(r),e=V(r),t=J(r);return(a,s)=>{let{same:n,opposite:o}=t(a,s);return n>=B&&o>=B?e(a,s):i(a,s)}}var ie=1e4;function Y(r){let i=Z(r),e=V(r),t=J(r);return(a,s)=>{let n=i(a,s),o=n[0]?.strand,{same:l,opposite:u}=t(a,s);return o===void 0||Math.min(l,u)<ie?n:[...n,...e(a,s).filter(f=>f.strand!==o)]}}function C({chain:r,target:i,query:e,assemblyName:t,refName:a,mateAssemblyName:s}){let n=re(r.edits);return G({target:{name:i.name,assemblyName:t,refName:a,start:i.hapStart+r.targetStart,end:i.hapStart+r.targetEnd},query:{name:e.name,assemblyName:s,refName:W(e.name),start:e.hapStart+r.queryStart,end:e.hapStart+r.queryEnd},strand:r.strand,cigar:T(n),matches:n.reduce((o,[l,u])=>o+(l==="="?u:0),0),columns:n.reduce((o,[,l])=>o+l,0)})}var me=r=>I(r.name)??r.name,L=class extends q{constructor(){super(...arguments);this.walks=new K(j(this,["walksLocation"],["walksIndex"]),this);this.refNames=new D(this.walks.file,this)}get anchor(){let e=this.getConf("assemblyNames")[0];if(e===void 0)throw new Error("WalkTabixSyntenyAdapter needs assemblyNames: its first entry is the assembly the reference sample is loaded as");return e}async getHaplotypeNames(e={}){return this.walks.haplotypeNames(e)}async getHeader(e={}){let{haplotypes:t}=await this.walks.reader.header(e),{anchor:a}=this,s=w(this,a),n=x(this);return{hasCoarseTier:!1,anchorAssemblyName:a,lanes:t.filter(o=>o!==s&&A(o)!==s).map(o=>({name:O(n,o),label:o,group:A(o)}))}}async getRefNames(e={}){let{assemblyName:t}=e;return t===void 0||t===this.anchor?this.refNames.assemblyRefNames({...e,assemblyName:this.anchor}):[]}async getSubgraph(e,t={}){let a=await this.refNames.resolve(e,{signal:t.signal});if(a===void 0)throw new Error(`${e.assemblyName} ${e.refName} is not in this graph's index; the graph is cut on ${this.anchor}, mapped to its PanSN prefix in assemblyNameToPanSN`);return this.walks.subgraph(a,e,t)}async laneWalks(e,t,a,s,n){return R(n,s.statusCallback,()=>this.walks.reader.cut(e,t,{...this.walks.budgets(),signal:s.signal,keep:$(a,e),links:!1}).catch(o=>{throw z(o,t.end-t.start)}))}async anchorFeatures(e,t,a){let s=a.haplotypes?.length?a.haplotypes.map(m=>w(this,m)):void 0,n=w(this,a.targetAssemblyName),o=n===void 0?s:s===void 0||s.some(m=>F(n,m)||F(m,n))?[n]:[];if(o?.length===0)return[];let{start:l,end:u}=t,{graph:f,fragments:c}=await this.laneWalks(e,t,o,a,`Reading walks ${t.refName}:${l.toLocaleString()}-${u.toLocaleString()}`),p=Y(f.nodes),N=x(this),d=c.filter(m=>m.name===e),h=m=>o===void 0?0:o.findIndex(b=>F(m.name,b));return c.filter(m=>m.name!==e&&h(m)>=0).sort((m,b)=>h(m)-h(b)).flatMap(m=>d.flatMap(b=>p(m,b).map(S=>C({chain:S,target:b,query:m,assemblyName:t.assemblyName,refName:t.refName,mateAssemblyName:O(N,me(m))}))))}async pairFeatures(e,t,a,s){let n=a.map(c=>({pair:c,featurePrefix:w(this,c.queryAssemblyName),matePrefix:w(this,c.targetAssemblyName)})),{graph:o,fragments:l}=await this.laneWalks(e,t,n.flatMap(c=>[c.featurePrefix,c.matePrefix]),s,X(a)),u=Q(o.nodes),f=c=>l.filter(p=>F(p.name,c));return n.flatMap(({pair:c,featurePrefix:p,matePrefix:N})=>f(p).flatMap(d=>f(N).flatMap(h=>u(h,d).map(y=>C({chain:y,target:d,query:h,assemblyName:c.queryAssemblyName,refName:W(d.name),mateAssemblyName:c.targetAssemblyName})))))}getFeatures(e,t={}){return H(async a=>{let s=e.assemblyName===this.anchor?await this.refNames.resolve(e,t):void 0;if(s!==void 0){let n=U(t),o=n.length>0?await this.pairFeatures(s,e,n,t):await this.anchorFeatures(s,e,t);for(let l of o)a.next(l)}a.complete()},t.signal)}};export{L as default};
2
- //# sourceMappingURL=WalkTabixSyntenyAdapter-7VDCNSFD.js.map
1
+ import{a as K}from"./chunk-QTOA4RB7.js";import{b as q,d as U,e as X,f as O,g as z,h as G}from"./chunk-YXVEGNFQ.js";import"./chunk-JCAZTNYG.js";import{a as H}from"./chunk-KOB7YIMR.js";import{p as M,q as _,r as T}from"./chunk-M2D7NUOY.js";import"./chunk-YBLNN5FU.js";import"./chunk-6KUHGRHU.js";import"./chunk-6MUBJVBG.js";import{e as $,p as j,r as D}from"./chunk-BKBH3WGW.js";import"./chunk-YBLNN5FU.js";import"./chunk-MVVXRZXV.js";import{a as A,c as I,d as W,g as F,h as w,i as x}from"./chunk-7HWHWPRW.js";import"./chunk-T4R3ZVEM.js";import"./chunk-7WIBGKBU.js";import"./chunk-OGQ6OQDN.js";import"./chunk-NDRLCGPC.js";import{o as R}from"./chunk-TENPGIPX.js";var se=50;function re(r){let i=[];for(let e=0;e<r.length;e++){let[t,a]=r[e],[s,n]=r[e+1]??[];a===n&&a<=se&&(t==="I"&&s==="D"||t==="D"&&s==="I")?(i.push(["X",a]),e++):i.push([t,a])}return i}function v(r){return Array.from(r.ids,(i,e)=>2*i+r.rev[e])}function P(r,i){let e=r.get(i);return e===void 0?0:e.end-e.start}function V(r){let i=new Map,e=s=>{let n=P(r,s),o=i.get(n);return o===void 0&&(o="N".repeat(n),i.set(n,o)),o},t=new Map,a=s=>{let n=t.get(s);return n===void 0&&(n=v(s),t.set(s,n)),n};return(s,n)=>_({query:a(s),target:a(n),sequenceOf:e,bases:!1})}var B=100;function E(r,i,e){let t=r.at(-1);e>0&&(t?.[0]===i?t[1]+=e:r.push([i,e]))}function Z(r){let i=t=>P(r,t>>1),e=t=>{let a=new Float64Array(t.length+1);return t.forEach((s,n)=>{a[n+1]=a[n]+i(s)}),a};return(t,a)=>{let s=v(a),n=v(t),[o,l]=M(n,s,i),[u,f]=M(n.map(g=>g^1).reverse(),s,i),c=f>l,p=c?u:o,N=Math.max(l,f);if(N<B)return[];let d=e(s),h=e(n),y=g=>c?n.length-1-p[g][0]:p[g][0],m=[];p.forEach(([,g],k)=>{if(k>0){let[ee,te]=[y(k-1),y(k)].sort((ae,ne)=>ae-ne);E(m,"I",h[te]-h[ee+1]),E(m,"D",d[g]-d[p[k-1][1]+1])}E(m,"=",i(s[g]))});let[b,S]=[y(0),y(p.length-1)].sort((g,k)=>g-k);return[{queryStart:h[b],queryEnd:h[S+1],targetStart:d[p[0][1]],targetEnd:d[p.at(-1)[1]+1],strand:c?"-":"+",edits:m,sharedBases:N}]}}function oe(r){let i=new Map,e=new Set;r.ids.forEach((t,a)=>{i.has(t)?e.add(t):i.set(t,r.rev[a])});for(let t of e)i.delete(t);return i}function J(r){let i=new Map,e=t=>{let a=i.get(t);return a===void 0&&(a=oe(t),i.set(t,a)),a};return(t,a)=>{let s=e(a),n=0,o=0;for(let[l,u]of e(t)){let f=s.get(l);f===u?n+=P(r,l):f!==void 0&&(o+=P(r,l))}return{same:n,opposite:o}}}function Q(r){let i=Z(r),e=V(r),t=J(r);return(a,s)=>{let{same:n,opposite:o}=t(a,s);return n>=B&&o>=B?e(a,s):i(a,s)}}var ie=1e4;function Y(r){let i=Z(r),e=V(r),t=J(r);return(a,s)=>{let n=i(a,s),o=n[0]?.strand,{same:l,opposite:u}=t(a,s);return o===void 0||Math.min(l,u)<ie?n:[...n,...e(a,s).filter(f=>f.strand!==o)]}}function C({chain:r,target:i,query:e,assemblyName:t,refName:a,mateAssemblyName:s}){let n=re(r.edits);return G({target:{name:i.name,assemblyName:t,refName:a,start:i.hapStart+r.targetStart,end:i.hapStart+r.targetEnd},query:{name:e.name,assemblyName:s,refName:W(e.name),start:e.hapStart+r.queryStart,end:e.hapStart+r.queryEnd},strand:r.strand,cigar:T(n),matches:n.reduce((o,[l,u])=>o+(l==="="?u:0),0),columns:n.reduce((o,[,l])=>o+l,0)})}var me=r=>I(r.name)??r.name,L=class extends q{constructor(){super(...arguments);this.walks=new K(j(this,["walksLocation"],["walksIndex"]),this);this.refNames=new D(this.walks.file,this)}get anchor(){let e=this.getConf("assemblyNames")[0];if(e===void 0)throw new Error("WalkTabixSyntenyAdapter needs assemblyNames: its first entry is the assembly the reference sample is loaded as");return e}async getHaplotypeNames(e={}){return this.walks.haplotypeNames(e)}async getHeader(e={}){let{haplotypes:t}=await this.walks.reader.header(e),{anchor:a}=this,s=w(this,a),n=x(this);return{hasCoarseTier:!1,anchorAssemblyName:a,lanes:t.filter(o=>o!==s&&A(o)!==s).map(o=>({name:O(n,o),label:o,group:A(o)}))}}async getRefNames(e={}){let{assemblyName:t}=e;return t===void 0||t===this.anchor?this.refNames.assemblyRefNames({...e,assemblyName:this.anchor}):[]}async getSubgraph(e,t={}){let a=await this.refNames.resolve(e,{signal:t.signal});if(a===void 0)throw new Error(`${e.assemblyName} ${e.refName} is not in this graph's index; the graph is cut on ${this.anchor}, mapped to its PanSN prefix in assemblyNameToPanSN`);return this.walks.subgraph(a,e,t)}async laneWalks(e,t,a,s,n){return R(n,s.statusCallback,()=>this.walks.reader.cut(e,t,{...this.walks.budgets(),signal:s.signal,keep:$(a,e),links:!1}).catch(o=>{throw z(o,t.end-t.start)}))}async anchorFeatures(e,t,a){let s=a.haplotypes?.length?a.haplotypes.map(m=>w(this,m)):void 0,n=w(this,a.targetAssemblyName),o=n===void 0?s:s===void 0||s.some(m=>F(n,m)||F(m,n))?[n]:[];if(o?.length===0)return[];let{start:l,end:u}=t,{graph:f,fragments:c}=await this.laneWalks(e,t,o,a,`Reading walks ${t.refName}:${l.toLocaleString()}-${u.toLocaleString()}`),p=Y(f.nodes),N=x(this),d=c.filter(m=>m.name===e),h=m=>o===void 0?0:o.findIndex(b=>F(m.name,b));return c.filter(m=>m.name!==e&&h(m)>=0).sort((m,b)=>h(m)-h(b)).flatMap(m=>d.flatMap(b=>p(m,b).map(S=>C({chain:S,target:b,query:m,assemblyName:t.assemblyName,refName:t.refName,mateAssemblyName:O(N,me(m))}))))}async pairFeatures(e,t,a,s){let n=a.map(c=>({pair:c,featurePrefix:w(this,c.queryAssemblyName),matePrefix:w(this,c.targetAssemblyName)})),{graph:o,fragments:l}=await this.laneWalks(e,t,n.flatMap(c=>[c.featurePrefix,c.matePrefix]),s,X(a)),u=Q(o.nodes),f=c=>l.filter(p=>F(p.name,c));return n.flatMap(({pair:c,featurePrefix:p,matePrefix:N})=>f(p).flatMap(d=>f(N).flatMap(h=>u(h,d).map(y=>C({chain:y,target:d,query:h,assemblyName:c.queryAssemblyName,refName:W(d.name),mateAssemblyName:c.targetAssemblyName})))))}getFeatures(e,t={}){return H(async a=>{let s=e.assemblyName===this.anchor?await this.refNames.resolve(e,t):void 0;if(s!==void 0){let n=U(t),o=n.length>0?await this.pairFeatures(s,e,n,t):await this.anchorFeatures(s,e,t);for(let l of o)a.next(l)}a.complete()},t.signal)}};export{L as default};
2
+ //# sourceMappingURL=WalkTabixSyntenyAdapter-ZJJ4SQHH.js.map
@@ -0,0 +1,3 @@
1
+ import{b as vt}from"./chunk-MVVXRZXV.js";import{d as Rt,g as xe,h as zA}from"./chunk-7HWHWPRW.js";import{a as Gt,b as Lt}from"./chunk-OGQ6OQDN.js";import{g as Jt}from"./chunk-NDRLCGPC.js";var QA=JBrowseExports["@jbrowse/core/data_adapters/BaseAdapter"],Mt=t=>QA!=null&&t in Object(QA)?QA[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 go=Mt("BaseFeatureDataAdapter");var _t=Mt("cachedSetup");var Io=QA&&QA.__esModule?QA.default:QA;var CA=class extends Error{constructor(e,A,n,i){super(e),this.regionTooLarge=!0,this.name="NodeLimitError",this.limit=A,this.windowBp=n,this.fitsBp=i}},kA="#";function be(t){return t.split(kA)[0]}function Se(t){let e=t.split(kA);return e.length>=3?e.slice(2).join(kA):e.length===2?e[1]:t}function FA(t){let e=t.split(kA);return e.length>=3?`${e[0]}${kA}${e[1]}`:void 0}function PA(t,e){return e!==void 0&&(t===e||t.startsWith(e+kA))}var Ut=t=>Number.parseFloat(t.toPrecision(3));function RA(t){let e=Ut(t/1e6);return e>=1?`${e.toLocaleString("en-US")}Mbp`:t>=1e3?`${Ut(t/1e3).toLocaleString("en-US")}Kbp`:`${Math.floor(t)}bp`}var M=t=>(t-(t&1))/2,V=t=>t&1?t-1:t+1;function vA(t,e,A){if(t===".")return A;let n=0,i=!1;for(let r=0;r<=t.length;r++){let o=r<t.length?t.charCodeAt(r):44;if(o===44){let s=i?-n:n,Q=s&1;e.id+=(s-Q)/2,A.push(e.id*2+Q),n=0,i=!1}else o===45?i=!0:n=n*10+(o-48)}return A}function jA(t){return t==="."?[]:t.split(",").map(Number)}function WA(t,e){return t>V(e)?[V(e),V(t)]:[t,e]}function Fe(t,e){let A=t.lastIndexOf(":");return{refName:t[3]==="Z"?t.slice(5,A):e,start:+t.slice(A+1)}}function Yt(t,e,A){let n={};for(let i=e;i<t.length;i++){let r=t[i],o=r.slice(0,2);if(o==="pv")n.prev=Fe(r,A);else if(o==="nx")n.next=Fe(r,A);else if(o==="pg"||o==="ng"){let s=o==="pg"?"prevRecord":"nextRecord";n[s]={...n[s],bp:+r.slice(5)}}else if(o==="pr"||o==="nr"){let s=o==="pr"?"prevRecord":"nextRecord";n[s]={bp:0,...n[s],chunk:Fe(r,A)}}}return n}var Re=class{constructor(){this.handles=[],this.before=[0],this.occurrences=new Map}add(e,A){for(let n=0;n<e.length;n++){let i=e[n],r=this.handles.length;this.handles.push(i),this.before.push(this.before[r]+A[n]);let o=M(i),s=this.occurrences.get(o);s?s.push(r):this.occurrences.set(o,[r])}}bp(e){return this.before[e]}first(e){var A;return(A=this.occurrences.get(M(e)))===null||A===void 0?void 0:A[0]}nearest(e,A){var n;let i;for(let r of(n=this.occurrences.get(M(e)))!==null&&n!==void 0?n:[])(i===void 0||Math.abs(r-A)<=Math.abs(i-A))&&(i=r);return i}reach(e,A,n){var i;let r=this.handles[e]===A,o;for(let s of(i=this.occurrences.get(M(n)))!==null&&i!==void 0?i:[])r&&s>=e&&this.handles[s]===n?(o===void 0||s<o)&&(o=s):!r&&s<=e&&V(this.handles[s])===n&&(o===void 0||s>o)&&(o=s);return o}handleAt(e,A){return A?this.handles[e]:V(this.handles[e])}},P=class extends Error{},ve=(t,e)=>e?t.exit===-1?-1:V(t.exit):t.entry,Kt=(t,e)=>e?t.entry===-1?-1:V(t.entry):t.exit,VA=(t,e,A)=>e?V(t.interior[t.interior.length-1-A]):t.interior[A];function Ui(t){let e=[];if(t!=="."){let A=0,n=0,i=!1,r=0,o=!1;for(let s=0;s<=t.length;s++){let Q=s<t.length?t.charCodeAt(s):44;if(Q===44){let a=i?-n:n,g=o?r:a,d=g&1;A+=(g-d)/2,e.push(A,d,o?a:0),n=0,i=!1,o=!1}else Q===58?(r=i?-n:n,n=0,i=!1,o=!0):Q===45?i=!0:n=n*10+(Q-48)}}return e}function Tt(t,e,A,n,i,r){let o=n.indexOf(":"),s=A+ +(o<0?n:n.slice(0,o)),Q=o>=0,a=Q?+n.slice(o+1):0,g=N=>{let h=e[N];if(!h)throw new P(`route ${N} is not in the chunk`);return h},d=0;if(i.length>0&&ve(g(i[0]),i[1]===1)===-1){if(!r.route(i[0],i[1]===1))return;d=3}let f=A,I=t.first(f);if(I===void 0)throw new P("a walk row starts off its chunk");r.step(f);let c=(N,h)=>{let p=t.handles[I]===f,k=Q?I+(p?h:-h):t.reach(I,f,N);if(k===void 0||k<0||k>=t.handles.length)throw new P("a walk row runs off its chunk");k!==I&&r.stretch(I,k,p),I=k,f=t.handleAt(k,p)};for(;d<i.length;d+=3){let N=i[d],h=i[d+1]===1,p=g(N),k=ve(p,h);if(k===-1)throw new P("an open route after the first choice");if(c(k,i[d+2]),!r.route(N,h))return;let D=Kt(p,h);if(D===-1)return;if(f=D,I=t.nearest(f,I),I===void 0)throw new P("a route lands off its chunk");r.step(f)}if(c(s,a),f!==s)throw new P("a walk row misses its last handle")}function Yi(t,e,A,n,i){let r=new Int32Array(i),o=new Uint8Array(i),s=0,Q=a=>{if(s>=i)throw new P("a walk row decodes to more steps than it states");r[s]=M(a),o[s++]=a&1};if(Tt(t,e,+A[9],A[10],n,{step:Q,stretch(a,g,d){if(d)for(let f=a+1;f<=g;f++)Q(t.handles[f]);else for(let f=a-1;f>=g;f--)Q(V(t.handles[f]))},route(a,g){let d=e[a];for(let f=0;f<d.interior.length;f++)Q(VA(d,g,f));return!0}}),s!==i)throw new P(`a walk row decodes to ${s} steps, not ${i}`);return{ids:r,rev:o}}function Ht(t,e,A,n,i){let r=t.slice(e).find(s=>s.startsWith("SQ:Z:"));if(r===void 0)return;let o=5;for(let s=0;s<A.length;s++){let Q=n[s];i.set(A[s],r.slice(o,o+Q)),o+=Q}}function qt(t,e,A=!1){var n,i,r;let o=new Re,s=new Map,Q=[],a={sequences:new Map,rows:[],nodes:new Map,ends:[],chunk:{path:o,routes:Q,walks:[],lengths:s}},g={id:0},d=t.filter(I=>I[3]==="ref").sort((I,c)=>+I[6]-+c[6]);for(let I of d){let c=I[0],N=vA(I[9],{id:0},[]),h=jA(I[10]),p=+I[6];o.add(N,h),A&&Ht(I,11,N.map(M),h,a.sequences);let k=p;for(let D=0;D<N.length;D++){let B=M(N[D]),m=h[D];s.set(B,m),a.nodes.has(B)||a.nodes.set(B,{refName:I[4],start:k,end:k+m,rank:0}),k+=m}a.ends.push({name:I[4],fragStart:+I[5],piece:+I[7],first:N[0],last:N.at(-1)}),(e===void 0||e(I[4]))&&a.rows.push({chunkStart:+I[1],name:I[4],fragStart:+I[5],hapOffset:p,piece:+I[7],n:N.length,steps:{ids:Int32Array.from(N,M),rev:Uint8Array.from(N,D=>D&1)},...Yt(I,11,c)})}for(let I of t)if(I[3]==="nodes"){let c=jA(I[4]),N=jA(I[5]),h=0;for(let p=0;p<c.length;p++)h+=c[p],c[p]=h,s.set(h,N[p]);A&&Ht(I,6,c,N,a.sequences)}else if(I[3]==="route"){let c=vA(I[4],g,[]),N=vA(I[5],g,[]),h=vA(I[6],g,[]);Q.push({entry:(n=c[0])!==null&&n!==void 0?n:-1,interior:N,exit:(i=h[0])!==null&&i!==void 0?i:-1})}let f=I=>{let c=Q[I];if(!c)throw new P(`route ${I} is not in the chunk`);return c};for(let I of t){if(I[3]!=="walk")continue;let c=Ui(I[11]);a.chunk.walks.push({cols:I,choices:c});let N=I[4],h=+I[9],p=I[10],k=p.indexOf(":"),D=h,B=h+ +(k<0?p:p.slice(0,k));if(c.length>0){let m=f(c[0]),u=c[1]===1;ve(m,u)===-1&&(D=VA(m,u,0));let E=c.length-3,C=f(c[E]),l=c[E+1]===1;Kt(C,l)===-1&&(B=VA(C,l,C.interior.length-1))}if(a.ends.push({name:N,fragStart:+I[5],piece:+I[7],first:D,last:B}),e===void 0||e(N)){let m=+I[8];for(let u=0;u<c.length;u+=3)for(let E of f(c[u]).interior){let C=M(E);if(!a.nodes.has(C)){let l=(r=s.get(C))!==null&&r!==void 0?r:0;a.nodes.set(C,{refName:N,start:0,end:l,rank:1})}}a.rows.push({chunkStart:+I[1],name:N,fragStart:+I[5],hapOffset:+I[6],piece:+I[7],n:m,steps:Yi(o,Q,I,c,m),...Yt(I,12,I[0])})}}return a}function Zt(t,e,A,n){let i=new Set;for(let o of e)t.some(({path:s})=>s.occurrences.has(o))||i.add(o);let r=new Map;for(let{path:o,routes:s,walks:Q,lengths:a}of t){let g=o.handles;for(let h=1;h<g.length;h++)e.has(M(g[h-1]))&&e.has(M(g[h]))&&n(...WA(g[h-1],g[h]));let d=new Uint8Array(s.length);for(let h=0;h<s.length;h++){let{entry:p,interior:k,exit:D}=s[h],B=!1,m=p;for(let u of k){let E=e.has(M(u));B||(B=i.has(M(u))),E&&m!==-1&&e.has(M(m))&&n(...WA(m,u)),m=u}m!==-1&&D!==-1&&e.has(M(m))&&e.has(M(D))&&n(...WA(m,D)),d[h]=B?1:0}let f=h=>{var p;return(p=a.get(M(h)))!==null&&p!==void 0?p:0},I=new Float64Array(s.length).fill(-1),c=h=>(I[h]<0&&(I[h]=s[h].interior.reduce((p,k)=>p+f(k),0)),I[h]),N=new Uint8Array(s.length);for(let{cols:h,choices:p}of Q){let k=0;for(let m=0;m<p.length;m+=3){let u=p[m];d[u]&&!N[u]&&k++}if(k===0)continue;let D=h[4],B=+h[6];Tt(o,s,+h[9],h[10],p,{step(m){B+=f(m)},stretch(m,u,E){B+=E?o.bp(u+1)-o.bp(m+1):o.bp(m)-o.bp(u)},route(m,u){if(!d[m]||N[m])return B+=c(m),!0;N[m]=1;let E=s[m];for(let C=0;C<E.interior.length;C++){let l=VA(E,u,C),w=M(l),y=f(l);if(i.has(w)){let x=r.get(w);(!x||D<x.refName||D===x.refName&&B<x.start)&&r.set(w,{refName:D,start:B,end:B+y,rank:1})}B+=y}return k--,k>0}})}}for(let[o,s]of r)A(o,s)}function Hi(t){let e=[];for(let A of t){if(A[3]!=="ref")continue;let n=vA(A[9],{id:0},[]),i=jA(A[10]),r=+A[6];for(let o=0;o<n.length;o++){let s=i[o];e.push({id:M(n[o]),refName:A[4],start:r,end:r+s,rank:0}),r+=s}}return e}function Ot(t){let e=new Map;for(let n of t){let i=`${n.name} ${n.fragStart}`,r=e.get(i);r||(r=new Map,e.set(i,r)),r.set(n.piece,n)}let A=[];for(let n of e.values())for(let[i,r]of n){let o=n.get(i+1);o&&A.push(WA(r.last,o.first))}return A}var Xt=["elsewhere","break","end"];function Je(t,e){let A=new RegExp(`(?:^|\\t)${e}:i:(\\d+)`).exec(t);return A?+A[1]:void 0}function Ge(t){var e,A,n;let i={references:[],haplotypes:[]};for(let r of t){let[o,s=""]=r.split(" ");o==="#reference"?i.references.push(s):o==="#haplotype"?i.haplotypes.push(s):((e=i.format)!==null&&e!==void 0||(i.format=Je(r,"format")),(A=i.chunk)!==null&&A!==void 0||(i.chunk=Je(r,"chunk")),(n=i.maxNode)!==null&&n!==void 0||(i.maxNode=Je(r,"maxnode")))}return i}function Le(t,e){return t===void 0?1:Math.max(1,Math.ceil(t/e))}function $A(t,e,A=1){return Math.max(0,(Math.floor(t/e)-A)*e)}function jt(t,e){return t===void 0||t.length===0?void 0:A=>PA(A,e)||t.some(n=>PA(A,n))}function Me(t,e){var A;return jt(t,(A=FA(e))!==null&&A!==void 0?A:e)}function _e(t){let e=new Map;for(let n of t){let i=`${n.name} ${n.fragStart}`,r=e.get(i);r?r.push(n):e.set(i,[n])}let A=[];for(let n of e.values()){n.sort((r,o)=>r.piece-o.piece);let i=0;for(let r=1;r<=n.length;r++)(r===n.length||n[r].piece!==n[r-1].piece+1)&&(A.push(Ki(n.slice(i,r))),i=r)}return A}function Ki(t){let e=t.reduce((s,Q)=>s+Q.n,0),A=new Int32Array(e),n=new Uint8Array(e),i=0;for(let s of t)A.set(s.steps.ids,i),n.set(s.steps.rev,i),i+=s.n;let r=t[0],o=t.at(-1);return{name:r.name,fragStart:r.fragStart,hapOffset:r.hapOffset,firstPiece:r.piece,ids:A,rev:n,prev:r.prev,next:o.next,prevRecord:r.prevRecord,nextRecord:o.nextRecord}}function Ue(t,e,A,{contained:n=!1,context:i=0}={}){let r=C=>{var l;return((l=e.get(C))===null||l===void 0?void 0:l.onWindow)===!0},o=C=>{let l=e.get(C);return l?.rank===0?l:void 0},s=new Map,Q=C=>{C&&s.set(`${C.refName}:${C.start}`,C)},a=(C,l,w)=>{let{ids:y}=C,x=l+w;for(;x>=0&&x<y.length&&o(y[x])===void 0;)x+=w;if(x<0||x>=y.length)return Q(w<0?C.prev:C.next),x-w;let b=o(y[l]),S=o(y[x]);return S.refName!==A?x-w:x===l+w&&(S.start===b.end||S.end===b.start)?l:x},g=1/0,d=-1/0,f=[],I=C=>{let l=e.get(C);return l===void 0?0:l.end-l.start},c=C=>{let{ids:l}=C,w=0,y=-1,x=-1;for(let b=0;b<=l.length;b++){let S=b<l.length?e.get(l[b]):void 0;if(b===l.length||S?.rank===0&&!S.onWindow){if(y>=0){for(let R=0;y>w&&R<i;)R+=I(l[--y]);for(let R=0;x<b-1&&R<i;)R+=I(l[++x]);y===0&&Q(C.prev),x===l.length-1&&Q(C.next),f.push({run:C,first:y,last:x})}w=b+1,y=-1}else S?.onWindow&&(y<0&&(y=b),x=b)}},N=C=>{let{ids:l}=C,w=-1,y=-1;for(let x=0;x<l.length;x++)r(l[x])&&(w<0&&(w=x),y=x);if(w>=0){if(C.name!==A){w=a(C,w,-1),y=a(C,y,1);for(let x of[w,y]){let b=o(l[x]);b&&(g=Math.min(g,b.start),d=Math.max(d,b.end))}}f.push({run:C,first:w,last:y})}};for(let C of t)n?c(C):N(C);let h=C=>{let l=o(C);return r(C)||l?.refName===A&&l.end>g&&l.start<d},p=new Set;for(let[C,l]of e)l.onWindow&&p.add(C);for(let C of f){let{ids:l}=C.run;if(C.run.name===A){for(;C.first>0&&h(l[C.first-1]);)C.first--;for(;C.last<l.length-1&&h(l[C.last+1]);)C.last++}for(let w=C.first;w<=C.last;w++)p.add(l[w])}let k=(C,l,w)=>{let y=0;for(let x=l;x<w;x++)y+=I(C[x]);return y},D=new Map;for(let C of t){let l=`${C.name} ${C.fragStart}`,w=D.get(l);w?w.push(C):D.set(l,[C])}let B=new Map;for(let C of D.values())C.sort((l,w)=>l.firstPiece-w.firstPiece),C.forEach((l,w)=>{B.set(l,[C[w-1],C[w+1]])});let m=C=>C.hapOffset+k(C.ids,0,C.ids.length),u=(C,l,w)=>{var y;let x=w>0?{trimmed:w}:{},b=l?C.next:C.prev;if(b){let R=(y=B.get(C))===null||y===void 0?void 0:y[l?1:0];return R?{kind:"elsewhere",chunk:b,bp:l?R.hapOffset-m(C):C.hapOffset-m(R),...x}:{kind:"elsewhere",chunk:b,...x}}let S=l?C.nextRecord:C.prevRecord;return S?{kind:"break",...S,...x}:{kind:"end",...x}},E=[];for(let{run:C,first:l,last:w}of f){let{ids:y,rev:x}=C,b=l,S=w;for(;b>0&&p.has(y[b-1]);)b--;for(;S<y.length-1&&p.has(y[S+1]);)S++;let R=C.hapOffset+k(y,0,b),U=R+k(y,b,S+1);E.push({name:C.name,fragStart:C.fragStart,hapStart:R,hapEnd:U,ids:y.subarray(b,S+1),rev:x.subarray(b,S+1),before:u(C,!1,R-C.hapOffset),after:u(C,!0,m(C)-U)})}return{kept:p,fragments:E,open:[...s.values()]}}function Ye(t,e,A,n){var i;for(let r of t.nodes.keys())!((i=e.get(r))===null||i===void 0)&&i.onWindow&&n.add(r);for(let{steps:r}of t.rows){let{ids:o}=r,s=-1;for(let Q=0;Q<o.length;Q++){let a=e.get(o[Q]);if(a?.onWindow){for(let g=s+1;s>=0&&g<Q;g++)n.add(o[g]);s=Q}else A&&a?.rank===0&&(s=-1)}}}function zt(t){let e=[],A=new Map,n={kinds:new Uint8Array(t.length),kindNames:[...Xt],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((i,r)=>{var o;if(n.kinds[r]=Xt.indexOf(i.kind),n.trimmed[r]=(o=i.trimmed)!==null&&o!==void 0?o:0,"bp"in i&&i.bp!==void 0&&(n.bp[r]=i.bp),"chunk"in i&&i.chunk){let{refName:s,start:Q}=i.chunk,a=A.get(s);a===void 0&&(a=e.length,A.set(s,a),e.push(s)),n.chunkRefs[r]=a,n.chunkStarts[r]=Q}}),n}var Ti=(t,e)=>t.rank===0&&(e.rank!==0||t.refName<e.refName||t.refName===e.refName&&t.start<e.start),JA=class{constructor(e){this.nodes=new Map,this.sequences=new Map,this.links=[],this.chunks=[],this.window=e}placeNode(e,A){let n=this.nodes.get(e);if(n&&!Ti(A,n))return;let{window:i}=this;this.nodes.set(e,{...A,onWindow:A.rank===0&&A.refName===i.refName&&A.end>i.start-i.context&&A.start<i.end+i.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&&Zt(this.chunks,e,(u,E)=>{let C=this.nodes.get(u);C&&this.nodes.set(u,{...C,...E})},(u,E)=>{this.links.push(u,E)});let n=[];for(let u of e){let E=this.nodes.get(u);E&&n.push({...E,id:u})}n.sort((u,E)=>u.refName<E.refName?-1:u.refName>E.refName?1:u.start-E.start||u.id-E.id);let i=new Map,r=[],o=[],s=new Map,Q=new Int32Array(n.length),a=new Int32Array(n.length),g=new Float64Array(n.length),d=new Int32Array(n.length);n.forEach(({id:u,refName:E,start:C,end:l,rank:w},y)=>{i.set(u,y),r.push(String(u));let x=s.get(E);x===void 0&&(x=o.length,s.set(E,x),o.push(E)),Q[y]=l-C,a[y]=x,g[y]=C,d[y]=w});let f=u=>{let E=i.get(u);return E===void 0&&(E=r.length,i.set(u,E),r.push(String(u))),E},I=new Map;for(let u=0;u<this.links.length;u+=2){let E=this.links[u],C=this.links[u+1],l=Math.floor(E/2),w=Math.floor(C/2);e.has(l)&&e.has(w)&&I.set(`${l} ${E%2?"-":"+"} ${w} ${C%2?"-":"+"}`,u)}let c=[...I.keys()].sort(),N=new Int32Array(c.length),h=new Int32Array(c.length),p=new Uint8Array(c.length);c.forEach((u,E)=>{let C=I.get(u),l=this.links[C],w=this.links[C+1];N[E]=f(Math.floor(l/2)),h[E]=f(Math.floor(w/2)),p[E]=l%2|w%2<<1});let k=this.referenceFirst(A),D=new Int32Array(k.length+1);k.forEach(({ids:u},E)=>{D[E+1]=D[E]+u.length});let B=new Int32Array(D[k.length]),m=new Uint8Array(B.length);return k.forEach(({ids:u,rev:E},C)=>{let l=D[C];for(let w=0;w<u.length;w++)B[l+w]=f(u[w]);m.set(E,l)}),{nodes:{names:r,lengths:Q,refs:a,starts:g,ranks:d,refNames:o},links:{from:N,to:h,strands:p},walks:{names:k.map(u=>u.name),starts:Float64Array.from(k,u=>u.hapStart),ends:Float64Array.from(k,u=>u.hapEnd),offsets:D,steps:B,reversed:m,before:zt(k.map(u=>u.before)),after:zt(k.map(u=>u.after))}}}referenceFirst(e){let{refName:A}=this.window;return[...e].sort((n,i)=>+(i.name===A)-+(n.name===A)||(n.name<i.name?-1:n.name>i.name?1:n.hapStart-i.hapStart))}},He={steps:"the step budget",bytes:"a byte budget of"};function Ke(t,e,A,n,i,r,o=He){var s;let Q=0,a=new Map,g=new Set;for(let h of t)Q+=h.n,a.set(h.chunkStart,((s=a.get(h.chunkStart))!==null&&s!==void 0?s:0)+h.n),g.add(h.name);let d=e*A;if(Q<=d)return;let f=n.end-n.start,I=0,c=0;for(let h of[...a.keys()].sort((p,k)=>p-k)){if(I+=a.get(h),I>d)break;c=Math.max(c,h+i-n.start)}let N=!r&&g.size>2&&2*Q/g.size<=d;return new CA(c>0?`Zoom in to about ${RA(c)}${N?", or choose fewer haplotypes,":""} to see the graph`:`Too many haplotype steps here to draw ${r?"these haplotypes":"every haplotype"} (${I.toLocaleString()} steps read, over ${A} \xD7 ${o.steps} of ${e.toLocaleString()}); choose fewer haplotypes`,d,f,Math.max(c,1))}function Te(t,e,A,n){let i=t.reduce((r,o)=>r+o.ids.length,0);return Wt(i,e,A,n)}function Ae(t,e,A,n,i=A.end){return Wt(t,e,A,n,i)}function Wt(t,e,A,n,i=A.end){if(t<=e)return;let r=A.end-A.start,o=Math.min(i,A.end)-A.start,s=Math.max(1,Math.floor(o*e/t));return new CA(`Zoom in to about ${RA(s)}${n?"":", or choose fewer haplotypes,"} to see the graph`,e,r,s)}async function qe(t,e,A,n,i=He){let r=await t(A.end);if(r<=e)return;let o=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;o=a+n-A.start}let Q=A.end-A.start;return new CA(o>0?`Zoom in to about ${RA(o)} to see the graph`:`Too much graph here to fetch (${Pt(s??r)} against ${i.bytes} ${Pt(e)})`,e,Q,Math.max(o,1))}var Pt=t=>`${(t/1e6).toFixed(1)} MB`;function Ze(t){var e;let A=t.split(" "),n=A.length>=8,i=n?5:0;return{anchored:n,segment:{refName:A[i],start:+A[i+1],end:+A[i+2],id:A[3],rank:+A[4],tags:(e=A[n?8:5])!==null&&e!==void 0?e:""}}}function qi(t){let e=t.tags.split(" ").find(n=>n.startsWith("SM:Z:"));if(e===void 0)return;let A=e.slice(5).split(",").map(n=>n.trim()).filter(Boolean);return A.length>0?A:void 0}function Vt(t){return{id:t.slice(0,-1),strand:t.slice(-1)}}function Oe(t){var e,A;let n=t.split(" "),i=Vt(n[3]),r=Vt(n[4]);return{source:i.id,sourceStrand:i.strand,target:r.id,targetStrand:r.strand,sourceSegment:{id:i.id,refName:n[5],start:+n[6],end:+n[7],rank:+n[8],tags:(e=n[13])!==null&&e!==void 0?e:""},targetSegment:{id:r.id,refName:n[9],start:+n[10],end:+n[11],rank:+n[12],tags:(A=n[14])!==null&&A!==void 0?A:""}}}function Xe(t){return`${t.source}${t.sourceStrand}${t.target}${t.targetStrand}`}function te(t,e,A){e.set(Xe(A),A);let n=[];for(let i of[A.sourceSegment,A.targetSegment])t.has(i.id)||(t.set(i.id,i),n.push(i));return n}function An(t,e,A){let n=o=>o.rank!==0||o.refName!==A.refName?0:o.end<=A.start?-1:o.start>=A.end?1:0,i=new Map(t),r=new Map;for(let o of e)(t.has(o.source)||t.has(o.target)||n(o.sourceSegment)*n(o.targetSegment)===-1)&&te(i,r,o);for(let o of e)i.has(o.source)&&i.has(o.target)&&r.set(Xe(o),o);return{segments:i,links:r}}function en(t,e,A){let n=i=>i.refName!==A.refName||i.end<=A.start||i.start>=A.end;return[...$t(t.filter(i=>i.rank>0),i=>e.has(i.id),A.end-A.start),...$t(t.filter(i=>i.rank===0&&n(i)),()=>!0,0)]}function $t(t,e,A){let n=[...t].sort((r,o)=>ee(r.refName,o.refName)||r.start-o.start),i=[];for(let r of n){let o=i.at(-1);o?.refName===r.refName&&r.start-o.end<=A?(o.needed||(o.needed=r.start>o.end||e(r)),o.end=Math.max(o.end,r.end)):i.push({refName:r.refName,start:r.start,end:r.end,needed:e(r)})}return i.filter(r=>r.needed).map(({refName:r,start:o,end:s})=>({refName:r,start:o,end:s}))}function tn(t,e,A){let n=i=>e.has(i.id)||A.some(r=>r.refName===i.refName&&i.start>=r.start&&i.end<=r.end);return t.filter(i=>n(i.sourceSegment)&&n(i.targetSegment))}var Zi=/^[A-Za-z][A-Za-z0-9]:[AifZJHB]:/;function Oi(t){let{id:e,refName:A,start:n,end:i,rank:r,tags:o}=t,s=o.split(" ").filter(a=>Zi.test(a)),Q=s.length===0?"":` ${s.join(" ")}`;return`S ${e} * LN:i:${i-n} SN:Z:${A} SO:i:${n} SR:i:${r}${Q}`}function Xi(t){let{source:e,sourceStrand:A,target:n,targetStrand:i}=t;return`L ${e} ${A} ${n} ${i} 0M`}function ee(t,e){return t<e?-1:t>e?1:0}function ne(t,e){let A=[...t.values()].sort((i,r)=>ee(i.refName,r.refName)||i.start-r.start||ee(i.id,r.id)),n=[...e.keys()].sort((i,r)=>ee(i,r));return["H VN:Z:1.0",...A.map(i=>Oi(i)),...n.map(i=>Xi(e.get(i)))].join(`
2
+ `)}function ze(t,e){return`${t} ${e}`}function GA(t){let e=new Map;for(let A of t){e.set(A,A);let n=be(A);if(n!==A){let i=Se(A);e.set(ze(n,i),A);let r=FA(A);r!==void 0&&e.set(ze(r,i),A)}}return e}function LA(t,e,A){var n;return(n=t.get(ze(e,A)))!==null&&n!==void 0?n:t.get(A)}var zi=8,Pi=3,ji=4,Wi=1e3,Vi={stepBudget:4e6,byteBudget:8e6},ie=class extends Error{constructor(){super(...arguments),this.name="WalkFormatError"}};function iA(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 nn(t,e){return e?(e.throwIfAborted(),new Promise((A,n)=>{let i=()=>{n(e.reason instanceof Error?e.reason:new Error(String(e.reason)))};e.addEventListener("abort",i,{once:!0}),t.then(A,n).finally(()=>{e.removeEventListener("abort",i)})})):t}var Pe=class{constructor(e){this.walks=e}header(e={}){if(!this.headerRead){let A=this.walks.getHeaderLines().then(n=>{var i,r;let o=Ge(n);if(o.format!==4)throw new ie(`This walk file is format ${(i=o.format)!==null&&i!==void 0?i:1}; @jbrowse/graph-walks reads format 4, so rebuild it with gfa-to-tabix 1.2 or later`);let s=(r=o.chunk)!==null&&r!==void 0?r:65536;return{...o,chunk:s,lookback:Le(o.maxNode,s)}});A.catch(()=>{this.headerRead===A&&(this.headerRead=void 0)}),this.headerRead=A}return nn(this.headerRead,e.signal)}referenceSequences(e={}){return this.walks.getReferenceSequenceNames(e)}async sequenceFor(e,A,n={}){if(!this.lookupRead){let r=this.walks.getReferenceSequenceNames().then(GA);r.catch(()=>{this.lookupRead===r&&(this.lookupRead=void 0)}),this.lookupRead=r}let i=await nn(this.lookupRead,n.signal);return LA(i,e,A)}async queryStart(e,A={}){let{chunk:n,lookback:i}=await this.header(A);return $A(e,n,i)}async cut(e,A,n={}){var i,r;let{signal:o,keep:s,context:Q=Wi,stepBudget:a=1/0,byteBudget:g=1/0,links:d=!0,contained:f=!1,nodeLimit:I=1/0}=n,{chunk:c,lookback:N}=await this.header({signal:o}),h=$A(A.start,c,N),p=(i=this.walks.bytesForRegions)===null||i===void 0?void 0:i.bind(this.walks),k=Number.isFinite(g)&&p!==void 0,D=async v=>k?p(v.map(H=>({refName:e,...H})),{signal:o}):0,B=k?await qe(async v=>(iA(e,h,v),D([{start:h,end:v}])),g,A,c,n.budgetNames):void 0;if(B)throw B;let m=new AbortController,u=()=>{m.abort(o?.reason)};o?.throwIfAborted(),o?.addEventListener("abort",u,{once:!0});let E=[],C,l=new JA({refName:e,start:A.start,end:A.end,context:Q,sequences:n.sequences}),w=new Set,y=[],x=new Set,b=s!==void 0,S=(v,H)=>{if(w.has(v))return;w.add(v);let J=qt(H,s,n.sequences);E.push(...J.rows);for(let[Y,L]of J.nodes)l.placeNode(Y,L);if(l.addSequences(J.sequences),l.addChunk(J.chunk),y.push(...J.ends),Number.isFinite(I)){Ye(J,l.nodes,f,x),x.size>I&&(x.clear(),Ye({nodes:l.nodes,rows:E},l.nodes,f,x));let Y=Ae(x.size,I,A,b,v+c);if(Y)throw Y}},R=async(v,H)=>{iA(e,v,H);let J,Y=[];if(await this.walks.getLines(e,v,H,{signal:m.signal,lineCallback:L=>{let O=L.split(" "),_=+O[1];_!==J&&(J!==void 0&&S(J,Y),J=_,Y=[]),Y.push(O)}}),J!==void 0&&S(J,Y),d)for(let[L,O]of Ot(y))l.addLinkEnds(L,O)};try{await R(h,A.end);let v=Ke(E,a,zi,A,c,b,n.budgetNames);if(v)throw v;let H=h,J=Math.floor((A.end-1)/c)*c,Y=ji*c,[L,O]=f?[Math.floor((A.start-Q)/c)*c,Math.floor((A.end+Q-1)/c)*c]:[H-Y,J+Y],_=()=>Ue(_e(E),l.nodes,e,{contained:f,context:Q});C=_();let IA=await D([{start:h,end:A.end}]);for(let K=0;K<Pi;K++){let wA=C.open.filter(X=>X.refName===e&&X.start>=L&&X.start<=O).map(X=>X.start),pA=[{start:Math.min(H,...wA),end:H},{start:J+c,end:Math.max(J,...wA)+1}].filter(X=>X.end>X.start);if(pA.length===0||(IA+=await D(pA),IA>g))break;H=Math.min(H,...wA),J=Math.max(J,...wA),await Promise.all(pA.map(({start:X,end:ZA})=>R(X,ZA))),C=_()}}catch(v){throw m.abort(),v}finally{o?.removeEventListener("abort",u)}let U=(r=Te(C.fragments,a,A,b))!==null&&r!==void 0?r:Ae(C.kept.size,I,A,b);if(U)throw U;return{graph:l,...C}}async cutRegion(e,A={}){var n;let{haplotypes:i,referenceSample:r,...o}=A,{signal:s}=A,Q=await this.header({signal:s}),a=(n=r??Q.references[0])!==null&&n!==void 0?n:"",g=await this.sequenceFor(a,e.refName,{signal:s});if(g===void 0){let c=await this.referenceSequences({signal:s});throw new Error(`The walk file has no sequence ${e.refName} on ${a}; it holds ${c.slice(0,5).join(", ")}${c.length>5?", \u2026":""}`)}let{graph:d,kept:f,fragments:I}=await this.cut(g,e,{...o,keep:Me(i,g)});return{tables:d.tables(f,I),refName:g,sample:a}}};function rn(t){return t.filter(e=>e.rank>0)}function on(t,e,A,n,i){return iA(e,A,n),t.getLines(e,A,n,i)}async function je(t,e,A){let n=[];return await on(t,e.refName,e.start,e.end,{signal:A,lineCallback:i=>{n.push(Oe(i))}}),n}async function $i(t,e,{hops:A=0,signal:n}={}){let i=new Map,r=new Map,o={anchored:!1};if(await on(t.segments,e.refName,e.start,e.end,{signal:n,lineCallback:a=>{let g=Ze(a);o.anchored||(o.anchored=g.anchored),i.set(g.segment.id,g.segment)}}),o.anchored){let a=An(i,await je(t.links,e,n),e);return ne(a.segments,a.links)}let s=async a=>(await je(t.links,a,n)).flatMap(g=>te(i,r,g)),Q=rn(await s(e));for(let a=0;a<A;a++){let g=await Promise.all(Q.map(s));Q=rn(g.flat())}if(A>0){let a=en([...i.values()],new Set(Q.map(d=>d.id)),e),g=await Promise.all(a.map(d=>je(t.links,d,n)));for(let d of tn(g.flat(),i,a))te(i,r,d)}return ne(i,r)}async function _o(t,e,A,n,i){return iA(e,A,n),t.getLines(e,A,n,i)}async function sn(t,e,A){for(let{refName:n,start:i,end:r}of e)iA(n,i,r);return t.bytesForRegions(e,A)}var We=0;var Ve=2;var MA=4;var rA=0,_A=1,an=2;var gn=-5;function Ar(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function In(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)Ar(A,n)&&(t[n]=A[n])}}return t}function oe(t,e){return t.length===e?t:t.subarray?t.subarray(0,e):(t.length=e,t)}var UA={arraySet:function(t,e,A,n,i){if(e.subarray&&t.subarray){t.set(e.subarray(A,A+n),i);return}for(var r=0;r<n;r++)t[i+r]=e[A+r]},flattenChunks:function(t){var e,A,n,i,r,o;for(n=0,e=0,A=t.length;e<A;e++)n+=t[e].length;for(o=new Uint8Array(n),i=0,e=0,A=t.length;e<A;e++)r=t[e],o.set(r,i),i+=r.length;return o},Buf8:function(t){return new Uint8Array(t)},Buf16:function(t){return new Uint16Array(t)},Buf32:function(t){return new Int32Array(t)}},YA={arraySet:function(t,e,A,n,i){for(var r=0;r<n;r++)t[i+r]=e[A+r]},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)}},mA=()=>{let t=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Int32Array<"u";return mA=()=>t,t},j=(t,e,A,n,i)=>(j=mA()?UA.arraySet:YA.arraySet,j(t,e,A,n,i)),re=t=>(re=mA()?UA.flattenChunks:YA.flattenChunks,re(t)),$=t=>($=mA()?UA.Buf8:YA.Buf8,$(t)),oA=t=>(oA=mA()?UA.Buf16:YA.Buf16,oA(t)),cA=t=>(cA=mA()?UA.Buf32:YA.Buf32,cA(t));var Qn=function(){let t=!0;try{String.fromCharCode.apply(null,[0])}catch{t=!1}return Qn=()=>t,t},Cn=function(){let t=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{t=!1}return Cn=()=>t,t},$e=function(t){for(var e=$(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 At(t){var e,A,n,i,r,o=t.length,s=0;for(i=0;i<o;i++)A=t.charCodeAt(i),(A&64512)===55296&&i+1<o&&(n=t.charCodeAt(i+1),(n&64512)===56320&&(A=65536+(A-55296<<10)+(n-56320),i++)),s+=A<128?1:A<2048?2:A<65536?3:4;for(e=new Uint8Array(s),r=0,i=0;r<s;i++)A=t.charCodeAt(i),(A&64512)===55296&&i+1<o&&(n=t.charCodeAt(i+1),(n&64512)===56320&&(A=65536+(A-55296<<10)+(n-56320),i++)),A<128?e[r++]=A:A<2048?(e[r++]=192|A>>>6,e[r++]=128|A&63):A<65536?(e[r++]=224|A>>>12,e[r++]=128|A>>>6&63,e[r++]=128|A&63):(e[r++]=240|A>>>18,e[r++]=128|A>>>12&63,e[r++]=128|A>>>6&63,e[r++]=128|A&63);return e}function er(t,e){if(e<65534&&(t.subarray&&Cn()||!t.subarray&&Qn()))return String.fromCharCode.apply(null,oe(t,e));for(var A="",n=0;n<e;n++)A+=String.fromCharCode(t[n]);return A}function cn(t){for(var e=new Uint8Array(t.length),A=0,n=e.length;A<n;A++)e[A]=t.charCodeAt(A);return e}function Bn(t,e){var A,n,i,r,o=e||t.length,s=new Array(o*2);for(n=0,A=0;A<o;){if(i=t[A++],i<128){s[n++]=i;continue}if(r=$e(i),r>4){s[n++]=65533,A+=r-1;continue}for(i&=r===2?31:r===3?15:7;r>1&&A<o;)i=i<<6|t[A++]&63,r--;if(r>1){s[n++]=65533;continue}i<65536?s[n++]=i:(i-=65536,s[n++]=55296|i>>10&1023,s[n++]=56320|i&1023)}return er(s,n)}function En(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 et(){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 HA(t,e,A,n){for(var i=t&65535|0,r=t>>>16&65535|0,o=0;A!==0;){o=A>2e3?2e3:A,A-=o;do i=i+e[n++]|0,r=r+i|0;while(--o);i%=65521,r%=65521}return i|r<<16|0}function tr(){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 fn=function(){let t=tr();return fn=()=>t,t};function q(t,e,A,n){var i=fn(),r=n+A;t^=-1;for(var o=n;o<r;o++)t=t>>>8^i[(t^e[o])&255];return t^-1}var se=30,nr=12;function tt(t,e){var A,n,i,r,o,s,Q,a,g,d,f,I,c,N,h,p,k,D,B,m,u,E,C,l,w;A=t.state,n=t.next_in,l=t.input,i=n+(t.avail_in-5),r=t.next_out,w=t.output,o=r-(e-t.avail_out),s=r+(t.avail_out-257),Q=A.dmax,a=A.wsize,g=A.whave,d=A.wnext,f=A.window,I=A.hold,c=A.bits,N=A.lencode,h=A.distcode,p=(1<<A.lenbits)-1,k=(1<<A.distbits)-1;A:do{c<15&&(I+=l[n++]<<c,c+=8,I+=l[n++]<<c,c+=8),D=N[I&p];e:for(;;){if(B=D>>>24,I>>>=B,c-=B,B=D>>>16&255,B===0)w[r++]=D&65535;else if(B&16){m=D&65535,B&=15,B&&(c<B&&(I+=l[n++]<<c,c+=8),m+=I&(1<<B)-1,I>>>=B,c-=B),c<15&&(I+=l[n++]<<c,c+=8,I+=l[n++]<<c,c+=8),D=h[I&k];t:for(;;){if(B=D>>>24,I>>>=B,c-=B,B=D>>>16&255,B&16){if(u=D&65535,B&=15,c<B&&(I+=l[n++]<<c,c+=8,c<B&&(I+=l[n++]<<c,c+=8)),u+=I&(1<<B)-1,u>Q){t.msg="invalid distance too far back",A.mode=se;break A}if(I>>>=B,c-=B,B=r-o,u>B){if(B=u-B,B>g&&A.sane){t.msg="invalid distance too far back",A.mode=se;break A}if(E=0,C=f,d===0){if(E+=a-B,B<m){m-=B;do w[r++]=f[E++];while(--B);E=r-u,C=w}}else if(d<B){if(E+=a+d-B,B-=d,B<m){m-=B;do w[r++]=f[E++];while(--B);if(E=0,d<m){B=d,m-=B;do w[r++]=f[E++];while(--B);E=r-u,C=w}}}else if(E+=d-B,B<m){m-=B;do w[r++]=f[E++];while(--B);E=r-u,C=w}for(;m>2;)w[r++]=C[E++],w[r++]=C[E++],w[r++]=C[E++],m-=3;m&&(w[r++]=C[E++],m>1&&(w[r++]=C[E++]))}else{E=r-u;do w[r++]=w[E++],w[r++]=w[E++],w[r++]=w[E++],m-=3;while(m>2);m&&(w[r++]=w[E++],m>1&&(w[r++]=w[E++]))}}else if((B&64)===0){D=h[(D&65535)+(I&(1<<B)-1)];continue t}else{t.msg="invalid distance code",A.mode=se;break A}break}}else if((B&64)===0){D=N[(D&65535)+(I&(1<<B)-1)];continue e}else if(B&32){A.mode=nr;break A}else{t.msg="invalid literal/length code",A.mode=se;break A}break}}while(n<i&&r<s);m=c>>3,n-=m,c-=m<<3,I&=(1<<c)-1,t.next_in=n,t.next_out=r,t.avail_in=n<i?5+(i-n):5-(n-i),t.avail_out=r<s?257+(s-r):257-(r-s),A.hold=I,A.bits=c}var DA=15,ln=852,hn=592,dn=0,nt=1,un=2,ir=[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],rr=[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],or=[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],sr=[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 BA(t,e,A,n,i,r,o,s){var Q=s.bits,a=0,g=0,d=0,f=0,I=0,c=0,N=0,h=0,p=0,k=0,D,B,m,u,E,C=null,l=0,w,y=oA(DA+1),x=oA(DA+1),b=null,S=0,R,U,v;for(a=0;a<=DA;a++)y[a]=0;for(g=0;g<n;g++)y[e[A+g]]++;for(I=Q,f=DA;f>=1&&y[f]===0;f--);if(I>f&&(I=f),f===0)return i[r++]=1<<24|64<<16|0,i[r++]=1<<24|64<<16|0,s.bits=1,0;for(d=1;d<f&&y[d]===0;d++);for(I<d&&(I=d),h=1,a=1;a<=DA;a++)if(h<<=1,h-=y[a],h<0)return-1;if(h>0&&(t===dn||f!==1))return-1;for(x[1]=0,a=1;a<DA;a++)x[a+1]=x[a]+y[a];for(g=0;g<n;g++)e[A+g]!==0&&(o[x[e[A+g]]++]=g);if(t===dn?(C=b=o,w=19):t===nt?(C=ir,l-=257,b=rr,S-=257,w=256):(C=or,b=sr,w=-1),k=0,g=0,a=d,E=r,c=I,N=0,m=-1,p=1<<I,u=p-1,t===nt&&p>ln||t===un&&p>hn)return 1;for(;;){R=a-N,o[g]<w?(U=0,v=o[g]):o[g]>w?(U=b[S+o[g]],v=C[l+o[g]]):(U=96,v=0),D=1<<a-N,B=1<<c,d=B;do B-=D,i[E+(k>>N)+B]=R<<24|U<<16|v|0;while(B!==0);for(D=1<<a-1;k&D;)D>>=1;if(D!==0?(k&=D-1,k+=D):k=0,g++,--y[a]===0){if(a===f)break;a=e[A+o[g]]}if(a>I&&(k&u)!==m){for(N===0&&(N=I),E+=d,c=a-N,h=1<<c;c+N<f&&(h-=y[c+N],!(h<=0));)c++,h<<=1;if(p+=1<<c,t===nt&&p>ln||t===un&&p>hn)return 1;m=k&u,i[m]=I<<24|c<<16|E-r|0}}return k!==0&&(i[E+k]=a-N<<24|64<<16|0),s.bits=I,0}var ar=0,On=1,Xn=2,wn=4,gr=5,ae=6,EA=0,Ir=1,Qr=2,Z=-2,zn=-3,gt=-4,Cr=-5,pn=8,Pn=1,kn=2,mn=3,Dn=4,Nn=5,yn=6,xn=7,bn=8,Sn=9,Fn=10,Qe=11,AA=12,it=13,Rn=14,rt=15,vn=16,Jn=17,Gn=18,Ln=19,ge=20,Ie=21,Mn=22,_n=23,Un=24,Yn=25,Hn=26,ot=27,Kn=28,Tn=29,G=30,It=31,cr=32,Br=852,Er=592;function qn(t){return(t>>>24&255)+(t>>>8&65280)+((t&65280)<<8)+((t&255)<<24)}function fr(){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=oA(320),this.work=oA(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function lr(t){var e;return!t||!t.state?Z:(e=t.state,t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=e.wrap&1),e.mode=Pn,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=cA(Br),e.distcode=e.distdyn=cA(Er),e.sane=1,e.back=-1,EA)}function hr(t){var e;return!t||!t.state?Z:(e=t.state,e.wsize=0,e.whave=0,e.wnext=0,lr(t))}function dr(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))?Z:(n.window!==null&&n.wbits!==e&&(n.window=null),n.wrap=A,n.wbits=e,hr(t))}function jn(t,e){var A,n;return t?(n=new fr,t.state=n,n.window=null,A=dr(t,e),A!==EA&&(t.state=null),A):Z}var Zn=!0,st,at;function ur(t){if(Zn){var e;for(st=cA(512),at=cA(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(BA(On,t.lens,0,288,st,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;BA(Xn,t.lens,0,32,at,0,t.work,{bits:5}),Zn=!1}t.lencode=st,t.lenbits=9,t.distcode=at,t.distbits=5}function Wn(t,e,A,n){var i,r=t.state;return r.window===null&&(r.wsize=1<<r.wbits,r.wnext=0,r.whave=0,r.window=$(r.wsize)),n>=r.wsize?(j(r.window,e,A-r.wsize,r.wsize,0),r.wnext=0,r.whave=r.wsize):(i=r.wsize-r.wnext,i>n&&(i=n),j(r.window,e,A-n,i,r.wnext),n-=i,n?(j(r.window,e,A-n,n,0),r.wnext=n,r.whave=r.wsize):(r.wnext+=i,r.wnext===r.wsize&&(r.wnext=0),r.whave<r.wsize&&(r.whave+=i))),0}function Vn(t,e){var A,n,i,r,o,s,Q,a,g,d,f,I,c,N,h=0,p,k,D,B,m,u,E,C,l=$(4),w,y,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 Z;A=t.state,A.mode===AA&&(A.mode=it),o=t.next_out,i=t.output,Q=t.avail_out,r=t.next_in,n=t.input,s=t.avail_in,a=A.hold,g=A.bits,d=s,f=Q,C=EA;A:for(;;)switch(A.mode){case Pn:if(A.wrap===0){A.mode=it;break}for(;g<16;){if(s===0)break A;s--,a+=n[r++]<<g,g+=8}if(A.wrap&2&&a===35615){A.check=0,l[0]=a&255,l[1]=a>>>8&255,A.check=q(A.check,l,2,0),a=0,g=0,A.mode=kn;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=G;break}if((a&15)!==pn){t.msg="unknown compression method",A.mode=G;break}if(a>>>=4,g-=4,E=(a&15)+8,A.wbits===0)A.wbits=E;else if(E>A.wbits){t.msg="invalid window size",A.mode=G;break}A.dmax=1<<E,t.adler=A.check=1,A.mode=a&512?Fn:AA,a=0,g=0;break;case kn:for(;g<16;){if(s===0)break A;s--,a+=n[r++]<<g,g+=8}if(A.flags=a,(A.flags&255)!==pn){t.msg="unknown compression method",A.mode=G;break}if(A.flags&57344){t.msg="unknown header flags set",A.mode=G;break}A.head&&(A.head.text=a>>8&1),A.flags&512&&(l[0]=a&255,l[1]=a>>>8&255,A.check=q(A.check,l,2,0)),a=0,g=0,A.mode=mn;case mn:for(;g<32;){if(s===0)break A;s--,a+=n[r++]<<g,g+=8}A.head&&(A.head.time=a),A.flags&512&&(l[0]=a&255,l[1]=a>>>8&255,l[2]=a>>>16&255,l[3]=a>>>24&255,A.check=q(A.check,l,4,0)),a=0,g=0,A.mode=Dn;case Dn:for(;g<16;){if(s===0)break A;s--,a+=n[r++]<<g,g+=8}A.head&&(A.head.xflags=a&255,A.head.os=a>>8),A.flags&512&&(l[0]=a&255,l[1]=a>>>8&255,A.check=q(A.check,l,2,0)),a=0,g=0,A.mode=Nn;case Nn:if(A.flags&1024){for(;g<16;){if(s===0)break A;s--,a+=n[r++]<<g,g+=8}A.length=a,A.head&&(A.head.extra_len=a),A.flags&512&&(l[0]=a&255,l[1]=a>>>8&255,A.check=q(A.check,l,2,0)),a=0,g=0}else A.head&&(A.head.extra=null);A.mode=yn;case yn:if(A.flags&1024&&(I=A.length,I>s&&(I=s),I&&(A.head&&(E=A.head.extra_len-A.length,A.head.extra||(A.head.extra=new Array(A.head.extra_len)),j(A.head.extra,n,r,I,E)),A.flags&512&&(A.check=q(A.check,n,I,r)),s-=I,r+=I,A.length-=I),A.length))break A;A.length=0,A.mode=xn;case xn:if(A.flags&2048){if(s===0)break A;I=0;do E=n[r+I++],A.head&&E&&A.length<65536&&(A.head.name+=String.fromCharCode(E));while(E&&I<s);if(A.flags&512&&(A.check=q(A.check,n,I,r)),s-=I,r+=I,E)break A}else A.head&&(A.head.name=null);A.length=0,A.mode=bn;case bn:if(A.flags&4096){if(s===0)break A;I=0;do E=n[r+I++],A.head&&E&&A.length<65536&&(A.head.comment+=String.fromCharCode(E));while(E&&I<s);if(A.flags&512&&(A.check=q(A.check,n,I,r)),s-=I,r+=I,E)break A}else A.head&&(A.head.comment=null);A.mode=Sn;case Sn:if(A.flags&512){for(;g<16;){if(s===0)break A;s--,a+=n[r++]<<g,g+=8}if(a!==(A.check&65535)){t.msg="header crc mismatch",A.mode=G;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=AA;break;case Fn:for(;g<32;){if(s===0)break A;s--,a+=n[r++]<<g,g+=8}t.adler=A.check=qn(a),a=0,g=0,A.mode=Qe;case Qe:if(A.havedict===0)return t.next_out=o,t.avail_out=Q,t.next_in=r,t.avail_in=s,A.hold=a,A.bits=g,Qr;t.adler=A.check=1,A.mode=AA;case AA:if(e===gr||e===ae)break A;case it:if(A.last){a>>>=g&7,g-=g&7,A.mode=ot;break}for(;g<3;){if(s===0)break A;s--,a+=n[r++]<<g,g+=8}switch(A.last=a&1,a>>>=1,g-=1,a&3){case 0:A.mode=Rn;break;case 1:if(ur(A),A.mode=ge,e===ae){a>>>=2,g-=2;break A}break;case 2:A.mode=Jn;break;case 3:t.msg="invalid block type",A.mode=G}a>>>=2,g-=2;break;case Rn:for(a>>>=g&7,g-=g&7;g<32;){if(s===0)break A;s--,a+=n[r++]<<g,g+=8}if((a&65535)!==(a>>>16^65535)){t.msg="invalid stored block lengths",A.mode=G;break}if(A.length=a&65535,a=0,g=0,A.mode=rt,e===ae)break A;case rt:A.mode=vn;case vn:if(I=A.length,I){if(I>s&&(I=s),I>Q&&(I=Q),I===0)break A;j(i,n,r,I,o),s-=I,r+=I,Q-=I,o+=I,A.length-=I;break}A.mode=AA;break;case Jn:for(;g<14;){if(s===0)break A;s--,a+=n[r++]<<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=G;break}A.have=0,A.mode=Gn;case Gn:for(;A.have<A.ncode;){for(;g<3;){if(s===0)break A;s--,a+=n[r++]<<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,w={bits:A.lenbits},C=BA(ar,A.lens,0,19,A.lencode,0,A.work,w),A.lenbits=w.bits,C){t.msg="invalid code lengths set",A.mode=G;break}A.have=0,A.mode=Ln;case Ln:for(;A.have<A.nlen+A.ndist;){for(;h=A.lencode[a&(1<<A.lenbits)-1],p=h>>>24,k=h>>>16&255,D=h&65535,!(p<=g);){if(s===0)break A;s--,a+=n[r++]<<g,g+=8}if(D<16)a>>>=p,g-=p,A.lens[A.have++]=D;else{if(D===16){for(y=p+2;g<y;){if(s===0)break A;s--,a+=n[r++]<<g,g+=8}if(a>>>=p,g-=p,A.have===0){t.msg="invalid bit length repeat",A.mode=G;break}E=A.lens[A.have-1],I=3+(a&3),a>>>=2,g-=2}else if(D===17){for(y=p+3;g<y;){if(s===0)break A;s--,a+=n[r++]<<g,g+=8}a>>>=p,g-=p,E=0,I=3+(a&7),a>>>=3,g-=3}else{for(y=p+7;g<y;){if(s===0)break A;s--,a+=n[r++]<<g,g+=8}a>>>=p,g-=p,E=0,I=11+(a&127),a>>>=7,g-=7}if(A.have+I>A.nlen+A.ndist){t.msg="invalid bit length repeat",A.mode=G;break}for(;I--;)A.lens[A.have++]=E}}if(A.mode===G)break;if(A.lens[256]===0){t.msg="invalid code -- missing end-of-block",A.mode=G;break}if(A.lenbits=9,w={bits:A.lenbits},C=BA(On,A.lens,0,A.nlen,A.lencode,0,A.work,w),A.lenbits=w.bits,C){t.msg="invalid literal/lengths set",A.mode=G;break}if(A.distbits=6,A.distcode=A.distdyn,w={bits:A.distbits},C=BA(Xn,A.lens,A.nlen,A.ndist,A.distcode,0,A.work,w),A.distbits=w.bits,C){t.msg="invalid distances set",A.mode=G;break}if(A.mode=ge,e===ae)break A;case ge:A.mode=Ie;case Ie:if(s>=6&&Q>=258){t.next_out=o,t.avail_out=Q,t.next_in=r,t.avail_in=s,A.hold=a,A.bits=g,tt(t,f),o=t.next_out,i=t.output,Q=t.avail_out,r=t.next_in,n=t.input,s=t.avail_in,a=A.hold,g=A.bits,A.mode===AA&&(A.back=-1);break}for(A.back=0;h=A.lencode[a&(1<<A.lenbits)-1],p=h>>>24,k=h>>>16&255,D=h&65535,!(p<=g);){if(s===0)break A;s--,a+=n[r++]<<g,g+=8}if(k&&(k&240)===0){for(B=p,m=k,u=D;h=A.lencode[u+((a&(1<<B+m)-1)>>B)],p=h>>>24,k=h>>>16&255,D=h&65535,!(B+p<=g);){if(s===0)break A;s--,a+=n[r++]<<g,g+=8}a>>>=B,g-=B,A.back+=B}if(a>>>=p,g-=p,A.back+=p,A.length=D,k===0){A.mode=Hn;break}if(k&32){A.back=-1,A.mode=AA;break}if(k&64){t.msg="invalid literal/length code",A.mode=G;break}A.extra=k&15,A.mode=Mn;case Mn:if(A.extra){for(y=A.extra;g<y;){if(s===0)break A;s--,a+=n[r++]<<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=_n;case _n:for(;h=A.distcode[a&(1<<A.distbits)-1],p=h>>>24,k=h>>>16&255,D=h&65535,!(p<=g);){if(s===0)break A;s--,a+=n[r++]<<g,g+=8}if((k&240)===0){for(B=p,m=k,u=D;h=A.distcode[u+((a&(1<<B+m)-1)>>B)],p=h>>>24,k=h>>>16&255,D=h&65535,!(B+p<=g);){if(s===0)break A;s--,a+=n[r++]<<g,g+=8}a>>>=B,g-=B,A.back+=B}if(a>>>=p,g-=p,A.back+=p,k&64){t.msg="invalid distance code",A.mode=G;break}A.offset=D,A.extra=k&15,A.mode=Un;case Un:if(A.extra){for(y=A.extra;g<y;){if(s===0)break A;s--,a+=n[r++]<<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=G;break}A.mode=Yn;case Yn:if(Q===0)break A;if(I=f-Q,A.offset>I){if(I=A.offset-I,I>A.whave&&A.sane){t.msg="invalid distance too far back",A.mode=G;break}I>A.wnext?(I-=A.wnext,c=A.wsize-I):c=A.wnext-I,I>A.length&&(I=A.length),N=A.window}else N=i,c=o-A.offset,I=A.length;I>Q&&(I=Q),Q-=I,A.length-=I;do i[o++]=N[c++];while(--I);A.length===0&&(A.mode=Ie);break;case Hn:if(Q===0)break A;i[o++]=A.length,Q--,A.mode=Ie;break;case ot:if(A.wrap){for(;g<32;){if(s===0)break A;s--,a|=n[r++]<<g,g+=8}if(f-=Q,t.total_out+=f,A.total+=f,f&&(t.adler=A.check=A.flags?q(A.check,i,f,o-f):HA(A.check,i,f,o-f)),f=Q,(A.flags?a:qn(a))!==A.check){t.msg="incorrect data check",A.mode=G;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[r++]<<g,g+=8}if(a!==(A.total&4294967295)){t.msg="incorrect length check",A.mode=G;break}a=0,g=0}A.mode=Tn;case Tn:C=Ir;break A;case G:C=zn;break A;case It:return gt;case cr:default:return Z}return t.next_out=o,t.avail_out=Q,t.next_in=r,t.avail_in=s,A.hold=a,A.bits=g,(A.wsize||f!==t.avail_out&&A.mode<G&&(A.mode<ot||e!==wn))&&Wn(t,t.output,t.next_out,f-t.avail_out)?(A.mode=It,gt):(d-=t.avail_in,f-=t.avail_out,t.total_in+=d,t.total_out+=f,A.total+=f,A.wrap&&f&&(t.adler=A.check=A.flags?q(A.check,i,f,t.next_out-f):HA(A.check,i,f,t.next_out-f)),t.data_type=A.bits+(A.last?64:0)+(A.mode===AA?128:0)+(A.mode===ge||A.mode===rt?256:0),(d===0&&f===0||e===wn)&&C===EA&&(C=Cr),C)}function $n(t){if(!t||!t.state)return Z;var e=t.state;return e.window&&(e.window=null),t.state=null,EA}function Ai(t,e){var A;return!t||!t.state||(A=t.state,(A.wrap&2)===0)?Z:(A.head=e,e.done=!1,EA)}function Qt(t,e){var A=e.length,n,i,r;return!t||!t.state||(n=t.state,n.wrap!==0&&n.mode!==Qe)?Z:n.mode===Qe&&(i=1,i=HA(i,e,A,0),i!==n.check)?zn:(r=Wn(t,e,A,A),r?(n.mode=It,gt):(n.havedict=1,EA))}var Ce={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 Ct(){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 ct=Object.prototype.toString,Bt=class t{constructor(e){if(!(this instanceof t))return new t(e);this.options=In({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 Ct,this.strm.avail_out=0;var n=jn(this.strm,A.windowBits);if(n!==rA)throw new Error(Ce[n]);if(this.header=new et,Ai(this.strm,this.header),A.dictionary&&(typeof A.dictionary=="string"?A.dictionary=At(A.dictionary):ct.call(A.dictionary)==="[object ArrayBuffer]"&&(A.dictionary=new Uint8Array(A.dictionary)),A.raw&&(n=Qt(this.strm,A.dictionary),n!==rA)))throw new Error(Ce[n])}push(e,A){var n=this.strm,i=this.options.chunkSize,r=this.options.dictionary,o,s,Q,a,g,d,f=!1;if(this.ended)return!1;s=A===~~A?A:A===!0?MA:We,typeof e=="string"?n.input=cn(e):ct.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=$(i),n.next_out=0,n.avail_out=i),o=Vn(n,We),o===an&&r&&(typeof r=="string"?d=At(r):ct.call(r)==="[object ArrayBuffer]"?d=new Uint8Array(r):d=r,o=Qt(this.strm,d)),o===gn&&f===!0&&(o=rA,f=!1),o!==_A&&o!==rA)return this.onEnd(o),this.ended=!0,!1;n.next_out&&(n.avail_out===0||o===_A||n.avail_in===0&&(s===MA||s===Ve))&&(this.options.to==="string"?(Q=En(n.output,n.next_out),a=n.next_out-Q,g=Bn(n.output,Q),n.next_out=a,n.avail_out=i-a,a&&j(n.output,n.output,Q,a,0),this.onData(g)):this.onData(oe(n.output,n.next_out))),n.avail_in===0&&n.avail_out===0&&(f=!0)}while((n.avail_in>0||n.avail_out===0)&&o!==_A);return o===_A&&(s=MA),s===MA?(o=$n(this.strm),this.onEnd(o),this.ended=!0,o===rA):(s===Ve&&(this.onEnd(rA),n.avail_out=0),!0)}onData(e){this.chunks.push(e)}onEnd(e){e===rA&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=re(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg}};function wr(t,e){var A=new Bt(e);if(A.push(t,!0),A.err)throw A.msg||Ce[A.err];return A.result}var ei=wr;function Et(t,e,A){let n=[],i=0,r=e;for(;i+26<=t.length&&!(t[i]!==31||t[i+1]!==139||t[i+2]!==8||t[i+3]!==4||t[i+10]!==6||t[i+12]!==66||t[i+13]!==67);){let o=(t[i+16]|t[i+17]<<8)+1;if(o<26||i+o>t.length)break;let s=i+o-8,Q=(t[s+4]|t[s+5]<<8|t[s+6]<<16|t[s+7]<<24)>>>0;if(n.push({inputOffset:i,compressedSize:o,decompressedSize:Q,filePosition:r}),r>=A)break;i+=o,r+=o}return n}function ti(t){let e=0;for(let i of t)e+=i.length;let A=new Uint8Array(e),n=0;for(let i of t)A.set(i,n),n+=i.length;return A}var sA={};sA.d=(t,e)=>{if(Array.isArray(e))for(var A=0;A<e.length;){var n=e[A++],i=e[A++];sA.o(t,n)?i===0&&A++:i===0?Object.defineProperty(t,n,{enumerable:!0,value:e[A++]}):Object.defineProperty(t,n,{enumerable:!0,get:i})}else for(var n in e)sA.o(e,n)&&!sA.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})};sA.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);sA.r=t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var lt={};sA.r(lt);sA.d(lt,{ChunkSliceResult:()=>yA,__wbg_Error_92b29b0548f8b746:()=>kr,__wbg___wbindgen_throw_344f42d3211c4765:()=>mr,__wbg_set_wasm:()=>Qi,decompress_all:()=>ri,decompress_chunk_slice:()=>oi});var pr="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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",yA=class t{static __wrap(e){let A=Object.create(t.prototype);return A.__wbg_ptr=e,ni.register(A,A.__wbg_ptr,A),A}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,ni.unregister(this),e}free(){let e=this.__destroy_into_raw();F.__wbg_chunksliceresult_free(e,0)}take_buffer(){try{let i=F.__wbindgen_add_to_stack_pointer(-16);F.chunksliceresult_take_buffer(i,this.__wbg_ptr);var e=T().getInt32(i+0,!0),A=T().getInt32(i+4,!0),n=si(e,A).slice();return F.__wbindgen_export(e,A*1,1),n}finally{F.__wbindgen_add_to_stack_pointer(16)}}take_cpositions(){try{let i=F.__wbindgen_add_to_stack_pointer(-16);F.chunksliceresult_take_cpositions(i,this.__wbg_ptr);var e=T().getInt32(i+0,!0),A=T().getInt32(i+4,!0),n=ii(e,A).slice();return F.__wbindgen_export(e,A*8,8),n}finally{F.__wbindgen_add_to_stack_pointer(16)}}take_dpositions(){try{let i=F.__wbindgen_add_to_stack_pointer(-16);F.chunksliceresult_take_dpositions(i,this.__wbg_ptr);var e=T().getInt32(i+0,!0),A=T().getInt32(i+4,!0),n=ii(e,A).slice();return F.__wbindgen_export(e,A*8,8),n}finally{F.__wbindgen_add_to_stack_pointer(16)}}};Symbol.dispose&&(yA.prototype[Symbol.dispose]=yA.prototype.free);function ri(t){try{let o=F.__wbindgen_add_to_stack_pointer(-16),s=gi(t,F.__wbindgen_export2),Q=dt;F.decompress_all(o,s,Q);var e=T().getInt32(o+0,!0),A=T().getInt32(o+4,!0),n=T().getInt32(o+8,!0),i=T().getInt32(o+12,!0);if(i)throw Ii(n);var r=si(e,A).slice();return F.__wbindgen_export(e,A*1,1),r}finally{F.__wbindgen_add_to_stack_pointer(16)}}function oi(t,e,A,n,i){try{let Q=F.__wbindgen_add_to_stack_pointer(-16),a=gi(t,F.__wbindgen_export2),g=dt;F.decompress_chunk_slice(Q,a,g,e,A,n,i);var r=T().getInt32(Q+0,!0),o=T().getInt32(Q+4,!0),s=T().getInt32(Q+8,!0);if(s)throw Ii(o);return yA.__wrap(r)}finally{F.__wbindgen_add_to_stack_pointer(16)}}function kr(t,e){let A=Error(ai(t,e));return Dr(A)}function mr(t,e){throw new Error(ai(t,e))}var ni=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(t=>F.__wbg_chunksliceresult_free(t,1));function Dr(t){KA===eA.length&&eA.push(eA.length+1);let e=KA;return KA=eA[e],eA[e]=t,e}function Nr(t){t<1028||(eA[t]=KA,KA=t)}function ii(t,e){return t=t>>>0,yr().subarray(t/8,t/8+e)}function si(t,e){return t=t>>>0,ht().subarray(t/1,t/1+e)}var NA=null;function T(){return(NA===null||NA.buffer.detached===!0||NA.buffer.detached===void 0&&NA.buffer!==F.memory.buffer)&&(NA=new DataView(F.memory.buffer)),NA}var ce=null;function yr(){return(ce===null||ce.byteLength===0)&&(ce=new Float64Array(F.memory.buffer)),ce}function ai(t,e){return Sr(t>>>0,e)}var Be=null;function ht(){return(Be===null||Be.byteLength===0)&&(Be=new Uint8Array(F.memory.buffer)),Be}function xr(t){return eA[t]}var eA=new Array(1024).fill(void 0);eA.push(void 0,null,!0,!1);var KA=eA.length;function gi(t,e){let A=e(t.length*1,1)>>>0;return ht().set(t,A/1),dt=t.length,A}function Ii(t){let e=xr(t);return Nr(t),e}var fe=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});fe.decode();var br=2146435072,ft=0;function Sr(t,e){return ft+=e,ft>=br&&(fe=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),fe.decode(),ft=e),fe.decode(ht().subarray(t,t+e).slice())}var dt=0,F;function Qi(t){F=t}var fA=null,Ee=null;async function Ci(){return fA||(Ee||(Ee=(async()=>{let e=await(await fetch(pr)).arrayBuffer(),{instance:A}=await WebAssembly.instantiate(e,{"./bgzf_wasm_bg.js":lt});return fA=A.exports,Qi(fA),fA})().catch(t=>{throw Ee=null,t})),Ee)}async function ci(t){return fA||await Ci(),ri(t)}async function Bi(t,e,A,n,i){fA||await Ci();let r=oi(t,e,A,n,i),o=r.take_buffer(),s=r.take_cpositions(),Q=r.take_dpositions();return r.free(),{buffer:o,cpositions:s,dpositions:Q}}var Fr=26;function fi(t){return t[0]===31&&t[1]===139}function Rr(t){return t.length>=Fr&&fi(t)&&t[2]===8&&t[3]===4&&t[10]===6&&t[12]===66&&t[13]===67}function li(t){return t instanceof Error?t.message:`${t}`}async function Ei(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 ei(t,void 0)}function hi(t){return li(t).includes("invalid gzip header")?new Error("problem decompressing block: incorrect gzip header check",{cause:t}):t}async function TA(t){if(t.length===0)return new Uint8Array(0);if(!Rr(t)){if(fi(t))return Ei(t);throw new Error("problem decompressing block: not a valid bgzf or gzip block")}try{return await ci(t)}catch(e){if(li(e).includes("invalid bgzf header"))return Ei(t);throw hi(e)}}function di(t,e,A,n){let i=[],r=[],o=[],s=A.dataPosition;for(let Q=0;Q<t.length;Q++){let a=t[Q],g=e[Q],d=g.filePosition>=n.blockPosition;i.push(g.filePosition),r.push(s);let f=Q===0?A.dataPosition:0,I=d?Math.min(n.dataPosition+1,a.length):a.length;if(f<I&&o.push(a.subarray(f,I)),s+=a.length-f,d){i.push(g.filePosition+g.compressedSize),r.push(s);break}}return{slices:o,cpositions:Float64Array.from(i),dpositions:Float64Array.from(r)}}function vr(t,e,A,n){let{slices:i,cpositions:r,dpositions:o}=di(t,e,A,n);return{buffer:ti(i),cpositions:r,dpositions:o}}function Jr(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 ut(t,e,A){let{minv:n,maxv:i}=e;if(A){let Q=Et(t,n.blockPosition,i.blockPosition);if(ui(Q)>=wt){let a=await A.decompressBlocks(t,Q),{slices:g,cpositions:d,dpositions:f}=di(a.blocks,Q,n,i);return{segments:Jr(g),cpositions:d,dpositions:f}}}let{buffer:r,cpositions:o,dpositions:s}=await wi(t,e);return{segments:[r],cpositions:o,dpositions:s}}var wt=4e5;function ui(t){let e=0;for(let A of t)e+=A.decompressedSize;return e}async function wi(t,e,A){let{minv:n,maxv:i}=e;if(A){let r=Et(t,n.blockPosition,i.blockPosition);if(ui(r)>=wt){let o=await A.decompressBlocks(t,r);return vr(o.blocks,r,n,i)}}try{let r=await Bi(t,n.blockPosition,n.dataPosition,i.blockPosition,i.dataPosition);return{buffer:r.buffer,cpositions:r.cpositions,dpositions:r.dpositions}}catch(r){throw hi(r)}}function lA(t){if(t?.aborted)throw pt(t)}function pt(t){let e=t.reason;return e===void 0?new DOMException("This operation was aborted","AbortError"):e}function pi(t){return typeof t?.addEventListener=="function"}var aA=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:i=s=>String(s),idleTimeoutMs:r=0,budget:o}={}){this.fill=e,this.limit=A,this.shared=o&&{budget:o,membership:o.register(this)},this.sizeOf=n,this.toCacheKey=i,this.idleTimeoutMs=r>0&&Number.isFinite(r)?r: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){lA(A);let i=this.toCacheKey(e),r=this.entries.get(i);r&&this.isDoomed(r)&&(this.release(i),r=void 0),r?this.touch(i,r):r=this.start(i,e,n),r.pending&&this.join(r.pending,A);try{return await this.settleFor(r,A)}finally{lA(A)}}settleFor(e,A){if(!e.pending||!pi(A))return e.promise;let n,i=new Promise((o,s)=>{n=s}),r=()=>{n(pt(A))};return A.addEventListener("abort",r,{once:!0}),Promise.race([e.promise,i]).finally(()=>{A.removeEventListener("abort",r)})}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,i]of this.entries)!i.pending&&i.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),i=setInterval(()=>{let r=n.deref();r?r.sweepIdle():clearInterval(i)},A);this.sweepTimer=i,i.unref?.()}stopSweep(){this.sweepTimer!==void 0&&(clearInterval(this.sweepTimer),this.sweepTimer=void 0)}start(e,A,n){let i=n??(this.fill&&(a=>this.fill(A,a)));if(!i)throw new Error("SharedReadCache needs a fill, either on the cache or on the get() call");let r={signals:new Map,pinned:!1,controller:new AbortController},o={promise:Promise.resolve(i(r.controller.signal)),pending:r,size:0,lastTouched:Date.now(),seq:this.stamp()};this.entries.set(e,o);let s=()=>this.entries.get(e)===o,Q=()=>{for(let[a,g]of r.signals)a.removeEventListener("abort",g);o.pending=void 0};return o.promise.then(a=>{let g=s()?this.weigh(a):void 0,d=s();Q(),d&&(g===void 0?this.entries.delete(e):(o.lastTouched=Date.now(),o.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),Q()}),o}weigh(e){try{let A=this.sizeOf(e);return Number.isFinite(A)&&A>=0?A:void 0}catch{return}}join(e,A){if(!pi(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 le(t){return t.bytes?t.bytes():new Uint8Array(await t.arrayBuffer())}async function ki(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?kt(t,A):le(t)}function mi(t){return typeof t=="string"?{encoding:t,opts:{}}:{encoding:t?.encoding,opts:t??{}}}function Di(t){let e=/\/(\d+)$/.exec(t??"")?.[1];return e===void 0?void 0:parseInt(e,10)}function Gr(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 Lr=50;async function kt(t,e){let A=Gr(t),n=t.body;if(!n||A===void 0){let Q=await le(t);return e(Q.byteLength,A??Q.byteLength),Q}let i=n.getReader(),r=new Uint8Array(A),o=0,s=Date.now();e(0,A);for(let Q=await i.read();!Q.done;Q=await i.read()){if(o+Q.value.byteLength>r.length){let g=new Uint8Array(Math.max(o+Q.value.byteLength,r.length*2));g.set(r.subarray(0,o)),r=g}r.set(Q.value,o),o+=Q.value.byteLength;let a=Date.now();a-s>=Lr&&(s=a,e(o,A))}return e(o,A),o===r.length?r:r.slice(0,o)}function Mr(...t){let e=new Map;for(let A of t)for(let[n,i]of Object.entries(A??{}))e.set(n.toLowerCase(),[n,i]);return Object.fromEntries(e.values())}function mt(t){let e=t.body;typeof e?.cancel=="function"&&e.cancel().catch(()=>{})}function Ni(t){return Number.isSafeInteger(t)&&t>=0}function _r(t){return typeof t=="object"&&t!==null&&"name"in t&&t.name==="TypeError"}function Ur(t){return(typeof t=="object"&&t!==null&&"message"in t&&typeof t.message=="string"?t.message:`${t}`).replace(/\.$/,"")}var tA=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:Mr(this.baseHeaders,e.headers,A),...n?{signal:n}:{}}}async fetch(e,A){let n=r=>_r(r)&&!A?.signal?.aborted?new Error(`${Ur(r)} fetching ${e}`,{cause:r}):r,i;try{i=await this.fetchImplementation(e,A)}catch(r){if(`${r}`.includes("Failed to fetch")){console.warn(`generic-filehandle: refetching ${e} to attempt to work around chrome CORS header caching bug`);try{i=await this.fetchImplementation(e,{...A,cache:"reload"})}catch(o){throw n(o)}}else throw n(r)}return i}async read(e,A,n={}){if(!Ni(e)||!Ni(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 i=await this.fetch(this.url,this.buildRequest(n,{range:`bytes=${A}-${A+e-1}`}));if(i.status===416)return mt(i),new Uint8Array(0);if(this.checkOk(i),i.status===200&&A===0||i.status===206){let r=Di(i.headers.get("content-range"));r!==void 0&&(this._stat={size:r});let o=n.onProgress?await kt(i,n.onProgress):await le(i);return!this._stat&&i.status===200&&(this._stat={size:o.byteLength}),o.byteLength<=e?o:o.slice(0,e)}throw mt(i),new Error(i.status===200?`${this.url} fetch returned status 200, expected 206`:`HTTP ${i.status} fetching ${this.url}`)}checkOk(e){if(!e.ok)throw mt(e),new Error(`HTTP ${e.status} fetching ${this.url}`)}async readFile(e){let{encoding:A,opts:n}=mi(e),i=await this.fetch(this.url,this.buildRequest(n));this.checkOk(i);let r=await this.readFileBody(i,A,n.onProgress);return i.status===200&&typeof r!="string"&&(this._stat={size:r.byteLength}),r}readFileBody(e,A,n){return ki(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 hA=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 W=class{minv;maxv;bin;endPosition;constructor(e,A,n,i=A.blockPosition+65536){this.minv=e,this.maxv=A,this.bin=n,this.endPosition=i}toString(){return`${this.minv.toString()}..${this.maxv.toString()} (bin ${this.bin}, fetchedSize ${this.fetchedSize()})`}fetchedSize(){return this.endPosition-this.minv.blockPosition}};function Dt(t,e){if(!(e>0))throw new TypeError(`\`${t}\` must be a number greater than 0`)}var qA=class{#A=new Map;#e=new Map;#t;#i;#r;constructor(e){let A=e.maxAge??Number.POSITIVE_INFINITY;Dt("maxSize",e.maxSize),Dt("maxAge",A),this.#t=e.maxSize,this.#i=A,this.#r=e.onEviction}#o(e){let A=this.#r;if(A)for(let[n,i]of e)A(n,i.value)}#n(e,A){return A.expiry!==void 0&&A.expiry<=Date.now()?(this.#r?.(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.#o(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 i={value:A,expiry:n===Number.POSITIVE_INFINITY?void 0:Date.now()+n};return this.#A.has(e)?this.#A.set(e,i):this.#g(e,i),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){Dt("maxSize",e);let A=[...this.#s()],n=A.length-e;n<0?(this.#A=new Map(A),this.#e=new Map):(this.#o(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.#o(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,i]of this)e.call(A,i,n,this)}get[Symbol.toStringTag](){return"QuickLRU"}toString(){return`QuickLRU(${this.size}/${this.maxSize})`}[Symbol.for("nodejs.util.inspect.custom")](){return this.toString()}};function yi(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 xA=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 gA(t,e=0){return new xA(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 he(t,e){let A=t.length;if(A===0)return t;let n;if(e){let s=e.blockPosition,Q=e.dataPosition;n=[];for(let a=0;a<A;a++){let g=t[a];(g.maxv.blockPosition-s||g.maxv.dataPosition-Q)>0&&n.push(g)}if(n.length===0)return n}else n=t;n.sort((s,Q)=>{let a=s.minv.blockPosition-Q.minv.blockPosition;return a===0?s.minv.dataPosition-Q.minv.dataPosition:a});let i=[n[0]],r=n[0].minv.blockPosition,o=n[0].maxv.blockPosition;for(let s=1;s<n.length;s++){let Q=n[s],a=Q.minv.blockPosition,g=Q.maxv.blockPosition;if(a-o<65e3&&g-r<5e6){let d=i.at(-1);(g-o||Q.maxv.dataPosition-d.maxv.dataPosition)>0&&(i[i.length-1]=new W(d.minv,Q.maxv,d.bin,Q.endPosition),o=g)}else i.push(Q),r=a,o=g}return Yr(i)}function Yr(t){let e=[t[0]];for(let A=1;A<t.length;A++){let n=t[A],i=e.at(-1).maxv;if((n.minv.blockPosition-i.blockPosition||n.minv.dataPosition-i.dataPosition)>=0){e.push(n);continue}(n.maxv.blockPosition-i.blockPosition||n.maxv.dataPosition-i.dataPosition)>0&&e.push(new W(i,n.maxv,n.bin,n.endPosition))}return e}function de(t,e=[]){let A=[...e];for(let n of t)A.push(n.minv.blockPosition,n.maxv.blockPosition);A.sort((n,i)=>n-i);for(let n of t){let i=n.maxv.blockPosition,r=0,o=A.length;for(;r<o;){let s=r+o>>>1;A[s]>i?o=s:r=s+1}r<A.length&&(n.endPosition=Math.min(n.endPosition,A[r]))}}function ue(t,e,A,n){let i=n?n.blockPosition:1/0,r=n?n.dataPosition:0,o=!1;for(let s=0;s<A;s++){let Q=e+s*8,a=t[Q+7]*1099511627776+t[Q+6]*4294967296+t[Q+5]*16777216+t[Q+4]*65536+t[Q+3]*256+t[Q+2],g=t[Q+1]<<8|t[Q];(a<i||a===i&&g<r)&&(i=a,r=g,o=!0)}return o?new xA(i,r):n}function Hr(t){let e=new TextDecoder("utf-8"),A=[],n={},i=0,r=0;for(;r<t.length;){let o=t.indexOf(0,r);if(o===-1)break;if(o>r){let s=e.decode(t.subarray(r,o));A[i]=s,n[s]=i}r=o+1,i++}return{refNameToId:n,refIdToName:A}}var Kr={0:"generic",1:"SAM",2:"VCF",3:"GAF"};function we(t,e){let A=new DataView(t.buffer,t.byteOffset,t.byteLength),n=A.getInt32(e,!0),i=n&65536?"zero-based-half-open":"1-based-closed",r=Kr[n&15];if(!r)throw new Error(`invalid Tabix preset format flags ${n}`);let o={ref:A.getInt32(e+4,!0),start:A.getInt32(e+8,!0),end:A.getInt32(e+12,!0)},s=A.getInt32(e+16,!0),Q=s?String.fromCharCode(s):void 0,a=A.getInt32(e+20,!0),g=A.getInt32(e+24,!0),{refIdToName:d,refNameToId:f}=Hr(t.subarray(e+28,e+28+g));return{refIdToName:d,refNameToId:f,skipLines:a,metaChar:Q,columnNumbers:o,format:r,coordinateType:i}}function pe(t,e){return{lineCount:yi(t,e)}}function ke(t,e=5){let A=new qA({maxSize:e});return n=>{let i=A.get(n);if(i!==void 0)return i;let r=t(n);return r!==void 0&&A.set(n,r),r}}function xi(t){let e=0;for(let i of t)e+=i.length;let A=new Uint8Array(e),n=0;for(let i of t)A.set(i,n),n+=i.length;return A}var bi=10;function Nt(t,e){let A=0,n,i=0;for(let r of t){let o=0;if(n){let a=r.indexOf(bi);if(a===-1){n=xi([n,r]),A+=r.length;continue}if(e(xi([n,r.subarray(0,a+1)]),i))return!0;o=a+1,n=void 0}let s=r.lastIndexOf(bi);if(s>=o&&e(r.subarray(o,s+1),A+o))return!0;let Q=Math.max(o,s+1);Q<r.length&&(n=r.slice(Q),i=A+Q),A+=r.length}return!1}function Tr(t,e,A,n){if(e>2**(A+n*3))return;let i=(8**(n+1)-1)/7,r=(8**n-1)/7+Math.floor((e-1)/2**A)+1;for(r>=i&&(r=0);;){for(;r%8===1;)r=(r-1)/8;if(r===0)return;let o=t[r];if(o?.length){let s=o[0].minv;for(let Q=1;Q<o.length;Q++){let a=o[Q].minv;a.compareTo(s)<0&&(s=a)}return s}r++}}function Si(t,e){return t.format==="GAF"?0:t.refNameToId[e]}var dA=class{filehandle;parseCache=new aA({});constructor({filehandle:e}){this.filehandle=e}async readIndexBytes(e){let A=await this.filehandle.readFile({signal:e.signal,onProgress:e.onProgress}),n=await TA(A);return{bytes:n,dataView:new DataView(n.buffer,n.byteOffset,n.byteLength)}}async lineCount(e,A={}){let n=await this.parse(A),i=Si(n,e);return i===void 0?-1:n.indices(i)?.stats?.lineCount??-1}async getMetadata(e={}){let{indices:A,...n}=await this.parse(e);return n}async blocksForRange(e,A,n,i={}){let r=await this.parse(i),o=Si(r,e);if(o===void 0)return[];let s=r.indices(o);if(!s)return[];r.format==="GAF"&&(A=Math.max(A-1,0));let Q=[];for(let[d,f]of this.reg2bins(A,n,r))for(let I=d;I<=f;I++){let c=s.binIndex[I];if(c)for(let N of c)Q.push(N)}let a=he(Q,this.lowestOffset(s,A,r)),g=Tr(s.binIndex,n,r.minShift,r.depth);if(g){let d=a.length;for(;d>0&&a[d-1].minv.compareTo(g)>=0;)d--;a.length=d}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 qr=21582659,Zr=38359875;function Fi(t,e){return t*2**e}function yt(t,e){return Math.floor(t/2**e)}var uA=class extends dA{async _parse(e={}){let{bytes:A,dataView:n}=await this.readIndexBytes(e),i=n.getUint32(0,!0),r;if(i===qr)r=1;else if(i===Zr)r=2;else throw new Error(`Not a CSI file (magic=${i})`);let o=n.getInt32(4,!0),s=n.getInt32(8,!0),Q=(8**(s+1)-1)/7,a=2**(o+s*3),g=n.getInt32(12,!0),d=g>=28&&(n.getInt32(16,!0)&15)===3;if(g<30&&!d)throw new Error("CSI index has no tabix header, so it names no references; it may be a BAM or BCF index");let f=we(A,16),I=n.getInt32(16+g,!0),c=16+g+4,N,h=[];for(let k=0;k<I;k++){h.push(c);let D=n.getInt32(c,!0);c+=4;for(let B=0;B<D;B++){let m=n.getUint32(c,!0);if(c+=4,m>Q)c+=44;else{N=ue(A,c,1,N),c+=8;let u=n.getInt32(c,!0);c+=4+16*u}}}function p(k){let D=h[k];if(D===void 0)return;let B=D,m=n.getInt32(B,!0);B+=4;let u={},E={},C;for(let l=0;l<m;l++){let w=n.getUint32(B,!0);if(B+=4,w>Q)C=pe(A,B+28),B+=44;else{E[w]=gA(A,B),B+=8;let y=n.getInt32(B,!0);B+=4;let x=Array.from({length:y});for(let b=0;b<y;b++)x[b]=new W(gA(A,B),gA(A,B+8),w),B+=16;u[w]=x}}return de(Object.values(u).flat()),{binIndex:u,loffsets:E,stats:C}}return{...f,csi:!0,refCount:I,maxBlockSize:65536,firstDataLine:N,csiVersion:r,indices:ke(p),minShift:o,depth:s,maxBinNumber:Q,maxRefLength:a}}lowestOffset(e,A,{minShift:n,depth:i}){let{loffsets:r}=e,o;if(r){let s=(Fi(1,3*i)-1)/7+yt(Math.max(A,0),n);for(;o===void 0&&s>0;)if(o=r[s],o===void 0){let Q=Math.floor((s-1)/8),a=Q*8+1;s=s>a?s-1:Q}o??=r[0]}return o}reg2bins(e,A,{minShift:n,depth:i,maxBinNumber:r}){e=Math.max(e,0);let o=2**(n+i*3);A>o&&(A=o),A-=1;let s=0,Q=0,a=n+i*3,g=[];for(;s<=i;a-=3,Q+=Fi(1,s*3),s+=1){let d=Q+yt(e,a),f=Q+yt(A,a);if(f-d+g.length>r)throw new Error(`query ${e}-${A} is too large for current binning scheme (shift ${n}, depth ${i}), try a smaller query or a coarser index binning scheme`);g.push([d,f])}return g}};var Or=21578324,xt=5,bt=14,me=2**(bt+xt*3);function Ri(t){return Math.min(Math.max(t,0),me)}var nA=class extends dA{reg2bins(e,A){e>me&&console.warn("querying outside of possible tabix range");let n=Ri(e),i=Math.min(A,me)-1,r=[];return n<=i&&r.push([0,0],[1+(n>>26),1+(i>>26)],[9+(n>>23),9+(i>>23)],[73+(n>>20),73+(i>>20)],[585+(n>>17),585+(i>>17)],[4681+(n>>14),4681+(i>>14)]),r}lowestOffset(e,A){let n=e.linearIndex;return n?.[Math.min(Ri(A)>>bt,n.length-1)]}async _parse(e={}){let{bytes:A,dataView:n}=await this.readIndexBytes(e);if(n.getUint32(0,!0)!==Or)throw new Error("Not a TBI file");let i=n.getUint32(4,!0),r=((1<<(xt+1)*3)-1)/7,{refNameToId:o,refIdToName:s,coordinateType:Q,format:a,columnNumbers:g,metaChar:d,skipLines:f}=we(A,8),c=36+n.getInt32(32,!0),N,h=[];for(let k=0;k<i;k++){h.push(c);let D=n.getInt32(c,!0);c+=4;for(let m=0;m<D;m++){let u=n.getUint32(c,!0);c+=4;let E=n.getInt32(c,!0);if(c+=4,u>r+1)throw new Error("tabix index contains too many bins, please use a CSI index");c+=16*E}let B=n.getInt32(c,!0);c+=4,N=ue(A,c,B,N),c+=8*B}function p(k){let D=h[k];if(D===void 0)return;let B=D,m=n.getInt32(B,!0);B+=4;let u={},E;for(let w=0;w<m;w++){let y=n.getUint32(B,!0);if(B+=4,y>r+1)throw new Error("tabix index contains too many bins, please use a CSI index");if(y===r+1){let x=n.getInt32(B,!0);B+=4,x===2&&(E=pe(A,B+16)),B+=16*x}else{let x=n.getInt32(B,!0);B+=4;let b=Array.from({length:x});for(let S=0;S<x;S++)b[S]=new W(gA(A,B),gA(A,B+8),y),B+=16;u[y]=b}}let C=n.getInt32(B,!0);B+=4;let l=Array.from({length:C});for(let w=0;w<C;w++)l[w]=gA(A,B),B+=8;return de(Object.values(u).flat(),l.map(w=>w.blockPosition)),{binIndex:u,linearIndex:l,stats:E}}return{indices:ke(p),metaChar:d,minShift:bt,depth:xt,maxBinNumber:r,maxRefLength:me,skipLines:f,firstDataLine:N,columnNumbers:g,coordinateType:Q,format:a,refIdToName:s,refNameToId:o,maxBlockSize:65536}}};var St=9,Ne=10,Gi=13,Xr=59,zr=60,Pr=62,jr=6,Wr=1024*2**20,Vr=180*1e3;function $r(t,e,A){if(t)return t;if(e)return new hA(e);if(A)return new tA(A);throw new TypeError("must provide either filehandle, path, or url")}function Ao({tbiFilehandle:t,csiFilehandle:e,tbiPath:A,csiPath:n,tbiUrl:i,csiUrl:r,path:o,url:s}){if(t)return new nA({filehandle:t});if(e)return new uA({filehandle:e});if(A)return new nA({filehandle:new hA(A)});if(n)return new uA({filehandle:new hA(n)});if(r)return new uA({filehandle:new tA(r)});if(i)return new nA({filehandle:new tA(i)});if(o)return new nA({filehandle:new hA(`${o}.tbi`)});if(s)return new nA({filehandle:new tA(`${s}.tbi`)});throw new TypeError("must provide one of tbiFilehandle, tbiPath, csiFilehandle, csiPath, tbiUrl, csiUrl")}function Li(t,e,A,n,i){return t[A]*256+(n-e[A])+i+1}function eo(t,e,A,n,i,r,o){let s=n-A,Q=e+s,a=0;if(t[i]===46)return Q;let g=i;for(let d=i;d<=r;d++)if(d===r||t[d]===Xr){let f=d-g;if(f>=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(f>=4&&t[g]===69&&t[g+1]===78&&t[g+2]===68&&t[g+3]===61){let I=De(t,g+4,d);I>e&&(Q=I)}else f>=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=no(t,g+6,d,n+1,o));g=d+1}return Math.max(Q,e+a)}var vi=44;function to(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 i=t[e+1],r=t[e+2],o=t[e+3];return i===67&&r===78&&o===86||i===68&&r===69&&o===76||i===68&&r===85&&o===80||i===73&&r===78&&o===86}function no(t,e,A,n,i){let r=0,o=e,s=n;for(;o<A&&s<i;){let Q=t.indexOf(vi,o);(Q===-1||Q>A)&&(Q=A);let a=t.indexOf(vi,s);if((a===-1||a>i)&&(a=i),to(t,s,a)){let g=De(t,t[o]===45?o+1:o,Q);g>r&&(r=g)}o=Q+1,s=a+1}return r}var Mi=new TextDecoder;function Ji(t,e){let A=-1,n=e.charCodeAt(0);for(let i=0,r=t.length;i<r;i++){let o=t[i];if(i===A+1&&o!==n)break;o===Ne&&(A=i)}return t.subarray(0,A+1)}function io(t,e){let A=0;for(let n=0;n<e;n++){let i=t.indexOf(Ne,A);if(i===-1){A=t.length;break}A=i+1}return Mi.decode(t.subarray(0,A)).split(/\r?\n/).slice(0,e)}function De(t,e,A){let n=0;for(let i=e;i<A;i++){let r=t[i];if(r>=48&&r<=57)n=n*10+(r-48);else break}return n}function ro(t,e,A,n,i,{start:r,end:o,pathCol:s,metaCharCode:Q,decoder:a,callback:g}){let d=0,f=0;for(;d<t.length;){let I=t.indexOf(Ne,d);if(I===-1)break;let c=d;d=I+1;let N=c+e+i;for(;f<n.length&&N>=n[f];)f++;if(t[c]===Q)continue;let h=c;for(let u=1;u<s;u++){let E=t.indexOf(St,h);if(E===-1||E>=I){h=I;break}h=E+1}let p=t[h];if(p!==Pr&&p!==zr)continue;let k=t.indexOf(St,h);(k===-1||k>I)&&(k=I);let D=1/0,B=-1,m=h;for(;m<k;){let u=0,E=m+1;for(;E<k;E++){let C=t[E]-48;if(C<0||C>9)break;u=u*10+C}u<D&&(D=u),u>B&&(B=u),m=E}if(D>=o)return!0;if(B>=r){let u=t[I-1]===Gi?I-1:I;g(a.decode(t.subarray(c,u)),Li(A,n,f,c+e,i),D,B+1)}}return!1}var bA=class{filehandle;index;chunkCache;headerCache=new aA({});bgzfWorkerPool;constructor({path:e,filehandle:A,url:n,tbiPath:i,tbiUrl:r,tbiFilehandle:o,csiPath:s,csiUrl:Q,csiFilehandle:a,chunkCacheSize:g=Wr,chunkCacheIdleTimeoutMs:d=Vr,chunkCacheBudget:f,bgzfWorkerPool:I}){this.bgzfWorkerPool=I,this.filehandle=$r(A,e,n),this.index=Ao({tbiFilehandle:o,csiFilehandle:a,tbiPath:i,csiPath:s,tbiUrl:r,csiUrl:Q,path:e,url:n}),this.chunkCache=new aA({maxSize:g,sizeOf:c=>{let N=0;for(let h of c.segments)N+=h.byteLength;return N},cacheKey:c=>c.toString(),idleTimeoutMs:d,budget:f,fill:(c,N)=>this.readChunk(c,{signal:N})})}clearChunkCache(){this.chunkCache.clear()}async bytesForRegions(e,A={}){let n=[];for(let{refName:r,start:o,end:s}of e){let Q=await this.index.blocksForRange(r,o,s,A);for(let a of Q)n.push(a)}let i=0;for(let r of he(n))i+=r.fetchedSize();return i}async getLines(e,A,n,i){let r,o={},s,Q;typeof i=="function"?s=i:(o=i,s=i.lineCallback,r=i.signal,Q=i.onProgress);let a=await this.index.getMetadata(o),g=A??0,d=n??a.maxRefLength;if(g>d)throw new TypeError("invalid start and end coordinates. start must be less than or equal to end");if(g===d)return;let f=await this.index.blocksForRange(e,g,d,o),I=a.format==="VCF",c=a.columnNumbers.ref||0,N=a.columnNumbers.start||0,h=I?8:a.columnNumbers.end||0,p=Math.max(c,N,h),k=a.metaChar?.charCodeAt(0),D=a.coordinateType==="1-based-closed"?-1:0,B=new TextEncoder,m=new TextDecoder,u=B.encode(e),E=new Int32Array(p+1),C=a.format==="GAF"?{start:g,end:d,pathCol:N,metaCharCode:k,decoder:m,callback:s}:void 0,l=0;for(let S of f)l+=S.fetchedSize();let w=0;Q?.(0,l);let y=1,x=[],b=S=>{for(;x.length<Math.min(S,f.length);){let R=f[x.length],U=this.chunkCache.get(R,r);U.catch(()=>{}),x.push(U)}};b(1);for(let S=0,R=f.length;S<R;S++){let U=f[S],{segments:v,cpositions:H,dpositions:J}=await x[S];w+=U.fetchedSize(),Q?.(w,l);let Y=U.minv.dataPosition;if(C){if(Nt(v,(L,O)=>ro(L,O,H,J,Y,C)))return}else if(Nt(v,(L,O)=>{let _=0,IA=0;for(;_<L.length;){let K=L.indexOf(Ne,_);if(K===-1)break;let wA=_+O+Y;for(;IA<J.length&&wA>=J[IA];)IA++;if(k!==void 0&&L[_]===k){_=K+1;continue}E[0]=_-1;for(let z=0;z<p;z++){let XA=E[z],ye=XA<K?L.indexOf(St,XA+1):-1;E[z+1]=ye===-1||ye>=K?K:ye}let pA=E[c-1]+1,ZA=E[c]-pA;if(ZA!==u.length){_=K+1;continue}let Ft=!0;for(let z=0;z<ZA;z++)if(L[pA+z]!==u[z]){Ft=!1;break}if(!Ft){_=K+1;continue}let OA=De(L,E[N-1]+1,E[N])+D;if(OA>=d)return!0;let SA;if(h===0||h===N?SA=OA+1:I?SA=eo(L,OA,E[3]+1,E[4],E[h-1]+1,E[h],E[5]):SA=De(L,E[h-1]+1,E[h]),SA>g){let z=L[K-1]===Gi?K-1:K,XA=m.decode(L.subarray(_,z));s(XA,Li(H,J,IA,_+O,Y),OA,SA)}_=K+1}return!1}))return;y=Math.min(y*2,jr),b(S+1+y)}}async getMetadata(e={}){return this.index.getMetadata(e)}async readHeaderBytes(e){let{firstDataLine:A,maxBlockSize:n}=await this.getMetadata(e),i=(A?.blockPosition??0)+n,r=await this.filehandle.read(i,0,e);return TA(r)}async parseHeader(e){let{metaChar:A,skipLines:n=0}=await this.getMetadata(e),i=await this.readHeaderBytes(e);return{header:Mi.decode(A?Ji(i,A):i),skippedLines:n>0?io(i,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?Ji(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);lA(A.signal);let i=await this.bgzfWorkerPool;return ut(n,e,i)}};var oo=t=>({type:"fileLocation",defaultValue:{uri:t,locationType:"UriLocation"}}),wa=(t,e="")=>vt(t,{indexType:{model:Jt.enumeration("IndexType",["TBI","CSI"]),type:"stringEnum",defaultValue:"TBI"},location:oo(e)});function so(t,e,A){return{indexType:A?"CSI":"TBI",location:{uri:`${t}.${A?"csi":"tbi"}`,baseUri:e}}}function pa(t){let{walksUri:e,baseUri:A,csi:n}=t;if(typeof e!="string")return t;let i=`${e}.walks.bed.gz`;return{...t,walksLocation:{uri:i,baseUri:A},walksIndex:so(i,A,n)}}function ka(t,e,A){let n=t.pluginManager;return new bA({filehandle:Gt(t.getConf(e),n),...Lt(t.getConf([...A,"location"]),t.getConf([...A,"indexType"]),n)})}function ao(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 _i=class{constructor(e,A){this.file=e;this.adapter=A;this.lookup=_t({setup:async e=>GA(await this.file.getReferenceSequenceNames(e))})}async assemblyRefNames(e={}){let A=await this.file.getReferenceSequenceNames(e),n=zA(this.adapter,e.assemblyName),i=A.filter(r=>xe(r,n)).map(r=>Rt(r));return i.length>0?[...new Set(i)]:A}async resolve(e,A){let n=await this.lookup(A);return LA(n,zA(this.adapter,e.assemblyName),e.refName)}async resolveMapped(e,A){let n=await this.resolve(e,A);if(n===void 0&&e.assemblyName){let i=await this.file.getReferenceSequenceNames(A),r=zA(this.adapter,e.assemblyName);if(i.every(o=>o.includes("#"))&&!i.some(o=>xe(o,r)))throw new Error(ao(e))}return n}async regionBytes(e,A={},n=async i=>i){let i=[];for(let r of e){let o=await this.resolve(r,A);o!==void 0&&i.push({refName:o,start:await n(r.start),end:r.end})}return sn(this.file,i,A)}};export{TA as a,go as b,_t as c,Hi as d,Me as e,Vi as f,Pe as g,Ze as h,qi as i,$i as j,_o as k,oo as l,wa as m,so as n,pa as o,ka as p,ao as q,_i as r};
3
+ //# sourceMappingURL=chunk-BKBH3WGW.js.map