jbrowse-plugin-graphgenomeviewer 4.0.11 → 4.0.13

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 (62) hide show
  1. package/README.md +22 -4
  2. package/dist/chunks/GbzBaseSyntenyAdapter-Y5NBXK7P.js +8 -0
  3. package/dist/chunks/{GbzBaseSyntenyAdapter-URQ4Z2JB.js.map → GbzBaseSyntenyAdapter-Y5NBXK7P.js.map} +4 -4
  4. package/dist/chunks/{GraphGenomeView-44GJL4RA.js → GraphGenomeView-TTQEJJQD.js} +2 -2
  5. package/dist/chunks/{GraphGenomeView-44GJL4RA.js.map → GraphGenomeView-TTQEJJQD.js.map} +1 -1
  6. package/dist/chunks/GraphTrackSettingsDialog-3A2PKZRI.js +4 -0
  7. package/dist/chunks/{GraphTrackSettingsDialog-LZITZ3VD.js.map → GraphTrackSettingsDialog-3A2PKZRI.js.map} +1 -1
  8. package/dist/chunks/LinearGraphDisplay-MJ5XZFE5.js +2 -0
  9. package/dist/chunks/{LinearGraphDisplay-BWBXVSEQ.js.map → LinearGraphDisplay-MJ5XZFE5.js.map} +1 -1
  10. package/dist/chunks/{MinigraphBubbleAdapter-QTXGK7DW.js → MinigraphBubbleAdapter-APC7JYOM.js} +2 -2
  11. package/dist/chunks/{RgfaTabixAdapter-O3ERR2GY.js → RgfaTabixAdapter-4E365PXO.js} +2 -2
  12. package/dist/chunks/{chunk-LGGAXAS6.js → chunk-5DP7IXD3.js} +2 -2
  13. package/dist/chunks/chunk-CJ56O2VG.js +2 -0
  14. package/dist/chunks/chunk-CJ56O2VG.js.map +7 -0
  15. package/dist/chunks/chunk-EFVAQ2KM.js +2 -0
  16. package/dist/chunks/chunk-EFVAQ2KM.js.map +7 -0
  17. package/dist/chunks/chunk-IFRDWMQ2.js +2 -0
  18. package/dist/chunks/chunk-IFRDWMQ2.js.map +7 -0
  19. package/dist/chunks/chunk-JAQ2RQAE.js +2 -0
  20. package/dist/chunks/{chunk-QRVREF7H.js.map → chunk-JAQ2RQAE.js.map} +4 -4
  21. package/dist/chunks/{chunk-WETM2CD7.js → chunk-LA7MQS33.js} +2 -2
  22. package/dist/chunks/chunk-M4YEAXSR.js +2 -0
  23. package/dist/chunks/chunk-M4YEAXSR.js.map +7 -0
  24. package/dist/chunks/chunk-XDOIZTY6.js +4 -0
  25. package/dist/chunks/chunk-XDOIZTY6.js.map +7 -0
  26. package/dist/jbrowse-plugin-graphgenomeviewer.esm.js +2 -2
  27. package/dist/jbrowse-plugin-graphgenomeviewer.esm.js.map +4 -4
  28. package/package.json +4 -4
  29. package/src/GbzBaseSyntenyAdapter/configSchema.ts +3 -4
  30. package/src/GraphGenomeView/components/GraphCanvas.tsx +4 -11
  31. package/src/GraphGenomeView/components/TubeMapOverlay.tsx +117 -4
  32. package/src/GraphGenomeView/components/WalkRowsOverlay.tsx +261 -44
  33. package/src/GraphGenomeView/components/referenceRampCss.test.ts +27 -0
  34. package/src/GraphGenomeView/components/referenceRampCss.ts +39 -0
  35. package/src/GraphGenomeView/genes/genes.test.ts +9 -2
  36. package/src/GraphGenomeView/host.test.ts +25 -2
  37. package/src/GraphGenomeView/host.ts +9 -7
  38. package/src/GraphGenomeView/model.test.ts +383 -4
  39. package/src/GraphGenomeView/model.ts +413 -88
  40. package/src/GraphGenomeView/repeats/repeatFeatures.test.ts +75 -0
  41. package/src/GraphGenomeView/repeats/repeatFeatures.ts +156 -8
  42. package/src/GraphGenomeView/repeats/walkCalls.test.ts +18 -0
  43. package/src/GraphGenomeView/repeats/walkCalls.ts +35 -18
  44. package/src/GraphGenomeView/subgraphLoad.test.ts +1 -0
  45. package/src/LinearGraphDisplay/LinearGraphDisplay.test.ts +165 -6
  46. package/src/LinearGraphDisplay/model.ts +61 -1
  47. package/src/gaf/gafFile.test.ts +18 -0
  48. package/src/version.ts +1 -1
  49. package/dist/chunks/GbzBaseSyntenyAdapter-URQ4Z2JB.js +0 -8
  50. package/dist/chunks/GraphTrackSettingsDialog-LZITZ3VD.js +0 -4
  51. package/dist/chunks/LinearGraphDisplay-BWBXVSEQ.js +0 -2
  52. package/dist/chunks/chunk-ADEBM7AA.js +0 -2
  53. package/dist/chunks/chunk-ADEBM7AA.js.map +0 -7
  54. package/dist/chunks/chunk-MWSRAF5B.js +0 -4
  55. package/dist/chunks/chunk-MWSRAF5B.js.map +0 -7
  56. package/dist/chunks/chunk-QRVREF7H.js +0 -2
  57. package/dist/chunks/chunk-ZYQJBNS5.js +0 -2
  58. package/dist/chunks/chunk-ZYQJBNS5.js.map +0 -7
  59. /package/dist/chunks/{MinigraphBubbleAdapter-QTXGK7DW.js.map → MinigraphBubbleAdapter-APC7JYOM.js.map} +0 -0
  60. /package/dist/chunks/{RgfaTabixAdapter-O3ERR2GY.js.map → RgfaTabixAdapter-4E365PXO.js.map} +0 -0
  61. /package/dist/chunks/{chunk-LGGAXAS6.js.map → chunk-5DP7IXD3.js.map} +0 -0
  62. /package/dist/chunks/{chunk-WETM2CD7.js.map → chunk-LA7MQS33.js.map} +0 -0
@@ -0,0 +1,2 @@
1
+ function s(e){return e.stable!==void 0}function d(e){return e.stable?.rank===0}function i(e){return e.stable!==void 0&&e.stable.rank>0}function c(e){return e.nodes.filter(d)}function f(e){let t={};for(let n of e)t[n.id]=[{x:n.stable.start,y:0},{x:n.stable.start+n.length,y:0}];return t}function p(e,t){let n=0,o=e.length;for(;n<o;){let r=n+o>>1;e[r].stable.start<t?n=r+1:o=r}return n}function a(e){let t=1/0,n=-1/0;for(let o of e)t=Math.min(t,o.stable.start),n=Math.max(n,o.stable.start+o.length);return n-t}function h(e,t){return t&&t.end>t.start?t.end-t.start:a(e)}export{s as a,d as b,i as c,c as d,f as e,p as f,a as g,h};
2
+ //# sourceMappingURL=chunk-EFVAQ2KM.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../packages/core/src/anchoredNodes.ts"],
4
+ "sourcesContent": ["import type { StableCoordinate } from './gfa-core/index'\nimport type { Graph, GraphNode, NodeSegment } from './types'\n\n// A node whose stable coordinate is known to be present. rGFA states SN/SO/SR\n// on every segment and a path walk derives the same for every segment a path\n// visits (pathAnchoring.ts), so the anchored layouts and the allele projection\n// all work with nodes whose `stable` is a fact rather than an optional \u2014\n// narrowing once here keeps them from asserting it at every use.\nexport type AnchoredNode = GraphNode & { stable: StableCoordinate }\n\n// Stable rank: 0 is the reference backbone, higher ranks are the sequence that\n// diverges from it. rGFA counts those up in build order; a path-derived graph\n// has only the one distinction its paths support, on the reference or off it.\nexport const REFERENCE_RANK = 0\n\nexport function isAnchored(node: GraphNode): node is AnchoredNode {\n return node.stable !== undefined\n}\n\n// Narrows to AnchoredNode so `filter` yields nodes whose coordinate is a fact.\n// Only use it on nodes that may be unanchored: negating a type predicate on an\n// AnchoredNode narrows the other branch to `never`, which is not what \"off the\n// backbone\" means. Where a node is already anchored, compare the rank directly.\nexport function isBackbone(node: GraphNode): node is AnchoredNode {\n return node.stable?.rank === REFERENCE_RANK\n}\n\n// Anchored and above rank 0: sequence that diverges from the reference. Not\n// simply `!isBackbone`, which would also admit nodes carrying no coordinate.\nexport function isOffReference(node: GraphNode): node is AnchoredNode {\n return node.stable !== undefined && node.stable.rank > REFERENCE_RANK\n}\n\nexport function backboneNodes(graph: Graph) {\n return graph.nodes.filter(isBackbone)\n}\n\n// The backbone on row 0 at its declared offsets: the x axis of every layout\n// whose x is reference bp.\nexport function backbonePositions(backbone: AnchoredNode[]) {\n const positions: Record<string, NodeSegment[]> = {}\n for (const node of backbone) {\n positions[node.id] = [\n { x: node.stable.start, y: 0 },\n { x: node.stable.start + node.length, y: 0 },\n ]\n }\n return positions\n}\n\n// Index of the first node starting at or after `bp`, in a list sorted by start.\nexport function firstNodeAtOrAfter(nodes: AnchoredNode[], bp: number) {\n let lo = 0\n let hi = nodes.length\n while (lo < hi) {\n const mid = (lo + hi) >> 1\n if (nodes[mid]!.stable.start < bp) {\n lo = mid + 1\n } else {\n hi = mid\n }\n }\n return lo\n}\n\n// bp the backbone covers in this subgraph. Both anchored layouts scale their row\n// spacing and their minimum drawn allele length off it.\n//\n// A fold rather than Math.max(...starts): the subgraph path is capped at 100 kb\n// but a whole-file GFA import is not, and spreading a backbone of more than\n// ~130k segments into an argument list throws RangeError.\nexport function backboneSpan(backbone: AnchoredNode[]) {\n let min = Infinity\n let max = -Infinity\n for (const node of backbone) {\n min = Math.min(min, node.stable.start)\n max = Math.max(max, node.stable.start + node.length)\n }\n return max - min\n}\n\n// The reference interval the drawing is scaled against: the region the cut was\n// made for, when there is one.\n//\n// Not the same as the backbone's own extent, and the difference is not small. A\n// hop reaches the far anchor of a long-range allele, and that anchor is a rank-0\n// segment: in the E. coli pggb graph a 75 bp CFT073 segment bridges K12:997,574\n// and K12:1,004,667, so a 484 bp window's backbone measured 7,395 bp. Everything\n// scaled off that span went with it \u2014 rows 15x too far apart, and an off-\n// reference floor of 111 bp inside a 484 bp window.\n//\n// A whole-file import has no region, and there the measured extent is the only\n// answer available.\nexport function referenceSpan(\n backbone: AnchoredNode[],\n region?: { start: number; end: number },\n) {\n return region && region.end > region.start\n ? region.end - region.start\n : backboneSpan(backbone)\n}\n"],
5
+ "mappings": "AAeO,SAASA,EAAWC,EAAuC,CAChE,OAAOA,EAAK,SAAW,MACzB,CAMO,SAASC,EAAWD,EAAuC,CAChE,OAAOA,EAAK,QAAQ,OAAS,CAC/B,CAIO,SAASE,EAAeF,EAAuC,CACpE,OAAOA,EAAK,SAAW,QAAaA,EAAK,OAAO,KAAO,CACzD,CAEO,SAASG,EAAcC,EAAc,CAC1C,OAAOA,EAAM,MAAM,OAAOH,CAAU,CACtC,CAIO,SAASI,EAAkBC,EAA0B,CAC1D,IAAMC,EAA2C,CAAC,EAClD,QAAWP,KAAQM,EACjBC,EAAUP,EAAK,EAAE,EAAI,CACnB,CAAE,EAAGA,EAAK,OAAO,MAAO,EAAG,CAAE,EAC7B,CAAE,EAAGA,EAAK,OAAO,MAAQA,EAAK,OAAQ,EAAG,CAAE,CAC7C,EAEF,OAAOO,CACT,CAGO,SAASC,EAAmBC,EAAuBC,EAAY,CACpE,IAAIC,EAAK,EACLC,EAAKH,EAAM,OACf,KAAOE,EAAKC,GAAI,CACd,IAAMC,EAAOF,EAAKC,GAAO,EACrBH,EAAMI,CAAG,EAAG,OAAO,MAAQH,EAC7BC,EAAKE,EAAM,EAEXD,EAAKC,CAET,CACA,OAAOF,CACT,CAQO,SAASG,EAAaR,EAA0B,CACrD,IAAIS,EAAM,IACNC,EAAM,KACV,QAAWhB,KAAQM,EACjBS,EAAM,KAAK,IAAIA,EAAKf,EAAK,OAAO,KAAK,EACrCgB,EAAM,KAAK,IAAIA,EAAKhB,EAAK,OAAO,MAAQA,EAAK,MAAM,EAErD,OAAOgB,EAAMD,CACf,CAcO,SAASE,EACdX,EACAY,EACA,CACA,OAAOA,GAAUA,EAAO,IAAMA,EAAO,MACjCA,EAAO,IAAMA,EAAO,MACpBJ,EAAaR,CAAQ,CAC3B",
6
+ "names": ["isAnchored", "node", "isBackbone", "isOffReference", "backboneNodes", "graph", "backbonePositions", "backbone", "positions", "firstNodeAtOrAfter", "nodes", "bp", "lo", "hi", "mid", "backboneSpan", "min", "max", "referenceSpan", "region"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{b as m}from"./chunk-EFVAQ2KM.js";import{a as p,b as d,c}from"./chunk-MUK3KYB4.js";var b=new Map([["hg38","GRCh38"],["hg19","GRCh37"],["hs1","CHM13"],["t2t-chm13","CHM13"],["chm13v2","CHM13"]]);function N(n){return b.get(n.toLowerCase())}var x=new Set(["_gbwt_ref"]);function u(n){let t=n.includes("#")?p(n):void 0;return t===void 0||x.has(t)?void 0:t}function g(n){return d(n)??p(n)}function l(n){let t=new Set((n.anchorPaths??[]).map(e=>e.name));for(let e of n.nodes)e.stable&&t.add(e.stable.refName);let s=new Map;for(let e of t){let o=u(e);o!==void 0&&(s.get(o)??s.set(o,new Set).get(o)).add(g(e))}return s}function h(n,t){let s=new Set(n.map(f=>u(f.refName))),[e]=s;if(s.size!==1||e===void 0)return{contigs:n,prefixes:[],named:!1};let o=new Set(n.map(f=>g(f.refName))),i=[...t.get(e)??[]].every(f=>o.has(f)),r=new Set(n.map(f=>d(f.refName))),[a]=r;return{contigs:n,prefixes:[...i?[e]:[],...r.size===1&&a?[a]:[]],named:!0}}function M(n){let t=new Map;for(let e of n.nodes)if(m(e)){let{refName:o,start:i}=e.stable,r=i+e.length,a=t.get(o);a?(a.start=Math.min(a.start,i),a.end=Math.max(a.end,r)):t.set(o,{refName:o,contig:c(o),start:i,end:r})}let s=[...t.values()];return s.length?h(s,l(n)):void 0}function y(n,t){let s=r=>[r.name,...r.aliases??[]],e=r=>a=>s(a).some(f=>f.toLowerCase()===r.toLowerCase()),o=[...n?.prefixes??[]].reverse(),i=n?.prefixes.find(r=>!r.includes("#"))?.toLowerCase();for(let r of o){let a=t.find(e(r));if(a)return a}return i===void 0?void 0:t.find(r=>s(r).some(a=>N(a)?.toLowerCase()===i))}function B(n,t){let s=l(n);return n.anchorPaths?.find(e=>y(h([{refName:e.name,contig:c(e.name),start:e.start,end:e.start+e.length}],s),[t]))}function S(n){let t=new Set(n),s=new Map;for(let e of t){let o=c(e);s.set(o,s.has(o)?void 0:e)}return e=>t.has(e)?e:s.get(e)}function k(n,t){let s=S(t.contigs.map(e=>e.refName));return n.flatMap(e=>{let o=s(e.refName);return o===void 0?[]:[o===e.refName?e:{...e,refName:o}]})}export{N as a,M as b,y as c,B as d,k as e};
2
+ //# sourceMappingURL=chunk-IFRDWMQ2.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../packages/core/src/reference.ts"],
4
+ "sourcesContent": ["import { isBackbone } from './anchoredNodes'\nimport { panSNContig, panSNHaplotype, panSNSample } from './pansn'\n\nimport type { Graph, PathOrigin } from './types'\n\n// A graph's backbone names the sample it lies on (`GRCh38#0#chr6`), not an\n// assembly, and a bare contig (`chr6`) is in every human assembly at once. A\n// backbone binds to an assembly where its PanSN prefix is that assembly's name,\n// one of its aliases, or its well-known sample. One that names no sample binds\n// only where the host knows the assembly otherwise, as a track's config does.\n\nexport interface BackboneContig {\n // as the graph names it, `GRCh38#0#chr6`\n refName: string\n // as an assembly names it, `chr6`\n contig: string\n start: number\n end: number\n}\n\nexport interface Backbone {\n contigs: BackboneContig[]\n // The PanSN prefixes that name the backbone, sample then haplotype:\n // `GRCh38`, `GRCh38#0`. The sample drops out where the graph walks another\n // haplotype of it, as a diploid's `HG002` names `HG002#1` and `HG002#2`.\n prefixes: string[]\n // Whether the contigs name one real sample: false where every contig is bare\n // (`chr6`) or generic (`_gbwt_ref#0#chr6`), or where the samples differ\n named: boolean\n}\n\nexport interface AssemblyNames {\n name: string\n aliases?: string[]\n}\n\n// The sample a reference assembly's graphs name it by, keyed by the assembly's\n// name in lower case: HPRC writes `CHM13` where UCSC's assembly is `hs1`.\nexport const WELL_KNOWN_SAMPLES: ReadonlyMap<string, string> = new Map([\n ['hg38', 'GRCh38'],\n ['hg19', 'GRCh37'],\n ['hs1', 'CHM13'],\n ['t2t-chm13', 'CHM13'],\n ['chm13v2', 'CHM13'],\n])\n\nexport function wellKnownSample(assemblyName: string) {\n return WELL_KNOWN_SAMPLES.get(assemblyName.toLowerCase())\n}\n\n// vg names a reference path that states no sample `_gbwt_ref`, and gbz-base\n// writes its walk as `W _gbwt_ref 0 chr6`\nconst GENERIC_SAMPLES = new Set(['_gbwt_ref'])\n\nfunction sampleOf(refName: string) {\n const sample = refName.includes('#') ? panSNSample(refName) : undefined\n return sample === undefined || GENERIC_SAMPLES.has(sample)\n ? undefined\n : sample\n}\n\n// `HG002#1`, or the sample of a two-part name, which states no haplotype\nfunction haplotypeOf(refName: string) {\n return panSNHaplotype(refName) ?? panSNSample(refName)\n}\n\n// Each sample's haplotypes among the graph's walks and node refNames\nfunction graphHaplotypes(graph: Graph) {\n const refNames = new Set((graph.anchorPaths ?? []).map(p => p.name))\n for (const node of graph.nodes) {\n if (node.stable) {\n refNames.add(node.stable.refName)\n }\n }\n const bySample = new Map<string, Set<string>>()\n for (const refName of refNames) {\n const sample = sampleOf(refName)\n if (sample !== undefined) {\n const haplotypes =\n bySample.get(sample) ?? bySample.set(sample, new Set()).get(sample)!\n haplotypes.add(haplotypeOf(refName))\n }\n }\n return bySample\n}\n\nfunction backboneFrom(\n contigs: BackboneContig[],\n haplotypes: Map<string, Set<string>>,\n): Backbone {\n const samples = new Set(contigs.map(c => sampleOf(c.refName)))\n const [sample] = samples\n if (samples.size !== 1 || sample === undefined) {\n return { contigs, prefixes: [], named: false }\n }\n const own = new Set(contigs.map(c => haplotypeOf(c.refName)))\n const unique = [...(haplotypes.get(sample) ?? [])].every(h => own.has(h))\n const shared = new Set(contigs.map(c => panSNHaplotype(c.refName)))\n const [haplotype] = shared\n return {\n contigs,\n prefixes: [\n ...(unique ? [sample] : []),\n ...(shared.size === 1 && haplotype ? [haplotype] : []),\n ],\n named: true,\n }\n}\n\n// The rank-0 nodes' refNames and the span each covers\nexport function graphBackbone(graph: Graph): Backbone | undefined {\n const spans = new Map<string, BackboneContig>()\n for (const node of graph.nodes) {\n if (isBackbone(node)) {\n const { refName, start } = node.stable\n const end = start + node.length\n const span = spans.get(refName)\n if (span) {\n span.start = Math.min(span.start, start)\n span.end = Math.max(span.end, end)\n } else {\n spans.set(refName, {\n refName,\n contig: panSNContig(refName),\n start,\n end,\n })\n }\n }\n }\n const contigs = [...spans.values()]\n return contigs.length\n ? backboneFrom(contigs, graphHaplotypes(graph))\n : undefined\n}\n\n// The assembly the backbone's haplotype names by its name or an alias, else\n// the one its sample names, else the one whose well-known sample it is. A\n// backbone with no prefix binds to none.\nexport function backboneAssembly<T extends AssemblyNames>(\n backbone: Backbone | undefined,\n assemblies: T[],\n): T | undefined {\n const names = (a: T) => [a.name, ...(a.aliases ?? [])]\n const naming = (prefix: string) => (a: T) =>\n names(a).some(n => n.toLowerCase() === prefix.toLowerCase())\n const prefixes = [...(backbone?.prefixes ?? [])].reverse()\n const sample = backbone?.prefixes.find(p => !p.includes('#'))?.toLowerCase()\n for (const prefix of prefixes) {\n const assembly = assemblies.find(naming(prefix))\n if (assembly) {\n return assembly\n }\n }\n return sample === undefined\n ? undefined\n : assemblies.find(a =>\n names(a).some(n => wellKnownSample(n)?.toLowerCase() === sample),\n )\n}\n\n// The first of the graph's walks that a backbone along it would bind to\n// `assembly`, for putting x on the assembly a cut was made for\nexport function assemblyWalk(\n graph: Graph,\n assembly: AssemblyNames,\n): PathOrigin | undefined {\n const haplotypes = graphHaplotypes(graph)\n return graph.anchorPaths?.find(walk =>\n backboneAssembly(\n backboneFrom(\n [\n {\n refName: walk.name,\n contig: panSNContig(walk.name),\n start: walk.start,\n end: walk.start + walk.length,\n },\n ],\n haplotypes,\n ),\n [assembly],\n ),\n )\n}\n\n// Which of `refNames` a feature's refName names: the one it equals, else the\n// only one whose contig it is. A contig two refNames share names neither.\nexport function refNameBinding(refNames: Iterable<string>) {\n const exact = new Set(refNames)\n const byContig = new Map<string, string | undefined>()\n for (const refName of exact) {\n const contig = panSNContig(refName)\n byContig.set(contig, byContig.has(contig) ? undefined : refName)\n }\n return (name: string) => (exact.has(name) ? name : byContig.get(name))\n}\n\n// An assembly's features on a backbone that binds to it, each renamed to the\n// backbone's refName for it, so the assembly's `chr6` becomes the graph's\n// `GRCh38#0#chr6`. genePins and tubeMapGenes take only the renamed.\nexport function featuresOnBackbone<T extends { refName: string }>(\n features: readonly T[],\n backbone: Backbone,\n): T[] {\n const bind = refNameBinding(backbone.contigs.map(c => c.refName))\n return features.flatMap(f => {\n const refName = bind(f.refName)\n return refName === undefined\n ? []\n : [refName === f.refName ? f : { ...f, refName }]\n })\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["WELL_KNOWN_SAMPLES", "wellKnownSample", "assemblyName", "GENERIC_SAMPLES", "sampleOf", "refName", "sample", "panSNSample", "haplotypeOf", "panSNHaplotype", "graphHaplotypes", "graph", "refNames", "p", "node", "bySample", "backboneFrom", "contigs", "haplotypes", "samples", "c", "own", "unique", "h", "shared", "haplotype", "graphBackbone", "spans", "isBackbone", "start", "end", "span", "panSNContig", "backboneAssembly", "backbone", "assemblies", "names", "a", "naming", "prefix", "n", "prefixes", "assembly", "assemblyWalk", "walk", "refNameBinding", "exact", "byContig", "contig", "name", "featuresOnBackbone", "features", "bind", "f"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{a as Ze}from"./chunk-FY3BTKY4.js";var mg=Ze((eI,di)=>{di.exports=JBrowseExports["@jbrowse/core/data_adapters/BaseAdapter"]});var Fg=Ze((tI,ui)=>{ui.exports=JBrowseExports["@jbrowse/core/util/rxjs"]});var oe=0;var Qe=2;var kA=4;var eA=0,DA=1,Xe=2;var ze=-5;function ki(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function Oe(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 i in A)ki(A,i)&&(t[i]=A[i])}}return t}function vA(t,e){return t.length===e?t:t.subarray?t.subarray(0,e):(t.length=e,t)}var NA={arraySet:function(t,e,A,i,n){if(e.subarray&&t.subarray){t.set(e.subarray(A,A+i),n);return}for(var g=0;g<i;g++)t[n+g]=e[A+g]},flattenChunks:function(t){var e,A,i,n,g,r;for(i=0,e=0,A=t.length;e<A;e++)i+=t[e].length;for(r=new Uint8Array(i),n=0,e=0,A=t.length;e<A;e++)g=t[e],r.set(g,n),n+=g.length;return r},Buf8:function(t){return new Uint8Array(t)},Buf16:function(t){return new Uint16Array(t)},Buf32:function(t){return new Int32Array(t)}},yA={arraySet:function(t,e,A,i,n){for(var g=0;g<i;g++)t[n+g]=e[A+g]},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)}},fA=()=>{let t=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Int32Array<"u";return fA=()=>t,t},O=(t,e,A,i,n)=>(O=fA()?NA.arraySet:yA.arraySet,O(t,e,A,i,n)),_A=t=>(_A=fA()?NA.flattenChunks:yA.flattenChunks,_A(t)),P=t=>(P=fA()?NA.Buf8:yA.Buf8,P(t)),tA=t=>(tA=fA()?NA.Buf16:yA.Buf16,tA(t)),IA=t=>(IA=fA()?NA.Buf32:yA.Buf32,IA(t));var We=function(){let t=!0;try{String.fromCharCode.apply(null,[0])}catch{t=!1}return We=()=>t,t},Pe=function(){let t=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{t=!1}return Pe=()=>t,t},re=function(t){for(var e=P(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,re=i=>e[i],e[t]};function Ce(t){var e,A,i,n,g,r=t.length,Q=0;for(n=0;n<r;n++)A=t.charCodeAt(n),(A&64512)===55296&&n+1<r&&(i=t.charCodeAt(n+1),(i&64512)===56320&&(A=65536+(A-55296<<10)+(i-56320),n++)),Q+=A<128?1:A<2048?2:A<65536?3:4;for(e=new Uint8Array(Q),g=0,n=0;g<Q;n++)A=t.charCodeAt(n),(A&64512)===55296&&n+1<r&&(i=t.charCodeAt(n+1),(i&64512)===56320&&(A=65536+(A-55296<<10)+(i-56320),n++)),A<128?e[g++]=A:A<2048?(e[g++]=192|A>>>6,e[g++]=128|A&63):A<65536?(e[g++]=224|A>>>12,e[g++]=128|A>>>6&63,e[g++]=128|A&63):(e[g++]=240|A>>>18,e[g++]=128|A>>>12&63,e[g++]=128|A>>>6&63,e[g++]=128|A&63);return e}function Di(t,e){if(e<65534&&(t.subarray&&Pe()||!t.subarray&&We()))return String.fromCharCode.apply(null,vA(t,e));for(var A="",i=0;i<e;i++)A+=String.fromCharCode(t[i]);return A}function je(t){for(var e=new Uint8Array(t.length),A=0,i=e.length;A<i;A++)e[A]=t.charCodeAt(A);return e}function Ve(t,e){var A,i,n,g,r=e||t.length,Q=new Array(r*2);for(i=0,A=0;A<r;){if(n=t[A++],n<128){Q[i++]=n;continue}if(g=re(n),g>4){Q[i++]=65533,A+=g-1;continue}for(n&=g===2?31:g===3?15:7;g>1&&A<r;)n=n<<6|t[A++]&63,g--;if(g>1){Q[i++]=65533;continue}n<65536?Q[i++]=n:(n-=65536,Q[i++]=55296|n>>10&1023,Q[i++]=56320|n&1023)}return Di(Q,i)}function $e(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+re(t[A])>e?A:e}function Be(){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 mA(t,e,A,i){for(var n=t&65535|0,g=t>>>16&65535|0,r=0;A!==0;){r=A>2e3?2e3:A,A-=r;do n=n+e[i++]|0,g=g+n|0;while(--r);n%=65521,g%=65521}return n|g<<16|0}function Ni(){for(var t,e=[],A=0;A<256;A++){t=A;for(var i=0;i<8;i++)t=t&1?3988292384^t>>>1:t>>>1;e[A]=t}return e}var At=function(){let t=Ni();return At=()=>t,t};function H(t,e,A,i){var n=At(),g=i+A;t^=-1;for(var r=i;r<g;r++)t=t>>>8^n[(t^e[r])&255];return t^-1}var LA=30,yi=12;function ae(t,e){var A,i,n,g,r,Q,C,I,o,h,E,a,s,N,k,u,D,w,B,d,y,c,F,m,l;A=t.state,i=t.next_in,m=t.input,n=i+(t.avail_in-5),g=t.next_out,l=t.output,r=g-(e-t.avail_out),Q=g+(t.avail_out-257),C=A.dmax,I=A.wsize,o=A.whave,h=A.wnext,E=A.window,a=A.hold,s=A.bits,N=A.lencode,k=A.distcode,u=(1<<A.lenbits)-1,D=(1<<A.distbits)-1;A:do{s<15&&(a+=m[i++]<<s,s+=8,a+=m[i++]<<s,s+=8),w=N[a&u];e:for(;;){if(B=w>>>24,a>>>=B,s-=B,B=w>>>16&255,B===0)l[g++]=w&65535;else if(B&16){d=w&65535,B&=15,B&&(s<B&&(a+=m[i++]<<s,s+=8),d+=a&(1<<B)-1,a>>>=B,s-=B),s<15&&(a+=m[i++]<<s,s+=8,a+=m[i++]<<s,s+=8),w=k[a&D];t:for(;;){if(B=w>>>24,a>>>=B,s-=B,B=w>>>16&255,B&16){if(y=w&65535,B&=15,s<B&&(a+=m[i++]<<s,s+=8,s<B&&(a+=m[i++]<<s,s+=8)),y+=a&(1<<B)-1,y>C){t.msg="invalid distance too far back",A.mode=LA;break A}if(a>>>=B,s-=B,B=g-r,y>B){if(B=y-B,B>o&&A.sane){t.msg="invalid distance too far back",A.mode=LA;break A}if(c=0,F=E,h===0){if(c+=I-B,B<d){d-=B;do l[g++]=E[c++];while(--B);c=g-y,F=l}}else if(h<B){if(c+=I+h-B,B-=h,B<d){d-=B;do l[g++]=E[c++];while(--B);if(c=0,h<d){B=h,d-=B;do l[g++]=E[c++];while(--B);c=g-y,F=l}}}else if(c+=h-B,B<d){d-=B;do l[g++]=E[c++];while(--B);c=g-y,F=l}for(;d>2;)l[g++]=F[c++],l[g++]=F[c++],l[g++]=F[c++],d-=3;d&&(l[g++]=F[c++],d>1&&(l[g++]=F[c++]))}else{c=g-y;do l[g++]=l[c++],l[g++]=l[c++],l[g++]=l[c++],d-=3;while(d>2);d&&(l[g++]=l[c++],d>1&&(l[g++]=l[c++]))}}else if((B&64)===0){w=k[(w&65535)+(a&(1<<B)-1)];continue t}else{t.msg="invalid distance code",A.mode=LA;break A}break}}else if((B&64)===0){w=N[(w&65535)+(a&(1<<B)-1)];continue e}else if(B&32){A.mode=yi;break A}else{t.msg="invalid literal/length code",A.mode=LA;break A}break}}while(i<n&&g<Q);d=s>>3,i-=d,s-=d<<3,a&=(1<<s)-1,t.next_in=i,t.next_out=g,t.avail_in=i<n?5+(n-i):5-(i-n),t.avail_out=g<Q?257+(Q-g):257-(g-Q),A.hold=a,A.bits=s}var hA=15,et=852,tt=592,it=0,se=1,gt=2,mi=[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],Fi=[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],pi=[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],xi=[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 oA(t,e,A,i,n,g,r,Q){var C=Q.bits,I=0,o=0,h=0,E=0,a=0,s=0,N=0,k=0,u=0,D=0,w,B,d,y,c,F=null,m=0,l,p=tA(hA+1),R=tA(hA+1),M=null,v=0,cA,z,L;for(I=0;I<=hA;I++)p[I]=0;for(o=0;o<i;o++)p[e[A+o]]++;for(a=C,E=hA;E>=1&&p[E]===0;E--);if(a>E&&(a=E),E===0)return n[g++]=1<<24|64<<16|0,n[g++]=1<<24|64<<16|0,Q.bits=1,0;for(h=1;h<E&&p[h]===0;h++);for(a<h&&(a=h),k=1,I=1;I<=hA;I++)if(k<<=1,k-=p[I],k<0)return-1;if(k>0&&(t===it||E!==1))return-1;for(R[1]=0,I=1;I<hA;I++)R[I+1]=R[I]+p[I];for(o=0;o<i;o++)e[A+o]!==0&&(r[R[e[A+o]]++]=o);if(t===it?(F=M=r,l=19):t===se?(F=mi,m-=257,M=Fi,v-=257,l=256):(F=pi,M=xi,l=-1),D=0,o=0,I=h,c=g,s=a,N=0,d=-1,u=1<<a,y=u-1,t===se&&u>et||t===gt&&u>tt)return 1;for(;;){cA=I-N,r[o]<l?(z=0,L=r[o]):r[o]>l?(z=M[v+r[o]],L=F[m+r[o]]):(z=96,L=0),w=1<<I-N,B=1<<s,h=B;do B-=w,n[c+(D>>N)+B]=cA<<24|z<<16|L|0;while(B!==0);for(w=1<<I-1;D&w;)w>>=1;if(w!==0?(D&=w-1,D+=w):D=0,o++,--p[I]===0){if(I===E)break;I=e[A+r[o]]}if(I>a&&(D&y)!==d){for(N===0&&(N=a),c+=h,s=I-N,k=1<<s;s+N<E&&(k-=p[s+N],!(k<=0));)s++,k<<=1;if(u+=1<<s,t===se&&u>et||t===gt&&u>tt)return 1;d=D&y,n[d]=a<<24|s<<16|c-g|0}}return D!==0&&(n[c+D]=I-N<<24|64<<16|0),Q.bits=a,0}var bi=0,bt=1,Jt=2,nt=4,Ji=5,MA=6,QA=0,Si=1,Gi=2,K=-2,St=-3,de=-4,Ri=-5,It=8,Gt=1,ot=2,Qt=3,rt=4,Ct=5,Bt=6,at=7,st=8,Et=9,ct=10,HA=11,j=12,Ee=13,ft=14,ce=15,ht=16,lt=17,dt=18,ut=19,UA=20,YA=21,wt=22,kt=23,Dt=24,Nt=25,yt=26,fe=27,mt=28,Ft=29,S=30,ue=31,_i=32,vi=852,Li=592;function pt(t){return(t>>>24&255)+(t>>>8&65280)+((t&65280)<<8)+((t&255)<<24)}function Mi(){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=tA(320),this.work=tA(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function Ui(t){var e;return!t||!t.state?K:(e=t.state,t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=e.wrap&1),e.mode=Gt,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=IA(vi),e.distcode=e.distdyn=IA(Li),e.sane=1,e.back=-1,QA)}function Yi(t){var e;return!t||!t.state?K:(e=t.state,e.wsize=0,e.whave=0,e.wnext=0,Ui(t))}function Hi(t,e){var A,i;return!t||!t.state||(i=t.state,e<0?(A=0,e=-e):(A=(e>>4)+1,e<48&&(e&=15)),e&&(e<8||e>15))?K:(i.window!==null&&i.wbits!==e&&(i.window=null),i.wrap=A,i.wbits=e,Yi(t))}function Rt(t,e){var A,i;return t?(i=new Mi,t.state=i,i.window=null,A=Hi(t,e),A!==QA&&(t.state=null),A):K}var xt=!0,he,le;function Ki(t){if(xt){var e;for(he=IA(512),le=IA(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(oA(bt,t.lens,0,288,he,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;oA(Jt,t.lens,0,32,le,0,t.work,{bits:5}),xt=!1}t.lencode=he,t.lenbits=9,t.distcode=le,t.distbits=5}function _t(t,e,A,i){var n,g=t.state;return g.window===null&&(g.wsize=1<<g.wbits,g.wnext=0,g.whave=0,g.window=P(g.wsize)),i>=g.wsize?(O(g.window,e,A-g.wsize,g.wsize,0),g.wnext=0,g.whave=g.wsize):(n=g.wsize-g.wnext,n>i&&(n=i),O(g.window,e,A-i,n,g.wnext),i-=n,i?(O(g.window,e,A-i,i,0),g.wnext=i,g.whave=g.wsize):(g.wnext+=n,g.wnext===g.wsize&&(g.wnext=0),g.whave<g.wsize&&(g.whave+=n))),0}function vt(t,e){var A,i,n,g,r,Q,C,I,o,h,E,a,s,N,k=0,u,D,w,B,d,y,c,F,m=P(4),l,p,R=[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 K;A=t.state,A.mode===j&&(A.mode=Ee),r=t.next_out,n=t.output,C=t.avail_out,g=t.next_in,i=t.input,Q=t.avail_in,I=A.hold,o=A.bits,h=Q,E=C,F=QA;A:for(;;)switch(A.mode){case Gt:if(A.wrap===0){A.mode=Ee;break}for(;o<16;){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}if(A.wrap&2&&I===35615){A.check=0,m[0]=I&255,m[1]=I>>>8&255,A.check=H(A.check,m,2,0),I=0,o=0,A.mode=ot;break}if(A.flags=0,A.head&&(A.head.done=!1),!(A.wrap&1)||(((I&255)<<8)+(I>>8))%31){t.msg="incorrect header check",A.mode=S;break}if((I&15)!==It){t.msg="unknown compression method",A.mode=S;break}if(I>>>=4,o-=4,c=(I&15)+8,A.wbits===0)A.wbits=c;else if(c>A.wbits){t.msg="invalid window size",A.mode=S;break}A.dmax=1<<c,t.adler=A.check=1,A.mode=I&512?ct:j,I=0,o=0;break;case ot:for(;o<16;){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}if(A.flags=I,(A.flags&255)!==It){t.msg="unknown compression method",A.mode=S;break}if(A.flags&57344){t.msg="unknown header flags set",A.mode=S;break}A.head&&(A.head.text=I>>8&1),A.flags&512&&(m[0]=I&255,m[1]=I>>>8&255,A.check=H(A.check,m,2,0)),I=0,o=0,A.mode=Qt;case Qt:for(;o<32;){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}A.head&&(A.head.time=I),A.flags&512&&(m[0]=I&255,m[1]=I>>>8&255,m[2]=I>>>16&255,m[3]=I>>>24&255,A.check=H(A.check,m,4,0)),I=0,o=0,A.mode=rt;case rt:for(;o<16;){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}A.head&&(A.head.xflags=I&255,A.head.os=I>>8),A.flags&512&&(m[0]=I&255,m[1]=I>>>8&255,A.check=H(A.check,m,2,0)),I=0,o=0,A.mode=Ct;case Ct:if(A.flags&1024){for(;o<16;){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}A.length=I,A.head&&(A.head.extra_len=I),A.flags&512&&(m[0]=I&255,m[1]=I>>>8&255,A.check=H(A.check,m,2,0)),I=0,o=0}else A.head&&(A.head.extra=null);A.mode=Bt;case Bt:if(A.flags&1024&&(a=A.length,a>Q&&(a=Q),a&&(A.head&&(c=A.head.extra_len-A.length,A.head.extra||(A.head.extra=new Array(A.head.extra_len)),O(A.head.extra,i,g,a,c)),A.flags&512&&(A.check=H(A.check,i,a,g)),Q-=a,g+=a,A.length-=a),A.length))break A;A.length=0,A.mode=at;case at:if(A.flags&2048){if(Q===0)break A;a=0;do c=i[g+a++],A.head&&c&&A.length<65536&&(A.head.name+=String.fromCharCode(c));while(c&&a<Q);if(A.flags&512&&(A.check=H(A.check,i,a,g)),Q-=a,g+=a,c)break A}else A.head&&(A.head.name=null);A.length=0,A.mode=st;case st:if(A.flags&4096){if(Q===0)break A;a=0;do c=i[g+a++],A.head&&c&&A.length<65536&&(A.head.comment+=String.fromCharCode(c));while(c&&a<Q);if(A.flags&512&&(A.check=H(A.check,i,a,g)),Q-=a,g+=a,c)break A}else A.head&&(A.head.comment=null);A.mode=Et;case Et:if(A.flags&512){for(;o<16;){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}if(I!==(A.check&65535)){t.msg="header crc mismatch",A.mode=S;break}I=0,o=0}A.head&&(A.head.hcrc=A.flags>>9&1,A.head.done=!0),t.adler=A.check=0,A.mode=j;break;case ct:for(;o<32;){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}t.adler=A.check=pt(I),I=0,o=0,A.mode=HA;case HA:if(A.havedict===0)return t.next_out=r,t.avail_out=C,t.next_in=g,t.avail_in=Q,A.hold=I,A.bits=o,Gi;t.adler=A.check=1,A.mode=j;case j:if(e===Ji||e===MA)break A;case Ee:if(A.last){I>>>=o&7,o-=o&7,A.mode=fe;break}for(;o<3;){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}switch(A.last=I&1,I>>>=1,o-=1,I&3){case 0:A.mode=ft;break;case 1:if(Ki(A),A.mode=UA,e===MA){I>>>=2,o-=2;break A}break;case 2:A.mode=lt;break;case 3:t.msg="invalid block type",A.mode=S}I>>>=2,o-=2;break;case ft:for(I>>>=o&7,o-=o&7;o<32;){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}if((I&65535)!==(I>>>16^65535)){t.msg="invalid stored block lengths",A.mode=S;break}if(A.length=I&65535,I=0,o=0,A.mode=ce,e===MA)break A;case ce:A.mode=ht;case ht:if(a=A.length,a){if(a>Q&&(a=Q),a>C&&(a=C),a===0)break A;O(n,i,g,a,r),Q-=a,g+=a,C-=a,r+=a,A.length-=a;break}A.mode=j;break;case lt:for(;o<14;){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}if(A.nlen=(I&31)+257,I>>>=5,o-=5,A.ndist=(I&31)+1,I>>>=5,o-=5,A.ncode=(I&15)+4,I>>>=4,o-=4,A.nlen>286||A.ndist>30){t.msg="too many length or distance symbols",A.mode=S;break}A.have=0,A.mode=dt;case dt:for(;A.have<A.ncode;){for(;o<3;){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}A.lens[R[A.have++]]=I&7,I>>>=3,o-=3}for(;A.have<19;)A.lens[R[A.have++]]=0;if(A.lencode=A.lendyn,A.lenbits=7,l={bits:A.lenbits},F=oA(bi,A.lens,0,19,A.lencode,0,A.work,l),A.lenbits=l.bits,F){t.msg="invalid code lengths set",A.mode=S;break}A.have=0,A.mode=ut;case ut:for(;A.have<A.nlen+A.ndist;){for(;k=A.lencode[I&(1<<A.lenbits)-1],u=k>>>24,D=k>>>16&255,w=k&65535,!(u<=o);){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}if(w<16)I>>>=u,o-=u,A.lens[A.have++]=w;else{if(w===16){for(p=u+2;o<p;){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}if(I>>>=u,o-=u,A.have===0){t.msg="invalid bit length repeat",A.mode=S;break}c=A.lens[A.have-1],a=3+(I&3),I>>>=2,o-=2}else if(w===17){for(p=u+3;o<p;){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}I>>>=u,o-=u,c=0,a=3+(I&7),I>>>=3,o-=3}else{for(p=u+7;o<p;){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}I>>>=u,o-=u,c=0,a=11+(I&127),I>>>=7,o-=7}if(A.have+a>A.nlen+A.ndist){t.msg="invalid bit length repeat",A.mode=S;break}for(;a--;)A.lens[A.have++]=c}}if(A.mode===S)break;if(A.lens[256]===0){t.msg="invalid code -- missing end-of-block",A.mode=S;break}if(A.lenbits=9,l={bits:A.lenbits},F=oA(bt,A.lens,0,A.nlen,A.lencode,0,A.work,l),A.lenbits=l.bits,F){t.msg="invalid literal/lengths set",A.mode=S;break}if(A.distbits=6,A.distcode=A.distdyn,l={bits:A.distbits},F=oA(Jt,A.lens,A.nlen,A.ndist,A.distcode,0,A.work,l),A.distbits=l.bits,F){t.msg="invalid distances set",A.mode=S;break}if(A.mode=UA,e===MA)break A;case UA:A.mode=YA;case YA:if(Q>=6&&C>=258){t.next_out=r,t.avail_out=C,t.next_in=g,t.avail_in=Q,A.hold=I,A.bits=o,ae(t,E),r=t.next_out,n=t.output,C=t.avail_out,g=t.next_in,i=t.input,Q=t.avail_in,I=A.hold,o=A.bits,A.mode===j&&(A.back=-1);break}for(A.back=0;k=A.lencode[I&(1<<A.lenbits)-1],u=k>>>24,D=k>>>16&255,w=k&65535,!(u<=o);){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}if(D&&(D&240)===0){for(B=u,d=D,y=w;k=A.lencode[y+((I&(1<<B+d)-1)>>B)],u=k>>>24,D=k>>>16&255,w=k&65535,!(B+u<=o);){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}I>>>=B,o-=B,A.back+=B}if(I>>>=u,o-=u,A.back+=u,A.length=w,D===0){A.mode=yt;break}if(D&32){A.back=-1,A.mode=j;break}if(D&64){t.msg="invalid literal/length code",A.mode=S;break}A.extra=D&15,A.mode=wt;case wt:if(A.extra){for(p=A.extra;o<p;){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}A.length+=I&(1<<A.extra)-1,I>>>=A.extra,o-=A.extra,A.back+=A.extra}A.was=A.length,A.mode=kt;case kt:for(;k=A.distcode[I&(1<<A.distbits)-1],u=k>>>24,D=k>>>16&255,w=k&65535,!(u<=o);){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}if((D&240)===0){for(B=u,d=D,y=w;k=A.distcode[y+((I&(1<<B+d)-1)>>B)],u=k>>>24,D=k>>>16&255,w=k&65535,!(B+u<=o);){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}I>>>=B,o-=B,A.back+=B}if(I>>>=u,o-=u,A.back+=u,D&64){t.msg="invalid distance code",A.mode=S;break}A.offset=w,A.extra=D&15,A.mode=Dt;case Dt:if(A.extra){for(p=A.extra;o<p;){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}A.offset+=I&(1<<A.extra)-1,I>>>=A.extra,o-=A.extra,A.back+=A.extra}if(A.offset>A.dmax){t.msg="invalid distance too far back",A.mode=S;break}A.mode=Nt;case Nt:if(C===0)break A;if(a=E-C,A.offset>a){if(a=A.offset-a,a>A.whave&&A.sane){t.msg="invalid distance too far back",A.mode=S;break}a>A.wnext?(a-=A.wnext,s=A.wsize-a):s=A.wnext-a,a>A.length&&(a=A.length),N=A.window}else N=n,s=r-A.offset,a=A.length;a>C&&(a=C),C-=a,A.length-=a;do n[r++]=N[s++];while(--a);A.length===0&&(A.mode=YA);break;case yt:if(C===0)break A;n[r++]=A.length,C--,A.mode=YA;break;case fe:if(A.wrap){for(;o<32;){if(Q===0)break A;Q--,I|=i[g++]<<o,o+=8}if(E-=C,t.total_out+=E,A.total+=E,E&&(t.adler=A.check=A.flags?H(A.check,n,E,r-E):mA(A.check,n,E,r-E)),E=C,(A.flags?I:pt(I))!==A.check){t.msg="incorrect data check",A.mode=S;break}I=0,o=0}A.mode=mt;case mt:if(A.wrap&&A.flags){for(;o<32;){if(Q===0)break A;Q--,I+=i[g++]<<o,o+=8}if(I!==(A.total&4294967295)){t.msg="incorrect length check",A.mode=S;break}I=0,o=0}A.mode=Ft;case Ft:F=Si;break A;case S:F=St;break A;case ue:return de;case _i:default:return K}return t.next_out=r,t.avail_out=C,t.next_in=g,t.avail_in=Q,A.hold=I,A.bits=o,(A.wsize||E!==t.avail_out&&A.mode<S&&(A.mode<fe||e!==nt))&&_t(t,t.output,t.next_out,E-t.avail_out)?(A.mode=ue,de):(h-=t.avail_in,E-=t.avail_out,t.total_in+=h,t.total_out+=E,A.total+=E,A.wrap&&E&&(t.adler=A.check=A.flags?H(A.check,n,E,t.next_out-E):mA(A.check,n,E,t.next_out-E)),t.data_type=A.bits+(A.last?64:0)+(A.mode===j?128:0)+(A.mode===UA||A.mode===ce?256:0),(h===0&&E===0||e===nt)&&F===QA&&(F=Ri),F)}function Lt(t){if(!t||!t.state)return K;var e=t.state;return e.window&&(e.window=null),t.state=null,QA}function Mt(t,e){var A;return!t||!t.state||(A=t.state,(A.wrap&2)===0)?K:(A.head=e,e.done=!1,QA)}function we(t,e){var A=e.length,i,n,g;return!t||!t.state||(i=t.state,i.wrap!==0&&i.mode!==HA)?K:i.mode===HA&&(n=1,n=mA(n,e,A,0),n!==i.check)?St:(g=_t(t,e,A,A),g?(i.mode=ue,de):(i.havedict=1,QA))}var KA={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 ke(){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 De=Object.prototype.toString,Ne=class t{constructor(e){if(!(this instanceof t))return new t(e);this.options=Oe({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 ke,this.strm.avail_out=0;var i=Rt(this.strm,A.windowBits);if(i!==eA)throw new Error(KA[i]);if(this.header=new Be,Mt(this.strm,this.header),A.dictionary&&(typeof A.dictionary=="string"?A.dictionary=Ce(A.dictionary):De.call(A.dictionary)==="[object ArrayBuffer]"&&(A.dictionary=new Uint8Array(A.dictionary)),A.raw&&(i=we(this.strm,A.dictionary),i!==eA)))throw new Error(KA[i])}push(e,A){var i=this.strm,n=this.options.chunkSize,g=this.options.dictionary,r,Q,C,I,o,h,E=!1;if(this.ended)return!1;Q=A===~~A?A:A===!0?kA:oe,typeof e=="string"?i.input=je(e):De.call(e)==="[object ArrayBuffer]"?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;do{if(i.avail_out===0&&(i.output=P(n),i.next_out=0,i.avail_out=n),r=vt(i,oe),r===Xe&&g&&(typeof g=="string"?h=Ce(g):De.call(g)==="[object ArrayBuffer]"?h=new Uint8Array(g):h=g,r=we(this.strm,h)),r===ze&&E===!0&&(r=eA,E=!1),r!==DA&&r!==eA)return this.onEnd(r),this.ended=!0,!1;i.next_out&&(i.avail_out===0||r===DA||i.avail_in===0&&(Q===kA||Q===Qe))&&(this.options.to==="string"?(C=$e(i.output,i.next_out),I=i.next_out-C,o=Ve(i.output,C),i.next_out=I,i.avail_out=n-I,I&&O(i.output,i.output,C,I,0),this.onData(o)):this.onData(vA(i.output,i.next_out))),i.avail_in===0&&i.avail_out===0&&(E=!0)}while((i.avail_in>0||i.avail_out===0)&&r!==DA);return r===DA&&(Q=kA),Q===kA?(r=Lt(this.strm),this.onEnd(r),this.ended=!0,r===eA):(Q===Qe&&(this.onEnd(eA),i.avail_out=0),!0)}onData(e){this.chunks.push(e)}onEnd(e){e===eA&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=_A(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg}};function qi(t,e){var A=new Ne(e);if(A.push(t,!0),A.err)throw A.msg||KA[A.err];return A.result}var Ut=qi;function Yt(t,e,A){let i=[],n=0,g=e;for(;n+26<=t.length&&!(t[n]!==31||t[n+1]!==139||t[n+2]!==8||t[n+3]!==4||t[n+10]!==6||t[n+12]!==66||t[n+13]!==67);){let r=(t[n+16]|t[n+17]<<8)+1;if(r<26||n+r>t.length)break;let Q=n+r-8,C=(t[Q+4]|t[Q+5]<<8|t[Q+6]<<16|t[Q+7]<<24)>>>0;if(i.push({inputOffset:n,compressedSize:r,decompressedSize:C,filePosition:g}),g>=A)break;n+=r,g+=r}return i}function Ht(t){let e=0;for(let n of t)e+=n.length;let A=new Uint8Array(e),i=0;for(let n of t)A.set(n,i),i+=n.length;return A}var iA={};iA.d=(t,e)=>{if(Array.isArray(e))for(var A=0;A<e.length;){var i=e[A++],n=e[A++];iA.o(t,i)?n===0&&A++:n===0?Object.defineProperty(t,i,{enumerable:!0,value:e[A++]}):Object.defineProperty(t,i,{enumerable:!0,get:n})}else for(var i in e)iA.o(e,i)&&!iA.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})};iA.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);iA.r=t=>{Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var Fe={};iA.r(Fe);iA.d(Fe,{ChunkSliceResult:()=>dA,__wbg_Error_92b29b0548f8b746:()=>Zi,__wbg___wbindgen_throw_344f42d3211c4765:()=>Xi,__wbg_set_wasm:()=>Pt,decompress_all:()=>Tt,decompress_chunk_slice:()=>Zt});var Ti="data:application/wasm;base64,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AghBAUEAEBUACywCAX8BfiMAQRBrIgEkACAAKQIAIQIgASAANgIMIAEgAjcCBCABQQRqEGYACyMBAX8jAEEQayICJAAgAiABNgIMIAIgADYCCCACQQhqEGUACyAAAkAgASgCAEUNACAAQbiXwAA2AgQgACABNgIADwsACx4BAX8CQCAAKAIAIgJFDQAgASACIAAoAgQQTQ8LAAsbAQF/EGogAEEEakEEEFgiASAANgIAIAFBBGoLHgEBfwJAIAAoAgAiAUEBSA0AIAAoAgQgAUEBEFMLCx4AIAAoAgAgACgCBEEAKALomkAiAEEEIAAbEQQAAAsjAQF/AkBBhIrAABAtIgANAEG4icAAQTpB9InAABA4AAsgAAsXAAJAIABBf2pBfk8NACABIABBARBTCwscAQF/AkAgACgCACIBRQ0AIAAoAgQgAUEBEFMLCxcAAkAgAUEJSQ0AIAEgABAODwsgABACCxUAIABBfGoiACAAKAIAQQRqQQQQUwsUAAJAIABFDQAgACABEF8ACxBWAAsRACAAIAFBAXRBAXIgAhAxAAsSAAJAIAFFDQAgACABIAIQUwsLEgAgACABIAIgAyAEQQAgBRADCxUAAkAgAEUNACAAIAAoAqhaEQIACwsaACAAQQApAoSWQDcCCCAAQQApAvyVQDcCAAsaACAAQQApAvSVQDcCCCAAQQApAuyVQDcCAAsWACAAKAIAIAEgAiAAKAIEKAIMEQcACw0AIAAgASACIAMQBw8LFABBACAANgK8mkBBAEEBNgK4mkALEwAgAEG4l8AANgIEIAAgATYCAAsQACABIAAoAgAgACgCBBBNCxAAIAEgACgCACAAKAIEEAoLCwAgACABIAIQKg8LCgAgACABEGkaAAsPACAAQZyVwAAgASACEAwLEQBBkJjAAEEjQaSYwAAQMQALCwAgACMAaiQAIwALCQAgACABEEQPCwkAIAAgARAuDwsJACAAIAEQYQALDABBr4fAAEEbEFoACw0AQcqHwABBzwAQWgALCQAgASAAEDsACwwAIAAgASkCADcDAAsJACABIAAQXQALDQAgAUH8mcAAQRgQCgsIACAAIAEQAAsIACAAIAEQAQsJACAAKAIAEEoLBwAgABA5AAsHACAAEEAACwcAIAAQJgALCwBBAEEBOgDAnkALCQAgAEEANgIACwUAEGsACwMADwsDAAALAgALC74aAgBBgIDAAAuUGkF0dGVtcHRlZCB0byBpbml0aWFsaXplIHRocmVhZC1sb2NhbCB3aGlsZSBpdCBpcyBiZWluZyBkcm9wcGVkFnNsaWNlIGluZGV4IHN0YXJ0cyBhdCDADSBidXQgZW5kcyBhdCDAABJyYW5nZSBzdGFydCBpbmRleCDAIiBvdXQgb2YgcmFuZ2UgZm9yIHNsaWNlIG9mIGxlbmd0aCDAABByYW5nZSBlbmQgaW5kZXggwCIgb3V0IG9mIHJhbmdlIGZvciBzbGljZSBvZiBsZW5ndGggwAAvcnVzdGMvNDhhMjI5Y2VhZWZkNDk4NWM1MDk5MGIxNDExNmI2ZDg1NmFmMDk4NS9saWJyYXJ5L3N0ZC9zcmMvc3lzL3RocmVhZF9sb2NhbC9ub190aHJlYWRzLnJzAC9ydXN0Yy80OGEyMjljZWFlZmQ0OTg1YzUwOTkwYjE0MTE2YjZkODU2YWYwOTg1L2xpYnJhcnkvc3RkL3NyYy9zeXMvc3luYy9yd2xvY2svbm9fdGhyZWFkcy5ycwAvaG9tZS9ydW5uZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi93YXNtLWJpbmRnZW4tMC4yLjEyNi9zcmMvZXh0ZXJucmVmLnJzAC9ydXN0Yy80OGEyMjljZWFlZmQ0OTg1YzUwOTkwYjE0MTE2YjZkODU2YWYwOTg1L2xpYnJhcnkvYWxsb2Mvc3JjL3Jhd192ZWMvbW9kLnJzAC9ydXN0L2RlcHMvZGxtYWxsb2MtMC4yLjEzL3NyYy9kbG1hbGxvYy5ycwAvaG9tZS9ydW5uZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9saWJkZWZsYXRlci0xLjI1LjIvc3JjL2xpYi5ycwAA1gAQAF4AAABrAAAADQAAAMwCEAAKAAAAHAAAACQAAADMAhAACgAAAMIAAAApAAAAzAIQAAoAAAC2AAAAJwAAAMwCEAAKAAAAcQAAABwAAADMAhAACgAAAG0AAABBAAAAZGVjb21wcmVzc2lvbiBmYWlsZWRpbnZhbGlkIGJnemYgaGVhZGVyAMwCEAAKAAAATAAAAD0A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",dA=class t{static __wrap(e){let A=Object.create(t.prototype);return A.__wbg_ptr=e,Kt.register(A,A.__wbg_ptr,A),A}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,Kt.unregister(this),e}free(){let e=this.__destroy_into_raw();x.__wbg_chunksliceresult_free(e,0)}take_buffer(){try{let n=x.__wbindgen_add_to_stack_pointer(-16);x.chunksliceresult_take_buffer(n,this.__wbg_ptr);var e=Y().getInt32(n+0,!0),A=Y().getInt32(n+4,!0),i=Xt(e,A).slice();return x.__wbindgen_export(e,A*1,1),i}finally{x.__wbindgen_add_to_stack_pointer(16)}}take_cpositions(){try{let n=x.__wbindgen_add_to_stack_pointer(-16);x.chunksliceresult_take_cpositions(n,this.__wbg_ptr);var e=Y().getInt32(n+0,!0),A=Y().getInt32(n+4,!0),i=qt(e,A).slice();return x.__wbindgen_export(e,A*8,8),i}finally{x.__wbindgen_add_to_stack_pointer(16)}}take_dpositions(){try{let n=x.__wbindgen_add_to_stack_pointer(-16);x.chunksliceresult_take_dpositions(n,this.__wbg_ptr);var e=Y().getInt32(n+0,!0),A=Y().getInt32(n+4,!0),i=qt(e,A).slice();return x.__wbindgen_export(e,A*8,8),i}finally{x.__wbindgen_add_to_stack_pointer(16)}}};Symbol.dispose&&(dA.prototype[Symbol.dispose]=dA.prototype.free);function Tt(t){try{let r=x.__wbindgen_add_to_stack_pointer(-16),Q=Ot(t,x.__wbindgen_export2),C=xe;x.decompress_all(r,Q,C);var e=Y().getInt32(r+0,!0),A=Y().getInt32(r+4,!0),i=Y().getInt32(r+8,!0),n=Y().getInt32(r+12,!0);if(n)throw Wt(i);var g=Xt(e,A).slice();return x.__wbindgen_export(e,A*1,1),g}finally{x.__wbindgen_add_to_stack_pointer(16)}}function Zt(t,e,A,i,n){try{let C=x.__wbindgen_add_to_stack_pointer(-16),I=Ot(t,x.__wbindgen_export2),o=xe;x.decompress_chunk_slice(C,I,o,e,A,i,n);var g=Y().getInt32(C+0,!0),r=Y().getInt32(C+4,!0),Q=Y().getInt32(C+8,!0);if(Q)throw Wt(r);return dA.__wrap(g)}finally{x.__wbindgen_add_to_stack_pointer(16)}}function Zi(t,e){let A=Error(zt(t,e));return zi(A)}function Xi(t,e){throw new Error(zt(t,e))}var Kt=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(t=>x.__wbg_chunksliceresult_free(t,1));function zi(t){FA===V.length&&V.push(V.length+1);let e=FA;return FA=V[e],V[e]=t,e}function Oi(t){t<1028||(V[t]=FA,FA=t)}function qt(t,e){return t=t>>>0,Wi().subarray(t/8,t/8+e)}function Xt(t,e){return t=t>>>0,pe().subarray(t/1,t/1+e)}var lA=null;function Y(){return(lA===null||lA.buffer.detached===!0||lA.buffer.detached===void 0&&lA.buffer!==x.memory.buffer)&&(lA=new DataView(x.memory.buffer)),lA}var qA=null;function Wi(){return(qA===null||qA.byteLength===0)&&(qA=new Float64Array(x.memory.buffer)),qA}function zt(t,e){return Vi(t>>>0,e)}var TA=null;function pe(){return(TA===null||TA.byteLength===0)&&(TA=new Uint8Array(x.memory.buffer)),TA}function Pi(t){return V[t]}var V=new Array(1024).fill(void 0);V.push(void 0,null,!0,!1);var FA=V.length;function Ot(t,e){let A=e(t.length*1,1)>>>0;return pe().set(t,A/1),xe=t.length,A}function Wt(t){let e=Pi(t);return Oi(t),e}var ZA=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});ZA.decode();var ji=2146435072,ye=0;function Vi(t,e){return ye+=e,ye>=ji&&(ZA=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),ZA.decode(),ye=e),ZA.decode(pe().subarray(t,t+e).slice())}var xe=0,x;function Pt(t){x=t}var rA=null,me=null;async function jt(){return rA||(me||(me=(async()=>{let e=await(await fetch(Ti)).arrayBuffer(),{instance:A}=await WebAssembly.instantiate(e,{"./bgzf_wasm_bg.js":Fe});return rA=A.exports,Pt(rA),rA})()),me)}async function Vt(t){return rA||await jt(),Tt(t)}async function $t(t,e,A,i,n){rA||await jt();let g=Zt(t,e,A,i,n),r=g.take_buffer(),Q=g.take_cpositions(),C=g.take_dpositions();return g.free(),{buffer:r,cpositions:Q,dpositions:C}}var $i=26;function ei(t){return t[0]===31&&t[1]===139}function Ag(t){return t.length>=$i&&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 Ut(t,void 0)}function ii(t){return ti(t).includes("invalid gzip header")?new Error("problem decompressing block: incorrect gzip header check",{cause:t}):t}async function pA(t){if(t.length===0)return new Uint8Array(0);if(!Ag(t)){if(ei(t))return Ai(t);throw new Error("problem decompressing block: not a valid bgzf or gzip block")}try{return await Vt(t)}catch(e){if(ti(e).includes("invalid bgzf header"))return Ai(t);throw ii(e)}}function eg(t,e,A,i){let n=[],g=[],r=[],Q=A.dataPosition;for(let C=0;C<t.length;C++){let I=t[C],o=e[C],h=o.filePosition>=i.blockPosition;n.push(o.filePosition),g.push(Q);let E=C===0?A.dataPosition:0,a=h?Math.min(i.dataPosition+1,I.length):I.length;if(E<a&&r.push(I.subarray(E,a)),Q+=I.length-E,h){n.push(o.filePosition+o.compressedSize),g.push(Q);break}}return{buffer:Ht(r),cpositions:Float64Array.from(n),dpositions:Float64Array.from(g)}}var gi=4e5;function tg(t){let e=0;for(let A of t)e+=A.decompressedSize;return e}async function be(t,e,A){let{minv:i,maxv:n}=e;if(A){let g=Yt(t,i.blockPosition,n.blockPosition);if(tg(g)>=gi){let r=await A.decompressBlocks(t,g);return eg(r.blocks,g,i,n)}}try{let g=await $t(t,i.blockPosition,i.dataPosition,n.blockPosition,n.dataPosition);return{buffer:g.buffer,cpositions:g.cpositions,dpositions:g.dpositions}}catch(g){throw ii(g)}}function XA(t){if(t?.aborted)throw Je(t)}function Je(t){let e=t.reason;return e===void 0?new DOMException("This operation was aborted","AbortError"):e}function ig(t){typeof t=="object"&&t!==null&&"unref"in t&&typeof t.unref=="function"&&t.unref()}var gA=class{entries=new Map;total=0;settledCount=0;limit;budget;membership;fill;sizeOf;toCacheKey;evictionPolicy;pending=0;batch=0;idleTimeoutMs;sweepTimer;constructor({fill:e,maxSize:A=1/0,sizeOf:i=()=>1,cacheKey:n=C=>String(C),evictionPolicy:g="lru",idleTimeoutMs:r=0,budget:Q}={}){this.fill=e,this.evictionPolicy=g,this.limit=A,this.budget=Q,this.membership=Q?.register(this),this.sizeOf=i,this.toCacheKey=n,this.idleTimeoutMs=r>0?r:void 0}get size(){return this.entries.size}get totalSize(){return this.total}get maxSize(){return this.limit}set maxSize(e){this.limit=e,this.evict()}waiterCount(e){return this.entries.get(this.toCacheKey(e))?.signals.size??0}async get(e,A,i){XA(A);let n=this.toCacheKey(e),g=this.entries.get(n);g&&(this.isDoomed(g)?(this.deleteKey(n),g=void 0):this.touch(n,g)),g??=this.start(n,e,i),g.settled||this.join(g,A);try{let r=await this.settleFor(g,A);return XA(A),r}catch(r){throw XA(A),r}}settleFor(e,A){if(e.settled||A===void 0||typeof A.addEventListener!="function")return e.promise;let i=new AbortController;return Promise.race([e.promise,new Promise((n,g)=>{A.addEventListener("abort",()=>{g(Je(A))},{once:!0,signal:i.signal})})]).finally(()=>{i.abort()})}getIfCached(e){let A=this.toCacheKey(e),i=this.entries.get(A);if(i){if(this.isDoomed(i)){this.deleteKey(A);return}return this.touch(A,i),i.promise}}has(e){let A=this.entries.get(this.toCacheKey(e));return A!==void 0&&!this.isDoomed(A)}delete(e){this.deleteKey(this.toCacheKey(e))}clear(){for(let e of this.entries.values())this.detach(e);this.entries.clear(),this.charge(-this.total),this.total=0,this.settledCount=0,this.stopSweep()}touch(e,A){this.entries.delete(e),this.entries.set(e,A),A.batch=this.batch,A.lastTouched=Date.now(),A.seq=this.stamp()}stamp(){return this.budget?this.budget.nextSeq():0}isDoomed(e){return!e.settled&&e.controller.signal.aborted}sweepIdle(){let e=this.idleTimeoutMs;if(e===void 0)return;let A=Date.now()-e,i=0;for(let[n,g]of this.entries)g.settled&&(g.lastTouched<=A?this.deleteKey(n):i++);i===0&&this.stopSweep()}startSweep(){let e=this.idleTimeoutMs;if(e===void 0||this.sweepTimer!==void 0)return;let A=Math.max(1e3,Math.floor(e/4));this.sweepTimer=setInterval(()=>{this.sweepIdle()},A),ig(this.sweepTimer)}stopSweep(){this.sweepTimer!==void 0&&(clearInterval(this.sweepTimer),this.sweepTimer=void 0)}start(e,A,i){let n=i??(this.fill&&(C=>this.fill(A,C)));if(!n)throw new Error("SharedReadCache needs a fill, either on the cache or on the get() call");let g=new AbortController,r={promise:n(g.signal),signals:new Set,pinned:!1,controller:g,dispose:new AbortController,settled:!1,counted:!0,size:0,batch:this.batch,lastTouched:Date.now(),seq:this.stamp()};this.entries.set(e,r),this.pending++;let Q=()=>{r.settled=!0,this.detach(r),r.dispose.abort(),r.signals.clear()};return r.promise.then(C=>{if(Q(),this.entries.get(e)===r){let I=this.weigh(C);I===void 0?this.entries.delete(e):(r.lastTouched=Date.now(),this.settledCount++,r.size=I,this.total+=I,this.charge(I),this.startSweep())}this.maybeEvict()},()=>{this.entries.get(e)===r&&this.deleteKey(e),Q(),this.maybeEvict()}),r}weigh(e){try{let A=this.sizeOf(e);return Number.isFinite(A)&&A>=0?A:void 0}catch{return}}join(e,A){A===void 0?e.pinned=!0:A.aborted?!e.pinned&&e.signals.size===0&&e.controller.abort(A.reason):typeof A.addEventListener!="function"?e.pinned=!0:e.signals.has(A)||(e.signals.add(A),A.addEventListener("abort",()=>{e.signals.delete(A),!e.pinned&&e.signals.size===0&&(e.controller.abort(A.reason),this.detach(e))},{once:!0,signal:e.dispose.signal}))}deleteKey(e){let A=this.entries.get(e);A&&(this.entries.delete(e),this.detach(A),A.settled&&this.settledCount--,this.total-=A.size,this.charge(-A.size))}detach(e){e.counted&&(e.counted=!1,this.pending--)}charge(e){this.budget&&this.membership&&this.budget.charge(this.membership,e)}lruSpare(){if(!(this.settledCount<=1)){for(let[e,A]of this.entries)if(A.settled)return{cacheKey:e,seq:A.seq}}}release(e){this.deleteKey(e)}maybeEvict(){(this.evictionPolicy==="lru"||this.pending===0)&&(this.evict(),this.evictionPolicy==="batch"&&this.batch++,this.budget?.evict())}evict(){if(this.limit!==1/0){if(this.evictionPolicy==="batch"){for(let[e,A]of this.entries){if(this.total<=this.limit)break;A.batch!==this.batch&&A.settled&&this.deleteKey(e)}return}if(!(this.total<=this.limit))for(let[e,A]of this.entries){if(this.total<=this.limit||this.settledCount<=1)break;A.settled&&this.deleteKey(e)}}}};async function zA(t){return t.bytes?t.bytes():new Uint8Array(await t.arrayBuffer())}async function ni(t,e,A){if(e==="utf8"||e==="utf-8")return t.text();if(e)throw new Error(`unsupported encoding: ${e}`);return A&&"body"in t?Se(t,A):zA(t)}function Ii(t){return typeof t=="string"?{encoding:t,opts:{}}:{encoding:t?.encoding,opts:t??{}}}function oi(t){let e=/\/(\d+)$/.exec(t??"")?.[1];return e===void 0?void 0:parseInt(e,10)}function gg(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 ng=50;async function Se(t,e){let A=gg(t),i=t.body;if(!i||A===void 0){let C=await zA(t);return e(C.byteLength,A??C.byteLength),C}let n=i.getReader(),g=new Uint8Array(A),r=0,Q=Date.now();e(0,A);for(let C=await n.read();!C.done;C=await n.read()){if(r+C.value.byteLength>g.length){let o=new Uint8Array(Math.max(r+C.value.byteLength,g.length*2));o.set(g.subarray(0,r)),g=o}g.set(C.value,r),r+=C.value.byteLength;let I=Date.now();I-Q>=ng&&(Q=I,e(r,A))}return e(r,A),r===g.length?g:g.slice(0,r)}function Ig(t,e={}){let A=new Set(Object.keys(e).map(n=>n.toLowerCase())),i=Object.entries(t).filter(([n])=>!A.has(n.toLowerCase()));return{...Object.fromEntries(i),...e}}function Qi(t){return Number.isSafeInteger(t)&&t>=0}function og(t){return(typeof t=="object"&&t!==null&&"message"in t&&typeof t.message=="string"?t.message:`${t}`).replace(/\.$/,"")}var $=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 i=e.signal??this.baseSignal;return{method:"GET",redirect:"follow",mode:"cors",...this.baseOverrides,...e.overrides,headers:Ig({...this.baseHeaders,...e.headers},A),...i?{signal:i}:{}}}async fetch(e,A){let i=g=>new Error(`${og(g)} fetching ${e}`,{cause:g}),n;try{n=await this.fetchImplementation(e,A)}catch(g){if(`${g}`.includes("Failed to fetch")){console.warn(`generic-filehandle: refetching ${e} to attempt to work around chrome CORS header caching bug`);try{n=await this.fetchImplementation(e,{...A,cache:"reload"})}catch(r){throw i(r)}}else throw i(g)}return n}async read(e,A,i={}){if(e===0)return new Uint8Array(0);if(!Qi(e)||!Qi(A))throw new TypeError(`read() called with an invalid length or position (length=${e}, position=${A}). The index file may be corrupt.`);return this.fetchBytes(e,A,i)}async fetchBytes(e,A,i){let n=await this.fetch(this.url,this.buildRequest(i,{range:`bytes=${A}-${A+e-1}`}));if(n.status===416)return new Uint8Array(0);if(this.checkOk(n),n.status===200&&A===0||n.status===206){let g=oi(n.headers.get("content-range"));g!==void 0&&(this._stat={size:g});let r=i.onProgress?await Se(n,i.onProgress):await zA(n);return!this._stat&&n.status===200&&(this._stat={size:r.byteLength}),r.byteLength<=e?r:r.slice(0,e)}throw new Error(n.status===200?`${this.url} fetch returned status 200, expected 206`:`HTTP ${n.status} fetching ${this.url}`)}checkOk(e){if(!e.ok)throw new Error(`HTTP ${e.status} fetching ${this.url}`)}async readFile(e){let{encoding:A,opts:i}=Ii(e),n=await this.fetch(this.url,this.buildRequest(i));this.checkOk(n);let g=await ni(n,A,i.onProgress);return n.status===200&&typeof g!="string"&&(this._stat={size:g.byteLength}),g}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 CA=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,i){return this.unimplemented()}stat(){return this.unimplemented()}close(){return this.unimplemented()}};var W=class{minv;maxv;bin;endPosition;constructor(e,A,i,n=A.blockPosition+65536){this.minv=e,this.maxv=A,this.bin=i,this.endPosition=n}toString(){return`${this.minv.toString()}..${this.maxv.toString()} (bin ${this.bin}, fetchedSize ${this.fetchedSize()})`}fetchedSize(){return this.endPosition-this.minv.blockPosition}};var _=function(t,e,A,i,n){if(i==="m")throw new TypeError("Private method is not writable");if(i==="a"&&!n)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!n:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return i==="a"?n.call(t,A):n?n.value=A:e.set(t,A),A},f=function(t,e,A,i){if(A==="a"&&!i)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!i:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return A==="m"?i:A==="a"?i.call(t):i?i.value:e.get(t)},b,U,J,G,BA,xA,aA,OA,X,ri,Ge,Re,_e,Ci,WA,bA=class extends Map{constructor(e={}){if(super(),b.add(this),U.set(this,0),J.set(this,new Map),G.set(this,new Map),BA.set(this,void 0),xA.set(this,void 0),aA.set(this,void 0),!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");if(typeof e.maxAge=="number"&&e.maxAge===0)throw new TypeError("`maxAge` must be a number greater than 0");_(this,BA,e.maxSize,"f"),_(this,xA,e.maxAge||Number.POSITIVE_INFINITY,"f"),_(this,aA,e.onEviction,"f")}get __oldCache(){return f(this,G,"f")}get(e){if(f(this,J,"f").has(e)){let A=f(this,J,"f").get(e);return f(this,b,"m",Ge).call(this,e,A)}if(f(this,G,"f").has(e)){let A=f(this,G,"f").get(e);if(!f(this,b,"m",X).call(this,e,A))return f(this,b,"m",Ci).call(this,e,A),A.value}}set(e,A,{maxAge:i=f(this,xA,"f")}={}){let n=typeof i=="number"&&i!==Number.POSITIVE_INFINITY?Date.now()+i:void 0;return f(this,J,"f").has(e)?f(this,J,"f").set(e,{value:A,expiry:n}):f(this,b,"m",_e).call(this,e,{value:A,expiry:n}),this}has(e){return f(this,J,"f").has(e)?!f(this,b,"m",X).call(this,e,f(this,J,"f").get(e)):f(this,G,"f").has(e)?!f(this,b,"m",X).call(this,e,f(this,G,"f").get(e)):!1}peek(e){if(f(this,J,"f").has(e))return f(this,b,"m",Re).call(this,e,f(this,J,"f"));if(f(this,G,"f").has(e))return f(this,b,"m",Re).call(this,e,f(this,G,"f"))}expiresIn(e){let A=f(this,J,"f").get(e)??f(this,G,"f").get(e);if(A)return A.expiry?A.expiry-Date.now():Number.POSITIVE_INFINITY}delete(e){var A;let i=f(this,J,"f").delete(e);return i&&_(this,U,(A=f(this,U,"f"),A--,A),"f"),f(this,G,"f").delete(e)||i}clear(){f(this,J,"f").clear(),f(this,G,"f").clear(),_(this,U,0,"f")}resize(e){if(!(e&&e>0))throw new TypeError("`maxSize` must be a number greater than 0");let A=[...f(this,b,"m",WA).call(this)],i=A.length-e;i<0?(_(this,J,new Map(A),"f"),_(this,G,new Map,"f"),_(this,U,A.length,"f")):(i>0&&f(this,b,"m",OA).call(this,A.slice(0,i)),_(this,G,new Map(A.slice(i)),"f"),_(this,J,new Map,"f"),_(this,U,0,"f")),_(this,BA,e,"f")}evict(e=1){let A=e;if(!A||A<=0)return;let i=[...f(this,b,"m",WA).call(this)],n=Math.trunc(Math.min(A,Math.max(i.length-1,0)));n<=0||(f(this,b,"m",OA).call(this,i.slice(0,n)),_(this,G,new Map(i.slice(n)),"f"),_(this,J,new Map,"f"),_(this,U,0,"f"))}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}*[(U=new WeakMap,J=new WeakMap,G=new WeakMap,BA=new WeakMap,xA=new WeakMap,aA=new WeakMap,b=new WeakSet,OA=function(A){if(typeof f(this,aA,"f")=="function")for(let[i,n]of A)f(this,aA,"f").call(this,i,n.value)},X=function(A,i){return typeof i.expiry=="number"&&i.expiry<=Date.now()?(typeof f(this,aA,"f")=="function"&&f(this,aA,"f").call(this,A,i.value),this.delete(A)):!1},ri=function(A,i){if(!f(this,b,"m",X).call(this,A,i))return i.value},Ge=function(A,i){return i.expiry?f(this,b,"m",ri).call(this,A,i):i.value},Re=function(A,i){let n=i.get(A);return f(this,b,"m",Ge).call(this,A,n)},_e=function(A,i){var n;f(this,J,"f").set(A,i),_(this,U,(n=f(this,U,"f"),n++,n),"f"),f(this,U,"f")>=f(this,BA,"f")&&(_(this,U,0,"f"),f(this,b,"m",OA).call(this,f(this,G,"f")),_(this,G,f(this,J,"f"),"f"),_(this,J,new Map,"f"))},Ci=function(A,i){f(this,G,"f").delete(A),f(this,b,"m",_e).call(this,A,i)},WA=function*(){for(let A of f(this,G,"f")){let[i,n]=A;f(this,J,"f").has(i)||f(this,b,"m",X).call(this,i,n)||(yield A)}for(let A of f(this,J,"f")){let[i,n]=A;f(this,b,"m",X).call(this,i,n)||(yield A)}},Symbol.iterator)](){for(let e of f(this,J,"f")){let[A,i]=e;f(this,b,"m",X).call(this,A,i)||(yield[A,i.value])}for(let e of f(this,G,"f")){let[A,i]=e;f(this,J,"f").has(A)||f(this,b,"m",X).call(this,A,i)||(yield[A,i.value])}}*entriesDescending(){let e=[...f(this,J,"f")];for(let A=e.length-1;A>=0;--A){let i=e[A],[n,g]=i;f(this,b,"m",X).call(this,n,g)||(yield[n,g.value])}e=[...f(this,G,"f")];for(let A=e.length-1;A>=0;--A){let i=e[A],[n,g]=i;f(this,J,"f").has(n)||f(this,b,"m",X).call(this,n,g)||(yield[n,g.value])}}*entriesAscending(){for(let[e,A]of f(this,b,"m",WA).call(this))yield[e,A.value]}get size(){if(!f(this,U,"f"))return f(this,G,"f").size;let e=0;for(let A of f(this,G,"f").keys())f(this,J,"f").has(A)||e++;return Math.min(f(this,U,"f")+e,f(this,BA,"f"))}get maxSize(){return f(this,BA,"f")}get maxAge(){return f(this,xA,"f")}entries(){return this.entriesAscending()}forEach(e,A=this){for(let[i,n]of this.entriesAscending())e.call(A,n,i,this)}get[Symbol.toStringTag](){return"QuickLRU"}toString(){return`QuickLRU(${this.size}/${this.maxSize})`}[Symbol.for("nodejs.util.inspect.custom")](){return this.toString()}};function Bi(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 uA=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 nA(t,e=0){return new uA(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 PA(t,e){let A=t.length;if(A===0)return t;let i;if(e){let Q=e.blockPosition,C=e.dataPosition;i=[];for(let I=0;I<A;I++){let o=t[I];(o.maxv.blockPosition-Q||o.maxv.dataPosition-C)>0&&i.push(o)}if(i.length===0)return i}else i=t;i.sort((Q,C)=>{let I=Q.minv.blockPosition-C.minv.blockPosition;return I===0?Q.minv.dataPosition-C.minv.dataPosition:I});let n=[i[0]],g=i[0].minv.blockPosition,r=i[0].maxv.blockPosition;for(let Q=1;Q<i.length;Q++){let C=i[Q],I=C.minv.blockPosition,o=C.maxv.blockPosition;if(I-r<65e3&&o-g<5e6){let h=n.at(-1);(o-r||C.maxv.dataPosition-h.maxv.dataPosition)>0&&(n[n.length-1]=new W(h.minv,C.maxv,h.bin,C.endPosition),r=o)}else n.push(C),g=I,r=o}return Qg(n)}function Qg(t){let e=[t[0]];for(let A=1;A<t.length;A++){let i=t[A],n=e.at(-1).maxv;if((i.minv.blockPosition-n.blockPosition||i.minv.dataPosition-n.dataPosition)>=0){e.push(i);continue}(i.maxv.blockPosition-n.blockPosition||i.maxv.dataPosition-n.dataPosition)>0&&e.push(new W(n,i.maxv,i.bin,i.endPosition))}return e}function jA(t,e=[]){let A=[...e];for(let i of t)A.push(i.minv.blockPosition,i.maxv.blockPosition);A.sort((i,n)=>i-n);for(let i of t){let n=i.maxv.blockPosition,g=0,r=A.length;for(;g<r;){let Q=g+r>>>1;A[Q]>n?r=Q:g=Q+1}g<A.length&&(i.endPosition=Math.min(i.endPosition,A[g]))}}function VA(t,e,A,i){let n=i?i.blockPosition:1/0,g=i?i.dataPosition:0,r=!1;for(let Q=0;Q<A;Q++){let C=e+Q*8,I=t[C+7]*1099511627776+t[C+6]*4294967296+t[C+5]*16777216+t[C+4]*65536+t[C+3]*256+t[C+2],o=t[C+1]<<8|t[C];(I<n||I===n&&o<g)&&(n=I,g=o,r=!0)}return r?new uA(n,g):i}function rg(t){let e=new TextDecoder("utf-8"),A=[],i={},n=0,g=0;for(;g<t.length;){let r=t.indexOf(0,g);if(r===-1)break;if(r>g){let Q=e.decode(t.subarray(g,r));A[n]=Q,i[Q]=n}g=r+1,n++}return{refNameToId:i,refIdToName:A}}var Cg={0:"generic",1:"SAM",2:"VCF",3:"GAF"};function $A(t,e){let A=new DataView(t.buffer,t.byteOffset,t.byteLength),i=A.getInt32(e,!0),n=i&65536?"zero-based-half-open":"1-based-closed",g=Cg[i&15];if(!g)throw new Error(`invalid Tabix preset format flags ${i}`);let r={ref:A.getInt32(e+4,!0),start:A.getInt32(e+8,!0),end:A.getInt32(e+12,!0)},Q=A.getInt32(e+16,!0),C=Q?String.fromCharCode(Q):void 0,I=A.getInt32(e+20,!0),o=A.getInt32(e+24,!0),{refIdToName:h,refNameToId:E}=rg(t.subarray(e+28,e+28+o));return{refIdToName:h,refNameToId:E,skipLines:I,metaChar:C,columnNumbers:r,format:g,coordinateType:n}}function Ae(t,e){return{lineCount:Bi(t,e)}}function ee(t,e=5){let A=new bA({maxSize:e});return i=>{let n=A.get(i);if(n!==void 0)return n;let g=t(i);return g!==void 0&&A.set(i,g),g}}function Bg(t,e,A,i){if(e>2**(A+i*3))return;let n=(8**(i+1)-1)/7,g=(8**i-1)/7+Math.floor((e-1)/2**A)+1;for(g>=n&&(g=0);;){for(;g%8===1;)g=(g-1)/8;if(g===0)return;let r=t[g];if(r?.length){let Q=r[0].minv;for(let C=1;C<r.length;C++){let I=r[C].minv;I.compareTo(Q)<0&&(Q=I)}return Q}g++}}function ai(t,e){return t.format==="GAF"?0:t.refNameToId[e]}var sA=class{filehandle;parseCache=new gA({});constructor({filehandle:e}){this.filehandle=e}async readIndexBytes(e){let A=await this.filehandle.readFile({signal:e.signal,onProgress:e.onProgress}),i=await pA(A);return{bytes:i,dataView:new DataView(i.buffer,i.byteOffset,i.byteLength)}}async lineCount(e,A={}){let i=await this.parse(A),n=ai(i,e);return n===void 0?-1:i.indices(n)?.stats?.lineCount??-1}async getMetadata(e={}){let{indices:A,...i}=await this.parse(e);return i}async blocksForRange(e,A,i,n={}){let g=await this.parse(n),r=ai(g,e);if(r===void 0)return[];let Q=g.indices(r);if(!Q)return[];g.format==="GAF"&&(A=Math.max(A-1,0));let C=[];for(let[h,E]of this.reg2bins(A,i,g))for(let a=h;a<=E;a++){let s=Q.binIndex[a];if(s)for(let N of s)C.push(N)}let I=PA(C,this.lowestOffset(Q,A,g)),o=Bg(Q.binIndex,i,g.minShift,g.depth);if(o){let h=I.length;for(;h>0&&I[h-1].minv.compareTo(o)>=0;)h--;I.length=h}return I}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 ag=21582659,sg=38359875;function si(t,e){return t*2**e}function ve(t,e){return Math.floor(t/2**e)}var EA=class extends sA{async _parse(e={}){let{bytes:A,dataView:i}=await this.readIndexBytes(e),n=i.getUint32(0,!0),g;if(n===ag)g=1;else if(n===sg)g=2;else throw new Error(`Not a CSI file (magic=${n})`);let r=i.getInt32(4,!0),Q=i.getInt32(8,!0),C=(8**(Q+1)-1)/7,I=2**(r+Q*3),o=i.getInt32(12,!0),h=o>=28&&(i.getInt32(16,!0)&15)===3,E=o>=30||h?$A(A,16):{refIdToName:[],refNameToId:{},metaChar:void 0,columnNumbers:{ref:0,start:1,end:2},coordinateType:"zero-based-half-open",format:"generic"},a=i.getInt32(16+o,!0),s=16+o+4,N,k=[];for(let D=0;D<a;D++){k.push(s);let w=i.getInt32(s,!0);s+=4;for(let B=0;B<w;B++){let d=i.getUint32(s,!0);if(s+=4,d>C)s+=44;else{N=VA(A,s,1,N),s+=8;let y=i.getInt32(s,!0);s+=4+16*y}}}function u(D){let w=k[D];if(w===void 0)return;let B=w,d=i.getInt32(B,!0);B+=4;let y={},c={},F;for(let m=0;m<d;m++){let l=i.getUint32(B,!0);if(B+=4,l>C)F=Ae(A,B+28),B+=44;else{c[l]=nA(A,B),B+=8;let p=i.getInt32(B,!0);B+=4;let R=Array.from({length:p});for(let M=0;M<p;M++)R[M]=new W(nA(A,B),nA(A,B+8),l),B+=16;y[l]=R}}return jA(Object.values(y).flat()),{binIndex:y,loffsets:c,stats:F}}return{...E,csi:!0,refCount:a,maxBlockSize:65536,firstDataLine:N,csiVersion:g,indices:ee(u),minShift:r,depth:Q,maxBinNumber:C,maxRefLength:I}}lowestOffset(e,A,{minShift:i,depth:n}){let{loffsets:g}=e,r;if(g){let Q=(si(1,3*n)-1)/7+ve(Math.max(A,0),i);for(;r===void 0&&Q>0;)if(r=g[Q],r===void 0){let C=Math.floor((Q-1)/8),I=C*8+1;Q=Q>I?Q-1:C}r??=g[0]}return r}reg2bins(e,A,{minShift:i,depth:n,maxBinNumber:g}){e=Math.max(e,0);let r=2**(i+n*3);A>r&&(A=r),A-=1;let Q=0,C=0,I=i+n*3,o=[];for(;Q<=n;I-=3,C+=si(1,Q*3),Q+=1){let h=C+ve(e,I),E=C+ve(A,I);if(E-h+o.length>g)throw new Error(`query ${e}-${A} is too large for current binning scheme (shift ${i}, depth ${n}), try a smaller query or a coarser index binning scheme`);o.push([h,E])}return o}};var Eg=21578324,Le=5,Me=14,te=2**(Me+Le*3);function Ei(t){return Math.min(Math.max(t,0),te)}var AA=class extends sA{reg2bins(e,A){e>te&&console.warn("querying outside of possible tabix range");let i=Ei(e),n=Math.min(A,te)-1,g=[];return i<=n&&g.push([0,0],[1+(i>>26),1+(n>>26)],[9+(i>>23),9+(n>>23)],[73+(i>>20),73+(n>>20)],[585+(i>>17),585+(n>>17)],[4681+(i>>14),4681+(n>>14)]),g}lowestOffset(e,A){let i=e.linearIndex;return i?.[Math.min(Ei(A)>>Me,i.length-1)]}async _parse(e={}){let{bytes:A,dataView:i}=await this.readIndexBytes(e);if(i.getUint32(0,!0)!==Eg)throw new Error("Not a TBI file");let n=i.getUint32(4,!0),g=((1<<(Le+1)*3)-1)/7,{refNameToId:r,refIdToName:Q,coordinateType:C,format:I,columnNumbers:o,metaChar:h,skipLines:E}=$A(A,8),s=36+i.getInt32(32,!0),N,k=[];for(let D=0;D<n;D++){k.push(s);let w=i.getInt32(s,!0);s+=4;for(let d=0;d<w;d++){let y=i.getUint32(s,!0);s+=4;let c=i.getInt32(s,!0);if(s+=4,y>g+1)throw new Error("tabix index contains too many bins, please use a CSI index");s+=16*c}let B=i.getInt32(s,!0);s+=4,N=VA(A,s,B,N),s+=8*B}function u(D){let w=k[D];if(w===void 0)return;let B=w,d=i.getInt32(B,!0);B+=4;let y={},c;for(let l=0;l<d;l++){let p=i.getUint32(B,!0);if(B+=4,p>g+1)throw new Error("tabix index contains too many bins, please use a CSI index");if(p===g+1){let R=i.getInt32(B,!0);B+=4,R===2&&(c=Ae(A,B+16)),B+=16*R}else{let R=i.getInt32(B,!0);B+=4;let M=Array.from({length:R});for(let v=0;v<R;v++)M[v]=new W(nA(A,B),nA(A,B+8),p),B+=16;y[p]=M}}let F=i.getInt32(B,!0);B+=4;let m=Array.from({length:F});for(let l=0;l<F;l++)m[l]=nA(A,B),B+=8;return jA(Object.values(y).flat(),m.map(l=>l.blockPosition)),{binIndex:y,linearIndex:m,stats:c}}return{indices:ee(u),metaChar:h,minShift:Me,depth:Le,maxBinNumber:g,maxRefLength:te,skipLines:E,firstDataLine:N,columnNumbers:o,coordinateType:C,format:I,refIdToName:Q,refNameToId:r,maxBlockSize:65536}}};var Ue=9,ge=10,fi=13,cg=59,fg=60,hg=62,lg=6,dg=1024*2**20,ug=180*1e3;function wg(t,e,A){if(t)return t;if(e)return new CA(e);if(A)return new $(A);throw new TypeError("must provide either filehandle, path, or url")}function kg({tbiFilehandle:t,csiFilehandle:e,tbiPath:A,csiPath:i,tbiUrl:n,csiUrl:g,path:r,url:Q}){if(t)return new AA({filehandle:t});if(e)return new EA({filehandle:e});if(A)return new AA({filehandle:new CA(A)});if(i)return new EA({filehandle:new CA(i)});if(g)return new EA({filehandle:new $(g)});if(n)return new AA({filehandle:new $(n)});if(r)return new AA({filehandle:new CA(`${r}.tbi`)});if(Q)return new AA({filehandle:new $(`${Q}.tbi`)});throw new TypeError("must provide one of tbiFilehandle, tbiPath, csiFilehandle, csiPath, tbiUrl, csiUrl")}function hi(t,e,A,i,n){return t[A]*256+(i-e[A])+n+1}function Dg(t,e,A,i,n,g){let r=i-A,Q=e+r;if(t[n]===46)return Q;let C=n;for(let I=n;I<=g;I++)if(I===g||t[I]===cg){let o=I-C;if(o>=10&&t[C]===83&&t[C+1]===86&&t[C+2]===84&&t[C+3]===89&&t[C+4]===80&&t[C+5]===69&&t[C+6]===61&&t[C+7]===84&&t[C+8]===82&&t[C+9]===65)return e+1;o>=4&&t[C]===69&&t[C+1]===78&&t[C+2]===68&&t[C+3]===61&&(Q=Ye(t,C+4,I)),C=I+1}return Q}var li=new TextDecoder;function ci(t,e){let A=-1,i=e.charCodeAt(0);for(let n=0,g=t.length;n<g;n++){let r=t[n];if(n===A+1&&r!==i)break;r===ge&&(A=n)}return t.subarray(0,A+1)}function Ng(t,e){let A=0;for(let i=0;i<e;i++){let n=t.indexOf(ge,A);if(n===-1){A=t.length;break}A=n+1}return li.decode(t.subarray(0,A)).split(/\r?\n/).slice(0,e)}function Ye(t,e,A){let i=0;for(let n=e;n<A;n++){let g=t[n];if(g>=48&&g<=57)i=i*10+(g-48);else break}return i}function yg(t,e,A,i,{start:n,end:g,pathCol:r,metaCharCode:Q,decoder:C,callback:I}){let o=0,h=0;for(;o<t.length;){let E=t.indexOf(ge,o);if(E===-1)break;let a=o;o=E+1;let s=a+i;for(;h<A.length&&s>=A[h];)h++;if(t[a]===Q)continue;let N=a;for(let d=1;d<r;d++){let y=t.indexOf(Ue,N);if(y===-1||y>=E){N=E;break}N=y+1}let k=t[N];if(k!==hg&&k!==fg)continue;let u=t.indexOf(Ue,N);(u===-1||u>E)&&(u=E);let D=1/0,w=-1,B=N;for(;B<u;){let d=0,y=B+1;for(;y<u;y++){let c=t[y]-48;if(c<0||c>9)break;d=d*10+c}d<D&&(D=d),d>w&&(w=d),B=y}if(D>=g)return!0;if(w>=n){let d=t[E-1]===fi?E-1:E;I(C.decode(t.subarray(a,d)),hi(e,A,h,a,i),D,w+1)}}return!1}var ie=class{filehandle;index;chunkCache;headerCache=new gA({});bgzfWorkerPool;constructor({path:e,filehandle:A,url:i,tbiPath:n,tbiUrl:g,tbiFilehandle:r,csiPath:Q,csiUrl:C,csiFilehandle:I,chunkCacheSize:o=dg,chunkCacheIdleTimeoutMs:h=ug,chunkCacheBudget:E,bgzfWorkerPool:a}){this.bgzfWorkerPool=a,this.filehandle=wg(A,e,i),this.index=kg({tbiFilehandle:r,csiFilehandle:I,tbiPath:n,csiPath:Q,tbiUrl:g,csiUrl:C,path:e,url:i}),this.chunkCache=new gA({maxSize:o,sizeOf:s=>s.buffer.byteLength,cacheKey:s=>s.toString(),idleTimeoutMs:h,budget:E,fill:(s,N)=>this.readChunk(s,{signal:N})})}clearChunkCache(){this.chunkCache.clear()}async bytesForRegions(e,A={}){let i=[];for(let{refName:g,start:r,end:Q}of e){let C=await this.index.blocksForRange(g,r,Q,A);for(let I of C)i.push(I)}let n=0;for(let g of PA(i))n+=g.fetchedSize();return n}async getLines(e,A,i,n){let g,r={},Q,C;typeof n=="function"?Q=n:(r=n,Q=n.lineCallback,g=n.signal,C=n.onProgress);let I=await this.index.getMetadata(r),o=A??0,h=i??I.maxRefLength;if(o>h)throw new TypeError("invalid start and end coordinates. start must be less than or equal to end");if(o===h)return;let E=await this.index.blocksForRange(e,o,h,r),a=I.format==="VCF",s=I.columnNumbers.ref||0,N=I.columnNumbers.start||0,k=a?8:I.columnNumbers.end||0,u=Math.max(s,N,k),D=I.metaChar?.charCodeAt(0),w=I.coordinateType==="1-based-closed"?-1:0,B=new TextEncoder,d=new TextDecoder,y=B.encode(e),c=new Int32Array(u+1),F=I.format==="GAF"?{start:o,end:h,pathCol:N,metaCharCode:D,decoder:d,callback:Q}:void 0,m=0;for(let v of E)m+=v.fetchedSize();let l=0;C?.(0,m);let p=1,R=[],M=v=>{for(;R.length<Math.min(v,E.length);){let cA=E[R.length],z=this.chunkCache.get(cA,g);z.catch(()=>{}),R.push(z)}};M(1);for(let v=0,cA=E.length;v<cA;v++){let z=E[v],{buffer:L,cpositions:He,dpositions:JA}=await R[v];l+=z.fetchedSize(),C?.(l,m);let ne=z.minv.dataPosition;if(F){if(yg(L,He,JA,ne,F))return}else{let q=0,SA=0;for(;q<L.length;){let T=L.indexOf(ge,q);if(T===-1)break;let wi=q+ne;for(;SA<JA.length&&wi>=JA[SA];)SA++;if(D!==void 0&&L[q]===D){q=T+1;continue}c[0]=q-1;for(let Z=0;Z<u;Z++){let RA=c[Z],Ie=RA<T?L.indexOf(Ue,RA+1):-1;c[Z+1]=Ie===-1||Ie>=T?T:Ie}let Ke=c[s-1]+1,qe=c[s]-Ke;if(qe!==y.length){q=T+1;continue}let Te=!0;for(let Z=0;Z<qe;Z++)if(L[Ke+Z]!==y[Z]){Te=!1;break}if(!Te){q=T+1;continue}let GA=Ye(L,c[N-1]+1,c[N])+w;if(GA>=h)return;let wA;if(k===0||k===N?wA=GA+1:a?wA=Dg(L,GA,c[3]+1,c[4],c[k-1]+1,c[k]):wA=Ye(L,c[k-1]+1,c[k]),wA>o){let Z=L[T-1]===fi?T-1:T,RA=d.decode(L.subarray(q,Z));Q(RA,hi(He,JA,SA,q,ne),GA,wA)}q=T+1}}p=Math.min(p*2,lg),M(v+1+p)}}async getMetadata(e={}){return this.index.getMetadata(e)}async readHeaderBytes(e){let{firstDataLine:A,maxBlockSize:i}=await this.getMetadata(e),n=(A?.blockPosition??0)+i,g=await this.filehandle.read(n,0,e);return pA(g)}async parseHeader(e){let{metaChar:A,skipLines:i=0}=await this.getMetadata(e),n=await this.readHeaderBytes(e);return{header:li.decode(A?ci(n,A):n),skippedLines:i>0?Ng(n,i):[]}}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),i=await this.readHeaderBytes(e);return A?ci(i,A):i}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:i}=await this.getParsedHeader(e);return(A?A.split(/\r?\n/):i).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 i=await this.filehandle.read(e.fetchedSize(),e.minv.blockPosition,A),n=await this.bgzfWorkerPool;return be(i,e,n)}};export{pA as a,ie as b,mg as c,Fg as d};
2
+ //# sourceMappingURL=chunk-JAQ2RQAE.js.map