@genome-spy/core 0.37.4 → 0.39.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 (360) hide show
  1. package/dist/bundle/__vite-browser-external-ENoMJThg.js +8 -0
  2. package/dist/bundle/_commonjsHelpers-QtkX90xp.js +30 -0
  3. package/dist/bundle/index-1QVesMzU.js +1074 -0
  4. package/dist/bundle/index-Cbz74kpR.js +638 -0
  5. package/dist/bundle/index-LD6yPc3X.js +515 -0
  6. package/dist/bundle/index-Pv3tKJ1W.js +2190 -0
  7. package/dist/bundle/index-UyrC0vvF.js +72 -0
  8. package/dist/bundle/index-Y-LdHNIz.js +501 -0
  9. package/dist/bundle/index-gn8bhQ8w.js +4050 -0
  10. package/dist/bundle/index-lmJu1tfP.js +1372 -0
  11. package/dist/bundle/index-z4Cs62EO.js +279 -0
  12. package/dist/bundle/index.es.js +6467 -20590
  13. package/dist/bundle/index.js +92 -123
  14. package/dist/bundle/long-Veu0zKh9.js +2382 -0
  15. package/dist/bundle/remoteFile-Ur-gRKsH.js +96 -0
  16. package/dist/schema.json +524 -122
  17. package/dist/src/data/collector.d.ts +11 -11
  18. package/dist/src/data/collector.d.ts.map +1 -1
  19. package/dist/src/data/collector.js +8 -8
  20. package/dist/src/data/dataFlow.d.ts +18 -18
  21. package/dist/src/data/dataFlow.d.ts.map +1 -1
  22. package/dist/src/data/dataFlow.js +7 -7
  23. package/dist/src/data/flowNode.d.ts +9 -9
  24. package/dist/src/data/flowNode.d.ts.map +1 -1
  25. package/dist/src/data/flowNode.js +5 -5
  26. package/dist/src/data/flowOptimizer.d.ts +11 -11
  27. package/dist/src/data/flowOptimizer.d.ts.map +1 -1
  28. package/dist/src/data/flowOptimizer.js +7 -7
  29. package/dist/src/data/flowTestUtils.d.ts +2 -2
  30. package/dist/src/data/flowTestUtils.d.ts.map +1 -1
  31. package/dist/src/data/flowTestUtils.js +1 -1
  32. package/dist/src/data/sources/dataSource.js +1 -1
  33. package/dist/src/data/sources/dataSourceFactory.d.ts +3 -3
  34. package/dist/src/data/sources/dataSourceFactory.d.ts.map +1 -1
  35. package/dist/src/data/sources/dataSourceFactory.js +20 -20
  36. package/dist/src/data/sources/dataUtils.d.ts +20 -20
  37. package/dist/src/data/sources/dataUtils.d.ts.map +1 -1
  38. package/dist/src/data/sources/dataUtils.js +11 -11
  39. package/dist/src/data/sources/dynamic/axisGenomeSource.d.ts +3 -3
  40. package/dist/src/data/sources/dynamic/axisGenomeSource.d.ts.map +1 -1
  41. package/dist/src/data/sources/dynamic/axisGenomeSource.js +2 -2
  42. package/dist/src/data/sources/dynamic/axisTickSource.d.ts +6 -6
  43. package/dist/src/data/sources/dynamic/axisTickSource.d.ts.map +1 -1
  44. package/dist/src/data/sources/dynamic/axisTickSource.js +4 -4
  45. package/dist/src/data/sources/dynamic/bamSource.d.ts +7 -13
  46. package/dist/src/data/sources/dynamic/bamSource.d.ts.map +1 -1
  47. package/dist/src/data/sources/dynamic/bamSource.js +35 -27
  48. package/dist/src/data/sources/dynamic/bigBedSource.d.ts +9 -9
  49. package/dist/src/data/sources/dynamic/bigBedSource.d.ts.map +1 -1
  50. package/dist/src/data/sources/dynamic/bigBedSource.js +31 -18
  51. package/dist/src/data/sources/dynamic/bigWigSource.d.ts +7 -7
  52. package/dist/src/data/sources/dynamic/bigWigSource.d.ts.map +1 -1
  53. package/dist/src/data/sources/dynamic/bigWigSource.js +33 -26
  54. package/dist/src/data/sources/dynamic/gff3Source.d.ts +9 -0
  55. package/dist/src/data/sources/dynamic/gff3Source.d.ts.map +1 -1
  56. package/dist/src/data/sources/dynamic/gff3Source.js +17 -2
  57. package/dist/src/data/sources/dynamic/indexedFastaSource.d.ts +6 -9
  58. package/dist/src/data/sources/dynamic/indexedFastaSource.d.ts.map +1 -1
  59. package/dist/src/data/sources/dynamic/indexedFastaSource.js +28 -18
  60. package/dist/src/data/sources/dynamic/singleAxisLazySource.d.ts +10 -10
  61. package/dist/src/data/sources/dynamic/singleAxisLazySource.d.ts.map +1 -1
  62. package/dist/src/data/sources/dynamic/singleAxisLazySource.js +6 -6
  63. package/dist/src/data/sources/dynamic/tabixSource.d.ts +11 -8
  64. package/dist/src/data/sources/dynamic/tabixSource.d.ts.map +1 -1
  65. package/dist/src/data/sources/dynamic/tabixSource.js +31 -17
  66. package/dist/src/data/sources/inlineSource.d.ts +7 -7
  67. package/dist/src/data/sources/inlineSource.d.ts.map +1 -1
  68. package/dist/src/data/sources/inlineSource.js +5 -5
  69. package/dist/src/data/sources/namedSource.d.ts +9 -9
  70. package/dist/src/data/sources/namedSource.d.ts.map +1 -1
  71. package/dist/src/data/sources/namedSource.js +6 -6
  72. package/dist/src/data/sources/sequenceSource.d.ts +7 -7
  73. package/dist/src/data/sources/sequenceSource.d.ts.map +1 -1
  74. package/dist/src/data/sources/sequenceSource.js +4 -4
  75. package/dist/src/data/sources/urlSource.d.ts +7 -7
  76. package/dist/src/data/sources/urlSource.d.ts.map +1 -1
  77. package/dist/src/data/sources/urlSource.js +4 -4
  78. package/dist/src/data/transforms/aggregate.d.ts +3 -3
  79. package/dist/src/data/transforms/aggregate.d.ts.map +1 -1
  80. package/dist/src/data/transforms/aggregate.js +2 -2
  81. package/dist/src/data/transforms/clone.d.ts +2 -2
  82. package/dist/src/data/transforms/clone.d.ts.map +1 -1
  83. package/dist/src/data/transforms/clone.js +1 -1
  84. package/dist/src/data/transforms/coverage.d.ts +3 -3
  85. package/dist/src/data/transforms/coverage.d.ts.map +1 -1
  86. package/dist/src/data/transforms/coverage.js +1 -1
  87. package/dist/src/data/transforms/coverage.test.js +1 -1
  88. package/dist/src/data/transforms/filter.d.ts +3 -3
  89. package/dist/src/data/transforms/filter.d.ts.map +1 -1
  90. package/dist/src/data/transforms/filter.js +2 -2
  91. package/dist/src/data/transforms/filter.test.js +1 -1
  92. package/dist/src/data/transforms/filterScoredLabels.d.ts +4 -4
  93. package/dist/src/data/transforms/filterScoredLabels.d.ts.map +1 -1
  94. package/dist/src/data/transforms/filterScoredLabels.js +3 -3
  95. package/dist/src/data/transforms/flatten.d.ts +2 -2
  96. package/dist/src/data/transforms/flatten.d.ts.map +1 -1
  97. package/dist/src/data/transforms/flatten.js +3 -3
  98. package/dist/src/data/transforms/flatten.test.js +6 -6
  99. package/dist/src/data/transforms/flattenCompressedExons.d.ts +2 -2
  100. package/dist/src/data/transforms/flattenCompressedExons.d.ts.map +1 -1
  101. package/dist/src/data/transforms/flattenCompressedExons.js +1 -1
  102. package/dist/src/data/transforms/flattenDelimited.d.ts +2 -2
  103. package/dist/src/data/transforms/flattenDelimited.d.ts.map +1 -1
  104. package/dist/src/data/transforms/flattenDelimited.js +2 -2
  105. package/dist/src/data/transforms/flattenDelimited.test.js +5 -5
  106. package/dist/src/data/transforms/flattenSequence.d.ts +2 -2
  107. package/dist/src/data/transforms/flattenSequence.d.ts.map +1 -1
  108. package/dist/src/data/transforms/flattenSequence.js +1 -1
  109. package/dist/src/data/transforms/flattenSequence.test.js +1 -1
  110. package/dist/src/data/transforms/formula.d.ts +3 -3
  111. package/dist/src/data/transforms/formula.d.ts.map +1 -1
  112. package/dist/src/data/transforms/formula.js +2 -2
  113. package/dist/src/data/transforms/identifier.d.ts +3 -3
  114. package/dist/src/data/transforms/identifier.d.ts.map +1 -1
  115. package/dist/src/data/transforms/identifier.js +2 -2
  116. package/dist/src/data/transforms/linearizeGenomicCoordinate.d.ts +3 -3
  117. package/dist/src/data/transforms/linearizeGenomicCoordinate.d.ts.map +1 -1
  118. package/dist/src/data/transforms/linearizeGenomicCoordinate.js +2 -2
  119. package/dist/src/data/transforms/measureText.d.ts +2 -2
  120. package/dist/src/data/transforms/measureText.d.ts.map +1 -1
  121. package/dist/src/data/transforms/measureText.js +1 -1
  122. package/dist/src/data/transforms/pileup.d.ts +3 -3
  123. package/dist/src/data/transforms/pileup.d.ts.map +1 -1
  124. package/dist/src/data/transforms/pileup.js +1 -1
  125. package/dist/src/data/transforms/pileup.test.js +1 -1
  126. package/dist/src/data/transforms/project.d.ts +2 -2
  127. package/dist/src/data/transforms/project.d.ts.map +1 -1
  128. package/dist/src/data/transforms/project.js +1 -1
  129. package/dist/src/data/transforms/project.test.js +1 -1
  130. package/dist/src/data/transforms/regexExtract.d.ts +2 -2
  131. package/dist/src/data/transforms/regexExtract.d.ts.map +1 -1
  132. package/dist/src/data/transforms/regexExtract.js +1 -1
  133. package/dist/src/data/transforms/regexExtract.test.js +3 -3
  134. package/dist/src/data/transforms/regexFold.d.ts +2 -2
  135. package/dist/src/data/transforms/regexFold.d.ts.map +1 -1
  136. package/dist/src/data/transforms/regexFold.js +2 -2
  137. package/dist/src/data/transforms/regexFold.test.js +3 -3
  138. package/dist/src/data/transforms/sample.d.ts +2 -2
  139. package/dist/src/data/transforms/sample.d.ts.map +1 -1
  140. package/dist/src/data/transforms/sample.js +2 -2
  141. package/dist/src/data/transforms/stack.d.ts +3 -3
  142. package/dist/src/data/transforms/stack.d.ts.map +1 -1
  143. package/dist/src/data/transforms/stack.js +2 -2
  144. package/dist/src/data/transforms/stack.test.js +2 -2
  145. package/dist/src/data/transforms/transformFactory.d.ts +5 -5
  146. package/dist/src/data/transforms/transformFactory.d.ts.map +1 -1
  147. package/dist/src/data/transforms/transformFactory.js +3 -3
  148. package/dist/src/encoder/accessor.d.ts +6 -6
  149. package/dist/src/encoder/accessor.d.ts.map +1 -1
  150. package/dist/src/encoder/accessor.js +4 -4
  151. package/dist/src/encoder/encoder.d.ts +59 -59
  152. package/dist/src/encoder/encoder.d.ts.map +1 -1
  153. package/dist/src/encoder/encoder.js +47 -42
  154. package/dist/src/encoder/encoder.test.js +4 -4
  155. package/dist/src/fonts/bmFontManager.d.ts +7 -7
  156. package/dist/src/fonts/bmFontManager.d.ts.map +1 -1
  157. package/dist/src/fonts/bmFontManager.js +3 -3
  158. package/dist/src/fonts/bmFontMetrics.d.ts +6 -6
  159. package/dist/src/fonts/bmFontMetrics.d.ts.map +1 -1
  160. package/dist/src/fonts/bmFontMetrics.js +4 -4
  161. package/dist/src/genome/genome.d.ts +7 -7
  162. package/dist/src/genome/genome.d.ts.map +1 -1
  163. package/dist/src/genome/genome.js +2 -2
  164. package/dist/src/genome/genomeStore.d.ts +2 -2
  165. package/dist/src/genome/genomeStore.d.ts.map +1 -1
  166. package/dist/src/genome/genomeStore.js +1 -1
  167. package/dist/src/genome/locusFormat.d.ts +7 -7
  168. package/dist/src/genome/locusFormat.d.ts.map +1 -1
  169. package/dist/src/genome/locusFormat.js +4 -4
  170. package/dist/src/genome/scaleIndex.d.ts +1 -1
  171. package/dist/src/genome/scaleIndex.d.ts.map +1 -1
  172. package/dist/src/genome/scaleIndex.js +1 -1
  173. package/dist/src/genome/scaleLocus.d.ts +2 -2
  174. package/dist/src/genome/scaleLocus.d.ts.map +1 -1
  175. package/dist/src/genome/scaleLocus.js +3 -3
  176. package/dist/src/genomeSpy.d.ts +12 -12
  177. package/dist/src/genomeSpy.d.ts.map +1 -1
  178. package/dist/src/genomeSpy.js +51 -34
  179. package/dist/src/gl/arrayBuilder.d.ts.map +1 -1
  180. package/dist/src/gl/dataToVertices.d.ts +19 -19
  181. package/dist/src/gl/dataToVertices.d.ts.map +1 -1
  182. package/dist/src/gl/dataToVertices.js +11 -11
  183. package/dist/src/gl/link.vertex.glsl.js +1 -1
  184. package/dist/src/gl/point.fragment.glsl.js +1 -1
  185. package/dist/src/gl/point.vertex.glsl.js +1 -1
  186. package/dist/src/gl/webGLHelper.d.ts +4 -4
  187. package/dist/src/gl/webGLHelper.d.ts.map +1 -1
  188. package/dist/src/gl/webGLHelper.js +2 -2
  189. package/dist/src/index.d.ts.map +1 -1
  190. package/dist/src/index.js +1 -1
  191. package/dist/src/marks/link.d.ts.map +1 -1
  192. package/dist/src/marks/link.js +35 -14
  193. package/dist/src/marks/mark.d.ts +35 -32
  194. package/dist/src/marks/mark.d.ts.map +1 -1
  195. package/dist/src/marks/mark.js +26 -23
  196. package/dist/src/marks/markUtils.d.ts +10 -10
  197. package/dist/src/marks/markUtils.d.ts.map +1 -1
  198. package/dist/src/marks/markUtils.js +5 -5
  199. package/dist/src/marks/pointMark.d.ts +1 -1
  200. package/dist/src/marks/pointMark.d.ts.map +1 -1
  201. package/dist/src/marks/pointMark.js +7 -7
  202. package/dist/src/marks/rectMark.d.ts +2 -2
  203. package/dist/src/marks/rectMark.d.ts.map +1 -1
  204. package/dist/src/marks/rectMark.js +7 -7
  205. package/dist/src/marks/rule.js +6 -6
  206. package/dist/src/marks/text.d.ts +1 -1
  207. package/dist/src/marks/text.d.ts.map +1 -1
  208. package/dist/src/marks/text.js +6 -6
  209. package/dist/src/scale/colorUtils.d.ts +4 -4
  210. package/dist/src/scale/colorUtils.d.ts.map +1 -1
  211. package/dist/src/scale/colorUtils.js +2 -2
  212. package/dist/src/scale/glslScaleGenerator.d.ts +3 -3
  213. package/dist/src/scale/glslScaleGenerator.d.ts.map +1 -1
  214. package/dist/src/scale/glslScaleGenerator.js +2 -2
  215. package/dist/src/scale/scale.d.ts +3 -3
  216. package/dist/src/scale/scale.d.ts.map +1 -1
  217. package/dist/src/scale/scale.js +2 -2
  218. package/dist/src/scale/ticks.d.ts +4 -4
  219. package/dist/src/scale/ticks.js +4 -4
  220. package/dist/src/spec/axis.d.ts +1 -1
  221. package/dist/src/spec/channel.d.ts +2 -2
  222. package/dist/src/spec/data.d.ts +2 -2
  223. package/dist/src/spec/mark.d.ts +36 -14
  224. package/dist/src/spec/root.d.ts +2 -2
  225. package/dist/src/spec/sampleView.d.ts +5 -5
  226. package/dist/src/spec/scale.d.ts +1 -1
  227. package/dist/src/spec/title.d.ts +1 -1
  228. package/dist/src/spec/view.d.ts +36 -9
  229. package/dist/src/tooltip/dataTooltipHandler.js +1 -1
  230. package/dist/src/tooltip/refseqGeneTooltipHandler.d.ts.map +1 -1
  231. package/dist/src/tooltip/refseqGeneTooltipHandler.js +1 -1
  232. package/dist/src/tooltip/tooltipHandler.d.ts +1 -1
  233. package/dist/src/tooltip/tooltipHandler.d.ts.map +1 -1
  234. package/dist/src/tooltip/tooltipHandler.ts +1 -1
  235. package/dist/src/types/embedApi.d.ts +3 -3
  236. package/dist/src/types/encoder.d.ts +4 -4
  237. package/dist/src/types/flowBatch.d.ts +1 -1
  238. package/dist/src/types/rendering.d.ts +3 -3
  239. package/dist/src/types/scaleResolutionApi.d.ts +2 -2
  240. package/dist/src/types/viewContext.d.ts +41 -12
  241. package/dist/src/utils/animator.d.ts +2 -2
  242. package/dist/src/utils/animator.d.ts.map +1 -1
  243. package/dist/src/utils/animator.js +1 -1
  244. package/dist/src/utils/inertia.d.ts +3 -3
  245. package/dist/src/utils/inertia.d.ts.map +1 -1
  246. package/dist/src/utils/inertia.js +1 -1
  247. package/dist/src/utils/interactionEvent.d.ts +5 -5
  248. package/dist/src/utils/interactionEvent.d.ts.map +1 -1
  249. package/dist/src/utils/interactionEvent.js +2 -2
  250. package/dist/src/utils/trees.js +1 -1
  251. package/dist/src/view/axisGridView.d.ts +17 -16
  252. package/dist/src/view/axisGridView.d.ts.map +1 -1
  253. package/dist/src/view/axisGridView.js +24 -20
  254. package/dist/src/view/axisResolution.d.ts +10 -10
  255. package/dist/src/view/axisResolution.d.ts.map +1 -1
  256. package/dist/src/view/axisResolution.js +6 -6
  257. package/dist/src/view/axisResolution.test.js +1 -1
  258. package/dist/src/view/axisView.d.ts +18 -17
  259. package/dist/src/view/axisView.d.ts.map +1 -1
  260. package/dist/src/view/axisView.js +39 -35
  261. package/dist/src/view/concatView.d.ts +5 -5
  262. package/dist/src/view/concatView.d.ts.map +1 -1
  263. package/dist/src/view/concatView.js +23 -23
  264. package/dist/src/view/containerView.d.ts +10 -8
  265. package/dist/src/view/containerView.d.ts.map +1 -1
  266. package/dist/src/view/containerView.js +18 -13
  267. package/dist/src/view/facetView.d.ts +12 -12
  268. package/dist/src/view/facetView.d.ts.map +1 -1
  269. package/dist/src/view/facetView.js +19 -19
  270. package/dist/src/view/flowBuilder.d.ts +4 -4
  271. package/dist/src/view/flowBuilder.d.ts.map +1 -1
  272. package/dist/src/view/flowBuilder.js +13 -13
  273. package/dist/src/view/flowBuilder.test.js +7 -7
  274. package/dist/src/view/gridView.d.ts +63 -35
  275. package/dist/src/view/gridView.d.ts.map +1 -1
  276. package/dist/src/view/gridView.js +400 -113
  277. package/dist/src/view/layerView.d.ts +12 -14
  278. package/dist/src/view/layerView.d.ts.map +1 -1
  279. package/dist/src/view/layerView.js +55 -26
  280. package/dist/src/{utils → view}/layout/flexLayout.d.ts +6 -6
  281. package/dist/src/view/layout/flexLayout.d.ts.map +1 -0
  282. package/dist/src/{utils → view}/layout/flexLayout.js +4 -4
  283. package/dist/src/view/layout/grid.d.ts.map +1 -0
  284. package/dist/src/{utils → view}/layout/padding.d.ts +4 -4
  285. package/dist/src/view/layout/padding.d.ts.map +1 -0
  286. package/dist/src/{utils → view}/layout/padding.js +2 -2
  287. package/dist/src/view/layout/point.d.ts.map +1 -0
  288. package/dist/src/{utils → view}/layout/rectangle.d.ts +8 -2
  289. package/dist/src/view/layout/rectangle.d.ts.map +1 -0
  290. package/dist/src/{utils → view}/layout/rectangle.js +22 -2
  291. package/dist/src/{utils → view}/layout/rectangle.test.js +8 -0
  292. package/dist/src/view/renderingContext/bufferedViewRenderingContext.d.ts +10 -10
  293. package/dist/src/view/renderingContext/bufferedViewRenderingContext.d.ts.map +1 -1
  294. package/dist/src/view/renderingContext/bufferedViewRenderingContext.js +10 -10
  295. package/dist/src/view/renderingContext/compositeViewRenderingContext.d.ts +2 -2
  296. package/dist/src/view/renderingContext/compositeViewRenderingContext.d.ts.map +1 -1
  297. package/dist/src/view/renderingContext/compositeViewRenderingContext.js +4 -4
  298. package/dist/src/view/renderingContext/debuggingViewRenderingContext.d.ts +4 -4
  299. package/dist/src/view/renderingContext/debuggingViewRenderingContext.d.ts.map +1 -1
  300. package/dist/src/view/renderingContext/debuggingViewRenderingContext.js +3 -3
  301. package/dist/src/view/renderingContext/layoutRecorderViewRenderingContext.d.ts +8 -8
  302. package/dist/src/view/renderingContext/layoutRecorderViewRenderingContext.d.ts.map +1 -1
  303. package/dist/src/view/renderingContext/layoutRecorderViewRenderingContext.js +4 -4
  304. package/dist/src/view/renderingContext/simpleViewRenderingContext.d.ts +6 -6
  305. package/dist/src/view/renderingContext/simpleViewRenderingContext.d.ts.map +1 -1
  306. package/dist/src/view/renderingContext/simpleViewRenderingContext.js +7 -7
  307. package/dist/src/view/renderingContext/svgViewRenderingContext.d.ts +4 -4
  308. package/dist/src/view/renderingContext/svgViewRenderingContext.d.ts.map +1 -1
  309. package/dist/src/view/renderingContext/svgViewRenderingContext.js +6 -6
  310. package/dist/src/view/renderingContext/viewRenderingContext.d.ts +10 -10
  311. package/dist/src/view/renderingContext/viewRenderingContext.d.ts.map +1 -1
  312. package/dist/src/view/renderingContext/viewRenderingContext.js +5 -5
  313. package/dist/src/view/scaleResolution.d.ts +21 -17
  314. package/dist/src/view/scaleResolution.d.ts.map +1 -1
  315. package/dist/src/view/scaleResolution.js +33 -26
  316. package/dist/src/view/scaleResolution.test.js +57 -72
  317. package/dist/src/view/testUtils.d.ts +6 -15
  318. package/dist/src/view/testUtils.d.ts.map +1 -1
  319. package/dist/src/view/testUtils.js +40 -44
  320. package/dist/src/view/title.d.ts +3 -3
  321. package/dist/src/view/title.d.ts.map +1 -1
  322. package/dist/src/view/title.js +12 -12
  323. package/dist/src/view/unitView.d.ts +31 -30
  324. package/dist/src/view/unitView.d.ts.map +1 -1
  325. package/dist/src/view/unitView.js +30 -22
  326. package/dist/src/view/view.d.ts +86 -57
  327. package/dist/src/view/view.d.ts.map +1 -1
  328. package/dist/src/view/view.js +148 -103
  329. package/dist/src/view/view.test.js +9 -8
  330. package/dist/src/view/viewError.d.ts +9 -0
  331. package/dist/src/view/viewError.d.ts.map +1 -0
  332. package/dist/src/view/viewError.js +11 -0
  333. package/dist/src/view/viewFactory.d.ts +53 -20
  334. package/dist/src/view/viewFactory.d.ts.map +1 -1
  335. package/dist/src/view/viewFactory.js +148 -33
  336. package/dist/src/view/viewFactory.test.js +8 -0
  337. package/dist/src/view/viewUtils.d.ts +14 -12
  338. package/dist/src/view/viewUtils.d.ts.map +1 -1
  339. package/dist/src/view/viewUtils.js +10 -63
  340. package/dist/src/view/zoom.d.ts +4 -4
  341. package/dist/src/view/zoom.d.ts.map +1 -1
  342. package/dist/src/view/zoom.js +3 -3
  343. package/package.json +7 -5
  344. package/dist/src/utils/layout/flexLayout.d.ts.map +0 -1
  345. package/dist/src/utils/layout/grid.d.ts.map +0 -1
  346. package/dist/src/utils/layout/padding.d.ts.map +0 -1
  347. package/dist/src/utils/layout/point.d.ts.map +0 -1
  348. package/dist/src/utils/layout/rectangle.d.ts.map +0 -1
  349. package/dist/src/view/implicitRootView.d.ts +0 -9
  350. package/dist/src/view/implicitRootView.d.ts.map +0 -1
  351. package/dist/src/view/implicitRootView.js +0 -23
  352. package/dist/src/view/importView.d.ts +0 -17
  353. package/dist/src/view/importView.d.ts.map +0 -1
  354. package/dist/src/view/importView.js +0 -22
  355. /package/dist/src/{utils → view}/layout/flexLayout.test.js +0 -0
  356. /package/dist/src/{utils → view}/layout/grid.d.ts +0 -0
  357. /package/dist/src/{utils → view}/layout/grid.js +0 -0
  358. /package/dist/src/{utils → view}/layout/grid.test.js +0 -0
  359. /package/dist/src/{utils → view}/layout/point.d.ts +0 -0
  360. /package/dist/src/{utils → view}/layout/point.js +0 -0
@@ -1,17 +1,15 @@
1
- var L7=Object.defineProperty;var R7=(ge,de,Je)=>de in ge?L7(ge,de,{enumerable:!0,configurable:!0,writable:!0,value:Je}):ge[de]=Je;var an=(ge,de,Je)=>(R7(ge,typeof de!="symbol"?de+"":de,Je),Je),Hp=(ge,de,Je)=>{if(!de.has(ge))throw TypeError("Cannot "+Je)};var ie=(ge,de,Je)=>(Hp(ge,de,"read from private field"),Je?Je.call(ge):de.get(ge)),ye=(ge,de,Je)=>{if(de.has(ge))throw TypeError("Cannot add the same private member more than once");de instanceof WeakSet?de.add(ge):de.set(ge,Je)},yr=(ge,de,Je,Ni)=>(Hp(ge,de,"write to private field"),Ni?Ni.call(ge,Je):de.set(ge,Je),Je);var vS=(ge,de,Je,Ni)=>({set _(Zc){yr(ge,de,Zc,Je)},get _(){return ie(ge,de,Ni)}}),fe=(ge,de,Je)=>(Hp(ge,de,"access private method"),Je);(function(ge,de){typeof exports=="object"&&typeof module<"u"?de(exports):typeof define=="function"&&define.amd?define(["exports"],de):(ge=typeof globalThis<"u"?globalThis:ge||self,de(ge.genomeSpyEmbed={}))})(this,function(ge){var Ku,Qp,qo,Ju,ef,Lc,ES,tf,Vp,Br,Zo,xt,hr,Ti,Rc,SS,Yo,Vc,Lr,Ta,nf,qp,Oc,_S,Pp,O7,rf,Zp,af,Wo,Xo,rn,Ia,$o,Rr,Na,zc,CS,Pc,DS,Ma,lf,of,Yp,sf,Wp,uf,Xp,Uc,IS,Ko,qc,jc,MS;"use strict";function de(t,e,n){return t.fields=e||[],t.fname=n,t}function Je(t){return t==null?null:t.fname}function Ni(t){return t==null?null:t.fields}function Zc(t){return t.length===1?TS(t[0]):NS(t)}const TS=t=>function(e){return e[t]},NS=t=>{const e=t.length;return function(n){for(let r=0;r<e;++r)n=n[t[r]];return n}};function $e(t){throw Error(t)}function FS(t){const e=[],n=t.length;let r=null,i=0,a="",o,s,f;t=t+"";function u(){e.push(a+t.substring(o,s)),a="",o=s+1}for(o=s=0;s<n;++s)if(f=t[s],f==="\\")a+=t.substring(o,s),a+=t.substring(++s,++s),o=s;else if(f===r)u(),r=null,i=-1;else{if(r)continue;o===i&&f==='"'||o===i&&f==="'"?(o=s+1,r=f):f==="."&&!i?s>o?u():o=s+1:f==="["?(s>o&&u(),i=o=s+1):f==="]"&&(i||$e("Access path missing open bracket: "+t),i>0&&u(),i=0,o=s+1)}return i&&$e("Access path missing closing bracket: "+t),r&&$e("Access path missing closing quote: "+t),s>o&&(s++,u()),e}function cf(t,e,n){const r=FS(t);return t=r.length===1?r[0]:t,de((n&&n.get||Zc)(r),[t],e||t)}cf("id");const hf=de(t=>t,[],"identity");de(()=>0,[],"zero"),de(()=>1,[],"one"),de(()=>!0,[],"true"),de(()=>!1,[],"false");var Xt=Array.isArray;function Dn(t){return t===Object(t)}function In(t){return t[t.length-1]}function Jo(t){return t==null||t===""?null:+t}const $p=t=>e=>t*Math.exp(e),Kp=t=>e=>Math.log(t*e),kS=t=>e=>Math.sign(e)*Math.log1p(Math.abs(e/t)),BS=t=>e=>Math.sign(e)*Math.expm1(Math.abs(e))*t,df=t=>e=>e<0?-Math.pow(-e,t):Math.pow(e,t);function Yc(t,e,n,r){const i=n(t[0]),a=n(In(t)),o=(a-i)*e;return[r(i-o),r(a-o)]}function LS(t,e){return Yc(t,e,Jo,hf)}function RS(t,e){var n=Math.sign(t[0]);return Yc(t,e,Kp(n),$p(n))}function OS(t,e,n){return Yc(t,e,df(n),df(1/n))}function gf(t,e,n,r,i){const a=r(t[0]),o=r(In(t)),s=e!=null?r(e):(a+o)/2;return[i(s+(a-s)*n),i(s+(o-s)*n)]}function Jp(t,e,n){return gf(t,e,n,Jo,hf)}function em(t,e,n){const r=Math.sign(t[0]);return gf(t,e,n,Kp(r),$p(r))}function Wc(t,e,n,r){return gf(t,e,n,df(r),df(1/r))}function zS(t,e,n,r){return gf(t,e,n,kS(r),BS(r))}function Xc(t){return t!=null?Xt(t)?t:[t]:[]}function PS(t,e,n){let r=t[0],i=t[1],a;return i<r&&(a=i,i=r,r=a),a=i-r,a>=n-e?[e,n]:[r=Math.min(Math.max(r,e),n-a),r+a]}function Bt(t){return typeof t=="function"}const US="descending";function tm(t,e,n){n=n||{},e=Xc(e)||[];const r=[],i=[],a={},o=n.comparator||jS;return Xc(t).forEach((s,f)=>{s!=null&&(r.push(e[f]===US?-1:1),i.push(s=Bt(s)?s:cf(s,null,n)),(Ni(s)||[]).forEach(u=>a[u]=1))}),i.length===0?null:de(o(i,r),Object.keys(a))}const nm=(t,e)=>(t<e||t==null)&&e!=null?-1:(t>e||e==null)&&t!=null?1:(e=e instanceof Date?+e:e,(t=t instanceof Date?+t:t)!==t&&e===e?-1:e!==e&&t===t?1:0),jS=(t,e)=>t.length===1?GS(t[0],e[0]):HS(t,e,t.length),GS=(t,e)=>function(n,r){return nm(t(n),t(r))*e},HS=(t,e,n)=>(e.push(0),function(r,i){let a,o=0,s=-1;for(;o===0&&++s<n;)a=t[s],o=nm(a(r),a(i));return o*e[s]});function QS(t){return Bt(t)?t:()=>t}function $c(t){for(let e,n,r=1,i=arguments.length;r<i;++r){e=arguments[r];for(n in e)t[n]=e[n]}return t}const VS=Object.prototype.hasOwnProperty;function Fi(t,e){return VS.call(t,e)}function pf(t){return typeof t=="boolean"}function qS(t){return Object.prototype.toString.call(t)==="[object Date]"}function ZS(t){return t&&Bt(t[Symbol.iterator])}function Lt(t){return typeof t=="number"}function Ke(t){return typeof t=="string"}function YS(t,e){const n=t[0],r=In(t),i=+e;return i?i===1?r:n+i*(r-n):n}function mf(t){return t&&In(t)-t[0]||0}function bf(t){return Xt(t)?"["+t.map(bf)+"]":Dn(t)||Ke(t)?JSON.stringify(t).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):t}function WS(t){return t==null||t===""?null:!t||t==="false"||t==="0"?!1:!!t}const XS=t=>Lt(t)||qS(t)?t:Date.parse(t);function $S(t,e){return e=e||XS,t==null||t===""?null:e(t)}function KS(t){return t==null||t===""?null:t+""}function yf(t){const e={},n=t.length;for(let r=0;r<n;++r)e[t[r]]=!0;return e}var rm={},Kc={},Jc=34,es=10,eh=13;function im(t){return new Function("d","return {"+t.map(function(e,n){return JSON.stringify(e)+": d["+n+'] || ""'}).join(",")+"}")}function JS(t,e){var n=im(t);return function(r,i){return e(n(r),i,t)}}function am(t){var e=Object.create(null),n=[];return t.forEach(function(r){for(var i in r)i in e||n.push(e[i]=i)}),n}function Rt(t,e){var n=t+"",r=n.length;return r<e?new Array(e-r+1).join(0)+n:n}function e_(t){return t<0?"-"+Rt(-t,6):t>9999?"+"+Rt(t,6):Rt(t,4)}function t_(t){var e=t.getUTCHours(),n=t.getUTCMinutes(),r=t.getUTCSeconds(),i=t.getUTCMilliseconds();return isNaN(t)?"Invalid Date":e_(t.getUTCFullYear())+"-"+Rt(t.getUTCMonth()+1,2)+"-"+Rt(t.getUTCDate(),2)+(i?"T"+Rt(e,2)+":"+Rt(n,2)+":"+Rt(r,2)+"."+Rt(i,3)+"Z":r?"T"+Rt(e,2)+":"+Rt(n,2)+":"+Rt(r,2)+"Z":n||e?"T"+Rt(e,2)+":"+Rt(n,2)+"Z":"")}function om(t){var e=new RegExp('["'+t+`
2
- \r]`),n=t.charCodeAt(0);function r(c,h){var d,g,b=i(c,function(y,w){if(d)return d(y,w-1);g=y,d=h?JS(y,h):im(y)});return b.columns=g||[],b}function i(c,h){var d=[],g=c.length,b=0,y=0,w,E=g<=0,_=!1;c.charCodeAt(g-1)===es&&--g,c.charCodeAt(g-1)===eh&&--g;function D(){if(E)return Kc;if(_)return _=!1,rm;var N,M=b,R;if(c.charCodeAt(M)===Jc){for(;b++<g&&c.charCodeAt(b)!==Jc||c.charCodeAt(++b)===Jc;);return(N=b)>=g?E=!0:(R=c.charCodeAt(b++))===es?_=!0:R===eh&&(_=!0,c.charCodeAt(b)===es&&++b),c.slice(M+1,N-1).replace(/""/g,'"')}for(;b<g;){if((R=c.charCodeAt(N=b++))===es)_=!0;else if(R===eh)_=!0,c.charCodeAt(b)===es&&++b;else if(R!==n)continue;return c.slice(M,N)}return E=!0,c.slice(M,g)}for(;(w=D())!==Kc;){for(var T=[];w!==rm&&w!==Kc;)T.push(w),w=D();h&&(T=h(T,y++))==null||d.push(T)}return d}function a(c,h){return c.map(function(d){return h.map(function(g){return l(d[g])}).join(t)})}function o(c,h){return h==null&&(h=am(c)),[h.map(l).join(t)].concat(a(c,h)).join(`
3
- `)}function s(c,h){return h==null&&(h=am(c)),a(c,h).join(`
4
- `)}function f(c){return c.map(u).join(`
5
- `)}function u(c){return c.map(l).join(t)}function l(c){return c==null?"":c instanceof Date?t_(c):e.test(c+="")?'"'+c.replace(/"/g,'""')+'"':c}return{parse:r,parseRows:i,format:o,formatBody:s,formatRows:f,formatRow:u,formatValue:l}}var n_=om(" "),r_=n_.parseRows;function i_(t){return t}function a_(t){if(t==null)return i_;var e,n,r=t.scale[0],i=t.scale[1],a=t.translate[0],o=t.translate[1];return function(s,f){f||(e=n=0);var u=2,l=s.length,c=new Array(l);for(c[0]=(e+=s[0])*r+a,c[1]=(n+=s[1])*i+o;u<l;)c[u]=s[u],++u;return c}}function o_(t,e){for(var n,r=t.length,i=r-e;i<--r;)n=t[i],t[i++]=t[r],t[r]=n}function s_(t,e){return typeof e=="string"&&(e=t.objects[e]),e.type==="GeometryCollection"?{type:"FeatureCollection",features:e.geometries.map(function(n){return sm(t,n)})}:sm(t,e)}function sm(t,e){var n=e.id,r=e.bbox,i=e.properties==null?{}:e.properties,a=um(t,e);return n==null&&r==null?{type:"Feature",properties:i,geometry:a}:r==null?{type:"Feature",id:n,properties:i,geometry:a}:{type:"Feature",id:n,bbox:r,properties:i,geometry:a}}function um(t,e){var n=a_(t.transform),r=t.arcs;function i(l,c){c.length&&c.pop();for(var h=r[l<0?~l:l],d=0,g=h.length;d<g;++d)c.push(n(h[d],d));l<0&&o_(c,g)}function a(l){return n(l)}function o(l){for(var c=[],h=0,d=l.length;h<d;++h)i(l[h],c);return c.length<2&&c.push(c[0]),c}function s(l){for(var c=o(l);c.length<4;)c.push(c[0]);return c}function f(l){return l.map(s)}function u(l){var c=l.type,h;switch(c){case"GeometryCollection":return{type:c,geometries:l.geometries.map(u)};case"Point":h=a(l.coordinates);break;case"MultiPoint":h=l.coordinates.map(a);break;case"LineString":h=o(l.arcs);break;case"MultiLineString":h=l.arcs.map(o);break;case"Polygon":h=f(l.arcs);break;case"MultiPolygon":h=l.arcs.map(f);break;default:return null}return{type:c,coordinates:h}}return u(e)}function u_(t,e){var n={},r={},i={},a=[],o=-1;e.forEach(function(u,l){var c=t.arcs[u<0?~u:u],h;c.length<3&&!c[1][0]&&!c[1][1]&&(h=e[++o],e[o]=u,e[l]=h)}),e.forEach(function(u){var l=s(u),c=l[0],h=l[1],d,g;if(d=i[c])if(delete i[d.end],d.push(u),d.end=h,g=r[h]){delete r[g.start];var b=g===d?d:d.concat(g);r[b.start=d.start]=i[b.end=g.end]=b}else r[d.start]=i[d.end]=d;else if(d=r[h])if(delete r[d.start],d.unshift(u),d.start=c,g=i[c]){delete i[g.end];var y=g===d?d:g.concat(d);r[y.start=g.start]=i[y.end=d.end]=y}else r[d.start]=i[d.end]=d;else d=[u],r[d.start=c]=i[d.end=h]=d});function s(u){var l=t.arcs[u<0?~u:u],c=l[0],h;return t.transform?(h=[0,0],l.forEach(function(d){h[0]+=d[0],h[1]+=d[1]})):h=l[l.length-1],u<0?[h,c]:[c,h]}function f(u,l){for(var c in u){var h=u[c];delete l[h.start],delete h.start,delete h.end,h.forEach(function(d){n[d<0?~d:d]=1}),a.push(h)}}return f(i,r),f(r,i),e.forEach(function(u){n[u<0?~u:u]||a.push([u])}),a}function f_(t){return um(t,l_.apply(this,arguments))}function l_(t,e,n){var r,i,a;if(arguments.length>1)r=c_(t,e,n);else for(i=0,r=new Array(a=t.arcs.length);i<a;++i)r[i]=i;return{type:"MultiLineString",arcs:u_(t,r)}}function c_(t,e,n){var r=[],i=[],a;function o(c){var h=c<0?~c:c;(i[h]||(i[h]=[])).push({i:c,g:a})}function s(c){c.forEach(o)}function f(c){c.forEach(s)}function u(c){c.forEach(f)}function l(c){switch(a=c,c.type){case"GeometryCollection":c.geometries.forEach(l);break;case"LineString":s(c.arcs);break;case"MultiLineString":case"Polygon":f(c.arcs);break;case"MultiPolygon":u(c.arcs);break}}return l(e),i.forEach(n==null?function(c){r.push(c[0].i)}:function(c){n(c[0].g,c[c.length-1].g)&&r.push(c[0].i)}),r}function ts(t,e){return t==null||e==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function h_(t,e){return t==null||e==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function wf(t){let e,n,r;t.length!==2?(e=ts,n=(s,f)=>ts(t(s),f),r=(s,f)=>t(s)-f):(e=t===ts||t===h_?t:d_,n=t,r=t);function i(s,f,u=0,l=s.length){if(u<l){if(e(f,f)!==0)return l;do{const c=u+l>>>1;n(s[c],f)<0?u=c+1:l=c}while(u<l)}return u}function a(s,f,u=0,l=s.length){if(u<l){if(e(f,f)!==0)return l;do{const c=u+l>>>1;n(s[c],f)<=0?u=c+1:l=c}while(u<l)}return u}function o(s,f,u=0,l=s.length){const c=i(s,f,u,l-1);return c>u&&r(s[c-1],f)>-r(s[c],f)?c-1:c}return{left:i,center:o,right:a}}function d_(){return 0}function fm(t){return t===null?NaN:+t}const lm=wf(ts),th=lm.right;lm.left,wf(fm).center;const Fa=th;function g_(t,e){let n,r;if(e===void 0)for(const i of t)i!=null&&(n===void 0?i>=i&&(n=r=i):(n>i&&(n=i),r<i&&(r=i)));else{let i=-1;for(let a of t)(a=e(a,++i,t))!=null&&(n===void 0?a>=a&&(n=r=a):(n>a&&(n=a),r<a&&(r=a)))}return[n,r]}class ki extends Map{constructor(e,n=b_){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),e!=null)for(const[r,i]of e)this.set(r,i)}get(e){return super.get(cm(this,e))}has(e){return super.has(cm(this,e))}set(e,n){return super.set(p_(this,e),n)}delete(e){return super.delete(m_(this,e))}}function cm({_intern:t,_key:e},n){const r=e(n);return t.has(r)?t.get(r):n}function p_({_intern:t,_key:e},n){const r=e(n);return t.has(r)?t.get(r):(t.set(r,n),n)}function m_({_intern:t,_key:e},n){const r=e(n);return t.has(r)&&(n=t.get(r),t.delete(r)),n}function b_(t){return t!==null&&typeof t=="object"?t.valueOf():t}function nh(t){return t}function xf(t,...e){return hm(t,nh,nh,e)}function y_(t,...e){return hm(t,Array.from,nh,e)}function hm(t,e,n,r){return function i(a,o){if(o>=r.length)return n(a);const s=new ki,f=r[o++];let u=-1;for(const l of a){const c=f(l,++u,a),h=s.get(c);h?h.push(l):s.set(c,[l])}for(const[l,c]of s)s.set(l,i(c,o));return e(s)}(t,0)}var rh=Math.sqrt(50),ih=Math.sqrt(10),ah=Math.sqrt(2);function vf(t,e,n){var r,i=-1,a,o,s;if(e=+e,t=+t,n=+n,t===e&&n>0)return[t];if((r=e<t)&&(a=t,t=e,e=a),(s=dm(t,e,n))===0||!isFinite(s))return[];if(s>0){let f=Math.round(t/s),u=Math.round(e/s);for(f*s<t&&++f,u*s>e&&--u,o=new Array(a=u-f+1);++i<a;)o[i]=(f+i)*s}else{s=-s;let f=Math.round(t*s),u=Math.round(e*s);for(f/s<t&&++f,u/s>e&&--u,o=new Array(a=u-f+1);++i<a;)o[i]=(f+i)/s}return r&&o.reverse(),o}function dm(t,e,n){var r=(e-t)/Math.max(0,n),i=Math.floor(Math.log(r)/Math.LN10),a=r/Math.pow(10,i);return i>=0?(a>=rh?10:a>=ih?5:a>=ah?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(a>=rh?10:a>=ih?5:a>=ah?2:1)}function Bi(t,e,n){var r=Math.abs(e-t)/Math.max(0,n),i=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),a=r/i;return a>=rh?i*=10:a>=ih?i*=5:a>=ah&&(i*=2),e<t?-i:i}function gm(t,e,n=fm){if(r=t.length){if((e=+e)<=0||r<2)return+n(t[0],0,t);if(e>=1)return+n(t[r-1],r-1,t);var r,i=(r-1)*e,a=Math.floor(i),o=+n(t[a],a,t),s=+n(t[a+1],a+1,t);return o+(s-o)*(i-a)}}function ns(t,e,n){t=+t,e=+e,n=(i=arguments.length)<2?(e=t,t=0,1):i<3?1:+n;for(var r=-1,i=Math.max(0,Math.ceil((e-t)/n))|0,a=new Array(i);++r<i;)a[r]=t+r*n;return a}function Af(t,e){let n=0;if(e===void 0)for(let r of t)(r=+r)&&(n+=r);else{let r=-1;for(let i of t)(i=+e(i,++r,t))&&(n+=i)}return n}function w_(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function Ef(t,e){if((n=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var n,r=t.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+t.slice(n+1)]}function ka(t){return t=Ef(Math.abs(t)),t?t[1]:NaN}function x_(t,e){return function(n,r){for(var i=n.length,a=[],o=0,s=t[0],f=0;i>0&&s>0&&(f+s+1>r&&(s=Math.max(1,r-f)),a.push(n.substring(i-=s,i+s)),!((f+=s+1)>r));)s=t[o=(o+1)%t.length];return a.reverse().join(e)}}function v_(t){return function(e){return e.replace(/[0-9]/g,function(n){return t[+n]})}}var A_=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function jr(t){if(!(e=A_.exec(t)))throw new Error("invalid format: "+t);var e;return new oh({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}jr.prototype=oh.prototype;function oh(t){this.fill=t.fill===void 0?" ":t.fill+"",this.align=t.align===void 0?">":t.align+"",this.sign=t.sign===void 0?"-":t.sign+"",this.symbol=t.symbol===void 0?"":t.symbol+"",this.zero=!!t.zero,this.width=t.width===void 0?void 0:+t.width,this.comma=!!t.comma,this.precision=t.precision===void 0?void 0:+t.precision,this.trim=!!t.trim,this.type=t.type===void 0?"":t.type+""}oh.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function E_(t){e:for(var e=t.length,n=1,r=-1,i;n<e;++n)switch(t[n]){case".":r=i=n;break;case"0":r===0&&(r=n),i=n;break;default:if(!+t[n])break e;r>0&&(r=0);break}return r>0?t.slice(0,r)+t.slice(i+1):t}var pm;function S_(t,e){var n=Ef(t,e);if(!n)return t+"";var r=n[0],i=n[1],a=i-(pm=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,o=r.length;return a===o?r:a>o?r+new Array(a-o+1).join("0"):a>0?r.slice(0,a)+"."+r.slice(a):"0."+new Array(1-a).join("0")+Ef(t,Math.max(0,e+a-1))[0]}function mm(t,e){var n=Ef(t,e);if(!n)return t+"";var r=n[0],i=n[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}const bm={"%":(t,e)=>(t*100).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:w_,e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>mm(t*100,e),r:mm,s:S_,X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function ym(t){return t}var wm=Array.prototype.map,xm=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function __(t){var e=t.grouping===void 0||t.thousands===void 0?ym:x_(wm.call(t.grouping,Number),t.thousands+""),n=t.currency===void 0?"":t.currency[0]+"",r=t.currency===void 0?"":t.currency[1]+"",i=t.decimal===void 0?".":t.decimal+"",a=t.numerals===void 0?ym:v_(wm.call(t.numerals,String)),o=t.percent===void 0?"%":t.percent+"",s=t.minus===void 0?"−":t.minus+"",f=t.nan===void 0?"NaN":t.nan+"";function u(c){c=jr(c);var h=c.fill,d=c.align,g=c.sign,b=c.symbol,y=c.zero,w=c.width,E=c.comma,_=c.precision,D=c.trim,T=c.type;T==="n"?(E=!0,T="g"):bm[T]||(_===void 0&&(_=12),D=!0,T="g"),(y||h==="0"&&d==="=")&&(y=!0,h="0",d="=");var N=b==="$"?n:b==="#"&&/[boxX]/.test(T)?"0"+T.toLowerCase():"",M=b==="$"?r:/[%p]/.test(T)?o:"",R=bm[T],C=/[defgprs%]/.test(T);_=_===void 0?6:/[gprs]/.test(T)?Math.max(1,Math.min(21,_)):Math.max(0,Math.min(20,_));function B(L){var ee=N,ne=M,J,be,Se;if(T==="c")ne=R(L)+ne,L="";else{L=+L;var Te=L<0||1/L<0;if(L=isNaN(L)?f:R(Math.abs(L),_),D&&(L=E_(L)),Te&&+L==0&&g!=="+"&&(Te=!1),ee=(Te?g==="("?g:s:g==="-"||g==="("?"":g)+ee,ne=(T==="s"?xm[8+pm/3]:"")+ne+(Te&&g==="("?")":""),C){for(J=-1,be=L.length;++J<be;)if(Se=L.charCodeAt(J),48>Se||Se>57){ne=(Se===46?i+L.slice(J+1):L.slice(J))+ne,L=L.slice(0,J);break}}}E&&!y&&(L=e(L,1/0));var it=ee.length+L.length+ne.length,et=it<w?new Array(w-it+1).join(h):"";switch(E&&y&&(L=e(et+L,et.length?w-ne.length:1/0),et=""),d){case"<":L=ee+L+ne+et;break;case"=":L=ee+et+L+ne;break;case"^":L=et.slice(0,it=et.length>>1)+ee+L+ne+et.slice(it);break;default:L=et+ee+L+ne;break}return a(L)}return B.toString=function(){return c+""},B}function l(c,h){var d=u((c=jr(c),c.type="f",c)),g=Math.max(-8,Math.min(8,Math.floor(ka(h)/3)))*3,b=Math.pow(10,-g),y=xm[8+g/3];return function(w){return d(b*w)+y}}return{format:u,formatPrefix:l}}var Sf,pt,sh;C_({thousands:",",grouping:[3],currency:["$",""]});function C_(t){return Sf=__(t),pt=Sf.format,sh=Sf.formatPrefix,Sf}function vm(t){return Math.max(0,-ka(Math.abs(t)))}function Am(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(ka(e)/3)))*3-ka(Math.abs(t)))}function Em(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,ka(e)-ka(t))+1}var uh=new Date,fh=new Date;function ft(t,e,n,r){function i(a){return t(a=arguments.length===0?new Date:new Date(+a)),a}return i.floor=function(a){return t(a=new Date(+a)),a},i.ceil=function(a){return t(a=new Date(a-1)),e(a,1),t(a),a},i.round=function(a){var o=i(a),s=i.ceil(a);return a-o<s-a?o:s},i.offset=function(a,o){return e(a=new Date(+a),o==null?1:Math.floor(o)),a},i.range=function(a,o,s){var f=[],u;if(a=i.ceil(a),s=s==null?1:Math.floor(s),!(a<o)||!(s>0))return f;do f.push(u=new Date(+a)),e(a,s),t(a);while(u<a&&a<o);return f},i.filter=function(a){return ft(function(o){if(o>=o)for(;t(o),!a(o);)o.setTime(o-1)},function(o,s){if(o>=o)if(s<0)for(;++s<=0;)for(;e(o,-1),!a(o););else for(;--s>=0;)for(;e(o,1),!a(o););})},n&&(i.count=function(a,o){return uh.setTime(+a),fh.setTime(+o),t(uh),t(fh),Math.floor(n(uh,fh))},i.every=function(a){return a=Math.floor(a),!isFinite(a)||!(a>0)?null:a>1?i.filter(r?function(o){return r(o)%a===0}:function(o){return i.count(0,o)%a===0}):i}),i}var _f=ft(function(){},function(t,e){t.setTime(+t+e)},function(t,e){return e-t});_f.every=function(t){return t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?ft(function(e){e.setTime(Math.floor(e/t)*t)},function(e,n){e.setTime(+e+n*t)},function(e,n){return(n-e)/t}):_f};const lh=_f;_f.range;const wr=1e3,on=wr*60,xr=on*60,Li=xr*24,ch=Li*7,Sm=Li*30,hh=Li*365;var _m=ft(function(t){t.setTime(t-t.getMilliseconds())},function(t,e){t.setTime(+t+e*wr)},function(t,e){return(e-t)/wr},function(t){return t.getUTCSeconds()});const Gr=_m;_m.range;var Cm=ft(function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*wr)},function(t,e){t.setTime(+t+e*on)},function(t,e){return(e-t)/on},function(t){return t.getMinutes()});const dh=Cm;Cm.range;var Dm=ft(function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*wr-t.getMinutes()*on)},function(t,e){t.setTime(+t+e*xr)},function(t,e){return(e-t)/xr},function(t){return t.getHours()});const gh=Dm;Dm.range;var Im=ft(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*on)/Li,t=>t.getDate()-1);const Ri=Im;Im.range;function Oi(t){return ft(function(e){e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},function(e,n){e.setDate(e.getDate()+n*7)},function(e,n){return(n-e-(n.getTimezoneOffset()-e.getTimezoneOffset())*on)/ch})}var rs=Oi(0),Cf=Oi(1),D_=Oi(2),I_=Oi(3),Ba=Oi(4),M_=Oi(5),T_=Oi(6);rs.range,Cf.range,D_.range,I_.range,Ba.range,M_.range,T_.range;var Mm=ft(function(t){t.setDate(1),t.setHours(0,0,0,0)},function(t,e){t.setMonth(t.getMonth()+e)},function(t,e){return e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12},function(t){return t.getMonth()});const Df=Mm;Mm.range;var ph=ft(function(t){t.setMonth(0,1),t.setHours(0,0,0,0)},function(t,e){t.setFullYear(t.getFullYear()+e)},function(t,e){return e.getFullYear()-t.getFullYear()},function(t){return t.getFullYear()});ph.every=function(t){return!isFinite(t=Math.floor(t))||!(t>0)?null:ft(function(e){e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},function(e,n){e.setFullYear(e.getFullYear()+n*t)})};const Hr=ph;ph.range;var Tm=ft(function(t){t.setUTCSeconds(0,0)},function(t,e){t.setTime(+t+e*on)},function(t,e){return(e-t)/on},function(t){return t.getUTCMinutes()});const mh=Tm;Tm.range;var Nm=ft(function(t){t.setUTCMinutes(0,0,0)},function(t,e){t.setTime(+t+e*xr)},function(t,e){return(e-t)/xr},function(t){return t.getUTCHours()});const bh=Nm;Nm.range;var Fm=ft(function(t){t.setUTCHours(0,0,0,0)},function(t,e){t.setUTCDate(t.getUTCDate()+e)},function(t,e){return(e-t)/Li},function(t){return t.getUTCDate()-1});const zi=Fm;Fm.range;function Pi(t){return ft(function(e){e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},function(e,n){e.setUTCDate(e.getUTCDate()+n*7)},function(e,n){return(n-e)/ch})}var is=Pi(0),If=Pi(1),N_=Pi(2),F_=Pi(3),La=Pi(4),k_=Pi(5),B_=Pi(6);is.range,If.range,N_.range,F_.range,La.range,k_.range,B_.range;var km=ft(function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)},function(t,e){t.setUTCMonth(t.getUTCMonth()+e)},function(t,e){return e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12},function(t){return t.getUTCMonth()});const Mf=km;km.range;var yh=ft(function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},function(t,e){t.setUTCFullYear(t.getUTCFullYear()+e)},function(t,e){return e.getUTCFullYear()-t.getUTCFullYear()},function(t){return t.getUTCFullYear()});yh.every=function(t){return!isFinite(t=Math.floor(t))||!(t>0)?null:ft(function(e){e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},function(e,n){e.setUTCFullYear(e.getUTCFullYear()+n*t)})};const Qr=yh;yh.range;function Bm(t,e,n,r,i,a){const o=[[Gr,1,wr],[Gr,5,5*wr],[Gr,15,15*wr],[Gr,30,30*wr],[a,1,on],[a,5,5*on],[a,15,15*on],[a,30,30*on],[i,1,xr],[i,3,3*xr],[i,6,6*xr],[i,12,12*xr],[r,1,Li],[r,2,2*Li],[n,1,ch],[e,1,Sm],[e,3,3*Sm],[t,1,hh]];function s(u,l,c){const h=l<u;h&&([u,l]=[l,u]);const d=c&&typeof c.range=="function"?c:f(u,l,c),g=d?d.range(u,+l+1):[];return h?g.reverse():g}function f(u,l,c){const h=Math.abs(l-u)/c,d=wf(([,,y])=>y).right(o,h);if(d===o.length)return t.every(Bi(u/hh,l/hh,c));if(d===0)return lh.every(Math.max(Bi(u,l,c),1));const[g,b]=o[h/o[d-1][2]<o[d][2]/h?d-1:d];return g.every(b)}return[s,f]}const[L_,R_]=Bm(Qr,Mf,is,zi,bh,mh),[O_,z_]=Bm(Hr,Df,rs,Ri,gh,dh),as="year",os="quarter",ss="month",us="week",fs="date",Tf="day",wh="dayofyear",ls="hours",cs="minutes",hs="seconds",Nf="milliseconds";[as,os,ss,us,fs,Tf,wh,ls,cs,hs,Nf].reduce((t,e,n)=>(t[e]=1+n,t),{});const P_={[as]:Hr,[os]:Df.every(3),[ss]:Df,[us]:rs,[fs]:Ri,[Tf]:Ri,[wh]:Ri,[ls]:gh,[cs]:dh,[hs]:Gr,[Nf]:lh},U_={[as]:Qr,[os]:Mf.every(3),[ss]:Mf,[us]:is,[fs]:zi,[Tf]:zi,[wh]:zi,[ls]:bh,[cs]:mh,[hs]:Gr,[Nf]:lh};function j_(t){return P_[t]}function G_(t){return U_[t]}function xh(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function vh(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function ds(t,e,n){return{y:t,m:e,d:n,H:0,M:0,S:0,L:0}}function Lm(t){var e=t.dateTime,n=t.date,r=t.time,i=t.periods,a=t.days,o=t.shortDays,s=t.months,f=t.shortMonths,u=gs(i),l=ps(i),c=gs(a),h=ps(a),d=gs(o),g=ps(o),b=gs(s),y=ps(s),w=gs(f),E=ps(f),_={a:Te,A:it,b:et,B:gr,c:null,d:jm,e:jm,f:cC,g:vC,G:EC,H:uC,I:fC,j:lC,L:Gm,m:hC,M:dC,p:Be,q:Ye,Q:Ym,s:Wm,S:gC,u:pC,U:mC,V:bC,w:yC,W:wC,x:null,X:null,y:xC,Y:AC,Z:SC,"%":Zm},D={a:Zt,A:Hn,b:pr,B:z,c:null,d:Qm,e:Qm,f:IC,g:zC,G:UC,H:_C,I:CC,j:DC,L:Vm,m:MC,M:TC,p:O,q,Q:Ym,s:Wm,S:NC,u:FC,U:kC,V:BC,w:LC,W:RC,x:null,X:null,y:OC,Y:PC,Z:jC,"%":Zm},T={a:B,A:L,b:ee,B:ne,c:J,d:Pm,e:Pm,f:iC,g:zm,G:Om,H:Um,I:Um,j:eC,L:rC,m:J_,M:tC,p:C,q:K_,Q:oC,s:sC,S:nC,u:Z_,U:Y_,V:W_,w:q_,W:X_,x:be,X:Se,y:zm,Y:Om,Z:$_,"%":aC};_.x=N(n,_),_.X=N(r,_),_.c=N(e,_),D.x=N(n,D),D.X=N(r,D),D.c=N(e,D);function N(Q,X){return function(S){var v=[],G=-1,V=0,le=Q.length,re,ce,Yt;for(S instanceof Date||(S=new Date(+S));++G<le;)Q.charCodeAt(G)===37&&(v.push(Q.slice(V,G)),(ce=Rm[re=Q.charAt(++G)])!=null?re=Q.charAt(++G):ce=re==="e"?" ":"0",(Yt=X[re])&&(re=Yt(S,ce)),v.push(re),V=G+1);return v.push(Q.slice(V,G)),v.join("")}}function M(Q,X){return function(S){var v=ds(1900,void 0,1),G=R(v,Q,S+="",0),V,le;if(G!=S.length)return null;if("Q"in v)return new Date(v.Q);if("s"in v)return new Date(v.s*1e3+("L"in v?v.L:0));if(X&&!("Z"in v)&&(v.Z=0),"p"in v&&(v.H=v.H%12+v.p*12),v.m===void 0&&(v.m="q"in v?v.q:0),"V"in v){if(v.V<1||v.V>53)return null;"w"in v||(v.w=1),"Z"in v?(V=vh(ds(v.y,0,1)),le=V.getUTCDay(),V=le>4||le===0?If.ceil(V):If(V),V=zi.offset(V,(v.V-1)*7),v.y=V.getUTCFullYear(),v.m=V.getUTCMonth(),v.d=V.getUTCDate()+(v.w+6)%7):(V=xh(ds(v.y,0,1)),le=V.getDay(),V=le>4||le===0?Cf.ceil(V):Cf(V),V=Ri.offset(V,(v.V-1)*7),v.y=V.getFullYear(),v.m=V.getMonth(),v.d=V.getDate()+(v.w+6)%7)}else("W"in v||"U"in v)&&("w"in v||(v.w="u"in v?v.u%7:"W"in v?1:0),le="Z"in v?vh(ds(v.y,0,1)).getUTCDay():xh(ds(v.y,0,1)).getDay(),v.m=0,v.d="W"in v?(v.w+6)%7+v.W*7-(le+5)%7:v.w+v.U*7-(le+6)%7);return"Z"in v?(v.H+=v.Z/100|0,v.M+=v.Z%100,vh(v)):xh(v)}}function R(Q,X,S,v){for(var G=0,V=X.length,le=S.length,re,ce;G<V;){if(v>=le)return-1;if(re=X.charCodeAt(G++),re===37){if(re=X.charAt(G++),ce=T[re in Rm?X.charAt(G++):re],!ce||(v=ce(Q,S,v))<0)return-1}else if(re!=S.charCodeAt(v++))return-1}return v}function C(Q,X,S){var v=u.exec(X.slice(S));return v?(Q.p=l.get(v[0].toLowerCase()),S+v[0].length):-1}function B(Q,X,S){var v=d.exec(X.slice(S));return v?(Q.w=g.get(v[0].toLowerCase()),S+v[0].length):-1}function L(Q,X,S){var v=c.exec(X.slice(S));return v?(Q.w=h.get(v[0].toLowerCase()),S+v[0].length):-1}function ee(Q,X,S){var v=w.exec(X.slice(S));return v?(Q.m=E.get(v[0].toLowerCase()),S+v[0].length):-1}function ne(Q,X,S){var v=b.exec(X.slice(S));return v?(Q.m=y.get(v[0].toLowerCase()),S+v[0].length):-1}function J(Q,X,S){return R(Q,e,X,S)}function be(Q,X,S){return R(Q,n,X,S)}function Se(Q,X,S){return R(Q,r,X,S)}function Te(Q){return o[Q.getDay()]}function it(Q){return a[Q.getDay()]}function et(Q){return f[Q.getMonth()]}function gr(Q){return s[Q.getMonth()]}function Be(Q){return i[+(Q.getHours()>=12)]}function Ye(Q){return 1+~~(Q.getMonth()/3)}function Zt(Q){return o[Q.getUTCDay()]}function Hn(Q){return a[Q.getUTCDay()]}function pr(Q){return f[Q.getUTCMonth()]}function z(Q){return s[Q.getUTCMonth()]}function O(Q){return i[+(Q.getUTCHours()>=12)]}function q(Q){return 1+~~(Q.getUTCMonth()/3)}return{format:function(Q){var X=N(Q+="",_);return X.toString=function(){return Q},X},parse:function(Q){var X=M(Q+="",!1);return X.toString=function(){return Q},X},utcFormat:function(Q){var X=N(Q+="",D);return X.toString=function(){return Q},X},utcParse:function(Q){var X=M(Q+="",!0);return X.toString=function(){return Q},X}}}var Rm={"-":"",_:" ",0:"0"},lt=/^\s*\d+/,H_=/^%/,Q_=/[\\^$*+?|[\]().{}]/g;function xe(t,e,n){var r=t<0?"-":"",i=(r?-t:t)+"",a=i.length;return r+(a<n?new Array(n-a+1).join(e)+i:i)}function V_(t){return t.replace(Q_,"\\$&")}function gs(t){return new RegExp("^(?:"+t.map(V_).join("|")+")","i")}function ps(t){return new Map(t.map((e,n)=>[e.toLowerCase(),n]))}function q_(t,e,n){var r=lt.exec(e.slice(n,n+1));return r?(t.w=+r[0],n+r[0].length):-1}function Z_(t,e,n){var r=lt.exec(e.slice(n,n+1));return r?(t.u=+r[0],n+r[0].length):-1}function Y_(t,e,n){var r=lt.exec(e.slice(n,n+2));return r?(t.U=+r[0],n+r[0].length):-1}function W_(t,e,n){var r=lt.exec(e.slice(n,n+2));return r?(t.V=+r[0],n+r[0].length):-1}function X_(t,e,n){var r=lt.exec(e.slice(n,n+2));return r?(t.W=+r[0],n+r[0].length):-1}function Om(t,e,n){var r=lt.exec(e.slice(n,n+4));return r?(t.y=+r[0],n+r[0].length):-1}function zm(t,e,n){var r=lt.exec(e.slice(n,n+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function $_(t,e,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function K_(t,e,n){var r=lt.exec(e.slice(n,n+1));return r?(t.q=r[0]*3-3,n+r[0].length):-1}function J_(t,e,n){var r=lt.exec(e.slice(n,n+2));return r?(t.m=r[0]-1,n+r[0].length):-1}function Pm(t,e,n){var r=lt.exec(e.slice(n,n+2));return r?(t.d=+r[0],n+r[0].length):-1}function eC(t,e,n){var r=lt.exec(e.slice(n,n+3));return r?(t.m=0,t.d=+r[0],n+r[0].length):-1}function Um(t,e,n){var r=lt.exec(e.slice(n,n+2));return r?(t.H=+r[0],n+r[0].length):-1}function tC(t,e,n){var r=lt.exec(e.slice(n,n+2));return r?(t.M=+r[0],n+r[0].length):-1}function nC(t,e,n){var r=lt.exec(e.slice(n,n+2));return r?(t.S=+r[0],n+r[0].length):-1}function rC(t,e,n){var r=lt.exec(e.slice(n,n+3));return r?(t.L=+r[0],n+r[0].length):-1}function iC(t,e,n){var r=lt.exec(e.slice(n,n+6));return r?(t.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function aC(t,e,n){var r=H_.exec(e.slice(n,n+1));return r?n+r[0].length:-1}function oC(t,e,n){var r=lt.exec(e.slice(n));return r?(t.Q=+r[0],n+r[0].length):-1}function sC(t,e,n){var r=lt.exec(e.slice(n));return r?(t.s=+r[0],n+r[0].length):-1}function jm(t,e){return xe(t.getDate(),e,2)}function uC(t,e){return xe(t.getHours(),e,2)}function fC(t,e){return xe(t.getHours()%12||12,e,2)}function lC(t,e){return xe(1+Ri.count(Hr(t),t),e,3)}function Gm(t,e){return xe(t.getMilliseconds(),e,3)}function cC(t,e){return Gm(t,e)+"000"}function hC(t,e){return xe(t.getMonth()+1,e,2)}function dC(t,e){return xe(t.getMinutes(),e,2)}function gC(t,e){return xe(t.getSeconds(),e,2)}function pC(t){var e=t.getDay();return e===0?7:e}function mC(t,e){return xe(rs.count(Hr(t)-1,t),e,2)}function Hm(t){var e=t.getDay();return e>=4||e===0?Ba(t):Ba.ceil(t)}function bC(t,e){return t=Hm(t),xe(Ba.count(Hr(t),t)+(Hr(t).getDay()===4),e,2)}function yC(t){return t.getDay()}function wC(t,e){return xe(Cf.count(Hr(t)-1,t),e,2)}function xC(t,e){return xe(t.getFullYear()%100,e,2)}function vC(t,e){return t=Hm(t),xe(t.getFullYear()%100,e,2)}function AC(t,e){return xe(t.getFullYear()%1e4,e,4)}function EC(t,e){var n=t.getDay();return t=n>=4||n===0?Ba(t):Ba.ceil(t),xe(t.getFullYear()%1e4,e,4)}function SC(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+xe(e/60|0,"0",2)+xe(e%60,"0",2)}function Qm(t,e){return xe(t.getUTCDate(),e,2)}function _C(t,e){return xe(t.getUTCHours(),e,2)}function CC(t,e){return xe(t.getUTCHours()%12||12,e,2)}function DC(t,e){return xe(1+zi.count(Qr(t),t),e,3)}function Vm(t,e){return xe(t.getUTCMilliseconds(),e,3)}function IC(t,e){return Vm(t,e)+"000"}function MC(t,e){return xe(t.getUTCMonth()+1,e,2)}function TC(t,e){return xe(t.getUTCMinutes(),e,2)}function NC(t,e){return xe(t.getUTCSeconds(),e,2)}function FC(t){var e=t.getUTCDay();return e===0?7:e}function kC(t,e){return xe(is.count(Qr(t)-1,t),e,2)}function qm(t){var e=t.getUTCDay();return e>=4||e===0?La(t):La.ceil(t)}function BC(t,e){return t=qm(t),xe(La.count(Qr(t),t)+(Qr(t).getUTCDay()===4),e,2)}function LC(t){return t.getUTCDay()}function RC(t,e){return xe(If.count(Qr(t)-1,t),e,2)}function OC(t,e){return xe(t.getUTCFullYear()%100,e,2)}function zC(t,e){return t=qm(t),xe(t.getUTCFullYear()%100,e,2)}function PC(t,e){return xe(t.getUTCFullYear()%1e4,e,4)}function UC(t,e){var n=t.getUTCDay();return t=n>=4||n===0?La(t):La.ceil(t),xe(t.getUTCFullYear()%1e4,e,4)}function jC(){return"+0000"}function Zm(){return"%"}function Ym(t){return+t}function Wm(t){return Math.floor(+t/1e3)}var Ra,Ah,Xm,Eh,$m;GC({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function GC(t){return Ra=Lm(t),Ah=Ra.format,Xm=Ra.parse,Eh=Ra.utcFormat,$m=Ra.utcParse,Ra}function ms(t){const e={};return n=>e[n]||(e[n]=t(n))}function HC(t,e){return n=>{const r=t(n),i=r.indexOf(e);if(i<0)return r;let a=QC(r,i);const o=a<r.length?r.slice(a):"";for(;--a>i;)if(r[a]!=="0"){++a;break}return r.slice(0,a)+o}}function QC(t,e){let n=t.lastIndexOf("e"),r;if(n>0)return n;for(n=t.length;--n>e;)if(r=t.charCodeAt(n),r>=48&&r<=57)return n+1}function VC(t){const e=ms(t.format),n=t.formatPrefix;return{format:e,formatPrefix:n,formatFloat(r){const i=jr(r||",");if(i.precision==null){switch(i.precision=12,i.type){case"%":i.precision-=2;break;case"e":i.precision-=1;break}return HC(e(i),e(".1f")(1)[1])}else return e(i)},formatSpan(r,i,a,o){o=jr(o??",f");const s=Bi(r,i,a),f=Math.max(Math.abs(r),Math.abs(i));let u;if(o.precision==null)switch(o.type){case"s":return isNaN(u=Am(s,f))||(o.precision=u),n(o,f);case"":case"e":case"g":case"p":case"r":{isNaN(u=Em(s,f))||(o.precision=u-(o.type==="e"));break}case"f":case"%":{isNaN(u=vm(s))||(o.precision=u-(o.type==="%")*2);break}}return e(o)}}}qC();function qC(){return VC({format:pt,formatPrefix:sh})}function Km(t,e,n){n=n||{},Dn(n)||$e("Invalid time multi-format specifier: ".concat(n));const r=e(hs),i=e(cs),a=e(ls),o=e(fs),s=e(us),f=e(ss),u=e(os),l=e(as),c=t(n[Nf]||".%L"),h=t(n[hs]||":%S"),d=t(n[cs]||"%I:%M"),g=t(n[ls]||"%I %p"),b=t(n[fs]||n[Tf]||"%a %d"),y=t(n[us]||"%b %d"),w=t(n[ss]||"%B"),E=t(n[os]||"%B"),_=t(n[as]||"%Y");return D=>(r(D)<D?c:i(D)<D?h:a(D)<D?d:o(D)<D?g:f(D)<D?s(D)<D?b:y:l(D)<D?u(D)<D?w:E:_)(D)}function Jm(t){const e=ms(t.format),n=ms(t.utcFormat);return{timeFormat:r=>Ke(r)?e(r):Km(e,j_,r),utcFormat:r=>Ke(r)?n(r):Km(n,G_,r),timeParse:ms(t.parse),utcParse:ms(t.utcParse)}}let Sh;ZC();function ZC(){return Sh=Jm({format:Ah,parse:Xm,utcFormat:Eh,utcParse:$m})}function YC(t){return Jm(Lm(t))}function WC(t){return arguments.length?Sh=YC(t):Sh}const XC=/^(data:|([A-Za-z]+:)?\/\/)/,$C=/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp|file|data):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i,KC=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,e1="file://";function JC(t,e){return n=>({options:n||{},sanitize:t4,load:e4,fileAccess:!!e,file:n4(e),http:i4(t)})}async function e4(t,e){const n=await this.sanitize(t,e),r=n.href;return n.localFile?this.file(r):this.http(r,e)}async function t4(t,e){e=$c({},this.options,e);const n=this.fileAccess,r={href:null};let i,a,o;const s=$C.test(t.replace(KC,""));(t==null||typeof t!="string"||!s)&&$e("Sanitize failure, invalid URI: "+bf(t));const f=XC.test(t);return(o=e.baseURL)&&!f&&(!t.startsWith("/")&&!o.endsWith("/")&&(t="/"+t),t=o+t),a=(i=t.startsWith(e1))||e.mode==="file"||e.mode!=="http"&&!f&&n,i?t=t.slice(e1.length):t.startsWith("//")&&(e.defaultProtocol==="file"?(t=t.slice(2),a=!0):t=(e.defaultProtocol||"http")+":"+t),Object.defineProperty(r,"localFile",{value:!!a}),r.href=t,e.target&&(r.target=e.target+""),e.rel&&(r.rel=e.rel+""),e.context==="image"&&e.crossOrigin&&(r.crossOrigin=e.crossOrigin+""),r}function n4(t){return t?e=>new Promise((n,r)=>{t.readFile(e,(i,a)=>{i?r(i):n(a)})}):r4}async function r4(){$e("No file system access.")}function i4(t){return t?async function(e,n){const r=$c({},this.options.http,n),i=n&&n.response,a=await t(e,r);return a.ok?Bt(a[i])?a[i]():a.text():$e(a.status+""+a.statusText)}:a4}async function a4(){$e("No HTTP fetch method available.")}const o4=t=>t!=null&&t===t,s4=t=>t==="true"||t==="false"||t===!0||t===!1,u4=t=>!Number.isNaN(Date.parse(t)),t1=t=>!Number.isNaN(+t)&&!(t instanceof Date),f4=t=>t1(t)&&Number.isInteger(+t),n1={boolean:WS,integer:Jo,number:Jo,date:$S,string:KS,unknown:hf},Ff=[s4,f4,t1,u4],l4=["boolean","integer","number","date"];function c4(t,e){if(!t||!t.length)return"unknown";const n=t.length,r=Ff.length,i=Ff.map((a,o)=>o+1);for(let a=0,o=0,s,f;a<n;++a)for(f=e?t[a][e]:t[a],s=0;s<r;++s)if(i[s]&&o4(f)&&!Ff[s](f)&&(i[s]=0,++o,o===Ff.length))return"string";return l4[i.reduce((a,o)=>a===0?o:a,0)-1]}function h4(t,e){return e.reduce((n,r)=>(n[r]=c4(t,r),n),{})}function r1(t){const e=function(n,r){const i={delimiter:t};return _h(n,r?$c(r,i):i)};return e.responseType="text",e}function _h(t,e){return e.header&&(t=e.header.map(bf).join(e.delimiter)+`
6
- `+t),om(e.delimiter).parse(t+"")}_h.responseType="text";function d4(t){return typeof Buffer=="function"&&Bt(Buffer.isBuffer)?Buffer.isBuffer(t):!1}function Ch(t,e){const n=e&&e.property?cf(e.property):hf;return Dn(t)&&!d4(t)?g4(n(t),e):n(JSON.parse(t))}Ch.responseType="json";function g4(t,e){return!Xt(t)&&ZS(t)&&(t=[...t]),e&&e.copy?JSON.parse(JSON.stringify(t)):t}const p4={interior:(t,e)=>t!==e,exterior:(t,e)=>t===e};function i1(t,e){let n,r,i,a;return t=Ch(t,e),e&&e.feature?(n=s_,i=e.feature):e&&e.mesh?(n=f_,i=e.mesh,a=p4[e.filter]):$e("Missing TopoJSON feature or mesh parameter."),r=(r=t.objects[i])?n(t,r,a):$e("Invalid TopoJSON object: "+i),r&&r.features||[r]}i1.responseType="json";const Dh={dsv:_h,csv:r1(","),tsv:r1(" "),json:Ch,topojson:i1};function a1(t,e){return arguments.length>1?(Dh[t]=e,this):Fi(Dh,t)?Dh[t]:null}function o1(t,e,n,r){e=e||{};const i=a1(e.type||"json");return i||$e("Unknown data format type: "+e.type),t=i(t,e),e.parse&&m4(t,e.parse,n,r),Fi(t,"columns")&&delete t.columns,t}function m4(t,e,n,r){if(!t.length)return;const i=WC();n=n||i.timeParse,r=r||i.utcParse;let a=t.columns||Object.keys(t[0]),o,s,f,u,l,c;e==="auto"&&(e=h4(t,a)),a=Object.keys(e);const h=a.map(d=>{const g=e[d];let b,y;if(g&&(g.startsWith("date:")||g.startsWith("utc:")))return b=g.split(/:(.+)?/,2),y=b[1],(y[0]==="'"&&y[y.length-1]==="'"||y[0]==='"'&&y[y.length-1]==='"')&&(y=y.slice(1,-1)),(b[0]==="utc"?r:n)(y);if(!n1[g])throw Error("Illegal format pattern: "+d+":"+g);return n1[g]});for(f=0,l=t.length,c=a.length;f<l;++f)for(o=t[f],u=0;u<c;++u)s=a[u],o[s]=h[u](o[s])}const kf=JC(typeof fetch<"u"&&fetch,null);/**
1
+ (function(ue,ve){typeof exports=="object"&&typeof module<"u"?ve(exports):typeof define=="function"&&define.amd?define(["exports"],ve):(ue=typeof globalThis<"u"?globalThis:ue||self,ve(ue.genomeSpyEmbed={}))})(this,function(ue){"use strict";var tz=Object.defineProperty;var nz=(ue,ve,Ce)=>ve in ue?tz(ue,ve,{enumerable:!0,configurable:!0,writable:!0,value:Ce}):ue[ve]=Ce;var St=(ue,ve,Ce)=>(nz(ue,typeof ve!="symbol"?ve+"":ve,Ce),Ce),vg=(ue,ve,Ce)=>{if(!ve.has(ue))throw TypeError("Cannot "+Ce)};var $=(ue,ve,Ce)=>(vg(ue,ve,"read from private field"),Ce?Ce.call(ue):ve.get(ue)),ce=(ue,ve,Ce)=>{if(ve.has(ue))throw TypeError("Cannot add the same private member more than once");ve instanceof WeakSet?ve.add(ue):ve.set(ue,Ce)},mn=(ue,ve,Ce,ma)=>(vg(ue,ve,"write to private field"),ma?ma.call(ue,Ce):ve.set(ue,Ce),Ce);var LE=(ue,ve,Ce,ma)=>({set _(ql){mn(ue,ve,ql,Ce)},get _(){return $(ue,ve,ma)}}),ie=(ue,ve,Ce)=>(vg(ue,ve,"access private method"),Ce);var Dl,xg,Eo,Fl,Rl,ca,Vl,Pl,Ag,gr,_o,yt,$n,pi,xc,OE,So,kc,mr,pa,Ml,Eg,Ac,zE,mg,rz,Nl,_g,Ll,Ol,br,Co,To,Jt,ha,Io,yr,ga,Ec,UE,da,jl,zl,Sg,Ul,Cg,Gl,Tg,_c,GE,ko,Bc,Sc,HE,Bo;function ve(e,t){for(var n=0;n<t.length;n++){const r=t[n];if(typeof r!="string"&&!Array.isArray(r)){for(const i in r)if(i!=="default"&&!(i in e)){const a=Object.getOwnPropertyDescriptor(r,i);a&&Object.defineProperty(e,i,a.get?a:{enumerable:!0,get:()=>r[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}function Ce(e,t,n){return e.fields=t||[],e.fname=n,e}function ma(e){return e==null?null:e.fname}function ql(e){return e==null?null:e.fields}function VE(e){return e.length===1?jE(e[0]):qE(e)}const jE=e=>function(t){return t[e]},qE=e=>{const t=e.length;return function(n){for(let r=0;r<t;++r)n=n[e[r]];return n}};function Ye(e){throw Error(e)}function ZE(e){const t=[],n=e.length;let r=null,i=0,a="",o,s,f;e=e+"";function l(){t.push(a+e.substring(o,s)),a="",o=s+1}for(o=s=0;s<n;++s)if(f=e[s],f==="\\")a+=e.substring(o,s),a+=e.substring(++s,++s),o=s;else if(f===r)l(),r=null,i=-1;else{if(r)continue;o===i&&f==='"'||o===i&&f==="'"?(o=s+1,r=f):f==="."&&!i?s>o?l():o=s+1:f==="["?(s>o&&l(),i=o=s+1):f==="]"&&(i||Ye("Access path missing open bracket: "+e),i>0&&l(),i=0,o=s+1)}return i&&Ye("Access path missing closing bracket: "+e),r&&Ye("Access path missing closing quote: "+e),s>o&&(s++,l()),t}function Zl(e,t,n){const r=ZE(e);return e=r.length===1?r[0]:e,Ce((n&&n.get||VE)(r),[e],t||e)}Zl("id");const Wl=Ce(e=>e,[],"identity");Ce(()=>0,[],"zero"),Ce(()=>1,[],"one"),Ce(()=>!0,[],"true"),Ce(()=>!1,[],"false");var qt=Array.isArray;function Zt(e){return e===Object(e)}function bn(e){return e[e.length-1]}function Do(e){return e==null||e===""?null:+e}const Ig=e=>t=>e*Math.exp(t),kg=e=>t=>Math.log(e*t),WE=e=>t=>Math.sign(t)*Math.log1p(Math.abs(t/e)),YE=e=>t=>Math.sign(t)*Math.expm1(Math.abs(t))*e,Yl=e=>t=>t<0?-Math.pow(-t,e):Math.pow(t,e);function Dc(e,t,n,r){const i=n(e[0]),a=n(bn(e)),o=(a-i)*t;return[r(i-o),r(a-o)]}function QE(e,t){return Dc(e,t,Do,Wl)}function XE(e,t){var n=Math.sign(e[0]);return Dc(e,t,kg(n),Ig(n))}function $E(e,t,n){return Dc(e,t,Yl(n),Yl(1/n))}function Ql(e,t,n,r,i){const a=r(e[0]),o=r(bn(e)),s=t!=null?r(t):(a+o)/2;return[i(s+(a-s)*n),i(s+(o-s)*n)]}function Bg(e,t,n){return Ql(e,t,n,Do,Wl)}function Dg(e,t,n){const r=Math.sign(e[0]);return Ql(e,t,n,kg(r),Ig(r))}function Fc(e,t,n,r){return Ql(e,t,n,Yl(r),Yl(1/r))}function KE(e,t,n,r){return Ql(e,t,n,WE(r),YE(r))}function Rc(e){return e!=null?qt(e)?e:[e]:[]}function JE(e,t,n){let r=e[0],i=e[1],a;return i<r&&(a=i,i=r,r=a),a=i-r,a>=n-t?[t,n]:[r=Math.min(Math.max(r,t),n-a),r+a]}function Dt(e){return typeof e=="function"}const e_="descending";function Fg(e,t,n){n=n||{},t=Rc(t)||[];const r=[],i=[],a={},o=n.comparator||t_;return Rc(e).forEach((s,f)=>{s!=null&&(r.push(t[f]===e_?-1:1),i.push(s=Dt(s)?s:Zl(s,null,n)),(ql(s)||[]).forEach(l=>a[l]=1))}),i.length===0?null:Ce(o(i,r),Object.keys(a))}const Rg=(e,t)=>(e<t||e==null)&&t!=null?-1:(e>t||t==null)&&e!=null?1:(t=t instanceof Date?+t:t,(e=e instanceof Date?+e:e)!==e&&t===t?-1:t!==t&&e===e?1:0),t_=(e,t)=>e.length===1?n_(e[0],t[0]):r_(e,t,e.length),n_=(e,t)=>function(n,r){return Rg(e(n),e(r))*t},r_=(e,t,n)=>(t.push(0),function(r,i){let a,o=0,s=-1;for(;o===0&&++s<n;)a=e[s],o=Rg(a(r),a(i));return o*t[s]});function i_(e){return Dt(e)?e:()=>e}function Pc(e){for(let t,n,r=1,i=arguments.length;r<i;++r){t=arguments[r];for(n in t)e[n]=t[n]}return e}const a_=Object.prototype.hasOwnProperty;function gi(e,t){return a_.call(e,t)}function Xl(e){return typeof e=="boolean"}function o_(e){return Object.prototype.toString.call(e)==="[object Date]"}function s_(e){return e&&Dt(e[Symbol.iterator])}function Ft(e){return typeof e=="number"}function Qe(e){return typeof e=="string"}function l_(e,t){const n=e[0],r=bn(e),i=+t;return i?i===1?r:n+i*(r-n):n}function $l(e){return e&&bn(e)-e[0]||0}function Kl(e){return qt(e)?"["+e.map(Kl)+"]":Zt(e)||Qe(e)?JSON.stringify(e).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):e}function f_(e){return e==null||e===""?null:!e||e==="false"||e==="0"?!1:!!e}const u_=e=>Ft(e)||o_(e)?e:Date.parse(e);function c_(e,t){return t=t||u_,e==null||e===""?null:t(e)}function h_(e){return e==null||e===""?null:e+""}function Jl(e){const t={},n=e.length;for(let r=0;r<n;++r)t[e[r]]=!0;return t}var Pg={},Mc={},Nc=34,Fo=10,Lc=13;function Mg(e){return new Function("d","return {"+e.map(function(t,n){return JSON.stringify(t)+": d["+n+'] || ""'}).join(",")+"}")}function d_(e,t){var n=Mg(e);return function(r,i){return t(n(r),i,e)}}function Ng(e){var t=Object.create(null),n=[];return e.forEach(function(r){for(var i in r)i in t||n.push(t[i]=i)}),n}function Rt(e,t){var n=e+"",r=n.length;return r<t?new Array(t-r+1).join(0)+n:n}function p_(e){return e<0?"-"+Rt(-e,6):e>9999?"+"+Rt(e,6):Rt(e,4)}function g_(e){var t=e.getUTCHours(),n=e.getUTCMinutes(),r=e.getUTCSeconds(),i=e.getUTCMilliseconds();return isNaN(e)?"Invalid Date":p_(e.getUTCFullYear())+"-"+Rt(e.getUTCMonth()+1,2)+"-"+Rt(e.getUTCDate(),2)+(i?"T"+Rt(t,2)+":"+Rt(n,2)+":"+Rt(r,2)+"."+Rt(i,3)+"Z":r?"T"+Rt(t,2)+":"+Rt(n,2)+":"+Rt(r,2)+"Z":n||t?"T"+Rt(t,2)+":"+Rt(n,2)+"Z":"")}function Lg(e){var t=new RegExp('["'+e+`
2
+ \r]`),n=e.charCodeAt(0);function r(c,h){var d,p,b=i(c,function(y,w){if(d)return d(y,w-1);p=y,d=h?d_(y,h):Mg(y)});return b.columns=p||[],b}function i(c,h){var d=[],p=c.length,b=0,y=0,w,S=p<=0,C=!1;c.charCodeAt(p-1)===Fo&&--p,c.charCodeAt(p-1)===Lc&&--p;function _(){if(S)return Mc;if(C)return C=!1,Pg;var B,I=b,R;if(c.charCodeAt(I)===Nc){for(;b++<p&&c.charCodeAt(b)!==Nc||c.charCodeAt(++b)===Nc;);return(B=b)>=p?S=!0:(R=c.charCodeAt(b++))===Fo?C=!0:R===Lc&&(C=!0,c.charCodeAt(b)===Fo&&++b),c.slice(I+1,B-1).replace(/""/g,'"')}for(;b<p;){if((R=c.charCodeAt(B=b++))===Fo)C=!0;else if(R===Lc)C=!0,c.charCodeAt(b)===Fo&&++b;else if(R!==n)continue;return c.slice(I,B)}return S=!0,c.slice(I,p)}for(;(w=_())!==Mc;){for(var k=[];w!==Pg&&w!==Mc;)k.push(w),w=_();h&&(k=h(k,y++))==null||d.push(k)}return d}function a(c,h){return c.map(function(d){return h.map(function(p){return u(d[p])}).join(e)})}function o(c,h){return h==null&&(h=Ng(c)),[h.map(u).join(e)].concat(a(c,h)).join(`
3
+ `)}function s(c,h){return h==null&&(h=Ng(c)),a(c,h).join(`
4
+ `)}function f(c){return c.map(l).join(`
5
+ `)}function l(c){return c.map(u).join(e)}function u(c){return c==null?"":c instanceof Date?g_(c):t.test(c+="")?'"'+c.replace(/"/g,'""')+'"':c}return{parse:r,parseRows:i,format:o,formatBody:s,formatRows:f,formatRow:l,formatValue:u}}var m_=Lg(" "),b_=m_.parseRows;function y_(e){return e}function w_(e){if(e==null)return y_;var t,n,r=e.scale[0],i=e.scale[1],a=e.translate[0],o=e.translate[1];return function(s,f){f||(t=n=0);var l=2,u=s.length,c=new Array(u);for(c[0]=(t+=s[0])*r+a,c[1]=(n+=s[1])*i+o;l<u;)c[l]=s[l],++l;return c}}function v_(e,t){for(var n,r=e.length,i=r-t;i<--r;)n=e[i],e[i++]=e[r],e[r]=n}function x_(e,t){return typeof t=="string"&&(t=e.objects[t]),t.type==="GeometryCollection"?{type:"FeatureCollection",features:t.geometries.map(function(n){return Og(e,n)})}:Og(e,t)}function Og(e,t){var n=t.id,r=t.bbox,i=t.properties==null?{}:t.properties,a=zg(e,t);return n==null&&r==null?{type:"Feature",properties:i,geometry:a}:r==null?{type:"Feature",id:n,properties:i,geometry:a}:{type:"Feature",id:n,bbox:r,properties:i,geometry:a}}function zg(e,t){var n=w_(e.transform),r=e.arcs;function i(u,c){c.length&&c.pop();for(var h=r[u<0?~u:u],d=0,p=h.length;d<p;++d)c.push(n(h[d],d));u<0&&v_(c,p)}function a(u){return n(u)}function o(u){for(var c=[],h=0,d=u.length;h<d;++h)i(u[h],c);return c.length<2&&c.push(c[0]),c}function s(u){for(var c=o(u);c.length<4;)c.push(c[0]);return c}function f(u){return u.map(s)}function l(u){var c=u.type,h;switch(c){case"GeometryCollection":return{type:c,geometries:u.geometries.map(l)};case"Point":h=a(u.coordinates);break;case"MultiPoint":h=u.coordinates.map(a);break;case"LineString":h=o(u.arcs);break;case"MultiLineString":h=u.arcs.map(o);break;case"Polygon":h=f(u.arcs);break;case"MultiPolygon":h=u.arcs.map(f);break;default:return null}return{type:c,coordinates:h}}return l(t)}function A_(e,t){var n={},r={},i={},a=[],o=-1;t.forEach(function(l,u){var c=e.arcs[l<0?~l:l],h;c.length<3&&!c[1][0]&&!c[1][1]&&(h=t[++o],t[o]=l,t[u]=h)}),t.forEach(function(l){var u=s(l),c=u[0],h=u[1],d,p;if(d=i[c])if(delete i[d.end],d.push(l),d.end=h,p=r[h]){delete r[p.start];var b=p===d?d:d.concat(p);r[b.start=d.start]=i[b.end=p.end]=b}else r[d.start]=i[d.end]=d;else if(d=r[h])if(delete r[d.start],d.unshift(l),d.start=c,p=i[c]){delete i[p.end];var y=p===d?d:p.concat(d);r[y.start=p.start]=i[y.end=d.end]=y}else r[d.start]=i[d.end]=d;else d=[l],r[d.start=c]=i[d.end=h]=d});function s(l){var u=e.arcs[l<0?~l:l],c=u[0],h;return e.transform?(h=[0,0],u.forEach(function(d){h[0]+=d[0],h[1]+=d[1]})):h=u[u.length-1],l<0?[h,c]:[c,h]}function f(l,u){for(var c in l){var h=l[c];delete u[h.start],delete h.start,delete h.end,h.forEach(function(d){n[d<0?~d:d]=1}),a.push(h)}}return f(i,r),f(r,i),t.forEach(function(l){n[l<0?~l:l]||a.push([l])}),a}function E_(e){return zg(e,__.apply(this,arguments))}function __(e,t,n){var r,i,a;if(arguments.length>1)r=S_(e,t,n);else for(i=0,r=new Array(a=e.arcs.length);i<a;++i)r[i]=i;return{type:"MultiLineString",arcs:A_(e,r)}}function S_(e,t,n){var r=[],i=[],a;function o(c){var h=c<0?~c:c;(i[h]||(i[h]=[])).push({i:c,g:a})}function s(c){c.forEach(o)}function f(c){c.forEach(s)}function l(c){c.forEach(f)}function u(c){switch(a=c,c.type){case"GeometryCollection":c.geometries.forEach(u);break;case"LineString":s(c.arcs);break;case"MultiLineString":case"Polygon":f(c.arcs);break;case"MultiPolygon":l(c.arcs);break}}return u(t),i.forEach(n==null?function(c){r.push(c[0].i)}:function(c){n(c[0].g,c[c.length-1].g)&&r.push(c[0].i)}),r}function Ro(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function C_(e,t){return e==null||t==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function ef(e){let t,n,r;e.length!==2?(t=Ro,n=(s,f)=>Ro(e(s),f),r=(s,f)=>e(s)-f):(t=e===Ro||e===C_?e:T_,n=e,r=e);function i(s,f,l=0,u=s.length){if(l<u){if(t(f,f)!==0)return u;do{const c=l+u>>>1;n(s[c],f)<0?l=c+1:u=c}while(l<u)}return l}function a(s,f,l=0,u=s.length){if(l<u){if(t(f,f)!==0)return u;do{const c=l+u>>>1;n(s[c],f)<=0?l=c+1:u=c}while(l<u)}return l}function o(s,f,l=0,u=s.length){const c=i(s,f,l,u-1);return c>l&&r(s[c-1],f)>-r(s[c],f)?c-1:c}return{left:i,center:o,right:a}}function T_(){return 0}function Ug(e){return e===null?NaN:+e}const Gg=ef(Ro),Oc=Gg.right;Gg.left,ef(Ug).center;const ba=Oc;function I_(e,t){let n,r;if(t===void 0)for(const i of e)i!=null&&(n===void 0?i>=i&&(n=r=i):(n>i&&(n=i),r<i&&(r=i)));else{let i=-1;for(let a of e)(a=t(a,++i,e))!=null&&(n===void 0?a>=a&&(n=r=a):(n>a&&(n=a),r<a&&(r=a)))}return[n,r]}class mi extends Map{constructor(t,n=D_){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),t!=null)for(const[r,i]of t)this.set(r,i)}get(t){return super.get(Hg(this,t))}has(t){return super.has(Hg(this,t))}set(t,n){return super.set(k_(this,t),n)}delete(t){return super.delete(B_(this,t))}}function Hg({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):n}function k_({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function B_({_intern:e,_key:t},n){const r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function D_(e){return e!==null&&typeof e=="object"?e.valueOf():e}function zc(e){return e}function tf(e,...t){return Vg(e,zc,zc,t)}function F_(e,...t){return Vg(e,Array.from,zc,t)}function Vg(e,t,n,r){return function i(a,o){if(o>=r.length)return n(a);const s=new mi,f=r[o++];let l=-1;for(const u of a){const c=f(u,++l,a),h=s.get(c);h?h.push(u):s.set(c,[u])}for(const[u,c]of s)s.set(u,i(c,o));return t(s)}(e,0)}var Uc=Math.sqrt(50),Gc=Math.sqrt(10),Hc=Math.sqrt(2);function nf(e,t,n){var r,i=-1,a,o,s;if(t=+t,e=+e,n=+n,e===t&&n>0)return[e];if((r=t<e)&&(a=e,e=t,t=a),(s=jg(e,t,n))===0||!isFinite(s))return[];if(s>0){let f=Math.round(e/s),l=Math.round(t/s);for(f*s<e&&++f,l*s>t&&--l,o=new Array(a=l-f+1);++i<a;)o[i]=(f+i)*s}else{s=-s;let f=Math.round(e*s),l=Math.round(t*s);for(f/s<e&&++f,l/s>t&&--l,o=new Array(a=l-f+1);++i<a;)o[i]=(f+i)/s}return r&&o.reverse(),o}function jg(e,t,n){var r=(t-e)/Math.max(0,n),i=Math.floor(Math.log(r)/Math.LN10),a=r/Math.pow(10,i);return i>=0?(a>=Uc?10:a>=Gc?5:a>=Hc?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(a>=Uc?10:a>=Gc?5:a>=Hc?2:1)}function bi(e,t,n){var r=Math.abs(t-e)/Math.max(0,n),i=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),a=r/i;return a>=Uc?i*=10:a>=Gc?i*=5:a>=Hc&&(i*=2),t<e?-i:i}function qg(e,t,n=Ug){if(r=e.length){if((t=+t)<=0||r<2)return+n(e[0],0,e);if(t>=1)return+n(e[r-1],r-1,e);var r,i=(r-1)*t,a=Math.floor(i),o=+n(e[a],a,e),s=+n(e[a+1],a+1,e);return o+(s-o)*(i-a)}}function Po(e,t,n){e=+e,t=+t,n=(i=arguments.length)<2?(t=e,e=0,1):i<3?1:+n;for(var r=-1,i=Math.max(0,Math.ceil((t-e)/n))|0,a=new Array(i);++r<i;)a[r]=e+r*n;return a}function rf(e,t){let n=0;if(t===void 0)for(let r of e)(r=+r)&&(n+=r);else{let r=-1;for(let i of e)(i=+t(i,++r,e))&&(n+=i)}return n}function R_(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function af(e,t){if((n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var n,r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function ya(e){return e=af(Math.abs(e)),e?e[1]:NaN}function P_(e,t){return function(n,r){for(var i=n.length,a=[],o=0,s=e[0],f=0;i>0&&s>0&&(f+s+1>r&&(s=Math.max(1,r-f)),a.push(n.substring(i-=s,i+s)),!((f+=s+1)>r));)s=e[o=(o+1)%e.length];return a.reverse().join(t)}}function M_(e){return function(t){return t.replace(/[0-9]/g,function(n){return e[+n]})}}var N_=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Er(e){if(!(t=N_.exec(e)))throw new Error("invalid format: "+e);var t;return new Vc({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}Er.prototype=Vc.prototype;function Vc(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}Vc.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function L_(e){e:for(var t=e.length,n=1,r=-1,i;n<t;++n)switch(e[n]){case".":r=i=n;break;case"0":r===0&&(r=n),i=n;break;default:if(!+e[n])break e;r>0&&(r=0);break}return r>0?e.slice(0,r)+e.slice(i+1):e}var Zg;function O_(e,t){var n=af(e,t);if(!n)return e+"";var r=n[0],i=n[1],a=i-(Zg=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,o=r.length;return a===o?r:a>o?r+new Array(a-o+1).join("0"):a>0?r.slice(0,a)+"."+r.slice(a):"0."+new Array(1-a).join("0")+af(e,Math.max(0,t+a-1))[0]}function Wg(e,t){var n=af(e,t);if(!n)return e+"";var r=n[0],i=n[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}const Yg={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:R_,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>Wg(e*100,t),r:Wg,s:O_,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function Qg(e){return e}var Xg=Array.prototype.map,$g=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function z_(e){var t=e.grouping===void 0||e.thousands===void 0?Qg:P_(Xg.call(e.grouping,Number),e.thousands+""),n=e.currency===void 0?"":e.currency[0]+"",r=e.currency===void 0?"":e.currency[1]+"",i=e.decimal===void 0?".":e.decimal+"",a=e.numerals===void 0?Qg:M_(Xg.call(e.numerals,String)),o=e.percent===void 0?"%":e.percent+"",s=e.minus===void 0?"−":e.minus+"",f=e.nan===void 0?"NaN":e.nan+"";function l(c){c=Er(c);var h=c.fill,d=c.align,p=c.sign,b=c.symbol,y=c.zero,w=c.width,S=c.comma,C=c.precision,_=c.trim,k=c.type;k==="n"?(S=!0,k="g"):Yg[k]||(C===void 0&&(C=12),_=!0,k="g"),(y||h==="0"&&d==="=")&&(y=!0,h="0",d="=");var B=b==="$"?n:b==="#"&&/[boxX]/.test(k)?"0"+k.toLowerCase():"",I=b==="$"?r:/[%p]/.test(k)?o:"",R=Yg[k],M=/[defgprs%]/.test(k);C=C===void 0?6:/[gprs]/.test(k)?Math.max(1,Math.min(21,C)):Math.max(0,Math.min(20,C));function j(O){var ne=B,oe=I,pe,ke,Xe;if(k==="c")oe=R(O)+oe,O="";else{O=+O;var De=O<0||1/O<0;if(O=isNaN(O)?f:R(Math.abs(O),C),_&&(O=L_(O)),De&&+O==0&&p!=="+"&&(De=!1),ne=(De?p==="("?p:s:p==="-"||p==="("?"":p)+ne,oe=(k==="s"?$g[8+Zg/3]:"")+oe+(De&&p==="("?")":""),M){for(pe=-1,ke=O.length;++pe<ke;)if(Xe=O.charCodeAt(pe),48>Xe||Xe>57){oe=(Xe===46?i+O.slice(pe+1):O.slice(pe))+oe,O=O.slice(0,pe);break}}}S&&!y&&(O=t(O,1/0));var $e=ne.length+O.length+oe.length,qe=$e<w?new Array(w-$e+1).join(h):"";switch(S&&y&&(O=t(qe+O,qe.length?w-oe.length:1/0),qe=""),d){case"<":O=ne+O+oe+qe;break;case"=":O=ne+qe+O+oe;break;case"^":O=qe.slice(0,$e=qe.length>>1)+ne+O+oe+qe.slice($e);break;default:O=qe+ne+O+oe;break}return a(O)}return j.toString=function(){return c+""},j}function u(c,h){var d=l((c=Er(c),c.type="f",c)),p=Math.max(-8,Math.min(8,Math.floor(ya(h)/3)))*3,b=Math.pow(10,-p),y=$g[8+p/3];return function(w){return d(b*w)+y}}return{format:l,formatPrefix:u}}var of,pt,jc;U_({thousands:",",grouping:[3],currency:["$",""]});function U_(e){return of=z_(e),pt=of.format,jc=of.formatPrefix,of}function Kg(e){return Math.max(0,-ya(Math.abs(e)))}function Jg(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(ya(t)/3)))*3-ya(Math.abs(e)))}function em(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,ya(t)-ya(e))+1}var qc=new Date,Zc=new Date;function ot(e,t,n,r){function i(a){return e(a=arguments.length===0?new Date:new Date(+a)),a}return i.floor=function(a){return e(a=new Date(+a)),a},i.ceil=function(a){return e(a=new Date(a-1)),t(a,1),e(a),a},i.round=function(a){var o=i(a),s=i.ceil(a);return a-o<s-a?o:s},i.offset=function(a,o){return t(a=new Date(+a),o==null?1:Math.floor(o)),a},i.range=function(a,o,s){var f=[],l;if(a=i.ceil(a),s=s==null?1:Math.floor(s),!(a<o)||!(s>0))return f;do f.push(l=new Date(+a)),t(a,s),e(a);while(l<a&&a<o);return f},i.filter=function(a){return ot(function(o){if(o>=o)for(;e(o),!a(o);)o.setTime(o-1)},function(o,s){if(o>=o)if(s<0)for(;++s<=0;)for(;t(o,-1),!a(o););else for(;--s>=0;)for(;t(o,1),!a(o););})},n&&(i.count=function(a,o){return qc.setTime(+a),Zc.setTime(+o),e(qc),e(Zc),Math.floor(n(qc,Zc))},i.every=function(a){return a=Math.floor(a),!isFinite(a)||!(a>0)?null:a>1?i.filter(r?function(o){return r(o)%a===0}:function(o){return i.count(0,o)%a===0}):i}),i}var sf=ot(function(){},function(e,t){e.setTime(+e+t)},function(e,t){return t-e});sf.every=function(e){return e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?ot(function(t){t.setTime(Math.floor(t/e)*e)},function(t,n){t.setTime(+t+n*e)},function(t,n){return(n-t)/e}):sf};const Wc=sf;sf.range;const er=1e3,en=er*60,tr=en*60,yi=tr*24,Yc=yi*7,tm=yi*30,Qc=yi*365;var nm=ot(function(e){e.setTime(e-e.getMilliseconds())},function(e,t){e.setTime(+e+t*er)},function(e,t){return(t-e)/er},function(e){return e.getUTCSeconds()});const _r=nm;nm.range;var rm=ot(function(e){e.setTime(e-e.getMilliseconds()-e.getSeconds()*er)},function(e,t){e.setTime(+e+t*en)},function(e,t){return(t-e)/en},function(e){return e.getMinutes()});const Xc=rm;rm.range;var im=ot(function(e){e.setTime(e-e.getMilliseconds()-e.getSeconds()*er-e.getMinutes()*en)},function(e,t){e.setTime(+e+t*tr)},function(e,t){return(t-e)/tr},function(e){return e.getHours()});const $c=im;im.range;var am=ot(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*en)/yi,e=>e.getDate()-1);const wi=am;am.range;function vi(e){return ot(function(t){t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},function(t,n){t.setDate(t.getDate()+n*7)},function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*en)/Yc})}var Mo=vi(0),lf=vi(1),G_=vi(2),H_=vi(3),wa=vi(4),V_=vi(5),j_=vi(6);Mo.range,lf.range,G_.range,H_.range,wa.range,V_.range,j_.range;var om=ot(function(e){e.setDate(1),e.setHours(0,0,0,0)},function(e,t){e.setMonth(e.getMonth()+t)},function(e,t){return t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12},function(e){return e.getMonth()});const ff=om;om.range;var Kc=ot(function(e){e.setMonth(0,1),e.setHours(0,0,0,0)},function(e,t){e.setFullYear(e.getFullYear()+t)},function(e,t){return t.getFullYear()-e.getFullYear()},function(e){return e.getFullYear()});Kc.every=function(e){return!isFinite(e=Math.floor(e))||!(e>0)?null:ot(function(t){t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},function(t,n){t.setFullYear(t.getFullYear()+n*e)})};const Sr=Kc;Kc.range;var sm=ot(function(e){e.setUTCSeconds(0,0)},function(e,t){e.setTime(+e+t*en)},function(e,t){return(t-e)/en},function(e){return e.getUTCMinutes()});const Jc=sm;sm.range;var lm=ot(function(e){e.setUTCMinutes(0,0,0)},function(e,t){e.setTime(+e+t*tr)},function(e,t){return(t-e)/tr},function(e){return e.getUTCHours()});const eh=lm;lm.range;var fm=ot(function(e){e.setUTCHours(0,0,0,0)},function(e,t){e.setUTCDate(e.getUTCDate()+t)},function(e,t){return(t-e)/yi},function(e){return e.getUTCDate()-1});const xi=fm;fm.range;function Ai(e){return ot(function(t){t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCDate(t.getUTCDate()+n*7)},function(t,n){return(n-t)/Yc})}var No=Ai(0),uf=Ai(1),q_=Ai(2),Z_=Ai(3),va=Ai(4),W_=Ai(5),Y_=Ai(6);No.range,uf.range,q_.range,Z_.range,va.range,W_.range,Y_.range;var um=ot(function(e){e.setUTCDate(1),e.setUTCHours(0,0,0,0)},function(e,t){e.setUTCMonth(e.getUTCMonth()+t)},function(e,t){return t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12},function(e){return e.getUTCMonth()});const cf=um;um.range;var th=ot(function(e){e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},function(e,t){e.setUTCFullYear(e.getUTCFullYear()+t)},function(e,t){return t.getUTCFullYear()-e.getUTCFullYear()},function(e){return e.getUTCFullYear()});th.every=function(e){return!isFinite(e=Math.floor(e))||!(e>0)?null:ot(function(t){t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCFullYear(t.getUTCFullYear()+n*e)})};const Cr=th;th.range;function cm(e,t,n,r,i,a){const o=[[_r,1,er],[_r,5,5*er],[_r,15,15*er],[_r,30,30*er],[a,1,en],[a,5,5*en],[a,15,15*en],[a,30,30*en],[i,1,tr],[i,3,3*tr],[i,6,6*tr],[i,12,12*tr],[r,1,yi],[r,2,2*yi],[n,1,Yc],[t,1,tm],[t,3,3*tm],[e,1,Qc]];function s(l,u,c){const h=u<l;h&&([l,u]=[u,l]);const d=c&&typeof c.range=="function"?c:f(l,u,c),p=d?d.range(l,+u+1):[];return h?p.reverse():p}function f(l,u,c){const h=Math.abs(u-l)/c,d=ef(([,,y])=>y).right(o,h);if(d===o.length)return e.every(bi(l/Qc,u/Qc,c));if(d===0)return Wc.every(Math.max(bi(l,u,c),1));const[p,b]=o[h/o[d-1][2]<o[d][2]/h?d-1:d];return p.every(b)}return[s,f]}const[Q_,X_]=cm(Cr,cf,No,xi,eh,Jc),[$_,K_]=cm(Sr,ff,Mo,wi,$c,Xc),Lo="year",Oo="quarter",zo="month",Uo="week",Go="date",hf="day",nh="dayofyear",Ho="hours",Vo="minutes",jo="seconds",df="milliseconds";[Lo,Oo,zo,Uo,Go,hf,nh,Ho,Vo,jo,df].reduce((e,t,n)=>(e[t]=1+n,e),{});const J_={[Lo]:Sr,[Oo]:ff.every(3),[zo]:ff,[Uo]:Mo,[Go]:wi,[hf]:wi,[nh]:wi,[Ho]:$c,[Vo]:Xc,[jo]:_r,[df]:Wc},e4={[Lo]:Cr,[Oo]:cf.every(3),[zo]:cf,[Uo]:No,[Go]:xi,[hf]:xi,[nh]:xi,[Ho]:eh,[Vo]:Jc,[jo]:_r,[df]:Wc};function t4(e){return J_[e]}function n4(e){return e4[e]}function rh(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function ih(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function qo(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function hm(e){var t=e.dateTime,n=e.date,r=e.time,i=e.periods,a=e.days,o=e.shortDays,s=e.months,f=e.shortMonths,l=Zo(i),u=Wo(i),c=Zo(a),h=Wo(a),d=Zo(o),p=Wo(o),b=Zo(s),y=Wo(s),w=Zo(f),S=Wo(f),C={a:De,A:$e,b:qe,B:Ke,c:null,d:ym,e:ym,f:S4,g:M4,G:L4,H:A4,I:E4,j:_4,L:wm,m:C4,M:T4,p:Ee,q:_e,Q:Sm,s:Cm,S:I4,u:k4,U:B4,V:D4,w:F4,W:R4,x:null,X:null,y:P4,Y:N4,Z:O4,"%":_m},_={a:dt,A:Ht,b:Le,B:N,c:null,d:xm,e:xm,f:H4,g:K4,G:eS,H:z4,I:U4,j:G4,L:Am,m:V4,M:j4,p:P,q,Q:Sm,s:Cm,S:q4,u:Z4,U:W4,V:Y4,w:Q4,W:X4,x:null,X:null,y:$4,Y:J4,Z:tS,"%":_m},k={a:j,A:O,b:ne,B:oe,c:pe,d:mm,e:mm,f:y4,g:gm,G:pm,H:bm,I:bm,j:p4,L:b4,m:d4,M:g4,p:M,q:h4,Q:v4,s:x4,S:m4,u:s4,U:l4,V:f4,w:o4,W:u4,x:ke,X:Xe,y:gm,Y:pm,Z:c4,"%":w4};C.x=B(n,C),C.X=B(r,C),C.c=B(t,C),_.x=B(n,_),_.X=B(r,_),_.c=B(t,_);function B(H,W){return function(E){var x=[],G=-1,Z=0,se=H.length,J,le,Vt;for(E instanceof Date||(E=new Date(+E));++G<se;)H.charCodeAt(G)===37&&(x.push(H.slice(Z,G)),(le=dm[J=H.charAt(++G)])!=null?J=H.charAt(++G):le=J==="e"?" ":"0",(Vt=W[J])&&(J=Vt(E,le)),x.push(J),Z=G+1);return x.push(H.slice(Z,G)),x.join("")}}function I(H,W){return function(E){var x=qo(1900,void 0,1),G=R(x,H,E+="",0),Z,se;if(G!=E.length)return null;if("Q"in x)return new Date(x.Q);if("s"in x)return new Date(x.s*1e3+("L"in x?x.L:0));if(W&&!("Z"in x)&&(x.Z=0),"p"in x&&(x.H=x.H%12+x.p*12),x.m===void 0&&(x.m="q"in x?x.q:0),"V"in x){if(x.V<1||x.V>53)return null;"w"in x||(x.w=1),"Z"in x?(Z=ih(qo(x.y,0,1)),se=Z.getUTCDay(),Z=se>4||se===0?uf.ceil(Z):uf(Z),Z=xi.offset(Z,(x.V-1)*7),x.y=Z.getUTCFullYear(),x.m=Z.getUTCMonth(),x.d=Z.getUTCDate()+(x.w+6)%7):(Z=rh(qo(x.y,0,1)),se=Z.getDay(),Z=se>4||se===0?lf.ceil(Z):lf(Z),Z=wi.offset(Z,(x.V-1)*7),x.y=Z.getFullYear(),x.m=Z.getMonth(),x.d=Z.getDate()+(x.w+6)%7)}else("W"in x||"U"in x)&&("w"in x||(x.w="u"in x?x.u%7:"W"in x?1:0),se="Z"in x?ih(qo(x.y,0,1)).getUTCDay():rh(qo(x.y,0,1)).getDay(),x.m=0,x.d="W"in x?(x.w+6)%7+x.W*7-(se+5)%7:x.w+x.U*7-(se+6)%7);return"Z"in x?(x.H+=x.Z/100|0,x.M+=x.Z%100,ih(x)):rh(x)}}function R(H,W,E,x){for(var G=0,Z=W.length,se=E.length,J,le;G<Z;){if(x>=se)return-1;if(J=W.charCodeAt(G++),J===37){if(J=W.charAt(G++),le=k[J in dm?W.charAt(G++):J],!le||(x=le(H,E,x))<0)return-1}else if(J!=E.charCodeAt(x++))return-1}return x}function M(H,W,E){var x=l.exec(W.slice(E));return x?(H.p=u.get(x[0].toLowerCase()),E+x[0].length):-1}function j(H,W,E){var x=d.exec(W.slice(E));return x?(H.w=p.get(x[0].toLowerCase()),E+x[0].length):-1}function O(H,W,E){var x=c.exec(W.slice(E));return x?(H.w=h.get(x[0].toLowerCase()),E+x[0].length):-1}function ne(H,W,E){var x=w.exec(W.slice(E));return x?(H.m=S.get(x[0].toLowerCase()),E+x[0].length):-1}function oe(H,W,E){var x=b.exec(W.slice(E));return x?(H.m=y.get(x[0].toLowerCase()),E+x[0].length):-1}function pe(H,W,E){return R(H,t,W,E)}function ke(H,W,E){return R(H,n,W,E)}function Xe(H,W,E){return R(H,r,W,E)}function De(H){return o[H.getDay()]}function $e(H){return a[H.getDay()]}function qe(H){return f[H.getMonth()]}function Ke(H){return s[H.getMonth()]}function Ee(H){return i[+(H.getHours()>=12)]}function _e(H){return 1+~~(H.getMonth()/3)}function dt(H){return o[H.getUTCDay()]}function Ht(H){return a[H.getUTCDay()]}function Le(H){return f[H.getUTCMonth()]}function N(H){return s[H.getUTCMonth()]}function P(H){return i[+(H.getUTCHours()>=12)]}function q(H){return 1+~~(H.getUTCMonth()/3)}return{format:function(H){var W=B(H+="",C);return W.toString=function(){return H},W},parse:function(H){var W=I(H+="",!1);return W.toString=function(){return H},W},utcFormat:function(H){var W=B(H+="",_);return W.toString=function(){return H},W},utcParse:function(H){var W=I(H+="",!0);return W.toString=function(){return H},W}}}var dm={"-":"",_:" ",0:"0"},st=/^\s*\d+/,r4=/^%/,i4=/[\\^$*+?|[\]().{}]/g;function me(e,t,n){var r=e<0?"-":"",i=(r?-e:e)+"",a=i.length;return r+(a<n?new Array(n-a+1).join(t)+i:i)}function a4(e){return e.replace(i4,"\\$&")}function Zo(e){return new RegExp("^(?:"+e.map(a4).join("|")+")","i")}function Wo(e){return new Map(e.map((t,n)=>[t.toLowerCase(),n]))}function o4(e,t,n){var r=st.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function s4(e,t,n){var r=st.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function l4(e,t,n){var r=st.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function f4(e,t,n){var r=st.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function u4(e,t,n){var r=st.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function pm(e,t,n){var r=st.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function gm(e,t,n){var r=st.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function c4(e,t,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return r?(e.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function h4(e,t,n){var r=st.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function d4(e,t,n){var r=st.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function mm(e,t,n){var r=st.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function p4(e,t,n){var r=st.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function bm(e,t,n){var r=st.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function g4(e,t,n){var r=st.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function m4(e,t,n){var r=st.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function b4(e,t,n){var r=st.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function y4(e,t,n){var r=st.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function w4(e,t,n){var r=r4.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function v4(e,t,n){var r=st.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function x4(e,t,n){var r=st.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function ym(e,t){return me(e.getDate(),t,2)}function A4(e,t){return me(e.getHours(),t,2)}function E4(e,t){return me(e.getHours()%12||12,t,2)}function _4(e,t){return me(1+wi.count(Sr(e),e),t,3)}function wm(e,t){return me(e.getMilliseconds(),t,3)}function S4(e,t){return wm(e,t)+"000"}function C4(e,t){return me(e.getMonth()+1,t,2)}function T4(e,t){return me(e.getMinutes(),t,2)}function I4(e,t){return me(e.getSeconds(),t,2)}function k4(e){var t=e.getDay();return t===0?7:t}function B4(e,t){return me(Mo.count(Sr(e)-1,e),t,2)}function vm(e){var t=e.getDay();return t>=4||t===0?wa(e):wa.ceil(e)}function D4(e,t){return e=vm(e),me(wa.count(Sr(e),e)+(Sr(e).getDay()===4),t,2)}function F4(e){return e.getDay()}function R4(e,t){return me(lf.count(Sr(e)-1,e),t,2)}function P4(e,t){return me(e.getFullYear()%100,t,2)}function M4(e,t){return e=vm(e),me(e.getFullYear()%100,t,2)}function N4(e,t){return me(e.getFullYear()%1e4,t,4)}function L4(e,t){var n=e.getDay();return e=n>=4||n===0?wa(e):wa.ceil(e),me(e.getFullYear()%1e4,t,4)}function O4(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+me(t/60|0,"0",2)+me(t%60,"0",2)}function xm(e,t){return me(e.getUTCDate(),t,2)}function z4(e,t){return me(e.getUTCHours(),t,2)}function U4(e,t){return me(e.getUTCHours()%12||12,t,2)}function G4(e,t){return me(1+xi.count(Cr(e),e),t,3)}function Am(e,t){return me(e.getUTCMilliseconds(),t,3)}function H4(e,t){return Am(e,t)+"000"}function V4(e,t){return me(e.getUTCMonth()+1,t,2)}function j4(e,t){return me(e.getUTCMinutes(),t,2)}function q4(e,t){return me(e.getUTCSeconds(),t,2)}function Z4(e){var t=e.getUTCDay();return t===0?7:t}function W4(e,t){return me(No.count(Cr(e)-1,e),t,2)}function Em(e){var t=e.getUTCDay();return t>=4||t===0?va(e):va.ceil(e)}function Y4(e,t){return e=Em(e),me(va.count(Cr(e),e)+(Cr(e).getUTCDay()===4),t,2)}function Q4(e){return e.getUTCDay()}function X4(e,t){return me(uf.count(Cr(e)-1,e),t,2)}function $4(e,t){return me(e.getUTCFullYear()%100,t,2)}function K4(e,t){return e=Em(e),me(e.getUTCFullYear()%100,t,2)}function J4(e,t){return me(e.getUTCFullYear()%1e4,t,4)}function eS(e,t){var n=e.getUTCDay();return e=n>=4||n===0?va(e):va.ceil(e),me(e.getUTCFullYear()%1e4,t,4)}function tS(){return"+0000"}function _m(){return"%"}function Sm(e){return+e}function Cm(e){return Math.floor(+e/1e3)}var xa,ah,Tm,oh,Im;nS({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function nS(e){return xa=hm(e),ah=xa.format,Tm=xa.parse,oh=xa.utcFormat,Im=xa.utcParse,xa}function Yo(e){const t={};return n=>t[n]||(t[n]=e(n))}function rS(e,t){return n=>{const r=e(n),i=r.indexOf(t);if(i<0)return r;let a=iS(r,i);const o=a<r.length?r.slice(a):"";for(;--a>i;)if(r[a]!=="0"){++a;break}return r.slice(0,a)+o}}function iS(e,t){let n=e.lastIndexOf("e"),r;if(n>0)return n;for(n=e.length;--n>t;)if(r=e.charCodeAt(n),r>=48&&r<=57)return n+1}function aS(e){const t=Yo(e.format),n=e.formatPrefix;return{format:t,formatPrefix:n,formatFloat(r){const i=Er(r||",");if(i.precision==null){switch(i.precision=12,i.type){case"%":i.precision-=2;break;case"e":i.precision-=1;break}return rS(t(i),t(".1f")(1)[1])}else return t(i)},formatSpan(r,i,a,o){o=Er(o??",f");const s=bi(r,i,a),f=Math.max(Math.abs(r),Math.abs(i));let l;if(o.precision==null)switch(o.type){case"s":return isNaN(l=Jg(s,f))||(o.precision=l),n(o,f);case"":case"e":case"g":case"p":case"r":{isNaN(l=em(s,f))||(o.precision=l-(o.type==="e"));break}case"f":case"%":{isNaN(l=Kg(s))||(o.precision=l-(o.type==="%")*2);break}}return t(o)}}}oS();function oS(){return aS({format:pt,formatPrefix:jc})}function km(e,t,n){n=n||{},Zt(n)||Ye("Invalid time multi-format specifier: ".concat(n));const r=t(jo),i=t(Vo),a=t(Ho),o=t(Go),s=t(Uo),f=t(zo),l=t(Oo),u=t(Lo),c=e(n[df]||".%L"),h=e(n[jo]||":%S"),d=e(n[Vo]||"%I:%M"),p=e(n[Ho]||"%I %p"),b=e(n[Go]||n[hf]||"%a %d"),y=e(n[Uo]||"%b %d"),w=e(n[zo]||"%B"),S=e(n[Oo]||"%B"),C=e(n[Lo]||"%Y");return _=>(r(_)<_?c:i(_)<_?h:a(_)<_?d:o(_)<_?p:f(_)<_?s(_)<_?b:y:u(_)<_?l(_)<_?w:S:C)(_)}function Bm(e){const t=Yo(e.format),n=Yo(e.utcFormat);return{timeFormat:r=>Qe(r)?t(r):km(t,t4,r),utcFormat:r=>Qe(r)?n(r):km(n,n4,r),timeParse:Yo(e.parse),utcParse:Yo(e.utcParse)}}let sh;sS();function sS(){return sh=Bm({format:ah,parse:Tm,utcFormat:oh,utcParse:Im})}function lS(e){return Bm(hm(e))}function fS(e){return arguments.length?sh=lS(e):sh}const uS=/^(data:|([A-Za-z]+:)?\/\/)/,cS=/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp|file|data):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i,hS=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,Dm="file://";function dS(e,t){return n=>({options:n||{},sanitize:gS,load:pS,fileAccess:!!t,file:mS(t),http:yS(e)})}async function pS(e,t){const n=await this.sanitize(e,t),r=n.href;return n.localFile?this.file(r):this.http(r,t)}async function gS(e,t){t=Pc({},this.options,t);const n=this.fileAccess,r={href:null};let i,a,o;const s=cS.test(e.replace(hS,""));(e==null||typeof e!="string"||!s)&&Ye("Sanitize failure, invalid URI: "+Kl(e));const f=uS.test(e);return(o=t.baseURL)&&!f&&(!e.startsWith("/")&&!o.endsWith("/")&&(e="/"+e),e=o+e),a=(i=e.startsWith(Dm))||t.mode==="file"||t.mode!=="http"&&!f&&n,i?e=e.slice(Dm.length):e.startsWith("//")&&(t.defaultProtocol==="file"?(e=e.slice(2),a=!0):e=(t.defaultProtocol||"http")+":"+e),Object.defineProperty(r,"localFile",{value:!!a}),r.href=e,t.target&&(r.target=t.target+""),t.rel&&(r.rel=t.rel+""),t.context==="image"&&t.crossOrigin&&(r.crossOrigin=t.crossOrigin+""),r}function mS(e){return e?t=>new Promise((n,r)=>{e.readFile(t,(i,a)=>{i?r(i):n(a)})}):bS}async function bS(){Ye("No file system access.")}function yS(e){return e?async function(t,n){const r=Pc({},this.options.http,n),i=n&&n.response,a=await e(t,r);return a.ok?Dt(a[i])?a[i]():a.text():Ye(a.status+""+a.statusText)}:wS}async function wS(){Ye("No HTTP fetch method available.")}const vS=e=>e!=null&&e===e,xS=e=>e==="true"||e==="false"||e===!0||e===!1,AS=e=>!Number.isNaN(Date.parse(e)),Fm=e=>!Number.isNaN(+e)&&!(e instanceof Date),ES=e=>Fm(e)&&Number.isInteger(+e),Rm={boolean:f_,integer:Do,number:Do,date:c_,string:h_,unknown:Wl},pf=[xS,ES,Fm,AS],_S=["boolean","integer","number","date"];function SS(e,t){if(!e||!e.length)return"unknown";const n=e.length,r=pf.length,i=pf.map((a,o)=>o+1);for(let a=0,o=0,s,f;a<n;++a)for(f=t?e[a][t]:e[a],s=0;s<r;++s)if(i[s]&&vS(f)&&!pf[s](f)&&(i[s]=0,++o,o===pf.length))return"string";return _S[i.reduce((a,o)=>a===0?o:a,0)-1]}function CS(e,t){return t.reduce((n,r)=>(n[r]=SS(e,r),n),{})}function Pm(e){const t=function(n,r){const i={delimiter:e};return lh(n,r?Pc(r,i):i)};return t.responseType="text",t}function lh(e,t){return t.header&&(e=t.header.map(Kl).join(t.delimiter)+`
6
+ `+e),Lg(t.delimiter).parse(e+"")}lh.responseType="text";function TS(e){return typeof Buffer=="function"&&Dt(Buffer.isBuffer)?Buffer.isBuffer(e):!1}function fh(e,t){const n=t&&t.property?Zl(t.property):Wl;return Zt(e)&&!TS(e)?IS(n(e),t):n(JSON.parse(e))}fh.responseType="json";function IS(e,t){return!qt(e)&&s_(e)&&(e=[...e]),t&&t.copy?JSON.parse(JSON.stringify(e)):e}const kS={interior:(e,t)=>e!==t,exterior:(e,t)=>e===t};function Mm(e,t){let n,r,i,a;return e=fh(e,t),t&&t.feature?(n=x_,i=t.feature):t&&t.mesh?(n=E_,i=t.mesh,a=kS[t.filter]):Ye("Missing TopoJSON feature or mesh parameter."),r=(r=e.objects[i])?n(e,r,a):Ye("Invalid TopoJSON object: "+i),r&&r.features||[r]}Mm.responseType="json";const uh={dsv:lh,csv:Pm(","),tsv:Pm(" "),json:fh,topojson:Mm};function Nm(e,t){return arguments.length>1?(uh[e]=t,this):gi(uh,e)?uh[e]:null}function Lm(e,t,n,r){t=t||{};const i=Nm(t.type||"json");return i||Ye("Unknown data format type: "+t.type),e=i(e,t),t.parse&&BS(e,t.parse,n,r),gi(e,"columns")&&delete e.columns,e}function BS(e,t,n,r){if(!e.length)return;const i=fS();n=n||i.timeParse,r=r||i.utcParse;let a=e.columns||Object.keys(e[0]),o,s,f,l,u,c;t==="auto"&&(t=CS(e,a)),a=Object.keys(t);const h=a.map(d=>{const p=t[d];let b,y;if(p&&(p.startsWith("date:")||p.startsWith("utc:")))return b=p.split(/:(.+)?/,2),y=b[1],(y[0]==="'"&&y[y.length-1]==="'"||y[0]==='"'&&y[y.length-1]==='"')&&(y=y.slice(1,-1)),(b[0]==="utc"?r:n)(y);if(!Rm[p])throw Error("Illegal format pattern: "+d+":"+p);return Rm[p]});for(f=0,u=e.length,c=a.length;f<u;++f)for(o=e[f],l=0;l<c;++l)s=a[l],o[s]=h[l](o[s])}const gf=dS(typeof fetch<"u"&&fetch,null);/**
7
7
  * @license
8
8
  * Copyright 2017 Google LLC
9
9
  * SPDX-License-Identifier: BSD-3-Clause
10
- */var Ih;const Bf=window,Oa=Bf.trustedTypes,s1=Oa?Oa.createPolicy("lit-html",{createHTML:t=>t}):void 0,Vr=`lit$${(Math.random()+"").slice(9)}$`,u1="?"+Vr,b4=`<${u1}>`,za=document,bs=(t="")=>za.createComment(t),ys=t=>t===null||typeof t!="object"&&typeof t!="function",f1=Array.isArray,y4=t=>f1(t)||typeof(t==null?void 0:t[Symbol.iterator])=="function",ws=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,l1=/-->/g,c1=/>/g,Ui=RegExp(`>|[
11
- \f\r](?:([^\\s"'>=/]+)([
12
- \f\r]*=[
13
- \f\r]*(?:[^
14
- \f\r"'\`<>=]|("|')|))|$)`,"g"),h1=/'/g,d1=/"/g,g1=/^(?:script|style|textarea|title)$/i,w4=t=>(e,...n)=>({_$litType$:t,strings:e,values:n}),qn=w4(1),xs=Symbol.for("lit-noChange"),at=Symbol.for("lit-nothing"),p1=new WeakMap,Pa=za.createTreeWalker(za,129,null,!1),x4=(t,e)=>{const n=t.length-1,r=[];let i,a=e===2?"<svg>":"",o=ws;for(let f=0;f<n;f++){const u=t[f];let l,c,h=-1,d=0;for(;d<u.length&&(o.lastIndex=d,c=o.exec(u),c!==null);)d=o.lastIndex,o===ws?c[1]==="!--"?o=l1:c[1]!==void 0?o=c1:c[2]!==void 0?(g1.test(c[2])&&(i=RegExp("</"+c[2],"g")),o=Ui):c[3]!==void 0&&(o=Ui):o===Ui?c[0]===">"?(o=i??ws,h=-1):c[1]===void 0?h=-2:(h=o.lastIndex-c[2].length,l=c[1],o=c[3]===void 0?Ui:c[3]==='"'?d1:h1):o===d1||o===h1?o=Ui:o===l1||o===c1?o=ws:(o=Ui,i=void 0);const g=o===Ui&&t[f+1].startsWith("/>")?" ":"";a+=o===ws?u+b4:h>=0?(r.push(l),u.slice(0,h)+"$lit$"+u.slice(h)+Vr+g):u+Vr+(h===-2?(r.push(void 0),f):g)}const s=a+(t[n]||"<?>")+(e===2?"</svg>":"");if(!Array.isArray(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return[s1!==void 0?s1.createHTML(s):s,r]};let Mh=class AS{constructor({strings:e,_$litType$:n},r){let i;this.parts=[];let a=0,o=0;const s=e.length-1,f=this.parts,[u,l]=x4(e,n);if(this.el=AS.createElement(u,r),Pa.currentNode=this.el.content,n===2){const c=this.el.content,h=c.firstChild;h.remove(),c.append(...h.childNodes)}for(;(i=Pa.nextNode())!==null&&f.length<s;){if(i.nodeType===1){if(i.hasAttributes()){const c=[];for(const h of i.getAttributeNames())if(h.endsWith("$lit$")||h.startsWith(Vr)){const d=l[o++];if(c.push(h),d!==void 0){const g=i.getAttribute(d.toLowerCase()+"$lit$").split(Vr),b=/([.?@])?(.*)/.exec(d);f.push({type:1,index:a,name:b[2],strings:g,ctor:b[1]==="."?A4:b[1]==="?"?S4:b[1]==="@"?_4:Lf})}else f.push({type:6,index:a})}for(const h of c)i.removeAttribute(h)}if(g1.test(i.tagName)){const c=i.textContent.split(Vr),h=c.length-1;if(h>0){i.textContent=Oa?Oa.emptyScript:"";for(let d=0;d<h;d++)i.append(c[d],bs()),Pa.nextNode(),f.push({type:2,index:++a});i.append(c[h],bs())}}}else if(i.nodeType===8)if(i.data===u1)f.push({type:2,index:a});else{let c=-1;for(;(c=i.data.indexOf(Vr,c+1))!==-1;)f.push({type:7,index:a}),c+=Vr.length-1}a++}}static createElement(e,n){const r=za.createElement("template");return r.innerHTML=e,r}};function Ua(t,e,n=t,r){var i,a,o,s;if(e===xs)return e;let f=r!==void 0?(i=n._$Co)===null||i===void 0?void 0:i[r]:n._$Cl;const u=ys(e)?void 0:e._$litDirective$;return(f==null?void 0:f.constructor)!==u&&((a=f==null?void 0:f._$AO)===null||a===void 0||a.call(f,!1),u===void 0?f=void 0:(f=new u(t),f._$AT(t,n,r)),r!==void 0?((o=(s=n)._$Co)!==null&&o!==void 0?o:s._$Co=[])[r]=f:n._$Cl=f),f!==void 0&&(e=Ua(t,f._$AS(t,e.values),f,r)),e}class v4{constructor(e,n){this.u=[],this._$AN=void 0,this._$AD=e,this._$AM=n}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}v(e){var n;const{el:{content:r},parts:i}=this._$AD,a=((n=e==null?void 0:e.creationScope)!==null&&n!==void 0?n:za).importNode(r,!0);Pa.currentNode=a;let o=Pa.nextNode(),s=0,f=0,u=i[0];for(;u!==void 0;){if(s===u.index){let l;u.type===2?l=new vs(o,o.nextSibling,this,e):u.type===1?l=new u.ctor(o,u.name,u.strings,this,e):u.type===6&&(l=new C4(o,this,e)),this.u.push(l),u=i[++f]}s!==(u==null?void 0:u.index)&&(o=Pa.nextNode(),s++)}return a}p(e){let n=0;for(const r of this.u)r!==void 0&&(r.strings!==void 0?(r._$AI(e,r,n),n+=r.strings.length-2):r._$AI(e[n])),n++}}class vs{constructor(e,n,r,i){var a;this.type=2,this._$AH=at,this._$AN=void 0,this._$AA=e,this._$AB=n,this._$AM=r,this.options=i,this._$Cm=(a=i==null?void 0:i.isConnected)===null||a===void 0||a}get _$AU(){var e,n;return(n=(e=this._$AM)===null||e===void 0?void 0:e._$AU)!==null&&n!==void 0?n:this._$Cm}get parentNode(){let e=this._$AA.parentNode;const n=this._$AM;return n!==void 0&&e.nodeType===11&&(e=n.parentNode),e}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(e,n=this){e=Ua(this,e,n),ys(e)?e===at||e==null||e===""?(this._$AH!==at&&this._$AR(),this._$AH=at):e!==this._$AH&&e!==xs&&this.g(e):e._$litType$!==void 0?this.$(e):e.nodeType!==void 0?this.T(e):y4(e)?this.k(e):this.g(e)}O(e,n=this._$AB){return this._$AA.parentNode.insertBefore(e,n)}T(e){this._$AH!==e&&(this._$AR(),this._$AH=this.O(e))}g(e){this._$AH!==at&&ys(this._$AH)?this._$AA.nextSibling.data=e:this.T(za.createTextNode(e)),this._$AH=e}$(e){var n;const{values:r,_$litType$:i}=e,a=typeof i=="number"?this._$AC(e):(i.el===void 0&&(i.el=Mh.createElement(i.h,this.options)),i);if(((n=this._$AH)===null||n===void 0?void 0:n._$AD)===a)this._$AH.p(r);else{const o=new v4(a,this),s=o.v(this.options);o.p(r),this.T(s),this._$AH=o}}_$AC(e){let n=p1.get(e.strings);return n===void 0&&p1.set(e.strings,n=new Mh(e)),n}k(e){f1(this._$AH)||(this._$AH=[],this._$AR());const n=this._$AH;let r,i=0;for(const a of e)i===n.length?n.push(r=new vs(this.O(bs()),this.O(bs()),this,this.options)):r=n[i],r._$AI(a),i++;i<n.length&&(this._$AR(r&&r._$AB.nextSibling,i),n.length=i)}_$AR(e=this._$AA.nextSibling,n){var r;for((r=this._$AP)===null||r===void 0||r.call(this,!1,!0,n);e&&e!==this._$AB;){const i=e.nextSibling;e.remove(),e=i}}setConnected(e){var n;this._$AM===void 0&&(this._$Cm=e,(n=this._$AP)===null||n===void 0||n.call(this,e))}}class Lf{constructor(e,n,r,i,a){this.type=1,this._$AH=at,this._$AN=void 0,this.element=e,this.name=n,this._$AM=i,this.options=a,r.length>2||r[0]!==""||r[1]!==""?(this._$AH=Array(r.length-1).fill(new String),this.strings=r):this._$AH=at}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(e,n=this,r,i){const a=this.strings;let o=!1;if(a===void 0)e=Ua(this,e,n,0),o=!ys(e)||e!==this._$AH&&e!==xs,o&&(this._$AH=e);else{const s=e;let f,u;for(e=a[0],f=0;f<a.length-1;f++)u=Ua(this,s[r+f],n,f),u===xs&&(u=this._$AH[f]),o||(o=!ys(u)||u!==this._$AH[f]),u===at?e=at:e!==at&&(e+=(u??"")+a[f+1]),this._$AH[f]=u}o&&!i&&this.j(e)}j(e){e===at?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,e??"")}}class A4 extends Lf{constructor(){super(...arguments),this.type=3}j(e){this.element[this.name]=e===at?void 0:e}}const E4=Oa?Oa.emptyScript:"";class S4 extends Lf{constructor(){super(...arguments),this.type=4}j(e){e&&e!==at?this.element.setAttribute(this.name,E4):this.element.removeAttribute(this.name)}}class _4 extends Lf{constructor(e,n,r,i,a){super(e,n,r,i,a),this.type=5}_$AI(e,n=this){var r;if((e=(r=Ua(this,e,n,0))!==null&&r!==void 0?r:at)===xs)return;const i=this._$AH,a=e===at&&i!==at||e.capture!==i.capture||e.once!==i.once||e.passive!==i.passive,o=e!==at&&(i===at||a);a&&this.element.removeEventListener(this.name,this,i),o&&this.element.addEventListener(this.name,this,e),this._$AH=e}handleEvent(e){var n,r;typeof this._$AH=="function"?this._$AH.call((r=(n=this.options)===null||n===void 0?void 0:n.host)!==null&&r!==void 0?r:this.element,e):this._$AH.handleEvent(e)}}class C4{constructor(e,n,r){this.element=e,this.type=6,this._$AN=void 0,this._$AM=n,this.options=r}get _$AU(){return this._$AM._$AU}_$AI(e){Ua(this,e)}}const m1=Bf.litHtmlPolyfillSupport;m1==null||m1(Mh,vs),((Ih=Bf.litHtmlVersions)!==null&&Ih!==void 0?Ih:Bf.litHtmlVersions=[]).push("2.4.0");const b1=(t,e,n)=>{var r,i;const a=(r=n==null?void 0:n.renderBefore)!==null&&r!==void 0?r:e;let o=a._$litPart$;if(o===void 0){const s=(i=n==null?void 0:n.renderBefore)!==null&&i!==void 0?i:null;a._$litPart$=o=new vs(e.insertBefore(bs(),s),s,void 0,n??{})}return o._$AI(t),o},D4=`.genome-spy {
10
+ */const Qo=globalThis,mf=Qo.trustedTypes,Om=mf?mf.createPolicy("lit-html",{createHTML:e=>e}):void 0,zm="$lit$",Tr=`lit$${(Math.random()+"").slice(9)}$`,Um="?"+Tr,DS=`<${Um}>`,Ei=document,Xo=()=>Ei.createComment(""),$o=e=>e===null||typeof e!="object"&&typeof e!="function",Gm=Array.isArray,FS=e=>Gm(e)||typeof(e==null?void 0:e[Symbol.iterator])=="function",ch=`[
11
+ \f\r]`,Ko=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,Hm=/-->/g,Vm=/>/g,_i=RegExp(`>|${ch}(?:([^\\s"'>=/]+)(${ch}*=${ch}*(?:[^
12
+ \f\r"'\`<>=]|("|')|))|$)`,"g"),jm=/'/g,qm=/"/g,Zm=/^(?:script|style|textarea|title)$/i,RS=e=>(t,...n)=>({_$litType$:e,strings:t,values:n}),Fn=RS(1),Jo=Symbol.for("lit-noChange"),nt=Symbol.for("lit-nothing"),Wm=new WeakMap,Si=Ei.createTreeWalker(Ei,129);function Ym(e,t){if(!Array.isArray(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return Om!==void 0?Om.createHTML(t):t}const PS=(e,t)=>{const n=e.length-1,r=[];let i,a=t===2?"<svg>":"",o=Ko;for(let s=0;s<n;s++){const f=e[s];let l,u,c=-1,h=0;for(;h<f.length&&(o.lastIndex=h,u=o.exec(f),u!==null);)h=o.lastIndex,o===Ko?u[1]==="!--"?o=Hm:u[1]!==void 0?o=Vm:u[2]!==void 0?(Zm.test(u[2])&&(i=RegExp("</"+u[2],"g")),o=_i):u[3]!==void 0&&(o=_i):o===_i?u[0]===">"?(o=i??Ko,c=-1):u[1]===void 0?c=-2:(c=o.lastIndex-u[2].length,l=u[1],o=u[3]===void 0?_i:u[3]==='"'?qm:jm):o===qm||o===jm?o=_i:o===Hm||o===Vm?o=Ko:(o=_i,i=void 0);const d=o===_i&&e[s+1].startsWith("/>")?" ":"";a+=o===Ko?f+DS:c>=0?(r.push(l),f.slice(0,c)+zm+f.slice(c)+Tr+d):f+Tr+(c===-2?s:d)}return[Ym(e,a+(e[n]||"<?>")+(t===2?"</svg>":"")),r]};class es{constructor({strings:t,_$litType$:n},r){let i;this.parts=[];let a=0,o=0;const s=t.length-1,f=this.parts,[l,u]=PS(t,n);if(this.el=es.createElement(l,r),Si.currentNode=this.el.content,n===2){const c=this.el.content.firstChild;c.replaceWith(...c.childNodes)}for(;(i=Si.nextNode())!==null&&f.length<s;){if(i.nodeType===1){if(i.hasAttributes())for(const c of i.getAttributeNames())if(c.endsWith(zm)){const h=u[o++],d=i.getAttribute(c).split(Tr),p=/([.?@])?(.*)/.exec(h);f.push({type:1,index:a,name:p[2],strings:d,ctor:p[1]==="."?NS:p[1]==="?"?LS:p[1]==="@"?OS:bf}),i.removeAttribute(c)}else c.startsWith(Tr)&&(f.push({type:6,index:a}),i.removeAttribute(c));if(Zm.test(i.tagName)){const c=i.textContent.split(Tr),h=c.length-1;if(h>0){i.textContent=mf?mf.emptyScript:"";for(let d=0;d<h;d++)i.append(c[d],Xo()),Si.nextNode(),f.push({type:2,index:++a});i.append(c[h],Xo())}}}else if(i.nodeType===8)if(i.data===Um)f.push({type:2,index:a});else{let c=-1;for(;(c=i.data.indexOf(Tr,c+1))!==-1;)f.push({type:7,index:a}),c+=Tr.length-1}a++}}static createElement(t,n){const r=Ei.createElement("template");return r.innerHTML=t,r}}function Aa(e,t,n=e,r){var o,s;if(t===Jo)return t;let i=r!==void 0?(o=n._$Co)==null?void 0:o[r]:n._$Cl;const a=$o(t)?void 0:t._$litDirective$;return(i==null?void 0:i.constructor)!==a&&((s=i==null?void 0:i._$AO)==null||s.call(i,!1),a===void 0?i=void 0:(i=new a(e),i._$AT(e,n,r)),r!==void 0?(n._$Co??(n._$Co=[]))[r]=i:n._$Cl=i),i!==void 0&&(t=Aa(e,i._$AS(e,t.values),i,r)),t}class MS{constructor(t,n){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=n}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:n},parts:r}=this._$AD,i=((t==null?void 0:t.creationScope)??Ei).importNode(n,!0);Si.currentNode=i;let a=Si.nextNode(),o=0,s=0,f=r[0];for(;f!==void 0;){if(o===f.index){let l;f.type===2?l=new ts(a,a.nextSibling,this,t):f.type===1?l=new f.ctor(a,f.name,f.strings,this,t):f.type===6&&(l=new zS(a,this,t)),this._$AV.push(l),f=r[++s]}o!==(f==null?void 0:f.index)&&(a=Si.nextNode(),o++)}return Si.currentNode=Ei,i}p(t){let n=0;for(const r of this._$AV)r!==void 0&&(r.strings!==void 0?(r._$AI(t,r,n),n+=r.strings.length-2):r._$AI(t[n])),n++}}class ts{get _$AU(){var t;return((t=this._$AM)==null?void 0:t._$AU)??this._$Cv}constructor(t,n,r,i){this.type=2,this._$AH=nt,this._$AN=void 0,this._$AA=t,this._$AB=n,this._$AM=r,this.options=i,this._$Cv=(i==null?void 0:i.isConnected)??!0}get parentNode(){let t=this._$AA.parentNode;const n=this._$AM;return n!==void 0&&(t==null?void 0:t.nodeType)===11&&(t=n.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,n=this){t=Aa(this,t,n),$o(t)?t===nt||t==null||t===""?(this._$AH!==nt&&this._$AR(),this._$AH=nt):t!==this._$AH&&t!==Jo&&this._(t):t._$litType$!==void 0?this.g(t):t.nodeType!==void 0?this.$(t):FS(t)?this.T(t):this._(t)}k(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}$(t){this._$AH!==t&&(this._$AR(),this._$AH=this.k(t))}_(t){this._$AH!==nt&&$o(this._$AH)?this._$AA.nextSibling.data=t:this.$(Ei.createTextNode(t)),this._$AH=t}g(t){var a;const{values:n,_$litType$:r}=t,i=typeof r=="number"?this._$AC(t):(r.el===void 0&&(r.el=es.createElement(Ym(r.h,r.h[0]),this.options)),r);if(((a=this._$AH)==null?void 0:a._$AD)===i)this._$AH.p(n);else{const o=new MS(i,this),s=o.u(this.options);o.p(n),this.$(s),this._$AH=o}}_$AC(t){let n=Wm.get(t.strings);return n===void 0&&Wm.set(t.strings,n=new es(t)),n}T(t){Gm(this._$AH)||(this._$AH=[],this._$AR());const n=this._$AH;let r,i=0;for(const a of t)i===n.length?n.push(r=new ts(this.k(Xo()),this.k(Xo()),this,this.options)):r=n[i],r._$AI(a),i++;i<n.length&&(this._$AR(r&&r._$AB.nextSibling,i),n.length=i)}_$AR(t=this._$AA.nextSibling,n){var r;for((r=this._$AP)==null?void 0:r.call(this,!1,!0,n);t&&t!==this._$AB;){const i=t.nextSibling;t.remove(),t=i}}setConnected(t){var n;this._$AM===void 0&&(this._$Cv=t,(n=this._$AP)==null||n.call(this,t))}}let bf=class{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,n,r,i,a){this.type=1,this._$AH=nt,this._$AN=void 0,this.element=t,this.name=n,this._$AM=i,this.options=a,r.length>2||r[0]!==""||r[1]!==""?(this._$AH=Array(r.length-1).fill(new String),this.strings=r):this._$AH=nt}_$AI(t,n=this,r,i){const a=this.strings;let o=!1;if(a===void 0)t=Aa(this,t,n,0),o=!$o(t)||t!==this._$AH&&t!==Jo,o&&(this._$AH=t);else{const s=t;let f,l;for(t=a[0],f=0;f<a.length-1;f++)l=Aa(this,s[r+f],n,f),l===Jo&&(l=this._$AH[f]),o||(o=!$o(l)||l!==this._$AH[f]),l===nt?t=nt:t!==nt&&(t+=(l??"")+a[f+1]),this._$AH[f]=l}o&&!i&&this.O(t)}O(t){t===nt?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??"")}};class NS extends bf{constructor(){super(...arguments),this.type=3}O(t){this.element[this.name]=t===nt?void 0:t}}class LS extends bf{constructor(){super(...arguments),this.type=4}O(t){this.element.toggleAttribute(this.name,!!t&&t!==nt)}}class OS extends bf{constructor(t,n,r,i,a){super(t,n,r,i,a),this.type=5}_$AI(t,n=this){if((t=Aa(this,t,n,0)??nt)===Jo)return;const r=this._$AH,i=t===nt&&r!==nt||t.capture!==r.capture||t.once!==r.once||t.passive!==r.passive,a=t!==nt&&(r===nt||i);i&&this.element.removeEventListener(this.name,this,r),a&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){var n;typeof this._$AH=="function"?this._$AH.call(((n=this.options)==null?void 0:n.host)??this.element,t):this._$AH.handleEvent(t)}}class zS{constructor(t,n,r){this.element=t,this.type=6,this._$AN=void 0,this._$AM=n,this.options=r}get _$AU(){return this._$AM._$AU}_$AI(t){Aa(this,t)}}const hh=Qo.litHtmlPolyfillSupport;hh==null||hh(es,ts),(Qo.litHtmlVersions??(Qo.litHtmlVersions=[])).push("3.1.0");const Qm=(e,t,n)=>{const r=(n==null?void 0:n.renderBefore)??t;let i=r._$litPart$;if(i===void 0){const a=(n==null?void 0:n.renderBefore)??null;r._$litPart$=i=new ts(t.insertBefore(Xo(),a),a,void 0,n??{})}return i._$AI(e),i},US=`.genome-spy {
15
13
  font-family: system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
16
14
  position: relative;
17
15
  }
@@ -122,11 +120,11 @@ var L7=Object.defineProperty;var R7=(ge,de,Je)=>de in ge?L7(ge,de,{enumerable:!0
122
120
  border: 1px solid red;
123
121
  padding: 10px;
124
122
  background: #fff0f0;
125
- }`;function I4(t,e){var n=t.getBoundingClientRect();return[e.clientX-n.left-t.clientLeft,e.clientY-n.top-t.clientTop]}function Rf(t,e){return t.length==e.length&&t.every((n,r)=>t[r]===e[r])}function $t(t){return Array.isArray(t)?t:typeof t<"u"?[t]:[]}function As(t){return t[t.length-1]}class M4{constructor(e){this.container=e,this.element=document.createElement("div"),this.element.className="tooltip",this._visible=!0,this.container.appendChild(this.element),this._previousTooltipDatum=void 0,this.enabledStack=[!0],this._penaltyUntil=0,this._lastCoords=void 0,this._previousMove=0,this.clear()}set visible(e){e!=this._visible&&(this.element.style.display=e?null:"none",this._visible=e)}get visible(){return this._visible}get enabled(){return As(this.enabledStack)??!0}pushEnabledState(e){this.enabledStack.push(e),e||(this.visible=!1)}popEnabledState(){this.enabledStack.pop()}handleMouseMove(e){this.mouseCoords=I4(this.container,e);const n=performance.now();!this.visible&&!this._isPenalty()&&n-this._previousMove>500&&(this._penaltyUntil=n+70),this._lastCoords&&T4(this.mouseCoords,this._lastCoords)>20&&(this._penaltyUntil=n+400),this._lastCoords=this.mouseCoords,this.visible&&this.updatePlacement(),this._previousMove=n}updatePlacement(){const[n,r]=this.mouseCoords;let i=n+20;i>this.container.clientWidth-this.element.offsetWidth&&(i=n-20-this.element.offsetWidth),this.element.style.left=i+"px",this.element.style.top=Math.min(r+20,this.container.clientHeight-this.element.offsetHeight)+"px"}setContent(e){if(!e||!this.enabled||this._isPenalty()){this.visible&&(b1("",this.element),this.visible=!1),this._previousTooltipDatum=void 0;return}b1(e,this.element),this.visible=!0,this.updatePlacement()}clear(){this._previousTooltipDatum=void 0,this.setContent(void 0)}updateWithDatum(e,n){e!==this._previousTooltipDatum&&(this._previousTooltipDatum=e,n||(n=r=>Promise.resolve(qn` ${JSON.stringify(r)} `)),n(e).then(r=>this.setContent(r)).catch(r=>{if(r!=="debounced")throw r}))}_isPenalty(){return this._penaltyUntil&&this._penaltyUntil>performance.now()}}function T4(t,e){let n=0;for(let r=0;r<t.length;r++)n+=(t[r]-e[r])**2;return Math.sqrt(n)}const N4="RawCode",F4="Literal",k4="Property",B4="Identifier",L4="ArrayExpression",R4="BinaryExpression",O4="CallExpression",z4="ConditionalExpression",P4="LogicalExpression",U4="MemberExpression",j4="ObjectExpression",G4="UnaryExpression";function Mn(t){this.type=t}Mn.prototype.visit=function(t){let e,n,r;if(t(this))return 1;for(e=H4(this),n=0,r=e.length;n<r;++n)if(e[n].visit(t))return 1};function H4(t){switch(t.type){case L4:return t.elements;case R4:case P4:return[t.left,t.right];case O4:return[t.callee].concat(t.arguments);case z4:return[t.test,t.consequent,t.alternate];case U4:return[t.object,t.property];case j4:return t.properties;case k4:return[t.key,t.value];case G4:return[t.argument];case B4:case F4:case N4:default:return[]}}var Zn,te,j,vt,Ie,Of=1,Es=2,ji=3,qr=4,zf=5,Gi=6,Ot=7,Ss=8,Q4=9;Zn={},Zn[Of]="Boolean",Zn[Es]="<end>",Zn[ji]="Identifier",Zn[qr]="Keyword",Zn[zf]="Null",Zn[Gi]="Numeric",Zn[Ot]="Punctuator",Zn[Ss]="String",Zn[Q4]="RegularExpression";var V4="ArrayExpression",q4="BinaryExpression",Z4="CallExpression",Y4="ConditionalExpression",y1="Identifier",W4="Literal",X4="LogicalExpression",$4="MemberExpression",K4="ObjectExpression",J4="Property",eD="UnaryExpression",ct="Unexpected token %0",tD="Unexpected number",nD="Unexpected string",rD="Unexpected identifier",iD="Unexpected reserved word",aD="Unexpected end of input",Th="Invalid regular expression",Nh="Invalid regular expression: missing /",w1="Octal literals are not allowed in strict mode.",oD="Duplicate data property in object literal not allowed in strict mode",mt="ILLEGAL",_s="Disabled.",sD=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B2\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]"),uD=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B2\\u08E4-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58\\u0C59\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D60-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA69D\\uA69F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2D\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]");function Pf(t,e){if(!t)throw new Error("ASSERT: "+e)}function vr(t){return t>=48&&t<=57}function Fh(t){return"0123456789abcdefABCDEF".indexOf(t)>=0}function Cs(t){return"01234567".indexOf(t)>=0}function fD(t){return t===32||t===9||t===11||t===12||t===160||t>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(t)>=0}function Ds(t){return t===10||t===13||t===8232||t===8233}function Is(t){return t===36||t===95||t>=65&&t<=90||t>=97&&t<=122||t===92||t>=128&&sD.test(String.fromCharCode(t))}function Uf(t){return t===36||t===95||t>=65&&t<=90||t>=97&&t<=122||t>=48&&t<=57||t===92||t>=128&&uD.test(String.fromCharCode(t))}const lD={if:1,in:1,do:1,var:1,for:1,new:1,try:1,let:1,this:1,else:1,case:1,void:1,with:1,enum:1,while:1,break:1,catch:1,throw:1,const:1,yield:1,class:1,super:1,return:1,typeof:1,delete:1,switch:1,export:1,import:1,public:1,static:1,default:1,finally:1,extends:1,package:1,private:1,function:1,continue:1,debugger:1,interface:1,protected:1,instanceof:1,implements:1};function x1(){for(;j<vt;){const t=te.charCodeAt(j);if(fD(t)||Ds(t))++j;else break}}function kh(t){var e,n,r,i=0;for(n=t==="u"?4:2,e=0;e<n;++e)j<vt&&Fh(te[j])?(r=te[j++],i=i*16+"0123456789abcdef".indexOf(r.toLowerCase())):ve({},ct,mt);return String.fromCharCode(i)}function cD(){var t,e,n,r;for(t=te[j],e=0,t==="}"&&ve({},ct,mt);j<vt&&(t=te[j++],!!Fh(t));)e=e*16+"0123456789abcdef".indexOf(t.toLowerCase());return(e>1114111||t!=="}")&&ve({},ct,mt),e<=65535?String.fromCharCode(e):(n=(e-65536>>10)+55296,r=(e-65536&1023)+56320,String.fromCharCode(n,r))}function v1(){var t,e;for(t=te.charCodeAt(j++),e=String.fromCharCode(t),t===92&&(te.charCodeAt(j)!==117&&ve({},ct,mt),++j,t=kh("u"),(!t||t==="\\"||!Is(t.charCodeAt(0)))&&ve({},ct,mt),e=t);j<vt&&(t=te.charCodeAt(j),!!Uf(t));)++j,e+=String.fromCharCode(t),t===92&&(e=e.substr(0,e.length-1),te.charCodeAt(j)!==117&&ve({},ct,mt),++j,t=kh("u"),(!t||t==="\\"||!Uf(t.charCodeAt(0)))&&ve({},ct,mt),e+=t);return e}function hD(){var t,e;for(t=j++;j<vt;){if(e=te.charCodeAt(j),e===92)return j=t,v1();if(Uf(e))++j;else break}return te.slice(t,j)}function dD(){var t,e,n;return t=j,e=te.charCodeAt(j)===92?v1():hD(),e.length===1?n=ji:lD.hasOwnProperty(e)?n=qr:e==="null"?n=zf:e==="true"||e==="false"?n=Of:n=ji,{type:n,value:e,start:t,end:j}}function Bh(){var t=j,e=te.charCodeAt(j),n,r=te[j],i,a,o;switch(e){case 46:case 40:case 41:case 59:case 44:case 123:case 125:case 91:case 93:case 58:case 63:case 126:return++j,{type:Ot,value:String.fromCharCode(e),start:t,end:j};default:if(n=te.charCodeAt(j+1),n===61)switch(e){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return j+=2,{type:Ot,value:String.fromCharCode(e)+String.fromCharCode(n),start:t,end:j};case 33:case 61:return j+=2,te.charCodeAt(j)===61&&++j,{type:Ot,value:te.slice(t,j),start:t,end:j}}}if(o=te.substr(j,4),o===">>>=")return j+=4,{type:Ot,value:o,start:t,end:j};if(a=o.substr(0,3),a===">>>"||a==="<<="||a===">>=")return j+=3,{type:Ot,value:a,start:t,end:j};if(i=a.substr(0,2),r===i[1]&&"+-<>&|".indexOf(r)>=0||i==="=>")return j+=2,{type:Ot,value:i,start:t,end:j};if(i==="//"&&ve({},ct,mt),"<>=!+-*%&|^/".indexOf(r)>=0)return++j,{type:Ot,value:r,start:t,end:j};ve({},ct,mt)}function gD(t){let e="";for(;j<vt&&Fh(te[j]);)e+=te[j++];return e.length===0&&ve({},ct,mt),Is(te.charCodeAt(j))&&ve({},ct,mt),{type:Gi,value:parseInt("0x"+e,16),start:t,end:j}}function pD(t){let e="0"+te[j++];for(;j<vt&&Cs(te[j]);)e+=te[j++];return(Is(te.charCodeAt(j))||vr(te.charCodeAt(j)))&&ve({},ct,mt),{type:Gi,value:parseInt(e,8),octal:!0,start:t,end:j}}function A1(){var t,e,n;if(n=te[j],Pf(vr(n.charCodeAt(0))||n===".","Numeric literal must start with a decimal digit or a decimal point"),e=j,t="",n!=="."){if(t=te[j++],n=te[j],t==="0"){if(n==="x"||n==="X")return++j,gD(e);if(Cs(n))return pD(e);n&&vr(n.charCodeAt(0))&&ve({},ct,mt)}for(;vr(te.charCodeAt(j));)t+=te[j++];n=te[j]}if(n==="."){for(t+=te[j++];vr(te.charCodeAt(j));)t+=te[j++];n=te[j]}if(n==="e"||n==="E")if(t+=te[j++],n=te[j],(n==="+"||n==="-")&&(t+=te[j++]),vr(te.charCodeAt(j)))for(;vr(te.charCodeAt(j));)t+=te[j++];else ve({},ct,mt);return Is(te.charCodeAt(j))&&ve({},ct,mt),{type:Gi,value:parseFloat(t),start:e,end:j}}function mD(){var t="",e,n,r,i,a=!1;for(e=te[j],Pf(e==="'"||e==='"',"String literal must starts with a quote"),n=j,++j;j<vt;)if(r=te[j++],r===e){e="";break}else if(r==="\\")if(r=te[j++],!r||!Ds(r.charCodeAt(0)))switch(r){case"u":case"x":te[j]==="{"?(++j,t+=cD()):t+=kh(r);break;case"n":t+=`
126
- `;break;case"r":t+="\r";break;case"t":t+=" ";break;case"b":t+="\b";break;case"f":t+="\f";break;case"v":t+="\v";break;default:Cs(r)?(i="01234567".indexOf(r),i!==0&&(a=!0),j<vt&&Cs(te[j])&&(a=!0,i=i*8+"01234567".indexOf(te[j++]),"0123".indexOf(r)>=0&&j<vt&&Cs(te[j])&&(i=i*8+"01234567".indexOf(te[j++]))),t+=String.fromCharCode(i)):t+=r;break}else r==="\r"&&te[j]===`
127
- `&&++j;else{if(Ds(r.charCodeAt(0)))break;t+=r}return e!==""&&ve({},ct,mt),{type:Ss,value:t,octal:a,start:n,end:j}}function bD(t,e){let n=t;e.indexOf("u")>=0&&(n=n.replace(/\\u\{([0-9a-fA-F]+)\}/g,(r,i)=>{if(parseInt(i,16)<=1114111)return"x";ve({},Th)}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(n)}catch{ve({},Th)}try{return new RegExp(t,e)}catch{return null}}function yD(){var t,e,n,r,i;for(t=te[j],Pf(t==="/","Regular expression literal must start with a slash"),e=te[j++],n=!1,r=!1;j<vt;)if(t=te[j++],e+=t,t==="\\")t=te[j++],Ds(t.charCodeAt(0))&&ve({},Nh),e+=t;else if(Ds(t.charCodeAt(0)))ve({},Nh);else if(n)t==="]"&&(n=!1);else if(t==="/"){r=!0;break}else t==="["&&(n=!0);return r||ve({},Nh),i=e.substr(1,e.length-2),{value:i,literal:e}}function wD(){var t,e,n;for(e="",n="";j<vt&&(t=te[j],!!Uf(t.charCodeAt(0)));)++j,t==="\\"&&j<vt?ve({},ct,mt):(n+=t,e+=t);return n.search(/[^gimuy]/g)>=0&&ve({},Th,n),{value:n,literal:e}}function xD(){var t,e,n,r;return Ie=null,x1(),t=j,e=yD(),n=wD(),r=bD(e.value,n.value),{literal:e.literal+n.literal,value:r,regex:{pattern:e.value,flags:n.value},start:t,end:j}}function vD(t){return t.type===ji||t.type===qr||t.type===Of||t.type===zf}function E1(){if(x1(),j>=vt)return{type:Es,start:j,end:j};const t=te.charCodeAt(j);return Is(t)?dD():t===40||t===41||t===59?Bh():t===39||t===34?mD():t===46?vr(te.charCodeAt(j+1))?A1():Bh():vr(t)?A1():Bh()}function zt(){const t=Ie;return j=t.end,Ie=E1(),j=t.end,t}function S1(){const t=j;Ie=E1(),j=t}function AD(t){const e=new Mn(V4);return e.elements=t,e}function _1(t,e,n){const r=new Mn(t==="||"||t==="&&"?X4:q4);return r.operator=t,r.left=e,r.right=n,r}function ED(t,e){const n=new Mn(Z4);return n.callee=t,n.arguments=e,n}function SD(t,e,n){const r=new Mn(Y4);return r.test=t,r.consequent=e,r.alternate=n,r}function Lh(t){const e=new Mn(y1);return e.name=t,e}function Ms(t){const e=new Mn(W4);return e.value=t.value,e.raw=te.slice(t.start,t.end),t.regex&&(e.raw==="//"&&(e.raw="/(?:)/"),e.regex=t.regex),e}function C1(t,e,n){const r=new Mn($4);return r.computed=t==="[",r.object=e,r.property=n,r.computed||(n.member=!0),r}function _D(t){const e=new Mn(K4);return e.properties=t,e}function D1(t,e,n){const r=new Mn(J4);return r.key=e,r.value=n,r.kind=t,r}function CD(t,e){const n=new Mn(eD);return n.operator=t,n.argument=e,n.prefix=!0,n}function ve(t,e){var n,r=Array.prototype.slice.call(arguments,2),i=e.replace(/%(\d)/g,(a,o)=>(Pf(o<r.length,"Message reference must be in range"),r[o]));throw n=new Error(i),n.index=j,n.description=i,n}function jf(t){t.type===Es&&ve(t,aD),t.type===Gi&&ve(t,tD),t.type===Ss&&ve(t,nD),t.type===ji&&ve(t,rD),t.type===qr&&ve(t,iD),ve(t,ct,t.value)}function At(t){const e=zt();(e.type!==Ot||e.value!==t)&&jf(e)}function je(t){return Ie.type===Ot&&Ie.value===t}function Rh(t){return Ie.type===qr&&Ie.value===t}function DD(){const t=[];for(j=Ie.start,At("[");!je("]");)je(",")?(zt(),t.push(null)):(t.push(Hi()),je("]")||At(","));return zt(),AD(t)}function I1(){j=Ie.start;const t=zt();return t.type===Ss||t.type===Gi?(t.octal&&ve(t,w1),Ms(t)):Lh(t.value)}function ID(){var t,e,n,r;if(j=Ie.start,t=Ie,t.type===ji)return n=I1(),At(":"),r=Hi(),D1("init",n,r);if(t.type===Es||t.type===Ot)jf(t);else return e=I1(),At(":"),r=Hi(),D1("init",e,r)}function MD(){var t=[],e,n,r,i={},a=String;for(j=Ie.start,At("{");!je("}");)e=ID(),e.key.type===y1?n=e.key.name:n=a(e.key.value),r="$"+n,Object.prototype.hasOwnProperty.call(i,r)?ve({},oD):i[r]=!0,t.push(e),je("}")||At(",");return At("}"),_D(t)}function TD(){At("(");const t=Oh();return At(")"),t}const ND={if:1};function FD(){var t,e,n;if(je("("))return TD();if(je("["))return DD();if(je("{"))return MD();if(t=Ie.type,j=Ie.start,t===ji||ND[Ie.value])n=Lh(zt().value);else if(t===Ss||t===Gi)Ie.octal&&ve(Ie,w1),n=Ms(zt());else{if(t===qr)throw new Error(_s);t===Of?(e=zt(),e.value=e.value==="true",n=Ms(e)):t===zf?(e=zt(),e.value=null,n=Ms(e)):je("/")||je("/=")?(n=Ms(xD()),S1()):jf(zt())}return n}function kD(){const t=[];if(At("("),!je(")"))for(;j<vt&&(t.push(Hi()),!je(")"));)At(",");return At(")"),t}function BD(){j=Ie.start;const t=zt();return vD(t)||jf(t),Lh(t.value)}function LD(){return At("."),BD()}function RD(){At("[");const t=Oh();return At("]"),t}function OD(){var t,e,n;for(t=FD();;)if(je("."))n=LD(),t=C1(".",t,n);else if(je("("))e=kD(),t=ED(t,e);else if(je("["))n=RD(),t=C1("[",t,n);else break;return t}function M1(){const t=OD();if(Ie.type===Ot&&(je("++")||je("--")))throw new Error(_s);return t}function Gf(){var t,e;if(Ie.type!==Ot&&Ie.type!==qr)e=M1();else{if(je("++")||je("--"))throw new Error(_s);if(je("+")||je("-")||je("~")||je("!"))t=zt(),e=Gf(),e=CD(t.value,e);else{if(Rh("delete")||Rh("void")||Rh("typeof"))throw new Error(_s);e=M1()}}return e}function T1(t){let e=0;if(t.type!==Ot&&t.type!==qr)return 0;switch(t.value){case"||":e=1;break;case"&&":e=2;break;case"|":e=3;break;case"^":e=4;break;case"&":e=5;break;case"==":case"!=":case"===":case"!==":e=6;break;case"<":case">":case"<=":case">=":case"instanceof":case"in":e=7;break;case"<<":case">>":case">>>":e=8;break;case"+":case"-":e=9;break;case"*":case"/":case"%":e=11;break}return e}function zD(){var t,e,n,r,i,a,o,s,f,u;if(t=Ie,f=Gf(),r=Ie,i=T1(r),i===0)return f;for(r.prec=i,zt(),e=[t,Ie],o=Gf(),a=[f,r,o];(i=T1(Ie))>0;){for(;a.length>2&&i<=a[a.length-2].prec;)o=a.pop(),s=a.pop().value,f=a.pop(),e.pop(),n=_1(s,f,o),a.push(n);r=zt(),r.prec=i,a.push(r),e.push(Ie),n=Gf(),a.push(n)}for(u=a.length-1,n=a[u],e.pop();u>1;)e.pop(),n=_1(a[u-1].value,a[u-2],n),u-=2;return n}function Hi(){var t,e,n;return t=zD(),je("?")&&(zt(),e=Hi(),At(":"),n=Hi(),t=SD(t,e,n)),t}function Oh(){const t=Hi();if(je(","))throw new Error(_s);return t}function PD(t){te=t,j=0,vt=te.length,Ie=null,S1();const e=Oh();if(Ie.type!==Es)throw new Error("Unexpect token after expression.");return e}var UD={NaN:"NaN",E:"Math.E",LN2:"Math.LN2",LN10:"Math.LN10",LOG2E:"Math.LOG2E",LOG10E:"Math.LOG10E",PI:"Math.PI",SQRT1_2:"Math.SQRT1_2",SQRT2:"Math.SQRT2",MIN_VALUE:"Number.MIN_VALUE",MAX_VALUE:"Number.MAX_VALUE"};function jD(t){function e(o,s,f,u){let l=t(s[0]);return f&&(l=f+"("+l+")",f.lastIndexOf("new ",0)===0&&(l="("+l+")")),l+"."+o+(u<0?"":u===0?"()":"("+s.slice(1).map(t).join(",")+")")}function n(o,s,f){return u=>e(o,u,s,f)}const r="new Date",i="String",a="RegExp";return{isNaN:"Number.isNaN",isFinite:"Number.isFinite",abs:"Math.abs",acos:"Math.acos",asin:"Math.asin",atan:"Math.atan",atan2:"Math.atan2",ceil:"Math.ceil",cos:"Math.cos",exp:"Math.exp",floor:"Math.floor",log:"Math.log",max:"Math.max",min:"Math.min",pow:"Math.pow",random:"Math.random",round:"Math.round",sin:"Math.sin",sqrt:"Math.sqrt",tan:"Math.tan",clamp:function(o){o.length<3&&$e("Missing arguments to clamp function."),o.length>3&&$e("Too many arguments to clamp function.");const s=o.map(t);return"Math.max("+s[1]+", Math.min("+s[2]+","+s[0]+"))"},now:"Date.now",utc:"Date.UTC",datetime:r,date:n("getDate",r,0),day:n("getDay",r,0),year:n("getFullYear",r,0),month:n("getMonth",r,0),hours:n("getHours",r,0),minutes:n("getMinutes",r,0),seconds:n("getSeconds",r,0),milliseconds:n("getMilliseconds",r,0),time:n("getTime",r,0),timezoneoffset:n("getTimezoneOffset",r,0),utcdate:n("getUTCDate",r,0),utcday:n("getUTCDay",r,0),utcyear:n("getUTCFullYear",r,0),utcmonth:n("getUTCMonth",r,0),utchours:n("getUTCHours",r,0),utcminutes:n("getUTCMinutes",r,0),utcseconds:n("getUTCSeconds",r,0),utcmilliseconds:n("getUTCMilliseconds",r,0),length:n("length",null,-1),parseFloat:"parseFloat",parseInt:"parseInt",upper:n("toUpperCase",i,0),lower:n("toLowerCase",i,0),substring:n("substring",i),split:n("split",i),trim:n("trim",i,0),regexp:a,test:n("test",a),if:function(o){o.length<3&&$e("Missing arguments to if function."),o.length>3&&$e("Too many arguments to if function.");const s=o.map(t);return"("+s[0]+"?"+s[1]+":"+s[2]+")"}}}function GD(t){const e=t&&t.length-1;return e&&(t[0]==='"'&&t[e]==='"'||t[0]==="'"&&t[e]==="'")?t.slice(1,-1):t}function HD(t){t=t||{};const e=t.allowed?yf(t.allowed):{},n=t.forbidden?yf(t.forbidden):{},r=t.constants||UD,i=(t.functions||jD)(c),a=t.globalvar,o=t.fieldvar,s=Bt(a)?a:g=>`${a}["${g}"]`;let f={},u={},l=0;function c(g){if(Ke(g))return g;const b=h[g.type];return b==null&&$e("Unsupported type: "+g.type),b(g)}const h={Literal:g=>g.raw,Identifier:g=>{const b=g.name;return l>0?b:Fi(n,b)?$e("Illegal identifier: "+b):Fi(r,b)?r[b]:Fi(e,b)?b:(f[b]=1,s(b))},MemberExpression:g=>{const b=!g.computed,y=c(g.object);b&&(l+=1);const w=c(g.property);return y===o&&(u[GD(w)]=1),b&&(l-=1),y+(b?"."+w:"["+w+"]")},CallExpression:g=>{g.callee.type!=="Identifier"&&$e("Illegal callee type: "+g.callee.type);const b=g.callee.name,y=g.arguments,w=Fi(i,b)&&i[b];return w||$e("Unrecognized function: "+b),Bt(w)?w(y):w+"("+y.map(c).join(",")+")"},ArrayExpression:g=>"["+g.elements.map(c).join(",")+"]",BinaryExpression:g=>"("+c(g.left)+" "+g.operator+" "+c(g.right)+")",UnaryExpression:g=>"("+g.operator+c(g.argument)+")",ConditionalExpression:g=>"("+c(g.test)+"?"+c(g.consequent)+":"+c(g.alternate)+")",LogicalExpression:g=>"("+c(g.left)+g.operator+c(g.right)+")",ObjectExpression:g=>"{"+g.properties.map(c).join(",")+"}",Property:g=>{l+=1;const b=c(g.key);return l-=1,b+":"+c(g.value)}};function d(g){const b={code:c(g),globals:Object.keys(f),fields:Object.keys(u)};return f={},u={},b}return d.functions=i,d.constants=r,d}function zh(t,e={}){const n=HD({forbidden:[],allowed:["datum"],globalvar:"globalObject",fieldvar:"datum"});try{const r=PD(t),i=n(r),a=Function("datum","globalObject",`"use strict"; return (${i.code});`),o=s=>a(s,e);return o.fields=i.fields,o}catch(r){throw new Error(`Invalid expression: ${t}, ${r.message}`)}}function Yn(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t);break}return this}function Zr(t,e){switch(arguments.length){case 0:break;case 1:{typeof t=="function"?this.interpolator(t):this.range(t);break}default:{this.domain(t),typeof e=="function"?this.interpolator(e):this.range(e);break}}return this}const Ph=Symbol("implicit");function Uh(){var t=new ki,e=[],n=[],r=Ph;function i(a){let o=t.get(a);if(o===void 0){if(r!==Ph)return r;t.set(a,o=e.push(a)-1)}return n[o%n.length]}return i.domain=function(a){if(!arguments.length)return e.slice();e=[],t=new ki;for(const o of a)t.has(o)||t.set(o,e.push(o)-1);return i},i.range=function(a){return arguments.length?(n=Array.from(a),i):n.slice()},i.unknown=function(a){return arguments.length?(r=a,i):r},i.copy=function(){return Uh(e,n).unknown(r)},Yn.apply(i,arguments),i}function ja(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function Ts(t,e){var n=Object.create(t.prototype);for(var r in e)n[r]=e[r];return n}function Yr(){}var Qi=.7,Ga=1/Qi,Ha="\\s*([+-]?\\d+)\\s*",Ns="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Wn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",QD=/^#([0-9a-f]{3,8})$/,VD=new RegExp(`^rgb\\(${Ha},${Ha},${Ha}\\)$`),qD=new RegExp(`^rgb\\(${Wn},${Wn},${Wn}\\)$`),ZD=new RegExp(`^rgba\\(${Ha},${Ha},${Ha},${Ns}\\)$`),YD=new RegExp(`^rgba\\(${Wn},${Wn},${Wn},${Ns}\\)$`),WD=new RegExp(`^hsl\\(${Ns},${Wn},${Wn}\\)$`),XD=new RegExp(`^hsla\\(${Ns},${Wn},${Wn},${Ns}\\)$`),N1={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};ja(Yr,Wr,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:F1,formatHex:F1,formatHex8:$D,formatHsl:KD,formatRgb:k1,toString:k1});function F1(){return this.rgb().formatHex()}function $D(){return this.rgb().formatHex8()}function KD(){return z1(this).formatHsl()}function k1(){return this.rgb().formatRgb()}function Wr(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=QD.exec(t))?(n=e[1].length,e=parseInt(e[1],16),n===6?B1(e):n===3?new ht(e>>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):n===8?Hf(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):n===4?Hf(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=VD.exec(t))?new ht(e[1],e[2],e[3],1):(e=qD.exec(t))?new ht(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=ZD.exec(t))?Hf(e[1],e[2],e[3],e[4]):(e=YD.exec(t))?Hf(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=WD.exec(t))?O1(e[1],e[2]/100,e[3]/100,1):(e=XD.exec(t))?O1(e[1],e[2]/100,e[3]/100,e[4]):N1.hasOwnProperty(t)?B1(N1[t]):t==="transparent"?new ht(NaN,NaN,NaN,0):null}function B1(t){return new ht(t>>16&255,t>>8&255,t&255,1)}function Hf(t,e,n,r){return r<=0&&(t=e=n=NaN),new ht(t,e,n,r)}function jh(t){return t instanceof Yr||(t=Wr(t)),t?(t=t.rgb(),new ht(t.r,t.g,t.b,t.opacity)):new ht}function Qf(t,e,n,r){return arguments.length===1?jh(t):new ht(t,e,n,r??1)}function ht(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}ja(ht,Qf,Ts(Yr,{brighter(t){return t=t==null?Ga:Math.pow(Ga,t),new ht(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?Qi:Math.pow(Qi,t),new ht(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new ht(Vi(this.r),Vi(this.g),Vi(this.b),Vf(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:L1,formatHex:L1,formatHex8:JD,formatRgb:R1,toString:R1}));function L1(){return`#${qi(this.r)}${qi(this.g)}${qi(this.b)}`}function JD(){return`#${qi(this.r)}${qi(this.g)}${qi(this.b)}${qi((isNaN(this.opacity)?1:this.opacity)*255)}`}function R1(){const t=Vf(this.opacity);return`${t===1?"rgb(":"rgba("}${Vi(this.r)}, ${Vi(this.g)}, ${Vi(this.b)}${t===1?")":`, ${t})`}`}function Vf(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function Vi(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function qi(t){return t=Vi(t),(t<16?"0":"")+t.toString(16)}function O1(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new Tn(t,e,n,r)}function z1(t){if(t instanceof Tn)return new Tn(t.h,t.s,t.l,t.opacity);if(t instanceof Yr||(t=Wr(t)),!t)return new Tn;if(t instanceof Tn)return t;t=t.rgb();var e=t.r/255,n=t.g/255,r=t.b/255,i=Math.min(e,n,r),a=Math.max(e,n,r),o=NaN,s=a-i,f=(a+i)/2;return s?(e===a?o=(n-r)/s+(n<r)*6:n===a?o=(r-e)/s+2:o=(e-n)/s+4,s/=f<.5?a+i:2-a-i,o*=60):s=f>0&&f<1?0:o,new Tn(o,s,f,t.opacity)}function Gh(t,e,n,r){return arguments.length===1?z1(t):new Tn(t,e,n,r??1)}function Tn(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}ja(Tn,Gh,Ts(Yr,{brighter(t){return t=t==null?Ga:Math.pow(Ga,t),new Tn(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?Qi:Math.pow(Qi,t),new Tn(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*e,i=2*n-r;return new ht(Hh(t>=240?t-240:t+120,i,r),Hh(t,i,r),Hh(t<120?t+240:t-120,i,r),this.opacity)},clamp(){return new Tn(P1(this.h),qf(this.s),qf(this.l),Vf(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=Vf(this.opacity);return`${t===1?"hsl(":"hsla("}${P1(this.h)}, ${qf(this.s)*100}%, ${qf(this.l)*100}%${t===1?")":`, ${t})`}`}}));function P1(t){return t=(t||0)%360,t<0?t+360:t}function qf(t){return Math.max(0,Math.min(1,t||0))}function Hh(t,e,n){return(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)*255}const U1=Math.PI/180,j1=180/Math.PI,Zf=18,G1=.96422,H1=1,Q1=.82521,V1=4/29,Qa=6/29,q1=3*Qa*Qa,eI=Qa*Qa*Qa;function Z1(t){if(t instanceof Xn)return new Xn(t.l,t.a,t.b,t.opacity);if(t instanceof Ar)return Y1(t);t instanceof ht||(t=jh(t));var e=Yh(t.r),n=Yh(t.g),r=Yh(t.b),i=Vh((.2225045*e+.7168786*n+.0606169*r)/H1),a,o;return e===n&&n===r?a=o=i:(a=Vh((.4360747*e+.3850649*n+.1430804*r)/G1),o=Vh((.0139322*e+.0971045*n+.7141733*r)/Q1)),new Xn(116*i-16,500*(a-i),200*(i-o),t.opacity)}function Qh(t,e,n,r){return arguments.length===1?Z1(t):new Xn(t,e,n,r??1)}function Xn(t,e,n,r){this.l=+t,this.a=+e,this.b=+n,this.opacity=+r}ja(Xn,Qh,Ts(Yr,{brighter(t){return new Xn(this.l+Zf*(t??1),this.a,this.b,this.opacity)},darker(t){return new Xn(this.l-Zf*(t??1),this.a,this.b,this.opacity)},rgb(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,n=isNaN(this.b)?t:t-this.b/200;return e=G1*qh(e),t=H1*qh(t),n=Q1*qh(n),new ht(Zh(3.1338561*e-1.6168667*t-.4906146*n),Zh(-.9787684*e+1.9161415*t+.033454*n),Zh(.0719453*e-.2289914*t+1.4052427*n),this.opacity)}}));function Vh(t){return t>eI?Math.pow(t,1/3):t/q1+V1}function qh(t){return t>Qa?t*t*t:q1*(t-V1)}function Zh(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function Yh(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function tI(t){if(t instanceof Ar)return new Ar(t.h,t.c,t.l,t.opacity);if(t instanceof Xn||(t=Z1(t)),t.a===0&&t.b===0)return new Ar(NaN,0<t.l&&t.l<100?0:NaN,t.l,t.opacity);var e=Math.atan2(t.b,t.a)*j1;return new Ar(e<0?e+360:e,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function Wh(t,e,n,r){return arguments.length===1?tI(t):new Ar(t,e,n,r??1)}function Ar(t,e,n,r){this.h=+t,this.c=+e,this.l=+n,this.opacity=+r}function Y1(t){if(isNaN(t.h))return new Xn(t.l,0,0,t.opacity);var e=t.h*U1;return new Xn(t.l,Math.cos(e)*t.c,Math.sin(e)*t.c,t.opacity)}ja(Ar,Wh,Ts(Yr,{brighter(t){return new Ar(this.h,this.c,this.l+Zf*(t??1),this.opacity)},darker(t){return new Ar(this.h,this.c,this.l-Zf*(t??1),this.opacity)},rgb(){return Y1(this).rgb()}}));var W1=-.14861,Xh=1.78277,$h=-.29227,Yf=-.90649,Fs=1.97294,X1=Fs*Yf,$1=Fs*Xh,K1=Xh*$h-Yf*W1;function nI(t){if(t instanceof Zi)return new Zi(t.h,t.s,t.l,t.opacity);t instanceof ht||(t=jh(t));var e=t.r/255,n=t.g/255,r=t.b/255,i=(K1*r+X1*e-$1*n)/(K1+X1-$1),a=r-i,o=(Fs*(n-i)-$h*a)/Yf,s=Math.sqrt(o*o+a*a)/(Fs*i*(1-i)),f=s?Math.atan2(o,a)*j1-120:NaN;return new Zi(f<0?f+360:f,s,i,t.opacity)}function Kh(t,e,n,r){return arguments.length===1?nI(t):new Zi(t,e,n,r??1)}function Zi(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}ja(Zi,Kh,Ts(Yr,{brighter(t){return t=t==null?Ga:Math.pow(Ga,t),new Zi(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?Qi:Math.pow(Qi,t),new Zi(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=isNaN(this.h)?0:(this.h+120)*U1,e=+this.l,n=isNaN(this.s)?0:this.s*e*(1-e),r=Math.cos(t),i=Math.sin(t);return new ht(255*(e+n*(W1*r+Xh*i)),255*(e+n*($h*r+Yf*i)),255*(e+n*(Fs*r)),this.opacity)}}));function J1(t,e,n,r,i){var a=t*t,o=a*t;return((1-3*t+3*a-o)*e+(4-6*a+3*o)*n+(1+3*t+3*a-3*o)*r+o*i)/6}function eb(t){var e=t.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,e-1):Math.floor(n*e),i=t[r],a=t[r+1],o=r>0?t[r-1]:2*i-a,s=r<e-1?t[r+2]:2*a-i;return J1((n-r/e)*e,o,i,a,s)}}function tb(t){var e=t.length;return function(n){var r=Math.floor(((n%=1)<0?++n:n)*e),i=t[(r+e-1)%e],a=t[r%e],o=t[(r+1)%e],s=t[(r+2)%e];return J1((n-r/e)*e,i,a,o,s)}}const Wf=t=>()=>t;function nb(t,e){return function(n){return t+n*e}}function rI(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(r){return Math.pow(t+r*e,n)}}function Xf(t,e){var n=e-t;return n?nb(t,n>180||n<-180?n-360*Math.round(n/360):n):Wf(isNaN(t)?e:t)}function iI(t){return(t=+t)==1?dt:function(e,n){return n-e?rI(e,n,t):Wf(isNaN(e)?n:e)}}function dt(t,e){var n=e-t;return n?nb(t,n):Wf(isNaN(t)?e:t)}const Jh=function t(e){var n=iI(e);function r(i,a){var o=n((i=Qf(i)).r,(a=Qf(a)).r),s=n(i.g,a.g),f=n(i.b,a.b),u=dt(i.opacity,a.opacity);return function(l){return i.r=o(l),i.g=s(l),i.b=f(l),i.opacity=u(l),i+""}}return r.gamma=t,r}(1);function rb(t){return function(e){var n=e.length,r=new Array(n),i=new Array(n),a=new Array(n),o,s;for(o=0;o<n;++o)s=Qf(e[o]),r[o]=s.r||0,i[o]=s.g||0,a[o]=s.b||0;return r=t(r),i=t(i),a=t(a),s.opacity=1,function(f){return s.r=r(f),s.g=i(f),s.b=a(f),s+""}}}var aI=rb(eb),oI=rb(tb);function ed(t,e){e||(e=[]);var n=t?Math.min(e.length,t.length):0,r=e.slice(),i;return function(a){for(i=0;i<n;++i)r[i]=t[i]*(1-a)+e[i]*a;return r}}function ib(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function sI(t,e){return(ib(e)?ed:ab)(t,e)}function ab(t,e){var n=e?e.length:0,r=t?Math.min(n,t.length):0,i=new Array(r),a=new Array(n),o;for(o=0;o<r;++o)i[o]=Xr(t[o],e[o]);for(;o<n;++o)a[o]=e[o];return function(s){for(o=0;o<r;++o)a[o]=i[o](s);return a}}function ob(t,e){var n=new Date;return t=+t,e=+e,function(r){return n.setTime(t*(1-r)+e*r),n}}function Nn(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}function sb(t,e){var n={},r={},i;(t===null||typeof t!="object")&&(t={}),(e===null||typeof e!="object")&&(e={});for(i in e)i in t?n[i]=Xr(t[i],e[i]):r[i]=e[i];return function(a){for(i in n)r[i]=n[i](a);return r}}var td=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,nd=new RegExp(td.source,"g");function uI(t){return function(){return t}}function fI(t){return function(e){return t(e)+""}}function ub(t,e){var n=td.lastIndex=nd.lastIndex=0,r,i,a,o=-1,s=[],f=[];for(t=t+"",e=e+"";(r=td.exec(t))&&(i=nd.exec(e));)(a=i.index)>n&&(a=e.slice(n,a),s[o]?s[o]+=a:s[++o]=a),(r=r[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,f.push({i:o,x:Nn(r,i)})),n=nd.lastIndex;return n<e.length&&(a=e.slice(n),s[o]?s[o]+=a:s[++o]=a),s.length<2?f[0]?fI(f[0].x):uI(e):(e=f.length,function(u){for(var l=0,c;l<e;++l)s[(c=f[l]).i]=c.x(u);return s.join("")})}function Xr(t,e){var n=typeof e,r;return e==null||n==="boolean"?Wf(e):(n==="number"?Nn:n==="string"?(r=Wr(e))?(e=r,Jh):ub:e instanceof Wr?Jh:e instanceof Date?ob:ib(e)?ed:Array.isArray(e)?ab:typeof e.valueOf!="function"&&typeof e.toString!="function"||isNaN(e)?sb:Nn)(t,e)}function lI(t){var e=t.length;return function(n){return t[Math.max(0,Math.min(e-1,Math.floor(n*e)))]}}function cI(t,e){var n=Xf(+t,+e);return function(r){var i=n(r);return i-360*Math.floor(i/360)}}function ks(t,e){return t=+t,e=+e,function(n){return Math.round(t*(1-n)+e*n)}}var fb=180/Math.PI,rd={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function lb(t,e,n,r,i,a){var o,s,f;return(o=Math.sqrt(t*t+e*e))&&(t/=o,e/=o),(f=t*n+e*r)&&(n-=t*f,r-=e*f),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,f/=s),t*r<e*n&&(t=-t,e=-e,f=-f,o=-o),{translateX:i,translateY:a,rotate:Math.atan2(e,t)*fb,skewX:Math.atan(f)*fb,scaleX:o,scaleY:s}}var $f;function hI(t){const e=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?rd:lb(e.a,e.b,e.c,e.d,e.e,e.f)}function dI(t){return t==null||($f||($f=document.createElementNS("http://www.w3.org/2000/svg","g")),$f.setAttribute("transform",t),!(t=$f.transform.baseVal.consolidate()))?rd:(t=t.matrix,lb(t.a,t.b,t.c,t.d,t.e,t.f))}function cb(t,e,n,r){function i(u){return u.length?u.pop()+" ":""}function a(u,l,c,h,d,g){if(u!==c||l!==h){var b=d.push("translate(",null,e,null,n);g.push({i:b-4,x:Nn(u,c)},{i:b-2,x:Nn(l,h)})}else(c||h)&&d.push("translate("+c+e+h+n)}function o(u,l,c,h){u!==l?(u-l>180?l+=360:l-u>180&&(u+=360),h.push({i:c.push(i(c)+"rotate(",null,r)-2,x:Nn(u,l)})):l&&c.push(i(c)+"rotate("+l+r)}function s(u,l,c,h){u!==l?h.push({i:c.push(i(c)+"skewX(",null,r)-2,x:Nn(u,l)}):l&&c.push(i(c)+"skewX("+l+r)}function f(u,l,c,h,d,g){if(u!==c||l!==h){var b=d.push(i(d)+"scale(",null,",",null,")");g.push({i:b-4,x:Nn(u,c)},{i:b-2,x:Nn(l,h)})}else(c!==1||h!==1)&&d.push(i(d)+"scale("+c+","+h+")")}return function(u,l){var c=[],h=[];return u=t(u),l=t(l),a(u.translateX,u.translateY,l.translateX,l.translateY,c,h),o(u.rotate,l.rotate,c,h),s(u.skewX,l.skewX,c,h),f(u.scaleX,u.scaleY,l.scaleX,l.scaleY,c,h),u=l=null,function(d){for(var g=-1,b=h.length,y;++g<b;)c[(y=h[g]).i]=y.x(d);return c.join("")}}}var gI=cb(hI,"px, ","px)","deg)"),pI=cb(dI,", ",")",")"),mI=1e-12;function hb(t){return((t=Math.exp(t))+1/t)/2}function bI(t){return((t=Math.exp(t))-1/t)/2}function yI(t){return((t=Math.exp(2*t))-1)/(t+1)}const wI=function t(e,n,r){function i(a,o){var s=a[0],f=a[1],u=a[2],l=o[0],c=o[1],h=o[2],d=l-s,g=c-f,b=d*d+g*g,y,w;if(b<mI)w=Math.log(h/u)/e,y=function(M){return[s+M*d,f+M*g,u*Math.exp(e*M*w)]};else{var E=Math.sqrt(b),_=(h*h-u*u+r*b)/(2*u*n*E),D=(h*h-u*u-r*b)/(2*h*n*E),T=Math.log(Math.sqrt(_*_+1)-_),N=Math.log(Math.sqrt(D*D+1)-D);w=(N-T)/e,y=function(M){var R=M*w,C=hb(T),B=u/(n*E)*(C*yI(e*R+T)-bI(T));return[s+B*d,f+B*g,u*C/hb(e*R+T)]}}return y.duration=w*1e3*e/Math.SQRT2,y}return i.rho=function(a){var o=Math.max(.001,+a),s=o*o,f=s*s;return t(o,s,f)},i}(Math.SQRT2,2,4);function db(t){return function(e,n){var r=t((e=Gh(e)).h,(n=Gh(n)).h),i=dt(e.s,n.s),a=dt(e.l,n.l),o=dt(e.opacity,n.opacity);return function(s){return e.h=r(s),e.s=i(s),e.l=a(s),e.opacity=o(s),e+""}}}const xI=db(Xf);var vI=db(dt);function AI(t,e){var n=dt((t=Qh(t)).l,(e=Qh(e)).l),r=dt(t.a,e.a),i=dt(t.b,e.b),a=dt(t.opacity,e.opacity);return function(o){return t.l=n(o),t.a=r(o),t.b=i(o),t.opacity=a(o),t+""}}function gb(t){return function(e,n){var r=t((e=Wh(e)).h,(n=Wh(n)).h),i=dt(e.c,n.c),a=dt(e.l,n.l),o=dt(e.opacity,n.opacity);return function(s){return e.h=r(s),e.c=i(s),e.l=a(s),e.opacity=o(s),e+""}}}const EI=gb(Xf);var SI=gb(dt);function pb(t){return function e(n){n=+n;function r(i,a){var o=t((i=Kh(i)).h,(a=Kh(a)).h),s=dt(i.s,a.s),f=dt(i.l,a.l),u=dt(i.opacity,a.opacity);return function(l){return i.h=o(l),i.s=s(l),i.l=f(Math.pow(l,n)),i.opacity=u(l),i+""}}return r.gamma=e,r}(1)}const _I=pb(Xf);var CI=pb(dt);function id(t,e){e===void 0&&(e=t,t=Xr);for(var n=0,r=e.length-1,i=e[0],a=new Array(r<0?0:r);n<r;)a[n]=t(i,i=e[++n]);return function(o){var s=Math.max(0,Math.min(r-1,Math.floor(o*=r)));return a[s](o-s)}}function DI(t,e){for(var n=new Array(e),r=0;r<e;++r)n[r]=t(r/(e-1));return n}const II=Object.freeze(Object.defineProperty({__proto__:null,interpolate:Xr,interpolateArray:sI,interpolateBasis:eb,interpolateBasisClosed:tb,interpolateCubehelix:_I,interpolateCubehelixLong:CI,interpolateDate:ob,interpolateDiscrete:lI,interpolateHcl:EI,interpolateHclLong:SI,interpolateHsl:xI,interpolateHslLong:vI,interpolateHue:cI,interpolateLab:AI,interpolateNumber:Nn,interpolateNumberArray:ed,interpolateObject:sb,interpolateRgb:Jh,interpolateRgbBasis:aI,interpolateRgbBasisClosed:oI,interpolateRound:ks,interpolateString:ub,interpolateTransformCss:gI,interpolateTransformSvg:pI,interpolateZoom:wI,piecewise:id,quantize:DI},Symbol.toStringTag,{value:"Module"}));function MI(t){return function(){return t}}function ad(t){return+t}var mb=[0,1];function Pt(t){return t}function od(t,e){return(e-=t=+t)?function(n){return(n-t)/e}:MI(isNaN(e)?NaN:.5)}function TI(t,e){var n;return t>e&&(n=t,t=e,e=n),function(r){return Math.max(t,Math.min(e,r))}}function NI(t,e,n){var r=t[0],i=t[1],a=e[0],o=e[1];return i<r?(r=od(i,r),a=n(o,a)):(r=od(r,i),a=n(a,o)),function(s){return a(r(s))}}function FI(t,e,n){var r=Math.min(t.length,e.length)-1,i=new Array(r),a=new Array(r),o=-1;for(t[r]<t[0]&&(t=t.slice().reverse(),e=e.slice().reverse());++o<r;)i[o]=od(t[o],t[o+1]),a[o]=n(e[o],e[o+1]);return function(s){var f=Fa(t,s,1,r)-1;return a[f](i[f](s))}}function Bs(t,e){return e.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown())}function Kf(){var t=mb,e=mb,n=Xr,r,i,a,o=Pt,s,f,u;function l(){var h=Math.min(t.length,e.length);return o!==Pt&&(o=TI(t[0],t[h-1])),s=h>2?FI:NI,f=u=null,c}function c(h){return h==null||isNaN(h=+h)?a:(f||(f=s(t.map(r),e,n)))(r(o(h)))}return c.invert=function(h){return o(i((u||(u=s(e,t.map(r),Nn)))(h)))},c.domain=function(h){return arguments.length?(t=Array.from(h,ad),l()):t.slice()},c.range=function(h){return arguments.length?(e=Array.from(h),l()):e.slice()},c.rangeRound=function(h){return e=Array.from(h),n=ks,l()},c.clamp=function(h){return arguments.length?(o=h?!0:Pt,l()):o!==Pt},c.interpolate=function(h){return arguments.length?(n=h,l()):n},c.unknown=function(h){return arguments.length?(a=h,c):a},function(h,d){return r=h,i=d,l()}}function bb(){return Kf()(Pt,Pt)}function yb(t,e,n,r){var i=Bi(t,e,n),a;switch(r=jr(r??",f"),r.type){case"s":{var o=Math.max(Math.abs(t),Math.abs(e));return r.precision==null&&!isNaN(a=Am(i,o))&&(r.precision=a),sh(r,o)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(a=Em(i,Math.max(Math.abs(t),Math.abs(e))))&&(r.precision=a-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(a=vm(i))&&(r.precision=a-(r.type==="%")*2);break}}return pt(r)}function Yi(t){var e=t.domain;return t.ticks=function(n){var r=e();return vf(r[0],r[r.length-1],n??10)},t.tickFormat=function(n,r){var i=e();return yb(i[0],i[i.length-1],n??10,r)},t.nice=function(n){n==null&&(n=10);var r=e(),i=0,a=r.length-1,o=r[i],s=r[a],f,u,l=10;for(s<o&&(u=o,o=s,s=u,u=i,i=a,a=u);l-- >0;){if(u=dm(o,s,n),u===f)return r[i]=o,r[a]=s,e(r);if(u>0)o=Math.floor(o/u)*u,s=Math.ceil(s/u)*u;else if(u<0)o=Math.ceil(o*u)/u,s=Math.floor(s*u)/u;else break;f=u}return t},t}function wb(){var t=bb();return t.copy=function(){return Bs(t,wb())},Yn.apply(t,arguments),Yi(t)}function xb(t){var e;function n(r){return r==null||isNaN(r=+r)?e:r}return n.invert=n,n.domain=n.range=function(r){return arguments.length?(t=Array.from(r,ad),n):t.slice()},n.unknown=function(r){return arguments.length?(e=r,n):e},n.copy=function(){return xb(t).unknown(e)},t=arguments.length?Array.from(t,ad):[0,1],Yi(n)}function vb(t,e){t=t.slice();var n=0,r=t.length-1,i=t[n],a=t[r],o;return a<i&&(o=n,n=r,r=o,o=i,i=a,a=o),t[n]=e.floor(i),t[r]=e.ceil(a),t}function Ab(t){return Math.log(t)}function Eb(t){return Math.exp(t)}function kI(t){return-Math.log(-t)}function BI(t){return-Math.exp(-t)}function LI(t){return isFinite(t)?+("1e"+t):t<0?0:t}function RI(t){return t===10?LI:t===Math.E?Math.exp:e=>Math.pow(t,e)}function OI(t){return t===Math.E?Math.log:t===10&&Math.log10||t===2&&Math.log2||(t=Math.log(t),e=>Math.log(e)/t)}function Sb(t){return(e,n)=>-t(-e,n)}function sd(t){const e=t(Ab,Eb),n=e.domain;let r=10,i,a;function o(){return i=OI(r),a=RI(r),n()[0]<0?(i=Sb(i),a=Sb(a),t(kI,BI)):t(Ab,Eb),e}return e.base=function(s){return arguments.length?(r=+s,o()):r},e.domain=function(s){return arguments.length?(n(s),o()):n()},e.ticks=s=>{const f=n();let u=f[0],l=f[f.length-1];const c=l<u;c&&([u,l]=[l,u]);let h=i(u),d=i(l),g,b;const y=s==null?10:+s;let w=[];if(!(r%1)&&d-h<y){if(h=Math.floor(h),d=Math.ceil(d),u>0){for(;h<=d;++h)for(g=1;g<r;++g)if(b=h<0?g/a(-h):g*a(h),!(b<u)){if(b>l)break;w.push(b)}}else for(;h<=d;++h)for(g=r-1;g>=1;--g)if(b=h>0?g/a(-h):g*a(h),!(b<u)){if(b>l)break;w.push(b)}w.length*2<y&&(w=vf(u,l,y))}else w=vf(h,d,Math.min(d-h,y)).map(a);return c?w.reverse():w},e.tickFormat=(s,f)=>{if(s==null&&(s=10),f==null&&(f=r===10?"s":","),typeof f!="function"&&(!(r%1)&&(f=jr(f)).precision==null&&(f.trim=!0),f=pt(f)),s===1/0)return f;const u=Math.max(1,r*s/e.ticks().length);return l=>{let c=l/a(Math.round(i(l)));return c*r<r-.5&&(c*=r),c<=u?f(l):""}},e.nice=()=>n(vb(n(),{floor:s=>a(Math.floor(i(s))),ceil:s=>a(Math.ceil(i(s)))})),e}function ud(){const t=sd(Kf()).domain([1,10]);return t.copy=()=>Bs(t,ud()).base(t.base()),Yn.apply(t,arguments),t}function _b(t){return function(e){return Math.sign(e)*Math.log1p(Math.abs(e/t))}}function Cb(t){return function(e){return Math.sign(e)*Math.expm1(Math.abs(e))*t}}function fd(t){var e=1,n=t(_b(e),Cb(e));return n.constant=function(r){return arguments.length?t(_b(e=+r),Cb(e)):e},Yi(n)}function Db(){var t=fd(Kf());return t.copy=function(){return Bs(t,Db()).constant(t.constant())},Yn.apply(t,arguments)}function Ib(t){return function(e){return e<0?-Math.pow(-e,t):Math.pow(e,t)}}function zI(t){return t<0?-Math.sqrt(-t):Math.sqrt(t)}function PI(t){return t<0?-t*t:t*t}function ld(t){var e=t(Pt,Pt),n=1;function r(){return n===1?t(Pt,Pt):n===.5?t(zI,PI):t(Ib(n),Ib(1/n))}return e.exponent=function(i){return arguments.length?(n=+i,r()):n},Yi(e)}function cd(){var t=ld(Kf());return t.copy=function(){return Bs(t,cd()).exponent(t.exponent())},Yn.apply(t,arguments),t}function UI(){return cd.apply(null,arguments).exponent(.5)}function Mb(){var t=[],e=[],n=[],r;function i(){var o=0,s=Math.max(1,e.length);for(n=new Array(s-1);++o<s;)n[o-1]=gm(t,o/s);return a}function a(o){return o==null||isNaN(o=+o)?r:e[Fa(n,o)]}return a.invertExtent=function(o){var s=e.indexOf(o);return s<0?[NaN,NaN]:[s>0?n[s-1]:t[0],s<n.length?n[s]:t[t.length-1]]},a.domain=function(o){if(!arguments.length)return t.slice();t=[];for(let s of o)s!=null&&!isNaN(s=+s)&&t.push(s);return t.sort(ts),i()},a.range=function(o){return arguments.length?(e=Array.from(o),i()):e.slice()},a.unknown=function(o){return arguments.length?(r=o,a):r},a.quantiles=function(){return n.slice()},a.copy=function(){return Mb().domain(t).range(e).unknown(r)},Yn.apply(a,arguments)}function Tb(){var t=0,e=1,n=1,r=[.5],i=[0,1],a;function o(f){return f!=null&&f<=f?i[Fa(r,f,0,n)]:a}function s(){var f=-1;for(r=new Array(n);++f<n;)r[f]=((f+1)*e-(f-n)*t)/(n+1);return o}return o.domain=function(f){return arguments.length?([t,e]=f,t=+t,e=+e,s()):[t,e]},o.range=function(f){return arguments.length?(n=(i=Array.from(f)).length-1,s()):i.slice()},o.invertExtent=function(f){var u=i.indexOf(f);return u<0?[NaN,NaN]:u<1?[t,r[0]]:u>=n?[r[n-1],e]:[r[u-1],r[u]]},o.unknown=function(f){return arguments.length&&(a=f),o},o.thresholds=function(){return r.slice()},o.copy=function(){return Tb().domain([t,e]).range(i).unknown(a)},Yn.apply(Yi(o),arguments)}function Nb(){var t=[.5],e=[0,1],n,r=1;function i(a){return a!=null&&a<=a?e[Fa(t,a,0,r)]:n}return i.domain=function(a){return arguments.length?(t=Array.from(a),r=Math.min(t.length,e.length-1),i):t.slice()},i.range=function(a){return arguments.length?(e=Array.from(a),r=Math.min(t.length,e.length-1),i):e.slice()},i.invertExtent=function(a){var o=e.indexOf(a);return[t[o-1],t[o]]},i.unknown=function(a){return arguments.length?(n=a,i):n},i.copy=function(){return Nb().domain(t).range(e).unknown(n)},Yn.apply(i,arguments)}function jI(t){return new Date(t)}function GI(t){return t instanceof Date?+t:+new Date(+t)}function hd(t,e,n,r,i,a,o,s,f,u){var l=bb(),c=l.invert,h=l.domain,d=u(".%L"),g=u(":%S"),b=u("%I:%M"),y=u("%I %p"),w=u("%a %d"),E=u("%b %d"),_=u("%B"),D=u("%Y");function T(N){return(f(N)<N?d:s(N)<N?g:o(N)<N?b:a(N)<N?y:r(N)<N?i(N)<N?w:E:n(N)<N?_:D)(N)}return l.invert=function(N){return new Date(c(N))},l.domain=function(N){return arguments.length?h(Array.from(N,GI)):h().map(jI)},l.ticks=function(N){var M=h();return t(M[0],M[M.length-1],N??10)},l.tickFormat=function(N,M){return M==null?T:u(M)},l.nice=function(N){var M=h();return(!N||typeof N.range!="function")&&(N=e(M[0],M[M.length-1],N??10)),N?h(vb(M,N)):l},l.copy=function(){return Bs(l,hd(t,e,n,r,i,a,o,s,f,u))},l}function HI(){return Yn.apply(hd(O_,z_,Hr,Df,rs,Ri,gh,dh,Gr,Ah).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function QI(){return Yn.apply(hd(L_,R_,Qr,Mf,is,zi,bh,mh,Gr,Eh).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function Jf(){var t=0,e=1,n,r,i,a,o=Pt,s=!1,f;function u(c){return c==null||isNaN(c=+c)?f:o(i===0?.5:(c=(a(c)-n)*i,s?Math.max(0,Math.min(1,c)):c))}u.domain=function(c){return arguments.length?([t,e]=c,n=a(t=+t),r=a(e=+e),i=n===r?0:1/(r-n),u):[t,e]},u.clamp=function(c){return arguments.length?(s=!!c,u):s},u.interpolator=function(c){return arguments.length?(o=c,u):o};function l(c){return function(h){var d,g;return arguments.length?([d,g]=h,o=c(d,g),u):[o(0),o(1)]}}return u.range=l(Xr),u.rangeRound=l(ks),u.unknown=function(c){return arguments.length?(f=c,u):f},function(c){return a=c,n=c(t),r=c(e),i=n===r?0:1/(r-n),u}}function $r(t,e){return e.domain(t.domain()).interpolator(t.interpolator()).clamp(t.clamp()).unknown(t.unknown())}function dd(){var t=Yi(Jf()(Pt));return t.copy=function(){return $r(t,dd())},Zr.apply(t,arguments)}function Fb(){var t=sd(Jf()).domain([1,10]);return t.copy=function(){return $r(t,Fb()).base(t.base())},Zr.apply(t,arguments)}function kb(){var t=fd(Jf());return t.copy=function(){return $r(t,kb()).constant(t.constant())},Zr.apply(t,arguments)}function gd(){var t=ld(Jf());return t.copy=function(){return $r(t,gd()).exponent(t.exponent())},Zr.apply(t,arguments)}function VI(){return gd.apply(null,arguments).exponent(.5)}function el(){var t=0,e=.5,n=1,r=1,i,a,o,s,f,u=Pt,l,c=!1,h;function d(b){return isNaN(b=+b)?h:(b=.5+((b=+l(b))-a)*(r*b<r*a?s:f),u(c?Math.max(0,Math.min(1,b)):b))}d.domain=function(b){return arguments.length?([t,e,n]=b,i=l(t=+t),a=l(e=+e),o=l(n=+n),s=i===a?0:.5/(a-i),f=a===o?0:.5/(o-a),r=a<i?-1:1,d):[t,e,n]},d.clamp=function(b){return arguments.length?(c=!!b,d):c},d.interpolator=function(b){return arguments.length?(u=b,d):u};function g(b){return function(y){var w,E,_;return arguments.length?([w,E,_]=y,u=id(b,[w,E,_]),d):[u(0),u(.5),u(1)]}}return d.range=g(Xr),d.rangeRound=g(ks),d.unknown=function(b){return arguments.length?(h=b,d):h},function(b){return l=b,i=b(t),a=b(e),o=b(n),s=i===a?0:.5/(a-i),f=a===o?0:.5/(o-a),r=a<i?-1:1,d}}function Bb(){var t=Yi(el()(Pt));return t.copy=function(){return $r(t,Bb())},Zr.apply(t,arguments)}function Lb(){var t=sd(el()).domain([.1,1,10]);return t.copy=function(){return $r(t,Lb()).base(t.base())},Zr.apply(t,arguments)}function Rb(){var t=fd(el());return t.copy=function(){return $r(t,Rb()).constant(t.constant())},Zr.apply(t,arguments)}function pd(){var t=ld(el());return t.copy=function(){return $r(t,pd()).exponent(t.exponent())},Zr.apply(t,arguments)}function qI(){return pd.apply(null,arguments).exponent(.5)}function md(t,e,n){const r=t-e+n*2;return t?r>0?r:1:0}const ZI="identity",Va="linear",Kr="log",Ls="pow",Rs="sqrt",tl="symlog",Ob="time",zb="utc",$n="sequential",qa="diverging",bd="quantile",Pb="quantize",Ub="threshold",yd="ordinal",wd="point",jb="band",xd="bin-ordinal",ot="continuous",Os="discrete",zs="discretizing",sn="interpolating",Gb="temporal";function YI(t){return function(e){let n=e[0],r=e[1],i;return r<n&&(i=n,n=r,r=i),[t.invert(n),t.invert(r)]}}function WI(t){return function(e){const n=t.range();let r=e[0],i=e[1],a=-1,o,s,f,u;for(i<r&&(s=r,r=i,i=s),f=0,u=n.length;f<u;++f)n[f]>=r&&n[f]<=i&&(a<0&&(a=f),o=f);if(!(a<0))return r=t.invertExtent(n[a]),i=t.invertExtent(n[o]),[r[0]===void 0?r[1]:r[0],i[1]===void 0?i[0]:i[1]]}}function vd(){const t=Uh().unknown(void 0),e=t.domain,n=t.range;let r=[0,1],i,a,o=!1,s=0,f=0,u=.5;delete t.unknown;function l(){const c=e().length,h=r[1]<r[0],d=r[1-h],g=md(c,s,f);let b=r[h-0];i=(d-b)/(g||1),o&&(i=Math.floor(i)),b+=(d-b-i*(c-s))*u,a=i*(1-s),o&&(b=Math.round(b),a=Math.round(a));const y=ns(c).map(w=>b+i*w);return n(h?y.reverse():y)}return t.domain=function(c){return arguments.length?(e(c),l()):e()},t.range=function(c){return arguments.length?(r=[+c[0],+c[1]],l()):r.slice()},t.rangeRound=function(c){return r=[+c[0],+c[1]],o=!0,l()},t.bandwidth=function(){return a},t.step=function(){return i},t.round=function(c){return arguments.length?(o=!!c,l()):o},t.padding=function(c){return arguments.length?(f=Math.max(0,Math.min(1,c)),s=f,l()):s},t.paddingInner=function(c){return arguments.length?(s=Math.max(0,Math.min(1,c)),l()):s},t.paddingOuter=function(c){return arguments.length?(f=Math.max(0,Math.min(1,c)),l()):f},t.align=function(c){return arguments.length?(u=Math.max(0,Math.min(1,c)),l()):u},t.invertRange=function(c){if(c[0]==null||c[1]==null)return;const h=r[1]<r[0],d=h?n().reverse():n(),g=d.length-1;let b=+c[0],y=+c[1],w,E,_;if(!(b!==b||y!==y)&&(y<b&&(_=b,b=y,y=_),!(y<d[0]||b>r[1-h])))return w=Math.max(0,th(d,b)-1),E=b===y?w:th(d,y)-1,b-d[w]>a+1e-10&&++w,h&&(_=w,w=g-E,E=g-_),w>E?void 0:e().slice(w,E+1)},t.invert=function(c){const h=t.invertRange([c,c]);return h&&h[0]},t.copy=function(){return vd().domain(e()).range(r).round(o).paddingInner(s).paddingOuter(f).align(u)},l()}function Hb(t){const e=t.copy;return t.padding=t.paddingOuter,delete t.paddingInner,t.copy=function(){return Hb(e())},t}function XI(){return Hb(vd().paddingInner(1))}var $I=Array.prototype.map;function KI(t){return $I.call(t,Jo)}const JI=Array.prototype.slice;function Qb(){let t=[],e=[];function n(r){return r==null||r!==r?void 0:e[(Fa(t,r)-1)%e.length]}return n.domain=function(r){return arguments.length?(t=KI(r),n):t.slice()},n.range=function(r){return arguments.length?(e=JI.call(r),n):e.slice()},n.tickFormat=function(r,i){return yb(t[0],In(t),r??10,i)},n.copy=function(){return Qb().domain(n.domain()).range(n.range())},n}const nl={};function eM(t,e,n){const r=function(){const a=e();return a.invertRange||(a.invertRange=a.invert?YI(a):a.invertExtent?WI(a):void 0),a.type=t,a};return r.metadata=yf(Xc(n)),r}function Ce(t,e,n){return arguments.length>1?(nl[t]=eM(t,e,n),this):tM(t)?nl[t]:void 0}Ce(ZI,xb),Ce(Va,wb,ot),Ce(Kr,ud,[ot,Kr]),Ce(Ls,cd,ot),Ce(Rs,UI,ot),Ce(tl,Db,ot),Ce(Ob,HI,[ot,Gb]),Ce(zb,QI,[ot,Gb]),Ce($n,dd,[ot,sn]),Ce("".concat($n,"-").concat(Va),dd,[ot,sn]),Ce("".concat($n,"-").concat(Kr),Fb,[ot,sn,Kr]),Ce("".concat($n,"-").concat(Ls),gd,[ot,sn]),Ce("".concat($n,"-").concat(Rs),VI,[ot,sn]),Ce("".concat($n,"-").concat(tl),kb,[ot,sn]),Ce("".concat(qa,"-").concat(Va),Bb,[ot,sn]),Ce("".concat(qa,"-").concat(Kr),Lb,[ot,sn,Kr]),Ce("".concat(qa,"-").concat(Ls),pd,[ot,sn]),Ce("".concat(qa,"-").concat(Rs),qI,[ot,sn]),Ce("".concat(qa,"-").concat(tl),Rb,[ot,sn]),Ce(bd,Mb,[zs,bd]),Ce(Pb,Tb,zs),Ce(Ub,Nb,zs),Ce(xd,Qb,[Os,zs]),Ce(yd,Uh,Os),Ce(jb,vd,Os),Ce(wd,XI,Os);function tM(t){return Fi(nl,t)}function Ps(t,e){const n=nl[t];return n&&n.metadata[e]}function Et(t){return Ps(t,ot)}function Jr(t){return Ps(t,Os)}function Za(t){return Ps(t,zs)}function Vb(t){return Ps(t,Kr)}function rl(t){return Ps(t,sn)}function nM(t,e){const n=e[0],r=In(e)-n;return function(i){return t(n+i*r)}}function il(t,e,n){return id(qb(e||"rgb",n),t)}function rM(t,e){const n=new Array(e),r=e+1;for(let i=0;i<e;)n[i]=t(++i/r);return n}function qb(t,e){const n=II[iM(t)];return e!=null&&n&&n.gamma?n.gamma(e):n}function iM(t){return"interpolate"+t.toLowerCase().split("-").map(e=>e[0].toUpperCase()+e.slice(1)).join("")}const aM={blues:"cfe1f2bed8eca8cee58fc1de74b2d75ba3cf4592c63181bd206fb2125ca40a4a90",greens:"d3eecdc0e6baabdda594d3917bc77d60ba6c46ab5e329a512089430e7735036429",greys:"e2e2e2d4d4d4c4c4c4b1b1b19d9d9d8888887575756262624d4d4d3535351e1e1e",oranges:"fdd8b3fdc998fdb87bfda55efc9244f87f2cf06b18e4580bd14904b93d029f3303",purples:"e2e1efd4d4e8c4c5e0b4b3d6a3a0cc928ec3827cb97566ae684ea25c3696501f8c",reds:"fdc9b4fcb49afc9e80fc8767fa7051f6573fec3f2fdc2a25c81b1db21218970b13",blueGreen:"d5efedc1e8e0a7ddd18bd2be70c6a958ba9144ad77319c5d2089460e7736036429",bluePurple:"ccddecbad0e4a8c2dd9ab0d4919cc98d85be8b6db28a55a6873c99822287730f71",greenBlue:"d3eecec5e8c3b1e1bb9bd8bb82cec269c2ca51b2cd3c9fc7288abd1675b10b60a1",orangeRed:"fddcaffdcf9bfdc18afdad77fb9562f67d53ee6545e24932d32d1ebf130da70403",purpleBlue:"dbdaebc8cee4b1c3de97b7d87bacd15b9fc93a90c01e7fb70b70ab056199045281",purpleBlueGreen:"dbd8eac8cee4b0c3de93b7d872acd1549fc83892bb1c88a3097f8702736b016353",purpleRed:"dcc9e2d3b3d7ce9eccd186c0da6bb2e14da0e23189d91e6fc61159ab07498f023a",redPurple:"fccfccfcbec0faa9b8f98faff571a5ec539ddb3695c41b8aa908808d0179700174",yellowGreen:"e4f4acd1eca0b9e2949ed68880c97c62bb6e47aa5e3297502083440e723b036034",yellowOrangeBrown:"feeaa1fedd84fecc63feb746fca031f68921eb7215db5e0bc54c05ab3d038f3204",yellowOrangeRed:"fee087fed16ffebd59fea849fd903efc7335f9522bee3423de1b20ca0b22af0225",blueOrange:"134b852f78b35da2cb9dcae1d2e5eff2f0ebfce0bafbbf74e8932fc5690d994a07",brownBlueGreen:"704108a0651ac79548e3c78af3e6c6eef1eac9e9e48ed1c74da79e187a72025147",purpleGreen:"5b1667834792a67fb6c9aed3e6d6e8eff0efd9efd5aedda971bb75368e490e5e29",purpleOrange:"4114696647968f83b7b9b4d6dadbebf3eeeafce0bafbbf74e8932fc5690d994a07",redBlue:"8c0d25bf363adf745ef4ae91fbdbc9f2efeed2e5ef9dcae15da2cb2f78b3134b85",redGrey:"8c0d25bf363adf745ef4ae91fcdccbfaf4f1e2e2e2c0c0c0969696646464343434",yellowGreenBlue:"eff9bddbf1b4bde5b594d5b969c5be45b4c22c9ec02182b82163aa23479c1c3185",redYellowBlue:"a50026d4322cf16e43fcac64fedd90faf8c1dcf1ecabd6e875abd04a74b4313695",redYellowGreen:"a50026d4322cf16e43fcac63fedd8df9f7aed7ee8ea4d86e64bc6122964f006837",pinkYellowGreen:"8e0152c0267edd72adf0b3d6faddedf5f3efe1f2cab6de8780bb474f9125276419",spectral:"9e0142d13c4bf0704afcac63fedd8dfbf8b0e0f3a1a9dda269bda94288b55e4fa2",viridis:"440154470e61481a6c482575472f7d443a834144873d4e8a39568c35608d31688e2d708e2a788e27818e23888e21918d1f988b1fa08822a8842ab07f35b77943bf7154c56866cc5d7ad1518fd744a5db36bcdf27d2e21be9e51afde725",magma:"0000040404130b0924150e3720114b2c11603b0f704a107957157e651a80721f817f24828c29819a2e80a8327db6377ac43c75d1426fde4968e95462f1605df76f5cfa7f5efc8f65fe9f6dfeaf78febf84fece91fddea0fcedaffcfdbf",inferno:"0000040403130c0826170c3b240c4f330a5f420a68500d6c5d126e6b176e781c6d86216b932667a12b62ae305cbb3755c73e4cd24644dd513ae65c30ed6925f3771af8850ffb9506fca50afcb519fac62df6d645f2e661f3f484fcffa4",plasma:"0d088723069033059742039d5002a25d01a66a00a87801a88405a7900da49c179ea72198b12a90ba3488c33d80cb4779d35171da5a69e16462e76e5bed7953f2834cf68f44fa9a3dfca636fdb32ffec029fcce25f9dc24f5ea27f0f921",cividis:"00205100235800265d002961012b65042e670831690d346b11366c16396d1c3c6e213f6e26426e2c456e31476e374a6e3c4d6e42506e47536d4c566d51586e555b6e5a5e6e5e616e62646f66676f6a6a706e6d717270717573727976737c79747f7c75827f758682768985778c8877908b78938e789691789a94789e9778a19b78a59e77a9a177aea575b2a874b6ab73bbaf71c0b26fc5b66dc9b96acebd68d3c065d8c462ddc85fe2cb5ce7cf58ebd355f0d652f3da4ff7de4cfae249fce647",rainbow:"6e40aa883eb1a43db3bf3cafd83fa4ee4395fe4b83ff576eff6659ff7847ff8c38f3a130e2b72fcfcc36bee044aff05b8ff4576ff65b52f6673af27828ea8d1ddfa319d0b81cbecb23abd82f96e03d82e14c6edb5a5dd0664dbf6e40aa",sinebow:"ff4040fc582af47218e78d0bd5a703bfbf00a7d5038de70b72f41858fc2a40ff402afc5818f4720be78d03d5a700bfbf03a7d50b8de71872f42a58fc4040ff582afc7218f48d0be7a703d5bf00bfd503a7e70b8df41872fc2a58ff4040",turbo:"23171b32204a3e2a71453493493eae4b49c54a53d7485ee44569ee4074f53c7ff8378af93295f72e9ff42ba9ef28b3e926bce125c5d925cdcf27d5c629dcbc2de3b232e9a738ee9d3ff39347f68950f9805afc7765fd6e70fe667cfd5e88fc5795fb51a1f84badf545b9f140c5ec3cd0e637dae034e4d931ecd12ef4c92bfac029ffb626ffad24ffa223ff9821ff8d1fff821dff771cfd6c1af76118f05616e84b14df4111d5380fcb2f0dc0260ab61f07ac1805a313029b0f00950c00910b00",browns:"eedbbdecca96e9b97ae4a865dc9856d18954c7784cc0673fb85536ad44339f3632",tealBlues:"bce4d89dd3d181c3cb65b3c245a2b9368fae347da0306a932c5985",teals:"bbdfdfa2d4d58ac9c975bcbb61b0af4da5a43799982b8b8c1e7f7f127273006667",warmGreys:"dcd4d0cec5c1c0b8b4b3aaa7a59c9998908c8b827f7e7673726866665c5a59504e",goldGreen:"f4d166d5ca60b6c35c98bb597cb25760a6564b9c533f8f4f33834a257740146c36",goldOrange:"f4d166f8be5cf8aa4cf5983bf3852aef701be2621fd65322c54923b142239e3a26",goldRed:"f4d166f6be59f9aa51fc964ef6834bee734ae56249db5247cf4244c43141b71d3e",lightGreyRed:"efe9e6e1dad7d5cbc8c8bdb9bbaea9cd967ddc7b43e15f19df4011dc000b",lightGreyTeal:"e4eaead6dcddc8ced2b7c2c7a6b4bc64b0bf22a6c32295c11f85be1876bc",lightMulti:"e0f1f2c4e9d0b0de9fd0e181f6e072f6c053f3993ef77440ef4a3c",lightOrange:"f2e7daf7d5baf9c499fab184fa9c73f68967ef7860e8645bde515bd43d5b",lightTealBlue:"e3e9e0c0dccf9aceca7abfc859afc0389fb9328dad2f7ca0276b95255988",darkBlue:"3232322d46681a5c930074af008cbf05a7ce25c0dd38daed50f3faffffff",darkGold:"3c3c3c584b37725e348c7631ae8b2bcfa424ecc31ef9de30fff184ffffff",darkGreen:"3a3a3a215748006f4d048942489e4276b340a6c63dd2d836ffeb2cffffaa",darkMulti:"3737371f5287197d8c29a86995ce3fffe800ffffff",darkRed:"3434347036339e3c38cc4037e75d1eec8620eeab29f0ce32ffeb2c"},oM={category10:"1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf",category20:"1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5",category20b:"393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6",category20c:"3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9",tableau10:"4c78a8f58518e4575672b7b254a24beeca3bb279a2ff9da69d755dbab0ac",tableau20:"4c78a89ecae9f58518ffbf7954a24b88d27ab79a20f2cf5b43989483bcb6e45756ff9d9879706ebab0acd67195fcbfd2b279a2d6a5c99e765fd8b5a5",accent:"7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666",dark2:"1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666",paired:"a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928",pastel1:"fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2",pastel2:"b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc",set1:"e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999",set2:"66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3",set3:"8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f"};function Zb(t){const e=t.length/6|0,n=new Array(e);for(let r=0;r<e;)n[r]="#"+t.slice(r*6,++r*6);return n}function Yb(t,e){for(const n in t)Ad(n,e(t[n]))}const Wb={};Yb(oM,Zb),Yb(aM,t=>il(Zb(t)));function Ad(t,e){return t=t&&t.toLowerCase(),arguments.length>1?(Wb[t]=e,this):Wb[t]}function sM(){let t=0;const e=new Map,n=r=>{let i=e.get(r);return i===void 0&&(i=t++,e.set(r,i)),i};return n.addAll=r=>{for(const i of r)n(i)},n.invert=r=>{for(const i of e.entries())if(i[1]==r)return i[0]},n.domain=()=>[...e.keys()],n}function al(){const t=e=>e;return t.invert=e=>e,t.copy=al,t.invertRange=()=>{},t.type="null",t}function uM(t,e){const n={};e||(e=t.encoding);for(const[r,i]of Object.entries(e)){if(!i)continue;const a=((un(i)&&i.resolutionChannel)??($i(r)&&r))||void 0,o=t.unitView.getScaleResolution(a);n[r]=fM(e[r],o==null?void 0:o.getScale(),t.unitView.getAccessor(r),r)}return n}function fM(t,e,n,r){let i;if(Fn(t)){const a=t.value;i=o=>a,i.constant=!0,i.constantValue=!0,i.accessor=void 0}else if(n)if(r=="text")i=a=>{},i.accessor=n,i.constant=n.constant;else{if(!e)if(!$i(r))e=al();else throw new Error(`Missing scale! "${r}": ${JSON.stringify(t)}`);if(i=a=>e(n(a)),Jr(e.type)){const a=sM();a.addAll(e.domain()),i.indexer=a}i.constant=n.constant,i.accessor=n,i.scale=e}else throw new Error(`Missing value or accessor (field, expr, datum) on channel "${r}": ${JSON.stringify(t)}`);return i.invert=e?a=>e.invert(a):a=>{throw new Error("No scale available, cannot invert: "+JSON.stringify(t))},i.channelDef=t,i.applyMetadata=a=>{for(const o in i)o in i&&(a[o]=i[o]);return a},i}function Fn(t){return t&&"value"in t}function Us(t){return t&&"field"in t}function js(t){return t&&"datum"in t}function un(t){return Us(t)||js(t)||Sd(t)||Xb(t)}function Ed(t,e){const n=t.mark.encoding[e];if(un(n))return n;throw new Error("Not a channel def with scale!")}function Xb(t){return t&&"chrom"in t}function Sd(t){return t&&"expr"in t}const Ya=["x","y"],lM=["x2","y2"],cM=[...Ya,...lM];function $b(t){return Ya.includes(t)}function Gs(t){return cM.includes(t)}const _d={x:"x2",y:"y2"},Kb=Object.fromEntries(Object.entries(_d).map(t=>[t[1],t[0]]));function Hs(t){return t in Kb}function hM(t){const e=_d[t];if(e)return e;throw new Error(`${t} has no secondary channel!`)}function Wi(t){return Kb[t]??t}function Xi(t){return["color","fill","stroke"].includes(Wi(t))}function ol(t){return["shape","squeeze"].includes(t)}function $i(t){return["x","y","x2","y2","color","fill","stroke","opacity","fillOpacity","strokeOpacity","strokeWidth","size","shape","angle","dx","dy","sample"].includes(t)}function Jb(t){switch(t){case"shape":return["circle","square","triangle-up","cross","diamond","triangle-down","triangle-right","triangle-left"]}}function ey(t){if(!ol(t))throw new Error("Not a discrete channel: "+t);const e=new Map(Jb(t).map((n,r)=>[n,r]));return n=>{const r=e.get(n);if(r!==void 0)return r;throw new Error(`Invalid value for "${t}" channel: ${n}`)}}function ke(t,e=t){if(/^[A-Za-z0-9_]+$/.test(t)){const n=new Function("datum",`return datum[${JSON.stringify(t)}]`);return de(n,[t],e)}else return cf(t)}class dM{constructor(){this.accessorCreators=[],this.register(e=>{if(Us(e))try{const n=ke(e.field);return n.constant=!1,n.fields=Ni(n),n}catch(n){throw new Error(`Invalid field definition: ${n.message}`)}}),this.register(e=>Sd(e)?gM(e.expr):void 0),this.register(e=>{if(js(e)){const r=QS(e.datum);return r.constant=!0,r.fields=[],r}})}register(e){this.accessorCreators.push(e)}createAccessor(e){for(const n of this.accessorCreators){const r=n(e);if(r)return r}}}function gM(t){const e=zh(t);return e.constant=e.fields.length==0,e}/* @license twgl.js 4.22.0 Copyright (c) 2015, Gregg Tavares All Rights Reserved.
123
+ }`;function GS(e,t){var n=e.getBoundingClientRect();return[t.clientX-n.left-e.clientLeft,t.clientY-n.top-e.clientTop]}function yf(e,t){return e.length==t.length&&e.every((n,r)=>e[r]===t[r])}function Wt(e){return Array.isArray(e)?e:typeof e<"u"?[e]:[]}function ns(e){return e[e.length-1]}class HS{constructor(t){this.container=t,this.element=document.createElement("div"),this.element.className="tooltip",this._visible=!0,this.container.appendChild(this.element),this._previousTooltipDatum=void 0,this.enabledStack=[!0],this._penaltyUntil=0,this._lastCoords=void 0,this._previousMove=0,this.clear()}set visible(t){t!=this._visible&&(this.element.style.display=t?null:"none",this._visible=t)}get visible(){return this._visible}get enabled(){return ns(this.enabledStack)??!0}pushEnabledState(t){this.enabledStack.push(t),t||(this.visible=!1)}popEnabledState(){this.enabledStack.pop()}handleMouseMove(t){this.mouseCoords=GS(this.container,t);const n=performance.now();!this.visible&&!this._isPenalty()&&n-this._previousMove>500&&(this._penaltyUntil=n+70),this._lastCoords&&VS(this.mouseCoords,this._lastCoords)>20&&(this._penaltyUntil=n+400),this._lastCoords=this.mouseCoords,this.visible&&this.updatePlacement(),this._previousMove=n}updatePlacement(){const[n,r]=this.mouseCoords;let i=n+20;i>this.container.clientWidth-this.element.offsetWidth&&(i=n-20-this.element.offsetWidth),this.element.style.left=i+"px",this.element.style.top=Math.min(r+20,this.container.clientHeight-this.element.offsetHeight)+"px"}setContent(t){if(!t||!this.enabled||this._isPenalty()){this.visible&&(Qm("",this.element),this.visible=!1),this._previousTooltipDatum=void 0;return}Qm(t,this.element),this.visible=!0,this.updatePlacement()}clear(){this._previousTooltipDatum=void 0,this.setContent(void 0)}updateWithDatum(t,n){t!==this._previousTooltipDatum&&(this._previousTooltipDatum=t,n||(n=r=>Promise.resolve(Fn` ${JSON.stringify(r)} `)),n(t).then(r=>this.setContent(r)).catch(r=>{if(r!=="debounced")throw r}))}_isPenalty(){return this._penaltyUntil&&this._penaltyUntil>performance.now()}}function VS(e,t){let n=0;for(let r=0;r<e.length;r++)n+=(e[r]-t[r])**2;return Math.sqrt(n)}const jS="RawCode",qS="Literal",ZS="Property",WS="Identifier",YS="ArrayExpression",QS="BinaryExpression",XS="CallExpression",$S="ConditionalExpression",KS="LogicalExpression",JS="MemberExpression",eC="ObjectExpression",tC="UnaryExpression";function yn(e){this.type=e}yn.prototype.visit=function(e){let t,n,r;if(e(this))return 1;for(t=nC(this),n=0,r=t.length;n<r;++n)if(t[n].visit(e))return 1};function nC(e){switch(e.type){case YS:return e.elements;case QS:case KS:return[e.left,e.right];case XS:return[e.callee].concat(e.arguments);case $S:return[e.test,e.consequent,e.alternate];case JS:return[e.object,e.property];case eC:return e.properties;case ZS:return[e.key,e.value];case tC:return[e.argument];case WS:case qS:case jS:default:return[]}}var Rn,K,U,wt,Te,wf=1,rs=2,Ci=3,Ir=4,vf=5,Ti=6,Pt=7,is=8,rC=9;Rn={},Rn[wf]="Boolean",Rn[rs]="<end>",Rn[Ci]="Identifier",Rn[Ir]="Keyword",Rn[vf]="Null",Rn[Ti]="Numeric",Rn[Pt]="Punctuator",Rn[is]="String",Rn[rC]="RegularExpression";var iC="ArrayExpression",aC="BinaryExpression",oC="CallExpression",sC="ConditionalExpression",Xm="Identifier",lC="Literal",fC="LogicalExpression",uC="MemberExpression",cC="ObjectExpression",hC="Property",dC="UnaryExpression",lt="Unexpected token %0",pC="Unexpected number",gC="Unexpected string",mC="Unexpected identifier",bC="Unexpected reserved word",yC="Unexpected end of input",dh="Invalid regular expression",ph="Invalid regular expression: missing /",$m="Octal literals are not allowed in strict mode.",wC="Duplicate data property in object literal not allowed in strict mode",gt="ILLEGAL",as="Disabled.",vC=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B2\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]"),xC=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B2\\u08E4-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58\\u0C59\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D60-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA69D\\uA69F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2D\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]");function xf(e,t){if(!e)throw new Error("ASSERT: "+t)}function nr(e){return e>=48&&e<=57}function gh(e){return"0123456789abcdefABCDEF".indexOf(e)>=0}function os(e){return"01234567".indexOf(e)>=0}function AC(e){return e===32||e===9||e===11||e===12||e===160||e>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(e)>=0}function ss(e){return e===10||e===13||e===8232||e===8233}function ls(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e===92||e>=128&&vC.test(String.fromCharCode(e))}function Af(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||e===92||e>=128&&xC.test(String.fromCharCode(e))}const EC={if:1,in:1,do:1,var:1,for:1,new:1,try:1,let:1,this:1,else:1,case:1,void:1,with:1,enum:1,while:1,break:1,catch:1,throw:1,const:1,yield:1,class:1,super:1,return:1,typeof:1,delete:1,switch:1,export:1,import:1,public:1,static:1,default:1,finally:1,extends:1,package:1,private:1,function:1,continue:1,debugger:1,interface:1,protected:1,instanceof:1,implements:1};function Km(){for(;U<wt;){const e=K.charCodeAt(U);if(AC(e)||ss(e))++U;else break}}function mh(e){var t,n,r,i=0;for(n=e==="u"?4:2,t=0;t<n;++t)U<wt&&gh(K[U])?(r=K[U++],i=i*16+"0123456789abcdef".indexOf(r.toLowerCase())):be({},lt,gt);return String.fromCharCode(i)}function _C(){var e,t,n,r;for(e=K[U],t=0,e==="}"&&be({},lt,gt);U<wt&&(e=K[U++],!!gh(e));)t=t*16+"0123456789abcdef".indexOf(e.toLowerCase());return(t>1114111||e!=="}")&&be({},lt,gt),t<=65535?String.fromCharCode(t):(n=(t-65536>>10)+55296,r=(t-65536&1023)+56320,String.fromCharCode(n,r))}function Jm(){var e,t;for(e=K.charCodeAt(U++),t=String.fromCharCode(e),e===92&&(K.charCodeAt(U)!==117&&be({},lt,gt),++U,e=mh("u"),(!e||e==="\\"||!ls(e.charCodeAt(0)))&&be({},lt,gt),t=e);U<wt&&(e=K.charCodeAt(U),!!Af(e));)++U,t+=String.fromCharCode(e),e===92&&(t=t.substr(0,t.length-1),K.charCodeAt(U)!==117&&be({},lt,gt),++U,e=mh("u"),(!e||e==="\\"||!Af(e.charCodeAt(0)))&&be({},lt,gt),t+=e);return t}function SC(){var e,t;for(e=U++;U<wt;){if(t=K.charCodeAt(U),t===92)return U=e,Jm();if(Af(t))++U;else break}return K.slice(e,U)}function CC(){var e,t,n;return e=U,t=K.charCodeAt(U)===92?Jm():SC(),t.length===1?n=Ci:EC.hasOwnProperty(t)?n=Ir:t==="null"?n=vf:t==="true"||t==="false"?n=wf:n=Ci,{type:n,value:t,start:e,end:U}}function bh(){var e=U,t=K.charCodeAt(U),n,r=K[U],i,a,o;switch(t){case 46:case 40:case 41:case 59:case 44:case 123:case 125:case 91:case 93:case 58:case 63:case 126:return++U,{type:Pt,value:String.fromCharCode(t),start:e,end:U};default:if(n=K.charCodeAt(U+1),n===61)switch(t){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return U+=2,{type:Pt,value:String.fromCharCode(t)+String.fromCharCode(n),start:e,end:U};case 33:case 61:return U+=2,K.charCodeAt(U)===61&&++U,{type:Pt,value:K.slice(e,U),start:e,end:U}}}if(o=K.substr(U,4),o===">>>=")return U+=4,{type:Pt,value:o,start:e,end:U};if(a=o.substr(0,3),a===">>>"||a==="<<="||a===">>=")return U+=3,{type:Pt,value:a,start:e,end:U};if(i=a.substr(0,2),r===i[1]&&"+-<>&|".indexOf(r)>=0||i==="=>")return U+=2,{type:Pt,value:i,start:e,end:U};if(i==="//"&&be({},lt,gt),"<>=!+-*%&|^/".indexOf(r)>=0)return++U,{type:Pt,value:r,start:e,end:U};be({},lt,gt)}function TC(e){let t="";for(;U<wt&&gh(K[U]);)t+=K[U++];return t.length===0&&be({},lt,gt),ls(K.charCodeAt(U))&&be({},lt,gt),{type:Ti,value:parseInt("0x"+t,16),start:e,end:U}}function IC(e){let t="0"+K[U++];for(;U<wt&&os(K[U]);)t+=K[U++];return(ls(K.charCodeAt(U))||nr(K.charCodeAt(U)))&&be({},lt,gt),{type:Ti,value:parseInt(t,8),octal:!0,start:e,end:U}}function e1(){var e,t,n;if(n=K[U],xf(nr(n.charCodeAt(0))||n===".","Numeric literal must start with a decimal digit or a decimal point"),t=U,e="",n!=="."){if(e=K[U++],n=K[U],e==="0"){if(n==="x"||n==="X")return++U,TC(t);if(os(n))return IC(t);n&&nr(n.charCodeAt(0))&&be({},lt,gt)}for(;nr(K.charCodeAt(U));)e+=K[U++];n=K[U]}if(n==="."){for(e+=K[U++];nr(K.charCodeAt(U));)e+=K[U++];n=K[U]}if(n==="e"||n==="E")if(e+=K[U++],n=K[U],(n==="+"||n==="-")&&(e+=K[U++]),nr(K.charCodeAt(U)))for(;nr(K.charCodeAt(U));)e+=K[U++];else be({},lt,gt);return ls(K.charCodeAt(U))&&be({},lt,gt),{type:Ti,value:parseFloat(e),start:t,end:U}}function kC(){var e="",t,n,r,i,a=!1;for(t=K[U],xf(t==="'"||t==='"',"String literal must starts with a quote"),n=U,++U;U<wt;)if(r=K[U++],r===t){t="";break}else if(r==="\\")if(r=K[U++],!r||!ss(r.charCodeAt(0)))switch(r){case"u":case"x":K[U]==="{"?(++U,e+=_C()):e+=mh(r);break;case"n":e+=`
124
+ `;break;case"r":e+="\r";break;case"t":e+=" ";break;case"b":e+="\b";break;case"f":e+="\f";break;case"v":e+="\v";break;default:os(r)?(i="01234567".indexOf(r),i!==0&&(a=!0),U<wt&&os(K[U])&&(a=!0,i=i*8+"01234567".indexOf(K[U++]),"0123".indexOf(r)>=0&&U<wt&&os(K[U])&&(i=i*8+"01234567".indexOf(K[U++]))),e+=String.fromCharCode(i)):e+=r;break}else r==="\r"&&K[U]===`
125
+ `&&++U;else{if(ss(r.charCodeAt(0)))break;e+=r}return t!==""&&be({},lt,gt),{type:is,value:e,octal:a,start:n,end:U}}function BC(e,t){let n=e;t.indexOf("u")>=0&&(n=n.replace(/\\u\{([0-9a-fA-F]+)\}/g,(r,i)=>{if(parseInt(i,16)<=1114111)return"x";be({},dh)}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(n)}catch{be({},dh)}try{return new RegExp(e,t)}catch{return null}}function DC(){var e,t,n,r,i;for(e=K[U],xf(e==="/","Regular expression literal must start with a slash"),t=K[U++],n=!1,r=!1;U<wt;)if(e=K[U++],t+=e,e==="\\")e=K[U++],ss(e.charCodeAt(0))&&be({},ph),t+=e;else if(ss(e.charCodeAt(0)))be({},ph);else if(n)e==="]"&&(n=!1);else if(e==="/"){r=!0;break}else e==="["&&(n=!0);return r||be({},ph),i=t.substr(1,t.length-2),{value:i,literal:t}}function FC(){var e,t,n;for(t="",n="";U<wt&&(e=K[U],!!Af(e.charCodeAt(0)));)++U,e==="\\"&&U<wt?be({},lt,gt):(n+=e,t+=e);return n.search(/[^gimuy]/g)>=0&&be({},dh,n),{value:n,literal:t}}function RC(){var e,t,n,r;return Te=null,Km(),e=U,t=DC(),n=FC(),r=BC(t.value,n.value),{literal:t.literal+n.literal,value:r,regex:{pattern:t.value,flags:n.value},start:e,end:U}}function PC(e){return e.type===Ci||e.type===Ir||e.type===wf||e.type===vf}function t1(){if(Km(),U>=wt)return{type:rs,start:U,end:U};const e=K.charCodeAt(U);return ls(e)?CC():e===40||e===41||e===59?bh():e===39||e===34?kC():e===46?nr(K.charCodeAt(U+1))?e1():bh():nr(e)?e1():bh()}function Mt(){const e=Te;return U=e.end,Te=t1(),U=e.end,e}function n1(){const e=U;Te=t1(),U=e}function MC(e){const t=new yn(iC);return t.elements=e,t}function r1(e,t,n){const r=new yn(e==="||"||e==="&&"?fC:aC);return r.operator=e,r.left=t,r.right=n,r}function NC(e,t){const n=new yn(oC);return n.callee=e,n.arguments=t,n}function LC(e,t,n){const r=new yn(sC);return r.test=e,r.consequent=t,r.alternate=n,r}function yh(e){const t=new yn(Xm);return t.name=e,t}function fs(e){const t=new yn(lC);return t.value=e.value,t.raw=K.slice(e.start,e.end),e.regex&&(t.raw==="//"&&(t.raw="/(?:)/"),t.regex=e.regex),t}function i1(e,t,n){const r=new yn(uC);return r.computed=e==="[",r.object=t,r.property=n,r.computed||(n.member=!0),r}function OC(e){const t=new yn(cC);return t.properties=e,t}function a1(e,t,n){const r=new yn(hC);return r.key=t,r.value=n,r.kind=e,r}function zC(e,t){const n=new yn(dC);return n.operator=e,n.argument=t,n.prefix=!0,n}function be(e,t){var n,r=Array.prototype.slice.call(arguments,2),i=t.replace(/%(\d)/g,(a,o)=>(xf(o<r.length,"Message reference must be in range"),r[o]));throw n=new Error(i),n.index=U,n.description=i,n}function Ef(e){e.type===rs&&be(e,yC),e.type===Ti&&be(e,pC),e.type===is&&be(e,gC),e.type===Ci&&be(e,mC),e.type===Ir&&be(e,bC),be(e,lt,e.value)}function vt(e){const t=Mt();(t.type!==Pt||t.value!==e)&&Ef(t)}function ze(e){return Te.type===Pt&&Te.value===e}function wh(e){return Te.type===Ir&&Te.value===e}function UC(){const e=[];for(U=Te.start,vt("[");!ze("]");)ze(",")?(Mt(),e.push(null)):(e.push(Ii()),ze("]")||vt(","));return Mt(),MC(e)}function o1(){U=Te.start;const e=Mt();return e.type===is||e.type===Ti?(e.octal&&be(e,$m),fs(e)):yh(e.value)}function GC(){var e,t,n,r;if(U=Te.start,e=Te,e.type===Ci)return n=o1(),vt(":"),r=Ii(),a1("init",n,r);if(e.type===rs||e.type===Pt)Ef(e);else return t=o1(),vt(":"),r=Ii(),a1("init",t,r)}function HC(){var e=[],t,n,r,i={},a=String;for(U=Te.start,vt("{");!ze("}");)t=GC(),t.key.type===Xm?n=t.key.name:n=a(t.key.value),r="$"+n,Object.prototype.hasOwnProperty.call(i,r)?be({},wC):i[r]=!0,e.push(t),ze("}")||vt(",");return vt("}"),OC(e)}function VC(){vt("(");const e=vh();return vt(")"),e}const jC={if:1};function qC(){var e,t,n;if(ze("("))return VC();if(ze("["))return UC();if(ze("{"))return HC();if(e=Te.type,U=Te.start,e===Ci||jC[Te.value])n=yh(Mt().value);else if(e===is||e===Ti)Te.octal&&be(Te,$m),n=fs(Mt());else{if(e===Ir)throw new Error(as);e===wf?(t=Mt(),t.value=t.value==="true",n=fs(t)):e===vf?(t=Mt(),t.value=null,n=fs(t)):ze("/")||ze("/=")?(n=fs(RC()),n1()):Ef(Mt())}return n}function ZC(){const e=[];if(vt("("),!ze(")"))for(;U<wt&&(e.push(Ii()),!ze(")"));)vt(",");return vt(")"),e}function WC(){U=Te.start;const e=Mt();return PC(e)||Ef(e),yh(e.value)}function YC(){return vt("."),WC()}function QC(){vt("[");const e=vh();return vt("]"),e}function XC(){var e,t,n;for(e=qC();;)if(ze("."))n=YC(),e=i1(".",e,n);else if(ze("("))t=ZC(),e=NC(e,t);else if(ze("["))n=QC(),e=i1("[",e,n);else break;return e}function s1(){const e=XC();if(Te.type===Pt&&(ze("++")||ze("--")))throw new Error(as);return e}function _f(){var e,t;if(Te.type!==Pt&&Te.type!==Ir)t=s1();else{if(ze("++")||ze("--"))throw new Error(as);if(ze("+")||ze("-")||ze("~")||ze("!"))e=Mt(),t=_f(),t=zC(e.value,t);else{if(wh("delete")||wh("void")||wh("typeof"))throw new Error(as);t=s1()}}return t}function l1(e){let t=0;if(e.type!==Pt&&e.type!==Ir)return 0;switch(e.value){case"||":t=1;break;case"&&":t=2;break;case"|":t=3;break;case"^":t=4;break;case"&":t=5;break;case"==":case"!=":case"===":case"!==":t=6;break;case"<":case">":case"<=":case">=":case"instanceof":case"in":t=7;break;case"<<":case">>":case">>>":t=8;break;case"+":case"-":t=9;break;case"*":case"/":case"%":t=11;break}return t}function $C(){var e,t,n,r,i,a,o,s,f,l;if(e=Te,f=_f(),r=Te,i=l1(r),i===0)return f;for(r.prec=i,Mt(),t=[e,Te],o=_f(),a=[f,r,o];(i=l1(Te))>0;){for(;a.length>2&&i<=a[a.length-2].prec;)o=a.pop(),s=a.pop().value,f=a.pop(),t.pop(),n=r1(s,f,o),a.push(n);r=Mt(),r.prec=i,a.push(r),t.push(Te),n=_f(),a.push(n)}for(l=a.length-1,n=a[l],t.pop();l>1;)t.pop(),n=r1(a[l-1].value,a[l-2],n),l-=2;return n}function Ii(){var e,t,n;return e=$C(),ze("?")&&(Mt(),t=Ii(),vt(":"),n=Ii(),e=LC(e,t,n)),e}function vh(){const e=Ii();if(ze(","))throw new Error(as);return e}function KC(e){K=e,U=0,wt=K.length,Te=null,n1();const t=vh();if(Te.type!==rs)throw new Error("Unexpect token after expression.");return t}var JC={NaN:"NaN",E:"Math.E",LN2:"Math.LN2",LN10:"Math.LN10",LOG2E:"Math.LOG2E",LOG10E:"Math.LOG10E",PI:"Math.PI",SQRT1_2:"Math.SQRT1_2",SQRT2:"Math.SQRT2",MIN_VALUE:"Number.MIN_VALUE",MAX_VALUE:"Number.MAX_VALUE"};function e6(e){function t(o,s,f,l){let u=e(s[0]);return f&&(u=f+"("+u+")",f.lastIndexOf("new ",0)===0&&(u="("+u+")")),u+"."+o+(l<0?"":l===0?"()":"("+s.slice(1).map(e).join(",")+")")}function n(o,s,f){return l=>t(o,l,s,f)}const r="new Date",i="String",a="RegExp";return{isNaN:"Number.isNaN",isFinite:"Number.isFinite",abs:"Math.abs",acos:"Math.acos",asin:"Math.asin",atan:"Math.atan",atan2:"Math.atan2",ceil:"Math.ceil",cos:"Math.cos",exp:"Math.exp",floor:"Math.floor",log:"Math.log",max:"Math.max",min:"Math.min",pow:"Math.pow",random:"Math.random",round:"Math.round",sin:"Math.sin",sqrt:"Math.sqrt",tan:"Math.tan",clamp:function(o){o.length<3&&Ye("Missing arguments to clamp function."),o.length>3&&Ye("Too many arguments to clamp function.");const s=o.map(e);return"Math.max("+s[1]+", Math.min("+s[2]+","+s[0]+"))"},now:"Date.now",utc:"Date.UTC",datetime:r,date:n("getDate",r,0),day:n("getDay",r,0),year:n("getFullYear",r,0),month:n("getMonth",r,0),hours:n("getHours",r,0),minutes:n("getMinutes",r,0),seconds:n("getSeconds",r,0),milliseconds:n("getMilliseconds",r,0),time:n("getTime",r,0),timezoneoffset:n("getTimezoneOffset",r,0),utcdate:n("getUTCDate",r,0),utcday:n("getUTCDay",r,0),utcyear:n("getUTCFullYear",r,0),utcmonth:n("getUTCMonth",r,0),utchours:n("getUTCHours",r,0),utcminutes:n("getUTCMinutes",r,0),utcseconds:n("getUTCSeconds",r,0),utcmilliseconds:n("getUTCMilliseconds",r,0),length:n("length",null,-1),parseFloat:"parseFloat",parseInt:"parseInt",upper:n("toUpperCase",i,0),lower:n("toLowerCase",i,0),substring:n("substring",i),split:n("split",i),trim:n("trim",i,0),regexp:a,test:n("test",a),if:function(o){o.length<3&&Ye("Missing arguments to if function."),o.length>3&&Ye("Too many arguments to if function.");const s=o.map(e);return"("+s[0]+"?"+s[1]+":"+s[2]+")"}}}function t6(e){const t=e&&e.length-1;return t&&(e[0]==='"'&&e[t]==='"'||e[0]==="'"&&e[t]==="'")?e.slice(1,-1):e}function n6(e){e=e||{};const t=e.allowed?Jl(e.allowed):{},n=e.forbidden?Jl(e.forbidden):{},r=e.constants||JC,i=(e.functions||e6)(c),a=e.globalvar,o=e.fieldvar,s=Dt(a)?a:p=>`${a}["${p}"]`;let f={},l={},u=0;function c(p){if(Qe(p))return p;const b=h[p.type];return b==null&&Ye("Unsupported type: "+p.type),b(p)}const h={Literal:p=>p.raw,Identifier:p=>{const b=p.name;return u>0?b:gi(n,b)?Ye("Illegal identifier: "+b):gi(r,b)?r[b]:gi(t,b)?b:(f[b]=1,s(b))},MemberExpression:p=>{const b=!p.computed,y=c(p.object);b&&(u+=1);const w=c(p.property);return y===o&&(l[t6(w)]=1),b&&(u-=1),y+(b?"."+w:"["+w+"]")},CallExpression:p=>{p.callee.type!=="Identifier"&&Ye("Illegal callee type: "+p.callee.type);const b=p.callee.name,y=p.arguments,w=gi(i,b)&&i[b];return w||Ye("Unrecognized function: "+b),Dt(w)?w(y):w+"("+y.map(c).join(",")+")"},ArrayExpression:p=>"["+p.elements.map(c).join(",")+"]",BinaryExpression:p=>"("+c(p.left)+" "+p.operator+" "+c(p.right)+")",UnaryExpression:p=>"("+p.operator+c(p.argument)+")",ConditionalExpression:p=>"("+c(p.test)+"?"+c(p.consequent)+":"+c(p.alternate)+")",LogicalExpression:p=>"("+c(p.left)+p.operator+c(p.right)+")",ObjectExpression:p=>"{"+p.properties.map(c).join(",")+"}",Property:p=>{u+=1;const b=c(p.key);return u-=1,b+":"+c(p.value)}};function d(p){const b={code:c(p),globals:Object.keys(f),fields:Object.keys(l)};return f={},l={},b}return d.functions=i,d.constants=r,d}function xh(e,t={}){const n=n6({forbidden:[],allowed:["datum"],globalvar:"globalObject",fieldvar:"datum"});try{const r=KC(e),i=n(r),a=Function("datum","globalObject",`"use strict"; return (${i.code});`),o=s=>a(s,t);return o.fields=i.fields,o}catch(r){throw new Error(`Invalid expression: ${e}, ${r.message}`)}}function Pn(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}function kr(e,t){switch(arguments.length){case 0:break;case 1:{typeof e=="function"?this.interpolator(e):this.range(e);break}default:{this.domain(e),typeof t=="function"?this.interpolator(t):this.range(t);break}}return this}const Ah=Symbol("implicit");function Eh(){var e=new mi,t=[],n=[],r=Ah;function i(a){let o=e.get(a);if(o===void 0){if(r!==Ah)return r;e.set(a,o=t.push(a)-1)}return n[o%n.length]}return i.domain=function(a){if(!arguments.length)return t.slice();t=[],e=new mi;for(const o of a)e.has(o)||e.set(o,t.push(o)-1);return i},i.range=function(a){return arguments.length?(n=Array.from(a),i):n.slice()},i.unknown=function(a){return arguments.length?(r=a,i):r},i.copy=function(){return Eh(t,n).unknown(r)},Pn.apply(i,arguments),i}function Ea(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function us(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function Br(){}var ki=.7,_a=1/ki,Sa="\\s*([+-]?\\d+)\\s*",cs="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Mn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",r6=/^#([0-9a-f]{3,8})$/,i6=new RegExp(`^rgb\\(${Sa},${Sa},${Sa}\\)$`),a6=new RegExp(`^rgb\\(${Mn},${Mn},${Mn}\\)$`),o6=new RegExp(`^rgba\\(${Sa},${Sa},${Sa},${cs}\\)$`),s6=new RegExp(`^rgba\\(${Mn},${Mn},${Mn},${cs}\\)$`),l6=new RegExp(`^hsl\\(${cs},${Mn},${Mn}\\)$`),f6=new RegExp(`^hsla\\(${cs},${Mn},${Mn},${cs}\\)$`),f1={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};Ea(Br,Dr,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:u1,formatHex:u1,formatHex8:u6,formatHsl:c6,formatRgb:c1,toString:c1});function u1(){return this.rgb().formatHex()}function u6(){return this.rgb().formatHex8()}function c6(){return m1(this).formatHsl()}function c1(){return this.rgb().formatRgb()}function Dr(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=r6.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?h1(t):n===3?new ft(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Sf(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Sf(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=i6.exec(e))?new ft(t[1],t[2],t[3],1):(t=a6.exec(e))?new ft(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=o6.exec(e))?Sf(t[1],t[2],t[3],t[4]):(t=s6.exec(e))?Sf(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=l6.exec(e))?g1(t[1],t[2]/100,t[3]/100,1):(t=f6.exec(e))?g1(t[1],t[2]/100,t[3]/100,t[4]):f1.hasOwnProperty(e)?h1(f1[e]):e==="transparent"?new ft(NaN,NaN,NaN,0):null}function h1(e){return new ft(e>>16&255,e>>8&255,e&255,1)}function Sf(e,t,n,r){return r<=0&&(e=t=n=NaN),new ft(e,t,n,r)}function _h(e){return e instanceof Br||(e=Dr(e)),e?(e=e.rgb(),new ft(e.r,e.g,e.b,e.opacity)):new ft}function Cf(e,t,n,r){return arguments.length===1?_h(e):new ft(e,t,n,r??1)}function ft(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}Ea(ft,Cf,us(Br,{brighter(e){return e=e==null?_a:Math.pow(_a,e),new ft(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?ki:Math.pow(ki,e),new ft(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new ft(Bi(this.r),Bi(this.g),Bi(this.b),Tf(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:d1,formatHex:d1,formatHex8:h6,formatRgb:p1,toString:p1}));function d1(){return`#${Di(this.r)}${Di(this.g)}${Di(this.b)}`}function h6(){return`#${Di(this.r)}${Di(this.g)}${Di(this.b)}${Di((isNaN(this.opacity)?1:this.opacity)*255)}`}function p1(){const e=Tf(this.opacity);return`${e===1?"rgb(":"rgba("}${Bi(this.r)}, ${Bi(this.g)}, ${Bi(this.b)}${e===1?")":`, ${e})`}`}function Tf(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Bi(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Di(e){return e=Bi(e),(e<16?"0":"")+e.toString(16)}function g1(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new wn(e,t,n,r)}function m1(e){if(e instanceof wn)return new wn(e.h,e.s,e.l,e.opacity);if(e instanceof Br||(e=Dr(e)),!e)return new wn;if(e instanceof wn)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=NaN,s=a-i,f=(a+i)/2;return s?(t===a?o=(n-r)/s+(n<r)*6:n===a?o=(r-t)/s+2:o=(t-n)/s+4,s/=f<.5?a+i:2-a-i,o*=60):s=f>0&&f<1?0:o,new wn(o,s,f,e.opacity)}function Sh(e,t,n,r){return arguments.length===1?m1(e):new wn(e,t,n,r??1)}function wn(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}Ea(wn,Sh,us(Br,{brighter(e){return e=e==null?_a:Math.pow(_a,e),new wn(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?ki:Math.pow(ki,e),new wn(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new ft(Ch(e>=240?e-240:e+120,i,r),Ch(e,i,r),Ch(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new wn(b1(this.h),If(this.s),If(this.l),Tf(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=Tf(this.opacity);return`${e===1?"hsl(":"hsla("}${b1(this.h)}, ${If(this.s)*100}%, ${If(this.l)*100}%${e===1?")":`, ${e})`}`}}));function b1(e){return e=(e||0)%360,e<0?e+360:e}function If(e){return Math.max(0,Math.min(1,e||0))}function Ch(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const y1=Math.PI/180,w1=180/Math.PI,kf=18,v1=.96422,x1=1,A1=.82521,E1=4/29,Ca=6/29,_1=3*Ca*Ca,d6=Ca*Ca*Ca;function S1(e){if(e instanceof Nn)return new Nn(e.l,e.a,e.b,e.opacity);if(e instanceof rr)return C1(e);e instanceof ft||(e=_h(e));var t=Dh(e.r),n=Dh(e.g),r=Dh(e.b),i=Ih((.2225045*t+.7168786*n+.0606169*r)/x1),a,o;return t===n&&n===r?a=o=i:(a=Ih((.4360747*t+.3850649*n+.1430804*r)/v1),o=Ih((.0139322*t+.0971045*n+.7141733*r)/A1)),new Nn(116*i-16,500*(a-i),200*(i-o),e.opacity)}function Th(e,t,n,r){return arguments.length===1?S1(e):new Nn(e,t,n,r??1)}function Nn(e,t,n,r){this.l=+e,this.a=+t,this.b=+n,this.opacity=+r}Ea(Nn,Th,us(Br,{brighter(e){return new Nn(this.l+kf*(e??1),this.a,this.b,this.opacity)},darker(e){return new Nn(this.l-kf*(e??1),this.a,this.b,this.opacity)},rgb(){var e=(this.l+16)/116,t=isNaN(this.a)?e:e+this.a/500,n=isNaN(this.b)?e:e-this.b/200;return t=v1*kh(t),e=x1*kh(e),n=A1*kh(n),new ft(Bh(3.1338561*t-1.6168667*e-.4906146*n),Bh(-.9787684*t+1.9161415*e+.033454*n),Bh(.0719453*t-.2289914*e+1.4052427*n),this.opacity)}}));function Ih(e){return e>d6?Math.pow(e,1/3):e/_1+E1}function kh(e){return e>Ca?e*e*e:_1*(e-E1)}function Bh(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function Dh(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function p6(e){if(e instanceof rr)return new rr(e.h,e.c,e.l,e.opacity);if(e instanceof Nn||(e=S1(e)),e.a===0&&e.b===0)return new rr(NaN,0<e.l&&e.l<100?0:NaN,e.l,e.opacity);var t=Math.atan2(e.b,e.a)*w1;return new rr(t<0?t+360:t,Math.sqrt(e.a*e.a+e.b*e.b),e.l,e.opacity)}function Fh(e,t,n,r){return arguments.length===1?p6(e):new rr(e,t,n,r??1)}function rr(e,t,n,r){this.h=+e,this.c=+t,this.l=+n,this.opacity=+r}function C1(e){if(isNaN(e.h))return new Nn(e.l,0,0,e.opacity);var t=e.h*y1;return new Nn(e.l,Math.cos(t)*e.c,Math.sin(t)*e.c,e.opacity)}Ea(rr,Fh,us(Br,{brighter(e){return new rr(this.h,this.c,this.l+kf*(e??1),this.opacity)},darker(e){return new rr(this.h,this.c,this.l-kf*(e??1),this.opacity)},rgb(){return C1(this).rgb()}}));var T1=-.14861,Rh=1.78277,Ph=-.29227,Bf=-.90649,hs=1.97294,I1=hs*Bf,k1=hs*Rh,B1=Rh*Ph-Bf*T1;function g6(e){if(e instanceof Fi)return new Fi(e.h,e.s,e.l,e.opacity);e instanceof ft||(e=_h(e));var t=e.r/255,n=e.g/255,r=e.b/255,i=(B1*r+I1*t-k1*n)/(B1+I1-k1),a=r-i,o=(hs*(n-i)-Ph*a)/Bf,s=Math.sqrt(o*o+a*a)/(hs*i*(1-i)),f=s?Math.atan2(o,a)*w1-120:NaN;return new Fi(f<0?f+360:f,s,i,e.opacity)}function Mh(e,t,n,r){return arguments.length===1?g6(e):new Fi(e,t,n,r??1)}function Fi(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}Ea(Fi,Mh,us(Br,{brighter(e){return e=e==null?_a:Math.pow(_a,e),new Fi(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?ki:Math.pow(ki,e),new Fi(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=isNaN(this.h)?0:(this.h+120)*y1,t=+this.l,n=isNaN(this.s)?0:this.s*t*(1-t),r=Math.cos(e),i=Math.sin(e);return new ft(255*(t+n*(T1*r+Rh*i)),255*(t+n*(Ph*r+Bf*i)),255*(t+n*(hs*r)),this.opacity)}}));function D1(e,t,n,r,i){var a=e*e,o=a*e;return((1-3*e+3*a-o)*t+(4-6*a+3*o)*n+(1+3*e+3*a-3*o)*r+o*i)/6}function F1(e){var t=e.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,t-1):Math.floor(n*t),i=e[r],a=e[r+1],o=r>0?e[r-1]:2*i-a,s=r<t-1?e[r+2]:2*a-i;return D1((n-r/t)*t,o,i,a,s)}}function R1(e){var t=e.length;return function(n){var r=Math.floor(((n%=1)<0?++n:n)*t),i=e[(r+t-1)%t],a=e[r%t],o=e[(r+1)%t],s=e[(r+2)%t];return D1((n-r/t)*t,i,a,o,s)}}const Df=e=>()=>e;function P1(e,t){return function(n){return e+n*t}}function m6(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function Ff(e,t){var n=t-e;return n?P1(e,n>180||n<-180?n-360*Math.round(n/360):n):Df(isNaN(e)?t:e)}function b6(e){return(e=+e)==1?ut:function(t,n){return n-t?m6(t,n,e):Df(isNaN(t)?n:t)}}function ut(e,t){var n=t-e;return n?P1(e,n):Df(isNaN(e)?t:e)}const Nh=function e(t){var n=b6(t);function r(i,a){var o=n((i=Cf(i)).r,(a=Cf(a)).r),s=n(i.g,a.g),f=n(i.b,a.b),l=ut(i.opacity,a.opacity);return function(u){return i.r=o(u),i.g=s(u),i.b=f(u),i.opacity=l(u),i+""}}return r.gamma=e,r}(1);function M1(e){return function(t){var n=t.length,r=new Array(n),i=new Array(n),a=new Array(n),o,s;for(o=0;o<n;++o)s=Cf(t[o]),r[o]=s.r||0,i[o]=s.g||0,a[o]=s.b||0;return r=e(r),i=e(i),a=e(a),s.opacity=1,function(f){return s.r=r(f),s.g=i(f),s.b=a(f),s+""}}}var y6=M1(F1),w6=M1(R1);function Lh(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(a){for(i=0;i<n;++i)r[i]=e[i]*(1-a)+t[i]*a;return r}}function N1(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function v6(e,t){return(N1(t)?Lh:L1)(e,t)}function L1(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,i=new Array(r),a=new Array(n),o;for(o=0;o<r;++o)i[o]=Fr(e[o],t[o]);for(;o<n;++o)a[o]=t[o];return function(s){for(o=0;o<r;++o)a[o]=i[o](s);return a}}function O1(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function vn(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function z1(e,t){var n={},r={},i;(e===null||typeof e!="object")&&(e={}),(t===null||typeof t!="object")&&(t={});for(i in t)i in e?n[i]=Fr(e[i],t[i]):r[i]=t[i];return function(a){for(i in n)r[i]=n[i](a);return r}}var Oh=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,zh=new RegExp(Oh.source,"g");function x6(e){return function(){return e}}function A6(e){return function(t){return e(t)+""}}function U1(e,t){var n=Oh.lastIndex=zh.lastIndex=0,r,i,a,o=-1,s=[],f=[];for(e=e+"",t=t+"";(r=Oh.exec(e))&&(i=zh.exec(t));)(a=i.index)>n&&(a=t.slice(n,a),s[o]?s[o]+=a:s[++o]=a),(r=r[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,f.push({i:o,x:vn(r,i)})),n=zh.lastIndex;return n<t.length&&(a=t.slice(n),s[o]?s[o]+=a:s[++o]=a),s.length<2?f[0]?A6(f[0].x):x6(t):(t=f.length,function(l){for(var u=0,c;u<t;++u)s[(c=f[u]).i]=c.x(l);return s.join("")})}function Fr(e,t){var n=typeof t,r;return t==null||n==="boolean"?Df(t):(n==="number"?vn:n==="string"?(r=Dr(t))?(t=r,Nh):U1:t instanceof Dr?Nh:t instanceof Date?O1:N1(t)?Lh:Array.isArray(t)?L1:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?z1:vn)(e,t)}function E6(e){var t=e.length;return function(n){return e[Math.max(0,Math.min(t-1,Math.floor(n*t)))]}}function _6(e,t){var n=Ff(+e,+t);return function(r){var i=n(r);return i-360*Math.floor(i/360)}}function ds(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}var G1=180/Math.PI,Uh={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function H1(e,t,n,r,i,a){var o,s,f;return(o=Math.sqrt(e*e+t*t))&&(e/=o,t/=o),(f=e*n+t*r)&&(n-=e*f,r-=t*f),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,f/=s),e*r<t*n&&(e=-e,t=-t,f=-f,o=-o),{translateX:i,translateY:a,rotate:Math.atan2(t,e)*G1,skewX:Math.atan(f)*G1,scaleX:o,scaleY:s}}var Rf;function S6(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?Uh:H1(t.a,t.b,t.c,t.d,t.e,t.f)}function C6(e){return e==null||(Rf||(Rf=document.createElementNS("http://www.w3.org/2000/svg","g")),Rf.setAttribute("transform",e),!(e=Rf.transform.baseVal.consolidate()))?Uh:(e=e.matrix,H1(e.a,e.b,e.c,e.d,e.e,e.f))}function V1(e,t,n,r){function i(l){return l.length?l.pop()+" ":""}function a(l,u,c,h,d,p){if(l!==c||u!==h){var b=d.push("translate(",null,t,null,n);p.push({i:b-4,x:vn(l,c)},{i:b-2,x:vn(u,h)})}else(c||h)&&d.push("translate("+c+t+h+n)}function o(l,u,c,h){l!==u?(l-u>180?u+=360:u-l>180&&(l+=360),h.push({i:c.push(i(c)+"rotate(",null,r)-2,x:vn(l,u)})):u&&c.push(i(c)+"rotate("+u+r)}function s(l,u,c,h){l!==u?h.push({i:c.push(i(c)+"skewX(",null,r)-2,x:vn(l,u)}):u&&c.push(i(c)+"skewX("+u+r)}function f(l,u,c,h,d,p){if(l!==c||u!==h){var b=d.push(i(d)+"scale(",null,",",null,")");p.push({i:b-4,x:vn(l,c)},{i:b-2,x:vn(u,h)})}else(c!==1||h!==1)&&d.push(i(d)+"scale("+c+","+h+")")}return function(l,u){var c=[],h=[];return l=e(l),u=e(u),a(l.translateX,l.translateY,u.translateX,u.translateY,c,h),o(l.rotate,u.rotate,c,h),s(l.skewX,u.skewX,c,h),f(l.scaleX,l.scaleY,u.scaleX,u.scaleY,c,h),l=u=null,function(d){for(var p=-1,b=h.length,y;++p<b;)c[(y=h[p]).i]=y.x(d);return c.join("")}}}var T6=V1(S6,"px, ","px)","deg)"),I6=V1(C6,", ",")",")"),k6=1e-12;function j1(e){return((e=Math.exp(e))+1/e)/2}function B6(e){return((e=Math.exp(e))-1/e)/2}function D6(e){return((e=Math.exp(2*e))-1)/(e+1)}const F6=function e(t,n,r){function i(a,o){var s=a[0],f=a[1],l=a[2],u=o[0],c=o[1],h=o[2],d=u-s,p=c-f,b=d*d+p*p,y,w;if(b<k6)w=Math.log(h/l)/t,y=function(I){return[s+I*d,f+I*p,l*Math.exp(t*I*w)]};else{var S=Math.sqrt(b),C=(h*h-l*l+r*b)/(2*l*n*S),_=(h*h-l*l-r*b)/(2*h*n*S),k=Math.log(Math.sqrt(C*C+1)-C),B=Math.log(Math.sqrt(_*_+1)-_);w=(B-k)/t,y=function(I){var R=I*w,M=j1(k),j=l/(n*S)*(M*D6(t*R+k)-B6(k));return[s+j*d,f+j*p,l*M/j1(t*R+k)]}}return y.duration=w*1e3*t/Math.SQRT2,y}return i.rho=function(a){var o=Math.max(.001,+a),s=o*o,f=s*s;return e(o,s,f)},i}(Math.SQRT2,2,4);function q1(e){return function(t,n){var r=e((t=Sh(t)).h,(n=Sh(n)).h),i=ut(t.s,n.s),a=ut(t.l,n.l),o=ut(t.opacity,n.opacity);return function(s){return t.h=r(s),t.s=i(s),t.l=a(s),t.opacity=o(s),t+""}}}const R6=q1(Ff);var P6=q1(ut);function M6(e,t){var n=ut((e=Th(e)).l,(t=Th(t)).l),r=ut(e.a,t.a),i=ut(e.b,t.b),a=ut(e.opacity,t.opacity);return function(o){return e.l=n(o),e.a=r(o),e.b=i(o),e.opacity=a(o),e+""}}function Z1(e){return function(t,n){var r=e((t=Fh(t)).h,(n=Fh(n)).h),i=ut(t.c,n.c),a=ut(t.l,n.l),o=ut(t.opacity,n.opacity);return function(s){return t.h=r(s),t.c=i(s),t.l=a(s),t.opacity=o(s),t+""}}}const N6=Z1(Ff);var L6=Z1(ut);function W1(e){return function t(n){n=+n;function r(i,a){var o=e((i=Mh(i)).h,(a=Mh(a)).h),s=ut(i.s,a.s),f=ut(i.l,a.l),l=ut(i.opacity,a.opacity);return function(u){return i.h=o(u),i.s=s(u),i.l=f(Math.pow(u,n)),i.opacity=l(u),i+""}}return r.gamma=t,r}(1)}const O6=W1(Ff);var z6=W1(ut);function Gh(e,t){t===void 0&&(t=e,e=Fr);for(var n=0,r=t.length-1,i=t[0],a=new Array(r<0?0:r);n<r;)a[n]=e(i,i=t[++n]);return function(o){var s=Math.max(0,Math.min(r-1,Math.floor(o*=r)));return a[s](o-s)}}function U6(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e(r/(t-1));return n}const G6=Object.freeze(Object.defineProperty({__proto__:null,interpolate:Fr,interpolateArray:v6,interpolateBasis:F1,interpolateBasisClosed:R1,interpolateCubehelix:O6,interpolateCubehelixLong:z6,interpolateDate:O1,interpolateDiscrete:E6,interpolateHcl:N6,interpolateHclLong:L6,interpolateHsl:R6,interpolateHslLong:P6,interpolateHue:_6,interpolateLab:M6,interpolateNumber:vn,interpolateNumberArray:Lh,interpolateObject:z1,interpolateRgb:Nh,interpolateRgbBasis:y6,interpolateRgbBasisClosed:w6,interpolateRound:ds,interpolateString:U1,interpolateTransformCss:T6,interpolateTransformSvg:I6,interpolateZoom:F6,piecewise:Gh,quantize:U6},Symbol.toStringTag,{value:"Module"}));function H6(e){return function(){return e}}function Hh(e){return+e}var Y1=[0,1];function Nt(e){return e}function Vh(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:H6(isNaN(t)?NaN:.5)}function V6(e,t){var n;return e>t&&(n=e,e=t,t=n),function(r){return Math.max(e,Math.min(t,r))}}function j6(e,t,n){var r=e[0],i=e[1],a=t[0],o=t[1];return i<r?(r=Vh(i,r),a=n(o,a)):(r=Vh(r,i),a=n(a,o)),function(s){return a(r(s))}}function q6(e,t,n){var r=Math.min(e.length,t.length)-1,i=new Array(r),a=new Array(r),o=-1;for(e[r]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++o<r;)i[o]=Vh(e[o],e[o+1]),a[o]=n(t[o],t[o+1]);return function(s){var f=ba(e,s,1,r)-1;return a[f](i[f](s))}}function ps(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function Pf(){var e=Y1,t=Y1,n=Fr,r,i,a,o=Nt,s,f,l;function u(){var h=Math.min(e.length,t.length);return o!==Nt&&(o=V6(e[0],e[h-1])),s=h>2?q6:j6,f=l=null,c}function c(h){return h==null||isNaN(h=+h)?a:(f||(f=s(e.map(r),t,n)))(r(o(h)))}return c.invert=function(h){return o(i((l||(l=s(t,e.map(r),vn)))(h)))},c.domain=function(h){return arguments.length?(e=Array.from(h,Hh),u()):e.slice()},c.range=function(h){return arguments.length?(t=Array.from(h),u()):t.slice()},c.rangeRound=function(h){return t=Array.from(h),n=ds,u()},c.clamp=function(h){return arguments.length?(o=h?!0:Nt,u()):o!==Nt},c.interpolate=function(h){return arguments.length?(n=h,u()):n},c.unknown=function(h){return arguments.length?(a=h,c):a},function(h,d){return r=h,i=d,u()}}function Q1(){return Pf()(Nt,Nt)}function X1(e,t,n,r){var i=bi(e,t,n),a;switch(r=Er(r??",f"),r.type){case"s":{var o=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(a=Jg(i,o))&&(r.precision=a),jc(r,o)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(a=em(i,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=a-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(a=Kg(i))&&(r.precision=a-(r.type==="%")*2);break}}return pt(r)}function Ri(e){var t=e.domain;return e.ticks=function(n){var r=t();return nf(r[0],r[r.length-1],n??10)},e.tickFormat=function(n,r){var i=t();return X1(i[0],i[i.length-1],n??10,r)},e.nice=function(n){n==null&&(n=10);var r=t(),i=0,a=r.length-1,o=r[i],s=r[a],f,l,u=10;for(s<o&&(l=o,o=s,s=l,l=i,i=a,a=l);u-- >0;){if(l=jg(o,s,n),l===f)return r[i]=o,r[a]=s,t(r);if(l>0)o=Math.floor(o/l)*l,s=Math.ceil(s/l)*l;else if(l<0)o=Math.ceil(o*l)/l,s=Math.floor(s*l)/l;else break;f=l}return e},e}function $1(){var e=Q1();return e.copy=function(){return ps(e,$1())},Pn.apply(e,arguments),Ri(e)}function K1(e){var t;function n(r){return r==null||isNaN(r=+r)?t:r}return n.invert=n,n.domain=n.range=function(r){return arguments.length?(e=Array.from(r,Hh),n):e.slice()},n.unknown=function(r){return arguments.length?(t=r,n):t},n.copy=function(){return K1(e).unknown(t)},e=arguments.length?Array.from(e,Hh):[0,1],Ri(n)}function J1(e,t){e=e.slice();var n=0,r=e.length-1,i=e[n],a=e[r],o;return a<i&&(o=n,n=r,r=o,o=i,i=a,a=o),e[n]=t.floor(i),e[r]=t.ceil(a),e}function eb(e){return Math.log(e)}function tb(e){return Math.exp(e)}function Z6(e){return-Math.log(-e)}function W6(e){return-Math.exp(-e)}function Y6(e){return isFinite(e)?+("1e"+e):e<0?0:e}function Q6(e){return e===10?Y6:e===Math.E?Math.exp:t=>Math.pow(e,t)}function X6(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}function nb(e){return(t,n)=>-e(-t,n)}function jh(e){const t=e(eb,tb),n=t.domain;let r=10,i,a;function o(){return i=X6(r),a=Q6(r),n()[0]<0?(i=nb(i),a=nb(a),e(Z6,W6)):e(eb,tb),t}return t.base=function(s){return arguments.length?(r=+s,o()):r},t.domain=function(s){return arguments.length?(n(s),o()):n()},t.ticks=s=>{const f=n();let l=f[0],u=f[f.length-1];const c=u<l;c&&([l,u]=[u,l]);let h=i(l),d=i(u),p,b;const y=s==null?10:+s;let w=[];if(!(r%1)&&d-h<y){if(h=Math.floor(h),d=Math.ceil(d),l>0){for(;h<=d;++h)for(p=1;p<r;++p)if(b=h<0?p/a(-h):p*a(h),!(b<l)){if(b>u)break;w.push(b)}}else for(;h<=d;++h)for(p=r-1;p>=1;--p)if(b=h>0?p/a(-h):p*a(h),!(b<l)){if(b>u)break;w.push(b)}w.length*2<y&&(w=nf(l,u,y))}else w=nf(h,d,Math.min(d-h,y)).map(a);return c?w.reverse():w},t.tickFormat=(s,f)=>{if(s==null&&(s=10),f==null&&(f=r===10?"s":","),typeof f!="function"&&(!(r%1)&&(f=Er(f)).precision==null&&(f.trim=!0),f=pt(f)),s===1/0)return f;const l=Math.max(1,r*s/t.ticks().length);return u=>{let c=u/a(Math.round(i(u)));return c*r<r-.5&&(c*=r),c<=l?f(u):""}},t.nice=()=>n(J1(n(),{floor:s=>a(Math.floor(i(s))),ceil:s=>a(Math.ceil(i(s)))})),t}function qh(){const e=jh(Pf()).domain([1,10]);return e.copy=()=>ps(e,qh()).base(e.base()),Pn.apply(e,arguments),e}function rb(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function ib(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function Zh(e){var t=1,n=e(rb(t),ib(t));return n.constant=function(r){return arguments.length?e(rb(t=+r),ib(t)):t},Ri(n)}function ab(){var e=Zh(Pf());return e.copy=function(){return ps(e,ab()).constant(e.constant())},Pn.apply(e,arguments)}function ob(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function $6(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function K6(e){return e<0?-e*e:e*e}function Wh(e){var t=e(Nt,Nt),n=1;function r(){return n===1?e(Nt,Nt):n===.5?e($6,K6):e(ob(n),ob(1/n))}return t.exponent=function(i){return arguments.length?(n=+i,r()):n},Ri(t)}function Yh(){var e=Wh(Pf());return e.copy=function(){return ps(e,Yh()).exponent(e.exponent())},Pn.apply(e,arguments),e}function J6(){return Yh.apply(null,arguments).exponent(.5)}function sb(){var e=[],t=[],n=[],r;function i(){var o=0,s=Math.max(1,t.length);for(n=new Array(s-1);++o<s;)n[o-1]=qg(e,o/s);return a}function a(o){return o==null||isNaN(o=+o)?r:t[ba(n,o)]}return a.invertExtent=function(o){var s=t.indexOf(o);return s<0?[NaN,NaN]:[s>0?n[s-1]:e[0],s<n.length?n[s]:e[e.length-1]]},a.domain=function(o){if(!arguments.length)return e.slice();e=[];for(let s of o)s!=null&&!isNaN(s=+s)&&e.push(s);return e.sort(Ro),i()},a.range=function(o){return arguments.length?(t=Array.from(o),i()):t.slice()},a.unknown=function(o){return arguments.length?(r=o,a):r},a.quantiles=function(){return n.slice()},a.copy=function(){return sb().domain(e).range(t).unknown(r)},Pn.apply(a,arguments)}function lb(){var e=0,t=1,n=1,r=[.5],i=[0,1],a;function o(f){return f!=null&&f<=f?i[ba(r,f,0,n)]:a}function s(){var f=-1;for(r=new Array(n);++f<n;)r[f]=((f+1)*t-(f-n)*e)/(n+1);return o}return o.domain=function(f){return arguments.length?([e,t]=f,e=+e,t=+t,s()):[e,t]},o.range=function(f){return arguments.length?(n=(i=Array.from(f)).length-1,s()):i.slice()},o.invertExtent=function(f){var l=i.indexOf(f);return l<0?[NaN,NaN]:l<1?[e,r[0]]:l>=n?[r[n-1],t]:[r[l-1],r[l]]},o.unknown=function(f){return arguments.length&&(a=f),o},o.thresholds=function(){return r.slice()},o.copy=function(){return lb().domain([e,t]).range(i).unknown(a)},Pn.apply(Ri(o),arguments)}function fb(){var e=[.5],t=[0,1],n,r=1;function i(a){return a!=null&&a<=a?t[ba(e,a,0,r)]:n}return i.domain=function(a){return arguments.length?(e=Array.from(a),r=Math.min(e.length,t.length-1),i):e.slice()},i.range=function(a){return arguments.length?(t=Array.from(a),r=Math.min(e.length,t.length-1),i):t.slice()},i.invertExtent=function(a){var o=t.indexOf(a);return[e[o-1],e[o]]},i.unknown=function(a){return arguments.length?(n=a,i):n},i.copy=function(){return fb().domain(e).range(t).unknown(n)},Pn.apply(i,arguments)}function e8(e){return new Date(e)}function t8(e){return e instanceof Date?+e:+new Date(+e)}function Qh(e,t,n,r,i,a,o,s,f,l){var u=Q1(),c=u.invert,h=u.domain,d=l(".%L"),p=l(":%S"),b=l("%I:%M"),y=l("%I %p"),w=l("%a %d"),S=l("%b %d"),C=l("%B"),_=l("%Y");function k(B){return(f(B)<B?d:s(B)<B?p:o(B)<B?b:a(B)<B?y:r(B)<B?i(B)<B?w:S:n(B)<B?C:_)(B)}return u.invert=function(B){return new Date(c(B))},u.domain=function(B){return arguments.length?h(Array.from(B,t8)):h().map(e8)},u.ticks=function(B){var I=h();return e(I[0],I[I.length-1],B??10)},u.tickFormat=function(B,I){return I==null?k:l(I)},u.nice=function(B){var I=h();return(!B||typeof B.range!="function")&&(B=t(I[0],I[I.length-1],B??10)),B?h(J1(I,B)):u},u.copy=function(){return ps(u,Qh(e,t,n,r,i,a,o,s,f,l))},u}function n8(){return Pn.apply(Qh($_,K_,Sr,ff,Mo,wi,$c,Xc,_r,ah).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function r8(){return Pn.apply(Qh(Q_,X_,Cr,cf,No,xi,eh,Jc,_r,oh).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function Mf(){var e=0,t=1,n,r,i,a,o=Nt,s=!1,f;function l(c){return c==null||isNaN(c=+c)?f:o(i===0?.5:(c=(a(c)-n)*i,s?Math.max(0,Math.min(1,c)):c))}l.domain=function(c){return arguments.length?([e,t]=c,n=a(e=+e),r=a(t=+t),i=n===r?0:1/(r-n),l):[e,t]},l.clamp=function(c){return arguments.length?(s=!!c,l):s},l.interpolator=function(c){return arguments.length?(o=c,l):o};function u(c){return function(h){var d,p;return arguments.length?([d,p]=h,o=c(d,p),l):[o(0),o(1)]}}return l.range=u(Fr),l.rangeRound=u(ds),l.unknown=function(c){return arguments.length?(f=c,l):f},function(c){return a=c,n=c(e),r=c(t),i=n===r?0:1/(r-n),l}}function Rr(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function Xh(){var e=Ri(Mf()(Nt));return e.copy=function(){return Rr(e,Xh())},kr.apply(e,arguments)}function ub(){var e=jh(Mf()).domain([1,10]);return e.copy=function(){return Rr(e,ub()).base(e.base())},kr.apply(e,arguments)}function cb(){var e=Zh(Mf());return e.copy=function(){return Rr(e,cb()).constant(e.constant())},kr.apply(e,arguments)}function $h(){var e=Wh(Mf());return e.copy=function(){return Rr(e,$h()).exponent(e.exponent())},kr.apply(e,arguments)}function i8(){return $h.apply(null,arguments).exponent(.5)}function Nf(){var e=0,t=.5,n=1,r=1,i,a,o,s,f,l=Nt,u,c=!1,h;function d(b){return isNaN(b=+b)?h:(b=.5+((b=+u(b))-a)*(r*b<r*a?s:f),l(c?Math.max(0,Math.min(1,b)):b))}d.domain=function(b){return arguments.length?([e,t,n]=b,i=u(e=+e),a=u(t=+t),o=u(n=+n),s=i===a?0:.5/(a-i),f=a===o?0:.5/(o-a),r=a<i?-1:1,d):[e,t,n]},d.clamp=function(b){return arguments.length?(c=!!b,d):c},d.interpolator=function(b){return arguments.length?(l=b,d):l};function p(b){return function(y){var w,S,C;return arguments.length?([w,S,C]=y,l=Gh(b,[w,S,C]),d):[l(0),l(.5),l(1)]}}return d.range=p(Fr),d.rangeRound=p(ds),d.unknown=function(b){return arguments.length?(h=b,d):h},function(b){return u=b,i=b(e),a=b(t),o=b(n),s=i===a?0:.5/(a-i),f=a===o?0:.5/(o-a),r=a<i?-1:1,d}}function hb(){var e=Ri(Nf()(Nt));return e.copy=function(){return Rr(e,hb())},kr.apply(e,arguments)}function db(){var e=jh(Nf()).domain([.1,1,10]);return e.copy=function(){return Rr(e,db()).base(e.base())},kr.apply(e,arguments)}function pb(){var e=Zh(Nf());return e.copy=function(){return Rr(e,pb()).constant(e.constant())},kr.apply(e,arguments)}function Kh(){var e=Wh(Nf());return e.copy=function(){return Rr(e,Kh()).exponent(e.exponent())},kr.apply(e,arguments)}function a8(){return Kh.apply(null,arguments).exponent(.5)}function Jh(e,t,n){const r=e-t+n*2;return e?r>0?r:1:0}const o8="identity",Ta="linear",Pr="log",gs="pow",ms="sqrt",Lf="symlog",gb="time",mb="utc",Ln="sequential",Ia="diverging",ed="quantile",bb="quantize",yb="threshold",td="ordinal",nd="point",wb="band",rd="bin-ordinal",rt="continuous",bs="discrete",ys="discretizing",tn="interpolating",vb="temporal";function s8(e){return function(t){let n=t[0],r=t[1],i;return r<n&&(i=n,n=r,r=i),[e.invert(n),e.invert(r)]}}function l8(e){return function(t){const n=e.range();let r=t[0],i=t[1],a=-1,o,s,f,l;for(i<r&&(s=r,r=i,i=s),f=0,l=n.length;f<l;++f)n[f]>=r&&n[f]<=i&&(a<0&&(a=f),o=f);if(!(a<0))return r=e.invertExtent(n[a]),i=e.invertExtent(n[o]),[r[0]===void 0?r[1]:r[0],i[1]===void 0?i[0]:i[1]]}}function id(){const e=Eh().unknown(void 0),t=e.domain,n=e.range;let r=[0,1],i,a,o=!1,s=0,f=0,l=.5;delete e.unknown;function u(){const c=t().length,h=r[1]<r[0],d=r[1-h],p=Jh(c,s,f);let b=r[h-0];i=(d-b)/(p||1),o&&(i=Math.floor(i)),b+=(d-b-i*(c-s))*l,a=i*(1-s),o&&(b=Math.round(b),a=Math.round(a));const y=Po(c).map(w=>b+i*w);return n(h?y.reverse():y)}return e.domain=function(c){return arguments.length?(t(c),u()):t()},e.range=function(c){return arguments.length?(r=[+c[0],+c[1]],u()):r.slice()},e.rangeRound=function(c){return r=[+c[0],+c[1]],o=!0,u()},e.bandwidth=function(){return a},e.step=function(){return i},e.round=function(c){return arguments.length?(o=!!c,u()):o},e.padding=function(c){return arguments.length?(f=Math.max(0,Math.min(1,c)),s=f,u()):s},e.paddingInner=function(c){return arguments.length?(s=Math.max(0,Math.min(1,c)),u()):s},e.paddingOuter=function(c){return arguments.length?(f=Math.max(0,Math.min(1,c)),u()):f},e.align=function(c){return arguments.length?(l=Math.max(0,Math.min(1,c)),u()):l},e.invertRange=function(c){if(c[0]==null||c[1]==null)return;const h=r[1]<r[0],d=h?n().reverse():n(),p=d.length-1;let b=+c[0],y=+c[1],w,S,C;if(!(b!==b||y!==y)&&(y<b&&(C=b,b=y,y=C),!(y<d[0]||b>r[1-h])))return w=Math.max(0,Oc(d,b)-1),S=b===y?w:Oc(d,y)-1,b-d[w]>a+1e-10&&++w,h&&(C=w,w=p-S,S=p-C),w>S?void 0:t().slice(w,S+1)},e.invert=function(c){const h=e.invertRange([c,c]);return h&&h[0]},e.copy=function(){return id().domain(t()).range(r).round(o).paddingInner(s).paddingOuter(f).align(l)},u()}function xb(e){const t=e.copy;return e.padding=e.paddingOuter,delete e.paddingInner,e.copy=function(){return xb(t())},e}function f8(){return xb(id().paddingInner(1))}var u8=Array.prototype.map;function c8(e){return u8.call(e,Do)}const h8=Array.prototype.slice;function Ab(){let e=[],t=[];function n(r){return r==null||r!==r?void 0:t[(ba(e,r)-1)%t.length]}return n.domain=function(r){return arguments.length?(e=c8(r),n):e.slice()},n.range=function(r){return arguments.length?(t=h8.call(r),n):t.slice()},n.tickFormat=function(r,i){return X1(e[0],bn(e),r??10,i)},n.copy=function(){return Ab().domain(n.domain()).range(n.range())},n}const Of={};function d8(e,t,n){const r=function(){const a=t();return a.invertRange||(a.invertRange=a.invert?s8(a):a.invertExtent?l8(a):void 0),a.type=e,a};return r.metadata=Jl(Rc(n)),r}function Ae(e,t,n){return arguments.length>1?(Of[e]=d8(e,t,n),this):p8(e)?Of[e]:void 0}Ae(o8,K1),Ae(Ta,$1,rt),Ae(Pr,qh,[rt,Pr]),Ae(gs,Yh,rt),Ae(ms,J6,rt),Ae(Lf,ab,rt),Ae(gb,n8,[rt,vb]),Ae(mb,r8,[rt,vb]),Ae(Ln,Xh,[rt,tn]),Ae("".concat(Ln,"-").concat(Ta),Xh,[rt,tn]),Ae("".concat(Ln,"-").concat(Pr),ub,[rt,tn,Pr]),Ae("".concat(Ln,"-").concat(gs),$h,[rt,tn]),Ae("".concat(Ln,"-").concat(ms),i8,[rt,tn]),Ae("".concat(Ln,"-").concat(Lf),cb,[rt,tn]),Ae("".concat(Ia,"-").concat(Ta),hb,[rt,tn]),Ae("".concat(Ia,"-").concat(Pr),db,[rt,tn,Pr]),Ae("".concat(Ia,"-").concat(gs),Kh,[rt,tn]),Ae("".concat(Ia,"-").concat(ms),a8,[rt,tn]),Ae("".concat(Ia,"-").concat(Lf),pb,[rt,tn]),Ae(ed,sb,[ys,ed]),Ae(bb,lb,ys),Ae(yb,fb,ys),Ae(rd,Ab,[bs,ys]),Ae(td,Eh,bs),Ae(wb,id,bs),Ae(nd,f8,bs);function p8(e){return gi(Of,e)}function ws(e,t){const n=Of[e];return n&&n.metadata[t]}function xt(e){return ws(e,rt)}function Mr(e){return ws(e,bs)}function ka(e){return ws(e,ys)}function Eb(e){return ws(e,Pr)}function zf(e){return ws(e,tn)}function g8(e,t){const n=t[0],r=bn(t)-n;return function(i){return e(n+i*r)}}function Uf(e,t,n){return Gh(_b(t||"rgb",n),e)}function m8(e,t){const n=new Array(t),r=t+1;for(let i=0;i<t;)n[i]=e(++i/r);return n}function _b(e,t){const n=G6[b8(e)];return t!=null&&n&&n.gamma?n.gamma(t):n}function b8(e){return"interpolate"+e.toLowerCase().split("-").map(t=>t[0].toUpperCase()+t.slice(1)).join("")}const y8={blues:"cfe1f2bed8eca8cee58fc1de74b2d75ba3cf4592c63181bd206fb2125ca40a4a90",greens:"d3eecdc0e6baabdda594d3917bc77d60ba6c46ab5e329a512089430e7735036429",greys:"e2e2e2d4d4d4c4c4c4b1b1b19d9d9d8888887575756262624d4d4d3535351e1e1e",oranges:"fdd8b3fdc998fdb87bfda55efc9244f87f2cf06b18e4580bd14904b93d029f3303",purples:"e2e1efd4d4e8c4c5e0b4b3d6a3a0cc928ec3827cb97566ae684ea25c3696501f8c",reds:"fdc9b4fcb49afc9e80fc8767fa7051f6573fec3f2fdc2a25c81b1db21218970b13",blueGreen:"d5efedc1e8e0a7ddd18bd2be70c6a958ba9144ad77319c5d2089460e7736036429",bluePurple:"ccddecbad0e4a8c2dd9ab0d4919cc98d85be8b6db28a55a6873c99822287730f71",greenBlue:"d3eecec5e8c3b1e1bb9bd8bb82cec269c2ca51b2cd3c9fc7288abd1675b10b60a1",orangeRed:"fddcaffdcf9bfdc18afdad77fb9562f67d53ee6545e24932d32d1ebf130da70403",purpleBlue:"dbdaebc8cee4b1c3de97b7d87bacd15b9fc93a90c01e7fb70b70ab056199045281",purpleBlueGreen:"dbd8eac8cee4b0c3de93b7d872acd1549fc83892bb1c88a3097f8702736b016353",purpleRed:"dcc9e2d3b3d7ce9eccd186c0da6bb2e14da0e23189d91e6fc61159ab07498f023a",redPurple:"fccfccfcbec0faa9b8f98faff571a5ec539ddb3695c41b8aa908808d0179700174",yellowGreen:"e4f4acd1eca0b9e2949ed68880c97c62bb6e47aa5e3297502083440e723b036034",yellowOrangeBrown:"feeaa1fedd84fecc63feb746fca031f68921eb7215db5e0bc54c05ab3d038f3204",yellowOrangeRed:"fee087fed16ffebd59fea849fd903efc7335f9522bee3423de1b20ca0b22af0225",blueOrange:"134b852f78b35da2cb9dcae1d2e5eff2f0ebfce0bafbbf74e8932fc5690d994a07",brownBlueGreen:"704108a0651ac79548e3c78af3e6c6eef1eac9e9e48ed1c74da79e187a72025147",purpleGreen:"5b1667834792a67fb6c9aed3e6d6e8eff0efd9efd5aedda971bb75368e490e5e29",purpleOrange:"4114696647968f83b7b9b4d6dadbebf3eeeafce0bafbbf74e8932fc5690d994a07",redBlue:"8c0d25bf363adf745ef4ae91fbdbc9f2efeed2e5ef9dcae15da2cb2f78b3134b85",redGrey:"8c0d25bf363adf745ef4ae91fcdccbfaf4f1e2e2e2c0c0c0969696646464343434",yellowGreenBlue:"eff9bddbf1b4bde5b594d5b969c5be45b4c22c9ec02182b82163aa23479c1c3185",redYellowBlue:"a50026d4322cf16e43fcac64fedd90faf8c1dcf1ecabd6e875abd04a74b4313695",redYellowGreen:"a50026d4322cf16e43fcac63fedd8df9f7aed7ee8ea4d86e64bc6122964f006837",pinkYellowGreen:"8e0152c0267edd72adf0b3d6faddedf5f3efe1f2cab6de8780bb474f9125276419",spectral:"9e0142d13c4bf0704afcac63fedd8dfbf8b0e0f3a1a9dda269bda94288b55e4fa2",viridis:"440154470e61481a6c482575472f7d443a834144873d4e8a39568c35608d31688e2d708e2a788e27818e23888e21918d1f988b1fa08822a8842ab07f35b77943bf7154c56866cc5d7ad1518fd744a5db36bcdf27d2e21be9e51afde725",magma:"0000040404130b0924150e3720114b2c11603b0f704a107957157e651a80721f817f24828c29819a2e80a8327db6377ac43c75d1426fde4968e95462f1605df76f5cfa7f5efc8f65fe9f6dfeaf78febf84fece91fddea0fcedaffcfdbf",inferno:"0000040403130c0826170c3b240c4f330a5f420a68500d6c5d126e6b176e781c6d86216b932667a12b62ae305cbb3755c73e4cd24644dd513ae65c30ed6925f3771af8850ffb9506fca50afcb519fac62df6d645f2e661f3f484fcffa4",plasma:"0d088723069033059742039d5002a25d01a66a00a87801a88405a7900da49c179ea72198b12a90ba3488c33d80cb4779d35171da5a69e16462e76e5bed7953f2834cf68f44fa9a3dfca636fdb32ffec029fcce25f9dc24f5ea27f0f921",cividis:"00205100235800265d002961012b65042e670831690d346b11366c16396d1c3c6e213f6e26426e2c456e31476e374a6e3c4d6e42506e47536d4c566d51586e555b6e5a5e6e5e616e62646f66676f6a6a706e6d717270717573727976737c79747f7c75827f758682768985778c8877908b78938e789691789a94789e9778a19b78a59e77a9a177aea575b2a874b6ab73bbaf71c0b26fc5b66dc9b96acebd68d3c065d8c462ddc85fe2cb5ce7cf58ebd355f0d652f3da4ff7de4cfae249fce647",rainbow:"6e40aa883eb1a43db3bf3cafd83fa4ee4395fe4b83ff576eff6659ff7847ff8c38f3a130e2b72fcfcc36bee044aff05b8ff4576ff65b52f6673af27828ea8d1ddfa319d0b81cbecb23abd82f96e03d82e14c6edb5a5dd0664dbf6e40aa",sinebow:"ff4040fc582af47218e78d0bd5a703bfbf00a7d5038de70b72f41858fc2a40ff402afc5818f4720be78d03d5a700bfbf03a7d50b8de71872f42a58fc4040ff582afc7218f48d0be7a703d5bf00bfd503a7e70b8df41872fc2a58ff4040",turbo:"23171b32204a3e2a71453493493eae4b49c54a53d7485ee44569ee4074f53c7ff8378af93295f72e9ff42ba9ef28b3e926bce125c5d925cdcf27d5c629dcbc2de3b232e9a738ee9d3ff39347f68950f9805afc7765fd6e70fe667cfd5e88fc5795fb51a1f84badf545b9f140c5ec3cd0e637dae034e4d931ecd12ef4c92bfac029ffb626ffad24ffa223ff9821ff8d1fff821dff771cfd6c1af76118f05616e84b14df4111d5380fcb2f0dc0260ab61f07ac1805a313029b0f00950c00910b00",browns:"eedbbdecca96e9b97ae4a865dc9856d18954c7784cc0673fb85536ad44339f3632",tealBlues:"bce4d89dd3d181c3cb65b3c245a2b9368fae347da0306a932c5985",teals:"bbdfdfa2d4d58ac9c975bcbb61b0af4da5a43799982b8b8c1e7f7f127273006667",warmGreys:"dcd4d0cec5c1c0b8b4b3aaa7a59c9998908c8b827f7e7673726866665c5a59504e",goldGreen:"f4d166d5ca60b6c35c98bb597cb25760a6564b9c533f8f4f33834a257740146c36",goldOrange:"f4d166f8be5cf8aa4cf5983bf3852aef701be2621fd65322c54923b142239e3a26",goldRed:"f4d166f6be59f9aa51fc964ef6834bee734ae56249db5247cf4244c43141b71d3e",lightGreyRed:"efe9e6e1dad7d5cbc8c8bdb9bbaea9cd967ddc7b43e15f19df4011dc000b",lightGreyTeal:"e4eaead6dcddc8ced2b7c2c7a6b4bc64b0bf22a6c32295c11f85be1876bc",lightMulti:"e0f1f2c4e9d0b0de9fd0e181f6e072f6c053f3993ef77440ef4a3c",lightOrange:"f2e7daf7d5baf9c499fab184fa9c73f68967ef7860e8645bde515bd43d5b",lightTealBlue:"e3e9e0c0dccf9aceca7abfc859afc0389fb9328dad2f7ca0276b95255988",darkBlue:"3232322d46681a5c930074af008cbf05a7ce25c0dd38daed50f3faffffff",darkGold:"3c3c3c584b37725e348c7631ae8b2bcfa424ecc31ef9de30fff184ffffff",darkGreen:"3a3a3a215748006f4d048942489e4276b340a6c63dd2d836ffeb2cffffaa",darkMulti:"3737371f5287197d8c29a86995ce3fffe800ffffff",darkRed:"3434347036339e3c38cc4037e75d1eec8620eeab29f0ce32ffeb2c"},w8={category10:"1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf",category20:"1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5",category20b:"393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6",category20c:"3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9",tableau10:"4c78a8f58518e4575672b7b254a24beeca3bb279a2ff9da69d755dbab0ac",tableau20:"4c78a89ecae9f58518ffbf7954a24b88d27ab79a20f2cf5b43989483bcb6e45756ff9d9879706ebab0acd67195fcbfd2b279a2d6a5c99e765fd8b5a5",accent:"7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666",dark2:"1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666",paired:"a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928",pastel1:"fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2",pastel2:"b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc",set1:"e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999",set2:"66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3",set3:"8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f"};function Sb(e){const t=e.length/6|0,n=new Array(t);for(let r=0;r<t;)n[r]="#"+e.slice(r*6,++r*6);return n}function Cb(e,t){for(const n in e)ad(n,t(e[n]))}const Tb={};Cb(w8,Sb),Cb(y8,e=>Uf(Sb(e)));function ad(e,t){return e=e&&e.toLowerCase(),arguments.length>1?(Tb[e]=t,this):Tb[e]}function v8(){let e=0;const t=new Map,n=r=>{let i=t.get(r);return i===void 0&&(i=e++,t.set(r,i)),i};return n.addAll=r=>{for(const i of r)n(i)},n.invert=r=>{for(const i of t.entries())if(i[1]==r)return i[0]},n.domain=()=>[...t.keys()],n}function Gf(){const e=t=>t;return e.invert=t=>t,e.copy=Gf,e.invertRange=()=>{},e.type="null",e}function x8(e,t){const n={};t||(t=e.encoding);for(const[r,i]of Object.entries(t)){if(!i)continue;const a=((Lt(i)&&i.resolutionChannel)??(Ni(r)&&r))||void 0,o=e.unitView.getScaleResolution(a);n[r]=A8(t[r],o==null?void 0:o.getScale(),e.unitView.getAccessor(r),r)}return n}function A8(e,t,n,r){let i;if(xn(e)){const a=e.value;i=o=>a,i.constant=!0,i.constantValue=!0,i.accessor=void 0}else if(n)if(r=="text")i=a=>{},i.accessor=n,i.constant=n.constant;else{if(!t)if(!Ni(r))t=Gf();else throw new Error(`Missing scale! "${r}": ${JSON.stringify(e)}`);if(i=a=>t(n(a)),Mr(t.type)){const a=v8();a.addAll(t.domain()),i.indexer=a}i.constant=n.constant,i.accessor=n,i.scale=t}else throw new Error(`Missing value or accessor (field, expr, datum) on channel "${r}": ${JSON.stringify(e)}`);return i.invert=t?a=>t.invert(a):a=>{throw new Error("No scale available, cannot invert: "+JSON.stringify(e))},i.channelDef=e,i.applyMetadata=a=>{for(const o in i)o in i&&(a[o]=i[o]);return a},i}function xn(e){return e&&"value"in e}function vs(e){return e&&"field"in e}function xs(e){return e&&"datum"in e}function Lt(e){return vs(e)||xs(e)||sd(e)||Ib(e)}function od(e,t){const n=e.mark.encoding[t];if(Lt(n))return n;throw new Error("Not a channel def with scale!")}function Ib(e){return e&&"chrom"in e}function sd(e){return e&&"expr"in e}const Ba=["x","y"],E8=["x2","y2"],_8=[...Ba,...E8];function kb(e){return Ba.includes(e)}function As(e){return _8.includes(e)}const ld={x:"x2",y:"y2"},Bb=Object.fromEntries(Object.entries(ld).map(e=>[e[1],e[0]]));function Es(e){return e in Bb}function S8(e){const t=ld[e];if(t)return t;throw new Error(`${e} has no secondary channel!`)}function Pi(e){return Bb[e]??e}function Mi(e){return["color","fill","stroke"].includes(Pi(e))}function Hf(e){return["shape","squeeze"].includes(e)}function Ni(e){return["x","y","x2","y2","color","fill","stroke","opacity","fillOpacity","strokeOpacity","strokeWidth","size","shape","angle","dx","dy","sample"].includes(e)}function C8(e){switch(e){case"shape":return["circle","square","cross","diamond","triangle-up","triangle-right","triangle-down","triangle-left","tick-up","tick-right","tick-down","tick-left"]}}function Db(e){if(!Hf(e))throw new Error("Not a discrete channel: "+e);const t=new Map(C8(e).map((n,r)=>[n,r]));return n=>{const r=t.get(n);if(r!==void 0)return r;throw new Error(`Invalid value for "${e}" channel: ${n}`)}}function Re(e,t=e){if(/^[A-Za-z0-9_]+$/.test(e)){const n=new Function("datum",`return datum[${JSON.stringify(e)}]`);return Ce(n,[e],t)}else return Zl(e)}class T8{constructor(){this.accessorCreators=[],this.register(t=>{if(vs(t))try{const n=Re(t.field);return n.constant=!1,n.fields=ql(n),n}catch(n){throw new Error(`Invalid field definition: ${n.message}`)}}),this.register(t=>sd(t)?I8(t.expr):void 0),this.register(t=>{if(xs(t)){const r=i_(t.datum);return r.constant=!0,r.fields=[],r}})}register(t){this.accessorCreators.push(t)}createAccessor(t){for(const n of this.accessorCreators){const r=n(t);if(r)return r}}}function I8(e){const t=xh(e);return t.constant=t.fields.length==0,t}/* @license twgl.js 4.22.0 Copyright (c) 2015, Gregg Tavares All Rights Reserved.
128
126
  Available via the MIT license.
129
- see: http://github.com/greggman/twgl.js for details */const Cd=5120,Qs=5121,Dd=5122,Id=5123,Md=5124,Td=5125,Nd=5126,pM=32819,mM=32820,bM=33635,yM=5131,wM=33640,xM=35899,vM=35902,AM=36269,EM=34042,ty={};{const t=ty;t[Cd]=Int8Array,t[Qs]=Uint8Array,t[Dd]=Int16Array,t[Id]=Uint16Array,t[Md]=Int32Array,t[Td]=Uint32Array,t[Nd]=Float32Array,t[pM]=Uint16Array,t[mM]=Uint16Array,t[bM]=Uint16Array,t[yM]=Uint16Array,t[wM]=Uint32Array,t[xM]=Uint32Array,t[vM]=Uint32Array,t[AM]=Uint32Array,t[EM]=Uint32Array}function Fd(t){if(t instanceof Int8Array)return Cd;if(t instanceof Uint8Array||t instanceof Uint8ClampedArray)return Qs;if(t instanceof Int16Array)return Dd;if(t instanceof Uint16Array)return Id;if(t instanceof Int32Array)return Md;if(t instanceof Uint32Array)return Td;if(t instanceof Float32Array)return Nd;throw new Error("unsupported typed array type")}function SM(t){if(t===Int8Array)return Cd;if(t===Uint8Array||t===Uint8ClampedArray)return Qs;if(t===Int16Array)return Dd;if(t===Uint16Array)return Id;if(t===Int32Array)return Md;if(t===Uint32Array)return Td;if(t===Float32Array)return Nd;throw new Error("unsupported typed array type")}function _M(t){const e=ty[t];if(!e)throw new Error("unknown gl type");return e}const sl=typeof SharedArrayBuffer<"u"?function(e){return e&&e.buffer&&(e.buffer instanceof ArrayBuffer||e.buffer instanceof SharedArrayBuffer)}:function(e){return e&&e.buffer&&e.buffer instanceof ArrayBuffer};function CM(...t){console.error(...t)}function ny(...t){console.warn(...t)}function DM(t,e){return typeof WebGLBuffer<"u"&&e instanceof WebGLBuffer}function ry(t,e){return typeof WebGLRenderbuffer<"u"&&e instanceof WebGLRenderbuffer}function ul(t,e){return typeof WebGLTexture<"u"&&e instanceof WebGLTexture}function IM(t,e){return typeof WebGLSampler<"u"&&e instanceof WebGLSampler}const iy=35044,Kn=34962,MM=34963,TM=34660,NM=5120,FM=5121,kM=5122,BM=5123,LM=5124,RM=5125,OM=5126,ay={attribPrefix:""};function oy(t,e,n,r,i){t.bindBuffer(e,n),t.bufferData(e,r,i||iy)}function sy(t,e,n,r){if(DM(t,e))return e;n=n||Kn;const i=t.createBuffer();return oy(t,n,i,e,r),i}function uy(t){return t==="indices"}function zM(t){return t instanceof Int8Array||t instanceof Uint8Array}function PM(t){return t===Int8Array||t===Uint8Array}function UM(t){return t.length?t:t.data}const jM=/coord|texture/i,GM=/color|colour/i;function fy(t,e){let n;if(jM.test(t)?n=2:GM.test(t)?n=4:n=3,e%n>0)throw new Error(`Can not guess numComponents for attribute '${t}'. Tried ${n} but ${e} values is not evenly divisible by ${n}. You should specify it.`);return n}function HM(t,e){return t.numComponents||t.size||fy(e,UM(t).length)}function kd(t,e){if(sl(t))return t;if(sl(t.data))return t.data;Array.isArray(t)&&(t={data:t});let n=t.type;return n||(uy(e)?n=Uint16Array:n=Float32Array),new n(t.data)}function QM(t,e){const n={};return Object.keys(e).forEach(function(r){if(!uy(r)){const i=e[r],a=i.attrib||i.name||i.attribName||ay.attribPrefix+r;if(i.value){if(!Array.isArray(i.value)&&!sl(i.value))throw new Error("array.value is not array or typedarray");n[a]={value:i.value}}else{let o,s,f,u;if(i.buffer&&i.buffer instanceof WebGLBuffer)o=i.buffer,u=i.numComponents||i.size,s=i.type,f=i.normalize;else if(typeof i=="number"||typeof i.data=="number"){const l=i.data||i,c=i.type||Float32Array,h=l*c.BYTES_PER_ELEMENT;s=SM(c),f=i.normalize!==void 0?i.normalize:PM(c),u=i.numComponents||i.size||fy(r,l),o=t.createBuffer(),t.bindBuffer(Kn,o),t.bufferData(Kn,h,i.drawType||iy)}else{const l=kd(i,r);o=sy(t,l,void 0,i.drawType),s=Fd(l),f=i.normalize!==void 0?i.normalize:zM(l),u=HM(i,r)}n[a]={buffer:o,numComponents:u,type:s,normalize:f,stride:i.stride||0,offset:i.offset||0,divisor:i.divisor===void 0?void 0:i.divisor,drawType:i.drawType}}}}),t.bindBuffer(Kn,null),n}function VM(t,e,n,r){n=kd(n),r!==void 0?(t.bindBuffer(Kn,e.buffer),t.bufferSubData(Kn,r,n)):oy(t,Kn,e.buffer,n,e.drawType)}function qM(t,e){return e===NM||e===FM?1:e===kM||e===BM?2:e===LM||e===RM||e===OM?4:0}const Bd=["position","positions","a_position"];function ZM(t,e){let n,r;for(r=0;r<Bd.length&&(n=Bd[r],!(n in e||(n=ay.attribPrefix+n,n in e)));++r);r===Bd.length&&(n=Object.keys(e)[0]);const i=e[n];t.bindBuffer(Kn,i.buffer);const a=t.getBufferParameter(Kn,TM);t.bindBuffer(Kn,null);const o=qM(t,i.type),s=a/o,f=i.numComponents||i.size,u=s/f;if(u%1!==0)throw new Error(`numComponents ${f} not correct for length ${length}`);return u}function YM(t,e,n){const r=QM(t,e),i=Object.assign({},n||{});i.attribs=Object.assign({},n?n.attribs:{},r);const a=e.indices;if(a){const o=kd(a,"indices");i.indices=sy(t,o,MM),i.numElements=o.length,i.elementType=Fd(o)}else i.numElements||(i.numElements=ZM(t,i.attribs));return i}function Wa(t){return!!t.texStorage2D}const Ld=function(){const t={},e={};function n(r){const i=r.constructor.name;if(!t[i]){for(const a in r)if(typeof r[a]=="number"){const o=e[r[a]];e[r[a]]=o?`${o} | ${a}`:a}t[i]=!0}}return function(i,a){return n(i),e[a]||(typeof a=="number"?`0x${a.toString(16)}`:a)}}(),ei={textureColor:new Uint8Array([128,192,255,255]),textureOptions:{},crossOrigin:void 0},Xa=sl,ly=function(){let t;return function(){return t=t||(typeof document<"u"&&document.createElement?document.createElement("canvas").getContext("2d"):null),t}}(),cy=6406,Jn=6407,Qe=6408,hy=6409,dy=6410,Vs=6402,gy=34041,fl=33071,WM=9728,XM=9729,Er=3553,Sr=34067,ti=32879,ni=35866,ll=34069,$M=34070,KM=34071,JM=34072,e8=34073,t8=34074,Rd=10241,Od=10240,cl=10242,hl=10243,py=32882,n8=33082,r8=33083,i8=33084,a8=33085,zd=3317,my=3314,by=32878,yy=3316,wy=3315,xy=32877,o8=37443,s8=37441,u8=37440,f8=33321,l8=36756,c8=33325,h8=33326,d8=33330,g8=33329,p8=33338,m8=33337,b8=33340,y8=33339,w8=33323,x8=36757,v8=33327,A8=33328,E8=33336,S8=33335,_8=33332,C8=33331,D8=33334,I8=33333,M8=32849,T8=35905,N8=36194,F8=36758,k8=35898,B8=35901,L8=34843,R8=34837,O8=36221,z8=36239,P8=36215,U8=36233,j8=36209,G8=36227,H8=32856,Q8=35907,V8=36759,q8=32855,Z8=32854,Y8=32857,W8=34842,X8=34836,$8=36220,K8=36238,J8=36975,eT=36214,tT=36232,nT=36226,rT=36208,iT=33189,aT=33190,oT=36012,sT=36013,uT=35056,ri=5120,Ve=5121,dl=5122,$a=5123,gl=5124,Ki=5125,St=5126,vy=32819,Ay=32820,Ey=33635,kn=5131,qs=36193,Pd=33640,fT=35899,lT=35902,cT=36269,hT=34042,pl=33319,Ka=33320,ml=6403,Ja=36244,eo=36248,Ji=36249;let Ud;function bl(t){if(!Ud){const e={};e[cy]={textureFormat:cy,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[Ve,kn,qs,St]},e[hy]={textureFormat:hy,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[Ve,kn,qs,St]},e[dy]={textureFormat:dy,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2,4,4,8],type:[Ve,kn,qs,St]},e[Jn]={textureFormat:Jn,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,6,6,12,2],type:[Ve,kn,qs,St,Ey]},e[Qe]={textureFormat:Qe,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,8,8,16,2,2],type:[Ve,kn,qs,St,vy,Ay]},e[Vs]={textureFormat:Vs,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[Ki,$a]},e[f8]={textureFormat:ml,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1],type:[Ve]},e[l8]={textureFormat:ml,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[1],type:[ri]},e[c8]={textureFormat:ml,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4,2],type:[St,kn]},e[h8]={textureFormat:ml,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[4],type:[St]},e[d8]={textureFormat:Ja,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[Ve]},e[g8]={textureFormat:Ja,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[ri]},e[_8]={textureFormat:Ja,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[$a]},e[C8]={textureFormat:Ja,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[dl]},e[D8]={textureFormat:Ja,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ki]},e[I8]={textureFormat:Ja,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[gl]},e[w8]={textureFormat:pl,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2],type:[Ve]},e[x8]={textureFormat:pl,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[2],type:[ri]},e[v8]={textureFormat:pl,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[8,4],type:[St,kn]},e[A8]={textureFormat:pl,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[8],type:[St]},e[E8]={textureFormat:Ka,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Ve]},e[S8]={textureFormat:Ka,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[ri]},e[p8]={textureFormat:Ka,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[$a]},e[m8]={textureFormat:Ka,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[dl]},e[b8]={textureFormat:Ka,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Ki]},e[y8]={textureFormat:Ka,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[gl]},e[M8]={textureFormat:Jn,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3],type:[Ve]},e[T8]={textureFormat:Jn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[Ve]},e[N8]={textureFormat:Jn,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,2],type:[Ve,Ey]},e[F8]={textureFormat:Jn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[ri]},e[k8]={textureFormat:Jn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[St,kn,fT]},e[B8]={textureFormat:Jn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[St,kn,lT]},e[L8]={textureFormat:Jn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6],type:[St,kn]},e[R8]={textureFormat:Jn,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[St]},e[O8]={textureFormat:eo,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[Ve]},e[z8]={textureFormat:eo,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[ri]},e[P8]={textureFormat:eo,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[$a]},e[U8]={textureFormat:eo,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[dl]},e[j8]={textureFormat:eo,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[Ki]},e[G8]={textureFormat:eo,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[gl]},e[H8]={textureFormat:Qe,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[Ve]},e[Q8]={textureFormat:Qe,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[Ve]},e[V8]={textureFormat:Qe,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4],type:[ri]},e[q8]={textureFormat:Qe,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2,4],type:[Ve,Ay,Pd]},e[Z8]={textureFormat:Qe,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2],type:[Ve,vy]},e[Y8]={textureFormat:Qe,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[Pd]},e[W8]={textureFormat:Qe,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[16,8],type:[St,kn]},e[X8]={textureFormat:Qe,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[16],type:[St]},e[$8]={textureFormat:Ji,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ve]},e[K8]={textureFormat:Ji,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[ri]},e[J8]={textureFormat:Ji,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Pd]},e[eT]={textureFormat:Ji,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[$a]},e[tT]={textureFormat:Ji,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[dl]},e[nT]={textureFormat:Ji,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[gl]},e[rT]={textureFormat:Ji,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[Ki]},e[iT]={textureFormat:Vs,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[$a,Ki]},e[aT]={textureFormat:Vs,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ki]},e[oT]={textureFormat:Vs,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[St]},e[uT]={textureFormat:gy,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[hT]},e[sT]={textureFormat:gy,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[cT]},Object.keys(e).forEach(function(n){const r=e[n];r.bytesPerElementMap={},r.bytesPerElement.forEach(function(i,a){const o=r.type[a];r.bytesPerElementMap[o]=i})}),Ud=e}return Ud[t]}function dT(t,e){const n=bl(t);if(!n)throw"unknown internal format";const r=n.bytesPerElementMap[e];if(r===void 0)throw"unknown internal format";return r}function to(t){const e=bl(t);if(!e)throw"unknown internal format";return{format:e.textureFormat,type:e.type[0]}}function Sy(t){return(t&t-1)===0}function gT(t,e,n,r){if(!Wa(t))return Sy(e)&&Sy(n);const i=bl(r);if(!i)throw"unknown internal format";return i.colorRenderable&&i.textureFilterable}function pT(t){const e=bl(t);if(!e)throw"unknown internal format";return e.textureFilterable}function _y(t,e,n){return Xa(e)?Fd(e):n||Ve}function yl(t,e,n,r,i){if(i%1!==0)throw"can't guess dimensions";if(!n&&!r){const a=Math.sqrt(i/(e===Sr?6:1));a%1===0?(n=a,r=a):(n=i,r=1)}else if(r){if(!n&&(n=i/r,n%1))throw"can't guess dimensions"}else if(r=i/n,r%1)throw"can't guess dimensions";return{width:n,height:r}}function no(t,e){e.colorspaceConversion!==void 0&&t.pixelStorei(o8,e.colorspaceConversion),e.premultiplyAlpha!==void 0&&t.pixelStorei(s8,e.premultiplyAlpha),e.flipY!==void 0&&t.pixelStorei(u8,e.flipY)}function Cy(t){t.pixelStorei(zd,4),Wa(t)&&(t.pixelStorei(my,0),t.pixelStorei(by,0),t.pixelStorei(yy,0),t.pixelStorei(wy,0),t.pixelStorei(xy,0))}function mT(t,e,n,r){r.minMag&&(n.call(t,e,Rd,r.minMag),n.call(t,e,Od,r.minMag)),r.min&&n.call(t,e,Rd,r.min),r.mag&&n.call(t,e,Od,r.mag),r.wrap&&(n.call(t,e,cl,r.wrap),n.call(t,e,hl,r.wrap),(e===ti||IM(t,e))&&n.call(t,e,py,r.wrap)),r.wrapR&&n.call(t,e,py,r.wrapR),r.wrapS&&n.call(t,e,cl,r.wrapS),r.wrapT&&n.call(t,e,hl,r.wrapT),r.minLod&&n.call(t,e,n8,r.minLod),r.maxLod&&n.call(t,e,r8,r.maxLod),r.baseLevel&&n.call(t,e,i8,r.baseLevel),r.maxLevel&&n.call(t,e,a8,r.maxLevel)}function Dy(t,e,n){const r=n.target||Er;t.bindTexture(r,e),mT(t,r,t.texParameteri,n)}function bT(t){return t=t||ei.textureColor,Xa(t)?t:new Uint8Array([t[0]*255,t[1]*255,t[2]*255,t[3]*255])}function jd(t,e,n,r,i,a){n=n||ei.textureOptions,a=a||Qe;const o=n.target||Er;if(r=r||n.width,i=i||n.height,t.bindTexture(o,e),gT(t,r,i,a))t.generateMipmap(o);else{const s=pT(a)?XM:WM;t.texParameteri(o,Rd,s),t.texParameteri(o,Od,s),t.texParameteri(o,cl,fl),t.texParameteri(o,hl,fl)}}function Zs(t){return t.auto===!0||t.auto===void 0&&t.level===void 0}function Gd(t,e){return e=e||{},e.cubeFaceOrder||[ll,$M,KM,JM,e8,t8]}function Hd(t,e){const r=Gd(t,e).map(function(i,a){return{face:i,ndx:a}});return r.sort(function(i,a){return i.face-a.face}),r}function Iy(t,e,n,r){r=r||ei.textureOptions;const i=r.target||Er,a=r.level||0;let o=n.width,s=n.height;const f=r.internalFormat||r.format||Qe,u=to(f),l=r.format||u.format,c=r.type||u.type;if(no(t,r),t.bindTexture(i,e),i===Sr){const h=n.width,d=n.height;let g,b;if(h/6===d)g=d,b=[0,0,1,0,2,0,3,0,4,0,5,0];else if(d/6===h)g=h,b=[0,0,0,1,0,2,0,3,0,4,0,5];else if(h/3===d/2)g=h/3,b=[0,0,1,0,2,0,0,1,1,1,2,1];else if(h/2===d/3)g=h/2,b=[0,0,1,0,0,1,1,1,0,2,1,2];else throw"can't figure out cube map from element: "+(n.src?n.src:n.nodeName);const y=ly();y?(y.canvas.width=g,y.canvas.height=g,o=g,s=g,Hd(t,r).forEach(function(w){const E=b[w.ndx*2+0]*g,_=b[w.ndx*2+1]*g;y.drawImage(n,E,_,g,g,0,0,g,g),t.texImage2D(w.face,a,f,l,c,y.canvas)}),y.canvas.width=1,y.canvas.height=1):typeof createImageBitmap<"u"&&(o=g,s=g,Hd(t,r).forEach(function(w){const E=b[w.ndx*2+0]*g,_=b[w.ndx*2+1]*g;t.texImage2D(w.face,a,f,g,g,0,l,c,null),createImageBitmap(n,E,_,g,g,{premultiplyAlpha:"none",colorSpaceConversion:"none"}).then(function(D){no(t,r),t.bindTexture(i,e),t.texImage2D(w.face,a,f,l,c,D),Zs(r)&&jd(t,e,r,o,s,f)})}))}else if(i===ti||i===ni){const h=Math.min(n.width,n.height),d=Math.max(n.width,n.height),g=d/h;if(g%1!==0)throw"can not compute 3D dimensions of element";const b=n.width===d?1:0,y=n.height===d?1:0;t.pixelStorei(zd,1),t.pixelStorei(my,n.width),t.pixelStorei(by,0),t.pixelStorei(xy,0),t.texImage3D(i,a,f,h,h,h,0,l,c,null);for(let w=0;w<g;++w){const E=w*h*b,_=w*h*y;t.pixelStorei(yy,E),t.pixelStorei(wy,_),t.texSubImage3D(i,a,0,0,w,h,h,1,l,c,n)}Cy(t)}else t.texImage2D(i,a,f,l,c,n);Zs(r)&&jd(t,e,r,o,s,f),Dy(t,e,r)}function Ys(){}function yT(t){if(typeof document<"u"){const e=document.createElement("a");return e.href=t,e.hostname===location.hostname&&e.port===location.port&&e.protocol===location.protocol}else{const e=new URL(location.href).origin;return new URL(t,location.href).origin===e}}function wT(t,e){return e===void 0&&!yT(t)?"anonymous":e}function xT(t,e,n){n=n||Ys;let r;if(e=e!==void 0?e:ei.crossOrigin,e=wT(t,e),typeof Image<"u"){r=new Image,e!==void 0&&(r.crossOrigin=e);const i=function(){r.removeEventListener("error",a),r.removeEventListener("load",o),r=null},a=function(){const f="couldn't load image: "+t;CM(f),n(f,r),i()},o=function(){n(null,r),i()};return r.addEventListener("error",a),r.addEventListener("load",o),r.src=t,r}else if(typeof ImageBitmap<"u"){let i,a;const o=function(){n(i,a)},s={};e&&(s.mode="cors"),fetch(t,s).then(function(f){if(!f.ok)throw f;return f.blob()}).then(function(f){return createImageBitmap(f,{premultiplyAlpha:"none",colorSpaceConversion:"none"})}).then(function(f){a=f,setTimeout(o)}).catch(function(f){i=f,setTimeout(o)}),r=null}return r}function My(t){return typeof ImageBitmap<"u"&&t instanceof ImageBitmap||typeof ImageData<"u"&&t instanceof ImageData||typeof HTMLElement<"u"&&t instanceof HTMLElement}function Qd(t,e,n){return My(t)?(setTimeout(function(){n(null,t)}),t):xT(t,e,n)}function Vd(t,e,n){n=n||ei.textureOptions;const r=n.target||Er;if(t.bindTexture(r,e),n.color===!1)return;const i=bT(n.color);if(r===Sr)for(let a=0;a<6;++a)t.texImage2D(ll+a,0,Qe,1,1,0,Qe,Ve,i);else r===ti||r===ni?t.texImage3D(r,0,Qe,1,1,1,0,Qe,Ve,i):t.texImage2D(r,0,Qe,1,1,0,Qe,Ve,i)}function vT(t,e,n,r){return r=r||Ys,n=n||ei.textureOptions,Vd(t,e,n),n=Object.assign({},n),Qd(n.src,n.crossOrigin,function(a,o){a?r(a,e,o):(Iy(t,e,o,n),r(null,e,o))})}function AT(t,e,n,r){r=r||Ys;const i=n.src;if(i.length!==6)throw"there must be 6 urls for a cubemap";const a=n.level||0,o=n.internalFormat||n.format||Qe,s=to(o),f=n.format||s.format,u=n.type||Ve,l=n.target||Er;if(l!==Sr)throw"target must be TEXTURE_CUBE_MAP";Vd(t,e,n),n=Object.assign({},n);let c=6;const h=[],d=Gd(t,n);let g;function b(y){return function(w,E){--c,w?h.push(w):E.width!==E.height?h.push("cubemap face img is not a square: "+E.src):(no(t,n),t.bindTexture(l,e),c===5?Gd().forEach(function(_){t.texImage2D(_,a,o,f,u,E)}):t.texImage2D(y,a,o,f,u,E),Zs(n)&&t.generateMipmap(l)),c===0&&r(h.length?h:void 0,e,g)}}g=i.map(function(y,w){return Qd(y,n.crossOrigin,b(d[w]))})}function ET(t,e,n,r){r=r||Ys;const i=n.src,a=n.internalFormat||n.format||Qe,o=to(a),s=n.format||o.format,f=n.type||Ve,u=n.target||ni;if(u!==ti&&u!==ni)throw"target must be TEXTURE_3D or TEXTURE_2D_ARRAY";Vd(t,e,n),n=Object.assign({},n);let l=i.length;const c=[];let h;const d=n.level||0;let g=n.width,b=n.height;const y=i.length;let w=!0;function E(_){return function(D,T){if(--l,D)c.push(D);else{if(no(t,n),t.bindTexture(u,e),w){w=!1,g=n.width||T.width,b=n.height||T.height,t.texImage3D(u,d,a,g,b,y,0,s,f,null);for(let N=0;N<y;++N)t.texSubImage3D(u,d,0,0,N,g,b,1,s,f,T)}else{let N=T,M;(T.width!==g||T.height!==b)&&(M=ly(),N=M.canvas,M.canvas.width=g,M.canvas.height=b,M.drawImage(T,0,0,g,b)),t.texSubImage3D(u,d,0,0,_,g,b,1,s,f,N),M&&N===M.canvas&&(M.canvas.width=0,M.canvas.height=0)}Zs(n)&&t.generateMipmap(u)}l===0&&r(c.length?c:void 0,e,h)}}h=i.map(function(_,D){return Qd(_,n.crossOrigin,E(D))})}function Ty(t,e,n,r){r=r||ei.textureOptions;const i=r.target||Er;t.bindTexture(i,e);let a=r.width,o=r.height,s=r.depth;const f=r.level||0,u=r.internalFormat||r.format||Qe,l=to(u),c=r.format||l.format,h=r.type||_y(t,n,l.type);if(Xa(n))n instanceof Uint8ClampedArray&&(n=new Uint8Array(n.buffer));else{const y=_M(h);n=new y(n)}const d=dT(u,h),g=n.byteLength/d;if(g%1)throw"length wrong size for format: "+Ld(t,c);let b;if(i===ti||i===ni)if(!a&&!o&&!s){const y=Math.cbrt(g);if(y%1!==0)throw"can't guess cube size of array of numElements: "+g;a=y,o=y,s=y}else a&&(!o||!s)?(b=yl(t,i,o,s,g/a),o=b.width,s=b.height):o&&(!a||!s)?(b=yl(t,i,a,s,g/o),a=b.width,s=b.height):(b=yl(t,i,a,o,g/s),a=b.width,o=b.height);else b=yl(t,i,a,o,g),a=b.width,o=b.height;if(Cy(t),t.pixelStorei(zd,r.unpackAlignment||1),no(t,r),i===Sr){const y=d/n.BYTES_PER_ELEMENT,w=g/6*y;Hd(t,r).forEach(E=>{const _=w*E.ndx,D=n.subarray(_,_+w);t.texImage2D(E.face,f,u,a,o,0,c,h,D)})}else i===ti||i===ni?t.texImage3D(i,f,u,a,o,s,0,c,h,n):t.texImage2D(i,f,u,a,o,0,c,h,n);return{width:a,height:o,depth:s,type:h}}function ST(t,e,n){const r=n.target||Er;t.bindTexture(r,e);const i=n.level||0,a=n.internalFormat||n.format||Qe,o=to(a),s=n.format||o.format,f=n.type||o.type;if(no(t,n),r===Sr)for(let u=0;u<6;++u)t.texImage2D(ll+u,i,a,n.width,n.height,0,s,f,null);else r===ti||r===ni?t.texImage3D(r,i,a,n.width,n.height,n.depth,0,s,f,null):t.texImage2D(r,i,a,n.width,n.height,0,s,f,null)}function Ws(t,e,n){n=n||Ys,e=e||ei.textureOptions;const r=t.createTexture(),i=e.target||Er;let a=e.width||1,o=e.height||1;const s=e.internalFormat||Qe;t.bindTexture(i,r),i===Sr&&(t.texParameteri(i,cl,fl),t.texParameteri(i,hl,fl));let f=e.src;if(f)if(typeof f=="function"&&(f=f(t,e)),typeof f=="string")vT(t,r,e,n);else if(Xa(f)||Array.isArray(f)&&(typeof f[0]=="number"||Array.isArray(f[0])||Xa(f[0]))){const u=Ty(t,r,f,e);a=u.width,o=u.height}else Array.isArray(f)&&(typeof f[0]=="string"||My(f[0]))?i===Sr?AT(t,r,e,n):ET(t,r,e,n):(Iy(t,r,f,e),a=f.width,o=f.height);else ST(t,r,e);return Zs(e)&&jd(t,r,e,a,o,s),Dy(t,r,e),r}function _T(t,e,n,r,i,a){r=r||n.width,i=i||n.height,a=a||n.depth;const o=n.target||Er;t.bindTexture(o,e);const s=n.level||0,f=n.internalFormat||n.format||Qe,u=to(f),l=n.format||u.format;let c;const h=n.src;if(h&&(Xa(h)||Array.isArray(h)&&typeof h[0]=="number")?c=n.type||_y(t,h,u.type):c=n.type||u.type,o===Sr)for(let d=0;d<6;++d)t.texImage2D(ll+d,s,f,r,i,0,l,c,null);else o===ti||o===ni?t.texImage3D(o,s,f,r,i,a,0,l,c,null):t.texImage2D(o,s,f,r,i,0,l,c,null)}const CT=ny,wl=33984,DT=35048,xl=34962,IT=34963,qd=35345,Ny=35718,MT=35721,TT=35971,NT=35382,FT=35396,kT=35398,BT=35392,LT=35395,vl=5126,Fy=35664,ky=35665,By=35666,Zd=5124,Ly=35667,Ry=35668,Oy=35669,zy=35670,Py=35671,Uy=35672,jy=35673,Gy=35674,Hy=35675,Qy=35676,RT=35678,OT=35680,zT=35679,PT=35682,UT=35685,jT=35686,GT=35687,HT=35688,QT=35689,VT=35690,qT=36289,ZT=36292,YT=36293,Yd=5125,Vy=36294,qy=36295,Zy=36296,WT=36298,XT=36299,$T=36300,KT=36303,JT=36306,e6=36307,t6=36308,n6=36311,Al=3553,El=34067,Wd=32879,Sl=35866,ue={};function Yy(t,e){return ue[e].bindPoint}function r6(t,e){return function(n){t.uniform1f(e,n)}}function i6(t,e){return function(n){t.uniform1fv(e,n)}}function a6(t,e){return function(n){t.uniform2fv(e,n)}}function o6(t,e){return function(n){t.uniform3fv(e,n)}}function s6(t,e){return function(n){t.uniform4fv(e,n)}}function Wy(t,e){return function(n){t.uniform1i(e,n)}}function Xy(t,e){return function(n){t.uniform1iv(e,n)}}function $y(t,e){return function(n){t.uniform2iv(e,n)}}function Ky(t,e){return function(n){t.uniform3iv(e,n)}}function Jy(t,e){return function(n){t.uniform4iv(e,n)}}function u6(t,e){return function(n){t.uniform1ui(e,n)}}function f6(t,e){return function(n){t.uniform1uiv(e,n)}}function l6(t,e){return function(n){t.uniform2uiv(e,n)}}function c6(t,e){return function(n){t.uniform3uiv(e,n)}}function h6(t,e){return function(n){t.uniform4uiv(e,n)}}function d6(t,e){return function(n){t.uniformMatrix2fv(e,!1,n)}}function g6(t,e){return function(n){t.uniformMatrix3fv(e,!1,n)}}function p6(t,e){return function(n){t.uniformMatrix4fv(e,!1,n)}}function m6(t,e){return function(n){t.uniformMatrix2x3fv(e,!1,n)}}function b6(t,e){return function(n){t.uniformMatrix3x2fv(e,!1,n)}}function y6(t,e){return function(n){t.uniformMatrix2x4fv(e,!1,n)}}function w6(t,e){return function(n){t.uniformMatrix4x2fv(e,!1,n)}}function x6(t,e){return function(n){t.uniformMatrix3x4fv(e,!1,n)}}function v6(t,e){return function(n){t.uniformMatrix4x3fv(e,!1,n)}}function It(t,e,n,r){const i=Yy(t,e);return Wa(t)?function(a){let o,s;ul(t,a)?(o=a,s=null):(o=a.texture,s=a.sampler),t.uniform1i(r,n),t.activeTexture(wl+n),t.bindTexture(i,o),t.bindSampler(n,s)}:function(a){t.uniform1i(r,n),t.activeTexture(wl+n),t.bindTexture(i,a)}}function Mt(t,e,n,r,i){const a=Yy(t,e),o=new Int32Array(i);for(let s=0;s<i;++s)o[s]=n+s;return Wa(t)?function(s){t.uniform1iv(r,o),s.forEach(function(f,u){t.activeTexture(wl+o[u]);let l,c;ul(t,f)?(l=f,c=null):(l=f.texture,c=f.sampler),t.bindSampler(n,c),t.bindTexture(a,l)})}:function(s){t.uniform1iv(r,o),s.forEach(function(f,u){t.activeTexture(wl+o[u]),t.bindTexture(a,f)})}}ue[vl]={Type:Float32Array,size:4,setter:r6,arraySetter:i6},ue[Fy]={Type:Float32Array,size:8,setter:a6,cols:2},ue[ky]={Type:Float32Array,size:12,setter:o6,cols:3},ue[By]={Type:Float32Array,size:16,setter:s6,cols:4},ue[Zd]={Type:Int32Array,size:4,setter:Wy,arraySetter:Xy},ue[Ly]={Type:Int32Array,size:8,setter:$y,cols:2},ue[Ry]={Type:Int32Array,size:12,setter:Ky,cols:3},ue[Oy]={Type:Int32Array,size:16,setter:Jy,cols:4},ue[Yd]={Type:Uint32Array,size:4,setter:u6,arraySetter:f6},ue[Vy]={Type:Uint32Array,size:8,setter:l6,cols:2},ue[qy]={Type:Uint32Array,size:12,setter:c6,cols:3},ue[Zy]={Type:Uint32Array,size:16,setter:h6,cols:4},ue[zy]={Type:Uint32Array,size:4,setter:Wy,arraySetter:Xy},ue[Py]={Type:Uint32Array,size:8,setter:$y,cols:2},ue[Uy]={Type:Uint32Array,size:12,setter:Ky,cols:3},ue[jy]={Type:Uint32Array,size:16,setter:Jy,cols:4},ue[Gy]={Type:Float32Array,size:32,setter:d6,rows:2,cols:2},ue[Hy]={Type:Float32Array,size:48,setter:g6,rows:3,cols:3},ue[Qy]={Type:Float32Array,size:64,setter:p6,rows:4,cols:4},ue[UT]={Type:Float32Array,size:32,setter:m6,rows:2,cols:3},ue[jT]={Type:Float32Array,size:32,setter:y6,rows:2,cols:4},ue[GT]={Type:Float32Array,size:48,setter:b6,rows:3,cols:2},ue[HT]={Type:Float32Array,size:48,setter:x6,rows:3,cols:4},ue[QT]={Type:Float32Array,size:64,setter:w6,rows:4,cols:2},ue[VT]={Type:Float32Array,size:64,setter:v6,rows:4,cols:3},ue[RT]={Type:null,size:0,setter:It,arraySetter:Mt,bindPoint:Al},ue[OT]={Type:null,size:0,setter:It,arraySetter:Mt,bindPoint:El},ue[zT]={Type:null,size:0,setter:It,arraySetter:Mt,bindPoint:Wd},ue[PT]={Type:null,size:0,setter:It,arraySetter:Mt,bindPoint:Al},ue[qT]={Type:null,size:0,setter:It,arraySetter:Mt,bindPoint:Sl},ue[ZT]={Type:null,size:0,setter:It,arraySetter:Mt,bindPoint:Sl},ue[YT]={Type:null,size:0,setter:It,arraySetter:Mt,bindPoint:El},ue[WT]={Type:null,size:0,setter:It,arraySetter:Mt,bindPoint:Al},ue[XT]={Type:null,size:0,setter:It,arraySetter:Mt,bindPoint:Wd},ue[$T]={Type:null,size:0,setter:It,arraySetter:Mt,bindPoint:El},ue[KT]={Type:null,size:0,setter:It,arraySetter:Mt,bindPoint:Sl},ue[JT]={Type:null,size:0,setter:It,arraySetter:Mt,bindPoint:Al},ue[e6]={Type:null,size:0,setter:It,arraySetter:Mt,bindPoint:Wd},ue[t6]={Type:null,size:0,setter:It,arraySetter:Mt,bindPoint:El},ue[n6]={Type:null,size:0,setter:It,arraySetter:Mt,bindPoint:Sl};function _l(t,e){return function(n){if(n.value)switch(t.disableVertexAttribArray(e),n.value.length){case 4:t.vertexAttrib4fv(e,n.value);break;case 3:t.vertexAttrib3fv(e,n.value);break;case 2:t.vertexAttrib2fv(e,n.value);break;case 1:t.vertexAttrib1fv(e,n.value);break;default:throw new Error("the length of a float constant value must be between 1 and 4!")}else t.bindBuffer(xl,n.buffer),t.enableVertexAttribArray(e),t.vertexAttribPointer(e,n.numComponents||n.size,n.type||vl,n.normalize||!1,n.stride||0,n.offset||0),n.divisor!==void 0&&t.vertexAttribDivisor(e,n.divisor)}}function ii(t,e){return function(n){if(n.value)if(t.disableVertexAttribArray(e),n.value.length===4)t.vertexAttrib4iv(e,n.value);else throw new Error("The length of an integer constant value must be 4!");else t.bindBuffer(xl,n.buffer),t.enableVertexAttribArray(e),t.vertexAttribIPointer(e,n.numComponents||n.size,n.type||Zd,n.stride||0,n.offset||0),n.divisor!==void 0&&t.vertexAttribDivisor(e,n.divisor)}}function Cl(t,e){return function(n){if(n.value)if(t.disableVertexAttribArray(e),n.value.length===4)t.vertexAttrib4uiv(e,n.value);else throw new Error("The length of an unsigned integer constant value must be 4!");else t.bindBuffer(xl,n.buffer),t.enableVertexAttribArray(e),t.vertexAttribIPointer(e,n.numComponents||n.size,n.type||Yd,n.stride||0,n.offset||0),n.divisor!==void 0&&t.vertexAttribDivisor(e,n.divisor)}}function Xd(t,e,n){const r=n.size,i=n.count;return function(a){t.bindBuffer(xl,a.buffer);const o=a.size||a.numComponents||r,s=o/i,f=a.type||vl,l=ue[f].size*o,c=a.normalize||!1,h=a.offset||0,d=l/i;for(let g=0;g<i;++g)t.enableVertexAttribArray(e+g),t.vertexAttribPointer(e+g,s,f,c,l,h+d*g),a.divisor!==void 0&&t.vertexAttribDivisor(e+g,a.divisor)}}const rt={};rt[vl]={size:4,setter:_l},rt[Fy]={size:8,setter:_l},rt[ky]={size:12,setter:_l},rt[By]={size:16,setter:_l},rt[Zd]={size:4,setter:ii},rt[Ly]={size:8,setter:ii},rt[Ry]={size:12,setter:ii},rt[Oy]={size:16,setter:ii},rt[Yd]={size:4,setter:Cl},rt[Vy]={size:8,setter:Cl},rt[qy]={size:12,setter:Cl},rt[Zy]={size:16,setter:Cl},rt[zy]={size:4,setter:ii},rt[Py]={size:8,setter:ii},rt[Uy]={size:12,setter:ii},rt[jy]={size:16,setter:ii},rt[Gy]={size:4,setter:Xd,count:2},rt[Hy]={size:9,setter:Xd,count:3},rt[Qy]={size:16,setter:Xd,count:4};function ew(t){const e=t.name;return e.startsWith("gl_")||e.startsWith("webgl_")}const A6=/(\.|\[|]|\w+)/g,E6=t=>t>="0"&&t<="9";function tw(t,e,n,r){const i=t.split(A6).filter(s=>s!=="");let a=0,o="";for(;;){const s=i[a++];o+=s;const f=E6(s[0]),u=f?parseInt(s):s;if(f&&(o+=i[a++]),a===i.length){n[u]=e;break}else{const c=i[a++],h=c==="[",d=n[u]||(h?[]:{});n[u]=d,n=d,r[o]=r[o]||function(g){return function(b){ow(g,b)}}(d),o+=c}}}function S6(t,e){let n=0;function r(s,f,u){const l=f.name.endsWith("[0]"),c=f.type,h=ue[c];if(!h)throw new Error(`unknown type: 0x${c.toString(16)}`);let d;if(h.bindPoint){const g=n;n+=f.size,l?d=h.arraySetter(t,c,g,u,f.size):d=h.setter(t,c,g,u,f.size)}else h.arraySetter&&l?d=h.arraySetter(t,u):d=h.setter(t,u);return d.location=u,d}const i={},a={},o=t.getProgramParameter(e,Ny);for(let s=0;s<o;++s){const f=t.getActiveUniform(e,s);if(ew(f))continue;let u=f.name;u.endsWith("[0]")&&(u=u.substr(0,u.length-3));const l=t.getUniformLocation(e,f.name);if(l){const c=r(e,f,l);i[u]=c,tw(u,c,a,i)}}return i}function _6(t,e){const n={},r=t.getProgramParameter(e,TT);for(let i=0;i<r;++i){const a=t.getTransformFeedbackVarying(e,i);n[a.name]={index:i,type:a.type,size:a.size}}return n}function C6(t,e){const n=t.getProgramParameter(e,Ny),r=[],i=[];for(let s=0;s<n;++s){i.push(s),r.push({});const f=t.getActiveUniform(e,s);r[s].name=f.name}[["UNIFORM_TYPE","type"],["UNIFORM_SIZE","size"],["UNIFORM_BLOCK_INDEX","blockNdx"],["UNIFORM_OFFSET","offset"]].forEach(function(s){const f=s[0],u=s[1];t.getActiveUniforms(e,i,t[f]).forEach(function(l,c){r[c][u]=l})});const a={},o=t.getProgramParameter(e,NT);for(let s=0;s<o;++s){const f=t.getActiveUniformBlockName(e,s),u={index:t.getUniformBlockIndex(e,f),usedByVertexShader:t.getActiveUniformBlockParameter(e,s,FT),usedByFragmentShader:t.getActiveUniformBlockParameter(e,s,kT),size:t.getActiveUniformBlockParameter(e,s,BT),uniformIndices:t.getActiveUniformBlockParameter(e,s,LT)};u.used=u.usedByVertexShader||u.usedByFragmentShader,a[f]=u}return{blockSpecs:a,uniformData:r}}const nw=/\[\d+\]\.$/,D6=(t,e)=>((t+(e-1))/e|0)*e;function I6(t,e,n,r){if(e||n){r=r||1;const a=t.length/4;return function(o){let s=0,f=0;for(let u=0;u<a;++u){for(let l=0;l<r;++l)t[s++]=o[f++];s+=4-r}}}else return function(i){i.length?t.set(i):t[0]=i}}function M6(t,e,n,r){const i=n.blockSpecs,a=n.uniformData,o=i[r];if(!o)return CT("no uniform block object named:",r),{name:r,uniforms:{}};const s=new ArrayBuffer(o.size),f=t.createBuffer(),u=o.index;t.bindBuffer(qd,f),t.uniformBlockBinding(e,o.index,u);let l=r+".";nw.test(l)&&(l=l.replace(nw,"."));const c={},h={},d={};return o.uniformIndices.forEach(function(g){const b=a[g];let y=b.name;y.startsWith(l)&&(y=y.substr(l.length));const w=y.endsWith("[0]");w&&(y=y.substr(0,y.length-3));const E=ue[b.type],_=E.Type,D=w?D6(E.size,16)*b.size:E.size*b.size,T=new _(s,b.offset,D/_.BYTES_PER_ELEMENT);c[y]=T;const N=I6(T,w,E.rows,E.cols);h[y]=N,tw(y,N,d,h)}),{name:r,array:s,asFloat:new Float32Array(s),buffer:f,uniforms:c,setters:h}}function rw(t,e,n){return M6(t,e.program,e.uniformBlockSpec,n)}function T6(t,e,n){const i=(e.uniformBlockSpec||e).blockSpecs[n.name];if(i){const a=i.index;return t.bindBufferRange(qd,a,n.buffer,n.offset||0,n.array.byteLength),!0}return!1}function iw(t,e,n){T6(t,e,n)&&t.bufferData(qd,n.array,DT)}function aw(t,e){const n=t.setters;for(const r in e){const i=n[r];if(i){const a=e[r];i(a)}}}function ow(t,e){for(const n in e){const r=t[n];typeof r=="function"?r(e[n]):ow(t[n],e[n])}}function Kt(t,...e){const n=t.uniformSetters||t,r=e.length;for(let i=0;i<r;++i){const a=e[i];if(Array.isArray(a)){const o=a.length;for(let s=0;s<o;++s)Kt(n,a[s])}else for(const o in a){const s=n[o];s&&s(a[o])}}}function N6(t,e){const n={},r=t.getProgramParameter(e,MT);for(let i=0;i<r;++i){const a=t.getActiveAttrib(e,i);if(ew(a))continue;const o=t.getAttribLocation(e,a.name),s=rt[a.type],f=s.setter(t,o,s);f.location=o,n[a.name]=f}return n}function F6(t,e){for(const n in e){const r=t[n];r&&r(e[n])}}function ro(t,e,n){n.vertexArrayObject?t.bindVertexArray(n.vertexArrayObject):(F6(e.attribSetters||e,n.attribs),n.indices&&t.bindBuffer(IT,n.indices))}function k6(t,e){const n=S6(t,e),r=N6(t,e),i={program:e,uniformSetters:n,attribSetters:r};return Wa(t)&&(i.uniformBlockSpec=C6(t,e),i.transformFeedbackInfo=_6(t,e)),i}const B6=4,sw=5123;function Xs(t,e,n,r,i,a){n=n===void 0?B6:n;const o=e.indices,s=e.elementType,f=r===void 0?e.numElements:r;i=i===void 0?0:i,s||o?a!==void 0?t.drawElementsInstanced(n,f,s===void 0?sw:e.elementType,i,a):t.drawElements(n,f,s===void 0?sw:e.elementType,i):a!==void 0?t.drawArraysInstanced(n,i,f,a):t.drawArrays(n,i,f)}const L6=36160,ea=36161,R6=3553,O6=5121,z6=6402,P6=6408,U6=33190,j6=36012,G6=35056,H6=36013,Q6=32854,V6=32855,q6=36194,uw=33189,fw=6401,lw=36168,$d=34041,Z6=36064,Dl=36096,cw=36128,Kd=33306,Jd=33071,e0=9729,hw=[{format:P6,type:O6,min:e0,wrap:Jd},{format:$d}],Bn={};Bn[$d]=Kd,Bn[fw]=cw,Bn[lw]=cw,Bn[z6]=Dl,Bn[uw]=Dl,Bn[U6]=Dl,Bn[j6]=Dl,Bn[G6]=Kd,Bn[H6]=Kd;function Y6(t,e){return Bn[t]||Bn[e]}const ai={};ai[Q6]=!0,ai[V6]=!0,ai[q6]=!0,ai[$d]=!0,ai[uw]=!0,ai[fw]=!0,ai[lw]=!0;function W6(t){return ai[t]}function X6(t,e,n,r){const i=L6,a=t.createFramebuffer();t.bindFramebuffer(i,a),n=n||t.drawingBufferWidth,r=r||t.drawingBufferHeight,e=e||hw;let o=0;const s={framebuffer:a,attachments:[],width:n,height:r};return e.forEach(function(f){let u=f.attachment;const l=f.samples,c=f.format;let h=f.attachmentPoint||Y6(c,f.internalFormat);if(h||(h=Z6+o++),!u)if(l!==void 0||W6(c))u=t.createRenderbuffer(),t.bindRenderbuffer(ea,u),l>1?t.renderbufferStorageMultisample(ea,l,c,n,r):t.renderbufferStorage(ea,c,n,r);else{const d=Object.assign({},f);d.width=n,d.height=r,d.auto===void 0&&(d.auto=!1,d.min=d.min||d.minMag||e0,d.mag=d.mag||d.minMag||e0,d.wrapS=d.wrapS||d.wrap||Jd,d.wrapT=d.wrapT||d.wrap||Jd),u=Ws(t,d)}if(ry(t,u))t.framebufferRenderbuffer(i,h,ea,u);else if(ul(t,u))f.layer!==void 0?t.framebufferTextureLayer(i,h,u,f.level||0,f.layer):t.framebufferTexture2D(i,h,f.target||R6,u,f.level||0);else throw new Error("unknown attachment type");s.attachments.push(u)}),s}function $6(t,e,n,r,i){r=r||t.drawingBufferWidth,i=i||t.drawingBufferHeight,e.width=r,e.height=i,n=n||hw,n.forEach(function(a,o){const s=e.attachments[o],f=a.format,u=a.samples;if(u!==void 0||ry(t,s))t.bindRenderbuffer(ea,s),u>1?t.renderbufferStorageMultisample(ea,u,f,r,i):t.renderbufferStorage(ea,f,r,i);else if(ul(t,s))_T(t,s,a,r,i);else throw new Error("unknown attachment type")})}function K6(t,e,n){const r=t.createVertexArray();return t.bindVertexArray(r),e.length||(e=[e]),e.forEach(function(i){ro(t,i,n)}),t.bindVertexArray(null),{numElements:n.numElements,elementType:n.elementType,vertexArrayObject:r}}const J6=/^(.*?)_/;function eN(t,e){Ld(t,0);const n=t.getExtension(e);if(n){const r={},i=J6.exec(e)[1],a="_"+i;for(const o in n){const s=n[o],f=typeof s=="function",u=f?i:a;let l=o;o.endsWith(u)&&(l=o.substring(0,o.length-u.length)),t[l]!==void 0?!f&&t[l]!==s&&ny(l,t[l],s,o):f?t[l]=function(c){return function(){return c.apply(n,arguments)}}(s):(t[l]=s,r[l]=s)}r.constructor={name:n.constructor.name},Ld(r,0)}return n}const dw=["ANGLE_instanced_arrays","EXT_blend_minmax","EXT_color_buffer_float","EXT_color_buffer_half_float","EXT_disjoint_timer_query","EXT_disjoint_timer_query_webgl2","EXT_frag_depth","EXT_sRGB","EXT_shader_texture_lod","EXT_texture_filter_anisotropic","OES_element_index_uint","OES_standard_derivatives","OES_texture_float","OES_texture_float_linear","OES_texture_half_float","OES_texture_half_float_linear","OES_vertex_array_object","WEBGL_color_buffer_float","WEBGL_compressed_texture_atc","WEBGL_compressed_texture_etc1","WEBGL_compressed_texture_pvrtc","WEBGL_compressed_texture_s3tc","WEBGL_compressed_texture_s3tc_srgb","WEBGL_depth_texture","WEBGL_draw_buffers"];function gw(t){for(let e=0;e<dw.length;++e)eN(t,dw[e])}function tN(t,e){const n=["webgl2","webgl","experimental-webgl"];let r=null;for(let i=0;i<n.length;++i)if(r=t.getContext(n[i],e),r){gw(r);break}return r}function nN(t,e){return tN(t,e)}const rN=`/***The vertex position wrt the rectangle specified by(x,x2,y,y2).*[0,0]=[x,y],[1,1]=[x2,y2].*The x or y component may contain fractional values if the rectangle*have been tessellated.*/in vec2 frac;uniform vec2 uMinSize;uniform float uMinOpacity;uniform vec4 uCornerRadii;out lowp vec4 vFillColor;out lowp vec4 vStrokeColor;out float vHalfStrokeWidth;out vec4 vCornerRadii;
127
+ see: http://github.com/greggman/twgl.js for details */const fd=5120,_s=5121,ud=5122,cd=5123,hd=5124,dd=5125,pd=5126,k8=32819,B8=32820,D8=33635,F8=5131,R8=33640,P8=35899,M8=35902,N8=36269,L8=34042,Fb={};{const e=Fb;e[fd]=Int8Array,e[_s]=Uint8Array,e[ud]=Int16Array,e[cd]=Uint16Array,e[hd]=Int32Array,e[dd]=Uint32Array,e[pd]=Float32Array,e[k8]=Uint16Array,e[B8]=Uint16Array,e[D8]=Uint16Array,e[F8]=Uint16Array,e[R8]=Uint32Array,e[P8]=Uint32Array,e[M8]=Uint32Array,e[N8]=Uint32Array,e[L8]=Uint32Array}function gd(e){if(e instanceof Int8Array)return fd;if(e instanceof Uint8Array||e instanceof Uint8ClampedArray)return _s;if(e instanceof Int16Array)return ud;if(e instanceof Uint16Array)return cd;if(e instanceof Int32Array)return hd;if(e instanceof Uint32Array)return dd;if(e instanceof Float32Array)return pd;throw new Error("unsupported typed array type")}function O8(e){if(e===Int8Array)return fd;if(e===Uint8Array||e===Uint8ClampedArray)return _s;if(e===Int16Array)return ud;if(e===Uint16Array)return cd;if(e===Int32Array)return hd;if(e===Uint32Array)return dd;if(e===Float32Array)return pd;throw new Error("unsupported typed array type")}function z8(e){const t=Fb[e];if(!t)throw new Error("unknown gl type");return t}const Vf=typeof SharedArrayBuffer<"u"?function(t){return t&&t.buffer&&(t.buffer instanceof ArrayBuffer||t.buffer instanceof SharedArrayBuffer)}:function(t){return t&&t.buffer&&t.buffer instanceof ArrayBuffer};function U8(...e){console.error(...e)}function Rb(...e){console.warn(...e)}function G8(e,t){return typeof WebGLBuffer<"u"&&t instanceof WebGLBuffer}function Pb(e,t){return typeof WebGLRenderbuffer<"u"&&t instanceof WebGLRenderbuffer}function jf(e,t){return typeof WebGLTexture<"u"&&t instanceof WebGLTexture}function H8(e,t){return typeof WebGLSampler<"u"&&t instanceof WebGLSampler}const Mb=35044,On=34962,V8=34963,j8=34660,q8=5120,Z8=5121,W8=5122,Y8=5123,Q8=5124,X8=5125,$8=5126,Nb={attribPrefix:""};function Lb(e,t,n,r,i){e.bindBuffer(t,n),e.bufferData(t,r,i||Mb)}function Ob(e,t,n,r){if(G8(e,t))return t;n=n||On;const i=e.createBuffer();return Lb(e,n,i,t,r),i}function zb(e){return e==="indices"}function K8(e){return e instanceof Int8Array||e instanceof Uint8Array}function J8(e){return e===Int8Array||e===Uint8Array}function e5(e){return e.length?e:e.data}const t5=/coord|texture/i,n5=/color|colour/i;function Ub(e,t){let n;if(t5.test(e)?n=2:n5.test(e)?n=4:n=3,t%n>0)throw new Error(`Can not guess numComponents for attribute '${e}'. Tried ${n} but ${t} values is not evenly divisible by ${n}. You should specify it.`);return n}function r5(e,t){return e.numComponents||e.size||Ub(t,e5(e).length)}function md(e,t){if(Vf(e))return e;if(Vf(e.data))return e.data;Array.isArray(e)&&(e={data:e});let n=e.type;return n||(zb(t)?n=Uint16Array:n=Float32Array),new n(e.data)}function i5(e,t){const n={};return Object.keys(t).forEach(function(r){if(!zb(r)){const i=t[r],a=i.attrib||i.name||i.attribName||Nb.attribPrefix+r;if(i.value){if(!Array.isArray(i.value)&&!Vf(i.value))throw new Error("array.value is not array or typedarray");n[a]={value:i.value}}else{let o,s,f,l;if(i.buffer&&i.buffer instanceof WebGLBuffer)o=i.buffer,l=i.numComponents||i.size,s=i.type,f=i.normalize;else if(typeof i=="number"||typeof i.data=="number"){const u=i.data||i,c=i.type||Float32Array,h=u*c.BYTES_PER_ELEMENT;s=O8(c),f=i.normalize!==void 0?i.normalize:J8(c),l=i.numComponents||i.size||Ub(r,u),o=e.createBuffer(),e.bindBuffer(On,o),e.bufferData(On,h,i.drawType||Mb)}else{const u=md(i,r);o=Ob(e,u,void 0,i.drawType),s=gd(u),f=i.normalize!==void 0?i.normalize:K8(u),l=r5(i,r)}n[a]={buffer:o,numComponents:l,type:s,normalize:f,stride:i.stride||0,offset:i.offset||0,divisor:i.divisor===void 0?void 0:i.divisor,drawType:i.drawType}}}}),e.bindBuffer(On,null),n}function a5(e,t,n,r){n=md(n),r!==void 0?(e.bindBuffer(On,t.buffer),e.bufferSubData(On,r,n)):Lb(e,On,t.buffer,n,t.drawType)}function o5(e,t){return t===q8||t===Z8?1:t===W8||t===Y8?2:t===Q8||t===X8||t===$8?4:0}const bd=["position","positions","a_position"];function s5(e,t){let n,r;for(r=0;r<bd.length&&(n=bd[r],!(n in t||(n=Nb.attribPrefix+n,n in t)));++r);r===bd.length&&(n=Object.keys(t)[0]);const i=t[n];e.bindBuffer(On,i.buffer);const a=e.getBufferParameter(On,j8);e.bindBuffer(On,null);const o=o5(e,i.type),s=a/o,f=i.numComponents||i.size,l=s/f;if(l%1!==0)throw new Error(`numComponents ${f} not correct for length ${length}`);return l}function l5(e,t,n){const r=i5(e,t),i=Object.assign({},n||{});i.attribs=Object.assign({},n?n.attribs:{},r);const a=t.indices;if(a){const o=md(a,"indices");i.indices=Ob(e,o,V8),i.numElements=o.length,i.elementType=gd(o)}else i.numElements||(i.numElements=s5(e,i.attribs));return i}function Da(e){return!!e.texStorage2D}const yd=function(){const e={},t={};function n(r){const i=r.constructor.name;if(!e[i]){for(const a in r)if(typeof r[a]=="number"){const o=t[r[a]];t[r[a]]=o?`${o} | ${a}`:a}e[i]=!0}}return function(i,a){return n(i),t[a]||(typeof a=="number"?`0x${a.toString(16)}`:a)}}(),Nr={textureColor:new Uint8Array([128,192,255,255]),textureOptions:{},crossOrigin:void 0},Fa=Vf,Gb=function(){let e;return function(){return e=e||(typeof document<"u"&&document.createElement?document.createElement("canvas").getContext("2d"):null),e}}(),Hb=6406,zn=6407,Ge=6408,Vb=6409,jb=6410,Ss=6402,qb=34041,qf=33071,f5=9728,u5=9729,ir=3553,ar=34067,Lr=32879,Or=35866,Zf=34069,c5=34070,h5=34071,d5=34072,p5=34073,g5=34074,wd=10241,vd=10240,Wf=10242,Yf=10243,Zb=32882,m5=33082,b5=33083,y5=33084,w5=33085,xd=3317,Wb=3314,Yb=32878,Qb=3316,Xb=3315,$b=32877,v5=37443,x5=37441,A5=37440,E5=33321,_5=36756,S5=33325,C5=33326,T5=33330,I5=33329,k5=33338,B5=33337,D5=33340,F5=33339,R5=33323,P5=36757,M5=33327,N5=33328,L5=33336,O5=33335,z5=33332,U5=33331,G5=33334,H5=33333,V5=32849,j5=35905,q5=36194,Z5=36758,W5=35898,Y5=35901,Q5=34843,X5=34837,$5=36221,K5=36239,J5=36215,eT=36233,tT=36209,nT=36227,rT=32856,iT=35907,aT=36759,oT=32855,sT=32854,lT=32857,fT=34842,uT=34836,cT=36220,hT=36238,dT=36975,pT=36214,gT=36232,mT=36226,bT=36208,yT=33189,wT=33190,vT=36012,xT=36013,AT=35056,zr=5120,He=5121,Qf=5122,Ra=5123,Xf=5124,Li=5125,At=5126,Kb=32819,Jb=32820,e2=33635,An=5131,Cs=36193,Ad=33640,ET=35899,_T=35902,ST=36269,CT=34042,$f=33319,Pa=33320,Kf=6403,Ma=36244,Na=36248,Oi=36249;let Ed;function Jf(e){if(!Ed){const t={};t[Hb]={textureFormat:Hb,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[He,An,Cs,At]},t[Vb]={textureFormat:Vb,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[He,An,Cs,At]},t[jb]={textureFormat:jb,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2,4,4,8],type:[He,An,Cs,At]},t[zn]={textureFormat:zn,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,6,6,12,2],type:[He,An,Cs,At,e2]},t[Ge]={textureFormat:Ge,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,8,8,16,2,2],type:[He,An,Cs,At,Kb,Jb]},t[Ss]={textureFormat:Ss,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[Li,Ra]},t[E5]={textureFormat:Kf,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1],type:[He]},t[_5]={textureFormat:Kf,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[1],type:[zr]},t[S5]={textureFormat:Kf,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4,2],type:[At,An]},t[C5]={textureFormat:Kf,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[4],type:[At]},t[T5]={textureFormat:Ma,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[He]},t[I5]={textureFormat:Ma,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[zr]},t[z5]={textureFormat:Ma,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Ra]},t[U5]={textureFormat:Ma,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Qf]},t[G5]={textureFormat:Ma,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Li]},t[H5]={textureFormat:Ma,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Xf]},t[R5]={textureFormat:$f,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2],type:[He]},t[P5]={textureFormat:$f,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[2],type:[zr]},t[M5]={textureFormat:$f,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[8,4],type:[At,An]},t[N5]={textureFormat:$f,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[8],type:[At]},t[L5]={textureFormat:Pa,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[He]},t[O5]={textureFormat:Pa,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[zr]},t[k5]={textureFormat:Pa,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ra]},t[B5]={textureFormat:Pa,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Qf]},t[D5]={textureFormat:Pa,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Li]},t[F5]={textureFormat:Pa,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Xf]},t[V5]={textureFormat:zn,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3],type:[He]},t[j5]={textureFormat:zn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[He]},t[q5]={textureFormat:zn,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,2],type:[He,e2]},t[Z5]={textureFormat:zn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[zr]},t[W5]={textureFormat:zn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[At,An,ET]},t[Y5]={textureFormat:zn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[At,An,_T]},t[Q5]={textureFormat:zn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6],type:[At,An]},t[X5]={textureFormat:zn,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[At]},t[$5]={textureFormat:Na,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[He]},t[K5]={textureFormat:Na,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[zr]},t[J5]={textureFormat:Na,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[Ra]},t[eT]={textureFormat:Na,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[Qf]},t[tT]={textureFormat:Na,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[Li]},t[nT]={textureFormat:Na,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[Xf]},t[rT]={textureFormat:Ge,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[He]},t[iT]={textureFormat:Ge,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[He]},t[aT]={textureFormat:Ge,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4],type:[zr]},t[oT]={textureFormat:Ge,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2,4],type:[He,Jb,Ad]},t[sT]={textureFormat:Ge,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2],type:[He,Kb]},t[lT]={textureFormat:Ge,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[Ad]},t[fT]={textureFormat:Ge,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[16,8],type:[At,An]},t[uT]={textureFormat:Ge,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[16],type:[At]},t[cT]={textureFormat:Oi,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[He]},t[hT]={textureFormat:Oi,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[zr]},t[dT]={textureFormat:Oi,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ad]},t[pT]={textureFormat:Oi,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Ra]},t[gT]={textureFormat:Oi,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Qf]},t[mT]={textureFormat:Oi,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[Xf]},t[bT]={textureFormat:Oi,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[Li]},t[yT]={textureFormat:Ss,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[Ra,Li]},t[wT]={textureFormat:Ss,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Li]},t[vT]={textureFormat:Ss,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[At]},t[AT]={textureFormat:qb,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[CT]},t[xT]={textureFormat:qb,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[ST]},Object.keys(t).forEach(function(n){const r=t[n];r.bytesPerElementMap={},r.bytesPerElement.forEach(function(i,a){const o=r.type[a];r.bytesPerElementMap[o]=i})}),Ed=t}return Ed[e]}function TT(e,t){const n=Jf(e);if(!n)throw"unknown internal format";const r=n.bytesPerElementMap[t];if(r===void 0)throw"unknown internal format";return r}function La(e){const t=Jf(e);if(!t)throw"unknown internal format";return{format:t.textureFormat,type:t.type[0]}}function t2(e){return(e&e-1)===0}function IT(e,t,n,r){if(!Da(e))return t2(t)&&t2(n);const i=Jf(r);if(!i)throw"unknown internal format";return i.colorRenderable&&i.textureFilterable}function kT(e){const t=Jf(e);if(!t)throw"unknown internal format";return t.textureFilterable}function n2(e,t,n){return Fa(t)?gd(t):n||He}function eu(e,t,n,r,i){if(i%1!==0)throw"can't guess dimensions";if(!n&&!r){const a=Math.sqrt(i/(t===ar?6:1));a%1===0?(n=a,r=a):(n=i,r=1)}else if(r){if(!n&&(n=i/r,n%1))throw"can't guess dimensions"}else if(r=i/n,r%1)throw"can't guess dimensions";return{width:n,height:r}}function Oa(e,t){t.colorspaceConversion!==void 0&&e.pixelStorei(v5,t.colorspaceConversion),t.premultiplyAlpha!==void 0&&e.pixelStorei(x5,t.premultiplyAlpha),t.flipY!==void 0&&e.pixelStorei(A5,t.flipY)}function r2(e){e.pixelStorei(xd,4),Da(e)&&(e.pixelStorei(Wb,0),e.pixelStorei(Yb,0),e.pixelStorei(Qb,0),e.pixelStorei(Xb,0),e.pixelStorei($b,0))}function BT(e,t,n,r){r.minMag&&(n.call(e,t,wd,r.minMag),n.call(e,t,vd,r.minMag)),r.min&&n.call(e,t,wd,r.min),r.mag&&n.call(e,t,vd,r.mag),r.wrap&&(n.call(e,t,Wf,r.wrap),n.call(e,t,Yf,r.wrap),(t===Lr||H8(e,t))&&n.call(e,t,Zb,r.wrap)),r.wrapR&&n.call(e,t,Zb,r.wrapR),r.wrapS&&n.call(e,t,Wf,r.wrapS),r.wrapT&&n.call(e,t,Yf,r.wrapT),r.minLod&&n.call(e,t,m5,r.minLod),r.maxLod&&n.call(e,t,b5,r.maxLod),r.baseLevel&&n.call(e,t,y5,r.baseLevel),r.maxLevel&&n.call(e,t,w5,r.maxLevel)}function i2(e,t,n){const r=n.target||ir;e.bindTexture(r,t),BT(e,r,e.texParameteri,n)}function DT(e){return e=e||Nr.textureColor,Fa(e)?e:new Uint8Array([e[0]*255,e[1]*255,e[2]*255,e[3]*255])}function _d(e,t,n,r,i,a){n=n||Nr.textureOptions,a=a||Ge;const o=n.target||ir;if(r=r||n.width,i=i||n.height,e.bindTexture(o,t),IT(e,r,i,a))e.generateMipmap(o);else{const s=kT(a)?u5:f5;e.texParameteri(o,wd,s),e.texParameteri(o,vd,s),e.texParameteri(o,Wf,qf),e.texParameteri(o,Yf,qf)}}function Ts(e){return e.auto===!0||e.auto===void 0&&e.level===void 0}function Sd(e,t){return t=t||{},t.cubeFaceOrder||[Zf,c5,h5,d5,p5,g5]}function Cd(e,t){const r=Sd(e,t).map(function(i,a){return{face:i,ndx:a}});return r.sort(function(i,a){return i.face-a.face}),r}function a2(e,t,n,r){r=r||Nr.textureOptions;const i=r.target||ir,a=r.level||0;let o=n.width,s=n.height;const f=r.internalFormat||r.format||Ge,l=La(f),u=r.format||l.format,c=r.type||l.type;if(Oa(e,r),e.bindTexture(i,t),i===ar){const h=n.width,d=n.height;let p,b;if(h/6===d)p=d,b=[0,0,1,0,2,0,3,0,4,0,5,0];else if(d/6===h)p=h,b=[0,0,0,1,0,2,0,3,0,4,0,5];else if(h/3===d/2)p=h/3,b=[0,0,1,0,2,0,0,1,1,1,2,1];else if(h/2===d/3)p=h/2,b=[0,0,1,0,0,1,1,1,0,2,1,2];else throw"can't figure out cube map from element: "+(n.src?n.src:n.nodeName);const y=Gb();y?(y.canvas.width=p,y.canvas.height=p,o=p,s=p,Cd(e,r).forEach(function(w){const S=b[w.ndx*2+0]*p,C=b[w.ndx*2+1]*p;y.drawImage(n,S,C,p,p,0,0,p,p),e.texImage2D(w.face,a,f,u,c,y.canvas)}),y.canvas.width=1,y.canvas.height=1):typeof createImageBitmap<"u"&&(o=p,s=p,Cd(e,r).forEach(function(w){const S=b[w.ndx*2+0]*p,C=b[w.ndx*2+1]*p;e.texImage2D(w.face,a,f,p,p,0,u,c,null),createImageBitmap(n,S,C,p,p,{premultiplyAlpha:"none",colorSpaceConversion:"none"}).then(function(_){Oa(e,r),e.bindTexture(i,t),e.texImage2D(w.face,a,f,u,c,_),Ts(r)&&_d(e,t,r,o,s,f)})}))}else if(i===Lr||i===Or){const h=Math.min(n.width,n.height),d=Math.max(n.width,n.height),p=d/h;if(p%1!==0)throw"can not compute 3D dimensions of element";const b=n.width===d?1:0,y=n.height===d?1:0;e.pixelStorei(xd,1),e.pixelStorei(Wb,n.width),e.pixelStorei(Yb,0),e.pixelStorei($b,0),e.texImage3D(i,a,f,h,h,h,0,u,c,null);for(let w=0;w<p;++w){const S=w*h*b,C=w*h*y;e.pixelStorei(Qb,S),e.pixelStorei(Xb,C),e.texSubImage3D(i,a,0,0,w,h,h,1,u,c,n)}r2(e)}else e.texImage2D(i,a,f,u,c,n);Ts(r)&&_d(e,t,r,o,s,f),i2(e,t,r)}function Is(){}function FT(e){if(typeof document<"u"){const t=document.createElement("a");return t.href=e,t.hostname===location.hostname&&t.port===location.port&&t.protocol===location.protocol}else{const t=new URL(location.href).origin;return new URL(e,location.href).origin===t}}function RT(e,t){return t===void 0&&!FT(e)?"anonymous":t}function PT(e,t,n){n=n||Is;let r;if(t=t!==void 0?t:Nr.crossOrigin,t=RT(e,t),typeof Image<"u"){r=new Image,t!==void 0&&(r.crossOrigin=t);const i=function(){r.removeEventListener("error",a),r.removeEventListener("load",o),r=null},a=function(){const f="couldn't load image: "+e;U8(f),n(f,r),i()},o=function(){n(null,r),i()};return r.addEventListener("error",a),r.addEventListener("load",o),r.src=e,r}else if(typeof ImageBitmap<"u"){let i,a;const o=function(){n(i,a)},s={};t&&(s.mode="cors"),fetch(e,s).then(function(f){if(!f.ok)throw f;return f.blob()}).then(function(f){return createImageBitmap(f,{premultiplyAlpha:"none",colorSpaceConversion:"none"})}).then(function(f){a=f,setTimeout(o)}).catch(function(f){i=f,setTimeout(o)}),r=null}return r}function o2(e){return typeof ImageBitmap<"u"&&e instanceof ImageBitmap||typeof ImageData<"u"&&e instanceof ImageData||typeof HTMLElement<"u"&&e instanceof HTMLElement}function Td(e,t,n){return o2(e)?(setTimeout(function(){n(null,e)}),e):PT(e,t,n)}function Id(e,t,n){n=n||Nr.textureOptions;const r=n.target||ir;if(e.bindTexture(r,t),n.color===!1)return;const i=DT(n.color);if(r===ar)for(let a=0;a<6;++a)e.texImage2D(Zf+a,0,Ge,1,1,0,Ge,He,i);else r===Lr||r===Or?e.texImage3D(r,0,Ge,1,1,1,0,Ge,He,i):e.texImage2D(r,0,Ge,1,1,0,Ge,He,i)}function MT(e,t,n,r){return r=r||Is,n=n||Nr.textureOptions,Id(e,t,n),n=Object.assign({},n),Td(n.src,n.crossOrigin,function(a,o){a?r(a,t,o):(a2(e,t,o,n),r(null,t,o))})}function NT(e,t,n,r){r=r||Is;const i=n.src;if(i.length!==6)throw"there must be 6 urls for a cubemap";const a=n.level||0,o=n.internalFormat||n.format||Ge,s=La(o),f=n.format||s.format,l=n.type||He,u=n.target||ir;if(u!==ar)throw"target must be TEXTURE_CUBE_MAP";Id(e,t,n),n=Object.assign({},n);let c=6;const h=[],d=Sd(e,n);let p;function b(y){return function(w,S){--c,w?h.push(w):S.width!==S.height?h.push("cubemap face img is not a square: "+S.src):(Oa(e,n),e.bindTexture(u,t),c===5?Sd().forEach(function(C){e.texImage2D(C,a,o,f,l,S)}):e.texImage2D(y,a,o,f,l,S),Ts(n)&&e.generateMipmap(u)),c===0&&r(h.length?h:void 0,t,p)}}p=i.map(function(y,w){return Td(y,n.crossOrigin,b(d[w]))})}function LT(e,t,n,r){r=r||Is;const i=n.src,a=n.internalFormat||n.format||Ge,o=La(a),s=n.format||o.format,f=n.type||He,l=n.target||Or;if(l!==Lr&&l!==Or)throw"target must be TEXTURE_3D or TEXTURE_2D_ARRAY";Id(e,t,n),n=Object.assign({},n);let u=i.length;const c=[];let h;const d=n.level||0;let p=n.width,b=n.height;const y=i.length;let w=!0;function S(C){return function(_,k){if(--u,_)c.push(_);else{if(Oa(e,n),e.bindTexture(l,t),w){w=!1,p=n.width||k.width,b=n.height||k.height,e.texImage3D(l,d,a,p,b,y,0,s,f,null);for(let B=0;B<y;++B)e.texSubImage3D(l,d,0,0,B,p,b,1,s,f,k)}else{let B=k,I;(k.width!==p||k.height!==b)&&(I=Gb(),B=I.canvas,I.canvas.width=p,I.canvas.height=b,I.drawImage(k,0,0,p,b)),e.texSubImage3D(l,d,0,0,C,p,b,1,s,f,B),I&&B===I.canvas&&(I.canvas.width=0,I.canvas.height=0)}Ts(n)&&e.generateMipmap(l)}u===0&&r(c.length?c:void 0,t,h)}}h=i.map(function(C,_){return Td(C,n.crossOrigin,S(_))})}function s2(e,t,n,r){r=r||Nr.textureOptions;const i=r.target||ir;e.bindTexture(i,t);let a=r.width,o=r.height,s=r.depth;const f=r.level||0,l=r.internalFormat||r.format||Ge,u=La(l),c=r.format||u.format,h=r.type||n2(e,n,u.type);if(Fa(n))n instanceof Uint8ClampedArray&&(n=new Uint8Array(n.buffer));else{const y=z8(h);n=new y(n)}const d=TT(l,h),p=n.byteLength/d;if(p%1)throw"length wrong size for format: "+yd(e,c);let b;if(i===Lr||i===Or)if(!a&&!o&&!s){const y=Math.cbrt(p);if(y%1!==0)throw"can't guess cube size of array of numElements: "+p;a=y,o=y,s=y}else a&&(!o||!s)?(b=eu(e,i,o,s,p/a),o=b.width,s=b.height):o&&(!a||!s)?(b=eu(e,i,a,s,p/o),a=b.width,s=b.height):(b=eu(e,i,a,o,p/s),a=b.width,o=b.height);else b=eu(e,i,a,o,p),a=b.width,o=b.height;if(r2(e),e.pixelStorei(xd,r.unpackAlignment||1),Oa(e,r),i===ar){const y=d/n.BYTES_PER_ELEMENT,w=p/6*y;Cd(e,r).forEach(S=>{const C=w*S.ndx,_=n.subarray(C,C+w);e.texImage2D(S.face,f,l,a,o,0,c,h,_)})}else i===Lr||i===Or?e.texImage3D(i,f,l,a,o,s,0,c,h,n):e.texImage2D(i,f,l,a,o,0,c,h,n);return{width:a,height:o,depth:s,type:h}}function OT(e,t,n){const r=n.target||ir;e.bindTexture(r,t);const i=n.level||0,a=n.internalFormat||n.format||Ge,o=La(a),s=n.format||o.format,f=n.type||o.type;if(Oa(e,n),r===ar)for(let l=0;l<6;++l)e.texImage2D(Zf+l,i,a,n.width,n.height,0,s,f,null);else r===Lr||r===Or?e.texImage3D(r,i,a,n.width,n.height,n.depth,0,s,f,null):e.texImage2D(r,i,a,n.width,n.height,0,s,f,null)}function ks(e,t,n){n=n||Is,t=t||Nr.textureOptions;const r=e.createTexture(),i=t.target||ir;let a=t.width||1,o=t.height||1;const s=t.internalFormat||Ge;e.bindTexture(i,r),i===ar&&(e.texParameteri(i,Wf,qf),e.texParameteri(i,Yf,qf));let f=t.src;if(f)if(typeof f=="function"&&(f=f(e,t)),typeof f=="string")MT(e,r,t,n);else if(Fa(f)||Array.isArray(f)&&(typeof f[0]=="number"||Array.isArray(f[0])||Fa(f[0]))){const l=s2(e,r,f,t);a=l.width,o=l.height}else Array.isArray(f)&&(typeof f[0]=="string"||o2(f[0]))?i===ar?NT(e,r,t,n):LT(e,r,t,n):(a2(e,r,f,t),a=f.width,o=f.height);else OT(e,r,t);return Ts(t)&&_d(e,r,t,a,o,s),i2(e,r,t),r}function zT(e,t,n,r,i,a){r=r||n.width,i=i||n.height,a=a||n.depth;const o=n.target||ir;e.bindTexture(o,t);const s=n.level||0,f=n.internalFormat||n.format||Ge,l=La(f),u=n.format||l.format;let c;const h=n.src;if(h&&(Fa(h)||Array.isArray(h)&&typeof h[0]=="number")?c=n.type||n2(e,h,l.type):c=n.type||l.type,o===ar)for(let d=0;d<6;++d)e.texImage2D(Zf+d,s,f,r,i,0,u,c,null);else o===Lr||o===Or?e.texImage3D(o,s,f,r,i,a,0,u,c,null):e.texImage2D(o,s,f,r,i,0,u,c,null)}const UT=Rb,tu=33984,GT=35048,nu=34962,HT=34963,kd=35345,l2=35718,VT=35721,jT=35971,qT=35382,ZT=35396,WT=35398,YT=35392,QT=35395,ru=5126,f2=35664,u2=35665,c2=35666,Bd=5124,h2=35667,d2=35668,p2=35669,g2=35670,m2=35671,b2=35672,y2=35673,w2=35674,v2=35675,x2=35676,XT=35678,$T=35680,KT=35679,JT=35682,eI=35685,tI=35686,nI=35687,rI=35688,iI=35689,aI=35690,oI=36289,sI=36292,lI=36293,Dd=5125,A2=36294,E2=36295,_2=36296,fI=36298,uI=36299,cI=36300,hI=36303,dI=36306,pI=36307,gI=36308,mI=36311,iu=3553,au=34067,Fd=32879,ou=35866,ae={};function S2(e,t){return ae[t].bindPoint}function bI(e,t){return function(n){e.uniform1f(t,n)}}function yI(e,t){return function(n){e.uniform1fv(t,n)}}function wI(e,t){return function(n){e.uniform2fv(t,n)}}function vI(e,t){return function(n){e.uniform3fv(t,n)}}function xI(e,t){return function(n){e.uniform4fv(t,n)}}function C2(e,t){return function(n){e.uniform1i(t,n)}}function T2(e,t){return function(n){e.uniform1iv(t,n)}}function I2(e,t){return function(n){e.uniform2iv(t,n)}}function k2(e,t){return function(n){e.uniform3iv(t,n)}}function B2(e,t){return function(n){e.uniform4iv(t,n)}}function AI(e,t){return function(n){e.uniform1ui(t,n)}}function EI(e,t){return function(n){e.uniform1uiv(t,n)}}function _I(e,t){return function(n){e.uniform2uiv(t,n)}}function SI(e,t){return function(n){e.uniform3uiv(t,n)}}function CI(e,t){return function(n){e.uniform4uiv(t,n)}}function TI(e,t){return function(n){e.uniformMatrix2fv(t,!1,n)}}function II(e,t){return function(n){e.uniformMatrix3fv(t,!1,n)}}function kI(e,t){return function(n){e.uniformMatrix4fv(t,!1,n)}}function BI(e,t){return function(n){e.uniformMatrix2x3fv(t,!1,n)}}function DI(e,t){return function(n){e.uniformMatrix3x2fv(t,!1,n)}}function FI(e,t){return function(n){e.uniformMatrix2x4fv(t,!1,n)}}function RI(e,t){return function(n){e.uniformMatrix4x2fv(t,!1,n)}}function PI(e,t){return function(n){e.uniformMatrix3x4fv(t,!1,n)}}function MI(e,t){return function(n){e.uniformMatrix4x3fv(t,!1,n)}}function Ct(e,t,n,r){const i=S2(e,t);return Da(e)?function(a){let o,s;jf(e,a)?(o=a,s=null):(o=a.texture,s=a.sampler),e.uniform1i(r,n),e.activeTexture(tu+n),e.bindTexture(i,o),e.bindSampler(n,s)}:function(a){e.uniform1i(r,n),e.activeTexture(tu+n),e.bindTexture(i,a)}}function Tt(e,t,n,r,i){const a=S2(e,t),o=new Int32Array(i);for(let s=0;s<i;++s)o[s]=n+s;return Da(e)?function(s){e.uniform1iv(r,o),s.forEach(function(f,l){e.activeTexture(tu+o[l]);let u,c;jf(e,f)?(u=f,c=null):(u=f.texture,c=f.sampler),e.bindSampler(n,c),e.bindTexture(a,u)})}:function(s){e.uniform1iv(r,o),s.forEach(function(f,l){e.activeTexture(tu+o[l]),e.bindTexture(a,f)})}}ae[ru]={Type:Float32Array,size:4,setter:bI,arraySetter:yI},ae[f2]={Type:Float32Array,size:8,setter:wI,cols:2},ae[u2]={Type:Float32Array,size:12,setter:vI,cols:3},ae[c2]={Type:Float32Array,size:16,setter:xI,cols:4},ae[Bd]={Type:Int32Array,size:4,setter:C2,arraySetter:T2},ae[h2]={Type:Int32Array,size:8,setter:I2,cols:2},ae[d2]={Type:Int32Array,size:12,setter:k2,cols:3},ae[p2]={Type:Int32Array,size:16,setter:B2,cols:4},ae[Dd]={Type:Uint32Array,size:4,setter:AI,arraySetter:EI},ae[A2]={Type:Uint32Array,size:8,setter:_I,cols:2},ae[E2]={Type:Uint32Array,size:12,setter:SI,cols:3},ae[_2]={Type:Uint32Array,size:16,setter:CI,cols:4},ae[g2]={Type:Uint32Array,size:4,setter:C2,arraySetter:T2},ae[m2]={Type:Uint32Array,size:8,setter:I2,cols:2},ae[b2]={Type:Uint32Array,size:12,setter:k2,cols:3},ae[y2]={Type:Uint32Array,size:16,setter:B2,cols:4},ae[w2]={Type:Float32Array,size:32,setter:TI,rows:2,cols:2},ae[v2]={Type:Float32Array,size:48,setter:II,rows:3,cols:3},ae[x2]={Type:Float32Array,size:64,setter:kI,rows:4,cols:4},ae[eI]={Type:Float32Array,size:32,setter:BI,rows:2,cols:3},ae[tI]={Type:Float32Array,size:32,setter:FI,rows:2,cols:4},ae[nI]={Type:Float32Array,size:48,setter:DI,rows:3,cols:2},ae[rI]={Type:Float32Array,size:48,setter:PI,rows:3,cols:4},ae[iI]={Type:Float32Array,size:64,setter:RI,rows:4,cols:2},ae[aI]={Type:Float32Array,size:64,setter:MI,rows:4,cols:3},ae[XT]={Type:null,size:0,setter:Ct,arraySetter:Tt,bindPoint:iu},ae[$T]={Type:null,size:0,setter:Ct,arraySetter:Tt,bindPoint:au},ae[KT]={Type:null,size:0,setter:Ct,arraySetter:Tt,bindPoint:Fd},ae[JT]={Type:null,size:0,setter:Ct,arraySetter:Tt,bindPoint:iu},ae[oI]={Type:null,size:0,setter:Ct,arraySetter:Tt,bindPoint:ou},ae[sI]={Type:null,size:0,setter:Ct,arraySetter:Tt,bindPoint:ou},ae[lI]={Type:null,size:0,setter:Ct,arraySetter:Tt,bindPoint:au},ae[fI]={Type:null,size:0,setter:Ct,arraySetter:Tt,bindPoint:iu},ae[uI]={Type:null,size:0,setter:Ct,arraySetter:Tt,bindPoint:Fd},ae[cI]={Type:null,size:0,setter:Ct,arraySetter:Tt,bindPoint:au},ae[hI]={Type:null,size:0,setter:Ct,arraySetter:Tt,bindPoint:ou},ae[dI]={Type:null,size:0,setter:Ct,arraySetter:Tt,bindPoint:iu},ae[pI]={Type:null,size:0,setter:Ct,arraySetter:Tt,bindPoint:Fd},ae[gI]={Type:null,size:0,setter:Ct,arraySetter:Tt,bindPoint:au},ae[mI]={Type:null,size:0,setter:Ct,arraySetter:Tt,bindPoint:ou};function su(e,t){return function(n){if(n.value)switch(e.disableVertexAttribArray(t),n.value.length){case 4:e.vertexAttrib4fv(t,n.value);break;case 3:e.vertexAttrib3fv(t,n.value);break;case 2:e.vertexAttrib2fv(t,n.value);break;case 1:e.vertexAttrib1fv(t,n.value);break;default:throw new Error("the length of a float constant value must be between 1 and 4!")}else e.bindBuffer(nu,n.buffer),e.enableVertexAttribArray(t),e.vertexAttribPointer(t,n.numComponents||n.size,n.type||ru,n.normalize||!1,n.stride||0,n.offset||0),n.divisor!==void 0&&e.vertexAttribDivisor(t,n.divisor)}}function Ur(e,t){return function(n){if(n.value)if(e.disableVertexAttribArray(t),n.value.length===4)e.vertexAttrib4iv(t,n.value);else throw new Error("The length of an integer constant value must be 4!");else e.bindBuffer(nu,n.buffer),e.enableVertexAttribArray(t),e.vertexAttribIPointer(t,n.numComponents||n.size,n.type||Bd,n.stride||0,n.offset||0),n.divisor!==void 0&&e.vertexAttribDivisor(t,n.divisor)}}function lu(e,t){return function(n){if(n.value)if(e.disableVertexAttribArray(t),n.value.length===4)e.vertexAttrib4uiv(t,n.value);else throw new Error("The length of an unsigned integer constant value must be 4!");else e.bindBuffer(nu,n.buffer),e.enableVertexAttribArray(t),e.vertexAttribIPointer(t,n.numComponents||n.size,n.type||Dd,n.stride||0,n.offset||0),n.divisor!==void 0&&e.vertexAttribDivisor(t,n.divisor)}}function Rd(e,t,n){const r=n.size,i=n.count;return function(a){e.bindBuffer(nu,a.buffer);const o=a.size||a.numComponents||r,s=o/i,f=a.type||ru,u=ae[f].size*o,c=a.normalize||!1,h=a.offset||0,d=u/i;for(let p=0;p<i;++p)e.enableVertexAttribArray(t+p),e.vertexAttribPointer(t+p,s,f,c,u,h+d*p),a.divisor!==void 0&&e.vertexAttribDivisor(t+p,a.divisor)}}const tt={};tt[ru]={size:4,setter:su},tt[f2]={size:8,setter:su},tt[u2]={size:12,setter:su},tt[c2]={size:16,setter:su},tt[Bd]={size:4,setter:Ur},tt[h2]={size:8,setter:Ur},tt[d2]={size:12,setter:Ur},tt[p2]={size:16,setter:Ur},tt[Dd]={size:4,setter:lu},tt[A2]={size:8,setter:lu},tt[E2]={size:12,setter:lu},tt[_2]={size:16,setter:lu},tt[g2]={size:4,setter:Ur},tt[m2]={size:8,setter:Ur},tt[b2]={size:12,setter:Ur},tt[y2]={size:16,setter:Ur},tt[w2]={size:4,setter:Rd,count:2},tt[v2]={size:9,setter:Rd,count:3},tt[x2]={size:16,setter:Rd,count:4};function D2(e){const t=e.name;return t.startsWith("gl_")||t.startsWith("webgl_")}const NI=/(\.|\[|]|\w+)/g,LI=e=>e>="0"&&e<="9";function F2(e,t,n,r){const i=e.split(NI).filter(s=>s!=="");let a=0,o="";for(;;){const s=i[a++];o+=s;const f=LI(s[0]),l=f?parseInt(s):s;if(f&&(o+=i[a++]),a===i.length){n[l]=t;break}else{const c=i[a++],h=c==="[",d=n[l]||(h?[]:{});n[l]=d,n=d,r[o]=r[o]||function(p){return function(b){L2(p,b)}}(d),o+=c}}}function OI(e,t){let n=0;function r(s,f,l){const u=f.name.endsWith("[0]"),c=f.type,h=ae[c];if(!h)throw new Error(`unknown type: 0x${c.toString(16)}`);let d;if(h.bindPoint){const p=n;n+=f.size,u?d=h.arraySetter(e,c,p,l,f.size):d=h.setter(e,c,p,l,f.size)}else h.arraySetter&&u?d=h.arraySetter(e,l):d=h.setter(e,l);return d.location=l,d}const i={},a={},o=e.getProgramParameter(t,l2);for(let s=0;s<o;++s){const f=e.getActiveUniform(t,s);if(D2(f))continue;let l=f.name;l.endsWith("[0]")&&(l=l.substr(0,l.length-3));const u=e.getUniformLocation(t,f.name);if(u){const c=r(t,f,u);i[l]=c,F2(l,c,a,i)}}return i}function zI(e,t){const n={},r=e.getProgramParameter(t,jT);for(let i=0;i<r;++i){const a=e.getTransformFeedbackVarying(t,i);n[a.name]={index:i,type:a.type,size:a.size}}return n}function UI(e,t){const n=e.getProgramParameter(t,l2),r=[],i=[];for(let s=0;s<n;++s){i.push(s),r.push({});const f=e.getActiveUniform(t,s);r[s].name=f.name}[["UNIFORM_TYPE","type"],["UNIFORM_SIZE","size"],["UNIFORM_BLOCK_INDEX","blockNdx"],["UNIFORM_OFFSET","offset"]].forEach(function(s){const f=s[0],l=s[1];e.getActiveUniforms(t,i,e[f]).forEach(function(u,c){r[c][l]=u})});const a={},o=e.getProgramParameter(t,qT);for(let s=0;s<o;++s){const f=e.getActiveUniformBlockName(t,s),l={index:e.getUniformBlockIndex(t,f),usedByVertexShader:e.getActiveUniformBlockParameter(t,s,ZT),usedByFragmentShader:e.getActiveUniformBlockParameter(t,s,WT),size:e.getActiveUniformBlockParameter(t,s,YT),uniformIndices:e.getActiveUniformBlockParameter(t,s,QT)};l.used=l.usedByVertexShader||l.usedByFragmentShader,a[f]=l}return{blockSpecs:a,uniformData:r}}const R2=/\[\d+\]\.$/,GI=(e,t)=>((e+(t-1))/t|0)*t;function HI(e,t,n,r){if(t||n){r=r||1;const a=e.length/4;return function(o){let s=0,f=0;for(let l=0;l<a;++l){for(let u=0;u<r;++u)e[s++]=o[f++];s+=4-r}}}else return function(i){i.length?e.set(i):e[0]=i}}function VI(e,t,n,r){const i=n.blockSpecs,a=n.uniformData,o=i[r];if(!o)return UT("no uniform block object named:",r),{name:r,uniforms:{}};const s=new ArrayBuffer(o.size),f=e.createBuffer(),l=o.index;e.bindBuffer(kd,f),e.uniformBlockBinding(t,o.index,l);let u=r+".";R2.test(u)&&(u=u.replace(R2,"."));const c={},h={},d={};return o.uniformIndices.forEach(function(p){const b=a[p];let y=b.name;y.startsWith(u)&&(y=y.substr(u.length));const w=y.endsWith("[0]");w&&(y=y.substr(0,y.length-3));const S=ae[b.type],C=S.Type,_=w?GI(S.size,16)*b.size:S.size*b.size,k=new C(s,b.offset,_/C.BYTES_PER_ELEMENT);c[y]=k;const B=HI(k,w,S.rows,S.cols);h[y]=B,F2(y,B,d,h)}),{name:r,array:s,asFloat:new Float32Array(s),buffer:f,uniforms:c,setters:h}}function P2(e,t,n){return VI(e,t.program,t.uniformBlockSpec,n)}function jI(e,t,n){const i=(t.uniformBlockSpec||t).blockSpecs[n.name];if(i){const a=i.index;return e.bindBufferRange(kd,a,n.buffer,n.offset||0,n.array.byteLength),!0}return!1}function M2(e,t,n){jI(e,t,n)&&e.bufferData(kd,n.array,GT)}function N2(e,t){const n=e.setters;for(const r in t){const i=n[r];if(i){const a=t[r];i(a)}}}function L2(e,t){for(const n in t){const r=e[n];typeof r=="function"?r(t[n]):L2(e[n],t[n])}}function Yt(e,...t){const n=e.uniformSetters||e,r=t.length;for(let i=0;i<r;++i){const a=t[i];if(Array.isArray(a)){const o=a.length;for(let s=0;s<o;++s)Yt(n,a[s])}else for(const o in a){const s=n[o];s&&s(a[o])}}}function qI(e,t){const n={},r=e.getProgramParameter(t,VT);for(let i=0;i<r;++i){const a=e.getActiveAttrib(t,i);if(D2(a))continue;const o=e.getAttribLocation(t,a.name),s=tt[a.type],f=s.setter(e,o,s);f.location=o,n[a.name]=f}return n}function ZI(e,t){for(const n in t){const r=e[n];r&&r(t[n])}}function za(e,t,n){n.vertexArrayObject?e.bindVertexArray(n.vertexArrayObject):(ZI(t.attribSetters||t,n.attribs),n.indices&&e.bindBuffer(HT,n.indices))}function WI(e,t){const n=OI(e,t),r=qI(e,t),i={program:t,uniformSetters:n,attribSetters:r};return Da(e)&&(i.uniformBlockSpec=UI(e,t),i.transformFeedbackInfo=zI(e,t)),i}const YI=4,O2=5123;function Bs(e,t,n,r,i,a){n=n===void 0?YI:n;const o=t.indices,s=t.elementType,f=r===void 0?t.numElements:r;i=i===void 0?0:i,s||o?a!==void 0?e.drawElementsInstanced(n,f,s===void 0?O2:t.elementType,i,a):e.drawElements(n,f,s===void 0?O2:t.elementType,i):a!==void 0?e.drawArraysInstanced(n,i,f,a):e.drawArrays(n,i,f)}const QI=36160,zi=36161,XI=3553,$I=5121,KI=6402,JI=6408,ek=33190,tk=36012,nk=35056,rk=36013,ik=32854,ak=32855,ok=36194,z2=33189,U2=6401,G2=36168,Pd=34041,sk=36064,fu=36096,H2=36128,Md=33306,Nd=33071,Ld=9729,V2=[{format:JI,type:$I,min:Ld,wrap:Nd},{format:Pd}],En={};En[Pd]=Md,En[U2]=H2,En[G2]=H2,En[KI]=fu,En[z2]=fu,En[ek]=fu,En[tk]=fu,En[nk]=Md,En[rk]=Md;function lk(e,t){return En[e]||En[t]}const Gr={};Gr[ik]=!0,Gr[ak]=!0,Gr[ok]=!0,Gr[Pd]=!0,Gr[z2]=!0,Gr[U2]=!0,Gr[G2]=!0;function fk(e){return Gr[e]}function uk(e,t,n,r){const i=QI,a=e.createFramebuffer();e.bindFramebuffer(i,a),n=n||e.drawingBufferWidth,r=r||e.drawingBufferHeight,t=t||V2;let o=0;const s={framebuffer:a,attachments:[],width:n,height:r};return t.forEach(function(f){let l=f.attachment;const u=f.samples,c=f.format;let h=f.attachmentPoint||lk(c,f.internalFormat);if(h||(h=sk+o++),!l)if(u!==void 0||fk(c))l=e.createRenderbuffer(),e.bindRenderbuffer(zi,l),u>1?e.renderbufferStorageMultisample(zi,u,c,n,r):e.renderbufferStorage(zi,c,n,r);else{const d=Object.assign({},f);d.width=n,d.height=r,d.auto===void 0&&(d.auto=!1,d.min=d.min||d.minMag||Ld,d.mag=d.mag||d.minMag||Ld,d.wrapS=d.wrapS||d.wrap||Nd,d.wrapT=d.wrapT||d.wrap||Nd),l=ks(e,d)}if(Pb(e,l))e.framebufferRenderbuffer(i,h,zi,l);else if(jf(e,l))f.layer!==void 0?e.framebufferTextureLayer(i,h,l,f.level||0,f.layer):e.framebufferTexture2D(i,h,f.target||XI,l,f.level||0);else throw new Error("unknown attachment type");s.attachments.push(l)}),s}function ck(e,t,n,r,i){r=r||e.drawingBufferWidth,i=i||e.drawingBufferHeight,t.width=r,t.height=i,n=n||V2,n.forEach(function(a,o){const s=t.attachments[o],f=a.format,l=a.samples;if(l!==void 0||Pb(e,s))e.bindRenderbuffer(zi,s),l>1?e.renderbufferStorageMultisample(zi,l,f,r,i):e.renderbufferStorage(zi,f,r,i);else if(jf(e,s))zT(e,s,a,r,i);else throw new Error("unknown attachment type")})}function hk(e,t,n){const r=e.createVertexArray();return e.bindVertexArray(r),t.length||(t=[t]),t.forEach(function(i){za(e,i,n)}),e.bindVertexArray(null),{numElements:n.numElements,elementType:n.elementType,vertexArrayObject:r}}const dk=/^(.*?)_/;function pk(e,t){yd(e,0);const n=e.getExtension(t);if(n){const r={},i=dk.exec(t)[1],a="_"+i;for(const o in n){const s=n[o],f=typeof s=="function",l=f?i:a;let u=o;o.endsWith(l)&&(u=o.substring(0,o.length-l.length)),e[u]!==void 0?!f&&e[u]!==s&&Rb(u,e[u],s,o):f?e[u]=function(c){return function(){return c.apply(n,arguments)}}(s):(e[u]=s,r[u]=s)}r.constructor={name:n.constructor.name},yd(r,0)}return n}const j2=["ANGLE_instanced_arrays","EXT_blend_minmax","EXT_color_buffer_float","EXT_color_buffer_half_float","EXT_disjoint_timer_query","EXT_disjoint_timer_query_webgl2","EXT_frag_depth","EXT_sRGB","EXT_shader_texture_lod","EXT_texture_filter_anisotropic","OES_element_index_uint","OES_standard_derivatives","OES_texture_float","OES_texture_float_linear","OES_texture_half_float","OES_texture_half_float_linear","OES_vertex_array_object","WEBGL_color_buffer_float","WEBGL_compressed_texture_atc","WEBGL_compressed_texture_etc1","WEBGL_compressed_texture_pvrtc","WEBGL_compressed_texture_s3tc","WEBGL_compressed_texture_s3tc_srgb","WEBGL_depth_texture","WEBGL_draw_buffers"];function q2(e){for(let t=0;t<j2.length;++t)pk(e,j2[t])}function gk(e,t){const n=["webgl2","webgl","experimental-webgl"];let r=null;for(let i=0;i<n.length;++i)if(r=e.getContext(n[i],t),r){q2(r);break}return r}function mk(e,t){return gk(e,t)}const bk=`/***The vertex position wrt the rectangle specified by(x,x2,y,y2).*[0,0]=[x,y],[1,1]=[x2,y2].*The x or y component may contain fractional values if the rectangle*have been tessellated.*/in vec2 frac;uniform vec2 uMinSize;uniform float uMinOpacity;uniform vec4 uCornerRadii;out lowp vec4 vFillColor;out lowp vec4 vStrokeColor;out float vHalfStrokeWidth;out vec4 vCornerRadii;
130
128
  #if defined(ROUNDED_CORNERS) || defined(STROKED)
131
129
  out vec2 vPosInPixels;
132
130
  #endif
@@ -134,7 +132,7 @@ out vec2 vHalfSizeInPixels;/***Clamps the minimumSize and returns an opacity tha
134
132
  #if defined(ROUNDED_CORNERS) || defined(STROKED)
135
133
  float aaPadding=1.0/uDevicePixelRatio;float strokeWidth=getScaled_strokeWidth();float strokeOpacity=getScaled_strokeOpacity()*opaFactor;vec2 centeredFrac=frac-0.5;vec2 expand=centeredFrac*(strokeWidth+aaPadding)/uViewportSize;pos+=expand;vec2 sizeInPixels=size*uViewportSize;vPosInPixels=(centeredFrac+expand/size)*sizeInPixels;vHalfSizeInPixels=sizeInPixels/2.0;vCornerRadii=min(uCornerRadii,min(vHalfSizeInPixels.x,vHalfSizeInPixels.y));vHalfStrokeWidth=strokeWidth/2.0;vStrokeColor=vec4(getScaled_stroke()*strokeOpacity,strokeOpacity);
136
134
  #endif
137
- gl_Position=unitToNdc(pos);float fillOpacity=getScaled_fillOpacity()*opaFactor;vFillColor=vec4(getScaled_fill()*fillOpacity,fillOpacity);setupPicking();}`,iN=`#if defined(ROUNDED_CORNERS) || defined(STROKED)
135
+ gl_Position=unitToNdc(pos);float fillOpacity=getScaled_fillOpacity()*opaFactor;vFillColor=vec4(getScaled_fill()*fillOpacity,fillOpacity);setupPicking();}`,yk=`#if defined(ROUNDED_CORNERS) || defined(STROKED)
138
136
  in vec2 vPosInPixels;
139
137
  #endif
140
138
  in vec2 vHalfSizeInPixels;in lowp vec4 vFillColor;in lowp vec4 vStrokeColor;in float vHalfStrokeWidth;in vec4 vCornerRadii;out lowp vec4 fragColor;float sdRoundedBox(vec2 p,vec2 b,vec4 r){r.xy=p.x>0.0 ? r.xy : r.zw;r.x=p.y>0.0 ? r.x : r.y;vec2 q=abs(p)-b+r.x;return min(max(q.x,q.y),0.0)+length(max(q,0.0))-r.x;}float sdSharpBox(vec2 p,vec2 b){vec2 q=abs(p)-b;return max(q.x,q.y);}void main(void){
@@ -148,29 +146,29 @@ fragColor=distanceToColor(d,vFillColor,vStrokeColor,vHalfStrokeWidth);if(fragCol
148
146
  #else
149
147
  fragColor=vFillColor;
150
148
  #endif
151
- if(uPickingEnabled){fragColor=vPickingColor;}}`,t0="attr_",pw="uDomain_",aN="range_",mw="scale_",bw="getScaled_",n0="uRangeTexture_",yw=3402823466e29;function oN(t){const e=t.match(/^(?:(\w+)-)?(\w+)$/);if(!e)throw new Error("Not a scale type: "+t);return{family:e[1]||"continuous",transform:e[2]}}function sN(t,e){let n;if(ol(t))n=ta(ey(t)(e));else if(Ke(e))if(Xi(t))n=fN(e);else throw new Error(`String values are not supported on the "${t}" channel: ${e}`);else if(pf(e))n=ta(e?1:0);else if(e===null)if(Xi(t))n=ta([0,0,0]);else throw new Error(`null value is not supported on the "${t}" chanel.`);else n=ta(e);return`
152
- #define ${t}_DEFINED
153
- ${n.type} ${bw}${t}() {
149
+ if(uPickingEnabled){fragColor=vPickingColor;}}`,Od="attr_",Z2="uDomain_",wk="range_",W2="scale_",Y2="getScaled_",zd="uRangeTexture_",Q2=3402823466e29;function vk(e){const t=e.match(/^(?:(\w+)-)?(\w+)$/);if(!t)throw new Error("Not a scale type: "+e);return{family:t[1]||"continuous",transform:t[2]}}function xk(e,t){let n;if(Hf(e))n=Ui(Db(e)(t));else if(Qe(t))if(Mi(e))n=Ek(t);else throw new Error(`String values are not supported on the "${e}" channel: ${t}`);else if(Xl(t))n=Ui(t?1:0);else if(t===null)if(Mi(e))n=Ui([0,0,0]);else throw new Error(`null value is not supported on the "${e}" chanel.`);else n=Ui(t);return`
150
+ #define ${e}_DEFINED
151
+ ${n.type} ${Y2}${e}() {
154
152
  // Constant value
155
153
  return ${n};
156
- }`}function uN(t,e,n){if(Fn(n))throw new Error(`Cannot create scale for "value": ${JSON.stringify(n)}`);if(!e)throw new Error("Scale is undefined");const r=Wi(t),i=t0+t,a=pw+r,o=aN+r,s=Il(e.type),f=s?"vec2":"float",u=e.domain?e.domain().length:void 0;let l;const c=[];c.push(""),c.push("/".repeat(70)),c.push(`// Channel: ${t}`),c.push(""),c.push(`#define ${t}_DEFINED`);const{transform:h}=oN(e.type),d=(M,...R)=>lN.apply(null,[M,"value",...R]);let g;switch(h){case"linear":g=d("scaleLinear","domain",o);break;case"log":g=d("scaleLog","domain",o,e.base());break;case"symlog":g=d("scaleSymlog","domain",o,e.constant());break;case"pow":case"sqrt":g=d("scalePow","domain",o,e.exponent());break;case"index":case"locus":g=d("scaleBandHp","domain",o,e.paddingInner(),e.paddingOuter(),e.align(),n.band??.5);break;case"point":case"band":g=d("scaleBand","domain",o,e.paddingInner(),e.paddingOuter(),e.align(),n.band??.5);break;case"ordinal":case"null":case"identity":g=d("scaleIdentity");break;case"threshold":break;default:throw new Error(`Unsupported scale type: ${e.type}! ${t}: ${JSON.stringify(n)}`)}const b=rl(e.type)||Et(e.type)&&Xi(t)?[0,1]:e.range?e.range():void 0;if(b&&t==r&&b.length&&b.every(Lt)){const M=ww(b);c.push(`const ${M.type} ${o} = ${M};`)}const y=Xi(t)?"vec3":"float";let w;if(Xi(t)){const M=n0+r;if(t==r&&c.push(`uniform sampler2D ${M};`),Et(e.type))w=`getInterpolatedColor(${M}, transformed)`;else if(Jr(e.type)||Za(e.type))w=`getDiscreteColor(${M}, int(transformed))`;else throw new Error("Problem with color scale!")}else if(e.type==="ordinal"||Za(e.type)){const M=n0+r;t==r&&c.push(`uniform sampler2D ${M};`),w=`getDiscreteColor(${M}, int(transformed)).r`}js(n)?c.push(`uniform highp ${f} ${i};`):c.push(`in highp ${f} ${i};`);const E=[],_=Et(e.type)&&u>2,D=Za(e.type)||_;if(E.push("int slot = 0;"),D){const M=a;E.push(_?`while (slot < ${M}.length() - 2 && value >= ${M}[slot + 1]) { slot++; }`:`while (slot < ${M}.length() && value >= ${M}[slot]) { slot++; }`)}const T=Et(e.type)||Za(e.type)||["band","point"].includes(e.type);if(g){const M=a;T&&(s?E.push(`vec3 domain = ${M};`):E.push(`vec2 domain = vec2(${M}[slot], ${M}[slot + 1]);`)),E.push(`float transformed = ${g};`),_&&E.push(`transformed = (float(slot) + transformed) / (float(${M}.length() - 1));`)}else E.push("float transformed = float(slot);");"clamp"in e&&e.clamp()&&E.push(`transformed = clampToRange(transformed, ${ww(b)});`),E.push(`return ${w??"transformed"};`),c.push(`
157
- ${y} ${mw}${t}(${f} value) {
158
- ${E.map(M=>` ${M}
154
+ }`}function Ak(e,t,n){if(xn(n))throw new Error(`Cannot create scale for "value": ${JSON.stringify(n)}`);if(!t)throw new Error("Scale is undefined");const r=Pi(e),i=Od+e,a=Z2+r,o=wk+r,s=uu(t.type),f=s?"vec2":"float",l=t.domain?t.domain().length:void 0;let u;const c=[];c.push(""),c.push("/".repeat(70)),c.push(`// Channel: ${e}`),c.push(""),c.push(`#define ${e}_DEFINED`);const{transform:h}=vk(t.type),d=(I,...R)=>_k.apply(null,[I,"value",...R]);let p;switch(h){case"linear":p=d("scaleLinear","domain",o);break;case"log":p=d("scaleLog","domain",o,t.base());break;case"symlog":p=d("scaleSymlog","domain",o,t.constant());break;case"pow":case"sqrt":p=d("scalePow","domain",o,t.exponent());break;case"index":case"locus":p=d("scaleBandHp","domain",o,t.paddingInner(),t.paddingOuter(),t.align(),n.band??.5);break;case"point":case"band":p=d("scaleBand","domain",o,t.paddingInner(),t.paddingOuter(),t.align(),n.band??.5);break;case"ordinal":case"null":case"identity":p=d("scaleIdentity");break;case"threshold":break;default:throw new Error(`Unsupported scale type: ${t.type}! ${e}: ${JSON.stringify(n)}`)}const b=zf(t.type)||xt(t.type)&&Mi(e)?[0,1]:t.range?t.range():void 0;if(b&&e==r&&b.length&&b.every(Ft)){const I=X2(b);c.push(`const ${I.type} ${o} = ${I};`)}const y=Mi(e)?"vec3":"float";let w;if(Mi(e)){const I=zd+r;if(e==r&&c.push(`uniform sampler2D ${I};`),xt(t.type))w=`getInterpolatedColor(${I}, transformed)`;else if(Mr(t.type)||ka(t.type))w=`getDiscreteColor(${I}, int(transformed))`;else throw new Error("Problem with color scale!")}else if(t.type==="ordinal"||ka(t.type)){const I=zd+r;e==r&&c.push(`uniform sampler2D ${I};`),w=`getDiscreteColor(${I}, int(transformed)).r`}xs(n)?c.push(`uniform highp ${f} ${i};`):c.push(`in highp ${f} ${i};`);const S=[],C=xt(t.type)&&l>2,_=ka(t.type)||C;if(S.push("int slot = 0;"),_){const I=a;S.push(C?`while (slot < ${I}.length() - 2 && value >= ${I}[slot + 1]) { slot++; }`:`while (slot < ${I}.length() && value >= ${I}[slot]) { slot++; }`)}const k=xt(t.type)||ka(t.type)||["band","point"].includes(t.type);if(p){const I=a;k&&(s?S.push(`vec3 domain = ${I};`):S.push(`vec2 domain = vec2(${I}[slot], ${I}[slot + 1]);`)),S.push(`float transformed = ${p};`),C&&S.push(`transformed = (float(slot) + transformed) / (float(${I}.length() - 1));`)}else S.push("float transformed = float(slot);");"clamp"in t&&t.clamp()&&S.push(`transformed = clampToRange(transformed, ${X2(b)});`),S.push(`return ${w??"transformed"};`),c.push(`
155
+ ${y} ${W2}${e}(${f} value) {
156
+ ${S.map(I=>` ${I}
159
157
  `).join("")}
160
158
  }`),c.push(`
161
- ${y} ${bw}${t}() {
162
- return ${mw}${t}(${i});
163
- }`);const N=c.join(`
164
- `);if(T&&t==r){const M=Et(e.type)||Za(e.type)?u:2;l=s?`highp vec3 ${a};`:`mediump float ${a}[${M}];`}return{glsl:N,domainUniform:l}}function r0(t){if(!Lt(t))throw new Error(`Not a number: ${t}`);if(t==1/0)return""+yw;if(t==-1/0)return""+-yw;{let e=`${t}`;return/^(-)?\d+$/.test(e)&&(e+=".0"),e}}function ta(t){typeof t=="number"&&(t=[t]);const e=t.length;if(e<1||e>4)throw new Error("Invalid number of components: "+e);let n,r;return e>1?(n=`vec${e}`,r=`${n}(${t.map(r0).join(", ")})`):(n="float",r=r0(t[0])),Object.assign(r,{type:n,numComponents:e})}function fN(t){const e=Wr(t).rgb();return ta([e.r,e.g,e.b].map(n=>n/255))}function ww(t){return ta([t[0],As(t)])}function lN(t,...e){const n=[];for(const r of e)Lt(r)?n.push(r0(r)):Xt(r)?n.push(ta(r)):n.push(r);return`${t}(${n.join(", ")})`}function Il(t){return t=="index"||t=="locus"}const xw=2**11,cN=xw-1;function vw(t,e=[]){const n=t&cN,r=t-n;return e[0]=r,e[1]=n,e}function hN(t){const e=t%xw;return[t-e,e]}function dN(t){return[...hN(t[0]),t[1]-t[0]]}class gN{constructor(e){this.size=e,this.arrays={},this.pushers=[],this.dataUpdaters=[],this.vertexCount=0}addConverter(e,n){const r=this.createUpdater(t0+e,n.numComponents||1,n.arrayReference),i=n.f;this.dataUpdaters.push(n.arrayReference?a=>r(i(a)):a=>r(i(a)))}createUpdater(e,n,r){if(!Lt(this.size))throw new Error("The number of vertices must be defined!");let i,a,o=0;const s=new Float32Array(this.size*n);if(this.arrays[e]={data:s,numComponents:n},n==1){let f=0;const u=l=>{f=+l};i=()=>{s[o++]=f},a=u}else{let f=r??[0];const u=r?l=>{}:l=>{f=l};switch(n){case 1:break;case 2:i=()=>{s[o++]=f[0],s[o++]=f[1]},a=u;break;case 3:i=()=>{s[o++]=f[0],s[o++]=f[1],s[o++]=f[2]},a=u;break;case 4:i=()=>{s[o++]=f[0],s[o++]=f[1],s[o++]=f[2],s[o++]=f[3]},a=u;break;default:throw new Error("Invalid numComponents: "+n)}}return this.pushers.push(i),a}_unrollPushAll(){let e="",n="";for(let i=0;i<this.pushers.length;i++)e+=`const p${i} = that.pushers[${i}];
159
+ ${y} ${Y2}${e}() {
160
+ return ${W2}${e}(${i});
161
+ }`);const B=c.join(`
162
+ `);if(k&&e==r){const I=xt(t.type)||ka(t.type)?l:2;u=s?`highp vec3 ${a};`:`mediump float ${a}[${I}];`}return{glsl:B,domainUniform:u}}function Ud(e){if(!Ft(e))throw new Error(`Not a number: ${e}`);if(e==1/0)return""+Q2;if(e==-1/0)return""+-Q2;{let t=`${e}`;return/^(-)?\d+$/.test(t)&&(t+=".0"),t}}function Ui(e){typeof e=="number"&&(e=[e]);const t=e.length;if(t<1||t>4)throw new Error("Invalid number of components: "+t);let n,r;return t>1?(n=`vec${t}`,r=`${n}(${e.map(Ud).join(", ")})`):(n="float",r=Ud(e[0])),Object.assign(r,{type:n,numComponents:t})}function Ek(e){const t=Dr(e).rgb();return Ui([t.r,t.g,t.b].map(n=>n/255))}function X2(e){return Ui([e[0],ns(e)])}function _k(e,...t){const n=[];for(const r of t)Ft(r)?n.push(Ud(r)):qt(r)?n.push(Ui(r)):n.push(r);return`${e}(${n.join(", ")})`}function uu(e){return e=="index"||e=="locus"}const $2=2**11,Sk=$2-1;function K2(e,t=[]){const n=e&Sk,r=e-n;return t[0]=r,t[1]=n,t}function Ck(e){const t=e%$2;return[e-t,t]}function Tk(e){return[...Ck(e[0]),e[1]-e[0]]}class Ik{constructor(t){this.size=t,this.arrays={},this.pushers=[],this.dataUpdaters=[],this.vertexCount=0}addConverter(t,n){const r=this.createUpdater(Od+t,n.numComponents||1,n.arrayReference),i=n.f;this.dataUpdaters.push(n.arrayReference?a=>r(i(a)):a=>r(i(a)))}createUpdater(t,n,r){if(!Ft(this.size))throw new Error("The number of vertices must be defined!");let i,a,o=0;const s=new Float32Array(this.size*n);if(this.arrays[t]={data:s,numComponents:n},n==1){let f=0;const l=u=>{f=+u};i=()=>{s[o++]=f},a=l}else{let f=r??[0];const l=r?u=>{}:u=>{f=u};switch(n){case 1:break;case 2:i=()=>{s[o++]=f[0],s[o++]=f[1]},a=l;break;case 3:i=()=>{s[o++]=f[0],s[o++]=f[1],s[o++]=f[2]},a=l;break;case 4:i=()=>{s[o++]=f[0],s[o++]=f[1],s[o++]=f[2],s[o++]=f[3]},a=l;break;default:throw new Error("Invalid numComponents: "+n)}}return this.pushers.push(i),a}_unrollPushAll(){let t="",n="";for(let i=0;i<this.pushers.length;i++)t+=`const p${i} = that.pushers[${i}];
165
163
  `,n+=`p${i}();
166
- `;const r=new Function("that",`${e}
164
+ `;const r=new Function("that",`${t}
167
165
 
168
166
  return function unrolledPushAll() {
169
167
  ${n}
170
168
  that.vertexCount++;
171
169
  };
172
- `);this.pushAll=r(this)}pushAll(){this.size>1e5?this._unrollPushAll():this.pushAll=()=>{for(let n=0;n<this.pushers.length;n++)this.pushers[n]();this.vertexCount++},this.pushAll()}updateFromDatum(e){for(let n=0;n<this.dataUpdaters.length;n++)this.dataUpdaters[n](e)}pushFromDatum(e){this.updateFromDatum(e),this.pushAll()}}const io=5,i0=127;function a0(t){const e=[];for(let g=0;g<=i0;g++)e.push(void 0);const n=new Map;for(const g of t.chars)g.id<=i0?e[g.id]=g:n.set(g.id,g);const r=8722;n.has(r)||n.set(r,e["-".charCodeAt(0)]);function i(g){return(g<=i0?e[g]:n.get(g))||e[63]}function a(g){return i(g.charCodeAt(0))}const o=t.common.base,s=a("x"),f=a("X"),u=a("q"),l=s.height-io*2,c=f.height-io*2,h=u.height-s.height+u.yoffset-s.yoffset;function d(g,b=1){let y=0;for(let w=0;w<g.length;w++)y+=i(g.charCodeAt(w)).xadvance;return y/o*b}return{measureWidth:d,getCharByCode:i,getChar:a,xHeight:l,capHeight:c,descent:h,common:t.common}}function pN(t,e=0,n=1){return Math.max(e,Math.min(n,t))}const Aw=2**31-1,mN=-(2**31);function bN(t,e,n,r=n){const i=new Int32Array(t);i.fill(Aw);let a=mN,o=!1;const s=new Int32Array(t),f=e[0],l=(e[1]-e[0])/t,c=(y,w)=>{const E=(y-f)/l,_=Math.floor(E);return pN(w&&_==E?_-1:_,0,t-1)};function h(y,w,E){w>a?a=w:o||(o=!0,console.debug("Items are not ordered properly. Disabling binned index."));const _=n(y),D=c(_,!1);i[D]>w&&(i[D]=w),s[D]<E&&(s[D]=E)}function d(y,w,E){w>a?a=w:o||(o=!0,console.debug("Items are not ordered properly. Disabling binned index."));const _=n(y),D=r(y),T=c(_,!1),N=c(D,!0);for(let M=T;M<=N;M++)i[M]>w&&(i[M]=w),s[M]<E&&(s[M]=E)}const g=(y,w,E=[0,0])=>{const _=c(y,!1),D=c(w,!0),T=i[_],N=Math.max(s[D],T);return E[0]=T,E[1]=N,E},b=()=>{for(let w=1;w<s.length;w++)s[w]<s[w-1]&&(s[w]=s[w-1]);let y=!0;for(let w=i.length-1;w>0;w--)y&&i[w]==Aw?(i[w]=s[w],y=!1):i[w-1]>i[w]&&(i[w-1]=i[w]);return g};if(h.getIndex=b,d.getIndex=b,!o)return n==r?h:d}class $s{constructor({encoders:e,numVertices:n=void 0,attributes:r=[]}){this.encoders=e,this.variableEncoders=Object.fromEntries(Object.entries(e).filter(([i,a])=>r.includes(i)&&a&&a.scale&&!a.constant)),this.allocatedVertices=n,this.variableBuilder=new gN(n);for(const[i,a]of Object.entries(this.variableEncoders)){const o=a.accessor,s=[0,0],f=Il(a.scale.type),u=a.indexer,l=u?c=>u(o(c)):f?c=>vw(o(c),s):o;this.variableBuilder.addConverter(i,{f:l,numComponents:f?2:1,arrayReference:f?s:void 0})}this.lastOffset=0,this.rangeMap=new ki([],JSON.stringify)}registerBatch(e){var a;const n=this.lastOffset,r=this.variableBuilder.vertexCount,i=r-n;i&&this.rangeMap.set(e,{offset:n,count:i,xIndex:(a=this.xIndexer)==null?void 0:a.getIndex()}),this.lastOffset=r}addBatches(e){for(const[n,r]of e)this.addBatch(n,r)}addBatch(e,n,r=0,i=n.length){this.prepareXIndexer(n,r,i);for(let a=r;a<i;a++){const o=n[a];this.variableBuilder.pushFromDatum(o),this.addToXIndex(o)}this.registerBatch(e)}prepareXIndexer(e,n=0,r=n+e.length){const i=()=>{this.addToXIndex=f=>{},this.xIndexer=void 0};if(!e.length||r-n<0){i();return}const a=f=>{var u;return f&&Et((u=f.scale)==null?void 0:u.type)&&f},o=a(this.variableEncoders.x),s=a(this.variableEncoders.x2);if(o){const f=o.accessor,u=s?s.accessor:f,l=[f(e[n]),u(e[r-1])];if(l[1]>l[0]){this.xIndexer=bN(50,l,f,u);let c=this.variableBuilder.vertexCount;this.addToXIndex=h=>{let d=this.variableBuilder.vertexCount;this.xIndexer(h,c,d),c=d}}else i()}else i()}addToXIndex(e){}toArrays(){return{arrays:this.variableBuilder.arrays,vertexCount:this.variableBuilder.vertexCount,allocatedVertices:this.allocatedVertices,rangeMap:this.rangeMap}}}class yN extends $s{constructor({encoders:e,attributes:n,tessellationThreshold:r=1/0,visibleRange:i=[-1/0,1/0],numItems:a}){super({encoders:e,attributes:n,numVertices:r==1/0?a*6:void 0}),this.visibleRange=i,this.tessellationThreshold=r||1/0,this.updateFrac=this.variableBuilder.createUpdater("frac",2)}addBatch(e,n,r=0,i=n.length){if(i<=r)return;const a=this.encoders,[o,s]=this.visibleRange,f=h=>h.accessor||(d=>0),u=f(a.x),l=f(a.x2);this.prepareXIndexer(n,r,i);const c=[0,0];this.updateFrac(c);for(let h=r;h<i;h++){const d=n[h];let g=u(d),b=l(d);if(g>b&&([g,b]=[b,g]),b<o||g>s)continue;g<o&&(g=o),b>s&&(b=s),this.variableBuilder.updateFromDatum(d),c[0]=0,c[1]=0;const y=1;this.variableBuilder.pushAll();for(let w=0;w<=y;w++)c[0]=w/y,c[1]=0,this.variableBuilder.pushAll(),c[1]=1,this.variableBuilder.pushAll();this.variableBuilder.pushAll(),this.addToXIndex(d)}this.registerBatch(e)}}class wN extends $s{constructor({encoders:e,attributes:n,tessellationThreshold:r=1/0,visibleRange:i=[-1/0,1/0],numItems:a}){super({encoders:e,attributes:n,numVertices:r==1/0?a*6:void 0}),this.visibleRange=i,this.tessellationThreshold=r||1/0,this.updateSide=this.variableBuilder.createUpdater("side",1),this.updatePos=this.variableBuilder.createUpdater("pos",1)}addBatch(e,n,r=0,i=n.length){this.prepareXIndexer(n,r,i);for(let a=r;a<i;a++){const o=n[a];this.variableBuilder.updateFromDatum(o),this.updateSide(-.5),this.updatePos(0),this.variableBuilder.pushAll();const s=1;for(let f=0;f<=s;f++)this.updatePos(f/s),this.updateSide(-.5),this.variableBuilder.pushAll(),this.updateSide(.5),this.variableBuilder.pushAll();this.variableBuilder.pushAll(),this.addToXIndex(o)}this.registerBatch(e)}}class xN extends $s{constructor({encoders:e,attributes:n,numItems:r=void 0}){super({encoders:e,attributes:n,numVertices:r})}}class vN extends $s{constructor({encoders:e,attributes:n,numItems:r=void 0}){super({encoders:e,attributes:n,numVertices:r})}toArrays(){const e=this.variableBuilder.arrays;for(let n of Object.values(e))n.divisor=1;return super.toArrays()}}class AN extends $s{constructor({encoders:e,attributes:n,fontMetrics:r,properties:i,numCharacters:a=void 0}){super({encoders:e,attributes:n,numVertices:a*6}),this.metadata=r,this.metrics=r,this.properties=i;const s=e.text.channelDef;this.numberFormat=!Fn(s)&&"format"in s&&s.format?pt(s.format):f=>f,this.updateVertexCoord=this.variableBuilder.createUpdater("vertexCoord",2),this.updateTextureCoord=this.variableBuilder.createUpdater("textureCoord",2),this.updateWidth=this.variableBuilder.createUpdater("width",1)}addBatch(e,n,r=0,i=n.length){const a=this.properties.align||"left",o=this.properties.logoLetters??!1,s=this.metadata.common.base,f=this.metadata.common.scaleH;let u=-io;switch(this.properties.baseline){case"top":u+=this.metrics.capHeight;break;case"middle":u+=this.metrics.capHeight/2;break;case"bottom":u-=this.metrics.descent;break}const l=this.encoders.text.accessor||this.encoders.text,c=[0,0];this.updateVertexCoord(c);const h=[0,0];this.updateTextureCoord(h),this.prepareXIndexer(n,r,i);for(let d=r;d<i;d++){const g=n[d],b=this.numberFormat(l(g)),y=Ke(b)?b:b===null?"":""+b;if(y.length==0)continue;this.variableBuilder.updateFromDatum(g);const w=o?y.length:this.metrics.measureWidth(y);this.updateWidth(w);let E=a=="right"?-w:a=="center"?-w/2:0;if(!o){const N=this.metrics.getCharByCode(y.charCodeAt(0));E-=(N.width-N.xadvance)/s/2}let _=-.5,D=1,T=1;for(let N=0;N<y.length;N++){const M=this.metrics.getCharByCode(y.charCodeAt(N)),R=o?1:M.xadvance/s;if(M.id==32){E+=R;continue}o?(T=(M.width+io*2)/M.width,E=-T/2,D=(M.height+io*2)/M.height,_=-.5-io/M.height):(D=M.height/s,_=-(M.height+M.yoffset+u)/s,T=M.width/s);const C=M.x,B=M.y;c[0]=E,c[1]=_+D,h[0]=C/f,h[1]=B/f,this.variableBuilder.pushAll(),c[0]=E+T,c[1]=_+D,h[0]=(C+M.width)/f,h[1]=B/f,this.variableBuilder.pushAll(),c[0]=E,c[1]=_,h[0]=C/f,h[1]=(B+M.height)/f,this.variableBuilder.pushAll(),c[0]=E+T,c[1]=_+D,h[0]=(C+M.width)/f,h[1]=B/f,this.variableBuilder.pushAll(),c[0]=E,c[1]=_,h[0]=C/f,h[1]=(B+M.height)/f,this.variableBuilder.pushAll(),c[0]=E+T,c[1]=_,h[0]=(C+M.width)/f,h[1]=(B+M.height)/f,this.variableBuilder.pushAll(),E+=R}this.addToXIndex(g)}this.registerBatch(e)}}const Ew=`#define PI 3.141593
173
- uniform View{mediump vec2 uViewOffset;mediump vec2 uViewScale;mediump vec2 uViewportSize;lowp float uDevicePixelRatio;lowp float uViewOpacity;bool uPickingEnabled;};/***Maps a coordinate on the unit scale to a normalized device coordinate.*(0,0)is at the bottom left corner.*/vec4 unitToNdc(vec2 coord){return vec4((coord*uViewScale+uViewOffset)*2.0-1.0,0.0,1.0);}vec4 unitToNdc(float x,float y){return unitToNdc(vec2(x,y));}vec4 pixelsToNdc(vec2 coord){return unitToNdc(coord/uViewportSize);}vec4 pixelsToNdc(float x,float y){return pixelsToNdc(vec2(x,y));}float linearstep(float edge0,float edge1,float x){return clamp((x-edge0)/(edge1-edge0),0.0,1.0);}/***Specialized linearstep for doing antialiasing*/float distanceToRatio(float d){return clamp(d*uDevicePixelRatio+0.5,0.0,1.0);}vec4 distanceToColor(float d,vec4 fill,vec4 stroke,float halfStrokeWidth){if(halfStrokeWidth>0.0){float sd=abs(d)-halfStrokeWidth;return mix(stroke,d<=0.0 ? fill : vec4(0.0),distanceToRatio(sd));}else{return fill*distanceToRatio(-d);}}`,EN="const float inf=1.0/0.0;vec3 getDiscreteColor(sampler2D s,int index){return texelFetch(s,ivec2(index % textureSize(s,0).x,0),0).rgb;}vec3 getInterpolatedColor(sampler2D s,float unitValue){return texture(s,vec2(unitValue,0.0)).rgb;}float clampToRange(float value,vec2 range){return clamp(value,min(range[0],range[1]),max(range[0],range[1]));}float scaleIdentity(float value){return value;}float scaleLinear(float value,vec2 domain,vec2 range){float domainSpan=domain[1]-domain[0];float rangeSpan=range[1]-range[0];return(value-domain[0])/domainSpan*rangeSpan+range[0];}float scaleLog(float value,vec2 domain,vec2 range,float base){return scaleLinear(log(value)/log(base),log(domain)/log(base),range);}float symlog(float value,float constant){return sign(value)*log(abs(value/constant)+1.0);}float scaleSymlog(float value,vec2 domain,vec2 range,float constant){return scaleLinear(symlog(value,constant),vec2(symlog(domain[0],constant),symlog(domain[1],constant)),range);}float scalePow(float value,vec2 domain,vec2 range,float exponent){return scaleLinear(pow(abs(value),exponent)*sign(value),pow(abs(domain),vec2(exponent))*sign(domain),range);}float scaleBand(float value,vec2 domainExtent,vec2 range,float paddingInner,float paddingOuter,float align,float band){float start=range[0];float stop=range[1];float rangeSpan=stop-start;float n=domainExtent[1]-domainExtent[0];paddingInner=int(n)>1 ? paddingInner : 0.0;float step=rangeSpan/max(1.0,n-paddingInner+paddingOuter*2.0);start+=(rangeSpan-step*(n-paddingInner))*align;float bandwidth=step*(1.0-paddingInner);return start+(value-domainExtent[0])*step+bandwidth*band;}float scaleBandHp(vec2 value,vec3 domainExtent,vec2 range,float paddingInner,float paddingOuter,float align,float band){float start=range[0];float stop=range[1];float rangeSpan=stop-start;vec2 domainStart=domainExtent.xy;float n=domainExtent[2];float step=rangeSpan/max(1.0,n-paddingInner+paddingOuter*2.0);start+=(rangeSpan-step*(n-paddingInner))*align;float bandwidth=step*(1.0-paddingInner);float hi=max(value[0]-domainStart[0],-inf);float lo=max(value[1]-domainStart[1],-inf);return dot(vec4(start,hi,lo,bandwidth),vec4(1.0,step,step,band));}",SN=`/***Describes where a sample facet should be shown. Interpolating between the*current and target positions/heights allows for transitioning between facet*configurations.*/struct SampleFacetPosition{float pos;float height;float targetPos;float targetHeight;};/***Trasition fraction[0,1]between the current and target configurations.*/uniform float uTransitionOffset;
170
+ `);this.pushAll=r(this)}pushAll(){this.size>1e5?this._unrollPushAll():this.pushAll=()=>{for(let n=0;n<this.pushers.length;n++)this.pushers[n]();this.vertexCount++},this.pushAll()}updateFromDatum(t){for(let n=0;n<this.dataUpdaters.length;n++)this.dataUpdaters[n](t)}pushFromDatum(t){this.updateFromDatum(t),this.pushAll()}}const Ua=5,Gd=127;function Hd(e){const t=[];for(let p=0;p<=Gd;p++)t.push(void 0);const n=new Map;for(const p of e.chars)p.id<=Gd?t[p.id]=p:n.set(p.id,p);const r=8722;n.has(r)||n.set(r,t["-".charCodeAt(0)]);function i(p){return(p<=Gd?t[p]:n.get(p))||t[63]}function a(p){return i(p.charCodeAt(0))}const o=e.common.base,s=a("x"),f=a("X"),l=a("q"),u=s.height-Ua*2,c=f.height-Ua*2,h=l.height-s.height+l.yoffset-s.yoffset;function d(p,b=1){let y=0;for(let w=0;w<p.length;w++)y+=i(p.charCodeAt(w)).xadvance;return y/o*b}return{measureWidth:d,getCharByCode:i,getChar:a,xHeight:u,capHeight:c,descent:h,common:e.common}}function Vd(e,t=0,n=1){return Math.max(t,Math.min(n,e))}const J2=2**31-1,kk=-(2**31);function Bk(e,t,n,r=n){const i=new Int32Array(e);i.fill(J2);let a=kk,o=!1;const s=new Int32Array(e),f=t[0],u=(t[1]-t[0])/e,c=(y,w)=>{const S=(y-f)/u,C=Math.floor(S);return Vd(w&&C==S?C-1:C,0,e-1)};function h(y,w,S){w>a?a=w:o||(o=!0,console.debug("Items are not ordered properly. Disabling binned index."));const C=n(y),_=c(C,!1);i[_]>w&&(i[_]=w),s[_]<S&&(s[_]=S)}function d(y,w,S){w>a?a=w:o||(o=!0,console.debug("Items are not ordered properly. Disabling binned index."));const C=n(y),_=r(y),k=c(C,!1),B=c(_,!0);for(let I=k;I<=B;I++)i[I]>w&&(i[I]=w),s[I]<S&&(s[I]=S)}const p=(y,w,S=[0,0])=>{const C=c(y,!1),_=c(w,!0),k=i[C],B=Math.max(s[_],k);return S[0]=k,S[1]=B,S},b=()=>{for(let w=1;w<s.length;w++)s[w]<s[w-1]&&(s[w]=s[w-1]);let y=!0;for(let w=i.length-1;w>0;w--)y&&i[w]==J2?(i[w]=s[w],y=!1):i[w-1]>i[w]&&(i[w-1]=i[w]);return p};if(h.getIndex=b,d.getIndex=b,!o)return n==r?h:d}class Ds{constructor({encoders:t,numVertices:n=void 0,attributes:r=[]}){this.encoders=t,this.variableEncoders=Object.fromEntries(Object.entries(t).filter(([i,a])=>r.includes(i)&&a&&a.scale&&!a.constant)),this.allocatedVertices=n,this.variableBuilder=new Ik(n);for(const[i,a]of Object.entries(this.variableEncoders)){const o=a.accessor,s=[0,0],f=uu(a.scale.type),l=a.indexer,u=l?c=>l(o(c)):f?c=>K2(o(c),s):o;this.variableBuilder.addConverter(i,{f:u,numComponents:f?2:1,arrayReference:f?s:void 0})}this.lastOffset=0,this.rangeMap=new mi([],JSON.stringify)}registerBatch(t){var a;const n=this.lastOffset,r=this.variableBuilder.vertexCount,i=r-n;i&&this.rangeMap.set(t,{offset:n,count:i,xIndex:(a=this.xIndexer)==null?void 0:a.getIndex()}),this.lastOffset=r}addBatches(t){for(const[n,r]of t)this.addBatch(n,r)}addBatch(t,n,r=0,i=n.length){this.prepareXIndexer(n,r,i);for(let a=r;a<i;a++){const o=n[a];this.variableBuilder.pushFromDatum(o),this.addToXIndex(o)}this.registerBatch(t)}prepareXIndexer(t,n=0,r=n+t.length){const i=()=>{this.addToXIndex=f=>{},this.xIndexer=void 0};if(!t.length||r-n<0){i();return}const a=f=>{var l;return f&&xt((l=f.scale)==null?void 0:l.type)&&f},o=a(this.variableEncoders.x),s=a(this.variableEncoders.x2);if(o){const f=o.accessor,l=s?s.accessor:f,u=[f(t[n]),l(t[r-1])];if(u[1]>u[0]){this.xIndexer=Bk(50,u,f,l);let c=this.variableBuilder.vertexCount;this.addToXIndex=h=>{let d=this.variableBuilder.vertexCount;this.xIndexer(h,c,d),c=d}}else i()}else i()}addToXIndex(t){}toArrays(){return{arrays:this.variableBuilder.arrays,vertexCount:this.variableBuilder.vertexCount,allocatedVertices:this.allocatedVertices,rangeMap:this.rangeMap}}}class Dk extends Ds{constructor({encoders:t,attributes:n,tessellationThreshold:r=1/0,visibleRange:i=[-1/0,1/0],numItems:a}){super({encoders:t,attributes:n,numVertices:r==1/0?a*6:void 0}),this.visibleRange=i,this.tessellationThreshold=r||1/0,this.updateFrac=this.variableBuilder.createUpdater("frac",2)}addBatch(t,n,r=0,i=n.length){if(i<=r)return;const a=this.encoders,[o,s]=this.visibleRange,f=h=>h.accessor||(d=>0),l=f(a.x),u=f(a.x2);this.prepareXIndexer(n,r,i);const c=[0,0];this.updateFrac(c);for(let h=r;h<i;h++){const d=n[h];let p=l(d),b=u(d);if(p>b&&([p,b]=[b,p]),b<o||p>s)continue;p<o&&(p=o),b>s&&(b=s),this.variableBuilder.updateFromDatum(d),c[0]=0,c[1]=0;const y=1;this.variableBuilder.pushAll();for(let w=0;w<=y;w++)c[0]=w/y,c[1]=0,this.variableBuilder.pushAll(),c[1]=1,this.variableBuilder.pushAll();this.variableBuilder.pushAll(),this.addToXIndex(d)}this.registerBatch(t)}}class Fk extends Ds{constructor({encoders:t,attributes:n,tessellationThreshold:r=1/0,visibleRange:i=[-1/0,1/0],numItems:a}){super({encoders:t,attributes:n,numVertices:r==1/0?a*6:void 0}),this.visibleRange=i,this.tessellationThreshold=r||1/0,this.updateSide=this.variableBuilder.createUpdater("side",1),this.updatePos=this.variableBuilder.createUpdater("pos",1)}addBatch(t,n,r=0,i=n.length){this.prepareXIndexer(n,r,i);for(let a=r;a<i;a++){const o=n[a];this.variableBuilder.updateFromDatum(o),this.updateSide(-.5),this.updatePos(0),this.variableBuilder.pushAll();const s=1;for(let f=0;f<=s;f++)this.updatePos(f/s),this.updateSide(-.5),this.variableBuilder.pushAll(),this.updateSide(.5),this.variableBuilder.pushAll();this.variableBuilder.pushAll(),this.addToXIndex(o)}this.registerBatch(t)}}class Rk extends Ds{constructor({encoders:t,attributes:n,numItems:r=void 0}){super({encoders:t,attributes:n,numVertices:r})}}class Pk extends Ds{constructor({encoders:t,attributes:n,numItems:r=void 0}){super({encoders:t,attributes:n,numVertices:r})}toArrays(){const t=this.variableBuilder.arrays;for(let n of Object.values(t))n.divisor=1;return super.toArrays()}}class Mk extends Ds{constructor({encoders:t,attributes:n,fontMetrics:r,properties:i,numCharacters:a=void 0}){super({encoders:t,attributes:n,numVertices:a*6}),this.metadata=r,this.metrics=r,this.properties=i;const s=t.text.channelDef;this.numberFormat=!xn(s)&&"format"in s&&s.format?pt(s.format):f=>f,this.updateVertexCoord=this.variableBuilder.createUpdater("vertexCoord",2),this.updateTextureCoord=this.variableBuilder.createUpdater("textureCoord",2),this.updateWidth=this.variableBuilder.createUpdater("width",1)}addBatch(t,n,r=0,i=n.length){const a=this.properties.align||"left",o=this.properties.logoLetters??!1,s=this.metadata.common.base,f=this.metadata.common.scaleH;let l=-Ua;switch(this.properties.baseline){case"top":l+=this.metrics.capHeight;break;case"middle":l+=this.metrics.capHeight/2;break;case"bottom":l-=this.metrics.descent;break}const u=this.encoders.text.accessor||this.encoders.text,c=[0,0];this.updateVertexCoord(c);const h=[0,0];this.updateTextureCoord(h),this.prepareXIndexer(n,r,i);for(let d=r;d<i;d++){const p=n[d],b=this.numberFormat(u(p)),y=Qe(b)?b:b===null?"":""+b;if(y.length==0)continue;this.variableBuilder.updateFromDatum(p);const w=o?y.length:this.metrics.measureWidth(y);this.updateWidth(w);let S=a=="right"?-w:a=="center"?-w/2:0;if(!o){const B=this.metrics.getCharByCode(y.charCodeAt(0));S-=(B.width-B.xadvance)/s/2}let C=-.5,_=1,k=1;for(let B=0;B<y.length;B++){const I=this.metrics.getCharByCode(y.charCodeAt(B)),R=o?1:I.xadvance/s;if(I.id==32){S+=R;continue}o?(k=(I.width+Ua*2)/I.width,S=-k/2,_=(I.height+Ua*2)/I.height,C=-.5-Ua/I.height):(_=I.height/s,C=-(I.height+I.yoffset+l)/s,k=I.width/s);const M=I.x,j=I.y;c[0]=S,c[1]=C+_,h[0]=M/f,h[1]=j/f,this.variableBuilder.pushAll(),c[0]=S+k,c[1]=C+_,h[0]=(M+I.width)/f,h[1]=j/f,this.variableBuilder.pushAll(),c[0]=S,c[1]=C,h[0]=M/f,h[1]=(j+I.height)/f,this.variableBuilder.pushAll(),c[0]=S+k,c[1]=C+_,h[0]=(M+I.width)/f,h[1]=j/f,this.variableBuilder.pushAll(),c[0]=S,c[1]=C,h[0]=M/f,h[1]=(j+I.height)/f,this.variableBuilder.pushAll(),c[0]=S+k,c[1]=C,h[0]=(M+I.width)/f,h[1]=(j+I.height)/f,this.variableBuilder.pushAll(),S+=R}this.addToXIndex(p)}this.registerBatch(t)}}const ey=`#define PI 3.141593
171
+ uniform View{mediump vec2 uViewOffset;mediump vec2 uViewScale;mediump vec2 uViewportSize;lowp float uDevicePixelRatio;lowp float uViewOpacity;bool uPickingEnabled;};/***Maps a coordinate on the unit scale to a normalized device coordinate.*(0,0)is at the bottom left corner.*/vec4 unitToNdc(vec2 coord){return vec4((coord*uViewScale+uViewOffset)*2.0-1.0,0.0,1.0);}vec4 unitToNdc(float x,float y){return unitToNdc(vec2(x,y));}vec4 pixelsToNdc(vec2 coord){return unitToNdc(coord/uViewportSize);}vec4 pixelsToNdc(float x,float y){return pixelsToNdc(vec2(x,y));}float linearstep(float edge0,float edge1,float x){return clamp((x-edge0)/(edge1-edge0),0.0,1.0);}/***Specialized linearstep for doing antialiasing*/float distanceToRatio(float d){return clamp(d*uDevicePixelRatio+0.5,0.0,1.0);}vec4 distanceToColor(float d,vec4 fill,vec4 stroke,float halfStrokeWidth){if(halfStrokeWidth>0.0){float sd=abs(d)-halfStrokeWidth;return mix(stroke,d<=0.0 ? fill : vec4(0.0),distanceToRatio(sd));}else{return fill*distanceToRatio(-d);}}`,Nk="const float inf=1.0/0.0;vec3 getDiscreteColor(sampler2D s,int index){return texelFetch(s,ivec2(index % textureSize(s,0).x,0),0).rgb;}vec3 getInterpolatedColor(sampler2D s,float unitValue){return texture(s,vec2(unitValue,0.0)).rgb;}float clampToRange(float value,vec2 range){return clamp(value,min(range[0],range[1]),max(range[0],range[1]));}float scaleIdentity(float value){return value;}float scaleLinear(float value,vec2 domain,vec2 range){float domainSpan=domain[1]-domain[0];float rangeSpan=range[1]-range[0];return(value-domain[0])/domainSpan*rangeSpan+range[0];}float scaleLog(float value,vec2 domain,vec2 range,float base){return scaleLinear(log(value)/log(base),log(domain)/log(base),range);}float symlog(float value,float constant){return sign(value)*log(abs(value/constant)+1.0);}float scaleSymlog(float value,vec2 domain,vec2 range,float constant){return scaleLinear(symlog(value,constant),vec2(symlog(domain[0],constant),symlog(domain[1],constant)),range);}float scalePow(float value,vec2 domain,vec2 range,float exponent){return scaleLinear(pow(abs(value),exponent)*sign(value),pow(abs(domain),vec2(exponent))*sign(domain),range);}float scaleBand(float value,vec2 domainExtent,vec2 range,float paddingInner,float paddingOuter,float align,float band){float start=range[0];float stop=range[1];float rangeSpan=stop-start;float n=domainExtent[1]-domainExtent[0];paddingInner=int(n)>1 ? paddingInner : 0.0;float step=rangeSpan/max(1.0,n-paddingInner+paddingOuter*2.0);start+=(rangeSpan-step*(n-paddingInner))*align;float bandwidth=step*(1.0-paddingInner);return start+(value-domainExtent[0])*step+bandwidth*band;}float scaleBandHp(vec2 value,vec3 domainExtent,vec2 range,float paddingInner,float paddingOuter,float align,float band){float start=range[0];float stop=range[1];float rangeSpan=stop-start;vec2 domainStart=domainExtent.xy;float n=domainExtent[2];float step=rangeSpan/max(1.0,n-paddingInner+paddingOuter*2.0);start+=(rangeSpan-step*(n-paddingInner))*align;float bandwidth=step*(1.0-paddingInner);float hi=max(value[0]-domainStart[0],-inf);float lo=max(value[1]-domainStart[1],-inf);return dot(vec4(start,hi,lo,bandwidth),vec4(1.0,step,step,band));}",Lk=`/***Describes where a sample facet should be shown. Interpolating between the*current and target positions/heights allows for transitioning between facet*configurations.*/struct SampleFacetPosition{float pos;float height;float targetPos;float targetHeight;};/***Trasition fraction[0,1]between the current and target configurations.*/uniform float uTransitionOffset;
174
172
  #if !defined(SAMPLE_FACET_UNIFORM) && !defined(SAMPLE_FACET_TEXTURE)
175
173
  SampleFacetPosition getSampleFacetPos(){return SampleFacetPosition(0.0,1.0,0.0,1.0);}
176
174
  #elif defined(SAMPLE_FACET_UNIFORM)
@@ -178,48 +176,36 @@ SampleFacetPosition getSampleFacetPos(){return SampleFacetPosition(0.0,1.0,0.0,1
178
176
  #elif defined(SAMPLE_FACET_TEXTURE)
179
177
  uniform sampler2D uSampleFacetTexture;SampleFacetPosition getSampleFacetPos(){vec4 texel=texelFetch(uSampleFacetTexture,ivec2(int(attr_facetIndex),0),0);return SampleFacetPosition(1.0-texel.r-texel.g,texel.g,1.0-texel.r-texel.g,texel.g);}
180
178
  #endif
181
- bool isFacetedSamples(SampleFacetPosition facetPos){return facetPos!=SampleFacetPosition(0.0,1.0,0.0,1.0);}bool isFacetedSamples(){return isFacetedSamples(getSampleFacetPos());}bool isInTransit(){return uTransitionOffset>0.0;}float getTransitionFraction(float xPos){return smoothstep(0.0,0.7+uTransitionOffset,(xPos-uTransitionOffset)*2.0);}vec2 applySampleFacet(vec2 pos){SampleFacetPosition facetPos=getSampleFacetPos();if(!isFacetedSamples(facetPos)){return pos;}else if(isInTransit()){vec2 interpolated=mix(vec2(facetPos.pos,facetPos.height),vec2(facetPos.targetPos,facetPos.targetHeight),getTransitionFraction(pos.x));return vec2(pos.x,interpolated[0]+pos.y*interpolated[1]);}else{return vec2(pos.x,facetPos.pos+pos.y*facetPos.height);}}float getSampleFacetHeight(vec2 pos){SampleFacetPosition facetPos=getSampleFacetPos();if(!isFacetedSamples(facetPos)){return 1.0;}else if(isInTransit()){return mix(facetPos.height,facetPos.targetHeight,getTransitionFraction(pos.x));}else{return facetPos.height;}}`,_N=`/**Based on concepts presented at:*https:*https:*/out highp vec4 vPickingColor;/***Passes the unique id to the fragment shader as a color if picking is enabled.*Returns true if picking is enabled.*/bool setupPicking(){if(uPickingEnabled){
179
+ bool isFacetedSamples(SampleFacetPosition facetPos){return facetPos!=SampleFacetPosition(0.0,1.0,0.0,1.0);}bool isFacetedSamples(){return isFacetedSamples(getSampleFacetPos());}bool isInTransit(){return uTransitionOffset>0.0;}float getTransitionFraction(float xPos){return smoothstep(0.0,0.7+uTransitionOffset,(xPos-uTransitionOffset)*2.0);}vec2 applySampleFacet(vec2 pos){SampleFacetPosition facetPos=getSampleFacetPos();if(!isFacetedSamples(facetPos)){return pos;}else if(isInTransit()){vec2 interpolated=mix(vec2(facetPos.pos,facetPos.height),vec2(facetPos.targetPos,facetPos.targetHeight),getTransitionFraction(pos.x));return vec2(pos.x,interpolated[0]+pos.y*interpolated[1]);}else{return vec2(pos.x,facetPos.pos+pos.y*facetPos.height);}}float getSampleFacetHeight(vec2 pos){SampleFacetPosition facetPos=getSampleFacetPos();if(!isFacetedSamples(facetPos)){return 1.0;}else if(isInTransit()){return mix(facetPos.height,facetPos.targetHeight,getTransitionFraction(pos.x));}else{return facetPos.height;}}`,Ok=`/**Based on concepts presented at:*https:*https:*/out highp vec4 vPickingColor;/***Passes the unique id to the fragment shader as a color if picking is enabled.*Returns true if picking is enabled.*/bool setupPicking(){if(uPickingEnabled){
182
180
  #ifdef uniqueId_DEFINED
183
181
  int id=int(getScaled_uniqueId());vPickingColor=vec4(ivec4(id>>0,id>>8,id>>16,0xFF)&0xFF)/float(0xFF);
184
182
  #else
185
183
  vPickingColor=vec4(1.0);
186
184
  #endif
187
- return true;}return false;}`,CN="in highp vec4 vPickingColor;",Ml=Symbol("cacheMap");function ao(t,e,n){let r=Ks(t).get(e);return r===void 0&&(r=n(e),Ks(t).set(e,r)),r}function Sw(t,e){Ks(t).delete(e)}function Tl(t,e){const n=Ks(t);for(const r of n.keys())r.startsWith(e)&&n.delete(r);Ks(t).delete(e)}function _w(t){t[Ml]=new Map}function Ks(t){return t[Ml]||_w(t),t[Ml]}function DN(t,e,n,r){const i=Ke(t)?t:t.name,a=!Ke(t)&&t.extent||[0,1];if(n===void 0&&!Ke(t)&&(n=t.count),i){const o=Ad(i);if(Bt(o)){const s=Cw(o,{extent:a,count:n});return Nl(e,{minMag:e.LINEAR,format:e.RGB,height:1,wrap:e.CLAMP_TO_EDGE},s,r)}else{if(Xt(o))return o0(o,e);throw new Error("Unknown scheme: "+i)}}}function IN(t,e="rgb",n,r){const i=il(t,Ke(e)?e:e.type,Ke(e)?void 0:e.gamma),a=Cw(i);return Nl(n,{minMag:n.LINEAR,format:n.RGB,height:1,wrap:n.CLAMP_TO_EDGE},a,r)}function MN(t,e,n,r){const i=Math.max(t.length,n||0),a=new Float32Array(i);for(let o=0;o<i;o++)a[o]=t[o%t.length];return Nl(e,{minMag:e.NEAREST,format:e.RED,internalFormat:e.R32F,height:1},a,r)}function o0(t,e,n,r){const i=Dw(t,n);return Nl(e,{minMag:e.NEAREST,format:e.RGB,height:1},i,r)}function Cw(t,{extent:e=[0,1],reverse:n=!1,count:r=256}={}){const i=e[0],a=As(e)-i,o=ns(r).map(s=>s/(r-1)).map(s=>i+s/a).map(t);return n&&o.reverse(),Dw(o)}function Dw(t,e){const n=Math.max(t.length,e||0),r=new Uint8Array(n*3);for(let i=0;i<n;i++){const a=Wr(t[i%t.length]).rgb();r[i*3+0]=a.r,r[i*3+1]=a.g,r[i*3+2]=a.b}return r}class TN{constructor(e,n,r){this._container=e,this._sizeSource=n,this._shaderCache=new Map,this._listeners=[],this.rangeTextures=new WeakMap;const i=document.createElement("canvas");e.appendChild(i);const a=nN(i,{antialias:!0,depth:!1,premultipliedAlpha:!0});if(!a)throw new Error("Unable to initialize WebGL. Your browser or machine may not support it.");if(!Wa(a))throw new Error("Your web browser does not support WebGL 2.0. Chrome, Firefox, and Safari Tech Preview should work.");if(gw(a),a.blendFunc(a.ONE,a.ONE_MINUS_SRC_ALPHA),this.canvas=i,this.gl=a,this._pickingAttachmentOptions=[{format:a.RGBA,type:a.UNSIGNED_BYTE,minMag:a.LINEAR,wrap:a.CLAMP_TO_EDGE}],this._pickingBufferInfo=X6(a,this._pickingAttachmentOptions),a.bindFramebuffer(a.FRAMEBUFFER,null),this.adjustGl(),this._resizeObserver=new ResizeObserver(o=>{this.invalidateSize(),this._emit("resize")}),this._resizeObserver.observe(this._container),this._updateDpr(),this._clearColor=[0,0,0,0],r){const o=Wr(r).rgb();this._clearColor=[o.r/255,o.g/255,o.b/255,o.opacity]}}invalidateSize(){this._logicalCanvasSize=void 0,this._updateDpr(),this.adjustGl()}_updateDpr(){this.dpr=window.devicePixelRatio}compileShader(e,n){const r="#version 300 es",i="precision mediump float;";Xt(n)&&(n=n.join(`
185
+ return true;}return false;}`,zk="in highp vec4 vPickingColor;",cu=Symbol("cacheMap");function Ga(e,t,n){let r=Fs(e).get(t);return r===void 0&&(r=n(t),Fs(e).set(t,r)),r}function ty(e,t){Fs(e).delete(t)}function hu(e,t){const n=Fs(e);for(const r of n.keys())r.startsWith(t)&&n.delete(r);Fs(e).delete(t)}function ny(e){e[cu]=new Map}function Fs(e){return e[cu]||ny(e),e[cu]}function Uk(e,t,n,r){const i=Qe(e)?e:e.name,a=!Qe(e)&&e.extent||[0,1];if(n===void 0&&!Qe(e)&&(n=e.count),i){const o=ad(i);if(Dt(o)){const s=ry(o,{extent:a,count:n});return du(t,{minMag:t.LINEAR,format:t.RGB,height:1,wrap:t.CLAMP_TO_EDGE},s,r)}else{if(qt(o))return jd(o,t);throw new Error("Unknown scheme: "+i)}}}function Gk(e,t="rgb",n,r){const i=Uf(e,Qe(t)?t:t.type,Qe(t)?void 0:t.gamma),a=ry(i);return du(n,{minMag:n.LINEAR,format:n.RGB,height:1,wrap:n.CLAMP_TO_EDGE},a,r)}function Hk(e,t,n,r){const i=Math.max(e.length,n||0),a=new Float32Array(i);for(let o=0;o<i;o++)a[o]=e[o%e.length];return du(t,{minMag:t.NEAREST,format:t.RED,internalFormat:t.R32F,height:1},a,r)}function jd(e,t,n,r){const i=iy(e,n);return du(t,{minMag:t.NEAREST,format:t.RGB,height:1},i,r)}function ry(e,{extent:t=[0,1],reverse:n=!1,count:r=256}={}){const i=t[0],a=ns(t)-i,o=Po(r).map(s=>s/(r-1)).map(s=>i+s/a).map(e);return n&&o.reverse(),iy(o)}function iy(e,t){const n=Math.max(e.length,t||0),r=new Uint8Array(n*3);for(let i=0;i<n;i++){const a=Dr(e[i%e.length]).rgb();r[i*3+0]=a.r,r[i*3+1]=a.g,r[i*3+2]=a.b}return r}class Vk{constructor(t,n,r){this._container=t,this._sizeSource=n,this._shaderCache=new Map,this._listeners=[],this.rangeTextures=new WeakMap;const i=document.createElement("canvas");t.appendChild(i);const a=mk(i,{antialias:!0,depth:!1,premultipliedAlpha:!0});if(!a)throw new Error("Unable to initialize WebGL. Your browser or machine may not support it.");if(!Da(a))throw new Error("Your web browser does not support WebGL 2.0. Chrome, Firefox, and Safari Tech Preview should work.");if(q2(a),a.blendFunc(a.ONE,a.ONE_MINUS_SRC_ALPHA),this.canvas=i,this.gl=a,this._pickingAttachmentOptions=[{format:a.RGBA,type:a.UNSIGNED_BYTE,minMag:a.LINEAR,wrap:a.CLAMP_TO_EDGE}],this._pickingBufferInfo=uk(a,this._pickingAttachmentOptions),a.bindFramebuffer(a.FRAMEBUFFER,null),this.adjustGl(),this._resizeObserver=new ResizeObserver(o=>{this.invalidateSize(),this._emit("resize")}),this._resizeObserver.observe(this._container),this._updateDpr(),this._clearColor=[0,0,0,0],r){const o=Dr(r).rgb();this._clearColor=[o.r/255,o.g/255,o.b/255,o.opacity]}}invalidateSize(){this._logicalCanvasSize=void 0,this._updateDpr(),this.adjustGl()}_updateDpr(){this.dpr=window.devicePixelRatio}compileShader(t,n){const r="#version 300 es",i="precision mediump float;";qt(n)&&(n=n.join(`
188
186
 
189
187
  `));const a=this.gl,o=n.replaceAll(/ {2,}|^\s*\/\/.*$/gm,"");let s=this._shaderCache.get(o);if(!s){const f=[r,i,n].join(`
190
188
 
191
- `);s=a.createShader(e),a.shaderSource(s,f),a.compileShader(s),this._shaderCache.set(o,s)}return s}adjustGl(){const e=this.getLogicalCanvasSize();this.canvas.style.width=`${e.width}px`,this.canvas.style.height=`${e.height}px`;const n=this.getPhysicalCanvasSize(e);this.canvas.width=n.width,this.canvas.height=n.height,$6(this.gl,this._pickingBufferInfo,this._pickingAttachmentOptions)}finalize(){this._resizeObserver.unobserve(this._container),this.canvas.remove()}getPhysicalCanvasSize(e){return e=e||this.getLogicalCanvasSize(),{width:e.width*this.dpr,height:e.height*this.dpr}}getLogicalCanvasSize(){var a;if(this._logicalCanvasSize)return this._logicalCanvasSize;const e=((a=this._sizeSource)==null?void 0:a.call(this))??{width:void 0,height:void 0},n=window.getComputedStyle(this._container,null),r=e.width??this._container.clientWidth-parseFloat(n.paddingLeft)-parseFloat(n.paddingRight),i=e.height??this._container.clientHeight-parseFloat(n.paddingTop)-parseFloat(n.paddingBottom);return this._logicalCanvasSize={width:r,height:i},this._logicalCanvasSize}addEventListener(e,n){this._listeners.push({type:e,listener:n})}_emit(e){for(const n of this._listeners)n.type===e&&n.listener()}readPickingPixel(e,n){const r=this.gl;e*=this.dpr,n*=this.dpr;const i=this.getPhysicalCanvasSize().height,a=new Uint8Array(4);return r.bindFramebuffer(r.FRAMEBUFFER,this._pickingBufferInfo.framebuffer),r.readPixels(e,i-n-1,1,1,r.RGBA,r.UNSIGNED_BYTE,a),r.bindFramebuffer(r.FRAMEBUFFER,null),a}clearAll(){const e=this.gl,{width:n,height:r}=this.getPhysicalCanvasSize();e.viewport(0,0,n,r),e.disable(e.SCISSOR_TEST),e.clearColor(...this._clearColor),e.clear(e.COLOR_BUFFER_BIT)}createRangeTexture(e,n=!1){const r=this.rangeTextures.get(e);if(!n&&r)return;function i(o,s){return Jr(s.type)?s.domain().length:s.type=="threshold"?s.domain().length+1:s.type=="quantize"||s.type=="quantile"?o??4:o}const a=e.channel;if(Xi(a)){const o=e.getScaleProps(),s=e.getScale(),f=s.range();let u;if(o.scheme)if(s.type=="threshold"&&f)u=o0(f,this.gl,s.domain().length,r);else{let l=Ke(o.scheme)?void 0:o.scheme.count;l=i(l,s),u=DN(o.scheme,this.gl,l,r)}else rl(s.type)||Et(s.type)&&f.length>2?u=IN(f,o.interpolate,this.gl,r):u=o0(f,this.gl,s.domain().length,r);this.rangeTextures.set(e,u)}else{const o=e.getScale();if(o.type==="ordinal"||Za(o.type)){const s=ol(a)?ey(a):u=>u,f=e.getScale().range();this.rangeTextures.set(e,MN(f.map(s),this.gl,o.domain().length,r))}}}}function NN(t,e="",n=0){const r=/ERROR:\s*\d+:(\d+)/gi,i=[...e.matchAll(r)],a=new Map(i.map((o,s)=>{const f=parseInt(o[1]),u=i[s+1],l=u?u.index:e.length,c=e.substring(o.index,l);return[f-1,c]}));return t.split(`
189
+ `);s=a.createShader(t),a.shaderSource(s,f),a.compileShader(s),this._shaderCache.set(o,s)}return s}adjustGl(){const t=this.getLogicalCanvasSize();this.canvas.style.width=`${t.width}px`,this.canvas.style.height=`${t.height}px`;const n=this.getPhysicalCanvasSize(t);this.canvas.width=n.width,this.canvas.height=n.height,ck(this.gl,this._pickingBufferInfo,this._pickingAttachmentOptions)}finalize(){this._resizeObserver.unobserve(this._container),this.canvas.remove()}getPhysicalCanvasSize(t){return t=t||this.getLogicalCanvasSize(),{width:t.width*this.dpr,height:t.height*this.dpr}}getLogicalCanvasSize(){var a;if(this._logicalCanvasSize)return this._logicalCanvasSize;const t=((a=this._sizeSource)==null?void 0:a.call(this))??{width:void 0,height:void 0},n=window.getComputedStyle(this._container,null),r=t.width??this._container.clientWidth-parseFloat(n.paddingLeft)-parseFloat(n.paddingRight),i=t.height??this._container.clientHeight-parseFloat(n.paddingTop)-parseFloat(n.paddingBottom);return this._logicalCanvasSize={width:r,height:i},this._logicalCanvasSize}addEventListener(t,n){this._listeners.push({type:t,listener:n})}_emit(t){for(const n of this._listeners)n.type===t&&n.listener()}readPickingPixel(t,n){const r=this.gl;t*=this.dpr,n*=this.dpr;const i=this.getPhysicalCanvasSize().height,a=new Uint8Array(4);return r.bindFramebuffer(r.FRAMEBUFFER,this._pickingBufferInfo.framebuffer),r.readPixels(t,i-n-1,1,1,r.RGBA,r.UNSIGNED_BYTE,a),r.bindFramebuffer(r.FRAMEBUFFER,null),a}clearAll(){const t=this.gl,{width:n,height:r}=this.getPhysicalCanvasSize();t.viewport(0,0,n,r),t.disable(t.SCISSOR_TEST),t.clearColor(...this._clearColor),t.clear(t.COLOR_BUFFER_BIT)}createRangeTexture(t,n=!1){const r=this.rangeTextures.get(t);if(!n&&r)return;function i(o,s){return Mr(s.type)?s.domain().length:s.type=="threshold"?s.domain().length+1:s.type=="quantize"||s.type=="quantile"?o??4:o}const a=t.channel;if(Mi(a)){const o=t.getScaleProps(),s=t.getScale(),f=s.range();let l;if(o.scheme)if(s.type=="threshold"&&f)l=jd(f,this.gl,s.domain().length,r);else{let u=Qe(o.scheme)?void 0:o.scheme.count;u=i(u,s),l=Uk(o.scheme,this.gl,u,r)}else zf(s.type)||xt(s.type)&&f.length>2?l=Gk(f,o.interpolate,this.gl,r):l=jd(f,this.gl,s.domain().length,r);this.rangeTextures.set(t,l)}else{const o=t.getScale();if(o.type==="ordinal"||ka(o.type)){const s=Hf(a)?Db(a):l=>l,f=t.getScale().range();this.rangeTextures.set(t,Hk(f.map(s),this.gl,o.domain().length,r))}}}}function jk(e,t="",n=0){const r=/ERROR:\s*\d+:(\d+)/gi,i=[...t.matchAll(r)],a=new Map(i.map((o,s)=>{const f=parseInt(o[1]),l=i[s+1],u=l?l.index:t.length,c=t.substring(o.index,u);return[f-1,c]}));return e.split(`
192
190
  `).map((o,s)=>{const f=a.get(s);return`${s+1+n}: ${o}${f?`
193
191
 
194
192
  ^^^ ${f}`:""}`}).join(`
195
- `)}function FN(t,e,n){const r=t.createProgram();t.attachShader(r,e),t.attachShader(r,n),t.linkProgram(r);function i(){let a,o;if(!t.getProgramParameter(r,t.LINK_STATUS)){a=t.getProgramInfoLog(r);for(const f of[e,n])t.getShaderParameter(f,t.COMPILE_STATUS)||(a=t.getShaderInfoLog(f),o=NN(t.getShaderSource(f),a,0)+`
196
- Error compiling: ${a}`,t.deleteShader(f));t.deleteProgram(r)}if(a)return{message:a,detail:o}}return{program:r,getProgramErrors:i}}function Nl(t,e,n,r){return r?Ty(t,r,n,e):r=Ws(t,{...e,src:n}),r}function kN(...t){const e={get(n,r,i){for(const a of t){const s=a()[r];if(s!==void 0)return s}},has(n,r,i){for(const a of t){const o=a();if(r in o)return!0}return!1}};return new Proxy({},e)}function BN(t){return Ke(t)||Lt(t)||pf(t)}const LN="SAMPLE_FACET_UNIFORM",Iw="SAMPLE_FACET_TEXTURE";class Js{constructor(e){this.unitView=e,this.encoders=void 0,this.bufferInfo=void 0,this.programInfo=void 0,this.vertexArrayInfo=void 0,this.domainUniformInfo=void 0,this.viewUniformInfo=void 0,this.rangeMap=new RN,this.defaultProperties={get clip(){return["x","y"].map(n=>e.getScaleResolution(n)).some(n=>(n==null?void 0:n.isZoomable())??!1)},xOffset:0,yOffset:0,minBufferSize:0},this.properties=kN(typeof this.unitView.spec.mark=="object"?()=>this.unitView.spec.mark:()=>({}),()=>this.defaultProperties)}get opaque(){return!1}getAttributes(){throw new Error("Not implemented!")}getSupportedChannels(){return["sample","facetIndex","x","y","color","opacity","search","uniqueId"]}getDefaultEncoding(){const e={sample:void 0,uniqueId:void 0};return this.isPickingParticipant()&&(e.uniqueId={field:"_uniqueId"}),e}fixEncoding(e){return e}get encoding(){return ao(this,"encoding",()=>{const e=this.getDefaultEncoding(),n=this.unitView.getEncoding(),r=o=>{const s=this.properties[o];return BN(s)&&{value:s}},i=Object.fromEntries(this.getSupportedChannels().map(o=>[o,r(o)]).filter(o=>o[1].value!==void 0)),a=this.fixEncoding({...e,...i,...n});for(const o of Object.keys(a))this.getSupportedChannels().includes(o)||delete a[o];return a})}getContext(){return this.unitView.context}getType(){return this.unitView.getMarkType()}initializeData(){}initializeEncoders(){this.encoders=uM(this)}async initializeGraphics(){}updateGraphicsData(){}getSampleFacetMode(){if(this.encoders.facetIndex)return Iw;if(this.unitView.getLayoutAncestors().find(e=>"samples"in e.spec))return LN}createAndLinkShaders(e,n,r=[]){const i=this.getAttributes();r.push("// view: "+this.unitView.getPathString()),this.domainUniforms=[];let a=[];const o=this.getSampleFacetMode();o&&r.push(`#define ${o}`);for(const h of i){let d;if(h in this.encoding)d=h;else continue;const g=this.encoding[d];if(g)if(Fn(g))a.push(sN(d,g.value));else{const b=un(g)&&g.resolutionChannel||d,y=$i(b)?this.unitView.getScaleResolution(b).getScale():al(),w=uN(d,y,g);a.push(w.glsl),w.domainUniform&&this.domainUniforms.push(w.domainUniform)}}const s=this.domainUniforms.length?`layout(std140) uniform Domains {
193
+ `)}function qk(e,t,n){const r=e.createProgram();e.attachShader(r,t),e.attachShader(r,n),e.linkProgram(r);function i(){let a,o;if(!e.getProgramParameter(r,e.LINK_STATUS)){a=e.getProgramInfoLog(r);for(const f of[t,n])e.getShaderParameter(f,e.COMPILE_STATUS)||(a=e.getShaderInfoLog(f),o=jk(e.getShaderSource(f),a,0)+`
194
+ Error compiling: ${a}`,e.deleteShader(f));e.deleteProgram(r)}if(a)return{message:a,detail:o}}return{program:r,getProgramErrors:i}}function du(e,t,n,r){return r?s2(e,r,n,t):r=ks(e,{...t,src:n}),r}function Zk(...e){const t={get(n,r,i){for(const a of e){const s=a()[r];if(s!==void 0)return s}},has(n,r,i){for(const a of e){const o=a();if(r in o)return!0}return!1}};return new Proxy({},t)}function Wk(e){return Qe(e)||Ft(e)||Xl(e)}class Gi extends Error{constructor(t,n){super(t),this.name="ViewError",this.view=n}}const Yk="SAMPLE_FACET_UNIFORM",ay="SAMPLE_FACET_TEXTURE";class Rs{constructor(t){this.unitView=t,this.encoders=void 0,this.bufferInfo=void 0,this.programInfo=void 0,this.vertexArrayInfo=void 0,this.domainUniformInfo=void 0,this.viewUniformInfo=void 0,this.rangeMap=new Qk,this.defaultProperties={get clip(){return["x","y"].map(n=>t.getScaleResolution(n)).some(n=>(n==null?void 0:n.isZoomable())??!1)},xOffset:0,yOffset:0,minBufferSize:0},this.properties=Zk(typeof this.unitView.spec.mark=="object"?()=>this.unitView.spec.mark:()=>({}),()=>this.defaultProperties)}get opaque(){return!1}getAttributes(){throw new Error("Not implemented!")}getSupportedChannels(){return["sample","facetIndex","x","y","color","opacity","search","uniqueId"]}getDefaultEncoding(){const t={sample:void 0,uniqueId:void 0};return this.isPickingParticipant()&&(t.uniqueId={field:"_uniqueId"}),t}fixEncoding(t){return t}get encoding(){return Ga(this,"encoding",()=>{const t=this.getDefaultEncoding(),n=this.unitView.getEncoding(),r=o=>{const s=this.properties[o];return Wk(s)&&{value:s}},i=Object.fromEntries(this.getSupportedChannels().map(o=>[o,r(o)]).filter(o=>o[1].value!==void 0)),a=this.fixEncoding({...t,...i,...n});for(const o of Object.keys(a))this.getSupportedChannels().includes(o)||delete a[o];return a})}getContext(){return this.unitView.context}getType(){return this.unitView.getMarkType()}initializeData(){}initializeEncoders(){this.encoders=x8(this)}async initializeGraphics(){}updateGraphicsData(){}getSampleFacetMode(){if(this.encoders.facetIndex)return ay;if(this.unitView.getLayoutAncestors().find(t=>"samples"in t.spec))return Yk}createAndLinkShaders(t,n,r=[]){const i=this.getAttributes();r.push("// view: "+this.unitView.getPathString()),this.domainUniforms=[];let a=[];const o=this.getSampleFacetMode();o&&r.push(`#define ${o}`);for(const h of i){let d;if(h in this.encoding)d=h;else continue;const p=this.encoding[d];if(p)if(xn(p))a.push(xk(d,p.value));else{const b=Lt(p)&&p.resolutionChannel||d,y=Ni(b)?this.unitView.getScaleResolution(b).getScale():Gf(),w=Ak(d,y,p);a.push(w.glsl),w.domainUniform&&this.domainUniforms.push(w.domainUniform)}}const s=this.domainUniforms.length?`layout(std140) uniform Domains {
197
195
  `+this.domainUniforms.map(h=>` ${h}
198
196
  `).join("")+`};
199
197
 
200
- `:"",u=[`precision highp float;
201
- `,...r,Ew,EN,s,...a,SN,_N,e],l=[...r,Ew,CN,n],c=this.gl;this.programStatus=FN(c,this.glHelper.compileShader(c.VERTEX_SHADER,u),this.glHelper.compileShader(c.FRAGMENT_SHADER,l))}finalizeGraphicsInitialization(){const e=this.programStatus.getProgramErrors();if(e){e.detail&&console.warn(e.detail);const n=new Error("Cannot create shader program: "+e.message);throw n.view=this.unitView,n}this.programInfo=k6(this.gl,this.programStatus.program),delete this.programStatus,this.domainUniforms.length&&(this.domainUniformInfo=rw(this.gl,this.programInfo,"Domains")),this.viewUniformInfo=rw(this.gl,this.programInfo,"View"),this.gl.useProgram(this.programInfo.program),this._setDatums(),Kt(this.programInfo,{uSampleFacet:[0,1,0,1],uTransitionOffset:0})}_setDatums(){for(const[e,n]of Object.entries(this.encoding))if(js(n)){const r=this.encoders[e],i=r.indexer?r.indexer(n.datum):Il(r.scale.type)?vw(+n.datum):+n.datum;Kt(this.programInfo,{[t0+e]:i})}}deleteGraphicsData(){if(this.bufferInfo){const e=this.gl;for(let n=0;n<8;n++)e.disableVertexAttribArray(n);Object.values(this.bufferInfo.attribs).forEach(n=>this.gl.deleteBuffer(n.buffer)),this.bufferInfo.indices&&this.gl.deleteBuffer(this.bufferInfo.indices),this.bufferInfo=void 0}}updateBufferInfo(e){if(this.gl.bindVertexArray(null),this.bufferInfo&&e.vertexCount<=this.bufferInfo.allocatedVertices)for(const[n,r]of Object.entries(e.arrays))r.data&&VM(this.gl,this.bufferInfo.attribs[n],r.data,0);else this.deleteGraphicsData(),this.bufferInfo=YM(this.gl,e.arrays,{numElements:e.vertexCount}),this.bufferInfo.allocatedVertices=e.allocatedVertices,this.vertexArrayInfo=void 0}get glHelper(){return this.getContext().glHelper}get gl(){return this.glHelper.gl}onBeforeSampleAnimation(){}onAfterSampleAnimation(){}isReady(){return this.bufferInfo&&this.programInfo}isPickingParticipant(){if(this.properties.tooltip===null)return!1;for(const e of this.unitView.getLayoutAncestors())if(!e.isPickingSupported())return!1;return!0}prepareRender(e){const n=this.glHelper,r=this.gl,i=[];if(i.push(()=>{this.vertexArrayInfo||(this.vertexArrayInfo=K6(this.gl,this.programInfo,this.bufferInfo)),r.useProgram(this.programInfo.program)}),this.domainUniformInfo){for(const[o,s]of Object.entries(this.domainUniformInfo.setters)){const f=o.substring(pw.length),u=this.encoding[f],l=un(u)&&u.resolutionChannel||f;if($i(l)){const c=this.unitView.getScaleResolution(l).getScale();i.push(()=>{const h=Jr(c.type)?[0,c.domain().length]:c.domain();s(Il(c.type)?dN(h):h)})}}i.push(()=>iw(r,this.programInfo,this.domainUniformInfo))}for(const[o,s]of Object.entries(this.encoding))if(un(s)){const f=un(s)&&s.resolutionChannel||o;if($i(f)){const u=this.unitView.getScaleResolution(f),l=n.rangeTextures.get(u);l&&i.push(()=>Kt(this.programInfo,{[n0+o]:l}))}}this.getSampleFacetMode()==Iw&&i.push(()=>{let o;for(const s of this.unitView.getLayoutAncestors())if(o=s.getSampleFacetTexture(),o)break;if(!o)throw new Error("No facet texture available. This is bug.");Kt(this.programInfo,{uSampleFacetTexture:o})});const a=(e.picking??!1)&&this.isPickingParticipant();return i.push(()=>aw(this.viewUniformInfo,{uViewOpacity:this.unitView.getEffectiveOpacity(),uPickingEnabled:a})),this.opaque||e.picking?i.push(()=>r.disable(r.BLEND)):i.push(()=>r.enable(r.BLEND)),i}prepareSampleFacetRendering(e){const n=e.sampleFacetRenderingOptions,r=this.programInfo.uniformSetters.uSampleFacet;if(n&&r){const i=n.locSize?n.locSize.location:0,a=n.locSize?n.locSize.size:1;if(i>1||i+a<0)return!1;const o=n.targetLocSize?n.targetLocSize.location:i,s=n.targetLocSize?n.targetLocSize.size:a;this.gl.uniform4f(r.location,i,a,o,s)}return!0}render(e){}createRenderCallback(e,n){var c;if(!this.bufferInfo){const h=new Error(`${this.getType()} mark has no data. This is bug.`);throw h.view=this.unitView,h}const r=this;let i;const a=(c=this.unitView.getScaleResolution("x"))==null?void 0:c.getScale(),o=a&&Et(a.type),s=["index","locus"].includes(a==null?void 0:a.type)?-1:0,f=[0,0];i=h=>{if(o&&h.xIndex){const d=a.domain(),g=h.xIndex(d[0]+s,d[1],f),b=g[0],y=g[1]-b;y>0&&e(b,y)}else e(h.offset,h.count)};const u=this.rangeMap.get(void 0).count==0?n.facetId:void 0,l=this.rangeMap.get(u);return n.sampleFacetRenderingOptions?function(){l.count&&r.prepareSampleFacetRendering(n)&&i(l)}:function(){l.count&&i(l)}}setViewport(e,n){e=e.flatten();const r=this.unitView.context.devicePixelRatio,i=this.gl,a=this.properties,o=this.glHelper.getLogicalCanvasSize(),s=.5,f=(a.xOffset??0)+s,u=(a.yOffset??0)+s;let l,c=e;if(a.clip!=="never"&&(a.clip||n)){let h=0,d=0,g;if(n){if(c=e.intersect(n).flatten(),!c.isDefined())return!1;g=[e.width/c.width,e.height/c.height],d=Math.max(0,e.y2-n.y2),h=Math.max(0,e.x2-n.x2)}else g=[1,1];const b=[c.x,o.height-c.y2,c.width,c.height].map(_=>_*r),y=b.map(_=>Math.round(_)),[w,E]=b.map((_,D)=>_-y[D]);i.viewport(...y),i.scissor(...y),i.enable(i.SCISSOR_TEST),l={uViewOffset:[(f+h+w/r)/c.width,-(u+d-E/r)/c.height],uViewScale:g}}else{if(!e.isDefined())return!1;i.viewport(0,0,o.width*r,o.height*r),i.disable(i.SCISSOR_TEST),l={uViewOffset:[(e.x+f)/o.width,(o.height-e.y-u-e.height)/o.height],uViewScale:[e.width/o.width,e.height/o.height]}}return aw(this.viewUniformInfo,{...l,uViewportSize:[e.width,e.height],uDevicePixelRatio:r}),iw(this.gl,this.programInfo,this.viewUniformInfo),!0}findDatumAt(e,n){}}class RN extends ki{constructor(){super([],JSON.stringify)}get(e){let n=super.get(e);return n===void 0&&(n={offset:0,count:0,xIndex:void 0},super.set(e,n)),n}migrateEntries(e){for(const[n,r]of e.entries())Object.assign(this.get(n),r)}}function s0(t,e){const n=hM(e);let r=t[e]&&{...t[e]},i=t[n]&&{...t[n]};if(!(Fn(r)||Fn(i))){if(r){if(!un(t[e]))return;if(i){if(r.type!="quantitative"){const a=(1-(r.band||1))/2;r.band=a,i.band=-a}}else if(r.type=="quantitative")i={datum:0};else{i={...r};const a=(1-(r.band??1))/2;r.band=0+a,i.band=1-a}}else r={value:0},i={value:1};t[e]=r,t[n]=i}}function Mw(t,e){t.stroke||(e?t.stroke={value:null}:t.stroke={resolutionChannel:"color",...t.color}),Fn(t.stroke)&&t.stroke.value===null&&(t.strokeWidth={value:0}),t.strokeOpacity||(t.strokeOpacity={resolutionChannel:"opacity",...t.opacity})}function Tw(t,e){Fn(t.fill)&&t.fill.value===null?t.fillOpacity={value:0}:t.fill||(t.fill={resolutionChannel:"color",...t.color},!e&&!t.fillOpacity&&(t.fillOpacity={value:0})),t.fillOpacity||(e?t.fillOpacity={resolutionChannel:"opacity",...t.opacity}:t.fillOpacity={value:0})}class ON extends Js{constructor(e){super(e),Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x2:void 0,y2:void 0,filled:!0,color:"#4c78a8",opacity:1,strokeWidth:3,cornerRadius:0,minWidth:.5,minHeight:.5,minOpacity:1,tessellationZoomThreshold:10,tessellationTiles:35}))}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","fill","stroke","fillOpacity","strokeOpacity","strokeWidth"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","fill","stroke","fillOpacity","strokeOpacity","strokeWidth"]}get opaque(){return ao(this,"opaque",()=>!this._isRoundedCorners()&&!this._isStroked()&&Fn(this.encoding.fillOpacity)&&this.encoding.fillOpacity.value==1&&this.properties.minOpacity==1)&&this.unitView.getEffectiveOpacity()==1}fixEncoding(e){return s0(e,"x"),s0(e,"y"),Mw(e,this.properties.filled),Tw(e,this.properties.filled),delete e.color,delete e.opacity,e}onBeforeSampleAnimation(){}onAfterSampleAnimation(){}_isRoundedCorners(){const e=this.properties;return e.cornerRadius||e.cornerRadiusBottomLeft||e.cornerRadiusBottomRight||e.cornerRadiusTopLeft||e.cornerRadiusTopRight}_isStroked(){const e=this.encoding.strokeWidth;return!(Fn(e)&&!e.value)}async initializeGraphics(){await super.initializeGraphics();const e=[];this._isRoundedCorners()&&e.push("ROUNDED_CORNERS"),this._isStroked()&&e.push("STROKED"),this.createAndLinkShaders(rN,iN,e.map(n=>"#define "+n))}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const e=this.properties;Kt(this.programInfo,{uMinSize:[e.minWidth,e.minHeight],uMinOpacity:e.minOpacity,uCornerRadii:[e.cornerRadiusTopRight??e.cornerRadius,e.cornerRadiusBottomRight??e.cornerRadius,e.cornerRadiusTopLeft??e.cornerRadius,e.cornerRadiusBottomLeft??e.cornerRadius]})}updateGraphicsData(){const e=this.unitView.getCollector(),n=e.getItemCount(),r=new yN({encoders:this.encoders,attributes:this.getAttributes(),numItems:n});r.addBatches(e.facetBatches);const i=r.toArrays();this.rangeMap.migrateEntries(i.rangeMap),this.updateBufferInfo(i)}prepareRender(e){const n=super.prepareRender(e);return n.push(()=>ro(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(e){const n=this.gl;return this.createRenderCallback((r,i)=>{Xs(n,this.vertexArrayInfo,n.TRIANGLE_STRIP,i,r)},e)}findDatumAt(e,n){e=$t(e);const r=this.unitView.getCollector().facetBatches.get(e);if(!r)return;const i=this.encoders,a=i.x.scale.type;if(Jr(a)){const o=i.x.accessor;return r.find(s=>n==o(s))}else{const o=i.x.accessor,s=i.x2.accessor;return r.find(f=>n>=o(f)&&n<s(f))}}}const zN=`/***The stroke should only grow inwards,e.g,the diameter/outline is not affected by the stroke width.*Thus,a point that has a zero size has no visible stroke. This allows strokes to be used with*geometric zoom,etc.*/uniform bool uInwardStroke;uniform lowp float uMaxRelativePointDiameter;uniform float uScaleFactor;uniform float uMaxPointSize;uniform float uZoomLevel;uniform float uSemanticThreshold;out float vRadius;out float vRadiusWithPadding;out lowp vec4 vFillColor;out lowp vec4 vStrokeColor;out lowp float vShape;out lowp float vHalfStrokeWidth;out mat2 vRotationMatrix;float computeSemanticThresholdFactor(){return getScaled_semanticScore()>=uSemanticThreshold ? 1.0 : 0.0;}/***Computes a scaling factor for the points in a sample-faceted view.*/float getDownscaleFactor(vec2 pos){if(!isFacetedSamples()){return 1.0;}float sampleFacetHeight=getSampleFacetHeight(pos);float maxPointDiameter=sqrt(uMaxPointSize);float factor=sampleFacetHeight*uViewportSize.y*uMaxRelativePointDiameter;return clamp(0.0,maxPointDiameter,factor)/maxPointDiameter;}vec2 getDxDy(){
198
+ `:"",l=[`precision highp float;
199
+ `,...r,ey,Nk,s,...a,Lk,Ok,t],u=[...r,ey,zk,n],c=this.gl;this.programStatus=qk(c,this.glHelper.compileShader(c.VERTEX_SHADER,l),this.glHelper.compileShader(c.FRAGMENT_SHADER,u))}finalizeGraphicsInitialization(){const t=this.programStatus.getProgramErrors();if(t){t.detail&&console.warn(t.detail);const n=new Error("Cannot create shader program: "+t.message);throw n.view=this.unitView,n}this.programInfo=WI(this.gl,this.programStatus.program),delete this.programStatus,this.domainUniforms.length&&(this.domainUniformInfo=P2(this.gl,this.programInfo,"Domains")),this.viewUniformInfo=P2(this.gl,this.programInfo,"View"),this.gl.useProgram(this.programInfo.program),this._setDatums(),Yt(this.programInfo,{uSampleFacet:[0,1,0,1],uTransitionOffset:0})}_setDatums(){for(const[t,n]of Object.entries(this.encoding))if(xs(n)){const r=this.encoders[t],i=r.indexer?r.indexer(n.datum):uu(r.scale.type)?K2(+n.datum):+n.datum;Yt(this.programInfo,{[Od+t]:i})}}deleteGraphicsData(){if(this.bufferInfo){const t=this.gl;for(let n=0;n<8;n++)t.disableVertexAttribArray(n);Object.values(this.bufferInfo.attribs).forEach(n=>this.gl.deleteBuffer(n.buffer)),this.bufferInfo.indices&&this.gl.deleteBuffer(this.bufferInfo.indices),this.bufferInfo=void 0}}updateBufferInfo(t){if(this.gl.bindVertexArray(null),this.bufferInfo&&t.vertexCount<=this.bufferInfo.allocatedVertices)for(const[n,r]of Object.entries(t.arrays))r.data&&a5(this.gl,this.bufferInfo.attribs[n],r.data,0);else this.deleteGraphicsData(),this.bufferInfo=l5(this.gl,t.arrays,{numElements:t.vertexCount}),this.bufferInfo.allocatedVertices=t.allocatedVertices,this.vertexArrayInfo=void 0}get glHelper(){return this.getContext().glHelper}get gl(){return this.glHelper.gl}onBeforeSampleAnimation(){}onAfterSampleAnimation(){}isReady(){return this.bufferInfo&&this.programInfo}isPickingParticipant(){if(this.properties.tooltip===null)return!1;for(const t of this.unitView.getLayoutAncestors())if(!t.isPickingSupported())return!1;return!0}prepareRender(t){const n=this.glHelper,r=this.gl,i=[];if(i.push(()=>{this.vertexArrayInfo||(this.vertexArrayInfo=hk(this.gl,this.programInfo,this.bufferInfo)),r.useProgram(this.programInfo.program)}),this.domainUniformInfo){for(const[o,s]of Object.entries(this.domainUniformInfo.setters)){const f=o.substring(Z2.length),l=this.encoding[f],u=Lt(l)&&l.resolutionChannel||f;if(Ni(u)){const c=this.unitView.getScaleResolution(u).getScale();i.push(()=>{const h=Mr(c.type)?[0,c.domain().length]:c.domain();s(uu(c.type)?Tk(h):h)})}}i.push(()=>M2(r,this.programInfo,this.domainUniformInfo))}for(const[o,s]of Object.entries(this.encoding))if(Lt(s)){const f=Lt(s)&&s.resolutionChannel||o;if(Ni(f)){const l=this.unitView.getScaleResolution(f),u=n.rangeTextures.get(l);u&&i.push(()=>Yt(this.programInfo,{[zd+o]:u}))}}this.getSampleFacetMode()==ay&&i.push(()=>{let o;for(const s of this.unitView.getLayoutAncestors())if(o=s.getSampleFacetTexture(),o)break;if(!o)throw new Error("No facet texture available. This is bug.");Yt(this.programInfo,{uSampleFacetTexture:o})});const a=(t.picking??!1)&&this.isPickingParticipant();return i.push(()=>N2(this.viewUniformInfo,{uViewOpacity:this.unitView.getEffectiveOpacity(),uPickingEnabled:a})),this.opaque||t.picking?i.push(()=>r.disable(r.BLEND)):i.push(()=>r.enable(r.BLEND)),i}prepareSampleFacetRendering(t){const n=t.sampleFacetRenderingOptions,r=this.programInfo.uniformSetters.uSampleFacet;if(n&&r){const i=n.locSize?n.locSize.location:0,a=n.locSize?n.locSize.size:1;if(i>1||i+a<0)return!1;const o=n.targetLocSize?n.targetLocSize.location:i,s=n.targetLocSize?n.targetLocSize.size:a;this.gl.uniform4f(r.location,i,a,o,s)}return!0}render(t){}createRenderCallback(t,n){var c;if(!this.bufferInfo)throw new Gi(`${this.getType()} mark has no data. This is bug.`,this.unitView);const r=this;let i;const a=(c=this.unitView.getScaleResolution("x"))==null?void 0:c.getScale(),o=a&&xt(a.type),s=["index","locus"].includes(a==null?void 0:a.type)?-1:0,f=[0,0];i=h=>{if(o&&h.xIndex){const d=a.domain(),p=h.xIndex(d[0]+s,d[1],f),b=p[0],y=p[1]-b;y>0&&t(b,y)}else t(h.offset,h.count)};const l=this.rangeMap.get(void 0).count==0?n.facetId:void 0,u=this.rangeMap.get(l);return n.sampleFacetRenderingOptions?function(){u.count&&r.prepareSampleFacetRendering(n)&&i(u)}:function(){u.count&&i(u)}}setViewport(t,n){t=t.flatten();const r=this.unitView.context.devicePixelRatio,i=this.gl,a=this.properties,o=this.glHelper.getLogicalCanvasSize(),s=.5,f=(a.xOffset??0)+s,l=(a.yOffset??0)+s;let u,c=t;if(a.clip!=="never"&&(a.clip||n)){let h=0,d=0,p;if(n){if(c=t.intersect(n).flatten(),!c.isDefined())return!1;p=[t.width/c.width,t.height/c.height],d=Math.max(0,t.y2-n.y2),h=Math.min(0,t.x-n.x)}else p=[1,1];const b=[c.x,o.height-c.y2,c.width,c.height].map(C=>C*r),y=b.map(C=>Math.round(C)),[w,S]=b.map((C,_)=>C-y[_]);i.viewport(...y),i.scissor(...y),i.enable(i.SCISSOR_TEST),u={uViewOffset:[(f+h+w/r)/c.width,-(l+d-S/r)/c.height],uViewScale:p}}else{if(!t.isDefined())return!1;i.viewport(0,0,o.width*r,o.height*r),i.disable(i.SCISSOR_TEST),u={uViewOffset:[(t.x+f)/o.width,(o.height-t.y-l-t.height)/o.height],uViewScale:[t.width/o.width,t.height/o.height]}}return N2(this.viewUniformInfo,{...u,uViewportSize:[t.width,t.height],uDevicePixelRatio:r}),M2(this.gl,this.programInfo,this.viewUniformInfo),!0}findDatumAt(t,n){}}class Qk extends mi{constructor(){super([],JSON.stringify)}get(t){let n=super.get(t);return n===void 0&&(n={offset:0,count:0,xIndex:void 0},super.set(t,n)),n}migrateEntries(t){for(const[n,r]of t.entries())Object.assign(this.get(n),r)}}function qd(e,t){const n=S8(t);let r=e[t]&&{...e[t]},i=e[n]&&{...e[n]};if(!(xn(r)||xn(i))){if(r){if(!Lt(e[t]))return;if(i){if(r.type!="quantitative"){const a=(1-(r.band||1))/2;r.band=a,i.band=-a}}else if(r.type=="quantitative")i={datum:0};else{i={...r};const a=(1-(r.band??1))/2;r.band=0+a,i.band=1-a}}else r={value:0},i={value:1};e[t]=r,e[n]=i}}function oy(e,t){e.stroke||(t?e.stroke={value:null}:e.stroke={resolutionChannel:"color",...e.color}),xn(e.stroke)&&e.stroke.value===null&&(e.strokeWidth={value:0}),e.strokeOpacity||(e.strokeOpacity={resolutionChannel:"opacity",...e.opacity})}function sy(e,t){xn(e.fill)&&e.fill.value===null?e.fillOpacity={value:0}:e.fill||(e.fill={resolutionChannel:"color",...e.color},!t&&!e.fillOpacity&&(e.fillOpacity={value:0})),e.fillOpacity||(t?e.fillOpacity={resolutionChannel:"opacity",...e.opacity}:e.fillOpacity={value:0})}class Xk extends Rs{constructor(t){super(t),Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x2:void 0,y2:void 0,filled:!0,color:"#4c78a8",opacity:1,strokeWidth:3,cornerRadius:0,minWidth:.5,minHeight:.5,minOpacity:1,tessellationZoomThreshold:10,tessellationTiles:35}))}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","fill","stroke","fillOpacity","strokeOpacity","strokeWidth"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","fill","stroke","fillOpacity","strokeOpacity","strokeWidth"]}get opaque(){return Ga(this,"opaque",()=>!this._isRoundedCorners()&&!this._isStroked()&&xn(this.encoding.fillOpacity)&&this.encoding.fillOpacity.value==1&&this.properties.minOpacity==1)&&this.unitView.getEffectiveOpacity()==1}fixEncoding(t){return qd(t,"x"),qd(t,"y"),oy(t,this.properties.filled),sy(t,this.properties.filled),delete t.color,delete t.opacity,t}onBeforeSampleAnimation(){}onAfterSampleAnimation(){}_isRoundedCorners(){const t=this.properties;return t.cornerRadius||t.cornerRadiusBottomLeft||t.cornerRadiusBottomRight||t.cornerRadiusTopLeft||t.cornerRadiusTopRight}_isStroked(){const t=this.encoding.strokeWidth;return!(xn(t)&&!t.value)}async initializeGraphics(){await super.initializeGraphics();const t=[];this._isRoundedCorners()&&t.push("ROUNDED_CORNERS"),this._isStroked()&&t.push("STROKED"),this.createAndLinkShaders(bk,yk,t.map(n=>"#define "+n))}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;Yt(this.programInfo,{uMinSize:[t.minWidth,t.minHeight],uMinOpacity:t.minOpacity,uCornerRadii:[t.cornerRadiusTopRight??t.cornerRadius,t.cornerRadiusBottomRight??t.cornerRadius,t.cornerRadiusTopLeft??t.cornerRadius,t.cornerRadiusBottomLeft??t.cornerRadius]})}updateGraphicsData(){const t=this.unitView.getCollector(),n=t.getItemCount(),r=new Dk({encoders:this.encoders,attributes:this.getAttributes(),numItems:n});r.addBatches(t.facetBatches);const i=r.toArrays();this.rangeMap.migrateEntries(i.rangeMap),this.updateBufferInfo(i)}prepareRender(t){const n=super.prepareRender(t);return n.push(()=>za(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(t){const n=this.gl;return this.createRenderCallback((r,i)=>{Bs(n,this.vertexArrayInfo,n.TRIANGLE_STRIP,i,r)},t)}findDatumAt(t,n){t=Wt(t);const r=this.unitView.getCollector().facetBatches.get(t);if(!r)return;const i=this.encoders,a=i.x.scale.type;if(Mr(a)){const o=i.x.accessor;return r.find(s=>n==o(s))}else{const o=i.x.accessor,s=i.x2.accessor;return r.find(f=>n>=o(f)&&n<s(f))}}}const $k=`/***The stroke should only grow inwards,e.g,the diameter/outline is not affected by the stroke width.*Thus,a point that has a zero size has no visible stroke. This allows strokes to be used with*geometric zoom,etc.*/uniform bool uInwardStroke;uniform lowp float uMaxRelativePointDiameter;uniform float uScaleFactor;uniform float uMaxPointSize;uniform float uZoomLevel;uniform float uSemanticThreshold;out float vRadius;out float vRadiusWithPadding;out lowp vec4 vFillColor;out lowp vec4 vStrokeColor;out lowp float vShape;out lowp float vHalfStrokeWidth;out mat2 vRotationMatrix;const float CIRCLE=0.0;const float SQUARE=1.0;const float CROSS=2.0;const float DIAMOND=3.0;const float TRIANGLE_UP=4.0;const float TRIANGLE_RIGHT=5.0;const float TRIANGLE_DOWN=6.0;const float TRIANGLE_LEFT=7.0;const float TICK_UP=8.0;const float TICK_RIGHT=9.0;const float TICK_DOWN=10.0;const float TICK_LEFT=11.0;float computeSemanticThresholdFactor(){return getScaled_semanticScore()>=uSemanticThreshold ? 1.0 : 0.0;}/***Computes a scaling factor for the points in a sample-faceted view.*/float getDownscaleFactor(vec2 pos){if(!isFacetedSamples()){return 1.0;}float sampleFacetHeight=getSampleFacetHeight(pos);float maxPointDiameter=sqrt(uMaxPointSize);float factor=sampleFacetHeight*uViewportSize.y*uMaxRelativePointDiameter;return clamp(0.0,maxPointDiameter,factor)/maxPointDiameter;}vec2 getDxDy(){
202
200
  #if defined(dx_DEFINED) || defined(dy_DEFINED)
203
201
  return vec2(getScaled_dx(),getScaled_dy())/uViewportSize;
204
202
  #else
205
203
  return vec2(0.0,0.0);
206
204
  #endif
207
- }void main(void){float semanticThresholdFactor=computeSemanticThresholdFactor();if(semanticThresholdFactor<=0.0){gl_PointSize=0.0;gl_Position=vec4(100.0,0.0,0.0,0.0);return;}float size=getScaled_size();vec2 pos=vec2(getScaled_x(),getScaled_y())+getDxDy();gl_Position=unitToNdc(applySampleFacet(pos));float strokeWidth=getScaled_strokeWidth();float diameter=sqrt(size)*uScaleFactor*semanticThresholdFactor*getDownscaleFactor(pos);float opacity=uViewOpacity;if(strokeWidth<=0.0||uInwardStroke){float minDiameter=1.0/uDevicePixelRatio;if(diameter<minDiameter){opacity*=pow(diameter/minDiameter,2.5);diameter=minDiameter;}}float fillOpa=getScaled_fillOpacity()*opacity;float strokeOpa=getScaled_strokeOpacity()*opacity;vShape=getScaled_shape();bool circle=vShape==0.0;float angleInDegrees=getScaled_angle();float angle=-angleInDegrees*PI/180.0;float sinTheta=sin(angle);float cosTheta=cos(angle);vRotationMatrix=mat2(cosTheta,sinTheta,-sinTheta,cosTheta);float roomForRotation=circle ? 1.0 : sin(mod(angle,PI/2.0)+PI/4.0)/sin(PI/4.0);float aaPadding=1.0/uDevicePixelRatio;float rotationPadding=(diameter*roomForRotation)-diameter;float strokePadding=uInwardStroke ? 0.0 : strokeWidth*(circle ? 1.0 : sqrt(3.0));float padding=rotationPadding+strokePadding+aaPadding;gl_PointSize=(diameter+padding)*uDevicePixelRatio;vRadius=diameter/2.0;vRadiusWithPadding=vRadius+padding/2.0;vHalfStrokeWidth=strokeWidth/2.0;vFillColor=vec4(getScaled_fill()*fillOpa,fillOpa);vStrokeColor=vec4(getScaled_stroke()*strokeOpa,strokeOpa);setupPicking();}`,PN="const lowp vec4 white=vec4(1.0);const lowp vec4 black=vec4(0.0,0.0,0.0,1.0);uniform bool uInwardStroke;uniform float uGradientStrength;in float vRadius;in float vRadiusWithPadding;in lowp vec4 vFillColor;in lowp vec4 vStrokeColor;in lowp float vShape;in lowp float vHalfStrokeWidth;in mat2 vRotationMatrix;out lowp vec4 fragColor;const float CIRCLE=0.0;const float SQUARE=1.0;const float TRIANGLE_UP=2.0;const float CROSS=3.0;const float DIAMOND=4.0;const float TRIANGLE_DOWN=5.0;const float TRIANGLE_RIGHT=6.0;const float TRIANGLE_LEFT=7.0;float circle(vec2 p,float r){return length(p)-r;}float square(vec2 p,float r){p=abs(p);return max(p.x,p.y)-r;}float equilateralTriangle(vec2 p,float r,bool flip,bool swap){if(swap){p.xy=p.yx;}if(flip){p.y=-p.y;}float k=sqrt(3.0);float kr=k*r;p.y-=kr/2.0;return max((abs(p.x)*k+p.y)/2.0,-p.y-kr);}float crossShape(vec2 p,float r){p=abs(p);vec2 b=vec2(0.4,1.0)*r;vec2 v=abs(p)-b.xy;vec2 h=abs(p)-b.yx;return min(max(v.x,v.y),max(h.x,h.y));}float diamond(vec2 p,float r){p=abs(p);return(max(abs(p.x-p.y),abs(p.x+p.y))-r)/sqrt(2.0);}void main(){float d;vec2 p=vRotationMatrix*(2.0*gl_PointCoord-1.0)*vRadiusWithPadding;float r=vRadius;if(vShape==CIRCLE){d=circle(p,r);}else if(vShape==SQUARE){d=square(p,r);}else if(vShape==TRIANGLE_UP){d=equilateralTriangle(p,r,true,false);}else if(vShape==CROSS){d=crossShape(p,r);}else if(vShape==DIAMOND){d=diamond(p,r);}else if(vShape==TRIANGLE_DOWN){d=equilateralTriangle(p,r,false,false);}else if(vShape==TRIANGLE_RIGHT){d=equilateralTriangle(p,r,false,true);}else if(vShape==TRIANGLE_LEFT){d=equilateralTriangle(p,r,true,true);}else{d=0.0;}if(!uPickingEnabled){lowp vec4 fillColor=mix(vFillColor,white,-d*uGradientStrength/vRadius);fragColor=distanceToColor(d+(uInwardStroke ? vHalfStrokeWidth : 0.0),fillColor,vStrokeColor,vHalfStrokeWidth);}else if(d-vHalfStrokeWidth<=0.0){fragColor=vPickingColor;}else{discard;}}",er=1,oi=2,u0=4,UN={};class tt{get behavior(){return 0}constructor(){this.children=[],this.parent=void 0,this.completed=!1}reset(){this.completed=!1;for(const e of this.children)e.reset()}initialize(){}_updatePropagator(){this._propagate=Function("children",ns(this.children.length).map(e=>`const child${e} = children[${e}];`).join(`
208
- `)+`return function propagate(datum) {${ns(this.children.length).map(e=>`child${e}.handle(datum);`).join(`
209
- `)}}`)(this.children)}setParent(e){this.parent=e}addChild(e){if(e.parent)throw new Error("Cannot add the child! It already has a parent.");return this.children.push(e),e.setParent(this),this._updatePropagator(),this}adopt(e){e.parent&&e.parent.removeChild(e),this.addChild(e)}adoptChildrenOf(e){for(const n of e.children)this.adopt(n)}insertAsParent(e){if(this.isRoot())throw new Error("Cannot insert a new parent for a root node!");e.parent=this.parent,this.parent.children[this.parent.children.indexOf(this)]=e,this.parent._updatePropagator(),this.parent=void 0,e.addChild(this)}removeChild(e){const n=this.children.indexOf(e);if(n>-1)this.children.splice(n,1),e.parent=void 0,this._updatePropagator();else throw new Error("Trying to remove an unknown child node!")}excise(){if(this.isRoot())throw new Error("Cannot excise root node!");if(this.isTerminal())this.parent.removeChild(this);else if(this.children.length==1){const e=this.children[0];e.setParent(this.parent),this.parent.children[this.parent.children.indexOf(this)]=e,this.parent._updatePropagator(),this.setParent(void 0),this.children.length=0}else throw new Error("Cannot excise a node that has multiple children!")}isRoot(){return!this.parent}isBranching(){return this.children.length>1}isTerminal(){return this.children.length==0}visit(e){e(this);for(const n of this.children)n.visit(e);e.afterChildren&&e.afterChildren(this)}subtreeToString(e=0){const n=this.children.map(r=>r.subtreeToString(e+1)).join("");return`${" ".repeat(e*2)}* ${this.constructor.name}${("identifier"in this&&this.identifier?": "+this.identifier:"")??""}
210
- ${n}`}getGlobalObject(){return this.parent?this.parent.getGlobalObject():UN}handle(e){this._propagate(e)}complete(){this.completed=!0;for(const e of this.children)e.complete()}beginBatch(e){for(const n of this.children)n.beginBatch(e)}_propagate(e){}}function Nw(t){return t.type=="file"}function jN(t){return t.type=="facet"}class Fw extends tt{constructor(e){super(),this.k=e.size||500,this.reset()}reset(){super.reset(),this.reservoir=[],this.W=void 0,this.ingester=this._initialIngester}_initialIngester(e){this.reservoir.push(e),this.reservoir.length==this.k&&(this.W=Math.exp(Math.log(Math.random())/this.k),this.i=this.k,this.next=this.i,this.ingester=this._finalIngester,this._setNextStop())}_finalIngester(e){++this.i==this.next&&(this.reservoir[Math.floor(Math.random()*this.k)]=e,this.W*=Math.exp(Math.log(Math.random())/this.k),this._setNextStop())}_setNextStop(){this.next+=Math.floor(Math.log(Math.random())/Math.log(1-this.W))+1}handle(e){this.ingester(e)}complete(){for(const e of this.reservoir)this._propagate(e);super.complete()}}function GN(t,e,n){const r=new Fw({type:"sample",size:t});for(const i of e)r.handle(n(i));return r.complete(),r.reservoir}const HN={};class QN extends Js{constructor(e){super(e),Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x:.5,y:.5,color:"#4c78a8",filled:!0,opacity:1,size:100,semanticScore:0,shape:"circle",strokeWidth:2,fillGradientStrength:0,dx:0,dy:0,angle:0,sampleFacetPadding:.1,semanticZoomFraction:.02}))}getAttributes(){return["inwardStroke","uniqueId","facetIndex","x","y","size","semanticScore","shape","strokeWidth","gradientStrength","dx","dy","fill","stroke","fillOpacity","strokeOpacity","angle"]}getSupportedChannels(){return[...super.getSupportedChannels(),"size","semanticScore","shape","strokeWidth","dx","dy","fill","stroke","fillOpacity","strokeOpacity","angle"]}getDefaultEncoding(){return{...super.getDefaultEncoding(),...HN}}fixEncoding(e){return Mw(e,this.properties.filled),Tw(e,this.properties.filled),delete e.color,delete e.opacity,e}initializeData(){super.initializeData();const e=this.unitView.getAccessor("semanticScore");e&&(this.sampledSemanticScores=Float32Array.from(GN(1e4,this.unitView.getCollector().getData(),e)),this.sampledSemanticScores.sort((n,r)=>n-r))}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(zN,PN)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const e=this.properties;Kt(this.programInfo,{uInwardStroke:e.inwardStroke,uGradientStrength:e.fillGradientStrength,uMaxRelativePointDiameter:1-2*e.sampleFacetPadding})}updateGraphicsData(){const e=this.unitView.getCollector(),n=e.getItemCount(),r=new xN({encoders:this.encoders,attributes:this.getAttributes(),numItems:Math.max(n,this.properties.minBufferSize||0)});r.addBatches(e.facetBatches);const i=r.toArrays();this.rangeMap.migrateEntries(i.rangeMap),this.updateBufferInfo(i)}_getGeometricScaleFactor(){const e=Math.pow(2,this.properties.geometricZoomBound||0);return Math.pow(Math.min(1,this.unitView.getZoomLevel()/e),1/3)}_getMaxPointSize(){const e=this.encoders.size;return e.constant?e(null):e.scale.range().reduce((n,r)=>Math.max(n,r))}getSemanticThreshold(){if(this.sampledSemanticScores){const e=Math.max(0,1-this.properties.semanticZoomFraction*this.unitView.getZoomLevel());if(e<=0)return-1/0;if(e>=1)return 1/0;{const n=this.sampledSemanticScores;return gm(n,e)}}else return-1}prepareRender(e){const n=super.prepareRender(e);return n.push(()=>Kt(this.programInfo,{uMaxPointSize:this._getMaxPointSize(),uScaleFactor:this._getGeometricScaleFactor(),uSemanticThreshold:this.getSemanticThreshold()})),n.push(()=>ro(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(e){const n=this.gl;return this.createRenderCallback((r,i)=>{i&&Xs(n,this.vertexArrayInfo,n.POINTS,i,r)},e)}}const VN="const int BUTT=0;const int SQUARE=1;const int ROUND=2;in float pos;in float side;uniform float uMinLength;uniform mediump float uDashTextureSize;uniform lowp int uStrokeCap;out vec4 vColor;out float vSize;out float vNormalLengthInPixels;out highp vec2 vPosInPixels;void main(void){float pixelSize=1.0/uDevicePixelRatio;float size=getScaled_size();float opacity=getScaled_opacity()*uViewOpacity;if(size<pixelSize){opacity*=size/pixelSize;size=pixelSize;}vec2 a=applySampleFacet(vec2(getScaled_x(),getScaled_y()));vec2 b=applySampleFacet(vec2(getScaled_x2(),getScaled_y2()));vec2 tangent=b-a;float offset=0.0;float relativeDiff=0.0;if(uMinLength>0.0||uStrokeCap!=BUTT){float len=length(tangent*uViewportSize);float diff=max(0.0,uMinLength-len);if(uStrokeCap!=BUTT){diff+=size;}relativeDiff=diff/len;offset=relativeDiff*(pos-0.5);}vec2 p=pos<1.0? a+tangent*(pos+offset): b+tangent*offset;float aaPadding=pixelSize;vec2 normal=normalize(vec2(-tangent.y,tangent.x)/uViewportSize);p+=normal*side*(size+aaPadding)/uViewportSize;gl_Position=unitToNdc(p);vColor=vec4(getScaled_color()*opacity,opacity);vSize=size;vNormalLengthInPixels=side*(size+aaPadding);vPosInPixels=vec2(pos,(1.0-pos))*(1.0+relativeDiff)*length(tangent*uViewportSize)-vec2(uStrokeCap!=BUTT ? size/2.0 : 0.0);setupPicking();}",qN="const int BUTT=0;const int SQUARE=1;const int ROUND=2;uniform sampler2D uDashTexture;uniform float uDashTextureSize;uniform float uStrokeDashOffset;uniform lowp int uStrokeCap;in vec4 vColor;in float vSize;in vec2 vPosInPixels;in float vNormalLengthInPixels;out lowp vec4 fragColor;void main(void){float dpr=uDevicePixelRatio;float distanceFromEnd=-min(vPosInPixels[0],vPosInPixels[1]);float distance;if(distanceFromEnd>0.0&&uStrokeCap==ROUND){distance=length(vec2(distanceFromEnd,vNormalLengthInPixels));}else{distance=abs(vNormalLengthInPixels);}float opacity=clamp(((vSize/2.0-distance)*dpr),-0.5,0.5)+0.5;if(uDashTextureSize>0.0){float pos=(vPosInPixels[0]+uStrokeDashOffset)*dpr;float floored=floor(pos);vec2 texelPositions=(floored+vec2(0.5,1.5))/dpr/uDashTextureSize;opacity*=mix(texture(uDashTexture,vec2(texelPositions[0],0)).r,texture(uDashTexture,vec2(texelPositions[1],0)).r,clamp((pos-floored),0.0,1.0));}fragColor=vColor*opacity;if(uPickingEnabled){fragColor=vPickingColor;}}";class ZN extends Js{constructor(e){super(e),this.dashTextureSize=0,Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x2:void 0,y2:void 0,size:1,color:"black",opacity:1,minLength:0,strokeDash:null,strokeDashOffset:0,strokeCap:"butt"}))}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","size","color","opacity"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","size"]}fixEncoding(e){if(!(e.x&&e.y&&e.x2&&e.y2))if(e.x&&e.x2&&!e.y)e.y={value:.5},e.y2=e.y;else if(e.y&&e.y2&&!e.x)e.x={value:.5},e.x2=e.x;else if(e.x&&!e.y)e.y={value:0},e.y2={value:1},e.x2=e.x;else if(e.y&&!e.x)e.x={value:0},e.x2={value:1},e.y2=e.y;else if(e.x&&e.y&&e.y2)e.x2=e.x;else if(e.y&&e.x&&e.x2)e.y2=e.y;else if(e.y&&e.x)if(!e.x2&&un(e.y)&&e.y.type=="quantitative")e.x2=e.x,e.y2={datum:0};else if(!e.y2&&un(e.x)&&e.x.type=="quantitative")e.y2=e.y,e.x2={datum:0};else throw new Error("A bug!");else throw new Error("Invalid x and y encodings for rule mark: "+JSON.stringify(e));return e}async initializeGraphics(){if(await super.initializeGraphics(),this.properties.strokeDash){const e=this.gl,n=YN(this.properties.strokeDash);this.dashTexture=Ws(e,{mag:e.NEAREST,min:e.NEAREST,internalFormat:e.R8,format:e.RED,src:n,height:1}),this.dashTextureSize=n.length}this.createAndLinkShaders(VN,qN)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const e=this.properties;Kt(this.programInfo,{uMinLength:e.minLength,uDashTextureSize:this.dashTextureSize,uStrokeCap:["butt","square","round"].indexOf(e.strokeCap)})}updateGraphicsData(){const e=this.unitView.getCollector(),n=e.getItemCount(),r=new wN({encoders:this.encoders,attributes:this.getAttributes(),numItems:Math.max(n,this.properties.minBufferSize||0)});r.addBatches(e.facetBatches);const i=r.toArrays();this.rangeMap.migrateEntries(i.rangeMap),this.updateBufferInfo(i)}prepareRender(e){const n=super.prepareRender(e);return this.dashTexture&&n.push(()=>Kt(this.programInfo,{uDashTexture:this.dashTexture,uStrokeDashOffset:this.properties.strokeDashOffset})),n.push(()=>ro(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(e){const n=this.gl;return this.createRenderCallback((r,i)=>Xs(n,this.vertexArrayInfo,n.TRIANGLE_STRIP,i,r),e)}}function YN(t){if(t.length==0||t.length%2||t.findIndex(a=>Math.round(a)!=a||a<1||a>1e3)>=0)throw new Error("Invalid stroke dash pattern: "+JSON.stringify(t));const e=t.reduce((a,o)=>a+o),n=new Uint8Array(e);let r=!0,i=0;for(let a of t){for(;a;)n[i++]=r&&255||0,a--;r=!r}return n}const WN=`uniform float uSagittaScaleFactor;uniform float uMinSagittaLength;in vec2 strip;out vec4 vColor;out float vSize;out float vNormalLengthInPixels;void main(void){float pixelSize=1.0/uDevicePixelRatio;float opacity=getScaled_opacity()*uViewOpacity;vec2 a=vec2(getScaled_x(),getScaled_y())*uViewportSize;vec2 b=vec2(getScaled_x2(),getScaled_y2())*uViewportSize;vec2 chordVector=b-a;vec2 unitChordVector=normalize(chordVector);vec2 chordNormal=vec2(-unitChordVector.y,unitChordVector.x);float sagitta=max(length(chordVector)/2.0*uSagittaScaleFactor,uMinSagittaLength);bool compress=false;if(compress){float maxSagittaLen=length(chordNormal*uViewportSize);float maxChordLen=length(unitChordVector*uViewportSize);float threshold=maxSagittaLen*0.5;if(sagitta>threshold){float m=(maxSagittaLen-threshold)/(maxChordLen-threshold);sagitta=(sagitta-threshold)*m+threshold;}}vec2 controlOffset=chordNormal*sagitta/0.75;vec2 p1=a;vec2 p2=a+controlOffset;vec2 p3=b+controlOffset;vec2 p4=b;float t=smoothstep(0.0,1.0,strip.x);vec2 C1=p4-3.0*p3+3.0*p2-p1;vec2 C2=3.0*p3-6.0*p2+3.0*p1;vec2 C3=3.0*p2-3.0*p1;vec2 C4=p1;vec2 p;if(t==0.0){p=p1;}else if(t==1.0){p=p4;}else{p=C1*t*t*t+C2*t*t+C3*t+C4;}vec2 tangent=normalize(3.0*C1*t*t+2.0*C2*t+C3);vec2 normal=vec2(-tangent.y,tangent.x);
211
- #ifdef size2_DEFINED
212
- float mixedSize=mix(getScaled_size(),getScaled_size2(),t);
213
- #else
214
- float mixedSize=getScaled_size();
215
- #endif
216
- if(mixedSize<pixelSize){opacity*=mixedSize/pixelSize;mixedSize=pixelSize;}float paddedSize=mixedSize+pixelSize;vNormalLengthInPixels=strip.y*paddedSize;p+=normal*vNormalLengthInPixels;gl_Position=pixelsToNdc(p);
217
- #ifdef color2_DEFINED
218
- vec3 color=mix(getScaled_color(),getScaled_color2(),t);
219
- #else
220
- vec3 color=getScaled_color();
221
- #endif
222
- vColor=vec4(color*opacity,opacity);vSize=paddedSize;setupPicking();}`,XN="in lowp vec4 vColor;in float vSize;in float vNormalLengthInPixels;out lowp vec4 fragColor;void main(void){float dpr=uDevicePixelRatio;float distance=abs(vNormalLengthInPixels);float opacity=clamp(((vSize/2.0-distance)*dpr),0.0,1.0);fragColor=vColor*opacity;if(uPickingEnabled){fragColor=vPickingColor;}}";class $N extends Js{constructor(e){super(e),Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x:0,x2:void 0,y:0,y2:void 0,size:1,color:"black",opacity:1,segments:101,sagittaScaleFactor:1,minSagittaLength:1.5}))}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","size","height","color","opacity"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","size"]}fixEncoding(e){return e.x||(e.x2=e.x),e.y2||(e.y2=e.y),e}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(WN,XN)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const e=this.properties;Kt(this.programInfo,{uSagittaScaleFactor:e.sagittaScaleFactor,uMinSagittaLength:e.minSagittaLength})}updateGraphicsData(){const e=this.unitView.getCollector(),n=e.getItemCount(),r=new vN({encoders:this.encoders,attributes:this.getAttributes(),numItems:n});r.addBatches(e.facetBatches);const i=r.toArrays();i.arrays.strip={data:KN(this.properties.segments),numComponents:2},this.rangeMap.migrateEntries(i.rangeMap),this.arrays=Object.fromEntries(Object.entries(i.arrays).map(([a,o])=>[a,{...o,data:void 0}])),this.updateBufferInfo(i)}render(e){const n=this.gl;return this.createRenderCallback((r,i)=>{this.gl.bindVertexArray(this.vertexArrayInfo.vertexArrayObject);for(const a of Object.entries(this.bufferInfo.attribs)){const[o,s]=a;s.buffer&&s.numComponents&&s.divisor&&(s.offset=r*this.arrays[o].numComponents*4)}ro(n,this.programInfo,this.bufferInfo),Xs(n,this.bufferInfo,n.TRIANGLE_STRIP,(this.properties.segments+1)*2,0,i)},e)}}function KN(t){let e=0;const n=[];for(;e<=t;e++)n.push(e/t,.5),n.push(e/t,-.5);return n}const JN=`uniform float uSdfNumerator;uniform vec2 uD;in mediump vec2 vertexCoord;in lowp vec2 textureCoord;uniform vec4 uViewportEdgeFadeWidth;uniform vec4 uViewportEdgeFadeDistance;uniform bool uSqueeze;uniform bool uLogoLetter;in float width;uniform ivec2 uAlign;
205
+ }void main(void){float shapeAngle=0.0;float semanticThresholdFactor=computeSemanticThresholdFactor();if(semanticThresholdFactor<=0.0){gl_PointSize=0.0;gl_Position=vec4(100.0,0.0,0.0,0.0);return;}float size=getScaled_size();vec2 pos=vec2(getScaled_x(),getScaled_y())+getDxDy();gl_Position=unitToNdc(applySampleFacet(pos));float strokeWidth=getScaled_strokeWidth();float diameter=sqrt(size)*uScaleFactor*semanticThresholdFactor*getDownscaleFactor(pos);float opacity=uViewOpacity;if(strokeWidth<=0.0||uInwardStroke){float minDiameter=1.0/uDevicePixelRatio;if(diameter<minDiameter){opacity*=pow(diameter/minDiameter,2.5);diameter=minDiameter;}}float fillOpa=getScaled_fillOpacity()*opacity;float strokeOpa=getScaled_strokeOpacity()*opacity;vShape=getScaled_shape();bool circle=vShape==0.0;if(vShape>TICK_UP&&vShape<=TICK_LEFT){shapeAngle=(vShape-TICK_UP)*90.0;vShape=TICK_UP;}else if(vShape>TRIANGLE_UP&&vShape<=TRIANGLE_LEFT){shapeAngle=(vShape-TRIANGLE_UP)*90.0;vShape=TRIANGLE_UP;}float angleInDegrees=getScaled_angle();float angle=-(shapeAngle+angleInDegrees)*PI/180.0;float sinTheta=sin(angle);float cosTheta=cos(angle);vRotationMatrix=mat2(cosTheta,sinTheta,-sinTheta,cosTheta);float roomForRotation=circle ? 1.0 : sin(mod(angle,PI/2.0)+PI/4.0)/sin(PI/4.0);float aaPadding=1.0/uDevicePixelRatio;float rotationPadding=(diameter*roomForRotation)-diameter;float strokePadding=uInwardStroke ? 0.0 : strokeWidth*(circle ? 1.0 : sqrt(3.0));float padding=rotationPadding+strokePadding+aaPadding;gl_PointSize=(diameter+padding)*uDevicePixelRatio;vRadius=diameter/2.0;vRadiusWithPadding=vRadius+padding/2.0;vHalfStrokeWidth=strokeWidth/2.0;vFillColor=vec4(getScaled_fill()*fillOpa,fillOpa);vStrokeColor=vec4(getScaled_stroke()*strokeOpa,strokeOpa);setupPicking();}`,Kk="const lowp vec4 white=vec4(1.0);const lowp vec4 black=vec4(0.0,0.0,0.0,1.0);uniform bool uInwardStroke;uniform float uGradientStrength;in float vRadius;in float vRadiusWithPadding;in lowp vec4 vFillColor;in lowp vec4 vStrokeColor;in lowp float vShape;in lowp float vHalfStrokeWidth;in mat2 vRotationMatrix;out lowp vec4 fragColor;const float CIRCLE=0.0;const float SQUARE=1.0;const float CROSS=2.0;const float DIAMOND=3.0;const float TRIANGLE_UP=4.0;const float TICK_UP=8.0;float circle(vec2 p,float r){return length(p)-r;}float square(vec2 p,float r){p=abs(p);return max(p.x,p.y)-r;}float tickUp(vec2 p,float r){float halfR=r*0.5;p.y+=halfR;p=abs(p);return max(p.x-r*0.15,p.y-halfR);}float equilateralTriangle(vec2 p,float r){p.y=-p.y;float k=sqrt(3.0);float kr=k*r;p.y-=kr/2.0;return max((abs(p.x)*k+p.y)/2.0,-p.y-kr);}float crossShape(vec2 p,float r){p=abs(p);vec2 b=vec2(0.4,1.0)*r;vec2 v=abs(p)-b.xy;vec2 h=abs(p)-b.yx;return min(max(v.x,v.y),max(h.x,h.y));}float diamond(vec2 p,float r){p=abs(p);return(max(abs(p.x-p.y),abs(p.x+p.y))-r)/sqrt(2.0);}void main(){float d;vec2 p=vRotationMatrix*(2.0*gl_PointCoord-1.0)*vRadiusWithPadding;float r=vRadius;if(vShape==CIRCLE){d=circle(p,r);}else if(vShape==SQUARE){d=square(p,r);}else if(vShape==CROSS){d=crossShape(p,r);}else if(vShape==DIAMOND){d=diamond(p,r);}else if(vShape==TRIANGLE_UP){d=equilateralTriangle(p,r);}else if(vShape==TICK_UP){d=tickUp(p,r);}else{d=0.0;}if(!uPickingEnabled){lowp vec4 fillColor=mix(vFillColor,white,-d*uGradientStrength/vRadius);fragColor=distanceToColor(d+(uInwardStroke ? vHalfStrokeWidth : 0.0),fillColor,vStrokeColor,vHalfStrokeWidth);}else if(d-vHalfStrokeWidth<=0.0){fragColor=vPickingColor;}else{discard;}}",Un=1,Hr=2,Zd=4,Jk={};class Je{get behavior(){return 0}constructor(){this.children=[],this.parent=void 0,this.completed=!1}reset(){this.completed=!1;for(const t of this.children)t.reset()}initialize(){}_updatePropagator(){this._propagate=Function("children",Po(this.children.length).map(t=>`const child${t} = children[${t}];`).join(`
206
+ `)+`return function propagate(datum) {${Po(this.children.length).map(t=>`child${t}.handle(datum);`).join(`
207
+ `)}}`)(this.children)}setParent(t){this.parent=t}addChild(t){if(t.parent)throw new Error("Cannot add the child! It already has a parent.");return this.children.push(t),t.setParent(this),this._updatePropagator(),this}adopt(t){t.parent&&t.parent.removeChild(t),this.addChild(t)}adoptChildrenOf(t){for(const n of t.children)this.adopt(n)}insertAsParent(t){if(this.isRoot())throw new Error("Cannot insert a new parent for a root node!");t.parent=this.parent,this.parent.children[this.parent.children.indexOf(this)]=t,this.parent._updatePropagator(),this.parent=void 0,t.addChild(this)}removeChild(t){const n=this.children.indexOf(t);if(n>-1)this.children.splice(n,1),t.parent=void 0,this._updatePropagator();else throw new Error("Trying to remove an unknown child node!")}excise(){if(this.isRoot())throw new Error("Cannot excise root node!");if(this.isTerminal())this.parent.removeChild(this);else if(this.children.length==1){const t=this.children[0];t.setParent(this.parent),this.parent.children[this.parent.children.indexOf(this)]=t,this.parent._updatePropagator(),this.setParent(void 0),this.children.length=0}else throw new Error("Cannot excise a node that has multiple children!")}isRoot(){return!this.parent}isBranching(){return this.children.length>1}isTerminal(){return this.children.length==0}visit(t){t(this);for(const n of this.children)n.visit(t);t.afterChildren&&t.afterChildren(this)}subtreeToString(t=0){const n=this.children.map(r=>r.subtreeToString(t+1)).join("");return`${" ".repeat(t*2)}* ${this.constructor.name}${("identifier"in this&&this.identifier?": "+this.identifier:"")??""}
208
+ ${n}`}getGlobalObject(){return this.parent?this.parent.getGlobalObject():Jk}handle(t){this._propagate(t)}complete(){this.completed=!0;for(const t of this.children)t.complete()}beginBatch(t){for(const n of this.children)n.beginBatch(t)}_propagate(t){}}function ly(e){return e.type=="file"}function eB(e){return e.type=="facet"}class fy extends Je{constructor(t){super(),this.k=t.size||500,this.reset()}reset(){super.reset(),this.reservoir=[],this.W=void 0,this.ingester=this._initialIngester}_initialIngester(t){this.reservoir.push(t),this.reservoir.length==this.k&&(this.W=Math.exp(Math.log(Math.random())/this.k),this.i=this.k,this.next=this.i,this.ingester=this._finalIngester,this._setNextStop())}_finalIngester(t){++this.i==this.next&&(this.reservoir[Math.floor(Math.random()*this.k)]=t,this.W*=Math.exp(Math.log(Math.random())/this.k),this._setNextStop())}_setNextStop(){this.next+=Math.floor(Math.log(Math.random())/Math.log(1-this.W))+1}handle(t){this.ingester(t)}complete(){for(const t of this.reservoir)this._propagate(t);super.complete()}}function tB(e,t,n){const r=new fy({type:"sample",size:e});for(const i of t)r.handle(n(i));return r.complete(),r.reservoir}const nB={};class rB extends Rs{constructor(t){super(t),Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x:.5,y:.5,color:"#4c78a8",filled:!0,opacity:1,size:100,semanticScore:0,shape:"circle",strokeWidth:2,fillGradientStrength:0,dx:0,dy:0,angle:0,sampleFacetPadding:.1,semanticZoomFraction:.02}))}getAttributes(){return["inwardStroke","uniqueId","facetIndex","x","y","size","semanticScore","shape","strokeWidth","gradientStrength","dx","dy","fill","stroke","fillOpacity","strokeOpacity","angle"]}getSupportedChannels(){return[...super.getSupportedChannels(),"size","semanticScore","shape","strokeWidth","dx","dy","fill","stroke","fillOpacity","strokeOpacity","angle"]}getDefaultEncoding(){return{...super.getDefaultEncoding(),...nB}}fixEncoding(t){return oy(t,this.properties.filled),sy(t,this.properties.filled),delete t.color,delete t.opacity,t}initializeData(){super.initializeData();const t=this.unitView.getAccessor("semanticScore");t&&(this.sampledSemanticScores=Float32Array.from(tB(1e4,this.unitView.getCollector().getData(),t)),this.sampledSemanticScores.sort((n,r)=>n-r))}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders($k,Kk)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;Yt(this.programInfo,{uInwardStroke:t.inwardStroke,uGradientStrength:t.fillGradientStrength,uMaxRelativePointDiameter:1-2*t.sampleFacetPadding})}updateGraphicsData(){const t=this.unitView.getCollector(),n=t.getItemCount(),r=new Rk({encoders:this.encoders,attributes:this.getAttributes(),numItems:Math.max(n,this.properties.minBufferSize||0)});r.addBatches(t.facetBatches);const i=r.toArrays();this.rangeMap.migrateEntries(i.rangeMap),this.updateBufferInfo(i)}_getGeometricScaleFactor(){const t=Math.pow(2,this.properties.geometricZoomBound||0);return Math.pow(Math.min(1,this.unitView.getZoomLevel()/t),1/3)}_getMaxPointSize(){const t=this.encoders.size;return t.constant?t(null):t.scale.range().reduce((n,r)=>Math.max(n,r))}getSemanticThreshold(){if(this.sampledSemanticScores){const t=Math.max(0,1-this.properties.semanticZoomFraction*this.unitView.getZoomLevel());if(t<=0)return-1/0;if(t>=1)return 1/0;{const n=this.sampledSemanticScores;return qg(n,t)}}else return-1}prepareRender(t){const n=super.prepareRender(t);return n.push(()=>Yt(this.programInfo,{uMaxPointSize:this._getMaxPointSize(),uScaleFactor:this._getGeometricScaleFactor(),uSemanticThreshold:this.getSemanticThreshold()})),n.push(()=>za(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(t){const n=this.gl;return this.createRenderCallback((r,i)=>{i&&Bs(n,this.vertexArrayInfo,n.POINTS,i,r)},t)}}const iB="const int BUTT=0;const int SQUARE=1;const int ROUND=2;in float pos;in float side;uniform float uMinLength;uniform mediump float uDashTextureSize;uniform lowp int uStrokeCap;out vec4 vColor;out float vSize;out float vNormalLengthInPixels;out highp vec2 vPosInPixels;void main(void){float pixelSize=1.0/uDevicePixelRatio;float size=getScaled_size();float opacity=getScaled_opacity()*uViewOpacity;if(size<pixelSize){opacity*=size/pixelSize;size=pixelSize;}vec2 a=applySampleFacet(vec2(getScaled_x(),getScaled_y()));vec2 b=applySampleFacet(vec2(getScaled_x2(),getScaled_y2()));vec2 tangent=b-a;float offset=0.0;float relativeDiff=0.0;if(uMinLength>0.0||uStrokeCap!=BUTT){float len=length(tangent*uViewportSize);float diff=max(0.0,uMinLength-len);if(uStrokeCap!=BUTT){diff+=size;}relativeDiff=diff/len;offset=relativeDiff*(pos-0.5);}vec2 p=pos<1.0? a+tangent*(pos+offset): b+tangent*offset;float aaPadding=pixelSize;vec2 normal=normalize(vec2(-tangent.y,tangent.x)/uViewportSize);p+=normal*side*(size+aaPadding)/uViewportSize;gl_Position=unitToNdc(p);vColor=vec4(getScaled_color()*opacity,opacity);vSize=size;vNormalLengthInPixels=side*(size+aaPadding);vPosInPixels=vec2(pos,(1.0-pos))*(1.0+relativeDiff)*length(tangent*uViewportSize)-vec2(uStrokeCap!=BUTT ? size/2.0 : 0.0);setupPicking();}",aB="const int BUTT=0;const int SQUARE=1;const int ROUND=2;uniform sampler2D uDashTexture;uniform float uDashTextureSize;uniform float uStrokeDashOffset;uniform lowp int uStrokeCap;in vec4 vColor;in float vSize;in vec2 vPosInPixels;in float vNormalLengthInPixels;out lowp vec4 fragColor;void main(void){float dpr=uDevicePixelRatio;float distanceFromEnd=-min(vPosInPixels[0],vPosInPixels[1]);float distance;if(distanceFromEnd>0.0&&uStrokeCap==ROUND){distance=length(vec2(distanceFromEnd,vNormalLengthInPixels));}else{distance=abs(vNormalLengthInPixels);}float opacity=clamp(((vSize/2.0-distance)*dpr),-0.5,0.5)+0.5;if(uDashTextureSize>0.0){float pos=(vPosInPixels[0]+uStrokeDashOffset)*dpr;float floored=floor(pos);vec2 texelPositions=(floored+vec2(0.5,1.5))/dpr/uDashTextureSize;opacity*=mix(texture(uDashTexture,vec2(texelPositions[0],0)).r,texture(uDashTexture,vec2(texelPositions[1],0)).r,clamp((pos-floored),0.0,1.0));}fragColor=vColor*opacity;if(uPickingEnabled){fragColor=vPickingColor;}}";class oB extends Rs{constructor(t){super(t),this.dashTextureSize=0,Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x2:void 0,y2:void 0,size:1,color:"black",opacity:1,minLength:0,strokeDash:null,strokeDashOffset:0,strokeCap:"butt"}))}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","size","color","opacity"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","size"]}fixEncoding(t){if(!(t.x&&t.y&&t.x2&&t.y2))if(t.x&&t.x2&&!t.y)t.y={value:.5},t.y2=t.y;else if(t.y&&t.y2&&!t.x)t.x={value:.5},t.x2=t.x;else if(t.x&&!t.y)t.y={value:0},t.y2={value:1},t.x2=t.x;else if(t.y&&!t.x)t.x={value:0},t.x2={value:1},t.y2=t.y;else if(t.x&&t.y&&t.y2)t.x2=t.x;else if(t.y&&t.x&&t.x2)t.y2=t.y;else if(t.y&&t.x)if(!t.x2&&Lt(t.y)&&t.y.type=="quantitative")t.x2=t.x,t.y2={datum:0};else if(!t.y2&&Lt(t.x)&&t.x.type=="quantitative")t.y2=t.y,t.x2={datum:0};else throw new Error("A bug!");else throw new Error("Invalid x and y encodings for rule mark: "+JSON.stringify(t));return t}async initializeGraphics(){if(await super.initializeGraphics(),this.properties.strokeDash){const t=this.gl,n=sB(this.properties.strokeDash);this.dashTexture=ks(t,{mag:t.NEAREST,min:t.NEAREST,internalFormat:t.R8,format:t.RED,src:n,height:1}),this.dashTextureSize=n.length}this.createAndLinkShaders(iB,aB)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;Yt(this.programInfo,{uMinLength:t.minLength,uDashTextureSize:this.dashTextureSize,uStrokeCap:["butt","square","round"].indexOf(t.strokeCap)})}updateGraphicsData(){const t=this.unitView.getCollector(),n=t.getItemCount(),r=new Fk({encoders:this.encoders,attributes:this.getAttributes(),numItems:Math.max(n,this.properties.minBufferSize||0)});r.addBatches(t.facetBatches);const i=r.toArrays();this.rangeMap.migrateEntries(i.rangeMap),this.updateBufferInfo(i)}prepareRender(t){const n=super.prepareRender(t);return this.dashTexture&&n.push(()=>Yt(this.programInfo,{uDashTexture:this.dashTexture,uStrokeDashOffset:this.properties.strokeDashOffset})),n.push(()=>za(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(t){const n=this.gl;return this.createRenderCallback((r,i)=>Bs(n,this.vertexArrayInfo,n.TRIANGLE_STRIP,i,r),t)}}function sB(e){if(e.length==0||e.length%2||e.findIndex(a=>Math.round(a)!=a||a<1||a>1e3)>=0)throw new Error("Invalid stroke dash pattern: "+JSON.stringify(e));const t=e.reduce((a,o)=>a+o),n=new Uint8Array(t);let r=!0,i=0;for(let a of e){for(;a;)n[i++]=r&&255||0,a--;r=!r}return n}const lB="uniform float uArcHeightFactor;uniform float uMinArcHeight;uniform float uMinPickingSize;uniform int uShape;uniform int uOrient;uniform bool uClampApex;in vec2 strip;out vec4 vColor;out float vSize;out float vNormalLengthInPixels;const int SHAPE_ARC=0;const int SHAPE_DOME=1;const int SHAPE_DIAGONAL=2;const int SHAPE_LINE=3;const int ORIENT_VERTICAL=0;const int ORIENT_HORIZONTAL=1;void main(void){float pixelSize=1.0/uDevicePixelRatio;float opacity=getScaled_opacity()*uViewOpacity;vec2 p1,p2,p3,p4;vec2 a=applySampleFacet(vec2(getScaled_x(),getScaled_y()))*uViewportSize;vec2 b=applySampleFacet(vec2(getScaled_x2(),getScaled_y2()))*uViewportSize;if(uShape<=SHAPE_DOME){if(uShape==SHAPE_DOME){vec2 height=vec2(0.0);if(uOrient==ORIENT_VERTICAL){p1=vec2(min(a.x,b.x),b.y);p4=vec2(max(a.x,b.x),b.y);height=vec2(0.0,a.y-b.y);if(uClampApex){if(p4.x>0.0){p1.x=max(p1.x,-p4.x);}if(p1.x<uViewportSize.x){p4.x=min(p4.x,2.0*uViewportSize.x-p1.x);}}}else{p1=vec2(b.x,min(a.y,b.y));p4=vec2(b.x,max(a.y,b.y));height=vec2(a.x-b.x,0.0);if(uClampApex){if(p4.y>0.0){p1.y=max(p1.y,-p4.y);}if(p1.y<uViewportSize.y){p4.y=min(p4.y,2.0*uViewportSize.y-p1.y);}}}vec2 controlOffset=height/0.75;p2=p1+controlOffset;p3=p4+controlOffset;}if(uShape==SHAPE_ARC){p1=a;p4=b;vec2 chordVector=p4-p1;vec2 unitChordVector=normalize(chordVector);vec2 chordNormal=vec2(-unitChordVector.y,unitChordVector.x);float height=max(length(chordVector)/2.0*uArcHeightFactor,uMinArcHeight);vec2 controlOffset=chordNormal*height/0.75;p2=p1+controlOffset;p3=p4+controlOffset;}}else if(uShape==SHAPE_DIAGONAL){if(uOrient==ORIENT_VERTICAL){p1=a;p2=vec2(a.x,(a.y+b.y)/2.0);p3=vec2(b.x,(a.y+b.y)/2.0);p4=b;}else{p1=a;p2=vec2((a.x+b.x)/2.0,a.y);p3=vec2((a.x+b.x)/2.0,b.y);p4=b;}}else if(uShape==SHAPE_LINE){p1=a;p2=(a+b)/2.0;p3=p2;p4=b;}float t=smoothstep(0.0,1.0,strip.x);vec2 C1=p4-3.0*p3+3.0*p2-p1;vec2 C2=3.0*p3-6.0*p2+3.0*p1;vec2 C3=3.0*p2-3.0*p1;vec2 C4=p1;vec2 p;if(t==0.0){p=p1;}else if(t==1.0){p=p4;}else{p=C1*t*t*t+C2*t*t+C3*t+C4;}vec2 tangent=normalize(3.0*C1*t*t+2.0*C2*t+C3);vec2 normal=vec2(-tangent.y,tangent.x);float size=getScaled_size();if(size<pixelSize){opacity*=size/pixelSize;size=pixelSize;}float paddedSize=uPickingEnabled? max(size,uMinPickingSize): size+pixelSize;vNormalLengthInPixels=strip.y*paddedSize;p+=normal*vNormalLengthInPixels;gl_Position=pixelsToNdc(p);vec3 color=getScaled_color();vColor=vec4(color*opacity,opacity);vSize=paddedSize;setupPicking();}",fB="in lowp vec4 vColor;in float vSize;in float vNormalLengthInPixels;out lowp vec4 fragColor;void main(void){float dpr=uDevicePixelRatio;float distance=abs(vNormalLengthInPixels);float opacity=clamp(((vSize/2.0-distance)*dpr),0.0,1.0);fragColor=vColor*opacity;if(uPickingEnabled){fragColor=vPickingColor;}}",uB=["arc","dome","diagonal","line"],cB=["vertical","horizontal"];class hB extends Rs{constructor(t){super(t),Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x:0,x2:void 0,y:0,y2:void 0,size:1,color:"black",opacity:1,segments:101,arcHeightFactor:1,minArcHeight:1.5,minPickingSize:3,clampApex:!1,linkShape:"arc",orient:"vertical"}))}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","size","height","color","opacity"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","size"]}fixEncoding(t){return t.x2||(Lt(t.x)?t.x2={datum:0}:t.x2=t.x),t.y2||(Lt(t.y)?t.y2={datum:0}:t.y2=t.y),t}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(lB,fB)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;Yt(this.programInfo,{uArcHeightFactor:t.arcHeightFactor,uMinArcHeight:t.minArcHeight,uMinPickingSize:t.minPickingSize,uShape:uB.indexOf(t.linkShape),uOrient:cB.indexOf(t.orient),uClampApex:!!t.clampApex})}updateGraphicsData(){const t=this.unitView.getCollector(),n=t.getItemCount(),r=new Pk({encoders:this.encoders,attributes:this.getAttributes(),numItems:n});r.addBatches(t.facetBatches);const i=r.toArrays();i.arrays.strip={data:dB(this.properties.segments),numComponents:2},this.rangeMap.migrateEntries(i.rangeMap),this.arrays=Object.fromEntries(Object.entries(i.arrays).map(([a,o])=>[a,{...o,data:void 0}])),this.updateBufferInfo(i)}render(t){const n=this.gl;return this.createRenderCallback((r,i)=>{this.gl.bindVertexArray(this.vertexArrayInfo.vertexArrayObject);for(const a of Object.entries(this.bufferInfo.attribs)){const[o,s]=a;s.buffer&&s.numComponents&&s.divisor&&(s.offset=r*this.arrays[o].numComponents*4)}za(n,this.programInfo,this.bufferInfo),Bs(n,this.bufferInfo,n.TRIANGLE_STRIP,(this.properties.segments+1)*2,0,i)},t)}}function dB(e){let t=0;const n=[];for(;t<=e;t++)n.push(t/e,.5),n.push(t/e,-.5);return n}const pB=`uniform float uSdfNumerator;uniform vec2 uD;in mediump vec2 vertexCoord;in lowp vec2 textureCoord;uniform vec4 uViewportEdgeFadeWidth;uniform vec4 uViewportEdgeFadeDistance;uniform bool uSqueeze;uniform bool uLogoLetter;in float width;uniform ivec2 uAlign;
223
209
  #ifdef x2_DEFINED
224
210
  uniform float uPaddingX;uniform bool uFlushX;
225
211
  #endif
@@ -239,7 +225,7 @@ vec2 pos=applySampleFacet(vec2(x,y));
239
225
  #ifdef y2_DEFINED
240
226
  float y2=getScaled_y2();vec2 pos2=applySampleFacet(vec2(x,y2));if(uLogoLetter){size.y=(pos2.y-pos.y)*uViewportSize.y;pos.y+=(pos2.y-pos.y)/2.0;}else{RangeResult result=positionInsideRange(min(pos.y,pos2.y),max(pos.y,pos2.y),size.y*scale*flushSize.y/uViewportSize.y,uPaddingY/uViewportSize.y,align.y,uFlushY);pos.y=result.pos;scale*=result.scale;}
241
227
  #endif
242
- if(scale<1.0){if(uSqueeze){vec2 scaleFadeExtent=vec2(3.0,6.0)/size;if(scale<scaleFadeExtent[0]){gl_Position=vec4(0.0);return;}size*=scale;opacity*=linearstep(scaleFadeExtent[0],scaleFadeExtent[1],scale);}else if(scale<1.0){gl_Position=vec4(0.0);return;}}vec2 charPos=rotationMatrix*(vertexCoord*size+uD);vec2 unitPos=pos+charPos/uViewportSize;gl_Position=unitToNdc(unitPos);vSlope=max(1.0,min(size.x,size.y)/uSdfNumerator);vColor=vec4(getScaled_color()*opacity,opacity);vTexCoord=textureCoord;if(maxValue(uViewportEdgeFadeDistance)>-pow(10.0,10.0)){vEdgeFadeOpacity=minValue(((vec4(1.0,1.0,0.0,0.0)+vec4(-1.0,-1.0,1.0,1.0)*unitPos.yxyx)*uViewportSize.yxyx-uViewportEdgeFadeDistance)/uViewportEdgeFadeWidth);}else{vEdgeFadeOpacity=1.0;}setupPicking();}`,eF="uniform sampler2D uTexture;uniform bool uLogoLetter;in vec2 vTexCoord;in float vEdgeFadeOpacity;in vec4 vColor;in float vSlope;out lowp vec4 fragColor;float median(float r,float g,float b){return max(min(r,g),min(max(r,g),b));}void main(){vec3 c=texture(uTexture,vTexCoord).rgb;float sigDist=1.0-median(c.r,c.g,c.b);float slope=uLogoLetter? 0.7/length(vec2(dFdy(sigDist),dFdx(sigDist))): vSlope;float opa=clamp((sigDist-0.5)*slope+0.5,0.0,1.0);opa*=pow(clamp(vEdgeFadeOpacity,0.0,1.0),2.2);fragColor=vColor*opa;if(uPickingEnabled){fragColor=vPickingColor;}}",tF={left:-1,center:0,right:1},nF={top:-1,middle:0,bottom:1,alphabetic:1};class rF extends Js{constructor(e){super(e),Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x:.5,y:.5,x2:void 0,y2:void 0,text:"",size:11,color:"black",opacity:1,font:void 0,fontStyle:void 0,fontWeight:void 0,align:"center",baseline:"middle",dx:0,dy:0,angle:0,fitToBand:!1,squeeze:!0,paddingX:0,paddingY:0,flushX:!0,flushY:!0,logoLetters:!1,viewportEdgeFadeWidthTop:0,viewportEdgeFadeWidthRight:0,viewportEdgeFadeWidthBottom:0,viewportEdgeFadeWidthLeft:0,viewportEdgeFadeDistanceTop:-1/0,viewportEdgeFadeDistanceRight:-1/0,viewportEdgeFadeDistanceBottom:-1/0,viewportEdgeFadeDistanceLeft:-1/0})),this.font=this.properties.font?e.context.fontManager.getFont(this.properties.font,this.properties.fontStyle,this.properties.fontWeight):e.context.fontManager.getDefaultFont()}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","color","size","opacity","angle"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","size","text","angle"]}fixEncoding(e){for(const n of Ya)this.properties.fitToBand&&s0(e,n);return e}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(JN,eF)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const e=this.properties;Kt(this.programInfo,{uPaddingX:e.paddingX,uPaddingY:e.paddingY,uFlushX:!!e.flushX,uFlushY:!!e.flushY,uAlign:[tF[e.align],nF[e.baseline]],uD:[e.dx,-e.dy],uLogoLetter:!!e.logoLetters,uSqueeze:!!e.squeeze,uViewportEdgeFadeWidth:[e.viewportEdgeFadeWidthTop,e.viewportEdgeFadeWidthRight,e.viewportEdgeFadeWidthBottom,e.viewportEdgeFadeWidthLeft],uViewportEdgeFadeDistance:[e.viewportEdgeFadeDistanceTop,e.viewportEdgeFadeDistanceRight,e.viewportEdgeFadeDistanceBottom,e.viewportEdgeFadeDistanceLeft]})}updateGraphicsData(){const e=this.unitView.getCollector(),n=e.getData(),r=this.encoding,i=this.encoders.text.accessor||this.encoders.text;let a=0;const o="format"in r.text?pt(r.text.format):u=>u;for(const u of n){const l=o(i(u)),c=Ke(l)?l:l===null?"":""+l;a+=c&&c.length||0}const s=new AN({encoders:this.encoders,attributes:this.getAttributes(),properties:this.properties,fontMetrics:this.font.metrics,numCharacters:Math.max(a,this.properties.minBufferSize||0)});s.addBatches(e.facetBatches);const f=s.toArrays();this.rangeMap.migrateEntries(f.rangeMap),this.updateBufferInfo(f)}prepareRender(e){const n=super.prepareRender(e);let r=.35;this.properties.logoLetters&&(r/=2);const i=this.font.metrics.common.base/(this.unitView.context.devicePixelRatio/r);return n.push(()=>Kt(this.programInfo,{uTexture:this.font.texture,uSdfNumerator:i})),n.push(()=>ro(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(e){const n=this.gl;return this.createRenderCallback((r,i)=>Xs(n,this.vertexArrayInfo,n.TRIANGLES,i,r),e)}}function kw(t,e,{spacing:n,devicePixelRatio:r,offset:i,reverse:a}={}){n=n||0,i=i||0;let o=0,s=0;for(const g of t)o+=Fl(g.px)+(f0(g)?0:n),s+=Fl(g.grow);o-=n;const f=Math.max(0,e-o),u=r!==void 0?g=>Math.round(g*r)/r:g=>g,l=[],c=[],h=g=>{const b=l.length;if(!b)return;const y=(g?n:0)*(a?-1:1);d-=y;for(let w=0;w<b;w++)c.push({location:d+(w+1)/(b+1)*y,size:0});d+=y,l.length=0};let d=a?Math.max(e,o):0+i;if(t.length==1&&f0(t[0]))return[{location:d,size:0}];for(let g=0;g<t.length;g++){const b=t[g];if(f0(b))l.push(b);else{h(c.length>0);const y=Fl(b.px)+(s?Fl(b.grow)/s*f:0);a&&(d-=y),c.push({location:u(d),size:u(y)}),a?d-=n:d+=y+n}}return d+=a?n:-n,h(!1),c}function iF(t){let e=0,n=0;for(const r of t)e=Math.max(e,r.px??0),n=Math.max(n,r.grow??0);return{px:e,grow:n}}const zp=class zp{constructor(e,n){ye(this,Ku);this.width=e,this.height=n}addPadding(e){return fe(this,Ku,Qp).call(this,e.width,e.height)}subtractPadding(e){return fe(this,Ku,Qp).call(this,-e.width,-e.height)}};Ku=new WeakSet,Qp=function(e,n){return new zp({px:(this.width.px??0)+e,grow:this.width.grow},{px:(this.height.px??0)+n,grow:this.height.grow})};let na=zp;const eu=Object.freeze({px:0,grow:0}),aF=new na(eu,eu);function f0(t){return!t.px&&!t.grow}function Fl(t){return t||0}function oF(t){return t&&(Lt(t.px)||Lt(t.grow))}function Bw(t){if(zw(t))throw new Error("parseSizeDef does not accept step-based sizes.");if(oF(t))return t;if(Lt(t))return{px:t,grow:0};if(t==="container")return{px:0,grow:1};if(!t)return{px:0,grow:1};throw new Error(`Invalid sizeDef: ${t}`)}class _t{constructor(e,n,r,i){this.top=e||0,this.right=n||0,this.bottom=r||0,this.left=i||0}get width(){return this.left+this.right}get height(){return this.top+this.bottom}expand(e){return e<=0?this:new _t(this.top+e,this.right+e,this.bottom+e,this.left+e)}add(e){return new _t(this.top+e.top,this.right+e.right,this.bottom+e.bottom,this.left+e.left)}subtract(e){return new _t(this.top-e.top,this.right-e.right,this.bottom-e.bottom,this.left-e.left)}union(e){return new _t(Math.max(this.top,e.top),Math.max(this.right,e.right),Math.max(this.bottom,e.bottom),Math.max(this.left,e.left))}getHorizontal(){return new _t(0,this.right,0,this.left)}getVertical(){return new _t(this.top,0,this.bottom,0)}get horizontalTotal(){return this.left+this.right}get verticalTotal(){return this.top+this.bottom}static createFromConfig(e){return typeof e=="number"?this.createUniformPadding(e):e?this.createFromRecord(e):l0}static createFromRecord(e){return new _t(e.top,e.right,e.bottom,e.left)}static zero(){return l0}static createUniformPadding(e){return new _t(e,e,e,e)}}const l0=_t.createUniformPadding(0);Object.freeze(l0);const sF=/^([A-Za-z]+:)?\/\//;function uF(t,e){if(e&&sF.test(e))return e;const n=t();return n&&e?n.endsWith("/")?n+e:n+"/"+e:n??e}const Lw="VISIT_SKIP",tu="VISIT_STOP",Rw=t=>t;class Ow{constructor(e,n,r,i,a){ye(this,Lc);ye(this,tf);ye(this,qo,{});ye(this,Ju,{});ye(this,ef,{});an(this,"opacityFunction",Rw);if(!e)throw new Error("View spec must be defined!");this.context=n,this.layoutParent=r,this.dataParent=i,this.name=e.name||a,this.spec=e,this.resolutions={scale:{},axis:{}},_w(this),this.blockEncodingInheritance=!1,this.contributesToScaleDomain=!0,this.needsAxes={x:!1,y:!1}}getPadding(){return this._cache("size/padding",()=>_t.createFromConfig(this.spec.padding))}getOverhang(){return _t.zero()}getSize(){return this._cache("size/size",()=>this.isConfiguredVisible()?fe(this,Lc,ES).call(this):aF)}isConfiguredVisible(){return this.context.isViewConfiguredVisible(this)}isVisibleInSpec(){return this.spec.visible??!0}isVisible(){return this.getLayoutAncestors().every(e=>e.isConfiguredVisible())}getEffectiveOpacity(){var e;return this.opacityFunction(((e=this.layoutParent)==null?void 0:e.getEffectiveOpacity())??1)}getPathString(){return this.getLayoutAncestors().map(e=>e.name).reverse().join("/")}getLayoutAncestors(){return fe(this,tf,Vp).call(this,"layoutParent")}getDataAncestors(){return fe(this,tf,Vp).call(this,"dataParent")}handleBroadcast(e){for(const n of ie(this,qo)[e.type]||[])n(e)}_addBroadcastHandler(e,n){let r=ie(this,qo)[e];r||(r=[],ie(this,qo)[e]=r),r.push(n)}handleInteractionEvent(e,n,r){const i=r?ie(this,Ju):ie(this,ef);for(const a of i[n.type]||[])a(e,n)}addInteractionEventListener(e,n,r){const i=r?ie(this,Ju):ie(this,ef);let a=i[e];a||(a=[],i[e]=a),a.push(n)}visit(e){try{const n=e(this);if(e.postOrder&&e.postOrder(this),n!==tu)return n}catch(n){throw n.view=this,n}}getDescendants(){const e=[];return this.visit(n=>{e.push(n)}),e}onScalesResolved(){(!this.opacityFunction||this.opacityFunction===Rw)&&(this.opacityFunction=lF(this))}onBeforeRender(){}render(e,n,r={}){}getEncoding(){const e=this.dataParent&&!this.blockEncodingInheritance?this.dataParent.getEncoding():{},n=this.spec.encoding||{},r={...e,...n};for(const[i,a]of Object.entries(r))a===null&&delete r[i];return r}getFacetAccessor(e){if(this.layoutParent)return this.layoutParent.getFacetAccessor(this)}getFacetFields(e){var r;const n=this.getEncoding().sample;return Us(n)?[n.field]:(r=this.layoutParent)==null?void 0:r.getFacetFields(this)}getSampleFacetTexture(){}getScaleResolution(e){const n=Wi(e);return this.getDataAncestors().map(r=>r.resolutions.scale[n]).find(r=>r)}getAxisResolution(e){const n=Wi(e);return this.getDataAncestors().map(r=>r.resolutions.axis[n]).find(r=>r)}getConfiguredResolution(e,n){var r,i;return(i=(r=this.spec.resolve)==null?void 0:r[n])==null?void 0:i[e]}getConfiguredOrDefaultResolution(e,n){return this.getConfiguredResolution(e,n)??this.getConfiguredResolution("default",n)??this.getDefaultResolution(e,n)}getDefaultResolution(e,n){return"independent"}getBaseUrl(){return uF(()=>{var e;return(e=this.dataParent)==null?void 0:e.getBaseUrl()},this.spec.baseUrl)}isPickingSupported(){return!0}getTitleText(){const e=this.spec.title;if(e)return Ke(e)?e:e.text}_cache(e,n){return ao(this,e,n)}_invalidateCacheByPrefix(e,n="self"){switch(n){case"self":Tl(this,e);break;case"ancestors":for(const r of this.getLayoutAncestors())Tl(r,e);break;case"progeny":this.visit(r=>Tl(r,e));break}}invalidateSizeCache(){this._invalidateCacheByPrefix("size/","ancestors")}propagateInteractionEvent(e){}}qo=new WeakMap,Ju=new WeakMap,ef=new WeakMap,Lc=new WeakSet,ES=function(){const e=n=>{var i;let r=this.spec[n];if(zw(r)){const a=r.step,o=(i=this.getScaleResolution(n=="width"?"x":"y"))==null?void 0:i.getScale();if(o){let s=0;if(Jr(o.type))s=o.domain().length;else if(["locus","index"].includes(o.type)){const u=o.domain();s=As(u)-u[0]}else throw new Error(`Cannot use step-based size with "${o.type}" scale!`);const f=o;return s=md(s,f.paddingInner(),f.paddingOuter()),{px:s*a,grow:0}}else throw new Error("Cannot use 'step' size with missing scale!")}else return(r&&Bw(r))??{px:0,grow:1}};return this._cache("size/sizeFromSpec",()=>new na(e("width"),e("height")))},tf=new WeakSet,Vp=function(e){const n=[];let r=this;do n.push(r),r=r[e];while(r);return n};function fF(t){return"unitsPerPixel"in t}function lF(t){const e=t.spec.opacity;if(e!==void 0){if(Lt(e))return n=>n*e;if(fF(e)){const n=a=>{var s;const o=(s=t.getScaleResolution(a))==null?void 0:s.getScale();if(["linear","index","locus"].includes(o==null?void 0:o.type))return o},r=e.channel?n(e.channel):n("x")||n("y");if(!r)throw new Error("Cannot find a resolved quantitative scale for dynamic opacity!");const i=ud().domain(e.unitsPerPixel).range(e.values).clamp(!0);return a=>{const s=mf(r.domain())/1e3;return i(s)*a}}}return n=>n}const zw=t=>!!(t!=null&&t.step);class oo extends Ow{constructor(e,n,r,i,a){super(e,n,r,i,a),this.spec=e}*[Symbol.iterator](){}replaceChild(e,n){throw new Error("Not implemented")}visit(e){let n;try{n=e(this)}catch(r){throw r.view=this,r}if(n===tu)return n;if(n!==Lw){e.beforeChildren&&e.beforeChildren(this);for(const r of this){const i=r.visit(e);if(i===tu)return i}e.afterChildren&&e.afterChildren(this),e.postOrder&&e.postOrder(this)}}findDescendantByPath(e){for(const n of this)if(n.name===e[0]){if(e.length==1)return n;if(n instanceof oo)return n.findDescendantByPath(e.slice(1))}}findChildByName(e){for(const n of this)if(n.name===e)return n}findDescendantByName(e){let n;return this.visit(r=>{if(r.name==e)return n=r,tu}),n}getDefaultResolution(e,n){return"shared"}}const Pw=1;function c0(){let t=[0,1],e=[0,1],n=1,r=1,i=0,a=0,o=.5,s=0;const u=l=>(l+o-t[0])/n*r+e[0];return u.invert=l=>(l-e[0])/r*n+t[0]-o,u.domain=function(l){if(arguments.length){t=g_(l),n=t[1]-t[0];const c=t[0]===0&&t[0]===0;if(n<Pw&&!c){n=Pw;const h=(t[0]+t[1])/2;t[0]=h-n/2,t[1]=h+n/2}return u}else return t.slice()},u.range=function(l){return arguments.length?(e=[...l],r=e[1]-e[0],u):e},u.numberingOffset=function(l){return arguments.length?(s=l,u):s},u.padding=function(l){return arguments.length?(a=l,i=Math.min(1,l),u):i},u.paddingInner=function(l){return arguments.length?(i=Math.min(1,l),u):i},u.paddingOuter=function(l){return arguments.length?(a=l,u):a},u.align=function(l){return arguments.length?(o=Math.max(0,Math.min(1,l)),u):o},u.step=()=>r/n,u.bandwidth=()=>u.step(),u.ticks=l=>{const c=u.align(),h=u.numberingOffset();return vf(t[0]-c+h,t[1]-c+h,Math.min(l,Math.ceil(n))).filter(Number.isInteger).map(d=>d-s)},u.tickFormat=(l,c)=>{if(c)throw new Error("Index scale's tickFormat does not support a specifier!");const d=Bi(t[0],t[1],Math.min(l,Math.ceil(n)))<1e5?pt(","):pt(".3s");return g=>d(g+s)},u.copy=()=>c0().domain(t).range(e).paddingInner(i).paddingOuter(a).numberingOffset(s),u}function cF(){const t=c0().numberingOffset(1);let e;t.genome=function(r){return arguments.length?(e=r,t):e},t.ticks=r=>{if(!e)return[];const i=t.domain(),a=t.numberingOffset(),[o,s]=[Math.max(i[0],0),Math.min(i[1],e.totalSize-1)].map(l=>e.toChromosome(l)),f=Math.max(1,Bi(i[0],i[1],r)),u=[];for(let l=o.index;l<=s.index;l++){const c=e.chromosomes[l],h=Math.max(c.continuousStart+f,i[0]-(i[0]-c.continuousStart)%f),d=Math.min(c.continuousEnd-f/4,i[1]+1);for(let g=h;g<=d;g+=f){const b=g-a;b>=i[0]&&b<i[1]&&u.push(b)}}return u},t.tickFormat=(r,i)=>{if(!e)return;if(i)throw new Error("Locus scale's tickFormat does not support a specifier!");const a=t.domain(),o=a[1]-a[0],s=t.numberingOffset(),u=Bi(a[0],a[1],Math.min(r,Math.ceil(o)))<1e6?pt(","):pt(".3s"),l=c=>c-e.toChromosome(c).continuousStart;return c=>u(l(c)+s)};const n=t.copy;return t.copy=()=>n().genome(e),t}function hF(t){return t.type=="locus"}function kl(t,e,n){if(n=n||[],t.some(o=>o===null)){if(t.every(o=>o===null))return null;throw console.warn(t),new Error("Cannot merge objects with nulls!")}const r={},i=(o,s)=>o===s||so(o)&&so(s)||so(o)&&s===!0||o===!0&&Dn(s),a=o=>{for(let s in o){const f=o[s];if(!n.includes(s)&&f!==void 0)if(r[s]!==void 0&&!i(r[s],f))console.warn(`Conflicting property ${s} of ${e}: (${JSON.stringify(r[s])} and ${JSON.stringify(o[s])}). Using ${JSON.stringify(r[s])}.`);else{const u=r[s];if(so(u))so(f)&&(r[s]=kl([u,f],s));else if(so(f)){if(!(u===!0||u===void 0))throw new Error("Bug in merge! Target is: "+u);r[s]=kl([{},f],s)}else r[s]=f}}};for(const o of t)a(o);return r}function so(t){return Dn(t)&&!Array.isArray(t)}/*!
228
+ if(scale<1.0){if(uSqueeze){vec2 scaleFadeExtent=vec2(3.0,6.0)/size;if(scale<scaleFadeExtent[0]){gl_Position=vec4(0.0);return;}size*=scale;opacity*=linearstep(scaleFadeExtent[0],scaleFadeExtent[1],scale);}else if(scale<1.0){gl_Position=vec4(0.0);return;}}vec2 charPos=rotationMatrix*(vertexCoord*size+uD);vec2 unitPos=pos+charPos/uViewportSize;gl_Position=unitToNdc(unitPos);vSlope=max(1.0,min(size.x,size.y)/uSdfNumerator);vColor=vec4(getScaled_color()*opacity,opacity);vTexCoord=textureCoord;if(maxValue(uViewportEdgeFadeDistance)>-pow(10.0,10.0)){vEdgeFadeOpacity=minValue(((vec4(1.0,1.0,0.0,0.0)+vec4(-1.0,-1.0,1.0,1.0)*unitPos.yxyx)*uViewportSize.yxyx-uViewportEdgeFadeDistance)/uViewportEdgeFadeWidth);}else{vEdgeFadeOpacity=1.0;}setupPicking();}`,gB="uniform sampler2D uTexture;uniform bool uLogoLetter;in vec2 vTexCoord;in float vEdgeFadeOpacity;in vec4 vColor;in float vSlope;out lowp vec4 fragColor;float median(float r,float g,float b){return max(min(r,g),min(max(r,g),b));}void main(){vec3 c=texture(uTexture,vTexCoord).rgb;float sigDist=1.0-median(c.r,c.g,c.b);float slope=uLogoLetter? 0.7/length(vec2(dFdy(sigDist),dFdx(sigDist))): vSlope;float opa=clamp((sigDist-0.5)*slope+0.5,0.0,1.0);opa*=pow(clamp(vEdgeFadeOpacity,0.0,1.0),2.2);fragColor=vColor*opa;if(uPickingEnabled){fragColor=vPickingColor;}}",mB={left:-1,center:0,right:1},bB={top:-1,middle:0,bottom:1,alphabetic:1};class yB extends Rs{constructor(t){super(t),Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x:.5,y:.5,x2:void 0,y2:void 0,text:"",size:11,color:"black",opacity:1,font:void 0,fontStyle:void 0,fontWeight:void 0,align:"center",baseline:"middle",dx:0,dy:0,angle:0,fitToBand:!1,squeeze:!0,paddingX:0,paddingY:0,flushX:!0,flushY:!0,logoLetters:!1,viewportEdgeFadeWidthTop:0,viewportEdgeFadeWidthRight:0,viewportEdgeFadeWidthBottom:0,viewportEdgeFadeWidthLeft:0,viewportEdgeFadeDistanceTop:-1/0,viewportEdgeFadeDistanceRight:-1/0,viewportEdgeFadeDistanceBottom:-1/0,viewportEdgeFadeDistanceLeft:-1/0})),this.font=this.properties.font?t.context.fontManager.getFont(this.properties.font,this.properties.fontStyle,this.properties.fontWeight):t.context.fontManager.getDefaultFont()}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","color","size","opacity","angle"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","size","text","angle"]}fixEncoding(t){for(const n of Ba)this.properties.fitToBand&&qd(t,n);return t}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(pB,gB)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;Yt(this.programInfo,{uPaddingX:t.paddingX,uPaddingY:t.paddingY,uFlushX:!!t.flushX,uFlushY:!!t.flushY,uAlign:[mB[t.align],bB[t.baseline]],uD:[t.dx,-t.dy],uLogoLetter:!!t.logoLetters,uSqueeze:!!t.squeeze,uViewportEdgeFadeWidth:[t.viewportEdgeFadeWidthTop,t.viewportEdgeFadeWidthRight,t.viewportEdgeFadeWidthBottom,t.viewportEdgeFadeWidthLeft],uViewportEdgeFadeDistance:[t.viewportEdgeFadeDistanceTop,t.viewportEdgeFadeDistanceRight,t.viewportEdgeFadeDistanceBottom,t.viewportEdgeFadeDistanceLeft]})}updateGraphicsData(){const t=this.unitView.getCollector(),n=t.getData(),r=this.encoding,i=this.encoders.text.accessor||this.encoders.text;let a=0;const o="format"in r.text?pt(r.text.format):l=>l;for(const l of n){const u=o(i(l)),c=Qe(u)?u:u===null?"":""+u;a+=c&&c.length||0}const s=new Mk({encoders:this.encoders,attributes:this.getAttributes(),properties:this.properties,fontMetrics:this.font.metrics,numCharacters:Math.max(a,this.properties.minBufferSize||0)});s.addBatches(t.facetBatches);const f=s.toArrays();this.rangeMap.migrateEntries(f.rangeMap),this.updateBufferInfo(f)}prepareRender(t){const n=super.prepareRender(t);let r=.35;this.properties.logoLetters&&(r/=2);const i=this.font.metrics.common.base/(this.unitView.context.devicePixelRatio/r);return n.push(()=>Yt(this.programInfo,{uTexture:this.font.texture,uSdfNumerator:i})),n.push(()=>za(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(t){const n=this.gl;return this.createRenderCallback((r,i)=>Bs(n,this.vertexArrayInfo,n.TRIANGLES,i,r),t)}}function uy(e,t,{spacing:n,devicePixelRatio:r,offset:i,reverse:a}={}){n=n||0,i=i||0;let o=0,s=0;for(const p of e)o+=pu(p.px)+(Wd(p)?0:n),s+=pu(p.grow);o-=n;const f=Math.max(0,t-o),l=r!==void 0?p=>Math.round(p*r)/r:p=>p,u=[],c=[],h=p=>{const b=u.length;if(!b)return;const y=(p?n:0)*(a?-1:1);d-=y;for(let w=0;w<b;w++)c.push({location:d+(w+1)/(b+1)*y,size:0});d+=y,u.length=0};let d=a?Math.max(t,o):0+i;if(e.length==1&&Wd(e[0]))return[{location:d,size:0}];for(let p=0;p<e.length;p++){const b=e[p];if(Wd(b))u.push(b);else{h(c.length>0);const y=pu(b.px)+(s?pu(b.grow)/s*f:0);a&&(d-=y),c.push({location:l(d),size:l(y)}),a?d-=n:d+=y+n}}return d+=a?n:-n,h(!1),c}function wB(e){let t=0,n=0;for(const r of e)t=Math.max(t,r.px??0),n=Math.max(n,r.grow??0);return{px:t,grow:n}}const gg=class gg{constructor(t,n){ce(this,Dl);this.width=t,this.height=n}addPadding(t){return ie(this,Dl,xg).call(this,t.width,t.height)}subtractPadding(t){return ie(this,Dl,xg).call(this,-t.width,-t.height)}};Dl=new WeakSet,xg=function(t,n){return new gg({px:(this.width.px??0)+t,grow:this.width.grow},{px:(this.height.px??0)+n,grow:this.height.grow})};let Vr=gg;const Ps=Object.freeze({px:0,grow:0}),cy=new Vr(Ps,Ps);function Wd(e){return!e.px&&!e.grow}function pu(e){return e||0}function vB(e){return e&&(Ft(e.px)||Ft(e.grow))}function hy(e){if(py(e))throw new Error("parseSizeDef does not accept step-based sizes.");if(vB(e))return e;if(Ft(e))return{px:e,grow:0};if(e==="container")return{px:0,grow:1};if(!e)return{px:0,grow:1};throw new Error(`Invalid sizeDef: ${e}`)}class Et{constructor(t,n,r,i){this.top=t||0,this.right=n||0,this.bottom=r||0,this.left=i||0}get width(){return this.left+this.right}get height(){return this.top+this.bottom}expand(t){return t<=0?this:new Et(this.top+t,this.right+t,this.bottom+t,this.left+t)}add(t){return new Et(this.top+t.top,this.right+t.right,this.bottom+t.bottom,this.left+t.left)}subtract(t){return new Et(this.top-t.top,this.right-t.right,this.bottom-t.bottom,this.left-t.left)}union(t){return new Et(Math.max(this.top,t.top),Math.max(this.right,t.right),Math.max(this.bottom,t.bottom),Math.max(this.left,t.left))}getHorizontal(){return new Et(0,this.right,0,this.left)}getVertical(){return new Et(this.top,0,this.bottom,0)}get horizontalTotal(){return this.left+this.right}get verticalTotal(){return this.top+this.bottom}static createFromConfig(t){return typeof t=="number"?this.createUniformPadding(t):t?this.createFromRecord(t):Yd}static createFromRecord(t){return new Et(t.top,t.right,t.bottom,t.left)}static zero(){return Yd}static createUniformPadding(t){return new Et(t,t,t,t)}}const Yd=Et.createUniformPadding(0);Object.freeze(Yd);const xB=/^([A-Za-z]+:)?\/\//;function AB(e,t){if(t&&xB.test(t))return t;const n=e();return n&&t?n.endsWith("/")?n+t:n+"/"+t:n??t}const EB="VISIT_SKIP",Ms="VISIT_STOP",dy=e=>e;class _B{constructor(t,n,r,i,a,o={}){ce(this,ca);ce(this,Pl);ce(this,Eo,{});ce(this,Fl,{});ce(this,Rl,{});St(this,"opacityFunction",dy);if(!t)throw new Error("View spec must be defined!");this.context=n,this.layoutParent=r,this.dataParent=i,this.name=t.name||a,this.spec=t,this.resolutions={scale:{},axis:{}},ny(this),this.options={blockEncodingInheritance:!1,contributesToScaleDomain:!0,...o},this.needsAxes={x:!1,y:!1}}getPadding(){return this._cache("size/padding",()=>Et.createFromConfig(this.spec.padding))}getOverhang(){return Et.zero()}isScrollable(){return this.spec.viewportWidth!=null||this.spec.viewportHeight!=null}getSize(){return this._cache("size/size",()=>this.isConfiguredVisible()?new Vr(ie(this,ca,Vl).call(this,"width"),ie(this,ca,Vl).call(this,"height")):cy)}getViewportSize(){if(!this.isScrollable())return this.getSize();if(!this.isConfiguredVisible())return cy;const t=this.getSize();return new Vr(ie(this,ca,Vl).call(this,"viewportWidth")??t.width,ie(this,ca,Vl).call(this,"viewportHeight")??t.height)}isConfiguredVisible(){return this.context.isViewConfiguredVisible(this)}isVisibleInSpec(){return this.spec.visible??!0}isVisible(){return this.getLayoutAncestors().every(t=>t.isConfiguredVisible())}getEffectiveOpacity(){var t;return this.opacityFunction(((t=this.layoutParent)==null?void 0:t.getEffectiveOpacity())??1)}getPathString(){return this.getLayoutAncestors().map(t=>t.name).reverse().join("/")}getLayoutAncestors(){return ie(this,Pl,Ag).call(this,"layoutParent")}getDataAncestors(){return ie(this,Pl,Ag).call(this,"dataParent")}handleBroadcast(t){for(const n of $(this,Eo)[t.type]||[])n(t)}_addBroadcastHandler(t,n){let r=$(this,Eo)[t];r||(r=[],$(this,Eo)[t]=r),r.push(n)}handleInteractionEvent(t,n,r){const i=r?$(this,Fl):$(this,Rl);for(const a of i[n.type]||[])a(t,n)}addInteractionEventListener(t,n,r){const i=r?$(this,Fl):$(this,Rl);let a=i[t];a||(a=[],i[t]=a),a.push(n)}visit(t){try{const n=t(this);if(t.postOrder&&t.postOrder(this),n!==Ms)return n}catch(n){throw n.view=this,n}}getDescendants(){const t=[];return this.visit(n=>{t.push(n)}),t}configureViewOpacity(){(!this.opacityFunction||this.opacityFunction===dy)&&(this.opacityFunction=CB(this))}onBeforeRender(){}render(t,n,r={}){}getEncoding(){const t=this.dataParent&&!this.options.blockEncodingInheritance?this.dataParent.getEncoding():{},n=this.spec.encoding||{},r={...t,...n};for(const[i,a]of Object.entries(r))a===null&&delete r[i];return r}getFacetAccessor(t){if(this.layoutParent)return this.layoutParent.getFacetAccessor(this)}getFacetFields(t){var r;const n=this.getEncoding().sample;return vs(n)?[n.field]:(r=this.layoutParent)==null?void 0:r.getFacetFields(this)}getSampleFacetTexture(){}getScaleResolution(t){const n=Pi(t);return this.getDataAncestors().map(r=>r.resolutions.scale[n]).find(r=>r)}getAxisResolution(t){const n=Pi(t);return this.getDataAncestors().map(r=>r.resolutions.axis[n]).find(r=>r)}getConfiguredResolution(t,n){var r,i;return(i=(r=this.spec.resolve)==null?void 0:r[n])==null?void 0:i[t]}getConfiguredOrDefaultResolution(t,n){return this.getConfiguredResolution(t,n)??this.getConfiguredResolution("default",n)??this.getDefaultResolution(t,n)}getDefaultResolution(t,n){return"independent"}getBaseUrl(){return AB(()=>{var t;return(t=this.dataParent)==null?void 0:t.getBaseUrl()},this.spec.baseUrl)}isPickingSupported(){return!0}getTitleText(){const t=this.spec.title;if(t)return Qe(t)?t:t.text}_cache(t,n){return Ga(this,t,n)}_invalidateCacheByPrefix(t,n="self"){switch(n){case"self":hu(this,t);break;case"ancestors":for(const r of this.getLayoutAncestors())hu(r,t);break;case"progeny":this.visit(r=>hu(r,t));break}}invalidateSizeCache(){this._invalidateCacheByPrefix("size/","ancestors")}propagateInteractionEvent(t){}}Eo=new WeakMap,Fl=new WeakMap,Rl=new WeakMap,ca=new WeakSet,Vl=function(t){var i;let n=this.spec[t];const r=t=="viewportWidth"||t=="viewportHeight";if(py(n)){if(r)throw new Gi(`Cannot use step-based size with "${t}"!`,this);const a=n.step,o=(i=this.getScaleResolution(t=="width"?"x":"y"))==null?void 0:i.getScale();if(o){let s=0;if(Mr(o.type))s=o.domain().length;else if(["locus","index"].includes(o.type)){const l=o.domain();s=ns(l)-l[0]}else throw new Gi(`Cannot use step-based size with "${o.type}" scale!`,this);const f=o;return s=Jh(s,f.paddingInner(),f.paddingOuter()),{px:s*a,grow:0}}else throw new Gi("Cannot use 'step' size with missing scale!",this)}else return(n&&hy(n))??(r?void 0:{px:0,grow:1})},Pl=new WeakSet,Ag=function(t){const n=[];let r=this;do n.push(r),r=r[t];while(r);return n};function SB(e){return"unitsPerPixel"in e}function CB(e){const t=e.spec.opacity;if(t!==void 0){if(Ft(t))return n=>n*t;if(SB(t)){const n=a=>{var s;const o=(s=e.getScaleResolution(a))==null?void 0:s.getScale();if(["linear","index","locus"].includes(o==null?void 0:o.type))return o},r=t.channel?n(t.channel):n("x")??n("y");if(!r)throw new Gi("Cannot find a resolved quantitative scale for dynamic opacity!",e);const i=qh().domain(t.unitsPerPixel).range(t.values).clamp(!0);return a=>{const s=$l(r.domain())/1e3;return i(s)*a}}}return n=>n}const py=e=>!!(e!=null&&e.step);class Hi extends _B{constructor(t,n,r,i,a,o){super(t,n,r,i,a,o),this.spec=t}async initializeChildren(){}*[Symbol.iterator](){}replaceChild(t,n){throw new Error("Not implemented")}visit(t){let n;try{n=t(this)}catch(r){throw r.view=this,r}if(n===Ms)return n;if(n!==EB){t.beforeChildren&&t.beforeChildren(this);for(const r of this){const i=r.visit(t);if(i===Ms)return i}t.afterChildren&&t.afterChildren(this),t.postOrder&&t.postOrder(this)}}findDescendantByPath(t){for(const n of this)if(n.name===t[0]){if(t.length==1)return n;if(n instanceof Hi)return n.findDescendantByPath(t.slice(1))}}findChildByName(t){for(const n of this)if(n.name===t)return n}findDescendantByName(t){let n;return this.visit(r=>{if(r.name==t)return n=r,Ms}),n}getDefaultResolution(t,n){return"shared"}}const gy=1;function Qd(){let e=[0,1],t=[0,1],n=1,r=1,i=0,a=0,o=.5,s=0;const l=u=>(u+o-e[0])/n*r+t[0];return l.invert=u=>(u-t[0])/r*n+e[0]-o,l.domain=function(u){if(arguments.length){e=I_(u),n=e[1]-e[0];const c=e[0]===0&&e[0]===0;if(n<gy&&!c){n=gy;const h=(e[0]+e[1])/2;e[0]=h-n/2,e[1]=h+n/2}return l}else return e.slice()},l.range=function(u){return arguments.length?(t=[...u],r=t[1]-t[0],l):t},l.numberingOffset=function(u){return arguments.length?(s=u,l):s},l.padding=function(u){return arguments.length?(a=u,i=Math.min(1,u),l):i},l.paddingInner=function(u){return arguments.length?(i=Math.min(1,u),l):i},l.paddingOuter=function(u){return arguments.length?(a=u,l):a},l.align=function(u){return arguments.length?(o=Math.max(0,Math.min(1,u)),l):o},l.step=()=>r/n,l.bandwidth=()=>l.step(),l.ticks=u=>{const c=l.align(),h=l.numberingOffset();return nf(e[0]-c+h,e[1]-c+h,Math.min(u,Math.ceil(n))).filter(Number.isInteger).map(d=>d-s)},l.tickFormat=(u,c)=>{if(c)throw new Error("Index scale's tickFormat does not support a specifier!");const d=bi(e[0],e[1],Math.min(u,Math.ceil(n)))<1e5?pt(","):pt(".3s");return p=>d(p+s)},l.copy=()=>Qd().domain(e).range(t).paddingInner(i).paddingOuter(a).numberingOffset(s),l}function TB(){const e=Qd().numberingOffset(1);let t;e.genome=function(r){return arguments.length?(t=r,e):t},e.ticks=r=>{if(!t)return[];const i=e.domain(),a=e.numberingOffset(),[o,s]=[Math.max(i[0],0),Math.min(i[1],t.totalSize-1)].map(u=>t.toChromosome(u)),f=Math.max(1,bi(i[0],i[1],r)),l=[];for(let u=o.index;u<=s.index;u++){const c=t.chromosomes[u],h=Math.max(c.continuousStart+f,i[0]-(i[0]-c.continuousStart)%f),d=Math.min(c.continuousEnd-f/4,i[1]+1);for(let p=h;p<=d;p+=f){const b=p-a;b>=i[0]&&b<i[1]&&l.push(b)}}return l},e.tickFormat=(r,i)=>{if(!t)return;if(i)throw new Error("Locus scale's tickFormat does not support a specifier!");const a=e.domain(),o=a[1]-a[0],s=e.numberingOffset(),l=bi(a[0],a[1],Math.min(r,Math.ceil(o)))<1e6?pt(","):pt(".3s"),u=c=>c-t.toChromosome(c).continuousStart;return c=>l(u(c)+s)};const n=e.copy;return e.copy=()=>n().genome(t),e}function IB(e){return e.type=="locus"}function gu(e,t,n){if(n=n||[],e.some(o=>o===null)){if(e.every(o=>o===null))return null;throw console.warn(e),new Error("Cannot merge objects with nulls!")}const r={},i=(o,s)=>o===s||Ha(o)&&Ha(s)||Ha(o)&&s===!0||o===!0&&Zt(s),a=o=>{for(let s in o){const f=o[s];if(!n.includes(s)&&f!==void 0)if(r[s]!==void 0&&!i(r[s],f))console.warn(`Conflicting property ${s} of ${t}: (${JSON.stringify(r[s])} and ${JSON.stringify(o[s])}). Using ${JSON.stringify(r[s])}.`);else{const l=r[s];if(Ha(l))Ha(f)&&(r[s]=gu([l,f],s));else if(Ha(f)){if(!(l===!0||l===void 0))throw new Error("Bug in merge! Target is: "+l);r[s]=gu([{},f],s)}else r[s]=f}}};for(const o of e)a(o);return r}function Ha(e){return Zt(e)&&!Array.isArray(e)}/*!
243
229
  * Adapted from vega-encode:
244
230
  * https://github.com/vega/vega/blob/master/packages/vega-encode/src/ticks.js
245
231
  *
@@ -247,7 +233,7 @@ if(scale<1.0){if(uSqueeze){vec2 scaleFadeExtent=vec2(3.0,6.0)/size;if(scale<scal
247
233
  * All rights reserved.
248
234
  *
249
235
  * BSD-3-Clause License: https://github.com/vega/vega-lite/blob/master/LICENSE
250
- */function Uw(t,e,n){return Lt(e)&&n!=null&&(e=Math.min(e,~~(mf(t.domain())/n)||1)),Dn(e)&&(e.step,e=e.interval),e}function jw(t,e,n){var r=t.range(),i=Math.floor(r[0]),a=Math.ceil(In(r));if(i>a&&(r=a,a=i,i=r),e=e.filter(function(s){return s=t(s),i<=s&&s<=a}),n>0&&e.length>1){for(var o=[e[0],In(e)];e.length>n&&e.length>=3;)e=e.filter(function(s,f){return!(f%2)});e.length<3&&(e=o)}return e}function dF(t,e){return t.bins?jw(t,gF(t.bins,e)):t.ticks?t.ticks(e):t.domain()}function gF(t,e){var n=t.length,r=~~(n/(e||n));return r<2?t.slice():t.filter(function(i,a){return!(a%r)})}function pF(t,e,n){var r=t.tickFormat?t.tickFormat(e,n):n?pt(n):String;if(Vb(t.type)){var i=bF(n);r=t.bins?i:mF(r,i)}return r}function mF(t,e){return function(n){return t(n)?e(n):""}}function bF(t){var e=jr(t||",");if(e.precision==null){switch(e.precision=12,e.type){case"%":e.precision-=2;break;case"e":e.precision-=1;break}return yF(pt(e),pt(".1f")(1)[1])}else return pt(e)}function yF(t,e){return function(n){var r=t(n),i=r.indexOf(e),a,o;if(i<0)return r;for(a=wF(r,i),o=a<r.length?r.slice(a):"";--a>i;)if(r[a]!=="0"){++a;break}return r.slice(0,a)+o}}function wF(t,e){var n=t.lastIndexOf("e"),r;if(n>0)return n;for(n=t.length;--n>e;)if(r=t.charCodeAt(n),r>=48&&r<=57)return n+1}/*!
236
+ */function my(e,t,n){return Ft(t)&&n!=null&&(t=Math.min(t,~~($l(e.domain())/n)||1)),Zt(t)&&(t.step,t=t.interval),t}function by(e,t,n){var r=e.range(),i=Math.floor(r[0]),a=Math.ceil(bn(r));if(i>a&&(r=a,a=i,i=r),t=t.filter(function(s){return s=e(s),i<=s&&s<=a}),n>0&&t.length>1){for(var o=[t[0],bn(t)];t.length>n&&t.length>=3;)t=t.filter(function(s,f){return!(f%2)});t.length<3&&(t=o)}return t}function kB(e,t){return e.bins?by(e,BB(e.bins,t)):e.ticks?e.ticks(t):e.domain()}function BB(e,t){var n=e.length,r=~~(n/(t||n));return r<2?e.slice():e.filter(function(i,a){return!(a%r)})}function DB(e,t,n){var r=e.tickFormat?e.tickFormat(t,n):n?pt(n):String;if(Eb(e.type)){var i=RB(n);r=e.bins?i:FB(r,i)}return r}function FB(e,t){return function(n){return e(n)?t(n):""}}function RB(e){var t=Er(e||",");if(t.precision==null){switch(t.precision=12,t.type){case"%":t.precision-=2;break;case"e":t.precision-=1;break}return PB(pt(t),pt(".1f")(1)[1])}else return pt(t)}function PB(e,t){return function(n){var r=e(n),i=r.indexOf(t),a,o;if(i<0)return r;for(a=MB(r,i),o=a<r.length?r.slice(a):"";--a>i;)if(r[a]!=="0"){++a;break}return r.slice(0,a)+o}}function MB(e,t){var n=e.lastIndexOf("e"),r;if(n>0)return n;for(n=e.length;--n>t;)if(r=e.charCodeAt(n),r>=48&&r<=57)return n+1}/*!
251
237
  * Adapted from vega-encode:
252
238
  * https://github.com/vega/vega/blob/master/packages/vega-encode/src/Scale.js
253
239
  *
@@ -255,39 +241,52 @@ if(scale<1.0){if(uSqueeze){vec2 scaleFadeExtent=vec2(3.0,6.0)/size;if(scale<scal
255
241
  * All rights reserved.
256
242
  *
257
243
  * BSD-3-Clause License: https://github.com/vega/vega-lite/blob/master/LICENSE
258
- */const xF="locus",vF="index";var AF=5;function EF(t){const e=t.type;return!t.bins&&(e===Va||e===Ls||e===Rs)}function Gw(t){return Et(t)&&![$n,vF,xF].includes(t)}function Hw(t){return t||{warn:(e,...n)=>console.warn(e,...n)}}var SF=yf(["set","modified","clear","type","scheme","schemeExtent","schemeCount","domain","domainMin","domainMid","domainMax","domainRaw","domainImplicit","nice","zero","bins","range","rangeStep","round","reverse","interpolate","interpolateGamma","zoom","fp64","name"]);function Qw(t,e,n){n=Hw(n);for(const r in t)if(!SF[r]){if(r==="padding"&&Gw(e.type))continue;Bt(e[r])?e[r](t[r]):n.warn("Unsupported scale property: "+r)}FF(e,t,NF(e,t,IF(e,t,n)))}function _F(t,e){const n=CF(t),r=Ce(n);if(!r)throw new Error("Unknown scale type: "+n);const i=r();return!t.domain&&Et(i.type)&&(t.domain=[0,0]),Qw(t,i,e),i}function CF(t){var e=t.type,n="",r;return e===$n?$n+"-"+Va:(DF(t)&&(r=t.rawDomain?t.rawDomain.length:t.domain?t.domain.length+ +(t.domainMid!=null):0,n=r===2?$n+"-":r===3?qa+"-":""),(n+e||Va).toLowerCase())}function DF(t){const e=t.type;return Et(e)&&e!==Ob&&e!==zb&&(t.scheme||t.range&&t.range.length&&t.range.every(Ke))}function IF(t,e,n){if(!t.domain)return 0;n=Hw(n);var r=MF(t,e.domainRaw,n);if(r>-1)return r;var i=e.domain,a=t.type,o=e.zero||e.zero===void 0&&EF(t),s,f;return i?(Gw(a)&&e.padding&&i[0]!==In(i)&&(i=TF(a,i,e.range,e.padding,e.exponent,e.constant)),(o||e.domainMin!=null||e.domainMax!=null||e.domainMid!=null)&&(s=(i=i.slice()).length-1||1,o&&(i[0]>0&&(i[0]=0),i[s]<0&&(i[s]=0)),e.domainMin!=null&&(i[0]=e.domainMin),e.domainMax!=null&&(i[s]=e.domainMax),e.domainMid!=null&&(f=e.domainMid,(f<i[0]||f>i[s])&&n.warn("Scale domainMid exceeds domain min or max.",f),i.splice(s,0,f))),t.domain(Vw(a,i,n)),a===yd&&t.unknown(e.domainImplicit?Ph:void 0),e.nice&&t.nice&&t.nice(e.nice!==!0&&Uw(t,e.nice)||null),i.length):0}function MF(t,e,n){return e?(t.domain(Vw(t.type,e,n)),e.length):-1}function TF(t,e,n,r,i,a){var o=Math.abs(In(n)-n[0]),s=o/(o-2*r),f=t===Kr?em(e,null,s):t===Rs?Wc(e,null,s,.5):t===Ls?Wc(e,null,s,i||1):t===tl?zS(e,null,s,a||1):Jp(e,null,s);return e=e.slice(),e[0]=f[0],e[e.length-1]=f[1],e}function Vw(t,e,n){if(Vb(t)){var r=Math.abs(e.reduce(function(i,a){return i+(a<0?-1:a>0?1:0)},0));r!==e.length&&n.warn("Log scale domain includes zero: "+bf(e))}return e}function NF(t,e,n){let r=e.bins;if(r&&!Xt(r)){const i=(r.start==null||r.stop==null)&&t.domain(),a=r.start==null?i[0]:r.start,o=r.stop==null?In(i):r.stop,s=r.step;s||$e("Scale bins parameter missing step property."),r=ns(a,o+s,s)}return r?t.bins=r:t.bins&&delete t.bins,t.type===xd&&(r?!e.domain&&!e.domainRaw&&(t.domain(r),n=r.length):t.bins=t.domain()),n}function FF(t,e,n){var r=t.type,i=e.round||!1,a=e.range;if(e.rangeStep!=null)a=kF(r,e,n);else if(e.scheme&&(a=BF(r,e,n),Bt(a))){if(t.interpolator)return t.interpolator(a);$e(`Scale type ${r} does not support interpolating color schemes.`)}if(a&&rl(r))return t.interpolator(il(h0(a,e.reverse),e.interpolate,e.interpolateGamma));a&&e.interpolate&&t.interpolate?t.interpolate(qb(e.interpolate,e.interpolateGamma)):Bt(t.round)?t.round(i):Bt(t.rangeRound)&&t.interpolate(i?ks:Xr),a&&t.range(h0(a,e.reverse))}function kF(t,e,n){t!==jb&&t!==wd&&$e("Only band and point scales support rangeStep.");var r=(e.paddingOuter!=null?e.paddingOuter:e.padding)||0,i=t===wd?1:(e.paddingInner!=null?e.paddingInner:e.padding)||0;return[0,e.rangeStep*md(n,i,r)]}function BF(t,e,n){var r=e.schemeExtent,i,a;return Xt(e.scheme)?a=il(e.scheme,e.interpolate,e.interpolateGamma):(i=e.scheme.toLowerCase(),a=Ad(i),a||$e(`Unrecognized scheme name: ${e.scheme}`)),n=t===Ub?n+1:t===xd?n-1:t===bd||t===Pb?+e.schemeCount||AF:n,rl(t)?qw(a,r,e.reverse):Bt(a)?rM(qw(a,r),n):t===yd?a:a.slice(0,n)}function qw(t,e,n){return Bt(t)&&(e||n)?nM(t,h0(e||[0,1],n)):t}function h0(t,e){return e?t.slice().reverse():t}const Zw=pt(",d");function LF(t,e){return t.chrom+":"+Zw(Math.floor(t.pos+1))+"-"+(t.chrom!=e.chrom?e.chrom+":":"")+Zw(Math.ceil(e.pos))}const RF="https://genomespy.app/data/genomes/";class OF{constructor(e){if(this.config=e,!this.config.contigs&&typeof this.config.name!="string")throw new Error("No name has been defined for the genome assembly!");this.chromosomes=[],this.cumulativeChromPositions=new Map,this.chromosomesByName=new Map,this.startByIndex=[],this.totalSize=0,this.config.contigs&&this.setChromSizes(this.config.contigs)}get name(){return this.config.name}async load(e){if(!this.config.contigs){this.config.baseUrl?this.baseUrl=/^http(s)?/.test(this.config.baseUrl)?this.config.baseUrl:e+"/"+this.config.baseUrl:this.baseUrl=RF;try{this.setChromSizes(zF(await kf({baseURL:this.baseUrl}).load(`${this.config.name}/${this.name}.chrom.sizes`)))}catch(n){throw new Error(`Could not load chrom sizes: ${n.message}`)}}}hasChrPrefix(){return this.chromosomes.some(e=>e.name.startsWith("chr"))}setChromSizes(e){let n=0;this.startByIndex=[0];for(let r=0;r<e.length;r++){this.startByIndex.push(n);const i=e[r].size,a={...e[r],continuousStart:n,continuousEnd:n+i,continuousInterval:[n,n+i],index:r,number:r+1,odd:!(r&1)};this.chromosomes.push(a);const o=a.name.replace(/^chr/i,"");for(const s of["chr"+o,"CHR"+o,"Chr"+o,a.number,""+a.number,o,a.name])this.cumulativeChromPositions.set(s,n),this.chromosomesByName.set(s,a);n+=a.size}this.totalSize=n}getExtent(){return[0,this.totalSize]}toContinuous(e,n){let r=this.cumulativeChromPositions.get(e);if(r===void 0)throw new Error("Unknown chromosome/contig: "+e);return r+ +n}toChromosome(e){if(e>this.totalSize)return;e=Math.floor(e);const n=Fa(this.startByIndex,e)-1;if(n>0&&n<=this.chromosomes.length)return this.chromosomes[n-1]}toChromosomal(e){const n=this.toChromosome(e);if(n)return{chrom:n.name,pos:Math.floor(e)-n.continuousStart}}getChromosome(e){return this.chromosomesByName.get(e)}formatInterval(e){return LF(...this.toChromosomalInterval(e))}toChromosomalInterval(e){const n=this.toChromosomal(e[0]+.5),r=this.toChromosomal(e[1]-.5);return r.pos+=1,[n,r]}toContinuousInterval(e){var i;let[n,r]=e;return r||(r=n),[this.toContinuous(n.chrom,n.pos??0),this.toContinuous(r.chrom,r.pos??((i=this.chromosomesByName.get(r.chrom))==null?void 0:i.size))]}toDiscreteChromosomeIntervals(e){const n=e[0],r=e[1],i=[];if(n.chrom===r.chrom)i.push({chrom:n.chrom,startPos:n.pos,endPos:r.pos});else{const a=this.chromosomes.findIndex(s=>s.name===n.chrom),o=this.chromosomes.findIndex(s=>s.name===r.chrom);i.push({chrom:n.chrom,startPos:n.pos,endPos:this.chromosomes[a].size});for(let s=a+1;s<o;s++)i.push({chrom:this.chromosomes[s].name,startPos:0,endPos:this.chromosomes[s].size});i.push({chrom:r.chrom,startPos:0,endPos:r.pos})}return i}continuousToDiscreteChromosomeIntervals(e){return this.toDiscreteChromosomeIntervals([this.toChromosomal(e[0]),this.toChromosomal(e[1])])}parseInterval(e){const n=e.match(/^(chr[0-9A-Z]+)(?::([0-9,]+)(?:-(?:(chr[0-9A-Z]+):)?([0-9,]+))?)?$/);if(n){const r=n[1];if(n.slice(2).every(s=>s===void 0)){const s=this.getChromosome(r);return s?[s.continuousStart,s.continuousEnd]:void 0}const i=n[3]||r,a=parseInt(n[2].replace(/,/g,"")),o=n[4]!==void 0?parseInt(n[4].replace(/,/g,"")):a;return[this.toContinuous(r,a-1),this.toContinuous(i,o)]}}}function zF(t){return r_(t).filter(e=>/^chr[0-9A-Z]+$/.test(e[0])).map(([e,n])=>({name:e,size:parseInt(n)}))}function Yw(t){return Dn(t)&&"chrom"in t}function PF(t){return t.every(Yw)}class nu extends Array{constructor(){super(),this.type=void 0}extend(e){return this}extendAll(e){if(e instanceof nu&&e.type!=this.type)throw new Error(`Cannot combine different types of domains: ${this.type} and ${e.type}`);for(const n of e)this.extend(n);return this}extendAllWithAccessor(e,n){for(const r of e)this.extend(n(r));return this}}class d0 extends nu{constructor(){super(),this.type="quantitative"}extend(e){return e==null||Number.isNaN(e)?this:(e=+e,this.length?e<this[0]?this[0]=e:e>this[1]&&(this[1]=e):(this.push(e),this.push(e)),this)}}class Ww extends nu{constructor(){super(),this.type="ordinal",this.uniqueValues=new Set}extend(e){return e==null||Number.isNaN(e)?this:(this.uniqueValues.has(e)||(this.uniqueValues.add(e),this.push(e)),this)}}class Xw extends Ww{constructor(){super(),this.type="nominal"}}class UF extends nu{constructor(e){super();let n=0;for(let r=1;r<e.length;r++)n+=Math.sign(e[r]-e[r-1]);if(Math.abs(n)!=e.length-1)throw new Error("Piecewise domain must be strictly increasing or decreasing: "+JSON.stringify(e));e.forEach(r=>this.push(r))}extend(e){if(this.includes(e))return this;throw new Error("Piecewise domains are immutable and cannot be unioned!")}}const $w={quantitative:d0,index:d0,locus:d0,nominal:Xw,ordinal:Ww};function Kw(t,e){if(t=="quantitative"&&jF(e)){const n=new UF(e);return n.type=t,n}else if($w[t]){const n=new $w[t];return n.type=t,e&&n.extendAll(e),n}throw new Error("Unknown type: "+t)}function jF(t){return t&&t.length>0&&t.length!=2&&t.every(e=>typeof e=="number")}function GF(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}function HF(t,e,n){return t*Math.pow(e/t,n)}Ce("index",c0,["continuous"]),Ce("locus",cF,["continuous"]),Ce("null",al,[]);const Jw="quantitative",ex="ordinal",tx="nominal",nx="locus",QF="index";class VF{constructor(e){ye(this,hr);ye(this,Rc);ye(this,Yo);ye(this,Lr);ye(this,nf);ye(this,Oc);ye(this,Pp);ye(this,rf);ye(this,Br,void 0);ye(this,Zo,new Set);ye(this,xt,void 0);this.channel=e,this.members=[],this.type=null,this.name=void 0}addEventListener(e,n){if(e!="domain")throw new Error("Unsupported event type: "+e);ie(this,Zo).add(n)}removeEventListener(e,n){if(e!="domain")throw new Error("Unsupported event type: "+e);ie(this,Zo).delete(n)}pushUnitView(e,n){var o;const r=Ed(e,n),i=r.type,a=(o=r==null?void 0:r.scale)==null?void 0:o.name;if(a){if(this.name!==void 0&&a!=this.name)throw new Error(`Shared scales have conflicting names: "${a}" vs. "${this.name}"!`);this.name=a}if(!this.type)this.type=i;else if(i!==this.type&&!Hs(n))throw new Error(`Can not use shared scale for different data types: ${this.type} vs. ${i}. Use "resolve: independent" for channel ${this.channel}`);this.members.push({view:e,channel:n})}isExplicitDomain(){return!!this.getConfiguredDomain()}isDomainInitialized(){const e=ie(this,xt);if(!e)return!1;const n=e.domain();return Et(e.type)?n.length>2||n.length==2&&(n[0]!==0||n[1]!==0):n.length>0}getScaleProps(){return ao(this,"scaleProps",()=>{const e=fe(this,Rc,SS).call(this);if(e===null||e.type=="null")return{type:"null"};const n={...fe(this,Oc,_S).call(this,this.type),...e};n.type||(n.type=qF(this.channel,this.type));const r=fe(this,Yo,Vc).call(this);return r&&r.length>0?n.domain=r:Jr(n.type)&&(n.domain=new Xw),!n.domain&&n.domainMid!==void 0&&(n.domain=[n.domainMin??0,n.domainMax??1]),this.channel=="y"&&Jr(n.type)&&n.reverse==null&&(n.reverse=!0),n.range&&n.scheme&&delete n.scheme,!("zoom"in n)&&["index","locus"].includes(n.type)&&(n.zoom=!0),ZF(n,this.channel),n})}getConfiguredDomain(){return fe(this,rf,Zp).call(this,e=>Hs(e.channel)?void 0:e.view.getConfiguredDomain(e.channel))}getDataDomain(){return fe(this,rf,Zp).call(this,e=>Hs(e.channel)?void 0:e.view.extractDataDomain(e.channel))}reconfigure(){if(ie(this,xt)&&ie(this,xt).type!="null"){const e=this.isDomainInitialized(),n=ie(this,xt).domain();Sw(this,"scaleProps");const r=this.getScaleProps();if(Qw(r,ie(this,xt)),Et(ie(this,xt).type)&&yr(this,Br,fe(this,nf,qp).call(this)),!e){fe(this,hr,Ti).call(this);return}const i=ie(this,xt).domain();Rf(i,n)||(this.isZoomable()?ie(this,xt).domain(n):fe(this,Lr,Ta).call(this)?(ie(this,xt).domain(n),this.zoomTo(i,500)):fe(this,hr,Ti).call(this))}}getScale(){if(ie(this,xt))return ie(this,xt);const e=this.getScaleProps(),n=_F(e);return yr(this,xt,n),hF(n)&&n.genome(this.getGenome()),Et(n.type)&&yr(this,Br,fe(this,nf,qp).call(this)),n}getDomain(){return this.getScale().domain()}getComplexDomain(){var e;return((e=this.getGenome())==null?void 0:e.toChromosomalInterval(this.getDomain()))??this.getDomain()}isZoomed(){return fe(this,Lr,Ta).call(this)&&Rf(fe(this,Yo,Vc).call(this),this.getDomain())}isZoomable(){return fe(this,Lr,Ta).call(this)&&!!this.getScaleProps().zoom}zoom(e,n,r){if(!fe(this,Lr,Ta).call(this))return!1;const i=this.getScale(),a=i.domain();let o=[...a],s=i.invert(n);switch(this.getScaleProps().reverse&&(r=-r),"align"in i&&(s+=i.align()),i.type){case"linear":case"index":case"locus":o=LS(o,r||0),o=Jp(o,s,e);break;case"log":o=RS(o,r||0),o=em(o,s,e);break;case"pow":case"sqrt":{const f=i;o=OS(o,r||0,f.exponent()),o=Wc(o,s,e,f.exponent());break}default:throw new Error("Zooming is not implemented for: "+i.type)}return ie(this,Br)&&(o=PS(o,ie(this,Br)[0],ie(this,Br)[1])),[0,1].some(f=>o[f]!=a[f])?(i.domain(o),fe(this,hr,Ti).call(this),!0):!1}async zoomTo(e,n=!1){var s;if(pf(n)&&(n=n?700:0),!fe(this,Lr,Ta).call(this))throw new Error("Not a zoomable scale!");const r=this.fromComplexInterval(e),i=(s=this.members[0])==null?void 0:s.view.context.animator,a=this.getScale(),o=a.domain();if(n>0&&o.length==2){const f=o[1]-o[0],u=o[0]+f/2,l=r[1]-r[0],c=r[0]+l/2;await i.transition({duration:n,easingFunction:GF,onUpdate:h=>{const d=HF(f,l,h),g=(f-d)/(f-l),b=g*c+(1-g)*u;a.domain([b-d/2,b+d/2]),fe(this,hr,Ti).call(this)}}),a.domain(r),fe(this,hr,Ti).call(this)}else a.domain(r),i==null||i.requestRender(),fe(this,hr,Ti).call(this)}resetZoom(){if(!fe(this,Lr,Ta).call(this))throw new Error("Not a zoomable scale!");const e=this.getDomain(),n=fe(this,Yo,Vc).call(this);return[0,1].some(r=>n[r]!=e[r])?(ie(this,xt).domain(n),fe(this,hr,Ti).call(this),!0):!1}getZoomLevel(){return this.isZoomable()?mf(ie(this,Br))/mf(this.getScale().domain()):1}getGenome(){var n;if(this.type!=="locus")return;const e=(n=this.members[0].view.context.genomeStore)==null?void 0:n.getGenome();if(!e)throw new Error("No genome has been defined!");return e}invertToComplex(e){const n=this.getScale();if("invert"in n){const r=n.invert(e);return this.toComplex(r)}else throw new Error("The scale does not support inverting!")}toComplex(e){const n=this.getGenome();return n?n.toChromosomal(e):e}fromComplex(e){return Yw(e)?this.getGenome().toContinuous(e.chrom,e.pos):e}fromComplexInterval(e){return this.type==="locus"&&PF(e)?this.getGenome().toContinuousInterval(e):e}}Br=new WeakMap,Zo=new WeakMap,xt=new WeakMap,hr=new WeakSet,Ti=function(){for(const e of ie(this,Zo).values())e({type:"domain",scaleResolution:this})},Rc=new WeakSet,SS=function(){return ao(this,"mergedScaleProps",()=>{const e=this.members.map(n=>Ed(n.view,n.channel).scale).filter(n=>n!==void 0);return kl(e,"scale",["domain"])})},Yo=new WeakSet,Vc=function(){return this.getConfiguredDomain()??(this.type==nx?this.getGenome().getExtent():this.getDataDomain())},Lr=new WeakSet,Ta=function(){const e=this.getScale().type;return Et(e)},nf=new WeakSet,qp=function(){const e=this.getScaleProps(),n=e.zoom;if(YF(n)&&Xt(n.extent))return this.fromComplexInterval(n.extent);if(n)return e.type=="locus"?this.getGenome().getExtent():ie(this,xt).domain()},Oc=new WeakSet,_S=function(e){const n=this.channel,r={};return this.isExplicitDomain()&&(r.zero=!1),Gs(n)?r.nice=!this.isExplicitDomain():Xi(n)?r.scheme=e==tx?"tableau10":e==ex?"blues":"viridis":ol(n)?r.range=Jb(n):n=="size"?r.range=[0,400]:n=="angle"&&(r.range=[0,360]),r},Pp=new WeakSet,O7=function(){return this.members.map(e=>e.view.getPathString()).join(", ")},rf=new WeakSet,Zp=function(e){const n=this.members.filter(r=>!r.view.getLayoutAncestors().some(i=>!i.contributesToScaleDomain)).map(e).filter(r=>!!r);if(n.length)return n.reduce((r,i)=>r.extendAll(i))};function qF(t,e){if(e==QF||e==nx){if($b(t))return e;throw new Error(`${t} does not support ${e} data type. Only positional channels do.`)}const n={x:["band","band","linear"],y:["band","band","linear"],size:[void 0,"point","linear"],opacity:[void 0,"point","linear"],fillOpacity:[void 0,"point","linear"],strokeOpacity:[void 0,"point","linear"],color:["ordinal","ordinal","linear"],fill:["ordinal","ordinal","linear"],stroke:["ordinal","ordinal","linear"],strokeWidth:[void 0,void 0,"linear"],shape:["ordinal","ordinal",void 0],dx:[void 0,void 0,"null"],dy:[void 0,void 0,"null"],angle:[void 0,void 0,"linear"]},i=["sample"].includes(t)?"null":n[t]?n[t][[tx,ex,Jw].indexOf(e)]:e==Jw?"linear":"ordinal";if(i===void 0)throw new Error(`Channel "${t}" is not compatible with "${e}" data type. Use of a proper scale may be needed.`);return i}function ZF(t,e){Gs(e)&&t.type!=="ordinal"&&(t.range=[0,1]),e=="opacity"&&Et(t.type)&&(t.clamp=!0)}function YF(t){return Dn(t)}function g0(t){const e=new Set;function n(r){for(const i of Object.values(r.resolutions.scale))e.add(i)}for(const r of $t(t)){r.visit(n);for(const i of r.getDataAncestors()){if(!i.contributesToScaleDomain)break;n(i)}}e.forEach(r=>r.reconfigure())}function p0(...t){for(const e of t)if(e!==void 0)return e}class WF{constructor(e){this.channel=e,this.members=[]}get scaleResolution(){var e;return(e=As(this.members))==null?void 0:e.view.getScaleResolution(this.channel)}pushUnitView(e,n){const r=e.getScaleResolution(this.channel);if(!r)throw new Error("Cannot find a scale resolution!");if(this.scaleResolution&&r!==this.scaleResolution)throw new Error("Shared axes must have a shared scale!");this.members.push({view:e,channel:n})}getAxisProps(){return ao(this,"axisProps",()=>{const e=this.members.map(n=>{const r=n.view.mark.encoding[n.channel];return"axis"in r&&r.axis});return e.length>0&&e.some(n=>n===null)?null:kl(e.filter(n=>n!==void 0),"axis",["title"])})}getTitle(){const e=a=>{var s;const o=Ed(a.view,a.channel);if(!Fn(o))return{member:a,explicitTitle:p0("axis"in o?(s=o.axis)==null?void 0:s.title:void 0,o.title),implicitTitle:p0(Us(o)?o.field:void 0,Sd(o)?o.expr:void 0)}},n=this.members.map(e),r=n.filter(a=>{var o;if(Hs(a.member.channel)&&!a.explicitTitle){const s=Wi(a.member.channel);return((o=n.find(f=>f.member.view==a.member.view&&f.member.channel==s))==null?void 0:o.explicitTitle)===void 0}return!0}),i=new Set(r.map(a=>p0(a.explicitTitle,a.implicitTitle)).filter(Ke));return i.size?[...i].join(", "):null}}const XF={point:QN,rect:ON,rule:ZN,link:$N,text:rF};class Tt extends oo{constructor(e,n,r,i,a){super(e,n,r,i,a),this.spec=e;const o=XF[this.getMarkType()];if(o)this.mark=new o(this);else throw new Error(`No such mark: ${this.getMarkType()}`);this.coords=void 0,this.needsAxes={x:!0,y:!0}}render(e,n,r={}){this.isConfiguredVisible()&&(this.coords=n,e.pushView(this,n),e.renderMark(this.mark,r),e.popView(this))}getMarkType(){return typeof this.spec.mark=="object"?this.spec.mark.type:this.spec.mark}resolve(e){const n=this.mark.encoding;for(const[r,i]of Object.entries(n)){if(!un(i))continue;const a=Wi(i.resolutionChannel??r);if(!$i(a)||e=="axis"&&!Gs(a))continue;let o=this;for(;(o.getConfiguredOrDefaultResolution(a,e)=="forced"||o.dataParent instanceof oo&&["shared","excluded","forced"].includes(o.dataParent.getConfiguredOrDefaultResolution(a,e)))&&o.getConfiguredOrDefaultResolution(a,e)!="excluded";)o=o.dataParent;e=="axis"&&Gs(r)&&$b(a)?(o.resolutions[e][a]||(o.resolutions[e][a]=new WF(a)),o.resolutions[e][a].pushUnitView(this,r)):e=="scale"&&$i(r)&&(o.resolutions[e][a]||(o.resolutions[e][a]=new VF(a)),o.resolutions[e][a].pushUnitView(this,r))}}getAccessor(e){return this._cache("accessor/"+e,()=>{const n=this.mark.encoding;if(n&&n[e])return this.context.accessorFactory.createAccessor(n[e])})}getFacetAccessor(e){const n=this.getAccessor("sample");return n||super.getFacetAccessor(this)}getCollector(){return this.context.dataFlow.findCollectorByKey(this)}_validateDomainQuery(e){if(Hs(e))throw new Error(`getDomain(${e}), must only be called for primary channels!`);const n=this.mark.encoding[e];if(!un(n))throw new Error("The channel has no scale, cannot get domain!");return n}getConfiguredDomain(e){const n=this._validateDomainQuery(e),r=n&&n.scale&&n.scale.domain;if(r){const i=this.getScaleResolution(n.resolutionChannel??e);return Kw(n.type??"nominal",i.fromComplexInterval(r))}}extractDataDomain(e){const r=this._validateDomainQuery(e).type??"nominal",i=s=>{let f;const u=this.mark.encoding[s];if(u){const l=this.context.accessorFactory.createAccessor(u);if(l)if(f=Kw(r),l.constant)f.extend(l({}));else{const c=this.getCollector();c!=null&&c.completed&&c.visitData(h=>f.extend(l(h)))}}return f};let a=i(e);const o=_d[e];if(o){const s=i(o);s&&a.extendAll(s)}return a}getZoomLevel(){const e=n=>{var r;return((r=this.getScaleResolution(n))==null?void 0:r.getZoomLevel())??1};return Ya.map(e).reduce((n,r)=>n*r,1)}propagateInteractionEvent(e){this.handleInteractionEvent(void 0,e,!0),e.target=this,!e.stopped&&this.handleInteractionEvent(void 0,e,!1)}getDefaultResolution(e,n){return e=="x"?"shared":"independent"}}class rx extends Ow{constructor(e,n,r,i,a){super(e,n,r,i,a),this.spec=e}}function*m0(t,e=[]){for(const[n,r]of t.entries())if(r instanceof Map)for(const i of m0(r,[...e,n]))yield i;else yield[[...e,n],r]}class ix extends tt{get behavior(){return u0}constructor(e){super(),this.params=e??{type:"collect"},this.observers=[],this.facetBatches=void 0,this._init()}_init(){this._data=[],this.facetBatches=new ki([],JSON.stringify),this.facetBatches.set(void 0,this._data)}reset(){super.reset(),this._init()}handle(e){this._data.push(e)}beginBatch(e){jN(e)&&(this._data=[],this.facetBatches.set($t(e.facetId),this._data))}complete(){var i,a;const e=(i=this.params)==null?void 0:i.sort,n=e?tm(e.field,e.order):void 0,r=o=>{n&&o.sort(n)};if((a=this.params.groupby)!=null&&a.length){if(this.facetBatches.size>1)throw new Error("TODO: Support faceted data!");const o=this.params.groupby.map(f=>ke(f)),s=xf(this._data,...o);this.facetBatches.clear();for(const[f,u]of m0(s))this.facetBatches.set(f,u)}for(const o of this.facetBatches.values())r(o);if(this.children.length)for(const[o,s]of this.facetBatches.entries()){if(o){const f={type:"facet",facetId:o};for(const u of this.children)u.beginBatch(f)}for(const f of s)this._propagate(f)}super.complete();for(const o of this.observers)o(this)}getData(){switch(this._checkStatus(),this.facetBatches.size){case 0:return[];case 1:return[...this.facetBatches.values()][0];default:{const e=this.facetBatches;return{[Symbol.iterator]:function*(){for(const r of e.values())for(let i=0;i<r.length;i++)yield r[i]}}}}}visitData(e){this._checkStatus();for(const n of this.facetBatches.values())for(let r=0;r<n.length;r++)e(n[r])}getItemCount(){let e=0;for(const n of this.facetBatches.values())e+=n.length;return e}_checkStatus(){if(!this.completed)throw new Error("Data propagation is not completed! No data are available.")}}class Bl{constructor(){this.ids=[],this.values=[],this.length=0}clear(){this.length=0}push(e,n){let r=this.length++;for(;r>0;){const i=r-1>>1,a=this.values[i];if(n>=a)break;this.ids[r]=this.ids[i],this.values[r]=a,r=i}this.ids[r]=e,this.values[r]=n}pop(){if(this.length===0)return;const e=this.ids[0];if(this.length--,this.length>0){const n=this.ids[0]=this.ids[this.length],r=this.values[0]=this.values[this.length],i=this.length>>1;let a=0;for(;a<i;){let o=(a<<1)+1;const s=o+1;let f=this.ids[o],u=this.values[o];const l=this.values[s];if(s<this.length&&l<u&&(o=s,f=this.ids[s],u=l),u>=r)break;this.ids[a]=f,this.values[a]=u,a=o}this.ids[a]=n,this.values[a]=r}return e}peek(){if(this.length!==0)return this.ids[0]}peekValue(){if(this.length!==0)return this.values[0]}shrink(){this.ids.length=this.values.length=this.length}}class $F extends tt{get behavior(){return er}constructor(e){super(),this.params=e,this.startAccessor=ke(e.start),this.endAccessor=ke(e.end),this.chromAccessor=e.chrom?ke(e.chrom):n=>{},this.weightAccessor=e.weight?ke(e.weight):n=>1,this.as={coverage:e.as||"coverage",start:e.asStart||e.start,end:e.asEnd||e.end,chrom:e.asChrom||e.chrom},this.createSegment=new Function("start","end","coverage","chrom","return {"+Object.entries(this.as).filter(([n,r])=>r).map(([n,r])=>`${JSON.stringify(r)}: ${n}`).join(", ")+"};"),this.ends=new Bl}reset(){super.reset(),this.initialize()}initialize(){const e=this.as.coverage,n=this.as.end,r=this.as.chrom,i=this.startAccessor,a=this.endAccessor,o=this.chromAccessor,s=this.weightAccessor;let f,u,l,c=0,h;const d=this.ends;d.clear();const g=(y,w,E)=>{if(y==w)return;let _=!1;f&&(f[e]===E?(f[n]=w,_=!0):f[e]!=0&&this._propagate(f)),_||(f=this.createSegment(y,w,E,l))},b=()=>{let y;for(;(y=d.peekValue())!==void 0;)g(h,y,c),h=y,c-=d.pop();h=void 0,f&&(this._propagate(f),f=void 0)};this.handle=y=>{const w=i(y);let E;for(;(E=d.peekValue())!==void 0&&E<w;)g(h,E,c),h=E,c-=d.pop();if(r){let D=o(y);D!==u&&(b(),l=D,u=l)}h!==void 0&&g(h,w,c),h=w;const _=s(y);c+=_,d.push(_,a(y))},this.complete=()=>{b(),super.complete()}}}function KF(t,e,n=0,r=t.length){const i=new Bl,a=r-n;let o;for(o=0;o<e&&o<a;o++)i.push(o,t[n+o]);for(;o<a;o++){const u=t[n+o];u>=i.peekValue()&&(i.push(o,u),i.pop())}const s=[];let f;for(;(f=i.pop())!==void 0;)s.push(n+f);return s.reverse()}class JF{constructor(e,n=-1/0,r=1/0){this.maxSize=e,this.lowerLimit=n,this.upperLimit=r;const i=this.maxSize*2+1;this.lowerLimits=new Float64Array(i),this.upperLimits=new Float64Array(i),this.lowerChildren=new Int32Array(i),this.upperChildren=new Int32Array(i),this.reset()}reset(){this.lowerLimits.fill(0),this.upperLimits.fill(0),this.lowerChildren.fill(0),this.upperChildren.fill(0),this.n=1,this.lowerLimits[0]=this.lowerLimit,this.upperLimits[0]=this.upperLimit}_findSlot(e,n,r=0){if(e>=this.lowerLimits[r]&&n<=this.upperLimits[r]){const i=this.lowerChildren[r];if(i){const a=this._findSlot(e,n,i);return a>=0?a:this._findSlot(e,n,this.upperChildren[r])}else return r}else return-1}reserve(e,n){if(n-e<=0)throw new Error("Cannot reserve an empty or negative-size slot!");if(this.n+1>this.lowerLimits.length)return!1;const r=this._findSlot(e,n);if(r<0)return!1;const i=this.n++,a=this.n++;return this.lowerLimits[i]=this.lowerLimits[r],this.upperLimits[i]=e,this.lowerLimits[a]=n,this.upperLimits[a]=this.upperLimits[r],this.lowerChildren[r]=i,this.upperChildren[r]=a,!0}}class ek extends tt{get behavior(){return u0}constructor(e,n){if(super(),this.params=e,this._data=[],this.channel=e.channel??"x",!["x","y"].includes(this.channel))throw new Error("Invalid channel: "+this.channel);this.posAccessor=ke(this.params.pos),this.posBisector=wf(this.posAccessor),this.scoreAccessor=ke(this.params.score),this.widthAccessor=ke(this.params.width),this.laneAccessor=this.params.lane?ke(this.params.lane):i=>0,this.padding=this.params.padding??0,this.reservationMaps=new Map,this.resolution=n.getScaleResolution(this.channel);const r=()=>this._filterAndPropagate();this.schedule=()=>n.context.animator.requestTransition(r),this.resolution.addEventListener("domain",i=>this.schedule()),n._addBroadcastHandler("layoutComputed",()=>this.schedule())}complete(){const e=this.posAccessor;this._data.sort((n,r)=>e(n)-e(r)),this._scores=this._data.map(this.scoreAccessor);for(const n of new Set(this._data.map(this.laneAccessor)))this.reservationMaps.set(n,new JF(200));this.schedule(),super.complete()}_filterAndPropagate(){var o;super.reset();const e=this.resolution.getScale(),n=(o=this.resolution.members[0].view.coords)==null?void 0:o[this.channel=="x"?"width":"height"];if(!n)return;for(const s of this.reservationMaps.values())s.reset();const r=e.domain(),i=70,a=KF(this._scores,i,this.posBisector.left(this._data,r[0]),this.posBisector.right(this._data,r[1]));for(const s of a){const f=this._data[s],u=e(this.posAccessor(f))*n,l=this.widthAccessor(f)/2+this.padding;this.reservationMaps.get(this.laneAccessor(f)).reserve(u-l,u+l)&&this._propagate(f)}super.complete()}reset(){super.reset(),this._data=[],this.groups=new Map}handle(e){this._data.push(e)}}class tk extends tt{constructor(e){super(),this.params=e,this.predicate=void 0}initialize(){this.predicate=zh(this.params.expr,this.getGlobalObject())}handle(e){this.predicate(e)&&this._propagate(e)}}class nk extends tt{get behavior(){return er}constructor(e){super();const n=e.index;if(e.fields){const r=$t(e.fields).map(a=>ke(a)),i=$t(e.as||e.fields);if(r.length!==i.length)throw new Error(`Lengths of "fields" (${r.length}), and "as" (${i.length}) do not match!`);this.handle=a=>{const o=r.map((f,u)=>f(a)??[]),s=o[0].length;for(let f=0;f<s;f++){const u=Object.assign({},a);for(let l=0;l<r.length;l++)u[i[l]]=f<o[l].length?o[l][f]:null;n&&(u[n]=f),this._propagate(u)}}}else this.handle=r=>{for(let i=0;i<r.length;i++){const a=Object.assign({},r[i]);n&&(a[n]=i),this._propagate(a)}}}}const rk="0".charCodeAt(0);function*ik(t,e=","){const n=e.charCodeAt(0);let r=0;for(let i=0;i<t.length;i++){const a=t.charCodeAt(i);a==n?(yield r,r=0):r=r*10+a-rk}yield r}class ak extends tt{get behavior(){return er}constructor(e){super();const n=ke(e.exons??"exons"),r=ke(e.start??"start"),[i,a]=e.as||["exonStart","exonEnd"];this.handle=o=>{let s=r(o),f=s,u=!0;const l=n(o);for(const c of ik(l)){if(u)f=s+c;else{s=f+c;const h=Object.assign({},o);h[i]=f,h[a]=s,this._propagate(h)}u=!u}}}}class ok extends tt{get behavior(){return er}constructor(e){super();const n=$t(e.field).map(a=>ke(a)),r=$t(e.separator),i=$t(e.as||e.field);if(n.length!==r.length||n.length!==i.length)throw new Error(`Lengths of "separator" (${r.length}), "fields" (${n.length}), and "as" (${i.length}) do not match!`);this.handle=a=>{if(n.some(f=>!f(a)))return;const o=n.map((f,u)=>f(a).split(r[u]));sk(o,a);const s=o[0].length;for(let f=0;f<s;f++){const u=Object.assign({},a);for(let l=0;l<n.length;l++)u[i[l]]=o[l][f];this._propagate(u)}}}}function sk(t,e){const n=t.map(r=>r.length);if(!n.every(r=>r==n[0]))throw new Error("Mismatching number of elements in the fields to be split: "+JSON.stringify(e))}class uk extends tt{get behavior(){return oi}constructor(e){super(),this.params=e,this.as=e.as,this.fn=void 0}initialize(){this.fn=zh(this.params.expr,this.getGlobalObject())}handle(e){e[this.as]=this.fn(e),this._propagate(e)}}class ax extends tt{get behavior(){return oi}constructor(e,n){super();const r=e.channel??"x";if(!["x","y"].includes(r))throw new Error("Invalid channel: "+r);const i=n.getScaleResolution(r).getGenome();if(!i)throw new Error("LinearizeGenomicCoordinate transform requires a locus scale!");const a=ke(e.chrom),o=$t(e.pos).map(g=>ke(g)),s=$t(e.as);if(o.length!=s.length)throw new Error('The number of "pos" and "as" elements must be equal!');const f=$t(e.offset);let u;if(f.length==0)u=new Array(o.length).fill(0);else if(f.length==1)u=new Array(o.length).fill(f[0]);else if(f.length==o.length)u=f;else throw new Error(`Invalid "offset" parameter: ${JSON.stringify(e.offset)}!`);const l=new Function("datum","chromOffset","posAccessors",s.map((g,b)=>`datum[${JSON.stringify(g)}] = chromOffset + +posAccessors[${b}](datum) - ${u[b]};`).join(`
259
- `));let c,h=0;const d=g=>{if(g!==c){if(h=i.cumulativeChromPositions.get(g),h===void 0)throw new Error("Unknown chromosome/contig: "+g);c=g}return h};this.handle=g=>{l(g,d(a(g)),o),this._propagate(g)}}}const ox={pages:["Lato-Regular.png"],chars:[{id:87,width:53,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:43.491,chnl:15,x:0,y:0,page:0},{id:124,width:17,height:50,xoffset:0,yoffset:-32.193000000000005,xadvance:10.521,chnl:15,x:0,y:42,page:0},{id:40,width:20,height:49,xoffset:0,yoffset:-32.571000000000005,xadvance:11.214,chnl:15,x:0,y:94,page:0},{id:41,width:19,height:49,xoffset:0,yoffset:-32.571000000000005,xadvance:11.214,chnl:15,x:0,y:145,page:0},{id:36,width:32,height:49,xoffset:0,yoffset:-34.419000000000004,xadvance:24.360000000000003,chnl:15,x:0,y:196,page:0},{id:125,width:21,height:48,xoffset:0,yoffset:-32.193000000000005,xadvance:12.642000000000001,chnl:15,x:0,y:247,page:0},{id:91,width:22,height:48,xoffset:0,yoffset:-32.193000000000005,xadvance:12.852,chnl:15,x:0,y:297,page:0},{id:93,width:19,height:48,xoffset:0,yoffset:-32.193000000000005,xadvance:12.852,chnl:15,x:0,y:347,page:0},{id:123,width:21,height:48,xoffset:0,yoffset:-32.193000000000005,xadvance:12.642000000000001,chnl:15,x:0,y:397,page:0},{id:106,width:19,height:48,xoffset:0,yoffset:-30.639000000000003,xadvance:10.08,chnl:15,x:0,y:447,page:0},{id:81,width:43,height:47,xoffset:0,yoffset:-30.429000000000002,xadvance:33.621,chnl:15,x:21,y:447,page:0},{id:77,width:45,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:38.997,chnl:15,x:66,y:447,page:0},{id:64,width:43,height:44,xoffset:0,yoffset:-28.539,xadvance:35.133,chnl:15,x:23,y:397,page:0},{id:92,width:28,height:43,xoffset:0,yoffset:-30.933000000000003,xadvance:18.984,chnl:15,x:68,y:397,page:0},{id:47,width:28,height:43,xoffset:0,yoffset:-30.933000000000003,xadvance:18.984,chnl:15,x:98,y:397,page:0},{id:109,width:42,height:32,xoffset:0,yoffset:-21.609,xadvance:34.545,chnl:15,x:113,y:447,page:0},{id:119,width:42,height:31,xoffset:0,yoffset:-21.315,xadvance:32.991,chnl:15,x:157,y:447,page:0},{id:42,width:25,height:42,xoffset:0,yoffset:-31.626,xadvance:17.85,chnl:15,x:128,y:397,page:0},{id:37,width:42,height:41,xoffset:0,yoffset:-30.387,xadvance:33.663000000000004,chnl:15,x:155,y:397,page:0},{id:79,width:42,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:33.621,chnl:15,x:199,y:397,page:0},{id:102,width:24,height:41,xoffset:0,yoffset:-30.534000000000002,xadvance:14.721,chnl:15,x:243,y:397,page:0},{id:100,width:31,height:41,xoffset:0,yoffset:-30.933000000000003,xadvance:23.520000000000003,chnl:15,x:269,y:397,page:0},{id:98,width:32,height:41,xoffset:0,yoffset:-30.933000000000003,xadvance:23.520000000000003,chnl:15,x:302,y:397,page:0},{id:56,width:32,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:24.360000000000003,chnl:15,x:336,y:397,page:0},{id:38,width:40,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:29.904000000000003,chnl:15,x:370,y:397,page:0},{id:108,width:17,height:41,xoffset:0,yoffset:-30.933000000000003,xadvance:9.912,chnl:15,x:412,y:397,page:0},{id:107,width:31,height:41,xoffset:0,yoffset:-30.933000000000003,xadvance:21.336000000000002,chnl:15,x:431,y:397,page:0},{id:48,width:33,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:24.360000000000003,chnl:15,x:464,y:397,page:0},{id:71,width:38,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:30.681,chnl:15,x:21,y:347,page:0},{id:83,width:31,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:22.785,chnl:15,x:61,y:347,page:0},{id:63,width:27,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:18.795,chnl:15,x:94,y:347,page:0},{id:105,width:18,height:41,xoffset:0,yoffset:-30.639000000000003,xadvance:10.08,chnl:15,x:123,y:347,page:0},{id:51,width:32,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:24.360000000000003,chnl:15,x:143,y:347,page:0},{id:104,width:31,height:41,xoffset:0,yoffset:-30.933000000000003,xadvance:23.436,chnl:15,x:177,y:347,page:0},{id:67,width:37,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:28.056,chnl:15,x:210,y:347,page:0},{id:88,width:37,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:27.258000000000003,chnl:15,x:249,y:347,page:0},{id:68,width:40,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:31.941000000000003,chnl:15,x:288,y:347,page:0},{id:70,width:32,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:23.751,chnl:15,x:330,y:347,page:0},{id:34,width:23,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:15.561000000000002,chnl:15,x:364,y:347,page:0},{id:72,width:38,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:32.067,chnl:15,x:389,y:347,page:0},{id:73,width:18,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:11.760000000000002,chnl:15,x:429,y:347,page:0},{id:74,width:24,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:17.745,chnl:15,x:449,y:347,page:0},{id:75,width:38,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:27.825000000000003,chnl:15,x:24,y:297,page:0},{id:76,width:31,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:21.567,chnl:15,x:475,y:347,page:0},{id:66,width:35,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:27.153000000000002,chnl:15,x:64,y:297,page:0},{id:78,width:38,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:32.067,chnl:15,x:101,y:297,page:0},{id:33,width:18,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:11.298,chnl:15,x:141,y:297,page:0},{id:80,width:34,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:25.221,chnl:15,x:161,y:297,page:0},{id:65,width:38,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:28.434,chnl:15,x:197,y:297,page:0},{id:82,width:36,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:26.313000000000002,chnl:15,x:237,y:297,page:0},{id:35,width:33,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:275,y:297,page:0},{id:84,width:34,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.801000000000002,chnl:15,x:310,y:297,page:0},{id:85,width:37,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:30.891000000000002,chnl:15,x:346,y:297,page:0},{id:86,width:38,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:28.434,chnl:15,x:385,y:297,page:0},{id:39,width:16,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:8.568000000000001,chnl:15,x:425,y:297,page:0},{id:69,width:32,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.255000000000003,chnl:15,x:443,y:297,page:0},{id:89,width:36,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:26.208000000000002,chnl:15,x:23,y:247,page:0},{id:90,width:34,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:25.284000000000002,chnl:15,x:477,y:297,page:0},{id:49,width:31,height:40,xoffset:0,yoffset:-30.156000000000002,xadvance:24.360000000000003,chnl:15,x:61,y:247,page:0},{id:50,width:32,height:40,xoffset:0,yoffset:-30.429000000000002,xadvance:24.360000000000003,chnl:15,x:94,y:247,page:0},{id:57,width:32,height:40,xoffset:0,yoffset:-30.429000000000002,xadvance:24.360000000000003,chnl:15,x:128,y:247,page:0},{id:94,width:32,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:162,y:247,page:0},{id:96,width:21,height:40,xoffset:0,yoffset:-30.429000000000002,xadvance:16.8,chnl:15,x:196,y:247,page:0},{id:55,width:33,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:219,y:247,page:0},{id:54,width:33,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:254,y:247,page:0},{id:53,width:32,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:289,y:247,page:0},{id:52,width:33,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:323,y:247,page:0},{id:103,width:31,height:39,xoffset:0,yoffset:-21.630000000000003,xadvance:21.84,chnl:15,x:358,y:247,page:0},{id:112,width:32,height:39,xoffset:0,yoffset:-21.651,xadvance:23.541,chnl:15,x:391,y:247,page:0},{id:113,width:31,height:39,xoffset:0,yoffset:-21.651,xadvance:23.520000000000003,chnl:15,x:425,y:247,page:0},{id:116,width:25,height:39,xoffset:0,yoffset:-28.182000000000002,xadvance:15.057,chnl:15,x:458,y:247,page:0},{id:121,width:31,height:38,xoffset:0,yoffset:-21.273,xadvance:21.651,chnl:15,x:34,y:196,page:0},{id:59,width:18,height:36,xoffset:0,yoffset:-20.706,xadvance:10.983,chnl:15,x:485,y:247,page:0},{id:43,width:32,height:34,xoffset:0,yoffset:-24.486,xadvance:24.360000000000003,chnl:15,x:67,y:196,page:0},{id:60,width:30,height:33,xoffset:0,yoffset:-23.331000000000003,xadvance:24.360000000000003,chnl:15,x:101,y:196,page:0},{id:62,width:31,height:33,xoffset:0,yoffset:-23.331000000000003,xadvance:24.360000000000003,chnl:15,x:133,y:196,page:0},{id:117,width:30,height:32,xoffset:0,yoffset:-21.273,xadvance:23.415000000000003,chnl:15,x:166,y:196,page:0},{id:99,width:29,height:32,xoffset:0,yoffset:-21.609,xadvance:20.055,chnl:15,x:198,y:196,page:0},{id:110,width:31,height:32,xoffset:0,yoffset:-21.609,xadvance:23.436,chnl:15,x:229,y:196,page:0},{id:111,width:32,height:32,xoffset:0,yoffset:-21.609,xadvance:23.814,chnl:15,x:262,y:196,page:0},{id:126,width:32,height:26,xoffset:0,yoffset:-16.128,xadvance:24.360000000000003,chnl:15,x:201,y:447,page:0},{id:101,width:31,height:32,xoffset:0,yoffset:-21.609,xadvance:22.176000000000002,chnl:15,x:296,y:196,page:0},{id:114,width:25,height:32,xoffset:0,yoffset:-21.651,xadvance:15.288,chnl:15,x:329,y:196,page:0},{id:115,width:27,height:32,xoffset:0,yoffset:-21.609,xadvance:18.186,chnl:15,x:356,y:196,page:0},{id:97,width:28,height:32,xoffset:0,yoffset:-21.651,xadvance:20.874000000000002,chnl:15,x:385,y:196,page:0},{id:118,width:31,height:31,xoffset:0,yoffset:-21.273,xadvance:21.672,chnl:15,x:415,y:196,page:0},{id:61,width:31,height:29,xoffset:0,yoffset:-19.089000000000002,xadvance:24.360000000000003,chnl:15,x:448,y:196,page:0},{id:120,width:30,height:31,xoffset:0,yoffset:-21.273,xadvance:20.916,chnl:15,x:21,y:145,page:0},{id:58,width:18,height:31,xoffset:0,yoffset:-20.706,xadvance:10.5,chnl:15,x:53,y:145,page:0},{id:122,width:28,height:31,xoffset:0,yoffset:-21.273,xadvance:18.984,chnl:15,x:73,y:145,page:0},{id:95,width:28,height:16,xoffset:0,yoffset:0,xadvance:19.278000000000002,chnl:15,x:235,y:447,page:0},{id:45,width:23,height:24,xoffset:0,yoffset:-14.175,xadvance:15.603000000000002,chnl:15,x:481,y:196,page:0},{id:44,width:17,height:21,xoffset:0,yoffset:-4.956,xadvance:9.534,chnl:15,x:103,y:145,page:0},{id:46,width:18,height:15,xoffset:0,yoffset:-4.956,xadvance:9.912,chnl:15,x:0,y:497,page:0},{id:32,width:0,height:0,xoffset:0,yoffset:0,xadvance:10.752,chnl:15,x:20,y:497,page:0}],info:{face:"Lato Regular",size:42,bold:0,italic:0,charset:[" ","!",'"',"#","$","%","&","'","(",")","*","+",",","-",".","/","0","1","2","3","4","5","6","7","8","9",":",";","<","=",">","?","@","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","[","\\","]","^","_","`","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","{","|","}","~"],unicode:1,stretchH:100,smooth:1,aa:1,padding:[0,0,0,0],spacing:[2,2]},common:{lineHeight:50.400000000000006,base:41.454,scaleW:512,scaleH:512,pages:1,packed:0,alphaChnl:0,redChnl:0,greenChnl:0,blueChnl:0},kernings:[]};class fk extends tt{get behavior(){return oi}constructor(e){super();const n=a0(ox),r=ke(e.field),i=e.as,a=e.fontSize;this.handle=o=>{const s=r(o);s!==void 0?o[i]=n.measureWidth(s,a):o[i]=0,this._propagate(o)}}}const lk=65536;class ck extends tt{get behavior(){return oi}constructor(e){super(),this.params=e}reset(){super.reset(),this.initialize()}initialize(){const e=this.params,n=e.as||"lane",r=Lt(e.spacing)?e.spacing:1,i=ke(e.start),a=ke(e.end);if(!e.preference!=!e.preferredOrder)throw new Error('Must specify both "preference" and "preferredOrder"');if(e.preference){const o=new Float64Array(lk),s=ke(e.preference),f=e.preferredOrder;let u=1/0;this.handle=l=>{const c=i(l);c<u&&o.fill(-1/0),u=c;const h=f.indexOf(s(l));let d=-1;if(h>=0&&o[h]<c)d=h;else{const g=i(l);for(d=0;d<o.length&&!(o[d]<g);d++);if(d>=o.length)throw new Error("Out of lanes!")}o[d]=a(l)+r,l[n]=d,this._propagate(l)}}else{const o=new Bl,s=new Bl;let f=-1/0,u=0;this.handle=l=>{const c=i(l);for(;o.length&&(o.peekValue()<=c||c<f);){const d=o.pop();s.push(d,d)}f=c;let h=s.pop();h===void 0&&(h=u++),l[n]=h,this._propagate(l),o.push(h,a(l)+r)}}}}class hk extends tt{get behavior(){return er}constructor(e){if(super(),e.as&&e.as.length!=e.fields.length)throw new Error('"fields" and "as" have unequal lengths!');const n=e.fields.map(i=>ke(i)),r=e.as?e.as:n.map(Je);this.handle=i=>{const a={};for(let o=0;o<n.length;o++)a[r[o]]=n[o](i);this._propagate(a)}}}class dk extends tt{get behavior(){return oi}constructor(e){super();const n=new RegExp(e.regex),r=typeof e.as=="string"?[e.as]:e.as,i=ke(e.field);this.handle=a=>{const o=i(a);if(Ke(o)){const s=o.match(n);if(s){if(s.length-1!=r.length)throw new Error('The number of RegEx groups and the length of "as" do not match!');for(let f=0;f<r.length;f++)a[r[f]]=s[f+1]}else if(e.skipInvalidInput)for(let f=0;f<r.length;f++)a[r[f]]=void 0;else throw new Error(`"${o}" does not match the given regex: ${n.toString()}`)}else if(!e.skipInvalidInput)throw new Error(`Trying to match a non-string field. Encountered type: ${typeof o}, field content: "${o}".`);this._propagate(a)}}}class gk extends tt{get behavior(){return er}constructor(e){super();const n=$t(e.columnRegex).map(h=>new RegExp(h)),r=$t(e.asValue);if(n.length!=r.length)throw new Error('Lengths of "columnRegex" and "as" are not equal!');const i=e.skipRegex?new RegExp(e.skipRegex):void 0,a=e.asKey||"sample";let o,s,f;const u=h=>{var y;const d=Object.keys(h),g=new Map;for(const[w,E]of n.entries())for(const _ of d){const D=(y=E.exec(_))==null?void 0:y[1];if(D!==void 0){let T=g.get(D);T||(T=[],g.set(D,T)),T[w]=_}}o=[...g.entries()],s=d.filter(w=>!n.some(E=>E.test(w))&&!(i&&i.test(w)));const b=[...s.map(w=>JSON.stringify(w)+": datum["+JSON.stringify(w)+"]"),JSON.stringify(a)+": sampleId",...r.map(w=>JSON.stringify(w)+": null")];f=new Function("datum","sampleId",`return {
244
+ */const NB="locus",LB="index";var OB=5;function zB(e){const t=e.type;return!e.bins&&(t===Ta||t===gs||t===ms)}function yy(e){return xt(e)&&![Ln,LB,NB].includes(e)}function wy(e){return e||{warn:(t,...n)=>console.warn(t,...n)}}var UB=Jl(["set","modified","clear","type","scheme","schemeExtent","schemeCount","domain","domainMin","domainMid","domainMax","domainRaw","domainImplicit","nice","zero","bins","range","rangeStep","round","reverse","interpolate","interpolateGamma","zoom","fp64","name"]);function vy(e,t,n){n=wy(n);for(const r in e)if(!UB[r]){if(r==="padding"&&yy(t.type))continue;Dt(t[r])?t[r](e[r]):n.warn("Unsupported scale property: "+r)}YB(t,e,WB(t,e,jB(t,e,n)))}function GB(e,t){const n=HB(e),r=Ae(n);if(!r)throw new Error("Unknown scale type: "+n);const i=r();return!e.domain&&xt(i.type)&&(e.domain=[0,0]),vy(e,i,t),i}function HB(e){var t=e.type,n="",r;return t===Ln?Ln+"-"+Ta:(VB(e)&&(r=e.rawDomain?e.rawDomain.length:e.domain?e.domain.length+ +(e.domainMid!=null):0,n=r===2?Ln+"-":r===3?Ia+"-":""),(n+t||Ta).toLowerCase())}function VB(e){const t=e.type;return xt(t)&&t!==gb&&t!==mb&&(e.scheme||e.range&&e.range.length&&e.range.every(Qe))}function jB(e,t,n){if(!e.domain)return 0;n=wy(n);var r=qB(e,t.domainRaw,n);if(r>-1)return r;var i=t.domain,a=e.type,o=t.zero||t.zero===void 0&&zB(e),s,f;return i?(yy(a)&&t.padding&&i[0]!==bn(i)&&(i=ZB(a,i,t.range,t.padding,t.exponent,t.constant)),(o||t.domainMin!=null||t.domainMax!=null||t.domainMid!=null)&&(s=(i=i.slice()).length-1||1,o&&(i[0]>0&&(i[0]=0),i[s]<0&&(i[s]=0)),t.domainMin!=null&&(i[0]=t.domainMin),t.domainMax!=null&&(i[s]=t.domainMax),t.domainMid!=null&&(f=t.domainMid,(f<i[0]||f>i[s])&&n.warn("Scale domainMid exceeds domain min or max.",f),i.splice(s,0,f))),e.domain(xy(a,i,n)),a===td&&e.unknown(t.domainImplicit?Ah:void 0),t.nice&&e.nice&&e.nice(t.nice!==!0&&my(e,t.nice)||null),i.length):0}function qB(e,t,n){return t?(e.domain(xy(e.type,t,n)),t.length):-1}function ZB(e,t,n,r,i,a){var o=Math.abs(bn(n)-n[0]),s=o/(o-2*r),f=e===Pr?Dg(t,null,s):e===ms?Fc(t,null,s,.5):e===gs?Fc(t,null,s,i||1):e===Lf?KE(t,null,s,a||1):Bg(t,null,s);return t=t.slice(),t[0]=f[0],t[t.length-1]=f[1],t}function xy(e,t,n){if(Eb(e)){var r=Math.abs(t.reduce(function(i,a){return i+(a<0?-1:a>0?1:0)},0));r!==t.length&&n.warn("Log scale domain includes zero: "+Kl(t))}return t}function WB(e,t,n){let r=t.bins;if(r&&!qt(r)){const i=(r.start==null||r.stop==null)&&e.domain(),a=r.start==null?i[0]:r.start,o=r.stop==null?bn(i):r.stop,s=r.step;s||Ye("Scale bins parameter missing step property."),r=Po(a,o+s,s)}return r?e.bins=r:e.bins&&delete e.bins,e.type===rd&&(r?!t.domain&&!t.domainRaw&&(e.domain(r),n=r.length):e.bins=e.domain()),n}function YB(e,t,n){var r=e.type,i=t.round||!1,a=t.range;if(t.rangeStep!=null)a=QB(r,t,n);else if(t.scheme&&(a=XB(r,t,n),Dt(a))){if(e.interpolator)return e.interpolator(a);Ye(`Scale type ${r} does not support interpolating color schemes.`)}if(a&&zf(r))return e.interpolator(Uf(Xd(a,t.reverse),t.interpolate,t.interpolateGamma));a&&t.interpolate&&e.interpolate?e.interpolate(_b(t.interpolate,t.interpolateGamma)):Dt(e.round)?e.round(i):Dt(e.rangeRound)&&e.interpolate(i?ds:Fr),a&&e.range(Xd(a,t.reverse))}function QB(e,t,n){e!==wb&&e!==nd&&Ye("Only band and point scales support rangeStep.");var r=(t.paddingOuter!=null?t.paddingOuter:t.padding)||0,i=e===nd?1:(t.paddingInner!=null?t.paddingInner:t.padding)||0;return[0,t.rangeStep*Jh(n,i,r)]}function XB(e,t,n){var r=t.schemeExtent,i,a;return qt(t.scheme)?a=Uf(t.scheme,t.interpolate,t.interpolateGamma):(i=t.scheme.toLowerCase(),a=ad(i),a||Ye(`Unrecognized scheme name: ${t.scheme}`)),n=e===yb?n+1:e===rd?n-1:e===ed||e===bb?+t.schemeCount||OB:n,zf(e)?Ay(a,r,t.reverse):Dt(a)?m8(Ay(a,r),n):e===td?a:a.slice(0,n)}function Ay(e,t,n){return Dt(e)&&(t||n)?g8(e,Xd(t||[0,1],n)):e}function Xd(e,t){return t?e.slice().reverse():e}const Ey=pt(",d");function $B(e,t){return e.chrom+":"+Ey(Math.floor(e.pos+1))+"-"+(e.chrom!=t.chrom?t.chrom+":":"")+Ey(Math.ceil(t.pos))}const KB="https://genomespy.app/data/genomes/";class JB{constructor(t){if(this.config=t,!this.config.contigs&&typeof this.config.name!="string")throw new Error("No name has been defined for the genome assembly!");this.chromosomes=[],this.cumulativeChromPositions=new Map,this.chromosomesByName=new Map,this.startByIndex=[],this.totalSize=0,this.config.contigs&&this.setChromSizes(this.config.contigs)}get name(){return this.config.name}async load(t){if(!this.config.contigs){this.config.baseUrl?this.baseUrl=/^http(s)?/.test(this.config.baseUrl)?this.config.baseUrl:t+"/"+this.config.baseUrl:this.baseUrl=KB;try{this.setChromSizes(eD(await gf({baseURL:this.baseUrl}).load(`${this.config.name}/${this.name}.chrom.sizes`)))}catch(n){throw new Error(`Could not load chrom sizes: ${n.message}`)}}}hasChrPrefix(){return this.chromosomes.some(t=>t.name.startsWith("chr"))}setChromSizes(t){let n=0;this.startByIndex=[0];for(let r=0;r<t.length;r++){this.startByIndex.push(n);const i=t[r].size,a={...t[r],continuousStart:n,continuousEnd:n+i,continuousInterval:[n,n+i],index:r,number:r+1,odd:!(r&1)};this.chromosomes.push(a);const o=a.name.replace(/^chr/i,"");for(const s of["chr"+o,"CHR"+o,"Chr"+o,a.number,""+a.number,o,a.name])this.cumulativeChromPositions.set(s,n),this.chromosomesByName.set(s,a);n+=a.size}this.totalSize=n}getExtent(){return[0,this.totalSize]}toContinuous(t,n){let r=this.cumulativeChromPositions.get(t);if(r===void 0)throw new Error("Unknown chromosome/contig: "+t);return r+ +n}toChromosome(t){if(t>this.totalSize)return;t=Math.floor(t);const n=ba(this.startByIndex,t)-1;if(n>0&&n<=this.chromosomes.length)return this.chromosomes[n-1]}toChromosomal(t){const n=this.toChromosome(t);if(n)return{chrom:n.name,pos:Math.floor(t)-n.continuousStart}}getChromosome(t){return this.chromosomesByName.get(t)}formatInterval(t){return $B(...this.toChromosomalInterval(t))}toChromosomalInterval(t){const n=this.toChromosomal(t[0]+.5),r=this.toChromosomal(t[1]-.5);return r.pos+=1,[n,r]}toContinuousInterval(t){var i;let[n,r]=t;return r||(r=n),[this.toContinuous(n.chrom,n.pos??0),this.toContinuous(r.chrom,r.pos??((i=this.chromosomesByName.get(r.chrom))==null?void 0:i.size))]}toDiscreteChromosomeIntervals(t){const n=t[0],r=t[1],i=[];if(n.chrom===r.chrom)i.push({chrom:n.chrom,startPos:n.pos,endPos:r.pos});else{const a=this.chromosomes.findIndex(s=>s.name===n.chrom),o=this.chromosomes.findIndex(s=>s.name===r.chrom);i.push({chrom:n.chrom,startPos:n.pos,endPos:this.chromosomes[a].size});for(let s=a+1;s<o;s++)i.push({chrom:this.chromosomes[s].name,startPos:0,endPos:this.chromosomes[s].size});i.push({chrom:r.chrom,startPos:0,endPos:r.pos})}return i}continuousToDiscreteChromosomeIntervals(t){return this.toDiscreteChromosomeIntervals([this.toChromosomal(t[0]),this.toChromosomal(t[1])])}parseInterval(t){const n=t.match(/^(chr[0-9A-Z]+)(?::([0-9,]+)(?:-(?:(chr[0-9A-Z]+):)?([0-9,]+))?)?$/);if(n){const r=n[1];if(n.slice(2).every(s=>s===void 0)){const s=this.getChromosome(r);return s?[s.continuousStart,s.continuousEnd]:void 0}const i=n[3]||r,a=parseInt(n[2].replace(/,/g,"")),o=n[4]!==void 0?parseInt(n[4].replace(/,/g,"")):a;return[this.toContinuous(r,a-1),this.toContinuous(i,o)]}}}function eD(e){return b_(e).filter(t=>/^chr[0-9A-Z]+$/.test(t[0])).map(([t,n])=>({name:t,size:parseInt(n)}))}function _y(e){return Zt(e)&&"chrom"in e}function tD(e){return e.every(_y)}class Ns extends Array{constructor(){super(),this.type=void 0}extend(t){return this}extendAll(t){if(t instanceof Ns&&t.type!=this.type)throw new Error(`Cannot combine different types of domains: ${this.type} and ${t.type}`);for(const n of t)this.extend(n);return this}extendAllWithAccessor(t,n){for(const r of t)this.extend(n(r));return this}}class $d extends Ns{constructor(){super(),this.type="quantitative"}extend(t){return t==null||Number.isNaN(t)?this:(t=+t,this.length?t<this[0]?this[0]=t:t>this[1]&&(this[1]=t):(this.push(t),this.push(t)),this)}}class Sy extends Ns{constructor(){super(),this.type="ordinal",this.uniqueValues=new Set}extend(t){return t==null||Number.isNaN(t)?this:(this.uniqueValues.has(t)||(this.uniqueValues.add(t),this.push(t)),this)}}class Cy extends Sy{constructor(){super(),this.type="nominal"}}class nD extends Ns{constructor(t){super();let n=0;for(let r=1;r<t.length;r++)n+=Math.sign(t[r]-t[r-1]);if(Math.abs(n)!=t.length-1)throw new Error("Piecewise domain must be strictly increasing or decreasing: "+JSON.stringify(t));t.forEach(r=>this.push(r))}extend(t){if(this.includes(t))return this;throw new Error("Piecewise domains are immutable and cannot be unioned!")}}const Ty={quantitative:$d,index:$d,locus:$d,nominal:Cy,ordinal:Sy};function Iy(e,t){if(e=="quantitative"&&rD(t)){const n=new nD(t);return n.type=e,n}else if(Ty[e]){const n=new Ty[e];return n.type=e,t&&n.extendAll(t),n}throw new Error("Unknown type: "+e)}function rD(e){return e&&e.length>0&&e.length!=2&&e.every(t=>typeof t=="number")}function iD(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}function aD(e,t,n){return e*Math.pow(t/e,n)}Ae("index",Qd,["continuous"]),Ae("locus",TB,["continuous"]),Ae("null",Gf,[]);const ky="quantitative",By="ordinal",Dy="nominal",Fy="locus",oD="index";class sD{constructor(t){ce(this,$n);ce(this,xc);ce(this,So);ce(this,mr);ce(this,Ml);ce(this,Ac);ce(this,mg);ce(this,Nl);ce(this,gr,void 0);ce(this,_o,new Set);ce(this,yt,void 0);this.channel=t,this.members=[],this.type=null,this.name=void 0}addEventListener(t,n){if(t!="domain")throw new Error("Unsupported event type: "+t);$(this,_o).add(n)}removeEventListener(t,n){if(t!="domain")throw new Error("Unsupported event type: "+t);$(this,_o).delete(n)}pushUnitView(t,n){var o;const r=od(t,n),i=r.type,a=(o=r==null?void 0:r.scale)==null?void 0:o.name;if(a){if(this.name!==void 0&&a!=this.name)throw new Error(`Shared scales have conflicting names: "${a}" vs. "${this.name}"!`);this.name=a}if(!this.type)this.type=i;else if(i!==this.type&&!Es(n))throw new Error(`Can not use shared scale for different data types: ${this.type} vs. ${i}. Use "resolve: independent" for channel ${this.channel}`);this.members.push({view:t,channel:n})}isExplicitDomain(){return!!this.getConfiguredDomain()}isDomainInitialized(){const t=$(this,yt);if(!t)return!1;const n=t.domain();return xt(t.type)?n.length>2||n.length==2&&(n[0]!==0||n[1]!==0):n.length>0}getScaleProps(){return Ga(this,"scaleProps",()=>{const t=ie(this,xc,OE).call(this);if(t===null||t.type=="null")return{type:"null"};const n={...ie(this,Ac,zE).call(this,this.type),...t};n.type||(n.type=lD(this.channel,this.type));const r=ie(this,So,kc).call(this);return r&&r.length>0?n.domain=r:Mr(n.type)&&(n.domain=new Cy),!n.domain&&n.domainMid!==void 0&&(n.domain=[n.domainMin??0,n.domainMax??1]),this.channel=="y"&&Mr(n.type)&&n.reverse==null&&(n.reverse=!0),n.range&&n.scheme&&delete n.scheme,!("zoom"in n)&&["index","locus"].includes(n.type)&&(n.zoom=!0),fD(n,this.channel),n})}getConfiguredDomain(){return ie(this,Nl,_g).call(this,t=>Es(t.channel)?void 0:t.view.getConfiguredDomain(t.channel))}getDataDomain(){return ie(this,Nl,_g).call(this,t=>Es(t.channel)?void 0:t.view.extractDataDomain(t.channel))}reconfigure(){if($(this,yt)&&$(this,yt).type!="null"){const t=this.isDomainInitialized(),n=$(this,yt).domain();ty(this,"scaleProps");const r=this.getScaleProps();if(vy(r,$(this,yt)),xt($(this,yt).type)&&mn(this,gr,ie(this,Ml,Eg).call(this)),!t){ie(this,$n,pi).call(this);return}const i=$(this,yt).domain();yf(i,n)||(this.isZoomable()?$(this,yt).domain(n):ie(this,mr,pa).call(this)?($(this,yt).domain(n),this.zoomTo(i,500)):ie(this,$n,pi).call(this))}}getScale(){if($(this,yt))return $(this,yt);const t=this.getScaleProps(),n=GB(t);return mn(this,yt,n),IB(n)&&n.genome(this.getGenome()),xt(n.type)&&mn(this,gr,ie(this,Ml,Eg).call(this)),n}getDomain(){return this.getScale().domain()}getComplexDomain(){var t;return((t=this.getGenome())==null?void 0:t.toChromosomalInterval(this.getDomain()))??this.getDomain()}isZoomed(){return ie(this,mr,pa).call(this)&&yf(ie(this,So,kc).call(this),this.getDomain())}isZoomable(){return ie(this,mr,pa).call(this)&&!!this.getScaleProps().zoom}zoom(t,n,r){if(!ie(this,mr,pa).call(this))return!1;const i=this.getScale(),a=i.domain();let o=[...a],s=i.invert(n);switch(this.getScaleProps().reverse&&(r=-r),"align"in i&&(s+=i.align()),i.type){case"linear":case"index":case"locus":o=QE(o,r||0),o=Bg(o,s,t);break;case"log":o=XE(o,r||0),o=Dg(o,s,t);break;case"pow":case"sqrt":{const f=i;o=$E(o,r||0,f.exponent()),o=Fc(o,s,t,f.exponent());break}default:throw new Error("Zooming is not implemented for: "+i.type)}return $(this,gr)&&(o=JE(o,$(this,gr)[0],$(this,gr)[1])),[0,1].some(f=>o[f]!=a[f])?(i.domain(o),ie(this,$n,pi).call(this),!0):!1}async zoomTo(t,n=!1){var s;if(Xl(n)&&(n=n?700:0),!ie(this,mr,pa).call(this))throw new Error("Not a zoomable scale!");const r=this.fromComplexInterval(t),i=(s=this.members[0])==null?void 0:s.view.context.animator,a=this.getScale(),o=a.domain();if(n>0&&o.length==2){const f=o[1]-o[0],l=o[0]+f/2,u=r[1]-r[0],c=r[0]+u/2;await i.transition({duration:n,easingFunction:iD,onUpdate:h=>{const d=aD(f,u,h),p=(f-d)/(f-u),b=p*c+(1-p)*l;a.domain([b-d/2,b+d/2]),ie(this,$n,pi).call(this)}}),a.domain(r),ie(this,$n,pi).call(this)}else a.domain(r),i==null||i.requestRender(),ie(this,$n,pi).call(this)}resetZoom(){if(!ie(this,mr,pa).call(this))throw new Error("Not a zoomable scale!");const t=this.getDomain(),n=ie(this,So,kc).call(this);return[0,1].some(r=>n[r]!=t[r])?($(this,yt).domain(n),ie(this,$n,pi).call(this),!0):!1}getZoomLevel(){return this.isZoomable()?$l($(this,gr))/$l(this.getScale().domain()):1}getGenome(){var n;if(this.type!=="locus")return;const t=(n=this.members[0].view.context.genomeStore)==null?void 0:n.getGenome();if(!t)throw new Error("No genome has been defined!");return t}invertToComplex(t){const n=this.getScale();if("invert"in n){const r=n.invert(t);return this.toComplex(r)}else throw new Error("The scale does not support inverting!")}toComplex(t){const n=this.getGenome();return n?n.toChromosomal(t):t}fromComplex(t){return _y(t)?this.getGenome().toContinuous(t.chrom,t.pos):t}fromComplexInterval(t){return this.type==="locus"&&tD(t)?this.getGenome().toContinuousInterval(t):t}}gr=new WeakMap,_o=new WeakMap,yt=new WeakMap,$n=new WeakSet,pi=function(){for(const t of $(this,_o).values())t({type:"domain",scaleResolution:this})},xc=new WeakSet,OE=function(){return Ga(this,"mergedScaleProps",()=>{const t=this.members.map(n=>od(n.view,n.channel).scale).filter(n=>n!==void 0);return gu(t,"scale",["domain"])})},So=new WeakSet,kc=function(){return this.getConfiguredDomain()??(this.type==Fy?this.getGenome().getExtent():this.getDataDomain())},mr=new WeakSet,pa=function(){const t=this.getScale().type;return xt(t)},Ml=new WeakSet,Eg=function(){const t=this.getScaleProps(),n=t.zoom;if(uD(n)&&qt(n.extent))return this.fromComplexInterval(n.extent);if(n)return t.type=="locus"?this.getGenome().getExtent():$(this,yt).domain()},Ac=new WeakSet,zE=function(t){const n=this.channel,r={};return this.isExplicitDomain()&&(r.zero=!1),As(n)?r.nice=!this.isExplicitDomain():Mi(n)?r.scheme=t==Dy?"tableau10":t==By?"blues":"viridis":Hf(n)?r.range=n=="shape"?["circle","square","triangle-up","cross","diamond"]:[]:n=="size"?r.range=[0,400]:n=="angle"&&(r.range=[0,360]),r},mg=new WeakSet,rz=function(){return this.members.map(t=>t.view.getPathString()).join(", ")},Nl=new WeakSet,_g=function(t){const n=this.members.filter(r=>!r.view.getLayoutAncestors().some(i=>!i.options.contributesToScaleDomain)).map(t).filter(r=>!!r);if(n.length)return n.reduce((r,i)=>r.extendAll(i))};function lD(e,t){if(t==oD||t==Fy){if(kb(e))return t;throw new Error(`${e} does not support ${t} data type. Only positional channels do.`)}const n={x:["band","band","linear"],y:["band","band","linear"],size:[void 0,"point","linear"],opacity:[void 0,"point","linear"],fillOpacity:[void 0,"point","linear"],strokeOpacity:[void 0,"point","linear"],color:["ordinal","ordinal","linear"],fill:["ordinal","ordinal","linear"],stroke:["ordinal","ordinal","linear"],strokeWidth:[void 0,void 0,"linear"],shape:["ordinal","ordinal",void 0],dx:[void 0,void 0,"null"],dy:[void 0,void 0,"null"],angle:[void 0,void 0,"linear"]},i=["sample"].includes(e)?"null":n[e]?n[e][[Dy,By,ky].indexOf(t)]:t==ky?"linear":"ordinal";if(i===void 0)throw new Error(`Channel "${e}" is not compatible with "${t}" data type. Use of a proper scale may be needed.`);return i}function fD(e,t){As(t)&&e.type!=="ordinal"&&(e.range=[0,1]),t=="opacity"&&xt(e.type)&&(e.clamp=!0)}function uD(e){return Zt(e)}function Kd(e){const t=new Set;function n(r){for(const i of Object.values(r.resolutions.scale))t.add(i)}for(const r of Wt(e)){r.visit(n);for(const i of r.getDataAncestors()){if(!i.options.contributesToScaleDomain)break;n(i)}}t.forEach(r=>r.reconfigure())}function Jd(...e){for(const t of e)if(t!==void 0)return t}class cD{constructor(t){this.channel=t,this.members=[]}get scaleResolution(){var t;return(t=ns(this.members))==null?void 0:t.view.getScaleResolution(this.channel)}pushUnitView(t,n){const r=t.getScaleResolution(this.channel);if(!r)throw new Error("Cannot find a scale resolution!");if(this.scaleResolution&&r!==this.scaleResolution)throw new Error("Shared axes must have a shared scale!");this.members.push({view:t,channel:n})}getAxisProps(){return Ga(this,"axisProps",()=>{const t=this.members.map(n=>{const r=n.view.mark.encoding[n.channel];return"axis"in r&&r.axis});return t.length>0&&t.some(n=>n===null)?null:gu(t.filter(n=>n!==void 0),"axis",["title"])})}getTitle(){const t=a=>{var s;const o=od(a.view,a.channel);if(!xn(o))return{member:a,explicitTitle:Jd("axis"in o?(s=o.axis)==null?void 0:s.title:void 0,o.title),implicitTitle:Jd(vs(o)?o.field:void 0,sd(o)?o.expr:void 0)}},n=this.members.map(t),r=n.filter(a=>{var o;if(Es(a.member.channel)&&!a.explicitTitle){const s=Pi(a.member.channel);return((o=n.find(f=>f.member.view==a.member.view&&f.member.channel==s))==null?void 0:o.explicitTitle)===void 0}return!0}),i=new Set(r.map(a=>Jd(a.explicitTitle,a.implicitTitle)).filter(Qe));return i.size?[...i].join(", "):null}}const hD={point:rB,rect:Xk,rule:oB,link:hB,text:yB};class Qt extends Hi{constructor(t,n,r,i,a,o){super(t,n,r,i,a,o),this.spec=t;const s=hD[this.getMarkType()];if(s)this.mark=new s(this);else throw new Error(`No such mark: ${this.getMarkType()}`);this.resolve(),this.coords=void 0,this.needsAxes={x:!0,y:!0}}render(t,n,r={}){this.isConfiguredVisible()&&(this.coords=n,t.pushView(this,n),t.renderMark(this.mark,r),t.popView(this))}getMarkType(){return typeof this.spec.mark=="object"?this.spec.mark.type:this.spec.mark}resolve(t){t||(this.resolve("scale"),this.resolve("axis"));const n=this.mark.encoding;for(const[r,i]of Object.entries(n)){if(!Lt(i))continue;const a=Pi(i.resolutionChannel??r);if(!Ni(a)||t=="axis"&&!As(a))continue;let o=this;for(;(o.getConfiguredOrDefaultResolution(a,t)=="forced"||o.dataParent instanceof Hi&&["shared","excluded","forced"].includes(o.dataParent.getConfiguredOrDefaultResolution(a,t)))&&o.getConfiguredOrDefaultResolution(a,t)!="excluded";)o=o.dataParent;t=="axis"&&As(r)&&kb(a)?(o.resolutions[t][a]||(o.resolutions[t][a]=new cD(a)),o.resolutions[t][a].pushUnitView(this,r)):t=="scale"&&Ni(r)&&(o.resolutions[t][a]||(o.resolutions[t][a]=new sD(a)),o.resolutions[t][a].pushUnitView(this,r))}}getAccessor(t){return this._cache("accessor/"+t,()=>{const n=this.mark.encoding;if(n&&n[t])return this.context.accessorFactory.createAccessor(n[t])})}getFacetAccessor(t){const n=this.getAccessor("sample");return n||super.getFacetAccessor(this)}getCollector(){return this.context.dataFlow.findCollectorByKey(this)}_validateDomainQuery(t){if(Es(t))throw new Error(`getDomain(${t}), must only be called for primary channels!`);const n=this.mark.encoding[t];if(!Lt(n))throw new Error("The channel has no scale, cannot get domain!");return n}getConfiguredDomain(t){const n=this._validateDomainQuery(t),r=n&&n.scale&&n.scale.domain;if(r){const i=this.getScaleResolution(n.resolutionChannel??t);return Iy(n.type??"nominal",i.fromComplexInterval(r))}}extractDataDomain(t){const r=this._validateDomainQuery(t).type??"nominal",i=s=>{let f;const l=this.mark.encoding[s];if(l){const u=this.context.accessorFactory.createAccessor(l);if(u)if(f=Iy(r),u.constant)f.extend(u({}));else{const c=this.getCollector();c!=null&&c.completed&&c.visitData(h=>f.extend(u(h)))}}return f};let a=i(t);const o=ld[t];if(o){const s=i(o);s&&a.extendAll(s)}return a}getZoomLevel(){const t=n=>{var r;return((r=this.getScaleResolution(n))==null?void 0:r.getZoomLevel())??1};return Ba.map(t).reduce((n,r)=>n*r,1)}propagateInteractionEvent(t){this.handleInteractionEvent(void 0,t,!0),t.target=this,!t.stopped&&this.handleInteractionEvent(void 0,t,!1)}getDefaultResolution(t,n){return t=="x"?"shared":"independent"}}function*e0(e,t=[]){for(const[n,r]of e.entries())if(r instanceof Map)for(const i of e0(r,[...t,n]))yield i;else yield[[...t,n],r]}class Ry extends Je{get behavior(){return Zd}constructor(t){super(),this.params=t??{type:"collect"},this.observers=[],this.facetBatches=void 0,this._init()}_init(){this._data=[],this.facetBatches=new mi([],JSON.stringify),this.facetBatches.set(void 0,this._data)}reset(){super.reset(),this._init()}handle(t){this._data.push(t)}beginBatch(t){eB(t)&&(this._data=[],this.facetBatches.set(Wt(t.facetId),this._data))}complete(){var i,a;const t=(i=this.params)==null?void 0:i.sort,n=t?Fg(t.field,t.order):void 0,r=o=>{n&&o.sort(n)};if((a=this.params.groupby)!=null&&a.length){if(this.facetBatches.size>1)throw new Error("TODO: Support faceted data!");const o=this.params.groupby.map(f=>Re(f)),s=tf(this._data,...o);this.facetBatches.clear();for(const[f,l]of e0(s))this.facetBatches.set(f,l)}for(const o of this.facetBatches.values())r(o);if(this.children.length)for(const[o,s]of this.facetBatches.entries()){if(o){const f={type:"facet",facetId:o};for(const l of this.children)l.beginBatch(f)}for(const f of s)this._propagate(f)}super.complete();for(const o of this.observers)o(this)}getData(){switch(this._checkStatus(),this.facetBatches.size){case 0:return[];case 1:return[...this.facetBatches.values()][0];default:{const t=this.facetBatches;return{[Symbol.iterator]:function*(){for(const r of t.values())for(let i=0;i<r.length;i++)yield r[i]}}}}}visitData(t){this._checkStatus();for(const n of this.facetBatches.values())for(let r=0;r<n.length;r++)t(n[r])}getItemCount(){let t=0;for(const n of this.facetBatches.values())t+=n.length;return t}_checkStatus(){if(!this.completed)throw new Error("Data propagation is not completed! No data are available.")}}class mu{constructor(){this.ids=[],this.values=[],this.length=0}clear(){this.length=0}push(t,n){let r=this.length++;for(;r>0;){const i=r-1>>1,a=this.values[i];if(n>=a)break;this.ids[r]=this.ids[i],this.values[r]=a,r=i}this.ids[r]=t,this.values[r]=n}pop(){if(this.length===0)return;const t=this.ids[0];if(this.length--,this.length>0){const n=this.ids[0]=this.ids[this.length],r=this.values[0]=this.values[this.length],i=this.length>>1;let a=0;for(;a<i;){let o=(a<<1)+1;const s=o+1;let f=this.ids[o],l=this.values[o];const u=this.values[s];if(s<this.length&&u<l&&(o=s,f=this.ids[s],l=u),l>=r)break;this.ids[a]=f,this.values[a]=l,a=o}this.ids[a]=n,this.values[a]=r}return t}peek(){if(this.length!==0)return this.ids[0]}peekValue(){if(this.length!==0)return this.values[0]}shrink(){this.ids.length=this.values.length=this.length}}class dD extends Je{get behavior(){return Un}constructor(t){super(),this.params=t,this.startAccessor=Re(t.start),this.endAccessor=Re(t.end),this.chromAccessor=t.chrom?Re(t.chrom):n=>{},this.weightAccessor=t.weight?Re(t.weight):n=>1,this.as={coverage:t.as||"coverage",start:t.asStart||t.start,end:t.asEnd||t.end,chrom:t.asChrom||t.chrom},this.createSegment=new Function("start","end","coverage","chrom","return {"+Object.entries(this.as).filter(([n,r])=>r).map(([n,r])=>`${JSON.stringify(r)}: ${n}`).join(", ")+"};"),this.ends=new mu}reset(){super.reset(),this.initialize()}initialize(){const t=this.as.coverage,n=this.as.end,r=this.as.chrom,i=this.startAccessor,a=this.endAccessor,o=this.chromAccessor,s=this.weightAccessor;let f,l,u,c=0,h;const d=this.ends;d.clear();const p=(y,w,S)=>{if(y==w)return;let C=!1;f&&(f[t]===S?(f[n]=w,C=!0):f[t]!=0&&this._propagate(f)),C||(f=this.createSegment(y,w,S,u))},b=()=>{let y;for(;(y=d.peekValue())!==void 0;)p(h,y,c),h=y,c-=d.pop();h=void 0,f&&(this._propagate(f),f=void 0)};this.handle=y=>{const w=i(y);let S;for(;(S=d.peekValue())!==void 0&&S<w;)p(h,S,c),h=S,c-=d.pop();if(r){let _=o(y);_!==l&&(b(),u=_,l=u)}h!==void 0&&p(h,w,c),h=w;const C=s(y);c+=C,d.push(C,a(y))},this.complete=()=>{b(),super.complete()}}}function pD(e,t,n=0,r=e.length){const i=new mu,a=r-n;let o;for(o=0;o<t&&o<a;o++)i.push(o,e[n+o]);for(;o<a;o++){const l=e[n+o];l>=i.peekValue()&&(i.push(o,l),i.pop())}const s=[];let f;for(;(f=i.pop())!==void 0;)s.push(n+f);return s.reverse()}class gD{constructor(t,n=-1/0,r=1/0){this.maxSize=t,this.lowerLimit=n,this.upperLimit=r;const i=this.maxSize*2+1;this.lowerLimits=new Float64Array(i),this.upperLimits=new Float64Array(i),this.lowerChildren=new Int32Array(i),this.upperChildren=new Int32Array(i),this.reset()}reset(){this.lowerLimits.fill(0),this.upperLimits.fill(0),this.lowerChildren.fill(0),this.upperChildren.fill(0),this.n=1,this.lowerLimits[0]=this.lowerLimit,this.upperLimits[0]=this.upperLimit}_findSlot(t,n,r=0){if(t>=this.lowerLimits[r]&&n<=this.upperLimits[r]){const i=this.lowerChildren[r];if(i){const a=this._findSlot(t,n,i);return a>=0?a:this._findSlot(t,n,this.upperChildren[r])}else return r}else return-1}reserve(t,n){if(n-t<=0)throw new Error("Cannot reserve an empty or negative-size slot!");if(this.n+1>this.lowerLimits.length)return!1;const r=this._findSlot(t,n);if(r<0)return!1;const i=this.n++,a=this.n++;return this.lowerLimits[i]=this.lowerLimits[r],this.upperLimits[i]=t,this.lowerLimits[a]=n,this.upperLimits[a]=this.upperLimits[r],this.lowerChildren[r]=i,this.upperChildren[r]=a,!0}}class mD extends Je{get behavior(){return Zd}constructor(t,n){if(super(),this.params=t,this._data=[],this.channel=t.channel??"x",!["x","y"].includes(this.channel))throw new Error("Invalid channel: "+this.channel);this.posAccessor=Re(this.params.pos),this.posBisector=ef(this.posAccessor),this.scoreAccessor=Re(this.params.score),this.widthAccessor=Re(this.params.width),this.laneAccessor=this.params.lane?Re(this.params.lane):i=>0,this.padding=this.params.padding??0,this.reservationMaps=new Map,this.resolution=n.getScaleResolution(this.channel);const r=()=>this._filterAndPropagate();this.schedule=()=>n.context.animator.requestTransition(r),this.resolution.addEventListener("domain",i=>this.schedule()),n._addBroadcastHandler("layoutComputed",()=>this.schedule())}complete(){const t=this.posAccessor;this._data.sort((n,r)=>t(n)-t(r)),this._scores=this._data.map(this.scoreAccessor);for(const n of new Set(this._data.map(this.laneAccessor)))this.reservationMaps.set(n,new gD(200));this.schedule(),super.complete()}_filterAndPropagate(){var o;super.reset();const t=this.resolution.getScale(),n=(o=this.resolution.members[0].view.coords)==null?void 0:o[this.channel=="x"?"width":"height"];if(!n)return;for(const s of this.reservationMaps.values())s.reset();const r=t.domain(),i=70,a=pD(this._scores,i,this.posBisector.left(this._data,r[0]),this.posBisector.right(this._data,r[1]));for(const s of a){const f=this._data[s],l=t(this.posAccessor(f))*n,u=this.widthAccessor(f)/2+this.padding;this.reservationMaps.get(this.laneAccessor(f)).reserve(l-u,l+u)&&this._propagate(f)}super.complete()}reset(){super.reset(),this._data=[],this.groups=new Map}handle(t){this._data.push(t)}}class bD extends Je{constructor(t){super(),this.params=t,this.predicate=void 0}initialize(){this.predicate=xh(this.params.expr,this.getGlobalObject())}handle(t){this.predicate(t)&&this._propagate(t)}}class yD extends Je{get behavior(){return Un}constructor(t){super();const n=t.index;if(t.fields){const r=Wt(t.fields).map(a=>Re(a)),i=Wt(t.as||t.fields);if(r.length!==i.length)throw new Error(`Lengths of "fields" (${r.length}), and "as" (${i.length}) do not match!`);this.handle=a=>{const o=r.map((f,l)=>f(a)??[]),s=o[0].length;for(let f=0;f<s;f++){const l=Object.assign({},a);for(let u=0;u<r.length;u++)l[i[u]]=f<o[u].length?o[u][f]:null;n&&(l[n]=f),this._propagate(l)}}}else this.handle=r=>{for(let i=0;i<r.length;i++){const a=Object.assign({},r[i]);n&&(a[n]=i),this._propagate(a)}}}}const wD="0".charCodeAt(0);function*vD(e,t=","){const n=t.charCodeAt(0);let r=0;for(let i=0;i<e.length;i++){const a=e.charCodeAt(i);a==n?(yield r,r=0):r=r*10+a-wD}yield r}class xD extends Je{get behavior(){return Un}constructor(t){super();const n=Re(t.exons??"exons"),r=Re(t.start??"start"),[i,a]=t.as||["exonStart","exonEnd"];this.handle=o=>{let s=r(o),f=s,l=!0;const u=n(o);for(const c of vD(u)){if(l)f=s+c;else{s=f+c;const h=Object.assign({},o);h[i]=f,h[a]=s,this._propagate(h)}l=!l}}}}class AD extends Je{get behavior(){return Un}constructor(t){super();const n=Wt(t.field).map(a=>Re(a)),r=Wt(t.separator),i=Wt(t.as||t.field);if(n.length!==r.length||n.length!==i.length)throw new Error(`Lengths of "separator" (${r.length}), "fields" (${n.length}), and "as" (${i.length}) do not match!`);this.handle=a=>{if(n.some(f=>!f(a)))return;const o=n.map((f,l)=>f(a).split(r[l]));ED(o,a);const s=o[0].length;for(let f=0;f<s;f++){const l=Object.assign({},a);for(let u=0;u<n.length;u++)l[i[u]]=o[u][f];this._propagate(l)}}}}function ED(e,t){const n=e.map(r=>r.length);if(!n.every(r=>r==n[0]))throw new Error("Mismatching number of elements in the fields to be split: "+JSON.stringify(t))}class _D extends Je{get behavior(){return Hr}constructor(t){super(),this.params=t,this.as=t.as,this.fn=void 0}initialize(){this.fn=xh(this.params.expr,this.getGlobalObject())}handle(t){t[this.as]=this.fn(t),this._propagate(t)}}class Py extends Je{get behavior(){return Hr}constructor(t,n){super();const r=t.channel??"x";if(!["x","y"].includes(r))throw new Error("Invalid channel: "+r);const i=n.getScaleResolution(r).getGenome();if(!i)throw new Error("LinearizeGenomicCoordinate transform requires a locus scale!");const a=Re(t.chrom),o=Wt(t.pos).map(p=>Re(p)),s=Wt(t.as);if(o.length!=s.length)throw new Error('The number of "pos" and "as" elements must be equal!');const f=Wt(t.offset);let l;if(f.length==0)l=new Array(o.length).fill(0);else if(f.length==1)l=new Array(o.length).fill(f[0]);else if(f.length==o.length)l=f;else throw new Error(`Invalid "offset" parameter: ${JSON.stringify(t.offset)}!`);const u=new Function("datum","chromOffset","posAccessors",s.map((p,b)=>`datum[${JSON.stringify(p)}] = chromOffset + +posAccessors[${b}](datum) - ${l[b]};`).join(`
245
+ `));let c,h=0;const d=p=>{if(p!==c){if(h=i.cumulativeChromPositions.get(p),h===void 0)throw new Error("Unknown chromosome/contig: "+p);c=p}return h};this.handle=p=>{u(p,d(a(p)),o),this._propagate(p)}}}const My={pages:["Lato-Regular.png"],chars:[{id:87,width:53,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:43.491,chnl:15,x:0,y:0,page:0},{id:124,width:17,height:50,xoffset:0,yoffset:-32.193000000000005,xadvance:10.521,chnl:15,x:0,y:42,page:0},{id:40,width:20,height:49,xoffset:0,yoffset:-32.571000000000005,xadvance:11.214,chnl:15,x:0,y:94,page:0},{id:41,width:19,height:49,xoffset:0,yoffset:-32.571000000000005,xadvance:11.214,chnl:15,x:0,y:145,page:0},{id:36,width:32,height:49,xoffset:0,yoffset:-34.419000000000004,xadvance:24.360000000000003,chnl:15,x:0,y:196,page:0},{id:125,width:21,height:48,xoffset:0,yoffset:-32.193000000000005,xadvance:12.642000000000001,chnl:15,x:0,y:247,page:0},{id:91,width:22,height:48,xoffset:0,yoffset:-32.193000000000005,xadvance:12.852,chnl:15,x:0,y:297,page:0},{id:93,width:19,height:48,xoffset:0,yoffset:-32.193000000000005,xadvance:12.852,chnl:15,x:0,y:347,page:0},{id:123,width:21,height:48,xoffset:0,yoffset:-32.193000000000005,xadvance:12.642000000000001,chnl:15,x:0,y:397,page:0},{id:106,width:19,height:48,xoffset:0,yoffset:-30.639000000000003,xadvance:10.08,chnl:15,x:0,y:447,page:0},{id:81,width:43,height:47,xoffset:0,yoffset:-30.429000000000002,xadvance:33.621,chnl:15,x:21,y:447,page:0},{id:77,width:45,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:38.997,chnl:15,x:66,y:447,page:0},{id:64,width:43,height:44,xoffset:0,yoffset:-28.539,xadvance:35.133,chnl:15,x:23,y:397,page:0},{id:92,width:28,height:43,xoffset:0,yoffset:-30.933000000000003,xadvance:18.984,chnl:15,x:68,y:397,page:0},{id:47,width:28,height:43,xoffset:0,yoffset:-30.933000000000003,xadvance:18.984,chnl:15,x:98,y:397,page:0},{id:109,width:42,height:32,xoffset:0,yoffset:-21.609,xadvance:34.545,chnl:15,x:113,y:447,page:0},{id:119,width:42,height:31,xoffset:0,yoffset:-21.315,xadvance:32.991,chnl:15,x:157,y:447,page:0},{id:42,width:25,height:42,xoffset:0,yoffset:-31.626,xadvance:17.85,chnl:15,x:128,y:397,page:0},{id:37,width:42,height:41,xoffset:0,yoffset:-30.387,xadvance:33.663000000000004,chnl:15,x:155,y:397,page:0},{id:79,width:42,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:33.621,chnl:15,x:199,y:397,page:0},{id:102,width:24,height:41,xoffset:0,yoffset:-30.534000000000002,xadvance:14.721,chnl:15,x:243,y:397,page:0},{id:100,width:31,height:41,xoffset:0,yoffset:-30.933000000000003,xadvance:23.520000000000003,chnl:15,x:269,y:397,page:0},{id:98,width:32,height:41,xoffset:0,yoffset:-30.933000000000003,xadvance:23.520000000000003,chnl:15,x:302,y:397,page:0},{id:56,width:32,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:24.360000000000003,chnl:15,x:336,y:397,page:0},{id:38,width:40,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:29.904000000000003,chnl:15,x:370,y:397,page:0},{id:108,width:17,height:41,xoffset:0,yoffset:-30.933000000000003,xadvance:9.912,chnl:15,x:412,y:397,page:0},{id:107,width:31,height:41,xoffset:0,yoffset:-30.933000000000003,xadvance:21.336000000000002,chnl:15,x:431,y:397,page:0},{id:48,width:33,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:24.360000000000003,chnl:15,x:464,y:397,page:0},{id:71,width:38,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:30.681,chnl:15,x:21,y:347,page:0},{id:83,width:31,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:22.785,chnl:15,x:61,y:347,page:0},{id:63,width:27,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:18.795,chnl:15,x:94,y:347,page:0},{id:105,width:18,height:41,xoffset:0,yoffset:-30.639000000000003,xadvance:10.08,chnl:15,x:123,y:347,page:0},{id:51,width:32,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:24.360000000000003,chnl:15,x:143,y:347,page:0},{id:104,width:31,height:41,xoffset:0,yoffset:-30.933000000000003,xadvance:23.436,chnl:15,x:177,y:347,page:0},{id:67,width:37,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:28.056,chnl:15,x:210,y:347,page:0},{id:88,width:37,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:27.258000000000003,chnl:15,x:249,y:347,page:0},{id:68,width:40,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:31.941000000000003,chnl:15,x:288,y:347,page:0},{id:70,width:32,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:23.751,chnl:15,x:330,y:347,page:0},{id:34,width:23,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:15.561000000000002,chnl:15,x:364,y:347,page:0},{id:72,width:38,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:32.067,chnl:15,x:389,y:347,page:0},{id:73,width:18,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:11.760000000000002,chnl:15,x:429,y:347,page:0},{id:74,width:24,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:17.745,chnl:15,x:449,y:347,page:0},{id:75,width:38,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:27.825000000000003,chnl:15,x:24,y:297,page:0},{id:76,width:31,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:21.567,chnl:15,x:475,y:347,page:0},{id:66,width:35,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:27.153000000000002,chnl:15,x:64,y:297,page:0},{id:78,width:38,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:32.067,chnl:15,x:101,y:297,page:0},{id:33,width:18,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:11.298,chnl:15,x:141,y:297,page:0},{id:80,width:34,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:25.221,chnl:15,x:161,y:297,page:0},{id:65,width:38,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:28.434,chnl:15,x:197,y:297,page:0},{id:82,width:36,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:26.313000000000002,chnl:15,x:237,y:297,page:0},{id:35,width:33,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:275,y:297,page:0},{id:84,width:34,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.801000000000002,chnl:15,x:310,y:297,page:0},{id:85,width:37,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:30.891000000000002,chnl:15,x:346,y:297,page:0},{id:86,width:38,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:28.434,chnl:15,x:385,y:297,page:0},{id:39,width:16,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:8.568000000000001,chnl:15,x:425,y:297,page:0},{id:69,width:32,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.255000000000003,chnl:15,x:443,y:297,page:0},{id:89,width:36,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:26.208000000000002,chnl:15,x:23,y:247,page:0},{id:90,width:34,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:25.284000000000002,chnl:15,x:477,y:297,page:0},{id:49,width:31,height:40,xoffset:0,yoffset:-30.156000000000002,xadvance:24.360000000000003,chnl:15,x:61,y:247,page:0},{id:50,width:32,height:40,xoffset:0,yoffset:-30.429000000000002,xadvance:24.360000000000003,chnl:15,x:94,y:247,page:0},{id:57,width:32,height:40,xoffset:0,yoffset:-30.429000000000002,xadvance:24.360000000000003,chnl:15,x:128,y:247,page:0},{id:94,width:32,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:162,y:247,page:0},{id:96,width:21,height:40,xoffset:0,yoffset:-30.429000000000002,xadvance:16.8,chnl:15,x:196,y:247,page:0},{id:55,width:33,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:219,y:247,page:0},{id:54,width:33,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:254,y:247,page:0},{id:53,width:32,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:289,y:247,page:0},{id:52,width:33,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:323,y:247,page:0},{id:103,width:31,height:39,xoffset:0,yoffset:-21.630000000000003,xadvance:21.84,chnl:15,x:358,y:247,page:0},{id:112,width:32,height:39,xoffset:0,yoffset:-21.651,xadvance:23.541,chnl:15,x:391,y:247,page:0},{id:113,width:31,height:39,xoffset:0,yoffset:-21.651,xadvance:23.520000000000003,chnl:15,x:425,y:247,page:0},{id:116,width:25,height:39,xoffset:0,yoffset:-28.182000000000002,xadvance:15.057,chnl:15,x:458,y:247,page:0},{id:121,width:31,height:38,xoffset:0,yoffset:-21.273,xadvance:21.651,chnl:15,x:34,y:196,page:0},{id:59,width:18,height:36,xoffset:0,yoffset:-20.706,xadvance:10.983,chnl:15,x:485,y:247,page:0},{id:43,width:32,height:34,xoffset:0,yoffset:-24.486,xadvance:24.360000000000003,chnl:15,x:67,y:196,page:0},{id:60,width:30,height:33,xoffset:0,yoffset:-23.331000000000003,xadvance:24.360000000000003,chnl:15,x:101,y:196,page:0},{id:62,width:31,height:33,xoffset:0,yoffset:-23.331000000000003,xadvance:24.360000000000003,chnl:15,x:133,y:196,page:0},{id:117,width:30,height:32,xoffset:0,yoffset:-21.273,xadvance:23.415000000000003,chnl:15,x:166,y:196,page:0},{id:99,width:29,height:32,xoffset:0,yoffset:-21.609,xadvance:20.055,chnl:15,x:198,y:196,page:0},{id:110,width:31,height:32,xoffset:0,yoffset:-21.609,xadvance:23.436,chnl:15,x:229,y:196,page:0},{id:111,width:32,height:32,xoffset:0,yoffset:-21.609,xadvance:23.814,chnl:15,x:262,y:196,page:0},{id:126,width:32,height:26,xoffset:0,yoffset:-16.128,xadvance:24.360000000000003,chnl:15,x:201,y:447,page:0},{id:101,width:31,height:32,xoffset:0,yoffset:-21.609,xadvance:22.176000000000002,chnl:15,x:296,y:196,page:0},{id:114,width:25,height:32,xoffset:0,yoffset:-21.651,xadvance:15.288,chnl:15,x:329,y:196,page:0},{id:115,width:27,height:32,xoffset:0,yoffset:-21.609,xadvance:18.186,chnl:15,x:356,y:196,page:0},{id:97,width:28,height:32,xoffset:0,yoffset:-21.651,xadvance:20.874000000000002,chnl:15,x:385,y:196,page:0},{id:118,width:31,height:31,xoffset:0,yoffset:-21.273,xadvance:21.672,chnl:15,x:415,y:196,page:0},{id:61,width:31,height:29,xoffset:0,yoffset:-19.089000000000002,xadvance:24.360000000000003,chnl:15,x:448,y:196,page:0},{id:120,width:30,height:31,xoffset:0,yoffset:-21.273,xadvance:20.916,chnl:15,x:21,y:145,page:0},{id:58,width:18,height:31,xoffset:0,yoffset:-20.706,xadvance:10.5,chnl:15,x:53,y:145,page:0},{id:122,width:28,height:31,xoffset:0,yoffset:-21.273,xadvance:18.984,chnl:15,x:73,y:145,page:0},{id:95,width:28,height:16,xoffset:0,yoffset:0,xadvance:19.278000000000002,chnl:15,x:235,y:447,page:0},{id:45,width:23,height:24,xoffset:0,yoffset:-14.175,xadvance:15.603000000000002,chnl:15,x:481,y:196,page:0},{id:44,width:17,height:21,xoffset:0,yoffset:-4.956,xadvance:9.534,chnl:15,x:103,y:145,page:0},{id:46,width:18,height:15,xoffset:0,yoffset:-4.956,xadvance:9.912,chnl:15,x:0,y:497,page:0},{id:32,width:0,height:0,xoffset:0,yoffset:0,xadvance:10.752,chnl:15,x:20,y:497,page:0}],info:{face:"Lato Regular",size:42,bold:0,italic:0,charset:[" ","!",'"',"#","$","%","&","'","(",")","*","+",",","-",".","/","0","1","2","3","4","5","6","7","8","9",":",";","<","=",">","?","@","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","[","\\","]","^","_","`","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","{","|","}","~"],unicode:1,stretchH:100,smooth:1,aa:1,padding:[0,0,0,0],spacing:[2,2]},common:{lineHeight:50.400000000000006,base:41.454,scaleW:512,scaleH:512,pages:1,packed:0,alphaChnl:0,redChnl:0,greenChnl:0,blueChnl:0},kernings:[]};class SD extends Je{get behavior(){return Hr}constructor(t){super();const n=Hd(My),r=Re(t.field),i=t.as,a=t.fontSize;this.handle=o=>{const s=r(o);s!==void 0?o[i]=n.measureWidth(s,a):o[i]=0,this._propagate(o)}}}const CD=65536;class TD extends Je{get behavior(){return Hr}constructor(t){super(),this.params=t}reset(){super.reset(),this.initialize()}initialize(){const t=this.params,n=t.as||"lane",r=Ft(t.spacing)?t.spacing:1,i=Re(t.start),a=Re(t.end);if(!t.preference!=!t.preferredOrder)throw new Error('Must specify both "preference" and "preferredOrder"');if(t.preference){const o=new Float64Array(CD),s=Re(t.preference),f=t.preferredOrder;let l=1/0;this.handle=u=>{const c=i(u);c<l&&o.fill(-1/0),l=c;const h=f.indexOf(s(u));let d=-1;if(h>=0&&o[h]<c)d=h;else{const p=i(u);for(d=0;d<o.length&&!(o[d]<p);d++);if(d>=o.length)throw new Error("Out of lanes!")}o[d]=a(u)+r,u[n]=d,this._propagate(u)}}else{const o=new mu,s=new mu;let f=-1/0,l=0;this.handle=u=>{const c=i(u);for(;o.length&&(o.peekValue()<=c||c<f);){const d=o.pop();s.push(d,d)}f=c;let h=s.pop();h===void 0&&(h=l++),u[n]=h,this._propagate(u),o.push(h,a(u)+r)}}}}class ID extends Je{get behavior(){return Un}constructor(t){if(super(),t.as&&t.as.length!=t.fields.length)throw new Error('"fields" and "as" have unequal lengths!');const n=t.fields.map(i=>Re(i)),r=t.as?t.as:n.map(ma);this.handle=i=>{const a={};for(let o=0;o<n.length;o++)a[r[o]]=n[o](i);this._propagate(a)}}}class kD extends Je{get behavior(){return Hr}constructor(t){super();const n=new RegExp(t.regex),r=typeof t.as=="string"?[t.as]:t.as,i=Re(t.field);this.handle=a=>{const o=i(a);if(Qe(o)){const s=o.match(n);if(s){if(s.length-1!=r.length)throw new Error('The number of RegEx groups and the length of "as" do not match!');for(let f=0;f<r.length;f++)a[r[f]]=s[f+1]}else if(t.skipInvalidInput)for(let f=0;f<r.length;f++)a[r[f]]=void 0;else throw new Error(`"${o}" does not match the given regex: ${n.toString()}`)}else if(!t.skipInvalidInput)throw new Error(`Trying to match a non-string field. Encountered type: ${typeof o}, field content: "${o}".`);this._propagate(a)}}}class BD extends Je{get behavior(){return Un}constructor(t){super();const n=Wt(t.columnRegex).map(h=>new RegExp(h)),r=Wt(t.asValue);if(n.length!=r.length)throw new Error('Lengths of "columnRegex" and "as" are not equal!');const i=t.skipRegex?new RegExp(t.skipRegex):void 0,a=t.asKey||"sample";let o,s,f;const l=h=>{var y;const d=Object.keys(h),p=new Map;for(const[w,S]of n.entries())for(const C of d){const _=(y=S.exec(C))==null?void 0:y[1];if(_!==void 0){let k=p.get(_);k||(k=[],p.set(_,k)),k[w]=C}}o=[...p.entries()],s=d.filter(w=>!n.some(S=>S.test(w))&&!(i&&i.test(w)));const b=[...s.map(w=>JSON.stringify(w)+": datum["+JSON.stringify(w)+"]"),JSON.stringify(a)+": sampleId",...r.map(w=>JSON.stringify(w)+": null")];f=new Function("datum","sampleId",`return {
260
246
  `+b.join(`,
261
247
  `)+`
262
- };`)},l=h=>{o||u(h);for(const[d,g]of o){const b=f(h,d);for(let y=0;y<g.length;y++)b[r[y]]=h[g[y]];this._propagate(b)}},c=h=>{u(h),l(h),this.handle=l};this.handle=c,this.beginBatch=h=>{Nw(h)&&(this.handle=c),super.beginBatch(h)}}}class pk extends tt{get behavior(){return oi}constructor(e){super(),this.params=e,this.buffer=[]}reset(){this.buffer=[]}handle(e){this.buffer.push(e)}complete(){const e=this.params,n=e.as||["y0","y1"],r=e.sort?tm(e.sort.field,e.sort.order):void 0,i=e.field?ke(e.field):()=>1,a=e.groupby.map(l=>ke(l)),o=y_(this.buffer,l=>a.map(c=>c(l)).join()).map(l=>l[1]);let s=l=>!0;if(e.baseField){const l=ke(e.baseField);s=c=>l(c)!==null}let f,u;switch(e.offset){case"normalize":f=(l,c)=>l/c,u=(l,c)=>Af(l,c);break;case"center":f=(l,c)=>l-c/2,u=(l,c)=>Af(l,c);break;case"information":{const l=Math.log2(e.cardinality??4);f=(c,h)=>c/h,u=(c,h)=>{const g=Af(c,E=>+!s(E)),b=Af(c,h),y=b-g;let w=0;for(let E=0;E<c.length;E++){const _=c[E];if(s(_)){const D=h(_)/y;w-=D*Math.log2(D)}}return y/(l-(w+0))*(y/b)}}break;default:f=(l,c)=>l,u=(l,c)=>1}for(const l of o){r&&l.sort(r);const c=u(l,i);let h=0;for(const d of l){const g=h+i(d);s(d)&&(d[n[0]]=f(h,c),d[n[1]]=f(g,c),this._propagate(d),h=g)}}super.complete()}}class mk extends tt{get behavior(){return er}constructor(e){super();const n=ke(e.field??"sequence"),[r,i]=e.as??["pos","sequence"];this.handle=a=>{const o=Object.assign({},a,{[i]:"",[r]:0}),s=n(a);for(let f=0;f<s.length;f++){const u=Object.assign({},o);u[r]=f,u[i]=s.charAt(f),this._propagate(u)}}}}class bk extends tt{get behavior(){return er}constructor(e){super(),this.params=e,this.buffer=[]}reset(){this.buffer=[]}handle(e){this.buffer.push(e)}complete(){const n=this.params.groupby,r=n.map(a=>ke(a)),i=xf(this.buffer,...r);for(const[a,o]of m0(i)){const s={count:o.length};for(let f=0;f<n.length;f++)s[n[f]]=a[f];this._propagate(s)}super.complete()}}const yk="_uniqueId",sx=1e4,ux=[null];class fx extends tt{get behavior(){return oi}constructor(e){super(),this.params=e,this.as=e.as??yk,this._blocks=[],this._usedBlocks=0,this._id=-1}initialize(){}reset(){super.reset(),this._usedBlocks=0,this._id=-1}handle(e){e[this.as]=this._nextId(),this._propagate(e)}_nextId(){return++this._id%sx==0&&(this._id=this._getBlock()*sx),this._id}_getBlock(){return this._usedBlocks<this._blocks.length?this._blocks[this._usedBlocks++]:this._reserveBlock()}_reserveBlock(){const e=ux.length;return ux[e]=this,this._blocks.push(e),this._usedBlocks++,e}}const wk={aggregate:bk,collect:ix,coverage:$F,filterScoredLabels:ek,filter:tk,flatten:nk,flattenCompressedExons:ak,flattenDelimited:ok,flattenSequence:mk,formula:uk,identifier:fx,linearizeGenomicCoordinate:ax,measureText:fk,pileup:ck,project:hk,regexExtract:dk,regexFold:gk,sample:Fw,stack:pk};function xk(t,e){const n=wk[t.type];if(n)return new n(t,e);throw new Error("Unknown transform: "+t.type)}function lx(t){if(!dx(t)&&!hx(t))return;const e={...t.format};if(e.type??(e.type=hx(t)&&vk(t.url)),e.parse??(e.parse="auto"),!e.type)throw new Error("Format for the data source was not defined and it could not be inferred: "+JSON.stringify(t));return e}function vk(t){var e;if(Array.isArray(t)&&(t=t[0]),t)return(e=t.match(/\.(csv|tsv|json)/))==null?void 0:e[1]}const cx=t=>typeof t!="object"?Ak:Ek,Ak=t=>({data:t}),Ek=t=>t;function hx(t){return"url"in t}class ru extends tt{get identifier(){}handle(e){throw new Error("Source does not handle incoming data!")}async load(){}}function dx(t){return"values"in t}class Sk extends ru{constructor(e,n){var r;if(super(),this.params=e,typeof e.values=="string"&&!((r=e==null?void 0:e.format)!=null&&r.type))throw new Error("Data format type (csv, dsv, ...) must be specified if a string is provided!")}loadSynchronously(){const e=this.params.values;let n=[],r=i=>i;if(Array.isArray(e))e.length>0&&(n=e,r=cx(e[0]));else if(typeof e=="object")n=[e];else if(typeof e=="string")n=o1(e,lx(this.params));else throw new Error('"values" in data configuration is not an array, object, or a string!');this.reset(),this.beginBatch({type:"file"});for(const i of n)this._propagate(r(i));this.complete()}async load(){this.loadSynchronously()}}function _k(t){return"url"in t}class Ck extends ru{constructor(e,n){super(),this.params=e,this.baseUrl=n==null?void 0:n.getBaseUrl()}get identifier(){return JSON.stringify({params:this.params,baseUrl:this.baseUrl})}async load(){const e=this.params.url,n=Array.isArray(e)?e:[e],r=async a=>kf({baseURL:this.baseUrl}).load(a).catch(o=>{throw new Error(`Cannot fetch: ${this.baseUrl}${a}: ${o.message}`)}),i=(a,o)=>{try{const s=o1(a,lx(this.params));this.beginBatch({type:"file",url:o});for(const f of s)this._propagate(f)}catch(s){throw new Error(`Cannot parse: ${o}: ${s.message}`)}};this.reset(),await Promise.all(n.map(a=>r(a).then(i))),this.complete()}}function Dk(t){return"sequence"in t}class Ik extends ru{constructor(e,n){if(super(),this.sequence=e.sequence,!("start"in this.sequence))throw new Error("'start' is missing from sequence parameters!");if(!("stop"in this.sequence))throw new Error("'stop' is missing from sequence parameters!")}loadSynchronously(){const e=this.sequence.as||"data",n=this.sequence.step||1,r=this.sequence.stop;this.reset(),this.beginBatch({type:"file"});for(let i=this.sequence.start;i<r;i+=n)this._propagate({[e]:i});this.complete()}async load(){this.loadSynchronously()}}function Mk(t,e,n){return n=(n-t)/(e-t),n=Math.max(0,Math.min(1,n)),n*n*(3-2*n)}class ra extends ru{constructor(e,n){if(super(),this.view=e,n){if(n!=="x"&&n!=="y")throw new Error(`Invalid channel specified for the dynamic data source: ${n}. Must be either "x" or "y"`)}else throw new Error('No channel has been specified for the dynamic data source. Must be either "x" or "y".');if(this.channel=n,this.scaleResolution=this.view.getScaleResolution(n),!this.scaleResolution){const i=[`The dynamic data source cannot find a resolved scale for channel "${n}".`];throw this.view instanceof Tt||i.push('Make sure the view has a "shared" scale resolution as it is not a unit view.'),new Error(i.join(" "))}const r=()=>{this.view.isVisible()&&this.onDomainChanged(this.scaleResolution.getDomain(),this.scaleResolution.getComplexDomain())};this.scaleResolution.addEventListener("domain",r),this.view.context.addBroadcastListener("layoutComputed",r)}getAxisLength(){const e=this.scaleResolution.members.map(n=>{var r;return(r=n.view.coords)==null?void 0:r[this.channel==="x"?"width":"height"]}).filter(n=>n>0);return e.length?e.reduce((n,r)=>Math.min(n,r),1e4):0}get genome(){return this.scaleResolution.getGenome()}async onDomainChanged(e,n){}requestRender(){this.view.context.animator.requestRender()}async load(){this.reset(),this.complete()}publishData(e){this.reset(),this.beginBatch({type:"file"});for(const n of e)this._propagate(n);this.complete(),g0(this.view),this.requestRender()}}class Tk extends ra{constructor(n,r){const i={axis:{},...n};super(r,i.channel);an(this,"ticks",[]);this.params=n}async onDomainChanged(){const n=this.scaleResolution.getScale(),r=this.params.axis,i=this.getAxisLength(),a=u=>25+60*Mk(100,700,u),o=Lt(r.tickCount)?r.tickCount:Math.round(i/a(i)),s=Uw(n,o,r.tickMinStep),f=r.values?jw(n,r.values,s):dF(n,s);if(!Rf(f,this.ticks)){this.ticks=f;const u=pF(n,o,r.format);this.publishData(f.map(l=>({value:l,label:u(l)})))}}}class Nk extends ra{constructor(e,n){super(n,e.channel)}async load(){this.publishData(this.genome.chromosomes)}}var iu=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};function ia(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function Fk(t){if(t.__esModule)return t;var e=t.default;if(typeof e=="function"){var n=function r(){return this instanceof r?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};n.prototype=e.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(t).forEach(function(r){var i=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(n,r,i.get?i:{enumerable:!0,get:function(){return t[r]}})}),n}var bt={},Ll={};Ll.byteLength=Lk,Ll.toByteArray=Ok,Ll.fromByteArray=Uk;for(var tr=[],fn=[],kk=typeof Uint8Array<"u"?Uint8Array:Array,b0="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",uo=0,Bk=b0.length;uo<Bk;++uo)tr[uo]=b0[uo],fn[b0.charCodeAt(uo)]=uo;fn["-".charCodeAt(0)]=62,fn["_".charCodeAt(0)]=63;function gx(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=t.indexOf("=");n===-1&&(n=e);var r=n===e?0:4-n%4;return[n,r]}function Lk(t){var e=gx(t),n=e[0],r=e[1];return(n+r)*3/4-r}function Rk(t,e,n){return(e+n)*3/4-n}function Ok(t){var e,n=gx(t),r=n[0],i=n[1],a=new kk(Rk(t,r,i)),o=0,s=i>0?r-4:r,f;for(f=0;f<s;f+=4)e=fn[t.charCodeAt(f)]<<18|fn[t.charCodeAt(f+1)]<<12|fn[t.charCodeAt(f+2)]<<6|fn[t.charCodeAt(f+3)],a[o++]=e>>16&255,a[o++]=e>>8&255,a[o++]=e&255;return i===2&&(e=fn[t.charCodeAt(f)]<<2|fn[t.charCodeAt(f+1)]>>4,a[o++]=e&255),i===1&&(e=fn[t.charCodeAt(f)]<<10|fn[t.charCodeAt(f+1)]<<4|fn[t.charCodeAt(f+2)]>>2,a[o++]=e>>8&255,a[o++]=e&255),a}function zk(t){return tr[t>>18&63]+tr[t>>12&63]+tr[t>>6&63]+tr[t&63]}function Pk(t,e,n){for(var r,i=[],a=e;a<n;a+=3)r=(t[a]<<16&16711680)+(t[a+1]<<8&65280)+(t[a+2]&255),i.push(zk(r));return i.join("")}function Uk(t){for(var e,n=t.length,r=n%3,i=[],a=16383,o=0,s=n-r;o<s;o+=a)i.push(Pk(t,o,o+a>s?s:o+a));return r===1?(e=t[n-1],i.push(tr[e>>2]+tr[e<<4&63]+"==")):r===2&&(e=(t[n-2]<<8)+t[n-1],i.push(tr[e>>10]+tr[e>>4&63]+tr[e<<2&63]+"=")),i.join("")}var y0={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */y0.read=function(t,e,n,r,i){var a,o,s=i*8-r-1,f=(1<<s)-1,u=f>>1,l=-7,c=n?i-1:0,h=n?-1:1,d=t[e+c];for(c+=h,a=d&(1<<-l)-1,d>>=-l,l+=s;l>0;a=a*256+t[e+c],c+=h,l-=8);for(o=a&(1<<-l)-1,a>>=-l,l+=r;l>0;o=o*256+t[e+c],c+=h,l-=8);if(a===0)a=1-u;else{if(a===f)return o?NaN:(d?-1:1)*(1/0);o=o+Math.pow(2,r),a=a-u}return(d?-1:1)*o*Math.pow(2,a-r)},y0.write=function(t,e,n,r,i,a){var o,s,f,u=a*8-i-1,l=(1<<u)-1,c=l>>1,h=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,d=r?0:a-1,g=r?1:-1,b=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,o=l):(o=Math.floor(Math.log(e)/Math.LN2),e*(f=Math.pow(2,-o))<1&&(o--,f*=2),o+c>=1?e+=h/f:e+=h*Math.pow(2,1-c),e*f>=2&&(o++,f/=2),o+c>=l?(s=0,o=l):o+c>=1?(s=(e*f-1)*Math.pow(2,i),o=o+c):(s=e*Math.pow(2,c-1)*Math.pow(2,i),o=0));i>=8;t[n+d]=s&255,d+=g,s/=256,i-=8);for(o=o<<i|s,u+=i;u>0;t[n+d]=o&255,d+=g,o/=256,u-=8);t[n+d-g]|=b*128};/*!
248
+ };`)},u=h=>{o||l(h);for(const[d,p]of o){const b=f(h,d);for(let y=0;y<p.length;y++)b[r[y]]=h[p[y]];this._propagate(b)}},c=h=>{l(h),u(h),this.handle=u};this.handle=c,this.beginBatch=h=>{ly(h)&&(this.handle=c),super.beginBatch(h)}}}class DD extends Je{get behavior(){return Hr}constructor(t){super(),this.params=t,this.buffer=[]}reset(){this.buffer=[]}handle(t){this.buffer.push(t)}complete(){const t=this.params,n=t.as||["y0","y1"],r=t.sort?Fg(t.sort.field,t.sort.order):void 0,i=t.field?Re(t.field):()=>1,a=t.groupby.map(u=>Re(u)),o=F_(this.buffer,u=>a.map(c=>c(u)).join()).map(u=>u[1]);let s=u=>!0;if(t.baseField){const u=Re(t.baseField);s=c=>u(c)!==null}let f,l;switch(t.offset){case"normalize":f=(u,c)=>u/c,l=(u,c)=>rf(u,c);break;case"center":f=(u,c)=>u-c/2,l=(u,c)=>rf(u,c);break;case"information":{const u=Math.log2(t.cardinality??4);f=(c,h)=>c/h,l=(c,h)=>{const p=rf(c,S=>+!s(S)),b=rf(c,h),y=b-p;let w=0;for(let S=0;S<c.length;S++){const C=c[S];if(s(C)){const _=h(C)/y;w-=_*Math.log2(_)}}return y/(u-(w+0))*(y/b)}}break;default:f=(u,c)=>u,l=(u,c)=>1}for(const u of o){r&&u.sort(r);const c=l(u,i);let h=0;for(const d of u){const p=h+i(d);s(d)&&(d[n[0]]=f(h,c),d[n[1]]=f(p,c),this._propagate(d),h=p)}}super.complete()}}class FD extends Je{get behavior(){return Un}constructor(t){super();const n=Re(t.field??"sequence"),[r,i]=t.as??["pos","sequence"];this.handle=a=>{const o=Object.assign({},a,{[i]:"",[r]:0}),s=n(a);for(let f=0;f<s.length;f++){const l=Object.assign({},o);l[r]=f,l[i]=s.charAt(f),this._propagate(l)}}}}class RD extends Je{get behavior(){return Un}constructor(t){super(),this.params=t,this.buffer=[]}reset(){this.buffer=[]}handle(t){this.buffer.push(t)}complete(){const n=this.params.groupby,r=n.map(a=>Re(a)),i=tf(this.buffer,...r);for(const[a,o]of e0(i)){const s={count:o.length};for(let f=0;f<n.length;f++)s[n[f]]=a[f];this._propagate(s)}super.complete()}}const PD="_uniqueId",Ny=1e4,Ly=[null];class Oy extends Je{get behavior(){return Hr}constructor(t){super(),this.params=t,this.as=t.as??PD,this._blocks=[],this._usedBlocks=0,this._id=-1}initialize(){}reset(){super.reset(),this._usedBlocks=0,this._id=-1}handle(t){t[this.as]=this._nextId(),this._propagate(t)}_nextId(){return++this._id%Ny==0&&(this._id=this._getBlock()*Ny),this._id}_getBlock(){return this._usedBlocks<this._blocks.length?this._blocks[this._usedBlocks++]:this._reserveBlock()}_reserveBlock(){const t=Ly.length;return Ly[t]=this,this._blocks.push(t),this._usedBlocks++,t}}const MD={aggregate:RD,collect:Ry,coverage:dD,filterScoredLabels:mD,filter:bD,flatten:yD,flattenCompressedExons:xD,flattenDelimited:AD,flattenSequence:FD,formula:_D,identifier:Oy,linearizeGenomicCoordinate:Py,measureText:SD,pileup:TD,project:ID,regexExtract:kD,regexFold:BD,sample:fy,stack:DD};function ND(e,t){const n=MD[e.type];if(n)return new n(e,t);throw new Error("Unknown transform: "+e.type)}function zy(e){if(!Hy(e)&&!Gy(e))return;const t={...e.format};if(t.type??(t.type=Gy(e)&&LD(e.url)),t.parse??(t.parse="auto"),!t.type)throw new Error("Format for the data source was not defined and it could not be inferred: "+JSON.stringify(e));return t}function LD(e){var t;if(Array.isArray(e)&&(e=e[0]),e)return(t=e.match(/\.(csv|tsv|json)/))==null?void 0:t[1]}const Uy=e=>typeof e!="object"?OD:zD,OD=e=>({data:e}),zD=e=>e;function Gy(e){return"url"in e}class Ls extends Je{get identifier(){}handle(t){throw new Error("Source does not handle incoming data!")}async load(){}}function Hy(e){return"values"in e}class UD extends Ls{constructor(t,n){var r;if(super(),this.params=t,typeof t.values=="string"&&!((r=t==null?void 0:t.format)!=null&&r.type))throw new Error("Data format type (csv, dsv, ...) must be specified if a string is provided!")}loadSynchronously(){const t=this.params.values;let n=[],r=i=>i;if(Array.isArray(t))t.length>0&&(n=t,r=Uy(t[0]));else if(typeof t=="object")n=[t];else if(typeof t=="string")n=Lm(t,zy(this.params));else throw new Error('"values" in data configuration is not an array, object, or a string!');this.reset(),this.beginBatch({type:"file"});for(const i of n)this._propagate(r(i));this.complete()}async load(){this.loadSynchronously()}}function GD(e){return"url"in e}class HD extends Ls{constructor(t,n){super(),this.params=t,this.baseUrl=n==null?void 0:n.getBaseUrl()}get identifier(){return JSON.stringify({params:this.params,baseUrl:this.baseUrl})}async load(){const t=this.params.url,n=Array.isArray(t)?t:[t],r=async a=>gf({baseURL:this.baseUrl}).load(a).catch(o=>{throw new Error(`Cannot fetch: ${this.baseUrl}${a}: ${o.message}`)}),i=(a,o)=>{try{const s=Lm(a,zy(this.params));this.beginBatch({type:"file",url:o});for(const f of s)this._propagate(f)}catch(s){throw new Error(`Cannot parse: ${o}: ${s.message}`)}};this.reset(),await Promise.all(n.map(a=>r(a).then(i))),this.complete()}}function VD(e){return"sequence"in e}class jD extends Ls{constructor(t,n){if(super(),this.sequence=t.sequence,!("start"in this.sequence))throw new Error("'start' is missing from sequence parameters!");if(!("stop"in this.sequence))throw new Error("'stop' is missing from sequence parameters!")}loadSynchronously(){const t=this.sequence.as||"data",n=this.sequence.step||1,r=this.sequence.stop;this.reset(),this.beginBatch({type:"file"});for(let i=this.sequence.start;i<r;i+=n)this._propagate({[t]:i});this.complete()}async load(){this.loadSynchronously()}}function qD(e,t,n){return n=(n-e)/(t-e),n=Math.max(0,Math.min(1,n)),n*n*(3-2*n)}class Vi extends Ls{constructor(t,n){if(super(),this.view=t,n){if(n!=="x"&&n!=="y")throw new Error(`Invalid channel specified for the dynamic data source: ${n}. Must be either "x" or "y"`)}else throw new Error('No channel has been specified for the dynamic data source. Must be either "x" or "y".');if(this.channel=n,this.scaleResolution=this.view.getScaleResolution(n),!this.scaleResolution){const i=[`The dynamic data source cannot find a resolved scale for channel "${n}".`];throw this.view instanceof Qt||i.push('Make sure the view has a "shared" scale resolution as it is not a unit view.'),new Error(i.join(" "))}const r=()=>{this.view.isVisible()&&this.onDomainChanged(this.scaleResolution.getDomain(),this.scaleResolution.getComplexDomain())};this.scaleResolution.addEventListener("domain",r),this.view.context.addBroadcastListener("layoutComputed",r)}getAxisLength(){const t=this.scaleResolution.members.map(n=>{var r;return(r=n.view.coords)==null?void 0:r[this.channel==="x"?"width":"height"]}).filter(n=>n>0);return t.length?t.reduce((n,r)=>Math.min(n,r),1e4):0}get genome(){return this.scaleResolution.getGenome()}async onDomainChanged(t,n){}requestRender(){this.view.context.animator.requestRender()}async load(){this.reset(),this.complete()}publishData(t){this.reset(),this.beginBatch({type:"file"});for(const n of t)this._propagate(n);this.complete(),Kd(this.view),this.requestRender()}}class ZD extends Vi{constructor(n,r){const i={axis:{},...n};super(r,i.channel);St(this,"ticks",[]);this.params=n}async onDomainChanged(){const n=this.scaleResolution.getScale(),r=this.params.axis,i=this.getAxisLength(),a=l=>25+60*qD(100,700,l),o=Ft(r.tickCount)?r.tickCount:Math.round(i/a(i)),s=my(n,o,r.tickMinStep),f=r.values?by(n,r.values,s):kB(n,s);if(!yf(f,this.ticks)){this.ticks=f;const l=DB(n,o,r.format);this.publishData(f.map(u=>({value:u,label:l(u)})))}}}class WD extends Vi{constructor(t,n){super(n,t.channel)}async load(){this.publishData(this.genome.chromosomes)}}function Os(e){return class extends e{constructor(){super(...arguments);St(this,"lastQuantizedInterval",[0,0])}quantizeInterval(r,i){return[Math.max(Math.floor(r[0]/i-1)*i,0),Math.min(Math.ceil(r[1]/i+1)*i,this.genome.totalSize)]}checkAndUpdateLastInterval(r){return yf(this.lastQuantizedInterval,r)?!1:(this.lastQuantizedInterval=r,!0)}}}function zs(e,t){return!t||/^(data:|([A-Za-z]+:)?\/\/)/.test(e)||e.startsWith("/")?e:(t.endsWith("/")||(t+="/"),t+e)}class YD extends Os(Vi){constructor(t,n){const r={channel:"x",windowSize:7e3,...t};if(super(n,r.channel),this.params=r,!this.params.url)throw new Error("No URL provided for IndexedFastaSource");this.initializedPromise=new Promise(i=>{Promise.all([Promise.resolve().then(()=>hw),Promise.resolve().then(()=>R7),Promise.resolve().then(()=>Hs)]).then(([{Buffer:a},{IndexedFasta:o},{RemoteFile:s}])=>{typeof window<"u"&&(window.Buffer??(window.Buffer=a));const f=l=>new s(zs(l,this.view.getBaseUrl()));this.fasta=new o({fasta:f(this.params.url),fai:f(this.params.indexUrl??this.params.url+".fai")}),i()})})}async onDomainChanged(t){const n=this.params.windowSize;if(t[1]-t[0]>n)return;await this.initializedPromise;const r=this.quantizeInterval(t,n);if(this.checkAndUpdateLastInterval(r)){const i=this.genome.continuousToDiscreteChromosomeIntervals(r),a=await Promise.all(i.map(o=>this.fasta.getSequence(o.chrom,o.startPos,o.endPos).then(s=>({chrom:o.chrom,start:o.startPos,sequence:s}))));this.publishData(a)}}}function bu(e,t,n=!0){let r,i=o=>{};return function(...s){return new Promise((f,l)=>{const u=()=>{clearTimeout(r),i=c=>{},f(e(...s))};n&&i("debounced"),clearTimeout(r),i=l,r=window.setTimeout(u,t)})}}class QD extends Os(Vi){constructor(n,r){const i={pixelsPerBin:2,channel:"x",...n};super(r,i.channel);St(this,"reductionLevels",[]);St(this,"lastRequestId",0);St(this,"bbi");if(this.params=i,!this.params.url)throw new Error("No URL provided for BigWigSource");this.doDebouncedRequest=bu(this.doRequest.bind(this),200,!1),this.initializedPromise=new Promise(a=>{Promise.all([Promise.resolve().then(()=>f3),Promise.resolve().then(()=>Hs)]).then(([{BigWig:o},{RemoteFile:s}])=>{this.bbi=new o({filehandle:new s(zs(this.params.url,this.view.getBaseUrl()))}),this.bbi.getHeader().then(f=>{this.reductionLevels=f.zoomLevels.map(l=>l.reductionLevel).reverse(),this.reductionLevels.push(1),a()})})})}async onDomainChanged(n){await this.initializedPromise;const r=this.getAxisLength()||700,i=XD(n,r,this.reductionLevels),a=Math.max(i*r,5e3),o=this.quantizeInterval(n,a);this.checkAndUpdateLastInterval(o)&&this.doDebouncedRequest(o,i)}async doRequest(n,r){const i=await this.getFeatures(n,.5/r/this.params.pixelsPerBin);i.requestId<this.lastRequestId||this.publishData(i.features)}async getFeatures(n,r){let i=++this.lastRequestId;const a=new AbortController,o=this.genome.continuousToDiscreteChromosomeIntervals(n),s=await Promise.all(o.map(f=>this.bbi.getFeatures(f.chrom,f.startPos,f.endPos,{scale:r,signal:a.signal}).then(l=>l.map(u=>({chrom:f.chrom,start:u.start,end:u.end,score:u.score})))));return{requestId:i,abort:()=>a.abort(),features:s.flat()}}}function XD(e,t,n){const r=(e[1]-e[0])/t;return n.find(i=>i<r)??n.at(-1)}class $D extends Os(Vi){constructor(n,r){const i={channel:"x",windowSize:1e6,...n};super(r,i.channel);St(this,"lastRequestId",0);St(this,"parser");St(this,"bbi");if(this.params=i,!this.params.url)throw new Error("No URL provided for BigBedSource");this.doDebouncedRequest=bu(this.doRequest.bind(this),200,!1),this.initializedPromise=new Promise(a=>{Promise.all([Promise.resolve().then(()=>IL),Promise.resolve().then(()=>f3),Promise.resolve().then(()=>Hs)]).then(([o,{BigBed:s},{RemoteFile:f}])=>{const l=o.default;this.bbi=new s({filehandle:new f(zs(this.params.url,this.view.getBaseUrl()))}),this.headerPromise=this.bbi.getHeader(),this.headerPromise.then(async u=>{this.parser=new l({autoSql:u.autoSql}),a()})})})}async onDomainChanged(n){await this.initializedPromise;const r=this.params.windowSize;if(n[1]-n[0]>r)return;const i=this.quantizeInterval(n,r);this.checkAndUpdateLastInterval(i)&&this.doDebouncedRequest(i)}async doRequest(n){const r=await this.getFeatures(n);r.requestId<this.lastRequestId||this.publishData(r.features)}async getFeatures(n){let r=++this.lastRequestId;const i=new AbortController,a=this.genome.continuousToDiscreteChromosomeIntervals(n),o=await Promise.all(a.map(s=>this.bbi.getFeatures(s.chrom,s.startPos,s.endPos,{signal:i.signal}).then(f=>f.map(l=>this.parser.parseLine(`${s.chrom} ${l.start} ${l.end} ${l.rest}`,{uniqueId:l.uniqueId})))));return{requestId:r,abort:()=>i.abort(),features:o.flat()}}}class KD extends Os(Vi){constructor(n,r){const i={channel:"x",windowSize:2e4,...n};super(r,i.channel);St(this,"lastRequestId",0);St(this,"bam");St(this,"chrPrefixFixer",n=>n);if(this.params=i,!this.params.url)throw new Error("No URL provided for BamSource");this.initializedPromise=new Promise(a=>{Promise.all([Promise.resolve().then(()=>YL),Promise.resolve().then(()=>Hs)]).then(([{BamFile:o},{RemoteFile:s}])=>{const f=l=>new s(zs(l,this.view.getBaseUrl()));this.bam=new o({bamFilehandle:f(this.params.url),baiFilehandle:f(this.params.indexUrl??this.params.url+".bai")}),this.bam.getHeader().then(l=>{var h,d;const u=this.genome.hasChrPrefix(),c=(d=(h=this.bam.indexToChr)==null?void 0:h[0])==null?void 0:d.refName.startsWith("chr");u&&!c?this.chrPrefixFixer=p=>p.replace("chr",""):!u&&c&&(this.chrPrefixFixer=p=>"chr"+p),a()})})})}async onDomainChanged(n){const r=this.params.windowSize;if(n[1]-n[0]>r)return;await this.initializedPromise;const i=this.quantizeInterval(n,r);if(this.checkAndUpdateLastInterval(i)){const a=this.genome.continuousToDiscreteChromosomeIntervals(i),o=await Promise.all(a.map(s=>this.bam.getRecordsForRange(this.chrPrefixFixer(s.chrom),s.startPos,s.endPos).then(f=>f.map(l=>({chrom:s.chrom,start:l.get("start"),end:l.get("end"),name:l.get("name"),MD:l.get("MD"),cigar:l.get("cigar"),mapq:l.get("mq"),strand:l.get("strand")===1?"+":"-"})))));this.publishData(o.flat())}}}class JD extends Os(Vi){constructor(n,r){const i={channel:"x",windowSize:3e6,debounceDomainChange:200,...n};super(r,i.channel);St(this,"lastRequestId",0);St(this,"tbiIndex");if(this.params=i,!this.params.url)throw new Error("No URL provided for TabixSource");this.params.debounceDomainChange>0&&(this.onDomainChanged=bu(this.onDomainChanged.bind(this),this.params.debounceDomainChange,!1)),this.initializedPromise=new Promise(a=>{Promise.all([Promise.resolve().then(()=>hw),Promise.resolve().then(()=>iO),Promise.resolve().then(()=>Hs)]).then(([{Buffer:o},{TabixIndexedFile:s},{RemoteFile:f}])=>{typeof window<"u"&&(window.Buffer??(window.Buffer=o));const l=u=>new f(zs(u,this.view.getBaseUrl()));this.tbiIndex=new s({filehandle:l(this.params.url),tbiFilehandle:l(this.params.indexUrl??this.params.url+".tbi")}),a()})})}async onDomainChanged(n){const r=this.params.windowSize;if(n[1]-n[0]>r)return;const i=this.quantizeInterval(n,r);this.checkAndUpdateLastInterval(i)&&this.doRequest(i)}async doRequest(n){const r=await this.getFeatures(n);r.requestId<this.lastRequestId||this.publishData(r.features)}async getFeatures(n){await this.initializedPromise;let r=++this.lastRequestId;const i=new AbortController,a=this.genome.continuousToDiscreteChromosomeIntervals(n),o=await Promise.all(a.map(async s=>{const f=[];return await this.tbiIndex.getLines(s.chrom,s.startPos,s.endPos,{lineCallback:l=>{f.push(l)},signal:i.signal}),this._parseFeatures(f)}));return{requestId:r,abort:()=>i.abort(),features:o.flat()}}_parseFeatures(n){return[]}}class e9 extends JD{constructor(n,r){super(n,r);ce(this,Ll,void 0);Promise.resolve().then(()=>HO).then(i=>{mn(this,Ll,i.default)})}_parseFeatures(n){var i;return(i=$(this,Ll))==null?void 0:i.parseStringSync(n.join(`
249
+ `),{parseSequences:!1})}}Ll=new WeakMap;function t9(e,t){if(Hy(e))return new UD(e,t);if(GD(e))return new HD(e,t);if(VD(e))return new jD(e,t);if(n9(e))return u9(e.lazy,t);throw new Error("Cannot figure out the data source type: "+JSON.stringify(e))}function n9(e){return"lazy"in e}function r9(e){return(e==null?void 0:e.type)=="axisTicks"}function i9(e){return(e==null?void 0:e.type)=="axisGenome"}function a9(e){return(e==null?void 0:e.type)=="indexedFasta"}function o9(e){return(e==null?void 0:e.type)=="bigwig"}function s9(e){return(e==null?void 0:e.type)=="bigbed"}function l9(e){return(e==null?void 0:e.type)=="bam"}function f9(e){return(e==null?void 0:e.type)=="gff3"}function u9(e,t){if(r9(e))return new ZD(e,t);if(i9(e))return new WD(e,t);if(a9(e))return new YD(e,t);if(o9(e))return new QD(e,t);if(s9(e))return new $D(e,t);if(l9(e))return new KD(e,t);if(f9(e))return new e9(e,t);throw new Error("Cannot figure out the data source type: "+JSON.stringify(e))}function c9(e){const t=Object.keys(e).filter(r=>typeof r=="string"),n=new Function("source","return { "+t.map(r=>JSON.stringify(r)).map(r=>`${r}: source[${r}]`).join(`,
250
+ `)+" };");return n.properties=t,n}class yu extends Je{get behavior(){return Un}constructor(){super();const t=n=>{const r=c9(n);this.handle=i=>this._propagate(r(i)),this.handle(n)};this.handle=t,this.beginBatch=n=>{ly(n)&&(this.handle=t),super.beginBatch(n)}}}function h9(e){return"name"in e}class Vy extends Ls{constructor(n,r,i){super();ce(this,Ol,void 0);this.provider=i,this.params=n}get identifier(){return this.params.name}updateDynamicData(n){mn(this,Ol,n),this.loadSynchronously()}loadSynchronously(){const n=$(this,Ol)??this.provider(this.params.name)??[];let r=i=>i;if(Array.isArray(n))n.length>0&&(r=Uy(n[0]));else throw new Error(`Named data "${this.params.name}" is not an array!`);this.reset(),this.beginBatch({type:"file"});for(const i of n)this._propagate(r(i));this.complete()}async load(){this.loadSynchronously()}}Ol=new WeakMap;class jy{constructor(){this._dataSourcesByHost=new Map,this._collectorsByHost=new Map,this._observers=new Map}get dataSources(){return[...new Set(this._dataSourcesByHost.values()).values()]}get collectors(){return[...this._collectorsByHost.values()]}addObserver(t,n){let r=this._observers.get(n);r||(r=[],this._observers.set(n,r)),r.push(t)}_relayObserverCallback(t,n){const r=this._observers.get(n);if(r)for(const i of r)i(t)}addDataSource(t,n){this._dataSourcesByHost.set(n,t)}findDataSourceByKey(t){return this._dataSourcesByHost.get(t)}findNamedDataSource(t){let n,r=[];for(const[i,a]of this._dataSourcesByHost.entries())if(a instanceof Vy&&t==a.identifier){if(n&&n!==a)throw new Error(`Found multiple instances of named data: ${t}. Data flow optimization is broken (it's a bug).`);n=a,r.push(i)}if(n)return{dataSource:n,hosts:r}}addCollector(t,n){this._collectorsByHost.set(n,t),t.observers.push(r=>this._relayObserverCallback(r,n))}findCollectorByKey(t){return this._collectorsByHost.get(t)}initialize(){for(const t of this.dataSources)t.visit(n=>n.initialize())}}function d9(e,t){const n=new Map,r=[];for(const i of e)n.set(i,{ref:i,children:[]});for(const i of n.values()){const a=n.get(t(i.ref));a?a.children.push(i):r.push(i)}return r}function qy(e,t,n){var i,a;const r=(i=t.preOrder)==null?void 0:i.call(t,e);if(r)return r;for(const o of n(e)){const s=qy(o,t,n);if(s==="stop")return s}return(a=t.postOrder)==null?void 0:a.call(t,e)}function p9(e,t){return qy(e,t,n=>n.children)}function g9(e,t){const n=[];let r;const i=t??new jy,a=[];function o(c,h=()=>{}){if(!r)throw h()||new Error("Cannot append data flow node, no parent exist!");return r.addChild(c),r=c,c}function s(c,h){return o(c,()=>new Error(`Cannot append a transform because no (inherited) data are available! ${h?JSON.stringify(h):""}`))}function f(c,h){for(const d of c){let p;try{p=ND(d,h)}catch(b){throw console.warn(b),new Error(`Cannot initialize "${d.type}" transform: ${b}`)}p.behavior&Hr&&s(new yu),s(p)}}const l=c=>{if(n.push(r),c.spec.data){const h=h9(c.spec.data)?new Vy(c.spec.data,c,c.context.getNamedDataFromProvider):t9(c.spec.data,c);r=h,i.addDataSource(h,c)}if(c.spec.transform&&f(c.spec.transform,c),c instanceof Qt){if(!r)throw new Error(`A unit view (${c.getPathString()}) has no (inherited) data source`);const h=m9(c);if(h){a.push(h.rewrite);for(const p of h.transforms)s(p)}c.mark.isPickingParticipant()&&(s(new yu),s(new Oy({type:"identifier"})));const d=new Ry({type:"collect",groupby:c.getFacetFields(),sort:b9(c,h==null?void 0:h.rewrittenEncoding)});o(d),i.addCollector(d,c)}},u=d9(e.getDescendants(),c=>c.dataParent);for(const c of u)p9(c,{preOrder:h=>l(h.ref),postOrder:()=>{r=n.pop()}});return a.forEach(c=>c()),i}function m9(e){var a;const t=[],n={},r=[];for(const[o,s]of Object.entries(e.getEncoding())){const f=o;As(f)&&Ib(s)&&r.push({channel:f,chromPosDef:s})}const i=tf(r,o=>Pi(o.channel),o=>o.chromPosDef.chrom);for(const[o,s]of i.entries())for(const[f,l]of s.entries()){const u=[],c=[],h=[];for(const{channel:d,chromPosDef:p}of l){const b=S=>S.replace(/[^A-Za-z0-9_]/g,""),y=["_linearized_",b(p.chrom),"_",b(p.pos)].join(""),w={...((a=e.spec.encoding)==null?void 0:a[d])??e.getEncoding()[d]??{},field:y};delete w.chrom,delete w.pos,!w.type&&p.type&&(w.type=p.type),n[d]=w,u.push(p.pos),h.push(p.offset??0),c.push(y)}t.push(new yu),t.push(new Py({type:"linearizeGenomicCoordinate",channel:o,chrom:f,pos:u,offset:h,as:c},e))}return t.length?{transforms:t,rewrittenEncoding:n,rewrite:()=>{e.spec.encoding={...e.spec.encoding,...n},ty(e.mark,"encoding")}}:void 0}function b9(e,t){var r;const n={...e.getEncoding(),...t}.x;if(Lt(n)&&(r=e.getScaleResolution("x"))!=null&&r.isZoomable()){if(vs(n))return{field:n.field};if(!xs(n))throw new Error("A zoomable x channel must be mapped to a field.")}}function Zy(e,t=void 0){if(e.parent!==t)return!1;for(const n of e.children)if(!Zy(n,e))return!1;return!0}function t0(e,t=!1){if(e.behavior&Zd&&(t=!0),e instanceof yu)if(t)t=!1;else{const n=e.children[0];e.excise(),n&&t0(n,t);return}e.behavior&Un&&(t=!1);for(let n=0,r=e.children.length;n<r;n++)t0(e.children[n],t||r>1)}function y9(e){const t=[...e._dataSourcesByHost.entries()],n=new Map;for(const r of t){const i=r[1];i.identifier&&!n.has(i.identifier)&&n.set(i.identifier,i)}e._dataSourcesByHost.clear();for(let[r,i]of t){const a=n.get(i.identifier);a&&(a.adoptChildrenOf(i),i=a),e.addDataSource(i,r)}}function w9(e){if(t0(e),!Zy(e))throw new Error("Encountered a bug! There's a problem in the data flow structure.")}function v9(e){for(const t of e.dataSources)w9(t);y9(e)}function x9(e){const t=new Set;e.visit(n=>{for(const r of Object.values(n.resolutions.scale)){const i=r.name;if(i&&t.has(i))throw new Error(`The same scale name "${i}" occurs in multiple scale resolutions!`);t.add(i)}})}function A9(e){for(const t of Ba){const n=e.getScaleResolution(t);n&&!n.name&&n.isZoomable()&&(n.name=`${t}_at_root`)}}async function E9(e,t,n){var o;if(!e.import.url)throw new Error("Cannot import, not an import spec: "+JSON.stringify(e));const r=gf({baseURL:t}),i=e.import.url,a=JSON.parse(await r.load(i).catch(s=>{throw new Error(`Could not load imported view spec: ${i}
251
+ Reason: ${s.message}`)}));if(n.isViewSpec(a))return a.baseUrl=(o=i.match(/^[^?#]*\//))==null?void 0:o[0],a;throw new Error(`The imported spec "${i}" is not a view spec: ${JSON.stringify(e)}`)}function _9(e){const t=e.getSize().addPadding(e.getOverhang()),n=r=>r.grow>0?void 0:r.px;return{width:n(t.width),height:n(t.height)}}function or(e){return()=>e}const kn=class kn{static create(t,n,r,i){return new kn(or(t),or(n),or(r),or(i))}_offset(t,n){const r=this["_"+t];if(n===0)return r;switch(typeof n){case"number":return()=>r()+n;case"function":return()=>r()+n();default:throw new Error("Not a number of function")}}_passThrough(t){return this._offset(t,0)}constructor(t,n,r,i){this._x=t,this._y=n,this._width=r,this._height=i}get x(){return this._x()}get y(){return this._y()}get width(){return this._width()}get height(){return this._height()}get x2(){return this._x()+this._width()}get y2(){return this._y()+this._height()}equals(t){return t?this===t||this.x===t.x&&this.y===t.y&&this.width===t.width&&this.height===t.height:!1}modify(t){if(!Object.keys(t).length)return this;const n=r=>{const i=t[r];return typeof i=="number"?or(i):typeof i=="function"?i:this._passThrough(r)};return new kn(n("x"),n("y"),n("width"),n("height"))}translate(t,n){return t===0&&n===0?this:new kn(this._offset("x",t),this._offset("y",n),this._passThrough("width"),this._passThrough("height"))}translateBy(t){return this.translate(t.x,t.y)}expand(t,n=1){return t.left==0&&t.top==0&&t.right==0&&t.bottom==0?this:new kn(t.left?this._offset("x",-t.left*n):this._passThrough("x"),t.top?this._offset("y",-t.top*n):this._passThrough("y"),t.width?this._offset("width",t.width*n):this._passThrough("width"),t.height?this._offset("height",t.height*n):this._passThrough("height"))}shrink(t){return this.expand(t,-1)}intersect(t){return this===t||t==null?this:new kn(()=>Math.max(this.x,t.x),()=>Math.max(this.y,t.y),()=>Math.min(this.x2,t.x2)-Math.max(this.x,t.x),()=>Math.min(this.y2,t.y2)-Math.max(this.y,t.y))}union(t){return this===t||t==null?this:new kn(()=>Math.min(this.x,t.x),()=>Math.min(this.y,t.y),()=>Math.max(this.x2,t.x2)-Math.min(this.x,t.x),()=>Math.max(this.y2,t.y2)-Math.min(this.y,t.y))}isDefined(){return this.width>=0&&this.height>=0}flatten(){return new kn(or(this.x),or(this.y),or(this.width),or(this.height))}containsPoint(t,n){return t>=this.x&&t<this.x2&&n>=this.y&&n<this.y2}normalizePoint(t,n){return{x:(t-this.x)/this.width,y:(n-this.y)/this.height}}toString(){return`Rectangle: x: ${this.x}, y: ${this.y}, width: ${this.width}, height: ${this.height}`}toRoundedString(){return`Rectangle: x: ${Math.round(this.x)}, y: ${Math.round(this.y)}, width: ${Math.round(this.width)}, height: ${Math.round(this.height)}`}};St(kn,"ZERO",kn.create(0,0,0,0));let sr=kn;class Wy{constructor(t){this.globalOptions=t}pushView(t,n){}popView(t){}renderMark(t,n){}}class Yy extends Wy{constructor(t,n){super(t),this.webGLHelper=n,this.buffer=[],this.coords=void 0,this.views=new Set}pushView(t,n){this.views.add(t),this.coords=n}renderMark(t,n){if(this.globalOptions.picking&&!t.isPickingParticipant())return;const r=t.render(n);r&&this.buffer.push({mark:t,callback:r,coords:this.coords,clipRect:n.clipRect})}render(){if(this.batch||this._buildBatch(),this.batch.length==0)return;const t=this.webGLHelper.gl,n=this.globalOptions.picking;t.bindFramebuffer(t.FRAMEBUFFER,n?this.webGLHelper._pickingBufferInfo.framebuffer:null),this.webGLHelper.clearAll();for(const r of this.views)r.onBeforeRender();for(const r of this.batch)r();n&&t.bindFramebuffer(t.FRAMEBUFFER,null)}_buildBatch(){this.batch=[];let t=!0,n=!0;const r=o=>()=>{t&&o()},i=o=>()=>{t&&n&&o()},a=tf(this.buffer.reverse(),o=>o.mark);for(const[o,s]of[...a.entries()].reverse()){if(!o.isReady())continue;this.batch.push(()=>{t=o.unitView.getEffectiveOpacity()>0}),this.batch.push(...o.prepareRender(this.globalOptions).map(l=>r(l)));let f;for(const l of s){const u=l.coords;u.equals(f)||this.batch.push(r(()=>{n=o.setViewport(u,l.clipRect)})),this.batch.push(i(l.callback)),f=l.coords}}}}class S9 extends Wy{constructor(...t){super({}),this.contexts=t}pushView(t,n){for(const r of this.contexts)r.pushView(t,n)}popView(t){for(const n of this.contexts)n.popView(t)}renderMark(t,n){for(const r of this.contexts)r.renderMark(t,n)}}class C9{constructor(t,n){this.point=t,this.uiEvent=n,this.stopped=!1,this.target=void 0}stopPropagation(){this.stopped=!0}get type(){return this.uiEvent.type}}class T9{constructor(t,n){this.x=t,this.y=n}equals(t){return t?t===this||t.x===this.x&&t.y===this.y:!1}}const I9=e=>new Promise(t=>setTimeout(t,e));function k9(e){const t=e.requestAnimationFrame||window.requestAnimationFrame,n=e.signal,r=()=>new Promise((i,a)=>{if(n!=null&&n.aborted)return a("aborted");const o=performance.now(),s=o+(e.duration||1e3),f=typeof e.from=="number"?e.from:0,l=typeof e.to=="number"?e.to:1,u=e.easingFunction||(b=>b),c=b=>(b-o)/(s-o),h=b=>b*(l-f)+f,d=b=>Math.max(0,Math.min(1,b)),p=b=>{n!=null&&n.aborted?a("aborted"):(e.onUpdate(h(u(d(c(b))))),b<s?t(p):(e.onUpdate(h(u(1))),i()))};t(p)});return e.delay?n!=null&&n.aborted?Promise.reject("aborted"):I9(e.delay).then(r):r()}class B9{constructor(t){this._renderCallback=t,this._renderRequested=!1,this._warn=!1,this.transitions=[]}requestTransition(t){this.cancelTransition(t),this.transitions.push(t),this.requestRender()}cancelTransition(t){const n=this.transitions.indexOf(t);n>=0&&this.transitions.splice(n,1)}requestRender(){this._renderRequested?this._warn&&console.warn("Render already requested!"):(this._renderRequested=!0,window.requestAnimationFrame(t=>{this._renderRequested=!1;const n=this.transitions;this.transitions=[];let r;for(;r=n.shift();)r(t);this._renderCallback(t)}))}transition(t){return k9({requestAnimationFrame:n=>this.requestTransition(n),...t})}}class D9{constructor(t){this.genomes=new Map,this.baseUrl=t}async initialize(t){const n=new JB(t);return this.genomes.set(n.name,n),Promise.all([...this.genomes.values()].map(r=>r.load(this.baseUrl)))}getGenome(t){if(!this.genomes.size)throw new Error("No genomes have been configured!");if(t){const n=this.genomes.get(t);if(!n)throw new Error(`No genome with the name ${t} has been configured!`);return n}else{if(this.genomes.size>1)throw new Error("Cannot pick a default genome! More than one have been configured!");return this.genomes.values().next().value}}}const F9="data:image/png;base64,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",R9={thin:100,light:300,regular:400,normal:400,medium:500,bold:700,black:900};class P9{constructor(t){this._webGLHelper=t,this.fontRepository="https://raw.githubusercontent.com/etiennepinchon/aframe-fonts/master/fonts/",this._fonts=new mi([],JSON.stringify),this._metadataPromises=new Map,this._fontPromises=new Map,this._promises=[],this._defaultFontEntry={metrics:Hd(My),texture:t?this._createTextureNow(F9):void 0}}async waitUntilReady(){await Promise.all(this._promises)}getFont(t,n="normal",r="regular"){if(Qe(r)&&(r=R9[r.toLowerCase()],!r))throw new Error("Unknown font weight: "+r);const i={family:t,style:n,weight:r};let a=this._fonts.get(i);return a||(a={metrics:void 0,texture:void 0},this._fonts.set(i,a),this._promises.push(this._loadFontEntry(a,i))),a}async _loadFontEntry(t,n){try{const r=await this._loadMetadata(n.family),i=N9(r,n),a=this.fontRepository+Qy(n.family)+"/"+i.replace(/\.\w+/,""),o=this._createTexture(a+".png"),s=this._loadFont(a+".json");t.texture=await o,t.metrics=await s}catch(r){console.log("Cannot load font. Using default.",r),t.metrics=this._defaultFontEntry.metrics,t.texture=this._defaultFontEntry.texture}}_loadFont(t){let n=this._fontPromises.get(t);return n||(n=fetch(t).then(r=>{if(!r.ok)throw new Error("Could not load font: "+r.status);return r}).then(r=>r.json()).then(r=>Hd(r)),this._fontPromises.set(t,n)),n}_loadMetadata(t){const n=Qy(t);let r=this._metadataPromises.get(n);return r||(r=fetch(this.fontRepository+n+"/METADATA.pb").then(i=>{if(!i.ok)throw new Error("Could not load font metadata: "+i.status);return i}).then(i=>i.text()).then(i=>M9(i)).catch(i=>{console.warn(i)}),this._metadataPromises.set(n,r)),r}getDefaultFont(){return this._defaultFontEntry}_createTexture(t){const n=this._webGLHelper.gl;return new Promise((r,i)=>{ks(n,{src:t,min:n.LINEAR},(a,o,s)=>{a?i(a):r(o)})})}_createTextureNow(t){const n=this._webGLHelper.gl;let r;const i=new Promise((a,o)=>{r=ks(n,{src:t,min:n.LINEAR},(s,f,l)=>{s?o(s):a(f)})});return this._promises.push(i),r}}function Qy(e){return e.toLowerCase().replaceAll(/[^\w]/g,"")}function M9(e){const t=e.split(`
252
+ `),n=[];let r;for(const i of t)if(i.startsWith("fonts {")&&(r={name:void 0,style:void 0,weight:void 0,filename:void 0,post_script_name:void 0,full_name:void 0,copyright:void 0}),i.startsWith("}")&&(n.push(r),r=void 0),r){let a=i.match(/^\s*([A-Za-z_]+):[ ]?"(.*)"$/);if(a){const o=a[1];r[o]=a[2]}if(a=i.match(/^\s*([A-Za-z_]+):[ ]?(\d+)$/),a){const o=a[1];r[o]=+a[2]}}return n}function N9(e,t){let n,r=Number.POSITIVE_INFINITY;for(const i of e)if(t.family.localeCompare(i.name,void 0,{sensitivity:"accent"})==0&&t.style==i.style){const a=Math.abs(t.weight-i.weight);a<r&&(r=a,n=i)}return n==null?void 0:n.filename}function L9(e,t){const n=[];let r;for(const i of e.split(`
253
+ `))if(i.startsWith(">"))r={identifier:i.match(/>(\S+)/)[1],sequence:""},n.push(r);else if(r)r.sequence+=i.trim();else throw new Error("Invalid fasta file!");return n}class O9{constructor(t,n){this.animator=t,this.disabled=!!n,this.damping=.015,this.acceleration=.3,this.accelerationThreshold=100,this.lowerLimit=.5,this.loop=!1,this.momentum=0,this.timestamp=0,this.callback=null,this._transitionCallback=this.animate.bind(this),this.clear()}clear(){this.momentum=0,this.timestamp=null,this.loop=null,this.callback=null}cancel(){this.loop&&(this.animator.cancelTransition(this._transitionCallback),this.clear())}setMomentum(t,n){if(this.disabled){n(t);return}t*this.momentum<0?this.momentum=0:Math.abs(t)>this.accelerationThreshold?this.momentum=l_([this.momentum,t],this.acceleration):this.momentum=t,this.callback=n,this.loop||this.animate()}animate(t){this.callback(this.momentum);const n=t-this.timestamp||0;this.timestamp=t;const r=Math.abs(this.momentum);this.momentum=Math.sign(this.momentum)*Math.max(0,r-((r*this.damping)**1.5+.04)*n),Math.abs(this.momentum)>this.lowerLimit?(this.loop=!0,this.animator.requestTransition(this._transitionCallback)):this.clear()}}function z9(e){const t={},n=["string","number","boolean"],r=["wheelDelta","wheelDeltaX","wheelDeltaY"];for(const i in e){const a=i;!r.includes(i)&&n.includes(typeof e[a])&&(t[a]=e[a])}return t}const Xy=new Map;async function U9(e,t,n){const r=e.symbol;let i=Xy.get(r)??await V9(e.symbol);return i?(Xy.set(r,i),Fn`
254
+ <div class="title">
255
+ <strong>${i.name}</strong>
256
+ ${i.description}
257
+ </div>
258
+ <p class="summary">${i.summary}</p>
259
+ <p class="source">Source: NCBI RefSeq Gene</p>
260
+ `):null}async function G9(e){console.log("Searching: "+e);const t={mode:"cors"},r=(await fetch(`https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=gene&term=${e}[GENE]&sort=relevance&retmode=json`,t).then(i=>i.json())).esearchresult.idlist[0];return r?(await fetch(`https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi?db=gene&id=${r}&retmode=json`,t).then(o=>o.json())).result[r]:null}const H9=bu(G9,500);function V9(e){return H9(e)}const j9=pt(".4~r"),q9=pt(".4~e");function $y(e){return e==null?Fn` <span class="na">NA</span> `:Qe(e)?e.substring(0,30):Number.isInteger(e)?""+e:Ft(e)?Math.abs(e)>Math.pow(10,8)||Math.abs(e)<Math.pow(10,-8)?q9(e):j9(e):Xl(e)?e?"True":"False":qt(e)?Fn`${e.map((t,n)=>[$y(t),n<e.length-1?", ":nt])}`:"?"+typeof e+" "+e}async function Z9(e,t,n){const r=(f,l)=>{var u;for(const[c,h]of Object.entries(t.encoders))if((u=h==null?void 0:h.accessor)!=null&&u.fields.includes(f))switch(c){case"color":case"fill":case"stroke":return Fn`
261
+ <span
262
+ class="color-legend"
263
+ style=${`background-color: ${h(l)}`}
264
+ ></span>
265
+ `}return""},i=Object.entries(e).filter(([f,l])=>!f.startsWith("_"));if(i.length===0)return;const a=Fn`
266
+ <table class="attributes">
267
+ ${i.map(([f,l])=>Fn`
268
+ <tr>
269
+ <th>${f}</th>
270
+ <td>${$y(l)} ${r(f,e)}</td>
271
+ </tr>
272
+ `)}
273
+ </table>
274
+ `,o=t.unitView.getTitleText(),s=o?Fn`
275
+ <div class="title">
276
+ <strong>${o}</strong>
277
+ </div>
278
+ `:"";return Fn`${s}${a}`}class Us extends Hi{constructor(n,r,i,a,o,s){super(n,r,i,a,o,s);ce(this,br,[]);this.spec=n,this.needsAxes={x:!0,y:!0}}async initializeChildren(){mn(this,br,await Promise.all(this.spec.layer.map((n,r)=>this.context.createOrImportView(n,this,this,"grid"+r,i=>{if(!s0(i)&&!o0(i))throw new Gi("LayerView accepts only unit or layer specs as children!",this)}))))}get children(){return $(this,br).slice()}*[Symbol.iterator](){for(const n of $(this,br))yield n}render(n,r,i={}){if(this.isConfiguredVisible()){n.pushView(this,r);for(const a of $(this,br))a.render(n,r,i);n.popView(this)}}propagateInteractionEvent(n){this.handleInteractionEvent(void 0,n,!0);for(let r=$(this,br).length-1;r>=0;r--)if($(this,br)[r].propagateInteractionEvent(n),n.stopped)return;this.handleInteractionEvent(void 0,n,!1)}}br=new WeakMap;class Ky{constructor(t,n){this.n=t,this.maxCols=n??1/0}get nRows(){return this.maxCols==1/0?1:Math.ceil(this.n/this.maxCols)}get nCols(){return Math.min(this.n,this.maxCols)}get rowIndices(){const t=[],n=this.nCols,r=this.nRows;for(let i=0;i<r;i++){const a=[];t.push(a);for(let o=0;o<n;o++){const s=i*n+o;s<this.n&&a.push(s)}}return t}get colIndices(){const t=[],n=this.nCols,r=this.nRows;for(let i=0;i<n;i++){const a=[];t.push(a);for(let o=0;o<r;o++){const s=o*n+i;s<this.n&&a.push(s)}}return t}getCellIndex(t,n){let r=0;if(this.maxCols==1/0)r=n==0?t:void 0;else{if(t>=this.maxCols)return;r=n*this.nCols+t}return r<this.n?r:void 0}getCellCoords(t){if(!(t<0||t>=this.n))return[t%this.nCols,Math.floor(t/this.nCols)]}}const W9="chromosome_ticks_and_labels",Y9={x:"width",y:"height"};function n0(e){return e=="x"?"y":"x"}const wu={x:["bottom","top"],y:["left","right"]},r0=Object.fromEntries(Object.entries(wu).map(([e,t])=>t.map(n=>[n,e])).flat(1));function jr(e){return r0[e]}class Jy extends Us{constructor(t,n,r,i,a,o){const s=n=="locus",f={...s?X9:ew,...Q9(n,t),...t};super(s?$9(f,n):tw(f,n),r,i,a,`axis_${t.orient}`,{blockEncodingInheritance:!0,contributesToScaleDomain:!1,...o}),this.axisProps=f}getSize(){const t={px:this.getPerpendicularSize()},n={grow:1};return r0[this.axisProps.orient]=="x"?new Vr(n,t):new Vr(t,n)}getPerpendicularSize(){return i0(this.axisProps)}isPickingSupported(){return!1}}function i0(e){const t=jr(e.orient);let n=e.ticks&&e.tickSize||0;return e.labels&&(n+=e.labelPadding,t=="x"?n+=e.labelFontSize:n+=30),e.title&&(n+=e.titlePadding+e.titleFontSize),n=Math.min(e.maxExtent||1/0,Math.max(e.minExtent||0,n)),n}const ew={values:null,minExtent:20,maxExtent:1/0,offset:0,domain:!0,domainWidth:1,domainColor:"gray",domainDash:null,domainDashOffset:0,domainCap:"square",ticks:!0,tickSize:5,tickWidth:1,tickColor:"gray",tickDash:null,tickDashOffset:0,tickCap:"square",tickCount:null,tickMinStep:null,labels:!0,labelAlign:"center",labelBaseline:"middle",labelPadding:4,labelFontSize:10,labelLimit:180,labelColor:"black",format:null,titleColor:"black",titleFont:"sans-serif",titleFontSize:10,titlePadding:3};function Q9(e,t){const n=t.orient,r=e=="nominal"||e=="ordinal";let i="center",a="middle",o=t.labelAngle??((n=="top"||n=="bottom")&&r?-90:0);switch(n){case"left":i="right";break;case"right":i="left";break;case"top":case"bottom":Math.abs(o)>30?(i=o>0==(n=="bottom")?"left":"right",a="middle"):a=n=="top"?"alphabetic":"top";break}return{labelAlign:i,labelAngle:o,labelBaseline:a}}function tw(e,t){const n={...e,extent:i0(e)},r=jr(n.orient),i=n0(r),a=n.orient=="bottom"||n.orient=="right"?1:-1,o=n.orient=="bottom"||n.orient=="left"?1:0,s=()=>({name:"domain",data:{values:[0]},mark:{type:"rule",clip:!1,strokeDash:n.domainDash,strokeCap:n.domainCap,color:n.domainColor,[i]:o,size:n.domainWidth}}),f=()=>({name:"labels",mark:{type:"text",clip:!1,align:n.labelAlign,angle:n.labelAngle,baseline:n.labelBaseline,[i+"Offset"]:(n.tickSize+n.labelPadding)*a,[i]:o,size:n.labelFontSize,color:n.labelColor,minBufferSize:1500},encoding:{[r]:{field:"value",type:t},text:{field:"label"}}}),l=()=>({name:"ticks",mark:{type:"rule",clip:!1,strokeDash:n.tickDash,strokeCap:n.tickCap,color:n.tickColor,size:n.tickWidth,minBufferSize:300},encoding:{[i]:{value:o},[i+"2"]:{value:o-n.tickSize/n.extent*(o?1:-1)}}}),u=()=>({name:"title",data:{values:[0]},mark:{type:"text",clip:!1,align:"center",baseline:n.orient=="bottom"?"bottom":"top",angle:[0,90,0,-90][["top","right","bottom","left"].indexOf(n.orient)],text:n.title,color:n.titleColor,[r]:.5,[i]:1-o}}),c=()=>{const d={name:"ticks_and_labels",encoding:{[r]:{field:"value",type:t}},layer:[]};return n.ticks&&d.layer.push(l()),n.labels&&d.layer.push(f()),d},h={resolve:{scale:{[r]:"forced"}},[Y9[n0(r)]]:n.extent,data:{lazy:{type:"axisTicks",channel:r,axis:e}},layer:[]};return n.domain&&h.layer.push(s()),(n.ticks||n.labels)&&h.layer.push(c()),n.title&&h.layer.push(u()),h}const X9={...ew,chromTicks:!0,chromTickSize:18,chromTickWidth:1,chromTickColor:"#989898",chromTickDash:[4,2],chromTickDashOffset:1,chromLabels:!0,chromLabelFontSize:13,chromLabelFontWeight:"normal",chromLabelFontStyle:"normal",chromLabelColor:"black",chromLabelAlign:"left",chromLabelPadding:7};function $9(e,t){const n={...e,extent:i0(e)},r=jr(n.orient),i=n0(r),a=n.orient=="bottom"||n.orient=="left"?1:0,o=()=>({name:"chromosome_ticks",mark:{type:"rule",strokeDash:e.chromTickDash,strokeDashOffset:e.chromTickDashOffset,[i]:a,[i+"2"]:a-n.chromTickSize/n.extent*(a?1:-1),color:e.chromTickColor,size:n.chromTickWidth}}),s=()=>{let u;switch(n.orient){case"top":u={y:0,angle:0,paddingX:4,dy:-n.chromLabelPadding,viewportEdgeFadeWidthLeft:20,viewportEdgeFadeWidthRight:20,viewportEdgeFadeDistanceRight:-10,viewportEdgeFadeDistanceLeft:-20};break;case"bottom":u={y:1,angle:0,paddingX:4,dy:n.chromLabelPadding+n.chromLabelFontSize*.73,viewportEdgeFadeWidthLeft:20,viewportEdgeFadeWidthRight:20,viewportEdgeFadeDistanceRight:-10,viewportEdgeFadeDistanceLeft:-20};break;case"left":u={x:1,angle:-90,paddingY:4,dy:-n.chromLabelPadding,viewportEdgeFadeWidthBottom:20,viewportEdgeFadeWidthTop:20,viewportEdgeFadeDistanceBottom:-20,viewportEdgeFadeDistanceTop:-10};break;case"right":u={x:0,angle:90,align:"right",paddingY:4,dy:-n.chromLabelPadding};break;default:u={}}return{name:"chromosome_labels",mark:{type:"text",size:n.chromLabelFontSize,font:n.chromLabelFont,fontWeight:n.chromLabelFontWeight,fontStyle:n.chromLabelFontStyle,color:n.chromLabelColor,align:e.chromLabelAlign,baseline:"alphabetic",clip:!1,...u},encoding:{[r+"2"]:{field:"continuousEnd",type:t},text:{field:"name"}}}};let f;switch(n.orient){case"bottom":case"top":f={};break;case"left":f={labelAngle:-90,labelAlign:"center",labelPadding:6};break;case"right":f={labelAngle:90,labelAlign:"center",labelPadding:6};break;default:f={}}const l=tw({...e,...f},t);if(e.chromTicks||e.chromLabels){const u={name:W9,data:{lazy:{type:"axisGenome",channel:jr(n.orient)}},encoding:{[r]:{field:"continuousStart",type:t,band:0}},layer:[]};if(e.chromTicks&&u.layer.push(o()),e.chromLabels){u.layer.push(s());let c;l.layer.filter(h=>h.name=="ticks_and_labels").forEach(h=>h.layer.filter(d=>d.name=="labels").forEach(d=>{c=d.mark})),c&&(n.orient=="top"||n.orient=="bottom"?(c.viewportEdgeFadeWidthLeft=30,c.viewportEdgeFadeDistanceLeft=40):(c.viewportEdgeFadeWidthBottom=30,c.viewportEdgeFadeDistanceBottom=40))}l.layer.push(u)}return l}class K9 extends Us{constructor(t,n,r,i,a,o){const f={...n=="locus"?J9:nw,...t};super(rF(f,n),r,i,a,`axisGrid_${t.orient}`,{blockEncodingInheritance:!0,contributesToScaleDomain:!1,...o}),this.axisProps=f}getOrient(){return this.axisProps.orient}isPickingSupported(){return!1}}const nw={values:null,grid:!1,gridCap:"butt",gridColor:"lightgray",gridDash:null,gridOpacity:1,gridWidth:1,tickCount:null,tickMinStep:null},J9={...nw,chromGrid:!1,chromGridCap:"butt",chromGridColor:"gray",chromGridDash:[1,5],chromGridOpacity:1,chromGridWidth:1};function eF(e,t){const n=e,r=jr(n.orient);return{name:"grid_lines",data:{lazy:{type:"axisTicks",channel:r,axis:e}},mark:{type:"rule",strokeDash:n.gridDash,strokeCap:n.gridCap,color:n.gridColor,size:n.gridWidth,opacity:n.gridOpacity,minBufferSize:300},encoding:{[r]:{field:"value",type:t}}}}function tF(e,t){const n=e,r=jr(n.orient);return{name:"chromosome_lines",data:{lazy:{type:"axisGenome",channel:r}},mark:{type:"rule",strokeDash:n.chromGridDash,strokeCap:n.chromGridCap,color:n.chromGridColor,size:n.chromGridWidth,opacity:n.chromGridOpacity},encoding:{[r]:{field:"continuousStart",type:t,band:0}}}}function nF(e,t){const n=e,r=jr(n.orient);return{name:"chromosome_fill",data:{lazy:{type:"axisGenome",channel:r}},mark:{type:"rect"},encoding:{[r]:{field:"continuousStart",type:t,band:0},[r+"2"]:{field:"continuousEnd",band:0},fill:{field:"odd",type:"nominal",scale:{domain:[!1,!0],range:[n.chromGridFillEven??"white",n.chromGridFillOdd??"white"]}},opacity:{field:"odd",type:"nominal",scale:{type:"ordinal",domain:[!1,!0],range:[n.chromGridFillEven?1:0,n.chromGridFillOdd?1:0]}}}}}function rF(e,t){const n={...e},r=[];return n.chromGrid&&(n.chromGridFillOdd||n.chromGridFillEven)&&r.push(nF(n,t)),n.chromGrid&&n.chromGridOpacity>0&&r.push(tF(n,t)),n.grid&&n.gridOpacity>0&&r.push(eF(n,t)),{name:"grid_layers",configurableVisibility:!1,resolve:{scale:{[jr(e.orient)]:"forced",fill:"independent",opacity:"independent"}},layer:r}}const rw={anchor:"middle",frame:"group",offset:10,orient:"top",align:void 0,angle:0,baseline:"alphabetic",dx:0,dy:0,color:void 0,font:void 0,fontSize:12,fontStyle:"normal",fontWeight:"normal"},iF={orient:"left",anchor:"middle",align:"right",baseline:"middle",angle:0,fontSize:12},aF={orient:"top",anchor:"start",align:"left",baseline:"top",offset:-10,dx:10,fontSize:12},oF={start:0,middle:.5,end:1},sF={start:"left",middle:"center",end:"right"};function lF(e){if(!e)return;const t=Qe(e)?{text:e}:e;if(!t.text||t.orient=="none")return;const n={"track-title":iF,overlay:aF}[t.style]??{},r={...rw,...n,...t};let i={},a={x:0,y:0};const o=oF[r.anchor??"middle"];switch(r.orient){case"top":a={x:o,y:1},i={baseline:"alphabetic",angle:0};break;case"right":a={x:1,y:1-o},i={baseline:"alphabetic",angle:90};break;case"bottom":a={x:o,y:0},i={baseline:"top",angle:0};break;case"left":a={x:0,y:o},i={baseline:"alphabetic",angle:-90};break}const s={...rw,...i,...n,...t},f={xOffset:0,yOffset:0};switch(r.orient){case"top":f.yOffset=-s.offset;break;case"right":f.xOffset=s.offset;break;case"bottom":f.yOffset=s.offset;break;case"left":f.xOffset=-s.offset;break}return{configurableVisibility:!1,data:{values:[{}]},mark:{type:"text",tooltip:null,clip:!1,...a,...f,text:s.text,align:s.align??sF[s.anchor],angle:s.angle,baseline:s.baseline,dx:s.dx,dy:s.dy,color:s.color,font:s.font,size:s.fontSize,fontStyle:s.fontStyle,fontWeight:s.fontWeight}}}function fF(e,t,n,r){if(e.type=="wheel"){e.uiEvent.preventDefault();const i=e.uiEvent,a=i.deltaMode?120:1;let{x:o,y:s}=e.point;if(r){const f=r.mark.encoders;f.x&&!f.x2&&!f.x.constantValue&&(o=+f.x(r.datum)*t.width+t.x),f.y&&!f.y2&&!f.y.constantValue&&(s=(1-+f.y(r.datum))*t.height+t.y)}Math.abs(i.deltaX)<Math.abs(i.deltaY)?n({x:o,y:s,xDelta:0,yDelta:0,zDelta:i.deltaY*a/300}):n({x:o,y:s,xDelta:-i.deltaX*a,yDelta:0,zDelta:0})}else if(e.type=="mousedown"&&e.uiEvent.button===0){const i=e.uiEvent;i.preventDefault();let a=i;const o=f=>{n({x:a.clientX,y:a.clientY,xDelta:f.clientX-a.clientX,yDelta:f.clientY-a.clientY,zDelta:0}),a=f},s=f=>{document.removeEventListener("mousemove",o),document.removeEventListener("mouseup",s)};document.addEventListener("mouseup",s,!1),document.addEventListener("mousemove",o,!1)}}class uF extends Hi{constructor(n,r,i,a,o,s,f){super(n,r,i,a,o,f);ce(this,yr);ce(this,Ec);ce(this,da);ce(this,zl);ce(this,Ul);ce(this,Gl);ce(this,_c);ce(this,ko);ce(this,Sc);ce(this,Co,1/0);ce(this,To,10);ce(this,Jt,[]);ce(this,ha,{});ce(this,Io,0);this.spec=n,mn(this,To,n.spacing??10),mn(this,Co,s),mn(this,Jt,[]),this.wrappingFacet=!1}appendChild(n){n.layoutParent??(n.layoutParent=this),$(this,Jt).push(new aw(n,this,$(this,Io))),LE(this,Io)._++}setChildren(n){mn(this,Jt,[]);for(const r of n)this.appendChild(r)}replaceChild(n,r){const i=$(this,Jt).findIndex(a=>a.view==n);if(i>=0)$(this,Jt)[i]=new aw(r,this,$(this,Io));else throw new Error("Not my child view!")}get children(){return $(this,Jt).map(n=>n.view)}get childCount(){return $(this,Jt).length}async createAxes(){const n=[];for(const r of Ba){const i=this.resolutions.axis[r];if(i){const a=i.getAxisProps();if(a){const o={title:i.getTitle(),orient:wu[r][0],...a},s=new Jy(o,i.scaleResolution.type,this.context,this,this);n.push(s.initializeChildren()),$(this,ha)[r]=s}}}return Promise.all([...n,...$(this,Jt).map(r=>r.createAxes())])}*[Symbol.iterator](){for(const n of $(this,Jt))yield*n.getChildren();for(const n of Object.values($(this,ha)))yield n}getOverhang(){return ie(this,_c,GE).call(this).union(ie(this,ko,Bc).call(this))}getSize(){return this._cache("size",()=>new Vr(ie(this,Ul,Cg).call(this,"column"),ie(this,Ul,Cg).call(this,"row")).addPadding(ie(this,ko,Bc).call(this)))}render(n,r,i={}){if(!this.isConfiguredVisible())return;this.layoutParent||(r=r.shrink(this.getPadding())),r=r.shrink(ie(this,ko,Bc).call(this)),n.pushView(this,r);const a={devicePixelRatio:this.context.devicePixelRatio},o=uy(ie(this,zl,Sg).call(this,"column"),r.width,a),s=uy(ie(this,zl,Sg).call(this,"row"),r.height,a),f=new Ky($(this,yr,ga).length,$(this,Co)??1/0),l=u=>Math.round(u*devicePixelRatio)/devicePixelRatio;for(const[u,c]of $(this,yr,ga).entries()){const{view:h,axes:d,gridLines:p,background:b,backgroundStroke:y,title:w}=c,[S,C]=f.getCellCoords(u),_=o[ie(this,Gl,Tg).call(this,"column",S)],k=s[ie(this,Gl,Tg).call(this,"row",C)],B=h.getViewportSize(),I=h.getSize(),R=h.getOverhang(),M=_.location-R.left,j=k.location-R.top,O=(Le,N)=>(Le[N].grow?(N=="width"?_:k).size:Le[N].px)+R[N],ne=O(B,"width"),oe=O(B,"height"),pe=O(I,"width"),ke=O(I,"height"),Xe=c.scrollbars.horizontal,De=c.scrollbars.vertical,$e=Xe?()=>l(Xe.viewportOffset):()=>0,qe=De?()=>l(De.viewportOffset):()=>0,Ke=new sr(()=>r.x+M,()=>r.y+j,()=>ne,()=>oe),Ee=h.isScrollable(),_e=Ee?new sr(()=>r.x+M-$e(),()=>r.y+j-qe(),()=>pe,()=>ke):Ke;c.coords=Ke;const dt=i.clipRect?Ke.intersect(i.clipRect):Ke;b==null||b.render(n,dt,{...i,clipRect:void 0});for(const Le of Object.values(p))Le.render(n,Ke,i);const Ht=pF(h)||Ee;Ht&&h.render(n,_e,{...i,clipRect:dt}),y==null||y.render(n,dt,{...i,clipRect:void 0});for(const[Le,N]of Object.entries(d)){const P=Le=="left"||Le=="right"?"vertical":"horizontal",q=c.scrollbars[P],H=q?Ke.modify(P=="vertical"?{y:()=>_e.y,height:ke}:{x:()=>_e.x,width:pe}):Ke,W=iw(H,Le,N);let E=i.clipRect;q&&(E=W.intersect(E).intersect(q?Ke.modify(P=="vertical"?{x:-1e5,width:2e5}:{y:-1e5,height:2e5}):void 0)),N.render(n,W,{...i,clipRect:E})}for(const Le of Object.values($(this,ha))){const P=Le.axisProps.orient;(P=="left"&&S==0||P=="right"&&S==f.nCols-1||P=="top"&&C==0||P=="bottom"&&C==f.nRows-1)&&Le.render(n,iw(Ke.shrink(c.view.getOverhang()),P,Le),i)}Ht||h.render(n,_e,i);for(const Le of Object.values(c.scrollbars))Le.updateScrollbar(Ke,_e),Le.render(n,r,i);w==null||w.render(n,Ke,i)}n.popView(this)}propagateInteractionEvent(n){if(this.handleInteractionEvent(void 0,n,!0),n.stopped)return;const r=$(this,yr,ga).find(a=>a.coords.containsPoint(n.point.x,n.point.y));for(const a of Object.values((r==null?void 0:r.scrollbars)??{}))if(a.coords.containsPoint(n.point.x,n.point.y)&&(a.propagateInteractionEvent(n),n.stopped))return;const i=r==null?void 0:r.view;i&&(i.propagateInteractionEvent(n),(i instanceof Qt||i instanceof Us)&&fF(n,r.coords,a=>ie(this,Sc,HE).call(this,r.coords,r.view,a),this.context.getCurrentHover())),!n.stopped&&this.handleInteractionEvent(void 0,n,!1)}getDefaultResolution(n,r){return"independent"}}Co=new WeakMap,To=new WeakMap,Jt=new WeakMap,ha=new WeakMap,Io=new WeakMap,yr=new WeakSet,ga=function(){return $(this,Jt).filter(n=>n.view.isConfiguredVisible())},Ec=new WeakSet,UE=function(){return new Ky($(this,yr,ga).length,$(this,Co)??1/0)},da=new WeakSet,jl=function(n){const r=n=="column"?"width":"height",i=(a,o)=>a.map(s=>{const l=$(this,yr,ga)[s].getOverhangAndPadding();return n=="column"?o?l.right:l.left:o?l.bottom:l.top}).reduce((s,f)=>Math.max(s,f),0);return this._cache(`size/directionSizes/${n}`,()=>$(this,Ec,UE)[n=="column"?"colIndices":"rowIndices"].map(a=>({axisBefore:i(a,0),axisAfter:i(a,1),view:wB(a.map(o=>$(this,yr,ga)[o].view.getViewportSize()[r]))})))},zl=new WeakSet,Sg=function(n){const r=ie(this,da,jl).call(this,n),i=[];i.push(Ps);for(const[a,o]of r.entries())a>0&&i.push({px:$(this,To),grow:0}),(a==0||this.wrappingFacet)&&i.push(Ps),i.push({px:o.axisBefore,grow:0}),i.push(o.view),i.push({px:o.axisAfter,grow:0}),(a==r.length-1||this.wrappingFacet)&&i.push(Ps);return i},Ul=new WeakSet,Cg=function(n){let r=0,i=0;const a=n=="row"?this.spec.height:this.spec.width;if(a||a===0)return hy(a);const o=ie(this,da,jl).call(this,n);for(const[s,f]of o.entries())s>0&&(i+=$(this,To)),(s==0||this.wrappingFacet)&&(i+=0),i+=f.axisBefore,i+=f.view.px??0,r+=f.view.grow??0,i+=f.axisAfter,(s==o.length-1||this.wrappingFacet)&&(i+=0);return{px:i,grow:r}},Gl=new WeakSet,Tg=function(n,r){return n=="row"&&this.wrappingFacet?1+6*r+2:2+4*r+1},_c=new WeakSet,GE=function(){const n=ie(this,da,jl).call(this,"column"),r=ie(this,da,jl).call(this,"row");return!n.length||!r.length?Et.zero():new Et(r.at(0).axisBefore,n.at(-1).axisAfter,r.at(-1).axisAfter,n.at(0).axisBefore)},ko=new WeakSet,Bc=function(){const n=r=>{const i=r0[r],a=$(this,ha)[i];return(a==null?void 0:a.axisProps.orient)!==r?0:Math.max(a.getPerpendicularSize()+a.axisProps.offset,0)};return new Et(n("top"),n("right"),n("bottom"),n("left"))},Sc=new WeakSet,HE=function(n,r,i){for(const[a,o]of Object.entries(dF(r))){if(o.size<=0)continue;const s=n.normalizePoint(i.x,i.y),f=n.normalizePoint(i.x+i.xDelta,i.y+i.yDelta),l={x:f.x-s.x,y:f.y-s.y};for(const u of o)u.zoom(2**i.zDelta,a=="y"?1-s[a]:s[a],a=="x"?l.x:-l.y)}this.context.animator.requestRender()};function cF(e){if(!(!e||!e.fill||e.fillOpacity===0))return{configurableVisibility:!1,data:{values:[{}]},mark:{color:e.fill,opacity:e.fillOpacity??1,type:"rect",clip:!1,tooltip:null,minHeight:1,minOpacity:0}}}function hF(e){if(!(!e||!e.stroke||e.strokeWidth===0||e.strokeOpacity===0))return{configurableVisibility:!1,resolve:{scale:{x:"excluded",y:"excluded"},axis:{x:"excluded",y:"excluded"}},data:{values:[{x:0,y:0,x2:1,y2:0},{x:1,y:0,x2:1,y2:1},{x:1,y:1,x2:0,y2:1},{x:0,y:1,x2:0,y2:0}]},mark:{size:e.strokeWidth??1,color:e.stroke??"lightgray",strokeCap:"square",strokeOpacity:e.strokeOpacity??1,type:"rule",clip:!1,tooltip:null},encoding:{x:{field:"x",type:"quantitative",scale:null},y:{field:"y",type:"quantitative",scale:null},x2:{field:"x2"},y2:{field:"y2"}}}}function dF(e){const t={x:new Set,y:new Set};return e.visit(n=>{for(const[r,i]of Object.entries(t)){const a=n.getScaleResolution(r);a&&a.isZoomable()&&i.add(a)}}),t}function pF(e){let t=!0;return e.visit(n=>{n instanceof Qt&&t&&(t=n.mark.properties.clip===!0)}),t}function iw(e,t,n){const r=n.axisProps,i=n.getPerpendicularSize();if(t=="bottom")return e.translate(0,e.height+r.offset).modify({height:i});if(t=="top")return e.translate(0,-i-r.offset).modify({height:i});if(t=="left")return e.translate(-i-r.offset,0).modify({width:i});if(t=="right")return e.translate(e.width+r.offset,0).modify({width:i})}class aw{constructor(t,n,r){if(this.layoutParent=n,this.view=t,this.serial=r,this.background=void 0,this.backgroundStroke=void 0,this.axes={},this.gridLines={},this.scrollbars={},this.title=void 0,this.coords=sr.ZERO,t.needsAxes.x||t.needsAxes.y){const i=t.spec,a="view"in i?i==null?void 0:i.view:void 0,o=cF(a);o&&(this.background=new Qt(o,n.context,n,t,"background"+r,{blockEncodingInheritance:!0}));const s=hF(a);s&&(this.backgroundStroke=new Qt(s,n.context,n,t,"backgroundStroke"+r,{blockEncodingInheritance:!0}));const f=lF(t.spec.title);if(f){const l=new Qt(f,n.context,n,t,"title"+r,{blockEncodingInheritance:!0});this.title=l}}t.spec.viewportWidth!=null&&(this.scrollbars.horizontal=new ow(this,"horizontal")),t.spec.viewportHeight!=null&&(this.scrollbars.vertical=new ow(this,"vertical"))}*getChildren(){this.background&&(yield this.background),this.backgroundStroke&&(yield this.backgroundStroke),this.title&&(yield this.title),yield*Object.values(this.axes),yield*Object.values(this.gridLines),yield this.view,yield*Object.values(this.scrollbars)}async createAxes(){const{view:t,axes:n,gridLines:r}=this,i=(s,f)=>{const l=s.getAxisProps();if(l===null)return;const u=l?{...l}:{};if(!u.orient){for(const c of wu[f])if(!n[c]){u.orient=c;break}if(!u.orient)throw new Error("No slots available for an axis! Perhaps a LayerView has more than two children?")}if(u.title??(u.title=s.getTitle()),!wu[f].includes(u.orient))throw new Error(`Invalid axis orientation "${u.orient}" on channel "${f}"!`);return u},a=async(s,f,l)=>{const u=i(s,f);if(u){if(n[u.orient])throw new Error(`An axis with the orient "${u.orient}" already exists!`);const c=new Jy(u,s.scaleResolution.type,this.layoutParent.context,this.layoutParent,l);n[u.orient]=c,await c.initializeChildren()}},o=async(s,f,l)=>{const u=i(s,f);if(u&&(u.grid||u.chromGrid)){const c=new K9(u,s.scaleResolution.type,this.layoutParent.context,this.layoutParent,l);r[u.orient]=c,await c.initializeChildren()}};for(const s of["x","y"])if(t.needsAxes[s]){const f=t.resolutions.axis[s];if(!f)continue;await a(f,s,t)}for(const s of["x","y"])if(t.needsAxes[s]){const f=t.getAxisResolution(s);if(!f)continue;await o(f,s,t)}if(t instanceof Us){for(const s of t)for(const[f,l]of Object.entries(s.resolutions.axis)){const u=l.getAxisProps();u&&u.orient&&await a(l,f,s)}for(const s of t)for(const[f,l]of Object.entries(s.resolutions.axis)){const u=l.getAxisProps();u&&!u.orient&&await a(l,f,s)}}[...Object.values(n),...Object.values(r)].forEach(s=>s.visit(f=>{f instanceof Qt&&f.resolve("scale")}))}getOverhang(){const t=n=>{const r=this.axes[n];return r?Math.max(r.getPerpendicularSize()+r.axisProps.offset,0):0};return new Et(t("top"),t("right"),t("bottom"),t("left")).add(this.view.getOverhang())}getOverhangAndPadding(){return this.getOverhang().add(this.view.getPadding())}}class ow extends Qt{constructor(t,n){const r={scrollbarSize:8,scrollbarPadding:2};super({data:{values:[{}]},mark:{type:"rect",fill:"#b0b0b0",fillOpacity:.6,stroke:"white",strokeWidth:1,strokeOpacity:1,cornerRadius:5,clip:!1},configurableVisibility:!1},t.layoutParent.context,t.layoutParent,t.view,"scrollbar-"+n,{blockEncodingInheritance:!0}),this.config=r,this.scrollDirection=n,this.viewportOffset=0,this.maxScrollOffset=0,this.scrollbarCoords=sr.ZERO,this.addInteractionEventListener("mousedown",(i,a)=>{if(a.stopPropagation(),this.maxScrollOffset<=0)return;const o=h=>n=="vertical"?h.clientY:h.clientX,s=a.uiEvent;s.preventDefault();const f=this.getScrollOffset(),l=o(s),u=h=>{const d=Vd(o(h)-l+f,0,this.maxScrollOffset);this.viewportOffset=d/this.maxScrollOffset*this.maxViewportOffset,this.context.animator.requestRender()},c=()=>{document.removeEventListener("mousemove",u),document.removeEventListener("mouseup",c)};document.addEventListener("mouseup",c,!1),document.addEventListener("mousemove",u,!1)})}getScrollOffset(){return this.viewportOffset/this.maxViewportOffset*this.maxScrollOffset}render(t,n,r){super.render(t,this.scrollbarCoords,r)}updateScrollbar(t,n){const r=this.config.scrollbarPadding,i=this.config.scrollbarSize,a=this.scrollDirection=="horizontal"?"width":"height",o=Math.min(1,t[a]/n[a]),s=t[a]-2*r,f=o*s;this.maxScrollOffset=s-f,this.maxViewportOffset=n[a]-t[a],this.viewportOffset=Vd(this.viewportOffset,0,this.maxViewportOffset),this.scrollbarCoords=this.scrollDirection=="vertical"?new sr(()=>t.x+t.width-i-r,()=>t.y+r+this.getScrollOffset(),()=>i,()=>f):new sr(()=>t.x+r+this.getScrollOffset(),()=>t.y+t.height-i-r,()=>f,()=>i)}}class a0 extends uF{constructor(t,n,r,i,a){super(t,n,r,i,a,l0(t)?t.columns:vu(t)?1:1/0),this.spec=t}async initializeChildren(){const t=this.spec,n=l0(t)?t.concat:vu(t)?t.vconcat:t.hconcat;this.setChildren(await Promise.all(n.map((r,i)=>this.context.createOrImportView(r,this,this,"grid"+i)))),await this.createAxes()}getDefaultResolution(t,n){return n=="axis"?"independent":vu(this.spec)&&t==="x"||lw(this.spec)&&t==="y"?"shared":"independent"}}const sw="viewRoot";class gF{constructor(t={}){ce(this,Bo,new Map);this.options={allowImport:!0,wrapRoot:!0,...t};const n=r=>(i,a,o,s,f)=>new r(i,a,o,s,i.name??f);this.addViewType(s0,n(Us)),this.addViewType(o0,n(Qt)),this.addViewType(vu,n(a0)),this.addViewType(lw,n(a0)),this.addViewType(l0,n(a0)),this.addViewType(bF,()=>{throw new Error("SampleView is not supported by the @genome-spy/core package. Use @genome-spy/app instead!")})}addViewType(t,n){$(this,Bo).set(t,n)}createView(t,n,r,i,a){for(const[o,s]of $(this,Bo))if(o(t))return s(t,n,r,i,a);throw new Error("Invalid spec, cannot figure out the view type from the properties: "+JSON.stringify([...Object.keys(t)]))}isViewSpec(t){const n=[...$(this,Bo).keys()].filter(r=>r(t));if(n.length>1)throw new Error("Ambiguous spec. Cannot create a view!");return n.length==1}async createOrImportView(t,n,r,i,a,o){let s;if(mF(t))if(this.options.allowImport)s=await E9(t,i.getBaseUrl(),n),o&&o(s);else throw new Gi("Importing views is not allowed!",r);else s=t;!i&&this.options.wrapRoot&&(o0(s)||s0(s))&&a===sw&&(s={name:"implicitRoot",vconcat:[s]});const f=this.createView(s,n,r,i,a);return f instanceof Hi&&await f.initializeChildren(),f}}Bo=new WeakMap;function o0(e){return"mark"in e&&(Qe(e.mark)||Zt(e.mark))}function s0(e){return"layer"in e&&Zt(e.layer)}function mF(e){return"import"in e}function vu(e){return"vconcat"in e&&qt(e.vconcat)}function lw(e){return"hconcat"in e&&qt(e.hconcat)}function l0(e){return"concat"in e&&qt(e.concat)}function bF(e){return"samples"in e&&Zt(e.samples)&&"spec"in e&&Zt(e.spec)}Nm("fasta",L9);class fw{constructor(t,n,r={}){this.container=t;const i=document.createElement("style");i.innerHTML=US,t.appendChild(i),this.spec=n,this.accessorFactory=new T8,this.viewFactory=new gF,this.namedDataProviders=[],this.animator=new B9(()=>this.renderAll()),this.genomeStore=void 0,this.viewVisibilityPredicate=a=>a.isVisibleInSpec(),this._renderingContext=void 0,this._pickingContext=void 0,this._dirtyPickingBuffer=!1,this._currentHover=void 0,this._wheelInertia=new O9(this.animator),this._keyboardListeners=new Map,this._eventListeners=new Map,this._extraBroadcastListeners=new Map,this.tooltipHandlers={default:Z9,refseqgene:U9,...r.tooltipHandlers??{}},this.viewRoot=void 0}registerNamedDataProvider(t){this.namedDataProviders.unshift(t)}getNamedDataFromProvider(t){for(const n of this.namedDataProviders){const r=n(t);if(r)return r}}updateNamedData(t,n){const r=this.viewRoot.context.dataFlow.findNamedDataSource(t);if(!r)throw new Error("No such named data source: "+t);r.dataSource.updateDynamicData(n),Kd(r.hosts),this.animator.requestRender()}broadcast(t,n){var i;const r={type:t,payload:n};this.viewRoot.visit(a=>a.handleBroadcast(r)),(i=this._extraBroadcastListeners.get(t))==null||i.forEach(a=>a(r))}_prepareContainer(){this.container.classList.add("genome-spy"),this.container.classList.add("loading"),this._glHelper=new Vk(this.container,()=>this.viewRoot?_9(this.viewRoot):{width:void 0,height:void 0},this.spec.background),this.loadingMessageElement=document.createElement("div"),this.loadingMessageElement.className="loading-message",this.loadingMessageElement.innerHTML='<div class="message">Loading<span class="ellipsis">...</span></div>',this.container.appendChild(this.loadingMessageElement),this.tooltip=new HS(this.container),this.loadingMessageElement.querySelector(".message").addEventListener("transitionend",()=>{this.loadingMessageElement.style.display="none"})}destroy(){this.container.classList.remove("genome-spy"),this.container.classList.remove("loading");for(const[t,n]of this._keyboardListeners)for(const r of n)document.removeEventListener(t,r);for(this._glHelper.finalize();this.container.firstChild;)this.container.firstChild.remove()}async _prepareViewsAndData(){this.spec.genome&&(this.genomeStore=new D9(this.spec.baseUrl),await this.genomeStore.initialize(this.spec.genome));const t=this,n={dataFlow:new jy,accessorFactory:this.accessorFactory,glHelper:this._glHelper,animator:this.animator,genomeStore:this.genomeStore,fontManager:new P9(this._glHelper),get devicePixelRatio(){return t._glHelper.dpr},requestLayoutReflow:()=>{},updateTooltip:this.updateTooltip.bind(this),getNamedDataFromProvider:this.getNamedDataFromProvider.bind(this),getCurrentHover:()=>this._currentHover,addKeyboardListener:(f,l)=>{document.addEventListener(f,l);let u=this._keyboardListeners.get(f);u||(u=[],this._keyboardListeners.set(f,u)),u.push(l)},addBroadcastListener(f,l){const u=t._extraBroadcastListeners;let c=u.get(f);c||(c=new Set,u.set(f,c)),c.add(l)},removeBroadcastListener(f,l){var c;(c=t._extraBroadcastListeners.get(f))==null||c.delete(l)},isViewConfiguredVisible:t.viewVisibilityPredicate,isViewSpec:f=>t.viewFactory.isViewSpec(f),createView:function(f,l,u,c){return t.viewFactory.createView(f,n,l,u,c)},createOrImportView:async function(f,l,u,c,h){return t.viewFactory.createOrImportView(f,n,l,u,c,h)}},r=this.spec;r.datasets&&this.registerNamedDataProvider(f=>r.datasets[f]),this.viewRoot=await n.createOrImportView(r,null,null,sw),x9(this.viewRoot),A9(this.viewRoot);const i=this.viewRoot.getDescendants();i.forEach(f=>f.configureViewOpacity()),this._glHelper.invalidateSize();const a=i.filter(f=>f instanceof Qt),o=g9(this.viewRoot,n.dataFlow);v9(o),this.broadcast("dataFlowBuilt",o),a.forEach(f=>f.mark.initializeEncoders());const s=Promise.all(a.map(f=>f.mark.initializeGraphics()));for(const f of a)o.addObserver(l=>{f.mark.initializeData(),f.mark.updateGraphicsData()},f);await n.fontManager.waitUntilReady(),o.initialize(),await Promise.all(o.dataSources.map(f=>f.load())),Kd(this.viewRoot),this.broadcast("dataLoaded"),await s,this.viewRoot.visit(f=>{for(const l of Object.values(f.resolutions.scale))this._glHelper.createRangeTexture(l)});for(const f of a)f.mark.finalizeGraphicsInitialization();n.requestLayoutReflow=this.computeLayout.bind(this),this.viewRoot.visit(f=>hu(f,"size")),this._glHelper.invalidateSize()}async launch(){try{return this._prepareContainer(),await this._prepareViewsAndData(),this.registerMouseEvents(),this.computeLayout(),this.animator.requestRender(),this._glHelper.addEventListener("resize",()=>{this.computeLayout(),this.renderAll()}),!0}catch(t){const n=`${t.view?`At "${t.view.getPathString()}": `:""}${t.toString()}`;return console.error(t.stack),yF(this.container,n),!1}finally{this.container.classList.remove("loading"),window.setTimeout(()=>{this.loadingMessageElement.style.display="none"},2e3)}}registerMouseEvents(){const t=this._glHelper.canvas,n=r=>{var i;if(r instanceof MouseEvent){r.type=="mousemove"&&(this.tooltip.handleMouseMove(r),this._tooltipUpdateRequested=!1,r.buttons==0&&this.renderPickingFramebuffer());const a=t.getBoundingClientRect(),o=new T9(r.clientX-a.left-t.clientLeft,r.clientY-a.top-t.clientTop),s=f=>{this.viewRoot.propagateInteractionEvent(new C9(o,f)),this._tooltipUpdateRequested||this.tooltip.clear()};if(r.type!="wheel"&&this._wheelInertia.cancel(),r.type=="mousemove")this._handlePicking(o.x,o.y);else if(r.type=="mousedown"||r.type=="mouseup")this.renderPickingFramebuffer();else if(r.type=="wheel"){this._tooltipUpdateRequested=!1;const f=r;if(Math.abs(f.deltaX)>Math.abs(f.deltaY))this._currentHover=null,this._wheelInertia.cancel();else{const l=z9(f);this._wheelInertia.setMomentum(f.deltaY*(f.deltaMode?80:1),u=>{const c=new WheelEvent("wheel",{...l,deltaMode:0,deltaX:0,deltaY:u});s(c)}),f.preventDefault();return}}if(r.type=="click"){const f=this._currentHover?{type:r.type,viewPath:this._currentHover.mark.unitView.getLayoutAncestors().map(l=>l.name).reverse(),datum:this._currentHover.datum}:{type:r.type,viewPath:null,datum:null};(i=this._eventListeners.get("click"))==null||i.forEach(l=>l(f))}s(r)}};["mousedown","mouseup","wheel","click","mousemove","gesturechange","contextmenu"].forEach(r=>t.addEventListener(r,n)),t.addEventListener("mousedown",()=>{document.addEventListener("mouseup",()=>this.tooltip.popEnabledState(),{once:!0}),this.tooltip.pushEnabledState(!1)}),t.addEventListener("dragstart",r=>r.stopPropagation())}_handlePicking(t,n){var a;const r=this._glHelper.readPickingPixel(t,n),i=r[0]|r[1]<<8|r[2]<<16;if(i==0){this._currentHover=null;return}if(i!==((a=this._currentHover)==null?void 0:a.uniqueId)&&(this._currentHover=null),this._currentHover||this.viewRoot.visit(o=>{if(o instanceof Qt){if(o.mark.isPickingParticipant()){const s=o.mark.encoders.uniqueId.accessor;o.getCollector().visitData(f=>{s(f)==i&&(this._currentHover={mark:o.mark,datum:f,uniqueId:i})})}if(this._currentHover)return Ms}}),this._currentHover){const o=this._currentHover.mark;this.updateTooltip(this._currentHover.datum,async s=>{if(!o.isPickingParticipant())return;const f=o.properties.tooltip;if(f!==null){const l=(f==null?void 0:f.handler)??"default",u=this.tooltipHandlers[l];if(!u)throw new Error("No such tooltip handler: "+l);return u(s,o,f==null?void 0:f.params)}})}}updateTooltip(t,n){if(!this._tooltipUpdateRequested||!t)this.tooltip.updateWithDatum(t,n),this._tooltipUpdateRequested=!0;else throw new Error("Tooltip has already been updated! Duplicate event handler?")}computeLayout(){const t=this.viewRoot;if(!t)return;this.broadcast("layout");const n=this._glHelper.getLogicalCanvasSize();if(isNaN(n.width)||isNaN(n.height)){console.log(`NaN in canvas size: ${n.width}x${n.height}. Skipping computeLayout().`);return}this._renderingContext=new Yy({picking:!1},this._glHelper),this._pickingContext=new Yy({picking:!0},this._glHelper),t.render(new S9(this._renderingContext,this._pickingContext),sr.create(0,0,n.width,n.height)),this.broadcast("layoutComputed")}renderAll(){var t;(t=this._renderingContext)==null||t.render(),this._dirtyPickingBuffer=!0}renderPickingFramebuffer(){this._dirtyPickingBuffer&&(this._pickingContext.render(),this._dirtyPickingBuffer=!1)}getSearchableViews(){const t=[];return this.viewRoot.visit(n=>{n instanceof Qt&&n.getAccessor("search")&&t.push(n)}),t}getNamedScaleResolutions(){const t=new Map;return this.viewRoot.visit(n=>{for(const r of Object.values(n.resolutions.scale))r.name&&t.set(r.name,r)}),t}}function yF(e,t){const n=document.createElement("div");n.className="message-box";const r=document.createElement("div");r.textContent=t,n.appendChild(r),e.appendChild(n)}const wF="data:image/svg+xml,%3csvg%20viewBox='0%200%2032%2032'%20xmlns='http://www.w3.org/2000/svg'%20fill-rule='evenodd'%20clip-rule='evenodd'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-miterlimit='1.5'%3e%3cpath%20d='M4.7%2021.2s.4%202.3%201.3%203.6C7%2026%209.8%2028%209.8%2028s3.4-2.6%206.4-8.5c0%200%201%20.1%201.9-.4.9-.6.8-.4%201-1.2%200%200%202.9.5%206.6%200%202.1-.3%204.3-1%206.2-2.5%200%200-1.1-1.7-2.5-5.1-.5-1.3-2-1.8-4.6-4.6l-8.2%208.6-11.9%206.9z'%20fill-opacity='.1'/%3e%3cpath%20d='M12.7%2014.8s-4-1.8-12%202.7c0%200%201%203.7%202.5%205.3%201.4%201.5%202.3%203.6%204.6%204.6%200%200%204.7-3%206.9-9.2l3-2s4.7%202.8%2012.6-1.6c0%200-.6-3.3-3-6-2.6-3-3.8-4.7-3.8-4.7s-4.1%202.3-7.5%209.3l-3.3%201.6z'%20fill='%237fbbdd'/%3e%3cpath%20d='M12.4%2015.5c-.7-.5-2.4-.8-4.4-.4-2%20.4-4%201.3-4.8%201.8-.5.3-1.2%201-1.2%201.4%200%20.7.3%201.8.8%202.4.3.3.7.5%201.4.6.8%200%202.5-1.4%203.5-2%201-.6%201.6-.8%202.7-1.2l-2.9%202.4c-1.3%201.2-2.2%201.5-2.4%202.3%200%20.5%200%201.4.5%201.8.4.5.6.8%201.6.8.6%200%201%200%202.6-1.5.9-.9%202.3-3%202.7-3.7.6-1.1%201-2.2.7-3-.2-1-.4-1.4-.8-1.7zM17.4%2014.2c-.3-.5-.9-1.2-.2-2.5l1.9-3c.5-.8%202-2.3%202.6-2.6.6-.4%201.5-.6%202-.2.6.4%201%201%201.3%201.5.4.6.7%201.3.2%202-.7%201-1.6.9-2.8%201.7-1.2.8-1.9%201.2-2.5%201.9l3.8-1.8c1.3-.6%202.7-1.1%203.4-.7.8.5.8.7%201%201.4.3%201-.2%201.9-.8%202.4-.5.6-1.5.9-2.6%201.2-1.4.4-4.5%201-5.8.5-1.3-.5-1.3-1.4-1.5-1.8z'%20fill='%23fff'/%3e%3cpath%20d='M12.7%2014.8s-4-1.8-12%202.7c0%200%201%203.7%202.5%205.3%201.4%201.5%202.3%203.6%204.6%204.6%200%200%204.7-3%206.9-9.2l3-2s4.7%202.8%2012.6-1.6c0%200-.6-3.3-3-6-2.6-3-3.8-4.7-3.8-4.7s-4.1%202.3-7.5%209.3l-3.3%201.6z'%20fill='none'%20stroke='%23000'%20stroke-width='.5'/%3e%3cpath%20d='M12.4%2014.9s2.1-2%203-2c1.1%200%202.3%202.7%202.3%203.5%200%20.8-2.1%202.4-3.1%202.3%200%200%200-1.2-.7-2.6-.8-1.3-1.5-1.2-1.5-1.2z'%20fill='%237fbbdd'/%3e%3cpath%20d='M13.8%2015.3c.9.8.6%202%201.4%201.8%201-.2%201.4-.8%201.3-1.5%200-.7%200-.8-.4-1.6-.3-.7-1-1.1-2-.5-.7.5-1.4%201.3-1.4%201.3s.2-.3%201.1.5z'%20fill='%23fff'/%3e%3cpath%20d='M12.4%2014.9s2.1-2%203-2c1.1%200%202.3%202.7%202.3%203.5%200%20.8-2.1%202.4-3.1%202.3%200%200%200-1.2-.7-2.6-.8-1.3-1.5-1.2-1.5-1.2z'%20fill='none'%20stroke='%23000'%20stroke-width='.5'/%3e%3c/svg%3e",vF="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2064%2064'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;'%3e%3cg%20transform='matrix(0.10221,0.00683825,-0.0067136,0.100347,-8.03424,-13.2222)'%3e%3cpath%20d='M208.629,548.17C208.629,548.17%20219.768,594.389%20239.814,619.222C259.86,644.055%20319.119,680.831%20319.119,680.831C319.119,680.831%20385.557,622.915%20437.87,498.346C437.87,498.346%20456.021,499.236%20473.808,486.446C491.594,473.656%20490.239,478.534%20494.883,461.62C494.883,461.62%20551.848,467.937%20625.826,451.863C667.634,442.778%20710.238,425.649%20747.382,393.142C747.382,393.142%20721.992,360.244%20689.422,291.45C677.029,265.275%20647.518,257.098%20590.747,203.309L438.083,391.273L208.629,548.17Z'%20style='fill-opacity:0.11;'/%3e%3c/g%3e%3cg%20transform='matrix(0.081985,-0.0582493,0.0582493,0.081985,-40.4754,34.7668)'%3e%3cpath%20d='M561.588,349.155C561.588,349.155%20516.297,271.341%20328.841,252.044C328.841,252.044%20302.342,325.189%20307.686,368.056C313.031,410.922%20303.001,456.147%20329.132,501.174C329.132,501.174%20443.114,506.743%20554.649,428.469L629.204,432.112C629.204,432.112%20673.755,534.351%20856.964,554.375C856.964,554.375%20886.717,491.768%20879.193,417.478C871.211,338.673%20871.716,293.443%20871.716,293.443C871.716,293.443%20775.485,283.928%20635.418,361.795L561.588,349.155Z'%20style='fill:rgb(127,187,221);'/%3e%3cclipPath%20id='_clip1'%3e%3cpath%20d='M561.588,349.155C561.588,349.155%20516.297,271.341%20328.841,252.044C328.841,252.044%20302.342,325.189%20307.686,368.056C313.031,410.922%20303.001,456.147%20329.132,501.174C329.132,501.174%20443.114,506.743%20554.649,428.469L629.204,432.112C629.204,432.112%20673.755,534.351%20856.964,554.375C856.964,554.375%20886.717,491.768%20879.193,417.478C871.211,338.673%20871.716,293.443%20871.716,293.443C871.716,293.443%20775.485,283.928%20635.418,361.795L561.588,349.155Z'/%3e%3c/clipPath%3e%3cg%20clip-path='url(%23_clip1)'%3e%3cg%20transform='matrix(0.758637,0.45892,-0.45892,0.758637,425.635,-121.213)'%3e%3cpath%20d='M386.873,397.241C371.345,383.628%20335.138,374.782%20290.644,380.543C246.149,386.304%20196.827,402.266%20178.802,412.065C168.202,417.828%20151.494,429.354%20150.682,439.334C149.527,453.528%20153.593,477.066%20165.625,491.284C171.69,498.451%20179.927,503.445%20193.838,505.423C211.701,507.963%20252.714,480.627%20275.399,469.22C299.332,457.187%20313.981,454.56%20338.386,447.014C338.386,447.014%20291.346,478.587%20270.205,494.393C239.61,517.268%20218.575,522.444%20212.859,539.897C209.766,549.34%20212.237,567.767%20220.354,577.538C229.427,588.461%20233.197,595.069%20254.591,597.624C267.303,599.143%20276.685,598.802%20314.37,568.95C336.06,551.767%20370.297,509.817%20381.412,494.616C397.581,472.506%20405.165,451.462%20402.656,435.04C399.045,411.391%20394.259,403.716%20386.873,397.241Z'%20style='fill:white;'/%3e%3c/g%3e%3cg%20transform='matrix(0.752145,0.454993,-0.454993,0.752145,468.36,-108.293)'%3e%3cpath%20d='M484.733,378.934C479.33,367.886%20467.092,350.452%20483.886,325.205C502.172,297.717%20514.898,280.938%20528.117,264.632C541.335,248.326%20574.793,218.447%20587.739,212.53C600.684,206.613%20621.026,203.852%20631.889,212.841C642.874,221.93%20648.416,233.377%20654.92,245.478C662.331,259.267%20667.318,274.808%20656.518,288.278C641.093,307.515%20622.242,305.294%20594.912,319.844C567.244,334.573%20552.644,342.943%20539.244,355.703C539.244,355.703%20591.431,334.114%20621.229,324.474C651.027,314.833%20680.952,304.461%20695.995,315.975C711.038,327.49%20710.631,331.463%20714.425,347.187C719.107,366.59%20707.231,385.165%20694.294,395.838C681.356,406.51%20659.958,411.756%20636.875,416.852C606.42,423.576%20540.278,431.917%20512.819,419.366C485.361,406.815%20488.488,386.613%20484.733,378.934Z'%20style='fill:white;'/%3e%3c/g%3e%3c/g%3e%3cpath%20d='M561.588,349.155C561.588,349.155%20516.297,271.341%20328.841,252.044C328.841,252.044%20302.342,325.189%20307.686,368.056C313.031,410.922%20303.001,456.147%20329.132,501.174C329.132,501.174%20443.114,506.743%20554.649,428.469L629.204,432.112C629.204,432.112%20673.755,534.351%20856.964,554.375C856.964,554.375%20886.717,491.768%20879.193,417.478C871.211,338.673%20871.716,293.443%20871.716,293.443C871.716,293.443%20775.485,283.928%20635.418,361.795L561.588,349.155Z'%20style='fill:none;stroke:black;stroke-width:16.57px;'/%3e%3c/g%3e%3cg%20transform='matrix(0.100298,-0.00740488,0.00740488,0.100298,-15.7457,-5.17528)'%3e%3cpath%20d='M384.916,385.459C384.916,385.459%20430.781,347.868%20450.027,350.093C471.685,352.596%20490.49,407.747%20490.208,424.416C489.927,441.085%20442.948,469.866%20422.537,466.24C422.537,466.24%20425.525,442.129%20412.114,413.335C398.702,384.54%20384.916,385.459%20384.916,385.459Z'%20style='fill:rgb(127,187,221);'/%3e%3cclipPath%20id='_clip2'%3e%3cpath%20d='M384.916,385.459C384.916,385.459%20430.781,347.868%20450.027,350.093C471.685,352.596%20490.49,407.747%20490.208,424.416C489.927,441.085%20442.948,469.866%20422.537,466.24C422.537,466.24%20425.525,442.129%20412.114,413.335C398.702,384.54%20384.916,385.459%20384.916,385.459Z'/%3e%3c/clipPath%3e%3cg%20clip-path='url(%23_clip2)'%3e%3cg%20transform='matrix(0.909069,3.67641e-17,-3.79818e-17,0.85852,37.051,52.1829)'%3e%3cpath%20d='M413.282,402.697C430.77,421.58%20423.307,448.426%20441.683,446.137C463.409,443.431%20472.604,430.356%20473.316,413.402C474.028,396.448%20472.245,393.911%20466.172,375.321C460.099,356.731%20447.953,352.176%20422.842,357.179C401.957,361.339%20405.039,360.215%20398.735,367.228C392.43,374.242%20384.315,393.182%20384.315,393.182C384.315,393.182%20392.715,380.492%20413.282,402.697Z'%20style='fill:white;'/%3e%3c/g%3e%3c/g%3e%3cpath%20d='M384.916,385.459C384.916,385.459%20430.781,347.868%20450.027,350.093C471.685,352.596%20490.49,407.747%20490.208,424.416C489.927,441.085%20442.948,469.866%20422.537,466.24C422.537,466.24%20425.525,442.129%20412.114,413.335C398.702,384.54%20384.916,385.459%20384.916,385.459Z'%20style='fill:none;stroke:black;stroke-width:16.57px;'/%3e%3c/g%3e%3c/svg%3e";async function xF(e,t,n={}){let r;if(Qe(e)){if(r=document.querySelector(e),!r)throw new Error(`No such element: ${e}`)}else if(e instanceof HTMLElement)r=e;else throw new Error(`Invalid element: ${e}`);let i;try{const a=Zt(t)?t:await uw(t);if(a.baseUrl??(a.baseUrl=""),a.width??(a.width="container"),a.padding??(a.padding=10),r==document.body){const o=document.createElement("div");o.style.position="fixed",o.style.inset="0",o.style.overflow="hidden",r.appendChild(o),r=o}i=new fw(r,a,n),AF(i,n),await i.launch()}catch(a){r.innerText=a.toString(),console.error(a)}return{finalize(){for(i.destroy();r.firstChild;)r.firstChild.remove()},addEventListener(a,o){const s=i._eventListeners;let f=s.get(a);f||(f=new Set,s.set(a,f)),f.add(o)},removeEventListener(a,o){var f;(f=i._eventListeners.get(a))==null||f.delete(o)},getScaleResolutionByName(a){return i.getNamedScaleResolutions().get(a)},updateNamedData:i.updateNamedData.bind(i)}}function AF(e,t){t.namedDataProvider&&e.registerNamedDataProvider(t.namedDataProvider)}async function uw(e){let t;try{t=JSON.parse(await gf().load(e))}catch(n){throw new Error(`Could not load or parse configuration: ${e}, reason: ${n.message}`)}if(!t.baseUrl){const n=e.match(/^[^?#]*\//);t.baseUrl=n&&n[0]||"./"}return t}var xu=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};function Gs(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function EF(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var n=function r(){return this instanceof r?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach(function(r){var i=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(n,r,i.get?i:{enumerable:!0,get:function(){return e[r]}})}),n}var ye={},Au={};Au.byteLength=CF,Au.toByteArray=IF,Au.fromByteArray=DF;for(var Gn=[],nn=[],_F=typeof Uint8Array<"u"?Uint8Array:Array,f0="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Va=0,SF=f0.length;Va<SF;++Va)Gn[Va]=f0[Va],nn[f0.charCodeAt(Va)]=Va;nn["-".charCodeAt(0)]=62,nn["_".charCodeAt(0)]=63;function cw(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");n===-1&&(n=t);var r=n===t?0:4-n%4;return[n,r]}function CF(e){var t=cw(e),n=t[0],r=t[1];return(n+r)*3/4-r}function TF(e,t,n){return(t+n)*3/4-n}function IF(e){var t,n=cw(e),r=n[0],i=n[1],a=new _F(TF(e,r,i)),o=0,s=i>0?r-4:r,f;for(f=0;f<s;f+=4)t=nn[e.charCodeAt(f)]<<18|nn[e.charCodeAt(f+1)]<<12|nn[e.charCodeAt(f+2)]<<6|nn[e.charCodeAt(f+3)],a[o++]=t>>16&255,a[o++]=t>>8&255,a[o++]=t&255;return i===2&&(t=nn[e.charCodeAt(f)]<<2|nn[e.charCodeAt(f+1)]>>4,a[o++]=t&255),i===1&&(t=nn[e.charCodeAt(f)]<<10|nn[e.charCodeAt(f+1)]<<4|nn[e.charCodeAt(f+2)]>>2,a[o++]=t>>8&255,a[o++]=t&255),a}function kF(e){return Gn[e>>18&63]+Gn[e>>12&63]+Gn[e>>6&63]+Gn[e&63]}function BF(e,t,n){for(var r,i=[],a=t;a<n;a+=3)r=(e[a]<<16&16711680)+(e[a+1]<<8&65280)+(e[a+2]&255),i.push(kF(r));return i.join("")}function DF(e){for(var t,n=e.length,r=n%3,i=[],a=16383,o=0,s=n-r;o<s;o+=a)i.push(BF(e,o,o+a>s?s:o+a));return r===1?(t=e[n-1],i.push(Gn[t>>2]+Gn[t<<4&63]+"==")):r===2&&(t=(e[n-2]<<8)+e[n-1],i.push(Gn[t>>10]+Gn[t>>4&63]+Gn[t<<2&63]+"=")),i.join("")}var u0={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */u0.read=function(e,t,n,r,i){var a,o,s=i*8-r-1,f=(1<<s)-1,l=f>>1,u=-7,c=n?i-1:0,h=n?-1:1,d=e[t+c];for(c+=h,a=d&(1<<-u)-1,d>>=-u,u+=s;u>0;a=a*256+e[t+c],c+=h,u-=8);for(o=a&(1<<-u)-1,a>>=-u,u+=r;u>0;o=o*256+e[t+c],c+=h,u-=8);if(a===0)a=1-l;else{if(a===f)return o?NaN:(d?-1:1)*(1/0);o=o+Math.pow(2,r),a=a-l}return(d?-1:1)*o*Math.pow(2,a-r)},u0.write=function(e,t,n,r,i,a){var o,s,f,l=a*8-i-1,u=(1<<l)-1,c=u>>1,h=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,d=r?0:a-1,p=r?1:-1,b=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,o=u):(o=Math.floor(Math.log(t)/Math.LN2),t*(f=Math.pow(2,-o))<1&&(o--,f*=2),o+c>=1?t+=h/f:t+=h*Math.pow(2,1-c),t*f>=2&&(o++,f/=2),o+c>=u?(s=0,o=u):o+c>=1?(s=(t*f-1)*Math.pow(2,i),o=o+c):(s=t*Math.pow(2,c-1)*Math.pow(2,i),o=0));i>=8;e[n+d]=s&255,d+=p,s/=256,i-=8);for(o=o<<i|s,l+=i;l>0;e[n+d]=o&255,d+=p,o/=256,l-=8);e[n+d-p]|=b*128};/*!
263
279
  * The buffer module from node.js, for the browser.
264
280
  *
265
281
  * @author Feross Aboukhadijeh <https://feross.org>
266
282
  * @license MIT
267
- */(function(t){const e=Ll,n=y0,r=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;t.Buffer=s,t.SlowBuffer=E,t.INSPECT_MAX_BYTES=50;const i=2147483647;t.kMaxLength=i,s.TYPED_ARRAY_SUPPORT=a(),!s.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function a(){try{const x=new Uint8Array(1),p={foo:function(){return 42}};return Object.setPrototypeOf(p,Uint8Array.prototype),Object.setPrototypeOf(x,p),x.foo()===42}catch{return!1}}Object.defineProperty(s.prototype,"parent",{enumerable:!0,get:function(){if(s.isBuffer(this))return this.buffer}}),Object.defineProperty(s.prototype,"offset",{enumerable:!0,get:function(){if(s.isBuffer(this))return this.byteOffset}});function o(x){if(x>i)throw new RangeError('The value "'+x+'" is invalid for option "size"');const p=new Uint8Array(x);return Object.setPrototypeOf(p,s.prototype),p}function s(x,p,m){if(typeof x=="number"){if(typeof p=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return c(x)}return f(x,p,m)}s.poolSize=8192;function f(x,p,m){if(typeof x=="string")return h(x,p);if(ArrayBuffer.isView(x))return g(x);if(x==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof x);if(Dt(x,ArrayBuffer)||x&&Dt(x.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(Dt(x,SharedArrayBuffer)||x&&Dt(x.buffer,SharedArrayBuffer)))return b(x,p,m);if(typeof x=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const I=x.valueOf&&x.valueOf();if(I!=null&&I!==x)return s.from(I,p,m);const k=y(x);if(k)return k;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof x[Symbol.toPrimitive]=="function")return s.from(x[Symbol.toPrimitive]("string"),p,m);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof x)}s.from=function(x,p,m){return f(x,p,m)},Object.setPrototypeOf(s.prototype,Uint8Array.prototype),Object.setPrototypeOf(s,Uint8Array);function u(x){if(typeof x!="number")throw new TypeError('"size" argument must be of type number');if(x<0)throw new RangeError('The value "'+x+'" is invalid for option "size"')}function l(x,p,m){return u(x),x<=0?o(x):p!==void 0?typeof m=="string"?o(x).fill(p,m):o(x).fill(p):o(x)}s.alloc=function(x,p,m){return l(x,p,m)};function c(x){return u(x),o(x<0?0:w(x)|0)}s.allocUnsafe=function(x){return c(x)},s.allocUnsafeSlow=function(x){return c(x)};function h(x,p){if((typeof p!="string"||p==="")&&(p="utf8"),!s.isEncoding(p))throw new TypeError("Unknown encoding: "+p);const m=_(x,p)|0;let I=o(m);const k=I.write(x,p);return k!==m&&(I=I.slice(0,k)),I}function d(x){const p=x.length<0?0:w(x.length)|0,m=o(p);for(let I=0;I<p;I+=1)m[I]=x[I]&255;return m}function g(x){if(Dt(x,Uint8Array)){const p=new Uint8Array(x);return b(p.buffer,p.byteOffset,p.byteLength)}return d(x)}function b(x,p,m){if(p<0||x.byteLength<p)throw new RangeError('"offset" is outside of buffer bounds');if(x.byteLength<p+(m||0))throw new RangeError('"length" is outside of buffer bounds');let I;return p===void 0&&m===void 0?I=new Uint8Array(x):m===void 0?I=new Uint8Array(x,p):I=new Uint8Array(x,p,m),Object.setPrototypeOf(I,s.prototype),I}function y(x){if(s.isBuffer(x)){const p=w(x.length)|0,m=o(p);return m.length===0||x.copy(m,0,0,p),m}if(x.length!==void 0)return typeof x.length!="number"||Or(x.length)?o(0):d(x);if(x.type==="Buffer"&&Array.isArray(x.data))return d(x.data)}function w(x){if(x>=i)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i.toString(16)+" bytes");return x|0}function E(x){return+x!=x&&(x=0),s.alloc(+x)}s.isBuffer=function(p){return p!=null&&p._isBuffer===!0&&p!==s.prototype},s.compare=function(p,m){if(Dt(p,Uint8Array)&&(p=s.from(p,p.offset,p.byteLength)),Dt(m,Uint8Array)&&(m=s.from(m,m.offset,m.byteLength)),!s.isBuffer(p)||!s.isBuffer(m))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(p===m)return 0;let I=p.length,k=m.length;for(let P=0,H=Math.min(I,k);P<H;++P)if(p[P]!==m[P]){I=p[P],k=m[P];break}return I<k?-1:k<I?1:0},s.isEncoding=function(p){switch(String(p).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},s.concat=function(p,m){if(!Array.isArray(p))throw new TypeError('"list" argument must be an Array of Buffers');if(p.length===0)return s.alloc(0);let I;if(m===void 0)for(m=0,I=0;I<p.length;++I)m+=p[I].length;const k=s.allocUnsafe(m);let P=0;for(I=0;I<p.length;++I){let H=p[I];if(Dt(H,Uint8Array))P+H.length>k.length?(s.isBuffer(H)||(H=s.from(H)),H.copy(k,P)):Uint8Array.prototype.set.call(k,H,P);else if(s.isBuffer(H))H.copy(k,P);else throw new TypeError('"list" argument must be an Array of Buffers');P+=H.length}return k};function _(x,p){if(s.isBuffer(x))return x.length;if(ArrayBuffer.isView(x)||Dt(x,ArrayBuffer))return x.byteLength;if(typeof x!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof x);const m=x.length,I=arguments.length>2&&arguments[2]===!0;if(!I&&m===0)return 0;let k=!1;for(;;)switch(p){case"ascii":case"latin1":case"binary":return m;case"utf8":case"utf-8":return ce(x).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return m*2;case"hex":return m>>>1;case"base64":return Si(x).length;default:if(k)return I?-1:ce(x).length;p=(""+p).toLowerCase(),k=!0}}s.byteLength=_;function D(x,p,m){let I=!1;if((p===void 0||p<0)&&(p=0),p>this.length||((m===void 0||m>this.length)&&(m=this.length),m<=0)||(m>>>=0,p>>>=0,m<=p))return"";for(x||(x="utf8");;)switch(x){case"hex":return et(this,p,m);case"utf8":case"utf-8":return J(this,p,m);case"ascii":return Te(this,p,m);case"latin1":case"binary":return it(this,p,m);case"base64":return ne(this,p,m);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return gr(this,p,m);default:if(I)throw new TypeError("Unknown encoding: "+x);x=(x+"").toLowerCase(),I=!0}}s.prototype._isBuffer=!0;function T(x,p,m){const I=x[p];x[p]=x[m],x[m]=I}s.prototype.swap16=function(){const p=this.length;if(p%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let m=0;m<p;m+=2)T(this,m,m+1);return this},s.prototype.swap32=function(){const p=this.length;if(p%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let m=0;m<p;m+=4)T(this,m,m+3),T(this,m+1,m+2);return this},s.prototype.swap64=function(){const p=this.length;if(p%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let m=0;m<p;m+=8)T(this,m,m+7),T(this,m+1,m+6),T(this,m+2,m+5),T(this,m+3,m+4);return this},s.prototype.toString=function(){const p=this.length;return p===0?"":arguments.length===0?J(this,0,p):D.apply(this,arguments)},s.prototype.toLocaleString=s.prototype.toString,s.prototype.equals=function(p){if(!s.isBuffer(p))throw new TypeError("Argument must be a Buffer");return this===p?!0:s.compare(this,p)===0},s.prototype.inspect=function(){let p="";const m=t.INSPECT_MAX_BYTES;return p=this.toString("hex",0,m).replace(/(.{2})/g,"$1 ").trim(),this.length>m&&(p+=" ... "),"<Buffer "+p+">"},r&&(s.prototype[r]=s.prototype.inspect),s.prototype.compare=function(p,m,I,k,P){if(Dt(p,Uint8Array)&&(p=s.from(p,p.offset,p.byteLength)),!s.isBuffer(p))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof p);if(m===void 0&&(m=0),I===void 0&&(I=p?p.length:0),k===void 0&&(k=0),P===void 0&&(P=this.length),m<0||I>p.length||k<0||P>this.length)throw new RangeError("out of range index");if(k>=P&&m>=I)return 0;if(k>=P)return-1;if(m>=I)return 1;if(m>>>=0,I>>>=0,k>>>=0,P>>>=0,this===p)return 0;let H=P-k,he=I-m;const He=Math.min(H,he),Le=this.slice(k,P),We=p.slice(m,I);for(let De=0;De<He;++De)if(Le[De]!==We[De]){H=Le[De],he=We[De];break}return H<he?-1:he<H?1:0};function N(x,p,m,I,k){if(x.length===0)return-1;if(typeof m=="string"?(I=m,m=0):m>2147483647?m=2147483647:m<-2147483648&&(m=-2147483648),m=+m,Or(m)&&(m=k?0:x.length-1),m<0&&(m=x.length+m),m>=x.length){if(k)return-1;m=x.length-1}else if(m<0)if(k)m=0;else return-1;if(typeof p=="string"&&(p=s.from(p,I)),s.isBuffer(p))return p.length===0?-1:M(x,p,m,I,k);if(typeof p=="number")return p=p&255,typeof Uint8Array.prototype.indexOf=="function"?k?Uint8Array.prototype.indexOf.call(x,p,m):Uint8Array.prototype.lastIndexOf.call(x,p,m):M(x,[p],m,I,k);throw new TypeError("val must be string, number or Buffer")}function M(x,p,m,I,k){let P=1,H=x.length,he=p.length;if(I!==void 0&&(I=String(I).toLowerCase(),I==="ucs2"||I==="ucs-2"||I==="utf16le"||I==="utf-16le")){if(x.length<2||p.length<2)return-1;P=2,H/=2,he/=2,m/=2}function He(We,De){return P===1?We[De]:We.readUInt16BE(De*P)}let Le;if(k){let We=-1;for(Le=m;Le<H;Le++)if(He(x,Le)===He(p,We===-1?0:Le-We)){if(We===-1&&(We=Le),Le-We+1===he)return We*P}else We!==-1&&(Le-=Le-We),We=-1}else for(m+he>H&&(m=H-he),Le=m;Le>=0;Le--){let We=!0;for(let De=0;De<he;De++)if(He(x,Le+De)!==He(p,De)){We=!1;break}if(We)return Le}return-1}s.prototype.includes=function(p,m,I){return this.indexOf(p,m,I)!==-1},s.prototype.indexOf=function(p,m,I){return N(this,p,m,I,!0)},s.prototype.lastIndexOf=function(p,m,I){return N(this,p,m,I,!1)};function R(x,p,m,I){m=Number(m)||0;const k=x.length-m;I?(I=Number(I),I>k&&(I=k)):I=k;const P=p.length;I>P/2&&(I=P/2);let H;for(H=0;H<I;++H){const he=parseInt(p.substr(H*2,2),16);if(Or(he))return H;x[m+H]=he}return H}function C(x,p,m,I){return _i(ce(p,x.length-m),x,m,I)}function B(x,p,m,I){return _i(Yt(p),x,m,I)}function L(x,p,m,I){return _i(Si(p),x,m,I)}function ee(x,p,m,I){return _i(Ei(p,x.length-m),x,m,I)}s.prototype.write=function(p,m,I,k){if(m===void 0)k="utf8",I=this.length,m=0;else if(I===void 0&&typeof m=="string")k=m,I=this.length,m=0;else if(isFinite(m))m=m>>>0,isFinite(I)?(I=I>>>0,k===void 0&&(k="utf8")):(k=I,I=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const P=this.length-m;if((I===void 0||I>P)&&(I=P),p.length>0&&(I<0||m<0)||m>this.length)throw new RangeError("Attempt to write outside buffer bounds");k||(k="utf8");let H=!1;for(;;)switch(k){case"hex":return R(this,p,m,I);case"utf8":case"utf-8":return C(this,p,m,I);case"ascii":case"latin1":case"binary":return B(this,p,m,I);case"base64":return L(this,p,m,I);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ee(this,p,m,I);default:if(H)throw new TypeError("Unknown encoding: "+k);k=(""+k).toLowerCase(),H=!0}},s.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function ne(x,p,m){return p===0&&m===x.length?e.fromByteArray(x):e.fromByteArray(x.slice(p,m))}function J(x,p,m){m=Math.min(x.length,m);const I=[];let k=p;for(;k<m;){const P=x[k];let H=null,he=P>239?4:P>223?3:P>191?2:1;if(k+he<=m){let He,Le,We,De;switch(he){case 1:P<128&&(H=P);break;case 2:He=x[k+1],(He&192)===128&&(De=(P&31)<<6|He&63,De>127&&(H=De));break;case 3:He=x[k+1],Le=x[k+2],(He&192)===128&&(Le&192)===128&&(De=(P&15)<<12|(He&63)<<6|Le&63,De>2047&&(De<55296||De>57343)&&(H=De));break;case 4:He=x[k+1],Le=x[k+2],We=x[k+3],(He&192)===128&&(Le&192)===128&&(We&192)===128&&(De=(P&15)<<18|(He&63)<<12|(Le&63)<<6|We&63,De>65535&&De<1114112&&(H=De))}}H===null?(H=65533,he=1):H>65535&&(H-=65536,I.push(H>>>10&1023|55296),H=56320|H&1023),I.push(H),k+=he}return Se(I)}const be=4096;function Se(x){const p=x.length;if(p<=be)return String.fromCharCode.apply(String,x);let m="",I=0;for(;I<p;)m+=String.fromCharCode.apply(String,x.slice(I,I+=be));return m}function Te(x,p,m){let I="";m=Math.min(x.length,m);for(let k=p;k<m;++k)I+=String.fromCharCode(x[k]&127);return I}function it(x,p,m){let I="";m=Math.min(x.length,m);for(let k=p;k<m;++k)I+=String.fromCharCode(x[k]);return I}function et(x,p,m){const I=x.length;(!p||p<0)&&(p=0),(!m||m<0||m>I)&&(m=I);let k="";for(let P=p;P<m;++P)k+=Ci[x[P]];return k}function gr(x,p,m){const I=x.slice(p,m);let k="";for(let P=0;P<I.length-1;P+=2)k+=String.fromCharCode(I[P]+I[P+1]*256);return k}s.prototype.slice=function(p,m){const I=this.length;p=~~p,m=m===void 0?I:~~m,p<0?(p+=I,p<0&&(p=0)):p>I&&(p=I),m<0?(m+=I,m<0&&(m=0)):m>I&&(m=I),m<p&&(m=p);const k=this.subarray(p,m);return Object.setPrototypeOf(k,s.prototype),k};function Be(x,p,m){if(x%1!==0||x<0)throw new RangeError("offset is not uint");if(x+p>m)throw new RangeError("Trying to access beyond buffer length")}s.prototype.readUintLE=s.prototype.readUIntLE=function(p,m,I){p=p>>>0,m=m>>>0,I||Be(p,m,this.length);let k=this[p],P=1,H=0;for(;++H<m&&(P*=256);)k+=this[p+H]*P;return k},s.prototype.readUintBE=s.prototype.readUIntBE=function(p,m,I){p=p>>>0,m=m>>>0,I||Be(p,m,this.length);let k=this[p+--m],P=1;for(;m>0&&(P*=256);)k+=this[p+--m]*P;return k},s.prototype.readUint8=s.prototype.readUInt8=function(p,m){return p=p>>>0,m||Be(p,1,this.length),this[p]},s.prototype.readUint16LE=s.prototype.readUInt16LE=function(p,m){return p=p>>>0,m||Be(p,2,this.length),this[p]|this[p+1]<<8},s.prototype.readUint16BE=s.prototype.readUInt16BE=function(p,m){return p=p>>>0,m||Be(p,2,this.length),this[p]<<8|this[p+1]},s.prototype.readUint32LE=s.prototype.readUInt32LE=function(p,m){return p=p>>>0,m||Be(p,4,this.length),(this[p]|this[p+1]<<8|this[p+2]<<16)+this[p+3]*16777216},s.prototype.readUint32BE=s.prototype.readUInt32BE=function(p,m){return p=p>>>0,m||Be(p,4,this.length),this[p]*16777216+(this[p+1]<<16|this[p+2]<<8|this[p+3])},s.prototype.readBigUInt64LE=Wt(function(p){p=p>>>0,G(p,"offset");const m=this[p],I=this[p+7];(m===void 0||I===void 0)&&V(p,this.length-8);const k=m+this[++p]*2**8+this[++p]*2**16+this[++p]*2**24,P=this[++p]+this[++p]*2**8+this[++p]*2**16+I*2**24;return BigInt(k)+(BigInt(P)<<BigInt(32))}),s.prototype.readBigUInt64BE=Wt(function(p){p=p>>>0,G(p,"offset");const m=this[p],I=this[p+7];(m===void 0||I===void 0)&&V(p,this.length-8);const k=m*2**24+this[++p]*2**16+this[++p]*2**8+this[++p],P=this[++p]*2**24+this[++p]*2**16+this[++p]*2**8+I;return(BigInt(k)<<BigInt(32))+BigInt(P)}),s.prototype.readIntLE=function(p,m,I){p=p>>>0,m=m>>>0,I||Be(p,m,this.length);let k=this[p],P=1,H=0;for(;++H<m&&(P*=256);)k+=this[p+H]*P;return P*=128,k>=P&&(k-=Math.pow(2,8*m)),k},s.prototype.readIntBE=function(p,m,I){p=p>>>0,m=m>>>0,I||Be(p,m,this.length);let k=m,P=1,H=this[p+--k];for(;k>0&&(P*=256);)H+=this[p+--k]*P;return P*=128,H>=P&&(H-=Math.pow(2,8*m)),H},s.prototype.readInt8=function(p,m){return p=p>>>0,m||Be(p,1,this.length),this[p]&128?(255-this[p]+1)*-1:this[p]},s.prototype.readInt16LE=function(p,m){p=p>>>0,m||Be(p,2,this.length);const I=this[p]|this[p+1]<<8;return I&32768?I|4294901760:I},s.prototype.readInt16BE=function(p,m){p=p>>>0,m||Be(p,2,this.length);const I=this[p+1]|this[p]<<8;return I&32768?I|4294901760:I},s.prototype.readInt32LE=function(p,m){return p=p>>>0,m||Be(p,4,this.length),this[p]|this[p+1]<<8|this[p+2]<<16|this[p+3]<<24},s.prototype.readInt32BE=function(p,m){return p=p>>>0,m||Be(p,4,this.length),this[p]<<24|this[p+1]<<16|this[p+2]<<8|this[p+3]},s.prototype.readBigInt64LE=Wt(function(p){p=p>>>0,G(p,"offset");const m=this[p],I=this[p+7];(m===void 0||I===void 0)&&V(p,this.length-8);const k=this[p+4]+this[p+5]*2**8+this[p+6]*2**16+(I<<24);return(BigInt(k)<<BigInt(32))+BigInt(m+this[++p]*2**8+this[++p]*2**16+this[++p]*2**24)}),s.prototype.readBigInt64BE=Wt(function(p){p=p>>>0,G(p,"offset");const m=this[p],I=this[p+7];(m===void 0||I===void 0)&&V(p,this.length-8);const k=(m<<24)+this[++p]*2**16+this[++p]*2**8+this[++p];return(BigInt(k)<<BigInt(32))+BigInt(this[++p]*2**24+this[++p]*2**16+this[++p]*2**8+I)}),s.prototype.readFloatLE=function(p,m){return p=p>>>0,m||Be(p,4,this.length),n.read(this,p,!0,23,4)},s.prototype.readFloatBE=function(p,m){return p=p>>>0,m||Be(p,4,this.length),n.read(this,p,!1,23,4)},s.prototype.readDoubleLE=function(p,m){return p=p>>>0,m||Be(p,8,this.length),n.read(this,p,!0,52,8)},s.prototype.readDoubleBE=function(p,m){return p=p>>>0,m||Be(p,8,this.length),n.read(this,p,!1,52,8)};function Ye(x,p,m,I,k,P){if(!s.isBuffer(x))throw new TypeError('"buffer" argument must be a Buffer instance');if(p>k||p<P)throw new RangeError('"value" argument is out of bounds');if(m+I>x.length)throw new RangeError("Index out of range")}s.prototype.writeUintLE=s.prototype.writeUIntLE=function(p,m,I,k){if(p=+p,m=m>>>0,I=I>>>0,!k){const he=Math.pow(2,8*I)-1;Ye(this,p,m,I,he,0)}let P=1,H=0;for(this[m]=p&255;++H<I&&(P*=256);)this[m+H]=p/P&255;return m+I},s.prototype.writeUintBE=s.prototype.writeUIntBE=function(p,m,I,k){if(p=+p,m=m>>>0,I=I>>>0,!k){const he=Math.pow(2,8*I)-1;Ye(this,p,m,I,he,0)}let P=I-1,H=1;for(this[m+P]=p&255;--P>=0&&(H*=256);)this[m+P]=p/H&255;return m+I},s.prototype.writeUint8=s.prototype.writeUInt8=function(p,m,I){return p=+p,m=m>>>0,I||Ye(this,p,m,1,255,0),this[m]=p&255,m+1},s.prototype.writeUint16LE=s.prototype.writeUInt16LE=function(p,m,I){return p=+p,m=m>>>0,I||Ye(this,p,m,2,65535,0),this[m]=p&255,this[m+1]=p>>>8,m+2},s.prototype.writeUint16BE=s.prototype.writeUInt16BE=function(p,m,I){return p=+p,m=m>>>0,I||Ye(this,p,m,2,65535,0),this[m]=p>>>8,this[m+1]=p&255,m+2},s.prototype.writeUint32LE=s.prototype.writeUInt32LE=function(p,m,I){return p=+p,m=m>>>0,I||Ye(this,p,m,4,4294967295,0),this[m+3]=p>>>24,this[m+2]=p>>>16,this[m+1]=p>>>8,this[m]=p&255,m+4},s.prototype.writeUint32BE=s.prototype.writeUInt32BE=function(p,m,I){return p=+p,m=m>>>0,I||Ye(this,p,m,4,4294967295,0),this[m]=p>>>24,this[m+1]=p>>>16,this[m+2]=p>>>8,this[m+3]=p&255,m+4};function Zt(x,p,m,I,k){v(p,I,k,x,m,7);let P=Number(p&BigInt(4294967295));x[m++]=P,P=P>>8,x[m++]=P,P=P>>8,x[m++]=P,P=P>>8,x[m++]=P;let H=Number(p>>BigInt(32)&BigInt(4294967295));return x[m++]=H,H=H>>8,x[m++]=H,H=H>>8,x[m++]=H,H=H>>8,x[m++]=H,m}function Hn(x,p,m,I,k){v(p,I,k,x,m,7);let P=Number(p&BigInt(4294967295));x[m+7]=P,P=P>>8,x[m+6]=P,P=P>>8,x[m+5]=P,P=P>>8,x[m+4]=P;let H=Number(p>>BigInt(32)&BigInt(4294967295));return x[m+3]=H,H=H>>8,x[m+2]=H,H=H>>8,x[m+1]=H,H=H>>8,x[m]=H,m+8}s.prototype.writeBigUInt64LE=Wt(function(p,m=0){return Zt(this,p,m,BigInt(0),BigInt("0xffffffffffffffff"))}),s.prototype.writeBigUInt64BE=Wt(function(p,m=0){return Hn(this,p,m,BigInt(0),BigInt("0xffffffffffffffff"))}),s.prototype.writeIntLE=function(p,m,I,k){if(p=+p,m=m>>>0,!k){const He=Math.pow(2,8*I-1);Ye(this,p,m,I,He-1,-He)}let P=0,H=1,he=0;for(this[m]=p&255;++P<I&&(H*=256);)p<0&&he===0&&this[m+P-1]!==0&&(he=1),this[m+P]=(p/H>>0)-he&255;return m+I},s.prototype.writeIntBE=function(p,m,I,k){if(p=+p,m=m>>>0,!k){const He=Math.pow(2,8*I-1);Ye(this,p,m,I,He-1,-He)}let P=I-1,H=1,he=0;for(this[m+P]=p&255;--P>=0&&(H*=256);)p<0&&he===0&&this[m+P+1]!==0&&(he=1),this[m+P]=(p/H>>0)-he&255;return m+I},s.prototype.writeInt8=function(p,m,I){return p=+p,m=m>>>0,I||Ye(this,p,m,1,127,-128),p<0&&(p=255+p+1),this[m]=p&255,m+1},s.prototype.writeInt16LE=function(p,m,I){return p=+p,m=m>>>0,I||Ye(this,p,m,2,32767,-32768),this[m]=p&255,this[m+1]=p>>>8,m+2},s.prototype.writeInt16BE=function(p,m,I){return p=+p,m=m>>>0,I||Ye(this,p,m,2,32767,-32768),this[m]=p>>>8,this[m+1]=p&255,m+2},s.prototype.writeInt32LE=function(p,m,I){return p=+p,m=m>>>0,I||Ye(this,p,m,4,2147483647,-2147483648),this[m]=p&255,this[m+1]=p>>>8,this[m+2]=p>>>16,this[m+3]=p>>>24,m+4},s.prototype.writeInt32BE=function(p,m,I){return p=+p,m=m>>>0,I||Ye(this,p,m,4,2147483647,-2147483648),p<0&&(p=4294967295+p+1),this[m]=p>>>24,this[m+1]=p>>>16,this[m+2]=p>>>8,this[m+3]=p&255,m+4},s.prototype.writeBigInt64LE=Wt(function(p,m=0){return Zt(this,p,m,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),s.prototype.writeBigInt64BE=Wt(function(p,m=0){return Hn(this,p,m,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function pr(x,p,m,I,k,P){if(m+I>x.length)throw new RangeError("Index out of range");if(m<0)throw new RangeError("Index out of range")}function z(x,p,m,I,k){return p=+p,m=m>>>0,k||pr(x,p,m,4),n.write(x,p,m,I,23,4),m+4}s.prototype.writeFloatLE=function(p,m,I){return z(this,p,m,!0,I)},s.prototype.writeFloatBE=function(p,m,I){return z(this,p,m,!1,I)};function O(x,p,m,I,k){return p=+p,m=m>>>0,k||pr(x,p,m,8),n.write(x,p,m,I,52,8),m+8}s.prototype.writeDoubleLE=function(p,m,I){return O(this,p,m,!0,I)},s.prototype.writeDoubleBE=function(p,m,I){return O(this,p,m,!1,I)},s.prototype.copy=function(p,m,I,k){if(!s.isBuffer(p))throw new TypeError("argument should be a Buffer");if(I||(I=0),!k&&k!==0&&(k=this.length),m>=p.length&&(m=p.length),m||(m=0),k>0&&k<I&&(k=I),k===I||p.length===0||this.length===0)return 0;if(m<0)throw new RangeError("targetStart out of bounds");if(I<0||I>=this.length)throw new RangeError("Index out of range");if(k<0)throw new RangeError("sourceEnd out of bounds");k>this.length&&(k=this.length),p.length-m<k-I&&(k=p.length-m+I);const P=k-I;return this===p&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(m,I,k):Uint8Array.prototype.set.call(p,this.subarray(I,k),m),P},s.prototype.fill=function(p,m,I,k){if(typeof p=="string"){if(typeof m=="string"?(k=m,m=0,I=this.length):typeof I=="string"&&(k=I,I=this.length),k!==void 0&&typeof k!="string")throw new TypeError("encoding must be a string");if(typeof k=="string"&&!s.isEncoding(k))throw new TypeError("Unknown encoding: "+k);if(p.length===1){const H=p.charCodeAt(0);(k==="utf8"&&H<128||k==="latin1")&&(p=H)}}else typeof p=="number"?p=p&255:typeof p=="boolean"&&(p=Number(p));if(m<0||this.length<m||this.length<I)throw new RangeError("Out of range index");if(I<=m)return this;m=m>>>0,I=I===void 0?this.length:I>>>0,p||(p=0);let P;if(typeof p=="number")for(P=m;P<I;++P)this[P]=p;else{const H=s.isBuffer(p)?p:s.from(p,k),he=H.length;if(he===0)throw new TypeError('The value "'+p+'" is invalid for argument "value"');for(P=0;P<I-m;++P)this[P+m]=H[P%he]}return this};const q={};function Q(x,p,m){q[x]=class extends m{constructor(){super(),Object.defineProperty(this,"message",{value:p.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${x}]`,this.stack,delete this.name}get code(){return x}set code(k){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:k,writable:!0})}toString(){return`${this.name} [${x}]: ${this.message}`}}}Q("ERR_BUFFER_OUT_OF_BOUNDS",function(x){return x?`${x} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),Q("ERR_INVALID_ARG_TYPE",function(x,p){return`The "${x}" argument must be of type number. Received type ${typeof p}`},TypeError),Q("ERR_OUT_OF_RANGE",function(x,p,m){let I=`The value of "${x}" is out of range.`,k=m;return Number.isInteger(m)&&Math.abs(m)>2**32?k=X(String(m)):typeof m=="bigint"&&(k=String(m),(m>BigInt(2)**BigInt(32)||m<-(BigInt(2)**BigInt(32)))&&(k=X(k)),k+="n"),I+=` It must be ${p}. Received ${k}`,I},RangeError);function X(x){let p="",m=x.length;const I=x[0]==="-"?1:0;for(;m>=I+4;m-=3)p=`_${x.slice(m-3,m)}${p}`;return`${x.slice(0,m)}${p}`}function S(x,p,m){G(p,"offset"),(x[p]===void 0||x[p+m]===void 0)&&V(p,x.length-(m+1))}function v(x,p,m,I,k,P){if(x>m||x<p){const H=typeof p=="bigint"?"n":"";let he;throw P>3?p===0||p===BigInt(0)?he=`>= 0${H} and < 2${H} ** ${(P+1)*8}${H}`:he=`>= -(2${H} ** ${(P+1)*8-1}${H}) and < 2 ** ${(P+1)*8-1}${H}`:he=`>= ${p}${H} and <= ${m}${H}`,new q.ERR_OUT_OF_RANGE("value",he,x)}S(I,k,P)}function G(x,p){if(typeof x!="number")throw new q.ERR_INVALID_ARG_TYPE(p,"number",x)}function V(x,p,m){throw Math.floor(x)!==x?(G(x,m),new q.ERR_OUT_OF_RANGE(m||"offset","an integer",x)):p<0?new q.ERR_BUFFER_OUT_OF_BOUNDS:new q.ERR_OUT_OF_RANGE(m||"offset",`>= ${m?1:0} and <= ${p}`,x)}const le=/[^+/0-9A-Za-z-_]/g;function re(x){if(x=x.split("=")[0],x=x.trim().replace(le,""),x.length<2)return"";for(;x.length%4!==0;)x=x+"=";return x}function ce(x,p){p=p||1/0;let m;const I=x.length;let k=null;const P=[];for(let H=0;H<I;++H){if(m=x.charCodeAt(H),m>55295&&m<57344){if(!k){if(m>56319){(p-=3)>-1&&P.push(239,191,189);continue}else if(H+1===I){(p-=3)>-1&&P.push(239,191,189);continue}k=m;continue}if(m<56320){(p-=3)>-1&&P.push(239,191,189),k=m;continue}m=(k-55296<<10|m-56320)+65536}else k&&(p-=3)>-1&&P.push(239,191,189);if(k=null,m<128){if((p-=1)<0)break;P.push(m)}else if(m<2048){if((p-=2)<0)break;P.push(m>>6|192,m&63|128)}else if(m<65536){if((p-=3)<0)break;P.push(m>>12|224,m>>6&63|128,m&63|128)}else if(m<1114112){if((p-=4)<0)break;P.push(m>>18|240,m>>12&63|128,m>>6&63|128,m&63|128)}else throw new Error("Invalid code point")}return P}function Yt(x){const p=[];for(let m=0;m<x.length;++m)p.push(x.charCodeAt(m)&255);return p}function Ei(x,p){let m,I,k;const P=[];for(let H=0;H<x.length&&!((p-=2)<0);++H)m=x.charCodeAt(H),I=m>>8,k=m%256,P.push(k),P.push(I);return P}function Si(x){return e.toByteArray(re(x))}function _i(x,p,m,I){let k;for(k=0;k<I&&!(k+m>=p.length||k>=x.length);++k)p[k+m]=x[k];return k}function Dt(x,p){return x instanceof p||x!=null&&x.constructor!=null&&x.constructor.name!=null&&x.constructor.name===p.name}function Or(x){return x!==x}const Ci=function(){const x="0123456789abcdef",p=new Array(256);for(let m=0;m<16;++m){const I=m*16;for(let k=0;k<16;++k)p[I+k]=x[m]+x[k]}return p}();function Wt(x){return typeof BigInt>"u"?mr:x}function mr(){throw new Error("BigInt not supported")}})(bt);const Jt={},jk=Object.freeze(Object.defineProperty({__proto__:null,default:Jt},Symbol.toStringTag,{value:"Module"})),w0=typeof window<"u"?window:typeof self<"u"?self:{fetch:void 0};class nr{async getBufferFromResponse(e){if(typeof e.buffer=="function")return e.buffer();if(typeof e.arrayBuffer=="function"){const n=await e.arrayBuffer();return bt.Buffer.from(n)}else throw new TypeError("invalid HTTP response object, has no buffer method, and no arrayBuffer method")}constructor(e,n={}){this.baseOverrides={},this.url=e;const r=n.fetch||w0.fetch&&w0.fetch.bind(w0);if(!r)throw new TypeError("no fetch function supplied, and none found in globalThis environment");n.overrides&&(this.baseOverrides=n.overrides),this.fetchImplementation=r}async fetch(e,n){let r;try{r=await this.fetchImplementation(e,n)}catch(i){if(`${i}`.includes("Failed to fetch"))console.warn(`generic-filehandle: refetching ${e} to attempt to work around chrome CORS header caching bug`),r=await this.fetchImplementation(e,{...n,cache:"reload"});else throw i}return r}async read(e,n=0,r,i=0,a={}){const{headers:o={},signal:s,overrides:f={}}=a;r<1/0?o.range=`bytes=${i}-${i+r}`:r===1/0&&i!==0&&(o.range=`bytes=${i}-`);const u={...this.baseOverrides,...f,headers:{...o,...f.headers,...this.baseOverrides.headers},method:"GET",redirect:"follow",mode:"cors",signal:s},l=await this.fetch(this.url,u);if(!l.ok)throw new Error(`HTTP ${l.status} ${l.statusText} ${this.url}`);if(l.status===200&&i===0||l.status===206){const c=await this.getBufferFromResponse(l),h=c.copy(e,n,0,Math.min(r,c.length)),d=l.headers.get("content-range"),g=/\/(\d+)$/.exec(d||"");return g&&g[1]&&(this._stat={size:parseInt(g[1],10)}),{bytesRead:h,buffer:e}}throw l.status===200?new Error("${this.url} fetch returned status 200, expected 206"):new Error(`HTTP ${l.status} fetching ${this.url}`)}async readFile(e={}){let n,r;typeof e=="string"?(n=e,r={}):(n=e.encoding,r=e,delete r.encoding);const{headers:i={},signal:a,overrides:o={}}=r,s={headers:i,method:"GET",redirect:"follow",mode:"cors",signal:a,...this.baseOverrides,...o},f=await this.fetch(this.url,s);if(!f)throw new Error("generic-filehandle failed to fetch");if(f.status!==200)throw Object.assign(new Error(`HTTP ${f.status} fetching ${this.url}`),{status:f.status});if(n==="utf8")return f.text();if(n)throw new Error(`unsupported encoding: ${n}`);return this.getBufferFromResponse(f)}async stat(){if(!this._stat){const e=bt.Buffer.allocUnsafe(10);if(await this.read(e,0,10,0),!this._stat)throw new Error(`unable to determine size of file at ${this.url}`)}return this._stat}async close(){}}var _r={};(function(t){var e=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Int32Array<"u";function n(a,o){return Object.prototype.hasOwnProperty.call(a,o)}t.assign=function(a){for(var o=Array.prototype.slice.call(arguments,1);o.length;){var s=o.shift();if(s){if(typeof s!="object")throw new TypeError(s+"must be non-object");for(var f in s)n(s,f)&&(a[f]=s[f])}}return a},t.shrinkBuf=function(a,o){return a.length===o?a:a.subarray?a.subarray(0,o):(a.length=o,a)};var r={arraySet:function(a,o,s,f,u){if(o.subarray&&a.subarray){a.set(o.subarray(s,s+f),u);return}for(var l=0;l<f;l++)a[u+l]=o[s+l]},flattenChunks:function(a){var o,s,f,u,l,c;for(f=0,o=0,s=a.length;o<s;o++)f+=a[o].length;for(c=new Uint8Array(f),u=0,o=0,s=a.length;o<s;o++)l=a[o],c.set(l,u),u+=l.length;return c}},i={arraySet:function(a,o,s,f,u){for(var l=0;l<f;l++)a[u+l]=o[s+l]},flattenChunks:function(a){return[].concat.apply([],a)}};t.setTyped=function(a){a?(t.Buf8=Uint8Array,t.Buf16=Uint16Array,t.Buf32=Int32Array,t.assign(t,r)):(t.Buf8=Array,t.Buf16=Array,t.Buf32=Array,t.assign(t,i))},t.setTyped(e)})(_r);var au={},rr={},fo={},Gk=_r,Hk=4,px=0,mx=1,Qk=2;function lo(t){for(var e=t.length;--e>=0;)t[e]=0}var Vk=0,bx=1,qk=2,Zk=3,Yk=258,x0=29,ou=256,su=ou+1+x0,co=30,v0=19,yx=2*su+1,aa=15,A0=16,Wk=7,E0=256,wx=16,xx=17,vx=18,S0=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],Rl=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],Xk=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],Ax=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],$k=512,Cr=new Array((su+2)*2);lo(Cr);var uu=new Array(co*2);lo(uu);var fu=new Array($k);lo(fu);var lu=new Array(Yk-Zk+1);lo(lu);var _0=new Array(x0);lo(_0);var Ol=new Array(co);lo(Ol);function C0(t,e,n,r,i){this.static_tree=t,this.extra_bits=e,this.extra_base=n,this.elems=r,this.max_length=i,this.has_stree=t&&t.length}var Ex,Sx,_x;function D0(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}function Cx(t){return t<256?fu[t]:fu[256+(t>>>7)]}function cu(t,e){t.pending_buf[t.pending++]=e&255,t.pending_buf[t.pending++]=e>>>8&255}function Ut(t,e,n){t.bi_valid>A0-n?(t.bi_buf|=e<<t.bi_valid&65535,cu(t,t.bi_buf),t.bi_buf=e>>A0-t.bi_valid,t.bi_valid+=n-A0):(t.bi_buf|=e<<t.bi_valid&65535,t.bi_valid+=n)}function ir(t,e,n){Ut(t,n[e*2],n[e*2+1])}function Dx(t,e){var n=0;do n|=t&1,t>>>=1,n<<=1;while(--e>0);return n>>>1}function Kk(t){t.bi_valid===16?(cu(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=t.bi_buf&255,t.bi_buf>>=8,t.bi_valid-=8)}function Jk(t,e){var n=e.dyn_tree,r=e.max_code,i=e.stat_desc.static_tree,a=e.stat_desc.has_stree,o=e.stat_desc.extra_bits,s=e.stat_desc.extra_base,f=e.stat_desc.max_length,u,l,c,h,d,g,b=0;for(h=0;h<=aa;h++)t.bl_count[h]=0;for(n[t.heap[t.heap_max]*2+1]=0,u=t.heap_max+1;u<yx;u++)l=t.heap[u],h=n[n[l*2+1]*2+1]+1,h>f&&(h=f,b++),n[l*2+1]=h,!(l>r)&&(t.bl_count[h]++,d=0,l>=s&&(d=o[l-s]),g=n[l*2],t.opt_len+=g*(h+d),a&&(t.static_len+=g*(i[l*2+1]+d)));if(b!==0){do{for(h=f-1;t.bl_count[h]===0;)h--;t.bl_count[h]--,t.bl_count[h+1]+=2,t.bl_count[f]--,b-=2}while(b>0);for(h=f;h!==0;h--)for(l=t.bl_count[h];l!==0;)c=t.heap[--u],!(c>r)&&(n[c*2+1]!==h&&(t.opt_len+=(h-n[c*2+1])*n[c*2],n[c*2+1]=h),l--)}}function Ix(t,e,n){var r=new Array(aa+1),i=0,a,o;for(a=1;a<=aa;a++)r[a]=i=i+n[a-1]<<1;for(o=0;o<=e;o++){var s=t[o*2+1];s!==0&&(t[o*2]=Dx(r[s]++,s))}}function eB(){var t,e,n,r,i,a=new Array(aa+1);for(n=0,r=0;r<x0-1;r++)for(_0[r]=n,t=0;t<1<<S0[r];t++)lu[n++]=r;for(lu[n-1]=r,i=0,r=0;r<16;r++)for(Ol[r]=i,t=0;t<1<<Rl[r];t++)fu[i++]=r;for(i>>=7;r<co;r++)for(Ol[r]=i<<7,t=0;t<1<<Rl[r]-7;t++)fu[256+i++]=r;for(e=0;e<=aa;e++)a[e]=0;for(t=0;t<=143;)Cr[t*2+1]=8,t++,a[8]++;for(;t<=255;)Cr[t*2+1]=9,t++,a[9]++;for(;t<=279;)Cr[t*2+1]=7,t++,a[7]++;for(;t<=287;)Cr[t*2+1]=8,t++,a[8]++;for(Ix(Cr,su+1,a),t=0;t<co;t++)uu[t*2+1]=5,uu[t*2]=Dx(t,5);Ex=new C0(Cr,S0,ou+1,su,aa),Sx=new C0(uu,Rl,0,co,aa),_x=new C0(new Array(0),Xk,0,v0,Wk)}function Mx(t){var e;for(e=0;e<su;e++)t.dyn_ltree[e*2]=0;for(e=0;e<co;e++)t.dyn_dtree[e*2]=0;for(e=0;e<v0;e++)t.bl_tree[e*2]=0;t.dyn_ltree[E0*2]=1,t.opt_len=t.static_len=0,t.last_lit=t.matches=0}function Tx(t){t.bi_valid>8?cu(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0}function tB(t,e,n,r){Tx(t),r&&(cu(t,n),cu(t,~n)),Gk.arraySet(t.pending_buf,t.window,e,n,t.pending),t.pending+=n}function Nx(t,e,n,r){var i=e*2,a=n*2;return t[i]<t[a]||t[i]===t[a]&&r[e]<=r[n]}function I0(t,e,n){for(var r=t.heap[n],i=n<<1;i<=t.heap_len&&(i<t.heap_len&&Nx(e,t.heap[i+1],t.heap[i],t.depth)&&i++,!Nx(e,r,t.heap[i],t.depth));)t.heap[n]=t.heap[i],n=i,i<<=1;t.heap[n]=r}function Fx(t,e,n){var r,i,a=0,o,s;if(t.last_lit!==0)do r=t.pending_buf[t.d_buf+a*2]<<8|t.pending_buf[t.d_buf+a*2+1],i=t.pending_buf[t.l_buf+a],a++,r===0?ir(t,i,e):(o=lu[i],ir(t,o+ou+1,e),s=S0[o],s!==0&&(i-=_0[o],Ut(t,i,s)),r--,o=Cx(r),ir(t,o,n),s=Rl[o],s!==0&&(r-=Ol[o],Ut(t,r,s)));while(a<t.last_lit);ir(t,E0,e)}function M0(t,e){var n=e.dyn_tree,r=e.stat_desc.static_tree,i=e.stat_desc.has_stree,a=e.stat_desc.elems,o,s,f=-1,u;for(t.heap_len=0,t.heap_max=yx,o=0;o<a;o++)n[o*2]!==0?(t.heap[++t.heap_len]=f=o,t.depth[o]=0):n[o*2+1]=0;for(;t.heap_len<2;)u=t.heap[++t.heap_len]=f<2?++f:0,n[u*2]=1,t.depth[u]=0,t.opt_len--,i&&(t.static_len-=r[u*2+1]);for(e.max_code=f,o=t.heap_len>>1;o>=1;o--)I0(t,n,o);u=a;do o=t.heap[1],t.heap[1]=t.heap[t.heap_len--],I0(t,n,1),s=t.heap[1],t.heap[--t.heap_max]=o,t.heap[--t.heap_max]=s,n[u*2]=n[o*2]+n[s*2],t.depth[u]=(t.depth[o]>=t.depth[s]?t.depth[o]:t.depth[s])+1,n[o*2+1]=n[s*2+1]=u,t.heap[1]=u++,I0(t,n,1);while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],Jk(t,e),Ix(n,f,t.bl_count)}function kx(t,e,n){var r,i=-1,a,o=e[0*2+1],s=0,f=7,u=4;for(o===0&&(f=138,u=3),e[(n+1)*2+1]=65535,r=0;r<=n;r++)a=o,o=e[(r+1)*2+1],!(++s<f&&a===o)&&(s<u?t.bl_tree[a*2]+=s:a!==0?(a!==i&&t.bl_tree[a*2]++,t.bl_tree[wx*2]++):s<=10?t.bl_tree[xx*2]++:t.bl_tree[vx*2]++,s=0,i=a,o===0?(f=138,u=3):a===o?(f=6,u=3):(f=7,u=4))}function Bx(t,e,n){var r,i=-1,a,o=e[0*2+1],s=0,f=7,u=4;for(o===0&&(f=138,u=3),r=0;r<=n;r++)if(a=o,o=e[(r+1)*2+1],!(++s<f&&a===o)){if(s<u)do ir(t,a,t.bl_tree);while(--s!==0);else a!==0?(a!==i&&(ir(t,a,t.bl_tree),s--),ir(t,wx,t.bl_tree),Ut(t,s-3,2)):s<=10?(ir(t,xx,t.bl_tree),Ut(t,s-3,3)):(ir(t,vx,t.bl_tree),Ut(t,s-11,7));s=0,i=a,o===0?(f=138,u=3):a===o?(f=6,u=3):(f=7,u=4)}}function nB(t){var e;for(kx(t,t.dyn_ltree,t.l_desc.max_code),kx(t,t.dyn_dtree,t.d_desc.max_code),M0(t,t.bl_desc),e=v0-1;e>=3&&t.bl_tree[Ax[e]*2+1]===0;e--);return t.opt_len+=3*(e+1)+5+5+4,e}function rB(t,e,n,r){var i;for(Ut(t,e-257,5),Ut(t,n-1,5),Ut(t,r-4,4),i=0;i<r;i++)Ut(t,t.bl_tree[Ax[i]*2+1],3);Bx(t,t.dyn_ltree,e-1),Bx(t,t.dyn_dtree,n-1)}function iB(t){var e=4093624447,n;for(n=0;n<=31;n++,e>>>=1)if(e&1&&t.dyn_ltree[n*2]!==0)return px;if(t.dyn_ltree[9*2]!==0||t.dyn_ltree[10*2]!==0||t.dyn_ltree[13*2]!==0)return mx;for(n=32;n<ou;n++)if(t.dyn_ltree[n*2]!==0)return mx;return px}var Lx=!1;function aB(t){Lx||(eB(),Lx=!0),t.l_desc=new D0(t.dyn_ltree,Ex),t.d_desc=new D0(t.dyn_dtree,Sx),t.bl_desc=new D0(t.bl_tree,_x),t.bi_buf=0,t.bi_valid=0,Mx(t)}function Rx(t,e,n,r){Ut(t,(Vk<<1)+(r?1:0),3),tB(t,e,n,!0)}function oB(t){Ut(t,bx<<1,3),ir(t,E0,Cr),Kk(t)}function sB(t,e,n,r){var i,a,o=0;t.level>0?(t.strm.data_type===Qk&&(t.strm.data_type=iB(t)),M0(t,t.l_desc),M0(t,t.d_desc),o=nB(t),i=t.opt_len+3+7>>>3,a=t.static_len+3+7>>>3,a<=i&&(i=a)):i=a=n+5,n+4<=i&&e!==-1?Rx(t,e,n,r):t.strategy===Hk||a===i?(Ut(t,(bx<<1)+(r?1:0),3),Fx(t,Cr,uu)):(Ut(t,(qk<<1)+(r?1:0),3),rB(t,t.l_desc.max_code+1,t.d_desc.max_code+1,o+1),Fx(t,t.dyn_ltree,t.dyn_dtree)),Mx(t),r&&Tx(t)}function uB(t,e,n){return t.pending_buf[t.d_buf+t.last_lit*2]=e>>>8&255,t.pending_buf[t.d_buf+t.last_lit*2+1]=e&255,t.pending_buf[t.l_buf+t.last_lit]=n&255,t.last_lit++,e===0?t.dyn_ltree[n*2]++:(t.matches++,e--,t.dyn_ltree[(lu[n]+ou+1)*2]++,t.dyn_dtree[Cx(e)*2]++),t.last_lit===t.lit_bufsize-1}fo._tr_init=aB,fo._tr_stored_block=Rx,fo._tr_flush_block=sB,fo._tr_tally=uB,fo._tr_align=oB;function fB(t,e,n,r){for(var i=t&65535|0,a=t>>>16&65535|0,o=0;n!==0;){o=n>2e3?2e3:n,n-=o;do i=i+e[r++]|0,a=a+i|0;while(--o);i%=65521,a%=65521}return i|a<<16|0}var Ox=fB;function lB(){for(var t,e=[],n=0;n<256;n++){t=n;for(var r=0;r<8;r++)t=t&1?3988292384^t>>>1:t>>>1;e[n]=t}return e}var cB=lB();function hB(t,e,n,r){var i=cB,a=r+n;t^=-1;for(var o=r;o<a;o++)t=t>>>8^i[(t^e[o])&255];return t^-1}var zx=hB,T0={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"},Nt=_r,ln=fo,Px=Ox,si=zx,dB=T0,oa=0,gB=1,pB=3,ui=4,Ux=5,ar=0,jx=1,cn=-2,mB=-3,N0=-5,bB=-1,yB=1,zl=2,wB=3,xB=4,vB=0,AB=2,Pl=8,EB=9,SB=15,_B=8,CB=29,DB=256,F0=DB+1+CB,IB=30,MB=19,TB=2*F0+1,NB=15,pe=3,fi=258,Ln=fi+pe+1,FB=32,Ul=42,k0=69,jl=73,Gl=91,Hl=103,sa=113,hu=666,st=1,du=2,ua=3,ho=4,kB=3;function li(t,e){return t.msg=dB[e],e}function Gx(t){return(t<<1)-(t>4?9:0)}function ci(t){for(var e=t.length;--e>=0;)t[e]=0}function hi(t){var e=t.state,n=e.pending;n>t.avail_out&&(n=t.avail_out),n!==0&&(Nt.arraySet(t.output,e.pending_buf,e.pending_out,n,t.next_out),t.next_out+=n,e.pending_out+=n,t.total_out+=n,t.avail_out-=n,e.pending-=n,e.pending===0&&(e.pending_out=0))}function yt(t,e){ln._tr_flush_block(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,hi(t.strm)}function Ae(t,e){t.pending_buf[t.pending++]=e}function gu(t,e){t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=e&255}function BB(t,e,n,r){var i=t.avail_in;return i>r&&(i=r),i===0?0:(t.avail_in-=i,Nt.arraySet(e,t.input,t.next_in,i,n),t.state.wrap===1?t.adler=Px(t.adler,e,i,n):t.state.wrap===2&&(t.adler=si(t.adler,e,i,n)),t.next_in+=i,t.total_in+=i,i)}function Hx(t,e){var n=t.max_chain_length,r=t.strstart,i,a,o=t.prev_length,s=t.nice_match,f=t.strstart>t.w_size-Ln?t.strstart-(t.w_size-Ln):0,u=t.window,l=t.w_mask,c=t.prev,h=t.strstart+fi,d=u[r+o-1],g=u[r+o];t.prev_length>=t.good_match&&(n>>=2),s>t.lookahead&&(s=t.lookahead);do if(i=e,!(u[i+o]!==g||u[i+o-1]!==d||u[i]!==u[r]||u[++i]!==u[r+1])){r+=2,i++;do;while(u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&r<h);if(a=fi-(h-r),r=h-fi,a>o){if(t.match_start=e,o=a,a>=s)break;d=u[r+o-1],g=u[r+o]}}while((e=c[e&l])>f&&--n!==0);return o<=t.lookahead?o:t.lookahead}function fa(t){var e=t.w_size,n,r,i,a,o;do{if(a=t.window_size-t.lookahead-t.strstart,t.strstart>=e+(e-Ln)){Nt.arraySet(t.window,t.window,e,e,0),t.match_start-=e,t.strstart-=e,t.block_start-=e,r=t.hash_size,n=r;do i=t.head[--n],t.head[n]=i>=e?i-e:0;while(--r);r=e,n=r;do i=t.prev[--n],t.prev[n]=i>=e?i-e:0;while(--r);a+=e}if(t.strm.avail_in===0)break;if(r=BB(t.strm,t.window,t.strstart+t.lookahead,a),t.lookahead+=r,t.lookahead+t.insert>=pe)for(o=t.strstart-t.insert,t.ins_h=t.window[o],t.ins_h=(t.ins_h<<t.hash_shift^t.window[o+1])&t.hash_mask;t.insert&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[o+pe-1])&t.hash_mask,t.prev[o&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=o,o++,t.insert--,!(t.lookahead+t.insert<pe)););}while(t.lookahead<Ln&&t.strm.avail_in!==0)}function LB(t,e){var n=65535;for(n>t.pending_buf_size-5&&(n=t.pending_buf_size-5);;){if(t.lookahead<=1){if(fa(t),t.lookahead===0&&e===oa)return st;if(t.lookahead===0)break}t.strstart+=t.lookahead,t.lookahead=0;var r=t.block_start+n;if((t.strstart===0||t.strstart>=r)&&(t.lookahead=t.strstart-r,t.strstart=r,yt(t,!1),t.strm.avail_out===0)||t.strstart-t.block_start>=t.w_size-Ln&&(yt(t,!1),t.strm.avail_out===0))return st}return t.insert=0,e===ui?(yt(t,!0),t.strm.avail_out===0?ua:ho):(t.strstart>t.block_start&&(yt(t,!1),t.strm.avail_out===0),st)}function B0(t,e){for(var n,r;;){if(t.lookahead<Ln){if(fa(t),t.lookahead<Ln&&e===oa)return st;if(t.lookahead===0)break}if(n=0,t.lookahead>=pe&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+pe-1])&t.hash_mask,n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),n!==0&&t.strstart-n<=t.w_size-Ln&&(t.match_length=Hx(t,n)),t.match_length>=pe)if(r=ln._tr_tally(t,t.strstart-t.match_start,t.match_length-pe),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=pe){t.match_length--;do t.strstart++,t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+pe-1])&t.hash_mask,n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart;while(--t.match_length!==0);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.ins_h=t.window[t.strstart],t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+1])&t.hash_mask;else r=ln._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(r&&(yt(t,!1),t.strm.avail_out===0))return st}return t.insert=t.strstart<pe-1?t.strstart:pe-1,e===ui?(yt(t,!0),t.strm.avail_out===0?ua:ho):t.last_lit&&(yt(t,!1),t.strm.avail_out===0)?st:du}function go(t,e){for(var n,r,i;;){if(t.lookahead<Ln){if(fa(t),t.lookahead<Ln&&e===oa)return st;if(t.lookahead===0)break}if(n=0,t.lookahead>=pe&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+pe-1])&t.hash_mask,n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=pe-1,n!==0&&t.prev_length<t.max_lazy_match&&t.strstart-n<=t.w_size-Ln&&(t.match_length=Hx(t,n),t.match_length<=5&&(t.strategy===yB||t.match_length===pe&&t.strstart-t.match_start>4096)&&(t.match_length=pe-1)),t.prev_length>=pe&&t.match_length<=t.prev_length){i=t.strstart+t.lookahead-pe,r=ln._tr_tally(t,t.strstart-1-t.prev_match,t.prev_length-pe),t.lookahead-=t.prev_length-1,t.prev_length-=2;do++t.strstart<=i&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+pe-1])&t.hash_mask,n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart);while(--t.prev_length!==0);if(t.match_available=0,t.match_length=pe-1,t.strstart++,r&&(yt(t,!1),t.strm.avail_out===0))return st}else if(t.match_available){if(r=ln._tr_tally(t,0,t.window[t.strstart-1]),r&&yt(t,!1),t.strstart++,t.lookahead--,t.strm.avail_out===0)return st}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(r=ln._tr_tally(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<pe-1?t.strstart:pe-1,e===ui?(yt(t,!0),t.strm.avail_out===0?ua:ho):t.last_lit&&(yt(t,!1),t.strm.avail_out===0)?st:du}function RB(t,e){for(var n,r,i,a,o=t.window;;){if(t.lookahead<=fi){if(fa(t),t.lookahead<=fi&&e===oa)return st;if(t.lookahead===0)break}if(t.match_length=0,t.lookahead>=pe&&t.strstart>0&&(i=t.strstart-1,r=o[i],r===o[++i]&&r===o[++i]&&r===o[++i])){a=t.strstart+fi;do;while(r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&i<a);t.match_length=fi-(a-i),t.match_length>t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=pe?(n=ln._tr_tally(t,1,t.match_length-pe),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(n=ln._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),n&&(yt(t,!1),t.strm.avail_out===0))return st}return t.insert=0,e===ui?(yt(t,!0),t.strm.avail_out===0?ua:ho):t.last_lit&&(yt(t,!1),t.strm.avail_out===0)?st:du}function OB(t,e){for(var n;;){if(t.lookahead===0&&(fa(t),t.lookahead===0)){if(e===oa)return st;break}if(t.match_length=0,n=ln._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,n&&(yt(t,!1),t.strm.avail_out===0))return st}return t.insert=0,e===ui?(yt(t,!0),t.strm.avail_out===0?ua:ho):t.last_lit&&(yt(t,!1),t.strm.avail_out===0)?st:du}function or(t,e,n,r,i){this.good_length=t,this.max_lazy=e,this.nice_length=n,this.max_chain=r,this.func=i}var po;po=[new or(0,0,0,0,LB),new or(4,4,8,4,B0),new or(4,5,16,8,B0),new or(4,6,32,32,B0),new or(4,4,16,16,go),new or(8,16,32,32,go),new or(8,16,128,128,go),new or(8,32,128,256,go),new or(32,128,258,1024,go),new or(32,258,258,4096,go)];function zB(t){t.window_size=2*t.w_size,ci(t.head),t.max_lazy_match=po[t.level].max_lazy,t.good_match=po[t.level].good_length,t.nice_match=po[t.level].nice_length,t.max_chain_length=po[t.level].max_chain,t.strstart=0,t.block_start=0,t.lookahead=0,t.insert=0,t.match_length=t.prev_length=pe-1,t.match_available=0,t.ins_h=0}function PB(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Pl,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Nt.Buf16(TB*2),this.dyn_dtree=new Nt.Buf16((2*IB+1)*2),this.bl_tree=new Nt.Buf16((2*MB+1)*2),ci(this.dyn_ltree),ci(this.dyn_dtree),ci(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Nt.Buf16(NB+1),this.heap=new Nt.Buf16(2*F0+1),ci(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Nt.Buf16(2*F0+1),ci(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function Qx(t){var e;return!t||!t.state?li(t,cn):(t.total_in=t.total_out=0,t.data_type=AB,e=t.state,e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap?Ul:sa,t.adler=e.wrap===2?0:1,e.last_flush=oa,ln._tr_init(e),ar)}function Vx(t){var e=Qx(t);return e===ar&&zB(t.state),e}function UB(t,e){return!t||!t.state||t.state.wrap!==2?cn:(t.state.gzhead=e,ar)}function qx(t,e,n,r,i,a){if(!t)return cn;var o=1;if(e===bB&&(e=6),r<0?(o=0,r=-r):r>15&&(o=2,r-=16),i<1||i>EB||n!==Pl||r<8||r>15||e<0||e>9||a<0||a>xB)return li(t,cn);r===8&&(r=9);var s=new PB;return t.state=s,s.strm=t,s.wrap=o,s.gzhead=null,s.w_bits=r,s.w_size=1<<s.w_bits,s.w_mask=s.w_size-1,s.hash_bits=i+7,s.hash_size=1<<s.hash_bits,s.hash_mask=s.hash_size-1,s.hash_shift=~~((s.hash_bits+pe-1)/pe),s.window=new Nt.Buf8(s.w_size*2),s.head=new Nt.Buf16(s.hash_size),s.prev=new Nt.Buf16(s.w_size),s.lit_bufsize=1<<i+6,s.pending_buf_size=s.lit_bufsize*4,s.pending_buf=new Nt.Buf8(s.pending_buf_size),s.d_buf=1*s.lit_bufsize,s.l_buf=(1+2)*s.lit_bufsize,s.level=e,s.strategy=a,s.method=n,Vx(t)}function jB(t,e){return qx(t,e,Pl,SB,_B,vB)}function GB(t,e){var n,r,i,a;if(!t||!t.state||e>Ux||e<0)return t?li(t,cn):cn;if(r=t.state,!t.output||!t.input&&t.avail_in!==0||r.status===hu&&e!==ui)return li(t,t.avail_out===0?N0:cn);if(r.strm=t,n=r.last_flush,r.last_flush=e,r.status===Ul)if(r.wrap===2)t.adler=0,Ae(r,31),Ae(r,139),Ae(r,8),r.gzhead?(Ae(r,(r.gzhead.text?1:0)+(r.gzhead.hcrc?2:0)+(r.gzhead.extra?4:0)+(r.gzhead.name?8:0)+(r.gzhead.comment?16:0)),Ae(r,r.gzhead.time&255),Ae(r,r.gzhead.time>>8&255),Ae(r,r.gzhead.time>>16&255),Ae(r,r.gzhead.time>>24&255),Ae(r,r.level===9?2:r.strategy>=zl||r.level<2?4:0),Ae(r,r.gzhead.os&255),r.gzhead.extra&&r.gzhead.extra.length&&(Ae(r,r.gzhead.extra.length&255),Ae(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(t.adler=si(t.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=k0):(Ae(r,0),Ae(r,0),Ae(r,0),Ae(r,0),Ae(r,0),Ae(r,r.level===9?2:r.strategy>=zl||r.level<2?4:0),Ae(r,kB),r.status=sa);else{var o=Pl+(r.w_bits-8<<4)<<8,s=-1;r.strategy>=zl||r.level<2?s=0:r.level<6?s=1:r.level===6?s=2:s=3,o|=s<<6,r.strstart!==0&&(o|=FB),o+=31-o%31,r.status=sa,gu(r,o),r.strstart!==0&&(gu(r,t.adler>>>16),gu(r,t.adler&65535)),t.adler=1}if(r.status===k0)if(r.gzhead.extra){for(i=r.pending;r.gzindex<(r.gzhead.extra.length&65535)&&!(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(t.adler=si(t.adler,r.pending_buf,r.pending-i,i)),hi(t),i=r.pending,r.pending===r.pending_buf_size));)Ae(r,r.gzhead.extra[r.gzindex]&255),r.gzindex++;r.gzhead.hcrc&&r.pending>i&&(t.adler=si(t.adler,r.pending_buf,r.pending-i,i)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=jl)}else r.status=jl;if(r.status===jl)if(r.gzhead.name){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(t.adler=si(t.adler,r.pending_buf,r.pending-i,i)),hi(t),i=r.pending,r.pending===r.pending_buf_size)){a=1;break}r.gzindex<r.gzhead.name.length?a=r.gzhead.name.charCodeAt(r.gzindex++)&255:a=0,Ae(r,a)}while(a!==0);r.gzhead.hcrc&&r.pending>i&&(t.adler=si(t.adler,r.pending_buf,r.pending-i,i)),a===0&&(r.gzindex=0,r.status=Gl)}else r.status=Gl;if(r.status===Gl)if(r.gzhead.comment){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(t.adler=si(t.adler,r.pending_buf,r.pending-i,i)),hi(t),i=r.pending,r.pending===r.pending_buf_size)){a=1;break}r.gzindex<r.gzhead.comment.length?a=r.gzhead.comment.charCodeAt(r.gzindex++)&255:a=0,Ae(r,a)}while(a!==0);r.gzhead.hcrc&&r.pending>i&&(t.adler=si(t.adler,r.pending_buf,r.pending-i,i)),a===0&&(r.status=Hl)}else r.status=Hl;if(r.status===Hl&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&hi(t),r.pending+2<=r.pending_buf_size&&(Ae(r,t.adler&255),Ae(r,t.adler>>8&255),t.adler=0,r.status=sa)):r.status=sa),r.pending!==0){if(hi(t),t.avail_out===0)return r.last_flush=-1,ar}else if(t.avail_in===0&&Gx(e)<=Gx(n)&&e!==ui)return li(t,N0);if(r.status===hu&&t.avail_in!==0)return li(t,N0);if(t.avail_in!==0||r.lookahead!==0||e!==oa&&r.status!==hu){var f=r.strategy===zl?OB(r,e):r.strategy===wB?RB(r,e):po[r.level].func(r,e);if((f===ua||f===ho)&&(r.status=hu),f===st||f===ua)return t.avail_out===0&&(r.last_flush=-1),ar;if(f===du&&(e===gB?ln._tr_align(r):e!==Ux&&(ln._tr_stored_block(r,0,0,!1),e===pB&&(ci(r.head),r.lookahead===0&&(r.strstart=0,r.block_start=0,r.insert=0))),hi(t),t.avail_out===0))return r.last_flush=-1,ar}return e!==ui?ar:r.wrap<=0?jx:(r.wrap===2?(Ae(r,t.adler&255),Ae(r,t.adler>>8&255),Ae(r,t.adler>>16&255),Ae(r,t.adler>>24&255),Ae(r,t.total_in&255),Ae(r,t.total_in>>8&255),Ae(r,t.total_in>>16&255),Ae(r,t.total_in>>24&255)):(gu(r,t.adler>>>16),gu(r,t.adler&65535)),hi(t),r.wrap>0&&(r.wrap=-r.wrap),r.pending!==0?ar:jx)}function HB(t){var e;return!t||!t.state?cn:(e=t.state.status,e!==Ul&&e!==k0&&e!==jl&&e!==Gl&&e!==Hl&&e!==sa&&e!==hu?li(t,cn):(t.state=null,e===sa?li(t,mB):ar))}function QB(t,e){var n=e.length,r,i,a,o,s,f,u,l;if(!t||!t.state||(r=t.state,o=r.wrap,o===2||o===1&&r.status!==Ul||r.lookahead))return cn;for(o===1&&(t.adler=Px(t.adler,e,n,0)),r.wrap=0,n>=r.w_size&&(o===0&&(ci(r.head),r.strstart=0,r.block_start=0,r.insert=0),l=new Nt.Buf8(r.w_size),Nt.arraySet(l,e,n-r.w_size,r.w_size,0),e=l,n=r.w_size),s=t.avail_in,f=t.next_in,u=t.input,t.avail_in=n,t.next_in=0,t.input=e,fa(r);r.lookahead>=pe;){i=r.strstart,a=r.lookahead-(pe-1);do r.ins_h=(r.ins_h<<r.hash_shift^r.window[i+pe-1])&r.hash_mask,r.prev[i&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=i,i++;while(--a);r.strstart=i,r.lookahead=pe-1,fa(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=pe-1,r.match_available=0,t.next_in=f,t.input=u,t.avail_in=s,r.wrap=o,ar}rr.deflateInit=jB,rr.deflateInit2=qx,rr.deflateReset=Vx,rr.deflateResetKeep=Qx,rr.deflateSetHeader=UB,rr.deflate=GB,rr.deflateEnd=HB,rr.deflateSetDictionary=QB,rr.deflateInfo="pako deflate (from Nodeca project)";var la={},Ql=_r,Zx=!0,Yx=!0;try{String.fromCharCode.apply(null,[0])}catch{Zx=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{Yx=!1}for(var pu=new Ql.Buf8(256),di=0;di<256;di++)pu[di]=di>=252?6:di>=248?5:di>=240?4:di>=224?3:di>=192?2:1;pu[254]=pu[254]=1,la.string2buf=function(t){var e,n,r,i,a,o=t.length,s=0;for(i=0;i<o;i++)n=t.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=t.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),s+=n<128?1:n<2048?2:n<65536?3:4;for(e=new Ql.Buf8(s),a=0,i=0;a<s;i++)n=t.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=t.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),n<128?e[a++]=n:n<2048?(e[a++]=192|n>>>6,e[a++]=128|n&63):n<65536?(e[a++]=224|n>>>12,e[a++]=128|n>>>6&63,e[a++]=128|n&63):(e[a++]=240|n>>>18,e[a++]=128|n>>>12&63,e[a++]=128|n>>>6&63,e[a++]=128|n&63);return e};function Wx(t,e){if(e<65534&&(t.subarray&&Yx||!t.subarray&&Zx))return String.fromCharCode.apply(null,Ql.shrinkBuf(t,e));for(var n="",r=0;r<e;r++)n+=String.fromCharCode(t[r]);return n}la.buf2binstring=function(t){return Wx(t,t.length)},la.binstring2buf=function(t){for(var e=new Ql.Buf8(t.length),n=0,r=e.length;n<r;n++)e[n]=t.charCodeAt(n);return e},la.buf2string=function(t,e){var n,r,i,a,o=e||t.length,s=new Array(o*2);for(r=0,n=0;n<o;){if(i=t[n++],i<128){s[r++]=i;continue}if(a=pu[i],a>4){s[r++]=65533,n+=a-1;continue}for(i&=a===2?31:a===3?15:7;a>1&&n<o;)i=i<<6|t[n++]&63,a--;if(a>1){s[r++]=65533;continue}i<65536?s[r++]=i:(i-=65536,s[r++]=55296|i>>10&1023,s[r++]=56320|i&1023)}return Wx(s,r)},la.utf8border=function(t,e){var n;for(e=e||t.length,e>t.length&&(e=t.length),n=e-1;n>=0&&(t[n]&192)===128;)n--;return n<0||n===0?e:n+pu[t[n]]>e?n:e};function VB(){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 Xx=VB,mu=rr,bu=_r,L0=la,R0=T0,qB=Xx,$x=Object.prototype.toString,ZB=0,O0=4,mo=0,Kx=1,Jx=2,YB=-1,WB=0,XB=8;function ca(t){if(!(this instanceof ca))return new ca(t);this.options=bu.assign({level:YB,method:XB,chunkSize:16384,windowBits:15,memLevel:8,strategy:WB,to:""},t||{});var e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new qB,this.strm.avail_out=0;var n=mu.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(n!==mo)throw new Error(R0[n]);if(e.header&&mu.deflateSetHeader(this.strm,e.header),e.dictionary){var r;if(typeof e.dictionary=="string"?r=L0.string2buf(e.dictionary):$x.call(e.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(e.dictionary):r=e.dictionary,n=mu.deflateSetDictionary(this.strm,r),n!==mo)throw new Error(R0[n]);this._dict_set=!0}}ca.prototype.push=function(t,e){var n=this.strm,r=this.options.chunkSize,i,a;if(this.ended)return!1;a=e===~~e?e:e===!0?O0:ZB,typeof t=="string"?n.input=L0.string2buf(t):$x.call(t)==="[object ArrayBuffer]"?n.input=new Uint8Array(t):n.input=t,n.next_in=0,n.avail_in=n.input.length;do{if(n.avail_out===0&&(n.output=new bu.Buf8(r),n.next_out=0,n.avail_out=r),i=mu.deflate(n,a),i!==Kx&&i!==mo)return this.onEnd(i),this.ended=!0,!1;(n.avail_out===0||n.avail_in===0&&(a===O0||a===Jx))&&(this.options.to==="string"?this.onData(L0.buf2binstring(bu.shrinkBuf(n.output,n.next_out))):this.onData(bu.shrinkBuf(n.output,n.next_out)))}while((n.avail_in>0||n.avail_out===0)&&i!==Kx);return a===O0?(i=mu.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===mo):(a===Jx&&(this.onEnd(mo),n.avail_out=0),!0)},ca.prototype.onData=function(t){this.chunks.push(t)},ca.prototype.onEnd=function(t){t===mo&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=bu.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};function z0(t,e){var n=new ca(e);if(n.push(t,!0),n.err)throw n.msg||R0[n.err];return n.result}function $B(t,e){return e=e||{},e.raw=!0,z0(t,e)}function KB(t,e){return e=e||{},e.gzip=!0,z0(t,e)}au.Deflate=ca,au.deflate=z0,au.deflateRaw=$B,au.gzip=KB;var yu={},Rn={},Vl=30,JB=12,eL=function(e,n){var r,i,a,o,s,f,u,l,c,h,d,g,b,y,w,E,_,D,T,N,M,R,C,B,L;r=e.state,i=e.next_in,B=e.input,a=i+(e.avail_in-5),o=e.next_out,L=e.output,s=o-(n-e.avail_out),f=o+(e.avail_out-257),u=r.dmax,l=r.wsize,c=r.whave,h=r.wnext,d=r.window,g=r.hold,b=r.bits,y=r.lencode,w=r.distcode,E=(1<<r.lenbits)-1,_=(1<<r.distbits)-1;e:do{b<15&&(g+=B[i++]<<b,b+=8,g+=B[i++]<<b,b+=8),D=y[g&E];t:for(;;){if(T=D>>>24,g>>>=T,b-=T,T=D>>>16&255,T===0)L[o++]=D&65535;else if(T&16){N=D&65535,T&=15,T&&(b<T&&(g+=B[i++]<<b,b+=8),N+=g&(1<<T)-1,g>>>=T,b-=T),b<15&&(g+=B[i++]<<b,b+=8,g+=B[i++]<<b,b+=8),D=w[g&_];n:for(;;){if(T=D>>>24,g>>>=T,b-=T,T=D>>>16&255,T&16){if(M=D&65535,T&=15,b<T&&(g+=B[i++]<<b,b+=8,b<T&&(g+=B[i++]<<b,b+=8)),M+=g&(1<<T)-1,M>u){e.msg="invalid distance too far back",r.mode=Vl;break e}if(g>>>=T,b-=T,T=o-s,M>T){if(T=M-T,T>c&&r.sane){e.msg="invalid distance too far back",r.mode=Vl;break e}if(R=0,C=d,h===0){if(R+=l-T,T<N){N-=T;do L[o++]=d[R++];while(--T);R=o-M,C=L}}else if(h<T){if(R+=l+h-T,T-=h,T<N){N-=T;do L[o++]=d[R++];while(--T);if(R=0,h<N){T=h,N-=T;do L[o++]=d[R++];while(--T);R=o-M,C=L}}}else if(R+=h-T,T<N){N-=T;do L[o++]=d[R++];while(--T);R=o-M,C=L}for(;N>2;)L[o++]=C[R++],L[o++]=C[R++],L[o++]=C[R++],N-=3;N&&(L[o++]=C[R++],N>1&&(L[o++]=C[R++]))}else{R=o-M;do L[o++]=L[R++],L[o++]=L[R++],L[o++]=L[R++],N-=3;while(N>2);N&&(L[o++]=L[R++],N>1&&(L[o++]=L[R++]))}}else if(T&64){e.msg="invalid distance code",r.mode=Vl;break e}else{D=w[(D&65535)+(g&(1<<T)-1)];continue n}break}}else if(T&64)if(T&32){r.mode=JB;break e}else{e.msg="invalid literal/length code",r.mode=Vl;break e}else{D=y[(D&65535)+(g&(1<<T)-1)];continue t}break}}while(i<a&&o<f);N=b>>3,i-=N,b-=N<<3,g&=(1<<b)-1,e.next_in=i,e.next_out=o,e.avail_in=i<a?5+(a-i):5-(i-a),e.avail_out=o<f?257+(f-o):257-(o-f),r.hold=g,r.bits=b},e2=_r,bo=15,t2=852,n2=592,r2=0,P0=1,i2=2,tL=[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],nL=[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],rL=[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],iL=[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],aL=function(e,n,r,i,a,o,s,f){var u=f.bits,l=0,c=0,h=0,d=0,g=0,b=0,y=0,w=0,E=0,_=0,D,T,N,M,R,C=null,B=0,L,ee=new e2.Buf16(bo+1),ne=new e2.Buf16(bo+1),J=null,be=0,Se,Te,it;for(l=0;l<=bo;l++)ee[l]=0;for(c=0;c<i;c++)ee[n[r+c]]++;for(g=u,d=bo;d>=1&&ee[d]===0;d--);if(g>d&&(g=d),d===0)return a[o++]=1<<24|64<<16|0,a[o++]=1<<24|64<<16|0,f.bits=1,0;for(h=1;h<d&&ee[h]===0;h++);for(g<h&&(g=h),w=1,l=1;l<=bo;l++)if(w<<=1,w-=ee[l],w<0)return-1;if(w>0&&(e===r2||d!==1))return-1;for(ne[1]=0,l=1;l<bo;l++)ne[l+1]=ne[l]+ee[l];for(c=0;c<i;c++)n[r+c]!==0&&(s[ne[n[r+c]]++]=c);if(e===r2?(C=J=s,L=19):e===P0?(C=tL,B-=257,J=nL,be-=257,L=256):(C=rL,J=iL,L=-1),_=0,c=0,l=h,R=o,b=g,y=0,N=-1,E=1<<g,M=E-1,e===P0&&E>t2||e===i2&&E>n2)return 1;for(;;){Se=l-y,s[c]<L?(Te=0,it=s[c]):s[c]>L?(Te=J[be+s[c]],it=C[B+s[c]]):(Te=32+64,it=0),D=1<<l-y,T=1<<b,h=T;do T-=D,a[R+(_>>y)+T]=Se<<24|Te<<16|it|0;while(T!==0);for(D=1<<l-1;_&D;)D>>=1;if(D!==0?(_&=D-1,_+=D):_=0,c++,--ee[l]===0){if(l===d)break;l=n[r+s[c]]}if(l>g&&(_&M)!==N){for(y===0&&(y=g),R+=h,b=l-y,w=1<<b;b+y<d&&(w-=ee[b+y],!(w<=0));)b++,w<<=1;if(E+=1<<b,e===P0&&E>t2||e===i2&&E>n2)return 1;N=_&M,a[N]=g<<24|b<<16|R-o|0}}return _!==0&&(a[R+_]=l-y<<24|64<<16|0),f.bits=g,0},en=_r,U0=Ox,sr=zx,oL=eL,wu=aL,sL=0,a2=1,o2=2,s2=4,uL=5,ql=6,ha=0,fL=1,lL=2,hn=-2,u2=-3,f2=-4,cL=-5,l2=8,c2=1,h2=2,d2=3,g2=4,p2=5,m2=6,b2=7,y2=8,w2=9,x2=10,Zl=11,Dr=12,j0=13,v2=14,G0=15,A2=16,E2=17,S2=18,_2=19,Yl=20,Wl=21,C2=22,D2=23,I2=24,M2=25,T2=26,H0=27,N2=28,F2=29,qe=30,k2=31,hL=32,dL=852,gL=592,pL=15,mL=pL;function B2(t){return(t>>>24&255)+(t>>>8&65280)+((t&65280)<<8)+((t&255)<<24)}function bL(){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=new en.Buf16(320),this.work=new en.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function L2(t){var e;return!t||!t.state?hn:(e=t.state,t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=e.wrap&1),e.mode=c2,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new en.Buf32(dL),e.distcode=e.distdyn=new en.Buf32(gL),e.sane=1,e.back=-1,ha)}function R2(t){var e;return!t||!t.state?hn:(e=t.state,e.wsize=0,e.whave=0,e.wnext=0,L2(t))}function O2(t,e){var n,r;return!t||!t.state||(r=t.state,e<0?(n=0,e=-e):(n=(e>>4)+1,e<48&&(e&=15)),e&&(e<8||e>15))?hn:(r.window!==null&&r.wbits!==e&&(r.window=null),r.wrap=n,r.wbits=e,R2(t))}function z2(t,e){var n,r;return t?(r=new bL,t.state=r,r.window=null,n=O2(t,e),n!==ha&&(t.state=null),n):hn}function yL(t){return z2(t,mL)}var P2=!0,Q0,V0;function wL(t){if(P2){var e;for(Q0=new en.Buf32(512),V0=new en.Buf32(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(wu(a2,t.lens,0,288,Q0,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;wu(o2,t.lens,0,32,V0,0,t.work,{bits:5}),P2=!1}t.lencode=Q0,t.lenbits=9,t.distcode=V0,t.distbits=5}function U2(t,e,n,r){var i,a=t.state;return a.window===null&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new en.Buf8(a.wsize)),r>=a.wsize?(en.arraySet(a.window,e,n-a.wsize,a.wsize,0),a.wnext=0,a.whave=a.wsize):(i=a.wsize-a.wnext,i>r&&(i=r),en.arraySet(a.window,e,n-r,i,a.wnext),r-=i,r?(en.arraySet(a.window,e,n-r,r,0),a.wnext=r,a.whave=a.wsize):(a.wnext+=i,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=i))),0}function xL(t,e){var n,r,i,a,o,s,f,u,l,c,h,d,g,b,y=0,w,E,_,D,T,N,M,R,C=new en.Buf8(4),B,L,ee=[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 hn;n=t.state,n.mode===Dr&&(n.mode=j0),o=t.next_out,i=t.output,f=t.avail_out,a=t.next_in,r=t.input,s=t.avail_in,u=n.hold,l=n.bits,c=s,h=f,R=ha;e:for(;;)switch(n.mode){case c2:if(n.wrap===0){n.mode=j0;break}for(;l<16;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(n.wrap&2&&u===35615){n.check=0,C[0]=u&255,C[1]=u>>>8&255,n.check=sr(n.check,C,2,0),u=0,l=0,n.mode=h2;break}if(n.flags=0,n.head&&(n.head.done=!1),!(n.wrap&1)||(((u&255)<<8)+(u>>8))%31){t.msg="incorrect header check",n.mode=qe;break}if((u&15)!==l2){t.msg="unknown compression method",n.mode=qe;break}if(u>>>=4,l-=4,M=(u&15)+8,n.wbits===0)n.wbits=M;else if(M>n.wbits){t.msg="invalid window size",n.mode=qe;break}n.dmax=1<<M,t.adler=n.check=1,n.mode=u&512?x2:Dr,u=0,l=0;break;case h2:for(;l<16;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(n.flags=u,(n.flags&255)!==l2){t.msg="unknown compression method",n.mode=qe;break}if(n.flags&57344){t.msg="unknown header flags set",n.mode=qe;break}n.head&&(n.head.text=u>>8&1),n.flags&512&&(C[0]=u&255,C[1]=u>>>8&255,n.check=sr(n.check,C,2,0)),u=0,l=0,n.mode=d2;case d2:for(;l<32;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}n.head&&(n.head.time=u),n.flags&512&&(C[0]=u&255,C[1]=u>>>8&255,C[2]=u>>>16&255,C[3]=u>>>24&255,n.check=sr(n.check,C,4,0)),u=0,l=0,n.mode=g2;case g2:for(;l<16;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}n.head&&(n.head.xflags=u&255,n.head.os=u>>8),n.flags&512&&(C[0]=u&255,C[1]=u>>>8&255,n.check=sr(n.check,C,2,0)),u=0,l=0,n.mode=p2;case p2:if(n.flags&1024){for(;l<16;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}n.length=u,n.head&&(n.head.extra_len=u),n.flags&512&&(C[0]=u&255,C[1]=u>>>8&255,n.check=sr(n.check,C,2,0)),u=0,l=0}else n.head&&(n.head.extra=null);n.mode=m2;case m2:if(n.flags&1024&&(d=n.length,d>s&&(d=s),d&&(n.head&&(M=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Array(n.head.extra_len)),en.arraySet(n.head.extra,r,a,d,M)),n.flags&512&&(n.check=sr(n.check,r,d,a)),s-=d,a+=d,n.length-=d),n.length))break e;n.length=0,n.mode=b2;case b2:if(n.flags&2048){if(s===0)break e;d=0;do M=r[a+d++],n.head&&M&&n.length<65536&&(n.head.name+=String.fromCharCode(M));while(M&&d<s);if(n.flags&512&&(n.check=sr(n.check,r,d,a)),s-=d,a+=d,M)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=y2;case y2:if(n.flags&4096){if(s===0)break e;d=0;do M=r[a+d++],n.head&&M&&n.length<65536&&(n.head.comment+=String.fromCharCode(M));while(M&&d<s);if(n.flags&512&&(n.check=sr(n.check,r,d,a)),s-=d,a+=d,M)break e}else n.head&&(n.head.comment=null);n.mode=w2;case w2:if(n.flags&512){for(;l<16;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(u!==(n.check&65535)){t.msg="header crc mismatch",n.mode=qe;break}u=0,l=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),t.adler=n.check=0,n.mode=Dr;break;case x2:for(;l<32;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}t.adler=n.check=B2(u),u=0,l=0,n.mode=Zl;case Zl:if(n.havedict===0)return t.next_out=o,t.avail_out=f,t.next_in=a,t.avail_in=s,n.hold=u,n.bits=l,lL;t.adler=n.check=1,n.mode=Dr;case Dr:if(e===uL||e===ql)break e;case j0:if(n.last){u>>>=l&7,l-=l&7,n.mode=H0;break}for(;l<3;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}switch(n.last=u&1,u>>>=1,l-=1,u&3){case 0:n.mode=v2;break;case 1:if(wL(n),n.mode=Yl,e===ql){u>>>=2,l-=2;break e}break;case 2:n.mode=E2;break;case 3:t.msg="invalid block type",n.mode=qe}u>>>=2,l-=2;break;case v2:for(u>>>=l&7,l-=l&7;l<32;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if((u&65535)!==(u>>>16^65535)){t.msg="invalid stored block lengths",n.mode=qe;break}if(n.length=u&65535,u=0,l=0,n.mode=G0,e===ql)break e;case G0:n.mode=A2;case A2:if(d=n.length,d){if(d>s&&(d=s),d>f&&(d=f),d===0)break e;en.arraySet(i,r,a,d,o),s-=d,a+=d,f-=d,o+=d,n.length-=d;break}n.mode=Dr;break;case E2:for(;l<14;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(n.nlen=(u&31)+257,u>>>=5,l-=5,n.ndist=(u&31)+1,u>>>=5,l-=5,n.ncode=(u&15)+4,u>>>=4,l-=4,n.nlen>286||n.ndist>30){t.msg="too many length or distance symbols",n.mode=qe;break}n.have=0,n.mode=S2;case S2:for(;n.have<n.ncode;){for(;l<3;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}n.lens[ee[n.have++]]=u&7,u>>>=3,l-=3}for(;n.have<19;)n.lens[ee[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,B={bits:n.lenbits},R=wu(sL,n.lens,0,19,n.lencode,0,n.work,B),n.lenbits=B.bits,R){t.msg="invalid code lengths set",n.mode=qe;break}n.have=0,n.mode=_2;case _2:for(;n.have<n.nlen+n.ndist;){for(;y=n.lencode[u&(1<<n.lenbits)-1],w=y>>>24,E=y>>>16&255,_=y&65535,!(w<=l);){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(_<16)u>>>=w,l-=w,n.lens[n.have++]=_;else{if(_===16){for(L=w+2;l<L;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(u>>>=w,l-=w,n.have===0){t.msg="invalid bit length repeat",n.mode=qe;break}M=n.lens[n.have-1],d=3+(u&3),u>>>=2,l-=2}else if(_===17){for(L=w+3;l<L;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}u>>>=w,l-=w,M=0,d=3+(u&7),u>>>=3,l-=3}else{for(L=w+7;l<L;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}u>>>=w,l-=w,M=0,d=11+(u&127),u>>>=7,l-=7}if(n.have+d>n.nlen+n.ndist){t.msg="invalid bit length repeat",n.mode=qe;break}for(;d--;)n.lens[n.have++]=M}}if(n.mode===qe)break;if(n.lens[256]===0){t.msg="invalid code -- missing end-of-block",n.mode=qe;break}if(n.lenbits=9,B={bits:n.lenbits},R=wu(a2,n.lens,0,n.nlen,n.lencode,0,n.work,B),n.lenbits=B.bits,R){t.msg="invalid literal/lengths set",n.mode=qe;break}if(n.distbits=6,n.distcode=n.distdyn,B={bits:n.distbits},R=wu(o2,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,B),n.distbits=B.bits,R){t.msg="invalid distances set",n.mode=qe;break}if(n.mode=Yl,e===ql)break e;case Yl:n.mode=Wl;case Wl:if(s>=6&&f>=258){t.next_out=o,t.avail_out=f,t.next_in=a,t.avail_in=s,n.hold=u,n.bits=l,oL(t,h),o=t.next_out,i=t.output,f=t.avail_out,a=t.next_in,r=t.input,s=t.avail_in,u=n.hold,l=n.bits,n.mode===Dr&&(n.back=-1);break}for(n.back=0;y=n.lencode[u&(1<<n.lenbits)-1],w=y>>>24,E=y>>>16&255,_=y&65535,!(w<=l);){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(E&&!(E&240)){for(D=w,T=E,N=_;y=n.lencode[N+((u&(1<<D+T)-1)>>D)],w=y>>>24,E=y>>>16&255,_=y&65535,!(D+w<=l);){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}u>>>=D,l-=D,n.back+=D}if(u>>>=w,l-=w,n.back+=w,n.length=_,E===0){n.mode=T2;break}if(E&32){n.back=-1,n.mode=Dr;break}if(E&64){t.msg="invalid literal/length code",n.mode=qe;break}n.extra=E&15,n.mode=C2;case C2:if(n.extra){for(L=n.extra;l<L;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}n.length+=u&(1<<n.extra)-1,u>>>=n.extra,l-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=D2;case D2:for(;y=n.distcode[u&(1<<n.distbits)-1],w=y>>>24,E=y>>>16&255,_=y&65535,!(w<=l);){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(!(E&240)){for(D=w,T=E,N=_;y=n.distcode[N+((u&(1<<D+T)-1)>>D)],w=y>>>24,E=y>>>16&255,_=y&65535,!(D+w<=l);){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}u>>>=D,l-=D,n.back+=D}if(u>>>=w,l-=w,n.back+=w,E&64){t.msg="invalid distance code",n.mode=qe;break}n.offset=_,n.extra=E&15,n.mode=I2;case I2:if(n.extra){for(L=n.extra;l<L;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}n.offset+=u&(1<<n.extra)-1,u>>>=n.extra,l-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){t.msg="invalid distance too far back",n.mode=qe;break}n.mode=M2;case M2:if(f===0)break e;if(d=h-f,n.offset>d){if(d=n.offset-d,d>n.whave&&n.sane){t.msg="invalid distance too far back",n.mode=qe;break}d>n.wnext?(d-=n.wnext,g=n.wsize-d):g=n.wnext-d,d>n.length&&(d=n.length),b=n.window}else b=i,g=o-n.offset,d=n.length;d>f&&(d=f),f-=d,n.length-=d;do i[o++]=b[g++];while(--d);n.length===0&&(n.mode=Wl);break;case T2:if(f===0)break e;i[o++]=n.length,f--,n.mode=Wl;break;case H0:if(n.wrap){for(;l<32;){if(s===0)break e;s--,u|=r[a++]<<l,l+=8}if(h-=f,t.total_out+=h,n.total+=h,h&&(t.adler=n.check=n.flags?sr(n.check,i,h,o-h):U0(n.check,i,h,o-h)),h=f,(n.flags?u:B2(u))!==n.check){t.msg="incorrect data check",n.mode=qe;break}u=0,l=0}n.mode=N2;case N2:if(n.wrap&&n.flags){for(;l<32;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(u!==(n.total&4294967295)){t.msg="incorrect length check",n.mode=qe;break}u=0,l=0}n.mode=F2;case F2:R=fL;break e;case qe:R=u2;break e;case k2:return f2;case hL:default:return hn}return t.next_out=o,t.avail_out=f,t.next_in=a,t.avail_in=s,n.hold=u,n.bits=l,(n.wsize||h!==t.avail_out&&n.mode<qe&&(n.mode<H0||e!==s2))&&U2(t,t.output,t.next_out,h-t.avail_out),c-=t.avail_in,h-=t.avail_out,t.total_in+=c,t.total_out+=h,n.total+=h,n.wrap&&h&&(t.adler=n.check=n.flags?sr(n.check,i,h,t.next_out-h):U0(n.check,i,h,t.next_out-h)),t.data_type=n.bits+(n.last?64:0)+(n.mode===Dr?128:0)+(n.mode===Yl||n.mode===G0?256:0),(c===0&&h===0||e===s2)&&R===ha&&(R=cL),R}function vL(t){if(!t||!t.state)return hn;var e=t.state;return e.window&&(e.window=null),t.state=null,ha}function AL(t,e){var n;return!t||!t.state||(n=t.state,!(n.wrap&2))?hn:(n.head=e,e.done=!1,ha)}function EL(t,e){var n=e.length,r,i,a;return!t||!t.state||(r=t.state,r.wrap!==0&&r.mode!==Zl)?hn:r.mode===Zl&&(i=1,i=U0(i,e,n,0),i!==r.check)?u2:(a=U2(t,e,n,n),a?(r.mode=k2,f2):(r.havedict=1,ha))}Rn.inflateReset=R2,Rn.inflateReset2=O2,Rn.inflateResetKeep=L2,Rn.inflateInit=yL,Rn.inflateInit2=z2,Rn.inflate=xL,Rn.inflateEnd=vL,Rn.inflateGetHeader=AL,Rn.inflateSetDictionary=EL,Rn.inflateInfo="pako inflate (from Nodeca project)";var j2={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};function SL(){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}var _L=SL,yo=Rn,xu=_r,Xl=la,nt=j2,q0=T0,CL=Xx,DL=_L,G2=Object.prototype.toString;function da(t){if(!(this instanceof da))return new da(t);this.options=xu.assign({chunkSize:16384,windowBits:0,to:""},t||{});var e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,e.windowBits===0&&(e.windowBits=-15)),e.windowBits>=0&&e.windowBits<16&&!(t&&t.windowBits)&&(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&(e.windowBits&15||(e.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new CL,this.strm.avail_out=0;var n=yo.inflateInit2(this.strm,e.windowBits);if(n!==nt.Z_OK)throw new Error(q0[n]);if(this.header=new DL,yo.inflateGetHeader(this.strm,this.header),e.dictionary&&(typeof e.dictionary=="string"?e.dictionary=Xl.string2buf(e.dictionary):G2.call(e.dictionary)==="[object ArrayBuffer]"&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(n=yo.inflateSetDictionary(this.strm,e.dictionary),n!==nt.Z_OK)))throw new Error(q0[n])}da.prototype.push=function(t,e){var n=this.strm,r=this.options.chunkSize,i=this.options.dictionary,a,o,s,f,u,l=!1;if(this.ended)return!1;o=e===~~e?e:e===!0?nt.Z_FINISH:nt.Z_NO_FLUSH,typeof t=="string"?n.input=Xl.binstring2buf(t):G2.call(t)==="[object ArrayBuffer]"?n.input=new Uint8Array(t):n.input=t,n.next_in=0,n.avail_in=n.input.length;do{if(n.avail_out===0&&(n.output=new xu.Buf8(r),n.next_out=0,n.avail_out=r),a=yo.inflate(n,nt.Z_NO_FLUSH),a===nt.Z_NEED_DICT&&i&&(a=yo.inflateSetDictionary(this.strm,i)),a===nt.Z_BUF_ERROR&&l===!0&&(a=nt.Z_OK,l=!1),a!==nt.Z_STREAM_END&&a!==nt.Z_OK)return this.onEnd(a),this.ended=!0,!1;n.next_out&&(n.avail_out===0||a===nt.Z_STREAM_END||n.avail_in===0&&(o===nt.Z_FINISH||o===nt.Z_SYNC_FLUSH))&&(this.options.to==="string"?(s=Xl.utf8border(n.output,n.next_out),f=n.next_out-s,u=Xl.buf2string(n.output,s),n.next_out=f,n.avail_out=r-f,f&&xu.arraySet(n.output,n.output,s,f,0),this.onData(u)):this.onData(xu.shrinkBuf(n.output,n.next_out))),n.avail_in===0&&n.avail_out===0&&(l=!0)}while((n.avail_in>0||n.avail_out===0)&&a!==nt.Z_STREAM_END);return a===nt.Z_STREAM_END&&(o=nt.Z_FINISH),o===nt.Z_FINISH?(a=yo.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,a===nt.Z_OK):(o===nt.Z_SYNC_FLUSH&&(this.onEnd(nt.Z_OK),n.avail_out=0),!0)},da.prototype.onData=function(t){this.chunks.push(t)},da.prototype.onEnd=function(t){t===nt.Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=xu.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};function Z0(t,e){var n=new da(e);if(n.push(t,!0),n.err)throw n.msg||q0[n.err];return n.result}function IL(t,e){return e=e||{},e.raw=!0,Z0(t,e)}yu.Inflate=da,yu.inflate=Z0,yu.inflateRaw=IL,yu.ungzip=Z0;var ML=_r.assign,TL=au,NL=yu,FL=j2,H2={};ML(H2,TL,NL,FL);var $l=H2;async function wo(t){try{let e,n=0,r=0;const i=[];let a=0,o;do{const f=t.subarray(n);if(o=new $l.Inflate,{strm:e}=o,o.push(f,$l.Z_SYNC_FLUSH),o.err)throw new Error(o.msg);n+=e.next_in,i[r]=o.result,a+=i[r].length,r+=1}while(e.avail_in);const s=new Uint8Array(a);for(let f=0,u=0;f<i.length;f++)s.set(i[f],u),u+=i[f].length;return Buffer.from(s)}catch(e){throw`${e}`.match(/incorrect header check/)?new Error("problem decompressing block: incorrect gzip header check"):e}}async function Q2(t,e){try{let n;const{minv:r,maxv:i}=e;let a=r.blockPosition,o=r.dataPosition;const s=[],f=[],u=[];let l=0,c=0;do{const g=t.subarray(a-r.blockPosition),b=new $l.Inflate;if({strm:n}=b,b.push(g,$l.Z_SYNC_FLUSH),b.err)throw new Error(b.msg);const y=b.result;s.push(y);let w=y.length;f.push(a),u.push(o),s.length===1&&r.dataPosition&&(s[0]=s[0].subarray(r.dataPosition),w=s[0].length);const E=a;if(a+=n.next_in,o+=w,E>=i.blockPosition){s[c]=s[c].subarray(0,i.blockPosition===r.blockPosition?i.dataPosition-r.dataPosition+1:i.dataPosition+1),f.push(a),u.push(o),l+=s[c].length;break}l+=s[c].length,c++}while(n.avail_in);const h=new Uint8Array(l);for(let g=0,b=0;g<s.length;g++)h.set(s[g],b),b+=s[g].length;return{buffer:Buffer.from(h),cpositions:f,dpositions:u}}catch(n){throw`${n}`.match(/incorrect header check/)?new Error("problem decompressing block: incorrect gzip header check"):n}}/**
268
- * @license
269
- * Copyright 2009 The Closure Library Authors
270
- * Copyright 2020 Daniel Wirtz / The long.js Authors.
271
- *
272
- * Licensed under the Apache License, Version 2.0 (the "License");
273
- * you may not use this file except in compliance with the License.
274
- * You may obtain a copy of the License at
275
- *
276
- * http://www.apache.org/licenses/LICENSE-2.0
277
- *
278
- * Unless required by applicable law or agreed to in writing, software
279
- * distributed under the License is distributed on an "AS IS" BASIS,
280
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
281
- * See the License for the specific language governing permissions and
282
- * limitations under the License.
283
- *
284
- * SPDX-License-Identifier: Apache-2.0
285
- */var dn=null;try{dn=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch{}function Ge(t,e,n){this.low=t|0,this.high=e|0,this.unsigned=!!n}Ge.prototype.__isLong__,Object.defineProperty(Ge.prototype,"__isLong__",{value:!0});function Ct(t){return(t&&t.__isLong__)===!0}function V2(t){var e=Math.clz32(t&-t);return t?31-e:e}Ge.isLong=Ct;var q2={},Z2={};function ga(t,e){var n,r,i;return e?(t>>>=0,(i=0<=t&&t<256)&&(r=Z2[t],r)?r:(n=Ee(t,0,!0),i&&(Z2[t]=n),n)):(t|=0,(i=-128<=t&&t<128)&&(r=q2[t],r)?r:(n=Ee(t,t<0?-1:0,!1),i&&(q2[t]=n),n))}Ge.fromInt=ga;function gn(t,e){if(isNaN(t))return e?Ir:zn;if(e){if(t<0)return Ir;if(t>=W2)return ev}else{if(t<=-X2)return jt;if(t+1>=X2)return J2}return t<0?gn(-t,e).neg():Ee(t%xo|0,t/xo|0,e)}Ge.fromNumber=gn;function Ee(t,e,n){return new Ge(t,e,n)}Ge.fromBits=Ee;var Kl=Math.pow;function Y0(t,e,n){if(t.length===0)throw Error("empty string");if(typeof e=="number"?(n=e,e=!1):e=!!e,t==="NaN"||t==="Infinity"||t==="+Infinity"||t==="-Infinity")return e?Ir:zn;if(n=n||10,n<2||36<n)throw RangeError("radix");var r;if((r=t.indexOf("-"))>0)throw Error("interior hyphen");if(r===0)return Y0(t.substring(1),e,n).neg();for(var i=gn(Kl(n,8)),a=zn,o=0;o<t.length;o+=8){var s=Math.min(8,t.length-o),f=parseInt(t.substring(o,o+s),n);if(s<8){var u=gn(Kl(n,s));a=a.mul(u).add(gn(f))}else a=a.mul(i),a=a.add(gn(f))}return a.unsigned=e,a}Ge.fromString=Y0;function On(t,e){return typeof t=="number"?gn(t,e):typeof t=="string"?Y0(t,e):Ee(t.low,t.high,typeof e=="boolean"?e:t.unsigned)}Ge.fromValue=On;var Y2=65536,kL=1<<24,xo=Y2*Y2,W2=xo*xo,X2=W2/2,$2=ga(kL),zn=ga(0);Ge.ZERO=zn;var Ir=ga(0,!0);Ge.UZERO=Ir;var vo=ga(1);Ge.ONE=vo;var K2=ga(1,!0);Ge.UONE=K2;var W0=ga(-1);Ge.NEG_ONE=W0;var J2=Ee(-1,2147483647,!1);Ge.MAX_VALUE=J2;var ev=Ee(-1,-1,!0);Ge.MAX_UNSIGNED_VALUE=ev;var jt=Ee(0,-2147483648,!1);Ge.MIN_VALUE=jt;var Z=Ge.prototype;Z.toInt=function(){return this.unsigned?this.low>>>0:this.low},Z.toNumber=function(){return this.unsigned?(this.high>>>0)*xo+(this.low>>>0):this.high*xo+(this.low>>>0)},Z.toString=function(e){if(e=e||10,e<2||36<e)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative())if(this.eq(jt)){var n=gn(e),r=this.div(n),i=r.mul(n).sub(this);return r.toString(e)+i.toInt().toString(e)}else return"-"+this.neg().toString(e);for(var a=gn(Kl(e,6),this.unsigned),o=this,s="";;){var f=o.div(a),u=o.sub(f.mul(a)).toInt()>>>0,l=u.toString(e);if(o=f,o.isZero())return l+s;for(;l.length<6;)l="0"+l;s=""+l+s}},Z.getHighBits=function(){return this.high},Z.getHighBitsUnsigned=function(){return this.high>>>0},Z.getLowBits=function(){return this.low},Z.getLowBitsUnsigned=function(){return this.low>>>0},Z.getNumBitsAbs=function(){if(this.isNegative())return this.eq(jt)?64:this.neg().getNumBitsAbs();for(var e=this.high!=0?this.high:this.low,n=31;n>0&&!(e&1<<n);n--);return this.high!=0?n+33:n+1},Z.isZero=function(){return this.high===0&&this.low===0},Z.eqz=Z.isZero,Z.isNegative=function(){return!this.unsigned&&this.high<0},Z.isPositive=function(){return this.unsigned||this.high>=0},Z.isOdd=function(){return(this.low&1)===1},Z.isEven=function(){return(this.low&1)===0},Z.equals=function(e){return Ct(e)||(e=On(e)),this.unsigned!==e.unsigned&&this.high>>>31===1&&e.high>>>31===1?!1:this.high===e.high&&this.low===e.low},Z.eq=Z.equals,Z.notEquals=function(e){return!this.eq(e)},Z.neq=Z.notEquals,Z.ne=Z.notEquals,Z.lessThan=function(e){return this.comp(e)<0},Z.lt=Z.lessThan,Z.lessThanOrEqual=function(e){return this.comp(e)<=0},Z.lte=Z.lessThanOrEqual,Z.le=Z.lessThanOrEqual,Z.greaterThan=function(e){return this.comp(e)>0},Z.gt=Z.greaterThan,Z.greaterThanOrEqual=function(e){return this.comp(e)>=0},Z.gte=Z.greaterThanOrEqual,Z.ge=Z.greaterThanOrEqual,Z.compare=function(e){if(Ct(e)||(e=On(e)),this.eq(e))return 0;var n=this.isNegative(),r=e.isNegative();return n&&!r?-1:!n&&r?1:this.unsigned?e.high>>>0>this.high>>>0||e.high===this.high&&e.low>>>0>this.low>>>0?-1:1:this.sub(e).isNegative()?-1:1},Z.comp=Z.compare,Z.negate=function(){return!this.unsigned&&this.eq(jt)?jt:this.not().add(vo)},Z.neg=Z.negate,Z.add=function(e){Ct(e)||(e=On(e));var n=this.high>>>16,r=this.high&65535,i=this.low>>>16,a=this.low&65535,o=e.high>>>16,s=e.high&65535,f=e.low>>>16,u=e.low&65535,l=0,c=0,h=0,d=0;return d+=a+u,h+=d>>>16,d&=65535,h+=i+f,c+=h>>>16,h&=65535,c+=r+s,l+=c>>>16,c&=65535,l+=n+o,l&=65535,Ee(h<<16|d,l<<16|c,this.unsigned)},Z.subtract=function(e){return Ct(e)||(e=On(e)),this.add(e.neg())},Z.sub=Z.subtract,Z.multiply=function(e){if(this.isZero())return this;if(Ct(e)||(e=On(e)),dn){var n=dn.mul(this.low,this.high,e.low,e.high);return Ee(n,dn.get_high(),this.unsigned)}if(e.isZero())return this.unsigned?Ir:zn;if(this.eq(jt))return e.isOdd()?jt:zn;if(e.eq(jt))return this.isOdd()?jt:zn;if(this.isNegative())return e.isNegative()?this.neg().mul(e.neg()):this.neg().mul(e).neg();if(e.isNegative())return this.mul(e.neg()).neg();if(this.lt($2)&&e.lt($2))return gn(this.toNumber()*e.toNumber(),this.unsigned);var r=this.high>>>16,i=this.high&65535,a=this.low>>>16,o=this.low&65535,s=e.high>>>16,f=e.high&65535,u=e.low>>>16,l=e.low&65535,c=0,h=0,d=0,g=0;return g+=o*l,d+=g>>>16,g&=65535,d+=a*l,h+=d>>>16,d&=65535,d+=o*u,h+=d>>>16,d&=65535,h+=i*l,c+=h>>>16,h&=65535,h+=a*u,c+=h>>>16,h&=65535,h+=o*f,c+=h>>>16,h&=65535,c+=r*l+i*u+a*f+o*s,c&=65535,Ee(d<<16|g,c<<16|h,this.unsigned)},Z.mul=Z.multiply,Z.divide=function(e){if(Ct(e)||(e=On(e)),e.isZero())throw Error("division by zero");if(dn){if(!this.unsigned&&this.high===-2147483648&&e.low===-1&&e.high===-1)return this;var n=(this.unsigned?dn.div_u:dn.div_s)(this.low,this.high,e.low,e.high);return Ee(n,dn.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?Ir:zn;var r,i,a;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return Ir;if(e.gt(this.shru(1)))return K2;a=Ir}else{if(this.eq(jt)){if(e.eq(vo)||e.eq(W0))return jt;if(e.eq(jt))return vo;var o=this.shr(1);return r=o.div(e).shl(1),r.eq(zn)?e.isNegative()?vo:W0:(i=this.sub(e.mul(r)),a=r.add(i.div(e)),a)}else if(e.eq(jt))return this.unsigned?Ir:zn;if(this.isNegative())return e.isNegative()?this.neg().div(e.neg()):this.neg().div(e).neg();if(e.isNegative())return this.div(e.neg()).neg();a=zn}for(i=this;i.gte(e);){r=Math.max(1,Math.floor(i.toNumber()/e.toNumber()));for(var s=Math.ceil(Math.log(r)/Math.LN2),f=s<=48?1:Kl(2,s-48),u=gn(r),l=u.mul(e);l.isNegative()||l.gt(i);)r-=f,u=gn(r,this.unsigned),l=u.mul(e);u.isZero()&&(u=vo),a=a.add(u),i=i.sub(l)}return a},Z.div=Z.divide,Z.modulo=function(e){if(Ct(e)||(e=On(e)),dn){var n=(this.unsigned?dn.rem_u:dn.rem_s)(this.low,this.high,e.low,e.high);return Ee(n,dn.get_high(),this.unsigned)}return this.sub(this.div(e).mul(e))},Z.mod=Z.modulo,Z.rem=Z.modulo,Z.not=function(){return Ee(~this.low,~this.high,this.unsigned)},Z.countLeadingZeros=function(){return this.high?Math.clz32(this.high):Math.clz32(this.low)+32},Z.clz=Z.countLeadingZeros,Z.countTrailingZeros=function(){return this.low?V2(this.low):V2(this.high)+32},Z.ctz=Z.countTrailingZeros,Z.and=function(e){return Ct(e)||(e=On(e)),Ee(this.low&e.low,this.high&e.high,this.unsigned)},Z.or=function(e){return Ct(e)||(e=On(e)),Ee(this.low|e.low,this.high|e.high,this.unsigned)},Z.xor=function(e){return Ct(e)||(e=On(e)),Ee(this.low^e.low,this.high^e.high,this.unsigned)},Z.shiftLeft=function(e){return Ct(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?Ee(this.low<<e,this.high<<e|this.low>>>32-e,this.unsigned):Ee(0,this.low<<e-32,this.unsigned)},Z.shl=Z.shiftLeft,Z.shiftRight=function(e){return Ct(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?Ee(this.low>>>e|this.high<<32-e,this.high>>e,this.unsigned):Ee(this.high>>e-32,this.high>=0?0:-1,this.unsigned)},Z.shr=Z.shiftRight,Z.shiftRightUnsigned=function(e){return Ct(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?Ee(this.low>>>e|this.high<<32-e,this.high>>>e,this.unsigned):e===32?Ee(this.high,0,this.unsigned):Ee(this.high>>>e-32,0,this.unsigned)},Z.shru=Z.shiftRightUnsigned,Z.shr_u=Z.shiftRightUnsigned,Z.rotateLeft=function(e){var n;return Ct(e)&&(e=e.toInt()),(e&=63)===0?this:e===32?Ee(this.high,this.low,this.unsigned):e<32?(n=32-e,Ee(this.low<<e|this.high>>>n,this.high<<e|this.low>>>n,this.unsigned)):(e-=32,n=32-e,Ee(this.high<<e|this.low>>>n,this.low<<e|this.high>>>n,this.unsigned))},Z.rotl=Z.rotateLeft,Z.rotateRight=function(e){var n;return Ct(e)&&(e=e.toInt()),(e&=63)===0?this:e===32?Ee(this.high,this.low,this.unsigned):e<32?(n=32-e,Ee(this.high<<n|this.low>>>e,this.low<<n|this.high>>>e,this.unsigned)):(e-=32,n=32-e,Ee(this.low<<n|this.high>>>e,this.high<<n|this.low>>>e,this.unsigned))},Z.rotr=Z.rotateRight,Z.toSigned=function(){return this.unsigned?Ee(this.low,this.high,!1):this},Z.toUnsigned=function(){return this.unsigned?this:Ee(this.low,this.high,!0)},Z.toBytes=function(e){return e?this.toBytesLE():this.toBytesBE()},Z.toBytesLE=function(){var e=this.high,n=this.low;return[n&255,n>>>8&255,n>>>16&255,n>>>24,e&255,e>>>8&255,e>>>16&255,e>>>24]},Z.toBytesBE=function(){var e=this.high,n=this.low;return[e>>>24,e>>>16&255,e>>>8&255,e&255,n>>>24,n>>>16&255,n>>>8&255,n&255]},Ge.fromBytes=function(e,n,r){return r?Ge.fromBytesLE(e,n):Ge.fromBytesBE(e,n)},Ge.fromBytesLE=function(e,n){return new Ge(e[0]|e[1]<<8|e[2]<<16|e[3]<<24,e[4]|e[5]<<8|e[6]<<16|e[7]<<24,n)},Ge.fromBytesBE=function(e,n){return new Ge(e[4]<<24|e[5]<<16|e[6]<<8|e[7],e[0]<<24|e[1]<<16|e[2]<<8|e[3],n)};function tv(t,e){return t.offset+t.lineBytes*Math.floor(e/t.lineLength)+e%t.lineLength}async function BL(t,e){const n=await t.readFile(e);if(!(n&&n.length))throw new Error("No data read from FASTA index (FAI) file");let r=0,i;const a=n.toString("utf8").split(/\r?\n/).filter(o=>/\S/.test(o)).map(o=>o.split(" ")).filter(o=>o[0]!=="").map(o=>((!i||i.name!==o[0])&&(i={name:o[0],id:r},r+=1),{id:i.id,name:o[0],length:+o[1],start:0,end:+o[1],offset:+o[2],lineLength:+o[3],lineBytes:+o[4]}));return{name:Object.fromEntries(a.map(o=>[o.name,o])),id:Object.fromEntries(a.map(o=>[o.id,o]))}}class LL{constructor({fasta:e,fai:n,path:r,faiPath:i,chunkSizeLimit:a=1e6}){if(e)this.fasta=e;else if(r)this.fasta=new Jt(r);else throw new Error("Need to pass filehandle for fasta or path to localfile");if(n)this.fai=n;else if(i)this.fai=new Jt(i);else if(r)this.fai=new Jt(`${r}.fai`);else throw new Error("Need to pass filehandle for or path to localfile");this.chunkSizeLimit=a}async _getIndexes(e){return this.indexes||(this.indexes=BL(this.fai,e)),this.indexes}async getSequenceNames(e){return Object.keys((await this._getIndexes(e)).name)}async getSequenceSizes(e){const n={},r=await this._getIndexes(e),i=Object.values(r.id);for(let a=0;a<i.length;a+=1)n[i[a].name]=i[a].length;return n}async getSequenceSize(e,n){var r;return(r=(await this._getIndexes(n)).name[e])===null||r===void 0?void 0:r.length}async hasReferenceSequence(e,n){return!!(await this._getIndexes(n)).name[e]}async getResiduesById(e,n,r,i){const a=(await this._getIndexes(i)).id[e];if(a)return this._fetchFromIndexEntry(a,n,r,i)}async getResiduesByName(e,n,r,i){const a=(await this._getIndexes(i)).name[e];if(a)return this._fetchFromIndexEntry(a,n,r,i)}async getSequence(e,n,r,i){return this.getResiduesByName(e,n,r,i)}async _fetchFromIndexEntry(e,n=0,r,i){let a=r;if(n<0)throw new TypeError("regionStart cannot be less than 0");if((a===void 0||a>e.length)&&(a=e.length),n>=a)return"";const o=tv(e,n),s=tv(e,a)-o;if(s>this.chunkSizeLimit)throw new Error(`data size of ${s.toLocaleString()} bytes exceeded chunk size limit of ${this.chunkSizeLimit.toLocaleString()} bytes`);const f=Buffer.allocUnsafe(s);return await this.fasta.read(f,0,s,o,i),f.toString("utf8").replace(/\s+/g,"")}}function vu(t){return class extends t{constructor(){super(...arguments);an(this,"lastQuantizedInterval",[0,0])}quantizeInterval(r,i){return[Math.max(Math.floor(r[0]/i-1)*i,0),Math.min(Math.ceil(r[1]/i+1)*i,this.genome.totalSize)]}checkAndUpdateLastInterval(r){return Rf(this.lastQuantizedInterval,r)?!1:(this.lastQuantizedInterval=r,!0)}}}function Au(t,e){return!e||/^(data:|([A-Za-z]+:)?\/\/)/.test(t)||t.startsWith("/")?t:(e.endsWith("/")||(e+="/"),e+t)}typeof window<"u"&&(window.Buffer=bt.Buffer);class RL extends vu(ra){constructor(e,n){const r={channel:"x",windowSize:7e3,...e};if(super(n,r.channel),this.params=r,!this.params.url)throw new Error("No URL provided for IndexedFastaSource");const i=a=>new nr(Au(a,this.view.getBaseUrl()));this.fasta=new LL({fasta:i(this.params.url),fai:i(this.params.indexUrl??this.params.url+".fai")})}async onDomainChanged(e){const n=this.params.windowSize;if(e[1]-e[0]>n)return;const r=this.quantizeInterval(e,n);if(this.checkAndUpdateLastInterval(r)){const i=this.genome.continuousToDiscreteChromosomeIntervals(r),a=await Promise.all(i.map(o=>this.fasta.getSequence(o.chrom,o.startPos,o.endPos).then(s=>({chrom:o.chrom,start:o.startPos,sequence:s}))));this.publishData(a)}}}const Jl=BigInt(32);function OL(t,e,n){const r=+!!n,i=+!n;return BigInt(t.getInt32(e,n)*i+t.getInt32(e+4,n)*r)<<Jl|BigInt(t.getUint32(e,n)*r+t.getUint32(e+4,n)*i)}function zL(t,e,n){const r=t.getUint32(e,n),i=t.getUint32(e+4,n),a=+!!n,o=+!n;return BigInt(r*o+i*a)<<Jl|BigInt(r*a+i*o)}function PL(t,e,n,r){const i=Number(n>>Jl),a=Number(n&BigInt(4294967295));r?(t.setInt32(e+4,i,r),t.setUint32(e,a,r)):(t.setInt32(e,i,r),t.setUint32(e+4,a,r))}function UL(t,e,n,r){const i=Number(n>>Jl),a=Number(n&BigInt(4294967295));r?(t.setUint32(e+4,i,r),t.setUint32(e,a,r)):(t.setUint32(e,i,r),t.setUint32(e+4,a,r))}"getBigInt64"in DataView||(DataView.prototype.getBigInt64=function(t,e){return OL(this,t,e)}),"getBigUint64"in DataView||(DataView.prototype.getBigUint64=function(t,e){return zL(this,t,e)}),"setBigInt64"in DataView||(DataView.prototype.setBigInt64=function(t,e,n){PL(this,t,e,n)}),"setBigUint64"in DataView||(DataView.prototype.setBigUint64=function(t,e,n){UL(this,t,e,n)});class jL{constructor(e,n){this.code="",this.scopes=[["vars"]],this.bitFields=[],this.tmpVariableCount=0,this.references=new Map,this.imports=[],this.reverseImports=new Map,this.useContextVariables=!1,this.importPath=e,this.useContextVariables=n}generateVariable(e){const n=[...this.scopes[this.scopes.length-1]];return e&&n.push(e),n.join(".")}generateOption(e){switch(typeof e){case"number":return e.toString();case"string":return this.generateVariable(e);case"function":return`${this.addImport(e)}.call(${this.generateVariable()}, vars)`}}generateError(e){this.pushCode(`throw new Error(${e});`)}generateTmpVariable(){return"$tmp"+this.tmpVariableCount++}pushCode(e){this.code+=e+`
286
- `}pushPath(e){e&&this.scopes[this.scopes.length-1].push(e)}popPath(e){e&&this.scopes[this.scopes.length-1].pop()}pushScope(e){this.scopes.push([e])}popScope(){this.scopes.pop()}addImport(e){if(!this.importPath)return`(${e})`;let n=this.reverseImports.get(e);return n||(n=this.imports.push(e)-1,this.reverseImports.set(e,n)),`${this.importPath}[${n}]`}addReference(e){this.references.has(e)||this.references.set(e,{resolved:!1,requested:!1})}markResolved(e){const n=this.references.get(e);n&&(n.resolved=!0)}markRequested(e){e.forEach(n=>{const r=this.references.get(n);r&&(r.requested=!0)})}getUnresolvedReferences(){return Array.from(this.references).filter(([e,n])=>!n.resolved&&!n.requested).map(([e,n])=>e)}}const Pn=new Map,pa="___parser_",Un={uint8:1,uint16le:2,uint16be:2,uint32le:4,uint32be:4,int8:1,int16le:2,int16be:2,int32le:4,int32be:4,int64be:8,int64le:8,uint64be:8,uint64le:8,floatle:4,floatbe:4,doublele:8,doublebe:8},ec={uint8:"Uint8",uint16le:"Uint16",uint16be:"Uint16",uint32le:"Uint32",uint32be:"Uint32",int8:"Int8",int16le:"Int16",int16be:"Int16",int32le:"Int32",int32be:"Int32",int64be:"BigInt64",int64le:"BigInt64",uint64be:"BigUint64",uint64le:"BigUint64",floatle:"Float32",floatbe:"Float32",doublele:"Float64",doublebe:"Float64"},tc={uint8:!1,uint16le:!0,uint16be:!1,uint32le:!0,uint32be:!1,int8:!1,int16le:!0,int16be:!1,int32le:!0,int32be:!1,int64be:!1,int64le:!0,uint64be:!1,uint64le:!0,floatle:!0,floatbe:!1,doublele:!0,doublebe:!1};let Me=class Vn{constructor(){this.varName="",this.type="",this.options={},this.endian="be",this.useContextVariables=!1}static start(){return new Vn}primitiveGenerateN(e,n){const r=ec[e],i=tc[e];n.pushCode(`${n.generateVariable(this.varName)} = dataView.get${r}(offset, ${i});`),n.pushCode(`offset += ${Un[e]};`)}primitiveN(e,n,r){return this.setNextParser(e,n,r)}useThisEndian(e){return e+this.endian.toLowerCase()}uint8(e,n={}){return this.primitiveN("uint8",e,n)}uint16(e,n={}){return this.primitiveN(this.useThisEndian("uint16"),e,n)}uint16le(e,n={}){return this.primitiveN("uint16le",e,n)}uint16be(e,n={}){return this.primitiveN("uint16be",e,n)}uint32(e,n={}){return this.primitiveN(this.useThisEndian("uint32"),e,n)}uint32le(e,n={}){return this.primitiveN("uint32le",e,n)}uint32be(e,n={}){return this.primitiveN("uint32be",e,n)}int8(e,n={}){return this.primitiveN("int8",e,n)}int16(e,n={}){return this.primitiveN(this.useThisEndian("int16"),e,n)}int16le(e,n={}){return this.primitiveN("int16le",e,n)}int16be(e,n={}){return this.primitiveN("int16be",e,n)}int32(e,n={}){return this.primitiveN(this.useThisEndian("int32"),e,n)}int32le(e,n={}){return this.primitiveN("int32le",e,n)}int32be(e,n={}){return this.primitiveN("int32be",e,n)}bigIntVersionCheck(){if(!DataView.prototype.getBigInt64)throw new Error("BigInt64 is unsupported on this runtime")}int64(e,n={}){return this.bigIntVersionCheck(),this.primitiveN(this.useThisEndian("int64"),e,n)}int64be(e,n={}){return this.bigIntVersionCheck(),this.primitiveN("int64be",e,n)}int64le(e,n={}){return this.bigIntVersionCheck(),this.primitiveN("int64le",e,n)}uint64(e,n={}){return this.bigIntVersionCheck(),this.primitiveN(this.useThisEndian("uint64"),e,n)}uint64be(e,n={}){return this.bigIntVersionCheck(),this.primitiveN("uint64be",e,n)}uint64le(e,n={}){return this.bigIntVersionCheck(),this.primitiveN("uint64le",e,n)}floatle(e,n={}){return this.primitiveN("floatle",e,n)}floatbe(e,n={}){return this.primitiveN("floatbe",e,n)}doublele(e,n={}){return this.primitiveN("doublele",e,n)}doublebe(e,n={}){return this.primitiveN("doublebe",e,n)}bitN(e,n,r){return r.length=e,this.setNextParser("bit",n,r)}bit1(e,n={}){return this.bitN(1,e,n)}bit2(e,n={}){return this.bitN(2,e,n)}bit3(e,n={}){return this.bitN(3,e,n)}bit4(e,n={}){return this.bitN(4,e,n)}bit5(e,n={}){return this.bitN(5,e,n)}bit6(e,n={}){return this.bitN(6,e,n)}bit7(e,n={}){return this.bitN(7,e,n)}bit8(e,n={}){return this.bitN(8,e,n)}bit9(e,n={}){return this.bitN(9,e,n)}bit10(e,n={}){return this.bitN(10,e,n)}bit11(e,n={}){return this.bitN(11,e,n)}bit12(e,n={}){return this.bitN(12,e,n)}bit13(e,n={}){return this.bitN(13,e,n)}bit14(e,n={}){return this.bitN(14,e,n)}bit15(e,n={}){return this.bitN(15,e,n)}bit16(e,n={}){return this.bitN(16,e,n)}bit17(e,n={}){return this.bitN(17,e,n)}bit18(e,n={}){return this.bitN(18,e,n)}bit19(e,n={}){return this.bitN(19,e,n)}bit20(e,n={}){return this.bitN(20,e,n)}bit21(e,n={}){return this.bitN(21,e,n)}bit22(e,n={}){return this.bitN(22,e,n)}bit23(e,n={}){return this.bitN(23,e,n)}bit24(e,n={}){return this.bitN(24,e,n)}bit25(e,n={}){return this.bitN(25,e,n)}bit26(e,n={}){return this.bitN(26,e,n)}bit27(e,n={}){return this.bitN(27,e,n)}bit28(e,n={}){return this.bitN(28,e,n)}bit29(e,n={}){return this.bitN(29,e,n)}bit30(e,n={}){return this.bitN(30,e,n)}bit31(e,n={}){return this.bitN(31,e,n)}bit32(e,n={}){return this.bitN(32,e,n)}namely(e){return Pn.set(e,this),this.alias=e,this}skip(e,n={}){return this.seek(e,n)}seek(e,n={}){if(n.assert)throw new Error("assert option on seek is not allowed.");return this.setNextParser("seek","",{length:e})}string(e,n){if(!n.zeroTerminated&&!n.length&&!n.greedy)throw new Error("One of length, zeroTerminated, or greedy must be defined for string.");if((n.zeroTerminated||n.length)&&n.greedy)throw new Error("greedy is mutually exclusive with length and zeroTerminated for string.");if(n.stripNull&&!(n.length||n.greedy))throw new Error("length or greedy must be defined if stripNull is enabled.");return n.encoding=n.encoding||"utf8",this.setNextParser("string",e,n)}buffer(e,n){if(!n.length&&!n.readUntil)throw new Error("length or readUntil must be defined for buffer.");return this.setNextParser("buffer",e,n)}wrapped(e,n){if(typeof n!="object"&&typeof e=="object"&&(n=e,e=""),!n||!n.wrapper||!n.type)throw new Error("Both wrapper and type must be defined for wrapped.");if(!n.length&&!n.readUntil)throw new Error("length or readUntil must be defined for wrapped.");return this.setNextParser("wrapper",e,n)}array(e,n){if(!n.readUntil&&!n.length&&!n.lengthInBytes)throw new Error("One of readUntil, length and lengthInBytes must be defined for array.");if(!n.type)throw new Error("type is required for array.");if(typeof n.type=="string"&&!Pn.has(n.type)&&!(n.type in Un))throw new Error(`Array element type "${n.type}" is unkown.`);return this.setNextParser("array",e,n)}choice(e,n){if(typeof n!="object"&&typeof e=="object"&&(n=e,e=""),!n)throw new Error("tag and choices are are required for choice.");if(!n.tag)throw new Error("tag is requird for choice.");if(!n.choices)throw new Error("choices is required for choice.");for(const r in n.choices){const i=parseInt(r,10),a=n.choices[i];if(isNaN(i))throw new Error(`Choice key "${r}" is not a number.`);if(typeof a=="string"&&!Pn.has(a)&&!(a in Un))throw new Error(`Choice type "${a}" is unkown.`)}return this.setNextParser("choice",e,n)}nest(e,n){if(typeof n!="object"&&typeof e=="object"&&(n=e,e=""),!n||!n.type)throw new Error("type is required for nest.");if(!(n.type instanceof Vn)&&!Pn.has(n.type))throw new Error("type must be a known parser name or a Parser object.");if(!(n.type instanceof Vn)&&!e)throw new Error("type must be a Parser object if the variable name is omitted.");return this.setNextParser("nest",e,n)}pointer(e,n){if(!n.offset)throw new Error("offset is required for pointer.");if(!n.type)throw new Error("type is required for pointer.");if(typeof n.type=="string"&&!(n.type in Un)&&!Pn.has(n.type))throw new Error(`Pointer type "${n.type}" is unkown.`);return this.setNextParser("pointer",e,n)}saveOffset(e,n={}){return this.setNextParser("saveOffset",e,n)}endianness(e){switch(e.toLowerCase()){case"little":this.endian="le";break;case"big":this.endian="be";break;default:throw new Error('endianness must be one of "little" or "big"')}return this}endianess(e){return this.endianness(e)}useContextVars(e=!0){return this.useContextVariables=e,this}create(e){if(!(e instanceof Function))throw new Error("Constructor must be a Function object.");return this.constructorFn=e,this}getContext(e){const n=new jL(e,this.useContextVariables);return n.pushCode("var dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.length);"),this.alias?(this.addAliasedCode(n),n.pushCode(`return ${pa+this.alias}(0).result;`)):this.addRawCode(n),n}getCode(){const e="imports";return this.getContext(e).code}addRawCode(e){e.pushCode("var offset = 0;"),e.pushCode(`var vars = ${this.constructorFn?"new constructorFn()":"{}"};`),e.pushCode("vars.$parent = null;"),e.pushCode("vars.$root = vars;"),this.generate(e),this.resolveReferences(e),e.pushCode("delete vars.$parent;"),e.pushCode("delete vars.$root;"),e.pushCode("return vars;")}addAliasedCode(e){return e.pushCode(`function ${pa+this.alias}(offset, context) {`),e.pushCode(`var vars = ${this.constructorFn?"new constructorFn()":"{}"};`),e.pushCode("var ctx = Object.assign({$parent: null, $root: vars}, context || {});"),e.pushCode("vars = Object.assign(vars, ctx);"),this.generate(e),e.markResolved(this.alias),this.resolveReferences(e),e.pushCode("Object.keys(ctx).forEach(function (item) { delete vars[item]; });"),e.pushCode("return { offset: offset, result: vars };"),e.pushCode("}"),e}resolveReferences(e){const n=e.getUnresolvedReferences();e.markRequested(n),n.forEach(r=>{var i;(i=Pn.get(r))===null||i===void 0||i.addAliasedCode(e)})}compile(){const e="imports",n=this.getContext(e);this.compiled=new Function(e,"TextDecoder",`return function (buffer, constructorFn) { ${n.code} };`)(n.imports,TextDecoder)}sizeOf(){let e=NaN;if(Object.keys(Un).indexOf(this.type)>=0)e=Un[this.type];else if(this.type==="string"&&typeof this.options.length=="number")e=this.options.length;else if(this.type==="buffer"&&typeof this.options.length=="number")e=this.options.length;else if(this.type==="array"&&typeof this.options.length=="number"){let n=NaN;typeof this.options.type=="string"?n=Un[this.options.type]:this.options.type instanceof Vn&&(n=this.options.type.sizeOf()),e=this.options.length*n}else this.type==="seek"?e=this.options.length:this.type==="nest"?e=this.options.type.sizeOf():this.type||(e=0);return this.next&&(e+=this.next.sizeOf()),e}parse(e){return this.compiled||this.compile(),this.compiled(e,this.constructorFn)}setNextParser(e,n,r){const i=new Vn;return i.type=e,i.varName=n,i.options=r,i.endian=this.endian,this.head?this.head.next=i:this.next=i,this.head=i,this}generate(e){if(this.type){switch(this.type){case"uint8":case"uint16le":case"uint16be":case"uint32le":case"uint32be":case"int8":case"int16le":case"int16be":case"int32le":case"int32be":case"int64be":case"int64le":case"uint64be":case"uint64le":case"floatle":case"floatbe":case"doublele":case"doublebe":this.primitiveGenerateN(this.type,e);break;case"bit":this.generateBit(e);break;case"string":this.generateString(e);break;case"buffer":this.generateBuffer(e);break;case"seek":this.generateSeek(e);break;case"nest":this.generateNest(e);break;case"array":this.generateArray(e);break;case"choice":this.generateChoice(e);break;case"pointer":this.generatePointer(e);break;case"saveOffset":this.generateSaveOffset(e);break;case"wrapper":this.generateWrapper(e);break}this.type!=="bit"&&this.generateAssert(e)}const n=e.generateVariable(this.varName);return this.options.formatter&&this.type!=="bit"&&this.generateFormatter(e,n,this.options.formatter),this.generateNext(e)}generateAssert(e){if(!this.options.assert)return;const n=e.generateVariable(this.varName);switch(typeof this.options.assert){case"function":{const r=e.addImport(this.options.assert);e.pushCode(`if (!${r}.call(vars, ${n})) {`)}break;case"number":e.pushCode(`if (${this.options.assert} !== ${n}) {`);break;case"string":e.pushCode(`if (${JSON.stringify(this.options.assert)} !== ${n}) {`);break;default:throw new Error("assert option must be a string, number or a function.")}e.generateError(`"Assertion error: ${n} is " + ${JSON.stringify(this.options.assert.toString())}`),e.pushCode("}")}generateNext(e){return this.next&&(e=this.next.generate(e)),e}generateBit(e){const n=JSON.parse(JSON.stringify(this));if(n.options=this.options,n.generateAssert=this.generateAssert.bind(this),n.generateFormatter=this.generateFormatter.bind(this),n.varName=e.generateVariable(n.varName),e.bitFields.push(n),!this.next||this.next&&["bit","nest"].indexOf(this.next.type)<0){const r=e.generateTmpVariable();e.pushCode(`var ${r} = 0;`);const i=(l=0)=>{let c=0;for(let h=l;h<e.bitFields.length;h++){const d=e.bitFields[h].options.length;if(c+d>32)break;c+=d}return c},a=l=>(l<=8?(e.pushCode(`${r} = dataView.getUint8(offset);`),l=8):l<=16?(e.pushCode(`${r} = dataView.getUint16(offset);`),l=16):l<=24?(e.pushCode(`${r} = (dataView.getUint16(offset) << 8) | dataView.getUint8(offset + 2);`),l=24):(e.pushCode(`${r} = dataView.getUint32(offset);`),l=32),e.pushCode(`offset += ${l/8};`),l);let o=0;const s=this.endian==="be";let f=0,u=0;e.bitFields.forEach((l,c)=>{let h=l.options.length;if(h>u){if(u){const b=-1>>>32-u;e.pushCode(`${l.varName} = (${r} & 0x${b.toString(16)}) << ${h-u};`),h-=u}o=0,u=f=a(i(c)-u)}const d=s?f-o-h:o,g=-1>>>32-h;e.pushCode(`${l.varName} ${h<l.options.length?"|=":"="} ${r} >> ${d} & 0x${g.toString(16)};`),l.options.length===32&&e.pushCode(`${l.varName} >>>= 0`),l.options.assert&&l.generateAssert(e),l.options.formatter&&l.generateFormatter(e,l.varName,l.options.formatter),o+=h,u-=h}),e.bitFields=[]}}generateSeek(e){const n=e.generateOption(this.options.length);e.pushCode(`offset += ${n};`)}generateString(e){const n=e.generateVariable(this.varName),r=e.generateTmpVariable(),i=this.options.encoding,a=i.toLowerCase()==="hex",o='b => b.toString(16).padStart(2, "0")';if(this.options.length&&this.options.zeroTerminated){const s=this.options.length;e.pushCode(`var ${r} = offset;`),e.pushCode(`while(dataView.getUint8(offset++) !== 0 && offset - ${r} < ${s});`);const f=`offset - ${r} < ${s} ? offset - 1 : offset`;e.pushCode(a?`${n} = Array.from(buffer.subarray(${r}, ${f}), ${o}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(${r}, ${f}));`)}else if(this.options.length){const s=e.generateOption(this.options.length);e.pushCode(a?`${n} = Array.from(buffer.subarray(offset, offset + ${s}), ${o}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(offset, offset + ${s}));`),e.pushCode(`offset += ${s};`)}else this.options.zeroTerminated?(e.pushCode(`var ${r} = offset;`),e.pushCode("while(dataView.getUint8(offset++) !== 0);"),e.pushCode(a?`${n} = Array.from(buffer.subarray(${r}, offset - 1), ${o}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(${r}, offset - 1));`)):this.options.greedy&&(e.pushCode(`var ${r} = offset;`),e.pushCode("while(buffer.length > offset++);"),e.pushCode(a?`${n} = Array.from(buffer.subarray(${r}, offset), ${o}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(${r}, offset));`));this.options.stripNull&&e.pushCode(`${n} = ${n}.replace(/\\x00+$/g, '')`)}generateBuffer(e){const n=e.generateVariable(this.varName);if(typeof this.options.readUntil=="function"){const r=this.options.readUntil,i=e.generateTmpVariable(),a=e.generateTmpVariable();e.pushCode(`var ${i} = offset;`),e.pushCode(`var ${a} = 0;`),e.pushCode("while (offset < buffer.length) {"),e.pushCode(`${a} = dataView.getUint8(offset);`);const o=e.addImport(r);e.pushCode(`if (${o}.call(${e.generateVariable()}, ${a}, buffer.subarray(offset))) break;`),e.pushCode("offset += 1;"),e.pushCode("}"),e.pushCode(`${n} = buffer.subarray(${i}, offset);`)}else if(this.options.readUntil==="eof")e.pushCode(`${n} = buffer.subarray(offset);`);else{const r=e.generateOption(this.options.length);e.pushCode(`${n} = buffer.subarray(offset, offset + ${r});`),e.pushCode(`offset += ${r};`)}this.options.clone&&e.pushCode(`${n} = buffer.constructor.from(${n});`)}generateArray(e){const n=e.generateOption(this.options.length),r=e.generateOption(this.options.lengthInBytes),i=this.options.type,a=e.generateTmpVariable(),o=e.generateVariable(this.varName),s=e.generateTmpVariable(),f=this.options.key,u=typeof f=="string";if(u?e.pushCode(`${o} = {};`):e.pushCode(`${o} = [];`),typeof this.options.readUntil=="function"?e.pushCode("do {"):this.options.readUntil==="eof"?e.pushCode(`for (var ${a} = 0; offset < buffer.length; ${a}++) {`):r!==void 0?e.pushCode(`for (var ${a} = offset + ${r}; offset < ${a}; ) {`):e.pushCode(`for (var ${a} = ${n}; ${a} > 0; ${a}--) {`),typeof i=="string")if(Pn.get(i)){const l=e.generateTmpVariable();if(e.pushCode(`var ${l} = ${pa+i}(offset, {`),e.useContextVariables){const c=e.generateVariable();e.pushCode(`$parent: ${c},`),e.pushCode(`$root: ${c}.$root,`),!this.options.readUntil&&r===void 0&&e.pushCode(`$index: ${n} - ${a},`)}e.pushCode("});"),e.pushCode(`var ${s} = ${l}.result; offset = ${l}.offset;`),i!==this.alias&&e.addReference(i)}else{const l=ec[i],c=tc[i];e.pushCode(`var ${s} = dataView.get${l}(offset, ${c});`),e.pushCode(`offset += ${Un[i]};`)}else if(i instanceof Vn){e.pushCode(`var ${s} = {};`);const l=e.generateVariable();e.pushScope(s),e.useContextVariables&&(e.pushCode(`${s}.$parent = ${l};`),e.pushCode(`${s}.$root = ${l}.$root;`),!this.options.readUntil&&r===void 0&&e.pushCode(`${s}.$index = ${n} - ${a};`)),i.generate(e),e.useContextVariables&&(e.pushCode(`delete ${s}.$parent;`),e.pushCode(`delete ${s}.$root;`),e.pushCode(`delete ${s}.$index;`)),e.popScope()}if(u?e.pushCode(`${o}[${s}.${f}] = ${s};`):e.pushCode(`${o}.push(${s});`),e.pushCode("}"),typeof this.options.readUntil=="function"){const l=this.options.readUntil,c=e.addImport(l);e.pushCode(`while (!${c}.call(${e.generateVariable()}, ${s}, buffer.subarray(offset)));`)}}generateChoiceCase(e,n,r){if(typeof r=="string"){const i=e.generateVariable(this.varName);if(Pn.has(r)){const a=e.generateTmpVariable();e.pushCode(`var ${a} = ${pa+r}(offset, {`),e.useContextVariables&&(e.pushCode(`$parent: ${i}.$parent,`),e.pushCode(`$root: ${i}.$root,`)),e.pushCode("});"),e.pushCode(`${i} = ${a}.result; offset = ${a}.offset;`),r!==this.alias&&e.addReference(r)}else{const a=ec[r],o=tc[r];e.pushCode(`${i} = dataView.get${a}(offset, ${o});`),e.pushCode(`offset += ${Un[r]}`)}}else r instanceof Vn&&(e.pushPath(n),r.generate(e),e.popPath(n))}generateChoice(e){const n=e.generateOption(this.options.tag),r=e.generateVariable(this.varName);if(this.varName&&(e.pushCode(`${r} = {};`),e.useContextVariables)){const i=e.generateVariable();e.pushCode(`${r}.$parent = ${i};`),e.pushCode(`${r}.$root = ${i}.$root;`)}e.pushCode(`switch(${n}) {`);for(const i in this.options.choices){const a=parseInt(i,10),o=this.options.choices[a];e.pushCode(`case ${a}:`),this.generateChoiceCase(e,this.varName,o),e.pushCode("break;")}e.pushCode("default:"),this.options.defaultChoice?this.generateChoiceCase(e,this.varName,this.options.defaultChoice):e.generateError(`"Met undefined tag value " + ${n} + " at choice"`),e.pushCode("}"),this.varName&&e.useContextVariables&&(e.pushCode(`delete ${r}.$parent;`),e.pushCode(`delete ${r}.$root;`))}generateNest(e){const n=e.generateVariable(this.varName);if(this.options.type instanceof Vn){if(this.varName&&(e.pushCode(`${n} = {};`),e.useContextVariables)){const r=e.generateVariable();e.pushCode(`${n}.$parent = ${r};`),e.pushCode(`${n}.$root = ${r}.$root;`)}e.pushPath(this.varName),this.options.type.generate(e),e.popPath(this.varName),this.varName&&e.useContextVariables&&e.useContextVariables&&(e.pushCode(`delete ${n}.$parent;`),e.pushCode(`delete ${n}.$root;`))}else if(Pn.has(this.options.type)){const r=e.generateTmpVariable();if(e.pushCode(`var ${r} = ${pa+this.options.type}(offset, {`),e.useContextVariables){const i=e.generateVariable();e.pushCode(`$parent: ${i},`),e.pushCode(`$root: ${i}.$root,`)}e.pushCode("});"),e.pushCode(`${n} = ${r}.result; offset = ${r}.offset;`),this.options.type!==this.alias&&e.addReference(this.options.type)}}generateWrapper(e){const n=e.generateVariable(this.varName),r=e.generateTmpVariable();if(typeof this.options.readUntil=="function"){const f=this.options.readUntil,u=e.generateTmpVariable(),l=e.generateTmpVariable();e.pushCode(`var ${u} = offset;`),e.pushCode(`var ${l} = 0;`),e.pushCode("while (offset < buffer.length) {"),e.pushCode(`${l} = dataView.getUint8(offset);`);const c=e.addImport(f);e.pushCode(`if (${c}.call(${e.generateVariable()}, ${l}, buffer.subarray(offset))) break;`),e.pushCode("offset += 1;"),e.pushCode("}"),e.pushCode(`${r} = buffer.subarray(${u}, offset);`)}else if(this.options.readUntil==="eof")e.pushCode(`${r} = buffer.subarray(offset);`);else{const f=e.generateOption(this.options.length);e.pushCode(`${r} = buffer.subarray(offset, offset + ${f});`),e.pushCode(`offset += ${f};`)}this.options.clone&&e.pushCode(`${r} = buffer.constructor.from(${r});`);const i=e.generateTmpVariable(),a=e.generateTmpVariable(),o=e.generateTmpVariable(),s=e.addImport(this.options.wrapper);if(e.pushCode(`${r} = ${s}.call(this, ${r}).subarray(0);`),e.pushCode(`var ${i} = buffer;`),e.pushCode(`var ${a} = offset;`),e.pushCode(`var ${o} = dataView;`),e.pushCode(`buffer = ${r};`),e.pushCode("offset = 0;"),e.pushCode("dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.length);"),this.options.type instanceof Vn)this.varName&&e.pushCode(`${n} = {};`),e.pushPath(this.varName),this.options.type.generate(e),e.popPath(this.varName);else if(Pn.has(this.options.type)){const f=e.generateTmpVariable();e.pushCode(`var ${f} = ${pa+this.options.type}(0);`),e.pushCode(`${n} = ${f}.result;`),this.options.type!==this.alias&&e.addReference(this.options.type)}e.pushCode(`buffer = ${i};`),e.pushCode(`dataView = ${o};`),e.pushCode(`offset = ${a};`)}generateFormatter(e,n,r){if(typeof r=="function"){const i=e.addImport(r);e.pushCode(`${n} = ${i}.call(${e.generateVariable()}, ${n});`)}}generatePointer(e){const n=this.options.type,r=e.generateOption(this.options.offset),i=e.generateTmpVariable(),a=e.generateVariable(this.varName);if(e.pushCode(`var ${i} = offset;`),e.pushCode(`offset = ${r};`),this.options.type instanceof Vn){if(e.pushCode(`${a} = {};`),e.useContextVariables){const o=e.generateVariable();e.pushCode(`${a}.$parent = ${o};`),e.pushCode(`${a}.$root = ${o}.$root;`)}e.pushPath(this.varName),this.options.type.generate(e),e.popPath(this.varName),e.useContextVariables&&(e.pushCode(`delete ${a}.$parent;`),e.pushCode(`delete ${a}.$root;`))}else if(Pn.has(this.options.type)){const o=e.generateTmpVariable();if(e.pushCode(`var ${o} = ${pa+this.options.type}(offset, {`),e.useContextVariables){const s=e.generateVariable();e.pushCode(`$parent: ${s},`),e.pushCode(`$root: ${s}.$root,`)}e.pushCode("});"),e.pushCode(`${a} = ${o}.result; offset = ${o}.offset;`),this.options.type!==this.alias&&e.addReference(this.options.type)}else if(Object.keys(Un).indexOf(this.options.type)>=0){const o=ec[n],s=tc[n];e.pushCode(`${a} = dataView.get${o}(offset, ${s});`),e.pushCode(`offset += ${Un[n]};`)}e.pushCode(`offset = ${i};`)}generateSaveOffset(e){const n=e.generateVariable(this.varName);e.pushCode(`${n} = offset`)}};var nv={},X0={},ma={},Eu={};Object.defineProperty(Eu,"__esModule",{value:!0});function $0(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function rv(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function K0(t,e,n){return e&&rv(t.prototype,e),n&&rv(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function GL(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&J0(t,e)}function Ao(t){return Ao=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},Ao(t)}function J0(t,e){return J0=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},J0(t,e)}function HL(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Su(t){if(t===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function QL(t,e){if(e&&(typeof e=="object"||typeof e=="function"))return e;if(e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Su(t)}function VL(t){var e=HL();return function(){var r=Ao(t),i;if(e){var a=Ao(this).constructor;i=Reflect.construct(r,arguments,a)}else i=r.apply(this,arguments);return QL(this,i)}}function qL(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&(t=Ao(t),t!==null););return t}function nc(){return typeof Reflect<"u"&&Reflect.get?nc=Reflect.get.bind():nc=function(e,n,r){var i=qL(e,n);if(i){var a=Object.getOwnPropertyDescriptor(i,n);return a.get?a.get.call(arguments.length<3?e:r):a.value}},nc.apply(this,arguments)}var iv=function(){function t(){$0(this,t),Object.defineProperty(this,"listeners",{value:{},writable:!0,configurable:!0})}return K0(t,[{key:"addEventListener",value:function(n,r,i){n in this.listeners||(this.listeners[n]=[]),this.listeners[n].push({callback:r,options:i})}},{key:"removeEventListener",value:function(n,r){if(n in this.listeners){for(var i=this.listeners[n],a=0,o=i.length;a<o;a++)if(i[a].callback===r){i.splice(a,1);return}}}},{key:"dispatchEvent",value:function(n){if(n.type in this.listeners){for(var r=this.listeners[n.type],i=r.slice(),a=0,o=i.length;a<o;a++){var s=i[a];try{s.callback.call(this,n)}catch(f){Promise.resolve().then(function(){throw f})}s.options&&s.options.once&&this.removeEventListener(n.type,s.callback)}return!n.defaultPrevented}}}]),t}(),eg=function(t){GL(n,t);var e=VL(n);function n(){var r;return $0(this,n),r=e.call(this),r.listeners||iv.call(Su(r)),Object.defineProperty(Su(r),"aborted",{value:!1,writable:!0,configurable:!0}),Object.defineProperty(Su(r),"onabort",{value:null,writable:!0,configurable:!0}),Object.defineProperty(Su(r),"reason",{value:void 0,writable:!0,configurable:!0}),r}return K0(n,[{key:"toString",value:function(){return"[object AbortSignal]"}},{key:"dispatchEvent",value:function(i){i.type==="abort"&&(this.aborted=!0,typeof this.onabort=="function"&&this.onabort.call(this,i)),nc(Ao(n.prototype),"dispatchEvent",this).call(this,i)}}]),n}(iv),av=function(){function t(){$0(this,t),Object.defineProperty(this,"signal",{value:new eg,writable:!0,configurable:!0})}return K0(t,[{key:"abort",value:function(n){var r;try{r=new Event("abort")}catch{typeof document<"u"?document.createEvent?(r=document.createEvent("Event"),r.initEvent("abort",!1,!1)):(r=document.createEventObject(),r.type="abort"):r={type:"abort",bubbles:!1,cancelable:!1}}var i=n;if(i===void 0)if(typeof document>"u")i=new Error("This operation was aborted"),i.name="AbortError";else try{i=new DOMException("signal is aborted without reason")}catch{i=new Error("This operation was aborted"),i.name="AbortError"}this.signal.reason=i,this.signal.dispatchEvent(r)}},{key:"toString",value:function(){return"[object AbortController]"}}]),t}();typeof Symbol<"u"&&Symbol.toStringTag&&(av.prototype[Symbol.toStringTag]="AbortController",eg.prototype[Symbol.toStringTag]="AbortSignal");function ZL(t){return t.__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL?(console.log("__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL=true is set, will force install polyfill"),!0):typeof t.Request=="function"&&!t.Request.prototype.hasOwnProperty("signal")||!t.AbortController}function YL(t){typeof t=="function"&&(t={fetch:t});var e=t,n=e.fetch,r=e.Request,i=r===void 0?n.Request:r,a=e.AbortController,o=e.__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL,s=o===void 0?!1:o;if(!ZL({fetch:n,Request:i,AbortController:a,__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL:s}))return{fetch:n,Request:f};var f=i;(f&&!f.prototype.hasOwnProperty("signal")||s)&&(f=function(h,d){var g;d&&d.signal&&(g=d.signal,delete d.signal);var b=new i(h,d);return g&&Object.defineProperty(b,"signal",{writable:!1,enumerable:!1,configurable:!0,value:g}),b},f.prototype=i.prototype);var u=n,l=function(h,d){var g=f&&f.prototype.isPrototypeOf(h)?h.signal:d?d.signal:void 0;if(g){var b;try{b=new DOMException("Aborted","AbortError")}catch{b=new Error("Aborted"),b.name="AbortError"}if(g.aborted)return Promise.reject(b);var y=new Promise(function(w,E){g.addEventListener("abort",function(){return E(b)},{once:!0})});return d&&d.signal&&delete d.signal,Promise.race([y,u(h,d)])}return u(h,d)};return{fetch:l,Request:f}}Eu.AbortController=av,Eu.AbortSignal=eg,Eu.abortableFetch=YL,Object.defineProperty(ma,"__esModule",{value:!0}),ma.AbortSignal=ma.AbortController=void 0;const ov=Eu;var rc=function(){if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof globalThis<"u")return globalThis;throw new Error("unable to locate globalThis object")};let WL=typeof rc().AbortController>"u"?ov.AbortController:rc().AbortController;ma.AbortController=WL;let XL=typeof rc().AbortController>"u"?ov.AbortSignal:rc().AbortSignal;ma.AbortSignal=XL;var tg={};Object.defineProperty(tg,"__esModule",{value:!0});const $L=ma;class KL{}class JL{constructor(){this.signals=new Set,this.abortController=new $L.AbortController}addSignal(e=new KL){if(this.signal.aborted)throw new Error("cannot add a signal, already aborted!");this.signals.add(e),e.aborted?this.handleAborted(e):typeof e.addEventListener=="function"&&e.addEventListener("abort",()=>{this.handleAborted(e)})}handleAborted(e){this.signals.delete(e),this.signals.size===0&&this.abortController.abort()}get signal(){return this.abortController.signal}abort(){this.abortController.abort()}}tg.default=JL;var ng={};Object.defineProperty(ng,"__esModule",{value:!0});class eR{constructor(){this.callbacks=new Set}addCallback(e=()=>{}){this.callbacks.add(e),e(this.currentMessage)}callback(e){this.currentMessage=e,this.callbacks.forEach(n=>{n(e)})}}ng.default=eR;var sv=iu&&iu.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(X0,"__esModule",{value:!0});const tR=ma,nR=sv(tg),rR=sv(ng);class ic{constructor({fill:e,cache:n}){if(typeof e!="function")throw new TypeError("must pass a fill function");if(typeof n!="object")throw new TypeError("must pass a cache object");if(typeof n.get!="function"||typeof n.set!="function"||typeof n.delete!="function")throw new TypeError("cache must implement get(key), set(key, val), and and delete(key)");this.cache=n,this.fillCallback=e}static isAbortException(e){return e.name==="AbortError"||e.code==="ERR_ABORTED"||e.message==="AbortError: aborted"||e.message==="Error: aborted"}evict(e,n){this.cache.get(e)===n&&this.cache.delete(e)}fill(e,n,r,i){const a=new nR.default,o=new rR.default;o.addCallback(i);const s={aborter:a,promise:this.fillCallback(n,a.signal,f=>{o.callback(f)}),settled:!1,statusReporter:o,get aborted(){return this.aborter.signal.aborted}};s.aborter.addSignal(r),s.aborter.signal.addEventListener("abort",()=>{s.settled||this.evict(e,s)}),s.promise.then(()=>{s.settled=!0},()=>{s.settled=!0,this.evict(e,s)}).catch(f=>{throw console.error(f),f}),this.cache.set(e,s)}static checkSinglePromise(e,n){function r(){if(n&&n.aborted)throw Object.assign(new Error("aborted"),{code:"ERR_ABORTED"})}return e.then(i=>(r(),i),i=>{throw r(),i})}has(e){return this.cache.has(e)}get(e,n,r,i){if(!r&&n instanceof tR.AbortSignal)throw new TypeError("second get argument appears to be an AbortSignal, perhaps you meant to pass `null` for the fill data?");const a=this.cache.get(e);return a?a.aborted&&!a.settled?(this.evict(e,a),this.get(e,n,r,i)):a.settled?a.promise:(a.aborter.addSignal(r),a.statusReporter.addCallback(i),ic.checkSinglePromise(a.promise,r)):(this.fill(e,n,r,i),ic.checkSinglePromise(this.cache.get(e).promise,r))}delete(e){const n=this.cache.get(e);n&&(n.settled||n.aborter.abort(),this.cache.delete(e))}clear(){const e=this.cache.keys();let n=0;for(let r=e.next();!r.done;r=e.next())this.delete(r.value),n+=1;return n}}X0.default=ic;var iR=iu&&iu.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(nv,"__esModule",{value:!0});const aR=iR(X0);var ac=nv.default=aR.default,oR=class{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=e.maxSize,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(e,n){this.cache.set(e,n),this._size++,this._size>=this.maxSize&&(this._size=0,this.oldCache=this.cache,this.cache=new Map)}get(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e)){const n=this.oldCache.get(e);return this.oldCache.delete(e),this._set(e,n),n}}set(e,n){return this.cache.has(e)?this.cache.set(e,n):this._set(e,n),this}has(e){return this.cache.has(e)||this.oldCache.has(e)}peek(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e))return this.oldCache.get(e)}delete(e){const n=this.cache.delete(e);return n&&this._size--,this.oldCache.delete(e)||n}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(const[e]of this)yield e}*values(){for(const[,e]of this)yield e}*[Symbol.iterator](){for(const e of this.cache)yield e;for(const e of this.oldCache){const[n]=e;this.cache.has(n)||(yield e)}}get size(){let e=0;for(const n of this.oldCache.keys())this.cache.has(n)||e++;return this._size+e}};const rg=ia(oR);class gi{constructor(e,n){this.ranges=arguments.length===2?[{min:e,max:n}]:0 in e?Object.assign({},e):[e]}min(){return this.ranges[0].min}max(){return this.ranges[this.ranges.length-1].max}contains(e){for(let n=0;n<this.ranges.length;n+=1){const r=this.ranges[n];if(r.min<=e&&r.max>=e)return!0}return!1}isContiguous(){return this.ranges.length>1}getRanges(){return this.ranges.map(e=>new gi(e.min,e.max))}toString(){return this.ranges.map(e=>`[${e.min}-${e.max}]`).join(",")}union(e){const n=this.getRanges().concat(e.getRanges()).sort(this.rangeOrder),r=[];let i=n[0];for(let a=1;a<n.length;a+=1){const o=n[a];o.min()>i.max()+1?(r.push(i),i=o):o.max()>i.max()&&(i=new gi(i.min(),o.max()))}return r.push(i),r.length===1?r[0]:new gi(r)}intersection(e){let n=this,r=e;const i=this.ranges(),a=r.ranges(),o=i.length,s=a.length;let f=0,u=0;const l=[];for(;f<o&&u<s;){n=i[f],r=a[u];const c=Math.max(n.min(),r.min()),h=Math.min(n.max(),r.max());h>=c&&l.push(new gi(c,h)),n.max()>r.max()?u+=1:f+=1}if(l.length===0)throw new Error("found range of length 0");return l.length===1?l[0]:new gi(l)}coverage(){let e=0;const n=this.ranges();for(const r of n)e+=r.max()-r.min()+1;return e}rangeOrder(e,n){let r=e,i=n;return arguments.length<2&&(i=r,r=this),r.min()<i.min()?-1:r.min()>i.min()?1:r.max()<i.max()?-1:i.max()>r.max()?1:0}}/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */const sR=4,uv=0,fv=1,uR=2;function Eo(t){let e=t.length;for(;--e>=0;)t[e]=0}const fR=0,lv=1,lR=2,cR=3,hR=258,ig=29,_u=256,Cu=_u+1+ig,So=30,ag=19,cv=2*Cu+1,ba=15,og=16,dR=7,sg=256,hv=16,dv=17,gv=18,ug=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),oc=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),gR=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),pv=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),pR=512,Mr=new Array((Cu+2)*2);Eo(Mr);const Du=new Array(So*2);Eo(Du);const Iu=new Array(pR);Eo(Iu);const Mu=new Array(hR-cR+1);Eo(Mu);const fg=new Array(ig);Eo(fg);const sc=new Array(So);Eo(sc);function lg(t,e,n,r,i){this.static_tree=t,this.extra_bits=e,this.extra_base=n,this.elems=r,this.max_length=i,this.has_stree=t&&t.length}let mv,bv,yv;function cg(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}const wv=t=>t<256?Iu[t]:Iu[256+(t>>>7)],Tu=(t,e)=>{t.pending_buf[t.pending++]=e&255,t.pending_buf[t.pending++]=e>>>8&255},Gt=(t,e,n)=>{t.bi_valid>og-n?(t.bi_buf|=e<<t.bi_valid&65535,Tu(t,t.bi_buf),t.bi_buf=e>>og-t.bi_valid,t.bi_valid+=n-og):(t.bi_buf|=e<<t.bi_valid&65535,t.bi_valid+=n)},ur=(t,e,n)=>{Gt(t,n[e*2],n[e*2+1])},xv=(t,e)=>{let n=0;do n|=t&1,t>>>=1,n<<=1;while(--e>0);return n>>>1},mR=t=>{t.bi_valid===16?(Tu(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=t.bi_buf&255,t.bi_buf>>=8,t.bi_valid-=8)},bR=(t,e)=>{const n=e.dyn_tree,r=e.max_code,i=e.stat_desc.static_tree,a=e.stat_desc.has_stree,o=e.stat_desc.extra_bits,s=e.stat_desc.extra_base,f=e.stat_desc.max_length;let u,l,c,h,d,g,b=0;for(h=0;h<=ba;h++)t.bl_count[h]=0;for(n[t.heap[t.heap_max]*2+1]=0,u=t.heap_max+1;u<cv;u++)l=t.heap[u],h=n[n[l*2+1]*2+1]+1,h>f&&(h=f,b++),n[l*2+1]=h,!(l>r)&&(t.bl_count[h]++,d=0,l>=s&&(d=o[l-s]),g=n[l*2],t.opt_len+=g*(h+d),a&&(t.static_len+=g*(i[l*2+1]+d)));if(b!==0){do{for(h=f-1;t.bl_count[h]===0;)h--;t.bl_count[h]--,t.bl_count[h+1]+=2,t.bl_count[f]--,b-=2}while(b>0);for(h=f;h!==0;h--)for(l=t.bl_count[h];l!==0;)c=t.heap[--u],!(c>r)&&(n[c*2+1]!==h&&(t.opt_len+=(h-n[c*2+1])*n[c*2],n[c*2+1]=h),l--)}},vv=(t,e,n)=>{const r=new Array(ba+1);let i=0,a,o;for(a=1;a<=ba;a++)i=i+n[a-1]<<1,r[a]=i;for(o=0;o<=e;o++){let s=t[o*2+1];s!==0&&(t[o*2]=xv(r[s]++,s))}},yR=()=>{let t,e,n,r,i;const a=new Array(ba+1);for(n=0,r=0;r<ig-1;r++)for(fg[r]=n,t=0;t<1<<ug[r];t++)Mu[n++]=r;for(Mu[n-1]=r,i=0,r=0;r<16;r++)for(sc[r]=i,t=0;t<1<<oc[r];t++)Iu[i++]=r;for(i>>=7;r<So;r++)for(sc[r]=i<<7,t=0;t<1<<oc[r]-7;t++)Iu[256+i++]=r;for(e=0;e<=ba;e++)a[e]=0;for(t=0;t<=143;)Mr[t*2+1]=8,t++,a[8]++;for(;t<=255;)Mr[t*2+1]=9,t++,a[9]++;for(;t<=279;)Mr[t*2+1]=7,t++,a[7]++;for(;t<=287;)Mr[t*2+1]=8,t++,a[8]++;for(vv(Mr,Cu+1,a),t=0;t<So;t++)Du[t*2+1]=5,Du[t*2]=xv(t,5);mv=new lg(Mr,ug,_u+1,Cu,ba),bv=new lg(Du,oc,0,So,ba),yv=new lg(new Array(0),gR,0,ag,dR)},Av=t=>{let e;for(e=0;e<Cu;e++)t.dyn_ltree[e*2]=0;for(e=0;e<So;e++)t.dyn_dtree[e*2]=0;for(e=0;e<ag;e++)t.bl_tree[e*2]=0;t.dyn_ltree[sg*2]=1,t.opt_len=t.static_len=0,t.sym_next=t.matches=0},Ev=t=>{t.bi_valid>8?Tu(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0},Sv=(t,e,n,r)=>{const i=e*2,a=n*2;return t[i]<t[a]||t[i]===t[a]&&r[e]<=r[n]},hg=(t,e,n)=>{const r=t.heap[n];let i=n<<1;for(;i<=t.heap_len&&(i<t.heap_len&&Sv(e,t.heap[i+1],t.heap[i],t.depth)&&i++,!Sv(e,r,t.heap[i],t.depth));)t.heap[n]=t.heap[i],n=i,i<<=1;t.heap[n]=r},_v=(t,e,n)=>{let r,i,a=0,o,s;if(t.sym_next!==0)do r=t.pending_buf[t.sym_buf+a++]&255,r+=(t.pending_buf[t.sym_buf+a++]&255)<<8,i=t.pending_buf[t.sym_buf+a++],r===0?ur(t,i,e):(o=Mu[i],ur(t,o+_u+1,e),s=ug[o],s!==0&&(i-=fg[o],Gt(t,i,s)),r--,o=wv(r),ur(t,o,n),s=oc[o],s!==0&&(r-=sc[o],Gt(t,r,s)));while(a<t.sym_next);ur(t,sg,e)},dg=(t,e)=>{const n=e.dyn_tree,r=e.stat_desc.static_tree,i=e.stat_desc.has_stree,a=e.stat_desc.elems;let o,s,f=-1,u;for(t.heap_len=0,t.heap_max=cv,o=0;o<a;o++)n[o*2]!==0?(t.heap[++t.heap_len]=f=o,t.depth[o]=0):n[o*2+1]=0;for(;t.heap_len<2;)u=t.heap[++t.heap_len]=f<2?++f:0,n[u*2]=1,t.depth[u]=0,t.opt_len--,i&&(t.static_len-=r[u*2+1]);for(e.max_code=f,o=t.heap_len>>1;o>=1;o--)hg(t,n,o);u=a;do o=t.heap[1],t.heap[1]=t.heap[t.heap_len--],hg(t,n,1),s=t.heap[1],t.heap[--t.heap_max]=o,t.heap[--t.heap_max]=s,n[u*2]=n[o*2]+n[s*2],t.depth[u]=(t.depth[o]>=t.depth[s]?t.depth[o]:t.depth[s])+1,n[o*2+1]=n[s*2+1]=u,t.heap[1]=u++,hg(t,n,1);while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],bR(t,e),vv(n,f,t.bl_count)},Cv=(t,e,n)=>{let r,i=-1,a,o=e[0*2+1],s=0,f=7,u=4;for(o===0&&(f=138,u=3),e[(n+1)*2+1]=65535,r=0;r<=n;r++)a=o,o=e[(r+1)*2+1],!(++s<f&&a===o)&&(s<u?t.bl_tree[a*2]+=s:a!==0?(a!==i&&t.bl_tree[a*2]++,t.bl_tree[hv*2]++):s<=10?t.bl_tree[dv*2]++:t.bl_tree[gv*2]++,s=0,i=a,o===0?(f=138,u=3):a===o?(f=6,u=3):(f=7,u=4))},Dv=(t,e,n)=>{let r,i=-1,a,o=e[0*2+1],s=0,f=7,u=4;for(o===0&&(f=138,u=3),r=0;r<=n;r++)if(a=o,o=e[(r+1)*2+1],!(++s<f&&a===o)){if(s<u)do ur(t,a,t.bl_tree);while(--s!==0);else a!==0?(a!==i&&(ur(t,a,t.bl_tree),s--),ur(t,hv,t.bl_tree),Gt(t,s-3,2)):s<=10?(ur(t,dv,t.bl_tree),Gt(t,s-3,3)):(ur(t,gv,t.bl_tree),Gt(t,s-11,7));s=0,i=a,o===0?(f=138,u=3):a===o?(f=6,u=3):(f=7,u=4)}},wR=t=>{let e;for(Cv(t,t.dyn_ltree,t.l_desc.max_code),Cv(t,t.dyn_dtree,t.d_desc.max_code),dg(t,t.bl_desc),e=ag-1;e>=3&&t.bl_tree[pv[e]*2+1]===0;e--);return t.opt_len+=3*(e+1)+5+5+4,e},xR=(t,e,n,r)=>{let i;for(Gt(t,e-257,5),Gt(t,n-1,5),Gt(t,r-4,4),i=0;i<r;i++)Gt(t,t.bl_tree[pv[i]*2+1],3);Dv(t,t.dyn_ltree,e-1),Dv(t,t.dyn_dtree,n-1)},vR=t=>{let e=4093624447,n;for(n=0;n<=31;n++,e>>>=1)if(e&1&&t.dyn_ltree[n*2]!==0)return uv;if(t.dyn_ltree[9*2]!==0||t.dyn_ltree[10*2]!==0||t.dyn_ltree[13*2]!==0)return fv;for(n=32;n<_u;n++)if(t.dyn_ltree[n*2]!==0)return fv;return uv};let Iv=!1;const AR=t=>{Iv||(yR(),Iv=!0),t.l_desc=new cg(t.dyn_ltree,mv),t.d_desc=new cg(t.dyn_dtree,bv),t.bl_desc=new cg(t.bl_tree,yv),t.bi_buf=0,t.bi_valid=0,Av(t)},Mv=(t,e,n,r)=>{Gt(t,(fR<<1)+(r?1:0),3),Ev(t),Tu(t,n),Tu(t,~n),n&&t.pending_buf.set(t.window.subarray(e,e+n),t.pending),t.pending+=n},ER=t=>{Gt(t,lv<<1,3),ur(t,sg,Mr),mR(t)},SR=(t,e,n,r)=>{let i,a,o=0;t.level>0?(t.strm.data_type===uR&&(t.strm.data_type=vR(t)),dg(t,t.l_desc),dg(t,t.d_desc),o=wR(t),i=t.opt_len+3+7>>>3,a=t.static_len+3+7>>>3,a<=i&&(i=a)):i=a=n+5,n+4<=i&&e!==-1?Mv(t,e,n,r):t.strategy===sR||a===i?(Gt(t,(lv<<1)+(r?1:0),3),_v(t,Mr,Du)):(Gt(t,(lR<<1)+(r?1:0),3),xR(t,t.l_desc.max_code+1,t.d_desc.max_code+1,o+1),_v(t,t.dyn_ltree,t.dyn_dtree)),Av(t),r&&Ev(t)},_R=(t,e,n)=>(t.pending_buf[t.sym_buf+t.sym_next++]=e,t.pending_buf[t.sym_buf+t.sym_next++]=e>>8,t.pending_buf[t.sym_buf+t.sym_next++]=n,e===0?t.dyn_ltree[n*2]++:(t.matches++,e--,t.dyn_ltree[(Mu[n]+_u+1)*2]++,t.dyn_dtree[wv(e)*2]++),t.sym_next===t.sym_end);var CR=AR,DR=Mv,IR=SR,MR=_R,TR=ER,NR={_tr_init:CR,_tr_stored_block:DR,_tr_flush_block:IR,_tr_tally:MR,_tr_align:TR},Nu=(t,e,n,r)=>{let i=t&65535|0,a=t>>>16&65535|0,o=0;for(;n!==0;){o=n>2e3?2e3:n,n-=o;do i=i+e[r++]|0,a=a+i|0;while(--o);i%=65521,a%=65521}return i|a<<16|0};const FR=()=>{let t,e=[];for(var n=0;n<256;n++){t=n;for(var r=0;r<8;r++)t=t&1?3988292384^t>>>1:t>>>1;e[n]=t}return e},kR=new Uint32Array(FR());var gt=(t,e,n,r)=>{const i=kR,a=r+n;t^=-1;for(let o=r;o<a;o++)t=t>>>8^i[(t^e[o])&255];return t^-1},_o={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"},Fu={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:BR,_tr_stored_block:gg,_tr_flush_block:LR,_tr_tally:pi,_tr_align:RR}=NR,{Z_NO_FLUSH:mi,Z_PARTIAL_FLUSH:OR,Z_FULL_FLUSH:zR,Z_FINISH:pn,Z_BLOCK:Tv,Z_OK:wt,Z_STREAM_END:Nv,Z_STREAM_ERROR:fr,Z_DATA_ERROR:PR,Z_BUF_ERROR:pg,Z_DEFAULT_COMPRESSION:UR,Z_FILTERED:jR,Z_HUFFMAN_ONLY:uc,Z_RLE:GR,Z_FIXED:HR,Z_DEFAULT_STRATEGY:QR,Z_UNKNOWN:VR,Z_DEFLATED:fc}=Fu,qR=9,ZR=15,YR=8,WR=29,mg=256+1+WR,XR=30,$R=19,KR=2*mg+1,JR=15,me=3,bi=258,lr=bi+me+1,e5=32,Co=42,bg=57,yg=69,wg=73,xg=91,vg=103,ya=113,ku=666,Ft=1,Do=2,wa=3,Io=4,t5=3,xa=(t,e)=>(t.msg=_o[e],e),Fv=t=>t*2-(t>4?9:0),yi=t=>{let e=t.length;for(;--e>=0;)t[e]=0},n5=t=>{let e,n,r,i=t.w_size;e=t.hash_size,r=e;do n=t.head[--r],t.head[r]=n>=i?n-i:0;while(--e);e=i,r=e;do n=t.prev[--r],t.prev[r]=n>=i?n-i:0;while(--e)};let wi=(t,e,n)=>(e<<t.hash_shift^n)&t.hash_mask;const tn=t=>{const e=t.state;let n=e.pending;n>t.avail_out&&(n=t.avail_out),n!==0&&(t.output.set(e.pending_buf.subarray(e.pending_out,e.pending_out+n),t.next_out),t.next_out+=n,e.pending_out+=n,t.total_out+=n,t.avail_out-=n,e.pending-=n,e.pending===0&&(e.pending_out=0))},nn=(t,e)=>{LR(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,tn(t.strm)},_e=(t,e)=>{t.pending_buf[t.pending++]=e},Bu=(t,e)=>{t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=e&255},Ag=(t,e,n,r)=>{let i=t.avail_in;return i>r&&(i=r),i===0?0:(t.avail_in-=i,e.set(t.input.subarray(t.next_in,t.next_in+i),n),t.state.wrap===1?t.adler=Nu(t.adler,e,i,n):t.state.wrap===2&&(t.adler=gt(t.adler,e,i,n)),t.next_in+=i,t.total_in+=i,i)},kv=(t,e)=>{let n=t.max_chain_length,r=t.strstart,i,a,o=t.prev_length,s=t.nice_match;const f=t.strstart>t.w_size-lr?t.strstart-(t.w_size-lr):0,u=t.window,l=t.w_mask,c=t.prev,h=t.strstart+bi;let d=u[r+o-1],g=u[r+o];t.prev_length>=t.good_match&&(n>>=2),s>t.lookahead&&(s=t.lookahead);do if(i=e,!(u[i+o]!==g||u[i+o-1]!==d||u[i]!==u[r]||u[++i]!==u[r+1])){r+=2,i++;do;while(u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&r<h);if(a=bi-(h-r),r=h-bi,a>o){if(t.match_start=e,o=a,a>=s)break;d=u[r+o-1],g=u[r+o]}}while((e=c[e&l])>f&&--n!==0);return o<=t.lookahead?o:t.lookahead},Mo=t=>{const e=t.w_size;let n,r,i;do{if(r=t.window_size-t.lookahead-t.strstart,t.strstart>=e+(e-lr)&&(t.window.set(t.window.subarray(e,e+e-r),0),t.match_start-=e,t.strstart-=e,t.block_start-=e,t.insert>t.strstart&&(t.insert=t.strstart),n5(t),r+=e),t.strm.avail_in===0)break;if(n=Ag(t.strm,t.window,t.strstart+t.lookahead,r),t.lookahead+=n,t.lookahead+t.insert>=me)for(i=t.strstart-t.insert,t.ins_h=t.window[i],t.ins_h=wi(t,t.ins_h,t.window[i+1]);t.insert&&(t.ins_h=wi(t,t.ins_h,t.window[i+me-1]),t.prev[i&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=i,i++,t.insert--,!(t.lookahead+t.insert<me)););}while(t.lookahead<lr&&t.strm.avail_in!==0)},Bv=(t,e)=>{let n=t.pending_buf_size-5>t.w_size?t.w_size:t.pending_buf_size-5,r,i,a,o=0,s=t.strm.avail_in;do{if(r=65535,a=t.bi_valid+42>>3,t.strm.avail_out<a||(a=t.strm.avail_out-a,i=t.strstart-t.block_start,r>i+t.strm.avail_in&&(r=i+t.strm.avail_in),r>a&&(r=a),r<n&&(r===0&&e!==pn||e===mi||r!==i+t.strm.avail_in)))break;o=e===pn&&r===i+t.strm.avail_in?1:0,gg(t,0,0,o),t.pending_buf[t.pending-4]=r,t.pending_buf[t.pending-3]=r>>8,t.pending_buf[t.pending-2]=~r,t.pending_buf[t.pending-1]=~r>>8,tn(t.strm),i&&(i>r&&(i=r),t.strm.output.set(t.window.subarray(t.block_start,t.block_start+i),t.strm.next_out),t.strm.next_out+=i,t.strm.avail_out-=i,t.strm.total_out+=i,t.block_start+=i,r-=i),r&&(Ag(t.strm,t.strm.output,t.strm.next_out,r),t.strm.next_out+=r,t.strm.avail_out-=r,t.strm.total_out+=r)}while(o===0);return s-=t.strm.avail_in,s&&(s>=t.w_size?(t.matches=2,t.window.set(t.strm.input.subarray(t.strm.next_in-t.w_size,t.strm.next_in),0),t.strstart=t.w_size,t.insert=t.strstart):(t.window_size-t.strstart<=s&&(t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,t.insert>t.strstart&&(t.insert=t.strstart)),t.window.set(t.strm.input.subarray(t.strm.next_in-s,t.strm.next_in),t.strstart),t.strstart+=s,t.insert+=s>t.w_size-t.insert?t.w_size-t.insert:s),t.block_start=t.strstart),t.high_water<t.strstart&&(t.high_water=t.strstart),o?Io:e!==mi&&e!==pn&&t.strm.avail_in===0&&t.strstart===t.block_start?Do:(a=t.window_size-t.strstart,t.strm.avail_in>a&&t.block_start>=t.w_size&&(t.block_start-=t.w_size,t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,a+=t.w_size,t.insert>t.strstart&&(t.insert=t.strstart)),a>t.strm.avail_in&&(a=t.strm.avail_in),a&&(Ag(t.strm,t.window,t.strstart,a),t.strstart+=a,t.insert+=a>t.w_size-t.insert?t.w_size-t.insert:a),t.high_water<t.strstart&&(t.high_water=t.strstart),a=t.bi_valid+42>>3,a=t.pending_buf_size-a>65535?65535:t.pending_buf_size-a,n=a>t.w_size?t.w_size:a,i=t.strstart-t.block_start,(i>=n||(i||e===pn)&&e!==mi&&t.strm.avail_in===0&&i<=a)&&(r=i>a?a:i,o=e===pn&&t.strm.avail_in===0&&r===i?1:0,gg(t,t.block_start,r,o),t.block_start+=r,tn(t.strm)),o?wa:Ft)},Eg=(t,e)=>{let n,r;for(;;){if(t.lookahead<lr){if(Mo(t),t.lookahead<lr&&e===mi)return Ft;if(t.lookahead===0)break}if(n=0,t.lookahead>=me&&(t.ins_h=wi(t,t.ins_h,t.window[t.strstart+me-1]),n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),n!==0&&t.strstart-n<=t.w_size-lr&&(t.match_length=kv(t,n)),t.match_length>=me)if(r=pi(t,t.strstart-t.match_start,t.match_length-me),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=me){t.match_length--;do t.strstart++,t.ins_h=wi(t,t.ins_h,t.window[t.strstart+me-1]),n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart;while(--t.match_length!==0);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.ins_h=t.window[t.strstart],t.ins_h=wi(t,t.ins_h,t.window[t.strstart+1]);else r=pi(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(r&&(nn(t,!1),t.strm.avail_out===0))return Ft}return t.insert=t.strstart<me-1?t.strstart:me-1,e===pn?(nn(t,!0),t.strm.avail_out===0?wa:Io):t.sym_next&&(nn(t,!1),t.strm.avail_out===0)?Ft:Do},To=(t,e)=>{let n,r,i;for(;;){if(t.lookahead<lr){if(Mo(t),t.lookahead<lr&&e===mi)return Ft;if(t.lookahead===0)break}if(n=0,t.lookahead>=me&&(t.ins_h=wi(t,t.ins_h,t.window[t.strstart+me-1]),n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=me-1,n!==0&&t.prev_length<t.max_lazy_match&&t.strstart-n<=t.w_size-lr&&(t.match_length=kv(t,n),t.match_length<=5&&(t.strategy===jR||t.match_length===me&&t.strstart-t.match_start>4096)&&(t.match_length=me-1)),t.prev_length>=me&&t.match_length<=t.prev_length){i=t.strstart+t.lookahead-me,r=pi(t,t.strstart-1-t.prev_match,t.prev_length-me),t.lookahead-=t.prev_length-1,t.prev_length-=2;do++t.strstart<=i&&(t.ins_h=wi(t,t.ins_h,t.window[t.strstart+me-1]),n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart);while(--t.prev_length!==0);if(t.match_available=0,t.match_length=me-1,t.strstart++,r&&(nn(t,!1),t.strm.avail_out===0))return Ft}else if(t.match_available){if(r=pi(t,0,t.window[t.strstart-1]),r&&nn(t,!1),t.strstart++,t.lookahead--,t.strm.avail_out===0)return Ft}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(r=pi(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<me-1?t.strstart:me-1,e===pn?(nn(t,!0),t.strm.avail_out===0?wa:Io):t.sym_next&&(nn(t,!1),t.strm.avail_out===0)?Ft:Do},r5=(t,e)=>{let n,r,i,a;const o=t.window;for(;;){if(t.lookahead<=bi){if(Mo(t),t.lookahead<=bi&&e===mi)return Ft;if(t.lookahead===0)break}if(t.match_length=0,t.lookahead>=me&&t.strstart>0&&(i=t.strstart-1,r=o[i],r===o[++i]&&r===o[++i]&&r===o[++i])){a=t.strstart+bi;do;while(r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&i<a);t.match_length=bi-(a-i),t.match_length>t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=me?(n=pi(t,1,t.match_length-me),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(n=pi(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),n&&(nn(t,!1),t.strm.avail_out===0))return Ft}return t.insert=0,e===pn?(nn(t,!0),t.strm.avail_out===0?wa:Io):t.sym_next&&(nn(t,!1),t.strm.avail_out===0)?Ft:Do},i5=(t,e)=>{let n;for(;;){if(t.lookahead===0&&(Mo(t),t.lookahead===0)){if(e===mi)return Ft;break}if(t.match_length=0,n=pi(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,n&&(nn(t,!1),t.strm.avail_out===0))return Ft}return t.insert=0,e===pn?(nn(t,!0),t.strm.avail_out===0?wa:Io):t.sym_next&&(nn(t,!1),t.strm.avail_out===0)?Ft:Do};function cr(t,e,n,r,i){this.good_length=t,this.max_lazy=e,this.nice_length=n,this.max_chain=r,this.func=i}const Lu=[new cr(0,0,0,0,Bv),new cr(4,4,8,4,Eg),new cr(4,5,16,8,Eg),new cr(4,6,32,32,Eg),new cr(4,4,16,16,To),new cr(8,16,32,32,To),new cr(8,16,128,128,To),new cr(8,32,128,256,To),new cr(32,128,258,1024,To),new cr(32,258,258,4096,To)],a5=t=>{t.window_size=2*t.w_size,yi(t.head),t.max_lazy_match=Lu[t.level].max_lazy,t.good_match=Lu[t.level].good_length,t.nice_match=Lu[t.level].nice_length,t.max_chain_length=Lu[t.level].max_chain,t.strstart=0,t.block_start=0,t.lookahead=0,t.insert=0,t.match_length=t.prev_length=me-1,t.match_available=0,t.ins_h=0};function o5(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=fc,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(KR*2),this.dyn_dtree=new Uint16Array((2*XR+1)*2),this.bl_tree=new Uint16Array((2*$R+1)*2),yi(this.dyn_ltree),yi(this.dyn_dtree),yi(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(JR+1),this.heap=new Uint16Array(2*mg+1),yi(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*mg+1),yi(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const Ru=t=>{if(!t)return 1;const e=t.state;return!e||e.strm!==t||e.status!==Co&&e.status!==bg&&e.status!==yg&&e.status!==wg&&e.status!==xg&&e.status!==vg&&e.status!==ya&&e.status!==ku?1:0},Lv=t=>{if(Ru(t))return xa(t,fr);t.total_in=t.total_out=0,t.data_type=VR;const e=t.state;return e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap===2?bg:e.wrap?Co:ya,t.adler=e.wrap===2?0:1,e.last_flush=-2,BR(e),wt},Rv=t=>{const e=Lv(t);return e===wt&&a5(t.state),e},s5=(t,e)=>Ru(t)||t.state.wrap!==2?fr:(t.state.gzhead=e,wt),Ov=(t,e,n,r,i,a)=>{if(!t)return fr;let o=1;if(e===UR&&(e=6),r<0?(o=0,r=-r):r>15&&(o=2,r-=16),i<1||i>qR||n!==fc||r<8||r>15||e<0||e>9||a<0||a>HR||r===8&&o!==1)return xa(t,fr);r===8&&(r=9);const s=new o5;return t.state=s,s.strm=t,s.status=Co,s.wrap=o,s.gzhead=null,s.w_bits=r,s.w_size=1<<s.w_bits,s.w_mask=s.w_size-1,s.hash_bits=i+7,s.hash_size=1<<s.hash_bits,s.hash_mask=s.hash_size-1,s.hash_shift=~~((s.hash_bits+me-1)/me),s.window=new Uint8Array(s.w_size*2),s.head=new Uint16Array(s.hash_size),s.prev=new Uint16Array(s.w_size),s.lit_bufsize=1<<i+6,s.pending_buf_size=s.lit_bufsize*4,s.pending_buf=new Uint8Array(s.pending_buf_size),s.sym_buf=s.lit_bufsize,s.sym_end=(s.lit_bufsize-1)*3,s.level=e,s.strategy=a,s.method=n,Rv(t)},u5=(t,e)=>Ov(t,e,fc,ZR,YR,QR),f5=(t,e)=>{if(Ru(t)||e>Tv||e<0)return t?xa(t,fr):fr;const n=t.state;if(!t.output||t.avail_in!==0&&!t.input||n.status===ku&&e!==pn)return xa(t,t.avail_out===0?pg:fr);const r=n.last_flush;if(n.last_flush=e,n.pending!==0){if(tn(t),t.avail_out===0)return n.last_flush=-1,wt}else if(t.avail_in===0&&Fv(e)<=Fv(r)&&e!==pn)return xa(t,pg);if(n.status===ku&&t.avail_in!==0)return xa(t,pg);if(n.status===Co&&n.wrap===0&&(n.status=ya),n.status===Co){let i=fc+(n.w_bits-8<<4)<<8,a=-1;if(n.strategy>=uc||n.level<2?a=0:n.level<6?a=1:n.level===6?a=2:a=3,i|=a<<6,n.strstart!==0&&(i|=e5),i+=31-i%31,Bu(n,i),n.strstart!==0&&(Bu(n,t.adler>>>16),Bu(n,t.adler&65535)),t.adler=1,n.status=ya,tn(t),n.pending!==0)return n.last_flush=-1,wt}if(n.status===bg){if(t.adler=0,_e(n,31),_e(n,139),_e(n,8),n.gzhead)_e(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),_e(n,n.gzhead.time&255),_e(n,n.gzhead.time>>8&255),_e(n,n.gzhead.time>>16&255),_e(n,n.gzhead.time>>24&255),_e(n,n.level===9?2:n.strategy>=uc||n.level<2?4:0),_e(n,n.gzhead.os&255),n.gzhead.extra&&n.gzhead.extra.length&&(_e(n,n.gzhead.extra.length&255),_e(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(t.adler=gt(t.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=yg;else if(_e(n,0),_e(n,0),_e(n,0),_e(n,0),_e(n,0),_e(n,n.level===9?2:n.strategy>=uc||n.level<2?4:0),_e(n,t5),n.status=ya,tn(t),n.pending!==0)return n.last_flush=-1,wt}if(n.status===yg){if(n.gzhead.extra){let i=n.pending,a=(n.gzhead.extra.length&65535)-n.gzindex;for(;n.pending+a>n.pending_buf_size;){let s=n.pending_buf_size-n.pending;if(n.pending_buf.set(n.gzhead.extra.subarray(n.gzindex,n.gzindex+s),n.pending),n.pending=n.pending_buf_size,n.gzhead.hcrc&&n.pending>i&&(t.adler=gt(t.adler,n.pending_buf,n.pending-i,i)),n.gzindex+=s,tn(t),n.pending!==0)return n.last_flush=-1,wt;i=0,a-=s}let o=new Uint8Array(n.gzhead.extra);n.pending_buf.set(o.subarray(n.gzindex,n.gzindex+a),n.pending),n.pending+=a,n.gzhead.hcrc&&n.pending>i&&(t.adler=gt(t.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=wg}if(n.status===wg){if(n.gzhead.name){let i=n.pending,a;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>i&&(t.adler=gt(t.adler,n.pending_buf,n.pending-i,i)),tn(t),n.pending!==0)return n.last_flush=-1,wt;i=0}n.gzindex<n.gzhead.name.length?a=n.gzhead.name.charCodeAt(n.gzindex++)&255:a=0,_e(n,a)}while(a!==0);n.gzhead.hcrc&&n.pending>i&&(t.adler=gt(t.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=xg}if(n.status===xg){if(n.gzhead.comment){let i=n.pending,a;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>i&&(t.adler=gt(t.adler,n.pending_buf,n.pending-i,i)),tn(t),n.pending!==0)return n.last_flush=-1,wt;i=0}n.gzindex<n.gzhead.comment.length?a=n.gzhead.comment.charCodeAt(n.gzindex++)&255:a=0,_e(n,a)}while(a!==0);n.gzhead.hcrc&&n.pending>i&&(t.adler=gt(t.adler,n.pending_buf,n.pending-i,i))}n.status=vg}if(n.status===vg){if(n.gzhead.hcrc){if(n.pending+2>n.pending_buf_size&&(tn(t),n.pending!==0))return n.last_flush=-1,wt;_e(n,t.adler&255),_e(n,t.adler>>8&255),t.adler=0}if(n.status=ya,tn(t),n.pending!==0)return n.last_flush=-1,wt}if(t.avail_in!==0||n.lookahead!==0||e!==mi&&n.status!==ku){let i=n.level===0?Bv(n,e):n.strategy===uc?i5(n,e):n.strategy===GR?r5(n,e):Lu[n.level].func(n,e);if((i===wa||i===Io)&&(n.status=ku),i===Ft||i===wa)return t.avail_out===0&&(n.last_flush=-1),wt;if(i===Do&&(e===OR?RR(n):e!==Tv&&(gg(n,0,0,!1),e===zR&&(yi(n.head),n.lookahead===0&&(n.strstart=0,n.block_start=0,n.insert=0))),tn(t),t.avail_out===0))return n.last_flush=-1,wt}return e!==pn?wt:n.wrap<=0?Nv:(n.wrap===2?(_e(n,t.adler&255),_e(n,t.adler>>8&255),_e(n,t.adler>>16&255),_e(n,t.adler>>24&255),_e(n,t.total_in&255),_e(n,t.total_in>>8&255),_e(n,t.total_in>>16&255),_e(n,t.total_in>>24&255)):(Bu(n,t.adler>>>16),Bu(n,t.adler&65535)),tn(t),n.wrap>0&&(n.wrap=-n.wrap),n.pending!==0?wt:Nv)},l5=t=>{if(Ru(t))return fr;const e=t.state.status;return t.state=null,e===ya?xa(t,PR):wt},c5=(t,e)=>{let n=e.length;if(Ru(t))return fr;const r=t.state,i=r.wrap;if(i===2||i===1&&r.status!==Co||r.lookahead)return fr;if(i===1&&(t.adler=Nu(t.adler,e,n,0)),r.wrap=0,n>=r.w_size){i===0&&(yi(r.head),r.strstart=0,r.block_start=0,r.insert=0);let f=new Uint8Array(r.w_size);f.set(e.subarray(n-r.w_size,n),0),e=f,n=r.w_size}const a=t.avail_in,o=t.next_in,s=t.input;for(t.avail_in=n,t.next_in=0,t.input=e,Mo(r);r.lookahead>=me;){let f=r.strstart,u=r.lookahead-(me-1);do r.ins_h=wi(r,r.ins_h,r.window[f+me-1]),r.prev[f&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=f,f++;while(--u);r.strstart=f,r.lookahead=me-1,Mo(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=me-1,r.match_available=0,t.next_in=o,t.input=s,t.avail_in=a,r.wrap=i,wt};var h5=u5,d5=Ov,g5=Rv,p5=Lv,m5=s5,b5=f5,y5=l5,w5=c5,x5="pako deflate (from Nodeca project)",Ou={deflateInit:h5,deflateInit2:d5,deflateReset:g5,deflateResetKeep:p5,deflateSetHeader:m5,deflate:b5,deflateEnd:y5,deflateSetDictionary:w5,deflateInfo:x5};const v5=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var A5=function(t){const e=Array.prototype.slice.call(arguments,1);for(;e.length;){const n=e.shift();if(n){if(typeof n!="object")throw new TypeError(n+"must be non-object");for(const r in n)v5(n,r)&&(t[r]=n[r])}}return t},E5=t=>{let e=0;for(let r=0,i=t.length;r<i;r++)e+=t[r].length;const n=new Uint8Array(e);for(let r=0,i=0,a=t.length;r<a;r++){let o=t[r];n.set(o,i),i+=o.length}return n},lc={assign:A5,flattenChunks:E5};let zv=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{zv=!1}const zu=new Uint8Array(256);for(let t=0;t<256;t++)zu[t]=t>=252?6:t>=248?5:t>=240?4:t>=224?3:t>=192?2:1;zu[254]=zu[254]=1;var S5=t=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(t);let e,n,r,i,a,o=t.length,s=0;for(i=0;i<o;i++)n=t.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=t.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),s+=n<128?1:n<2048?2:n<65536?3:4;for(e=new Uint8Array(s),a=0,i=0;a<s;i++)n=t.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=t.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),n<128?e[a++]=n:n<2048?(e[a++]=192|n>>>6,e[a++]=128|n&63):n<65536?(e[a++]=224|n>>>12,e[a++]=128|n>>>6&63,e[a++]=128|n&63):(e[a++]=240|n>>>18,e[a++]=128|n>>>12&63,e[a++]=128|n>>>6&63,e[a++]=128|n&63);return e};const _5=(t,e)=>{if(e<65534&&t.subarray&&zv)return String.fromCharCode.apply(null,t.length===e?t:t.subarray(0,e));let n="";for(let r=0;r<e;r++)n+=String.fromCharCode(t[r]);return n};var C5=(t,e)=>{const n=e||t.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(t.subarray(0,e));let r,i;const a=new Array(n*2);for(i=0,r=0;r<n;){let o=t[r++];if(o<128){a[i++]=o;continue}let s=zu[o];if(s>4){a[i++]=65533,r+=s-1;continue}for(o&=s===2?31:s===3?15:7;s>1&&r<n;)o=o<<6|t[r++]&63,s--;if(s>1){a[i++]=65533;continue}o<65536?a[i++]=o:(o-=65536,a[i++]=55296|o>>10&1023,a[i++]=56320|o&1023)}return _5(a,i)},D5=(t,e)=>{e=e||t.length,e>t.length&&(e=t.length);let n=e-1;for(;n>=0&&(t[n]&192)===128;)n--;return n<0||n===0?e:n+zu[t[n]]>e?n:e},Pu={string2buf:S5,buf2string:C5,utf8border:D5};function I5(){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 Pv=I5;const Uv=Object.prototype.toString,{Z_NO_FLUSH:M5,Z_SYNC_FLUSH:T5,Z_FULL_FLUSH:N5,Z_FINISH:F5,Z_OK:cc,Z_STREAM_END:k5,Z_DEFAULT_COMPRESSION:B5,Z_DEFAULT_STRATEGY:L5,Z_DEFLATED:R5}=Fu;function Sg(t){this.options=lc.assign({level:B5,method:R5,chunkSize:16384,windowBits:15,memLevel:8,strategy:L5},t||{});let e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Pv,this.strm.avail_out=0;let n=Ou.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(n!==cc)throw new Error(_o[n]);if(e.header&&Ou.deflateSetHeader(this.strm,e.header),e.dictionary){let r;if(typeof e.dictionary=="string"?r=Pu.string2buf(e.dictionary):Uv.call(e.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(e.dictionary):r=e.dictionary,n=Ou.deflateSetDictionary(this.strm,r),n!==cc)throw new Error(_o[n]);this._dict_set=!0}}Sg.prototype.push=function(t,e){const n=this.strm,r=this.options.chunkSize;let i,a;if(this.ended)return!1;for(e===~~e?a=e:a=e===!0?F5:M5,typeof t=="string"?n.input=Pu.string2buf(t):Uv.call(t)==="[object ArrayBuffer]"?n.input=new Uint8Array(t):n.input=t,n.next_in=0,n.avail_in=n.input.length;;){if(n.avail_out===0&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),(a===T5||a===N5)&&n.avail_out<=6){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(i=Ou.deflate(n,a),i===k5)return n.next_out>0&&this.onData(n.output.subarray(0,n.next_out)),i=Ou.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===cc;if(n.avail_out===0){this.onData(n.output);continue}if(a>0&&n.next_out>0){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(n.avail_in===0)break}return!0},Sg.prototype.onData=function(t){this.chunks.push(t)},Sg.prototype.onEnd=function(t){t===cc&&(this.result=lc.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};const hc=16209,O5=16191;var z5=function(e,n){let r,i,a,o,s,f,u,l,c,h,d,g,b,y,w,E,_,D,T,N,M,R,C,B;const L=e.state;r=e.next_in,C=e.input,i=r+(e.avail_in-5),a=e.next_out,B=e.output,o=a-(n-e.avail_out),s=a+(e.avail_out-257),f=L.dmax,u=L.wsize,l=L.whave,c=L.wnext,h=L.window,d=L.hold,g=L.bits,b=L.lencode,y=L.distcode,w=(1<<L.lenbits)-1,E=(1<<L.distbits)-1;e:do{g<15&&(d+=C[r++]<<g,g+=8,d+=C[r++]<<g,g+=8),_=b[d&w];t:for(;;){if(D=_>>>24,d>>>=D,g-=D,D=_>>>16&255,D===0)B[a++]=_&65535;else if(D&16){T=_&65535,D&=15,D&&(g<D&&(d+=C[r++]<<g,g+=8),T+=d&(1<<D)-1,d>>>=D,g-=D),g<15&&(d+=C[r++]<<g,g+=8,d+=C[r++]<<g,g+=8),_=y[d&E];n:for(;;){if(D=_>>>24,d>>>=D,g-=D,D=_>>>16&255,D&16){if(N=_&65535,D&=15,g<D&&(d+=C[r++]<<g,g+=8,g<D&&(d+=C[r++]<<g,g+=8)),N+=d&(1<<D)-1,N>f){e.msg="invalid distance too far back",L.mode=hc;break e}if(d>>>=D,g-=D,D=a-o,N>D){if(D=N-D,D>l&&L.sane){e.msg="invalid distance too far back",L.mode=hc;break e}if(M=0,R=h,c===0){if(M+=u-D,D<T){T-=D;do B[a++]=h[M++];while(--D);M=a-N,R=B}}else if(c<D){if(M+=u+c-D,D-=c,D<T){T-=D;do B[a++]=h[M++];while(--D);if(M=0,c<T){D=c,T-=D;do B[a++]=h[M++];while(--D);M=a-N,R=B}}}else if(M+=c-D,D<T){T-=D;do B[a++]=h[M++];while(--D);M=a-N,R=B}for(;T>2;)B[a++]=R[M++],B[a++]=R[M++],B[a++]=R[M++],T-=3;T&&(B[a++]=R[M++],T>1&&(B[a++]=R[M++]))}else{M=a-N;do B[a++]=B[M++],B[a++]=B[M++],B[a++]=B[M++],T-=3;while(T>2);T&&(B[a++]=B[M++],T>1&&(B[a++]=B[M++]))}}else if(D&64){e.msg="invalid distance code",L.mode=hc;break e}else{_=y[(_&65535)+(d&(1<<D)-1)];continue n}break}}else if(D&64)if(D&32){L.mode=O5;break e}else{e.msg="invalid literal/length code",L.mode=hc;break e}else{_=b[(_&65535)+(d&(1<<D)-1)];continue t}break}}while(r<i&&a<s);T=g>>3,r-=T,g-=T<<3,d&=(1<<g)-1,e.next_in=r,e.next_out=a,e.avail_in=r<i?5+(i-r):5-(r-i),e.avail_out=a<s?257+(s-a):257-(a-s),L.hold=d,L.bits=g};const No=15,jv=852,Gv=592,Hv=0,_g=1,Qv=2,P5=new Uint16Array([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]),U5=new Uint8Array([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]),j5=new Uint16Array([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]),G5=new Uint8Array([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]);var Uu=(t,e,n,r,i,a,o,s)=>{const f=s.bits;let u=0,l=0,c=0,h=0,d=0,g=0,b=0,y=0,w=0,E=0,_,D,T,N,M,R=null,C;const B=new Uint16Array(No+1),L=new Uint16Array(No+1);let ee=null,ne,J,be;for(u=0;u<=No;u++)B[u]=0;for(l=0;l<r;l++)B[e[n+l]]++;for(d=f,h=No;h>=1&&B[h]===0;h--);if(d>h&&(d=h),h===0)return i[a++]=1<<24|64<<16|0,i[a++]=1<<24|64<<16|0,s.bits=1,0;for(c=1;c<h&&B[c]===0;c++);for(d<c&&(d=c),y=1,u=1;u<=No;u++)if(y<<=1,y-=B[u],y<0)return-1;if(y>0&&(t===Hv||h!==1))return-1;for(L[1]=0,u=1;u<No;u++)L[u+1]=L[u]+B[u];for(l=0;l<r;l++)e[n+l]!==0&&(o[L[e[n+l]]++]=l);if(t===Hv?(R=ee=o,C=20):t===_g?(R=P5,ee=U5,C=257):(R=j5,ee=G5,C=0),E=0,l=0,u=c,M=a,g=d,b=0,T=-1,w=1<<d,N=w-1,t===_g&&w>jv||t===Qv&&w>Gv)return 1;for(;;){ne=u-b,o[l]+1<C?(J=0,be=o[l]):o[l]>=C?(J=ee[o[l]-C],be=R[o[l]-C]):(J=32+64,be=0),_=1<<u-b,D=1<<g,c=D;do D-=_,i[M+(E>>b)+D]=ne<<24|J<<16|be|0;while(D!==0);for(_=1<<u-1;E&_;)_>>=1;if(_!==0?(E&=_-1,E+=_):E=0,l++,--B[u]===0){if(u===h)break;u=e[n+o[l]]}if(u>d&&(E&N)!==T){for(b===0&&(b=d),M+=c,g=u-b,y=1<<g;g+b<h&&(y-=B[g+b],!(y<=0));)g++,y<<=1;if(w+=1<<g,t===_g&&w>jv||t===Qv&&w>Gv)return 1;T=E&N,i[T]=d<<24|g<<16|M-a|0}}return E!==0&&(i[M+E]=u-b<<24|64<<16|0),s.bits=d,0};const H5=0,Vv=1,qv=2,{Z_FINISH:Zv,Z_BLOCK:Q5,Z_TREES:dc,Z_OK:va,Z_STREAM_END:V5,Z_NEED_DICT:q5,Z_STREAM_ERROR:mn,Z_DATA_ERROR:Yv,Z_MEM_ERROR:Wv,Z_BUF_ERROR:Z5,Z_DEFLATED:Xv}=Fu,gc=16180,$v=16181,Kv=16182,Jv=16183,eA=16184,tA=16185,nA=16186,rA=16187,iA=16188,aA=16189,pc=16190,Tr=16191,Cg=16192,oA=16193,Dg=16194,sA=16195,uA=16196,fA=16197,lA=16198,mc=16199,bc=16200,cA=16201,hA=16202,dA=16203,gA=16204,pA=16205,Ig=16206,mA=16207,bA=16208,Ze=16209,yA=16210,wA=16211,Y5=852,W5=592,X5=15,xA=t=>(t>>>24&255)+(t>>>8&65280)+((t&65280)<<8)+((t&255)<<24);function $5(){this.strm=null,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=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const Aa=t=>{if(!t)return 1;const e=t.state;return!e||e.strm!==t||e.mode<gc||e.mode>wA?1:0},vA=t=>{if(Aa(t))return mn;const e=t.state;return t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=e.wrap&1),e.mode=gc,e.last=0,e.havedict=0,e.flags=-1,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(Y5),e.distcode=e.distdyn=new Int32Array(W5),e.sane=1,e.back=-1,va},AA=t=>{if(Aa(t))return mn;const e=t.state;return e.wsize=0,e.whave=0,e.wnext=0,vA(t)},EA=(t,e)=>{let n;if(Aa(t))return mn;const r=t.state;return e<0?(n=0,e=-e):(n=(e>>4)+5,e<48&&(e&=15)),e&&(e<8||e>15)?mn:(r.window!==null&&r.wbits!==e&&(r.window=null),r.wrap=n,r.wbits=e,AA(t))},SA=(t,e)=>{if(!t)return mn;const n=new $5;t.state=n,n.strm=t,n.window=null,n.mode=gc;const r=EA(t,e);return r!==va&&(t.state=null),r},K5=t=>SA(t,X5);let _A=!0,Mg,Tg;const J5=t=>{if(_A){Mg=new Int32Array(512),Tg=new Int32Array(32);let e=0;for(;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(Uu(Vv,t.lens,0,288,Mg,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;Uu(qv,t.lens,0,32,Tg,0,t.work,{bits:5}),_A=!1}t.lencode=Mg,t.lenbits=9,t.distcode=Tg,t.distbits=5},CA=(t,e,n,r)=>{let i;const a=t.state;return a.window===null&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new Uint8Array(a.wsize)),r>=a.wsize?(a.window.set(e.subarray(n-a.wsize,n),0),a.wnext=0,a.whave=a.wsize):(i=a.wsize-a.wnext,i>r&&(i=r),a.window.set(e.subarray(n-r,n-r+i),a.wnext),r-=i,r?(a.window.set(e.subarray(n-r,n),0),a.wnext=r,a.whave=a.wsize):(a.wnext+=i,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=i))),0},eO=(t,e)=>{let n,r,i,a,o,s,f,u,l,c,h,d,g,b,y=0,w,E,_,D,T,N,M,R;const C=new Uint8Array(4);let B,L;const ee=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(Aa(t)||!t.output||!t.input&&t.avail_in!==0)return mn;n=t.state,n.mode===Tr&&(n.mode=Cg),o=t.next_out,i=t.output,f=t.avail_out,a=t.next_in,r=t.input,s=t.avail_in,u=n.hold,l=n.bits,c=s,h=f,R=va;e:for(;;)switch(n.mode){case gc:if(n.wrap===0){n.mode=Cg;break}for(;l<16;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(n.wrap&2&&u===35615){n.wbits===0&&(n.wbits=15),n.check=0,C[0]=u&255,C[1]=u>>>8&255,n.check=gt(n.check,C,2,0),u=0,l=0,n.mode=$v;break}if(n.head&&(n.head.done=!1),!(n.wrap&1)||(((u&255)<<8)+(u>>8))%31){t.msg="incorrect header check",n.mode=Ze;break}if((u&15)!==Xv){t.msg="unknown compression method",n.mode=Ze;break}if(u>>>=4,l-=4,M=(u&15)+8,n.wbits===0&&(n.wbits=M),M>15||M>n.wbits){t.msg="invalid window size",n.mode=Ze;break}n.dmax=1<<n.wbits,n.flags=0,t.adler=n.check=1,n.mode=u&512?aA:Tr,u=0,l=0;break;case $v:for(;l<16;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(n.flags=u,(n.flags&255)!==Xv){t.msg="unknown compression method",n.mode=Ze;break}if(n.flags&57344){t.msg="unknown header flags set",n.mode=Ze;break}n.head&&(n.head.text=u>>8&1),n.flags&512&&n.wrap&4&&(C[0]=u&255,C[1]=u>>>8&255,n.check=gt(n.check,C,2,0)),u=0,l=0,n.mode=Kv;case Kv:for(;l<32;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}n.head&&(n.head.time=u),n.flags&512&&n.wrap&4&&(C[0]=u&255,C[1]=u>>>8&255,C[2]=u>>>16&255,C[3]=u>>>24&255,n.check=gt(n.check,C,4,0)),u=0,l=0,n.mode=Jv;case Jv:for(;l<16;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}n.head&&(n.head.xflags=u&255,n.head.os=u>>8),n.flags&512&&n.wrap&4&&(C[0]=u&255,C[1]=u>>>8&255,n.check=gt(n.check,C,2,0)),u=0,l=0,n.mode=eA;case eA:if(n.flags&1024){for(;l<16;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}n.length=u,n.head&&(n.head.extra_len=u),n.flags&512&&n.wrap&4&&(C[0]=u&255,C[1]=u>>>8&255,n.check=gt(n.check,C,2,0)),u=0,l=0}else n.head&&(n.head.extra=null);n.mode=tA;case tA:if(n.flags&1024&&(d=n.length,d>s&&(d=s),d&&(n.head&&(M=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Uint8Array(n.head.extra_len)),n.head.extra.set(r.subarray(a,a+d),M)),n.flags&512&&n.wrap&4&&(n.check=gt(n.check,r,d,a)),s-=d,a+=d,n.length-=d),n.length))break e;n.length=0,n.mode=nA;case nA:if(n.flags&2048){if(s===0)break e;d=0;do M=r[a+d++],n.head&&M&&n.length<65536&&(n.head.name+=String.fromCharCode(M));while(M&&d<s);if(n.flags&512&&n.wrap&4&&(n.check=gt(n.check,r,d,a)),s-=d,a+=d,M)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=rA;case rA:if(n.flags&4096){if(s===0)break e;d=0;do M=r[a+d++],n.head&&M&&n.length<65536&&(n.head.comment+=String.fromCharCode(M));while(M&&d<s);if(n.flags&512&&n.wrap&4&&(n.check=gt(n.check,r,d,a)),s-=d,a+=d,M)break e}else n.head&&(n.head.comment=null);n.mode=iA;case iA:if(n.flags&512){for(;l<16;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(n.wrap&4&&u!==(n.check&65535)){t.msg="header crc mismatch",n.mode=Ze;break}u=0,l=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),t.adler=n.check=0,n.mode=Tr;break;case aA:for(;l<32;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}t.adler=n.check=xA(u),u=0,l=0,n.mode=pc;case pc:if(n.havedict===0)return t.next_out=o,t.avail_out=f,t.next_in=a,t.avail_in=s,n.hold=u,n.bits=l,q5;t.adler=n.check=1,n.mode=Tr;case Tr:if(e===Q5||e===dc)break e;case Cg:if(n.last){u>>>=l&7,l-=l&7,n.mode=Ig;break}for(;l<3;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}switch(n.last=u&1,u>>>=1,l-=1,u&3){case 0:n.mode=oA;break;case 1:if(J5(n),n.mode=mc,e===dc){u>>>=2,l-=2;break e}break;case 2:n.mode=uA;break;case 3:t.msg="invalid block type",n.mode=Ze}u>>>=2,l-=2;break;case oA:for(u>>>=l&7,l-=l&7;l<32;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if((u&65535)!==(u>>>16^65535)){t.msg="invalid stored block lengths",n.mode=Ze;break}if(n.length=u&65535,u=0,l=0,n.mode=Dg,e===dc)break e;case Dg:n.mode=sA;case sA:if(d=n.length,d){if(d>s&&(d=s),d>f&&(d=f),d===0)break e;i.set(r.subarray(a,a+d),o),s-=d,a+=d,f-=d,o+=d,n.length-=d;break}n.mode=Tr;break;case uA:for(;l<14;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(n.nlen=(u&31)+257,u>>>=5,l-=5,n.ndist=(u&31)+1,u>>>=5,l-=5,n.ncode=(u&15)+4,u>>>=4,l-=4,n.nlen>286||n.ndist>30){t.msg="too many length or distance symbols",n.mode=Ze;break}n.have=0,n.mode=fA;case fA:for(;n.have<n.ncode;){for(;l<3;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}n.lens[ee[n.have++]]=u&7,u>>>=3,l-=3}for(;n.have<19;)n.lens[ee[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,B={bits:n.lenbits},R=Uu(H5,n.lens,0,19,n.lencode,0,n.work,B),n.lenbits=B.bits,R){t.msg="invalid code lengths set",n.mode=Ze;break}n.have=0,n.mode=lA;case lA:for(;n.have<n.nlen+n.ndist;){for(;y=n.lencode[u&(1<<n.lenbits)-1],w=y>>>24,E=y>>>16&255,_=y&65535,!(w<=l);){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(_<16)u>>>=w,l-=w,n.lens[n.have++]=_;else{if(_===16){for(L=w+2;l<L;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(u>>>=w,l-=w,n.have===0){t.msg="invalid bit length repeat",n.mode=Ze;break}M=n.lens[n.have-1],d=3+(u&3),u>>>=2,l-=2}else if(_===17){for(L=w+3;l<L;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}u>>>=w,l-=w,M=0,d=3+(u&7),u>>>=3,l-=3}else{for(L=w+7;l<L;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}u>>>=w,l-=w,M=0,d=11+(u&127),u>>>=7,l-=7}if(n.have+d>n.nlen+n.ndist){t.msg="invalid bit length repeat",n.mode=Ze;break}for(;d--;)n.lens[n.have++]=M}}if(n.mode===Ze)break;if(n.lens[256]===0){t.msg="invalid code -- missing end-of-block",n.mode=Ze;break}if(n.lenbits=9,B={bits:n.lenbits},R=Uu(Vv,n.lens,0,n.nlen,n.lencode,0,n.work,B),n.lenbits=B.bits,R){t.msg="invalid literal/lengths set",n.mode=Ze;break}if(n.distbits=6,n.distcode=n.distdyn,B={bits:n.distbits},R=Uu(qv,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,B),n.distbits=B.bits,R){t.msg="invalid distances set",n.mode=Ze;break}if(n.mode=mc,e===dc)break e;case mc:n.mode=bc;case bc:if(s>=6&&f>=258){t.next_out=o,t.avail_out=f,t.next_in=a,t.avail_in=s,n.hold=u,n.bits=l,z5(t,h),o=t.next_out,i=t.output,f=t.avail_out,a=t.next_in,r=t.input,s=t.avail_in,u=n.hold,l=n.bits,n.mode===Tr&&(n.back=-1);break}for(n.back=0;y=n.lencode[u&(1<<n.lenbits)-1],w=y>>>24,E=y>>>16&255,_=y&65535,!(w<=l);){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(E&&!(E&240)){for(D=w,T=E,N=_;y=n.lencode[N+((u&(1<<D+T)-1)>>D)],w=y>>>24,E=y>>>16&255,_=y&65535,!(D+w<=l);){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}u>>>=D,l-=D,n.back+=D}if(u>>>=w,l-=w,n.back+=w,n.length=_,E===0){n.mode=pA;break}if(E&32){n.back=-1,n.mode=Tr;break}if(E&64){t.msg="invalid literal/length code",n.mode=Ze;break}n.extra=E&15,n.mode=cA;case cA:if(n.extra){for(L=n.extra;l<L;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}n.length+=u&(1<<n.extra)-1,u>>>=n.extra,l-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=hA;case hA:for(;y=n.distcode[u&(1<<n.distbits)-1],w=y>>>24,E=y>>>16&255,_=y&65535,!(w<=l);){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(!(E&240)){for(D=w,T=E,N=_;y=n.distcode[N+((u&(1<<D+T)-1)>>D)],w=y>>>24,E=y>>>16&255,_=y&65535,!(D+w<=l);){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}u>>>=D,l-=D,n.back+=D}if(u>>>=w,l-=w,n.back+=w,E&64){t.msg="invalid distance code",n.mode=Ze;break}n.offset=_,n.extra=E&15,n.mode=dA;case dA:if(n.extra){for(L=n.extra;l<L;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}n.offset+=u&(1<<n.extra)-1,u>>>=n.extra,l-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){t.msg="invalid distance too far back",n.mode=Ze;break}n.mode=gA;case gA:if(f===0)break e;if(d=h-f,n.offset>d){if(d=n.offset-d,d>n.whave&&n.sane){t.msg="invalid distance too far back",n.mode=Ze;break}d>n.wnext?(d-=n.wnext,g=n.wsize-d):g=n.wnext-d,d>n.length&&(d=n.length),b=n.window}else b=i,g=o-n.offset,d=n.length;d>f&&(d=f),f-=d,n.length-=d;do i[o++]=b[g++];while(--d);n.length===0&&(n.mode=bc);break;case pA:if(f===0)break e;i[o++]=n.length,f--,n.mode=bc;break;case Ig:if(n.wrap){for(;l<32;){if(s===0)break e;s--,u|=r[a++]<<l,l+=8}if(h-=f,t.total_out+=h,n.total+=h,n.wrap&4&&h&&(t.adler=n.check=n.flags?gt(n.check,i,h,o-h):Nu(n.check,i,h,o-h)),h=f,n.wrap&4&&(n.flags?u:xA(u))!==n.check){t.msg="incorrect data check",n.mode=Ze;break}u=0,l=0}n.mode=mA;case mA:if(n.wrap&&n.flags){for(;l<32;){if(s===0)break e;s--,u+=r[a++]<<l,l+=8}if(n.wrap&4&&u!==(n.total&4294967295)){t.msg="incorrect length check",n.mode=Ze;break}u=0,l=0}n.mode=bA;case bA:R=V5;break e;case Ze:R=Yv;break e;case yA:return Wv;case wA:default:return mn}return t.next_out=o,t.avail_out=f,t.next_in=a,t.avail_in=s,n.hold=u,n.bits=l,(n.wsize||h!==t.avail_out&&n.mode<Ze&&(n.mode<Ig||e!==Zv))&&CA(t,t.output,t.next_out,h-t.avail_out),c-=t.avail_in,h-=t.avail_out,t.total_in+=c,t.total_out+=h,n.total+=h,n.wrap&4&&h&&(t.adler=n.check=n.flags?gt(n.check,i,h,t.next_out-h):Nu(n.check,i,h,t.next_out-h)),t.data_type=n.bits+(n.last?64:0)+(n.mode===Tr?128:0)+(n.mode===mc||n.mode===Dg?256:0),(c===0&&h===0||e===Zv)&&R===va&&(R=Z5),R},tO=t=>{if(Aa(t))return mn;let e=t.state;return e.window&&(e.window=null),t.state=null,va},nO=(t,e)=>{if(Aa(t))return mn;const n=t.state;return n.wrap&2?(n.head=e,e.done=!1,va):mn},rO=(t,e)=>{const n=e.length;let r,i,a;return Aa(t)||(r=t.state,r.wrap!==0&&r.mode!==pc)?mn:r.mode===pc&&(i=1,i=Nu(i,e,n,0),i!==r.check)?Yv:(a=CA(t,e,n,n),a?(r.mode=yA,Wv):(r.havedict=1,va))};var iO=AA,aO=EA,oO=vA,sO=K5,uO=SA,fO=eO,lO=tO,cO=nO,hO=rO,dO="pako inflate (from Nodeca project)",Nr={inflateReset:iO,inflateReset2:aO,inflateResetKeep:oO,inflateInit:sO,inflateInit2:uO,inflate:fO,inflateEnd:lO,inflateGetHeader:cO,inflateSetDictionary:hO,inflateInfo:dO};function gO(){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}var pO=gO;const DA=Object.prototype.toString,{Z_NO_FLUSH:mO,Z_FINISH:bO,Z_OK:ju,Z_STREAM_END:Ng,Z_NEED_DICT:Fg,Z_STREAM_ERROR:yO,Z_DATA_ERROR:IA,Z_MEM_ERROR:wO}=Fu;function Gu(t){this.options=lc.assign({chunkSize:1024*64,windowBits:15,to:""},t||{});const e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,e.windowBits===0&&(e.windowBits=-15)),e.windowBits>=0&&e.windowBits<16&&!(t&&t.windowBits)&&(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&(e.windowBits&15||(e.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Pv,this.strm.avail_out=0;let n=Nr.inflateInit2(this.strm,e.windowBits);if(n!==ju)throw new Error(_o[n]);if(this.header=new pO,Nr.inflateGetHeader(this.strm,this.header),e.dictionary&&(typeof e.dictionary=="string"?e.dictionary=Pu.string2buf(e.dictionary):DA.call(e.dictionary)==="[object ArrayBuffer]"&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(n=Nr.inflateSetDictionary(this.strm,e.dictionary),n!==ju)))throw new Error(_o[n])}Gu.prototype.push=function(t,e){const n=this.strm,r=this.options.chunkSize,i=this.options.dictionary;let a,o,s;if(this.ended)return!1;for(e===~~e?o=e:o=e===!0?bO:mO,DA.call(t)==="[object ArrayBuffer]"?n.input=new Uint8Array(t):n.input=t,n.next_in=0,n.avail_in=n.input.length;;){for(n.avail_out===0&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),a=Nr.inflate(n,o),a===Fg&&i&&(a=Nr.inflateSetDictionary(n,i),a===ju?a=Nr.inflate(n,o):a===IA&&(a=Fg));n.avail_in>0&&a===Ng&&n.state.wrap>0&&t[n.next_in]!==0;)Nr.inflateReset(n),a=Nr.inflate(n,o);switch(a){case yO:case IA:case Fg:case wO:return this.onEnd(a),this.ended=!0,!1}if(s=n.avail_out,n.next_out&&(n.avail_out===0||a===Ng))if(this.options.to==="string"){let f=Pu.utf8border(n.output,n.next_out),u=n.next_out-f,l=Pu.buf2string(n.output,f);n.next_out=u,n.avail_out=r-u,u&&n.output.set(n.output.subarray(f,f+u),0),this.onData(l)}else this.onData(n.output.length===n.next_out?n.output:n.output.subarray(0,n.next_out));if(!(a===ju&&s===0)){if(a===Ng)return a=Nr.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,!0;if(n.avail_in===0)break}}return!0},Gu.prototype.onData=function(t){this.chunks.push(t)},Gu.prototype.onEnd=function(t){t===ju&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=lc.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};function kg(t,e){const n=new Gu(e);if(n.push(t),n.err)throw n.msg||_o[n.err];return n.result}function xO(t,e){return e=e||{},e.raw=!0,kg(t,e)}var vO=Gu,AO=kg,EO=xO,SO=kg,_O=Fu,CO={Inflate:vO,inflate:AO,inflateRaw:EO,ungzip:SO,constants:_O};const{Inflate:$7,inflate:K7,inflateRaw:DO,ungzip:J7}=CO;var IO=DO;function MO(t){return IO(t.subarray(2))}let TO=class extends Error{constructor(e){super(e),this.code="ERR_ABORTED"}};function NO(t){t.sort((i,a)=>Number(i.offset)-Number(a.offset));const e=[];let n,r;for(const i of t)n&&r&&Number(i.offset)-r<=2e3?(n.length=BigInt(Number(n.length)+Number(i.length)-r+Number(i.offset)),n.blocks.push(i)):e.push(n={blocks:[i],length:i.length,offset:i.offset}),r=Number(n.offset)+Number(n.length);return e}function yc(t){if(t&&t.aborted)if(typeof DOMException>"u"){const e=new TO("aborted");throw e.code="ERR_ABORTED",e}else throw new DOMException("aborted","AbortError")}const FO=1,kO=2,BO=3;function Bg(t,e,n,r){return t<r&&e>=n}function LO(t){const e=t?"big":"little",n=new Me().endianess(e).uint32("chromId").uint32("start").uint32("end").uint32("validCnt").floatle("minScore").floatle("maxScore").floatle("sumData").floatle("sumSqData").saveOffset("offset"),r=new Me().endianess(e).uint8("isLeaf").skip(1).uint16("cnt").choice({tag:"isLeaf",choices:{1:new Me().endianess(e).array("blocksToFetch",{length:"cnt",type:new Me().endianess(e).uint32("startChrom").uint32("startBase").uint32("endChrom").uint32("endBase").uint64("blockOffset").uint64("blockSize").saveOffset("offset")}),0:new Me().array("recurOffsets",{length:"cnt",type:new Me().endianess(e).uint32("startChrom").uint32("startBase").uint32("endChrom").uint32("endBase").uint64("blockOffset").saveOffset("offset")})}}),i=new Me().endianess(e).uint32("chromId").int32("start").int32("end").string("rest",{zeroTerminated:!0}).saveOffset("offset");return{bigWigParser:new Me().endianess(e).skip(4).int32("blockStart").skip(4).uint32("itemStep").uint32("itemSpan").uint8("blockType").skip(1).uint16("itemCount").choice({tag:"blockType",choices:{[BO]:new Me().array("items",{length:"itemCount",type:new Me().floatle("score")}),[kO]:new Me().array("items",{length:"itemCount",type:new Me().endianess(e).int32("start").floatle("score")}),[FO]:new Me().array("items",{length:"itemCount",type:new Me().endianess(e).int32("start").int32("end").floatle("score")})}}),bigBedParser:i,summaryParser:n,leafParser:r}}class MA{constructor(e,n,r,i,a,o){if(this.bbi=e,this.refsByName=n,this.cirTreeOffset=r,this.isBigEndian=i,this.isCompressed=a,this.blockType=o,this.featureCache=new ac({cache:new rg({maxSize:1e3}),fill:async(f,u)=>{const l=Number(f.length),c=Number(f.offset),{buffer:h}=await this.bbi.read(bt.Buffer.alloc(l),0,l,c,{signal:u});return h}}),!(r>=0))throw new Error("invalid cirTreeOffset!");const s=LO(i);this.leafParser=s.leafParser,this.bigBedParser=s.bigBedParser}async readWigData(e,n,r,i,a){try{const{refsByName:o,bbi:s,cirTreeOffset:f,isBigEndian:u}=this,l=o[e];l===void 0&&i.complete();const c={chrId:l,start:n,end:r};this.cirTreePromise||(this.cirTreePromise=s.read(bt.Buffer.alloc(48),0,48,Number(f),a));const{buffer:h}=await this.cirTreePromise,d=u?h.readUInt32BE(4):h.readUInt32LE(4);let g=[],b=0;const y=(D,T,N)=>{try{const M=D.subarray(T),R=this.leafParser.parse(M);if(R.blocksToFetch&&(g=g.concat(R.blocksToFetch.filter(C=>w(C)).map(C=>({offset:C.blockOffset,length:C.blockSize})))),R.recurOffsets){const C=R.recurOffsets.filter(B=>w(B)).map(B=>Number(B.blockOffset));C.length>0&&_(C,N+1)}}catch(M){i.error(M)}},w=D=>{const{startChrom:T,startBase:N,endChrom:M,endBase:R}=D;return(T<l||T===l&&N<=r)&&(M>l||M===l&&R>=n)},E=async(D,T,N)=>{try{const M=T.max()-T.min(),R=T.min(),C=await this.featureCache.get(`${M}_${R}`,{length:M,offset:R},a==null?void 0:a.signal);for(const B of D)T.contains(B)&&(y(C,B-R,N),b-=1,b===0&&this.readFeatures(i,g,{...a,request:c}))}catch(M){i.error(M)}},_=(D,T)=>{try{b+=D.length;const N=4+Number(d)*32;let M=new gi(D[0],D[0]+N);for(let R=1;R<D.length;R+=1){const C=new gi(D[R],D[R]+N);M=M.union(C)}M.getRanges().map(R=>E(D,R,T))}catch(N){i.error(N)}};return _([Number(f)+48],1)}catch(o){i.error(o)}}parseSummaryBlock(e,n,r){const i=[];let a=n;const o=new DataView(e.buffer,e.byteOffset,e.length);for(;a<e.byteLength;){const s=o.getUint32(a,!0);a+=4;const f=o.getUint32(a,!0);a+=4;const u=o.getUint32(a,!0);a+=4;const l=o.getUint32(a,!0);a+=4;const c=o.getFloat32(a,!0);a+=4;const h=o.getFloat32(a,!0);a+=4;const d=o.getFloat32(a,!0);a+=4,a+=4,(!r||s===r.chrId&&Bg(f,u,r.start,r.end))&&i.push({start:f,end:u,maxScore:h,minScore:c,summary:!0,score:d/(l||1)})}return i}parseBigBedBlock(e,n,r,i){const a=[];let o=n;for(;o<e.byteLength;){const s=this.bigBedParser.parse(e.subarray(o));a.push({...s,uniqueId:`bb-${r+o}`}),o+=s.offset}return i?a.filter(s=>Bg(s.start,s.end,i.start,i.end)):a}parseBigWigBlock(e,n,r){const i=e.subarray(n),a=new DataView(i.buffer,i.byteOffset,i.length);let o=0;o+=4;const s=a.getInt32(o,!0);o+=8;const f=a.getUint32(o,!0);o+=4;const u=a.getUint32(o,!0);o+=4;const l=a.getUint8(o);o+=2;const c=a.getUint16(o,!0);o+=2;const h=new Array(c);switch(l){case 1:{for(let d=0;d<c;d++){const g=a.getInt32(o,!0);o+=4;const b=a.getInt32(o,!0);o+=4;const y=a.getFloat32(o,!0);o+=4,h[d]={start:g,end:b,score:y}}break}case 2:{for(let d=0;d<c;d++){const g=a.getInt32(o,!0);o+=4;const b=a.getFloat32(o,!0);o+=4,h[d]={score:b,start:g,end:g+u}}break}case 3:{for(let d=0;d<c;d++){const g=a.getFloat32(o,!0);o+=4;const b=s+d*f;h[d]={score:g,start:b,end:b+u}}break}}return r?h.filter(d=>Bg(d.start,d.end,r.start,r.end)):h}async readFeatures(e,n,r={}){try{const{blockType:i,isCompressed:a}=this,{signal:o,request:s}=r,f=NO(n);yc(o),await Promise.all(f.map(async u=>{yc(o);const{length:l,offset:c}=u,h=await this.featureCache.get(`${l}_${c}`,u,o);for(const d of u.blocks){yc(o);let g=Number(d.offset)-Number(u.offset),b=h;switch(a&&(b=MO(h.subarray(g)),g=0),yc(o),i){case"summary":{e.next(this.parseSummaryBlock(b,g,s));break}case"bigwig":{e.next(this.parseBigWigBlock(b,g,s));break}case"bigbed":{e.next(this.parseBigBedBlock(b,g,Number(d.offset)*256,s));break}default:console.warn(`Don't know what to do with ${i}`)}}})),e.complete()}catch(i){e.error(i)}}}var Lg=function(t,e){return Lg=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(n[i]=r[i])},Lg(t,e)};function Rg(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");Lg(t,e);function n(){this.constructor=t}t.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}function RO(t,e,n,r){function i(a){return a instanceof n?a:new n(function(o){o(a)})}return new(n||(n=Promise))(function(a,o){function s(l){try{u(r.next(l))}catch(c){o(c)}}function f(l){try{u(r.throw(l))}catch(c){o(c)}}function u(l){l.done?a(l.value):i(l.value).then(s,f)}u((r=r.apply(t,e||[])).next())})}function TA(t,e){var n={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},r,i,a,o;return o={next:s(0),throw:s(1),return:s(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function s(u){return function(l){return f([u,l])}}function f(u){if(r)throw new TypeError("Generator is already executing.");for(;n;)try{if(r=1,i&&(a=u[0]&2?i.return:u[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,u[1])).done)return a;switch(i=0,a&&(u=[u[0]&2,a.value]),u[0]){case 0:case 1:a=u;break;case 4:return n.label++,{value:u[1],done:!1};case 5:n.label++,i=u[1],u=[0];continue;case 7:u=n.ops.pop(),n.trys.pop();continue;default:if(a=n.trys,!(a=a.length>0&&a[a.length-1])&&(u[0]===6||u[0]===2)){n=0;continue}if(u[0]===3&&(!a||u[1]>a[0]&&u[1]<a[3])){n.label=u[1];break}if(u[0]===6&&n.label<a[1]){n.label=a[1],a=u;break}if(a&&n.label<a[2]){n.label=a[2],n.ops.push(u);break}a[2]&&n.ops.pop(),n.trys.pop();continue}u=e.call(t,n)}catch(l){u=[6,l],i=0}finally{r=a=0}if(u[0]&5)throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}function Hu(t){var e=typeof Symbol=="function"&&Symbol.iterator,n=e&&t[e],r=0;if(n)return n.call(t);if(t&&typeof t.length=="number")return{next:function(){return t&&r>=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function wc(t,e){var n=typeof Symbol=="function"&&t[Symbol.iterator];if(!n)return t;var r=n.call(t),i,a=[],o;try{for(;(e===void 0||e-- >0)&&!(i=r.next()).done;)a.push(i.value)}catch(s){o={error:s}}finally{try{i&&!i.done&&(n=r.return)&&n.call(r)}finally{if(o)throw o.error}}return a}function xc(t,e,n){if(n||arguments.length===2)for(var r=0,i=e.length,a;r<i;r++)(a||!(r in e))&&(a||(a=Array.prototype.slice.call(e,0,r)),a[r]=e[r]);return t.concat(a||Array.prototype.slice.call(e))}function Fo(t){return this instanceof Fo?(this.v=t,this):new Fo(t)}function OO(t,e,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(t,e||[]),i,a=[];return i={},o("next"),o("throw"),o("return"),i[Symbol.asyncIterator]=function(){return this},i;function o(h){r[h]&&(i[h]=function(d){return new Promise(function(g,b){a.push([h,d,g,b])>1||s(h,d)})})}function s(h,d){try{f(r[h](d))}catch(g){c(a[0][3],g)}}function f(h){h.value instanceof Fo?Promise.resolve(h.value.v).then(u,l):c(a[0][2],h)}function u(h){s("next",h)}function l(h){s("throw",h)}function c(h,d){h(d),a.shift(),a.length&&s(a[0][0],a[0][1])}}function zO(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=t[Symbol.asyncIterator],n;return e?e.call(t):(t=typeof Hu=="function"?Hu(t):t[Symbol.iterator](),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(a){n[a]=t[a]&&function(o){return new Promise(function(s,f){o=t[a](o),i(s,f,o.done,o.value)})}}function i(a,o,s,f){Promise.resolve(f).then(function(u){a({value:u,done:s})},o)}}function ut(t){return typeof t=="function"}function NA(t){var e=function(r){Error.call(r),r.stack=new Error().stack},n=t(e);return n.prototype=Object.create(Error.prototype),n.prototype.constructor=n,n}var Og=NA(function(t){return function(n){t(this),this.message=n?n.length+` errors occurred during unsubscription:
283
+ */(function(e){const t=Au,n=u0,r=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=s,e.SlowBuffer=S,e.INSPECT_MAX_BYTES=50;const i=2147483647;e.kMaxLength=i,s.TYPED_ARRAY_SUPPORT=a(),!s.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function a(){try{const v=new Uint8Array(1),g={foo:function(){return 42}};return Object.setPrototypeOf(g,Uint8Array.prototype),Object.setPrototypeOf(v,g),v.foo()===42}catch{return!1}}Object.defineProperty(s.prototype,"parent",{enumerable:!0,get:function(){if(s.isBuffer(this))return this.buffer}}),Object.defineProperty(s.prototype,"offset",{enumerable:!0,get:function(){if(s.isBuffer(this))return this.byteOffset}});function o(v){if(v>i)throw new RangeError('The value "'+v+'" is invalid for option "size"');const g=new Uint8Array(v);return Object.setPrototypeOf(g,s.prototype),g}function s(v,g,m){if(typeof v=="number"){if(typeof g=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return c(v)}return f(v,g,m)}s.poolSize=8192;function f(v,g,m){if(typeof v=="string")return h(v,g);if(ArrayBuffer.isView(v))return p(v);if(v==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof v);if(_t(v,ArrayBuffer)||v&&_t(v.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(_t(v,SharedArrayBuffer)||v&&_t(v.buffer,SharedArrayBuffer)))return b(v,g,m);if(typeof v=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const T=v.valueOf&&v.valueOf();if(T!=null&&T!==v)return s.from(T,g,m);const F=y(v);if(F)return F;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof v[Symbol.toPrimitive]=="function")return s.from(v[Symbol.toPrimitive]("string"),g,m);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof v)}s.from=function(v,g,m){return f(v,g,m)},Object.setPrototypeOf(s.prototype,Uint8Array.prototype),Object.setPrototypeOf(s,Uint8Array);function l(v){if(typeof v!="number")throw new TypeError('"size" argument must be of type number');if(v<0)throw new RangeError('The value "'+v+'" is invalid for option "size"')}function u(v,g,m){return l(v),v<=0?o(v):g!==void 0?typeof m=="string"?o(v).fill(g,m):o(v).fill(g):o(v)}s.alloc=function(v,g,m){return u(v,g,m)};function c(v){return l(v),o(v<0?0:w(v)|0)}s.allocUnsafe=function(v){return c(v)},s.allocUnsafeSlow=function(v){return c(v)};function h(v,g){if((typeof g!="string"||g==="")&&(g="utf8"),!s.isEncoding(g))throw new TypeError("Unknown encoding: "+g);const m=C(v,g)|0;let T=o(m);const F=T.write(v,g);return F!==m&&(T=T.slice(0,F)),T}function d(v){const g=v.length<0?0:w(v.length)|0,m=o(g);for(let T=0;T<g;T+=1)m[T]=v[T]&255;return m}function p(v){if(_t(v,Uint8Array)){const g=new Uint8Array(v);return b(g.buffer,g.byteOffset,g.byteLength)}return d(v)}function b(v,g,m){if(g<0||v.byteLength<g)throw new RangeError('"offset" is outside of buffer bounds');if(v.byteLength<g+(m||0))throw new RangeError('"length" is outside of buffer bounds');let T;return g===void 0&&m===void 0?T=new Uint8Array(v):m===void 0?T=new Uint8Array(v,g):T=new Uint8Array(v,g,m),Object.setPrototypeOf(T,s.prototype),T}function y(v){if(s.isBuffer(v)){const g=w(v.length)|0,m=o(g);return m.length===0||v.copy(m,0,0,g),m}if(v.length!==void 0)return typeof v.length!="number"||wr(v.length)?o(0):d(v);if(v.type==="Buffer"&&Array.isArray(v.data))return d(v.data)}function w(v){if(v>=i)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i.toString(16)+" bytes");return v|0}function S(v){return+v!=v&&(v=0),s.alloc(+v)}s.isBuffer=function(g){return g!=null&&g._isBuffer===!0&&g!==s.prototype},s.compare=function(g,m){if(_t(g,Uint8Array)&&(g=s.from(g,g.offset,g.byteLength)),_t(m,Uint8Array)&&(m=s.from(m,m.offset,m.byteLength)),!s.isBuffer(g)||!s.isBuffer(m))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(g===m)return 0;let T=g.length,F=m.length;for(let L=0,V=Math.min(T,F);L<V;++L)if(g[L]!==m[L]){T=g[L],F=m[L];break}return T<F?-1:F<T?1:0},s.isEncoding=function(g){switch(String(g).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},s.concat=function(g,m){if(!Array.isArray(g))throw new TypeError('"list" argument must be an Array of Buffers');if(g.length===0)return s.alloc(0);let T;if(m===void 0)for(m=0,T=0;T<g.length;++T)m+=g[T].length;const F=s.allocUnsafe(m);let L=0;for(T=0;T<g.length;++T){let V=g[T];if(_t(V,Uint8Array))L+V.length>F.length?(s.isBuffer(V)||(V=s.from(V)),V.copy(F,L)):Uint8Array.prototype.set.call(F,V,L);else if(s.isBuffer(V))V.copy(F,L);else throw new TypeError('"list" argument must be an Array of Buffers');L+=V.length}return F};function C(v,g){if(s.isBuffer(v))return v.length;if(ArrayBuffer.isView(v)||_t(v,ArrayBuffer))return v.byteLength;if(typeof v!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof v);const m=v.length,T=arguments.length>2&&arguments[2]===!0;if(!T&&m===0)return 0;let F=!1;for(;;)switch(g){case"ascii":case"latin1":case"binary":return m;case"utf8":case"utf-8":return le(v).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return m*2;case"hex":return m>>>1;case"base64":return li(v).length;default:if(F)return T?-1:le(v).length;g=(""+g).toLowerCase(),F=!0}}s.byteLength=C;function _(v,g,m){let T=!1;if((g===void 0||g<0)&&(g=0),g>this.length||((m===void 0||m>this.length)&&(m=this.length),m<=0)||(m>>>=0,g>>>=0,m<=g))return"";for(v||(v="utf8");;)switch(v){case"hex":return qe(this,g,m);case"utf8":case"utf-8":return pe(this,g,m);case"ascii":return De(this,g,m);case"latin1":case"binary":return $e(this,g,m);case"base64":return oe(this,g,m);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Ke(this,g,m);default:if(T)throw new TypeError("Unknown encoding: "+v);v=(v+"").toLowerCase(),T=!0}}s.prototype._isBuffer=!0;function k(v,g,m){const T=v[g];v[g]=v[m],v[m]=T}s.prototype.swap16=function(){const g=this.length;if(g%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let m=0;m<g;m+=2)k(this,m,m+1);return this},s.prototype.swap32=function(){const g=this.length;if(g%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let m=0;m<g;m+=4)k(this,m,m+3),k(this,m+1,m+2);return this},s.prototype.swap64=function(){const g=this.length;if(g%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let m=0;m<g;m+=8)k(this,m,m+7),k(this,m+1,m+6),k(this,m+2,m+5),k(this,m+3,m+4);return this},s.prototype.toString=function(){const g=this.length;return g===0?"":arguments.length===0?pe(this,0,g):_.apply(this,arguments)},s.prototype.toLocaleString=s.prototype.toString,s.prototype.equals=function(g){if(!s.isBuffer(g))throw new TypeError("Argument must be a Buffer");return this===g?!0:s.compare(this,g)===0},s.prototype.inspect=function(){let g="";const m=e.INSPECT_MAX_BYTES;return g=this.toString("hex",0,m).replace(/(.{2})/g,"$1 ").trim(),this.length>m&&(g+=" ... "),"<Buffer "+g+">"},r&&(s.prototype[r]=s.prototype.inspect),s.prototype.compare=function(g,m,T,F,L){if(_t(g,Uint8Array)&&(g=s.from(g,g.offset,g.byteLength)),!s.isBuffer(g))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof g);if(m===void 0&&(m=0),T===void 0&&(T=g?g.length:0),F===void 0&&(F=0),L===void 0&&(L=this.length),m<0||T>g.length||F<0||L>this.length)throw new RangeError("out of range index");if(F>=L&&m>=T)return 0;if(F>=L)return-1;if(m>=T)return 1;if(m>>>=0,T>>>=0,F>>>=0,L>>>=0,this===g)return 0;let V=L-F,fe=T-m;const Ue=Math.min(V,fe),Pe=this.slice(F,L),Ze=g.slice(m,T);for(let Se=0;Se<Ue;++Se)if(Pe[Se]!==Ze[Se]){V=Pe[Se],fe=Ze[Se];break}return V<fe?-1:fe<V?1:0};function B(v,g,m,T,F){if(v.length===0)return-1;if(typeof m=="string"?(T=m,m=0):m>2147483647?m=2147483647:m<-2147483648&&(m=-2147483648),m=+m,wr(m)&&(m=F?0:v.length-1),m<0&&(m=v.length+m),m>=v.length){if(F)return-1;m=v.length-1}else if(m<0)if(F)m=0;else return-1;if(typeof g=="string"&&(g=s.from(g,T)),s.isBuffer(g))return g.length===0?-1:I(v,g,m,T,F);if(typeof g=="number")return g=g&255,typeof Uint8Array.prototype.indexOf=="function"?F?Uint8Array.prototype.indexOf.call(v,g,m):Uint8Array.prototype.lastIndexOf.call(v,g,m):I(v,[g],m,T,F);throw new TypeError("val must be string, number or Buffer")}function I(v,g,m,T,F){let L=1,V=v.length,fe=g.length;if(T!==void 0&&(T=String(T).toLowerCase(),T==="ucs2"||T==="ucs-2"||T==="utf16le"||T==="utf-16le")){if(v.length<2||g.length<2)return-1;L=2,V/=2,fe/=2,m/=2}function Ue(Ze,Se){return L===1?Ze[Se]:Ze.readUInt16BE(Se*L)}let Pe;if(F){let Ze=-1;for(Pe=m;Pe<V;Pe++)if(Ue(v,Pe)===Ue(g,Ze===-1?0:Pe-Ze)){if(Ze===-1&&(Ze=Pe),Pe-Ze+1===fe)return Ze*L}else Ze!==-1&&(Pe-=Pe-Ze),Ze=-1}else for(m+fe>V&&(m=V-fe),Pe=m;Pe>=0;Pe--){let Ze=!0;for(let Se=0;Se<fe;Se++)if(Ue(v,Pe+Se)!==Ue(g,Se)){Ze=!1;break}if(Ze)return Pe}return-1}s.prototype.includes=function(g,m,T){return this.indexOf(g,m,T)!==-1},s.prototype.indexOf=function(g,m,T){return B(this,g,m,T,!0)},s.prototype.lastIndexOf=function(g,m,T){return B(this,g,m,T,!1)};function R(v,g,m,T){m=Number(m)||0;const F=v.length-m;T?(T=Number(T),T>F&&(T=F)):T=F;const L=g.length;T>L/2&&(T=L/2);let V;for(V=0;V<T;++V){const fe=parseInt(g.substr(V*2,2),16);if(wr(fe))return V;v[m+V]=fe}return V}function M(v,g,m,T){return fi(le(g,v.length-m),v,m,T)}function j(v,g,m,T){return fi(Vt(g),v,m,T)}function O(v,g,m,T){return fi(li(g),v,m,T)}function ne(v,g,m,T){return fi(si(g,v.length-m),v,m,T)}s.prototype.write=function(g,m,T,F){if(m===void 0)F="utf8",T=this.length,m=0;else if(T===void 0&&typeof m=="string")F=m,T=this.length,m=0;else if(isFinite(m))m=m>>>0,isFinite(T)?(T=T>>>0,F===void 0&&(F="utf8")):(F=T,T=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const L=this.length-m;if((T===void 0||T>L)&&(T=L),g.length>0&&(T<0||m<0)||m>this.length)throw new RangeError("Attempt to write outside buffer bounds");F||(F="utf8");let V=!1;for(;;)switch(F){case"hex":return R(this,g,m,T);case"utf8":case"utf-8":return M(this,g,m,T);case"ascii":case"latin1":case"binary":return j(this,g,m,T);case"base64":return O(this,g,m,T);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ne(this,g,m,T);default:if(V)throw new TypeError("Unknown encoding: "+F);F=(""+F).toLowerCase(),V=!0}},s.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function oe(v,g,m){return g===0&&m===v.length?t.fromByteArray(v):t.fromByteArray(v.slice(g,m))}function pe(v,g,m){m=Math.min(v.length,m);const T=[];let F=g;for(;F<m;){const L=v[F];let V=null,fe=L>239?4:L>223?3:L>191?2:1;if(F+fe<=m){let Ue,Pe,Ze,Se;switch(fe){case 1:L<128&&(V=L);break;case 2:Ue=v[F+1],(Ue&192)===128&&(Se=(L&31)<<6|Ue&63,Se>127&&(V=Se));break;case 3:Ue=v[F+1],Pe=v[F+2],(Ue&192)===128&&(Pe&192)===128&&(Se=(L&15)<<12|(Ue&63)<<6|Pe&63,Se>2047&&(Se<55296||Se>57343)&&(V=Se));break;case 4:Ue=v[F+1],Pe=v[F+2],Ze=v[F+3],(Ue&192)===128&&(Pe&192)===128&&(Ze&192)===128&&(Se=(L&15)<<18|(Ue&63)<<12|(Pe&63)<<6|Ze&63,Se>65535&&Se<1114112&&(V=Se))}}V===null?(V=65533,fe=1):V>65535&&(V-=65536,T.push(V>>>10&1023|55296),V=56320|V&1023),T.push(V),F+=fe}return Xe(T)}const ke=4096;function Xe(v){const g=v.length;if(g<=ke)return String.fromCharCode.apply(String,v);let m="",T=0;for(;T<g;)m+=String.fromCharCode.apply(String,v.slice(T,T+=ke));return m}function De(v,g,m){let T="";m=Math.min(v.length,m);for(let F=g;F<m;++F)T+=String.fromCharCode(v[F]&127);return T}function $e(v,g,m){let T="";m=Math.min(v.length,m);for(let F=g;F<m;++F)T+=String.fromCharCode(v[F]);return T}function qe(v,g,m){const T=v.length;(!g||g<0)&&(g=0),(!m||m<0||m>T)&&(m=T);let F="";for(let L=g;L<m;++L)F+=ui[v[L]];return F}function Ke(v,g,m){const T=v.slice(g,m);let F="";for(let L=0;L<T.length-1;L+=2)F+=String.fromCharCode(T[L]+T[L+1]*256);return F}s.prototype.slice=function(g,m){const T=this.length;g=~~g,m=m===void 0?T:~~m,g<0?(g+=T,g<0&&(g=0)):g>T&&(g=T),m<0?(m+=T,m<0&&(m=0)):m>T&&(m=T),m<g&&(m=g);const F=this.subarray(g,m);return Object.setPrototypeOf(F,s.prototype),F};function Ee(v,g,m){if(v%1!==0||v<0)throw new RangeError("offset is not uint");if(v+g>m)throw new RangeError("Trying to access beyond buffer length")}s.prototype.readUintLE=s.prototype.readUIntLE=function(g,m,T){g=g>>>0,m=m>>>0,T||Ee(g,m,this.length);let F=this[g],L=1,V=0;for(;++V<m&&(L*=256);)F+=this[g+V]*L;return F},s.prototype.readUintBE=s.prototype.readUIntBE=function(g,m,T){g=g>>>0,m=m>>>0,T||Ee(g,m,this.length);let F=this[g+--m],L=1;for(;m>0&&(L*=256);)F+=this[g+--m]*L;return F},s.prototype.readUint8=s.prototype.readUInt8=function(g,m){return g=g>>>0,m||Ee(g,1,this.length),this[g]},s.prototype.readUint16LE=s.prototype.readUInt16LE=function(g,m){return g=g>>>0,m||Ee(g,2,this.length),this[g]|this[g+1]<<8},s.prototype.readUint16BE=s.prototype.readUInt16BE=function(g,m){return g=g>>>0,m||Ee(g,2,this.length),this[g]<<8|this[g+1]},s.prototype.readUint32LE=s.prototype.readUInt32LE=function(g,m){return g=g>>>0,m||Ee(g,4,this.length),(this[g]|this[g+1]<<8|this[g+2]<<16)+this[g+3]*16777216},s.prototype.readUint32BE=s.prototype.readUInt32BE=function(g,m){return g=g>>>0,m||Ee(g,4,this.length),this[g]*16777216+(this[g+1]<<16|this[g+2]<<8|this[g+3])},s.prototype.readBigUInt64LE=jt(function(g){g=g>>>0,G(g,"offset");const m=this[g],T=this[g+7];(m===void 0||T===void 0)&&Z(g,this.length-8);const F=m+this[++g]*2**8+this[++g]*2**16+this[++g]*2**24,L=this[++g]+this[++g]*2**8+this[++g]*2**16+T*2**24;return BigInt(F)+(BigInt(L)<<BigInt(32))}),s.prototype.readBigUInt64BE=jt(function(g){g=g>>>0,G(g,"offset");const m=this[g],T=this[g+7];(m===void 0||T===void 0)&&Z(g,this.length-8);const F=m*2**24+this[++g]*2**16+this[++g]*2**8+this[++g],L=this[++g]*2**24+this[++g]*2**16+this[++g]*2**8+T;return(BigInt(F)<<BigInt(32))+BigInt(L)}),s.prototype.readIntLE=function(g,m,T){g=g>>>0,m=m>>>0,T||Ee(g,m,this.length);let F=this[g],L=1,V=0;for(;++V<m&&(L*=256);)F+=this[g+V]*L;return L*=128,F>=L&&(F-=Math.pow(2,8*m)),F},s.prototype.readIntBE=function(g,m,T){g=g>>>0,m=m>>>0,T||Ee(g,m,this.length);let F=m,L=1,V=this[g+--F];for(;F>0&&(L*=256);)V+=this[g+--F]*L;return L*=128,V>=L&&(V-=Math.pow(2,8*m)),V},s.prototype.readInt8=function(g,m){return g=g>>>0,m||Ee(g,1,this.length),this[g]&128?(255-this[g]+1)*-1:this[g]},s.prototype.readInt16LE=function(g,m){g=g>>>0,m||Ee(g,2,this.length);const T=this[g]|this[g+1]<<8;return T&32768?T|4294901760:T},s.prototype.readInt16BE=function(g,m){g=g>>>0,m||Ee(g,2,this.length);const T=this[g+1]|this[g]<<8;return T&32768?T|4294901760:T},s.prototype.readInt32LE=function(g,m){return g=g>>>0,m||Ee(g,4,this.length),this[g]|this[g+1]<<8|this[g+2]<<16|this[g+3]<<24},s.prototype.readInt32BE=function(g,m){return g=g>>>0,m||Ee(g,4,this.length),this[g]<<24|this[g+1]<<16|this[g+2]<<8|this[g+3]},s.prototype.readBigInt64LE=jt(function(g){g=g>>>0,G(g,"offset");const m=this[g],T=this[g+7];(m===void 0||T===void 0)&&Z(g,this.length-8);const F=this[g+4]+this[g+5]*2**8+this[g+6]*2**16+(T<<24);return(BigInt(F)<<BigInt(32))+BigInt(m+this[++g]*2**8+this[++g]*2**16+this[++g]*2**24)}),s.prototype.readBigInt64BE=jt(function(g){g=g>>>0,G(g,"offset");const m=this[g],T=this[g+7];(m===void 0||T===void 0)&&Z(g,this.length-8);const F=(m<<24)+this[++g]*2**16+this[++g]*2**8+this[++g];return(BigInt(F)<<BigInt(32))+BigInt(this[++g]*2**24+this[++g]*2**16+this[++g]*2**8+T)}),s.prototype.readFloatLE=function(g,m){return g=g>>>0,m||Ee(g,4,this.length),n.read(this,g,!0,23,4)},s.prototype.readFloatBE=function(g,m){return g=g>>>0,m||Ee(g,4,this.length),n.read(this,g,!1,23,4)},s.prototype.readDoubleLE=function(g,m){return g=g>>>0,m||Ee(g,8,this.length),n.read(this,g,!0,52,8)},s.prototype.readDoubleBE=function(g,m){return g=g>>>0,m||Ee(g,8,this.length),n.read(this,g,!1,52,8)};function _e(v,g,m,T,F,L){if(!s.isBuffer(v))throw new TypeError('"buffer" argument must be a Buffer instance');if(g>F||g<L)throw new RangeError('"value" argument is out of bounds');if(m+T>v.length)throw new RangeError("Index out of range")}s.prototype.writeUintLE=s.prototype.writeUIntLE=function(g,m,T,F){if(g=+g,m=m>>>0,T=T>>>0,!F){const fe=Math.pow(2,8*T)-1;_e(this,g,m,T,fe,0)}let L=1,V=0;for(this[m]=g&255;++V<T&&(L*=256);)this[m+V]=g/L&255;return m+T},s.prototype.writeUintBE=s.prototype.writeUIntBE=function(g,m,T,F){if(g=+g,m=m>>>0,T=T>>>0,!F){const fe=Math.pow(2,8*T)-1;_e(this,g,m,T,fe,0)}let L=T-1,V=1;for(this[m+L]=g&255;--L>=0&&(V*=256);)this[m+L]=g/V&255;return m+T},s.prototype.writeUint8=s.prototype.writeUInt8=function(g,m,T){return g=+g,m=m>>>0,T||_e(this,g,m,1,255,0),this[m]=g&255,m+1},s.prototype.writeUint16LE=s.prototype.writeUInt16LE=function(g,m,T){return g=+g,m=m>>>0,T||_e(this,g,m,2,65535,0),this[m]=g&255,this[m+1]=g>>>8,m+2},s.prototype.writeUint16BE=s.prototype.writeUInt16BE=function(g,m,T){return g=+g,m=m>>>0,T||_e(this,g,m,2,65535,0),this[m]=g>>>8,this[m+1]=g&255,m+2},s.prototype.writeUint32LE=s.prototype.writeUInt32LE=function(g,m,T){return g=+g,m=m>>>0,T||_e(this,g,m,4,4294967295,0),this[m+3]=g>>>24,this[m+2]=g>>>16,this[m+1]=g>>>8,this[m]=g&255,m+4},s.prototype.writeUint32BE=s.prototype.writeUInt32BE=function(g,m,T){return g=+g,m=m>>>0,T||_e(this,g,m,4,4294967295,0),this[m]=g>>>24,this[m+1]=g>>>16,this[m+2]=g>>>8,this[m+3]=g&255,m+4};function dt(v,g,m,T,F){x(g,T,F,v,m,7);let L=Number(g&BigInt(4294967295));v[m++]=L,L=L>>8,v[m++]=L,L=L>>8,v[m++]=L,L=L>>8,v[m++]=L;let V=Number(g>>BigInt(32)&BigInt(4294967295));return v[m++]=V,V=V>>8,v[m++]=V,V=V>>8,v[m++]=V,V=V>>8,v[m++]=V,m}function Ht(v,g,m,T,F){x(g,T,F,v,m,7);let L=Number(g&BigInt(4294967295));v[m+7]=L,L=L>>8,v[m+6]=L,L=L>>8,v[m+5]=L,L=L>>8,v[m+4]=L;let V=Number(g>>BigInt(32)&BigInt(4294967295));return v[m+3]=V,V=V>>8,v[m+2]=V,V=V>>8,v[m+1]=V,V=V>>8,v[m]=V,m+8}s.prototype.writeBigUInt64LE=jt(function(g,m=0){return dt(this,g,m,BigInt(0),BigInt("0xffffffffffffffff"))}),s.prototype.writeBigUInt64BE=jt(function(g,m=0){return Ht(this,g,m,BigInt(0),BigInt("0xffffffffffffffff"))}),s.prototype.writeIntLE=function(g,m,T,F){if(g=+g,m=m>>>0,!F){const Ue=Math.pow(2,8*T-1);_e(this,g,m,T,Ue-1,-Ue)}let L=0,V=1,fe=0;for(this[m]=g&255;++L<T&&(V*=256);)g<0&&fe===0&&this[m+L-1]!==0&&(fe=1),this[m+L]=(g/V>>0)-fe&255;return m+T},s.prototype.writeIntBE=function(g,m,T,F){if(g=+g,m=m>>>0,!F){const Ue=Math.pow(2,8*T-1);_e(this,g,m,T,Ue-1,-Ue)}let L=T-1,V=1,fe=0;for(this[m+L]=g&255;--L>=0&&(V*=256);)g<0&&fe===0&&this[m+L+1]!==0&&(fe=1),this[m+L]=(g/V>>0)-fe&255;return m+T},s.prototype.writeInt8=function(g,m,T){return g=+g,m=m>>>0,T||_e(this,g,m,1,127,-128),g<0&&(g=255+g+1),this[m]=g&255,m+1},s.prototype.writeInt16LE=function(g,m,T){return g=+g,m=m>>>0,T||_e(this,g,m,2,32767,-32768),this[m]=g&255,this[m+1]=g>>>8,m+2},s.prototype.writeInt16BE=function(g,m,T){return g=+g,m=m>>>0,T||_e(this,g,m,2,32767,-32768),this[m]=g>>>8,this[m+1]=g&255,m+2},s.prototype.writeInt32LE=function(g,m,T){return g=+g,m=m>>>0,T||_e(this,g,m,4,2147483647,-2147483648),this[m]=g&255,this[m+1]=g>>>8,this[m+2]=g>>>16,this[m+3]=g>>>24,m+4},s.prototype.writeInt32BE=function(g,m,T){return g=+g,m=m>>>0,T||_e(this,g,m,4,2147483647,-2147483648),g<0&&(g=4294967295+g+1),this[m]=g>>>24,this[m+1]=g>>>16,this[m+2]=g>>>8,this[m+3]=g&255,m+4},s.prototype.writeBigInt64LE=jt(function(g,m=0){return dt(this,g,m,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),s.prototype.writeBigInt64BE=jt(function(g,m=0){return Ht(this,g,m,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function Le(v,g,m,T,F,L){if(m+T>v.length)throw new RangeError("Index out of range");if(m<0)throw new RangeError("Index out of range")}function N(v,g,m,T,F){return g=+g,m=m>>>0,F||Le(v,g,m,4),n.write(v,g,m,T,23,4),m+4}s.prototype.writeFloatLE=function(g,m,T){return N(this,g,m,!0,T)},s.prototype.writeFloatBE=function(g,m,T){return N(this,g,m,!1,T)};function P(v,g,m,T,F){return g=+g,m=m>>>0,F||Le(v,g,m,8),n.write(v,g,m,T,52,8),m+8}s.prototype.writeDoubleLE=function(g,m,T){return P(this,g,m,!0,T)},s.prototype.writeDoubleBE=function(g,m,T){return P(this,g,m,!1,T)},s.prototype.copy=function(g,m,T,F){if(!s.isBuffer(g))throw new TypeError("argument should be a Buffer");if(T||(T=0),!F&&F!==0&&(F=this.length),m>=g.length&&(m=g.length),m||(m=0),F>0&&F<T&&(F=T),F===T||g.length===0||this.length===0)return 0;if(m<0)throw new RangeError("targetStart out of bounds");if(T<0||T>=this.length)throw new RangeError("Index out of range");if(F<0)throw new RangeError("sourceEnd out of bounds");F>this.length&&(F=this.length),g.length-m<F-T&&(F=g.length-m+T);const L=F-T;return this===g&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(m,T,F):Uint8Array.prototype.set.call(g,this.subarray(T,F),m),L},s.prototype.fill=function(g,m,T,F){if(typeof g=="string"){if(typeof m=="string"?(F=m,m=0,T=this.length):typeof T=="string"&&(F=T,T=this.length),F!==void 0&&typeof F!="string")throw new TypeError("encoding must be a string");if(typeof F=="string"&&!s.isEncoding(F))throw new TypeError("Unknown encoding: "+F);if(g.length===1){const V=g.charCodeAt(0);(F==="utf8"&&V<128||F==="latin1")&&(g=V)}}else typeof g=="number"?g=g&255:typeof g=="boolean"&&(g=Number(g));if(m<0||this.length<m||this.length<T)throw new RangeError("Out of range index");if(T<=m)return this;m=m>>>0,T=T===void 0?this.length:T>>>0,g||(g=0);let L;if(typeof g=="number")for(L=m;L<T;++L)this[L]=g;else{const V=s.isBuffer(g)?g:s.from(g,F),fe=V.length;if(fe===0)throw new TypeError('The value "'+g+'" is invalid for argument "value"');for(L=0;L<T-m;++L)this[L+m]=V[L%fe]}return this};const q={};function H(v,g,m){q[v]=class extends m{constructor(){super(),Object.defineProperty(this,"message",{value:g.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${v}]`,this.stack,delete this.name}get code(){return v}set code(F){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:F,writable:!0})}toString(){return`${this.name} [${v}]: ${this.message}`}}}H("ERR_BUFFER_OUT_OF_BOUNDS",function(v){return v?`${v} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),H("ERR_INVALID_ARG_TYPE",function(v,g){return`The "${v}" argument must be of type number. Received type ${typeof g}`},TypeError),H("ERR_OUT_OF_RANGE",function(v,g,m){let T=`The value of "${v}" is out of range.`,F=m;return Number.isInteger(m)&&Math.abs(m)>2**32?F=W(String(m)):typeof m=="bigint"&&(F=String(m),(m>BigInt(2)**BigInt(32)||m<-(BigInt(2)**BigInt(32)))&&(F=W(F)),F+="n"),T+=` It must be ${g}. Received ${F}`,T},RangeError);function W(v){let g="",m=v.length;const T=v[0]==="-"?1:0;for(;m>=T+4;m-=3)g=`_${v.slice(m-3,m)}${g}`;return`${v.slice(0,m)}${g}`}function E(v,g,m){G(g,"offset"),(v[g]===void 0||v[g+m]===void 0)&&Z(g,v.length-(m+1))}function x(v,g,m,T,F,L){if(v>m||v<g){const V=typeof g=="bigint"?"n":"";let fe;throw L>3?g===0||g===BigInt(0)?fe=`>= 0${V} and < 2${V} ** ${(L+1)*8}${V}`:fe=`>= -(2${V} ** ${(L+1)*8-1}${V}) and < 2 ** ${(L+1)*8-1}${V}`:fe=`>= ${g}${V} and <= ${m}${V}`,new q.ERR_OUT_OF_RANGE("value",fe,v)}E(T,F,L)}function G(v,g){if(typeof v!="number")throw new q.ERR_INVALID_ARG_TYPE(g,"number",v)}function Z(v,g,m){throw Math.floor(v)!==v?(G(v,m),new q.ERR_OUT_OF_RANGE(m||"offset","an integer",v)):g<0?new q.ERR_BUFFER_OUT_OF_BOUNDS:new q.ERR_OUT_OF_RANGE(m||"offset",`>= ${m?1:0} and <= ${g}`,v)}const se=/[^+/0-9A-Za-z-_]/g;function J(v){if(v=v.split("=")[0],v=v.trim().replace(se,""),v.length<2)return"";for(;v.length%4!==0;)v=v+"=";return v}function le(v,g){g=g||1/0;let m;const T=v.length;let F=null;const L=[];for(let V=0;V<T;++V){if(m=v.charCodeAt(V),m>55295&&m<57344){if(!F){if(m>56319){(g-=3)>-1&&L.push(239,191,189);continue}else if(V+1===T){(g-=3)>-1&&L.push(239,191,189);continue}F=m;continue}if(m<56320){(g-=3)>-1&&L.push(239,191,189),F=m;continue}m=(F-55296<<10|m-56320)+65536}else F&&(g-=3)>-1&&L.push(239,191,189);if(F=null,m<128){if((g-=1)<0)break;L.push(m)}else if(m<2048){if((g-=2)<0)break;L.push(m>>6|192,m&63|128)}else if(m<65536){if((g-=3)<0)break;L.push(m>>12|224,m>>6&63|128,m&63|128)}else if(m<1114112){if((g-=4)<0)break;L.push(m>>18|240,m>>12&63|128,m>>6&63|128,m&63|128)}else throw new Error("Invalid code point")}return L}function Vt(v){const g=[];for(let m=0;m<v.length;++m)g.push(v.charCodeAt(m)&255);return g}function si(v,g){let m,T,F;const L=[];for(let V=0;V<v.length&&!((g-=2)<0);++V)m=v.charCodeAt(V),T=m>>8,F=m%256,L.push(F),L.push(T);return L}function li(v){return t.toByteArray(J(v))}function fi(v,g,m,T){let F;for(F=0;F<T&&!(F+m>=g.length||F>=v.length);++F)g[F+m]=v[F];return F}function _t(v,g){return v instanceof g||v!=null&&v.constructor!=null&&v.constructor.name!=null&&v.constructor.name===g.name}function wr(v){return v!==v}const ui=function(){const v="0123456789abcdef",g=new Array(256);for(let m=0;m<16;++m){const T=m*16;for(let F=0;F<16;++F)g[T+F]=v[m]+v[F]}return g}();function jt(v){return typeof BigInt>"u"?Kn:v}function Kn(){throw new Error("BigInt not supported")}})(ye);const hw=ve({__proto__:null,default:Gs(ye)},[ye]),ct={},FF=Object.freeze(Object.defineProperty({__proto__:null,default:ct},Symbol.toStringTag,{value:"Module"})),c0=typeof window<"u"?window:typeof self<"u"?self:{fetch:void 0};class ji{async getBufferFromResponse(t){if(typeof t.buffer=="function")return t.buffer();if(typeof t.arrayBuffer=="function"){const n=await t.arrayBuffer();return ye.Buffer.from(n)}else throw new TypeError("invalid HTTP response object, has no buffer method, and no arrayBuffer method")}constructor(t,n={}){this.baseOverrides={},this.url=t;const r=n.fetch||c0.fetch&&c0.fetch.bind(c0);if(!r)throw new TypeError("no fetch function supplied, and none found in global environment");n.overrides&&(this.baseOverrides=n.overrides),this.fetchImplementation=r}async fetch(t,n){let r;try{r=await this.fetchImplementation(t,n)}catch(i){if(`${i}`.includes("Failed to fetch"))console.warn(`generic-filehandle: refetching ${t} to attempt to work around chrome CORS header caching bug`),r=await this.fetchImplementation(t,{...n,cache:"reload"});else throw i}return r}async read(t,n=0,r,i=0,a={}){const{headers:o={},signal:s,overrides:f={}}=a;r<1/0?o.range=`bytes=${i}-${i+r}`:r===1/0&&i!==0&&(o.range=`bytes=${i}-`);const l={...this.baseOverrides,...f,headers:{...o,...f.headers,...this.baseOverrides.headers},method:"GET",redirect:"follow",mode:"cors",signal:s},u=await this.fetch(this.url,l);if(!u.ok)throw new Error(`HTTP ${u.status} ${u.statusText} ${this.url}`);if(u.status===200&&i===0||u.status===206){const c=await this.getBufferFromResponse(u),h=c.copy(t,n,0,Math.min(r,c.length)),d=u.headers.get("content-range"),p=/\/(\d+)$/.exec(d||"");return p&&p[1]&&(this._stat={size:parseInt(p[1],10)}),{bytesRead:h,buffer:t}}throw u.status===200?new Error("${this.url} fetch returned status 200, expected 206"):new Error(`HTTP ${u.status} fetching ${this.url}`)}async readFile(t={}){let n,r;typeof t=="string"?(n=t,r={}):(n=t.encoding,r=t,delete r.encoding);const{headers:i={},signal:a,overrides:o={}}=r,s={headers:i,method:"GET",redirect:"follow",mode:"cors",signal:a,...this.baseOverrides,...o},f=await this.fetch(this.url,s);if(!f)throw new Error("generic-filehandle failed to fetch");if(f.status!==200)throw Object.assign(new Error(`HTTP ${f.status} fetching ${this.url}`),{status:f.status});if(n==="utf8")return f.text();if(n)throw new Error(`unsupported encoding: ${n}`);return this.getBufferFromResponse(f)}async stat(){if(!this._stat){const t=ye.Buffer.allocUnsafe(10);if(await this.read(t,0,10,0),!this._stat)throw new Error(`unable to determine size of file at ${this.url}`)}return this._stat}async close(){}}function dw(e){const t=new FileReader;return new Promise((n,r)=>{t.onerror=()=>{t.abort(),r(new Error("problem reading blob"))},t.onabort=()=>{r(new Error("blob reading was aborted"))},t.onload=()=>{t.result&&typeof t.result!="string"?n(t.result):r(new Error("unknown error reading blob"))},t.readAsArrayBuffer(e)})}function RF(e){const t=new FileReader;return new Promise((n,r)=>{t.onerror=()=>{t.abort(),r(new Error("problem reading blob"))},t.onabort=()=>{r(new Error("blob reading was aborted"))},t.onload=()=>{t.result&&typeof t.result=="string"?n(t.result):r(new Error("unknown error reading blob"))},t.readAsText(e)})}class PF{constructor(t){this.blob=t,this.size=t.size}async read(t,n=0,r,i=0){if(!r)return{bytesRead:0,buffer:t};const a=i,o=a+r,s=await dw(this.blob.slice(a,o)),f=ye.Buffer.from(s);return{bytesRead:f.copy(t,n),buffer:f}}async readFile(t){let n;if(typeof t=="string"?n=t:n=t&&t.encoding,n==="utf8")return RF(this.blob);if(n)throw new Error(`unsupported encoding: ${n}`);const r=await dw(this.blob);return ye.Buffer.from(r)}async stat(){return{size:this.size}}async close(){}}function pw(e,t={}){return new ji(e,t)}function MF(e,t,n,r={}){if(n!==void 0)return n;if(e!==void 0)return pw(e,r);if(t!==void 0)return new ct(t,r);throw new Error("no url, path, or filehandle provided, cannot open")}const Hs=Object.freeze(Object.defineProperty({__proto__:null,BlobFile:PF,LocalFile:ct,RemoteFile:ji,fromUrl:pw,open:MF},Symbol.toStringTag,{value:"Module"}));var lr={};(function(e){var t=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Int32Array<"u";function n(a,o){return Object.prototype.hasOwnProperty.call(a,o)}e.assign=function(a){for(var o=Array.prototype.slice.call(arguments,1);o.length;){var s=o.shift();if(s){if(typeof s!="object")throw new TypeError(s+"must be non-object");for(var f in s)n(s,f)&&(a[f]=s[f])}}return a},e.shrinkBuf=function(a,o){return a.length===o?a:a.subarray?a.subarray(0,o):(a.length=o,a)};var r={arraySet:function(a,o,s,f,l){if(o.subarray&&a.subarray){a.set(o.subarray(s,s+f),l);return}for(var u=0;u<f;u++)a[l+u]=o[s+u]},flattenChunks:function(a){var o,s,f,l,u,c;for(f=0,o=0,s=a.length;o<s;o++)f+=a[o].length;for(c=new Uint8Array(f),l=0,o=0,s=a.length;o<s;o++)u=a[o],c.set(u,l),l+=u.length;return c}},i={arraySet:function(a,o,s,f,l){for(var u=0;u<f;u++)a[l+u]=o[s+u]},flattenChunks:function(a){return[].concat.apply([],a)}};e.setTyped=function(a){a?(e.Buf8=Uint8Array,e.Buf16=Uint16Array,e.Buf32=Int32Array,e.assign(e,r)):(e.Buf8=Array,e.Buf16=Array,e.Buf32=Array,e.assign(e,i))},e.setTyped(t)})(lr);var Vs={},Hn={},ja={},NF=lr,LF=4,gw=0,mw=1,OF=2;function qa(e){for(var t=e.length;--t>=0;)e[t]=0}var zF=0,bw=1,UF=2,GF=3,HF=258,h0=29,js=256,qs=js+1+h0,Za=30,d0=19,yw=2*qs+1,qi=15,p0=16,VF=7,g0=256,ww=16,vw=17,xw=18,m0=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],Eu=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],jF=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],Aw=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],qF=512,fr=new Array((qs+2)*2);qa(fr);var Zs=new Array(Za*2);qa(Zs);var Ws=new Array(qF);qa(Ws);var Ys=new Array(HF-GF+1);qa(Ys);var b0=new Array(h0);qa(b0);var _u=new Array(Za);qa(_u);function y0(e,t,n,r,i){this.static_tree=e,this.extra_bits=t,this.extra_base=n,this.elems=r,this.max_length=i,this.has_stree=e&&e.length}var Ew,_w,Sw;function w0(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function Cw(e){return e<256?Ws[e]:Ws[256+(e>>>7)]}function Qs(e,t){e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255}function Ot(e,t,n){e.bi_valid>p0-n?(e.bi_buf|=t<<e.bi_valid&65535,Qs(e,e.bi_buf),e.bi_buf=t>>p0-e.bi_valid,e.bi_valid+=n-p0):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)}function Vn(e,t,n){Ot(e,n[t*2],n[t*2+1])}function Tw(e,t){var n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1}function ZF(e){e.bi_valid===16?(Qs(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)}function WF(e,t){var n=t.dyn_tree,r=t.max_code,i=t.stat_desc.static_tree,a=t.stat_desc.has_stree,o=t.stat_desc.extra_bits,s=t.stat_desc.extra_base,f=t.stat_desc.max_length,l,u,c,h,d,p,b=0;for(h=0;h<=qi;h++)e.bl_count[h]=0;for(n[e.heap[e.heap_max]*2+1]=0,l=e.heap_max+1;l<yw;l++)u=e.heap[l],h=n[n[u*2+1]*2+1]+1,h>f&&(h=f,b++),n[u*2+1]=h,!(u>r)&&(e.bl_count[h]++,d=0,u>=s&&(d=o[u-s]),p=n[u*2],e.opt_len+=p*(h+d),a&&(e.static_len+=p*(i[u*2+1]+d)));if(b!==0){do{for(h=f-1;e.bl_count[h]===0;)h--;e.bl_count[h]--,e.bl_count[h+1]+=2,e.bl_count[f]--,b-=2}while(b>0);for(h=f;h!==0;h--)for(u=e.bl_count[h];u!==0;)c=e.heap[--l],!(c>r)&&(n[c*2+1]!==h&&(e.opt_len+=(h-n[c*2+1])*n[c*2],n[c*2+1]=h),u--)}}function Iw(e,t,n){var r=new Array(qi+1),i=0,a,o;for(a=1;a<=qi;a++)r[a]=i=i+n[a-1]<<1;for(o=0;o<=t;o++){var s=e[o*2+1];s!==0&&(e[o*2]=Tw(r[s]++,s))}}function YF(){var e,t,n,r,i,a=new Array(qi+1);for(n=0,r=0;r<h0-1;r++)for(b0[r]=n,e=0;e<1<<m0[r];e++)Ys[n++]=r;for(Ys[n-1]=r,i=0,r=0;r<16;r++)for(_u[r]=i,e=0;e<1<<Eu[r];e++)Ws[i++]=r;for(i>>=7;r<Za;r++)for(_u[r]=i<<7,e=0;e<1<<Eu[r]-7;e++)Ws[256+i++]=r;for(t=0;t<=qi;t++)a[t]=0;for(e=0;e<=143;)fr[e*2+1]=8,e++,a[8]++;for(;e<=255;)fr[e*2+1]=9,e++,a[9]++;for(;e<=279;)fr[e*2+1]=7,e++,a[7]++;for(;e<=287;)fr[e*2+1]=8,e++,a[8]++;for(Iw(fr,qs+1,a),e=0;e<Za;e++)Zs[e*2+1]=5,Zs[e*2]=Tw(e,5);Ew=new y0(fr,m0,js+1,qs,qi),_w=new y0(Zs,Eu,0,Za,qi),Sw=new y0(new Array(0),jF,0,d0,VF)}function kw(e){var t;for(t=0;t<qs;t++)e.dyn_ltree[t*2]=0;for(t=0;t<Za;t++)e.dyn_dtree[t*2]=0;for(t=0;t<d0;t++)e.bl_tree[t*2]=0;e.dyn_ltree[g0*2]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function Bw(e){e.bi_valid>8?Qs(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function QF(e,t,n,r){Bw(e),r&&(Qs(e,n),Qs(e,~n)),NF.arraySet(e.pending_buf,e.window,t,n,e.pending),e.pending+=n}function Dw(e,t,n,r){var i=t*2,a=n*2;return e[i]<e[a]||e[i]===e[a]&&r[t]<=r[n]}function v0(e,t,n){for(var r=e.heap[n],i=n<<1;i<=e.heap_len&&(i<e.heap_len&&Dw(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!Dw(t,r,e.heap[i],e.depth));)e.heap[n]=e.heap[i],n=i,i<<=1;e.heap[n]=r}function Fw(e,t,n){var r,i,a=0,o,s;if(e.last_lit!==0)do r=e.pending_buf[e.d_buf+a*2]<<8|e.pending_buf[e.d_buf+a*2+1],i=e.pending_buf[e.l_buf+a],a++,r===0?Vn(e,i,t):(o=Ys[i],Vn(e,o+js+1,t),s=m0[o],s!==0&&(i-=b0[o],Ot(e,i,s)),r--,o=Cw(r),Vn(e,o,n),s=Eu[o],s!==0&&(r-=_u[o],Ot(e,r,s)));while(a<e.last_lit);Vn(e,g0,t)}function x0(e,t){var n=t.dyn_tree,r=t.stat_desc.static_tree,i=t.stat_desc.has_stree,a=t.stat_desc.elems,o,s,f=-1,l;for(e.heap_len=0,e.heap_max=yw,o=0;o<a;o++)n[o*2]!==0?(e.heap[++e.heap_len]=f=o,e.depth[o]=0):n[o*2+1]=0;for(;e.heap_len<2;)l=e.heap[++e.heap_len]=f<2?++f:0,n[l*2]=1,e.depth[l]=0,e.opt_len--,i&&(e.static_len-=r[l*2+1]);for(t.max_code=f,o=e.heap_len>>1;o>=1;o--)v0(e,n,o);l=a;do o=e.heap[1],e.heap[1]=e.heap[e.heap_len--],v0(e,n,1),s=e.heap[1],e.heap[--e.heap_max]=o,e.heap[--e.heap_max]=s,n[l*2]=n[o*2]+n[s*2],e.depth[l]=(e.depth[o]>=e.depth[s]?e.depth[o]:e.depth[s])+1,n[o*2+1]=n[s*2+1]=l,e.heap[1]=l++,v0(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],WF(e,t),Iw(n,f,e.bl_count)}function Rw(e,t,n){var r,i=-1,a,o=t[0*2+1],s=0,f=7,l=4;for(o===0&&(f=138,l=3),t[(n+1)*2+1]=65535,r=0;r<=n;r++)a=o,o=t[(r+1)*2+1],!(++s<f&&a===o)&&(s<l?e.bl_tree[a*2]+=s:a!==0?(a!==i&&e.bl_tree[a*2]++,e.bl_tree[ww*2]++):s<=10?e.bl_tree[vw*2]++:e.bl_tree[xw*2]++,s=0,i=a,o===0?(f=138,l=3):a===o?(f=6,l=3):(f=7,l=4))}function Pw(e,t,n){var r,i=-1,a,o=t[0*2+1],s=0,f=7,l=4;for(o===0&&(f=138,l=3),r=0;r<=n;r++)if(a=o,o=t[(r+1)*2+1],!(++s<f&&a===o)){if(s<l)do Vn(e,a,e.bl_tree);while(--s!==0);else a!==0?(a!==i&&(Vn(e,a,e.bl_tree),s--),Vn(e,ww,e.bl_tree),Ot(e,s-3,2)):s<=10?(Vn(e,vw,e.bl_tree),Ot(e,s-3,3)):(Vn(e,xw,e.bl_tree),Ot(e,s-11,7));s=0,i=a,o===0?(f=138,l=3):a===o?(f=6,l=3):(f=7,l=4)}}function XF(e){var t;for(Rw(e,e.dyn_ltree,e.l_desc.max_code),Rw(e,e.dyn_dtree,e.d_desc.max_code),x0(e,e.bl_desc),t=d0-1;t>=3&&e.bl_tree[Aw[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t}function $F(e,t,n,r){var i;for(Ot(e,t-257,5),Ot(e,n-1,5),Ot(e,r-4,4),i=0;i<r;i++)Ot(e,e.bl_tree[Aw[i]*2+1],3);Pw(e,e.dyn_ltree,t-1),Pw(e,e.dyn_dtree,n-1)}function KF(e){var t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return gw;if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0)return mw;for(n=32;n<js;n++)if(e.dyn_ltree[n*2]!==0)return mw;return gw}var Mw=!1;function JF(e){Mw||(YF(),Mw=!0),e.l_desc=new w0(e.dyn_ltree,Ew),e.d_desc=new w0(e.dyn_dtree,_w),e.bl_desc=new w0(e.bl_tree,Sw),e.bi_buf=0,e.bi_valid=0,kw(e)}function Nw(e,t,n,r){Ot(e,(zF<<1)+(r?1:0),3),QF(e,t,n,!0)}function eR(e){Ot(e,bw<<1,3),Vn(e,g0,fr),ZF(e)}function tR(e,t,n,r){var i,a,o=0;e.level>0?(e.strm.data_type===OF&&(e.strm.data_type=KF(e)),x0(e,e.l_desc),x0(e,e.d_desc),o=XF(e),i=e.opt_len+3+7>>>3,a=e.static_len+3+7>>>3,a<=i&&(i=a)):i=a=n+5,n+4<=i&&t!==-1?Nw(e,t,n,r):e.strategy===LF||a===i?(Ot(e,(bw<<1)+(r?1:0),3),Fw(e,fr,Zs)):(Ot(e,(UF<<1)+(r?1:0),3),$F(e,e.l_desc.max_code+1,e.d_desc.max_code+1,o+1),Fw(e,e.dyn_ltree,e.dyn_dtree)),kw(e),r&&Bw(e)}function nR(e,t,n){return e.pending_buf[e.d_buf+e.last_lit*2]=t>>>8&255,e.pending_buf[e.d_buf+e.last_lit*2+1]=t&255,e.pending_buf[e.l_buf+e.last_lit]=n&255,e.last_lit++,t===0?e.dyn_ltree[n*2]++:(e.matches++,t--,e.dyn_ltree[(Ys[n]+js+1)*2]++,e.dyn_dtree[Cw(t)*2]++),e.last_lit===e.lit_bufsize-1}ja._tr_init=JF,ja._tr_stored_block=Nw,ja._tr_flush_block=tR,ja._tr_tally=nR,ja._tr_align=eR;function rR(e,t,n,r){for(var i=e&65535|0,a=e>>>16&65535|0,o=0;n!==0;){o=n>2e3?2e3:n,n-=o;do i=i+t[r++]|0,a=a+i|0;while(--o);i%=65521,a%=65521}return i|a<<16|0}var Lw=rR;function iR(){for(var e,t=[],n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=e&1?3988292384^e>>>1:e>>>1;t[n]=e}return t}var aR=iR();function oR(e,t,n,r){var i=aR,a=r+n;e^=-1;for(var o=r;o<a;o++)e=e>>>8^i[(e^t[o])&255];return e^-1}var Ow=oR,A0={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"},It=lr,rn=ja,zw=Lw,qr=Ow,sR=A0,Zi=0,lR=1,fR=3,Zr=4,Uw=5,jn=0,Gw=1,an=-2,uR=-3,E0=-5,cR=-1,hR=1,Su=2,dR=3,pR=4,gR=0,mR=2,Cu=8,bR=9,yR=15,wR=8,vR=29,xR=256,_0=xR+1+vR,AR=30,ER=19,_R=2*_0+1,SR=15,he=3,Wr=258,_n=Wr+he+1,CR=32,Tu=42,S0=69,Iu=73,ku=91,Bu=103,Wi=113,Xs=666,it=1,$s=2,Yi=3,Wa=4,TR=3;function Yr(e,t){return e.msg=sR[t],t}function Hw(e){return(e<<1)-(e>4?9:0)}function Qr(e){for(var t=e.length;--t>=0;)e[t]=0}function Xr(e){var t=e.state,n=t.pending;n>e.avail_out&&(n=e.avail_out),n!==0&&(It.arraySet(e.output,t.pending_buf,t.pending_out,n,e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,t.pending===0&&(t.pending_out=0))}function mt(e,t){rn._tr_flush_block(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,Xr(e.strm)}function we(e,t){e.pending_buf[e.pending++]=t}function Ks(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255}function IR(e,t,n,r){var i=e.avail_in;return i>r&&(i=r),i===0?0:(e.avail_in-=i,It.arraySet(t,e.input,e.next_in,i,n),e.state.wrap===1?e.adler=zw(e.adler,t,i,n):e.state.wrap===2&&(e.adler=qr(e.adler,t,i,n)),e.next_in+=i,e.total_in+=i,i)}function Vw(e,t){var n=e.max_chain_length,r=e.strstart,i,a,o=e.prev_length,s=e.nice_match,f=e.strstart>e.w_size-_n?e.strstart-(e.w_size-_n):0,l=e.window,u=e.w_mask,c=e.prev,h=e.strstart+Wr,d=l[r+o-1],p=l[r+o];e.prev_length>=e.good_match&&(n>>=2),s>e.lookahead&&(s=e.lookahead);do if(i=t,!(l[i+o]!==p||l[i+o-1]!==d||l[i]!==l[r]||l[++i]!==l[r+1])){r+=2,i++;do;while(l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&r<h);if(a=Wr-(h-r),r=h-Wr,a>o){if(e.match_start=t,o=a,a>=s)break;d=l[r+o-1],p=l[r+o]}}while((t=c[t&u])>f&&--n!==0);return o<=e.lookahead?o:e.lookahead}function Qi(e){var t=e.w_size,n,r,i,a,o;do{if(a=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-_n)){It.arraySet(e.window,e.window,t,t,0),e.match_start-=t,e.strstart-=t,e.block_start-=t,r=e.hash_size,n=r;do i=e.head[--n],e.head[n]=i>=t?i-t:0;while(--r);r=t,n=r;do i=e.prev[--n],e.prev[n]=i>=t?i-t:0;while(--r);a+=t}if(e.strm.avail_in===0)break;if(r=IR(e.strm,e.window,e.strstart+e.lookahead,a),e.lookahead+=r,e.lookahead+e.insert>=he)for(o=e.strstart-e.insert,e.ins_h=e.window[o],e.ins_h=(e.ins_h<<e.hash_shift^e.window[o+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[o+he-1])&e.hash_mask,e.prev[o&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=o,o++,e.insert--,!(e.lookahead+e.insert<he)););}while(e.lookahead<_n&&e.strm.avail_in!==0)}function kR(e,t){var n=65535;for(n>e.pending_buf_size-5&&(n=e.pending_buf_size-5);;){if(e.lookahead<=1){if(Qi(e),e.lookahead===0&&t===Zi)return it;if(e.lookahead===0)break}e.strstart+=e.lookahead,e.lookahead=0;var r=e.block_start+n;if((e.strstart===0||e.strstart>=r)&&(e.lookahead=e.strstart-r,e.strstart=r,mt(e,!1),e.strm.avail_out===0)||e.strstart-e.block_start>=e.w_size-_n&&(mt(e,!1),e.strm.avail_out===0))return it}return e.insert=0,t===Zr?(mt(e,!0),e.strm.avail_out===0?Yi:Wa):(e.strstart>e.block_start&&(mt(e,!1),e.strm.avail_out===0),it)}function C0(e,t){for(var n,r;;){if(e.lookahead<_n){if(Qi(e),e.lookahead<_n&&t===Zi)return it;if(e.lookahead===0)break}if(n=0,e.lookahead>=he&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+he-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),n!==0&&e.strstart-n<=e.w_size-_n&&(e.match_length=Vw(e,n)),e.match_length>=he)if(r=rn._tr_tally(e,e.strstart-e.match_start,e.match_length-he),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=he){e.match_length--;do e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+he-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;while(--e.match_length!==0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+1])&e.hash_mask;else r=rn._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(mt(e,!1),e.strm.avail_out===0))return it}return e.insert=e.strstart<he-1?e.strstart:he-1,t===Zr?(mt(e,!0),e.strm.avail_out===0?Yi:Wa):e.last_lit&&(mt(e,!1),e.strm.avail_out===0)?it:$s}function Ya(e,t){for(var n,r,i;;){if(e.lookahead<_n){if(Qi(e),e.lookahead<_n&&t===Zi)return it;if(e.lookahead===0)break}if(n=0,e.lookahead>=he&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+he-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=he-1,n!==0&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-_n&&(e.match_length=Vw(e,n),e.match_length<=5&&(e.strategy===hR||e.match_length===he&&e.strstart-e.match_start>4096)&&(e.match_length=he-1)),e.prev_length>=he&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-he,r=rn._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-he),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=i&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+he-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);while(--e.prev_length!==0);if(e.match_available=0,e.match_length=he-1,e.strstart++,r&&(mt(e,!1),e.strm.avail_out===0))return it}else if(e.match_available){if(r=rn._tr_tally(e,0,e.window[e.strstart-1]),r&&mt(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return it}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=rn._tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<he-1?e.strstart:he-1,t===Zr?(mt(e,!0),e.strm.avail_out===0?Yi:Wa):e.last_lit&&(mt(e,!1),e.strm.avail_out===0)?it:$s}function BR(e,t){for(var n,r,i,a,o=e.window;;){if(e.lookahead<=Wr){if(Qi(e),e.lookahead<=Wr&&t===Zi)return it;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=he&&e.strstart>0&&(i=e.strstart-1,r=o[i],r===o[++i]&&r===o[++i]&&r===o[++i])){a=e.strstart+Wr;do;while(r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&i<a);e.match_length=Wr-(a-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=he?(n=rn._tr_tally(e,1,e.match_length-he),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=rn._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(mt(e,!1),e.strm.avail_out===0))return it}return e.insert=0,t===Zr?(mt(e,!0),e.strm.avail_out===0?Yi:Wa):e.last_lit&&(mt(e,!1),e.strm.avail_out===0)?it:$s}function DR(e,t){for(var n;;){if(e.lookahead===0&&(Qi(e),e.lookahead===0)){if(t===Zi)return it;break}if(e.match_length=0,n=rn._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(mt(e,!1),e.strm.avail_out===0))return it}return e.insert=0,t===Zr?(mt(e,!0),e.strm.avail_out===0?Yi:Wa):e.last_lit&&(mt(e,!1),e.strm.avail_out===0)?it:$s}function qn(e,t,n,r,i){this.good_length=e,this.max_lazy=t,this.nice_length=n,this.max_chain=r,this.func=i}var Qa;Qa=[new qn(0,0,0,0,kR),new qn(4,4,8,4,C0),new qn(4,5,16,8,C0),new qn(4,6,32,32,C0),new qn(4,4,16,16,Ya),new qn(8,16,32,32,Ya),new qn(8,16,128,128,Ya),new qn(8,32,128,256,Ya),new qn(32,128,258,1024,Ya),new qn(32,258,258,4096,Ya)];function FR(e){e.window_size=2*e.w_size,Qr(e.head),e.max_lazy_match=Qa[e.level].max_lazy,e.good_match=Qa[e.level].good_length,e.nice_match=Qa[e.level].nice_length,e.max_chain_length=Qa[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=he-1,e.match_available=0,e.ins_h=0}function RR(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Cu,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new It.Buf16(_R*2),this.dyn_dtree=new It.Buf16((2*AR+1)*2),this.bl_tree=new It.Buf16((2*ER+1)*2),Qr(this.dyn_ltree),Qr(this.dyn_dtree),Qr(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new It.Buf16(SR+1),this.heap=new It.Buf16(2*_0+1),Qr(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new It.Buf16(2*_0+1),Qr(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function jw(e){var t;return!e||!e.state?Yr(e,an):(e.total_in=e.total_out=0,e.data_type=mR,t=e.state,t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?Tu:Wi,e.adler=t.wrap===2?0:1,t.last_flush=Zi,rn._tr_init(t),jn)}function qw(e){var t=jw(e);return t===jn&&FR(e.state),t}function PR(e,t){return!e||!e.state||e.state.wrap!==2?an:(e.state.gzhead=t,jn)}function Zw(e,t,n,r,i,a){if(!e)return an;var o=1;if(t===cR&&(t=6),r<0?(o=0,r=-r):r>15&&(o=2,r-=16),i<1||i>bR||n!==Cu||r<8||r>15||t<0||t>9||a<0||a>pR)return Yr(e,an);r===8&&(r=9);var s=new RR;return e.state=s,s.strm=e,s.wrap=o,s.gzhead=null,s.w_bits=r,s.w_size=1<<s.w_bits,s.w_mask=s.w_size-1,s.hash_bits=i+7,s.hash_size=1<<s.hash_bits,s.hash_mask=s.hash_size-1,s.hash_shift=~~((s.hash_bits+he-1)/he),s.window=new It.Buf8(s.w_size*2),s.head=new It.Buf16(s.hash_size),s.prev=new It.Buf16(s.w_size),s.lit_bufsize=1<<i+6,s.pending_buf_size=s.lit_bufsize*4,s.pending_buf=new It.Buf8(s.pending_buf_size),s.d_buf=1*s.lit_bufsize,s.l_buf=(1+2)*s.lit_bufsize,s.level=t,s.strategy=a,s.method=n,qw(e)}function MR(e,t){return Zw(e,t,Cu,yR,wR,gR)}function NR(e,t){var n,r,i,a;if(!e||!e.state||t>Uw||t<0)return e?Yr(e,an):an;if(r=e.state,!e.output||!e.input&&e.avail_in!==0||r.status===Xs&&t!==Zr)return Yr(e,e.avail_out===0?E0:an);if(r.strm=e,n=r.last_flush,r.last_flush=t,r.status===Tu)if(r.wrap===2)e.adler=0,we(r,31),we(r,139),we(r,8),r.gzhead?(we(r,(r.gzhead.text?1:0)+(r.gzhead.hcrc?2:0)+(r.gzhead.extra?4:0)+(r.gzhead.name?8:0)+(r.gzhead.comment?16:0)),we(r,r.gzhead.time&255),we(r,r.gzhead.time>>8&255),we(r,r.gzhead.time>>16&255),we(r,r.gzhead.time>>24&255),we(r,r.level===9?2:r.strategy>=Su||r.level<2?4:0),we(r,r.gzhead.os&255),r.gzhead.extra&&r.gzhead.extra.length&&(we(r,r.gzhead.extra.length&255),we(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(e.adler=qr(e.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=S0):(we(r,0),we(r,0),we(r,0),we(r,0),we(r,0),we(r,r.level===9?2:r.strategy>=Su||r.level<2?4:0),we(r,TR),r.status=Wi);else{var o=Cu+(r.w_bits-8<<4)<<8,s=-1;r.strategy>=Su||r.level<2?s=0:r.level<6?s=1:r.level===6?s=2:s=3,o|=s<<6,r.strstart!==0&&(o|=CR),o+=31-o%31,r.status=Wi,Ks(r,o),r.strstart!==0&&(Ks(r,e.adler>>>16),Ks(r,e.adler&65535)),e.adler=1}if(r.status===S0)if(r.gzhead.extra){for(i=r.pending;r.gzindex<(r.gzhead.extra.length&65535)&&!(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=qr(e.adler,r.pending_buf,r.pending-i,i)),Xr(e),i=r.pending,r.pending===r.pending_buf_size));)we(r,r.gzhead.extra[r.gzindex]&255),r.gzindex++;r.gzhead.hcrc&&r.pending>i&&(e.adler=qr(e.adler,r.pending_buf,r.pending-i,i)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=Iu)}else r.status=Iu;if(r.status===Iu)if(r.gzhead.name){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=qr(e.adler,r.pending_buf,r.pending-i,i)),Xr(e),i=r.pending,r.pending===r.pending_buf_size)){a=1;break}r.gzindex<r.gzhead.name.length?a=r.gzhead.name.charCodeAt(r.gzindex++)&255:a=0,we(r,a)}while(a!==0);r.gzhead.hcrc&&r.pending>i&&(e.adler=qr(e.adler,r.pending_buf,r.pending-i,i)),a===0&&(r.gzindex=0,r.status=ku)}else r.status=ku;if(r.status===ku)if(r.gzhead.comment){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=qr(e.adler,r.pending_buf,r.pending-i,i)),Xr(e),i=r.pending,r.pending===r.pending_buf_size)){a=1;break}r.gzindex<r.gzhead.comment.length?a=r.gzhead.comment.charCodeAt(r.gzindex++)&255:a=0,we(r,a)}while(a!==0);r.gzhead.hcrc&&r.pending>i&&(e.adler=qr(e.adler,r.pending_buf,r.pending-i,i)),a===0&&(r.status=Bu)}else r.status=Bu;if(r.status===Bu&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&Xr(e),r.pending+2<=r.pending_buf_size&&(we(r,e.adler&255),we(r,e.adler>>8&255),e.adler=0,r.status=Wi)):r.status=Wi),r.pending!==0){if(Xr(e),e.avail_out===0)return r.last_flush=-1,jn}else if(e.avail_in===0&&Hw(t)<=Hw(n)&&t!==Zr)return Yr(e,E0);if(r.status===Xs&&e.avail_in!==0)return Yr(e,E0);if(e.avail_in!==0||r.lookahead!==0||t!==Zi&&r.status!==Xs){var f=r.strategy===Su?DR(r,t):r.strategy===dR?BR(r,t):Qa[r.level].func(r,t);if((f===Yi||f===Wa)&&(r.status=Xs),f===it||f===Yi)return e.avail_out===0&&(r.last_flush=-1),jn;if(f===$s&&(t===lR?rn._tr_align(r):t!==Uw&&(rn._tr_stored_block(r,0,0,!1),t===fR&&(Qr(r.head),r.lookahead===0&&(r.strstart=0,r.block_start=0,r.insert=0))),Xr(e),e.avail_out===0))return r.last_flush=-1,jn}return t!==Zr?jn:r.wrap<=0?Gw:(r.wrap===2?(we(r,e.adler&255),we(r,e.adler>>8&255),we(r,e.adler>>16&255),we(r,e.adler>>24&255),we(r,e.total_in&255),we(r,e.total_in>>8&255),we(r,e.total_in>>16&255),we(r,e.total_in>>24&255)):(Ks(r,e.adler>>>16),Ks(r,e.adler&65535)),Xr(e),r.wrap>0&&(r.wrap=-r.wrap),r.pending!==0?jn:Gw)}function LR(e){var t;return!e||!e.state?an:(t=e.state.status,t!==Tu&&t!==S0&&t!==Iu&&t!==ku&&t!==Bu&&t!==Wi&&t!==Xs?Yr(e,an):(e.state=null,t===Wi?Yr(e,uR):jn))}function OR(e,t){var n=t.length,r,i,a,o,s,f,l,u;if(!e||!e.state||(r=e.state,o=r.wrap,o===2||o===1&&r.status!==Tu||r.lookahead))return an;for(o===1&&(e.adler=zw(e.adler,t,n,0)),r.wrap=0,n>=r.w_size&&(o===0&&(Qr(r.head),r.strstart=0,r.block_start=0,r.insert=0),u=new It.Buf8(r.w_size),It.arraySet(u,t,n-r.w_size,r.w_size,0),t=u,n=r.w_size),s=e.avail_in,f=e.next_in,l=e.input,e.avail_in=n,e.next_in=0,e.input=t,Qi(r);r.lookahead>=he;){i=r.strstart,a=r.lookahead-(he-1);do r.ins_h=(r.ins_h<<r.hash_shift^r.window[i+he-1])&r.hash_mask,r.prev[i&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=i,i++;while(--a);r.strstart=i,r.lookahead=he-1,Qi(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=he-1,r.match_available=0,e.next_in=f,e.input=l,e.avail_in=s,r.wrap=o,jn}Hn.deflateInit=MR,Hn.deflateInit2=Zw,Hn.deflateReset=qw,Hn.deflateResetKeep=jw,Hn.deflateSetHeader=PR,Hn.deflate=NR,Hn.deflateEnd=LR,Hn.deflateSetDictionary=OR,Hn.deflateInfo="pako deflate (from Nodeca project)";var Xi={},Du=lr,Ww=!0,Yw=!0;try{String.fromCharCode.apply(null,[0])}catch{Ww=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{Yw=!1}for(var Js=new Du.Buf8(256),$r=0;$r<256;$r++)Js[$r]=$r>=252?6:$r>=248?5:$r>=240?4:$r>=224?3:$r>=192?2:1;Js[254]=Js[254]=1,Xi.string2buf=function(e){var t,n,r,i,a,o=e.length,s=0;for(i=0;i<o;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),s+=n<128?1:n<2048?2:n<65536?3:4;for(t=new Du.Buf8(s),a=0,i=0;a<s;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),n<128?t[a++]=n:n<2048?(t[a++]=192|n>>>6,t[a++]=128|n&63):n<65536?(t[a++]=224|n>>>12,t[a++]=128|n>>>6&63,t[a++]=128|n&63):(t[a++]=240|n>>>18,t[a++]=128|n>>>12&63,t[a++]=128|n>>>6&63,t[a++]=128|n&63);return t};function Qw(e,t){if(t<65534&&(e.subarray&&Yw||!e.subarray&&Ww))return String.fromCharCode.apply(null,Du.shrinkBuf(e,t));for(var n="",r=0;r<t;r++)n+=String.fromCharCode(e[r]);return n}Xi.buf2binstring=function(e){return Qw(e,e.length)},Xi.binstring2buf=function(e){for(var t=new Du.Buf8(e.length),n=0,r=t.length;n<r;n++)t[n]=e.charCodeAt(n);return t},Xi.buf2string=function(e,t){var n,r,i,a,o=t||e.length,s=new Array(o*2);for(r=0,n=0;n<o;){if(i=e[n++],i<128){s[r++]=i;continue}if(a=Js[i],a>4){s[r++]=65533,n+=a-1;continue}for(i&=a===2?31:a===3?15:7;a>1&&n<o;)i=i<<6|e[n++]&63,a--;if(a>1){s[r++]=65533;continue}i<65536?s[r++]=i:(i-=65536,s[r++]=55296|i>>10&1023,s[r++]=56320|i&1023)}return Qw(s,r)},Xi.utf8border=function(e,t){var n;for(t=t||e.length,t>e.length&&(t=e.length),n=t-1;n>=0&&(e[n]&192)===128;)n--;return n<0||n===0?t:n+Js[e[n]]>t?n:t};function zR(){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 Xw=zR,el=Hn,tl=lr,T0=Xi,I0=A0,UR=Xw,$w=Object.prototype.toString,GR=0,k0=4,Xa=0,Kw=1,Jw=2,HR=-1,VR=0,jR=8;function $i(e){if(!(this instanceof $i))return new $i(e);this.options=tl.assign({level:HR,method:jR,chunkSize:16384,windowBits:15,memLevel:8,strategy:VR,to:""},e||{});var t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new UR,this.strm.avail_out=0;var n=el.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==Xa)throw new Error(I0[n]);if(t.header&&el.deflateSetHeader(this.strm,t.header),t.dictionary){var r;if(typeof t.dictionary=="string"?r=T0.string2buf(t.dictionary):$w.call(t.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(t.dictionary):r=t.dictionary,n=el.deflateSetDictionary(this.strm,r),n!==Xa)throw new Error(I0[n]);this._dict_set=!0}}$i.prototype.push=function(e,t){var n=this.strm,r=this.options.chunkSize,i,a;if(this.ended)return!1;a=t===~~t?t:t===!0?k0:GR,typeof e=="string"?n.input=T0.string2buf(e):$w.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=new tl.Buf8(r),n.next_out=0,n.avail_out=r),i=el.deflate(n,a),i!==Kw&&i!==Xa)return this.onEnd(i),this.ended=!0,!1;(n.avail_out===0||n.avail_in===0&&(a===k0||a===Jw))&&(this.options.to==="string"?this.onData(T0.buf2binstring(tl.shrinkBuf(n.output,n.next_out))):this.onData(tl.shrinkBuf(n.output,n.next_out)))}while((n.avail_in>0||n.avail_out===0)&&i!==Kw);return a===k0?(i=el.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===Xa):(a===Jw&&(this.onEnd(Xa),n.avail_out=0),!0)},$i.prototype.onData=function(e){this.chunks.push(e)},$i.prototype.onEnd=function(e){e===Xa&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=tl.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function B0(e,t){var n=new $i(t);if(n.push(e,!0),n.err)throw n.msg||I0[n.err];return n.result}function qR(e,t){return t=t||{},t.raw=!0,B0(e,t)}function ZR(e,t){return t=t||{},t.gzip=!0,B0(e,t)}Vs.Deflate=$i,Vs.deflate=B0,Vs.deflateRaw=qR,Vs.gzip=ZR;var nl={},Sn={},Fu=30,WR=12,YR=function(t,n){var r,i,a,o,s,f,l,u,c,h,d,p,b,y,w,S,C,_,k,B,I,R,M,j,O;r=t.state,i=t.next_in,j=t.input,a=i+(t.avail_in-5),o=t.next_out,O=t.output,s=o-(n-t.avail_out),f=o+(t.avail_out-257),l=r.dmax,u=r.wsize,c=r.whave,h=r.wnext,d=r.window,p=r.hold,b=r.bits,y=r.lencode,w=r.distcode,S=(1<<r.lenbits)-1,C=(1<<r.distbits)-1;e:do{b<15&&(p+=j[i++]<<b,b+=8,p+=j[i++]<<b,b+=8),_=y[p&S];t:for(;;){if(k=_>>>24,p>>>=k,b-=k,k=_>>>16&255,k===0)O[o++]=_&65535;else if(k&16){B=_&65535,k&=15,k&&(b<k&&(p+=j[i++]<<b,b+=8),B+=p&(1<<k)-1,p>>>=k,b-=k),b<15&&(p+=j[i++]<<b,b+=8,p+=j[i++]<<b,b+=8),_=w[p&C];n:for(;;){if(k=_>>>24,p>>>=k,b-=k,k=_>>>16&255,k&16){if(I=_&65535,k&=15,b<k&&(p+=j[i++]<<b,b+=8,b<k&&(p+=j[i++]<<b,b+=8)),I+=p&(1<<k)-1,I>l){t.msg="invalid distance too far back",r.mode=Fu;break e}if(p>>>=k,b-=k,k=o-s,I>k){if(k=I-k,k>c&&r.sane){t.msg="invalid distance too far back",r.mode=Fu;break e}if(R=0,M=d,h===0){if(R+=u-k,k<B){B-=k;do O[o++]=d[R++];while(--k);R=o-I,M=O}}else if(h<k){if(R+=u+h-k,k-=h,k<B){B-=k;do O[o++]=d[R++];while(--k);if(R=0,h<B){k=h,B-=k;do O[o++]=d[R++];while(--k);R=o-I,M=O}}}else if(R+=h-k,k<B){B-=k;do O[o++]=d[R++];while(--k);R=o-I,M=O}for(;B>2;)O[o++]=M[R++],O[o++]=M[R++],O[o++]=M[R++],B-=3;B&&(O[o++]=M[R++],B>1&&(O[o++]=M[R++]))}else{R=o-I;do O[o++]=O[R++],O[o++]=O[R++],O[o++]=O[R++],B-=3;while(B>2);B&&(O[o++]=O[R++],B>1&&(O[o++]=O[R++]))}}else if(k&64){t.msg="invalid distance code",r.mode=Fu;break e}else{_=w[(_&65535)+(p&(1<<k)-1)];continue n}break}}else if(k&64)if(k&32){r.mode=WR;break e}else{t.msg="invalid literal/length code",r.mode=Fu;break e}else{_=y[(_&65535)+(p&(1<<k)-1)];continue t}break}}while(i<a&&o<f);B=b>>3,i-=B,b-=B<<3,p&=(1<<b)-1,t.next_in=i,t.next_out=o,t.avail_in=i<a?5+(a-i):5-(i-a),t.avail_out=o<f?257+(f-o):257-(o-f),r.hold=p,r.bits=b},ev=lr,$a=15,tv=852,nv=592,rv=0,D0=1,iv=2,QR=[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],XR=[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],$R=[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],KR=[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],JR=function(t,n,r,i,a,o,s,f){var l=f.bits,u=0,c=0,h=0,d=0,p=0,b=0,y=0,w=0,S=0,C=0,_,k,B,I,R,M=null,j=0,O,ne=new ev.Buf16($a+1),oe=new ev.Buf16($a+1),pe=null,ke=0,Xe,De,$e;for(u=0;u<=$a;u++)ne[u]=0;for(c=0;c<i;c++)ne[n[r+c]]++;for(p=l,d=$a;d>=1&&ne[d]===0;d--);if(p>d&&(p=d),d===0)return a[o++]=1<<24|64<<16|0,a[o++]=1<<24|64<<16|0,f.bits=1,0;for(h=1;h<d&&ne[h]===0;h++);for(p<h&&(p=h),w=1,u=1;u<=$a;u++)if(w<<=1,w-=ne[u],w<0)return-1;if(w>0&&(t===rv||d!==1))return-1;for(oe[1]=0,u=1;u<$a;u++)oe[u+1]=oe[u]+ne[u];for(c=0;c<i;c++)n[r+c]!==0&&(s[oe[n[r+c]]++]=c);if(t===rv?(M=pe=s,O=19):t===D0?(M=QR,j-=257,pe=XR,ke-=257,O=256):(M=$R,pe=KR,O=-1),C=0,c=0,u=h,R=o,b=p,y=0,B=-1,S=1<<p,I=S-1,t===D0&&S>tv||t===iv&&S>nv)return 1;for(;;){Xe=u-y,s[c]<O?(De=0,$e=s[c]):s[c]>O?(De=pe[ke+s[c]],$e=M[j+s[c]]):(De=32+64,$e=0),_=1<<u-y,k=1<<b,h=k;do k-=_,a[R+(C>>y)+k]=Xe<<24|De<<16|$e|0;while(k!==0);for(_=1<<u-1;C&_;)_>>=1;if(_!==0?(C&=_-1,C+=_):C=0,c++,--ne[u]===0){if(u===d)break;u=n[r+s[c]]}if(u>p&&(C&I)!==B){for(y===0&&(y=p),R+=h,b=u-y,w=1<<b;b+y<d&&(w-=ne[b+y],!(w<=0));)b++,w<<=1;if(S+=1<<b,t===D0&&S>tv||t===iv&&S>nv)return 1;B=C&I,a[B]=p<<24|b<<16|R-o|0}}return C!==0&&(a[R+C]=u-y<<24|64<<16|0),f.bits=p,0},Xt=lr,F0=Lw,Zn=Ow,e7=YR,rl=JR,t7=0,av=1,ov=2,sv=4,n7=5,Ru=6,Ki=0,r7=1,i7=2,on=-2,lv=-3,fv=-4,a7=-5,uv=8,cv=1,hv=2,dv=3,pv=4,gv=5,mv=6,bv=7,yv=8,wv=9,vv=10,Pu=11,ur=12,R0=13,xv=14,P0=15,Av=16,Ev=17,_v=18,Sv=19,Mu=20,Nu=21,Cv=22,Tv=23,Iv=24,kv=25,Bv=26,M0=27,Dv=28,Fv=29,Ve=30,Rv=31,o7=32,s7=852,l7=592,f7=15,u7=f7;function Pv(e){return(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24)}function c7(){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=new Xt.Buf16(320),this.work=new Xt.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function Mv(e){var t;return!e||!e.state?on:(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=t.wrap&1),t.mode=cv,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Xt.Buf32(s7),t.distcode=t.distdyn=new Xt.Buf32(l7),t.sane=1,t.back=-1,Ki)}function Nv(e){var t;return!e||!e.state?on:(t=e.state,t.wsize=0,t.whave=0,t.wnext=0,Mv(e))}function Lv(e,t){var n,r;return!e||!e.state||(r=e.state,t<0?(n=0,t=-t):(n=(t>>4)+1,t<48&&(t&=15)),t&&(t<8||t>15))?on:(r.window!==null&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,Nv(e))}function Ov(e,t){var n,r;return e?(r=new c7,e.state=r,r.window=null,n=Lv(e,t),n!==Ki&&(e.state=null),n):on}function h7(e){return Ov(e,u7)}var zv=!0,N0,L0;function d7(e){if(zv){var t;for(N0=new Xt.Buf32(512),L0=new Xt.Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(rl(av,e.lens,0,288,N0,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;rl(ov,e.lens,0,32,L0,0,e.work,{bits:5}),zv=!1}e.lencode=N0,e.lenbits=9,e.distcode=L0,e.distbits=5}function Uv(e,t,n,r){var i,a=e.state;return a.window===null&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new Xt.Buf8(a.wsize)),r>=a.wsize?(Xt.arraySet(a.window,t,n-a.wsize,a.wsize,0),a.wnext=0,a.whave=a.wsize):(i=a.wsize-a.wnext,i>r&&(i=r),Xt.arraySet(a.window,t,n-r,i,a.wnext),r-=i,r?(Xt.arraySet(a.window,t,n-r,r,0),a.wnext=r,a.whave=a.wsize):(a.wnext+=i,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=i))),0}function p7(e,t){var n,r,i,a,o,s,f,l,u,c,h,d,p,b,y=0,w,S,C,_,k,B,I,R,M=new Xt.Buf8(4),j,O,ne=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&e.avail_in!==0)return on;n=e.state,n.mode===ur&&(n.mode=R0),o=e.next_out,i=e.output,f=e.avail_out,a=e.next_in,r=e.input,s=e.avail_in,l=n.hold,u=n.bits,c=s,h=f,R=Ki;e:for(;;)switch(n.mode){case cv:if(n.wrap===0){n.mode=R0;break}for(;u<16;){if(s===0)break e;s--,l+=r[a++]<<u,u+=8}if(n.wrap&2&&l===35615){n.check=0,M[0]=l&255,M[1]=l>>>8&255,n.check=Zn(n.check,M,2,0),l=0,u=0,n.mode=hv;break}if(n.flags=0,n.head&&(n.head.done=!1),!(n.wrap&1)||(((l&255)<<8)+(l>>8))%31){e.msg="incorrect header check",n.mode=Ve;break}if((l&15)!==uv){e.msg="unknown compression method",n.mode=Ve;break}if(l>>>=4,u-=4,I=(l&15)+8,n.wbits===0)n.wbits=I;else if(I>n.wbits){e.msg="invalid window size",n.mode=Ve;break}n.dmax=1<<I,e.adler=n.check=1,n.mode=l&512?vv:ur,l=0,u=0;break;case hv:for(;u<16;){if(s===0)break e;s--,l+=r[a++]<<u,u+=8}if(n.flags=l,(n.flags&255)!==uv){e.msg="unknown compression method",n.mode=Ve;break}if(n.flags&57344){e.msg="unknown header flags set",n.mode=Ve;break}n.head&&(n.head.text=l>>8&1),n.flags&512&&(M[0]=l&255,M[1]=l>>>8&255,n.check=Zn(n.check,M,2,0)),l=0,u=0,n.mode=dv;case dv:for(;u<32;){if(s===0)break e;s--,l+=r[a++]<<u,u+=8}n.head&&(n.head.time=l),n.flags&512&&(M[0]=l&255,M[1]=l>>>8&255,M[2]=l>>>16&255,M[3]=l>>>24&255,n.check=Zn(n.check,M,4,0)),l=0,u=0,n.mode=pv;case pv:for(;u<16;){if(s===0)break e;s--,l+=r[a++]<<u,u+=8}n.head&&(n.head.xflags=l&255,n.head.os=l>>8),n.flags&512&&(M[0]=l&255,M[1]=l>>>8&255,n.check=Zn(n.check,M,2,0)),l=0,u=0,n.mode=gv;case gv:if(n.flags&1024){for(;u<16;){if(s===0)break e;s--,l+=r[a++]<<u,u+=8}n.length=l,n.head&&(n.head.extra_len=l),n.flags&512&&(M[0]=l&255,M[1]=l>>>8&255,n.check=Zn(n.check,M,2,0)),l=0,u=0}else n.head&&(n.head.extra=null);n.mode=mv;case mv:if(n.flags&1024&&(d=n.length,d>s&&(d=s),d&&(n.head&&(I=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Array(n.head.extra_len)),Xt.arraySet(n.head.extra,r,a,d,I)),n.flags&512&&(n.check=Zn(n.check,r,d,a)),s-=d,a+=d,n.length-=d),n.length))break e;n.length=0,n.mode=bv;case bv:if(n.flags&2048){if(s===0)break e;d=0;do I=r[a+d++],n.head&&I&&n.length<65536&&(n.head.name+=String.fromCharCode(I));while(I&&d<s);if(n.flags&512&&(n.check=Zn(n.check,r,d,a)),s-=d,a+=d,I)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=yv;case yv:if(n.flags&4096){if(s===0)break e;d=0;do I=r[a+d++],n.head&&I&&n.length<65536&&(n.head.comment+=String.fromCharCode(I));while(I&&d<s);if(n.flags&512&&(n.check=Zn(n.check,r,d,a)),s-=d,a+=d,I)break e}else n.head&&(n.head.comment=null);n.mode=wv;case wv:if(n.flags&512){for(;u<16;){if(s===0)break e;s--,l+=r[a++]<<u,u+=8}if(l!==(n.check&65535)){e.msg="header crc mismatch",n.mode=Ve;break}l=0,u=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=ur;break;case vv:for(;u<32;){if(s===0)break e;s--,l+=r[a++]<<u,u+=8}e.adler=n.check=Pv(l),l=0,u=0,n.mode=Pu;case Pu:if(n.havedict===0)return e.next_out=o,e.avail_out=f,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=u,i7;e.adler=n.check=1,n.mode=ur;case ur:if(t===n7||t===Ru)break e;case R0:if(n.last){l>>>=u&7,u-=u&7,n.mode=M0;break}for(;u<3;){if(s===0)break e;s--,l+=r[a++]<<u,u+=8}switch(n.last=l&1,l>>>=1,u-=1,l&3){case 0:n.mode=xv;break;case 1:if(d7(n),n.mode=Mu,t===Ru){l>>>=2,u-=2;break e}break;case 2:n.mode=Ev;break;case 3:e.msg="invalid block type",n.mode=Ve}l>>>=2,u-=2;break;case xv:for(l>>>=u&7,u-=u&7;u<32;){if(s===0)break e;s--,l+=r[a++]<<u,u+=8}if((l&65535)!==(l>>>16^65535)){e.msg="invalid stored block lengths",n.mode=Ve;break}if(n.length=l&65535,l=0,u=0,n.mode=P0,t===Ru)break e;case P0:n.mode=Av;case Av:if(d=n.length,d){if(d>s&&(d=s),d>f&&(d=f),d===0)break e;Xt.arraySet(i,r,a,d,o),s-=d,a+=d,f-=d,o+=d,n.length-=d;break}n.mode=ur;break;case Ev:for(;u<14;){if(s===0)break e;s--,l+=r[a++]<<u,u+=8}if(n.nlen=(l&31)+257,l>>>=5,u-=5,n.ndist=(l&31)+1,l>>>=5,u-=5,n.ncode=(l&15)+4,l>>>=4,u-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=Ve;break}n.have=0,n.mode=_v;case _v:for(;n.have<n.ncode;){for(;u<3;){if(s===0)break e;s--,l+=r[a++]<<u,u+=8}n.lens[ne[n.have++]]=l&7,l>>>=3,u-=3}for(;n.have<19;)n.lens[ne[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,j={bits:n.lenbits},R=rl(t7,n.lens,0,19,n.lencode,0,n.work,j),n.lenbits=j.bits,R){e.msg="invalid code lengths set",n.mode=Ve;break}n.have=0,n.mode=Sv;case Sv:for(;n.have<n.nlen+n.ndist;){for(;y=n.lencode[l&(1<<n.lenbits)-1],w=y>>>24,S=y>>>16&255,C=y&65535,!(w<=u);){if(s===0)break e;s--,l+=r[a++]<<u,u+=8}if(C<16)l>>>=w,u-=w,n.lens[n.have++]=C;else{if(C===16){for(O=w+2;u<O;){if(s===0)break e;s--,l+=r[a++]<<u,u+=8}if(l>>>=w,u-=w,n.have===0){e.msg="invalid bit length repeat",n.mode=Ve;break}I=n.lens[n.have-1],d=3+(l&3),l>>>=2,u-=2}else if(C===17){for(O=w+3;u<O;){if(s===0)break e;s--,l+=r[a++]<<u,u+=8}l>>>=w,u-=w,I=0,d=3+(l&7),l>>>=3,u-=3}else{for(O=w+7;u<O;){if(s===0)break e;s--,l+=r[a++]<<u,u+=8}l>>>=w,u-=w,I=0,d=11+(l&127),l>>>=7,u-=7}if(n.have+d>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=Ve;break}for(;d--;)n.lens[n.have++]=I}}if(n.mode===Ve)break;if(n.lens[256]===0){e.msg="invalid code -- missing end-of-block",n.mode=Ve;break}if(n.lenbits=9,j={bits:n.lenbits},R=rl(av,n.lens,0,n.nlen,n.lencode,0,n.work,j),n.lenbits=j.bits,R){e.msg="invalid literal/lengths set",n.mode=Ve;break}if(n.distbits=6,n.distcode=n.distdyn,j={bits:n.distbits},R=rl(ov,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,j),n.distbits=j.bits,R){e.msg="invalid distances set",n.mode=Ve;break}if(n.mode=Mu,t===Ru)break e;case Mu:n.mode=Nu;case Nu:if(s>=6&&f>=258){e.next_out=o,e.avail_out=f,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=u,e7(e,h),o=e.next_out,i=e.output,f=e.avail_out,a=e.next_in,r=e.input,s=e.avail_in,l=n.hold,u=n.bits,n.mode===ur&&(n.back=-1);break}for(n.back=0;y=n.lencode[l&(1<<n.lenbits)-1],w=y>>>24,S=y>>>16&255,C=y&65535,!(w<=u);){if(s===0)break e;s--,l+=r[a++]<<u,u+=8}if(S&&!(S&240)){for(_=w,k=S,B=C;y=n.lencode[B+((l&(1<<_+k)-1)>>_)],w=y>>>24,S=y>>>16&255,C=y&65535,!(_+w<=u);){if(s===0)break e;s--,l+=r[a++]<<u,u+=8}l>>>=_,u-=_,n.back+=_}if(l>>>=w,u-=w,n.back+=w,n.length=C,S===0){n.mode=Bv;break}if(S&32){n.back=-1,n.mode=ur;break}if(S&64){e.msg="invalid literal/length code",n.mode=Ve;break}n.extra=S&15,n.mode=Cv;case Cv:if(n.extra){for(O=n.extra;u<O;){if(s===0)break e;s--,l+=r[a++]<<u,u+=8}n.length+=l&(1<<n.extra)-1,l>>>=n.extra,u-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=Tv;case Tv:for(;y=n.distcode[l&(1<<n.distbits)-1],w=y>>>24,S=y>>>16&255,C=y&65535,!(w<=u);){if(s===0)break e;s--,l+=r[a++]<<u,u+=8}if(!(S&240)){for(_=w,k=S,B=C;y=n.distcode[B+((l&(1<<_+k)-1)>>_)],w=y>>>24,S=y>>>16&255,C=y&65535,!(_+w<=u);){if(s===0)break e;s--,l+=r[a++]<<u,u+=8}l>>>=_,u-=_,n.back+=_}if(l>>>=w,u-=w,n.back+=w,S&64){e.msg="invalid distance code",n.mode=Ve;break}n.offset=C,n.extra=S&15,n.mode=Iv;case Iv:if(n.extra){for(O=n.extra;u<O;){if(s===0)break e;s--,l+=r[a++]<<u,u+=8}n.offset+=l&(1<<n.extra)-1,l>>>=n.extra,u-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=Ve;break}n.mode=kv;case kv:if(f===0)break e;if(d=h-f,n.offset>d){if(d=n.offset-d,d>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=Ve;break}d>n.wnext?(d-=n.wnext,p=n.wsize-d):p=n.wnext-d,d>n.length&&(d=n.length),b=n.window}else b=i,p=o-n.offset,d=n.length;d>f&&(d=f),f-=d,n.length-=d;do i[o++]=b[p++];while(--d);n.length===0&&(n.mode=Nu);break;case Bv:if(f===0)break e;i[o++]=n.length,f--,n.mode=Nu;break;case M0:if(n.wrap){for(;u<32;){if(s===0)break e;s--,l|=r[a++]<<u,u+=8}if(h-=f,e.total_out+=h,n.total+=h,h&&(e.adler=n.check=n.flags?Zn(n.check,i,h,o-h):F0(n.check,i,h,o-h)),h=f,(n.flags?l:Pv(l))!==n.check){e.msg="incorrect data check",n.mode=Ve;break}l=0,u=0}n.mode=Dv;case Dv:if(n.wrap&&n.flags){for(;u<32;){if(s===0)break e;s--,l+=r[a++]<<u,u+=8}if(l!==(n.total&4294967295)){e.msg="incorrect length check",n.mode=Ve;break}l=0,u=0}n.mode=Fv;case Fv:R=r7;break e;case Ve:R=lv;break e;case Rv:return fv;case o7:default:return on}return e.next_out=o,e.avail_out=f,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=u,(n.wsize||h!==e.avail_out&&n.mode<Ve&&(n.mode<M0||t!==sv))&&Uv(e,e.output,e.next_out,h-e.avail_out),c-=e.avail_in,h-=e.avail_out,e.total_in+=c,e.total_out+=h,n.total+=h,n.wrap&&h&&(e.adler=n.check=n.flags?Zn(n.check,i,h,e.next_out-h):F0(n.check,i,h,e.next_out-h)),e.data_type=n.bits+(n.last?64:0)+(n.mode===ur?128:0)+(n.mode===Mu||n.mode===P0?256:0),(c===0&&h===0||t===sv)&&R===Ki&&(R=a7),R}function g7(e){if(!e||!e.state)return on;var t=e.state;return t.window&&(t.window=null),e.state=null,Ki}function m7(e,t){var n;return!e||!e.state||(n=e.state,!(n.wrap&2))?on:(n.head=t,t.done=!1,Ki)}function b7(e,t){var n=t.length,r,i,a;return!e||!e.state||(r=e.state,r.wrap!==0&&r.mode!==Pu)?on:r.mode===Pu&&(i=1,i=F0(i,t,n,0),i!==r.check)?lv:(a=Uv(e,t,n,n),a?(r.mode=Rv,fv):(r.havedict=1,Ki))}Sn.inflateReset=Nv,Sn.inflateReset2=Lv,Sn.inflateResetKeep=Mv,Sn.inflateInit=h7,Sn.inflateInit2=Ov,Sn.inflate=p7,Sn.inflateEnd=g7,Sn.inflateGetHeader=m7,Sn.inflateSetDictionary=b7,Sn.inflateInfo="pako inflate (from Nodeca project)";var Gv={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};function y7(){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}var w7=y7,Ka=Sn,il=lr,Lu=Xi,et=Gv,O0=A0,v7=Xw,x7=w7,Hv=Object.prototype.toString;function Ji(e){if(!(this instanceof Ji))return new Ji(e);this.options=il.assign({chunkSize:16384,windowBits:0,to:""},e||{});var t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,t.windowBits===0&&(t.windowBits=-15)),t.windowBits>=0&&t.windowBits<16&&!(e&&e.windowBits)&&(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(t.windowBits&15||(t.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new v7,this.strm.avail_out=0;var n=Ka.inflateInit2(this.strm,t.windowBits);if(n!==et.Z_OK)throw new Error(O0[n]);if(this.header=new x7,Ka.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=Lu.string2buf(t.dictionary):Hv.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=Ka.inflateSetDictionary(this.strm,t.dictionary),n!==et.Z_OK)))throw new Error(O0[n])}Ji.prototype.push=function(e,t){var n=this.strm,r=this.options.chunkSize,i=this.options.dictionary,a,o,s,f,l,u=!1;if(this.ended)return!1;o=t===~~t?t:t===!0?et.Z_FINISH:et.Z_NO_FLUSH,typeof e=="string"?n.input=Lu.binstring2buf(e):Hv.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=new il.Buf8(r),n.next_out=0,n.avail_out=r),a=Ka.inflate(n,et.Z_NO_FLUSH),a===et.Z_NEED_DICT&&i&&(a=Ka.inflateSetDictionary(this.strm,i)),a===et.Z_BUF_ERROR&&u===!0&&(a=et.Z_OK,u=!1),a!==et.Z_STREAM_END&&a!==et.Z_OK)return this.onEnd(a),this.ended=!0,!1;n.next_out&&(n.avail_out===0||a===et.Z_STREAM_END||n.avail_in===0&&(o===et.Z_FINISH||o===et.Z_SYNC_FLUSH))&&(this.options.to==="string"?(s=Lu.utf8border(n.output,n.next_out),f=n.next_out-s,l=Lu.buf2string(n.output,s),n.next_out=f,n.avail_out=r-f,f&&il.arraySet(n.output,n.output,s,f,0),this.onData(l)):this.onData(il.shrinkBuf(n.output,n.next_out))),n.avail_in===0&&n.avail_out===0&&(u=!0)}while((n.avail_in>0||n.avail_out===0)&&a!==et.Z_STREAM_END);return a===et.Z_STREAM_END&&(o=et.Z_FINISH),o===et.Z_FINISH?(a=Ka.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,a===et.Z_OK):(o===et.Z_SYNC_FLUSH&&(this.onEnd(et.Z_OK),n.avail_out=0),!0)},Ji.prototype.onData=function(e){this.chunks.push(e)},Ji.prototype.onEnd=function(e){e===et.Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=il.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function z0(e,t){var n=new Ji(t);if(n.push(e,!0),n.err)throw n.msg||O0[n.err];return n.result}function A7(e,t){return t=t||{},t.raw=!0,z0(e,t)}nl.Inflate=Ji,nl.inflate=z0,nl.inflateRaw=A7,nl.ungzip=z0;var E7=lr.assign,_7=Vs,S7=nl,C7=Gv,Vv={};E7(Vv,_7,S7,C7);var Ou=Vv;async function Kr(e){try{let t,n=0,r=0;const i=[];let a=0,o;do{const f=e.subarray(n);if(o=new Ou.Inflate,{strm:t}=o,o.push(f,Ou.Z_SYNC_FLUSH),o.err)throw new Error(o.msg);n+=t.next_in,i[r]=o.result,a+=i[r].length,r+=1}while(t.avail_in);const s=new Uint8Array(a);for(let f=0,l=0;f<i.length;f++)s.set(i[f],l),l+=i[f].length;return ye.Buffer.from(s)}catch(t){throw`${t}`.match(/incorrect header check/)?new Error("problem decompressing block: incorrect gzip header check"):t}}async function jv(e,t){try{let n;const{minv:r,maxv:i}=t;let a=r.blockPosition,o=r.dataPosition;const s=[],f=[],l=[];let u=0,c=0;do{const p=e.subarray(a-r.blockPosition),b=new Ou.Inflate;if({strm:n}=b,b.push(p,Ou.Z_SYNC_FLUSH),b.err)throw new Error(b.msg);const y=b.result;s.push(y);let w=y.length;f.push(a),l.push(o),s.length===1&&r.dataPosition&&(s[0]=s[0].subarray(r.dataPosition),w=s[0].length);const S=a;if(a+=n.next_in,o+=w,S>=i.blockPosition){s[c]=s[c].subarray(0,i.blockPosition===r.blockPosition?i.dataPosition-r.dataPosition+1:i.dataPosition+1),f.push(a),l.push(o),u+=s[c].length;break}u+=s[c].length,c++}while(n.avail_in);const h=new Uint8Array(u);for(let p=0,b=0;p<s.length;p++)h.set(s[p],b),b+=s[p].length;return{buffer:ye.Buffer.from(h),cpositions:f,dpositions:l}}catch(n){throw`${n}`.match(/incorrect header check/)?new Error("problem decompressing block: incorrect gzip header check"):n}}var T7=Me,sn=null;try{sn=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch{}function Me(e,t,n){this.low=e|0,this.high=t|0,this.unsigned=!!n}Me.prototype.__isLong__,Object.defineProperty(Me.prototype,"__isLong__",{value:!0});function zt(e){return(e&&e.__isLong__)===!0}Me.isLong=zt;var qv={},Zv={};function ea(e,t){var n,r,i;return t?(e>>>=0,(i=0<=e&&e<256)&&(r=Zv[e],r)?r:(n=Ne(e,(e|0)<0?-1:0,!0),i&&(Zv[e]=n),n)):(e|=0,(i=-128<=e&&e<128)&&(r=qv[e],r)?r:(n=Ne(e,e<0?-1:0,!1),i&&(qv[e]=n),n))}Me.fromInt=ea;function ln(e,t){if(isNaN(e))return t?ta:fn;if(t){if(e<0)return ta;if(e>=Yv)return Jv}else{if(e<=-Qv)return Ut;if(e+1>=Qv)return Kv}return e<0?ln(-e,t).neg():Ne(e%Ja|0,e/Ja|0,t)}Me.fromNumber=ln;function Ne(e,t,n){return new Me(e,t,n)}Me.fromBits=Ne;var zu=Math.pow;function U0(e,t,n){if(e.length===0)throw Error("empty string");if(e==="NaN"||e==="Infinity"||e==="+Infinity"||e==="-Infinity")return fn;if(typeof t=="number"?(n=t,t=!1):t=!!t,n=n||10,n<2||36<n)throw RangeError("radix");var r;if((r=e.indexOf("-"))>0)throw Error("interior hyphen");if(r===0)return U0(e.substring(1),t,n).neg();for(var i=ln(zu(n,8)),a=fn,o=0;o<e.length;o+=8){var s=Math.min(8,e.length-o),f=parseInt(e.substring(o,o+s),n);if(s<8){var l=ln(zu(n,s));a=a.mul(l).add(ln(f))}else a=a.mul(i),a=a.add(ln(f))}return a.unsigned=t,a}Me.fromString=U0;function Cn(e,t){return typeof e=="number"?ln(e,t):typeof e=="string"?U0(e,t):Ne(e.low,e.high,typeof t=="boolean"?t:e.unsigned)}Me.fromValue=Cn;var Wv=65536,I7=1<<24,Ja=Wv*Wv,Yv=Ja*Ja,Qv=Yv/2,Xv=ea(I7),fn=ea(0);Me.ZERO=fn;var ta=ea(0,!0);Me.UZERO=ta;var eo=ea(1);Me.ONE=eo;var $v=ea(1,!0);Me.UONE=$v;var G0=ea(-1);Me.NEG_ONE=G0;var Kv=Ne(-1,2147483647,!1);Me.MAX_VALUE=Kv;var Jv=Ne(-1,-1,!0);Me.MAX_UNSIGNED_VALUE=Jv;var Ut=Ne(0,-2147483648,!1);Me.MIN_VALUE=Ut;var Y=Me.prototype;Y.toInt=function(){return this.unsigned?this.low>>>0:this.low},Y.toNumber=function(){return this.unsigned?(this.high>>>0)*Ja+(this.low>>>0):this.high*Ja+(this.low>>>0)},Y.toString=function(t){if(t=t||10,t<2||36<t)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative())if(this.eq(Ut)){var n=ln(t),r=this.div(n),i=r.mul(n).sub(this);return r.toString(t)+i.toInt().toString(t)}else return"-"+this.neg().toString(t);for(var a=ln(zu(t,6),this.unsigned),o=this,s="";;){var f=o.div(a),l=o.sub(f.mul(a)).toInt()>>>0,u=l.toString(t);if(o=f,o.isZero())return u+s;for(;u.length<6;)u="0"+u;s=""+u+s}},Y.getHighBits=function(){return this.high},Y.getHighBitsUnsigned=function(){return this.high>>>0},Y.getLowBits=function(){return this.low},Y.getLowBitsUnsigned=function(){return this.low>>>0},Y.getNumBitsAbs=function(){if(this.isNegative())return this.eq(Ut)?64:this.neg().getNumBitsAbs();for(var t=this.high!=0?this.high:this.low,n=31;n>0&&!(t&1<<n);n--);return this.high!=0?n+33:n+1},Y.isZero=function(){return this.high===0&&this.low===0},Y.eqz=Y.isZero,Y.isNegative=function(){return!this.unsigned&&this.high<0},Y.isPositive=function(){return this.unsigned||this.high>=0},Y.isOdd=function(){return(this.low&1)===1},Y.isEven=function(){return(this.low&1)===0},Y.equals=function(t){return zt(t)||(t=Cn(t)),this.unsigned!==t.unsigned&&this.high>>>31===1&&t.high>>>31===1?!1:this.high===t.high&&this.low===t.low},Y.eq=Y.equals,Y.notEquals=function(t){return!this.eq(t)},Y.neq=Y.notEquals,Y.ne=Y.notEquals,Y.lessThan=function(t){return this.comp(t)<0},Y.lt=Y.lessThan,Y.lessThanOrEqual=function(t){return this.comp(t)<=0},Y.lte=Y.lessThanOrEqual,Y.le=Y.lessThanOrEqual,Y.greaterThan=function(t){return this.comp(t)>0},Y.gt=Y.greaterThan,Y.greaterThanOrEqual=function(t){return this.comp(t)>=0},Y.gte=Y.greaterThanOrEqual,Y.ge=Y.greaterThanOrEqual,Y.compare=function(t){if(zt(t)||(t=Cn(t)),this.eq(t))return 0;var n=this.isNegative(),r=t.isNegative();return n&&!r?-1:!n&&r?1:this.unsigned?t.high>>>0>this.high>>>0||t.high===this.high&&t.low>>>0>this.low>>>0?-1:1:this.sub(t).isNegative()?-1:1},Y.comp=Y.compare,Y.negate=function(){return!this.unsigned&&this.eq(Ut)?Ut:this.not().add(eo)},Y.neg=Y.negate,Y.add=function(t){zt(t)||(t=Cn(t));var n=this.high>>>16,r=this.high&65535,i=this.low>>>16,a=this.low&65535,o=t.high>>>16,s=t.high&65535,f=t.low>>>16,l=t.low&65535,u=0,c=0,h=0,d=0;return d+=a+l,h+=d>>>16,d&=65535,h+=i+f,c+=h>>>16,h&=65535,c+=r+s,u+=c>>>16,c&=65535,u+=n+o,u&=65535,Ne(h<<16|d,u<<16|c,this.unsigned)},Y.subtract=function(t){return zt(t)||(t=Cn(t)),this.add(t.neg())},Y.sub=Y.subtract,Y.multiply=function(t){if(this.isZero())return fn;if(zt(t)||(t=Cn(t)),sn){var n=sn.mul(this.low,this.high,t.low,t.high);return Ne(n,sn.get_high(),this.unsigned)}if(t.isZero())return fn;if(this.eq(Ut))return t.isOdd()?Ut:fn;if(t.eq(Ut))return this.isOdd()?Ut:fn;if(this.isNegative())return t.isNegative()?this.neg().mul(t.neg()):this.neg().mul(t).neg();if(t.isNegative())return this.mul(t.neg()).neg();if(this.lt(Xv)&&t.lt(Xv))return ln(this.toNumber()*t.toNumber(),this.unsigned);var r=this.high>>>16,i=this.high&65535,a=this.low>>>16,o=this.low&65535,s=t.high>>>16,f=t.high&65535,l=t.low>>>16,u=t.low&65535,c=0,h=0,d=0,p=0;return p+=o*u,d+=p>>>16,p&=65535,d+=a*u,h+=d>>>16,d&=65535,d+=o*l,h+=d>>>16,d&=65535,h+=i*u,c+=h>>>16,h&=65535,h+=a*l,c+=h>>>16,h&=65535,h+=o*f,c+=h>>>16,h&=65535,c+=r*u+i*l+a*f+o*s,c&=65535,Ne(d<<16|p,c<<16|h,this.unsigned)},Y.mul=Y.multiply,Y.divide=function(t){if(zt(t)||(t=Cn(t)),t.isZero())throw Error("division by zero");if(sn){if(!this.unsigned&&this.high===-2147483648&&t.low===-1&&t.high===-1)return this;var n=(this.unsigned?sn.div_u:sn.div_s)(this.low,this.high,t.low,t.high);return Ne(n,sn.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?ta:fn;var r,i,a;if(this.unsigned){if(t.unsigned||(t=t.toUnsigned()),t.gt(this))return ta;if(t.gt(this.shru(1)))return $v;a=ta}else{if(this.eq(Ut)){if(t.eq(eo)||t.eq(G0))return Ut;if(t.eq(Ut))return eo;var o=this.shr(1);return r=o.div(t).shl(1),r.eq(fn)?t.isNegative()?eo:G0:(i=this.sub(t.mul(r)),a=r.add(i.div(t)),a)}else if(t.eq(Ut))return this.unsigned?ta:fn;if(this.isNegative())return t.isNegative()?this.neg().div(t.neg()):this.neg().div(t).neg();if(t.isNegative())return this.div(t.neg()).neg();a=fn}for(i=this;i.gte(t);){r=Math.max(1,Math.floor(i.toNumber()/t.toNumber()));for(var s=Math.ceil(Math.log(r)/Math.LN2),f=s<=48?1:zu(2,s-48),l=ln(r),u=l.mul(t);u.isNegative()||u.gt(i);)r-=f,l=ln(r,this.unsigned),u=l.mul(t);l.isZero()&&(l=eo),a=a.add(l),i=i.sub(u)}return a},Y.div=Y.divide,Y.modulo=function(t){if(zt(t)||(t=Cn(t)),sn){var n=(this.unsigned?sn.rem_u:sn.rem_s)(this.low,this.high,t.low,t.high);return Ne(n,sn.get_high(),this.unsigned)}return this.sub(this.div(t).mul(t))},Y.mod=Y.modulo,Y.rem=Y.modulo,Y.not=function(){return Ne(~this.low,~this.high,this.unsigned)},Y.and=function(t){return zt(t)||(t=Cn(t)),Ne(this.low&t.low,this.high&t.high,this.unsigned)},Y.or=function(t){return zt(t)||(t=Cn(t)),Ne(this.low|t.low,this.high|t.high,this.unsigned)},Y.xor=function(t){return zt(t)||(t=Cn(t)),Ne(this.low^t.low,this.high^t.high,this.unsigned)},Y.shiftLeft=function(t){return zt(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?Ne(this.low<<t,this.high<<t|this.low>>>32-t,this.unsigned):Ne(0,this.low<<t-32,this.unsigned)},Y.shl=Y.shiftLeft,Y.shiftRight=function(t){return zt(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?Ne(this.low>>>t|this.high<<32-t,this.high>>t,this.unsigned):Ne(this.high>>t-32,this.high>=0?0:-1,this.unsigned)},Y.shr=Y.shiftRight,Y.shiftRightUnsigned=function(t){if(zt(t)&&(t=t.toInt()),t&=63,t===0)return this;var n=this.high;if(t<32){var r=this.low;return Ne(r>>>t|n<<32-t,n>>>t,this.unsigned)}else return t===32?Ne(n,0,this.unsigned):Ne(n>>>t-32,0,this.unsigned)},Y.shru=Y.shiftRightUnsigned,Y.shr_u=Y.shiftRightUnsigned,Y.toSigned=function(){return this.unsigned?Ne(this.low,this.high,!1):this},Y.toUnsigned=function(){return this.unsigned?this:Ne(this.low,this.high,!0)},Y.toBytes=function(t){return t?this.toBytesLE():this.toBytesBE()},Y.toBytesLE=function(){var t=this.high,n=this.low;return[n&255,n>>>8&255,n>>>16&255,n>>>24,t&255,t>>>8&255,t>>>16&255,t>>>24]},Y.toBytesBE=function(){var t=this.high,n=this.low;return[t>>>24,t>>>16&255,t>>>8&255,t&255,n>>>24,n>>>16&255,n>>>8&255,n&255]},Me.fromBytes=function(t,n,r){return r?Me.fromBytesLE(t,n):Me.fromBytesBE(t,n)},Me.fromBytesLE=function(t,n){return new Me(t[0]|t[1]<<8|t[2]<<16|t[3]<<24,t[4]|t[5]<<8|t[6]<<16|t[7]<<24,n)},Me.fromBytesBE=function(t,n){return new Me(t[4]<<24|t[5]<<16|t[6]<<8|t[7],t[0]<<24|t[1]<<16|t[2]<<8|t[3],n)};const Uu=Gs(T7),Gu=1;class k7{constructor({filehandle:t,path:n}){if(t)this.filehandle=t;else if(n)this.filehandle=new ct(n);else throw new TypeError("either filehandle or path must be defined")}_readLongWithOverflow(t,n=0,r=!0){const i=Uu.fromBytesLE(t.slice(n,n+8),r);if(i.greaterThan(Number.MAX_SAFE_INTEGER)||i.lessThan(Number.MIN_SAFE_INTEGER))throw new TypeError("integer overflow");return i.toNumber()}_getIndex(){return this.index||(this.index=this._readIndex()),this.index}async _readIndex(){let t=ye.Buffer.allocUnsafe(8);await this.filehandle.read(t,0,8,0);const n=this._readLongWithOverflow(t,0,!0);if(!n)return[[0,0]];const r=new Array(n+1);r[0]=[0,0];const i=8*2*n;if(i>Number.MAX_SAFE_INTEGER)throw new TypeError("integer overflow");t=ye.Buffer.allocUnsafe(i),await this.filehandle.read(t,0,i,8);for(let a=0;a<n;a+=1){const o=this._readLongWithOverflow(t,a*16),s=this._readLongWithOverflow(t,a*16+8);r[a+1]=[o,s]}return r}async getLastBlock(){const t=await this._getIndex();if(t.length)return t[t.length-1]}async getRelevantBlocksForRead(t,n){const r=n+t;if(t===0)return[];const i=await this._getIndex(),a=[],o=(h,d)=>{const p=h[Gu],b=d?d[Gu]:1/0;return p<=n&&b>n?0:p<n?-1:1};let s=0,f=i.length-1,l=Math.floor(i.length/2),u=o(i[l],i[l+1]);for(;u!==0;)u>0?f=l-1:u<0&&(s=l+1),l=Math.ceil((f-s)/2)+s,u=o(i[l],i[l+1]);a.push(i[l]);let c=l+1;for(;c<i.length&&(a.push(i[c]),!(i[c][Gu]>=r));c+=1);return a[a.length-1][Gu]<r&&a.push([]),a}}class ex{constructor({filehandle:t,path:n,gziFilehandle:r,gziPath:i}){if(t)this.filehandle=t;else if(n)this.filehandle=new ct(n);else throw new TypeError("either filehandle or path must be defined");if(!r&&!i&&!n)throw new TypeError("either gziFilehandle or gziPath must be defined");this.gzi=new k7({filehandle:r,path:!r&&!i&&n?i:`${n}.gzi`})}async stat(){const t=await this.filehandle.stat();return Object.assign(t,{size:await this.getUncompressedFileSize(),blocks:void 0,blksize:void 0})}async getUncompressedFileSize(){const[,t]=await this.gzi.getLastBlock(),{size:n}=await this.filehandle.stat(),r=ye.Buffer.allocUnsafe(4),{bytesRead:i}=await this.filehandle.read(r,0,4,n-28-4);if(i!==4)throw new Error("read error");const a=r.readUInt32LE(0);return t+a}async _readAndUncompressBlock(t,[n],[r]){let i=r;i||(i=(await this.filehandle.stat()).size);const a=i-n;return await this.filehandle.read(t,0,a,n),await Kr(t.slice(0,a))}async read(t,n,r,i){const a=await this.gzi.getRelevantBlocksForRead(r,i),o=ye.Buffer.allocUnsafe(32768*2);let s=n,f=0;for(let l=0;l<a.length-1;l+=1){const u=await this._readAndUncompressBlock(o,a[l],a[l+1]),[,c]=a[l],h=c>=i?0:i-c,d=Math.min(i+r,c+u.length)-c;h>=0&&h<u.length&&(u.copy(t,s,h,d),s+=d-h,f+=d-h)}return{bytesRead:f,buffer:t}}}function tx(e,t){return e.offset+e.lineBytes*Math.floor(t/e.lineLength)+t%e.lineLength}async function B7(e,t){const n=await e.readFile(t);if(!(n&&n.length))throw new Error("No data read from FASTA index (FAI) file");let r=0,i;const a=n.toString("utf8").split(/\r?\n/).filter(o=>/\S/.test(o)).map(o=>o.split(" ")).filter(o=>o[0]!=="").map(o=>((!i||i.name!==o[0])&&(i={name:o[0],id:r},r+=1),{id:i.id,name:o[0],length:+o[1],start:0,end:+o[1],offset:+o[2],lineLength:+o[3],lineBytes:+o[4]}));return{name:Object.fromEntries(a.map(o=>[o.name,o])),id:Object.fromEntries(a.map(o=>[o.id,o]))}}class nx{constructor({fasta:t,fai:n,path:r,faiPath:i,chunkSizeLimit:a=1e6}){if(t)this.fasta=t;else if(r)this.fasta=new ct(r);else throw new Error("Need to pass filehandle for fasta or path to localfile");if(n)this.fai=n;else if(i)this.fai=new ct(i);else if(r)this.fai=new ct(`${r}.fai`);else throw new Error("Need to pass filehandle for or path to localfile");this.chunkSizeLimit=a}async _getIndexes(t){return this.indexes||(this.indexes=B7(this.fai,t)),this.indexes}async getSequenceNames(t){return Object.keys((await this._getIndexes(t)).name)}async getSequenceSizes(t){const n={},r=await this._getIndexes(t),i=Object.values(r.id);for(let a=0;a<i.length;a+=1)n[i[a].name]=i[a].length;return n}async getSequenceSize(t,n){var r;return(r=(await this._getIndexes(n)).name[t])===null||r===void 0?void 0:r.length}async hasReferenceSequence(t,n){return!!(await this._getIndexes(n)).name[t]}async getResiduesById(t,n,r,i){const a=(await this._getIndexes(i)).id[t];if(a)return this._fetchFromIndexEntry(a,n,r,i)}async getResiduesByName(t,n,r,i){const a=(await this._getIndexes(i)).name[t];if(a)return this._fetchFromIndexEntry(a,n,r,i)}async getSequence(t,n,r,i){return this.getResiduesByName(t,n,r,i)}async _fetchFromIndexEntry(t,n=0,r,i){let a=r;if(n<0)throw new TypeError("regionStart cannot be less than 0");if((a===void 0||a>t.length)&&(a=t.length),n>=a)return"";const o=tx(t,n),s=tx(t,a)-o;if(s>this.chunkSizeLimit)throw new Error(`data size of ${s.toLocaleString()} bytes exceeded chunk size limit of ${this.chunkSizeLimit.toLocaleString()} bytes`);const f=Buffer.allocUnsafe(s);return await this.fasta.read(f,0,s,o,i),f.toString("utf8").replace(/\s+/g,"")}}class D7 extends nx{constructor({fasta:t,path:n,fai:r,faiPath:i,gzi:a,gziPath:o,chunkSizeLimit:s}){super({fasta:t,path:n,fai:r,faiPath:i,chunkSizeLimit:s}),t&&a?this.fasta=new ex({filehandle:t,gziFilehandle:a}):n&&o&&(this.fasta=new ex({path:n,gziPath:o}))}}function rx(e){return e.split(">").filter(t=>/\S/.test(t)).map(t=>{const[n,...r]=t.split(`
284
+ `),[i,...a]=n.split(" "),o=r.join("").replace(/\s/g,"");return{id:i,description:a.join(" "),sequence:o}})}class F7{constructor({fasta:t,path:n}){if(t)this.fasta=t;else if(n)this.fasta=new ct(n);else throw new Error("Need to pass fasta or path");this.data=this.fasta.readFile().then(r=>{const i=r.toString("utf8");return rx(i)})}async fetch(t,n,r){const a=(await this.data).find(s=>s.id===t),o=r-n;if(!a)throw new Error(`no sequence with id ${t} exists`);return a.sequence.substr(n,o)}async getSequenceNames(){return(await this.data).map(n=>n.id)}}const R7=Object.freeze(Object.defineProperty({__proto__:null,BgzipIndexedFasta:D7,FetchableSmallFasta:F7,IndexedFasta:nx,parseSmallFasta:rx},Symbol.toStringTag,{value:"Module"})),Hu=BigInt(32);function P7(e,t,n){const r=+!!n,i=+!n;return BigInt(e.getInt32(t,n)*i+e.getInt32(t+4,n)*r)<<Hu|BigInt(e.getUint32(t,n)*r+e.getUint32(t+4,n)*i)}function M7(e,t,n){const r=e.getUint32(t,n),i=e.getUint32(t+4,n),a=+!!n,o=+!n;return BigInt(r*o+i*a)<<Hu|BigInt(r*a+i*o)}function N7(e,t,n,r){const i=Number(n>>Hu),a=Number(n&BigInt(4294967295));r?(e.setInt32(t+4,i,r),e.setUint32(t,a,r)):(e.setInt32(t,i,r),e.setUint32(t+4,a,r))}function L7(e,t,n,r){const i=Number(n>>Hu),a=Number(n&BigInt(4294967295));r?(e.setUint32(t+4,i,r),e.setUint32(t,a,r)):(e.setUint32(t,i,r),e.setUint32(t+4,a,r))}"getBigInt64"in DataView||(DataView.prototype.getBigInt64=function(e,t){return P7(this,e,t)}),"getBigUint64"in DataView||(DataView.prototype.getBigUint64=function(e,t){return M7(this,e,t)}),"setBigInt64"in DataView||(DataView.prototype.setBigInt64=function(e,t,n){N7(this,e,t,n)}),"setBigUint64"in DataView||(DataView.prototype.setBigUint64=function(e,t,n){L7(this,e,t,n)});class O7{constructor(t,n){this.code="",this.scopes=[["vars"]],this.bitFields=[],this.tmpVariableCount=0,this.references=new Map,this.imports=[],this.reverseImports=new Map,this.useContextVariables=!1,this.importPath=t,this.useContextVariables=n}generateVariable(t){const n=[...this.scopes[this.scopes.length-1]];return t&&n.push(t),n.join(".")}generateOption(t){switch(typeof t){case"number":return t.toString();case"string":return this.generateVariable(t);case"function":return`${this.addImport(t)}.call(${this.generateVariable()}, vars)`}}generateError(t){this.pushCode(`throw new Error(${t});`)}generateTmpVariable(){return"$tmp"+this.tmpVariableCount++}pushCode(t){this.code+=t+`
285
+ `}pushPath(t){t&&this.scopes[this.scopes.length-1].push(t)}popPath(t){t&&this.scopes[this.scopes.length-1].pop()}pushScope(t){this.scopes.push([t])}popScope(){this.scopes.pop()}addImport(t){if(!this.importPath)return`(${t})`;let n=this.reverseImports.get(t);return n||(n=this.imports.push(t)-1,this.reverseImports.set(t,n)),`${this.importPath}[${n}]`}addReference(t){this.references.has(t)||this.references.set(t,{resolved:!1,requested:!1})}markResolved(t){const n=this.references.get(t);n&&(n.resolved=!0)}markRequested(t){t.forEach(n=>{const r=this.references.get(n);r&&(r.requested=!0)})}getUnresolvedReferences(){return Array.from(this.references).filter(([t,n])=>!n.resolved&&!n.requested).map(([t,n])=>t)}}const Tn=new Map,na="___parser_",In={uint8:1,uint16le:2,uint16be:2,uint32le:4,uint32be:4,int8:1,int16le:2,int16be:2,int32le:4,int32be:4,int64be:8,int64le:8,uint64be:8,uint64le:8,floatle:4,floatbe:4,doublele:8,doublebe:8},Vu={uint8:"Uint8",uint16le:"Uint16",uint16be:"Uint16",uint32le:"Uint32",uint32be:"Uint32",int8:"Int8",int16le:"Int16",int16be:"Int16",int32le:"Int32",int32be:"Int32",int64be:"BigInt64",int64le:"BigInt64",uint64be:"BigUint64",uint64le:"BigUint64",floatle:"Float32",floatbe:"Float32",doublele:"Float64",doublebe:"Float64"},ju={uint8:!1,uint16le:!0,uint16be:!1,uint32le:!0,uint32be:!1,int8:!1,int16le:!0,int16be:!1,int32le:!0,int32be:!1,int64be:!1,int64le:!0,uint64be:!1,uint64le:!0,floatle:!0,floatbe:!1,doublele:!0,doublebe:!1};let Ie=class Dn{constructor(){this.varName="",this.type="",this.options={},this.endian="be",this.useContextVariables=!1}static start(){return new Dn}primitiveGenerateN(t,n){const r=Vu[t],i=ju[t];n.pushCode(`${n.generateVariable(this.varName)} = dataView.get${r}(offset, ${i});`),n.pushCode(`offset += ${In[t]};`)}primitiveN(t,n,r){return this.setNextParser(t,n,r)}useThisEndian(t){return t+this.endian.toLowerCase()}uint8(t,n={}){return this.primitiveN("uint8",t,n)}uint16(t,n={}){return this.primitiveN(this.useThisEndian("uint16"),t,n)}uint16le(t,n={}){return this.primitiveN("uint16le",t,n)}uint16be(t,n={}){return this.primitiveN("uint16be",t,n)}uint32(t,n={}){return this.primitiveN(this.useThisEndian("uint32"),t,n)}uint32le(t,n={}){return this.primitiveN("uint32le",t,n)}uint32be(t,n={}){return this.primitiveN("uint32be",t,n)}int8(t,n={}){return this.primitiveN("int8",t,n)}int16(t,n={}){return this.primitiveN(this.useThisEndian("int16"),t,n)}int16le(t,n={}){return this.primitiveN("int16le",t,n)}int16be(t,n={}){return this.primitiveN("int16be",t,n)}int32(t,n={}){return this.primitiveN(this.useThisEndian("int32"),t,n)}int32le(t,n={}){return this.primitiveN("int32le",t,n)}int32be(t,n={}){return this.primitiveN("int32be",t,n)}bigIntVersionCheck(){if(!DataView.prototype.getBigInt64)throw new Error("BigInt64 is unsupported on this runtime")}int64(t,n={}){return this.bigIntVersionCheck(),this.primitiveN(this.useThisEndian("int64"),t,n)}int64be(t,n={}){return this.bigIntVersionCheck(),this.primitiveN("int64be",t,n)}int64le(t,n={}){return this.bigIntVersionCheck(),this.primitiveN("int64le",t,n)}uint64(t,n={}){return this.bigIntVersionCheck(),this.primitiveN(this.useThisEndian("uint64"),t,n)}uint64be(t,n={}){return this.bigIntVersionCheck(),this.primitiveN("uint64be",t,n)}uint64le(t,n={}){return this.bigIntVersionCheck(),this.primitiveN("uint64le",t,n)}floatle(t,n={}){return this.primitiveN("floatle",t,n)}floatbe(t,n={}){return this.primitiveN("floatbe",t,n)}doublele(t,n={}){return this.primitiveN("doublele",t,n)}doublebe(t,n={}){return this.primitiveN("doublebe",t,n)}bitN(t,n,r){return r.length=t,this.setNextParser("bit",n,r)}bit1(t,n={}){return this.bitN(1,t,n)}bit2(t,n={}){return this.bitN(2,t,n)}bit3(t,n={}){return this.bitN(3,t,n)}bit4(t,n={}){return this.bitN(4,t,n)}bit5(t,n={}){return this.bitN(5,t,n)}bit6(t,n={}){return this.bitN(6,t,n)}bit7(t,n={}){return this.bitN(7,t,n)}bit8(t,n={}){return this.bitN(8,t,n)}bit9(t,n={}){return this.bitN(9,t,n)}bit10(t,n={}){return this.bitN(10,t,n)}bit11(t,n={}){return this.bitN(11,t,n)}bit12(t,n={}){return this.bitN(12,t,n)}bit13(t,n={}){return this.bitN(13,t,n)}bit14(t,n={}){return this.bitN(14,t,n)}bit15(t,n={}){return this.bitN(15,t,n)}bit16(t,n={}){return this.bitN(16,t,n)}bit17(t,n={}){return this.bitN(17,t,n)}bit18(t,n={}){return this.bitN(18,t,n)}bit19(t,n={}){return this.bitN(19,t,n)}bit20(t,n={}){return this.bitN(20,t,n)}bit21(t,n={}){return this.bitN(21,t,n)}bit22(t,n={}){return this.bitN(22,t,n)}bit23(t,n={}){return this.bitN(23,t,n)}bit24(t,n={}){return this.bitN(24,t,n)}bit25(t,n={}){return this.bitN(25,t,n)}bit26(t,n={}){return this.bitN(26,t,n)}bit27(t,n={}){return this.bitN(27,t,n)}bit28(t,n={}){return this.bitN(28,t,n)}bit29(t,n={}){return this.bitN(29,t,n)}bit30(t,n={}){return this.bitN(30,t,n)}bit31(t,n={}){return this.bitN(31,t,n)}bit32(t,n={}){return this.bitN(32,t,n)}namely(t){return Tn.set(t,this),this.alias=t,this}skip(t,n={}){return this.seek(t,n)}seek(t,n={}){if(n.assert)throw new Error("assert option on seek is not allowed.");return this.setNextParser("seek","",{length:t})}string(t,n){if(!n.zeroTerminated&&!n.length&&!n.greedy)throw new Error("One of length, zeroTerminated, or greedy must be defined for string.");if((n.zeroTerminated||n.length)&&n.greedy)throw new Error("greedy is mutually exclusive with length and zeroTerminated for string.");if(n.stripNull&&!(n.length||n.greedy))throw new Error("length or greedy must be defined if stripNull is enabled.");return n.encoding=n.encoding||"utf8",this.setNextParser("string",t,n)}buffer(t,n){if(!n.length&&!n.readUntil)throw new Error("length or readUntil must be defined for buffer.");return this.setNextParser("buffer",t,n)}wrapped(t,n){if(typeof n!="object"&&typeof t=="object"&&(n=t,t=""),!n||!n.wrapper||!n.type)throw new Error("Both wrapper and type must be defined for wrapped.");if(!n.length&&!n.readUntil)throw new Error("length or readUntil must be defined for wrapped.");return this.setNextParser("wrapper",t,n)}array(t,n){if(!n.readUntil&&!n.length&&!n.lengthInBytes)throw new Error("One of readUntil, length and lengthInBytes must be defined for array.");if(!n.type)throw new Error("type is required for array.");if(typeof n.type=="string"&&!Tn.has(n.type)&&!(n.type in In))throw new Error(`Array element type "${n.type}" is unkown.`);return this.setNextParser("array",t,n)}choice(t,n){if(typeof n!="object"&&typeof t=="object"&&(n=t,t=""),!n)throw new Error("tag and choices are are required for choice.");if(!n.tag)throw new Error("tag is requird for choice.");if(!n.choices)throw new Error("choices is required for choice.");for(const r in n.choices){const i=parseInt(r,10),a=n.choices[i];if(isNaN(i))throw new Error(`Choice key "${r}" is not a number.`);if(typeof a=="string"&&!Tn.has(a)&&!(a in In))throw new Error(`Choice type "${a}" is unkown.`)}return this.setNextParser("choice",t,n)}nest(t,n){if(typeof n!="object"&&typeof t=="object"&&(n=t,t=""),!n||!n.type)throw new Error("type is required for nest.");if(!(n.type instanceof Dn)&&!Tn.has(n.type))throw new Error("type must be a known parser name or a Parser object.");if(!(n.type instanceof Dn)&&!t)throw new Error("type must be a Parser object if the variable name is omitted.");return this.setNextParser("nest",t,n)}pointer(t,n){if(!n.offset)throw new Error("offset is required for pointer.");if(!n.type)throw new Error("type is required for pointer.");if(typeof n.type=="string"&&!(n.type in In)&&!Tn.has(n.type))throw new Error(`Pointer type "${n.type}" is unkown.`);return this.setNextParser("pointer",t,n)}saveOffset(t,n={}){return this.setNextParser("saveOffset",t,n)}endianness(t){switch(t.toLowerCase()){case"little":this.endian="le";break;case"big":this.endian="be";break;default:throw new Error('endianness must be one of "little" or "big"')}return this}endianess(t){return this.endianness(t)}useContextVars(t=!0){return this.useContextVariables=t,this}create(t){if(!(t instanceof Function))throw new Error("Constructor must be a Function object.");return this.constructorFn=t,this}getContext(t){const n=new O7(t,this.useContextVariables);return n.pushCode("var dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.length);"),this.alias?(this.addAliasedCode(n),n.pushCode(`return ${na+this.alias}(0).result;`)):this.addRawCode(n),n}getCode(){const t="imports";return this.getContext(t).code}addRawCode(t){t.pushCode("var offset = 0;"),t.pushCode(`var vars = ${this.constructorFn?"new constructorFn()":"{}"};`),t.pushCode("vars.$parent = null;"),t.pushCode("vars.$root = vars;"),this.generate(t),this.resolveReferences(t),t.pushCode("delete vars.$parent;"),t.pushCode("delete vars.$root;"),t.pushCode("return vars;")}addAliasedCode(t){return t.pushCode(`function ${na+this.alias}(offset, context) {`),t.pushCode(`var vars = ${this.constructorFn?"new constructorFn()":"{}"};`),t.pushCode("var ctx = Object.assign({$parent: null, $root: vars}, context || {});"),t.pushCode("vars = Object.assign(vars, ctx);"),this.generate(t),t.markResolved(this.alias),this.resolveReferences(t),t.pushCode("Object.keys(ctx).forEach(function (item) { delete vars[item]; });"),t.pushCode("return { offset: offset, result: vars };"),t.pushCode("}"),t}resolveReferences(t){const n=t.getUnresolvedReferences();t.markRequested(n),n.forEach(r=>{var i;(i=Tn.get(r))===null||i===void 0||i.addAliasedCode(t)})}compile(){const t="imports",n=this.getContext(t);this.compiled=new Function(t,"TextDecoder",`return function (buffer, constructorFn) { ${n.code} };`)(n.imports,TextDecoder)}sizeOf(){let t=NaN;if(Object.keys(In).indexOf(this.type)>=0)t=In[this.type];else if(this.type==="string"&&typeof this.options.length=="number")t=this.options.length;else if(this.type==="buffer"&&typeof this.options.length=="number")t=this.options.length;else if(this.type==="array"&&typeof this.options.length=="number"){let n=NaN;typeof this.options.type=="string"?n=In[this.options.type]:this.options.type instanceof Dn&&(n=this.options.type.sizeOf()),t=this.options.length*n}else this.type==="seek"?t=this.options.length:this.type==="nest"?t=this.options.type.sizeOf():this.type||(t=0);return this.next&&(t+=this.next.sizeOf()),t}parse(t){return this.compiled||this.compile(),this.compiled(t,this.constructorFn)}setNextParser(t,n,r){const i=new Dn;return i.type=t,i.varName=n,i.options=r,i.endian=this.endian,this.head?this.head.next=i:this.next=i,this.head=i,this}generate(t){if(this.type){switch(this.type){case"uint8":case"uint16le":case"uint16be":case"uint32le":case"uint32be":case"int8":case"int16le":case"int16be":case"int32le":case"int32be":case"int64be":case"int64le":case"uint64be":case"uint64le":case"floatle":case"floatbe":case"doublele":case"doublebe":this.primitiveGenerateN(this.type,t);break;case"bit":this.generateBit(t);break;case"string":this.generateString(t);break;case"buffer":this.generateBuffer(t);break;case"seek":this.generateSeek(t);break;case"nest":this.generateNest(t);break;case"array":this.generateArray(t);break;case"choice":this.generateChoice(t);break;case"pointer":this.generatePointer(t);break;case"saveOffset":this.generateSaveOffset(t);break;case"wrapper":this.generateWrapper(t);break}this.type!=="bit"&&this.generateAssert(t)}const n=t.generateVariable(this.varName);return this.options.formatter&&this.type!=="bit"&&this.generateFormatter(t,n,this.options.formatter),this.generateNext(t)}generateAssert(t){if(!this.options.assert)return;const n=t.generateVariable(this.varName);switch(typeof this.options.assert){case"function":{const r=t.addImport(this.options.assert);t.pushCode(`if (!${r}.call(vars, ${n})) {`)}break;case"number":t.pushCode(`if (${this.options.assert} !== ${n}) {`);break;case"string":t.pushCode(`if (${JSON.stringify(this.options.assert)} !== ${n}) {`);break;default:throw new Error("assert option must be a string, number or a function.")}t.generateError(`"Assertion error: ${n} is " + ${JSON.stringify(this.options.assert.toString())}`),t.pushCode("}")}generateNext(t){return this.next&&(t=this.next.generate(t)),t}generateBit(t){const n=JSON.parse(JSON.stringify(this));if(n.options=this.options,n.generateAssert=this.generateAssert.bind(this),n.generateFormatter=this.generateFormatter.bind(this),n.varName=t.generateVariable(n.varName),t.bitFields.push(n),!this.next||this.next&&["bit","nest"].indexOf(this.next.type)<0){const r=t.generateTmpVariable();t.pushCode(`var ${r} = 0;`);const i=(u=0)=>{let c=0;for(let h=u;h<t.bitFields.length;h++){const d=t.bitFields[h].options.length;if(c+d>32)break;c+=d}return c},a=u=>(u<=8?(t.pushCode(`${r} = dataView.getUint8(offset);`),u=8):u<=16?(t.pushCode(`${r} = dataView.getUint16(offset);`),u=16):u<=24?(t.pushCode(`${r} = (dataView.getUint16(offset) << 8) | dataView.getUint8(offset + 2);`),u=24):(t.pushCode(`${r} = dataView.getUint32(offset);`),u=32),t.pushCode(`offset += ${u/8};`),u);let o=0;const s=this.endian==="be";let f=0,l=0;t.bitFields.forEach((u,c)=>{let h=u.options.length;if(h>l){if(l){const b=-1>>>32-l;t.pushCode(`${u.varName} = (${r} & 0x${b.toString(16)}) << ${h-l};`),h-=l}o=0,l=f=a(i(c)-l)}const d=s?f-o-h:o,p=-1>>>32-h;t.pushCode(`${u.varName} ${h<u.options.length?"|=":"="} ${r} >> ${d} & 0x${p.toString(16)};`),u.options.length===32&&t.pushCode(`${u.varName} >>>= 0`),u.options.assert&&u.generateAssert(t),u.options.formatter&&u.generateFormatter(t,u.varName,u.options.formatter),o+=h,l-=h}),t.bitFields=[]}}generateSeek(t){const n=t.generateOption(this.options.length);t.pushCode(`offset += ${n};`)}generateString(t){const n=t.generateVariable(this.varName),r=t.generateTmpVariable(),i=this.options.encoding,a=i.toLowerCase()==="hex",o='b => b.toString(16).padStart(2, "0")';if(this.options.length&&this.options.zeroTerminated){const s=this.options.length;t.pushCode(`var ${r} = offset;`),t.pushCode(`while(dataView.getUint8(offset++) !== 0 && offset - ${r} < ${s});`);const f=`offset - ${r} < ${s} ? offset - 1 : offset`;t.pushCode(a?`${n} = Array.from(buffer.subarray(${r}, ${f}), ${o}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(${r}, ${f}));`)}else if(this.options.length){const s=t.generateOption(this.options.length);t.pushCode(a?`${n} = Array.from(buffer.subarray(offset, offset + ${s}), ${o}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(offset, offset + ${s}));`),t.pushCode(`offset += ${s};`)}else this.options.zeroTerminated?(t.pushCode(`var ${r} = offset;`),t.pushCode("while(dataView.getUint8(offset++) !== 0);"),t.pushCode(a?`${n} = Array.from(buffer.subarray(${r}, offset - 1), ${o}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(${r}, offset - 1));`)):this.options.greedy&&(t.pushCode(`var ${r} = offset;`),t.pushCode("while(buffer.length > offset++);"),t.pushCode(a?`${n} = Array.from(buffer.subarray(${r}, offset), ${o}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(${r}, offset));`));this.options.stripNull&&t.pushCode(`${n} = ${n}.replace(/\\x00+$/g, '')`)}generateBuffer(t){const n=t.generateVariable(this.varName);if(typeof this.options.readUntil=="function"){const r=this.options.readUntil,i=t.generateTmpVariable(),a=t.generateTmpVariable();t.pushCode(`var ${i} = offset;`),t.pushCode(`var ${a} = 0;`),t.pushCode("while (offset < buffer.length) {"),t.pushCode(`${a} = dataView.getUint8(offset);`);const o=t.addImport(r);t.pushCode(`if (${o}.call(${t.generateVariable()}, ${a}, buffer.subarray(offset))) break;`),t.pushCode("offset += 1;"),t.pushCode("}"),t.pushCode(`${n} = buffer.subarray(${i}, offset);`)}else if(this.options.readUntil==="eof")t.pushCode(`${n} = buffer.subarray(offset);`);else{const r=t.generateOption(this.options.length);t.pushCode(`${n} = buffer.subarray(offset, offset + ${r});`),t.pushCode(`offset += ${r};`)}this.options.clone&&t.pushCode(`${n} = buffer.constructor.from(${n});`)}generateArray(t){const n=t.generateOption(this.options.length),r=t.generateOption(this.options.lengthInBytes),i=this.options.type,a=t.generateTmpVariable(),o=t.generateVariable(this.varName),s=t.generateTmpVariable(),f=this.options.key,l=typeof f=="string";if(l?t.pushCode(`${o} = {};`):t.pushCode(`${o} = [];`),typeof this.options.readUntil=="function"?t.pushCode("do {"):this.options.readUntil==="eof"?t.pushCode(`for (var ${a} = 0; offset < buffer.length; ${a}++) {`):r!==void 0?t.pushCode(`for (var ${a} = offset + ${r}; offset < ${a}; ) {`):t.pushCode(`for (var ${a} = ${n}; ${a} > 0; ${a}--) {`),typeof i=="string")if(Tn.get(i)){const u=t.generateTmpVariable();if(t.pushCode(`var ${u} = ${na+i}(offset, {`),t.useContextVariables){const c=t.generateVariable();t.pushCode(`$parent: ${c},`),t.pushCode(`$root: ${c}.$root,`),!this.options.readUntil&&r===void 0&&t.pushCode(`$index: ${n} - ${a},`)}t.pushCode("});"),t.pushCode(`var ${s} = ${u}.result; offset = ${u}.offset;`),i!==this.alias&&t.addReference(i)}else{const u=Vu[i],c=ju[i];t.pushCode(`var ${s} = dataView.get${u}(offset, ${c});`),t.pushCode(`offset += ${In[i]};`)}else if(i instanceof Dn){t.pushCode(`var ${s} = {};`);const u=t.generateVariable();t.pushScope(s),t.useContextVariables&&(t.pushCode(`${s}.$parent = ${u};`),t.pushCode(`${s}.$root = ${u}.$root;`),!this.options.readUntil&&r===void 0&&t.pushCode(`${s}.$index = ${n} - ${a};`)),i.generate(t),t.useContextVariables&&(t.pushCode(`delete ${s}.$parent;`),t.pushCode(`delete ${s}.$root;`),t.pushCode(`delete ${s}.$index;`)),t.popScope()}if(l?t.pushCode(`${o}[${s}.${f}] = ${s};`):t.pushCode(`${o}.push(${s});`),t.pushCode("}"),typeof this.options.readUntil=="function"){const u=this.options.readUntil,c=t.addImport(u);t.pushCode(`while (!${c}.call(${t.generateVariable()}, ${s}, buffer.subarray(offset)));`)}}generateChoiceCase(t,n,r){if(typeof r=="string"){const i=t.generateVariable(this.varName);if(Tn.has(r)){const a=t.generateTmpVariable();t.pushCode(`var ${a} = ${na+r}(offset, {`),t.useContextVariables&&(t.pushCode(`$parent: ${i}.$parent,`),t.pushCode(`$root: ${i}.$root,`)),t.pushCode("});"),t.pushCode(`${i} = ${a}.result; offset = ${a}.offset;`),r!==this.alias&&t.addReference(r)}else{const a=Vu[r],o=ju[r];t.pushCode(`${i} = dataView.get${a}(offset, ${o});`),t.pushCode(`offset += ${In[r]}`)}}else r instanceof Dn&&(t.pushPath(n),r.generate(t),t.popPath(n))}generateChoice(t){const n=t.generateOption(this.options.tag),r=t.generateVariable(this.varName);if(this.varName&&(t.pushCode(`${r} = {};`),t.useContextVariables)){const i=t.generateVariable();t.pushCode(`${r}.$parent = ${i};`),t.pushCode(`${r}.$root = ${i}.$root;`)}t.pushCode(`switch(${n}) {`);for(const i in this.options.choices){const a=parseInt(i,10),o=this.options.choices[a];t.pushCode(`case ${a}:`),this.generateChoiceCase(t,this.varName,o),t.pushCode("break;")}t.pushCode("default:"),this.options.defaultChoice?this.generateChoiceCase(t,this.varName,this.options.defaultChoice):t.generateError(`"Met undefined tag value " + ${n} + " at choice"`),t.pushCode("}"),this.varName&&t.useContextVariables&&(t.pushCode(`delete ${r}.$parent;`),t.pushCode(`delete ${r}.$root;`))}generateNest(t){const n=t.generateVariable(this.varName);if(this.options.type instanceof Dn){if(this.varName&&(t.pushCode(`${n} = {};`),t.useContextVariables)){const r=t.generateVariable();t.pushCode(`${n}.$parent = ${r};`),t.pushCode(`${n}.$root = ${r}.$root;`)}t.pushPath(this.varName),this.options.type.generate(t),t.popPath(this.varName),this.varName&&t.useContextVariables&&t.useContextVariables&&(t.pushCode(`delete ${n}.$parent;`),t.pushCode(`delete ${n}.$root;`))}else if(Tn.has(this.options.type)){const r=t.generateTmpVariable();if(t.pushCode(`var ${r} = ${na+this.options.type}(offset, {`),t.useContextVariables){const i=t.generateVariable();t.pushCode(`$parent: ${i},`),t.pushCode(`$root: ${i}.$root,`)}t.pushCode("});"),t.pushCode(`${n} = ${r}.result; offset = ${r}.offset;`),this.options.type!==this.alias&&t.addReference(this.options.type)}}generateWrapper(t){const n=t.generateVariable(this.varName),r=t.generateTmpVariable();if(typeof this.options.readUntil=="function"){const f=this.options.readUntil,l=t.generateTmpVariable(),u=t.generateTmpVariable();t.pushCode(`var ${l} = offset;`),t.pushCode(`var ${u} = 0;`),t.pushCode("while (offset < buffer.length) {"),t.pushCode(`${u} = dataView.getUint8(offset);`);const c=t.addImport(f);t.pushCode(`if (${c}.call(${t.generateVariable()}, ${u}, buffer.subarray(offset))) break;`),t.pushCode("offset += 1;"),t.pushCode("}"),t.pushCode(`${r} = buffer.subarray(${l}, offset);`)}else if(this.options.readUntil==="eof")t.pushCode(`${r} = buffer.subarray(offset);`);else{const f=t.generateOption(this.options.length);t.pushCode(`${r} = buffer.subarray(offset, offset + ${f});`),t.pushCode(`offset += ${f};`)}this.options.clone&&t.pushCode(`${r} = buffer.constructor.from(${r});`);const i=t.generateTmpVariable(),a=t.generateTmpVariable(),o=t.generateTmpVariable(),s=t.addImport(this.options.wrapper);if(t.pushCode(`${r} = ${s}.call(this, ${r}).subarray(0);`),t.pushCode(`var ${i} = buffer;`),t.pushCode(`var ${a} = offset;`),t.pushCode(`var ${o} = dataView;`),t.pushCode(`buffer = ${r};`),t.pushCode("offset = 0;"),t.pushCode("dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.length);"),this.options.type instanceof Dn)this.varName&&t.pushCode(`${n} = {};`),t.pushPath(this.varName),this.options.type.generate(t),t.popPath(this.varName);else if(Tn.has(this.options.type)){const f=t.generateTmpVariable();t.pushCode(`var ${f} = ${na+this.options.type}(0);`),t.pushCode(`${n} = ${f}.result;`),this.options.type!==this.alias&&t.addReference(this.options.type)}t.pushCode(`buffer = ${i};`),t.pushCode(`dataView = ${o};`),t.pushCode(`offset = ${a};`)}generateFormatter(t,n,r){if(typeof r=="function"){const i=t.addImport(r);t.pushCode(`${n} = ${i}.call(${t.generateVariable()}, ${n});`)}}generatePointer(t){const n=this.options.type,r=t.generateOption(this.options.offset),i=t.generateTmpVariable(),a=t.generateVariable(this.varName);if(t.pushCode(`var ${i} = offset;`),t.pushCode(`offset = ${r};`),this.options.type instanceof Dn){if(t.pushCode(`${a} = {};`),t.useContextVariables){const o=t.generateVariable();t.pushCode(`${a}.$parent = ${o};`),t.pushCode(`${a}.$root = ${o}.$root;`)}t.pushPath(this.varName),this.options.type.generate(t),t.popPath(this.varName),t.useContextVariables&&(t.pushCode(`delete ${a}.$parent;`),t.pushCode(`delete ${a}.$root;`))}else if(Tn.has(this.options.type)){const o=t.generateTmpVariable();if(t.pushCode(`var ${o} = ${na+this.options.type}(offset, {`),t.useContextVariables){const s=t.generateVariable();t.pushCode(`$parent: ${s},`),t.pushCode(`$root: ${s}.$root,`)}t.pushCode("});"),t.pushCode(`${a} = ${o}.result; offset = ${o}.offset;`),this.options.type!==this.alias&&t.addReference(this.options.type)}else if(Object.keys(In).indexOf(this.options.type)>=0){const o=Vu[n],s=ju[n];t.pushCode(`${a} = dataView.get${o}(offset, ${s});`),t.pushCode(`offset += ${In[n]};`)}t.pushCode(`offset = ${i};`)}generateSaveOffset(t){const n=t.generateVariable(this.varName);t.pushCode(`${n} = offset`)}};var ix={},H0={},ra={},al={};Object.defineProperty(al,"__esModule",{value:!0});function V0(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function ax(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function j0(e,t,n){return t&&ax(e.prototype,t),n&&ax(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function z7(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&q0(e,t)}function to(e){return to=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},to(e)}function q0(e,t){return q0=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},q0(e,t)}function U7(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function ol(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function G7(e,t){if(t&&(typeof t=="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return ol(e)}function H7(e){var t=U7();return function(){var r=to(e),i;if(t){var a=to(this).constructor;i=Reflect.construct(r,arguments,a)}else i=r.apply(this,arguments);return G7(this,i)}}function V7(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&(e=to(e),e!==null););return e}function qu(){return typeof Reflect<"u"&&Reflect.get?qu=Reflect.get.bind():qu=function(t,n,r){var i=V7(t,n);if(i){var a=Object.getOwnPropertyDescriptor(i,n);return a.get?a.get.call(arguments.length<3?t:r):a.value}},qu.apply(this,arguments)}var ox=function(){function e(){V0(this,e),Object.defineProperty(this,"listeners",{value:{},writable:!0,configurable:!0})}return j0(e,[{key:"addEventListener",value:function(n,r,i){n in this.listeners||(this.listeners[n]=[]),this.listeners[n].push({callback:r,options:i})}},{key:"removeEventListener",value:function(n,r){if(n in this.listeners){for(var i=this.listeners[n],a=0,o=i.length;a<o;a++)if(i[a].callback===r){i.splice(a,1);return}}}},{key:"dispatchEvent",value:function(n){if(n.type in this.listeners){for(var r=this.listeners[n.type],i=r.slice(),a=0,o=i.length;a<o;a++){var s=i[a];try{s.callback.call(this,n)}catch(f){Promise.resolve().then(function(){throw f})}s.options&&s.options.once&&this.removeEventListener(n.type,s.callback)}return!n.defaultPrevented}}}]),e}(),Z0=function(e){z7(n,e);var t=H7(n);function n(){var r;return V0(this,n),r=t.call(this),r.listeners||ox.call(ol(r)),Object.defineProperty(ol(r),"aborted",{value:!1,writable:!0,configurable:!0}),Object.defineProperty(ol(r),"onabort",{value:null,writable:!0,configurable:!0}),Object.defineProperty(ol(r),"reason",{value:void 0,writable:!0,configurable:!0}),r}return j0(n,[{key:"toString",value:function(){return"[object AbortSignal]"}},{key:"dispatchEvent",value:function(i){i.type==="abort"&&(this.aborted=!0,typeof this.onabort=="function"&&this.onabort.call(this,i)),qu(to(n.prototype),"dispatchEvent",this).call(this,i)}}]),n}(ox),sx=function(){function e(){V0(this,e),Object.defineProperty(this,"signal",{value:new Z0,writable:!0,configurable:!0})}return j0(e,[{key:"abort",value:function(n){var r;try{r=new Event("abort")}catch{typeof document<"u"?document.createEvent?(r=document.createEvent("Event"),r.initEvent("abort",!1,!1)):(r=document.createEventObject(),r.type="abort"):r={type:"abort",bubbles:!1,cancelable:!1}}var i=n;if(i===void 0)if(typeof document>"u")i=new Error("This operation was aborted"),i.name="AbortError";else try{i=new DOMException("signal is aborted without reason")}catch{i=new Error("This operation was aborted"),i.name="AbortError"}this.signal.reason=i,this.signal.dispatchEvent(r)}},{key:"toString",value:function(){return"[object AbortController]"}}]),e}();typeof Symbol<"u"&&Symbol.toStringTag&&(sx.prototype[Symbol.toStringTag]="AbortController",Z0.prototype[Symbol.toStringTag]="AbortSignal");function j7(e){return e.__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL?(console.log("__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL=true is set, will force install polyfill"),!0):typeof e.Request=="function"&&!e.Request.prototype.hasOwnProperty("signal")||!e.AbortController}function q7(e){typeof e=="function"&&(e={fetch:e});var t=e,n=t.fetch,r=t.Request,i=r===void 0?n.Request:r,a=t.AbortController,o=t.__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL,s=o===void 0?!1:o;if(!j7({fetch:n,Request:i,AbortController:a,__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL:s}))return{fetch:n,Request:f};var f=i;(f&&!f.prototype.hasOwnProperty("signal")||s)&&(f=function(h,d){var p;d&&d.signal&&(p=d.signal,delete d.signal);var b=new i(h,d);return p&&Object.defineProperty(b,"signal",{writable:!1,enumerable:!1,configurable:!0,value:p}),b},f.prototype=i.prototype);var l=n,u=function(h,d){var p=f&&f.prototype.isPrototypeOf(h)?h.signal:d?d.signal:void 0;if(p){var b;try{b=new DOMException("Aborted","AbortError")}catch{b=new Error("Aborted"),b.name="AbortError"}if(p.aborted)return Promise.reject(b);var y=new Promise(function(w,S){p.addEventListener("abort",function(){return S(b)},{once:!0})});return d&&d.signal&&delete d.signal,Promise.race([y,l(h,d)])}return l(h,d)};return{fetch:u,Request:f}}al.AbortController=sx,al.AbortSignal=Z0,al.abortableFetch=q7,Object.defineProperty(ra,"__esModule",{value:!0}),ra.AbortSignal=ra.AbortController=void 0;const lx=al;var Zu=function(){if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof globalThis<"u")return globalThis;throw new Error("unable to locate global object")};let Z7=typeof Zu().AbortController>"u"?lx.AbortController:Zu().AbortController;ra.AbortController=Z7;let W7=typeof Zu().AbortController>"u"?lx.AbortSignal:Zu().AbortSignal;ra.AbortSignal=W7;var W0={};Object.defineProperty(W0,"__esModule",{value:!0});const Y7=ra;class Q7{}class X7{constructor(){this.signals=new Set,this.abortController=new Y7.AbortController}addSignal(t=new Q7){if(this.signal.aborted)throw new Error("cannot add a signal, already aborted!");this.signals.add(t),t.aborted?this.handleAborted(t):typeof t.addEventListener=="function"&&t.addEventListener("abort",()=>{this.handleAborted(t)})}handleAborted(t){this.signals.delete(t),this.signals.size===0&&this.abortController.abort()}get signal(){return this.abortController.signal}abort(){this.abortController.abort()}}W0.default=X7;var Y0={};Object.defineProperty(Y0,"__esModule",{value:!0});class $7{constructor(){this.callbacks=new Set}addCallback(t=()=>{}){this.callbacks.add(t),t(this.currentMessage)}callback(t){this.currentMessage=t,this.callbacks.forEach(n=>{n(t)})}}Y0.default=$7;var fx=xu&&xu.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(H0,"__esModule",{value:!0});const K7=ra,J7=fx(W0),eP=fx(Y0);class Wu{constructor({fill:t,cache:n}){if(typeof t!="function")throw new TypeError("must pass a fill function");if(typeof n!="object")throw new TypeError("must pass a cache object");if(typeof n.get!="function"||typeof n.set!="function"||typeof n.delete!="function")throw new TypeError("cache must implement get(key), set(key, val), and and delete(key)");this.cache=n,this.fillCallback=t}static isAbortException(t){return t.name==="AbortError"||t.code==="ERR_ABORTED"||t.message==="AbortError: aborted"||t.message==="Error: aborted"}evict(t,n){this.cache.get(t)===n&&this.cache.delete(t)}fill(t,n,r,i){const a=new J7.default,o=new eP.default;o.addCallback(i);const s={aborter:a,promise:this.fillCallback(n,a.signal,f=>{o.callback(f)}),settled:!1,statusReporter:o,get aborted(){return this.aborter.signal.aborted}};s.aborter.addSignal(r),s.aborter.signal.addEventListener("abort",()=>{s.settled||this.evict(t,s)}),s.promise.then(()=>{s.settled=!0},()=>{s.settled=!0,this.evict(t,s)}).catch(f=>{throw console.error(f),f}),this.cache.set(t,s)}static checkSinglePromise(t,n){function r(){if(n&&n.aborted)throw Object.assign(new Error("aborted"),{code:"ERR_ABORTED"})}return t.then(i=>(r(),i),i=>{throw r(),i})}has(t){return this.cache.has(t)}get(t,n,r,i){if(!r&&n instanceof K7.AbortSignal)throw new TypeError("second get argument appears to be an AbortSignal, perhaps you meant to pass `null` for the fill data?");const a=this.cache.get(t);return a?a.aborted&&!a.settled?(this.evict(t,a),this.get(t,n,r,i)):a.settled?a.promise:(a.aborter.addSignal(r),a.statusReporter.addCallback(i),Wu.checkSinglePromise(a.promise,r)):(this.fill(t,n,r,i),Wu.checkSinglePromise(this.cache.get(t).promise,r))}delete(t){const n=this.cache.get(t);n&&(n.settled||n.aborter.abort(),this.cache.delete(t))}clear(){const t=this.cache.keys();let n=0;for(let r=t.next();!r.done;r=t.next())this.delete(r.value),n+=1;return n}}H0.default=Wu;var tP=xu&&xu.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(ix,"__esModule",{value:!0});const nP=tP(H0);var Yu=ix.default=nP.default;class rP{constructor(t={}){if(!(t.maxSize&&t.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=t.maxSize,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(t,n){this.cache.set(t,n),this._size++,this._size>=this.maxSize&&(this._size=0,this.oldCache=this.cache,this.cache=new Map)}get(t){if(this.cache.has(t))return this.cache.get(t);if(this.oldCache.has(t)){const n=this.oldCache.get(t);return this.oldCache.delete(t),this._set(t,n),n}}set(t,n){return this.cache.has(t)?this.cache.set(t,n):this._set(t,n),this}has(t){return this.cache.has(t)||this.oldCache.has(t)}peek(t){if(this.cache.has(t))return this.cache.get(t);if(this.oldCache.has(t))return this.oldCache.get(t)}delete(t){const n=this.cache.delete(t);return n&&this._size--,this.oldCache.delete(t)||n}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(const[t]of this)yield t}*values(){for(const[,t]of this)yield t}*[Symbol.iterator](){for(const t of this.cache)yield t;for(const t of this.oldCache){const[n]=t;this.cache.has(n)||(yield t)}}get size(){let t=0;for(const n of this.oldCache.keys())this.cache.has(n)||t++;return this._size+t}}var iP=rP;const Qu=Gs(iP);class Jr{constructor(t,n){this.ranges=arguments.length===2?[{min:t,max:n}]:0 in t?Object.assign({},t):[t]}min(){return this.ranges[0].min}max(){return this.ranges[this.ranges.length-1].max}contains(t){for(let n=0;n<this.ranges.length;n+=1){const r=this.ranges[n];if(r.min<=t&&r.max>=t)return!0}return!1}isContiguous(){return this.ranges.length>1}getRanges(){return this.ranges.map(t=>new Jr(t.min,t.max))}toString(){return this.ranges.map(t=>`[${t.min}-${t.max}]`).join(",")}union(t){const n=this.getRanges().concat(t.getRanges()).sort(this.rangeOrder),r=[];let i=n[0];for(let a=1;a<n.length;a+=1){const o=n[a];o.min()>i.max()+1?(r.push(i),i=o):o.max()>i.max()&&(i=new Jr(i.min(),o.max()))}return r.push(i),r.length===1?r[0]:new Jr(r)}intersection(t){let n=this,r=t;const i=this.ranges(),a=r.ranges(),o=i.length,s=a.length;let f=0,l=0;const u=[];for(;f<o&&l<s;){n=i[f],r=a[l];const c=Math.max(n.min(),r.min()),h=Math.min(n.max(),r.max());h>=c&&u.push(new Jr(c,h)),n.max()>r.max()?l+=1:f+=1}if(u.length===0)throw new Error("found range of length 0");return u.length===1?u[0]:new Jr(u)}coverage(){let t=0;const n=this.ranges();for(const r of n)t+=r.max()-r.min()+1;return t}rangeOrder(t,n){let r=t,i=n;return arguments.length<2&&(i=r,r=this),r.min()<i.min()?-1:r.min()>i.min()?1:r.max()<i.max()?-1:i.max()>r.max()?1:0}}/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */const aP=4,ux=0,cx=1,oP=2;function no(e){let t=e.length;for(;--t>=0;)e[t]=0}const sP=0,hx=1,lP=2,fP=3,uP=258,Q0=29,sl=256,ll=sl+1+Q0,ro=30,X0=19,dx=2*ll+1,ia=15,$0=16,cP=7,K0=256,px=16,gx=17,mx=18,J0=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),Xu=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),hP=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),bx=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),dP=512,cr=new Array((ll+2)*2);no(cr);const fl=new Array(ro*2);no(fl);const ul=new Array(dP);no(ul);const cl=new Array(uP-fP+1);no(cl);const ep=new Array(Q0);no(ep);const $u=new Array(ro);no($u);function tp(e,t,n,r,i){this.static_tree=e,this.extra_bits=t,this.extra_base=n,this.elems=r,this.max_length=i,this.has_stree=e&&e.length}let yx,wx,vx;function np(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}const xx=e=>e<256?ul[e]:ul[256+(e>>>7)],hl=(e,t)=>{e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255},Gt=(e,t,n)=>{e.bi_valid>$0-n?(e.bi_buf|=t<<e.bi_valid&65535,hl(e,e.bi_buf),e.bi_buf=t>>$0-e.bi_valid,e.bi_valid+=n-$0):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)},Wn=(e,t,n)=>{Gt(e,n[t*2],n[t*2+1])},Ax=(e,t)=>{let n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1},pP=e=>{e.bi_valid===16?(hl(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)},gP=(e,t)=>{const n=t.dyn_tree,r=t.max_code,i=t.stat_desc.static_tree,a=t.stat_desc.has_stree,o=t.stat_desc.extra_bits,s=t.stat_desc.extra_base,f=t.stat_desc.max_length;let l,u,c,h,d,p,b=0;for(h=0;h<=ia;h++)e.bl_count[h]=0;for(n[e.heap[e.heap_max]*2+1]=0,l=e.heap_max+1;l<dx;l++)u=e.heap[l],h=n[n[u*2+1]*2+1]+1,h>f&&(h=f,b++),n[u*2+1]=h,!(u>r)&&(e.bl_count[h]++,d=0,u>=s&&(d=o[u-s]),p=n[u*2],e.opt_len+=p*(h+d),a&&(e.static_len+=p*(i[u*2+1]+d)));if(b!==0){do{for(h=f-1;e.bl_count[h]===0;)h--;e.bl_count[h]--,e.bl_count[h+1]+=2,e.bl_count[f]--,b-=2}while(b>0);for(h=f;h!==0;h--)for(u=e.bl_count[h];u!==0;)c=e.heap[--l],!(c>r)&&(n[c*2+1]!==h&&(e.opt_len+=(h-n[c*2+1])*n[c*2],n[c*2+1]=h),u--)}},Ex=(e,t,n)=>{const r=new Array(ia+1);let i=0,a,o;for(a=1;a<=ia;a++)i=i+n[a-1]<<1,r[a]=i;for(o=0;o<=t;o++){let s=e[o*2+1];s!==0&&(e[o*2]=Ax(r[s]++,s))}},mP=()=>{let e,t,n,r,i;const a=new Array(ia+1);for(n=0,r=0;r<Q0-1;r++)for(ep[r]=n,e=0;e<1<<J0[r];e++)cl[n++]=r;for(cl[n-1]=r,i=0,r=0;r<16;r++)for($u[r]=i,e=0;e<1<<Xu[r];e++)ul[i++]=r;for(i>>=7;r<ro;r++)for($u[r]=i<<7,e=0;e<1<<Xu[r]-7;e++)ul[256+i++]=r;for(t=0;t<=ia;t++)a[t]=0;for(e=0;e<=143;)cr[e*2+1]=8,e++,a[8]++;for(;e<=255;)cr[e*2+1]=9,e++,a[9]++;for(;e<=279;)cr[e*2+1]=7,e++,a[7]++;for(;e<=287;)cr[e*2+1]=8,e++,a[8]++;for(Ex(cr,ll+1,a),e=0;e<ro;e++)fl[e*2+1]=5,fl[e*2]=Ax(e,5);yx=new tp(cr,J0,sl+1,ll,ia),wx=new tp(fl,Xu,0,ro,ia),vx=new tp(new Array(0),hP,0,X0,cP)},_x=e=>{let t;for(t=0;t<ll;t++)e.dyn_ltree[t*2]=0;for(t=0;t<ro;t++)e.dyn_dtree[t*2]=0;for(t=0;t<X0;t++)e.bl_tree[t*2]=0;e.dyn_ltree[K0*2]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},Sx=e=>{e.bi_valid>8?hl(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},Cx=(e,t,n,r)=>{const i=t*2,a=n*2;return e[i]<e[a]||e[i]===e[a]&&r[t]<=r[n]},rp=(e,t,n)=>{const r=e.heap[n];let i=n<<1;for(;i<=e.heap_len&&(i<e.heap_len&&Cx(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!Cx(t,r,e.heap[i],e.depth));)e.heap[n]=e.heap[i],n=i,i<<=1;e.heap[n]=r},Tx=(e,t,n)=>{let r,i,a=0,o,s;if(e.sym_next!==0)do r=e.pending_buf[e.sym_buf+a++]&255,r+=(e.pending_buf[e.sym_buf+a++]&255)<<8,i=e.pending_buf[e.sym_buf+a++],r===0?Wn(e,i,t):(o=cl[i],Wn(e,o+sl+1,t),s=J0[o],s!==0&&(i-=ep[o],Gt(e,i,s)),r--,o=xx(r),Wn(e,o,n),s=Xu[o],s!==0&&(r-=$u[o],Gt(e,r,s)));while(a<e.sym_next);Wn(e,K0,t)},ip=(e,t)=>{const n=t.dyn_tree,r=t.stat_desc.static_tree,i=t.stat_desc.has_stree,a=t.stat_desc.elems;let o,s,f=-1,l;for(e.heap_len=0,e.heap_max=dx,o=0;o<a;o++)n[o*2]!==0?(e.heap[++e.heap_len]=f=o,e.depth[o]=0):n[o*2+1]=0;for(;e.heap_len<2;)l=e.heap[++e.heap_len]=f<2?++f:0,n[l*2]=1,e.depth[l]=0,e.opt_len--,i&&(e.static_len-=r[l*2+1]);for(t.max_code=f,o=e.heap_len>>1;o>=1;o--)rp(e,n,o);l=a;do o=e.heap[1],e.heap[1]=e.heap[e.heap_len--],rp(e,n,1),s=e.heap[1],e.heap[--e.heap_max]=o,e.heap[--e.heap_max]=s,n[l*2]=n[o*2]+n[s*2],e.depth[l]=(e.depth[o]>=e.depth[s]?e.depth[o]:e.depth[s])+1,n[o*2+1]=n[s*2+1]=l,e.heap[1]=l++,rp(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],gP(e,t),Ex(n,f,e.bl_count)},Ix=(e,t,n)=>{let r,i=-1,a,o=t[0*2+1],s=0,f=7,l=4;for(o===0&&(f=138,l=3),t[(n+1)*2+1]=65535,r=0;r<=n;r++)a=o,o=t[(r+1)*2+1],!(++s<f&&a===o)&&(s<l?e.bl_tree[a*2]+=s:a!==0?(a!==i&&e.bl_tree[a*2]++,e.bl_tree[px*2]++):s<=10?e.bl_tree[gx*2]++:e.bl_tree[mx*2]++,s=0,i=a,o===0?(f=138,l=3):a===o?(f=6,l=3):(f=7,l=4))},kx=(e,t,n)=>{let r,i=-1,a,o=t[0*2+1],s=0,f=7,l=4;for(o===0&&(f=138,l=3),r=0;r<=n;r++)if(a=o,o=t[(r+1)*2+1],!(++s<f&&a===o)){if(s<l)do Wn(e,a,e.bl_tree);while(--s!==0);else a!==0?(a!==i&&(Wn(e,a,e.bl_tree),s--),Wn(e,px,e.bl_tree),Gt(e,s-3,2)):s<=10?(Wn(e,gx,e.bl_tree),Gt(e,s-3,3)):(Wn(e,mx,e.bl_tree),Gt(e,s-11,7));s=0,i=a,o===0?(f=138,l=3):a===o?(f=6,l=3):(f=7,l=4)}},bP=e=>{let t;for(Ix(e,e.dyn_ltree,e.l_desc.max_code),Ix(e,e.dyn_dtree,e.d_desc.max_code),ip(e,e.bl_desc),t=X0-1;t>=3&&e.bl_tree[bx[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t},yP=(e,t,n,r)=>{let i;for(Gt(e,t-257,5),Gt(e,n-1,5),Gt(e,r-4,4),i=0;i<r;i++)Gt(e,e.bl_tree[bx[i]*2+1],3);kx(e,e.dyn_ltree,t-1),kx(e,e.dyn_dtree,n-1)},wP=e=>{let t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return ux;if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0)return cx;for(n=32;n<sl;n++)if(e.dyn_ltree[n*2]!==0)return cx;return ux};let Bx=!1;const vP=e=>{Bx||(mP(),Bx=!0),e.l_desc=new np(e.dyn_ltree,yx),e.d_desc=new np(e.dyn_dtree,wx),e.bl_desc=new np(e.bl_tree,vx),e.bi_buf=0,e.bi_valid=0,_x(e)},Dx=(e,t,n,r)=>{Gt(e,(sP<<1)+(r?1:0),3),Sx(e),hl(e,n),hl(e,~n),n&&e.pending_buf.set(e.window.subarray(t,t+n),e.pending),e.pending+=n},xP=e=>{Gt(e,hx<<1,3),Wn(e,K0,cr),pP(e)},AP=(e,t,n,r)=>{let i,a,o=0;e.level>0?(e.strm.data_type===oP&&(e.strm.data_type=wP(e)),ip(e,e.l_desc),ip(e,e.d_desc),o=bP(e),i=e.opt_len+3+7>>>3,a=e.static_len+3+7>>>3,a<=i&&(i=a)):i=a=n+5,n+4<=i&&t!==-1?Dx(e,t,n,r):e.strategy===aP||a===i?(Gt(e,(hx<<1)+(r?1:0),3),Tx(e,cr,fl)):(Gt(e,(lP<<1)+(r?1:0),3),yP(e,e.l_desc.max_code+1,e.d_desc.max_code+1,o+1),Tx(e,e.dyn_ltree,e.dyn_dtree)),_x(e),r&&Sx(e)},EP=(e,t,n)=>(e.pending_buf[e.sym_buf+e.sym_next++]=t,e.pending_buf[e.sym_buf+e.sym_next++]=t>>8,e.pending_buf[e.sym_buf+e.sym_next++]=n,t===0?e.dyn_ltree[n*2]++:(e.matches++,t--,e.dyn_ltree[(cl[n]+sl+1)*2]++,e.dyn_dtree[xx(t)*2]++),e.sym_next===e.sym_end);var _P=vP,SP=Dx,CP=AP,TP=EP,IP=xP,kP={_tr_init:_P,_tr_stored_block:SP,_tr_flush_block:CP,_tr_tally:TP,_tr_align:IP},dl=(e,t,n,r)=>{let i=e&65535|0,a=e>>>16&65535|0,o=0;for(;n!==0;){o=n>2e3?2e3:n,n-=o;do i=i+t[r++]|0,a=a+i|0;while(--o);i%=65521,a%=65521}return i|a<<16|0};const BP=()=>{let e,t=[];for(var n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=e&1?3988292384^e>>>1:e>>>1;t[n]=e}return t},DP=new Uint32Array(BP());var ht=(e,t,n,r)=>{const i=DP,a=r+n;e^=-1;for(let o=r;o<a;o++)e=e>>>8^i[(e^t[o])&255];return e^-1},io={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"},pl={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:FP,_tr_stored_block:ap,_tr_flush_block:RP,_tr_tally:ei,_tr_align:PP}=kP,{Z_NO_FLUSH:ti,Z_PARTIAL_FLUSH:MP,Z_FULL_FLUSH:NP,Z_FINISH:un,Z_BLOCK:Fx,Z_OK:bt,Z_STREAM_END:Rx,Z_STREAM_ERROR:Yn,Z_DATA_ERROR:LP,Z_BUF_ERROR:op,Z_DEFAULT_COMPRESSION:OP,Z_FILTERED:zP,Z_HUFFMAN_ONLY:Ku,Z_RLE:UP,Z_FIXED:GP,Z_DEFAULT_STRATEGY:HP,Z_UNKNOWN:VP,Z_DEFLATED:Ju}=pl,jP=9,qP=15,ZP=8,WP=29,sp=256+1+WP,YP=30,QP=19,XP=2*sp+1,$P=15,de=3,ni=258,Qn=ni+de+1,KP=32,ao=42,lp=57,fp=69,up=73,cp=91,hp=103,aa=113,gl=666,kt=1,oo=2,oa=3,so=4,JP=3,sa=(e,t)=>(e.msg=io[t],t),Px=e=>e*2-(e>4?9:0),ri=e=>{let t=e.length;for(;--t>=0;)e[t]=0},eM=e=>{let t,n,r,i=e.w_size;t=e.hash_size,r=t;do n=e.head[--r],e.head[r]=n>=i?n-i:0;while(--t);t=i,r=t;do n=e.prev[--r],e.prev[r]=n>=i?n-i:0;while(--t)};let ii=(e,t,n)=>(t<<e.hash_shift^n)&e.hash_mask;const $t=e=>{const t=e.state;let n=t.pending;n>e.avail_out&&(n=e.avail_out),n!==0&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+n),e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,t.pending===0&&(t.pending_out=0))},Kt=(e,t)=>{RP(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,$t(e.strm)},xe=(e,t)=>{e.pending_buf[e.pending++]=t},ml=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255},dp=(e,t,n,r)=>{let i=e.avail_in;return i>r&&(i=r),i===0?0:(e.avail_in-=i,t.set(e.input.subarray(e.next_in,e.next_in+i),n),e.state.wrap===1?e.adler=dl(e.adler,t,i,n):e.state.wrap===2&&(e.adler=ht(e.adler,t,i,n)),e.next_in+=i,e.total_in+=i,i)},Mx=(e,t)=>{let n=e.max_chain_length,r=e.strstart,i,a,o=e.prev_length,s=e.nice_match;const f=e.strstart>e.w_size-Qn?e.strstart-(e.w_size-Qn):0,l=e.window,u=e.w_mask,c=e.prev,h=e.strstart+ni;let d=l[r+o-1],p=l[r+o];e.prev_length>=e.good_match&&(n>>=2),s>e.lookahead&&(s=e.lookahead);do if(i=t,!(l[i+o]!==p||l[i+o-1]!==d||l[i]!==l[r]||l[++i]!==l[r+1])){r+=2,i++;do;while(l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&r<h);if(a=ni-(h-r),r=h-ni,a>o){if(e.match_start=t,o=a,a>=s)break;d=l[r+o-1],p=l[r+o]}}while((t=c[t&u])>f&&--n!==0);return o<=e.lookahead?o:e.lookahead},lo=e=>{const t=e.w_size;let n,r,i;do{if(r=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-Qn)&&(e.window.set(e.window.subarray(t,t+t-r),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,e.insert>e.strstart&&(e.insert=e.strstart),eM(e),r+=t),e.strm.avail_in===0)break;if(n=dp(e.strm,e.window,e.strstart+e.lookahead,r),e.lookahead+=n,e.lookahead+e.insert>=de)for(i=e.strstart-e.insert,e.ins_h=e.window[i],e.ins_h=ii(e,e.ins_h,e.window[i+1]);e.insert&&(e.ins_h=ii(e,e.ins_h,e.window[i+de-1]),e.prev[i&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=i,i++,e.insert--,!(e.lookahead+e.insert<de)););}while(e.lookahead<Qn&&e.strm.avail_in!==0)},Nx=(e,t)=>{let n=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,r,i,a,o=0,s=e.strm.avail_in;do{if(r=65535,a=e.bi_valid+42>>3,e.strm.avail_out<a||(a=e.strm.avail_out-a,i=e.strstart-e.block_start,r>i+e.strm.avail_in&&(r=i+e.strm.avail_in),r>a&&(r=a),r<n&&(r===0&&t!==un||t===ti||r!==i+e.strm.avail_in)))break;o=t===un&&r===i+e.strm.avail_in?1:0,ap(e,0,0,o),e.pending_buf[e.pending-4]=r,e.pending_buf[e.pending-3]=r>>8,e.pending_buf[e.pending-2]=~r,e.pending_buf[e.pending-1]=~r>>8,$t(e.strm),i&&(i>r&&(i=r),e.strm.output.set(e.window.subarray(e.block_start,e.block_start+i),e.strm.next_out),e.strm.next_out+=i,e.strm.avail_out-=i,e.strm.total_out+=i,e.block_start+=i,r-=i),r&&(dp(e.strm,e.strm.output,e.strm.next_out,r),e.strm.next_out+=r,e.strm.avail_out-=r,e.strm.total_out+=r)}while(o===0);return s-=e.strm.avail_in,s&&(s>=e.w_size?(e.matches=2,e.window.set(e.strm.input.subarray(e.strm.next_in-e.w_size,e.strm.next_in),0),e.strstart=e.w_size,e.insert=e.strstart):(e.window_size-e.strstart<=s&&(e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,e.insert>e.strstart&&(e.insert=e.strstart)),e.window.set(e.strm.input.subarray(e.strm.next_in-s,e.strm.next_in),e.strstart),e.strstart+=s,e.insert+=s>e.w_size-e.insert?e.w_size-e.insert:s),e.block_start=e.strstart),e.high_water<e.strstart&&(e.high_water=e.strstart),o?so:t!==ti&&t!==un&&e.strm.avail_in===0&&e.strstart===e.block_start?oo:(a=e.window_size-e.strstart,e.strm.avail_in>a&&e.block_start>=e.w_size&&(e.block_start-=e.w_size,e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,a+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),a>e.strm.avail_in&&(a=e.strm.avail_in),a&&(dp(e.strm,e.window,e.strstart,a),e.strstart+=a,e.insert+=a>e.w_size-e.insert?e.w_size-e.insert:a),e.high_water<e.strstart&&(e.high_water=e.strstart),a=e.bi_valid+42>>3,a=e.pending_buf_size-a>65535?65535:e.pending_buf_size-a,n=a>e.w_size?e.w_size:a,i=e.strstart-e.block_start,(i>=n||(i||t===un)&&t!==ti&&e.strm.avail_in===0&&i<=a)&&(r=i>a?a:i,o=t===un&&e.strm.avail_in===0&&r===i?1:0,ap(e,e.block_start,r,o),e.block_start+=r,$t(e.strm)),o?oa:kt)},pp=(e,t)=>{let n,r;for(;;){if(e.lookahead<Qn){if(lo(e),e.lookahead<Qn&&t===ti)return kt;if(e.lookahead===0)break}if(n=0,e.lookahead>=de&&(e.ins_h=ii(e,e.ins_h,e.window[e.strstart+de-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),n!==0&&e.strstart-n<=e.w_size-Qn&&(e.match_length=Mx(e,n)),e.match_length>=de)if(r=ei(e,e.strstart-e.match_start,e.match_length-de),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=de){e.match_length--;do e.strstart++,e.ins_h=ii(e,e.ins_h,e.window[e.strstart+de-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;while(--e.match_length!==0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=ii(e,e.ins_h,e.window[e.strstart+1]);else r=ei(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(Kt(e,!1),e.strm.avail_out===0))return kt}return e.insert=e.strstart<de-1?e.strstart:de-1,t===un?(Kt(e,!0),e.strm.avail_out===0?oa:so):e.sym_next&&(Kt(e,!1),e.strm.avail_out===0)?kt:oo},fo=(e,t)=>{let n,r,i;for(;;){if(e.lookahead<Qn){if(lo(e),e.lookahead<Qn&&t===ti)return kt;if(e.lookahead===0)break}if(n=0,e.lookahead>=de&&(e.ins_h=ii(e,e.ins_h,e.window[e.strstart+de-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=de-1,n!==0&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-Qn&&(e.match_length=Mx(e,n),e.match_length<=5&&(e.strategy===zP||e.match_length===de&&e.strstart-e.match_start>4096)&&(e.match_length=de-1)),e.prev_length>=de&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-de,r=ei(e,e.strstart-1-e.prev_match,e.prev_length-de),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=i&&(e.ins_h=ii(e,e.ins_h,e.window[e.strstart+de-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);while(--e.prev_length!==0);if(e.match_available=0,e.match_length=de-1,e.strstart++,r&&(Kt(e,!1),e.strm.avail_out===0))return kt}else if(e.match_available){if(r=ei(e,0,e.window[e.strstart-1]),r&&Kt(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return kt}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=ei(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<de-1?e.strstart:de-1,t===un?(Kt(e,!0),e.strm.avail_out===0?oa:so):e.sym_next&&(Kt(e,!1),e.strm.avail_out===0)?kt:oo},tM=(e,t)=>{let n,r,i,a;const o=e.window;for(;;){if(e.lookahead<=ni){if(lo(e),e.lookahead<=ni&&t===ti)return kt;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=de&&e.strstart>0&&(i=e.strstart-1,r=o[i],r===o[++i]&&r===o[++i]&&r===o[++i])){a=e.strstart+ni;do;while(r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&i<a);e.match_length=ni-(a-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=de?(n=ei(e,1,e.match_length-de),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=ei(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(Kt(e,!1),e.strm.avail_out===0))return kt}return e.insert=0,t===un?(Kt(e,!0),e.strm.avail_out===0?oa:so):e.sym_next&&(Kt(e,!1),e.strm.avail_out===0)?kt:oo},nM=(e,t)=>{let n;for(;;){if(e.lookahead===0&&(lo(e),e.lookahead===0)){if(t===ti)return kt;break}if(e.match_length=0,n=ei(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(Kt(e,!1),e.strm.avail_out===0))return kt}return e.insert=0,t===un?(Kt(e,!0),e.strm.avail_out===0?oa:so):e.sym_next&&(Kt(e,!1),e.strm.avail_out===0)?kt:oo};function Xn(e,t,n,r,i){this.good_length=e,this.max_lazy=t,this.nice_length=n,this.max_chain=r,this.func=i}const bl=[new Xn(0,0,0,0,Nx),new Xn(4,4,8,4,pp),new Xn(4,5,16,8,pp),new Xn(4,6,32,32,pp),new Xn(4,4,16,16,fo),new Xn(8,16,32,32,fo),new Xn(8,16,128,128,fo),new Xn(8,32,128,256,fo),new Xn(32,128,258,1024,fo),new Xn(32,258,258,4096,fo)],rM=e=>{e.window_size=2*e.w_size,ri(e.head),e.max_lazy_match=bl[e.level].max_lazy,e.good_match=bl[e.level].good_length,e.nice_match=bl[e.level].nice_length,e.max_chain_length=bl[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=de-1,e.match_available=0,e.ins_h=0};function iM(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Ju,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(XP*2),this.dyn_dtree=new Uint16Array((2*YP+1)*2),this.bl_tree=new Uint16Array((2*QP+1)*2),ri(this.dyn_ltree),ri(this.dyn_dtree),ri(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array($P+1),this.heap=new Uint16Array(2*sp+1),ri(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*sp+1),ri(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const yl=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.status!==ao&&t.status!==lp&&t.status!==fp&&t.status!==up&&t.status!==cp&&t.status!==hp&&t.status!==aa&&t.status!==gl?1:0},Lx=e=>{if(yl(e))return sa(e,Yn);e.total_in=e.total_out=0,e.data_type=VP;const t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap===2?lp:t.wrap?ao:aa,e.adler=t.wrap===2?0:1,t.last_flush=-2,FP(t),bt},Ox=e=>{const t=Lx(e);return t===bt&&rM(e.state),t},aM=(e,t)=>yl(e)||e.state.wrap!==2?Yn:(e.state.gzhead=t,bt),zx=(e,t,n,r,i,a)=>{if(!e)return Yn;let o=1;if(t===OP&&(t=6),r<0?(o=0,r=-r):r>15&&(o=2,r-=16),i<1||i>jP||n!==Ju||r<8||r>15||t<0||t>9||a<0||a>GP||r===8&&o!==1)return sa(e,Yn);r===8&&(r=9);const s=new iM;return e.state=s,s.strm=e,s.status=ao,s.wrap=o,s.gzhead=null,s.w_bits=r,s.w_size=1<<s.w_bits,s.w_mask=s.w_size-1,s.hash_bits=i+7,s.hash_size=1<<s.hash_bits,s.hash_mask=s.hash_size-1,s.hash_shift=~~((s.hash_bits+de-1)/de),s.window=new Uint8Array(s.w_size*2),s.head=new Uint16Array(s.hash_size),s.prev=new Uint16Array(s.w_size),s.lit_bufsize=1<<i+6,s.pending_buf_size=s.lit_bufsize*4,s.pending_buf=new Uint8Array(s.pending_buf_size),s.sym_buf=s.lit_bufsize,s.sym_end=(s.lit_bufsize-1)*3,s.level=t,s.strategy=a,s.method=n,Ox(e)},oM=(e,t)=>zx(e,t,Ju,qP,ZP,HP),sM=(e,t)=>{if(yl(e)||t>Fx||t<0)return e?sa(e,Yn):Yn;const n=e.state;if(!e.output||e.avail_in!==0&&!e.input||n.status===gl&&t!==un)return sa(e,e.avail_out===0?op:Yn);const r=n.last_flush;if(n.last_flush=t,n.pending!==0){if($t(e),e.avail_out===0)return n.last_flush=-1,bt}else if(e.avail_in===0&&Px(t)<=Px(r)&&t!==un)return sa(e,op);if(n.status===gl&&e.avail_in!==0)return sa(e,op);if(n.status===ao&&n.wrap===0&&(n.status=aa),n.status===ao){let i=Ju+(n.w_bits-8<<4)<<8,a=-1;if(n.strategy>=Ku||n.level<2?a=0:n.level<6?a=1:n.level===6?a=2:a=3,i|=a<<6,n.strstart!==0&&(i|=KP),i+=31-i%31,ml(n,i),n.strstart!==0&&(ml(n,e.adler>>>16),ml(n,e.adler&65535)),e.adler=1,n.status=aa,$t(e),n.pending!==0)return n.last_flush=-1,bt}if(n.status===lp){if(e.adler=0,xe(n,31),xe(n,139),xe(n,8),n.gzhead)xe(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),xe(n,n.gzhead.time&255),xe(n,n.gzhead.time>>8&255),xe(n,n.gzhead.time>>16&255),xe(n,n.gzhead.time>>24&255),xe(n,n.level===9?2:n.strategy>=Ku||n.level<2?4:0),xe(n,n.gzhead.os&255),n.gzhead.extra&&n.gzhead.extra.length&&(xe(n,n.gzhead.extra.length&255),xe(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=ht(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=fp;else if(xe(n,0),xe(n,0),xe(n,0),xe(n,0),xe(n,0),xe(n,n.level===9?2:n.strategy>=Ku||n.level<2?4:0),xe(n,JP),n.status=aa,$t(e),n.pending!==0)return n.last_flush=-1,bt}if(n.status===fp){if(n.gzhead.extra){let i=n.pending,a=(n.gzhead.extra.length&65535)-n.gzindex;for(;n.pending+a>n.pending_buf_size;){let s=n.pending_buf_size-n.pending;if(n.pending_buf.set(n.gzhead.extra.subarray(n.gzindex,n.gzindex+s),n.pending),n.pending=n.pending_buf_size,n.gzhead.hcrc&&n.pending>i&&(e.adler=ht(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex+=s,$t(e),n.pending!==0)return n.last_flush=-1,bt;i=0,a-=s}let o=new Uint8Array(n.gzhead.extra);n.pending_buf.set(o.subarray(n.gzindex,n.gzindex+a),n.pending),n.pending+=a,n.gzhead.hcrc&&n.pending>i&&(e.adler=ht(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=up}if(n.status===up){if(n.gzhead.name){let i=n.pending,a;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>i&&(e.adler=ht(e.adler,n.pending_buf,n.pending-i,i)),$t(e),n.pending!==0)return n.last_flush=-1,bt;i=0}n.gzindex<n.gzhead.name.length?a=n.gzhead.name.charCodeAt(n.gzindex++)&255:a=0,xe(n,a)}while(a!==0);n.gzhead.hcrc&&n.pending>i&&(e.adler=ht(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=cp}if(n.status===cp){if(n.gzhead.comment){let i=n.pending,a;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>i&&(e.adler=ht(e.adler,n.pending_buf,n.pending-i,i)),$t(e),n.pending!==0)return n.last_flush=-1,bt;i=0}n.gzindex<n.gzhead.comment.length?a=n.gzhead.comment.charCodeAt(n.gzindex++)&255:a=0,xe(n,a)}while(a!==0);n.gzhead.hcrc&&n.pending>i&&(e.adler=ht(e.adler,n.pending_buf,n.pending-i,i))}n.status=hp}if(n.status===hp){if(n.gzhead.hcrc){if(n.pending+2>n.pending_buf_size&&($t(e),n.pending!==0))return n.last_flush=-1,bt;xe(n,e.adler&255),xe(n,e.adler>>8&255),e.adler=0}if(n.status=aa,$t(e),n.pending!==0)return n.last_flush=-1,bt}if(e.avail_in!==0||n.lookahead!==0||t!==ti&&n.status!==gl){let i=n.level===0?Nx(n,t):n.strategy===Ku?nM(n,t):n.strategy===UP?tM(n,t):bl[n.level].func(n,t);if((i===oa||i===so)&&(n.status=gl),i===kt||i===oa)return e.avail_out===0&&(n.last_flush=-1),bt;if(i===oo&&(t===MP?PP(n):t!==Fx&&(ap(n,0,0,!1),t===NP&&(ri(n.head),n.lookahead===0&&(n.strstart=0,n.block_start=0,n.insert=0))),$t(e),e.avail_out===0))return n.last_flush=-1,bt}return t!==un?bt:n.wrap<=0?Rx:(n.wrap===2?(xe(n,e.adler&255),xe(n,e.adler>>8&255),xe(n,e.adler>>16&255),xe(n,e.adler>>24&255),xe(n,e.total_in&255),xe(n,e.total_in>>8&255),xe(n,e.total_in>>16&255),xe(n,e.total_in>>24&255)):(ml(n,e.adler>>>16),ml(n,e.adler&65535)),$t(e),n.wrap>0&&(n.wrap=-n.wrap),n.pending!==0?bt:Rx)},lM=e=>{if(yl(e))return Yn;const t=e.state.status;return e.state=null,t===aa?sa(e,LP):bt},fM=(e,t)=>{let n=t.length;if(yl(e))return Yn;const r=e.state,i=r.wrap;if(i===2||i===1&&r.status!==ao||r.lookahead)return Yn;if(i===1&&(e.adler=dl(e.adler,t,n,0)),r.wrap=0,n>=r.w_size){i===0&&(ri(r.head),r.strstart=0,r.block_start=0,r.insert=0);let f=new Uint8Array(r.w_size);f.set(t.subarray(n-r.w_size,n),0),t=f,n=r.w_size}const a=e.avail_in,o=e.next_in,s=e.input;for(e.avail_in=n,e.next_in=0,e.input=t,lo(r);r.lookahead>=de;){let f=r.strstart,l=r.lookahead-(de-1);do r.ins_h=ii(r,r.ins_h,r.window[f+de-1]),r.prev[f&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=f,f++;while(--l);r.strstart=f,r.lookahead=de-1,lo(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=de-1,r.match_available=0,e.next_in=o,e.input=s,e.avail_in=a,r.wrap=i,bt};var uM=oM,cM=zx,hM=Ox,dM=Lx,pM=aM,gM=sM,mM=lM,bM=fM,yM="pako deflate (from Nodeca project)",wl={deflateInit:uM,deflateInit2:cM,deflateReset:hM,deflateResetKeep:dM,deflateSetHeader:pM,deflate:gM,deflateEnd:mM,deflateSetDictionary:bM,deflateInfo:yM};const wM=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var vM=function(e){const t=Array.prototype.slice.call(arguments,1);for(;t.length;){const n=t.shift();if(n){if(typeof n!="object")throw new TypeError(n+"must be non-object");for(const r in n)wM(n,r)&&(e[r]=n[r])}}return e},xM=e=>{let t=0;for(let r=0,i=e.length;r<i;r++)t+=e[r].length;const n=new Uint8Array(t);for(let r=0,i=0,a=e.length;r<a;r++){let o=e[r];n.set(o,i),i+=o.length}return n},ec={assign:vM,flattenChunks:xM};let Ux=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{Ux=!1}const vl=new Uint8Array(256);for(let e=0;e<256;e++)vl[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;vl[254]=vl[254]=1;var AM=e=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(e);let t,n,r,i,a,o=e.length,s=0;for(i=0;i<o;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),s+=n<128?1:n<2048?2:n<65536?3:4;for(t=new Uint8Array(s),a=0,i=0;a<s;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),n<128?t[a++]=n:n<2048?(t[a++]=192|n>>>6,t[a++]=128|n&63):n<65536?(t[a++]=224|n>>>12,t[a++]=128|n>>>6&63,t[a++]=128|n&63):(t[a++]=240|n>>>18,t[a++]=128|n>>>12&63,t[a++]=128|n>>>6&63,t[a++]=128|n&63);return t};const EM=(e,t)=>{if(t<65534&&e.subarray&&Ux)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let n="";for(let r=0;r<t;r++)n+=String.fromCharCode(e[r]);return n};var _M=(e,t)=>{const n=t||e.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(e.subarray(0,t));let r,i;const a=new Array(n*2);for(i=0,r=0;r<n;){let o=e[r++];if(o<128){a[i++]=o;continue}let s=vl[o];if(s>4){a[i++]=65533,r+=s-1;continue}for(o&=s===2?31:s===3?15:7;s>1&&r<n;)o=o<<6|e[r++]&63,s--;if(s>1){a[i++]=65533;continue}o<65536?a[i++]=o:(o-=65536,a[i++]=55296|o>>10&1023,a[i++]=56320|o&1023)}return EM(a,i)},SM=(e,t)=>{t=t||e.length,t>e.length&&(t=e.length);let n=t-1;for(;n>=0&&(e[n]&192)===128;)n--;return n<0||n===0?t:n+vl[e[n]]>t?n:t},xl={string2buf:AM,buf2string:_M,utf8border:SM};function CM(){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 Gx=CM;const Hx=Object.prototype.toString,{Z_NO_FLUSH:TM,Z_SYNC_FLUSH:IM,Z_FULL_FLUSH:kM,Z_FINISH:BM,Z_OK:tc,Z_STREAM_END:DM,Z_DEFAULT_COMPRESSION:FM,Z_DEFAULT_STRATEGY:RM,Z_DEFLATED:PM}=pl;function gp(e){this.options=ec.assign({level:FM,method:PM,chunkSize:16384,windowBits:15,memLevel:8,strategy:RM},e||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Gx,this.strm.avail_out=0;let n=wl.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==tc)throw new Error(io[n]);if(t.header&&wl.deflateSetHeader(this.strm,t.header),t.dictionary){let r;if(typeof t.dictionary=="string"?r=xl.string2buf(t.dictionary):Hx.call(t.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(t.dictionary):r=t.dictionary,n=wl.deflateSetDictionary(this.strm,r),n!==tc)throw new Error(io[n]);this._dict_set=!0}}gp.prototype.push=function(e,t){const n=this.strm,r=this.options.chunkSize;let i,a;if(this.ended)return!1;for(t===~~t?a=t:a=t===!0?BM:TM,typeof e=="string"?n.input=xl.string2buf(e):Hx.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;){if(n.avail_out===0&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),(a===IM||a===kM)&&n.avail_out<=6){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(i=wl.deflate(n,a),i===DM)return n.next_out>0&&this.onData(n.output.subarray(0,n.next_out)),i=wl.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===tc;if(n.avail_out===0){this.onData(n.output);continue}if(a>0&&n.next_out>0){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(n.avail_in===0)break}return!0},gp.prototype.onData=function(e){this.chunks.push(e)},gp.prototype.onEnd=function(e){e===tc&&(this.result=ec.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};const nc=16209,MM=16191;var NM=function(t,n){let r,i,a,o,s,f,l,u,c,h,d,p,b,y,w,S,C,_,k,B,I,R,M,j;const O=t.state;r=t.next_in,M=t.input,i=r+(t.avail_in-5),a=t.next_out,j=t.output,o=a-(n-t.avail_out),s=a+(t.avail_out-257),f=O.dmax,l=O.wsize,u=O.whave,c=O.wnext,h=O.window,d=O.hold,p=O.bits,b=O.lencode,y=O.distcode,w=(1<<O.lenbits)-1,S=(1<<O.distbits)-1;e:do{p<15&&(d+=M[r++]<<p,p+=8,d+=M[r++]<<p,p+=8),C=b[d&w];t:for(;;){if(_=C>>>24,d>>>=_,p-=_,_=C>>>16&255,_===0)j[a++]=C&65535;else if(_&16){k=C&65535,_&=15,_&&(p<_&&(d+=M[r++]<<p,p+=8),k+=d&(1<<_)-1,d>>>=_,p-=_),p<15&&(d+=M[r++]<<p,p+=8,d+=M[r++]<<p,p+=8),C=y[d&S];n:for(;;){if(_=C>>>24,d>>>=_,p-=_,_=C>>>16&255,_&16){if(B=C&65535,_&=15,p<_&&(d+=M[r++]<<p,p+=8,p<_&&(d+=M[r++]<<p,p+=8)),B+=d&(1<<_)-1,B>f){t.msg="invalid distance too far back",O.mode=nc;break e}if(d>>>=_,p-=_,_=a-o,B>_){if(_=B-_,_>u&&O.sane){t.msg="invalid distance too far back",O.mode=nc;break e}if(I=0,R=h,c===0){if(I+=l-_,_<k){k-=_;do j[a++]=h[I++];while(--_);I=a-B,R=j}}else if(c<_){if(I+=l+c-_,_-=c,_<k){k-=_;do j[a++]=h[I++];while(--_);if(I=0,c<k){_=c,k-=_;do j[a++]=h[I++];while(--_);I=a-B,R=j}}}else if(I+=c-_,_<k){k-=_;do j[a++]=h[I++];while(--_);I=a-B,R=j}for(;k>2;)j[a++]=R[I++],j[a++]=R[I++],j[a++]=R[I++],k-=3;k&&(j[a++]=R[I++],k>1&&(j[a++]=R[I++]))}else{I=a-B;do j[a++]=j[I++],j[a++]=j[I++],j[a++]=j[I++],k-=3;while(k>2);k&&(j[a++]=j[I++],k>1&&(j[a++]=j[I++]))}}else if(_&64){t.msg="invalid distance code",O.mode=nc;break e}else{C=y[(C&65535)+(d&(1<<_)-1)];continue n}break}}else if(_&64)if(_&32){O.mode=MM;break e}else{t.msg="invalid literal/length code",O.mode=nc;break e}else{C=b[(C&65535)+(d&(1<<_)-1)];continue t}break}}while(r<i&&a<s);k=p>>3,r-=k,p-=k<<3,d&=(1<<p)-1,t.next_in=r,t.next_out=a,t.avail_in=r<i?5+(i-r):5-(r-i),t.avail_out=a<s?257+(s-a):257-(a-s),O.hold=d,O.bits=p};const uo=15,Vx=852,jx=592,qx=0,mp=1,Zx=2,LM=new Uint16Array([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]),OM=new Uint8Array([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]),zM=new Uint16Array([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]),UM=new Uint8Array([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]);var Al=(e,t,n,r,i,a,o,s)=>{const f=s.bits;let l=0,u=0,c=0,h=0,d=0,p=0,b=0,y=0,w=0,S=0,C,_,k,B,I,R=null,M;const j=new Uint16Array(uo+1),O=new Uint16Array(uo+1);let ne=null,oe,pe,ke;for(l=0;l<=uo;l++)j[l]=0;for(u=0;u<r;u++)j[t[n+u]]++;for(d=f,h=uo;h>=1&&j[h]===0;h--);if(d>h&&(d=h),h===0)return i[a++]=1<<24|64<<16|0,i[a++]=1<<24|64<<16|0,s.bits=1,0;for(c=1;c<h&&j[c]===0;c++);for(d<c&&(d=c),y=1,l=1;l<=uo;l++)if(y<<=1,y-=j[l],y<0)return-1;if(y>0&&(e===qx||h!==1))return-1;for(O[1]=0,l=1;l<uo;l++)O[l+1]=O[l]+j[l];for(u=0;u<r;u++)t[n+u]!==0&&(o[O[t[n+u]]++]=u);if(e===qx?(R=ne=o,M=20):e===mp?(R=LM,ne=OM,M=257):(R=zM,ne=UM,M=0),S=0,u=0,l=c,I=a,p=d,b=0,k=-1,w=1<<d,B=w-1,e===mp&&w>Vx||e===Zx&&w>jx)return 1;for(;;){oe=l-b,o[u]+1<M?(pe=0,ke=o[u]):o[u]>=M?(pe=ne[o[u]-M],ke=R[o[u]-M]):(pe=32+64,ke=0),C=1<<l-b,_=1<<p,c=_;do _-=C,i[I+(S>>b)+_]=oe<<24|pe<<16|ke|0;while(_!==0);for(C=1<<l-1;S&C;)C>>=1;if(C!==0?(S&=C-1,S+=C):S=0,u++,--j[l]===0){if(l===h)break;l=t[n+o[u]]}if(l>d&&(S&B)!==k){for(b===0&&(b=d),I+=c,p=l-b,y=1<<p;p+b<h&&(y-=j[p+b],!(y<=0));)p++,y<<=1;if(w+=1<<p,e===mp&&w>Vx||e===Zx&&w>jx)return 1;k=S&B,i[k]=d<<24|p<<16|I-a|0}}return S!==0&&(i[I+S]=l-b<<24|64<<16|0),s.bits=d,0};const GM=0,Wx=1,Yx=2,{Z_FINISH:Qx,Z_BLOCK:HM,Z_TREES:rc,Z_OK:la,Z_STREAM_END:VM,Z_NEED_DICT:jM,Z_STREAM_ERROR:cn,Z_DATA_ERROR:Xx,Z_MEM_ERROR:$x,Z_BUF_ERROR:qM,Z_DEFLATED:Kx}=pl,ic=16180,Jx=16181,eA=16182,tA=16183,nA=16184,rA=16185,iA=16186,aA=16187,oA=16188,sA=16189,ac=16190,hr=16191,bp=16192,lA=16193,yp=16194,fA=16195,uA=16196,cA=16197,hA=16198,oc=16199,sc=16200,dA=16201,pA=16202,gA=16203,mA=16204,bA=16205,wp=16206,yA=16207,wA=16208,je=16209,vA=16210,xA=16211,ZM=852,WM=592,YM=15,AA=e=>(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24);function QM(){this.strm=null,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=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const fa=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.mode<ic||t.mode>xA?1:0},EA=e=>{if(fa(e))return cn;const t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=t.wrap&1),t.mode=ic,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(ZM),t.distcode=t.distdyn=new Int32Array(WM),t.sane=1,t.back=-1,la},_A=e=>{if(fa(e))return cn;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,EA(e)},SA=(e,t)=>{let n;if(fa(e))return cn;const r=e.state;return t<0?(n=0,t=-t):(n=(t>>4)+5,t<48&&(t&=15)),t&&(t<8||t>15)?cn:(r.window!==null&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,_A(e))},CA=(e,t)=>{if(!e)return cn;const n=new QM;e.state=n,n.strm=e,n.window=null,n.mode=ic;const r=SA(e,t);return r!==la&&(e.state=null),r},XM=e=>CA(e,YM);let TA=!0,vp,xp;const $M=e=>{if(TA){vp=new Int32Array(512),xp=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(Al(Wx,e.lens,0,288,vp,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;Al(Yx,e.lens,0,32,xp,0,e.work,{bits:5}),TA=!1}e.lencode=vp,e.lenbits=9,e.distcode=xp,e.distbits=5},IA=(e,t,n,r)=>{let i;const a=e.state;return a.window===null&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new Uint8Array(a.wsize)),r>=a.wsize?(a.window.set(t.subarray(n-a.wsize,n),0),a.wnext=0,a.whave=a.wsize):(i=a.wsize-a.wnext,i>r&&(i=r),a.window.set(t.subarray(n-r,n-r+i),a.wnext),r-=i,r?(a.window.set(t.subarray(n-r,n),0),a.wnext=r,a.whave=a.wsize):(a.wnext+=i,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=i))),0},KM=(e,t)=>{let n,r,i,a,o,s,f,l,u,c,h,d,p,b,y=0,w,S,C,_,k,B,I,R;const M=new Uint8Array(4);let j,O;const ne=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(fa(e)||!e.output||!e.input&&e.avail_in!==0)return cn;n=e.state,n.mode===hr&&(n.mode=bp),o=e.next_out,i=e.output,f=e.avail_out,a=e.next_in,r=e.input,s=e.avail_in,l=n.hold,u=n.bits,c=s,h=f,R=la;e:for(;;)switch(n.mode){case ic:if(n.wrap===0){n.mode=bp;break}for(;u<16;){if(s===0)break e;s--,l+=r[a++]<<u,u+=8}if(n.wrap&2&&l===35615){n.wbits===0&&(n.wbits=15),n.check=0,M[0]=l&255,M[1]=l>>>8&255,n.check=ht(n.check,M,2,0),l=0,u=0,n.mode=Jx;break}if(n.head&&(n.head.done=!1),!(n.wrap&1)||(((l&255)<<8)+(l>>8))%31){e.msg="incorrect header check",n.mode=je;break}if((l&15)!==Kx){e.msg="unknown compression method",n.mode=je;break}if(l>>>=4,u-=4,I=(l&15)+8,n.wbits===0&&(n.wbits=I),I>15||I>n.wbits){e.msg="invalid window size",n.mode=je;break}n.dmax=1<<n.wbits,n.flags=0,e.adler=n.check=1,n.mode=l&512?sA:hr,l=0,u=0;break;case Jx:for(;u<16;){if(s===0)break e;s--,l+=r[a++]<<u,u+=8}if(n.flags=l,(n.flags&255)!==Kx){e.msg="unknown compression method",n.mode=je;break}if(n.flags&57344){e.msg="unknown header flags set",n.mode=je;break}n.head&&(n.head.text=l>>8&1),n.flags&512&&n.wrap&4&&(M[0]=l&255,M[1]=l>>>8&255,n.check=ht(n.check,M,2,0)),l=0,u=0,n.mode=eA;case eA:for(;u<32;){if(s===0)break e;s--,l+=r[a++]<<u,u+=8}n.head&&(n.head.time=l),n.flags&512&&n.wrap&4&&(M[0]=l&255,M[1]=l>>>8&255,M[2]=l>>>16&255,M[3]=l>>>24&255,n.check=ht(n.check,M,4,0)),l=0,u=0,n.mode=tA;case tA:for(;u<16;){if(s===0)break e;s--,l+=r[a++]<<u,u+=8}n.head&&(n.head.xflags=l&255,n.head.os=l>>8),n.flags&512&&n.wrap&4&&(M[0]=l&255,M[1]=l>>>8&255,n.check=ht(n.check,M,2,0)),l=0,u=0,n.mode=nA;case nA:if(n.flags&1024){for(;u<16;){if(s===0)break e;s--,l+=r[a++]<<u,u+=8}n.length=l,n.head&&(n.head.extra_len=l),n.flags&512&&n.wrap&4&&(M[0]=l&255,M[1]=l>>>8&255,n.check=ht(n.check,M,2,0)),l=0,u=0}else n.head&&(n.head.extra=null);n.mode=rA;case rA:if(n.flags&1024&&(d=n.length,d>s&&(d=s),d&&(n.head&&(I=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Uint8Array(n.head.extra_len)),n.head.extra.set(r.subarray(a,a+d),I)),n.flags&512&&n.wrap&4&&(n.check=ht(n.check,r,d,a)),s-=d,a+=d,n.length-=d),n.length))break e;n.length=0,n.mode=iA;case iA:if(n.flags&2048){if(s===0)break e;d=0;do I=r[a+d++],n.head&&I&&n.length<65536&&(n.head.name+=String.fromCharCode(I));while(I&&d<s);if(n.flags&512&&n.wrap&4&&(n.check=ht(n.check,r,d,a)),s-=d,a+=d,I)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=aA;case aA:if(n.flags&4096){if(s===0)break e;d=0;do I=r[a+d++],n.head&&I&&n.length<65536&&(n.head.comment+=String.fromCharCode(I));while(I&&d<s);if(n.flags&512&&n.wrap&4&&(n.check=ht(n.check,r,d,a)),s-=d,a+=d,I)break e}else n.head&&(n.head.comment=null);n.mode=oA;case oA:if(n.flags&512){for(;u<16;){if(s===0)break e;s--,l+=r[a++]<<u,u+=8}if(n.wrap&4&&l!==(n.check&65535)){e.msg="header crc mismatch",n.mode=je;break}l=0,u=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=hr;break;case sA:for(;u<32;){if(s===0)break e;s--,l+=r[a++]<<u,u+=8}e.adler=n.check=AA(l),l=0,u=0,n.mode=ac;case ac:if(n.havedict===0)return e.next_out=o,e.avail_out=f,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=u,jM;e.adler=n.check=1,n.mode=hr;case hr:if(t===HM||t===rc)break e;case bp:if(n.last){l>>>=u&7,u-=u&7,n.mode=wp;break}for(;u<3;){if(s===0)break e;s--,l+=r[a++]<<u,u+=8}switch(n.last=l&1,l>>>=1,u-=1,l&3){case 0:n.mode=lA;break;case 1:if($M(n),n.mode=oc,t===rc){l>>>=2,u-=2;break e}break;case 2:n.mode=uA;break;case 3:e.msg="invalid block type",n.mode=je}l>>>=2,u-=2;break;case lA:for(l>>>=u&7,u-=u&7;u<32;){if(s===0)break e;s--,l+=r[a++]<<u,u+=8}if((l&65535)!==(l>>>16^65535)){e.msg="invalid stored block lengths",n.mode=je;break}if(n.length=l&65535,l=0,u=0,n.mode=yp,t===rc)break e;case yp:n.mode=fA;case fA:if(d=n.length,d){if(d>s&&(d=s),d>f&&(d=f),d===0)break e;i.set(r.subarray(a,a+d),o),s-=d,a+=d,f-=d,o+=d,n.length-=d;break}n.mode=hr;break;case uA:for(;u<14;){if(s===0)break e;s--,l+=r[a++]<<u,u+=8}if(n.nlen=(l&31)+257,l>>>=5,u-=5,n.ndist=(l&31)+1,l>>>=5,u-=5,n.ncode=(l&15)+4,l>>>=4,u-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=je;break}n.have=0,n.mode=cA;case cA:for(;n.have<n.ncode;){for(;u<3;){if(s===0)break e;s--,l+=r[a++]<<u,u+=8}n.lens[ne[n.have++]]=l&7,l>>>=3,u-=3}for(;n.have<19;)n.lens[ne[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,j={bits:n.lenbits},R=Al(GM,n.lens,0,19,n.lencode,0,n.work,j),n.lenbits=j.bits,R){e.msg="invalid code lengths set",n.mode=je;break}n.have=0,n.mode=hA;case hA:for(;n.have<n.nlen+n.ndist;){for(;y=n.lencode[l&(1<<n.lenbits)-1],w=y>>>24,S=y>>>16&255,C=y&65535,!(w<=u);){if(s===0)break e;s--,l+=r[a++]<<u,u+=8}if(C<16)l>>>=w,u-=w,n.lens[n.have++]=C;else{if(C===16){for(O=w+2;u<O;){if(s===0)break e;s--,l+=r[a++]<<u,u+=8}if(l>>>=w,u-=w,n.have===0){e.msg="invalid bit length repeat",n.mode=je;break}I=n.lens[n.have-1],d=3+(l&3),l>>>=2,u-=2}else if(C===17){for(O=w+3;u<O;){if(s===0)break e;s--,l+=r[a++]<<u,u+=8}l>>>=w,u-=w,I=0,d=3+(l&7),l>>>=3,u-=3}else{for(O=w+7;u<O;){if(s===0)break e;s--,l+=r[a++]<<u,u+=8}l>>>=w,u-=w,I=0,d=11+(l&127),l>>>=7,u-=7}if(n.have+d>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=je;break}for(;d--;)n.lens[n.have++]=I}}if(n.mode===je)break;if(n.lens[256]===0){e.msg="invalid code -- missing end-of-block",n.mode=je;break}if(n.lenbits=9,j={bits:n.lenbits},R=Al(Wx,n.lens,0,n.nlen,n.lencode,0,n.work,j),n.lenbits=j.bits,R){e.msg="invalid literal/lengths set",n.mode=je;break}if(n.distbits=6,n.distcode=n.distdyn,j={bits:n.distbits},R=Al(Yx,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,j),n.distbits=j.bits,R){e.msg="invalid distances set",n.mode=je;break}if(n.mode=oc,t===rc)break e;case oc:n.mode=sc;case sc:if(s>=6&&f>=258){e.next_out=o,e.avail_out=f,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=u,NM(e,h),o=e.next_out,i=e.output,f=e.avail_out,a=e.next_in,r=e.input,s=e.avail_in,l=n.hold,u=n.bits,n.mode===hr&&(n.back=-1);break}for(n.back=0;y=n.lencode[l&(1<<n.lenbits)-1],w=y>>>24,S=y>>>16&255,C=y&65535,!(w<=u);){if(s===0)break e;s--,l+=r[a++]<<u,u+=8}if(S&&!(S&240)){for(_=w,k=S,B=C;y=n.lencode[B+((l&(1<<_+k)-1)>>_)],w=y>>>24,S=y>>>16&255,C=y&65535,!(_+w<=u);){if(s===0)break e;s--,l+=r[a++]<<u,u+=8}l>>>=_,u-=_,n.back+=_}if(l>>>=w,u-=w,n.back+=w,n.length=C,S===0){n.mode=bA;break}if(S&32){n.back=-1,n.mode=hr;break}if(S&64){e.msg="invalid literal/length code",n.mode=je;break}n.extra=S&15,n.mode=dA;case dA:if(n.extra){for(O=n.extra;u<O;){if(s===0)break e;s--,l+=r[a++]<<u,u+=8}n.length+=l&(1<<n.extra)-1,l>>>=n.extra,u-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=pA;case pA:for(;y=n.distcode[l&(1<<n.distbits)-1],w=y>>>24,S=y>>>16&255,C=y&65535,!(w<=u);){if(s===0)break e;s--,l+=r[a++]<<u,u+=8}if(!(S&240)){for(_=w,k=S,B=C;y=n.distcode[B+((l&(1<<_+k)-1)>>_)],w=y>>>24,S=y>>>16&255,C=y&65535,!(_+w<=u);){if(s===0)break e;s--,l+=r[a++]<<u,u+=8}l>>>=_,u-=_,n.back+=_}if(l>>>=w,u-=w,n.back+=w,S&64){e.msg="invalid distance code",n.mode=je;break}n.offset=C,n.extra=S&15,n.mode=gA;case gA:if(n.extra){for(O=n.extra;u<O;){if(s===0)break e;s--,l+=r[a++]<<u,u+=8}n.offset+=l&(1<<n.extra)-1,l>>>=n.extra,u-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=je;break}n.mode=mA;case mA:if(f===0)break e;if(d=h-f,n.offset>d){if(d=n.offset-d,d>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=je;break}d>n.wnext?(d-=n.wnext,p=n.wsize-d):p=n.wnext-d,d>n.length&&(d=n.length),b=n.window}else b=i,p=o-n.offset,d=n.length;d>f&&(d=f),f-=d,n.length-=d;do i[o++]=b[p++];while(--d);n.length===0&&(n.mode=sc);break;case bA:if(f===0)break e;i[o++]=n.length,f--,n.mode=sc;break;case wp:if(n.wrap){for(;u<32;){if(s===0)break e;s--,l|=r[a++]<<u,u+=8}if(h-=f,e.total_out+=h,n.total+=h,n.wrap&4&&h&&(e.adler=n.check=n.flags?ht(n.check,i,h,o-h):dl(n.check,i,h,o-h)),h=f,n.wrap&4&&(n.flags?l:AA(l))!==n.check){e.msg="incorrect data check",n.mode=je;break}l=0,u=0}n.mode=yA;case yA:if(n.wrap&&n.flags){for(;u<32;){if(s===0)break e;s--,l+=r[a++]<<u,u+=8}if(n.wrap&4&&l!==(n.total&4294967295)){e.msg="incorrect length check",n.mode=je;break}l=0,u=0}n.mode=wA;case wA:R=VM;break e;case je:R=Xx;break e;case vA:return $x;case xA:default:return cn}return e.next_out=o,e.avail_out=f,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=u,(n.wsize||h!==e.avail_out&&n.mode<je&&(n.mode<wp||t!==Qx))&&IA(e,e.output,e.next_out,h-e.avail_out),c-=e.avail_in,h-=e.avail_out,e.total_in+=c,e.total_out+=h,n.total+=h,n.wrap&4&&h&&(e.adler=n.check=n.flags?ht(n.check,i,h,e.next_out-h):dl(n.check,i,h,e.next_out-h)),e.data_type=n.bits+(n.last?64:0)+(n.mode===hr?128:0)+(n.mode===oc||n.mode===yp?256:0),(c===0&&h===0||t===Qx)&&R===la&&(R=qM),R},JM=e=>{if(fa(e))return cn;let t=e.state;return t.window&&(t.window=null),e.state=null,la},eN=(e,t)=>{if(fa(e))return cn;const n=e.state;return n.wrap&2?(n.head=t,t.done=!1,la):cn},tN=(e,t)=>{const n=t.length;let r,i,a;return fa(e)||(r=e.state,r.wrap!==0&&r.mode!==ac)?cn:r.mode===ac&&(i=1,i=dl(i,t,n,0),i!==r.check)?Xx:(a=IA(e,t,n,n),a?(r.mode=vA,$x):(r.havedict=1,la))};var nN=_A,rN=SA,iN=EA,aN=XM,oN=CA,sN=KM,lN=JM,fN=eN,uN=tN,cN="pako inflate (from Nodeca project)",dr={inflateReset:nN,inflateReset2:rN,inflateResetKeep:iN,inflateInit:aN,inflateInit2:oN,inflate:sN,inflateEnd:lN,inflateGetHeader:fN,inflateSetDictionary:uN,inflateInfo:cN};function hN(){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}var dN=hN;const kA=Object.prototype.toString,{Z_NO_FLUSH:pN,Z_FINISH:gN,Z_OK:El,Z_STREAM_END:Ap,Z_NEED_DICT:Ep,Z_STREAM_ERROR:mN,Z_DATA_ERROR:BA,Z_MEM_ERROR:bN}=pl;function _l(e){this.options=ec.assign({chunkSize:1024*64,windowBits:15,to:""},e||{});const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,t.windowBits===0&&(t.windowBits=-15)),t.windowBits>=0&&t.windowBits<16&&!(e&&e.windowBits)&&(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(t.windowBits&15||(t.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Gx,this.strm.avail_out=0;let n=dr.inflateInit2(this.strm,t.windowBits);if(n!==El)throw new Error(io[n]);if(this.header=new dN,dr.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=xl.string2buf(t.dictionary):kA.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=dr.inflateSetDictionary(this.strm,t.dictionary),n!==El)))throw new Error(io[n])}_l.prototype.push=function(e,t){const n=this.strm,r=this.options.chunkSize,i=this.options.dictionary;let a,o,s;if(this.ended)return!1;for(t===~~t?o=t:o=t===!0?gN:pN,kA.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;){for(n.avail_out===0&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),a=dr.inflate(n,o),a===Ep&&i&&(a=dr.inflateSetDictionary(n,i),a===El?a=dr.inflate(n,o):a===BA&&(a=Ep));n.avail_in>0&&a===Ap&&n.state.wrap>0&&e[n.next_in]!==0;)dr.inflateReset(n),a=dr.inflate(n,o);switch(a){case mN:case BA:case Ep:case bN:return this.onEnd(a),this.ended=!0,!1}if(s=n.avail_out,n.next_out&&(n.avail_out===0||a===Ap))if(this.options.to==="string"){let f=xl.utf8border(n.output,n.next_out),l=n.next_out-f,u=xl.buf2string(n.output,f);n.next_out=l,n.avail_out=r-l,l&&n.output.set(n.output.subarray(f,f+l),0),this.onData(u)}else this.onData(n.output.length===n.next_out?n.output:n.output.subarray(0,n.next_out));if(!(a===El&&s===0)){if(a===Ap)return a=dr.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,!0;if(n.avail_in===0)break}}return!0},_l.prototype.onData=function(e){this.chunks.push(e)},_l.prototype.onEnd=function(e){e===El&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=ec.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function _p(e,t){const n=new _l(t);if(n.push(e),n.err)throw n.msg||io[n.err];return n.result}function yN(e,t){return t=t||{},t.raw=!0,_p(e,t)}var wN=_l,vN=_p,xN=yN,AN=_p,EN=pl,_N={Inflate:wN,inflate:vN,inflateRaw:xN,ungzip:AN,constants:EN};const{Inflate:bz,inflate:yz,inflateRaw:SN,ungzip:wz}=_N;var CN=SN;function TN(e){return CN(e.subarray(2))}let IN=class extends Error{constructor(t){super(t),this.code="ERR_ABORTED"}};function kN(e){e.sort((i,a)=>Number(i.offset)-Number(a.offset));const t=[];let n,r;for(const i of e)n&&r&&Number(i.offset)-r<=2e3?(n.length=BigInt(Number(n.length)+Number(i.length)-r+Number(i.offset)),n.blocks.push(i)):t.push(n={blocks:[i],length:i.length,offset:i.offset}),r=Number(n.offset)+Number(n.length);return t}function lc(e){if(e&&e.aborted)if(typeof DOMException>"u"){const t=new IN("aborted");throw t.code="ERR_ABORTED",t}else throw new DOMException("aborted","AbortError")}const BN=1,DN=2,FN=3;function Sp(e,t,n,r){return e<r&&t>=n}function RN(e){const t=e?"big":"little",n=new Ie().endianess(t).uint32("chromId").uint32("start").uint32("end").uint32("validCnt").floatle("minScore").floatle("maxScore").floatle("sumData").floatle("sumSqData").saveOffset("offset"),r=new Ie().endianess(t).uint8("isLeaf").skip(1).uint16("cnt").choice({tag:"isLeaf",choices:{1:new Ie().endianess(t).array("blocksToFetch",{length:"cnt",type:new Ie().endianess(t).uint32("startChrom").uint32("startBase").uint32("endChrom").uint32("endBase").uint64("blockOffset").uint64("blockSize").saveOffset("offset")}),0:new Ie().array("recurOffsets",{length:"cnt",type:new Ie().endianess(t).uint32("startChrom").uint32("startBase").uint32("endChrom").uint32("endBase").uint64("blockOffset").saveOffset("offset")})}}),i=new Ie().endianess(t).uint32("chromId").int32("start").int32("end").string("rest",{zeroTerminated:!0}).saveOffset("offset");return{bigWigParser:new Ie().endianess(t).skip(4).int32("blockStart").skip(4).uint32("itemStep").uint32("itemSpan").uint8("blockType").skip(1).uint16("itemCount").choice({tag:"blockType",choices:{[FN]:new Ie().array("items",{length:"itemCount",type:new Ie().floatle("score")}),[DN]:new Ie().array("items",{length:"itemCount",type:new Ie().endianess(t).int32("start").floatle("score")}),[BN]:new Ie().array("items",{length:"itemCount",type:new Ie().endianess(t).int32("start").int32("end").floatle("score")})}}),bigBedParser:i,summaryParser:n,leafParser:r}}class DA{constructor(t,n,r,i,a,o){if(this.bbi=t,this.refsByName=n,this.cirTreeOffset=r,this.isBigEndian=i,this.isCompressed=a,this.blockType=o,this.featureCache=new Yu({cache:new Qu({maxSize:1e3}),fill:async(f,l)=>{const u=Number(f.length),c=Number(f.offset),{buffer:h}=await this.bbi.read(ye.Buffer.alloc(u),0,u,c,{signal:l});return h}}),!(r>=0))throw new Error("invalid cirTreeOffset!");const s=RN(i);this.leafParser=s.leafParser,this.bigBedParser=s.bigBedParser}async readWigData(t,n,r,i,a){try{const{refsByName:o,bbi:s,cirTreeOffset:f,isBigEndian:l}=this,u=o[t];u===void 0&&i.complete();const c={chrId:u,start:n,end:r};this.cirTreePromise||(this.cirTreePromise=s.read(ye.Buffer.alloc(48),0,48,Number(f),a));const{buffer:h}=await this.cirTreePromise,d=l?h.readUInt32BE(4):h.readUInt32LE(4);let p=[],b=0;const y=(_,k,B)=>{try{const I=_.subarray(k),R=this.leafParser.parse(I);if(R.blocksToFetch&&(p=p.concat(R.blocksToFetch.filter(M=>w(M)).map(M=>({offset:M.blockOffset,length:M.blockSize})))),R.recurOffsets){const M=R.recurOffsets.filter(j=>w(j)).map(j=>Number(j.blockOffset));M.length>0&&C(M,B+1)}}catch(I){i.error(I)}},w=_=>{const{startChrom:k,startBase:B,endChrom:I,endBase:R}=_;return(k<u||k===u&&B<=r)&&(I>u||I===u&&R>=n)},S=async(_,k,B)=>{try{const I=k.max()-k.min(),R=k.min(),M=await this.featureCache.get(`${I}_${R}`,{length:I,offset:R},a==null?void 0:a.signal);for(const j of _)k.contains(j)&&(y(M,j-R,B),b-=1,b===0&&this.readFeatures(i,p,{...a,request:c}))}catch(I){i.error(I)}},C=(_,k)=>{try{b+=_.length;const B=4+Number(d)*32;let I=new Jr(_[0],_[0]+B);for(let R=1;R<_.length;R+=1){const M=new Jr(_[R],_[R]+B);I=I.union(M)}I.getRanges().map(R=>S(_,R,k))}catch(B){i.error(B)}};return C([Number(f)+48],1)}catch(o){i.error(o)}}parseSummaryBlock(t,n,r){const i=[];let a=n;const o=new DataView(t.buffer,t.byteOffset,t.length);for(;a<t.byteLength;){const s=o.getUint32(a,!0);a+=4;const f=o.getUint32(a,!0);a+=4;const l=o.getUint32(a,!0);a+=4;const u=o.getUint32(a,!0);a+=4;const c=o.getFloat32(a,!0);a+=4;const h=o.getFloat32(a,!0);a+=4;const d=o.getFloat32(a,!0);a+=4,a+=4,(!r||s===r.chrId&&Sp(f,l,r.start,r.end))&&i.push({start:f,end:l,maxScore:h,minScore:c,summary:!0,score:d/(u||1)})}return i}parseBigBedBlock(t,n,r,i){const a=[];let o=n;for(;o<t.byteLength;){const s=this.bigBedParser.parse(t.subarray(o));a.push({...s,uniqueId:`bb-${r+o}`}),o+=s.offset}return i?a.filter(s=>Sp(s.start,s.end,i.start,i.end)):a}parseBigWigBlock(t,n,r){const i=t.subarray(n),a=new DataView(i.buffer,i.byteOffset,i.length);let o=0;o+=4;const s=a.getInt32(o,!0);o+=8;const f=a.getUint32(o,!0);o+=4;const l=a.getUint32(o,!0);o+=4;const u=a.getUint8(o);o+=2;const c=a.getUint16(o,!0);o+=2;const h=new Array(c);switch(u){case 1:{for(let d=0;d<c;d++){const p=a.getInt32(o,!0);o+=4;const b=a.getInt32(o,!0);o+=4;const y=a.getFloat32(o,!0);o+=4,h[d]={start:p,end:b,score:y}}break}case 2:{for(let d=0;d<c;d++){const p=a.getInt32(o,!0);o+=4;const b=a.getFloat32(o,!0);o+=4,h[d]={score:b,start:p,end:p+l}}break}case 3:{for(let d=0;d<c;d++){const p=a.getFloat32(o,!0);o+=4;const b=s+d*f;h[d]={score:p,start:b,end:b+l}}break}}return r?h.filter(d=>Sp(d.start,d.end,r.start,r.end)):h}async readFeatures(t,n,r={}){try{const{blockType:i,isCompressed:a}=this,{signal:o,request:s}=r,f=kN(n);lc(o),await Promise.all(f.map(async l=>{lc(o);const{length:u,offset:c}=l,h=await this.featureCache.get(`${u}_${c}`,l,o);for(const d of l.blocks){lc(o);let p=Number(d.offset)-Number(l.offset),b=h;switch(a&&(b=TN(h.subarray(p)),p=0),lc(o),i){case"summary":{t.next(this.parseSummaryBlock(b,p,s));break}case"bigwig":{t.next(this.parseBigWigBlock(b,p,s));break}case"bigbed":{t.next(this.parseBigBedBlock(b,p,Number(d.offset)*256,s));break}default:console.warn(`Don't know what to do with ${i}`)}}})),t.complete()}catch(i){t.error(i)}}}var Cp=function(e,t){return Cp=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(n[i]=r[i])},Cp(e,t)};function Tp(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");Cp(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}function PN(e,t,n,r){function i(a){return a instanceof n?a:new n(function(o){o(a)})}return new(n||(n=Promise))(function(a,o){function s(u){try{l(r.next(u))}catch(c){o(c)}}function f(u){try{l(r.throw(u))}catch(c){o(c)}}function l(u){u.done?a(u.value):i(u.value).then(s,f)}l((r=r.apply(e,t||[])).next())})}function FA(e,t){var n={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},r,i,a,o;return o={next:s(0),throw:s(1),return:s(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function s(l){return function(u){return f([l,u])}}function f(l){if(r)throw new TypeError("Generator is already executing.");for(;o&&(o=0,l[0]&&(n=0)),n;)try{if(r=1,i&&(a=l[0]&2?i.return:l[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,l[1])).done)return a;switch(i=0,a&&(l=[l[0]&2,a.value]),l[0]){case 0:case 1:a=l;break;case 4:return n.label++,{value:l[1],done:!1};case 5:n.label++,i=l[1],l=[0];continue;case 7:l=n.ops.pop(),n.trys.pop();continue;default:if(a=n.trys,!(a=a.length>0&&a[a.length-1])&&(l[0]===6||l[0]===2)){n=0;continue}if(l[0]===3&&(!a||l[1]>a[0]&&l[1]<a[3])){n.label=l[1];break}if(l[0]===6&&n.label<a[1]){n.label=a[1],a=l;break}if(a&&n.label<a[2]){n.label=a[2],n.ops.push(l);break}a[2]&&n.ops.pop(),n.trys.pop();continue}l=t.call(e,n)}catch(u){l=[6,u],i=0}finally{r=a=0}if(l[0]&5)throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}function Sl(e){var t=typeof Symbol=="function"&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function fc(e,t){var n=typeof Symbol=="function"&&e[Symbol.iterator];if(!n)return e;var r=n.call(e),i,a=[],o;try{for(;(t===void 0||t-- >0)&&!(i=r.next()).done;)a.push(i.value)}catch(s){o={error:s}}finally{try{i&&!i.done&&(n=r.return)&&n.call(r)}finally{if(o)throw o.error}}return a}function uc(e,t,n){if(n||arguments.length===2)for(var r=0,i=t.length,a;r<i;r++)(a||!(r in t))&&(a||(a=Array.prototype.slice.call(t,0,r)),a[r]=t[r]);return e.concat(a||Array.prototype.slice.call(t))}function co(e){return this instanceof co?(this.v=e,this):new co(e)}function MN(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(e,t||[]),i,a=[];return i={},o("next"),o("throw"),o("return"),i[Symbol.asyncIterator]=function(){return this},i;function o(h){r[h]&&(i[h]=function(d){return new Promise(function(p,b){a.push([h,d,p,b])>1||s(h,d)})})}function s(h,d){try{f(r[h](d))}catch(p){c(a[0][3],p)}}function f(h){h.value instanceof co?Promise.resolve(h.value.v).then(l,u):c(a[0][2],h)}function l(h){s("next",h)}function u(h){s("throw",h)}function c(h,d){h(d),a.shift(),a.length&&s(a[0][0],a[0][1])}}function NN(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof Sl=="function"?Sl(e):e[Symbol.iterator](),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(a){n[a]=e[a]&&function(o){return new Promise(function(s,f){o=e[a](o),i(s,f,o.done,o.value)})}}function i(a,o,s,f){Promise.resolve(f).then(function(l){a({value:l,done:s})},o)}}typeof SuppressedError=="function"&&SuppressedError;function at(e){return typeof e=="function"}function RA(e){var t=function(r){Error.call(r),r.stack=new Error().stack},n=e(t);return n.prototype=Object.create(Error.prototype),n.prototype.constructor=n,n}var Ip=RA(function(e){return function(n){e(this),this.message=n?n.length+` errors occurred during unsubscription:
287
286
  `+n.map(function(r,i){return i+1+") "+r.toString()}).join(`
288
- `):"",this.name="UnsubscriptionError",this.errors=n}});function FA(t,e){if(t){var n=t.indexOf(e);0<=n&&t.splice(n,1)}}var zg=function(){function t(e){this.initialTeardown=e,this.closed=!1,this._parentage=null,this._finalizers=null}return t.prototype.unsubscribe=function(){var e,n,r,i,a;if(!this.closed){this.closed=!0;var o=this._parentage;if(o)if(this._parentage=null,Array.isArray(o))try{for(var s=Hu(o),f=s.next();!f.done;f=s.next()){var u=f.value;u.remove(this)}}catch(b){e={error:b}}finally{try{f&&!f.done&&(n=s.return)&&n.call(s)}finally{if(e)throw e.error}}else o.remove(this);var l=this.initialTeardown;if(ut(l))try{l()}catch(b){a=b instanceof Og?b.errors:[b]}var c=this._finalizers;if(c){this._finalizers=null;try{for(var h=Hu(c),d=h.next();!d.done;d=h.next()){var g=d.value;try{BA(g)}catch(b){a=a??[],b instanceof Og?a=xc(xc([],wc(a)),wc(b.errors)):a.push(b)}}}catch(b){r={error:b}}finally{try{d&&!d.done&&(i=h.return)&&i.call(h)}finally{if(r)throw r.error}}}if(a)throw new Og(a)}},t.prototype.add=function(e){var n;if(e&&e!==this)if(this.closed)BA(e);else{if(e instanceof t){if(e.closed||e._hasParent(this))return;e._addParent(this)}(this._finalizers=(n=this._finalizers)!==null&&n!==void 0?n:[]).push(e)}},t.prototype._hasParent=function(e){var n=this._parentage;return n===e||Array.isArray(n)&&n.includes(e)},t.prototype._addParent=function(e){var n=this._parentage;this._parentage=Array.isArray(n)?(n.push(e),n):n?[n,e]:e},t.prototype._removeParent=function(e){var n=this._parentage;n===e?this._parentage=null:Array.isArray(n)&&FA(n,e)},t.prototype.remove=function(e){var n=this._finalizers;n&&FA(n,e),e instanceof t&&e._removeParent(this)},t.EMPTY=function(){var e=new t;return e.closed=!0,e}(),t}();zg.EMPTY;function kA(t){return t instanceof zg||t&&"closed"in t&&ut(t.remove)&&ut(t.add)&&ut(t.unsubscribe)}function BA(t){ut(t)?t():t.unsubscribe()}var LA={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},Pg={setTimeout:function(t,e){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var i=Pg.delegate;return i!=null&&i.setTimeout?i.setTimeout.apply(i,xc([t,e],wc(n))):setTimeout.apply(void 0,xc([t,e],wc(n)))},clearTimeout:function(t){var e=Pg.delegate;return((e==null?void 0:e.clearTimeout)||clearTimeout)(t)},delegate:void 0};function RA(t){Pg.setTimeout(function(){throw t})}function OA(){}function PO(t){t()}var Ug=function(t){Rg(e,t);function e(n){var r=t.call(this)||this;return r.isStopped=!1,n?(r.destination=n,kA(n)&&n.add(r)):r.destination=HO,r}return e.create=function(n,r,i){return new vc(n,r,i)},e.prototype.next=function(n){this.isStopped||this._next(n)},e.prototype.error=function(n){this.isStopped||(this.isStopped=!0,this._error(n))},e.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},e.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,t.prototype.unsubscribe.call(this),this.destination=null)},e.prototype._next=function(n){this.destination.next(n)},e.prototype._error=function(n){try{this.destination.error(n)}finally{this.unsubscribe()}},e.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},e}(zg),UO=Function.prototype.bind;function jg(t,e){return UO.call(t,e)}var jO=function(){function t(e){this.partialObserver=e}return t.prototype.next=function(e){var n=this.partialObserver;if(n.next)try{n.next(e)}catch(r){Ac(r)}},t.prototype.error=function(e){var n=this.partialObserver;if(n.error)try{n.error(e)}catch(r){Ac(r)}else Ac(e)},t.prototype.complete=function(){var e=this.partialObserver;if(e.complete)try{e.complete()}catch(n){Ac(n)}},t}(),vc=function(t){Rg(e,t);function e(n,r,i){var a=t.call(this)||this,o;if(ut(n)||!n)o={next:n??void 0,error:r??void 0,complete:i??void 0};else{var s;a&&LA.useDeprecatedNextContext?(s=Object.create(n),s.unsubscribe=function(){return a.unsubscribe()},o={next:n.next&&jg(n.next,s),error:n.error&&jg(n.error,s),complete:n.complete&&jg(n.complete,s)}):o=n}return a.destination=new jO(o),a}return e}(Ug);function Ac(t){RA(t)}function GO(t){throw t}var HO={closed:!0,next:OA,error:GO,complete:OA},Gg=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}();function zA(t){return t}function QO(t){return t.length===0?zA:t.length===1?t[0]:function(n){return t.reduce(function(r,i){return i(r)},n)}}var bn=function(){function t(e){e&&(this._subscribe=e)}return t.prototype.lift=function(e){var n=new t;return n.source=this,n.operator=e,n},t.prototype.subscribe=function(e,n,r){var i=this,a=qO(e)?e:new vc(e,n,r);return PO(function(){var o=i,s=o.operator,f=o.source;a.add(s?s.call(a,f):f?i._subscribe(a):i._trySubscribe(a))}),a},t.prototype._trySubscribe=function(e){try{return this._subscribe(e)}catch(n){e.error(n)}},t.prototype.forEach=function(e,n){var r=this;return n=PA(n),new n(function(i,a){var o=new vc({next:function(s){try{e(s)}catch(f){a(f),o.unsubscribe()}},error:a,complete:i});r.subscribe(o)})},t.prototype._subscribe=function(e){var n;return(n=this.source)===null||n===void 0?void 0:n.subscribe(e)},t.prototype[Gg]=function(){return this},t.prototype.pipe=function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return QO(e)(this)},t.prototype.toPromise=function(e){var n=this;return e=PA(e),new e(function(r,i){var a;n.subscribe(function(o){return a=o},function(o){return i(o)},function(){return r(a)})})},t.create=function(e){return new t(e)},t}();function PA(t){var e;return(e=t??LA.Promise)!==null&&e!==void 0?e:Promise}function VO(t){return t&&ut(t.next)&&ut(t.error)&&ut(t.complete)}function qO(t){return t&&t instanceof Ug||VO(t)&&kA(t)}function ZO(t){return ut(t==null?void 0:t.lift)}function ko(t){return function(e){if(ZO(e))return e.lift(function(n){try{return t(n,this)}catch(r){this.error(r)}});throw new TypeError("Unable to lift unknown Observable type")}}function Qu(t,e,n,r,i){return new YO(t,e,n,r,i)}var YO=function(t){Rg(e,t);function e(n,r,i,a,o,s){var f=t.call(this,n)||this;return f.onFinalize=o,f.shouldUnsubscribe=s,f._next=r?function(u){try{r(u)}catch(l){n.error(l)}}:t.prototype._next,f._error=a?function(u){try{a(u)}catch(l){n.error(l)}finally{this.unsubscribe()}}:t.prototype._error,f._complete=i?function(){try{i()}catch(u){n.error(u)}finally{this.unsubscribe()}}:t.prototype._complete,f}return e.prototype.unsubscribe=function(){var n;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var r=this.closed;t.prototype.unsubscribe.call(this),!r&&((n=this.onFinalize)===null||n===void 0||n.call(this))}},e}(Ug),WO=new bn(function(t){return t.complete()});function XO(t){return t&&ut(t.schedule)}function UA(t){return t[t.length-1]}function $O(t){return XO(UA(t))?t.pop():void 0}function KO(t,e){return typeof UA(t)=="number"?t.pop():e}var jA=function(t){return t&&typeof t.length=="number"&&typeof t!="function"};function GA(t){return ut(t==null?void 0:t.then)}function HA(t){return ut(t[Gg])}function QA(t){return Symbol.asyncIterator&&ut(t==null?void 0:t[Symbol.asyncIterator])}function VA(t){return new TypeError("You provided "+(t!==null&&typeof t=="object"?"an invalid object":"'"+t+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function JO(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var qA=JO();function ZA(t){return ut(t==null?void 0:t[qA])}function YA(t){return OO(this,arguments,function(){var n,r,i,a;return TA(this,function(o){switch(o.label){case 0:n=t.getReader(),o.label=1;case 1:o.trys.push([1,,9,10]),o.label=2;case 2:return[4,Fo(n.read())];case 3:return r=o.sent(),i=r.value,a=r.done,a?[4,Fo(void 0)]:[3,5];case 4:return[2,o.sent()];case 5:return[4,Fo(i)];case 6:return[4,o.sent()];case 7:return o.sent(),[3,2];case 8:return[3,10];case 9:return n.releaseLock(),[7];case 10:return[2]}})})}function WA(t){return ut(t==null?void 0:t.getReader)}function Bo(t){if(t instanceof bn)return t;if(t!=null){if(HA(t))return ez(t);if(jA(t))return tz(t);if(GA(t))return nz(t);if(QA(t))return XA(t);if(ZA(t))return rz(t);if(WA(t))return iz(t)}throw VA(t)}function ez(t){return new bn(function(e){var n=t[Gg]();if(ut(n.subscribe))return n.subscribe(e);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function tz(t){return new bn(function(e){for(var n=0;n<t.length&&!e.closed;n++)e.next(t[n]);e.complete()})}function nz(t){return new bn(function(e){t.then(function(n){e.closed||(e.next(n),e.complete())},function(n){return e.error(n)}).then(null,RA)})}function rz(t){return new bn(function(e){var n,r;try{for(var i=Hu(t),a=i.next();!a.done;a=i.next()){var o=a.value;if(e.next(o),e.closed)return}}catch(s){n={error:s}}finally{try{a&&!a.done&&(r=i.return)&&r.call(i)}finally{if(n)throw n.error}}e.complete()})}function XA(t){return new bn(function(e){az(t,e).catch(function(n){return e.error(n)})})}function iz(t){return XA(YA(t))}function az(t,e){var n,r,i,a;return RO(this,void 0,void 0,function(){var o,s;return TA(this,function(f){switch(f.label){case 0:f.trys.push([0,5,6,11]),n=zO(t),f.label=1;case 1:return[4,n.next()];case 2:if(r=f.sent(),!!r.done)return[3,4];if(o=r.value,e.next(o),e.closed)return[2];f.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return s=f.sent(),i={error:s},[3,11];case 6:return f.trys.push([6,,9,10]),r&&!r.done&&(a=n.return)?[4,a.call(n)]:[3,8];case 7:f.sent(),f.label=8;case 8:return[3,10];case 9:if(i)throw i.error;return[7];case 10:return[7];case 11:return e.complete(),[2]}})})}function xi(t,e,n,r,i){r===void 0&&(r=0),i===void 0&&(i=!1);var a=e.schedule(function(){n(),i?t.add(this.schedule(null,r)):this.unsubscribe()},r);if(t.add(a),!i)return a}function $A(t,e){return e===void 0&&(e=0),ko(function(n,r){n.subscribe(Qu(r,function(i){return xi(r,t,function(){return r.next(i)},e)},function(){return xi(r,t,function(){return r.complete()},e)},function(i){return xi(r,t,function(){return r.error(i)},e)}))})}function KA(t,e){return e===void 0&&(e=0),ko(function(n,r){r.add(t.schedule(function(){return n.subscribe(r)},e))})}function oz(t,e){return Bo(t).pipe(KA(e),$A(e))}function sz(t,e){return Bo(t).pipe(KA(e),$A(e))}function uz(t,e){return new bn(function(n){var r=0;return e.schedule(function(){r===t.length?n.complete():(n.next(t[r++]),n.closed||this.schedule())})})}function fz(t,e){return new bn(function(n){var r;return xi(n,e,function(){r=t[qA](),xi(n,e,function(){var i,a,o;try{i=r.next(),a=i.value,o=i.done}catch(s){n.error(s);return}o?n.complete():n.next(a)},0,!0)}),function(){return ut(r==null?void 0:r.return)&&r.return()}})}function JA(t,e){if(!t)throw new Error("Iterable cannot be null");return new bn(function(n){xi(n,e,function(){var r=t[Symbol.asyncIterator]();xi(n,e,function(){r.next().then(function(i){i.done?n.complete():n.next(i.value)})},0,!0)})})}function lz(t,e){return JA(YA(t),e)}function cz(t,e){if(t!=null){if(HA(t))return oz(t,e);if(jA(t))return uz(t,e);if(GA(t))return sz(t,e);if(QA(t))return JA(t,e);if(ZA(t))return fz(t,e);if(WA(t))return lz(t,e)}throw VA(t)}function hz(t,e){return e?cz(t,e):Bo(t)}var dz=NA(function(t){return function(){t(this),this.name="EmptyError",this.message="no elements in sequence"}});function eE(t,e){var n=typeof e=="object";return new Promise(function(r,i){var a=new vc({next:function(o){r(o),a.unsubscribe()},error:i,complete:function(){n?r(e.defaultValue):i(new dz)}});t.subscribe(a)})}function tE(t,e){return ko(function(n,r){var i=0;n.subscribe(Qu(r,function(a){r.next(t.call(e,a,i++))}))})}function gz(t,e,n,r,i,a,o,s){var f=[],u=0,l=0,c=!1,h=function(){c&&!f.length&&!u&&e.complete()},d=function(b){return u<r?g(b):f.push(b)},g=function(b){a&&e.next(b),u++;var y=!1;Bo(n(b,l++)).subscribe(Qu(e,function(w){i==null||i(w),a?d(w):e.next(w)},function(){y=!0},void 0,function(){if(y)try{u--;for(var w=function(){var E=f.shift();o?xi(e,o,function(){return g(E)}):g(E)};f.length&&u<r;)w();h()}catch(E){e.error(E)}}))};return t.subscribe(Qu(e,d,function(){c=!0,h()})),function(){s==null||s()}}function nE(t,e,n){return n===void 0&&(n=1/0),ut(e)?nE(function(r,i){return tE(function(a,o){return e(r,a,i,o)})(Bo(t(r,i)))},n):(typeof e=="number"&&(n=e),ko(function(r,i){return gz(r,i,t,n)}))}function pz(t){return t===void 0&&(t=1/0),nE(zA,t)}function mz(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=$O(t),r=KO(t,1/0),i=t;return i.length?i.length===1?Bo(i[0]):pz(r)(hz(i,n)):WO}function bz(t,e,n,r,i){return function(a,o){var s=n,f=e,u=0;a.subscribe(Qu(o,function(l){var c=u++;f=s?t(f,l,c):(s=!0,l),r&&o.next(f)},i&&function(){s&&o.next(f),o.complete()}))}}function rE(t,e){return ko(bz(t,e,arguments.length>=2,!1,!0))}var yz=function(t,e){return t.push(e),t};function wz(){return ko(function(t,e){rE(yz,[])(t).subscribe(e)})}const iE=-2003829722,Hg=-2021002517;function xz(t){return new TextDecoder().decode(t)}function aE(t){const e=t?"big":"little",n=new Me().endianess(e).int32("magic").uint16("version").uint16("numZoomLevels").uint64("chromTreeOffset").uint64("unzoomedDataOffset").uint64("unzoomedIndexOffset").uint16("fieldCount").uint16("definedFieldCount").uint64("asOffset").uint64("totalSummaryOffset").uint32("uncompressBufSize").uint64("extHeaderOffset").array("zoomLevels",{length:"numZoomLevels",type:new Me().endianess(e).uint32("reductionLevel").uint32("reserved").uint64("dataOffset").uint64("indexOffset")}),r=new Me().endianess(e).uint64("basesCovered").doublele("scoreMin").doublele("scoreMax").doublele("scoreSum").doublele("scoreSumSquares"),i=new Me().endianess(e).uint32("magic").uint32("blockSize").uint32("keySize").uint32("valSize").uint64("itemCount"),a=new Me().endianess(e).uint8("isLeafNode").skip(1).uint16("cnt").saveOffset("offset");return{chromTreeParser:i,totalSummaryParser:r,headerParser:n,isLeafNode:a}}class oE{getHeader(e){return this.headerP||(this.headerP=this._getHeader(e).catch(n=>{throw this.headerP=void 0,n})),this.headerP}constructor(e){const{filehandle:n,renameRefSeqs:r=o=>o,path:i,url:a}=e;if(this.renameRefSeqs=r,n)this.bbi=n;else if(a)this.bbi=new nr(a);else if(i)this.bbi=new Jt(i);else throw new Error("no file given")}async _getHeader(e){const n=await this._getMainHeader(e),r=await this._readChromTree(n,e);return{...n,...r}}async _getMainHeader(e,n=2e3){const{buffer:r}=await this.bbi.read(bt.Buffer.alloc(n),0,n,0,e),i=this._isBigEndian(r),a=aE(i),o=a.headerParser.parse(r),{magic:s,asOffset:f,totalSummaryOffset:u}=o;if(o.fileType=s===Hg?"bigbed":"bigwig",f>n||u>n)return this._getMainHeader(e,n*2);if(f){const l=Number(o.asOffset);o.autoSql=xz(r.subarray(l,r.indexOf(0,l)))}if(o.totalSummaryOffset>n)return this._getMainHeader(e,n*2);if(o.totalSummaryOffset){const l=r.subarray(Number(o.totalSummaryOffset)),c=a.totalSummaryParser.parse(l);o.totalSummary={...c,basesCovered:Number(c.basesCovered)}}return{...o,isBigEndian:i}}_isBigEndian(e){let n=e.readInt32LE(0);if(n===iE||n===Hg)return!1;if(n=e.readInt32BE(0),n===iE||n===Hg)return!0;throw new Error("not a BigWig/BigBed file")}async _readChromTree(e,n){const r=e.isBigEndian,i=r?"big":"little",a=[],o={};let s=Number(e.unzoomedDataOffset);const f=Number(e.chromTreeOffset);for(;s%4!==0;)s+=1;const u=s-f,{buffer:l}=await this.bbi.read(bt.Buffer.alloc(u),0,u,Number(f),n),c=aE(r),{keySize:h}=c.chromTreeParser.parse(l),d=new Me().endianess(i).string("key",{stripNull:!0,length:h}).uint32("refId").uint32("refSize").saveOffset("offset"),g=new Me().endianess(i).skip(h).uint64("childOffset").saveOffset("offset"),b=32,y=async w=>{let E=w;if(E>=l.length)throw new Error("reading beyond end of buffer");const _=c.isLeafNode.parse(l.subarray(E)),{isLeafNode:D,cnt:T}=_;if(E+=_.offset,D)for(let N=0;N<T;N+=1){const M=d.parse(l.subarray(E));E+=M.offset;const{key:R,refId:C,refSize:B}=M,L={name:R,id:C,length:B};o[this.renameRefSeqs(R)]=C,a[C]=L}else{const N=[];for(let M=0;M<T;M+=1){const R=g.parse(l.subarray(E)),{childOffset:C}=R;E+=R.offset,N.push(y(Number(C)-Number(f)))}await Promise.all(N)}};return await y(b),{refsByName:o,refsByNumber:a}}async getUnzoomedView(e){const{unzoomedIndexOffset:n,refsByName:r,uncompressBufSize:i,isBigEndian:a,fileType:o}=await this.getHeader(e);return new MA(this.bbi,r,n,a,i>0,o)}async getFeatureStream(e,n,r,i){await this.getHeader(i);const a=this.renameRefSeqs(e);let o;const{basesPerSpan:s,scale:f}=i||{};return s?o=await this.getView(1/s,i):f?o=await this.getView(f,i):o=await this.getView(1,i),new bn(u=>{o.readWigData(a,n,r,u,i)})}async getFeatures(e,n,r,i){const a=await this.getFeatureStream(e,n,r,i);return(await eE(a.pipe(wz()))).flat()}}class vz extends oE{async getView(e,n){const{zoomLevels:r,refsByName:i,fileSize:a,isBigEndian:o,uncompressBufSize:s}=await this.getHeader(n),f=1/e;let u=r.length;a||(u-=1);for(let l=u;l>=0;l-=1){const c=r[l];if(c&&c.reductionLevel<=2*f){const h=Number(c.indexOffset);return new MA(this.bbi,i,h,o,s>0,"summary")}}return this.getUnzoomedView(n)}}function Az(t){return t.filter(e=>!!e)}class Ez extends oE{constructor(){super(...arguments),this.readIndicesCache=new ac({cache:new rg({maxSize:1}),fill:(e,n)=>this._readIndices({...e,signal:n})})}readIndices(e={}){const{signal:n,...r}=e;return this.readIndicesCache.get(JSON.stringify(r),e,n)}async getView(e,n){return this.getUnzoomedView(n)}async _readIndices(e){const{extHeaderOffset:n,isBigEndian:r}=await this.getHeader(e),{buffer:i}=await this.bbi.read(bt.Buffer.alloc(64),0,64,Number(n)),a=r?"big":"little",o=new Me().endianess(a).uint16("size").uint16("count").uint64("offset").parse(i),{count:s,offset:f}=o;if(s===0)return[];const u=20,l=u*s,{buffer:c}=await this.bbi.read(bt.Buffer.alloc(l),0,l,Number(f)),h=new Me().endianess(a).int16("type").int16("fieldcount").uint64("offset").skip(4).int16("field"),d=[];for(let g=0;g<s;g+=1)d.push(h.parse(c.subarray(g*u)));return d}async searchExtraIndexBlocks(e,n={}){const{isBigEndian:r}=await this.getHeader(n),i=await this.readIndices(n);if(i.length===0)return[];const a=i.map(async o=>{const{offset:s,field:f}=o,{buffer:u}=await this.bbi.read(bt.Buffer.alloc(32),0,32,Number(s),n),l=r?"big":"little",c=new Me().endianess(l).int32("magic").int32("blockSize").int32("keySize").int32("valSize").uint64("itemCount"),{blockSize:h,keySize:d,valSize:g}=c.parse(u),b=new Me().endianess(l).int8("nodeType").skip(1).int16("cnt").choice({tag:"nodeType",choices:{0:new Me().array("leafkeys",{length:"cnt",type:new Me().endianess(l).string("key",{length:d,stripNull:!0}).uint64("offset")}),1:new Me().array("keys",{length:"cnt",type:new Me().endianess(l).string("key",{length:d,stripNull:!0}).uint64("offset").uint32("length").uint32("reserved")})}}),y=async E=>{const _=Number(E),D=4+h*(d+g),{buffer:T}=await this.bbi.read(bt.Buffer.alloc(D),0,D,_,n),N=b.parse(T);if(N.leafkeys){let M;for(let R=0;R<N.leafkeys.length;R+=1){const{key:C}=N.leafkeys[R];if(e.localeCompare(C)<0&&M)return y(M);M=N.leafkeys[R].offset}return y(M)}for(let M=0;M<N.keys.length;M+=1)if(N.keys[M].key===e)return{...N.keys[M],field:f}},w=32;return y(Number(s)+w)});return Az(await Promise.all(a))}async searchExtraIndex(e,n={}){const r=await this.searchExtraIndexBlocks(e,n);if(r.length===0)return[];const i=await this.getUnzoomedView(n),a=r.map(s=>new bn(f=>{i.readFeatures(f,[s],n)}).pipe(rE((f,u)=>f.concat(u)),tE(f=>{for(const u of f)u.field=s.field;return f})));return(await eE(mz(...a))).filter(s=>{var f;return((f=s.rest)===null||f===void 0?void 0:f.split(" ")[(s.field||0)-3])===e})}}function Ec(t,e,n=!0){let r,i=o=>{};return function(...s){return new Promise((f,u)=>{const l=()=>{clearTimeout(r),i=c=>{},f(t(...s))};n&&i("debounced"),clearTimeout(r),i=u,r=window.setTimeout(l,e)})}}class Sz extends vu(ra){constructor(n,r){const i={pixelsPerBin:2,channel:"x",...n};super(r,i.channel);an(this,"reductionLevels",[]);an(this,"lastRequestId",0);if(this.params=i,!this.params.url)throw new Error("No URL provided for BigWigSource");this.bbi=new vz({filehandle:new nr(Au(this.params.url,this.view.getBaseUrl()))}),this.doDebouncedRequest=Ec(this.doRequest.bind(this),200,!1),this.headerPromise=this.bbi.getHeader(),this.headerPromise.then(a=>{this.reductionLevels=a.zoomLevels.map(o=>o.reductionLevel).reverse(),this.reductionLevels.push(1)})}async onDomainChanged(n){await this.headerPromise;const r=this.getAxisLength()||700,i=_z(n,r,this.reductionLevels),a=Math.max(i*r,5e3),o=this.quantizeInterval(n,a);this.checkAndUpdateLastInterval(o)&&this.doDebouncedRequest(o,i)}async doRequest(n,r){const i=await this.getFeatures(n,.5/r/this.params.pixelsPerBin);i.requestId<this.lastRequestId||this.publishData(i.features)}async getFeatures(n,r){let i=++this.lastRequestId;const a=new AbortController,o=this.genome.continuousToDiscreteChromosomeIntervals(n),s=await Promise.all(o.map(f=>this.bbi.getFeatures(f.chrom,f.startPos,f.endPos,{scale:r,signal:a.signal}).then(u=>u.map(l=>({chrom:f.chrom,start:l.start,end:l.end,score:l.score})))));return{requestId:i,abort:()=>a.abort(),features:s.flat()}}}function _z(t,e,n){const r=(t[1]-t[0])/e;return n.find(i=>i<r)??n.at(-1)}function Cz(t,e){function n(){this.constructor=t}n.prototype=e.prototype,t.prototype=new n}function Lo(t,e,n,r){this.message=t,this.expected=e,this.found=n,this.location=r,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,Lo)}Cz(Lo,Error),Lo.buildMessage=function(t,e){var n={literal:function(u){return'"'+i(u.text)+'"'},class:function(u){var l="",c;for(c=0;c<u.parts.length;c++)l+=u.parts[c]instanceof Array?a(u.parts[c][0])+"-"+a(u.parts[c][1]):a(u.parts[c]);return"["+(u.inverted?"^":"")+l+"]"},any:function(u){return"any character"},end:function(u){return"end of input"},other:function(u){return u.description}};function r(u){return u.charCodeAt(0).toString(16).toUpperCase()}function i(u){return u.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(l){return"\\x0"+r(l)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(l){return"\\x"+r(l)})}function a(u){return u.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(l){return"\\x0"+r(l)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(l){return"\\x"+r(l)})}function o(u){return n[u.type](u)}function s(u){var l=new Array(u.length),c,h;for(c=0;c<u.length;c++)l[c]=o(u[c]);if(l.sort(),l.length>0){for(c=1,h=1;c<l.length;c++)l[c-1]!==l[c]&&(l[h]=l[c],h++);l.length=h}switch(l.length){case 1:return l[0];case 2:return l[0]+" or "+l[1];default:return l.slice(0,-1).join(", ")+", or "+l[l.length-1]}}function f(u){return u?'"'+i(u)+'"':"end of input"}return"Expected "+s(t)+" but "+f(e)+" found."};function Dz(t,e){e=e!==void 0?e:{};var n={},r={declaration:mS},i=mS,a="(",o=Fe("(",!1),s=")",f=Fe(")",!1),u=function(A,U,$,K){return{type:A,name:U,comment:$,fields:K}},l="simple",c=Fe("simple",!1),h="object",d=Fe("object",!1),g="table",b=Fe("table",!1),y="auto",w=Fe("auto",!1),E="primary",_=Fe("primary",!1),D="index",T=Fe("index",!1),N="unique",M=Fe("unique",!1),R=function(A,U){return U},C=function(A,U){return A.name&&U.unshift(A),U},B="#",L=Fe("#",!1),ee=";",ne=Fe(";",!1),J=function(A,U,$){return{type:A,name:U,comment:$}},be="[",Se=Fe("[",!1),Te="]",it=Fe("]",!1),et=function(A,U,$,K){return{type:A,size:U,name:$,comment:K}},gr=function(A,U,$,K){return{type:A,vals:U,name:$,comment:K}},Be=",",Ye=Fe(",",!1),Zt=function(A,U){return U.unshift(A),U},Hn="int",pr=Fe("int",!1),z="uint",O=Fe("uint",!1),q="short",Q=Fe("short",!1),X="ushort",S=Fe("ushort",!1),v="byte",G=Fe("byte",!1),V="ubyte",le=Fe("ubyte",!1),re="float",ce=Fe("float",!1),Yt="char",Ei=Fe("char",!1),Si="string",_i=Fe("string",!1),Dt="lstring",Or=Fe("lstring",!1),Ci="enum",Wt=Fe("enum",!1),mr="double",x=Fe("double",!1),p="bigint",m=Fe("bigint",!1),I="set",k=Fe("set",!1),P=function(A,U){return A+" "+U},H=/^[a-zA-Z_]/,he=ff([["a","z"],["A","Z"],"_"],!1,!1),He=/^[a-zA-Z0-9_]/,Le=ff([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),We=function(A){return hS()},De=/^[^\n\r]/,sS=ff([`
289
- `,"\r"],!0,!1),E7=function(A){return A.join("").replace(/^"/,"").replace(/"$/,"")},S7=dS("integer"),uS=/^[0-9]/,fS=ff([["0","9"]],!1,!1),_7=function(){return parseInt(hS(),10)},C7=dS("whitespace"),lS=/^[ \t\n\r]/,cS=ff([" "," ",`
290
- `,"\r"],!1,!1),F=0,kt=0,Gc=[{line:1,column:1}],br=0,Up=[],oe=0,Hc;if("startRule"in e){if(!(e.startRule in r))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');i=r[e.startRule]}function hS(){return t.substring(kt,F)}function Fe(A,U){return{type:"literal",text:A,ignoreCase:U}}function ff(A,U,$){return{type:"class",parts:A,inverted:U,ignoreCase:$}}function D7(){return{type:"end"}}function dS(A){return{type:"other",description:A}}function gS(A){var U=Gc[A],$;if(U)return U;for($=A-1;!Gc[$];)$--;for(U=Gc[$],U={line:U.line,column:U.column};$<A;)t.charCodeAt($)===10?(U.line++,U.column=1):U.column++,$++;return Gc[A]=U,U}function pS(A,U){var $=gS(A),K=gS(U);return{start:{offset:A,line:$.line,column:$.column},end:{offset:U,line:K.line,column:K.column}}}function se(A){F<br||(F>br&&(br=F,Up=[]),Up.push(A))}function I7(A,U,$){return new Lo(Lo.buildMessage(A,U),A,U,$)}function mS(){var A,U,$,K,ae,Ue,Xe,Cn,Di,zr,Ii,Pr,Mi,Ur;return A=F,U=we(),U!==n?($=bS(),$!==n?(K=we(),K!==n?(ae=yS(),ae!==n?(Ue=we(),Ue!==n?(Xe=Qc(),Xe!==n?(Cn=we(),Cn!==n?(t.charCodeAt(F)===40?(Di=a,F++):(Di=n,oe===0&&se(o)),Di!==n?(zr=we(),zr!==n?(Ii=M7(),Ii!==n?(Pr=we(),Pr!==n?(t.charCodeAt(F)===41?(Mi=s,F++):(Mi=n,oe===0&&se(f)),Mi!==n?(Ur=we(),Ur!==n?(kt=A,U=u($,ae,Xe,Ii),A=U):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n),A}function bS(){var A;return t.substr(F,6)===l?(A=l,F+=6):(A=n,oe===0&&se(c)),A===n&&(t.substr(F,6)===h?(A=h,F+=6):(A=n,oe===0&&se(d)),A===n&&(t.substr(F,5)===g?(A=g,F+=5):(A=n,oe===0&&se(b)))),A}function yS(){var A,U,$,K;return A=Qn(),A===n&&(A=F,U=Qn(),U!==n?($=wS(),$!==n?(U=[U,$],A=U):(F=A,A=n)):(F=A,A=n),A===n&&(A=F,U=Qn(),U!==n?(t.substr(F,4)===y?($=y,F+=4):($=n,oe===0&&se(w)),$!==n?(U=[U,$],A=U):(F=A,A=n)):(F=A,A=n),A===n&&(A=F,U=Qn(),U!==n?($=wS(),$!==n?(t.substr(F,4)===y?(K=y,F+=4):(K=n,oe===0&&se(w)),K!==n?(U=[U,$,K],A=U):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)))),A}function wS(){var A;return t.substr(F,7)===E?(A=E,F+=7):(A=n,oe===0&&se(_)),A===n&&(t.substr(F,5)===D?(A=D,F+=5):(A=n,oe===0&&se(T)),A===n&&(t.substr(F,6)===N?(A=N,F+=6):(A=n,oe===0&&se(M)))),A}function Qc(){var A;return A=xS(),A===n&&(A=we()),A}function M7(){var A,U,$,K,ae,Ue,Xe;if(A=F,U=jp(),U!==n)if($=we(),$!==n){for(K=[],ae=F,Ue=we(),Ue!==n?(Xe=jp(),Xe!==n?(kt=ae,Ue=R(U,Xe),ae=Ue):(F=ae,ae=n)):(F=ae,ae=n);ae!==n;)K.push(ae),ae=F,Ue=we(),Ue!==n?(Xe=jp(),Xe!==n?(kt=ae,Ue=R(U,Xe),ae=Ue):(F=ae,ae=n)):(F=ae,ae=n);K!==n?(ae=we(),ae!==n?(kt=A,U=C(U,K),A=U):(F=A,A=n)):(F=A,A=n)}else F=A,A=n;else F=A,A=n;return A}function T7(){var A;return t.charCodeAt(F)===35?(A=B,F++):(A=n,oe===0&&se(L)),A}function N7(){var A,U,$,K,ae;return A=F,U=we(),U!==n?($=T7(),$!==n?(K=xS(),K!==n?(ae=we(),ae!==n?(U=[U,$,K,ae],A=U):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n),A}function jp(){var A,U,$,K,ae,Ue,Xe,Cn,Di,zr,Ii,Pr,Mi,Ur;return A=F,U=Gp(),U!==n?($=we(),$!==n?(K=Qn(),K!==n?(ae=we(),ae!==n?(t.charCodeAt(F)===59?(Ue=ee,F++):(Ue=n,oe===0&&se(ne)),Ue!==n?(Xe=we(),Xe!==n?(Cn=Qc(),Cn!==n?(kt=A,U=J(U,K,Cn),A=U):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n),A===n&&(A=F,U=Gp(),U!==n?($=we(),$!==n?(t.charCodeAt(F)===91?(K=be,F++):(K=n,oe===0&&se(Se)),K!==n?(ae=we(),ae!==n?(Ue=k7(),Ue!==n?(Xe=we(),Xe!==n?(t.charCodeAt(F)===93?(Cn=Te,F++):(Cn=n,oe===0&&se(it)),Cn!==n?(Di=we(),Di!==n?(zr=Qn(),zr!==n?(Ii=we(),Ii!==n?(t.charCodeAt(F)===59?(Pr=ee,F++):(Pr=n,oe===0&&se(ne)),Pr!==n?(Mi=we(),Mi!==n?(Ur=Qc(),Ur!==n?(kt=A,U=et(U,Ue,zr,Ur),A=U):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n),A===n&&(A=F,U=Gp(),U!==n?($=we(),$!==n?(t.charCodeAt(F)===40?(K=a,F++):(K=n,oe===0&&se(o)),K!==n?(ae=we(),ae!==n?(Ue=F7(),Ue!==n?(Xe=we(),Xe!==n?(t.charCodeAt(F)===41?(Cn=s,F++):(Cn=n,oe===0&&se(f)),Cn!==n?(Di=we(),Di!==n?(zr=Qn(),zr!==n?(Ii=we(),Ii!==n?(t.charCodeAt(F)===59?(Pr=ee,F++):(Pr=n,oe===0&&se(ne)),Pr!==n?(Mi=we(),Mi!==n?(Ur=Qc(),Ur!==n?(kt=A,U=gr(U,Ue,zr,Ur),A=U):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n)):(F=A,A=n),A===n&&(A=N7()))),A}function F7(){var A,U,$,K,ae,Ue,Xe;if(A=F,U=Qn(),U!==n){for($=[],K=F,t.charCodeAt(F)===44?(ae=Be,F++):(ae=n,oe===0&&se(Ye)),ae!==n?(Ue=we(),Ue!==n?(Xe=Qn(),Xe!==n?(kt=K,ae=R(U,Xe),K=ae):(F=K,K=n)):(F=K,K=n)):(F=K,K=n);K!==n;)$.push(K),K=F,t.charCodeAt(F)===44?(ae=Be,F++):(ae=n,oe===0&&se(Ye)),ae!==n?(Ue=we(),Ue!==n?(Xe=Qn(),Xe!==n?(kt=K,ae=R(U,Xe),K=ae):(F=K,K=n)):(F=K,K=n)):(F=K,K=n);$!==n?(kt=A,U=Zt(U,$),A=U):(F=A,A=n)}else F=A,A=n;return A}function Gp(){var A,U,$,K;return t.substr(F,3)===Hn?(A=Hn,F+=3):(A=n,oe===0&&se(pr)),A===n&&(t.substr(F,4)===z?(A=z,F+=4):(A=n,oe===0&&se(O)),A===n&&(t.substr(F,5)===q?(A=q,F+=5):(A=n,oe===0&&se(Q)),A===n&&(t.substr(F,6)===X?(A=X,F+=6):(A=n,oe===0&&se(S)),A===n&&(t.substr(F,4)===v?(A=v,F+=4):(A=n,oe===0&&se(G)),A===n&&(t.substr(F,5)===V?(A=V,F+=5):(A=n,oe===0&&se(le)),A===n&&(t.substr(F,5)===re?(A=re,F+=5):(A=n,oe===0&&se(ce)),A===n&&(t.substr(F,4)===Yt?(A=Yt,F+=4):(A=n,oe===0&&se(Ei)),A===n&&(t.substr(F,6)===Si?(A=Si,F+=6):(A=n,oe===0&&se(_i)),A===n&&(t.substr(F,7)===Dt?(A=Dt,F+=7):(A=n,oe===0&&se(Or)),A===n&&(t.substr(F,4)===Ci?(A=Ci,F+=4):(A=n,oe===0&&se(Wt)),A===n&&(t.substr(F,6)===mr?(A=mr,F+=6):(A=n,oe===0&&se(x)),A===n&&(t.substr(F,6)===p?(A=p,F+=6):(A=n,oe===0&&se(m)),A===n&&(t.substr(F,3)===I?(A=I,F+=3):(A=n,oe===0&&se(k)),A===n&&(A=F,U=bS(),U!==n?($=we(),$!==n?(K=yS(),K!==n?(kt=A,U=P(U,K),A=U):(F=A,A=n)):(F=A,A=n)):(F=A,A=n))))))))))))))),A}function k7(){var A;return A=B7(),A===n&&(A=Qn()),A}function Qn(){var A,U,$,K,ae;if(A=F,U=F,H.test(t.charAt(F))?($=t.charAt(F),F++):($=n,oe===0&&se(he)),$!==n){for(K=[],He.test(t.charAt(F))?(ae=t.charAt(F),F++):(ae=n,oe===0&&se(Le));ae!==n;)K.push(ae),He.test(t.charAt(F))?(ae=t.charAt(F),F++):(ae=n,oe===0&&se(Le));K!==n?($=[$,K],U=$):(F=U,U=n)}else F=U,U=n;return U!==n&&(kt=A,U=We()),A=U,A}function xS(){var A,U,$;for(A=F,U=[],De.test(t.charAt(F))?($=t.charAt(F),F++):($=n,oe===0&&se(sS));$!==n;)U.push($),De.test(t.charAt(F))?($=t.charAt(F),F++):($=n,oe===0&&se(sS));return U!==n&&(kt=A,U=E7(U)),A=U,A}function B7(){var A,U,$,K;if(oe++,A=F,U=we(),U!==n){if($=[],uS.test(t.charAt(F))?(K=t.charAt(F),F++):(K=n,oe===0&&se(fS)),K!==n)for(;K!==n;)$.push(K),uS.test(t.charAt(F))?(K=t.charAt(F),F++):(K=n,oe===0&&se(fS));else $=n;$!==n?(kt=A,U=_7(),A=U):(F=A,A=n)}else F=A,A=n;return oe--,A===n&&(U=n,oe===0&&se(S7)),A}function we(){var A,U;for(oe++,A=[],lS.test(t.charAt(F))?(U=t.charAt(F),F++):(U=n,oe===0&&se(cS));U!==n;)A.push(U),lS.test(t.charAt(F))?(U=t.charAt(F),F++):(U=n,oe===0&&se(cS));return oe--,A===n&&(U=n,oe===0&&se(C7)),A}if(Hc=i(),Hc!==n&&F===t.length)return Hc;throw Hc!==n&&F<t.length&&se(D7()),I7(Up,br<t.length?t.charAt(br):null,br<t.length?pS(br,br+1):pS(br,br))}var sE={SyntaxError:Lo,parse:Dz};const Iz=ia(sE),Qg=Object.fromEntries(Object.entries(Object.freeze(Object.defineProperty({__proto__:null,bigChain:`table bigChain
287
+ `):"",this.name="UnsubscriptionError",this.errors=n}});function PA(e,t){if(e){var n=e.indexOf(t);0<=n&&e.splice(n,1)}}var kp=function(){function e(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}return e.prototype.unsubscribe=function(){var t,n,r,i,a;if(!this.closed){this.closed=!0;var o=this._parentage;if(o)if(this._parentage=null,Array.isArray(o))try{for(var s=Sl(o),f=s.next();!f.done;f=s.next()){var l=f.value;l.remove(this)}}catch(b){t={error:b}}finally{try{f&&!f.done&&(n=s.return)&&n.call(s)}finally{if(t)throw t.error}}else o.remove(this);var u=this.initialTeardown;if(at(u))try{u()}catch(b){a=b instanceof Ip?b.errors:[b]}var c=this._finalizers;if(c){this._finalizers=null;try{for(var h=Sl(c),d=h.next();!d.done;d=h.next()){var p=d.value;try{NA(p)}catch(b){a=a??[],b instanceof Ip?a=uc(uc([],fc(a)),fc(b.errors)):a.push(b)}}}catch(b){r={error:b}}finally{try{d&&!d.done&&(i=h.return)&&i.call(h)}finally{if(r)throw r.error}}}if(a)throw new Ip(a)}},e.prototype.add=function(t){var n;if(t&&t!==this)if(this.closed)NA(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=(n=this._finalizers)!==null&&n!==void 0?n:[]).push(t)}},e.prototype._hasParent=function(t){var n=this._parentage;return n===t||Array.isArray(n)&&n.includes(t)},e.prototype._addParent=function(t){var n=this._parentage;this._parentage=Array.isArray(n)?(n.push(t),n):n?[n,t]:t},e.prototype._removeParent=function(t){var n=this._parentage;n===t?this._parentage=null:Array.isArray(n)&&PA(n,t)},e.prototype.remove=function(t){var n=this._finalizers;n&&PA(n,t),t instanceof e&&t._removeParent(this)},e.EMPTY=function(){var t=new e;return t.closed=!0,t}(),e}();kp.EMPTY;function MA(e){return e instanceof kp||e&&"closed"in e&&at(e.remove)&&at(e.add)&&at(e.unsubscribe)}function NA(e){at(e)?e():e.unsubscribe()}var LA={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},Bp={setTimeout:function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var i=Bp.delegate;return i!=null&&i.setTimeout?i.setTimeout.apply(i,uc([e,t],fc(n))):setTimeout.apply(void 0,uc([e,t],fc(n)))},clearTimeout:function(e){var t=Bp.delegate;return((t==null?void 0:t.clearTimeout)||clearTimeout)(e)},delegate:void 0};function OA(e){Bp.setTimeout(function(){throw e})}function zA(){}function LN(e){e()}var Dp=function(e){Tp(t,e);function t(n){var r=e.call(this)||this;return r.isStopped=!1,n?(r.destination=n,MA(n)&&n.add(r)):r.destination=GN,r}return t.create=function(n,r,i){return new cc(n,r,i)},t.prototype.next=function(n){this.isStopped||this._next(n)},t.prototype.error=function(n){this.isStopped||(this.isStopped=!0,this._error(n))},t.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},t.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this),this.destination=null)},t.prototype._next=function(n){this.destination.next(n)},t.prototype._error=function(n){try{this.destination.error(n)}finally{this.unsubscribe()}},t.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},t}(kp),ON=Function.prototype.bind;function Fp(e,t){return ON.call(e,t)}var zN=function(){function e(t){this.partialObserver=t}return e.prototype.next=function(t){var n=this.partialObserver;if(n.next)try{n.next(t)}catch(r){hc(r)}},e.prototype.error=function(t){var n=this.partialObserver;if(n.error)try{n.error(t)}catch(r){hc(r)}else hc(t)},e.prototype.complete=function(){var t=this.partialObserver;if(t.complete)try{t.complete()}catch(n){hc(n)}},e}(),cc=function(e){Tp(t,e);function t(n,r,i){var a=e.call(this)||this,o;if(at(n)||!n)o={next:n??void 0,error:r??void 0,complete:i??void 0};else{var s;a&&LA.useDeprecatedNextContext?(s=Object.create(n),s.unsubscribe=function(){return a.unsubscribe()},o={next:n.next&&Fp(n.next,s),error:n.error&&Fp(n.error,s),complete:n.complete&&Fp(n.complete,s)}):o=n}return a.destination=new zN(o),a}return t}(Dp);function hc(e){OA(e)}function UN(e){throw e}var GN={closed:!0,next:zA,error:UN,complete:zA},Rp=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}();function UA(e){return e}function HN(e){return e.length===0?UA:e.length===1?e[0]:function(n){return e.reduce(function(r,i){return i(r)},n)}}var hn=function(){function e(t){t&&(this._subscribe=t)}return e.prototype.lift=function(t){var n=new e;return n.source=this,n.operator=t,n},e.prototype.subscribe=function(t,n,r){var i=this,a=jN(t)?t:new cc(t,n,r);return LN(function(){var o=i,s=o.operator,f=o.source;a.add(s?s.call(a,f):f?i._subscribe(a):i._trySubscribe(a))}),a},e.prototype._trySubscribe=function(t){try{return this._subscribe(t)}catch(n){t.error(n)}},e.prototype.forEach=function(t,n){var r=this;return n=GA(n),new n(function(i,a){var o=new cc({next:function(s){try{t(s)}catch(f){a(f),o.unsubscribe()}},error:a,complete:i});r.subscribe(o)})},e.prototype._subscribe=function(t){var n;return(n=this.source)===null||n===void 0?void 0:n.subscribe(t)},e.prototype[Rp]=function(){return this},e.prototype.pipe=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return HN(t)(this)},e.prototype.toPromise=function(t){var n=this;return t=GA(t),new t(function(r,i){var a;n.subscribe(function(o){return a=o},function(o){return i(o)},function(){return r(a)})})},e.create=function(t){return new e(t)},e}();function GA(e){var t;return(t=e??LA.Promise)!==null&&t!==void 0?t:Promise}function VN(e){return e&&at(e.next)&&at(e.error)&&at(e.complete)}function jN(e){return e&&e instanceof Dp||VN(e)&&MA(e)}function qN(e){return at(e==null?void 0:e.lift)}function ho(e){return function(t){if(qN(t))return t.lift(function(n){try{return e(n,this)}catch(r){this.error(r)}});throw new TypeError("Unable to lift unknown Observable type")}}function Cl(e,t,n,r,i){return new ZN(e,t,n,r,i)}var ZN=function(e){Tp(t,e);function t(n,r,i,a,o,s){var f=e.call(this,n)||this;return f.onFinalize=o,f.shouldUnsubscribe=s,f._next=r?function(l){try{r(l)}catch(u){n.error(u)}}:e.prototype._next,f._error=a?function(l){try{a(l)}catch(u){n.error(u)}finally{this.unsubscribe()}}:e.prototype._error,f._complete=i?function(){try{i()}catch(l){n.error(l)}finally{this.unsubscribe()}}:e.prototype._complete,f}return t.prototype.unsubscribe=function(){var n;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var r=this.closed;e.prototype.unsubscribe.call(this),!r&&((n=this.onFinalize)===null||n===void 0||n.call(this))}},t}(Dp),WN=new hn(function(e){return e.complete()});function YN(e){return e&&at(e.schedule)}function HA(e){return e[e.length-1]}function QN(e){return YN(HA(e))?e.pop():void 0}function XN(e,t){return typeof HA(e)=="number"?e.pop():t}var VA=function(e){return e&&typeof e.length=="number"&&typeof e!="function"};function jA(e){return at(e==null?void 0:e.then)}function qA(e){return at(e[Rp])}function ZA(e){return Symbol.asyncIterator&&at(e==null?void 0:e[Symbol.asyncIterator])}function WA(e){return new TypeError("You provided "+(e!==null&&typeof e=="object"?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function $N(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var YA=$N();function QA(e){return at(e==null?void 0:e[YA])}function XA(e){return MN(this,arguments,function(){var n,r,i,a;return FA(this,function(o){switch(o.label){case 0:n=e.getReader(),o.label=1;case 1:o.trys.push([1,,9,10]),o.label=2;case 2:return[4,co(n.read())];case 3:return r=o.sent(),i=r.value,a=r.done,a?[4,co(void 0)]:[3,5];case 4:return[2,o.sent()];case 5:return[4,co(i)];case 6:return[4,o.sent()];case 7:return o.sent(),[3,2];case 8:return[3,10];case 9:return n.releaseLock(),[7];case 10:return[2]}})})}function $A(e){return at(e==null?void 0:e.getReader)}function po(e){if(e instanceof hn)return e;if(e!=null){if(qA(e))return KN(e);if(VA(e))return JN(e);if(jA(e))return eL(e);if(ZA(e))return KA(e);if(QA(e))return tL(e);if($A(e))return nL(e)}throw WA(e)}function KN(e){return new hn(function(t){var n=e[Rp]();if(at(n.subscribe))return n.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function JN(e){return new hn(function(t){for(var n=0;n<e.length&&!t.closed;n++)t.next(e[n]);t.complete()})}function eL(e){return new hn(function(t){e.then(function(n){t.closed||(t.next(n),t.complete())},function(n){return t.error(n)}).then(null,OA)})}function tL(e){return new hn(function(t){var n,r;try{for(var i=Sl(e),a=i.next();!a.done;a=i.next()){var o=a.value;if(t.next(o),t.closed)return}}catch(s){n={error:s}}finally{try{a&&!a.done&&(r=i.return)&&r.call(i)}finally{if(n)throw n.error}}t.complete()})}function KA(e){return new hn(function(t){rL(e,t).catch(function(n){return t.error(n)})})}function nL(e){return KA(XA(e))}function rL(e,t){var n,r,i,a;return PN(this,void 0,void 0,function(){var o,s;return FA(this,function(f){switch(f.label){case 0:f.trys.push([0,5,6,11]),n=NN(e),f.label=1;case 1:return[4,n.next()];case 2:if(r=f.sent(),!!r.done)return[3,4];if(o=r.value,t.next(o),t.closed)return[2];f.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return s=f.sent(),i={error:s},[3,11];case 6:return f.trys.push([6,,9,10]),r&&!r.done&&(a=n.return)?[4,a.call(n)]:[3,8];case 7:f.sent(),f.label=8;case 8:return[3,10];case 9:if(i)throw i.error;return[7];case 10:return[7];case 11:return t.complete(),[2]}})})}function ai(e,t,n,r,i){r===void 0&&(r=0),i===void 0&&(i=!1);var a=t.schedule(function(){n(),i?e.add(this.schedule(null,r)):this.unsubscribe()},r);if(e.add(a),!i)return a}function JA(e,t){return t===void 0&&(t=0),ho(function(n,r){n.subscribe(Cl(r,function(i){return ai(r,e,function(){return r.next(i)},t)},function(){return ai(r,e,function(){return r.complete()},t)},function(i){return ai(r,e,function(){return r.error(i)},t)}))})}function e3(e,t){return t===void 0&&(t=0),ho(function(n,r){r.add(e.schedule(function(){return n.subscribe(r)},t))})}function iL(e,t){return po(e).pipe(e3(t),JA(t))}function aL(e,t){return po(e).pipe(e3(t),JA(t))}function oL(e,t){return new hn(function(n){var r=0;return t.schedule(function(){r===e.length?n.complete():(n.next(e[r++]),n.closed||this.schedule())})})}function sL(e,t){return new hn(function(n){var r;return ai(n,t,function(){r=e[YA](),ai(n,t,function(){var i,a,o;try{i=r.next(),a=i.value,o=i.done}catch(s){n.error(s);return}o?n.complete():n.next(a)},0,!0)}),function(){return at(r==null?void 0:r.return)&&r.return()}})}function t3(e,t){if(!e)throw new Error("Iterable cannot be null");return new hn(function(n){ai(n,t,function(){var r=e[Symbol.asyncIterator]();ai(n,t,function(){r.next().then(function(i){i.done?n.complete():n.next(i.value)})},0,!0)})})}function lL(e,t){return t3(XA(e),t)}function fL(e,t){if(e!=null){if(qA(e))return iL(e,t);if(VA(e))return oL(e,t);if(jA(e))return aL(e,t);if(ZA(e))return t3(e,t);if(QA(e))return sL(e,t);if($A(e))return lL(e,t)}throw WA(e)}function uL(e,t){return t?fL(e,t):po(e)}var cL=RA(function(e){return function(){e(this),this.name="EmptyError",this.message="no elements in sequence"}});function n3(e,t){var n=typeof t=="object";return new Promise(function(r,i){var a=new cc({next:function(o){r(o),a.unsubscribe()},error:i,complete:function(){n?r(t.defaultValue):i(new cL)}});e.subscribe(a)})}function r3(e,t){return ho(function(n,r){var i=0;n.subscribe(Cl(r,function(a){r.next(e.call(t,a,i++))}))})}function hL(e,t,n,r,i,a,o,s){var f=[],l=0,u=0,c=!1,h=function(){c&&!f.length&&!l&&t.complete()},d=function(b){return l<r?p(b):f.push(b)},p=function(b){a&&t.next(b),l++;var y=!1;po(n(b,u++)).subscribe(Cl(t,function(w){i==null||i(w),a?d(w):t.next(w)},function(){y=!0},void 0,function(){if(y)try{l--;for(var w=function(){var S=f.shift();o?ai(t,o,function(){return p(S)}):p(S)};f.length&&l<r;)w();h()}catch(S){t.error(S)}}))};return e.subscribe(Cl(t,d,function(){c=!0,h()})),function(){s==null||s()}}function i3(e,t,n){return n===void 0&&(n=1/0),at(t)?i3(function(r,i){return r3(function(a,o){return t(r,a,i,o)})(po(e(r,i)))},n):(typeof t=="number"&&(n=t),ho(function(r,i){return hL(r,i,e,n)}))}function dL(e){return e===void 0&&(e=1/0),i3(UA,e)}function pL(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=QN(e),r=XN(e,1/0),i=e;return i.length?i.length===1?po(i[0]):dL(r)(uL(i,n)):WN}function gL(e,t,n,r,i){return function(a,o){var s=n,f=t,l=0;a.subscribe(Cl(o,function(u){var c=l++;f=s?e(f,u,c):(s=!0,u),r&&o.next(f)},i&&function(){s&&o.next(f),o.complete()}))}}function a3(e,t){return ho(gL(e,t,arguments.length>=2,!1,!0))}var mL=function(e,t){return e.push(t),e};function bL(){return ho(function(e,t){a3(mL,[])(e).subscribe(t)})}const o3=-2003829722,Pp=-2021002517;function yL(e){return new TextDecoder().decode(e)}function s3(e){const t=e?"big":"little",n=new Ie().endianess(t).int32("magic").uint16("version").uint16("numZoomLevels").uint64("chromTreeOffset").uint64("unzoomedDataOffset").uint64("unzoomedIndexOffset").uint16("fieldCount").uint16("definedFieldCount").uint64("asOffset").uint64("totalSummaryOffset").uint32("uncompressBufSize").uint64("extHeaderOffset").array("zoomLevels",{length:"numZoomLevels",type:new Ie().endianess(t).uint32("reductionLevel").uint32("reserved").uint64("dataOffset").uint64("indexOffset")}),r=new Ie().endianess(t).uint64("basesCovered").doublele("scoreMin").doublele("scoreMax").doublele("scoreSum").doublele("scoreSumSquares"),i=new Ie().endianess(t).uint32("magic").uint32("blockSize").uint32("keySize").uint32("valSize").uint64("itemCount"),a=new Ie().endianess(t).uint8("isLeafNode").skip(1).uint16("cnt").saveOffset("offset");return{chromTreeParser:i,totalSummaryParser:r,headerParser:n,isLeafNode:a}}class l3{getHeader(t){return this.headerP||(this.headerP=this._getHeader(t).catch(n=>{throw this.headerP=void 0,n})),this.headerP}constructor(t){const{filehandle:n,renameRefSeqs:r=o=>o,path:i,url:a}=t;if(this.renameRefSeqs=r,n)this.bbi=n;else if(a)this.bbi=new ji(a);else if(i)this.bbi=new ct(i);else throw new Error("no file given")}async _getHeader(t){const n=await this._getMainHeader(t),r=await this._readChromTree(n,t);return{...n,...r}}async _getMainHeader(t,n=2e3){const{buffer:r}=await this.bbi.read(ye.Buffer.alloc(n),0,n,0,t),i=this._isBigEndian(r),a=s3(i),o=a.headerParser.parse(r),{magic:s,asOffset:f,totalSummaryOffset:l}=o;if(o.fileType=s===Pp?"bigbed":"bigwig",f>n||l>n)return this._getMainHeader(t,n*2);if(f){const u=Number(o.asOffset);o.autoSql=yL(r.subarray(u,r.indexOf(0,u)))}if(o.totalSummaryOffset>n)return this._getMainHeader(t,n*2);if(o.totalSummaryOffset){const u=r.subarray(Number(o.totalSummaryOffset)),c=a.totalSummaryParser.parse(u);o.totalSummary={...c,basesCovered:Number(c.basesCovered)}}return{...o,isBigEndian:i}}_isBigEndian(t){let n=t.readInt32LE(0);if(n===o3||n===Pp)return!1;if(n=t.readInt32BE(0),n===o3||n===Pp)return!0;throw new Error("not a BigWig/BigBed file")}async _readChromTree(t,n){const r=t.isBigEndian,i=r?"big":"little",a=[],o={};let s=Number(t.unzoomedDataOffset);const f=Number(t.chromTreeOffset);for(;s%4!==0;)s+=1;const l=s-f,{buffer:u}=await this.bbi.read(ye.Buffer.alloc(l),0,l,Number(f),n),c=s3(r),{keySize:h}=c.chromTreeParser.parse(u),d=new Ie().endianess(i).string("key",{stripNull:!0,length:h}).uint32("refId").uint32("refSize").saveOffset("offset"),p=new Ie().endianess(i).skip(h).uint64("childOffset").saveOffset("offset"),b=32,y=async w=>{let S=w;if(S>=u.length)throw new Error("reading beyond end of buffer");const C=c.isLeafNode.parse(u.subarray(S)),{isLeafNode:_,cnt:k}=C;if(S+=C.offset,_)for(let B=0;B<k;B+=1){const I=d.parse(u.subarray(S));S+=I.offset;const{key:R,refId:M,refSize:j}=I,O={name:R,id:M,length:j};o[this.renameRefSeqs(R)]=M,a[M]=O}else{const B=[];for(let I=0;I<k;I+=1){const R=p.parse(u.subarray(S)),{childOffset:M}=R;S+=R.offset,B.push(y(Number(M)-Number(f)))}await Promise.all(B)}};return await y(b),{refsByName:o,refsByNumber:a}}async getUnzoomedView(t){const{unzoomedIndexOffset:n,refsByName:r,uncompressBufSize:i,isBigEndian:a,fileType:o}=await this.getHeader(t);return new DA(this.bbi,r,n,a,i>0,o)}async getFeatureStream(t,n,r,i){await this.getHeader(i);const a=this.renameRefSeqs(t);let o;const{basesPerSpan:s,scale:f}=i||{};return s?o=await this.getView(1/s,i):f?o=await this.getView(f,i):o=await this.getView(1,i),new hn(l=>{o.readWigData(a,n,r,l,i)})}async getFeatures(t,n,r,i){const a=await this.getFeatureStream(t,n,r,i);return(await n3(a.pipe(bL()))).flat()}}class wL extends l3{async getView(t,n){const{zoomLevels:r,refsByName:i,fileSize:a,isBigEndian:o,uncompressBufSize:s}=await this.getHeader(n),f=1/t;let l=r.length;a||(l-=1);for(let u=l;u>=0;u-=1){const c=r[u];if(c&&c.reductionLevel<=2*f){const h=Number(c.indexOffset);return new DA(this.bbi,i,h,o,s>0,"summary")}}return this.getUnzoomedView(n)}}function vL(e){return e.filter(t=>!!t)}class xL extends l3{constructor(){super(...arguments),this.readIndicesCache=new Yu({cache:new Qu({maxSize:1}),fill:(t,n)=>this._readIndices({...t,signal:n})})}readIndices(t={}){const{signal:n,...r}=t;return this.readIndicesCache.get(JSON.stringify(r),t,n)}async getView(t,n){return this.getUnzoomedView(n)}async _readIndices(t){const{extHeaderOffset:n,isBigEndian:r}=await this.getHeader(t),{buffer:i}=await this.bbi.read(ye.Buffer.alloc(64),0,64,Number(n)),a=r?"big":"little",o=new Ie().endianess(a).uint16("size").uint16("count").uint64("offset").parse(i),{count:s,offset:f}=o;if(s===0)return[];const l=20,u=l*s,{buffer:c}=await this.bbi.read(ye.Buffer.alloc(u),0,u,Number(f)),h=new Ie().endianess(a).int16("type").int16("fieldcount").uint64("offset").skip(4).int16("field"),d=[];for(let p=0;p<s;p+=1)d.push(h.parse(c.subarray(p*l)));return d}async searchExtraIndexBlocks(t,n={}){const{isBigEndian:r}=await this.getHeader(n),i=await this.readIndices(n);if(i.length===0)return[];const a=i.map(async o=>{const{offset:s,field:f}=o,{buffer:l}=await this.bbi.read(ye.Buffer.alloc(32),0,32,Number(s),n),u=r?"big":"little",c=new Ie().endianess(u).int32("magic").int32("blockSize").int32("keySize").int32("valSize").uint64("itemCount"),{blockSize:h,keySize:d,valSize:p}=c.parse(l),b=new Ie().endianess(u).int8("nodeType").skip(1).int16("cnt").choice({tag:"nodeType",choices:{0:new Ie().array("leafkeys",{length:"cnt",type:new Ie().endianess(u).string("key",{length:d,stripNull:!0}).uint64("offset")}),1:new Ie().array("keys",{length:"cnt",type:new Ie().endianess(u).string("key",{length:d,stripNull:!0}).uint64("offset").uint32("length").uint32("reserved")})}}),y=async S=>{const C=Number(S),_=4+h*(d+p),{buffer:k}=await this.bbi.read(ye.Buffer.alloc(_),0,_,C,n),B=b.parse(k);if(B.leafkeys){let I;for(let R=0;R<B.leafkeys.length;R+=1){const{key:M}=B.leafkeys[R];if(t.localeCompare(M)<0&&I)return y(I);I=B.leafkeys[R].offset}return y(I)}for(let I=0;I<B.keys.length;I+=1)if(B.keys[I].key===t)return{...B.keys[I],field:f}},w=32;return y(Number(s)+w)});return vL(await Promise.all(a))}async searchExtraIndex(t,n={}){const r=await this.searchExtraIndexBlocks(t,n);if(r.length===0)return[];const i=await this.getUnzoomedView(n),a=r.map(s=>new hn(f=>{i.readFeatures(f,[s],n)}).pipe(a3((f,l)=>f.concat(l)),r3(f=>{for(const l of f)l.field=s.field;return f})));return(await n3(pL(...a))).filter(s=>{var f;return((f=s.rest)===null||f===void 0?void 0:f.split(" ")[(s.field||0)-3])===t})}}const f3=Object.freeze(Object.defineProperty({__proto__:null,BigBed:xL,BigWig:wL},Symbol.toStringTag,{value:"Module"}));function AL(e,t){function n(){this.constructor=e}n.prototype=t.prototype,e.prototype=new n}function go(e,t,n,r){this.message=e,this.expected=t,this.found=n,this.location=r,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,go)}AL(go,Error),go.buildMessage=function(e,t){var n={literal:function(l){return'"'+i(l.text)+'"'},class:function(l){var u="",c;for(c=0;c<l.parts.length;c++)u+=l.parts[c]instanceof Array?a(l.parts[c][0])+"-"+a(l.parts[c][1]):a(l.parts[c]);return"["+(l.inverted?"^":"")+u+"]"},any:function(l){return"any character"},end:function(l){return"end of input"},other:function(l){return l.description}};function r(l){return l.charCodeAt(0).toString(16).toUpperCase()}function i(l){return l.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(u){return"\\x0"+r(u)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(u){return"\\x"+r(u)})}function a(l){return l.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(u){return"\\x0"+r(u)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(u){return"\\x"+r(u)})}function o(l){return n[l.type](l)}function s(l){var u=new Array(l.length),c,h;for(c=0;c<l.length;c++)u[c]=o(l[c]);if(u.sort(),u.length>0){for(c=1,h=1;c<u.length;c++)u[c-1]!==u[c]&&(u[h]=u[c],h++);u.length=h}switch(u.length){case 1:return u[0];case 2:return u[0]+" or "+u[1];default:return u.slice(0,-1).join(", ")+", or "+u[u.length-1]}}function f(l){return l?'"'+i(l)+'"':"end of input"}return"Expected "+s(e)+" but "+f(t)+" found."};function EL(e,t){t=t!==void 0?t:{};var n={},r={declaration:FE},i=FE,a="(",o=Fe("(",!1),s=")",f=Fe(")",!1),l=function(A,z,Q,X){return{type:A,name:z,comment:Q,fields:X}},u="simple",c=Fe("simple",!1),h="object",d=Fe("object",!1),p="table",b=Fe("table",!1),y="auto",w=Fe("auto",!1),S="primary",C=Fe("primary",!1),_="index",k=Fe("index",!1),B="unique",I=Fe("unique",!1),R=function(A,z){return z},M=function(A,z){return A.name&&z.unshift(A),z},j="#",O=Fe("#",!1),ne=";",oe=Fe(";",!1),pe=function(A,z,Q){return{type:A,name:z,comment:Q}},ke="[",Xe=Fe("[",!1),De="]",$e=Fe("]",!1),qe=function(A,z,Q,X){return{type:A,size:z,name:Q,comment:X}},Ke=function(A,z,Q,X){return{type:A,vals:z,name:Q,comment:X}},Ee=",",_e=Fe(",",!1),dt=function(A,z){return z.unshift(A),z},Ht="int",Le=Fe("int",!1),N="uint",P=Fe("uint",!1),q="short",H=Fe("short",!1),W="ushort",E=Fe("ushort",!1),x="byte",G=Fe("byte",!1),Z="ubyte",se=Fe("ubyte",!1),J="float",le=Fe("float",!1),Vt="char",si=Fe("char",!1),li="string",fi=Fe("string",!1),_t="lstring",wr=Fe("lstring",!1),ui="enum",jt=Fe("enum",!1),Kn="double",v=Fe("double",!1),g="bigint",m=Fe("bigint",!1),T="set",F=Fe("set",!1),L=function(A,z){return A+" "+z},V=/^[a-zA-Z_]/,fe=Hl([["a","z"],["A","Z"],"_"],!1,!1),Ue=/^[a-zA-Z0-9_]/,Pe=Hl([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),Ze=function(A){return IE()},Se=/^[^\n\r]/,EE=Hl([`
288
+ `,"\r"],!0,!1),VO=function(A){return A.join("").replace(/^"/,"").replace(/"$/,"")},jO=kE("integer"),_E=/^[0-9]/,SE=Hl([["0","9"]],!1,!1),qO=function(){return parseInt(IE(),10)},ZO=kE("whitespace"),CE=/^[ \t\n\r]/,TE=Hl([" "," ",`
289
+ `,"\r"],!1,!1),D=0,Bt=0,Cc=[{line:1,column:1}],Jn=0,bg=[],te=0,Tc;if("startRule"in t){if(!(t.startRule in r))throw new Error(`Can't start parsing from rule "`+t.startRule+'".');i=r[t.startRule]}function IE(){return e.substring(Bt,D)}function Fe(A,z){return{type:"literal",text:A,ignoreCase:z}}function Hl(A,z,Q){return{type:"class",parts:A,inverted:z,ignoreCase:Q}}function WO(){return{type:"end"}}function kE(A){return{type:"other",description:A}}function BE(A){var z=Cc[A],Q;if(z)return z;for(Q=A-1;!Cc[Q];)Q--;for(z=Cc[Q],z={line:z.line,column:z.column};Q<A;)e.charCodeAt(Q)===10?(z.line++,z.column=1):z.column++,Q++;return Cc[A]=z,z}function DE(A,z){var Q=BE(A),X=BE(z);return{start:{offset:A,line:Q.line,column:Q.column},end:{offset:z,line:X.line,column:X.column}}}function re(A){D<Jn||(D>Jn&&(Jn=D,bg=[]),bg.push(A))}function YO(A,z,Q){return new go(go.buildMessage(A,z),A,z,Q)}function FE(){var A,z,Q,X,ee,Oe,We,gn,ci,vr,hi,xr,di,Ar;return A=D,z=ge(),z!==n?(Q=RE(),Q!==n?(X=ge(),X!==n?(ee=PE(),ee!==n?(Oe=ge(),Oe!==n?(We=Ic(),We!==n?(gn=ge(),gn!==n?(e.charCodeAt(D)===40?(ci=a,D++):(ci=n,te===0&&re(o)),ci!==n?(vr=ge(),vr!==n?(hi=QO(),hi!==n?(xr=ge(),xr!==n?(e.charCodeAt(D)===41?(di=s,D++):(di=n,te===0&&re(f)),di!==n?(Ar=ge(),Ar!==n?(Bt=A,z=l(Q,ee,We,hi),A=z):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n),A}function RE(){var A;return e.substr(D,6)===u?(A=u,D+=6):(A=n,te===0&&re(c)),A===n&&(e.substr(D,6)===h?(A=h,D+=6):(A=n,te===0&&re(d)),A===n&&(e.substr(D,5)===p?(A=p,D+=5):(A=n,te===0&&re(b)))),A}function PE(){var A,z,Q,X;return A=Bn(),A===n&&(A=D,z=Bn(),z!==n?(Q=ME(),Q!==n?(z=[z,Q],A=z):(D=A,A=n)):(D=A,A=n),A===n&&(A=D,z=Bn(),z!==n?(e.substr(D,4)===y?(Q=y,D+=4):(Q=n,te===0&&re(w)),Q!==n?(z=[z,Q],A=z):(D=A,A=n)):(D=A,A=n),A===n&&(A=D,z=Bn(),z!==n?(Q=ME(),Q!==n?(e.substr(D,4)===y?(X=y,D+=4):(X=n,te===0&&re(w)),X!==n?(z=[z,Q,X],A=z):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)))),A}function ME(){var A;return e.substr(D,7)===S?(A=S,D+=7):(A=n,te===0&&re(C)),A===n&&(e.substr(D,5)===_?(A=_,D+=5):(A=n,te===0&&re(k)),A===n&&(e.substr(D,6)===B?(A=B,D+=6):(A=n,te===0&&re(I)))),A}function Ic(){var A;return A=NE(),A===n&&(A=ge()),A}function QO(){var A,z,Q,X,ee,Oe,We;if(A=D,z=yg(),z!==n)if(Q=ge(),Q!==n){for(X=[],ee=D,Oe=ge(),Oe!==n?(We=yg(),We!==n?(Bt=ee,Oe=R(z,We),ee=Oe):(D=ee,ee=n)):(D=ee,ee=n);ee!==n;)X.push(ee),ee=D,Oe=ge(),Oe!==n?(We=yg(),We!==n?(Bt=ee,Oe=R(z,We),ee=Oe):(D=ee,ee=n)):(D=ee,ee=n);X!==n?(ee=ge(),ee!==n?(Bt=A,z=M(z,X),A=z):(D=A,A=n)):(D=A,A=n)}else D=A,A=n;else D=A,A=n;return A}function XO(){var A;return e.charCodeAt(D)===35?(A=j,D++):(A=n,te===0&&re(O)),A}function $O(){var A,z,Q,X,ee;return A=D,z=ge(),z!==n?(Q=XO(),Q!==n?(X=NE(),X!==n?(ee=ge(),ee!==n?(z=[z,Q,X,ee],A=z):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n),A}function yg(){var A,z,Q,X,ee,Oe,We,gn,ci,vr,hi,xr,di,Ar;return A=D,z=wg(),z!==n?(Q=ge(),Q!==n?(X=Bn(),X!==n?(ee=ge(),ee!==n?(e.charCodeAt(D)===59?(Oe=ne,D++):(Oe=n,te===0&&re(oe)),Oe!==n?(We=ge(),We!==n?(gn=Ic(),gn!==n?(Bt=A,z=pe(z,X,gn),A=z):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n),A===n&&(A=D,z=wg(),z!==n?(Q=ge(),Q!==n?(e.charCodeAt(D)===91?(X=ke,D++):(X=n,te===0&&re(Xe)),X!==n?(ee=ge(),ee!==n?(Oe=JO(),Oe!==n?(We=ge(),We!==n?(e.charCodeAt(D)===93?(gn=De,D++):(gn=n,te===0&&re($e)),gn!==n?(ci=ge(),ci!==n?(vr=Bn(),vr!==n?(hi=ge(),hi!==n?(e.charCodeAt(D)===59?(xr=ne,D++):(xr=n,te===0&&re(oe)),xr!==n?(di=ge(),di!==n?(Ar=Ic(),Ar!==n?(Bt=A,z=qe(z,Oe,vr,Ar),A=z):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n),A===n&&(A=D,z=wg(),z!==n?(Q=ge(),Q!==n?(e.charCodeAt(D)===40?(X=a,D++):(X=n,te===0&&re(o)),X!==n?(ee=ge(),ee!==n?(Oe=KO(),Oe!==n?(We=ge(),We!==n?(e.charCodeAt(D)===41?(gn=s,D++):(gn=n,te===0&&re(f)),gn!==n?(ci=ge(),ci!==n?(vr=Bn(),vr!==n?(hi=ge(),hi!==n?(e.charCodeAt(D)===59?(xr=ne,D++):(xr=n,te===0&&re(oe)),xr!==n?(di=ge(),di!==n?(Ar=Ic(),Ar!==n?(Bt=A,z=Ke(z,Oe,vr,Ar),A=z):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n),A===n&&(A=$O()))),A}function KO(){var A,z,Q,X,ee,Oe,We;if(A=D,z=Bn(),z!==n){for(Q=[],X=D,e.charCodeAt(D)===44?(ee=Ee,D++):(ee=n,te===0&&re(_e)),ee!==n?(Oe=ge(),Oe!==n?(We=Bn(),We!==n?(Bt=X,ee=R(z,We),X=ee):(D=X,X=n)):(D=X,X=n)):(D=X,X=n);X!==n;)Q.push(X),X=D,e.charCodeAt(D)===44?(ee=Ee,D++):(ee=n,te===0&&re(_e)),ee!==n?(Oe=ge(),Oe!==n?(We=Bn(),We!==n?(Bt=X,ee=R(z,We),X=ee):(D=X,X=n)):(D=X,X=n)):(D=X,X=n);Q!==n?(Bt=A,z=dt(z,Q),A=z):(D=A,A=n)}else D=A,A=n;return A}function wg(){var A,z,Q,X;return e.substr(D,3)===Ht?(A=Ht,D+=3):(A=n,te===0&&re(Le)),A===n&&(e.substr(D,4)===N?(A=N,D+=4):(A=n,te===0&&re(P)),A===n&&(e.substr(D,5)===q?(A=q,D+=5):(A=n,te===0&&re(H)),A===n&&(e.substr(D,6)===W?(A=W,D+=6):(A=n,te===0&&re(E)),A===n&&(e.substr(D,4)===x?(A=x,D+=4):(A=n,te===0&&re(G)),A===n&&(e.substr(D,5)===Z?(A=Z,D+=5):(A=n,te===0&&re(se)),A===n&&(e.substr(D,5)===J?(A=J,D+=5):(A=n,te===0&&re(le)),A===n&&(e.substr(D,4)===Vt?(A=Vt,D+=4):(A=n,te===0&&re(si)),A===n&&(e.substr(D,6)===li?(A=li,D+=6):(A=n,te===0&&re(fi)),A===n&&(e.substr(D,7)===_t?(A=_t,D+=7):(A=n,te===0&&re(wr)),A===n&&(e.substr(D,4)===ui?(A=ui,D+=4):(A=n,te===0&&re(jt)),A===n&&(e.substr(D,6)===Kn?(A=Kn,D+=6):(A=n,te===0&&re(v)),A===n&&(e.substr(D,6)===g?(A=g,D+=6):(A=n,te===0&&re(m)),A===n&&(e.substr(D,3)===T?(A=T,D+=3):(A=n,te===0&&re(F)),A===n&&(A=D,z=RE(),z!==n?(Q=ge(),Q!==n?(X=PE(),X!==n?(Bt=A,z=L(z,X),A=z):(D=A,A=n)):(D=A,A=n)):(D=A,A=n))))))))))))))),A}function JO(){var A;return A=ez(),A===n&&(A=Bn()),A}function Bn(){var A,z,Q,X,ee;if(A=D,z=D,V.test(e.charAt(D))?(Q=e.charAt(D),D++):(Q=n,te===0&&re(fe)),Q!==n){for(X=[],Ue.test(e.charAt(D))?(ee=e.charAt(D),D++):(ee=n,te===0&&re(Pe));ee!==n;)X.push(ee),Ue.test(e.charAt(D))?(ee=e.charAt(D),D++):(ee=n,te===0&&re(Pe));X!==n?(Q=[Q,X],z=Q):(D=z,z=n)}else D=z,z=n;return z!==n&&(Bt=A,z=Ze()),A=z,A}function NE(){var A,z,Q;for(A=D,z=[],Se.test(e.charAt(D))?(Q=e.charAt(D),D++):(Q=n,te===0&&re(EE));Q!==n;)z.push(Q),Se.test(e.charAt(D))?(Q=e.charAt(D),D++):(Q=n,te===0&&re(EE));return z!==n&&(Bt=A,z=VO(z)),A=z,A}function ez(){var A,z,Q,X;if(te++,A=D,z=ge(),z!==n){if(Q=[],_E.test(e.charAt(D))?(X=e.charAt(D),D++):(X=n,te===0&&re(SE)),X!==n)for(;X!==n;)Q.push(X),_E.test(e.charAt(D))?(X=e.charAt(D),D++):(X=n,te===0&&re(SE));else Q=n;Q!==n?(Bt=A,z=qO(),A=z):(D=A,A=n)}else D=A,A=n;return te--,A===n&&(z=n,te===0&&re(jO)),A}function ge(){var A,z;for(te++,A=[],CE.test(e.charAt(D))?(z=e.charAt(D),D++):(z=n,te===0&&re(TE));z!==n;)A.push(z),CE.test(e.charAt(D))?(z=e.charAt(D),D++):(z=n,te===0&&re(TE));return te--,A===n&&(z=n,te===0&&re(ZO)),A}if(Tc=i(),Tc!==n&&D===e.length)return Tc;throw Tc!==n&&D<e.length&&re(WO()),YO(bg,Jn<e.length?e.charAt(Jn):null,Jn<e.length?DE(Jn,Jn+1):DE(Jn,Jn))}var u3={SyntaxError:go,parse:EL};const _L=Gs(u3),Mp=Object.fromEntries(Object.entries(Object.freeze(Object.defineProperty({__proto__:null,bigChain:`table bigChain
291
290
  "bigChain pairwise alignment"
292
291
  (
293
292
  string chrom; "Reference sequence chromosome or scaffold"
@@ -446,47 +445,17 @@ if(scale<1.0){if(uSqueeze){vec2 scaleFadeExtent=vec2(3.0,6.0)/size;if(scale<scal
446
445
  float score; "Floating point score."
447
446
  char[1] leftStatus; "Gap/break annotation for preceding block"
448
447
  char[1] rightStatus; "Gap/break annotation for following block"
449
- )`},Symbol.toStringTag,{value:"Module"}))).map(([t,e])=>[t,sE.parse(e.trim())]));function Vg(t){const e=["uint","int","float","long"];return{...t,fields:t.fields.map(n=>({...n,isArray:n.size&&n.type!=="char",arrayIsNumeric:n.size&&e.includes(n.type),isNumeric:!n.size&&e.includes(n.type)}))}}const Mz={".":0,"-":-1,"+":1};function Tz(t){var e;return t.length>=12&&!Number.isNaN(parseInt(t[9],10))&&((e=t[10])===null||e===void 0?void 0:e.split(",").filter(n=>!!n).length)===parseInt(t[9],10)}class Nz{constructor(e={}){if(e.autoSql)this.autoSql=Vg(Iz.parse(e.autoSql));else if(e.type){if(!Qg[e.type])throw new Error("Type not found");this.autoSql=Vg(Qg[e.type])}else this.autoSql=Vg(Qg.defaultBedSchema),this.attemptDefaultBed=!0}parseLine(e,n={}){const{autoSql:r}=this,{uniqueId:i}=n,a=Array.isArray(e)?e:e.split(" ");let o={};if(!this.attemptDefaultBed||this.attemptDefaultBed&&Tz(a))for(let s=0;s<r.fields.length;s++){const f=r.fields[s];let u=a[s];const{isNumeric:l,isArray:c,arrayIsNumeric:h,name:d}=f;if(u==null)break;if(u!=="."){if(l){const g=Number(u);u=Number.isNaN(g)?u:g}else c&&(u=u.split(","),u[u.length-1]===""&&u.pop(),h&&(u=u.map(g=>Number(g))));o[d]=u}}else{const s=["chrom","chromStart","chromEnd","name"];o=Object.fromEntries(a.map((f,u)=>[s[u]||"field"+u,f])),o.chromStart=+o.chromStart,o.chromEnd=+o.chromEnd,Number.isNaN(Number.parseFloat(o.field4))||(o.score=+o.field4,delete o.field4),(o.field5==="+"||o.field5==="-")&&(o.strand=o.field5,delete o.field5)}return i&&(o.uniqueId=i),o.strand=Mz[o.strand]||0,o.chrom=decodeURIComponent(o.chrom),o}}class Fz extends vu(ra){constructor(n,r){const i={channel:"x",windowSize:1e6,...n};super(r,i.channel);an(this,"lastRequestId",0);an(this,"parser");if(this.params=i,!this.params.url)throw new Error("No URL provided for BigBedSource");this.bbi=new Ez({filehandle:new nr(Au(this.params.url,this.view.getBaseUrl()))}),this.doDebouncedRequest=Ec(this.doRequest.bind(this),200,!1),this.headerPromise=this.bbi.getHeader(),this.headerPromise.then(a=>{this.parser=new Nz({autoSql:a.autoSql})})}async onDomainChanged(n){const r=this.params.windowSize;if(n[1]-n[0]>r)return;const i=this.quantizeInterval(n,r);this.checkAndUpdateLastInterval(i)&&this.doDebouncedRequest(i)}async doRequest(n){const r=await this.getFeatures(n);r.requestId<this.lastRequestId||this.publishData(r.features)}async getFeatures(n){let r=++this.lastRequestId;const i=new AbortController,a=this.genome.continuousToDiscreteChromosomeIntervals(n),o=await Promise.all(a.map(s=>this.bbi.getFeatures(s.chrom,s.startPos,s.endPos,{signal:i.signal}).then(f=>f.map(u=>this.parser.parseLine(`${s.chrom} ${u.start} ${u.end} ${u.rest}`,{uniqueId:u.uniqueId})))));return{requestId:r,abort:()=>i.abort(),features:o.flat()}}}var kz=Re,yn=null;try{yn=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch{}function Re(t,e,n){this.low=t|0,this.high=e|0,this.unsigned=!!n}Re.prototype.__isLong__,Object.defineProperty(Re.prototype,"__isLong__",{value:!0});function Ht(t){return(t&&t.__isLong__)===!0}Re.isLong=Ht;var uE={},fE={};function Ea(t,e){var n,r,i;return e?(t>>>=0,(i=0<=t&&t<256)&&(r=fE[t],r)?r:(n=Oe(t,(t|0)<0?-1:0,!0),i&&(fE[t]=n),n)):(t|=0,(i=-128<=t&&t<128)&&(r=uE[t],r)?r:(n=Oe(t,t<0?-1:0,!1),i&&(uE[t]=n),n))}Re.fromInt=Ea;function wn(t,e){if(isNaN(t))return e?Sa:xn;if(e){if(t<0)return Sa;if(t>=cE)return mE}else{if(t<=-hE)return Qt;if(t+1>=hE)return pE}return t<0?wn(-t,e).neg():Oe(t%Ro|0,t/Ro|0,e)}Re.fromNumber=wn;function Oe(t,e,n){return new Re(t,e,n)}Re.fromBits=Oe;var Sc=Math.pow;function qg(t,e,n){if(t.length===0)throw Error("empty string");if(t==="NaN"||t==="Infinity"||t==="+Infinity"||t==="-Infinity")return xn;if(typeof e=="number"?(n=e,e=!1):e=!!e,n=n||10,n<2||36<n)throw RangeError("radix");var r;if((r=t.indexOf("-"))>0)throw Error("interior hyphen");if(r===0)return qg(t.substring(1),e,n).neg();for(var i=wn(Sc(n,8)),a=xn,o=0;o<t.length;o+=8){var s=Math.min(8,t.length-o),f=parseInt(t.substring(o,o+s),n);if(s<8){var u=wn(Sc(n,s));a=a.mul(u).add(wn(f))}else a=a.mul(i),a=a.add(wn(f))}return a.unsigned=e,a}Re.fromString=qg;function jn(t,e){return typeof t=="number"?wn(t,e):typeof t=="string"?qg(t,e):Oe(t.low,t.high,typeof e=="boolean"?e:t.unsigned)}Re.fromValue=jn;var lE=65536,Bz=1<<24,Ro=lE*lE,cE=Ro*Ro,hE=cE/2,dE=Ea(Bz),xn=Ea(0);Re.ZERO=xn;var Sa=Ea(0,!0);Re.UZERO=Sa;var Oo=Ea(1);Re.ONE=Oo;var gE=Ea(1,!0);Re.UONE=gE;var Zg=Ea(-1);Re.NEG_ONE=Zg;var pE=Oe(-1,2147483647,!1);Re.MAX_VALUE=pE;var mE=Oe(-1,-1,!0);Re.MAX_UNSIGNED_VALUE=mE;var Qt=Oe(0,-2147483648,!1);Re.MIN_VALUE=Qt;var Y=Re.prototype;Y.toInt=function(){return this.unsigned?this.low>>>0:this.low},Y.toNumber=function(){return this.unsigned?(this.high>>>0)*Ro+(this.low>>>0):this.high*Ro+(this.low>>>0)},Y.toString=function(e){if(e=e||10,e<2||36<e)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative())if(this.eq(Qt)){var n=wn(e),r=this.div(n),i=r.mul(n).sub(this);return r.toString(e)+i.toInt().toString(e)}else return"-"+this.neg().toString(e);for(var a=wn(Sc(e,6),this.unsigned),o=this,s="";;){var f=o.div(a),u=o.sub(f.mul(a)).toInt()>>>0,l=u.toString(e);if(o=f,o.isZero())return l+s;for(;l.length<6;)l="0"+l;s=""+l+s}},Y.getHighBits=function(){return this.high},Y.getHighBitsUnsigned=function(){return this.high>>>0},Y.getLowBits=function(){return this.low},Y.getLowBitsUnsigned=function(){return this.low>>>0},Y.getNumBitsAbs=function(){if(this.isNegative())return this.eq(Qt)?64:this.neg().getNumBitsAbs();for(var e=this.high!=0?this.high:this.low,n=31;n>0&&!(e&1<<n);n--);return this.high!=0?n+33:n+1},Y.isZero=function(){return this.high===0&&this.low===0},Y.eqz=Y.isZero,Y.isNegative=function(){return!this.unsigned&&this.high<0},Y.isPositive=function(){return this.unsigned||this.high>=0},Y.isOdd=function(){return(this.low&1)===1},Y.isEven=function(){return(this.low&1)===0},Y.equals=function(e){return Ht(e)||(e=jn(e)),this.unsigned!==e.unsigned&&this.high>>>31===1&&e.high>>>31===1?!1:this.high===e.high&&this.low===e.low},Y.eq=Y.equals,Y.notEquals=function(e){return!this.eq(e)},Y.neq=Y.notEquals,Y.ne=Y.notEquals,Y.lessThan=function(e){return this.comp(e)<0},Y.lt=Y.lessThan,Y.lessThanOrEqual=function(e){return this.comp(e)<=0},Y.lte=Y.lessThanOrEqual,Y.le=Y.lessThanOrEqual,Y.greaterThan=function(e){return this.comp(e)>0},Y.gt=Y.greaterThan,Y.greaterThanOrEqual=function(e){return this.comp(e)>=0},Y.gte=Y.greaterThanOrEqual,Y.ge=Y.greaterThanOrEqual,Y.compare=function(e){if(Ht(e)||(e=jn(e)),this.eq(e))return 0;var n=this.isNegative(),r=e.isNegative();return n&&!r?-1:!n&&r?1:this.unsigned?e.high>>>0>this.high>>>0||e.high===this.high&&e.low>>>0>this.low>>>0?-1:1:this.sub(e).isNegative()?-1:1},Y.comp=Y.compare,Y.negate=function(){return!this.unsigned&&this.eq(Qt)?Qt:this.not().add(Oo)},Y.neg=Y.negate,Y.add=function(e){Ht(e)||(e=jn(e));var n=this.high>>>16,r=this.high&65535,i=this.low>>>16,a=this.low&65535,o=e.high>>>16,s=e.high&65535,f=e.low>>>16,u=e.low&65535,l=0,c=0,h=0,d=0;return d+=a+u,h+=d>>>16,d&=65535,h+=i+f,c+=h>>>16,h&=65535,c+=r+s,l+=c>>>16,c&=65535,l+=n+o,l&=65535,Oe(h<<16|d,l<<16|c,this.unsigned)},Y.subtract=function(e){return Ht(e)||(e=jn(e)),this.add(e.neg())},Y.sub=Y.subtract,Y.multiply=function(e){if(this.isZero())return xn;if(Ht(e)||(e=jn(e)),yn){var n=yn.mul(this.low,this.high,e.low,e.high);return Oe(n,yn.get_high(),this.unsigned)}if(e.isZero())return xn;if(this.eq(Qt))return e.isOdd()?Qt:xn;if(e.eq(Qt))return this.isOdd()?Qt:xn;if(this.isNegative())return e.isNegative()?this.neg().mul(e.neg()):this.neg().mul(e).neg();if(e.isNegative())return this.mul(e.neg()).neg();if(this.lt(dE)&&e.lt(dE))return wn(this.toNumber()*e.toNumber(),this.unsigned);var r=this.high>>>16,i=this.high&65535,a=this.low>>>16,o=this.low&65535,s=e.high>>>16,f=e.high&65535,u=e.low>>>16,l=e.low&65535,c=0,h=0,d=0,g=0;return g+=o*l,d+=g>>>16,g&=65535,d+=a*l,h+=d>>>16,d&=65535,d+=o*u,h+=d>>>16,d&=65535,h+=i*l,c+=h>>>16,h&=65535,h+=a*u,c+=h>>>16,h&=65535,h+=o*f,c+=h>>>16,h&=65535,c+=r*l+i*u+a*f+o*s,c&=65535,Oe(d<<16|g,c<<16|h,this.unsigned)},Y.mul=Y.multiply,Y.divide=function(e){if(Ht(e)||(e=jn(e)),e.isZero())throw Error("division by zero");if(yn){if(!this.unsigned&&this.high===-2147483648&&e.low===-1&&e.high===-1)return this;var n=(this.unsigned?yn.div_u:yn.div_s)(this.low,this.high,e.low,e.high);return Oe(n,yn.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?Sa:xn;var r,i,a;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return Sa;if(e.gt(this.shru(1)))return gE;a=Sa}else{if(this.eq(Qt)){if(e.eq(Oo)||e.eq(Zg))return Qt;if(e.eq(Qt))return Oo;var o=this.shr(1);return r=o.div(e).shl(1),r.eq(xn)?e.isNegative()?Oo:Zg:(i=this.sub(e.mul(r)),a=r.add(i.div(e)),a)}else if(e.eq(Qt))return this.unsigned?Sa:xn;if(this.isNegative())return e.isNegative()?this.neg().div(e.neg()):this.neg().div(e).neg();if(e.isNegative())return this.div(e.neg()).neg();a=xn}for(i=this;i.gte(e);){r=Math.max(1,Math.floor(i.toNumber()/e.toNumber()));for(var s=Math.ceil(Math.log(r)/Math.LN2),f=s<=48?1:Sc(2,s-48),u=wn(r),l=u.mul(e);l.isNegative()||l.gt(i);)r-=f,u=wn(r,this.unsigned),l=u.mul(e);u.isZero()&&(u=Oo),a=a.add(u),i=i.sub(l)}return a},Y.div=Y.divide,Y.modulo=function(e){if(Ht(e)||(e=jn(e)),yn){var n=(this.unsigned?yn.rem_u:yn.rem_s)(this.low,this.high,e.low,e.high);return Oe(n,yn.get_high(),this.unsigned)}return this.sub(this.div(e).mul(e))},Y.mod=Y.modulo,Y.rem=Y.modulo,Y.not=function(){return Oe(~this.low,~this.high,this.unsigned)},Y.and=function(e){return Ht(e)||(e=jn(e)),Oe(this.low&e.low,this.high&e.high,this.unsigned)},Y.or=function(e){return Ht(e)||(e=jn(e)),Oe(this.low|e.low,this.high|e.high,this.unsigned)},Y.xor=function(e){return Ht(e)||(e=jn(e)),Oe(this.low^e.low,this.high^e.high,this.unsigned)},Y.shiftLeft=function(e){return Ht(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?Oe(this.low<<e,this.high<<e|this.low>>>32-e,this.unsigned):Oe(0,this.low<<e-32,this.unsigned)},Y.shl=Y.shiftLeft,Y.shiftRight=function(e){return Ht(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?Oe(this.low>>>e|this.high<<32-e,this.high>>e,this.unsigned):Oe(this.high>>e-32,this.high>=0?0:-1,this.unsigned)},Y.shr=Y.shiftRight,Y.shiftRightUnsigned=function(e){if(Ht(e)&&(e=e.toInt()),e&=63,e===0)return this;var n=this.high;if(e<32){var r=this.low;return Oe(r>>>e|n<<32-e,n>>>e,this.unsigned)}else return e===32?Oe(n,0,this.unsigned):Oe(n>>>e-32,0,this.unsigned)},Y.shru=Y.shiftRightUnsigned,Y.shr_u=Y.shiftRightUnsigned,Y.toSigned=function(){return this.unsigned?Oe(this.low,this.high,!1):this},Y.toUnsigned=function(){return this.unsigned?this:Oe(this.low,this.high,!0)},Y.toBytes=function(e){return e?this.toBytesLE():this.toBytesBE()},Y.toBytesLE=function(){var e=this.high,n=this.low;return[n&255,n>>>8&255,n>>>16&255,n>>>24,e&255,e>>>8&255,e>>>16&255,e>>>24]},Y.toBytesBE=function(){var e=this.high,n=this.low;return[e>>>24,e>>>16&255,e>>>8&255,e&255,n>>>24,n>>>16&255,n>>>8&255,n&255]},Re.fromBytes=function(e,n,r){return r?Re.fromBytesLE(e,n):Re.fromBytesBE(e,n)},Re.fromBytesLE=function(e,n){return new Re(e[0]|e[1]<<8|e[2]<<16|e[3]<<24,e[4]|e[5]<<8|e[6]<<16|e[7]<<24,n)},Re.fromBytesBE=function(e,n){return new Re(e[4]<<24|e[5]<<16|e[6]<<8|e[7],e[0]<<24|e[1]<<16|e[2]<<8|e[3],n)};const bE=ia(kz);let yE=class{constructor(e,n){this.blockPosition=e,this.dataPosition=n}toString(){return`${this.blockPosition}:${this.dataPosition}`}compareTo(e){return this.blockPosition-e.blockPosition||this.dataPosition-e.dataPosition}static min(...e){let n,r=0;for(;!n;r+=1)n=e[r];for(;r<e.length;r+=1)n.compareTo(e[r])>0&&(n=e[r]);return n}};function zo(t,e=0,n=!1){if(n)throw new Error("big-endian virtual file offsets not implemented");return new yE(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])}let _c=class{constructor(e,n,r,i=void 0){this.minv=e,this.maxv=n,this.bin=r,this._fetchedSize=i}toUniqueString(){return`${this.minv}..${this.maxv} (bin ${this.bin}, fetchedSize ${this.fetchedSize()})`}toString(){return this.toUniqueString()}compareTo(e){return this.minv.compareTo(e.minv)||this.maxv.compareTo(e.maxv)||this.bin-e.bin}fetchedSize(){return this._fetchedSize!==void 0?this._fetchedSize:this.maxv.blockPosition+65536-this.minv.blockPosition}},wE=class{constructor({filehandle:e,renameRefSeq:n=r=>r}){this.filehandle=e,this.renameRefSeq=n}_findFirstData(e,n){const r=e.firstDataLine;r?e.firstDataLine=r.compareTo(n)>0?n:r:e.firstDataLine=n}async parse(e={}){return this.setupP||(this.setupP=this._parse(e).catch(n=>{throw this.setupP=void 0,n})),this.setupP}async hasRefSeq(e,n={}){return!!((await this.parse(n)).indices[e]||{}).binIndex}};function Lz(t){return new Promise(e=>setTimeout(e,t))}function xE(t){if(t.greaterThan(Number.MAX_SAFE_INTEGER)||t.lessThan(Number.MIN_SAFE_INTEGER))throw new Error("integer overflow");return t.toNumber()}function vE(t){if(t&&t.aborted){if(typeof DOMException<"u")throw new DOMException("aborted","AbortError");{const e=new Error("aborted");throw e.code="ERR_ABORTED",e}}}async function AE(t){await Promise.resolve(),vE(t)}function Rz(t,e){return e.minv.blockPosition-t.maxv.blockPosition<65e3&&e.maxv.blockPosition-t.minv.blockPosition<5e6}function Oz(t={}){return"aborted"in t?{signal:t}:t}function EE(t,e){const n=[];let r=null;return t.length===0?t:(t.sort((i,a)=>{const o=i.minv.blockPosition-a.minv.blockPosition;return o!==0?o:i.minv.dataPosition-a.minv.dataPosition}),t.forEach(i=>{(!e||i.maxv.compareTo(e)>0)&&(r===null?(n.push(i),r=i):Rz(r,i)?i.maxv.compareTo(r.maxv)>0&&(r.maxv=i.maxv):(n.push(i),r=i))}),n)}const zz=21578050;function Pz(t,e){return t-t%e}function Uz(t,e){return t-t%e+e}class Vu extends wE{parsePseudoBin(e,n){return{lineCount:xE(bE.fromBytesLE(Array.prototype.slice.call(e,n+16,n+24),!0))}}async lineCount(e,n={}){const i=(await this.parse(n)).indices[e];if(!i)return-1;const a=i.stats||{};return a.lineCount===void 0?-1:a.lineCount}fetchBai(e={}){return this.baiP||(this.baiP=this.filehandle.readFile(e).catch(n=>{throw this.baiP=void 0,n})),this.baiP}async _parse(){const e={bai:!0,maxBlockSize:65536},n=await this.fetchBai();if(n.readUInt32LE(0)!==zz)throw new Error("Not a BAI file");e.refCount=n.readInt32LE(4);const i=((1<<(5+1)*3)-1)/7;e.indices=new Array(e.refCount);let a=8;for(let o=0;o<e.refCount;o+=1){const s=n.readInt32LE(a);let f;a+=4;const u={};for(let h=0;h<s;h+=1){const d=n.readUInt32LE(a);if(a+=4,d===i+1)a+=4,f=this.parsePseudoBin(n,a),a+=32;else{if(d>i+1)throw new Error("bai index contains too many bins, please use CSI");{const g=n.readInt32LE(a);a+=4;const b=new Array(g);for(let y=0;y<g;y+=1){const w=zo(n,a),E=zo(n,a+8);a+=16,this._findFirstData(e,w),b[y]=new _c(w,E,d)}u[d]=b}}}const l=n.readInt32LE(a);a+=4;const c=new Array(l);for(let h=0;h<l;h+=1)c[h]=zo(n,a),a+=8,this._findFirstData(e,c[h]);e.indices[o]={binIndex:u,linearIndex:c,stats:f}}return e}async indexCov(e,n,r,i={}){const o=n!==void 0,f=(await this.parse(i)).indices[e];if(!f)return[];const{linearIndex:u=[],stats:l}=f;if(!u.length)return[];const c=r!==void 0?Uz(r,16384):(u.length-1)*16384,h=n!==void 0?Pz(n,16384):0;let d;o?d=new Array((c-h)/16384):d=new Array(u.length-1);const g=u[u.length-1].blockPosition;if(c>(u.length-1)*16384)throw new Error("query outside of range of linear index");let b=u[h/16384].blockPosition;for(let y=h/16384,w=0;y<c/16384;y++,w++)d[w]={score:u[y+1].blockPosition-b,start:y*16384,end:y*16384+16384},b=u[y+1].blockPosition;return d.map(y=>({...y,score:y.score*l.lineCount/g}))}reg2bins(e,n){return n-=1,[[0,0],[1+(e>>26),1+(n>>26)],[9+(e>>23),9+(n>>23)],[73+(e>>20),73+(n>>20)],[585+(e>>17),585+(n>>17)],[4681+(e>>14),4681+(n>>14)]]}async blocksForRange(e,n,r,i={}){n<0&&(n=0);const a=await this.parse(i);if(!a)return[];const o=a.indices[e];if(!o)return[];const s=this.reg2bins(n,r),f=[];for(const[d,g]of s)for(let b=d;b<=g;b++)if(o.binIndex[b]){const y=o.binIndex[b];for(let w=0;w<y.length;++w)f.push(new _c(y[w].minv,y[w].maxv,b))}const u=o.linearIndex.length;let l=null;const c=Math.min(n>>14,u-1),h=Math.min(r>>14,u-1);for(let d=c;d<=h;++d){const g=o.linearIndex[d];g&&(!l||g.compareTo(l)<0)&&(l=g)}return EE(f,l)}}const jz=21582659,Gz=38359875;function Hz(t,e){return t*2**e}function SE(t,e){return Math.floor(t/2**e)}let Yg=class extends wE{constructor(e){super(e),this.maxBinNumber=0,this.depth=0,this.minShift=0}async lineCount(e){const n=await this.parse();if(!n||!n.indices[e])return-1;const{stats:i}=n.indices[e];return i?i.lineCount:-1}async indexCov(){return[]}parseAuxData(e,n,r){if(r<30)return{};const i={};if(i.formatFlags=e.readInt32LE(n),i.coordinateType=i.formatFlags&65536?"zero-based-half-open":"1-based-closed",i.format={0:"generic",1:"SAM",2:"VCF"}[i.formatFlags&15],!i.format)throw new Error(`invalid Tabix preset format flags ${i.formatFlags}`);i.columnNumbers={ref:e.readInt32LE(n+4),start:e.readInt32LE(n+8),end:e.readInt32LE(n+12)},i.metaValue=e.readInt32LE(n+16),i.metaChar=i.metaValue?String.fromCharCode(i.metaValue):"",i.skipLines=e.readInt32LE(n+20);const a=e.readInt32LE(n+24);return Object.assign(i,this._parseNameBytes(e.subarray(n+28,n+28+a))),i}_parseNameBytes(e){let n=0,r=0;const i=[],a={};for(let o=0;o<e.length;o+=1)if(!e[o]){if(r<o){let s=e.toString("utf8",r,o);s=this.renameRefSeq(s),i[n]=s,a[s]=n}r=o+1,n+=1}return{refNameToId:a,refIdToName:i}}async _parse(e){const n={csi:!0,maxBlockSize:65536},r=await this.filehandle.readFile(e),i=await wo(r);if(i.readUInt32LE(0)===jz)n.csiVersion=1;else if(i.readUInt32LE(0)===Gz)n.csiVersion=2;else throw new Error("Not a CSI file");this.minShift=i.readInt32LE(4),this.depth=i.readInt32LE(8),this.maxBinNumber=((1<<(this.depth+1)*3)-1)/7;const a=i.readInt32LE(12);a&&Object.assign(n,this.parseAuxData(i,16,a)),n.refCount=i.readInt32LE(16+a),n.indices=new Array(n.refCount);let o=16+a+4;for(let s=0;s<n.refCount;s+=1){await AE(e.signal);const f=i.readInt32LE(o);o+=4;const u={};let l;for(let c=0;c<f;c+=1){const h=i.readUInt32LE(o);if(h>this.maxBinNumber)l=this.parsePseudoBin(i,o+4),o+=4+8+4+16+16;else{const d=zo(i,o+4);this._findFirstData(n,d);const g=i.readInt32LE(o+12);o+=16;const b=new Array(g);for(let y=0;y<g;y+=1){const w=zo(i,o),E=zo(i,o+8);o+=16,b[y]=new _c(w,E,h)}u[h]=b}}n.indices[s]={binIndex:u,stats:l}}return n}parsePseudoBin(e,n){return{lineCount:xE(bE.fromBytesLE(Array.prototype.slice.call(e,n+28,n+36),!0))}}async blocksForRange(e,n,r,i={}){n<0&&(n=0);const a=await this.parse(i),o=a==null?void 0:a.indices[e];if(!o)return[];const s=this.reg2bins(n,r),f=[];for(const[u,l]of s)for(let c=u;c<=l;c++)if(o.binIndex[c]){const h=o.binIndex[c];for(let d=0;d<h.length;++d)f.push(new _c(h[d].minv,h[d].maxv,c))}return EE(f,new yE(0,0))}reg2bins(e,n){e-=1,e<1&&(e=1),n>2**50&&(n=2**34),n-=1;let r=0,i=0,a=this.minShift+this.depth*3;const o=[];for(;r<=this.depth;a-=3,i+=Hz(1,r*3),r+=1){const s=i+SE(e,a),f=i+SE(n,a);if(f-s+o.length>this.maxBinNumber)throw new Error(`query ${e}-${n} is too large for current binning scheme (shift ${this.minShift}, depth ${this.depth}), try a smaller query or a coarser index binning scheme`);o.push([s,f])}return o}};var vi=bt.Buffer,Wg=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];typeof Int32Array<"u"&&(Wg=new Int32Array(Wg));function _E(t){if(vi.isBuffer(t))return t;var e=typeof vi.alloc=="function"&&typeof vi.from=="function";if(typeof t=="number")return e?vi.alloc(t):new vi(t);if(typeof t=="string")return e?vi.from(t):new vi(t);throw new Error("input must be buffer, number, or string, received "+typeof t)}function Qz(t){var e=_E(4);return e.writeInt32BE(t,0),e}function Xg(t,e){t=_E(t),vi.isBuffer(e)&&(e=e.readUInt32BE(0));for(var n=~~e^-1,r=0;r<t.length;r++)n=Wg[(n^t[r])&255]^n>>>8;return n^-1}function $g(){return Qz(Xg.apply(null,arguments))}$g.signed=function(){return Xg.apply(null,arguments)},$g.unsigned=function(){return Xg.apply(null,arguments)>>>0};var Vz=$g;const qz=ia(Vz);var Kg,CE;function Zz(){if(CE)return Kg;CE=1;var t=function(r,i){return Object.prototype.hasOwnProperty.call(r,i)},e=function(r,i){return Object.prototype.propertyIsEnumerable.call(r,i)};function n(r){if(r==null)throw new TypeError("Cannot convert undefined or null to object");var i=[];for(var a in r)t(r,a)&&e(r,a)&&i.push([a,r[a]]);return i}return Kg=n,Kg}var Yz=typeof Object.entries=="function"?Object.entries:Zz();const Wz=ia(Yz);class Xz{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=e.maxSize,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(e,n){this.cache.set(e,n),this._size++,this._size>=this.maxSize&&(this._size=0,this.oldCache=this.cache,this.cache=new Map)}get(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e)){const n=this.oldCache.get(e);return this._set(e,n),n}}set(e,n){return this.cache.has(e)?this.cache.set(e,n):this._set(e,n),this}has(e){return this.cache.has(e)||this.oldCache.has(e)}peek(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e))return this.oldCache.get(e)}delete(e){const n=this.cache.delete(e);return n&&this._size--,this.oldCache.delete(e)||n}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(const[e]of this)yield e}*values(){for(const[,e]of this)yield e}*[Symbol.iterator](){for(const e of this.cache)yield e;for(const e of this.oldCache){const[n]=e;this.cache.has(n)||(yield e)}}get size(){let e=0;for(const n of this.oldCache.keys())this.cache.has(n)||e++;return this._size+e}}var $z=Xz;const Kz=ia($z),vn={BAM_FPAIRED:1,BAM_FPROPER_PAIR:2,BAM_FUNMAP:4,BAM_FMUNMAP:8,BAM_FREVERSE:16,BAM_FMREVERSE:32,BAM_FREAD1:64,BAM_FREAD2:128,BAM_FSECONDARY:256,BAM_FQCFAIL:512,BAM_FDUP:1024,BAM_FSUPPLEMENTARY:2048},DE="=ACMGRSVTWYHKDBN".split(""),qu="MIDNSHP=X???????".split("");class Jz{constructor(e){this.data={},this._tagList=[],this._allTagsParsed=!1;const{bytes:n,fileOffset:r}=e,{byteArray:i,start:a}=n;this.data={},this.bytes=n,this._id=r,this._refID=i.readInt32LE(a+4),this.data.start=i.readInt32LE(a+8),this.flags=(i.readInt32LE(a+16)&4294901760)>>16}get(e){return this[e]?this.data[e]?this.data[e]:(this.data[e]=this[e](),this.data[e]):this._get(e.toLowerCase())}end(){return this.get("start")+this.get("length_on_ref")}seq_id(){return this._refID}_get(e){return e in this.data?this.data[e]:(this.data[e]=this._parseTag(e),this.data[e])}_tags(){this._parseAllTags();let e=["seq"];this.isSegmentUnmapped()||e.push("start","end","strand","score","qual","MQ","CIGAR","length_on_ref","template_length"),this.isPaired()&&e.push("next_segment_position","pair_orientation"),e=e.concat(this._tagList||[]),Object.keys(this.data).forEach(r=>{r[0]!=="_"&&r!=="next_seq_id"&&e.push(r)});const n={};return e.filter(r=>{if(r in this.data&&this.data[r]===void 0||r==="CG"||r==="cg")return!1;const i=r.toLowerCase(),a=n[i];return n[i]=!0,!a})}parent(){}children(){return this.get("subfeatures")}id(){return this._id}mq(){const e=(this.get("_bin_mq_nl")&65280)>>8;return e===255?void 0:e}score(){return this.get("mq")}qual(){var e;return(e=this.qualRaw())===null||e===void 0?void 0:e.join(" ")}qualRaw(){if(this.isSegmentUnmapped())return;const{start:e,byteArray:n}=this.bytes,r=e+36+this.get("_l_read_name")+this.get("_n_cigar_op")*4+this.get("_seq_bytes"),i=this.get("seq_length");return n.subarray(r,r+i)}strand(){return this.isReverseComplemented()?-1:1}multi_segment_next_segment_strand(){if(!this.isMateUnmapped())return this.isMateReverseComplemented()?-1:1}name(){return this.get("_read_name")}_read_name(){const e=this.get("_l_read_name"),{byteArray:n,start:r}=this.bytes;return n.toString("ascii",r+36,r+36+e-1)}_parseTag(e){if(this._allTagsParsed)return;const{byteArray:n,start:r}=this.bytes;let i=this._tagOffset||r+36+this.get("_l_read_name")+this.get("_n_cigar_op")*4+this.get("_seq_bytes")+this.get("seq_length");const a=this.bytes.end;let o;for(;i<a&&o!==e;){const s=String.fromCharCode(n[i],n[i+1]);o=s.toLowerCase();const f=String.fromCharCode(n[i+2]);i+=3;let u;switch(f){case"A":u=String.fromCharCode(n[i]),i+=1;break;case"i":u=n.readInt32LE(i),i+=4;break;case"I":u=n.readUInt32LE(i),i+=4;break;case"c":u=n.readInt8(i),i+=1;break;case"C":u=n.readUInt8(i),i+=1;break;case"s":u=n.readInt16LE(i),i+=2;break;case"S":u=n.readUInt16LE(i),i+=2;break;case"f":u=n.readFloatLE(i),i+=4;break;case"Z":case"H":for(u="";i<=a;){const l=n[i++];if(l===0)break;u+=String.fromCharCode(l)}break;case"B":{u="";const l=n[i++],c=String.fromCharCode(l),h=n.readInt32LE(i);if(i+=4,c==="i")if(s==="CG")for(let d=0;d<h;d++){const g=n.readInt32LE(i),b=g>>4,y=qu[g&15];u+=b+y,i+=4}else for(let d=0;d<h;d++)u+=n.readInt32LE(i),d+1<h&&(u+=","),i+=4;if(c==="I")if(s==="CG")for(let d=0;d<h;d++){const g=n.readUInt32LE(i),b=g>>4,y=qu[g&15];u+=b+y,i+=4}else for(let d=0;d<h;d++)u+=n.readUInt32LE(i),d+1<h&&(u+=","),i+=4;if(c==="s")for(let d=0;d<h;d++)u+=n.readInt16LE(i),d+1<h&&(u+=","),i+=2;if(c==="S")for(let d=0;d<h;d++)u+=n.readUInt16LE(i),d+1<h&&(u+=","),i+=2;if(c==="c")for(let d=0;d<h;d++)u+=n.readInt8(i),d+1<h&&(u+=","),i+=1;if(c==="C")for(let d=0;d<h;d++)u+=n.readUInt8(i),d+1<h&&(u+=","),i+=1;if(c==="f")for(let d=0;d<h;d++)u+=n.readFloatLE(i),d+1<h&&(u+=","),i+=4;break}default:console.warn(`Unknown BAM tag type '${f}', tags may be incomplete`),u=void 0,i=a}if(this._tagOffset=i,this._tagList.push(s),o===e)return u;this.data[o]=u}this._allTagsParsed=!0}_parseAllTags(){this._parseTag("")}_parseCigar(e){return e.match(/\d+\D/g).map(n=>[n.match(/\D/)[0].toUpperCase(),parseInt(n,10)])}isPaired(){return!!(this.flags&vn.BAM_FPAIRED)}isProperlyPaired(){return!!(this.flags&vn.BAM_FPROPER_PAIR)}isSegmentUnmapped(){return!!(this.flags&vn.BAM_FUNMAP)}isMateUnmapped(){return!!(this.flags&vn.BAM_FMUNMAP)}isReverseComplemented(){return!!(this.flags&vn.BAM_FREVERSE)}isMateReverseComplemented(){return!!(this.flags&vn.BAM_FMREVERSE)}isRead1(){return!!(this.flags&vn.BAM_FREAD1)}isRead2(){return!!(this.flags&vn.BAM_FREAD2)}isSecondary(){return!!(this.flags&vn.BAM_FSECONDARY)}isFailedQc(){return!!(this.flags&vn.BAM_FQCFAIL)}isDuplicate(){return!!(this.flags&vn.BAM_FDUP)}isSupplementary(){return!!(this.flags&vn.BAM_FSUPPLEMENTARY)}cigar(){if(this.isSegmentUnmapped())return;const{byteArray:e,start:n}=this.bytes,r=this.get("_n_cigar_op");let i=n+36+this.get("_l_read_name");const a=this.get("seq_length");let o="",s=0,f=e.readInt32LE(i),u=f>>4,l=qu[f&15];if(l==="S"&&u===a)return i+=4,f=e.readInt32LE(i),u=f>>4,l=qu[f&15],l!=="N"&&console.warn("CG tag with no N tag"),this.data.length_on_ref=u,this.get("CG");for(let c=0;c<r;++c)f=e.readInt32LE(i),u=f>>4,l=qu[f&15],o+=u+l,l!=="H"&&l!=="S"&&l!=="I"&&(s+=u),i+=4;return this.data.length_on_ref=s,o}_flags(){}length_on_ref(){return this.data.length_on_ref?this.data.length_on_ref:(this.get("cigar"),this.data.length_on_ref)}_n_cigar_op(){return this.get("_flag_nc")&65535}_l_read_name(){return this.get("_bin_mq_nl")&255}_seq_bytes(){return this.get("seq_length")+1>>1}getReadBases(){return this.seq()}seq(){const{byteArray:e,start:n}=this.bytes,r=n+36+this.get("_l_read_name")+this.get("_n_cigar_op")*4,i=this.get("_seq_bytes"),a=this.get("seq_length");let o="",s=0;for(let f=0;f<i;++f){const u=e[r+f];o+=DE[(u&240)>>4],s++,s<a&&(o+=DE[u&15],s++)}return o}getPairOrientation(){if(!this.isSegmentUnmapped()&&!this.isMateUnmapped()&&this._refID===this._next_refid()){const e=this.isReverseComplemented()?"R":"F",n=this.isMateReverseComplemented()?"R":"F";let r=" ",i=" ";this.isRead1()?(r="1",i="2"):this.isRead2()&&(r="2",i="1");const a=[];return this.template_length()>0?(a[0]=e,a[1]=r,a[2]=n,a[3]=i):(a[2]=e,a[3]=r,a[0]=n,a[1]=i),a.join("")}return null}_bin_mq_nl(){return this.bytes.byteArray.readInt32LE(this.bytes.start+12)}_flag_nc(){return this.bytes.byteArray.readInt32LE(this.bytes.start+16)}seq_length(){return this.bytes.byteArray.readInt32LE(this.bytes.start+20)}_next_refid(){return this.bytes.byteArray.readInt32LE(this.bytes.start+24)}_next_pos(){return this.bytes.byteArray.readInt32LE(this.bytes.start+28)}template_length(){return this.bytes.byteArray.readInt32LE(this.bytes.start+32)}toJSON(){const e={};return Object.keys(this).forEach(n=>{n.charAt(0)==="_"||n==="bytes"||(e[n]=this[n])}),e}}function eP(t){const e=t.split(/\r?\n/),n=[];return e.forEach(r=>{const[i,...a]=r.split(/\t/),o=a.map(s=>{const[f,u]=s.split(":",2);return{tag:f,value:u}});i&&n.push({tag:i.substr(1),data:o})}),n}const tP=21840194,Jg=65536;function ep(t){return[].concat(...t)}async function nP(t){const e=[];for await(const n of t)e.push(n);return e}class rP{constructor({bamFilehandle:e,bamPath:n,bamUrl:r,baiPath:i,baiFilehandle:a,baiUrl:o,csiPath:s,csiFilehandle:f,csiUrl:u,fetchSizeLimit:l,chunkSizeLimit:c,yieldThreadTime:h=100,renameRefSeqs:d=g=>g}){if(this.featureCache=new ac({cache:new Kz({maxSize:50}),fill:async({chunk:g,opts:b},y)=>{const{data:w,cpositions:E,dpositions:_}=await this._readChunk({chunk:g,opts:{...b,signal:y}});return await this.readBamFeatures(w,E,_,g)}}),this.renameRefSeq=d,e)this.bam=e;else if(n)this.bam=new Jt(n);else if(r)this.bam=new nr(r);else throw new Error("unable to initialize bam");if(f)this.index=new Yg({filehandle:f});else if(s)this.index=new Yg({filehandle:new Jt(s)});else if(u)this.index=new Yg({filehandle:new nr(u)});else if(a)this.index=new Vu({filehandle:a});else if(i)this.index=new Vu({filehandle:new Jt(i)});else if(o)this.index=new Vu({filehandle:new nr(o)});else if(n)this.index=new Vu({filehandle:new Jt(`${n}.bai`)});else if(r)this.index=new Vu({filehandle:new nr(`${r}.bai`)});else throw new Error("unable to infer index format");this.fetchSizeLimit=l||5e8,this.chunkSizeLimit=c||3e8,this.yieldThreadTime=h}async getHeader(e={}){const n=Oz(e),r=await this.index.parse(n),i=r.firstDataLine?r.firstDataLine.blockPosition+65535:void 0;let a;if(i){const l=await this.bam.read(Buffer.alloc(i+Jg),0,i+Jg,0,n),{bytesRead:c}=l;if({buffer:a}=l,!c)throw new Error("Error reading header");c<i?a=a.subarray(0,c):a=a.subarray(0,i)}else a=await this.bam.readFile(n);const o=await wo(a);if(o.readInt32LE(0)!==tP)throw new Error("Not a BAM file");const s=o.readInt32LE(4);this.header=o.toString("utf8",8,8+s);const{chrToIndex:f,indexToChr:u}=await this._readRefSeqs(s+8,65535,n);return this.chrToIndex=f,this.indexToChr=u,eP(this.header)}async getHeaderText(e={}){return await this.getHeader(e),this.header}async _readRefSeqs(e,n,r={}){if(e>n)return this._readRefSeqs(e,n*2,r);const i=n+Jg,{bytesRead:a,buffer:o}=await this.bam.read(Buffer.alloc(i),0,n,0,r);if(!a)throw new Error("Error reading refseqs from header");const s=await wo(o.subarray(0,Math.min(a,n))),f=s.readInt32LE(e);let u=e+4;const l={},c=[];for(let h=0;h<f;h+=1){const d=s.readInt32LE(u),g=this.renameRefSeq(s.toString("utf8",u+4,u+4+d-1)),b=s.readInt32LE(u+d+4);if(l[g]=h,c.push({refName:g,length:b}),u=u+8+d,u>s.length)return console.warn(`BAM header is very big. Re-fetching ${n} bytes.`),this._readRefSeqs(e,n*2,r)}return{chrToIndex:l,indexToChr:c}}async getRecordsForRange(e,n,r,i={viewAsPairs:!1,pairAcrossChr:!1,maxInsertSize:2e5}){return ep(await nP(this.streamRecordsForRange(e,n,r,i)))}async*streamRecordsForRange(e,n,r,i={}){const{signal:a}=i,o=this.chrToIndex&&this.chrToIndex[e];let s;if(!(o>=0))s=[];else if(s=await this.index.blocksForRange(o,n-1,r,i),!s)throw new Error("Error in index fetch");for(let u=0;u<s.length;u+=1){await AE(a);const l=s[u].fetchedSize();if(l>this.chunkSizeLimit)throw new Error(`Too many BAM features. BAM chunk size ${l} bytes exceeds chunkSizeLimit of ${this.chunkSizeLimit}`)}const f=s.map(u=>u.fetchedSize()).reduce((u,l)=>u+l,0);if(f>this.fetchSizeLimit)throw new Error(`data size of ${f.toLocaleString()} bytes exceeded fetch size limit of ${this.fetchSizeLimit.toLocaleString()} bytes`);yield*this._fetchChunkFeatures(s,o,n,r,i)}async*_fetchChunkFeatures(e,n,r,i,a){const{viewAsPairs:o=!1}=a,s=[];let f=!1;for(let u=0;u<e.length;u++){const l=e[u],c=await this.featureCache.get(l.toString(),{chunk:l,opts:a},a.signal),h=[];for(let d=0;d<c.length;d+=1){const g=c[d];if(g.seq_id()===n)if(g.get("start")>=i){f=!0;break}else g.get("end")>=r&&h.push(g)}if(s.push(h),yield h,f)break}vE(a.signal),o&&(yield this.fetchPairs(n,s,a))}async fetchPairs(e,n,r){const{pairAcrossChr:i=!1,maxInsertSize:a=2e5}=r,o={},s={};n.map(h=>{const d={};for(let g=0;g<h.length;g++){const b=h[g].name(),y=h[g].id();d[b]||(d[b]=0),d[b]++,s[y]=1}Wz(d).forEach(([g,b])=>{b===1&&(o[g]=!0)})});const f=[];n.map(h=>{for(let d=0;d<h.length;d++){const g=h[d],b=g.name(),y=g.get("start"),w=g._next_pos(),E=g._next_refid();o[b]&&(i||E===e&&Math.abs(y-w)<a)&&f.push(this.index.blocksForRange(E,w,w+1,r))}});const u=ep(await Promise.all(f)).sort().filter((h,d,g)=>!d||h.toString()!==g[d-1].toString()),l=u.map(h=>h.fetchedSize()).reduce((h,d)=>h+d,0);if(l>this.fetchSizeLimit)throw new Error(`data size of ${l.toLocaleString()} bytes exceeded fetch size limit of ${this.fetchSizeLimit.toLocaleString()} bytes`);const c=u.map(async h=>{const{data:d,cpositions:g,dpositions:b,chunk:y}=await this._readChunk({chunk:h,opts:r}),w=await this.readBamFeatures(d,g,b,y),E=[];for(let _=0;_<w.length;_+=1){const D=w[_];o[D.get("name")]&&!s[D.id()]&&E.push(D)}return E});return ep(await Promise.all(c))}async _readChunk({chunk:e,opts:n}){const r=e.fetchedSize(),{buffer:i,bytesRead:a}=await this.bam.read(Buffer.alloc(r),0,r,e.minv.blockPosition,n),{buffer:o,cpositions:s,dpositions:f}=await Q2(i.subarray(0,Math.min(a,r)),e);return{data:o,cpositions:s,dpositions:f,chunk:e}}async readBamFeatures(e,n,r,i){let a=0;const o=[];let s=0,f=+Date.now();for(;a+4<e.length;){const u=e.readInt32LE(a),l=a+4+u-1;if(r){for(;a+i.minv.dataPosition>=r[s++];);s--}if(l<e.length){const c=new Jz({bytes:{byteArray:e,start:a,end:l},fileOffset:n?n[s]*256+(a-r[s])+i.minv.dataPosition+1:qz.signed(e.slice(a,l))});o.push(c),this.yieldThreadTime&&+Date.now()-f>this.yieldThreadTime&&(await Lz(1),f=+Date.now())}a=l+1}return o}async hasRefSeq(e){const n=this.chrToIndex&&this.chrToIndex[e];return this.index.hasRefSeq(n)}async lineCount(e){const n=this.chrToIndex&&this.chrToIndex[e];return this.index.lineCount(n)}async indexCov(e,n,r){await this.index.parse();const i=this.chrToIndex&&this.chrToIndex[e];return this.index.indexCov(i,n,r)}async blocksForRange(e,n,r,i){await this.index.parse();const a=this.chrToIndex&&this.chrToIndex[e];return this.index.blocksForRange(a,n,r,i)}}(function(){(function(t){(function(e){var n={searchParams:"URLSearchParams"in t,iterable:"Symbol"in t&&"iterator"in Symbol,blob:"FileReader"in t&&"Blob"in t&&function(){try{return new Blob,!0}catch{return!1}}(),formData:"FormData"in t,arrayBuffer:"ArrayBuffer"in t};function r(C){return C&&DataView.prototype.isPrototypeOf(C)}if(n.arrayBuffer)var i=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],a=ArrayBuffer.isView||function(C){return C&&i.indexOf(Object.prototype.toString.call(C))>-1};function o(C){if(typeof C!="string"&&(C=String(C)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(C))throw new TypeError("Invalid character in header field name");return C.toLowerCase()}function s(C){return typeof C!="string"&&(C=String(C)),C}function f(C){var B={next:function(){var L=C.shift();return{done:L===void 0,value:L}}};return n.iterable&&(B[Symbol.iterator]=function(){return B}),B}function u(C){this.map={},C instanceof u?C.forEach(function(B,L){this.append(L,B)},this):Array.isArray(C)?C.forEach(function(B){this.append(B[0],B[1])},this):C&&Object.getOwnPropertyNames(C).forEach(function(B){this.append(B,C[B])},this)}u.prototype.append=function(C,B){C=o(C),B=s(B);var L=this.map[C];this.map[C]=L?L+", "+B:B},u.prototype.delete=function(C){delete this.map[o(C)]},u.prototype.get=function(C){return C=o(C),this.has(C)?this.map[C]:null},u.prototype.has=function(C){return this.map.hasOwnProperty(o(C))},u.prototype.set=function(C,B){this.map[o(C)]=s(B)},u.prototype.forEach=function(C,B){for(var L in this.map)this.map.hasOwnProperty(L)&&C.call(B,this.map[L],L,this)},u.prototype.keys=function(){var C=[];return this.forEach(function(B,L){C.push(L)}),f(C)},u.prototype.values=function(){var C=[];return this.forEach(function(B){C.push(B)}),f(C)},u.prototype.entries=function(){var C=[];return this.forEach(function(B,L){C.push([L,B])}),f(C)},n.iterable&&(u.prototype[Symbol.iterator]=u.prototype.entries);function l(C){if(C.bodyUsed)return Promise.reject(new TypeError("Already read"));C.bodyUsed=!0}function c(C){return new Promise(function(B,L){C.onload=function(){B(C.result)},C.onerror=function(){L(C.error)}})}function h(C){var B=new FileReader,L=c(B);return B.readAsArrayBuffer(C),L}function d(C){var B=new FileReader,L=c(B);return B.readAsText(C),L}function g(C){for(var B=new Uint8Array(C),L=new Array(B.length),ee=0;ee<B.length;ee++)L[ee]=String.fromCharCode(B[ee]);return L.join("")}function b(C){if(C.slice)return C.slice(0);var B=new Uint8Array(C.byteLength);return B.set(new Uint8Array(C)),B.buffer}function y(){return this.bodyUsed=!1,this._initBody=function(C){this._bodyInit=C,C?typeof C=="string"?this._bodyText=C:n.blob&&Blob.prototype.isPrototypeOf(C)?this._bodyBlob=C:n.formData&&FormData.prototype.isPrototypeOf(C)?this._bodyFormData=C:n.searchParams&&URLSearchParams.prototype.isPrototypeOf(C)?this._bodyText=C.toString():n.arrayBuffer&&n.blob&&r(C)?(this._bodyArrayBuffer=b(C.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):n.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(C)||a(C))?this._bodyArrayBuffer=b(C):this._bodyText=C=Object.prototype.toString.call(C):this._bodyText="",this.headers.get("content-type")||(typeof C=="string"?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):n.searchParams&&URLSearchParams.prototype.isPrototypeOf(C)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},n.blob&&(this.blob=function(){var C=l(this);if(C)return C;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?l(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(h)}),this.text=function(){var C=l(this);if(C)return C;if(this._bodyBlob)return d(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(g(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},n.formData&&(this.formData=function(){return this.text().then(D)}),this.json=function(){return this.text().then(JSON.parse)},this}var w=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];function E(C){var B=C.toUpperCase();return w.indexOf(B)>-1?B:C}function _(C,B){B=B||{};var L=B.body;if(C instanceof _){if(C.bodyUsed)throw new TypeError("Already read");this.url=C.url,this.credentials=C.credentials,B.headers||(this.headers=new u(C.headers)),this.method=C.method,this.mode=C.mode,this.signal=C.signal,!L&&C._bodyInit!=null&&(L=C._bodyInit,C.bodyUsed=!0)}else this.url=String(C);if(this.credentials=B.credentials||this.credentials||"same-origin",(B.headers||!this.headers)&&(this.headers=new u(B.headers)),this.method=E(B.method||this.method||"GET"),this.mode=B.mode||this.mode||null,this.signal=B.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&L)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(L)}_.prototype.clone=function(){return new _(this,{body:this._bodyInit})};function D(C){var B=new FormData;return C.trim().split("&").forEach(function(L){if(L){var ee=L.split("="),ne=ee.shift().replace(/\+/g," "),J=ee.join("=").replace(/\+/g," ");B.append(decodeURIComponent(ne),decodeURIComponent(J))}}),B}function T(C){var B=new u,L=C.replace(/\r?\n[\t ]+/g," ");return L.split(/\r?\n/).forEach(function(ee){var ne=ee.split(":"),J=ne.shift().trim();if(J){var be=ne.join(":").trim();B.append(J,be)}}),B}y.call(_.prototype);function N(C,B){B||(B={}),this.type="default",this.status=B.status===void 0?200:B.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in B?B.statusText:"OK",this.headers=new u(B.headers),this.url=B.url||"",this._initBody(C)}y.call(N.prototype),N.prototype.clone=function(){return new N(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new u(this.headers),url:this.url})},N.error=function(){var C=new N(null,{status:0,statusText:""});return C.type="error",C};var M=[301,302,303,307,308];N.redirect=function(C,B){if(M.indexOf(B)===-1)throw new RangeError("Invalid status code");return new N(null,{status:B,headers:{location:C}})},e.DOMException=t.DOMException;try{new e.DOMException}catch{e.DOMException=function(B,L){this.message=B,this.name=L;var ee=Error(B);this.stack=ee.stack},e.DOMException.prototype=Object.create(Error.prototype),e.DOMException.prototype.constructor=e.DOMException}function R(C,B){return new Promise(function(L,ee){var ne=new _(C,B);if(ne.signal&&ne.signal.aborted)return ee(new e.DOMException("Aborted","AbortError"));var J=new XMLHttpRequest;function be(){J.abort()}J.onload=function(){var Se={status:J.status,statusText:J.statusText,headers:T(J.getAllResponseHeaders()||"")};Se.url="responseURL"in J?J.responseURL:Se.headers.get("X-Request-URL");var Te="response"in J?J.response:J.responseText;L(new N(Te,Se))},J.onerror=function(){ee(new TypeError("Network request failed"))},J.ontimeout=function(){ee(new TypeError("Network request failed"))},J.onabort=function(){ee(new e.DOMException("Aborted","AbortError"))},J.open(ne.method,ne.url,!0),ne.credentials==="include"?J.withCredentials=!0:ne.credentials==="omit"&&(J.withCredentials=!1),"responseType"in J&&n.blob&&(J.responseType="blob"),ne.headers.forEach(function(Se,Te){J.setRequestHeader(Te,Se)}),ne.signal&&(ne.signal.addEventListener("abort",be),J.onreadystatechange=function(){J.readyState===4&&ne.signal.removeEventListener("abort",be)}),J.send(typeof ne._bodyInit>"u"?null:ne._bodyInit)})}return R.polyfill=!0,t.fetch||(t.fetch=R,t.Headers=u,t.Request=_,t.Response=N),e.Headers=u,e.Request=_,e.Response=N,e.fetch=R,Object.defineProperty(e,"__esModule",{value:!0}),e})({})})(typeof self<"u"?self:iu)})();class iP extends vu(ra){constructor(n,r){const i={channel:"x",windowSize:2e4,...n};super(r,i.channel);an(this,"lastRequestId",0);an(this,"chrPrefixFixer",n=>n);if(this.params=i,!this.params.url)throw new Error("No URL provided for BamSource");const a=o=>new nr(Au(o,this.view.getBaseUrl()));this.bam=new rP({bamFilehandle:a(this.params.url),baiFilehandle:a(this.params.indexUrl??this.params.url+".bai")}),this.headerPromise=this.bam.getHeader(),this.headerPromise.then(o=>{var u,l;const s=this.genome.hasChrPrefix(),f=(l=(u=this.bam.indexToChr)==null?void 0:u[0])==null?void 0:l.refName.startsWith("chr");s&&!f?this.chrPrefixFixer=c=>c.replace("chr",""):!s&&f&&(this.chrPrefixFixer=c=>"chr"+c)})}async onDomainChanged(n){const r=this.params.windowSize;if(n[1]-n[0]>r)return;await this.headerPromise;const i=this.quantizeInterval(n,r);if(this.checkAndUpdateLastInterval(i)){const a=this.genome.continuousToDiscreteChromosomeIntervals(i),o=await Promise.all(a.map(s=>this.bam.getRecordsForRange(this.chrPrefixFixer(s.chrom),s.startPos,s.endPos).then(f=>f.map(u=>({chrom:s.chrom,start:u.get("start"),end:u.get("end"),name:u.get("name"),MD:u.get("MD"),cigar:u.get("cigar"),mapq:u.get("mq"),strand:u.get("strand")===1?"+":"-"})))));this.publishData(o.flat())}}}var tp={exports:{}},Po=typeof Reflect=="object"?Reflect:null,IE=Po&&typeof Po.apply=="function"?Po.apply:function(e,n,r){return Function.prototype.apply.call(e,n,r)},Cc;Po&&typeof Po.ownKeys=="function"?Cc=Po.ownKeys:Object.getOwnPropertySymbols?Cc=function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Cc=function(e){return Object.getOwnPropertyNames(e)};function aP(t){console&&console.warn&&console.warn(t)}var ME=Number.isNaN||function(e){return e!==e};function Ne(){Ne.init.call(this)}tp.exports=Ne,tp.exports.once=fP,Ne.EventEmitter=Ne,Ne.prototype._events=void 0,Ne.prototype._eventsCount=0,Ne.prototype._maxListeners=void 0;var TE=10;function Dc(t){if(typeof t!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t)}Object.defineProperty(Ne,"defaultMaxListeners",{enumerable:!0,get:function(){return TE},set:function(t){if(typeof t!="number"||t<0||ME(t))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+t+".");TE=t}}),Ne.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},Ne.prototype.setMaxListeners=function(e){if(typeof e!="number"||e<0||ME(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this};function NE(t){return t._maxListeners===void 0?Ne.defaultMaxListeners:t._maxListeners}Ne.prototype.getMaxListeners=function(){return NE(this)},Ne.prototype.emit=function(e){for(var n=[],r=1;r<arguments.length;r++)n.push(arguments[r]);var i=e==="error",a=this._events;if(a!==void 0)i=i&&a.error===void 0;else if(!i)return!1;if(i){var o;if(n.length>0&&(o=n[0]),o instanceof Error)throw o;var s=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw s.context=o,s}var f=a[e];if(f===void 0)return!1;if(typeof f=="function")IE(f,this,n);else for(var u=f.length,l=RE(f,u),r=0;r<u;++r)IE(l[r],this,n);return!0};function FE(t,e,n,r){var i,a,o;if(Dc(n),a=t._events,a===void 0?(a=t._events=Object.create(null),t._eventsCount=0):(a.newListener!==void 0&&(t.emit("newListener",e,n.listener?n.listener:n),a=t._events),o=a[e]),o===void 0)o=a[e]=n,++t._eventsCount;else if(typeof o=="function"?o=a[e]=r?[n,o]:[o,n]:r?o.unshift(n):o.push(n),i=NE(t),i>0&&o.length>i&&!o.warned){o.warned=!0;var s=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");s.name="MaxListenersExceededWarning",s.emitter=t,s.type=e,s.count=o.length,aP(s)}return t}Ne.prototype.addListener=function(e,n){return FE(this,e,n,!1)},Ne.prototype.on=Ne.prototype.addListener,Ne.prototype.prependListener=function(e,n){return FE(this,e,n,!0)};function oP(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function kE(t,e,n){var r={fired:!1,wrapFn:void 0,target:t,type:e,listener:n},i=oP.bind(r);return i.listener=n,r.wrapFn=i,i}Ne.prototype.once=function(e,n){return Dc(n),this.on(e,kE(this,e,n)),this},Ne.prototype.prependOnceListener=function(e,n){return Dc(n),this.prependListener(e,kE(this,e,n)),this},Ne.prototype.removeListener=function(e,n){var r,i,a,o,s;if(Dc(n),i=this._events,i===void 0)return this;if(r=i[e],r===void 0)return this;if(r===n||r.listener===n)--this._eventsCount===0?this._events=Object.create(null):(delete i[e],i.removeListener&&this.emit("removeListener",e,r.listener||n));else if(typeof r!="function"){for(a=-1,o=r.length-1;o>=0;o--)if(r[o]===n||r[o].listener===n){s=r[o].listener,a=o;break}if(a<0)return this;a===0?r.shift():sP(r,a),r.length===1&&(i[e]=r[0]),i.removeListener!==void 0&&this.emit("removeListener",e,s||n)}return this},Ne.prototype.off=Ne.prototype.removeListener,Ne.prototype.removeAllListeners=function(e){var n,r,i;if(r=this._events,r===void 0)return this;if(r.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):r[e]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete r[e]),this;if(arguments.length===0){var a=Object.keys(r),o;for(i=0;i<a.length;++i)o=a[i],o!=="removeListener"&&this.removeAllListeners(o);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(n=r[e],typeof n=="function")this.removeListener(e,n);else if(n!==void 0)for(i=n.length-1;i>=0;i--)this.removeListener(e,n[i]);return this};function BE(t,e,n){var r=t._events;if(r===void 0)return[];var i=r[e];return i===void 0?[]:typeof i=="function"?n?[i.listener||i]:[i]:n?uP(i):RE(i,i.length)}Ne.prototype.listeners=function(e){return BE(this,e,!0)},Ne.prototype.rawListeners=function(e){return BE(this,e,!1)},Ne.listenerCount=function(t,e){return typeof t.listenerCount=="function"?t.listenerCount(e):LE.call(t,e)},Ne.prototype.listenerCount=LE;function LE(t){var e=this._events;if(e!==void 0){var n=e[t];if(typeof n=="function")return 1;if(n!==void 0)return n.length}return 0}Ne.prototype.eventNames=function(){return this._eventsCount>0?Cc(this._events):[]};function RE(t,e){for(var n=new Array(e),r=0;r<e;++r)n[r]=t[r];return n}function sP(t,e){for(;e+1<t.length;e++)t[e]=t[e+1];t.pop()}function uP(t){for(var e=new Array(t.length),n=0;n<e.length;++n)e[n]=t[n].listener||t[n];return e}function fP(t,e){return new Promise(function(n,r){function i(o){t.removeListener(e,a),r(o)}function a(){typeof t.removeListener=="function"&&t.removeListener("error",i),n([].slice.call(arguments))}OE(t,e,a,{once:!0}),e!=="error"&&lP(t,i,{once:!0})})}function lP(t,e,n){typeof t.on=="function"&&OE(t,"error",e,n)}function OE(t,e,n,r){if(typeof t.on=="function")r.once?t.once(e,n):t.on(e,n);else if(typeof t.addEventListener=="function")t.addEventListener(e,function i(a){r.once&&t.removeEventListener(e,i),n(a)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof t)}var np=tp.exports,rp={exports:{}};typeof Object.create=="function"?rp.exports=function(e,n){n&&(e.super_=n,e.prototype=Object.create(n.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:rp.exports=function(e,n){if(n){e.super_=n;var r=function(){};r.prototype=n.prototype,e.prototype=new r,e.prototype.constructor=e}};var Uo=rp.exports,ip,zE;function PE(){return zE||(zE=1,ip=np.EventEmitter),ip}const UE=Fk(jk);var ap,jE;function cP(){if(jE)return ap;jE=1;function t(h,d){var g=Object.keys(h);if(Object.getOwnPropertySymbols){var b=Object.getOwnPropertySymbols(h);d&&(b=b.filter(function(y){return Object.getOwnPropertyDescriptor(h,y).enumerable})),g.push.apply(g,b)}return g}function e(h){for(var d=1;d<arguments.length;d++){var g=arguments[d]!=null?arguments[d]:{};d%2?t(Object(g),!0).forEach(function(b){n(h,b,g[b])}):Object.getOwnPropertyDescriptors?Object.defineProperties(h,Object.getOwnPropertyDescriptors(g)):t(Object(g)).forEach(function(b){Object.defineProperty(h,b,Object.getOwnPropertyDescriptor(g,b))})}return h}function n(h,d,g){return d in h?Object.defineProperty(h,d,{value:g,enumerable:!0,configurable:!0,writable:!0}):h[d]=g,h}function r(h,d){if(!(h instanceof d))throw new TypeError("Cannot call a class as a function")}function i(h,d){for(var g=0;g<d.length;g++){var b=d[g];b.enumerable=b.enumerable||!1,b.configurable=!0,"value"in b&&(b.writable=!0),Object.defineProperty(h,b.key,b)}}function a(h,d,g){return d&&i(h.prototype,d),g&&i(h,g),h}var o=bt,s=o.Buffer,f=UE,u=f.inspect,l=u&&u.custom||"inspect";function c(h,d,g){s.prototype.copy.call(h,d,g)}return ap=function(){function h(){r(this,h),this.head=null,this.tail=null,this.length=0}return a(h,[{key:"push",value:function(g){var b={data:g,next:null};this.length>0?this.tail.next=b:this.head=b,this.tail=b,++this.length}},{key:"unshift",value:function(g){var b={data:g,next:this.head};this.length===0&&(this.tail=b),this.head=b,++this.length}},{key:"shift",value:function(){if(this.length!==0){var g=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,g}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(g){if(this.length===0)return"";for(var b=this.head,y=""+b.data;b=b.next;)y+=g+b.data;return y}},{key:"concat",value:function(g){if(this.length===0)return s.alloc(0);for(var b=s.allocUnsafe(g>>>0),y=this.head,w=0;y;)c(y.data,b,w),w+=y.data.length,y=y.next;return b}},{key:"consume",value:function(g,b){var y;return g<this.head.data.length?(y=this.head.data.slice(0,g),this.head.data=this.head.data.slice(g)):g===this.head.data.length?y=this.shift():y=b?this._getString(g):this._getBuffer(g),y}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(g){var b=this.head,y=1,w=b.data;for(g-=w.length;b=b.next;){var E=b.data,_=g>E.length?E.length:g;if(_===E.length?w+=E:w+=E.slice(0,g),g-=_,g===0){_===E.length?(++y,b.next?this.head=b.next:this.head=this.tail=null):(this.head=b,b.data=E.slice(_));break}++y}return this.length-=y,w}},{key:"_getBuffer",value:function(g){var b=s.allocUnsafe(g),y=this.head,w=1;for(y.data.copy(b),g-=y.data.length;y=y.next;){var E=y.data,_=g>E.length?E.length:g;if(E.copy(b,b.length-g,0,_),g-=_,g===0){_===E.length?(++w,y.next?this.head=y.next:this.head=this.tail=null):(this.head=y,y.data=E.slice(_));break}++w}return this.length-=w,b}},{key:l,value:function(g,b){return u(this,e({},b,{depth:0,customInspect:!1}))}}]),h}(),ap}var op,GE;function HE(){if(GE)return op;GE=1;function t(o,s){var f=this,u=this._readableState&&this._readableState.destroyed,l=this._writableState&&this._writableState.destroyed;return u||l?(s?s(o):o&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(i,this,o)):process.nextTick(i,this,o)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(o||null,function(c){!s&&c?f._writableState?f._writableState.errorEmitted?process.nextTick(n,f):(f._writableState.errorEmitted=!0,process.nextTick(e,f,c)):process.nextTick(e,f,c):s?(process.nextTick(n,f),s(c)):process.nextTick(n,f)}),this)}function e(o,s){i(o,s),n(o)}function n(o){o._writableState&&!o._writableState.emitClose||o._readableState&&!o._readableState.emitClose||o.emit("close")}function r(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function i(o,s){o.emit("error",s)}function a(o,s){var f=o._readableState,u=o._writableState;f&&f.autoDestroy||u&&u.autoDestroy?o.destroy(s):o.emit("error",s)}return op={destroy:t,undestroy:r,errorOrDestroy:a},op}var sp={},QE;function jo(){if(QE)return sp;QE=1;function t(s,f){s.prototype=Object.create(f.prototype),s.prototype.constructor=s,s.__proto__=f}var e={};function n(s,f,u){u||(u=Error);function l(h,d,g){return typeof f=="string"?f:f(h,d,g)}var c=function(h){t(d,h);function d(g,b,y){return h.call(this,l(g,b,y))||this}return d}(u);c.prototype.name=u.name,c.prototype.code=s,e[s]=c}function r(s,f){if(Array.isArray(s)){var u=s.length;return s=s.map(function(l){return String(l)}),u>2?"one of ".concat(f," ").concat(s.slice(0,u-1).join(", "),", or ")+s[u-1]:u===2?"one of ".concat(f," ").concat(s[0]," or ").concat(s[1]):"of ".concat(f," ").concat(s[0])}else return"of ".concat(f," ").concat(String(s))}function i(s,f,u){return s.substr(!u||u<0?0:+u,f.length)===f}function a(s,f,u){return(u===void 0||u>s.length)&&(u=s.length),s.substring(u-f.length,u)===f}function o(s,f,u){return typeof u!="number"&&(u=0),u+f.length>s.length?!1:s.indexOf(f,u)!==-1}return n("ERR_INVALID_OPT_VALUE",function(s,f){return'The value "'+f+'" is invalid for option "'+s+'"'},TypeError),n("ERR_INVALID_ARG_TYPE",function(s,f,u){var l;typeof f=="string"&&i(f,"not ")?(l="must not be",f=f.replace(/^not /,"")):l="must be";var c;if(a(s," argument"))c="The ".concat(s," ").concat(l," ").concat(r(f,"type"));else{var h=o(s,".")?"property":"argument";c='The "'.concat(s,'" ').concat(h," ").concat(l," ").concat(r(f,"type"))}return c+=". Received type ".concat(typeof u),c},TypeError),n("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),n("ERR_METHOD_NOT_IMPLEMENTED",function(s){return"The "+s+" method is not implemented"}),n("ERR_STREAM_PREMATURE_CLOSE","Premature close"),n("ERR_STREAM_DESTROYED",function(s){return"Cannot call "+s+" after a stream was destroyed"}),n("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),n("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),n("ERR_STREAM_WRITE_AFTER_END","write after end"),n("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),n("ERR_UNKNOWN_ENCODING",function(s){return"Unknown encoding: "+s},TypeError),n("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),sp.codes=e,sp}var up,VE;function qE(){if(VE)return up;VE=1;var t=jo().codes.ERR_INVALID_OPT_VALUE;function e(r,i,a){return r.highWaterMark!=null?r.highWaterMark:i?r[a]:null}function n(r,i,a,o){var s=e(i,o,a);if(s!=null){if(!(isFinite(s)&&Math.floor(s)===s)||s<0){var f=o?a:"highWaterMark";throw new t(f,s)}return Math.floor(s)}return r.objectMode?16:16*1024}return up={getHighWaterMark:n},up}var fp,ZE;function hP(){if(ZE)return fp;ZE=1,fp=t;function t(n,r){if(e("noDeprecation"))return n;var i=!1;function a(){if(!i){if(e("throwDeprecation"))throw new Error(r);e("traceDeprecation")?console.trace(r):console.warn(r),i=!0}return n.apply(this,arguments)}return a}function e(n){try{if(!globalThis.localStorage)return!1}catch{return!1}var r=globalThis.localStorage[n];return r==null?!1:String(r).toLowerCase()==="true"}return fp}var lp,YE;function WE(){if(YE)return lp;YE=1,lp=R;function t(z){var O=this;this.next=null,this.entry=null,this.finish=function(){pr(O,z)}}var e;R.WritableState=N;var n={deprecate:hP()},r=PE(),i=bt.Buffer,a=globalThis.Uint8Array||function(){};function o(z){return i.from(z)}function s(z){return i.isBuffer(z)||z instanceof a}var f=HE(),u=qE(),l=u.getHighWaterMark,c=jo().codes,h=c.ERR_INVALID_ARG_TYPE,d=c.ERR_METHOD_NOT_IMPLEMENTED,g=c.ERR_MULTIPLE_CALLBACK,b=c.ERR_STREAM_CANNOT_PIPE,y=c.ERR_STREAM_DESTROYED,w=c.ERR_STREAM_NULL_VALUES,E=c.ERR_STREAM_WRITE_AFTER_END,_=c.ERR_UNKNOWN_ENCODING,D=f.errorOrDestroy;Uo(R,r);function T(){}function N(z,O,q){e=e||Go(),z=z||{},typeof q!="boolean"&&(q=O instanceof e),this.objectMode=!!z.objectMode,q&&(this.objectMode=this.objectMode||!!z.writableObjectMode),this.highWaterMark=l(this,z,"writableHighWaterMark",q),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var Q=z.decodeStrings===!1;this.decodeStrings=!Q,this.defaultEncoding=z.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(X){Se(O,X)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=z.emitClose!==!1,this.autoDestroy=!!z.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new t(this)}N.prototype.getBuffer=function(){for(var O=this.bufferedRequest,q=[];O;)q.push(O),O=O.next;return q},function(){try{Object.defineProperty(N.prototype,"buffer",{get:n.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}();var M;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(M=Function.prototype[Symbol.hasInstance],Object.defineProperty(R,Symbol.hasInstance,{value:function(O){return M.call(this,O)?!0:this!==R?!1:O&&O._writableState instanceof N}})):M=function(O){return O instanceof this};function R(z){e=e||Go();var O=this instanceof e;if(!O&&!M.call(R,this))return new R(z);this._writableState=new N(z,this,O),this.writable=!0,z&&(typeof z.write=="function"&&(this._write=z.write),typeof z.writev=="function"&&(this._writev=z.writev),typeof z.destroy=="function"&&(this._destroy=z.destroy),typeof z.final=="function"&&(this._final=z.final)),r.call(this)}R.prototype.pipe=function(){D(this,new b)};function C(z,O){var q=new E;D(z,q),process.nextTick(O,q)}function B(z,O,q,Q){var X;return q===null?X=new w:typeof q!="string"&&!O.objectMode&&(X=new h("chunk",["string","Buffer"],q)),X?(D(z,X),process.nextTick(Q,X),!1):!0}R.prototype.write=function(z,O,q){var Q=this._writableState,X=!1,S=!Q.objectMode&&s(z);return S&&!i.isBuffer(z)&&(z=o(z)),typeof O=="function"&&(q=O,O=null),S?O="buffer":O||(O=Q.defaultEncoding),typeof q!="function"&&(q=T),Q.ending?C(this,q):(S||B(this,Q,z,q))&&(Q.pendingcb++,X=ee(this,Q,S,z,O,q)),X},R.prototype.cork=function(){this._writableState.corked++},R.prototype.uncork=function(){var z=this._writableState;z.corked&&(z.corked--,!z.writing&&!z.corked&&!z.bufferProcessing&&z.bufferedRequest&&et(this,z))},R.prototype.setDefaultEncoding=function(O){if(typeof O=="string"&&(O=O.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((O+"").toLowerCase())>-1))throw new _(O);return this._writableState.defaultEncoding=O,this},Object.defineProperty(R.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function L(z,O,q){return!z.objectMode&&z.decodeStrings!==!1&&typeof O=="string"&&(O=i.from(O,q)),O}Object.defineProperty(R.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function ee(z,O,q,Q,X,S){if(!q){var v=L(O,Q,X);Q!==v&&(q=!0,X="buffer",Q=v)}var G=O.objectMode?1:Q.length;O.length+=G;var V=O.length<O.highWaterMark;if(V||(O.needDrain=!0),O.writing||O.corked){var le=O.lastBufferedRequest;O.lastBufferedRequest={chunk:Q,encoding:X,isBuf:q,callback:S,next:null},le?le.next=O.lastBufferedRequest:O.bufferedRequest=O.lastBufferedRequest,O.bufferedRequestCount+=1}else ne(z,O,!1,G,Q,X,S);return V}function ne(z,O,q,Q,X,S,v){O.writelen=Q,O.writecb=v,O.writing=!0,O.sync=!0,O.destroyed?O.onwrite(new y("write")):q?z._writev(X,O.onwrite):z._write(X,S,O.onwrite),O.sync=!1}function J(z,O,q,Q,X){--O.pendingcb,q?(process.nextTick(X,Q),process.nextTick(Zt,z,O),z._writableState.errorEmitted=!0,D(z,Q)):(X(Q),z._writableState.errorEmitted=!0,D(z,Q),Zt(z,O))}function be(z){z.writing=!1,z.writecb=null,z.length-=z.writelen,z.writelen=0}function Se(z,O){var q=z._writableState,Q=q.sync,X=q.writecb;if(typeof X!="function")throw new g;if(be(q),O)J(z,q,Q,O,X);else{var S=gr(q)||z.destroyed;!S&&!q.corked&&!q.bufferProcessing&&q.bufferedRequest&&et(z,q),Q?process.nextTick(Te,z,q,S,X):Te(z,q,S,X)}}function Te(z,O,q,Q){q||it(z,O),O.pendingcb--,Q(),Zt(z,O)}function it(z,O){O.length===0&&O.needDrain&&(O.needDrain=!1,z.emit("drain"))}function et(z,O){O.bufferProcessing=!0;var q=O.bufferedRequest;if(z._writev&&q&&q.next){var Q=O.bufferedRequestCount,X=new Array(Q),S=O.corkedRequestsFree;S.entry=q;for(var v=0,G=!0;q;)X[v]=q,q.isBuf||(G=!1),q=q.next,v+=1;X.allBuffers=G,ne(z,O,!0,O.length,X,"",S.finish),O.pendingcb++,O.lastBufferedRequest=null,S.next?(O.corkedRequestsFree=S.next,S.next=null):O.corkedRequestsFree=new t(O),O.bufferedRequestCount=0}else{for(;q;){var V=q.chunk,le=q.encoding,re=q.callback,ce=O.objectMode?1:V.length;if(ne(z,O,!1,ce,V,le,re),q=q.next,O.bufferedRequestCount--,O.writing)break}q===null&&(O.lastBufferedRequest=null)}O.bufferedRequest=q,O.bufferProcessing=!1}R.prototype._write=function(z,O,q){q(new d("_write()"))},R.prototype._writev=null,R.prototype.end=function(z,O,q){var Q=this._writableState;return typeof z=="function"?(q=z,z=null,O=null):typeof O=="function"&&(q=O,O=null),z!=null&&this.write(z,O),Q.corked&&(Q.corked=1,this.uncork()),Q.ending||Hn(this,Q,q),this},Object.defineProperty(R.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function gr(z){return z.ending&&z.length===0&&z.bufferedRequest===null&&!z.finished&&!z.writing}function Be(z,O){z._final(function(q){O.pendingcb--,q&&D(z,q),O.prefinished=!0,z.emit("prefinish"),Zt(z,O)})}function Ye(z,O){!O.prefinished&&!O.finalCalled&&(typeof z._final=="function"&&!O.destroyed?(O.pendingcb++,O.finalCalled=!0,process.nextTick(Be,z,O)):(O.prefinished=!0,z.emit("prefinish")))}function Zt(z,O){var q=gr(O);if(q&&(Ye(z,O),O.pendingcb===0&&(O.finished=!0,z.emit("finish"),O.autoDestroy))){var Q=z._readableState;(!Q||Q.autoDestroy&&Q.endEmitted)&&z.destroy()}return q}function Hn(z,O,q){O.ending=!0,Zt(z,O),q&&(O.finished?process.nextTick(q):z.once("finish",q)),O.ended=!0,z.writable=!1}function pr(z,O,q){var Q=z.entry;for(z.entry=null;Q;){var X=Q.callback;O.pendingcb--,X(q),Q=Q.next}O.corkedRequestsFree.next=z}return Object.defineProperty(R.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState===void 0?!1:this._writableState.destroyed},set:function(O){this._writableState&&(this._writableState.destroyed=O)}}),R.prototype.destroy=f.destroy,R.prototype._undestroy=f.undestroy,R.prototype._destroy=function(z,O){O(z)},lp}var cp,XE;function Go(){if(XE)return cp;XE=1;var t=Object.keys||function(u){var l=[];for(var c in u)l.push(c);return l};cp=o;var e=n3(),n=WE();Uo(o,e);for(var r=t(n.prototype),i=0;i<r.length;i++){var a=r[i];o.prototype[a]||(o.prototype[a]=n.prototype[a])}function o(u){if(!(this instanceof o))return new o(u);e.call(this,u),n.call(this,u),this.allowHalfOpen=!0,u&&(u.readable===!1&&(this.readable=!1),u.writable===!1&&(this.writable=!1),u.allowHalfOpen===!1&&(this.allowHalfOpen=!1,this.once("end",s)))}Object.defineProperty(o.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(o.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(o.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function s(){this._writableState.ended||process.nextTick(f,this)}function f(u){u.end()}return Object.defineProperty(o.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set:function(l){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=l,this._writableState.destroyed=l)}}),cp}var hp={},dp={exports:{}};/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */(function(t,e){var n=bt,r=n.Buffer;function i(o,s){for(var f in o)s[f]=o[f]}r.from&&r.alloc&&r.allocUnsafe&&r.allocUnsafeSlow?t.exports=n:(i(n,e),e.Buffer=a);function a(o,s,f){return r(o,s,f)}a.prototype=Object.create(r.prototype),i(r,a),a.from=function(o,s,f){if(typeof o=="number")throw new TypeError("Argument must not be a number");return r(o,s,f)},a.alloc=function(o,s,f){if(typeof o!="number")throw new TypeError("Argument must be a number");var u=r(o);return s!==void 0?typeof f=="string"?u.fill(s,f):u.fill(s):u.fill(0),u},a.allocUnsafe=function(o){if(typeof o!="number")throw new TypeError("Argument must be a number");return r(o)},a.allocUnsafeSlow=function(o){if(typeof o!="number")throw new TypeError("Argument must be a number");return n.SlowBuffer(o)}})(dp,dp.exports);var dP=dp.exports,gp=dP.Buffer,$E=gp.isEncoding||function(t){switch(t=""+t,t&&t.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function gP(t){if(!t)return"utf8";for(var e;;)switch(t){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return t;default:if(e)return;t=(""+t).toLowerCase(),e=!0}}function pP(t){var e=gP(t);if(typeof e!="string"&&(gp.isEncoding===$E||!$E(t)))throw new Error("Unknown encoding: "+t);return e||t}var mP=hp.StringDecoder=Zu;function Zu(t){this.encoding=pP(t);var e;switch(this.encoding){case"utf16le":this.text=AP,this.end=EP,e=4;break;case"utf8":this.fillLast=wP,e=4;break;case"base64":this.text=SP,this.end=_P,e=3;break;default:this.write=CP,this.end=DP;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=gp.allocUnsafe(e)}Zu.prototype.write=function(t){if(t.length===0)return"";var e,n;if(this.lastNeed){if(e=this.fillLast(t),e===void 0)return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n<t.length?e?e+this.text(t,n):this.text(t,n):e||""},Zu.prototype.end=vP,Zu.prototype.text=xP,Zu.prototype.fillLast=function(t){if(this.lastNeed<=t.length)return t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,t.length),this.lastNeed-=t.length};function pp(t){return t<=127?0:t>>5===6?2:t>>4===14?3:t>>3===30?4:t>>6===2?-1:-2}function bP(t,e,n){var r=e.length-1;if(r<n)return 0;var i=pp(e[r]);return i>=0?(i>0&&(t.lastNeed=i-1),i):--r<n||i===-2?0:(i=pp(e[r]),i>=0?(i>0&&(t.lastNeed=i-2),i):--r<n||i===-2?0:(i=pp(e[r]),i>=0?(i>0&&(i===2?i=0:t.lastNeed=i-3),i):0))}function yP(t,e,n){if((e[0]&192)!==128)return t.lastNeed=0,"�";if(t.lastNeed>1&&e.length>1){if((e[1]&192)!==128)return t.lastNeed=1,"�";if(t.lastNeed>2&&e.length>2&&(e[2]&192)!==128)return t.lastNeed=2,"�"}}function wP(t){var e=this.lastTotal-this.lastNeed,n=yP(this,t);if(n!==void 0)return n;if(this.lastNeed<=t.length)return t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,e,0,t.length),this.lastNeed-=t.length}function xP(t,e){var n=bP(this,t,e);if(!this.lastNeed)return t.toString("utf8",e);this.lastTotal=n;var r=t.length-(n-this.lastNeed);return t.copy(this.lastChar,0,r),t.toString("utf8",e,r)}function vP(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+"�":e}function AP(t,e){if((t.length-e)%2===0){var n=t.toString("utf16le",e);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString("utf16le",e,t.length-1)}function EP(t){var e=t&&t.length?this.write(t):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,n)}return e}function SP(t,e){var n=(t.length-e)%3;return n===0?t.toString("base64",e):(this.lastNeed=3-n,this.lastTotal=3,n===1?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString("base64",e,t.length-n))}function _P(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function CP(t){return t.toString(this.encoding)}function DP(t){return t&&t.length?this.write(t):""}var mp,KE;function bp(){if(KE)return mp;KE=1;var t=jo().codes.ERR_STREAM_PREMATURE_CLOSE;function e(a){var o=!1;return function(){if(!o){o=!0;for(var s=arguments.length,f=new Array(s),u=0;u<s;u++)f[u]=arguments[u];a.apply(this,f)}}}function n(){}function r(a){return a.setHeader&&typeof a.abort=="function"}function i(a,o,s){if(typeof o=="function")return i(a,null,o);o||(o={}),s=e(s||n);var f=o.readable||o.readable!==!1&&a.readable,u=o.writable||o.writable!==!1&&a.writable,l=function(){a.writable||h()},c=a._writableState&&a._writableState.finished,h=function(){u=!1,c=!0,f||s.call(a)},d=a._readableState&&a._readableState.endEmitted,g=function(){f=!1,d=!0,u||s.call(a)},b=function(_){s.call(a,_)},y=function(){var _;if(f&&!d)return(!a._readableState||!a._readableState.ended)&&(_=new t),s.call(a,_);if(u&&!c)return(!a._writableState||!a._writableState.ended)&&(_=new t),s.call(a,_)},w=function(){a.req.on("finish",h)};return r(a)?(a.on("complete",h),a.on("abort",y),a.req?w():a.on("request",w)):u&&!a._writableState&&(a.on("end",l),a.on("close",l)),a.on("end",g),a.on("finish",h),o.error!==!1&&a.on("error",b),a.on("close",y),function(){a.removeListener("complete",h),a.removeListener("abort",y),a.removeListener("request",w),a.req&&a.req.removeListener("finish",h),a.removeListener("end",l),a.removeListener("close",l),a.removeListener("finish",h),a.removeListener("end",g),a.removeListener("error",b),a.removeListener("close",y)}}return mp=i,mp}var yp,JE;function IP(){if(JE)return yp;JE=1;var t;function e(w,E,_){return E in w?Object.defineProperty(w,E,{value:_,enumerable:!0,configurable:!0,writable:!0}):w[E]=_,w}var n=bp(),r=Symbol("lastResolve"),i=Symbol("lastReject"),a=Symbol("error"),o=Symbol("ended"),s=Symbol("lastPromise"),f=Symbol("handlePromise"),u=Symbol("stream");function l(w,E){return{value:w,done:E}}function c(w){var E=w[r];if(E!==null){var _=w[u].read();_!==null&&(w[s]=null,w[r]=null,w[i]=null,E(l(_,!1)))}}function h(w){process.nextTick(c,w)}function d(w,E){return function(_,D){w.then(function(){if(E[o]){_(l(void 0,!0));return}E[f](_,D)},D)}}var g=Object.getPrototypeOf(function(){}),b=Object.setPrototypeOf((t={get stream(){return this[u]},next:function(){var E=this,_=this[a];if(_!==null)return Promise.reject(_);if(this[o])return Promise.resolve(l(void 0,!0));if(this[u].destroyed)return new Promise(function(M,R){process.nextTick(function(){E[a]?R(E[a]):M(l(void 0,!0))})});var D=this[s],T;if(D)T=new Promise(d(D,this));else{var N=this[u].read();if(N!==null)return Promise.resolve(l(N,!1));T=new Promise(this[f])}return this[s]=T,T}},e(t,Symbol.asyncIterator,function(){return this}),e(t,"return",function(){var E=this;return new Promise(function(_,D){E[u].destroy(null,function(T){if(T){D(T);return}_(l(void 0,!0))})})}),t),g),y=function(E){var _,D=Object.create(b,(_={},e(_,u,{value:E,writable:!0}),e(_,r,{value:null,writable:!0}),e(_,i,{value:null,writable:!0}),e(_,a,{value:null,writable:!0}),e(_,o,{value:E._readableState.endEmitted,writable:!0}),e(_,f,{value:function(N,M){var R=D[u].read();R?(D[s]=null,D[r]=null,D[i]=null,N(l(R,!1))):(D[r]=N,D[i]=M)},writable:!0}),_));return D[s]=null,n(E,function(T){if(T&&T.code!=="ERR_STREAM_PREMATURE_CLOSE"){var N=D[i];N!==null&&(D[s]=null,D[r]=null,D[i]=null,N(T)),D[a]=T;return}var M=D[r];M!==null&&(D[s]=null,D[r]=null,D[i]=null,M(l(void 0,!0))),D[o]=!0}),E.on("readable",h.bind(null,D)),D};return yp=y,yp}var wp,e3;function MP(){return e3||(e3=1,wp=function(){throw new Error("Readable.from is not available in the browser")}),wp}var xp,t3;function n3(){if(t3)return xp;t3=1,xp=C;var t;C.ReadableState=R,np.EventEmitter;var e=function(v,G){return v.listeners(G).length},n=PE(),r=bt.Buffer,i=globalThis.Uint8Array||function(){};function a(S){return r.from(S)}function o(S){return r.isBuffer(S)||S instanceof i}var s=UE,f;s&&s.debuglog?f=s.debuglog("stream"):f=function(){};var u=cP(),l=HE(),c=qE(),h=c.getHighWaterMark,d=jo().codes,g=d.ERR_INVALID_ARG_TYPE,b=d.ERR_STREAM_PUSH_AFTER_EOF,y=d.ERR_METHOD_NOT_IMPLEMENTED,w=d.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,E,_,D;Uo(C,n);var T=l.errorOrDestroy,N=["error","close","destroy","pause","resume"];function M(S,v,G){if(typeof S.prependListener=="function")return S.prependListener(v,G);!S._events||!S._events[v]?S.on(v,G):Array.isArray(S._events[v])?S._events[v].unshift(G):S._events[v]=[G,S._events[v]]}function R(S,v,G){t=t||Go(),S=S||{},typeof G!="boolean"&&(G=v instanceof t),this.objectMode=!!S.objectMode,G&&(this.objectMode=this.objectMode||!!S.readableObjectMode),this.highWaterMark=h(this,S,"readableHighWaterMark",G),this.buffer=new u,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=S.emitClose!==!1,this.autoDestroy=!!S.autoDestroy,this.destroyed=!1,this.defaultEncoding=S.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,S.encoding&&(E||(E=hp.StringDecoder),this.decoder=new E(S.encoding),this.encoding=S.encoding)}function C(S){if(t=t||Go(),!(this instanceof C))return new C(S);var v=this instanceof t;this._readableState=new R(S,this,v),this.readable=!0,S&&(typeof S.read=="function"&&(this._read=S.read),typeof S.destroy=="function"&&(this._destroy=S.destroy)),n.call(this)}Object.defineProperty(C.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(v){this._readableState&&(this._readableState.destroyed=v)}}),C.prototype.destroy=l.destroy,C.prototype._undestroy=l.undestroy,C.prototype._destroy=function(S,v){v(S)},C.prototype.push=function(S,v){var G=this._readableState,V;return G.objectMode?V=!0:typeof S=="string"&&(v=v||G.defaultEncoding,v!==G.encoding&&(S=r.from(S,v),v=""),V=!0),B(this,S,v,!1,V)},C.prototype.unshift=function(S){return B(this,S,null,!0,!1)};function B(S,v,G,V,le){f("readableAddChunk",v);var re=S._readableState;if(v===null)re.reading=!1,Se(S,re);else{var ce;if(le||(ce=ee(re,v)),ce)T(S,ce);else if(re.objectMode||v&&v.length>0)if(typeof v!="string"&&!re.objectMode&&Object.getPrototypeOf(v)!==r.prototype&&(v=a(v)),V)re.endEmitted?T(S,new w):L(S,re,v,!0);else if(re.ended)T(S,new b);else{if(re.destroyed)return!1;re.reading=!1,re.decoder&&!G?(v=re.decoder.write(v),re.objectMode||v.length!==0?L(S,re,v,!1):et(S,re)):L(S,re,v,!1)}else V||(re.reading=!1,et(S,re))}return!re.ended&&(re.length<re.highWaterMark||re.length===0)}function L(S,v,G,V){v.flowing&&v.length===0&&!v.sync?(v.awaitDrain=0,S.emit("data",G)):(v.length+=v.objectMode?1:G.length,V?v.buffer.unshift(G):v.buffer.push(G),v.needReadable&&Te(S)),et(S,v)}function ee(S,v){var G;return!o(v)&&typeof v!="string"&&v!==void 0&&!S.objectMode&&(G=new g("chunk",["string","Buffer","Uint8Array"],v)),G}C.prototype.isPaused=function(){return this._readableState.flowing===!1},C.prototype.setEncoding=function(S){E||(E=hp.StringDecoder);var v=new E(S);this._readableState.decoder=v,this._readableState.encoding=this._readableState.decoder.encoding;for(var G=this._readableState.buffer.head,V="";G!==null;)V+=v.write(G.data),G=G.next;return this._readableState.buffer.clear(),V!==""&&this._readableState.buffer.push(V),this._readableState.length=V.length,this};var ne=1073741824;function J(S){return S>=ne?S=ne:(S--,S|=S>>>1,S|=S>>>2,S|=S>>>4,S|=S>>>8,S|=S>>>16,S++),S}function be(S,v){return S<=0||v.length===0&&v.ended?0:v.objectMode?1:S!==S?v.flowing&&v.length?v.buffer.head.data.length:v.length:(S>v.highWaterMark&&(v.highWaterMark=J(S)),S<=v.length?S:v.ended?v.length:(v.needReadable=!0,0))}C.prototype.read=function(S){f("read",S),S=parseInt(S,10);var v=this._readableState,G=S;if(S!==0&&(v.emittedReadable=!1),S===0&&v.needReadable&&((v.highWaterMark!==0?v.length>=v.highWaterMark:v.length>0)||v.ended))return f("read: emitReadable",v.length,v.ended),v.length===0&&v.ended?q(this):Te(this),null;if(S=be(S,v),S===0&&v.ended)return v.length===0&&q(this),null;var V=v.needReadable;f("need readable",V),(v.length===0||v.length-S<v.highWaterMark)&&(V=!0,f("length less than watermark",V)),v.ended||v.reading?(V=!1,f("reading or ended",V)):V&&(f("do read"),v.reading=!0,v.sync=!0,v.length===0&&(v.needReadable=!0),this._read(v.highWaterMark),v.sync=!1,v.reading||(S=be(G,v)));var le;return S>0?le=O(S,v):le=null,le===null?(v.needReadable=v.length<=v.highWaterMark,S=0):(v.length-=S,v.awaitDrain=0),v.length===0&&(v.ended||(v.needReadable=!0),G!==S&&v.ended&&q(this)),le!==null&&this.emit("data",le),le};function Se(S,v){if(f("onEofChunk"),!v.ended){if(v.decoder){var G=v.decoder.end();G&&G.length&&(v.buffer.push(G),v.length+=v.objectMode?1:G.length)}v.ended=!0,v.sync?Te(S):(v.needReadable=!1,v.emittedReadable||(v.emittedReadable=!0,it(S)))}}function Te(S){var v=S._readableState;f("emitReadable",v.needReadable,v.emittedReadable),v.needReadable=!1,v.emittedReadable||(f("emitReadable",v.flowing),v.emittedReadable=!0,process.nextTick(it,S))}function it(S){var v=S._readableState;f("emitReadable_",v.destroyed,v.length,v.ended),!v.destroyed&&(v.length||v.ended)&&(S.emit("readable"),v.emittedReadable=!1),v.needReadable=!v.flowing&&!v.ended&&v.length<=v.highWaterMark,z(S)}function et(S,v){v.readingMore||(v.readingMore=!0,process.nextTick(gr,S,v))}function gr(S,v){for(;!v.reading&&!v.ended&&(v.length<v.highWaterMark||v.flowing&&v.length===0);){var G=v.length;if(f("maybeReadMore read 0"),S.read(0),G===v.length)break}v.readingMore=!1}C.prototype._read=function(S){T(this,new y("_read()"))},C.prototype.pipe=function(S,v){var G=this,V=this._readableState;switch(V.pipesCount){case 0:V.pipes=S;break;case 1:V.pipes=[V.pipes,S];break;default:V.pipes.push(S);break}V.pipesCount+=1,f("pipe count=%d opts=%j",V.pipesCount,v);var le=(!v||v.end!==!1)&&S!==process.stdout&&S!==process.stderr,re=le?Yt:mr;V.endEmitted?process.nextTick(re):G.once("end",re),S.on("unpipe",ce);function ce(x,p){f("onunpipe"),x===G&&p&&p.hasUnpiped===!1&&(p.hasUnpiped=!0,_i())}function Yt(){f("onend"),S.end()}var Ei=Be(G);S.on("drain",Ei);var Si=!1;function _i(){f("cleanup"),S.removeListener("close",Ci),S.removeListener("finish",Wt),S.removeListener("drain",Ei),S.removeListener("error",Or),S.removeListener("unpipe",ce),G.removeListener("end",Yt),G.removeListener("end",mr),G.removeListener("data",Dt),Si=!0,V.awaitDrain&&(!S._writableState||S._writableState.needDrain)&&Ei()}G.on("data",Dt);function Dt(x){f("ondata");var p=S.write(x);f("dest.write",p),p===!1&&((V.pipesCount===1&&V.pipes===S||V.pipesCount>1&&X(V.pipes,S)!==-1)&&!Si&&(f("false write response, pause",V.awaitDrain),V.awaitDrain++),G.pause())}function Or(x){f("onerror",x),mr(),S.removeListener("error",Or),e(S,"error")===0&&T(S,x)}M(S,"error",Or);function Ci(){S.removeListener("finish",Wt),mr()}S.once("close",Ci);function Wt(){f("onfinish"),S.removeListener("close",Ci),mr()}S.once("finish",Wt);function mr(){f("unpipe"),G.unpipe(S)}return S.emit("pipe",G),V.flowing||(f("pipe resume"),G.resume()),S};function Be(S){return function(){var G=S._readableState;f("pipeOnDrain",G.awaitDrain),G.awaitDrain&&G.awaitDrain--,G.awaitDrain===0&&e(S,"data")&&(G.flowing=!0,z(S))}}C.prototype.unpipe=function(S){var v=this._readableState,G={hasUnpiped:!1};if(v.pipesCount===0)return this;if(v.pipesCount===1)return S&&S!==v.pipes?this:(S||(S=v.pipes),v.pipes=null,v.pipesCount=0,v.flowing=!1,S&&S.emit("unpipe",this,G),this);if(!S){var V=v.pipes,le=v.pipesCount;v.pipes=null,v.pipesCount=0,v.flowing=!1;for(var re=0;re<le;re++)V[re].emit("unpipe",this,{hasUnpiped:!1});return this}var ce=X(v.pipes,S);return ce===-1?this:(v.pipes.splice(ce,1),v.pipesCount-=1,v.pipesCount===1&&(v.pipes=v.pipes[0]),S.emit("unpipe",this,G),this)},C.prototype.on=function(S,v){var G=n.prototype.on.call(this,S,v),V=this._readableState;return S==="data"?(V.readableListening=this.listenerCount("readable")>0,V.flowing!==!1&&this.resume()):S==="readable"&&!V.endEmitted&&!V.readableListening&&(V.readableListening=V.needReadable=!0,V.flowing=!1,V.emittedReadable=!1,f("on readable",V.length,V.reading),V.length?Te(this):V.reading||process.nextTick(Zt,this)),G},C.prototype.addListener=C.prototype.on,C.prototype.removeListener=function(S,v){var G=n.prototype.removeListener.call(this,S,v);return S==="readable"&&process.nextTick(Ye,this),G},C.prototype.removeAllListeners=function(S){var v=n.prototype.removeAllListeners.apply(this,arguments);return(S==="readable"||S===void 0)&&process.nextTick(Ye,this),v};function Ye(S){var v=S._readableState;v.readableListening=S.listenerCount("readable")>0,v.resumeScheduled&&!v.paused?v.flowing=!0:S.listenerCount("data")>0&&S.resume()}function Zt(S){f("readable nexttick read 0"),S.read(0)}C.prototype.resume=function(){var S=this._readableState;return S.flowing||(f("resume"),S.flowing=!S.readableListening,Hn(this,S)),S.paused=!1,this};function Hn(S,v){v.resumeScheduled||(v.resumeScheduled=!0,process.nextTick(pr,S,v))}function pr(S,v){f("resume",v.reading),v.reading||S.read(0),v.resumeScheduled=!1,S.emit("resume"),z(S),v.flowing&&!v.reading&&S.read(0)}C.prototype.pause=function(){return f("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(f("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function z(S){var v=S._readableState;for(f("flow",v.flowing);v.flowing&&S.read()!==null;);}C.prototype.wrap=function(S){var v=this,G=this._readableState,V=!1;S.on("end",function(){if(f("wrapped end"),G.decoder&&!G.ended){var ce=G.decoder.end();ce&&ce.length&&v.push(ce)}v.push(null)}),S.on("data",function(ce){if(f("wrapped data"),G.decoder&&(ce=G.decoder.write(ce)),!(G.objectMode&&ce==null)&&!(!G.objectMode&&(!ce||!ce.length))){var Yt=v.push(ce);Yt||(V=!0,S.pause())}});for(var le in S)this[le]===void 0&&typeof S[le]=="function"&&(this[le]=function(Yt){return function(){return S[Yt].apply(S,arguments)}}(le));for(var re=0;re<N.length;re++)S.on(N[re],this.emit.bind(this,N[re]));return this._read=function(ce){f("wrapped _read",ce),V&&(V=!1,S.resume())},this},typeof Symbol=="function"&&(C.prototype[Symbol.asyncIterator]=function(){return _===void 0&&(_=IP()),_(this)}),Object.defineProperty(C.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(C.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(C.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(v){this._readableState&&(this._readableState.flowing=v)}}),C._fromList=O,Object.defineProperty(C.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}});function O(S,v){if(v.length===0)return null;var G;return v.objectMode?G=v.buffer.shift():!S||S>=v.length?(v.decoder?G=v.buffer.join(""):v.buffer.length===1?G=v.buffer.first():G=v.buffer.concat(v.length),v.buffer.clear()):G=v.buffer.consume(S,v.decoder),G}function q(S){var v=S._readableState;f("endReadable",v.endEmitted),v.endEmitted||(v.ended=!0,process.nextTick(Q,v,S))}function Q(S,v){if(f("endReadableNT",S.endEmitted,S.length),!S.endEmitted&&S.length===0&&(S.endEmitted=!0,v.readable=!1,v.emit("end"),S.autoDestroy)){var G=v._writableState;(!G||G.autoDestroy&&G.finished)&&v.destroy()}}typeof Symbol=="function"&&(C.from=function(S,v){return D===void 0&&(D=MP()),D(C,S,v)});function X(S,v){for(var G=0,V=S.length;G<V;G++)if(S[G]===v)return G;return-1}return xp}var vp,r3;function i3(){if(r3)return vp;r3=1,vp=s;var t=jo().codes,e=t.ERR_METHOD_NOT_IMPLEMENTED,n=t.ERR_MULTIPLE_CALLBACK,r=t.ERR_TRANSFORM_ALREADY_TRANSFORMING,i=t.ERR_TRANSFORM_WITH_LENGTH_0,a=Go();Uo(s,a);function o(l,c){var h=this._transformState;h.transforming=!1;var d=h.writecb;if(d===null)return this.emit("error",new n);h.writechunk=null,h.writecb=null,c!=null&&this.push(c),d(l);var g=this._readableState;g.reading=!1,(g.needReadable||g.length<g.highWaterMark)&&this._read(g.highWaterMark)}function s(l){if(!(this instanceof s))return new s(l);a.call(this,l),this._transformState={afterTransform:o.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,l&&(typeof l.transform=="function"&&(this._transform=l.transform),typeof l.flush=="function"&&(this._flush=l.flush)),this.on("prefinish",f)}function f(){var l=this;typeof this._flush=="function"&&!this._readableState.destroyed?this._flush(function(c,h){u(l,c,h)}):u(this,null,null)}s.prototype.push=function(l,c){return this._transformState.needTransform=!1,a.prototype.push.call(this,l,c)},s.prototype._transform=function(l,c,h){h(new e("_transform()"))},s.prototype._write=function(l,c,h){var d=this._transformState;if(d.writecb=h,d.writechunk=l,d.writeencoding=c,!d.transforming){var g=this._readableState;(d.needTransform||g.needReadable||g.length<g.highWaterMark)&&this._read(g.highWaterMark)}},s.prototype._read=function(l){var c=this._transformState;c.writechunk!==null&&!c.transforming?(c.transforming=!0,this._transform(c.writechunk,c.writeencoding,c.afterTransform)):c.needTransform=!0},s.prototype._destroy=function(l,c){a.prototype._destroy.call(this,l,function(h){c(h)})};function u(l,c,h){if(c)return l.emit("error",c);if(h!=null&&l.push(h),l._writableState.length)throw new i;if(l._transformState.transforming)throw new r;return l.push(null)}return vp}var Ap,a3;function TP(){if(a3)return Ap;a3=1,Ap=e;var t=i3();Uo(e,t);function e(n){if(!(this instanceof e))return new e(n);t.call(this,n)}return e.prototype._transform=function(n,r,i){i(null,n)},Ap}var Ep,o3;function NP(){if(o3)return Ep;o3=1;var t;function e(h){var d=!1;return function(){d||(d=!0,h.apply(void 0,arguments))}}var n=jo().codes,r=n.ERR_MISSING_ARGS,i=n.ERR_STREAM_DESTROYED;function a(h){if(h)throw h}function o(h){return h.setHeader&&typeof h.abort=="function"}function s(h,d,g,b){b=e(b);var y=!1;h.on("close",function(){y=!0}),t===void 0&&(t=bp()),t(h,{readable:d,writable:g},function(E){if(E)return b(E);y=!0,b()});var w=!1;return function(E){if(!y&&!w){if(w=!0,o(h))return h.abort();if(typeof h.destroy=="function")return h.destroy();b(E||new i("pipe"))}}}function f(h){h()}function u(h,d){return h.pipe(d)}function l(h){return!h.length||typeof h[h.length-1]!="function"?a:h.pop()}function c(){for(var h=arguments.length,d=new Array(h),g=0;g<h;g++)d[g]=arguments[g];var b=l(d);if(Array.isArray(d[0])&&(d=d[0]),d.length<2)throw new r("streams");var y,w=d.map(function(E,_){var D=_<d.length-1,T=_>0;return s(E,D,T,function(N){y||(y=N),N&&w.forEach(f),!D&&(w.forEach(f),b(y))})});return d.reduce(u)}return Ep=c,Ep}var s3=An,Sp=np.EventEmitter,FP=Uo;FP(An,Sp),An.Readable=n3(),An.Writable=WE(),An.Duplex=Go(),An.Transform=i3(),An.PassThrough=TP(),An.finished=bp(),An.pipeline=NP(),An.Stream=An;function An(){Sp.call(this)}An.prototype.pipe=function(t,e){var n=this;function r(l){t.writable&&t.write(l)===!1&&n.pause&&n.pause()}n.on("data",r);function i(){n.readable&&n.resume&&n.resume()}t.on("drain",i),!t._isStdio&&(!e||e.end!==!1)&&(n.on("end",o),n.on("close",s));var a=!1;function o(){a||(a=!0,t.end())}function s(){a||(a=!0,typeof t.destroy=="function"&&t.destroy())}function f(l){if(u(),Sp.listenerCount(this,"error")===0)throw l}n.on("error",f),t.on("error",f);function u(){n.removeListener("data",r),t.removeListener("drain",i),n.removeListener("end",o),n.removeListener("close",s),n.removeListener("error",f),t.removeListener("error",f),n.removeListener("end",u),n.removeListener("close",u),t.removeListener("close",u)}return n.on("end",u),n.on("close",u),t.on("close",u),t.emit("pipe",n),t};function Yu(t){return t.replace(/%([0-9A-Fa-f]{2})/g,(e,n)=>String.fromCharCode(parseInt(n,16)))}function u3(t,e){return String(e).replace(t,n=>`%${n.charCodeAt(0).toString(16).toUpperCase().padStart(2,"0")}`)}function Wu(t){return u3(/[\n;\r\t=%&,\x00-\x1f\x7f-\xff]/g,t)}function Fr(t){return u3(/[\n\r\t%\x00-\x1f\x7f-\xff]/g,t)}function f3(t){if(!(t&&t.length)||t===".")return{};const e={};return t.replace(/\r?\n$/,"").split(";").forEach(n=>{const r=n.split("=",2);if(!(r[1]&&r[1].length))return;r[0]=r[0].trim();let i=e[r[0].trim()];i||(i=[],e[r[0]]=i),i.push(...r[1].split(",").map(a=>a.trim()).map(Yu))}),e}function l3(t){const e=t.split(" ").map(r=>r==="."||r===""?null:r);return{seq_id:e[0]&&Yu(e[0]),source:e[1]&&Yu(e[1]),type:e[2]&&Yu(e[2]),start:e[3]===null?null:parseInt(e[3],10),end:e[4]===null?null:parseInt(e[4],10),score:e[5]===null?null:parseFloat(e[5]),strand:e[6],phase:e[7],attributes:e[8]===null?null:f3(e[8])}}function c3(t){const e=/^\s*##\s*(\S+)\s*(.*)/.exec(t);if(!e)return null;const[,n]=e;let[,,r]=e;const i={directive:n};if(r.length&&(r=r.replace(/\r?\n$/,""),i.value=r),n==="sequence-region"){const a=r.split(/\s+/,3);return{...i,seq_id:a[0],start:a[1]&&a[1].replace(/\D/g,""),end:a[2]&&a[2].replace(/\D/g,"")}}else if(n==="genome-build"){const[a,o]=r.split(/\s+/,2);return{...i,source:a,buildName:o}}return i}function h3(t){const e=[];return Object.entries(t).forEach(([n,r])=>{if(!r)return;let i;r.hasOwnProperty("toString")?i=Wu(r.toString()):Array.isArray(r)?i=r.map(Wu).join(","):i=Wu(r),e.push(`${Wu(n)}=${i}`)}),e.length?e.join(";"):"."}function kP(t,e){const n=t.attributes===null||t.attributes===void 0?".":h3(t.attributes),i=`${[t.seq_id===null?".":Fr(t.seq_id),t.source===null?".":Fr(t.source),t.type===null?".":Fr(t.type),t.start===null?".":Fr(t.start),t.end===null?".":Fr(t.end),t.score===null?".":Fr(t.score),t.strand===null?".":Fr(t.strand),t.phase===null?".":Fr(t.phase),n].join(" ")}
450
- `;return e[i]?"":(e[i]=!0,i)}function Ic(t,e){if(Array.isArray(t))return t.map(r=>Ic(r,e)).join("");const n=[kP(t,e)];return BP(t)&&n.push(...t.child_features.map(r=>Ic(r,e)),...t.derived_features.map(r=>Ic(r,e))),n.join("")}function d3(t){return Ic(t,{})}function g3(t){let e=`##${t.directive}`;return t.value&&(e+=` ${t.value}`),e+=`
451
- `,e}function p3(t){return`# ${t.comment}
452
- `}function _p(t){return`>${t.id}${t.description?` ${t.description}`:""}
453
- ${t.sequence}
454
- `}function Mc(t){function e(n){return"attributes"in n?d3(n):"directive"in n?g3(n):"sequence"in n?_p(n):"comment"in n?p3(n):`# (invalid item found during format)
455
- `}return Array.isArray(t)?t.map(e):e(t)}function BP(t){return t.child_features!==void 0&&t.derived_features!==void 0}const LP=Object.freeze(Object.defineProperty({__proto__:null,escape:Wu,escapeColumn:Fr,formatAttributes:h3,formatComment:p3,formatDirective:g3,formatFeature:d3,formatItem:Mc,formatSequence:_p,parseAttributes:f3,parseDirective:c3,parseFeature:l3,unescape:Yu},Symbol.toStringTag,{value:"Module"})),m3={Parent:"child_features",Derives_from:"derived_features"};class b3{constructor(e){this.seqCallback=e,this.currentSequence=void 0}addLine(e){const n=/^>\s*(\S+)\s*(.*)/.exec(e);n?(this._flush(),this.currentSequence={id:n[1],sequence:""},n[2]&&(this.currentSequence.description=n[2].trim())):this.currentSequence&&/\S/.test(e)&&(this.currentSequence.sequence+=e.replace(/\s/g,""))}_flush(){this.currentSequence&&this.seqCallback(this.currentSequence)}finish(){this._flush()}}class y3{constructor(e){this.fastaParser=void 0,this.eof=!1,this.lineNumber=0,this._underConstructionTopLevel=[],this._underConstructionById={},this._completedReferences={},this._underConstructionOrphans={};const n=()=>{};this.featureCallback=e.featureCallback||n,this.endCallback=e.endCallback||n,this.commentCallback=e.commentCallback||n,this.errorCallback=e.errorCallback||n,this.directiveCallback=e.directiveCallback||n,this.sequenceCallback=e.sequenceCallback||n,this.disableDerivesFromReferences=e.disableDerivesFromReferences||!1,this.bufferSize=e.bufferSize===void 0?1e3:e.bufferSize}addLine(e){if(this.fastaParser){this.fastaParser.addLine(e);return}if(this.eof)return;if(this.lineNumber+=1,/^\s*[^#\s>]/.test(e)){this._bufferLine(e);return}const n=/^\s*(#+)(.*)/.exec(e);if(n){const[,r]=n;let[,,i]=n;if(r.length===3)this._emitAllUnderConstructionFeatures();else if(r.length===2){const a=c3(e);a&&(a.directive==="FASTA"?(this._emitAllUnderConstructionFeatures(),this.eof=!0,this.fastaParser=new b3(this.sequenceCallback)):this._emitItem(a))}else i=i.replace(/\s*/,""),this._emitItem({comment:i})}else if(!/^\s*$/.test(e))if(/^\s*>/.test(e))this._emitAllUnderConstructionFeatures(),this.eof=!0,this.fastaParser=new b3(this.sequenceCallback),this.fastaParser.addLine(e);else{const r=e.replace(/\r?\n?$/g,"");throw new Error(`GFF3 parse error. Cannot parse '${r}'.`)}}finish(){this._emitAllUnderConstructionFeatures(),this.fastaParser&&this.fastaParser.finish(),this.endCallback()}_emitItem(e){Array.isArray(e)?this.featureCallback(e):"directive"in e?this.directiveCallback(e):"comment"in e&&this.commentCallback(e)}_enforceBufferSizeLimit(e=0){const n=r=>{r&&Array.isArray(r)&&r[0].attributes&&r[0].attributes.ID&&r[0].attributes.ID[0]&&(r[0].attributes.ID.forEach(a=>{delete this._underConstructionById[a],delete this._completedReferences[a]}),r.forEach(a=>{a.child_features&&a.child_features.forEach(o=>n(o)),a.derived_features&&a.derived_features.forEach(o=>n(o))}))};for(;this._underConstructionTopLevel.length+e>this.bufferSize;){const r=this._underConstructionTopLevel.shift();r&&(this._emitItem(r),n(r))}}_emitAllUnderConstructionFeatures(){if(this._underConstructionTopLevel.forEach(this._emitItem.bind(this)),this._underConstructionTopLevel=[],this._underConstructionById={},this._completedReferences={},Array.from(Object.values(this._underConstructionOrphans)).length)throw new Error(`some features reference other features that do not exist in the file (or in the same '###' scope). ${Object.keys(this._underConstructionOrphans)}`)}_bufferLine(e){var n,r,i;const o={...l3(e),child_features:[],derived_features:[]},s=((n=o.attributes)===null||n===void 0?void 0:n.ID)||[],f=((r=o.attributes)===null||r===void 0?void 0:r.Parent)||[],u=this.disableDerivesFromReferences?[]:((i=o.attributes)===null||i===void 0?void 0:i.Derives_from)||[];if(!s.length&&!f.length&&!u.length){this._emitItem([o]);return}let l;s.forEach(c=>{const h=this._underConstructionById[c];h?(h[h.length-1].type!==o.type&&this._parseError(`multi-line feature "${c}" has inconsistent types: "${o.type}", "${h[h.length-1].type}"`),h.push(o),l=h):(l=[o],this._enforceBufferSizeLimit(1),!f.length&&!u.length&&this._underConstructionTopLevel.push(l),this._underConstructionById[c]=l,this._resolveReferencesTo(l,c))}),this._resolveReferencesFrom(l||[o],{Parent:f,Derives_from:u},s)}_resolveReferencesTo(e,n){const r=this._underConstructionOrphans[n];r&&(e.forEach(i=>{i.child_features.push(...r.Parent)}),e.forEach(i=>{i.derived_features.push(...r.Derives_from)}),delete this._underConstructionOrphans[n])}_parseError(e){this.eof=!0,this.errorCallback(`${this.lineNumber}: ${e}`)}_resolveReferencesFrom(e,n,r){function i(a,o,s){let f=a[o];f||(f={},a[o]=f);const u=f[s]||!1;return f[s]=!0,u}n.Parent.forEach(a=>{const o=this._underConstructionById[a];if(o){const s=m3.Parent;r.filter(f=>i(this._completedReferences,f,`Parent,${a}`)).length||o.forEach(f=>{f[s].push(e)})}else{let s=this._underConstructionOrphans[a];s||(s={Parent:[],Derives_from:[]},this._underConstructionOrphans[a]=s),s.Parent.push(e)}}),n.Derives_from.forEach(a=>{const o=this._underConstructionById[a];if(o){const s=m3.Derives_from;r.filter(f=>i(this._completedReferences,f,`Derives_from,${a}`)).length||o.forEach(f=>{f[s].push(e)})}else{let s=this._underConstructionOrphans[a];s||(s={Parent:[],Derives_from:[]},this._underConstructionOrphans[a]=s),s.Derives_from.push(e)}})}}function Cp(t){process&&process.nextTick?process.nextTick(t):t()}function w3(t){const e={encoding:"utf8",parseFeatures:!0,parseDirectives:!1,parseSequences:!0,parseComments:!1,bufferSize:1e3,disableDerivesFromReferences:!1,...t};return t.parseAll&&(e.parseFeatures=!0,e.parseDirectives=!0,e.parseComments=!0,e.parseSequences=!0),e}class RP extends s3.Transform{constructor(e={}){super({objectMode:!0}),this.textBuffer="";const n=w3(e);this.encoding=e.encoding||"utf8",this.decoder=new mP;const r=this.push.bind(this);this.parser=new y3({featureCallback:n.parseFeatures?r:void 0,directiveCallback:n.parseDirectives?r:void 0,commentCallback:n.parseComments?r:void 0,sequenceCallback:n.parseSequences?r:void 0,errorCallback:i=>this.emit("error",i),bufferSize:n.bufferSize,disableDerivesFromReferences:n.disableDerivesFromReferences})}_addLine(e){e&&this.parser.addLine(e)}_nextText(e){const n=(this.textBuffer+e).split(/\r?\n/);this.textBuffer=n.pop()||"",n.forEach(r=>this._addLine(r))}_transform(e,n,r){this._nextText(this.decoder.write(e)),Cp(r)}_flush(e){this.decoder.end&&this._nextText(this.decoder.end()),this.textBuffer!=null&&this._addLine(this.textBuffer),this.parser.finish(),Cp(e)}}function OP(t={}){return new RP(t)}function zP(t,e={}){if(!t)return[];const n=w3(e),r=[],i=r.push.bind(r),a=new y3({featureCallback:n.parseFeatures?i:void 0,directiveCallback:n.parseDirectives?i:void 0,commentCallback:n.parseComments?i:void 0,sequenceCallback:n.parseSequences?i:void 0,disableDerivesFromReferences:n.disableDerivesFromReferences||!1,bufferSize:1/0,errorCallback:o=>{throw o}});return t.split(/\r?\n/).forEach(a.addLine.bind(a)),a.finish(),r}function PP(t){const e=[],n=[];t.forEach(i=>{"sequence"in i?n.push(i):e.push(i)});let r=e.map(Mc).join("");return n.length&&(r+=`##FASTA
456
- `,r+=n.map(_p).join("")),r}class x3 extends s3.Transform{constructor(e={}){super(Object.assign(e,{objectMode:!0})),this.linesSinceLastSyncMark=0,this.haveWeEmittedData=!1,this.fastaMode=!1,this.minLinesBetweenSyncMarks=e.minSyncLines||100,this.insertVersionDirective=e.insertVersionDirective||!1}_transform(e,n,r){let i;if(!this.haveWeEmittedData&&this.insertVersionDirective){const a=Array.isArray(e)?e[0]:e;"directive"in a&&a.directive!=="gff-version"&&this.push(`##gff-version 3
457
- `)}if("sequence"in e&&!this.fastaMode&&(this.push(`##FASTA
458
- `),this.fastaMode=!0),Array.isArray(e)?i=e.map(Mc).join(""):i=Mc(e),this.push(i),this.linesSinceLastSyncMark>=this.minLinesBetweenSyncMarks)this.push(`###
448
+ )`},Symbol.toStringTag,{value:"Module"}))).map(([e,t])=>[e,u3.parse(t.trim())]));function Np(e){const t=["uint","int","float","long"];return{...e,fields:e.fields.map(n=>({...n,isArray:n.size&&n.type!=="char",arrayIsNumeric:n.size&&t.includes(n.type),isNumeric:!n.size&&t.includes(n.type)}))}}const SL={".":0,"-":-1,"+":1};function CL(e){var t;return e.length>=12&&!Number.isNaN(parseInt(e[9],10))&&((t=e[10])===null||t===void 0?void 0:t.split(",").filter(n=>!!n).length)===parseInt(e[9],10)}class TL{constructor(t={}){if(t.autoSql)this.autoSql=Np(_L.parse(t.autoSql));else if(t.type){if(!Mp[t.type])throw new Error("Type not found");this.autoSql=Np(Mp[t.type])}else this.autoSql=Np(Mp.defaultBedSchema),this.attemptDefaultBed=!0}parseLine(t,n={}){const{autoSql:r}=this,{uniqueId:i}=n,a=Array.isArray(t)?t:t.split(" ");let o={};if(!this.attemptDefaultBed||this.attemptDefaultBed&&CL(a))for(let s=0;s<r.fields.length;s++){const f=r.fields[s];let l=a[s];const{isNumeric:u,isArray:c,arrayIsNumeric:h,name:d}=f;if(l==null)break;if(l!=="."){if(u){const p=Number(l);l=Number.isNaN(p)?l:p}else c&&(l=l.split(","),l[l.length-1]===""&&l.pop(),h&&(l=l.map(p=>Number(p))));o[d]=l}}else{const s=["chrom","chromStart","chromEnd","name"];o=Object.fromEntries(a.map((f,l)=>[s[l]||"field"+l,f])),o.chromStart=+o.chromStart,o.chromEnd=+o.chromEnd,Number.isNaN(Number.parseFloat(o.field4))||(o.score=+o.field4,delete o.field4),(o.field5==="+"||o.field5==="-")&&(o.strand=o.field5,delete o.field5)}return i&&(o.uniqueId=i),o.strand=SL[o.strand]||0,o.chrom=decodeURIComponent(o.chrom),o}}const IL=Object.freeze(Object.defineProperty({__proto__:null,default:TL},Symbol.toStringTag,{value:"Module"}));let c3=class{constructor(t,n){this.blockPosition=t,this.dataPosition=n}toString(){return`${this.blockPosition}:${this.dataPosition}`}compareTo(t){return this.blockPosition-t.blockPosition||this.dataPosition-t.dataPosition}static min(...t){let n,r=0;for(;!n;r+=1)n=t[r];for(;r<t.length;r+=1)n.compareTo(t[r])>0&&(n=t[r]);return n}};function mo(e,t=0,n=!1){if(n)throw new Error("big-endian virtual file offsets not implemented");return new c3(e[t+7]*1099511627776+e[t+6]*4294967296+e[t+5]*16777216+e[t+4]*65536+e[t+3]*256+e[t+2],e[t+1]<<8|e[t])}let h3=class{constructor(t,n,r,i){this.minv=t,this.maxv=n,this.bin=r,this._fetchedSize=i}toUniqueString(){return`${this.minv}..${this.maxv} (bin ${this.bin}, fetchedSize ${this.fetchedSize()})`}toString(){return this.toUniqueString()}compareTo(t){return this.minv.compareTo(t.minv)||this.maxv.compareTo(t.maxv)||this.bin-t.bin}fetchedSize(){return this._fetchedSize!==void 0?this._fetchedSize:this.maxv.blockPosition+65536-this.minv.blockPosition}};function kL(e){return new Promise(t=>setTimeout(t,e))}function BL(e){if(e.greaterThan(Number.MAX_SAFE_INTEGER)||e.lessThan(Number.MIN_SAFE_INTEGER))throw new Error("integer overflow");return e.toNumber()}function DL(e){if(e&&e.aborted)if(typeof DOMException>"u"){const t=new Error("aborted");throw t.code="ERR_ABORTED",t}else throw new DOMException("aborted","AbortError")}function FL(e,t){return t.minv.blockPosition-e.maxv.blockPosition<65e3&&t.maxv.blockPosition-e.minv.blockPosition<5e6}function RL(e={}){return"aborted"in e?{signal:e}:e}function d3(e,t){const n=[];let r;if(e.length===0)return e;e.sort((i,a)=>{const o=i.minv.blockPosition-a.minv.blockPosition;return o===0?i.minv.dataPosition-a.minv.dataPosition:o});for(const i of e)(!t||i.maxv.compareTo(t)>0)&&(r===void 0?(n.push(i),r=i):FL(r,i)?i.maxv.compareTo(r.maxv)>0&&(r.maxv=i.maxv):(n.push(i),r=i));return n}function p3(e,t){return{lineCount:BL(Uu.fromBytesLE(Array.prototype.slice.call(e,t,t+8),!0))}}function dc(e,t){return e?e.compareTo(t)>0?t:e:t}function PL(e,t=n=>n){let n=0,r=0;const i=[],a={};for(let o=0;o<e.length;o+=1)if(!e[o]){if(r<o){let s=e.toString("utf8",r,o);s=t(s),i[n]=s,a[s]=n}r=o+1,n+=1}return{refNameToId:a,refIdToName:i}}let g3=class{constructor({filehandle:t,renameRefSeq:n=r=>r}){this.filehandle=t,this.renameRefSeq=n}};const ML=21578050;function NL(e,t){return e-e%t}function LL(e,t){return e-e%t+t}function OL(e,t){return t-=1,[[0,0],[1+(e>>26),1+(t>>26)],[9+(e>>23),9+(t>>23)],[73+(e>>20),73+(t>>20)],[585+(e>>17),585+(t>>17)],[4681+(e>>14),4681+(t>>14)]]}class bo extends g3{async lineCount(t,n){var r,i;return((i=(r=(await this.parse(n)).indices[t])===null||r===void 0?void 0:r.stats)===null||i===void 0?void 0:i.lineCount)||0}async _parse(t){const n=await this.filehandle.readFile(t);if(n.readUInt32LE(0)!==ML)throw new Error("Not a BAI file");const r=n.readInt32LE(4),a=((1<<(5+1)*3)-1)/7;let o=8,s;const f=new Array(r);for(let l=0;l<r;l++){const u=n.readInt32LE(o);let c;o+=4;const h={};for(let b=0;b<u;b+=1){const y=n.readUInt32LE(o);if(o+=4,y===a+1)o+=4,c=p3(n,o+16),o+=32;else{if(y>a+1)throw new Error("bai index contains too many bins, please use CSI");{const w=n.readInt32LE(o);o+=4;const S=new Array(w);for(let C=0;C<w;C++){const _=mo(n,o);o+=8;const k=mo(n,o);o+=8,s=dc(s,_),S[C]=new h3(_,k,y)}h[y]=S}}}const d=n.readInt32LE(o);o+=4;const p=new Array(d);for(let b=0;b<d;b++){const y=mo(n,o);o+=8,s=dc(s,y),p[b]=y}f[l]={binIndex:h,linearIndex:p,stats:c}}return{bai:!0,firstDataLine:s,maxBlockSize:65536,indices:f,refCount:r}}async indexCov(t,n,r,i={}){const o=n!==void 0,f=(await this.parse(i)).indices[t];if(!f)return[];const{linearIndex:l=[],stats:u}=f;if(l.length===0)return[];const c=r===void 0?(l.length-1)*16384:LL(r,16384),h=n===void 0?0:NL(n,16384),d=o?new Array((c-h)/16384):new Array(l.length-1),p=l[l.length-1].blockPosition;if(c>(l.length-1)*16384)throw new Error("query outside of range of linear index");let b=l[h/16384].blockPosition;for(let y=h/16384,w=0;y<c/16384;y++,w++)d[w]={score:l[y+1].blockPosition-b,start:y*16384,end:y*16384+16384},b=l[y+1].blockPosition;return d.map(y=>({...y,score:y.score*((u==null?void 0:u.lineCount)||0)/p}))}async blocksForRange(t,n,r,i={}){n<0&&(n=0);const a=await this.parse(i);if(!a)return[];const o=a.indices[t];if(!o)return[];const s=OL(n,r),f=[];for(const[d,p]of s)for(let b=d;b<=p;b++)if(o.binIndex[b]){const y=o.binIndex[b];for(const w of y)f.push(w)}const l=o.linearIndex.length;let u;const c=Math.min(n>>14,l-1),h=Math.min(r>>14,l-1);for(let d=c;d<=h;++d){const p=o.linearIndex[d];p&&(!u||p.compareTo(u)<0)&&(u=p)}return d3(f,u)}async parse(t={}){return this.setupP||(this.setupP=this._parse(t).catch(n=>{throw this.setupP=void 0,n})),this.setupP}async hasRefSeq(t,n={}){var r;return!!(!((r=(await this.parse(n)).indices[t])===null||r===void 0)&&r.binIndex)}}var oi=ye.Buffer,Lp=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];typeof Int32Array<"u"&&(Lp=new Int32Array(Lp));function m3(e){if(oi.isBuffer(e))return e;var t=typeof oi.alloc=="function"&&typeof oi.from=="function";if(typeof e=="number")return t?oi.alloc(e):new oi(e);if(typeof e=="string")return t?oi.from(e):new oi(e);throw new Error("input must be buffer, number, or string, received "+typeof e)}function zL(e){var t=m3(4);return t.writeInt32BE(e,0),t}function Op(e,t){e=m3(e),oi.isBuffer(t)&&(t=t.readUInt32BE(0));for(var n=~~t^-1,r=0;r<e.length;r++)n=Lp[(n^e[r])&255]^n>>>8;return n^-1}function zp(){return zL(Op.apply(null,arguments))}zp.signed=function(){return Op.apply(null,arguments)},zp.unsigned=function(){return Op.apply(null,arguments)>>>0};var UL=zp;const GL=Gs(UL),HL=21582659,VL=38359875;function jL(e,t){return e*2**t}function b3(e,t){return Math.floor(e/2**t)}let pc=class extends g3{constructor(){super(...arguments),this.maxBinNumber=0,this.depth=0,this.minShift=0}async lineCount(t,n){var r,i;return((i=(r=(await this.parse(n)).indices[t])===null||r===void 0?void 0:r.stats)===null||i===void 0?void 0:i.lineCount)||0}async indexCov(){return[]}parseAuxData(t,n){const r=t.readInt32LE(n),i=r&65536?"zero-based-half-open":"1-based-closed",a={0:"generic",1:"SAM",2:"VCF"}[r&15];if(!a)throw new Error(`invalid Tabix preset format flags ${r}`);const o={ref:t.readInt32LE(n+4),start:t.readInt32LE(n+8),end:t.readInt32LE(n+12)},s=t.readInt32LE(n+16),f=s?String.fromCharCode(s):"",l=t.readInt32LE(n+20),u=t.readInt32LE(n+24);return{columnNumbers:o,coordinateType:i,metaValue:s,metaChar:f,skipLines:l,format:a,formatFlags:r,...PL(t.subarray(n+28,n+28+u),this.renameRefSeq)}}async _parse(t){const n=await this.filehandle.readFile(t),r=await Kr(n);let i;if(r.readUInt32LE(0)===HL)i=1;else if(r.readUInt32LE(0)===VL)i=2;else throw new Error("Not a CSI file");this.minShift=r.readInt32LE(4),this.depth=r.readInt32LE(8),this.maxBinNumber=((1<<(this.depth+1)*3)-1)/7;const a=r.readInt32LE(12),o=a>=30?this.parseAuxData(r,16):void 0,s=r.readInt32LE(16+a);let f=16+a+4,l;const u=new Array(s);for(let c=0;c<s;c++){const h=r.readInt32LE(f);f+=4;const d={};let p;for(let b=0;b<h;b++){const y=r.readUInt32LE(f);if(f+=4,y>this.maxBinNumber)p=p3(r,f+28),f+=28+16;else{l=dc(l,mo(r,f)),f+=8;const w=r.readInt32LE(f);f+=4;const S=new Array(w);for(let C=0;C<w;C+=1){const _=mo(r,f);f+=8;const k=mo(r,f);f+=8,l=dc(l,_),S[C]=new h3(_,k,y)}d[y]=S}}u[c]={binIndex:d,stats:p}}return{csiVersion:i,firstDataLine:l,indices:u,refCount:s,csi:!0,maxBlockSize:65536,...o}}async blocksForRange(t,n,r,i={}){n<0&&(n=0);const a=await this.parse(i),o=a==null?void 0:a.indices[t];if(!o)return[];const s=this.reg2bins(n,r);if(s.length===0)return[];const f=[];for(const[l,u]of s)for(let c=l;c<=u;c++)if(o.binIndex[c]){const h=o.binIndex[c];for(const d of h)f.push(d)}return d3(f,new c3(0,0))}reg2bins(t,n){t-=1,t<1&&(t=1),n>2**50&&(n=2**34),n-=1;let r=0,i=0,a=this.minShift+this.depth*3;const o=[];for(;r<=this.depth;a-=3,i+=jL(1,r*3),r+=1){const s=i+b3(t,a),f=i+b3(n,a);if(f-s+o.length>this.maxBinNumber)throw new Error(`query ${t}-${n} is too large for current binning scheme (shift ${this.minShift}, depth ${this.depth}), try a smaller query or a coarser index binning scheme`);o.push([s,f])}return o}async parse(t={}){return this.setupP||(this.setupP=this._parse(t).catch(n=>{throw this.setupP=void 0,n})),this.setupP}async hasRefSeq(t,n={}){var r;return!!(!((r=(await this.parse(n)).indices[t])===null||r===void 0)&&r.binIndex)}};const dn={BAM_FPAIRED:1,BAM_FPROPER_PAIR:2,BAM_FUNMAP:4,BAM_FMUNMAP:8,BAM_FREVERSE:16,BAM_FMREVERSE:32,BAM_FREAD1:64,BAM_FREAD2:128,BAM_FSECONDARY:256,BAM_FQCFAIL:512,BAM_FDUP:1024,BAM_FSUPPLEMENTARY:2048},y3="=ACMGRSVTWYHKDBN".split(""),Tl="MIDNSHP=X???????".split("");class w3{constructor(t){this.data={},this._tagList=[],this._allTagsParsed=!1;const{bytes:n,fileOffset:r}=t,{byteArray:i,start:a}=n;this.data={},this.bytes=n,this._id=r,this._refID=i.readInt32LE(a+4),this.data.start=i.readInt32LE(a+8),this.flags=(i.readInt32LE(a+16)&4294901760)>>16}get(t){return this[t]?this.data[t]?this.data[t]:(this.data[t]=this[t](),this.data[t]):this._get(t.toLowerCase())}end(){return this.get("start")+this.get("length_on_ref")}seq_id(){return this._refID}_get(t){return t in this.data?this.data[t]:(this.data[t]=this._parseTag(t),this.data[t])}_tags(){this._parseAllTags();let t=["seq"];this.isSegmentUnmapped()||t.push("start","end","strand","score","qual","MQ","CIGAR","length_on_ref","template_length"),this.isPaired()&&t.push("next_segment_position","pair_orientation"),t=t.concat(this._tagList||[]);for(const r of Object.keys(this.data))r[0]!=="_"&&r!=="next_seq_id"&&t.push(r);const n={};return t.filter(r=>{if(r in this.data&&this.data[r]===void 0||r==="CG"||r==="cg")return!1;const i=r.toLowerCase(),a=n[i];return n[i]=!0,!a})}parent(){}children(){return this.get("subfeatures")}id(){return this._id}mq(){const t=(this.get("_bin_mq_nl")&65280)>>8;return t===255?void 0:t}score(){return this.get("mq")}qual(){var t;return(t=this.qualRaw())===null||t===void 0?void 0:t.join(" ")}qualRaw(){if(this.isSegmentUnmapped())return;const{start:t,byteArray:n}=this.bytes,r=t+36+this.get("_l_read_name")+this.get("_n_cigar_op")*4+this.get("_seq_bytes"),i=this.get("seq_length");return n.subarray(r,r+i)}strand(){return this.isReverseComplemented()?-1:1}multi_segment_next_segment_strand(){if(!this.isMateUnmapped())return this.isMateReverseComplemented()?-1:1}name(){return this.get("_read_name")}_read_name(){const t=this.get("_l_read_name"),{byteArray:n,start:r}=this.bytes;return n.toString("ascii",r+36,r+36+t-1)}_parseTag(t){if(this._allTagsParsed)return;const{byteArray:n,start:r}=this.bytes;let i=this._tagOffset||r+36+this.get("_l_read_name")+this.get("_n_cigar_op")*4+this.get("_seq_bytes")+this.get("seq_length");const a=this.bytes.end;let o;for(;i<a&&o!==t;){const s=String.fromCharCode(n[i],n[i+1]);o=s.toLowerCase();const f=String.fromCharCode(n[i+2]);i+=3;let l;switch(f){case"A":{l=String.fromCharCode(n[i]),i+=1;break}case"i":{l=n.readInt32LE(i),i+=4;break}case"I":{l=n.readUInt32LE(i),i+=4;break}case"c":{l=n.readInt8(i),i+=1;break}case"C":{l=n.readUInt8(i),i+=1;break}case"s":{l=n.readInt16LE(i),i+=2;break}case"S":{l=n.readUInt16LE(i),i+=2;break}case"f":{l=n.readFloatLE(i),i+=4;break}case"Z":case"H":{for(l="";i<=a;){const u=n[i++];if(u===0)break;l+=String.fromCharCode(u)}break}case"B":{l="";const u=n[i++],c=String.fromCharCode(u),h=n.readInt32LE(i);if(i+=4,c==="i")if(s==="CG")for(let d=0;d<h;d++){const p=n.readInt32LE(i),b=p>>4,y=Tl[p&15];l+=b+y,i+=4}else for(let d=0;d<h;d++)l+=n.readInt32LE(i),d+1<h&&(l+=","),i+=4;if(c==="I")if(s==="CG")for(let d=0;d<h;d++){const p=n.readUInt32LE(i),b=p>>4,y=Tl[p&15];l+=b+y,i+=4}else for(let d=0;d<h;d++)l+=n.readUInt32LE(i),d+1<h&&(l+=","),i+=4;if(c==="s")for(let d=0;d<h;d++)l+=n.readInt16LE(i),d+1<h&&(l+=","),i+=2;if(c==="S")for(let d=0;d<h;d++)l+=n.readUInt16LE(i),d+1<h&&(l+=","),i+=2;if(c==="c")for(let d=0;d<h;d++)l+=n.readInt8(i),d+1<h&&(l+=","),i+=1;if(c==="C")for(let d=0;d<h;d++)l+=n.readUInt8(i),d+1<h&&(l+=","),i+=1;if(c==="f")for(let d=0;d<h;d++)l+=n.readFloatLE(i),d+1<h&&(l+=","),i+=4;break}default:console.warn(`Unknown BAM tag type '${f}', tags may be incomplete`),l=void 0,i=a}if(this._tagOffset=i,this._tagList.push(s),o===t)return l;this.data[o]=l}this._allTagsParsed=!0}_parseAllTags(){this._parseTag("")}_parseCigar(t){return t.match(/\d+\D/g).map(n=>[n.match(/\D/)[0].toUpperCase(),Number.parseInt(n,10)])}isPaired(){return!!(this.flags&dn.BAM_FPAIRED)}isProperlyPaired(){return!!(this.flags&dn.BAM_FPROPER_PAIR)}isSegmentUnmapped(){return!!(this.flags&dn.BAM_FUNMAP)}isMateUnmapped(){return!!(this.flags&dn.BAM_FMUNMAP)}isReverseComplemented(){return!!(this.flags&dn.BAM_FREVERSE)}isMateReverseComplemented(){return!!(this.flags&dn.BAM_FMREVERSE)}isRead1(){return!!(this.flags&dn.BAM_FREAD1)}isRead2(){return!!(this.flags&dn.BAM_FREAD2)}isSecondary(){return!!(this.flags&dn.BAM_FSECONDARY)}isFailedQc(){return!!(this.flags&dn.BAM_FQCFAIL)}isDuplicate(){return!!(this.flags&dn.BAM_FDUP)}isSupplementary(){return!!(this.flags&dn.BAM_FSUPPLEMENTARY)}cigar(){if(this.isSegmentUnmapped())return;const{byteArray:t,start:n}=this.bytes,r=this.get("_n_cigar_op");let i=n+36+this.get("_l_read_name");const a=this.get("seq_length");let o="",s=0,f=t.readInt32LE(i),l=f>>4,u=Tl[f&15];if(u==="S"&&l===a)return i+=4,f=t.readInt32LE(i),l=f>>4,u=Tl[f&15],u!=="N"&&console.warn("CG tag with no N tag"),this.data.length_on_ref=l,this.get("CG");for(let c=0;c<r;++c)f=t.readInt32LE(i),l=f>>4,u=Tl[f&15],o+=l+u,u!=="H"&&u!=="S"&&u!=="I"&&(s+=l),i+=4;return this.data.length_on_ref=s,o}_flags(){}length_on_ref(){return this.data.length_on_ref?this.data.length_on_ref:(this.get("cigar"),this.data.length_on_ref)}_n_cigar_op(){return this.get("_flag_nc")&65535}_l_read_name(){return this.get("_bin_mq_nl")&255}_seq_bytes(){return this.get("seq_length")+1>>1}getReadBases(){return this.seq()}seq(){const{byteArray:t,start:n}=this.bytes,r=n+36+this.get("_l_read_name")+this.get("_n_cigar_op")*4,i=this.get("_seq_bytes"),a=this.get("seq_length");let o="",s=0;for(let f=0;f<i;++f){const l=t[r+f];o+=y3[(l&240)>>4],s++,s<a&&(o+=y3[l&15],s++)}return o}getPairOrientation(){if(!this.isSegmentUnmapped()&&!this.isMateUnmapped()&&this._refID===this._next_refid()){const t=this.isReverseComplemented()?"R":"F",n=this.isMateReverseComplemented()?"R":"F";let r=" ",i=" ";this.isRead1()?(r="1",i="2"):this.isRead2()&&(r="2",i="1");const a=[];return this.template_length()>0?(a[0]=t,a[1]=r,a[2]=n,a[3]=i):(a[2]=t,a[3]=r,a[0]=n,a[1]=i),a.join("")}return""}_bin_mq_nl(){return this.bytes.byteArray.readInt32LE(this.bytes.start+12)}_flag_nc(){return this.bytes.byteArray.readInt32LE(this.bytes.start+16)}seq_length(){return this.bytes.byteArray.readInt32LE(this.bytes.start+20)}_next_refid(){return this.bytes.byteArray.readInt32LE(this.bytes.start+24)}_next_pos(){return this.bytes.byteArray.readInt32LE(this.bytes.start+28)}template_length(){return this.bytes.byteArray.readInt32LE(this.bytes.start+32)}toJSON(){const t={};for(const n of Object.keys(this))n.charAt(0)==="_"||n==="bytes"||(t[n]=this[n]);return t}}function v3(e){const t=e.split(/\r?\n/),n=[];for(const r of t){const[i,...a]=r.split(/\t/);i&&n.push({tag:i.slice(1),data:a.map(o=>{const[s,f]=o.split(":",2);return{tag:s,value:f}})})}return n}const x3=21840194,A3=65536;async function qL(e){let t=[];for await(const n of e)t=t.concat(n);return t}class ZL{read(){throw new Error("never called")}stat(){throw new Error("never called")}readFile(){throw new Error("never called")}close(){throw new Error("never called")}}class E3{constructor({bamFilehandle:t,bamPath:n,bamUrl:r,baiPath:i,baiFilehandle:a,baiUrl:o,csiPath:s,csiFilehandle:f,csiUrl:l,htsget:u,yieldThreadTime:c=100,renameRefSeqs:h=d=>d}){if(this.htsget=!1,this.featureCache=new Yu({cache:new Qu({maxSize:50}),fill:async(d,p)=>{const{chunk:b,opts:y}=d,{data:w,cpositions:S,dpositions:C}=await this._readChunk({chunk:b,opts:{...y,signal:p}});return this.readBamFeatures(w,S,C,b)}}),this.renameRefSeq=h,t)this.bam=t;else if(n)this.bam=new ct(n);else if(r)this.bam=new ji(r);else if(u)this.htsget=!0,this.bam=new ZL;else throw new Error("unable to initialize bam");if(f)this.index=new pc({filehandle:f});else if(s)this.index=new pc({filehandle:new ct(s)});else if(l)this.index=new pc({filehandle:new ji(l)});else if(a)this.index=new bo({filehandle:a});else if(i)this.index=new bo({filehandle:new ct(i)});else if(o)this.index=new bo({filehandle:new ji(o)});else if(n)this.index=new bo({filehandle:new ct(`${n}.bai`)});else if(r)this.index=new bo({filehandle:new ji(`${r}.bai`)});else if(u)this.htsget=!0;else throw new Error("unable to infer index format");this.yieldThreadTime=c}async getHeaderPre(t){const n=RL(t);if(!this.index)return;const r=await this.index.parse(n),i=r.firstDataLine?r.firstDataLine.blockPosition+65535:void 0;let a;if(i){const u=i+A3,c=await this.bam.read(ye.Buffer.alloc(u),0,u,0,n);if(!c.bytesRead)throw new Error("Error reading header");a=c.buffer.subarray(0,Math.min(c.bytesRead,i))}else a=await this.bam.readFile(n);const o=await Kr(a);if(o.readInt32LE(0)!==x3)throw new Error("Not a BAM file");const s=o.readInt32LE(4);this.header=o.toString("utf8",8,8+s);const{chrToIndex:f,indexToChr:l}=await this._readRefSeqs(s+8,65535,n);return this.chrToIndex=f,this.indexToChr=l,v3(this.header)}getHeader(t){return this.headerP||(this.headerP=this.getHeaderPre(t).catch(n=>{throw this.headerP=void 0,n})),this.headerP}async getHeaderText(t={}){return await this.getHeader(t),this.header}async _readRefSeqs(t,n,r){if(t>n)return this._readRefSeqs(t,n*2,r);const i=n+A3,{bytesRead:a,buffer:o}=await this.bam.read(ye.Buffer.alloc(i),0,n,0,r);if(!a)throw new Error("Error reading refseqs from header");const s=await Kr(o.subarray(0,Math.min(a,n))),f=s.readInt32LE(t);let l=t+4;const u={},c=[];for(let h=0;h<f;h+=1){const d=s.readInt32LE(l),p=this.renameRefSeq(s.toString("utf8",l+4,l+4+d-1)),b=s.readInt32LE(l+d+4);if(u[p]=h,c.push({refName:p,length:b}),l=l+8+d,l>s.length)return console.warn(`BAM header is very big. Re-fetching ${n} bytes.`),this._readRefSeqs(t,n*2,r)}return{chrToIndex:u,indexToChr:c}}async getRecordsForRange(t,n,r,i){return qL(this.streamRecordsForRange(t,n,r,i))}async*streamRecordsForRange(t,n,r,i){var a;await this.getHeader(i);const o=(a=this.chrToIndex)===null||a===void 0?void 0:a[t];if(o===void 0||!this.index)yield[];else{const s=await this.index.blocksForRange(o,n-1,r,i);yield*this._fetchChunkFeatures(s,o,n,r,i)}}async*_fetchChunkFeatures(t,n,r,i,a={}){const{viewAsPairs:o}=a,s=[];let f=!1;for(const l of t){const u=await this.featureCache.get(l.toString(),{chunk:l,opts:a},a.signal),c=[];for(const h of u)if(h.seq_id()===n)if(h.get("start")>=i){f=!0;break}else h.get("end")>=r&&c.push(h);if(s.push(c),yield c,f)break}DL(a.signal),o&&(yield this.fetchPairs(n,s,a))}async fetchPairs(t,n,r){const{pairAcrossChr:i,maxInsertSize:a=2e5}=r,o={},s={};n.map(h=>{const d={};for(const p of h){const b=p.name(),y=p.id();d[b]||(d[b]=0),d[b]++,s[y]=1}for(const[p,b]of Object.entries(d))b===1&&(o[p]=!0)});const f=[];n.map(h=>{for(const d of h){const p=d.name(),b=d.get("start"),y=d._next_pos(),w=d._next_refid();this.index&&o[p]&&(i||w===t&&Math.abs(b-y)<a)&&f.push(this.index.blocksForRange(w,y,y+1,r))}});const l=new Map,u=await Promise.all(f);for(const h of u.flat())l.has(h.toString())||l.set(h.toString(),h);return(await Promise.all([...l.values()].map(async h=>{const{data:d,cpositions:p,dpositions:b,chunk:y}=await this._readChunk({chunk:h,opts:r}),w=[];for(const S of await this.readBamFeatures(d,p,b,y))o[S.get("name")]&&!s[S.id()]&&w.push(S);return w}))).flat()}async _readRegion(t,n,r={}){const{bytesRead:i,buffer:a}=await this.bam.read(ye.Buffer.alloc(n),0,n,t,r);return a.subarray(0,Math.min(i,n))}async _readChunk({chunk:t,opts:n}){const r=await this._readRegion(t.minv.blockPosition,t.fetchedSize(),n),{buffer:i,cpositions:a,dpositions:o}=await jv(r,t);return{data:i,cpositions:a,dpositions:o,chunk:t}}async readBamFeatures(t,n,r,i){let a=0;const o=[];let s=0,f=+Date.now();for(;a+4<t.length;){const l=t.readInt32LE(a),u=a+4+l-1;if(r){for(;a+i.minv.dataPosition>=r[s++];);s--}if(u<t.length){const c=new w3({bytes:{byteArray:t,start:a,end:u},fileOffset:n.length>0?n[s]*256+(a-r[s])+i.minv.dataPosition+1:GL.signed(t.slice(a,u))});o.push(c),this.yieldThreadTime&&+Date.now()-f>this.yieldThreadTime&&(await kL(1),f=+Date.now())}a=u+1}return o}async hasRefSeq(t){var n,r;const i=(n=this.chrToIndex)===null||n===void 0?void 0:n[t];return i===void 0?!1:(r=this.index)===null||r===void 0?void 0:r.hasRefSeq(i)}async lineCount(t){var n;const r=(n=this.chrToIndex)===null||n===void 0?void 0:n[t];return r===void 0||!this.index?0:this.index.lineCount(r)}async indexCov(t,n,r){var i;if(!this.index)return[];await this.index.parse();const a=(i=this.chrToIndex)===null||i===void 0?void 0:i[t];return a===void 0?[]:this.index.indexCov(a,n,r)}async blocksForRange(t,n,r,i){var a;if(!this.index)return[];await this.index.parse();const o=(a=this.chrToIndex)===null||a===void 0?void 0:a[t];return o===void 0?[]:this.index.blocksForRange(o,n,r,i)}}async function _3(e,t){const n=await Promise.all(e.map(async r=>{const{url:i,headers:a}=r;if(i.startsWith("data:"))return ye.Buffer.from(i.split(",")[1],"base64");{const{referer:o,...s}=a,f=await fetch(i,{...t,headers:{...t==null?void 0:t.headers,...s}});if(!f.ok)throw new Error(`HTTP ${f.status} fetching ${i}: ${await f.text()}`);return ye.Buffer.from(await f.arrayBuffer())}}));return ye.Buffer.concat(await Promise.all(n.map(r=>Kr(r))))}class WL extends E3{constructor(t){super({htsget:!0}),this.baseUrl=t.baseUrl,this.trackId=t.trackId}async*streamRecordsForRange(t,n,r,i){var a;const s=`${`${this.baseUrl}/${this.trackId}`}?referenceName=${t}&start=${n}&end=${r}&format=BAM`,f=(a=this.chrToIndex)===null||a===void 0?void 0:a[t];if(f===void 0)yield[];else{const l=await fetch(s,{...i});if(!l.ok)throw new Error(`HTTP ${l.status} fetching ${s}: ${await l.text()}`);const u=await l.json(),c=await _3(u.htsget.urls.slice(1),i);yield*this._fetchChunkFeatures([{buffer:c,_fetchedSize:void 0,bin:0,compareTo(){return 0},toUniqueString(){return`${t}_${n}_${r}`},fetchedSize(){return 0},minv:{dataPosition:0,blockPosition:0,compareTo:()=>0},maxv:{dataPosition:Number.MAX_SAFE_INTEGER,blockPosition:0,compareTo:()=>0},toString(){return`${t}_${n}_${r}`}}],f,n,r,i)}}async _readChunk({chunk:t}){if(!t.buffer)throw new Error("expected chunk.buffer in htsget");return{data:t.buffer,cpositions:[],dpositions:[],chunk:t}}async getHeader(t={}){const n=`${this.baseUrl}/${this.trackId}?referenceName=na&class=header`,r=await fetch(n,t);if(!r.ok)throw new Error(`HTTP ${r.status} fetching ${n}: ${await r.text()}`);const i=await r.json(),a=await _3(i.htsget.urls,t);if(a.readInt32LE(0)!==x3)throw new Error("Not a BAM file");const o=a.readInt32LE(4),s=a.toString("utf8",8,8+o),f=v3(s),l=[],u={},c=f.filter(h=>h.tag==="SQ");for(const[h,d]of c.entries()){let p="",b=0;for(const y of d.data)y.tag==="SN"?p=y.value:y.tag==="LN"&&(b=+y.value);u[p]=h,l[h]={refName:p,length:b}}return this.chrToIndex=u,this.indexToChr=l,f}}const YL=Object.freeze(Object.defineProperty({__proto__:null,BAI:bo,BamFile:E3,BamRecord:w3,CSI:pc,HtsgetFile:WL},Symbol.toStringTag,{value:"Module"}));function S3(e){if(e.greaterThan(Number.MAX_SAFE_INTEGER)||e.lessThan(Number.MIN_SAFE_INTEGER))throw new Error("integer overflow");return e.toNumber()}class QL extends Error{}function ua(e){if(e&&e.aborted){if(typeof DOMException<"u")throw new DOMException("aborted","AbortError");{const t=new QL("aborted");throw t.code="ERR_ABORTED",t}}}function XL(e,t){return t.minv.blockPosition-e.maxv.blockPosition<65e3&&t.maxv.blockPosition-e.minv.blockPosition<5e6}function C3(e,t){const n=[];let r=null;return e.length===0?e:(e.sort(function(i,a){const o=i.minv.blockPosition-a.minv.blockPosition;return o!==0?o:i.minv.dataPosition-a.minv.dataPosition}),e.forEach(i=>{(!t||i.maxv.compareTo(t)>0)&&(r===null?(n.push(i),r=i):XL(r,i)?i.maxv.compareTo(r.maxv)>0&&(r.maxv=i.maxv):(n.push(i),r=i))}),n)}class Up{constructor(t,n){this.blockPosition=t,this.dataPosition=n}toString(){return`${this.blockPosition}:${this.dataPosition}`}compareTo(t){return this.blockPosition-t.blockPosition||this.dataPosition-t.dataPosition}static min(...t){let n,r=0;for(;!n;r+=1)n=t[r];for(;r<t.length;r+=1)n.compareTo(t[r])>0&&(n=t[r]);return n}}function yo(e,t=0,n=!1){if(n)throw new Error("big-endian virtual file offsets not implemented");return new Up(e[t+7]*1099511627776+e[t+6]*4294967296+e[t+5]*16777216+e[t+4]*65536+e[t+3]*256+e[t+2],e[t+1]<<8|e[t])}class gc{constructor(t,n,r,i=void 0){this.minv=t,this.maxv=n,this.bin=r,this._fetchedSize=i}toUniqueString(){return`${this.minv}..${this.maxv} (bin ${this.bin}, fetchedSize ${this.fetchedSize()})`}toString(){return this.toUniqueString()}compareTo(t){return this.minv.compareTo(t.minv)||this.maxv.compareTo(t.maxv)||this.bin-t.bin}fetchedSize(){return this._fetchedSize!==void 0?this._fetchedSize:this.maxv.blockPosition+65536-this.minv.blockPosition}}class T3{constructor({filehandle:t,renameRefSeqs:n=r=>r}){this.filehandle=t,this.renameRefSeq=n}async getMetadata(t={}){const{indices:n,...r}=await this.parse(t);return r}_findFirstData(t,n){return t?t.compareTo(n)>0?n:t:n}async parse(t={}){return this.parseP||(this.parseP=this._parse(t).catch(n=>{throw this.parseP=void 0,n})),this.parseP}async hasRefSeq(t,n={}){return!!((await this.parse(n)).indices[t]||{}).binIndex}}const $L=21578324,I3=14;function KL(e,t){return e+=1,t-=1,[[0,0],[1+(e>>26),1+(t>>26)],[9+(e>>23),9+(t>>23)],[73+(e>>20),73+(t>>20)],[585+(e>>17),585+(t>>17)],[4681+(e>>14),4681+(t>>14)]]}class mc extends T3{async lineCount(t,n={}){const r=await this.parse(n);if(!r)return-1;const i=r.refNameToId[t];if(!r.indices[i])return-1;const{stats:o}=r.indices[i];return o?o.lineCount:-1}async _parse(t={}){const n=await this.filehandle.readFile(t),r=await Kr(n);if(ua(t.signal),r.readUInt32LE(0)!==$L)throw new Error("Not a TBI file");const i=r.readInt32LE(4),a=r.readInt32LE(8),o=a&65536?"zero-based-half-open":"1-based-closed",f={0:"generic",1:"SAM",2:"VCF"}[a&15];if(!f)throw new Error(`invalid Tabix preset format flags ${a}`);const l={ref:r.readInt32LE(12),start:r.readInt32LE(16),end:r.readInt32LE(20)},u=r.readInt32LE(24),c=5,h=((1<<(c+1)*3)-1)/7,d=2**(14+c*3),p=u?String.fromCharCode(u):null,b=r.readInt32LE(28),y=r.readInt32LE(32),{refNameToId:w,refIdToName:S}=this._parseNameBytes(r.slice(36,36+y));let C=36+y,_;return{indices:new Array(i).fill(0).map(()=>{const B=r.readInt32LE(C);C+=4;const I={};let R;for(let O=0;O<B;O+=1){const ne=r.readUInt32LE(C);if(C+=4,ne>h+1)throw new Error("tabix index contains too many bins, please use a CSI index");if(ne===h+1){const oe=r.readInt32LE(C);C+=4,oe===2&&(R=this.parsePseudoBin(r,C)),C+=16*oe}else{const oe=r.readInt32LE(C);C+=4;const pe=new Array(oe);for(let ke=0;ke<oe;ke+=1){const Xe=yo(r,C),De=yo(r,C+8);C+=16,_=this._findFirstData(_,Xe),pe[ke]=new gc(Xe,De,ne)}I[ne]=pe}}const M=r.readInt32LE(C);C+=4;const j=new Array(M);for(let O=0;O<M;O+=1)j[O]=yo(r,C),C+=8,_=this._findFirstData(_,j[O]);return{binIndex:I,linearIndex:j,stats:R}}),metaChar:p,maxBinNumber:h,maxRefLength:d,skipLines:b,firstDataLine:_,columnNumbers:l,coordinateType:o,format:f,refIdToName:S,refNameToId:w,maxBlockSize:65536}}parsePseudoBin(t,n){return{lineCount:S3(Uu.fromBytesLE(t.slice(n+16,n+24),!0))}}_parseNameBytes(t){let n=0,r=0;const i=[],a={};for(let o=0;o<t.length;o+=1)if(!t[o]){if(r<o){let s=t.toString("utf8",r,o);s=this.renameRefSeq(s),i[n]=s,a[s]=n}r=o+1,n+=1}return{refNameToId:a,refIdToName:i}}async blocksForRange(t,n,r,i={}){n<0&&(n=0);const a=await this.parse(i);if(!a)return[];const o=a.refNameToId[t],s=a.indices[o];if(!s)return[];(s.linearIndex.length?s.linearIndex[n>>I3>=s.linearIndex.length?s.linearIndex.length-1:n>>I3]:new Up(0,0))||console.warn("querying outside of possible tabix range");const l=KL(n,r),u=[];for(const[b,y]of l)for(let w=b;w<=y;w++)if(s.binIndex[w]){const S=s.binIndex[w];for(let C=0;C<S.length;++C)u.push(new gc(S[C].minv,S[C].maxv,w))}const c=s.linearIndex.length;let h=null;const d=Math.min(n>>14,c-1),p=Math.min(r>>14,c-1);for(let b=d;b<=p;++b){const y=s.linearIndex[b];y&&(!h||y.compareTo(h)<0)&&(h=y)}return C3(u,h)}}const JL=21582659,eO=38359875;function tO(e,t){return e*2**t}function k3(e,t){return Math.floor(e/2**t)}class Gp extends T3{constructor(t){super(t),this.maxBinNumber=0,this.depth=0,this.minShift=0}async lineCount(t,n={}){const r=await this.parse(n);if(!r)return-1;const i=r.refNameToId[t];if(!r.indices[i])return-1;const{stats:o}=r.indices[i];return o?o.lineCount:-1}async indexCov(){throw new Error("CSI indexes do not support indexcov")}parseAuxData(t,n){const r=t.readInt32LE(n),i=r&65536?"zero-based-half-open":"1-based-closed",a={0:"generic",1:"SAM",2:"VCF"}[r&15];if(!a)throw new Error(`invalid Tabix preset format flags ${r}`);const o={ref:t.readInt32LE(n+4),start:t.readInt32LE(n+8),end:t.readInt32LE(n+12)},s=t.readInt32LE(n+16),f=s?String.fromCharCode(s):null,l=t.readInt32LE(n+20),u=t.readInt32LE(n+24),{refIdToName:c,refNameToId:h}=this._parseNameBytes(t.slice(n+28,n+28+u));return{refIdToName:c,refNameToId:h,skipLines:l,metaChar:f,columnNumbers:o,format:a,coordinateType:i}}_parseNameBytes(t){let n=0,r=0;const i=[],a={};for(let o=0;o<t.length;o+=1)if(!t[o]){if(r<o){let s=t.toString("utf8",r,o);s=this.renameRefSeq(s),i[n]=s,a[s]=n}r=o+1,n+=1}return{refNameToId:a,refIdToName:i}}async _parse(t={}){const n=await Kr(await this.filehandle.readFile(t));let r;if(n.readUInt32LE(0)===JL)r=1;else if(n.readUInt32LE(0)===eO)r=2;else throw new Error("Not a CSI file");this.minShift=n.readInt32LE(4),this.depth=n.readInt32LE(8),this.maxBinNumber=((1<<(this.depth+1)*3)-1)/7;const i=2**(this.minShift+this.depth*3),a=n.readInt32LE(12),o=a&&a>=30?this.parseAuxData(n,16):{refIdToName:[],refNameToId:{},metaChar:null,columnNumbers:{ref:0,start:1,end:2},coordinateType:"zero-based-half-open",format:"generic"},s=n.readInt32LE(16+a);let f,l=16+a+4;const u=new Array(s).fill(0).map(()=>{const c=n.readInt32LE(l);l+=4;const h={};let d;for(let p=0;p<c;p+=1){const b=n.readUInt32LE(l);if(b>this.maxBinNumber)d=this.parsePseudoBin(n,l+4),l+=4+8+4+16+16;else{const y=yo(n,l+4);f=this._findFirstData(f,y);const w=n.readInt32LE(l+12);l+=16;const S=new Array(w);for(let C=0;C<w;C+=1){const _=yo(n,l),k=yo(n,l+8);l+=16,S[C]=new gc(_,k,b)}h[b]=S}}return{binIndex:h,stats:d}});return{...o,csi:!0,refCount:s,maxBlockSize:65536,firstDataLine:f,csiVersion:r,indices:u,depth:this.depth,maxBinNumber:this.maxBinNumber,maxRefLength:i}}parsePseudoBin(t,n){return{lineCount:S3(Uu.fromBytesLE(t.slice(n+28,n+36),!0))}}async blocksForRange(t,n,r,i={}){n<0&&(n=0);const a=await this.parse(i);if(!a)return[];const o=a.refNameToId[t],s=a.indices[o];if(!s)return[];const f=this.reg2bins(n,r),l=[];for(const[u,c]of f)for(let h=u;h<=c;h++)if(s.binIndex[h]){const d=s.binIndex[h];for(let p=0;p<d.length;++p)l.push(new gc(d[p].minv,d[p].maxv,h))}return C3(l,new Up(0,0))}reg2bins(t,n){t-=1,t<1&&(t=1),n>2**50&&(n=2**34),n-=1;let r=0,i=0,a=this.minShift+this.depth*3;const o=[];for(;r<=this.depth;a-=3,i+=tO(1,r*3),r+=1){const s=i+k3(t,a),f=i+k3(n,a);if(f-s+o.length>this.maxBinNumber)throw new Error(`query ${t}-${n} is too large for current binning scheme (shift ${this.minShift}, depth ${this.depth}), try a smaller query or a coarser index binning scheme`);o.push([s,f])}return o}}const Hp=typeof TextDecoder<"u"?new TextDecoder("utf-8"):void 0;function nO(e){return new Promise(t=>setTimeout(t,e))}class rO{constructor({path:t,filehandle:n,tbiPath:r,tbiFilehandle:i,csiPath:a,csiFilehandle:o,yieldTime:s=500,chunkSizeLimit:f=5e7,renameRefSeqs:l=c=>c,chunkCacheSize:u=5*2**20}){if(n)this.filehandle=n;else if(t)this.filehandle=new ct(t);else throw new TypeError("must provide either filehandle or path");if(i)this.index=new mc({filehandle:i,renameRefSeqs:l});else if(o)this.index=new Gp({filehandle:o,renameRefSeqs:l});else if(r)this.index=new mc({filehandle:new ct(r),renameRefSeqs:l});else if(a)this.index=new Gp({filehandle:new ct(a),renameRefSeqs:l});else if(t)this.index=new mc({filehandle:new ct(`${t}.tbi`),renameRefSeqs:l});else throw new TypeError("must provide one of tbiFilehandle, tbiPath, csiFilehandle, or csiPath");this.chunkSizeLimit=f,this.renameRefSeq=l,this.yieldTime=s,this.chunkCache=new Yu({cache:new Qu({maxSize:Math.floor(u/65536)}),fill:(c,h)=>this.readChunk(c,{signal:h})})}async getLines(t,n,r,i){let a,o={},s;if(typeof i>"u")throw new TypeError("line callback must be provided");if(typeof i=="function"?s=i:(o=i,s=i.lineCallback),t===void 0)throw new TypeError("must provide a reference sequence name");if(!s)throw new TypeError("line callback must be provided");const f=await this.index.getMetadata(o);if(ua(a),n||(n=0),r||(r=f.maxRefLength),!(n<=r))throw new TypeError("invalid start and end coordinates. start must be less than or equal to end");if(n===r)return;const l=await this.index.blocksForRange(t,n,r,o);ua(a);for(let c=0;c<l.length;c+=1){const h=l[c].fetchedSize();if(h>this.chunkSizeLimit)throw new Error(`Too much data. Chunk size ${h.toLocaleString()} bytes exceeds chunkSizeLimit of ${this.chunkSizeLimit.toLocaleString()}.`)}let u=Date.now();for(let c=0;c<l.length;c+=1){let h;const d=l[c],{buffer:p,cpositions:b,dpositions:y}=await this.chunkCache.get(d.toString(),d);ua(a);let w=0,S=0;for(;w<p.length;){const C=p.indexOf(`
449
+ `,w);if(C===-1)break;const _=p.slice(w,C),k=(Hp==null?void 0:Hp.decode(_))||_.toString();if(y){for(;w+d.minv.dataPosition>=y[S++];);S--}const{startCoordinate:B,overlaps:I}=this.checkLine(f,t,n,r,k);if(h!==void 0&&B!==void 0&&h>B)throw new Error(`Lines not sorted by start coordinate (${h} > ${B}), this file is not usable with Tabix.`);if(h=B,I)s(k.trim(),b[S]*256+(w-y[S])+d.minv.dataPosition+1);else if(B!==void 0&&B>=r)return;this.yieldTime&&u-Date.now()>this.yieldTime&&(u=Date.now(),ua(a),await nO(1)),w=C+1}}}async getMetadata(t={}){return this.index.getMetadata(t)}async getHeaderBuffer(t={}){const{firstDataLine:n,metaChar:r,maxBlockSize:i}=await this.getMetadata(t);ua(t.signal);const a=((n==null?void 0:n.blockPosition)||0)+i;let o=await this._readRegion(0,a,t);ua(t.signal);try{o=await Kr(o)}catch(s){throw console.error(s),new Error(`error decompressing block ${s.code} at 0 (length ${a}) ${s}`)}if(r){let s=-1;const f=`
450
+ `.charCodeAt(0),l=r.charCodeAt(0);for(let u=0;u<o.length&&!(u===s+1&&o[u]!==l);u+=1)o[u]===f&&(s=u);o=o.slice(0,s+1)}return o}async getHeader(t={}){return(await this.getHeaderBuffer(t)).toString("utf8")}async getReferenceSequenceNames(t={}){return(await this.getMetadata(t)).refIdToName}checkLine(t,n,r,i,a){const{columnNumbers:o,metaChar:s,coordinateType:f,format:l}=t;if(a.charAt(0)===s)return{overlaps:!1};let{ref:u,start:c,end:h}=o;u||(u=0),c||(c=0),h||(h=0),l==="VCF"&&(h=8);const d=Math.max(u,c,h);let p=1,b=0,y="",w=-1/0;for(let S=0;S<a.length+1;S+=1)if(a[S]===" "||S===a.length){if(p===u){if(this.renameRefSeq(a.slice(b,S))!==n)return{overlaps:!1}}else if(p===c){if(w=parseInt(a.slice(b,S),10),f==="1-based-closed"&&(w-=1),w>=i)return{startCoordinate:w,overlaps:!1};if((h===0||h===c)&&w+1<=r)return{startCoordinate:w,overlaps:!1}}else if(l==="VCF"&&p===4)y=a.slice(b,S);else if(p===h){let C;if(l==="VCF"?C=this._getVcfEnd(w,y,a.slice(b,S)):C=parseInt(a.slice(b,S),10),C<=r)return{overlaps:!1}}if(b=S+1,p+=1,p>d)break}return{startCoordinate:w,overlaps:!0}}_getVcfEnd(t,n,r){let i=t+n.length;const a=r.indexOf("SVTYPE=TRA")!==-1;if(r[0]!=="."&&!a){let o=";";for(let s=0;s<r.length;s+=1){if(o===";"&&r.slice(s,s+4)==="END="){let f=r.indexOf(";",s);f===-1&&(f=r.length),i=parseInt(r.slice(s+4,f),10);break}o=r[s]}}else if(a)return t+1;return i}async lineCount(t,n={}){return this.index.lineCount(t,n)}async _readRegion(t,n,r={}){const i=Buffer.alloc(n),{bytesRead:a,buffer:o}=await this.filehandle.read(i,0,n,t,r);return o.slice(0,a)}async readChunk(t,n={}){const r=await this._readRegion(t.minv.blockPosition,t.fetchedSize(),n);try{return jv(r,t)}catch(i){throw new Error(`error decompressing c ${t.toString()} ${i}`)}}}const iO=Object.freeze(Object.defineProperty({__proto__:null,CSI:Gp,TBI:mc,TabixIndexedFile:rO},Symbol.toStringTag,{value:"Module"}));var Vp={exports:{}},wo=typeof Reflect=="object"?Reflect:null,B3=wo&&typeof wo.apply=="function"?wo.apply:function(t,n,r){return Function.prototype.apply.call(t,n,r)},bc;wo&&typeof wo.ownKeys=="function"?bc=wo.ownKeys:Object.getOwnPropertySymbols?bc=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:bc=function(t){return Object.getOwnPropertyNames(t)};function aO(e){console&&console.warn&&console.warn(e)}var D3=Number.isNaN||function(t){return t!==t};function Be(){Be.init.call(this)}Vp.exports=Be,Vp.exports.once=fO,Be.EventEmitter=Be,Be.prototype._events=void 0,Be.prototype._eventsCount=0,Be.prototype._maxListeners=void 0;var F3=10;function yc(e){if(typeof e!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}Object.defineProperty(Be,"defaultMaxListeners",{enumerable:!0,get:function(){return F3},set:function(e){if(typeof e!="number"||e<0||D3(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");F3=e}}),Be.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},Be.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||D3(t))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+t+".");return this._maxListeners=t,this};function R3(e){return e._maxListeners===void 0?Be.defaultMaxListeners:e._maxListeners}Be.prototype.getMaxListeners=function(){return R3(this)},Be.prototype.emit=function(t){for(var n=[],r=1;r<arguments.length;r++)n.push(arguments[r]);var i=t==="error",a=this._events;if(a!==void 0)i=i&&a.error===void 0;else if(!i)return!1;if(i){var o;if(n.length>0&&(o=n[0]),o instanceof Error)throw o;var s=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw s.context=o,s}var f=a[t];if(f===void 0)return!1;if(typeof f=="function")B3(f,this,n);else for(var l=f.length,u=O3(f,l),r=0;r<l;++r)B3(u[r],this,n);return!0};function P3(e,t,n,r){var i,a,o;if(yc(n),a=e._events,a===void 0?(a=e._events=Object.create(null),e._eventsCount=0):(a.newListener!==void 0&&(e.emit("newListener",t,n.listener?n.listener:n),a=e._events),o=a[t]),o===void 0)o=a[t]=n,++e._eventsCount;else if(typeof o=="function"?o=a[t]=r?[n,o]:[o,n]:r?o.unshift(n):o.push(n),i=R3(e),i>0&&o.length>i&&!o.warned){o.warned=!0;var s=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");s.name="MaxListenersExceededWarning",s.emitter=e,s.type=t,s.count=o.length,aO(s)}return e}Be.prototype.addListener=function(t,n){return P3(this,t,n,!1)},Be.prototype.on=Be.prototype.addListener,Be.prototype.prependListener=function(t,n){return P3(this,t,n,!0)};function oO(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function M3(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=oO.bind(r);return i.listener=n,r.wrapFn=i,i}Be.prototype.once=function(t,n){return yc(n),this.on(t,M3(this,t,n)),this},Be.prototype.prependOnceListener=function(t,n){return yc(n),this.prependListener(t,M3(this,t,n)),this},Be.prototype.removeListener=function(t,n){var r,i,a,o,s;if(yc(n),i=this._events,i===void 0)return this;if(r=i[t],r===void 0)return this;if(r===n||r.listener===n)--this._eventsCount===0?this._events=Object.create(null):(delete i[t],i.removeListener&&this.emit("removeListener",t,r.listener||n));else if(typeof r!="function"){for(a=-1,o=r.length-1;o>=0;o--)if(r[o]===n||r[o].listener===n){s=r[o].listener,a=o;break}if(a<0)return this;a===0?r.shift():sO(r,a),r.length===1&&(i[t]=r[0]),i.removeListener!==void 0&&this.emit("removeListener",t,s||n)}return this},Be.prototype.off=Be.prototype.removeListener,Be.prototype.removeAllListeners=function(t){var n,r,i;if(r=this._events,r===void 0)return this;if(r.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):r[t]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete r[t]),this;if(arguments.length===0){var a=Object.keys(r),o;for(i=0;i<a.length;++i)o=a[i],o!=="removeListener"&&this.removeAllListeners(o);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(n=r[t],typeof n=="function")this.removeListener(t,n);else if(n!==void 0)for(i=n.length-1;i>=0;i--)this.removeListener(t,n[i]);return this};function N3(e,t,n){var r=e._events;if(r===void 0)return[];var i=r[t];return i===void 0?[]:typeof i=="function"?n?[i.listener||i]:[i]:n?lO(i):O3(i,i.length)}Be.prototype.listeners=function(t){return N3(this,t,!0)},Be.prototype.rawListeners=function(t){return N3(this,t,!1)},Be.listenerCount=function(e,t){return typeof e.listenerCount=="function"?e.listenerCount(t):L3.call(e,t)},Be.prototype.listenerCount=L3;function L3(e){var t=this._events;if(t!==void 0){var n=t[e];if(typeof n=="function")return 1;if(n!==void 0)return n.length}return 0}Be.prototype.eventNames=function(){return this._eventsCount>0?bc(this._events):[]};function O3(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e[r];return n}function sO(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}function lO(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}function fO(e,t){return new Promise(function(n,r){function i(o){e.removeListener(t,a),r(o)}function a(){typeof e.removeListener=="function"&&e.removeListener("error",i),n([].slice.call(arguments))}z3(e,t,a,{once:!0}),t!=="error"&&uO(e,i,{once:!0})})}function uO(e,t,n){typeof e.on=="function"&&z3(e,"error",t,n)}function z3(e,t,n,r){if(typeof e.on=="function")r.once?e.once(t,n):e.on(t,n);else if(typeof e.addEventListener=="function")e.addEventListener(t,function i(a){r.once&&e.removeEventListener(t,i),n(a)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e)}var jp=Vp.exports,qp={exports:{}};typeof Object.create=="function"?qp.exports=function(t,n){n&&(t.super_=n,t.prototype=Object.create(n.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:qp.exports=function(t,n){if(n){t.super_=n;var r=function(){};r.prototype=n.prototype,t.prototype=new r,t.prototype.constructor=t}};var vo=qp.exports,Zp,U3;function G3(){return U3||(U3=1,Zp=jp.EventEmitter),Zp}const H3=EF(FF);var Wp,V3;function cO(){if(V3)return Wp;V3=1;function e(p,b){var y=Object.keys(p);if(Object.getOwnPropertySymbols){var w=Object.getOwnPropertySymbols(p);b&&(w=w.filter(function(S){return Object.getOwnPropertyDescriptor(p,S).enumerable})),y.push.apply(y,w)}return y}function t(p){for(var b=1;b<arguments.length;b++){var y=arguments[b]!=null?arguments[b]:{};b%2?e(Object(y),!0).forEach(function(w){n(p,w,y[w])}):Object.getOwnPropertyDescriptors?Object.defineProperties(p,Object.getOwnPropertyDescriptors(y)):e(Object(y)).forEach(function(w){Object.defineProperty(p,w,Object.getOwnPropertyDescriptor(y,w))})}return p}function n(p,b,y){return b=o(b),b in p?Object.defineProperty(p,b,{value:y,enumerable:!0,configurable:!0,writable:!0}):p[b]=y,p}function r(p,b){if(!(p instanceof b))throw new TypeError("Cannot call a class as a function")}function i(p,b){for(var y=0;y<b.length;y++){var w=b[y];w.enumerable=w.enumerable||!1,w.configurable=!0,"value"in w&&(w.writable=!0),Object.defineProperty(p,o(w.key),w)}}function a(p,b,y){return b&&i(p.prototype,b),y&&i(p,y),Object.defineProperty(p,"prototype",{writable:!1}),p}function o(p){var b=s(p,"string");return typeof b=="symbol"?b:String(b)}function s(p,b){if(typeof p!="object"||p===null)return p;var y=p[Symbol.toPrimitive];if(y!==void 0){var w=y.call(p,b||"default");if(typeof w!="object")return w;throw new TypeError("@@toPrimitive must return a primitive value.")}return(b==="string"?String:Number)(p)}var f=ye,l=f.Buffer,u=H3,c=u.inspect,h=c&&c.custom||"inspect";function d(p,b,y){l.prototype.copy.call(p,b,y)}return Wp=function(){function p(){r(this,p),this.head=null,this.tail=null,this.length=0}return a(p,[{key:"push",value:function(y){var w={data:y,next:null};this.length>0?this.tail.next=w:this.head=w,this.tail=w,++this.length}},{key:"unshift",value:function(y){var w={data:y,next:this.head};this.length===0&&(this.tail=w),this.head=w,++this.length}},{key:"shift",value:function(){if(this.length!==0){var y=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,y}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(y){if(this.length===0)return"";for(var w=this.head,S=""+w.data;w=w.next;)S+=y+w.data;return S}},{key:"concat",value:function(y){if(this.length===0)return l.alloc(0);for(var w=l.allocUnsafe(y>>>0),S=this.head,C=0;S;)d(S.data,w,C),C+=S.data.length,S=S.next;return w}},{key:"consume",value:function(y,w){var S;return y<this.head.data.length?(S=this.head.data.slice(0,y),this.head.data=this.head.data.slice(y)):y===this.head.data.length?S=this.shift():S=w?this._getString(y):this._getBuffer(y),S}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(y){var w=this.head,S=1,C=w.data;for(y-=C.length;w=w.next;){var _=w.data,k=y>_.length?_.length:y;if(k===_.length?C+=_:C+=_.slice(0,y),y-=k,y===0){k===_.length?(++S,w.next?this.head=w.next:this.head=this.tail=null):(this.head=w,w.data=_.slice(k));break}++S}return this.length-=S,C}},{key:"_getBuffer",value:function(y){var w=l.allocUnsafe(y),S=this.head,C=1;for(S.data.copy(w),y-=S.data.length;S=S.next;){var _=S.data,k=y>_.length?_.length:y;if(_.copy(w,w.length-y,0,k),y-=k,y===0){k===_.length?(++C,S.next?this.head=S.next:this.head=this.tail=null):(this.head=S,S.data=_.slice(k));break}++C}return this.length-=C,w}},{key:h,value:function(y,w){return c(this,t(t({},w),{},{depth:0,customInspect:!1}))}}]),p}(),Wp}var Yp,j3;function q3(){if(j3)return Yp;j3=1;function e(o,s){var f=this,l=this._readableState&&this._readableState.destroyed,u=this._writableState&&this._writableState.destroyed;return l||u?(s?s(o):o&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(i,this,o)):process.nextTick(i,this,o)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(o||null,function(c){!s&&c?f._writableState?f._writableState.errorEmitted?process.nextTick(n,f):(f._writableState.errorEmitted=!0,process.nextTick(t,f,c)):process.nextTick(t,f,c):s?(process.nextTick(n,f),s(c)):process.nextTick(n,f)}),this)}function t(o,s){i(o,s),n(o)}function n(o){o._writableState&&!o._writableState.emitClose||o._readableState&&!o._readableState.emitClose||o.emit("close")}function r(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function i(o,s){o.emit("error",s)}function a(o,s){var f=o._readableState,l=o._writableState;f&&f.autoDestroy||l&&l.autoDestroy?o.destroy(s):o.emit("error",s)}return Yp={destroy:e,undestroy:r,errorOrDestroy:a},Yp}var Qp={},Z3;function xo(){if(Z3)return Qp;Z3=1;function e(s,f){s.prototype=Object.create(f.prototype),s.prototype.constructor=s,s.__proto__=f}var t={};function n(s,f,l){l||(l=Error);function u(h,d,p){return typeof f=="string"?f:f(h,d,p)}var c=function(h){e(d,h);function d(p,b,y){return h.call(this,u(p,b,y))||this}return d}(l);c.prototype.name=l.name,c.prototype.code=s,t[s]=c}function r(s,f){if(Array.isArray(s)){var l=s.length;return s=s.map(function(u){return String(u)}),l>2?"one of ".concat(f," ").concat(s.slice(0,l-1).join(", "),", or ")+s[l-1]:l===2?"one of ".concat(f," ").concat(s[0]," or ").concat(s[1]):"of ".concat(f," ").concat(s[0])}else return"of ".concat(f," ").concat(String(s))}function i(s,f,l){return s.substr(!l||l<0?0:+l,f.length)===f}function a(s,f,l){return(l===void 0||l>s.length)&&(l=s.length),s.substring(l-f.length,l)===f}function o(s,f,l){return typeof l!="number"&&(l=0),l+f.length>s.length?!1:s.indexOf(f,l)!==-1}return n("ERR_INVALID_OPT_VALUE",function(s,f){return'The value "'+f+'" is invalid for option "'+s+'"'},TypeError),n("ERR_INVALID_ARG_TYPE",function(s,f,l){var u;typeof f=="string"&&i(f,"not ")?(u="must not be",f=f.replace(/^not /,"")):u="must be";var c;if(a(s," argument"))c="The ".concat(s," ").concat(u," ").concat(r(f,"type"));else{var h=o(s,".")?"property":"argument";c='The "'.concat(s,'" ').concat(h," ").concat(u," ").concat(r(f,"type"))}return c+=". Received type ".concat(typeof l),c},TypeError),n("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),n("ERR_METHOD_NOT_IMPLEMENTED",function(s){return"The "+s+" method is not implemented"}),n("ERR_STREAM_PREMATURE_CLOSE","Premature close"),n("ERR_STREAM_DESTROYED",function(s){return"Cannot call "+s+" after a stream was destroyed"}),n("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),n("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),n("ERR_STREAM_WRITE_AFTER_END","write after end"),n("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),n("ERR_UNKNOWN_ENCODING",function(s){return"Unknown encoding: "+s},TypeError),n("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),Qp.codes=t,Qp}var Xp,W3;function Y3(){if(W3)return Xp;W3=1;var e=xo().codes.ERR_INVALID_OPT_VALUE;function t(r,i,a){return r.highWaterMark!=null?r.highWaterMark:i?r[a]:null}function n(r,i,a,o){var s=t(i,o,a);if(s!=null){if(!(isFinite(s)&&Math.floor(s)===s)||s<0){var f=o?a:"highWaterMark";throw new e(f,s)}return Math.floor(s)}return r.objectMode?16:16*1024}return Xp={getHighWaterMark:n},Xp}var $p,Q3;function hO(){if(Q3)return $p;Q3=1,$p=e;function e(n,r){if(t("noDeprecation"))return n;var i=!1;function a(){if(!i){if(t("throwDeprecation"))throw new Error(r);t("traceDeprecation")?console.trace(r):console.warn(r),i=!0}return n.apply(this,arguments)}return a}function t(n){try{if(!globalThis.localStorage)return!1}catch{return!1}var r=globalThis.localStorage[n];return r==null?!1:String(r).toLowerCase()==="true"}return $p}var Kp,X3;function $3(){if(X3)return Kp;X3=1,Kp=R;function e(N){var P=this;this.next=null,this.entry=null,this.finish=function(){Le(P,N)}}var t;R.WritableState=B;var n={deprecate:hO()},r=G3(),i=ye.Buffer,a=(typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function o(N){return i.from(N)}function s(N){return i.isBuffer(N)||N instanceof a}var f=q3(),l=Y3(),u=l.getHighWaterMark,c=xo().codes,h=c.ERR_INVALID_ARG_TYPE,d=c.ERR_METHOD_NOT_IMPLEMENTED,p=c.ERR_MULTIPLE_CALLBACK,b=c.ERR_STREAM_CANNOT_PIPE,y=c.ERR_STREAM_DESTROYED,w=c.ERR_STREAM_NULL_VALUES,S=c.ERR_STREAM_WRITE_AFTER_END,C=c.ERR_UNKNOWN_ENCODING,_=f.errorOrDestroy;vo(R,r);function k(){}function B(N,P,q){t=t||Ao(),N=N||{},typeof q!="boolean"&&(q=P instanceof t),this.objectMode=!!N.objectMode,q&&(this.objectMode=this.objectMode||!!N.writableObjectMode),this.highWaterMark=u(this,N,"writableHighWaterMark",q),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var H=N.decodeStrings===!1;this.decodeStrings=!H,this.defaultEncoding=N.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(W){Xe(P,W)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=N.emitClose!==!1,this.autoDestroy=!!N.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new e(this)}B.prototype.getBuffer=function(){for(var P=this.bufferedRequest,q=[];P;)q.push(P),P=P.next;return q},function(){try{Object.defineProperty(B.prototype,"buffer",{get:n.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}();var I;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(I=Function.prototype[Symbol.hasInstance],Object.defineProperty(R,Symbol.hasInstance,{value:function(P){return I.call(this,P)?!0:this!==R?!1:P&&P._writableState instanceof B}})):I=function(P){return P instanceof this};function R(N){t=t||Ao();var P=this instanceof t;if(!P&&!I.call(R,this))return new R(N);this._writableState=new B(N,this,P),this.writable=!0,N&&(typeof N.write=="function"&&(this._write=N.write),typeof N.writev=="function"&&(this._writev=N.writev),typeof N.destroy=="function"&&(this._destroy=N.destroy),typeof N.final=="function"&&(this._final=N.final)),r.call(this)}R.prototype.pipe=function(){_(this,new b)};function M(N,P){var q=new S;_(N,q),process.nextTick(P,q)}function j(N,P,q,H){var W;return q===null?W=new w:typeof q!="string"&&!P.objectMode&&(W=new h("chunk",["string","Buffer"],q)),W?(_(N,W),process.nextTick(H,W),!1):!0}R.prototype.write=function(N,P,q){var H=this._writableState,W=!1,E=!H.objectMode&&s(N);return E&&!i.isBuffer(N)&&(N=o(N)),typeof P=="function"&&(q=P,P=null),E?P="buffer":P||(P=H.defaultEncoding),typeof q!="function"&&(q=k),H.ending?M(this,q):(E||j(this,H,N,q))&&(H.pendingcb++,W=ne(this,H,E,N,P,q)),W},R.prototype.cork=function(){this._writableState.corked++},R.prototype.uncork=function(){var N=this._writableState;N.corked&&(N.corked--,!N.writing&&!N.corked&&!N.bufferProcessing&&N.bufferedRequest&&qe(this,N))},R.prototype.setDefaultEncoding=function(P){if(typeof P=="string"&&(P=P.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((P+"").toLowerCase())>-1))throw new C(P);return this._writableState.defaultEncoding=P,this},Object.defineProperty(R.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function O(N,P,q){return!N.objectMode&&N.decodeStrings!==!1&&typeof P=="string"&&(P=i.from(P,q)),P}Object.defineProperty(R.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function ne(N,P,q,H,W,E){if(!q){var x=O(P,H,W);H!==x&&(q=!0,W="buffer",H=x)}var G=P.objectMode?1:H.length;P.length+=G;var Z=P.length<P.highWaterMark;if(Z||(P.needDrain=!0),P.writing||P.corked){var se=P.lastBufferedRequest;P.lastBufferedRequest={chunk:H,encoding:W,isBuf:q,callback:E,next:null},se?se.next=P.lastBufferedRequest:P.bufferedRequest=P.lastBufferedRequest,P.bufferedRequestCount+=1}else oe(N,P,!1,G,H,W,E);return Z}function oe(N,P,q,H,W,E,x){P.writelen=H,P.writecb=x,P.writing=!0,P.sync=!0,P.destroyed?P.onwrite(new y("write")):q?N._writev(W,P.onwrite):N._write(W,E,P.onwrite),P.sync=!1}function pe(N,P,q,H,W){--P.pendingcb,q?(process.nextTick(W,H),process.nextTick(dt,N,P),N._writableState.errorEmitted=!0,_(N,H)):(W(H),N._writableState.errorEmitted=!0,_(N,H),dt(N,P))}function ke(N){N.writing=!1,N.writecb=null,N.length-=N.writelen,N.writelen=0}function Xe(N,P){var q=N._writableState,H=q.sync,W=q.writecb;if(typeof W!="function")throw new p;if(ke(q),P)pe(N,q,H,P,W);else{var E=Ke(q)||N.destroyed;!E&&!q.corked&&!q.bufferProcessing&&q.bufferedRequest&&qe(N,q),H?process.nextTick(De,N,q,E,W):De(N,q,E,W)}}function De(N,P,q,H){q||$e(N,P),P.pendingcb--,H(),dt(N,P)}function $e(N,P){P.length===0&&P.needDrain&&(P.needDrain=!1,N.emit("drain"))}function qe(N,P){P.bufferProcessing=!0;var q=P.bufferedRequest;if(N._writev&&q&&q.next){var H=P.bufferedRequestCount,W=new Array(H),E=P.corkedRequestsFree;E.entry=q;for(var x=0,G=!0;q;)W[x]=q,q.isBuf||(G=!1),q=q.next,x+=1;W.allBuffers=G,oe(N,P,!0,P.length,W,"",E.finish),P.pendingcb++,P.lastBufferedRequest=null,E.next?(P.corkedRequestsFree=E.next,E.next=null):P.corkedRequestsFree=new e(P),P.bufferedRequestCount=0}else{for(;q;){var Z=q.chunk,se=q.encoding,J=q.callback,le=P.objectMode?1:Z.length;if(oe(N,P,!1,le,Z,se,J),q=q.next,P.bufferedRequestCount--,P.writing)break}q===null&&(P.lastBufferedRequest=null)}P.bufferedRequest=q,P.bufferProcessing=!1}R.prototype._write=function(N,P,q){q(new d("_write()"))},R.prototype._writev=null,R.prototype.end=function(N,P,q){var H=this._writableState;return typeof N=="function"?(q=N,N=null,P=null):typeof P=="function"&&(q=P,P=null),N!=null&&this.write(N,P),H.corked&&(H.corked=1,this.uncork()),H.ending||Ht(this,H,q),this},Object.defineProperty(R.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function Ke(N){return N.ending&&N.length===0&&N.bufferedRequest===null&&!N.finished&&!N.writing}function Ee(N,P){N._final(function(q){P.pendingcb--,q&&_(N,q),P.prefinished=!0,N.emit("prefinish"),dt(N,P)})}function _e(N,P){!P.prefinished&&!P.finalCalled&&(typeof N._final=="function"&&!P.destroyed?(P.pendingcb++,P.finalCalled=!0,process.nextTick(Ee,N,P)):(P.prefinished=!0,N.emit("prefinish")))}function dt(N,P){var q=Ke(P);if(q&&(_e(N,P),P.pendingcb===0&&(P.finished=!0,N.emit("finish"),P.autoDestroy))){var H=N._readableState;(!H||H.autoDestroy&&H.endEmitted)&&N.destroy()}return q}function Ht(N,P,q){P.ending=!0,dt(N,P),q&&(P.finished?process.nextTick(q):N.once("finish",q)),P.ended=!0,N.writable=!1}function Le(N,P,q){var H=N.entry;for(N.entry=null;H;){var W=H.callback;P.pendingcb--,W(q),H=H.next}P.corkedRequestsFree.next=N}return Object.defineProperty(R.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState===void 0?!1:this._writableState.destroyed},set:function(P){this._writableState&&(this._writableState.destroyed=P)}}),R.prototype.destroy=f.destroy,R.prototype._undestroy=f.undestroy,R.prototype._destroy=function(N,P){P(N)},Kp}var Jp,K3;function Ao(){if(K3)return Jp;K3=1;var e=Object.keys||function(l){var u=[];for(var c in l)u.push(c);return u};Jp=o;var t=iE(),n=$3();vo(o,t);for(var r=e(n.prototype),i=0;i<r.length;i++){var a=r[i];o.prototype[a]||(o.prototype[a]=n.prototype[a])}function o(l){if(!(this instanceof o))return new o(l);t.call(this,l),n.call(this,l),this.allowHalfOpen=!0,l&&(l.readable===!1&&(this.readable=!1),l.writable===!1&&(this.writable=!1),l.allowHalfOpen===!1&&(this.allowHalfOpen=!1,this.once("end",s)))}Object.defineProperty(o.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(o.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(o.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function s(){this._writableState.ended||process.nextTick(f,this)}function f(l){l.end()}return Object.defineProperty(o.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set:function(u){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=u,this._writableState.destroyed=u)}}),Jp}var eg={},tg={exports:{}};(function(e,t){var n=ye,r=n.Buffer;function i(o,s){for(var f in o)s[f]=o[f]}r.from&&r.alloc&&r.allocUnsafe&&r.allocUnsafeSlow?e.exports=n:(i(n,t),t.Buffer=a);function a(o,s,f){return r(o,s,f)}i(r,a),a.from=function(o,s,f){if(typeof o=="number")throw new TypeError("Argument must not be a number");return r(o,s,f)},a.alloc=function(o,s,f){if(typeof o!="number")throw new TypeError("Argument must be a number");var l=r(o);return s!==void 0?typeof f=="string"?l.fill(s,f):l.fill(s):l.fill(0),l},a.allocUnsafe=function(o){if(typeof o!="number")throw new TypeError("Argument must be a number");return r(o)},a.allocUnsafeSlow=function(o){if(typeof o!="number")throw new TypeError("Argument must be a number");return n.SlowBuffer(o)}})(tg,tg.exports);var dO=tg.exports,ng=dO.Buffer,J3=ng.isEncoding||function(e){switch(e=""+e,e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function pO(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}function gO(e){var t=pO(e);if(typeof t!="string"&&(ng.isEncoding===J3||!J3(e)))throw new Error("Unknown encoding: "+e);return t||e}var mO=eg.StringDecoder=Il;function Il(e){this.encoding=gO(e);var t;switch(this.encoding){case"utf16le":this.text=AO,this.end=EO,t=4;break;case"utf8":this.fillLast=wO,t=4;break;case"base64":this.text=_O,this.end=SO,t=3;break;default:this.write=CO,this.end=TO;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=ng.allocUnsafe(t)}Il.prototype.write=function(e){if(e.length===0)return"";var t,n;if(this.lastNeed){if(t=this.fillLast(e),t===void 0)return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n<e.length?t?t+this.text(e,n):this.text(e,n):t||""},Il.prototype.end=xO,Il.prototype.text=vO,Il.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length};function rg(e){return e<=127?0:e>>5===6?2:e>>4===14?3:e>>3===30?4:e>>6===2?-1:-2}function bO(e,t,n){var r=t.length-1;if(r<n)return 0;var i=rg(t[r]);return i>=0?(i>0&&(e.lastNeed=i-1),i):--r<n||i===-2?0:(i=rg(t[r]),i>=0?(i>0&&(e.lastNeed=i-2),i):--r<n||i===-2?0:(i=rg(t[r]),i>=0?(i>0&&(i===2?i=0:e.lastNeed=i-3),i):0))}function yO(e,t,n){if((t[0]&192)!==128)return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if((t[1]&192)!==128)return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&(t[2]&192)!==128)return e.lastNeed=2,"�"}}function wO(e){var t=this.lastTotal-this.lastNeed,n=yO(this,e);if(n!==void 0)return n;if(this.lastNeed<=e.length)return e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,t,0,e.length),this.lastNeed-=e.length}function vO(e,t){var n=bO(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)}function xO(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"�":t}function AO(e,t){if((e.length-t)%2===0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function EO(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function _O(e,t){var n=(e.length-t)%3;return n===0?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,n===1?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function SO(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function CO(e){return e.toString(this.encoding)}function TO(e){return e&&e.length?this.write(e):""}var ig,eE;function ag(){if(eE)return ig;eE=1;var e=xo().codes.ERR_STREAM_PREMATURE_CLOSE;function t(a){var o=!1;return function(){if(!o){o=!0;for(var s=arguments.length,f=new Array(s),l=0;l<s;l++)f[l]=arguments[l];a.apply(this,f)}}}function n(){}function r(a){return a.setHeader&&typeof a.abort=="function"}function i(a,o,s){if(typeof o=="function")return i(a,null,o);o||(o={}),s=t(s||n);var f=o.readable||o.readable!==!1&&a.readable,l=o.writable||o.writable!==!1&&a.writable,u=function(){a.writable||h()},c=a._writableState&&a._writableState.finished,h=function(){l=!1,c=!0,f||s.call(a)},d=a._readableState&&a._readableState.endEmitted,p=function(){f=!1,d=!0,l||s.call(a)},b=function(C){s.call(a,C)},y=function(){var C;if(f&&!d)return(!a._readableState||!a._readableState.ended)&&(C=new e),s.call(a,C);if(l&&!c)return(!a._writableState||!a._writableState.ended)&&(C=new e),s.call(a,C)},w=function(){a.req.on("finish",h)};return r(a)?(a.on("complete",h),a.on("abort",y),a.req?w():a.on("request",w)):l&&!a._writableState&&(a.on("end",u),a.on("close",u)),a.on("end",p),a.on("finish",h),o.error!==!1&&a.on("error",b),a.on("close",y),function(){a.removeListener("complete",h),a.removeListener("abort",y),a.removeListener("request",w),a.req&&a.req.removeListener("finish",h),a.removeListener("end",u),a.removeListener("close",u),a.removeListener("finish",h),a.removeListener("end",p),a.removeListener("error",b),a.removeListener("close",y)}}return ig=i,ig}var og,tE;function IO(){if(tE)return og;tE=1;var e;function t(C,_,k){return _=n(_),_ in C?Object.defineProperty(C,_,{value:k,enumerable:!0,configurable:!0,writable:!0}):C[_]=k,C}function n(C){var _=r(C,"string");return typeof _=="symbol"?_:String(_)}function r(C,_){if(typeof C!="object"||C===null)return C;var k=C[Symbol.toPrimitive];if(k!==void 0){var B=k.call(C,_||"default");if(typeof B!="object")return B;throw new TypeError("@@toPrimitive must return a primitive value.")}return(_==="string"?String:Number)(C)}var i=ag(),a=Symbol("lastResolve"),o=Symbol("lastReject"),s=Symbol("error"),f=Symbol("ended"),l=Symbol("lastPromise"),u=Symbol("handlePromise"),c=Symbol("stream");function h(C,_){return{value:C,done:_}}function d(C){var _=C[a];if(_!==null){var k=C[c].read();k!==null&&(C[l]=null,C[a]=null,C[o]=null,_(h(k,!1)))}}function p(C){process.nextTick(d,C)}function b(C,_){return function(k,B){C.then(function(){if(_[f]){k(h(void 0,!0));return}_[u](k,B)},B)}}var y=Object.getPrototypeOf(function(){}),w=Object.setPrototypeOf((e={get stream(){return this[c]},next:function(){var _=this,k=this[s];if(k!==null)return Promise.reject(k);if(this[f])return Promise.resolve(h(void 0,!0));if(this[c].destroyed)return new Promise(function(M,j){process.nextTick(function(){_[s]?j(_[s]):M(h(void 0,!0))})});var B=this[l],I;if(B)I=new Promise(b(B,this));else{var R=this[c].read();if(R!==null)return Promise.resolve(h(R,!1));I=new Promise(this[u])}return this[l]=I,I}},t(e,Symbol.asyncIterator,function(){return this}),t(e,"return",function(){var _=this;return new Promise(function(k,B){_[c].destroy(null,function(I){if(I){B(I);return}k(h(void 0,!0))})})}),e),y),S=function(_){var k,B=Object.create(w,(k={},t(k,c,{value:_,writable:!0}),t(k,a,{value:null,writable:!0}),t(k,o,{value:null,writable:!0}),t(k,s,{value:null,writable:!0}),t(k,f,{value:_._readableState.endEmitted,writable:!0}),t(k,u,{value:function(R,M){var j=B[c].read();j?(B[l]=null,B[a]=null,B[o]=null,R(h(j,!1))):(B[a]=R,B[o]=M)},writable:!0}),k));return B[l]=null,i(_,function(I){if(I&&I.code!=="ERR_STREAM_PREMATURE_CLOSE"){var R=B[o];R!==null&&(B[l]=null,B[a]=null,B[o]=null,R(I)),B[s]=I;return}var M=B[a];M!==null&&(B[l]=null,B[a]=null,B[o]=null,M(h(void 0,!0))),B[f]=!0}),_.on("readable",p.bind(null,B)),B};return og=S,og}var sg,nE;function kO(){return nE||(nE=1,sg=function(){throw new Error("Readable.from is not available in the browser")}),sg}var lg,rE;function iE(){if(rE)return lg;rE=1,lg=M;var e;M.ReadableState=R,jp.EventEmitter;var t=function(x,G){return x.listeners(G).length},n=G3(),r=ye.Buffer,i=(typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function a(E){return r.from(E)}function o(E){return r.isBuffer(E)||E instanceof i}var s=H3,f;s&&s.debuglog?f=s.debuglog("stream"):f=function(){};var l=cO(),u=q3(),c=Y3(),h=c.getHighWaterMark,d=xo().codes,p=d.ERR_INVALID_ARG_TYPE,b=d.ERR_STREAM_PUSH_AFTER_EOF,y=d.ERR_METHOD_NOT_IMPLEMENTED,w=d.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,S,C,_;vo(M,n);var k=u.errorOrDestroy,B=["error","close","destroy","pause","resume"];function I(E,x,G){if(typeof E.prependListener=="function")return E.prependListener(x,G);!E._events||!E._events[x]?E.on(x,G):Array.isArray(E._events[x])?E._events[x].unshift(G):E._events[x]=[G,E._events[x]]}function R(E,x,G){e=e||Ao(),E=E||{},typeof G!="boolean"&&(G=x instanceof e),this.objectMode=!!E.objectMode,G&&(this.objectMode=this.objectMode||!!E.readableObjectMode),this.highWaterMark=h(this,E,"readableHighWaterMark",G),this.buffer=new l,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=E.emitClose!==!1,this.autoDestroy=!!E.autoDestroy,this.destroyed=!1,this.defaultEncoding=E.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,E.encoding&&(S||(S=eg.StringDecoder),this.decoder=new S(E.encoding),this.encoding=E.encoding)}function M(E){if(e=e||Ao(),!(this instanceof M))return new M(E);var x=this instanceof e;this._readableState=new R(E,this,x),this.readable=!0,E&&(typeof E.read=="function"&&(this._read=E.read),typeof E.destroy=="function"&&(this._destroy=E.destroy)),n.call(this)}Object.defineProperty(M.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(x){this._readableState&&(this._readableState.destroyed=x)}}),M.prototype.destroy=u.destroy,M.prototype._undestroy=u.undestroy,M.prototype._destroy=function(E,x){x(E)},M.prototype.push=function(E,x){var G=this._readableState,Z;return G.objectMode?Z=!0:typeof E=="string"&&(x=x||G.defaultEncoding,x!==G.encoding&&(E=r.from(E,x),x=""),Z=!0),j(this,E,x,!1,Z)},M.prototype.unshift=function(E){return j(this,E,null,!0,!1)};function j(E,x,G,Z,se){f("readableAddChunk",x);var J=E._readableState;if(x===null)J.reading=!1,Xe(E,J);else{var le;if(se||(le=ne(J,x)),le)k(E,le);else if(J.objectMode||x&&x.length>0)if(typeof x!="string"&&!J.objectMode&&Object.getPrototypeOf(x)!==r.prototype&&(x=a(x)),Z)J.endEmitted?k(E,new w):O(E,J,x,!0);else if(J.ended)k(E,new b);else{if(J.destroyed)return!1;J.reading=!1,J.decoder&&!G?(x=J.decoder.write(x),J.objectMode||x.length!==0?O(E,J,x,!1):qe(E,J)):O(E,J,x,!1)}else Z||(J.reading=!1,qe(E,J))}return!J.ended&&(J.length<J.highWaterMark||J.length===0)}function O(E,x,G,Z){x.flowing&&x.length===0&&!x.sync?(x.awaitDrain=0,E.emit("data",G)):(x.length+=x.objectMode?1:G.length,Z?x.buffer.unshift(G):x.buffer.push(G),x.needReadable&&De(E)),qe(E,x)}function ne(E,x){var G;return!o(x)&&typeof x!="string"&&x!==void 0&&!E.objectMode&&(G=new p("chunk",["string","Buffer","Uint8Array"],x)),G}M.prototype.isPaused=function(){return this._readableState.flowing===!1},M.prototype.setEncoding=function(E){S||(S=eg.StringDecoder);var x=new S(E);this._readableState.decoder=x,this._readableState.encoding=this._readableState.decoder.encoding;for(var G=this._readableState.buffer.head,Z="";G!==null;)Z+=x.write(G.data),G=G.next;return this._readableState.buffer.clear(),Z!==""&&this._readableState.buffer.push(Z),this._readableState.length=Z.length,this};var oe=1073741824;function pe(E){return E>=oe?E=oe:(E--,E|=E>>>1,E|=E>>>2,E|=E>>>4,E|=E>>>8,E|=E>>>16,E++),E}function ke(E,x){return E<=0||x.length===0&&x.ended?0:x.objectMode?1:E!==E?x.flowing&&x.length?x.buffer.head.data.length:x.length:(E>x.highWaterMark&&(x.highWaterMark=pe(E)),E<=x.length?E:x.ended?x.length:(x.needReadable=!0,0))}M.prototype.read=function(E){f("read",E),E=parseInt(E,10);var x=this._readableState,G=E;if(E!==0&&(x.emittedReadable=!1),E===0&&x.needReadable&&((x.highWaterMark!==0?x.length>=x.highWaterMark:x.length>0)||x.ended))return f("read: emitReadable",x.length,x.ended),x.length===0&&x.ended?q(this):De(this),null;if(E=ke(E,x),E===0&&x.ended)return x.length===0&&q(this),null;var Z=x.needReadable;f("need readable",Z),(x.length===0||x.length-E<x.highWaterMark)&&(Z=!0,f("length less than watermark",Z)),x.ended||x.reading?(Z=!1,f("reading or ended",Z)):Z&&(f("do read"),x.reading=!0,x.sync=!0,x.length===0&&(x.needReadable=!0),this._read(x.highWaterMark),x.sync=!1,x.reading||(E=ke(G,x)));var se;return E>0?se=P(E,x):se=null,se===null?(x.needReadable=x.length<=x.highWaterMark,E=0):(x.length-=E,x.awaitDrain=0),x.length===0&&(x.ended||(x.needReadable=!0),G!==E&&x.ended&&q(this)),se!==null&&this.emit("data",se),se};function Xe(E,x){if(f("onEofChunk"),!x.ended){if(x.decoder){var G=x.decoder.end();G&&G.length&&(x.buffer.push(G),x.length+=x.objectMode?1:G.length)}x.ended=!0,x.sync?De(E):(x.needReadable=!1,x.emittedReadable||(x.emittedReadable=!0,$e(E)))}}function De(E){var x=E._readableState;f("emitReadable",x.needReadable,x.emittedReadable),x.needReadable=!1,x.emittedReadable||(f("emitReadable",x.flowing),x.emittedReadable=!0,process.nextTick($e,E))}function $e(E){var x=E._readableState;f("emitReadable_",x.destroyed,x.length,x.ended),!x.destroyed&&(x.length||x.ended)&&(E.emit("readable"),x.emittedReadable=!1),x.needReadable=!x.flowing&&!x.ended&&x.length<=x.highWaterMark,N(E)}function qe(E,x){x.readingMore||(x.readingMore=!0,process.nextTick(Ke,E,x))}function Ke(E,x){for(;!x.reading&&!x.ended&&(x.length<x.highWaterMark||x.flowing&&x.length===0);){var G=x.length;if(f("maybeReadMore read 0"),E.read(0),G===x.length)break}x.readingMore=!1}M.prototype._read=function(E){k(this,new y("_read()"))},M.prototype.pipe=function(E,x){var G=this,Z=this._readableState;switch(Z.pipesCount){case 0:Z.pipes=E;break;case 1:Z.pipes=[Z.pipes,E];break;default:Z.pipes.push(E);break}Z.pipesCount+=1,f("pipe count=%d opts=%j",Z.pipesCount,x);var se=(!x||x.end!==!1)&&E!==process.stdout&&E!==process.stderr,J=se?Vt:Kn;Z.endEmitted?process.nextTick(J):G.once("end",J),E.on("unpipe",le);function le(v,g){f("onunpipe"),v===G&&g&&g.hasUnpiped===!1&&(g.hasUnpiped=!0,fi())}function Vt(){f("onend"),E.end()}var si=Ee(G);E.on("drain",si);var li=!1;function fi(){f("cleanup"),E.removeListener("close",ui),E.removeListener("finish",jt),E.removeListener("drain",si),E.removeListener("error",wr),E.removeListener("unpipe",le),G.removeListener("end",Vt),G.removeListener("end",Kn),G.removeListener("data",_t),li=!0,Z.awaitDrain&&(!E._writableState||E._writableState.needDrain)&&si()}G.on("data",_t);function _t(v){f("ondata");var g=E.write(v);f("dest.write",g),g===!1&&((Z.pipesCount===1&&Z.pipes===E||Z.pipesCount>1&&W(Z.pipes,E)!==-1)&&!li&&(f("false write response, pause",Z.awaitDrain),Z.awaitDrain++),G.pause())}function wr(v){f("onerror",v),Kn(),E.removeListener("error",wr),t(E,"error")===0&&k(E,v)}I(E,"error",wr);function ui(){E.removeListener("finish",jt),Kn()}E.once("close",ui);function jt(){f("onfinish"),E.removeListener("close",ui),Kn()}E.once("finish",jt);function Kn(){f("unpipe"),G.unpipe(E)}return E.emit("pipe",G),Z.flowing||(f("pipe resume"),G.resume()),E};function Ee(E){return function(){var G=E._readableState;f("pipeOnDrain",G.awaitDrain),G.awaitDrain&&G.awaitDrain--,G.awaitDrain===0&&t(E,"data")&&(G.flowing=!0,N(E))}}M.prototype.unpipe=function(E){var x=this._readableState,G={hasUnpiped:!1};if(x.pipesCount===0)return this;if(x.pipesCount===1)return E&&E!==x.pipes?this:(E||(E=x.pipes),x.pipes=null,x.pipesCount=0,x.flowing=!1,E&&E.emit("unpipe",this,G),this);if(!E){var Z=x.pipes,se=x.pipesCount;x.pipes=null,x.pipesCount=0,x.flowing=!1;for(var J=0;J<se;J++)Z[J].emit("unpipe",this,{hasUnpiped:!1});return this}var le=W(x.pipes,E);return le===-1?this:(x.pipes.splice(le,1),x.pipesCount-=1,x.pipesCount===1&&(x.pipes=x.pipes[0]),E.emit("unpipe",this,G),this)},M.prototype.on=function(E,x){var G=n.prototype.on.call(this,E,x),Z=this._readableState;return E==="data"?(Z.readableListening=this.listenerCount("readable")>0,Z.flowing!==!1&&this.resume()):E==="readable"&&!Z.endEmitted&&!Z.readableListening&&(Z.readableListening=Z.needReadable=!0,Z.flowing=!1,Z.emittedReadable=!1,f("on readable",Z.length,Z.reading),Z.length?De(this):Z.reading||process.nextTick(dt,this)),G},M.prototype.addListener=M.prototype.on,M.prototype.removeListener=function(E,x){var G=n.prototype.removeListener.call(this,E,x);return E==="readable"&&process.nextTick(_e,this),G},M.prototype.removeAllListeners=function(E){var x=n.prototype.removeAllListeners.apply(this,arguments);return(E==="readable"||E===void 0)&&process.nextTick(_e,this),x};function _e(E){var x=E._readableState;x.readableListening=E.listenerCount("readable")>0,x.resumeScheduled&&!x.paused?x.flowing=!0:E.listenerCount("data")>0&&E.resume()}function dt(E){f("readable nexttick read 0"),E.read(0)}M.prototype.resume=function(){var E=this._readableState;return E.flowing||(f("resume"),E.flowing=!E.readableListening,Ht(this,E)),E.paused=!1,this};function Ht(E,x){x.resumeScheduled||(x.resumeScheduled=!0,process.nextTick(Le,E,x))}function Le(E,x){f("resume",x.reading),x.reading||E.read(0),x.resumeScheduled=!1,E.emit("resume"),N(E),x.flowing&&!x.reading&&E.read(0)}M.prototype.pause=function(){return f("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(f("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function N(E){var x=E._readableState;for(f("flow",x.flowing);x.flowing&&E.read()!==null;);}M.prototype.wrap=function(E){var x=this,G=this._readableState,Z=!1;E.on("end",function(){if(f("wrapped end"),G.decoder&&!G.ended){var le=G.decoder.end();le&&le.length&&x.push(le)}x.push(null)}),E.on("data",function(le){if(f("wrapped data"),G.decoder&&(le=G.decoder.write(le)),!(G.objectMode&&le==null)&&!(!G.objectMode&&(!le||!le.length))){var Vt=x.push(le);Vt||(Z=!0,E.pause())}});for(var se in E)this[se]===void 0&&typeof E[se]=="function"&&(this[se]=function(Vt){return function(){return E[Vt].apply(E,arguments)}}(se));for(var J=0;J<B.length;J++)E.on(B[J],this.emit.bind(this,B[J]));return this._read=function(le){f("wrapped _read",le),Z&&(Z=!1,E.resume())},this},typeof Symbol=="function"&&(M.prototype[Symbol.asyncIterator]=function(){return C===void 0&&(C=IO()),C(this)}),Object.defineProperty(M.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(M.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(M.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(x){this._readableState&&(this._readableState.flowing=x)}}),M._fromList=P,Object.defineProperty(M.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}});function P(E,x){if(x.length===0)return null;var G;return x.objectMode?G=x.buffer.shift():!E||E>=x.length?(x.decoder?G=x.buffer.join(""):x.buffer.length===1?G=x.buffer.first():G=x.buffer.concat(x.length),x.buffer.clear()):G=x.buffer.consume(E,x.decoder),G}function q(E){var x=E._readableState;f("endReadable",x.endEmitted),x.endEmitted||(x.ended=!0,process.nextTick(H,x,E))}function H(E,x){if(f("endReadableNT",E.endEmitted,E.length),!E.endEmitted&&E.length===0&&(E.endEmitted=!0,x.readable=!1,x.emit("end"),E.autoDestroy)){var G=x._writableState;(!G||G.autoDestroy&&G.finished)&&x.destroy()}}typeof Symbol=="function"&&(M.from=function(E,x){return _===void 0&&(_=kO()),_(M,E,x)});function W(E,x){for(var G=0,Z=E.length;G<Z;G++)if(E[G]===x)return G;return-1}return lg}var fg,aE;function oE(){if(aE)return fg;aE=1,fg=s;var e=xo().codes,t=e.ERR_METHOD_NOT_IMPLEMENTED,n=e.ERR_MULTIPLE_CALLBACK,r=e.ERR_TRANSFORM_ALREADY_TRANSFORMING,i=e.ERR_TRANSFORM_WITH_LENGTH_0,a=Ao();vo(s,a);function o(u,c){var h=this._transformState;h.transforming=!1;var d=h.writecb;if(d===null)return this.emit("error",new n);h.writechunk=null,h.writecb=null,c!=null&&this.push(c),d(u);var p=this._readableState;p.reading=!1,(p.needReadable||p.length<p.highWaterMark)&&this._read(p.highWaterMark)}function s(u){if(!(this instanceof s))return new s(u);a.call(this,u),this._transformState={afterTransform:o.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,u&&(typeof u.transform=="function"&&(this._transform=u.transform),typeof u.flush=="function"&&(this._flush=u.flush)),this.on("prefinish",f)}function f(){var u=this;typeof this._flush=="function"&&!this._readableState.destroyed?this._flush(function(c,h){l(u,c,h)}):l(this,null,null)}s.prototype.push=function(u,c){return this._transformState.needTransform=!1,a.prototype.push.call(this,u,c)},s.prototype._transform=function(u,c,h){h(new t("_transform()"))},s.prototype._write=function(u,c,h){var d=this._transformState;if(d.writecb=h,d.writechunk=u,d.writeencoding=c,!d.transforming){var p=this._readableState;(d.needTransform||p.needReadable||p.length<p.highWaterMark)&&this._read(p.highWaterMark)}},s.prototype._read=function(u){var c=this._transformState;c.writechunk!==null&&!c.transforming?(c.transforming=!0,this._transform(c.writechunk,c.writeencoding,c.afterTransform)):c.needTransform=!0},s.prototype._destroy=function(u,c){a.prototype._destroy.call(this,u,function(h){c(h)})};function l(u,c,h){if(c)return u.emit("error",c);if(h!=null&&u.push(h),u._writableState.length)throw new i;if(u._transformState.transforming)throw new r;return u.push(null)}return fg}var ug,sE;function BO(){if(sE)return ug;sE=1,ug=t;var e=oE();vo(t,e);function t(n){if(!(this instanceof t))return new t(n);e.call(this,n)}return t.prototype._transform=function(n,r,i){i(null,n)},ug}var cg,lE;function DO(){if(lE)return cg;lE=1;var e;function t(h){var d=!1;return function(){d||(d=!0,h.apply(void 0,arguments))}}var n=xo().codes,r=n.ERR_MISSING_ARGS,i=n.ERR_STREAM_DESTROYED;function a(h){if(h)throw h}function o(h){return h.setHeader&&typeof h.abort=="function"}function s(h,d,p,b){b=t(b);var y=!1;h.on("close",function(){y=!0}),e===void 0&&(e=ag()),e(h,{readable:d,writable:p},function(S){if(S)return b(S);y=!0,b()});var w=!1;return function(S){if(!y&&!w){if(w=!0,o(h))return h.abort();if(typeof h.destroy=="function")return h.destroy();b(S||new i("pipe"))}}}function f(h){h()}function l(h,d){return h.pipe(d)}function u(h){return!h.length||typeof h[h.length-1]!="function"?a:h.pop()}function c(){for(var h=arguments.length,d=new Array(h),p=0;p<h;p++)d[p]=arguments[p];var b=u(d);if(Array.isArray(d[0])&&(d=d[0]),d.length<2)throw new r("streams");var y,w=d.map(function(S,C){var _=C<d.length-1,k=C>0;return s(S,_,k,function(B){y||(y=B),B&&w.forEach(f),!_&&(w.forEach(f),b(y))})});return d.reduce(l)}return cg=c,cg}var fE=pn,hg=jp.EventEmitter,FO=vo;FO(pn,hg),pn.Readable=iE(),pn.Writable=$3(),pn.Duplex=Ao(),pn.Transform=oE(),pn.PassThrough=BO(),pn.finished=ag(),pn.pipeline=DO(),pn.Stream=pn;function pn(){hg.call(this)}pn.prototype.pipe=function(e,t){var n=this;function r(u){e.writable&&e.write(u)===!1&&n.pause&&n.pause()}n.on("data",r);function i(){n.readable&&n.resume&&n.resume()}e.on("drain",i),!e._isStdio&&(!t||t.end!==!1)&&(n.on("end",o),n.on("close",s));var a=!1;function o(){a||(a=!0,e.end())}function s(){a||(a=!0,typeof e.destroy=="function"&&e.destroy())}function f(u){if(l(),hg.listenerCount(this,"error")===0)throw u}n.on("error",f),e.on("error",f);function l(){n.removeListener("data",r),e.removeListener("drain",i),n.removeListener("end",o),n.removeListener("close",s),n.removeListener("error",f),e.removeListener("error",f),n.removeListener("end",l),n.removeListener("close",l),e.removeListener("close",l)}return n.on("end",l),n.on("close",l),e.on("close",l),e.emit("pipe",n),e};function kl(e){return e.replace(/%([0-9A-Fa-f]{2})/g,(t,n)=>String.fromCharCode(parseInt(n,16)))}function uE(e,t){return String(t).replace(e,n=>`%${n.charCodeAt(0).toString(16).toUpperCase().padStart(2,"0")}`)}function Bl(e){return uE(/[\n;\r\t=%&,\x00-\x1f\x7f-\xff]/g,e)}function pr(e){return uE(/[\n\r\t%\x00-\x1f\x7f-\xff]/g,e)}function cE(e){if(!(e&&e.length)||e===".")return{};const t={};return e.replace(/\r?\n$/,"").split(";").forEach(n=>{const r=n.split("=",2);if(!(r[1]&&r[1].length))return;r[0]=r[0].trim();let i=t[r[0].trim()];i||(i=[],t[r[0]]=i),i.push(...r[1].split(",").map(a=>a.trim()).map(kl))}),t}function hE(e){const t=e.split(" ").map(r=>r==="."||r===""?null:r);return{seq_id:t[0]&&kl(t[0]),source:t[1]&&kl(t[1]),type:t[2]&&kl(t[2]),start:t[3]===null?null:parseInt(t[3],10),end:t[4]===null?null:parseInt(t[4],10),score:t[5]===null?null:parseFloat(t[5]),strand:t[6],phase:t[7],attributes:t[8]===null?null:cE(t[8])}}function dE(e){const t=/^\s*##\s*(\S+)\s*(.*)/.exec(e);if(!t)return null;const[,n]=t;let[,,r]=t;const i={directive:n};if(r.length&&(r=r.replace(/\r?\n$/,""),i.value=r),n==="sequence-region"){const a=r.split(/\s+/,3);return{...i,seq_id:a[0],start:a[1]&&a[1].replace(/\D/g,""),end:a[2]&&a[2].replace(/\D/g,"")}}else if(n==="genome-build"){const[a,o]=r.split(/\s+/,2);return{...i,source:a,buildName:o}}return i}function pE(e){const t=[];return Object.entries(e).forEach(([n,r])=>{if(!r)return;let i;r.hasOwnProperty("toString")?i=Bl(r.toString()):Array.isArray(r)?i=r.map(Bl).join(","):i=Bl(r),t.push(`${Bl(n)}=${i}`)}),t.length?t.join(";"):"."}function RO(e,t){const n=e.attributes===null||e.attributes===void 0?".":pE(e.attributes),i=`${[e.seq_id===null?".":pr(e.seq_id),e.source===null?".":pr(e.source),e.type===null?".":pr(e.type),e.start===null?".":pr(e.start),e.end===null?".":pr(e.end),e.score===null?".":pr(e.score),e.strand===null?".":pr(e.strand),e.phase===null?".":pr(e.phase),n].join(" ")}
451
+ `;return t[i]?"":(t[i]=!0,i)}function wc(e,t){if(Array.isArray(e))return e.map(r=>wc(r,t)).join("");const n=[RO(e,t)];return PO(e)&&n.push(...e.child_features.map(r=>wc(r,t)),...e.derived_features.map(r=>wc(r,t))),n.join("")}function gE(e){return wc(e,{})}function mE(e){let t=`##${e.directive}`;return e.value&&(t+=` ${e.value}`),t+=`
452
+ `,t}function bE(e){return`# ${e.comment}
453
+ `}function dg(e){return`>${e.id}${e.description?` ${e.description}`:""}
454
+ ${e.sequence}
455
+ `}function vc(e){function t(n){return"attributes"in n?gE(n):"directive"in n?mE(n):"sequence"in n?dg(n):"comment"in n?bE(n):`# (invalid item found during format)
456
+ `}return Array.isArray(e)?e.map(t):t(e)}function PO(e){return e.child_features!==void 0&&e.derived_features!==void 0}const MO=Object.freeze(Object.defineProperty({__proto__:null,escape:Bl,escapeColumn:pr,formatAttributes:pE,formatComment:bE,formatDirective:mE,formatFeature:gE,formatItem:vc,formatSequence:dg,parseAttributes:cE,parseDirective:dE,parseFeature:hE,unescape:kl},Symbol.toStringTag,{value:"Module"})),yE={Parent:"child_features",Derives_from:"derived_features"};class wE{constructor(t){this.seqCallback=t,this.currentSequence=void 0}addLine(t){const n=/^>\s*(\S+)\s*(.*)/.exec(t);n?(this._flush(),this.currentSequence={id:n[1],sequence:""},n[2]&&(this.currentSequence.description=n[2].trim())):this.currentSequence&&/\S/.test(t)&&(this.currentSequence.sequence+=t.replace(/\s/g,""))}_flush(){this.currentSequence&&this.seqCallback(this.currentSequence)}finish(){this._flush()}}class vE{constructor(t){this.fastaParser=void 0,this.eof=!1,this.lineNumber=0,this._underConstructionTopLevel=[],this._underConstructionById={},this._completedReferences={},this._underConstructionOrphans={};const n=()=>{};this.featureCallback=t.featureCallback||n,this.endCallback=t.endCallback||n,this.commentCallback=t.commentCallback||n,this.errorCallback=t.errorCallback||n,this.directiveCallback=t.directiveCallback||n,this.sequenceCallback=t.sequenceCallback||n,this.disableDerivesFromReferences=t.disableDerivesFromReferences||!1,this.bufferSize=t.bufferSize===void 0?1e3:t.bufferSize}addLine(t){if(this.fastaParser){this.fastaParser.addLine(t);return}if(this.eof)return;if(this.lineNumber+=1,/^\s*[^#\s>]/.test(t)){this._bufferLine(t);return}const n=/^\s*(#+)(.*)/.exec(t);if(n){const[,r]=n;let[,,i]=n;if(r.length===3)this._emitAllUnderConstructionFeatures();else if(r.length===2){const a=dE(t);a&&(a.directive==="FASTA"?(this._emitAllUnderConstructionFeatures(),this.eof=!0,this.fastaParser=new wE(this.sequenceCallback)):this._emitItem(a))}else i=i.replace(/\s*/,""),this._emitItem({comment:i})}else if(!/^\s*$/.test(t))if(/^\s*>/.test(t))this._emitAllUnderConstructionFeatures(),this.eof=!0,this.fastaParser=new wE(this.sequenceCallback),this.fastaParser.addLine(t);else{const r=t.replace(/\r?\n?$/g,"");throw new Error(`GFF3 parse error. Cannot parse '${r}'.`)}}finish(){this._emitAllUnderConstructionFeatures(),this.fastaParser&&this.fastaParser.finish(),this.endCallback()}_emitItem(t){Array.isArray(t)?this.featureCallback(t):"directive"in t?this.directiveCallback(t):"comment"in t&&this.commentCallback(t)}_enforceBufferSizeLimit(t=0){const n=r=>{r&&Array.isArray(r)&&r[0].attributes&&r[0].attributes.ID&&r[0].attributes.ID[0]&&(r[0].attributes.ID.forEach(a=>{delete this._underConstructionById[a],delete this._completedReferences[a]}),r.forEach(a=>{a.child_features&&a.child_features.forEach(o=>n(o)),a.derived_features&&a.derived_features.forEach(o=>n(o))}))};for(;this._underConstructionTopLevel.length+t>this.bufferSize;){const r=this._underConstructionTopLevel.shift();r&&(this._emitItem(r),n(r))}}_emitAllUnderConstructionFeatures(){if(this._underConstructionTopLevel.forEach(this._emitItem.bind(this)),this._underConstructionTopLevel=[],this._underConstructionById={},this._completedReferences={},Array.from(Object.values(this._underConstructionOrphans)).length)throw new Error(`some features reference other features that do not exist in the file (or in the same '###' scope). ${Object.keys(this._underConstructionOrphans)}`)}_bufferLine(t){var n,r,i;const o={...hE(t),child_features:[],derived_features:[]},s=((n=o.attributes)===null||n===void 0?void 0:n.ID)||[],f=((r=o.attributes)===null||r===void 0?void 0:r.Parent)||[],l=this.disableDerivesFromReferences?[]:((i=o.attributes)===null||i===void 0?void 0:i.Derives_from)||[];if(!s.length&&!f.length&&!l.length){this._emitItem([o]);return}let u;s.forEach(c=>{const h=this._underConstructionById[c];h?(h[h.length-1].type!==o.type&&this._parseError(`multi-line feature "${c}" has inconsistent types: "${o.type}", "${h[h.length-1].type}"`),h.push(o),u=h):(u=[o],this._enforceBufferSizeLimit(1),!f.length&&!l.length&&this._underConstructionTopLevel.push(u),this._underConstructionById[c]=u,this._resolveReferencesTo(u,c))}),this._resolveReferencesFrom(u||[o],{Parent:f,Derives_from:l},s)}_resolveReferencesTo(t,n){const r=this._underConstructionOrphans[n];r&&(t.forEach(i=>{i.child_features.push(...r.Parent)}),t.forEach(i=>{i.derived_features.push(...r.Derives_from)}),delete this._underConstructionOrphans[n])}_parseError(t){this.eof=!0,this.errorCallback(`${this.lineNumber}: ${t}`)}_resolveReferencesFrom(t,n,r){function i(a,o,s){let f=a[o];f||(f={},a[o]=f);const l=f[s]||!1;return f[s]=!0,l}n.Parent.forEach(a=>{const o=this._underConstructionById[a];if(o){const s=yE.Parent;r.filter(f=>i(this._completedReferences,f,`Parent,${a}`)).length||o.forEach(f=>{f[s].push(t)})}else{let s=this._underConstructionOrphans[a];s||(s={Parent:[],Derives_from:[]},this._underConstructionOrphans[a]=s),s.Parent.push(t)}}),n.Derives_from.forEach(a=>{const o=this._underConstructionById[a];if(o){const s=yE.Derives_from;r.filter(f=>i(this._completedReferences,f,`Derives_from,${a}`)).length||o.forEach(f=>{f[s].push(t)})}else{let s=this._underConstructionOrphans[a];s||(s={Parent:[],Derives_from:[]},this._underConstructionOrphans[a]=s),s.Derives_from.push(t)}})}}function pg(e){process&&process.nextTick?process.nextTick(e):e()}function xE(e){const t={encoding:"utf8",parseFeatures:!0,parseDirectives:!1,parseSequences:!0,parseComments:!1,bufferSize:1e3,disableDerivesFromReferences:!1,...e};return e.parseAll&&(t.parseFeatures=!0,t.parseDirectives=!0,t.parseComments=!0,t.parseSequences=!0),t}class NO extends fE.Transform{constructor(t={}){super({objectMode:!0}),this.textBuffer="";const n=xE(t);this.encoding=t.encoding||"utf8",this.decoder=new mO;const r=this.push.bind(this);this.parser=new vE({featureCallback:n.parseFeatures?r:void 0,directiveCallback:n.parseDirectives?r:void 0,commentCallback:n.parseComments?r:void 0,sequenceCallback:n.parseSequences?r:void 0,errorCallback:i=>this.emit("error",i),bufferSize:n.bufferSize,disableDerivesFromReferences:n.disableDerivesFromReferences})}_addLine(t){t&&this.parser.addLine(t)}_nextText(t){const n=(this.textBuffer+t).split(/\r?\n/);this.textBuffer=n.pop()||"",n.forEach(r=>this._addLine(r))}_transform(t,n,r){this._nextText(this.decoder.write(t)),pg(r)}_flush(t){this.decoder.end&&this._nextText(this.decoder.end()),this.textBuffer!=null&&this._addLine(this.textBuffer),this.parser.finish(),pg(t)}}function LO(e={}){return new NO(e)}function OO(e,t={}){if(!e)return[];const n=xE(t),r=[],i=r.push.bind(r),a=new vE({featureCallback:n.parseFeatures?i:void 0,directiveCallback:n.parseDirectives?i:void 0,commentCallback:n.parseComments?i:void 0,sequenceCallback:n.parseSequences?i:void 0,disableDerivesFromReferences:n.disableDerivesFromReferences||!1,bufferSize:1/0,errorCallback:o=>{throw o}});return e.split(/\r?\n/).forEach(a.addLine.bind(a)),a.finish(),r}function zO(e){const t=[],n=[];e.forEach(i=>{"sequence"in i?n.push(i):t.push(i)});let r=t.map(vc).join("");return n.length&&(r+=`##FASTA
457
+ `,r+=n.map(dg).join("")),r}class AE extends fE.Transform{constructor(t={}){super(Object.assign(t,{objectMode:!0})),this.linesSinceLastSyncMark=0,this.haveWeEmittedData=!1,this.fastaMode=!1,this.minLinesBetweenSyncMarks=t.minSyncLines||100,this.insertVersionDirective=t.insertVersionDirective||!1}_transform(t,n,r){let i;if(!this.haveWeEmittedData&&this.insertVersionDirective){const a=Array.isArray(t)?t[0]:t;"directive"in a&&a.directive!=="gff-version"&&this.push(`##gff-version 3
458
+ `)}if("sequence"in t&&!this.fastaMode&&(this.push(`##FASTA
459
+ `),this.fastaMode=!0),Array.isArray(t)?i=t.map(vc).join(""):i=vc(t),this.push(i),this.linesSinceLastSyncMark>=this.minLinesBetweenSyncMarks)this.push(`###
459
460
  `),this.linesSinceLastSyncMark=0;else{let a=0;for(let o=0;o<i.length;o+=1)i[o]===`
460
- `&&(a+=1);this.linesSinceLastSyncMark+=a}this.haveWeEmittedData=!0,Cp(r)}}function UP(t={}){return new x3(t)}function jP(t,e,n={}){const r={insertVersionDirective:!0,...n};return new Promise((i,a)=>{t.pipe(new x3(r)).on("end",()=>i(null)).on("error",a).pipe(e)})}const GP={parseStream:OP,parseStringSync:zP,formatSync:PP,formatStream:UP,formatFile:jP,util:LP};function v3(t){if(t.greaterThan(Number.MAX_SAFE_INTEGER)||t.lessThan(Number.MIN_SAFE_INTEGER))throw new Error("integer overflow");return t.toNumber()}class HP extends Error{}function _a(t){if(t&&t.aborted){if(typeof DOMException<"u")throw new DOMException("aborted","AbortError");{const e=new HP("aborted");throw e.code="ERR_ABORTED",e}}}function QP(t,e){return e.minv.blockPosition-t.maxv.blockPosition<65e3&&e.maxv.blockPosition-t.minv.blockPosition<5e6}function A3(t,e){const n=[];let r=null;return t.length===0?t:(t.sort(function(i,a){const o=i.minv.blockPosition-a.minv.blockPosition;return o!==0?o:i.minv.dataPosition-a.minv.dataPosition}),t.forEach(i=>{(!e||i.maxv.compareTo(e)>0)&&(r===null?(n.push(i),r=i):QP(r,i)?i.maxv.compareTo(r.maxv)>0&&(r.maxv=i.maxv):(n.push(i),r=i))}),n)}var VP=ze,En=null;try{En=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch{}function ze(t,e,n){this.low=t|0,this.high=e|0,this.unsigned=!!n}ze.prototype.__isLong__,Object.defineProperty(ze.prototype,"__isLong__",{value:!0});function Vt(t){return(t&&t.__isLong__)===!0}ze.isLong=Vt;var E3={},S3={};function Ca(t,e){var n,r,i;return e?(t>>>=0,(i=0<=t&&t<256)&&(r=S3[t],r)?r:(n=Pe(t,(t|0)<0?-1:0,!0),i&&(S3[t]=n),n)):(t|=0,(i=-128<=t&&t<128)&&(r=E3[t],r)?r:(n=Pe(t,t<0?-1:0,!1),i&&(E3[t]=n),n))}ze.fromInt=Ca;function Sn(t,e){if(isNaN(t))return e?Da:_n;if(e){if(t<0)return Da;if(t>=C3)return N3}else{if(t<=-D3)return qt;if(t+1>=D3)return T3}return t<0?Sn(-t,e).neg():Pe(t%Ho|0,t/Ho|0,e)}ze.fromNumber=Sn;function Pe(t,e,n){return new ze(t,e,n)}ze.fromBits=Pe;var Tc=Math.pow;function Dp(t,e,n){if(t.length===0)throw Error("empty string");if(t==="NaN"||t==="Infinity"||t==="+Infinity"||t==="-Infinity")return _n;if(typeof e=="number"?(n=e,e=!1):e=!!e,n=n||10,n<2||36<n)throw RangeError("radix");var r;if((r=t.indexOf("-"))>0)throw Error("interior hyphen");if(r===0)return Dp(t.substring(1),e,n).neg();for(var i=Sn(Tc(n,8)),a=_n,o=0;o<t.length;o+=8){var s=Math.min(8,t.length-o),f=parseInt(t.substring(o,o+s),n);if(s<8){var u=Sn(Tc(n,s));a=a.mul(u).add(Sn(f))}else a=a.mul(i),a=a.add(Sn(f))}return a.unsigned=e,a}ze.fromString=Dp;function Gn(t,e){return typeof t=="number"?Sn(t,e):typeof t=="string"?Dp(t,e):Pe(t.low,t.high,typeof e=="boolean"?e:t.unsigned)}ze.fromValue=Gn;var _3=65536,qP=1<<24,Ho=_3*_3,C3=Ho*Ho,D3=C3/2,I3=Ca(qP),_n=Ca(0);ze.ZERO=_n;var Da=Ca(0,!0);ze.UZERO=Da;var Qo=Ca(1);ze.ONE=Qo;var M3=Ca(1,!0);ze.UONE=M3;var Ip=Ca(-1);ze.NEG_ONE=Ip;var T3=Pe(-1,2147483647,!1);ze.MAX_VALUE=T3;var N3=Pe(-1,-1,!0);ze.MAX_UNSIGNED_VALUE=N3;var qt=Pe(0,-2147483648,!1);ze.MIN_VALUE=qt;var W=ze.prototype;W.toInt=function(){return this.unsigned?this.low>>>0:this.low},W.toNumber=function(){return this.unsigned?(this.high>>>0)*Ho+(this.low>>>0):this.high*Ho+(this.low>>>0)},W.toString=function(e){if(e=e||10,e<2||36<e)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative())if(this.eq(qt)){var n=Sn(e),r=this.div(n),i=r.mul(n).sub(this);return r.toString(e)+i.toInt().toString(e)}else return"-"+this.neg().toString(e);for(var a=Sn(Tc(e,6),this.unsigned),o=this,s="";;){var f=o.div(a),u=o.sub(f.mul(a)).toInt()>>>0,l=u.toString(e);if(o=f,o.isZero())return l+s;for(;l.length<6;)l="0"+l;s=""+l+s}},W.getHighBits=function(){return this.high},W.getHighBitsUnsigned=function(){return this.high>>>0},W.getLowBits=function(){return this.low},W.getLowBitsUnsigned=function(){return this.low>>>0},W.getNumBitsAbs=function(){if(this.isNegative())return this.eq(qt)?64:this.neg().getNumBitsAbs();for(var e=this.high!=0?this.high:this.low,n=31;n>0&&!(e&1<<n);n--);return this.high!=0?n+33:n+1},W.isZero=function(){return this.high===0&&this.low===0},W.eqz=W.isZero,W.isNegative=function(){return!this.unsigned&&this.high<0},W.isPositive=function(){return this.unsigned||this.high>=0},W.isOdd=function(){return(this.low&1)===1},W.isEven=function(){return(this.low&1)===0},W.equals=function(e){return Vt(e)||(e=Gn(e)),this.unsigned!==e.unsigned&&this.high>>>31===1&&e.high>>>31===1?!1:this.high===e.high&&this.low===e.low},W.eq=W.equals,W.notEquals=function(e){return!this.eq(e)},W.neq=W.notEquals,W.ne=W.notEquals,W.lessThan=function(e){return this.comp(e)<0},W.lt=W.lessThan,W.lessThanOrEqual=function(e){return this.comp(e)<=0},W.lte=W.lessThanOrEqual,W.le=W.lessThanOrEqual,W.greaterThan=function(e){return this.comp(e)>0},W.gt=W.greaterThan,W.greaterThanOrEqual=function(e){return this.comp(e)>=0},W.gte=W.greaterThanOrEqual,W.ge=W.greaterThanOrEqual,W.compare=function(e){if(Vt(e)||(e=Gn(e)),this.eq(e))return 0;var n=this.isNegative(),r=e.isNegative();return n&&!r?-1:!n&&r?1:this.unsigned?e.high>>>0>this.high>>>0||e.high===this.high&&e.low>>>0>this.low>>>0?-1:1:this.sub(e).isNegative()?-1:1},W.comp=W.compare,W.negate=function(){return!this.unsigned&&this.eq(qt)?qt:this.not().add(Qo)},W.neg=W.negate,W.add=function(e){Vt(e)||(e=Gn(e));var n=this.high>>>16,r=this.high&65535,i=this.low>>>16,a=this.low&65535,o=e.high>>>16,s=e.high&65535,f=e.low>>>16,u=e.low&65535,l=0,c=0,h=0,d=0;return d+=a+u,h+=d>>>16,d&=65535,h+=i+f,c+=h>>>16,h&=65535,c+=r+s,l+=c>>>16,c&=65535,l+=n+o,l&=65535,Pe(h<<16|d,l<<16|c,this.unsigned)},W.subtract=function(e){return Vt(e)||(e=Gn(e)),this.add(e.neg())},W.sub=W.subtract,W.multiply=function(e){if(this.isZero())return _n;if(Vt(e)||(e=Gn(e)),En){var n=En.mul(this.low,this.high,e.low,e.high);return Pe(n,En.get_high(),this.unsigned)}if(e.isZero())return _n;if(this.eq(qt))return e.isOdd()?qt:_n;if(e.eq(qt))return this.isOdd()?qt:_n;if(this.isNegative())return e.isNegative()?this.neg().mul(e.neg()):this.neg().mul(e).neg();if(e.isNegative())return this.mul(e.neg()).neg();if(this.lt(I3)&&e.lt(I3))return Sn(this.toNumber()*e.toNumber(),this.unsigned);var r=this.high>>>16,i=this.high&65535,a=this.low>>>16,o=this.low&65535,s=e.high>>>16,f=e.high&65535,u=e.low>>>16,l=e.low&65535,c=0,h=0,d=0,g=0;return g+=o*l,d+=g>>>16,g&=65535,d+=a*l,h+=d>>>16,d&=65535,d+=o*u,h+=d>>>16,d&=65535,h+=i*l,c+=h>>>16,h&=65535,h+=a*u,c+=h>>>16,h&=65535,h+=o*f,c+=h>>>16,h&=65535,c+=r*l+i*u+a*f+o*s,c&=65535,Pe(d<<16|g,c<<16|h,this.unsigned)},W.mul=W.multiply,W.divide=function(e){if(Vt(e)||(e=Gn(e)),e.isZero())throw Error("division by zero");if(En){if(!this.unsigned&&this.high===-2147483648&&e.low===-1&&e.high===-1)return this;var n=(this.unsigned?En.div_u:En.div_s)(this.low,this.high,e.low,e.high);return Pe(n,En.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?Da:_n;var r,i,a;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return Da;if(e.gt(this.shru(1)))return M3;a=Da}else{if(this.eq(qt)){if(e.eq(Qo)||e.eq(Ip))return qt;if(e.eq(qt))return Qo;var o=this.shr(1);return r=o.div(e).shl(1),r.eq(_n)?e.isNegative()?Qo:Ip:(i=this.sub(e.mul(r)),a=r.add(i.div(e)),a)}else if(e.eq(qt))return this.unsigned?Da:_n;if(this.isNegative())return e.isNegative()?this.neg().div(e.neg()):this.neg().div(e).neg();if(e.isNegative())return this.div(e.neg()).neg();a=_n}for(i=this;i.gte(e);){r=Math.max(1,Math.floor(i.toNumber()/e.toNumber()));for(var s=Math.ceil(Math.log(r)/Math.LN2),f=s<=48?1:Tc(2,s-48),u=Sn(r),l=u.mul(e);l.isNegative()||l.gt(i);)r-=f,u=Sn(r,this.unsigned),l=u.mul(e);u.isZero()&&(u=Qo),a=a.add(u),i=i.sub(l)}return a},W.div=W.divide,W.modulo=function(e){if(Vt(e)||(e=Gn(e)),En){var n=(this.unsigned?En.rem_u:En.rem_s)(this.low,this.high,e.low,e.high);return Pe(n,En.get_high(),this.unsigned)}return this.sub(this.div(e).mul(e))},W.mod=W.modulo,W.rem=W.modulo,W.not=function(){return Pe(~this.low,~this.high,this.unsigned)},W.and=function(e){return Vt(e)||(e=Gn(e)),Pe(this.low&e.low,this.high&e.high,this.unsigned)},W.or=function(e){return Vt(e)||(e=Gn(e)),Pe(this.low|e.low,this.high|e.high,this.unsigned)},W.xor=function(e){return Vt(e)||(e=Gn(e)),Pe(this.low^e.low,this.high^e.high,this.unsigned)},W.shiftLeft=function(e){return Vt(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?Pe(this.low<<e,this.high<<e|this.low>>>32-e,this.unsigned):Pe(0,this.low<<e-32,this.unsigned)},W.shl=W.shiftLeft,W.shiftRight=function(e){return Vt(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?Pe(this.low>>>e|this.high<<32-e,this.high>>e,this.unsigned):Pe(this.high>>e-32,this.high>=0?0:-1,this.unsigned)},W.shr=W.shiftRight,W.shiftRightUnsigned=function(e){if(Vt(e)&&(e=e.toInt()),e&=63,e===0)return this;var n=this.high;if(e<32){var r=this.low;return Pe(r>>>e|n<<32-e,n>>>e,this.unsigned)}else return e===32?Pe(n,0,this.unsigned):Pe(n>>>e-32,0,this.unsigned)},W.shru=W.shiftRightUnsigned,W.shr_u=W.shiftRightUnsigned,W.toSigned=function(){return this.unsigned?Pe(this.low,this.high,!1):this},W.toUnsigned=function(){return this.unsigned?this:Pe(this.low,this.high,!0)},W.toBytes=function(e){return e?this.toBytesLE():this.toBytesBE()},W.toBytesLE=function(){var e=this.high,n=this.low;return[n&255,n>>>8&255,n>>>16&255,n>>>24,e&255,e>>>8&255,e>>>16&255,e>>>24]},W.toBytesBE=function(){var e=this.high,n=this.low;return[e>>>24,e>>>16&255,e>>>8&255,e&255,n>>>24,n>>>16&255,n>>>8&255,n&255]},ze.fromBytes=function(e,n,r){return r?ze.fromBytesLE(e,n):ze.fromBytesBE(e,n)},ze.fromBytesLE=function(e,n){return new ze(e[0]|e[1]<<8|e[2]<<16|e[3]<<24,e[4]|e[5]<<8|e[6]<<16|e[7]<<24,n)},ze.fromBytesBE=function(e,n){return new ze(e[4]<<24|e[5]<<16|e[6]<<8|e[7],e[0]<<24|e[1]<<16|e[2]<<8|e[3],n)};const F3=ia(VP);class Mp{constructor(e,n){this.blockPosition=e,this.dataPosition=n}toString(){return`${this.blockPosition}:${this.dataPosition}`}compareTo(e){return this.blockPosition-e.blockPosition||this.dataPosition-e.dataPosition}static min(...e){let n,r=0;for(;!n;r+=1)n=e[r];for(;r<e.length;r+=1)n.compareTo(e[r])>0&&(n=e[r]);return n}}function Vo(t,e=0,n=!1){if(n)throw new Error("big-endian virtual file offsets not implemented");return new Mp(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])}class Nc{constructor(e,n,r,i=void 0){this.minv=e,this.maxv=n,this.bin=r,this._fetchedSize=i}toUniqueString(){return`${this.minv}..${this.maxv} (bin ${this.bin}, fetchedSize ${this.fetchedSize()})`}toString(){return this.toUniqueString()}compareTo(e){return this.minv.compareTo(e.minv)||this.maxv.compareTo(e.maxv)||this.bin-e.bin}fetchedSize(){return this._fetchedSize!==void 0?this._fetchedSize:this.maxv.blockPosition+65536-this.minv.blockPosition}}class k3{constructor({filehandle:e,renameRefSeqs:n=r=>r}){this.filehandle=e,this.renameRefSeq=n}async getMetadata(e={}){const{indices:n,...r}=await this.parse(e);return r}_findFirstData(e,n){return e?e.compareTo(n)>0?n:e:n}async parse(e={}){return this.parseP||(this.parseP=this._parse(e).catch(n=>{throw this.parseP=void 0,n})),this.parseP}async hasRefSeq(e,n={}){return!!((await this.parse(n)).indices[e]||{}).binIndex}}const ZP=21578324,B3=14;function YP(t,e){return t+=1,e-=1,[[0,0],[1+(t>>26),1+(e>>26)],[9+(t>>23),9+(e>>23)],[73+(t>>20),73+(e>>20)],[585+(t>>17),585+(e>>17)],[4681+(t>>14),4681+(e>>14)]]}class Tp extends k3{async lineCount(e,n={}){const r=await this.parse(n);if(!r)return-1;const i=r.refNameToId[e];if(!r.indices[i])return-1;const{stats:o}=r.indices[i];return o?o.lineCount:-1}async _parse(e={}){const n=await this.filehandle.readFile(e),r=await wo(n);if(_a(e.signal),r.readUInt32LE(0)!==ZP)throw new Error("Not a TBI file");const i=r.readInt32LE(4),a=r.readInt32LE(8),o=a&65536?"zero-based-half-open":"1-based-closed",f={0:"generic",1:"SAM",2:"VCF"}[a&15];if(!f)throw new Error(`invalid Tabix preset format flags ${a}`);const u={ref:r.readInt32LE(12),start:r.readInt32LE(16),end:r.readInt32LE(20)},l=r.readInt32LE(24),c=5,h=((1<<(c+1)*3)-1)/7,d=2**(14+c*3),g=l?String.fromCharCode(l):null,b=r.readInt32LE(28),y=r.readInt32LE(32),{refNameToId:w,refIdToName:E}=this._parseNameBytes(r.slice(36,36+y));let _=36+y,D;return{indices:new Array(i).fill(0).map(()=>{const N=r.readInt32LE(_);_+=4;const M={};let R;for(let L=0;L<N;L+=1){const ee=r.readUInt32LE(_);if(_+=4,ee>h+1)throw new Error("tabix index contains too many bins, please use a CSI index");if(ee===h+1){const ne=r.readInt32LE(_);_+=4,ne===2&&(R=this.parsePseudoBin(r,_)),_+=16*ne}else{const ne=r.readInt32LE(_);_+=4;const J=new Array(ne);for(let be=0;be<ne;be+=1){const Se=Vo(r,_),Te=Vo(r,_+8);_+=16,D=this._findFirstData(D,Se),J[be]=new Nc(Se,Te,ee)}M[ee]=J}}const C=r.readInt32LE(_);_+=4;const B=new Array(C);for(let L=0;L<C;L+=1)B[L]=Vo(r,_),_+=8,D=this._findFirstData(D,B[L]);return{binIndex:M,linearIndex:B,stats:R}}),metaChar:g,maxBinNumber:h,maxRefLength:d,skipLines:b,firstDataLine:D,columnNumbers:u,coordinateType:o,format:f,refIdToName:E,refNameToId:w,maxBlockSize:65536}}parsePseudoBin(e,n){return{lineCount:v3(F3.fromBytesLE(e.slice(n+16,n+24),!0))}}_parseNameBytes(e){let n=0,r=0;const i=[],a={};for(let o=0;o<e.length;o+=1)if(!e[o]){if(r<o){let s=e.toString("utf8",r,o);s=this.renameRefSeq(s),i[n]=s,a[s]=n}r=o+1,n+=1}return{refNameToId:a,refIdToName:i}}async blocksForRange(e,n,r,i={}){n<0&&(n=0);const a=await this.parse(i);if(!a)return[];const o=a.refNameToId[e],s=a.indices[o];if(!s)return[];(s.linearIndex.length?s.linearIndex[n>>B3>=s.linearIndex.length?s.linearIndex.length-1:n>>B3]:new Mp(0,0))||console.warn("querying outside of possible tabix range");const u=YP(n,r),l=[];for(const[b,y]of u)for(let w=b;w<=y;w++)if(s.binIndex[w]){const E=s.binIndex[w];for(let _=0;_<E.length;++_)l.push(new Nc(E[_].minv,E[_].maxv,w))}const c=s.linearIndex.length;let h=null;const d=Math.min(n>>14,c-1),g=Math.min(r>>14,c-1);for(let b=d;b<=g;++b){const y=s.linearIndex[b];y&&(!h||y.compareTo(h)<0)&&(h=y)}return A3(l,h)}}const WP=21582659,XP=38359875;function $P(t,e){return t*2**e}function L3(t,e){return Math.floor(t/2**e)}class R3 extends k3{constructor(e){super(e),this.maxBinNumber=0,this.depth=0,this.minShift=0}async lineCount(e,n={}){const r=await this.parse(n);if(!r)return-1;const i=r.refNameToId[e];if(!r.indices[i])return-1;const{stats:o}=r.indices[i];return o?o.lineCount:-1}async indexCov(){throw new Error("CSI indexes do not support indexcov")}parseAuxData(e,n){const r=e.readInt32LE(n),i=r&65536?"zero-based-half-open":"1-based-closed",a={0:"generic",1:"SAM",2:"VCF"}[r&15];if(!a)throw new Error(`invalid Tabix preset format flags ${r}`);const o={ref:e.readInt32LE(n+4),start:e.readInt32LE(n+8),end:e.readInt32LE(n+12)},s=e.readInt32LE(n+16),f=s?String.fromCharCode(s):null,u=e.readInt32LE(n+20),l=e.readInt32LE(n+24),{refIdToName:c,refNameToId:h}=this._parseNameBytes(e.slice(n+28,n+28+l));return{refIdToName:c,refNameToId:h,skipLines:u,metaChar:f,columnNumbers:o,format:a,coordinateType:i}}_parseNameBytes(e){let n=0,r=0;const i=[],a={};for(let o=0;o<e.length;o+=1)if(!e[o]){if(r<o){let s=e.toString("utf8",r,o);s=this.renameRefSeq(s),i[n]=s,a[s]=n}r=o+1,n+=1}return{refNameToId:a,refIdToName:i}}async _parse(e={}){const n=await wo(await this.filehandle.readFile(e));let r;if(n.readUInt32LE(0)===WP)r=1;else if(n.readUInt32LE(0)===XP)r=2;else throw new Error("Not a CSI file");this.minShift=n.readInt32LE(4),this.depth=n.readInt32LE(8),this.maxBinNumber=((1<<(this.depth+1)*3)-1)/7;const i=2**(this.minShift+this.depth*3),a=n.readInt32LE(12),o=a&&a>=30?this.parseAuxData(n,16):{refIdToName:[],refNameToId:{},metaChar:null,columnNumbers:{ref:0,start:1,end:2},coordinateType:"zero-based-half-open",format:"generic"},s=n.readInt32LE(16+a);let f,u=16+a+4;const l=new Array(s).fill(0).map(()=>{const c=n.readInt32LE(u);u+=4;const h={};let d;for(let g=0;g<c;g+=1){const b=n.readUInt32LE(u);if(b>this.maxBinNumber)d=this.parsePseudoBin(n,u+4),u+=4+8+4+16+16;else{const y=Vo(n,u+4);f=this._findFirstData(f,y);const w=n.readInt32LE(u+12);u+=16;const E=new Array(w);for(let _=0;_<w;_+=1){const D=Vo(n,u),T=Vo(n,u+8);u+=16,E[_]=new Nc(D,T,b)}h[b]=E}}return{binIndex:h,stats:d}});return{...o,csi:!0,refCount:s,maxBlockSize:65536,firstDataLine:f,csiVersion:r,indices:l,depth:this.depth,maxBinNumber:this.maxBinNumber,maxRefLength:i}}parsePseudoBin(e,n){return{lineCount:v3(F3.fromBytesLE(e.slice(n+28,n+36),!0))}}async blocksForRange(e,n,r,i={}){n<0&&(n=0);const a=await this.parse(i);if(!a)return[];const o=a.refNameToId[e],s=a.indices[o];if(!s)return[];const f=this.reg2bins(n,r),u=[];for(const[l,c]of f)for(let h=l;h<=c;h++)if(s.binIndex[h]){const d=s.binIndex[h];for(let g=0;g<d.length;++g)u.push(new Nc(d[g].minv,d[g].maxv,h))}return A3(u,new Mp(0,0))}reg2bins(e,n){e-=1,e<1&&(e=1),n>2**50&&(n=2**34),n-=1;let r=0,i=0,a=this.minShift+this.depth*3;const o=[];for(;r<=this.depth;a-=3,i+=$P(1,r*3),r+=1){const s=i+L3(e,a),f=i+L3(n,a);if(f-s+o.length>this.maxBinNumber)throw new Error(`query ${e}-${n} is too large for current binning scheme (shift ${this.minShift}, depth ${this.depth}), try a smaller query or a coarser index binning scheme`);o.push([s,f])}return o}}const Np=typeof TextDecoder<"u"?new TextDecoder("utf-8"):void 0;function KP(t){return new Promise(e=>setTimeout(e,t))}class JP{constructor({path:e,filehandle:n,tbiPath:r,tbiFilehandle:i,csiPath:a,csiFilehandle:o,yieldTime:s=500,chunkSizeLimit:f=5e7,renameRefSeqs:u=c=>c,chunkCacheSize:l=5*2**20}){if(n)this.filehandle=n;else if(e)this.filehandle=new Jt(e);else throw new TypeError("must provide either filehandle or path");if(i)this.index=new Tp({filehandle:i,renameRefSeqs:u});else if(o)this.index=new R3({filehandle:o,renameRefSeqs:u});else if(r)this.index=new Tp({filehandle:new Jt(r),renameRefSeqs:u});else if(a)this.index=new R3({filehandle:new Jt(a),renameRefSeqs:u});else if(e)this.index=new Tp({filehandle:new Jt(`${e}.tbi`),renameRefSeqs:u});else throw new TypeError("must provide one of tbiFilehandle, tbiPath, csiFilehandle, or csiPath");this.chunkSizeLimit=f,this.renameRefSeq=u,this.yieldTime=s,this.chunkCache=new ac({cache:new rg({maxSize:Math.floor(l/65536)}),fill:(c,h)=>this.readChunk(c,{signal:h})})}async getLines(e,n,r,i){let a,o={},s;if(typeof i>"u")throw new TypeError("line callback must be provided");if(typeof i=="function"?s=i:(o=i,s=i.lineCallback),e===void 0)throw new TypeError("must provide a reference sequence name");if(!s)throw new TypeError("line callback must be provided");const f=await this.index.getMetadata(o);if(_a(a),n||(n=0),r||(r=f.maxRefLength),!(n<=r))throw new TypeError("invalid start and end coordinates. start must be less than or equal to end");if(n===r)return;const u=await this.index.blocksForRange(e,n,r,o);_a(a);for(let c=0;c<u.length;c+=1){const h=u[c].fetchedSize();if(h>this.chunkSizeLimit)throw new Error(`Too much data. Chunk size ${h.toLocaleString()} bytes exceeds chunkSizeLimit of ${this.chunkSizeLimit.toLocaleString()}.`)}let l=Date.now();for(let c=0;c<u.length;c+=1){let h;const d=u[c],{buffer:g,cpositions:b,dpositions:y}=await this.chunkCache.get(d.toString(),d);_a(a);let w=0,E=0;for(;w<g.length;){const _=g.indexOf(`
461
- `,w);if(_===-1)break;const D=g.slice(w,_),T=(Np==null?void 0:Np.decode(D))||D.toString();if(y){for(;w+d.minv.dataPosition>=y[E++];);E--}const{startCoordinate:N,overlaps:M}=this.checkLine(f,e,n,r,T);if(h!==void 0&&N!==void 0&&h>N)throw new Error(`Lines not sorted by start coordinate (${h} > ${N}), this file is not usable with Tabix.`);if(h=N,M)s(T.trim(),b[E]*256+(w-y[E])+d.minv.dataPosition+1);else if(N!==void 0&&N>=r)return;this.yieldTime&&l-Date.now()>this.yieldTime&&(l=Date.now(),_a(a),await KP(1)),w=_+1}}}async getMetadata(e={}){return this.index.getMetadata(e)}async getHeaderBuffer(e={}){const{firstDataLine:n,metaChar:r,maxBlockSize:i}=await this.getMetadata(e);_a(e.signal);const a=((n==null?void 0:n.blockPosition)||0)+i;let o=await this._readRegion(0,a,e);_a(e.signal);try{o=await wo(o)}catch(s){throw console.error(s),new Error(`error decompressing block ${s.code} at 0 (length ${a}) ${s}`)}if(r){let s=-1;const f=`
462
- `.charCodeAt(0),u=r.charCodeAt(0);for(let l=0;l<o.length&&!(l===s+1&&o[l]!==u);l+=1)o[l]===f&&(s=l);o=o.slice(0,s+1)}return o}async getHeader(e={}){return(await this.getHeaderBuffer(e)).toString("utf8")}async getReferenceSequenceNames(e={}){return(await this.getMetadata(e)).refIdToName}checkLine(e,n,r,i,a){const{columnNumbers:o,metaChar:s,coordinateType:f,format:u}=e;if(a.charAt(0)===s)return{overlaps:!1};let{ref:l,start:c,end:h}=o;l||(l=0),c||(c=0),h||(h=0),u==="VCF"&&(h=8);const d=Math.max(l,c,h);let g=1,b=0,y="",w=-1/0;for(let E=0;E<a.length+1;E+=1)if(a[E]===" "||E===a.length){if(g===l){if(this.renameRefSeq(a.slice(b,E))!==n)return{overlaps:!1}}else if(g===c){if(w=parseInt(a.slice(b,E),10),f==="1-based-closed"&&(w-=1),w>=i)return{startCoordinate:w,overlaps:!1};if((h===0||h===c)&&w+1<=r)return{startCoordinate:w,overlaps:!1}}else if(u==="VCF"&&g===4)y=a.slice(b,E);else if(g===h){let _;if(u==="VCF"?_=this._getVcfEnd(w,y,a.slice(b,E)):_=parseInt(a.slice(b,E),10),_<=r)return{overlaps:!1}}if(b=E+1,g+=1,g>d)break}return{startCoordinate:w,overlaps:!0}}_getVcfEnd(e,n,r){let i=e+n.length;const a=r.indexOf("SVTYPE=TRA")!==-1;if(r[0]!=="."&&!a){let o=";";for(let s=0;s<r.length;s+=1){if(o===";"&&r.slice(s,s+4)==="END="){let f=r.indexOf(";",s);f===-1&&(f=r.length),i=parseInt(r.slice(s+4,f),10);break}o=r[s]}}else if(a)return e+1;return i}async lineCount(e,n={}){return this.index.lineCount(e,n)}async _readRegion(e,n,r={}){const i=Buffer.alloc(n),{bytesRead:a,buffer:o}=await this.filehandle.read(i,0,n,e,r);return o.slice(0,a)}async readChunk(e,n={}){const r=await this._readRegion(e.minv.blockPosition,e.fetchedSize(),n);try{return Q2(r,e)}catch(i){throw new Error(`error decompressing c ${e.toString()} ${i}`)}}}class e9 extends vu(ra){constructor(n,r){const i={channel:"x",windowSize:3e6,debounceDomainChange:200,...n};super(r,i.channel);an(this,"lastRequestId",0);an(this,"tbiIndex");if(this.params=i,!this.params.url)throw new Error("No URL provided for TabixSource");const a=o=>new nr(Au(o,this.view.getBaseUrl()));this.tbiIndex=new JP({filehandle:a(this.params.url),tbiFilehandle:a(this.params.indexUrl??this.params.url+".tbi")}),this.params.debounceDomainChange>0&&(this.onDomainChanged=Ec(this.onDomainChanged.bind(this),this.params.debounceDomainChange,!1))}async onDomainChanged(n){const r=this.params.windowSize;if(n[1]-n[0]>r)return;const i=this.quantizeInterval(n,r);this.checkAndUpdateLastInterval(i)&&this.doRequest(i)}async doRequest(n){const r=await this.getFeatures(n);r.requestId<this.lastRequestId||this.publishData(r.features)}async getFeatures(n){let r=++this.lastRequestId;const i=new AbortController,a=this.genome.continuousToDiscreteChromosomeIntervals(n),o=await Promise.all(a.map(async s=>{const f=[];return await this.tbiIndex.getLines(s.chrom,s.startPos,s.endPos,{lineCallback:u=>{f.push(u)},signal:i.signal}),this._parseFeatures(f)}));return{requestId:r,abort:()=>i.abort(),features:o.flat()}}_parseFeatures(n){return[]}}class t9 extends e9{_parseFeatures(e){return GP.parseStringSync(e.join(`
463
- `),{parseSequences:!1})}}function n9(t,e){if(dx(t))return new Sk(t,e);if(_k(t))return new Ck(t,e);if(Dk(t))return new Ik(t,e);if(r9(t))return c9(t.lazy,e);throw new Error("Cannot figure out the data source type: "+JSON.stringify(t))}function r9(t){return"lazy"in t}function i9(t){return(t==null?void 0:t.type)=="axisTicks"}function a9(t){return(t==null?void 0:t.type)=="axisGenome"}function o9(t){return(t==null?void 0:t.type)=="indexedFasta"}function s9(t){return(t==null?void 0:t.type)=="bigwig"}function u9(t){return(t==null?void 0:t.type)=="bigbed"}function f9(t){return(t==null?void 0:t.type)=="bam"}function l9(t){return(t==null?void 0:t.type)=="gff3"}function c9(t,e){if(i9(t))return new Tk(t,e);if(a9(t))return new Nk(t,e);if(o9(t))return new RL(t,e);if(s9(t))return new Sz(t,e);if(u9(t))return new Fz(t,e);if(f9(t))return new iP(t,e);if(l9(t))return new t9(t,e);throw new Error("Cannot figure out the data source type: "+JSON.stringify(t))}function h9(t){const e=Object.keys(t).filter(r=>typeof r=="string"),n=new Function("source","return { "+e.map(r=>JSON.stringify(r)).map(r=>`${r}: source[${r}]`).join(`,
464
- `)+" };");return n.properties=e,n}class Fc extends tt{get behavior(){return er}constructor(){super();const e=n=>{const r=h9(n);this.handle=i=>this._propagate(r(i)),this.handle(n)};this.handle=e,this.beginBatch=n=>{Nw(n)&&(this.handle=e),super.beginBatch(n)}}}function d9(t){return"name"in t}class O3 extends ru{constructor(n,r,i){super();ye(this,af,void 0);this.provider=i,this.params=n}get identifier(){return this.params.name}updateDynamicData(n){yr(this,af,n),this.loadSynchronously()}loadSynchronously(){const n=ie(this,af)??this.provider(this.params.name)??[];let r=i=>i;if(Array.isArray(n))n.length>0&&(r=cx(n[0]));else throw new Error(`Named data "${this.params.name}" is not an array!`);this.reset(),this.beginBatch({type:"file"});for(const i of n)this._propagate(r(i));this.complete()}async load(){this.loadSynchronously()}}af=new WeakMap;class z3{constructor(){this._dataSourcesByHost=new Map,this._collectorsByHost=new Map,this._observers=new Map}get dataSources(){return[...new Set(this._dataSourcesByHost.values()).values()]}get collectors(){return[...this._collectorsByHost.values()]}addObserver(e,n){let r=this._observers.get(n);r||(r=[],this._observers.set(n,r)),r.push(e)}_relayObserverCallback(e,n){const r=this._observers.get(n);if(r)for(const i of r)i(e)}addDataSource(e,n){this._dataSourcesByHost.set(n,e)}findDataSourceByKey(e){return this._dataSourcesByHost.get(e)}findNamedDataSource(e){let n,r=[];for(const[i,a]of this._dataSourcesByHost.entries())if(a instanceof O3&&e==a.identifier){if(n&&n!==a)throw new Error(`Found multiple instances of named data: ${e}. Data flow optimization is broken (it's a bug).`);n=a,r.push(i)}if(n)return{dataSource:n,hosts:r}}addCollector(e,n){this._collectorsByHost.set(n,e),e.observers.push(r=>this._relayObserverCallback(r,n))}findCollectorByKey(e){return this._collectorsByHost.get(e)}initialize(){for(const e of this.dataSources)e.visit(n=>n.initialize())}}function g9(t,e){const n=new Map,r=[];for(const i of t)n.set(i,{ref:i,children:[]});for(const i of n.values()){const a=n.get(e(i.ref));a?a.children.push(i):r.push(i)}return r}function P3(t,e,n){var i,a;const r=(i=e.preOrder)==null?void 0:i.call(e,t);if(r)return r;for(const o of n(t)){const s=P3(o,e,n);if(s==="stop")return s}return(a=e.postOrder)==null?void 0:a.call(e,t)}function p9(t,e){return P3(t,e,n=>n.children)}function m9(t,e){const n=[];let r;const i=e??new z3,a=[];function o(c,h=()=>{}){if(!r)throw h()||new Error("Cannot append data flow node, no parent exist!");return r.addChild(c),r=c,c}function s(c,h){return o(c,()=>new Error(`Cannot append a transform because no (inherited) data are available! ${h?JSON.stringify(h):""}`))}function f(c,h){for(const d of c){let g;try{g=xk(d,h)}catch(b){throw console.warn(b),new Error(`Cannot initialize "${d.type}" transform: ${b}`)}g.behavior&oi&&s(new Fc),s(g)}}const u=c=>{if(n.push(r),c.spec.data){const h=d9(c.spec.data)?new O3(c.spec.data,c,c.context.getNamedDataFromProvider):n9(c.spec.data,c);r=h,i.addDataSource(h,c)}if(c.spec.transform&&f(c.spec.transform,c),c instanceof Tt){if(!r)throw new Error(`A unit view (${c.getPathString()}) has no (inherited) data source`);const h=b9(c);if(h){a.push(h.rewrite);for(const g of h.transforms)s(g)}c.mark.isPickingParticipant()&&(s(new Fc),s(new fx({type:"identifier"})));const d=new ix({type:"collect",groupby:c.getFacetFields(),sort:y9(c,h==null?void 0:h.rewrittenEncoding)});o(d),i.addCollector(d,c)}},l=g9(t.getDescendants(),c=>c.dataParent);for(const c of l)p9(c,{preOrder:h=>u(h.ref),postOrder:()=>{r=n.pop()}});return a.forEach(c=>c()),i}function b9(t){var a;const e=[],n={},r=[];for(const[o,s]of Object.entries(t.getEncoding())){const f=o;Gs(f)&&Xb(s)&&r.push({channel:f,chromPosDef:s})}const i=xf(r,o=>Wi(o.channel),o=>o.chromPosDef.chrom);for(const[o,s]of i.entries())for(const[f,u]of s.entries()){const l=[],c=[],h=[];for(const{channel:d,chromPosDef:g}of u){const b=E=>E.replace(/[^A-Za-z0-9_]/g,""),y=["_linearized_",b(g.chrom),"_",b(g.pos)].join(""),w={...((a=t.spec.encoding)==null?void 0:a[d])??t.getEncoding()[d]??{},field:y};delete w.chrom,delete w.pos,!w.type&&g.type&&(w.type=g.type),n[d]=w,l.push(g.pos),h.push(g.offset??0),c.push(y)}e.push(new Fc),e.push(new ax({type:"linearizeGenomicCoordinate",channel:o,chrom:f,pos:l,offset:h,as:c},t))}return e.length?{transforms:e,rewrittenEncoding:n,rewrite:()=>{t.spec.encoding={...t.spec.encoding,...n},Sw(t.mark,"encoding")}}:void 0}function y9(t,e){var r;const n={...t.getEncoding(),...e}.x;if(un(n)&&(r=t.getScaleResolution("x"))!=null&&r.isZoomable()){if(Us(n))return{field:n.field};if(!js(n))throw new Error("A zoomable x channel must be mapped to a field.")}}function U3(t,e=void 0){if(t.parent!==e)return!1;for(const n of t.children)if(!U3(n,t))return!1;return!0}function Fp(t,e=!1){if(t.behavior&u0&&(e=!0),t instanceof Fc)if(e)e=!1;else{const n=t.children[0];t.excise(),n&&Fp(n,e);return}t.behavior&er&&(e=!1);for(let n=0,r=t.children.length;n<r;n++)Fp(t.children[n],e||r>1)}function w9(t){const e=[...t._dataSourcesByHost.entries()],n=new Map;for(const r of e){const i=r[1];i.identifier&&!n.has(i.identifier)&&n.set(i.identifier,i)}t._dataSourcesByHost.clear();for(let[r,i]of e){const a=n.get(i.identifier);a&&(a.adoptChildrenOf(i),i=a),t.addDataSource(i,r)}}function x9(t){if(Fp(t),!U3(t))throw new Error("Encountered a bug! There's a problem in the data flow structure.")}function v9(t){for(const e of t.dataSources)x9(e);w9(t)}function A9(t){t.visit(n=>{n instanceof Tt&&n.resolve("scale")});const e=new Set;t.visit(n=>{for(const r of Object.values(n.resolutions.scale)){const i=r.name;if(i&&e.has(i))throw new Error(`The same scale name "${i}" occurs in multiple scale resolutions!`);e.add(i)}}),t.visit(n=>{n instanceof Tt&&n.resolve("axis")}),t.visit(n=>n.onScalesResolved())}function E9(t){for(const e of Ya){const n=t.getScaleResolution(e);n&&!n.name&&n.isZoomable()&&(n.name=`${e}_at_root`)}}async function S9(t,e,n){var o;if(!t.import.url)throw new Error("Cannot import, not an import spec: "+JSON.stringify(t));const r=kf({baseURL:e}),i=t.import.url,a=JSON.parse(await r.load(i).catch(s=>{throw new Error(`Could not load imported view spec: ${i}
465
- Reason: ${s.message}`)}));if(n.isViewSpec(a))return a.baseUrl=(o=i.match(/^[^?#]*\//))==null?void 0:o[0],a;throw new Error(`The imported spec "${i}" is not a view spec: ${JSON.stringify(t)}`)}async function j3(t){const e=[];t.visit(n=>{if(n instanceof rx)return e.push(n),Lw});for(const n of e){const r=n.context,i=await S9(n.spec,n.getBaseUrl(),r),a=r.createView(i,n.layoutParent,n.dataParent,n.name);n.layoutParent.replaceChild(n,a),await j3(a)}}function _9(t){const e=t.getSize().addPadding(t.getOverhang()),n=r=>r.grow>0?void 0:r.px;return{width:n(e.width),height:n(e.height)}}function kr(t){return()=>t}const dr=class dr{static create(e,n,r,i){return new dr(kr(e),kr(n),kr(r),kr(i))}_offset(e,n){const r=this["_"+e];if(n===0)return r;switch(typeof n){case"number":return()=>r()+n;case"function":return()=>r()+n();default:throw new Error("Not a number of function")}}_passThrough(e){return this._offset(e,0)}constructor(e,n,r,i){this._x=e,this._y=n,this._width=r,this._height=i}get x(){return this._x()}get y(){return this._y()}get width(){return this._width()}get height(){return this._height()}get x2(){return this._x()+this._width()}get y2(){return this._y()+this._height()}equals(e){return e?this===e||this.x===e.x&&this.y===e.y&&this.width===e.width&&this.height===e.height:!1}modify(e){if(!Object.keys(e).length)return this;const n=r=>{const i=e[r];return typeof i=="number"?kr(i):typeof i=="function"?i:this._passThrough(r)};return new dr(n("x"),n("y"),n("width"),n("height"))}translate(e,n){return e===0&&n===0?this:new dr(this._offset("x",e),this._offset("y",n),this._passThrough("width"),this._passThrough("height"))}translateBy(e){return this.translate(e.x,e.y)}expand(e,n=1){return e.left==0&&e.top==0&&e.right==0&&e.bottom==0?this:new dr(e.left?this._offset("x",-e.left*n):this._passThrough("x"),e.top?this._offset("y",-e.top*n):this._passThrough("y"),e.width?this._offset("width",e.width*n):this._passThrough("width"),e.height?this._offset("height",e.height*n):this._passThrough("height"))}shrink(e){return this.expand(e,-1)}intersect(e){return this===e?this:new dr(()=>Math.max(this.x,e.x),()=>Math.max(this.y,e.y),()=>Math.min(this.x2,e.x2)-Math.max(this.x,e.x),()=>Math.min(this.y2,e.y2)-Math.max(this.y,e.y))}isDefined(){return this.width>=0&&this.height>=0}flatten(){return new dr(kr(this.x),kr(this.y),kr(this.width),kr(this.height))}containsPoint(e,n){return e>=this.x&&e<this.x2&&n>=this.y&&n<this.y2}normalizePoint(e,n){return{x:(e-this.x)/this.width,y:(n-this.y)/this.height}}toString(){return`Rectangle: x: ${this.x}, y: ${this.y}, width: ${this.width}, height: ${this.height}`}toRoundedString(){return`Rectangle: x: ${Math.round(this.x)}, y: ${Math.round(this.y)}, width: ${Math.round(this.width)}, height: ${Math.round(this.height)}`}};an(dr,"ZERO",dr.create(0,0,0,0));let Xu=dr;class G3{constructor(e){this.globalOptions=e}pushView(e,n){}popView(e){}renderMark(e,n){}}class H3 extends G3{constructor(e,n){super(e),this.webGLHelper=n,this.buffer=[],this.coords=void 0,this.views=new Set}pushView(e,n){this.views.add(e),this.coords=n}renderMark(e,n){if(this.globalOptions.picking&&!e.isPickingParticipant())return;const r=e.render(n);r&&this.buffer.push({mark:e,callback:r,coords:this.coords,clipRect:n.clipRect})}render(){if(this.batch||this._buildBatch(),this.batch.length==0)return;const e=this.webGLHelper.gl,n=this.globalOptions.picking;e.bindFramebuffer(e.FRAMEBUFFER,n?this.webGLHelper._pickingBufferInfo.framebuffer:null),this.webGLHelper.clearAll();for(const r of this.views)r.onBeforeRender();for(const r of this.batch)r();n&&e.bindFramebuffer(e.FRAMEBUFFER,null)}_buildBatch(){this.batch=[];let e=!0,n=!0;const r=o=>()=>{e&&o()},i=o=>()=>{e&&n&&o()},a=xf(this.buffer.reverse(),o=>o.mark);for(const[o,s]of[...a.entries()].reverse()){if(!o.isReady())continue;this.batch.push(()=>{e=o.unitView.getEffectiveOpacity()>0}),this.batch.push(...o.prepareRender(this.globalOptions).map(u=>r(u)));let f;for(const u of s){const l=u.coords;l.equals(f)||this.batch.push(r(()=>{n=o.setViewport(l,u.clipRect)})),this.batch.push(i(u.callback)),f=u.coords}}}}class C9 extends G3{constructor(...e){super({}),this.contexts=e}pushView(e,n){for(const r of this.contexts)r.pushView(e,n)}popView(e){for(const n of this.contexts)n.popView(e)}renderMark(e,n){for(const r of this.contexts)r.renderMark(e,n)}}class D9{constructor(e,n){this.point=e,this.uiEvent=n,this.stopped=!1,this.target=void 0}stopPropagation(){this.stopped=!0}get type(){return this.uiEvent.type}}class I9{constructor(e,n){this.x=e,this.y=n}equals(e){return e?e===this||e.x===this.x&&e.y===this.y:!1}}const M9=t=>new Promise(e=>setTimeout(e,t));function T9(t){const e=t.requestAnimationFrame||window.requestAnimationFrame,n=t.signal,r=()=>new Promise((i,a)=>{if(n!=null&&n.aborted)return a("aborted");const o=performance.now(),s=o+(t.duration||1e3),f=typeof t.from=="number"?t.from:0,u=typeof t.to=="number"?t.to:1,l=t.easingFunction||(b=>b),c=b=>(b-o)/(s-o),h=b=>b*(u-f)+f,d=b=>Math.max(0,Math.min(1,b)),g=b=>{n!=null&&n.aborted?a("aborted"):(t.onUpdate(h(l(d(c(b))))),b<s?e(g):(t.onUpdate(h(l(1))),i()))};e(g)});return t.delay?n!=null&&n.aborted?Promise.reject("aborted"):M9(t.delay).then(r):r()}class N9{constructor(e){this._renderCallback=e,this._renderRequested=!1,this._warn=!1,this.transitions=[]}requestTransition(e){this.cancelTransition(e),this.transitions.push(e),this.requestRender()}cancelTransition(e){const n=this.transitions.indexOf(e);n>=0&&this.transitions.splice(n,1)}requestRender(){this._renderRequested?this._warn&&console.warn("Render already requested!"):(this._renderRequested=!0,window.requestAnimationFrame(e=>{this._renderRequested=!1;const n=this.transitions;this.transitions=[];let r;for(;r=n.shift();)r(e);this._renderCallback(e)}))}transition(e){return T9({requestAnimationFrame:n=>this.requestTransition(n),...e})}}class F9{constructor(e){this.genomes=new Map,this.baseUrl=e}async initialize(e){const n=new OF(e);return this.genomes.set(n.name,n),Promise.all([...this.genomes.values()].map(r=>r.load(this.baseUrl)))}getGenome(e){if(!this.genomes.size)throw new Error("No genomes have been configured!");if(e){const n=this.genomes.get(e);if(!n)throw new Error(`No genome with the name ${e} has been configured!`);return n}else{if(this.genomes.size>1)throw new Error("Cannot pick a default genome! More than one have been configured!");return this.genomes.values().next().value}}}const k9="data:image/png;base64,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",B9={thin:100,light:300,regular:400,normal:400,medium:500,bold:700,black:900};class L9{constructor(e){this._webGLHelper=e,this.fontRepository="https://raw.githubusercontent.com/etiennepinchon/aframe-fonts/master/fonts/",this._fonts=new ki([],JSON.stringify),this._metadataPromises=new Map,this._fontPromises=new Map,this._promises=[],this._defaultFontEntry={metrics:a0(ox),texture:e?this._createTextureNow(k9):void 0}}async waitUntilReady(){await Promise.all(this._promises)}getFont(e,n="normal",r="regular"){if(Ke(r)&&(r=B9[r.toLowerCase()],!r))throw new Error("Unknown font weight: "+r);const i={family:e,style:n,weight:r};let a=this._fonts.get(i);return a||(a={metrics:void 0,texture:void 0},this._fonts.set(i,a),this._promises.push(this._loadFontEntry(a,i))),a}async _loadFontEntry(e,n){try{const r=await this._loadMetadata(n.family),i=O9(r,n),a=this.fontRepository+Q3(n.family)+"/"+i.replace(/\.\w+/,""),o=this._createTexture(a+".png"),s=this._loadFont(a+".json");e.texture=await o,e.metrics=await s}catch(r){console.log("Cannot load font. Using default.",r),e.metrics=this._defaultFontEntry.metrics,e.texture=this._defaultFontEntry.texture}}_loadFont(e){let n=this._fontPromises.get(e);return n||(n=fetch(e).then(r=>{if(!r.ok)throw new Error("Could not load font: "+r.status);return r}).then(r=>r.json()).then(r=>a0(r)),this._fontPromises.set(e,n)),n}_loadMetadata(e){const n=Q3(e);let r=this._metadataPromises.get(n);return r||(r=fetch(this.fontRepository+n+"/METADATA.pb").then(i=>{if(!i.ok)throw new Error("Could not load font metadata: "+i.status);return i}).then(i=>i.text()).then(i=>R9(i)).catch(i=>{console.warn(i)}),this._metadataPromises.set(n,r)),r}getDefaultFont(){return this._defaultFontEntry}_createTexture(e){const n=this._webGLHelper.gl;return new Promise((r,i)=>{Ws(n,{src:e,min:n.LINEAR},(a,o,s)=>{a?i(a):r(o)})})}_createTextureNow(e){const n=this._webGLHelper.gl;let r;const i=new Promise((a,o)=>{r=Ws(n,{src:e,min:n.LINEAR},(s,f,u)=>{s?o(s):a(f)})});return this._promises.push(i),r}}function Q3(t){return t.toLowerCase().replaceAll(/[^\w]/g,"")}function R9(t){const e=t.split(`
466
- `),n=[];let r;for(const i of e)if(i.startsWith("fonts {")&&(r={name:void 0,style:void 0,weight:void 0,filename:void 0,post_script_name:void 0,full_name:void 0,copyright:void 0}),i.startsWith("}")&&(n.push(r),r=void 0),r){let a=i.match(/^\s*([A-Za-z_]+):[ ]?"(.*)"$/);if(a){const o=a[1];r[o]=a[2]}if(a=i.match(/^\s*([A-Za-z_]+):[ ]?(\d+)$/),a){const o=a[1];r[o]=+a[2]}}return n}function O9(t,e){let n,r=Number.POSITIVE_INFINITY;for(const i of t)if(e.family.localeCompare(i.name,void 0,{sensitivity:"accent"})==0&&e.style==i.style){const a=Math.abs(e.weight-i.weight);a<r&&(r=a,n=i)}return n==null?void 0:n.filename}function z9(t,e){const n=[];let r;for(const i of t.split(`
467
- `))if(i.startsWith(">"))r={identifier:i.match(/>(\S+)/)[1],sequence:""},n.push(r);else if(r)r.sequence+=i.trim();else throw new Error("Invalid fasta file!");return n}class P9{constructor(e,n){this.animator=e,this.disabled=!!n,this.damping=.015,this.acceleration=.3,this.accelerationThreshold=100,this.lowerLimit=.5,this.loop=!1,this.momentum=0,this.timestamp=0,this.callback=null,this._transitionCallback=this.animate.bind(this),this.clear()}clear(){this.momentum=0,this.timestamp=null,this.loop=null,this.callback=null}cancel(){this.loop&&(this.animator.cancelTransition(this._transitionCallback),this.clear())}setMomentum(e,n){if(this.disabled){n(e);return}e*this.momentum<0?this.momentum=0:Math.abs(e)>this.accelerationThreshold?this.momentum=YS([this.momentum,e],this.acceleration):this.momentum=e,this.callback=n,this.loop||this.animate()}animate(e){this.callback(this.momentum);const n=e-this.timestamp||0;this.timestamp=e;const r=Math.abs(this.momentum);this.momentum=Math.sign(this.momentum)*Math.max(0,r-((r*this.damping)**1.5+.04)*n),Math.abs(this.momentum)>this.lowerLimit?(this.loop=!0,this.animator.requestTransition(this._transitionCallback)):this.clear()}}function U9(t){const e={},n=["string","number","boolean"],r=["wheelDelta","wheelDeltaX","wheelDeltaY"];for(const i in t){const a=i;!r.includes(i)&&n.includes(typeof t[a])&&(e[a]=t[a])}return e}const V3=new Map;async function j9(t,e,n){const r=t.symbol;let i=V3.get(r)??await Q9(t.symbol);return i?(V3.set(r,i),qn`
468
- <div class="title">
469
- <strong>${i.name}</strong>
470
- ${i.description}
471
- </div>
472
- <p class="summary">${i.summary}</p>
473
- <p class="source">Source: NCBI RefSeq Gene</p>
474
- `):null}async function G9(t){console.log("Searching: "+t);const e={mode:"cors"},r=(await fetch(`https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=gene&term=${t}[GENE]&sort=relevance&retmode=json`,e).then(i=>i.json())).esearchresult.idlist[0];return r?(await fetch(`https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi?db=gene&id=${r}&retmode=json`,e).then(o=>o.json())).result[r]:null}const H9=Ec(G9,500);function Q9(t){return H9(t)}const V9=pt(".4~r"),q9=pt(".4~e");function q3(t){return t==null?qn` <span class="na">NA</span> `:Ke(t)?t.substring(0,30):Number.isInteger(t)?""+t:Lt(t)?Math.abs(t)>Math.pow(10,8)||Math.abs(t)<Math.pow(10,-8)?q9(t):V9(t):pf(t)?t?"True":"False":Xt(t)?qn`${t.map((e,n)=>[q3(e),n<t.length-1?", ":at])}`:"?"+typeof t+" "+t}async function Z9(t,e,n){const r=(f,u)=>{var l;for(const[c,h]of Object.entries(e.encoders))if((l=h==null?void 0:h.accessor)!=null&&l.fields.includes(f))switch(c){case"color":case"fill":case"stroke":return qn`
475
- <span
476
- class="color-legend"
477
- style=${`background-color: ${h(u)}`}
478
- ></span>
479
- `}return""},i=Object.entries(t).filter(([f,u])=>!f.startsWith("_"));if(i.length===0)return;const a=qn`
480
- <table class="attributes">
481
- ${i.map(([f,u])=>qn`
482
- <tr>
483
- <th>${f}</th>
484
- <td>${q3(u)} ${r(f,t)}</td>
485
- </tr>
486
- `)}
487
- </table>
488
- `,o=e.unitView.getTitleText(),s=o?qn`
489
- <div class="title">
490
- <strong>${o}</strong>
491
- </div>
492
- `:"";return qn`${s}${a}`}class $u extends oo{constructor(e,n,r,i,a){super(e,n,r,i,a),this.spec=e,this.children=(e.layer||[]).map((o,s)=>{if(rS(o)||nS(o))return n.createView(o,this,this,"layer"+s);throw new Error("LayerView accepts only unit or layer specs as children!")}),this.needsAxes={x:!0,y:!0}}*[Symbol.iterator](){for(const e of this.children)yield e}render(e,n,r={}){if(this.isConfiguredVisible()){e.pushView(this,n);for(const i of this.children)i.render(e,n,r);e.popView(this)}}propagateInteractionEvent(e){this.handleInteractionEvent(void 0,e,!0);for(let n=this.children.length-1;n>=0;n--)if(this.children[n].propagateInteractionEvent(e),e.stopped)return;this.handleInteractionEvent(void 0,e,!1)}}class Z3{constructor(e,n){this.n=e,this.maxCols=n??1/0}get nRows(){return this.maxCols==1/0?1:Math.ceil(this.n/this.maxCols)}get nCols(){return Math.min(this.n,this.maxCols)}get rowIndices(){const e=[],n=this.nCols,r=this.nRows;for(let i=0;i<r;i++){const a=[];e.push(a);for(let o=0;o<n;o++){const s=i*n+o;s<this.n&&a.push(s)}}return e}get colIndices(){const e=[],n=this.nCols,r=this.nRows;for(let i=0;i<n;i++){const a=[];e.push(a);for(let o=0;o<r;o++){const s=o*n+i;s<this.n&&a.push(s)}}return e}getCellIndex(e,n){let r=0;if(this.maxCols==1/0)r=n==0?e:void 0;else{if(e>=this.maxCols)return;r=n*this.nCols+e}return r<this.n?r:void 0}getCellCoords(e){if(!(e<0||e>=this.n))return[e%this.nCols,Math.floor(e/this.nCols)]}}const Y9="chromosome_ticks_and_labels",W9={x:"width",y:"height"};function kp(t){return t=="x"?"y":"x"}const kc={x:["bottom","top"],y:["left","right"]},Bp=Object.fromEntries(Object.entries(kc).map(([t,e])=>e.map(n=>[n,t])).flat(1));function Ai(t){return Bp[t]}class Y3 extends $u{constructor(e,n,r,i,a){const o=n=="locus",s={...o?$9:W3,...X9(n,e),...e};super(o?K9(s,n):X3(s,n),r,i,a,`axis_${e.orient}`),this.axisProps=s,this.blockEncodingInheritance=!0,this.contributesToScaleDomain=!1}getSize(){const e={px:this.getPerpendicularSize()},n={grow:1};return Bp[this.axisProps.orient]=="x"?new na(n,e):new na(e,n)}getPerpendicularSize(){return Lp(this.axisProps)}isPickingSupported(){return!1}}function Lp(t){const e=Ai(t.orient);let n=t.ticks&&t.tickSize||0;return t.labels&&(n+=t.labelPadding,e=="x"?n+=t.labelFontSize:n+=30),t.title&&(n+=t.titlePadding+t.titleFontSize),n=Math.min(t.maxExtent||1/0,Math.max(t.minExtent||0,n)),n}const W3={values:null,minExtent:20,maxExtent:1/0,offset:0,domain:!0,domainWidth:1,domainColor:"gray",domainDash:null,domainDashOffset:0,domainCap:"square",ticks:!0,tickSize:5,tickWidth:1,tickColor:"gray",tickDash:null,tickDashOffset:0,tickCap:"square",tickCount:null,tickMinStep:null,labels:!0,labelAlign:"center",labelBaseline:"middle",labelPadding:4,labelFontSize:10,labelLimit:180,labelColor:"black",format:null,titleColor:"black",titleFont:"sans-serif",titleFontSize:10,titlePadding:3};function X9(t,e){const n=e.orient,r=t=="nominal"||t=="ordinal";let i="center",a="middle",o=e.labelAngle??((n=="top"||n=="bottom")&&r?-90:0);switch(n){case"left":i="right";break;case"right":i="left";break;case"top":case"bottom":Math.abs(o)>30?(i=o>0==(n=="bottom")?"left":"right",a="middle"):a=n=="top"?"alphabetic":"top";break}return{labelAlign:i,labelAngle:o,labelBaseline:a}}function X3(t,e){const n={...t,extent:Lp(t)},r=Ai(n.orient),i=kp(r),a=n.orient=="bottom"||n.orient=="right"?1:-1,o=n.orient=="bottom"||n.orient=="left"?1:0,s=()=>({name:"domain",data:{values:[0]},mark:{type:"rule",clip:!1,strokeDash:n.domainDash,strokeCap:n.domainCap,color:n.domainColor,[i]:o,size:n.domainWidth}}),f=()=>({name:"labels",mark:{type:"text",clip:!1,align:n.labelAlign,angle:n.labelAngle,baseline:n.labelBaseline,[i+"Offset"]:(n.tickSize+n.labelPadding)*a,[i]:o,size:n.labelFontSize,color:n.labelColor,minBufferSize:1500},encoding:{[r]:{field:"value",type:e},text:{field:"label"}}}),u=()=>({name:"ticks",mark:{type:"rule",clip:!1,strokeDash:n.tickDash,strokeCap:n.tickCap,color:n.tickColor,size:n.tickWidth,minBufferSize:300},encoding:{[i]:{value:o},[i+"2"]:{value:o-n.tickSize/n.extent*(o?1:-1)}}}),l=()=>({name:"title",data:{values:[0]},mark:{type:"text",clip:!1,align:"center",baseline:n.orient=="bottom"?"bottom":"top",angle:[0,90,0,-90][["top","right","bottom","left"].indexOf(n.orient)],text:n.title,color:n.titleColor,[r]:.5,[i]:1-o}}),c=()=>{const d={name:"ticks_and_labels",encoding:{[r]:{field:"value",type:e}},layer:[]};return n.ticks&&d.layer.push(u()),n.labels&&d.layer.push(f()),d},h={resolve:{scale:{[r]:"forced"}},[W9[kp(r)]]:n.extent,data:{lazy:{type:"axisTicks",channel:r,axis:t}},layer:[]};return n.domain&&h.layer.push(s()),(n.ticks||n.labels)&&h.layer.push(c()),n.title&&h.layer.push(l()),h}const $9={...W3,chromTicks:!0,chromTickSize:18,chromTickWidth:1,chromTickColor:"#989898",chromTickDash:[4,2],chromTickDashOffset:1,chromLabels:!0,chromLabelFontSize:13,chromLabelFontWeight:"normal",chromLabelFontStyle:"normal",chromLabelColor:"black",chromLabelAlign:"left",chromLabelPadding:7};function K9(t,e){const n={...t,extent:Lp(t)},r=Ai(n.orient),i=kp(r),a=n.orient=="bottom"||n.orient=="left"?1:0,o=()=>({name:"chromosome_ticks",mark:{type:"rule",strokeDash:t.chromTickDash,strokeDashOffset:t.chromTickDashOffset,[i]:a,[i+"2"]:a-n.chromTickSize/n.extent*(a?1:-1),color:t.chromTickColor,size:n.chromTickWidth}}),s=()=>{let l;switch(n.orient){case"top":l={y:0,angle:0,paddingX:4,dy:-n.chromLabelPadding,viewportEdgeFadeWidthLeft:20,viewportEdgeFadeWidthRight:20,viewportEdgeFadeDistanceRight:-10,viewportEdgeFadeDistanceLeft:-20};break;case"bottom":l={y:1,angle:0,paddingX:4,dy:n.chromLabelPadding+n.chromLabelFontSize*.73,viewportEdgeFadeWidthLeft:20,viewportEdgeFadeWidthRight:20,viewportEdgeFadeDistanceRight:-10,viewportEdgeFadeDistanceLeft:-20};break;case"left":l={x:1,angle:-90,paddingY:4,dy:-n.chromLabelPadding,viewportEdgeFadeWidthBottom:20,viewportEdgeFadeWidthTop:20,viewportEdgeFadeDistanceBottom:-20,viewportEdgeFadeDistanceTop:-10};break;case"right":l={x:0,angle:90,align:"right",paddingY:4,dy:-n.chromLabelPadding};break;default:l={}}return{name:"chromosome_labels",mark:{type:"text",size:n.chromLabelFontSize,font:n.chromLabelFont,fontWeight:n.chromLabelFontWeight,fontStyle:n.chromLabelFontStyle,color:n.chromLabelColor,align:t.chromLabelAlign,baseline:"alphabetic",clip:!1,...l},encoding:{[r+"2"]:{field:"continuousEnd",type:e},text:{field:"name"}}}};let f;switch(n.orient){case"bottom":case"top":f={};break;case"left":f={labelAngle:-90,labelAlign:"center",labelPadding:6};break;case"right":f={labelAngle:90,labelAlign:"center",labelPadding:6};break;default:f={}}const u=X3({...t,...f},e);if(t.chromTicks||t.chromLabels){const l={name:Y9,data:{lazy:{type:"axisGenome",channel:Ai(n.orient)}},encoding:{[r]:{field:"continuousStart",type:e,band:0}},layer:[]};if(t.chromTicks&&l.layer.push(o()),t.chromLabels){l.layer.push(s());let c;u.layer.filter(h=>h.name=="ticks_and_labels").forEach(h=>h.layer.filter(d=>d.name=="labels").forEach(d=>{c=d.mark})),c&&(n.orient=="top"||n.orient=="bottom"?(c.viewportEdgeFadeWidthLeft=30,c.viewportEdgeFadeDistanceLeft=40):(c.viewportEdgeFadeWidthBottom=30,c.viewportEdgeFadeDistanceBottom=40))}u.layer.push(l)}return u}class J9 extends $u{constructor(e,n,r,i,a){const s={...n=="locus"?e7:$3,...e};super(i7(s,n),r,i,a,`axisGrid_${e.orient}`),this.axisProps=s,this.blockEncodingInheritance=!0,this.contributesToScaleDomain=!1}getOrient(){return this.axisProps.orient}isPickingSupported(){return!1}}const $3={values:null,grid:!1,gridCap:"butt",gridColor:"lightgray",gridDash:null,gridOpacity:1,gridWidth:1,tickCount:null,tickMinStep:null},e7={...$3,chromGrid:!1,chromGridCap:"butt",chromGridColor:"gray",chromGridDash:[1,5],chromGridOpacity:1,chromGridWidth:1};function t7(t,e){const n=t,r=Ai(n.orient);return{name:"grid_lines",data:{lazy:{type:"axisTicks",channel:r,axis:t}},mark:{type:"rule",strokeDash:n.gridDash,strokeCap:n.gridCap,color:n.gridColor,size:n.gridWidth,opacity:n.gridOpacity,minBufferSize:300},encoding:{[r]:{field:"value",type:e}}}}function n7(t,e){const n=t,r=Ai(n.orient);return{name:"chromosome_lines",data:{lazy:{type:"axisGenome",channel:r}},mark:{type:"rule",strokeDash:n.chromGridDash,strokeCap:n.chromGridCap,color:n.chromGridColor,size:n.chromGridWidth,opacity:n.chromGridOpacity},encoding:{[r]:{field:"continuousStart",type:e,band:0}}}}function r7(t,e){const n=t,r=Ai(n.orient);return{name:"chromosome_fill",data:{lazy:{type:"axisGenome",channel:r}},mark:{type:"rect"},encoding:{[r]:{field:"continuousStart",type:e,band:0},[r+"2"]:{field:"continuousEnd",band:0},fill:{field:"odd",type:"nominal",scale:{domain:[!1,!0],range:[n.chromGridFillEven??"white",n.chromGridFillOdd??"white"]}},opacity:{field:"odd",type:"nominal",scale:{type:"ordinal",domain:[!1,!0],range:[n.chromGridFillEven?1:0,n.chromGridFillOdd?1:0]}}}}}function i7(t,e){const n={...t},r=[];return n.chromGrid&&(n.chromGridFillOdd||n.chromGridFillEven)&&r.push(r7(n,e)),n.chromGrid&&n.chromGridOpacity>0&&r.push(n7(n,e)),n.grid&&n.gridOpacity>0&&r.push(t7(n,e)),{name:"grid_layers",configurableVisibility:!1,resolve:{scale:{[Ai(t.orient)]:"forced",fill:"independent",opacity:"independent"}},layer:r}}const K3={anchor:"middle",frame:"group",offset:10,orient:"top",align:void 0,angle:0,baseline:"alphabetic",dx:0,dy:0,color:void 0,font:void 0,fontSize:12,fontStyle:"normal",fontWeight:"normal"},a7={orient:"left",anchor:"middle",align:"right",baseline:"middle",angle:0,fontSize:12},o7={orient:"top",anchor:"start",align:"left",baseline:"top",offset:-10,dx:10,fontSize:12},s7={start:0,middle:.5,end:1},u7={start:"left",middle:"center",end:"right"};function f7(t){if(!t)return;const e=Ke(t)?{text:t}:t;if(!e.text||e.orient=="none")return;const n={"track-title":a7,overlay:o7}[e.style]??{},r={...K3,...n,...e};let i={},a={x:0,y:0};const o=s7[r.anchor??"middle"];switch(r.orient){case"top":a={x:o,y:1},i={baseline:"alphabetic",angle:0};break;case"right":a={x:1,y:1-o},i={baseline:"alphabetic",angle:90};break;case"bottom":a={x:o,y:0},i={baseline:"top",angle:0};break;case"left":a={x:0,y:o},i={baseline:"alphabetic",angle:-90};break}const s={...K3,...i,...n,...e},f={xOffset:0,yOffset:0};switch(r.orient){case"top":f.yOffset=-s.offset;break;case"right":f.xOffset=s.offset;break;case"bottom":f.yOffset=s.offset;break;case"left":f.xOffset=-s.offset;break}return{configurableVisibility:!1,data:{values:[{}]},mark:{type:"text",tooltip:null,clip:!1,...a,...f,text:s.text,align:s.align??u7[s.anchor],angle:s.angle,baseline:s.baseline,dx:s.dx,dy:s.dy,color:s.color,font:s.font,size:s.fontSize,fontStyle:s.fontStyle,fontWeight:s.fontWeight}}}function l7(t,e,n,r){if(t.type=="wheel"){t.uiEvent.preventDefault();const i=t.uiEvent,a=i.deltaMode?120:1;let{x:o,y:s}=t.point;if(r){const f=r.mark.encoders;f.x&&!f.x2&&!f.x.constantValue&&(o=+f.x(r.datum)*e.width+e.x),f.y&&!f.y2&&!f.y.constantValue&&(s=(1-+f.y(r.datum))*e.height+e.y)}Math.abs(i.deltaX)<Math.abs(i.deltaY)?n({x:o,y:s,xDelta:0,yDelta:0,zDelta:i.deltaY*a/300}):n({x:o,y:s,xDelta:-i.deltaX*a,yDelta:0,zDelta:0})}else if(t.type=="mousedown"&&t.uiEvent.button===0){const i=t.uiEvent;i.preventDefault();let a=i;const o=f=>{n({x:a.clientX,y:a.clientY,xDelta:f.clientX-a.clientX,yDelta:f.clientY-a.clientY,zDelta:0}),a=f},s=f=>{document.removeEventListener("mousemove",o),document.removeEventListener("mouseup",s)};document.addEventListener("mouseup",s,!1),document.addEventListener("mousemove",o,!1)}}class J3 extends oo{constructor(n,r,i,a,o,s){super(n,r,i,a,o);ye(this,Rr);ye(this,zc);ye(this,Pc);ye(this,Ma);ye(this,of);ye(this,sf);ye(this,uf);ye(this,Uc);ye(this,Ko);ye(this,jc);ye(this,Wo,1/0);ye(this,Xo,10);ye(this,rn,[]);ye(this,Ia,{});ye(this,$o,0);this.spec=n,yr(this,Xo,n.spacing??10),yr(this,Wo,s),yr(this,rn,[]),this.wrappingFacet=!1,this._createChildren()}_createChildren(){}appendChild(n){n.layoutParent??(n.layoutParent=this),ie(this,rn).push(new tS(n,this,ie(this,$o))),vS(this,$o)._++}setChildren(n){yr(this,rn,[]);for(const r of n)this.appendChild(r)}replaceChild(n,r){const i=ie(this,rn).findIndex(a=>a.view==n);if(i>=0)ie(this,rn)[i]=new tS(r,this,ie(this,$o));else throw new Error("Not my child view!")}get children(){return ie(this,rn).map(n=>n.view)}get childCount(){return ie(this,rn).length}onScalesResolved(){super.onScalesResolved(),fe(this,Pc,DS).call(this)}*[Symbol.iterator](){for(const n of ie(this,rn))yield*n.getChildren();for(const n of Object.values(ie(this,Ia)))yield n}getOverhang(){return fe(this,Uc,IS).call(this).union(fe(this,Ko,qc).call(this))}getSize(){return this._cache("size",()=>new na(fe(this,sf,Wp).call(this,"column"),fe(this,sf,Wp).call(this,"row")).addPadding(fe(this,Ko,qc).call(this)))}render(n,r,i={}){if(!this.isConfiguredVisible())return;this.layoutParent||(r=r.shrink(this.getPadding())),r=r.shrink(fe(this,Ko,qc).call(this)),n.pushView(this,r);const a={devicePixelRatio:this.context.devicePixelRatio},o=kw(fe(this,of,Yp).call(this,"column"),r.width,a),s=kw(fe(this,of,Yp).call(this,"row"),r.height,a),f=new Z3(ie(this,Rr,Na).length,ie(this,Wo)??1/0);for(const[u,l]of ie(this,Rr,Na).entries()){const{view:c,axes:h,gridLines:d,background:g,backgroundStroke:b,title:y}=l,[w,E]=f.getCellCoords(u),_=o[fe(this,uf,Xp).call(this,"column",w)],D=s[fe(this,uf,Xp).call(this,"row",E)],T=c.getSize(),N=c.getOverhang(),M=_.location-N.left,R=D.location-N.top,C=(T.width.grow?_.size:T.width.px)+N.width,B=(T.height.grow?D.size:T.height.px)+N.height,L=new Xu(()=>r.x+M,()=>r.y+R,()=>C,()=>B);l.coords=L;const ee=i.clipRect?L.intersect(i.clipRect):L;g==null||g.render(n,ee,{...i,clipRect:void 0});for(const J of Object.values(d))J.render(n,L,i);const ne=g7(c);ne&&c.render(n,L,i),b==null||b.render(n,ee,{...i,clipRect:void 0});for(const[J,be]of Object.entries(h))be.render(n,eS(L,J,be),i);for(const J of Object.values(ie(this,Ia))){const Se=J.axisProps.orient;(Se=="left"&&w==0||Se=="right"&&w==f.nCols-1||Se=="top"&&E==0||Se=="bottom"&&E==f.nRows-1)&&J.render(n,eS(L.shrink(l.view.getOverhang()),Se,J),i)}ne||c.render(n,L,i),y==null||y.render(n,L,i)}n.popView(this)}propagateInteractionEvent(n){if(this.handleInteractionEvent(void 0,n,!0),n.stopped)return;const r=ie(this,Rr,Na).find(a=>a.coords.containsPoint(n.point.x,n.point.y)),i=r==null?void 0:r.view;i&&(i.propagateInteractionEvent(n),(i instanceof Tt||i instanceof $u)&&l7(n,r.coords,a=>fe(this,jc,MS).call(this,r.coords,r.view,a),this.context.getCurrentHover())),!n.stopped&&this.handleInteractionEvent(void 0,n,!1)}getDefaultResolution(n,r){return"independent"}}Wo=new WeakMap,Xo=new WeakMap,rn=new WeakMap,Ia=new WeakMap,$o=new WeakMap,Rr=new WeakSet,Na=function(){return ie(this,rn).filter(n=>n.view.isConfiguredVisible())},zc=new WeakSet,CS=function(){return new Z3(ie(this,Rr,Na).length,ie(this,Wo)??1/0)},Pc=new WeakSet,DS=function(){for(const n of Ya){const r=this.resolutions.axis[n];if(r){const i=r.getAxisProps();if(i){const a={title:r.getTitle(),orient:kc[n][0],...i},o=new Y3(a,r.scaleResolution.type,this.context,this,this);ie(this,Ia)[n]=o,o.visit(s=>{s instanceof Tt&&s.resolve("scale")})}}}for(const n of ie(this,rn))n.createAxes()},Ma=new WeakSet,lf=function(n){const r=n=="column"?"width":"height",i=(a,o)=>a.map(s=>{const u=ie(this,Rr,Na)[s].getOverhangAndPadding();return n=="column"?o?u.right:u.left:o?u.bottom:u.top}).reduce((s,f)=>Math.max(s,f),0);return this._cache(`size/directionSizes/${n}`,()=>ie(this,zc,CS)[n=="column"?"colIndices":"rowIndices"].map(a=>({axisBefore:i(a,0),axisAfter:i(a,1),view:iF(a.map(o=>ie(this,Rr,Na)[o].view.getSize()[r]))})))},of=new WeakSet,Yp=function(n){const r=fe(this,Ma,lf).call(this,n),i=[];i.push(eu);for(const[a,o]of r.entries())a>0&&i.push({px:ie(this,Xo),grow:0}),(a==0||this.wrappingFacet)&&i.push(eu),i.push({px:o.axisBefore,grow:0}),i.push(o.view),i.push({px:o.axisAfter,grow:0}),(a==r.length-1||this.wrappingFacet)&&i.push(eu);return i},sf=new WeakSet,Wp=function(n){let r=0,i=0;const a=(n=="row"&&this.spec.height)??(n=="column"&&this.spec.width);if(a||a===0)return Bw(a);const o=fe(this,Ma,lf).call(this,n);for(const[s,f]of o.entries())s>0&&(i+=ie(this,Xo)),(s==0||this.wrappingFacet)&&(i+=0),i+=f.axisBefore,i+=f.view.px??0,r+=f.view.grow??0,i+=f.axisAfter,(s==o.length-1||this.wrappingFacet)&&(i+=0);return{px:i,grow:r}},uf=new WeakSet,Xp=function(n,r){return n=="row"&&this.wrappingFacet?1+6*r+2:2+4*r+1},Uc=new WeakSet,IS=function(){const n=fe(this,Ma,lf).call(this,"column"),r=fe(this,Ma,lf).call(this,"row");return!n.length||!r.length?_t.zero():new _t(r.at(0).axisBefore,n.at(-1).axisAfter,r.at(-1).axisAfter,n.at(0).axisBefore)},Ko=new WeakSet,qc=function(){const n=r=>{const i=Bp[r],a=ie(this,Ia)[i];return(a==null?void 0:a.axisProps.orient)!==r?0:Math.max(a.getPerpendicularSize()+a.axisProps.offset,0)};return new _t(n("top"),n("right"),n("bottom"),n("left"))},jc=new WeakSet,MS=function(n,r,i){for(const[a,o]of Object.entries(d7(r))){if(o.size<=0)continue;const s=n.normalizePoint(i.x,i.y),f=n.normalizePoint(i.x+i.xDelta,i.y+i.yDelta),u={x:f.x-s.x,y:f.y-s.y};for(const l of o)l.zoom(2**i.zDelta,a=="y"?1-s[a]:s[a],a=="x"?u.x:-u.y)}this.context.animator.requestRender()};function c7(t){if(!(!t||!t.fill||t.fillOpacity===0))return{configurableVisibility:!1,data:{values:[{}]},mark:{color:t.fill,opacity:t.fillOpacity??1,type:"rect",clip:!1,tooltip:null,minHeight:1,minOpacity:0}}}function h7(t){if(!(!t||!t.stroke||t.strokeWidth===0||t.strokeOpacity===0))return{configurableVisibility:!1,resolve:{scale:{x:"excluded",y:"excluded"},axis:{x:"excluded",y:"excluded"}},data:{values:[{x:0,y:0,x2:1,y2:0},{x:1,y:0,x2:1,y2:1},{x:1,y:1,x2:0,y2:1},{x:0,y:1,x2:0,y2:0}]},mark:{size:t.strokeWidth??1,color:t.stroke??"lightgray",strokeCap:"square",strokeOpacity:t.strokeOpacity??1,type:"rule",clip:!1,tooltip:null},encoding:{x:{field:"x",type:"quantitative",scale:null},y:{field:"y",type:"quantitative",scale:null},x2:{field:"x2"},y2:{field:"y2"}}}}function d7(t){const e={x:new Set,y:new Set};return t.visit(n=>{for(const[r,i]of Object.entries(e)){const a=n.getScaleResolution(r);a&&a.isZoomable()&&i.add(a)}}),e}function g7(t){let e=!0;return t.visit(n=>{n instanceof Tt&&e&&(e=n.mark.properties.clip===!0)}),e}function eS(t,e,n){const r=n.axisProps,i=n.getPerpendicularSize();if(e=="bottom")return t.translate(0,t.height+r.offset).modify({height:i});if(e=="top")return t.translate(0,-i-r.offset).modify({height:i});if(e=="left")return t.translate(-i-r.offset,0).modify({width:i});if(e=="right")return t.translate(t.width+r.offset,0).modify({width:i})}class tS{constructor(e,n,r){if(this.layoutParent=n,this.view=e,this.serial=r,this.background=void 0,this.backgroundStroke=void 0,this.axes={},this.gridLines={},this.title=void 0,this.coords=Xu.ZERO,e.needsAxes.x||e.needsAxes.y){const i=e.spec,a="view"in i?i==null?void 0:i.view:void 0,o=c7(a);o&&(this.background=new Tt(o,n.context,n,e,"background"+r),this.background.blockEncodingInheritance=!0);const s=h7(a);s&&(this.backgroundStroke=new Tt(s,n.context,n,e,"backgroundStroke"+r),this.backgroundStroke.blockEncodingInheritance=!0);const f=f7(e.spec.title);if(f){const u=new Tt(f,n.context,n,e,"title"+r);u.blockEncodingInheritance=!0,this.title=u}}}*getChildren(){this.background&&(yield this.background),this.backgroundStroke&&(yield this.backgroundStroke),this.title&&(yield this.title),yield*Object.values(this.axes),yield*Object.values(this.gridLines),yield this.view}createAxes(){const{view:e,axes:n,gridLines:r}=this,i=(s,f)=>{const u=s.getAxisProps();if(u===null)return;const l=u?{...u}:{};if(!l.orient){for(const c of kc[f])if(!n[c]){l.orient=c;break}if(!l.orient)throw new Error("No slots available for an axis! Perhaps a LayerView has more than two children?")}if(l.title??(l.title=s.getTitle()),!kc[f].includes(l.orient))throw new Error(`Invalid axis orientation "${l.orient}" on channel "${f}"!`);return l},a=(s,f,u)=>{const l=i(s,f);if(l){if(n[l.orient])throw new Error(`An axis with the orient "${l.orient}" already exists!`);n[l.orient]=new Y3(l,s.scaleResolution.type,this.layoutParent.context,this.layoutParent,u)}},o=(s,f,u)=>{const l=i(s,f);l&&(l.grid||l.chromGrid)&&(r[l.orient]=new J9(l,s.scaleResolution.type,this.layoutParent.context,this.layoutParent,u))};for(const s of["x","y"])if(e.needsAxes[s]){const f=e.resolutions.axis[s];if(!f)continue;a(f,s,e)}for(const s of["x","y"])if(e.needsAxes[s]){const f=e.getAxisResolution(s);if(!f)continue;o(f,s,e)}if(e instanceof $u){for(const s of e.children)for(const[f,u]of Object.entries(s.resolutions.axis)){const l=u.getAxisProps();l&&l.orient&&a(u,f,s)}for(const s of e.children)for(const[f,u]of Object.entries(s.resolutions.axis)){const l=u.getAxisProps();l&&!l.orient&&a(u,f,s)}}[...Object.values(n),...Object.values(r)].forEach(s=>s.visit(f=>{f instanceof Tt&&f.resolve("scale")}))}getOverhang(){const e=n=>{const r=this.axes[n];return r?Math.max(r.getPerpendicularSize()+r.axisProps.offset,0):0};return new _t(e("top"),e("right"),e("bottom"),e("left")).add(this.view.getOverhang())}getOverhangAndPadding(){return this.getOverhang().add(this.view.getPadding())}}class Rp extends J3{constructor(e,n,r,i,a){super(e,n,r,i,a,Op(e)?e.columns:Bc(e)?1:1/0),this.spec=e}_createChildren(){const e=this.spec,n=Op(e)?e.concat:Bc(e)?e.vconcat:e.hconcat;this.setChildren(n.map((r,i)=>this.context.createView(r,this,this,"grid"+i)))}getDefaultResolution(e,n){if(n=="axis")return"independent";if(Bc(this.spec)&&e==="x"||iS(this.spec)&&e==="y"){const r=new Set(this.children.map(i=>i.getEncoding()[e]).filter(i=>i).map(i=>"type"in i&&i.type).filter(i=>i));return r.size===1&&(r.has("index")||r.has("locus"))?"shared":"independent"}else return"independent"}}class p7{constructor(){this.types=[];const e=n=>(r,i,a,o,s)=>new n(r,i,a,o,r.name??s);this.addViewType(m7,e(rx)),this.addViewType(rS,e($u)),this.addViewType(nS,e(Tt)),this.addViewType(Bc,e(Rp)),this.addViewType(iS,e(Rp)),this.addViewType(Op,e(Rp))}addViewType(e,n){this.types.push({specGuard:e,factory:n})}createView(e,n,r,i,a){const o=this.types.find(s=>s.specGuard(e));if(o)return o.factory(e,n,r,i,a??"unnamed");throw new Error("Invalid spec, cannot figure out the view type from the properties: "+JSON.stringify([...Object.keys(e)]))}isViewSpec(e){const n=this.types.filter(r=>r.specGuard(e));if(n.length>1)throw new Error("Ambiguous spec. Cannot create a view!");return n.length==1}}function nS(t){return"mark"in t&&(Ke(t.mark)||Dn(t.mark))}function rS(t){return"layer"in t&&Dn(t.layer)}function m7(t){return"import"in t}function Bc(t){return"vconcat"in t&&Xt(t.vconcat)}function iS(t){return"hconcat"in t&&Xt(t.hconcat)}function Op(t){return"concat"in t&&Xt(t.concat)}class b7 extends J3{constructor(e,n){super({vconcat:[]},e,void 0,void 0,"implicitRoot",1),n.layoutParent=this,n.dataParent=this,this.appendChild(n)}}a1("fasta",z9);class aS{constructor(e,n,r={}){this.container=e;const i=document.createElement("style");i.innerHTML=D4,e.appendChild(i),this.spec=n,this.accessorFactory=new dM,this.viewFactory=new p7,this.namedDataProviders=[],this.animator=new N9(()=>this.renderAll()),this.genomeStore=void 0,this.viewVisibilityPredicate=a=>a.isVisibleInSpec(),this._renderingContext=void 0,this._pickingContext=void 0,this._dirtyPickingBuffer=!1,this._currentHover=void 0,this._wheelInertia=new P9(this.animator),this._keyboardListeners=new Map,this._eventListeners=new Map,this._extraBroadcastListeners=new Map,this.tooltipHandlers={default:Z9,refseqgene:j9,...r.tooltipHandlers??{}},this.viewRoot=void 0}registerNamedDataProvider(e){this.namedDataProviders.unshift(e)}getNamedDataFromProvider(e){for(const n of this.namedDataProviders){const r=n(e);if(r)return r}}updateNamedData(e,n){const r=this.viewRoot.context.dataFlow.findNamedDataSource(e);if(!r)throw new Error("No such named data source: "+e);r.dataSource.updateDynamicData(n),g0(r.hosts),this.animator.requestRender()}broadcast(e,n){var i;const r={type:e,payload:n};this.viewRoot.visit(a=>a.handleBroadcast(r)),(i=this._extraBroadcastListeners.get(e))==null||i.forEach(a=>a(r))}_prepareContainer(){this.container.classList.add("genome-spy"),this.container.classList.add("loading"),this._glHelper=new TN(this.container,()=>this.viewRoot?_9(this.viewRoot):{width:void 0,height:void 0},this.spec.background),this.loadingMessageElement=document.createElement("div"),this.loadingMessageElement.className="loading-message",this.loadingMessageElement.innerHTML='<div class="message">Loading<span class="ellipsis">...</span></div>',this.container.appendChild(this.loadingMessageElement),this.tooltip=new M4(this.container),this.loadingMessageElement.querySelector(".message").addEventListener("transitionend",()=>{this.loadingMessageElement.style.display="none"})}destroy(){this.container.classList.remove("genome-spy"),this.container.classList.remove("loading");for(const[e,n]of this._keyboardListeners)for(const r of n)document.removeEventListener(e,r);for(this._glHelper.finalize();this.container.firstChild;)this.container.firstChild.remove()}async _prepareViewsAndData(){this.spec.genome&&(this.genomeStore=new F9(this.spec.baseUrl),await this.genomeStore.initialize(this.spec.genome));const e=this,n={dataFlow:new z3,accessorFactory:this.accessorFactory,glHelper:this._glHelper,animator:this.animator,genomeStore:this.genomeStore,fontManager:new L9(this._glHelper),get devicePixelRatio(){return e._glHelper.dpr},requestLayoutReflow:()=>{},updateTooltip:this.updateTooltip.bind(this),getNamedDataFromProvider:this.getNamedDataFromProvider.bind(this),getCurrentHover:()=>this._currentHover,addKeyboardListener:(s,f)=>{document.addEventListener(s,f);let u=this._keyboardListeners.get(s);u||(u=[],this._keyboardListeners.set(s,u)),u.push(f)},addBroadcastListener(s,f){const u=e._extraBroadcastListeners;let l=u.get(s);l||(l=new Set,u.set(s,l)),l.add(f)},removeBroadcastListener(s,f){var l;(l=e._extraBroadcastListeners.get(s))==null||l.delete(f)},isViewConfiguredVisible:e.viewVisibilityPredicate,isViewSpec:s=>e.viewFactory.isViewSpec(s),createView:function(s,f,u,l){return e.viewFactory.createView(s,n,f,u,l)}},r=this.spec;r.datasets&&this.registerNamedDataProvider(s=>r.datasets[s]),this.viewRoot=n.createView(r,null,null,"viewRoot"),await j3(this.viewRoot),(this.viewRoot.needsAxes.x||this.viewRoot.needsAxes.y)&&(this.viewRoot=new b7(n,this.viewRoot)),A9(this.viewRoot),E9(this.viewRoot),this._glHelper.invalidateSize();const i=[];this.viewRoot.visit(s=>{s instanceof Tt&&i.push(s)});const a=m9(this.viewRoot,n.dataFlow);v9(a),this.broadcast("dataFlowBuilt",a),i.forEach(s=>s.mark.initializeEncoders());const o=Promise.all(i.map(s=>s.mark.initializeGraphics()));for(const s of i)a.addObserver(f=>{s.mark.initializeData(),s.mark.updateGraphicsData()},s);await n.fontManager.waitUntilReady(),a.initialize(),await Promise.all(a.dataSources.map(s=>s.load())),g0(this.viewRoot),this.broadcast("dataLoaded"),await o,this.viewRoot.visit(s=>{for(const f of Object.values(s.resolutions.scale))this._glHelper.createRangeTexture(f)});for(const s of i)s.mark.finalizeGraphicsInitialization();n.requestLayoutReflow=this.computeLayout.bind(this),this.viewRoot.visit(s=>Tl(s,"size")),this._glHelper.invalidateSize()}async launch(){try{return this._prepareContainer(),await this._prepareViewsAndData(),this.registerMouseEvents(),this.computeLayout(),this.animator.requestRender(),this._glHelper.addEventListener("resize",()=>{this.computeLayout(),this.renderAll()}),!0}catch(e){const n=`${e.view?`At "${e.view.getPathString()}": `:""}${e.toString()}`;return console.error(e.stack),y7(this.container,n),!1}finally{this.container.classList.remove("loading"),window.setTimeout(()=>{this.loadingMessageElement.style.display="none"},2e3)}}registerMouseEvents(){const e=this._glHelper.canvas,n=r=>{var i;if(r instanceof MouseEvent){r.type=="mousemove"&&(this.tooltip.handleMouseMove(r),this._tooltipUpdateRequested=!1,r.buttons==0&&this.renderPickingFramebuffer());const a=e.getBoundingClientRect(),o=new I9(r.clientX-a.left-e.clientLeft,r.clientY-a.top-e.clientTop),s=f=>{this.viewRoot.propagateInteractionEvent(new D9(o,f)),this._tooltipUpdateRequested||this.tooltip.clear()};if(r.type!="wheel"&&this._wheelInertia.cancel(),r.type=="mousemove")this._handlePicking(o.x,o.y);else if(r.type=="mousedown"||r.type=="mouseup")this.renderPickingFramebuffer();else if(r.type=="wheel"){this._tooltipUpdateRequested=!1;const f=r;if(Math.abs(f.deltaX)>Math.abs(f.deltaY))this._currentHover=null,this._wheelInertia.cancel();else{const u=U9(f);this._wheelInertia.setMomentum(f.deltaY*(f.deltaMode?80:1),l=>{const c=new WheelEvent("wheel",{...u,deltaMode:0,deltaX:0,deltaY:l});s(c)}),f.preventDefault();return}}if(r.type=="click"){const f=this._currentHover?{type:r.type,viewPath:this._currentHover.mark.unitView.getLayoutAncestors().map(u=>u.name).reverse(),datum:this._currentHover.datum}:{type:r.type,viewPath:null,datum:null};(i=this._eventListeners.get("click"))==null||i.forEach(u=>u(f))}s(r)}};["mousedown","mouseup","wheel","click","mousemove","gesturechange","contextmenu"].forEach(r=>e.addEventListener(r,n)),e.addEventListener("mousedown",()=>{document.addEventListener("mouseup",()=>this.tooltip.popEnabledState(),{once:!0}),this.tooltip.pushEnabledState(!1)}),e.addEventListener("dragstart",r=>r.stopPropagation())}_handlePicking(e,n){var a;const r=this._glHelper.readPickingPixel(e,n),i=r[0]|r[1]<<8|r[2]<<16;if(i==0){this._currentHover=null;return}if(i!==((a=this._currentHover)==null?void 0:a.uniqueId)&&(this._currentHover=null),this._currentHover||this.viewRoot.visit(o=>{if(o instanceof Tt){if(o.mark.isPickingParticipant()){const s=o.mark.encoders.uniqueId.accessor;o.getCollector().visitData(f=>{s(f)==i&&(this._currentHover={mark:o.mark,datum:f,uniqueId:i})})}if(this._currentHover)return tu}}),this._currentHover){const o=this._currentHover.mark;this.updateTooltip(this._currentHover.datum,async s=>{if(!o.isPickingParticipant())return;const f=o.properties.tooltip;if(f!==null){const u=(f==null?void 0:f.handler)??"default",l=this.tooltipHandlers[u];if(!l)throw new Error("No such tooltip handler: "+u);return l(s,o,f==null?void 0:f.params)}})}}updateTooltip(e,n){if(!this._tooltipUpdateRequested||!e)this.tooltip.updateWithDatum(e,n),this._tooltipUpdateRequested=!0;else throw new Error("Tooltip has already been updated! Duplicate event handler?")}computeLayout(){const e=this.viewRoot;if(!e)return;this.broadcast("layout");const n=this._glHelper.getLogicalCanvasSize();if(isNaN(n.width)||isNaN(n.height)){console.log(`NaN in canvas size: ${n.width}x${n.height}. Skipping computeLayout().`);return}this._renderingContext=new H3({picking:!1},this._glHelper),this._pickingContext=new H3({picking:!0},this._glHelper),e.render(new C9(this._renderingContext,this._pickingContext),Xu.create(0,0,n.width,n.height)),this.broadcast("layoutComputed")}renderAll(){var e;(e=this._renderingContext)==null||e.render(),this._dirtyPickingBuffer=!0}renderPickingFramebuffer(){this._dirtyPickingBuffer&&(this._pickingContext.render(),this._dirtyPickingBuffer=!1)}getSearchableViews(){const e=[];return this.viewRoot.visit(n=>{n instanceof Tt&&n.getAccessor("search")&&e.push(n)}),e}getNamedScaleResolutions(){const e=new Map;return this.viewRoot.visit(n=>{for(const r of Object.values(n.resolutions.scale))r.name&&e.set(r.name,r)}),e}}function y7(t,e){const n=document.createElement("div");n.className="message-box";const r=document.createElement("div");r.textContent=e,n.appendChild(r),t.appendChild(n)}const w7="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMzIgMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEuNSI+PHBhdGggZD0iTTQuNyAyMS4ycy40IDIuMyAxLjMgMy42QzcgMjYgOS44IDI4IDkuOCAyOHMzLjQtMi42IDYuNC04LjVjMCAwIDEgLjEgMS45LS40LjktLjYuOC0uNCAxLTEuMiAwIDAgMi45LjUgNi42IDAgMi4xLS4zIDQuMy0xIDYuMi0yLjUgMCAwLTEuMS0xLjctMi41LTUuMS0uNS0xLjMtMi0xLjgtNC42LTQuNmwtOC4yIDguNi0xMS45IDYuOXoiIGZpbGwtb3BhY2l0eT0iLjEiLz48cGF0aCBkPSJNMTIuNyAxNC44cy00LTEuOC0xMiAyLjdjMCAwIDEgMy43IDIuNSA1LjMgMS40IDEuNSAyLjMgMy42IDQuNiA0LjYgMCAwIDQuNy0zIDYuOS05LjJsMy0yczQuNyAyLjggMTIuNi0xLjZjMCAwLS42LTMuMy0zLTYtMi42LTMtMy44LTQuNy0zLjgtNC43cy00LjEgMi4zLTcuNSA5LjNsLTMuMyAxLjZ6IiBmaWxsPSIjN2ZiYmRkIi8+PHBhdGggZD0iTTEyLjQgMTUuNWMtLjctLjUtMi40LS44LTQuNC0uNC0yIC40LTQgMS4zLTQuOCAxLjgtLjUuMy0xLjIgMS0xLjIgMS40IDAgLjcuMyAxLjguOCAyLjQuMy4zLjcuNSAxLjQuNi44IDAgMi41LTEuNCAzLjUtMiAxLS42IDEuNi0uOCAyLjctMS4ybC0yLjkgMi40Yy0xLjMgMS4yLTIuMiAxLjUtMi40IDIuMyAwIC41IDAgMS40LjUgMS44LjQuNS42LjggMS42LjguNiAwIDEgMCAyLjYtMS41LjktLjkgMi4zLTMgMi43LTMuNy42LTEuMSAxLTIuMi43LTMtLjItMS0uNC0xLjQtLjgtMS43ek0xNy40IDE0LjJjLS4zLS41LS45LTEuMi0uMi0yLjVsMS45LTNjLjUtLjggMi0yLjMgMi42LTIuNi42LS40IDEuNS0uNiAyLS4yLjYuNCAxIDEgMS4zIDEuNS40LjYuNyAxLjMuMiAyLS43IDEtMS42LjktMi44IDEuNy0xLjIuOC0xLjkgMS4yLTIuNSAxLjlsMy44LTEuOGMxLjMtLjYgMi43LTEuMSAzLjQtLjcuOC41LjguNyAxIDEuNC4zIDEtLjIgMS45LS44IDIuNC0uNS42LTEuNS45LTIuNiAxLjItMS40LjQtNC41IDEtNS44LjUtMS4zLS41LTEuMy0xLjQtMS41LTEuOHoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNMTIuNyAxNC44cy00LTEuOC0xMiAyLjdjMCAwIDEgMy43IDIuNSA1LjMgMS40IDEuNSAyLjMgMy42IDQuNiA0LjYgMCAwIDQuNy0zIDYuOS05LjJsMy0yczQuNyAyLjggMTIuNi0xLjZjMCAwLS42LTMuMy0zLTYtMi42LTMtMy44LTQuNy0zLjgtNC43cy00LjEgMi4zLTcuNSA5LjNsLTMuMyAxLjZ6IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iLjUiLz48cGF0aCBkPSJNMTIuNCAxNC45czIuMS0yIDMtMmMxLjEgMCAyLjMgMi43IDIuMyAzLjUgMCAuOC0yLjEgMi40LTMuMSAyLjMgMCAwIDAtMS4yLS43LTIuNi0uOC0xLjMtMS41LTEuMi0xLjUtMS4yeiIgZmlsbD0iIzdmYmJkZCIvPjxwYXRoIGQ9Ik0xMy44IDE1LjNjLjkuOC42IDIgMS40IDEuOCAxLS4yIDEuNC0uOCAxLjMtMS41IDAtLjcgMC0uOC0uNC0xLjYtLjMtLjctMS0xLjEtMi0uNS0uNy41LTEuNCAxLjMtMS40IDEuM3MuMi0uMyAxLjEuNXoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNMTIuNCAxNC45czIuMS0yIDMtMmMxLjEgMCAyLjMgMi43IDIuMyAzLjUgMCAuOC0yLjEgMi40LTMuMSAyLjMgMCAwIDAtMS4yLS43LTIuNi0uOC0xLjMtMS41LTEuMi0xLjUtMS4yeiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utd2lkdGg9Ii41Ii8+PC9zdmc+",x7="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+Cjxzdmcgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDY0IDY0IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zOnNlcmlmPSJodHRwOi8vd3d3LnNlcmlmLmNvbS8iIHN0eWxlPSJmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MS41OyI+CiAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjEwMjIxLDAuMDA2ODM4MjUsLTAuMDA2NzEzNiwwLjEwMDM0NywtOC4wMzQyNCwtMTMuMjIyMikiPgogICAgICAgIDxwYXRoIGQ9Ik0yMDguNjI5LDU0OC4xN0MyMDguNjI5LDU0OC4xNyAyMTkuNzY4LDU5NC4zODkgMjM5LjgxNCw2MTkuMjIyQzI1OS44Niw2NDQuMDU1IDMxOS4xMTksNjgwLjgzMSAzMTkuMTE5LDY4MC44MzFDMzE5LjExOSw2ODAuODMxIDM4NS41NTcsNjIyLjkxNSA0MzcuODcsNDk4LjM0NkM0MzcuODcsNDk4LjM0NiA0NTYuMDIxLDQ5OS4yMzYgNDczLjgwOCw0ODYuNDQ2QzQ5MS41OTQsNDczLjY1NiA0OTAuMjM5LDQ3OC41MzQgNDk0Ljg4Myw0NjEuNjJDNDk0Ljg4Myw0NjEuNjIgNTUxLjg0OCw0NjcuOTM3IDYyNS44MjYsNDUxLjg2M0M2NjcuNjM0LDQ0Mi43NzggNzEwLjIzOCw0MjUuNjQ5IDc0Ny4zODIsMzkzLjE0MkM3NDcuMzgyLDM5My4xNDIgNzIxLjk5MiwzNjAuMjQ0IDY4OS40MjIsMjkxLjQ1QzY3Ny4wMjksMjY1LjI3NSA2NDcuNTE4LDI1Ny4wOTggNTkwLjc0NywyMDMuMzA5TDQzOC4wODMsMzkxLjI3M0wyMDguNjI5LDU0OC4xN1oiIHN0eWxlPSJmaWxsLW9wYWNpdHk6MC4xMTsiLz4KICAgIDwvZz4KICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDAuMDgxOTg1LC0wLjA1ODI0OTMsMC4wNTgyNDkzLDAuMDgxOTg1LC00MC40NzU0LDM0Ljc2NjgpIj4KICAgICAgICA8cGF0aCBkPSJNNTYxLjU4OCwzNDkuMTU1QzU2MS41ODgsMzQ5LjE1NSA1MTYuMjk3LDI3MS4zNDEgMzI4Ljg0MSwyNTIuMDQ0QzMyOC44NDEsMjUyLjA0NCAzMDIuMzQyLDMyNS4xODkgMzA3LjY4NiwzNjguMDU2QzMxMy4wMzEsNDEwLjkyMiAzMDMuMDAxLDQ1Ni4xNDcgMzI5LjEzMiw1MDEuMTc0QzMyOS4xMzIsNTAxLjE3NCA0NDMuMTE0LDUwNi43NDMgNTU0LjY0OSw0MjguNDY5TDYyOS4yMDQsNDMyLjExMkM2MjkuMjA0LDQzMi4xMTIgNjczLjc1NSw1MzQuMzUxIDg1Ni45NjQsNTU0LjM3NUM4NTYuOTY0LDU1NC4zNzUgODg2LjcxNyw0OTEuNzY4IDg3OS4xOTMsNDE3LjQ3OEM4NzEuMjExLDMzOC42NzMgODcxLjcxNiwyOTMuNDQzIDg3MS43MTYsMjkzLjQ0M0M4NzEuNzE2LDI5My40NDMgNzc1LjQ4NSwyODMuOTI4IDYzNS40MTgsMzYxLjc5NUw1NjEuNTg4LDM0OS4xNTVaIiBzdHlsZT0iZmlsbDpyZ2IoMTI3LDE4NywyMjEpOyIvPgogICAgICAgIDxjbGlwUGF0aCBpZD0iX2NsaXAxIj4KICAgICAgICAgICAgPHBhdGggZD0iTTU2MS41ODgsMzQ5LjE1NUM1NjEuNTg4LDM0OS4xNTUgNTE2LjI5NywyNzEuMzQxIDMyOC44NDEsMjUyLjA0NEMzMjguODQxLDI1Mi4wNDQgMzAyLjM0MiwzMjUuMTg5IDMwNy42ODYsMzY4LjA1NkMzMTMuMDMxLDQxMC45MjIgMzAzLjAwMSw0NTYuMTQ3IDMyOS4xMzIsNTAxLjE3NEMzMjkuMTMyLDUwMS4xNzQgNDQzLjExNCw1MDYuNzQzIDU1NC42NDksNDI4LjQ2OUw2MjkuMjA0LDQzMi4xMTJDNjI5LjIwNCw0MzIuMTEyIDY3My43NTUsNTM0LjM1MSA4NTYuOTY0LDU1NC4zNzVDODU2Ljk2NCw1NTQuMzc1IDg4Ni43MTcsNDkxLjc2OCA4NzkuMTkzLDQxNy40NzhDODcxLjIxMSwzMzguNjczIDg3MS43MTYsMjkzLjQ0MyA4NzEuNzE2LDI5My40NDNDODcxLjcxNiwyOTMuNDQzIDc3NS40ODUsMjgzLjkyOCA2MzUuNDE4LDM2MS43OTVMNTYxLjU4OCwzNDkuMTU1WiIvPgogICAgICAgIDwvY2xpcFBhdGg+CiAgICAgICAgPGcgY2xpcC1wYXRoPSJ1cmwoI19jbGlwMSkiPgogICAgICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjc1ODYzNywwLjQ1ODkyLC0wLjQ1ODkyLDAuNzU4NjM3LDQyNS42MzUsLTEyMS4yMTMpIj4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0zODYuODczLDM5Ny4yNDFDMzcxLjM0NSwzODMuNjI4IDMzNS4xMzgsMzc0Ljc4MiAyOTAuNjQ0LDM4MC41NDNDMjQ2LjE0OSwzODYuMzA0IDE5Ni44MjcsNDAyLjI2NiAxNzguODAyLDQxMi4wNjVDMTY4LjIwMiw0MTcuODI4IDE1MS40OTQsNDI5LjM1NCAxNTAuNjgyLDQzOS4zMzRDMTQ5LjUyNyw0NTMuNTI4IDE1My41OTMsNDc3LjA2NiAxNjUuNjI1LDQ5MS4yODRDMTcxLjY5LDQ5OC40NTEgMTc5LjkyNyw1MDMuNDQ1IDE5My44MzgsNTA1LjQyM0MyMTEuNzAxLDUwNy45NjMgMjUyLjcxNCw0ODAuNjI3IDI3NS4zOTksNDY5LjIyQzI5OS4zMzIsNDU3LjE4NyAzMTMuOTgxLDQ1NC41NiAzMzguMzg2LDQ0Ny4wMTRDMzM4LjM4Niw0NDcuMDE0IDI5MS4zNDYsNDc4LjU4NyAyNzAuMjA1LDQ5NC4zOTNDMjM5LjYxLDUxNy4yNjggMjE4LjU3NSw1MjIuNDQ0IDIxMi44NTksNTM5Ljg5N0MyMDkuNzY2LDU0OS4zNCAyMTIuMjM3LDU2Ny43NjcgMjIwLjM1NCw1NzcuNTM4QzIyOS40MjcsNTg4LjQ2MSAyMzMuMTk3LDU5NS4wNjkgMjU0LjU5MSw1OTcuNjI0QzI2Ny4zMDMsNTk5LjE0MyAyNzYuNjg1LDU5OC44MDIgMzE0LjM3LDU2OC45NUMzMzYuMDYsNTUxLjc2NyAzNzAuMjk3LDUwOS44MTcgMzgxLjQxMiw0OTQuNjE2QzM5Ny41ODEsNDcyLjUwNiA0MDUuMTY1LDQ1MS40NjIgNDAyLjY1Niw0MzUuMDRDMzk5LjA0NSw0MTEuMzkxIDM5NC4yNTksNDAzLjcxNiAzODYuODczLDM5Ny4yNDFaIiBzdHlsZT0iZmlsbDp3aGl0ZTsiLz4KICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjc1MjE0NSwwLjQ1NDk5MywtMC40NTQ5OTMsMC43NTIxNDUsNDY4LjM2LC0xMDguMjkzKSI+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNDg0LjczMywzNzguOTM0QzQ3OS4zMywzNjcuODg2IDQ2Ny4wOTIsMzUwLjQ1MiA0ODMuODg2LDMyNS4yMDVDNTAyLjE3MiwyOTcuNzE3IDUxNC44OTgsMjgwLjkzOCA1MjguMTE3LDI2NC42MzJDNTQxLjMzNSwyNDguMzI2IDU3NC43OTMsMjE4LjQ0NyA1ODcuNzM5LDIxMi41M0M2MDAuNjg0LDIwNi42MTMgNjIxLjAyNiwyMDMuODUyIDYzMS44ODksMjEyLjg0MUM2NDIuODc0LDIyMS45MyA2NDguNDE2LDIzMy4zNzcgNjU0LjkyLDI0NS40NzhDNjYyLjMzMSwyNTkuMjY3IDY2Ny4zMTgsMjc0LjgwOCA2NTYuNTE4LDI4OC4yNzhDNjQxLjA5MywzMDcuNTE1IDYyMi4yNDIsMzA1LjI5NCA1OTQuOTEyLDMxOS44NDRDNTY3LjI0NCwzMzQuNTczIDU1Mi42NDQsMzQyLjk0MyA1MzkuMjQ0LDM1NS43MDNDNTM5LjI0NCwzNTUuNzAzIDU5MS40MzEsMzM0LjExNCA2MjEuMjI5LDMyNC40NzRDNjUxLjAyNywzMTQuODMzIDY4MC45NTIsMzA0LjQ2MSA2OTUuOTk1LDMxNS45NzVDNzExLjAzOCwzMjcuNDkgNzEwLjYzMSwzMzEuNDYzIDcxNC40MjUsMzQ3LjE4N0M3MTkuMTA3LDM2Ni41OSA3MDcuMjMxLDM4NS4xNjUgNjk0LjI5NCwzOTUuODM4QzY4MS4zNTYsNDA2LjUxIDY1OS45NTgsNDExLjc1NiA2MzYuODc1LDQxNi44NTJDNjA2LjQyLDQyMy41NzYgNTQwLjI3OCw0MzEuOTE3IDUxMi44MTksNDE5LjM2NkM0ODUuMzYxLDQwNi44MTUgNDg4LjQ4OCwzODYuNjEzIDQ4NC43MzMsMzc4LjkzNFoiIHN0eWxlPSJmaWxsOndoaXRlOyIvPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgICAgIDxwYXRoIGQ9Ik01NjEuNTg4LDM0OS4xNTVDNTYxLjU4OCwzNDkuMTU1IDUxNi4yOTcsMjcxLjM0MSAzMjguODQxLDI1Mi4wNDRDMzI4Ljg0MSwyNTIuMDQ0IDMwMi4zNDIsMzI1LjE4OSAzMDcuNjg2LDM2OC4wNTZDMzEzLjAzMSw0MTAuOTIyIDMwMy4wMDEsNDU2LjE0NyAzMjkuMTMyLDUwMS4xNzRDMzI5LjEzMiw1MDEuMTc0IDQ0My4xMTQsNTA2Ljc0MyA1NTQuNjQ5LDQyOC40NjlMNjI5LjIwNCw0MzIuMTEyQzYyOS4yMDQsNDMyLjExMiA2NzMuNzU1LDUzNC4zNTEgODU2Ljk2NCw1NTQuMzc1Qzg1Ni45NjQsNTU0LjM3NSA4ODYuNzE3LDQ5MS43NjggODc5LjE5Myw0MTcuNDc4Qzg3MS4yMTEsMzM4LjY3MyA4NzEuNzE2LDI5My40NDMgODcxLjcxNiwyOTMuNDQzQzg3MS43MTYsMjkzLjQ0MyA3NzUuNDg1LDI4My45MjggNjM1LjQxOCwzNjEuNzk1TDU2MS41ODgsMzQ5LjE1NVoiIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOmJsYWNrO3N0cm9rZS13aWR0aDoxNi41N3B4OyIvPgogICAgPC9nPgogICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC4xMDAyOTgsLTAuMDA3NDA0ODgsMC4wMDc0MDQ4OCwwLjEwMDI5OCwtMTUuNzQ1NywtNS4xNzUyOCkiPgogICAgICAgIDxwYXRoIGQ9Ik0zODQuOTE2LDM4NS40NTlDMzg0LjkxNiwzODUuNDU5IDQzMC43ODEsMzQ3Ljg2OCA0NTAuMDI3LDM1MC4wOTNDNDcxLjY4NSwzNTIuNTk2IDQ5MC40OSw0MDcuNzQ3IDQ5MC4yMDgsNDI0LjQxNkM0ODkuOTI3LDQ0MS4wODUgNDQyLjk0OCw0NjkuODY2IDQyMi41MzcsNDY2LjI0QzQyMi41MzcsNDY2LjI0IDQyNS41MjUsNDQyLjEyOSA0MTIuMTE0LDQxMy4zMzVDMzk4LjcwMiwzODQuNTQgMzg0LjkxNiwzODUuNDU5IDM4NC45MTYsMzg1LjQ1OVoiIHN0eWxlPSJmaWxsOnJnYigxMjcsMTg3LDIyMSk7Ii8+CiAgICAgICAgPGNsaXBQYXRoIGlkPSJfY2xpcDIiPgogICAgICAgICAgICA8cGF0aCBkPSJNMzg0LjkxNiwzODUuNDU5QzM4NC45MTYsMzg1LjQ1OSA0MzAuNzgxLDM0Ny44NjggNDUwLjAyNywzNTAuMDkzQzQ3MS42ODUsMzUyLjU5NiA0OTAuNDksNDA3Ljc0NyA0OTAuMjA4LDQyNC40MTZDNDg5LjkyNyw0NDEuMDg1IDQ0Mi45NDgsNDY5Ljg2NiA0MjIuNTM3LDQ2Ni4yNEM0MjIuNTM3LDQ2Ni4yNCA0MjUuNTI1LDQ0Mi4xMjkgNDEyLjExNCw0MTMuMzM1QzM5OC43MDIsMzg0LjU0IDM4NC45MTYsMzg1LjQ1OSAzODQuOTE2LDM4NS40NTlaIi8+CiAgICAgICAgPC9jbGlwUGF0aD4KICAgICAgICA8ZyBjbGlwLXBhdGg9InVybCgjX2NsaXAyKSI+CiAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDAuOTA5MDY5LDMuNjc2NDFlLTE3LC0zLjc5ODE4ZS0xNywwLjg1ODUyLDM3LjA1MSw1Mi4xODI5KSI+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNDEzLjI4Miw0MDIuNjk3QzQzMC43Nyw0MjEuNTggNDIzLjMwNyw0NDguNDI2IDQ0MS42ODMsNDQ2LjEzN0M0NjMuNDA5LDQ0My40MzEgNDcyLjYwNCw0MzAuMzU2IDQ3My4zMTYsNDEzLjQwMkM0NzQuMDI4LDM5Ni40NDggNDcyLjI0NSwzOTMuOTExIDQ2Ni4xNzIsMzc1LjMyMUM0NjAuMDk5LDM1Ni43MzEgNDQ3Ljk1MywzNTIuMTc2IDQyMi44NDIsMzU3LjE3OUM0MDEuOTU3LDM2MS4zMzkgNDA1LjAzOSwzNjAuMjE1IDM5OC43MzUsMzY3LjIyOEMzOTIuNDMsMzc0LjI0MiAzODQuMzE1LDM5My4xODIgMzg0LjMxNSwzOTMuMTgyQzM4NC4zMTUsMzkzLjE4MiAzOTIuNzE1LDM4MC40OTIgNDEzLjI4Miw0MDIuNjk3WiIgc3R5bGU9ImZpbGw6d2hpdGU7Ii8+CiAgICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CiAgICAgICAgPHBhdGggZD0iTTM4NC45MTYsMzg1LjQ1OUMzODQuOTE2LDM4NS40NTkgNDMwLjc4MSwzNDcuODY4IDQ1MC4wMjcsMzUwLjA5M0M0NzEuNjg1LDM1Mi41OTYgNDkwLjQ5LDQwNy43NDcgNDkwLjIwOCw0MjQuNDE2QzQ4OS45MjcsNDQxLjA4NSA0NDIuOTQ4LDQ2OS44NjYgNDIyLjUzNyw0NjYuMjRDNDIyLjUzNyw0NjYuMjQgNDI1LjUyNSw0NDIuMTI5IDQxMi4xMTQsNDEzLjMzNUMzOTguNzAyLDM4NC41NCAzODQuOTE2LDM4NS40NTkgMzg0LjkxNiwzODUuNDU5WiIgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6YmxhY2s7c3Ryb2tlLXdpZHRoOjE2LjU3cHg7Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=";async function v7(t,e,n={}){let r;if(Ke(t)){if(r=document.querySelector(t),!r)throw new Error(`No such element: ${t}`)}else if(t instanceof HTMLElement)r=t;else throw new Error(`Invalid element: ${t}`);let i;try{const a=Dn(e)?e:await oS(e);if(a.baseUrl??(a.baseUrl=""),a.width??(a.width="container"),a.padding??(a.padding=10),r==document.body){const o=document.createElement("div");o.style.position="fixed",o.style.inset="0",o.style.overflow="hidden",r.appendChild(o),r=o}i=new aS(r,a,n),A7(i,n),await i.launch()}catch(a){r.innerText=a.toString(),console.error(a)}return{finalize(){for(i.destroy();r.firstChild;)r.firstChild.remove()},addEventListener(a,o){const s=i._eventListeners;let f=s.get(a);f||(f=new Set,s.set(a,f)),f.add(o)},removeEventListener(a,o){var f;(f=i._eventListeners.get(a))==null||f.delete(o)},getScaleResolutionByName(a){return i.getNamedScaleResolutions().get(a)},updateNamedData:i.updateNamedData.bind(i)}}function A7(t,e){e.namedDataProvider&&t.registerNamedDataProvider(e.namedDataProvider)}async function oS(t){let e;try{e=JSON.parse(await kf().load(t))}catch(n){throw new Error(`Could not load or parse configuration: ${t}, reason: ${n.message}`)}if(!e.baseUrl){const n=t.match(/^[^?#]*\//);e.baseUrl=n&&n[0]||"./"}return e}ge.GenomeSpy=aS,ge.embed=v7,ge.favIcon=x7,ge.html=qn,ge.icon=w7,ge.loadSpec=oS,Object.defineProperty(ge,Symbol.toStringTag,{value:"Module"})});
461
+ `&&(a+=1);this.linesSinceLastSyncMark+=a}this.haveWeEmittedData=!0,pg(r)}}function UO(e={}){return new AE(e)}function GO(e,t,n={}){const r={insertVersionDirective:!0,...n};return new Promise((i,a)=>{e.pipe(new AE(r)).on("end",()=>i(null)).on("error",a).pipe(t)})}const HO=Object.freeze(Object.defineProperty({__proto__:null,default:{parseStream:LO,parseStringSync:OO,formatSync:zO,formatStream:UO,formatFile:GO,util:MO}},Symbol.toStringTag,{value:"Module"}));ue.GenomeSpy=fw,ue.embed=xF,ue.favIcon=vF,ue.html=Fn,ue.icon=wF,ue.loadSpec=uw,Object.defineProperty(ue,Symbol.toStringTag,{value:"Module"})});