jbrowse-plugin-graphgenomeviewer 8.0.2 → 8.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/dist/chunks/{AddTrackWorkflow-RJSOQZYQ.js → AddTrackWorkflow-7CXTSSMR.js} +2 -2
  2. package/dist/chunks/GbzBaseSyntenyAdapter-EJIR3HZM.js +2 -0
  3. package/dist/chunks/GbzBaseSyntenyAdapter-EJIR3HZM.js.map +7 -0
  4. package/dist/chunks/{GraphGenomeView-667ZUNDI.js → GraphGenomeView-2AKRM74B.js} +2 -2
  5. package/dist/chunks/{GraphTrackSettingsDialog-7M3Q635V.js → GraphTrackSettingsDialog-7XRZQW6T.js} +2 -2
  6. package/dist/chunks/{HighlightColorDialog-4F34Q4PY.js → HighlightColorDialog-LCBGD2ZA.js} +2 -2
  7. package/dist/chunks/LinearGraphDisplay-WWQ73BO5.js +2 -0
  8. package/dist/chunks/{MinigraphBubbleAdapter-G25V6MZL.js → MinigraphBubbleAdapter-4OOBJ44C.js} +2 -2
  9. package/dist/chunks/RgfaTabixAdapter-CEGFN2QY.js +2 -0
  10. package/dist/chunks/RgfaTabixAdapter-CEGFN2QY.js.map +7 -0
  11. package/dist/chunks/{WalkFormsAdapter-PBN7BJZW.js → WalkFormsAdapter-LTAKACZD.js} +2 -2
  12. package/dist/chunks/{WalkTabixSyntenyAdapter-27WDE5JF.js → WalkTabixSyntenyAdapter-B6V3YNW7.js} +2 -2
  13. package/dist/chunks/chunk-5FNGR33G.js +2 -0
  14. package/dist/chunks/chunk-5FNGR33G.js.map +7 -0
  15. package/dist/chunks/chunk-6VNDP3UB.js +2 -0
  16. package/dist/chunks/chunk-6VNDP3UB.js.map +7 -0
  17. package/dist/chunks/{chunk-CJAV55QB.js → chunk-BJHWGRMP.js} +1 -1
  18. package/dist/chunks/{chunk-CJAV55QB.js.map → chunk-BJHWGRMP.js.map} +1 -1
  19. package/dist/chunks/{chunk-IAXUZMOX.js → chunk-CNCYMJ5E.js} +2 -2
  20. package/dist/chunks/{chunk-IAXUZMOX.js.map → chunk-CNCYMJ5E.js.map} +2 -2
  21. package/dist/chunks/{chunk-2V75YPTT.js → chunk-CVHKXFVS.js} +2 -2
  22. package/dist/chunks/{chunk-2V75YPTT.js.map → chunk-CVHKXFVS.js.map} +2 -2
  23. package/dist/chunks/chunk-CZI7IP5S.js +2 -0
  24. package/dist/chunks/chunk-CZI7IP5S.js.map +7 -0
  25. package/dist/chunks/chunk-CZXJXNZN.js +3 -0
  26. package/dist/chunks/chunk-CZXJXNZN.js.map +7 -0
  27. package/dist/chunks/chunk-HAAABGE7.js +2 -0
  28. package/dist/chunks/{chunk-JMRW3IGK.js → chunk-IK3MQ4ZJ.js} +2 -2
  29. package/dist/chunks/chunk-IK3MQ4ZJ.js.map +7 -0
  30. package/dist/chunks/{chunk-JOYKGTDE.js → chunk-MCBYBZZJ.js} +2 -2
  31. package/dist/chunks/chunk-NOXHIOIM.js +2 -0
  32. package/dist/chunks/chunk-NOXHIOIM.js.map +7 -0
  33. package/dist/chunks/{chunk-FY7X6253.js → chunk-OGXVDZPS.js} +2 -2
  34. package/dist/chunks/{chunk-FY7X6253.js.map → chunk-OGXVDZPS.js.map} +2 -2
  35. package/dist/chunks/{chunk-3EQNVA3F.js → chunk-OLZZDBQJ.js} +2 -2
  36. package/dist/chunks/{chunk-3EQNVA3F.js.map → chunk-OLZZDBQJ.js.map} +2 -2
  37. package/dist/chunks/{chunk-I6F25EXY.js → chunk-PTOKTIQG.js} +2 -2
  38. package/dist/chunks/{chunk-O5FDMVL3.js → chunk-QWG7NASD.js} +2 -2
  39. package/dist/chunks/chunk-SL4JJJQJ.js +3 -0
  40. package/dist/chunks/chunk-SL4JJJQJ.js.map +7 -0
  41. package/dist/chunks/{chunk-XB5KC2EZ.js → chunk-T2VC3EEL.js} +1 -1
  42. package/dist/chunks/{chunk-XB5KC2EZ.js.map → chunk-T2VC3EEL.js.map} +1 -1
  43. package/dist/chunks/{chunk-2PNGGCQJ.js → chunk-UECOGSWM.js} +2 -2
  44. package/dist/chunks/{chunk-2PNGGCQJ.js.map → chunk-UECOGSWM.js.map} +1 -1
  45. package/dist/chunks/chunk-UHV6XIDG.js +2 -0
  46. package/dist/chunks/chunk-UHV6XIDG.js.map +7 -0
  47. package/dist/chunks/{chunk-5RHNR3TH.js → chunk-VKZALU57.js} +1 -1
  48. package/dist/chunks/{chunk-5RHNR3TH.js.map → chunk-VKZALU57.js.map} +1 -1
  49. package/dist/chunks/chunk-W7IHIVSE.js +2 -0
  50. package/dist/chunks/{chunk-XWCLYB5C.js.map → chunk-W7IHIVSE.js.map} +4 -4
  51. package/dist/chunks/{chunk-NLS74JSZ.js → chunk-WUOXZAGN.js} +2 -2
  52. package/dist/chunks/{chunk-NLS74JSZ.js.map → chunk-WUOXZAGN.js.map} +1 -1
  53. package/dist/chunks/{renderSvg-YNA5VK6A.js → renderSvg-E5Q7MLCH.js} +2 -2
  54. package/dist/jbrowse-plugin-graphgenomeviewer.esm.js +5 -5
  55. package/dist/jbrowse-plugin-graphgenomeviewer.esm.js.map +4 -4
  56. package/package.json +4 -4
  57. package/src/GraphAddTrackWorkflow/buildTrackConfig.ts +12 -2
  58. package/src/GraphAddTrackWorkflow/graphManifest.ts +16 -9
  59. package/src/GraphGenomeView/components/HoverTooltip.tsx +8 -0
  60. package/src/GraphGenomeView/pane/paneBase.ts +14 -9
  61. package/src/RgfaTabixAdapter/RgfaTabixAdapter.ts +94 -41
  62. package/src/RgfaTabixAdapter/configSchema.ts +35 -4
  63. package/src/RgfaTabixAdapter/format2.test.ts +128 -0
  64. package/src/RgfaTabixAdapter/test_data/pggb_ecoli_f1.links.bed.gz +0 -0
  65. package/src/RgfaTabixAdapter/test_data/pggb_ecoli_f1.links.bed.gz.tbi +0 -0
  66. package/src/RgfaTabixAdapter/test_data/pggb_ecoli_f1.segs.bed.gz +0 -0
  67. package/src/RgfaTabixAdapter/test_data/pggb_ecoli_f1.segs.bed.gz.tbi +0 -0
  68. package/src/RgfaTabixAdapter/test_data/pggb_ecoli_f2.graph.bed.gz +0 -0
  69. package/src/RgfaTabixAdapter/test_data/pggb_ecoli_f2.graph.bed.gz.tbi +0 -0
  70. package/src/RgfaTabixAdapter/test_data/walks5_skip.GRCh38.walks.bed.gz +0 -0
  71. package/src/RgfaTabixAdapter/test_data/walks5_skip.GRCh38.walks.bed.gz.tbi +0 -0
  72. package/src/RgfaTabixAdapter/walkFiles.test.ts +21 -0
  73. package/src/RgfaTabixAdapter/walkReader.ts +20 -15
  74. package/src/graphTrackDefaults/index.ts +2 -2
  75. package/src/locationName.ts +2 -0
  76. package/src/version.ts +1 -1
  77. package/dist/chunks/GbzBaseSyntenyAdapter-EGNUOKB2.js +0 -2
  78. package/dist/chunks/GbzBaseSyntenyAdapter-EGNUOKB2.js.map +0 -7
  79. package/dist/chunks/LinearGraphDisplay-BAEMS5WG.js +0 -2
  80. package/dist/chunks/RgfaTabixAdapter-JPTUWO2Z.js +0 -2
  81. package/dist/chunks/RgfaTabixAdapter-JPTUWO2Z.js.map +0 -7
  82. package/dist/chunks/chunk-AH5UWTAV.js +0 -2
  83. package/dist/chunks/chunk-AH5UWTAV.js.map +0 -7
  84. package/dist/chunks/chunk-DG3E6BSX.js +0 -3
  85. package/dist/chunks/chunk-DG3E6BSX.js.map +0 -7
  86. package/dist/chunks/chunk-HLAQQI6G.js +0 -2
  87. package/dist/chunks/chunk-HLAQQI6G.js.map +0 -7
  88. package/dist/chunks/chunk-IKJZPPOA.js +0 -2
  89. package/dist/chunks/chunk-IKJZPPOA.js.map +0 -7
  90. package/dist/chunks/chunk-JMRW3IGK.js.map +0 -7
  91. package/dist/chunks/chunk-Q7QC2EQU.js +0 -2
  92. package/dist/chunks/chunk-RHYBJCA4.js +0 -2
  93. package/dist/chunks/chunk-RHYBJCA4.js.map +0 -7
  94. package/dist/chunks/chunk-X7YIGIYW.js +0 -2
  95. package/dist/chunks/chunk-X7YIGIYW.js.map +0 -7
  96. package/dist/chunks/chunk-XWCLYB5C.js +0 -2
  97. package/dist/chunks/chunk-ZGTG74GE.js +0 -3
  98. package/dist/chunks/chunk-ZGTG74GE.js.map +0 -7
  99. /package/dist/chunks/{AddTrackWorkflow-RJSOQZYQ.js.map → AddTrackWorkflow-7CXTSSMR.js.map} +0 -0
  100. /package/dist/chunks/{GraphGenomeView-667ZUNDI.js.map → GraphGenomeView-2AKRM74B.js.map} +0 -0
  101. /package/dist/chunks/{GraphTrackSettingsDialog-7M3Q635V.js.map → GraphTrackSettingsDialog-7XRZQW6T.js.map} +0 -0
  102. /package/dist/chunks/{HighlightColorDialog-4F34Q4PY.js.map → HighlightColorDialog-LCBGD2ZA.js.map} +0 -0
  103. /package/dist/chunks/{LinearGraphDisplay-BAEMS5WG.js.map → LinearGraphDisplay-WWQ73BO5.js.map} +0 -0
  104. /package/dist/chunks/{MinigraphBubbleAdapter-G25V6MZL.js.map → MinigraphBubbleAdapter-4OOBJ44C.js.map} +0 -0
  105. /package/dist/chunks/{WalkFormsAdapter-PBN7BJZW.js.map → WalkFormsAdapter-LTAKACZD.js.map} +0 -0
  106. /package/dist/chunks/{WalkTabixSyntenyAdapter-27WDE5JF.js.map → WalkTabixSyntenyAdapter-B6V3YNW7.js.map} +0 -0
  107. /package/dist/chunks/{chunk-Q7QC2EQU.js.map → chunk-HAAABGE7.js.map} +0 -0
  108. /package/dist/chunks/{chunk-JOYKGTDE.js.map → chunk-MCBYBZZJ.js.map} +0 -0
  109. /package/dist/chunks/{chunk-I6F25EXY.js.map → chunk-PTOKTIQG.js.map} +0 -0
  110. /package/dist/chunks/{chunk-O5FDMVL3.js.map → chunk-QWG7NASD.js.map} +0 -0
  111. /package/dist/chunks/{renderSvg-YNA5VK6A.js.map → renderSvg-E5Q7MLCH.js.map} +0 -0
@@ -1,3 +0,0 @@
1
- import{b as jt}from"./chunk-ROZPEXN4.js";import{d as zt,g as Te,h as ge}from"./chunk-5RHNR3TH.js";import{a as Vt,b as $t}from"./chunk-OGQ6OQDN.js";import{f as Wt}from"./chunk-3WG3GF2A.js";var kA=JBrowseExports["@jbrowse/core/data_adapters/BaseAdapter"],An=t=>kA!=null&&t in Object(kA)?kA[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 ka=An("BaseFeatureDataAdapter");var en=An("cachedSetup");var Na=kA&&kA.__esModule?kA.default:kA;var oA=class extends Error{constructor(e,A,n,r,i){super(e),this.regionTooLarge=!0,this.name="NodeLimitError",this.limit=A,this.windowBp=n,this.fitsBp=r,this.zoomHelps=i===void 0||i.zoomHelps===!0,i&&(this.bytes=i.bytes)}},GA="#";function zA(t){return t.split(GA)[0]}function qe(t){let e=t.split(GA);return e.length>=3?e.slice(2).join(GA):e.length===2?e[1]:t}function dA(t){let e=t.split(GA);return e.length>=3?`${e[0]}${GA}${e[1]}`:void 0}function UA(t,e){return e!==void 0&&(t===e||t.startsWith(e+GA))}var tn=t=>Number.parseFloat(t.toPrecision(3));function NA(t){let e=tn(t/1e6);return e>=1?`${e.toLocaleString("en-US")}Mbp`:t>=1e3?`${tn(t/1e3).toLocaleString("en-US")}Kbp`:`${Math.floor(t)}bp`}var Z=t=>(t-(t&1))/2,IA=t=>t&1?t-1:t+1;function YA(t,e,A){if(t===".")return A;let n=0,r=!1;for(let i=0;i<=t.length;i++){let o=i<t.length?t.charCodeAt(i):44;if(o===44){let a=r?-n:n,c=a&1;e.id+=(a-c)/2,A.push(e.id*2+c),n=0,r=!1}else o===45?r=!0:n=n*10+(o-48)}return A}function HA(t){return t==="."?[]:t.split(",").map(Number)}function rn(t,e){return t>IA(e)?[IA(e),IA(t)]:[t,e]}function Oe(t,e){let A=t.lastIndexOf(":");return{refName:t[3]==="Z"?t.slice(5,A):e,start:+t.slice(A+1)}}function Ze(t,e,A){let n={};for(let r=e;r<t.length;r++){let i=t[r],o=i.slice(0,2);if(o==="pv")n.prev=Oe(i,A);else if(o==="nx")n.next=Oe(i,A);else if(o==="pg"||o==="ng"){let a=o==="pg"?"prevRecord":"nextRecord";n[a]={...n[a],bp:+i.slice(5)}}else if(o==="pr"||o==="nr"){let a=o==="pr"?"prevRecord":"nextRecord";n[a]={bp:0,...n[a],chunk:Oe(i,A)}}}return n}var ce=class{constructor(){this.handles=[],this.before=[0],this.occurrences=new Map}add(e,A){for(let n=0;n<e.length;n++){let r=e[n],i=this.handles.length;this.handles.push(r),this.before.push(this.before[i]+A[n]);let o=Z(r),a=this.occurrences.get(o);a?a.push(i):this.occurrences.set(o,[i])}}bp(e){return this.before[e]}first(e){var A;return(A=this.occurrences.get(Z(e)))===null||A===void 0?void 0:A[0]}nearest(e,A){let n=this.occurrences.get(Z(e));if(!n)return;let r=0,i=n.length;for(;r<i;){let c=r+i>>1;n[c]<=A?r=c+1:i=c}let o=n[r-1],a=n[r];return o===void 0||a===void 0?o??a:a-A<=A-o?a:o}reach(e,A,n){var r;let i=this.handles[e]===A,o;for(let a of(r=this.occurrences.get(Z(n)))!==null&&r!==void 0?r:[])i&&a>=e&&this.handles[a]===n?(o===void 0||a<o)&&(o=a):!i&&a<=e&&IA(this.handles[a])===n&&(o===void 0||a>o)&&(o=a);return o}handleAt(e,A){return A?this.handles[e]:IA(this.handles[e])}},rA=class extends Error{},Pe=(t,e)=>e?t.exit===-1?-1:IA(t.exit):t.entry,on=(t,e)=>e?t.entry===-1?-1:IA(t.entry):t.exit,Ie=(t,e,A)=>e?IA(t.interior[t.interior.length-1-A]):t.interior[A];function yi(t){let e=[];if(t!=="."){let A=0,n=0,r=!1,i=0,o=!1;for(let a=0;a<=t.length;a++){let c=a<t.length?t.charCodeAt(a):44;if(c===44){let s=r?-n:n,g=o?i:s,B=g&1;A+=(g-B)/2,e.push(A,B,o?s:0),n=0,r=!1,o=!1}else c===58?(i=r?-n:n,n=0,r=!1,o=!0):c===45?r=!0:n=n*10+(c-48)}}return e}function an(t,e,A,n,r,i){let o=n.indexOf(":"),a=A+ +(o<0?n:n.slice(0,o)),c=o>=0,s=c?+n.slice(o+1):0,g=p=>{let l=e[p];if(!l)throw new rA(`route ${p} is not in the chunk`);return l},B=0;if(r.length>0&&Pe(g(r[0]),r[1]===1)===-1){if(!i.route(r[0],r[1]===1))return;B=3}let f=A,I=t.first(f);if(I===void 0)throw new rA("a walk row starts off its chunk");i.step(f);let E=(p,l)=>{let w=t.handles[I]===f,d=c?I+(w?l:-l):t.reach(I,f,p);if(d===void 0||d<0||d>=t.handles.length)throw new rA("a walk row runs off its chunk");d!==I&&i.stretch(I,d,w),I=d,f=t.handleAt(d,w)};for(;B<r.length;B+=3){let p=r[B],l=r[B+1]===1,w=g(p),d=Pe(w,l);if(d===-1)throw new rA("an open route after the first choice");if(E(d,r[B+2]),!i.route(p,l))return;let m=on(w,l);if(m===-1)return;if(f=m,I=t.nearest(f,I),I===void 0)throw new rA("a route lands off its chunk");i.step(f)}if(E(a,s),f!==a)throw new rA("a walk row misses its last handle")}function bi(t,e,A,n,r){let i=new Int32Array(r),o=new Uint8Array(r),a=0,c=s=>{if(a>=r)throw new rA("a walk row decodes to more steps than it states");i[a]=Z(s),o[a++]=s&1};if(an(t,e,+A[9],A[10],n,{step:c,stretch(s,g,B){if(B)for(let f=s+1;f<=g;f++)c(t.handles[f]);else for(let f=s-1;f>=g;f--)c(IA(t.handles[f]))},route(s,g){let B=e[s];for(let f=0;f<B.interior.length;f++)c(Ie(B,g,f));return!0}}),a!==r)throw new rA(`a walk row decodes to ${a} steps, not ${r}`);return{ids:i,rev:o}}function nn(t,e,A,n,r){let i=t.slice(e).find(a=>a.startsWith("SQ:Z:"));if(i===void 0)return;let o=5;for(let a=0;a<A.length;a++){let c=n[a];r.set(A[a],i.slice(o,o+c)),o+=c}}var Di=16384;function xi(t){let e=t[0],A=[+t[10],+t[11]],n=HA(t[7]);for(let r=1;r<n.length;r++)n[r]+=n[r-1];return{chunkStart:+t[1],name:t[4],fragStart:+t[5],hapOffset:+t[6],piece:n[0],n:A.length,steps:{ids:Int32Array.from(A,Z),rev:Uint8Array.from(A,r=>r&1)},...Ze(t,13,e),abridged:{pieces:n,steps:+t[8],bp:+t[9],detail:{refName:`${e}~${t[1]}`,start:+t[12]*Di}}}}var sn=t=>t.filter(e=>e[3]==="ref").sort((e,A)=>+e[6]-+A[6]);function gn(t){let e=new ce,A=new Map;for(let n of sn(t)){let r=YA(n[9],{id:0},[]),i=HA(n[10]);e.add(r,i);for(let o=0;o<r.length;o++)A.set(Z(r[o]),i[o])}return{path:e,lengths:A}}function Xe(t,e,A=!1,n){var r,i,o,a;let c=(r=n?.path)!==null&&r!==void 0?r:new ce,s=new Map,g=[],B={sequences:new Map,rows:[],nodes:new Map,ends:[],chunk:{path:c,routes:g,walks:[],lengths:s,refLengths:n?.lengths}},f=p=>B.nodes.has(p)||n?.lengths.has(p)===!0,I={id:0};for(let p of n?[]:sn(t)){let l=p[0],w=YA(p[9],{id:0},[]),d=HA(p[10]),m=+p[6];c.add(w,d),A&&nn(p,11,w.map(Z),d,B.sequences);let C=m;for(let D=0;D<w.length;D++){let h=Z(w[D]),Q=d[D];s.set(h,Q),B.nodes.has(h)||B.nodes.set(h,{refName:p[4],start:C,end:C+Q,rank:0}),C+=Q}B.ends.push({name:p[4],fragStart:+p[5],piece:+p[7],first:w[0],last:w.at(-1)}),(e===void 0||e(p[4]))&&B.rows.push({chunkStart:+p[1],name:p[4],fragStart:+p[5],hapOffset:m,piece:+p[7],n:w.length,steps:{ids:Int32Array.from(w,Z),rev:Uint8Array.from(w,D=>D&1)},...Ze(p,11,l)})}for(let p of t)if(p[3]==="nodes"){let l=HA(p[4]),w=HA(p[5]),d=0;for(let m=0;m<l.length;m++)d+=l[m],l[m]=d,s.set(d,w[m]);A&&nn(p,6,l,w,B.sequences)}else if(p[3]==="route"){let l=YA(p[4],I,[]),w=YA(p[5],I,[]),d=YA(p[6],I,[]);g.push({entry:(i=l[0])!==null&&i!==void 0?i:-1,interior:w,exit:(o=d[0])!==null&&o!==void 0?o:-1})}let E=p=>{let l=g[p];if(!l)throw new rA(`route ${p} is not in the chunk`);return l};for(let p of t){if(p[3]==="abridged"){let Q=p[4];(e===void 0||e(Q))&&B.rows.push(xi(p));continue}if(p[3]!=="walk")continue;let l=yi(p[11]);B.chunk.walks.push({cols:p,choices:l});let w=p[4],d=+p[9],m=p[10],C=m.indexOf(":"),D=d,h=d+ +(C<0?m:m.slice(0,C));if(l.length>0){let Q=E(l[0]),y=l[1]===1;Pe(Q,y)===-1&&(D=Ie(Q,y,0));let x=l.length-3,N=E(l[x]),M=l[x+1]===1;on(N,M)===-1&&(h=Ie(N,M,N.interior.length-1))}if(B.ends.push({name:w,fragStart:+p[5],piece:+p[7],first:D,last:h}),e===void 0||e(w)){let Q=+p[8],y=0;for(let x=0;x<l.length;x+=3){y+=E(l[x]).interior.length;for(let N of E(l[x]).interior){let M=Z(N);if(!f(M)){let Y=(a=s.get(M))!==null&&a!==void 0?a:0;B.nodes.set(M,{refName:w,start:0,end:Y,rank:1})}}}B.rows.push({chunkStart:+p[1],name:w,fragStart:+p[5],hapOffset:+p[6],piece:+p[7],n:Q,interior:y,steps:bi(c,g,p,l,Q),...Ze(p,12,p[0])})}}return B}function cn(t,e,A,n){let r=new Set;for(let a of e)t.some(({path:c})=>c.occurrences.has(a))||r.add(a);let i=(a,c)=>{let[s,g]=rn(a,c);n(s,g)},o=new Map;for(let{path:a,routes:c,walks:s,lengths:g,refLengths:B}of t){let f=a.handles;for(let d=1;d<f.length;d++)e.has(Z(f[d-1]))&&e.has(Z(f[d]))&&i(f[d-1],f[d]);let I=new Uint8Array(c.length);for(let d=0;d<c.length;d++){let{entry:m,interior:C,exit:D}=c[d],h=!1,Q=m;for(let y of C){let x=e.has(Z(y));h||(h=r.has(Z(y))),x&&Q!==-1&&e.has(Z(Q))&&i(Q,y),Q=y}Q!==-1&&D!==-1&&e.has(Z(Q))&&e.has(Z(D))&&i(Q,D),I[d]=h?1:0}let E=d=>{var m,C;return(C=(m=g.get(Z(d)))!==null&&m!==void 0?m:B?.get(Z(d)))!==null&&C!==void 0?C:0},p=new Float64Array(c.length).fill(-1),l=d=>(p[d]<0&&(p[d]=c[d].interior.reduce((m,C)=>m+E(C),0)),p[d]),w=new Uint8Array(c.length);for(let{cols:d,choices:m}of s){let C=0;for(let Q=0;Q<m.length;Q+=3){let y=m[Q];I[y]&&!w[y]&&C++}if(C===0)continue;let D=d[4],h=+d[6];an(a,c,+d[9],d[10],m,{step(Q){h+=E(Q)},stretch(Q,y,x){h+=x?a.bp(y+1)-a.bp(Q+1):a.bp(Q)-a.bp(y)},route(Q,y){if(!I[Q]||w[Q])return h+=l(Q),!0;w[Q]=1;let x=c[Q];for(let N=0;N<x.interior.length;N++){let M=Ie(x,y,N),Y=Z(M),u=E(M);if(r.has(Y)){let k=o.get(Y);(!k||D<k.refName||D===k.refName&&h<k.start)&&o.set(Y,{refName:D,start:h,end:h+u,rank:1})}h+=u}return C--,C>0}})}}for(let[a,c]of o)A(a,c)}function Si(t){let e=[];for(let A of t){if(A[3]!=="ref")continue;let n=YA(A[9],{id:0},[]),r=HA(A[10]),i=+A[6];for(let o=0;o<n.length;o++){let a=r[o];e.push({id:Z(n[o]),refName:A[4],start:i,end:i+a,rank:0}),i+=a}}return e}function In(t){let e=new Map;for(let n of t){let r=`${n.name} ${n.fragStart}`,i=e.get(r);i||(i=new Map,e.set(r,i)),i.set(n.piece,n)}let A=[];for(let n of e.values())for(let[r,i]of n){let o=n.get(r+1);o&&A.push(rn(i.last,o.first))}return A}var Cn=["elsewhere","break","end"];function ze(t,e){let A=new RegExp(`(?:^|\\t)${e}:i:(\\d+)`).exec(t);return A?+A[1]:void 0}function je(t){var e,A,n;let r={references:[],haplotypes:[],long:[]};for(let i of t){let[o,a="",c="",s=""]=i.split(" ");o==="#reference"?r.references.push(a):o==="#haplotype"?r.haplotypes.push(a):o==="#long"?r.long.push({refName:a,start:+c,end:+s}):((e=r.format)!==null&&e!==void 0||(r.format=ze(i,"format")),(A=r.chunk)!==null&&A!==void 0||(r.chunk=ze(i,"chunk")),(n=r.maxNode)!==null&&n!==void 0||(r.maxNode=ze(i,"maxnode")))}return r}function En(t,e){return t===void 0?1:Math.max(1,Math.ceil(t/e))}function Ce(t,e,A=1){return Math.max(0,(Math.floor(t/e)-A)*e)}function Qe(t,e,A,n){let{chunk:r,long:i}=t;if(i.length===0)return Ce(A,r,En(t.maxNode,r));let o=Ce(A,r);for(let a of i)a.refName===e&&a.start<n&&a.end>A&&(o=Math.min(o,Ce(a.start,r)));return o}function ln(t,e){return t===void 0||t.length===0?void 0:A=>UA(A,e)||t.some(n=>UA(A,n))}function We(t,e){var A;return ln(t,(A=dA(e))!==null&&A!==void 0?A:e)}function Ve(t){let e=new Map,A=[];for(let n of t){if(n.abridged){A.push(Qn([n]));continue}let r=`${n.name} ${n.fragStart}`,i=e.get(r);i?i.push(n):e.set(r,[n])}for(let n of e.values()){n.sort((i,o)=>i.piece-o.piece);let r=0;for(let i=1;i<=n.length;i++)(i===n.length||n[i].piece!==n[i-1].piece+1)&&(A.push(Qn(n.slice(r,i))),r=i)}return A}function Qn(t){let e=t.reduce((a,c)=>a+c.n,0),A=new Int32Array(e),n=new Uint8Array(e),r=0;for(let a of t)A.set(a.steps.ids,r),n.set(a.steps.rev,r),r+=a.n;let i=t[0],o=t.at(-1);return{name:i.name,fragStart:i.fragStart,hapOffset:i.hapOffset,firstPiece:i.piece,ids:A,rev:n,prev:i.prev,next:o.next,prevRecord:i.prevRecord,nextRecord:o.nextRecord,...i.abridged?{abridged:i.abridged}:{}}}function $e(t,e,A,{contained:n=!1,context:r=0}={}){let i=u=>{var k;return((k=e.get(u))===null||k===void 0?void 0:k.onWindow)===!0},o=u=>{let k=e.get(u);return k?.rank===0?k:void 0},a=new Map,c=u=>{u&&a.set(`${u.refName}:${u.start}`,u)},s=(u,k,R)=>{let{ids:L}=u,b=k+R;for(;b>=0&&b<L.length&&o(L[b])===void 0;)b+=R;if(b<0||b>=L.length)return c(R<0?u.prev:u.next),b-R;let v=o(L[k]),F=o(L[b]);return F.refName!==A?b-R:b===k+R&&(F.start===v.end||F.end===v.start)?k:b},g=1/0,B=-1/0,f=[],I=u=>{let k=e.get(u);return k===void 0?0:k.end-k.start},E=u=>{let{ids:k}=u,R=0,L=-1,b=-1;for(let v=0;v<=k.length;v++){let F=v<k.length?e.get(k[v]):void 0;if(v===k.length||F?.rank===0&&!F.onWindow){if(L>=0){for(let U=0;L>R&&U<r;)U+=I(k[--L]);for(let U=0;b<v-1&&U<r;)U+=I(k[++b]);L===0&&c(u.prev),b===k.length-1&&c(u.next),f.push({run:u,first:L,last:b})}R=v+1,L=-1}else F?.onWindow&&(L<0&&(L=v),b=v)}},p=u=>{let{ids:k}=u,R=-1,L=-1;for(let b=0;b<k.length;b++)i(k[b])&&(R<0&&(R=b),L=b);if(R>=0){if(u.name!==A){R=s(u,R,-1),L=s(u,L,1);for(let b of[R,L]){let v=o(k[b]);v&&(g=Math.min(g,v.start),B=Math.max(B,v.end))}}f.push({run:u,first:R,last:L})}},l=1/0,w=-1/0;for(let u of e.values())u.onWindow&&(l=Math.min(l,u.start),w=Math.max(w,u.end));let d=u=>{let k=o(u.ids[0]),R=o(u.ids.at(-1));k?.refName!==A||R?.refName!==A||Math.max(k.end,R.end)>l&&Math.min(k.start,R.start)<w&&f.push({run:u,first:0,last:u.ids.length-1})};for(let u of t)u.abridged?d(u):n?E(u):p(u);let m=u=>{let k=o(u);return i(u)||k?.refName===A&&k.end>g&&k.start<B},C=new Set;for(let[u,k]of e)k.onWindow&&C.add(u);for(let u of f){let{ids:k}=u.run;if(u.run.name===A){for(;u.first>0&&m(k[u.first-1]);)u.first--;for(;u.last<k.length-1&&m(k[u.last+1]);)u.last++}for(let R=u.first;R<=u.last;R++)C.add(k[R])}let D=new Set(f.filter(u=>u.run.abridged).map(u=>u.run)),h=(u,k,R)=>{let L=0;for(let b=k;b<R;b++)L+=I(u[b]);return L},Q=new Map;for(let u of t){let k=`${u.name} ${u.fragStart}`,R=Q.get(k);R?R.push(u):Q.set(k,[u])}let y=new Map;for(let u of Q.values())u.sort((k,R)=>k.firstPiece-R.firstPiece),u.forEach((k,R)=>{y.set(k,[u[R-1],u[R+1]])});let x=new Map,N=u=>{var k,R;let L=x.get(u);return L===void 0&&(L=u.hapOffset+((R=(k=u.abridged)===null||k===void 0?void 0:k.bp)!==null&&R!==void 0?R:h(u.ids,0,u.ids.length)),x.set(u,L)),L},M=(u,k,R)=>{var L;let b=R>0?{trimmed:R}:{},v=k?u.next:u.prev;if(v){let U=(L=y.get(u))===null||L===void 0?void 0:L[k?1:0];return U?{kind:"elsewhere",chunk:v,bp:k?U.hapOffset-N(u):u.hapOffset-N(U),...b}:{kind:"elsewhere",chunk:v,...b}}let F=k?u.nextRecord:u.prevRecord;return F?{kind:"break",...F,...b}:{kind:"end",...b}},Y=[];for(let{run:u,first:k,last:R}of f){let{ids:L,rev:b}=u;if(D.has(u)){Y.push({name:u.name,fragStart:u.fragStart,hapStart:u.hapOffset,hapEnd:N(u),ids:L,rev:b,before:M(u,!1,0),after:M(u,!0,0),abridged:u.abridged});continue}let v=k,F=R;for(;v>0&&C.has(L[v-1]);)v--;for(;F<L.length-1&&C.has(L[F+1]);)F++;let U=u.hapOffset+h(L,0,v),K=U+h(L,v,F+1);Y.push({name:u.name,fragStart:u.fragStart,hapStart:U,hapEnd:K,ids:L.subarray(v,F+1),rev:b.subarray(v,F+1),before:M(u,!1,U-u.hapOffset),after:M(u,!0,N(u)-K)})}return{kept:C,fragments:Y,open:[...a.values()]}}function At(t,e,A,n){var r;for(let i of t.nodes.keys())!((r=e.get(i))===null||r===void 0)&&r.onWindow&&n.add(i);for(let{steps:i}of t.rows){let{ids:o}=i,a=-1;for(let c=0;c<o.length;c++){let s=e.get(o[c]);if(s?.onWindow){for(let g=a+1;a>=0&&g<c;g++)n.add(o[g]);a=c}else A&&s?.rank===0&&(a=-1)}}}function fn(t){let e=[],A=new Map,n={kinds:new Uint8Array(t.length),kindNames:[...Cn],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((r,i)=>{var o;if(n.kinds[i]=Cn.indexOf(r.kind),n.trimmed[i]=(o=r.trimmed)!==null&&o!==void 0?o:0,"bp"in r&&r.bp!==void 0&&(n.bp[i]=r.bp),"chunk"in r&&r.chunk){let{refName:a,start:c}=r.chunk,s=A.get(a);s===void 0&&(s=e.length,A.set(a,s),e.push(a)),n.chunkRefs[i]=s,n.chunkStarts[i]=c}}),n}var vi=(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&&!vi(A,n))return;let{window:r}=this;this.nodes.set(e,{...A,onWindow:A.rank===0&&A.refName===r.refName&&A.end>r.start-r.context&&A.start<r.end+r.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&&cn(this.chunks,e,(h,Q)=>{let y=this.nodes.get(h);y&&this.nodes.set(h,{...y,...Q})},(h,Q)=>{this.links.push(h,Q)});let n=[];for(let h of e){let Q=this.nodes.get(h);Q&&n.push({...Q,id:h})}n.sort((h,Q)=>h.refName<Q.refName?-1:h.refName>Q.refName?1:h.start-Q.start||h.id-Q.id);let r=new Map,i=[],o=[],a=new Map,c=new Int32Array(n.length),s=new Int32Array(n.length),g=new Float64Array(n.length),B=new Int32Array(n.length);n.forEach(({id:h,refName:Q,start:y,end:x,rank:N},M)=>{r.set(h,M),i.push(String(h));let Y=a.get(Q);Y===void 0&&(Y=o.length,a.set(Q,Y),o.push(Q)),c[M]=x-y,s[M]=Y,g[M]=y,B[M]=N});let f=h=>{let Q=r.get(h);return Q===void 0&&(Q=i.length,r.set(h,Q),i.push(String(h))),Q},I=new Map;for(let h=0;h<this.links.length;h+=2){let Q=this.links[h],y=this.links[h+1],x=Math.floor(Q/2),N=Math.floor(y/2);e.has(x)&&e.has(N)&&I.set(`${x} ${Q%2?"-":"+"} ${N} ${y%2?"-":"+"}`,h)}let E=[...I.keys()].sort(),p=new Int32Array(E.length),l=new Int32Array(E.length),w=new Uint8Array(E.length);E.forEach((h,Q)=>{let y=I.get(h),x=this.links[y],N=this.links[y+1];p[Q]=f(Math.floor(x/2)),l[Q]=f(Math.floor(N/2)),w[Q]=x%2|N%2<<1});let d=this.referenceFirst(A),m=new Int32Array(d.length+1);d.forEach(({ids:h},Q)=>{m[Q+1]=m[Q]+h.length});let C=new Int32Array(m[d.length]),D=new Uint8Array(C.length);return d.forEach(({ids:h,rev:Q},y)=>{let x=m[y];for(let N=0;N<h.length;N++)C[x+N]=f(h[N]);D.set(Q,x)}),{nodes:{names:i,lengths:c,refs:s,starts:g,ranks:B,refNames:o},links:{from:p,to:l,strands:w},walks:{names:d.map(h=>h.name),starts:Float64Array.from(d,h=>h.hapStart),ends:Float64Array.from(d,h=>h.hapEnd),offsets:m,steps:C,reversed:D,before:fn(d.map(h=>h.before)),after:fn(d.map(h=>h.after)),abridgedSteps:Float64Array.from(d,h=>{var Q,y;return(y=(Q=h.abridged)===null||Q===void 0?void 0:Q.steps)!==null&&y!==void 0?y:NaN}),abridgedBp:Float64Array.from(d,h=>{var Q,y;return(y=(Q=h.abridged)===null||Q===void 0?void 0:Q.bp)!==null&&y!==void 0?y:NaN})}}}referenceFirst(e){let{refName:A}=this.window;return[...e].sort((n,r)=>+(r.name===A)-+(n.name===A)||(n.name<r.name?-1:n.name>r.name?1:n.hapStart-r.hapStart))}},et={steps:"the step budget",bytes:"a byte budget of"},Fi=4,Ri=t=>{var e;let A=(e=t.interior)!==null&&e!==void 0?e:0;return A+(t.n-A)/Fi};function tt(t,e,A,n,r,i,o=et){var a;let c=0,s=new Map,g=new Set;for(let l of t){let w=Ri(l);c+=w,s.set(l.chunkStart,((a=s.get(l.chunkStart))!==null&&a!==void 0?a:0)+w),g.add(l.name)}let B=e*A;if(c<=B)return;let f=n.end-n.start,I=0,E=0;for(let l of[...s.keys()].sort((w,d)=>w-d)){if(I+=s.get(l),I>B)break;E=Math.max(E,l+r-n.start)}let p=!i&&g.size>2&&2*c/g.size<=B;return new oA(E>0?`Zoom in to about ${NA(E)}${p?", or choose fewer haplotypes,":""} to see the graph`:`Too many haplotype steps here to draw ${i?"these haplotypes":"every haplotype"} (${Math.round(I).toLocaleString()} steps read, a step along the reference counting a quarter, over ${A} \xD7 ${o.steps} of ${e.toLocaleString()}); choose fewer haplotypes`,B,f,Math.max(E,1))}function nt(t,e,A,n){let r=t.reduce((i,o)=>i+o.ids.length,0);return dn(r,e,A,n)}function fe(t,e,A,n,r=A.end){return dn(t,e,A,n,r)}function dn(t,e,A,n,r=A.end){if(t<=e)return;let i=A.end-A.start,o=Math.min(r,A.end)-A.start,a=Math.max(1,Math.floor(o*e/t));return new oA(`Zoom in to about ${NA(a)}${n?"":", or choose fewer haplotypes,"} to see the graph`,e,i,a)}async function rt(t,e,A,n,r=et){let i=await t(A.end);if(i<=e)return;let o=0,a;for(let s=Math.floor(A.start/n)*n;s<A.end;s+=n){let g=await t(s+1);if(a??(a=g),g>e)break;o=s+n-A.start}let c=A.end-A.start;return o>0?new oA(`Zoom in to about ${NA(o)} to see the graph`,e,c,o,{bytes:i,zoomHelps:!0}):new oA(`Too much graph here to fetch, even zoomed in (${Bn(a??i)} against ${r.bytes} ${Bn(e)}). A satellite or rDNA array usually causes this: the graph folds the repeat into a few nodes that each haplotype loops through many times`,e,c,1,{bytes:i})}var Bn=t=>`${(t/1e6).toFixed(1)} MB`;function it(t,e){return`${t} ${e}`}function WA(t){let e=new Map;for(let A of t){e.set(A,A);let n=zA(A);if(n!==A){let r=qe(A);e.set(it(n,r),A);let i=dA(A);i!==void 0&&e.set(it(i,r),A)}}return e}function VA(t,e,A){var n;return(n=t.get(it(e,A)))!==null&&n!==void 0?n:t.get(A)}var Mi=8,_i=3,Li=4,Ji=1e3,Gi=16,Ui={stepBudget:4e6,byteBudget:8e6},Be=class extends Error{constructor(){super(...arguments),this.name="WalkFormatError"}};function CA(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 hn(t){return t.filter(e=>!e.includes("~"))}async function Yi(t,e,A,n,r){let i=[],o=()=>{if(i.length<t.length&&!A.aborted){let a=n(t[i.length]);i.push(a),a.then(o,()=>{})}};for(let a=0;a<e;a++)o();for(let a=0;a<t.length;a++)A.throwIfAborted(),r(t[a],await i[a])}function un(t,e){return e?(e.throwIfAborted(),new Promise((A,n)=>{let r=()=>{n(e.reason instanceof Error?e.reason:new Error(String(e.reason)))};e.addEventListener("abort",r,{once:!0}),t.then(A,n).finally(()=>{e.removeEventListener("abort",r)})})):t}var ot=class{constructor(e){this.walks=e}header(e={}){if(!this.headerRead){let A=this.walks.getHeaderLines().then(n=>{var r,i;let o=je(n);if(o.format!==5)throw new Be(`This walk file is format ${(r=o.format)!==null&&r!==void 0?r:1}; @jbrowse/graph-walks reads format 5, so rebuild it with gfa-to-tabix 1.4 or later`);return{...o,chunk:(i=o.chunk)!==null&&i!==void 0?i:65536}});A.catch(()=>{this.headerRead===A&&(this.headerRead=void 0)}),this.headerRead=A}return un(this.headerRead,e.signal)}async referenceSequences(e={}){return hn(await this.walks.getReferenceSequenceNames(e))}async sequenceFor(e,A,n={}){if(!this.lookupRead){let i=this.walks.getReferenceSequenceNames().then(o=>WA(hn(o)));i.catch(()=>{this.lookupRead===i&&(this.lookupRead=void 0)}),this.lookupRead=i}let r=await un(this.lookupRead,n.signal);return VA(r,e,A)}async queryStart(e,A={}){let{refName:n="",end:r=e+1}=A;return Qe(await this.header(A),n,e,r)}async cut(e,A,n={}){var r,i;let{signal:o,keep:a,context:c=Ji,stepBudget:s=1/0,byteBudget:g=1/0,links:B=!0,contained:f=!1,nodeLimit:I=1/0,expand:E}=n,p=await this.header({signal:o}),{chunk:l}=p,w=Qe(p,e,A.start,A.end),d=(r=this.walks.bytesForRegions)===null||r===void 0?void 0:r.bind(this.walks),m=Number.isFinite(g)&&d!==void 0,C=async G=>m?d(G.map(S=>({refName:e,...S})),{signal:o}):0,D=m?await rt(async G=>(CA(e,w,G),C([{start:w,end:G}])),g,A,l,n.budgetNames):void 0;if(D)throw D;let h=new AbortController,Q=()=>{h.abort(o?.reason)};o?.throwIfAborted(),o?.addEventListener("abort",Q,{once:!0});let y=[],x,N=new jA({refName:e,start:A.start,end:A.end,context:c,sequences:n.sequences}),M=new Set,Y=[],u=new Set,k=a!==void 0,R=[],L=(G,S)=>{if(M.has(G))return;M.add(G);let _=Xe(S,a,n.sequences),J;for(let T of _.rows)T.abridged&&E?.(T.name)?(J??(J=gn(S)),R.push({ref:J,row:T})):y.push(T);F(_,G)},b=async({row:G})=>{let{refName:S,start:_}=G.abridged.detail;CA(S,_,_+1);let J=[];return await this.walks.getLines(S,_,_+1,{signal:h.signal,lineCallback:T=>{let P=T.split(" ");P[0]=e,P[1]=String(G.chunkStart),J.push(P)}}),J},v=({ref:G,row:S},_)=>{let J=Xe(_,T=>T===S.name,n.sequences,G);for(let T of J.rows)T.name===S.name&&y.push(T);F(J,S.chunkStart)},F=(G,S)=>{for(let[_,J]of G.nodes)N.placeNode(_,J);N.addSequences(G.sequences),N.addChunk(G.chunk);for(let _ of G.ends)Y.push(_);if(Number.isFinite(I)){At(G,N.nodes,f,u),u.size>I&&(u.clear(),At({nodes:N.nodes,rows:y},N.nodes,f,u));let _=fe(u.size,I,A,k,S+l);if(_)throw _}},U=async(G,S)=>{CA(e,G,S);let _,J=[];await this.walks.getLines(e,G,S,{signal:h.signal,lineCallback:P=>{let W=P.split(" "),eA=+W[1];eA!==_&&(_!==void 0&&L(_,J),_=eA,J=[]),J.push(W)}}),_!==void 0&&L(_,J);let T=R;if(R=[],await Yi(T,Gi,h.signal,b,v),B)for(let[P,W]of In(Y))N.addLinkEnds(P,W)};try{await U(w,A.end);let G=tt(y,s,Mi,A,l,k,n.budgetNames);if(G)throw G;let S=w,_=Math.floor((A.end-1)/l)*l,J=Li*l,[T,P]=f?[Math.floor((A.start-c)/l)*l,Math.floor((A.end+c-1)/l)*l]:[S-J,_+J],W=()=>$e(Ve(y),N.nodes,e,{contained:f,context:c});x=W();let eA=await C([{start:w,end:A.end}]);for(let cA=0;cA<_i;cA++){let j=S,V=_;for(let H of x.open)H.refName===e&&H.start>=T&&H.start<=P&&(j=Math.min(j,H.start),V=Math.max(V,H.start));let z=[{start:j,end:S},{start:_+l,end:V+1}].filter(H=>H.end>H.start);if(z.length===0||(eA+=await C(z),eA>g))break;S=j,_=V,await Promise.all(z.map(({start:H,end:X})=>U(H,X))),x=W()}}catch(G){throw h.abort(),G}finally{o?.removeEventListener("abort",Q)}let K=(i=nt(x.fragments,s,A,k))!==null&&i!==void 0?i:fe(x.kept.size,I,A,k);if(K)throw K;return{graph:N,...x}}async cutRegion(e,A={}){var n;let{haplotypes:r,referenceSample:i,...o}=A,{signal:a}=A,c=await this.header({signal:a}),s=(n=i??c.references[0])!==null&&n!==void 0?n:"",g=await this.sequenceFor(s,e.refName,{signal:a});if(g===void 0){let E=await this.referenceSequences({signal:a});throw new Error(`The walk file has no sequence ${e.refName} on ${s}; it holds ${E.slice(0,5).join(", ")}${E.length>5?", \u2026":""}`)}let{graph:B,kept:f,fragments:I}=await this.cut(g,e,{...o,keep:We(r,g)});return{tables:B.tables(f,I),refName:g,sample:s}}};var yA=50,bn=[50,1e3,1e4],st=.05,Hi=1e3,Ki=.1,Ee="0",iA=".",le="~";function Dn(t){let e=t/100,[A,n,r]=bn;return e<250?A:e<3e3?n:r}var xn=t=>Math.max(1,Math.round(t/100));function gt(t,e){return e>t&&t<yA?"insertion":e<t&&e<yA?"deletion":"replacement"}function ct(t,e){return e<st*t?"deletion":t<st*e?"insertion":void 0}var Sn=(t,e,A)=>{let n=t==="replacement"?ct(e,A):void 0;return n?{lopsided:n}:{}},vn=t=>10**(Math.floor(Math.log10(t))-1),KA=t=>{let e=vn(t);return Math.round(Math.round(t/e)*e)},Fn=(t,e=0)=>Math.abs(t.delta)>=Math.max(e,vn(t.shiftedBp));function Rn(t,e=yA){let A=t.delta>0?"+":"-";switch(t.kind){case"inversion":return`v${KA(Math.max(Math.abs(t.delta),t.refEnd-t.refStart,1))}`;case"shift":return Fn(t,e)?`s${KA(t.shiftedBp)}${A}${KA(Math.abs(t.delta))}`:`s${KA(t.shiftedBp)}`;case"net":return`n${A}${KA(Math.abs(t.delta))}`;default:return`${A}${KA(Math.abs(t.delta))}`}}var pn=t=>t.altLength-(t.refEnd-t.refStart);function Ti(t,e){let A=[];for(let n of t){let r=A.at(-1);r&&!r.abridged&&!n.abridged&&n.refStart-r.refEnd<e?(r.refEnd=Math.max(r.refEnd,n.refEnd),r.delta+=pn(n),r.invertedBp+=n.invertedBp,r.repeatedBp+=n.repeatedBp,n.copied&&(r.copied=r.copied?[Math.min(r.copied[0],n.copied[0]),Math.max(r.copied[1],n.copied[1])]:n.copied)):A.push({refStart:n.refStart,refEnd:n.refEnd,delta:pn(n),invertedBp:n.invertedBp,repeatedBp:n.repeatedBp,...n.copied?{copied:n.copied}:{},...n.abridged?{abridged:!0}:{}})}return A}function qi(t,e){let A=t.refEnd-t.refStart,n=Math.max(0,A+t.delta),r=Math.abs(t.delta),i=t.abridged?r>=e?"net":void 0:r<e?t.invertedBp>=e?"inversion":void 0:t.repeatedBp>=yA&&t.delta>0?"duplication":gt(A,n);return i&&{kind:i,refStart:t.refStart,refEnd:t.refEnd,altLength:n,delta:t.delta,...i==="duplication"?{repeatedBp:t.repeatedBp}:{},...i==="duplication"&&t.copied?{copied:t.copied}:{},...Sn(i,A,n)}}function Mn(t){let e=new Set,A=[],n=t.filter(r=>r.kind==="deletion"&&-r.delta>=Hi).sort((r,i)=>r.delta-i.delta);for(let r of n){let i=-r.delta,o=t.find(a=>!e.has(a)&&(a.kind==="insertion"||a.kind==="duplication")&&Math.abs(a.delta-i)<=Ki*Math.max(a.delta,i)&&Math.max(a.refStart-r.refEnd,r.refStart-a.refEnd)<=2*i);if(o){e.add(o),e.add(r);let a=Math.min(r.refStart,o.refStart),c=Math.max(r.refEnd,o.refEnd),s=r.delta+o.delta;A.push({kind:"shift",refStart:a,refEnd:c,altLength:c-a+s,delta:s,shiftedBp:i})}}return[...t.filter(r=>!e.has(r)),...A].sort((r,i)=>r.refStart-i.refStart)}var _n=new Set(["insertion","deletion","replacement"]),Oi=1e3;function Zi(t,e,A,n){let r=Ti(t,A).filter(s=>!n||s.refEnd>=n.start&&s.refStart<=n.end),i=new Map;for(let s of r){let g=qi(s,e);g&&i.set(g,s)}let o=Mn([...i.keys()]),a=new Set(o),c=new Set([...i].flatMap(([s,g])=>a.has(s)&&_n.has(s.kind)?[]:[g]));return{marks:o,plain:r.filter(s=>!s.abridged&&!c.has(s))}}function Pi(t,e){let A=t.reduce((g,B)=>g+B.delta,0);if(Math.abs(A)<e)return;let n=t.filter(g=>Math.abs(g.delta)>=e),r=n.length>0?n:t.filter(g=>g.delta!==0),i=1/0,o=-1/0;for(let g of r)i=Math.min(i,g.refStart),o=Math.max(o,g.refEnd);let a=o-i,c=Math.max(0,a+A),s=gt(a,c);return{kind:s,refStart:i,refEnd:o,altLength:c,delta:A,...Sn(s,a,c)}}var at=t=>t.reduce((e,A)=>e+A.delta,0),Xi=(t,e,A)=>t.covered.some(([n,r])=>n<=e&&r>=A),zi=(t,e,A)=>t.covered.some(([n,r])=>n<=A&&r>=e);function ji(t){let e=t.flat().map(n=>[n.refStart,n.refEnd]).sort((n,r)=>n[0]-r[0]),A=[];for(let[n,r]of e){let i=A.at(-1);i&&n<=i[1]?i[1]=Math.max(i[1],r):A.push([n,r])}return A}function wn(t,e){let A=0,n=t.length-1;for(;A<n;){let r=A+n+1>>1;t[r][0]<=e.refStart?A=r:n=r-1}return A}function Wi(t,e={}){var A,n,r,i;let o=(A=e.exclude)!==null&&A!==void 0?A:[],a=t.filter(b=>!o.some(v=>UA(b.haplotype,v))),c=(n=e.minCarriers)!==null&&n!==void 0?n:xn(a.length),s=(r=e.window)!==null&&r!==void 0?r:Vi(a),g=e.floorBp===void 0||e.floorBp==="auto"?Dn(s.end-s.start):Math.max(yA,e.floorBp),B=(i=e.joinBp)!==null&&i!==void 0?i:yA,f=e.foldRareForms===!1,I=a.map(b=>Zi(b.departures,g,B,e.window)),E=ji(I.map(b=>b.marks)),p=E.map(([b,v])=>v-b<=Oi),l=I.map(({marks:b,plain:v})=>{var F;let U=new Map,K=(S,_)=>{var J;U.set(S,[...(J=U.get(S))!==null&&J!==void 0?J:[],_])};for(let S of b){let _=wn(E,S);(!_n.has(S.kind)||!p[_])&&K(_,S)}let G=new Map;for(let S of v){let _=wn(E,{refStart:S.refEnd});p[_]&&E[_][0]<=S.refEnd&&E[_][1]>=S.refStart&&G.set(_,[...(F=G.get(_))!==null&&F!==void 0?F:[],S])}for(let[S,_]of G){let J=Pi(_,g);J&&K(S,J)}return new Map([...U].map(([S,_])=>{_.sort((T,P)=>T.refStart-P.refStart||T.refEnd-P.refEnd);let J=_.map(T=>Rn(T,g)).join(";");return[S,_.map(T=>({...T,site:S,state:J}))]}))});for(let b of l)for(let[v,F]of b){let U=E[v];for(let K of F)U[0]=Math.min(U[0],K.refStart),U[1]=Math.max(U[1],K.refEnd)}let w=E.map(([b,v],F)=>a.map((U,K)=>{var G,S;return Xi(U,Math.max(b,s.start),Math.min(v,s.end))?(S=(G=l[K].get(F))===null||G===void 0?void 0:G[0].state)!==null&&S!==void 0?S:Ee:iA})),d=a.map(b=>zi(b,s.start,s.end)),m=d.filter(Boolean).length,C=w.map(b=>2*b.filter((v,F)=>d[F]&&v!==iA).length<m),D=a.map((b,v)=>d[v]&&(C.every(Boolean)||w.some((F,U)=>!C[U]&&F[v]!==iA))),h=a.flatMap((b,v)=>D[v]?[v]:[]),Q=new Set,y=[],x=[],N=[],M=[];E.forEach(([b,v],F)=>{var U,K,G,S,_,J;let T=w[F],P=new Map;for(let H of h){let X=P.get(T[H]);X?X.push(H):P.set(T[H],[H])}let W=[...P].sort((H,X)=>X[1].length-H[1].length||(H[0]<X[0]?-1:1)),eA=W.flatMap(([H,X])=>{if(H===iA)return[];let _A=X.map($=>{var JA;return{j:$,marks:(JA=l[$].get(F))!==null&&JA!==void 0?JA:[]}}).map($=>({...$,delta:at($.marks)})).sort(($,JA)=>$.delta-JA.delta),LA=_A[Math.floor(_A.length/2)];return[{key:H,delta:LA.delta,marks:LA.marks,carriers:X.map($=>a[$].haplotype)}]}),cA=!C[F]&&W.length>1&&W[1][1].length>=c;if(y.push({refStart:b,refEnd:v,edge:C[F],shared:!C[F]&&!cA,covered:h.length-((K=(U=P.get(iA))===null||U===void 0?void 0:U.length)!==null&&K!==void 0?K:0),states:eA}),C[F])return;let j=(S=(G=W[0])===null||G===void 0?void 0:G[0])!==null&&S!==void 0?S:Ee,V=eA.filter(H=>H.carriers.length>=c),z=T.map((H,X)=>{var _A,LA,$;if(((LA=(_A=P.get(H))===null||_A===void 0?void 0:_A.length)!==null&&LA!==void 0?LA:0)>=c||!D[X]||f&&cA)return H;if(H!==j&&Q.add(a[X].haplotype),H!==iA&&j===iA)return le;if(H!==iA&&V.length>0){let ki=at(($=l[X].get(F))!==null&&$!==void 0?$:[]);return mn(V,Ni=>Ni.delta,ki).key}return j});if(cA)x.push(F),N.push(z);else for(let H of(J=(_=eA.find(X=>X.key===j))===null||_===void 0?void 0:_.marks)!==null&&J!==void 0?J:[])M.push(H)});let Y=(b,v)=>y[x[b]].states.find(F=>F.key===v),u=new Map;for(let b of h){let v=N.map(K=>K[b]),F=v.join("|"),U=u.get(F);U?U.members.push(a[b].haplotype):u.set(F,{states:v,members:[a[b].haplotype]})}let k=[...u].map(([b,{states:v,members:F}])=>{let U=v.flatMap((S,_)=>{var J,T;return(T=(J=Y(_,S))===null||J===void 0?void 0:J.marks)!==null&&T!==void 0?T:[]}).concat(M).sort((S,_)=>S.refStart-_.refStart),K=U.filter(S=>!y[S.site].shared),G=K.length>0&&K.every(S=>S.kind==="shift")&&!v.some(S=>S===iA||S===le);return{members:F,key:b,states:v,marks:U,net:at(U),onlyShifts:G}}),R=f?k:k.filter(b=>b.members.length>=c),L=R.length>0?R:k;if(R.length>0&&R!==k){for(let b of kn(k))if(b.members.length<c){let v=mn(R,F=>F.net,b.net);for(let F of b.members)v.members.push(F),Q.add(F)}}return{sites:y,informative:x,forms:kn(L),placed:h.length,unplaced:a.flatMap((b,v)=>D[v]?[]:[b.haplotype]),rareCarriers:a.filter(b=>Q.has(b.haplotype)).map(b=>b.haplotype),abridged:a.filter((b,v)=>I[v].marks.some(F=>F.kind==="net")).map(b=>b.haplotype),minCarriers:c,floorBp:g}}function Vi(t){let e=1/0,A=-1/0;for(let n of t)for(let[r,i]of n.covered)e=Math.min(e,r),A=Math.max(A,i);return e<=A?{start:e,end:A}:{start:0,end:0}}function mn(t,e,A){let n=t[0];for(let r of t)Math.abs(e(r)-A)<Math.abs(e(n)-A)&&(n=r);return n}var kn=t=>t.toSorted((e,A)=>A.members.length-e.members.length||Math.abs(e.net)-Math.abs(A.net)||(e.key<A.key?-1:1));function aA(t){let e=Number(t.toPrecision(3));return e>=1e6?`${Number((e/1e6).toPrecision(3))}Mb`:e>=1e3?`${Number((e/1e3).toPrecision(3))}kb`:`${e}bp`}var Nn=t=>`${t<0?"-":"+"}${aA(Math.abs(t))}`,$i={deletion:"del",insertion:"ins",none:"repl"};function Ln(t){var e;let A=t.refEnd-t.refStart;switch(t.kind){case"insertion":return`ins ${aA(t.delta)}`;case"deletion":return`del ${aA(-t.delta)}`;case"duplication":return`dup ${aA(t.delta)}`;case"inversion":return`inv ${aA(A)}`;case"net":return`net ${Nn(t.delta)}`;case"shift":return Fn(t)?`shift ${aA(t.shiftedBp)} net ${Nn(t.delta)}`:`shift ${aA(t.shiftedBp)}`;case"replacement":return`${$i[(e=ct(A,t.altLength))!==null&&e!==void 0?e:"none"]} ${aA(A)}->${aA(t.altLength)}`}}var yn=t=>{var e;return t.kind==="inversion"?t.refEnd-t.refStart:(e=t.shiftedBp)!==null&&e!==void 0?e:Math.abs(t.delta)};function Ao(t,e,A){var n,r,i;let o=t.informative.indexOf(A);return o>=0?e.states[o]:!((n=t.sites[A])===null||n===void 0)&&n.shared?(i=(r=e.marks.find(a=>a.site===A))===null||r===void 0?void 0:r.state)!==null&&i!==void 0?i:Ee:void 0}function eo(t,e){let A=s=>{var g;return"site"in s&&((g=e?.sites[s.site])===null||g===void 0?void 0:g.shared)===!0},n=t.marks.filter(s=>!A(s)),[r]=n.toSorted((s,g)=>yn(g)-yn(s)),i=t.states.filter(s=>s===le).length,o=t.states.filter(s=>s===iA).length,a=r?Ln(r):i>0?"rarer":o>0?"no call":n.length<t.marks.length?"shared":"ref",c=n.length+i+o-1;return c>0?`${a} +${c}`:a}function to(t,e,A){return{walks:t.map(n=>{var r,i,o;return{name:n.name,hapStart:n.hapStart,hapEnd:n.hapEnd,steps:n.ids.length,id:a=>n.ids[a],rev:a=>n.rev[a]===1,abridgedBp:(r=n.abridged)===null||r===void 0?void 0:r.bp,trimmed:[(i=n.before.trimmed)!==null&&i!==void 0?i:0,(o=n.after.trimmed)!==null&&o!==void 0?o:0]}}),refStart:n=>{let r=e.get(n);return r?.rank===0&&r.refName===A?r.start:NaN},length:n=>{let r=e.get(n);return r?r.end-r.start:0}}}function no({nodes:t,walks:e},A){let n=t.refNames.indexOf(A);return{walks:e.names.map((r,i)=>{var o;let a=e.offsets[i],c=(o=e.abridgedBp)===null||o===void 0?void 0:o[i];return{name:r,hapStart:e.starts[i],hapEnd:e.ends[i],steps:e.offsets[i+1]-a,id:s=>e.steps[a+s],rev:s=>e.reversed[a+s]===1,abridgedBp:c===void 0||Number.isNaN(c)?void 0:c,trimmed:[0,0]}}),refStart:r=>t.ranks[r]===0&&t.refs[r]===n?t.starts[r]:NaN,length:r=>{var i;return(i=t.lengths[r])!==null&&i!==void 0?i:0}}}var $A=t=>!Number.isNaN(t);function ro(t){let e=t.toSorted((i,o)=>i.name<o.name?-1:i.name>o.name?1:i.hapStart-o.hapStart),A=[],n=NaN,r=-1/0;for(let i of e){let o=A.at(-1),a=o?.at(-1);if(o&&a?.name===i.name){if(a.abridgedBp!==void 0&&i.hapStart<n){let c=i.hapStart-i.trimmed[0],s=i.hapEnd+i.trimmed[1],g=Math.max(0,s-Math.max(c,r));r=Math.max(r,s),n+=g,o[o.length-1]={...a,abridgedBp:a.abridgedBp+g};continue}if(i.hapStart===n){o.push(i),n=i.hapEnd,r=-1/0;continue}}A.push([i]),n=i.hapEnd,r=-1/0}return A}function Jn(t,e){var A,n;let{walks:r,refStart:i,length:o}="fragments"in t?to(t.fragments,t.nodes,e):no(t,e),a=(A=dA(e))!==null&&A!==void 0?A:e,c=new Map;for(let g of ro(r)){let{name:B}=g[0],f=(n=dA(B))!==null&&n!==void 0?n:zA(B);if(f===a||B===e)continue;let I=c.get(f);I||(I={haplotype:f,covered:[],departures:[],open:!1},c.set(f,I)),io(g,i,o,I)}let s=[...c.values()];for(let g of s)g.departures.sort((B,f)=>B.refStart-f.refStart||B.refEnd-f.refEnd),g.covered=oo(g.covered);return s}function io(t,e,A,n){let r=0,i=0;for(let E of t)for(let p=0;E.abridgedBp===void 0&&p<E.steps;p++){let l=E.id(p);$A(e(l))&&(E.rev(p)?i+=A(l):r+=A(l))}let o=i>r,a=NaN,c=NaN,s=-1/0,g=0,B=0,f=NaN,I=0;for(let E of o?t.toReversed():t){let p=E.steps;if(E.abridgedBp!==void 0){let l=E.id(0),w=E.id(p-1),d=e(l),m=e(w);if(!$A(d)||!$A(m)){n.open=!0;continue}Number.isNaN(c)&&(a=Math.min(d,m),c=a,g=0),g+=E.abridgedBp,f=Math.max(d+A(l),m+A(w)),I=g;continue}for(let l=0;l<p;l++){let w=o?p-1-l:l,d=E.id(w),m=E.rev(w)!==o,C=e(d),D=A(d);if($A(C)&&!m){if(Number.isNaN(c))a=C;else if(!Number.isNaN(f))n.departures.push({refStart:c,refEnd:Math.max(C,c),altLength:g+Math.max(0,c-C),invertedBp:0,repeatedBp:0,abridged:!0}),f=NaN;else if(C!==c||g>0){let h=C<c?c-C:0;n.departures.push({refStart:c,refEnd:h>0?c:C,altLength:g+h,invertedBp:B,repeatedBp:h,...h>0?{copied:[C,c]}:{}})}c=C+D,s=Math.max(s,c),g=0,B=0}else Number.isNaN(c)?n.open=!0:(g+=D,$A(C)&&(B+=D))}}Number.isNaN(f)||(n.departures.push({refStart:c,refEnd:Math.max(f,c),altLength:I,invertedBp:0,repeatedBp:0,abridged:!0}),s=Math.max(s,f),g-=I),Number.isNaN(a)?n.open=!0:n.covered.push([a,s]),g>0&&(n.open=!0)}function oo(t){let e=[...new Set(t.flat())].sort((r,i)=>r-i),A=[],n=-1;for(let r=0;r+1<e.length;r++){let i=e[r],o=e[r+1],a=t.flatMap(([s,g],B)=>s<=i&&g>=o?[B]:[]),c=A.at(-1);a.length!==1?n=-1:c&&a[0]===n&&c[1]===i?c[1]=o:(A.push([i,o]),n=a[0])}return A}var Gn=16e6,de=class extends oA{constructor(e,A,n){let r=Math.max(1,Math.floor(n*A/e));super(`Zoom in to about ${NA(r)} to read every walk in full`,A,n,r),this.steps=e}};async function ao(t,e,A={}){var n,r;let{expand:i=!0,partial:o=!0,stepBudget:a=Gn,byteBudget:c,signal:s}=A,g=await t.header({signal:s}),B=(n=g.references[0])!==null&&n!==void 0?n:"",f=(r=await t.sequenceFor(B,e.refName,{signal:s}))!==null&&r!==void 0?r:e.refName,I={links:!1,byteBudget:c,signal:s},E=await t.cut(f,e,I);if(i){let w=so(E.fragments,a,o,e);w.size>0&&(E=await t.cut(f,e,{...I,expand:d=>w.has(d)}))}let p=Jn({fragments:E.fragments,nodes:E.graph.nodes},f),l=new Set(p.map(w=>w.haplotype));for(let w of g.haplotypes)l.has(w)||p.push({haplotype:w,covered:[],departures:[],open:!1});return p}function so(t,e,A,n){var r;let i=0,o=new Map;for(let c of t)c.abridged?o.set(c.name,((r=o.get(c.name))!==null&&r!==void 0?r:0)+c.abridged.steps):i+=c.ids.length;if(!A){let c=[...o.values()].reduce((s,g)=>s+g,i);if(o.size>0&&c>e)throw new de(c,e,n.end-n.start);return new Set(o.keys())}let a=new Set;for(let[c,s]of[...o].sort((g,B)=>g[1]-B[1])){if(i+s>e)break;i+=s,a.add(c)}return a}function It(t){var e;let A=t.split(" "),n=A.length>=8,r=n?5:0;return{anchored:n,segment:{refName:A[r],start:+A[r+1],end:+A[r+2],id:A[3],rank:+A[4],tags:(e=A[n?8:5])!==null&&e!==void 0?e:""}}}function go(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 Un(t){return{id:t.slice(0,-1),strand:t.slice(-1)}}function Ct(t){var e,A;let n=t.split(" "),r=Un(n[3]),i=Un(n[4]);return{source:r.id,sourceStrand:r.strand,target:i.id,targetStrand:i.strand,sourceSegment:{id:r.id,refName:n[5],start:+n[6],end:+n[7],rank:+n[8],tags:(e=n[13])!==null&&e!==void 0?e:""},targetSegment:{id:i.id,refName:n[9],start:+n[10],end:+n[11],rank:+n[12],tags:(A=n[14])!==null&&A!==void 0?A:""}}}function Qt(t){return`${t.source}${t.sourceStrand}${t.target}${t.targetStrand}`}function Ae(t,e,A){e.set(Qt(A),A);let n=[];for(let r of[A.sourceSegment,A.targetSegment])t.has(r.id)||(t.set(r.id,r),n.push(r));return n}function Hn(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,r=new Map(t),i=new Map;for(let o of e)(t.has(o.source)||t.has(o.target)||n(o.sourceSegment)*n(o.targetSegment)===-1)&&Ae(r,i,o);for(let o of e)r.has(o.source)&&r.has(o.target)&&i.set(Qt(o),o);return{segments:r,links:i}}function Kn(t,e,A){let n=r=>r.refName!==A.refName||r.end<=A.start||r.start>=A.end;return[...Yn(t.filter(r=>r.rank>0),r=>e.has(r.id),A.end-A.start),...Yn(t.filter(r=>r.rank===0&&n(r)),()=>!0,0)]}function Yn(t,e,A){let n=[...t].sort((i,o)=>he(i.refName,o.refName)||i.start-o.start),r=[];for(let i of n){let o=r.at(-1);o?.refName===i.refName&&i.start-o.end<=A?(o.needed||(o.needed=i.start>o.end||e(i)),o.end=Math.max(o.end,i.end)):r.push({refName:i.refName,start:i.start,end:i.end,needed:e(i)})}return r.filter(i=>i.needed).map(({refName:i,start:o,end:a})=>({refName:i,start:o,end:a}))}function Tn(t,e,A){let n=r=>e.has(r.id)||A.some(i=>i.refName===r.refName&&r.start>=i.start&&r.end<=i.end);return t.filter(r=>n(r.sourceSegment)&&n(r.targetSegment))}var co=/^[A-Za-z][A-Za-z0-9]:[AifZJHB]:/;function Io(t){let{id:e,refName:A,start:n,end:r,rank:i,tags:o}=t,a=o.split(" ").filter(s=>co.test(s)),c=a.length===0?"":` ${a.join(" ")}`;return`S ${e} * LN:i:${r-n} SN:Z:${A} SO:i:${n} SR:i:${i}${c}`}function Co(t){let{source:e,sourceStrand:A,target:n,targetStrand:r}=t;return`L ${e} ${A} ${n} ${r} 0M`}function he(t,e){return t<e?-1:t>e?1:0}function ue(t,e){let A=[...t.values()].sort((r,i)=>he(r.refName,i.refName)||r.start-i.start||he(r.id,i.id)),n=[...e.keys()].sort((r,i)=>he(r,i));return["H VN:Z:1.0",...A.map(r=>Io(r)),...n.map(r=>Co(e.get(r)))].join(`
2
- `)}function qn(t){return t.filter(e=>e.rank>0)}function On(t,e,A,n,r){return CA(e,A,n),t.getLines(e,A,n,r)}async function ft(t,e,A){let n=[];return await On(t,e.refName,e.start,e.end,{signal:A,lineCallback:r=>{n.push(Ct(r))}}),n}async function Qo(t,e,{hops:A=0,signal:n}={}){let r=new Map,i=new Map,o={anchored:!1},[,a]=await Promise.all([On(t.segments,e.refName,e.start,e.end,{signal:n,lineCallback:g=>{let B=It(g);o.anchored||(o.anchored=B.anchored),r.set(B.segment.id,B.segment)}}),ft(t.links,e,n)]);if(o.anchored){let g=Hn(r,a,e);return ue(g.segments,g.links)}let c=async g=>(await ft(t.links,g,n)).flatMap(B=>Ae(r,i,B)),s=qn(a.flatMap(g=>Ae(r,i,g)));for(let g=0;g<A;g++){let B=await Promise.all(s.map(c));s=qn(B.flat())}if(A>0){let g=Kn([...r.values()],new Set(s.map(f=>f.id)),e),B=await Promise.all(g.map(f=>ft(t.links,f,n)));for(let f of Tn(B.flat(),r,g))Ae(r,i,f)}return ue(r,i)}async function as(t,e,A,n,r){return CA(e,A,n),t.getLines(e,A,n,r)}async function Zn(t,e,A){for(let{refName:n,start:r,end:i}of e)CA(n,r,i);return t.bytesForRegions(e,A)}var Bt=0;var Et=2;var ee=4;var hA=0,te=1,Pn=2;var Xn=-5;function fo(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function zn(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)fo(A,n)&&(t[n]=A[n])}}return t}function we(t,e){return t.length===e?t:t.subarray?t.subarray(0,e):(t.length=e,t)}var ne={arraySet:function(t,e,A,n,r){if(e.subarray&&t.subarray){t.set(e.subarray(A,A+n),r);return}for(var i=0;i<n;i++)t[r+i]=e[A+i]},flattenChunks:function(t){var e,A,n,r,i,o;for(n=0,e=0,A=t.length;e<A;e++)n+=t[e].length;for(o=new Uint8Array(n),r=0,e=0,A=t.length;e<A;e++)i=t[e],o.set(i,r),r+=i.length;return o},Buf8:function(t){return new Uint8Array(t)},Buf16:function(t){return new Uint16Array(t)},Buf32:function(t){return new Int32Array(t)}},re={arraySet:function(t,e,A,n,r){for(var i=0;i<n;i++)t[r+i]=e[A+i]},flattenChunks:function(t){return[].concat.apply([],t)},Buf8:function(t){return new Array(t)},Buf16:function(t){return new Array(t)},Buf32:function(t){return new Array(t)}},TA=()=>{let t=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Int32Array<"u";return TA=()=>t,t},sA=(t,e,A,n,r)=>(sA=TA()?ne.arraySet:re.arraySet,sA(t,e,A,n,r)),pe=t=>(pe=TA()?ne.flattenChunks:re.flattenChunks,pe(t)),QA=t=>(QA=TA()?ne.Buf8:re.Buf8,QA(t)),uA=t=>(uA=TA()?ne.Buf16:re.Buf16,uA(t)),bA=t=>(bA=TA()?ne.Buf32:re.Buf32,bA(t));var jn=function(){let t=!0;try{String.fromCharCode.apply(null,[0])}catch{t=!1}return jn=()=>t,t},Wn=function(){let t=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{t=!1}return Wn=()=>t,t},lt=function(t){for(var e=QA(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,lt=n=>e[n],e[t]};function dt(t){var e,A,n,r,i,o=t.length,a=0;for(r=0;r<o;r++)A=t.charCodeAt(r),(A&64512)===55296&&r+1<o&&(n=t.charCodeAt(r+1),(n&64512)===56320&&(A=65536+(A-55296<<10)+(n-56320),r++)),a+=A<128?1:A<2048?2:A<65536?3:4;for(e=new Uint8Array(a),i=0,r=0;i<a;r++)A=t.charCodeAt(r),(A&64512)===55296&&r+1<o&&(n=t.charCodeAt(r+1),(n&64512)===56320&&(A=65536+(A-55296<<10)+(n-56320),r++)),A<128?e[i++]=A:A<2048?(e[i++]=192|A>>>6,e[i++]=128|A&63):A<65536?(e[i++]=224|A>>>12,e[i++]=128|A>>>6&63,e[i++]=128|A&63):(e[i++]=240|A>>>18,e[i++]=128|A>>>12&63,e[i++]=128|A>>>6&63,e[i++]=128|A&63);return e}function Bo(t,e){if(e<65534&&(t.subarray&&Wn()||!t.subarray&&jn()))return String.fromCharCode.apply(null,we(t,e));for(var A="",n=0;n<e;n++)A+=String.fromCharCode(t[n]);return A}function Vn(t){for(var e=new Uint8Array(t.length),A=0,n=e.length;A<n;A++)e[A]=t.charCodeAt(A);return e}function $n(t,e){var A,n,r,i,o=e||t.length,a=new Array(o*2);for(n=0,A=0;A<o;){if(r=t[A++],r<128){a[n++]=r;continue}if(i=lt(r),i>4){a[n++]=65533,A+=i-1;continue}for(r&=i===2?31:i===3?15:7;i>1&&A<o;)r=r<<6|t[A++]&63,i--;if(i>1){a[n++]=65533;continue}r<65536?a[n++]=r:(r-=65536,a[n++]=55296|r>>10&1023,a[n++]=56320|r&1023)}return Bo(a,n)}function Ar(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+lt(t[A])>e?A:e}function ht(){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 ie(t,e,A,n){for(var r=t&65535|0,i=t>>>16&65535|0,o=0;A!==0;){o=A>2e3?2e3:A,A-=o;do r=r+e[n++]|0,i=i+r|0;while(--o);r%=65521,i%=65521}return r|i<<16|0}function Eo(){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 er=function(){let t=Eo();return er=()=>t,t};function tA(t,e,A,n){var r=er(),i=n+A;t^=-1;for(var o=n;o<i;o++)t=t>>>8^r[(t^e[o])&255];return t^-1}var me=30,lo=12;function ut(t,e){var A,n,r,i,o,a,c,s,g,B,f,I,E,p,l,w,d,m,C,D,h,Q,y,x,N;A=t.state,n=t.next_in,x=t.input,r=n+(t.avail_in-5),i=t.next_out,N=t.output,o=i-(e-t.avail_out),a=i+(t.avail_out-257),c=A.dmax,s=A.wsize,g=A.whave,B=A.wnext,f=A.window,I=A.hold,E=A.bits,p=A.lencode,l=A.distcode,w=(1<<A.lenbits)-1,d=(1<<A.distbits)-1;A:do{E<15&&(I+=x[n++]<<E,E+=8,I+=x[n++]<<E,E+=8),m=p[I&w];e:for(;;){if(C=m>>>24,I>>>=C,E-=C,C=m>>>16&255,C===0)N[i++]=m&65535;else if(C&16){D=m&65535,C&=15,C&&(E<C&&(I+=x[n++]<<E,E+=8),D+=I&(1<<C)-1,I>>>=C,E-=C),E<15&&(I+=x[n++]<<E,E+=8,I+=x[n++]<<E,E+=8),m=l[I&d];t:for(;;){if(C=m>>>24,I>>>=C,E-=C,C=m>>>16&255,C&16){if(h=m&65535,C&=15,E<C&&(I+=x[n++]<<E,E+=8,E<C&&(I+=x[n++]<<E,E+=8)),h+=I&(1<<C)-1,h>c){t.msg="invalid distance too far back",A.mode=me;break A}if(I>>>=C,E-=C,C=i-o,h>C){if(C=h-C,C>g&&A.sane){t.msg="invalid distance too far back",A.mode=me;break A}if(Q=0,y=f,B===0){if(Q+=s-C,C<D){D-=C;do N[i++]=f[Q++];while(--C);Q=i-h,y=N}}else if(B<C){if(Q+=s+B-C,C-=B,C<D){D-=C;do N[i++]=f[Q++];while(--C);if(Q=0,B<D){C=B,D-=C;do N[i++]=f[Q++];while(--C);Q=i-h,y=N}}}else if(Q+=B-C,C<D){D-=C;do N[i++]=f[Q++];while(--C);Q=i-h,y=N}for(;D>2;)N[i++]=y[Q++],N[i++]=y[Q++],N[i++]=y[Q++],D-=3;D&&(N[i++]=y[Q++],D>1&&(N[i++]=y[Q++]))}else{Q=i-h;do N[i++]=N[Q++],N[i++]=N[Q++],N[i++]=N[Q++],D-=3;while(D>2);D&&(N[i++]=N[Q++],D>1&&(N[i++]=N[Q++]))}}else if((C&64)===0){m=l[(m&65535)+(I&(1<<C)-1)];continue t}else{t.msg="invalid distance code",A.mode=me;break A}break}}else if((C&64)===0){m=p[(m&65535)+(I&(1<<C)-1)];continue e}else if(C&32){A.mode=lo;break A}else{t.msg="invalid literal/length code",A.mode=me;break A}break}}while(n<r&&i<a);D=E>>3,n-=D,E-=D<<3,I&=(1<<E)-1,t.next_in=n,t.next_out=i,t.avail_in=n<r?5+(r-n):5-(n-r),t.avail_out=i<a?257+(a-i):257-(i-a),A.hold=I,A.bits=E}var qA=15,tr=852,nr=592,rr=0,pt=1,ir=2,ho=[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],uo=[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],po=[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],wo=[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 DA(t,e,A,n,r,i,o,a){var c=a.bits,s=0,g=0,B=0,f=0,I=0,E=0,p=0,l=0,w=0,d=0,m,C,D,h,Q,y=null,x=0,N,M=uA(qA+1),Y=uA(qA+1),u=null,k=0,R,L,b;for(s=0;s<=qA;s++)M[s]=0;for(g=0;g<n;g++)M[e[A+g]]++;for(I=c,f=qA;f>=1&&M[f]===0;f--);if(I>f&&(I=f),f===0)return r[i++]=1<<24|64<<16|0,r[i++]=1<<24|64<<16|0,a.bits=1,0;for(B=1;B<f&&M[B]===0;B++);for(I<B&&(I=B),l=1,s=1;s<=qA;s++)if(l<<=1,l-=M[s],l<0)return-1;if(l>0&&(t===rr||f!==1))return-1;for(Y[1]=0,s=1;s<qA;s++)Y[s+1]=Y[s]+M[s];for(g=0;g<n;g++)e[A+g]!==0&&(o[Y[e[A+g]]++]=g);if(t===rr?(y=u=o,N=19):t===pt?(y=ho,x-=257,u=uo,k-=257,N=256):(y=po,u=wo,N=-1),d=0,g=0,s=B,Q=i,E=I,p=0,D=-1,w=1<<I,h=w-1,t===pt&&w>tr||t===ir&&w>nr)return 1;for(;;){R=s-p,o[g]<N?(L=0,b=o[g]):o[g]>N?(L=u[k+o[g]],b=y[x+o[g]]):(L=96,b=0),m=1<<s-p,C=1<<E,B=C;do C-=m,r[Q+(d>>p)+C]=R<<24|L<<16|b|0;while(C!==0);for(m=1<<s-1;d&m;)m>>=1;if(m!==0?(d&=m-1,d+=m):d=0,g++,--M[s]===0){if(s===f)break;s=e[A+o[g]]}if(s>I&&(d&h)!==D){for(p===0&&(p=I),Q+=B,E=s-p,l=1<<E;E+p<f&&(l-=M[E+p],!(l<=0));)E++,l<<=1;if(w+=1<<E,t===pt&&w>tr||t===ir&&w>nr)return 1;D=d&h,r[D]=I<<24|E<<16|Q-i|0}}return d!==0&&(r[Q+d]=s-p<<24|64<<16|0),a.bits=I,0}var mo=0,vr=1,Fr=2,or=4,ko=5,ke=6,xA=0,No=1,yo=2,nA=-2,Rr=-3,bt=-4,bo=-5,ar=8,Mr=1,sr=2,gr=3,cr=4,Ir=5,Cr=6,Qr=7,fr=8,Br=9,Er=10,be=11,fA=12,wt=13,lr=14,mt=15,dr=16,hr=17,ur=18,pr=19,Ne=20,ye=21,wr=22,mr=23,kr=24,Nr=25,yr=26,kt=27,br=28,Dr=29,O=30,Dt=31,Do=32,xo=852,So=592;function xr(t){return(t>>>24&255)+(t>>>8&65280)+((t&65280)<<8)+((t&255)<<24)}function vo(){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=uA(320),this.work=uA(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function Fo(t){var e;return!t||!t.state?nA:(e=t.state,t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=e.wrap&1),e.mode=Mr,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=bA(xo),e.distcode=e.distdyn=bA(So),e.sane=1,e.back=-1,xA)}function Ro(t){var e;return!t||!t.state?nA:(e=t.state,e.wsize=0,e.whave=0,e.wnext=0,Fo(t))}function Mo(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))?nA:(n.window!==null&&n.wbits!==e&&(n.window=null),n.wrap=A,n.wbits=e,Ro(t))}function _r(t,e){var A,n;return t?(n=new vo,t.state=n,n.window=null,A=Mo(t,e),A!==xA&&(t.state=null),A):nA}var Sr=!0,Nt,yt;function _o(t){if(Sr){var e;for(Nt=bA(512),yt=bA(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(DA(vr,t.lens,0,288,Nt,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;DA(Fr,t.lens,0,32,yt,0,t.work,{bits:5}),Sr=!1}t.lencode=Nt,t.lenbits=9,t.distcode=yt,t.distbits=5}function Lr(t,e,A,n){var r,i=t.state;return i.window===null&&(i.wsize=1<<i.wbits,i.wnext=0,i.whave=0,i.window=QA(i.wsize)),n>=i.wsize?(sA(i.window,e,A-i.wsize,i.wsize,0),i.wnext=0,i.whave=i.wsize):(r=i.wsize-i.wnext,r>n&&(r=n),sA(i.window,e,A-n,r,i.wnext),n-=r,n?(sA(i.window,e,A-n,n,0),i.wnext=n,i.whave=i.wsize):(i.wnext+=r,i.wnext===i.wsize&&(i.wnext=0),i.whave<i.wsize&&(i.whave+=r))),0}function Jr(t,e){var A,n,r,i,o,a,c,s,g,B,f,I,E,p,l=0,w,d,m,C,D,h,Q,y,x=QA(4),N,M,Y=[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 nA;A=t.state,A.mode===fA&&(A.mode=wt),o=t.next_out,r=t.output,c=t.avail_out,i=t.next_in,n=t.input,a=t.avail_in,s=A.hold,g=A.bits,B=a,f=c,y=xA;A:for(;;)switch(A.mode){case Mr:if(A.wrap===0){A.mode=wt;break}for(;g<16;){if(a===0)break A;a--,s+=n[i++]<<g,g+=8}if(A.wrap&2&&s===35615){A.check=0,x[0]=s&255,x[1]=s>>>8&255,A.check=tA(A.check,x,2,0),s=0,g=0,A.mode=sr;break}if(A.flags=0,A.head&&(A.head.done=!1),!(A.wrap&1)||(((s&255)<<8)+(s>>8))%31){t.msg="incorrect header check",A.mode=O;break}if((s&15)!==ar){t.msg="unknown compression method",A.mode=O;break}if(s>>>=4,g-=4,Q=(s&15)+8,A.wbits===0)A.wbits=Q;else if(Q>A.wbits){t.msg="invalid window size",A.mode=O;break}A.dmax=1<<Q,t.adler=A.check=1,A.mode=s&512?Er:fA,s=0,g=0;break;case sr:for(;g<16;){if(a===0)break A;a--,s+=n[i++]<<g,g+=8}if(A.flags=s,(A.flags&255)!==ar){t.msg="unknown compression method",A.mode=O;break}if(A.flags&57344){t.msg="unknown header flags set",A.mode=O;break}A.head&&(A.head.text=s>>8&1),A.flags&512&&(x[0]=s&255,x[1]=s>>>8&255,A.check=tA(A.check,x,2,0)),s=0,g=0,A.mode=gr;case gr:for(;g<32;){if(a===0)break A;a--,s+=n[i++]<<g,g+=8}A.head&&(A.head.time=s),A.flags&512&&(x[0]=s&255,x[1]=s>>>8&255,x[2]=s>>>16&255,x[3]=s>>>24&255,A.check=tA(A.check,x,4,0)),s=0,g=0,A.mode=cr;case cr:for(;g<16;){if(a===0)break A;a--,s+=n[i++]<<g,g+=8}A.head&&(A.head.xflags=s&255,A.head.os=s>>8),A.flags&512&&(x[0]=s&255,x[1]=s>>>8&255,A.check=tA(A.check,x,2,0)),s=0,g=0,A.mode=Ir;case Ir:if(A.flags&1024){for(;g<16;){if(a===0)break A;a--,s+=n[i++]<<g,g+=8}A.length=s,A.head&&(A.head.extra_len=s),A.flags&512&&(x[0]=s&255,x[1]=s>>>8&255,A.check=tA(A.check,x,2,0)),s=0,g=0}else A.head&&(A.head.extra=null);A.mode=Cr;case Cr:if(A.flags&1024&&(I=A.length,I>a&&(I=a),I&&(A.head&&(Q=A.head.extra_len-A.length,A.head.extra||(A.head.extra=new Array(A.head.extra_len)),sA(A.head.extra,n,i,I,Q)),A.flags&512&&(A.check=tA(A.check,n,I,i)),a-=I,i+=I,A.length-=I),A.length))break A;A.length=0,A.mode=Qr;case Qr:if(A.flags&2048){if(a===0)break A;I=0;do Q=n[i+I++],A.head&&Q&&A.length<65536&&(A.head.name+=String.fromCharCode(Q));while(Q&&I<a);if(A.flags&512&&(A.check=tA(A.check,n,I,i)),a-=I,i+=I,Q)break A}else A.head&&(A.head.name=null);A.length=0,A.mode=fr;case fr:if(A.flags&4096){if(a===0)break A;I=0;do Q=n[i+I++],A.head&&Q&&A.length<65536&&(A.head.comment+=String.fromCharCode(Q));while(Q&&I<a);if(A.flags&512&&(A.check=tA(A.check,n,I,i)),a-=I,i+=I,Q)break A}else A.head&&(A.head.comment=null);A.mode=Br;case Br:if(A.flags&512){for(;g<16;){if(a===0)break A;a--,s+=n[i++]<<g,g+=8}if(s!==(A.check&65535)){t.msg="header crc mismatch",A.mode=O;break}s=0,g=0}A.head&&(A.head.hcrc=A.flags>>9&1,A.head.done=!0),t.adler=A.check=0,A.mode=fA;break;case Er:for(;g<32;){if(a===0)break A;a--,s+=n[i++]<<g,g+=8}t.adler=A.check=xr(s),s=0,g=0,A.mode=be;case be:if(A.havedict===0)return t.next_out=o,t.avail_out=c,t.next_in=i,t.avail_in=a,A.hold=s,A.bits=g,yo;t.adler=A.check=1,A.mode=fA;case fA:if(e===ko||e===ke)break A;case wt:if(A.last){s>>>=g&7,g-=g&7,A.mode=kt;break}for(;g<3;){if(a===0)break A;a--,s+=n[i++]<<g,g+=8}switch(A.last=s&1,s>>>=1,g-=1,s&3){case 0:A.mode=lr;break;case 1:if(_o(A),A.mode=Ne,e===ke){s>>>=2,g-=2;break A}break;case 2:A.mode=hr;break;case 3:t.msg="invalid block type",A.mode=O}s>>>=2,g-=2;break;case lr:for(s>>>=g&7,g-=g&7;g<32;){if(a===0)break A;a--,s+=n[i++]<<g,g+=8}if((s&65535)!==(s>>>16^65535)){t.msg="invalid stored block lengths",A.mode=O;break}if(A.length=s&65535,s=0,g=0,A.mode=mt,e===ke)break A;case mt:A.mode=dr;case dr:if(I=A.length,I){if(I>a&&(I=a),I>c&&(I=c),I===0)break A;sA(r,n,i,I,o),a-=I,i+=I,c-=I,o+=I,A.length-=I;break}A.mode=fA;break;case hr:for(;g<14;){if(a===0)break A;a--,s+=n[i++]<<g,g+=8}if(A.nlen=(s&31)+257,s>>>=5,g-=5,A.ndist=(s&31)+1,s>>>=5,g-=5,A.ncode=(s&15)+4,s>>>=4,g-=4,A.nlen>286||A.ndist>30){t.msg="too many length or distance symbols",A.mode=O;break}A.have=0,A.mode=ur;case ur:for(;A.have<A.ncode;){for(;g<3;){if(a===0)break A;a--,s+=n[i++]<<g,g+=8}A.lens[Y[A.have++]]=s&7,s>>>=3,g-=3}for(;A.have<19;)A.lens[Y[A.have++]]=0;if(A.lencode=A.lendyn,A.lenbits=7,N={bits:A.lenbits},y=DA(mo,A.lens,0,19,A.lencode,0,A.work,N),A.lenbits=N.bits,y){t.msg="invalid code lengths set",A.mode=O;break}A.have=0,A.mode=pr;case pr:for(;A.have<A.nlen+A.ndist;){for(;l=A.lencode[s&(1<<A.lenbits)-1],w=l>>>24,d=l>>>16&255,m=l&65535,!(w<=g);){if(a===0)break A;a--,s+=n[i++]<<g,g+=8}if(m<16)s>>>=w,g-=w,A.lens[A.have++]=m;else{if(m===16){for(M=w+2;g<M;){if(a===0)break A;a--,s+=n[i++]<<g,g+=8}if(s>>>=w,g-=w,A.have===0){t.msg="invalid bit length repeat",A.mode=O;break}Q=A.lens[A.have-1],I=3+(s&3),s>>>=2,g-=2}else if(m===17){for(M=w+3;g<M;){if(a===0)break A;a--,s+=n[i++]<<g,g+=8}s>>>=w,g-=w,Q=0,I=3+(s&7),s>>>=3,g-=3}else{for(M=w+7;g<M;){if(a===0)break A;a--,s+=n[i++]<<g,g+=8}s>>>=w,g-=w,Q=0,I=11+(s&127),s>>>=7,g-=7}if(A.have+I>A.nlen+A.ndist){t.msg="invalid bit length repeat",A.mode=O;break}for(;I--;)A.lens[A.have++]=Q}}if(A.mode===O)break;if(A.lens[256]===0){t.msg="invalid code -- missing end-of-block",A.mode=O;break}if(A.lenbits=9,N={bits:A.lenbits},y=DA(vr,A.lens,0,A.nlen,A.lencode,0,A.work,N),A.lenbits=N.bits,y){t.msg="invalid literal/lengths set",A.mode=O;break}if(A.distbits=6,A.distcode=A.distdyn,N={bits:A.distbits},y=DA(Fr,A.lens,A.nlen,A.ndist,A.distcode,0,A.work,N),A.distbits=N.bits,y){t.msg="invalid distances set",A.mode=O;break}if(A.mode=Ne,e===ke)break A;case Ne:A.mode=ye;case ye:if(a>=6&&c>=258){t.next_out=o,t.avail_out=c,t.next_in=i,t.avail_in=a,A.hold=s,A.bits=g,ut(t,f),o=t.next_out,r=t.output,c=t.avail_out,i=t.next_in,n=t.input,a=t.avail_in,s=A.hold,g=A.bits,A.mode===fA&&(A.back=-1);break}for(A.back=0;l=A.lencode[s&(1<<A.lenbits)-1],w=l>>>24,d=l>>>16&255,m=l&65535,!(w<=g);){if(a===0)break A;a--,s+=n[i++]<<g,g+=8}if(d&&(d&240)===0){for(C=w,D=d,h=m;l=A.lencode[h+((s&(1<<C+D)-1)>>C)],w=l>>>24,d=l>>>16&255,m=l&65535,!(C+w<=g);){if(a===0)break A;a--,s+=n[i++]<<g,g+=8}s>>>=C,g-=C,A.back+=C}if(s>>>=w,g-=w,A.back+=w,A.length=m,d===0){A.mode=yr;break}if(d&32){A.back=-1,A.mode=fA;break}if(d&64){t.msg="invalid literal/length code",A.mode=O;break}A.extra=d&15,A.mode=wr;case wr:if(A.extra){for(M=A.extra;g<M;){if(a===0)break A;a--,s+=n[i++]<<g,g+=8}A.length+=s&(1<<A.extra)-1,s>>>=A.extra,g-=A.extra,A.back+=A.extra}A.was=A.length,A.mode=mr;case mr:for(;l=A.distcode[s&(1<<A.distbits)-1],w=l>>>24,d=l>>>16&255,m=l&65535,!(w<=g);){if(a===0)break A;a--,s+=n[i++]<<g,g+=8}if((d&240)===0){for(C=w,D=d,h=m;l=A.distcode[h+((s&(1<<C+D)-1)>>C)],w=l>>>24,d=l>>>16&255,m=l&65535,!(C+w<=g);){if(a===0)break A;a--,s+=n[i++]<<g,g+=8}s>>>=C,g-=C,A.back+=C}if(s>>>=w,g-=w,A.back+=w,d&64){t.msg="invalid distance code",A.mode=O;break}A.offset=m,A.extra=d&15,A.mode=kr;case kr:if(A.extra){for(M=A.extra;g<M;){if(a===0)break A;a--,s+=n[i++]<<g,g+=8}A.offset+=s&(1<<A.extra)-1,s>>>=A.extra,g-=A.extra,A.back+=A.extra}if(A.offset>A.dmax){t.msg="invalid distance too far back",A.mode=O;break}A.mode=Nr;case Nr:if(c===0)break A;if(I=f-c,A.offset>I){if(I=A.offset-I,I>A.whave&&A.sane){t.msg="invalid distance too far back",A.mode=O;break}I>A.wnext?(I-=A.wnext,E=A.wsize-I):E=A.wnext-I,I>A.length&&(I=A.length),p=A.window}else p=r,E=o-A.offset,I=A.length;I>c&&(I=c),c-=I,A.length-=I;do r[o++]=p[E++];while(--I);A.length===0&&(A.mode=ye);break;case yr:if(c===0)break A;r[o++]=A.length,c--,A.mode=ye;break;case kt:if(A.wrap){for(;g<32;){if(a===0)break A;a--,s|=n[i++]<<g,g+=8}if(f-=c,t.total_out+=f,A.total+=f,f&&(t.adler=A.check=A.flags?tA(A.check,r,f,o-f):ie(A.check,r,f,o-f)),f=c,(A.flags?s:xr(s))!==A.check){t.msg="incorrect data check",A.mode=O;break}s=0,g=0}A.mode=br;case br:if(A.wrap&&A.flags){for(;g<32;){if(a===0)break A;a--,s+=n[i++]<<g,g+=8}if(s!==(A.total&4294967295)){t.msg="incorrect length check",A.mode=O;break}s=0,g=0}A.mode=Dr;case Dr:y=No;break A;case O:y=Rr;break A;case Dt:return bt;case Do:default:return nA}return t.next_out=o,t.avail_out=c,t.next_in=i,t.avail_in=a,A.hold=s,A.bits=g,(A.wsize||f!==t.avail_out&&A.mode<O&&(A.mode<kt||e!==or))&&Lr(t,t.output,t.next_out,f-t.avail_out)?(A.mode=Dt,bt):(B-=t.avail_in,f-=t.avail_out,t.total_in+=B,t.total_out+=f,A.total+=f,A.wrap&&f&&(t.adler=A.check=A.flags?tA(A.check,r,f,t.next_out-f):ie(A.check,r,f,t.next_out-f)),t.data_type=A.bits+(A.last?64:0)+(A.mode===fA?128:0)+(A.mode===Ne||A.mode===mt?256:0),(B===0&&f===0||e===or)&&y===xA&&(y=bo),y)}function Gr(t){if(!t||!t.state)return nA;var e=t.state;return e.window&&(e.window=null),t.state=null,xA}function Ur(t,e){var A;return!t||!t.state||(A=t.state,(A.wrap&2)===0)?nA:(A.head=e,e.done=!1,xA)}function xt(t,e){var A=e.length,n,r,i;return!t||!t.state||(n=t.state,n.wrap!==0&&n.mode!==be)?nA:n.mode===be&&(r=1,r=ie(r,e,A,0),r!==n.check)?Rr:(i=Lr(t,e,A,A),i?(n.mode=Dt,bt):(n.havedict=1,xA))}var De={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 St(){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 vt=Object.prototype.toString,Ft=class t{constructor(e){if(!(this instanceof t))return new t(e);this.options=zn({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 St,this.strm.avail_out=0;var n=_r(this.strm,A.windowBits);if(n!==hA)throw new Error(De[n]);if(this.header=new ht,Ur(this.strm,this.header),A.dictionary&&(typeof A.dictionary=="string"?A.dictionary=dt(A.dictionary):vt.call(A.dictionary)==="[object ArrayBuffer]"&&(A.dictionary=new Uint8Array(A.dictionary)),A.raw&&(n=xt(this.strm,A.dictionary),n!==hA)))throw new Error(De[n])}push(e,A){var n=this.strm,r=this.options.chunkSize,i=this.options.dictionary,o,a,c,s,g,B,f=!1;if(this.ended)return!1;a=A===~~A?A:A===!0?ee:Bt,typeof e=="string"?n.input=Vn(e):vt.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=QA(r),n.next_out=0,n.avail_out=r),o=Jr(n,Bt),o===Pn&&i&&(typeof i=="string"?B=dt(i):vt.call(i)==="[object ArrayBuffer]"?B=new Uint8Array(i):B=i,o=xt(this.strm,B)),o===Xn&&f===!0&&(o=hA,f=!1),o!==te&&o!==hA)return this.onEnd(o),this.ended=!0,!1;n.next_out&&(n.avail_out===0||o===te||n.avail_in===0&&(a===ee||a===Et))&&(this.options.to==="string"?(c=Ar(n.output,n.next_out),s=n.next_out-c,g=$n(n.output,c),n.next_out=s,n.avail_out=r-s,s&&sA(n.output,n.output,c,s,0),this.onData(g)):this.onData(we(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!==te);return o===te&&(a=ee),a===ee?(o=Gr(this.strm),this.onEnd(o),this.ended=!0,o===hA):(a===Et&&(this.onEnd(hA),n.avail_out=0),!0)}onData(e){this.chunks.push(e)}onEnd(e){e===hA&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=pe(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg}};function Lo(t,e){var A=new Ft(e);if(A.push(t,!0),A.err)throw A.msg||De[A.err];return A.result}var Yr=Lo;function Rt(t,e,A){let n=[],r=0,i=e;for(;r+26<=t.length&&!(t[r]!==31||t[r+1]!==139||t[r+2]!==8||t[r+3]!==4||t[r+10]!==6||t[r+12]!==66||t[r+13]!==67);){let o=(t[r+16]|t[r+17]<<8)+1;if(o<26||r+o>t.length)break;let a=r+o-8,c=(t[a+4]|t[a+5]<<8|t[a+6]<<16|t[a+7]<<24)>>>0;if(n.push({inputOffset:r,compressedSize:o,decompressedSize:c,filePosition:i}),i>=A)break;r+=o,i+=o}return n}function Hr(t){let e=0;for(let r of t)e+=r.length;let A=new Uint8Array(e),n=0;for(let r of t)A.set(r,n),n+=r.length;return A}var pA={};pA.d=(t,e)=>{if(Array.isArray(e))for(var A=0;A<e.length;){var n=e[A++],r=e[A++];pA.o(t,n)?r===0&&A++:r===0?Object.defineProperty(t,n,{enumerable:!0,value:e[A++]}):Object.defineProperty(t,n,{enumerable:!0,get:r})}else for(var n in e)pA.o(e,n)&&!pA.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})};pA.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);pA.r=t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var _t={};pA.r(_t);pA.d(_t,{ChunkSliceResult:()=>ZA,__wbg_Error_92b29b0548f8b746:()=>Go,__wbg___wbindgen_throw_344f42d3211c4765:()=>Uo,__wbg_set_wasm:()=>jr,decompress_all:()=>qr,decompress_chunk_slice:()=>Or});var Jo="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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",ZA=class t{static __wrap(e){let A=Object.create(t.prototype);return A.__wbg_ptr=e,Kr.register(A,A.__wbg_ptr,A),A}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,Kr.unregister(this),e}free(){let e=this.__destroy_into_raw();q.__wbg_chunksliceresult_free(e,0)}take_buffer(){try{let r=q.__wbindgen_add_to_stack_pointer(-16);q.chunksliceresult_take_buffer(r,this.__wbg_ptr);var e=AA().getInt32(r+0,!0),A=AA().getInt32(r+4,!0),n=Zr(e,A).slice();return q.__wbindgen_export(e,A*1,1),n}finally{q.__wbindgen_add_to_stack_pointer(16)}}take_cpositions(){try{let r=q.__wbindgen_add_to_stack_pointer(-16);q.chunksliceresult_take_cpositions(r,this.__wbg_ptr);var e=AA().getInt32(r+0,!0),A=AA().getInt32(r+4,!0),n=Tr(e,A).slice();return q.__wbindgen_export(e,A*8,8),n}finally{q.__wbindgen_add_to_stack_pointer(16)}}take_dpositions(){try{let r=q.__wbindgen_add_to_stack_pointer(-16);q.chunksliceresult_take_dpositions(r,this.__wbg_ptr);var e=AA().getInt32(r+0,!0),A=AA().getInt32(r+4,!0),n=Tr(e,A).slice();return q.__wbindgen_export(e,A*8,8),n}finally{q.__wbindgen_add_to_stack_pointer(16)}}};Symbol.dispose&&(ZA.prototype[Symbol.dispose]=ZA.prototype.free);function qr(t){try{let o=q.__wbindgen_add_to_stack_pointer(-16),a=Xr(t,q.__wbindgen_export2),c=Jt;q.decompress_all(o,a,c);var e=AA().getInt32(o+0,!0),A=AA().getInt32(o+4,!0),n=AA().getInt32(o+8,!0),r=AA().getInt32(o+12,!0);if(r)throw zr(n);var i=Zr(e,A).slice();return q.__wbindgen_export(e,A*1,1),i}finally{q.__wbindgen_add_to_stack_pointer(16)}}function Or(t,e,A,n,r){try{let c=q.__wbindgen_add_to_stack_pointer(-16),s=Xr(t,q.__wbindgen_export2),g=Jt;q.decompress_chunk_slice(c,s,g,e,A,n,r);var i=AA().getInt32(c+0,!0),o=AA().getInt32(c+4,!0),a=AA().getInt32(c+8,!0);if(a)throw zr(o);return ZA.__wrap(i)}finally{q.__wbindgen_add_to_stack_pointer(16)}}function Go(t,e){let A=Error(Pr(t,e));return Yo(A)}function Uo(t,e){throw new Error(Pr(t,e))}var Kr=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(t=>q.__wbg_chunksliceresult_free(t,1));function Yo(t){oe===BA.length&&BA.push(BA.length+1);let e=oe;return oe=BA[e],BA[e]=t,e}function Ho(t){t<1028||(BA[t]=oe,oe=t)}function Tr(t,e){return t=t>>>0,Ko().subarray(t/8,t/8+e)}function Zr(t,e){return t=t>>>0,Lt().subarray(t/1,t/1+e)}var OA=null;function AA(){return(OA===null||OA.buffer.detached===!0||OA.buffer.detached===void 0&&OA.buffer!==q.memory.buffer)&&(OA=new DataView(q.memory.buffer)),OA}var xe=null;function Ko(){return(xe===null||xe.byteLength===0)&&(xe=new Float64Array(q.memory.buffer)),xe}function Pr(t,e){return Oo(t>>>0,e)}var Se=null;function Lt(){return(Se===null||Se.byteLength===0)&&(Se=new Uint8Array(q.memory.buffer)),Se}function To(t){return BA[t]}var BA=new Array(1024).fill(void 0);BA.push(void 0,null,!0,!1);var oe=BA.length;function Xr(t,e){let A=e(t.length*1,1)>>>0;return Lt().set(t,A/1),Jt=t.length,A}function zr(t){let e=To(t);return Ho(t),e}var Fe=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});Fe.decode();var qo=2146435072,Mt=0;function Oo(t,e){return Mt+=e,Mt>=qo&&(Fe=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),Fe.decode(),Mt=e),Fe.decode(Lt().subarray(t,t+e).slice())}var Jt=0,q;function jr(t){q=t}var SA=null,ve=null;async function Wr(){return SA||(ve||(ve=(async()=>{let e=await(await fetch(Jo)).arrayBuffer(),{instance:A}=await WebAssembly.instantiate(e,{"./bgzf_wasm_bg.js":_t});return SA=A.exports,jr(SA),SA})().catch(t=>{throw ve=null,t})),ve)}async function Vr(t){return SA||await Wr(),qr(t)}async function $r(t,e,A,n,r){SA||await Wr();let i=Or(t,e,A,n,r),o=i.take_buffer(),a=i.take_cpositions(),c=i.take_dpositions();return i.free(),{buffer:o,cpositions:a,dpositions:c}}var Zo=26;function ei(t){return t[0]===31&&t[1]===139}function Po(t){return t.length>=Zo&&ei(t)&&t[2]===8&&t[3]===4&&t[10]===6&&t[12]===66&&t[13]===67}function ti(t){return t instanceof Error?t.message:`${t}`}async function Ai(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 Yr(t,void 0)}function ni(t){return ti(t).includes("invalid gzip header")?new Error("problem decompressing block: incorrect gzip header check",{cause:t}):t}async function ae(t){if(t.length===0)return new Uint8Array(0);if(!Po(t)){if(ei(t))return Ai(t);throw new Error("problem decompressing block: not a valid bgzf or gzip block")}try{return await Vr(t)}catch(e){if(ti(e).includes("invalid bgzf header"))return Ai(t);throw ni(e)}}function ri(t,e,A,n){let r=[],i=[],o=[],a=A.dataPosition;for(let c=0;c<t.length;c++){let s=t[c],g=e[c],B=g.filePosition>=n.blockPosition;r.push(g.filePosition),i.push(a);let f=c===0?A.dataPosition:0,I=B?Math.min(n.dataPosition+1,s.length):s.length;if(f<I&&o.push(s.subarray(f,I)),a+=s.length-f,B){r.push(g.filePosition+g.compressedSize),i.push(a);break}}return{slices:o,cpositions:Float64Array.from(r),dpositions:Float64Array.from(i)}}function Xo(t,e,A,n){let{slices:r,cpositions:i,dpositions:o}=ri(t,e,A,n);return{buffer:Hr(r),cpositions:i,dpositions:o}}function zo(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 Gt(t,e,A){let{minv:n,maxv:r}=e;if(A){let c=Rt(t,n.blockPosition,r.blockPosition);if(ii(c)>=Ut){let s=await A.decompressBlocks(t,c),{slices:g,cpositions:B,dpositions:f}=ri(s.blocks,c,n,r);return{segments:zo(g),cpositions:B,dpositions:f}}}let{buffer:i,cpositions:o,dpositions:a}=await oi(t,e);return{segments:[i],cpositions:o,dpositions:a}}var Ut=4e5;function ii(t){let e=0;for(let A of t)e+=A.decompressedSize;return e}async function oi(t,e,A){let{minv:n,maxv:r}=e;if(A){let i=Rt(t,n.blockPosition,r.blockPosition);if(ii(i)>=Ut){let o=await A.decompressBlocks(t,i);return Xo(o.blocks,i,n,r)}}try{let i=await $r(t,n.blockPosition,n.dataPosition,r.blockPosition,r.dataPosition);return{buffer:i.buffer,cpositions:i.cpositions,dpositions:i.dpositions}}catch(i){throw ni(i)}}function vA(t){if(t?.aborted)throw Yt(t)}function Yt(t){let e=t.reason;return e===void 0?new DOMException("This operation was aborted","AbortError"):e}function ai(t){return typeof t?.addEventListener=="function"}var wA=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:r=a=>String(a),idleTimeoutMs:i=0,budget:o}={}){this.fill=e,this.limit=A,this.shared=o&&{budget:o,membership:o.register(this)},this.sizeOf=n,this.toCacheKey=r,this.idleTimeoutMs=i>0&&Number.isFinite(i)?i:void 0}get size(){return this.entries.size}get totalSize(){return this.total}get maxSize(){return this.limit}set maxSize(e){this.limit=e,this.evict()}waiterCount(e){return this.entries.get(this.toCacheKey(e))?.pending?.signals.size??0}async get(e,A,n){vA(A);let r=this.toCacheKey(e),i=this.entries.get(r);i&&this.isDoomed(i)&&(this.release(r),i=void 0),i?this.touch(r,i):i=this.start(r,e,n),i.pending&&this.join(i.pending,A);try{return await this.settleFor(i,A)}finally{vA(A)}}settleFor(e,A){if(!e.pending||!ai(A))return e.promise;let n,r=new Promise((o,a)=>{n=a}),i=()=>{n(Yt(A))};return A.addEventListener("abort",i,{once:!0}),Promise.race([e.promise,r]).finally(()=>{A.removeEventListener("abort",i)})}getIfCached(e){let A=this.toCacheKey(e),n=this.entries.get(A);if(n){if(this.isDoomed(n)){this.release(A);return}return this.touch(A,n),n.promise}}has(e){let A=this.entries.get(this.toCacheKey(e));return A!==void 0&&!this.isDoomed(A)}delete(e){this.release(this.toCacheKey(e))}clear(){this.entries.clear(),this.shared?.budget.charge(this.shared.membership,-this.total),this.total=0,this.settledCount=0,this.stopSweep()}touch(e,A){this.entries.delete(e),this.entries.set(e,A),A.lastTouched=Date.now(),A.seq=this.stamp()}stamp(){return this.shared?.budget.nextSeq()??0}isDoomed(e){return e.pending?.controller.signal.aborted===!0}sweepIdle(){let e=this.idleTimeoutMs;if(e===void 0)return;let A=Date.now()-e;for(let[n,r]of this.entries)!r.pending&&r.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),r=setInterval(()=>{let i=n.deref();i?i.sweepIdle():clearInterval(r)},A);this.sweepTimer=r,r.unref?.()}stopSweep(){this.sweepTimer!==void 0&&(clearInterval(this.sweepTimer),this.sweepTimer=void 0)}start(e,A,n){let r=n??(this.fill&&(s=>this.fill(A,s)));if(!r)throw new Error("SharedReadCache needs a fill, either on the cache or on the get() call");let i={signals:new Map,pinned:!1,controller:new AbortController},o={promise:Promise.resolve(r(i.controller.signal)),pending:i,size:0,lastTouched:Date.now(),seq:this.stamp()};this.entries.set(e,o);let a=()=>this.entries.get(e)===o,c=()=>{for(let[s,g]of i.signals)s.removeEventListener("abort",g);o.pending=void 0};return o.promise.then(s=>{let g=a()?this.weigh(s):void 0,B=a();c(),B&&(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()},()=>{a()&&this.release(e),c()}),o}weigh(e){try{let A=this.sizeOf(e);return Number.isFinite(A)&&A>=0?A:void 0}catch{return}}join(e,A){if(!ai(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 Re(t){return t.bytes?t.bytes():new Uint8Array(await t.arrayBuffer())}async function si(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?Ht(t,A):Re(t)}function gi(t){return typeof t=="string"?{encoding:t,opts:{}}:{encoding:t?.encoding,opts:t??{}}}function ci(t){let e=/\/(\d+)$/.exec(t??"")?.[1];return e===void 0?void 0:parseInt(e,10)}function jo(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 Wo=50;async function Ht(t,e){let A=jo(t),n=t.body;if(!n||A===void 0){let c=await Re(t);return e(c.byteLength,A??c.byteLength),c}let r=n.getReader(),i=new Uint8Array(A),o=0,a=Date.now();e(0,A);for(let c=await r.read();!c.done;c=await r.read()){if(o+c.value.byteLength>i.length){let g=new Uint8Array(Math.max(o+c.value.byteLength,i.length*2));g.set(i.subarray(0,o)),i=g}i.set(c.value,o),o+=c.value.byteLength;let s=Date.now();s-a>=Wo&&(a=s,e(o,A))}return e(o,A),o===i.length?i:i.slice(0,o)}function Vo(...t){let e=new Map;for(let A of t)for(let[n,r]of Object.entries(A??{}))e.set(n.toLowerCase(),[n,r]);return Object.fromEntries(e.values())}function Kt(t){let e=t.body;typeof e?.cancel=="function"&&e.cancel().catch(()=>{})}function Ii(t){return Number.isSafeInteger(t)&&t>=0}function $o(t){return typeof t=="object"&&t!==null&&"name"in t&&t.name==="TypeError"}function Aa(t){return(typeof t=="object"&&t!==null&&"message"in t&&typeof t.message=="string"?t.message:`${t}`).replace(/\.$/,"")}var EA=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:Vo(this.baseHeaders,e.headers,A),...n?{signal:n}:{}}}async fetch(e,A){let n=i=>$o(i)&&!A?.signal?.aborted?new Error(`${Aa(i)} fetching ${e}`,{cause:i}):i,r;try{r=await this.fetchImplementation(e,A)}catch(i){if(`${i}`.includes("Failed to fetch")){console.warn(`generic-filehandle: refetching ${e} to attempt to work around chrome CORS header caching bug`);try{r=await this.fetchImplementation(e,{...A,cache:"reload"})}catch(o){throw n(o)}}else throw n(i)}return r}async read(e,A,n={}){if(!Ii(e)||!Ii(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 r=await this.fetch(this.url,this.buildRequest(n,{range:`bytes=${A}-${A+e-1}`}));if(r.status===416)return Kt(r),new Uint8Array(0);if(this.checkOk(r),r.status===200&&A===0||r.status===206){let i=ci(r.headers.get("content-range"));i!==void 0&&(this._stat={size:i});let o=n.onProgress?await Ht(r,n.onProgress):await Re(r);return!this._stat&&r.status===200&&(this._stat={size:o.byteLength}),o.byteLength<=e?o:o.slice(0,e)}throw Kt(r),new Error(r.status===200?`${this.url} fetch returned status 200, expected 206`:`HTTP ${r.status} fetching ${this.url}`)}checkOk(e){if(!e.ok)throw Kt(e),new Error(`HTTP ${e.status} fetching ${this.url}`)}async readFile(e){let{encoding:A,opts:n}=gi(e),r=await this.fetch(this.url,this.buildRequest(n));this.checkOk(r);let i=await this.readFileBody(r,A,n.onProgress);return r.status===200&&typeof i!="string"&&(this._stat={size:i.byteLength}),i}readFileBody(e,A,n){return si(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 FA=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 gA=class{minv;maxv;bin;endPosition;constructor(e,A,n,r=A.blockPosition+65536){this.minv=e,this.maxv=A,this.bin=n,this.endPosition=r}toString(){return`${this.minv.toString()}..${this.maxv.toString()} (bin ${this.bin}, fetchedSize ${this.fetchedSize()})`}fetchedSize(){return this.endPosition-this.minv.blockPosition}};function Tt(t,e){if(!(e>0))throw new TypeError(`\`${t}\` must be a number greater than 0`)}var se=class{#A=new Map;#e=new Map;#t;#r;#i;constructor(e){let A=e.maxAge??Number.POSITIVE_INFINITY;Tt("maxSize",e.maxSize),Tt("maxAge",A),this.#t=e.maxSize,this.#r=A,this.#i=e.onEviction}#o(e){let A=this.#i;if(A)for(let[n,r]of e)A(n,r.value)}#n(e,A){return A.expiry!==void 0&&A.expiry<=Date.now()?(this.#i?.(e,A.value),this.delete(e),!0):!1}#s(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)}}#c(e){this.#e=new Map(e),this.#A=new Map}*#a(){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.#s(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.#r}={}){let r={value:A,expiry:n===Number.POSITIVE_INFINITY?void 0:Date.now()+n};return this.#A.has(e)?this.#A.set(e,r):this.#g(e,r),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.#s(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){Tt("maxSize",e);let A=[...this.#a()],n=A.length-e;n<0?(this.#A=new Map(A),this.#e=new Map):(this.#o(A.slice(0,n)),this.#c(A.slice(n))),this.#t=e}evict(e=1){if(!(e>0))return;let A=[...this.#a()],n=Math.trunc(Math.min(e,A.length-1));n>0&&(this.#o(A.slice(0,n)),this.#c(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.#r}*entriesAscending(){for(let[e,A]of this.#a())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,r]of this)e.call(A,r,n,this)}get[Symbol.toStringTag](){return"QuickLRU"}toString(){return`QuickLRU(${this.size}/${this.maxSize})`}[Symbol.for("nodejs.util.inspect.custom")](){return this.toString()}};function Ci(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 PA=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 mA(t,e=0){return new PA(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 Me(t,e){let A=t.length;if(A===0)return t;let n;if(e){let a=e.blockPosition,c=e.dataPosition;n=[];for(let s=0;s<A;s++){let g=t[s];(g.maxv.blockPosition-a||g.maxv.dataPosition-c)>0&&n.push(g)}if(n.length===0)return n}else n=t;n.sort((a,c)=>{let s=a.minv.blockPosition-c.minv.blockPosition;return s===0?a.minv.dataPosition-c.minv.dataPosition:s});let r=[n[0]],i=n[0].minv.blockPosition,o=n[0].maxv.blockPosition;for(let a=1;a<n.length;a++){let c=n[a],s=c.minv.blockPosition,g=c.maxv.blockPosition;if(s-o<65e3&&g-i<5e6){let B=r.at(-1);(g-o||c.maxv.dataPosition-B.maxv.dataPosition)>0&&(r[r.length-1]=new gA(B.minv,c.maxv,B.bin,c.endPosition),o=g)}else r.push(c),i=s,o=g}return ea(r)}function ea(t){let e=[t[0]];for(let A=1;A<t.length;A++){let n=t[A],r=e.at(-1).maxv;if((n.minv.blockPosition-r.blockPosition||n.minv.dataPosition-r.dataPosition)>=0){e.push(n);continue}(n.maxv.blockPosition-r.blockPosition||n.maxv.dataPosition-r.dataPosition)>0&&e.push(new gA(r,n.maxv,n.bin,n.endPosition))}return e}function _e(t,e=[]){let A=[...e];for(let n of t)A.push(n.minv.blockPosition,n.maxv.blockPosition);A.sort((n,r)=>n-r);for(let n of t){let r=n.maxv.blockPosition,i=0,o=A.length;for(;i<o;){let a=i+o>>>1;A[a]>r?o=a:i=a+1}i<A.length&&(n.endPosition=Math.min(n.endPosition,A[i]))}}function Le(t,e,A,n){let r=n?n.blockPosition:1/0,i=n?n.dataPosition:0,o=!1;for(let a=0;a<A;a++){let c=e+a*8,s=t[c+7]*1099511627776+t[c+6]*4294967296+t[c+5]*16777216+t[c+4]*65536+t[c+3]*256+t[c+2],g=t[c+1]<<8|t[c];(s<r||s===r&&g<i)&&(r=s,i=g,o=!0)}return o?new PA(r,i):n}function ta(t){let e=new TextDecoder("utf-8"),A=[],n={},r=0,i=0;for(;i<t.length;){let o=t.indexOf(0,i);if(o===-1)break;if(o>i){let a=e.decode(t.subarray(i,o));A[r]=a,n[a]=r}i=o+1,r++}return{refNameToId:n,refIdToName:A}}var na={0:"generic",1:"SAM",2:"VCF",3:"GAF"};function Je(t,e){let A=new DataView(t.buffer,t.byteOffset,t.byteLength),n=A.getInt32(e,!0),r=n&65536?"zero-based-half-open":"1-based-closed",i=na[n&15];if(!i)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)},a=A.getInt32(e+16,!0),c=a?String.fromCharCode(a):void 0,s=A.getInt32(e+20,!0),g=A.getInt32(e+24,!0),{refIdToName:B,refNameToId:f}=ta(t.subarray(e+28,e+28+g));return{refIdToName:B,refNameToId:f,skipLines:s,metaChar:c,columnNumbers:o,format:i,coordinateType:r}}function Ge(t,e){return{lineCount:Ci(t,e)}}function Ue(t,e=5){let A=new se({maxSize:e});return n=>{let r=A.get(n);if(r!==void 0)return r;let i=t(n);return i!==void 0&&A.set(n,i),i}}function Qi(t){let e=0;for(let r of t)e+=r.length;let A=new Uint8Array(e),n=0;for(let r of t)A.set(r,n),n+=r.length;return A}var fi=10;function qt(t,e){let A=0,n,r=0;for(let i of t){let o=0;if(n){let s=i.indexOf(fi);if(s===-1){n=Qi([n,i]),A+=i.length;continue}if(e(Qi([n,i.subarray(0,s+1)]),r))return!0;o=s+1,n=void 0}let a=i.lastIndexOf(fi);if(a>=o&&e(i.subarray(o,a+1),A+o))return!0;let c=Math.max(o,a+1);c<i.length&&(n=i.slice(c),r=A+c),A+=i.length}return!1}function ra(t,e,A,n){if(e>2**(A+n*3))return;let r=(8**(n+1)-1)/7,i=(8**n-1)/7+Math.floor((e-1)/2**A)+1;for(i>=r&&(i=0);;){for(;i%8===1;)i=(i-1)/8;if(i===0)return;let o=t[i];if(o?.length){let a=o[0].minv;for(let c=1;c<o.length;c++){let s=o[c].minv;s.compareTo(a)<0&&(a=s)}return a}i++}}function Bi(t,e){return t.format==="GAF"?0:t.refNameToId[e]}var RA=class{filehandle;parseCache=new wA({});constructor({filehandle:e}){this.filehandle=e}async readIndexBytes(e){let A=await this.filehandle.readFile({signal:e.signal,onProgress:e.onProgress}),n=await ae(A);return{bytes:n,dataView:new DataView(n.buffer,n.byteOffset,n.byteLength)}}async lineCount(e,A={}){let n=await this.parse(A),r=Bi(n,e);return r===void 0?-1:n.indices(r)?.stats?.lineCount??-1}async getMetadata(e={}){let{indices:A,...n}=await this.parse(e);return n}async blocksForRange(e,A,n,r={}){let i=await this.parse(r),o=Bi(i,e);if(o===void 0)return[];let a=i.indices(o);if(!a)return[];i.format==="GAF"&&(A=Math.max(A-1,0));let c=[];for(let[B,f]of this.reg2bins(A,n,i))for(let I=B;I<=f;I++){let E=a.binIndex[I];if(E)for(let p of E)c.push(p)}let s=Me(c,this.lowestOffset(a,A,i)),g=ra(a.binIndex,n,i.minShift,i.depth);if(g){let B=s.length;for(;B>0&&s[B-1].minv.compareTo(g)>=0;)B--;s.length=B}return s}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 ia=21582659,oa=38359875;function Ei(t,e){return t*2**e}function Ot(t,e){return Math.floor(t/2**e)}var MA=class extends RA{async _parse(e={}){let{bytes:A,dataView:n}=await this.readIndexBytes(e),r=n.getUint32(0,!0),i;if(r===ia)i=1;else if(r===oa)i=2;else throw new Error(`Not a CSI file (magic=${r})`);let o=n.getInt32(4,!0),a=n.getInt32(8,!0),c=(8**(a+1)-1)/7,s=2**(o+a*3),g=n.getInt32(12,!0),B=g>=28&&(n.getInt32(16,!0)&15)===3;if(g<30&&!B)throw new Error("CSI index has no tabix header, so it names no references; it may be a BAM or BCF index");let f=Je(A,16),I=n.getInt32(16+g,!0),E=16+g+4,p,l=[];for(let d=0;d<I;d++){l.push(E);let m=n.getInt32(E,!0);E+=4;for(let C=0;C<m;C++){let D=n.getUint32(E,!0);if(E+=4,D>c)E+=44;else{p=Le(A,E,1,p),E+=8;let h=n.getInt32(E,!0);E+=4+16*h}}}function w(d){let m=l[d];if(m===void 0)return;let C=m,D=n.getInt32(C,!0);C+=4;let h={},Q={},y;for(let x=0;x<D;x++){let N=n.getUint32(C,!0);if(C+=4,N>c)y=Ge(A,C+28),C+=44;else{Q[N]=mA(A,C),C+=8;let M=n.getInt32(C,!0);C+=4;let Y=Array.from({length:M});for(let u=0;u<M;u++)Y[u]=new gA(mA(A,C),mA(A,C+8),N),C+=16;h[N]=Y}}return _e(Object.values(h).flat()),{binIndex:h,loffsets:Q,stats:y}}return{...f,csi:!0,refCount:I,maxBlockSize:65536,firstDataLine:p,csiVersion:i,indices:Ue(w),minShift:o,depth:a,maxBinNumber:c,maxRefLength:s}}lowestOffset(e,A,{minShift:n,depth:r}){let{loffsets:i}=e,o;if(i){let a=(Ei(1,3*r)-1)/7+Ot(Math.max(A,0),n);for(;o===void 0&&a>0;)if(o=i[a],o===void 0){let c=Math.floor((a-1)/8),s=c*8+1;a=a>s?a-1:c}o??=i[0]}return o}reg2bins(e,A,{minShift:n,depth:r,maxBinNumber:i}){e=Math.max(e,0);let o=2**(n+r*3);A>o&&(A=o),A-=1;let a=0,c=0,s=n+r*3,g=[];for(;a<=r;s-=3,c+=Ei(1,a*3),a+=1){let B=c+Ot(e,s),f=c+Ot(A,s);if(f-B+g.length>i)throw new Error(`query ${e}-${A} is too large for current binning scheme (shift ${n}, depth ${r}), try a smaller query or a coarser index binning scheme`);g.push([B,f])}return g}};var aa=21578324,Zt=5,Pt=14,Ye=2**(Pt+Zt*3);function li(t){return Math.min(Math.max(t,0),Ye)}var lA=class extends RA{reg2bins(e,A){e>Ye&&console.warn("querying outside of possible tabix range");let n=li(e),r=Math.min(A,Ye)-1,i=[];return n<=r&&i.push([0,0],[1+(n>>26),1+(r>>26)],[9+(n>>23),9+(r>>23)],[73+(n>>20),73+(r>>20)],[585+(n>>17),585+(r>>17)],[4681+(n>>14),4681+(r>>14)]),i}lowestOffset(e,A){let n=e.linearIndex;return n?.[Math.min(li(A)>>Pt,n.length-1)]}async _parse(e={}){let{bytes:A,dataView:n}=await this.readIndexBytes(e);if(n.getUint32(0,!0)!==aa)throw new Error("Not a TBI file");let r=n.getUint32(4,!0),i=((1<<(Zt+1)*3)-1)/7,{refNameToId:o,refIdToName:a,coordinateType:c,format:s,columnNumbers:g,metaChar:B,skipLines:f}=Je(A,8),E=36+n.getInt32(32,!0),p,l=[];for(let d=0;d<r;d++){l.push(E);let m=n.getInt32(E,!0);E+=4;for(let D=0;D<m;D++){let h=n.getUint32(E,!0);E+=4;let Q=n.getInt32(E,!0);if(E+=4,h>i+1)throw new Error("tabix index contains too many bins, please use a CSI index");E+=16*Q}let C=n.getInt32(E,!0);E+=4,p=Le(A,E,C,p),E+=8*C}function w(d){let m=l[d];if(m===void 0)return;let C=m,D=n.getInt32(C,!0);C+=4;let h={},Q;for(let N=0;N<D;N++){let M=n.getUint32(C,!0);if(C+=4,M>i+1)throw new Error("tabix index contains too many bins, please use a CSI index");if(M===i+1){let Y=n.getInt32(C,!0);C+=4,Y===2&&(Q=Ge(A,C+16)),C+=16*Y}else{let Y=n.getInt32(C,!0);C+=4;let u=Array.from({length:Y});for(let k=0;k<Y;k++)u[k]=new gA(mA(A,C),mA(A,C+8),M),C+=16;h[M]=u}}let y=n.getInt32(C,!0);C+=4;let x=Array.from({length:y});for(let N=0;N<y;N++)x[N]=mA(A,C),C+=8;return _e(Object.values(h).flat(),x.map(N=>N.blockPosition)),{binIndex:h,linearIndex:x,stats:Q}}return{indices:Ue(w),metaChar:B,minShift:Pt,depth:Zt,maxBinNumber:i,maxRefLength:Ye,skipLines:f,firstDataLine:p,columnNumbers:g,coordinateType:c,format:s,refIdToName:a,refNameToId:o,maxBlockSize:65536}}};var Xt=9,Ke=10,ui=13,sa=59,ga=60,ca=62,Ia=6,Ca=1024*2**20,Qa=180*1e3;function fa(t,e,A){if(t)return t;if(e)return new FA(e);if(A)return new EA(A);throw new TypeError("must provide either filehandle, path, or url")}function Ba({tbiFilehandle:t,csiFilehandle:e,tbiPath:A,csiPath:n,tbiUrl:r,csiUrl:i,path:o,url:a}){if(t)return new lA({filehandle:t});if(e)return new MA({filehandle:e});if(A)return new lA({filehandle:new FA(A)});if(n)return new MA({filehandle:new FA(n)});if(i)return new MA({filehandle:new EA(i)});if(r)return new lA({filehandle:new EA(r)});if(o)return new lA({filehandle:new FA(`${o}.tbi`)});if(a)return new lA({filehandle:new EA(`${a}.tbi`)});throw new TypeError("must provide one of tbiFilehandle, tbiPath, csiFilehandle, csiPath, tbiUrl, csiUrl")}function pi(t,e,A,n,r){return t[A]*256+(n-e[A])+r+1}function Ea(t,e,A,n,r,i,o){let a=n-A,c=e+a,s=0;if(t[r]===46)return c;let g=r;for(let B=r;B<=i;B++)if(B===i||t[B]===sa){let f=B-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=He(t,g+4,B);I>e&&(c=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&&(s=da(t,g+6,B,n+1,o));g=B+1}return Math.max(c,e+s)}var di=44;function la(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 r=t[e+1],i=t[e+2],o=t[e+3];return r===67&&i===78&&o===86||r===68&&i===69&&o===76||r===68&&i===85&&o===80||r===73&&i===78&&o===86}function da(t,e,A,n,r){let i=0,o=e,a=n;for(;o<A&&a<r;){let c=t.indexOf(di,o);(c===-1||c>A)&&(c=A);let s=t.indexOf(di,a);if((s===-1||s>r)&&(s=r),la(t,a,s)){let g=He(t,t[o]===45?o+1:o,c);g>i&&(i=g)}o=c+1,a=s+1}return i}var wi=new TextDecoder;function hi(t,e){let A=-1,n=e.charCodeAt(0);for(let r=0,i=t.length;r<i;r++){let o=t[r];if(r===A+1&&o!==n)break;o===Ke&&(A=r)}return t.subarray(0,A+1)}function ha(t,e){let A=0;for(let n=0;n<e;n++){let r=t.indexOf(Ke,A);if(r===-1){A=t.length;break}A=r+1}return wi.decode(t.subarray(0,A)).split(/\r?\n/).slice(0,e)}function He(t,e,A){let n=0;for(let r=e;r<A;r++){let i=t[r];if(i>=48&&i<=57)n=n*10+(i-48);else break}return n}function ua(t,e,A,n,r,{start:i,end:o,pathCol:a,metaCharCode:c,decoder:s,callback:g}){let B=0,f=0;for(;B<t.length;){let I=t.indexOf(Ke,B);if(I===-1)break;let E=B;B=I+1;let p=E+e+r;for(;f<n.length&&p>=n[f];)f++;if(t[E]===c)continue;let l=E;for(let h=1;h<a;h++){let Q=t.indexOf(Xt,l);if(Q===-1||Q>=I){l=I;break}l=Q+1}let w=t[l];if(w!==ca&&w!==ga)continue;let d=t.indexOf(Xt,l);(d===-1||d>I)&&(d=I);let m=1/0,C=-1,D=l;for(;D<d;){let h=0,Q=D+1;for(;Q<d;Q++){let y=t[Q]-48;if(y<0||y>9)break;h=h*10+y}h<m&&(m=h),h>C&&(C=h),D=Q}if(m>=o)return!0;if(C>=i){let h=t[I-1]===ui?I-1:I;g(s.decode(t.subarray(E,h)),pi(A,n,f,E+e,r),m,C+1)}}return!1}var XA=class{filehandle;index;chunkCache;headerCache=new wA({});bgzfWorkerPool;constructor({path:e,filehandle:A,url:n,tbiPath:r,tbiUrl:i,tbiFilehandle:o,csiPath:a,csiUrl:c,csiFilehandle:s,chunkCacheSize:g=Ca,chunkCacheIdleTimeoutMs:B=Qa,chunkCacheBudget:f,bgzfWorkerPool:I}){this.bgzfWorkerPool=I,this.filehandle=fa(A,e,n),this.index=Ba({tbiFilehandle:o,csiFilehandle:s,tbiPath:r,csiPath:a,tbiUrl:i,csiUrl:c,path:e,url:n}),this.chunkCache=new wA({maxSize:g,sizeOf:E=>{let p=0;for(let l of E.segments)p+=l.byteLength;return p},cacheKey:E=>E.toString(),idleTimeoutMs:B,budget:f,fill:(E,p)=>this.readChunk(E,{signal:p})})}clearChunkCache(){this.chunkCache.clear()}async bytesForRegions(e,A={}){let n=[];for(let{refName:i,start:o,end:a}of e){let c=await this.index.blocksForRange(i,o,a,A);for(let s of c)n.push(s)}let r=0;for(let i of Me(n))r+=i.fetchedSize();return r}async getLines(e,A,n,r){let i,o={},a,c;typeof r=="function"?a=r:(o=r,a=r.lineCallback,i=r.signal,c=r.onProgress);let s=await this.index.getMetadata(o),g=A??0,B=n??s.maxRefLength;if(g>B)throw new TypeError("invalid start and end coordinates. start must be less than or equal to end");if(g===B)return;let f=await this.index.blocksForRange(e,g,B,o),I=s.format==="VCF",E=s.columnNumbers.ref||0,p=s.columnNumbers.start||0,l=I?8:s.columnNumbers.end||0,w=Math.max(E,p,l),d=s.metaChar?.charCodeAt(0),m=s.coordinateType==="1-based-closed"?-1:0,C=new TextEncoder,D=new TextDecoder,h=C.encode(e),Q=new Int32Array(w+1),y=s.format==="GAF"?{start:g,end:B,pathCol:p,metaCharCode:d,decoder:D,callback:a}:void 0,x=0;for(let k of f)x+=k.fetchedSize();let N=0;c?.(0,x);let M=1,Y=[],u=k=>{for(;Y.length<Math.min(k,f.length);){let R=f[Y.length],L=this.chunkCache.get(R,i);L.catch(()=>{}),Y.push(L)}};u(1);for(let k=0,R=f.length;k<R;k++){let L=f[k],{segments:b,cpositions:v,dpositions:F}=await Y[k];N+=L.fetchedSize(),c?.(N,x);let U=L.minv.dataPosition;if(y){if(qt(b,(K,G)=>ua(K,G,v,F,U,y)))return}else if(qt(b,(K,G)=>{let S=0,_=0;for(;S<K.length;){let J=K.indexOf(Ke,S);if(J===-1)break;let T=S+G+U;for(;_<F.length&&T>=F[_];)_++;if(d!==void 0&&K[S]===d){S=J+1;continue}Q[0]=S-1;for(let z=0;z<w;z++){let H=Q[z],X=H<J?K.indexOf(Xt,H+1):-1;Q[z+1]=X===-1||X>=J?J:X}let P=Q[E-1]+1,eA=Q[E]-P;if(eA!==h.length){S=J+1;continue}let cA=!0;for(let z=0;z<eA;z++)if(K[P+z]!==h[z]){cA=!1;break}if(!cA){S=J+1;continue}let j=He(K,Q[p-1]+1,Q[p])+m;if(j>=B)return!0;let V;if(l===0||l===p?V=j+1:I?V=Ea(K,j,Q[3]+1,Q[4],Q[l-1]+1,Q[l],Q[5]):V=He(K,Q[l-1]+1,Q[l]),V>g){let z=K[J-1]===ui?J-1:J,H=D.decode(K.subarray(S,z));a(H,pi(v,F,_,S+G,U),j,V)}S=J+1}return!1}))return;M=Math.min(M*2,Ia),u(k+1+M)}}async getMetadata(e={}){return this.index.getMetadata(e)}async readHeaderBytes(e){let{firstDataLine:A,maxBlockSize:n}=await this.getMetadata(e),r=(A?.blockPosition??0)+n,i=await this.filehandle.read(r,0,e);return ae(i)}async parseHeader(e){let{metaChar:A,skipLines:n=0}=await this.getMetadata(e),r=await this.readHeaderBytes(e);return{header:wi.decode(A?hi(r,A):r),skippedLines:n>0?ha(r,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?hi(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);vA(A.signal);let r=await this.bgzfWorkerPool;return Gt(n,e,r)}};var pa=t=>({type:"fileLocation",defaultValue:{uri:t,locationType:"UriLocation"}}),qg=(t,e="")=>jt(t,{indexType:{model:Wt.enumeration("IndexType",["TBI","CSI"]),type:"stringEnum",defaultValue:"TBI"},location:pa(e)});function wa(t,e,A){return{indexType:A?"CSI":"TBI",location:{uri:`${t}.${A?"csi":"tbi"}`,baseUri:e}}}function Og(t){let{walksUri:e,baseUri:A,csi:n}=t;if(typeof e!="string")return t;let r=`${e}.walks.bed.gz`;return{...t,walksLocation:{uri:r,baseUri:A},walksIndex:wa(r,A,n)}}function Zg(t,e,A){let n=t.pluginManager;return new XA({filehandle:Vt(t.getConf(e),n),...$t(t.getConf([...A,"location"]),t.getConf([...A,"indexType"]),n)})}function ma(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 mi=class{constructor(e,A){this.file=e;this.adapter=A;this.lookup=en({setup:async e=>WA(await this.names(e))})}async names(e){return(await this.file.getReferenceSequenceNames(e)).filter(n=>!n.includes("~"))}async assemblyRefNames(e={}){let A=await this.names(e),n=ge(this.adapter,e.assemblyName),r=A.filter(i=>Te(i,n)).map(i=>zt(i));return r.length>0?[...new Set(r)]:A}async resolve(e,A){let n=await this.lookup(A);return VA(n,ge(this.adapter,e.assemblyName),e.refName)}async resolveMapped(e,A){let n=await this.resolve(e,A);if(n===void 0&&e.assemblyName){let r=await this.names(A),i=ge(this.adapter,e.assemblyName);if(r.every(o=>o.includes("#"))&&!r.some(o=>Te(o,i)))throw new Error(ma(e))}return n}async resolveForCut(e,A){let n=await this.resolveMapped(e,A);if(n===void 0)throw new Error(`This graph has nothing on ${e.assemblyName} ${e.refName}`);return n}async regionBytes(e,A={},n=async(r,i)=>i.start){let r=[];for(let i of e){let o=await this.resolve(i,A);o!==void 0&&r.push({refName:o,start:await n(o,i),end:i.end})}return Zn(this.file,r,A)}};export{ae as a,ka as b,en as c,oA as d,qe as e,UA as f,NA as g,Si as h,We as i,Ui as j,ot as k,Ee as l,iA as m,le as n,Wi as o,Ln as p,Ao as q,eo as r,de as s,ao as t,It as u,go as v,Qo as w,as as x,pa as y,qg as z,wa as A,Og as B,Zg as C,mi as D};
3
- //# sourceMappingURL=chunk-DG3E6BSX.js.map