@omnimedia/omnitool 1.1.0-1 → 1.1.0-100

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 (468) hide show
  1. package/README.md +556 -72
  2. package/package.json +20 -15
  3. package/s/context.ts +0 -7
  4. package/s/demo/demo.bundle.ts +104 -39
  5. package/s/demo/demo.css +246 -11
  6. package/s/demo/routines/export-test.ts +16 -0
  7. package/s/demo/routines/filmstrip-test.ts +23 -19
  8. package/s/demo/routines/load-video.ts +2 -3
  9. package/s/demo/routines/playback-test.ts +61 -0
  10. package/s/demo/routines/timeline-setup.ts +81 -0
  11. package/s/demo/routines/transcode-test.ts +21 -5
  12. package/s/demo/routines/transcriber-test.ts +34 -0
  13. package/s/demo/routines/transitions-test.ts +43 -0
  14. package/s/demo/routines/waveform-test.ts +35 -8
  15. package/s/driver/driver-worker.ts +9 -0
  16. package/s/driver/driver.test.ts +1 -1
  17. package/s/driver/driver.ts +52 -43
  18. package/s/driver/fns/host.ts +7 -6
  19. package/s/driver/fns/schematic.ts +69 -25
  20. package/s/driver/fns/work.ts +102 -214
  21. package/s/driver/parts/compositor.ts +319 -0
  22. package/s/driver/parts/machina.ts +19 -20
  23. package/s/driver/utils/find-pixi-filter.ts +24 -0
  24. package/s/driver/utils/load-decoder-source.ts +3 -4
  25. package/s/features/bg-remover/bg-remover.ts +26 -0
  26. package/s/features/bg-remover/default-spec.ts +11 -0
  27. package/s/features/bg-remover/types.ts +27 -0
  28. package/s/features/bg-remover/worker.bundle.ts +52 -0
  29. package/s/features/parts/expose-errors.ts +41 -0
  30. package/s/features/parts/load-pipe.ts +17 -0
  31. package/s/features/parts/types.ts +19 -0
  32. package/s/features/speech/transcribe/default-spec.ts +11 -0
  33. package/s/features/speech/transcribe/parts/prep-audio.ts +23 -0
  34. package/s/features/speech/transcribe/parts/transcribe.ts +70 -0
  35. package/s/features/speech/transcribe/transcriber.ts +46 -0
  36. package/s/features/speech/transcribe/types.ts +76 -0
  37. package/s/features/speech/transcribe/worker.bundle.ts +42 -0
  38. package/s/features/transition/parts/fragment.ts +24 -0
  39. package/s/features/transition/parts/types.ts +27 -0
  40. package/s/features/transition/parts/uniforms.ts +29 -0
  41. package/s/features/transition/parts/vertex.ts +31 -0
  42. package/s/features/transition/transition.ts +60 -0
  43. package/s/index.html.ts +103 -20
  44. package/s/index.ts +1 -0
  45. package/s/tests.bundle.ts +11 -0
  46. package/s/tests.html.ts +28 -0
  47. package/s/timeline/index.ts +17 -1
  48. package/s/timeline/parts/animations/make.ts +38 -0
  49. package/s/timeline/parts/animations/presets.ts +138 -0
  50. package/s/timeline/parts/animations/properties.ts +30 -0
  51. package/s/timeline/parts/animations/registry.ts +13 -0
  52. package/s/timeline/parts/animations/types.ts +80 -0
  53. package/s/timeline/parts/basics.ts +1 -1
  54. package/s/timeline/parts/captions.ts +91 -0
  55. package/s/timeline/parts/filmstrip.ts +43 -16
  56. package/s/timeline/parts/filters.ts +453 -0
  57. package/s/timeline/parts/item.ts +124 -11
  58. package/s/timeline/parts/media.ts +43 -1
  59. package/s/timeline/parts/resource-pool.ts +8 -5
  60. package/s/timeline/parts/resource.ts +3 -0
  61. package/s/timeline/parts/transitions.ts +102 -0
  62. package/s/timeline/parts/waveform/parts/collect.ts +72 -0
  63. package/s/timeline/parts/waveform/parts/render.ts +45 -0
  64. package/s/timeline/parts/waveform/parts/types.ts +24 -0
  65. package/s/timeline/parts/waveform/waveform.ts +161 -0
  66. package/s/timeline/renderers/export/parts/audio-gain.ts +17 -0
  67. package/s/timeline/renderers/export/parts/audio-mix.ts +133 -0
  68. package/s/timeline/renderers/export/parts/cursor.ts +291 -0
  69. package/s/timeline/renderers/export/parts/produce-audio.ts +64 -0
  70. package/s/timeline/renderers/export/parts/produce-video.ts +49 -0
  71. package/s/timeline/renderers/export/parts/resamplers.ts +48 -0
  72. package/s/timeline/renderers/export/produce.ts +28 -0
  73. package/s/timeline/renderers/parts/handy.ts +441 -0
  74. package/s/timeline/renderers/parts/samplers/audio/parts/find.ts +19 -0
  75. package/s/timeline/renderers/parts/samplers/audio/parts/init.ts +60 -0
  76. package/s/timeline/renderers/parts/samplers/audio/parts/sink.ts +38 -0
  77. package/s/timeline/renderers/parts/samplers/audio/parts/types.ts +16 -0
  78. package/s/timeline/renderers/parts/samplers/audio/sampler.ts +35 -0
  79. package/s/timeline/renderers/parts/samplers/visual/parts/defaults.ts +23 -0
  80. package/s/timeline/renderers/parts/samplers/visual/parts/image-sink.ts +51 -0
  81. package/s/timeline/renderers/parts/samplers/visual/parts/sample.ts +99 -0
  82. package/s/timeline/renderers/parts/samplers/visual/parts/sequence.ts +97 -0
  83. package/s/timeline/renderers/parts/samplers/visual/parts/transition.ts +28 -0
  84. package/s/timeline/renderers/parts/samplers/visual/parts/types.ts +11 -0
  85. package/s/timeline/renderers/parts/samplers/visual/parts/video-sink.ts +38 -0
  86. package/s/timeline/renderers/parts/samplers/visual/sampler.ts +31 -0
  87. package/s/timeline/renderers/parts/schedulers.ts +96 -0
  88. package/s/timeline/renderers/player/parts/playback.ts +213 -0
  89. package/s/timeline/renderers/player/player.ts +86 -0
  90. package/s/timeline/renderers/renderers.test.ts +403 -0
  91. package/s/timeline/sugar/helpers.ts +239 -0
  92. package/s/timeline/sugar/o.ts +443 -48
  93. package/s/timeline/sugar/omni.test.ts +210 -0
  94. package/s/timeline/sugar/omni.ts +38 -12
  95. package/s/timeline/types.ts +62 -0
  96. package/s/timeline/utils/anim.ts +63 -0
  97. package/s/timeline/utils/checksum.ts +5 -2
  98. package/s/timeline/utils/datafile.ts +15 -4
  99. package/s/timeline/utils/dummy-data.ts +3 -3
  100. package/s/timeline/utils/matrix.ts +54 -0
  101. package/s/timeline/utils/terps.ts +81 -0
  102. package/s/units/fps.ts +8 -0
  103. package/s/units/ms.ts +8 -0
  104. package/s/units/seconds.ts +8 -0
  105. package/x/WebGLRenderer-4CHIZDHY.js +2 -0
  106. package/x/WebGLRenderer-4CHIZDHY.js.map +7 -0
  107. package/x/WebGPURenderer-O6WXU2QR.js +2 -0
  108. package/x/WebGPURenderer-O6WXU2QR.js.map +7 -0
  109. package/x/browserAll-WNIOTNNP.js +2 -0
  110. package/x/browserAll-WNIOTNNP.js.map +7 -0
  111. package/x/chunk-23FOBGX6.js +2 -0
  112. package/x/chunk-23FOBGX6.js.map +7 -0
  113. package/x/chunk-73XOWA4F.js +393 -0
  114. package/x/chunk-73XOWA4F.js.map +7 -0
  115. package/x/chunk-IAWJKNX5.js +42 -0
  116. package/x/chunk-IAWJKNX5.js.map +7 -0
  117. package/x/chunk-KCMVLWBS.js +157 -0
  118. package/x/chunk-KCMVLWBS.js.map +7 -0
  119. package/x/chunk-MR32SQ27.js +2 -0
  120. package/x/chunk-MR32SQ27.js.map +7 -0
  121. package/x/chunk-VCUJJYRJ.js +327 -0
  122. package/x/chunk-VCUJJYRJ.js.map +7 -0
  123. package/x/chunk-XNIZ4L5W.js +269 -0
  124. package/x/chunk-XNIZ4L5W.js.map +7 -0
  125. package/x/chunk-ZLGNQFUI.js +15 -0
  126. package/x/chunk-ZLGNQFUI.js.map +7 -0
  127. package/x/context.d.ts +1 -4
  128. package/x/context.js +1 -5
  129. package/x/context.js.map +1 -1
  130. package/x/demo/WebGLRenderer-RSJAHIG2.js +2 -0
  131. package/x/demo/WebGLRenderer-RSJAHIG2.js.map +7 -0
  132. package/x/demo/WebGPURenderer-MGFAJCYY.js +2 -0
  133. package/x/demo/WebGPURenderer-MGFAJCYY.js.map +7 -0
  134. package/x/demo/browserAll-PTRBXBRP.js +2 -0
  135. package/x/demo/browserAll-PTRBXBRP.js.map +7 -0
  136. package/x/demo/chunk-CUYOGHWU.js +42 -0
  137. package/x/demo/chunk-CUYOGHWU.js.map +7 -0
  138. package/x/demo/chunk-DGTDNJ7W.js +2 -0
  139. package/x/demo/chunk-DGTDNJ7W.js.map +7 -0
  140. package/x/demo/chunk-FZ5BYF63.js +15 -0
  141. package/x/demo/chunk-FZ5BYF63.js.map +7 -0
  142. package/x/demo/chunk-KWN4NNES.js +269 -0
  143. package/x/demo/chunk-KWN4NNES.js.map +7 -0
  144. package/x/demo/chunk-OJ3FPXW7.js +157 -0
  145. package/x/demo/chunk-OJ3FPXW7.js.map +7 -0
  146. package/x/demo/chunk-PSLUOGTZ.js +393 -0
  147. package/x/demo/chunk-PSLUOGTZ.js.map +7 -0
  148. package/x/demo/chunk-VLCVEIFU.js +327 -0
  149. package/x/demo/chunk-VLCVEIFU.js.map +7 -0
  150. package/x/demo/chunk-ZWCPT5FR.js +2 -0
  151. package/x/demo/chunk-ZWCPT5FR.js.map +7 -0
  152. package/x/demo/demo.bundle.js +94 -36
  153. package/x/demo/demo.bundle.js.map +1 -1
  154. package/x/demo/demo.bundle.min.js +7359 -107
  155. package/x/demo/demo.bundle.min.js.map +4 -4
  156. package/x/demo/demo.css +246 -11
  157. package/x/demo/routines/export-test.d.ts +2 -0
  158. package/x/demo/routines/export-test.js +10 -0
  159. package/x/demo/routines/export-test.js.map +1 -0
  160. package/x/demo/routines/filmstrip-test.d.ts +1 -1
  161. package/x/demo/routines/filmstrip-test.js +21 -18
  162. package/x/demo/routines/filmstrip-test.js.map +1 -1
  163. package/x/demo/routines/load-video.d.ts +1 -1
  164. package/x/demo/routines/load-video.js +1 -2
  165. package/x/demo/routines/load-video.js.map +1 -1
  166. package/x/demo/routines/playback-test.d.ts +2 -0
  167. package/x/demo/routines/playback-test.js +51 -0
  168. package/x/demo/routines/playback-test.js.map +1 -0
  169. package/x/demo/routines/timeline-setup.d.ts +6 -0
  170. package/x/demo/routines/timeline-setup.js +59 -0
  171. package/x/demo/routines/timeline-setup.js.map +1 -0
  172. package/x/demo/routines/transcode-test.js +17 -5
  173. package/x/demo/routines/transcode-test.js.map +1 -1
  174. package/x/demo/routines/transcriber-test.d.ts +4 -0
  175. package/x/demo/routines/transcriber-test.js +33 -0
  176. package/x/demo/routines/transcriber-test.js.map +1 -0
  177. package/x/demo/routines/transitions-test.d.ts +5 -0
  178. package/x/demo/routines/transitions-test.js +35 -0
  179. package/x/demo/routines/transitions-test.js.map +1 -0
  180. package/x/demo/routines/waveform-test.d.ts +2 -1
  181. package/x/demo/routines/waveform-test.js +29 -8
  182. package/x/demo/routines/waveform-test.js.map +1 -1
  183. package/x/demo/webworkerAll-JENRT6BT.js +2 -0
  184. package/x/demo/webworkerAll-JENRT6BT.js.map +7 -0
  185. package/x/driver/driver-worker.d.ts +1 -0
  186. package/x/driver/driver-worker.js +6 -0
  187. package/x/driver/driver-worker.js.map +1 -0
  188. package/x/driver/driver.d.ts +24 -9
  189. package/x/driver/driver.js +51 -40
  190. package/x/driver/driver.js.map +1 -1
  191. package/x/driver/driver.test.js +1 -1
  192. package/x/driver/driver.test.js.map +1 -1
  193. package/x/driver/driver.worker.bundle.min.js +137 -1137
  194. package/x/driver/driver.worker.bundle.min.js.map +4 -4
  195. package/x/driver/fns/host.d.ts +12 -4
  196. package/x/driver/fns/host.js +3 -3
  197. package/x/driver/fns/host.js.map +1 -1
  198. package/x/driver/fns/schematic.d.ts +65 -25
  199. package/x/driver/fns/work.d.ts +14 -7
  200. package/x/driver/fns/work.js +83 -174
  201. package/x/driver/fns/work.js.map +1 -1
  202. package/x/driver/parts/compositor.d.ts +39 -0
  203. package/x/driver/parts/compositor.js +264 -0
  204. package/x/driver/parts/compositor.js.map +1 -0
  205. package/x/driver/parts/machina.d.ts +0 -20
  206. package/x/driver/parts/machina.js +6 -10
  207. package/x/driver/parts/machina.js.map +1 -1
  208. package/x/driver/utils/find-pixi-filter.d.ts +5 -0
  209. package/x/driver/utils/find-pixi-filter.js +13 -0
  210. package/x/driver/utils/find-pixi-filter.js.map +1 -0
  211. package/x/driver/utils/load-decoder-source.d.ts +2 -1
  212. package/x/driver/utils/load-decoder-source.js +2 -3
  213. package/x/driver/utils/load-decoder-source.js.map +1 -1
  214. package/x/features/bg-remover/bg-remover.d.ts +5 -0
  215. package/x/features/bg-remover/bg-remover.js +18 -0
  216. package/x/features/bg-remover/bg-remover.js.map +1 -0
  217. package/x/features/bg-remover/default-spec.d.ts +2 -0
  218. package/x/features/bg-remover/default-spec.js +6 -0
  219. package/x/features/bg-remover/default-spec.js.map +1 -0
  220. package/x/features/bg-remover/types.d.ts +20 -0
  221. package/x/features/bg-remover/types.js +2 -0
  222. package/x/features/bg-remover/types.js.map +1 -0
  223. package/x/features/bg-remover/worker.bundle.js +39 -0
  224. package/x/features/bg-remover/worker.bundle.js.map +1 -0
  225. package/x/features/bg-remover/worker.bundle.min.js +2916 -0
  226. package/x/features/bg-remover/worker.bundle.min.js.map +7 -0
  227. package/x/features/parts/expose-errors.d.ts +3 -0
  228. package/x/features/parts/expose-errors.js +32 -0
  229. package/x/features/parts/expose-errors.js.map +1 -0
  230. package/x/features/parts/load-pipe.d.ts +2 -0
  231. package/x/features/parts/load-pipe.js +13 -0
  232. package/x/features/parts/load-pipe.js.map +1 -0
  233. package/x/features/parts/types.d.ts +15 -0
  234. package/x/features/parts/types.js +2 -0
  235. package/x/features/parts/types.js.map +1 -0
  236. package/x/features/speech/transcribe/default-spec.d.ts +2 -0
  237. package/x/features/speech/transcribe/default-spec.js +8 -0
  238. package/x/features/speech/transcribe/default-spec.js.map +1 -0
  239. package/x/features/speech/transcribe/parts/prep-audio.d.ts +5 -0
  240. package/x/features/speech/transcribe/parts/prep-audio.js +21 -0
  241. package/x/features/speech/transcribe/parts/prep-audio.js.map +1 -0
  242. package/x/features/speech/transcribe/parts/transcribe.d.ts +5 -0
  243. package/x/features/speech/transcribe/parts/transcribe.js +56 -0
  244. package/x/features/speech/transcribe/parts/transcribe.js.map +1 -0
  245. package/x/features/speech/transcribe/transcriber.d.ts +5 -0
  246. package/x/features/speech/transcribe/transcriber.js +33 -0
  247. package/x/features/speech/transcribe/transcriber.js.map +1 -0
  248. package/x/features/speech/transcribe/types.d.ts +59 -0
  249. package/x/features/speech/transcribe/types.js +2 -0
  250. package/x/features/speech/transcribe/types.js.map +1 -0
  251. package/x/features/speech/transcribe/worker.bundle.js +35 -0
  252. package/x/features/speech/transcribe/worker.bundle.js.map +1 -0
  253. package/x/features/speech/transcribe/worker.bundle.min.js +2916 -0
  254. package/x/features/speech/transcribe/worker.bundle.min.js.map +7 -0
  255. package/x/features/transition/parts/fragment.d.ts +1 -0
  256. package/x/features/transition/parts/fragment.js +25 -0
  257. package/x/features/transition/parts/fragment.js.map +1 -0
  258. package/x/features/transition/parts/types.d.ts +23 -0
  259. package/x/features/transition/parts/types.js +2 -0
  260. package/x/features/transition/parts/types.js.map +1 -0
  261. package/x/features/transition/parts/uniforms.d.ts +31 -0
  262. package/x/features/transition/parts/uniforms.js +27 -0
  263. package/x/features/transition/parts/uniforms.js.map +1 -0
  264. package/x/features/transition/parts/vertex.d.ts +1 -0
  265. package/x/features/transition/parts/vertex.js +32 -0
  266. package/x/features/transition/parts/vertex.js.map +1 -0
  267. package/x/features/transition/transition.d.ts +5 -0
  268. package/x/features/transition/transition.js +50 -0
  269. package/x/features/transition/transition.js.map +1 -0
  270. package/x/index.d.ts +1 -0
  271. package/x/index.html +349 -30
  272. package/x/index.html.js +103 -19
  273. package/x/index.html.js.map +1 -1
  274. package/x/index.js +1 -0
  275. package/x/index.js.map +1 -1
  276. package/x/tests.bundle.d.ts +1 -0
  277. package/x/tests.bundle.js +8 -0
  278. package/x/tests.bundle.js.map +1 -0
  279. package/x/tests.bundle.min.js +7374 -0
  280. package/x/tests.bundle.min.js.map +7 -0
  281. package/x/tests.html +316 -0
  282. package/x/tests.html.d.ts +2 -0
  283. package/x/tests.html.js +22 -0
  284. package/x/tests.html.js.map +1 -0
  285. package/x/timeline/index.d.ts +16 -0
  286. package/x/timeline/index.js +16 -0
  287. package/x/timeline/index.js.map +1 -1
  288. package/x/timeline/parts/animations/make.d.ts +3 -0
  289. package/x/timeline/parts/animations/make.js +29 -0
  290. package/x/timeline/parts/animations/make.js.map +1 -0
  291. package/x/timeline/parts/animations/presets.d.ts +170 -0
  292. package/x/timeline/parts/animations/presets.js +135 -0
  293. package/x/timeline/parts/animations/presets.js.map +1 -0
  294. package/x/timeline/parts/animations/properties.d.ts +84 -0
  295. package/x/timeline/parts/animations/properties.js +25 -0
  296. package/x/timeline/parts/animations/properties.js.map +1 -0
  297. package/x/timeline/parts/animations/registry.d.ts +218 -0
  298. package/x/timeline/parts/animations/registry.js +11 -0
  299. package/x/timeline/parts/animations/registry.js.map +1 -0
  300. package/x/timeline/parts/animations/types.d.ts +60 -0
  301. package/x/timeline/parts/animations/types.js +2 -0
  302. package/x/timeline/parts/animations/types.js.map +1 -0
  303. package/x/timeline/parts/basics.d.ts +1 -1
  304. package/x/timeline/parts/captions.d.ts +41 -0
  305. package/x/timeline/parts/captions.js +55 -0
  306. package/x/timeline/parts/captions.js.map +1 -0
  307. package/x/timeline/parts/filmstrip.d.ts +4 -3
  308. package/x/timeline/parts/filmstrip.js +29 -10
  309. package/x/timeline/parts/filmstrip.js.map +1 -1
  310. package/x/timeline/parts/filters.d.ts +108 -0
  311. package/x/timeline/parts/filters.js +340 -0
  312. package/x/timeline/parts/filters.js.map +1 -0
  313. package/x/timeline/parts/item.d.ts +106 -12
  314. package/x/timeline/parts/item.js +11 -7
  315. package/x/timeline/parts/item.js.map +1 -1
  316. package/x/timeline/parts/media.d.ts +6 -0
  317. package/x/timeline/parts/media.js +35 -1
  318. package/x/timeline/parts/media.js.map +1 -1
  319. package/x/timeline/parts/resource-pool.d.ts +3 -0
  320. package/x/timeline/parts/resource-pool.js +7 -4
  321. package/x/timeline/parts/resource-pool.js.map +1 -1
  322. package/x/timeline/parts/resource.d.ts +3 -0
  323. package/x/timeline/parts/transitions.d.ts +15 -0
  324. package/x/timeline/parts/transitions.js +81 -0
  325. package/x/timeline/parts/transitions.js.map +1 -0
  326. package/x/timeline/parts/waveform/parts/collect.d.ts +11 -0
  327. package/x/timeline/parts/waveform/parts/collect.js +56 -0
  328. package/x/timeline/parts/waveform/parts/collect.js.map +1 -0
  329. package/x/timeline/parts/waveform/parts/render.d.ts +5 -0
  330. package/x/timeline/parts/waveform/parts/render.js +29 -0
  331. package/x/timeline/parts/waveform/parts/render.js.map +1 -0
  332. package/x/timeline/parts/waveform/parts/types.d.ts +21 -0
  333. package/x/timeline/parts/waveform/parts/types.js +2 -0
  334. package/x/timeline/parts/waveform/parts/types.js.map +1 -0
  335. package/x/timeline/parts/waveform/waveform.d.ts +19 -0
  336. package/x/timeline/parts/waveform/waveform.js +133 -0
  337. package/x/timeline/parts/waveform/waveform.js.map +1 -0
  338. package/x/timeline/renderers/export/parts/audio-gain.d.ts +1 -0
  339. package/x/timeline/renderers/export/parts/audio-gain.js +13 -0
  340. package/x/timeline/renderers/export/parts/audio-gain.js.map +1 -0
  341. package/x/timeline/renderers/export/parts/audio-mix.d.ts +21 -0
  342. package/x/timeline/renderers/export/parts/audio-mix.js +89 -0
  343. package/x/timeline/renderers/export/parts/audio-mix.js.map +1 -0
  344. package/x/timeline/renderers/export/parts/cursor.d.ts +35 -0
  345. package/x/timeline/renderers/export/parts/cursor.js +236 -0
  346. package/x/timeline/renderers/export/parts/cursor.js.map +1 -0
  347. package/x/timeline/renderers/export/parts/produce-audio.d.ts +6 -0
  348. package/x/timeline/renderers/export/parts/produce-audio.js +41 -0
  349. package/x/timeline/renderers/export/parts/produce-audio.js.map +1 -0
  350. package/x/timeline/renderers/export/parts/produce-video.d.ts +10 -0
  351. package/x/timeline/renderers/export/parts/produce-video.js +26 -0
  352. package/x/timeline/renderers/export/parts/produce-video.js.map +1 -0
  353. package/x/timeline/renderers/export/parts/resamplers.d.ts +12 -0
  354. package/x/timeline/renderers/export/parts/resamplers.js +29 -0
  355. package/x/timeline/renderers/export/parts/resamplers.js.map +1 -0
  356. package/x/timeline/renderers/export/produce.d.ts +13 -0
  357. package/x/timeline/renderers/export/produce.js +15 -0
  358. package/x/timeline/renderers/export/produce.js.map +1 -0
  359. package/x/timeline/renderers/parts/handy.d.ts +38 -0
  360. package/x/timeline/renderers/parts/handy.js +263 -0
  361. package/x/timeline/renderers/parts/handy.js.map +1 -0
  362. package/x/timeline/renderers/parts/samplers/audio/parts/find.d.ts +6 -0
  363. package/x/timeline/renderers/parts/samplers/audio/parts/find.js +15 -0
  364. package/x/timeline/renderers/parts/samplers/audio/parts/find.js.map +1 -0
  365. package/x/timeline/renderers/parts/samplers/audio/parts/init.d.ts +5 -0
  366. package/x/timeline/renderers/parts/samplers/audio/parts/init.js +40 -0
  367. package/x/timeline/renderers/parts/samplers/audio/parts/init.js.map +1 -0
  368. package/x/timeline/renderers/parts/samplers/audio/parts/sink.d.ts +8 -0
  369. package/x/timeline/renderers/parts/samplers/audio/parts/sink.js +24 -0
  370. package/x/timeline/renderers/parts/samplers/audio/parts/sink.js.map +1 -0
  371. package/x/timeline/renderers/parts/samplers/audio/parts/types.d.ts +14 -0
  372. package/x/timeline/renderers/parts/samplers/audio/parts/types.js +2 -0
  373. package/x/timeline/renderers/parts/samplers/audio/parts/types.js.map +1 -0
  374. package/x/timeline/renderers/parts/samplers/audio/sampler.d.ts +11 -0
  375. package/x/timeline/renderers/parts/samplers/audio/sampler.js +22 -0
  376. package/x/timeline/renderers/parts/samplers/audio/sampler.js.map +1 -0
  377. package/x/timeline/renderers/parts/samplers/visual/parts/defaults.d.ts +8 -0
  378. package/x/timeline/renderers/parts/samplers/visual/parts/defaults.js +14 -0
  379. package/x/timeline/renderers/parts/samplers/visual/parts/defaults.js.map +1 -0
  380. package/x/timeline/renderers/parts/samplers/visual/parts/image-sink.d.ts +11 -0
  381. package/x/timeline/renderers/parts/samplers/visual/parts/image-sink.js +36 -0
  382. package/x/timeline/renderers/parts/samplers/visual/parts/image-sink.js.map +1 -0
  383. package/x/timeline/renderers/parts/samplers/visual/parts/sample.d.ts +9 -0
  384. package/x/timeline/renderers/parts/samplers/visual/parts/sample.js +70 -0
  385. package/x/timeline/renderers/parts/samplers/visual/parts/sample.js.map +1 -0
  386. package/x/timeline/renderers/parts/samplers/visual/parts/sequence.d.ts +6 -0
  387. package/x/timeline/renderers/parts/samplers/visual/parts/sequence.js +63 -0
  388. package/x/timeline/renderers/parts/samplers/visual/parts/sequence.js.map +1 -0
  389. package/x/timeline/renderers/parts/samplers/visual/parts/transition.d.ts +3 -0
  390. package/x/timeline/renderers/parts/samplers/visual/parts/transition.js +18 -0
  391. package/x/timeline/renderers/parts/samplers/visual/parts/transition.js.map +1 -0
  392. package/x/timeline/renderers/parts/samplers/visual/parts/types.d.ts +9 -0
  393. package/x/timeline/renderers/parts/samplers/visual/parts/types.js +2 -0
  394. package/x/timeline/renderers/parts/samplers/visual/parts/types.js.map +1 -0
  395. package/x/timeline/renderers/parts/samplers/visual/parts/video-sink.d.ts +8 -0
  396. package/x/timeline/renderers/parts/samplers/visual/parts/video-sink.js +24 -0
  397. package/x/timeline/renderers/parts/samplers/visual/parts/video-sink.js.map +1 -0
  398. package/x/timeline/renderers/parts/samplers/visual/sampler.d.ts +7 -0
  399. package/x/timeline/renderers/parts/samplers/visual/sampler.js +20 -0
  400. package/x/timeline/renderers/parts/samplers/visual/sampler.js.map +1 -0
  401. package/x/timeline/renderers/parts/schedulers.d.ts +17 -0
  402. package/x/timeline/renderers/parts/schedulers.js +64 -0
  403. package/x/timeline/renderers/parts/schedulers.js.map +1 -0
  404. package/x/timeline/renderers/player/parts/playback.d.ts +39 -0
  405. package/x/timeline/renderers/player/parts/playback.js +160 -0
  406. package/x/timeline/renderers/player/parts/playback.js.map +1 -0
  407. package/x/timeline/renderers/player/player.d.ts +27 -0
  408. package/x/timeline/renderers/player/player.js +64 -0
  409. package/x/timeline/renderers/player/player.js.map +1 -0
  410. package/x/timeline/renderers/renderers.test.d.ts +33 -0
  411. package/x/timeline/renderers/renderers.test.js +321 -0
  412. package/x/timeline/renderers/renderers.test.js.map +1 -0
  413. package/x/timeline/sugar/helpers.d.ts +72 -0
  414. package/x/timeline/sugar/helpers.js +122 -0
  415. package/x/timeline/sugar/helpers.js.map +1 -0
  416. package/x/timeline/sugar/o.d.ts +59 -8
  417. package/x/timeline/sugar/o.js +326 -40
  418. package/x/timeline/sugar/o.js.map +1 -1
  419. package/x/timeline/sugar/omni.d.ts +11 -2
  420. package/x/timeline/sugar/omni.js +30 -9
  421. package/x/timeline/sugar/omni.js.map +1 -1
  422. package/x/timeline/sugar/omni.test.d.ts +27 -0
  423. package/x/timeline/sugar/omni.test.js +128 -0
  424. package/x/timeline/sugar/omni.test.js.map +1 -0
  425. package/x/timeline/types.d.ts +37 -0
  426. package/x/timeline/types.js +2 -0
  427. package/x/timeline/types.js.map +1 -0
  428. package/x/timeline/utils/anim.d.ts +3 -0
  429. package/x/timeline/utils/anim.js +40 -0
  430. package/x/timeline/utils/anim.js.map +1 -0
  431. package/x/timeline/utils/checksum.d.ts +3 -2
  432. package/x/timeline/utils/checksum.js +2 -1
  433. package/x/timeline/utils/checksum.js.map +1 -1
  434. package/x/timeline/utils/datafile.d.ts +5 -3
  435. package/x/timeline/utils/datafile.js +18 -5
  436. package/x/timeline/utils/datafile.js.map +1 -1
  437. package/x/timeline/utils/dummy-data.d.ts +1 -2
  438. package/x/timeline/utils/dummy-data.js +4 -2
  439. package/x/timeline/utils/dummy-data.js.map +1 -1
  440. package/x/timeline/utils/matrix.d.ts +17 -0
  441. package/x/timeline/utils/matrix.js +36 -0
  442. package/x/timeline/utils/matrix.js.map +1 -0
  443. package/x/timeline/utils/terps.d.ts +11 -0
  444. package/x/timeline/utils/terps.js +57 -0
  445. package/x/timeline/utils/terps.js.map +1 -0
  446. package/x/units/fps.d.ts +6 -0
  447. package/x/units/fps.js +2 -0
  448. package/x/units/fps.js.map +1 -0
  449. package/x/units/ms.d.ts +6 -0
  450. package/x/units/ms.js +2 -0
  451. package/x/units/ms.js.map +1 -0
  452. package/x/units/seconds.d.ts +6 -0
  453. package/x/units/seconds.js +2 -0
  454. package/x/units/seconds.js.map +1 -0
  455. package/x/webworkerAll-RLCTMSDD.js +2 -0
  456. package/x/webworkerAll-RLCTMSDD.js.map +7 -0
  457. package/s/tests.test.ts +0 -8
  458. package/s/timeline/parts/waveform.ts +0 -62
  459. package/s/timeline/sugar/omni-test.ts +0 -38
  460. package/x/tests.test.js +0 -6
  461. package/x/tests.test.js.map +0 -1
  462. package/x/timeline/parts/waveform.d.ts +0 -8
  463. package/x/timeline/parts/waveform.js +0 -51
  464. package/x/timeline/parts/waveform.js.map +0 -1
  465. package/x/timeline/sugar/omni-test.js +0 -22
  466. package/x/timeline/sugar/omni-test.js.map +0 -1
  467. /package/x/{tests.test.d.ts → features/bg-remover/worker.bundle.d.ts} +0 -0
  468. /package/x/{timeline/sugar/omni-test.d.ts → features/speech/transcribe/worker.bundle.d.ts} +0 -0
@@ -1,1142 +1,142 @@
1
- var VE=Object.create;var vh=Object.defineProperty;var HE=Object.getOwnPropertyDescriptor;var WE=Object.getOwnPropertyNames;var $E=Object.getPrototypeOf,qE=Object.prototype.hasOwnProperty;var p=(r,e)=>()=>(r&&(e=r(r=0)),e);var Fr=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),Tg=(r,e)=>{for(var t in e)vh(r,t,{get:e[t],enumerable:!0})},jE=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of WE(e))!qE.call(r,s)&&s!==t&&vh(r,s,{get:()=>e[s],enumerable:!(i=HE(e,s))||i.enumerable});return r};var Ch=(r,e,t)=>(t=r!=null?VE($E(r)):{},jE(e||!r||!r.__esModule?vh(t,"default",{value:r,enumerable:!0}):t,r));var b,Td,mu,O,B=p(()=>{"use strict";b=(r=>(r.Application="application",r.WebGLPipes="webgl-pipes",r.WebGLPipesAdaptor="webgl-pipes-adaptor",r.WebGLSystem="webgl-system",r.WebGPUPipes="webgpu-pipes",r.WebGPUPipesAdaptor="webgpu-pipes-adaptor",r.WebGPUSystem="webgpu-system",r.CanvasSystem="canvas-system",r.CanvasPipesAdaptor="canvas-pipes-adaptor",r.CanvasPipes="canvas-pipes",r.Asset="asset",r.LoadParser="load-parser",r.ResolveParser="resolve-parser",r.CacheParser="cache-parser",r.DetectionParser="detection-parser",r.MaskEffect="mask-effect",r.BlendMode="blend-mode",r.TextureSource="texture-source",r.Environment="environment",r.ShapeBuilder="shape-builder",r.Batcher="batcher",r))(b||{}),Td=r=>{if(typeof r=="function"||typeof r=="object"&&r.extension){if(!r.extension)throw new Error("Extension class must have an extension object");r={...typeof r.extension!="object"?{type:r.extension}:r.extension,ref:r}}if(typeof r=="object")r={...r};else throw new Error("Invalid extension type");return typeof r.type=="string"&&(r.type=[r.type]),r},mu=(r,e)=>Td(r).priority??e,O={_addHandlers:{},_removeHandlers:{},_queue:{},remove(...r){return r.map(Td).forEach(e=>{e.type.forEach(t=>this._removeHandlers[t]?.(e))}),this},add(...r){return r.map(Td).forEach(e=>{e.type.forEach(t=>{let i=this._addHandlers,s=this._queue;i[t]?i[t]?.(e):(s[t]=s[t]||[],s[t]?.push(e))})}),this},handle(r,e,t){let i=this._addHandlers,s=this._removeHandlers;if(i[r]||s[r])throw new Error(`Extension type ${r} already has a handler`);i[r]=e,s[r]=t;let n=this._queue;return n[r]&&(n[r]?.forEach(o=>e(o)),delete n[r]),this},handleByMap(r,e){return this.handle(r,t=>{t.name&&(e[t.name]=t.ref)},t=>{t.name&&delete e[t.name]})},handleByNamedList(r,e,t=-1){return this.handle(r,i=>{e.findIndex(n=>n.name===i.name)>=0||(e.push({name:i.name,value:i.ref}),e.sort((n,o)=>mu(o.value,t)-mu(n.value,t)))},i=>{let s=e.findIndex(n=>n.name===i.name);s!==-1&&e.splice(s,1)})},handleByList(r,e,t=-1){return this.handle(r,i=>{e.includes(i.ref)||(e.push(i.ref),e.sort((s,n)=>mu(n,t)-mu(s,t)))},i=>{let s=e.indexOf(i.ref);s!==-1&&e.splice(s,1)})},mixin(r,...e){for(let t of e)Object.defineProperties(r.prototype,Object.getOwnPropertyDescriptors(t))}}});var m0=Fr((T8,wd)=>{"use strict";var zA=Object.prototype.hasOwnProperty,Je="~";function oo(){}Object.create&&(oo.prototype=Object.create(null),new oo().__proto__||(Je=!1));function VA(r,e,t){this.fn=r,this.context=e,this.once=t||!1}function f0(r,e,t,i,s){if(typeof t!="function")throw new TypeError("The listener must be a function");var n=new VA(t,i||r,s),o=Je?Je+e:e;return r._events[o]?r._events[o].fn?r._events[o]=[r._events[o],n]:r._events[o].push(n):(r._events[o]=n,r._eventsCount++),r}function pu(r,e){--r._eventsCount===0?r._events=new oo:delete r._events[e]}function qe(){this._events=new oo,this._eventsCount=0}qe.prototype.eventNames=function(){var e=[],t,i;if(this._eventsCount===0)return e;for(i in t=this._events)zA.call(t,i)&&e.push(Je?i.slice(1):i);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e};qe.prototype.listeners=function(e){var t=Je?Je+e:e,i=this._events[t];if(!i)return[];if(i.fn)return[i.fn];for(var s=0,n=i.length,o=new Array(n);s<n;s++)o[s]=i[s].fn;return o};qe.prototype.listenerCount=function(e){var t=Je?Je+e:e,i=this._events[t];return i?i.fn?1:i.length:0};qe.prototype.emit=function(e,t,i,s,n,o){var a=Je?Je+e:e;if(!this._events[a])return!1;var c=this._events[a],u=arguments.length,l,h;if(c.fn){switch(c.once&&this.removeListener(e,c.fn,void 0,!0),u){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,t),!0;case 3:return c.fn.call(c.context,t,i),!0;case 4:return c.fn.call(c.context,t,i,s),!0;case 5:return c.fn.call(c.context,t,i,s,n),!0;case 6:return c.fn.call(c.context,t,i,s,n,o),!0}for(h=1,l=new Array(u-1);h<u;h++)l[h-1]=arguments[h];c.fn.apply(c.context,l)}else{var f=c.length,d;for(h=0;h<f;h++)switch(c[h].once&&this.removeListener(e,c[h].fn,void 0,!0),u){case 1:c[h].fn.call(c[h].context);break;case 2:c[h].fn.call(c[h].context,t);break;case 3:c[h].fn.call(c[h].context,t,i);break;case 4:c[h].fn.call(c[h].context,t,i,s);break;default:if(!l)for(d=1,l=new Array(u-1);d<u;d++)l[d-1]=arguments[d];c[h].fn.apply(c[h].context,l)}}return!0};qe.prototype.on=function(e,t,i){return f0(this,e,t,i,!1)};qe.prototype.once=function(e,t,i){return f0(this,e,t,i,!0)};qe.prototype.removeListener=function(e,t,i,s){var n=Je?Je+e:e;if(!this._events[n])return this;if(!t)return pu(this,n),this;var o=this._events[n];if(o.fn)o.fn===t&&(!s||o.once)&&(!i||o.context===i)&&pu(this,n);else{for(var a=0,c=[],u=o.length;a<u;a++)(o[a].fn!==t||s&&!o[a].once||i&&o[a].context!==i)&&c.push(o[a]);c.length?this._events[n]=c.length===1?c[0]:c:pu(this,n)}return this};qe.prototype.removeAllListeners=function(e){var t;return e?(t=Je?Je+e:e,this._events[t]&&pu(this,t)):(this._events=new oo,this._eventsCount=0),this};qe.prototype.off=qe.prototype.removeListener;qe.prototype.addListener=qe.prototype.on;qe.prefixed=Je;qe.EventEmitter=qe;typeof wd<"u"&&(wd.exports=qe)});var p0,oe,Ve=p(()=>{p0=Ch(m0(),1),oe=p0.default});var HA,_r,Ue,kt,S0,g0,Sd,WA,gu,v0,C0,x0,_0,b0,ao,$A,qA,jA,XA,Ed,y0,YA,vd,Cd,T0,kd,It,w0,E0,k0=p(()=>{HA={grad:.9,turn:360,rad:360/(2*Math.PI)},_r=function(r){return typeof r=="string"?r.length>0:typeof r=="number"},Ue=function(r,e,t){return e===void 0&&(e=0),t===void 0&&(t=Math.pow(10,e)),Math.round(t*r)/t+0},kt=function(r,e,t){return e===void 0&&(e=0),t===void 0&&(t=1),r>t?t:r>e?r:e},S0=function(r){return(r=isFinite(r)?r%360:0)>0?r:r+360},g0=function(r){return{r:kt(r.r,0,255),g:kt(r.g,0,255),b:kt(r.b,0,255),a:kt(r.a)}},Sd=function(r){return{r:Ue(r.r),g:Ue(r.g),b:Ue(r.b),a:Ue(r.a,3)}},WA=/^#([0-9a-f]{3,8})$/i,gu=function(r){var e=r.toString(16);return e.length<2?"0"+e:e},v0=function(r){var e=r.r,t=r.g,i=r.b,s=r.a,n=Math.max(e,t,i),o=n-Math.min(e,t,i),a=o?n===e?(t-i)/o:n===t?2+(i-e)/o:4+(e-t)/o:0;return{h:60*(a<0?a+6:a),s:n?o/n*100:0,v:n/255*100,a:s}},C0=function(r){var e=r.h,t=r.s,i=r.v,s=r.a;e=e/360*6,t/=100,i/=100;var n=Math.floor(e),o=i*(1-t),a=i*(1-(e-n)*t),c=i*(1-(1-e+n)*t),u=n%6;return{r:255*[i,a,o,o,c,i][u],g:255*[c,i,i,a,o,o][u],b:255*[o,o,c,i,i,a][u],a:s}},x0=function(r){return{h:S0(r.h),s:kt(r.s,0,100),l:kt(r.l,0,100),a:kt(r.a)}},_0=function(r){return{h:Ue(r.h),s:Ue(r.s),l:Ue(r.l),a:Ue(r.a,3)}},b0=function(r){return C0((t=(e=r).s,{h:e.h,s:(t*=((i=e.l)<50?i:100-i)/100)>0?2*t/(i+t)*100:0,v:i+t,a:e.a}));var e,t,i},ao=function(r){return{h:(e=v0(r)).h,s:(s=(200-(t=e.s))*(i=e.v)/100)>0&&s<200?t*i/100/(s<=100?s:200-s)*100:0,l:s/2,a:e.a};var e,t,i,s},$A=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,qA=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,jA=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,XA=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Ed={string:[[function(r){var e=WA.exec(r);return e?(r=e[1]).length<=4?{r:parseInt(r[0]+r[0],16),g:parseInt(r[1]+r[1],16),b:parseInt(r[2]+r[2],16),a:r.length===4?Ue(parseInt(r[3]+r[3],16)/255,2):1}:r.length===6||r.length===8?{r:parseInt(r.substr(0,2),16),g:parseInt(r.substr(2,2),16),b:parseInt(r.substr(4,2),16),a:r.length===8?Ue(parseInt(r.substr(6,2),16)/255,2):1}:null:null},"hex"],[function(r){var e=jA.exec(r)||XA.exec(r);return e?e[2]!==e[4]||e[4]!==e[6]?null:g0({r:Number(e[1])/(e[2]?100/255:1),g:Number(e[3])/(e[4]?100/255:1),b:Number(e[5])/(e[6]?100/255:1),a:e[7]===void 0?1:Number(e[7])/(e[8]?100:1)}):null},"rgb"],[function(r){var e=$A.exec(r)||qA.exec(r);if(!e)return null;var t,i,s=x0({h:(t=e[1],i=e[2],i===void 0&&(i="deg"),Number(t)*(HA[i]||1)),s:Number(e[3]),l:Number(e[4]),a:e[5]===void 0?1:Number(e[5])/(e[6]?100:1)});return b0(s)},"hsl"]],object:[[function(r){var e=r.r,t=r.g,i=r.b,s=r.a,n=s===void 0?1:s;return _r(e)&&_r(t)&&_r(i)?g0({r:Number(e),g:Number(t),b:Number(i),a:Number(n)}):null},"rgb"],[function(r){var e=r.h,t=r.s,i=r.l,s=r.a,n=s===void 0?1:s;if(!_r(e)||!_r(t)||!_r(i))return null;var o=x0({h:Number(e),s:Number(t),l:Number(i),a:Number(n)});return b0(o)},"hsl"],[function(r){var e=r.h,t=r.s,i=r.v,s=r.a,n=s===void 0?1:s;if(!_r(e)||!_r(t)||!_r(i))return null;var o=function(a){return{h:S0(a.h),s:kt(a.s,0,100),v:kt(a.v,0,100),a:kt(a.a)}}({h:Number(e),s:Number(t),v:Number(i),a:Number(n)});return C0(o)},"hsv"]]},y0=function(r,e){for(var t=0;t<e.length;t++){var i=e[t][0](r);if(i)return[i,e[t][1]]}return[null,void 0]},YA=function(r){return typeof r=="string"?y0(r.trim(),Ed.string):typeof r=="object"&&r!==null?y0(r,Ed.object):[null,void 0]},vd=function(r,e){var t=ao(r);return{h:t.h,s:kt(t.s+100*e,0,100),l:t.l,a:t.a}},Cd=function(r){return(299*r.r+587*r.g+114*r.b)/1e3/255},T0=function(r,e){var t=ao(r);return{h:t.h,s:t.s,l:kt(t.l+100*e,0,100),a:t.a}},kd=function(){function r(e){this.parsed=YA(e)[0],this.rgba=this.parsed||{r:0,g:0,b:0,a:1}}return r.prototype.isValid=function(){return this.parsed!==null},r.prototype.brightness=function(){return Ue(Cd(this.rgba),2)},r.prototype.isDark=function(){return Cd(this.rgba)<.5},r.prototype.isLight=function(){return Cd(this.rgba)>=.5},r.prototype.toHex=function(){return e=Sd(this.rgba),t=e.r,i=e.g,s=e.b,o=(n=e.a)<1?gu(Ue(255*n)):"","#"+gu(t)+gu(i)+gu(s)+o;var e,t,i,s,n,o},r.prototype.toRgb=function(){return Sd(this.rgba)},r.prototype.toRgbString=function(){return e=Sd(this.rgba),t=e.r,i=e.g,s=e.b,(n=e.a)<1?"rgba("+t+", "+i+", "+s+", "+n+")":"rgb("+t+", "+i+", "+s+")";var e,t,i,s,n},r.prototype.toHsl=function(){return _0(ao(this.rgba))},r.prototype.toHslString=function(){return e=_0(ao(this.rgba)),t=e.h,i=e.s,s=e.l,(n=e.a)<1?"hsla("+t+", "+i+"%, "+s+"%, "+n+")":"hsl("+t+", "+i+"%, "+s+"%)";var e,t,i,s,n},r.prototype.toHsv=function(){return e=v0(this.rgba),{h:Ue(e.h),s:Ue(e.s),v:Ue(e.v),a:Ue(e.a,3)};var e},r.prototype.invert=function(){return It({r:255-(e=this.rgba).r,g:255-e.g,b:255-e.b,a:e.a});var e},r.prototype.saturate=function(e){return e===void 0&&(e=.1),It(vd(this.rgba,e))},r.prototype.desaturate=function(e){return e===void 0&&(e=.1),It(vd(this.rgba,-e))},r.prototype.grayscale=function(){return It(vd(this.rgba,-1))},r.prototype.lighten=function(e){return e===void 0&&(e=.1),It(T0(this.rgba,e))},r.prototype.darken=function(e){return e===void 0&&(e=.1),It(T0(this.rgba,-e))},r.prototype.rotate=function(e){return e===void 0&&(e=15),this.hue(this.hue()+e)},r.prototype.alpha=function(e){return typeof e=="number"?It({r:(t=this.rgba).r,g:t.g,b:t.b,a:e}):Ue(this.rgba.a,3);var t},r.prototype.hue=function(e){var t=ao(this.rgba);return typeof e=="number"?It({h:e,s:t.s,l:t.l,a:t.a}):Ue(t.h)},r.prototype.isEqual=function(e){return this.toHex()===It(e).toHex()},r}(),It=function(r){return r instanceof kd?r:new kd(r)},w0=[],E0=function(r){r.forEach(function(e){w0.indexOf(e)<0&&(e(kd,Ed),w0.push(e))})}});function A0(r,e){var t={white:"#ffffff",bisque:"#ffe4c4",blue:"#0000ff",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",antiquewhite:"#faebd7",aqua:"#00ffff",azure:"#f0ffff",whitesmoke:"#f5f5f5",papayawhip:"#ffefd5",plum:"#dda0dd",blanchedalmond:"#ffebcd",black:"#000000",gold:"#ffd700",goldenrod:"#daa520",gainsboro:"#dcdcdc",cornsilk:"#fff8dc",cornflowerblue:"#6495ed",burlywood:"#deb887",aquamarine:"#7fffd4",beige:"#f5f5dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkkhaki:"#bdb76b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",peachpuff:"#ffdab9",darkmagenta:"#8b008b",darkred:"#8b0000",darkorchid:"#9932cc",darkorange:"#ff8c00",darkslateblue:"#483d8b",gray:"#808080",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",deeppink:"#ff1493",deepskyblue:"#00bfff",wheat:"#f5deb3",firebrick:"#b22222",floralwhite:"#fffaf0",ghostwhite:"#f8f8ff",darkviolet:"#9400d3",magenta:"#ff00ff",green:"#008000",dodgerblue:"#1e90ff",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",blueviolet:"#8a2be2",forestgreen:"#228b22",lawngreen:"#7cfc00",indianred:"#cd5c5c",indigo:"#4b0082",fuchsia:"#ff00ff",brown:"#a52a2a",maroon:"#800000",mediumblue:"#0000cd",lightcoral:"#f08080",darkturquoise:"#00ced1",lightcyan:"#e0ffff",ivory:"#fffff0",lightyellow:"#ffffe0",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",linen:"#faf0e6",mediumaquamarine:"#66cdaa",lemonchiffon:"#fffacd",lime:"#00ff00",khaki:"#f0e68c",mediumseagreen:"#3cb371",limegreen:"#32cd32",mediumspringgreen:"#00fa9a",lightskyblue:"#87cefa",lightblue:"#add8e6",midnightblue:"#191970",lightpink:"#ffb6c1",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",mintcream:"#f5fffa",lightslategray:"#778899",lightslategrey:"#778899",navajowhite:"#ffdead",navy:"#000080",mediumvioletred:"#c71585",powderblue:"#b0e0e6",palegoldenrod:"#eee8aa",oldlace:"#fdf5e6",paleturquoise:"#afeeee",mediumturquoise:"#48d1cc",mediumorchid:"#ba55d3",rebeccapurple:"#663399",lightsteelblue:"#b0c4de",mediumslateblue:"#7b68ee",thistle:"#d8bfd8",tan:"#d2b48c",orchid:"#da70d6",mediumpurple:"#9370db",purple:"#800080",pink:"#ffc0cb",skyblue:"#87ceeb",springgreen:"#00ff7f",palegreen:"#98fb98",red:"#ff0000",yellow:"#ffff00",slateblue:"#6a5acd",lavenderblush:"#fff0f5",peru:"#cd853f",palevioletred:"#db7093",violet:"#ee82ee",teal:"#008080",slategray:"#708090",slategrey:"#708090",aliceblue:"#f0f8ff",darkseagreen:"#8fbc8f",darkolivegreen:"#556b2f",greenyellow:"#adff2f",seagreen:"#2e8b57",seashell:"#fff5ee",tomato:"#ff6347",silver:"#c0c0c0",sienna:"#a0522d",lavender:"#e6e6fa",lightgreen:"#90ee90",orange:"#ffa500",orangered:"#ff4500",steelblue:"#4682b4",royalblue:"#4169e1",turquoise:"#40e0d0",yellowgreen:"#9acd32",salmon:"#fa8072",saddlebrown:"#8b4513",sandybrown:"#f4a460",rosybrown:"#bc8f8f",darksalmon:"#e9967a",lightgoldenrodyellow:"#fafad2",snow:"#fffafa",lightgrey:"#d3d3d3",lightgray:"#d3d3d3",dimgray:"#696969",dimgrey:"#696969",olivedrab:"#6b8e23",olive:"#808000"},i={};for(var s in t)i[t[s]]=s;var n={};r.prototype.toName=function(o){if(!(this.rgba.a||this.rgba.r||this.rgba.g||this.rgba.b))return"transparent";var a,c,u=i[this.toHex()];if(u)return u;if(o?.closest){var l=this.toRgb(),h=1/0,f="black";if(!n.length)for(var d in t)n[d]=new r(t[d]).toRgb();for(var m in t){var x=(a=l,c=n[m],Math.pow(a.r-c.r,2)+Math.pow(a.g-c.g,2)+Math.pow(a.b-c.b,2));x<h&&(h=x,f=m)}return f}},e.string.push([function(o){var a=o.toLowerCase(),c=a==="transparent"?"#0000":t[a];return c?new r(c).toRgb():null},"name"])}var P0=p(()=>{});var Cs,q,He=p(()=>{k0();P0();E0([A0]);Cs=class co{constructor(e=16777215){this._value=null,this._components=new Float32Array(4),this._components.fill(1),this._int=16777215,this.value=e}get red(){return this._components[0]}get green(){return this._components[1]}get blue(){return this._components[2]}get alpha(){return this._components[3]}setValue(e){return this.value=e,this}set value(e){if(e instanceof co)this._value=this._cloneSource(e._value),this._int=e._int,this._components.set(e._components);else{if(e===null)throw new Error("Cannot set Color#value to null");(this._value===null||!this._isSourceEqual(this._value,e))&&(this._value=this._cloneSource(e),this._normalize(this._value))}}get value(){return this._value}_cloneSource(e){return typeof e=="string"||typeof e=="number"||e instanceof Number||e===null?e:Array.isArray(e)||ArrayBuffer.isView(e)?e.slice(0):typeof e=="object"&&e!==null?{...e}:e}_isSourceEqual(e,t){let i=typeof e;if(i!==typeof t)return!1;if(i==="number"||i==="string"||e instanceof Number)return e===t;if(Array.isArray(e)&&Array.isArray(t)||ArrayBuffer.isView(e)&&ArrayBuffer.isView(t))return e.length!==t.length?!1:e.every((n,o)=>n===t[o]);if(e!==null&&t!==null){let n=Object.keys(e),o=Object.keys(t);return n.length!==o.length?!1:n.every(a=>e[a]===t[a])}return e===t}toRgba(){let[e,t,i,s]=this._components;return{r:e,g:t,b:i,a:s}}toRgb(){let[e,t,i]=this._components;return{r:e,g:t,b:i}}toRgbaString(){let[e,t,i]=this.toUint8RgbArray();return`rgba(${e},${t},${i},${this.alpha})`}toUint8RgbArray(e){let[t,i,s]=this._components;return this._arrayRgb||(this._arrayRgb=[]),e||(e=this._arrayRgb),e[0]=Math.round(t*255),e[1]=Math.round(i*255),e[2]=Math.round(s*255),e}toArray(e){this._arrayRgba||(this._arrayRgba=[]),e||(e=this._arrayRgba);let[t,i,s,n]=this._components;return e[0]=t,e[1]=i,e[2]=s,e[3]=n,e}toRgbArray(e){this._arrayRgb||(this._arrayRgb=[]),e||(e=this._arrayRgb);let[t,i,s]=this._components;return e[0]=t,e[1]=i,e[2]=s,e}toNumber(){return this._int}toBgrNumber(){let[e,t,i]=this.toUint8RgbArray();return(i<<16)+(t<<8)+e}toLittleEndianNumber(){let e=this._int;return(e>>16)+(e&65280)+((e&255)<<16)}multiply(e){let[t,i,s,n]=co._temp.setValue(e)._components;return this._components[0]*=t,this._components[1]*=i,this._components[2]*=s,this._components[3]*=n,this._refreshInt(),this._value=null,this}premultiply(e,t=!0){return t&&(this._components[0]*=e,this._components[1]*=e,this._components[2]*=e),this._components[3]=e,this._refreshInt(),this._value=null,this}toPremultiplied(e,t=!0){if(e===1)return(255<<24)+this._int;if(e===0)return t?0:this._int;let i=this._int>>16&255,s=this._int>>8&255,n=this._int&255;return t&&(i=i*e+.5|0,s=s*e+.5|0,n=n*e+.5|0),(e*255<<24)+(i<<16)+(s<<8)+n}toHex(){let e=this._int.toString(16);return`#${"000000".substring(0,6-e.length)+e}`}toHexa(){let t=Math.round(this._components[3]*255).toString(16);return this.toHex()+"00".substring(0,2-t.length)+t}setAlpha(e){return this._components[3]=this._clamp(e),this}_normalize(e){let t,i,s,n;if((typeof e=="number"||e instanceof Number)&&e>=0&&e<=16777215){let o=e;t=(o>>16&255)/255,i=(o>>8&255)/255,s=(o&255)/255,n=1}else if((Array.isArray(e)||e instanceof Float32Array)&&e.length>=3&&e.length<=4)e=this._clamp(e),[t,i,s,n=1]=e;else if((e instanceof Uint8Array||e instanceof Uint8ClampedArray)&&e.length>=3&&e.length<=4)e=this._clamp(e,0,255),[t,i,s,n=255]=e,t/=255,i/=255,s/=255,n/=255;else if(typeof e=="string"||typeof e=="object"){if(typeof e=="string"){let a=co.HEX_PATTERN.exec(e);a&&(e=`#${a[2]}`)}let o=It(e);o.isValid()&&({r:t,g:i,b:s,a:n}=o.rgba,t/=255,i/=255,s/=255)}if(t!==void 0)this._components[0]=t,this._components[1]=i,this._components[2]=s,this._components[3]=n,this._refreshInt();else throw new Error(`Unable to convert color ${e}`)}_refreshInt(){this._clamp(this._components);let[e,t,i]=this._components;this._int=(e*255<<16)+(t*255<<8)+(i*255|0)}_clamp(e,t=0,i=1){return typeof e=="number"?Math.min(Math.max(e,t),i):(e.forEach((s,n)=>{e[n]=Math.min(Math.max(s,t),i)}),e)}static isColorLike(e){return typeof e=="number"||typeof e=="string"||e instanceof Number||e instanceof co||Array.isArray(e)||e instanceof Uint8Array||e instanceof Uint8ClampedArray||e instanceof Float32Array||e.r!==void 0&&e.g!==void 0&&e.b!==void 0||e.r!==void 0&&e.g!==void 0&&e.b!==void 0&&e.a!==void 0||e.h!==void 0&&e.s!==void 0&&e.l!==void 0||e.h!==void 0&&e.s!==void 0&&e.l!==void 0&&e.a!==void 0||e.h!==void 0&&e.s!==void 0&&e.v!==void 0||e.h!==void 0&&e.s!==void 0&&e.v!==void 0&&e.a!==void 0}};Cs.shared=new Cs;Cs._temp=new Cs;Cs.HEX_PATTERN=/^(#|0x)?(([a-f0-9]{3}){1,2}([a-f0-9]{2})?)$/i;q=Cs});var B0,R0=p(()=>{"use strict";B0={cullArea:null,cullable:!1,cullableChildren:!0}});var D0,M0,I0,Ad=p(()=>{"use strict";D0=Math.PI*2,M0=180/Math.PI,I0=Math.PI/180});var J,Pd,Ft=p(()=>{"use strict";J=class r{constructor(e=0,t=0){this.x=0,this.y=0,this.x=e,this.y=t}clone(){return new r(this.x,this.y)}copyFrom(e){return this.set(e.x,e.y),this}copyTo(e){return e.set(this.x,this.y),e}equals(e){return e.x===this.x&&e.y===this.y}set(e=0,t=e){return this.x=e,this.y=t,this}toString(){return`[pixi.js/math:Point x=${this.x} y=${this.y}]`}static get shared(){return Pd.x=0,Pd.y=0,Pd}},Pd=new J});var R,KA,QA,te=p(()=>{Ad();Ft();R=class r{constructor(e=1,t=0,i=0,s=1,n=0,o=0){this.array=null,this.a=e,this.b=t,this.c=i,this.d=s,this.tx=n,this.ty=o}fromArray(e){this.a=e[0],this.b=e[1],this.c=e[3],this.d=e[4],this.tx=e[2],this.ty=e[5]}set(e,t,i,s,n,o){return this.a=e,this.b=t,this.c=i,this.d=s,this.tx=n,this.ty=o,this}toArray(e,t){this.array||(this.array=new Float32Array(9));let i=t||this.array;return e?(i[0]=this.a,i[1]=this.b,i[2]=0,i[3]=this.c,i[4]=this.d,i[5]=0,i[6]=this.tx,i[7]=this.ty,i[8]=1):(i[0]=this.a,i[1]=this.c,i[2]=this.tx,i[3]=this.b,i[4]=this.d,i[5]=this.ty,i[6]=0,i[7]=0,i[8]=1),i}apply(e,t){t=t||new J;let i=e.x,s=e.y;return t.x=this.a*i+this.c*s+this.tx,t.y=this.b*i+this.d*s+this.ty,t}applyInverse(e,t){t=t||new J;let i=this.a,s=this.b,n=this.c,o=this.d,a=this.tx,c=this.ty,u=1/(i*o+n*-s),l=e.x,h=e.y;return t.x=o*u*l+-n*u*h+(c*n-a*o)*u,t.y=i*u*h+-s*u*l+(-c*i+a*s)*u,t}translate(e,t){return this.tx+=e,this.ty+=t,this}scale(e,t){return this.a*=e,this.d*=t,this.c*=e,this.b*=t,this.tx*=e,this.ty*=t,this}rotate(e){let t=Math.cos(e),i=Math.sin(e),s=this.a,n=this.c,o=this.tx;return this.a=s*t-this.b*i,this.b=s*i+this.b*t,this.c=n*t-this.d*i,this.d=n*i+this.d*t,this.tx=o*t-this.ty*i,this.ty=o*i+this.ty*t,this}append(e){let t=this.a,i=this.b,s=this.c,n=this.d;return this.a=e.a*t+e.b*s,this.b=e.a*i+e.b*n,this.c=e.c*t+e.d*s,this.d=e.c*i+e.d*n,this.tx=e.tx*t+e.ty*s+this.tx,this.ty=e.tx*i+e.ty*n+this.ty,this}appendFrom(e,t){let i=e.a,s=e.b,n=e.c,o=e.d,a=e.tx,c=e.ty,u=t.a,l=t.b,h=t.c,f=t.d;return this.a=i*u+s*h,this.b=i*l+s*f,this.c=n*u+o*h,this.d=n*l+o*f,this.tx=a*u+c*h+t.tx,this.ty=a*l+c*f+t.ty,this}setTransform(e,t,i,s,n,o,a,c,u){return this.a=Math.cos(a+u)*n,this.b=Math.sin(a+u)*n,this.c=-Math.sin(a-c)*o,this.d=Math.cos(a-c)*o,this.tx=e-(i*this.a+s*this.c),this.ty=t-(i*this.b+s*this.d),this}prepend(e){let t=this.tx;if(e.a!==1||e.b!==0||e.c!==0||e.d!==1){let i=this.a,s=this.c;this.a=i*e.a+this.b*e.c,this.b=i*e.b+this.b*e.d,this.c=s*e.a+this.d*e.c,this.d=s*e.b+this.d*e.d}return this.tx=t*e.a+this.ty*e.c+e.tx,this.ty=t*e.b+this.ty*e.d+e.ty,this}decompose(e){let t=this.a,i=this.b,s=this.c,n=this.d,o=e.pivot,a=-Math.atan2(-s,n),c=Math.atan2(i,t),u=Math.abs(a+c);return u<1e-5||Math.abs(D0-u)<1e-5?(e.rotation=c,e.skew.x=e.skew.y=0):(e.rotation=0,e.skew.x=a,e.skew.y=c),e.scale.x=Math.sqrt(t*t+i*i),e.scale.y=Math.sqrt(s*s+n*n),e.position.x=this.tx+(o.x*t+o.y*s),e.position.y=this.ty+(o.x*i+o.y*n),e}invert(){let e=this.a,t=this.b,i=this.c,s=this.d,n=this.tx,o=e*s-t*i;return this.a=s/o,this.b=-t/o,this.c=-i/o,this.d=e/o,this.tx=(i*this.ty-s*n)/o,this.ty=-(e*this.ty-t*n)/o,this}isIdentity(){return this.a===1&&this.b===0&&this.c===0&&this.d===1&&this.tx===0&&this.ty===0}identity(){return this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0,this}clone(){let e=new r;return e.a=this.a,e.b=this.b,e.c=this.c,e.d=this.d,e.tx=this.tx,e.ty=this.ty,e}copyTo(e){return e.a=this.a,e.b=this.b,e.c=this.c,e.d=this.d,e.tx=this.tx,e.ty=this.ty,e}copyFrom(e){return this.a=e.a,this.b=e.b,this.c=e.c,this.d=e.d,this.tx=e.tx,this.ty=e.ty,this}equals(e){return e.a===this.a&&e.b===this.b&&e.c===this.c&&e.d===this.d&&e.tx===this.tx&&e.ty===this.ty}toString(){return`[pixi.js:Matrix a=${this.a} b=${this.b} c=${this.c} d=${this.d} tx=${this.tx} ty=${this.ty}]`}static get IDENTITY(){return QA.identity()}static get shared(){return KA.identity()}},KA=new R,QA=new R});var We,xu=p(()=>{"use strict";We=class r{constructor(e,t,i){this._x=t||0,this._y=i||0,this._observer=e}clone(e){return new r(e??this._observer,this._x,this._y)}set(e=0,t=e){return(this._x!==e||this._y!==t)&&(this._x=e,this._y=t,this._observer._onUpdate(this)),this}copyFrom(e){return(this._x!==e.x||this._y!==e.y)&&(this._x=e.x,this._y=e.y,this._observer._onUpdate(this)),this}copyTo(e){return e.set(this._x,this._y),e}equals(e){return e.x===this._x&&e.y===this._y}toString(){return`[pixi.js/math:ObservablePoint x=${this._x} y=${this._y} scope=${this._observer}]`}get x(){return this._x}set x(e){this._x!==e&&(this._x=e,this._observer._onUpdate(this))}get y(){return this._y}set y(e){this._y!==e&&(this._y=e,this._observer._onUpdate(this))}}});function K(r="default"){return Bd[r]===void 0&&(Bd[r]=-1),++Bd[r]}var Bd,Oe=p(()=>{"use strict";Bd={default:-1}});function z(r,e,t=3){if(F0[e])return;let i=new Error().stack;typeof i>"u"?console.warn("PixiJS Deprecation Warning: ",`${e}
2
- Deprecated since v${r}`):(i=i.split(`
3
- `).splice(t).join(`
4
- `),console.groupCollapsed?(console.groupCollapsed("%cPixiJS Deprecation Warning: %c%s","color:#614108;background:#fffbe6","font-weight:normal;color:#614108;background:#fffbe6",`${e}
5
- Deprecated since v${r}`),console.warn(i),console.groupEnd()):(console.warn("PixiJS Deprecation Warning: ",`${e}
6
- Deprecated since v${r}`),console.warn(i))),F0[e]=!0}var F0,$,U0,ye=p(()=>{"use strict";F0={},$="8.0.0",U0="8.3.4"});var Ii,Rd=p(()=>{"use strict";Ii=class{constructor(e,t){this._pool=[],this._count=0,this._index=0,this._classType=e,t&&this.prepopulate(t)}prepopulate(e){for(let t=0;t<e;t++)this._pool[this._index++]=new this._classType;this._count+=e}get(e){let t;return this._index>0?t=this._pool[--this._index]:t=new this._classType,t.init?.(e),t}return(e){e.reset?.(),this._pool[this._index++]=e}get totalSize(){return this._count}get totalFree(){return this._index}get totalUsed(){return this._count-this._index}clear(){this._pool.length=0,this._index=0}}});var Dd,me,br=p(()=>{Rd();Dd=class{constructor(){this._poolsByClass=new Map}prepopulate(e,t){this.getPool(e).prepopulate(t)}get(e,t){return this.getPool(e).get(t)}return(e){this.getPool(e.constructor).return(e)}getPool(e){return this._poolsByClass.has(e)||this._poolsByClass.set(e,new Ii(e)),this._poolsByClass.get(e)}stats(){let e={};return this._poolsByClass.forEach(t=>{let i=e[t._classType.name]?t._classType.name+t._classType.ID:t._classType.name;e[i]={free:t.totalFree,used:t.totalUsed,size:t.totalSize}}),e}},me=new Dd});var O0,G0=p(()=>{ye();O0={get isCachedAsTexture(){return!!this.renderGroup?.isCachedAsTexture},cacheAsTexture(r){typeof r=="boolean"&&r===!1?this.disableRenderGroup():(this.enableRenderGroup(),this.renderGroup.enableCacheAsTexture(r===!0?{}:r))},updateCacheTexture(){this.renderGroup?.updateCacheTexture()},get cacheAsBitmap(){return this.isCachedAsTexture},set cacheAsBitmap(r){z("v8.6.0","cacheAsBitmap is deprecated, use cacheAsTexture instead."),this.cacheAsTexture(r)}}});function _u(r,e,t){let i=r.length,s;if(e>=i||t===0)return;t=e+t>i?i-e:t;let n=i-t;for(s=e;s<n;++s)r[s]=r[s+t];r.length=n}var Md=p(()=>{"use strict"});var N0,L0=p(()=>{Md();ye();N0={allowChildren:!0,removeChildren(r=0,e){let t=e??this.children.length,i=t-r,s=[];if(i>0&&i<=t){for(let o=t-1;o>=r;o--){let a=this.children[o];a&&(s.push(a),a.parent=null)}_u(this.children,r,t);let n=this.renderGroup||this.parentRenderGroup;n&&n.removeChildren(s);for(let o=0;o<s.length;++o){let a=s[o];a.parentRenderLayer?.detach(a),this.emit("childRemoved",a,this,o),s[o].emit("removed",this)}return s.length>0&&this._didViewChangeTick++,s}else if(i===0&&this.children.length===0)return s;throw new RangeError("removeChildren: numeric values are outside the acceptable range.")},removeChildAt(r){let e=this.getChildAt(r);return this.removeChild(e)},getChildAt(r){if(r<0||r>=this.children.length)throw new Error(`getChildAt: Index (${r}) does not exist.`);return this.children[r]},setChildIndex(r,e){if(e<0||e>=this.children.length)throw new Error(`The index ${e} supplied is out of bounds ${this.children.length}`);this.getChildIndex(r),this.addChildAt(r,e)},getChildIndex(r){let e=this.children.indexOf(r);if(e===-1)throw new Error("The supplied Container must be a child of the caller");return e},addChildAt(r,e){this.allowChildren||z($,"addChildAt: Only Containers will be allowed to add children in v8.0.0");let{children:t}=this;if(e<0||e>t.length)throw new Error(`${r}addChildAt: The index ${e} supplied is out of bounds ${t.length}`);if(r.parent){let s=r.parent.children.indexOf(r);if(r.parent===this&&s===e)return r;s!==-1&&r.parent.children.splice(s,1)}e===t.length?t.push(r):t.splice(e,0,r),r.parent=this,r.didChange=!0,r._updateFlags=15;let i=this.renderGroup||this.parentRenderGroup;return i&&i.addChild(r),this.sortableChildren&&(this.sortDirty=!0),this.emit("childAdded",r,this,e),r.emit("added",this),r},swapChildren(r,e){if(r===e)return;let t=this.getChildIndex(r),i=this.getChildIndex(e);this.children[t]=e,this.children[i]=r;let s=this.renderGroup||this.parentRenderGroup;s&&(s.structureDidChange=!0),this._didContainerChangeTick++},removeFromParent(){this.parent?.removeChild(this)},reparentChild(...r){return r.length===1?this.reparentChildAt(r[0],this.children.length):(r.forEach(e=>this.reparentChildAt(e,this.children.length)),r[0])},reparentChildAt(r,e){if(r.parent===this)return this.setChildIndex(r,e),r;let t=r.worldTransform.clone();r.removeFromParent(),this.addChildAt(r,e);let i=this.worldTransform.clone();return i.invert(),t.prepend(i),r.setFromMatrix(t),r}}});var z0,V0=p(()=>{"use strict";z0={collectRenderables(r,e,t){this.parentRenderLayer&&this.parentRenderLayer!==t||this.globalDisplayStatus<7||!this.includeInBuild||(this.sortableChildren&&this.sortChildren(),this.isSimple?this.collectRenderablesSimple(r,e,t):this.renderGroup?e.renderPipes.renderGroup.addRenderGroup(this.renderGroup,r):this.collectRenderablesWithEffects(r,e,t))},collectRenderablesSimple(r,e,t){let i=this.children,s=i.length;for(let n=0;n<s;n++)i[n].collectRenderables(r,e,t)},collectRenderablesWithEffects(r,e,t){let{renderPipes:i}=e;for(let s=0;s<this.effects.length;s++){let n=this.effects[s];i[n.pipe].push(n,this,r)}this.collectRenderablesSimple(r,e,t);for(let s=this.effects.length-1;s>=0;s--){let n=this.effects[s];i[n.pipe].pop(n,this,r)}}}});var yr,bu=p(()=>{"use strict";yr=class{constructor(){this.pipe="filter",this.priority=1}destroy(){for(let e=0;e<this.filters.length;e++)this.filters[e].destroy();this.filters=null,this.filterArea=null}}});var Id,yu,H0=p(()=>{B();br();Id=class{constructor(){this._effectClasses=[],this._tests=[],this._initialized=!1}init(){this._initialized||(this._initialized=!0,this._effectClasses.forEach(e=>{this.add({test:e.test,maskClass:e})}))}add(e){this._tests.push(e)}getMaskEffect(e){this._initialized||this.init();for(let t=0;t<this._tests.length;t++){let i=this._tests[t];if(i.test(e))return me.get(i.maskClass,e)}return e}returnMaskEffect(e){me.return(e)}},yu=new Id;O.handleByList(b.MaskEffect,yu._effectClasses)});var W0,$0=p(()=>{bu();H0();W0={_maskEffect:null,_maskOptions:{inverse:!1},_filterEffect:null,effects:[],_markStructureAsChanged(){let r=this.renderGroup||this.parentRenderGroup;r&&(r.structureDidChange=!0)},addEffect(r){this.effects.indexOf(r)===-1&&(this.effects.push(r),this.effects.sort((t,i)=>t.priority-i.priority),this._markStructureAsChanged(),this._updateIsSimple())},removeEffect(r){let e=this.effects.indexOf(r);e!==-1&&(this.effects.splice(e,1),this._markStructureAsChanged(),this._updateIsSimple())},set mask(r){let e=this._maskEffect;e?.mask!==r&&(e&&(this.removeEffect(e),yu.returnMaskEffect(e),this._maskEffect=null),r!=null&&(this._maskEffect=yu.getMaskEffect(r),this.addEffect(this._maskEffect)))},get mask(){return this._maskEffect?.mask},setMask(r){this._maskOptions={...this._maskOptions,...r},r.mask&&(this.mask=r.mask),this._markStructureAsChanged()},set filters(r){!Array.isArray(r)&&r&&(r=[r]);let e=this._filterEffect||(this._filterEffect=new yr);r=r;let t=r?.length>0,i=e.filters?.length>0,s=t!==i;r=Array.isArray(r)?r.slice(0):r,e.filters=Object.freeze(r),s&&(t?this.addEffect(e):(this.removeEffect(e),e.filters=r??null))},get filters(){return this._filterEffect?.filters},set filterArea(r){this._filterEffect||(this._filterEffect=new yr),this._filterEffect.filterArea=r},get filterArea(){return this._filterEffect?.filterArea}}});var q0,j0=p(()=>{ye();q0={label:null,get name(){return z($,"Container.name property has been removed, use Container.label instead"),this.label},set name(r){z($,"Container.name property has been removed, use Container.label instead"),this.label=r},getChildByName(r,e=!1){return this.getChildByLabel(r,e)},getChildByLabel(r,e=!1){let t=this.children;for(let i=0;i<t.length;i++){let s=t[i];if(s.label===r||r instanceof RegExp&&r.test(s.label))return s}if(e)for(let i=0;i<t.length;i++){let n=t[i].getChildByLabel(r,!0);if(n)return n}return null},getChildrenByLabel(r,e=!1,t=[]){let i=this.children;for(let s=0;s<i.length;s++){let n=i[s];(n.label===r||r instanceof RegExp&&r.test(n.label))&&t.push(n)}if(e)for(let s=0;s<i.length;s++)i[s].getChildrenByLabel(r,!0,t);return t}}});var Tu,Y,Ge=p(()=>{Ft();Tu=[new J,new J,new J,new J],Y=class r{constructor(e=0,t=0,i=0,s=0){this.type="rectangle",this.x=Number(e),this.y=Number(t),this.width=Number(i),this.height=Number(s)}get left(){return this.x}get right(){return this.x+this.width}get top(){return this.y}get bottom(){return this.y+this.height}isEmpty(){return this.left===this.right||this.top===this.bottom}static get EMPTY(){return new r(0,0,0,0)}clone(){return new r(this.x,this.y,this.width,this.height)}copyFromBounds(e){return this.x=e.minX,this.y=e.minY,this.width=e.maxX-e.minX,this.height=e.maxY-e.minY,this}copyFrom(e){return this.x=e.x,this.y=e.y,this.width=e.width,this.height=e.height,this}copyTo(e){return e.copyFrom(this),e}contains(e,t){return this.width<=0||this.height<=0?!1:e>=this.x&&e<this.x+this.width&&t>=this.y&&t<this.y+this.height}strokeContains(e,t,i,s=.5){let{width:n,height:o}=this;if(n<=0||o<=0)return!1;let a=this.x,c=this.y,u=i*(1-s),l=i-u,h=a-u,f=a+n+u,d=c-u,m=c+o+u,x=a+l,g=a+n-l,_=c+l,y=c+o-l;return e>=h&&e<=f&&t>=d&&t<=m&&!(e>x&&e<g&&t>_&&t<y)}intersects(e,t){if(!t){let D=this.x<e.x?e.x:this.x;if((this.right>e.right?e.right:this.right)<=D)return!1;let P=this.y<e.y?e.y:this.y;return(this.bottom>e.bottom?e.bottom:this.bottom)>P}let i=this.left,s=this.right,n=this.top,o=this.bottom;if(s<=i||o<=n)return!1;let a=Tu[0].set(e.left,e.top),c=Tu[1].set(e.left,e.bottom),u=Tu[2].set(e.right,e.top),l=Tu[3].set(e.right,e.bottom);if(u.x<=a.x||c.y<=a.y)return!1;let h=Math.sign(t.a*t.d-t.b*t.c);if(h===0||(t.apply(a,a),t.apply(c,c),t.apply(u,u),t.apply(l,l),Math.max(a.x,c.x,u.x,l.x)<=i||Math.min(a.x,c.x,u.x,l.x)>=s||Math.max(a.y,c.y,u.y,l.y)<=n||Math.min(a.y,c.y,u.y,l.y)>=o))return!1;let f=h*(c.y-a.y),d=h*(a.x-c.x),m=f*i+d*n,x=f*s+d*n,g=f*i+d*o,_=f*s+d*o;if(Math.max(m,x,g,_)<=f*a.x+d*a.y||Math.min(m,x,g,_)>=f*l.x+d*l.y)return!1;let y=h*(a.y-u.y),S=h*(u.x-a.x),T=y*i+S*n,C=y*s+S*n,v=y*i+S*o,E=y*s+S*o;return!(Math.max(T,C,v,E)<=y*a.x+S*a.y||Math.min(T,C,v,E)>=y*l.x+S*l.y)}pad(e=0,t=e){return this.x-=e,this.y-=t,this.width+=e*2,this.height+=t*2,this}fit(e){let t=Math.max(this.x,e.x),i=Math.min(this.x+this.width,e.x+e.width),s=Math.max(this.y,e.y),n=Math.min(this.y+this.height,e.y+e.height);return this.x=t,this.width=Math.max(i-t,0),this.y=s,this.height=Math.max(n-s,0),this}ceil(e=1,t=.001){let i=Math.ceil((this.x+this.width-t)*e)/e,s=Math.ceil((this.y+this.height-t)*e)/e;return this.x=Math.floor((this.x+t)*e)/e,this.y=Math.floor((this.y+t)*e)/e,this.width=i-this.x,this.height=s-this.y,this}enlarge(e){let t=Math.min(this.x,e.x),i=Math.max(this.x+this.width,e.x+e.width),s=Math.min(this.y,e.y),n=Math.max(this.y+this.height,e.y+e.height);return this.x=t,this.width=i-t,this.y=s,this.height=n-s,this}getBounds(e){return e||(e=new r),e.copyFrom(this),e}containsRect(e){if(this.width<=0||this.height<=0)return!1;let t=e.x,i=e.y,s=e.x+e.width,n=e.y+e.height;return t>=this.x&&t<this.x+this.width&&i>=this.y&&i<this.y+this.height&&s>=this.x&&s<this.x+this.width&&n>=this.y&&n<this.y+this.height}set(e,t,i,s){return this.x=e,this.y=t,this.width=i,this.height=s,this}toString(){return`[pixi.js/math:Rectangle x=${this.x} y=${this.y} width=${this.width} height=${this.height}]`}}});var X0,ae,at=p(()=>{te();Ge();X0=new R,ae=class r{constructor(e=1/0,t=1/0,i=-1/0,s=-1/0){this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0,this.matrix=X0,this.minX=e,this.minY=t,this.maxX=i,this.maxY=s}isEmpty(){return this.minX>this.maxX||this.minY>this.maxY}get rectangle(){this._rectangle||(this._rectangle=new Y);let e=this._rectangle;return this.minX>this.maxX||this.minY>this.maxY?(e.x=0,e.y=0,e.width=0,e.height=0):e.copyFromBounds(this),e}clear(){return this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0,this.matrix=X0,this}set(e,t,i,s){this.minX=e,this.minY=t,this.maxX=i,this.maxY=s}addFrame(e,t,i,s,n){n||(n=this.matrix);let o=n.a,a=n.b,c=n.c,u=n.d,l=n.tx,h=n.ty,f=this.minX,d=this.minY,m=this.maxX,x=this.maxY,g=o*e+c*t+l,_=a*e+u*t+h;g<f&&(f=g),_<d&&(d=_),g>m&&(m=g),_>x&&(x=_),g=o*i+c*t+l,_=a*i+u*t+h,g<f&&(f=g),_<d&&(d=_),g>m&&(m=g),_>x&&(x=_),g=o*e+c*s+l,_=a*e+u*s+h,g<f&&(f=g),_<d&&(d=_),g>m&&(m=g),_>x&&(x=_),g=o*i+c*s+l,_=a*i+u*s+h,g<f&&(f=g),_<d&&(d=_),g>m&&(m=g),_>x&&(x=_),this.minX=f,this.minY=d,this.maxX=m,this.maxY=x}addRect(e,t){this.addFrame(e.x,e.y,e.x+e.width,e.y+e.height,t)}addBounds(e,t){this.addFrame(e.minX,e.minY,e.maxX,e.maxY,t)}addBoundsMask(e){this.minX=this.minX>e.minX?this.minX:e.minX,this.minY=this.minY>e.minY?this.minY:e.minY,this.maxX=this.maxX<e.maxX?this.maxX:e.maxX,this.maxY=this.maxY<e.maxY?this.maxY:e.maxY}applyMatrix(e){let t=this.minX,i=this.minY,s=this.maxX,n=this.maxY,{a:o,b:a,c,d:u,tx:l,ty:h}=e,f=o*t+c*i+l,d=a*t+u*i+h;this.minX=f,this.minY=d,this.maxX=f,this.maxY=d,f=o*s+c*i+l,d=a*s+u*i+h,this.minX=f<this.minX?f:this.minX,this.minY=d<this.minY?d:this.minY,this.maxX=f>this.maxX?f:this.maxX,this.maxY=d>this.maxY?d:this.maxY,f=o*t+c*n+l,d=a*t+u*n+h,this.minX=f<this.minX?f:this.minX,this.minY=d<this.minY?d:this.minY,this.maxX=f>this.maxX?f:this.maxX,this.maxY=d>this.maxY?d:this.maxY,f=o*s+c*n+l,d=a*s+u*n+h,this.minX=f<this.minX?f:this.minX,this.minY=d<this.minY?d:this.minY,this.maxX=f>this.maxX?f:this.maxX,this.maxY=d>this.maxY?d:this.maxY}fit(e){return this.minX<e.left&&(this.minX=e.left),this.maxX>e.right&&(this.maxX=e.right),this.minY<e.top&&(this.minY=e.top),this.maxY>e.bottom&&(this.maxY=e.bottom),this}fitBounds(e,t,i,s){return this.minX<e&&(this.minX=e),this.maxX>t&&(this.maxX=t),this.minY<i&&(this.minY=i),this.maxY>s&&(this.maxY=s),this}pad(e,t=e){return this.minX-=e,this.maxX+=e,this.minY-=t,this.maxY+=t,this}ceil(){return this.minX=Math.floor(this.minX),this.minY=Math.floor(this.minY),this.maxX=Math.ceil(this.maxX),this.maxY=Math.ceil(this.maxY),this}clone(){return new r(this.minX,this.minY,this.maxX,this.maxY)}scale(e,t=e){return this.minX*=e,this.minY*=t,this.maxX*=e,this.maxY*=t,this}get x(){return this.minX}set x(e){let t=this.maxX-this.minX;this.minX=e,this.maxX=e+t}get y(){return this.minY}set y(e){let t=this.maxY-this.minY;this.minY=e,this.maxY=e+t}get width(){return this.maxX-this.minX}set width(e){this.maxX=this.minX+e}get height(){return this.maxY-this.minY}set height(e){this.maxY=this.minY+e}get left(){return this.minX}get right(){return this.maxX}get top(){return this.minY}get bottom(){return this.maxY}get isPositive(){return this.maxX-this.minX>0&&this.maxY-this.minY>0}get isValid(){return this.minX+this.minY!==1/0}addVertexData(e,t,i,s){let n=this.minX,o=this.minY,a=this.maxX,c=this.maxY;s||(s=this.matrix);let u=s.a,l=s.b,h=s.c,f=s.d,d=s.tx,m=s.ty;for(let x=t;x<i;x+=2){let g=e[x],_=e[x+1],y=u*g+h*_+d,S=l*g+f*_+m;n=y<n?y:n,o=S<o?S:o,a=y>a?y:a,c=S>c?S:c}this.minX=n,this.minY=o,this.maxX=a,this.maxY=c}containsPoint(e,t){return this.minX<=e&&this.minY<=t&&this.maxX>=e&&this.maxY>=t}toString(){return`[pixi.js:Bounds minX=${this.minX} minY=${this.minY} maxX=${this.maxX} maxY=${this.maxY} width=${this.width} height=${this.height}]`}copyFrom(e){return this.minX=e.minX,this.minY=e.minY,this.maxX=e.maxX,this.maxY=e.maxY,this}}});var De,xt,Fi=p(()=>{te();Rd();at();De=new Ii(R),xt=new Ii(ae)});var ZA,Y0,K0=p(()=>{te();at();Fi();ZA=new R,Y0={getFastGlobalBounds(r,e){e||(e=new ae),e.clear(),this._getGlobalBoundsRecursive(!!r,e,this.parentRenderLayer),e.isValid||e.set(0,0,0,0);let t=this.renderGroup||this.parentRenderGroup;return e.applyMatrix(t.worldTransform),e},_getGlobalBoundsRecursive(r,e,t){let i=e;if(r&&this.parentRenderLayer&&this.parentRenderLayer!==t||this.localDisplayStatus!==7||!this.measurable)return;let s=!!this.effects.length;if((this.renderGroup||s)&&(i=xt.get().clear()),this.boundsArea)e.addRect(this.boundsArea,this.worldTransform);else{if(this.renderPipeId){let o=this.bounds;i.addFrame(o.minX,o.minY,o.maxX,o.maxY,this.groupTransform)}let n=this.children;for(let o=0;o<n.length;o++)n[o]._getGlobalBoundsRecursive(r,i,t)}if(s){let n=!1,o=this.renderGroup||this.parentRenderGroup;for(let a=0;a<this.effects.length;a++)this.effects[a].addBounds&&(n||(n=!0,i.applyMatrix(o.worldTransform)),this.effects[a].addBounds(i,!0));n&&(i.applyMatrix(o.worldTransform.copyTo(ZA).invert()),e.addBounds(i,this.relativeGroupTransform)),e.addBounds(i),xt.return(i)}else this.renderGroup&&(e.addBounds(i,this.relativeGroupTransform),xt.return(i))}}});function Es(r,e,t){t.clear();let i,s;return r.parent?e?i=r.parent.worldTransform:(s=De.get().identity(),i=wu(r,s)):i=R.IDENTITY,Q0(r,t,i,e),s&&De.return(s),t.isValid||t.set(0,0,0,0),t}function Q0(r,e,t,i){if(!r.visible||!r.measurable)return;let s;i?s=r.worldTransform:(r.updateLocalTransform(),s=De.get(),s.appendFrom(r.localTransform,t));let n=e,o=!!r.effects.length;if(o&&(e=xt.get().clear()),r.boundsArea)e.addRect(r.boundsArea,s);else{r.bounds&&(e.matrix=s,e.addBounds(r.bounds));for(let a=0;a<r.children.length;a++)Q0(r.children[a],e,s,i)}if(o){for(let a=0;a<r.effects.length;a++)r.effects[a].addBounds?.(e);n.addBounds(e,R.IDENTITY),xt.return(e)}i||De.return(s)}function wu(r,e){let t=r.parent;return t&&(wu(t,e),t.updateLocalTransform(),e.append(t.localTransform)),e}var uo=p(()=>{te();Fi()});function Su(r,e){if(r===16777215||!e)return e;if(e===16777215||!r)return r;let t=r>>16&255,i=r>>8&255,s=r&255,n=e>>16&255,o=e>>8&255,a=e&255,c=t*n/255|0,u=i*o/255|0,l=s*a/255|0;return(c<<16)+(u<<8)+l}var Fd=p(()=>{"use strict"});function ks(r,e){return r===Z0?e:e===Z0?r:Su(r,e)}var Z0,Ud=p(()=>{Fd();Z0=16777215});function lo(r){return((r&255)<<16)+(r&65280)+(r>>16&255)}var J0,e_=p(()=>{uo();Fi();Ud();J0={getGlobalAlpha(r){if(r)return this.renderGroup?this.renderGroup.worldAlpha:this.parentRenderGroup?this.parentRenderGroup.worldAlpha*this.alpha:this.alpha;let e=this.alpha,t=this.parent;for(;t;)e*=t.alpha,t=t.parent;return e},getGlobalTransform(r,e){if(e)return r.copyFrom(this.worldTransform);this.updateLocalTransform();let t=wu(this,De.get().identity());return r.appendFrom(this.localTransform,t),De.return(t),r},getGlobalTint(r){if(r)return this.renderGroup?lo(this.renderGroup.worldColor):this.parentRenderGroup?lo(ks(this.localColor,this.parentRenderGroup.worldColor)):this.tint;let e=this.localColor,t=this.parent;for(;t;)e=ks(e,t.localColor),t=t.parent;return lo(e)}}});function As(r,e,t){return e.clear(),t||(t=R.IDENTITY),t_(r,e,t,r,!0),e.isValid||e.set(0,0,0,0),e}function t_(r,e,t,i,s){let n;if(s)n=De.get(),n=t.copyTo(n);else{if(!r.visible||!r.measurable)return;r.updateLocalTransform();let c=r.localTransform;n=De.get(),n.appendFrom(c,t)}let o=e,a=!!r.effects.length;if(a&&(e=xt.get().clear()),r.boundsArea)e.addRect(r.boundsArea,n);else{r.renderPipeId&&(e.matrix=n,e.addBounds(r.bounds));let c=r.children;for(let u=0;u<c.length;u++)t_(c[u],e,n,i,!1)}if(a){for(let c=0;c<r.effects.length;c++)r.effects[c].addLocalBounds?.(e,i);o.addBounds(e,R.IDENTITY),xt.return(e)}De.return(n)}var vu=p(()=>{te();Fi()});function Od(r,e){let t=r.children;for(let i=0;i<t.length;i++){let s=t[i],n=s.uid,o=(s._didViewChangeTick&65535)<<16|s._didContainerChangeTick&65535,a=e.index;(e.data[a]!==n||e.data[a+1]!==o)&&(e.data[e.index]=n,e.data[e.index+1]=o,e.didChange=!0),e.index=a+2,s.children.length&&Od(s,e)}return e.didChange}var r_=p(()=>{"use strict"});var JA,i_,s_=p(()=>{te();at();uo();vu();r_();JA=new R,i_={_localBoundsCacheId:-1,_localBoundsCacheData:null,_setWidth(r,e){let t=Math.sign(this.scale.x)||1;e!==0?this.scale.x=r/e*t:this.scale.x=t},_setHeight(r,e){let t=Math.sign(this.scale.y)||1;e!==0?this.scale.y=r/e*t:this.scale.y=t},getLocalBounds(){this._localBoundsCacheData||(this._localBoundsCacheData={data:[],index:1,didChange:!1,localBounds:new ae});let r=this._localBoundsCacheData;return r.index=1,r.didChange=!1,r.data[0]!==this._didViewChangeTick&&(r.didChange=!0,r.data[0]=this._didViewChangeTick),Od(this,r),r.didChange&&As(this,r.localBounds,JA),r.localBounds},getBounds(r,e){return Es(this,r,e||new ae)}}});var n_,o_=p(()=>{"use strict";n_={_onRender:null,set onRender(r){let e=this.renderGroup||this.parentRenderGroup;if(!r){this._onRender&&e?.removeOnRender(this),this._onRender=null;return}this._onRender||e?.addOnRender(this),this._onRender=r},get onRender(){return this._onRender}}});function eP(r,e){return r._zIndex-e._zIndex}var a_,c_=p(()=>{"use strict";a_={_zIndex:0,sortDirty:!1,sortableChildren:!1,get zIndex(){return this._zIndex},set zIndex(r){this._zIndex!==r&&(this._zIndex=r,this.depthOfChildModified())},depthOfChildModified(){this.parent&&(this.parent.sortableChildren=!0,this.parent.sortDirty=!0),this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0)},sortChildren(){this.sortDirty&&(this.sortDirty=!1,this.children.sort(eP))}}});var u_,l_=p(()=>{Ft();Fi();u_={getGlobalPosition(r=new J,e=!1){return this.parent?this.parent.toGlobal(this._position,r,e):(r.x=this._position.x,r.y=this._position.y),r},toGlobal(r,e,t=!1){let i=this.getGlobalTransform(De.get(),t);return e=i.apply(r,e),De.return(i),e},toLocal(r,e,t,i){e&&(r=e.toGlobal(r,t,i));let s=this.getGlobalTransform(De.get(),i);return t=s.applyInverse(r,t),De.return(s),t}}});var Ps,Gd=p(()=>{Oe();Ps=class{constructor(){this.uid=K("instructionSet"),this.instructions=[],this.instructionSize=0,this.renderables=[],this.gcTick=0}reset(){this.instructionSize=0}add(e){this.instructions[this.instructionSize++]=e}log(){this.instructions.length=this.instructionSize,console.table(this.instructions,["type","action"])}}});function Tr(r){return r+=r===0?1:0,--r,r|=r>>>1,r|=r>>>2,r|=r>>>4,r|=r>>>8,r|=r>>>16,r+1}function Nd(r){return!(r&r-1)&&!!r}var ho=p(()=>{"use strict"});function Cu(r){let e={};for(let t in r)r[t]!==void 0&&(e[t]=r[t]);return e}var Ld=p(()=>{"use strict"});function tP(r){let e=h_[r];return e===void 0&&(h_[r]=K("resource")),e}var h_,d_,et,Ui=p(()=>{Ve();Oe();ye();h_=Object.create(null);d_=class f_ extends oe{constructor(e={}){super(),this._resourceType="textureSampler",this._touched=0,this._maxAnisotropy=1,this.destroyed=!1,e={...f_.defaultOptions,...e},this.addressMode=e.addressMode,this.addressModeU=e.addressModeU??this.addressModeU,this.addressModeV=e.addressModeV??this.addressModeV,this.addressModeW=e.addressModeW??this.addressModeW,this.scaleMode=e.scaleMode,this.magFilter=e.magFilter??this.magFilter,this.minFilter=e.minFilter??this.minFilter,this.mipmapFilter=e.mipmapFilter??this.mipmapFilter,this.lodMinClamp=e.lodMinClamp,this.lodMaxClamp=e.lodMaxClamp,this.compare=e.compare,this.maxAnisotropy=e.maxAnisotropy??1}set addressMode(e){this.addressModeU=e,this.addressModeV=e,this.addressModeW=e}get addressMode(){return this.addressModeU}set wrapMode(e){z($,"TextureStyle.wrapMode is now TextureStyle.addressMode"),this.addressMode=e}get wrapMode(){return this.addressMode}set scaleMode(e){this.magFilter=e,this.minFilter=e,this.mipmapFilter=e}get scaleMode(){return this.magFilter}set maxAnisotropy(e){this._maxAnisotropy=Math.min(e,16),this._maxAnisotropy>1&&(this.scaleMode="linear")}get maxAnisotropy(){return this._maxAnisotropy}get _resourceId(){return this._sharedResourceId||this._generateResourceId()}update(){this.emit("change",this),this._sharedResourceId=null}_generateResourceId(){let e=`${this.addressModeU}-${this.addressModeV}-${this.addressModeW}-${this.magFilter}-${this.minFilter}-${this.mipmapFilter}-${this.lodMinClamp}-${this.lodMaxClamp}-${this.compare}-${this._maxAnisotropy}`;return this._sharedResourceId=tP(e),this._resourceId}destroy(){this.destroyed=!0,this.emit("destroy",this),this.emit("change",this),this.removeAllListeners()}};d_.defaultOptions={addressMode:"clamp-to-edge",scaleMode:"linear"};et=d_});var m_,se,tt=p(()=>{Ve();ho();Ld();Oe();Ui();m_=class p_ extends oe{constructor(e={}){super(),this.options=e,this.uid=K("textureSource"),this._resourceType="textureSource",this._resourceId=K("resource"),this.uploadMethodId="unknown",this._resolution=1,this.pixelWidth=1,this.pixelHeight=1,this.width=1,this.height=1,this.sampleCount=1,this.mipLevelCount=1,this.autoGenerateMipmaps=!1,this.format="rgba8unorm",this.dimension="2d",this.antialias=!1,this._touched=0,this._batchTick=-1,this._textureBindLocation=-1,e={...p_.defaultOptions,...e},this.label=e.label??"",this.resource=e.resource,this.autoGarbageCollect=e.autoGarbageCollect,this._resolution=e.resolution,e.width?this.pixelWidth=e.width*this._resolution:this.pixelWidth=this.resource?this.resourceWidth??1:1,e.height?this.pixelHeight=e.height*this._resolution:this.pixelHeight=this.resource?this.resourceHeight??1:1,this.width=this.pixelWidth/this._resolution,this.height=this.pixelHeight/this._resolution,this.format=e.format,this.dimension=e.dimensions,this.mipLevelCount=e.mipLevelCount,this.autoGenerateMipmaps=e.autoGenerateMipmaps,this.sampleCount=e.sampleCount,this.antialias=e.antialias,this.alphaMode=e.alphaMode,this.style=new et(Cu(e)),this.destroyed=!1,this._refreshPOT()}get source(){return this}get style(){return this._style}set style(e){this.style!==e&&(this._style?.off("change",this._onStyleChange,this),this._style=e,this._style?.on("change",this._onStyleChange,this),this._onStyleChange())}get addressMode(){return this._style.addressMode}set addressMode(e){this._style.addressMode=e}get repeatMode(){return this._style.addressMode}set repeatMode(e){this._style.addressMode=e}get magFilter(){return this._style.magFilter}set magFilter(e){this._style.magFilter=e}get minFilter(){return this._style.minFilter}set minFilter(e){this._style.minFilter=e}get mipmapFilter(){return this._style.mipmapFilter}set mipmapFilter(e){this._style.mipmapFilter=e}get lodMinClamp(){return this._style.lodMinClamp}set lodMinClamp(e){this._style.lodMinClamp=e}get lodMaxClamp(){return this._style.lodMaxClamp}set lodMaxClamp(e){this._style.lodMaxClamp=e}_onStyleChange(){this.emit("styleChange",this)}update(){if(this.resource){let e=this._resolution;if(this.resize(this.resourceWidth/e,this.resourceHeight/e))return}this.emit("update",this)}destroy(){this.destroyed=!0,this.emit("destroy",this),this.emit("change",this),this._style&&(this._style.destroy(),this._style=null),this.uploadMethodId=null,this.resource=null,this.removeAllListeners()}unload(){this._resourceId=K("resource"),this.emit("change",this),this.emit("unload",this)}get resourceWidth(){let{resource:e}=this;return e.naturalWidth||e.videoWidth||e.displayWidth||e.width}get resourceHeight(){let{resource:e}=this;return e.naturalHeight||e.videoHeight||e.displayHeight||e.height}get resolution(){return this._resolution}set resolution(e){this._resolution!==e&&(this._resolution=e,this.width=this.pixelWidth/e,this.height=this.pixelHeight/e)}resize(e,t,i){i||(i=this._resolution),e||(e=this.width),t||(t=this.height);let s=Math.round(e*i),n=Math.round(t*i);return this.width=s/i,this.height=n/i,this._resolution=i,this.pixelWidth===s&&this.pixelHeight===n?!1:(this._refreshPOT(),this.pixelWidth=s,this.pixelHeight=n,this.emit("resize",this),this._resourceId=K("resource"),this.emit("change",this),!0)}updateMipmaps(){this.autoGenerateMipmaps&&this.mipLevelCount>1&&this.emit("updateMipmaps",this)}set wrapMode(e){this._style.wrapMode=e}get wrapMode(){return this._style.wrapMode}set scaleMode(e){this._style.scaleMode=e}get scaleMode(){return this._style.scaleMode}_refreshPOT(){this.isPowerOfTwo=Nd(this.pixelWidth)&&Nd(this.pixelHeight)}static test(e){throw new Error("Unimplemented")}};m_.defaultOptions={resolution:1,format:"bgra8unorm",alphaMode:"premultiply-alpha-on-upload",dimensions:"2d",mipLevelCount:1,autoGenerateMipmaps:!1,sampleCount:1,antialias:!1,autoGarbageCollect:!1};se=m_});function rP(){for(let r=0;r<16;r++){let e=[];zd.push(e);for(let t=0;t<16;t++){let i=Eu(Oi[r]*Oi[t]+Ni[r]*Gi[t]),s=Eu(Gi[r]*Oi[t]+Li[r]*Gi[t]),n=Eu(Oi[r]*Ni[t]+Ni[r]*Li[t]),o=Eu(Gi[r]*Ni[t]+Li[r]*Li[t]);for(let a=0;a<16;a++)if(Oi[a]===i&&Gi[a]===s&&Ni[a]===n&&Li[a]===o){e.push(a);break}}}for(let r=0;r<16;r++){let e=new R;e.set(Oi[r],Gi[r],Ni[r],Li[r],0,0),g_.push(e)}}var Oi,Gi,Ni,Li,zd,g_,Eu,xe,x_=p(()=>{te();Oi=[1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1,0,1],Gi=[0,1,1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1],Ni=[0,-1,-1,-1,0,1,1,1,0,1,1,1,0,-1,-1,-1],Li=[1,1,0,-1,-1,-1,0,1,-1,-1,0,1,1,1,0,-1],zd=[],g_=[],Eu=Math.sign;rP();xe={E:0,SE:1,S:2,SW:3,W:4,NW:5,N:6,NE:7,MIRROR_VERTICAL:8,MAIN_DIAGONAL:10,MIRROR_HORIZONTAL:12,REVERSE_DIAGONAL:14,uX:r=>Oi[r],uY:r=>Gi[r],vX:r=>Ni[r],vY:r=>Li[r],inv:r=>r&8?r&15:-r&7,add:(r,e)=>zd[r][e],sub:(r,e)=>zd[r][xe.inv(e)],rotate180:r=>r^4,isVertical:r=>(r&3)===2,byDirection:(r,e)=>Math.abs(r)*2<=Math.abs(e)?e>=0?xe.S:xe.N:Math.abs(e)*2<=Math.abs(r)?r>0?xe.E:xe.W:e>0?r>0?xe.SE:xe.SW:r>0?xe.NE:xe.NW,matrixAppendRotationInv:(r,e,t=0,i=0)=>{let s=g_[xe.inv(e)];s.tx=t,s.ty=i,r.append(s)}}});var Vd,__=p(()=>{"use strict";Vd=()=>{}});var zi,Hd=p(()=>{B();tt();zi=class extends se{constructor(e){let t=e.resource||new Float32Array(e.width*e.height*4),i=e.format;i||(t instanceof Float32Array?i="rgba32float":t instanceof Int32Array||t instanceof Uint32Array?i="rgba32uint":t instanceof Int16Array||t instanceof Uint16Array?i="rgba16uint":(t instanceof Int8Array,i="bgra8unorm")),super({...e,resource:t,format:i}),this.uploadMethodId="buffer"}static test(e){return e instanceof Int8Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray||e instanceof Int16Array||e instanceof Uint16Array||e instanceof Int32Array||e instanceof Uint32Array||e instanceof Float32Array}};zi.extension=b.TextureSource});var b_,Bs,Wd=p(()=>{te();b_=new R,Bs=class{constructor(e,t){this.mapCoord=new R,this.uClampFrame=new Float32Array(4),this.uClampOffset=new Float32Array(2),this._textureID=-1,this._updateID=0,this.clampOffset=0,typeof t>"u"?this.clampMargin=e.width<10?0:.5:this.clampMargin=t,this.isSimple=!1,this.texture=e}get texture(){return this._texture}set texture(e){this.texture!==e&&(this._texture?.removeListener("update",this.update,this),this._texture=e,this._texture.addListener("update",this.update,this),this.update())}multiplyUvs(e,t){t===void 0&&(t=e);let i=this.mapCoord;for(let s=0;s<e.length;s+=2){let n=e[s],o=e[s+1];t[s]=n*i.a+o*i.c+i.tx,t[s+1]=n*i.b+o*i.d+i.ty}return t}update(){let e=this._texture;this._updateID++;let t=e.uvs;this.mapCoord.set(t.x1-t.x0,t.y1-t.y0,t.x3-t.x0,t.y3-t.y0,t.x0,t.y0);let i=e.orig,s=e.trim;s&&(b_.set(i.width/s.width,0,0,i.height/s.height,-s.x/s.width,-s.y/s.height),this.mapCoord.append(b_));let n=e.source,o=this.uClampFrame,a=this.clampMargin/n._resolution,c=this.clampOffset/n._resolution;return o[0]=(e.frame.x+a+c)/n.width,o[1]=(e.frame.y+a+c)/n.height,o[2]=(e.frame.x+e.frame.width-a+c)/n.width,o[3]=(e.frame.y+e.frame.height-a+c)/n.height,this.uClampOffset[0]=this.clampOffset/n.pixelWidth,this.uClampOffset[1]=this.clampOffset/n.pixelHeight,this.isSimple=e.frame.width===n.width&&e.frame.height===n.height&&e.rotate===0,!0}}});var M,le=p(()=>{Ve();x_();Ge();Oe();ye();__();Hd();tt();Wd();M=class extends oe{constructor({source:e,label:t,frame:i,orig:s,trim:n,defaultAnchor:o,defaultBorders:a,rotate:c,dynamic:u}={}){if(super(),this.uid=K("texture"),this.uvs={x0:0,y0:0,x1:0,y1:0,x2:0,y2:0,x3:0,y3:0},this.frame=new Y,this.noFrame=!1,this.dynamic=!1,this.isTexture=!0,this.label=t,this.source=e?.source??new se,this.noFrame=!i,i)this.frame.copyFrom(i);else{let{width:l,height:h}=this._source;this.frame.width=l,this.frame.height=h}this.orig=s||this.frame,this.trim=n,this.rotate=c??0,this.defaultAnchor=o,this.defaultBorders=a,this.destroyed=!1,this.dynamic=u||!1,this.updateUvs()}set source(e){this._source&&this._source.off("resize",this.update,this),this._source=e,e.on("resize",this.update,this),this.emit("update",this)}get source(){return this._source}get textureMatrix(){return this._textureMatrix||(this._textureMatrix=new Bs(this)),this._textureMatrix}get width(){return this.orig.width}get height(){return this.orig.height}updateUvs(){let{uvs:e,frame:t}=this,{width:i,height:s}=this._source,n=t.x/i,o=t.y/s,a=t.width/i,c=t.height/s,u=this.rotate;if(u){let l=a/2,h=c/2,f=n+l,d=o+h;u=xe.add(u,xe.NW),e.x0=f+l*xe.uX(u),e.y0=d+h*xe.uY(u),u=xe.add(u,2),e.x1=f+l*xe.uX(u),e.y1=d+h*xe.uY(u),u=xe.add(u,2),e.x2=f+l*xe.uX(u),e.y2=d+h*xe.uY(u),u=xe.add(u,2),e.x3=f+l*xe.uX(u),e.y3=d+h*xe.uY(u)}else e.x0=n,e.y0=o,e.x1=n+a,e.y1=o,e.x2=n+a,e.y2=o+c,e.x3=n,e.y3=o+c}destroy(e=!1){this._source&&e&&(this._source.destroy(),this._source=null),this._textureMatrix=null,this.destroyed=!0,this.emit("destroy",this),this.removeAllListeners()}update(){this.noFrame&&(this.frame.width=this._source.width,this.frame.height=this._source.height),this.updateUvs(),this.emit("update",this)}get baseTexture(){return z($,"Texture.baseTexture is now Texture.source"),this._source}};M.EMPTY=new M({label:"EMPTY",source:new se({label:"EMPTY"})});M.EMPTY.destroy=Vd;M.WHITE=new M({source:new zi({resource:new Uint8Array([255,255,255,255]),width:1,height:1,alphaMode:"premultiply-alpha-on-upload",label:"WHITE"}),label:"WHITE"});M.WHITE.destroy=Vd});var iP,$d,Te,Hr=p(()=>{ho();tt();le();Ui();iP=0,$d=class{constructor(e){this._poolKeyHash=Object.create(null),this._texturePool={},this.textureOptions=e||{},this.enableFullScreen=!1,this.textureStyle=new et(this.textureOptions)}createTexture(e,t,i){let s=new se({...this.textureOptions,width:e,height:t,resolution:1,antialias:i,autoGarbageCollect:!1});return new M({source:s,label:`texturePool_${iP++}`})}getOptimalTexture(e,t,i=1,s){let n=Math.ceil(e*i-1e-6),o=Math.ceil(t*i-1e-6);n=Tr(n),o=Tr(o);let a=(n<<17)+(o<<1)+(s?1:0);this._texturePool[a]||(this._texturePool[a]=[]);let c=this._texturePool[a].pop();return c||(c=this.createTexture(n,o,s)),c.source._resolution=i,c.source.width=n/i,c.source.height=o/i,c.source.pixelWidth=n,c.source.pixelHeight=o,c.frame.x=0,c.frame.y=0,c.frame.width=e,c.frame.height=t,c.updateUvs(),this._poolKeyHash[c.uid]=a,c}getSameSizeTexture(e,t=!1){let i=e.source;return this.getOptimalTexture(e.width,e.height,i._resolution,t)}returnTexture(e,t=!1){let i=this._poolKeyHash[e.uid];t&&(e.source.style=this.textureStyle),this._texturePool[i].push(e)}clear(e){if(e=e!==!1,e)for(let t in this._texturePool){let i=this._texturePool[t];if(i)for(let s=0;s<i.length;s++)i[s].destroy(!0)}this._texturePool={}}},Te=new $d});var ku,y_=p(()=>{te();Gd();Hr();ku=class{constructor(){this.renderPipeId="renderGroup",this.root=null,this.canBundle=!1,this.renderGroupParent=null,this.renderGroupChildren=[],this.worldTransform=new R,this.worldColorAlpha=4294967295,this.worldColor=16777215,this.worldAlpha=1,this.childrenToUpdate=Object.create(null),this.updateTick=0,this.gcTick=0,this.childrenRenderablesToUpdate={list:[],index:0},this.structureDidChange=!0,this.instructionSet=new Ps,this._onRenderContainers=[],this.textureNeedsUpdate=!0,this.isCachedAsTexture=!1,this._matrixDirty=7}init(e){this.root=e,e._onRender&&this.addOnRender(e),e.didChange=!0;let t=e.children;for(let i=0;i<t.length;i++){let s=t[i];s._updateFlags=15,this.addChild(s)}}enableCacheAsTexture(e={}){this.textureOptions=e,this.isCachedAsTexture=!0,this.textureNeedsUpdate=!0}disableCacheAsTexture(){this.isCachedAsTexture=!1,this.texture&&(Te.returnTexture(this.texture),this.texture=null)}updateCacheTexture(){this.textureNeedsUpdate=!0}reset(){this.renderGroupChildren.length=0;for(let e in this.childrenToUpdate){let t=this.childrenToUpdate[e];t.list.fill(null),t.index=0}this.childrenRenderablesToUpdate.index=0,this.childrenRenderablesToUpdate.list.fill(null),this.root=null,this.updateTick=0,this.structureDidChange=!0,this._onRenderContainers.length=0,this.renderGroupParent=null,this.disableCacheAsTexture()}get localTransform(){return this.root.localTransform}addRenderGroupChild(e){e.renderGroupParent&&e.renderGroupParent._removeRenderGroupChild(e),e.renderGroupParent=this,this.renderGroupChildren.push(e)}_removeRenderGroupChild(e){let t=this.renderGroupChildren.indexOf(e);t>-1&&this.renderGroupChildren.splice(t,1),e.renderGroupParent=null}addChild(e){if(this.structureDidChange=!0,e.parentRenderGroup=this,e.updateTick=-1,e.parent===this.root?e.relativeRenderGroupDepth=1:e.relativeRenderGroupDepth=e.parent.relativeRenderGroupDepth+1,e.didChange=!0,this.onChildUpdate(e),e.renderGroup){this.addRenderGroupChild(e.renderGroup);return}e._onRender&&this.addOnRender(e);let t=e.children;for(let i=0;i<t.length;i++)this.addChild(t[i])}removeChild(e){if(this.structureDidChange=!0,e._onRender&&(e.renderGroup||this.removeOnRender(e)),e.parentRenderGroup=null,e.renderGroup){this._removeRenderGroupChild(e.renderGroup);return}let t=e.children;for(let i=0;i<t.length;i++)this.removeChild(t[i])}removeChildren(e){for(let t=0;t<e.length;t++)this.removeChild(e[t])}onChildUpdate(e){let t=this.childrenToUpdate[e.relativeRenderGroupDepth];t||(t=this.childrenToUpdate[e.relativeRenderGroupDepth]={index:0,list:[]}),t.list[t.index++]=e}updateRenderable(e){e.globalDisplayStatus<7||(this.instructionSet.renderPipes[e.renderPipeId].updateRenderable(e),e.didViewUpdate=!1)}onChildViewUpdate(e){this.childrenRenderablesToUpdate.list[this.childrenRenderablesToUpdate.index++]=e}get isRenderable(){return this.root.localDisplayStatus===7&&this.worldAlpha>0}addOnRender(e){this._onRenderContainers.push(e)}removeOnRender(e){this._onRenderContainers.splice(this._onRenderContainers.indexOf(e),1)}runOnRender(e){for(let t=0;t<this._onRenderContainers.length;t++)this._onRenderContainers[t]._onRender(e)}destroy(){this.disableCacheAsTexture(),this.renderGroupParent=null,this.root=null,this.childrenRenderablesToUpdate=null,this.childrenToUpdate=null,this.renderGroupChildren=null,this._onRenderContainers=null,this.instructionSet=null}getChildren(e=[]){let t=this.root.children;for(let i=0;i<t.length;i++)this._getChildren(t[i],e);return e}_getChildren(e,t=[]){if(t.push(e),e.renderGroup)return t;let i=e.children;for(let s=0;s<i.length;s++)this._getChildren(i[s],t);return t}invalidateMatrices(){this._matrixDirty=7}get inverseWorldTransform(){return(this._matrixDirty&1)===0?this._inverseWorldTransform:(this._matrixDirty&=-2,this._inverseWorldTransform||(this._inverseWorldTransform=new R),this._inverseWorldTransform.copyFrom(this.worldTransform).invert())}get textureOffsetInverseTransform(){return(this._matrixDirty&2)===0?this._textureOffsetInverseTransform:(this._matrixDirty&=-3,this._textureOffsetInverseTransform||(this._textureOffsetInverseTransform=new R),this._textureOffsetInverseTransform.copyFrom(this.inverseWorldTransform).translate(-this._textureBounds.x,-this._textureBounds.y))}get inverseParentTextureTransform(){if((this._matrixDirty&4)===0)return this._inverseParentTextureTransform;this._matrixDirty&=-5;let e=this._parentCacheAsTextureRenderGroup;return e?(this._inverseParentTextureTransform||(this._inverseParentTextureTransform=new R),this._inverseParentTextureTransform.copyFrom(this.worldTransform).prepend(e.inverseWorldTransform).translate(-e._textureBounds.x,-e._textureBounds.y)):this.worldTransform}get cacheToLocalTransform(){return this._parentCacheAsTextureRenderGroup?this._parentCacheAsTextureRenderGroup.textureOffsetInverseTransform:null}}});function T_(r,e,t={}){for(let i in e)!t[i]&&e[i]!==void 0&&(r[i]=e[i])}var w_=p(()=>{"use strict"});var qd,jd,Xd,Rs,fo,Vi,we,jt=p(()=>{Ve();He();R0();B();te();Ad();xu();Oe();ye();br();G0();L0();V0();$0();j0();K0();e_();s_();o_();c_();l_();y_();w_();qd=new We(null),jd=new We(null),Xd=new We(null,1,1),Rs=1,fo=2,Vi=4,we=class r extends oe{constructor(e={}){super(),this.uid=K("renderable"),this._updateFlags=15,this.renderGroup=null,this.parentRenderGroup=null,this.parentRenderGroupIndex=0,this.didChange=!1,this.didViewUpdate=!1,this.relativeRenderGroupDepth=0,this.children=[],this.parent=null,this.includeInBuild=!0,this.measurable=!0,this.isSimple=!0,this.updateTick=-1,this.localTransform=new R,this.relativeGroupTransform=new R,this.groupTransform=this.relativeGroupTransform,this.destroyed=!1,this._position=new We(this,0,0),this._scale=Xd,this._pivot=jd,this._skew=qd,this._cx=1,this._sx=0,this._cy=0,this._sy=1,this._rotation=0,this.localColor=16777215,this.localAlpha=1,this.groupAlpha=1,this.groupColor=16777215,this.groupColorAlpha=4294967295,this.localBlendMode="inherit",this.groupBlendMode="normal",this.localDisplayStatus=7,this.globalDisplayStatus=7,this._didContainerChangeTick=0,this._didViewChangeTick=0,this._didLocalTransformChangeId=-1,this.effects=[],T_(this,e,{children:!0,parent:!0,effects:!0}),e.children?.forEach(t=>this.addChild(t)),e.parent?.addChild(this)}static mixin(e){z("8.8.0","Container.mixin is deprecated, please use extensions.mixin instead."),O.mixin(r,e)}set _didChangeId(e){this._didViewChangeTick=e>>12&4095,this._didContainerChangeTick=e&4095}get _didChangeId(){return this._didContainerChangeTick&4095|(this._didViewChangeTick&4095)<<12}addChild(...e){if(this.allowChildren||z($,"addChild: Only Containers will be allowed to add children in v8.0.0"),e.length>1){for(let s=0;s<e.length;s++)this.addChild(e[s]);return e[0]}let t=e[0],i=this.renderGroup||this.parentRenderGroup;return t.parent===this?(this.children.splice(this.children.indexOf(t),1),this.children.push(t),i&&(i.structureDidChange=!0),t):(t.parent&&t.parent.removeChild(t),this.children.push(t),this.sortableChildren&&(this.sortDirty=!0),t.parent=this,t.didChange=!0,t._updateFlags=15,i&&i.addChild(t),this.emit("childAdded",t,this,this.children.length-1),t.emit("added",this),this._didViewChangeTick++,t._zIndex!==0&&t.depthOfChildModified(),t)}removeChild(...e){if(e.length>1){for(let s=0;s<e.length;s++)this.removeChild(e[s]);return e[0]}let t=e[0],i=this.children.indexOf(t);return i>-1&&(this._didViewChangeTick++,this.children.splice(i,1),this.renderGroup?this.renderGroup.removeChild(t):this.parentRenderGroup&&this.parentRenderGroup.removeChild(t),t.parentRenderLayer&&t.parentRenderLayer.detach(t),t.parent=null,this.emit("childRemoved",t,this,i),t.emit("removed",this)),t}_onUpdate(e){e&&e===this._skew&&this._updateSkew(),this._didContainerChangeTick++,!this.didChange&&(this.didChange=!0,this.parentRenderGroup&&this.parentRenderGroup.onChildUpdate(this))}set isRenderGroup(e){!!this.renderGroup!==e&&(e?this.enableRenderGroup():this.disableRenderGroup())}get isRenderGroup(){return!!this.renderGroup}enableRenderGroup(){if(this.renderGroup)return;let e=this.parentRenderGroup;e?.removeChild(this),this.renderGroup=me.get(ku,this),this.groupTransform=R.IDENTITY,e?.addChild(this),this._updateIsSimple()}disableRenderGroup(){if(!this.renderGroup)return;let e=this.parentRenderGroup;e?.removeChild(this),me.return(this.renderGroup),this.renderGroup=null,this.groupTransform=this.relativeGroupTransform,e?.addChild(this),this._updateIsSimple()}_updateIsSimple(){this.isSimple=!this.renderGroup&&this.effects.length===0}get worldTransform(){return this._worldTransform||(this._worldTransform=new R),this.renderGroup?this._worldTransform.copyFrom(this.renderGroup.worldTransform):this.parentRenderGroup&&this._worldTransform.appendFrom(this.relativeGroupTransform,this.parentRenderGroup.worldTransform),this._worldTransform}get x(){return this._position.x}set x(e){this._position.x=e}get y(){return this._position.y}set y(e){this._position.y=e}get position(){return this._position}set position(e){this._position.copyFrom(e)}get rotation(){return this._rotation}set rotation(e){this._rotation!==e&&(this._rotation=e,this._onUpdate(this._skew))}get angle(){return this.rotation*M0}set angle(e){this.rotation=e*I0}get pivot(){return this._pivot===jd&&(this._pivot=new We(this,0,0)),this._pivot}set pivot(e){this._pivot===jd&&(this._pivot=new We(this,0,0)),typeof e=="number"?this._pivot.set(e):this._pivot.copyFrom(e)}get skew(){return this._skew===qd&&(this._skew=new We(this,0,0)),this._skew}set skew(e){this._skew===qd&&(this._skew=new We(this,0,0)),this._skew.copyFrom(e)}get scale(){return this._scale===Xd&&(this._scale=new We(this,1,1)),this._scale}set scale(e){this._scale===Xd&&(this._scale=new We(this,0,0)),typeof e=="number"?this._scale.set(e):this._scale.copyFrom(e)}get width(){return Math.abs(this.scale.x*this.getLocalBounds().width)}set width(e){let t=this.getLocalBounds().width;this._setWidth(e,t)}get height(){return Math.abs(this.scale.y*this.getLocalBounds().height)}set height(e){let t=this.getLocalBounds().height;this._setHeight(e,t)}getSize(e){e||(e={});let t=this.getLocalBounds();return e.width=Math.abs(this.scale.x*t.width),e.height=Math.abs(this.scale.y*t.height),e}setSize(e,t){let i=this.getLocalBounds();typeof e=="object"?(t=e.height??e.width,e=e.width):t??(t=e),e!==void 0&&this._setWidth(e,i.width),t!==void 0&&this._setHeight(t,i.height)}_updateSkew(){let e=this._rotation,t=this._skew;this._cx=Math.cos(e+t._y),this._sx=Math.sin(e+t._y),this._cy=-Math.sin(e-t._x),this._sy=Math.cos(e-t._x)}updateTransform(e){return this.position.set(typeof e.x=="number"?e.x:this.position.x,typeof e.y=="number"?e.y:this.position.y),this.scale.set(typeof e.scaleX=="number"?e.scaleX||1:this.scale.x,typeof e.scaleY=="number"?e.scaleY||1:this.scale.y),this.rotation=typeof e.rotation=="number"?e.rotation:this.rotation,this.skew.set(typeof e.skewX=="number"?e.skewX:this.skew.x,typeof e.skewY=="number"?e.skewY:this.skew.y),this.pivot.set(typeof e.pivotX=="number"?e.pivotX:this.pivot.x,typeof e.pivotY=="number"?e.pivotY:this.pivot.y),this}setFromMatrix(e){e.decompose(this)}updateLocalTransform(){let e=this._didContainerChangeTick;if(this._didLocalTransformChangeId===e)return;this._didLocalTransformChangeId=e;let t=this.localTransform,i=this._scale,s=this._pivot,n=this._position,o=i._x,a=i._y,c=s._x,u=s._y;t.a=this._cx*o,t.b=this._sx*o,t.c=this._cy*a,t.d=this._sy*a,t.tx=n._x-(c*t.a+u*t.c),t.ty=n._y-(c*t.b+u*t.d)}set alpha(e){e!==this.localAlpha&&(this.localAlpha=e,this._updateFlags|=Rs,this._onUpdate())}get alpha(){return this.localAlpha}set tint(e){let i=q.shared.setValue(e??16777215).toBgrNumber();i!==this.localColor&&(this.localColor=i,this._updateFlags|=Rs,this._onUpdate())}get tint(){return lo(this.localColor)}set blendMode(e){this.localBlendMode!==e&&(this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._updateFlags|=fo,this.localBlendMode=e,this._onUpdate())}get blendMode(){return this.localBlendMode}get visible(){return!!(this.localDisplayStatus&2)}set visible(e){let t=e?2:0;(this.localDisplayStatus&2)!==t&&(this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._updateFlags|=Vi,this.localDisplayStatus^=2,this._onUpdate())}get culled(){return!(this.localDisplayStatus&4)}set culled(e){let t=e?0:4;(this.localDisplayStatus&4)!==t&&(this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._updateFlags|=Vi,this.localDisplayStatus^=4,this._onUpdate())}get renderable(){return!!(this.localDisplayStatus&1)}set renderable(e){let t=e?1:0;(this.localDisplayStatus&1)!==t&&(this._updateFlags|=Vi,this.localDisplayStatus^=1,this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._onUpdate())}get isRenderable(){return this.localDisplayStatus===7&&this.groupAlpha>0}destroy(e=!1){if(this.destroyed)return;this.destroyed=!0;let t;if(this.children.length&&(t=this.removeChildren(0,this.children.length)),this.removeFromParent(),this.parent=null,this._maskEffect=null,this._filterEffect=null,this.effects=null,this._position=null,this._scale=null,this._pivot=null,this._skew=null,this.emit("destroyed",this),this.removeAllListeners(),(typeof e=="boolean"?e:e?.children)&&t)for(let s=0;s<t.length;++s)t[s].destroy(e);this.renderGroup?.destroy(),this.renderGroup=null}};O.mixin(we,N0,Y0,u_,n_,i_,W0,q0,a_,B0,O0,J0,z0)});var Wr,Au=p(()=>{Ft();Wr=class r{constructor(e){this.bubbles=!0,this.cancelBubble=!0,this.cancelable=!1,this.composed=!1,this.defaultPrevented=!1,this.eventPhase=r.prototype.NONE,this.propagationStopped=!1,this.propagationImmediatelyStopped=!1,this.layer=new J,this.page=new J,this.NONE=0,this.CAPTURING_PHASE=1,this.AT_TARGET=2,this.BUBBLING_PHASE=3,this.manager=e}get layerX(){return this.layer.x}get layerY(){return this.layer.y}get pageX(){return this.page.x}get pageY(){return this.page.y}get data(){return this}composedPath(){return this.manager&&(!this.path||this.path[this.path.length-1]!==this.target)&&(this.path=this.target?this.manager.propagationPath(this.target):[]),this.path}initEvent(e,t,i){throw new Error("initEvent() is a legacy DOM API. It is not implemented in the Federated Events API.")}initUIEvent(e,t,i,s,n){throw new Error("initUIEvent() is a legacy DOM API. It is not implemented in the Federated Events API.")}preventDefault(){this.nativeEvent instanceof Event&&this.nativeEvent.cancelable&&this.nativeEvent.preventDefault(),this.defaultPrevented=!0}stopImmediatePropagation(){this.propagationImmediatelyStopped=!0}stopPropagation(){this.propagationStopped=!0}}});function sP(r){return function(e){return e.test(r)}}function mo(r){var e={userAgent:"",platform:"",maxTouchPoints:0};!r&&typeof navigator<"u"?e={userAgent:navigator.userAgent,platform:navigator.platform,maxTouchPoints:navigator.maxTouchPoints||0}:typeof r=="string"?e.userAgent=r:r&&r.userAgent&&(e={userAgent:r.userAgent,platform:r.platform,maxTouchPoints:r.maxTouchPoints||0});var t=e.userAgent,i=t.split("[FBAN");typeof i[1]<"u"&&(t=i[0]),i=t.split("Twitter"),typeof i[1]<"u"&&(t=i[0]);var s=sP(t),n={apple:{phone:s(Yd)&&!s(wr),ipod:s(S_),tablet:!s(Yd)&&(s(v_)||M_(e))&&!s(wr),universal:s(C_),device:(s(Yd)||s(S_)||s(v_)||s(C_)||M_(e))&&!s(wr)},amazon:{phone:s(Ds),tablet:!s(Ds)&&s(Pu),device:s(Ds)||s(Pu)},android:{phone:!s(wr)&&s(Ds)||!s(wr)&&s(Kd),tablet:!s(wr)&&!s(Ds)&&!s(Kd)&&(s(Pu)||s(E_)),device:!s(wr)&&(s(Ds)||s(Pu)||s(Kd)||s(E_))||s(/\bokhttp\b/i)},windows:{phone:s(wr),tablet:s(k_),device:s(wr)||s(k_)},other:{blackberry:s(A_),blackberry10:s(P_),opera:s(B_),firefox:s(D_),chrome:s(R_),device:s(A_)||s(P_)||s(B_)||s(D_)||s(R_)},any:!1,phone:!1,tablet:!1};return n.any=n.apple.device||n.android.device||n.windows.device||n.other.device,n.phone=n.apple.phone||n.android.phone||n.windows.phone,n.tablet=n.apple.tablet||n.android.tablet||n.windows.tablet,n}var Yd,S_,v_,C_,Kd,E_,Ds,Pu,wr,k_,A_,P_,B_,R_,D_,M_,Qd=p(()=>{Yd=/iPhone/i,S_=/iPod/i,v_=/iPad/i,C_=/\biOS-universal(?:.+)Mac\b/i,Kd=/\bAndroid(?:.+)Mobile\b/i,E_=/Android/i,Ds=/(?:SD4930UR|\bSilk(?:.+)Mobile\b)/i,Pu=/Silk/i,wr=/Windows Phone/i,k_=/\bWindows(?:.+)ARM\b/i,A_=/BlackBerry/i,P_=/BB10/i,B_=/Opera Mini/i,R_=/\b(CriOS|Chrome)(?:.+)Mobile/i,D_=/Mobile(?:.+)Firefox\b/i,M_=function(r){return typeof r<"u"&&r.platform==="MacIntel"&&typeof r.maxTouchPoints=="number"&&r.maxTouchPoints>1&&typeof MSStream>"u"}});var I_=p(()=>{Qd();Qd()});var nP,F_,U_=p(()=>{I_();nP=mo.default??mo,F_=nP(globalThis.navigator)});var oP,Bu,aP,cP,O_,G_,uP,lP,hP,Zd,L_,z_=p(()=>{Au();B();U_();Md();oP=9,Bu=100,aP=0,cP=0,O_=2,G_=1,uP=-1e3,lP=-1e3,hP=2,Zd=class N_{constructor(e,t=F_){this._mobileInfo=t,this.debug=!1,this._activateOnTab=!0,this._deactivateOnMouseMove=!0,this._isActive=!1,this._isMobileAccessibility=!1,this._div=null,this._pool=[],this._renderId=0,this._children=[],this._androidUpdateCount=0,this._androidUpdateFrequency=500,this._hookDiv=null,(t.tablet||t.phone)&&this._createTouchHook(),this._renderer=e}get isActive(){return this._isActive}get isMobileAccessibility(){return this._isMobileAccessibility}get hookDiv(){return this._hookDiv}_createTouchHook(){let e=document.createElement("button");e.style.width=`${G_}px`,e.style.height=`${G_}px`,e.style.position="absolute",e.style.top=`${uP}px`,e.style.left=`${lP}px`,e.style.zIndex=hP.toString(),e.style.backgroundColor="#FF0000",e.title="select to enable accessibility for this content",e.addEventListener("focus",()=>{this._isMobileAccessibility=!0,this._activate(),this._destroyTouchHook()}),document.body.appendChild(e),this._hookDiv=e}_destroyTouchHook(){this._hookDiv&&(document.body.removeChild(this._hookDiv),this._hookDiv=null)}_activate(){if(this._isActive)return;this._isActive=!0,this._div||(this._div=document.createElement("div"),this._div.style.width=`${Bu}px`,this._div.style.height=`${Bu}px`,this._div.style.position="absolute",this._div.style.top=`${aP}px`,this._div.style.left=`${cP}px`,this._div.style.zIndex=O_.toString(),this._div.style.pointerEvents="none"),this._activateOnTab&&(this._onKeyDown=this._onKeyDown.bind(this),globalThis.addEventListener("keydown",this._onKeyDown,!1)),this._deactivateOnMouseMove&&(this._onMouseMove=this._onMouseMove.bind(this),globalThis.document.addEventListener("mousemove",this._onMouseMove,!0));let e=this._renderer.view.canvas;if(e.parentNode)e.parentNode.appendChild(this._div),this._initAccessibilitySetup();else{let t=new MutationObserver(()=>{e.parentNode&&(e.parentNode.appendChild(this._div),t.disconnect(),this._initAccessibilitySetup())});t.observe(document.body,{childList:!0,subtree:!0})}}_initAccessibilitySetup(){this._renderer.runners.postrender.add(this),this._renderer.lastObjectRendered&&this._updateAccessibleObjects(this._renderer.lastObjectRendered)}_deactivate(){if(!(!this._isActive||this._isMobileAccessibility)){this._isActive=!1,globalThis.document.removeEventListener("mousemove",this._onMouseMove,!0),this._activateOnTab&&globalThis.addEventListener("keydown",this._onKeyDown,!1),this._renderer.runners.postrender.remove(this);for(let e of this._children)e._accessibleDiv&&e._accessibleDiv.parentNode&&(e._accessibleDiv.parentNode.removeChild(e._accessibleDiv),e._accessibleDiv=null),e._accessibleActive=!1;this._pool.forEach(e=>{e.parentNode&&e.parentNode.removeChild(e)}),this._div&&this._div.parentNode&&this._div.parentNode.removeChild(this._div),this._pool=[],this._children=[]}}_updateAccessibleObjects(e){if(!e.visible||!e.accessibleChildren)return;e.accessible&&(e._accessibleActive||this._addChild(e),e._renderId=this._renderId);let t=e.children;if(t)for(let i=0;i<t.length;i++)this._updateAccessibleObjects(t[i])}init(e){let i={accessibilityOptions:{...N_.defaultOptions,...e?.accessibilityOptions||{}}};this.debug=i.accessibilityOptions.debug,this._activateOnTab=i.accessibilityOptions.activateOnTab,this._deactivateOnMouseMove=i.accessibilityOptions.deactivateOnMouseMove,i.accessibilityOptions.enabledByDefault?this._activate():this._activateOnTab&&(this._onKeyDown=this._onKeyDown.bind(this),globalThis.addEventListener("keydown",this._onKeyDown,!1)),this._renderer.runners.postrender.remove(this)}postrender(){let e=performance.now();if(this._mobileInfo.android.device&&e<this._androidUpdateCount||(this._androidUpdateCount=e+this._androidUpdateFrequency,!this._renderer.renderingToScreen||!this._renderer.view.canvas))return;let t=new Set;if(this._renderer.lastObjectRendered){this._updateAccessibleObjects(this._renderer.lastObjectRendered);for(let i of this._children)i._renderId===this._renderId&&t.add(this._children.indexOf(i))}for(let i=this._children.length-1;i>=0;i--){let s=this._children[i];t.has(i)||(s._accessibleDiv&&s._accessibleDiv.parentNode&&(s._accessibleDiv.parentNode.removeChild(s._accessibleDiv),this._pool.push(s._accessibleDiv),s._accessibleDiv=null),s._accessibleActive=!1,_u(this._children,i,1))}if(this._renderer.renderingToScreen){let{x:i,y:s,width:n,height:o}=this._renderer.screen,a=this._div;a.style.left=`${i}px`,a.style.top=`${s}px`,a.style.width=`${n}px`,a.style.height=`${o}px`}for(let i=0;i<this._children.length;i++){let s=this._children[i];if(!s._accessibleActive||!s._accessibleDiv)continue;let n=s._accessibleDiv,o=s.hitArea||s.getBounds().rectangle;if(s.hitArea){let a=s.worldTransform,c=this._renderer.resolution,u=this._renderer.resolution;n.style.left=`${(a.tx+o.x*a.a)*c}px`,n.style.top=`${(a.ty+o.y*a.d)*u}px`,n.style.width=`${o.width*a.a*c}px`,n.style.height=`${o.height*a.d*u}px`}else{this._capHitArea(o);let a=this._renderer.resolution,c=this._renderer.resolution;n.style.left=`${o.x*a}px`,n.style.top=`${o.y*c}px`,n.style.width=`${o.width*a}px`,n.style.height=`${o.height*c}px`}}this._renderId++}_updateDebugHTML(e){e.innerHTML=`type: ${e.type}</br> title : ${e.title}</br> tabIndex: ${e.tabIndex}`}_capHitArea(e){e.x<0&&(e.width+=e.x,e.x=0),e.y<0&&(e.height+=e.y,e.y=0);let{width:t,height:i}=this._renderer;e.x+e.width>t&&(e.width=t-e.x),e.y+e.height>i&&(e.height=i-e.y)}_addChild(e){let t=this._pool.pop();t||(e.accessibleType==="button"?t=document.createElement("button"):(t=document.createElement(e.accessibleType),t.style.cssText=`
7
- color: transparent;
8
- pointer-events: none;
9
- padding: 0;
10
- margin: 0;
11
- border: 0;
12
- outline: 0;
13
- background: transparent;
14
- box-sizing: border-box;
15
- user-select: none;
16
- -webkit-user-select: none;
17
- -moz-user-select: none;
18
- -ms-user-select: none;
19
- `,e.accessibleText&&(t.innerText=e.accessibleText)),t.style.width=`${Bu}px`,t.style.height=`${Bu}px`,t.style.backgroundColor=this.debug?"rgba(255,255,255,0.5)":"transparent",t.style.position="absolute",t.style.zIndex=O_.toString(),t.style.borderStyle="none",navigator.userAgent.toLowerCase().includes("chrome")?t.setAttribute("aria-live","off"):t.setAttribute("aria-live","polite"),navigator.userAgent.match(/rv:.*Gecko\//)?t.setAttribute("aria-relevant","additions"):t.setAttribute("aria-relevant","text"),t.addEventListener("click",this._onClick.bind(this)),t.addEventListener("focus",this._onFocus.bind(this)),t.addEventListener("focusout",this._onFocusOut.bind(this))),t.style.pointerEvents=e.accessiblePointerEvents,t.type=e.accessibleType,e.accessibleTitle&&e.accessibleTitle!==null?t.title=e.accessibleTitle:(!e.accessibleHint||e.accessibleHint===null)&&(t.title=`container ${e.tabIndex}`),e.accessibleHint&&e.accessibleHint!==null&&t.setAttribute("aria-label",e.accessibleHint),this.debug&&this._updateDebugHTML(t),e._accessibleActive=!0,e._accessibleDiv=t,t.container=e,this._children.push(e),this._div.appendChild(e._accessibleDiv),e.interactive&&(e._accessibleDiv.tabIndex=e.tabIndex)}_dispatchEvent(e,t){let{container:i}=e.target,s=this._renderer.events.rootBoundary,n=Object.assign(new Wr(s),{target:i});s.rootTarget=this._renderer.lastObjectRendered,t.forEach(o=>s.dispatchEvent(n,o))}_onClick(e){this._dispatchEvent(e,["click","pointertap","tap"])}_onFocus(e){e.target.getAttribute("aria-live")||e.target.setAttribute("aria-live","assertive"),this._dispatchEvent(e,["mouseover"])}_onFocusOut(e){e.target.getAttribute("aria-live")||e.target.setAttribute("aria-live","polite"),this._dispatchEvent(e,["mouseout"])}_onKeyDown(e){e.keyCode!==oP||!this._activateOnTab||this._activate()}_onMouseMove(e){e.movementX===0&&e.movementY===0||this._deactivate()}destroy(){this._deactivate(),this._destroyTouchHook(),this._div=null,this._pool=null,this._children=null,this._renderer=null,this._activateOnTab&&globalThis.removeEventListener("keydown",this._onKeyDown)}setAccessibilityEnabled(e){e?this._activate():this._deactivate()}};Zd.extension={type:[b.WebGLSystem,b.WebGPUSystem],name:"accessibility"};Zd.defaultOptions={enabledByDefault:!1,debug:!1,activateOnTab:!0,deactivateOnMouseMove:!0};L_=Zd});var V_,H_=p(()=>{"use strict";V_={accessible:!1,accessibleTitle:null,accessibleHint:null,tabIndex:0,accessibleType:"button",accessibleText:null,accessiblePointerEvents:"auto",accessibleChildren:!0,_accessibleActive:!1,_accessibleDiv:null,_renderId:-1}});var W_=p(()=>{B();jt();z_();H_();O.add(L_);O.mixin(we,V_)});var po,$_=p(()=>{B();po=class{static init(e){Object.defineProperty(this,"resizeTo",{set(t){globalThis.removeEventListener("resize",this.queueResize),this._resizeTo=t,t&&(globalThis.addEventListener("resize",this.queueResize),this.resize())},get(){return this._resizeTo}}),this.queueResize=()=>{this._resizeTo&&(this._cancelResize(),this._resizeId=requestAnimationFrame(()=>this.resize()))},this._cancelResize=()=>{this._resizeId&&(cancelAnimationFrame(this._resizeId),this._resizeId=null)},this.resize=()=>{if(!this._resizeTo)return;this._cancelResize();let t,i;if(this._resizeTo===globalThis.window)t=globalThis.innerWidth,i=globalThis.innerHeight;else{let{clientWidth:s,clientHeight:n}=this._resizeTo;t=s,i=n}this.renderer.resize(t,i),this.render()},this._resizeId=null,this._resizeTo=null,this.resizeTo=e.resizeTo||null}static destroy(){globalThis.removeEventListener("resize",this.queueResize),this._cancelResize(),this._cancelResize=null,this.queueResize=null,this.resizeTo=null,this.resize=null}};po.extension=b.Application});var $r,Ru=p(()=>{"use strict";$r=(r=>(r[r.INTERACTION=50]="INTERACTION",r[r.HIGH=25]="HIGH",r[r.NORMAL=0]="NORMAL",r[r.LOW=-25]="LOW",r[r.UTILITY=-50]="UTILITY",r))($r||{})});var Ms,q_=p(()=>{"use strict";Ms=class{constructor(e,t=null,i=0,s=!1){this.next=null,this.previous=null,this._destroyed=!1,this._fn=e,this._context=t,this.priority=i,this._once=s}match(e,t=null){return this._fn===e&&this._context===t}emit(e){this._fn&&(this._context?this._fn.call(this._context,e):this._fn(e));let t=this.next;return this._once&&this.destroy(!0),this._destroyed&&(this.next=null),t}connect(e){this.previous=e,e.next&&(e.next.previous=this),this.next=e.next,e.next=this}destroy(e=!1){this._destroyed=!0,this._fn=null,this._context=null,this.previous&&(this.previous.next=this.next),this.next&&(this.next.previous=this.previous);let t=this.next;return this.next=e?null:t,this.previous=null,t}}});var j_,ct,go=p(()=>{Ru();q_();j_=class _t{constructor(){this.autoStart=!1,this.deltaTime=1,this.lastTime=-1,this.speed=1,this.started=!1,this._requestId=null,this._maxElapsedMS=100,this._minElapsedMS=0,this._protected=!1,this._lastFrame=-1,this._head=new Ms(null,null,1/0),this.deltaMS=1/_t.targetFPMS,this.elapsedMS=1/_t.targetFPMS,this._tick=e=>{this._requestId=null,this.started&&(this.update(e),this.started&&this._requestId===null&&this._head.next&&(this._requestId=requestAnimationFrame(this._tick)))}}_requestIfNeeded(){this._requestId===null&&this._head.next&&(this.lastTime=performance.now(),this._lastFrame=this.lastTime,this._requestId=requestAnimationFrame(this._tick))}_cancelIfNeeded(){this._requestId!==null&&(cancelAnimationFrame(this._requestId),this._requestId=null)}_startIfPossible(){this.started?this._requestIfNeeded():this.autoStart&&this.start()}add(e,t,i=$r.NORMAL){return this._addListener(new Ms(e,t,i))}addOnce(e,t,i=$r.NORMAL){return this._addListener(new Ms(e,t,i,!0))}_addListener(e){let t=this._head.next,i=this._head;if(!t)e.connect(i);else{for(;t;){if(e.priority>t.priority){e.connect(i);break}i=t,t=t.next}e.previous||e.connect(i)}return this._startIfPossible(),this}remove(e,t){let i=this._head.next;for(;i;)i.match(e,t)?i=i.destroy():i=i.next;return this._head.next||this._cancelIfNeeded(),this}get count(){if(!this._head)return 0;let e=0,t=this._head;for(;t=t.next;)e++;return e}start(){this.started||(this.started=!0,this._requestIfNeeded())}stop(){this.started&&(this.started=!1,this._cancelIfNeeded())}destroy(){if(!this._protected){this.stop();let e=this._head.next;for(;e;)e=e.destroy(!0);this._head.destroy(),this._head=null}}update(e=performance.now()){let t;if(e>this.lastTime){if(t=this.elapsedMS=e-this.lastTime,t>this._maxElapsedMS&&(t=this._maxElapsedMS),t*=this.speed,this._minElapsedMS){let n=e-this._lastFrame|0;if(n<this._minElapsedMS)return;this._lastFrame=e-n%this._minElapsedMS}this.deltaMS=t,this.deltaTime=this.deltaMS*_t.targetFPMS;let i=this._head,s=i.next;for(;s;)s=s.emit(this);i.next||this._cancelIfNeeded()}else this.deltaTime=this.deltaMS=this.elapsedMS=0;this.lastTime=e}get FPS(){return 1e3/this.elapsedMS}get minFPS(){return 1e3/this._maxElapsedMS}set minFPS(e){let t=Math.min(this.maxFPS,e),i=Math.min(Math.max(0,t)/1e3,_t.targetFPMS);this._maxElapsedMS=1/i}get maxFPS(){return this._minElapsedMS?Math.round(1e3/this._minElapsedMS):0}set maxFPS(e){if(e===0)this._minElapsedMS=0;else{let t=Math.max(this.minFPS,e);this._minElapsedMS=1/(t/1e3)}}static get shared(){if(!_t._shared){let e=_t._shared=new _t;e.autoStart=!0,e._protected=!0}return _t._shared}static get system(){if(!_t._system){let e=_t._system=new _t;e.autoStart=!0,e._protected=!0}return _t._system}};j_.targetFPMS=.06;ct=j_});var xo,X_=p(()=>{B();Ru();go();xo=class{static init(e){e=Object.assign({autoStart:!0,sharedTicker:!1},e),Object.defineProperty(this,"ticker",{set(t){this._ticker&&this._ticker.remove(this.render,this),this._ticker=t,t&&t.add(this.render,this,$r.LOW)},get(){return this._ticker}}),this.stop=()=>{this._ticker.stop()},this.start=()=>{this._ticker.start()},this._ticker=null,this.ticker=e.sharedTicker?ct.shared:new ct,e.autoStart&&this.start()}static destroy(){if(this._ticker){let e=this._ticker;this.ticker=null,e.destroy()}}};xo.extension=b.Application});var Jd=p(()=>{B();$_();X_();O.add(po);O.add(xo)});function N(...r){ef!==Y_&&(ef++,ef===Y_?console.warn("PixiJS Warning: too many warnings, no more warnings will be reported to the console by PixiJS."):console.warn("PixiJS Warning: ",...r))}var ef,Y_,pe=p(()=>{"use strict";ef=0,Y_=500});var tf,Xt,rf=p(()=>{Ru();go();tf=class{constructor(){this.interactionFrequency=10,this._deltaTime=0,this._didMove=!1,this._tickerAdded=!1,this._pauseUpdate=!0}init(e){this.removeTickerListener(),this.events=e,this.interactionFrequency=10,this._deltaTime=0,this._didMove=!1,this._tickerAdded=!1,this._pauseUpdate=!0}get pauseUpdate(){return this._pauseUpdate}set pauseUpdate(e){this._pauseUpdate=e}addTickerListener(){this._tickerAdded||!this.domElement||(ct.system.add(this._tickerUpdate,this,$r.INTERACTION),this._tickerAdded=!0)}removeTickerListener(){this._tickerAdded&&(ct.system.remove(this._tickerUpdate,this),this._tickerAdded=!1)}pointerMoved(){this._didMove=!0}_update(){if(!this.domElement||this._pauseUpdate)return;if(this._didMove){this._didMove=!1;return}let e=this.events._rootPointerEvent;this.events.supportsTouchEvents&&e.pointerType==="touch"||globalThis.document.dispatchEvent(this.events.supportsPointerEvents?new PointerEvent("pointermove",{clientX:e.clientX,clientY:e.clientY,pointerType:e.pointerType,pointerId:e.pointerId}):new MouseEvent("mousemove",{clientX:e.clientX,clientY:e.clientY}))}_tickerUpdate(e){this._deltaTime+=e.deltaTime,!(this._deltaTime<this.interactionFrequency)&&(this._deltaTime=0,this._update())}},Xt=new tf});var Sr,Du=p(()=>{Ft();Au();Sr=class extends Wr{constructor(){super(...arguments),this.client=new J,this.movement=new J,this.offset=new J,this.global=new J,this.screen=new J}get clientX(){return this.client.x}get clientY(){return this.client.y}get x(){return this.clientX}get y(){return this.clientY}get movementX(){return this.movement.x}get movementY(){return this.movement.y}get offsetX(){return this.offset.x}get offsetY(){return this.offset.y}get globalX(){return this.global.x}get globalY(){return this.global.y}get screenX(){return this.screen.x}get screenY(){return this.screen.y}getLocalPosition(e,t,i){return e.worldTransform.applyInverse(i||this.global,t)}getModifierState(e){return"getModifierState"in this.nativeEvent&&this.nativeEvent.getModifierState(e)}initMouseEvent(e,t,i,s,n,o,a,c,u,l,h,f,d,m,x){throw new Error("Method not implemented.")}}});var rt,sf=p(()=>{Du();rt=class extends Sr{constructor(){super(...arguments),this.width=0,this.height=0,this.isPrimary=!1}getCoalescedEvents(){return this.type==="pointermove"||this.type==="mousemove"||this.type==="touchmove"?[this]:[]}getPredictedEvents(){throw new Error("getPredictedEvents is not supported!")}}});var Yt,nf=p(()=>{Du();Yt=class extends Sr{constructor(){super(...arguments),this.DOM_DELTA_PIXEL=0,this.DOM_DELTA_LINE=1,this.DOM_DELTA_PAGE=2}};Yt.DOM_DELTA_PIXEL=0;Yt.DOM_DELTA_LINE=1;Yt.DOM_DELTA_PAGE=2});var dP,fP,_o,Mu,K_=p(()=>{Ve();Ft();pe();rf();Du();sf();nf();dP=2048,fP=new J,_o=new J,Mu=class{constructor(e){this.dispatch=new oe,this.moveOnAll=!1,this.enableGlobalMoveEvents=!0,this.mappingState={trackingData:{}},this.eventPool=new Map,this._allInteractiveElements=[],this._hitElements=[],this._isPointerMoveEvent=!1,this.rootTarget=e,this.hitPruneFn=this.hitPruneFn.bind(this),this.hitTestFn=this.hitTestFn.bind(this),this.mapPointerDown=this.mapPointerDown.bind(this),this.mapPointerMove=this.mapPointerMove.bind(this),this.mapPointerOut=this.mapPointerOut.bind(this),this.mapPointerOver=this.mapPointerOver.bind(this),this.mapPointerUp=this.mapPointerUp.bind(this),this.mapPointerUpOutside=this.mapPointerUpOutside.bind(this),this.mapWheel=this.mapWheel.bind(this),this.mappingTable={},this.addEventMapping("pointerdown",this.mapPointerDown),this.addEventMapping("pointermove",this.mapPointerMove),this.addEventMapping("pointerout",this.mapPointerOut),this.addEventMapping("pointerleave",this.mapPointerOut),this.addEventMapping("pointerover",this.mapPointerOver),this.addEventMapping("pointerup",this.mapPointerUp),this.addEventMapping("pointerupoutside",this.mapPointerUpOutside),this.addEventMapping("wheel",this.mapWheel)}addEventMapping(e,t){this.mappingTable[e]||(this.mappingTable[e]=[]),this.mappingTable[e].push({fn:t,priority:0}),this.mappingTable[e].sort((i,s)=>i.priority-s.priority)}dispatchEvent(e,t){e.propagationStopped=!1,e.propagationImmediatelyStopped=!1,this.propagate(e,t),this.dispatch.emit(t||e.type,e)}mapEvent(e){if(!this.rootTarget)return;let t=this.mappingTable[e.type];if(t)for(let i=0,s=t.length;i<s;i++)t[i].fn(e);else N(`[EventBoundary]: Event mapping not defined for ${e.type}`)}hitTest(e,t){Xt.pauseUpdate=!0;let s=this._isPointerMoveEvent&&this.enableGlobalMoveEvents?"hitTestMoveRecursive":"hitTestRecursive",n=this[s](this.rootTarget,this.rootTarget.eventMode,fP.set(e,t),this.hitTestFn,this.hitPruneFn);return n&&n[0]}propagate(e,t){if(!e.target)return;let i=e.composedPath();e.eventPhase=e.CAPTURING_PHASE;for(let s=0,n=i.length-1;s<n;s++)if(e.currentTarget=i[s],this.notifyTarget(e,t),e.propagationStopped||e.propagationImmediatelyStopped)return;if(e.eventPhase=e.AT_TARGET,e.currentTarget=e.target,this.notifyTarget(e,t),!(e.propagationStopped||e.propagationImmediatelyStopped)){e.eventPhase=e.BUBBLING_PHASE;for(let s=i.length-2;s>=0;s--)if(e.currentTarget=i[s],this.notifyTarget(e,t),e.propagationStopped||e.propagationImmediatelyStopped)return}}all(e,t,i=this._allInteractiveElements){if(i.length===0)return;e.eventPhase=e.BUBBLING_PHASE;let s=Array.isArray(t)?t:[t];for(let n=i.length-1;n>=0;n--)s.forEach(o=>{e.currentTarget=i[n],this.notifyTarget(e,o)})}propagationPath(e){let t=[e];for(let i=0;i<dP&&e!==this.rootTarget&&e.parent;i++){if(!e.parent)throw new Error("Cannot find propagation path to disconnected target");t.push(e.parent),e=e.parent}return t.reverse(),t}hitTestMoveRecursive(e,t,i,s,n,o=!1){let a=!1;if(this._interactivePrune(e))return null;if((e.eventMode==="dynamic"||t==="dynamic")&&(Xt.pauseUpdate=!1),e.interactiveChildren&&e.children){let l=e.children;for(let h=l.length-1;h>=0;h--){let f=l[h],d=this.hitTestMoveRecursive(f,this._isInteractive(t)?t:f.eventMode,i,s,n,o||n(e,i));if(d){if(d.length>0&&!d[d.length-1].parent)continue;let m=e.isInteractive();(d.length>0||m)&&(m&&this._allInteractiveElements.push(e),d.push(e)),this._hitElements.length===0&&(this._hitElements=d),a=!0}}}let c=this._isInteractive(t),u=e.isInteractive();return u&&u&&this._allInteractiveElements.push(e),o||this._hitElements.length>0?null:a?this._hitElements:c&&!n(e,i)&&s(e,i)?u?[e]:[]:null}hitTestRecursive(e,t,i,s,n){if(this._interactivePrune(e)||n(e,i))return null;if((e.eventMode==="dynamic"||t==="dynamic")&&(Xt.pauseUpdate=!1),e.interactiveChildren&&e.children){let c=e.children,u=i;for(let l=c.length-1;l>=0;l--){let h=c[l],f=this.hitTestRecursive(h,this._isInteractive(t)?t:h.eventMode,u,s,n);if(f){if(f.length>0&&!f[f.length-1].parent)continue;let d=e.isInteractive();return(f.length>0||d)&&f.push(e),f}}}let o=this._isInteractive(t),a=e.isInteractive();return o&&s(e,i)?a?[e]:[]:null}_isInteractive(e){return e==="static"||e==="dynamic"}_interactivePrune(e){return!e||!e.visible||!e.renderable||!e.measurable||e.eventMode==="none"||e.eventMode==="passive"&&!e.interactiveChildren}hitPruneFn(e,t){if(e.hitArea&&(e.worldTransform.applyInverse(t,_o),!e.hitArea.contains(_o.x,_o.y)))return!0;if(e.effects&&e.effects.length)for(let i=0;i<e.effects.length;i++){let s=e.effects[i];if(s.containsPoint&&!s.containsPoint(t,this.hitTestFn))return!0}return!1}hitTestFn(e,t){return e.hitArea?!0:e?.containsPoint?(e.worldTransform.applyInverse(t,_o),e.containsPoint(_o)):!1}notifyTarget(e,t){if(!e.currentTarget.isInteractive())return;t??(t=e.type);let i=`on${t}`;e.currentTarget[i]?.(e);let s=e.eventPhase===e.CAPTURING_PHASE||e.eventPhase===e.AT_TARGET?`${t}capture`:t;this._notifyListeners(e,s),e.eventPhase===e.AT_TARGET&&this._notifyListeners(e,t)}mapPointerDown(e){if(!(e instanceof rt)){N("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=this.createPointerEvent(e);if(this.dispatchEvent(t,"pointerdown"),t.pointerType==="touch")this.dispatchEvent(t,"touchstart");else if(t.pointerType==="mouse"||t.pointerType==="pen"){let s=t.button===2;this.dispatchEvent(t,s?"rightdown":"mousedown")}let i=this.trackingData(e.pointerId);i.pressTargetsByButton[e.button]=t.composedPath(),this.freeEvent(t)}mapPointerMove(e){if(!(e instanceof rt)){N("EventBoundary cannot map a non-pointer event as a pointer event");return}this._allInteractiveElements.length=0,this._hitElements.length=0,this._isPointerMoveEvent=!0;let t=this.createPointerEvent(e);this._isPointerMoveEvent=!1;let i=t.pointerType==="mouse"||t.pointerType==="pen",s=this.trackingData(e.pointerId),n=this.findMountedTarget(s.overTargets);if(s.overTargets?.length>0&&n!==t.target){let c=e.type==="mousemove"?"mouseout":"pointerout",u=this.createPointerEvent(e,c,n);if(this.dispatchEvent(u,"pointerout"),i&&this.dispatchEvent(u,"mouseout"),!t.composedPath().includes(n)){let l=this.createPointerEvent(e,"pointerleave",n);for(l.eventPhase=l.AT_TARGET;l.target&&!t.composedPath().includes(l.target);)l.currentTarget=l.target,this.notifyTarget(l),i&&this.notifyTarget(l,"mouseleave"),l.target=l.target.parent;this.freeEvent(l)}this.freeEvent(u)}if(n!==t.target){let c=e.type==="mousemove"?"mouseover":"pointerover",u=this.clonePointerEvent(t,c);this.dispatchEvent(u,"pointerover"),i&&this.dispatchEvent(u,"mouseover");let l=n?.parent;for(;l&&l!==this.rootTarget.parent&&l!==t.target;)l=l.parent;if(!l||l===this.rootTarget.parent){let f=this.clonePointerEvent(t,"pointerenter");for(f.eventPhase=f.AT_TARGET;f.target&&f.target!==n&&f.target!==this.rootTarget.parent;)f.currentTarget=f.target,this.notifyTarget(f),i&&this.notifyTarget(f,"mouseenter"),f.target=f.target.parent;this.freeEvent(f)}this.freeEvent(u)}let o=[],a=this.enableGlobalMoveEvents??!0;this.moveOnAll?o.push("pointermove"):this.dispatchEvent(t,"pointermove"),a&&o.push("globalpointermove"),t.pointerType==="touch"&&(this.moveOnAll?o.splice(1,0,"touchmove"):this.dispatchEvent(t,"touchmove"),a&&o.push("globaltouchmove")),i&&(this.moveOnAll?o.splice(1,0,"mousemove"):this.dispatchEvent(t,"mousemove"),a&&o.push("globalmousemove"),this.cursor=t.target?.cursor),o.length>0&&this.all(t,o),this._allInteractiveElements.length=0,this._hitElements.length=0,s.overTargets=t.composedPath(),this.freeEvent(t)}mapPointerOver(e){if(!(e instanceof rt)){N("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=this.trackingData(e.pointerId),i=this.createPointerEvent(e),s=i.pointerType==="mouse"||i.pointerType==="pen";this.dispatchEvent(i,"pointerover"),s&&this.dispatchEvent(i,"mouseover"),i.pointerType==="mouse"&&(this.cursor=i.target?.cursor);let n=this.clonePointerEvent(i,"pointerenter");for(n.eventPhase=n.AT_TARGET;n.target&&n.target!==this.rootTarget.parent;)n.currentTarget=n.target,this.notifyTarget(n),s&&this.notifyTarget(n,"mouseenter"),n.target=n.target.parent;t.overTargets=i.composedPath(),this.freeEvent(i),this.freeEvent(n)}mapPointerOut(e){if(!(e instanceof rt)){N("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=this.trackingData(e.pointerId);if(t.overTargets){let i=e.pointerType==="mouse"||e.pointerType==="pen",s=this.findMountedTarget(t.overTargets),n=this.createPointerEvent(e,"pointerout",s);this.dispatchEvent(n),i&&this.dispatchEvent(n,"mouseout");let o=this.createPointerEvent(e,"pointerleave",s);for(o.eventPhase=o.AT_TARGET;o.target&&o.target!==this.rootTarget.parent;)o.currentTarget=o.target,this.notifyTarget(o),i&&this.notifyTarget(o,"mouseleave"),o.target=o.target.parent;t.overTargets=null,this.freeEvent(n),this.freeEvent(o)}this.cursor=null}mapPointerUp(e){if(!(e instanceof rt)){N("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=performance.now(),i=this.createPointerEvent(e);if(this.dispatchEvent(i,"pointerup"),i.pointerType==="touch")this.dispatchEvent(i,"touchend");else if(i.pointerType==="mouse"||i.pointerType==="pen"){let a=i.button===2;this.dispatchEvent(i,a?"rightup":"mouseup")}let s=this.trackingData(e.pointerId),n=this.findMountedTarget(s.pressTargetsByButton[e.button]),o=n;if(n&&!i.composedPath().includes(n)){let a=n;for(;a&&!i.composedPath().includes(a);){if(i.currentTarget=a,this.notifyTarget(i,"pointerupoutside"),i.pointerType==="touch")this.notifyTarget(i,"touchendoutside");else if(i.pointerType==="mouse"||i.pointerType==="pen"){let c=i.button===2;this.notifyTarget(i,c?"rightupoutside":"mouseupoutside")}a=a.parent}delete s.pressTargetsByButton[e.button],o=a}if(o){let a=this.clonePointerEvent(i,"click");a.target=o,a.path=null,s.clicksByButton[e.button]||(s.clicksByButton[e.button]={clickCount:0,target:a.target,timeStamp:t});let c=s.clicksByButton[e.button];if(c.target===a.target&&t-c.timeStamp<200?++c.clickCount:c.clickCount=1,c.target=a.target,c.timeStamp=t,a.detail=c.clickCount,a.pointerType==="mouse"){let u=a.button===2;this.dispatchEvent(a,u?"rightclick":"click")}else a.pointerType==="touch"&&this.dispatchEvent(a,"tap");this.dispatchEvent(a,"pointertap"),this.freeEvent(a)}this.freeEvent(i)}mapPointerUpOutside(e){if(!(e instanceof rt)){N("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=this.trackingData(e.pointerId),i=this.findMountedTarget(t.pressTargetsByButton[e.button]),s=this.createPointerEvent(e);if(i){let n=i;for(;n;)s.currentTarget=n,this.notifyTarget(s,"pointerupoutside"),s.pointerType==="touch"?this.notifyTarget(s,"touchendoutside"):(s.pointerType==="mouse"||s.pointerType==="pen")&&this.notifyTarget(s,s.button===2?"rightupoutside":"mouseupoutside"),n=n.parent;delete t.pressTargetsByButton[e.button]}this.freeEvent(s)}mapWheel(e){if(!(e instanceof Yt)){N("EventBoundary cannot map a non-wheel event as a wheel event");return}let t=this.createWheelEvent(e);this.dispatchEvent(t),this.freeEvent(t)}findMountedTarget(e){if(!e)return null;let t=e[0];for(let i=1;i<e.length&&e[i].parent===t;i++)t=e[i];return t}createPointerEvent(e,t,i){let s=this.allocateEvent(rt);return this.copyPointerData(e,s),this.copyMouseData(e,s),this.copyData(e,s),s.nativeEvent=e.nativeEvent,s.originalEvent=e,s.target=i??this.hitTest(s.global.x,s.global.y)??this._hitElements[0],typeof t=="string"&&(s.type=t),s}createWheelEvent(e){let t=this.allocateEvent(Yt);return this.copyWheelData(e,t),this.copyMouseData(e,t),this.copyData(e,t),t.nativeEvent=e.nativeEvent,t.originalEvent=e,t.target=this.hitTest(t.global.x,t.global.y),t}clonePointerEvent(e,t){let i=this.allocateEvent(rt);return i.nativeEvent=e.nativeEvent,i.originalEvent=e.originalEvent,this.copyPointerData(e,i),this.copyMouseData(e,i),this.copyData(e,i),i.target=e.target,i.path=e.composedPath().slice(),i.type=t??i.type,i}copyWheelData(e,t){t.deltaMode=e.deltaMode,t.deltaX=e.deltaX,t.deltaY=e.deltaY,t.deltaZ=e.deltaZ}copyPointerData(e,t){e instanceof rt&&t instanceof rt&&(t.pointerId=e.pointerId,t.width=e.width,t.height=e.height,t.isPrimary=e.isPrimary,t.pointerType=e.pointerType,t.pressure=e.pressure,t.tangentialPressure=e.tangentialPressure,t.tiltX=e.tiltX,t.tiltY=e.tiltY,t.twist=e.twist)}copyMouseData(e,t){e instanceof Sr&&t instanceof Sr&&(t.altKey=e.altKey,t.button=e.button,t.buttons=e.buttons,t.client.copyFrom(e.client),t.ctrlKey=e.ctrlKey,t.metaKey=e.metaKey,t.movement.copyFrom(e.movement),t.screen.copyFrom(e.screen),t.shiftKey=e.shiftKey,t.global.copyFrom(e.global))}copyData(e,t){t.isTrusted=e.isTrusted,t.srcElement=e.srcElement,t.timeStamp=performance.now(),t.type=e.type,t.detail=e.detail,t.view=e.view,t.which=e.which,t.layer.copyFrom(e.layer),t.page.copyFrom(e.page)}trackingData(e){return this.mappingState.trackingData[e]||(this.mappingState.trackingData[e]={pressTargetsByButton:{},clicksByButton:{},overTarget:null}),this.mappingState.trackingData[e]}allocateEvent(e){this.eventPool.has(e)||this.eventPool.set(e,[]);let t=this.eventPool.get(e).pop()||new e(this);return t.eventPhase=t.NONE,t.currentTarget=null,t.defaultPrevented=!1,t.path=null,t.target=null,t}freeEvent(e){if(e.manager!==this)throw new Error("It is illegal to free an event not managed by this EventBoundary!");let t=e.constructor;this.eventPool.has(t)||this.eventPool.set(t,[]),this.eventPool.get(t).push(e)}_notifyListeners(e,t){let i=e.currentTarget._events[t];if(i)if("fn"in i)i.once&&e.currentTarget.removeListener(t,i.fn,void 0,!0),i.fn.call(i.context,e);else for(let s=0,n=i.length;s<n&&!e.propagationImmediatelyStopped;s++)i[s].once&&e.currentTarget.removeListener(t,i[s].fn,void 0,!0),i[s].fn.call(i[s].context,e)}}});var mP,pP,af,Iu,cf=p(()=>{B();K_();rf();sf();nf();mP=1,pP={touchstart:"pointerdown",touchend:"pointerup",touchendoutside:"pointerupoutside",touchmove:"pointermove",touchcancel:"pointercancel"},af=class of{constructor(e){this.supportsTouchEvents="ontouchstart"in globalThis,this.supportsPointerEvents=!!globalThis.PointerEvent,this.domElement=null,this.resolution=1,this.renderer=e,this.rootBoundary=new Mu(null),Xt.init(this),this.autoPreventDefault=!0,this._eventsAdded=!1,this._rootPointerEvent=new rt(null),this._rootWheelEvent=new Yt(null),this.cursorStyles={default:"inherit",pointer:"pointer"},this.features=new Proxy({...of.defaultEventFeatures},{set:(t,i,s)=>(i==="globalMove"&&(this.rootBoundary.enableGlobalMoveEvents=s),t[i]=s,!0)}),this._onPointerDown=this._onPointerDown.bind(this),this._onPointerMove=this._onPointerMove.bind(this),this._onPointerUp=this._onPointerUp.bind(this),this._onPointerOverOut=this._onPointerOverOut.bind(this),this.onWheel=this.onWheel.bind(this)}static get defaultEventMode(){return this._defaultEventMode}init(e){let{canvas:t,resolution:i}=this.renderer;this.setTargetElement(t),this.resolution=i,of._defaultEventMode=e.eventMode??"passive",Object.assign(this.features,e.eventFeatures??{}),this.rootBoundary.enableGlobalMoveEvents=this.features.globalMove}resolutionChange(e){this.resolution=e}destroy(){this.setTargetElement(null),this.renderer=null,this._currentCursor=null}setCursor(e){e||(e="default");let t=!0;if(globalThis.OffscreenCanvas&&this.domElement instanceof OffscreenCanvas&&(t=!1),this._currentCursor===e)return;this._currentCursor=e;let i=this.cursorStyles[e];if(i)switch(typeof i){case"string":t&&(this.domElement.style.cursor=i);break;case"function":i(e);break;case"object":t&&Object.assign(this.domElement.style,i);break}else t&&typeof e=="string"&&!Object.prototype.hasOwnProperty.call(this.cursorStyles,e)&&(this.domElement.style.cursor=e)}get pointer(){return this._rootPointerEvent}_onPointerDown(e){if(!this.features.click)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered;let t=this._normalizeToPointerData(e);this.autoPreventDefault&&t[0].isNormalized&&(e.cancelable||!("cancelable"in e))&&e.preventDefault();for(let i=0,s=t.length;i<s;i++){let n=t[i],o=this._bootstrapEvent(this._rootPointerEvent,n);this.rootBoundary.mapEvent(o)}this.setCursor(this.rootBoundary.cursor)}_onPointerMove(e){if(!this.features.move)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered,Xt.pointerMoved();let t=this._normalizeToPointerData(e);for(let i=0,s=t.length;i<s;i++){let n=this._bootstrapEvent(this._rootPointerEvent,t[i]);this.rootBoundary.mapEvent(n)}this.setCursor(this.rootBoundary.cursor)}_onPointerUp(e){if(!this.features.click)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered;let t=e.target;e.composedPath&&e.composedPath().length>0&&(t=e.composedPath()[0]);let i=t!==this.domElement?"outside":"",s=this._normalizeToPointerData(e);for(let n=0,o=s.length;n<o;n++){let a=this._bootstrapEvent(this._rootPointerEvent,s[n]);a.type+=i,this.rootBoundary.mapEvent(a)}this.setCursor(this.rootBoundary.cursor)}_onPointerOverOut(e){if(!this.features.click)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered;let t=this._normalizeToPointerData(e);for(let i=0,s=t.length;i<s;i++){let n=this._bootstrapEvent(this._rootPointerEvent,t[i]);this.rootBoundary.mapEvent(n)}this.setCursor(this.rootBoundary.cursor)}onWheel(e){if(!this.features.wheel)return;let t=this.normalizeWheelEvent(e);this.rootBoundary.rootTarget=this.renderer.lastObjectRendered,this.rootBoundary.mapEvent(t)}setTargetElement(e){this._removeEvents(),this.domElement=e,Xt.domElement=e,this._addEvents()}_addEvents(){if(this._eventsAdded||!this.domElement)return;Xt.addTickerListener();let e=this.domElement.style;e&&(globalThis.navigator.msPointerEnabled?(e.msContentZooming="none",e.msTouchAction="none"):this.supportsPointerEvents&&(e.touchAction="none")),this.supportsPointerEvents?(globalThis.document.addEventListener("pointermove",this._onPointerMove,!0),this.domElement.addEventListener("pointerdown",this._onPointerDown,!0),this.domElement.addEventListener("pointerleave",this._onPointerOverOut,!0),this.domElement.addEventListener("pointerover",this._onPointerOverOut,!0),globalThis.addEventListener("pointerup",this._onPointerUp,!0)):(globalThis.document.addEventListener("mousemove",this._onPointerMove,!0),this.domElement.addEventListener("mousedown",this._onPointerDown,!0),this.domElement.addEventListener("mouseout",this._onPointerOverOut,!0),this.domElement.addEventListener("mouseover",this._onPointerOverOut,!0),globalThis.addEventListener("mouseup",this._onPointerUp,!0),this.supportsTouchEvents&&(this.domElement.addEventListener("touchstart",this._onPointerDown,!0),this.domElement.addEventListener("touchend",this._onPointerUp,!0),this.domElement.addEventListener("touchmove",this._onPointerMove,!0))),this.domElement.addEventListener("wheel",this.onWheel,{passive:!0,capture:!0}),this._eventsAdded=!0}_removeEvents(){if(!this._eventsAdded||!this.domElement)return;Xt.removeTickerListener();let e=this.domElement.style;e&&(globalThis.navigator.msPointerEnabled?(e.msContentZooming="",e.msTouchAction=""):this.supportsPointerEvents&&(e.touchAction="")),this.supportsPointerEvents?(globalThis.document.removeEventListener("pointermove",this._onPointerMove,!0),this.domElement.removeEventListener("pointerdown",this._onPointerDown,!0),this.domElement.removeEventListener("pointerleave",this._onPointerOverOut,!0),this.domElement.removeEventListener("pointerover",this._onPointerOverOut,!0),globalThis.removeEventListener("pointerup",this._onPointerUp,!0)):(globalThis.document.removeEventListener("mousemove",this._onPointerMove,!0),this.domElement.removeEventListener("mousedown",this._onPointerDown,!0),this.domElement.removeEventListener("mouseout",this._onPointerOverOut,!0),this.domElement.removeEventListener("mouseover",this._onPointerOverOut,!0),globalThis.removeEventListener("mouseup",this._onPointerUp,!0),this.supportsTouchEvents&&(this.domElement.removeEventListener("touchstart",this._onPointerDown,!0),this.domElement.removeEventListener("touchend",this._onPointerUp,!0),this.domElement.removeEventListener("touchmove",this._onPointerMove,!0))),this.domElement.removeEventListener("wheel",this.onWheel,!0),this.domElement=null,this._eventsAdded=!1}mapPositionToPoint(e,t,i){let s=this.domElement.isConnected?this.domElement.getBoundingClientRect():{x:0,y:0,width:this.domElement.width,height:this.domElement.height,left:0,top:0},n=1/this.resolution;e.x=(t-s.left)*(this.domElement.width/s.width)*n,e.y=(i-s.top)*(this.domElement.height/s.height)*n}_normalizeToPointerData(e){let t=[];if(this.supportsTouchEvents&&e instanceof TouchEvent)for(let i=0,s=e.changedTouches.length;i<s;i++){let n=e.changedTouches[i];typeof n.button>"u"&&(n.button=0),typeof n.buttons>"u"&&(n.buttons=1),typeof n.isPrimary>"u"&&(n.isPrimary=e.touches.length===1&&e.type==="touchstart"),typeof n.width>"u"&&(n.width=n.radiusX||1),typeof n.height>"u"&&(n.height=n.radiusY||1),typeof n.tiltX>"u"&&(n.tiltX=0),typeof n.tiltY>"u"&&(n.tiltY=0),typeof n.pointerType>"u"&&(n.pointerType="touch"),typeof n.pointerId>"u"&&(n.pointerId=n.identifier||0),typeof n.pressure>"u"&&(n.pressure=n.force||.5),typeof n.twist>"u"&&(n.twist=0),typeof n.tangentialPressure>"u"&&(n.tangentialPressure=0),typeof n.layerX>"u"&&(n.layerX=n.offsetX=n.clientX),typeof n.layerY>"u"&&(n.layerY=n.offsetY=n.clientY),n.isNormalized=!0,n.type=e.type,t.push(n)}else if(!globalThis.MouseEvent||e instanceof MouseEvent&&(!this.supportsPointerEvents||!(e instanceof globalThis.PointerEvent))){let i=e;typeof i.isPrimary>"u"&&(i.isPrimary=!0),typeof i.width>"u"&&(i.width=1),typeof i.height>"u"&&(i.height=1),typeof i.tiltX>"u"&&(i.tiltX=0),typeof i.tiltY>"u"&&(i.tiltY=0),typeof i.pointerType>"u"&&(i.pointerType="mouse"),typeof i.pointerId>"u"&&(i.pointerId=mP),typeof i.pressure>"u"&&(i.pressure=.5),typeof i.twist>"u"&&(i.twist=0),typeof i.tangentialPressure>"u"&&(i.tangentialPressure=0),i.isNormalized=!0,t.push(i)}else t.push(e);return t}normalizeWheelEvent(e){let t=this._rootWheelEvent;return this._transferMouseData(t,e),t.deltaX=e.deltaX,t.deltaY=e.deltaY,t.deltaZ=e.deltaZ,t.deltaMode=e.deltaMode,this.mapPositionToPoint(t.screen,e.clientX,e.clientY),t.global.copyFrom(t.screen),t.offset.copyFrom(t.screen),t.nativeEvent=e,t.type=e.type,t}_bootstrapEvent(e,t){return e.originalEvent=null,e.nativeEvent=t,e.pointerId=t.pointerId,e.width=t.width,e.height=t.height,e.isPrimary=t.isPrimary,e.pointerType=t.pointerType,e.pressure=t.pressure,e.tangentialPressure=t.tangentialPressure,e.tiltX=t.tiltX,e.tiltY=t.tiltY,e.twist=t.twist,this._transferMouseData(e,t),this.mapPositionToPoint(e.screen,t.clientX,t.clientY),e.global.copyFrom(e.screen),e.offset.copyFrom(e.screen),e.isTrusted=t.isTrusted,e.type==="pointerleave"&&(e.type="pointerout"),e.type.startsWith("mouse")&&(e.type=e.type.replace("mouse","pointer")),e.type.startsWith("touch")&&(e.type=pP[e.type]||e.type),e}_transferMouseData(e,t){e.isTrusted=t.isTrusted,e.srcElement=t.srcElement,e.timeStamp=performance.now(),e.type=t.type,e.altKey=t.altKey,e.button=t.button,e.buttons=t.buttons,e.client.x=t.clientX,e.client.y=t.clientY,e.ctrlKey=t.ctrlKey,e.metaKey=t.metaKey,e.movement.x=t.movementX,e.movement.y=t.movementY,e.page.x=t.pageX,e.page.y=t.pageY,e.relatedTarget=null,e.shiftKey=t.shiftKey}};af.extension={name:"events",type:[b.WebGLSystem,b.CanvasSystem,b.WebGPUSystem],priority:-1};af.defaultEventFeatures={move:!0,globalMove:!0,click:!0,wheel:!0};Iu=af});var Q_,Z_=p(()=>{cf();Au();Q_={onclick:null,onmousedown:null,onmouseenter:null,onmouseleave:null,onmousemove:null,onglobalmousemove:null,onmouseout:null,onmouseover:null,onmouseup:null,onmouseupoutside:null,onpointercancel:null,onpointerdown:null,onpointerenter:null,onpointerleave:null,onpointermove:null,onglobalpointermove:null,onpointerout:null,onpointerover:null,onpointertap:null,onpointerup:null,onpointerupoutside:null,onrightclick:null,onrightdown:null,onrightup:null,onrightupoutside:null,ontap:null,ontouchcancel:null,ontouchend:null,ontouchendoutside:null,ontouchmove:null,onglobaltouchmove:null,ontouchstart:null,onwheel:null,get interactive(){return this.eventMode==="dynamic"||this.eventMode==="static"},set interactive(r){this.eventMode=r?"static":"passive"},_internalEventMode:void 0,get eventMode(){return this._internalEventMode??Iu.defaultEventMode},set eventMode(r){this._internalEventMode=r},isInteractive(){return this.eventMode==="static"||this.eventMode==="dynamic"},interactiveChildren:!0,hitArea:null,addEventListener(r,e,t){let i=typeof t=="boolean"&&t||typeof t=="object"&&t.capture,s=typeof t=="object"?t.signal:void 0,n=typeof t=="object"?t.once===!0:!1,o=typeof e=="function"?void 0:e;r=i?`${r}capture`:r;let a=typeof e=="function"?e:e.handleEvent,c=this;s&&s.addEventListener("abort",()=>{c.off(r,a,o)}),n?c.once(r,a,o):c.on(r,a,o)},removeEventListener(r,e,t){let i=typeof t=="boolean"&&t||typeof t=="object"&&t.capture,s=typeof e=="function"?void 0:e;r=i?`${r}capture`:r,e=typeof e=="function"?e:e.handleEvent,this.off(r,e,s)},dispatchEvent(r){if(!(r instanceof Wr))throw new Error("Container cannot propagate events outside of the Federated Events API");return r.defaultPrevented=!1,r.path=null,r.target=this,r.manager.dispatchEvent(r),!r.defaultPrevented}}});var J_=p(()=>{B();jt();cf();Z_();O.add(Iu);O.mixin(we,Q_)});var bo,eb=p(()=>{B();bo=class{constructor(e){this._attachedDomElements=[],this._renderer=e,this._renderer.runners.postrender.add(this),this._domElement=document.createElement("div"),this._domElement.style.position="absolute",this._domElement.style.top="0",this._domElement.style.left="0",this._domElement.style.pointerEvents="none",this._domElement.style.zIndex="1000"}addRenderable(e,t){this._attachedDomElements.includes(e)||this._attachedDomElements.push(e)}updateRenderable(e){}validateRenderable(e){return!0}postrender(){let e=this._attachedDomElements;if(e.length===0){this._domElement.remove();return}let t=this._renderer.view.canvas;this._domElement.parentNode!==t.parentNode&&t.parentNode?.appendChild(this._domElement);let i=parseFloat(t.style.width)/t.width*this._renderer.resolution,s=parseFloat(t.style.height)/t.height*this._renderer.resolution;this._domElement.style.transform=`translate(${t.offsetLeft}px, ${t.offsetTop}px) scale(${i}, ${s})`;for(let n=0;n<e.length;n++){let o=e[n],a=o.element;if(!o.parent||o.globalDisplayStatus<7)a?.remove(),e.splice(n,1),n--;else{this._domElement.contains(a)||(a.style.position="absolute",a.style.pointerEvents="auto",this._domElement.appendChild(a));let c=o.worldTransform,u=o._anchor,l=o.width*u.x,h=o.height*u.y;a.style.transformOrigin=`${l}px ${h}px`,a.style.transform=`matrix(${c.a}, ${c.b}, ${c.c}, ${c.d}, ${c.tx-l}, ${c.ty-h})`,a.style.opacity=o.groupAlpha.toString()}}}destroy(){this._renderer.runners.postrender.remove(this);for(let e=0;e<this._attachedDomElements.length;e++)this._attachedDomElements[e].element?.remove();this._attachedDomElements.length=0,this._domElement.remove(),this._renderer=null}};bo.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"dom"}});var qr,Fu=p(()=>{at();jt();qr=class extends we{constructor(e){super(e),this.canBundle=!0,this.allowChildren=!1,this._roundPixels=0,this._lastUsed=-1,this._gpuData=Object.create(null),this._bounds=new ae(0,1,0,0),this._boundsDirty=!0}get bounds(){return this._boundsDirty?(this.updateBounds(),this._boundsDirty=!1,this._bounds):this._bounds}get roundPixels(){return!!this._roundPixels}set roundPixels(e){this._roundPixels=e?1:0}containsPoint(e){let t=this.bounds,{x:i,y:s}=e;return i>=t.minX&&i<=t.maxX&&s>=t.minY&&s<=t.maxY}onViewUpdate(){if(this._didViewChangeTick++,this._boundsDirty=!0,this.didViewUpdate)return;this.didViewUpdate=!0;let e=this.renderGroup||this.parentRenderGroup;e&&e.onChildViewUpdate(this)}destroy(e){super.destroy(e),this._bounds=null;for(let t in this._gpuData)this._gpuData[t].destroy?.();this._gpuData=null}collectRenderablesSimple(e,t,i){let{renderPipes:s}=t;s.blendMode.setBlendMode(this,this.groupBlendMode,e),s[this.renderPipeId].addRenderable(this,e),this.didViewUpdate=!1;let o=this.children,a=o.length;for(let c=0;c<a;c++)o[c].collectRenderables(e,t,i)}}});var tb=p(()=>{B();eb();O.add(bo)});var uf,rb=p(()=>{"use strict";uf=(r=>(r[r.Low=0]="Low",r[r.Normal=1]="Normal",r[r.High=2]="High",r))(uf||{})});var ib,sb=p(()=>{"use strict";ib={createCanvas:(r,e)=>{let t=document.createElement("canvas");return t.width=r,t.height=e,t},getCanvasRenderingContext2D:()=>CanvasRenderingContext2D,getWebGLRenderingContext:()=>WebGLRenderingContext,getNavigator:()=>navigator,getBaseUrl:()=>document.baseURI??window.location.href,getFontFaceSet:()=>document.fonts,fetch:(r,e)=>fetch(r,e),parseXML:r=>new DOMParser().parseFromString(r,"text/xml")}});var nb,W,Ce=p(()=>{sb();nb=ib,W={get(){return nb},set(r){nb=r}}});function Ut(r){if(typeof r!="string")throw new TypeError(`Path must be a string. Received ${JSON.stringify(r)}`)}function yo(r){return r.split("?")[0].split("#")[0]}function gP(r){return r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function xP(r,e,t){return r.replace(new RegExp(gP(e),"g"),t)}function _P(r,e){let t="",i=0,s=-1,n=0,o=-1;for(let a=0;a<=r.length;++a){if(a<r.length)o=r.charCodeAt(a);else{if(o===47)break;o=47}if(o===47){if(!(s===a-1||n===1))if(s!==a-1&&n===2){if(t.length<2||i!==2||t.charCodeAt(t.length-1)!==46||t.charCodeAt(t.length-2)!==46){if(t.length>2){let c=t.lastIndexOf("/");if(c!==t.length-1){c===-1?(t="",i=0):(t=t.slice(0,c),i=t.length-1-t.lastIndexOf("/")),s=a,n=0;continue}}else if(t.length===2||t.length===1){t="",i=0,s=a,n=0;continue}}e&&(t.length>0?t+="/..":t="..",i=2)}else t.length>0?t+=`/${r.slice(s+1,a)}`:t=r.slice(s+1,a),i=a-s-1;s=a,n=0}else o===46&&n!==-1?++n:n=-1}return t}var Hi,lf=p(()=>{Ce();Hi={toPosix(r){return xP(r,"\\","/")},isUrl(r){return/^https?:/.test(this.toPosix(r))},isDataUrl(r){return/^data:([a-z]+\/[a-z0-9-+.]+(;[a-z0-9-.!#$%*+.{}|~`]+=[a-z0-9-.!#$%*+.{}()_|~`]+)*)?(;base64)?,([a-z0-9!$&',()*+;=\-._~:@\/?%\s<>]*?)$/i.test(r)},isBlobUrl(r){return r.startsWith("blob:")},hasProtocol(r){return/^[^/:]+:/.test(this.toPosix(r))},getProtocol(r){Ut(r),r=this.toPosix(r);let e=/^file:\/\/\//.exec(r);if(e)return e[0];let t=/^[^/:]+:\/{0,2}/.exec(r);return t?t[0]:""},toAbsolute(r,e,t){if(Ut(r),this.isDataUrl(r)||this.isBlobUrl(r))return r;let i=yo(this.toPosix(e??W.get().getBaseUrl())),s=yo(this.toPosix(t??this.rootname(i)));return r=this.toPosix(r),r.startsWith("/")?Hi.join(s,r.slice(1)):this.isAbsolute(r)?r:this.join(i,r)},normalize(r){if(Ut(r),r.length===0)return".";if(this.isDataUrl(r)||this.isBlobUrl(r))return r;r=this.toPosix(r);let e="",t=r.startsWith("/");this.hasProtocol(r)&&(e=this.rootname(r),r=r.slice(e.length));let i=r.endsWith("/");return r=_P(r,!1),r.length>0&&i&&(r+="/"),t?`/${r}`:e+r},isAbsolute(r){return Ut(r),r=this.toPosix(r),this.hasProtocol(r)?!0:r.startsWith("/")},join(...r){if(r.length===0)return".";let e;for(let t=0;t<r.length;++t){let i=r[t];if(Ut(i),i.length>0)if(e===void 0)e=i;else{let s=r[t-1]??"";this.joinExtensions.includes(this.extname(s).toLowerCase())?e+=`/../${i}`:e+=`/${i}`}}return e===void 0?".":this.normalize(e)},dirname(r){if(Ut(r),r.length===0)return".";r=this.toPosix(r);let e=r.charCodeAt(0),t=e===47,i=-1,s=!0,n=this.getProtocol(r),o=r;r=r.slice(n.length);for(let a=r.length-1;a>=1;--a)if(e=r.charCodeAt(a),e===47){if(!s){i=a;break}}else s=!1;return i===-1?t?"/":this.isUrl(o)?n+r:n:t&&i===1?"//":n+r.slice(0,i)},rootname(r){Ut(r),r=this.toPosix(r);let e="";if(r.startsWith("/")?e="/":e=this.getProtocol(r),this.isUrl(r)){let t=r.indexOf("/",e.length);t!==-1?e=r.slice(0,t):e=r,e.endsWith("/")||(e+="/")}return e},basename(r,e){Ut(r),e&&Ut(e),r=yo(this.toPosix(r));let t=0,i=-1,s=!0,n;if(e!==void 0&&e.length>0&&e.length<=r.length){if(e.length===r.length&&e===r)return"";let o=e.length-1,a=-1;for(n=r.length-1;n>=0;--n){let c=r.charCodeAt(n);if(c===47){if(!s){t=n+1;break}}else a===-1&&(s=!1,a=n+1),o>=0&&(c===e.charCodeAt(o)?--o===-1&&(i=n):(o=-1,i=a))}return t===i?i=a:i===-1&&(i=r.length),r.slice(t,i)}for(n=r.length-1;n>=0;--n)if(r.charCodeAt(n)===47){if(!s){t=n+1;break}}else i===-1&&(s=!1,i=n+1);return i===-1?"":r.slice(t,i)},extname(r){Ut(r),r=yo(this.toPosix(r));let e=-1,t=0,i=-1,s=!0,n=0;for(let o=r.length-1;o>=0;--o){let a=r.charCodeAt(o);if(a===47){if(!s){t=o+1;break}continue}i===-1&&(s=!1,i=o+1),a===46?e===-1?e=o:n!==1&&(n=1):e!==-1&&(n=-1)}return e===-1||i===-1||n===0||n===1&&e===i-1&&e===t+1?"":r.slice(e,i)},parse(r){Ut(r);let e={root:"",dir:"",base:"",ext:"",name:""};if(r.length===0)return e;r=yo(this.toPosix(r));let t=r.charCodeAt(0),i=this.isAbsolute(r),s,n="";e.root=this.rootname(r),i||this.hasProtocol(r)?s=1:s=0;let o=-1,a=0,c=-1,u=!0,l=r.length-1,h=0;for(;l>=s;--l){if(t=r.charCodeAt(l),t===47){if(!u){a=l+1;break}continue}c===-1&&(u=!1,c=l+1),t===46?o===-1?o=l:h!==1&&(h=1):o!==-1&&(h=-1)}return o===-1||c===-1||h===0||h===1&&o===c-1&&o===a+1?c!==-1&&(a===0&&i?e.base=e.name=r.slice(1,c):e.base=e.name=r.slice(a,c)):(a===0&&i?(e.name=r.slice(1,o),e.base=r.slice(1,c)):(e.name=r.slice(a,o),e.base=r.slice(a,c)),e.ext=r.slice(o,c)),e.dir=this.dirname(r),n&&(e.dir=n+e.dir),e},sep:"/",delimiter:":",joinExtensions:[".html"]}});var jr,hf=p(()=>{"use strict";jr=(r,e,t=!1)=>(Array.isArray(r)||(r=[r]),e?r.map(i=>typeof i=="string"||t?e(i):i):r)});function ob(r,e,t,i,s){let n=e[t];for(let o=0;o<n.length;o++){let a=n[o];t<e.length-1?ob(r.replace(i[t],a),e,t+1,i,s):s.push(r.replace(i[t],a))}}function ab(r){let e=/\{(.*?)\}/g,t=r.match(e),i=[];if(t){let s=[];t.forEach(n=>{let o=n.substring(1,n.length-1).split(",");s.push(o)}),ob(r,s,0,t,i)}else i.push(r);return i}var cb=p(()=>{"use strict"});var df,ub=p(()=>{"use strict";df=r=>!Array.isArray(r)});function bP(r){return r.split(".").pop().split("?").shift().split("#").shift()}var To,lb=p(()=>{pe();lf();hf();cb();ub();To=class{constructor(){this._defaultBundleIdentifierOptions={connector:"-",createBundleAssetId:(e,t)=>`${e}${this._bundleIdConnector}${t}`,extractAssetIdFromBundle:(e,t)=>t.replace(`${e}${this._bundleIdConnector}`,"")},this._bundleIdConnector=this._defaultBundleIdentifierOptions.connector,this._createBundleAssetId=this._defaultBundleIdentifierOptions.createBundleAssetId,this._extractAssetIdFromBundle=this._defaultBundleIdentifierOptions.extractAssetIdFromBundle,this._assetMap={},this._preferredOrder=[],this._parsers=[],this._resolverHash={},this._bundles={}}setBundleIdentifier(e){if(this._bundleIdConnector=e.connector??this._bundleIdConnector,this._createBundleAssetId=e.createBundleAssetId??this._createBundleAssetId,this._extractAssetIdFromBundle=e.extractAssetIdFromBundle??this._extractAssetIdFromBundle,this._extractAssetIdFromBundle("foo",this._createBundleAssetId("foo","bar"))!=="bar")throw new Error("[Resolver] GenerateBundleAssetId are not working correctly")}prefer(...e){e.forEach(t=>{this._preferredOrder.push(t),t.priority||(t.priority=Object.keys(t.params))}),this._resolverHash={}}set basePath(e){this._basePath=e}get basePath(){return this._basePath}set rootPath(e){this._rootPath=e}get rootPath(){return this._rootPath}get parsers(){return this._parsers}reset(){this.setBundleIdentifier(this._defaultBundleIdentifierOptions),this._assetMap={},this._preferredOrder=[],this._resolverHash={},this._rootPath=null,this._basePath=null,this._manifest=null,this._bundles={},this._defaultSearchParams=null}setDefaultSearchParams(e){if(typeof e=="string")this._defaultSearchParams=e;else{let t=e;this._defaultSearchParams=Object.keys(t).map(i=>`${encodeURIComponent(i)}=${encodeURIComponent(t[i])}`).join("&")}}getAlias(e){let{alias:t,src:i}=e;return jr(t||i,n=>typeof n=="string"?n:Array.isArray(n)?n.map(o=>o?.src??o):n?.src?n.src:n,!0)}addManifest(e){this._manifest&&N("[Resolver] Manifest already exists, this will be overwritten"),this._manifest=e,e.bundles.forEach(t=>{this.addBundle(t.name,t.assets)})}addBundle(e,t){let i=[],s=t;Array.isArray(t)||(s=Object.entries(t).map(([n,o])=>typeof o=="string"||Array.isArray(o)?{alias:n,src:o}:{alias:n,...o})),s.forEach(n=>{let o=n.src,a=n.alias,c;if(typeof a=="string"){let u=this._createBundleAssetId(e,a);i.push(u),c=[a,u]}else{let u=a.map(l=>this._createBundleAssetId(e,l));i.push(...u),c=[...a,...u]}this.add({...n,alias:c,src:o})}),this._bundles[e]=i}add(e){let t=[];Array.isArray(e)?t.push(...e):t.push(e);let i;i=n=>{this.hasKey(n)&&N(`[Resolver] already has key: ${n} overwriting`)},jr(t).forEach(n=>{let{src:o}=n,{data:a,format:c,loadParser:u}=n,l=jr(o).map(d=>typeof d=="string"?ab(d):Array.isArray(d)?d:[d]),h=this.getAlias(n);Array.isArray(h)?h.forEach(i):i(h);let f=[];l.forEach(d=>{d.forEach(m=>{let x={};if(typeof m!="object"){x.src=m;for(let g=0;g<this._parsers.length;g++){let _=this._parsers[g];if(_.test(m)){x=_.parse(m);break}}}else a=m.data??a,c=m.format??c,u=m.loadParser??u,x={...x,...m};if(!h)throw new Error(`[Resolver] alias is undefined for this asset: ${x.src}`);x=this._buildResolvedAsset(x,{aliases:h,data:a,format:c,loadParser:u}),f.push(x)})}),h.forEach(d=>{this._assetMap[d]=f})})}resolveBundle(e){let t=df(e);e=jr(e);let i={};return e.forEach(s=>{let n=this._bundles[s];if(n){let o=this.resolve(n),a={};for(let c in o){let u=o[c];a[this._extractAssetIdFromBundle(s,c)]=u}i[s]=a}}),t?i[e[0]]:i}resolveUrl(e){let t=this.resolve(e);if(typeof e!="string"){let i={};for(let s in t)i[s]=t[s].src;return i}return t.src}resolve(e){let t=df(e);e=jr(e);let i={};return e.forEach(s=>{if(!this._resolverHash[s])if(this._assetMap[s]){let n=this._assetMap[s],o=this._getPreferredOrder(n);o?.priority.forEach(a=>{o.params[a].forEach(c=>{let u=n.filter(l=>l[a]?l[a]===c:!1);u.length&&(n=u)})}),this._resolverHash[s]=n[0]}else this._resolverHash[s]=this._buildResolvedAsset({alias:[s],src:s},{});i[s]=this._resolverHash[s]}),t?i[e[0]]:i}hasKey(e){return!!this._assetMap[e]}hasBundle(e){return!!this._bundles[e]}_getPreferredOrder(e){for(let t=0;t<e.length;t++){let i=e[t],s=this._preferredOrder.find(n=>n.params.format.includes(i.format));if(s)return s}return this._preferredOrder[0]}_appendDefaultSearchParams(e){if(!this._defaultSearchParams)return e;let t=/\?/.test(e)?"&":"?";return`${e}${t}${this._defaultSearchParams}`}_buildResolvedAsset(e,t){let{aliases:i,data:s,loadParser:n,format:o}=t;return(this._basePath||this._rootPath)&&(e.src=Hi.toAbsolute(e.src,this._basePath,this._rootPath)),e.alias=i??e.alias??[e.src],e.src=this._appendDefaultSearchParams(e.src),e.data={...s||{},...e.data},e.loadParser=n??e.loadParser,e.format=o??e.format??bP(e.src),e}};To.RETINA_PREFIX=/@([0-9\.]+)x/});var ff,hb=p(()=>{"use strict";ff=(r,e)=>{let t=e.split("?")[1];return t&&(r+=`?${t}`),r}});var db,mf,fb=p(()=>{Ge();tt();le();db=class wo{constructor(e,t){this.linkedSheets=[];let i=e;e?.source instanceof se&&(i={texture:e,data:t});let{texture:s,data:n,cachePrefix:o=""}=i;this.cachePrefix=o,this._texture=s instanceof M?s:null,this.textureSource=s.source,this.textures={},this.animations={},this.data=n;let a=parseFloat(n.meta.scale);a?(this.resolution=a,s.source.resolution=this.resolution):this.resolution=s.source._resolution,this._frames=this.data.frames,this._frameKeys=Object.keys(this._frames),this._batchIndex=0,this._callback=null}parse(){return new Promise(e=>{this._callback=e,this._batchIndex=0,this._frameKeys.length<=wo.BATCH_SIZE?(this._processFrames(0),this._processAnimations(),this._parseComplete()):this._nextBatch()})}_processFrames(e){let t=e,i=wo.BATCH_SIZE;for(;t-e<i&&t<this._frameKeys.length;){let s=this._frameKeys[t],n=this._frames[s],o=n.frame;if(o){let a=null,c=null,u=n.trimmed!==!1&&n.sourceSize?n.sourceSize:n.frame,l=new Y(0,0,Math.floor(u.w)/this.resolution,Math.floor(u.h)/this.resolution);n.rotated?a=new Y(Math.floor(o.x)/this.resolution,Math.floor(o.y)/this.resolution,Math.floor(o.h)/this.resolution,Math.floor(o.w)/this.resolution):a=new Y(Math.floor(o.x)/this.resolution,Math.floor(o.y)/this.resolution,Math.floor(o.w)/this.resolution,Math.floor(o.h)/this.resolution),n.trimmed!==!1&&n.spriteSourceSize&&(c=new Y(Math.floor(n.spriteSourceSize.x)/this.resolution,Math.floor(n.spriteSourceSize.y)/this.resolution,Math.floor(o.w)/this.resolution,Math.floor(o.h)/this.resolution)),this.textures[s]=new M({source:this.textureSource,frame:a,orig:l,trim:c,rotate:n.rotated?2:0,defaultAnchor:n.anchor,defaultBorders:n.borders,label:s.toString()})}t++}}_processAnimations(){let e=this.data.animations||{};for(let t in e){this.animations[t]=[];for(let i=0;i<e[t].length;i++){let s=e[t][i];this.animations[t].push(this.textures[s])}}}_parseComplete(){let e=this._callback;this._callback=null,this._batchIndex=0,e.call(this,this.textures)}_nextBatch(){this._processFrames(this._batchIndex*wo.BATCH_SIZE),this._batchIndex++,setTimeout(()=>{this._batchIndex*wo.BATCH_SIZE<this._frameKeys.length?this._nextBatch():(this._processAnimations(),this._parseComplete())},0)}destroy(e=!1){for(let t in this.textures)this.textures[t].destroy();this._frames=null,this._frameKeys=null,this.data=null,this.textures=null,e&&(this._texture?.destroy(),this.textureSource.destroy()),this._texture=null,this.textureSource=null,this.linkedSheets=[]}};db.BATCH_SIZE=1e3;mf=db});function mb(r,e,t){let i={};if(r.forEach(s=>{i[s]=e}),Object.keys(e.textures).forEach(s=>{i[`${e.cachePrefix}${s}`]=e.textures[s]}),!t){let s=Hi.dirname(r[0]);e.linkedSheets.forEach((n,o)=>{let a=mb([`${s}/${e.data.meta.related_multi_packs[o]}`],n,!0);Object.assign(i,a)})}return i}var yP,pb,gb=p(()=>{rb();lb();hb();B();le();lf();fb();yP=["jpg","png","jpeg","avif","webp","basis","etc2","bc7","bc6h","bc5","bc4","bc3","bc2","bc1","eac","astc"];pb={extension:b.Asset,cache:{test:r=>r instanceof mf,getCacheableAssets:(r,e)=>mb(r,e,!1)},resolver:{extension:{type:b.ResolveParser,name:"resolveSpritesheet"},test:r=>{let t=r.split("?")[0].split("."),i=t.pop(),s=t.pop();return i==="json"&&yP.includes(s)},parse:r=>{let e=r.split(".");return{resolution:parseFloat(To.RETINA_PREFIX.exec(r)?.[1]??"1"),format:e[e.length-2],src:r}}},loader:{name:"spritesheetLoader",extension:{type:b.LoadParser,priority:uf.Normal,name:"spritesheetLoader"},async testParse(r,e){return Hi.extname(e.src).toLowerCase()===".json"&&!!r.frames},async parse(r,e,t){let{texture:i,imageFilename:s,textureOptions:n,cachePrefix:o}=e?.data??{},a=Hi.dirname(e.src);a&&a.lastIndexOf("/")!==a.length-1&&(a+="/");let c;if(i instanceof M)c=i;else{let h=ff(a+(s??r.meta.image),e.src);c=(await t.load([{src:h,data:n}]))[h]}let u=new mf({texture:c.source,data:r,cachePrefix:o});await u.parse();let l=r?.meta?.related_multi_packs;if(Array.isArray(l)){let h=[];for(let d of l){if(typeof d!="string")continue;let m=a+d;e.data?.ignoreMultiPack||(m=ff(m,e.src),h.push(t.load({src:m,data:{textureOptions:n,ignoreMultiPack:!0}})))}let f=await Promise.all(h);u.linkedSheets=f,f.forEach(d=>{d.linkedSheets=[u].concat(u.linkedSheets.filter(m=>m!==d))})}return u},async unload(r,e,t){await t.unload(r.textureSource._sourceOrigin),r.destroy(!1)}}}});var Uu=p(()=>{B();gb();O.add(pb)});function Ou(r,e,t){let{width:i,height:s}=t.orig,n=t.trim;if(n){let o=n.width,a=n.height;r.minX=n.x-e._x*i,r.maxX=r.minX+o,r.minY=n.y-e._y*s,r.maxY=r.minY+a}else r.minX=-e._x*i,r.maxX=r.minX+i,r.minY=-e._y*s,r.maxY=r.minY+s}var pf=p(()=>{"use strict"});var Kt,Gu=p(()=>{xu();le();pf();ye();Fu();Kt=class r extends qr{constructor(e=M.EMPTY){e instanceof M&&(e={texture:e});let{texture:t=M.EMPTY,anchor:i,roundPixels:s,width:n,height:o,...a}=e;super({label:"Sprite",...a}),this.renderPipeId="sprite",this.batched=!0,this._visualBounds={minX:0,maxX:1,minY:0,maxY:0},this._anchor=new We({_onUpdate:()=>{this.onViewUpdate()}}),i?this.anchor=i:t.defaultAnchor&&(this.anchor=t.defaultAnchor),this.texture=t,this.allowChildren=!1,this.roundPixels=s??!1,n!==void 0&&(this.width=n),o!==void 0&&(this.height=o)}static from(e,t=!1){return e instanceof M?new r(e):new r(M.from(e,t))}set texture(e){e||(e=M.EMPTY);let t=this._texture;t!==e&&(t&&t.dynamic&&t.off("update",this.onViewUpdate,this),e.dynamic&&e.on("update",this.onViewUpdate,this),this._texture=e,this._width&&this._setWidth(this._width,this._texture.orig.width),this._height&&this._setHeight(this._height,this._texture.orig.height),this.onViewUpdate())}get texture(){return this._texture}get visualBounds(){return Ou(this._visualBounds,this._anchor,this._texture),this._visualBounds}get sourceBounds(){return z("8.6.1","Sprite.sourceBounds is deprecated, use visualBounds instead."),this.visualBounds}updateBounds(){let e=this._anchor,t=this._texture,i=this._bounds,{width:s,height:n}=t.orig;i.minX=-e._x*s,i.maxX=i.minX+s,i.minY=-e._y*n,i.maxY=i.minY+n}destroy(e=!1){if(super.destroy(e),typeof e=="boolean"?e:e?.texture){let i=typeof e=="boolean"?e:e?.textureSource;this._texture.destroy(i)}this._texture=null,this._visualBounds=null,this._bounds=null,this._anchor=null,this._gpuData=null}get anchor(){return this._anchor}set anchor(e){typeof e=="number"?this._anchor.set(e):this._anchor.copyFrom(e)}get width(){return Math.abs(this.scale.x)*this._texture.orig.width}set width(e){this._setWidth(e,this._texture.orig.width),this._width=e}get height(){return Math.abs(this.scale.y)*this._texture.orig.height}set height(e){this._setHeight(e,this._texture.orig.height),this._height=e}getSize(e){return e||(e={}),e.width=Math.abs(this.scale.x)*this._texture.orig.width,e.height=Math.abs(this.scale.y)*this._texture.orig.height,e}setSize(e,t){typeof e=="object"?(t=e.height??e.width,e=e.width):t??(t=e),e!==void 0&&this._setWidth(e,this._texture.orig.width),t!==void 0&&this._setHeight(t,this._texture.orig.height)}}});function Nu(r,e,t){let i=TP;r.measurable=!0,Es(r,t,i),e.addBoundsMask(i),r.measurable=!1}var TP,gf=p(()=>{at();uo();TP=new ae});function Lu(r,e,t){let i=xt.get();r.measurable=!0;let s=De.get().identity(),n=xb(r,t,s);As(r,i,n),r.measurable=!1,e.addBoundsMask(i),De.return(s),xt.return(i)}function xb(r,e,t){return r?(r!==e&&(xb(r.parent,e,t),r.updateLocalTransform(),t.append(r.localTransform)),t):(N("Mask bounds, renderable is not inside the root container"),t)}var xf=p(()=>{vu();Fi();pe()});var So,_b=p(()=>{B();Gu();gf();xf();So=class{constructor(e){this.priority=0,this.inverse=!1,this.pipe="alphaMask",e?.mask&&this.init(e.mask)}init(e){this.mask=e,this.renderMaskToTexture=!(e instanceof Kt),this.mask.renderable=this.renderMaskToTexture,this.mask.includeInBuild=!this.renderMaskToTexture,this.mask.measurable=!1}reset(){this.mask.measurable=!0,this.mask=null}addBounds(e,t){this.inverse||Nu(this.mask,e,t)}addLocalBounds(e,t){Lu(this.mask,e,t)}containsPoint(e,t){let i=this.mask;return t(i,e)}destroy(){this.reset()}static test(e){return e instanceof Kt}};So.extension=b.MaskEffect});var vo,bb=p(()=>{B();vo=class{constructor(e){this.priority=0,this.pipe="colorMask",e?.mask&&this.init(e.mask)}init(e){this.mask=e}destroy(){}static test(e){return typeof e=="number"}};vo.extension=b.MaskEffect});var Co,yb=p(()=>{B();jt();gf();xf();Co=class{constructor(e){this.priority=0,this.pipe="stencilMask",e?.mask&&this.init(e.mask)}init(e){this.mask=e,this.mask.includeInBuild=!1,this.mask.measurable=!1}reset(){this.mask.measurable=!0,this.mask.includeInBuild=!0,this.mask=null}addBounds(e,t){Nu(this.mask,e,t)}addLocalBounds(e,t){Lu(this.mask,e,t)}containsPoint(e,t){let i=this.mask;return t(i,e)}destroy(){this.reset()}static test(e){return e instanceof we}};Co.extension=b.MaskEffect});var je,Is=p(()=>{Ce();B();tt();je=class extends se{constructor(e){e.resource||(e.resource=W.get().createCanvas()),e.width||(e.width=e.resource.width,e.autoDensity||(e.width/=e.resolution)),e.height||(e.height=e.resource.height,e.autoDensity||(e.height/=e.resolution)),super(e),this.uploadMethodId="image",this.autoDensity=e.autoDensity,this.resizeCanvas(),this.transparent=!!e.transparent}resizeCanvas(){this.autoDensity&&"style"in this.resource&&(this.resource.style.width=`${this.width}px`,this.resource.style.height=`${this.height}px`),(this.resource.width!==this.pixelWidth||this.resource.height!==this.pixelHeight)&&(this.resource.width=this.pixelWidth,this.resource.height=this.pixelHeight)}resize(e=this.width,t=this.height,i=this._resolution){let s=super.resize(e,t,i);return s&&this.resizeCanvas(),s}static test(e){return globalThis.HTMLCanvasElement&&e instanceof HTMLCanvasElement||globalThis.OffscreenCanvas&&e instanceof OffscreenCanvas}get context2D(){return this._context2D||(this._context2D=this.resource.getContext("2d"))}};je.extension=b.TextureSource});var Qt,zu=p(()=>{B();tt();Qt=class extends se{constructor(e){super(e),this.uploadMethodId="image",this.autoGarbageCollect=!0}static test(e){return globalThis.HTMLImageElement&&e instanceof HTMLImageElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap||globalThis.VideoFrame&&e instanceof VideoFrame}};Qt.extension=b.TextureSource});async function Tb(){return _f??(_f=(async()=>{let e=document.createElement("canvas").getContext("webgl");if(!e)return"premultiply-alpha-on-upload";let t=await new Promise(o=>{let a=document.createElement("video");a.onloadeddata=()=>o(a),a.onerror=()=>o(null),a.autoplay=!1,a.crossOrigin="anonymous",a.preload="auto",a.src="data:video/webm;base64,GkXfo59ChoEBQveBAULygQRC84EIQoKEd2VibUKHgQJChYECGFOAZwEAAAAAAAHTEU2bdLpNu4tTq4QVSalmU6yBoU27i1OrhBZUrmtTrIHGTbuMU6uEElTDZ1OsggEXTbuMU6uEHFO7a1OsggG97AEAAAAAAABZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVSalmoCrXsYMPQkBNgIRMYXZmV0GETGF2ZkSJiEBEAAAAAAAAFlSua8yuAQAAAAAAAEPXgQFzxYgAAAAAAAAAAZyBACK1nIN1bmSIgQCGhVZfVlA5g4EBI+ODhAJiWgDglLCBArqBApqBAlPAgQFVsIRVuYEBElTDZ9Vzc9JjwItjxYgAAAAAAAAAAWfInEWjh0VOQ09ERVJEh49MYXZjIGxpYnZweC12cDlnyKJFo4hEVVJBVElPTkSHlDAwOjAwOjAwLjA0MDAwMDAwMAAAH0O2dcfngQCgwqGggQAAAIJJg0IAABAAFgA4JBwYSgAAICAAEb///4r+AAB1oZ2mm+6BAaWWgkmDQgAAEAAWADgkHBhKAAAgIABIQBxTu2uRu4+zgQC3iveBAfGCAXHwgQM=",a.load()});if(!t)return"premultiply-alpha-on-upload";let i=e.createTexture();e.bindTexture(e.TEXTURE_2D,i);let s=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,s),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,i,0),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),e.pixelStorei(e.UNPACK_COLORSPACE_CONVERSION_WEBGL,e.NONE),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t);let n=new Uint8Array(4);return e.readPixels(0,0,1,1,e.RGBA,e.UNSIGNED_BYTE,n),e.deleteFramebuffer(s),e.deleteTexture(i),e.getExtension("WEBGL_lose_context")?.loseContext(),n[0]<=n[3]?"premultiplied-alpha":"premultiply-alpha-on-upload"})()),_f}var _f,wb=p(()=>{"use strict"});var Vu,vb,Cb=p(()=>{B();go();wb();tt();Vu=class Sb extends se{constructor(e){super(e),this.isReady=!1,this.uploadMethodId="video",e={...Sb.defaultOptions,...e},this._autoUpdate=!0,this._isConnectedToTicker=!1,this._updateFPS=e.updateFPS||0,this._msToNextUpdate=0,this.autoPlay=e.autoPlay!==!1,this.alphaMode=e.alphaMode??"premultiply-alpha-on-upload",this._videoFrameRequestCallback=this._videoFrameRequestCallback.bind(this),this._videoFrameRequestCallbackHandle=null,this._load=null,this._resolve=null,this._reject=null,this._onCanPlay=this._onCanPlay.bind(this),this._onCanPlayThrough=this._onCanPlayThrough.bind(this),this._onError=this._onError.bind(this),this._onPlayStart=this._onPlayStart.bind(this),this._onPlayStop=this._onPlayStop.bind(this),this._onSeeked=this._onSeeked.bind(this),e.autoLoad!==!1&&this.load()}updateFrame(){if(!this.destroyed){if(this._updateFPS){let e=ct.shared.elapsedMS*this.resource.playbackRate;this._msToNextUpdate=Math.floor(this._msToNextUpdate-e)}(!this._updateFPS||this._msToNextUpdate<=0)&&(this._msToNextUpdate=this._updateFPS?Math.floor(1e3/this._updateFPS):0),this.isValid&&this.update()}}_videoFrameRequestCallback(){this.updateFrame(),this.destroyed?this._videoFrameRequestCallbackHandle=null:this._videoFrameRequestCallbackHandle=this.resource.requestVideoFrameCallback(this._videoFrameRequestCallback)}get isValid(){return!!this.resource.videoWidth&&!!this.resource.videoHeight}async load(){if(this._load)return this._load;let e=this.resource,t=this.options;return(e.readyState===e.HAVE_ENOUGH_DATA||e.readyState===e.HAVE_FUTURE_DATA)&&e.width&&e.height&&(e.complete=!0),e.addEventListener("play",this._onPlayStart),e.addEventListener("pause",this._onPlayStop),e.addEventListener("seeked",this._onSeeked),this._isSourceReady()?this._mediaReady():(t.preload||e.addEventListener("canplay",this._onCanPlay),e.addEventListener("canplaythrough",this._onCanPlayThrough),e.addEventListener("error",this._onError,!0)),this.alphaMode=await Tb(),this._load=new Promise((i,s)=>{this.isValid?i(this):(this._resolve=i,this._reject=s,t.preloadTimeoutMs!==void 0&&(this._preloadTimeout=setTimeout(()=>{this._onError(new ErrorEvent(`Preload exceeded timeout of ${t.preloadTimeoutMs}ms`))})),e.load())}),this._load}_onError(e){this.resource.removeEventListener("error",this._onError,!0),this.emit("error",e),this._reject&&(this._reject(e),this._reject=null,this._resolve=null)}_isSourcePlaying(){let e=this.resource;return!e.paused&&!e.ended}_isSourceReady(){return this.resource.readyState>2}_onPlayStart(){this.isValid||this._mediaReady(),this._configureAutoUpdate()}_onPlayStop(){this._configureAutoUpdate()}_onSeeked(){this._autoUpdate&&!this._isSourcePlaying()&&(this._msToNextUpdate=0,this.updateFrame(),this._msToNextUpdate=0)}_onCanPlay(){this.resource.removeEventListener("canplay",this._onCanPlay),this._mediaReady()}_onCanPlayThrough(){this.resource.removeEventListener("canplaythrough",this._onCanPlay),this._preloadTimeout&&(clearTimeout(this._preloadTimeout),this._preloadTimeout=void 0),this._mediaReady()}_mediaReady(){let e=this.resource;this.isValid&&(this.isReady=!0,this.resize(e.videoWidth,e.videoHeight)),this._msToNextUpdate=0,this.updateFrame(),this._msToNextUpdate=0,this._resolve&&(this._resolve(this),this._resolve=null,this._reject=null),this._isSourcePlaying()?this._onPlayStart():this.autoPlay&&this.resource.play()}destroy(){this._configureAutoUpdate();let e=this.resource;e&&(e.removeEventListener("play",this._onPlayStart),e.removeEventListener("pause",this._onPlayStop),e.removeEventListener("seeked",this._onSeeked),e.removeEventListener("canplay",this._onCanPlay),e.removeEventListener("canplaythrough",this._onCanPlayThrough),e.removeEventListener("error",this._onError,!0),e.pause(),e.src="",e.load()),super.destroy()}get autoUpdate(){return this._autoUpdate}set autoUpdate(e){e!==this._autoUpdate&&(this._autoUpdate=e,this._configureAutoUpdate())}get updateFPS(){return this._updateFPS}set updateFPS(e){e!==this._updateFPS&&(this._updateFPS=e,this._configureAutoUpdate())}_configureAutoUpdate(){this._autoUpdate&&this._isSourcePlaying()?!this._updateFPS&&this.resource.requestVideoFrameCallback?(this._isConnectedToTicker&&(ct.shared.remove(this.updateFrame,this),this._isConnectedToTicker=!1,this._msToNextUpdate=0),this._videoFrameRequestCallbackHandle===null&&(this._videoFrameRequestCallbackHandle=this.resource.requestVideoFrameCallback(this._videoFrameRequestCallback))):(this._videoFrameRequestCallbackHandle!==null&&(this.resource.cancelVideoFrameCallback(this._videoFrameRequestCallbackHandle),this._videoFrameRequestCallbackHandle=null),this._isConnectedToTicker||(ct.shared.add(this.updateFrame,this),this._isConnectedToTicker=!0,this._msToNextUpdate=0)):(this._videoFrameRequestCallbackHandle!==null&&(this.resource.cancelVideoFrameCallback(this._videoFrameRequestCallbackHandle),this._videoFrameRequestCallbackHandle=null),this._isConnectedToTicker&&(ct.shared.remove(this.updateFrame,this),this._isConnectedToTicker=!1,this._msToNextUpdate=0))}static test(e){return globalThis.HTMLVideoElement&&e instanceof HTMLVideoElement}};Vu.extension=b.TextureSource;Vu.defaultOptions={...se.defaultOptions,autoLoad:!0,autoPlay:!0,updateFPS:0,crossorigin:!0,loop:!1,muted:!0,playsinline:!0,preload:!1};Vu.MIME_TYPES={ogv:"video/ogg",mov:"video/quicktime",m4v:"video/mp4"};vb=Vu});var bf,Me,Eo=p(()=>{pe();hf();bf=class{constructor(){this._parsers=[],this._cache=new Map,this._cacheMap=new Map}reset(){this._cacheMap.clear(),this._cache.clear()}has(e){return this._cache.has(e)}get(e){let t=this._cache.get(e);return t||N(`[Assets] Asset id ${e} was not found in the Cache`),t}set(e,t){let i=jr(e),s;for(let c=0;c<this.parsers.length;c++){let u=this.parsers[c];if(u.test(t)){s=u.getCacheableAssets(i,t);break}}let n=new Map(Object.entries(s||{}));s||i.forEach(c=>{n.set(c,t)});let o=[...n.keys()],a={cacheKeys:o,keys:i};i.forEach(c=>{this._cacheMap.set(c,a)}),o.forEach(c=>{let u=s?s[c]:t;this._cache.has(c)&&this._cache.get(c)!==u&&N("[Cache] already has key:",c),this._cache.set(c,n.get(c))})}remove(e){if(!this._cacheMap.has(e)){N(`[Assets] Asset id ${e} was not found in the Cache`);return}let t=this._cacheMap.get(e);t.cacheKeys.forEach(s=>{this._cache.delete(s)}),t.keys.forEach(s=>{this._cacheMap.delete(s)})}get parsers(){return this._parsers}},Me=new bf});function Eb(r={}){let e=r&&r.resource,t=e?r.resource:r,i=e?r:{resource:r};for(let s=0;s<yf.length;s++){let n=yf[s];if(n.test(t))return new n(i)}throw new Error(`Could not find a source type for resource: ${i.resource}`)}function kb(r={},e=!1){let t=r&&r.resource,i=t?r.resource:r,s=t?r:{resource:r};if(!e&&Me.has(i))return Me.get(i);let n=new M({source:Eb(s)});return n.on("destroy",()=>{Me.has(i)&&Me.remove(i)}),e||Me.set(i,n),n}function Ab(r,e=!1){return typeof r=="string"?Me.get(r):r instanceof se?new M({source:r}):kb(r,e)}var yf,Tf=p(()=>{Eo();B();tt();le();yf=[];O.handleByList(b.TextureSource,yf);M.from=Ab;se.from=Eb});var Hu=p(()=>{B();_b();bb();yb();Hd();Is();zu();Cb();Tf();O.add(So,vo,Co,vb,Qt,je,zi)});var Ne,Xr=p(()=>{"use strict";Ne=class{constructor(e){this.resources=Object.create(null),this._dirty=!0;let t=0;for(let i in e){let s=e[i];this.setResource(s,t++)}this._updateKey()}_updateKey(){if(!this._dirty)return;this._dirty=!1;let e=[],t=0;for(let i in this.resources)e[t++]=this.resources[i]._resourceId;this._key=e.join("|")}setResource(e,t){let i=this.resources[t];e!==i&&(i&&e.off?.("change",this.onResourceChange,this),e.on?.("change",this.onResourceChange,this),this.resources[t]=e,this._dirty=!0)}getResource(e){return this.resources[e]}_touch(e){let t=this.resources;for(let i in t)t[i]._touched=e}destroy(){let e=this.resources;for(let t in e)e[t].off?.("change",this.onResourceChange,this);this.resources=null}onResourceChange(e){if(this._dirty=!0,e.destroyed){let t=this.resources;for(let i in t)t[i]===e&&(t[i]=null)}else this._updateKey()}}});function Fs(r,e,t){let i=2166136261;for(let s=0;s<e;s++)i^=r[s].uid,i=Math.imul(i,16777619),i>>>=0;return Pb[i]||wP(r,e,i,t)}function wP(r,e,t,i){let s={},n=0;for(let a=0;a<i;a++){let c=a<e?r[a]:M.EMPTY.source;s[n++]=c.source,s[n++]=c.style}let o=new Ne(s);return Pb[t]=o,o}var Pb,Wu=p(()=>{Xr();le();Pb={}});var Zt,wf=p(()=>{"use strict";Zt=class{constructor(e){typeof e=="number"?this.rawBinaryData=new ArrayBuffer(e):e instanceof Uint8Array?this.rawBinaryData=e.buffer:this.rawBinaryData=e,this.uint32View=new Uint32Array(this.rawBinaryData),this.float32View=new Float32Array(this.rawBinaryData),this.size=this.rawBinaryData.byteLength}get int8View(){return this._int8View||(this._int8View=new Int8Array(this.rawBinaryData)),this._int8View}get uint8View(){return this._uint8View||(this._uint8View=new Uint8Array(this.rawBinaryData)),this._uint8View}get int16View(){return this._int16View||(this._int16View=new Int16Array(this.rawBinaryData)),this._int16View}get int32View(){return this._int32View||(this._int32View=new Int32Array(this.rawBinaryData)),this._int32View}get float64View(){return this._float64Array||(this._float64Array=new Float64Array(this.rawBinaryData)),this._float64Array}get bigUint64View(){return this._bigUint64Array||(this._bigUint64Array=new BigUint64Array(this.rawBinaryData)),this._bigUint64Array}view(e){return this[`${e}View`]}destroy(){this.rawBinaryData=null,this._int8View=null,this._uint8View=null,this._int16View=null,this.uint16View=null,this._int32View=null,this.uint32View=null,this.float32View=null}static sizeOf(e){switch(e){case"int8":case"uint8":return 1;case"int16":case"uint16":return 2;case"int32":case"uint32":case"float32":return 4;default:throw new Error(`${e} isn't a valid view type`)}}}});function ko(r,e){let t=r.byteLength/8|0,i=new Float64Array(r,0,t);new Float64Array(e,0,t).set(i);let n=r.byteLength-t*8;if(n>0){let o=new Uint8Array(r,t*8,n);new Uint8Array(e,t*8,n).set(o)}}var Sf=p(()=>{"use strict"});var Bb,fe,Wi=p(()=>{"use strict";Bb={normal:"normal-npm",add:"add-npm",screen:"screen-npm"},fe=(r=>(r[r.DISABLED=0]="DISABLED",r[r.RENDERING_MASK_ADD=1]="RENDERING_MASK_ADD",r[r.MASK_ACTIVE=2]="MASK_ACTIVE",r[r.INVERSE_MASK_ACTIVE=3]="INVERSE_MASK_ACTIVE",r[r.RENDERING_MASK_REMOVE=4]="RENDERING_MASK_REMOVE",r[r.NONE=5]="NONE",r))(fe||{})});function vr(r,e){return e.alphaMode==="no-premultiply-alpha"&&Bb[r]||r}var Ao=p(()=>{Wi()});function qu(){return(!$u||$u?.isContextLost())&&($u=W.get().createCanvas().getContext("webgl",{})),$u}var $u,vf=p(()=>{Ce()});function vP(r){let e="";for(let t=0;t<r;++t)t>0&&(e+=`
20
- else `),t<r-1&&(e+=`if(test == ${t}.0){}`);return e}function ju(r,e){if(r===0)throw new Error("Invalid value of `0` passed to `checkMaxIfStatementsInShader`");let t=e.createShader(e.FRAGMENT_SHADER);try{for(;;){let i=SP.replace(/%forloop%/gi,vP(r));if(e.shaderSource(t,i),e.compileShader(t),!e.getShaderParameter(t,e.COMPILE_STATUS))r=r/2|0;else break}}finally{e.deleteShader(t)}return r}var SP,Cf=p(()=>{"use strict";SP=["precision mediump float;","void main(void){","float test = 0.1;","%forloop%","gl_FragColor = vec4(0.0);","}"].join(`
21
- `)});function Rb(){if(Us)return Us;let r=qu();return Us=r.getParameter(r.MAX_TEXTURE_IMAGE_UNITS),Us=ju(Us,r),r.getExtension("WEBGL_lose_context")?.loseContext(),Us}var Us,Db=p(()=>{vf();Cf();Us=null});var Xu,Mb=p(()=>{"use strict";Xu=class{constructor(){this.ids=Object.create(null),this.textures=[],this.count=0}clear(){for(let e=0;e<this.count;e++){let t=this.textures[e];this.textures[e]=null,this.ids[t.uid]=null}this.count=0}}});function Ib(){return kf>0?Ub[--kf]:new Ef}function Fb(r){Ub[kf++]=r}var Ef,Ub,kf,Po,Ob,Nb,Lb=p(()=>{Oe();wf();ye();Sf();Ao();Db();Mb();Ef=class{constructor(){this.renderPipeId="batch",this.action="startBatch",this.start=0,this.size=0,this.textures=new Xu,this.blendMode="normal",this.topology="triangle-strip",this.canBundle=!0}destroy(){this.textures=null,this.gpuBindGroup=null,this.bindGroup=null,this.batcher=null}},Ub=[],kf=0;Po=0,Ob=class Gb{constructor(e){this.uid=K("batcher"),this.dirty=!0,this.batchIndex=0,this.batches=[],this._elements=[],e={...Gb.defaultOptions,...e},e.maxTextures||(z("v8.8.0","maxTextures is a required option for Batcher now, please pass it in the options"),e.maxTextures=Rb());let{maxTextures:t,attributesInitialSize:i,indicesInitialSize:s}=e;this.attributeBuffer=new Zt(i*4),this.indexBuffer=new Uint16Array(s),this.maxTextures=t}begin(){this.elementSize=0,this.elementStart=0,this.indexSize=0,this.attributeSize=0;for(let e=0;e<this.batchIndex;e++)Fb(this.batches[e]);this.batchIndex=0,this._batchIndexStart=0,this._batchIndexSize=0,this.dirty=!0}add(e){this._elements[this.elementSize++]=e,e._indexStart=this.indexSize,e._attributeStart=this.attributeSize,e._batcher=this,this.indexSize+=e.indexSize,this.attributeSize+=e.attributeSize*this.vertexSize}checkAndUpdateTexture(e,t){let i=e._batch.textures.ids[t._source.uid];return!i&&i!==0?!1:(e._textureId=i,e.texture=t,!0)}updateElement(e){this.dirty=!0;let t=this.attributeBuffer;e.packAsQuad?this.packQuadAttributes(e,t.float32View,t.uint32View,e._attributeStart,e._textureId):this.packAttributes(e,t.float32View,t.uint32View,e._attributeStart,e._textureId)}break(e){let t=this._elements;if(!t[this.elementStart])return;let i=Ib(),s=i.textures;s.clear();let n=t[this.elementStart],o=vr(n.blendMode,n.texture._source),a=n.topology;this.attributeSize*4>this.attributeBuffer.size&&this._resizeAttributeBuffer(this.attributeSize*4),this.indexSize>this.indexBuffer.length&&this._resizeIndexBuffer(this.indexSize);let c=this.attributeBuffer.float32View,u=this.attributeBuffer.uint32View,l=this.indexBuffer,h=this._batchIndexSize,f=this._batchIndexStart,d="startBatch",m=this.maxTextures;for(let x=this.elementStart;x<this.elementSize;++x){let g=t[x];t[x]=null;let y=g.texture._source,S=vr(g.blendMode,y),T=o!==S||a!==g.topology;if(y._batchTick===Po&&!T){g._textureId=y._textureBindLocation,h+=g.indexSize,g.packAsQuad?(this.packQuadAttributes(g,c,u,g._attributeStart,g._textureId),this.packQuadIndex(l,g._indexStart,g._attributeStart/this.vertexSize)):(this.packAttributes(g,c,u,g._attributeStart,g._textureId),this.packIndex(g,l,g._indexStart,g._attributeStart/this.vertexSize)),g._batch=i;continue}y._batchTick=Po,(s.count>=m||T)&&(this._finishBatch(i,f,h-f,s,o,a,e,d),d="renderBatch",f=h,o=S,a=g.topology,i=Ib(),s=i.textures,s.clear(),++Po),g._textureId=y._textureBindLocation=s.count,s.ids[y.uid]=s.count,s.textures[s.count++]=y,g._batch=i,h+=g.indexSize,g.packAsQuad?(this.packQuadAttributes(g,c,u,g._attributeStart,g._textureId),this.packQuadIndex(l,g._indexStart,g._attributeStart/this.vertexSize)):(this.packAttributes(g,c,u,g._attributeStart,g._textureId),this.packIndex(g,l,g._indexStart,g._attributeStart/this.vertexSize))}s.count>0&&(this._finishBatch(i,f,h-f,s,o,a,e,d),f=h,++Po),this.elementStart=this.elementSize,this._batchIndexStart=f,this._batchIndexSize=h}_finishBatch(e,t,i,s,n,o,a,c){e.gpuBindGroup=null,e.bindGroup=null,e.action=c,e.batcher=this,e.textures=s,e.blendMode=n,e.topology=o,e.start=t,e.size=i,++Po,this.batches[this.batchIndex++]=e,a.add(e)}finish(e){this.break(e)}ensureAttributeBuffer(e){e*4<=this.attributeBuffer.size||this._resizeAttributeBuffer(e*4)}ensureIndexBuffer(e){e<=this.indexBuffer.length||this._resizeIndexBuffer(e)}_resizeAttributeBuffer(e){let t=Math.max(e,this.attributeBuffer.size*2),i=new Zt(t);ko(this.attributeBuffer.rawBinaryData,i.rawBinaryData),this.attributeBuffer=i}_resizeIndexBuffer(e){let t=this.indexBuffer,i=Math.max(e,t.length*1.5);i+=i%2;let s=i>65535?new Uint32Array(i):new Uint16Array(i);if(s.BYTES_PER_ELEMENT!==t.BYTES_PER_ELEMENT)for(let n=0;n<t.length;n++)s[n]=t[n];else ko(t.buffer,s.buffer);this.indexBuffer=s}packQuadIndex(e,t,i){e[t]=i+0,e[t+1]=i+1,e[t+2]=i+2,e[t+3]=i+0,e[t+4]=i+2,e[t+5]=i+3}packIndex(e,t,i,s){let n=e.indices,o=e.indexSize,a=e.indexOffset,c=e.attributeOffset;for(let u=0;u<o;u++)t[i++]=s+n[u+a]-c}destroy(){for(let e=0;e<this.batches.length;e++)Fb(this.batches[e]);this.batches=null;for(let e=0;e<this._elements.length;e++)this._elements[e]._batch=null;this._elements=null,this.indexBuffer=null,this.attributeBuffer.destroy(),this.attributeBuffer=null}};Ob.defaultOptions={maxTextures:null,attributesInitialSize:4,indicesInitialSize:6};Nb=Ob});var Q,Cr=p(()=>{"use strict";Q=(r=>(r[r.MAP_READ=1]="MAP_READ",r[r.MAP_WRITE=2]="MAP_WRITE",r[r.COPY_SRC=4]="COPY_SRC",r[r.COPY_DST=8]="COPY_DST",r[r.INDEX=16]="INDEX",r[r.VERTEX=32]="VERTEX",r[r.UNIFORM=64]="UNIFORM",r[r.STORAGE=128]="STORAGE",r[r.INDIRECT=256]="INDIRECT",r[r.QUERY_RESOLVE=512]="QUERY_RESOLVE",r[r.STATIC=1024]="STATIC",r))(Q||{})});var Ee,Yr=p(()=>{Ve();Oe();Cr();Ee=class extends oe{constructor(e){let{data:t,size:i}=e,{usage:s,label:n,shrinkToFit:o}=e;super(),this.uid=K("buffer"),this._resourceType="buffer",this._resourceId=K("resource"),this._touched=0,this._updateID=1,this._dataInt32=null,this.shrinkToFit=!0,this.destroyed=!1,t instanceof Array&&(t=new Float32Array(t)),this._data=t,i??(i=t?.byteLength);let a=!!t;this.descriptor={size:i,usage:s,mappedAtCreation:a,label:n},this.shrinkToFit=o??!0}get data(){return this._data}set data(e){this.setDataWithSize(e,e.length,!0)}get dataInt32(){return this._dataInt32||(this._dataInt32=new Int32Array(this.data.buffer)),this._dataInt32}get static(){return!!(this.descriptor.usage&Q.STATIC)}set static(e){e?this.descriptor.usage|=Q.STATIC:this.descriptor.usage&=~Q.STATIC}setDataWithSize(e,t,i){if(this._updateID++,this._updateSize=t*e.BYTES_PER_ELEMENT,this._data===e){i&&this.emit("update",this);return}let s=this._data;if(this._data=e,this._dataInt32=null,!s||s.length!==e.length){!this.shrinkToFit&&s&&e.byteLength<s.byteLength?i&&this.emit("update",this):(this.descriptor.size=e.byteLength,this._resourceId=K("resource"),this.emit("change",this));return}i&&this.emit("update",this)}update(e){this._updateSize=e??this._updateSize,this._updateID++,this.emit("update",this)}destroy(){this.destroyed=!0,this.emit("destroy",this),this.emit("change",this),this._data=null,this.descriptor=null,this.removeAllListeners()}}});function Af(r,e){if(!(r instanceof Ee)){let t=e?Q.INDEX:Q.VERTEX;r instanceof Array&&(e?(r=new Uint32Array(r),t=Q.INDEX|Q.COPY_DST):(r=new Float32Array(r),t=Q.VERTEX|Q.COPY_DST)),r=new Ee({data:r,label:e?"index-mesh-buffer":"vertex-mesh-buffer",usage:t})}return r}var zb=p(()=>{Yr();Cr()});function Vb(r,e,t){let i=r.getAttribute(e);if(!i)return t.minX=0,t.minY=0,t.maxX=0,t.maxY=0,t;let s=i.buffer.data,n=1/0,o=1/0,a=-1/0,c=-1/0,u=s.BYTES_PER_ELEMENT,l=(i.offset||0)/u,h=(i.stride||2*4)/u;for(let f=l;f<s.length;f+=h){let d=s[f],m=s[f+1];d>a&&(a=d),m>c&&(c=m),d<n&&(n=d),m<o&&(o=m)}return t.minX=n,t.minY=o,t.maxX=a,t.maxY=c,t}var Hb=p(()=>{"use strict"});function CP(r){return(r instanceof Ee||Array.isArray(r)||r.BYTES_PER_ELEMENT)&&(r={buffer:r}),r.buffer=Af(r.buffer,!1),r}var At,Os=p(()=>{Ve();at();Oe();Yr();zb();Hb();At=class extends oe{constructor(e={}){super(),this.uid=K("geometry"),this._layoutKey=0,this.instanceCount=1,this._bounds=new ae,this._boundsDirty=!0;let{attributes:t,indexBuffer:i,topology:s}=e;if(this.buffers=[],this.attributes={},t)for(let n in t)this.addAttribute(n,t[n]);this.instanceCount=e.instanceCount??1,i&&this.addIndex(i),this.topology=s||"triangle-list"}onBufferUpdate(){this._boundsDirty=!0,this.emit("update",this)}getAttribute(e){return this.attributes[e]}getIndex(){return this.indexBuffer}getBuffer(e){return this.getAttribute(e).buffer}getSize(){for(let e in this.attributes){let t=this.attributes[e];return t.buffer.data.length/(t.stride/4||t.size)}return 0}addAttribute(e,t){let i=CP(t);this.buffers.indexOf(i.buffer)===-1&&(this.buffers.push(i.buffer),i.buffer.on("update",this.onBufferUpdate,this),i.buffer.on("change",this.onBufferUpdate,this)),this.attributes[e]=i}addIndex(e){this.indexBuffer=Af(e,!0),this.buffers.push(this.indexBuffer)}get bounds(){return this._boundsDirty?(this._boundsDirty=!1,Vb(this,"aPosition",this._bounds)):this._bounds}destroy(e=!1){this.emit("destroy",this),this.removeAllListeners(),e&&this.buffers.forEach(t=>t.destroy()),this.attributes=null,this.buffers=null,this.indexBuffer=null,this._bounds=null}}});var EP,kP,Yu,Wb=p(()=>{Yr();Cr();Os();EP=new Float32Array(1),kP=new Uint32Array(1),Yu=class extends At{constructor(){let t=new Ee({data:EP,label:"attribute-batch-buffer",usage:Q.VERTEX|Q.COPY_DST,shrinkToFit:!1}),i=new Ee({data:kP,label:"index-batch-buffer",usage:Q.INDEX|Q.COPY_DST,shrinkToFit:!1}),s=6*4;super({attributes:{aPosition:{buffer:t,format:"float32x2",stride:s,offset:0},aUV:{buffer:t,format:"float32x2",stride:s,offset:2*4},aColor:{buffer:t,format:"unorm8x4",stride:s,offset:4*4},aTextureIdAndRound:{buffer:t,format:"uint16x2",stride:s,offset:5*4}},indexBuffer:i})}}});function Er(r,e){let t=$b[r];return t===void 0&&(Pf[e]===void 0&&(Pf[e]=1),$b[r]=t=Pf[e]++),t}var Pf,$b,Bo=p(()=>{"use strict";Pf=Object.create(null),$b=Object.create(null)});function qb(){if(!Ku){Ku="mediump";let r=qu();r&&r.getShaderPrecisionFormat&&(Ku=r.getShaderPrecisionFormat(r.FRAGMENT_SHADER,r.HIGH_FLOAT).precision?"highp":"mediump")}return Ku}var Ku,jb=p(()=>{vf()});function Xb(r,e,t){return e?r:t?(r=r.replace("out vec4 finalColor;",""),`
22
-
23
- #ifdef GL_ES // This checks if it is WebGL1
24
- #define in varying
25
- #define finalColor gl_FragColor
26
- #define texture texture2D
27
- #endif
28
- ${r}
29
- `):`
30
-
31
- #ifdef GL_ES // This checks if it is WebGL1
32
- #define in attribute
33
- #define out varying
34
- #endif
35
- ${r}
36
- `}var Yb=p(()=>{"use strict"});function Kb(r,e,t){let i=t?e.maxSupportedFragmentPrecision:e.maxSupportedVertexPrecision;if(r.substring(0,9)!=="precision"){let s=t?e.requestedFragmentPrecision:e.requestedVertexPrecision;return s==="highp"&&i!=="highp"&&(s="mediump"),`precision ${s} float;
37
- ${r}`}else if(i!=="highp"&&r.substring(0,15)==="precision highp")return r.replace("precision highp","precision mediump");return r}var Qb=p(()=>{"use strict"});function Zb(r,e){return e?`#version 300 es
38
- ${r}`:r}var Jb=p(()=>{"use strict"});function ey(r,{name:e="pixi-program"},t=!0){e=e.replace(/\s+/g,"-"),e+=t?"-fragment":"-vertex";let i=t?AP:PP;return i[e]?(i[e]++,e+=`-${i[e]}`):i[e]=1,r.indexOf("#define SHADER_NAME")!==-1?r:`${`#define SHADER_NAME ${e}`}
39
- ${r}`}var AP,PP,ty=p(()=>{"use strict";AP={},PP={}});function ry(r,e){return e?r.replace("#version 300 es",""):r}var iy=p(()=>{"use strict"});var Bf,Rf,sy,Pt,$i=p(()=>{Bo();jb();Yb();Qb();Jb();ty();iy();Bf={stripVersion:ry,ensurePrecision:Kb,addProgramDefines:Xb,setProgramName:ey,insertVersion:Zb},Rf=Object.create(null),sy=class Df{constructor(e){e={...Df.defaultOptions,...e};let t=e.fragment.indexOf("#version 300 es")!==-1,i={stripVersion:t,ensurePrecision:{requestedFragmentPrecision:e.preferredFragmentPrecision,requestedVertexPrecision:e.preferredVertexPrecision,maxSupportedVertexPrecision:"highp",maxSupportedFragmentPrecision:qb()},setProgramName:{name:e.name},addProgramDefines:t,insertVersion:t},s=e.fragment,n=e.vertex;Object.keys(Bf).forEach(o=>{let a=i[o];s=Bf[o](s,a,!0),n=Bf[o](n,a,!1)}),this.fragment=s,this.vertex=n,this.transformFeedbackVaryings=e.transformFeedbackVaryings,this._key=Er(`${this.vertex}:${this.fragment}`,"gl-program")}destroy(){this.fragment=null,this.vertex=null,this._attributeData=null,this._uniformData=null,this._uniformBlockData=null,this.transformFeedbackVaryings=null}static from(e){let t=`${e.vertex}:${e.fragment}`;return Rf[t]||(Rf[t]=new Df(e)),Rf[t]}};sy.defaultOptions={preferredVertexPrecision:"highp",preferredFragmentPrecision:"mediump"};Pt=sy});function ut(r){return ny[r]??ny.float32}var ny,qi=p(()=>{"use strict";ny={uint8x2:{size:2,stride:2,normalised:!1},uint8x4:{size:4,stride:4,normalised:!1},sint8x2:{size:2,stride:2,normalised:!1},sint8x4:{size:4,stride:4,normalised:!1},unorm8x2:{size:2,stride:2,normalised:!0},unorm8x4:{size:4,stride:4,normalised:!0},snorm8x2:{size:2,stride:2,normalised:!0},snorm8x4:{size:4,stride:4,normalised:!0},uint16x2:{size:2,stride:4,normalised:!1},uint16x4:{size:4,stride:8,normalised:!1},sint16x2:{size:2,stride:4,normalised:!1},sint16x4:{size:4,stride:8,normalised:!1},unorm16x2:{size:2,stride:4,normalised:!0},unorm16x4:{size:4,stride:8,normalised:!0},snorm16x2:{size:2,stride:4,normalised:!0},snorm16x4:{size:4,stride:8,normalised:!0},float16x2:{size:2,stride:4,normalised:!1},float16x4:{size:4,stride:8,normalised:!1},float32:{size:1,stride:4,normalised:!1},float32x2:{size:2,stride:8,normalised:!1},float32x3:{size:3,stride:12,normalised:!1},float32x4:{size:4,stride:16,normalised:!1},uint32:{size:1,stride:4,normalised:!1},uint32x2:{size:2,stride:8,normalised:!1},uint32x3:{size:3,stride:12,normalised:!1},uint32x4:{size:4,stride:16,normalised:!1},sint32:{size:1,stride:4,normalised:!1},sint32x2:{size:2,stride:8,normalised:!1},sint32x3:{size:3,stride:12,normalised:!1},sint32x4:{size:4,stride:16,normalised:!1}}});function oy({source:r,entryPoint:e}){let t={},i=r.indexOf(`fn ${e}`);if(i!==-1){let s=r.indexOf("->",i);if(s!==-1){let n=r.substring(i,s),o=/@location\((\d+)\)\s+([a-zA-Z0-9_]+)\s*:\s*([a-zA-Z0-9_<>]+)(?:,|\s|$)/g,a;for(;(a=o.exec(n))!==null;){let c=BP[a[3]]??"float32";t[a[2]]={location:parseInt(a[1],10),format:c,stride:ut(c).stride,offset:0,instance:!1,start:0}}}}return t}var BP,ay=p(()=>{qi();BP={f32:"float32","vec2<f32>":"float32x2","vec3<f32>":"float32x3","vec4<f32>":"float32x4",vec2f:"float32x2",vec3f:"float32x3",vec4f:"float32x4",i32:"sint32","vec2<i32>":"sint32x2","vec3<i32>":"sint32x3","vec4<i32>":"sint32x4",u32:"uint32","vec2<u32>":"uint32x2","vec3<u32>":"uint32x3","vec4<u32>":"uint32x4",bool:"uint32","vec2<bool>":"uint32x2","vec3<bool>":"uint32x3","vec4<bool>":"uint32x4"}});function Qu(r){let e=/(^|[^/])@(group|binding)\(\d+\)[^;]+;/g,t=/@group\((\d+)\)/,i=/@binding\((\d+)\)/,s=/var(<[^>]+>)? (\w+)/,n=/:\s*(\w+)/,o=/struct\s+(\w+)\s*{([^}]+)}/g,a=/(\w+)\s*:\s*([\w\<\>]+)/g,c=/struct\s+(\w+)/,u=r.match(e)?.map(h=>({group:parseInt(h.match(t)[1],10),binding:parseInt(h.match(i)[1],10),name:h.match(s)[2],isUniform:h.match(s)[1]==="<uniform>",type:h.match(n)[1]}));if(!u)return{groups:[],structs:[]};let l=r.match(o)?.map(h=>{let f=h.match(c)[1],d=h.match(a).reduce((m,x)=>{let[g,_]=x.split(":");return m[g.trim()]=_.trim(),m},{});return d?{name:f,members:d}:null}).filter(({name:h})=>u.some(f=>f.type===h))??[];return{groups:u,structs:l}}var cy=p(()=>{"use strict"});var Gs,uy=p(()=>{"use strict";Gs=(r=>(r[r.VERTEX=1]="VERTEX",r[r.FRAGMENT=2]="FRAGMENT",r[r.COMPUTE=4]="COMPUTE",r))(Gs||{})});function ly({groups:r}){let e=[];for(let t=0;t<r.length;t++){let i=r[t];e[i.group]||(e[i.group]=[]),i.isUniform?e[i.group].push({binding:i.binding,visibility:Gs.VERTEX|Gs.FRAGMENT,buffer:{type:"uniform"}}):i.type==="sampler"?e[i.group].push({binding:i.binding,visibility:Gs.FRAGMENT,sampler:{type:"filtering"}}):i.type==="texture_2d"&&e[i.group].push({binding:i.binding,visibility:Gs.FRAGMENT,texture:{sampleType:"float",viewDimension:"2d",multisampled:!1}})}return e}var hy=p(()=>{uy()});function dy({groups:r}){let e=[];for(let t=0;t<r.length;t++){let i=r[t];e[i.group]||(e[i.group]={}),e[i.group][i.name]=i.binding}return e}var fy=p(()=>{"use strict"});function my(r,e){let t=new Set,i=new Set,s=[...r.structs,...e.structs].filter(o=>t.has(o.name)?!1:(t.add(o.name),!0)),n=[...r.groups,...e.groups].filter(o=>{let a=`${o.name}-${o.binding}`;return i.has(a)?!1:(i.add(a),!0)});return{structs:s,groups:n}}var py=p(()=>{"use strict"});var Mf,Bt,Ns=p(()=>{Bo();ay();cy();hy();fy();py();Mf=Object.create(null),Bt=class r{constructor(e){this._layoutKey=0,this._attributeLocationsKey=0;let{fragment:t,vertex:i,layout:s,gpuLayout:n,name:o}=e;if(this.name=o,this.fragment=t,this.vertex=i,t.source===i.source){let a=Qu(t.source);this.structsAndGroups=a}else{let a=Qu(i.source),c=Qu(t.source);this.structsAndGroups=my(a,c)}this.layout=s??dy(this.structsAndGroups),this.gpuLayout=n??ly(this.structsAndGroups),this.autoAssignGlobalUniforms=this.layout[0]?.globalUniforms!==void 0,this.autoAssignLocalUniforms=this.layout[1]?.localUniforms!==void 0,this._generateProgramKey()}_generateProgramKey(){let{vertex:e,fragment:t}=this,i=e.source+t.source+e.entryPoint+t.entryPoint;this._layoutKey=Er(i,"program")}get attributeData(){return this._attributeData??(this._attributeData=oy(this.vertex)),this._attributeData}destroy(){this.gpuLayout=null,this.layout=null,this.structsAndGroups=null,this.fragment=null,this.vertex=null}static from(e){let t=`${e.vertex.source}:${e.fragment.source}:${e.fragment.entryPoint}:${e.vertex.entryPoint}`;return Mf[t]||(Mf[t]=new r(e)),Mf[t]}}});function If(r,e,t){if(r)for(let i in r){let s=i.toLocaleLowerCase(),n=e[s];if(n){let o=r[i];i==="header"&&(o=o.replace(/@in\s+[^;]+;\s*/g,"").replace(/@out\s+[^;]+;\s*/g,"")),t&&n.push(`//----${t}----//`),n.push(o)}else N(`${i} placement hook does not exist in shader`)}}var gy=p(()=>{pe()});function Ff(r){let e={};return(r.match(RP)?.map(i=>i.replace(/[{()}]/g,""))??[]).forEach(i=>{e[i]=[]}),e}var RP,xy=p(()=>{"use strict";RP=/\{\{(.*?)\}\}/g});function _y(r,e){let t,i=/@in\s+([^;]+);/g;for(;(t=i.exec(r))!==null;)e.push(t[1])}function Uf(r,e,t=!1){let i=[];_y(e,i),r.forEach(a=>{a.header&&_y(a.header,i)});let s=i;t&&s.sort();let n=s.map((a,c)=>` @location(${c}) ${a},`).join(`
40
- `),o=e.replace(/@in\s+[^;]+;\s*/g,"");return o=o.replace("{{in}}",`
41
- ${n}
42
- `),o}var by=p(()=>{"use strict"});function yy(r,e){let t,i=/@out\s+([^;]+);/g;for(;(t=i.exec(r))!==null;)e.push(t[1])}function DP(r){let t=/\b(\w+)\s*:/g.exec(r);return t?t[1]:""}function MP(r){let e=/@.*?\s+/g;return r.replace(e,"")}function Ty(r,e){let t=[];yy(e,t),r.forEach(c=>{c.header&&yy(c.header,t)});let i=0,s=t.sort().map(c=>c.indexOf("builtin")>-1?c:`@location(${i++}) ${c}`).join(`,
43
- `),n=t.sort().map(c=>` var ${MP(c)};`).join(`
44
- `),o=`return VSOutput(
45
- ${t.sort().map(c=>` ${DP(c)}`).join(`,
46
- `)});`,a=e.replace(/@out\s+[^;]+;\s*/g,"");return a=a.replace("{{struct}}",`
47
- ${s}
48
- `),a=a.replace("{{start}}",`
49
- ${n}
50
- `),a=a.replace("{{return}}",`
51
- ${o}
52
- `),a}var wy=p(()=>{"use strict"});function Of(r,e){let t=r;for(let i in e){let s=e[i];s.join(`
53
- `).length?t=t.replace(`{{${i}}}`,`//-----${i} START-----//
54
- ${s.join(`
55
- `)}
56
- //----${i} FINISH----//`):t=t.replace(`{{${i}}}`,"")}return t}var Sy=p(()=>{"use strict"});function vy({template:r,bits:e}){let t=Ey(r,e);if(Kr[t])return Kr[t];let{vertex:i,fragment:s}=FP(r,e);return Kr[t]=ky(i,s,e),Kr[t]}function Cy({template:r,bits:e}){let t=Ey(r,e);return Kr[t]||(Kr[t]=ky(r.vertex,r.fragment,e)),Kr[t]}function FP(r,e){let t=e.map(o=>o.vertex).filter(o=>!!o),i=e.map(o=>o.fragment).filter(o=>!!o),s=Uf(t,r.vertex,!0);s=Ty(t,s);let n=Uf(i,r.fragment,!0);return{vertex:s,fragment:n}}function Ey(r,e){return e.map(t=>(Gf.has(t)||Gf.set(t,IP++),Gf.get(t))).sort((t,i)=>t-i).join("-")+r.vertex+r.fragment}function ky(r,e,t){let i=Ff(r),s=Ff(e);return t.forEach(n=>{If(n.vertex,i,n.name),If(n.fragment,s,n.name)}),{vertex:Of(r,i),fragment:Of(e,s)}}var Kr,Gf,IP,Ay=p(()=>{gy();xy();by();wy();Sy();Kr=Object.create(null),Gf=new Map,IP=0});var Py,By,Ry,Dy,My=p(()=>{"use strict";Py=`
57
- @in aPosition: vec2<f32>;
58
- @in aUV: vec2<f32>;
59
-
60
- @out @builtin(position) vPosition: vec4<f32>;
61
- @out vUV : vec2<f32>;
62
- @out vColor : vec4<f32>;
63
-
64
- {{header}}
65
-
66
- struct VSOutput {
67
- {{struct}}
68
- };
69
-
70
- @vertex
71
- fn main( {{in}} ) -> VSOutput {
72
-
73
- var worldTransformMatrix = globalUniforms.uWorldTransformMatrix;
74
- var modelMatrix = mat3x3<f32>(
75
- 1.0, 0.0, 0.0,
76
- 0.0, 1.0, 0.0,
77
- 0.0, 0.0, 1.0
78
- );
79
- var position = aPosition;
80
- var uv = aUV;
81
-
82
- {{start}}
83
-
84
- vColor = vec4<f32>(1., 1., 1., 1.);
85
-
86
- {{main}}
87
-
88
- vUV = uv;
89
-
90
- var modelViewProjectionMatrix = globalUniforms.uProjectionMatrix * worldTransformMatrix * modelMatrix;
91
-
92
- vPosition = vec4<f32>((modelViewProjectionMatrix * vec3<f32>(position, 1.0)).xy, 0.0, 1.0);
93
-
94
- vColor *= globalUniforms.uWorldColorAlpha;
95
-
96
- {{end}}
97
-
98
- {{return}}
99
- };
100
- `,By=`
101
- @in vUV : vec2<f32>;
102
- @in vColor : vec4<f32>;
103
-
104
- {{header}}
105
-
106
- @fragment
107
- fn main(
108
- {{in}}
109
- ) -> @location(0) vec4<f32> {
110
-
111
- {{start}}
112
-
113
- var outColor:vec4<f32>;
114
-
115
- {{main}}
116
-
117
- var finalColor:vec4<f32> = outColor * vColor;
118
-
119
- {{end}}
120
-
121
- return finalColor;
122
- };
123
- `,Ry=`
124
- in vec2 aPosition;
125
- in vec2 aUV;
126
-
127
- out vec4 vColor;
128
- out vec2 vUV;
129
-
130
- {{header}}
131
-
132
- void main(void){
133
-
134
- mat3 worldTransformMatrix = uWorldTransformMatrix;
135
- mat3 modelMatrix = mat3(
136
- 1.0, 0.0, 0.0,
137
- 0.0, 1.0, 0.0,
138
- 0.0, 0.0, 1.0
139
- );
140
- vec2 position = aPosition;
141
- vec2 uv = aUV;
142
-
143
- {{start}}
144
-
145
- vColor = vec4(1.);
146
-
147
- {{main}}
148
-
149
- vUV = uv;
150
-
151
- mat3 modelViewProjectionMatrix = uProjectionMatrix * worldTransformMatrix * modelMatrix;
152
-
153
- gl_Position = vec4((modelViewProjectionMatrix * vec3(position, 1.0)).xy, 0.0, 1.0);
154
-
155
- vColor *= uWorldColorAlpha;
156
-
157
- {{end}}
158
- }
159
- `,Dy=`
160
-
161
- in vec4 vColor;
162
- in vec2 vUV;
163
-
164
- out vec4 finalColor;
165
-
166
- {{header}}
167
-
168
- void main(void) {
169
-
170
- {{start}}
171
-
172
- vec4 outColor;
173
-
174
- {{main}}
175
-
176
- finalColor = outColor * vColor;
177
-
178
- {{end}}
179
- }
180
- `});var Iy,Fy,Uy=p(()=>{"use strict";Iy={name:"global-uniforms-bit",vertex:{header:`
181
- struct GlobalUniforms {
182
- uProjectionMatrix:mat3x3<f32>,
183
- uWorldTransformMatrix:mat3x3<f32>,
184
- uWorldColorAlpha: vec4<f32>,
185
- uResolution: vec2<f32>,
186
- }
187
-
188
- @group(0) @binding(0) var<uniform> globalUniforms : GlobalUniforms;
189
- `}},Fy={name:"global-uniforms-bit",vertex:{header:`
190
- uniform mat3 uProjectionMatrix;
191
- uniform mat3 uWorldTransformMatrix;
192
- uniform vec4 uWorldColorAlpha;
193
- uniform vec2 uResolution;
194
- `}}});function Jt({bits:r,name:e}){let t=vy({template:{fragment:By,vertex:Py},bits:[Iy,...r]});return Bt.from({name:e,vertex:{source:t.vertex,entryPoint:"main"},fragment:{source:t.fragment,entryPoint:"main"}})}function er({bits:r,name:e}){return new Pt({name:e,...Cy({template:{vertex:Ry,fragment:Dy},bits:[Fy,...r]})})}var Qr=p(()=>{$i();Ns();Ay();My();Uy()});var Ls,zs,Ro=p(()=>{"use strict";Ls={name:"color-bit",vertex:{header:`
195
- @in aColor: vec4<f32>;
196
- `,main:`
197
- vColor *= vec4<f32>(aColor.rgb * aColor.a, aColor.a);
198
- `}},zs={name:"color-bit",vertex:{header:`
199
- in vec4 aColor;
200
- `,main:`
201
- vColor *= vec4(aColor.rgb * aColor.a, aColor.a);
202
- `}}});function UP(r){let e=[];if(r===1)e.push("@group(1) @binding(0) var textureSource1: texture_2d<f32>;"),e.push("@group(1) @binding(1) var textureSampler1: sampler;");else{let t=0;for(let i=0;i<r;i++)e.push(`@group(1) @binding(${t++}) var textureSource${i+1}: texture_2d<f32>;`),e.push(`@group(1) @binding(${t++}) var textureSampler${i+1}: sampler;`)}return e.join(`
203
- `)}function OP(r){let e=[];if(r===1)e.push("outColor = textureSampleGrad(textureSource1, textureSampler1, vUV, uvDx, uvDy);");else{e.push("switch vTextureId {");for(let t=0;t<r;t++)t===r-1?e.push(" default:{"):e.push(` case ${t}:{`),e.push(` outColor = textureSampleGrad(textureSource${t+1}, textureSampler${t+1}, vUV, uvDx, uvDy);`),e.push(" break;}");e.push("}")}return e.join(`
204
- `)}function Vs(r){return Nf[r]||(Nf[r]={name:"texture-batch-bit",vertex:{header:`
205
- @in aTextureIdAndRound: vec2<u32>;
206
- @out @interpolate(flat) vTextureId : u32;
207
- `,main:`
208
- vTextureId = aTextureIdAndRound.y;
209
- `,end:`
210
- if(aTextureIdAndRound.x == 1)
211
- {
212
- vPosition = vec4<f32>(roundPixels(vPosition.xy, globalUniforms.uResolution), vPosition.zw);
213
- }
214
- `},fragment:{header:`
215
- @in @interpolate(flat) vTextureId: u32;
216
-
217
- ${UP(r)}
218
- `,main:`
219
- var uvDx = dpdx(vUV);
220
- var uvDy = dpdy(vUV);
221
-
222
- ${OP(r)}
223
- `}}),Nf[r]}function GP(r){let e=[];for(let t=0;t<r;t++)t>0&&e.push("else"),t<r-1&&e.push(`if(vTextureId < ${t}.5)`),e.push("{"),e.push(` outColor = texture(uTextures[${t}], vUV);`),e.push("}");return e.join(`
224
- `)}function Hs(r){return Lf[r]||(Lf[r]={name:"texture-batch-bit",vertex:{header:`
225
- in vec2 aTextureIdAndRound;
226
- out float vTextureId;
227
-
228
- `,main:`
229
- vTextureId = aTextureIdAndRound.y;
230
- `,end:`
231
- if(aTextureIdAndRound.x == 1.)
232
- {
233
- gl_Position.xy = roundPixels(gl_Position.xy, uResolution);
234
- }
235
- `},fragment:{header:`
236
- in float vTextureId;
237
-
238
- uniform sampler2D uTextures[${r}];
239
-
240
- `,main:`
241
-
242
- ${GP(r)}
243
- `}}),Lf[r]}var Nf,Lf,Do=p(()=>{"use strict";Nf={};Lf={}});var tr,rr,Zr=p(()=>{"use strict";tr={name:"round-pixels-bit",vertex:{header:`
244
- fn roundPixels(position: vec2<f32>, targetSize: vec2<f32>) -> vec2<f32>
245
- {
246
- return (floor(((position * 0.5 + 0.5) * targetSize) + 0.5) / targetSize) * 2.0 - 1.0;
247
- }
248
- `}},rr={name:"round-pixels-bit",vertex:{header:`
249
- vec2 roundPixels(vec2 position, vec2 targetSize)
250
- {
251
- return (floor(((position * 0.5 + 0.5) * targetSize) + 0.5) / targetSize) * 2.0 - 1.0;
252
- }
253
- `}}});var zf,Oy,Gy=p(()=>{"use strict";zf=["f32","i32","vec2<f32>","vec3<f32>","vec4<f32>","mat2x2<f32>","mat3x3<f32>","mat4x4<f32>","mat3x2<f32>","mat4x2<f32>","mat2x3<f32>","mat4x3<f32>","mat2x4<f32>","mat3x4<f32>","vec2<i32>","vec3<i32>","vec4<i32>"],Oy=zf.reduce((r,e)=>(r[e]=!0,r),{})});function Ny(r,e){switch(r){case"f32":return 0;case"vec2<f32>":return new Float32Array(2*e);case"vec3<f32>":return new Float32Array(3*e);case"vec4<f32>":return new Float32Array(4*e);case"mat2x2<f32>":return new Float32Array([1,0,0,1]);case"mat3x3<f32>":return new Float32Array([1,0,0,0,1,0,0,0,1]);case"mat4x4<f32>":return new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])}return null}var Ly=p(()=>{"use strict"});var zy,ce,it=p(()=>{Oe();Bo();Gy();Ly();zy=class Vy{constructor(e,t){this._touched=0,this.uid=K("uniform"),this._resourceType="uniformGroup",this._resourceId=K("resource"),this.isUniformGroup=!0,this._dirtyId=0,this.destroyed=!1,t={...Vy.defaultOptions,...t},this.uniformStructures=e;let i={};for(let s in e){let n=e[s];if(n.name=s,n.size=n.size??1,!Oy[n.type])throw new Error(`Uniform type ${n.type} is not supported. Supported uniform types are: ${zf.join(", ")}`);n.value??(n.value=Ny(n.type,n.size)),i[s]=n.value}this.uniforms=i,this._dirtyId=1,this.ubo=t.ubo,this.isStatic=t.isStatic,this._signature=Er(Object.keys(i).map(s=>`${s}-${e[s].type}`).join("-"),"uniform-group")}update(){this._dirtyId++}};zy.defaultOptions={ubo:!1,isStatic:!1};ce=zy});function Ws(r){let e=Hy[r];if(e)return e;let t=new Int32Array(r);for(let i=0;i<r;i++)t[i]=i;return e=Hy[r]=new ce({uTextures:{value:t,type:"i32",size:r}},{isStatic:!0}),e}var Hy,Zu=p(()=>{it();Hy={}});var Ie,ir=p(()=>{"use strict";Ie=(r=>(r[r.WEBGL=1]="WEBGL",r[r.WEBGPU=2]="WEBGPU",r[r.BOTH=3]="BOTH",r))(Ie||{})});var ke,Ot=p(()=>{Ve();Oe();$i();Xr();Ns();ir();it();ke=class r extends oe{constructor(e){super(),this.uid=K("shader"),this._uniformBindMap=Object.create(null),this._ownedBindGroups=[];let{gpuProgram:t,glProgram:i,groups:s,resources:n,compatibleRenderers:o,groupMap:a}=e;this.gpuProgram=t,this.glProgram=i,o===void 0&&(o=0,t&&(o|=Ie.WEBGPU),i&&(o|=Ie.WEBGL)),this.compatibleRenderers=o;let c={};if(!n&&!s&&(n={}),n&&s)throw new Error("[Shader] Cannot have both resources and groups");if(!t&&s&&!a)throw new Error("[Shader] No group map or WebGPU shader provided - consider using resources instead.");if(!t&&s&&a)for(let u in a)for(let l in a[u]){let h=a[u][l];c[h]={group:u,binding:l,name:h}}else if(t&&s&&!a){let u=t.structsAndGroups.groups;a={},u.forEach(l=>{a[l.group]=a[l.group]||{},a[l.group][l.binding]=l.name,c[l.name]=l})}else if(n){s={},a={},t&&t.structsAndGroups.groups.forEach(h=>{a[h.group]=a[h.group]||{},a[h.group][h.binding]=h.name,c[h.name]=h});let u=0;for(let l in n)c[l]||(s[99]||(s[99]=new Ne,this._ownedBindGroups.push(s[99])),c[l]={group:99,binding:u,name:l},a[99]=a[99]||{},a[99][u]=l,u++);for(let l in n){let h=l,f=n[l];!f.source&&!f._resourceType&&(f=new ce(f));let d=c[h];d&&(s[d.group]||(s[d.group]=new Ne,this._ownedBindGroups.push(s[d.group])),s[d.group].setResource(f,d.binding))}}this.groups=s,this._uniformBindMap=a,this.resources=this._buildResourceAccessor(s,c)}addResource(e,t,i){var s,n;(s=this._uniformBindMap)[t]||(s[t]={}),(n=this._uniformBindMap[t])[i]||(n[i]=e),this.groups[t]||(this.groups[t]=new Ne,this._ownedBindGroups.push(this.groups[t]))}_buildResourceAccessor(e,t){let i={};for(let s in t){let n=t[s];Object.defineProperty(i,n.name,{get(){return e[n.group].getResource(n.binding)},set(o){e[n.group].setResource(o,n.binding)}})}return i}destroy(e=!1){this.emit("destroy",this),e&&(this.gpuProgram?.destroy(),this.glProgram?.destroy()),this.gpuProgram=null,this.glProgram=null,this.removeAllListeners(),this._uniformBindMap=null,this._ownedBindGroups.forEach(t=>{t.destroy()}),this._ownedBindGroups=null,this.resources=null,this.groups=null}static from(e){let{gpu:t,gl:i,...s}=e,n,o;return t&&(n=Bt.from(t)),i&&(o=Pt.from(i)),new r({gpuProgram:n,glProgram:o,...s})}}});var Ju,Wy=p(()=>{Qr();Ro();Do();Zr();Zu();Ot();Ju=class extends ke{constructor(e){let t=er({name:"batch",bits:[zs,Hs(e),rr]}),i=Jt({name:"batch",bits:[Ls,Vs(e),tr]});super({glProgram:t,gpuProgram:i,resources:{batchSamplers:Ws(e)}})}}});var Vf,$y,Mo,Hf=p(()=>{B();Lb();Wb();Wy();Vf=null,$y=class qy extends Nb{constructor(e){super(e),this.geometry=new Yu,this.name=qy.extension.name,this.vertexSize=6,Vf??(Vf=new Ju(e.maxTextures)),this.shader=Vf}packAttributes(e,t,i,s,n){let o=n<<16|e.roundPixels&65535,a=e.transform,c=a.a,u=a.b,l=a.c,h=a.d,f=a.tx,d=a.ty,{positions:m,uvs:x}=e,g=e.color,_=e.attributeOffset,y=_+e.attributeSize;for(let S=_;S<y;S++){let T=S*2,C=m[T],v=m[T+1];t[s++]=c*C+l*v+f,t[s++]=h*v+u*C+d,t[s++]=x[T],t[s++]=x[T+1],i[s++]=g,i[s++]=o}}packQuadAttributes(e,t,i,s,n){let o=e.texture,a=e.transform,c=a.a,u=a.b,l=a.c,h=a.d,f=a.tx,d=a.ty,m=e.bounds,x=m.maxX,g=m.minX,_=m.maxY,y=m.minY,S=o.uvs,T=e.color,C=n<<16|e.roundPixels&65535;t[s+0]=c*g+l*y+f,t[s+1]=h*y+u*g+d,t[s+2]=S.x0,t[s+3]=S.y0,i[s+4]=T,i[s+5]=C,t[s+6]=c*x+l*y+f,t[s+7]=h*y+u*x+d,t[s+8]=S.x1,t[s+9]=S.y1,i[s+10]=T,i[s+11]=C,t[s+12]=c*x+l*_+f,t[s+13]=h*_+u*x+d,t[s+14]=S.x2,t[s+15]=S.y2,i[s+16]=T,i[s+17]=C,t[s+18]=c*g+l*_+f,t[s+19]=h*_+u*g+d,t[s+20]=S.x3,t[s+21]=S.y3,i[s+22]=T,i[s+23]=C}};$y.extension={type:[b.Batcher],name:"default"};Mo=$y});function jy(r,e,t,i,s,n,o,a=null){let c=0;t*=e,s*=n;let u=a.a,l=a.b,h=a.c,f=a.d,d=a.tx,m=a.ty;for(;c<o;){let x=r[t],g=r[t+1];i[s]=u*x+h*g+d,i[s+1]=l*x+f*g+m,s+=n,t+=e,c++}}function Xy(r,e,t,i){let s=0;for(e*=t;s<i;)r[e]=0,r[e+1]=0,e+=t,s++}var Yy=p(()=>{"use strict"});function Wf(r,e,t,i,s){let n=e.a,o=e.b,a=e.c,c=e.d,u=e.tx,l=e.ty;t||(t=0),i||(i=2),s||(s=r.length/i-t);let h=t*i;for(let f=0;f<s;f++){let d=r[h],m=r[h+1];r[h]=n*d+a*m+u,r[h+1]=o*d+c*m+l,h+=i}}var Ky=p(()=>{"use strict"});var NP,ji,$f=p(()=>{te();Fd();NP=new R,ji=class{constructor(){this.packAsQuad=!1,this.batcherName="default",this.topology="triangle-list",this.applyTransform=!0,this.roundPixels=0,this._batcher=null,this._batch=null}get uvs(){return this.geometryData.uvs}get positions(){return this.geometryData.vertices}get indices(){return this.geometryData.indices}get blendMode(){return this.renderable&&this.applyTransform?this.renderable.groupBlendMode:"normal"}get color(){let e=this.baseColor,t=e>>16|e&65280|(e&255)<<16,i=this.renderable;return i?Su(t,i.groupColor)+(this.alpha*i.groupAlpha*255<<24):t+(this.alpha*255<<24)}get transform(){return this.renderable?.groupTransform||NP}copyTo(e){e.indexOffset=this.indexOffset,e.indexSize=this.indexSize,e.attributeOffset=this.attributeOffset,e.attributeSize=this.attributeSize,e.baseColor=this.baseColor,e.alpha=this.alpha,e.texture=this.texture,e.geometryData=this.geometryData,e.topology=this.topology}reset(){this.applyTransform=!0,this.renderable=null,this.topology="triangle-list"}}});var $s,Qy,Zy,Jy=p(()=>{B();$s={extension:{type:b.ShapeBuilder,name:"circle"},build(r,e){let t,i,s,n,o,a;if(r.type==="circle"){let T=r;if(o=a=T.radius,o<=0)return!1;t=T.x,i=T.y,s=n=0}else if(r.type==="ellipse"){let T=r;if(o=T.halfWidth,a=T.halfHeight,o<=0||a<=0)return!1;t=T.x,i=T.y,s=n=0}else{let T=r,C=T.width/2,v=T.height/2;t=T.x+C,i=T.y+v,o=a=Math.max(0,Math.min(T.radius,Math.min(C,v))),s=C-o,n=v-a}if(s<0||n<0)return!1;let c=Math.ceil(2.3*Math.sqrt(o+a)),u=c*8+(s?4:0)+(n?4:0);if(u===0)return!1;if(c===0)return e[0]=e[6]=t+s,e[1]=e[3]=i+n,e[2]=e[4]=t-s,e[5]=e[7]=i-n,!0;let l=0,h=c*4+(s?2:0)+2,f=h,d=u,m=s+o,x=n,g=t+m,_=t-m,y=i+x;if(e[l++]=g,e[l++]=y,e[--h]=y,e[--h]=_,n){let T=i-x;e[f++]=_,e[f++]=T,e[--d]=T,e[--d]=g}for(let T=1;T<c;T++){let C=Math.PI/2*(T/c),v=s+Math.cos(C)*o,E=n+Math.sin(C)*a,D=t+v,A=t-v,P=i+E,k=i-E;e[l++]=D,e[l++]=P,e[--h]=P,e[--h]=A,e[f++]=A,e[f++]=k,e[--d]=k,e[--d]=D}m=s,x=n+a,g=t+m,_=t-m,y=i+x;let S=i-x;return e[l++]=g,e[l++]=y,e[--d]=S,e[--d]=g,s&&(e[l++]=_,e[l++]=y,e[--d]=S,e[--d]=_),!0},triangulate(r,e,t,i,s,n){if(r.length===0)return;let o=0,a=0;for(let l=0;l<r.length;l+=2)o+=r[l],a+=r[l+1];o/=r.length/2,a/=r.length/2;let c=i;e[c*t]=o,e[c*t+1]=a;let u=c++;for(let l=0;l<r.length;l+=2)e[c*t]=r[l],e[c*t+1]=r[l+1],l>0&&(s[n++]=c,s[n++]=u,s[n++]=c-1),c++;s[n++]=u+1,s[n++]=u,s[n++]=c-1}},Qy={...$s,extension:{...$s.extension,name:"ellipse"}},Zy={...$s,extension:{...$s.extension,name:"roundedRectangle"}}});function e2(r){let e=r.length;if(e<6)return 1;let t=0;for(let i=0,s=r[e-2],n=r[e-1];i<e;i+=2){let o=r[i],a=r[i+1];t+=(o-s)*(a+n),s=o,n=a}return t<0?-1:1}var t2=p(()=>{"use strict"});function r2(r,e,t,i,s,n,o,a){let c=r-t*s,u=e-i*s,l=r+t*n,h=e+i*n,f,d;o?(f=i,d=-t):(f=-i,d=t);let m=c+f,x=u+d,g=l+f,_=h+d;return a.push(m,x),a.push(g,_),2}function Xi(r,e,t,i,s,n,o,a){let c=t-r,u=i-e,l=Math.atan2(c,u),h=Math.atan2(s-r,n-e);a&&l<h?l+=Math.PI*2:!a&&l>h&&(h+=Math.PI*2);let f=l,d=h-l,m=Math.abs(d),x=Math.sqrt(c*c+u*u),g=(15*m*Math.sqrt(x)/Math.PI>>0)+1,_=d/g;if(f+=_,a){o.push(r,e),o.push(t,i);for(let y=1,S=f;y<g;y++,S+=_)o.push(r,e),o.push(r+Math.sin(S)*x,e+Math.cos(S)*x);o.push(r,e),o.push(s,n)}else{o.push(t,i),o.push(r,e);for(let y=1,S=f;y<g;y++,S+=_)o.push(r+Math.sin(S)*x,e+Math.cos(S)*x),o.push(r,e);o.push(s,n),o.push(r,e)}return g*2}function i2(r,e,t,i,s,n){let o=1e-4;if(r.length===0)return;let a=e,c=a.alignment;if(e.alignment!==.5){let de=e2(r);t&&(de*=-1),c=(c-.5)*de+.5}let u=new J(r[0],r[1]),l=new J(r[r.length-2],r[r.length-1]),h=i,f=Math.abs(u.x-l.x)<o&&Math.abs(u.y-l.y)<o;if(h){r=r.slice(),f&&(r.pop(),r.pop(),l.set(r[r.length-2],r[r.length-1]));let de=(u.x+l.x)*.5,Ir=(l.y+u.y)*.5;r.unshift(de,Ir),r.push(de,Ir)}let d=s,m=r.length/2,x=r.length,g=d.length/2,_=a.width/2,y=_*_,S=a.miterLimit*a.miterLimit,T=r[0],C=r[1],v=r[2],E=r[3],D=0,A=0,P=-(C-E),k=T-v,G=0,j=0,be=Math.sqrt(P*P+k*k);P/=be,k/=be,P*=_,k*=_;let Tt=c,U=(1-Tt)*2,H=Tt*2;h||(a.cap==="round"?x+=Xi(T-P*(U-H)*.5,C-k*(U-H)*.5,T-P*U,C-k*U,T+P*H,C+k*H,d,!0)+2:a.cap==="square"&&(x+=r2(T,C,P,k,U,H,!0,d))),d.push(T-P*U,C-k*U),d.push(T+P*H,C+k*H);for(let de=1;de<m-1;++de){T=r[(de-1)*2],C=r[(de-1)*2+1],v=r[de*2],E=r[de*2+1],D=r[(de+1)*2],A=r[(de+1)*2+1],P=-(C-E),k=T-v,be=Math.sqrt(P*P+k*k),P/=be,k/=be,P*=_,k*=_,G=-(E-A),j=v-D,be=Math.sqrt(G*G+j*j),G/=be,j/=be,G*=_,j*=_;let Ir=v-T,kn=C-E,An=v-D,Pn=A-E,xg=Ir*An+kn*Pn,hc=kn*An-Pn*Ir,Bn=hc<0;if(Math.abs(hc)<.001*Math.abs(xg)){d.push(v-P*U,E-k*U),d.push(v+P*H,E+k*H),xg>=0&&(a.join==="round"?x+=Xi(v,E,v-P*U,E-k*U,v-G*U,E-j*U,d,!1)+4:x+=2,d.push(v-G*H,E-j*H),d.push(v+G*U,E+j*U));continue}let _g=(-P+T)*(-k+E)-(-P+v)*(-k+C),bg=(-G+D)*(-j+E)-(-G+v)*(-j+A),dc=(Ir*bg-An*_g)/hc,fc=(Pn*_g-kn*bg)/hc,Sh=(dc-v)*(dc-v)+(fc-E)*(fc-E),oi=v+(dc-v)*U,ai=E+(fc-E)*U,ci=v-(dc-v)*H,ui=E-(fc-E)*H,LE=Math.min(Ir*Ir+kn*kn,An*An+Pn*Pn),yg=Bn?U:H,zE=LE+yg*yg*y;Sh<=zE?a.join==="bevel"||Sh/y>S?(Bn?(d.push(oi,ai),d.push(v+P*H,E+k*H),d.push(oi,ai),d.push(v+G*H,E+j*H)):(d.push(v-P*U,E-k*U),d.push(ci,ui),d.push(v-G*U,E-j*U),d.push(ci,ui)),x+=2):a.join==="round"?Bn?(d.push(oi,ai),d.push(v+P*H,E+k*H),x+=Xi(v,E,v+P*H,E+k*H,v+G*H,E+j*H,d,!0)+4,d.push(oi,ai),d.push(v+G*H,E+j*H)):(d.push(v-P*U,E-k*U),d.push(ci,ui),x+=Xi(v,E,v-P*U,E-k*U,v-G*U,E-j*U,d,!1)+4,d.push(v-G*U,E-j*U),d.push(ci,ui)):(d.push(oi,ai),d.push(ci,ui)):(d.push(v-P*U,E-k*U),d.push(v+P*H,E+k*H),a.join==="round"?Bn?x+=Xi(v,E,v+P*H,E+k*H,v+G*H,E+j*H,d,!0)+2:x+=Xi(v,E,v-P*U,E-k*U,v-G*U,E-j*U,d,!1)+2:a.join==="miter"&&Sh/y<=S&&(Bn?(d.push(ci,ui),d.push(ci,ui)):(d.push(oi,ai),d.push(oi,ai)),x+=2),d.push(v-G*U,E-j*U),d.push(v+G*H,E+j*H),x+=2)}T=r[(m-2)*2],C=r[(m-2)*2+1],v=r[(m-1)*2],E=r[(m-1)*2+1],P=-(C-E),k=T-v,be=Math.sqrt(P*P+k*k),P/=be,k/=be,P*=_,k*=_,d.push(v-P*U,E-k*U),d.push(v+P*H,E+k*H),h||(a.cap==="round"?x+=Xi(v-P*(U-H)*.5,E-k*(U-H)*.5,v-P*U,E-k*U,v+P*H,E+k*H,d,!1)+2:a.cap==="square"&&(x+=r2(v,E,P,k,U,H,!1,d)));let wh=1e-4*1e-4;for(let de=g;de<x+g-2;++de)T=d[de*2],C=d[de*2+1],v=d[(de+1)*2],E=d[(de+1)*2+1],D=d[(de+2)*2],A=d[(de+2)*2+1],!(Math.abs(T*(E-A)+v*(A-C)+D*(C-E))<wh)&&n.push(de,de+1,de+2)}var s2=p(()=>{Ft();t2()});function n2(r,e,t,i){let s=1e-4;if(r.length===0)return;let n=r[0],o=r[1],a=r[r.length-2],c=r[r.length-1],u=e||Math.abs(n-a)<s&&Math.abs(o-c)<s,l=t,h=r.length/2,f=l.length/2;for(let d=0;d<h;d++)l.push(r[d*2]),l.push(r[d*2+1]);for(let d=0;d<h-1;d++)i.push(f+d,f+d+1);u&&i.push(f+h-1,f)}var o2=p(()=>{});function rl(r,e,t=2){let i=e&&e.length,s=i?e[0]*t:r.length,n=c2(r,0,s,t,!0),o=[];if(!n||n.next===n.prev)return o;let a,c,u;if(i&&(n=qP(r,e,n,t)),r.length>80*t){a=1/0,c=1/0;let l=-1/0,h=-1/0;for(let f=t;f<s;f+=t){let d=r[f],m=r[f+1];d<a&&(a=d),m<c&&(c=m),d>l&&(l=d),m>h&&(h=m)}u=Math.max(l-a,h-c),u=u!==0?32767/u:0}return Fo(n,o,t,a,c,u,0),o}function c2(r,e,t,i,s){let n;if(s===iB(r,e,t,i)>0)for(let o=e;o<t;o+=i)n=a2(o/i|0,r[o],r[o+1],n);else for(let o=t-i;o>=e;o-=i)n=a2(o/i|0,r[o],r[o+1],n);return n&&qs(n,n.next)&&(Oo(n),n=n.next),n}function Yi(r,e){if(!r)return r;e||(e=r);let t=r,i;do if(i=!1,!t.steiner&&(qs(t,t.next)||Se(t.prev,t,t.next)===0)){if(Oo(t),t=e=t.prev,t===t.next)break;i=!0}else t=t.next;while(i||t!==e);return e}function Fo(r,e,t,i,s,n,o){if(!r)return;!o&&n&&QP(r,i,s,n);let a=r;for(;r.prev!==r.next;){let c=r.prev,u=r.next;if(n?HP(r,i,s,n):VP(r)){e.push(c.i,r.i,u.i),Oo(r),r=u.next,a=u.next;continue}if(r=u,r===a){o?o===1?(r=WP(Yi(r),e),Fo(r,e,t,i,s,n,2)):o===2&&$P(r,e,t,i,s,n):Fo(Yi(r),e,t,i,s,n,1);break}}}function VP(r){let e=r.prev,t=r,i=r.next;if(Se(e,t,i)>=0)return!1;let s=e.x,n=t.x,o=i.x,a=e.y,c=t.y,u=i.y,l=Math.min(s,n,o),h=Math.min(a,c,u),f=Math.max(s,n,o),d=Math.max(a,c,u),m=i.next;for(;m!==e;){if(m.x>=l&&m.x<=f&&m.y>=h&&m.y<=d&&Io(s,a,n,c,o,u,m.x,m.y)&&Se(m.prev,m,m.next)>=0)return!1;m=m.next}return!0}function HP(r,e,t,i){let s=r.prev,n=r,o=r.next;if(Se(s,n,o)>=0)return!1;let a=s.x,c=n.x,u=o.x,l=s.y,h=n.y,f=o.y,d=Math.min(a,c,u),m=Math.min(l,h,f),x=Math.max(a,c,u),g=Math.max(l,h,f),_=qf(d,m,e,t,i),y=qf(x,g,e,t,i),S=r.prevZ,T=r.nextZ;for(;S&&S.z>=_&&T&&T.z<=y;){if(S.x>=d&&S.x<=x&&S.y>=m&&S.y<=g&&S!==s&&S!==o&&Io(a,l,c,h,u,f,S.x,S.y)&&Se(S.prev,S,S.next)>=0||(S=S.prevZ,T.x>=d&&T.x<=x&&T.y>=m&&T.y<=g&&T!==s&&T!==o&&Io(a,l,c,h,u,f,T.x,T.y)&&Se(T.prev,T,T.next)>=0))return!1;T=T.nextZ}for(;S&&S.z>=_;){if(S.x>=d&&S.x<=x&&S.y>=m&&S.y<=g&&S!==s&&S!==o&&Io(a,l,c,h,u,f,S.x,S.y)&&Se(S.prev,S,S.next)>=0)return!1;S=S.prevZ}for(;T&&T.z<=y;){if(T.x>=d&&T.x<=x&&T.y>=m&&T.y<=g&&T!==s&&T!==o&&Io(a,l,c,h,u,f,T.x,T.y)&&Se(T.prev,T,T.next)>=0)return!1;T=T.nextZ}return!0}function WP(r,e){let t=r;do{let i=t.prev,s=t.next.next;!qs(i,s)&&l2(i,t,t.next,s)&&Uo(i,s)&&Uo(s,i)&&(e.push(i.i,t.i,s.i),Oo(t),Oo(t.next),t=r=s),t=t.next}while(t!==r);return Yi(t)}function $P(r,e,t,i,s,n){let o=r;do{let a=o.next.next;for(;a!==o.prev;){if(o.i!==a.i&&eB(o,a)){let c=h2(o,a);o=Yi(o,o.next),c=Yi(c,c.next),Fo(o,e,t,i,s,n,0),Fo(c,e,t,i,s,n,0);return}a=a.next}o=o.next}while(o!==r)}function qP(r,e,t,i){let s=[];for(let n=0,o=e.length;n<o;n++){let a=e[n]*i,c=n<o-1?e[n+1]*i:r.length,u=c2(r,a,c,i,!1);u===u.next&&(u.steiner=!0),s.push(JP(u))}s.sort(jP);for(let n=0;n<s.length;n++)t=XP(s[n],t);return t}function jP(r,e){let t=r.x-e.x;if(t===0&&(t=r.y-e.y,t===0)){let i=(r.next.y-r.y)/(r.next.x-r.x),s=(e.next.y-e.y)/(e.next.x-e.x);t=i-s}return t}function XP(r,e){let t=YP(r,e);if(!t)return e;let i=h2(t,r);return Yi(i,i.next),Yi(t,t.next)}function YP(r,e){let t=e,i=r.x,s=r.y,n=-1/0,o;if(qs(r,t))return t;do{if(qs(r,t.next))return t.next;if(s<=t.y&&s>=t.next.y&&t.next.y!==t.y){let h=t.x+(s-t.y)*(t.next.x-t.x)/(t.next.y-t.y);if(h<=i&&h>n&&(n=h,o=t.x<t.next.x?t:t.next,h===i))return o}t=t.next}while(t!==e);if(!o)return null;let a=o,c=o.x,u=o.y,l=1/0;t=o;do{if(i>=t.x&&t.x>=c&&i!==t.x&&u2(s<u?i:n,s,c,u,s<u?n:i,s,t.x,t.y)){let h=Math.abs(s-t.y)/(i-t.x);Uo(t,r)&&(h<l||h===l&&(t.x>o.x||t.x===o.x&&KP(o,t)))&&(o=t,l=h)}t=t.next}while(t!==a);return o}function KP(r,e){return Se(r.prev,r,e.prev)<0&&Se(e.next,r,r.next)<0}function QP(r,e,t,i){let s=r;do s.z===0&&(s.z=qf(s.x,s.y,e,t,i)),s.prevZ=s.prev,s.nextZ=s.next,s=s.next;while(s!==r);s.prevZ.nextZ=null,s.prevZ=null,ZP(s)}function ZP(r){let e,t=1;do{let i=r,s;r=null;let n=null;for(e=0;i;){e++;let o=i,a=0;for(let u=0;u<t&&(a++,o=o.nextZ,!!o);u++);let c=t;for(;a>0||c>0&&o;)a!==0&&(c===0||!o||i.z<=o.z)?(s=i,i=i.nextZ,a--):(s=o,o=o.nextZ,c--),n?n.nextZ=s:r=s,s.prevZ=n,n=s;i=o}n.nextZ=null,t*=2}while(e>1);return r}function qf(r,e,t,i,s){return r=(r-t)*s|0,e=(e-i)*s|0,r=(r|r<<8)&16711935,r=(r|r<<4)&252645135,r=(r|r<<2)&858993459,r=(r|r<<1)&1431655765,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,r|e<<1}function JP(r){let e=r,t=r;do(e.x<t.x||e.x===t.x&&e.y<t.y)&&(t=e),e=e.next;while(e!==r);return t}function u2(r,e,t,i,s,n,o,a){return(s-o)*(e-a)>=(r-o)*(n-a)&&(r-o)*(i-a)>=(t-o)*(e-a)&&(t-o)*(n-a)>=(s-o)*(i-a)}function Io(r,e,t,i,s,n,o,a){return!(r===o&&e===a)&&u2(r,e,t,i,s,n,o,a)}function eB(r,e){return r.next.i!==e.i&&r.prev.i!==e.i&&!tB(r,e)&&(Uo(r,e)&&Uo(e,r)&&rB(r,e)&&(Se(r.prev,r,e.prev)||Se(r,e.prev,e))||qs(r,e)&&Se(r.prev,r,r.next)>0&&Se(e.prev,e,e.next)>0)}function Se(r,e,t){return(e.y-r.y)*(t.x-e.x)-(e.x-r.x)*(t.y-e.y)}function qs(r,e){return r.x===e.x&&r.y===e.y}function l2(r,e,t,i){let s=tl(Se(r,e,t)),n=tl(Se(r,e,i)),o=tl(Se(t,i,r)),a=tl(Se(t,i,e));return!!(s!==n&&o!==a||s===0&&el(r,t,e)||n===0&&el(r,i,e)||o===0&&el(t,r,i)||a===0&&el(t,e,i))}function el(r,e,t){return e.x<=Math.max(r.x,t.x)&&e.x>=Math.min(r.x,t.x)&&e.y<=Math.max(r.y,t.y)&&e.y>=Math.min(r.y,t.y)}function tl(r){return r>0?1:r<0?-1:0}function tB(r,e){let t=r;do{if(t.i!==r.i&&t.next.i!==r.i&&t.i!==e.i&&t.next.i!==e.i&&l2(t,t.next,r,e))return!0;t=t.next}while(t!==r);return!1}function Uo(r,e){return Se(r.prev,r,r.next)<0?Se(r,e,r.next)>=0&&Se(r,r.prev,e)>=0:Se(r,e,r.prev)<0||Se(r,r.next,e)<0}function rB(r,e){let t=r,i=!1,s=(r.x+e.x)/2,n=(r.y+e.y)/2;do t.y>n!=t.next.y>n&&t.next.y!==t.y&&s<(t.next.x-t.x)*(n-t.y)/(t.next.y-t.y)+t.x&&(i=!i),t=t.next;while(t!==r);return i}function h2(r,e){let t=jf(r.i,r.x,r.y),i=jf(e.i,e.x,e.y),s=r.next,n=e.prev;return r.next=e,e.prev=r,t.next=s,s.prev=t,i.next=t,t.prev=i,n.next=i,i.prev=n,i}function a2(r,e,t,i){let s=jf(r,e,t);return i?(s.next=i.next,s.prev=i,i.next.prev=s,i.next=s):(s.prev=s,s.next=s),s}function Oo(r){r.next.prev=r.prev,r.prev.next=r.next,r.prevZ&&(r.prevZ.nextZ=r.nextZ),r.nextZ&&(r.nextZ.prevZ=r.prevZ)}function jf(r,e,t){return{i:r,x:e,y:t,prev:null,next:null,z:0,prevZ:null,nextZ:null,steiner:!1}}function iB(r,e,t,i){let s=0;for(let n=e,o=t-i;n<t;n+=i)s+=(r[o]-r[n])*(r[n+1]+r[o+1]),o=n;return s}var d2=p(()=>{});var f2,m2=p(()=>{d2();Ve();f2=rl.default||rl});function il(r,e,t,i,s,n,o){let a=f2(r,e,2);if(!a)return;for(let u=0;u<a.length;u+=3)n[o++]=a[u]+s,n[o++]=a[u+1]+s,n[o++]=a[u+2]+s;let c=s*i;for(let u=0;u<r.length;u+=2)t[c]=r[u],t[c+1]=r[u+1],c+=i}var Xf=p(()=>{m2()});var sB,p2,g2=p(()=>{B();Xf();sB=[],p2={extension:{type:b.ShapeBuilder,name:"polygon"},build(r,e){for(let t=0;t<r.points.length;t++)e[t]=r.points[t];return!0},triangulate(r,e,t,i,s,n){il(r,sB,e,t,i,s,n)}}});var x2,_2=p(()=>{B();x2={extension:{type:b.ShapeBuilder,name:"rectangle"},build(r,e){let t=r,i=t.x,s=t.y,n=t.width,o=t.height;return n>0&&o>0?(e[0]=i,e[1]=s,e[2]=i+n,e[3]=s,e[4]=i+n,e[5]=s+o,e[6]=i,e[7]=s+o,!0):!1},triangulate(r,e,t,i,s,n){let o=0;i*=t,e[i+o]=r[0],e[i+o+1]=r[1],o+=t,e[i+o]=r[2],e[i+o+1]=r[3],o+=t,e[i+o]=r[6],e[i+o+1]=r[7],o+=t,e[i+o]=r[4],e[i+o+1]=r[5],o+=t;let a=i/t;s[n++]=a,s[n++]=a+1,s[n++]=a+2,s[n++]=a+1,s[n++]=a+3,s[n++]=a+2}}});var b2,y2=p(()=>{B();b2={extension:{type:b.ShapeBuilder,name:"triangle"},build(r,e){return e[0]=r.x,e[1]=r.y,e[2]=r.x2,e[3]=r.y2,e[4]=r.x3,e[5]=r.y3,!0},triangulate(r,e,t,i,s,n){let o=0;i*=t,e[i+o]=r[0],e[i+o+1]=r[1],o+=t,e[i+o]=r[2],e[i+o+1]=r[3],o+=t,e[i+o]=r[4],e[i+o+1]=r[5];let a=i/t;s[n++]=a,s[n++]=a+1,s[n++]=a+2}}});function w2(r,e){for(let t=0;t<e.length;t++){let i=e[t];r.addColorStop(i.offset,i.color)}}function S2(r,e){let t=W.get().createCanvas(r,e),i=t.getContext("2d");return{canvas:t,context:i}}function nB(r){let e=r[0]??{};return(typeof e=="number"||r[1])&&(z("8.5.2","use options object instead"),e={type:"linear",start:{x:r[0],y:r[1]},end:{x:r[2],y:r[3]},textureSpace:r[4],textureSize:r[5]??lt.defaultLinearOptions.textureSize}),e}var T2,Kf,lt,js=p(()=>{He();Ce();te();zu();le();Oe();ye();Ld();T2=[{offset:0,color:"white"},{offset:1,color:"black"}],Kf=class Yf{constructor(...e){this.uid=K("fillGradient"),this.type="linear",this.colorStops=[];let t=nB(e);t={...t.type==="radial"?Yf.defaultRadialOptions:Yf.defaultLinearOptions,...Cu(t)},this._textureSize=t.textureSize,this._wrapMode=t.wrapMode,t.type==="radial"?(this.center=t.center,this.outerCenter=t.outerCenter??this.center,this.innerRadius=t.innerRadius,this.outerRadius=t.outerRadius,this.scale=t.scale,this.rotation=t.rotation):(this.start=t.start,this.end=t.end),this.textureSpace=t.textureSpace,this.type=t.type,t.colorStops.forEach(s=>{this.addColorStop(s.offset,s.color)})}addColorStop(e,t){return this.colorStops.push({offset:e,color:q.shared.setValue(t).toHexa()}),this}buildLinearGradient(){if(this.texture)return;let{x:e,y:t}=this.start,{x:i,y:s}=this.end,n=i-e,o=s-t,a=n<0||o<0;if(this._wrapMode==="clamp-to-edge"){if(n<0){let g=e;e=i,i=g,n*=-1}if(o<0){let g=t;t=s,s=g,o*=-1}}let c=this.colorStops.length?this.colorStops:T2,u=this._textureSize,{canvas:l,context:h}=S2(u,1),f=a?h.createLinearGradient(this._textureSize,0,0,0):h.createLinearGradient(0,0,this._textureSize,0);w2(f,c),h.fillStyle=f,h.fillRect(0,0,u,1),this.texture=new M({source:new Qt({resource:l,addressMode:this._wrapMode})});let d=Math.sqrt(n*n+o*o),m=Math.atan2(o,n),x=new R;x.scale(d/u,1),x.rotate(m),x.translate(e,t),this.textureSpace==="local"&&x.scale(u,u),this.transform=x}buildGradient(){this.type==="linear"?this.buildLinearGradient():this.buildRadialGradient()}buildRadialGradient(){if(this.texture)return;let e=this.colorStops.length?this.colorStops:T2,t=this._textureSize,{canvas:i,context:s}=S2(t,t),{x:n,y:o}=this.center,{x:a,y:c}=this.outerCenter,u=this.innerRadius,l=this.outerRadius,h=a-l,f=c-l,d=t/(l*2),m=(n-h)*d,x=(o-f)*d,g=s.createRadialGradient(m,x,u*d,(a-h)*d,(c-f)*d,l*d);w2(g,e),s.fillStyle=e[e.length-1].color,s.fillRect(0,0,t,t),s.fillStyle=g,s.translate(m,x),s.rotate(this.rotation),s.scale(1,this.scale),s.translate(-m,-x),s.fillRect(0,0,t,t),this.texture=new M({source:new Qt({resource:i,addressMode:this._wrapMode})});let _=new R;_.scale(1/d,1/d),_.translate(h,f),this.textureSpace==="local"&&_.scale(t,t),this.transform=_}get styleKey(){return this.uid}destroy(){this.texture?.destroy(!0),this.texture=null}};Kf.defaultLinearOptions={start:{x:0,y:0},end:{x:0,y:1},colorStops:[],textureSpace:"local",type:"linear",textureSize:256,wrapMode:"clamp-to-edge"};Kf.defaultRadialOptions={center:{x:.5,y:.5},innerRadius:0,outerRadius:.5,colorStops:[],scale:1,textureSpace:"local",type:"radial",textureSize:256,wrapMode:"clamp-to-edge"};lt=Kf});function v2(r,e,t,i){let s=e.matrix?r.copyFrom(e.matrix).invert():r.identity();if(e.textureSpace==="local"){let o=t.getBounds(aB);e.width&&o.pad(e.width);let{x:a,y:c}=o,u=1/o.width,l=1/o.height,h=-a*u,f=-c*l,d=s.a,m=s.b,x=s.c,g=s.d;s.a*=u,s.b*=u,s.c*=l,s.d*=l,s.tx=h*d+f*x+s.tx,s.ty=h*m+f*g+s.ty}else s.translate(e.texture.frame.x,e.texture.frame.y),s.scale(1/e.texture.source.width,1/e.texture.source.height);let n=e.texture.source.style;return!(e.fill instanceof lt)&&n.addressMode==="clamp-to-edge"&&(n.addressMode="repeat",n.update()),i&&s.append(oB.copyFrom(i).invert()),s}var oB,aB,C2=p(()=>{te();Ge();js();oB=new R,aB=new Y});function k2(r,e){let{geometryData:t,batches:i}=e;i.length=0,t.indices.length=0,t.vertices.length=0,t.uvs.length=0;for(let s=0;s<r.instructions.length;s++){let n=r.instructions[s];if(n.action==="texture")lB(n.data,i,t);else if(n.action==="fill"||n.action==="stroke"){let o=n.action==="stroke",a=n.data.path.shapePath,c=n.data.style,u=n.data.hole;o&&u&&E2(u.shapePath,c,!0,i,t),u&&(a.shapePrimitives[a.shapePrimitives.length-1].holes=u.shapePath.shapePrimitives),E2(a,c,o,i,t)}}}function lB(r,e,t){let i=[],s=sl.rectangle,n=cB;n.x=r.dx,n.y=r.dy,n.width=r.dw,n.height=r.dh;let o=r.transform;if(!s.build(n,i))return;let{vertices:a,uvs:c,indices:u}=t,l=u.length,h=a.length/2;o&&Wf(i,o),s.triangulate(i,a,2,h,u,l);let f=r.image,d=f.uvs;c.push(d.x0,d.y0,d.x1,d.y1,d.x3,d.y3,d.x2,d.y2);let m=me.get(ji);m.indexOffset=l,m.indexSize=u.length-l,m.attributeOffset=h,m.attributeSize=a.length/2-h,m.baseColor=r.style,m.alpha=r.alpha,m.texture=f,m.geometryData=t,e.push(m)}function E2(r,e,t,i,s){let{vertices:n,uvs:o,indices:a}=s;r.shapePrimitives.forEach(({shape:c,transform:u,holes:l})=>{let h=[],f=sl[c.type];if(!f.build(c,h))return;let d=a.length,m=n.length/2,x="triangle-list";if(u&&Wf(h,u),t){let S=c.closePath??!0,T=e;T.pixelLine?(n2(h,S,n,a),x="line-list"):i2(h,T,!1,S,n,a)}else if(l){let S=[],T=h.slice();hB(l).forEach(v=>{S.push(T.length/2),T.push(...v)}),il(T,S,n,2,m,a,d)}else f.triangulate(h,n,2,m,a,d);let g=o.length/2,_=e.texture;if(_!==M.WHITE){let S=v2(uB,e,c,u);jy(n,2,m,o,g,2,n.length/2-m,S)}else Xy(o,g,2,n.length/2-m);let y=me.get(ji);y.indexOffset=d,y.indexSize=a.length-d,y.attributeOffset=m,y.attributeSize=n.length/2-m,y.baseColor=e.color,y.alpha=e.alpha,y.texture=_,y.geometryData=s,y.topology=x,i.push(y)})}function hB(r){let e=[];for(let t=0;t<r.length;t++){let i=r[t].shape,s=[];sl[i.type].build(i,s)&&e.push(s)}return e}var sl,cB,uB,A2=p(()=>{B();te();Ge();Yy();Ky();le();br();$f();Jy();s2();o2();g2();_2();y2();C2();Xf();sl={};O.handleByMap(b.ShapeBuilder,sl);O.add(x2,p2,b2,$s,Qy,Zy);cB=new Y,uB=new R});var Qf,Zf,em,Xs,nl=p(()=>{B();Wu();Hf();Gd();ye();br();A2();Qf=class{constructor(){this.batches=[],this.geometryData={vertices:[],uvs:[],indices:[]}}},Zf=class{constructor(){this.instructions=new Ps}init(e){this.batcher=new Mo({maxTextures:e}),this.instructions.reset()}get geometry(){return z(U0,"GraphicsContextRenderData#geometry is deprecated, please use batcher.geometry instead."),this.batcher.geometry}},em=class Jf{constructor(e){this._gpuContextHash={},this._graphicsDataContextHash=Object.create(null),this._renderer=e,e.renderableGC.addManagedHash(this,"_gpuContextHash"),e.renderableGC.addManagedHash(this,"_graphicsDataContextHash")}init(e){Jf.defaultOptions.bezierSmoothness=e?.bezierSmoothness??Jf.defaultOptions.bezierSmoothness}getContextRenderData(e){return this._graphicsDataContextHash[e.uid]||this._initContextRenderData(e)}updateGpuContext(e){let t=this._gpuContextHash[e.uid]||this._initContext(e);if(e.dirty){t?this._cleanGraphicsContextData(e):t=this._initContext(e),k2(e,t);let i=e.batchMode;e.customShader||i==="no-batch"?t.isBatchable=!1:i==="auto"?t.isBatchable=t.geometryData.vertices.length<400:t.isBatchable=!0,e.dirty=!1}return t}getGpuContext(e){return this._gpuContextHash[e.uid]||this._initContext(e)}_initContextRenderData(e){let t=me.get(Zf,{maxTextures:this._renderer.limits.maxBatchableTextures}),{batches:i,geometryData:s}=this._gpuContextHash[e.uid],n=s.vertices.length,o=s.indices.length;for(let l=0;l<i.length;l++)i[l].applyTransform=!1;let a=t.batcher;a.ensureAttributeBuffer(n),a.ensureIndexBuffer(o),a.begin();for(let l=0;l<i.length;l++){let h=i[l];a.add(h)}a.finish(t.instructions);let c=a.geometry;c.indexBuffer.setDataWithSize(a.indexBuffer,a.indexSize,!0),c.buffers[0].setDataWithSize(a.attributeBuffer.float32View,a.attributeSize,!0);let u=a.batches;for(let l=0;l<u.length;l++){let h=u[l];h.bindGroup=Fs(h.textures.textures,h.textures.count,this._renderer.limits.maxBatchableTextures)}return this._graphicsDataContextHash[e.uid]=t,t}_initContext(e){let t=new Qf;return t.context=e,this._gpuContextHash[e.uid]=t,e.on("destroy",this.onGraphicsContextDestroy,this),this._gpuContextHash[e.uid]}onGraphicsContextDestroy(e){this._cleanGraphicsContextData(e),e.off("destroy",this.onGraphicsContextDestroy,this),this._gpuContextHash[e.uid]=null}_cleanGraphicsContextData(e){let t=this._gpuContextHash[e.uid];t.isBatchable||this._graphicsDataContextHash[e.uid]&&(me.return(this.getContextRenderData(e)),this._graphicsDataContextHash[e.uid]=null),t.batches&&t.batches.forEach(i=>{me.return(i)})}destroy(){for(let e in this._gpuContextHash)this._gpuContextHash[e]&&this.onGraphicsContextDestroy(this._gpuContextHash[e].context)}};em.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"graphicsContext"};em.defaultOptions={bezierSmoothness:.5};Xs=em});var dB,tm,rm,im,sm,nm,om,am,Pe,Gt=p(()=>{"use strict";dB={normal:0,add:1,multiply:2,screen:3,overlay:4,erase:5,"normal-npm":6,"add-npm":7,"screen-npm":8,min:9,max:10},tm=0,rm=1,im=2,sm=3,nm=4,om=5,am=class P2{constructor(){this.data=0,this.blendMode="normal",this.polygonOffset=0,this.blend=!0,this.depthMask=!0}get blend(){return!!(this.data&1<<tm)}set blend(e){!!(this.data&1<<tm)!==e&&(this.data^=1<<tm)}get offsets(){return!!(this.data&1<<rm)}set offsets(e){!!(this.data&1<<rm)!==e&&(this.data^=1<<rm)}set cullMode(e){if(e==="none"){this.culling=!1;return}this.culling=!0,this.clockwiseFrontFace=e==="front"}get cullMode(){return this.culling?this.clockwiseFrontFace?"front":"back":"none"}get culling(){return!!(this.data&1<<im)}set culling(e){!!(this.data&1<<im)!==e&&(this.data^=1<<im)}get depthTest(){return!!(this.data&1<<sm)}set depthTest(e){!!(this.data&1<<sm)!==e&&(this.data^=1<<sm)}get depthMask(){return!!(this.data&1<<om)}set depthMask(e){!!(this.data&1<<om)!==e&&(this.data^=1<<om)}get clockwiseFrontFace(){return!!(this.data&1<<nm)}set clockwiseFrontFace(e){!!(this.data&1<<nm)!==e&&(this.data^=1<<nm)}get blendMode(){return this._blendMode}set blendMode(e){this.blend=e!=="none",this._blendMode=e,this._blendModeId=dB[e]||0}get polygonOffset(){return this._polygonOffset}set polygonOffset(e){this.offsets=!!e,this._polygonOffset=e}toString(){return`[pixi.js/core:State blendMode=${this.blendMode} clockwiseFrontFace=${this.clockwiseFrontFace} culling=${this.culling} depthMask=${this.depthMask} polygonOffset=${this.polygonOffset}]`}static for2d(){let e=new P2;return e.depthTest=!1,e.blend=!0,e}};am.default2d=am.for2d();Pe=am});function sr(r,e,t){let i=(r>>24&255)/255;e[t++]=(r&255)/255*i,e[t++]=(r>>8&255)/255*i,e[t++]=(r>>16&255)/255*i,e[t++]=i}var Ys=p(()=>{"use strict"});var cm,Go,B2=p(()=>{B();Gt();br();Ys();$f();cm=class{constructor(){this.batches=[],this.batched=!1}destroy(){this.batches.forEach(e=>{me.return(e)}),this.batches.length=0}},Go=class{constructor(e,t){this.state=Pe.for2d(),this.renderer=e,this._adaptor=t,this.renderer.runners.contextChange.add(this)}contextChange(){this._adaptor.contextChange(this.renderer)}validateRenderable(e){let t=e.context,i=!!e._gpuData,s=this.renderer.graphicsContext.updateGpuContext(t);return!!(s.isBatchable||i!==s.isBatchable)}addRenderable(e,t){let i=this.renderer.graphicsContext.updateGpuContext(e.context);e.didViewUpdate&&this._rebuild(e),i.isBatchable?this._addToBatcher(e,t):(this.renderer.renderPipes.batch.break(t),t.add(e))}updateRenderable(e){let i=this._getGpuDataForRenderable(e).batches;for(let s=0;s<i.length;s++){let n=i[s];n._batcher.updateElement(n)}}execute(e){if(!e.isRenderable)return;let t=this.renderer,i=e.context;if(!t.graphicsContext.getGpuContext(i).batches.length)return;let n=i.customShader||this._adaptor.shader;this.state.blendMode=e.groupBlendMode;let o=n.resources.localUniforms.uniforms;o.uTransformMatrix=e.groupTransform,o.uRound=t._roundPixels|e._roundPixels,sr(e.groupColorAlpha,o.uColor,0),this._adaptor.execute(this,e)}_rebuild(e){let t=this._getGpuDataForRenderable(e),i=this.renderer.graphicsContext.updateGpuContext(e.context);t.destroy(),i.isBatchable&&this._updateBatchesForRenderable(e,t)}_addToBatcher(e,t){let i=this.renderer.renderPipes.batch,s=this._getGpuDataForRenderable(e).batches;for(let n=0;n<s.length;n++){let o=s[n];i.addToBatch(o,t)}}_getGpuDataForRenderable(e){return e._gpuData[this.renderer.uid]||this._initGpuDataForRenderable(e)}_initGpuDataForRenderable(e){let t=new cm;return e._gpuData[this.renderer.uid]=t,t}_updateBatchesForRenderable(e,t){let i=e.context,s=this.renderer.graphicsContext.getGpuContext(i),n=this.renderer._roundPixels|e._roundPixels;t.batches=s.batches.map(o=>{let a=me.get(ji);return o.copyTo(a),a.renderable=e,a.roundPixels=n,a})}destroy(){this.renderer=null,this._adaptor.destroy(),this._adaptor=null,this.state=null}};Go.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"graphics"}});var um=p(()=>{B();nl();B2();O.add(Go);O.add(Xs)});var Jr,ol=p(()=>{"use strict";Jr=class{constructor(){this.batcherName="default",this.packAsQuad=!1,this.indexOffset=0,this.attributeOffset=0,this.roundPixels=0,this._batcher=null,this._batch=null,this._textureMatrixUpdateId=-1,this._uvUpdateId=-1}get blendMode(){return this.renderable.groupBlendMode}get topology(){return this._topology||this.geometry.topology}set topology(e){this._topology=e}reset(){this.renderable=null,this.texture=null,this._batcher=null,this._batch=null,this.geometry=null,this._uvUpdateId=-1,this._textureMatrixUpdateId=-1}setTexture(e){this.texture!==e&&(this.texture=e,this._textureMatrixUpdateId=-1)}get uvs(){let t=this.geometry.getBuffer("aUV"),i=t.data,s=i,n=this.texture.textureMatrix;return n.isSimple||(s=this._transformedUvs,(this._textureMatrixUpdateId!==n._updateID||this._uvUpdateId!==t._updateID)&&((!s||s.length<i.length)&&(s=this._transformedUvs=new Float32Array(i.length)),this._textureMatrixUpdateId=n._updateID,this._uvUpdateId=t._updateID,n.multiplyUvs(i,s))),s}get positions(){return this.geometry.positions}get indices(){return this.geometry.indices}get color(){return this.renderable.groupColorAlpha}get groupTransform(){return this.renderable.groupTransform}get attributeSize(){return this.geometry.positions.length/2}get indexSize(){return this.geometry.indices.length}}});var al,No,R2=p(()=>{B();te();Xr();it();Ao();Ys();ol();al=class{destroy(){}},No=class{constructor(e,t){this.localUniforms=new ce({uTransformMatrix:{value:new R,type:"mat3x3<f32>"},uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uRound:{value:0,type:"f32"}}),this.localUniformsBindGroup=new Ne({0:this.localUniforms}),this.renderer=e,this._adaptor=t,this._adaptor.init()}validateRenderable(e){let t=this._getMeshData(e),i=t.batched,s=e.batched;if(t.batched=s,i!==s)return!0;if(s){let n=e._geometry;if(n.indices.length!==t.indexSize||n.positions.length!==t.vertexSize)return t.indexSize=n.indices.length,t.vertexSize=n.positions.length,!0;let o=this._getBatchableMesh(e);return o.texture.uid!==e._texture.uid&&(o._textureMatrixUpdateId=-1),!o._batcher.checkAndUpdateTexture(o,e._texture)}return!1}addRenderable(e,t){let i=this.renderer.renderPipes.batch,{batched:s}=this._getMeshData(e);if(s){let n=this._getBatchableMesh(e);n.setTexture(e._texture),n.geometry=e._geometry,i.addToBatch(n,t)}else i.break(t),t.add(e)}updateRenderable(e){if(e.batched){let t=this._getBatchableMesh(e);t.setTexture(e._texture),t.geometry=e._geometry,t._batcher.updateElement(t)}}execute(e){if(!e.isRenderable)return;e.state.blendMode=vr(e.groupBlendMode,e.texture._source);let t=this.localUniforms;t.uniforms.uTransformMatrix=e.groupTransform,t.uniforms.uRound=this.renderer._roundPixels|e._roundPixels,t.update(),sr(e.groupColorAlpha,t.uniforms.uColor,0),this._adaptor.execute(this,e)}_getMeshData(e){var t,i;return(t=e._gpuData)[i=this.renderer.uid]||(t[i]=new al),e._gpuData[this.renderer.uid].meshData||this._initMeshData(e)}_initMeshData(e){return e._gpuData[this.renderer.uid].meshData={batched:e.batched,indexSize:e._geometry.indices?.length,vertexSize:e._geometry.positions?.length},e._gpuData[this.renderer.uid].meshData}_getBatchableMesh(e){var t,i;return(t=e._gpuData)[i=this.renderer.uid]||(t[i]=new al),e._gpuData[this.renderer.uid].batchableMesh||this._initBatchableMesh(e)}_initBatchableMesh(e){let t=new Jr;return t.renderable=e,t.setTexture(e._texture),t.transform=e.groupTransform,t.roundPixels=this.renderer._roundPixels|e._roundPixels,e._gpuData[this.renderer.uid].batchableMesh=t,t}destroy(){this.localUniforms=null,this.localUniformsBindGroup=null,this._adaptor.destroy(),this._adaptor=null,this.renderer=null}};No.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"mesh"}});var lm=p(()=>{B();R2();O.add(No)});var cl,D2=p(()=>{"use strict";cl=class{execute(e,t){let i=e.state,s=e.renderer,n=t.shader||e.defaultShader;n.resources.uTexture=t.texture._source,n.resources.uniforms=e.localUniforms;let o=s.gl,a=e.getBuffers(t);s.shader.bind(n),s.state.set(i),s.geometry.bind(a.geometry,n.glProgram);let u=a.geometry.indexBuffer.data.BYTES_PER_ELEMENT===2?o.UNSIGNED_SHORT:o.UNSIGNED_INT;o.drawElements(o.TRIANGLES,t.particleChildren.length*6,u,0)}}});function hm(r,e=null){let t=r*6;if(t>65535?e||(e=new Uint32Array(t)):e||(e=new Uint16Array(t)),e.length!==t)throw new Error(`Out buffer length is incorrect, got ${e.length} and expected ${t}`);for(let i=0,s=0;i<t;i+=6,s+=4)e[i+0]=s+0,e[i+1]=s+1,e[i+2]=s+2,e[i+3]=s+0,e[i+4]=s+2,e[i+5]=s+3;return e}var M2=p(()=>{"use strict"});function F2(r){return{dynamicUpdate:I2(r,!0),staticUpdate:I2(r,!1)}}function I2(r,e){let t=[];t.push(`
254
-
255
- var index = 0;
256
-
257
- for (let i = 0; i < ps.length; ++i)
258
- {
259
- const p = ps[i];
260
-
261
- `);let i=0;for(let n in r){let o=r[n];if(e!==o.dynamic)continue;t.push(`offset = index + ${i}`),t.push(o.code);let a=ut(o.format);i+=a.stride/4}t.push(`
262
- index += stride * 4;
263
- }
264
- `),t.unshift(`
265
- var stride = ${i};
266
- `);let s=t.join(`
267
- `);return new Function("ps","f32v","u32v",s)}var U2=p(()=>{qi()});function fB(r){let e=[];for(let t in r){let i=r[t];e.push(t,i.code,i.dynamic?"d":"s")}return e.join("_")}var ul,O2=p(()=>{Yr();Cr();Os();qi();wf();M2();U2();ul=class{constructor(e){this._size=0,this._generateParticleUpdateCache={};let t=this._size=e.size??1e3,i=e.properties,s=0,n=0;for(let l in i){let h=i[l],f=ut(h.format);h.dynamic?n+=f.stride:s+=f.stride}this._dynamicStride=n/4,this._staticStride=s/4,this.staticAttributeBuffer=new Zt(t*4*s),this.dynamicAttributeBuffer=new Zt(t*4*n),this.indexBuffer=hm(t);let o=new At,a=0,c=0;this._staticBuffer=new Ee({data:new Float32Array(1),label:"static-particle-buffer",shrinkToFit:!1,usage:Q.VERTEX|Q.COPY_DST}),this._dynamicBuffer=new Ee({data:new Float32Array(1),label:"dynamic-particle-buffer",shrinkToFit:!1,usage:Q.VERTEX|Q.COPY_DST});for(let l in i){let h=i[l],f=ut(h.format);h.dynamic?(o.addAttribute(h.attributeName,{buffer:this._dynamicBuffer,stride:this._dynamicStride*4,offset:a*4,format:h.format}),a+=f.size):(o.addAttribute(h.attributeName,{buffer:this._staticBuffer,stride:this._staticStride*4,offset:c*4,format:h.format}),c+=f.size)}o.addIndex(this.indexBuffer);let u=this.getParticleUpdate(i);this._dynamicUpload=u.dynamicUpdate,this._staticUpload=u.staticUpdate,this.geometry=o}getParticleUpdate(e){let t=fB(e);return this._generateParticleUpdateCache[t]?this._generateParticleUpdateCache[t]:(this._generateParticleUpdateCache[t]=this.generateParticleUpdate(e),this._generateParticleUpdateCache[t])}generateParticleUpdate(e){return F2(e)}update(e,t){e.length>this._size&&(t=!0,this._size=Math.max(e.length,this._size*1.5|0),this.staticAttributeBuffer=new Zt(this._size*this._staticStride*4*4),this.dynamicAttributeBuffer=new Zt(this._size*this._dynamicStride*4*4),this.indexBuffer=hm(this._size),this.geometry.indexBuffer.setDataWithSize(this.indexBuffer,this.indexBuffer.byteLength,!0));let i=this.dynamicAttributeBuffer;if(this._dynamicUpload(e,i.float32View,i.uint32View),this._dynamicBuffer.setDataWithSize(this.dynamicAttributeBuffer.float32View,e.length*this._dynamicStride*4,!0),t){let s=this.staticAttributeBuffer;this._staticUpload(e,s.float32View,s.uint32View),this._staticBuffer.setDataWithSize(s.float32View,e.length*this._staticStride*4,!0)}}destroy(){this._staticBuffer.destroy(),this._dynamicBuffer.destroy(),this.geometry.destroy()}}});var G2,N2=p(()=>{G2=`varying vec2 vUV;
268
- varying vec4 vColor;
269
-
270
- uniform sampler2D uTexture;
271
-
272
- void main(void){
273
- vec4 color = texture2D(uTexture, vUV) * vColor;
274
- gl_FragColor = color;
275
- }`});var L2,z2=p(()=>{L2=`attribute vec2 aVertex;
276
- attribute vec2 aUV;
277
- attribute vec4 aColor;
278
-
279
- attribute vec2 aPosition;
280
- attribute float aRotation;
281
-
282
- uniform mat3 uTranslationMatrix;
283
- uniform float uRound;
284
- uniform vec2 uResolution;
285
- uniform vec4 uColor;
286
-
287
- varying vec2 vUV;
288
- varying vec4 vColor;
289
-
290
- vec2 roundPixels(vec2 position, vec2 targetSize)
291
- {
292
- return (floor(((position * 0.5 + 0.5) * targetSize) + 0.5) / targetSize) * 2.0 - 1.0;
293
- }
294
-
295
- void main(void){
296
- float cosRotation = cos(aRotation);
297
- float sinRotation = sin(aRotation);
298
- float x = aVertex.x * cosRotation - aVertex.y * sinRotation;
299
- float y = aVertex.x * sinRotation + aVertex.y * cosRotation;
300
-
301
- vec2 v = vec2(x, y);
302
- v = v + aPosition;
303
-
304
- gl_Position = vec4((uTranslationMatrix * vec3(v, 1.0)).xy, 0.0, 1.0);
305
-
306
- if(uRound == 1.0)
307
- {
308
- gl_Position.xy = roundPixels(gl_Position.xy, uResolution);
309
- }
310
-
311
- vUV = aUV;
312
- vColor = vec4(aColor.rgb * aColor.a, aColor.a) * uColor;
313
- }
314
- `});var dm,V2=p(()=>{dm=`
315
- struct ParticleUniforms {
316
- uProjectionMatrix:mat3x3<f32>,
317
- uColor:vec4<f32>,
318
- uResolution:vec2<f32>,
319
- uRoundPixels:f32,
320
- };
321
-
322
- @group(0) @binding(0) var<uniform> uniforms: ParticleUniforms;
323
-
324
- @group(1) @binding(0) var uTexture: texture_2d<f32>;
325
- @group(1) @binding(1) var uSampler : sampler;
326
-
327
- struct VSOutput {
328
- @builtin(position) position: vec4<f32>,
329
- @location(0) uv : vec2<f32>,
330
- @location(1) color : vec4<f32>,
331
- };
332
- @vertex
333
- fn mainVertex(
334
- @location(0) aVertex: vec2<f32>,
335
- @location(1) aPosition: vec2<f32>,
336
- @location(2) aUV: vec2<f32>,
337
- @location(3) aColor: vec4<f32>,
338
- @location(4) aRotation: f32,
339
- ) -> VSOutput {
340
-
341
- let v = vec2(
342
- aVertex.x * cos(aRotation) - aVertex.y * sin(aRotation),
343
- aVertex.x * sin(aRotation) + aVertex.y * cos(aRotation)
344
- ) + aPosition;
345
-
346
- let position = vec4((uniforms.uProjectionMatrix * vec3(v, 1.0)).xy, 0.0, 1.0);
347
-
348
- let vColor = vec4(aColor.rgb * aColor.a, aColor.a) * uniforms.uColor;
349
-
350
- return VSOutput(
351
- position,
352
- aUV,
353
- vColor,
354
- );
355
- }
356
-
357
- @fragment
358
- fn mainFragment(
359
- @location(0) uv: vec2<f32>,
360
- @location(1) color: vec4<f32>,
361
- @builtin(position) position: vec4<f32>,
362
- ) -> @location(0) vec4<f32> {
363
-
364
- var sample = textureSample(uTexture, uSampler, uv) * color;
365
-
366
- return sample;
367
- }`});var ll,H2=p(()=>{He();te();$i();Ns();Ot();le();Ui();N2();z2();V2();ll=class extends ke{constructor(){let e=Pt.from({vertex:L2,fragment:G2}),t=Bt.from({fragment:{source:dm,entryPoint:"mainFragment"},vertex:{source:dm,entryPoint:"mainVertex"}});super({glProgram:e,gpuProgram:t,resources:{uTexture:M.WHITE.source,uSampler:new et({}),uniforms:{uTranslationMatrix:{value:new R,type:"mat3x3<f32>"},uColor:{value:new q(16777215),type:"vec4<f32>"},uRound:{value:1,type:"f32"},uResolution:{value:[0,0],type:"vec2<f32>"}}}})}}});var Ks,fm=p(()=>{te();it();Ao();Gt();Ys();O2();H2();Ks=class{constructor(e,t){this.state=Pe.for2d(),this.localUniforms=new ce({uTranslationMatrix:{value:new R,type:"mat3x3<f32>"},uColor:{value:new Float32Array(4),type:"vec4<f32>"},uRound:{value:1,type:"f32"},uResolution:{value:[0,0],type:"vec2<f32>"}}),this.renderer=e,this.adaptor=t,this.defaultShader=new ll,this.state=Pe.for2d()}validateRenderable(e){return!1}addRenderable(e,t){this.renderer.renderPipes.batch.break(t),t.add(e)}getBuffers(e){return e._gpuData[this.renderer.uid]||this._initBuffer(e)}_initBuffer(e){return e._gpuData[this.renderer.uid]=new ul({size:e.particleChildren.length,properties:e._properties}),e._gpuData[this.renderer.uid]}updateRenderable(e){}execute(e){let t=e.particleChildren;if(t.length===0)return;let i=this.renderer,s=this.getBuffers(e);e.texture||(e.texture=t[0].texture);let n=this.state;s.update(t,e._childrenDirty),e._childrenDirty=!1,n.blendMode=vr(e.blendMode,e.texture._source);let o=this.localUniforms.uniforms,a=o.uTranslationMatrix;e.worldTransform.copyTo(a),a.prepend(i.globalUniforms.globalUniformData.projectionMatrix),o.uResolution=i.globalUniforms.globalUniformData.resolution,o.uRound=i._roundPixels|e._roundPixels,sr(e.groupColorAlpha,o.uColor,0),this.adaptor.execute(this,e)}destroy(){this.defaultShader&&(this.defaultShader.destroy(),this.defaultShader=null)}}});var Lo,W2=p(()=>{B();D2();fm();Lo=class extends Ks{constructor(e){super(e,new cl)}};Lo.extension={type:[b.WebGLPipes],name:"particle"}});var hl,$2=p(()=>{"use strict";hl=class{execute(e,t){let i=e.renderer,s=t.shader||e.defaultShader;s.groups[0]=i.renderPipes.uniformBatch.getUniformBindGroup(e.localUniforms,!0),s.groups[1]=i.texture.getTextureBindGroup(t.texture);let n=e.state,o=e.getBuffers(t);i.encoder.draw({geometry:o.geometry,shader:t.shader||e.defaultShader,state:n,size:t.particleChildren.length*6})}}});var zo,q2=p(()=>{B();$2();fm();zo=class extends Ks{constructor(e){super(e,new hl)}};zo.extension={type:[b.WebGPUPipes],name:"particle"}});var mm=p(()=>{B();W2();q2();O.add(Lo);O.add(zo)});function Vo(r,e){let{texture:t,bounds:i}=r;Ou(i,e._anchor,t);let s=e._style._getFinalPadding();i.minX-=s,i.minY-=s,i.maxX-=s,i.maxY-=s}var pm=p(()=>{pf()});var nr,Ho=p(()=>{"use strict";nr=class{constructor(){this.batcherName="default",this.topology="triangle-list",this.attributeSize=4,this.indexSize=6,this.packAsQuad=!0,this.roundPixels=0,this._attributeStart=0,this._batcher=null,this._batch=null}get blendMode(){return this.renderable.groupBlendMode}get color(){return this.renderable.groupColorAlpha}reset(){this.renderable=null,this.texture=null,this._batcher=null,this._batch=null,this.bounds=null}destroy(){}}});var dl,j2=p(()=>{Ho();dl=class extends nr{constructor(e){super(),this._renderer=e,e.runners.resolutionChange.add(this)}resolutionChange(){let e=this.renderable;e._autoResolution&&e.onViewUpdate()}destroy(){this._renderer.canvasText.returnTexture(this.texture),this._renderer=null}}});var Wo,X2=p(()=>{B();pm();j2();Wo=class{constructor(e){this._renderer=e}validateRenderable(e){return e._didTextUpdate}addRenderable(e,t){let i=this._getGpuText(e);e._didTextUpdate&&(this._updateGpuText(e),e._didTextUpdate=!1),this._renderer.renderPipes.batch.addToBatch(i,t)}updateRenderable(e){let t=this._getGpuText(e);t._batcher.updateElement(t)}_updateGpuText(e){let t=this._getGpuText(e);t.texture&&this._renderer.canvasText.returnTexture(t.texture),e._resolution=e._autoResolution?this._renderer.resolution:e.resolution,t.texture=t.texture=this._renderer.canvasText.getTexture(e),Vo(t,e)}_getGpuText(e){return e._gpuData[this._renderer.uid]||this.initGpuText(e)}initGpuText(e){let t=new dl(this._renderer);return t.renderable=e,t.transform=e.groupTransform,t.bounds={minX:0,maxX:1,minY:0,maxY:0},t.roundPixels=this._renderer._roundPixels|e._roundPixels,e._gpuData[this._renderer.uid]=t,t}destroy(){this._renderer=null}};Wo.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"text"}});var Y2,kr,fl=p(()=>{te();Oe();Y2={repeat:{addressModeU:"repeat",addressModeV:"repeat"},"repeat-x":{addressModeU:"repeat",addressModeV:"clamp-to-edge"},"repeat-y":{addressModeU:"clamp-to-edge",addressModeV:"repeat"},"no-repeat":{addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}},kr=class{constructor(e,t){this.uid=K("fillPattern"),this.transform=new R,this._styleKey=null,this.texture=e,this.transform.scale(1/e.frame.width,1/e.frame.height),t&&(e.source.style.addressModeU=Y2[t].addressModeU,e.source.style.addressModeV=Y2[t].addressModeV)}setTransform(e){let t=this.texture;this.transform.copyFrom(e),this.transform.invert(),this.transform.scale(1/t.frame.width,1/t.frame.height),this._styleKey=null}get styleKey(){return this._styleKey?this._styleKey:(this._styleKey=`fill-pattern-${this.uid}-${this.texture.uid}-${this.transform.toArray().join("-")}`,this._styleKey)}}});var Q2=Fr((K7,K2)=>{K2.exports=pB;var gm={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},mB=/([astvzqmhlc])([^astvzqmhlc]*)/ig;function pB(r){var e=[];return r.replace(mB,function(t,i,s){var n=i.toLowerCase();for(s=xB(s),n=="m"&&s.length>2&&(e.push([i].concat(s.splice(0,2))),n="l",i=i=="m"?"l":"L");;){if(s.length==gm[n])return s.unshift(i),e.push(s);if(s.length<gm[n])throw new Error("malformed path data");e.push([i].concat(s.splice(0,gm[n])))}}),e}var gB=/-?[0-9]*\.?[0-9]+(?:e[-+]?\d+)?/ig;function xB(r){var e=r.match(gB);return e?e.map(Number):[]}});function J2(r,e){let t=(0,Z2.default)(r),i=[],s=null,n=0,o=0;for(let a=0;a<t.length;a++){let c=t[a],u=c[0],l=c;switch(u){case"M":n=l[1],o=l[2],e.moveTo(n,o);break;case"m":n+=l[1],o+=l[2],e.moveTo(n,o);break;case"H":n=l[1],e.lineTo(n,o);break;case"h":n+=l[1],e.lineTo(n,o);break;case"V":o=l[1],e.lineTo(n,o);break;case"v":o+=l[1],e.lineTo(n,o);break;case"L":n=l[1],o=l[2],e.lineTo(n,o);break;case"l":n+=l[1],o+=l[2],e.lineTo(n,o);break;case"C":n=l[5],o=l[6],e.bezierCurveTo(l[1],l[2],l[3],l[4],n,o);break;case"c":e.bezierCurveTo(n+l[1],o+l[2],n+l[3],o+l[4],n+l[5],o+l[6]),n+=l[5],o+=l[6];break;case"S":n=l[3],o=l[4],e.bezierCurveToShort(l[1],l[2],n,o);break;case"s":e.bezierCurveToShort(n+l[1],o+l[2],n+l[3],o+l[4]),n+=l[3],o+=l[4];break;case"Q":n=l[3],o=l[4],e.quadraticCurveTo(l[1],l[2],n,o);break;case"q":e.quadraticCurveTo(n+l[1],o+l[2],n+l[3],o+l[4]),n+=l[3],o+=l[4];break;case"T":n=l[1],o=l[2],e.quadraticCurveToShort(n,o);break;case"t":n+=l[1],o+=l[2],e.quadraticCurveToShort(n,o);break;case"A":n=l[6],o=l[7],e.arcToSvg(l[1],l[2],l[3],l[4],l[5],n,o);break;case"a":n+=l[6],o+=l[7],e.arcToSvg(l[1],l[2],l[3],l[4],l[5],n,o);break;case"Z":case"z":e.closePath(),i.length>0&&(s=i.pop(),s?(n=s.startX,o=s.startY):(n=0,o=0)),s=null;break;default:N(`Unknown SVG path command: ${u}`)}u!=="Z"&&u!=="z"&&s===null&&(s={startX:n,startY:o},i.push(s))}return e}var Z2,eT=p(()=>{Z2=Ch(Q2(),1);pe()});var ml,tT=p(()=>{Ge();ml=class r{constructor(e=0,t=0,i=0){this.type="circle",this.x=e,this.y=t,this.radius=i}clone(){return new r(this.x,this.y,this.radius)}contains(e,t){if(this.radius<=0)return!1;let i=this.radius*this.radius,s=this.x-e,n=this.y-t;return s*=s,n*=n,s+n<=i}strokeContains(e,t,i,s=.5){if(this.radius===0)return!1;let n=this.x-e,o=this.y-t,a=this.radius,c=(1-s)*i,u=Math.sqrt(n*n+o*o);return u<=a+c&&u>a-(i-c)}getBounds(e){return e||(e=new Y),e.x=this.x-this.radius,e.y=this.y-this.radius,e.width=this.radius*2,e.height=this.radius*2,e}copyFrom(e){return this.x=e.x,this.y=e.y,this.radius=e.radius,this}copyTo(e){return e.copyFrom(this),e}toString(){return`[pixi.js/math:Circle x=${this.x} y=${this.y} radius=${this.radius}]`}}});var pl,rT=p(()=>{Ge();pl=class r{constructor(e=0,t=0,i=0,s=0){this.type="ellipse",this.x=e,this.y=t,this.halfWidth=i,this.halfHeight=s}clone(){return new r(this.x,this.y,this.halfWidth,this.halfHeight)}contains(e,t){if(this.halfWidth<=0||this.halfHeight<=0)return!1;let i=(e-this.x)/this.halfWidth,s=(t-this.y)/this.halfHeight;return i*=i,s*=s,i+s<=1}strokeContains(e,t,i,s=.5){let{halfWidth:n,halfHeight:o}=this;if(n<=0||o<=0)return!1;let a=i*(1-s),c=i-a,u=n-c,l=o-c,h=n+a,f=o+a,d=e-this.x,m=t-this.y,x=d*d/(u*u)+m*m/(l*l),g=d*d/(h*h)+m*m/(f*f);return x>1&&g<=1}getBounds(e){return e||(e=new Y),e.x=this.x-this.halfWidth,e.y=this.y-this.halfHeight,e.width=this.halfWidth*2,e.height=this.halfHeight*2,e}copyFrom(e){return this.x=e.x,this.y=e.y,this.halfWidth=e.halfWidth,this.halfHeight=e.halfHeight,this}copyTo(e){return e.copyFrom(this),e}toString(){return`[pixi.js/math:Ellipse x=${this.x} y=${this.y} halfWidth=${this.halfWidth} halfHeight=${this.halfHeight}]`}}});function iT(r,e,t,i,s,n){let o=r-t,a=e-i,c=s-t,u=n-i,l=o*c+a*u,h=c*c+u*u,f=-1;h!==0&&(f=l/h);let d,m;f<0?(d=t,m=i):f>1?(d=s,m=n):(d=t+f*c,m=i+f*u);let x=r-d,g=e-m;return x*x+g*g}var sT=p(()=>{"use strict"});var _B,bB,Qs,nT=p(()=>{sT();Ge();Qs=class r{constructor(...e){this.type="polygon";let t=Array.isArray(e[0])?e[0]:e;if(typeof t[0]!="number"){let i=[];for(let s=0,n=t.length;s<n;s++)i.push(t[s].x,t[s].y);t=i}this.points=t,this.closePath=!0}isClockwise(){let e=0,t=this.points,i=t.length;for(let s=0;s<i;s+=2){let n=t[s],o=t[s+1],a=t[(s+2)%i],c=t[(s+3)%i];e+=(a-n)*(c+o)}return e<0}containsPolygon(e){let t=this.getBounds(_B),i=e.getBounds(bB);if(!t.containsRect(i))return!1;let s=e.points;for(let n=0;n<s.length;n+=2){let o=s[n],a=s[n+1];if(!this.contains(o,a))return!1}return!0}clone(){let e=this.points.slice(),t=new r(e);return t.closePath=this.closePath,t}contains(e,t){let i=!1,s=this.points.length/2;for(let n=0,o=s-1;n<s;o=n++){let a=this.points[n*2],c=this.points[n*2+1],u=this.points[o*2],l=this.points[o*2+1];c>t!=l>t&&e<(u-a)*((t-c)/(l-c))+a&&(i=!i)}return i}strokeContains(e,t,i,s=.5){let n=i*i,o=n*(1-s),a=n-o,{points:c}=this,u=c.length-(this.closePath?0:2);for(let l=0;l<u;l+=2){let h=c[l],f=c[l+1],d=c[(l+2)%c.length],m=c[(l+3)%c.length],x=iT(e,t,h,f,d,m),g=Math.sign((d-h)*(t-f)-(m-f)*(e-h));if(x<=(g<0?a:o))return!0}return!1}getBounds(e){e||(e=new Y);let t=this.points,i=1/0,s=-1/0,n=1/0,o=-1/0;for(let a=0,c=t.length;a<c;a+=2){let u=t[a],l=t[a+1];i=u<i?u:i,s=u>s?u:s,n=l<n?l:n,o=l>o?l:o}return e.x=i,e.width=s-i,e.y=n,e.height=o-n,e}copyFrom(e){return this.points=e.points.slice(),this.closePath=e.closePath,this}copyTo(e){return e.copyFrom(this),e}toString(){return`[pixi.js/math:PolygoncloseStroke=${this.closePath}points=${this.points.reduce((e,t)=>`${e}, ${t}`,"")}]`}get lastX(){return this.points[this.points.length-2]}get lastY(){return this.points[this.points.length-1]}get x(){return this.points[this.points.length-2]}get y(){return this.points[this.points.length-1]}}});var gl,xl,oT=p(()=>{Ge();gl=(r,e,t,i,s,n,o)=>{let a=r-t,c=e-i,u=Math.sqrt(a*a+c*c);return u>=s-n&&u<=s+o},xl=class r{constructor(e=0,t=0,i=0,s=0,n=20){this.type="roundedRectangle",this.x=e,this.y=t,this.width=i,this.height=s,this.radius=n}getBounds(e){return e||(e=new Y),e.x=this.x,e.y=this.y,e.width=this.width,e.height=this.height,e}clone(){return new r(this.x,this.y,this.width,this.height,this.radius)}copyFrom(e){return this.x=e.x,this.y=e.y,this.width=e.width,this.height=e.height,this}copyTo(e){return e.copyFrom(this),e}contains(e,t){if(this.width<=0||this.height<=0)return!1;if(e>=this.x&&e<=this.x+this.width&&t>=this.y&&t<=this.y+this.height){let i=Math.max(0,Math.min(this.radius,Math.min(this.width,this.height)/2));if(t>=this.y+i&&t<=this.y+this.height-i||e>=this.x+i&&e<=this.x+this.width-i)return!0;let s=e-(this.x+i),n=t-(this.y+i),o=i*i;if(s*s+n*n<=o||(s=e-(this.x+this.width-i),s*s+n*n<=o)||(n=t-(this.y+this.height-i),s*s+n*n<=o)||(s=e-(this.x+i),s*s+n*n<=o))return!0}return!1}strokeContains(e,t,i,s=.5){let{x:n,y:o,width:a,height:c,radius:u}=this,l=i*(1-s),h=i-l,f=n+u,d=o+u,m=a-u*2,x=c-u*2,g=n+a,_=o+c;return(e>=n-l&&e<=n+h||e>=g-h&&e<=g+l)&&t>=d&&t<=d+x||(t>=o-l&&t<=o+h||t>=_-h&&t<=_+l)&&e>=f&&e<=f+m?!0:e<f&&t<d&&gl(e,t,f,d,u,h,l)||e>g-u&&t<d&&gl(e,t,g-u,d,u,h,l)||e>g-u&&t>_-u&&gl(e,t,g-u,_-u,u,h,l)||e<f&&t>_-u&&gl(e,t,f,_-u,u,h,l)}toString(){return`[pixi.js/math:RoundedRectangle x=${this.x} y=${this.y}width=${this.width} height=${this.height} radius=${this.radius}]`}}});function bl(r,e,t,i,s,n,o,a,c,u){let h=Math.min(.99,Math.max(0,u??Xs.defaultOptions.bezierSmoothness)),f=(TB-h)/1;return f*=f,wB(e,t,i,s,n,o,a,c,r,f),r}function wB(r,e,t,i,s,n,o,a,c,u){_m(r,e,t,i,s,n,o,a,c,u,0),c.push(o,a)}function _m(r,e,t,i,s,n,o,a,c,u,l){if(l>yB)return;let h=Math.PI,f=(r+t)/2,d=(e+i)/2,m=(t+s)/2,x=(i+n)/2,g=(s+o)/2,_=(n+a)/2,y=(f+m)/2,S=(d+x)/2,T=(m+g)/2,C=(x+_)/2,v=(y+T)/2,E=(S+C)/2;if(l>0){let D=o-r,A=a-e,P=Math.abs((t-o)*A-(i-a)*D),k=Math.abs((s-o)*A-(n-a)*D),G,j;if(P>_l&&k>_l){if((P+k)*(P+k)<=u*(D*D+A*A)){if(Zs<xm){c.push(v,E);return}let be=Math.atan2(n-i,s-t);if(G=Math.abs(be-Math.atan2(i-e,t-r)),j=Math.abs(Math.atan2(a-n,o-s)-be),G>=h&&(G=2*h-G),j>=h&&(j=2*h-j),G+j<Zs){c.push(v,E);return}if(Ki!==0){if(G>Ki){c.push(t,i);return}if(j>Ki){c.push(s,n);return}}}}else if(P>_l){if(P*P<=u*(D*D+A*A)){if(Zs<xm){c.push(v,E);return}if(G=Math.abs(Math.atan2(n-i,s-t)-Math.atan2(i-e,t-r)),G>=h&&(G=2*h-G),G<Zs){c.push(t,i),c.push(s,n);return}if(Ki!==0&&G>Ki){c.push(t,i);return}}}else if(k>_l){if(k*k<=u*(D*D+A*A)){if(Zs<xm){c.push(v,E);return}if(G=Math.abs(Math.atan2(a-n,o-s)-Math.atan2(n-i,s-t)),G>=h&&(G=2*h-G),G<Zs){c.push(t,i),c.push(s,n);return}if(Ki!==0&&G>Ki){c.push(s,n);return}}}else if(D=v-(r+o)/2,A=E-(e+a)/2,D*D+A*A<=u){c.push(v,E);return}}_m(r,e,f,d,y,S,v,E,c,u,l+1),_m(v,E,T,C,g,_,o,a,c,u,l+1)}var yB,_l,TB,xm,Zs,Ki,bm=p(()=>{nl();yB=8,_l=11920929e-14,TB=1,xm=.01,Zs=0,Ki=0});function cT(r,e,t,i,s,n,o,a){let u=Math.min(.99,Math.max(0,a??Xs.defaultOptions.bezierSmoothness)),l=(CB-u)/1;return l*=l,kB(e,t,i,s,n,o,r,l),r}function kB(r,e,t,i,s,n,o,a){ym(o,r,e,t,i,s,n,a,0),o.push(s,n)}function ym(r,e,t,i,s,n,o,a,c){if(c>SB)return;let u=Math.PI,l=(e+i)/2,h=(t+s)/2,f=(i+n)/2,d=(s+o)/2,m=(l+f)/2,x=(h+d)/2,g=n-e,_=o-t,y=Math.abs((i-n)*_-(s-o)*g);if(y>vB){if(y*y<=a*(g*g+_*_)){if(aT<EB){r.push(m,x);return}let S=Math.abs(Math.atan2(o-s,n-i)-Math.atan2(s-t,i-e));if(S>=u&&(S=2*u-S),S<aT){r.push(m,x);return}}}else if(g=m-(e+n)/2,_=x-(t+o)/2,g*g+_*_<=a){r.push(m,x);return}ym(r,e,t,l,h,m,x,a,c+1),ym(r,m,x,f,d,n,o,a,c+1)}var SB,vB,CB,EB,aT,uT=p(()=>{nl();SB=8,vB=11920929e-14,CB=1,EB=.01,aT=0});function yl(r,e,t,i,s,n,o,a){let c=Math.abs(s-n);(!o&&s>n||o&&n>s)&&(c=2*Math.PI-c),a||(a=Math.max(6,Math.floor(6*Math.pow(i,1/3)*(c/Math.PI)))),a=Math.max(a,3);let u=c/a,l=s;u*=o?-1:1;for(let h=0;h<a+1;h++){let f=Math.cos(l),d=Math.sin(l),m=e+f*i,x=t+d*i;r.push(m,x),l+=u}}var Tm=p(()=>{"use strict"});function lT(r,e,t,i,s,n){let o=r[r.length-2],c=r[r.length-1]-t,u=o-e,l=s-t,h=i-e,f=Math.abs(c*h-u*l);if(f<1e-8||n===0){(r[r.length-2]!==e||r[r.length-1]!==t)&&r.push(e,t);return}let d=c*c+u*u,m=l*l+h*h,x=c*l+u*h,g=n*Math.sqrt(d)/f,_=n*Math.sqrt(m)/f,y=g*x/d,S=_*x/m,T=g*h+_*u,C=g*l+_*c,v=u*(_+y),E=c*(_+y),D=h*(g+S),A=l*(g+S),P=Math.atan2(E-C,v-T),k=Math.atan2(A-C,D-T);yl(r,T+e,C+t,n,P,k,u*l>h*c)}var hT=p(()=>{Tm()});function AB(r,e){let t=e===-1.5707963267948966?-.551915024494:1.3333333333333333*Math.tan(e/4),i=e===1.5707963267948966?.551915024494:t,s=Math.cos(r),n=Math.sin(r),o=Math.cos(r+e),a=Math.sin(r+e);return[{x:s-n*i,y:n+s*i},{x:o+a*i,y:a-o*i},{x:o,y:a}]}function fT(r,e,t,i,s,n,o,a=0,c=0,u=0){if(n===0||o===0)return;let l=Math.sin(a*$o/360),h=Math.cos(a*$o/360),f=h*(e-i)/2+l*(t-s)/2,d=-l*(e-i)/2+h*(t-s)/2;if(f===0&&d===0)return;n=Math.abs(n),o=Math.abs(o);let m=Math.pow(f,2)/Math.pow(n,2)+Math.pow(d,2)/Math.pow(o,2);m>1&&(n*=Math.sqrt(m),o*=Math.sqrt(m)),PB(e,t,i,s,n,o,c,u,l,h,f,d,wm);let{ang1:x,ang2:g}=wm,{centerX:_,centerY:y}=wm,S=Math.abs(g)/($o/4);Math.abs(1-S)<1e-7&&(S=1);let T=Math.max(Math.ceil(S),1);g/=T;let C=r[r.length-2],v=r[r.length-1],E={x:0,y:0};for(let D=0;D<T;D++){let A=AB(x,g),{x:P,y:k}=Sm(A[0],n,o,h,l,_,y,E),{x:G,y:j}=Sm(A[1],n,o,h,l,_,y,E),{x:be,y:Tt}=Sm(A[2],n,o,h,l,_,y,E);bl(r,C,v,P,k,G,j,be,Tt),C=be,v=Tt,x+=g}}var $o,wm,Sm,dT,PB,mT=p(()=>{bm();$o=Math.PI*2,wm={centerX:0,centerY:0,ang1:0,ang2:0},Sm=({x:r,y:e},t,i,s,n,o,a,c)=>{r*=t,e*=i;let u=s*r-n*e,l=n*r+s*e;return c.x=u+o,c.y=l+a,c};dT=(r,e,t,i)=>{let s=r*i-e*t<0?-1:1,n=r*t+e*i;return n>1&&(n=1),n<-1&&(n=-1),s*Math.acos(n)},PB=(r,e,t,i,s,n,o,a,c,u,l,h,f)=>{let d=Math.pow(s,2),m=Math.pow(n,2),x=Math.pow(l,2),g=Math.pow(h,2),_=d*m-d*g-m*x;_<0&&(_=0),_/=d*g+m*x,_=Math.sqrt(_)*(o===a?-1:1);let y=_*s/n*h,S=_*-n/s*l,T=u*y-c*S+(r+t)/2,C=c*y+u*S+(e+i)/2,v=(l-y)/s,E=(h-S)/n,D=(-l-y)/s,A=(-h-S)/n,P=dT(1,0,v,E),k=dT(v,E,D,A);a===0&&k>0&&(k-=$o),a===1&&k<0&&(k+=$o),f.centerX=T,f.centerY=C,f.ang1=P,f.ang2=k}});function pT(r,e,t){let i=(o,a)=>{let c=a.x-o.x,u=a.y-o.y,l=Math.sqrt(c*c+u*u),h=c/l,f=u/l;return{len:l,nx:h,ny:f}},s=(o,a)=>{o===0?r.moveTo(a.x,a.y):r.lineTo(a.x,a.y)},n=e[e.length-1];for(let o=0;o<e.length;o++){let a=e[o%e.length],c=a.radius??t;if(c<=0){s(o,a),n=a;continue}let u=e[(o+1)%e.length],l=i(a,n),h=i(a,u);if(l.len<1e-4||h.len<1e-4){s(o,a),n=a;continue}let f=Math.asin(l.nx*h.ny-l.ny*h.nx),d=1,m=!1;l.nx*h.nx-l.ny*-h.ny<0?f<0?f=Math.PI+f:(f=Math.PI-f,d=-1,m=!0):f>0&&(d=-1,m=!0);let x=f/2,g,_=Math.abs(Math.cos(x)*c/Math.sin(x));_>Math.min(l.len/2,h.len/2)?(_=Math.min(l.len/2,h.len/2),g=Math.abs(_*Math.sin(x)/Math.cos(x))):g=c;let y=a.x+h.nx*_+-h.ny*g*d,S=a.y+h.ny*_+h.nx*g*d,T=Math.atan2(l.ny,l.nx)+Math.PI/2*d,C=Math.atan2(h.ny,h.nx)-Math.PI/2*d;o===0&&r.moveTo(y+Math.cos(T)*g,S+Math.sin(T)*g),r.arc(y,S,g,T,C,m),n=a}}function gT(r,e,t,i){let s=(a,c)=>Math.sqrt((a.x-c.x)**2+(a.y-c.y)**2),n=(a,c,u)=>({x:a.x+(c.x-a.x)*u,y:a.y+(c.y-a.y)*u}),o=e.length;for(let a=0;a<o;a++){let c=e[(a+1)%o],u=c.radius??t;if(u<=0){a===0?r.moveTo(c.x,c.y):r.lineTo(c.x,c.y);continue}let l=e[a],h=e[(a+2)%o],f=s(l,c),d;if(f<1e-4)d=c;else{let g=Math.min(f/2,u);d=n(c,l,g/f)}let m=s(h,c),x;if(m<1e-4)x=c;else{let g=Math.min(m/2,u);x=n(c,h,g/m)}a===0?r.moveTo(d.x,d.y):r.lineTo(d.x,d.y),r.quadraticCurveTo(c.x,c.y,x.x,x.y,i)}}var xT=p(()=>{"use strict"});var BB,Tl,_T=p(()=>{tT();rT();nT();Ge();oT();at();bm();uT();Tm();hT();mT();xT();BB=new Y,Tl=class{constructor(e){this.shapePrimitives=[],this._currentPoly=null,this._bounds=new ae,this._graphicsPath2D=e,this.signed=e.checkForHoles}moveTo(e,t){return this.startPoly(e,t),this}lineTo(e,t){this._ensurePoly();let i=this._currentPoly.points,s=i[i.length-2],n=i[i.length-1];return(s!==e||n!==t)&&i.push(e,t),this}arc(e,t,i,s,n,o){this._ensurePoly(!1);let a=this._currentPoly.points;return yl(a,e,t,i,s,n,o),this}arcTo(e,t,i,s,n){this._ensurePoly();let o=this._currentPoly.points;return lT(o,e,t,i,s,n),this}arcToSvg(e,t,i,s,n,o,a){let c=this._currentPoly.points;return fT(c,this._currentPoly.lastX,this._currentPoly.lastY,o,a,e,t,i,s,n),this}bezierCurveTo(e,t,i,s,n,o,a){this._ensurePoly();let c=this._currentPoly;return bl(this._currentPoly.points,c.lastX,c.lastY,e,t,i,s,n,o,a),this}quadraticCurveTo(e,t,i,s,n){this._ensurePoly();let o=this._currentPoly;return cT(this._currentPoly.points,o.lastX,o.lastY,e,t,i,s,n),this}closePath(){return this.endPoly(!0),this}addPath(e,t){this.endPoly(),t&&!t.isIdentity()&&(e=e.clone(!0),e.transform(t));let i=this.shapePrimitives,s=i.length;for(let n=0;n<e.instructions.length;n++){let o=e.instructions[n];this[o.action](...o.data)}if(e.checkForHoles&&i.length-s>1){let n=null;for(let o=s;o<i.length;o++){let a=i[o];if(a.shape.type==="polygon"){let c=a.shape,u=n?.shape;u&&u.containsPolygon(c)?(n.holes||(n.holes=[]),n.holes.push(a),i.copyWithin(o,o+1),i.length--,o--):n=a}}}return this}finish(e=!1){this.endPoly(e)}rect(e,t,i,s,n){return this.drawShape(new Y(e,t,i,s),n),this}circle(e,t,i,s){return this.drawShape(new ml(e,t,i),s),this}poly(e,t,i){let s=new Qs(e);return s.closePath=t,this.drawShape(s,i),this}regularPoly(e,t,i,s,n=0,o){s=Math.max(s|0,3);let a=-1*Math.PI/2+n,c=Math.PI*2/s,u=[];for(let l=0;l<s;l++){let h=a-l*c;u.push(e+i*Math.cos(h),t+i*Math.sin(h))}return this.poly(u,!0,o),this}roundPoly(e,t,i,s,n,o=0,a){if(s=Math.max(s|0,3),n<=0)return this.regularPoly(e,t,i,s,o);let c=i*Math.sin(Math.PI/s)-.001;n=Math.min(n,c);let u=-1*Math.PI/2+o,l=Math.PI*2/s,h=(s-2)*Math.PI/s/2;for(let f=0;f<s;f++){let d=f*l+u,m=e+i*Math.cos(d),x=t+i*Math.sin(d),g=d+Math.PI+h,_=d-Math.PI-h,y=m+n*Math.cos(g),S=x+n*Math.sin(g),T=m+n*Math.cos(_),C=x+n*Math.sin(_);f===0?this.moveTo(y,S):this.lineTo(y,S),this.quadraticCurveTo(m,x,T,C,a)}return this.closePath()}roundShape(e,t,i=!1,s){return e.length<3?this:(i?gT(this,e,t,s):pT(this,e,t),this.closePath())}filletRect(e,t,i,s,n){if(n===0)return this.rect(e,t,i,s);let o=Math.min(i,s)/2,a=Math.min(o,Math.max(-o,n)),c=e+i,u=t+s,l=a<0?-a:0,h=Math.abs(a);return this.moveTo(e,t+h).arcTo(e+l,t+l,e+h,t,h).lineTo(c-h,t).arcTo(c-l,t+l,c,t+h,h).lineTo(c,u-h).arcTo(c-l,u-l,e+i-h,u,h).lineTo(e+h,u).arcTo(e+l,u-l,e,u-h,h).closePath()}chamferRect(e,t,i,s,n,o){if(n<=0)return this.rect(e,t,i,s);let a=Math.min(n,Math.min(i,s)/2),c=e+i,u=t+s,l=[e+a,t,c-a,t,c,t+a,c,u-a,c-a,u,e+a,u,e,u-a,e,t+a];for(let h=l.length-1;h>=2;h-=2)l[h]===l[h-2]&&l[h-1]===l[h-3]&&l.splice(h-1,2);return this.poly(l,!0,o)}ellipse(e,t,i,s,n){return this.drawShape(new pl(e,t,i,s),n),this}roundRect(e,t,i,s,n,o){return this.drawShape(new xl(e,t,i,s,n),o),this}drawShape(e,t){return this.endPoly(),this.shapePrimitives.push({shape:e,transform:t}),this}startPoly(e,t){let i=this._currentPoly;return i&&this.endPoly(),i=new Qs,i.points.push(e,t),this._currentPoly=i,this}endPoly(e=!1){let t=this._currentPoly;return t&&t.points.length>2&&(t.closePath=e,this.shapePrimitives.push({shape:t})),this._currentPoly=null,this}_ensurePoly(e=!0){if(!this._currentPoly&&(this._currentPoly=new Qs,e)){let t=this.shapePrimitives[this.shapePrimitives.length-1];if(t){let i=t.shape.x,s=t.shape.y;if(t.transform&&!t.transform.isIdentity()){let n=t.transform,o=i;i=n.a*i+n.c*s+n.tx,s=n.b*o+n.d*s+n.ty}this._currentPoly.points.push(i,s)}else this._currentPoly.points.push(0,0)}}buildPath(){let e=this._graphicsPath2D;this.shapePrimitives.length=0,this._currentPoly=null;for(let t=0;t<e.instructions.length;t++){let i=e.instructions[t];this[i.action](...i.data)}this.finish()}get bounds(){let e=this._bounds;e.clear();let t=this.shapePrimitives;for(let i=0;i<t.length;i++){let s=t[i],n=s.shape.getBounds(BB);s.transform?e.addRect(n,s.transform):e.addRect(n)}return e}}});function qo(r,e){return r?r.prepend(e):e.clone()}var ei,vm=p(()=>{Ft();Oe();pe();eT();_T();ei=class r{constructor(e,t=!1){this.instructions=[],this.uid=K("graphicsPath"),this._dirty=!0,this.checkForHoles=t,typeof e=="string"?J2(e,this):this.instructions=e?.slice()??[]}get shapePath(){return this._shapePath||(this._shapePath=new Tl(this)),this._dirty&&(this._dirty=!1,this._shapePath.buildPath()),this._shapePath}addPath(e,t){return e=e.clone(),this.instructions.push({action:"addPath",data:[e,t]}),this._dirty=!0,this}arc(...e){return this.instructions.push({action:"arc",data:e}),this._dirty=!0,this}arcTo(...e){return this.instructions.push({action:"arcTo",data:e}),this._dirty=!0,this}arcToSvg(...e){return this.instructions.push({action:"arcToSvg",data:e}),this._dirty=!0,this}bezierCurveTo(...e){return this.instructions.push({action:"bezierCurveTo",data:e}),this._dirty=!0,this}bezierCurveToShort(e,t,i,s,n){let o=this.instructions[this.instructions.length-1],a=this.getLastPoint(J.shared),c=0,u=0;if(!o||o.action!=="bezierCurveTo")c=a.x,u=a.y;else{c=o.data[2],u=o.data[3];let l=a.x,h=a.y;c=l+(l-c),u=h+(h-u)}return this.instructions.push({action:"bezierCurveTo",data:[c,u,e,t,i,s,n]}),this._dirty=!0,this}closePath(){return this.instructions.push({action:"closePath",data:[]}),this._dirty=!0,this}ellipse(...e){return this.instructions.push({action:"ellipse",data:e}),this._dirty=!0,this}lineTo(...e){return this.instructions.push({action:"lineTo",data:e}),this._dirty=!0,this}moveTo(...e){return this.instructions.push({action:"moveTo",data:e}),this}quadraticCurveTo(...e){return this.instructions.push({action:"quadraticCurveTo",data:e}),this._dirty=!0,this}quadraticCurveToShort(e,t,i){let s=this.instructions[this.instructions.length-1],n=this.getLastPoint(J.shared),o=0,a=0;if(!s||s.action!=="quadraticCurveTo")o=n.x,a=n.y;else{o=s.data[0],a=s.data[1];let c=n.x,u=n.y;o=c+(c-o),a=u+(u-a)}return this.instructions.push({action:"quadraticCurveTo",data:[o,a,e,t,i]}),this._dirty=!0,this}rect(e,t,i,s,n){return this.instructions.push({action:"rect",data:[e,t,i,s,n]}),this._dirty=!0,this}circle(e,t,i,s){return this.instructions.push({action:"circle",data:[e,t,i,s]}),this._dirty=!0,this}roundRect(...e){return this.instructions.push({action:"roundRect",data:e}),this._dirty=!0,this}poly(...e){return this.instructions.push({action:"poly",data:e}),this._dirty=!0,this}regularPoly(...e){return this.instructions.push({action:"regularPoly",data:e}),this._dirty=!0,this}roundPoly(...e){return this.instructions.push({action:"roundPoly",data:e}),this._dirty=!0,this}roundShape(...e){return this.instructions.push({action:"roundShape",data:e}),this._dirty=!0,this}filletRect(...e){return this.instructions.push({action:"filletRect",data:e}),this._dirty=!0,this}chamferRect(...e){return this.instructions.push({action:"chamferRect",data:e}),this._dirty=!0,this}star(e,t,i,s,n,o,a){n||(n=s/2);let c=-1*Math.PI/2+o,u=i*2,l=Math.PI*2/u,h=[];for(let f=0;f<u;f++){let d=f%2?n:s,m=f*l+c;h.push(e+d*Math.cos(m),t+d*Math.sin(m))}return this.poly(h,!0,a),this}clone(e=!1){let t=new r;if(t.checkForHoles=this.checkForHoles,!e)t.instructions=this.instructions.slice();else for(let i=0;i<this.instructions.length;i++){let s=this.instructions[i];t.instructions.push({action:s.action,data:s.data.slice()})}return t}clear(){return this.instructions.length=0,this._dirty=!0,this}transform(e){if(e.isIdentity())return this;let t=e.a,i=e.b,s=e.c,n=e.d,o=e.tx,a=e.ty,c=0,u=0,l=0,h=0,f=0,d=0,m=0,x=0;for(let g=0;g<this.instructions.length;g++){let _=this.instructions[g],y=_.data;switch(_.action){case"moveTo":case"lineTo":c=y[0],u=y[1],y[0]=t*c+s*u+o,y[1]=i*c+n*u+a;break;case"bezierCurveTo":l=y[0],h=y[1],f=y[2],d=y[3],c=y[4],u=y[5],y[0]=t*l+s*h+o,y[1]=i*l+n*h+a,y[2]=t*f+s*d+o,y[3]=i*f+n*d+a,y[4]=t*c+s*u+o,y[5]=i*c+n*u+a;break;case"quadraticCurveTo":l=y[0],h=y[1],c=y[2],u=y[3],y[0]=t*l+s*h+o,y[1]=i*l+n*h+a,y[2]=t*c+s*u+o,y[3]=i*c+n*u+a;break;case"arcToSvg":c=y[5],u=y[6],m=y[0],x=y[1],y[0]=t*m+s*x,y[1]=i*m+n*x,y[5]=t*c+s*u+o,y[6]=i*c+n*u+a;break;case"circle":y[4]=qo(y[3],e);break;case"rect":y[4]=qo(y[4],e);break;case"ellipse":y[8]=qo(y[8],e);break;case"roundRect":y[5]=qo(y[5],e);break;case"addPath":y[0].transform(e);break;case"poly":y[2]=qo(y[2],e);break;default:N("unknown transform action",_.action);break}}return this._dirty=!0,this}get bounds(){return this.shapePath.bounds}getLastPoint(e){let t=this.instructions.length-1,i=this.instructions[t];if(!i)return e.x=0,e.y=0,e;for(;i.action==="closePath";){if(t--,t<0)return e.x=0,e.y=0,e;i=this.instructions[t]}switch(i.action){case"moveTo":case"lineTo":e.x=i.data[0],e.y=i.data[1];break;case"quadraticCurveTo":e.x=i.data[2],e.y=i.data[3];break;case"bezierCurveTo":e.x=i.data[4],e.y=i.data[5];break;case"arc":case"arcToSvg":e.x=i.data[5],e.y=i.data[6];break;case"addPath":i.data[0].getLastPoint(e);break}return e}}});function _e(r,e,t){let i=r.getAttribute(e);return i?Number(i):t}var Cm=p(()=>{"use strict"});function bT(r,e){let t=r.querySelectorAll("defs");for(let i=0;i<t.length;i++){let s=t[i];for(let n=0;n<s.children.length;n++){let o=s.children[n];switch(o.nodeName.toLowerCase()){case"lineargradient":e.defs[o.id]=RB(o);break;case"radialgradient":e.defs[o.id]=DB(o);break;default:break}}}}function RB(r){let e=_e(r,"x1",0),t=_e(r,"y1",0),i=_e(r,"x2",1),s=_e(r,"y2",0),n=r.getAttribute("gradientUnits")||"objectBoundingBox",o=new lt(e,t,i,s,n==="objectBoundingBox"?"local":"global");for(let a=0;a<r.children.length;a++){let c=r.children[a],u=_e(c,"offset",0),l=q.shared.setValue(c.getAttribute("stop-color")).toNumber();o.addColorStop(u,l)}return o}function DB(r){return N("[SVG Parser] Radial gradients are not yet supported"),new lt(0,0,1,0)}var yT=p(()=>{He();pe();js();Cm()});function Em(r){let e=r.match(/url\s*\(\s*['"]?\s*#([^'"\s)]+)\s*['"]?\s*\)/i);return e?e[1]:""}var TT=p(()=>{"use strict"});function km(r,e){let t=r.getAttribute("style"),i={},s={},n={strokeStyle:i,fillStyle:s,useFill:!1,useStroke:!1};for(let o in wT){let a=r.getAttribute(o);a&&ST(e,n,o,a.trim())}if(t){let o=t.split(";");for(let a=0;a<o.length;a++){let c=o[a].trim(),[u,l]=c.split(":");wT[u]&&ST(e,n,u,l.trim())}}return{strokeStyle:n.useStroke?i:null,fillStyle:n.useFill?s:null,useFill:n.useFill,useStroke:n.useStroke}}function ST(r,e,t,i){switch(t){case"stroke":if(i!=="none"){if(i.startsWith("url(")){let s=Em(i);e.strokeStyle.fill=r.defs[s]}else e.strokeStyle.color=q.shared.setValue(i).toNumber();e.useStroke=!0}break;case"stroke-width":e.strokeStyle.width=Number(i);break;case"fill":if(i!=="none"){if(i.startsWith("url(")){let s=Em(i);e.fillStyle.fill=r.defs[s]}else e.fillStyle.color=q.shared.setValue(i).toNumber();e.useFill=!0}break;case"fill-opacity":e.fillStyle.alpha=Number(i);break;case"stroke-opacity":e.strokeStyle.alpha=Number(i);break;case"opacity":e.fillStyle.alpha=Number(i),e.strokeStyle.alpha=Number(i);break}}var wT,vT=p(()=>{He();TT();wT={fill:{type:"paint",default:0},"fill-opacity":{type:"number",default:1},stroke:{type:"paint",default:0},"stroke-width":{type:"number",default:1},"stroke-opacity":{type:"number",default:1},"stroke-linecap":{type:"string",default:"butt"},"stroke-linejoin":{type:"string",default:"miter"},"stroke-miterlimit":{type:"number",default:10},"stroke-dasharray":{type:"string",default:"none"},"stroke-dashoffset":{type:"number",default:0},opacity:{type:"number",default:1}}});function CT(r,e){if(typeof r=="string"){let o=document.createElement("div");o.innerHTML=r.trim(),r=o.querySelector("svg")}let t={context:e,defs:{},path:new ei};bT(r,t);let i=r.children,{fillStyle:s,strokeStyle:n}=km(r,t);for(let o=0;o<i.length;o++){let a=i[o];a.nodeName.toLowerCase()!=="defs"&&ET(a,t,s,n)}return e}function ET(r,e,t,i){let s=r.children,{fillStyle:n,strokeStyle:o}=km(r,e);n&&t?t={...t,...n}:n&&(t=n),o&&i?i={...i,...o}:o&&(i=o);let a=!t&&!i;a&&(t={color:0});let c,u,l,h,f,d,m,x,g,_,y,S,T,C,v,E,D;switch(r.nodeName.toLowerCase()){case"path":C=r.getAttribute("d"),r.getAttribute("fill-rule")==="evenodd"&&N("SVG Evenodd fill rule not supported, your svg may render incorrectly"),v=new ei(C,!0),e.context.path(v),t&&e.context.fill(t),i&&e.context.stroke(i);break;case"circle":m=_e(r,"cx",0),x=_e(r,"cy",0),g=_e(r,"r",0),e.context.ellipse(m,x,g,g),t&&e.context.fill(t),i&&e.context.stroke(i);break;case"rect":c=_e(r,"x",0),u=_e(r,"y",0),E=_e(r,"width",0),D=_e(r,"height",0),_=_e(r,"rx",0),y=_e(r,"ry",0),_||y?e.context.roundRect(c,u,E,D,_||y):e.context.rect(c,u,E,D),t&&e.context.fill(t),i&&e.context.stroke(i);break;case"ellipse":m=_e(r,"cx",0),x=_e(r,"cy",0),_=_e(r,"rx",0),y=_e(r,"ry",0),e.context.beginPath(),e.context.ellipse(m,x,_,y),t&&e.context.fill(t),i&&e.context.stroke(i);break;case"line":l=_e(r,"x1",0),h=_e(r,"y1",0),f=_e(r,"x2",0),d=_e(r,"y2",0),e.context.beginPath(),e.context.moveTo(l,h),e.context.lineTo(f,d),i&&e.context.stroke(i);break;case"polygon":T=r.getAttribute("points"),S=T.match(/\d+/g).map(A=>parseInt(A,10)),e.context.poly(S,!0),t&&e.context.fill(t),i&&e.context.stroke(i);break;case"polyline":T=r.getAttribute("points"),S=T.match(/\d+/g).map(A=>parseInt(A,10)),e.context.poly(S,!1),i&&e.context.stroke(i);break;case"g":case"svg":break;default:{N(`[SVG parser] <${r.nodeName}> elements unsupported`);break}}a&&(t=null);for(let A=0;A<s.length;A++)ET(s[A],e,t,i)}var kT=p(()=>{pe();vm();yT();Cm();vT()});function MB(r){return q.isColorLike(r)}function AT(r){return r instanceof kr}function PT(r){return r instanceof lt}function IB(r){return r instanceof M}function FB(r,e,t){let i=q.shared.setValue(e??0);return r.color=i.toNumber(),r.alpha=i.alpha===1?t.alpha:i.alpha,r.texture=M.WHITE,{...t,...r}}function UB(r,e,t){return r.texture=e,{...t,...r}}function BT(r,e,t){return r.fill=e,r.color=16777215,r.texture=e.texture,r.matrix=e.transform,{...t,...r}}function RT(r,e,t){return e.buildGradient(),r.fill=e,r.color=16777215,r.texture=e.texture,r.matrix=e.transform,r.textureSpace=e.textureSpace,{...t,...r}}function OB(r,e){let t={...e,...r},i=q.shared.setValue(t.color);return t.alpha*=i.alpha,t.color=i.toNumber(),t}function Ar(r,e){if(r==null)return null;let t={},i=r;return MB(r)?FB(t,r,e):IB(r)?UB(t,r,e):AT(r)?BT(t,r,e):PT(r)?RT(t,r,e):i.fill&&AT(i.fill)?BT(i,i.fill,e):i.fill&&PT(i.fill)?RT(i,i.fill,e):OB(i,e)}function Js(r,e){let{width:t,alignment:i,miterLimit:s,cap:n,join:o,pixelLine:a,...c}=e,u=Ar(r,c);return u?{width:t,alignment:i,miterLimit:s,cap:n,join:o,pixelLine:a,...u}:null}var Am=p(()=>{He();le();js();fl()});var GB,DT,Pm,bt,Bm=p(()=>{Ve();He();te();Ft();le();Oe();ye();at();vm();kT();Am();GB=new J,DT=new R,Pm=class or extends oe{constructor(){super(...arguments),this.uid=K("graphicsContext"),this.dirty=!0,this.batchMode="auto",this.instructions=[],this._activePath=new ei,this._transform=new R,this._fillStyle={...or.defaultFillStyle},this._strokeStyle={...or.defaultStrokeStyle},this._stateStack=[],this._tick=0,this._bounds=new ae,this._boundsDirty=!0}clone(){let e=new or;return e.batchMode=this.batchMode,e.instructions=this.instructions.slice(),e._activePath=this._activePath.clone(),e._transform=this._transform.clone(),e._fillStyle={...this._fillStyle},e._strokeStyle={...this._strokeStyle},e._stateStack=this._stateStack.slice(),e._bounds=this._bounds.clone(),e._boundsDirty=!0,e}get fillStyle(){return this._fillStyle}set fillStyle(e){this._fillStyle=Ar(e,or.defaultFillStyle)}get strokeStyle(){return this._strokeStyle}set strokeStyle(e){this._strokeStyle=Js(e,or.defaultStrokeStyle)}setFillStyle(e){return this._fillStyle=Ar(e,or.defaultFillStyle),this}setStrokeStyle(e){return this._strokeStyle=Ar(e,or.defaultStrokeStyle),this}texture(e,t,i,s,n,o){return this.instructions.push({action:"texture",data:{image:e,dx:i||0,dy:s||0,dw:n||e.frame.width,dh:o||e.frame.height,transform:this._transform.clone(),alpha:this._fillStyle.alpha,style:t?q.shared.setValue(t).toNumber():16777215}}),this.onUpdate(),this}beginPath(){return this._activePath=new ei,this}fill(e,t){let i,s=this.instructions[this.instructions.length-1];return this._tick===0&&s&&s.action==="stroke"?i=s.data.path:i=this._activePath.clone(),i?(e!=null&&(t!==void 0&&typeof e=="number"&&(z($,"GraphicsContext.fill(color, alpha) is deprecated, use GraphicsContext.fill({ color, alpha }) instead"),e={color:e,alpha:t}),this._fillStyle=Ar(e,or.defaultFillStyle)),this.instructions.push({action:"fill",data:{style:this.fillStyle,path:i}}),this.onUpdate(),this._initNextPathLocation(),this._tick=0,this):this}_initNextPathLocation(){let{x:e,y:t}=this._activePath.getLastPoint(J.shared);this._activePath.clear(),this._activePath.moveTo(e,t)}stroke(e){let t,i=this.instructions[this.instructions.length-1];return this._tick===0&&i&&i.action==="fill"?t=i.data.path:t=this._activePath.clone(),t?(e!=null&&(this._strokeStyle=Js(e,or.defaultStrokeStyle)),this.instructions.push({action:"stroke",data:{style:this.strokeStyle,path:t}}),this.onUpdate(),this._initNextPathLocation(),this._tick=0,this):this}cut(){for(let e=0;e<2;e++){let t=this.instructions[this.instructions.length-1-e],i=this._activePath.clone();if(t&&(t.action==="stroke"||t.action==="fill"))if(t.data.hole)t.data.hole.addPath(i);else{t.data.hole=i;break}}return this._initNextPathLocation(),this}arc(e,t,i,s,n,o){this._tick++;let a=this._transform;return this._activePath.arc(a.a*e+a.c*t+a.tx,a.b*e+a.d*t+a.ty,i,s,n,o),this}arcTo(e,t,i,s,n){this._tick++;let o=this._transform;return this._activePath.arcTo(o.a*e+o.c*t+o.tx,o.b*e+o.d*t+o.ty,o.a*i+o.c*s+o.tx,o.b*i+o.d*s+o.ty,n),this}arcToSvg(e,t,i,s,n,o,a){this._tick++;let c=this._transform;return this._activePath.arcToSvg(e,t,i,s,n,c.a*o+c.c*a+c.tx,c.b*o+c.d*a+c.ty),this}bezierCurveTo(e,t,i,s,n,o,a){this._tick++;let c=this._transform;return this._activePath.bezierCurveTo(c.a*e+c.c*t+c.tx,c.b*e+c.d*t+c.ty,c.a*i+c.c*s+c.tx,c.b*i+c.d*s+c.ty,c.a*n+c.c*o+c.tx,c.b*n+c.d*o+c.ty,a),this}closePath(){return this._tick++,this._activePath?.closePath(),this}ellipse(e,t,i,s){return this._tick++,this._activePath.ellipse(e,t,i,s,this._transform.clone()),this}circle(e,t,i){return this._tick++,this._activePath.circle(e,t,i,this._transform.clone()),this}path(e){return this._tick++,this._activePath.addPath(e,this._transform.clone()),this}lineTo(e,t){this._tick++;let i=this._transform;return this._activePath.lineTo(i.a*e+i.c*t+i.tx,i.b*e+i.d*t+i.ty),this}moveTo(e,t){this._tick++;let i=this._transform,s=this._activePath.instructions,n=i.a*e+i.c*t+i.tx,o=i.b*e+i.d*t+i.ty;return s.length===1&&s[0].action==="moveTo"?(s[0].data[0]=n,s[0].data[1]=o,this):(this._activePath.moveTo(n,o),this)}quadraticCurveTo(e,t,i,s,n){this._tick++;let o=this._transform;return this._activePath.quadraticCurveTo(o.a*e+o.c*t+o.tx,o.b*e+o.d*t+o.ty,o.a*i+o.c*s+o.tx,o.b*i+o.d*s+o.ty,n),this}rect(e,t,i,s){return this._tick++,this._activePath.rect(e,t,i,s,this._transform.clone()),this}roundRect(e,t,i,s,n){return this._tick++,this._activePath.roundRect(e,t,i,s,n,this._transform.clone()),this}poly(e,t){return this._tick++,this._activePath.poly(e,t,this._transform.clone()),this}regularPoly(e,t,i,s,n=0,o){return this._tick++,this._activePath.regularPoly(e,t,i,s,n,o),this}roundPoly(e,t,i,s,n,o){return this._tick++,this._activePath.roundPoly(e,t,i,s,n,o),this}roundShape(e,t,i,s){return this._tick++,this._activePath.roundShape(e,t,i,s),this}filletRect(e,t,i,s,n){return this._tick++,this._activePath.filletRect(e,t,i,s,n),this}chamferRect(e,t,i,s,n,o){return this._tick++,this._activePath.chamferRect(e,t,i,s,n,o),this}star(e,t,i,s,n=0,o=0){return this._tick++,this._activePath.star(e,t,i,s,n,o,this._transform.clone()),this}svg(e){return this._tick++,CT(e,this),this}restore(){let e=this._stateStack.pop();return e&&(this._transform=e.transform,this._fillStyle=e.fillStyle,this._strokeStyle=e.strokeStyle),this}save(){return this._stateStack.push({transform:this._transform.clone(),fillStyle:{...this._fillStyle},strokeStyle:{...this._strokeStyle}}),this}getTransform(){return this._transform}resetTransform(){return this._transform.identity(),this}rotate(e){return this._transform.rotate(e),this}scale(e,t=e){return this._transform.scale(e,t),this}setTransform(e,t,i,s,n,o){return e instanceof R?(this._transform.set(e.a,e.b,e.c,e.d,e.tx,e.ty),this):(this._transform.set(e,t,i,s,n,o),this)}transform(e,t,i,s,n,o){return e instanceof R?(this._transform.append(e),this):(DT.set(e,t,i,s,n,o),this._transform.append(DT),this)}translate(e,t=e){return this._transform.translate(e,t),this}clear(){return this._activePath.clear(),this.instructions.length=0,this.resetTransform(),this.onUpdate(),this}onUpdate(){this.dirty||(this.emit("update",this,16),this.dirty=!0,this._boundsDirty=!0)}get bounds(){if(!this._boundsDirty)return this._bounds;let e=this._bounds;e.clear();for(let t=0;t<this.instructions.length;t++){let i=this.instructions[t],s=i.action;if(s==="fill"){let n=i.data;e.addBounds(n.path.bounds)}else if(s==="texture"){let n=i.data;e.addFrame(n.dx,n.dy,n.dx+n.dw,n.dy+n.dh,n.transform)}if(s==="stroke"){let n=i.data,o=n.style.alignment,a=n.style.width*(1-o),c=n.path.bounds;e.addFrame(c.minX-a,c.minY-a,c.maxX+a,c.maxY+a)}}return e}containsPoint(e){if(!this.bounds.containsPoint(e.x,e.y))return!1;let t=this.instructions,i=!1;for(let s=0;s<t.length;s++){let n=t[s],o=n.data,a=o.path;if(!n.action||!a)continue;let c=o.style,u=a.shapePath.shapePrimitives;for(let l=0;l<u.length;l++){let h=u[l].shape;if(!c||!h)continue;let f=u[l].transform,d=f?f.applyInverse(e,GB):e;if(n.action==="fill")i=h.contains(d.x,d.y);else{let x=c;i=h.strokeContains(d.x,d.y,x.width,x.alignment)}let m=o.hole;if(m){let x=m.shapePath?.shapePrimitives;if(x)for(let g=0;g<x.length;g++)x[g].shape.contains(d.x,d.y)&&(i=!1)}if(i)return!0}}return i}destroy(e=!1){if(this._stateStack.length=0,this._transform=null,this.emit("destroy",this),this.removeAllListeners(),typeof e=="boolean"?e:e?.texture){let i=typeof e=="boolean"?e:e?.textureSource;this._fillStyle.texture&&this._fillStyle.texture.destroy(i),this._strokeStyle.texture&&this._strokeStyle.texture.destroy(i)}this._fillStyle=null,this._strokeStyle=null,this.instructions=null,this._activePath=null,this._bounds=null,this._stateStack=null,this.customShader=null,this._transform=null}};Pm.defaultFillStyle={color:16777215,alpha:1,texture:M.WHITE,matrix:null,fill:null,textureSpace:"local"};Pm.defaultStrokeStyle={width:1,color:16777215,alpha:1,alignment:.5,miterLimit:10,cap:"butt",join:"miter",texture:M.WHITE,matrix:null,fill:null,textureSpace:"local",pixelLine:!1};bt=Pm});function IT(r){let e=[],t=0;for(let i=0;i<MT.length;i++){let s=`_${MT[i]}`;e[t++]=r[s]}return t=FT(r._fill,e,t),t=LB(r._stroke,e,t),t=zB(r.dropShadow,e,t),t=NB(r.filters,e,t),e.join("-")}function NB(r,e,t){if(!r)return t;for(let i of r)e[t++]=i.uid;return t}function FT(r,e,t){return r&&(e[t++]=r.color,e[t++]=r.alpha,e[t++]=r.fill?.styleKey),t}function LB(r,e,t){return r&&(t=FT(r,e,t),e[t++]=r.width,e[t++]=r.alignment,e[t++]=r.cap,e[t++]=r.join,e[t++]=r.miterLimit),t}function zB(r,e,t){return r&&(e[t++]=r.alpha,e[t++]=r.angle,e[t++]=r.blur,e[t++]=r.distance,e[t++]=q.shared.setValue(r.color).toNumber()),t}var MT,UT=p(()=>{He();MT=["align","breakWords","cssOverrides","fontVariant","fontWeight","leading","letterSpacing","lineHeight","padding","textBaseline","trim","whiteSpace","wordWrap","wordWrapWidth","fontFamily","fontStyle","fontSize"]});function VB(r){let e=r;if(typeof e.dropShadow=="boolean"&&e.dropShadow){let t=ht.defaultDropShadow;r.dropShadow={alpha:e.dropShadowAlpha??t.alpha,angle:e.dropShadowAngle??t.angle,blur:e.dropShadowBlur??t.blur,color:e.dropShadowColor??t.color,distance:e.dropShadowDistance??t.distance}}if(e.strokeThickness!==void 0){z($,"strokeThickness is now a part of stroke");let t=e.stroke,i={};if(q.isColorLike(t))i.color=t;else if(t instanceof lt||t instanceof kr)i.fill=t;else if(Object.hasOwnProperty.call(t,"color")||Object.hasOwnProperty.call(t,"fill"))i=t;else throw new Error("Invalid stroke value.");r.stroke={...i,width:e.strokeThickness}}if(Array.isArray(e.fillGradientStops)){z($,"gradient fill is now a fill pattern: `new FillGradient(...)`");let t;r.fontSize==null?r.fontSize=ht.defaultTextStyle.fontSize:typeof r.fontSize=="string"?t=parseInt(r.fontSize,10):t=r.fontSize;let i=new lt({start:{x:0,y:0},end:{x:0,y:(t||0)*1.7}}),s=e.fillGradientStops.map(n=>q.shared.setValue(n).toNumber());s.forEach((n,o)=>{let a=o/(s.length-1);i.addColorStop(a,n)}),r.fill={fill:i}}}var Rm,ht,tn=p(()=>{Ve();He();ye();js();fl();Bm();Am();UT();Rm=class en extends oe{constructor(e={}){super(),VB(e);let t={...en.defaultTextStyle,...e};for(let i in t){let s=i;this[s]=t[i]}this.update()}get align(){return this._align}set align(e){this._align=e,this.update()}get breakWords(){return this._breakWords}set breakWords(e){this._breakWords=e,this.update()}get dropShadow(){return this._dropShadow}set dropShadow(e){e!==null&&typeof e=="object"?this._dropShadow=this._createProxy({...en.defaultDropShadow,...e}):this._dropShadow=e?this._createProxy({...en.defaultDropShadow}):null,this.update()}get fontFamily(){return this._fontFamily}set fontFamily(e){this._fontFamily=e,this.update()}get fontSize(){return this._fontSize}set fontSize(e){typeof e=="string"?this._fontSize=parseInt(e,10):this._fontSize=e,this.update()}get fontStyle(){return this._fontStyle}set fontStyle(e){this._fontStyle=e.toLowerCase(),this.update()}get fontVariant(){return this._fontVariant}set fontVariant(e){this._fontVariant=e,this.update()}get fontWeight(){return this._fontWeight}set fontWeight(e){this._fontWeight=e,this.update()}get leading(){return this._leading}set leading(e){this._leading=e,this.update()}get letterSpacing(){return this._letterSpacing}set letterSpacing(e){this._letterSpacing=e,this.update()}get lineHeight(){return this._lineHeight}set lineHeight(e){this._lineHeight=e,this.update()}get padding(){return this._padding}set padding(e){this._padding=e,this.update()}get filters(){return this._filters}set filters(e){this._filters=e,this.update()}get trim(){return this._trim}set trim(e){this._trim=e,this.update()}get textBaseline(){return this._textBaseline}set textBaseline(e){this._textBaseline=e,this.update()}get whiteSpace(){return this._whiteSpace}set whiteSpace(e){this._whiteSpace=e,this.update()}get wordWrap(){return this._wordWrap}set wordWrap(e){this._wordWrap=e,this.update()}get wordWrapWidth(){return this._wordWrapWidth}set wordWrapWidth(e){this._wordWrapWidth=e,this.update()}get fill(){return this._originalFill}set fill(e){e!==this._originalFill&&(this._originalFill=e,this._isFillStyle(e)&&(this._originalFill=this._createProxy({...bt.defaultFillStyle,...e},()=>{this._fill=Ar({...this._originalFill},bt.defaultFillStyle)})),this._fill=Ar(e===0?"black":e,bt.defaultFillStyle),this.update())}get stroke(){return this._originalStroke}set stroke(e){e!==this._originalStroke&&(this._originalStroke=e,this._isFillStyle(e)&&(this._originalStroke=this._createProxy({...bt.defaultStrokeStyle,...e},()=>{this._stroke=Js({...this._originalStroke},bt.defaultStrokeStyle)})),this._stroke=Js(e,bt.defaultStrokeStyle),this.update())}_generateKey(){return this._styleKey=IT(this),this._styleKey}update(){this._styleKey=null,this.emit("update",this)}reset(){let e=en.defaultTextStyle;for(let t in e)this[t]=e[t]}get styleKey(){return this._styleKey||this._generateKey()}clone(){return new en({align:this.align,breakWords:this.breakWords,dropShadow:this._dropShadow?{...this._dropShadow}:null,fill:this._fill,fontFamily:this.fontFamily,fontSize:this.fontSize,fontStyle:this.fontStyle,fontVariant:this.fontVariant,fontWeight:this.fontWeight,leading:this.leading,letterSpacing:this.letterSpacing,lineHeight:this.lineHeight,padding:this.padding,stroke:this._stroke,textBaseline:this.textBaseline,whiteSpace:this.whiteSpace,wordWrap:this.wordWrap,wordWrapWidth:this.wordWrapWidth,filters:this._filters?[...this._filters]:void 0})}_getFinalPadding(){let e=0;if(this._filters)for(let t=0;t<this._filters.length;t++)e+=this._filters[t].padding;return Math.max(this._padding,e)}destroy(e=!1){if(this.removeAllListeners(),typeof e=="boolean"?e:e?.texture){let i=typeof e=="boolean"?e:e?.textureSource;this._fill?.texture&&this._fill.texture.destroy(i),this._originalFill?.texture&&this._originalFill.texture.destroy(i),this._stroke?.texture&&this._stroke.texture.destroy(i),this._originalStroke?.texture&&this._originalStroke.texture.destroy(i)}this._fill=null,this._stroke=null,this.dropShadow=null,this._originalStroke=null,this._originalFill=null}_createProxy(e,t){return new Proxy(e,{set:(i,s,n)=>(i[s]=n,t?.(s,n),this.update(),!0)})}_isFillStyle(e){return(e??null)!==null&&!(q.isColorLike(e)||e instanceof lt||e instanceof kr)}};Rm.defaultDropShadow={alpha:1,angle:Math.PI/6,blur:0,color:"black",distance:5};Rm.defaultTextStyle={align:"left",breakWords:!1,dropShadow:null,fill:"black",fontFamily:"Arial",fontSize:26,fontStyle:"normal",fontVariant:"normal",fontWeight:"normal",leading:0,letterSpacing:0,lineHeight:0,padding:0,stroke:null,textBaseline:"alphabetic",trim:!1,whiteSpace:"pre",wordWrap:!1,wordWrapWidth:100};ht=Rm});function wl(r,e,t,i){let s=HB;s.minX=0,s.minY=0,s.maxX=r.width/i|0,s.maxY=r.height/i|0;let n=Te.getOptimalTexture(s.width,s.height,i,!1);return n.source.uploadMethodId="image",n.source.resource=r,n.source.alphaMode="premultiply-alpha-on-upload",n.frame.width=e/i,n.frame.height=t/i,n.source.emit("update",n.source),n.updateUvs(),n}var HB,Dm=p(()=>{Hr();at();HB=new ae});var Mm,yt,rn=p(()=>{Ce();ho();Mm=class{constructor(e){this._canvasPool=Object.create(null),this.canvasOptions=e||{},this.enableFullScreen=!1}_createCanvasAndContext(e,t){let i=W.get().createCanvas();i.width=e,i.height=t;let s=i.getContext("2d");return{canvas:i,context:s}}getOptimalCanvasAndContext(e,t,i=1){e=Math.ceil(e*i-1e-6),t=Math.ceil(t*i-1e-6),e=Tr(e),t=Tr(t);let s=(e<<17)+(t<<1);this._canvasPool[s]||(this._canvasPool[s]=[]);let n=this._canvasPool[s].pop();return n||(n=this._createCanvasAndContext(e,t)),n}returnCanvasAndContext(e){let t=e.canvas,{width:i,height:s}=t,n=(i<<17)+(s<<1);e.context.clearRect(0,0,i,s),this._canvasPool[n].push(e)}clear(){this._canvasPool={}}},yt=new Mm});function WB(r,e){Qi||(Qi=W.get().createCanvas(256,128),Pr=Qi.getContext("2d",{willReadFrequently:!0}),Pr.globalCompositeOperation="copy",Pr.globalAlpha=1),(Qi.width<r||Qi.height<e)&&(Qi.width=Tr(r),Qi.height=Tr(e))}function OT(r,e,t){for(let i=0,s=4*t*e;i<e;++i,s+=4)if(r[s+3]!==0)return!1;return!0}function GT(r,e,t,i,s){let n=4*e;for(let o=i,a=i*n+4*t;o<=s;++o,a+=n)if(r[a+3]!==0)return!1;return!0}function NT(...r){let e=r[0];e.canvas||(e={canvas:r[0],resolution:r[1]});let{canvas:t}=e,i=Math.min(e.resolution??1,1),s=e.width??t.width,n=e.height??t.height,o=e.output;if(WB(s,n),!Pr)throw new TypeError("Failed to get canvas 2D context");Pr.drawImage(t,0,0,s,n,0,0,s*i,n*i);let c=Pr.getImageData(0,0,s,n).data,u=0,l=0,h=s-1,f=n-1;for(;l<n&&OT(c,s,l);)++l;if(l===n)return Y.EMPTY;for(;OT(c,s,f);)--f;for(;GT(c,s,u,l,f);)++u;for(;GT(c,s,h,l,f);)--h;return++h,++f,Pr.globalCompositeOperation="source-over",Pr.strokeRect(u,l,h-u,f-l),Pr.globalCompositeOperation="copy",o??(o=new Y),o.set(u/i,l/i,(h-u)/i,(f-l)/i),o}var Qi,Pr,LT=p(()=>{Ce();ho();Ge();Qi=null,Pr=null});function Zi(r){let e=typeof r.fontSize=="number"?`${r.fontSize}px`:r.fontSize,t=r.fontFamily;Array.isArray(r.fontFamily)||(t=r.fontFamily.split(","));for(let i=t.length-1;i>=0;i--){let s=t[i].trim();!/([\"\'])[^\'\"]+\1/.test(s)&&!$B.includes(s)&&(s=`"${s}"`),t[i]=s}return`${r.fontStyle} ${r.fontVariant} ${r.fontWeight} ${e} ${t.join(",")}`}var $B,Sl=p(()=>{"use strict";$B=["serif","sans-serif","monospace","cursive","fantasy","system-ui"]});var Im,ar,Xe,sn=p(()=>{Ce();Sl();Im={willReadFrequently:!0},ar=class V{static get experimentalLetterSpacingSupported(){let e=V._experimentalLetterSpacingSupported;if(e===void 0){let t=W.get().getCanvasRenderingContext2D().prototype;e=V._experimentalLetterSpacingSupported="letterSpacing"in t||"textLetterSpacing"in t}return e}constructor(e,t,i,s,n,o,a,c,u){this.text=e,this.style=t,this.width=i,this.height=s,this.lines=n,this.lineWidths=o,this.lineHeight=a,this.maxLineWidth=c,this.fontProperties=u}static measureText(e=" ",t,i=V._canvas,s=t.wordWrap){let n=Zi(t),o=V.measureFont(n);o.fontSize===0&&(o.fontSize=t.fontSize,o.ascent=t.fontSize);let a=V.__context;a.font=n;let u=(s?V._wordWrap(e,t,i):e).split(/(?:\r\n|\r|\n)/),l=new Array(u.length),h=0;for(let _=0;_<u.length;_++){let y=V._measureText(u[_],t.letterSpacing,a);l[_]=y,h=Math.max(h,y)}let f=t._stroke?.width||0,d=h+f;t.dropShadow&&(d+=t.dropShadow.distance);let m=t.lineHeight||o.fontSize,x=Math.max(m,o.fontSize+f)+(u.length-1)*(m+t.leading);return t.dropShadow&&(x+=t.dropShadow.distance),new V(e,t,d,x,u,l,m+t.leading,h,o)}static _measureText(e,t,i){let s=!1;V.experimentalLetterSpacingSupported&&(V.experimentalLetterSpacing?(i.letterSpacing=`${t}px`,i.textLetterSpacing=`${t}px`,s=!0):(i.letterSpacing="0px",i.textLetterSpacing="0px"));let n=i.measureText(e),o=n.width,a=-n.actualBoundingBoxLeft,u=n.actualBoundingBoxRight-a;if(o>0)if(s)o-=t,u-=t;else{let l=(V.graphemeSegmenter(e).length-1)*t;o+=l,u+=l}return Math.max(o,u)}static _wordWrap(e,t,i=V._canvas){let s=i.getContext("2d",Im),n=0,o="",a="",c=Object.create(null),{letterSpacing:u,whiteSpace:l}=t,h=V._collapseSpaces(l),f=V._collapseNewlines(l),d=!h,m=t.wordWrapWidth+u,x=V._tokenize(e);for(let g=0;g<x.length;g++){let _=x[g];if(V._isNewline(_)){if(!f){a+=V._addLine(o),d=!h,o="",n=0;continue}_=" "}if(h){let S=V.isBreakingSpace(_),T=V.isBreakingSpace(o[o.length-1]);if(S&&T)continue}let y=V._getFromCache(_,u,c,s);if(y>m)if(o!==""&&(a+=V._addLine(o),o="",n=0),V.canBreakWords(_,t.breakWords)){let S=V.wordWrapSplit(_);for(let T=0;T<S.length;T++){let C=S[T],v=C,E=1;for(;S[T+E];){let A=S[T+E];if(!V.canBreakChars(v,A,_,T,t.breakWords))C+=A;else break;v=A,E++}T+=E-1;let D=V._getFromCache(C,u,c,s);D+n>m&&(a+=V._addLine(o),d=!1,o="",n=0),o+=C,n+=D}}else{o.length>0&&(a+=V._addLine(o),o="",n=0);let S=g===x.length-1;a+=V._addLine(_,!S),d=!1,o="",n=0}else y+n>m&&(d=!1,a+=V._addLine(o),o="",n=0),(o.length>0||!V.isBreakingSpace(_)||d)&&(o+=_,n+=y)}return a+=V._addLine(o,!1),a}static _addLine(e,t=!0){return e=V._trimRight(e),e=t?`${e}
368
- `:e,e}static _getFromCache(e,t,i,s){let n=i[e];return typeof n!="number"&&(n=V._measureText(e,t,s)+t,i[e]=n),n}static _collapseSpaces(e){return e==="normal"||e==="pre-line"}static _collapseNewlines(e){return e==="normal"}static _trimRight(e){if(typeof e!="string")return"";for(let t=e.length-1;t>=0;t--){let i=e[t];if(!V.isBreakingSpace(i))break;e=e.slice(0,-1)}return e}static _isNewline(e){return typeof e!="string"?!1:V._newlines.includes(e.charCodeAt(0))}static isBreakingSpace(e,t){return typeof e!="string"?!1:V._breakingSpaces.includes(e.charCodeAt(0))}static _tokenize(e){let t=[],i="";if(typeof e!="string")return t;for(let s=0;s<e.length;s++){let n=e[s],o=e[s+1];if(V.isBreakingSpace(n,o)||V._isNewline(n)){i!==""&&(t.push(i),i=""),t.push(n);continue}i+=n}return i!==""&&t.push(i),t}static canBreakWords(e,t){return t}static canBreakChars(e,t,i,s,n){return!0}static wordWrapSplit(e){return V.graphemeSegmenter(e)}static measureFont(e){if(V._fonts[e])return V._fonts[e];let t=V._context;t.font=e;let i=t.measureText(V.METRICS_STRING+V.BASELINE_SYMBOL),s={ascent:i.actualBoundingBoxAscent,descent:i.actualBoundingBoxDescent,fontSize:i.actualBoundingBoxAscent+i.actualBoundingBoxDescent};return V._fonts[e]=s,s}static clearMetrics(e=""){e?delete V._fonts[e]:V._fonts={}}static get _canvas(){if(!V.__canvas){let e;try{let t=new OffscreenCanvas(0,0);if(t.getContext("2d",Im)?.measureText)return V.__canvas=t,t;e=W.get().createCanvas()}catch{e=W.get().createCanvas()}e.width=e.height=10,V.__canvas=e}return V.__canvas}static get _context(){return V.__context||(V.__context=V._canvas.getContext("2d",Im)),V.__context}};ar.METRICS_STRING="|\xC9q\xC5";ar.BASELINE_SYMBOL="M";ar.BASELINE_MULTIPLIER=1.4;ar.HEIGHT_MULTIPLIER=2;ar.graphemeSegmenter=(()=>{if(typeof Intl?.Segmenter=="function"){let r=new Intl.Segmenter;return e=>{let t=r.segment(e),i=[],s=0;for(let n of t)i[s++]=n.segment;return i}}return r=>[...r]})();ar.experimentalLetterSpacing=!1;ar._fonts={};ar._newlines=[10,13];ar._breakingSpaces=[9,32,8192,8193,8194,8195,8196,8197,8198,8200,8201,8202,8287,12288];Xe=ar});function nn(r,e,t,i=0){if(r.texture===M.WHITE&&!r.fill)return q.shared.setValue(r.color).setAlpha(r.alpha??1).toHexa();if(r.fill){if(r.fill instanceof kr){let s=r.fill,n=e.createPattern(s.texture.source.resource,"repeat"),o=s.transform.copyTo(R.shared);return o.scale(s.texture.frame.width,s.texture.frame.height),n.setTransform(o),n}else if(r.fill instanceof lt){let s=r.fill,n=s.type==="linear",o=s.textureSpace==="local",a=1,c=1;o&&t&&(a=t.width+i,c=t.height+i);let u,l=!1;if(n){let{start:h,end:f}=s;u=e.createLinearGradient(h.x*a,h.y*c,f.x*a,f.y*c),l=Math.abs(f.x-h.x)<Math.abs((f.y-h.y)*.1)}else{let{center:h,innerRadius:f,outerCenter:d,outerRadius:m}=s;u=e.createRadialGradient(h.x*a,h.y*c,f*a,d.x*a,d.y*c,m*a)}if(l&&o&&t){let h=t.lineHeight/c;for(let f=0;f<t.lines.length;f++){let d=(f*t.lineHeight+i/2)/c;s.colorStops.forEach(m=>{let x=d+m.offset*h;u.addColorStop(Math.floor(x*zT)/zT,q.shared.setValue(m.color).toHex())})}}else s.colorStops.forEach(h=>{u.addColorStop(h.offset,q.shared.setValue(h.color).toHex())});return u}}else{let s=e.createPattern(r.texture.source.resource,"repeat"),n=r.matrix.copyTo(R.shared);return n.scale(r.texture.frame.width,r.texture.frame.height),s.setTransform(n),s}return N("FillStyle not recognised",r),"red"}var zT,Fm=p(()=>{He();te();le();pe();js();fl();zT=1e5});var VT,Um,Ji,Om=p(()=>{He();Ge();rn();LT();sn();Sl();Fm();VT=new Y,Um=class{getCanvasAndContext(e){let{text:t,style:i,resolution:s=1}=e,n=i._getFinalPadding(),o=Xe.measureText(t||" ",i),a=Math.ceil(Math.ceil(Math.max(1,o.width)+n*2)*s),c=Math.ceil(Math.ceil(Math.max(1,o.height)+n*2)*s),u=yt.getOptimalCanvasAndContext(a,c);this._renderTextToCanvas(t,i,n,s,u);let l=i.trim?NT({canvas:u.canvas,width:a,height:c,resolution:1,output:VT}):VT.set(0,0,a,c);return{canvasAndContext:u,frame:l}}returnCanvasAndContext(e){yt.returnCanvasAndContext(e)}_renderTextToCanvas(e,t,i,s,n){let{canvas:o,context:a}=n,c=Zi(t),u=Xe.measureText(e||" ",t),l=u.lines,h=u.lineHeight,f=u.lineWidths,d=u.maxLineWidth,m=u.fontProperties,x=o.height;if(a.resetTransform(),a.scale(s,s),a.textBaseline=t.textBaseline,t._stroke?.width){let S=t._stroke;a.lineWidth=S.width,a.miterLimit=S.miterLimit,a.lineJoin=S.join,a.lineCap=S.cap}a.font=c;let g,_,y=t.dropShadow?2:1;for(let S=0;S<y;++S){let T=t.dropShadow&&S===0,C=T?Math.ceil(Math.max(1,x)+i*2):0,v=C*s;if(T){a.fillStyle="black",a.strokeStyle="black";let A=t.dropShadow,P=A.color,k=A.alpha;a.shadowColor=q.shared.setValue(P).setAlpha(k).toRgbaString();let G=A.blur*s,j=A.distance*s;a.shadowBlur=G,a.shadowOffsetX=Math.cos(A.angle)*j,a.shadowOffsetY=Math.sin(A.angle)*j+v}else{if(a.fillStyle=t._fill?nn(t._fill,a,u):null,t._stroke?.width){let A=t._stroke.width*t._stroke.alignment;a.strokeStyle=nn(t._stroke,a,u,A)}a.shadowColor="black"}let E=(h-m.fontSize)/2;h-m.fontSize<0&&(E=0);let D=t._stroke?.width??0;for(let A=0;A<l.length;A++)g=D/2,_=D/2+A*h+m.ascent+E,t.align==="right"?g+=d-f[A]:t.align==="center"&&(g+=(d-f[A])/2),t._stroke?.width&&this._drawLetterSpacing(l[A],t,n,g+i,_+i-C,!0),t._fill!==void 0&&this._drawLetterSpacing(l[A],t,n,g+i,_+i-C)}}_drawLetterSpacing(e,t,i,s,n,o=!1){let{context:a}=i,c=t.letterSpacing,u=!1;if(Xe.experimentalLetterSpacingSupported&&(Xe.experimentalLetterSpacing?(a.letterSpacing=`${c}px`,a.textLetterSpacing=`${c}px`,u=!0):(a.letterSpacing="0px",a.textLetterSpacing="0px")),c===0||u){o?a.strokeText(e,s,n):a.fillText(e,s,n);return}let l=s,h=Xe.graphemeSegmenter(e),f=a.measureText(e).width,d=0;for(let m=0;m<h.length;++m){let x=h[m];o?a.strokeText(x,l,n):a.fillText(x,l,n);let g="";for(let _=m+1;_<h.length;++_)g+=h[_];d=a.measureText(g).width,l+=f-d+c,f=d}}},Ji=new Um});var jo,HT=p(()=>{B();Hr();Ui();ye();tn();Dm();Om();jo=class{constructor(e){this._renderer=e}getTexture(e,t,i,s){typeof e=="string"&&(z("8.0.0","CanvasTextSystem.getTexture: Use object TextOptions instead of separate arguments"),e={text:e,style:i,resolution:t}),e.style instanceof ht||(e.style=new ht(e.style)),e.textureStyle instanceof et||(e.textureStyle=new et(e.textureStyle)),typeof e.text!="string"&&(e.text=e.text.toString());let{text:n,style:o,textureStyle:a}=e,c=e.resolution??this._renderer.resolution,{frame:u,canvasAndContext:l}=Ji.getCanvasAndContext({text:n,style:o,resolution:c}),h=wl(l.canvas,u.width,u.height,c);if(a&&(h.source.style=a),o.trim&&(u.pad(o.padding),h.frame.copyFrom(u),h.updateUvs()),o.filters){let f=this._applyFilters(h,o.filters);return this.returnTexture(h),Ji.returnCanvasAndContext(l),f}return this._renderer.texture.initSource(h._source),Ji.returnCanvasAndContext(l),h}returnTexture(e){let t=e.source;t.resource=null,t.uploadMethodId="unknown",t.alphaMode="no-premultiply-alpha",Te.returnTexture(e,!0)}renderTextToCanvas(){z("8.10.0","CanvasTextSystem.renderTextToCanvas: no longer supported, use CanvasTextSystem.getTexture instead")}_applyFilters(e,t){let i=this._renderer.renderTarget.renderTarget,s=this._renderer.filter.generateFilteredTexture({texture:e,filters:t});return this._renderer.renderTarget.bind(i,!1),s}destroy(){this._renderer=null}};jo.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"canvasText"}});var Gm=p(()=>{B();X2();HT();O.add(jo);O.add(Wo)});var vl,WT=p(()=>{ye();Fu();Bm();vl=class r extends qr{constructor(e){e instanceof bt&&(e={context:e});let{context:t,roundPixels:i,...s}=e||{};super({label:"Graphics",...s}),this.renderPipeId="graphics",t?this._context=t:this._context=this._ownedContext=new bt,this._context.on("update",this.onViewUpdate,this),this.didViewUpdate=!0,this.allowChildren=!1,this.roundPixels=i??!1}set context(e){e!==this._context&&(this._context.off("update",this.onViewUpdate,this),this._context=e,this._context.on("update",this.onViewUpdate,this),this.onViewUpdate())}get context(){return this._context}get bounds(){return this._context.bounds}updateBounds(){}containsPoint(e){return this._context.containsPoint(e)}destroy(e){this._ownedContext&&!e?this._ownedContext.destroy(e):(e===!0||e?.context===!0)&&this._context.destroy(e),this._ownedContext=null,this._context=null,super.destroy(e)}_callContextMethod(e,t){return this.context[e](...t),this}setFillStyle(...e){return this._callContextMethod("setFillStyle",e)}setStrokeStyle(...e){return this._callContextMethod("setStrokeStyle",e)}fill(...e){return this._callContextMethod("fill",e)}stroke(...e){return this._callContextMethod("stroke",e)}texture(...e){return this._callContextMethod("texture",e)}beginPath(){return this._callContextMethod("beginPath",[])}cut(){return this._callContextMethod("cut",[])}arc(...e){return this._callContextMethod("arc",e)}arcTo(...e){return this._callContextMethod("arcTo",e)}arcToSvg(...e){return this._callContextMethod("arcToSvg",e)}bezierCurveTo(...e){return this._callContextMethod("bezierCurveTo",e)}closePath(){return this._callContextMethod("closePath",[])}ellipse(...e){return this._callContextMethod("ellipse",e)}circle(...e){return this._callContextMethod("circle",e)}path(...e){return this._callContextMethod("path",e)}lineTo(...e){return this._callContextMethod("lineTo",e)}moveTo(...e){return this._callContextMethod("moveTo",e)}quadraticCurveTo(...e){return this._callContextMethod("quadraticCurveTo",e)}rect(...e){return this._callContextMethod("rect",e)}roundRect(...e){return this._callContextMethod("roundRect",e)}poly(...e){return this._callContextMethod("poly",e)}regularPoly(...e){return this._callContextMethod("regularPoly",e)}roundPoly(...e){return this._callContextMethod("roundPoly",e)}roundShape(...e){return this._callContextMethod("roundShape",e)}filletRect(...e){return this._callContextMethod("filletRect",e)}chamferRect(...e){return this._callContextMethod("chamferRect",e)}star(...e){return this._callContextMethod("star",e)}svg(...e){return this._callContextMethod("svg",e)}restore(...e){return this._callContextMethod("restore",e)}save(){return this._callContextMethod("save",[])}getTransform(){return this.context.getTransform()}resetTransform(){return this._callContextMethod("resetTransform",[])}rotateTransform(...e){return this._callContextMethod("rotate",e)}scaleTransform(...e){return this._callContextMethod("scale",e)}setTransform(...e){return this._callContextMethod("setTransform",e)}transform(...e){return this._callContextMethod("transform",e)}translateTransform(...e){return this._callContextMethod("translate",e)}clear(){return this._callContextMethod("clear",[])}get fillStyle(){return this._context.fillStyle}set fillStyle(e){this._context.fillStyle=e}get strokeStyle(){return this._context.strokeStyle}set strokeStyle(e){this._context.strokeStyle=e}clone(e=!1){return e?new r(this._context.clone()):(this._ownedContext=null,new r(this._context))}lineStyle(e,t,i){z($,"Graphics#lineStyle is no longer needed. Use Graphics#setStrokeStyle to set the stroke style.");let s={};return e&&(s.width=e),t&&(s.color=t),i&&(s.alpha=i),this.context.strokeStyle=s,this}beginFill(e,t){z($,"Graphics#beginFill is no longer needed. Use Graphics#fill to fill the shape with the desired style.");let i={};return e!==void 0&&(i.color=e),t!==void 0&&(i.alpha=t),this.context.fillStyle=i,this}endFill(){z($,"Graphics#endFill is no longer needed. Use Graphics#fill to fill the shape with the desired style."),this.context.fill();let e=this.context.strokeStyle;return(e.width!==bt.defaultStrokeStyle.width||e.color!==bt.defaultStrokeStyle.color||e.alpha!==bt.defaultStrokeStyle.alpha)&&this.context.stroke(),this}drawCircle(...e){return z($,"Graphics#drawCircle has been renamed to Graphics#circle"),this._callContextMethod("circle",e)}drawEllipse(...e){return z($,"Graphics#drawEllipse has been renamed to Graphics#ellipse"),this._callContextMethod("ellipse",e)}drawPolygon(...e){return z($,"Graphics#drawPolygon has been renamed to Graphics#poly"),this._callContextMethod("poly",e)}drawRect(...e){return z($,"Graphics#drawRect has been renamed to Graphics#rect"),this._callContextMethod("rect",e)}drawRoundedRect(...e){return z($,"Graphics#drawRoundedRect has been renamed to Graphics#roundRect"),this._callContextMethod("roundRect",e)}drawStar(...e){return z($,"Graphics#drawStar has been renamed to Graphics#star"),this._callContextMethod("star",e)}}});var $T,qT,jT=p(()=>{"use strict";$T={name:"local-uniform-msdf-bit",vertex:{header:`
369
- struct LocalUniforms {
370
- uColor:vec4<f32>,
371
- uTransformMatrix:mat3x3<f32>,
372
- uDistance: f32,
373
- uRound:f32,
374
- }
375
-
376
- @group(2) @binding(0) var<uniform> localUniforms : LocalUniforms;
377
- `,main:`
378
- vColor *= localUniforms.uColor;
379
- modelMatrix *= localUniforms.uTransformMatrix;
380
- `,end:`
381
- if(localUniforms.uRound == 1)
382
- {
383
- vPosition = vec4(roundPixels(vPosition.xy, globalUniforms.uResolution), vPosition.zw);
384
- }
385
- `},fragment:{header:`
386
- struct LocalUniforms {
387
- uColor:vec4<f32>,
388
- uTransformMatrix:mat3x3<f32>,
389
- uDistance: f32
390
- }
391
-
392
- @group(2) @binding(0) var<uniform> localUniforms : LocalUniforms;
393
- `,main:`
394
- outColor = vec4<f32>(calculateMSDFAlpha(outColor, localUniforms.uColor, localUniforms.uDistance));
395
- `}},qT={name:"local-uniform-msdf-bit",vertex:{header:`
396
- uniform mat3 uTransformMatrix;
397
- uniform vec4 uColor;
398
- uniform float uRound;
399
- `,main:`
400
- vColor *= uColor;
401
- modelMatrix *= uTransformMatrix;
402
- `,end:`
403
- if(uRound == 1.)
404
- {
405
- gl_Position.xy = roundPixels(gl_Position.xy, uResolution);
406
- }
407
- `},fragment:{header:`
408
- uniform float uDistance;
409
- `,main:`
410
- outColor = vec4(calculateMSDFAlpha(outColor, vColor, uDistance));
411
- `}}});var XT,YT,KT=p(()=>{"use strict";XT={name:"msdf-bit",fragment:{header:`
412
- fn calculateMSDFAlpha(msdfColor:vec4<f32>, shapeColor:vec4<f32>, distance:f32) -> f32 {
413
-
414
- // MSDF
415
- var median = msdfColor.r + msdfColor.g + msdfColor.b -
416
- min(msdfColor.r, min(msdfColor.g, msdfColor.b)) -
417
- max(msdfColor.r, max(msdfColor.g, msdfColor.b));
418
-
419
- // SDF
420
- median = min(median, msdfColor.a);
421
-
422
- var screenPxDistance = distance * (median - 0.5);
423
- var alpha = clamp(screenPxDistance + 0.5, 0.0, 1.0);
424
- if (median < 0.01) {
425
- alpha = 0.0;
426
- } else if (median > 0.99) {
427
- alpha = 1.0;
428
- }
429
-
430
- // Gamma correction for coverage-like alpha
431
- var luma: f32 = dot(shapeColor.rgb, vec3<f32>(0.299, 0.587, 0.114));
432
- var gamma: f32 = mix(1.0, 1.0 / 2.2, luma);
433
- var coverage: f32 = pow(shapeColor.a * alpha, gamma);
434
-
435
- return coverage;
436
-
437
- }
438
- `}},YT={name:"msdf-bit",fragment:{header:`
439
- float calculateMSDFAlpha(vec4 msdfColor, vec4 shapeColor, float distance) {
440
-
441
- // MSDF
442
- float median = msdfColor.r + msdfColor.g + msdfColor.b -
443
- min(msdfColor.r, min(msdfColor.g, msdfColor.b)) -
444
- max(msdfColor.r, max(msdfColor.g, msdfColor.b));
445
-
446
- // SDF
447
- median = min(median, msdfColor.a);
448
-
449
- float screenPxDistance = distance * (median - 0.5);
450
- float alpha = clamp(screenPxDistance + 0.5, 0.0, 1.0);
451
-
452
- if (median < 0.01) {
453
- alpha = 0.0;
454
- } else if (median > 0.99) {
455
- alpha = 1.0;
456
- }
457
-
458
- // Gamma correction for coverage-like alpha
459
- float luma = dot(shapeColor.rgb, vec3(0.299, 0.587, 0.114));
460
- float gamma = mix(1.0, 1.0 / 2.2, luma);
461
- float coverage = pow(shapeColor.a * alpha, gamma);
462
-
463
- return coverage;
464
- }
465
- `}}});var Nm,Lm,Cl,QT=p(()=>{te();Qr();Ro();Do();Zr();Zu();Ot();it();jT();KT();Cl=class extends ke{constructor(e){let t=new ce({uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uTransformMatrix:{value:new R,type:"mat3x3<f32>"},uDistance:{value:4,type:"f32"},uRound:{value:0,type:"f32"}});Nm??(Nm=Jt({name:"sdf-shader",bits:[Ls,Vs(e),$T,XT,tr]})),Lm??(Lm=er({name:"sdf-shader",bits:[zs,Hs(e),qT,YT,rr]})),super({glProgram:Lm,gpuProgram:Nm,resources:{localUniforms:t,batchSamplers:Ws(e)}})}}});var El,ZT=p(()=>{Ve();ye();El=class extends oe{constructor(){super(...arguments),this.chars=Object.create(null),this.lineHeight=0,this.fontFamily="",this.fontMetrics={fontSize:0,ascent:0,descent:0},this.baseLineOffset=0,this.distanceField={type:"none",range:0},this.pages=[],this.applyFillAsTint=!0,this.baseMeasurementFontSize=100,this.baseRenderedFontSize=100}get font(){return z($,"BitmapFont.font is deprecated, please use BitmapFont.fontFamily instead."),this.fontFamily}get pageTextures(){return z($,"BitmapFont.pageTextures is deprecated, please use BitmapFont.pages instead."),this.pages}get size(){return z($,"BitmapFont.size is deprecated, please use BitmapFont.fontMetrics.fontSize instead."),this.fontMetrics.fontSize}get distanceFieldRange(){return z($,"BitmapFont.distanceFieldRange is deprecated, please use BitmapFont.distanceField.range instead."),this.distanceField.range}get distanceFieldType(){return z($,"BitmapFont.distanceFieldType is deprecated, please use BitmapFont.distanceField.type instead."),this.distanceField.type}destroy(e=!1){this.emit("destroy",this),this.removeAllListeners();for(let t in this.chars)this.chars[t].texture?.destroy();this.chars=null,e&&(this.pages.forEach(t=>t.texture.destroy(!0)),this.pages=null)}}});var JT,zm,tw=p(()=>{He();Ge();rn();zu();le();Ui();ye();sn();Sl();Fm();tn();ZT();JT=class ew extends El{constructor(e){super(),this.resolution=1,this.pages=[],this._padding=0,this._measureCache=Object.create(null),this._currentChars=[],this._currentX=0,this._currentY=0,this._currentMaxCharHeight=0,this._currentPageIndex=-1,this._skipKerning=!1;let t={...ew.defaultOptions,...e};this._textureSize=t.textureSize,this._mipmap=t.mipmap;let i=t.style.clone();t.overrideFill&&(i._fill.color=16777215,i._fill.alpha=1,i._fill.texture=M.WHITE,i._fill.fill=null),this.applyFillAsTint=t.overrideFill;let s=i.fontSize;i.fontSize=this.baseMeasurementFontSize;let n=Zi(i);t.overrideSize?i._stroke&&(i._stroke.width*=this.baseRenderedFontSize/s):i.fontSize=this.baseRenderedFontSize=s,this._style=i,this._skipKerning=t.skipKerning??!1,this.resolution=t.resolution??1,this._padding=t.padding??4,t.textureStyle&&(this._textureStyle=t.textureStyle instanceof et?t.textureStyle:new et(t.textureStyle)),this.fontMetrics=Xe.measureFont(n),this.lineHeight=i.lineHeight||this.fontMetrics.fontSize||i.fontSize}ensureCharacters(e){let t=Xe.graphemeSegmenter(e).filter(g=>!this._currentChars.includes(g)).filter((g,_,y)=>y.indexOf(g)===_);if(!t.length)return;this._currentChars=[...this._currentChars,...t];let i;this._currentPageIndex===-1?i=this._nextPage():i=this.pages[this._currentPageIndex];let{canvas:s,context:n}=i.canvasAndContext,o=i.texture.source,a=this._style,c=this._currentX,u=this._currentY,l=this._currentMaxCharHeight,h=this.baseRenderedFontSize/this.baseMeasurementFontSize,f=this._padding*h,d=!1,m=s.width/this.resolution,x=s.height/this.resolution;for(let g=0;g<t.length;g++){let _=t[g],y=Xe.measureText(_,a,s,!1);y.lineHeight=y.height;let S=y.width*h,T=Math.ceil((a.fontStyle==="italic"?2:1)*S),C=y.height*h,v=T+f*2,E=C+f*2;if(d=!1,_!==`
466
- `&&_!=="\r"&&_!==" "&&_!==" "&&(d=!0,l=Math.ceil(Math.max(E,l))),c+v>m&&(u+=l,l=E,c=0,u+l>x)){o.update();let A=this._nextPage();s=A.canvasAndContext.canvas,n=A.canvasAndContext.context,o=A.texture.source,c=0,u=0,l=0}let D=S/h-(a.dropShadow?.distance??0)-(a._stroke?.width??0);if(this.chars[_]={id:_.codePointAt(0),xOffset:-this._padding,yOffset:-this._padding,xAdvance:D,kerning:{}},d){this._drawGlyph(n,y,c+f,u+f,h,a);let A=o.width*h,P=o.height*h,k=new Y(c/A*o.width,u/P*o.height,v/A*o.width,E/P*o.height);this.chars[_].texture=new M({source:o,frame:k}),c+=Math.ceil(v)}}o.update(),this._currentX=c,this._currentY=u,this._currentMaxCharHeight=l,this._skipKerning&&this._applyKerning(t,n)}get pageTextures(){return z($,"BitmapFont.pageTextures is deprecated, please use BitmapFont.pages instead."),this.pages}_applyKerning(e,t){let i=this._measureCache;for(let s=0;s<e.length;s++){let n=e[s];for(let o=0;o<this._currentChars.length;o++){let a=this._currentChars[o],c=i[n];c||(c=i[n]=t.measureText(n).width);let u=i[a];u||(u=i[a]=t.measureText(a).width);let l=t.measureText(n+a).width,h=l-(c+u);h&&(this.chars[n].kerning[a]=h),l=t.measureText(n+a).width,h=l-(c+u),h&&(this.chars[a].kerning[n]=h)}}}_nextPage(){this._currentPageIndex++;let e=this.resolution,t=yt.getOptimalCanvasAndContext(this._textureSize,this._textureSize,e);this._setupContext(t.context,this._style,e);let i=e*(this.baseRenderedFontSize/this.baseMeasurementFontSize),s=new M({source:new Qt({resource:t.canvas,resolution:i,alphaMode:"premultiply-alpha-on-upload",autoGenerateMipmaps:this._mipmap})});this._textureStyle&&(s.source.style=this._textureStyle);let n={canvasAndContext:t,texture:s};return this.pages[this._currentPageIndex]=n,n}_setupContext(e,t,i){t.fontSize=this.baseRenderedFontSize,e.scale(i,i),e.font=Zi(t),t.fontSize=this.baseMeasurementFontSize,e.textBaseline=t.textBaseline;let s=t._stroke,n=s?.width??0;if(s&&(e.lineWidth=n,e.lineJoin=s.join,e.miterLimit=s.miterLimit,e.strokeStyle=nn(s,e)),t._fill&&(e.fillStyle=nn(t._fill,e)),t.dropShadow){let o=t.dropShadow,a=q.shared.setValue(o.color).toArray(),c=o.blur*i,u=o.distance*i;e.shadowColor=`rgba(${a[0]*255},${a[1]*255},${a[2]*255},${o.alpha})`,e.shadowBlur=c,e.shadowOffsetX=Math.cos(o.angle)*u,e.shadowOffsetY=Math.sin(o.angle)*u}else e.shadowColor="black",e.shadowBlur=0,e.shadowOffsetX=0,e.shadowOffsetY=0}_drawGlyph(e,t,i,s,n,o){let a=t.text,c=t.fontProperties,l=(o._stroke?.width??0)*n,h=i+l/2,f=s-l/2,d=c.descent*n,m=t.lineHeight*n;o.stroke&&l&&e.strokeText(a,h,f+m-d),o._fill&&e.fillText(a,h,f+m-d)}destroy(){super.destroy();for(let e=0;e<this.pages.length;e++){let{canvasAndContext:t,texture:i}=this.pages[e];yt.returnCanvasAndContext(t),i.destroy(!0)}this.pages=null}};JT.defaultOptions={textureSize:512,style:new ht,mipmap:!0};zm=JT});function kl(r,e,t,i){let s={width:0,height:0,offsetY:0,scale:e.fontSize/t.baseMeasurementFontSize,lines:[{width:0,charPositions:[],spaceWidth:0,spacesIndex:[],chars:[]}]};s.offsetY=t.baseLineOffset;let n=s.lines[0],o=null,a=!0,c={spaceWord:!1,width:0,start:0,index:0,positions:[],chars:[]},u=m=>{let x=n.width;for(let g=0;g<c.index;g++){let _=m.positions[g];n.chars.push(m.chars[g]),n.charPositions.push(_+x)}n.width+=m.width,a=!1,c.width=0,c.index=0,c.chars.length=0},l=()=>{let m=n.chars.length-1;if(i){let x=n.chars[m];for(;x===" ";)n.width-=t.chars[x].xAdvance,x=n.chars[--m]}s.width=Math.max(s.width,n.width),n={width:0,charPositions:[],chars:[],spaceWidth:0,spacesIndex:[]},a=!0,s.lines.push(n),s.height+=t.lineHeight},h=t.baseMeasurementFontSize/e.fontSize,f=e.letterSpacing*h,d=e.wordWrapWidth*h;for(let m=0;m<r.length+1;m++){let x,g=m===r.length;g||(x=r[m]);let _=t.chars[x]||t.chars[" "];if(/(?:\s)/.test(x)||x==="\r"||x===`
467
- `||g){if(!a&&e.wordWrap&&n.width+c.width-f>d?(l(),u(c),g||n.charPositions.push(0)):(c.start=n.width,u(c),g||n.charPositions.push(0)),x==="\r"||x===`
468
- `)n.width!==0&&l();else if(!g){let C=_.xAdvance+(_.kerning[o]||0)+f;n.width+=C,n.spaceWidth=C,n.spacesIndex.push(n.charPositions.length),n.chars.push(x)}}else{let T=_.kerning[o]||0,C=_.xAdvance+T+f;c.positions[c.index++]=c.width+T,c.chars.push(x),c.width+=C}o=x}return l(),e.align==="center"?qB(s):e.align==="right"?jB(s):e.align==="justify"&&XB(s),s}function qB(r){for(let e=0;e<r.lines.length;e++){let t=r.lines[e],i=r.width/2-t.width/2;for(let s=0;s<t.charPositions.length;s++)t.charPositions[s]+=i}}function jB(r){for(let e=0;e<r.lines.length;e++){let t=r.lines[e],i=r.width-t.width;for(let s=0;s<t.charPositions.length;s++)t.charPositions[s]+=i}}function XB(r){let e=r.width;for(let t=0;t<r.lines.length;t++){let i=r.lines[t],s=0,n=i.spacesIndex[s++],o=0,a=i.spacesIndex.length,u=(e-i.width)/a;for(let l=0;l<i.charPositions.length;l++)l===n&&(n=i.spacesIndex[s++],o+=u),i.charPositions[l]+=o}}var Vm=p(()=>{"use strict"});function rw(r){if(r==="")return[];typeof r=="string"&&(r=[r]);let e=[];for(let t=0,i=r.length;t<i;t++){let s=r[t];if(Array.isArray(s)){if(s.length!==2)throw new Error(`[BitmapFont]: Invalid character range length, expecting 2 got ${s.length}.`);if(s[0].length===0||s[1].length===0)throw new Error("[BitmapFont]: Invalid character delimiter.");let n=s[0].charCodeAt(0),o=s[1].charCodeAt(0);if(o<n)throw new Error("[BitmapFont]: Invalid character range.");for(let a=n,c=o;a<=c;a++)e.push(String.fromCharCode(a))}else e.push(...Array.from(s))}if(e.length===0)throw new Error("[BitmapFont]: Empty set when resolving characters.");return e}var iw=p(()=>{"use strict"});var Al,Hm,sw,nw=p(()=>{Eo();ye();pe();sn();tn();tw();Vm();iw();Al=0,Hm=class{constructor(){this.ALPHA=[["a","z"],["A","Z"]," "],this.NUMERIC=[["0","9"]],this.ALPHANUMERIC=[["a","z"],["A","Z"],["0","9"]," "],this.ASCII=[[" ","~"]],this.defaultOptions={chars:this.ALPHANUMERIC,resolution:1,padding:4,skipKerning:!1,textureStyle:null}}getFont(e,t){let i=`${t.fontFamily}-bitmap`,s=!0;if(t._fill.fill&&!t._stroke)i+=t._fill.fill.styleKey,s=!1;else if(t._stroke||t.dropShadow){let o=t.styleKey;o=o.substring(0,o.lastIndexOf("-")),i=`${o}-bitmap`,s=!1}if(!Me.has(i)){let o=new zm({style:t,overrideFill:s,overrideSize:!0,...this.defaultOptions});Al++,Al>50&&N("BitmapText",`You have dynamically created ${Al} bitmap fonts, this can be inefficient. Try pre installing your font styles using \`BitmapFont.install({name:"style1", style})\``),o.once("destroy",()=>{Al--,Me.remove(i)}),Me.set(i,o)}let n=Me.get(i);return n.ensureCharacters?.(e),n}getLayout(e,t,i=!0){let s=this.getFont(e,t),n=Xe.graphemeSegmenter(e);return kl(n,t,s,i)}measureText(e,t,i=!0){return this.getLayout(e,t,i)}install(...e){let t=e[0];typeof t=="string"&&(t={name:t,style:e[1],chars:e[2]?.chars,resolution:e[2]?.resolution,padding:e[2]?.padding,skipKerning:e[2]?.skipKerning},z($,"BitmapFontManager.install(name, style, options) is deprecated, use BitmapFontManager.install({name, style, ...options})"));let i=t?.name;if(!i)throw new Error("[BitmapFontManager] Property `name` is required.");t={...this.defaultOptions,...t};let s=t.style,n=s instanceof ht?s:new ht(s),o=n._fill.fill!==null&&n._fill.fill!==void 0,a=new zm({style:n,overrideFill:o,skipKerning:t.skipKerning,padding:t.padding,resolution:t.resolution,overrideSize:!1,textureStyle:t.textureStyle}),c=rw(t.chars);return a.ensureCharacters(c.join("")),Me.set(`${i}-bitmap`,a),a.once("destroy",()=>Me.remove(`${i}-bitmap`)),a}uninstall(e){let t=`${e}-bitmap`,i=Me.get(t);i&&i.destroy()}},sw=new Hm});function ow(r,e){e.groupTransform=r.groupTransform,e.groupColorAlpha=r.groupColorAlpha,e.groupColor=r.groupColor,e.groupBlendMode=r.groupBlendMode,e.globalDisplayStatus=r.globalDisplayStatus,e.groupTransform=r.groupTransform,e.localDisplayStatus=r.localDisplayStatus,e.groupAlpha=r.groupAlpha,e._roundPixels=r._roundPixels}var Wm,Xo,aw=p(()=>{Eo();B();WT();sn();QT();nw();Vm();Wm=class extends vl{destroy(){this.context.customShader&&this.context.customShader.destroy(),super.destroy()}},Xo=class{constructor(e){this._renderer=e,this._renderer.renderableGC.addManagedHash(this,"_gpuBitmapText")}validateRenderable(e){let t=this._getGpuBitmapText(e);return e._didTextUpdate&&(e._didTextUpdate=!1,this._updateContext(e,t)),this._renderer.renderPipes.graphics.validateRenderable(t)}addRenderable(e,t){let i=this._getGpuBitmapText(e);ow(e,i),e._didTextUpdate&&(e._didTextUpdate=!1,this._updateContext(e,i)),this._renderer.renderPipes.graphics.addRenderable(i,t),i.context.customShader&&this._updateDistanceField(e)}updateRenderable(e){let t=this._getGpuBitmapText(e);ow(e,t),this._renderer.renderPipes.graphics.updateRenderable(t),t.context.customShader&&this._updateDistanceField(e)}_updateContext(e,t){let{context:i}=t,s=sw.getFont(e.text,e._style);i.clear(),s.distanceField.type!=="none"&&(i.customShader||(i.customShader=new Cl(this._renderer.limits.maxBatchableTextures)));let n=Xe.graphemeSegmenter(e.text),o=e._style,a=s.baseLineOffset,c=kl(n,o,s,!0),u=0,l=o.padding,h=c.scale,f=c.width,d=c.height+c.offsetY;o._stroke&&(f+=o._stroke.width/h,d+=o._stroke.width/h),i.translate(-e._anchor._x*f-l,-e._anchor._y*d-l).scale(h,h);let m=s.applyFillAsTint?o._fill.color:16777215;for(let x=0;x<c.lines.length;x++){let g=c.lines[x];for(let _=0;_<g.charPositions.length;_++){let y=n[u++],S=s.chars[y];S?.texture&&i.texture(S.texture,m||"black",Math.round(g.charPositions[_]+S.xOffset),Math.round(a+S.yOffset))}a+=s.lineHeight}}_getGpuBitmapText(e){return e._gpuData[this._renderer.uid]||this.initGpuText(e)}initGpuText(e){let t=new Wm;return e._gpuData[this._renderer.uid]=t,this._updateContext(e,t),t}_updateDistanceField(e){let t=this._getGpuBitmapText(e).context,i=e._style.fontFamily,s=Me.get(`${i}-bitmap`),{a:n,b:o,c:a,d:c}=e.groupTransform,u=Math.sqrt(n*n+o*o),l=Math.sqrt(a*a+c*c),h=(Math.abs(u)+Math.abs(l))/2,f=s.baseRenderedFontSize/e._style.fontSize,d=h*s.distanceField.range*(1/f);t.customShader.resources.localUniforms.uniforms.uDistance=d}destroy(){this._renderer=null}};Xo.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"bitmapText"}});var $m=p(()=>{B();aw();O.add(Xo)});var Pl,cw=p(()=>{Ho();Pl=class extends nr{constructor(e){super(),this.generatingTexture=!1,this._renderer=e,e.runners.resolutionChange.add(this)}resolutionChange(){let e=this.renderable;e._autoResolution&&e.onViewUpdate()}destroy(){this._renderer.htmlText.returnTexturePromise(this.texturePromise),this.texturePromise=null,this._renderer=null}}});var Yo,uw=p(()=>{B();le();pm();cw();Yo=class{constructor(e){this._renderer=e}validateRenderable(e){return e._didTextUpdate}addRenderable(e,t){let i=this._getGpuText(e);e._didTextUpdate&&(this._updateGpuText(e).catch(s=>{console.error(s)}),e._didTextUpdate=!1,Vo(i,e)),this._renderer.renderPipes.batch.addToBatch(i,t)}updateRenderable(e){let t=this._getGpuText(e);t._batcher.updateElement(t)}async _updateGpuText(e){e._didTextUpdate=!1;let t=this._getGpuText(e);if(t.generatingTexture)return;t.texturePromise&&(this._renderer.htmlText.returnTexturePromise(t.texturePromise),t.texturePromise=null),t.generatingTexture=!0,e._resolution=e._autoResolution?this._renderer.resolution:e.resolution;let i=this._renderer.htmlText.getTexturePromise(e);t.texturePromise=i,t.texture=await i;let s=e.renderGroup||e.parentRenderGroup;s&&(s.structureDidChange=!0),t.generatingTexture=!1,Vo(t,e)}_getGpuText(e){return e._gpuData[this._renderer.uid]||this.initGpuText(e)}initGpuText(e){let t=new Pl(this._renderer);return t.renderable=e,t.transform=e.groupTransform,t.texture=M.EMPTY,t.bounds={minX:0,maxX:1,minY:0,maxY:0},t.roundPixels=this._renderer._roundPixels|e._roundPixels,e._resolution=e._autoResolution?this._renderer.resolution:e.resolution,e._gpuData[this._renderer.uid]=t,t}destroy(){this._renderer=null}};Yo.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"htmlText"}});function lw(){let{userAgent:r}=W.get().getNavigator();return/^((?!chrome|android).)*safari/i.test(r)}var hw=p(()=>{Ce()});var dw,fw,on,qm=p(()=>{"use strict";dw="http://www.w3.org/2000/svg",fw="http://www.w3.org/1999/xhtml",on=class{constructor(){this.svgRoot=document.createElementNS(dw,"svg"),this.foreignObject=document.createElementNS(dw,"foreignObject"),this.domElement=document.createElementNS(fw,"div"),this.styleElement=document.createElementNS(fw,"style"),this.image=new Image;let{foreignObject:e,svgRoot:t,styleElement:i,domElement:s}=this;e.setAttribute("width","10000"),e.setAttribute("height","10000"),e.style.overflow="hidden",t.appendChild(e),e.appendChild(i),e.appendChild(s)}}});function gw(r){let e=r._stroke,t=r._fill,s=[`div { ${[`color: ${q.shared.setValue(t.color).toHex()}`,`font-size: ${r.fontSize}px`,`font-family: ${r.fontFamily}`,`font-weight: ${r.fontWeight}`,`font-style: ${r.fontStyle}`,`font-variant: ${r.fontVariant}`,`letter-spacing: ${r.letterSpacing}px`,`text-align: ${r.align}`,`padding: ${r.padding}px`,`white-space: ${r.whiteSpace==="pre"&&r.wordWrap?"pre-wrap":r.whiteSpace}`,...r.lineHeight?[`line-height: ${r.lineHeight}px`]:[],...r.wordWrap?[`word-wrap: ${r.breakWords?"break-all":"break-word"}`,`max-width: ${r.wordWrapWidth}px`]:[],...e?[_w(e)]:[],...r.dropShadow?[xw(r.dropShadow)]:[],...r.cssOverrides].join(";")} }`];return YB(r.tagStyles,s),s.join(" ")}function xw(r){let e=q.shared.setValue(r.color).setAlpha(r.alpha).toHexa(),t=Math.round(Math.cos(r.angle)*r.distance),i=Math.round(Math.sin(r.angle)*r.distance),s=`${t}px ${i}px`;return r.blur>0?`text-shadow: ${s} ${r.blur}px ${e}`:`text-shadow: ${s} ${e}`}function _w(r){return[`-webkit-text-stroke-width: ${r.width}px`,`-webkit-text-stroke-color: ${q.shared.setValue(r.color).toHex()}`,`text-stroke-width: ${r.width}px`,`text-stroke-color: ${q.shared.setValue(r.color).toHex()}`,"paint-order: stroke"].join(";")}function YB(r,e){for(let t in r){let i=r[t],s=[];for(let n in i)pw[n]?s.push(pw[n](i[n])):mw[n]&&s.push(mw[n].replace("{{VALUE}}",i[n]));e.push(`${t} { ${s.join(";")} }`)}}var mw,pw,bw=p(()=>{He();mw={fontSize:"font-size: {{VALUE}}px",fontFamily:"font-family: {{VALUE}}",fontWeight:"font-weight: {{VALUE}}",fontStyle:"font-style: {{VALUE}}",fontVariant:"font-variant: {{VALUE}}",letterSpacing:"letter-spacing: {{VALUE}}px",align:"text-align: {{VALUE}}",padding:"padding: {{VALUE}}px",whiteSpace:"white-space: {{VALUE}}",lineHeight:"line-height: {{VALUE}}px",wordWrapWidth:"max-width: {{VALUE}}px"},pw={fill:r=>`color: ${q.shared.setValue(r).toHex()}`,breakWords:r=>`word-wrap: ${r?"break-all":"break-word"}`,stroke:_w,dropShadow:xw}});var Bl,yw=p(()=>{pe();tn();bw();Bl=class r extends ht{constructor(e={}){super(e),this._cssOverrides=[],this.cssOverrides=e.cssOverrides??[],this.tagStyles=e.tagStyles??{}}set cssOverrides(e){this._cssOverrides=e instanceof Array?e:[e],this.update()}get cssOverrides(){return this._cssOverrides}update(){this._cssStyle=null,super.update()}clone(){return new r({align:this.align,breakWords:this.breakWords,dropShadow:this.dropShadow?{...this.dropShadow}:null,fill:this._fill,fontFamily:this.fontFamily,fontSize:this.fontSize,fontStyle:this.fontStyle,fontVariant:this.fontVariant,fontWeight:this.fontWeight,letterSpacing:this.letterSpacing,lineHeight:this.lineHeight,padding:this.padding,stroke:this._stroke,whiteSpace:this.whiteSpace,wordWrap:this.wordWrap,wordWrapWidth:this.wordWrapWidth,cssOverrides:this.cssOverrides,tagStyles:{...this.tagStyles}})}get cssStyle(){return this._cssStyle||(this._cssStyle=gw(this)),this._cssStyle}addOverride(...e){let t=e.filter(i=>!this.cssOverrides.includes(i));t.length>0&&(this.cssOverrides.push(...t),this.update())}removeOverride(...e){let t=e.filter(i=>this.cssOverrides.includes(i));t.length>0&&(this.cssOverrides=this.cssOverrides.filter(i=>!t.includes(i)),this.update())}set fill(e){typeof e!="string"&&typeof e!="number"&&N("[HTMLTextStyle] only color fill is not supported by HTMLText"),super.fill=e}set stroke(e){e&&typeof e!="string"&&typeof e!="number"&&N("[HTMLTextStyle] only color stroke is not supported by HTMLText"),super.stroke=e}}});function Tw(r,e){let t=e.fontFamily,i=[],s={},n=/font-family:([^;"\s]+)/g,o=r.match(n);function a(c){s[c]||(i.push(c),s[c]=!0)}if(Array.isArray(t))for(let c=0;c<t.length;c++)a(t[c]);else a(t);o&&o.forEach(c=>{let u=c.split(":")[1].trim();a(u)});for(let c in e.tagStyles){let u=e.tagStyles[c].fontFamily;a(u)}return i}var ww=p(()=>{"use strict"});async function Sw(r){let t=await(await W.get().fetch(r)).blob(),i=new FileReader;return await new Promise((n,o)=>{i.onloadend=()=>n(i.result),i.onerror=o,i.readAsDataURL(t)})}var vw=p(()=>{Ce()});async function jm(r,e){let t=await Sw(e);return`@font-face {
469
- font-family: "${r.fontFamily}";
470
- src: url('${t}');
471
- font-weight: ${r.fontWeight};
472
- font-style: ${r.fontStyle};
473
- }`}var Cw=p(()=>{vw()});async function Ew(r,e,t){let i=r.filter(s=>Me.has(`${s}-and-url`)).map((s,n)=>{if(!Rl.has(s)){let{url:o}=Me.get(`${s}-and-url`);n===0?Rl.set(s,jm({fontWeight:e.fontWeight,fontStyle:e.fontStyle,fontFamily:s},o)):Rl.set(s,jm({fontWeight:t.fontWeight,fontStyle:t.fontStyle,fontFamily:s},o))}return Rl.get(s)});return(await Promise.all(i)).join(`
474
- `)}var Rl,kw=p(()=>{Eo();Cw();Rl=new Map});function Aw(r,e,t,i,s){let{domElement:n,styleElement:o,svgRoot:a}=s;n.innerHTML=`<style>${e.cssStyle}</style><div style='padding:0;'>${r}</div>`,n.setAttribute("style",`transform: scale(${t});transform-origin: top left; display: inline-block`),o.textContent=i;let{width:c,height:u}=s.image;return a.setAttribute("width",c.toString()),a.setAttribute("height",u.toString()),new XMLSerializer().serializeToString(a)}var Pw=p(()=>{"use strict"});function Bw(r,e){let t=yt.getOptimalCanvasAndContext(r.width,r.height,e),{context:i}=t;return i.clearRect(0,0,r.width,r.height),i.drawImage(r,0,0),t}var Rw=p(()=>{rn()});function Dw(r,e,t){return new Promise(async i=>{t&&await new Promise(s=>setTimeout(s,100)),r.onload=()=>{i()},r.src=`data:image/svg+xml;charset=utf8,${encodeURIComponent(e)}`,r.crossOrigin="anonymous"})}var Mw=p(()=>{"use strict"});function Fw(r,e,t,i){i||(i=Iw||(Iw=new on));let{domElement:s,styleElement:n,svgRoot:o}=i;s.innerHTML=`<style>${e.cssStyle};</style><div style='padding:0'>${r}</div>`,s.setAttribute("style","transform-origin: top left; display: inline-block"),t&&(n.textContent=t),document.body.appendChild(o);let a=s.getBoundingClientRect();o.remove();let c=e.padding*2;return{width:a.width-c,height:a.height-c}}var Iw,Uw=p(()=>{qm()});var Ko,Ow=p(()=>{B();rn();Hr();ir();hw();pe();br();Dm();qm();yw();ww();kw();Pw();Rw();Mw();Uw();Ko=class{constructor(e){this._renderer=e,this._createCanvas=e.type===Ie.WEBGPU}getTexture(e){return this.getTexturePromise(e)}getTexturePromise(e){return this._buildTexturePromise(e)}async _buildTexturePromise(e){let{text:t,style:i,resolution:s,textureStyle:n}=e,o=me.get(on),a=Tw(t,i),c=await Ew(a,i,Bl.defaultTextStyle),u=Fw(t,i,c,o),l=Math.ceil(Math.ceil(Math.max(1,u.width)+i.padding*2)*s),h=Math.ceil(Math.ceil(Math.max(1,u.height)+i.padding*2)*s),f=o.image,d=2;f.width=(l|0)+d,f.height=(h|0)+d;let m=Aw(t,i,s,c,o);await Dw(f,m,lw()&&a.length>0);let x=f,g;this._createCanvas&&(g=Bw(f,s));let _=wl(g?g.canvas:x,f.width-d,f.height-d,s);return n&&(_.source.style=n),this._createCanvas&&(this._renderer.texture.initSource(_.source),yt.returnCanvasAndContext(g)),me.return(o),_}returnTexturePromise(e){e.then(t=>{this._cleanUp(t)}).catch(()=>{N("HTMLTextSystem: Failed to clean texture")})}_cleanUp(e){Te.returnTexture(e,!0),e.source.resource=null,e.source.uploadMethodId="unknown"}destroy(){this._renderer=null}};Ko.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"htmlText"}});var Xm=p(()=>{B();uw();Ow();O.add(Ko);O.add(Yo)});var Gw,an,Dl=p(()=>{Yr();Cr();Os();ye();Gw=class Nw extends At{constructor(...e){let t=e[0]??{};t instanceof Float32Array&&(z($,"use new MeshGeometry({ positions, uvs, indices }) instead"),t={positions:t,uvs:e[1],indices:e[2]}),t={...Nw.defaultOptions,...t};let i=t.positions||new Float32Array([0,0,1,0,1,1,0,1]),s=t.uvs;s||(t.positions?s=new Float32Array(i.length):s=new Float32Array([0,0,1,0,1,1,0,1]));let n=t.indices||new Uint32Array([0,1,2,0,2,3]),o=t.shrinkBuffersToFit,a=new Ee({data:i,label:"attribute-mesh-positions",shrinkToFit:o,usage:Q.VERTEX|Q.COPY_DST}),c=new Ee({data:s,label:"attribute-mesh-uvs",shrinkToFit:o,usage:Q.VERTEX|Q.COPY_DST}),u=new Ee({data:n,label:"index-mesh-buffer",shrinkToFit:o,usage:Q.INDEX|Q.COPY_DST});super({attributes:{aPosition:{buffer:a,format:"float32x2",stride:2*4,offset:0},aUV:{buffer:c,format:"float32x2",stride:2*4,offset:0}},indexBuffer:u,topology:t.topology}),this.batchMode="auto"}get positions(){return this.attributes.aPosition.buffer.data}set positions(e){this.attributes.aPosition.buffer.data=e}get uvs(){return this.attributes.aUV.buffer.data}set uvs(e){this.attributes.aUV.buffer.data=e}get indices(){return this.indexBuffer.data}set indices(e){this.indexBuffer.data=e}};Gw.defaultOptions={topology:"triangle-list",shrinkBuffersToFit:!1};an=Gw});var es,Lw,cn,un=p(()=>{"use strict";es={name:"local-uniform-bit",vertex:{header:`
475
-
476
- struct LocalUniforms {
477
- uTransformMatrix:mat3x3<f32>,
478
- uColor:vec4<f32>,
479
- uRound:f32,
480
- }
481
-
482
- @group(1) @binding(0) var<uniform> localUniforms : LocalUniforms;
483
- `,main:`
484
- vColor *= localUniforms.uColor;
485
- modelMatrix *= localUniforms.uTransformMatrix;
486
- `,end:`
487
- if(localUniforms.uRound == 1)
488
- {
489
- vPosition = vec4(roundPixels(vPosition.xy, globalUniforms.uResolution), vPosition.zw);
490
- }
491
- `}},Lw={...es,vertex:{...es.vertex,header:es.vertex.header.replace("group(1)","group(2)")}},cn={name:"local-uniform-bit",vertex:{header:`
492
-
493
- uniform mat3 uTransformMatrix;
494
- uniform vec4 uColor;
495
- uniform float uRound;
496
- `,main:`
497
- vColor *= uColor;
498
- modelMatrix = uTransformMatrix;
499
- `,end:`
500
- if(uRound == 1.)
501
- {
502
- gl_Position.xy = roundPixels(gl_Position.xy, uResolution);
503
- }
504
- `}}});var zw,Vw,Hw=p(()=>{"use strict";zw={name:"tiling-bit",vertex:{header:`
505
- struct TilingUniforms {
506
- uMapCoord:mat3x3<f32>,
507
- uClampFrame:vec4<f32>,
508
- uClampOffset:vec2<f32>,
509
- uTextureTransform:mat3x3<f32>,
510
- uSizeAnchor:vec4<f32>
511
- };
512
-
513
- @group(2) @binding(0) var<uniform> tilingUniforms: TilingUniforms;
514
- @group(2) @binding(1) var uTexture: texture_2d<f32>;
515
- @group(2) @binding(2) var uSampler: sampler;
516
- `,main:`
517
- uv = (tilingUniforms.uTextureTransform * vec3(uv, 1.0)).xy;
518
-
519
- position = (position - tilingUniforms.uSizeAnchor.zw) * tilingUniforms.uSizeAnchor.xy;
520
- `},fragment:{header:`
521
- struct TilingUniforms {
522
- uMapCoord:mat3x3<f32>,
523
- uClampFrame:vec4<f32>,
524
- uClampOffset:vec2<f32>,
525
- uTextureTransform:mat3x3<f32>,
526
- uSizeAnchor:vec4<f32>
527
- };
528
-
529
- @group(2) @binding(0) var<uniform> tilingUniforms: TilingUniforms;
530
- @group(2) @binding(1) var uTexture: texture_2d<f32>;
531
- @group(2) @binding(2) var uSampler: sampler;
532
- `,main:`
533
-
534
- var coord = vUV + ceil(tilingUniforms.uClampOffset - vUV);
535
- coord = (tilingUniforms.uMapCoord * vec3(coord, 1.0)).xy;
536
- var unclamped = coord;
537
- coord = clamp(coord, tilingUniforms.uClampFrame.xy, tilingUniforms.uClampFrame.zw);
538
-
539
- var bias = 0.;
540
-
541
- if(unclamped.x == coord.x && unclamped.y == coord.y)
542
- {
543
- bias = -32.;
544
- }
545
-
546
- outColor = textureSampleBias(uTexture, uSampler, coord, bias);
547
- `}},Vw={name:"tiling-bit",vertex:{header:`
548
- uniform mat3 uTextureTransform;
549
- uniform vec4 uSizeAnchor;
550
-
551
- `,main:`
552
- uv = (uTextureTransform * vec3(aUV, 1.0)).xy;
553
-
554
- position = (position - uSizeAnchor.zw) * uSizeAnchor.xy;
555
- `},fragment:{header:`
556
- uniform sampler2D uTexture;
557
- uniform mat3 uMapCoord;
558
- uniform vec4 uClampFrame;
559
- uniform vec2 uClampOffset;
560
- `,main:`
561
-
562
- vec2 coord = vUV + ceil(uClampOffset - vUV);
563
- coord = (uMapCoord * vec3(coord, 1.0)).xy;
564
- vec2 unclamped = coord;
565
- coord = clamp(coord, uClampFrame.xy, uClampFrame.zw);
566
-
567
- outColor = texture(uTexture, coord, unclamped == coord ? 0.0 : -32.0);// lod-bias very negative to force lod 0
568
-
569
- `}}});var Ym,Km,Ml,Ww=p(()=>{te();Qr();un();Zr();Ot();it();le();Hw();Ml=class extends ke{constructor(){Ym??(Ym=Jt({name:"tiling-sprite-shader",bits:[es,zw,tr]})),Km??(Km=er({name:"tiling-sprite-shader",bits:[cn,Vw,rr]}));let e=new ce({uMapCoord:{value:new R,type:"mat3x3<f32>"},uClampFrame:{value:new Float32Array([0,0,1,1]),type:"vec4<f32>"},uClampOffset:{value:new Float32Array([0,0]),type:"vec2<f32>"},uTextureTransform:{value:new R,type:"mat3x3<f32>"},uSizeAnchor:{value:new Float32Array([100,100,.5,.5]),type:"vec4<f32>"}});super({glProgram:Km,gpuProgram:Ym,resources:{localUniforms:new ce({uTransformMatrix:{value:new R,type:"mat3x3<f32>"},uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uRound:{value:0,type:"f32"}}),tilingUniforms:e,uTexture:M.EMPTY.source,uSampler:M.EMPTY.source.style}})}updateUniforms(e,t,i,s,n,o){let a=this.resources.tilingUniforms,c=o.width,u=o.height,l=o.textureMatrix,h=a.uniforms.uTextureTransform;h.set(i.a*c/e,i.b*c/t,i.c*u/e,i.d*u/t,i.tx/e,i.ty/t),h.invert(),a.uniforms.uMapCoord=l.mapCoord,a.uniforms.uClampFrame=l.uClampFrame,a.uniforms.uClampOffset=l.uClampOffset,a.uniforms.uTextureTransform=h,a.uniforms.uSizeAnchor[0]=e,a.uniforms.uSizeAnchor[1]=t,a.uniforms.uSizeAnchor[2]=s,a.uniforms.uSizeAnchor[3]=n,o&&(this.resources.uTexture=o.source,this.resources.uSampler=o.source.style)}}});var Il,$w=p(()=>{Dl();Il=class extends an{constructor(){super({positions:new Float32Array([0,0,1,0,1,1,0,1]),uvs:new Float32Array([0,0,1,0,1,1,0,1]),indices:new Uint32Array([0,1,2,0,2,3])})}}});function qw(r,e){let t=r.anchor.x,i=r.anchor.y;e[0]=-t*r.width,e[1]=-i*r.height,e[2]=(1-t)*r.width,e[3]=-i*r.height,e[4]=(1-t)*r.width,e[5]=(1-i)*r.height,e[6]=-t*r.width,e[7]=(1-i)*r.height}var jw=p(()=>{"use strict"});function Xw(r,e,t,i){let s=0,n=r.length/(e||2),o=i.a,a=i.b,c=i.c,u=i.d,l=i.tx,h=i.ty;for(t*=e;s<n;){let f=r[t],d=r[t+1];r[t]=o*f+c*d+l,r[t+1]=a*f+u*d+h,t+=e,s++}}var Yw=p(()=>{"use strict"});function Kw(r,e){let t=r.texture,i=t.frame.width,s=t.frame.height,n=0,o=0;r.applyAnchorToTexture&&(n=r.anchor.x,o=r.anchor.y),e[0]=e[6]=-n,e[2]=e[4]=1-n,e[1]=e[3]=-o,e[5]=e[7]=1-o;let a=R.shared;a.copyFrom(r._tileTransform.matrix),a.tx/=r.width,a.ty/=r.height,a.invert(),a.scale(r.width/i,r.height/s),Xw(e,2,0,a)}var Qw=p(()=>{te();Yw()});var Fl,Qm,Qo,Zw=p(()=>{B();Ao();Gt();ir();Ys();ol();Dl();Ww();$w();jw();Qw();Fl=new Il,Qm=class{constructor(){this.canBatch=!0,this.geometry=new an({indices:Fl.indices.slice(),positions:Fl.positions.slice(),uvs:Fl.uvs.slice()})}destroy(){this.geometry.destroy(),this.shader?.destroy()}},Qo=class{constructor(e){this._state=Pe.default2d,this._renderer=e}validateRenderable(e){let t=this._getTilingSpriteData(e),i=t.canBatch;this._updateCanBatch(e);let s=t.canBatch;if(s&&s===i){let{batchableMesh:n}=t;return!n._batcher.checkAndUpdateTexture(n,e.texture)}return i!==s}addRenderable(e,t){let i=this._renderer.renderPipes.batch;this._updateCanBatch(e);let s=this._getTilingSpriteData(e),{geometry:n,canBatch:o}=s;if(o){s.batchableMesh||(s.batchableMesh=new Jr);let a=s.batchableMesh;e.didViewUpdate&&(this._updateBatchableMesh(e),a.geometry=n,a.renderable=e,a.transform=e.groupTransform,a.setTexture(e._texture)),a.roundPixels=this._renderer._roundPixels|e._roundPixels,i.addToBatch(a,t)}else i.break(t),s.shader||(s.shader=new Ml),this.updateRenderable(e),t.add(e)}execute(e){let{shader:t}=this._getTilingSpriteData(e);t.groups[0]=this._renderer.globalUniforms.bindGroup;let i=t.resources.localUniforms.uniforms;i.uTransformMatrix=e.groupTransform,i.uRound=this._renderer._roundPixels|e._roundPixels,sr(e.groupColorAlpha,i.uColor,0),this._state.blendMode=vr(e.groupBlendMode,e.texture._source),this._renderer.encoder.draw({geometry:Fl,shader:t,state:this._state})}updateRenderable(e){let t=this._getTilingSpriteData(e),{canBatch:i}=t;if(i){let{batchableMesh:s}=t;e.didViewUpdate&&this._updateBatchableMesh(e),s._batcher.updateElement(s)}else if(e.didViewUpdate){let{shader:s}=t;s.updateUniforms(e.width,e.height,e._tileTransform.matrix,e.anchor.x,e.anchor.y,e.texture)}}_getTilingSpriteData(e){return e._gpuData[this._renderer.uid]||this._initTilingSpriteData(e)}_initTilingSpriteData(e){let t=new Qm;return t.renderable=e,e._gpuData[this._renderer.uid]=t,t}_updateBatchableMesh(e){let t=this._getTilingSpriteData(e),{geometry:i}=t,s=e.texture.source.style;s.addressMode!=="repeat"&&(s.addressMode="repeat",s.update()),Kw(e,i.uvs),qw(e,i.positions)}destroy(){this._renderer=null}_updateCanBatch(e){let t=this._getTilingSpriteData(e),i=e.texture,s=!0;return this._renderer.type===Ie.WEBGL&&(s=this._renderer.context.supports.nonPowOf2wrapping),t.canBatch=i.textureMatrix.isSimple&&(s||i.source.isPowerOfTwo),t.canBatch}};Qo.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"tilingSprite"}});var Zm=p(()=>{B();Zw();O.add(Qo)});var Jw,tS,rS=p(()=>{ye();Dl();Jw=class eS extends an{constructor(...e){super({});let t=e[0]??{};typeof t=="number"&&(z($,"PlaneGeometry constructor changed please use { width, height, verticesX, verticesY } instead"),t={width:t,height:e[1],verticesX:e[2],verticesY:e[3]}),this.build(t)}build(e){e={...eS.defaultOptions,...e},this.verticesX=this.verticesX??e.verticesX,this.verticesY=this.verticesY??e.verticesY,this.width=this.width??e.width,this.height=this.height??e.height;let t=this.verticesX*this.verticesY,i=[],s=[],n=[],o=this.verticesX-1,a=this.verticesY-1,c=this.width/o,u=this.height/a;for(let h=0;h<t;h++){let f=h%this.verticesX,d=h/this.verticesX|0;i.push(f*c,d*u),s.push(f/o,d/a)}let l=o*a;for(let h=0;h<l;h++){let f=h%o,d=h/o|0,m=d*this.verticesX+f,x=d*this.verticesX+f+1,g=(d+1)*this.verticesX+f,_=(d+1)*this.verticesX+f+1;n.push(m,x,g,x,_,g)}this.buffers[0].data=new Float32Array(i),this.buffers[1].data=new Float32Array(s),this.indexBuffer.data=new Uint32Array(n),this.buffers[0].update(),this.buffers[1].update(),this.indexBuffer.update()}};Jw.defaultOptions={width:100,height:100,verticesX:10,verticesY:10};tS=Jw});var iS,nS,oS=p(()=>{rS();iS=class sS extends tS{constructor(e={}){e={...sS.defaultOptions,...e},super({width:e.width,height:e.height,verticesX:4,verticesY:4}),this.update(e)}update(e){this.width=e.width??this.width,this.height=e.height??this.height,this._originalWidth=e.originalWidth??this._originalWidth,this._originalHeight=e.originalHeight??this._originalHeight,this._leftWidth=e.leftWidth??this._leftWidth,this._rightWidth=e.rightWidth??this._rightWidth,this._topHeight=e.topHeight??this._topHeight,this._bottomHeight=e.bottomHeight??this._bottomHeight,this._anchorX=e.anchor?.x,this._anchorY=e.anchor?.y,this.updateUvs(),this.updatePositions()}updatePositions(){let e=this.positions,{width:t,height:i,_leftWidth:s,_rightWidth:n,_topHeight:o,_bottomHeight:a,_anchorX:c,_anchorY:u}=this,l=s+n,h=t>l?1:t/l,f=o+a,d=i>f?1:i/f,m=Math.min(h,d),x=c*t,g=u*i;e[0]=e[8]=e[16]=e[24]=-x,e[2]=e[10]=e[18]=e[26]=s*m-x,e[4]=e[12]=e[20]=e[28]=t-n*m-x,e[6]=e[14]=e[22]=e[30]=t-x,e[1]=e[3]=e[5]=e[7]=-g,e[9]=e[11]=e[13]=e[15]=o*m-g,e[17]=e[19]=e[21]=e[23]=i-a*m-g,e[25]=e[27]=e[29]=e[31]=i-g,this.getBuffer("aPosition").update()}updateUvs(){let e=this.uvs;e[0]=e[8]=e[16]=e[24]=0,e[1]=e[3]=e[5]=e[7]=0,e[6]=e[14]=e[22]=e[30]=1,e[25]=e[27]=e[29]=e[31]=1;let t=1/this._originalWidth,i=1/this._originalHeight;e[2]=e[10]=e[18]=e[26]=t*this._leftWidth,e[9]=e[11]=e[13]=e[15]=i*this._topHeight,e[4]=e[12]=e[20]=e[28]=1-t*this._rightWidth,e[17]=e[19]=e[21]=e[23]=1-i*this._bottomHeight,this.getBuffer("aUV").update()}};iS.defaultOptions={width:100,height:100,leftWidth:10,topHeight:10,rightWidth:10,bottomHeight:10,originalWidth:100,originalHeight:100};nS=iS});var Jm,Zo,aS=p(()=>{B();ol();oS();Jm=class extends Jr{constructor(){super(),this.geometry=new nS}destroy(){this.geometry.destroy()}},Zo=class{constructor(e){this._renderer=e}addRenderable(e,t){let i=this._getGpuSprite(e);e.didViewUpdate&&this._updateBatchableSprite(e,i),this._renderer.renderPipes.batch.addToBatch(i,t)}updateRenderable(e){let t=this._getGpuSprite(e);e.didViewUpdate&&this._updateBatchableSprite(e,t),t._batcher.updateElement(t)}validateRenderable(e){let t=this._getGpuSprite(e);return!t._batcher.checkAndUpdateTexture(t,e._texture)}_updateBatchableSprite(e,t){t.geometry.update(e),t.setTexture(e._texture)}_getGpuSprite(e){return e._gpuData[this._renderer.uid]||this._initGPUSprite(e)}_initGPUSprite(e){let t=e._gpuData[this._renderer.uid]=new Jm,i=t;return i.renderable=e,i.transform=e.groupTransform,i.texture=e._texture,i.roundPixels=this._renderer._roundPixels|e._roundPixels,e.didViewUpdate||this._updateBatchableSprite(e,i),t}destroy(){this._renderer=null}};Zo.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"nineSliceSprite"}});var ep=p(()=>{B();aS();O.add(Zo)});var Jo,cS=p(()=>{B();Jo=class{constructor(e){this._renderer=e}push(e,t,i){this._renderer.renderPipes.batch.break(i),i.add({renderPipeId:"filter",canBundle:!1,action:"pushFilter",container:t,filterEffect:e})}pop(e,t,i){this._renderer.renderPipes.batch.break(i),i.add({renderPipeId:"filter",action:"popFilter",canBundle:!1})}execute(e){e.action==="pushFilter"?this._renderer.filter.push(e):e.action==="popFilter"&&this._renderer.filter.pop()}destroy(){this._renderer=null}};Jo.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"filter"}});function uS(r,e){e.clear();let t=e.matrix;for(let i=0;i<r.length;i++){let s=r[i];s.globalDisplayStatus<7||(e.matrix=s.worldTransform,e.addBounds(s.bounds))}return e.matrix=t,e}var lS=p(()=>{"use strict"});var KB,tp,ea,hS=p(()=>{B();te();Xr();Os();it();le();Hr();ir();at();lS();pe();KB=new At({attributes:{aPosition:{buffer:new Float32Array([0,0,1,0,1,1,0,1]),format:"float32x2",stride:2*4,offset:0}},indexBuffer:new Uint32Array([0,1,2,0,2,3])}),tp=class{constructor(){this.skip=!1,this.inputTexture=null,this.backTexture=null,this.filters=null,this.bounds=new ae,this.container=null,this.blendRequired=!1,this.outputRenderSurface=null,this.outputOffset={x:0,y:0},this.globalFrame={x:0,y:0,width:0,height:0}}},ea=class{constructor(e){this._filterStackIndex=0,this._filterStack=[],this._filterGlobalUniforms=new ce({uInputSize:{value:new Float32Array(4),type:"vec4<f32>"},uInputPixel:{value:new Float32Array(4),type:"vec4<f32>"},uInputClamp:{value:new Float32Array(4),type:"vec4<f32>"},uOutputFrame:{value:new Float32Array(4),type:"vec4<f32>"},uGlobalFrame:{value:new Float32Array(4),type:"vec4<f32>"},uOutputTexture:{value:new Float32Array(4),type:"vec4<f32>"}}),this._globalFilterBindGroup=new Ne({}),this.renderer=e}get activeBackTexture(){return this._activeFilterData?.backTexture}push(e){let t=this.renderer,i=e.filterEffect.filters,s=this._pushFilterData();s.skip=!1,s.filters=i,s.container=e.container,s.outputRenderSurface=t.renderTarget.renderSurface;let n=t.renderTarget.renderTarget.colorTexture.source,o=n.resolution,a=n.antialias;if(i.length===0){s.skip=!0;return}let c=s.bounds;if(e.renderables?uS(e.renderables,c):e.filterEffect.filterArea?(c.clear(),c.addRect(e.filterEffect.filterArea),c.applyMatrix(e.container.worldTransform)):e.container.getFastGlobalBounds(!0,c),e.container){let x=(e.container.renderGroup||e.container.parentRenderGroup).cacheToLocalTransform;x&&c.applyMatrix(x)}if(this._calculateFilterBounds(s,t.renderTarget.rootViewPort,a,o,1),s.skip)return;let u=this._getPreviousFilterData(),l=o,h=0,f=0;u&&(h=u.bounds.minX,f=u.bounds.minY,l=u.inputTexture.source._resolution),s.outputOffset.x=c.minX-h,s.outputOffset.y=c.minY-f;let d=s.globalFrame;if(d.x=h*l,d.y=f*l,d.width=n.width*l,d.height=n.height*l,s.backTexture=M.EMPTY,s.blendRequired){t.renderTarget.finishRenderPass();let m=t.renderTarget.getRenderTarget(s.outputRenderSurface);s.backTexture=this.getBackTexture(m,c,u?.bounds)}s.inputTexture=Te.getOptimalTexture(c.width,c.height,s.resolution,s.antialias),t.renderTarget.bind(s.inputTexture,!0),t.globalUniforms.push({offset:c})}generateFilteredTexture({texture:e,filters:t}){let i=this._pushFilterData();this._activeFilterData=i,i.skip=!1,i.filters=t;let s=e.source,n=s.resolution,o=s.antialias;if(t.length===0)return i.skip=!0,e;let a=i.bounds;if(a.addRect(e.frame),this._calculateFilterBounds(i,a.rectangle,o,n,0),i.skip)return e;let c=n,u=0,l=0;i.outputOffset.x=-a.minX,i.outputOffset.y=-a.minY;let h=i.globalFrame;h.x=u*c,h.y=l*c,h.width=s.width*c,h.height=s.height*c,i.outputRenderSurface=Te.getOptimalTexture(a.width,a.height,i.resolution,i.antialias),i.backTexture=M.EMPTY,i.inputTexture=e,this.renderer.renderTarget.finishRenderPass(),this._applyFiltersToTexture(i,!0);let d=i.outputRenderSurface;return d.source.alphaMode="premultiplied-alpha",d}pop(){let e=this.renderer,t=this._popFilterData();t.skip||(e.globalUniforms.pop(),e.renderTarget.finishRenderPass(),this._activeFilterData=t,this._applyFiltersToTexture(t,!1),t.blendRequired&&Te.returnTexture(t.backTexture),Te.returnTexture(t.inputTexture))}getBackTexture(e,t,i){let s=e.colorTexture.source._resolution,n=Te.getOptimalTexture(t.width,t.height,s,!1),o=t.minX,a=t.minY;i&&(o-=i.minX,a-=i.minY),o=Math.floor(o*s),a=Math.floor(a*s);let c=Math.ceil(t.width*s),u=Math.ceil(t.height*s);return this.renderer.renderTarget.copyToTexture(e,n,{x:o,y:a},{width:c,height:u},{x:0,y:0}),n}applyFilter(e,t,i,s){let n=this.renderer,o=this._activeFilterData,a=o.outputRenderSurface,c=this._filterGlobalUniforms,u=c.uniforms,l=u.uOutputFrame,h=u.uInputSize,f=u.uInputPixel,d=u.uInputClamp,m=u.uGlobalFrame,x=u.uOutputTexture;a===i?(l[0]=o.outputOffset.x,l[1]=o.outputOffset.y):(l[0]=0,l[1]=0),l[2]=t.frame.width,l[3]=t.frame.height,h[0]=t.source.width,h[1]=t.source.height,h[2]=1/h[0],h[3]=1/h[1],f[0]=t.source.pixelWidth,f[1]=t.source.pixelHeight,f[2]=1/f[0],f[3]=1/f[1],d[0]=.5*f[2],d[1]=.5*f[3],d[2]=t.frame.width*h[2]-.5*f[2],d[3]=t.frame.height*h[3]-.5*f[3],m[0]=o.globalFrame.x,m[1]=o.globalFrame.y,m[2]=o.globalFrame.width,m[3]=o.globalFrame.height,i instanceof M&&(i.source.resource=null);let g=this.renderer.renderTarget.getRenderTarget(i);if(n.renderTarget.bind(i,!!s),i instanceof M?(x[0]=i.frame.width,x[1]=i.frame.height):(x[0]=g.width,x[1]=g.height),x[2]=g.isRoot?-1:1,c.update(),n.renderPipes.uniformBatch){let _=n.renderPipes.uniformBatch.getUboResource(c);this._globalFilterBindGroup.setResource(_,0)}else this._globalFilterBindGroup.setResource(c,0);this._globalFilterBindGroup.setResource(t.source,1),this._globalFilterBindGroup.setResource(t.source.style,2),e.groups[0]=this._globalFilterBindGroup,n.encoder.draw({geometry:KB,shader:e,state:e._state,topology:"triangle-list"}),n.type===Ie.WEBGL&&n.renderTarget.finishRenderPass()}calculateSpriteMatrix(e,t){let i=this._activeFilterData,s=e.set(i.inputTexture._source.width,0,0,i.inputTexture._source.height,i.bounds.minX,i.bounds.minY),n=t.worldTransform.copyTo(R.shared),o=t.renderGroup||t.parentRenderGroup;return o&&o.cacheToLocalTransform&&n.prepend(o.cacheToLocalTransform),n.invert(),s.prepend(n),s.scale(1/t.texture.frame.width,1/t.texture.frame.height),s.translate(t.anchor.x,t.anchor.y),s}destroy(){}_applyFiltersToTexture(e,t){let i=e.inputTexture,s=e.bounds,n=e.filters;if(this._globalFilterBindGroup.setResource(i.source.style,2),this._globalFilterBindGroup.setResource(e.backTexture.source,3),n.length===1)n[0].apply(this,i,e.outputRenderSurface,t);else{let o=e.inputTexture,a=Te.getOptimalTexture(s.width,s.height,o.source._resolution,!1),c=a,u=0;for(u=0;u<n.length-1;++u){n[u].apply(this,o,c,!0);let h=o;o=c,c=h}n[u].apply(this,o,e.outputRenderSurface,t),Te.returnTexture(a)}}_calculateFilterBounds(e,t,i,s,n){let o=this.renderer,a=e.bounds,c=e.filters,u=1/0,l=0,h=!0,f=!1,d=!1,m=!0;for(let x=0;x<c.length;x++){let g=c[x];if(u=Math.min(u,g.resolution==="inherit"?s:g.resolution),l+=g.padding,g.antialias==="off"?h=!1:g.antialias==="inherit"&&h&&(h=i),g.clipToViewport||(m=!1),!!!(g.compatibleRenderers&o.type)){d=!1;break}if(g.blendRequired&&!(o.backBuffer?.useBackBuffer??!0)){N("Blend filter requires backBuffer on WebGL renderer to be enabled. Set `useBackBuffer: true` in the renderer options."),d=!1;break}d=g.enabled||d,f||(f=g.blendRequired)}if(!d){e.skip=!0;return}if(m&&a.fitBounds(0,t.width/s,0,t.height/s),a.scale(u).ceil().scale(1/u).pad((l|0)*n),!a.isPositive){e.skip=!0;return}e.antialias=h,e.resolution=u,e.blendRequired=f}_popFilterData(){return this._filterStackIndex--,this._filterStack[this._filterStackIndex]}_getPreviousFilterData(){let e,t=this._filterStackIndex-1;for(;t>1&&(t--,e=this._filterStack[t],!!e.skip););return e}_pushFilterData(){let e=this._filterStack[this._filterStackIndex];return e||(e=this._filterStack[this._filterStackIndex]=new tp),this._filterStackIndex++,e}};ea.extension={type:[b.WebGLSystem,b.WebGPUSystem],name:"filter"}});var rp=p(()=>{B();cS();hS();O.add(ea);O.add(Jo)});var QB={};var dS=p(()=>{W_();Jd();J_();tb();Uu();Hu();um();lm();mm();Gm();$m();Xm();Zm();ep();rp()});var ZB={};var mS=p(()=>{Jd();Uu();Hu();um();lm();mm();Gm();$m();Xm();Zm();ep();rp()});var gS,xS,_S=p(()=>{$i();Ns();Ot();Gt();gS=class ip extends ke{constructor(e){e={...ip.defaultOptions,...e},super(e),this.enabled=!0,this._state=Pe.for2d(),this.blendMode=e.blendMode,this.padding=e.padding,typeof e.antialias=="boolean"?this.antialias=e.antialias?"on":"off":this.antialias=e.antialias,this.resolution=e.resolution,this.blendRequired=e.blendRequired,this.clipToViewport=e.clipToViewport,this.addResource("uTexture",0,1)}apply(e,t,i,s){e.applyFilter(this,t,i,s)}get blendMode(){return this._state.blendMode}set blendMode(e){this._state.blendMode=e}static from(e){let{gpu:t,gl:i,...s}=e,n,o;return t&&(n=Bt.from(t)),i&&(o=Pt.from(i)),new ip({gpuProgram:n,glProgram:o,...s})}};gS.defaultOptions={blendMode:"normal",resolution:1,padding:0,antialias:"off",blendRequired:!1,clipToViewport:!0};xS=gS});async function bS(r){if(!r)for(let e=0;e<sp.length;e++){let t=sp[e];if(t.value.test()){await t.value.load();return}}}var sp,yS=p(()=>{B();sp=[];O.handleByNamedList(b.Environment,sp)});function Ul(){if(typeof ta=="boolean")return ta;try{ta=new Function("param1","param2","param3","return param1[param2] === param3;")({a:"b"},"a","b")===!0}catch{ta=!1}return ta}var ta,np=p(()=>{"use strict"});var Le,ln=p(()=>{"use strict";Le=(r=>(r[r.NONE=0]="NONE",r[r.COLOR=16384]="COLOR",r[r.STENCIL=1024]="STENCIL",r[r.DEPTH=256]="DEPTH",r[r.COLOR_DEPTH=16640]="COLOR_DEPTH",r[r.COLOR_STENCIL=17408]="COLOR_STENCIL",r[r.DEPTH_STENCIL=1280]="DEPTH_STENCIL",r[r.ALL=17664]="ALL",r))(Le||{})});var hn,op=p(()=>{"use strict";hn=class{constructor(e){this.items=[],this._name=e}emit(e,t,i,s,n,o,a,c){let{name:u,items:l}=this;for(let h=0,f=l.length;h<f;h++)l[h][u](e,t,i,s,n,o,a,c);return this}add(e){return e[this._name]&&(this.remove(e),this.items.push(e)),this}remove(e){let t=this.items.indexOf(e);return t!==-1&&this.items.splice(t,1),this}contains(e){return this.items.indexOf(e)!==-1}removeAll(){return this.items.length=0,this}destroy(){this.removeAll(),this.items=null,this._name=null}get empty(){return this.items.length===0}get name(){return this._name}}});var JB,TS,ti,ra=p(()=>{He();yS();jt();np();Oe();ye();ln();op();Ve();JB=["init","destroy","contextChange","resolutionChange","resetState","renderEnd","renderStart","render","update","postrender","prerender"],TS=class wS extends oe{constructor(e){super(),this.uid=K("renderer"),this.runners=Object.create(null),this.renderPipes=Object.create(null),this._initOptions={},this._systemsHash=Object.create(null),this.type=e.type,this.name=e.name,this.config=e;let t=[...JB,...this.config.runners??[]];this._addRunners(...t),this._unsafeEvalCheck()}async init(e={}){let t=e.skipExtensionImports===!0?!0:e.manageImports===!1;await bS(t),this._addSystems(this.config.systems),this._addPipes(this.config.renderPipes,this.config.renderPipeAdaptors);for(let i in this._systemsHash)e={...this._systemsHash[i].constructor.defaultOptions,...e};e={...wS.defaultOptions,...e},this._roundPixels=e.roundPixels?1:0;for(let i=0;i<this.runners.init.items.length;i++)await this.runners.init.items[i].init(e);this._initOptions=e}render(e,t){let i=e;if(i instanceof we&&(i={container:i},t&&(z($,"passing a second argument is deprecated, please use render options instead"),i.target=t.renderTexture)),i.target||(i.target=this.view.renderTarget),i.target===this.view.renderTarget&&(this._lastObjectRendered=i.container,i.clearColor??(i.clearColor=this.background.colorRgba),i.clear??(i.clear=this.background.clearBeforeRender)),i.clearColor){let s=Array.isArray(i.clearColor)&&i.clearColor.length===4;i.clearColor=s?i.clearColor:q.shared.setValue(i.clearColor).toArray()}i.transform||(i.container.updateLocalTransform(),i.transform=i.container.localTransform),i.container.enableRenderGroup(),this.runners.prerender.emit(i),this.runners.renderStart.emit(i),this.runners.render.emit(i),this.runners.renderEnd.emit(i),this.runners.postrender.emit(i)}resize(e,t,i){let s=this.view.resolution;this.view.resize(e,t,i),this.emit("resize",this.view.screen.width,this.view.screen.height,this.view.resolution),i!==void 0&&i!==s&&this.runners.resolutionChange.emit(i)}clear(e={}){let t=this;e.target||(e.target=t.renderTarget.renderTarget),e.clearColor||(e.clearColor=this.background.colorRgba),e.clear??(e.clear=Le.ALL);let{clear:i,clearColor:s,target:n}=e;q.shared.setValue(s??this.background.colorRgba),t.renderTarget.clear(n,i,q.shared.toArray())}get resolution(){return this.view.resolution}set resolution(e){this.view.resolution=e,this.runners.resolutionChange.emit(e)}get width(){return this.view.texture.frame.width}get height(){return this.view.texture.frame.height}get canvas(){return this.view.canvas}get lastObjectRendered(){return this._lastObjectRendered}get renderingToScreen(){return this.renderTarget.renderingToScreen}get screen(){return this.view.screen}_addRunners(...e){e.forEach(t=>{this.runners[t]=new hn(t)})}_addSystems(e){let t;for(t in e){let i=e[t];this._addSystem(i.value,i.name)}}_addSystem(e,t){let i=new e(this);if(this[t])throw new Error(`Whoops! The name "${t}" is already in use`);this[t]=i,this._systemsHash[t]=i;for(let s in this.runners)this.runners[s].add(i);return this}_addPipes(e,t){let i=t.reduce((s,n)=>(s[n.name]=n.value,s),{});e.forEach(s=>{let n=s.value,o=s.name,a=i[o];this.renderPipes[o]=new n(this,a?new a:null)})}destroy(e=!1){this.runners.destroy.items.reverse(),this.runners.destroy.emit(e),Object.values(this.runners).forEach(t=>{t.destroy()}),this._systemsHash=null,this.renderPipes=null}generateTexture(e){return this.textureGenerator.generateTexture(e)}get roundPixels(){return!!this._roundPixels}_unsafeEvalCheck(){if(!Ul())throw new Error("Current environment does not allow unsafe-eval, please use pixi.js/unsafe-eval module to enable support.")}resetState(){this.runners.resetState.emit()}};TS.defaultOptions={resolution:1,failIfMajorPerformanceCaveat:!1,roundPixels:!1};ti=TS});var ia,CS=p(()=>{B();te();Wu();Qr();Ro();Do();un();Zr();Ot();it();ia=class{constructor(){this._maxTextures=0}contextChange(e){let t=new ce({uTransformMatrix:{value:new R,type:"mat3x3<f32>"},uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uRound:{value:0,type:"f32"}});this._maxTextures=e.limits.maxBatchableTextures;let i=Jt({name:"graphics",bits:[Ls,Vs(this._maxTextures),Lw,tr]});this.shader=new ke({gpuProgram:i,resources:{localUniforms:t}})}execute(e,t){let i=t.context,s=i.customShader||this.shader,n=e.renderer,o=n.graphicsContext,{batcher:a,instructions:c}=o.getContextRenderData(i),u=n.encoder;u.setGeometry(a.geometry,s.gpuProgram);let l=n.globalUniforms.bindGroup;u.setBindGroup(0,l,s.gpuProgram);let h=n.renderPipes.uniformBatch.getUniformBindGroup(s.resources.localUniforms,!0);u.setBindGroup(2,h,s.gpuProgram);let f=c.instructions,d=null;for(let m=0;m<c.instructionSize;m++){let x=f[m];if(x.topology!==d&&(d=x.topology,u.setPipelineFromGeometryProgramAndState(a.geometry,s.gpuProgram,e.state,x.topology)),s.groups[1]=x.bindGroup,!x.gpuBindGroup){let g=x.textures;x.bindGroup=Fs(g.textures,g.count,this._maxTextures),x.gpuBindGroup=n.bindGroup.getBindGroup(x.bindGroup,s.gpuProgram,1)}u.setBindGroup(1,x.bindGroup,s.gpuProgram),u.renderPassEncoder.drawIndexed(x.size,1,x.start)}}destroy(){this.shader.destroy(!0),this.shader=null}};ia.extension={type:[b.WebGPUPipesAdaptor],name:"graphics"}});var ES,kS,ap=p(()=>{"use strict";ES={name:"texture-bit",vertex:{header:`
570
-
571
- struct TextureUniforms {
572
- uTextureMatrix:mat3x3<f32>,
573
- }
574
-
575
- @group(2) @binding(2) var<uniform> textureUniforms : TextureUniforms;
576
- `,main:`
577
- uv = (textureUniforms.uTextureMatrix * vec3(uv, 1.0)).xy;
578
- `},fragment:{header:`
579
- @group(2) @binding(0) var uTexture: texture_2d<f32>;
580
- @group(2) @binding(1) var uSampler: sampler;
581
-
582
-
583
- `,main:`
584
- outColor = textureSample(uTexture, uSampler, vUV);
585
- `}},kS={name:"texture-bit",vertex:{header:`
586
- uniform mat3 uTextureMatrix;
587
- `,main:`
588
- uv = (uTextureMatrix * vec3(uv, 1.0)).xy;
589
- `},fragment:{header:`
590
- uniform sampler2D uTexture;
591
-
592
-
593
- `,main:`
594
- outColor = texture(uTexture, vUV);
595
- `}}});var sa,AS=p(()=>{B();te();Qr();un();Zr();ap();Ot();le();pe();sa=class{init(){let e=Jt({name:"mesh",bits:[es,ES,tr]});this._shader=new ke({gpuProgram:e,resources:{uTexture:M.EMPTY._source,uSampler:M.EMPTY._source.style,textureUniforms:{uTextureMatrix:{type:"mat3x3<f32>",value:new R}}}})}execute(e,t){let i=e.renderer,s=t._shader;if(!s)s=this._shader,s.groups[2]=i.texture.getTextureBindGroup(t.texture);else if(!s.gpuProgram){N("Mesh shader has no gpuProgram",t.shader);return}let n=s.gpuProgram;if(n.autoAssignGlobalUniforms&&(s.groups[0]=i.globalUniforms.bindGroup),n.autoAssignLocalUniforms){let o=e.localUniforms;s.groups[1]=i.renderPipes.uniformBatch.getUniformBindGroup(o,!0)}i.encoder.draw({geometry:t._geometry,shader:s,state:t.state})}destroy(){this._shader.destroy(!0),this._shader=null}};sa.extension={type:[b.WebGPUPipesAdaptor],name:"mesh"}});var Nl,na,PS=p(()=>{B();Gt();Wu();Nl=Pe.for2d(),na=class{start(e,t,i){let s=e.renderer,n=s.encoder,o=i.gpuProgram;this._shader=i,this._geometry=t,n.setGeometry(t,o),Nl.blendMode="normal",s.pipeline.getPipeline(t,o,Nl);let a=s.globalUniforms.bindGroup;n.resetBindGroup(1),n.setBindGroup(0,a,o)}execute(e,t){let i=this._shader.gpuProgram,s=e.renderer,n=s.encoder;if(!t.bindGroup){let c=t.textures;t.bindGroup=Fs(c.textures,c.count,s.limits.maxBatchableTextures)}Nl.blendMode=t.blendMode;let o=s.bindGroup.getBindGroup(t.bindGroup,i,1),a=s.pipeline.getPipeline(this._geometry,i,Nl,t.topology);t.bindGroup._touch(s.textureGC.count),n.setPipeline(a),n.renderPassEncoder.setBindGroup(1,o),n.renderPassEncoder.drawIndexed(t.size,1,t.start)}};na.extension={type:[b.WebGPUPipesAdaptor],name:"batch"}});var oa,BS=p(()=>{B();oa=class{constructor(e){this._renderer=e}updateRenderable(){}destroyRenderable(){}validateRenderable(){return!1}addRenderable(e,t){this._renderer.renderPipes.batch.break(t),t.add(e)}execute(e){e.isRenderable&&e.render(this._renderer)}destroy(){this._renderer=null}};oa.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"customRender"}});function aa(r,e){let t=r.instructionSet,i=t.instructions;for(let s=0;s<t.instructionSize;s++){let n=i[s];e[n.renderPipeId].execute(n)}}var cp=p(()=>{"use strict"});var eR,ca,RS=p(()=>{B();te();br();Ho();cp();eR=new R,ca=class{constructor(e){this._renderer=e}addRenderGroup(e,t){e.isCachedAsTexture?this._addRenderableCacheAsTexture(e,t):this._addRenderableDirect(e,t)}execute(e){e.isRenderable&&(e.isCachedAsTexture?this._executeCacheAsTexture(e):this._executeDirect(e))}destroy(){this._renderer=null}_addRenderableDirect(e,t){this._renderer.renderPipes.batch.break(t),e._batchableRenderGroup&&(me.return(e._batchableRenderGroup),e._batchableRenderGroup=null),t.add(e)}_addRenderableCacheAsTexture(e,t){let i=e._batchableRenderGroup??(e._batchableRenderGroup=me.get(nr));i.renderable=e.root,i.transform=e.root.relativeGroupTransform,i.texture=e.texture,i.bounds=e._textureBounds,t.add(e),this._renderer.renderPipes.batch.addToBatch(i,t)}_executeCacheAsTexture(e){if(e.textureNeedsUpdate){e.textureNeedsUpdate=!1;let t=eR.identity().translate(-e._textureBounds.x,-e._textureBounds.y);this._renderer.renderTarget.push(e.texture,!0,null,e.texture.frame),this._renderer.globalUniforms.push({worldTransformMatrix:t,worldColor:4294967295}),aa(e,this._renderer.renderPipes),this._renderer.renderTarget.finishRenderPass(),this._renderer.renderTarget.pop(),this._renderer.globalUniforms.pop()}e._batchableRenderGroup._batcher.updateElement(e._batchableRenderGroup),e._batchableRenderGroup._batcher.geometry.buffers[0].update()}_executeDirect(e){this._renderer.globalUniforms.push({worldTransformMatrix:e.inverseParentTextureTransform,worldColor:e.worldColorAlpha}),aa(e,this._renderer.renderPipes),this._renderer.globalUniforms.pop()}};ca.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"renderGroup"}});function ua(r,e){e||(e=0);for(let t=e;t<r.length&&r[t];t++)r[t]=null}var up=p(()=>{"use strict"});function lp(r,e=!1){rR(r);let t=r.childrenToUpdate,i=r.updateTick++;for(let s in t){let n=Number(s),o=t[s],a=o.list,c=o.index;for(let u=0;u<c;u++){let l=a[u];l.parentRenderGroup===r&&l.relativeRenderGroupDepth===n&&IS(l,i,0)}ua(a,c),o.index=0}if(e)for(let s=0;s<r.renderGroupChildren.length;s++)lp(r.renderGroupChildren[s],e)}function rR(r){let e=r.root,t;if(r.renderGroupParent){let i=r.renderGroupParent;r.worldTransform.appendFrom(e.relativeGroupTransform,i.worldTransform),r.worldColor=ks(e.groupColor,i.worldColor),t=e.groupAlpha*i.worldAlpha}else r.worldTransform.copyFrom(e.localTransform),r.worldColor=e.localColor,t=e.localAlpha;t=t<0?0:t>1?1:t,r.worldAlpha=t,r.worldColorAlpha=r.worldColor+((t*255|0)<<24)}function IS(r,e,t){if(e===r.updateTick)return;r.updateTick=e,r.didChange=!1;let i=r.localTransform;r.updateLocalTransform();let s=r.parent;if(s&&!s.renderGroup?(t|=r._updateFlags,r.relativeGroupTransform.appendFrom(i,s.relativeGroupTransform),t&DS&&MS(r,s,t)):(t=r._updateFlags,r.relativeGroupTransform.copyFrom(i),t&DS&&MS(r,tR,t)),!r.renderGroup){let n=r.children,o=n.length;for(let u=0;u<o;u++)IS(n[u],e,t);let a=r.parentRenderGroup,c=r;c.renderPipeId&&!a.structureDidChange&&a.updateRenderable(c)}}function MS(r,e,t){if(t&Rs){r.groupColor=ks(r.localColor,e.groupColor);let i=r.localAlpha*e.groupAlpha;i=i<0?0:i>1?1:i,r.groupAlpha=i,r.groupColorAlpha=r.groupColor+((i*255|0)<<24)}t&fo&&(r.groupBlendMode=r.localBlendMode==="inherit"?e.groupBlendMode:r.localBlendMode),t&Vi&&(r.globalDisplayStatus=r.localDisplayStatus&e.globalDisplayStatus),r._updateFlags=0}var tR,DS,FS=p(()=>{jt();up();Ud();tR=new we,DS=Vi|Rs|fo});function US(r,e){let{list:t,index:i}=r.childrenRenderablesToUpdate,s=!1;for(let n=0;n<i;n++){let o=t[n];if(s=e[o.renderPipeId].validateRenderable(o),s)break}return r.structureDidChange=s,s}var OS=p(()=>{"use strict"});var iR,la,GS=p(()=>{B();te();Hr();at();up();cp();FS();OS();iR=new R,la=class{constructor(e){this._renderer=e}render({container:e,transform:t}){let i=e.parent,s=e.renderGroup.renderGroupParent;e.parent=null,e.renderGroup.renderGroupParent=null;let n=this._renderer,o=iR;t&&(o=o.copyFrom(e.renderGroup.localTransform),e.renderGroup.localTransform.copyFrom(t));let a=n.renderPipes;this._updateCachedRenderGroups(e.renderGroup,null),this._updateRenderGroups(e.renderGroup),n.globalUniforms.start({worldTransformMatrix:t?e.renderGroup.localTransform:e.renderGroup.worldTransform,worldColor:e.renderGroup.worldColorAlpha}),aa(e.renderGroup,a),a.uniformBatch&&a.uniformBatch.renderEnd(),t&&e.renderGroup.localTransform.copyFrom(o),e.parent=i,e.renderGroup.renderGroupParent=s}destroy(){this._renderer=null}_updateCachedRenderGroups(e,t){if(e.isCachedAsTexture){if(!e.updateCacheTexture)return;t=e}e._parentCacheAsTextureRenderGroup=t;for(let i=e.renderGroupChildren.length-1;i>=0;i--)this._updateCachedRenderGroups(e.renderGroupChildren[i],t);if(e.invalidateMatrices(),e.isCachedAsTexture){if(e.textureNeedsUpdate){let i=e.root.getLocalBounds();i.ceil();let s=e.texture;e.texture&&Te.returnTexture(e.texture);let n=this._renderer,o=e.textureOptions.resolution||n.view.resolution,a=e.textureOptions.antialias??n.view.antialias;e.texture=Te.getOptimalTexture(i.width,i.height,o,a),e._textureBounds||(e._textureBounds=new ae),e._textureBounds.copyFrom(i),s!==e.texture&&e.renderGroupParent&&(e.renderGroupParent.structureDidChange=!0)}}else e.texture&&(Te.returnTexture(e.texture),e.texture=null)}_updateRenderGroups(e){let t=this._renderer,i=t.renderPipes;if(e.runOnRender(t),e.instructionSet.renderPipes=i,e.structureDidChange?ua(e.childrenRenderablesToUpdate.list,0):US(e,i),lp(e),e.structureDidChange?(e.structureDidChange=!1,this._buildInstructions(e,t)):this._updateRenderables(e),e.childrenRenderablesToUpdate.index=0,t.renderPipes.batch.upload(e.instructionSet),!(e.isCachedAsTexture&&!e.textureNeedsUpdate))for(let s=0;s<e.renderGroupChildren.length;s++)this._updateRenderGroups(e.renderGroupChildren[s])}_updateRenderables(e){let{list:t,index:i}=e.childrenRenderablesToUpdate;for(let s=0;s<i;s++){let n=t[s];n.didViewUpdate&&e.updateRenderable(n)}ua(t,i)}_buildInstructions(e,t){let i=e.root,s=e.instructionSet;s.reset();let n=t.renderPipes?t:t.batch.renderer,o=n.renderPipes;o.batch.buildStart(s),o.blendMode.buildStart(),o.colorMask.buildStart(),i.sortableChildren&&i.sortChildren(),i.collectRenderablesWithEffects(s,n,null),o.batch.buildEnd(s),o.blendMode.buildEnd(s)}};la.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"renderGroup"}});var ha,NS=p(()=>{B();Ho();ha=class{constructor(e){this._renderer=e}addRenderable(e,t){let i=this._getGpuSprite(e);e.didViewUpdate&&this._updateBatchableSprite(e,i),this._renderer.renderPipes.batch.addToBatch(i,t)}updateRenderable(e){let t=this._getGpuSprite(e);e.didViewUpdate&&this._updateBatchableSprite(e,t),t._batcher.updateElement(t)}validateRenderable(e){let t=this._getGpuSprite(e);return!t._batcher.checkAndUpdateTexture(t,e._texture)}_updateBatchableSprite(e,t){t.bounds=e.visualBounds,t.texture=e._texture}_getGpuSprite(e){return e._gpuData[this._renderer.uid]||this._initGPUSprite(e)}_initGPUSprite(e){let t=new nr;return t.renderable=e,t.transform=e.groupTransform,t.texture=e._texture,t.bounds=e.visualBounds,t.roundPixels=this._renderer._roundPixels|e._roundPixels,e._gpuData[this._renderer.uid]=t,t}destroy(){this._renderer=null}};ha.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"sprite"}});var dn,hp=p(()=>{Ve();dn="8.10.1"});var dp,da,LS=p(()=>{B();hp();dp=class{static init(){globalThis.__PIXI_APP_INIT__?.(this,dn)}static destroy(){}};dp.extension=b.Application;da=class{constructor(e){this._renderer=e}init(){globalThis.__PIXI_RENDERER_INIT__?.(this._renderer,dn)}destroy(){this._renderer=null}};da.extension={type:[b.WebGLSystem,b.WebGPUSystem],name:"initHook",priority:-10}});var fp,mp,VS=p(()=>{B();Gt();Hf();fp=class zS{constructor(e,t){this.state=Pe.for2d(),this._batchersByInstructionSet=Object.create(null),this._activeBatches=Object.create(null),this.renderer=e,this._adaptor=t,this._adaptor.init?.(this)}static getBatcher(e){return new this._availableBatchers[e]}buildStart(e){let t=this._batchersByInstructionSet[e.uid];t||(t=this._batchersByInstructionSet[e.uid]=Object.create(null),t.default||(t.default=new Mo({maxTextures:this.renderer.limits.maxBatchableTextures}))),this._activeBatches=t,this._activeBatch=this._activeBatches.default;for(let i in this._activeBatches)this._activeBatches[i].begin()}addToBatch(e,t){if(this._activeBatch.name!==e.batcherName){this._activeBatch.break(t);let i=this._activeBatches[e.batcherName];i||(i=this._activeBatches[e.batcherName]=zS.getBatcher(e.batcherName),i.begin()),this._activeBatch=i}this._activeBatch.add(e)}break(e){this._activeBatch.break(e)}buildEnd(e){this._activeBatch.break(e);let t=this._activeBatches;for(let i in t){let s=t[i],n=s.geometry;n.indexBuffer.setDataWithSize(s.indexBuffer,s.indexSize,!0),n.buffers[0].setDataWithSize(s.attributeBuffer.float32View,s.attributeSize,!1)}}upload(e){let t=this._batchersByInstructionSet[e.uid];for(let i in t){let s=t[i],n=s.geometry;s.dirty&&(s.dirty=!1,n.buffers[0].update(s.attributeSize*4))}}execute(e){if(e.action==="startBatch"){let t=e.batcher,i=t.geometry,s=t.shader;this._adaptor.start(this,i,s)}this._adaptor.execute(this,e)}destroy(){this.state=null,this.renderer=null,this._adaptor=null;for(let e in this._activeBatches)this._activeBatches[e].destroy();this._activeBatches=null}};fp.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"batch"};fp._availableBatchers=Object.create(null);mp=fp;O.handleByMap(b.Batcher,mp._availableBatchers);O.add(Mo)});var HS,WS=p(()=>{HS=`in vec2 vMaskCoord;
596
- in vec2 vTextureCoord;
597
-
598
- uniform sampler2D uTexture;
599
- uniform sampler2D uMaskTexture;
600
-
601
- uniform float uAlpha;
602
- uniform vec4 uMaskClamp;
603
- uniform float uInverse;
604
-
605
- out vec4 finalColor;
606
-
607
- void main(void)
608
- {
609
- float clip = step(3.5,
610
- step(uMaskClamp.x, vMaskCoord.x) +
611
- step(uMaskClamp.y, vMaskCoord.y) +
612
- step(vMaskCoord.x, uMaskClamp.z) +
613
- step(vMaskCoord.y, uMaskClamp.w));
614
-
615
- // TODO look into why this is needed
616
- float npmAlpha = uAlpha;
617
- vec4 original = texture(uTexture, vTextureCoord);
618
- vec4 masky = texture(uMaskTexture, vMaskCoord);
619
- float alphaMul = 1.0 - npmAlpha * (1.0 - masky.a);
620
-
621
- float a = alphaMul * masky.r * npmAlpha * clip;
622
-
623
- if (uInverse == 1.0) {
624
- a = 1.0 - a;
625
- }
626
-
627
- finalColor = original * a;
628
- }
629
- `});var $S,qS=p(()=>{$S=`in vec2 aPosition;
630
-
631
- out vec2 vTextureCoord;
632
- out vec2 vMaskCoord;
633
-
634
-
635
- uniform vec4 uInputSize;
636
- uniform vec4 uOutputFrame;
637
- uniform vec4 uOutputTexture;
638
- uniform mat3 uFilterMatrix;
639
-
640
- vec4 filterVertexPosition( vec2 aPosition )
641
- {
642
- vec2 position = aPosition * uOutputFrame.zw + uOutputFrame.xy;
643
-
644
- position.x = position.x * (2.0 / uOutputTexture.x) - 1.0;
645
- position.y = position.y * (2.0*uOutputTexture.z / uOutputTexture.y) - uOutputTexture.z;
646
-
647
- return vec4(position, 0.0, 1.0);
648
- }
649
-
650
- vec2 filterTextureCoord( vec2 aPosition )
651
- {
652
- return aPosition * (uOutputFrame.zw * uInputSize.zw);
653
- }
654
-
655
- vec2 getFilterCoord( vec2 aPosition )
656
- {
657
- return ( uFilterMatrix * vec3( filterTextureCoord(aPosition), 1.0) ).xy;
658
- }
659
-
660
- void main(void)
661
- {
662
- gl_Position = filterVertexPosition(aPosition);
663
- vTextureCoord = filterTextureCoord(aPosition);
664
- vMaskCoord = getFilterCoord(aPosition);
665
- }
666
- `});var pp,jS=p(()=>{pp=`struct GlobalFilterUniforms {
667
- uInputSize:vec4<f32>,
668
- uInputPixel:vec4<f32>,
669
- uInputClamp:vec4<f32>,
670
- uOutputFrame:vec4<f32>,
671
- uGlobalFrame:vec4<f32>,
672
- uOutputTexture:vec4<f32>,
673
- };
674
-
675
- struct MaskUniforms {
676
- uFilterMatrix:mat3x3<f32>,
677
- uMaskClamp:vec4<f32>,
678
- uAlpha:f32,
679
- uInverse:f32,
680
- };
681
-
682
- @group(0) @binding(0) var<uniform> gfu: GlobalFilterUniforms;
683
- @group(0) @binding(1) var uTexture: texture_2d<f32>;
684
- @group(0) @binding(2) var uSampler : sampler;
685
-
686
- @group(1) @binding(0) var<uniform> filterUniforms : MaskUniforms;
687
- @group(1) @binding(1) var uMaskTexture: texture_2d<f32>;
688
-
689
- struct VSOutput {
690
- @builtin(position) position: vec4<f32>,
691
- @location(0) uv : vec2<f32>,
692
- @location(1) filterUv : vec2<f32>,
693
- };
694
-
695
- fn filterVertexPosition(aPosition:vec2<f32>) -> vec4<f32>
696
- {
697
- var position = aPosition * gfu.uOutputFrame.zw + gfu.uOutputFrame.xy;
698
-
699
- position.x = position.x * (2.0 / gfu.uOutputTexture.x) - 1.0;
700
- position.y = position.y * (2.0*gfu.uOutputTexture.z / gfu.uOutputTexture.y) - gfu.uOutputTexture.z;
701
-
702
- return vec4(position, 0.0, 1.0);
703
- }
704
-
705
- fn filterTextureCoord( aPosition:vec2<f32> ) -> vec2<f32>
706
- {
707
- return aPosition * (gfu.uOutputFrame.zw * gfu.uInputSize.zw);
708
- }
709
-
710
- fn globalTextureCoord( aPosition:vec2<f32> ) -> vec2<f32>
711
- {
712
- return (aPosition.xy / gfu.uGlobalFrame.zw) + (gfu.uGlobalFrame.xy / gfu.uGlobalFrame.zw);
713
- }
714
-
715
- fn getFilterCoord(aPosition:vec2<f32> ) -> vec2<f32>
716
- {
717
- return ( filterUniforms.uFilterMatrix * vec3( filterTextureCoord(aPosition), 1.0) ).xy;
718
- }
719
-
720
- fn getSize() -> vec2<f32>
721
- {
722
- return gfu.uGlobalFrame.zw;
723
- }
724
-
725
- @vertex
726
- fn mainVertex(
727
- @location(0) aPosition : vec2<f32>,
728
- ) -> VSOutput {
729
- return VSOutput(
730
- filterVertexPosition(aPosition),
731
- filterTextureCoord(aPosition),
732
- getFilterCoord(aPosition)
733
- );
734
- }
735
-
736
- @fragment
737
- fn mainFragment(
738
- @location(0) uv: vec2<f32>,
739
- @location(1) filterUv: vec2<f32>,
740
- @builtin(position) position: vec4<f32>
741
- ) -> @location(0) vec4<f32> {
742
-
743
- var maskClamp = filterUniforms.uMaskClamp;
744
- var uAlpha = filterUniforms.uAlpha;
745
-
746
- var clip = step(3.5,
747
- step(maskClamp.x, filterUv.x) +
748
- step(maskClamp.y, filterUv.y) +
749
- step(filterUv.x, maskClamp.z) +
750
- step(filterUv.y, maskClamp.w));
751
-
752
- var mask = textureSample(uMaskTexture, uSampler, filterUv);
753
- var source = textureSample(uTexture, uSampler, uv);
754
- var alphaMul = 1.0 - uAlpha * (1.0 - mask.a);
755
-
756
- var a: f32 = alphaMul * mask.r * uAlpha * clip;
757
-
758
- if (filterUniforms.uInverse == 1.0) {
759
- a = 1.0 - a;
760
- }
761
-
762
- return source * a;
763
- }
764
- `});var Ll,XS=p(()=>{te();$i();Ns();it();Wd();_S();WS();qS();jS();Ll=class extends xS{constructor(e){let{sprite:t,...i}=e,s=new Bs(t.texture),n=new ce({uFilterMatrix:{value:new R,type:"mat3x3<f32>"},uMaskClamp:{value:s.uClampFrame,type:"vec4<f32>"},uAlpha:{value:1,type:"f32"},uInverse:{value:e.inverse?1:0,type:"f32"}}),o=Bt.from({vertex:{source:pp,entryPoint:"mainVertex"},fragment:{source:pp,entryPoint:"mainFragment"}}),a=Pt.from({vertex:$S,fragment:HS,name:"mask-filter"});super({...i,gpuProgram:o,glProgram:a,resources:{filterUniforms:n,uMaskTexture:t.texture.source}}),this.sprite=t,this._textureMatrix=s}set inverse(e){this.resources.filterUniforms.uniforms.uInverse=e?1:0}get inverse(){return this.resources.filterUniforms.uniforms.uInverse===1}apply(e,t,i,s){this._textureMatrix.texture=this.sprite.texture,e.calculateSpriteMatrix(this.resources.filterUniforms.uniforms.uFilterMatrix,this.sprite).prepend(this._textureMatrix.mapCoord),this.resources.uMaskTexture=this.sprite.texture.source,e.applyFilter(this,t,i,s)}}});var sR,gp,fa,YS=p(()=>{B();bu();XS();at();uo();Gu();br();le();Hr();ir();sR=new ae,gp=class extends yr{constructor(){super(),this.filters=[new Ll({sprite:new Kt(M.EMPTY),inverse:!1,resolution:"inherit",antialias:"inherit"})]}get sprite(){return this.filters[0].sprite}set sprite(e){this.filters[0].sprite=e}get inverse(){return this.filters[0].inverse}set inverse(e){this.filters[0].inverse=e}},fa=class{constructor(e){this._activeMaskStage=[],this._renderer=e}push(e,t,i){let s=this._renderer;if(s.renderPipes.batch.break(i),i.add({renderPipeId:"alphaMask",action:"pushMaskBegin",mask:e,inverse:t._maskOptions.inverse,canBundle:!1,maskedContainer:t}),e.inverse=t._maskOptions.inverse,e.renderMaskToTexture){let n=e.mask;n.includeInBuild=!0,n.collectRenderables(i,s,null),n.includeInBuild=!1}s.renderPipes.batch.break(i),i.add({renderPipeId:"alphaMask",action:"pushMaskEnd",mask:e,maskedContainer:t,inverse:t._maskOptions.inverse,canBundle:!1})}pop(e,t,i){this._renderer.renderPipes.batch.break(i),i.add({renderPipeId:"alphaMask",action:"popMaskEnd",mask:e,inverse:t._maskOptions.inverse,canBundle:!1})}execute(e){let t=this._renderer,i=e.mask.renderMaskToTexture;if(e.action==="pushMaskBegin"){let s=me.get(gp);if(s.inverse=e.inverse,i){e.mask.mask.measurable=!0;let n=Es(e.mask.mask,!0,sR);e.mask.mask.measurable=!1,n.ceil();let o=t.renderTarget.renderTarget.colorTexture.source,a=Te.getOptimalTexture(n.width,n.height,o._resolution,o.antialias);t.renderTarget.push(a,!0),t.globalUniforms.push({offset:n,worldColor:4294967295});let c=s.sprite;c.texture=a,c.worldTransform.tx=n.minX,c.worldTransform.ty=n.minY,this._activeMaskStage.push({filterEffect:s,maskedContainer:e.maskedContainer,filterTexture:a})}else s.sprite=e.mask.mask,this._activeMaskStage.push({filterEffect:s,maskedContainer:e.maskedContainer})}else if(e.action==="pushMaskEnd"){let s=this._activeMaskStage[this._activeMaskStage.length-1];i&&(t.type===Ie.WEBGL&&t.renderTarget.finishRenderPass(),t.renderTarget.pop(),t.globalUniforms.pop()),t.filter.push({renderPipeId:"filter",action:"pushFilter",container:s.maskedContainer,filterEffect:s.filterEffect,canBundle:!1})}else if(e.action==="popMaskEnd"){t.filter.pop();let s=this._activeMaskStage.pop();i&&Te.returnTexture(s.filterTexture),me.return(s.filterEffect)}}destroy(){this._renderer=null,this._activeMaskStage=null}};fa.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"alphaMask"}});var ma,KS=p(()=>{B();ma=class{constructor(e){this._colorStack=[],this._colorStackIndex=0,this._currentColor=0,this._renderer=e}buildStart(){this._colorStack[0]=15,this._colorStackIndex=1,this._currentColor=15}push(e,t,i){this._renderer.renderPipes.batch.break(i);let n=this._colorStack;n[this._colorStackIndex]=n[this._colorStackIndex-1]&e.mask;let o=this._colorStack[this._colorStackIndex];o!==this._currentColor&&(this._currentColor=o,i.add({renderPipeId:"colorMask",colorMask:o,canBundle:!1})),this._colorStackIndex++}pop(e,t,i){this._renderer.renderPipes.batch.break(i);let n=this._colorStack;this._colorStackIndex--;let o=n[this._colorStackIndex-1];o!==this._currentColor&&(this._currentColor=o,i.add({renderPipeId:"colorMask",colorMask:o,canBundle:!1}))}execute(e){this._renderer.colorMask.setMask(e.colorMask)}destroy(){this._colorStack=null}};ma.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"colorMask"}});var pa,QS=p(()=>{B();ln();Wi();pa=class{constructor(e){this._maskStackHash={},this._maskHash=new WeakMap,this._renderer=e}push(e,t,i){var s;let n=e,o=this._renderer;o.renderPipes.batch.break(i),o.renderPipes.blendMode.setBlendMode(n.mask,"none",i),i.add({renderPipeId:"stencilMask",action:"pushMaskBegin",mask:e,inverse:t._maskOptions.inverse,canBundle:!1});let a=n.mask;a.includeInBuild=!0,this._maskHash.has(n)||this._maskHash.set(n,{instructionsStart:0,instructionsLength:0});let c=this._maskHash.get(n);c.instructionsStart=i.instructionSize,a.collectRenderables(i,o,null),a.includeInBuild=!1,o.renderPipes.batch.break(i),i.add({renderPipeId:"stencilMask",action:"pushMaskEnd",mask:e,inverse:t._maskOptions.inverse,canBundle:!1});let u=i.instructionSize-c.instructionsStart-1;c.instructionsLength=u;let l=o.renderTarget.renderTarget.uid;(s=this._maskStackHash)[l]??(s[l]=0)}pop(e,t,i){let s=e,n=this._renderer;n.renderPipes.batch.break(i),n.renderPipes.blendMode.setBlendMode(s.mask,"none",i),i.add({renderPipeId:"stencilMask",action:"popMaskBegin",inverse:t._maskOptions.inverse,canBundle:!1});let o=this._maskHash.get(e);for(let a=0;a<o.instructionsLength;a++)i.instructions[i.instructionSize++]=i.instructions[o.instructionsStart++];i.add({renderPipeId:"stencilMask",action:"popMaskEnd",canBundle:!1})}execute(e){var t;let i=this._renderer,s=i.renderTarget.renderTarget.uid,n=(t=this._maskStackHash)[s]??(t[s]=0);e.action==="pushMaskBegin"?(i.renderTarget.ensureDepthStencil(),i.stencil.setStencilMode(fe.RENDERING_MASK_ADD,n),n++,i.colorMask.setMask(0)):e.action==="pushMaskEnd"?(e.inverse?i.stencil.setStencilMode(fe.INVERSE_MASK_ACTIVE,n):i.stencil.setStencilMode(fe.MASK_ACTIVE,n),i.colorMask.setMask(15)):e.action==="popMaskBegin"?(i.colorMask.setMask(0),n!==0?i.stencil.setStencilMode(fe.RENDERING_MASK_REMOVE,n):(i.renderTarget.clear(null,Le.STENCIL),i.stencil.setStencilMode(fe.DISABLED,n)),n--):e.action==="popMaskEnd"&&(e.inverse?i.stencil.setStencilMode(fe.INVERSE_MASK_ACTIVE,n):i.stencil.setStencilMode(fe.MASK_ACTIVE,n),i.colorMask.setMask(15)),this._maskStackHash[s]=n}destroy(){this._renderer=null,this._maskStackHash=null,this._maskHash=null}};pa.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"stencilMask"}});var xp,JS,ev=p(()=>{He();B();xp=class ZS{constructor(){this.clearBeforeRender=!0,this._backgroundColor=new q(0),this.color=this._backgroundColor,this.alpha=1}init(e){e={...ZS.defaultOptions,...e},this.clearBeforeRender=e.clearBeforeRender,this.color=e.background||e.backgroundColor||this._backgroundColor,this.alpha=e.backgroundAlpha,this._backgroundColor.setAlpha(e.backgroundAlpha)}get color(){return this._backgroundColor}set color(e){this._backgroundColor.setValue(e)}get alpha(){return this._backgroundColor.alpha}set alpha(e){this._backgroundColor.setAlpha(e)}get colorRgba(){return this._backgroundColor.toArray()}destroy(){}};xp.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"background",priority:0};xp.defaultOptions={backgroundAlpha:1,backgroundColor:0,clearBeforeRender:!0};JS=xp});var ga,xa,tv=p(()=>{B();bu();pe();ga={};O.handle(b.BlendMode,r=>{if(!r.name)throw new Error("BlendMode extension must have a name property");ga[r.name]=r.ref},r=>{delete ga[r.name]});xa=class{constructor(e){this._isAdvanced=!1,this._filterHash=Object.create(null),this._renderer=e,this._renderer.runners.prerender.add(this)}prerender(){this._activeBlendMode="normal",this._isAdvanced=!1}setBlendMode(e,t,i){if(this._activeBlendMode===t){this._isAdvanced&&this._renderableList.push(e);return}this._activeBlendMode=t,this._isAdvanced&&this._endAdvancedBlendMode(i),this._isAdvanced=!!ga[t],this._isAdvanced&&(this._beginAdvancedBlendMode(i),this._renderableList.push(e))}_beginAdvancedBlendMode(e){this._renderer.renderPipes.batch.break(e);let t=this._activeBlendMode;if(!ga[t]){N(`Unable to assign BlendMode: '${t}'. You may want to include: import 'pixi.js/advanced-blend-modes'`);return}let i=this._filterHash[t];i||(i=this._filterHash[t]=new yr,i.filters=[new ga[t]]);let s={renderPipeId:"filter",action:"pushFilter",renderables:[],filterEffect:i,canBundle:!1};this._renderableList=s.renderables,e.add(s)}_endAdvancedBlendMode(e){this._renderableList=null,this._renderer.renderPipes.batch.break(e),e.add({renderPipeId:"filter",action:"popFilter",canBundle:!1})}buildStart(){this._isAdvanced=!1}buildEnd(e){this._isAdvanced&&this._endAdvancedBlendMode(e)}destroy(){this._renderer=null,this._renderableList=null;for(let e in this._filterHash)this._filterHash[e].destroy();this._filterHash=null}};xa.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"blendMode"}});var _p,bp,iv,sv=p(()=>{B();jt();le();_p={png:"image/png",jpg:"image/jpeg",webp:"image/webp"},bp=class rv{constructor(e){this._renderer=e}_normalizeOptions(e,t={}){return e instanceof we||e instanceof M?{target:e,...t}:{...t,...e}}async image(e){let t=new Image;return t.src=await this.base64(e),t}async base64(e){e=this._normalizeOptions(e,rv.defaultImageOptions);let{format:t,quality:i}=e,s=this.canvas(e);if(s.toBlob!==void 0)return new Promise((n,o)=>{s.toBlob(a=>{if(!a){o(new Error("ICanvas.toBlob failed!"));return}let c=new FileReader;c.onload=()=>n(c.result),c.onerror=o,c.readAsDataURL(a)},_p[t],i)});if(s.toDataURL!==void 0)return s.toDataURL(_p[t],i);if(s.convertToBlob!==void 0){let n=await s.convertToBlob({type:_p[t],quality:i});return new Promise((o,a)=>{let c=new FileReader;c.onload=()=>o(c.result),c.onerror=a,c.readAsDataURL(n)})}throw new Error("Extract.base64() requires ICanvas.toDataURL, ICanvas.toBlob, or ICanvas.convertToBlob to be implemented")}canvas(e){e=this._normalizeOptions(e);let t=e.target,i=this._renderer;if(t instanceof M)return i.texture.generateCanvas(t);let s=i.textureGenerator.generateTexture(e),n=i.texture.generateCanvas(s);return s.destroy(!0),n}pixels(e){e=this._normalizeOptions(e);let t=e.target,i=this._renderer,s=t instanceof M?t:i.textureGenerator.generateTexture(e),n=i.texture.getPixels(s);return t instanceof we&&s.destroy(!0),n}texture(e){return e=this._normalizeOptions(e),e.target instanceof M?e.target:this._renderer.textureGenerator.generateTexture(e)}download(e){e=this._normalizeOptions(e);let t=this.canvas(e),i=document.createElement("a");i.download=e.filename??"image.png",i.href=t.toDataURL("image/png"),document.body.appendChild(i),i.click(),document.body.removeChild(i)}log(e){let t=e.width??200;e=this._normalizeOptions(e);let i=this.canvas(e),s=i.toDataURL();console.log(`[Pixi Texture] ${i.width}px ${i.height}px`);let n=["font-size: 1px;",`padding: ${t}px 300px;`,`background: url(${s}) no-repeat;`,"background-size: contain;"].join(" ");console.log("%c ",n)}destroy(){this._renderer=null}};bp.extension={type:[b.WebGLSystem,b.WebGPUSystem],name:"extract"};bp.defaultImageOptions={format:"png",quality:1};iv=bp});var zl,nv=p(()=>{tt();le();zl=class r extends M{static create(e){return new r({source:new se(e)})}resize(e,t,i){return this.source.resize(e,t,i),this}}});var nR,oR,aR,_a,ov=p(()=>{He();B();te();Ge();at();vu();jt();nv();nR=new Y,oR=new ae,aR=[0,0,0,0],_a=class{constructor(e){this._renderer=e}generateTexture(e){e instanceof we&&(e={target:e,frame:void 0,textureSourceOptions:{},resolution:void 0});let t=e.resolution||this._renderer.resolution,i=e.antialias||this._renderer.view.antialias,s=e.target,n=e.clearColor;n?n=Array.isArray(n)&&n.length===4?n:q.shared.setValue(n).toArray():n=aR;let o=e.frame?.copyTo(nR)||As(s,oR).rectangle;o.width=Math.max(o.width,1/t)|0,o.height=Math.max(o.height,1/t)|0;let a=zl.create({...e.textureSourceOptions,width:o.width,height:o.height,resolution:t,antialias:i}),c=R.shared.translate(-o.x,-o.y);return this._renderer.render({container:s,transform:c,target:a,clearColor:n}),a.source.updateMipmaps(),a}destroy(){this._renderer=null}};_a.extension={type:[b.WebGLSystem,b.WebGPUSystem],name:"textureGenerator"}});var ba,av=p(()=>{B();te();Ft();Ys();Xr();ir();it();ba=class{constructor(e){this._stackIndex=0,this._globalUniformDataStack=[],this._uniformsPool=[],this._activeUniforms=[],this._bindGroupPool=[],this._activeBindGroups=[],this._renderer=e}reset(){this._stackIndex=0;for(let e=0;e<this._activeUniforms.length;e++)this._uniformsPool.push(this._activeUniforms[e]);for(let e=0;e<this._activeBindGroups.length;e++)this._bindGroupPool.push(this._activeBindGroups[e]);this._activeUniforms.length=0,this._activeBindGroups.length=0}start(e){this.reset(),this.push(e)}bind({size:e,projectionMatrix:t,worldTransformMatrix:i,worldColor:s,offset:n}){let o=this._renderer.renderTarget.renderTarget,a=this._stackIndex?this._globalUniformDataStack[this._stackIndex-1]:{projectionData:o,worldTransformMatrix:new R,worldColor:4294967295,offset:new J},c={projectionMatrix:t||this._renderer.renderTarget.projectionMatrix,resolution:e||o.size,worldTransformMatrix:i||a.worldTransformMatrix,worldColor:s||a.worldColor,offset:n||a.offset,bindGroup:null},u=this._uniformsPool.pop()||this._createUniforms();this._activeUniforms.push(u);let l=u.uniforms;l.uProjectionMatrix=c.projectionMatrix,l.uResolution=c.resolution,l.uWorldTransformMatrix.copyFrom(c.worldTransformMatrix),l.uWorldTransformMatrix.tx-=c.offset.x,l.uWorldTransformMatrix.ty-=c.offset.y,sr(c.worldColor,l.uWorldColorAlpha,0),u.update();let h;this._renderer.renderPipes.uniformBatch?h=this._renderer.renderPipes.uniformBatch.getUniformBindGroup(u,!1):(h=this._bindGroupPool.pop()||new Ne,this._activeBindGroups.push(h),h.setResource(u,0)),c.bindGroup=h,this._currentGlobalUniformData=c}push(e){this.bind(e),this._globalUniformDataStack[this._stackIndex++]=this._currentGlobalUniformData}pop(){this._currentGlobalUniformData=this._globalUniformDataStack[--this._stackIndex-1],this._renderer.type===Ie.WEBGL&&this._currentGlobalUniformData.bindGroup.resources[0].update()}get bindGroup(){return this._currentGlobalUniformData.bindGroup}get globalUniformData(){return this._currentGlobalUniformData}get uniformGroup(){return this._currentGlobalUniformData.bindGroup.resources[0]}_createUniforms(){return new ce({uProjectionMatrix:{value:new R,type:"mat3x3<f32>"},uWorldTransformMatrix:{value:new R,type:"mat3x3<f32>"},uWorldColorAlpha:{value:new Float32Array(4),type:"vec4<f32>"},uResolution:{value:[0,0],type:"vec2<f32>"}},{isStatic:!0})}destroy(){this._renderer=null}};ba.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"globalUniforms"}});var cR,ya,cv=p(()=>{B();go();cR=1,ya=class{constructor(){this._tasks=[],this._offset=0}init(){ct.system.add(this._update,this)}repeat(e,t,i=!0){let s=cR++,n=0;return i&&(this._offset+=1e3,n=this._offset),this._tasks.push({func:e,duration:t,start:performance.now(),offset:n,last:performance.now(),repeat:!0,id:s}),s}cancel(e){for(let t=0;t<this._tasks.length;t++)if(this._tasks[t].id===e){this._tasks.splice(t,1);return}}_update(){let e=performance.now();for(let t=0;t<this._tasks.length;t++){let i=this._tasks[t];if(e-i.offset-i.last>=i.duration){let s=e-i.start;i.func(s),i.last=e}}}destroy(){ct.system.remove(this._update,this),this._tasks.length=0}};ya.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"scheduler",priority:0}});function lv(r){if(!uv){if(W.get().getNavigator().userAgent.toLowerCase().indexOf("chrome")>-1){let e=[`%c %c %c %c %c PixiJS %c v${dn} (${r}) http://www.pixijs.com/
765
-
766
- `,"background: #E72264; padding:5px 0;","background: #6CA2EA; padding:5px 0;","background: #B5D33D; padding:5px 0;","background: #FED23F; padding:5px 0;","color: #FFFFFF; background: #E72264; padding:5px 0;","color: #E72264; background: #FFFFFF; padding:5px 0;"];globalThis.console.log(...e)}else globalThis.console&&globalThis.console.log(`PixiJS ${dn} - ${r} - http://www.pixijs.com/`);uv=!0}}var uv,hv=p(()=>{Ce();hp();uv=!1});var fn,dv=p(()=>{B();hv();ir();fn=class{constructor(e){this._renderer=e}init(e){if(e.hello){let t=this._renderer.name;this._renderer.type===Ie.WEBGL&&(t+=` ${this._renderer.context.webGLVersion}`),lv(t)}}};fn.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"hello",priority:-2};fn.defaultOptions={hello:!1}});function fv(r){let e=!1;for(let i in r)if(r[i]==null){e=!0;break}if(!e)return r;let t=Object.create(null);for(let i in r){let s=r[i];s&&(t[i]=s)}return t}function mv(r){let e=0;for(let t=0;t<r.length;t++)r[t]==null?e++:r[t-e]=r[t];return r.length-=e,r}var pv=p(()=>{"use strict"});var uR,yp,xv,_v=p(()=>{B();pv();uR=0,yp=class gv{constructor(e){this._managedRenderables=[],this._managedHashes=[],this._managedArrays=[],this._renderer=e}init(e){e={...gv.defaultOptions,...e},this.maxUnusedTime=e.renderableGCMaxUnusedTime,this._frequency=e.renderableGCFrequency,this.enabled=e.renderableGCActive}get enabled(){return!!this._handler}set enabled(e){this.enabled!==e&&(e?(this._handler=this._renderer.scheduler.repeat(()=>this.run(),this._frequency,!1),this._hashHandler=this._renderer.scheduler.repeat(()=>{for(let t of this._managedHashes)t.context[t.hash]=fv(t.context[t.hash])},this._frequency),this._arrayHandler=this._renderer.scheduler.repeat(()=>{for(let t of this._managedArrays)mv(t.context[t.hash])},this._frequency)):(this._renderer.scheduler.cancel(this._handler),this._renderer.scheduler.cancel(this._hashHandler),this._renderer.scheduler.cancel(this._arrayHandler)))}addManagedHash(e,t){this._managedHashes.push({context:e,hash:t})}addManagedArray(e,t){this._managedArrays.push({context:e,hash:t})}prerender({container:e}){this._now=performance.now(),e.renderGroup.gcTick=uR++,this._updateInstructionGCTick(e.renderGroup,e.renderGroup.gcTick)}addRenderable(e){this.enabled&&(e._lastUsed===-1&&(this._managedRenderables.push(e),e.once("destroyed",this._removeRenderable,this)),e._lastUsed=this._now)}run(){let e=this._now,t=this._managedRenderables,i=this._renderer.renderPipes,s=0;for(let n=0;n<t.length;n++){let o=t[n];if(o===null){s++;continue}let a=o.renderGroup??o.parentRenderGroup,c=a?.instructionSet?.gcTick??-1;if((a?.gcTick??0)===c&&(o._lastUsed=e),e-o._lastUsed>this.maxUnusedTime){if(!o.destroyed){let u=i;a&&(a.structureDidChange=!0),u[o.renderPipeId].destroyRenderable(o)}o._lastUsed=-1,s++,o.off("destroyed",this._removeRenderable,this)}else t[n-s]=o}t.length-=s}destroy(){this.enabled=!1,this._renderer=null,this._managedRenderables.length=0,this._managedHashes.length=0,this._managedArrays.length=0}_removeRenderable(e){let t=this._managedRenderables.indexOf(e);t>=0&&(e.off("destroyed",this._removeRenderable,this),this._managedRenderables[t]=null)}_updateInstructionGCTick(e,t){e.instructionSet.gcTick=t;for(let i of e.renderGroupChildren)this._updateInstructionGCTick(i,t)}};yp.extension={type:[b.WebGLSystem,b.WebGPUSystem],name:"renderableGC",priority:0};yp.defaultOptions={renderableGCActive:!0,renderableGCMaxUnusedTime:6e4,renderableGCFrequency:3e4};xv=yp});var Tp,yv,Tv=p(()=>{B();Tp=class bv{constructor(e){this._renderer=e,this.count=0,this.checkCount=0}init(e){e={...bv.defaultOptions,...e},this.checkCountMax=e.textureGCCheckCountMax,this.maxIdle=e.textureGCAMaxIdle??e.textureGCMaxIdle,this.active=e.textureGCActive}postrender(){this._renderer.renderingToScreen&&(this.count++,this.active&&(this.checkCount++,this.checkCount>this.checkCountMax&&(this.checkCount=0,this.run())))}run(){let e=this._renderer.texture.managedTextures;for(let t=0;t<e.length;t++){let i=e[t];i.autoGarbageCollect&&i.resource&&i._touched>-1&&this.count-i._touched>this.maxIdle&&(i._touched=-1,i.unload())}}destroy(){this._renderer=null}};Tp.extension={type:[b.WebGLSystem,b.WebGPUSystem],name:"textureGC"};Tp.defaultOptions={textureGCActive:!0,textureGCAMaxIdle:null,textureGCMaxIdle:60*60,textureGCCheckCountMax:600};yv=Tp});var wv,Ta,wp=p(()=>{Oe();tt();le();wv=class Sv{constructor(e={}){if(this.uid=K("renderTarget"),this.colorTextures=[],this.dirtyId=0,this.isRoot=!1,this._size=new Float32Array(2),this._managedColorTextures=!1,e={...Sv.defaultOptions,...e},this.stencil=e.stencil,this.depth=e.depth,this.isRoot=e.isRoot,typeof e.colorTextures=="number"){this._managedColorTextures=!0;for(let t=0;t<e.colorTextures;t++)this.colorTextures.push(new se({width:e.width,height:e.height,resolution:e.resolution,antialias:e.antialias}))}else{this.colorTextures=[...e.colorTextures.map(i=>i.source)];let t=this.colorTexture.source;this.resize(t.width,t.height,t._resolution)}this.colorTexture.source.on("resize",this.onSourceResize,this),(e.depthStencilTexture||this.stencil)&&(e.depthStencilTexture instanceof M||e.depthStencilTexture instanceof se?this.depthStencilTexture=e.depthStencilTexture.source:this.ensureDepthStencilTexture())}get size(){let e=this._size;return e[0]=this.pixelWidth,e[1]=this.pixelHeight,e}get width(){return this.colorTexture.source.width}get height(){return this.colorTexture.source.height}get pixelWidth(){return this.colorTexture.source.pixelWidth}get pixelHeight(){return this.colorTexture.source.pixelHeight}get resolution(){return this.colorTexture.source._resolution}get colorTexture(){return this.colorTextures[0]}onSourceResize(e){this.resize(e.width,e.height,e._resolution,!0)}ensureDepthStencilTexture(){this.depthStencilTexture||(this.depthStencilTexture=new se({width:this.width,height:this.height,resolution:this.resolution,format:"depth24plus-stencil8",autoGenerateMipmaps:!1,antialias:!1,mipLevelCount:1}))}resize(e,t,i=this.resolution,s=!1){this.dirtyId++,this.colorTextures.forEach((n,o)=>{s&&o===0||n.source.resize(e,t,i)}),this.depthStencilTexture&&this.depthStencilTexture.source.resize(e,t,i)}destroy(){this.colorTexture.source.off("resize",this.onSourceResize,this),this._managedColorTextures&&this.colorTextures.forEach(e=>{e.destroy()}),this.depthStencilTexture&&(this.depthStencilTexture.destroy(),delete this.depthStencilTexture)}};wv.defaultOptions={width:0,height:0,resolution:1,colorTextures:1,stencil:!1,depth:!1,antialias:!1,isRoot:!1};Ta=wv});function Vl(r,e){if(!wa.has(r)){let t=new M({source:new je({resource:r,...e})}),i=()=>{wa.get(r)===t&&wa.delete(r)};t.once("destroy",i),t.source.once("destroy",i),wa.set(r,t)}return wa.get(r)}var wa,Sp=p(()=>{Is();le();wa=new Map});var vp,Cv,Ev=p(()=>{Ce();B();Ge();ye();wp();Sp();vp=class vv{get autoDensity(){return this.texture.source.autoDensity}set autoDensity(e){this.texture.source.autoDensity=e}get resolution(){return this.texture.source._resolution}set resolution(e){this.texture.source.resize(this.texture.source.width,this.texture.source.height,e)}init(e){e={...vv.defaultOptions,...e},e.view&&(z($,"ViewSystem.view has been renamed to ViewSystem.canvas"),e.canvas=e.view),this.screen=new Y(0,0,e.width,e.height),this.canvas=e.canvas||W.get().createCanvas(),this.antialias=!!e.antialias,this.texture=Vl(this.canvas,e),this.renderTarget=new Ta({colorTextures:[this.texture],depth:!!e.depth,isRoot:!0}),this.texture.source.transparent=e.backgroundAlpha<1,this.resolution=e.resolution}resize(e,t,i){this.texture.source.resize(e,t,i),this.screen.width=this.texture.frame.width,this.screen.height=this.texture.frame.height}destroy(e=!1){(typeof e=="boolean"?e:!!e?.removeView)&&this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas)}};vp.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"view",priority:0};vp.defaultOptions={width:800,height:600,autoDensity:!1,antialias:!1};Cv=vp});var Hl,Wl,Cp=p(()=>{BS();RS();GS();NS();LS();VS();YS();KS();QS();ev();tv();sv();ov();av();cv();dv();_v();Tv();Ev();Hl=[JS,ba,fn,Cv,la,yv,_a,iv,da,xv,ya],Wl=[xa,mp,ha,ca,fa,pa,ma,oa]});var Sa,kv=p(()=>{B();Sa=class{constructor(e){this._hash=Object.create(null),this._renderer=e,this._renderer.renderableGC.addManagedHash(this,"_hash")}contextChange(e){this._gpu=e}getBindGroup(e,t,i){return e._updateKey(),this._hash[e._key]||this._createBindGroup(e,t,i)}_createBindGroup(e,t,i){let s=this._gpu.device,n=t.layout[i],o=[],a=this._renderer;for(let l in n){let h=e.resources[l]??e.resources[n[l]],f;if(h._resourceType==="uniformGroup"){let d=h;a.ubo.updateUniformGroup(d);let m=d.buffer;f={buffer:a.buffer.getGPUBuffer(m),offset:0,size:m.descriptor.size}}else if(h._resourceType==="buffer"){let d=h;f={buffer:a.buffer.getGPUBuffer(d),offset:0,size:d.descriptor.size}}else if(h._resourceType==="bufferResource"){let d=h;f={buffer:a.buffer.getGPUBuffer(d.buffer),offset:d.offset,size:d.size}}else if(h._resourceType==="textureSampler"){let d=h;f=a.texture.getGpuSampler(d)}else if(h._resourceType==="textureSource"){let d=h;f=a.texture.getGpuSource(d).createView({})}o.push({binding:n[l],resource:f})}let c=a.shader.getProgramData(t).bindGroups[i],u=s.createBindGroup({layout:c,entries:o});return this._hash[e._key]=u,u}destroy(){for(let e of Object.keys(this._hash))this._hash[e]=null;this._hash=null,this._renderer=null}};Sa.extension={type:[b.WebGPUSystem],name:"bindGroup"}});var va,Av=p(()=>{B();Sf();va=class{constructor(e){this._gpuBuffers=Object.create(null),this._managedBuffers=[],e.renderableGC.addManagedHash(this,"_gpuBuffers")}contextChange(e){this._gpu=e}getGPUBuffer(e){return this._gpuBuffers[e.uid]||this.createGPUBuffer(e)}updateBuffer(e){let t=this._gpuBuffers[e.uid]||this.createGPUBuffer(e),i=e.data;return e._updateID&&i&&(e._updateID=0,this._gpu.device.queue.writeBuffer(t,0,i.buffer,0,(e._updateSize||i.byteLength)+3&-4)),t}destroyAll(){for(let e in this._gpuBuffers)this._gpuBuffers[e].destroy();this._gpuBuffers={}}createGPUBuffer(e){this._gpuBuffers[e.uid]||(e.on("update",this.updateBuffer,this),e.on("change",this.onBufferChange,this),e.on("destroy",this.onBufferDestroy,this),this._managedBuffers.push(e));let t=this._gpu.device.createBuffer(e.descriptor);return e._updateID=0,e.data&&(ko(e.data.buffer,t.getMappedRange()),t.unmap()),this._gpuBuffers[e.uid]=t,t}onBufferChange(e){this._gpuBuffers[e.uid].destroy(),e._updateID=0,this._gpuBuffers[e.uid]=this.createGPUBuffer(e)}onBufferDestroy(e){this._managedBuffers.splice(this._managedBuffers.indexOf(e),1),this._destroyBuffer(e)}destroy(){this._managedBuffers.forEach(e=>this._destroyBuffer(e)),this._managedBuffers=null,this._gpuBuffers=null}_destroyBuffer(e){this._gpuBuffers[e.uid].destroy(),e.off("update",this.updateBuffer,this),e.off("change",this.onBufferChange,this),e.off("destroy",this.onBufferDestroy,this),this._gpuBuffers[e.uid]=null}};va.extension={type:[b.WebGPUSystem],name:"buffer"}});var Ca,Pv=p(()=>{B();Ca=class{constructor(e){this._colorMaskCache=15,this._renderer=e}setMask(e){this._colorMaskCache!==e&&(this._colorMaskCache=e,this._renderer.pipeline.setColorMask(e))}destroy(){this._renderer=null,this._colorMaskCache=null}};Ca.extension={type:[b.WebGPUSystem],name:"colorMask"}});var mn,Bv=p(()=>{Ce();B();mn=class{constructor(e){this._renderer=e}async init(e){return this._initPromise?this._initPromise:(this._initPromise=this._createDeviceAndAdaptor(e).then(t=>{this.gpu=t,this._renderer.runners.contextChange.emit(this.gpu)}),this._initPromise)}contextChange(e){this._renderer.gpu=e}async _createDeviceAndAdaptor(e){let t=await W.get().getNavigator().gpu.requestAdapter({powerPreference:e.powerPreference,forceFallbackAdapter:e.forceFallbackAdapter}),i=["texture-compression-bc","texture-compression-astc","texture-compression-etc2"].filter(n=>t.features.has(n)),s=await t.requestDevice({requiredFeatures:i});return{adapter:t,device:s}}destroy(){this.gpu=null,this._renderer=null}};mn.extension={type:[b.WebGPUSystem],name:"device"};mn.defaultOptions={powerPreference:void 0,forceFallbackAdapter:!1}});var Ea,Rv=p(()=>{B();Ea=class{constructor(e){this._boundBindGroup=Object.create(null),this._boundVertexBuffer=Object.create(null),this._renderer=e}renderStart(){this.commandFinished=new Promise(e=>{this._resolveCommandFinished=e}),this.commandEncoder=this._renderer.gpu.device.createCommandEncoder()}beginRenderPass(e){this.endRenderPass(),this._clearCache(),this.renderPassEncoder=this.commandEncoder.beginRenderPass(e.descriptor)}endRenderPass(){this.renderPassEncoder&&this.renderPassEncoder.end(),this.renderPassEncoder=null}setViewport(e){this.renderPassEncoder.setViewport(e.x,e.y,e.width,e.height,0,1)}setPipelineFromGeometryProgramAndState(e,t,i,s){let n=this._renderer.pipeline.getPipeline(e,t,i,s);this.setPipeline(n)}setPipeline(e){this._boundPipeline!==e&&(this._boundPipeline=e,this.renderPassEncoder.setPipeline(e))}_setVertexBuffer(e,t){this._boundVertexBuffer[e]!==t&&(this._boundVertexBuffer[e]=t,this.renderPassEncoder.setVertexBuffer(e,this._renderer.buffer.updateBuffer(t)))}_setIndexBuffer(e){if(this._boundIndexBuffer===e)return;this._boundIndexBuffer=e;let t=e.data.BYTES_PER_ELEMENT===2?"uint16":"uint32";this.renderPassEncoder.setIndexBuffer(this._renderer.buffer.updateBuffer(e),t)}resetBindGroup(e){this._boundBindGroup[e]=null}setBindGroup(e,t,i){if(this._boundBindGroup[e]===t)return;this._boundBindGroup[e]=t,t._touch(this._renderer.textureGC.count);let s=this._renderer.bindGroup.getBindGroup(t,i,e);this.renderPassEncoder.setBindGroup(e,s)}setGeometry(e,t){let i=this._renderer.pipeline.getBufferNamesToBind(e,t);for(let s in i)this._setVertexBuffer(s,e.attributes[i[s]].buffer);e.indexBuffer&&this._setIndexBuffer(e.indexBuffer)}_setShaderBindGroups(e,t){for(let i in e.groups){let s=e.groups[i];t||this._syncBindGroup(s),this.setBindGroup(i,s,e.gpuProgram)}}_syncBindGroup(e){for(let t in e.resources){let i=e.resources[t];i.isUniformGroup&&this._renderer.ubo.updateUniformGroup(i)}}draw(e){let{geometry:t,shader:i,state:s,topology:n,size:o,start:a,instanceCount:c,skipSync:u}=e;this.setPipelineFromGeometryProgramAndState(t,i.gpuProgram,s,n),this.setGeometry(t,i.gpuProgram),this._setShaderBindGroups(i,u),t.indexBuffer?this.renderPassEncoder.drawIndexed(o||t.indexBuffer.data.length,c??t.instanceCount,a||0):this.renderPassEncoder.draw(o||t.getSize(),c??t.instanceCount,a||0)}finishRenderPass(){this.renderPassEncoder&&(this.renderPassEncoder.end(),this.renderPassEncoder=null)}postrender(){this.finishRenderPass(),this._gpu.device.queue.submit([this.commandEncoder.finish()]),this._resolveCommandFinished(),this.commandEncoder=null}restoreRenderPass(){let e=this._renderer.renderTarget.adaptor.getDescriptor(this._renderer.renderTarget.renderTarget,!1,[0,0,0,1]);this.renderPassEncoder=this.commandEncoder.beginRenderPass(e);let t=this._boundPipeline,i={...this._boundVertexBuffer},s=this._boundIndexBuffer,n={...this._boundBindGroup};this._clearCache();let o=this._renderer.renderTarget.viewport;this.renderPassEncoder.setViewport(o.x,o.y,o.width,o.height,0,1),this.setPipeline(t);for(let a in i)this._setVertexBuffer(a,i[a]);for(let a in n)this.setBindGroup(a,n[a],null);this._setIndexBuffer(s)}_clearCache(){for(let e=0;e<16;e++)this._boundBindGroup[e]=null,this._boundVertexBuffer[e]=null;this._boundIndexBuffer=null,this._boundPipeline=null}destroy(){this._renderer=null,this._gpu=null,this._boundBindGroup=null,this._boundVertexBuffer=null,this._boundIndexBuffer=null,this._boundPipeline=null}contextChange(e){this._gpu=e}};Ea.extension={type:[b.WebGPUSystem],name:"encoder",priority:1}});var ka,Dv=p(()=>{B();ka=class{constructor(e){this._renderer=e}contextChange(){this.maxTextures=this._renderer.device.gpu.device.limits.maxSampledTexturesPerShaderStage,this.maxBatchableTextures=this.maxTextures}destroy(){}};ka.extension={type:[b.WebGPUSystem],name:"limits"}});var Aa,Mv=p(()=>{B();Wi();Aa=class{constructor(e){this._renderTargetStencilState=Object.create(null),this._renderer=e,e.renderTarget.onRenderTargetChange.add(this)}onRenderTargetChange(e){let t=this._renderTargetStencilState[e.uid];t||(t=this._renderTargetStencilState[e.uid]={stencilMode:fe.DISABLED,stencilReference:0}),this._activeRenderTarget=e,this.setStencilMode(t.stencilMode,t.stencilReference)}setStencilMode(e,t){let i=this._renderTargetStencilState[this._activeRenderTarget.uid];i.stencilMode=e,i.stencilReference=t;let s=this._renderer;s.pipeline.setStencilMode(e),s.encoder.renderPassEncoder.setStencilReference(t)}destroy(){this._renderer.renderTarget.onRenderTargetChange.remove(this),this._renderer=null,this._activeRenderTarget=null,this._renderTargetStencilState=null}};Aa.extension={type:[b.WebGPUSystem],name:"stencil"}});var pn,Ep=p(()=>{np();Yr();Cr();pn=class{constructor(e){this._syncFunctionHash=Object.create(null),this._adaptor=e,this._systemCheck()}_systemCheck(){if(!Ul())throw new Error("Current environment does not allow unsafe-eval, please use pixi.js/unsafe-eval module to enable support.")}ensureUniformGroup(e){let t=this.getUniformGroupData(e);e.buffer||(e.buffer=new Ee({data:new Float32Array(t.layout.size/4),usage:Q.UNIFORM|Q.COPY_DST}))}getUniformGroupData(e){return this._syncFunctionHash[e._signature]||this._initUniformGroup(e)}_initUniformGroup(e){let t=e._signature,i=this._syncFunctionHash[t];if(!i){let s=Object.keys(e.uniformStructures).map(a=>e.uniformStructures[a]),n=this._adaptor.createUboElements(s),o=this._generateUboSync(n.uboElements);i=this._syncFunctionHash[t]={layout:n,syncFunction:o}}return this._syncFunctionHash[t]}_generateUboSync(e){return this._adaptor.generateUboSync(e)}syncUniformGroup(e,t,i){let s=this.getUniformGroupData(e);e.buffer||(e.buffer=new Ee({data:new Float32Array(s.layout.size/4),usage:Q.UNIFORM|Q.COPY_DST}));let n=null;return t||(t=e.buffer.data,n=e.buffer.dataInt32),i||(i=0),s.syncFunction(e.uniforms,t,n,i),!0}updateUniformGroup(e){if(e.isStatic&&!e._dirtyId)return!1;e._dirtyId=0;let t=this.syncUniformGroup(e);return e.buffer.update(),t}destroy(){this._syncFunctionHash=null}}});function Iv(r){let e=r.map(i=>({data:i,offset:0,size:0})),t=0;for(let i=0;i<e.length;i++){let s=e[i],n=Pa[s.data.type].size,o=Pa[s.data.type].align;if(!Pa[s.data.type])throw new Error(`[Pixi.js] WebGPU UniformBuffer: Unknown type ${s.data.type}`);s.data.size>1&&(n=Math.max(n,o)*s.data.size),t=Math.ceil(t/o)*o,s.size=n,s.offset=t,t+=n}return t=Math.ceil(t/16)*16,{uboElements:e,size:t}}var Pa,kp=p(()=>{"use strict";Pa={i32:{align:4,size:4},u32:{align:4,size:4},f32:{align:4,size:4},f16:{align:2,size:2},"vec2<i32>":{align:8,size:8},"vec2<u32>":{align:8,size:8},"vec2<f32>":{align:8,size:8},"vec2<f16>":{align:4,size:4},"vec3<i32>":{align:16,size:12},"vec3<u32>":{align:16,size:12},"vec3<f32>":{align:16,size:12},"vec3<f16>":{align:8,size:6},"vec4<i32>":{align:16,size:16},"vec4<u32>":{align:16,size:16},"vec4<f32>":{align:16,size:16},"vec4<f16>":{align:8,size:8},"mat2x2<f32>":{align:8,size:16},"mat2x2<f16>":{align:4,size:8},"mat3x2<f32>":{align:8,size:24},"mat3x2<f16>":{align:4,size:12},"mat4x2<f32>":{align:8,size:32},"mat4x2<f16>":{align:4,size:16},"mat2x3<f32>":{align:16,size:32},"mat2x3<f16>":{align:8,size:16},"mat3x3<f32>":{align:16,size:48},"mat3x3<f16>":{align:8,size:24},"mat4x3<f32>":{align:16,size:64},"mat4x3<f16>":{align:8,size:32},"mat2x4<f32>":{align:16,size:32},"mat2x4<f16>":{align:8,size:16},"mat3x4<f32>":{align:16,size:48},"mat3x4<f16>":{align:8,size:24},"mat4x4<f32>":{align:16,size:64},"mat4x4<f16>":{align:8,size:32}}});var Br,Ap=p(()=>{"use strict";Br=[{type:"mat3x3<f32>",test:r=>r.value.a!==void 0,ubo:`
767
- var matrix = uv[name].toArray(true);
768
- data[offset] = matrix[0];
769
- data[offset + 1] = matrix[1];
770
- data[offset + 2] = matrix[2];
771
- data[offset + 4] = matrix[3];
772
- data[offset + 5] = matrix[4];
773
- data[offset + 6] = matrix[5];
774
- data[offset + 8] = matrix[6];
775
- data[offset + 9] = matrix[7];
776
- data[offset + 10] = matrix[8];
777
- `,uniform:`
778
- gl.uniformMatrix3fv(ud[name].location, false, uv[name].toArray(true));
779
- `},{type:"vec4<f32>",test:r=>r.type==="vec4<f32>"&&r.size===1&&r.value.width!==void 0,ubo:`
780
- v = uv[name];
781
- data[offset] = v.x;
782
- data[offset + 1] = v.y;
783
- data[offset + 2] = v.width;
784
- data[offset + 3] = v.height;
785
- `,uniform:`
786
- cv = ud[name].value;
787
- v = uv[name];
788
- if (cv[0] !== v.x || cv[1] !== v.y || cv[2] !== v.width || cv[3] !== v.height) {
789
- cv[0] = v.x;
790
- cv[1] = v.y;
791
- cv[2] = v.width;
792
- cv[3] = v.height;
793
- gl.uniform4f(ud[name].location, v.x, v.y, v.width, v.height);
794
- }
795
- `},{type:"vec2<f32>",test:r=>r.type==="vec2<f32>"&&r.size===1&&r.value.x!==void 0,ubo:`
796
- v = uv[name];
797
- data[offset] = v.x;
798
- data[offset + 1] = v.y;
799
- `,uniform:`
800
- cv = ud[name].value;
801
- v = uv[name];
802
- if (cv[0] !== v.x || cv[1] !== v.y) {
803
- cv[0] = v.x;
804
- cv[1] = v.y;
805
- gl.uniform2f(ud[name].location, v.x, v.y);
806
- }
807
- `},{type:"vec4<f32>",test:r=>r.type==="vec4<f32>"&&r.size===1&&r.value.red!==void 0,ubo:`
808
- v = uv[name];
809
- data[offset] = v.red;
810
- data[offset + 1] = v.green;
811
- data[offset + 2] = v.blue;
812
- data[offset + 3] = v.alpha;
813
- `,uniform:`
814
- cv = ud[name].value;
815
- v = uv[name];
816
- if (cv[0] !== v.red || cv[1] !== v.green || cv[2] !== v.blue || cv[3] !== v.alpha) {
817
- cv[0] = v.red;
818
- cv[1] = v.green;
819
- cv[2] = v.blue;
820
- cv[3] = v.alpha;
821
- gl.uniform4f(ud[name].location, v.red, v.green, v.blue, v.alpha);
822
- }
823
- `},{type:"vec3<f32>",test:r=>r.type==="vec3<f32>"&&r.size===1&&r.value.red!==void 0,ubo:`
824
- v = uv[name];
825
- data[offset] = v.red;
826
- data[offset + 1] = v.green;
827
- data[offset + 2] = v.blue;
828
- `,uniform:`
829
- cv = ud[name].value;
830
- v = uv[name];
831
- if (cv[0] !== v.red || cv[1] !== v.green || cv[2] !== v.blue) {
832
- cv[0] = v.red;
833
- cv[1] = v.green;
834
- cv[2] = v.blue;
835
- gl.uniform3f(ud[name].location, v.red, v.green, v.blue);
836
- }
837
- `}]});function $l(r,e,t,i){let s=[`
838
- var v = null;
839
- var v2 = null;
840
- var t = 0;
841
- var index = 0;
842
- var name = null;
843
- var arrayOffset = null;
844
- `],n=0;for(let a=0;a<r.length;a++){let c=r[a],u=c.data.name,l=!1,h=0;for(let f=0;f<Br.length;f++)if(Br[f].test(c.data)){h=c.offset/4,s.push(`name = "${u}";`,`offset += ${h-n};`,Br[f][e]||Br[f].ubo),l=!0;break}if(!l)if(c.data.size>1)h=c.offset/4,s.push(t(c,h-n));else{let f=i[c.data.type];h=c.offset/4,s.push(`
845
- v = uv.${u};
846
- offset += ${h-n};
847
- ${f};
848
- `)}n=h}let o=s.join(`
849
- `);return new Function("uv","data","dataInt32","offset",o)}var Pp=p(()=>{Ap()});function gn(r,e){return`
850
- for (let i = 0; i < ${r*e}; i++) {
851
- data[offset + (((i / ${r})|0) * 4) + (i % ${r})] = v[i];
852
- }
853
- `}var Bp,Fv,Rp=p(()=>{"use strict";Bp={f32:`
854
- data[offset] = v;`,i32:`
855
- dataInt32[offset] = v;`,"vec2<f32>":`
856
- data[offset] = v[0];
857
- data[offset + 1] = v[1];`,"vec3<f32>":`
858
- data[offset] = v[0];
859
- data[offset + 1] = v[1];
860
- data[offset + 2] = v[2];`,"vec4<f32>":`
861
- data[offset] = v[0];
862
- data[offset + 1] = v[1];
863
- data[offset + 2] = v[2];
864
- data[offset + 3] = v[3];`,"vec2<i32>":`
865
- dataInt32[offset] = v[0];
866
- dataInt32[offset + 1] = v[1];`,"vec3<i32>":`
867
- dataInt32[offset] = v[0];
868
- dataInt32[offset + 1] = v[1];
869
- dataInt32[offset + 2] = v[2];`,"vec4<i32>":`
870
- dataInt32[offset] = v[0];
871
- dataInt32[offset + 1] = v[1];
872
- dataInt32[offset + 2] = v[2];
873
- dataInt32[offset + 3] = v[3];`,"mat2x2<f32>":`
874
- data[offset] = v[0];
875
- data[offset + 1] = v[1];
876
- data[offset + 4] = v[2];
877
- data[offset + 5] = v[3];`,"mat3x3<f32>":`
878
- data[offset] = v[0];
879
- data[offset + 1] = v[1];
880
- data[offset + 2] = v[2];
881
- data[offset + 4] = v[3];
882
- data[offset + 5] = v[4];
883
- data[offset + 6] = v[5];
884
- data[offset + 8] = v[6];
885
- data[offset + 9] = v[7];
886
- data[offset + 10] = v[8];`,"mat4x4<f32>":`
887
- for (let i = 0; i < 16; i++) {
888
- data[offset + i] = v[i];
889
- }`,"mat3x2<f32>":gn(3,2),"mat4x2<f32>":gn(4,2),"mat2x3<f32>":gn(2,3),"mat4x3<f32>":gn(4,3),"mat2x4<f32>":gn(2,4),"mat3x4<f32>":gn(3,4)},Fv={...Bp,"mat2x2<f32>":`
890
- data[offset] = v[0];
891
- data[offset + 1] = v[1];
892
- data[offset + 2] = v[2];
893
- data[offset + 3] = v[3];
894
- `}});function Uv(r,e){let{size:t,align:i}=Pa[r.data.type],s=(i-t)/4,n=r.data.type.indexOf("i32")>=0?"dataInt32":"data";return`
895
- v = uv.${r.data.name};
896
- ${e!==0?`offset += ${e};`:""}
897
-
898
- arrayOffset = offset;
899
-
900
- t = 0;
901
-
902
- for(var i=0; i < ${r.data.size*(t/4)}; i++)
903
- {
904
- for(var j = 0; j < ${t/4}; j++)
905
- {
906
- ${n}[arrayOffset++] = v[t++];
907
- }
908
- ${s!==0?`arrayOffset += ${s};`:""}
909
- }
910
- `}var Ov=p(()=>{kp()});function Gv(r){return $l(r,"uboWgsl",Uv,Fv)}var Nv=p(()=>{Pp();Rp();Ov()});var Ba,Lv=p(()=>{B();Ep();kp();Nv();Ba=class extends pn{constructor(){super({createUboElements:Iv,generateUboSync:Gv})}};Ba.extension={type:[b.WebGPUSystem],name:"ubo"}});var ri,ql=p(()=>{Ve();Oe();ri=class extends oe{constructor({buffer:e,offset:t,size:i}){super(),this.uid=K("buffer"),this._resourceType="bufferResource",this._touched=0,this._resourceId=K("resource"),this._bufferResource=!0,this.destroyed=!1,this.buffer=e,this.offset=t|0,this.size=i,this.buffer.on("change",this.onBufferChange,this)}onBufferChange(){this._resourceId=K("resource"),this.emit("change",this)}destroy(e=!1){this.destroyed=!0,e&&this.buffer.destroy(),this.emit("change",this),this.buffer=null}}});var jl,zv=p(()=>{"use strict";jl=class{constructor({minUniformOffsetAlignment:e}){this._minUniformOffsetAlignment=256,this.byteIndex=0,this._minUniformOffsetAlignment=e,this.data=new Float32Array(65535)}clear(){this.byteIndex=0}addEmptyGroup(e){if(e>this._minUniformOffsetAlignment/4)throw new Error(`UniformBufferBatch: array is too large: ${e*4}`);let t=this.byteIndex,i=t+e*4;if(i=Math.ceil(i/this._minUniformOffsetAlignment)*this._minUniformOffsetAlignment,i>this.data.length*4)throw new Error("UniformBufferBatch: ubo batch got too big");return this.byteIndex=i,t}addGroup(e){let t=this.addEmptyGroup(e.length);for(let i=0;i<e.length;i++)this.data[t/4+i]=e[i];return t}destroy(){this.data=null}}});var ii,Ra,Vv=p(()=>{B();Yr();ql();Cr();zv();Xr();ii=128,Ra=class{constructor(e){this._bindGroupHash=Object.create(null),this._buffers=[],this._bindGroups=[],this._bufferResources=[],this._renderer=e,this._renderer.renderableGC.addManagedHash(this,"_bindGroupHash"),this._batchBuffer=new jl({minUniformOffsetAlignment:ii});let t=256/ii;for(let i=0;i<t;i++){let s=Q.UNIFORM|Q.COPY_DST;i===0&&(s|=Q.COPY_SRC),this._buffers.push(new Ee({data:this._batchBuffer.data,usage:s}))}}renderEnd(){this._uploadBindGroups(),this._resetBindGroups()}_resetBindGroups(){for(let e in this._bindGroupHash)this._bindGroupHash[e]=null;this._batchBuffer.clear()}getUniformBindGroup(e,t){if(!t&&this._bindGroupHash[e.uid])return this._bindGroupHash[e.uid];this._renderer.ubo.ensureUniformGroup(e);let i=e.buffer.data,s=this._batchBuffer.addEmptyGroup(i.length);return this._renderer.ubo.syncUniformGroup(e,this._batchBuffer.data,s/4),this._bindGroupHash[e.uid]=this._getBindGroup(s/ii),this._bindGroupHash[e.uid]}getUboResource(e){this._renderer.ubo.updateUniformGroup(e);let t=e.buffer.data,i=this._batchBuffer.addGroup(t);return this._getBufferResource(i/ii)}getArrayBindGroup(e){let t=this._batchBuffer.addGroup(e);return this._getBindGroup(t/ii)}getArrayBufferResource(e){let i=this._batchBuffer.addGroup(e)/ii;return this._getBufferResource(i)}_getBufferResource(e){if(!this._bufferResources[e]){let t=this._buffers[e%2];this._bufferResources[e]=new ri({buffer:t,offset:(e/2|0)*256,size:ii})}return this._bufferResources[e]}_getBindGroup(e){if(!this._bindGroups[e]){let t=new Ne({0:this._getBufferResource(e)});this._bindGroups[e]=t}return this._bindGroups[e]}_uploadBindGroups(){let e=this._renderer.buffer,t=this._buffers[0];t.update(this._batchBuffer.byteIndex),e.updateBuffer(t);let i=this._renderer.gpu.device.createCommandEncoder();for(let s=1;s<this._buffers.length;s++){let n=this._buffers[s];i.copyBufferToBuffer(e.getGPUBuffer(t),ii,e.getGPUBuffer(n),0,this._batchBuffer.byteIndex)}this._renderer.gpu.device.queue.submit([i.finish()])}destroy(){for(let e=0;e<this._bindGroups.length;e++)this._bindGroups[e].destroy();this._bindGroups=null,this._bindGroupHash=null;for(let e=0;e<this._buffers.length;e++)this._buffers[e].destroy();this._buffers=null;for(let e=0;e<this._bufferResources.length;e++)this._bufferResources[e].destroy();this._bufferResources=null,this._batchBuffer.destroy(),this._bindGroupHash=null,this._renderer=null}};Ra.extension={type:[b.WebGPUPipes],name:"uniformBatch"}});function Xl(r,e){for(let t in r.attributes){let i=r.attributes[t],s=e[t];s?(i.format??(i.format=s.format),i.offset??(i.offset=s.offset),i.instance??(i.instance=s.instance)):N(`Attribute ${t} is not present in the shader, but is present in the geometry. Unable to infer attribute details.`)}lR(r)}function lR(r){let{buffers:e,attributes:t}=r,i={},s={};for(let n in e){let o=e[n];i[o.uid]=0,s[o.uid]=0}for(let n in t){let o=t[n];i[o.buffer.uid]+=ut(o.format).stride}for(let n in t){let o=t[n];o.stride??(o.stride=i[o.buffer.uid]),o.start??(o.start=s[o.buffer.uid]),s[o.buffer.uid]+=ut(o.format).stride}}var Dp=p(()=>{pe();qi()});var cr,Mp=p(()=>{Wi();cr=[];cr[fe.NONE]=void 0;cr[fe.DISABLED]={stencilWriteMask:0,stencilReadMask:0};cr[fe.RENDERING_MASK_ADD]={stencilFront:{compare:"equal",passOp:"increment-clamp"},stencilBack:{compare:"equal",passOp:"increment-clamp"}};cr[fe.RENDERING_MASK_REMOVE]={stencilFront:{compare:"equal",passOp:"decrement-clamp"},stencilBack:{compare:"equal",passOp:"decrement-clamp"}};cr[fe.MASK_ACTIVE]={stencilWriteMask:0,stencilFront:{compare:"equal",passOp:"keep"},stencilBack:{compare:"equal",passOp:"keep"}};cr[fe.INVERSE_MASK_ACTIVE]={stencilWriteMask:0,stencilFront:{compare:"not-equal",passOp:"keep"},stencilBack:{compare:"not-equal",passOp:"keep"}}});function dR(r,e,t,i,s){return r<<24|e<<16|t<<10|i<<5|s}function fR(r,e,t,i){return t<<6|r<<3|i<<1|e}var hR,Da,Hv=p(()=>{B();pe();Dp();Wi();Bo();Mp();hR={"point-list":0,"line-list":1,"line-strip":2,"triangle-list":3,"triangle-strip":4};Da=class{constructor(e){this._moduleCache=Object.create(null),this._bufferLayoutsCache=Object.create(null),this._bindingNamesCache=Object.create(null),this._pipeCache=Object.create(null),this._pipeStateCaches=Object.create(null),this._colorMask=15,this._multisampleCount=1,this._renderer=e}contextChange(e){this._gpu=e,this.setStencilMode(fe.DISABLED),this._updatePipeHash()}setMultisampleCount(e){this._multisampleCount!==e&&(this._multisampleCount=e,this._updatePipeHash())}setRenderTarget(e){this._multisampleCount=e.msaaSamples,this._depthStencilAttachment=e.descriptor.depthStencilAttachment?1:0,this._updatePipeHash()}setColorMask(e){this._colorMask!==e&&(this._colorMask=e,this._updatePipeHash())}setStencilMode(e){this._stencilMode!==e&&(this._stencilMode=e,this._stencilState=cr[e],this._updatePipeHash())}setPipeline(e,t,i,s){let n=this.getPipeline(e,t,i);s.setPipeline(n)}getPipeline(e,t,i,s){e._layoutKey||(Xl(e,t.attributeData),this._generateBufferKey(e)),s||(s=e.topology);let n=dR(e._layoutKey,t._layoutKey,i.data,i._blendModeId,hR[s]);return this._pipeCache[n]?this._pipeCache[n]:(this._pipeCache[n]=this._createPipeline(e,t,i,s),this._pipeCache[n])}_createPipeline(e,t,i,s){let n=this._gpu.device,o=this._createVertexBufferLayouts(e,t),a=this._renderer.state.getColorTargets(i);a[0].writeMask=this._stencilMode===fe.RENDERING_MASK_ADD?0:this._colorMask;let c=this._renderer.shader.getProgramData(t).pipeline,u={vertex:{module:this._getModule(t.vertex.source),entryPoint:t.vertex.entryPoint,buffers:o},fragment:{module:this._getModule(t.fragment.source),entryPoint:t.fragment.entryPoint,targets:a},primitive:{topology:s,cullMode:i.cullMode},layout:c,multisample:{count:this._multisampleCount},label:"PIXI Pipeline"};return this._depthStencilAttachment&&(u.depthStencil={...this._stencilState,format:"depth24plus-stencil8",depthWriteEnabled:i.depthTest,depthCompare:i.depthTest?"less":"always"}),n.createRenderPipeline(u)}_getModule(e){return this._moduleCache[e]||this._createModule(e)}_createModule(e){let t=this._gpu.device;return this._moduleCache[e]=t.createShaderModule({code:e}),this._moduleCache[e]}_generateBufferKey(e){let t=[],i=0,s=Object.keys(e.attributes).sort();for(let o=0;o<s.length;o++){let a=e.attributes[s[o]];t[i++]=a.offset,t[i++]=a.format,t[i++]=a.stride,t[i++]=a.instance}let n=t.join("|");return e._layoutKey=Er(n,"geometry"),e._layoutKey}_generateAttributeLocationsKey(e){let t=[],i=0,s=Object.keys(e.attributeData).sort();for(let o=0;o<s.length;o++){let a=e.attributeData[s[o]];t[i++]=a.location}let n=t.join("|");return e._attributeLocationsKey=Er(n,"programAttributes"),e._attributeLocationsKey}getBufferNamesToBind(e,t){let i=e._layoutKey<<16|t._attributeLocationsKey;if(this._bindingNamesCache[i])return this._bindingNamesCache[i];let s=this._createVertexBufferLayouts(e,t),n=Object.create(null),o=t.attributeData;for(let a=0;a<s.length;a++){let u=Object.values(s[a].attributes)[0].shaderLocation;for(let l in o)if(o[l].location===u){n[a]=l;break}}return this._bindingNamesCache[i]=n,n}_createVertexBufferLayouts(e,t){t._attributeLocationsKey||this._generateAttributeLocationsKey(t);let i=e._layoutKey<<16|t._attributeLocationsKey;if(this._bufferLayoutsCache[i])return this._bufferLayoutsCache[i];let s=[];return e.buffers.forEach(n=>{let o={arrayStride:0,stepMode:"vertex",attributes:[]},a=o.attributes;for(let c in t.attributeData){let u=e.attributes[c];(u.divisor??1)!==1&&N(`Attribute ${c} has an invalid divisor value of '${u.divisor}'. WebGPU only supports a divisor value of 1`),u.buffer===n&&(o.arrayStride=u.stride,o.stepMode=u.instance?"instance":"vertex",a.push({shaderLocation:t.attributeData[c].location,offset:u.offset,format:u.format}))}a.length&&s.push(o)}),this._bufferLayoutsCache[i]=s,s}_updatePipeHash(){let e=fR(this._stencilMode,this._multisampleCount,this._colorMask,this._depthStencilAttachment);this._pipeStateCaches[e]||(this._pipeStateCaches[e]=Object.create(null)),this._pipeCache=this._pipeStateCaches[e]}destroy(){this._renderer=null,this._bufferLayoutsCache=null}};Da.extension={type:[b.WebGPUSystem],name:"pipeline"}});function Wv(r,e,t,i,s,n){let o=n?1:-1;return r.identity(),r.a=1/i*2,r.d=o*(1/s*2),r.tx=-1-e*r.a,r.ty=-o-t*r.d,r}var $v=p(()=>{"use strict"});function qv(r){let e=r.colorTexture.source.resource;return globalThis.HTMLCanvasElement&&e instanceof HTMLCanvasElement&&document.body.contains(e)}var jv=p(()=>{"use strict"});var xn,Ip=p(()=>{te();Ge();ln();$v();op();Is();tt();le();Sp();jv();wp();xn=class{constructor(e){this.rootViewPort=new Y,this.viewport=new Y,this.onRenderTargetChange=new hn("onRenderTargetChange"),this.projectionMatrix=new R,this.defaultClearColor=[0,0,0,0],this._renderSurfaceToRenderTargetHash=new Map,this._gpuRenderTargetHash=Object.create(null),this._renderTargetStack=[],this._renderer=e,e.renderableGC.addManagedHash(this,"_gpuRenderTargetHash")}finishRenderPass(){this.adaptor.finishRenderPass(this.renderTarget)}renderStart({target:e,clear:t,clearColor:i,frame:s}){this._renderTargetStack.length=0,this.push(e,t,i,s),this.rootViewPort.copyFrom(this.viewport),this.rootRenderTarget=this.renderTarget,this.renderingToScreen=qv(this.rootRenderTarget),this.adaptor.prerender?.(this.rootRenderTarget)}postrender(){this.adaptor.postrender?.(this.rootRenderTarget)}bind(e,t=!0,i,s){let n=this.getRenderTarget(e),o=this.renderTarget!==n;this.renderTarget=n,this.renderSurface=e;let a=this.getGpuRenderTarget(n);(n.pixelWidth!==a.width||n.pixelHeight!==a.height)&&(this.adaptor.resizeGpuRenderTarget(n),a.width=n.pixelWidth,a.height=n.pixelHeight);let c=n.colorTexture,u=this.viewport,l=c.pixelWidth,h=c.pixelHeight;if(!s&&e instanceof M&&(s=e.frame),s){let f=c._resolution;u.x=s.x*f+.5|0,u.y=s.y*f+.5|0,u.width=s.width*f+.5|0,u.height=s.height*f+.5|0}else u.x=0,u.y=0,u.width=l,u.height=h;return Wv(this.projectionMatrix,0,0,u.width/c.resolution,u.height/c.resolution,!n.isRoot),this.adaptor.startRenderPass(n,t,i,u),o&&this.onRenderTargetChange.emit(n),n}clear(e,t=Le.ALL,i){t&&(e&&(e=this.getRenderTarget(e)),this.adaptor.clear(e||this.renderTarget,t,i,this.viewport))}contextChange(){this._gpuRenderTargetHash=Object.create(null)}push(e,t=Le.ALL,i,s){let n=this.bind(e,t,i,s);return this._renderTargetStack.push({renderTarget:n,frame:s}),n}pop(){this._renderTargetStack.pop();let e=this._renderTargetStack[this._renderTargetStack.length-1];this.bind(e.renderTarget,!1,null,e.frame)}getRenderTarget(e){return e.isTexture&&(e=e.source),this._renderSurfaceToRenderTargetHash.get(e)??this._initRenderTarget(e)}copyToTexture(e,t,i,s,n){i.x<0&&(s.width+=i.x,n.x-=i.x,i.x=0),i.y<0&&(s.height+=i.y,n.y-=i.y,i.y=0);let{pixelWidth:o,pixelHeight:a}=e;return s.width=Math.min(s.width,o-i.x),s.height=Math.min(s.height,a-i.y),this.adaptor.copyToTexture(e,t,i,s,n)}ensureDepthStencil(){this.renderTarget.stencil||(this.renderTarget.stencil=!0,this.adaptor.startRenderPass(this.renderTarget,!1,null,this.viewport))}destroy(){this._renderer=null,this._renderSurfaceToRenderTargetHash.forEach((e,t)=>{e!==t&&e.destroy()}),this._renderSurfaceToRenderTargetHash.clear(),this._gpuRenderTargetHash=Object.create(null)}_initRenderTarget(e){let t=null;return je.test(e)&&(e=Vl(e).source),e instanceof Ta?t=e:e instanceof se&&(t=new Ta({colorTextures:[e]}),e.source instanceof je&&(t.isRoot=!0),e.once("destroy",()=>{t.destroy(),this._renderSurfaceToRenderTargetHash.delete(e);let i=this._gpuRenderTargetHash[t.uid];i&&(this._gpuRenderTargetHash[t.uid]=null,this.adaptor.destroyGpuRenderTarget(i))})),this._renderSurfaceToRenderTargetHash.set(e,t),t}getGpuRenderTarget(e){return this._gpuRenderTargetHash[e.uid]||(this._gpuRenderTargetHash[e.uid]=this.adaptor.initGpuRenderTarget(e))}resetState(){this.renderTarget=null,this.renderSurface=null}}});var Yl,Xv=p(()=>{"use strict";Yl=class{constructor(){this.contexts=[],this.msaaTextures=[],this.msaaSamples=1}}});var Kl,Yv=p(()=>{ln();Is();tt();Xv();Kl=class{init(e,t){this._renderer=e,this._renderTargetSystem=t}copyToTexture(e,t,i,s,n){let o=this._renderer,a=this._getGpuColorTexture(e),c=o.texture.getGpuSource(t.source);return o.encoder.commandEncoder.copyTextureToTexture({texture:a,origin:i},{texture:c,origin:n},s),t}startRenderPass(e,t=!0,i,s){let o=this._renderTargetSystem.getGpuRenderTarget(e),a=this.getDescriptor(e,t,i);o.descriptor=a,this._renderer.pipeline.setRenderTarget(o),this._renderer.encoder.beginRenderPass(o),this._renderer.encoder.setViewport(s)}finishRenderPass(){this._renderer.encoder.endRenderPass()}_getGpuColorTexture(e){let t=this._renderTargetSystem.getGpuRenderTarget(e);return t.contexts[0]?t.contexts[0].getCurrentTexture():this._renderer.texture.getGpuSource(e.colorTextures[0].source)}getDescriptor(e,t,i){typeof t=="boolean"&&(t=t?Le.ALL:Le.NONE);let s=this._renderTargetSystem,n=s.getGpuRenderTarget(e),o=e.colorTextures.map((u,l)=>{let h=n.contexts[l],f,d;h?f=h.getCurrentTexture().createView():f=this._renderer.texture.getGpuSource(u).createView({mipLevelCount:1}),n.msaaTextures[l]&&(d=f,f=this._renderer.texture.getTextureView(n.msaaTextures[l]));let m=t&Le.COLOR?"clear":"load";return i??(i=s.defaultClearColor),{view:f,resolveTarget:d,clearValue:i,storeOp:"store",loadOp:m}}),a;if((e.stencil||e.depth)&&!e.depthStencilTexture&&(e.ensureDepthStencilTexture(),e.depthStencilTexture.source.sampleCount=n.msaa?4:1),e.depthStencilTexture){let u=t&Le.STENCIL?"clear":"load",l=t&Le.DEPTH?"clear":"load";a={view:this._renderer.texture.getGpuSource(e.depthStencilTexture.source).createView(),stencilStoreOp:"store",stencilLoadOp:u,depthClearValue:1,depthLoadOp:l,depthStoreOp:"store"}}return{colorAttachments:o,depthStencilAttachment:a}}clear(e,t=!0,i,s){if(!t)return;let{gpu:n,encoder:o}=this._renderer,a=n.device;if(o.commandEncoder===null){let u=a.createCommandEncoder(),l=this.getDescriptor(e,t,i),h=u.beginRenderPass(l);h.setViewport(s.x,s.y,s.width,s.height,0,1),h.end();let f=u.finish();a.queue.submit([f])}else this.startRenderPass(e,t,i,s)}initGpuRenderTarget(e){e.isRoot=!0;let t=new Yl;return e.colorTextures.forEach((i,s)=>{if(i instanceof je){let n=i.resource.getContext("webgpu"),o=i.transparent?"premultiplied":"opaque";try{n.configure({device:this._renderer.gpu.device,usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.COPY_SRC,format:"bgra8unorm",alphaMode:o})}catch(a){console.error(a)}t.contexts[s]=n}if(t.msaa=i.source.antialias,i.source.antialias){let n=new se({width:0,height:0,sampleCount:4});t.msaaTextures[s]=n}}),t.msaa&&(t.msaaSamples=4,e.depthStencilTexture&&(e.depthStencilTexture.source.sampleCount=4)),t}destroyGpuRenderTarget(e){e.contexts.forEach(t=>{t.unconfigure()}),e.msaaTextures.forEach(t=>{t.destroy()}),e.msaaTextures.length=0,e.contexts.length=0}ensureDepthStencilTexture(e){let t=this._renderTargetSystem.getGpuRenderTarget(e);e.depthStencilTexture&&t.msaa&&(e.depthStencilTexture.source.sampleCount=4)}resizeGpuRenderTarget(e){let t=this._renderTargetSystem.getGpuRenderTarget(e);t.width=e.width,t.height=e.height,t.msaa&&e.colorTextures.forEach((i,s)=>{t.msaaTextures[s]?.resize(i.source.width,i.source.height,i.source._resolution)})}}});var Ma,Kv=p(()=>{B();Ip();Yv();Ma=class extends xn{constructor(e){super(e),this.adaptor=new Kl,this.adaptor.init(e,this)}};Ma.extension={type:[b.WebGPUSystem],name:"renderTarget"}});var Ia,Qv=p(()=>{B();Ia=class{constructor(){this._gpuProgramData=Object.create(null)}contextChange(e){this._gpu=e}getProgramData(e){return this._gpuProgramData[e._layoutKey]||this._createGPUProgramData(e)}_createGPUProgramData(e){let t=this._gpu.device,i=e.gpuLayout.map(n=>t.createBindGroupLayout({entries:n})),s={bindGroupLayouts:i};return this._gpuProgramData[e._layoutKey]={bindGroups:i,pipeline:t.createPipelineLayout(s)},this._gpuProgramData[e._layoutKey]}destroy(){this._gpu=null,this._gpuProgramData=null}};Ia.extension={type:[b.WebGPUSystem],name:"shader"}});var st,Zv=p(()=>{"use strict";st={};st.normal={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"}};st.add={alpha:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one",operation:"add"}};st.multiply={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"dst",dstFactor:"one-minus-src-alpha",operation:"add"}};st.screen={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src",operation:"add"}};st.overlay={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src",operation:"add"}};st.none={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"zero",dstFactor:"zero",operation:"add"}};st["normal-npm"]={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha",operation:"add"}};st["add-npm"]={alpha:{srcFactor:"one",dstFactor:"one",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one",operation:"add"}};st["screen-npm"]={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one-minus-src",operation:"add"}};st.erase={alpha:{srcFactor:"zero",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"zero",dstFactor:"one-minus-src",operation:"add"}};st.min={alpha:{srcFactor:"one",dstFactor:"one",operation:"min"},color:{srcFactor:"one",dstFactor:"one",operation:"min"}};st.max={alpha:{srcFactor:"one",dstFactor:"one",operation:"max"},color:{srcFactor:"one",dstFactor:"one",operation:"max"}}});var Fa,Jv=p(()=>{B();Gt();Zv();Fa=class{constructor(){this.defaultState=new Pe,this.defaultState.blend=!0}contextChange(e){this.gpu=e}getColorTargets(e){return[{format:"bgra8unorm",writeMask:0,blend:st[e.blendMode]||st.normal}]}destroy(){this.gpu=null}};Fa.extension={type:[b.WebGPUSystem],name:"state"}});var e1,t1=p(()=>{"use strict";e1={type:"image",upload(r,e,t){let i=r.resource,s=(r.pixelWidth|0)*(r.pixelHeight|0),n=i.byteLength/s;t.device.queue.writeTexture({texture:e},i,{offset:0,rowsPerImage:r.pixelHeight,bytesPerRow:r.pixelHeight*n},{width:r.pixelWidth,height:r.pixelHeight,depthOrArrayLayers:1})}}});var Fp,mR,r1,i1=p(()=>{"use strict";Fp={"bc1-rgba-unorm":{blockBytes:8,blockWidth:4,blockHeight:4},"bc2-rgba-unorm":{blockBytes:16,blockWidth:4,blockHeight:4},"bc3-rgba-unorm":{blockBytes:16,blockWidth:4,blockHeight:4},"bc7-rgba-unorm":{blockBytes:16,blockWidth:4,blockHeight:4},"etc1-rgb-unorm":{blockBytes:8,blockWidth:4,blockHeight:4},"etc2-rgba8unorm":{blockBytes:16,blockWidth:4,blockHeight:4},"astc-4x4-unorm":{blockBytes:16,blockWidth:4,blockHeight:4}},mR={blockBytes:4,blockWidth:1,blockHeight:1},r1={type:"compressed",upload(r,e,t){let i=r.pixelWidth,s=r.pixelHeight,n=Fp[r.format]||mR;for(let o=0;o<r.resource.length;o++){let a=r.resource[o],c=Math.ceil(i/n.blockWidth)*n.blockBytes;t.device.queue.writeTexture({texture:e,mipLevel:o},a,{offset:0,bytesPerRow:c},{width:Math.ceil(i/n.blockWidth)*n.blockWidth,height:Math.ceil(s/n.blockHeight)*n.blockHeight,depthOrArrayLayers:1}),i=Math.max(i>>1,1),s=Math.max(s>>1,1)}}}});var Ql,Up=p(()=>{Ce();pe();Ql={type:"image",upload(r,e,t){let i=r.resource;if(!i)return;if(globalThis.HTMLImageElement&&i instanceof HTMLImageElement){let a=W.get().createCanvas(i.width,i.height);a.getContext("2d").drawImage(i,0,0,i.width,i.height),r.resource=a,N("ImageSource: Image element passed, converting to canvas and replacing resource.")}let s=Math.min(e.width,r.resourceWidth||r.pixelWidth),n=Math.min(e.height,r.resourceHeight||r.pixelHeight),o=r.alphaMode==="premultiply-alpha-on-upload";t.device.queue.copyExternalImageToTexture({source:i},{texture:e,premultipliedAlpha:o},{width:s,height:n})}}});var s1,n1=p(()=>{Up();s1={type:"video",upload(r,e,t){Ql.upload(r,e,t)}}});var Zl,o1=p(()=>{"use strict";Zl=class{constructor(e){this.device=e,this.sampler=e.createSampler({minFilter:"linear"}),this.pipelines={}}_getMipmapPipeline(e){let t=this.pipelines[e];return t||(this.mipmapShaderModule||(this.mipmapShaderModule=this.device.createShaderModule({code:`
911
- var<private> pos : array<vec2<f32>, 3> = array<vec2<f32>, 3>(
912
- vec2<f32>(-1.0, -1.0), vec2<f32>(-1.0, 3.0), vec2<f32>(3.0, -1.0));
913
-
914
- struct VertexOutput {
915
- @builtin(position) position : vec4<f32>,
916
- @location(0) texCoord : vec2<f32>,
917
- };
918
-
919
- @vertex
920
- fn vertexMain(@builtin(vertex_index) vertexIndex : u32) -> VertexOutput {
921
- var output : VertexOutput;
922
- output.texCoord = pos[vertexIndex] * vec2<f32>(0.5, -0.5) + vec2<f32>(0.5);
923
- output.position = vec4<f32>(pos[vertexIndex], 0.0, 1.0);
924
- return output;
925
- }
926
-
927
- @group(0) @binding(0) var imgSampler : sampler;
928
- @group(0) @binding(1) var img : texture_2d<f32>;
929
-
930
- @fragment
931
- fn fragmentMain(@location(0) texCoord : vec2<f32>) -> @location(0) vec4<f32> {
932
- return textureSample(img, imgSampler, texCoord);
933
- }
934
- `})),t=this.device.createRenderPipeline({layout:"auto",vertex:{module:this.mipmapShaderModule,entryPoint:"vertexMain"},fragment:{module:this.mipmapShaderModule,entryPoint:"fragmentMain",targets:[{format:e}]}}),this.pipelines[e]=t),t}generateMipmap(e){let t=this._getMipmapPipeline(e.format);if(e.dimension==="3d"||e.dimension==="1d")throw new Error("Generating mipmaps for non-2d textures is currently unsupported!");let i=e,s=e.depthOrArrayLayers||1,n=e.usage&GPUTextureUsage.RENDER_ATTACHMENT;if(!n){let c={size:{width:Math.ceil(e.width/2),height:Math.ceil(e.height/2),depthOrArrayLayers:s},format:e.format,usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC|GPUTextureUsage.RENDER_ATTACHMENT,mipLevelCount:e.mipLevelCount-1};i=this.device.createTexture(c)}let o=this.device.createCommandEncoder({}),a=t.getBindGroupLayout(0);for(let c=0;c<s;++c){let u=e.createView({baseMipLevel:0,mipLevelCount:1,dimension:"2d",baseArrayLayer:c,arrayLayerCount:1}),l=n?1:0;for(let h=1;h<e.mipLevelCount;++h){let f=i.createView({baseMipLevel:l++,mipLevelCount:1,dimension:"2d",baseArrayLayer:c,arrayLayerCount:1}),d=o.beginRenderPass({colorAttachments:[{view:f,storeOp:"store",loadOp:"clear",clearValue:{r:0,g:0,b:0,a:0}}]}),m=this.device.createBindGroup({layout:a,entries:[{binding:0,resource:this.sampler},{binding:1,resource:u}]});d.setPipeline(t),d.setBindGroup(0,m),d.draw(3,1,0,0),d.end(),u=f}}if(!n){let c={width:Math.ceil(e.width/2),height:Math.ceil(e.height/2),depthOrArrayLayers:s};for(let u=1;u<e.mipLevelCount;++u)o.copyTextureToTexture({texture:i,mipLevel:u-1},{texture:e,mipLevel:u},c),c.width=Math.ceil(c.width/2),c.height=Math.ceil(c.height/2)}return this.device.queue.submit([o.finish()]),n||i.destroy(),e}}});var Ua,a1=p(()=>{Ce();B();it();rn();Xr();t1();i1();Up();n1();o1();Ua=class{constructor(e){this.managedTextures=[],this._gpuSources=Object.create(null),this._gpuSamplers=Object.create(null),this._bindGroupHash=Object.create(null),this._textureViewHash=Object.create(null),this._uploads={image:Ql,buffer:e1,video:s1,compressed:r1},this._renderer=e,e.renderableGC.addManagedHash(this,"_gpuSources"),e.renderableGC.addManagedHash(this,"_gpuSamplers"),e.renderableGC.addManagedHash(this,"_bindGroupHash"),e.renderableGC.addManagedHash(this,"_textureViewHash")}contextChange(e){this._gpu=e}initSource(e){if(e.autoGenerateMipmaps){let c=Math.max(e.pixelWidth,e.pixelHeight);e.mipLevelCount=Math.floor(Math.log2(c))+1}let t=GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST;e.uploadMethodId!=="compressed"&&(t|=GPUTextureUsage.RENDER_ATTACHMENT,t|=GPUTextureUsage.COPY_SRC);let i=Fp[e.format]||{blockBytes:4,blockWidth:1,blockHeight:1},s=Math.ceil(e.pixelWidth/i.blockWidth)*i.blockWidth,n=Math.ceil(e.pixelHeight/i.blockHeight)*i.blockHeight,o={label:e.label,size:{width:s,height:n},format:e.format,sampleCount:e.sampleCount,mipLevelCount:e.mipLevelCount,dimension:e.dimension,usage:t},a=this._gpu.device.createTexture(o);return this._gpuSources[e.uid]=a,this.managedTextures.includes(e)||(e.on("update",this.onSourceUpdate,this),e.on("resize",this.onSourceResize,this),e.on("destroy",this.onSourceDestroy,this),e.on("unload",this.onSourceUnload,this),e.on("updateMipmaps",this.onUpdateMipmaps,this),this.managedTextures.push(e)),this.onSourceUpdate(e),a}onSourceUpdate(e){let t=this.getGpuSource(e);t&&(this._uploads[e.uploadMethodId]&&this._uploads[e.uploadMethodId].upload(e,t,this._gpu),e.autoGenerateMipmaps&&e.mipLevelCount>1&&this.onUpdateMipmaps(e))}onSourceUnload(e){let t=this._gpuSources[e.uid];t&&(this._gpuSources[e.uid]=null,t.destroy())}onUpdateMipmaps(e){this._mipmapGenerator||(this._mipmapGenerator=new Zl(this._gpu.device));let t=this.getGpuSource(e);this._mipmapGenerator.generateMipmap(t)}onSourceDestroy(e){e.off("update",this.onSourceUpdate,this),e.off("unload",this.onSourceUnload,this),e.off("destroy",this.onSourceDestroy,this),e.off("resize",this.onSourceResize,this),e.off("updateMipmaps",this.onUpdateMipmaps,this),this.managedTextures.splice(this.managedTextures.indexOf(e),1),this.onSourceUnload(e)}onSourceResize(e){let t=this._gpuSources[e.uid];t?(t.width!==e.pixelWidth||t.height!==e.pixelHeight)&&(this._textureViewHash[e.uid]=null,this._bindGroupHash[e.uid]=null,this.onSourceUnload(e),this.initSource(e)):this.initSource(e)}_initSampler(e){return this._gpuSamplers[e._resourceId]=this._gpu.device.createSampler(e),this._gpuSamplers[e._resourceId]}getGpuSampler(e){return this._gpuSamplers[e._resourceId]||this._initSampler(e)}getGpuSource(e){return this._gpuSources[e.uid]||this.initSource(e)}getTextureBindGroup(e){return this._bindGroupHash[e.uid]??this._createTextureBindGroup(e)}_createTextureBindGroup(e){let t=e.source;return this._bindGroupHash[e.uid]=new Ne({0:t,1:t.style,2:new ce({uTextureMatrix:{type:"mat3x3<f32>",value:e.textureMatrix.mapCoord}})}),this._bindGroupHash[e.uid]}getTextureView(e){let t=e.source;return this._textureViewHash[t.uid]??this._createTextureView(t)}_createTextureView(e){return this._textureViewHash[e.uid]=this.getGpuSource(e).createView(),this._textureViewHash[e.uid]}generateCanvas(e){let t=this._renderer,i=t.gpu.device.createCommandEncoder(),s=W.get().createCanvas();s.width=e.source.pixelWidth,s.height=e.source.pixelHeight;let n=s.getContext("webgpu");return n.configure({device:t.gpu.device,usage:GPUTextureUsage.COPY_DST|GPUTextureUsage.COPY_SRC,format:W.get().getNavigator().gpu.getPreferredCanvasFormat(),alphaMode:"premultiplied"}),i.copyTextureToTexture({texture:t.texture.getGpuSource(e.source),origin:{x:0,y:0}},{texture:n.getCurrentTexture()},{width:s.width,height:s.height}),t.gpu.device.queue.submit([i.finish()]),s}getPixels(e){let t=this.generateCanvas(e),i=yt.getOptimalCanvasAndContext(t.width,t.height),s=i.context;s.drawImage(t,0,0);let{width:n,height:o}=t,a=s.getImageData(0,0,n,o),c=new Uint8ClampedArray(a.data.buffer);return yt.returnCanvasAndContext(i),{pixels:c,width:n,height:o}}destroy(){this.managedTextures.slice().forEach(e=>this.onSourceDestroy(e)),this.managedTextures=null;for(let e of Object.keys(this._bindGroupHash)){let t=Number(e);this._bindGroupHash[t]?.destroy(),this._bindGroupHash[t]=null}this._gpu=null,this._mipmapGenerator=null,this._gpuSources=null,this._bindGroupHash=null,this._textureViewHash=null,this._gpuSamplers=null}};Ua.extension={type:[b.WebGPUSystem],name:"texture"}});var h1={};Tg(h1,{WebGPURenderer:()=>Op});var pR,gR,xR,c1,u1,l1,Op,d1=p(()=>{B();CS();AS();PS();ra();Cp();ir();kv();Av();Pv();Bv();Rv();Dv();Mv();Lv();Vv();Hv();Kv();Qv();Jv();a1();pR=[...Hl,Ba,Ea,mn,ka,va,Ua,Ma,Ia,Fa,Da,Ca,Aa,Sa],gR=[...Wl,Ra],xR=[na,sa,ia],c1=[],u1=[],l1=[];O.handleByNamedList(b.WebGPUSystem,c1);O.handleByNamedList(b.WebGPUPipes,u1);O.handleByNamedList(b.WebGPUPipesAdaptor,l1);O.add(...pR,...gR,...xR);Op=class extends ti{constructor(){let e={name:"webgpu",type:Ie.WEBGPU,systems:c1,renderPipes:u1,renderPipeAdaptors:l1};super(e)}}});var Oa,f1=p(()=>{B();te();Qr();Ro();Do();un();Zr();Zu();Ot();it();Oa=class{contextChange(e){let t=new ce({uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uTransformMatrix:{value:new R,type:"mat3x3<f32>"},uRound:{value:0,type:"f32"}}),i=e.limits.maxBatchableTextures,s=er({name:"graphics",bits:[zs,Hs(i),cn,rr]});this.shader=new ke({glProgram:s,resources:{localUniforms:t,batchSamplers:Ws(i)}})}execute(e,t){let i=t.context,s=i.customShader||this.shader,n=e.renderer,o=n.graphicsContext,{batcher:a,instructions:c}=o.getContextRenderData(i);s.groups[0]=n.globalUniforms.bindGroup,n.state.set(e.state),n.shader.bind(s),n.geometry.bind(a.geometry,s.glProgram);let u=c.instructions;for(let l=0;l<c.instructionSize;l++){let h=u[l];if(h.size){for(let f=0;f<h.textures.count;f++)n.texture.bind(h.textures.textures[f],f);n.geometry.draw(h.topology,h.size,h.start)}}}destroy(){this.shader.destroy(!0),this.shader=null}};Oa.extension={type:[b.WebGLPipesAdaptor],name:"graphics"}});var Ga,m1=p(()=>{B();te();Qr();un();Zr();ap();Ot();le();pe();Ga=class{init(){let e=er({name:"mesh",bits:[cn,kS,rr]});this._shader=new ke({glProgram:e,resources:{uTexture:M.EMPTY.source,textureUniforms:{uTextureMatrix:{type:"mat3x3<f32>",value:new R}}}})}execute(e,t){let i=e.renderer,s=t._shader;if(s){if(!s.glProgram){N("Mesh shader has no glProgram",t.shader);return}}else{s=this._shader;let n=t.texture,o=n.source;s.resources.uTexture=o,s.resources.uSampler=o.style,s.resources.textureUniforms.uniforms.uTextureMatrix=n.textureMatrix.mapCoord}s.groups[100]=i.globalUniforms.bindGroup,s.groups[101]=e.localUniformsBindGroup,i.encoder.draw({geometry:t._geometry,shader:s,state:t.state})}destroy(){this._shader.destroy(!0),this._shader=null}};Ga.extension={type:[b.WebGLPipesAdaptor],name:"mesh"}});var Na,p1=p(()=>{B();Gt();Na=class{constructor(){this._tempState=Pe.for2d(),this._didUploadHash={}}init(e){e.renderer.runners.contextChange.add(this)}contextChange(){this._didUploadHash={}}start(e,t,i){let s=e.renderer,n=this._didUploadHash[i.uid];s.shader.bind(i,n),n||(this._didUploadHash[i.uid]=!0),s.shader.updateUniformGroup(s.globalUniforms.uniformGroup),s.geometry.bind(t,i.glProgram)}execute(e,t){let i=e.renderer;this._tempState.blendMode=t.blendMode,i.state.set(this._tempState);let s=t.textures.textures;for(let n=0;n<t.textures.count;n++)i.texture.bind(s[n],n);i.geometry.draw(t.topology,t.size,t.start)}};Na.extension={type:[b.WebGLPipesAdaptor],name:"batch"}});var La,g1=p(()=>{"use strict";La=(r=>(r[r.ELEMENT_ARRAY_BUFFER=34963]="ELEMENT_ARRAY_BUFFER",r[r.ARRAY_BUFFER=34962]="ARRAY_BUFFER",r[r.UNIFORM_BUFFER=35345]="UNIFORM_BUFFER",r))(La||{})});var Jl,x1=p(()=>{"use strict";Jl=class{constructor(e,t){this._lastBindBaseLocation=-1,this._lastBindCallId=-1,this.buffer=e||null,this.updateID=-1,this.byteLength=-1,this.type=t}}});var za,_1=p(()=>{B();Cr();g1();x1();za=class{constructor(e){this._gpuBuffers=Object.create(null),this._boundBufferBases=Object.create(null),this._minBaseLocation=0,this._nextBindBaseIndex=this._minBaseLocation,this._bindCallId=0,this._renderer=e,this._renderer.renderableGC.addManagedHash(this,"_gpuBuffers")}destroy(){this._renderer=null,this._gl=null,this._gpuBuffers=null,this._boundBufferBases=null}contextChange(){this._gl=this._renderer.gl,this._gpuBuffers=Object.create(null),this._maxBindings=this._renderer.limits.maxUniformBindings}getGlBuffer(e){return this._gpuBuffers[e.uid]||this.createGLBuffer(e)}bind(e){let{_gl:t}=this,i=this.getGlBuffer(e);t.bindBuffer(i.type,i.buffer)}bindBufferBase(e,t){let{_gl:i}=this;this._boundBufferBases[t]!==e&&(this._boundBufferBases[t]=e,e._lastBindBaseLocation=t,i.bindBufferBase(i.UNIFORM_BUFFER,t,e.buffer))}nextBindBase(e){this._bindCallId++,this._minBaseLocation=0,e&&(this._boundBufferBases[0]=null,this._minBaseLocation=1,this._nextBindBaseIndex<1&&(this._nextBindBaseIndex=1))}freeLocationForBufferBase(e){let t=this.getLastBindBaseLocation(e);if(t>=this._minBaseLocation)return e._lastBindCallId=this._bindCallId,t;let i=0,s=this._nextBindBaseIndex;for(;i<2;){s>=this._maxBindings&&(s=this._minBaseLocation,i++);let n=this._boundBufferBases[s];if(n&&n._lastBindCallId===this._bindCallId){s++;continue}break}return t=s,this._nextBindBaseIndex=s+1,i>=2?-1:(e._lastBindCallId=this._bindCallId,this._boundBufferBases[t]=null,t)}getLastBindBaseLocation(e){let t=e._lastBindBaseLocation;return this._boundBufferBases[t]===e?t:-1}bindBufferRange(e,t,i,s){let{_gl:n}=this;i||(i=0),t||(t=0),this._boundBufferBases[t]=null,n.bindBufferRange(n.UNIFORM_BUFFER,t||0,e.buffer,i*256,s||256)}updateBuffer(e){let{_gl:t}=this,i=this.getGlBuffer(e);if(e._updateID===i.updateID)return i;i.updateID=e._updateID,t.bindBuffer(i.type,i.buffer);let s=e.data,n=e.descriptor.usage&Q.STATIC?t.STATIC_DRAW:t.DYNAMIC_DRAW;return s?i.byteLength>=s.byteLength?t.bufferSubData(i.type,0,s,0,e._updateSize/s.BYTES_PER_ELEMENT):(i.byteLength=s.byteLength,t.bufferData(i.type,s,n)):(i.byteLength=e.descriptor.size,t.bufferData(i.type,i.byteLength,n)),i}destroyAll(){let e=this._gl;for(let t in this._gpuBuffers)e.deleteBuffer(this._gpuBuffers[t].buffer);this._gpuBuffers=Object.create(null)}onBufferDestroy(e,t){let i=this._gpuBuffers[e.uid],s=this._gl;t||s.deleteBuffer(i.buffer),this._gpuBuffers[e.uid]=null}createGLBuffer(e){let{_gl:t}=this,i=La.ARRAY_BUFFER;e.descriptor.usage&Q.INDEX?i=La.ELEMENT_ARRAY_BUFFER:e.descriptor.usage&Q.UNIFORM&&(i=La.UNIFORM_BUFFER);let s=new Jl(t.createBuffer(),i);return this._gpuBuffers[e.uid]=s,e.on("destroy",this.onBufferDestroy,this),s}resetState(){this._boundBufferBases=Object.create(null)}};za.extension={type:[b.WebGLSystem],name:"buffer"}});var Gp,y1,T1=p(()=>{Ce();B();pe();Gp=class b1{constructor(e){this.supports={uint32Indices:!0,uniformBufferObject:!0,vertexArrayObject:!0,srgbTextures:!0,nonPowOf2wrapping:!0,msaa:!0,nonPowOf2mipmaps:!0},this._renderer=e,this.extensions=Object.create(null),this.handleContextLost=this.handleContextLost.bind(this),this.handleContextRestored=this.handleContextRestored.bind(this)}get isLost(){return!this.gl||this.gl.isContextLost()}contextChange(e){this.gl=e,this._renderer.gl=e}init(e){e={...b1.defaultOptions,...e};let t=this.multiView=e.multiView;if(e.context&&t&&(N("Renderer created with both a context and multiview enabled. Disabling multiView as both cannot work together."),t=!1),t?this.canvas=W.get().createCanvas(this._renderer.canvas.width,this._renderer.canvas.height):this.canvas=this._renderer.view.canvas,e.context)this.initFromContext(e.context);else{let i=this._renderer.background.alpha<1,s=e.premultipliedAlpha??!0,n=e.antialias&&!this._renderer.backBuffer.useBackBuffer;this.createContext(e.preferWebGLVersion,{alpha:i,premultipliedAlpha:s,antialias:n,stencil:!0,preserveDrawingBuffer:e.preserveDrawingBuffer,powerPreference:e.powerPreference??"default"})}}ensureCanvasSize(e){if(!this.multiView){e!==this.canvas&&N("multiView is disabled, but targetCanvas is not the main canvas");return}let{canvas:t}=this;(t.width<e.width||t.height<e.height)&&(t.width=Math.max(e.width,e.width),t.height=Math.max(e.height,e.height))}initFromContext(e){this.gl=e,this.webGLVersion=e instanceof W.get().getWebGLRenderingContext()?1:2,this.getExtensions(),this.validateContext(e),this._renderer.runners.contextChange.emit(e);let t=this._renderer.view.canvas;t.addEventListener("webglcontextlost",this.handleContextLost,!1),t.addEventListener("webglcontextrestored",this.handleContextRestored,!1)}createContext(e,t){let i,s=this.canvas;if(e===2&&(i=s.getContext("webgl2",t)),!i&&(i=s.getContext("webgl",t),!i))throw new Error("This browser does not support WebGL. Try using the canvas renderer");this.gl=i,this.initFromContext(this.gl)}getExtensions(){let{gl:e}=this,t={anisotropicFiltering:e.getExtension("EXT_texture_filter_anisotropic"),floatTextureLinear:e.getExtension("OES_texture_float_linear"),s3tc:e.getExtension("WEBGL_compressed_texture_s3tc"),s3tc_sRGB:e.getExtension("WEBGL_compressed_texture_s3tc_srgb"),etc:e.getExtension("WEBGL_compressed_texture_etc"),etc1:e.getExtension("WEBGL_compressed_texture_etc1"),pvrtc:e.getExtension("WEBGL_compressed_texture_pvrtc")||e.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"),atc:e.getExtension("WEBGL_compressed_texture_atc"),astc:e.getExtension("WEBGL_compressed_texture_astc"),bptc:e.getExtension("EXT_texture_compression_bptc"),rgtc:e.getExtension("EXT_texture_compression_rgtc"),loseContext:e.getExtension("WEBGL_lose_context")};if(this.webGLVersion===1)this.extensions={...t,drawBuffers:e.getExtension("WEBGL_draw_buffers"),depthTexture:e.getExtension("WEBGL_depth_texture"),vertexArrayObject:e.getExtension("OES_vertex_array_object")||e.getExtension("MOZ_OES_vertex_array_object")||e.getExtension("WEBKIT_OES_vertex_array_object"),uint32ElementIndex:e.getExtension("OES_element_index_uint"),floatTexture:e.getExtension("OES_texture_float"),floatTextureLinear:e.getExtension("OES_texture_float_linear"),textureHalfFloat:e.getExtension("OES_texture_half_float"),textureHalfFloatLinear:e.getExtension("OES_texture_half_float_linear"),vertexAttribDivisorANGLE:e.getExtension("ANGLE_instanced_arrays"),srgb:e.getExtension("EXT_sRGB")};else{this.extensions={...t,colorBufferFloat:e.getExtension("EXT_color_buffer_float")};let i=e.getExtension("WEBGL_provoking_vertex");i&&i.provokingVertexWEBGL(i.FIRST_VERTEX_CONVENTION_WEBGL)}}handleContextLost(e){e.preventDefault(),this._contextLossForced&&(this._contextLossForced=!1,setTimeout(()=>{this.gl.isContextLost()&&this.extensions.loseContext?.restoreContext()},0))}handleContextRestored(){this.getExtensions(),this._renderer.runners.contextChange.emit(this.gl)}destroy(){let e=this._renderer.view.canvas;this._renderer=null,e.removeEventListener("webglcontextlost",this.handleContextLost),e.removeEventListener("webglcontextrestored",this.handleContextRestored),this.gl.useProgram(null),this.extensions.loseContext?.loseContext()}forceContextLoss(){this.extensions.loseContext?.loseContext(),this._contextLossForced=!0}validateContext(e){let t=e.getContextAttributes();t&&!t.stencil&&N("Provided WebGL context does not have a stencil buffer, masks may not render correctly");let i=this.supports,s=this.webGLVersion===2,n=this.extensions;i.uint32Indices=s||!!n.uint32ElementIndex,i.uniformBufferObject=s,i.vertexArrayObject=s||!!n.vertexArrayObject,i.srgbTextures=s||!!n.srgb,i.nonPowOf2wrapping=s,i.nonPowOf2mipmaps=s,i.msaa=s,i.uint32Indices||N("Provided WebGL context does not support 32 index buffer, large scenes may not render correctly")}};Gp.extension={type:[b.WebGLSystem],name:"context"};Gp.defaultOptions={context:null,premultipliedAlpha:!0,preserveDrawingBuffer:!1,powerPreference:void 0,preferWebGLVersion:2,multiView:!1};y1=Gp});var eh,Np,ie,Lp=p(()=>{"use strict";eh=(r=>(r[r.RGBA=6408]="RGBA",r[r.RGB=6407]="RGB",r[r.RG=33319]="RG",r[r.RED=6403]="RED",r[r.RGBA_INTEGER=36249]="RGBA_INTEGER",r[r.RGB_INTEGER=36248]="RGB_INTEGER",r[r.RG_INTEGER=33320]="RG_INTEGER",r[r.RED_INTEGER=36244]="RED_INTEGER",r[r.ALPHA=6406]="ALPHA",r[r.LUMINANCE=6409]="LUMINANCE",r[r.LUMINANCE_ALPHA=6410]="LUMINANCE_ALPHA",r[r.DEPTH_COMPONENT=6402]="DEPTH_COMPONENT",r[r.DEPTH_STENCIL=34041]="DEPTH_STENCIL",r))(eh||{}),Np=(r=>(r[r.TEXTURE_2D=3553]="TEXTURE_2D",r[r.TEXTURE_CUBE_MAP=34067]="TEXTURE_CUBE_MAP",r[r.TEXTURE_2D_ARRAY=35866]="TEXTURE_2D_ARRAY",r[r.TEXTURE_CUBE_MAP_POSITIVE_X=34069]="TEXTURE_CUBE_MAP_POSITIVE_X",r[r.TEXTURE_CUBE_MAP_NEGATIVE_X=34070]="TEXTURE_CUBE_MAP_NEGATIVE_X",r[r.TEXTURE_CUBE_MAP_POSITIVE_Y=34071]="TEXTURE_CUBE_MAP_POSITIVE_Y",r[r.TEXTURE_CUBE_MAP_NEGATIVE_Y=34072]="TEXTURE_CUBE_MAP_NEGATIVE_Y",r[r.TEXTURE_CUBE_MAP_POSITIVE_Z=34073]="TEXTURE_CUBE_MAP_POSITIVE_Z",r[r.TEXTURE_CUBE_MAP_NEGATIVE_Z=34074]="TEXTURE_CUBE_MAP_NEGATIVE_Z",r))(Np||{}),ie=(r=>(r[r.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",r[r.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",r[r.UNSIGNED_SHORT_5_6_5=33635]="UNSIGNED_SHORT_5_6_5",r[r.UNSIGNED_SHORT_4_4_4_4=32819]="UNSIGNED_SHORT_4_4_4_4",r[r.UNSIGNED_SHORT_5_5_5_1=32820]="UNSIGNED_SHORT_5_5_5_1",r[r.UNSIGNED_INT=5125]="UNSIGNED_INT",r[r.UNSIGNED_INT_10F_11F_11F_REV=35899]="UNSIGNED_INT_10F_11F_11F_REV",r[r.UNSIGNED_INT_2_10_10_10_REV=33640]="UNSIGNED_INT_2_10_10_10_REV",r[r.UNSIGNED_INT_24_8=34042]="UNSIGNED_INT_24_8",r[r.UNSIGNED_INT_5_9_9_9_REV=35902]="UNSIGNED_INT_5_9_9_9_REV",r[r.BYTE=5120]="BYTE",r[r.SHORT=5122]="SHORT",r[r.INT=5124]="INT",r[r.FLOAT=5126]="FLOAT",r[r.FLOAT_32_UNSIGNED_INT_24_8_REV=36269]="FLOAT_32_UNSIGNED_INT_24_8_REV",r[r.HALF_FLOAT=36193]="HALF_FLOAT",r))(ie||{})});function S1(r){return w1[r]??w1.float32}var w1,v1=p(()=>{Lp();w1={uint8x2:ie.UNSIGNED_BYTE,uint8x4:ie.UNSIGNED_BYTE,sint8x2:ie.BYTE,sint8x4:ie.BYTE,unorm8x2:ie.UNSIGNED_BYTE,unorm8x4:ie.UNSIGNED_BYTE,snorm8x2:ie.BYTE,snorm8x4:ie.BYTE,uint16x2:ie.UNSIGNED_SHORT,uint16x4:ie.UNSIGNED_SHORT,sint16x2:ie.SHORT,sint16x4:ie.SHORT,unorm16x2:ie.UNSIGNED_SHORT,unorm16x4:ie.UNSIGNED_SHORT,snorm16x2:ie.SHORT,snorm16x4:ie.SHORT,float16x2:ie.HALF_FLOAT,float16x4:ie.HALF_FLOAT,float32:ie.FLOAT,float32x2:ie.FLOAT,float32x3:ie.FLOAT,float32x4:ie.FLOAT,uint32:ie.UNSIGNED_INT,uint32x2:ie.UNSIGNED_INT,uint32x3:ie.UNSIGNED_INT,uint32x4:ie.UNSIGNED_INT,sint32:ie.INT,sint32x2:ie.INT,sint32x3:ie.INT,sint32x4:ie.INT}});var _R,Va,C1=p(()=>{B();qi();Dp();v1();_R={"point-list":0,"line-list":1,"line-strip":3,"triangle-list":4,"triangle-strip":5},Va=class{constructor(e){this._geometryVaoHash=Object.create(null),this._renderer=e,this._activeGeometry=null,this._activeVao=null,this.hasVao=!0,this.hasInstance=!0,this._renderer.renderableGC.addManagedHash(this,"_geometryVaoHash")}contextChange(){let e=this.gl=this._renderer.gl;if(!this._renderer.context.supports.vertexArrayObject)throw new Error("[PixiJS] Vertex Array Objects are not supported on this device");let t=this._renderer.context.extensions.vertexArrayObject;t&&(e.createVertexArray=()=>t.createVertexArrayOES(),e.bindVertexArray=s=>t.bindVertexArrayOES(s),e.deleteVertexArray=s=>t.deleteVertexArrayOES(s));let i=this._renderer.context.extensions.vertexAttribDivisorANGLE;i&&(e.drawArraysInstanced=(s,n,o,a)=>{i.drawArraysInstancedANGLE(s,n,o,a)},e.drawElementsInstanced=(s,n,o,a,c)=>{i.drawElementsInstancedANGLE(s,n,o,a,c)},e.vertexAttribDivisor=(s,n)=>i.vertexAttribDivisorANGLE(s,n)),this._activeGeometry=null,this._activeVao=null,this._geometryVaoHash=Object.create(null)}bind(e,t){let i=this.gl;this._activeGeometry=e;let s=this.getVao(e,t);this._activeVao!==s&&(this._activeVao=s,i.bindVertexArray(s)),this.updateBuffers()}resetState(){this.unbind()}updateBuffers(){let e=this._activeGeometry,t=this._renderer.buffer;for(let i=0;i<e.buffers.length;i++){let s=e.buffers[i];t.updateBuffer(s)}}checkCompatibility(e,t){let i=e.attributes,s=t._attributeData;for(let n in s)if(!i[n])throw new Error(`shader and geometry incompatible, geometry missing the "${n}" attribute`)}getSignature(e,t){let i=e.attributes,s=t._attributeData,n=["g",e.uid];for(let o in i)s[o]&&n.push(o,s[o].location);return n.join("-")}getVao(e,t){return this._geometryVaoHash[e.uid]?.[t._key]||this.initGeometryVao(e,t)}initGeometryVao(e,t,i=!0){let s=this._renderer.gl,n=this._renderer.buffer;this._renderer.shader._getProgramData(t),this.checkCompatibility(e,t);let o=this.getSignature(e,t);this._geometryVaoHash[e.uid]||(this._geometryVaoHash[e.uid]=Object.create(null),e.on("destroy",this.onGeometryDestroy,this));let a=this._geometryVaoHash[e.uid],c=a[o];if(c)return a[t._key]=c,c;Xl(e,t._attributeData);let u=e.buffers;c=s.createVertexArray(),s.bindVertexArray(c);for(let l=0;l<u.length;l++){let h=u[l];n.bind(h)}return this.activateVao(e,t),a[t._key]=c,a[o]=c,s.bindVertexArray(null),c}onGeometryDestroy(e,t){let i=this._geometryVaoHash[e.uid],s=this.gl;if(i){if(t)for(let n in i)this._activeVao!==i[n]&&this.unbind(),s.deleteVertexArray(i[n]);this._geometryVaoHash[e.uid]=null}}destroyAll(e=!1){let t=this.gl;for(let i in this._geometryVaoHash){if(e)for(let s in this._geometryVaoHash[i]){let n=this._geometryVaoHash[i];this._activeVao!==n&&this.unbind(),t.deleteVertexArray(n[s])}this._geometryVaoHash[i]=null}}activateVao(e,t){let i=this._renderer.gl,s=this._renderer.buffer,n=e.attributes;e.indexBuffer&&s.bind(e.indexBuffer);let o=null;for(let a in n){let c=n[a],u=c.buffer,l=s.getGlBuffer(u),h=t._attributeData[a];if(h){o!==l&&(s.bind(u),o=l);let f=h.location;i.enableVertexAttribArray(f);let d=ut(c.format),m=S1(c.format);if(h.format?.substring(1,4)==="int"?i.vertexAttribIPointer(f,d.size,m,c.stride,c.offset):i.vertexAttribPointer(f,d.size,m,d.normalised,c.stride,c.offset),c.instance)if(this.hasInstance){let x=c.divisor??1;i.vertexAttribDivisor(f,x)}else throw new Error("geometry error, GPU Instancing is not supported on this device")}}}draw(e,t,i,s){let{gl:n}=this._renderer,o=this._activeGeometry,a=_R[e||o.topology];if(s??(s=o.instanceCount),o.indexBuffer){let c=o.indexBuffer.data.BYTES_PER_ELEMENT,u=c===2?n.UNSIGNED_SHORT:n.UNSIGNED_INT;s>1?n.drawElementsInstanced(a,t||o.indexBuffer.data.length,u,(i||0)*c,s):n.drawElements(a,t||o.indexBuffer.data.length,u,(i||0)*c)}else s>1?n.drawArraysInstanced(a,i||0,t||o.getSize(),s):n.drawArrays(a,i||0,t||o.getSize());return this}unbind(){this.gl.bindVertexArray(null),this._activeVao=null,this._activeGeometry=null}destroy(){this._renderer=null,this.gl=null,this._activeVao=null,this._activeGeometry=null}};Va.extension={type:[b.WebGLSystem],name:"geometry"}});var bR,zp,k1,A1=p(()=>{B();pe();Os();Ot();Gt();tt();le();$i();bR=new At({attributes:{aPosition:[-1,-1,3,-1,-1,3]}}),zp=class E1{constructor(e){this.useBackBuffer=!1,this._useBackBufferThisRender=!1,this._renderer=e}init(e={}){let{useBackBuffer:t,antialias:i}={...E1.defaultOptions,...e};this.useBackBuffer=t,this._antialias=i,this._renderer.context.supports.msaa||(N("antialiasing, is not supported on when using the back buffer"),this._antialias=!1),this._state=Pe.for2d();let s=new Pt({vertex:`
935
- attribute vec2 aPosition;
936
- out vec2 vUv;
937
-
938
- void main() {
939
- gl_Position = vec4(aPosition, 0.0, 1.0);
940
-
941
- vUv = (aPosition + 1.0) / 2.0;
942
-
943
- // flip dem UVs
944
- vUv.y = 1.0 - vUv.y;
945
- }`,fragment:`
946
- in vec2 vUv;
947
- out vec4 finalColor;
948
-
949
- uniform sampler2D uTexture;
950
-
951
- void main() {
952
- finalColor = texture(uTexture, vUv);
953
- }`,name:"big-triangle"});this._bigTriangleShader=new ke({glProgram:s,resources:{uTexture:M.WHITE.source}})}renderStart(e){let t=this._renderer.renderTarget.getRenderTarget(e.target);if(this._useBackBufferThisRender=this.useBackBuffer&&!!t.isRoot,this._useBackBufferThisRender){let i=this._renderer.renderTarget.getRenderTarget(e.target);this._targetTexture=i.colorTexture,e.target=this._getBackBufferTexture(i.colorTexture)}}renderEnd(){this._presentBackBuffer()}_presentBackBuffer(){let e=this._renderer;e.renderTarget.finishRenderPass(),this._useBackBufferThisRender&&(e.renderTarget.bind(this._targetTexture,!1),this._bigTriangleShader.resources.uTexture=this._backBufferTexture.source,e.encoder.draw({geometry:bR,shader:this._bigTriangleShader,state:this._state}))}_getBackBufferTexture(e){return this._backBufferTexture=this._backBufferTexture||new M({source:new se({width:e.width,height:e.height,resolution:e._resolution,antialias:this._antialias})}),this._backBufferTexture.source.resize(e.width,e.height,e._resolution),this._backBufferTexture}destroy(){this._backBufferTexture&&(this._backBufferTexture.destroy(),this._backBufferTexture=null)}};zp.extension={type:[b.WebGLSystem],name:"backBuffer",priority:1};zp.defaultOptions={useBackBuffer:!1};k1=zp});var Ha,P1=p(()=>{B();Ha=class{constructor(e){this._colorMaskCache=15,this._renderer=e}setMask(e){this._colorMaskCache!==e&&(this._colorMaskCache=e,this._renderer.gl.colorMask(!!(e&8),!!(e&4),!!(e&2),!!(e&1)))}};Ha.extension={type:[b.WebGLSystem],name:"colorMask"}});var Wa,B1=p(()=>{B();Wa=class{constructor(e){this.commandFinished=Promise.resolve(),this._renderer=e}setGeometry(e,t){this._renderer.geometry.bind(e,t.glProgram)}finishRenderPass(){}draw(e){let t=this._renderer,{geometry:i,shader:s,state:n,skipSync:o,topology:a,size:c,start:u,instanceCount:l}=e;t.shader.bind(s,o),t.geometry.bind(i,t.shader._activeProgram),n&&t.state.set(n),t.geometry.draw(a,c,u,l??i.instanceCount)}destroy(){this._renderer=null}};Wa.extension={type:[b.WebGLSystem],name:"encoder"}});var $a,R1=p(()=>{B();Cf();$a=class{constructor(e){this._renderer=e}contextChange(){let e=this._renderer.gl;this.maxTextures=e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS),this.maxBatchableTextures=ju(this.maxTextures,e),this.maxUniformBindings=e.getParameter(e.MAX_UNIFORM_BUFFER_BINDINGS)}destroy(){}};$a.extension={type:[b.WebGLSystem],name:"limits"}});var qa,D1=p(()=>{B();Mp();Wi();qa=class{constructor(e){this._stencilCache={enabled:!1,stencilReference:0,stencilMode:fe.NONE},this._renderTargetStencilState=Object.create(null),e.renderTarget.onRenderTargetChange.add(this)}contextChange(e){this._gl=e,this._comparisonFuncMapping={always:e.ALWAYS,never:e.NEVER,equal:e.EQUAL,"not-equal":e.NOTEQUAL,less:e.LESS,"less-equal":e.LEQUAL,greater:e.GREATER,"greater-equal":e.GEQUAL},this._stencilOpsMapping={keep:e.KEEP,zero:e.ZERO,replace:e.REPLACE,invert:e.INVERT,"increment-clamp":e.INCR,"decrement-clamp":e.DECR,"increment-wrap":e.INCR_WRAP,"decrement-wrap":e.DECR_WRAP},this.resetState()}onRenderTargetChange(e){if(this._activeRenderTarget===e)return;this._activeRenderTarget=e;let t=this._renderTargetStencilState[e.uid];t||(t=this._renderTargetStencilState[e.uid]={stencilMode:fe.DISABLED,stencilReference:0}),this.setStencilMode(t.stencilMode,t.stencilReference)}resetState(){this._stencilCache.enabled=!1,this._stencilCache.stencilMode=fe.NONE,this._stencilCache.stencilReference=0}setStencilMode(e,t){let i=this._renderTargetStencilState[this._activeRenderTarget.uid],s=this._gl,n=cr[e],o=this._stencilCache;if(i.stencilMode=e,i.stencilReference=t,e===fe.DISABLED){this._stencilCache.enabled&&(this._stencilCache.enabled=!1,s.disable(s.STENCIL_TEST));return}this._stencilCache.enabled||(this._stencilCache.enabled=!0,s.enable(s.STENCIL_TEST)),(e!==o.stencilMode||o.stencilReference!==t)&&(o.stencilMode=e,o.stencilReference=t,s.stencilFunc(this._comparisonFuncMapping[n.stencilBack.compare],t,255),s.stencilOp(s.KEEP,s.KEEP,this._stencilOpsMapping[n.stencilBack.passOp]))}};qa.extension={type:[b.WebGLSystem],name:"stencil"}});function M1(r){let e=r.map(n=>({data:n,offset:0,size:0})),t=16,i=0,s=0;for(let n=0;n<e.length;n++){let o=e[n];if(i=Vp[o.data.type],!i)throw new Error(`Unknown type ${o.data.type}`);o.data.size>1&&(i=Math.max(i,t)*o.data.size);let a=i===12?16:i;o.size=i;let c=s%t;c>0&&t-c<a?s+=(t-c)%16:s+=(i-c%i)%i,o.offset=s,s+=i}return s=Math.ceil(s/16)*16,{uboElements:e,size:s}}var Vp,Hp=p(()=>{"use strict";Vp={f32:4,i32:4,"vec2<f32>":8,"vec3<f32>":12,"vec4<f32>":16,"vec2<i32>":8,"vec3<i32>":12,"vec4<i32>":16,"mat2x2<f32>":32,"mat3x3<f32>":48,"mat4x4<f32>":64}});function I1(r,e){let t=Math.max(Vp[r.data.type]/16,1),i=r.data.value.length/r.data.size,s=(4-i%4)%4,n=r.data.type.indexOf("i32")>=0?"dataInt32":"data";return`
954
- v = uv.${r.data.name};
955
- offset += ${e};
956
-
957
- arrayOffset = offset;
958
-
959
- t = 0;
960
-
961
- for(var i=0; i < ${r.data.size*t}; i++)
962
- {
963
- for(var j = 0; j < ${i}; j++)
964
- {
965
- ${n}[arrayOffset++] = v[t++];
966
- }
967
- ${s!==0?`arrayOffset += ${s};`:""}
968
- }
969
- `}var F1=p(()=>{Hp()});function U1(r){return $l(r,"uboStd40",I1,Bp)}var O1=p(()=>{Pp();Rp();F1()});var ja,G1=p(()=>{B();Ep();Hp();O1();ja=class extends pn{constructor(){super({createUboElements:M1,generateUboSync:U1})}};ja.extension={type:[b.WebGLSystem],name:"ubo"}});var th,N1=p(()=>{"use strict";th=class{constructor(){this.width=-1,this.height=-1,this.msaa=!1,this.msaaRenderBuffer=[]}}});var rh,L1=p(()=>{Ge();pe();Is();ln();N1();rh=class{constructor(){this._clearColorCache=[0,0,0,0],this._viewPortCache=new Y}init(e,t){this._renderer=e,this._renderTargetSystem=t,e.runners.contextChange.add(this)}contextChange(){this._clearColorCache=[0,0,0,0],this._viewPortCache=new Y}copyToTexture(e,t,i,s,n){let o=this._renderTargetSystem,a=this._renderer,c=o.getGpuRenderTarget(e),u=a.gl;return this.finishRenderPass(e),u.bindFramebuffer(u.FRAMEBUFFER,c.resolveTargetFramebuffer),a.texture.bind(t,0),u.copyTexSubImage2D(u.TEXTURE_2D,0,n.x,n.y,i.x,i.y,s.width,s.height),t}startRenderPass(e,t=!0,i,s){let n=this._renderTargetSystem,o=e.colorTexture,a=n.getGpuRenderTarget(e),c=s.y;e.isRoot&&(c=o.pixelHeight-s.height),e.colorTextures.forEach(h=>{this._renderer.texture.unbind(h)});let u=this._renderer.gl;u.bindFramebuffer(u.FRAMEBUFFER,a.framebuffer);let l=this._viewPortCache;(l.x!==s.x||l.y!==c||l.width!==s.width||l.height!==s.height)&&(l.x=s.x,l.y=c,l.width=s.width,l.height=s.height,u.viewport(s.x,c,s.width,s.height)),!a.depthStencilRenderBuffer&&(e.stencil||e.depth)&&this._initStencil(a),this.clear(e,t,i)}finishRenderPass(e){let i=this._renderTargetSystem.getGpuRenderTarget(e);if(!i.msaa)return;let s=this._renderer.gl;s.bindFramebuffer(s.FRAMEBUFFER,i.resolveTargetFramebuffer),s.bindFramebuffer(s.READ_FRAMEBUFFER,i.framebuffer),s.blitFramebuffer(0,0,i.width,i.height,0,0,i.width,i.height,s.COLOR_BUFFER_BIT,s.NEAREST),s.bindFramebuffer(s.FRAMEBUFFER,i.framebuffer)}initGpuRenderTarget(e){let i=this._renderer.gl,s=new th;return e.colorTexture instanceof je?(this._renderer.context.ensureCanvasSize(e.colorTexture.resource),s.framebuffer=null,s):(this._initColor(e,s),i.bindFramebuffer(i.FRAMEBUFFER,null),s)}destroyGpuRenderTarget(e){let t=this._renderer.gl;e.framebuffer&&(t.deleteFramebuffer(e.framebuffer),e.framebuffer=null),e.resolveTargetFramebuffer&&(t.deleteFramebuffer(e.resolveTargetFramebuffer),e.resolveTargetFramebuffer=null),e.depthStencilRenderBuffer&&(t.deleteRenderbuffer(e.depthStencilRenderBuffer),e.depthStencilRenderBuffer=null),e.msaaRenderBuffer.forEach(i=>{t.deleteRenderbuffer(i)}),e.msaaRenderBuffer=null}clear(e,t,i){if(!t)return;let s=this._renderTargetSystem;typeof t=="boolean"&&(t=t?Le.ALL:Le.NONE);let n=this._renderer.gl;if(t&Le.COLOR){i??(i=s.defaultClearColor);let o=this._clearColorCache,a=i;(o[0]!==a[0]||o[1]!==a[1]||o[2]!==a[2]||o[3]!==a[3])&&(o[0]=a[0],o[1]=a[1],o[2]=a[2],o[3]=a[3],n.clearColor(a[0],a[1],a[2],a[3]))}n.clear(t)}resizeGpuRenderTarget(e){if(e.isRoot)return;let i=this._renderTargetSystem.getGpuRenderTarget(e);this._resizeColor(e,i),(e.stencil||e.depth)&&this._resizeStencil(i)}_initColor(e,t){let i=this._renderer,s=i.gl,n=s.createFramebuffer();if(t.resolveTargetFramebuffer=n,s.bindFramebuffer(s.FRAMEBUFFER,n),t.width=e.colorTexture.source.pixelWidth,t.height=e.colorTexture.source.pixelHeight,e.colorTextures.forEach((o,a)=>{let c=o.source;c.antialias&&(i.context.supports.msaa?t.msaa=!0:N("[RenderTexture] Antialiasing on textures is not supported in WebGL1")),i.texture.bindSource(c,0);let l=i.texture.getGlSource(c).texture;s.framebufferTexture2D(s.FRAMEBUFFER,s.COLOR_ATTACHMENT0+a,3553,l,0)}),t.msaa){let o=s.createFramebuffer();t.framebuffer=o,s.bindFramebuffer(s.FRAMEBUFFER,o),e.colorTextures.forEach((a,c)=>{let u=s.createRenderbuffer();t.msaaRenderBuffer[c]=u})}else t.framebuffer=n;this._resizeColor(e,t)}_resizeColor(e,t){let i=e.colorTexture.source;if(t.width=i.pixelWidth,t.height=i.pixelHeight,e.colorTextures.forEach((s,n)=>{n!==0&&s.source.resize(i.width,i.height,i._resolution)}),t.msaa){let s=this._renderer,n=s.gl,o=t.framebuffer;n.bindFramebuffer(n.FRAMEBUFFER,o),e.colorTextures.forEach((a,c)=>{let u=a.source;s.texture.bindSource(u,0);let h=s.texture.getGlSource(u).internalFormat,f=t.msaaRenderBuffer[c];n.bindRenderbuffer(n.RENDERBUFFER,f),n.renderbufferStorageMultisample(n.RENDERBUFFER,4,h,u.pixelWidth,u.pixelHeight),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0+c,n.RENDERBUFFER,f)})}}_initStencil(e){if(e.framebuffer===null)return;let t=this._renderer.gl,i=t.createRenderbuffer();e.depthStencilRenderBuffer=i,t.bindRenderbuffer(t.RENDERBUFFER,i),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,t.RENDERBUFFER,i),this._resizeStencil(e)}_resizeStencil(e){let t=this._renderer.gl;t.bindRenderbuffer(t.RENDERBUFFER,e.depthStencilRenderBuffer),e.msaa?t.renderbufferStorageMultisample(t.RENDERBUFFER,4,t.DEPTH24_STENCIL8,e.width,e.height):t.renderbufferStorage(t.RENDERBUFFER,this._renderer.context.webGLVersion===2?t.DEPTH24_STENCIL8:t.DEPTH_STENCIL,e.width,e.height)}prerender(e){let t=e.colorTexture.resource;this._renderer.context.multiView&&je.test(t)&&this._renderer.context.ensureCanvasSize(t)}postrender(e){if(this._renderer.context.multiView&&je.test(e.colorTexture.resource)){let t=this._renderer.context.canvas,i=e.colorTexture;i.context2D.drawImage(t,0,i.pixelHeight-t.height)}}}});var Xa,z1=p(()=>{B();Ip();L1();Xa=class extends xn{constructor(e){super(e),this.adaptor=new rh,this.adaptor.init(e,this)}};Xa.extension={type:[b.WebGLSystem],name:"renderTarget"}});function V1(r,e){let t=[],i=[`
970
- var g = s.groups;
971
- var sS = r.shader;
972
- var p = s.glProgram;
973
- var ugS = r.uniformGroup;
974
- var resources;
975
- `],s=!1,n=0,o=e._getProgramData(r.glProgram);for(let c in r.groups){let u=r.groups[c];t.push(`
976
- resources = g[${c}].resources;
977
- `);for(let l in u.resources){let h=u.resources[l];if(h instanceof ce)if(h.ubo){let f=r._uniformBindMap[c][Number(l)];t.push(`
978
- sS.bindUniformBlock(
979
- resources[${l}],
980
- '${f}',
981
- ${r.glProgram._uniformBlockData[f].index}
982
- );
983
- `)}else t.push(`
984
- ugS.updateUniformGroup(resources[${l}], p, sD);
985
- `);else if(h instanceof ri){let f=r._uniformBindMap[c][Number(l)];t.push(`
986
- sS.bindUniformBlock(
987
- resources[${l}],
988
- '${f}',
989
- ${r.glProgram._uniformBlockData[f].index}
990
- );
991
- `)}else if(h instanceof se){let f=r._uniformBindMap[c][l],d=o.uniformData[f];d&&(s||(s=!0,i.push(`
992
- var tS = r.texture;
993
- `)),e._gl.uniform1i(d.location,n),t.push(`
994
- tS.bind(resources[${l}], ${n});
995
- `),n++)}}}let a=[...i,...t].join(`
996
- `);return new Function("r","s","sD",a)}var H1=p(()=>{ql();it();tt()});var ih,W1=p(()=>{"use strict";ih=class{constructor(e,t){this.program=e,this.uniformData=t,this.uniformGroups={},this.uniformDirtyGroups={},this.uniformBlockBindings={}}destroy(){this.uniformData=null,this.uniformGroups=null,this.uniformDirtyGroups=null,this.uniformBlockBindings=null,this.program=null}}});function Wp(r,e,t){let i=r.createShader(e);return r.shaderSource(i,t),r.compileShader(i),i}var $1=p(()=>{"use strict"});function $p(r){let e=new Array(r);for(let t=0;t<e.length;t++)e[t]=!1;return e}function sh(r,e){switch(r){case"float":return 0;case"vec2":return new Float32Array(2*e);case"vec3":return new Float32Array(3*e);case"vec4":return new Float32Array(4*e);case"int":case"uint":case"sampler2D":case"sampler2DArray":return 0;case"ivec2":return new Int32Array(2*e);case"ivec3":return new Int32Array(3*e);case"ivec4":return new Int32Array(4*e);case"uvec2":return new Uint32Array(2*e);case"uvec3":return new Uint32Array(3*e);case"uvec4":return new Uint32Array(4*e);case"bool":return!1;case"bvec2":return $p(2*e);case"bvec3":return $p(3*e);case"bvec4":return $p(4*e);case"mat2":return new Float32Array([1,0,0,1]);case"mat3":return new Float32Array([1,0,0,0,1,0,0,0,1]);case"mat4":return new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])}return null}var qp=p(()=>{"use strict"});function jp(r,e){if(!nh){let t=Object.keys(q1);nh={};for(let i=0;i<t.length;++i){let s=t[i];nh[r[s]]=q1[s]}}return nh[e]}function j1(r,e){let t=jp(r,e);return yR[t]||"float32"}var nh,q1,yR,Xp=p(()=>{"use strict";nh=null,q1={FLOAT:"float",FLOAT_VEC2:"vec2",FLOAT_VEC3:"vec3",FLOAT_VEC4:"vec4",INT:"int",INT_VEC2:"ivec2",INT_VEC3:"ivec3",INT_VEC4:"ivec4",UNSIGNED_INT:"uint",UNSIGNED_INT_VEC2:"uvec2",UNSIGNED_INT_VEC3:"uvec3",UNSIGNED_INT_VEC4:"uvec4",BOOL:"bool",BOOL_VEC2:"bvec2",BOOL_VEC3:"bvec3",BOOL_VEC4:"bvec4",FLOAT_MAT2:"mat2",FLOAT_MAT3:"mat3",FLOAT_MAT4:"mat4",SAMPLER_2D:"sampler2D",INT_SAMPLER_2D:"sampler2D",UNSIGNED_INT_SAMPLER_2D:"sampler2D",SAMPLER_CUBE:"samplerCube",INT_SAMPLER_CUBE:"samplerCube",UNSIGNED_INT_SAMPLER_CUBE:"samplerCube",SAMPLER_2D_ARRAY:"sampler2DArray",INT_SAMPLER_2D_ARRAY:"sampler2DArray",UNSIGNED_INT_SAMPLER_2D_ARRAY:"sampler2DArray"},yR={float:"float32",vec2:"float32x2",vec3:"float32x3",vec4:"float32x4",int:"sint32",ivec2:"sint32x2",ivec3:"sint32x3",ivec4:"sint32x4",uint:"uint32",uvec2:"uint32x2",uvec3:"uint32x3",uvec4:"uint32x4",bool:"uint32",bvec2:"uint32x2",bvec3:"uint32x3",bvec4:"uint32x4"}});function X1(r,e,t=!1){let i={},s=e.getProgramParameter(r,e.ACTIVE_ATTRIBUTES);for(let o=0;o<s;o++){let a=e.getActiveAttrib(r,o);if(a.name.startsWith("gl_"))continue;let c=j1(e,a.type);i[a.name]={location:0,format:c,stride:ut(c).stride,offset:0,instance:!1,start:0}}let n=Object.keys(i);if(t){n.sort((o,a)=>o>a?1:-1);for(let o=0;o<n.length;o++)i[n[o]].location=o,e.bindAttribLocation(r,o,n[o]);e.linkProgram(r)}else for(let o=0;o<n.length;o++)i[n[o]].location=e.getAttribLocation(r,n[o]);return i}var Y1=p(()=>{qi();Xp()});function K1(r,e){if(!e.ACTIVE_UNIFORM_BLOCKS)return{};let t={},i=e.getProgramParameter(r,e.ACTIVE_UNIFORM_BLOCKS);for(let s=0;s<i;s++){let n=e.getActiveUniformBlockName(r,s),o=e.getUniformBlockIndex(r,n),a=e.getActiveUniformBlockParameter(r,s,e.UNIFORM_BLOCK_DATA_SIZE);t[n]={name:n,index:o,size:a}}return t}var Q1=p(()=>{"use strict"});function Z1(r,e){let t={},i=e.getProgramParameter(r,e.ACTIVE_UNIFORMS);for(let s=0;s<i;s++){let n=e.getActiveUniform(r,s),o=n.name.replace(/\[.*?\]$/,""),a=!!n.name.match(/\[.*?\]$/),c=jp(e,n.type);t[o]={name:o,index:s,type:c,size:n.size,isArray:a,value:sh(c,n.size)}}return t}var J1=p(()=>{qp();Xp()});function eC(r,e){let t=r.getShaderSource(e).split(`
997
- `).map((u,l)=>`${l}: ${u}`),i=r.getShaderInfoLog(e),s=i.split(`
998
- `),n={},o=s.map(u=>parseFloat(u.replace(/^ERROR\: 0\:([\d]+)\:.*$/,"$1"))).filter(u=>u&&!n[u]?(n[u]=!0,!0):!1),a=[""];o.forEach(u=>{t[u-1]=`%c${t[u-1]}%c`,a.push("background: #FF0000; color:#FFFFFF; font-size: 10px","font-size: 10px")});let c=t.join(`
999
- `);a[0]=c,console.error(i),console.groupCollapsed("click to view full shader code"),console.warn(...a),console.groupEnd()}function tC(r,e,t,i){r.getProgramParameter(e,r.LINK_STATUS)||(r.getShaderParameter(t,r.COMPILE_STATUS)||eC(r,t),r.getShaderParameter(i,r.COMPILE_STATUS)||eC(r,i),console.error("PixiJS Error: Could not initialize shader."),r.getProgramInfoLog(e)!==""&&console.warn("PixiJS Warning: gl.getProgramInfoLog()",r.getProgramInfoLog(e)))}var rC=p(()=>{"use strict"});function iC(r,e){let t=Wp(r,r.VERTEX_SHADER,e.vertex),i=Wp(r,r.FRAGMENT_SHADER,e.fragment),s=r.createProgram();r.attachShader(s,t),r.attachShader(s,i);let n=e.transformFeedbackVaryings;n&&(typeof r.transformFeedbackVaryings!="function"?N("TransformFeedback is not supported but TransformFeedbackVaryings are given."):r.transformFeedbackVaryings(s,n.names,n.bufferMode==="separate"?r.SEPARATE_ATTRIBS:r.INTERLEAVED_ATTRIBS)),r.linkProgram(s),r.getProgramParameter(s,r.LINK_STATUS)||tC(r,s,t,i),e._attributeData=X1(s,r,!/^[ \t]*#[ \t]*version[ \t]+300[ \t]+es[ \t]*$/m.test(e.vertex)),e._uniformData=Z1(s,r),e._uniformBlockData=K1(s,r),r.deleteShader(t),r.deleteShader(i);let o={};for(let c in e._uniformData){let u=e._uniformData[c];o[c]={location:r.getUniformLocation(s,c),value:sh(u.type,u.size)}}return new ih(s,o)}var sC=p(()=>{pe();W1();$1();qp();Y1();Q1();J1();rC()});var oh,Ya,nC=p(()=>{B();H1();sC();oh={textureCount:0,blockIndex:0},Ya=class{constructor(e){this._activeProgram=null,this._programDataHash=Object.create(null),this._shaderSyncFunctions=Object.create(null),this._renderer=e,this._renderer.renderableGC.addManagedHash(this,"_programDataHash")}contextChange(e){this._gl=e,this._programDataHash=Object.create(null),this._shaderSyncFunctions=Object.create(null),this._activeProgram=null}bind(e,t){if(this._setProgram(e.glProgram),t)return;oh.textureCount=0,oh.blockIndex=0;let i=this._shaderSyncFunctions[e.glProgram._key];i||(i=this._shaderSyncFunctions[e.glProgram._key]=this._generateShaderSync(e,this)),this._renderer.buffer.nextBindBase(!!e.glProgram.transformFeedbackVaryings),i(this._renderer,e,oh)}updateUniformGroup(e){this._renderer.uniformGroup.updateUniformGroup(e,this._activeProgram,oh)}bindUniformBlock(e,t,i=0){let s=this._renderer.buffer,n=this._getProgramData(this._activeProgram),o=e._bufferResource;o||this._renderer.ubo.updateUniformGroup(e);let a=e.buffer,c=s.updateBuffer(a),u=s.freeLocationForBufferBase(c);if(o){let{offset:h,size:f}=e;h===0&&f===a.data.byteLength?s.bindBufferBase(c,u):s.bindBufferRange(c,u,h)}else s.getLastBindBaseLocation(c)!==u&&s.bindBufferBase(c,u);let l=this._activeProgram._uniformBlockData[t].index;n.uniformBlockBindings[i]!==u&&(n.uniformBlockBindings[i]=u,this._renderer.gl.uniformBlockBinding(n.program,l,u))}_setProgram(e){if(this._activeProgram===e)return;this._activeProgram=e;let t=this._getProgramData(e);this._gl.useProgram(t.program)}_getProgramData(e){return this._programDataHash[e._key]||this._createProgramData(e)}_createProgramData(e){let t=e._key;return this._programDataHash[t]=iC(this._gl,e),this._programDataHash[t]}destroy(){for(let e of Object.keys(this._programDataHash))this._programDataHash[e].destroy(),this._programDataHash[e]=null;this._programDataHash=null}_generateShaderSync(e,t){return V1(e,t)}resetState(){this._activeProgram=null}};Ya.extension={type:[b.WebGLSystem],name:"shader"}});var oC,aC,cC=p(()=>{"use strict";oC={f32:`if (cv !== v) {
1000
- cu.value = v;
1001
- gl.uniform1f(location, v);
1002
- }`,"vec2<f32>":`if (cv[0] !== v[0] || cv[1] !== v[1]) {
1003
- cv[0] = v[0];
1004
- cv[1] = v[1];
1005
- gl.uniform2f(location, v[0], v[1]);
1006
- }`,"vec3<f32>":`if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2]) {
1007
- cv[0] = v[0];
1008
- cv[1] = v[1];
1009
- cv[2] = v[2];
1010
- gl.uniform3f(location, v[0], v[1], v[2]);
1011
- }`,"vec4<f32>":`if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3]) {
1012
- cv[0] = v[0];
1013
- cv[1] = v[1];
1014
- cv[2] = v[2];
1015
- cv[3] = v[3];
1016
- gl.uniform4f(location, v[0], v[1], v[2], v[3]);
1017
- }`,i32:`if (cv !== v) {
1018
- cu.value = v;
1019
- gl.uniform1i(location, v);
1020
- }`,"vec2<i32>":`if (cv[0] !== v[0] || cv[1] !== v[1]) {
1021
- cv[0] = v[0];
1022
- cv[1] = v[1];
1023
- gl.uniform2i(location, v[0], v[1]);
1024
- }`,"vec3<i32>":`if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2]) {
1025
- cv[0] = v[0];
1026
- cv[1] = v[1];
1027
- cv[2] = v[2];
1028
- gl.uniform3i(location, v[0], v[1], v[2]);
1029
- }`,"vec4<i32>":`if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3]) {
1030
- cv[0] = v[0];
1031
- cv[1] = v[1];
1032
- cv[2] = v[2];
1033
- cv[3] = v[3];
1034
- gl.uniform4i(location, v[0], v[1], v[2], v[3]);
1035
- }`,u32:`if (cv !== v) {
1036
- cu.value = v;
1037
- gl.uniform1ui(location, v);
1038
- }`,"vec2<u32>":`if (cv[0] !== v[0] || cv[1] !== v[1]) {
1039
- cv[0] = v[0];
1040
- cv[1] = v[1];
1041
- gl.uniform2ui(location, v[0], v[1]);
1042
- }`,"vec3<u32>":`if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2]) {
1043
- cv[0] = v[0];
1044
- cv[1] = v[1];
1045
- cv[2] = v[2];
1046
- gl.uniform3ui(location, v[0], v[1], v[2]);
1047
- }`,"vec4<u32>":`if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3]) {
1048
- cv[0] = v[0];
1049
- cv[1] = v[1];
1050
- cv[2] = v[2];
1051
- cv[3] = v[3];
1052
- gl.uniform4ui(location, v[0], v[1], v[2], v[3]);
1053
- }`,bool:`if (cv !== v) {
1054
- cu.value = v;
1055
- gl.uniform1i(location, v);
1056
- }`,"vec2<bool>":`if (cv[0] !== v[0] || cv[1] !== v[1]) {
1057
- cv[0] = v[0];
1058
- cv[1] = v[1];
1059
- gl.uniform2i(location, v[0], v[1]);
1060
- }`,"vec3<bool>":`if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2]) {
1061
- cv[0] = v[0];
1062
- cv[1] = v[1];
1063
- cv[2] = v[2];
1064
- gl.uniform3i(location, v[0], v[1], v[2]);
1065
- }`,"vec4<bool>":`if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3]) {
1066
- cv[0] = v[0];
1067
- cv[1] = v[1];
1068
- cv[2] = v[2];
1069
- cv[3] = v[3];
1070
- gl.uniform4i(location, v[0], v[1], v[2], v[3]);
1071
- }`,"mat2x2<f32>":"gl.uniformMatrix2fv(location, false, v);","mat3x3<f32>":"gl.uniformMatrix3fv(location, false, v);","mat4x4<f32>":"gl.uniformMatrix4fv(location, false, v);"},aC={f32:"gl.uniform1fv(location, v);","vec2<f32>":"gl.uniform2fv(location, v);","vec3<f32>":"gl.uniform3fv(location, v);","vec4<f32>":"gl.uniform4fv(location, v);","mat2x2<f32>":"gl.uniformMatrix2fv(location, false, v);","mat3x3<f32>":"gl.uniformMatrix3fv(location, false, v);","mat4x4<f32>":"gl.uniformMatrix4fv(location, false, v);",i32:"gl.uniform1iv(location, v);","vec2<i32>":"gl.uniform2iv(location, v);","vec3<i32>":"gl.uniform3iv(location, v);","vec4<i32>":"gl.uniform4iv(location, v);",u32:"gl.uniform1iv(location, v);","vec2<u32>":"gl.uniform2iv(location, v);","vec3<u32>":"gl.uniform3iv(location, v);","vec4<u32>":"gl.uniform4iv(location, v);",bool:"gl.uniform1iv(location, v);","vec2<bool>":"gl.uniform2iv(location, v);","vec3<bool>":"gl.uniform3iv(location, v);","vec4<bool>":"gl.uniform4iv(location, v);"}});function uC(r,e){let t=[`
1072
- var v = null;
1073
- var cv = null;
1074
- var cu = null;
1075
- var t = 0;
1076
- var gl = renderer.gl;
1077
- var name = null;
1078
- `];for(let i in r.uniforms){if(!e[i]){r.uniforms[i]instanceof ce?r.uniforms[i].ubo?t.push(`
1079
- renderer.shader.bindUniformBlock(uv.${i}, "${i}");
1080
- `):t.push(`
1081
- renderer.shader.updateUniformGroup(uv.${i});
1082
- `):r.uniforms[i]instanceof ri&&t.push(`
1083
- renderer.shader.bindBufferResource(uv.${i}, "${i}");
1084
- `);continue}let s=r.uniformStructures[i],n=!1;for(let o=0;o<Br.length;o++){let a=Br[o];if(s.type===a.type&&a.test(s)){t.push(`name = "${i}";`,Br[o].uniform),n=!0;break}}if(!n){let a=(s.size===1?oC:aC)[s.type].replace("location",`ud["${i}"].location`);t.push(`
1085
- cu = ud["${i}"];
1086
- cv = cu.value;
1087
- v = uv["${i}"];
1088
- ${a};`)}}return new Function("ud","uv","renderer","syncData",t.join(`
1089
- `))}var lC=p(()=>{ql();it();Ap();cC()});var Ka,hC=p(()=>{B();lC();Ka=class{constructor(e){this._cache={},this._uniformGroupSyncHash={},this._renderer=e,this.gl=null,this._cache={}}contextChange(e){this.gl=e}updateUniformGroup(e,t,i){let s=this._renderer.shader._getProgramData(t);(!e.isStatic||e._dirtyId!==s.uniformDirtyGroups[e.uid])&&(s.uniformDirtyGroups[e.uid]=e._dirtyId,this._getUniformSyncFunction(e,t)(s.uniformData,e.uniforms,this._renderer,i))}_getUniformSyncFunction(e,t){return this._uniformGroupSyncHash[e._signature]?.[t._key]||this._createUniformSyncFunction(e,t)}_createUniformSyncFunction(e,t){let i=this._uniformGroupSyncHash[e._signature]||(this._uniformGroupSyncHash[e._signature]={}),s=this._getSignature(e,t._uniformData,"u");return this._cache[s]||(this._cache[s]=this._generateUniformsSync(e,t._uniformData)),i[t._key]=this._cache[s],i[t._key]}_generateUniformsSync(e,t){return uC(e,t)}_getSignature(e,t,i){let s=e.uniforms,n=[`${i}-`];for(let o in s)n.push(o),t[o]&&n.push(t[o].type);return n.join("-")}destroy(){this._renderer=null,this._cache=null}};Ka.extension={type:[b.WebGLSystem],name:"uniformGroup"}});function dC(r){let e={};if(e.normal=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e.add=[r.ONE,r.ONE],e.multiply=[r.DST_COLOR,r.ONE_MINUS_SRC_ALPHA,r.ONE,r.ONE_MINUS_SRC_ALPHA],e.screen=[r.ONE,r.ONE_MINUS_SRC_COLOR,r.ONE,r.ONE_MINUS_SRC_ALPHA],e.none=[0,0],e["normal-npm"]=[r.SRC_ALPHA,r.ONE_MINUS_SRC_ALPHA,r.ONE,r.ONE_MINUS_SRC_ALPHA],e["add-npm"]=[r.SRC_ALPHA,r.ONE,r.ONE,r.ONE],e["screen-npm"]=[r.SRC_ALPHA,r.ONE_MINUS_SRC_COLOR,r.ONE,r.ONE_MINUS_SRC_ALPHA],e.erase=[r.ZERO,r.ONE_MINUS_SRC_ALPHA],!(r instanceof W.get().getWebGLRenderingContext()))e.min=[r.ONE,r.ONE,r.ONE,r.ONE,r.MIN,r.MIN],e.max=[r.ONE,r.ONE,r.ONE,r.ONE,r.MAX,r.MAX];else{let i=r.getExtension("EXT_blend_minmax");i&&(e.min=[r.ONE,r.ONE,r.ONE,r.ONE,i.MIN_EXT,i.MIN_EXT],e.max=[r.ONE,r.ONE,r.ONE,r.ONE,i.MAX_EXT,i.MAX_EXT])}return e}var fC=p(()=>{Ce()});var TR,wR,SR,vR,CR,ER,mC,pC,gC=p(()=>{B();Gt();fC();TR=0,wR=1,SR=2,vR=3,CR=4,ER=5,mC=class Yp{constructor(e){this._invertFrontFace=!1,this.gl=null,this.stateId=0,this.polygonOffset=0,this.blendMode="none",this._blendEq=!1,this.map=[],this.map[TR]=this.setBlend,this.map[wR]=this.setOffset,this.map[SR]=this.setCullFace,this.map[vR]=this.setDepthTest,this.map[CR]=this.setFrontFace,this.map[ER]=this.setDepthMask,this.checks=[],this.defaultState=Pe.for2d(),e.renderTarget.onRenderTargetChange.add(this)}onRenderTargetChange(e){this._invertFrontFace=!e.isRoot,this._cullFace?this.setFrontFace(this._frontFace):this._frontFaceDirty=!0}contextChange(e){this.gl=e,this.blendModesMap=dC(e),this.resetState()}set(e){if(e||(e=this.defaultState),this.stateId!==e.data){let t=this.stateId^e.data,i=0;for(;t;)t&1&&this.map[i].call(this,!!(e.data&1<<i)),t>>=1,i++;this.stateId=e.data}for(let t=0;t<this.checks.length;t++)this.checks[t](this,e)}forceState(e){e||(e=this.defaultState);for(let t=0;t<this.map.length;t++)this.map[t].call(this,!!(e.data&1<<t));for(let t=0;t<this.checks.length;t++)this.checks[t](this,e);this.stateId=e.data}setBlend(e){this._updateCheck(Yp._checkBlendMode,e),this.gl[e?"enable":"disable"](this.gl.BLEND)}setOffset(e){this._updateCheck(Yp._checkPolygonOffset,e),this.gl[e?"enable":"disable"](this.gl.POLYGON_OFFSET_FILL)}setDepthTest(e){this.gl[e?"enable":"disable"](this.gl.DEPTH_TEST)}setDepthMask(e){this.gl.depthMask(e)}setCullFace(e){this._cullFace=e,this.gl[e?"enable":"disable"](this.gl.CULL_FACE),this._cullFace&&this._frontFaceDirty&&this.setFrontFace(this._frontFace)}setFrontFace(e){this._frontFace=e,this._frontFaceDirty=!1;let t=this._invertFrontFace?!e:e;this._glFrontFace!==t&&(this._glFrontFace=t,this.gl.frontFace(this.gl[t?"CW":"CCW"]))}setBlendMode(e){if(this.blendModesMap[e]||(e="normal"),e===this.blendMode)return;this.blendMode=e;let t=this.blendModesMap[e],i=this.gl;t.length===2?i.blendFunc(t[0],t[1]):i.blendFuncSeparate(t[0],t[1],t[2],t[3]),t.length===6?(this._blendEq=!0,i.blendEquationSeparate(t[4],t[5])):this._blendEq&&(this._blendEq=!1,i.blendEquationSeparate(i.FUNC_ADD,i.FUNC_ADD))}setPolygonOffset(e,t){this.gl.polygonOffset(e,t)}resetState(){this._glFrontFace=!1,this._frontFace=!1,this._cullFace=!1,this._frontFaceDirty=!1,this._invertFrontFace=!1,this.gl.frontFace(this.gl.CCW),this.gl.pixelStorei(this.gl.UNPACK_FLIP_Y_WEBGL,!1),this.forceState(this.defaultState),this._blendEq=!0,this.blendMode="",this.setBlendMode("normal")}_updateCheck(e,t){let i=this.checks.indexOf(e);t&&i===-1?this.checks.push(e):!t&&i!==-1&&this.checks.splice(i,1)}static _checkBlendMode(e,t){e.setBlendMode(t.blendMode)}static _checkPolygonOffset(e,t){e.setPolygonOffset(1,t.polygonOffset)}destroy(){this.gl=null,this.checks.length=0}};mC.extension={type:[b.WebGLSystem],name:"state"};pC=mC});var ah,xC=p(()=>{Lp();ah=class{constructor(e){this.target=Np.TEXTURE_2D,this.texture=e,this.width=-1,this.height=-1,this.type=ie.UNSIGNED_BYTE,this.internalFormat=eh.RGBA,this.format=eh.RGBA,this.samplerType=0}}});var _C,bC=p(()=>{"use strict";_C={id:"buffer",upload(r,e,t){e.width===r.width||e.height===r.height?t.texSubImage2D(t.TEXTURE_2D,0,0,0,r.width,r.height,e.format,e.type,r.resource):t.texImage2D(e.target,0,e.internalFormat,r.width,r.height,0,e.format,e.type,r.resource),e.width=r.width,e.height=r.height}}});var kR,yC,TC=p(()=>{"use strict";kR={"bc1-rgba-unorm":!0,"bc1-rgba-unorm-srgb":!0,"bc2-rgba-unorm":!0,"bc2-rgba-unorm-srgb":!0,"bc3-rgba-unorm":!0,"bc3-rgba-unorm-srgb":!0,"bc4-r-unorm":!0,"bc4-r-snorm":!0,"bc5-rg-unorm":!0,"bc5-rg-snorm":!0,"bc6h-rgb-ufloat":!0,"bc6h-rgb-float":!0,"bc7-rgba-unorm":!0,"bc7-rgba-unorm-srgb":!0,"etc2-rgb8unorm":!0,"etc2-rgb8unorm-srgb":!0,"etc2-rgb8a1unorm":!0,"etc2-rgb8a1unorm-srgb":!0,"etc2-rgba8unorm":!0,"etc2-rgba8unorm-srgb":!0,"eac-r11unorm":!0,"eac-r11snorm":!0,"eac-rg11unorm":!0,"eac-rg11snorm":!0,"astc-4x4-unorm":!0,"astc-4x4-unorm-srgb":!0,"astc-5x4-unorm":!0,"astc-5x4-unorm-srgb":!0,"astc-5x5-unorm":!0,"astc-5x5-unorm-srgb":!0,"astc-6x5-unorm":!0,"astc-6x5-unorm-srgb":!0,"astc-6x6-unorm":!0,"astc-6x6-unorm-srgb":!0,"astc-8x5-unorm":!0,"astc-8x5-unorm-srgb":!0,"astc-8x6-unorm":!0,"astc-8x6-unorm-srgb":!0,"astc-8x8-unorm":!0,"astc-8x8-unorm-srgb":!0,"astc-10x5-unorm":!0,"astc-10x5-unorm-srgb":!0,"astc-10x6-unorm":!0,"astc-10x6-unorm-srgb":!0,"astc-10x8-unorm":!0,"astc-10x8-unorm-srgb":!0,"astc-10x10-unorm":!0,"astc-10x10-unorm-srgb":!0,"astc-12x10-unorm":!0,"astc-12x10-unorm-srgb":!0,"astc-12x12-unorm":!0,"astc-12x12-unorm-srgb":!0},yC={id:"compressed",upload(r,e,t){t.pixelStorei(t.UNPACK_ALIGNMENT,4);let i=r.pixelWidth,s=r.pixelHeight,n=!!kR[r.format];for(let o=0;o<r.resource.length;o++){let a=r.resource[o];n?t.compressedTexImage2D(t.TEXTURE_2D,o,e.internalFormat,i,s,0,a):t.texImage2D(t.TEXTURE_2D,o,e.internalFormat,i,s,0,e.format,e.type,a),i=Math.max(i>>1,1),s=Math.max(s>>1,1)}}}});var ch,Kp=p(()=>{"use strict";ch={id:"image",upload(r,e,t,i){let s=e.width,n=e.height,o=r.pixelWidth,a=r.pixelHeight,c=r.resourceWidth,u=r.resourceHeight;c<o||u<a?((s!==o||n!==a)&&t.texImage2D(e.target,0,e.internalFormat,o,a,0,e.format,e.type,null),i===2?t.texSubImage2D(t.TEXTURE_2D,0,0,0,c,u,e.format,e.type,r.resource):t.texSubImage2D(t.TEXTURE_2D,0,0,0,e.format,e.type,r.resource)):s===o&&n===a?t.texSubImage2D(t.TEXTURE_2D,0,0,0,e.format,e.type,r.resource):i===2?t.texImage2D(e.target,0,e.internalFormat,o,a,0,e.format,e.type,r.resource):t.texImage2D(e.target,0,e.internalFormat,e.format,e.type,r.resource),e.width=o,e.height=a}}});var wC,SC=p(()=>{Kp();wC={id:"video",upload(r,e,t,i){if(!r.isValid){t.texImage2D(e.target,0,e.internalFormat,1,1,0,e.format,e.type,null);return}ch.upload(r,e,t,i)}}});var Qp,vC,uh,CC,EC=p(()=>{"use strict";Qp={linear:9729,nearest:9728},vC={linear:{linear:9987,nearest:9985},nearest:{linear:9986,nearest:9984}},uh={"clamp-to-edge":33071,repeat:10497,"mirror-repeat":33648},CC={never:512,less:513,equal:514,"less-equal":515,greater:516,"not-equal":517,"greater-equal":518,always:519}});function Zp(r,e,t,i,s,n,o,a){let c=n;if(!a||r.addressModeU!=="repeat"||r.addressModeV!=="repeat"||r.addressModeW!=="repeat"){let u=uh[o?"clamp-to-edge":r.addressModeU],l=uh[o?"clamp-to-edge":r.addressModeV],h=uh[o?"clamp-to-edge":r.addressModeW];e[s](c,e.TEXTURE_WRAP_S,u),e[s](c,e.TEXTURE_WRAP_T,l),e.TEXTURE_WRAP_R&&e[s](c,e.TEXTURE_WRAP_R,h)}if((!a||r.magFilter!=="linear")&&e[s](c,e.TEXTURE_MAG_FILTER,Qp[r.magFilter]),t){if(!a||r.mipmapFilter!=="linear"){let u=vC[r.minFilter][r.mipmapFilter];e[s](c,e.TEXTURE_MIN_FILTER,u)}}else e[s](c,e.TEXTURE_MIN_FILTER,Qp[r.minFilter]);if(i&&r.maxAnisotropy>1){let u=Math.min(r.maxAnisotropy,e.getParameter(i.MAX_TEXTURE_MAX_ANISOTROPY_EXT));e[s](c,i.TEXTURE_MAX_ANISOTROPY_EXT,u)}r.compare&&e[s](c,e.TEXTURE_COMPARE_FUNC,CC[r.compare])}var kC=p(()=>{EC()});function AC(r){return{r8unorm:r.RED,r8snorm:r.RED,r8uint:r.RED,r8sint:r.RED,r16uint:r.RED,r16sint:r.RED,r16float:r.RED,rg8unorm:r.RG,rg8snorm:r.RG,rg8uint:r.RG,rg8sint:r.RG,r32uint:r.RED,r32sint:r.RED,r32float:r.RED,rg16uint:r.RG,rg16sint:r.RG,rg16float:r.RG,rgba8unorm:r.RGBA,"rgba8unorm-srgb":r.RGBA,rgba8snorm:r.RGBA,rgba8uint:r.RGBA,rgba8sint:r.RGBA,bgra8unorm:r.RGBA,"bgra8unorm-srgb":r.RGBA,rgb9e5ufloat:r.RGB,rgb10a2unorm:r.RGBA,rg11b10ufloat:r.RGB,rg32uint:r.RG,rg32sint:r.RG,rg32float:r.RG,rgba16uint:r.RGBA,rgba16sint:r.RGBA,rgba16float:r.RGBA,rgba32uint:r.RGBA,rgba32sint:r.RGBA,rgba32float:r.RGBA,stencil8:r.STENCIL_INDEX8,depth16unorm:r.DEPTH_COMPONENT,depth24plus:r.DEPTH_COMPONENT,"depth24plus-stencil8":r.DEPTH_STENCIL,depth32float:r.DEPTH_COMPONENT,"depth32float-stencil8":r.DEPTH_STENCIL}}var PC=p(()=>{"use strict"});function BC(r,e){let t={},i=r.RGBA;return r instanceof W.get().getWebGLRenderingContext()?e.srgb&&(t={"rgba8unorm-srgb":e.srgb.SRGB8_ALPHA8_EXT,"bgra8unorm-srgb":e.srgb.SRGB8_ALPHA8_EXT}):(t={"rgba8unorm-srgb":r.SRGB8_ALPHA8,"bgra8unorm-srgb":r.SRGB8_ALPHA8},i=r.RGBA8),{r8unorm:r.R8,r8snorm:r.R8_SNORM,r8uint:r.R8UI,r8sint:r.R8I,r16uint:r.R16UI,r16sint:r.R16I,r16float:r.R16F,rg8unorm:r.RG8,rg8snorm:r.RG8_SNORM,rg8uint:r.RG8UI,rg8sint:r.RG8I,r32uint:r.R32UI,r32sint:r.R32I,r32float:r.R32F,rg16uint:r.RG16UI,rg16sint:r.RG16I,rg16float:r.RG16F,rgba8unorm:r.RGBA,...t,rgba8snorm:r.RGBA8_SNORM,rgba8uint:r.RGBA8UI,rgba8sint:r.RGBA8I,bgra8unorm:i,rgb9e5ufloat:r.RGB9_E5,rgb10a2unorm:r.RGB10_A2,rg11b10ufloat:r.R11F_G11F_B10F,rg32uint:r.RG32UI,rg32sint:r.RG32I,rg32float:r.RG32F,rgba16uint:r.RGBA16UI,rgba16sint:r.RGBA16I,rgba16float:r.RGBA16F,rgba32uint:r.RGBA32UI,rgba32sint:r.RGBA32I,rgba32float:r.RGBA32F,stencil8:r.STENCIL_INDEX8,depth16unorm:r.DEPTH_COMPONENT16,depth24plus:r.DEPTH_COMPONENT24,"depth24plus-stencil8":r.DEPTH24_STENCIL8,depth32float:r.DEPTH_COMPONENT32F,"depth32float-stencil8":r.DEPTH32F_STENCIL8,...e.s3tc?{"bc1-rgba-unorm":e.s3tc.COMPRESSED_RGBA_S3TC_DXT1_EXT,"bc2-rgba-unorm":e.s3tc.COMPRESSED_RGBA_S3TC_DXT3_EXT,"bc3-rgba-unorm":e.s3tc.COMPRESSED_RGBA_S3TC_DXT5_EXT}:{},...e.s3tc_sRGB?{"bc1-rgba-unorm-srgb":e.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,"bc2-rgba-unorm-srgb":e.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,"bc3-rgba-unorm-srgb":e.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}:{},...e.rgtc?{"bc4-r-unorm":e.rgtc.COMPRESSED_RED_RGTC1_EXT,"bc4-r-snorm":e.rgtc.COMPRESSED_SIGNED_RED_RGTC1_EXT,"bc5-rg-unorm":e.rgtc.COMPRESSED_RED_GREEN_RGTC2_EXT,"bc5-rg-snorm":e.rgtc.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}:{},...e.bptc?{"bc6h-rgb-float":e.bptc.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT,"bc6h-rgb-ufloat":e.bptc.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT,"bc7-rgba-unorm":e.bptc.COMPRESSED_RGBA_BPTC_UNORM_EXT,"bc7-rgba-unorm-srgb":e.bptc.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT}:{},...e.etc?{"etc2-rgb8unorm":e.etc.COMPRESSED_RGB8_ETC2,"etc2-rgb8unorm-srgb":e.etc.COMPRESSED_SRGB8_ETC2,"etc2-rgb8a1unorm":e.etc.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,"etc2-rgb8a1unorm-srgb":e.etc.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,"etc2-rgba8unorm":e.etc.COMPRESSED_RGBA8_ETC2_EAC,"etc2-rgba8unorm-srgb":e.etc.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,"eac-r11unorm":e.etc.COMPRESSED_R11_EAC,"eac-rg11unorm":e.etc.COMPRESSED_SIGNED_RG11_EAC}:{},...e.astc?{"astc-4x4-unorm":e.astc.COMPRESSED_RGBA_ASTC_4x4_KHR,"astc-4x4-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,"astc-5x4-unorm":e.astc.COMPRESSED_RGBA_ASTC_5x4_KHR,"astc-5x4-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR,"astc-5x5-unorm":e.astc.COMPRESSED_RGBA_ASTC_5x5_KHR,"astc-5x5-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,"astc-6x5-unorm":e.astc.COMPRESSED_RGBA_ASTC_6x5_KHR,"astc-6x5-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,"astc-6x6-unorm":e.astc.COMPRESSED_RGBA_ASTC_6x6_KHR,"astc-6x6-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,"astc-8x5-unorm":e.astc.COMPRESSED_RGBA_ASTC_8x5_KHR,"astc-8x5-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,"astc-8x6-unorm":e.astc.COMPRESSED_RGBA_ASTC_8x6_KHR,"astc-8x6-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,"astc-8x8-unorm":e.astc.COMPRESSED_RGBA_ASTC_8x8_KHR,"astc-8x8-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR,"astc-10x5-unorm":e.astc.COMPRESSED_RGBA_ASTC_10x5_KHR,"astc-10x5-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR,"astc-10x6-unorm":e.astc.COMPRESSED_RGBA_ASTC_10x6_KHR,"astc-10x6-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,"astc-10x8-unorm":e.astc.COMPRESSED_RGBA_ASTC_10x8_KHR,"astc-10x8-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,"astc-10x10-unorm":e.astc.COMPRESSED_RGBA_ASTC_10x10_KHR,"astc-10x10-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,"astc-12x10-unorm":e.astc.COMPRESSED_RGBA_ASTC_12x10_KHR,"astc-12x10-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,"astc-12x12-unorm":e.astc.COMPRESSED_RGBA_ASTC_12x12_KHR,"astc-12x12-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR}:{}}}var RC=p(()=>{Ce()});function DC(r){return{r8unorm:r.UNSIGNED_BYTE,r8snorm:r.BYTE,r8uint:r.UNSIGNED_BYTE,r8sint:r.BYTE,r16uint:r.UNSIGNED_SHORT,r16sint:r.SHORT,r16float:r.HALF_FLOAT,rg8unorm:r.UNSIGNED_BYTE,rg8snorm:r.BYTE,rg8uint:r.UNSIGNED_BYTE,rg8sint:r.BYTE,r32uint:r.UNSIGNED_INT,r32sint:r.INT,r32float:r.FLOAT,rg16uint:r.UNSIGNED_SHORT,rg16sint:r.SHORT,rg16float:r.HALF_FLOAT,rgba8unorm:r.UNSIGNED_BYTE,"rgba8unorm-srgb":r.UNSIGNED_BYTE,rgba8snorm:r.BYTE,rgba8uint:r.UNSIGNED_BYTE,rgba8sint:r.BYTE,bgra8unorm:r.UNSIGNED_BYTE,"bgra8unorm-srgb":r.UNSIGNED_BYTE,rgb9e5ufloat:r.UNSIGNED_INT_5_9_9_9_REV,rgb10a2unorm:r.UNSIGNED_INT_2_10_10_10_REV,rg11b10ufloat:r.UNSIGNED_INT_10F_11F_11F_REV,rg32uint:r.UNSIGNED_INT,rg32sint:r.INT,rg32float:r.FLOAT,rgba16uint:r.UNSIGNED_SHORT,rgba16sint:r.SHORT,rgba16float:r.HALF_FLOAT,rgba32uint:r.UNSIGNED_INT,rgba32sint:r.INT,rgba32float:r.FLOAT,stencil8:r.UNSIGNED_BYTE,depth16unorm:r.UNSIGNED_SHORT,depth24plus:r.UNSIGNED_INT,"depth24plus-stencil8":r.UNSIGNED_INT_24_8,depth32float:r.FLOAT,"depth32float-stencil8":r.FLOAT_32_UNSIGNED_INT_24_8_REV}}var MC=p(()=>{"use strict"});var AR,Qa,IC=p(()=>{Ce();B();le();xC();bC();TC();Kp();SC();kC();PC();RC();MC();AR=4,Qa=class{constructor(e){this.managedTextures=[],this._glTextures=Object.create(null),this._glSamplers=Object.create(null),this._boundTextures=[],this._activeTextureLocation=-1,this._boundSamplers=Object.create(null),this._uploads={image:ch,buffer:_C,video:wC,compressed:yC},this._premultiplyAlpha=!1,this._useSeparateSamplers=!1,this._renderer=e,this._renderer.renderableGC.addManagedHash(this,"_glTextures"),this._renderer.renderableGC.addManagedHash(this,"_glSamplers")}contextChange(e){this._gl=e,this._mapFormatToInternalFormat||(this._mapFormatToInternalFormat=BC(e,this._renderer.context.extensions),this._mapFormatToType=DC(e),this._mapFormatToFormat=AC(e)),this._glTextures=Object.create(null),this._glSamplers=Object.create(null),this._boundSamplers=Object.create(null),this._premultiplyAlpha=!1;for(let t=0;t<16;t++)this.bind(M.EMPTY,t)}initSource(e){this.bind(e)}bind(e,t=0){let i=e.source;e?(this.bindSource(i,t),this._useSeparateSamplers&&this._bindSampler(i.style,t)):(this.bindSource(null,t),this._useSeparateSamplers&&this._bindSampler(null,t))}bindSource(e,t=0){let i=this._gl;if(e._touched=this._renderer.textureGC.count,this._boundTextures[t]!==e){this._boundTextures[t]=e,this._activateLocation(t),e||(e=M.EMPTY.source);let s=this.getGlSource(e);i.bindTexture(s.target,s.texture)}}_bindSampler(e,t=0){let i=this._gl;if(!e){this._boundSamplers[t]=null,i.bindSampler(t,null);return}let s=this._getGlSampler(e);this._boundSamplers[t]!==s&&(this._boundSamplers[t]=s,i.bindSampler(t,s))}unbind(e){let t=e.source,i=this._boundTextures,s=this._gl;for(let n=0;n<i.length;n++)if(i[n]===t){this._activateLocation(n);let o=this.getGlSource(t);s.bindTexture(o.target,null),i[n]=null}}_activateLocation(e){this._activeTextureLocation!==e&&(this._activeTextureLocation=e,this._gl.activeTexture(this._gl.TEXTURE0+e))}_initSource(e){let t=this._gl,i=new ah(t.createTexture());if(i.type=this._mapFormatToType[e.format],i.internalFormat=this._mapFormatToInternalFormat[e.format],i.format=this._mapFormatToFormat[e.format],e.autoGenerateMipmaps&&(this._renderer.context.supports.nonPowOf2mipmaps||e.isPowerOfTwo)){let s=Math.max(e.width,e.height);e.mipLevelCount=Math.floor(Math.log2(s))+1}return this._glTextures[e.uid]=i,this.managedTextures.includes(e)||(e.on("update",this.onSourceUpdate,this),e.on("resize",this.onSourceUpdate,this),e.on("styleChange",this.onStyleChange,this),e.on("destroy",this.onSourceDestroy,this),e.on("unload",this.onSourceUnload,this),e.on("updateMipmaps",this.onUpdateMipmaps,this),this.managedTextures.push(e)),this.onSourceUpdate(e),this.updateStyle(e,!1),i}onStyleChange(e){this.updateStyle(e,!1)}updateStyle(e,t){let i=this._gl,s=this.getGlSource(e);i.bindTexture(i.TEXTURE_2D,s.texture),this._boundTextures[this._activeTextureLocation]=e,Zp(e.style,i,e.mipLevelCount>1,this._renderer.context.extensions.anisotropicFiltering,"texParameteri",i.TEXTURE_2D,!this._renderer.context.supports.nonPowOf2wrapping&&!e.isPowerOfTwo,t)}onSourceUnload(e){let t=this._glTextures[e.uid];t&&(this.unbind(e),this._glTextures[e.uid]=null,this._gl.deleteTexture(t.texture))}onSourceUpdate(e){let t=this._gl,i=this.getGlSource(e);t.bindTexture(t.TEXTURE_2D,i.texture),this._boundTextures[this._activeTextureLocation]=e;let s=e.alphaMode==="premultiply-alpha-on-upload";this._premultiplyAlpha!==s&&(this._premultiplyAlpha=s,t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,s)),this._uploads[e.uploadMethodId]?this._uploads[e.uploadMethodId].upload(e,i,t,this._renderer.context.webGLVersion):t.texImage2D(t.TEXTURE_2D,0,t.RGBA,e.pixelWidth,e.pixelHeight,0,t.RGBA,t.UNSIGNED_BYTE,null),e.autoGenerateMipmaps&&e.mipLevelCount>1&&this.onUpdateMipmaps(e,!1)}onUpdateMipmaps(e,t=!0){t&&this.bindSource(e,0);let i=this.getGlSource(e);this._gl.generateMipmap(i.target)}onSourceDestroy(e){e.off("destroy",this.onSourceDestroy,this),e.off("update",this.onSourceUpdate,this),e.off("resize",this.onSourceUpdate,this),e.off("unload",this.onSourceUnload,this),e.off("styleChange",this.onStyleChange,this),e.off("updateMipmaps",this.onUpdateMipmaps,this),this.managedTextures.splice(this.managedTextures.indexOf(e),1),this.onSourceUnload(e)}_initSampler(e){let t=this._gl,i=this._gl.createSampler();return this._glSamplers[e._resourceId]=i,Zp(e,t,this._boundTextures[this._activeTextureLocation].mipLevelCount>1,this._renderer.context.extensions.anisotropicFiltering,"samplerParameteri",i,!1,!0),this._glSamplers[e._resourceId]}_getGlSampler(e){return this._glSamplers[e._resourceId]||this._initSampler(e)}getGlSource(e){return this._glTextures[e.uid]||this._initSource(e)}generateCanvas(e){let{pixels:t,width:i,height:s}=this.getPixels(e),n=W.get().createCanvas();n.width=i,n.height=s;let o=n.getContext("2d");if(o){let a=o.createImageData(i,s);a.data.set(t),o.putImageData(a,0,0)}return n}getPixels(e){let t=e.source.resolution,i=e.frame,s=Math.max(Math.round(i.width*t),1),n=Math.max(Math.round(i.height*t),1),o=new Uint8Array(AR*s*n),a=this._renderer,c=a.renderTarget.getRenderTarget(e),u=a.renderTarget.getGpuRenderTarget(c),l=a.gl;return l.bindFramebuffer(l.FRAMEBUFFER,u.resolveTargetFramebuffer),l.readPixels(Math.round(i.x*t),Math.round(i.y*t),s,n,l.RGBA,l.UNSIGNED_BYTE,o),{pixels:new Uint8ClampedArray(o.buffer),width:s,height:n}}destroy(){this.managedTextures.slice().forEach(e=>this.onSourceDestroy(e)),this.managedTextures=null,this._renderer=null}resetState(){this._activeTextureLocation=-1,this._boundTextures.fill(M.EMPTY.source),this._boundSamplers=Object.create(null);let e=this._gl;this._premultiplyAlpha=!1,e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,this._premultiplyAlpha)}};Qa.extension={type:[b.WebGLSystem],name:"texture"}});var GC={};Tg(GC,{WebGLRenderer:()=>Jp});var PR,BR,RR,FC,UC,OC,Jp,NC=p(()=>{B();f1();m1();p1();ra();Cp();ir();_1();T1();C1();A1();P1();B1();R1();D1();G1();z1();nC();hC();gC();IC();PR=[...Hl,ja,k1,y1,$a,za,Qa,Xa,Va,Ka,Ya,Wa,pC,qa,Ha],BR=[...Wl],RR=[Na,Ga,Oa],FC=[],UC=[],OC=[];O.handleByNamedList(b.WebGLSystem,FC);O.handleByNamedList(b.WebGLPipes,UC);O.handleByNamedList(b.WebGLPipesAdaptor,OC);O.add(...PR,...BR,...RR);Jp=class extends ti{constructor(){let e={name:"webgl",type:Ie.WEBGL,systems:FC,renderPipes:UC,renderPipeAdaptors:OC};super(e)}}});var Za=Fr(_n=>{"use strict";function DR(r,e,t){if(t===void 0&&(t=Array.prototype),r&&typeof t.find=="function")return t.find.call(r,e);for(var i=0;i<r.length;i++)if(Object.prototype.hasOwnProperty.call(r,i)){var s=r[i];if(e.call(void 0,s,i,r))return s}}function tg(r,e){return e===void 0&&(e=Object),e&&typeof e.freeze=="function"?e.freeze(r):r}function MR(r,e){if(r===null||typeof r!="object")throw new TypeError("target is not an object");for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(r[t]=e[t]);return r}var zC=tg({HTML:"text/html",isHTML:function(r){return r===zC.HTML},XML_APPLICATION:"application/xml",XML_TEXT:"text/xml",XML_XHTML_APPLICATION:"application/xhtml+xml",XML_SVG_IMAGE:"image/svg+xml"}),VC=tg({HTML:"http://www.w3.org/1999/xhtml",isHTML:function(r){return r===VC.HTML},SVG:"http://www.w3.org/2000/svg",XML:"http://www.w3.org/XML/1998/namespace",XMLNS:"http://www.w3.org/2000/xmlns/"});_n.assign=MR;_n.find=DR;_n.freeze=tg;_n.MIME_TYPE=zC;_n.NAMESPACE=VC});var dg=Fr(si=>{var KC=Za(),ur=KC.find,Ja=KC.NAMESPACE;function IR(r){return r!==""}function FR(r){return r?r.split(/[\t\n\f\r ]+/).filter(IR):[]}function UR(r,e){return r.hasOwnProperty(e)||(r[e]=!0),r}function HC(r){if(!r)return[];var e=FR(r);return Object.keys(e.reduce(UR,{}))}function OR(r){return function(e){return r&&r.indexOf(e)!==-1}}function tc(r,e){for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=r[t])}function ft(r,e){var t=r.prototype;if(!(t instanceof e)){let s=function(){};var i=s;s.prototype=e.prototype,s=new s,tc(t,s),r.prototype=t=s}t.constructor!=r&&(typeof r!="function"&&console.error("unknown Class:"+r),t.constructor=r)}var mt={},Nt=mt.ELEMENT_NODE=1,yn=mt.ATTRIBUTE_NODE=2,lh=mt.TEXT_NODE=3,QC=mt.CDATA_SECTION_NODE=4,ZC=mt.ENTITY_REFERENCE_NODE=5,GR=mt.ENTITY_NODE=6,JC=mt.PROCESSING_INSTRUCTION_NODE=7,eE=mt.COMMENT_NODE=8,tE=mt.DOCUMENT_NODE=9,rE=mt.DOCUMENT_TYPE_NODE=10,Dr=mt.DOCUMENT_FRAGMENT_NODE=11,NR=mt.NOTATION_NODE=12,Ye={},ze={},Coe=Ye.INDEX_SIZE_ERR=(ze[1]="Index size error",1),Eoe=Ye.DOMSTRING_SIZE_ERR=(ze[2]="DOMString size error",2),dt=Ye.HIERARCHY_REQUEST_ERR=(ze[3]="Hierarchy request error",3),koe=Ye.WRONG_DOCUMENT_ERR=(ze[4]="Wrong document",4),Aoe=Ye.INVALID_CHARACTER_ERR=(ze[5]="Invalid character",5),Poe=Ye.NO_DATA_ALLOWED_ERR=(ze[6]="No data allowed",6),Boe=Ye.NO_MODIFICATION_ALLOWED_ERR=(ze[7]="No modification allowed",7),iE=Ye.NOT_FOUND_ERR=(ze[8]="Not found",8),Roe=Ye.NOT_SUPPORTED_ERR=(ze[9]="Not supported",9),WC=Ye.INUSE_ATTRIBUTE_ERR=(ze[10]="Attribute in use",10),Doe=Ye.INVALID_STATE_ERR=(ze[11]="Invalid state",11),Moe=Ye.SYNTAX_ERR=(ze[12]="Syntax error",12),Ioe=Ye.INVALID_MODIFICATION_ERR=(ze[13]="Invalid modification",13),Foe=Ye.NAMESPACE_ERR=(ze[14]="Invalid namespace",14),Uoe=Ye.INVALID_ACCESS_ERR=(ze[15]="Invalid access",15);function Be(r,e){if(e instanceof Error)var t=e;else t=this,Error.call(this,ze[r]),this.message=ze[r],Error.captureStackTrace&&Error.captureStackTrace(this,Be);return t.code=r,e&&(this.message=this.message+": "+e),t}Be.prototype=Error.prototype;tc(Ye,Be);function Rr(){}Rr.prototype={length:0,item:function(r){return r>=0&&r<this.length?this[r]:null},toString:function(r,e){for(var t=[],i=0;i<this.length;i++)bn(this[i],t,r,e);return t.join("")},filter:function(r){return Array.prototype.filter.call(this,r)},indexOf:function(r){return Array.prototype.indexOf.call(this,r)}};function Tn(r,e){this._node=r,this._refresh=e,sg(this)}function sg(r){var e=r._node._inc||r._node.ownerDocument._inc;if(r._inc!==e){var t=r._refresh(r._node);if(pE(r,"length",t.length),!r.$$length||t.length<r.$$length)for(var i=t.length;i in r;i++)Object.prototype.hasOwnProperty.call(r,i)&&delete r[i];tc(t,r),r._inc=e}}Tn.prototype.item=function(r){return sg(this),this[r]||null};ft(Tn,Rr);function hh(){}function sE(r,e){for(var t=r.length;t--;)if(r[t]===e)return t}function $C(r,e,t,i){if(i?e[sE(e,i)]=t:e[e.length++]=t,r){t.ownerElement=r;var s=r.ownerDocument;s&&(i&&aE(s,r,i),LR(s,r,t))}}function qC(r,e,t){var i=sE(e,t);if(i>=0){for(var s=e.length-1;i<s;)e[i]=e[++i];if(e.length=s,r){var n=r.ownerDocument;n&&(aE(n,r,t),t.ownerElement=null)}}else throw new Be(iE,new Error(r.tagName+"@"+t))}hh.prototype={length:0,item:Rr.prototype.item,getNamedItem:function(r){for(var e=this.length;e--;){var t=this[e];if(t.nodeName==r)return t}},setNamedItem:function(r){var e=r.ownerElement;if(e&&e!=this._ownerElement)throw new Be(WC);var t=this.getNamedItem(r.nodeName);return $C(this._ownerElement,this,r,t),t},setNamedItemNS:function(r){var e=r.ownerElement,t;if(e&&e!=this._ownerElement)throw new Be(WC);return t=this.getNamedItemNS(r.namespaceURI,r.localName),$C(this._ownerElement,this,r,t),t},removeNamedItem:function(r){var e=this.getNamedItem(r);return qC(this._ownerElement,this,e),e},removeNamedItemNS:function(r,e){var t=this.getNamedItemNS(r,e);return qC(this._ownerElement,this,t),t},getNamedItemNS:function(r,e){for(var t=this.length;t--;){var i=this[t];if(i.localName==e&&i.namespaceURI==r)return i}return null}};function nE(){}nE.prototype={hasFeature:function(r,e){return!0},createDocument:function(r,e,t){var i=new rc;if(i.implementation=this,i.childNodes=new Rr,i.doctype=t||null,t&&i.appendChild(t),e){var s=i.createElementNS(r,e);i.appendChild(s)}return i},createDocumentType:function(r,e,t){var i=new mh;return i.name=r,i.nodeName=r,i.publicId=e||"",i.systemId=t||"",i}};function ue(){}ue.prototype={firstChild:null,lastChild:null,previousSibling:null,nextSibling:null,attributes:null,parentNode:null,childNodes:null,ownerDocument:null,nodeValue:null,namespaceURI:null,prefix:null,localName:null,insertBefore:function(r,e){return dh(this,r,e)},replaceChild:function(r,e){dh(this,r,e,uE),e&&this.removeChild(e)},removeChild:function(r){return cE(this,r)},appendChild:function(r){return this.insertBefore(r,null)},hasChildNodes:function(){return this.firstChild!=null},cloneNode:function(r){return ig(this.ownerDocument||this,this,r)},normalize:function(){for(var r=this.firstChild;r;){var e=r.nextSibling;e&&e.nodeType==lh&&r.nodeType==lh?(this.removeChild(e),r.appendData(e.data)):(r.normalize(),r=e)}},isSupported:function(r,e){return this.ownerDocument.implementation.hasFeature(r,e)},hasAttributes:function(){return this.attributes.length>0},lookupPrefix:function(r){for(var e=this;e;){var t=e._nsMap;if(t){for(var i in t)if(Object.prototype.hasOwnProperty.call(t,i)&&t[i]===r)return i}e=e.nodeType==yn?e.ownerDocument:e.parentNode}return null},lookupNamespaceURI:function(r){for(var e=this;e;){var t=e._nsMap;if(t&&Object.prototype.hasOwnProperty.call(t,r))return t[r];e=e.nodeType==yn?e.ownerDocument:e.parentNode}return null},isDefaultNamespace:function(r){var e=this.lookupPrefix(r);return e==null}};function oE(r){return r=="<"&&"&lt;"||r==">"&&"&gt;"||r=="&"&&"&amp;"||r=='"'&&"&quot;"||"&#"+r.charCodeAt()+";"}tc(mt,ue);tc(mt,ue.prototype);function ec(r,e){if(e(r))return!0;if(r=r.firstChild)do if(ec(r,e))return!0;while(r=r.nextSibling)}function rc(){this.ownerDocument=this}function LR(r,e,t){r&&r._inc++;var i=t.namespaceURI;i===Ja.XMLNS&&(e._nsMap[t.prefix?t.localName:""]=t.value)}function aE(r,e,t,i){r&&r._inc++;var s=t.namespaceURI;s===Ja.XMLNS&&delete e._nsMap[t.prefix?t.localName:""]}function ng(r,e,t){if(r&&r._inc){r._inc++;var i=e.childNodes;if(t)i[i.length++]=t;else{for(var s=e.firstChild,n=0;s;)i[n++]=s,s=s.nextSibling;i.length=n,delete i[i.length]}}}function cE(r,e){var t=e.previousSibling,i=e.nextSibling;return t?t.nextSibling=i:r.firstChild=i,i?i.previousSibling=t:r.lastChild=t,e.parentNode=null,e.previousSibling=null,e.nextSibling=null,ng(r.ownerDocument,r),e}function zR(r){return r&&(r.nodeType===ue.DOCUMENT_NODE||r.nodeType===ue.DOCUMENT_FRAGMENT_NODE||r.nodeType===ue.ELEMENT_NODE)}function VR(r){return r&&(lr(r)||og(r)||Mr(r)||r.nodeType===ue.DOCUMENT_FRAGMENT_NODE||r.nodeType===ue.COMMENT_NODE||r.nodeType===ue.PROCESSING_INSTRUCTION_NODE)}function Mr(r){return r&&r.nodeType===ue.DOCUMENT_TYPE_NODE}function lr(r){return r&&r.nodeType===ue.ELEMENT_NODE}function og(r){return r&&r.nodeType===ue.TEXT_NODE}function jC(r,e){var t=r.childNodes||[];if(ur(t,lr)||Mr(e))return!1;var i=ur(t,Mr);return!(e&&i&&t.indexOf(i)>t.indexOf(e))}function XC(r,e){var t=r.childNodes||[];function i(n){return lr(n)&&n!==e}if(ur(t,i))return!1;var s=ur(t,Mr);return!(e&&s&&t.indexOf(s)>t.indexOf(e))}function HR(r,e,t){if(!zR(r))throw new Be(dt,"Unexpected parent node type "+r.nodeType);if(t&&t.parentNode!==r)throw new Be(iE,"child not in parent");if(!VR(e)||Mr(e)&&r.nodeType!==ue.DOCUMENT_NODE)throw new Be(dt,"Unexpected node type "+e.nodeType+" for parent node type "+r.nodeType)}function WR(r,e,t){var i=r.childNodes||[],s=e.childNodes||[];if(e.nodeType===ue.DOCUMENT_FRAGMENT_NODE){var n=s.filter(lr);if(n.length>1||ur(s,og))throw new Be(dt,"More than one element or text in fragment");if(n.length===1&&!jC(r,t))throw new Be(dt,"Element in fragment can not be inserted before doctype")}if(lr(e)&&!jC(r,t))throw new Be(dt,"Only one element can be added and only after doctype");if(Mr(e)){if(ur(i,Mr))throw new Be(dt,"Only one doctype is allowed");var o=ur(i,lr);if(t&&i.indexOf(o)<i.indexOf(t))throw new Be(dt,"Doctype can only be inserted before an element");if(!t&&o)throw new Be(dt,"Doctype can not be appended since element is present")}}function uE(r,e,t){var i=r.childNodes||[],s=e.childNodes||[];if(e.nodeType===ue.DOCUMENT_FRAGMENT_NODE){var n=s.filter(lr);if(n.length>1||ur(s,og))throw new Be(dt,"More than one element or text in fragment");if(n.length===1&&!XC(r,t))throw new Be(dt,"Element in fragment can not be inserted before doctype")}if(lr(e)&&!XC(r,t))throw new Be(dt,"Only one element can be added and only after doctype");if(Mr(e)){let c=function(u){return Mr(u)&&u!==t};var a=c;if(ur(i,c))throw new Be(dt,"Only one doctype is allowed");var o=ur(i,lr);if(t&&i.indexOf(o)<i.indexOf(t))throw new Be(dt,"Doctype can only be inserted before an element")}}function dh(r,e,t,i){HR(r,e,t),r.nodeType===ue.DOCUMENT_NODE&&(i||WR)(r,e,t);var s=e.parentNode;if(s&&s.removeChild(e),e.nodeType===Dr){var n=e.firstChild;if(n==null)return e;var o=e.lastChild}else n=o=e;var a=t?t.previousSibling:r.lastChild;n.previousSibling=a,o.nextSibling=t,a?a.nextSibling=n:r.firstChild=n,t==null?r.lastChild=o:t.previousSibling=o;do n.parentNode=r;while(n!==o&&(n=n.nextSibling));return ng(r.ownerDocument||r,r),e.nodeType==Dr&&(e.firstChild=e.lastChild=null),e}function $R(r,e){return e.parentNode&&e.parentNode.removeChild(e),e.parentNode=r,e.previousSibling=r.lastChild,e.nextSibling=null,e.previousSibling?e.previousSibling.nextSibling=e:r.firstChild=e,r.lastChild=e,ng(r.ownerDocument,r,e),e}rc.prototype={nodeName:"#document",nodeType:tE,doctype:null,documentElement:null,_inc:1,insertBefore:function(r,e){if(r.nodeType==Dr){for(var t=r.firstChild;t;){var i=t.nextSibling;this.insertBefore(t,e),t=i}return r}return dh(this,r,e),r.ownerDocument=this,this.documentElement===null&&r.nodeType===Nt&&(this.documentElement=r),r},removeChild:function(r){return this.documentElement==r&&(this.documentElement=null),cE(this,r)},replaceChild:function(r,e){dh(this,r,e,uE),r.ownerDocument=this,e&&this.removeChild(e),lr(r)&&(this.documentElement=r)},importNode:function(r,e){return mE(this,r,e)},getElementById:function(r){var e=null;return ec(this.documentElement,function(t){if(t.nodeType==Nt&&t.getAttribute("id")==r)return e=t,!0}),e},getElementsByClassName:function(r){var e=HC(r);return new Tn(this,function(t){var i=[];return e.length>0&&ec(t.documentElement,function(s){if(s!==t&&s.nodeType===Nt){var n=s.getAttribute("class");if(n){var o=r===n;if(!o){var a=HC(n);o=e.every(OR(a))}o&&i.push(s)}}}),i})},createElement:function(r){var e=new ts;e.ownerDocument=this,e.nodeName=r,e.tagName=r,e.localName=r,e.childNodes=new Rr;var t=e.attributes=new hh;return t._ownerElement=e,e},createDocumentFragment:function(){var r=new ph;return r.ownerDocument=this,r.childNodes=new Rr,r},createTextNode:function(r){var e=new ag;return e.ownerDocument=this,e.appendData(r),e},createComment:function(r){var e=new cg;return e.ownerDocument=this,e.appendData(r),e},createCDATASection:function(r){var e=new ug;return e.ownerDocument=this,e.appendData(r),e},createProcessingInstruction:function(r,e){var t=new hg;return t.ownerDocument=this,t.tagName=t.nodeName=t.target=r,t.nodeValue=t.data=e,t},createAttribute:function(r){var e=new fh;return e.ownerDocument=this,e.name=r,e.nodeName=r,e.localName=r,e.specified=!0,e},createEntityReference:function(r){var e=new lg;return e.ownerDocument=this,e.nodeName=r,e},createElementNS:function(r,e){var t=new ts,i=e.split(":"),s=t.attributes=new hh;return t.childNodes=new Rr,t.ownerDocument=this,t.nodeName=e,t.tagName=e,t.namespaceURI=r,i.length==2?(t.prefix=i[0],t.localName=i[1]):t.localName=e,s._ownerElement=t,t},createAttributeNS:function(r,e){var t=new fh,i=e.split(":");return t.ownerDocument=this,t.nodeName=e,t.name=e,t.namespaceURI=r,t.specified=!0,i.length==2?(t.prefix=i[0],t.localName=i[1]):t.localName=e,t}};ft(rc,ue);function ts(){this._nsMap={}}ts.prototype={nodeType:Nt,hasAttribute:function(r){return this.getAttributeNode(r)!=null},getAttribute:function(r){var e=this.getAttributeNode(r);return e&&e.value||""},getAttributeNode:function(r){return this.attributes.getNamedItem(r)},setAttribute:function(r,e){var t=this.ownerDocument.createAttribute(r);t.value=t.nodeValue=""+e,this.setAttributeNode(t)},removeAttribute:function(r){var e=this.getAttributeNode(r);e&&this.removeAttributeNode(e)},appendChild:function(r){return r.nodeType===Dr?this.insertBefore(r,null):$R(this,r)},setAttributeNode:function(r){return this.attributes.setNamedItem(r)},setAttributeNodeNS:function(r){return this.attributes.setNamedItemNS(r)},removeAttributeNode:function(r){return this.attributes.removeNamedItem(r.nodeName)},removeAttributeNS:function(r,e){var t=this.getAttributeNodeNS(r,e);t&&this.removeAttributeNode(t)},hasAttributeNS:function(r,e){return this.getAttributeNodeNS(r,e)!=null},getAttributeNS:function(r,e){var t=this.getAttributeNodeNS(r,e);return t&&t.value||""},setAttributeNS:function(r,e,t){var i=this.ownerDocument.createAttributeNS(r,e);i.value=i.nodeValue=""+t,this.setAttributeNode(i)},getAttributeNodeNS:function(r,e){return this.attributes.getNamedItemNS(r,e)},getElementsByTagName:function(r){return new Tn(this,function(e){var t=[];return ec(e,function(i){i!==e&&i.nodeType==Nt&&(r==="*"||i.tagName==r)&&t.push(i)}),t})},getElementsByTagNameNS:function(r,e){return new Tn(this,function(t){var i=[];return ec(t,function(s){s!==t&&s.nodeType===Nt&&(r==="*"||s.namespaceURI===r)&&(e==="*"||s.localName==e)&&i.push(s)}),i})}};rc.prototype.getElementsByTagName=ts.prototype.getElementsByTagName;rc.prototype.getElementsByTagNameNS=ts.prototype.getElementsByTagNameNS;ft(ts,ue);function fh(){}fh.prototype.nodeType=yn;ft(fh,ue);function ic(){}ic.prototype={data:"",substringData:function(r,e){return this.data.substring(r,r+e)},appendData:function(r){r=this.data+r,this.nodeValue=this.data=r,this.length=r.length},insertData:function(r,e){this.replaceData(r,0,e)},appendChild:function(r){throw new Error(ze[dt])},deleteData:function(r,e){this.replaceData(r,e,"")},replaceData:function(r,e,t){var i=this.data.substring(0,r),s=this.data.substring(r+e);t=i+t+s,this.nodeValue=this.data=t,this.length=t.length}};ft(ic,ue);function ag(){}ag.prototype={nodeName:"#text",nodeType:lh,splitText:function(r){var e=this.data,t=e.substring(r);e=e.substring(0,r),this.data=this.nodeValue=e,this.length=e.length;var i=this.ownerDocument.createTextNode(t);return this.parentNode&&this.parentNode.insertBefore(i,this.nextSibling),i}};ft(ag,ic);function cg(){}cg.prototype={nodeName:"#comment",nodeType:eE};ft(cg,ic);function ug(){}ug.prototype={nodeName:"#cdata-section",nodeType:QC};ft(ug,ic);function mh(){}mh.prototype.nodeType=rE;ft(mh,ue);function lE(){}lE.prototype.nodeType=NR;ft(lE,ue);function hE(){}hE.prototype.nodeType=GR;ft(hE,ue);function lg(){}lg.prototype.nodeType=ZC;ft(lg,ue);function ph(){}ph.prototype.nodeName="#document-fragment";ph.prototype.nodeType=Dr;ft(ph,ue);function hg(){}hg.prototype.nodeType=JC;ft(hg,ue);function dE(){}dE.prototype.serializeToString=function(r,e,t){return fE.call(r,e,t)};ue.prototype.toString=fE;function fE(r,e){var t=[],i=this.nodeType==9&&this.documentElement||this,s=i.prefix,n=i.namespaceURI;if(n&&s==null){var s=i.lookupPrefix(n);if(s==null)var o=[{namespace:n,prefix:null}]}return bn(this,t,r,e,o),t.join("")}function YC(r,e,t){var i=r.prefix||"",s=r.namespaceURI;if(!s||i==="xml"&&s===Ja.XML||s===Ja.XMLNS)return!1;for(var n=t.length;n--;){var o=t[n];if(o.prefix===i)return o.namespace!==s}return!0}function rg(r,e,t){r.push(" ",e,'="',t.replace(/[<>&"\t\n\r]/g,oE),'"')}function bn(r,e,t,i,s){if(s||(s=[]),i)if(r=i(r),r){if(typeof r=="string"){e.push(r);return}}else return;switch(r.nodeType){case Nt:var n=r.attributes,o=n.length,_=r.firstChild,a=r.tagName;t=Ja.isHTML(r.namespaceURI)||t;var c=a;if(!t&&!r.prefix&&r.namespaceURI){for(var u,l=0;l<n.length;l++)if(n.item(l).name==="xmlns"){u=n.item(l).value;break}if(!u)for(var h=s.length-1;h>=0;h--){var f=s[h];if(f.prefix===""&&f.namespace===r.namespaceURI){u=f.namespace;break}}if(u!==r.namespaceURI)for(var h=s.length-1;h>=0;h--){var f=s[h];if(f.namespace===r.namespaceURI){f.prefix&&(c=f.prefix+":"+a);break}}}e.push("<",c);for(var d=0;d<o;d++){var m=n.item(d);m.prefix=="xmlns"?s.push({prefix:m.localName,namespace:m.value}):m.nodeName=="xmlns"&&s.push({prefix:"",namespace:m.value})}for(var d=0;d<o;d++){var m=n.item(d);if(YC(m,t,s)){var x=m.prefix||"",g=m.namespaceURI;rg(e,x?"xmlns:"+x:"xmlns",g),s.push({prefix:x,namespace:g})}bn(m,e,t,i,s)}if(a===c&&YC(r,t,s)){var x=r.prefix||"",g=r.namespaceURI;rg(e,x?"xmlns:"+x:"xmlns",g),s.push({prefix:x,namespace:g})}if(_||t&&!/^(?:meta|link|img|br|hr|input)$/i.test(a)){if(e.push(">"),t&&/^script$/i.test(a))for(;_;)_.data?e.push(_.data):bn(_,e,t,i,s.slice()),_=_.nextSibling;else for(;_;)bn(_,e,t,i,s.slice()),_=_.nextSibling;e.push("</",c,">")}else e.push("/>");return;case tE:case Dr:for(var _=r.firstChild;_;)bn(_,e,t,i,s.slice()),_=_.nextSibling;return;case yn:return rg(e,r.name,r.value);case lh:return e.push(r.data.replace(/[<&>]/g,oE));case QC:return e.push("<![CDATA[",r.data,"]]>");case eE:return e.push("<!--",r.data,"-->");case rE:var y=r.publicId,S=r.systemId;if(e.push("<!DOCTYPE ",r.name),y)e.push(" PUBLIC ",y),S&&S!="."&&e.push(" ",S),e.push(">");else if(S&&S!=".")e.push(" SYSTEM ",S,">");else{var T=r.internalSubset;T&&e.push(" [",T,"]"),e.push(">")}return;case JC:return e.push("<?",r.target," ",r.data,"?>");case ZC:return e.push("&",r.nodeName,";");default:e.push("??",r.nodeName)}}function mE(r,e,t){var i;switch(e.nodeType){case Nt:i=e.cloneNode(!1),i.ownerDocument=r;case Dr:break;case yn:t=!0;break}if(i||(i=e.cloneNode(!1)),i.ownerDocument=r,i.parentNode=null,t)for(var s=e.firstChild;s;)i.appendChild(mE(r,s,t)),s=s.nextSibling;return i}function ig(r,e,t){var i=new e.constructor;for(var s in e)if(Object.prototype.hasOwnProperty.call(e,s)){var n=e[s];typeof n!="object"&&n!=i[s]&&(i[s]=n)}switch(e.childNodes&&(i.childNodes=new Rr),i.ownerDocument=r,i.nodeType){case Nt:var o=e.attributes,a=i.attributes=new hh,c=o.length;a._ownerElement=i;for(var u=0;u<c;u++)i.setAttributeNode(ig(r,o.item(u),!0));break;case yn:t=!0}if(t)for(var l=e.firstChild;l;)i.appendChild(ig(r,l,t)),l=l.nextSibling;return i}function pE(r,e,t){r[e]=t}try{if(Object.defineProperty){let r=function(e){switch(e.nodeType){case Nt:case Dr:var t=[];for(e=e.firstChild;e;)e.nodeType!==7&&e.nodeType!==8&&t.push(r(e)),e=e.nextSibling;return t.join("");default:return e.nodeValue}};qR=r,Object.defineProperty(Tn.prototype,"length",{get:function(){return sg(this),this.$$length}}),Object.defineProperty(ue.prototype,"textContent",{get:function(){return r(this)},set:function(e){switch(this.nodeType){case Nt:case Dr:for(;this.firstChild;)this.removeChild(this.firstChild);(e||String(e))&&this.appendChild(this.ownerDocument.createTextNode(e));break;default:this.data=e,this.value=e,this.nodeValue=e}}}),pE=function(e,t,i){e["$$"+t]=i}}}catch{}var qR;si.DocumentType=mh;si.DOMException=Be;si.DOMImplementation=nE;si.Element=ts;si.Node=ue;si.NodeList=Rr;si.XMLSerializer=dE});var xE=Fr(sc=>{"use strict";var gE=Za().freeze;sc.XML_ENTITIES=gE({amp:"&",apos:"'",gt:">",lt:"<",quot:'"'});sc.HTML_ENTITIES=gE({Aacute:"\xC1",aacute:"\xE1",Abreve:"\u0102",abreve:"\u0103",ac:"\u223E",acd:"\u223F",acE:"\u223E\u0333",Acirc:"\xC2",acirc:"\xE2",acute:"\xB4",Acy:"\u0410",acy:"\u0430",AElig:"\xC6",aelig:"\xE6",af:"\u2061",Afr:"\u{1D504}",afr:"\u{1D51E}",Agrave:"\xC0",agrave:"\xE0",alefsym:"\u2135",aleph:"\u2135",Alpha:"\u0391",alpha:"\u03B1",Amacr:"\u0100",amacr:"\u0101",amalg:"\u2A3F",AMP:"&",amp:"&",And:"\u2A53",and:"\u2227",andand:"\u2A55",andd:"\u2A5C",andslope:"\u2A58",andv:"\u2A5A",ang:"\u2220",ange:"\u29A4",angle:"\u2220",angmsd:"\u2221",angmsdaa:"\u29A8",angmsdab:"\u29A9",angmsdac:"\u29AA",angmsdad:"\u29AB",angmsdae:"\u29AC",angmsdaf:"\u29AD",angmsdag:"\u29AE",angmsdah:"\u29AF",angrt:"\u221F",angrtvb:"\u22BE",angrtvbd:"\u299D",angsph:"\u2222",angst:"\xC5",angzarr:"\u237C",Aogon:"\u0104",aogon:"\u0105",Aopf:"\u{1D538}",aopf:"\u{1D552}",ap:"\u2248",apacir:"\u2A6F",apE:"\u2A70",ape:"\u224A",apid:"\u224B",apos:"'",ApplyFunction:"\u2061",approx:"\u2248",approxeq:"\u224A",Aring:"\xC5",aring:"\xE5",Ascr:"\u{1D49C}",ascr:"\u{1D4B6}",Assign:"\u2254",ast:"*",asymp:"\u2248",asympeq:"\u224D",Atilde:"\xC3",atilde:"\xE3",Auml:"\xC4",auml:"\xE4",awconint:"\u2233",awint:"\u2A11",backcong:"\u224C",backepsilon:"\u03F6",backprime:"\u2035",backsim:"\u223D",backsimeq:"\u22CD",Backslash:"\u2216",Barv:"\u2AE7",barvee:"\u22BD",Barwed:"\u2306",barwed:"\u2305",barwedge:"\u2305",bbrk:"\u23B5",bbrktbrk:"\u23B6",bcong:"\u224C",Bcy:"\u0411",bcy:"\u0431",bdquo:"\u201E",becaus:"\u2235",Because:"\u2235",because:"\u2235",bemptyv:"\u29B0",bepsi:"\u03F6",bernou:"\u212C",Bernoullis:"\u212C",Beta:"\u0392",beta:"\u03B2",beth:"\u2136",between:"\u226C",Bfr:"\u{1D505}",bfr:"\u{1D51F}",bigcap:"\u22C2",bigcirc:"\u25EF",bigcup:"\u22C3",bigodot:"\u2A00",bigoplus:"\u2A01",bigotimes:"\u2A02",bigsqcup:"\u2A06",bigstar:"\u2605",bigtriangledown:"\u25BD",bigtriangleup:"\u25B3",biguplus:"\u2A04",bigvee:"\u22C1",bigwedge:"\u22C0",bkarow:"\u290D",blacklozenge:"\u29EB",blacksquare:"\u25AA",blacktriangle:"\u25B4",blacktriangledown:"\u25BE",blacktriangleleft:"\u25C2",blacktriangleright:"\u25B8",blank:"\u2423",blk12:"\u2592",blk14:"\u2591",blk34:"\u2593",block:"\u2588",bne:"=\u20E5",bnequiv:"\u2261\u20E5",bNot:"\u2AED",bnot:"\u2310",Bopf:"\u{1D539}",bopf:"\u{1D553}",bot:"\u22A5",bottom:"\u22A5",bowtie:"\u22C8",boxbox:"\u29C9",boxDL:"\u2557",boxDl:"\u2556",boxdL:"\u2555",boxdl:"\u2510",boxDR:"\u2554",boxDr:"\u2553",boxdR:"\u2552",boxdr:"\u250C",boxH:"\u2550",boxh:"\u2500",boxHD:"\u2566",boxHd:"\u2564",boxhD:"\u2565",boxhd:"\u252C",boxHU:"\u2569",boxHu:"\u2567",boxhU:"\u2568",boxhu:"\u2534",boxminus:"\u229F",boxplus:"\u229E",boxtimes:"\u22A0",boxUL:"\u255D",boxUl:"\u255C",boxuL:"\u255B",boxul:"\u2518",boxUR:"\u255A",boxUr:"\u2559",boxuR:"\u2558",boxur:"\u2514",boxV:"\u2551",boxv:"\u2502",boxVH:"\u256C",boxVh:"\u256B",boxvH:"\u256A",boxvh:"\u253C",boxVL:"\u2563",boxVl:"\u2562",boxvL:"\u2561",boxvl:"\u2524",boxVR:"\u2560",boxVr:"\u255F",boxvR:"\u255E",boxvr:"\u251C",bprime:"\u2035",Breve:"\u02D8",breve:"\u02D8",brvbar:"\xA6",Bscr:"\u212C",bscr:"\u{1D4B7}",bsemi:"\u204F",bsim:"\u223D",bsime:"\u22CD",bsol:"\\",bsolb:"\u29C5",bsolhsub:"\u27C8",bull:"\u2022",bullet:"\u2022",bump:"\u224E",bumpE:"\u2AAE",bumpe:"\u224F",Bumpeq:"\u224E",bumpeq:"\u224F",Cacute:"\u0106",cacute:"\u0107",Cap:"\u22D2",cap:"\u2229",capand:"\u2A44",capbrcup:"\u2A49",capcap:"\u2A4B",capcup:"\u2A47",capdot:"\u2A40",CapitalDifferentialD:"\u2145",caps:"\u2229\uFE00",caret:"\u2041",caron:"\u02C7",Cayleys:"\u212D",ccaps:"\u2A4D",Ccaron:"\u010C",ccaron:"\u010D",Ccedil:"\xC7",ccedil:"\xE7",Ccirc:"\u0108",ccirc:"\u0109",Cconint:"\u2230",ccups:"\u2A4C",ccupssm:"\u2A50",Cdot:"\u010A",cdot:"\u010B",cedil:"\xB8",Cedilla:"\xB8",cemptyv:"\u29B2",cent:"\xA2",CenterDot:"\xB7",centerdot:"\xB7",Cfr:"\u212D",cfr:"\u{1D520}",CHcy:"\u0427",chcy:"\u0447",check:"\u2713",checkmark:"\u2713",Chi:"\u03A7",chi:"\u03C7",cir:"\u25CB",circ:"\u02C6",circeq:"\u2257",circlearrowleft:"\u21BA",circlearrowright:"\u21BB",circledast:"\u229B",circledcirc:"\u229A",circleddash:"\u229D",CircleDot:"\u2299",circledR:"\xAE",circledS:"\u24C8",CircleMinus:"\u2296",CirclePlus:"\u2295",CircleTimes:"\u2297",cirE:"\u29C3",cire:"\u2257",cirfnint:"\u2A10",cirmid:"\u2AEF",cirscir:"\u29C2",ClockwiseContourIntegral:"\u2232",CloseCurlyDoubleQuote:"\u201D",CloseCurlyQuote:"\u2019",clubs:"\u2663",clubsuit:"\u2663",Colon:"\u2237",colon:":",Colone:"\u2A74",colone:"\u2254",coloneq:"\u2254",comma:",",commat:"@",comp:"\u2201",compfn:"\u2218",complement:"\u2201",complexes:"\u2102",cong:"\u2245",congdot:"\u2A6D",Congruent:"\u2261",Conint:"\u222F",conint:"\u222E",ContourIntegral:"\u222E",Copf:"\u2102",copf:"\u{1D554}",coprod:"\u2210",Coproduct:"\u2210",COPY:"\xA9",copy:"\xA9",copysr:"\u2117",CounterClockwiseContourIntegral:"\u2233",crarr:"\u21B5",Cross:"\u2A2F",cross:"\u2717",Cscr:"\u{1D49E}",cscr:"\u{1D4B8}",csub:"\u2ACF",csube:"\u2AD1",csup:"\u2AD0",csupe:"\u2AD2",ctdot:"\u22EF",cudarrl:"\u2938",cudarrr:"\u2935",cuepr:"\u22DE",cuesc:"\u22DF",cularr:"\u21B6",cularrp:"\u293D",Cup:"\u22D3",cup:"\u222A",cupbrcap:"\u2A48",CupCap:"\u224D",cupcap:"\u2A46",cupcup:"\u2A4A",cupdot:"\u228D",cupor:"\u2A45",cups:"\u222A\uFE00",curarr:"\u21B7",curarrm:"\u293C",curlyeqprec:"\u22DE",curlyeqsucc:"\u22DF",curlyvee:"\u22CE",curlywedge:"\u22CF",curren:"\xA4",curvearrowleft:"\u21B6",curvearrowright:"\u21B7",cuvee:"\u22CE",cuwed:"\u22CF",cwconint:"\u2232",cwint:"\u2231",cylcty:"\u232D",Dagger:"\u2021",dagger:"\u2020",daleth:"\u2138",Darr:"\u21A1",dArr:"\u21D3",darr:"\u2193",dash:"\u2010",Dashv:"\u2AE4",dashv:"\u22A3",dbkarow:"\u290F",dblac:"\u02DD",Dcaron:"\u010E",dcaron:"\u010F",Dcy:"\u0414",dcy:"\u0434",DD:"\u2145",dd:"\u2146",ddagger:"\u2021",ddarr:"\u21CA",DDotrahd:"\u2911",ddotseq:"\u2A77",deg:"\xB0",Del:"\u2207",Delta:"\u0394",delta:"\u03B4",demptyv:"\u29B1",dfisht:"\u297F",Dfr:"\u{1D507}",dfr:"\u{1D521}",dHar:"\u2965",dharl:"\u21C3",dharr:"\u21C2",DiacriticalAcute:"\xB4",DiacriticalDot:"\u02D9",DiacriticalDoubleAcute:"\u02DD",DiacriticalGrave:"`",DiacriticalTilde:"\u02DC",diam:"\u22C4",Diamond:"\u22C4",diamond:"\u22C4",diamondsuit:"\u2666",diams:"\u2666",die:"\xA8",DifferentialD:"\u2146",digamma:"\u03DD",disin:"\u22F2",div:"\xF7",divide:"\xF7",divideontimes:"\u22C7",divonx:"\u22C7",DJcy:"\u0402",djcy:"\u0452",dlcorn:"\u231E",dlcrop:"\u230D",dollar:"$",Dopf:"\u{1D53B}",dopf:"\u{1D555}",Dot:"\xA8",dot:"\u02D9",DotDot:"\u20DC",doteq:"\u2250",doteqdot:"\u2251",DotEqual:"\u2250",dotminus:"\u2238",dotplus:"\u2214",dotsquare:"\u22A1",doublebarwedge:"\u2306",DoubleContourIntegral:"\u222F",DoubleDot:"\xA8",DoubleDownArrow:"\u21D3",DoubleLeftArrow:"\u21D0",DoubleLeftRightArrow:"\u21D4",DoubleLeftTee:"\u2AE4",DoubleLongLeftArrow:"\u27F8",DoubleLongLeftRightArrow:"\u27FA",DoubleLongRightArrow:"\u27F9",DoubleRightArrow:"\u21D2",DoubleRightTee:"\u22A8",DoubleUpArrow:"\u21D1",DoubleUpDownArrow:"\u21D5",DoubleVerticalBar:"\u2225",DownArrow:"\u2193",Downarrow:"\u21D3",downarrow:"\u2193",DownArrowBar:"\u2913",DownArrowUpArrow:"\u21F5",DownBreve:"\u0311",downdownarrows:"\u21CA",downharpoonleft:"\u21C3",downharpoonright:"\u21C2",DownLeftRightVector:"\u2950",DownLeftTeeVector:"\u295E",DownLeftVector:"\u21BD",DownLeftVectorBar:"\u2956",DownRightTeeVector:"\u295F",DownRightVector:"\u21C1",DownRightVectorBar:"\u2957",DownTee:"\u22A4",DownTeeArrow:"\u21A7",drbkarow:"\u2910",drcorn:"\u231F",drcrop:"\u230C",Dscr:"\u{1D49F}",dscr:"\u{1D4B9}",DScy:"\u0405",dscy:"\u0455",dsol:"\u29F6",Dstrok:"\u0110",dstrok:"\u0111",dtdot:"\u22F1",dtri:"\u25BF",dtrif:"\u25BE",duarr:"\u21F5",duhar:"\u296F",dwangle:"\u29A6",DZcy:"\u040F",dzcy:"\u045F",dzigrarr:"\u27FF",Eacute:"\xC9",eacute:"\xE9",easter:"\u2A6E",Ecaron:"\u011A",ecaron:"\u011B",ecir:"\u2256",Ecirc:"\xCA",ecirc:"\xEA",ecolon:"\u2255",Ecy:"\u042D",ecy:"\u044D",eDDot:"\u2A77",Edot:"\u0116",eDot:"\u2251",edot:"\u0117",ee:"\u2147",efDot:"\u2252",Efr:"\u{1D508}",efr:"\u{1D522}",eg:"\u2A9A",Egrave:"\xC8",egrave:"\xE8",egs:"\u2A96",egsdot:"\u2A98",el:"\u2A99",Element:"\u2208",elinters:"\u23E7",ell:"\u2113",els:"\u2A95",elsdot:"\u2A97",Emacr:"\u0112",emacr:"\u0113",empty:"\u2205",emptyset:"\u2205",EmptySmallSquare:"\u25FB",emptyv:"\u2205",EmptyVerySmallSquare:"\u25AB",emsp:"\u2003",emsp13:"\u2004",emsp14:"\u2005",ENG:"\u014A",eng:"\u014B",ensp:"\u2002",Eogon:"\u0118",eogon:"\u0119",Eopf:"\u{1D53C}",eopf:"\u{1D556}",epar:"\u22D5",eparsl:"\u29E3",eplus:"\u2A71",epsi:"\u03B5",Epsilon:"\u0395",epsilon:"\u03B5",epsiv:"\u03F5",eqcirc:"\u2256",eqcolon:"\u2255",eqsim:"\u2242",eqslantgtr:"\u2A96",eqslantless:"\u2A95",Equal:"\u2A75",equals:"=",EqualTilde:"\u2242",equest:"\u225F",Equilibrium:"\u21CC",equiv:"\u2261",equivDD:"\u2A78",eqvparsl:"\u29E5",erarr:"\u2971",erDot:"\u2253",Escr:"\u2130",escr:"\u212F",esdot:"\u2250",Esim:"\u2A73",esim:"\u2242",Eta:"\u0397",eta:"\u03B7",ETH:"\xD0",eth:"\xF0",Euml:"\xCB",euml:"\xEB",euro:"\u20AC",excl:"!",exist:"\u2203",Exists:"\u2203",expectation:"\u2130",ExponentialE:"\u2147",exponentiale:"\u2147",fallingdotseq:"\u2252",Fcy:"\u0424",fcy:"\u0444",female:"\u2640",ffilig:"\uFB03",fflig:"\uFB00",ffllig:"\uFB04",Ffr:"\u{1D509}",ffr:"\u{1D523}",filig:"\uFB01",FilledSmallSquare:"\u25FC",FilledVerySmallSquare:"\u25AA",fjlig:"fj",flat:"\u266D",fllig:"\uFB02",fltns:"\u25B1",fnof:"\u0192",Fopf:"\u{1D53D}",fopf:"\u{1D557}",ForAll:"\u2200",forall:"\u2200",fork:"\u22D4",forkv:"\u2AD9",Fouriertrf:"\u2131",fpartint:"\u2A0D",frac12:"\xBD",frac13:"\u2153",frac14:"\xBC",frac15:"\u2155",frac16:"\u2159",frac18:"\u215B",frac23:"\u2154",frac25:"\u2156",frac34:"\xBE",frac35:"\u2157",frac38:"\u215C",frac45:"\u2158",frac56:"\u215A",frac58:"\u215D",frac78:"\u215E",frasl:"\u2044",frown:"\u2322",Fscr:"\u2131",fscr:"\u{1D4BB}",gacute:"\u01F5",Gamma:"\u0393",gamma:"\u03B3",Gammad:"\u03DC",gammad:"\u03DD",gap:"\u2A86",Gbreve:"\u011E",gbreve:"\u011F",Gcedil:"\u0122",Gcirc:"\u011C",gcirc:"\u011D",Gcy:"\u0413",gcy:"\u0433",Gdot:"\u0120",gdot:"\u0121",gE:"\u2267",ge:"\u2265",gEl:"\u2A8C",gel:"\u22DB",geq:"\u2265",geqq:"\u2267",geqslant:"\u2A7E",ges:"\u2A7E",gescc:"\u2AA9",gesdot:"\u2A80",gesdoto:"\u2A82",gesdotol:"\u2A84",gesl:"\u22DB\uFE00",gesles:"\u2A94",Gfr:"\u{1D50A}",gfr:"\u{1D524}",Gg:"\u22D9",gg:"\u226B",ggg:"\u22D9",gimel:"\u2137",GJcy:"\u0403",gjcy:"\u0453",gl:"\u2277",gla:"\u2AA5",glE:"\u2A92",glj:"\u2AA4",gnap:"\u2A8A",gnapprox:"\u2A8A",gnE:"\u2269",gne:"\u2A88",gneq:"\u2A88",gneqq:"\u2269",gnsim:"\u22E7",Gopf:"\u{1D53E}",gopf:"\u{1D558}",grave:"`",GreaterEqual:"\u2265",GreaterEqualLess:"\u22DB",GreaterFullEqual:"\u2267",GreaterGreater:"\u2AA2",GreaterLess:"\u2277",GreaterSlantEqual:"\u2A7E",GreaterTilde:"\u2273",Gscr:"\u{1D4A2}",gscr:"\u210A",gsim:"\u2273",gsime:"\u2A8E",gsiml:"\u2A90",Gt:"\u226B",GT:">",gt:">",gtcc:"\u2AA7",gtcir:"\u2A7A",gtdot:"\u22D7",gtlPar:"\u2995",gtquest:"\u2A7C",gtrapprox:"\u2A86",gtrarr:"\u2978",gtrdot:"\u22D7",gtreqless:"\u22DB",gtreqqless:"\u2A8C",gtrless:"\u2277",gtrsim:"\u2273",gvertneqq:"\u2269\uFE00",gvnE:"\u2269\uFE00",Hacek:"\u02C7",hairsp:"\u200A",half:"\xBD",hamilt:"\u210B",HARDcy:"\u042A",hardcy:"\u044A",hArr:"\u21D4",harr:"\u2194",harrcir:"\u2948",harrw:"\u21AD",Hat:"^",hbar:"\u210F",Hcirc:"\u0124",hcirc:"\u0125",hearts:"\u2665",heartsuit:"\u2665",hellip:"\u2026",hercon:"\u22B9",Hfr:"\u210C",hfr:"\u{1D525}",HilbertSpace:"\u210B",hksearow:"\u2925",hkswarow:"\u2926",hoarr:"\u21FF",homtht:"\u223B",hookleftarrow:"\u21A9",hookrightarrow:"\u21AA",Hopf:"\u210D",hopf:"\u{1D559}",horbar:"\u2015",HorizontalLine:"\u2500",Hscr:"\u210B",hscr:"\u{1D4BD}",hslash:"\u210F",Hstrok:"\u0126",hstrok:"\u0127",HumpDownHump:"\u224E",HumpEqual:"\u224F",hybull:"\u2043",hyphen:"\u2010",Iacute:"\xCD",iacute:"\xED",ic:"\u2063",Icirc:"\xCE",icirc:"\xEE",Icy:"\u0418",icy:"\u0438",Idot:"\u0130",IEcy:"\u0415",iecy:"\u0435",iexcl:"\xA1",iff:"\u21D4",Ifr:"\u2111",ifr:"\u{1D526}",Igrave:"\xCC",igrave:"\xEC",ii:"\u2148",iiiint:"\u2A0C",iiint:"\u222D",iinfin:"\u29DC",iiota:"\u2129",IJlig:"\u0132",ijlig:"\u0133",Im:"\u2111",Imacr:"\u012A",imacr:"\u012B",image:"\u2111",ImaginaryI:"\u2148",imagline:"\u2110",imagpart:"\u2111",imath:"\u0131",imof:"\u22B7",imped:"\u01B5",Implies:"\u21D2",in:"\u2208",incare:"\u2105",infin:"\u221E",infintie:"\u29DD",inodot:"\u0131",Int:"\u222C",int:"\u222B",intcal:"\u22BA",integers:"\u2124",Integral:"\u222B",intercal:"\u22BA",Intersection:"\u22C2",intlarhk:"\u2A17",intprod:"\u2A3C",InvisibleComma:"\u2063",InvisibleTimes:"\u2062",IOcy:"\u0401",iocy:"\u0451",Iogon:"\u012E",iogon:"\u012F",Iopf:"\u{1D540}",iopf:"\u{1D55A}",Iota:"\u0399",iota:"\u03B9",iprod:"\u2A3C",iquest:"\xBF",Iscr:"\u2110",iscr:"\u{1D4BE}",isin:"\u2208",isindot:"\u22F5",isinE:"\u22F9",isins:"\u22F4",isinsv:"\u22F3",isinv:"\u2208",it:"\u2062",Itilde:"\u0128",itilde:"\u0129",Iukcy:"\u0406",iukcy:"\u0456",Iuml:"\xCF",iuml:"\xEF",Jcirc:"\u0134",jcirc:"\u0135",Jcy:"\u0419",jcy:"\u0439",Jfr:"\u{1D50D}",jfr:"\u{1D527}",jmath:"\u0237",Jopf:"\u{1D541}",jopf:"\u{1D55B}",Jscr:"\u{1D4A5}",jscr:"\u{1D4BF}",Jsercy:"\u0408",jsercy:"\u0458",Jukcy:"\u0404",jukcy:"\u0454",Kappa:"\u039A",kappa:"\u03BA",kappav:"\u03F0",Kcedil:"\u0136",kcedil:"\u0137",Kcy:"\u041A",kcy:"\u043A",Kfr:"\u{1D50E}",kfr:"\u{1D528}",kgreen:"\u0138",KHcy:"\u0425",khcy:"\u0445",KJcy:"\u040C",kjcy:"\u045C",Kopf:"\u{1D542}",kopf:"\u{1D55C}",Kscr:"\u{1D4A6}",kscr:"\u{1D4C0}",lAarr:"\u21DA",Lacute:"\u0139",lacute:"\u013A",laemptyv:"\u29B4",lagran:"\u2112",Lambda:"\u039B",lambda:"\u03BB",Lang:"\u27EA",lang:"\u27E8",langd:"\u2991",langle:"\u27E8",lap:"\u2A85",Laplacetrf:"\u2112",laquo:"\xAB",Larr:"\u219E",lArr:"\u21D0",larr:"\u2190",larrb:"\u21E4",larrbfs:"\u291F",larrfs:"\u291D",larrhk:"\u21A9",larrlp:"\u21AB",larrpl:"\u2939",larrsim:"\u2973",larrtl:"\u21A2",lat:"\u2AAB",lAtail:"\u291B",latail:"\u2919",late:"\u2AAD",lates:"\u2AAD\uFE00",lBarr:"\u290E",lbarr:"\u290C",lbbrk:"\u2772",lbrace:"{",lbrack:"[",lbrke:"\u298B",lbrksld:"\u298F",lbrkslu:"\u298D",Lcaron:"\u013D",lcaron:"\u013E",Lcedil:"\u013B",lcedil:"\u013C",lceil:"\u2308",lcub:"{",Lcy:"\u041B",lcy:"\u043B",ldca:"\u2936",ldquo:"\u201C",ldquor:"\u201E",ldrdhar:"\u2967",ldrushar:"\u294B",ldsh:"\u21B2",lE:"\u2266",le:"\u2264",LeftAngleBracket:"\u27E8",LeftArrow:"\u2190",Leftarrow:"\u21D0",leftarrow:"\u2190",LeftArrowBar:"\u21E4",LeftArrowRightArrow:"\u21C6",leftarrowtail:"\u21A2",LeftCeiling:"\u2308",LeftDoubleBracket:"\u27E6",LeftDownTeeVector:"\u2961",LeftDownVector:"\u21C3",LeftDownVectorBar:"\u2959",LeftFloor:"\u230A",leftharpoondown:"\u21BD",leftharpoonup:"\u21BC",leftleftarrows:"\u21C7",LeftRightArrow:"\u2194",Leftrightarrow:"\u21D4",leftrightarrow:"\u2194",leftrightarrows:"\u21C6",leftrightharpoons:"\u21CB",leftrightsquigarrow:"\u21AD",LeftRightVector:"\u294E",LeftTee:"\u22A3",LeftTeeArrow:"\u21A4",LeftTeeVector:"\u295A",leftthreetimes:"\u22CB",LeftTriangle:"\u22B2",LeftTriangleBar:"\u29CF",LeftTriangleEqual:"\u22B4",LeftUpDownVector:"\u2951",LeftUpTeeVector:"\u2960",LeftUpVector:"\u21BF",LeftUpVectorBar:"\u2958",LeftVector:"\u21BC",LeftVectorBar:"\u2952",lEg:"\u2A8B",leg:"\u22DA",leq:"\u2264",leqq:"\u2266",leqslant:"\u2A7D",les:"\u2A7D",lescc:"\u2AA8",lesdot:"\u2A7F",lesdoto:"\u2A81",lesdotor:"\u2A83",lesg:"\u22DA\uFE00",lesges:"\u2A93",lessapprox:"\u2A85",lessdot:"\u22D6",lesseqgtr:"\u22DA",lesseqqgtr:"\u2A8B",LessEqualGreater:"\u22DA",LessFullEqual:"\u2266",LessGreater:"\u2276",lessgtr:"\u2276",LessLess:"\u2AA1",lesssim:"\u2272",LessSlantEqual:"\u2A7D",LessTilde:"\u2272",lfisht:"\u297C",lfloor:"\u230A",Lfr:"\u{1D50F}",lfr:"\u{1D529}",lg:"\u2276",lgE:"\u2A91",lHar:"\u2962",lhard:"\u21BD",lharu:"\u21BC",lharul:"\u296A",lhblk:"\u2584",LJcy:"\u0409",ljcy:"\u0459",Ll:"\u22D8",ll:"\u226A",llarr:"\u21C7",llcorner:"\u231E",Lleftarrow:"\u21DA",llhard:"\u296B",lltri:"\u25FA",Lmidot:"\u013F",lmidot:"\u0140",lmoust:"\u23B0",lmoustache:"\u23B0",lnap:"\u2A89",lnapprox:"\u2A89",lnE:"\u2268",lne:"\u2A87",lneq:"\u2A87",lneqq:"\u2268",lnsim:"\u22E6",loang:"\u27EC",loarr:"\u21FD",lobrk:"\u27E6",LongLeftArrow:"\u27F5",Longleftarrow:"\u27F8",longleftarrow:"\u27F5",LongLeftRightArrow:"\u27F7",Longleftrightarrow:"\u27FA",longleftrightarrow:"\u27F7",longmapsto:"\u27FC",LongRightArrow:"\u27F6",Longrightarrow:"\u27F9",longrightarrow:"\u27F6",looparrowleft:"\u21AB",looparrowright:"\u21AC",lopar:"\u2985",Lopf:"\u{1D543}",lopf:"\u{1D55D}",loplus:"\u2A2D",lotimes:"\u2A34",lowast:"\u2217",lowbar:"_",LowerLeftArrow:"\u2199",LowerRightArrow:"\u2198",loz:"\u25CA",lozenge:"\u25CA",lozf:"\u29EB",lpar:"(",lparlt:"\u2993",lrarr:"\u21C6",lrcorner:"\u231F",lrhar:"\u21CB",lrhard:"\u296D",lrm:"\u200E",lrtri:"\u22BF",lsaquo:"\u2039",Lscr:"\u2112",lscr:"\u{1D4C1}",Lsh:"\u21B0",lsh:"\u21B0",lsim:"\u2272",lsime:"\u2A8D",lsimg:"\u2A8F",lsqb:"[",lsquo:"\u2018",lsquor:"\u201A",Lstrok:"\u0141",lstrok:"\u0142",Lt:"\u226A",LT:"<",lt:"<",ltcc:"\u2AA6",ltcir:"\u2A79",ltdot:"\u22D6",lthree:"\u22CB",ltimes:"\u22C9",ltlarr:"\u2976",ltquest:"\u2A7B",ltri:"\u25C3",ltrie:"\u22B4",ltrif:"\u25C2",ltrPar:"\u2996",lurdshar:"\u294A",luruhar:"\u2966",lvertneqq:"\u2268\uFE00",lvnE:"\u2268\uFE00",macr:"\xAF",male:"\u2642",malt:"\u2720",maltese:"\u2720",Map:"\u2905",map:"\u21A6",mapsto:"\u21A6",mapstodown:"\u21A7",mapstoleft:"\u21A4",mapstoup:"\u21A5",marker:"\u25AE",mcomma:"\u2A29",Mcy:"\u041C",mcy:"\u043C",mdash:"\u2014",mDDot:"\u223A",measuredangle:"\u2221",MediumSpace:"\u205F",Mellintrf:"\u2133",Mfr:"\u{1D510}",mfr:"\u{1D52A}",mho:"\u2127",micro:"\xB5",mid:"\u2223",midast:"*",midcir:"\u2AF0",middot:"\xB7",minus:"\u2212",minusb:"\u229F",minusd:"\u2238",minusdu:"\u2A2A",MinusPlus:"\u2213",mlcp:"\u2ADB",mldr:"\u2026",mnplus:"\u2213",models:"\u22A7",Mopf:"\u{1D544}",mopf:"\u{1D55E}",mp:"\u2213",Mscr:"\u2133",mscr:"\u{1D4C2}",mstpos:"\u223E",Mu:"\u039C",mu:"\u03BC",multimap:"\u22B8",mumap:"\u22B8",nabla:"\u2207",Nacute:"\u0143",nacute:"\u0144",nang:"\u2220\u20D2",nap:"\u2249",napE:"\u2A70\u0338",napid:"\u224B\u0338",napos:"\u0149",napprox:"\u2249",natur:"\u266E",natural:"\u266E",naturals:"\u2115",nbsp:"\xA0",nbump:"\u224E\u0338",nbumpe:"\u224F\u0338",ncap:"\u2A43",Ncaron:"\u0147",ncaron:"\u0148",Ncedil:"\u0145",ncedil:"\u0146",ncong:"\u2247",ncongdot:"\u2A6D\u0338",ncup:"\u2A42",Ncy:"\u041D",ncy:"\u043D",ndash:"\u2013",ne:"\u2260",nearhk:"\u2924",neArr:"\u21D7",nearr:"\u2197",nearrow:"\u2197",nedot:"\u2250\u0338",NegativeMediumSpace:"\u200B",NegativeThickSpace:"\u200B",NegativeThinSpace:"\u200B",NegativeVeryThinSpace:"\u200B",nequiv:"\u2262",nesear:"\u2928",nesim:"\u2242\u0338",NestedGreaterGreater:"\u226B",NestedLessLess:"\u226A",NewLine:`
1090
- `,nexist:"\u2204",nexists:"\u2204",Nfr:"\u{1D511}",nfr:"\u{1D52B}",ngE:"\u2267\u0338",nge:"\u2271",ngeq:"\u2271",ngeqq:"\u2267\u0338",ngeqslant:"\u2A7E\u0338",nges:"\u2A7E\u0338",nGg:"\u22D9\u0338",ngsim:"\u2275",nGt:"\u226B\u20D2",ngt:"\u226F",ngtr:"\u226F",nGtv:"\u226B\u0338",nhArr:"\u21CE",nharr:"\u21AE",nhpar:"\u2AF2",ni:"\u220B",nis:"\u22FC",nisd:"\u22FA",niv:"\u220B",NJcy:"\u040A",njcy:"\u045A",nlArr:"\u21CD",nlarr:"\u219A",nldr:"\u2025",nlE:"\u2266\u0338",nle:"\u2270",nLeftarrow:"\u21CD",nleftarrow:"\u219A",nLeftrightarrow:"\u21CE",nleftrightarrow:"\u21AE",nleq:"\u2270",nleqq:"\u2266\u0338",nleqslant:"\u2A7D\u0338",nles:"\u2A7D\u0338",nless:"\u226E",nLl:"\u22D8\u0338",nlsim:"\u2274",nLt:"\u226A\u20D2",nlt:"\u226E",nltri:"\u22EA",nltrie:"\u22EC",nLtv:"\u226A\u0338",nmid:"\u2224",NoBreak:"\u2060",NonBreakingSpace:"\xA0",Nopf:"\u2115",nopf:"\u{1D55F}",Not:"\u2AEC",not:"\xAC",NotCongruent:"\u2262",NotCupCap:"\u226D",NotDoubleVerticalBar:"\u2226",NotElement:"\u2209",NotEqual:"\u2260",NotEqualTilde:"\u2242\u0338",NotExists:"\u2204",NotGreater:"\u226F",NotGreaterEqual:"\u2271",NotGreaterFullEqual:"\u2267\u0338",NotGreaterGreater:"\u226B\u0338",NotGreaterLess:"\u2279",NotGreaterSlantEqual:"\u2A7E\u0338",NotGreaterTilde:"\u2275",NotHumpDownHump:"\u224E\u0338",NotHumpEqual:"\u224F\u0338",notin:"\u2209",notindot:"\u22F5\u0338",notinE:"\u22F9\u0338",notinva:"\u2209",notinvb:"\u22F7",notinvc:"\u22F6",NotLeftTriangle:"\u22EA",NotLeftTriangleBar:"\u29CF\u0338",NotLeftTriangleEqual:"\u22EC",NotLess:"\u226E",NotLessEqual:"\u2270",NotLessGreater:"\u2278",NotLessLess:"\u226A\u0338",NotLessSlantEqual:"\u2A7D\u0338",NotLessTilde:"\u2274",NotNestedGreaterGreater:"\u2AA2\u0338",NotNestedLessLess:"\u2AA1\u0338",notni:"\u220C",notniva:"\u220C",notnivb:"\u22FE",notnivc:"\u22FD",NotPrecedes:"\u2280",NotPrecedesEqual:"\u2AAF\u0338",NotPrecedesSlantEqual:"\u22E0",NotReverseElement:"\u220C",NotRightTriangle:"\u22EB",NotRightTriangleBar:"\u29D0\u0338",NotRightTriangleEqual:"\u22ED",NotSquareSubset:"\u228F\u0338",NotSquareSubsetEqual:"\u22E2",NotSquareSuperset:"\u2290\u0338",NotSquareSupersetEqual:"\u22E3",NotSubset:"\u2282\u20D2",NotSubsetEqual:"\u2288",NotSucceeds:"\u2281",NotSucceedsEqual:"\u2AB0\u0338",NotSucceedsSlantEqual:"\u22E1",NotSucceedsTilde:"\u227F\u0338",NotSuperset:"\u2283\u20D2",NotSupersetEqual:"\u2289",NotTilde:"\u2241",NotTildeEqual:"\u2244",NotTildeFullEqual:"\u2247",NotTildeTilde:"\u2249",NotVerticalBar:"\u2224",npar:"\u2226",nparallel:"\u2226",nparsl:"\u2AFD\u20E5",npart:"\u2202\u0338",npolint:"\u2A14",npr:"\u2280",nprcue:"\u22E0",npre:"\u2AAF\u0338",nprec:"\u2280",npreceq:"\u2AAF\u0338",nrArr:"\u21CF",nrarr:"\u219B",nrarrc:"\u2933\u0338",nrarrw:"\u219D\u0338",nRightarrow:"\u21CF",nrightarrow:"\u219B",nrtri:"\u22EB",nrtrie:"\u22ED",nsc:"\u2281",nsccue:"\u22E1",nsce:"\u2AB0\u0338",Nscr:"\u{1D4A9}",nscr:"\u{1D4C3}",nshortmid:"\u2224",nshortparallel:"\u2226",nsim:"\u2241",nsime:"\u2244",nsimeq:"\u2244",nsmid:"\u2224",nspar:"\u2226",nsqsube:"\u22E2",nsqsupe:"\u22E3",nsub:"\u2284",nsubE:"\u2AC5\u0338",nsube:"\u2288",nsubset:"\u2282\u20D2",nsubseteq:"\u2288",nsubseteqq:"\u2AC5\u0338",nsucc:"\u2281",nsucceq:"\u2AB0\u0338",nsup:"\u2285",nsupE:"\u2AC6\u0338",nsupe:"\u2289",nsupset:"\u2283\u20D2",nsupseteq:"\u2289",nsupseteqq:"\u2AC6\u0338",ntgl:"\u2279",Ntilde:"\xD1",ntilde:"\xF1",ntlg:"\u2278",ntriangleleft:"\u22EA",ntrianglelefteq:"\u22EC",ntriangleright:"\u22EB",ntrianglerighteq:"\u22ED",Nu:"\u039D",nu:"\u03BD",num:"#",numero:"\u2116",numsp:"\u2007",nvap:"\u224D\u20D2",nVDash:"\u22AF",nVdash:"\u22AE",nvDash:"\u22AD",nvdash:"\u22AC",nvge:"\u2265\u20D2",nvgt:">\u20D2",nvHarr:"\u2904",nvinfin:"\u29DE",nvlArr:"\u2902",nvle:"\u2264\u20D2",nvlt:"<\u20D2",nvltrie:"\u22B4\u20D2",nvrArr:"\u2903",nvrtrie:"\u22B5\u20D2",nvsim:"\u223C\u20D2",nwarhk:"\u2923",nwArr:"\u21D6",nwarr:"\u2196",nwarrow:"\u2196",nwnear:"\u2927",Oacute:"\xD3",oacute:"\xF3",oast:"\u229B",ocir:"\u229A",Ocirc:"\xD4",ocirc:"\xF4",Ocy:"\u041E",ocy:"\u043E",odash:"\u229D",Odblac:"\u0150",odblac:"\u0151",odiv:"\u2A38",odot:"\u2299",odsold:"\u29BC",OElig:"\u0152",oelig:"\u0153",ofcir:"\u29BF",Ofr:"\u{1D512}",ofr:"\u{1D52C}",ogon:"\u02DB",Ograve:"\xD2",ograve:"\xF2",ogt:"\u29C1",ohbar:"\u29B5",ohm:"\u03A9",oint:"\u222E",olarr:"\u21BA",olcir:"\u29BE",olcross:"\u29BB",oline:"\u203E",olt:"\u29C0",Omacr:"\u014C",omacr:"\u014D",Omega:"\u03A9",omega:"\u03C9",Omicron:"\u039F",omicron:"\u03BF",omid:"\u29B6",ominus:"\u2296",Oopf:"\u{1D546}",oopf:"\u{1D560}",opar:"\u29B7",OpenCurlyDoubleQuote:"\u201C",OpenCurlyQuote:"\u2018",operp:"\u29B9",oplus:"\u2295",Or:"\u2A54",or:"\u2228",orarr:"\u21BB",ord:"\u2A5D",order:"\u2134",orderof:"\u2134",ordf:"\xAA",ordm:"\xBA",origof:"\u22B6",oror:"\u2A56",orslope:"\u2A57",orv:"\u2A5B",oS:"\u24C8",Oscr:"\u{1D4AA}",oscr:"\u2134",Oslash:"\xD8",oslash:"\xF8",osol:"\u2298",Otilde:"\xD5",otilde:"\xF5",Otimes:"\u2A37",otimes:"\u2297",otimesas:"\u2A36",Ouml:"\xD6",ouml:"\xF6",ovbar:"\u233D",OverBar:"\u203E",OverBrace:"\u23DE",OverBracket:"\u23B4",OverParenthesis:"\u23DC",par:"\u2225",para:"\xB6",parallel:"\u2225",parsim:"\u2AF3",parsl:"\u2AFD",part:"\u2202",PartialD:"\u2202",Pcy:"\u041F",pcy:"\u043F",percnt:"%",period:".",permil:"\u2030",perp:"\u22A5",pertenk:"\u2031",Pfr:"\u{1D513}",pfr:"\u{1D52D}",Phi:"\u03A6",phi:"\u03C6",phiv:"\u03D5",phmmat:"\u2133",phone:"\u260E",Pi:"\u03A0",pi:"\u03C0",pitchfork:"\u22D4",piv:"\u03D6",planck:"\u210F",planckh:"\u210E",plankv:"\u210F",plus:"+",plusacir:"\u2A23",plusb:"\u229E",pluscir:"\u2A22",plusdo:"\u2214",plusdu:"\u2A25",pluse:"\u2A72",PlusMinus:"\xB1",plusmn:"\xB1",plussim:"\u2A26",plustwo:"\u2A27",pm:"\xB1",Poincareplane:"\u210C",pointint:"\u2A15",Popf:"\u2119",popf:"\u{1D561}",pound:"\xA3",Pr:"\u2ABB",pr:"\u227A",prap:"\u2AB7",prcue:"\u227C",prE:"\u2AB3",pre:"\u2AAF",prec:"\u227A",precapprox:"\u2AB7",preccurlyeq:"\u227C",Precedes:"\u227A",PrecedesEqual:"\u2AAF",PrecedesSlantEqual:"\u227C",PrecedesTilde:"\u227E",preceq:"\u2AAF",precnapprox:"\u2AB9",precneqq:"\u2AB5",precnsim:"\u22E8",precsim:"\u227E",Prime:"\u2033",prime:"\u2032",primes:"\u2119",prnap:"\u2AB9",prnE:"\u2AB5",prnsim:"\u22E8",prod:"\u220F",Product:"\u220F",profalar:"\u232E",profline:"\u2312",profsurf:"\u2313",prop:"\u221D",Proportion:"\u2237",Proportional:"\u221D",propto:"\u221D",prsim:"\u227E",prurel:"\u22B0",Pscr:"\u{1D4AB}",pscr:"\u{1D4C5}",Psi:"\u03A8",psi:"\u03C8",puncsp:"\u2008",Qfr:"\u{1D514}",qfr:"\u{1D52E}",qint:"\u2A0C",Qopf:"\u211A",qopf:"\u{1D562}",qprime:"\u2057",Qscr:"\u{1D4AC}",qscr:"\u{1D4C6}",quaternions:"\u210D",quatint:"\u2A16",quest:"?",questeq:"\u225F",QUOT:'"',quot:'"',rAarr:"\u21DB",race:"\u223D\u0331",Racute:"\u0154",racute:"\u0155",radic:"\u221A",raemptyv:"\u29B3",Rang:"\u27EB",rang:"\u27E9",rangd:"\u2992",range:"\u29A5",rangle:"\u27E9",raquo:"\xBB",Rarr:"\u21A0",rArr:"\u21D2",rarr:"\u2192",rarrap:"\u2975",rarrb:"\u21E5",rarrbfs:"\u2920",rarrc:"\u2933",rarrfs:"\u291E",rarrhk:"\u21AA",rarrlp:"\u21AC",rarrpl:"\u2945",rarrsim:"\u2974",Rarrtl:"\u2916",rarrtl:"\u21A3",rarrw:"\u219D",rAtail:"\u291C",ratail:"\u291A",ratio:"\u2236",rationals:"\u211A",RBarr:"\u2910",rBarr:"\u290F",rbarr:"\u290D",rbbrk:"\u2773",rbrace:"}",rbrack:"]",rbrke:"\u298C",rbrksld:"\u298E",rbrkslu:"\u2990",Rcaron:"\u0158",rcaron:"\u0159",Rcedil:"\u0156",rcedil:"\u0157",rceil:"\u2309",rcub:"}",Rcy:"\u0420",rcy:"\u0440",rdca:"\u2937",rdldhar:"\u2969",rdquo:"\u201D",rdquor:"\u201D",rdsh:"\u21B3",Re:"\u211C",real:"\u211C",realine:"\u211B",realpart:"\u211C",reals:"\u211D",rect:"\u25AD",REG:"\xAE",reg:"\xAE",ReverseElement:"\u220B",ReverseEquilibrium:"\u21CB",ReverseUpEquilibrium:"\u296F",rfisht:"\u297D",rfloor:"\u230B",Rfr:"\u211C",rfr:"\u{1D52F}",rHar:"\u2964",rhard:"\u21C1",rharu:"\u21C0",rharul:"\u296C",Rho:"\u03A1",rho:"\u03C1",rhov:"\u03F1",RightAngleBracket:"\u27E9",RightArrow:"\u2192",Rightarrow:"\u21D2",rightarrow:"\u2192",RightArrowBar:"\u21E5",RightArrowLeftArrow:"\u21C4",rightarrowtail:"\u21A3",RightCeiling:"\u2309",RightDoubleBracket:"\u27E7",RightDownTeeVector:"\u295D",RightDownVector:"\u21C2",RightDownVectorBar:"\u2955",RightFloor:"\u230B",rightharpoondown:"\u21C1",rightharpoonup:"\u21C0",rightleftarrows:"\u21C4",rightleftharpoons:"\u21CC",rightrightarrows:"\u21C9",rightsquigarrow:"\u219D",RightTee:"\u22A2",RightTeeArrow:"\u21A6",RightTeeVector:"\u295B",rightthreetimes:"\u22CC",RightTriangle:"\u22B3",RightTriangleBar:"\u29D0",RightTriangleEqual:"\u22B5",RightUpDownVector:"\u294F",RightUpTeeVector:"\u295C",RightUpVector:"\u21BE",RightUpVectorBar:"\u2954",RightVector:"\u21C0",RightVectorBar:"\u2953",ring:"\u02DA",risingdotseq:"\u2253",rlarr:"\u21C4",rlhar:"\u21CC",rlm:"\u200F",rmoust:"\u23B1",rmoustache:"\u23B1",rnmid:"\u2AEE",roang:"\u27ED",roarr:"\u21FE",robrk:"\u27E7",ropar:"\u2986",Ropf:"\u211D",ropf:"\u{1D563}",roplus:"\u2A2E",rotimes:"\u2A35",RoundImplies:"\u2970",rpar:")",rpargt:"\u2994",rppolint:"\u2A12",rrarr:"\u21C9",Rrightarrow:"\u21DB",rsaquo:"\u203A",Rscr:"\u211B",rscr:"\u{1D4C7}",Rsh:"\u21B1",rsh:"\u21B1",rsqb:"]",rsquo:"\u2019",rsquor:"\u2019",rthree:"\u22CC",rtimes:"\u22CA",rtri:"\u25B9",rtrie:"\u22B5",rtrif:"\u25B8",rtriltri:"\u29CE",RuleDelayed:"\u29F4",ruluhar:"\u2968",rx:"\u211E",Sacute:"\u015A",sacute:"\u015B",sbquo:"\u201A",Sc:"\u2ABC",sc:"\u227B",scap:"\u2AB8",Scaron:"\u0160",scaron:"\u0161",sccue:"\u227D",scE:"\u2AB4",sce:"\u2AB0",Scedil:"\u015E",scedil:"\u015F",Scirc:"\u015C",scirc:"\u015D",scnap:"\u2ABA",scnE:"\u2AB6",scnsim:"\u22E9",scpolint:"\u2A13",scsim:"\u227F",Scy:"\u0421",scy:"\u0441",sdot:"\u22C5",sdotb:"\u22A1",sdote:"\u2A66",searhk:"\u2925",seArr:"\u21D8",searr:"\u2198",searrow:"\u2198",sect:"\xA7",semi:";",seswar:"\u2929",setminus:"\u2216",setmn:"\u2216",sext:"\u2736",Sfr:"\u{1D516}",sfr:"\u{1D530}",sfrown:"\u2322",sharp:"\u266F",SHCHcy:"\u0429",shchcy:"\u0449",SHcy:"\u0428",shcy:"\u0448",ShortDownArrow:"\u2193",ShortLeftArrow:"\u2190",shortmid:"\u2223",shortparallel:"\u2225",ShortRightArrow:"\u2192",ShortUpArrow:"\u2191",shy:"\xAD",Sigma:"\u03A3",sigma:"\u03C3",sigmaf:"\u03C2",sigmav:"\u03C2",sim:"\u223C",simdot:"\u2A6A",sime:"\u2243",simeq:"\u2243",simg:"\u2A9E",simgE:"\u2AA0",siml:"\u2A9D",simlE:"\u2A9F",simne:"\u2246",simplus:"\u2A24",simrarr:"\u2972",slarr:"\u2190",SmallCircle:"\u2218",smallsetminus:"\u2216",smashp:"\u2A33",smeparsl:"\u29E4",smid:"\u2223",smile:"\u2323",smt:"\u2AAA",smte:"\u2AAC",smtes:"\u2AAC\uFE00",SOFTcy:"\u042C",softcy:"\u044C",sol:"/",solb:"\u29C4",solbar:"\u233F",Sopf:"\u{1D54A}",sopf:"\u{1D564}",spades:"\u2660",spadesuit:"\u2660",spar:"\u2225",sqcap:"\u2293",sqcaps:"\u2293\uFE00",sqcup:"\u2294",sqcups:"\u2294\uFE00",Sqrt:"\u221A",sqsub:"\u228F",sqsube:"\u2291",sqsubset:"\u228F",sqsubseteq:"\u2291",sqsup:"\u2290",sqsupe:"\u2292",sqsupset:"\u2290",sqsupseteq:"\u2292",squ:"\u25A1",Square:"\u25A1",square:"\u25A1",SquareIntersection:"\u2293",SquareSubset:"\u228F",SquareSubsetEqual:"\u2291",SquareSuperset:"\u2290",SquareSupersetEqual:"\u2292",SquareUnion:"\u2294",squarf:"\u25AA",squf:"\u25AA",srarr:"\u2192",Sscr:"\u{1D4AE}",sscr:"\u{1D4C8}",ssetmn:"\u2216",ssmile:"\u2323",sstarf:"\u22C6",Star:"\u22C6",star:"\u2606",starf:"\u2605",straightepsilon:"\u03F5",straightphi:"\u03D5",strns:"\xAF",Sub:"\u22D0",sub:"\u2282",subdot:"\u2ABD",subE:"\u2AC5",sube:"\u2286",subedot:"\u2AC3",submult:"\u2AC1",subnE:"\u2ACB",subne:"\u228A",subplus:"\u2ABF",subrarr:"\u2979",Subset:"\u22D0",subset:"\u2282",subseteq:"\u2286",subseteqq:"\u2AC5",SubsetEqual:"\u2286",subsetneq:"\u228A",subsetneqq:"\u2ACB",subsim:"\u2AC7",subsub:"\u2AD5",subsup:"\u2AD3",succ:"\u227B",succapprox:"\u2AB8",succcurlyeq:"\u227D",Succeeds:"\u227B",SucceedsEqual:"\u2AB0",SucceedsSlantEqual:"\u227D",SucceedsTilde:"\u227F",succeq:"\u2AB0",succnapprox:"\u2ABA",succneqq:"\u2AB6",succnsim:"\u22E9",succsim:"\u227F",SuchThat:"\u220B",Sum:"\u2211",sum:"\u2211",sung:"\u266A",Sup:"\u22D1",sup:"\u2283",sup1:"\xB9",sup2:"\xB2",sup3:"\xB3",supdot:"\u2ABE",supdsub:"\u2AD8",supE:"\u2AC6",supe:"\u2287",supedot:"\u2AC4",Superset:"\u2283",SupersetEqual:"\u2287",suphsol:"\u27C9",suphsub:"\u2AD7",suplarr:"\u297B",supmult:"\u2AC2",supnE:"\u2ACC",supne:"\u228B",supplus:"\u2AC0",Supset:"\u22D1",supset:"\u2283",supseteq:"\u2287",supseteqq:"\u2AC6",supsetneq:"\u228B",supsetneqq:"\u2ACC",supsim:"\u2AC8",supsub:"\u2AD4",supsup:"\u2AD6",swarhk:"\u2926",swArr:"\u21D9",swarr:"\u2199",swarrow:"\u2199",swnwar:"\u292A",szlig:"\xDF",Tab:" ",target:"\u2316",Tau:"\u03A4",tau:"\u03C4",tbrk:"\u23B4",Tcaron:"\u0164",tcaron:"\u0165",Tcedil:"\u0162",tcedil:"\u0163",Tcy:"\u0422",tcy:"\u0442",tdot:"\u20DB",telrec:"\u2315",Tfr:"\u{1D517}",tfr:"\u{1D531}",there4:"\u2234",Therefore:"\u2234",therefore:"\u2234",Theta:"\u0398",theta:"\u03B8",thetasym:"\u03D1",thetav:"\u03D1",thickapprox:"\u2248",thicksim:"\u223C",ThickSpace:"\u205F\u200A",thinsp:"\u2009",ThinSpace:"\u2009",thkap:"\u2248",thksim:"\u223C",THORN:"\xDE",thorn:"\xFE",Tilde:"\u223C",tilde:"\u02DC",TildeEqual:"\u2243",TildeFullEqual:"\u2245",TildeTilde:"\u2248",times:"\xD7",timesb:"\u22A0",timesbar:"\u2A31",timesd:"\u2A30",tint:"\u222D",toea:"\u2928",top:"\u22A4",topbot:"\u2336",topcir:"\u2AF1",Topf:"\u{1D54B}",topf:"\u{1D565}",topfork:"\u2ADA",tosa:"\u2929",tprime:"\u2034",TRADE:"\u2122",trade:"\u2122",triangle:"\u25B5",triangledown:"\u25BF",triangleleft:"\u25C3",trianglelefteq:"\u22B4",triangleq:"\u225C",triangleright:"\u25B9",trianglerighteq:"\u22B5",tridot:"\u25EC",trie:"\u225C",triminus:"\u2A3A",TripleDot:"\u20DB",triplus:"\u2A39",trisb:"\u29CD",tritime:"\u2A3B",trpezium:"\u23E2",Tscr:"\u{1D4AF}",tscr:"\u{1D4C9}",TScy:"\u0426",tscy:"\u0446",TSHcy:"\u040B",tshcy:"\u045B",Tstrok:"\u0166",tstrok:"\u0167",twixt:"\u226C",twoheadleftarrow:"\u219E",twoheadrightarrow:"\u21A0",Uacute:"\xDA",uacute:"\xFA",Uarr:"\u219F",uArr:"\u21D1",uarr:"\u2191",Uarrocir:"\u2949",Ubrcy:"\u040E",ubrcy:"\u045E",Ubreve:"\u016C",ubreve:"\u016D",Ucirc:"\xDB",ucirc:"\xFB",Ucy:"\u0423",ucy:"\u0443",udarr:"\u21C5",Udblac:"\u0170",udblac:"\u0171",udhar:"\u296E",ufisht:"\u297E",Ufr:"\u{1D518}",ufr:"\u{1D532}",Ugrave:"\xD9",ugrave:"\xF9",uHar:"\u2963",uharl:"\u21BF",uharr:"\u21BE",uhblk:"\u2580",ulcorn:"\u231C",ulcorner:"\u231C",ulcrop:"\u230F",ultri:"\u25F8",Umacr:"\u016A",umacr:"\u016B",uml:"\xA8",UnderBar:"_",UnderBrace:"\u23DF",UnderBracket:"\u23B5",UnderParenthesis:"\u23DD",Union:"\u22C3",UnionPlus:"\u228E",Uogon:"\u0172",uogon:"\u0173",Uopf:"\u{1D54C}",uopf:"\u{1D566}",UpArrow:"\u2191",Uparrow:"\u21D1",uparrow:"\u2191",UpArrowBar:"\u2912",UpArrowDownArrow:"\u21C5",UpDownArrow:"\u2195",Updownarrow:"\u21D5",updownarrow:"\u2195",UpEquilibrium:"\u296E",upharpoonleft:"\u21BF",upharpoonright:"\u21BE",uplus:"\u228E",UpperLeftArrow:"\u2196",UpperRightArrow:"\u2197",Upsi:"\u03D2",upsi:"\u03C5",upsih:"\u03D2",Upsilon:"\u03A5",upsilon:"\u03C5",UpTee:"\u22A5",UpTeeArrow:"\u21A5",upuparrows:"\u21C8",urcorn:"\u231D",urcorner:"\u231D",urcrop:"\u230E",Uring:"\u016E",uring:"\u016F",urtri:"\u25F9",Uscr:"\u{1D4B0}",uscr:"\u{1D4CA}",utdot:"\u22F0",Utilde:"\u0168",utilde:"\u0169",utri:"\u25B5",utrif:"\u25B4",uuarr:"\u21C8",Uuml:"\xDC",uuml:"\xFC",uwangle:"\u29A7",vangrt:"\u299C",varepsilon:"\u03F5",varkappa:"\u03F0",varnothing:"\u2205",varphi:"\u03D5",varpi:"\u03D6",varpropto:"\u221D",vArr:"\u21D5",varr:"\u2195",varrho:"\u03F1",varsigma:"\u03C2",varsubsetneq:"\u228A\uFE00",varsubsetneqq:"\u2ACB\uFE00",varsupsetneq:"\u228B\uFE00",varsupsetneqq:"\u2ACC\uFE00",vartheta:"\u03D1",vartriangleleft:"\u22B2",vartriangleright:"\u22B3",Vbar:"\u2AEB",vBar:"\u2AE8",vBarv:"\u2AE9",Vcy:"\u0412",vcy:"\u0432",VDash:"\u22AB",Vdash:"\u22A9",vDash:"\u22A8",vdash:"\u22A2",Vdashl:"\u2AE6",Vee:"\u22C1",vee:"\u2228",veebar:"\u22BB",veeeq:"\u225A",vellip:"\u22EE",Verbar:"\u2016",verbar:"|",Vert:"\u2016",vert:"|",VerticalBar:"\u2223",VerticalLine:"|",VerticalSeparator:"\u2758",VerticalTilde:"\u2240",VeryThinSpace:"\u200A",Vfr:"\u{1D519}",vfr:"\u{1D533}",vltri:"\u22B2",vnsub:"\u2282\u20D2",vnsup:"\u2283\u20D2",Vopf:"\u{1D54D}",vopf:"\u{1D567}",vprop:"\u221D",vrtri:"\u22B3",Vscr:"\u{1D4B1}",vscr:"\u{1D4CB}",vsubnE:"\u2ACB\uFE00",vsubne:"\u228A\uFE00",vsupnE:"\u2ACC\uFE00",vsupne:"\u228B\uFE00",Vvdash:"\u22AA",vzigzag:"\u299A",Wcirc:"\u0174",wcirc:"\u0175",wedbar:"\u2A5F",Wedge:"\u22C0",wedge:"\u2227",wedgeq:"\u2259",weierp:"\u2118",Wfr:"\u{1D51A}",wfr:"\u{1D534}",Wopf:"\u{1D54E}",wopf:"\u{1D568}",wp:"\u2118",wr:"\u2240",wreath:"\u2240",Wscr:"\u{1D4B2}",wscr:"\u{1D4CC}",xcap:"\u22C2",xcirc:"\u25EF",xcup:"\u22C3",xdtri:"\u25BD",Xfr:"\u{1D51B}",xfr:"\u{1D535}",xhArr:"\u27FA",xharr:"\u27F7",Xi:"\u039E",xi:"\u03BE",xlArr:"\u27F8",xlarr:"\u27F5",xmap:"\u27FC",xnis:"\u22FB",xodot:"\u2A00",Xopf:"\u{1D54F}",xopf:"\u{1D569}",xoplus:"\u2A01",xotime:"\u2A02",xrArr:"\u27F9",xrarr:"\u27F6",Xscr:"\u{1D4B3}",xscr:"\u{1D4CD}",xsqcup:"\u2A06",xuplus:"\u2A04",xutri:"\u25B3",xvee:"\u22C1",xwedge:"\u22C0",Yacute:"\xDD",yacute:"\xFD",YAcy:"\u042F",yacy:"\u044F",Ycirc:"\u0176",ycirc:"\u0177",Ycy:"\u042B",ycy:"\u044B",yen:"\xA5",Yfr:"\u{1D51C}",yfr:"\u{1D536}",YIcy:"\u0407",yicy:"\u0457",Yopf:"\u{1D550}",yopf:"\u{1D56A}",Yscr:"\u{1D4B4}",yscr:"\u{1D4CE}",YUcy:"\u042E",yucy:"\u044E",Yuml:"\u0178",yuml:"\xFF",Zacute:"\u0179",zacute:"\u017A",Zcaron:"\u017D",zcaron:"\u017E",Zcy:"\u0417",zcy:"\u0437",Zdot:"\u017B",zdot:"\u017C",zeetrf:"\u2128",ZeroWidthSpace:"\u200B",Zeta:"\u0396",zeta:"\u03B6",Zfr:"\u2128",zfr:"\u{1D537}",ZHcy:"\u0416",zhcy:"\u0436",zigrarr:"\u21DD",Zopf:"\u2124",zopf:"\u{1D56B}",Zscr:"\u{1D4B5}",zscr:"\u{1D4CF}",zwj:"\u200D",zwnj:"\u200C"});sc.entityMap=sc.HTML_ENTITIES});var CE=Fr(mg=>{var cc=Za().NAMESPACE,fg=/[A-Z_a-z\xC0-\xD6\xD8-\xF6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,_E=new RegExp("[\\-\\.0-9"+fg.source.slice(1,-1)+"\\u00B7\\u0300-\\u036F\\u203F-\\u2040]"),bE=new RegExp("^"+fg.source+_E.source+"*(?::"+fg.source+_E.source+"*)?$"),nc=0,ni=1,wn=2,oc=3,Sn=4,vn=5,ac=6,gh=7;function Cn(r,e){this.message=r,this.locator=e,Error.captureStackTrace&&Error.captureStackTrace(this,Cn)}Cn.prototype=new Error;Cn.prototype.name=Cn.name;function wE(){}wE.prototype={parse:function(r,e,t){var i=this.domBuilder;i.startDocument(),SE(e,e={}),jR(r,e,t,i,this.errorHandler),i.endDocument()}};function jR(r,e,t,i,s){function n(U){if(U>65535){U-=65536;var H=55296+(U>>10),wh=56320+(U&1023);return String.fromCharCode(H,wh)}else return String.fromCharCode(U)}function o(U){var H=U.slice(1,-1);return Object.hasOwnProperty.call(t,H)?t[H]:H.charAt(0)==="#"?n(parseInt(H.substr(1).replace("x","0x"))):(s.error("entity not found:"+U),U)}function a(U){if(U>x){var H=r.substring(x,U).replace(/&#?\w+;/g,o);f&&c(x),i.characters(H,0,U-x),x=U}}function c(U,H){for(;U>=l&&(H=h.exec(r));)u=H.index,l=u+H[0].length,f.lineNumber++;f.columnNumber=U-u+1}for(var u=0,l=0,h=/.*(?:\r\n?|\n)|.*$/g,f=i.locator,d=[{currentNSMap:e}],m={},x=0;;){try{var g=r.indexOf("<",x);if(g<0){if(!r.substr(x).match(/^\s*$/)){var _=i.doc,y=_.createTextNode(r.substr(x));_.appendChild(y),i.currentElement=y}return}switch(g>x&&a(g),r.charAt(g+1)){case"/":var k=r.indexOf(">",g+3),S=r.substring(g+2,k).replace(/[ \t\n\r]+$/g,""),T=d.pop();k<0?(S=r.substring(g+2).replace(/[\s<].*/,""),s.error("end tag name: "+S+" is not complete:"+T.tagName),k=g+1+S.length):S.match(/\s</)&&(S=S.replace(/[\s<].*/,""),s.error("end tag name: "+S+" maybe not complete"),k=g+1+S.length);var C=T.localNSMap,v=T.tagName==S,E=v||T.tagName&&T.tagName.toLowerCase()==S.toLowerCase();if(E){if(i.endElement(T.uri,T.localName,S),C)for(var D in C)Object.prototype.hasOwnProperty.call(C,D)&&i.endPrefixMapping(D);v||s.fatalError("end tag name: "+S+" is not match the current start tagName:"+T.tagName)}else d.push(T);k++;break;case"?":f&&c(g),k=ZR(r,g,i);break;case"!":f&&c(g),k=QR(r,g,i,s);break;default:f&&c(g);var A=new vE,P=d[d.length-1].currentNSMap,k=XR(r,g,A,P,o,s),G=A.length;if(!A.closed&&KR(r,k,A.tagName,m)&&(A.closed=!0,t.nbsp||s.warning("unclosed xml attribute")),f&&G){for(var j=yE(f,{}),be=0;be<G;be++){var Tt=A[be];c(Tt.offset),Tt.locator=yE(f,{})}i.locator=j,TE(A,i,P)&&d.push(A),i.locator=f}else TE(A,i,P)&&d.push(A);cc.isHTML(A.uri)&&!A.closed?k=YR(r,k,A.tagName,o,i):k++}}catch(U){if(U instanceof Cn)throw U;s.error("element parse error: "+U),k=-1}k>x?x=k:a(Math.max(g,x)+1)}}function yE(r,e){return e.lineNumber=r.lineNumber,e.columnNumber=r.columnNumber,e}function XR(r,e,t,i,s,n){function o(d,m,x){t.attributeNames.hasOwnProperty(d)&&n.fatalError("Attribute "+d+" redefined"),t.addValue(d,m.replace(/[\t\n\r]/g," ").replace(/&#?\w+;/g,s),x)}for(var a,c,u=++e,l=nc;;){var h=r.charAt(u);switch(h){case"=":if(l===ni)a=r.slice(e,u),l=oc;else if(l===wn)l=oc;else throw new Error("attribute equal must after attrName");break;case"'":case'"':if(l===oc||l===ni)if(l===ni&&(n.warning('attribute value must after "="'),a=r.slice(e,u)),e=u+1,u=r.indexOf(h,e),u>0)c=r.slice(e,u),o(a,c,e-1),l=vn;else throw new Error("attribute value no end '"+h+"' match");else if(l==Sn)c=r.slice(e,u),o(a,c,e),n.warning('attribute "'+a+'" missed start quot('+h+")!!"),e=u+1,l=vn;else throw new Error('attribute value must after "="');break;case"/":switch(l){case nc:t.setTagName(r.slice(e,u));case vn:case ac:case gh:l=gh,t.closed=!0;case Sn:case ni:break;case wn:t.closed=!0;break;default:throw new Error("attribute invalid close char('/')")}break;case"":return n.error("unexpected end of input"),l==nc&&t.setTagName(r.slice(e,u)),u;case">":switch(l){case nc:t.setTagName(r.slice(e,u));case vn:case ac:case gh:break;case Sn:case ni:c=r.slice(e,u),c.slice(-1)==="/"&&(t.closed=!0,c=c.slice(0,-1));case wn:l===wn&&(c=a),l==Sn?(n.warning('attribute "'+c+'" missed quot(")!'),o(a,c,e)):((!cc.isHTML(i[""])||!c.match(/^(?:disabled|checked|selected)$/i))&&n.warning('attribute "'+c+'" missed value!! "'+c+'" instead!!'),o(c,c,e));break;case oc:throw new Error("attribute value missed!!")}return u;case"\x80":h=" ";default:if(h<=" ")switch(l){case nc:t.setTagName(r.slice(e,u)),l=ac;break;case ni:a=r.slice(e,u),l=wn;break;case Sn:var c=r.slice(e,u);n.warning('attribute "'+c+'" missed quot(")!!'),o(a,c,e);case vn:l=ac;break}else switch(l){case wn:var f=t.tagName;(!cc.isHTML(i[""])||!a.match(/^(?:disabled|checked|selected)$/i))&&n.warning('attribute "'+a+'" missed value!! "'+a+'" instead2!!'),o(a,a,e),e=u,l=ni;break;case vn:n.warning('attribute space is required"'+a+'"!!');case ac:l=ni,e=u;break;case oc:l=Sn,e=u;break;case gh:throw new Error("elements closed character '/' and '>' must be connected to")}}u++}}function TE(r,e,t){for(var i=r.tagName,s=null,h=r.length;h--;){var n=r[h],o=n.qName,a=n.value,f=o.indexOf(":");if(f>0)var c=n.prefix=o.slice(0,f),u=o.slice(f+1),l=c==="xmlns"&&u;else u=o,c=null,l=o==="xmlns"&&"";n.localName=u,l!==!1&&(s==null&&(s={},SE(t,t={})),t[l]=s[l]=a,n.uri=cc.XMLNS,e.startPrefixMapping(l,a))}for(var h=r.length;h--;){n=r[h];var c=n.prefix;c&&(c==="xml"&&(n.uri=cc.XML),c!=="xmlns"&&(n.uri=t[c||""]))}var f=i.indexOf(":");f>0?(c=r.prefix=i.slice(0,f),u=r.localName=i.slice(f+1)):(c=null,u=r.localName=i);var d=r.uri=t[c||""];if(e.startElement(d,u,i,r),r.closed){if(e.endElement(d,u,i),s)for(c in s)Object.prototype.hasOwnProperty.call(s,c)&&e.endPrefixMapping(c)}else return r.currentNSMap=t,r.localNSMap=s,!0}function YR(r,e,t,i,s){if(/^(?:script|textarea)$/i.test(t)){var n=r.indexOf("</"+t+">",e),o=r.substring(e+1,n);if(/[&<]/.test(o))return/^script$/i.test(t)?(s.characters(o,0,o.length),n):(o=o.replace(/&#?\w+;/g,i),s.characters(o,0,o.length),n)}return e+1}function KR(r,e,t,i){var s=i[t];return s==null&&(s=r.lastIndexOf("</"+t+">"),s<e&&(s=r.lastIndexOf("</"+t)),i[t]=s),s<e}function SE(r,e){for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=r[t])}function QR(r,e,t,i){var s=r.charAt(e+2);switch(s){case"-":if(r.charAt(e+3)==="-"){var n=r.indexOf("-->",e+4);return n>e?(t.comment(r,e+4,n-e-4),n+3):(i.error("Unclosed comment"),-1)}else return-1;default:if(r.substr(e+3,6)=="CDATA["){var n=r.indexOf("]]>",e+9);return t.startCDATA(),t.characters(r,e+9,n-e-9),t.endCDATA(),n+3}var o=JR(r,e),a=o.length;if(a>1&&/!doctype/i.test(o[0][0])){var c=o[1][0],u=!1,l=!1;a>3&&(/^public$/i.test(o[2][0])?(u=o[3][0],l=a>4&&o[4][0]):/^system$/i.test(o[2][0])&&(l=o[3][0]));var h=o[a-1];return t.startDTD(c,u,l),t.endDTD(),h.index+h[0].length}}return-1}function ZR(r,e,t){var i=r.indexOf("?>",e);if(i){var s=r.substring(e,i).match(/^<\?(\S*)\s*([\s\S]*?)\s*$/);if(s){var n=s[0].length;return t.processingInstruction(s[1],s[2]),i+2}else return-1}return-1}function vE(){this.attributeNames={}}vE.prototype={setTagName:function(r){if(!bE.test(r))throw new Error("invalid tagName:"+r);this.tagName=r},addValue:function(r,e,t){if(!bE.test(r))throw new Error("invalid attribute:"+r);this.attributeNames[r]=this.length,this[this.length++]={qName:r,value:e,offset:t}},length:0,getLocalName:function(r){return this[r].localName},getLocator:function(r){return this[r].locator},getQName:function(r){return this[r].qName},getURI:function(r){return this[r].uri},getValue:function(r){return this[r].value}};function JR(r,e){var t,i=[],s=/'[^']+'|"[^"]+"|[^\s<>\/=]+=?|(\/?\s*>|<)/g;for(s.lastIndex=e,s.exec(r);t=s.exec(r);)if(i.push(t),t[1])return i}mg.XMLReader=wE;mg.ParseError=Cn});var DE=Fr(_h=>{var eD=Za(),tD=dg(),EE=xE(),PE=CE(),rD=tD.DOMImplementation,kE=eD.NAMESPACE,iD=PE.ParseError,sD=PE.XMLReader;function BE(r){return r.replace(/\r[\n\u0085]/g,`
1091
- `).replace(/[\r\u0085\u2028]/g,`
1092
- `)}function RE(r){this.options=r||{locator:{}}}RE.prototype.parseFromString=function(r,e){var t=this.options,i=new sD,s=t.domBuilder||new uc,n=t.errorHandler,o=t.locator,a=t.xmlns||{},c=/\/x?html?$/.test(e),u=c?EE.HTML_ENTITIES:EE.XML_ENTITIES;o&&s.setDocumentLocator(o),i.errorHandler=nD(n,s,o),i.domBuilder=t.domBuilder||s,c&&(a[""]=kE.HTML),a.xml=a.xml||kE.XML;var l=t.normalizeLineEndings||BE;return r&&typeof r=="string"?i.parse(l(r),a,u):i.errorHandler.error("invalid doc source"),s.doc};function nD(r,e,t){if(!r){if(e instanceof uc)return e;r=e}var i={},s=r instanceof Function;t=t||{};function n(o){var a=r[o];!a&&s&&(a=r.length==2?function(c){r(o,c)}:r),i[o]=a&&function(c){a("[xmldom "+o+"] "+c+pg(t))}||function(){}}return n("warning"),n("error"),n("fatalError"),i}function uc(){this.cdata=!1}function En(r,e){e.lineNumber=r.lineNumber,e.columnNumber=r.columnNumber}uc.prototype={startDocument:function(){this.doc=new rD().createDocument(null,null,null),this.locator&&(this.doc.documentURI=this.locator.systemId)},startElement:function(r,e,t,i){var s=this.doc,n=s.createElementNS(r,t||e),o=i.length;xh(this,n),this.currentElement=n,this.locator&&En(this.locator,n);for(var a=0;a<o;a++){var r=i.getURI(a),c=i.getValue(a),t=i.getQName(a),u=s.createAttributeNS(r,t);this.locator&&En(i.getLocator(a),u),u.value=u.nodeValue=c,n.setAttributeNode(u)}},endElement:function(r,e,t){var i=this.currentElement,s=i.tagName;this.currentElement=i.parentNode},startPrefixMapping:function(r,e){},endPrefixMapping:function(r){},processingInstruction:function(r,e){var t=this.doc.createProcessingInstruction(r,e);this.locator&&En(this.locator,t),xh(this,t)},ignorableWhitespace:function(r,e,t){},characters:function(r,e,t){if(r=AE.apply(this,arguments),r){if(this.cdata)var i=this.doc.createCDATASection(r);else var i=this.doc.createTextNode(r);this.currentElement?this.currentElement.appendChild(i):/^\s*$/.test(r)&&this.doc.appendChild(i),this.locator&&En(this.locator,i)}},skippedEntity:function(r){},endDocument:function(){this.doc.normalize()},setDocumentLocator:function(r){(this.locator=r)&&(r.lineNumber=0)},comment:function(r,e,t){r=AE.apply(this,arguments);var i=this.doc.createComment(r);this.locator&&En(this.locator,i),xh(this,i)},startCDATA:function(){this.cdata=!0},endCDATA:function(){this.cdata=!1},startDTD:function(r,e,t){var i=this.doc.implementation;if(i&&i.createDocumentType){var s=i.createDocumentType(r,e,t);this.locator&&En(this.locator,s),xh(this,s),this.doc.doctype=s}},warning:function(r){console.warn("[xmldom warning] "+r,pg(this.locator))},error:function(r){console.error("[xmldom error] "+r,pg(this.locator))},fatalError:function(r){throw new iD(r,this.locator)}};function pg(r){if(r)return`
1093
- @`+(r.systemId||"")+"#[line:"+r.lineNumber+",col:"+r.columnNumber+"]"}function AE(r,e,t){return typeof r=="string"?r.substr(e,t):r.length>=e+t||e?new java.lang.String(r,e,t)+"":r}"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl".replace(/\w+/g,function(r){uc.prototype[r]=function(){return null}});function xh(r,e){r.currentElement?r.currentElement.appendChild(e):r.doc.appendChild(e)}_h.__DOMHandler=uc;_h.normalizeLineEndings=BE;_h.DOMParser=RE});var IE=Fr(bh=>{var ME=dg();bh.DOMImplementation=ME.DOMImplementation;bh.XMLSerializer=ME.XMLSerializer;bh.DOMParser=DE().DOMParser});var Ur;(function(r){r.version="2.0";function e(t){return"id"in t?t.id:null}r.getId=e,r.errorCodes={serverError:-32e3,unexposedError:-32001}})(Ur||(Ur={}));var mc=class extends Error{name=this.constructor.name},li=class extends Error{name=this.constructor.name};async function wg({tap:r,request:e,action:t}){let i=Ur.getId(e);try{let s=await t();return i===null?null:{id:i,result:s,jsonrpc:Ur.version}}catch(s){return r.rpcError({request:e,error:s}),i===null?null:{id:i,jsonrpc:Ur.version,error:s instanceof mc?{code:Ur.errorCodes.serverError,message:s.message}:{code:Ur.errorCodes.unexposedError,message:"unexposed error"}}}}var pc=()=>r=>({plain:r.none,errMessage:r.mix(r.brightRed,r.bold),errName:r.red,errStack:r.mix(r.red,r.dim),timestamp:r.blue,timestampErr:r.red});function Sg(){return pc()}var Or=Object.freeze({black:"\x1B[30m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m",white:"\x1B[37m",brightBlack:"\x1B[90m",brightRed:"\x1B[91m",brightGreen:"\x1B[92m",brightYellow:"\x1B[93m",brightBlue:"\x1B[94m",brightMagenta:"\x1B[95m",brightCyan:"\x1B[96m",brightWhite:"\x1B[97m",bgBlack:"\x1B[40m",bgRed:"\x1B[41m",bgGreen:"\x1B[42m",bgYellow:"\x1B[43m",bgBlue:"\x1B[44m",bgMagenta:"\x1B[45m",bgCyan:"\x1B[46m",bgWhite:"\x1B[47m",bgBrightBlack:"\x1B[100m",bgBrightRed:"\x1B[101m",bgBrightGreen:"\x1B[102m",bgBrightYellow:"\x1B[103m",bgBrightBlue:"\x1B[104m",bgBrightMagenta:"\x1B[105m",bgBrightCyan:"\x1B[106m",bgBrightWhite:"\x1B[107m",bold:"\x1B[1m",dim:"\x1B[2m",italic:"\x1B[3m",underline:"\x1B[4m",inverse:"\x1B[7m",hidden:"\x1B[8m",strikethrough:"\x1B[9m",reset:"\x1B[0m"});var gc=()=>({none:r=>r,uncolor:YE,mix:KE,hex:QE,rgb:vg,bgRgb:ZE});function YE(r){return r.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,"")}function KE(...r){return e=>{for(let t of r)e=t(e);return e}}function QE(r){r=r.replace(/^#/,"");let e,t,i,s;if(r.length===3)e=parseInt(r.split("").map(n=>n+n).join(""),16);else if(r.length===6)e=parseInt(r,16);else throw new Error("Invalid hex color");return t=e>>16&255,i=e>>8&255,s=e&255,vg(t,i,s)}function vg(r,e,t){let i=`\x1B[38;2;${r};${e};${t}m`;return s=>`${i}${s}${Or.reset}`}function ZE(r,e,t){let i=`\x1B[48;2;${r};${e};${t}m`;return s=>`${i}${s}${Or.reset}`}var Rn={...Object.fromEntries(Object.entries(Or).map(([r])=>[r,e=>e])),...gc()};var Dn={...Object.fromEntries(Object.entries(Or).map(([r,e])=>[r,t=>`${e}${t}${Or.reset}`])),...gc()};function Eh(){return typeof Deno<"u"&&typeof Deno.version<"u"}function kh(){return typeof process<"u"&&process.versions&&process.versions.node}function Cg(){return kh()?process.env.FORCE_COLOR||process.stdout.isTTY&&process.env.TERM!=="dumb":Eh()?Deno.env.get("FORCE_COLOR")||Deno.isatty(Deno.stdout.rid)&&Deno.env.get("TERM")!=="dumb":!1}var Ah=()=>Cg()?Dn:Rn;var xc=()=>({colors:r,theme:e})=>{let t=e(r);function i(o){let a=o.stack?`
1094
- `+o.stack+`
1095
- `:"";return[t.errName(o.name+":"),t.errMessage(o.message)].join(" ")+t.errStack(a)}function s(o){return o&&o instanceof Error?i(o):o}function n(o){return o&&o instanceof Error?i(o):t.errMessage(o)}return{stdout:o=>o.map(s),stderr:o=>o.map(n)}};function Mn(...r){return e=>({stdout:t=>{for(let i of r)t=i(e).stdout(t);return t},stderr:t=>{for(let i of r)t=i(e).stderr(t);return t}})}function JE(){return{icon:"\u{1F6A8}",now:()=>Date.now()}}var _c=r=>({colors:e,theme:t})=>{let i={...JE(),...r},s=t(e),n=new Date(i.now()),o=n.getUTCFullYear().toString().padStart(4,"0"),a=(n.getUTCMonth()+1).toString().padStart(2,"0"),c=n.getUTCDate().toString().padStart(2,"0"),u=`${o}-${a}-${c}`,l=n.getUTCHours().toString().padStart(2,"0"),h=n.getUTCMinutes().toString().padStart(2,"0"),f=n.getUTCSeconds().toString().padStart(2,"0"),d=n.getUTCMilliseconds().toString().padStart(3,"0"),m=`${l}:${h}:${f}.${d}`,x=`${u}::${m}`;return{stdout:g=>[s.timestamp(x),...g],stderr:g=>[s.timestampErr(x),...[i.icon].filter(Boolean),...g]}};function Eg(){return Mn(xc(),_c())}var bc=()=>({stdout:async r=>{await Deno.stdout.write(new TextEncoder().encode(r+`
1096
- `))},stderr:async r=>{await Deno.stderr.write(new TextEncoder().encode(r+`
1097
- `))}});var yc=()=>({stdout:async r=>void process.stdout.write(r+`
1098
- `),stderr:async r=>void process.stderr.write(r+`
1099
- `)});var Tc=()=>({stdout:async r=>console.log(r),stderr:async r=>console.error(r)});var kg=()=>Eh()?bc():kh()?yc():Tc();var Ag=()=>({stdout:async()=>{},stderr:async()=>{}});function Pg(){return()=>({stdout:r=>r,stderr:r=>r})}var hi=class r{static writers={auto:kg,void:Ag,deno:bc,node:yc,console:Tc};static colors={auto:Ah,colorful:()=>Dn,colorless:()=>Rn};static themes={auto:Sg,basic:pc};static shapers={auto:Eg,none:Pg,errors:xc,timestamp:_c};writer=r.writers.auto();colors=r.colors.auto();theme=r.themes.auto();shaper=r.shapers.auto();async log(...e){await this.writer.stdout(this.shaper(this).stdout(e).join(" "))}async error(...e){await this.writer.stderr(this.shaper(this).stderr(e).join(" "))}setWriter(e){return this.writer=e,this}setColors(e){return this.colors=e,this}setTheme(e){return this.theme=e,this}setShaper(...e){return this.shaper=Mn(...e),this}};var Lt=Object.freeze({eq(r,e){if(r.length!==e.length)return!1;for(let t=0;t<=r.length;t++)if(r.at(t)!==e.at(t))return!1;return!0},random(r){return crypto.getRandomValues(new Uint8Array(r))}});var di=Object.freeze({fromBytes(r){return[...r].map(e=>e.toString(16).padStart(2,"0")).join("")},toBytes(r){if(r.length%2!==0)throw new Error("must have even number of hex characters");let e=new Uint8Array(r.length/2);for(let t=0;t<r.length;t+=2)e[t/2]=parseInt(r.slice(t,t+2),16);return e},random(r=32){return this.fromBytes(Lt.random(r))},string(r){return di.fromBytes(r)},bytes(r){return di.toBytes(r)}});var Ph=58,wc="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",Bh=Object.freeze({fromBytes(r){let e=BigInt("0x"+di.fromBytes(r)),t="";for(;e>0;){let i=e%BigInt(Ph);e=e/BigInt(Ph),t=wc[Number(i)]+t}for(let i of r)if(i===0)t=wc[0]+t;else break;return t},toBytes(r){let e=BigInt(0);for(let o of r){let a=wc.indexOf(o);if(a===-1)throw new Error(`Invalid character '${o}' in base58 string`);e=e*BigInt(Ph)+BigInt(a)}let t=e.toString(16);t.length%2!==0&&(t="0"+t);let i=di.toBytes(t),s=0;for(let o of r)if(o===wc[0])s++;else break;let n=new Uint8Array(s+i.length);return n.set(i,s),n},random(r=32){return this.fromBytes(Lt.random(r))},string(r){return Bh.fromBytes(r)},bytes(r){return Bh.toBytes(r)}});var Bg=class{lexicon;static lexicons=Object.freeze({base2:{characters:"01"},hex:{characters:"0123456789abcdef"},base36:{characters:"0123456789abcdefghijklmnopqrstuvwxyz"},base58:{characters:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"},base62:{characters:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"},base64url:{negativePrefix:"~",characters:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"},base64:{characters:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",padding:{character:"=",size:4}}});lookup;negativePrefix;constructor(e){this.lexicon=e,this.lookup=Object.fromEntries([...e.characters].map((t,i)=>[t,i])),this.negativePrefix=e.negativePrefix??"-"}toBytes(e){let t=Math.log2(this.lexicon.characters.length);if(Number.isInteger(t)){let a=0,c=0,u=[];for(let l of e){if(l===this.lexicon.padding?.character)continue;let h=this.lookup[l];if(h===void 0)throw new Error(`Invalid character: ${l}`);for(a=a<<t|h,c+=t;c>=8;)c-=8,u.push(a>>c&255)}return new Uint8Array(u)}let i=0n,s=BigInt(this.lexicon.characters.length),n=!1;e.startsWith(this.negativePrefix)&&(e=e.slice(this.negativePrefix.length),n=!0);for(let a of e){let c=this.lookup[a];if(c===void 0)throw new Error(`Invalid character: ${a}`);i=i*s+BigInt(c)}let o=[];for(;i>0n;)o.unshift(Number(i%256n)),i=i/256n;return new Uint8Array(o)}fromBytes(e){let t=Math.log2(this.lexicon.characters.length);if(Number.isInteger(t)){let o=0,a=0,c="";for(let u of e)for(o=o<<8|u,a+=8;a>=t;){a-=t;let l=o>>a&(1<<t)-1;c+=this.lexicon.characters[l]}if(a>0){let u=o<<t-a&(1<<t)-1;c+=this.lexicon.characters[u]}if(this.lexicon.padding)for(;c.length%this.lexicon.padding.size!==0;)c+=this.lexicon.padding.character;return c}let i=0n;for(let o of e)i=(i<<8n)+BigInt(o);if(i===0n)return this.lexicon.characters[0];let s=BigInt(this.lexicon.characters.length),n="";for(;i>0n;)n=this.lexicon.characters[Number(i%s)]+n,i=i/s;return n}toInteger(e){if(!e)return 0;let t=0n,i=!1,s=BigInt(this.lexicon.characters.length);e.startsWith(this.negativePrefix)&&(e=e.slice(this.negativePrefix.length),i=!0);for(let n of e){let o=this.lookup[n];if(o===void 0)throw new Error(`Invalid character: ${n}`);t=t*s+BigInt(o)}return Number(i?-t:t)}fromInteger(e){e=Math.floor(e);let t=e<0,i=BigInt(t?-e:e);if(i===0n)return this.lexicon.characters[0];let s=BigInt(this.lexicon.characters.length),n="";for(;i>0n;)n=this.lexicon.characters[Number(i%s)]+n,i=i/s;return t?`${this.negativePrefix}${n}`:n}random(e=32){return this.fromBytes(Lt.random(e))}};var Rh=Object.freeze({fromBytes(r){return typeof btoa=="function"?btoa(String.fromCharCode(...r)):Buffer.from(r).toString("base64")},toBytes(r){return typeof atob=="function"?Uint8Array.from(atob(r),e=>e.charCodeAt(0)):Uint8Array.from(Buffer.from(r,"base64"))},random(r=32){return this.fromBytes(Lt.random(r))},string(r){return Rh.fromBytes(r)},bytes(r){return Rh.toBytes(r)}});var Rg=Object.freeze({fromBytes(r){return new TextDecoder().decode(r)},toBytes(r){return new TextEncoder().encode(r)},string(r){return Rg.fromBytes(r)},bytes(r){return Rg.toBytes(r)}});var Sc=Object.freeze({set:r=>r!=null,unset:r=>r==null,boolean:r=>typeof r=="boolean",number:r=>typeof r=="number",string:r=>typeof r=="string",bigint:r=>typeof r=="bigint",object:r=>typeof r=="object"&&r!==null,array:r=>Array.isArray(r),fn:r=>typeof r=="function",symbol:r=>typeof r=="symbol"});var Dh=class extends Error{milliseconds;name=this.constructor.name;constructor(e,t){super(`${t}, timed out in ${(e/1e3).toFixed(1)} seconds`),this.milliseconds=e}};function Mh(r,e,t){return r<=0||r===1/0?t():new Promise((i,s)=>{let n=setTimeout(()=>s(new Dh(r,e)),r);t().then(i).catch(s).finally(()=>clearTimeout(n))})}function Rt(){let r,e,t=new Promise((s,n)=>{r=s,e=n});function i(s){return s.then(r).catch(e),t}return{promise:t,resolve:r,reject:e,entangle:i}}function Dg(r,e){let t=r;for(let i of e)if(t=t[i],Sc.unset(t))break;return t}var vc=class{items;#e=[];constructor(e){this.items=e,this.#e=[...e]}pull(){this.#e.length===0&&(this.#e=[...this.items]);let e=Math.floor(Math.random()*this.#e.length),[t]=this.#e.splice(e,1);return t}};function ek(r){return{map:e=>Mg(r,e),filter:e=>Ig(r,e)}}ek.pipe=Object.freeze({map:r=>e=>Mg(e,r),filter:r=>e=>Ig(e,r)});var Mg=(r,e)=>Object.fromEntries(Object.entries(r).map(([t,i])=>[t,e(i,t)])),Ig=(r,e)=>Object.fromEntries(Object.entries(r).filter(([t,i])=>e(i,t)));function tk(){let r=new Set;function e(n){return r.add(n),()=>{r.delete(n)}}async function t(...n){await Promise.all([...r].map(o=>o(...n)))}async function i(){let{promise:n,resolve:o}=Rt(),a=e((...c)=>{o(c),a()});return n}function s(){r.clear()}return e.pub=t,e.sub=e,e.on=e,e.once=i,e.clear=s,t.pub=t,t.sub=e,t.on=e,t.once=i,t.clear=s,[t,e]}function Cc(r){let e=tk()[0];return r&&e.sub(r),e}var fi=class{#e=[];add(...e){return this.#e.push(...e),this}disposable(e){return this.bag(e,()=>e.dispose())}bag(e,t){return this.add(()=>t(e)),e}dispose(){for(let e of this.#e.reverse())e();this.#e=[]}};var Ec=class extends vc{constructor(){super(["\u{1F436}","\u{1F415}","\u{1F429}","\u{1F43A}","\u{1F98A}","\u{1F99D}","\u{1F431}","\u{1F408}","\u{1F42F}","\u{1F405}","\u{1F406}","\u{1F434}","\u{1F40E}","\u{1F984}","\u{1F993}","\u{1F98D}","\u{1F9A7}","\u{1F9A3}","\u{1F418}","\u{1F98F}","\u{1F99B}","\u{1F42D}","\u{1F401}","\u{1F400}","\u{1F439}","\u{1F430}","\u{1F407}","\u{1F9A8}","\u{1F9A1}","\u{1F998}","\u{1F999}","\u{1F43F}\uFE0F","\u{1F9A6}","\u{1F9A5}","\u{1F43B}","\u{1F428}","\u{1F43C}","\u{1F9AB}","\u{1F437}","\u{1F43D}","\u{1F416}","\u{1F417}","\u{1F42E}","\u{1F404}","\u{1F403}","\u{1F402}","\u{1F98C}","\u{1F410}","\u{1F40F}","\u{1F411}","\u{1F42A}","\u{1F42B}","\u{1F426}","\u{1F427}","\u{1F985}","\u{1F986}","\u{1F9A2}","\u{1F989}","\u{1F9A9}","\u{1F9A4}","\u{1F438}","\u{1F98E}","\u{1F422}","\u{1F40D}","\u{1F40A}","\u{1F420}","\u{1F41F}","\u{1F988}","\u{1F421}","\u{1F42C}","\u{1F40B}","\u{1F433}","\u{1F41E}","\u{1F41C}","\u{1F41D}","\u{1F98B}","\u{1F40C}","\u{1F997}","\u{1FAB2}","\u{1F99F}","\u{1F9A0}","\u{1FAC3}"])}};var In=class extends hi{static dummy(){return new this().setWriter(hi.writers.void())}request=async({request:e,label:t})=>{let i=this.colors.none;this.log(...[t].filter(Boolean),i(`${e.method}()`))};rpcError=async({request:e,error:t,label:i})=>{this.error(...[i].filter(Boolean),`${e.method}()`,t)};#e=new Ec;#t(e){return[this.colors.yellow(`[${e.ip}]`),this.colors.green(e.headers.origin?e.headers.origin:"(no-origin)")].join(" ")}http(e){let t=this.#t(e);return{error:this.error.bind(this),request:i=>this.request({...i,label:t}),rpcError:i=>this.rpcError({...i,label:t})}}webSocket(e){let t=this.#t(e),i=this.#e.pull(),s=this.colors.yellow,n=o=>{let a=t+" "+(o?i+s(" <-"):i+s(" ->"));return{error:this.error.bind(this),request:c=>this.request({...c,label:a}),rpcError:c=>this.rpcError({...c,label:a})}};return{remote:n(!0),local:n(!1)}}};var mi=class extends In{request=async()=>{}};var Fn=new mi;function rs({fns:r,tap:e=Fn}){return async t=>{let i=t.method.split("."),s=Dg(r,i),n=async()=>await s(...t.params);return e.request({request:t}),await wg({tap:e,request:t,action:n})}}var Fg=Symbol("tune"),rk=Symbol("query"),ik=Symbol("notify"),sk=Symbol("settings");function Ug(r){function e(t){let i={notify:void 0};return new Proxy(()=>{},{apply:(s,n,o)=>r(t,o,i),get:(s,n)=>{if(n!=="then")return n===Fg?o=>(...a)=>r(t,a,{...i,...o}):n===ik?(...o)=>r(t,o,{...i,notify:!0}):n===rk?(...o)=>r(t,o,{...i,notify:!1}):n===sk?i:(s[n]||(s[n]=e([...t,n])),s[n])},set:(s,n,o)=>(s[n]=o,!0)})}return e([])}function Gr(r){let{endpoint:e,tap:t=Fn}=r,i=1;return Ug(async(s,n,o)=>{let a=o.notify??r.notify??!1,c=o.transfer,u={jsonrpc:"2.0",method:s.join("."),params:n},l=a?u:{...u,id:i++};t.request({request:l});let h=await e(l,{transfer:c});if(a&&!h)return null;if(!h)throw new li("response was null, but shouldn't be, because the request was not a notification");if("error"in h)throw new li(r.label?`${r.label}: ${h.error.message}`:h.error.message);return h.result})}function Un(r){return Gr({endpoint:rs(r),tap:r.tap})}var pi=class{recv=Cc();sendRequest=Cc();sendResponse=Cc();static makeEntangledPair({origin:e="example.e280.org"}={}){let t=new this,i=new this,s=[t.sendRequest.sub(o=>i.recv(o,{origin:e})),t.sendResponse.sub(o=>i.recv(o,{origin:e})),i.sendRequest.sub(o=>t.recv(o,{origin:e})),i.sendResponse.sub(o=>t.recv(o,{origin:e}))];return[t,i,()=>s.forEach(o=>o())]}};var hr=class{transfer=void 0};function kc(r,e){return r.addEventListener("message",e),()=>r.removeEventListener("message",e)}function Og(r,e){return async(t,{transfer:i}={})=>{if("id"in t){let s=Rt();return e(t,i,s.promise),r.wait(t.id,t.method).then(n=>(s.resolve(n),n))}else{let s=Promise.resolve(null);return e(t,i,s),s}}}function Gg(r){let e=[],t=[];for(let i of Array.isArray(r)?r:[r])"method"in i?e.push(i):t.push(i);return{requests:e,responses:t}}async function Ng(r,e){let t=(await Promise.all(e.map(async i=>r(i)))).filter(i=>i!==null);return t.length===0?null:t.length===1?t[0]:t}var is=class extends pi{#e=new fi;constructor(e){super(),this.#e.add(this.sendRequest.sub((t,i)=>e.postMessage(t,i)),this.sendResponse.sub((t,i)=>e.postMessage(t,i)),kc(e,t=>this.recv(t.data,t)))}dispose(){this.#e.dispose()}};var Ih=Object.freeze({timeout:6e4,maxRequestBytes:1e7});var On=class{timeout;pending=new Map;constructor(e){this.timeout=e}async wait(e,t){let i=Rt();return this.pending.set(e,{method:t,deferred:i}),await Mh(this.timeout,`request #${e} ${t}()`,()=>i.promise)}deliverResponse(e){let t=this.pending.get(e.id);t&&("error"in e?t.deferred.reject(new li(e.error.message)):t.deferred.resolve(e))}};var ss=class{options;waiter;remoteEndpoint;remote;constructor(e){this.options=e;let{conduit:t}=e;this.waiter=new On(e.timeout??Ih.timeout),this.remoteEndpoint=Og(this.waiter,t.sendRequest.pub.bind(t.sendRequest)),this.remote=Gr({endpoint:this.remoteEndpoint,tap:e.tap}),t.recv.sub(i=>this.recv(i))}async recv(e){let t=new hr,{conduit:i,getLocalEndpoint:s}=this.options,{requests:n,responses:o}=Gg(e);for(let c of o)this.waiter.deliverResponse(c);if(!s)return;let a=await Ng(s(this.remote,t),n);a&&await i.sendResponse(a,t.transfer)}};var gi=class{host;constructor(e){this.host=e}},xi=class{work;constructor(e){this.work=e}};var dr=new mi;async function Lg(r,e,t={}){let i=t.tap??dr,s=new ss({tap:i,timeout:t.timeout??1/0,conduit:new is(r.getSelf()),getLocalEndpoint:(n,o)=>rs({tap:i,fns:e(new gi(n.host),o)})});return await s.remote.meta.ready(),s.remote.host}var ns=class{worker;messenger;constructor(e,t){this.worker=e,this.messenger=t}static async make(e,t){let i=t.tap??dr,s=e.loadWorker(t.workerUrl,t.label),n=Rt(),o={async ready(){n.resolve()}},a=new ss({tap:i,timeout:t.timeout??1/0,conduit:new is(s),getLocalEndpoint:(c,u)=>rs({tap:i,fns:{meta:o,host:t.setupHost(new xi(c),u)}})});return await n.promise,new this(s,a)}get work(){return this.messenger.remote}terminate(){this.worker.terminate()}};var Ac=class{threads;static async make(e,t){let i=t.workerCount??e.guessOptimalThreadCount(),s=await Promise.all([...Array(i)].map(async(n,o)=>ns.make(e,{...t,label:t.label??`${t.label??"comrade"}_${o+1}`})));return new this(s,{tap:t.tap})}work;#e=new Set;#t=[];constructor(e,t={}){this.threads=e;let i=t.tap??dr,s=async(n,o)=>this.#i({request:n,prom:Rt(),transfer:o?.transfer});this.work=Gr({tap:i,endpoint:s}),e.forEach(n=>this.#e.add(n))}get threadCount(){return this.threads.length}terminate(){for(let e of this.threads)e.terminate()}#i(e){return this.#t.push(e),this.#r(),e.prom.promise}#r(){for(;this.#e.size>0&&this.#t.length>0;){let e=[...this.#e].pop();this.#e.delete(e);let t=this.#t.shift();this.#e.delete(e);let i=e.messenger.remoteEndpoint(t.request,{transfer:t.transfer});t.prom.entangle(i).finally(()=>{this.#e.add(e),this.#r()})}}};var zg=r=>({thread:e=>ns.make(r,e),cluster:e=>Ac.make(r,e),worker:(e,t={})=>Lg(r,e,t),work:e=>e,host:e=>e,mocks(e){let{setupWork:t,setupHost:i,tap:s=dr}=e,n=new gi,o=new xi;return o.work=Un({tap:s,fns:t(n,new hr)}),n.host=Un({tap:s,fns:i(o,new hr)}),{workShell:o,hostShell:n,work:o.work,host:n.host}},mockWork(e,t=dr){let i=new gi,s=new xi;return s.work=Un({tap:t,fns:e(i,new hr)}),{workShell:s,hostShell:i,work:s.work,mockHost:n=>(i.host=Un({tap:t,fns:n(s,new hr)}),{workShell:s,hostShell:i,work:s.work,host:i.host})}}});var Vg=()=>({getSelf(){return self},guessOptimalThreadCount(){let r=navigator.hardwareConcurrency??1;return Math.max(1,r-1)},loadWorker(r,e){return new window.Worker(r,{name:e,type:"module"})},async loadWasm(r){return WebAssembly.instantiateStreaming(fetch(r))}});var ok=Vg(),Pc=zg(ok);function w(r){if(!r)throw new Error("Assertion failed.")}var Bc=r=>{let e=(r%360+360)%360;if(e===0||e===90||e===180||e===270)return e;throw new Error(`Invalid rotation ${r}.`)},he=r=>r&&r[r.length-1],_i=r=>r>=0&&r<2**32,pt=class r{constructor(e){this.bytes=e,this.pos=0}seekToByte(e){this.pos=8*e}readBit(){let e=Math.floor(this.pos/8),t=this.bytes[e]??0,i=7-(this.pos&7),s=(t&1<<i)>>i;return this.pos++,s}readBits(e){let t=0;for(let i=0;i<e;i++)t<<=1,t|=this.readBit();return t}readAlignedByte(){if(this.pos%8!==0)throw new Error("Bitstream is not byte-aligned.");let e=this.pos/8,t=this.bytes[e]??0;return this.pos+=8,t}skipBits(e){this.pos+=e}getBitsLeft(){return this.bytes.length*8-this.pos}clone(){let e=new r(this.bytes);return e.pos=this.pos,e}},L=r=>{let e=0;for(;r.readBit()===0&&e<32;)e++;if(e>=32)throw new Error("Invalid exponential-Golomb code.");return(1<<e)-1+r.readBits(e)},os=r=>{let e=L(r);return(e&1)===0?-(e>>1):e+1>>1};var zt=r=>r instanceof Uint8Array?r:r instanceof ArrayBuffer?new Uint8Array(r):new Uint8Array(r.buffer,r.byteOffset,r.byteLength),St=r=>r instanceof DataView?r:r instanceof ArrayBuffer?new DataView(r):new DataView(r.buffer,r.byteOffset,r.byteLength),bi=new TextEncoder,Fh=r=>Object.fromEntries(Object.entries(r).map(([e,t])=>[t,e])),yi={bt709:1,bt470bg:5,smpte170m:6,bt2020:9,smpte432:12},Rc=Fh(yi),Ti={bt709:1,smpte170m:6,linear:8,"iec61966-2-1":13,pg:16,hlg:18},Dc=Fh(Ti),wi={rgb:0,bt709:1,bt470bg:5,smpte170m:6,"bt2020-ncl":9},Mc=Fh(wi),Hg=r=>!!r&&!!r.primaries&&!!r.transfer&&!!r.matrix&&r.fullRange!==void 0,as=r=>r instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&r instanceof SharedArrayBuffer||ArrayBuffer.isView(r),wt=class{constructor(){this.currentPromise=Promise.resolve()}async acquire(){let e,t=new Promise(s=>{e=s}),i=this.currentPromise;return this.currentPromise=t,await i,e}},Uh=r=>[...r].map(e=>e.toString(16).padStart(2,"0")).join(""),Oh=r=>(r=r>>1&1431655765|(r&1431655765)<<1,r=r>>2&858993459|(r&858993459)<<2,r=r>>4&252645135|(r&252645135)<<4,r=r>>8&16711935|(r&16711935)<<8,r=r>>16&65535|(r&65535)<<16,r>>>0),Ae=(r,e,t)=>{let i=0,s=r.length-1,n=-1;for(;i<=s;){let o=i+s>>1,a=t(r[o]);a===e?(n=o,s=o-1):a<e?i=o+1:s=o-1}return n},Z=(r,e,t)=>{let i=0,s=r.length-1,n=-1;for(;i<=s;){let o=i+(s-i+1)/2|0;t(r[o])<=e?(n=o,i=o+1):s=o-1}return n},Ke=()=>{let r,e;return{promise:new Promise((i,s)=>{r=i,e=s}),resolve:r,reject:e}},Wg=(r,e)=>{let t=r.indexOf(e);t!==-1&&r.splice(t,1)},Gh=(r,e)=>{for(let t=r.length-1;t>=0;t--)if(e(r[t]))return r[t]},Ic=(r,e)=>{for(let t=r.length-1;t>=0;t--)if(e(r[t]))return t;return-1},$g=async function*(r){Symbol.iterator in r?yield*r[Symbol.iterator]():yield*r[Symbol.asyncIterator]()},qg=r=>{if(!(Symbol.iterator in r)&&!(Symbol.asyncIterator in r))throw new TypeError("Argument must be an iterable or async iterable.")},Gn=r=>{throw new Error(`Unexpected value: ${r}`)},Nh=(r,e,t)=>{let i=r.getUint8(e),s=r.getUint8(e+1),n=r.getUint8(e+2);return t?i|s<<8|n<<16:i<<16|s<<8|n},jg=(r,e,t)=>Nh(r,e,t)<<8>>8,Lh=(r,e,t,i)=>{t=t>>>0,t=t&16777215,i?(r.setUint8(e,t&255),r.setUint8(e+1,t>>>8&255),r.setUint8(e+2,t>>>16&255)):(r.setUint8(e,t>>>16&255),r.setUint8(e+1,t>>>8&255),r.setUint8(e+2,t&255))},Xg=(r,e,t,i)=>{t=$e(t,-8388608,8388607),t<0&&(t=t+16777216&16777215),Lh(r,e,t,i)};var $e=(r,e,t)=>Math.max(e,Math.min(t,r)),nt="und",cs=(r,e)=>{let t=10**e;return Math.round(r*t)/t},Yg=(r,e)=>Math.round(r/e)*e,Kg=r=>{let e=0;for(;r;)e++,r>>=1;return e},ak=/^[a-z]{3}$/,us=r=>ak.test(r),Vt=1e6*(1+Number.EPSILON),Fc=(r,e)=>{let t={...r};for(let i in e)typeof r[i]=="object"&&r[i]!==null&&typeof e[i]=="object"&&e[i]!==null?t[i]=Fc(r[i],e[i]):t[i]=e[i];return t},zh=async(r,e,t)=>{let i=0;for(;;)try{return await fetch(r,e)}catch(s){console.error("Retrying failed fetch. Error:",s),i++;let n=t(i);if(n===null)throw s;if(!Number.isFinite(n)||n<0)throw new TypeError("Retry delay must be a non-negative finite number.");n>0&&await new Promise(o=>setTimeout(o,1e3*n))}},Qg=(r,e)=>{let t=r<0?-1:1;r=Math.abs(r);let i=0,s=1,n=1,o=0,a=r;for(;;){let c=Math.floor(a),u=c*n+i,l=c*o+s;if(l>e)return{numerator:t*n,denominator:o};if(i=n,s=o,n=u,o=l,a=1/(a-c),!isFinite(a))break}return{numerator:t*n,denominator:o}},Nr=class{constructor(){this.currentPromise=Promise.resolve()}call(e){return this.currentPromise=this.currentPromise.then(e)}};var Uc=[],Oc=[],Zg=[],Jg=[];var mr=["avc","hevc","vp9","av1","vp8"],Re=["pcm-s16","pcm-s16be","pcm-s24","pcm-s24be","pcm-s32","pcm-s32be","pcm-f32","pcm-f32be","pcm-f64","pcm-f64be","pcm-u8","pcm-s8","ulaw","alaw"],Vh=["aac","opus","mp3","vorbis","flac"],Lr=[...Vh,...Re],ls=["webvtt"],ex=[{maxMacroblocks:99,maxBitrate:64e3,level:10},{maxMacroblocks:396,maxBitrate:192e3,level:11},{maxMacroblocks:396,maxBitrate:384e3,level:12},{maxMacroblocks:396,maxBitrate:768e3,level:13},{maxMacroblocks:396,maxBitrate:2e6,level:20},{maxMacroblocks:792,maxBitrate:4e6,level:21},{maxMacroblocks:1620,maxBitrate:4e6,level:22},{maxMacroblocks:1620,maxBitrate:1e7,level:30},{maxMacroblocks:3600,maxBitrate:14e6,level:31},{maxMacroblocks:5120,maxBitrate:2e7,level:32},{maxMacroblocks:8192,maxBitrate:2e7,level:40},{maxMacroblocks:8192,maxBitrate:5e7,level:41},{maxMacroblocks:8704,maxBitrate:5e7,level:42},{maxMacroblocks:22080,maxBitrate:135e6,level:50},{maxMacroblocks:36864,maxBitrate:24e7,level:51},{maxMacroblocks:36864,maxBitrate:24e7,level:52},{maxMacroblocks:139264,maxBitrate:24e7,level:60},{maxMacroblocks:139264,maxBitrate:48e7,level:61},{maxMacroblocks:139264,maxBitrate:8e8,level:62}],tx=[{maxPictureSize:36864,maxBitrate:128e3,tier:"L",level:30},{maxPictureSize:122880,maxBitrate:15e5,tier:"L",level:60},{maxPictureSize:245760,maxBitrate:3e6,tier:"L",level:63},{maxPictureSize:552960,maxBitrate:6e6,tier:"L",level:90},{maxPictureSize:983040,maxBitrate:1e7,tier:"L",level:93},{maxPictureSize:2228224,maxBitrate:12e6,tier:"L",level:120},{maxPictureSize:2228224,maxBitrate:3e7,tier:"H",level:120},{maxPictureSize:2228224,maxBitrate:2e7,tier:"L",level:123},{maxPictureSize:2228224,maxBitrate:5e7,tier:"H",level:123},{maxPictureSize:8912896,maxBitrate:25e6,tier:"L",level:150},{maxPictureSize:8912896,maxBitrate:1e8,tier:"H",level:150},{maxPictureSize:8912896,maxBitrate:4e7,tier:"L",level:153},{maxPictureSize:8912896,maxBitrate:16e7,tier:"H",level:153},{maxPictureSize:8912896,maxBitrate:6e7,tier:"L",level:156},{maxPictureSize:8912896,maxBitrate:24e7,tier:"H",level:156},{maxPictureSize:35651584,maxBitrate:6e7,tier:"L",level:180},{maxPictureSize:35651584,maxBitrate:24e7,tier:"H",level:180},{maxPictureSize:35651584,maxBitrate:12e7,tier:"L",level:183},{maxPictureSize:35651584,maxBitrate:48e7,tier:"H",level:183},{maxPictureSize:35651584,maxBitrate:24e7,tier:"L",level:186},{maxPictureSize:35651584,maxBitrate:8e8,tier:"H",level:186}],fr=[{maxPictureSize:36864,maxBitrate:2e5,level:10},{maxPictureSize:73728,maxBitrate:8e5,level:11},{maxPictureSize:122880,maxBitrate:18e5,level:20},{maxPictureSize:245760,maxBitrate:36e5,level:21},{maxPictureSize:552960,maxBitrate:72e5,level:30},{maxPictureSize:983040,maxBitrate:12e6,level:31},{maxPictureSize:2228224,maxBitrate:18e6,level:40},{maxPictureSize:2228224,maxBitrate:3e7,level:41},{maxPictureSize:8912896,maxBitrate:6e7,level:50},{maxPictureSize:8912896,maxBitrate:12e7,level:51},{maxPictureSize:8912896,maxBitrate:18e7,level:52},{maxPictureSize:35651584,maxBitrate:18e7,level:60},{maxPictureSize:35651584,maxBitrate:24e7,level:61},{maxPictureSize:35651584,maxBitrate:48e7,level:62}],rx=[{maxPictureSize:147456,maxBitrate:15e5,tier:"M",level:0},{maxPictureSize:278784,maxBitrate:3e6,tier:"M",level:1},{maxPictureSize:665856,maxBitrate:6e6,tier:"M",level:4},{maxPictureSize:1065024,maxBitrate:1e7,tier:"M",level:5},{maxPictureSize:2359296,maxBitrate:12e6,tier:"M",level:8},{maxPictureSize:2359296,maxBitrate:3e7,tier:"H",level:8},{maxPictureSize:2359296,maxBitrate:2e7,tier:"M",level:9},{maxPictureSize:2359296,maxBitrate:5e7,tier:"H",level:9},{maxPictureSize:8912896,maxBitrate:3e7,tier:"M",level:12},{maxPictureSize:8912896,maxBitrate:1e8,tier:"H",level:12},{maxPictureSize:8912896,maxBitrate:4e7,tier:"M",level:13},{maxPictureSize:8912896,maxBitrate:16e7,tier:"H",level:13},{maxPictureSize:8912896,maxBitrate:6e7,tier:"M",level:14},{maxPictureSize:8912896,maxBitrate:24e7,tier:"H",level:14},{maxPictureSize:35651584,maxBitrate:6e7,tier:"M",level:15},{maxPictureSize:35651584,maxBitrate:24e7,tier:"H",level:15},{maxPictureSize:35651584,maxBitrate:6e7,tier:"M",level:16},{maxPictureSize:35651584,maxBitrate:24e7,tier:"H",level:16},{maxPictureSize:35651584,maxBitrate:1e8,tier:"M",level:17},{maxPictureSize:35651584,maxBitrate:48e7,tier:"H",level:17},{maxPictureSize:35651584,maxBitrate:16e7,tier:"M",level:18},{maxPictureSize:35651584,maxBitrate:8e8,tier:"H",level:18},{maxPictureSize:35651584,maxBitrate:16e7,tier:"M",level:19},{maxPictureSize:35651584,maxBitrate:8e8,tier:"H",level:19}],ix=".01.01.01.01.00",sx=".0.110.01.01.01.0",nx=(r,e,t,i)=>{if(r==="avc"){let n=Math.ceil(e/16)*Math.ceil(t/16),o=ex.find(h=>n<=h.maxMacroblocks&&i<=h.maxBitrate)??he(ex),a=o?o.level:0,c="64".padStart(2,"0"),u="00",l=a.toString(16).padStart(2,"0");return`avc1.${c}${u}${l}`}else if(r==="hevc"){let s="",o="6",a=e*t,c=tx.find(l=>a<=l.maxPictureSize&&i<=l.maxBitrate)??he(tx);return`hev1.${s}1.${o}.${c.tier}${c.level}.B0`}else{if(r==="vp8")return"vp8";if(r==="vp9"){let s="00",n=e*t,o=fr.find(c=>n<=c.maxPictureSize&&i<=c.maxBitrate)??he(fr);return`vp09.${s}.${o.level.toString().padStart(2,"0")}.08`}else if(r==="av1"){let n=e*t,o=rx.find(u=>n<=u.maxPictureSize&&i<=u.maxBitrate)??he(rx);return`av01.0.${o.level.toString().padStart(2,"0")}${o.tier}.08`}}throw new TypeError(`Unhandled codec '${r}'.`)};var ox=r=>{let e=r.split("."),s=(1<<7)+1,n=Number(e[1]),o=e[2],a=Number(o.slice(0,-1)),c=(n<<5)+a,u=o.slice(-1)==="H"?1:0,h=Number(e[3])===8?0:1,f=0,d=e[4]?Number(e[4]):0,m=e[5]?Number(e[5][0]):1,x=e[5]?Number(e[5][1]):1,g=e[5]?Number(e[5][2]):0,_=(u<<7)+(h<<6)+(f<<5)+(d<<4)+(m<<3)+(x<<2)+g;return[s,c,_,0]},Gc=r=>{let{codec:e,codecDescription:t,colorSpace:i,avcCodecInfo:s,hevcCodecInfo:n,vp9CodecInfo:o,av1CodecInfo:a}=r;if(e==="avc"){if(s){let c=new Uint8Array([s.avcProfileIndication,s.profileCompatibility,s.avcLevelIndication]);return`avc1.${Uh(c)}`}if(!t||t.byteLength<4)throw new TypeError("AVC decoder description is not provided or is not at least 4 bytes long.");return`avc1.${Uh(t.subarray(1,4))}`}else if(e==="hevc"){let c,u,l,h,f,d;if(n)c=n.generalProfileSpace,u=n.generalProfileIdc,l=Oh(n.generalProfileCompatibilityFlags),h=n.generalTierFlag,f=n.generalLevelIdc,d=[...n.generalConstraintIndicatorFlags];else{if(!t||t.byteLength<23)throw new TypeError("HEVC decoder description is not provided or is not at least 23 bytes long.");let x=St(t),g=x.getUint8(1);c=g>>6&3,u=g&31,l=Oh(x.getUint32(2)),h=g>>5&1,f=x.getUint8(12),d=[];for(let _=0;_<6;_++)d.push(x.getUint8(6+_))}let m="hev1.";for(m+=["","A","B","C"][c]+u,m+=".",m+=l.toString(16).toUpperCase(),m+=".",m+=h===0?"L":"H",m+=f;d.length>0&&d[d.length-1]===0;)d.pop();return d.length>0&&(m+=".",m+=d.map(x=>x.toString(16).toUpperCase()).join(".")),m}else{if(e==="vp8")return"vp8";if(e==="vp9"){if(!o){let _=r.width*r.height,y=he(fr).level;for(let S of fr)if(_<=S.maxPictureSize){y=S.level;break}return`vp09.00.${y.toString().padStart(2,"0")}.08`}let c=o.profile.toString().padStart(2,"0"),u=o.level.toString().padStart(2,"0"),l=o.bitDepth.toString().padStart(2,"0"),h=o.chromaSubsampling.toString().padStart(2,"0"),f=o.colourPrimaries.toString().padStart(2,"0"),d=o.transferCharacteristics.toString().padStart(2,"0"),m=o.matrixCoefficients.toString().padStart(2,"0"),x=o.videoFullRangeFlag.toString().padStart(2,"0"),g=`vp09.${c}.${u}.${l}.${h}`;return g+=`.${f}.${d}.${m}.${x}`,g.endsWith(ix)&&(g=g.slice(0,-ix.length)),g}else if(e==="av1"){if(!a){let S=r.width*r.height,T=he(fr).level;for(let C of fr)if(S<=C.maxPictureSize){T=C.level;break}return`av01.0.${T.toString().padStart(2,"0")}M.08`}let c=a.profile,u=a.level.toString().padStart(2,"0"),l=a.tier?"H":"M",h=a.bitDepth.toString().padStart(2,"0"),f=a.monochrome?"1":"0",d=100*a.chromaSubsamplingX+10*a.chromaSubsamplingY+1*(a.chromaSubsamplingX&&a.chromaSubsamplingY?a.chromaSamplePosition:0),m=i?.primaries?yi[i.primaries]:1,x=i?.transfer?Ti[i.transfer]:1,g=i?.matrix?wi[i.matrix]:1,_=i?.fullRange?1:0,y=`av01.${c}.${u}${l}.${h}`;return y+=`.${f}.${d.toString().padStart(3,"0")}`,y+=`.${m.toString().padStart(2,"0")}`,y+=`.${x.toString().padStart(2,"0")}`,y+=`.${g.toString().padStart(2,"0")}`,y+=`.${_}`,y.endsWith(sx)&&(y=y.slice(0,-sx.length)),y}}throw new TypeError(`Unhandled codec '${e}'.`)},ax=(r,e,t)=>{if(r==="aac")return e>=2&&t<=24e3?"mp4a.40.29":t<=24e3?"mp4a.40.5":"mp4a.40.2";if(r==="mp3")return"mp3";if(r==="opus")return"opus";if(r==="vorbis")return"vorbis";if(r==="flac")return"flac";if(Re.includes(r))return r;throw new TypeError(`Unhandled codec '${r}'.`)},Nc=r=>{let{codec:e,codecDescription:t,aacCodecInfo:i}=r;if(e==="aac"){if(!i)throw new TypeError("AAC codec info must be provided.");return i.isMpeg2?"mp4a.67":`mp4a.40.${Hh(t).objectType}`}else{if(e==="mp3")return"mp3";if(e==="opus")return"opus";if(e==="vorbis")return"vorbis";if(e==="flac")return"flac";if(e&&Re.includes(e))return e}throw new TypeError(`Unhandled codec '${e}'.`)},Hh=r=>{if(!r||r.byteLength<2)throw new TypeError("AAC description must be at least 2 bytes long.");let e=new pt(r),t=e.readBits(5);t===31&&(t=32+e.readBits(6));let i=e.readBits(4),s=null;if(i===15)s=e.readBits(24);else{let a=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350];i<a.length&&(s=a[i])}let n=e.readBits(4),o=null;return n>=1&&n<=7&&(o={1:1,2:2,3:3,4:4,5:5,6:6,7:8}[n]),{objectType:t,frequencyIndex:i,sampleRate:s,channelConfiguration:n,numberOfChannels:o}},cx=48e3,ux=/^pcm-([usf])(\d+)+(be)?$/,gt=r=>{if(w(Re.includes(r)),r==="ulaw")return{dataType:"ulaw",sampleSize:1,littleEndian:!0,silentValue:255};if(r==="alaw")return{dataType:"alaw",sampleSize:1,littleEndian:!0,silentValue:213};let e=ux.exec(r);w(e);let t;e[1]==="u"?t="unsigned":e[1]==="s"?t="signed":t="float";let i=Number(e[2])/8,s=e[3]!=="be",n=r==="pcm-u8"?2**7:0;return{dataType:t,sampleSize:i,littleEndian:s,silentValue:n}},Wh=r=>r.startsWith("avc1")||r.startsWith("avc3")?"avc":r.startsWith("hev1")||r.startsWith("hvc1")?"hevc":r==="vp8"?"vp8":r.startsWith("vp09")?"vp9":r.startsWith("av01")?"av1":r.startsWith("mp4a.40")||r==="mp4a.67"?"aac":r==="mp3"||r==="mp4a.69"||r==="mp4a.6B"||r==="mp4a.6b"?"mp3":r==="opus"?"opus":r==="vorbis"?"vorbis":r==="flac"?"flac":r==="ulaw"?"ulaw":r==="alaw"?"alaw":ux.test(r)?r:r==="webvtt"?"webvtt":null,lx=r=>r==="avc"?{avc:{format:"avc"}}:r==="hevc"?{hevc:{format:"hevc"}}:{},hx=r=>r==="aac"?{aac:{format:"aac"}}:r==="opus"?{opus:{format:"opus"}}:{},vt=class{constructor(e){this._factor=e}_toVideoBitrate(e,t,i){let s=t*i,n={avc:1,hevc:.6,vp9:.6,av1:.4,vp8:1.2},o=1920*1080,a=3e6,c=Math.pow(s/o,.95),h=a*c*n[e]*this._factor;return Math.ceil(h/1e3)*1e3}_toAudioBitrate(e){if(Re.includes(e)||e==="flac")return;let i={aac:128e3,opus:64e3,mp3:16e4,vorbis:64e3}[e];if(!i)throw new Error(`Unhandled codec: ${e}`);let s=i*this._factor;return e==="aac"?s=[96e3,128e3,16e4,192e3].reduce((o,a)=>Math.abs(a-s)<Math.abs(o-s)?a:o):e==="opus"||e==="vorbis"?s=Math.max(6e3,s):e==="mp3"&&(s=[8e3,16e3,24e3,32e3,4e4,48e3,64e3,8e4,96e3,112e3,128e3,16e4,192e3,224e3,256e3,32e4].reduce((o,a)=>Math.abs(a-s)<Math.abs(o-s)?a:o)),Math.round(s/1e3)*1e3}},hO=new vt(.3),dO=new vt(.6),fO=new vt(1),mO=new vt(2),pO=new vt(4),ck=["avc1","avc3","hev1","hvc1","vp8","vp09","av01"],uk=/^(avc1|avc3)\.[0-9a-fA-F]{6}$/,lk=/^(hev1|hvc1)\.(?:[ABC]?\d+)\.[0-9a-fA-F]{1,8}\.[LH]\d+(?:\.[0-9a-fA-F]{1,2}){0,6}$/,hk=/^vp09(?:\.\d{2}){3}(?:(?:\.\d{2}){5})?$/,dk=/^av01\.\d\.\d{2}[MH]\.\d{2}(?:\.\d\.\d{3}\.\d{2}\.\d{2}\.\d{2}\.\d)?$/,dx=r=>{if(!r)throw new TypeError("Video chunk metadata must be provided.");if(typeof r!="object")throw new TypeError("Video chunk metadata must be an object.");if(!r.decoderConfig)throw new TypeError("Video chunk metadata must include a decoder configuration.");if(typeof r.decoderConfig!="object")throw new TypeError("Video chunk metadata decoder configuration must be an object.");if(typeof r.decoderConfig.codec!="string")throw new TypeError("Video chunk metadata decoder configuration must specify a codec string.");if(!ck.some(e=>r.decoderConfig.codec.startsWith(e)))throw new TypeError("Video chunk metadata decoder configuration codec string must be a valid video codec string as specified in the WebCodecs Codec Registry.");if(!Number.isInteger(r.decoderConfig.codedWidth)||r.decoderConfig.codedWidth<=0)throw new TypeError("Video chunk metadata decoder configuration must specify a valid codedWidth (positive integer).");if(!Number.isInteger(r.decoderConfig.codedHeight)||r.decoderConfig.codedHeight<=0)throw new TypeError("Video chunk metadata decoder configuration must specify a valid codedHeight (positive integer).");if(r.decoderConfig.description!==void 0&&!as(r.decoderConfig.description))throw new TypeError("Video chunk metadata decoder configuration description, when defined, must be an ArrayBuffer or an ArrayBuffer view.");if(r.decoderConfig.colorSpace!==void 0){let{colorSpace:e}=r.decoderConfig;if(typeof e!="object")throw new TypeError("Video chunk metadata decoder configuration colorSpace, when provided, must be an object.");let t=Object.keys(yi);if(e.primaries!=null&&!t.includes(e.primaries))throw new TypeError(`Video chunk metadata decoder configuration colorSpace primaries, when defined, must be one of ${t.join(", ")}.`);let i=Object.keys(Ti);if(e.transfer!=null&&!i.includes(e.transfer))throw new TypeError(`Video chunk metadata decoder configuration colorSpace transfer, when defined, must be one of ${i.join(", ")}.`);let s=Object.keys(wi);if(e.matrix!=null&&!s.includes(e.matrix))throw new TypeError(`Video chunk metadata decoder configuration colorSpace matrix, when defined, must be one of ${s.join(", ")}.`);if(e.fullRange!=null&&typeof e.fullRange!="boolean")throw new TypeError("Video chunk metadata decoder configuration colorSpace fullRange, when defined, must be a boolean.")}if(r.decoderConfig.codec.startsWith("avc1")||r.decoderConfig.codec.startsWith("avc3")){if(!uk.test(r.decoderConfig.codec))throw new TypeError("Video chunk metadata decoder configuration codec string for AVC must be a valid AVC codec string as specified in Section 3.4 of RFC 6381.")}else if(r.decoderConfig.codec.startsWith("hev1")||r.decoderConfig.codec.startsWith("hvc1")){if(!lk.test(r.decoderConfig.codec))throw new TypeError("Video chunk metadata decoder configuration codec string for HEVC must be a valid HEVC codec string as specified in Section E.3 of ISO 14496-15.")}else if(r.decoderConfig.codec.startsWith("vp8")){if(r.decoderConfig.codec!=="vp8")throw new TypeError('Video chunk metadata decoder configuration codec string for VP8 must be "vp8".')}else if(r.decoderConfig.codec.startsWith("vp09")){if(!hk.test(r.decoderConfig.codec))throw new TypeError('Video chunk metadata decoder configuration codec string for VP9 must be a valid VP9 codec string as specified in Section "Codecs Parameter String" of https://www.webmproject.org/vp9/mp4/.')}else if(r.decoderConfig.codec.startsWith("av01")&&!dk.test(r.decoderConfig.codec))throw new TypeError('Video chunk metadata decoder configuration codec string for AV1 must be a valid AV1 codec string as specified in Section "Codecs Parameter String" of https://aomediacodec.github.io/av1-isobmff/.')},fk=["mp4a","mp3","opus","vorbis","flac","ulaw","alaw","pcm"],fx=r=>{if(!r)throw new TypeError("Audio chunk metadata must be provided.");if(typeof r!="object")throw new TypeError("Audio chunk metadata must be an object.");if(!r.decoderConfig)throw new TypeError("Audio chunk metadata must include a decoder configuration.");if(typeof r.decoderConfig!="object")throw new TypeError("Audio chunk metadata decoder configuration must be an object.");if(typeof r.decoderConfig.codec!="string")throw new TypeError("Audio chunk metadata decoder configuration must specify a codec string.");if(!fk.some(e=>r.decoderConfig.codec.startsWith(e)))throw new TypeError("Audio chunk metadata decoder configuration codec string must be a valid audio codec string as specified in the WebCodecs Codec Registry.");if(!Number.isInteger(r.decoderConfig.sampleRate)||r.decoderConfig.sampleRate<=0)throw new TypeError("Audio chunk metadata decoder configuration must specify a valid sampleRate (positive integer).");if(!Number.isInteger(r.decoderConfig.numberOfChannels)||r.decoderConfig.numberOfChannels<=0)throw new TypeError("Audio chunk metadata decoder configuration must specify a valid numberOfChannels (positive integer).");if(r.decoderConfig.description!==void 0&&!as(r.decoderConfig.description))throw new TypeError("Audio chunk metadata decoder configuration description, when defined, must be an ArrayBuffer or an ArrayBuffer view.");if(r.decoderConfig.codec.startsWith("mp4a")&&r.decoderConfig.codec!=="mp4a.69"&&r.decoderConfig.codec!=="mp4a.6B"&&r.decoderConfig.codec!=="mp4a.6b"){if(!["mp4a.40.2","mp4a.40.02","mp4a.40.5","mp4a.40.05","mp4a.40.29","mp4a.67"].includes(r.decoderConfig.codec))throw new TypeError("Audio chunk metadata decoder configuration codec string for AAC must be a valid AAC codec string as specified in https://www.w3.org/TR/webcodecs-aac-codec-registration/.");if(!r.decoderConfig.description)throw new TypeError("Audio chunk metadata decoder configuration for AAC must include a description, which is expected to be an AudioSpecificConfig as specified in ISO 14496-3.")}else if(r.decoderConfig.codec.startsWith("mp3")||r.decoderConfig.codec.startsWith("mp4a")){if(r.decoderConfig.codec!=="mp3"&&r.decoderConfig.codec!=="mp4a.69"&&r.decoderConfig.codec!=="mp4a.6B"&&r.decoderConfig.codec!=="mp4a.6b")throw new TypeError('Audio chunk metadata decoder configuration codec string for MP3 must be "mp3", "mp4a.69" or "mp4a.6B".')}else if(r.decoderConfig.codec.startsWith("opus")){if(r.decoderConfig.codec!=="opus")throw new TypeError('Audio chunk metadata decoder configuration codec string for Opus must be "opus".');if(r.decoderConfig.description&&r.decoderConfig.description.byteLength<18)throw new TypeError("Audio chunk metadata decoder configuration description, when specified, is expected to be an Identification Header as specified in Section 5.1 of RFC 7845.")}else if(r.decoderConfig.codec.startsWith("vorbis")){if(r.decoderConfig.codec!=="vorbis")throw new TypeError('Audio chunk metadata decoder configuration codec string for Vorbis must be "vorbis".');if(!r.decoderConfig.description)throw new TypeError("Audio chunk metadata decoder configuration for Vorbis must include a description, which is expected to adhere to the format described in https://www.w3.org/TR/webcodecs-vorbis-codec-registration/.")}else if(r.decoderConfig.codec.startsWith("flac")){if(r.decoderConfig.codec!=="flac")throw new TypeError('Audio chunk metadata decoder configuration codec string for FLAC must be "flac".');if(!r.decoderConfig.description||r.decoderConfig.description.byteLength<42)throw new TypeError("Audio chunk metadata decoder configuration for FLAC must include a description, which is expected to adhere to the format described in https://www.w3.org/TR/webcodecs-flac-codec-registration/.")}else if((r.decoderConfig.codec.startsWith("pcm")||r.decoderConfig.codec.startsWith("ulaw")||r.decoderConfig.codec.startsWith("alaw"))&&!Re.includes(r.decoderConfig.codec))throw new TypeError(`Audio chunk metadata decoder configuration codec string for PCM must be one of the supported PCM codecs (${Re.join(", ")}).`)},mx=r=>{if(!r)throw new TypeError("Subtitle metadata must be provided.");if(typeof r!="object")throw new TypeError("Subtitle metadata must be an object.");if(!r.config)throw new TypeError("Subtitle metadata must include a config object.");if(typeof r.config!="object")throw new TypeError("Subtitle metadata config must be an object.");if(typeof r.config.description!="string")throw new TypeError("Subtitle metadata config description must be a string.")};var $h=/<(?:(\d{2}):)?(\d{2}):(\d{2}).(\d{3})>/g;var px=r=>{let e=Math.floor(r/36e5),t=Math.floor(r%(60*60*1e3)/(60*1e3)),i=Math.floor(r%(60*1e3)/1e3),s=r%1e3;return e.toString().padStart(2,"0")+":"+t.toString().padStart(2,"0")+":"+i.toString().padStart(2,"0")+"."+s.toString().padStart(3,"0")};var Xh=r=>{let e=[],t=0;for(;t<r.length;){let i=-1,s=0;for(let n=t;n<r.length-3;n++){if(r[n]===0&&r[n+1]===0&&r[n+2]===1){i=n,s=3;break}if(n<r.length-4&&r[n]===0&&r[n+1]===0&&r[n+2]===0&&r[n+3]===1){i=n,s=4;break}}if(i===-1)break;if(t>0&&i>t){let n=r.subarray(t,i);n.length>0&&e.push(n)}t=i+s}if(t<r.length){let i=r.subarray(t);i.length>0&&e.push(i)}return e},jh=r=>{let e=[],t=r.length;for(let i=0;i<t;i++)i+2<t&&r[i]===0&&r[i+1]===0&&r[i+2]===3?(e.push(0,0),i+=2):e.push(r[i]);return new Uint8Array(e)},yx=r=>{let t=Xh(r);if(t.length===0)return null;let i=0;for(let a of t)i+=4+a.byteLength;let s=new Uint8Array(i),n=new DataView(s.buffer),o=0;for(let a of t){let c=a.byteLength;n.setUint32(o,c,!1),o+=4,s.set(a,o),o+=a.byteLength}return s},qh=r=>r[0]&31,Lc=r=>{try{let e=Xh(r),t=e.filter(f=>qh(f)===7),i=e.filter(f=>qh(f)===8),s=e.filter(f=>qh(f)===13);if(t.length===0||i.length===0)return null;let n=t[0],o=new pt(jh(n));if(o.skipBits(1),o.skipBits(2),o.readBits(5)!==7)return console.error("Invalid SPS NAL unit type"),null;let c=o.readAlignedByte(),u=o.readAlignedByte(),l=o.readAlignedByte(),h={configurationVersion:1,avcProfileIndication:c,profileCompatibility:u,avcLevelIndication:l,lengthSizeMinusOne:3,sequenceParameterSets:t,pictureParameterSets:i,chromaFormat:null,bitDepthLumaMinus8:null,bitDepthChromaMinus8:null,sequenceParameterSetExt:null};if(c===100||c===110||c===122||c===144){L(o);let f=L(o);f===3&&o.skipBits(1);let d=L(o),m=L(o);h.chromaFormat=f,h.bitDepthLumaMinus8=d,h.bitDepthChromaMinus8=m,h.sequenceParameterSetExt=s}return h}catch(e){return console.error("Error building AVC Decoder Configuration Record:",e),null}},Tx=r=>{let e=[];e.push(r.configurationVersion),e.push(r.avcProfileIndication),e.push(r.profileCompatibility),e.push(r.avcLevelIndication),e.push(252|r.lengthSizeMinusOne&3),e.push(224|r.sequenceParameterSets.length&31);for(let t of r.sequenceParameterSets){let i=t.byteLength;e.push(i>>8),e.push(i&255);for(let s=0;s<i;s++)e.push(t[s])}e.push(r.pictureParameterSets.length);for(let t of r.pictureParameterSets){let i=t.byteLength;e.push(i>>8),e.push(i&255);for(let s=0;s<i;s++)e.push(t[s])}if(r.avcProfileIndication===100||r.avcProfileIndication===110||r.avcProfileIndication===122||r.avcProfileIndication===144){w(r.chromaFormat!==null),w(r.bitDepthLumaMinus8!==null),w(r.bitDepthChromaMinus8!==null),w(r.sequenceParameterSetExt!==null),e.push(252|r.chromaFormat&3),e.push(248|r.bitDepthLumaMinus8&7),e.push(248|r.bitDepthChromaMinus8&7),e.push(r.sequenceParameterSetExt.length);for(let t of r.sequenceParameterSetExt){let i=t.byteLength;e.push(i>>8),e.push(i&255);for(let s=0;s<i;s++)e.push(t[s])}}return new Uint8Array(e)},gx=32,xx=33,_x=34,mk=39,pk=40,hs=r=>r[0]>>1&63,zc=r=>{try{let e=Xh(r),t=e.filter(P=>hs(P)===gx),i=e.filter(P=>hs(P)===xx),s=e.filter(P=>hs(P)===_x),n=e.filter(P=>hs(P)===mk||hs(P)===pk);if(i.length===0||s.length===0)return null;let o=i[0],a=new pt(jh(o));a.skipBits(16),a.readBits(4);let c=a.readBits(3),u=a.readBits(1),{general_profile_space:l,general_tier_flag:h,general_profile_idc:f,general_profile_compatibility_flags:d,general_constraint_indicator_flags:m,general_level_idc:x}=gk(a,c);L(a);let g=L(a);g===3&&a.skipBits(1),L(a),L(a),a.readBits(1)&&(L(a),L(a),L(a),L(a));let _=L(a),y=L(a);L(a);let T=a.readBits(1)?0:c;for(let P=T;P<=c;P++)L(a),L(a),L(a);L(a),L(a),L(a),L(a),L(a),L(a),a.readBits(1)&&a.readBits(1)&&xk(a),a.skipBits(1),a.skipBits(1),a.readBits(1)&&(a.skipBits(4),a.skipBits(4),L(a),L(a),a.skipBits(1));let C=L(a);if(_k(a,C),a.readBits(1)){let P=L(a);for(let k=0;k<P;k++)L(a),a.skipBits(1)}a.skipBits(1),a.skipBits(1);let v=0;a.readBits(1)&&(v=yk(a,c));let E=0;if(s.length>0){let P=s[0],k=new pt(jh(P));k.skipBits(16),L(k),L(k),k.skipBits(1),k.skipBits(1),k.skipBits(3),k.skipBits(1),k.skipBits(1),L(k),L(k),os(k),k.skipBits(1),k.skipBits(1),k.readBits(1)&&L(k),os(k),os(k),k.skipBits(1),k.skipBits(1),k.skipBits(1),k.skipBits(1);let G=k.readBits(1),j=k.readBits(1);!G&&!j?E=0:G&&!j?E=2:!G&&j?E=3:E=0}let D=[...t.length?[{arrayCompleteness:1,nalUnitType:gx,nalUnits:t}]:[],...i.length?[{arrayCompleteness:1,nalUnitType:xx,nalUnits:i}]:[],...s.length?[{arrayCompleteness:1,nalUnitType:_x,nalUnits:s}]:[],...n.length?[{arrayCompleteness:1,nalUnitType:hs(n[0]),nalUnits:n}]:[]];return{configurationVersion:1,generalProfileSpace:l,generalTierFlag:h,generalProfileIdc:f,generalProfileCompatibilityFlags:d,generalConstraintIndicatorFlags:m,generalLevelIdc:x,minSpatialSegmentationIdc:v,parallelismType:E,chromaFormatIdc:g,bitDepthLumaMinus8:_,bitDepthChromaMinus8:y,avgFrameRate:0,constantFrameRate:0,numTemporalLayers:c+1,temporalIdNested:u,lengthSizeMinusOne:3,arrays:D}}catch(e){return console.error("Error building HEVC Decoder Configuration Record:",e),null}},gk=(r,e)=>{let t=r.readBits(2),i=r.readBits(1),s=r.readBits(5),n=0;for(let l=0;l<32;l++)n=n<<1|r.readBits(1);let o=new Uint8Array(6);for(let l=0;l<6;l++)o[l]=r.readBits(8);let a=r.readBits(8),c=[],u=[];for(let l=0;l<e;l++)c.push(r.readBits(1)),u.push(r.readBits(1));if(e>0)for(let l=e;l<8;l++)r.skipBits(2);for(let l=0;l<e;l++)c[l]&&r.skipBits(88),u[l]&&r.skipBits(8);return{general_profile_space:t,general_tier_flag:i,general_profile_idc:s,general_profile_compatibility_flags:n,general_constraint_indicator_flags:o,general_level_idc:a}},xk=r=>{for(let e=0;e<4;e++)for(let t=0;t<(e===3?2:6);t++)if(!r.readBits(1))L(r);else{let s=Math.min(64,1<<4+(e<<1));e>1&&os(r);for(let n=0;n<s;n++)os(r)}},_k=(r,e)=>{let t=[];for(let i=0;i<e;i++)t[i]=bk(r,i,e,t)},bk=(r,e,t,i)=>{let s=0,n=0,o=0;if(e!==0&&(n=r.readBits(1)),n){if(e===t){let c=L(r);o=e-(c+1)}else o=e-1;r.readBits(1),L(r);let a=i[o]??0;for(let c=0;c<=a;c++)r.readBits(1)||r.readBits(1);s=i[o]}else{let a=L(r),c=L(r);for(let u=0;u<a;u++)L(r),r.readBits(1);for(let u=0;u<c;u++)L(r),r.readBits(1);s=a+c}return s},yk=(r,e)=>{if(r.readBits(1)&&r.readBits(8)===255&&(r.readBits(16),r.readBits(16)),r.readBits(1)&&r.readBits(1),r.readBits(1)&&(r.readBits(3),r.readBits(1),r.readBits(1)&&(r.readBits(8),r.readBits(8),r.readBits(8))),r.readBits(1)&&(L(r),L(r)),r.readBits(1),r.readBits(1),r.readBits(1),r.readBits(1)&&(L(r),L(r),L(r),L(r)),r.readBits(1)&&(r.readBits(32),r.readBits(32),r.readBits(1)&&L(r),r.readBits(1)&&Tk(r,!0,e)),r.readBits(1)){r.readBits(1),r.readBits(1),r.readBits(1);let t=L(r);return L(r),L(r),L(r),L(r),t}return 0},Tk=(r,e,t)=>{let i=!1,s=!1,n=!1;e&&(i=r.readBits(1)===1,s=r.readBits(1)===1,(i||s)&&(n=r.readBits(1)===1,n&&(r.readBits(8),r.readBits(5),r.readBits(1),r.readBits(5)),r.readBits(4),r.readBits(4),n&&r.readBits(4),r.readBits(5),r.readBits(5),r.readBits(5)));for(let o=0;o<=t;o++){let a=r.readBits(1)===1,c=!0;a||(c=r.readBits(1)===1);let u=!1;c?L(r):u=r.readBits(1)===1;let l=1;u||(l=L(r)+1),i&&bx(r,l,n),s&&bx(r,l,n)}},bx=(r,e,t)=>{for(let i=0;i<e;i++)L(r),L(r),t&&(L(r),L(r)),r.readBits(1)},wx=r=>{let e=[];e.push(r.configurationVersion),e.push((r.generalProfileSpace&3)<<6|(r.generalTierFlag&1)<<5|r.generalProfileIdc&31),e.push(r.generalProfileCompatibilityFlags>>>24&255),e.push(r.generalProfileCompatibilityFlags>>>16&255),e.push(r.generalProfileCompatibilityFlags>>>8&255),e.push(r.generalProfileCompatibilityFlags&255),e.push(...r.generalConstraintIndicatorFlags),e.push(r.generalLevelIdc&255),e.push(240|r.minSpatialSegmentationIdc>>8&15),e.push(r.minSpatialSegmentationIdc&255),e.push(252|r.parallelismType&3),e.push(252|r.chromaFormatIdc&3),e.push(248|r.bitDepthLumaMinus8&7),e.push(248|r.bitDepthChromaMinus8&7),e.push(r.avgFrameRate>>8&255),e.push(r.avgFrameRate&255),e.push((r.constantFrameRate&3)<<6|(r.numTemporalLayers&7)<<3|(r.temporalIdNested&1)<<2|r.lengthSizeMinusOne&3),e.push(r.arrays.length&255);for(let t of r.arrays){e.push((t.arrayCompleteness&1)<<7|0|t.nalUnitType&63),e.push(t.nalUnits.length>>8&255),e.push(t.nalUnits.length&255);for(let i of t.nalUnits){e.push(i.length>>8&255),e.push(i.length&255);for(let s=0;s<i.length;s++)e.push(i[s])}}return new Uint8Array(e)},Vc=r=>{let e=r[r.length-1];if(e&&(e&224)===192){let E=((e&24)>>3)+1,A=2+((e&7)+1)*E;if(r[r.length-A]!==e)return null;let P=0,k=r.length-A+1;for(let G=0;G<E;G++){if(!r[k+G])return null;P|=r[k+G]<<8*G}r=r.subarray(0,P)}let t=new pt(r);if(t.readBits(2)!==2)return null;let s=t.readBits(1),o=(t.readBits(1)<<1)+s;if(o===3&&t.skipBits(1),t.readBits(1)===1||t.readBits(1)!==0||(t.skipBits(2),t.readBits(24)!==4817730))return null;let l=8;o>=2&&(l=t.readBits(1)?12:10);let h=t.readBits(3),f=0,d=0;if(h!==7)if(d=t.readBits(1),o===1||o===3){let D=t.readBits(1),A=t.readBits(1);f=!D&&!A?3:D&&!A?2:1,t.skipBits(1)}else f=1;else f=3,d=1;let m=t.readBits(16),x=t.readBits(16),g=m+1,_=x+1,y=g*_,S=he(fr).level;for(let E of fr)if(y<=E.maxPictureSize){S=E.level;break}return{profile:o,level:S,bitDepth:l,chromaSubsampling:f,videoFullRangeFlag:d,colourPrimaries:h===2?1:h===1?6:2,transferCharacteristics:h===2?1:h===1?6:2,matrixCoefficients:h===7?0:h===2?1:h===1?6:2}},Hc=r=>{let e=new pt(r),t=()=>{let i=0;for(let s=0;s<8;s++){let n=e.readAlignedByte();if(n===void 0)return 0;if(i|=(n&127)<<s*7,!(n&128))break;if(s===7&&n&128)return null}return i>=2**32-1?null:i};for(;e.getBitsLeft()>=8;){let i=e.readBits(8),s=i>>3&15,n=i>>2&1,o=i>>1&1;n&&e.skipBits(8);let a;if(o){let c=t();if(c===null)return null;a=c}else a=Math.floor(e.getBitsLeft()/8);if(s===1){let c=e.readBits(3),u=e.readBits(1),l=e.readBits(1),h=0,f=0,d=0;if(l)h=e.readBits(5);else{if(e.readBits(1)&&(e.skipBits(32),e.skipBits(32),e.readBits(1)))return null;let C=e.readBits(1);C&&(d=e.readBits(5),e.skipBits(32),e.skipBits(5),e.skipBits(5));let v=e.readBits(5);for(let E=0;E<=v;E++){e.skipBits(12);let D=e.readBits(5);if(E===0&&(h=D),D>7){let P=e.readBits(1);E===0&&(f=P)}if(C&&e.readBits(1)){let k=d+1;e.skipBits(k),e.skipBits(k),e.skipBits(1)}e.readBits(1)&&e.skipBits(4)}}let m=e.readBits(1),x=8;c===2&&m?x=e.readBits(1)?12:10:c<=2&&(x=m?10:8);let g=0;c!==1&&(g=e.readBits(1));let _=1,y=1,S=0;return g||(c===0?(_=1,y=1):c===1?(_=0,y=0):x===12&&(_=e.readBits(1),_&&(y=e.readBits(1))),_&&y&&(S=e.readBits(2))),{profile:c,level:h,tier:f,bitDepth:x,monochrome:g,chromaSubsamplingX:_,chromaSubsamplingY:y,chromaSamplePosition:S}}e.skipBits(a*8)}return null},Wc=r=>{let e=St(r),t=e.getUint8(9),i=e.getUint16(10,!0),s=e.getUint32(12,!0),n=e.getInt16(16,!0),o=e.getUint8(18),a=null;return o&&(a=r.subarray(19,21+t)),{outputChannelCount:t,preSkip:i,inputSampleRate:s,outputGain:n,channelMappingFamily:o,channelMappingTable:a}},wk=[480,960,1920,2880,480,960,1920,2880,480,960,1920,2880,480,960,480,960,120,240,480,960,120,240,480,960,120,240,480,960,120,240,480,960],Sx=r=>{let e=r[0]>>3;return{durationInSamples:wk[e]}},vx=r=>{if(r.length<7)throw new Error("Setup header is too short.");if(r[0]!==5)throw new Error("Wrong packet type in Setup header.");if(String.fromCharCode(...r.slice(1,7))!=="vorbis")throw new Error("Invalid packet signature in Setup header.");let t=r.length,i=new Uint8Array(t);for(let h=0;h<t;h++)i[h]=r[t-1-h];let s=new pt(i),n=0;for(;s.getBitsLeft()>97;)if(s.readBits(1)===1){n=s.pos;break}if(n===0)throw new Error("Invalid Setup header: framing bit not found.");let o=0,a=!1,c=0;for(;s.getBitsLeft()>=97;){let h=s.pos,f=s.readBits(8),d=s.readBits(16),m=s.readBits(16);if(f>63||d!==0||m!==0){s.pos=h;break}if(s.skipBits(1),o++,o>64)break;s.clone().readBits(6)+1===o&&(a=!0,c=o)}if(!a)throw new Error("Invalid Setup header: mode header not found.");if(c>63)throw new Error(`Unsupported mode count: ${c}.`);let u=c;s.pos=0,s.skipBits(n);let l=Array(u).fill(0);for(let h=u-1;h>=0;h--)s.skipBits(40),l[h]=s.readBits(1);return{modeBlockflags:l}};var Nn=class{constructor(e){this.writer=e,this.helper=new Uint8Array(8),this.helperView=new DataView(this.helper.buffer),this.offsets=new WeakMap}writeU32(e){this.helperView.setUint32(0,e,!1),this.writer.write(this.helper.subarray(0,4))}writeU64(e){this.helperView.setUint32(0,Math.floor(e/2**32),!1),this.helperView.setUint32(4,e,!1),this.writer.write(this.helper.subarray(0,8))}writeAscii(e){for(let t=0;t<e.length;t++)this.helperView.setUint8(t%8,e.charCodeAt(t)),t%8===7&&this.writer.write(this.helper);e.length%8!==0&&this.writer.write(this.helper.subarray(0,e.length%8))}writeBox(e){if(this.offsets.set(e,this.writer.getPos()),e.contents&&!e.children)this.writeBoxHeader(e,e.size??e.contents.byteLength+8),this.writer.write(e.contents);else{let t=this.writer.getPos();if(this.writeBoxHeader(e,0),e.contents&&this.writer.write(e.contents),e.children)for(let n of e.children)n&&this.writeBox(n);let i=this.writer.getPos(),s=e.size??i-t;this.writer.seek(t),this.writeBoxHeader(e,s),this.writer.seek(i)}}writeBoxHeader(e,t){this.writeU32(e.largeSize?1:t),this.writeAscii(e.type),e.largeSize&&this.writeU64(t)}measureBoxHeader(e){return 8+(e.largeSize?8:0)}patchBox(e){let t=this.offsets.get(e);w(t!==void 0);let i=this.writer.getPos();this.writer.seek(t),this.writeBox(e),this.writer.seek(i)}measureBox(e){if(e.contents&&!e.children)return this.measureBoxHeader(e)+e.contents.byteLength;{let t=this.measureBoxHeader(e);if(e.contents&&(t+=e.contents.byteLength),e.children)for(let i of e.children)i&&(t+=this.measureBox(i));return t}}},re=new Uint8Array(8),Wt=new DataView(re.buffer),ve=r=>[(r%256+256)%256],X=r=>(Wt.setUint16(0,r,!1),[re[0],re[1]]),Ex=r=>(Wt.setInt16(0,r,!1),[re[0],re[1]]),kx=r=>(Wt.setUint32(0,r,!1),[re[1],re[2],re[3]]),F=r=>(Wt.setUint32(0,r,!1),[re[0],re[1],re[2],re[3]]),Vr=r=>(Wt.setInt32(0,r,!1),[re[0],re[1],re[2],re[3]]),Si=r=>(Wt.setUint32(0,Math.floor(r/2**32),!1),Wt.setUint32(4,r,!1),[re[0],re[1],re[2],re[3],re[4],re[5],re[6],re[7]]),Ax=r=>(Wt.setInt16(0,2**8*r,!1),[re[0],re[1]]),pr=r=>(Wt.setInt32(0,2**16*r,!1),[re[0],re[1],re[2],re[3]]),Yh=r=>(Wt.setInt32(0,2**30*r,!1),[re[0],re[1],re[2],re[3]]),Kh=(r,e)=>{let t=[],i=r;do{let s=i&127;i>>=7,t.length>0&&(s|=128),t.push(s),e!==void 0&&e--}while(i>0||e);return t.reverse()},Qe=(r,e=!1)=>{let t=Array(r.length).fill(null).map((i,s)=>r.charCodeAt(s));return e&&t.push(0),t},Zh=r=>{let e=null;for(let t of r)(!e||t.timestamp>e.timestamp)&&(e=t);return e},Px=r=>{let e=r*(Math.PI/180),t=Math.round(Math.cos(e)),i=Math.round(Math.sin(e));return[t,i,0,-i,t,0,0,0,1]},Bx=Px(0),Rx=r=>[pr(r[0]),pr(r[1]),Yh(r[2]),pr(r[3]),pr(r[4]),Yh(r[5]),pr(r[6]),pr(r[7]),Yh(r[8])],ee=(r,e,t)=>({type:r,contents:e&&new Uint8Array(e.flat(10)),children:t}),ne=(r,e,t,i,s)=>ee(r,[ve(e),kx(t),i??[]],s),Dx=r=>r.isQuickTime?ee("ftyp",[Qe("qt "),F(512),Qe("qt ")]):r.fragmented?ee("ftyp",[Qe("iso5"),F(512),Qe("iso5"),Qe("iso6"),Qe("mp41")]):ee("ftyp",[Qe("isom"),F(512),Qe("isom"),r.holdsAvc?Qe("avc1"):[],Qe("mp41")]),qc=r=>({type:"mdat",largeSize:r}),Ln=(r,e,t=!1)=>ee("moov",void 0,[Sk(e,r),...r.map(i=>vk(i,e)),t?oA(r):null]),Sk=(r,e)=>{let t=Fe(Math.max(0,...e.filter(o=>o.samples.length>0).map(o=>{let a=Zh(o.samples);return a.timestamp+a.duration})),$c),i=Math.max(0,...e.map(o=>o.track.id))+1,s=!_i(r)||!_i(t),n=s?Si:F;return ne("mvhd",+s,0,[n(r),n(r),F($c),n(t),pr(1),Ax(1),Array(10).fill(0),Rx(Bx),Array(24).fill(0),F(i)])},vk=(r,e)=>ee("trak",void 0,[Ck(r,e),Ek(r,e)]),Ck=(r,e)=>{let t=Zh(r.samples),i=Fe(t?t.timestamp+t.duration:0,$c),s=!_i(e)||!_i(i),n=s?Si:F,o;if(r.type==="video"){let a=r.track.metadata.rotation;o=Px(a??0)}else o=Bx;return ne("tkhd",+s,3,[n(e),n(e),F(r.track.id),F(0),n(i),Array(8).fill(0),X(0),X(r.track.id),Ax(r.type==="audio"?1:0),X(0),Rx(o),pr(r.type==="video"?r.info.width:0),pr(r.type==="video"?r.info.height:0)])},Ek=(r,e)=>ee("mdia",void 0,[kk(r,e),Bk(r),Rk(r)]),kk=(r,e)=>{let t=Zh(r.samples),i=Fe(t?t.timestamp+t.duration:0,r.timescale),s=!_i(e)||!_i(i),n=s?Si:F,o=0;for(let a of r.track.metadata.languageCode??nt)o<<=5,o+=a.charCodeAt(0)-96;return ne("mdhd",+s,0,[n(e),n(e),F(r.timescale),n(i),X(o),X(0)])},Ak={video:"vide",audio:"soun",subtitle:"text"},Pk={video:"MediabunnyVideoHandler",audio:"MediabunnySoundHandler",subtitle:"MediabunnyTextHandler"},Bk=r=>ne("hdlr",0,0,[Qe("mhlr"),Qe(Ak[r.type]),F(0),F(0),F(0),Qe(Pk[r.type],!0)]),Rk=r=>ee("minf",void 0,[Fk[r.type](),Uk(),Nk(r)]),Dk=()=>ne("vmhd",0,1,[X(0),X(0),X(0),X(0)]),Mk=()=>ne("smhd",0,0,[X(0),X(0)]),Ik=()=>ne("nmhd",0,0),Fk={video:Dk,audio:Mk,subtitle:Ik},Uk=()=>ee("dinf",void 0,[Ok()]),Ok=()=>ne("dref",0,0,[F(1)],[Gk()]),Gk=()=>ne("url ",0,1),Nk=r=>{let e=r.compositionTimeOffsetTable.length>1||r.compositionTimeOffsetTable.some(t=>t.sampleCompositionTimeOffset!==0);return ee("stbl",void 0,[Lk(r),Jk(r),e?sA(r):null,e?nA(r):null,tA(r),rA(r),iA(r),eA(r)])},Lk=r=>{let e;if(r.type==="video")e=zk(pA[r.track.source._codec],r);else if(r.type==="audio"){let t=Gx(r.track.source._codec,r.muxer.isQuickTime);w(t),e=qk(t,r)}else r.type==="subtitle"&&(e=Qk(_A[r.track.source._codec],r));return w(e),ne("stsd",0,0,[F(1)],[e])},zk=(r,e)=>ee(r,[Array(6).fill(0),X(1),X(0),X(0),Array(12).fill(0),X(e.info.width),X(e.info.height),F(4718592),F(4718592),F(0),X(1),Array(32).fill(0),X(24),Ex(65535)],[gA[e.track.source._codec](e),Hg(e.info.decoderConfig.colorSpace)?Vk(e):null]),Vk=r=>ee("colr",[Qe("nclx"),X(yi[r.info.decoderConfig.colorSpace.primaries]),X(Ti[r.info.decoderConfig.colorSpace.transfer]),X(wi[r.info.decoderConfig.colorSpace.matrix]),ve((r.info.decoderConfig.colorSpace.fullRange?1:0)<<7)]),Hk=r=>r.info.decoderConfig&&ee("avcC",[...zt(r.info.decoderConfig.description)]),Wk=r=>r.info.decoderConfig&&ee("hvcC",[...zt(r.info.decoderConfig.description)]),Cx=r=>{if(!r.info.decoderConfig)return null;let e=r.info.decoderConfig,t=e.codec.split("."),i=Number(t[1]),s=Number(t[2]),n=Number(t[3]),o=t[4]?Number(t[4]):1,a=t[8]?Number(t[8]):Number(e.colorSpace?.fullRange??0),c=(n<<4)+(o<<1)+a,u=t[5]?Number(t[5]):e.colorSpace?.primaries?yi[e.colorSpace.primaries]:2,l=t[6]?Number(t[6]):e.colorSpace?.transfer?Ti[e.colorSpace.transfer]:2,h=t[7]?Number(t[7]):e.colorSpace?.matrix?wi[e.colorSpace.matrix]:2;return ne("vpcC",1,0,[ve(i),ve(s),ve(c),ve(u),ve(l),ve(h),X(0)])},$k=r=>ee("av1C",ox(r.info.decoderConfig.codec)),qk=(r,e)=>{let t=0,i,s=16;if(Re.includes(e.track.source._codec)){let n=e.track.source._codec,{sampleSize:o}=gt(n);s=8*o,s>16&&(t=1)}return t===0?i=[Array(6).fill(0),X(1),X(t),X(0),F(0),X(e.info.numberOfChannels),X(s),X(0),X(0),X(e.info.sampleRate<2**16?e.info.sampleRate:0),X(0)]:i=[Array(6).fill(0),X(1),X(t),X(0),F(0),X(e.info.numberOfChannels),X(Math.min(s,16)),X(0),X(0),X(e.info.sampleRate<2**16?e.info.sampleRate:0),X(0),F(1),F(s/8),F(e.info.numberOfChannels*s/8),F(2)],ee(r,i,[xA(e.track.source._codec,e.muxer.isQuickTime)?.(e)??null])},Qh=r=>{let e;switch(r.track.source._codec){case"aac":e=64;break;case"mp3":e=107;break;case"vorbis":e=221;break;default:throw new Error(`Unhandled audio codec: ${r.track.source._codec}`)}let t=[...ve(e),...ve(21),...kx(0),...F(0),...F(0)];if(r.info.decoderConfig.description){let i=zt(r.info.decoderConfig.description);t=[...t,...ve(5),...Kh(i.byteLength),...i]}return t=[...X(1),...ve(0),...ve(4),...Kh(t.length),...t,...ve(6),...ve(1),...ve(2)],t=[...ve(3),...Kh(t.length),...t],ne("esds",0,0,t)},zr=r=>ee("wave",void 0,[jk(r),Xk(r),ee("\0\0\0\0")]),jk=r=>ee("frma",[Qe(Gx(r.track.source._codec,r.muxer.isQuickTime))]),Xk=r=>{let{littleEndian:e}=gt(r.track.source._codec);return ee("enda",[X(+e)])},Yk=r=>{let e=r.info.numberOfChannels,t=3840,i=r.info.sampleRate,s=0,n=0,o=new Uint8Array(0),a=r.info.decoderConfig?.description;if(a){w(a.byteLength>=18);let c=zt(a),u=Wc(c);e=u.outputChannelCount,t=u.preSkip,i=u.inputSampleRate,s=u.outputGain,n=u.channelMappingFamily,u.channelMappingTable&&(o=u.channelMappingTable)}return ee("dOps",[ve(0),ve(e),X(t),F(i),Ex(s),ve(n),...o])},Kk=r=>{let e=r.info.decoderConfig?.description;w(e);let t=zt(e);return ne("dfLa",0,0,[...t.subarray(4)])},Ht=r=>{let{littleEndian:e,sampleSize:t}=gt(r.track.source._codec),i=+e;return ne("pcmC",0,0,[ve(i),ve(8*t)])},Qk=(r,e)=>ee(r,[Array(6).fill(0),X(1)],[bA[e.track.source._codec](e)]),Zk=r=>ee("vttC",[...bi.encode(r.info.config.description)]);var Jk=r=>ne("stts",0,0,[F(r.timeToSampleTable.length),r.timeToSampleTable.map(e=>[F(e.sampleCount),F(e.sampleDelta)])]),eA=r=>{if(r.samples.every(t=>t.type==="key"))return null;let e=[...r.samples.entries()].filter(([,t])=>t.type==="key");return ne("stss",0,0,[F(e.length),e.map(([t])=>F(t+1))])},tA=r=>ne("stsc",0,0,[F(r.compactlyCodedChunkTable.length),r.compactlyCodedChunkTable.map(e=>[F(e.firstChunk),F(e.samplesPerChunk),F(1)])]),rA=r=>{if(r.type==="audio"&&r.info.requiresPcmTransformation){let{sampleSize:e}=gt(r.track.source._codec);return ne("stsz",0,0,[F(e*r.info.numberOfChannels),F(r.samples.reduce((t,i)=>t+Fe(i.duration,r.timescale),0))])}return ne("stsz",0,0,[F(0),F(r.samples.length),r.samples.map(e=>F(e.size))])},iA=r=>r.finalizedChunks.length>0&&he(r.finalizedChunks).offset>=2**32?ne("co64",0,0,[F(r.finalizedChunks.length),r.finalizedChunks.map(e=>Si(e.offset))]):ne("stco",0,0,[F(r.finalizedChunks.length),r.finalizedChunks.map(e=>F(e.offset))]),sA=r=>ne("ctts",1,0,[F(r.compositionTimeOffsetTable.length),r.compositionTimeOffsetTable.map(e=>[F(e.sampleCount),Vr(e.sampleCompositionTimeOffset)])]),nA=r=>{let e=1/0,t=-1/0,i=1/0,s=-1/0;w(r.compositionTimeOffsetTable.length>0),w(r.samples.length>0);for(let o=0;o<r.compositionTimeOffsetTable.length;o++){let a=r.compositionTimeOffsetTable[o];e=Math.min(e,a.sampleCompositionTimeOffset),t=Math.max(t,a.sampleCompositionTimeOffset)}for(let o=0;o<r.samples.length;o++){let a=r.samples[o];i=Math.min(i,Fe(a.timestamp,r.timescale)),s=Math.max(s,Fe(a.timestamp+a.duration,r.timescale))}let n=Math.max(-e,0);return s>=2**31?null:ne("cslg",0,0,[Vr(n),Vr(e),Vr(t),Vr(i),Vr(s)])},oA=r=>ee("mvex",void 0,r.map(aA)),aA=r=>ne("trex",0,0,[F(r.track.id),F(1),F(0),F(0),F(0)]),Jh=(r,e)=>ee("moof",void 0,[cA(r),...e.map(uA)]),cA=r=>ne("mfhd",0,0,[F(r)]),Mx=r=>{let e=0,t=0,i=0,s=0,n=r.type==="delta";return t|=+n,n?e|=1:e|=2,e<<24|t<<16|i<<8|s},uA=r=>ee("traf",void 0,[lA(r),hA(r),dA(r)]),lA=r=>{w(r.currentChunk);let e=0;e|=8,e|=16,e|=32,e|=131072;let t=r.currentChunk.samples[1]??r.currentChunk.samples[0],i={duration:t.timescaleUnitsToNextSample,size:t.size,flags:Mx(t)};return ne("tfhd",0,e,[F(r.track.id),F(i.duration),F(i.size),F(i.flags)])},hA=r=>(w(r.currentChunk),ne("tfdt",1,0,[Si(Fe(r.currentChunk.startTimestamp,r.timescale))])),dA=r=>{w(r.currentChunk);let e=r.currentChunk.samples.map(x=>x.timescaleUnitsToNextSample),t=r.currentChunk.samples.map(x=>x.size),i=r.currentChunk.samples.map(Mx),s=r.currentChunk.samples.map(x=>Fe(x.timestamp-x.decodeTimestamp,r.timescale)),n=new Set(e),o=new Set(t),a=new Set(i),c=new Set(s),u=a.size===2&&i[0]!==i[1],l=n.size>1,h=o.size>1,f=!u&&a.size>1,d=c.size>1||[...c].some(x=>x!==0),m=0;return m|=1,m|=4*+u,m|=256*+l,m|=512*+h,m|=1024*+f,m|=2048*+d,ne("trun",1,m,[F(r.currentChunk.samples.length),F(r.currentChunk.offset-r.currentChunk.moofOffset||0),u?F(i[0]):[],r.currentChunk.samples.map((x,g)=>[l?F(e[g]):[],h?F(t[g]):[],f?F(i[g]):[],d?Vr(s[g]):[]])])},Ix=r=>ee("mfra",void 0,[...r.map(fA),mA()]),fA=(r,e)=>ne("tfra",1,0,[F(r.track.id),F(63),F(r.finalizedChunks.length),r.finalizedChunks.map(i=>[Si(Fe(i.samples[0].timestamp,r.timescale)),Si(i.moofOffset),F(e+1),F(1),F(1)])]),mA=()=>ne("mfro",0,0,[F(0)]),Fx=()=>ee("vtte"),Ux=(r,e,t,i,s)=>ee("vttc",void 0,[s!==null?ee("vsid",[Vr(s)]):null,t!==null?ee("iden",[...bi.encode(t)]):null,e!==null?ee("ctim",[...bi.encode(px(e))]):null,i!==null?ee("sttg",[...bi.encode(i)]):null,ee("payl",[...bi.encode(r)])]),Ox=r=>ee("vtta",[...bi.encode(r)]),pA={avc:"avc1",hevc:"hvc1",vp8:"vp08",vp9:"vp09",av1:"av01"},gA={avc:Hk,hevc:Wk,vp8:Cx,vp9:Cx,av1:$k},Gx=(r,e)=>{switch(r){case"aac":return"mp4a";case"mp3":return"mp4a";case"opus":return"Opus";case"vorbis":return"mp4a";case"flac":return"fLaC";case"ulaw":return"ulaw";case"alaw":return"alaw";case"pcm-u8":return"raw ";case"pcm-s8":return"sowt"}if(e)switch(r){case"pcm-s16":return"sowt";case"pcm-s16be":return"twos";case"pcm-s24":return"in24";case"pcm-s24be":return"in24";case"pcm-s32":return"in32";case"pcm-s32be":return"in32";case"pcm-f32":return"fl32";case"pcm-f32be":return"fl32";case"pcm-f64":return"fl64";case"pcm-f64be":return"fl64"}else switch(r){case"pcm-s16":return"ipcm";case"pcm-s16be":return"ipcm";case"pcm-s24":return"ipcm";case"pcm-s24be":return"ipcm";case"pcm-s32":return"ipcm";case"pcm-s32be":return"ipcm";case"pcm-f32":return"fpcm";case"pcm-f32be":return"fpcm";case"pcm-f64":return"fpcm";case"pcm-f64be":return"fpcm"}},xA=(r,e)=>{switch(r){case"aac":return Qh;case"mp3":return Qh;case"opus":return Yk;case"vorbis":return Qh;case"flac":return Kk}if(e)switch(r){case"pcm-s24":return zr;case"pcm-s24be":return zr;case"pcm-s32":return zr;case"pcm-s32be":return zr;case"pcm-f32":return zr;case"pcm-f32be":return zr;case"pcm-f64":return zr;case"pcm-f64be":return zr}else switch(r){case"pcm-s16":return Ht;case"pcm-s16be":return Ht;case"pcm-s24":return Ht;case"pcm-s24be":return Ht;case"pcm-s32":return Ht;case"pcm-s32be":return Ht;case"pcm-f32":return Ht;case"pcm-f32be":return Ht;case"pcm-f64":return Ht;case"pcm-f64be":return Ht}return null},_A={webvtt:"wvtt"},bA={webvtt:Zk};var jc=class{constructor(e){this.mutex=new wt,this.firstMediaStreamTimestamp=null,this.trackTimestampInfo=new WeakMap,this.output=e}onTrackClose(e){}validateAndNormalizeTimestamp(e,t,i){t+=e.source._timestampOffset;let s=this.trackTimestampInfo.get(e);if(!s){if(!i)throw new Error("First frame must be a key frame.");s={maxTimestamp:t,maxTimestampBeforeLastKeyFrame:t},this.trackTimestampInfo.set(e,s)}if(t<0)throw new Error(`Timestamps must be non-negative (got ${t}s).`);if(i&&(s.maxTimestampBeforeLastKeyFrame=s.maxTimestamp),t<s.maxTimestampBeforeLastKeyFrame)throw new Error(`Timestamps cannot be smaller than the highest timestamp of the previous run (a run begins with a key frame and ends right before the next key frame). Got ${t}s, but highest timestamp is ${s.maxTimestampBeforeLastKeyFrame}s.`);return s.maxTimestamp=Math.max(s.maxTimestamp,t),t}};var Xc=class{constructor(){this.ensureMonotonicity=!1,this.trackedWrites=null,this.trackedStart=-1,this.trackedEnd=-1}start(){}maybeTrackWrites(e){if(!this.trackedWrites)return;let t=this.getPos();if(t<this.trackedStart){if(t+e.byteLength<=this.trackedStart)return;e=e.subarray(this.trackedStart-t),t=0}let i=t+e.byteLength-this.trackedStart,s=this.trackedWrites.byteLength;for(;s<i;)s*=2;if(s!==this.trackedWrites.byteLength){let n=new Uint8Array(s);n.set(this.trackedWrites,0),this.trackedWrites=n}this.trackedWrites.set(e,t-this.trackedStart),this.trackedEnd=Math.max(this.trackedEnd,t+e.byteLength)}startTrackingWrites(){this.trackedWrites=new Uint8Array(2**10),this.trackedStart=this.getPos(),this.trackedEnd=this.trackedStart}stopTrackingWrites(){if(!this.trackedWrites)throw new Error("Internal error: Can't get tracked writes since nothing was tracked.");let t={data:this.trackedWrites.subarray(0,this.trackedEnd-this.trackedStart),start:this.trackedStart,end:this.trackedEnd};return this.trackedWrites=null,t}},ed=2**16,td=2**32,ds=class extends Xc{constructor(e){if(super(),this.pos=0,this.maxPos=0,this.target=e,this.supportsResize="resize"in new ArrayBuffer(0),this.supportsResize)try{this.buffer=new ArrayBuffer(ed,{maxByteLength:td})}catch{this.buffer=new ArrayBuffer(ed),this.supportsResize=!1}else this.buffer=new ArrayBuffer(ed);this.bytes=new Uint8Array(this.buffer)}ensureSize(e){let t=this.buffer.byteLength;for(;t<e;)t*=2;if(t!==this.buffer.byteLength){if(t>td)throw new Error(`ArrayBuffer exceeded maximum size of ${td} bytes. Please consider using another target.`);if(this.supportsResize)this.buffer.resize(t);else{let i=new ArrayBuffer(t),s=new Uint8Array(i);s.set(this.bytes,0),this.buffer=i,this.bytes=s}}}write(e){this.maybeTrackWrites(e),this.ensureSize(this.pos+e.byteLength),this.bytes.set(e,this.pos),this.pos+=e.byteLength,this.maxPos=Math.max(this.maxPos,this.pos)}seek(e){this.pos=e}getPos(){return this.pos}async flush(){}async finalize(){this.ensureSize(this.pos),this.target.buffer=this.buffer.slice(0,Math.max(this.maxPos,this.pos))}async close(){}getSlice(e,t){return this.bytes.slice(e,t)}},yA=2**24,TA=2,Yc=class extends Xc{constructor(e){super(),this.pos=0,this.sections=[],this.lastWriteEnd=0,this.lastFlushEnd=0,this.writer=null,this.chunks=[],this.target=e,this.chunked=e._options.chunked??!1,this.chunkSize=e._options.chunkSize??yA}start(){this.writer=this.target._writable.getWriter()}write(e){if(this.pos>this.lastWriteEnd){let t=this.pos-this.lastWriteEnd;this.pos=this.lastWriteEnd,this.write(new Uint8Array(t))}this.maybeTrackWrites(e),this.sections.push({data:e.slice(),start:this.pos}),this.pos+=e.byteLength,this.lastWriteEnd=Math.max(this.lastWriteEnd,this.pos)}seek(e){this.pos=e}getPos(){return this.pos}async flush(){if(this.pos>this.lastWriteEnd){let i=this.pos-this.lastWriteEnd;this.pos=this.lastWriteEnd,this.write(new Uint8Array(i))}if(w(this.writer),this.sections.length===0)return;let e=[],t=[...this.sections].sort((i,s)=>i.start-s.start);e.push({start:t[0].start,size:t[0].data.byteLength});for(let i=1;i<t.length;i++){let s=e[e.length-1],n=t[i];n.start<=s.start+s.size?s.size=Math.max(s.size,n.start+n.data.byteLength-s.start):e.push({start:n.start,size:n.data.byteLength})}for(let i of e){i.data=new Uint8Array(i.size);for(let s of this.sections)i.start<=s.start&&s.start<i.start+i.size&&i.data.set(s.data,s.start-i.start);if(this.writer.desiredSize!==null&&this.writer.desiredSize<=0&&await this.writer.ready,this.chunked)this.writeDataIntoChunks(i.data,i.start),this.tryToFlushChunks();else{if(this.ensureMonotonicity&&i.start!==this.lastFlushEnd)throw new Error("Internal error: Monotonicity violation.");this.writer.write({type:"write",data:i.data,position:i.start}),this.lastFlushEnd=i.start+i.data.byteLength}}this.sections.length=0}writeDataIntoChunks(e,t){let i=this.chunks.findIndex(c=>c.start<=t&&t<c.start+this.chunkSize);i===-1&&(i=this.createChunk(t));let s=this.chunks[i],n=t-s.start,o=e.subarray(0,Math.min(this.chunkSize-n,e.byteLength));s.data.set(o,n);let a={start:n,end:n+o.byteLength};if(this.insertSectionIntoChunk(s,a),s.written[0].start===0&&s.written[0].end===this.chunkSize&&(s.shouldFlush=!0),this.chunks.length>TA){for(let c=0;c<this.chunks.length-1;c++)this.chunks[c].shouldFlush=!0;this.tryToFlushChunks()}o.byteLength<e.byteLength&&this.writeDataIntoChunks(e.subarray(o.byteLength),t+o.byteLength)}insertSectionIntoChunk(e,t){let i=0,s=e.written.length-1,n=-1;for(;i<=s;){let o=Math.floor(i+(s-i+1)/2);e.written[o].start<=t.start?(i=o+1,n=o):s=o-1}for(e.written.splice(n+1,0,t),(n===-1||e.written[n].end<t.start)&&n++;n<e.written.length-1&&e.written[n].end>=e.written[n+1].start;)e.written[n].end=Math.max(e.written[n].end,e.written[n+1].end),e.written.splice(n+1,1)}createChunk(e){let i={start:Math.floor(e/this.chunkSize)*this.chunkSize,data:new Uint8Array(this.chunkSize),written:[],shouldFlush:!1};return this.chunks.push(i),this.chunks.sort((s,n)=>s.start-n.start),this.chunks.indexOf(i)}tryToFlushChunks(e=!1){w(this.writer);for(let t=0;t<this.chunks.length;t++){let i=this.chunks[t];if(!(!i.shouldFlush&&!e)){for(let s of i.written){let n=i.start+s.start;if(this.ensureMonotonicity&&n!==this.lastFlushEnd)throw new Error("Internal error: Monotonicity violation.");this.writer.write({type:"write",data:i.data.subarray(s.start,s.end),position:n}),this.lastFlushEnd=i.start+s.end}this.chunks.splice(t--,1)}}}finalize(){return this.chunked&&this.tryToFlushChunks(!0),w(this.writer),this.writer.close()}async close(){return this.writer?.close()}};var vi=class{constructor(){this._output=null}},zn=class extends vi{constructor(){super(...arguments),this.buffer=null}_createWriter(){return new ds(this)}},Vn=class extends vi{constructor(e,t={}){if(super(),!(e instanceof WritableStream))throw new TypeError("StreamTarget requires a WritableStream instance.");if(t!=null&&typeof t!="object")throw new TypeError("StreamTarget options, when provided, must be an object.");if(t.chunked!==void 0&&typeof t.chunked!="boolean")throw new TypeError("options.chunked, when provided, must be a boolean.");if(t.chunkSize!==void 0&&(!Number.isInteger(t.chunkSize)||t.chunkSize<1024))throw new TypeError("options.chunkSize, when provided, must be an integer and not smaller than 1024.");this._writable=e,this._options=t}_createWriter(){return new Yc(this)}};var Kc=r=>{let t=(r.hasVideo?"video/":r.hasAudio?"audio/":"application/")+(r.isQuickTime?"quicktime":"mp4");if(r.codecStrings.length>0){let i=[...new Set(r.codecStrings)];t+=`; codecs="${i.join(", ")}"`}return t};var $c=1e3,wA=2082844800,Fe=(r,e,t=!0)=>{let i=r*e;return t?Math.round(i):i},Qc=class extends jc{constructor(e,t){super(e),this.auxTarget=new zn,this.auxWriter=this.auxTarget._createWriter(),this.auxBoxWriter=new Nn(this.auxWriter),this.mdat=null,this.trackDatas=[],this.allTracksKnown=Ke(),this.creationTime=Math.floor(Date.now()/1e3)+wA,this.finalizedChunks=[],this.nextFragmentNumber=1,this.maxWrittenTimestamp=-1/0,this.format=t,this.writer=e._writer,this.boxWriter=new Nn(this.writer),this.isQuickTime=t instanceof fs;let i=this.writer instanceof ds?"in-memory":!1;this.fastStart=t._options.fastStart??i,this.isFragmented=this.fastStart==="fragmented",(this.fastStart==="in-memory"||this.isFragmented)&&(this.writer.ensureMonotonicity=!0),this.minimumFragmentDuration=t._options.minimumFragmentDuration??1}async start(){let e=await this.mutex.acquire(),t=this.output._tracks.some(i=>i.type==="video"&&i.source._codec==="avc");if(this.format._options.onFtyp&&this.writer.startTrackingWrites(),this.boxWriter.writeBox(Dx({isQuickTime:this.isQuickTime,holdsAvc:t,fragmented:this.isFragmented})),this.format._options.onFtyp){let{data:i,start:s}=this.writer.stopTrackingWrites();this.format._options.onFtyp(i,s)}this.fastStart==="in-memory"?this.mdat=qc(!1):this.isFragmented||(this.format._options.onMdat&&this.writer.startTrackingWrites(),this.mdat=qc(!0),this.boxWriter.writeBox(this.mdat)),await this.writer.flush(),e()}allTracksAreKnown(){for(let e of this.output._tracks)if(!e.source._closed&&!this.trackDatas.some(t=>t.track===e))return!1;return!0}async getMimeType(){await this.allTracksKnown.promise;let e=this.trackDatas.map(t=>t.type==="video"||t.type==="audio"?t.info.decoderConfig.codec:{webvtt:"wvtt"}[t.track.source._codec]);return Kc({isQuickTime:this.isQuickTime,hasVideo:this.trackDatas.some(t=>t.type==="video"),hasAudio:this.trackDatas.some(t=>t.type==="audio"),codecStrings:e})}getVideoTrackData(e,t,i){let s=this.trackDatas.find(u=>u.track===e);if(s)return s;dx(i),w(i),w(i.decoderConfig);let n={...i.decoderConfig};w(n.codedWidth!==void 0),w(n.codedHeight!==void 0);let o=!1;if(e.source._codec==="avc"&&!n.description){let u=Lc(t.data);if(!u)throw new Error("Couldn't extract an AVCDecoderConfigurationRecord from the AVC packet. Make sure the packets are in Annex B format (as specified in ITU-T-REC-H.264) when not providing a description, or provide a description (must be an AVCDecoderConfigurationRecord as specified in ISO 14496-15) and ensure the packets are in AVCC format.");n.description=Tx(u),o=!0}else if(e.source._codec==="hevc"&&!n.description){let u=zc(t.data);if(!u)throw new Error("Couldn't extract an HEVCDecoderConfigurationRecord from the HEVC packet. Make sure the packets are in Annex B format (as specified in ITU-T-REC-H.265) when not providing a description, or provide a description (must be an HEVCDecoderConfigurationRecord as specified in ISO 14496-15) and ensure the packets are in HEVC format.");n.description=wx(u),o=!0}let a=Qg(1/(e.metadata.frameRate??57600),1e6).denominator,c={muxer:this,track:e,type:"video",info:{width:n.codedWidth,height:n.codedHeight,decoderConfig:n,requiresAnnexBTransformation:o},timescale:a,samples:[],sampleQueue:[],timestampProcessingQueue:[],timeToSampleTable:[],compositionTimeOffsetTable:[],lastTimescaleUnits:null,lastSample:null,finalizedChunks:[],currentChunk:null,compactlyCodedChunkTable:[]};return this.trackDatas.push(c),this.trackDatas.sort((u,l)=>u.track.id-l.track.id),this.allTracksAreKnown()&&this.allTracksKnown.resolve(),c}getAudioTrackData(e,t){let i=this.trackDatas.find(n=>n.track===e);if(i)return i;fx(t),w(t),w(t.decoderConfig);let s={muxer:this,track:e,type:"audio",info:{numberOfChannels:t.decoderConfig.numberOfChannels,sampleRate:t.decoderConfig.sampleRate,decoderConfig:t.decoderConfig,requiresPcmTransformation:!this.isFragmented&&Re.includes(e.source._codec)},timescale:t.decoderConfig.sampleRate,samples:[],sampleQueue:[],timestampProcessingQueue:[],timeToSampleTable:[],compositionTimeOffsetTable:[],lastTimescaleUnits:null,lastSample:null,finalizedChunks:[],currentChunk:null,compactlyCodedChunkTable:[]};return this.trackDatas.push(s),this.trackDatas.sort((n,o)=>n.track.id-o.track.id),this.allTracksAreKnown()&&this.allTracksKnown.resolve(),s}getSubtitleTrackData(e,t){let i=this.trackDatas.find(n=>n.track===e);if(i)return i;mx(t),w(t),w(t.config);let s={muxer:this,track:e,type:"subtitle",info:{config:t.config},timescale:1e3,samples:[],sampleQueue:[],timestampProcessingQueue:[],timeToSampleTable:[],compositionTimeOffsetTable:[],lastTimescaleUnits:null,lastSample:null,finalizedChunks:[],currentChunk:null,compactlyCodedChunkTable:[],lastCueEndTimestamp:0,cueQueue:[],nextSourceId:0,cueToSourceId:new WeakMap};return this.trackDatas.push(s),this.trackDatas.sort((n,o)=>n.track.id-o.track.id),this.allTracksAreKnown()&&this.allTracksKnown.resolve(),s}async addEncodedVideoPacket(e,t,i){let s=await this.mutex.acquire();try{let n=this.getVideoTrackData(e,t,i),o=t.data;if(n.info.requiresAnnexBTransformation){let u=yx(o);if(!u)throw new Error("Failed to transform packet data. Make sure all packets are provided in Annex B format, as specified in ITU-T-REC-H.264 and ITU-T-REC-H.265.");o=u}let a=this.validateAndNormalizeTimestamp(n.track,t.timestamp,t.type==="key"),c=this.createSampleForTrack(n,o,a,t.duration,t.type);await this.registerSample(n,c)}finally{s()}}async addEncodedAudioPacket(e,t,i){let s=await this.mutex.acquire();try{let n=this.getAudioTrackData(e,i),o=this.validateAndNormalizeTimestamp(n.track,t.timestamp,t.type==="key"),a=this.createSampleForTrack(n,t.data,o,t.duration,t.type);n.info.requiresPcmTransformation&&await this.maybePadWithSilence(n,o),await this.registerSample(n,a)}finally{s()}}async maybePadWithSilence(e,t){let i=he(e.samples),s=i?i.timestamp+i.duration:0,n=t-s,o=Fe(n,e.timescale);if(o>0){let{sampleSize:a,silentValue:c}=gt(e.info.decoderConfig.codec),u=o*e.info.numberOfChannels,l=new Uint8Array(a*u).fill(c),h=this.createSampleForTrack(e,new Uint8Array(l.buffer),s,n,"key");await this.registerSample(e,h)}}async addSubtitleCue(e,t,i){let s=await this.mutex.acquire();try{let n=this.getSubtitleTrackData(e,i);this.validateAndNormalizeTimestamp(n.track,t.timestamp,!0),e.source._codec==="webvtt"&&(n.cueQueue.push(t),await this.processWebVTTCues(n,t.timestamp))}finally{s()}}async processWebVTTCues(e,t){for(;e.cueQueue.length>0;){let i=new Set([]);for(let u of e.cueQueue)w(u.timestamp<=t),w(e.lastCueEndTimestamp<=u.timestamp+u.duration),i.add(Math.max(u.timestamp,e.lastCueEndTimestamp)),i.add(u.timestamp+u.duration);let s=[...i].sort((u,l)=>u-l),n=s[0],o=s[1]??n;if(t<o)break;if(e.lastCueEndTimestamp<n){this.auxWriter.seek(0);let u=Fx();this.auxBoxWriter.writeBox(u);let l=this.auxWriter.getSlice(0,this.auxWriter.getPos()),h=this.createSampleForTrack(e,l,e.lastCueEndTimestamp,n-e.lastCueEndTimestamp,"key");await this.registerSample(e,h),e.lastCueEndTimestamp=n}this.auxWriter.seek(0);for(let u=0;u<e.cueQueue.length;u++){let l=e.cueQueue[u];if(l.timestamp>=o)break;$h.lastIndex=0;let h=$h.test(l.text),f=l.timestamp+l.duration,d=e.cueToSourceId.get(l);if(d===void 0&&o<f&&(d=e.nextSourceId++,e.cueToSourceId.set(l,d)),l.notes){let x=Ox(l.notes);this.auxBoxWriter.writeBox(x)}let m=Ux(l.text,h?n:null,l.identifier??null,l.settings??null,d??null);this.auxBoxWriter.writeBox(m),f===o&&e.cueQueue.splice(u--,1)}let a=this.auxWriter.getSlice(0,this.auxWriter.getPos()),c=this.createSampleForTrack(e,a,n,o-n,"key");await this.registerSample(e,c),e.lastCueEndTimestamp=o}}createSampleForTrack(e,t,i,s,n){return{timestamp:i,decodeTimestamp:i,duration:s,data:t,size:t.byteLength,type:n,timescaleUnitsToNextSample:Fe(s,e.timescale)}}processTimestamps(e,t){if(e.timestampProcessingQueue.length===0)return;if(e.type==="audio"&&e.info.requiresPcmTransformation){let s=0;for(let n=0;n<e.timestampProcessingQueue.length;n++){let o=e.timestampProcessingQueue[n],a=Fe(o.duration,e.timescale);s+=a}if(e.timeToSampleTable.length===0)e.timeToSampleTable.push({sampleCount:s,sampleDelta:1});else{let n=he(e.timeToSampleTable);n.sampleCount+=s}e.timestampProcessingQueue.length=0;return}let i=e.timestampProcessingQueue.map(s=>s.timestamp).sort((s,n)=>s-n);for(let s=0;s<e.timestampProcessingQueue.length;s++){let n=e.timestampProcessingQueue[s];n.decodeTimestamp=i[s],!this.isFragmented&&e.lastTimescaleUnits===null&&(n.decodeTimestamp=0);let o=Fe(n.timestamp-n.decodeTimestamp,e.timescale),a=Fe(n.duration,e.timescale);if(e.lastTimescaleUnits!==null){w(e.lastSample);let c=Fe(n.decodeTimestamp,e.timescale,!1),u=Math.round(c-e.lastTimescaleUnits);if(w(u>=0),e.lastTimescaleUnits+=u,e.lastSample.timescaleUnitsToNextSample=u,!this.isFragmented){let l=he(e.timeToSampleTable);if(w(l),l.sampleCount===1){l.sampleDelta=u;let f=e.timeToSampleTable[e.timeToSampleTable.length-2];f&&f.sampleDelta===u&&(f.sampleCount++,e.timeToSampleTable.pop(),l=f)}else l.sampleDelta!==u&&(l.sampleCount--,e.timeToSampleTable.push(l={sampleCount:1,sampleDelta:u}));l.sampleDelta===a?l.sampleCount++:e.timeToSampleTable.push({sampleCount:1,sampleDelta:a});let h=he(e.compositionTimeOffsetTable);w(h),h.sampleCompositionTimeOffset===o?h.sampleCount++:e.compositionTimeOffsetTable.push({sampleCount:1,sampleCompositionTimeOffset:o})}}else e.lastTimescaleUnits=Fe(n.decodeTimestamp,e.timescale,!1),this.isFragmented||(e.timeToSampleTable.push({sampleCount:1,sampleDelta:a}),e.compositionTimeOffsetTable.push({sampleCount:1,sampleCompositionTimeOffset:o}));e.lastSample=n}if(e.timestampProcessingQueue.length=0,w(e.lastSample),w(e.lastTimescaleUnits!==null),t!==void 0&&e.lastSample.timescaleUnitsToNextSample===0){w(t.type==="key");let s=Fe(t.timestamp,e.timescale,!1),n=Math.round(s-e.lastTimescaleUnits);e.lastSample.timescaleUnitsToNextSample=n}}async registerSample(e,t){t.type==="key"&&this.processTimestamps(e,t),e.timestampProcessingQueue.push(t),this.isFragmented?(e.sampleQueue.push(t),await this.interleaveSamples()):await this.addSampleToTrack(e,t)}async addSampleToTrack(e,t){this.isFragmented||e.samples.push(t);let i=!1;if(!e.currentChunk)i=!0;else{e.currentChunk.startTimestamp=Math.min(e.currentChunk.startTimestamp,t.timestamp);let s=t.timestamp-e.currentChunk.startTimestamp;if(this.isFragmented){let n=this.trackDatas.every(o=>{if(e===o)return t.type==="key";let a=o.sampleQueue[0];return a?a.type==="key":o.track.source._closed});s>=this.minimumFragmentDuration&&n&&t.timestamp>this.maxWrittenTimestamp&&(i=!0,await this.finalizeFragment())}else i=s>=.5}i&&(e.currentChunk&&await this.finalizeCurrentChunk(e),e.currentChunk={startTimestamp:t.timestamp,samples:[],offset:null,moofOffset:null}),w(e.currentChunk),e.currentChunk.samples.push(t),this.isFragmented&&(this.maxWrittenTimestamp=Math.max(this.maxWrittenTimestamp,t.timestamp))}async finalizeCurrentChunk(e){if(w(!this.isFragmented),!e.currentChunk)return;e.finalizedChunks.push(e.currentChunk),this.finalizedChunks.push(e.currentChunk);let t=e.currentChunk.samples.length;if(e.type==="audio"&&e.info.requiresPcmTransformation&&(t=e.currentChunk.samples.reduce((i,s)=>i+Fe(s.duration,e.timescale),0)),(e.compactlyCodedChunkTable.length===0||he(e.compactlyCodedChunkTable).samplesPerChunk!==t)&&e.compactlyCodedChunkTable.push({firstChunk:e.finalizedChunks.length,samplesPerChunk:t}),this.fastStart==="in-memory"){e.currentChunk.offset=0;return}e.currentChunk.offset=this.writer.getPos();for(let i of e.currentChunk.samples)w(i.data),this.writer.write(i.data),i.data=null;await this.writer.flush()}async interleaveSamples(e=!1){if(w(this.isFragmented),!(!e&&!this.allTracksAreKnown()))e:for(;;){let t=null,i=1/0;for(let n of this.trackDatas){if(!e&&n.sampleQueue.length===0&&!n.track.source._closed)break e;n.sampleQueue.length>0&&n.sampleQueue[0].timestamp<i&&(t=n,i=n.sampleQueue[0].timestamp)}if(!t)break;let s=t.sampleQueue.shift();await this.addSampleToTrack(t,s)}}async finalizeFragment(e=!0){w(this.isFragmented);let t=this.nextFragmentNumber++;if(t===1){this.format._options.onMoov&&this.writer.startTrackingWrites();let d=Ln(this.trackDatas,this.creationTime,!0);if(this.boxWriter.writeBox(d),this.format._options.onMoov){let{data:m,start:x}=this.writer.stopTrackingWrites();this.format._options.onMoov(m,x)}}let i=this.trackDatas.filter(d=>d.currentChunk),s=Jh(t,i),n=this.writer.getPos(),o=n+this.boxWriter.measureBox(s),a=16,c=o+a,u=1/0;for(let d of i){d.currentChunk.offset=c,d.currentChunk.moofOffset=n;for(let m of d.currentChunk.samples)c+=m.size;u=Math.min(u,d.currentChunk.startTimestamp)}let l=c-o;this.format._options.onMoof&&this.writer.startTrackingWrites();let h=Jh(t,i);if(this.boxWriter.writeBox(h),this.format._options.onMoof){let{data:d,start:m}=this.writer.stopTrackingWrites();this.format._options.onMoof(d,m,u)}w(this.writer.getPos()===o),this.format._options.onMdat&&this.writer.startTrackingWrites();let f=qc(l>=2**32);f.size=l,this.boxWriter.writeBox(f),this.writer.seek(o+a);for(let d of i)for(let m of d.currentChunk.samples)this.writer.write(m.data),m.data=null;if(this.format._options.onMdat){let{data:d,start:m}=this.writer.stopTrackingWrites();this.format._options.onMdat(d,m)}for(let d of i)d.finalizedChunks.push(d.currentChunk),this.finalizedChunks.push(d.currentChunk),d.currentChunk=null;e&&await this.writer.flush()}async onTrackClose(e){let t=await this.mutex.acquire();if(e.type==="subtitle"&&e.source._codec==="webvtt"){let i=this.trackDatas.find(s=>s.track===e);i&&await this.processWebVTTCues(i,1/0)}this.allTracksAreKnown()&&this.allTracksKnown.resolve(),this.isFragmented&&await this.interleaveSamples(),t()}async finalize(){let e=await this.mutex.acquire();this.allTracksKnown.resolve();for(let t of this.trackDatas)t.type==="subtitle"&&t.track.source._codec==="webvtt"&&await this.processWebVTTCues(t,1/0);if(this.isFragmented){await this.interleaveSamples(!0);for(let t of this.trackDatas)this.processTimestamps(t);await this.finalizeFragment(!1)}else for(let t of this.trackDatas)this.processTimestamps(t),await this.finalizeCurrentChunk(t);if(this.fastStart==="in-memory"){w(this.mdat);let t;for(let s=0;s<2;s++){let n=Ln(this.trackDatas,this.creationTime),o=this.boxWriter.measureBox(n);t=this.boxWriter.measureBox(this.mdat);let a=this.writer.getPos()+o+t;for(let c of this.finalizedChunks){c.offset=a;for(let{data:u}of c.samples)w(u),a+=u.byteLength,t+=u.byteLength}if(a<2**32)break;t>=2**32&&(this.mdat.largeSize=!0)}this.format._options.onMoov&&this.writer.startTrackingWrites();let i=Ln(this.trackDatas,this.creationTime);if(this.boxWriter.writeBox(i),this.format._options.onMoov){let{data:s,start:n}=this.writer.stopTrackingWrites();this.format._options.onMoov(s,n)}this.format._options.onMdat&&this.writer.startTrackingWrites(),this.mdat.size=t,this.boxWriter.writeBox(this.mdat);for(let s of this.finalizedChunks)for(let n of s.samples)w(n.data),this.writer.write(n.data),n.data=null;if(this.format._options.onMdat){let{data:s,start:n}=this.writer.stopTrackingWrites();this.format._options.onMdat(s,n)}}else if(this.isFragmented){let t=this.writer.getPos(),i=Ix(this.trackDatas);this.boxWriter.writeBox(i);let s=this.writer.getPos()-t;this.writer.seek(this.writer.getPos()-4),this.boxWriter.writeU32(s)}else{w(this.mdat);let t=this.boxWriter.offsets.get(this.mdat);w(t!==void 0);let i=this.writer.getPos()-t;if(this.mdat.size=i,this.mdat.largeSize=i>=2**32,this.boxWriter.patchBox(this.mdat),this.format._options.onMdat){let{data:n,start:o}=this.writer.stopTrackingWrites();this.format._options.onMdat(n,o)}this.format._options.onMoov&&this.writer.startTrackingWrites();let s=Ln(this.trackDatas,this.creationTime);if(this.boxWriter.writeBox(s),this.format._options.onMoov){let{data:n,start:o}=this.writer.stopTrackingWrites();this.format._options.onMoov(n,o)}}e()}};var I;(function(r){r[r.EBML=440786851]="EBML",r[r.EBMLVersion=17030]="EBMLVersion",r[r.EBMLReadVersion=17143]="EBMLReadVersion",r[r.EBMLMaxIDLength=17138]="EBMLMaxIDLength",r[r.EBMLMaxSizeLength=17139]="EBMLMaxSizeLength",r[r.DocType=17026]="DocType",r[r.DocTypeVersion=17031]="DocTypeVersion",r[r.DocTypeReadVersion=17029]="DocTypeReadVersion",r[r.SeekHead=290298740]="SeekHead",r[r.Seek=19899]="Seek",r[r.SeekID=21419]="SeekID",r[r.SeekPosition=21420]="SeekPosition",r[r.Duration=17545]="Duration",r[r.Info=357149030]="Info",r[r.TimestampScale=2807729]="TimestampScale",r[r.MuxingApp=19840]="MuxingApp",r[r.WritingApp=22337]="WritingApp",r[r.Tracks=374648427]="Tracks",r[r.TrackEntry=174]="TrackEntry",r[r.TrackNumber=215]="TrackNumber",r[r.TrackUID=29637]="TrackUID",r[r.TrackType=131]="TrackType",r[r.FlagEnabled=185]="FlagEnabled",r[r.FlagDefault=136]="FlagDefault",r[r.FlagForced=21930]="FlagForced",r[r.FlagLacing=156]="FlagLacing",r[r.Language=2274716]="Language",r[r.CodecID=134]="CodecID",r[r.CodecPrivate=25506]="CodecPrivate",r[r.CodecDelay=22186]="CodecDelay",r[r.SeekPreRoll=22203]="SeekPreRoll",r[r.DefaultDuration=2352003]="DefaultDuration",r[r.Video=224]="Video",r[r.PixelWidth=176]="PixelWidth",r[r.PixelHeight=186]="PixelHeight",r[r.Audio=225]="Audio",r[r.SamplingFrequency=181]="SamplingFrequency",r[r.Channels=159]="Channels",r[r.BitDepth=25188]="BitDepth",r[r.Segment=408125543]="Segment",r[r.SimpleBlock=163]="SimpleBlock",r[r.BlockGroup=160]="BlockGroup",r[r.Block=161]="Block",r[r.BlockAdditions=30113]="BlockAdditions",r[r.BlockMore=166]="BlockMore",r[r.BlockAdditional=165]="BlockAdditional",r[r.BlockAddID=238]="BlockAddID",r[r.BlockDuration=155]="BlockDuration",r[r.ReferenceBlock=251]="ReferenceBlock",r[r.Cluster=524531317]="Cluster",r[r.Timestamp=231]="Timestamp",r[r.Cues=475249515]="Cues",r[r.CuePoint=187]="CuePoint",r[r.CueTime=179]="CueTime",r[r.CueTrackPositions=183]="CueTrackPositions",r[r.CueTrack=247]="CueTrack",r[r.CueClusterPosition=241]="CueClusterPosition",r[r.Colour=21936]="Colour",r[r.MatrixCoefficients=21937]="MatrixCoefficients",r[r.TransferCharacteristics=21946]="TransferCharacteristics",r[r.Primaries=21947]="Primaries",r[r.Range=21945]="Range",r[r.Projection=30320]="Projection",r[r.ProjectionType=30321]="ProjectionType",r[r.ProjectionPoseRoll=30325]="ProjectionPoseRoll",r[r.Attachments=423732329]="Attachments",r[r.Chapters=272869232]="Chapters",r[r.Tags=307544935]="Tags"})(I||(I={}));var SA=[I.EBML,I.Segment],vA=[I.EBMLMaxIDLength,I.EBMLMaxSizeLength,I.SeekHead,I.Info,I.Cluster,I.Tracks,I.Cues,I.Attachments,I.Chapters,I.Tags],rd=[...SA,...vA];var Nx=8,Zc=2,Ci=4+Nx,Ei=class{constructor(e){this.reader=e,this.pos=0}readBytes(e){let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e);return this.pos+=e,new Uint8Array(t.buffer,i,e)}readU8(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+1);return this.pos++,e.getUint8(t)}readS16(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+2);return this.pos+=2,e.getInt16(t,!1)}readVarIntSize(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+1),i=e.getUint8(t),s=1,n=128;for(;(i&n)===0&&s<8;)s++,n>>=1;return s}readVarInt(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+1),i=e.getUint8(t),s=1,n=128;for(;(i&n)===0&&s<Nx;)s++,n>>=1;let{view:o,offset:a}=this.reader.getViewAndOffset(this.pos,this.pos+s),c=i&n-1;for(let u=1;u<s;u++)c*=256,c+=o.getUint8(a+u);return this.pos+=s,c}readUnsignedInt(e){if(e<1||e>8)throw new Error("Bad unsigned int size "+e);let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e),s=0;for(let n=0;n<e;n++)s*=256,s+=t.getUint8(i+n);return this.pos+=e,s}readSignedInt(e){let t=this.readUnsignedInt(e);return t&1<<e*8-1&&(t-=2**(e*8)),t}readFloat(e){if(e===0)return 0;if(e!==4&&e!==8)throw new Error("Bad float size "+e);let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e),s=e===4?t.getFloat32(i,!1):t.getFloat64(i,!1);return this.pos+=e,s}readString(e){let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e);return this.pos+=e,String.fromCharCode(...new Uint8Array(t.buffer,i,e))}readElementId(){let e=this.readVarIntSize();return this.readUnsignedInt(e)}readElementSize(){let e=this.readU8();return e===255?e=null:(this.pos--,e=this.readVarInt(),e===72057594037927940&&(e=null)),e}readElementHeader(){let e=this.readElementId(),t=this.readElementSize();return{id:e,size:t}}async searchForNextElementId(e,t){let s=new Set(e);for(;this.pos<t-Ci;){this.reader.rangeIsLoaded(this.pos,this.pos+Ci)||await this.reader.loadRange(this.pos,Math.min(this.pos+1048576,t));let n=this.pos,o=this.readElementHeader();if(s.has(o.id))return n;ki(o.size),this.pos+=o.size}return null}},Dt={avc:"V_MPEG4/ISO/AVC",hevc:"V_MPEGH/ISO/HEVC",vp8:"V_VP8",vp9:"V_VP9",av1:"V_AV1",aac:"A_AAC",mp3:"A_MPEG/L3",opus:"A_OPUS",vorbis:"A_VORBIS",flac:"A_FLAC","pcm-u8":"A_PCM/INT/LIT","pcm-s16":"A_PCM/INT/LIT","pcm-s16be":"A_PCM/INT/BIG","pcm-s24":"A_PCM/INT/LIT","pcm-s24be":"A_PCM/INT/BIG","pcm-s32":"A_PCM/INT/LIT","pcm-s32be":"A_PCM/INT/BIG","pcm-f32":"A_PCM/FLOAT/IEEE","pcm-f64":"A_PCM/FLOAT/IEEE",webvtt:"S_TEXT/WEBVTT"};function ki(r){if(r===null)throw new Error("Undefined element size is used in a place where it is not supported.")}var Lx=r=>{let t=(r.hasVideo?"video/":r.hasAudio?"audio/":"application/")+(r.isWebM?"webm":"x-matroska");if(r.codecStrings.length>0){let i=[...new Set(r.codecStrings.filter(Boolean))];t+=`; codecs="${i.join(", ")}"`}return t};var CA={1:[-1,32,40,48,56,64,80,96,112,128,160,192,224,256,320,-1],2:[-1,32,48,56,64,80,96,112,128,160,192,224,256,320,384,-1],3:[-1,32,64,96,128,160,192,224,256,288,320,352,384,416,448,-1]},EA={1:[-1,32,48,56,64,80,96,112,128,144,160,176,192,224,256,-1],2:[-1,8,16,24,32,40,48,56,64,80,96,112,128,144,160,-1],3:[-1,8,16,24,32,40,48,56,64,80,96,112,128,144,160,-1]},kA={0:[11025,12e3,8e3,-1],2:[22050,24e3,16e3,-1],3:[44100,48e3,32e3,-1]},zx=1483304551,Vx=1231971951,AA=(r,e,t,i)=>Math.floor(r===3?(12*e/t+i)*4:144*e/t+i),Hx=(r,e)=>r===3?e===3?21:36:e===3?13:21,Wx=(r,e)=>{let t=e.pos,i=r>>>24,s=r>>>16&255,n=r>>>8&255,o=r&255;if(i!==255&&s!==255&&n!==255&&o!==255)return e.pos+=4,null;if(e.pos+=1,i!==255||(s&224)!==224)return null;let a=s>>3&3,c=s>>1&3,u=n>>4&15,l=n>>2&3,h=n>>1&1,f=o>>6&3,d=o>>4&3,m=o>>3&1,x=o>>2&1,g=o&3,_=a===3?CA[c]?.[u]:EA[c]?.[u];if(!_||_===-1)return null;let y=_*1e3,S=kA[a]?.[l];if(!S||S===-1)return null;let T=AA(c,y,S,h);if(e.fileSize!==null&&e.fileSize-t<T)return null;let C;return a===3?C=c===3?384:1152:c===3?C=384:c===2?C=1152:C=576,{startPos:t,totalSize:T,mpegVersionId:a,layer:c,bitrate:y,frequencyIndex:l,sampleRate:S,channel:f,modeExtension:d,copyright:m,original:x,emphasis:g,audioSamplesInFrame:C}};var id=1399285583,PA=79764919,$x=new Uint32Array(256);for(let r=0;r<256;r++){let e=r<<24;for(let t=0;t<8;t++)e=e&2147483648?e<<1^PA:e<<1;$x[r]=e>>>0&4294967295}var qx=r=>{let e=St(r),t=e.getUint32(22,!0);e.setUint32(22,0,!0);let i=0;for(let s=0;s<r.length;s++){let n=r[s];i=(i<<8^$x[i>>>24^n])>>>0}return e.setUint32(22,t,!0),i},jx=(r,e,t)=>{let i=0,s=null;if(r.length>0)if(e.codec==="vorbis"){w(e.vorbisInfo);let n=e.vorbisInfo.modeBlockflags.length,a=(1<<Kg(n-1))-1<<1,c=(r[0]&a)>>1;if(c>=e.vorbisInfo.modeBlockflags.length)throw new Error("Invalid mode number.");let u=t,l=e.vorbisInfo.modeBlockflags[c];if(s=e.vorbisInfo.blocksizes[l],l===1){let h=(a|1)+1,f=r[0]&h?1:0;u=e.vorbisInfo.blocksizes[f]}i=u!==null?u+s>>2:0}else e.codec==="opus"&&(i=Sx(r).durationInSamples);return{durationInSamples:i,vorbisBlockSize:s}},Xx=r=>{let e="audio/ogg";if(r.codecStrings){let t=[...new Set(r.codecStrings)];e+=`; codecs="${t.join(", ")}"`}return e};var ps=27,Ai=282,Yx=Ai+255*255,ms=class{constructor(e){this.reader=e,this.pos=0}readBytes(e){let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e);return this.pos+=e,new Uint8Array(t.buffer,i,e)}readU8(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+1);return this.pos+=1,e.getUint8(t)}readU32(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+4);return this.pos+=4,e.getUint32(t,!0)}readI32(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+4);return this.pos+=4,e.getInt32(t,!0)}readI64(){let e=this.readU32();return this.readI32()*4294967296+e}readAscii(e){let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e);this.pos+=e;let s="";for(let n=0;n<e;n++)s+=String.fromCharCode(t.getUint8(i+n));return s}readPageHeader(){let e=this.pos;if(this.readU32()!==id)return null;this.pos+=1;let i=this.readU8(),s=this.readI64(),n=this.readU32(),o=this.readU32(),a=this.readU32(),c=this.readU8(),u=new Uint8Array(c);for(let d=0;d<c;d++)u[d]=this.readU8();let l=27+c,h=u.reduce((d,m)=>d+m,0),f=l+h;return{headerStartPos:e,totalSize:f,dataStartPos:e+l,dataSize:h,headerType:i,granulePosition:s,serialNumber:n,sequenceNumber:o,checksum:a,lacingValues:u}}findNextPageHeader(e){for(;this.pos<e-3;){let t=this.readU32(),i=t&255,s=t>>>8&255,n=t>>>16&255,o=t>>>24&255,a=79;if(!(i!==a&&s!==a&&n!==a&&o!==a)){if(this.pos-=4,t===id)return!0;this.pos+=1}}return!1}};var Ct=class{constructor(e){this.input=e}};var ot=new Uint8Array(0),ge=class r{constructor(e,t,i,s,n=-1,o){if(this.data=e,this.type=t,this.timestamp=i,this.duration=s,this.sequenceNumber=n,e===ot&&o===void 0)throw new Error("Internal error: byteLength must be explicitly provided when constructing metadata-only packets.");if(o===void 0&&(o=e.byteLength),!(e instanceof Uint8Array))throw new TypeError("data must be a Uint8Array.");if(t!=="key"&&t!=="delta")throw new TypeError('type must be either "key" or "delta".');if(!Number.isFinite(i))throw new TypeError("timestamp must be a number.");if(!Number.isFinite(s)||s<0)throw new TypeError("duration must be a non-negative number.");if(!Number.isFinite(n))throw new TypeError("sequenceNumber must be a number.");if(!Number.isInteger(o)||o<0)throw new TypeError("byteLength must be a non-negative integer.");this.byteLength=o}get isMetadataOnly(){return this.data===ot}get microsecondTimestamp(){return Math.trunc(Vt*this.timestamp)}get microsecondDuration(){return Math.trunc(Vt*this.duration)}toEncodedVideoChunk(){if(this.isMetadataOnly)throw new TypeError("Metadata-only packets cannot be converted to a video chunk.");if(typeof EncodedVideoChunk>"u")throw new Error("Your browser does not support EncodedVideoChunk.");return new EncodedVideoChunk({data:this.data,type:this.type,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration})}toEncodedAudioChunk(){if(this.isMetadataOnly)throw new TypeError("Metadata-only packets cannot be converted to an audio chunk.");if(typeof EncodedAudioChunk>"u")throw new Error("Your browser does not support EncodedAudioChunk.");return new EncodedAudioChunk({data:this.data,type:this.type,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration})}static fromEncodedChunk(e){if(!(e instanceof EncodedVideoChunk||e instanceof EncodedAudioChunk))throw new TypeError("chunk must be an EncodedVideoChunk or EncodedAudioChunk.");let t=new Uint8Array(e.byteLength);return e.copyTo(t),new r(t,e.type,e.timestamp/1e6,(e.duration??0)/1e6)}clone(e){if(e!==void 0&&(typeof e!="object"||e===null))throw new TypeError("options, when provided, must be an object.");if(e?.timestamp!==void 0&&!Number.isFinite(e.timestamp))throw new TypeError("options.timestamp, when provided, must be a number.");if(e?.duration!==void 0&&!Number.isFinite(e.duration))throw new TypeError("options.duration, when provided, must be a number.");return new r(this.data,this.type,e?.timestamp??this.timestamp,e?.duration??this.duration,this.sequenceNumber,this.byteLength)}};var Kx=r=>{let i=r,s=4096,n=0,o=12,a=0;for(i<0&&(i=-i,n=128),i+=33,i>8191&&(i=8191);(i&s)!==s&&o>=5;)s>>=1,o--;return a=i>>o-4&15,~(n|o-5<<4|a)&255},Qx=r=>{let t=0,i=0,s=~r;s&128&&(s&=-129,t=-1),i=((s&240)>>4)+5;let n=(1<<i|(s&15)<<i-4|1<<i-5)-33;return t===0?n:-n},Zx=r=>{let t=2048,i=0,s=11,n=0,o=r;for(o<0&&(o=-o,i=128),o>4095&&(o=4095);(o&t)!==t&&s>=5;)t>>=1,s--;return n=o>>(s===4?1:s-4)&15,(i|s-4<<4|n)^85},Jx=r=>{let e=0,t=0,i=r^85;i&128&&(i&=-129,e=-1),t=((i&240)>>4)+4;let s=0;return t!==4?s=1<<t|(i&15)<<t-4|1<<t-5:s=i<<1|1,e===0?s:-s};var $t=class r{get displayWidth(){return this.rotation%180===0?this.codedWidth:this.codedHeight}get displayHeight(){return this.rotation%180===0?this.codedHeight:this.codedWidth}get microsecondTimestamp(){return Math.trunc(Vt*this.timestamp)}get microsecondDuration(){return Math.trunc(Vt*this.duration)}constructor(e,t){if(this._closed=!1,e instanceof ArrayBuffer||ArrayBuffer.isView(e)){if(!t||typeof t!="object")throw new TypeError("init must be an object.");if(!("format"in t)||typeof t.format!="string")throw new TypeError("init.format must be a string.");if(!Number.isInteger(t.codedWidth)||t.codedWidth<=0)throw new TypeError("init.codedWidth must be a positive integer.");if(!Number.isInteger(t.codedHeight)||t.codedHeight<=0)throw new TypeError("init.codedHeight must be a positive integer.");if(t.rotation!==void 0&&![0,90,180,270].includes(t.rotation))throw new TypeError("init.rotation, when provided, must be 0, 90, 180, or 270.");if(!Number.isFinite(t.timestamp))throw new TypeError("init.timestamp must be a number.");if(t.duration!==void 0&&(!Number.isFinite(t.duration)||t.duration<0))throw new TypeError("init.duration, when provided, must be a non-negative number.");this._data=zt(e).slice(),this.format=t.format,this.codedWidth=t.codedWidth,this.codedHeight=t.codedHeight,this.rotation=t.rotation??0,this.timestamp=t.timestamp,this.duration=t.duration??0,this.colorSpace=new VideoColorSpace(t.colorSpace)}else if(typeof VideoFrame<"u"&&e instanceof VideoFrame){if(t?.rotation!==void 0&&![0,90,180,270].includes(t.rotation))throw new TypeError("init.rotation, when provided, must be 0, 90, 180, or 270.");if(t?.timestamp!==void 0&&!Number.isFinite(t?.timestamp))throw new TypeError("init.timestamp, when provided, must be a number.");if(t?.duration!==void 0&&(!Number.isFinite(t.duration)||t.duration<0))throw new TypeError("init.duration, when provided, must be a non-negative number.");this._data=e,this.format=e.format,this.codedWidth=e.codedWidth,this.codedHeight=e.codedHeight,this.rotation=t?.rotation??0,this.timestamp=t?.timestamp??e.timestamp/1e6,this.duration=t?.duration??(e.duration??0)/1e6,this.colorSpace=e.colorSpace}else if(typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement||typeof SVGImageElement<"u"&&e instanceof SVGImageElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap||typeof HTMLVideoElement<"u"&&e instanceof HTMLVideoElement||typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement||typeof OffscreenCanvas<"u"&&e instanceof OffscreenCanvas){if(!t||typeof t!="object")throw new TypeError("init must be an object.");if(t.rotation!==void 0&&![0,90,180,270].includes(t.rotation))throw new TypeError("init.rotation, when provided, must be 0, 90, 180, or 270.");if(!Number.isFinite(t.timestamp))throw new TypeError("init.timestamp must be a number.");if(t.duration!==void 0&&(!Number.isFinite(t.duration)||t.duration<0))throw new TypeError("init.duration, when provided, must be a non-negative number.");if(typeof VideoFrame<"u")return new r(new VideoFrame(e,{timestamp:Math.trunc(t.timestamp*Vt),duration:Math.trunc((t.duration??0)*Vt)}),t);let i=0,s=0;if("naturalWidth"in e?(i=e.naturalWidth,s=e.naturalHeight):"videoWidth"in e?(i=e.videoWidth,s=e.videoHeight):"width"in e&&(i=Number(e.width),s=Number(e.height)),!i||!s)throw new TypeError("Could not determine dimensions.");let n=new OffscreenCanvas(i,s),o=n.getContext("2d",{alpha:!1,willReadFrequently:!0});w(o),o.drawImage(e,0,0),this._data=n,this.format="RGBX",this.codedWidth=i,this.codedHeight=s,this.rotation=t.rotation??0,this.timestamp=t.timestamp,this.duration=t.duration??0,this.colorSpace=new VideoColorSpace({matrix:"rgb",primaries:"bt709",transfer:"iec61966-2-1",fullRange:!0})}else throw new TypeError("Invalid data type: Must be a BufferSource or CanvasImageSource.")}clone(){if(this._closed)throw new Error("VideoSample is closed.");return w(this._data!==null),Hn(this._data)?new r(this._data.clone(),{timestamp:this.timestamp,duration:this.duration}):this._data instanceof Uint8Array?new r(this._data.slice(),{format:this.format,codedWidth:this.codedWidth,codedHeight:this.codedHeight,timestamp:this.timestamp,duration:this.duration,colorSpace:this.colorSpace}):new r(this._data,{format:this.format,codedWidth:this.codedWidth,codedHeight:this.codedHeight,timestamp:this.timestamp,duration:this.duration,colorSpace:this.colorSpace})}close(){this._closed||(Hn(this._data)?this._data.close():this._data=null,this._closed=!0)}allocationSize(){if(this._closed)throw new Error("VideoSample is closed.");return w(this._data!==null),Hn(this._data)?this._data.allocationSize():this._data instanceof Uint8Array?this._data.byteLength:this.codedWidth*this.codedHeight*4}async copyTo(e){if(!as(e))throw new TypeError("destination must be an ArrayBuffer or an ArrayBuffer view.");if(this._closed)throw new Error("VideoSample is closed.");if(w(this._data!==null),Hn(this._data))await this._data.copyTo(e);else if(this._data instanceof Uint8Array)zt(e).set(this._data);else{let i=this._data.getContext("2d",{alpha:!1});w(i);let s=i.getImageData(0,0,this.codedWidth,this.codedHeight);zt(e).set(s.data)}}toVideoFrame(){if(this._closed)throw new Error("VideoSample is closed.");return w(this._data!==null),Hn(this._data)?new VideoFrame(this._data,{timestamp:this.microsecondTimestamp,duration:this.microsecondDuration||void 0}):this._data instanceof Uint8Array?new VideoFrame(this._data,{format:this.format,codedWidth:this.codedWidth,codedHeight:this.codedHeight,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration,colorSpace:this.colorSpace}):new VideoFrame(this._data,{timestamp:this.microsecondTimestamp,duration:this.microsecondDuration})}draw(e,t,i,s,n,o,a,c,u){let l=0,h=0,f=this.displayWidth,d=this.displayHeight,m=0,x=0,g=this.displayWidth,_=this.displayHeight;if(o!==void 0?(l=t,h=i,f=s,d=n,m=o,x=a,c!==void 0?(g=c,_=u):(g=f,_=d)):(m=t,x=i,s!==void 0&&(g=s,_=n)),!(typeof CanvasRenderingContext2D<"u"&&e instanceof CanvasRenderingContext2D||typeof OffscreenCanvasRenderingContext2D<"u"&&e instanceof OffscreenCanvasRenderingContext2D))throw new TypeError("context must be a CanvasRenderingContext2D or OffscreenCanvasRenderingContext2D.");if(!Number.isFinite(l))throw new TypeError("sx must be a number.");if(!Number.isFinite(h))throw new TypeError("sy must be a number.");if(!Number.isFinite(f)||f<0)throw new TypeError("sWidth must be a non-negative number.");if(!Number.isFinite(d)||d<0)throw new TypeError("sHeight must be a non-negative number.");if(!Number.isFinite(m))throw new TypeError("dx must be a number.");if(!Number.isFinite(x))throw new TypeError("dy must be a number.");if(!Number.isFinite(g)||g<0)throw new TypeError("dWidth must be a non-negative number.");if(!Number.isFinite(_)||_<0)throw new TypeError("dHeight must be a non-negative number.");if(this._closed)throw new Error("VideoSample is closed.");this.rotation===90?[l,h,f,d]=[h,this.codedHeight-l-f,d,f]:this.rotation===180?[l,h]=[this.codedWidth-l-f,this.codedHeight-h-d]:this.rotation===270&&([l,h,f,d]=[this.codedWidth-h-d,l,d,f]);let y=this.toCanvasImageSource();e.save();let S=m+g/2,T=x+_/2;e.translate(S,T),e.rotate(this.rotation*Math.PI/180);let C=this.rotation%180===0?1:g/_;e.scale(1/C,C),e.drawImage(y,l,h,f,d,-g/2,-_/2,g,_),e.restore()}toCanvasImageSource(){if(this._closed)throw new Error("VideoSample is closed.");if(w(this._data!==null),this._data instanceof Uint8Array){let e=this.toVideoFrame();return queueMicrotask(()=>e.close()),e}else return this._data}setRotation(e){if(![0,90,180,270].includes(e))throw new TypeError("newRotation must be 0, 90, 180, or 270.");this.rotation=e}setTimestamp(e){if(!Number.isFinite(e))throw new TypeError("newTimestamp must be a number.");this.timestamp=e}setDuration(e){if(!Number.isFinite(e)||e<0)throw new TypeError("newDuration must be a non-negative number.");this.duration=e}},Hn=r=>typeof VideoFrame<"u"&&r instanceof VideoFrame,sd=new Set(["f32","f32-planar","s16","s16-planar","s32","s32-planar","u8","u8-planar"]),Mt=class r{get microsecondTimestamp(){return Math.trunc(Vt*this.timestamp)}get microsecondDuration(){return Math.trunc(Vt*this.duration)}constructor(e){if(this._closed=!1,$n(e)){if(e.format===null)throw new TypeError("AudioData with null format is not supported.");this._data=e,this.format=e.format,this.sampleRate=e.sampleRate,this.numberOfFrames=e.numberOfFrames,this.numberOfChannels=e.numberOfChannels,this.timestamp=e.timestamp/1e6,this.duration=e.numberOfFrames/e.sampleRate}else{if(!e||typeof e!="object")throw new TypeError("Invalid AudioDataInit: must be an object.");if(!sd.has(e.format))throw new TypeError("Invalid AudioDataInit: invalid format.");if(!Number.isFinite(e.sampleRate)||e.sampleRate<=0)throw new TypeError("Invalid AudioDataInit: sampleRate must be > 0.");if(!Number.isInteger(e.numberOfChannels)||e.numberOfChannels===0)throw new TypeError("Invalid AudioDataInit: numberOfChannels must be an integer > 0.");if(!Number.isFinite(e?.timestamp))throw new TypeError("init.timestamp must be a number.");let t=e.data.byteLength/(Wn(e.format)*e.numberOfChannels);if(!Number.isInteger(t))throw new TypeError("Invalid AudioDataInit: data size is not a multiple of frame size.");this.format=e.format,this.sampleRate=e.sampleRate,this.numberOfFrames=t,this.numberOfChannels=e.numberOfChannels,this.timestamp=e.timestamp,this.duration=t/e.sampleRate;let i;if(e.data instanceof ArrayBuffer)i=new Uint8Array(e.data);else if(ArrayBuffer.isView(e.data))i=new Uint8Array(e.data.buffer,e.data.byteOffset,e.data.byteLength);else throw new TypeError("Invalid AudioDataInit: data is not a BufferSource.");let s=this.numberOfFrames*this.numberOfChannels*Wn(this.format);if(i.byteLength<s)throw new TypeError("Invalid AudioDataInit: insufficient data size.");this._data=i}}allocationSize(e){if(!e||typeof e!="object")throw new TypeError("options must be an object.");if(!Number.isInteger(e.planeIndex)||e.planeIndex<0)throw new TypeError("planeIndex must be a non-negative integer.");if(e.format!==void 0&&!sd.has(e.format))throw new TypeError("Invalid format.");if(e.frameOffset!==void 0&&(!Number.isInteger(e.frameOffset)||e.frameOffset<0))throw new TypeError("frameOffset must be a non-negative integer.");if(e.frameCount!==void 0&&(!Number.isInteger(e.frameCount)||e.frameCount<0))throw new TypeError("frameCount must be a non-negative integer.");if(this._closed)throw new Error("AudioSample is closed.");let t=e.format??this.format,i=e.frameOffset??0;if(i>=this.numberOfFrames)throw new RangeError("frameOffset out of range");let s=e.frameCount!==void 0?e.frameCount:this.numberOfFrames-i;if(s>this.numberOfFrames-i)throw new RangeError("frameCount out of range");let n=Wn(t),o=Jc(t);if(o&&e.planeIndex>=this.numberOfChannels)throw new RangeError("planeIndex out of range");if(!o&&e.planeIndex!==0)throw new RangeError("planeIndex out of range");return(o?s:s*this.numberOfChannels)*n}copyTo(e,t){if(!as(e))throw new TypeError("destination must be an ArrayBuffer or an ArrayBuffer view.");if(!t||typeof t!="object")throw new TypeError("options must be an object.");if(!Number.isInteger(t.planeIndex)||t.planeIndex<0)throw new TypeError("planeIndex must be a non-negative integer.");if(t.format!==void 0&&!sd.has(t.format))throw new TypeError("Invalid format.");if(t.frameOffset!==void 0&&(!Number.isInteger(t.frameOffset)||t.frameOffset<0))throw new TypeError("frameOffset must be a non-negative integer.");if(t.frameCount!==void 0&&(!Number.isInteger(t.frameCount)||t.frameCount<0))throw new TypeError("frameCount must be a non-negative integer.");if(this._closed)throw new Error("AudioSample is closed.");let{planeIndex:i,format:s,frameCount:n,frameOffset:o}=t,a=s??this.format;if(!a)throw new Error("Destination format not determined");let c=this.numberOfFrames,u=this.numberOfChannels,l=o??0;if(l>=c)throw new RangeError("frameOffset out of range");let h=n!==void 0?n:c-l;if(h>c-l)throw new RangeError("frameCount out of range");let f=Wn(a),d=Jc(a);if(d&&i>=u)throw new RangeError("planeIndex out of range");if(!d&&i!==0)throw new RangeError("planeIndex out of range");let x=(d?h:h*u)*f;if(e.byteLength<x)throw new RangeError("Destination buffer is too small");let g=St(e),_=RA(a);if($n(this._data))if(d)if(a==="f32-planar")this._data.copyTo(e,{planeIndex:i,frameOffset:l,frameCount:h,format:"f32-planar"});else{let y=new ArrayBuffer(h*4),S=new Float32Array(y);this._data.copyTo(S,{planeIndex:i,frameOffset:l,frameCount:h,format:"f32-planar"});let T=new DataView(y);for(let C=0;C<h;C++){let v=C*f,E=T.getFloat32(C*4,!0);_(g,v,E)}}else{let y=u,S=new Float32Array(h);for(let T=0;T<y;T++){this._data.copyTo(S,{planeIndex:T,frameOffset:l,frameCount:h,format:"f32-planar"});for(let C=0;C<h;C++){let E=(C*y+T)*f;_(g,E,S[C])}}}else{let y=this._data,S=new DataView(y.buffer,y.byteOffset,y.byteLength),T=this.format,C=BA(T),v=Wn(T),E=Jc(T);for(let D=0;D<h;D++)if(d){let A=D*f,P;E?P=(i*c+(D+l))*v:P=((D+l)*u+i)*v;let k=C(S,P);_(g,A,k)}else for(let A=0;A<u;A++){let k=(D*u+A)*f,G;E?G=(A*c+(D+l))*v:G=((D+l)*u+A)*v;let j=C(S,G);_(g,k,j)}}}clone(){if(this._closed)throw new Error("AudioSample is closed.");if($n(this._data)){let e=new r(this._data.clone());return e.setTimestamp(this.timestamp),e}else return new r({format:this.format,sampleRate:this.sampleRate,numberOfFrames:this.numberOfFrames,numberOfChannels:this.numberOfChannels,timestamp:this.timestamp,data:this._data})}close(){this._closed||($n(this._data)?this._data.close():this._data=new Uint8Array(0),this._closed=!0)}toAudioData(){if(this._closed)throw new Error("AudioSample is closed.");if($n(this._data)){if(this._data.timestamp===this.microsecondTimestamp)return this._data.clone();if(Jc(this.format)){let e=this.allocationSize({planeIndex:0,format:this.format}),t=new ArrayBuffer(e*this.numberOfChannels);for(let i=0;i<this.numberOfChannels;i++)this.copyTo(new Uint8Array(t,i*e,e),{planeIndex:i,format:this.format});return new AudioData({format:this.format,sampleRate:this.sampleRate,numberOfFrames:this.numberOfFrames,numberOfChannels:this.numberOfChannels,timestamp:this.microsecondTimestamp,data:t})}else{let e=new ArrayBuffer(this.allocationSize({planeIndex:0,format:this.format}));return this.copyTo(e,{planeIndex:0,format:this.format}),new AudioData({format:this.format,sampleRate:this.sampleRate,numberOfFrames:this.numberOfFrames,numberOfChannels:this.numberOfChannels,timestamp:this.microsecondTimestamp,data:e})}}else return new AudioData({format:this.format,sampleRate:this.sampleRate,numberOfFrames:this.numberOfFrames,numberOfChannels:this.numberOfChannels,timestamp:this.microsecondTimestamp,data:this._data})}toAudioBuffer(){if(this._closed)throw new Error("AudioSample is closed.");let e=new AudioBuffer({numberOfChannels:this.numberOfChannels,length:this.numberOfFrames,sampleRate:this.sampleRate}),t=new Float32Array(this.allocationSize({planeIndex:0,format:"f32-planar"})/4);for(let i=0;i<this.numberOfChannels;i++)this.copyTo(t,{planeIndex:i,format:"f32-planar"}),e.copyToChannel(t,i);return e}setTimestamp(e){if(!Number.isFinite(e))throw new TypeError("newTimestamp must be a number.");this.timestamp=e}},Wn=r=>{switch(r){case"u8":case"u8-planar":return 1;case"s16":case"s16-planar":return 2;case"s32":case"s32-planar":return 4;case"f32":case"f32-planar":return 4;default:throw new Error("Unknown AudioSampleFormat")}},Jc=r=>{switch(r){case"u8-planar":case"s16-planar":case"s32-planar":case"f32-planar":return!0;default:return!1}},BA=r=>{switch(r){case"u8":case"u8-planar":return(e,t)=>(e.getUint8(t)-128)/128;case"s16":case"s16-planar":return(e,t)=>e.getInt16(t,!0)/32768;case"s32":case"s32-planar":return(e,t)=>e.getInt32(t,!0)/2147483648;case"f32":case"f32-planar":return(e,t)=>e.getFloat32(t,!0)}},RA=r=>{switch(r){case"u8":case"u8-planar":return(e,t,i)=>e.setUint8(t,$e((i+1)*127.5,0,255));case"s16":case"s16-planar":return(e,t,i)=>e.setInt16(t,$e(Math.round(i*32767),-32768,32767),!0);case"s32":case"s32-planar":return(e,t,i)=>e.setInt32(t,$e(Math.round(i*2147483647),-2147483648,2147483647),!0);case"f32":case"f32-planar":return(e,t,i)=>e.setFloat32(t,i,!0)}},$n=r=>typeof AudioData<"u"&&r instanceof AudioData;var gs=r=>{if(!r||typeof r!="object")throw new TypeError("options must be an object.");if(r.metadataOnly!==void 0&&typeof r.metadataOnly!="boolean")throw new TypeError("options.metadataOnly, when defined, must be a boolean.")},Pi=r=>{if(typeof r!="number"||Number.isNaN(r))throw new TypeError("timestamp must be a number.")},Bi=class{constructor(e){if(!(e instanceof xs))throw new TypeError("track must be an InputTrack.");this._track=e}getFirstPacket(e={}){return gs(e),this._track._backing.getFirstPacket(e)}getPacket(e,t={}){return Pi(e),gs(t),this._track._backing.getPacket(e,t)}getNextPacket(e,t={}){if(!(e instanceof ge))throw new TypeError("packet must be an EncodedPacket.");return gs(t),this._track._backing.getNextPacket(e,t)}getKeyPacket(e,t={}){return Pi(e),gs(t),this._track._backing.getKeyPacket(e,t)}getNextKeyPacket(e,t={}){if(!(e instanceof ge))throw new TypeError("packet must be an EncodedPacket.");return gs(t),this._track._backing.getNextKeyPacket(e,t)}packets(e,t,i={}){if(e!==void 0&&!(e instanceof ge))throw new TypeError("startPacket must be an EncodedPacket.");if(e!==void 0&&e.isMetadataOnly&&!i?.metadataOnly)throw new TypeError("startPacket can only be metadata-only if options.metadataOnly is enabled.");if(t!==void 0&&!(t instanceof ge))throw new TypeError("endPacket must be an EncodedPacket.");gs(i);let s=[],{promise:n,resolve:o}=Ke(),{promise:a,resolve:c}=Ke(),u=!1,l=!1,h=null,f=[],d=()=>Math.max(2,f.length);return(async()=>{let m=e??await this.getFirstPacket(i);for(;m&&!l&&!(t&&m.sequenceNumber>=t?.sequenceNumber);){if(s.length>d()){({promise:a,resolve:c}=Ke()),await a;continue}s.push(m),o(),{promise:n,resolve:o}=Ke(),m=await this.getNextPacket(m,i)}u=!0,o()})().catch(m=>{h||(h=m,o())}),{async next(){for(;;){if(l)return{value:void 0,done:!0};if(h)throw h;if(s.length>0){let m=s.shift(),x=performance.now();for(f.push(x);f.length>0&&x-f[0]>=1e3;)f.shift();return c(),{value:m,done:!1}}else{if(u)return{value:void 0,done:!0};await n}}},async return(){return l=!0,c(),o(),{value:void 0,done:!0}},async throw(m){throw m},[Symbol.asyncIterator](){return this}}}},qn=class{constructor(e,t){this.onSample=e,this.onError=t}},jn=class{mediaSamplesInRange(e=0,t=1/0){Pi(e),Pi(t);let i=[],s=!1,n=null,{promise:o,resolve:a}=Ke(),{promise:c,resolve:u}=Ke(),l=!1,h=!1,f=!1,d=null;return(async()=>{let m=new Error,x=await this._createDecoder(C=>{if(u(),C.timestamp>=t&&(h=!0),h){C.close();return}n&&(C.timestamp>e?(i.push(n),s=!0):n.close()),C.timestamp>=e&&(i.push(C),s=!0),n=s?null:C,i.length>0&&(a(),{promise:o,resolve:a}=Ke())},C=>{d||(C.stack=m.stack,d=C,a())}),g=this._createPacketSink(),_=await g.getKeyPacket(e)??await g.getFirstPacket();if(!_)return;let y=_,S;if(t<1/0){let C=await g.getPacket(t),v=C?C.type==="key"&&C.timestamp===t?C:await g.getNextKeyPacket(C):null;v&&(S=v)}let T=g.packets(_,S);for(await T.next();y&&!h;){let C=e0(i.length);if(i.length+x.getDecodeQueueSize()>C){({promise:c,resolve:u}=Ke()),await c;continue}x.decode(y);let v=await T.next();if(v.done)break;y=v.value}await T.return(),f||await x.flush(),x.close(),!s&&n&&i.push(n),l=!0,a()})().catch(m=>{d||(d=m,a())}),{async next(){for(;;){if(f)return{value:void 0,done:!0};if(d)throw d;if(i.length>0){let m=i.shift();return u(),{value:m,done:!1}}else if(!l)await o;else return{value:void 0,done:!0}}},async return(){f=!0,h=!0,u(),a(),n?.close();for(let m of i)m.close();return{value:void 0,done:!0}},async throw(m){throw m},[Symbol.asyncIterator](){return this}}}mediaSamplesAtTimestamps(e){qg(e);let t=$g(e),i=[],s=[],{promise:n,resolve:o}=Ke(),{promise:a,resolve:c}=Ke(),u=!1,l=!1,h=null,f=d=>{s.push(d),o(),{promise:n,resolve:o}=Ke()};return(async()=>{let d=new Error,m=await this._createDecoder(C=>{if(c(),l){C.close();return}let v=0;for(;i.length>0&&C.timestamp-i[0]>-1e-10;)v++,i.shift();if(v>0)for(let E=0;E<v;E++)f(E<v-1?C.clone():C);else C.close()},C=>{h||(C.stack=d.stack,h=C,o())}),x=this._createPacketSink(),g=null,_=null,y=-1,S=async()=>{w(_);let C=_;for(m.decode(C);C.sequenceNumber<y;){let v=e0(s.length);for(;s.length+m.getDecodeQueueSize()>v&&!l;)({promise:a,resolve:c}=Ke()),await a;if(l)break;let E=await x.getNextPacket(C);w(E),C=E,m.decode(E)}y=-1},T=async()=>{await m.flush();for(let C=0;C<i.length;C++)f(null);i.length=0};for await(let C of t){if(Pi(C),l)break;let v=await x.getPacket(C),E=v&&await x.getKeyPacket(C);if(!E){y!==-1&&(await S(),await T()),f(null),g=null;continue}g&&(E.sequenceNumber!==_.sequenceNumber||v.timestamp<g.timestamp)&&(await S(),await T()),i.push(v.timestamp),y=Math.max(v.sequenceNumber,y),g=v,_=E}l||(y!==-1&&await S(),await T()),m.close(),u=!0,o()})().catch(d=>{h||(h=d,o())}),{async next(){for(;;){if(l)return{value:void 0,done:!0};if(h)throw h;if(s.length>0){let d=s.shift();return w(d!==void 0),c(),{value:d,done:!1}}else if(!u)await n;else return{value:void 0,done:!0}}},async return(){l=!0,c(),o();for(let d of s)d?.close();return{value:void 0,done:!0}},async throw(d){throw d},[Symbol.asyncIterator](){return this}}}},e0=r=>r===0?40:8,nd=class extends qn{constructor(e,t,i,s,n,o){super(e,t),this.rotation=n,this.timeResolution=o,this.decoder=null,this.customDecoder=null,this.customDecoderCallSerializer=new Nr,this.customDecoderQueueSize=0,this.sampleQueue=[];let a=u=>{if(this.sampleQueue.length>0&&u.timestamp>=he(this.sampleQueue).timestamp){for(let h of this.sampleQueue)this.finalizeAndEmitSample(h);this.sampleQueue.length=0}let l=Z(this.sampleQueue,u.timestamp,h=>h.timestamp);this.sampleQueue.splice(l+1,0,u)},c=Uc.find(u=>u.supports(i,s));c?(this.customDecoder=new c,this.customDecoder.codec=i,this.customDecoder.config=s,this.customDecoder.onSample=u=>{if(!(u instanceof $t))throw new TypeError("The argument passed to onSample must be a VideoSample.");a(u)},this.customDecoderCallSerializer.call(()=>this.customDecoder.init())):(this.decoder=new VideoDecoder({output:u=>a(new $t(u)),error:t}),this.decoder.configure(s))}finalizeAndEmitSample(e){e.setTimestamp(Math.round(e.timestamp*this.timeResolution)/this.timeResolution),e.setDuration(Math.round(e.duration*this.timeResolution)/this.timeResolution),e.setRotation(this.rotation),this.onSample(e)}getDecodeQueueSize(){return this.customDecoder?this.customDecoderQueueSize:(w(this.decoder),this.decoder.decodeQueueSize)}decode(e){this.customDecoder?(this.customDecoderQueueSize++,this.customDecoderCallSerializer.call(()=>this.customDecoder.decode(e)).then(()=>this.customDecoderQueueSize--)):(w(this.decoder),this.decoder.decode(e.toEncodedVideoChunk()))}async flush(){this.customDecoder?await this.customDecoderCallSerializer.call(()=>this.customDecoder.flush()):(w(this.decoder),await this.decoder.flush());for(let e of this.sampleQueue)this.finalizeAndEmitSample(e);this.sampleQueue.length=0}close(){this.customDecoder?this.customDecoderCallSerializer.call(()=>this.customDecoder.close()):(w(this.decoder),this.decoder.close());for(let e of this.sampleQueue)e.close();this.sampleQueue.length=0}},Xn=class extends jn{constructor(e){if(!(e instanceof gr))throw new TypeError("videoTrack must be an InputVideoTrack.");super(),this._videoTrack=e}async _createDecoder(e,t){if(!await this._videoTrack.canDecode())throw new Error("This video track cannot be decoded by this browser. Make sure to check decodability before using a track.");let i=this._videoTrack.codec,s=this._videoTrack.rotation,n=await this._videoTrack.getDecoderConfig(),o=this._videoTrack.timeResolution;return w(i&&n),new nd(e,t,i,n,s,o)}_createPacketSink(){return new Bi(this._videoTrack)}async getSample(e){Pi(e);for await(let t of this.mediaSamplesAtTimestamps([e]))return t;throw new Error("Internal error: Iterator returned nothing.")}samples(e=0,t=1/0){return this.mediaSamplesInRange(e,t)}samplesAtTimestamps(e){return this.mediaSamplesAtTimestamps(e)}};var od=class extends qn{constructor(e,t,i,s){super(e,t),this.decoder=null,this.customDecoder=null,this.customDecoderCallSerializer=new Nr,this.customDecoderQueueSize=0;let n=a=>{let c=s.sampleRate;a.setTimestamp(Math.round(a.timestamp*c)/c),e(a)},o=Oc.find(a=>a.supports(i,s));o?(this.customDecoder=new o,this.customDecoder.codec=i,this.customDecoder.config=s,this.customDecoder.onSample=a=>{if(!(a instanceof Mt))throw new TypeError("The argument passed to onSample must be an AudioSample.");n(a)},this.customDecoderCallSerializer.call(()=>this.customDecoder.init())):(this.decoder=new AudioDecoder({output:a=>n(new Mt(a)),error:t}),this.decoder.configure(s))}getDecodeQueueSize(){return this.customDecoder?this.customDecoderQueueSize:(w(this.decoder),this.decoder.decodeQueueSize)}decode(e){this.customDecoder?(this.customDecoderQueueSize++,this.customDecoderCallSerializer.call(()=>this.customDecoder.decode(e)).then(()=>this.customDecoderQueueSize--)):(w(this.decoder),this.decoder.decode(e.toEncodedAudioChunk()))}flush(){return this.customDecoder?this.customDecoderCallSerializer.call(()=>this.customDecoder.flush()):(w(this.decoder),this.decoder.flush())}close(){this.customDecoder?this.customDecoderCallSerializer.call(()=>this.customDecoder.close()):(w(this.decoder),this.decoder.close())}},ad=class extends qn{constructor(e,t,i){super(e,t),this.decoderConfig=i,this.currentTimestamp=null,w(Re.includes(i.codec)),this.codec=i.codec;let{dataType:s,sampleSize:n,littleEndian:o}=gt(this.codec);switch(this.inputSampleSize=n,n){case 1:s==="unsigned"?this.readInputValue=(a,c)=>a.getUint8(c)-2**7:s==="signed"?this.readInputValue=(a,c)=>a.getInt8(c):s==="ulaw"?this.readInputValue=(a,c)=>Qx(a.getUint8(c)):s==="alaw"?this.readInputValue=(a,c)=>Jx(a.getUint8(c)):w(!1);break;case 2:s==="unsigned"?this.readInputValue=(a,c)=>a.getUint16(c,o)-2**15:s==="signed"?this.readInputValue=(a,c)=>a.getInt16(c,o):w(!1);break;case 3:s==="unsigned"?this.readInputValue=(a,c)=>Nh(a,c,o)-2**23:s==="signed"?this.readInputValue=(a,c)=>jg(a,c,o):w(!1);break;case 4:s==="unsigned"?this.readInputValue=(a,c)=>a.getUint32(c,o)-2**31:s==="signed"?this.readInputValue=(a,c)=>a.getInt32(c,o):s==="float"?this.readInputValue=(a,c)=>a.getFloat32(c,o):w(!1);break;case 8:s==="float"?this.readInputValue=(a,c)=>a.getFloat64(c,o):w(!1);break;default:Gn(n),w(!1)}switch(n){case 1:s==="ulaw"||s==="alaw"?(this.outputSampleSize=2,this.outputFormat="s16",this.writeOutputValue=(a,c,u)=>a.setInt16(c,u,!0)):(this.outputSampleSize=1,this.outputFormat="u8",this.writeOutputValue=(a,c,u)=>a.setUint8(c,u+2**7));break;case 2:this.outputSampleSize=2,this.outputFormat="s16",this.writeOutputValue=(a,c,u)=>a.setInt16(c,u,!0);break;case 3:this.outputSampleSize=4,this.outputFormat="s32",this.writeOutputValue=(a,c,u)=>a.setInt32(c,u<<8,!0);break;case 4:this.outputSampleSize=4,s==="float"?(this.outputFormat="f32",this.writeOutputValue=(a,c,u)=>a.setFloat32(c,u,!0)):(this.outputFormat="s32",this.writeOutputValue=(a,c,u)=>a.setInt32(c,u,!0));break;case 8:this.outputSampleSize=4,this.outputFormat="f32",this.writeOutputValue=(a,c,u)=>a.setFloat32(c,u,!0);break;default:Gn(n),w(!1)}}getDecodeQueueSize(){return 0}decode(e){let t=St(e.data),i=e.byteLength/this.decoderConfig.numberOfChannels/this.inputSampleSize,s=i*this.decoderConfig.numberOfChannels*this.outputSampleSize,n=new ArrayBuffer(s),o=new DataView(n);for(let l=0;l<i*this.decoderConfig.numberOfChannels;l++){let h=l*this.inputSampleSize,f=l*this.outputSampleSize,d=this.readInputValue(t,h);this.writeOutputValue(o,f,d)}let a=i/this.decoderConfig.sampleRate;(this.currentTimestamp===null||Math.abs(e.timestamp-this.currentTimestamp)>=a)&&(this.currentTimestamp=e.timestamp);let c=this.currentTimestamp;this.currentTimestamp+=a;let u=new Mt({format:this.outputFormat,data:n,numberOfChannels:this.decoderConfig.numberOfChannels,sampleRate:this.decoderConfig.sampleRate,numberOfFrames:i,timestamp:c});this.onSample(u)}async flush(){}close(){}},Yn=class extends jn{constructor(e){if(!(e instanceof Ze))throw new TypeError("audioTrack must be an InputAudioTrack.");super(),this._audioTrack=e}async _createDecoder(e,t){if(!await this._audioTrack.canDecode())throw new Error("This audio track cannot be decoded by this browser. Make sure to check decodability before using a track.");let i=this._audioTrack.codec,s=await this._audioTrack.getDecoderConfig();return w(i&&s),Re.includes(s.codec)?new ad(e,t,s):new od(e,t,i,s)}_createPacketSink(){return new Bi(this._audioTrack)}async getSample(e){Pi(e);for await(let t of this.mediaSamplesAtTimestamps([e]))return t;throw new Error("Internal error: Iterator returned nothing.")}samples(e=0,t=1/0){return this.mediaSamplesInRange(e,t)}samplesAtTimestamps(e){return this.mediaSamplesAtTimestamps(e)}};var xs=class{constructor(e){this._backing=e}isVideoTrack(){return this instanceof gr}isAudioTrack(){return this instanceof Ze}get id(){return this._backing.getId()}get languageCode(){return this._backing.getLanguageCode()}get timeResolution(){return this._backing.getTimeResolution()}getFirstTimestamp(){return this._backing.getFirstTimestamp()}computeDuration(){return this._backing.computeDuration()}async computePacketStats(e=1/0){let t=new Bi(this),i=1/0,s=-1/0,n=0,o=0;for await(let a of t.packets(void 0,void 0,{metadataOnly:!0})){if(n>=e&&a.timestamp>=s)break;i=Math.min(i,a.timestamp),s=Math.max(s,a.timestamp+a.duration),n++,o+=a.byteLength}return{packetCount:n,averagePacketRate:n?Number((n/(s-i)).toPrecision(16)):0,averageBitrate:n?Number((8*o/(s-i)).toPrecision(16)):0}}},gr=class extends xs{constructor(e){super(e),this._backing=e}get type(){return"video"}get codec(){return this._backing.getCodec()}get codedWidth(){return this._backing.getCodedWidth()}get codedHeight(){return this._backing.getCodedHeight()}get rotation(){return this._backing.getRotation()}get displayWidth(){return this._backing.getRotation()%180===0?this._backing.getCodedWidth():this._backing.getCodedHeight()}get displayHeight(){return this._backing.getRotation()%180===0?this._backing.getCodedHeight():this._backing.getCodedWidth()}getColorSpace(){return this._backing.getColorSpace()}async hasHighDynamicRange(){let e=await this._backing.getColorSpace();return e.primaries==="bt2020"||e.primaries==="smpte432"||e.transfer==="pg"||e.transfer==="hlg"||e.matrix==="bt2020-ncl"}getDecoderConfig(){return this._backing.getDecoderConfig()}async getCodecParameterString(){return(await this._backing.getDecoderConfig())?.codec??null}async canDecode(){try{let e=await this._backing.getDecoderConfig();if(!e)return!1;let t=this._backing.getCodec();return w(t!==null),Uc.some(s=>s.supports(t,e))?!0:typeof VideoDecoder>"u"?!1:(await VideoDecoder.isConfigSupported(e)).supported===!0}catch(e){return console.error("Error during decodability check:",e),!1}}},Ze=class extends xs{constructor(e){super(e),this._backing=e}get type(){return"audio"}get codec(){return this._backing.getCodec()}get numberOfChannels(){return this._backing.getNumberOfChannels()}get sampleRate(){return this._backing.getSampleRate()}getDecoderConfig(){return this._backing.getDecoderConfig()}async getCodecParameterString(){return(await this._backing.getDecoderConfig())?.codec??null}async canDecode(){try{let e=await this._backing.getDecoderConfig();if(!e)return!1;let t=this._backing.getCodec();return w(t!==null),Oc.some(i=>i.supports(t,e))||e.codec.startsWith("pcm-")?!0:typeof AudioDecoder>"u"?!1:(await AudioDecoder.isConfigSupported(e)).supported===!0}catch(e){return console.error("Error during decodability check:",e),!1}}};var Et=class{constructor(e,t=1/0){this.source=e,this.maxStorableBytes=t,this.loadedSegments=[],this.loadingSegments=[],this.sourceSizePromise=null,this.nextAge=0,this.totalStoredBytes=0}async loadRange(e,t){if(t=Math.min(t,await this.source.getSize()),e>=t)return;let i=this.loadingSegments.find(c=>c.start<=e&&c.end>=t);if(i){await i.promise;return}let s=Z(this.loadedSegments,e,c=>c.start);if(s!==-1)for(let c=s;c<this.loadedSegments.length;c++){let u=this.loadedSegments[c];if(u.start>e)break;if(u.end>=t)return}this.source.onread?.(e,t);let n=this.source._read(e,t),o={start:e,end:t,promise:n};this.loadingSegments.push(o);let a=await n;Wg(this.loadingSegments,o),this.insertIntoLoadedSegments(e,a)}rangeIsLoaded(e,t){if(t<=e)return!0;let i=Z(this.loadedSegments,e,s=>s.start);if(i===-1)return!1;for(let s=i;s<this.loadedSegments.length;s++){let n=this.loadedSegments[s];if(n.start>e)break;if(n.end>=t)return!0}return!1}insertIntoLoadedSegments(e,t){let i={start:e,end:e+t.byteLength,bytes:t,view:new DataView(t.buffer),age:this.nextAge++},s=Z(this.loadedSegments,e,n=>n.start);(s===-1||this.loadedSegments[s].start<i.start)&&s++,this.loadedSegments.splice(s,0,i),this.totalStoredBytes+=t.byteLength;for(let n=s+1;n<this.loadedSegments.length;n++){let o=this.loadedSegments[n];if(o.start>=i.end)break;i.start<=o.start&&o.end<=i.end&&(this.loadedSegments.splice(n,1),n--)}for(;this.totalStoredBytes>this.maxStorableBytes&&this.loadedSegments.length>1;){let n=null,o=-1;for(let a=0;a<this.loadedSegments.length;a++){let c=this.loadedSegments[a];(!n||c.age<n.age)&&(n=c,o=a)}w(n),this.totalStoredBytes-=n.bytes.byteLength,this.loadedSegments.splice(o,1)}}getViewAndOffset(e,t){let i=Z(this.loadedSegments,e,n=>n.start),s=null;if(i!==-1)for(let n=i;n<this.loadedSegments.length;n++){let o=this.loadedSegments[n];if(o.start>e)break;if(t<=o.end){s=o;break}}if(!s)throw new Error(`No segment loaded for range [${e}, ${t}).`);return s.age=this.nextAge++,{view:s.view,offset:s.bytes.byteOffset+e-s.start}}forgetRange(e,t){if(t<=e)return;let i=Z(this.loadedSegments,e,n=>n.start);if(i===-1)return;let s=this.loadedSegments[i];s.start!==e||s.end!==t||(this.loadedSegments.splice(i,1),this.totalStoredBytes-=s.bytes.byteLength)}};var Ri=class{constructor(e){this.reader=e,this.pos=0,this.littleEndian=!0}readBytes(e){let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e);return this.pos+=e,new Uint8Array(t.buffer,i,e)}readU16(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+2);return this.pos+=2,e.getUint16(t,this.littleEndian)}readU32(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+4);return this.pos+=4,e.getUint32(t,this.littleEndian)}readAscii(e){let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e);this.pos+=e;let s="";for(let n=0;n<e;n++)s+=String.fromCharCode(t.getUint8(i+n));return s}};var xr;(function(r){r[r.PCM=1]="PCM",r[r.IEEE_FLOAT=3]="IEEE_FLOAT",r[r.ALAW=6]="ALAW",r[r.MULAW=7]="MULAW",r[r.EXTENSIBLE=65534]="EXTENSIBLE"})(xr||(xr={}));var eu=class extends Ct{constructor(e){super(e),this.metadataPromise=null,this.dataStart=-1,this.dataSize=-1,this.audioInfo=null,this.tracks=[],this.metadataReader=new Ri(e._mainReader),this.chunkReader=new Ri(new Et(e.source,64*2**20))}async readMetadata(){return this.metadataPromise??=(async()=>{let e=await this.metadataReader.reader.source.getSize(),t=this.metadataReader.readAscii(4);this.metadataReader.littleEndian=t==="RIFF";let i=Math.min(this.metadataReader.readU32()+8,e);if(this.metadataReader.readAscii(4)!=="WAVE")throw new Error("Invalid WAVE file - wrong format");for(this.metadataReader.pos=12;this.metadataReader.pos<i;){await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+8);let o=this.metadataReader.readAscii(4),a=this.metadataReader.readU32(),c=this.metadataReader.pos;o==="fmt "?await this.parseFmtChunk(a):o==="data"&&(this.dataStart=this.metadataReader.pos,this.dataSize=Math.min(a,i-this.dataStart)),this.metadataReader.pos=c+a+(a&1)}if(!this.audioInfo)throw new Error('Invalid WAVE file - missing "fmt " chunk');if(this.dataStart===-1)throw new Error('Invalid WAVE file - missing "data" chunk');let n=this.audioInfo.blockSizeInBytes;this.dataSize=Math.floor(this.dataSize/n)*n,this.tracks.push(new Ze(new cd(this)))})()}async parseFmtChunk(e){await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+e);let t=this.metadataReader.readU16(),i=this.metadataReader.readU16(),s=this.metadataReader.readU32();this.metadataReader.pos+=4;let n=this.metadataReader.readU16(),o;if(e===14?o=8:o=this.metadataReader.readU16(),e>=18&&t!==357){let a=this.metadataReader.readU16(),c=e-18;if(Math.min(c,a)>=22&&t===xr.EXTENSIBLE){this.metadataReader.pos+=6;let l=this.metadataReader.readBytes(16);t=l[0]|l[1]<<8}}(t===xr.MULAW||t===xr.ALAW)&&(o=8),this.audioInfo={format:t,numberOfChannels:i,sampleRate:s,sampleSizeInBytes:Math.ceil(o/8),blockSizeInBytes:n}}getCodec(){if(w(this.audioInfo),this.audioInfo.format===xr.MULAW)return"ulaw";if(this.audioInfo.format===xr.ALAW)return"alaw";if(this.audioInfo.format===xr.PCM){if(this.audioInfo.sampleSizeInBytes===1)return"pcm-u8";if(this.audioInfo.sampleSizeInBytes===2)return"pcm-s16";if(this.audioInfo.sampleSizeInBytes===3)return"pcm-s24";if(this.audioInfo.sampleSizeInBytes===4)return"pcm-s32"}return this.audioInfo.format===xr.IEEE_FLOAT&&this.audioInfo.sampleSizeInBytes===4?"pcm-f32":null}async getMimeType(){return"audio/wav"}async computeDuration(){return await this.readMetadata(),w(this.audioInfo),this.dataSize/this.audioInfo.blockSizeInBytes/this.audioInfo.sampleRate}async getTracks(){return await this.readMetadata(),this.tracks}},_s=2048,cd=class{constructor(e){this.demuxer=e}getId(){return 1}getCodec(){return this.demuxer.getCodec()}async getDecoderConfig(){let e=this.demuxer.getCodec();return e?(w(this.demuxer.audioInfo),{codec:e,numberOfChannels:this.demuxer.audioInfo.numberOfChannels,sampleRate:this.demuxer.audioInfo.sampleRate}):null}computeDuration(){return this.demuxer.computeDuration()}getNumberOfChannels(){return w(this.demuxer.audioInfo),this.demuxer.audioInfo.numberOfChannels}getSampleRate(){return w(this.demuxer.audioInfo),this.demuxer.audioInfo.sampleRate}getTimeResolution(){return w(this.demuxer.audioInfo),this.demuxer.audioInfo.sampleRate}getLanguageCode(){return nt}async getFirstTimestamp(){return 0}async getPacketAtIndex(e,t){w(this.demuxer.audioInfo);let i=e*_s*this.demuxer.audioInfo.blockSizeInBytes;if(i>=this.demuxer.dataSize)return null;let s=Math.min(_s*this.demuxer.audioInfo.blockSizeInBytes,this.demuxer.dataSize-i),n;if(t.metadataOnly)n=ot;else{let c=_s*this.demuxer.audioInfo.blockSizeInBytes,u=Math.ceil(2**19/c)*c,l=Math.floor(i/u)*u,h=l+u;await this.demuxer.chunkReader.reader.loadRange(this.demuxer.dataStart+l,this.demuxer.dataStart+h),this.demuxer.chunkReader.pos=this.demuxer.dataStart+i,n=this.demuxer.chunkReader.readBytes(s)}let o=e*_s/this.demuxer.audioInfo.sampleRate,a=s/this.demuxer.audioInfo.blockSizeInBytes/this.demuxer.audioInfo.sampleRate;return new ge(n,"key",o,a,e,s)}getFirstPacket(e){return this.getPacketAtIndex(0,e)}getPacket(e,t){w(this.demuxer.audioInfo);let i=Math.floor(e*this.demuxer.audioInfo.sampleRate/_s);return this.getPacketAtIndex(i,t)}getNextPacket(e,t){w(this.demuxer.audioInfo);let i=Math.round(e.timestamp*this.demuxer.audioInfo.sampleRate/_s);return this.getPacketAtIndex(i+1,t)}getKeyPacket(e,t){return this.getPacket(e,t)}getNextKeyPacket(e,t){return this.getNextPacket(e,t)}};var bs=class{getSupportedVideoCodecs(){return this.getSupportedCodecs().filter(e=>mr.includes(e))}getSupportedAudioCodecs(){return this.getSupportedCodecs().filter(e=>Lr.includes(e))}getSupportedSubtitleCodecs(){return this.getSupportedCodecs().filter(e=>ls.includes(e))}_codecUnsupportedHint(e){return""}},Kn=class extends bs{constructor(e={}){if(!e||typeof e!="object")throw new TypeError("options must be an object.");if(e.fastStart!==void 0&&![!1,"in-memory","fragmented"].includes(e.fastStart))throw new TypeError('options.fastStart, when provided, must be false, "in-memory", or "fragmented".');if(e.minimumFragmentDuration!==void 0&&(!Number.isFinite(e.minimumFragmentDuration)||e.minimumFragmentDuration<0))throw new TypeError("options.minimumFragmentDuration, when provided, must be a non-negative number.");if(e.onFtyp!==void 0&&typeof e.onFtyp!="function")throw new TypeError("options.onFtyp, when provided, must be a function.");if(e.onMoov!==void 0&&typeof e.onMoov!="function")throw new TypeError("options.onMoov, when provided, must be a function.");if(e.onMdat!==void 0&&typeof e.onMdat!="function")throw new TypeError("options.onMdat, when provided, must be a function.");if(e.onMoof!==void 0&&typeof e.onMoof!="function")throw new TypeError("options.onMoof, when provided, must be a function.");super(),this._options=e}getSupportedTrackCounts(){return{video:{min:0,max:1/0},audio:{min:0,max:1/0},subtitle:{min:0,max:1/0},total:{min:1,max:2**32-1}}}get supportsVideoRotationMetadata(){return!0}_createMuxer(e){return new Qc(e,this)}},ys=class extends Kn{get _name(){return"MP4"}get fileExtension(){return".mp4"}get mimeType(){return"video/mp4"}getSupportedCodecs(){return[...mr,...Vh,"pcm-s16","pcm-s16be","pcm-s24","pcm-s24be","pcm-s32","pcm-s32be","pcm-f32","pcm-f32be","pcm-f64","pcm-f64be",...ls]}_codecUnsupportedHint(e){return new fs().getSupportedCodecs().includes(e)?" Switching to MOV will grant support for this codec.":""}},fs=class extends Kn{get _name(){return"MOV"}get fileExtension(){return".mov"}get mimeType(){return"video/quicktime"}getSupportedCodecs(){return[...mr,...Lr]}_codecUnsupportedHint(e){return new ys().getSupportedCodecs().includes(e)?" Switching to MP4 will grant support for this codec.":""}};var Ts=class{constructor(){this._connectedTrack=null,this._closingPromise=null,this._closed=!1,this._timestampOffset=0}_ensureValidAdd(){if(!this._connectedTrack)throw new Error("Source is not connected to an output track.");if(this._connectedTrack.output.state==="canceled")throw new Error("Output has been canceled.");if(this._connectedTrack.output.state==="finalizing"||this._connectedTrack.output.state==="finalized")throw new Error("Output has been finalized.");if(this._connectedTrack.output.state==="pending")throw new Error("Output has not started.");if(this._closed)throw new Error("Source is closed.")}_start(){}async _flushAndClose(){}close(){if(this._closingPromise)return;let e=this._connectedTrack;if(!e)throw new Error("Cannot call close without connecting the source to an output track.");if(e.output.state==="pending")throw new Error("Cannot call close before output has been started.");this._closingPromise=(async()=>{await this._flushAndClose(),this._closed=!0,!(e.output.state==="finalizing"||e.output.state==="finalized")&&e.output._muxer.onTrackClose(e)})()}async _flushOrWaitForClose(){return this._closingPromise?this._closingPromise:this._flushAndClose()}},ws=class extends Ts{constructor(e){if(super(),this._connectedTrack=null,!mr.includes(e))throw new TypeError(`Invalid video codec '${e}'. Must be one of: ${mr.join(", ")}.`);this._codec=e}};var DA=r=>{if(!r||typeof r!="object")throw new TypeError("Encoding config must be an object.");if(!mr.includes(r.codec))throw new TypeError(`Invalid video codec '${r.codec}'. Must be one of: ${mr.join(", ")}.`);if(!(r.bitrate instanceof vt)&&(!Number.isInteger(r.bitrate)||r.bitrate<=0))throw new TypeError("config.bitrate must be a positive integer or a quality.");if(r.latencyMode!==void 0&&!["quality","realtime"].includes(r.latencyMode))throw new TypeError("config.latencyMode, when provided, must be 'quality' or 'realtime'.");if(r.keyFrameInterval!==void 0&&(!Number.isFinite(r.keyFrameInterval)||r.keyFrameInterval<0))throw new TypeError("config.keyFrameInterval, when provided, must be a non-negative number.");if(r.fullCodecString!==void 0&&typeof r.fullCodecString!="string")throw new TypeError("config.fullCodecString, when provided, must be a string.");if(r.fullCodecString!==void 0&&Wh(r.fullCodecString)!==r.codec)throw new TypeError(`config.fullCodecString, when provided, must be a string that matches the specified codec (${r.codec}).`);if(r.onEncodedPacket!==void 0&&typeof r.onEncodedPacket!="function")throw new TypeError("config.onEncodedChunk, when provided, must be a function.");if(r.onEncoderConfig!==void 0&&typeof r.onEncoderConfig!="function")throw new TypeError("config.onEncoderConfig, when provided, must be a function.")},ud=class{constructor(e,t){this.source=e,this.encodingConfig=t,this.ensureEncoderPromise=null,this.encoderInitialized=!1,this.encoder=null,this.muxer=null,this.lastMultipleOfKeyFrameInterval=-1,this.lastWidth=null,this.lastHeight=null,this.customEncoder=null,this.customEncoderCallSerializer=new Nr,this.customEncoderQueueSize=0,this.encoderError=null}async add(e,t,i){if(this.checkForEncoderError(),this.source._ensureValidAdd(),this.lastWidth!==null&&this.lastHeight!==null){if(e.codedWidth!==this.lastWidth||e.codedHeight!==this.lastHeight)throw new Error(`Video sample size must remain constant. Expected ${this.lastWidth}x${this.lastHeight}, got ${e.codedWidth}x${e.codedHeight}.`)}else this.lastWidth=e.codedWidth,this.lastHeight=e.codedHeight;this.encoderInitialized||(this.ensureEncoderPromise||this.ensureEncoder(e),this.encoderInitialized||await this.ensureEncoderPromise),w(this.encoderInitialized);let s=this.encodingConfig.keyFrameInterval??5,n=Math.floor(e.timestamp/s),o={...i,keyFrame:i?.keyFrame||s===0||n!==this.lastMultipleOfKeyFrameInterval};if(this.lastMultipleOfKeyFrameInterval=n,this.customEncoder){this.customEncoderQueueSize++;let a=this.customEncoderCallSerializer.call(()=>this.customEncoder.encode(e,o)).then(()=>{this.customEncoderQueueSize--,t&&e.close()}).catch(c=>{this.encoderError??=c});this.customEncoderQueueSize>=4&&await a}else{w(this.encoder);let a=e.toVideoFrame();this.encoder.encode(a,o),a.close(),t&&e.close(),this.encoder.encodeQueueSize>=4&&await new Promise(c=>this.encoder.addEventListener("dequeue",c,{once:!0}))}await this.muxer.mutex.currentPromise}async ensureEncoder(e){if(!this.encoder)return this.ensureEncoderPromise=(async()=>{let t=e.codedWidth,i=e.codedHeight,s=this.encodingConfig.bitrate instanceof vt?this.encodingConfig.bitrate._toVideoBitrate(this.encodingConfig.codec,t,i):this.encodingConfig.bitrate,n={codec:this.encodingConfig.fullCodecString??nx(this.encodingConfig.codec,t,i,s),width:t,height:i,bitrate:s,framerate:this.source._connectedTrack?.metadata.frameRate,latencyMode:this.encodingConfig.latencyMode,...lx(this.encodingConfig.codec)};this.encodingConfig.onEncoderConfig?.(n);let o=Zg.find(a=>a.supports(this.encodingConfig.codec,n));if(o)this.customEncoder=new o,this.customEncoder.codec=this.encodingConfig.codec,this.customEncoder.config=n,this.customEncoder.onPacket=(a,c)=>{if(!(a instanceof ge))throw new TypeError("The first argument passed to onPacket must be an EncodedPacket.");if(c!==void 0&&(!c||typeof c!="object"))throw new TypeError("The second argument passed to onPacket must be an object or undefined.");this.encodingConfig.onEncodedPacket?.(a,c),this.muxer.addEncodedVideoPacket(this.source._connectedTrack,a,c)},await this.customEncoder.init();else{if(typeof VideoEncoder>"u")throw new Error("VideoEncoder is not supported by this browser.");if(!(await VideoEncoder.isConfigSupported(n)).supported)throw new Error(`This specific encoder configuration (${n.codec}, ${n.bitrate} bps, ${n.width}x${n.height}) is not supported by this browser. Consider using another codec or changing your video parameters.`);this.encoder=new VideoEncoder({output:(c,u)=>{let l=ge.fromEncodedChunk(c);this.encodingConfig.onEncodedPacket?.(l,u),this.muxer.addEncodedVideoPacket(this.source._connectedTrack,l,u)},error:c=>{this.encoderError??=c}}),this.encoder.configure(n)}w(this.source._connectedTrack),this.muxer=this.source._connectedTrack.output._muxer,this.encoderInitialized=!0})()}async flushAndClose(){this.checkForEncoderError(),this.customEncoder?(this.customEncoderCallSerializer.call(()=>this.customEncoder.flush()),await this.customEncoderCallSerializer.call(()=>this.customEncoder.close())):this.encoder&&(await this.encoder.flush(),this.encoder.close()),this.checkForEncoderError()}getQueueSize(){return this.customEncoder?this.customEncoderQueueSize:this.encoder?.encodeQueueSize??0}checkForEncoderError(){if(this.encoderError)throw this.encoderError.stack=new Error().stack,this.encoderError}},Qn=class extends ws{constructor(e){DA(e),super(e.codec),this._encoder=new ud(this,e)}add(e,t){if(!(e instanceof $t))throw new TypeError("videoSample must be a VideoSample.");return this._encoder.add(e,!1,t)}_flushAndClose(){return this._encoder.flushAndClose()}};var Ss=class extends Ts{constructor(e){if(super(),this._connectedTrack=null,!Lr.includes(e))throw new TypeError(`Invalid audio codec '${e}'. Must be one of: ${Lr.join(", ")}.`);this._codec=e}};var MA=r=>{if(!r||typeof r!="object")throw new TypeError("Encoding config must be an object.");if(!Lr.includes(r.codec))throw new TypeError(`Invalid audio codec '${r.codec}'. Must be one of: ${Lr.join(", ")}.`);if(r.bitrate===void 0&&(!Re.includes(r.codec)||r.codec==="flac"))throw new TypeError("config.bitrate must be provided for compressed audio codecs.");if(r.bitrate!==void 0&&!(r.bitrate instanceof vt)&&(!Number.isInteger(r.bitrate)||r.bitrate<=0))throw new TypeError("config.bitrate, when provided, must be a positive integer or a quality.");if(r.fullCodecString!==void 0&&typeof r.fullCodecString!="string")throw new TypeError("config.fullCodecString, when provided, must be a string.");if(r.fullCodecString!==void 0&&Wh(r.fullCodecString)!==r.codec)throw new TypeError(`config.fullCodecString, when provided, must be a string that matches the specified codec (${r.codec}).`);if(r.onEncodedPacket!==void 0&&typeof r.onEncodedPacket!="function")throw new TypeError("config.onEncodedChunk, when provided, must be a function.");if(r.onEncoderConfig!==void 0&&typeof r.onEncoderConfig!="function")throw new TypeError("config.onEncoderConfig, when provided, must be a function.")},ld=class{constructor(e,t){this.source=e,this.encodingConfig=t,this.ensureEncoderPromise=null,this.encoderInitialized=!1,this.encoder=null,this.muxer=null,this.lastNumberOfChannels=null,this.lastSampleRate=null,this.isPcmEncoder=!1,this.outputSampleSize=null,this.writeOutputValue=null,this.customEncoder=null,this.customEncoderCallSerializer=new Nr,this.customEncoderQueueSize=0,this.encoderError=null}async add(e,t){if(this.checkForEncoderError(),this.source._ensureValidAdd(),this.lastNumberOfChannels!==null&&this.lastSampleRate!==null){if(e.numberOfChannels!==this.lastNumberOfChannels||e.sampleRate!==this.lastSampleRate)throw new Error(`Audio parameters must remain constant. Expected ${this.lastNumberOfChannels} channels at ${this.lastSampleRate} Hz, got ${e.numberOfChannels} channels at ${e.sampleRate} Hz.`)}else this.lastNumberOfChannels=e.numberOfChannels,this.lastSampleRate=e.sampleRate;if(this.encoderInitialized||(this.ensureEncoderPromise||this.ensureEncoder(e),this.encoderInitialized||await this.ensureEncoderPromise),w(this.encoderInitialized),this.customEncoder){this.customEncoderQueueSize++;let i=this.customEncoderCallSerializer.call(()=>this.customEncoder.encode(e)).then(()=>{this.customEncoderQueueSize--,t&&e.close()}).catch(s=>{this.encoderError??=s});this.customEncoderQueueSize>=4&&await i,await this.muxer.mutex.currentPromise}else if(this.isPcmEncoder)await this.doPcmEncoding(e,t);else{w(this.encoder);let i=e.toAudioData();this.encoder.encode(i),i.close(),t&&e.close(),this.encoder.encodeQueueSize>=4&&await new Promise(s=>this.encoder.addEventListener("dequeue",s,{once:!0})),await this.muxer.mutex.currentPromise}}async doPcmEncoding(e,t){w(this.outputSampleSize),w(this.writeOutputValue);let{numberOfChannels:i,numberOfFrames:s,sampleRate:n,timestamp:o}=e,a=2048,c=[];for(let f=0;f<s;f+=a){let d=Math.min(a,e.numberOfFrames-f),m=d*i*this.outputSampleSize,x=new ArrayBuffer(m),g=new DataView(x);c.push({frameCount:d,view:g})}let u=e.allocationSize({planeIndex:0,format:"f32-planar"}),l=new Float32Array(u/Float32Array.BYTES_PER_ELEMENT);for(let f=0;f<i;f++){e.copyTo(l,{planeIndex:f,format:"f32-planar"});for(let d=0;d<c.length;d++){let{frameCount:m,view:x}=c[d];for(let g=0;g<m;g++)this.writeOutputValue(x,(g*i+f)*this.outputSampleSize,l[d*a+g])}}t&&e.close();let h={decoderConfig:{codec:this.encodingConfig.codec,numberOfChannels:i,sampleRate:n}};for(let f=0;f<c.length;f++){let{frameCount:d,view:m}=c[f],x=m.buffer,g=f*a,_=new ge(new Uint8Array(x),"key",o+g/n,d/n);this.encodingConfig.onEncodedPacket?.(_,h),await this.muxer.addEncodedAudioPacket(this.source._connectedTrack,_,h)}}ensureEncoder(e){if(!this.encoderInitialized)return this.ensureEncoderPromise=(async()=>{let{numberOfChannels:t,sampleRate:i}=e,s=this.encodingConfig.bitrate instanceof vt?this.encodingConfig.bitrate._toAudioBitrate(this.encodingConfig.codec):this.encodingConfig.bitrate,n={codec:this.encodingConfig.fullCodecString??ax(this.encodingConfig.codec,t,i),numberOfChannels:t,sampleRate:i,bitrate:s,...hx(this.encodingConfig.codec)};this.encodingConfig.onEncoderConfig?.(n);let o=Jg.find(a=>a.supports(this.encodingConfig.codec,n));if(o)this.customEncoder=new o,this.customEncoder.codec=this.encodingConfig.codec,this.customEncoder.config=n,this.customEncoder.onPacket=(a,c)=>{if(!(a instanceof ge))throw new TypeError("The first argument passed to onPacket must be an EncodedPacket.");if(c!==void 0&&(!c||typeof c!="object"))throw new TypeError("The second argument passed to onPacket must be an object or undefined.");this.encodingConfig.onEncodedPacket?.(a,c),this.muxer.addEncodedAudioPacket(this.source._connectedTrack,a,c)},await this.customEncoder.init();else if(Re.includes(this.encodingConfig.codec))this.initPcmEncoder();else{if(typeof AudioEncoder>"u")throw new Error("AudioEncoder is not supported by this browser.");if(!(await AudioEncoder.isConfigSupported(n)).supported)throw new Error(`This specific encoder configuration (${n.codec}, ${n.bitrate} bps, ${n.numberOfChannels} channels, ${n.sampleRate} Hz) is not supported by this browser. Consider using another codec or changing your audio parameters.`);this.encoder=new AudioEncoder({output:(c,u)=>{let l=ge.fromEncodedChunk(c);this.encodingConfig.onEncodedPacket?.(l,u),this.muxer.addEncodedAudioPacket(this.source._connectedTrack,l,u)},error:c=>{this.encoderError??=c}}),this.encoder.configure(n)}w(this.source._connectedTrack),this.muxer=this.source._connectedTrack.output._muxer,this.encoderInitialized=!0})()}initPcmEncoder(){this.isPcmEncoder=!0;let e=this.encodingConfig.codec,{dataType:t,sampleSize:i,littleEndian:s}=gt(e);switch(this.outputSampleSize=i,i){case 1:t==="unsigned"?this.writeOutputValue=(n,o,a)=>n.setUint8(o,$e((a+1)*127.5,0,255)):t==="signed"?this.writeOutputValue=(n,o,a)=>{n.setInt8(o,$e(Math.round(a*128),-128,127))}:t==="ulaw"?this.writeOutputValue=(n,o,a)=>{let c=$e(Math.floor(a*32767),-32768,32767);n.setUint8(o,Kx(c))}:t==="alaw"?this.writeOutputValue=(n,o,a)=>{let c=$e(Math.floor(a*32767),-32768,32767);n.setUint8(o,Zx(c))}:w(!1);break;case 2:t==="unsigned"?this.writeOutputValue=(n,o,a)=>n.setUint16(o,$e((a+1)*32767.5,0,65535),s):t==="signed"?this.writeOutputValue=(n,o,a)=>n.setInt16(o,$e(Math.round(a*32767),-32768,32767),s):w(!1);break;case 3:t==="unsigned"?this.writeOutputValue=(n,o,a)=>Lh(n,o,$e((a+1)*83886075e-1,0,16777215),s):t==="signed"?this.writeOutputValue=(n,o,a)=>Xg(n,o,$e(Math.round(a*8388607),-8388608,8388607),s):w(!1);break;case 4:t==="unsigned"?this.writeOutputValue=(n,o,a)=>n.setUint32(o,$e((a+1)*21474836475e-1,0,4294967295),s):t==="signed"?this.writeOutputValue=(n,o,a)=>n.setInt32(o,$e(Math.round(a*2147483647),-2147483648,2147483647),s):t==="float"?this.writeOutputValue=(n,o,a)=>n.setFloat32(o,a,s):w(!1);break;case 8:t==="float"?this.writeOutputValue=(n,o,a)=>n.setFloat64(o,a,s):w(!1);break;default:Gn(i),w(!1)}}async flushAndClose(){this.checkForEncoderError(),this.customEncoder?(this.customEncoderCallSerializer.call(()=>this.customEncoder.flush()),await this.customEncoderCallSerializer.call(()=>this.customEncoder.close())):this.encoder&&(await this.encoder.flush(),this.encoder.close()),this.checkForEncoderError()}getQueueSize(){return this.customEncoder?this.customEncoderQueueSize:this.isPcmEncoder?0:this.encoder?.encodeQueueSize??0}checkForEncoderError(){if(this.encoderError)throw this.encoderError.stack=new Error().stack,this.encoderError}},Zn=class extends Ss{constructor(e){MA(e),super(e.codec),this._encoder=new ld(this,e)}add(e){if(!(e instanceof Mt))throw new TypeError("audioSample must be an AudioSample.");return this._encoder.add(e,!1)}_flushAndClose(){return this._encoder.flushAndClose()}};var Jn=class extends Ts{constructor(e){if(super(),this._connectedTrack=null,!ls.includes(e))throw new TypeError(`Invalid subtitle codec '${e}'. Must be one of: ${ls.join(", ")}.`);this._codec=e}};var t0=["video","audio","subtitle"],hd=r=>{if(!r||typeof r!="object")throw new TypeError("metadata must be an object.");if(r.languageCode!==void 0&&!us(r.languageCode))throw new TypeError("metadata.languageCode must be a three-letter, ISO 639-2/T language code.")},eo=class{constructor(e){if(this.state="pending",this._tracks=[],this._startPromise=null,this._cancelPromise=null,this._finalizePromise=null,this._mutex=new wt,!e||typeof e!="object")throw new TypeError("options must be an object.");if(!(e.format instanceof bs))throw new TypeError("options.format must be an OutputFormat.");if(!(e.target instanceof vi))throw new TypeError("options.target must be a Target.");if(e.target._output)throw new Error("Target is already used for another output.");e.target._output=this,this.format=e.format,this.target=e.target,this._writer=e.target._createWriter(),this._muxer=e.format._createMuxer(this)}addVideoTrack(e,t={}){if(!(e instanceof ws))throw new TypeError("source must be a VideoSource.");if(hd(t),t.rotation!==void 0&&![0,90,180,270].includes(t.rotation))throw new TypeError(`Invalid video rotation: ${t.rotation}. Has to be 0, 90, 180 or 270.`);if(!this.format.supportsVideoRotationMetadata&&t.rotation)throw new Error(`${this.format._name} does not support video rotation metadata.`);if(t.frameRate!==void 0&&(!Number.isFinite(t.frameRate)||t.frameRate<=0))throw new TypeError(`Invalid video frame rate: ${t.frameRate}. Must be a positive number.`);this._addTrack("video",e,t)}addAudioTrack(e,t={}){if(!(e instanceof Ss))throw new TypeError("source must be an AudioSource.");hd(t),this._addTrack("audio",e,t)}addSubtitleTrack(e,t={}){if(!(e instanceof Jn))throw new TypeError("source must be a SubtitleSource.");hd(t),this._addTrack("subtitle",e,t)}_addTrack(e,t,i){if(this.state!=="pending")throw new Error("Cannot add track after output has been started or canceled.");if(t._connectedTrack)throw new Error("Source is already used for a track.");let s=this.format.getSupportedTrackCounts(),n=this._tracks.reduce((u,l)=>u+(l.type===e?1:0),0),o=s[e].max;if(n===o)throw new Error(o===0?`${this.format._name} does not support ${e} tracks.`:`${this.format._name} does not support more than ${o} ${e} track${o===1?"":"s"}.`);let a=s.total.max;if(this._tracks.length===a)throw new Error(`${this.format._name} does not support more than ${a} tracks${a===1?"":"s"} in total.`);let c={id:this._tracks.length+1,output:this,type:e,source:t,metadata:i};if(c.type==="video"){let u=this.format.getSupportedVideoCodecs();if(u.length===0)throw new Error(`${this.format._name} does not support video tracks.`+this.format._codecUnsupportedHint(c.source._codec));if(!u.includes(c.source._codec))throw new Error(`Codec '${c.source._codec}' cannot be contained within ${this.format._name}. Supported video codecs are: ${u.map(l=>`'${l}'`).join(", ")}.`+this.format._codecUnsupportedHint(c.source._codec))}else if(c.type==="audio"){let u=this.format.getSupportedAudioCodecs();if(u.length===0)throw new Error(`${this.format._name} does not support audio tracks.`+this.format._codecUnsupportedHint(c.source._codec));if(!u.includes(c.source._codec))throw new Error(`Codec '${c.source._codec}' cannot be contained within ${this.format._name}. Supported audio codecs are: ${u.map(l=>`'${l}'`).join(", ")}.`+this.format._codecUnsupportedHint(c.source._codec))}else if(c.type==="subtitle"){let u=this.format.getSupportedSubtitleCodecs();if(u.length===0)throw new Error(`${this.format._name} does not support subtitle tracks.`+this.format._codecUnsupportedHint(c.source._codec));if(!u.includes(c.source._codec))throw new Error(`Codec '${c.source._codec}' cannot be contained within ${this.format._name}. Supported subtitle codecs are: ${u.map(l=>`'${l}'`).join(", ")}.`+this.format._codecUnsupportedHint(c.source._codec))}this._tracks.push(c),t._connectedTrack=c}async start(){let e=this.format.getSupportedTrackCounts();for(let i of t0){let s=this._tracks.reduce((o,a)=>o+(a.type===i?1:0),0),n=e[i].min;if(s<n)throw new Error(n===e[i].max?`${this.format._name} requires exactly ${n} ${i} track${n===1?"":"s"}.`:`${this.format._name} requires at least ${n} ${i} track${n===1?"":"s"}.`)}let t=e.total.min;if(this._tracks.length<t)throw new Error(t===e.total.max?`${this.format._name} requires exactly ${t} track${t===1?"":"s"}.`:`${this.format._name} requires at least ${t} track${t===1?"":"s"}.`);if(this.state==="canceled")throw new Error("Output has been canceled.");return this._startPromise?(console.warn("Output has already been started."),this._startPromise):this._startPromise=(async()=>{this.state="started",this._writer.start();let i=await this._mutex.acquire();await this._muxer.start();for(let s of this._tracks)s.source._start();i()})()}getMimeType(){return this._muxer.getMimeType()}async cancel(){if(this._cancelPromise)return console.warn("Output has already been canceled."),this._cancelPromise;if(this.state==="finalizing"||this.state==="finalized"){console.warn("Output has already been finalized.");return}return this._cancelPromise=(async()=>{this.state="canceled";let e=await this._mutex.acquire(),t=this._tracks.map(i=>i.source._flushOrWaitForClose());await Promise.all(t),await this._writer.close(),e()})()}async finalize(){if(this.state==="pending")throw new Error("Cannot finalize before starting.");if(this.state==="canceled")throw new Error("Cannot finalize after canceling.");return this._finalizePromise?(console.warn("Output has already been finalized."),this._finalizePromise):this._finalizePromise=(async()=>{this.state="finalizing";let e=await this._mutex.acquire(),t=this._tracks.map(i=>i.source._flushOrWaitForClose());await Promise.all(t),await this._muxer.finalize(),await this._writer.flush(),await this._writer.finalize(),this.state="finalized",e()})()}};var Di=class{constructor(){this._sizePromise=null,this.onread=null}getSize(){return this._sizePromise??=this._retrieveSize()}};var to=class extends Di{constructor(e){if(!(e instanceof Blob))throw new TypeError("blob must be a Blob.");super(),this._blob=e}async _read(e,t){let s=await this._blob.slice(e,t).arrayBuffer();return new Uint8Array(s)}async _retrieveSize(){return this._blob.size}},ro=class extends Di{constructor(e,t={}){if(typeof e!="string"&&!(e instanceof URL))throw new TypeError("url must be a string or URL.");if(!t||typeof t!="object")throw new TypeError("options must be an object.");if(t.requestInit!==void 0&&(!t.requestInit||typeof t.requestInit!="object"))throw new TypeError("options.requestInit, when provided, must be an object.");if(t.getRetryDelay!==void 0&&typeof t.getRetryDelay!="function")throw new TypeError("options.getRetryDelay, when provided, must be a function.");super(),this._fullData=null,this._url=e,this._options=t}async _makeRequest(e){let t={};e&&(t.Range=`bytes=${e.start}-${e.end-1}`);let i=await zh(this._url,Fc(this._options.requestInit??{},{method:"GET",headers:t}),this._options.getRetryDelay??(()=>null));if(!i.ok)throw new Error(`Error fetching ${this._url}: ${i.status} ${i.statusText}`);let s=await i.arrayBuffer();return e||(this._fullData=s),{response:s,statusCode:i.status}}async _read(e,t){if(this._fullData)return new Uint8Array(this._fullData,e,t-e);let{response:i,statusCode:s}=await this._makeRequest({start:e,end:t});return s===200?new Uint8Array(i).subarray(e,t):new Uint8Array(i)}async _retrieveSize(){if(this._fullData)return this._fullData.byteLength;let e=await zh(this._url,Fc(this._options.requestInit??{},{method:"GET",headers:{Range:"bytes=0-0"}}),this._options.getRetryDelay??(()=>null));if(e.status===206){let i=e.headers.get("Content-Range");if(i){let s=i.match(/bytes \d+-\d+\/(\d+)/);if(s&&s[1])return parseInt(s[1],10)}}let{response:t}=await this._makeRequest();return t.byteLength}};var Mi=class{constructor(e){this.reader=e,this.pos=0}readBytes(e){let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e);return this.pos+=e,new Uint8Array(t.buffer,i,e)}readU8(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+1);return this.pos++,e.getUint8(t)}readU16(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+2);return this.pos+=2,e.getUint16(t,!1)}readI16(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+2);return this.pos+=2,e.getInt16(t,!1)}readU24(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+3);this.pos+=3;let i=e.getUint16(t,!1),s=e.getUint8(t+2);return i*256+s}readU32(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+4);return this.pos+=4,e.getUint32(t,!1)}readI32(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+4);return this.pos+=4,e.getInt32(t,!1)}readU64(){let e=this.readU32(),t=this.readU32();return e*4294967296+t}readI64(){let e=this.readI32(),t=this.readU32();return e*4294967296+t}readF64(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+8);return this.pos+=8,e.getFloat64(t,!1)}readFixed_16_16(){return this.readI32()/65536}readFixed_2_30(){return this.readI32()/1073741824}readAscii(e){let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e);this.pos+=e;let s="";for(let n=0;n<e;n++)s+=String.fromCharCode(t.getUint8(i+n));return s}readIsomVariableInteger(){let e=0;for(let t=0;t<4;t++){e<<=7;let i=this.readU8();if(e|=i&127,(i&128)===0)break}return e}readBoxHeader(){let e=this.readU32(),t=this.readAscii(4),i=8;return e===1&&(e=this.readU64(),i=16),{name:t,totalSize:e,headerSize:i,contentSize:e-i}}};var ru=class extends Ct{constructor(e){super(e),this.currentTrack=null,this.tracks=[],this.metadataPromise=null,this.movieTimescale=-1,this.movieDurationInTimescale=-1,this.isQuickTime=!1,this.isFragmented=!1,this.fragmentTrackDefaults=[],this.fragments=[],this.currentFragment=null,this.fragmentLookupMutex=new wt,this.metadataReader=new Mi(e._mainReader),this.chunkReader=new Mi(new Et(e.source,64*2**20))}async computeDuration(){let e=await this.getTracks(),t=await Promise.all(e.map(i=>i.computeDuration()));return Math.max(0,...t)}async getTracks(){return await this.readMetadata(),this.tracks.map(e=>e.inputTrack)}async getMimeType(){await this.readMetadata();let e=await Promise.all(this.tracks.map(t=>t.inputTrack.getCodecParameterString()));return Kc({isQuickTime:this.isQuickTime,hasVideo:this.tracks.some(t=>t.info?.type==="video"),hasAudio:this.tracks.some(t=>t.info?.type==="audio"),codecStrings:e.filter(Boolean)})}readMetadata(){return this.metadataPromise??=(async()=>{let e=await this.metadataReader.reader.source.getSize();for(;this.metadataReader.pos<e;){await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+16);let t=this.metadataReader.pos,i=this.metadataReader.readBoxHeader();if(i.name==="ftyp"){let s=this.metadataReader.readAscii(4);this.isQuickTime=s==="qt "}else if(i.name==="moov"){await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+i.contentSize),this.readContiguousBoxes(i.contentSize);for(let s of this.tracks){let n=s.editListPreviousSegmentDurations/this.movieTimescale;s.editListOffset-=Math.round(n*s.timescale)}break}this.metadataReader.pos=t+i.totalSize}if(this.isFragmented){await this.metadataReader.reader.loadRange(e-4,e),this.metadataReader.pos=e-4;let t=this.metadataReader.readU32(),i=e-t;if(i>=0&&i<e){await this.metadataReader.reader.loadRange(i,e),this.metadataReader.pos=i;let s=this.metadataReader.readBoxHeader();s.name==="mfra"&&this.readContiguousBoxes(s.contentSize)}}})()}getSampleTableForTrack(e){if(e.sampleTable)return e.sampleTable;let t={sampleTimingEntries:[],sampleCompositionTimeOffsets:[],sampleSizes:[],keySampleIndices:null,chunkOffsets:[],sampleToChunk:[],presentationTimestamps:null,presentationTimestampIndexMap:null};if(e.sampleTable=t,this.metadataReader.pos=e.sampleTableByteOffset,this.currentTrack=e,this.traverseBox(),this.currentTrack=null,e.info?.type==="audio"&&e.info.codec&&Re.includes(e.info.codec)&&t.sampleCompositionTimeOffsets.length===0){w(e.info?.type==="audio");let s=gt(e.info.codec),n=[],o=[];for(let a=0;a<t.sampleToChunk.length;a++){let c=t.sampleToChunk[a],u=t.sampleToChunk[a+1],l=(u?u.startChunkIndex:t.chunkOffsets.length)-c.startChunkIndex;for(let h=0;h<l;h++){let f=c.startSampleIndex+h*c.samplesPerChunk,d=f+c.samplesPerChunk,m=Z(t.sampleTimingEntries,f,E=>E.startIndex),x=t.sampleTimingEntries[m],g=Z(t.sampleTimingEntries,d,E=>E.startIndex),_=t.sampleTimingEntries[g],y=x.startDecodeTimestamp+(f-x.startIndex)*x.delta,T=_.startDecodeTimestamp+(d-_.startIndex)*_.delta-y,C=he(n);C&&C.delta===T?C.count++:n.push({startIndex:c.startChunkIndex+h,startDecodeTimestamp:y,count:1,delta:T});let v=c.samplesPerChunk*s.sampleSize*e.info.numberOfChannels;o.push(v)}c.startSampleIndex=c.startChunkIndex,c.samplesPerChunk=1}t.sampleTimingEntries=n,t.sampleSizes=o}if(t.sampleCompositionTimeOffsets.length>0){t.presentationTimestamps=[];for(let s of t.sampleTimingEntries)for(let n=0;n<s.count;n++)t.presentationTimestamps.push({presentationTimestamp:s.startDecodeTimestamp+n*s.delta,sampleIndex:s.startIndex+n});for(let s of t.sampleCompositionTimeOffsets)for(let n=0;n<s.count;n++){let o=s.startIndex+n,a=t.presentationTimestamps[o];a&&(a.presentationTimestamp+=s.offset)}t.presentationTimestamps.sort((s,n)=>s.presentationTimestamp-n.presentationTimestamp),t.presentationTimestampIndexMap=Array(t.presentationTimestamps.length).fill(-1);for(let s=0;s<t.presentationTimestamps.length;s++)t.presentationTimestampIndexMap[t.presentationTimestamps[s].sampleIndex]=s}return t}async readFragment(){let e=this.metadataReader.pos;await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+16);let t=this.metadataReader.readBoxHeader();w(t.name==="moof");let i=this.metadataReader.pos;await this.metadataReader.reader.loadRange(i,i+t.contentSize),this.metadataReader.pos=e,this.traverseBox();let s=Ae(this.fragments,e,o=>o.moofOffset);w(s!==-1);let n=this.fragments[s];w(n.moofOffset===e),this.metadataReader.reader.forgetRange(i,i+t.contentSize);for(let[o,a]of n.trackData){if(a.startTimestampIsFinal)continue;let c=this.tracks.find(d=>d.id===o);this.metadataReader.pos=0;let u=null,l=null,h=Z(c.fragments,e-1,d=>d.moofOffset);h!==-1&&(u=c.fragments[h],l=u,this.metadataReader.pos=u.moofOffset+u.moofSize);let f=this.metadataReader.pos===0;for(;this.metadataReader.pos<e;){if(u?.nextFragment)u=u.nextFragment,this.metadataReader.pos=u.moofOffset+u.moofSize;else{await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+16);let d=this.metadataReader.pos,m=this.metadataReader.readBoxHeader();if(m.name==="moof"){let x=Ae(this.fragments,d,_=>_.moofOffset),g;x===-1?(this.metadataReader.pos=d,g=await this.readFragment()):g=this.fragments[x],u&&(u.nextFragment=g),u=g,f&&(g.isKnownToBeFirstFragment=!0,f=!1)}this.metadataReader.pos=d+m.totalSize}u&&u.trackData.has(o)&&(l=u)}if(l){let d=l.trackData.get(o);w(d.startTimestampIsFinal),i0(a,d.endTimestamp)}a.startTimestampIsFinal=!0}return n}readContiguousBoxes(e){let t=this.metadataReader.pos;for(;this.metadataReader.pos-t<=e-8;)this.traverseBox()}traverseBox(){let e=this.metadataReader.pos,t=this.metadataReader.readBoxHeader(),i=e+t.totalSize;switch(t.name){case"mdia":case"minf":case"dinf":case"mfra":case"edts":this.readContiguousBoxes(t.contentSize);break;case"mvhd":{let s=this.metadataReader.readU8();this.metadataReader.pos+=3,s===1?(this.metadataReader.pos+=16,this.movieTimescale=this.metadataReader.readU32(),this.movieDurationInTimescale=this.metadataReader.readU64()):(this.metadataReader.pos+=8,this.movieTimescale=this.metadataReader.readU32(),this.movieDurationInTimescale=this.metadataReader.readU32())}break;case"trak":{let s={id:-1,demuxer:this,inputTrack:null,info:null,timescale:-1,durationInMovieTimescale:-1,durationInMediaTimescale:-1,rotation:0,languageCode:nt,sampleTableByteOffset:-1,sampleTable:null,fragmentLookupTable:null,currentFragmentState:null,fragments:[],fragmentsWithKeyFrame:[],editListPreviousSegmentDurations:0,editListOffset:0};if(this.currentTrack=s,this.readContiguousBoxes(t.contentSize),s.id!==-1&&s.timescale!==-1&&s.info!==null){if(s.info.type==="video"&&s.info.width!==-1){let n=s;s.inputTrack=new gr(new dd(n)),this.tracks.push(s)}else if(s.info.type==="audio"&&s.info.numberOfChannels!==-1){let n=s;s.inputTrack=new Ze(new fd(n)),this.tracks.push(s)}}this.currentTrack=null}break;case"tkhd":{let s=this.currentTrack;w(s);let n=this.metadataReader.readU8();if(!((this.metadataReader.readU24()&1)!==0))break;if(n===0)this.metadataReader.pos+=8,s.id=this.metadataReader.readU32(),this.metadataReader.pos+=4,s.durationInMovieTimescale=this.metadataReader.readU32();else if(n===1)this.metadataReader.pos+=16,s.id=this.metadataReader.readU32(),this.metadataReader.pos+=4,s.durationInMovieTimescale=this.metadataReader.readU64();else throw new Error(`Incorrect track header version ${n}.`);this.metadataReader.pos+=2*4+2+2+2+2;let c=[this.metadataReader.readFixed_16_16(),this.metadataReader.readFixed_16_16(),this.metadataReader.readFixed_2_30(),this.metadataReader.readFixed_16_16(),this.metadataReader.readFixed_16_16(),this.metadataReader.readFixed_2_30(),this.metadataReader.readFixed_16_16(),this.metadataReader.readFixed_16_16(),this.metadataReader.readFixed_2_30()],u=Bc(Yg(GA(c),90));w(u===0||u===90||u===180||u===270),s.rotation=u}break;case"elst":{let s=this.currentTrack;w(s);let n=this.metadataReader.readU8();this.metadataReader.pos+=3;let o=!1,a=0,c=this.metadataReader.readU32();for(let u=0;u<c;u++){let l=n===1?this.metadataReader.readU64():this.metadataReader.readU32(),h=n===1?this.metadataReader.readI64():this.metadataReader.readI32(),f=this.metadataReader.readFixed_16_16();if(l!==0){if(o){console.warn("Unsupported edit list: multiple edits are not currently supported. Only using first edit.");break}if(h===-1){a+=l;continue}if(f!==1){console.warn("Unsupported edit list entry: media rate must be 1.");break}s.editListPreviousSegmentDurations=a,s.editListOffset=h,o=!0}}}break;case"mdhd":{let s=this.currentTrack;w(s);let n=this.metadataReader.readU8();this.metadataReader.pos+=3,n===0?(this.metadataReader.pos+=8,s.timescale=this.metadataReader.readU32(),s.durationInMediaTimescale=this.metadataReader.readU32()):n===1&&(this.metadataReader.pos+=16,s.timescale=this.metadataReader.readU32(),s.durationInMediaTimescale=this.metadataReader.readU64());let o=this.metadataReader.readU16();if(o>0){s.languageCode="";for(let a=0;a<3;a++)s.languageCode=String.fromCharCode(96+(o&31))+s.languageCode,o>>=5;us(s.languageCode)||(s.languageCode=nt)}}break;case"hdlr":{let s=this.currentTrack;w(s),this.metadataReader.pos+=8;let n=this.metadataReader.readAscii(4);n==="vide"?s.info={type:"video",width:-1,height:-1,codec:null,codecDescription:null,colorSpace:null,avcCodecInfo:null,hevcCodecInfo:null,vp9CodecInfo:null,av1CodecInfo:null}:n==="soun"&&(s.info={type:"audio",numberOfChannels:-1,sampleRate:-1,codec:null,codecDescription:null,aacCodecInfo:null})}break;case"stbl":{let s=this.currentTrack;w(s),s.sampleTableByteOffset=e,this.readContiguousBoxes(t.contentSize)}break;case"stsd":{let s=this.currentTrack;if(w(s),s.info===null||s.sampleTable)break;let n=this.metadataReader.readU8();this.metadataReader.pos+=3;let o=this.metadataReader.readU32();for(let a=0;a<o;a++){let c=this.metadataReader.pos,u=this.metadataReader.readBoxHeader(),l=u.name.toLowerCase();if(s.info.type==="video")l==="avc1"?s.info.codec="avc":l==="hvc1"||l==="hev1"?s.info.codec="hevc":l==="vp08"?s.info.codec="vp8":l==="vp09"?s.info.codec="vp9":l==="av01"?s.info.codec="av1":console.warn(`Unsupported video codec (sample entry type '${u.name}').`),this.metadataReader.pos+=6*1+2+2+2+3*4,s.info.width=this.metadataReader.readU16(),s.info.height=this.metadataReader.readU16(),this.metadataReader.pos+=50,this.readContiguousBoxes(c+u.totalSize-this.metadataReader.pos);else{l==="mp4a"||(l==="opus"?s.info.codec="opus":l==="flac"?s.info.codec="flac":l==="twos"||l==="sowt"||l==="raw "||l==="in24"||l==="in32"||l==="fl32"||l==="fl64"||l==="lpcm"||l==="ipcm"||l==="fpcm"||(l==="ulaw"?s.info.codec="ulaw":l==="alaw"?s.info.codec="alaw":console.warn(`Unsupported audio codec (sample entry type '${u.name}').`))),this.metadataReader.pos+=6*1+2;let h=this.metadataReader.readU16();this.metadataReader.pos+=3*2;let f=this.metadataReader.readU16(),d=this.metadataReader.readU16();this.metadataReader.pos+=2*2;let m=this.metadataReader.readU32()/65536;if(n===0&&h>0){if(h===1)this.metadataReader.pos+=4,d=8*this.metadataReader.readU32(),this.metadataReader.pos+=2*4;else if(h===2){this.metadataReader.pos+=4,m=this.metadataReader.readF64(),f=this.metadataReader.readU32(),this.metadataReader.pos+=4,d=this.metadataReader.readU32();let x=this.metadataReader.readU32();if(this.metadataReader.pos+=2*4,l==="lpcm"){let g=d+7>>3,_=!!(x&1),y=!!(x&2),S=x&4?-1:0;d>0&&d<=64&&(_?d===32&&(s.info.codec=y?"pcm-f32be":"pcm-f32"):S&1<<g-1?g===1?s.info.codec="pcm-s8":g===2?s.info.codec=y?"pcm-s16be":"pcm-s16":g===3?s.info.codec=y?"pcm-s24be":"pcm-s24":g===4&&(s.info.codec=y?"pcm-s32be":"pcm-s32"):g===1&&(s.info.codec="pcm-u8")),s.info.codec===null&&console.warn("Unsupported PCM format.")}}}s.info.numberOfChannels=f,s.info.sampleRate=m,l==="twos"?d===8?s.info.codec="pcm-s8":d===16?s.info.codec="pcm-s16be":(console.warn(`Unsupported sample size ${d} for codec 'twos'.`),s.info.codec=null):l==="sowt"?d===8?s.info.codec="pcm-s8":d===16?s.info.codec="pcm-s16":(console.warn(`Unsupported sample size ${d} for codec 'sowt'.`),s.info.codec=null):l==="raw "?s.info.codec="pcm-u8":l==="in24"?s.info.codec="pcm-s24be":l==="in32"?s.info.codec="pcm-s32be":l==="fl32"?s.info.codec="pcm-f32be":l==="fl64"?s.info.codec="pcm-f64be":l==="ipcm"?s.info.codec="pcm-s16be":l==="fpcm"&&(s.info.codec="pcm-f32be"),this.readContiguousBoxes(c+u.totalSize-this.metadataReader.pos)}}}break;case"avcC":{let s=this.currentTrack;w(s&&s.info),s.info.codecDescription=this.metadataReader.readBytes(t.contentSize)}break;case"hvcC":{let s=this.currentTrack;w(s&&s.info),s.info.codecDescription=this.metadataReader.readBytes(t.contentSize)}break;case"vpcC":{let s=this.currentTrack;w(s&&s.info?.type==="video"),this.metadataReader.pos+=4;let n=this.metadataReader.readU8(),o=this.metadataReader.readU8(),a=this.metadataReader.readU8(),c=a>>4,u=a>>1&7,l=a&1,h=this.metadataReader.readU8(),f=this.metadataReader.readU8(),d=this.metadataReader.readU8();s.info.vp9CodecInfo={profile:n,level:o,bitDepth:c,chromaSubsampling:u,videoFullRangeFlag:l,colourPrimaries:h,transferCharacteristics:f,matrixCoefficients:d}}break;case"av1C":{let s=this.currentTrack;w(s&&s.info?.type==="video"),this.metadataReader.pos+=1;let n=this.metadataReader.readU8(),o=n>>5,a=n&31,c=this.metadataReader.readU8(),u=c>>7,l=c>>6&1,h=c>>5&1,f=c>>4&1,d=c>>3&1,m=c>>2&1,x=c&3,g=o==2&&l?h?12:10:l?10:8;s.info.av1CodecInfo={profile:o,level:a,tier:u,bitDepth:g,monochrome:f,chromaSubsamplingX:d,chromaSubsamplingY:m,chromaSamplePosition:x}}break;case"colr":{let s=this.currentTrack;if(w(s&&s.info?.type==="video"),this.metadataReader.readAscii(4)!=="nclx")break;let o=this.metadataReader.readU16(),a=this.metadataReader.readU16(),c=this.metadataReader.readU16(),u=!!(this.metadataReader.readU8()&128);s.info.colorSpace={primaries:Rc[o],transfer:Dc[a],matrix:Mc[c],fullRange:u}}break;case"wave":this.readContiguousBoxes(t.contentSize);break;case"esds":{let s=this.currentTrack;w(s&&s.info?.type==="audio"),this.metadataReader.pos+=4;let n=this.metadataReader.readU8();w(n===3),this.metadataReader.readIsomVariableInteger(),this.metadataReader.pos+=2;let o=this.metadataReader.readU8(),a=(o&128)!==0,c=(o&64)!==0,u=(o&32)!==0;if(a&&(this.metadataReader.pos+=2),c){let m=this.metadataReader.readU8();this.metadataReader.pos+=m}u&&(this.metadataReader.pos+=2);let l=this.metadataReader.readU8();w(l===4);let h=this.metadataReader.readIsomVariableInteger(),f=this.metadataReader.pos,d=this.metadataReader.readU8();if(d===64||d===103?(s.info.codec="aac",s.info.aacCodecInfo={isMpeg2:d===103}):d===105||d===107?s.info.codec="mp3":d===221?s.info.codec="vorbis":console.warn(`Unsupported audio codec (objectTypeIndication ${d}) - discarding track.`),this.metadataReader.pos+=12,h>this.metadataReader.pos-f){let m=this.metadataReader.readU8();w(m===5);let x=this.metadataReader.readIsomVariableInteger();if(s.info.codecDescription=this.metadataReader.readBytes(x),s.info.codec==="aac"){let g=Hh(s.info.codecDescription);g.numberOfChannels!==null&&(s.info.numberOfChannels=g.numberOfChannels),g.sampleRate!==null&&(s.info.sampleRate=g.sampleRate)}}}break;case"enda":{let s=this.currentTrack;w(s&&s.info?.type==="audio"),this.metadataReader.readU16()&255&&(s.info.codec==="pcm-s16be"?s.info.codec="pcm-s16":s.info.codec==="pcm-s24be"?s.info.codec="pcm-s24":s.info.codec==="pcm-s32be"?s.info.codec="pcm-s32":s.info.codec==="pcm-f32be"?s.info.codec="pcm-f32":s.info.codec==="pcm-f64be"&&(s.info.codec="pcm-f64"))}break;case"pcmC":{let s=this.currentTrack;w(s&&s.info?.type==="audio"),this.metadataReader.pos+=4;let o=!!(this.metadataReader.readU8()&1),a=this.metadataReader.readU8();s.info.codec==="pcm-s16be"?o?a===16?s.info.codec="pcm-s16":a===24?s.info.codec="pcm-s24":a===32?s.info.codec="pcm-s32":(console.warn(`Invalid ipcm sample size ${a}.`),s.info.codec=null):a===16?s.info.codec="pcm-s16be":a===24?s.info.codec="pcm-s24be":a===32?s.info.codec="pcm-s32be":(console.warn(`Invalid ipcm sample size ${a}.`),s.info.codec=null):s.info.codec==="pcm-f32be"&&(o?a===32?s.info.codec="pcm-f32":a===64?s.info.codec="pcm-f64":(console.warn(`Invalid fpcm sample size ${a}.`),s.info.codec=null):a===32?s.info.codec="pcm-f32be":a===64?s.info.codec="pcm-f64be":(console.warn(`Invalid fpcm sample size ${a}.`),s.info.codec=null));break}case"dOps":{let s=this.currentTrack;w(s&&s.info?.type==="audio"),this.metadataReader.pos+=1;let n=this.metadataReader.readU8(),o=this.metadataReader.readU16(),a=this.metadataReader.readU32(),c=this.metadataReader.readI16(),u=this.metadataReader.readU8(),l;u!==0?l=this.metadataReader.readBytes(2+n):l=new Uint8Array(0);let h=new Uint8Array(19+l.byteLength),f=new DataView(h.buffer);f.setUint32(0,1332770163,!1),f.setUint32(4,1214603620,!1),f.setUint8(8,1),f.setUint8(9,n),f.setUint16(10,o,!0),f.setUint32(12,a,!0),f.setInt16(16,c,!0),f.setUint8(18,u),h.set(l,19),s.info.codecDescription=h,s.info.numberOfChannels=n,s.info.sampleRate=a}break;case"dfLa":{let s=this.currentTrack;w(s&&s.info?.type==="audio"),this.metadataReader.pos+=4;let n=127,o=128,a=this.metadataReader.pos;for(;this.metadataReader.pos<i;){let f=this.metadataReader.readU8(),d=this.metadataReader.readU24();if((f&n)===0){this.metadataReader.pos+=10;let x=this.metadataReader.readU32(),g=x>>>12,_=(x>>9&7)+1;s.info.sampleRate=g,s.info.numberOfChannels=_,this.metadataReader.pos+=20}else this.metadataReader.pos+=d;if(f&o)break}let c=this.metadataReader.pos;this.metadataReader.pos=a;let u=this.metadataReader.readBytes(c-a),l=new Uint8Array(4+u.byteLength);new DataView(l.buffer).setUint32(0,1716281667,!1),l.set(u,4),s.info.codecDescription=l}break;case"stts":{let s=this.currentTrack;if(w(s),!s.sampleTable)break;this.metadataReader.pos+=4;let n=this.metadataReader.readU32(),o=0,a=0;for(let c=0;c<n;c++){let u=this.metadataReader.readU32(),l=this.metadataReader.readU32();s.sampleTable.sampleTimingEntries.push({startIndex:o,startDecodeTimestamp:a,count:u,delta:l}),o+=u,a+=u*l}}break;case"ctts":{let s=this.currentTrack;if(w(s),!s.sampleTable)break;this.metadataReader.pos+=4;let n=this.metadataReader.readU32(),o=0;for(let a=0;a<n;a++){let c=this.metadataReader.readU32(),u=this.metadataReader.readI32();s.sampleTable.sampleCompositionTimeOffsets.push({startIndex:o,count:c,offset:u}),o+=c}}break;case"stsz":{let s=this.currentTrack;if(w(s),!s.sampleTable)break;this.metadataReader.pos+=4;let n=this.metadataReader.readU32(),o=this.metadataReader.readU32();if(n===0)for(let a=0;a<o;a++){let c=this.metadataReader.readU32();s.sampleTable.sampleSizes.push(c)}else s.sampleTable.sampleSizes.push(n)}break;case"stz2":{let s=this.currentTrack;if(w(s),!s.sampleTable)break;this.metadataReader.pos+=4,this.metadataReader.pos+=3;let n=this.metadataReader.readU8(),o=this.metadataReader.readU32(),a=this.metadataReader.readBytes(Math.ceil(o*n/8)),c=new pt(a);for(let u=0;u<o;u++){let l=c.readBits(n);s.sampleTable.sampleSizes.push(l)}}break;case"stss":{let s=this.currentTrack;if(w(s),!s.sampleTable)break;this.metadataReader.pos+=4,s.sampleTable.keySampleIndices=[];let n=this.metadataReader.readU32();for(let o=0;o<n;o++){let a=this.metadataReader.readU32()-1;s.sampleTable.keySampleIndices.push(a)}}break;case"stsc":{let s=this.currentTrack;if(w(s),!s.sampleTable)break;this.metadataReader.pos+=4;let n=this.metadataReader.readU32();for(let a=0;a<n;a++){let c=this.metadataReader.readU32()-1,u=this.metadataReader.readU32(),l=this.metadataReader.readU32();s.sampleTable.sampleToChunk.push({startSampleIndex:-1,startChunkIndex:c,samplesPerChunk:u,sampleDescriptionIndex:l})}let o=0;for(let a=0;a<s.sampleTable.sampleToChunk.length;a++)if(s.sampleTable.sampleToChunk[a].startSampleIndex=o,a<s.sampleTable.sampleToChunk.length-1){let u=s.sampleTable.sampleToChunk[a+1].startChunkIndex-s.sampleTable.sampleToChunk[a].startChunkIndex;o+=u*s.sampleTable.sampleToChunk[a].samplesPerChunk}}break;case"stco":{let s=this.currentTrack;if(w(s),!s.sampleTable)break;this.metadataReader.pos+=4;let n=this.metadataReader.readU32();for(let o=0;o<n;o++){let a=this.metadataReader.readU32();s.sampleTable.chunkOffsets.push(a)}}break;case"co64":{let s=this.currentTrack;if(w(s),!s.sampleTable)break;this.metadataReader.pos+=4;let n=this.metadataReader.readU32();for(let o=0;o<n;o++){let a=this.metadataReader.readU64();s.sampleTable.chunkOffsets.push(a)}}break;case"mvex":this.isFragmented=!0,this.readContiguousBoxes(t.contentSize);break;case"mehd":{let s=this.metadataReader.readU8();this.metadataReader.pos+=3;let n=s===1?this.metadataReader.readU64():this.metadataReader.readU32();this.movieDurationInTimescale=n}break;case"trex":{this.metadataReader.pos+=4;let s=this.metadataReader.readU32(),n=this.metadataReader.readU32(),o=this.metadataReader.readU32(),a=this.metadataReader.readU32(),c=this.metadataReader.readU32();this.fragmentTrackDefaults.push({trackId:s,defaultSampleDescriptionIndex:n,defaultSampleDuration:o,defaultSampleSize:a,defaultSampleFlags:c})}break;case"tfra":{let s=this.metadataReader.readU8();this.metadataReader.pos+=3;let n=this.metadataReader.readU32(),o=this.tracks.find(_=>_.id===n);if(!o)break;o.fragmentLookupTable=[];let a=this.metadataReader.readU32(),c=(a&48)>>4,u=(a&12)>>2,l=a&3,h=this.metadataReader,f=[h.readU8.bind(h),h.readU16.bind(h),h.readU24.bind(h),h.readU32.bind(h)],d=f[c],m=f[u],x=f[l],g=this.metadataReader.readU32();for(let _=0;_<g;_++){let y=s===1?this.metadataReader.readU64():this.metadataReader.readU32(),S=s===1?this.metadataReader.readU64():this.metadataReader.readU32(),T=d(),C=m(),v=x();o.fragmentLookupTable.push({timestamp:y,moofOffset:S})}}break;case"moof":{this.currentFragment={moofOffset:e,moofSize:t.totalSize,implicitBaseDataOffset:e,trackData:new Map,dataStart:1/0,dataEnd:0,nextFragment:null,isKnownToBeFirstFragment:!1},this.readContiguousBoxes(t.contentSize);let s=Z(this.fragments,this.currentFragment.moofOffset,n=>n.moofOffset);this.fragments.splice(s+1,0,this.currentFragment);for(let[,n]of this.currentFragment.trackData){let o=n.samples[0],a=he(n.samples);this.currentFragment.dataStart=Math.min(this.currentFragment.dataStart,o.byteOffset),this.currentFragment.dataEnd=Math.max(this.currentFragment.dataEnd,a.byteOffset+a.byteSize)}this.currentFragment=null}break;case"traf":if(w(this.currentFragment),this.readContiguousBoxes(t.contentSize),this.currentTrack){let s=this.currentFragment.trackData.get(this.currentTrack.id);if(s){let n=Z(this.currentTrack.fragments,this.currentFragment.moofOffset,c=>c.moofOffset);if(this.currentTrack.fragments.splice(n+1,0,this.currentFragment),s.firstKeyFrameTimestamp!==null){let c=Z(this.currentTrack.fragmentsWithKeyFrame,this.currentFragment.moofOffset,u=>u.moofOffset);this.currentTrack.fragmentsWithKeyFrame.splice(c+1,0,this.currentFragment)}let{currentFragmentState:a}=this.currentTrack;w(a),a.startTimestamp!==null&&(i0(s,a.startTimestamp),s.startTimestampIsFinal=!0)}this.currentTrack.currentFragmentState=null,this.currentTrack=null}break;case"tfhd":{w(this.currentFragment),this.metadataReader.pos+=1;let s=this.metadataReader.readU24(),n=!!(s&1),o=!!(s&2),a=!!(s&8),c=!!(s&16),u=!!(s&32),l=!!(s&65536),h=!!(s&131072),f=this.metadataReader.readU32(),d=this.tracks.find(x=>x.id===f);if(!d)break;let m=this.fragmentTrackDefaults.find(x=>x.trackId===f);this.currentTrack=d,d.currentFragmentState={baseDataOffset:this.currentFragment.implicitBaseDataOffset,sampleDescriptionIndex:m?.defaultSampleDescriptionIndex??null,defaultSampleDuration:m?.defaultSampleDuration??null,defaultSampleSize:m?.defaultSampleSize??null,defaultSampleFlags:m?.defaultSampleFlags??null,startTimestamp:null},n?d.currentFragmentState.baseDataOffset=this.metadataReader.readU64():h&&(d.currentFragmentState.baseDataOffset=this.currentFragment.moofOffset),o&&(d.currentFragmentState.sampleDescriptionIndex=this.metadataReader.readU32()),a&&(d.currentFragmentState.defaultSampleDuration=this.metadataReader.readU32()),c&&(d.currentFragmentState.defaultSampleSize=this.metadataReader.readU32()),u&&(d.currentFragmentState.defaultSampleFlags=this.metadataReader.readU32()),l&&(d.currentFragmentState.defaultSampleDuration=0)}break;case"tfdt":{let s=this.currentTrack;if(!s)break;w(s.currentFragmentState);let n=this.metadataReader.readU8();this.metadataReader.pos+=3;let o=n===0?this.metadataReader.readU32():this.metadataReader.readU64();s.currentFragmentState.startTimestamp=o}break;case"trun":{let s=this.currentTrack;if(!s)break;if(w(this.currentFragment),w(s.currentFragmentState),this.currentFragment.trackData.has(s.id)){console.warn("Can't have two trun boxes for the same track in one fragment. Ignoring...");break}let n=this.metadataReader.readU8(),o=this.metadataReader.readU24(),a=!!(o&1),c=!!(o&4),u=!!(o&256),l=!!(o&512),h=!!(o&1024),f=!!(o&2048),d=this.metadataReader.readU32(),m=s.currentFragmentState.baseDataOffset;a&&(m+=this.metadataReader.readI32());let x=null;c&&(x=this.metadataReader.readU32());let g=m;if(d===0){this.currentFragment.implicitBaseDataOffset=g;break}let _=0,y={startTimestamp:0,endTimestamp:0,firstKeyFrameTimestamp:null,samples:[],presentationTimestamps:[],startTimestampIsFinal:!1};this.currentFragment.trackData.set(s.id,y);for(let C=0;C<d;C++){let v;u?v=this.metadataReader.readU32():(w(s.currentFragmentState.defaultSampleDuration!==null),v=s.currentFragmentState.defaultSampleDuration);let E;l?E=this.metadataReader.readU32():(w(s.currentFragmentState.defaultSampleSize!==null),E=s.currentFragmentState.defaultSampleSize);let D;h?D=this.metadataReader.readU32():(w(s.currentFragmentState.defaultSampleFlags!==null),D=s.currentFragmentState.defaultSampleFlags),C===0&&x!==null&&(D=x);let A=0;f&&(n===0?A=this.metadataReader.readU32():A=this.metadataReader.readI32());let P=!(D&65536);y.samples.push({presentationTimestamp:_+A,duration:v,byteOffset:g,byteSize:E,isKeyFrame:P}),g+=E,_+=v}y.presentationTimestamps=y.samples.map((C,v)=>({presentationTimestamp:C.presentationTimestamp,sampleIndex:v})).sort((C,v)=>C.presentationTimestamp-v.presentationTimestamp);for(let C=0;C<y.presentationTimestamps.length;C++){let v=y.presentationTimestamps[C],E=y.samples[v.sampleIndex];if(y.firstKeyFrameTimestamp===null&&E.isKeyFrame&&(y.firstKeyFrameTimestamp=E.presentationTimestamp),C<y.presentationTimestamps.length-1){let D=y.presentationTimestamps[C+1];E.duration=D.presentationTimestamp-v.presentationTimestamp}}let S=y.samples[y.presentationTimestamps[0].sampleIndex],T=y.samples[he(y.presentationTimestamps).sampleIndex];y.startTimestamp=S.presentationTimestamp,y.endTimestamp=T.presentationTimestamp+T.duration,this.currentFragment.implicitBaseDataOffset=g}break}this.metadataReader.pos=i}},iu=class{constructor(e){this.internalTrack=e,this.packetToSampleIndex=new WeakMap,this.packetToFragmentLocation=new WeakMap}getId(){return this.internalTrack.id}getCodec(){throw new Error("Not implemented on base class.")}getLanguageCode(){return this.internalTrack.languageCode}getTimeResolution(){return this.internalTrack.timescale}async computeDuration(){let e=await this.getPacket(1/0,{metadataOnly:!0});return(e?.timestamp??0)+(e?.duration??0)}async getFirstTimestamp(){return(await this.getFirstPacket({metadataOnly:!0}))?.timestamp??0}async getFirstPacket(e){return this.internalTrack.demuxer.isFragmented?this.performFragmentedLookup(()=>{let t=this.internalTrack.demuxer.fragments[0]??null;if(t?.isKnownToBeFirstFragment){let i=t;for(;i;){if(i.trackData.get(this.internalTrack.id))return{fragmentIndex:Ae(this.internalTrack.fragments,i.moofOffset,n=>n.moofOffset),sampleIndex:0,correctSampleFound:!0};i=i.nextFragment}}return{fragmentIndex:-1,sampleIndex:-1,correctSampleFound:!1}},-1/0,1/0,e):this.fetchPacketForSampleIndex(0,e)}mapTimestampIntoTimescale(e){return cs(e*this.internalTrack.timescale,14)+this.internalTrack.editListOffset}async getPacket(e,t){let i=this.mapTimestampIntoTimescale(e);if(this.internalTrack.demuxer.isFragmented)return this.performFragmentedLookup(()=>this.findSampleInFragmentsForTimestamp(i),i,i,t);{let s=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),n=r0(s,i);return this.fetchPacketForSampleIndex(n,t)}}async getNextPacket(e,t){if(this.internalTrack.demuxer.isFragmented){let s=this.packetToFragmentLocation.get(e);if(s===void 0)throw new Error("Packet was not created from this track.");let n=s.fragment.trackData.get(this.internalTrack.id),o=n.samples[s.sampleIndex],a=Ae(this.internalTrack.fragments,s.fragment.moofOffset,c=>c.moofOffset);return w(a!==-1),this.performFragmentedLookup(()=>{if(s.sampleIndex+1<n.samples.length)return{fragmentIndex:a,sampleIndex:s.sampleIndex+1,correctSampleFound:!0};{let c=s.fragment;for(;c.nextFragment;)if(c=c.nextFragment,c.trackData.get(this.internalTrack.id)){let l=Ae(this.internalTrack.fragments,c.moofOffset,h=>h.moofOffset);return w(l!==-1),{fragmentIndex:l,sampleIndex:0,correctSampleFound:!0}}return{fragmentIndex:a,sampleIndex:-1,correctSampleFound:!1}}},o.presentationTimestamp,1/0,t)}let i=this.packetToSampleIndex.get(e);if(i===void 0)throw new Error("Packet was not created from this track.");return this.fetchPacketForSampleIndex(i+1,t)}async getKeyPacket(e,t){let i=this.mapTimestampIntoTimescale(e);if(this.internalTrack.demuxer.isFragmented)return this.performFragmentedLookup(()=>this.findKeySampleInFragmentsForTimestamp(i),i,i,t);let s=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),n=r0(s,i),o=n===-1?-1:UA(s,n);return this.fetchPacketForSampleIndex(o,t)}async getNextKeyPacket(e,t){if(this.internalTrack.demuxer.isFragmented){let o=this.packetToFragmentLocation.get(e);if(o===void 0)throw new Error("Packet was not created from this track.");let a=o.fragment.trackData.get(this.internalTrack.id),c=a.samples[o.sampleIndex],u=Ae(this.internalTrack.fragments,o.fragment.moofOffset,l=>l.moofOffset);return w(u!==-1),this.performFragmentedLookup(()=>{let l=a.samples.findIndex((h,f)=>h.isKeyFrame&&f>o.sampleIndex);if(l!==-1)return{fragmentIndex:u,sampleIndex:l,correctSampleFound:!0};{let h=o.fragment;for(;h.nextFragment;){h=h.nextFragment;let f=h.trackData.get(this.internalTrack.id);if(f&&f.firstKeyFrameTimestamp!==null){let d=Ae(this.internalTrack.fragments,h.moofOffset,x=>x.moofOffset);w(d!==-1);let m=f.samples.findIndex(x=>x.isKeyFrame);return w(m!==-1),{fragmentIndex:d,sampleIndex:m,correctSampleFound:!0}}}return{fragmentIndex:u,sampleIndex:-1,correctSampleFound:!1}}},c.presentationTimestamp,1/0,t)}let i=this.packetToSampleIndex.get(e);if(i===void 0)throw new Error("Packet was not created from this track.");let s=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),n=OA(s,i);return this.fetchPacketForSampleIndex(n,t)}async fetchPacketForSampleIndex(e,t){if(e===-1)return null;let i=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),s=FA(i,e);if(!s)return null;let n;t.metadataOnly?n=ot:(await this.internalTrack.demuxer.chunkReader.reader.loadRange(s.chunkOffset,s.chunkOffset+s.chunkSize),this.internalTrack.demuxer.chunkReader.pos=s.sampleOffset,n=this.internalTrack.demuxer.chunkReader.readBytes(s.sampleSize));let o=(s.presentationTimestamp-this.internalTrack.editListOffset)/this.internalTrack.timescale,a=s.duration/this.internalTrack.timescale,c=new ge(n,s.isKeyFrame?"key":"delta",o,a,e,s.sampleSize);return this.packetToSampleIndex.set(c,e),c}async fetchPacketInFragment(e,t,i){if(t===-1)return null;let n=e.trackData.get(this.internalTrack.id).samples[t];w(n);let o;i.metadataOnly?o=ot:(await this.internalTrack.demuxer.chunkReader.reader.loadRange(e.dataStart,e.dataEnd),this.internalTrack.demuxer.chunkReader.pos=n.byteOffset,o=this.internalTrack.demuxer.chunkReader.readBytes(n.byteSize));let a=(n.presentationTimestamp-this.internalTrack.editListOffset)/this.internalTrack.timescale,c=n.duration/this.internalTrack.timescale,u=new ge(o,n.isKeyFrame?"key":"delta",a,c,e.moofOffset+t,n.byteSize);return this.packetToFragmentLocation.set(u,{fragment:e,sampleIndex:t}),u}findSampleInFragmentsForTimestamp(e){let t=Z(this.internalTrack.fragments,e,n=>n.trackData.get(this.internalTrack.id).startTimestamp),i=-1,s=!1;if(t!==-1){let o=this.internalTrack.fragments[t].trackData.get(this.internalTrack.id),a=Z(o.presentationTimestamps,e,c=>c.presentationTimestamp);w(a!==-1),i=o.presentationTimestamps[a].sampleIndex,s=e<o.endTimestamp}return{fragmentIndex:t,sampleIndex:i,correctSampleFound:s}}findKeySampleInFragmentsForTimestamp(e){let t=Z(this.internalTrack.fragmentsWithKeyFrame,e,o=>o.trackData.get(this.internalTrack.id).startTimestamp),i=-1,s=-1,n=!1;if(t!==-1){let o=this.internalTrack.fragmentsWithKeyFrame[t];i=Ae(this.internalTrack.fragments,o.moofOffset,l=>l.moofOffset),w(i!==-1);let a=o.trackData.get(this.internalTrack.id),c=Ic(a.presentationTimestamps,l=>a.samples[l.sampleIndex].isKeyFrame&&l.presentationTimestamp<=e);w(c!==-1),s=a.presentationTimestamps[c].sampleIndex,n=e<a.endTimestamp}return{fragmentIndex:i,sampleIndex:s,correctSampleFound:n}}async performFragmentedLookup(e,t,i,s){let n=this.internalTrack.demuxer,o=await n.fragmentLookupMutex.acquire();try{let{fragmentIndex:a,sampleIndex:c,correctSampleFound:u}=e();if(u){let T=this.internalTrack.fragments[a];return this.fetchPacketInFragment(T,c,s)}let l=n.metadataReader,h=await l.reader.source.getSize(),f=null,d=a,m=c,x=this.internalTrack.fragmentLookupTable?Z(this.internalTrack.fragmentLookupTable,t,T=>T.timestamp):-1,g=x!==-1?this.internalTrack.fragmentLookupTable[x]:null,_=!1;if(a===-1)l.pos=g?.moofOffset??0,_=l.pos===0;else{let T=this.internalTrack.fragments[a];!g||T.moofOffset>=g.moofOffset?(l.pos=T.moofOffset+T.moofSize,f=T):l.pos=g.moofOffset}for(;l.pos<h;){if(f){let v=f.trackData.get(this.internalTrack.id);if(v&&v.startTimestamp>i)break;if(f.nextFragment){l.pos=f.nextFragment.moofOffset+f.nextFragment.moofSize,f=f.nextFragment;continue}}await l.reader.loadRange(l.pos,l.pos+16);let T=l.pos,C=l.readBoxHeader();if(C.name==="moof"){let v=Ae(n.fragments,T,k=>k.moofOffset),E;v===-1?(l.pos=T,E=await n.readFragment()):E=n.fragments[v],f&&(f.nextFragment=E),f=E,_&&(E.isKnownToBeFirstFragment=!0,_=!1);let{fragmentIndex:D,sampleIndex:A,correctSampleFound:P}=e();if(P){let k=this.internalTrack.fragments[D];return this.fetchPacketInFragment(k,A,s)}D!==-1&&(d=D,m=A)}l.pos=T+C.totalSize}let y=null,S=d!==-1?this.internalTrack.fragments[d]:null;if(S&&(y=await this.fetchPacketInFragment(S,m,s)),!y&&g&&(!S||S.moofOffset<g.moofOffset)){let C=this.internalTrack.fragmentLookupTable[x-1]?.timestamp??-1/0;return this.performFragmentedLookup(e,C,i,s)}return y}finally{o()}}},dd=class extends iu{constructor(e){super(e),this.decoderConfigPromise=null,this.internalTrack=e}getCodec(){return this.internalTrack.info.codec}getCodedWidth(){return this.internalTrack.info.width}getCodedHeight(){return this.internalTrack.info.height}getRotation(){return this.internalTrack.rotation}async getColorSpace(){return{primaries:this.internalTrack.info.colorSpace?.primaries,transfer:this.internalTrack.info.colorSpace?.transfer,matrix:this.internalTrack.info.colorSpace?.matrix,fullRange:this.internalTrack.info.colorSpace?.fullRange}}async getDecoderConfig(){return this.internalTrack.info.codec?this.decoderConfigPromise??=(async()=>{if(this.internalTrack.info.codec==="vp9"&&!this.internalTrack.info.vp9CodecInfo){let e=await this.getFirstPacket({});this.internalTrack.info.vp9CodecInfo=e&&Vc(e.data)}else if(this.internalTrack.info.codec==="av1"&&!this.internalTrack.info.av1CodecInfo){let e=await this.getFirstPacket({});this.internalTrack.info.av1CodecInfo=e&&Hc(e.data)}return{codec:Gc(this.internalTrack.info),codedWidth:this.internalTrack.info.width,codedHeight:this.internalTrack.info.height,description:this.internalTrack.info.codecDescription??void 0,colorSpace:this.internalTrack.info.colorSpace??void 0}})():null}},fd=class extends iu{constructor(e){super(e),this.decoderConfig=null,this.internalTrack=e}getCodec(){return this.internalTrack.info.codec}getNumberOfChannels(){return this.internalTrack.info.numberOfChannels}getSampleRate(){return this.internalTrack.info.sampleRate}async getDecoderConfig(){return this.internalTrack.info.codec?this.decoderConfig??={codec:Nc(this.internalTrack.info),numberOfChannels:this.internalTrack.info.numberOfChannels,sampleRate:this.internalTrack.info.sampleRate,description:this.internalTrack.info.codecDescription??void 0}:null}},r0=(r,e)=>{if(r.presentationTimestamps){let t=Z(r.presentationTimestamps,e,i=>i.presentationTimestamp);return t===-1?-1:r.presentationTimestamps[t].sampleIndex}else{let t=Z(r.sampleTimingEntries,e,s=>s.startDecodeTimestamp);if(t===-1)return-1;let i=r.sampleTimingEntries[t];return i.startIndex+Math.min(Math.floor((e-i.startDecodeTimestamp)/i.delta),i.count-1)}},FA=(r,e)=>{let t=Z(r.sampleTimingEntries,e,_=>_.startIndex),i=r.sampleTimingEntries[t];if(!i||i.startIndex+i.count<=e)return null;let n=i.startDecodeTimestamp+(e-i.startIndex)*i.delta,o=Z(r.sampleCompositionTimeOffsets,e,_=>_.startIndex),a=r.sampleCompositionTimeOffsets[o];a&&e-a.startIndex<a.count&&(n+=a.offset);let c=r.sampleSizes[Math.min(e,r.sampleSizes.length-1)],u=Z(r.sampleToChunk,e,_=>_.startSampleIndex),l=r.sampleToChunk[u];w(l);let h=l.startChunkIndex+Math.floor((e-l.startSampleIndex)/l.samplesPerChunk),f=r.chunkOffsets[h],d=l.startSampleIndex+(h-l.startChunkIndex)*l.samplesPerChunk,m=0,x=f;if(r.sampleSizes.length===1)x+=c*(e-d),m+=c*l.samplesPerChunk;else for(let _=d;_<d+l.samplesPerChunk;_++){let y=r.sampleSizes[_];_<e&&(x+=y),m+=y}let g=i.delta;if(r.presentationTimestamps){let _=r.presentationTimestampIndexMap[e];w(_!==void 0),_<r.presentationTimestamps.length-1&&(g=r.presentationTimestamps[_+1].presentationTimestamp-n)}return{presentationTimestamp:n,duration:g,sampleOffset:x,sampleSize:c,chunkOffset:f,chunkSize:m,isKeyFrame:r.keySampleIndices?Ae(r.keySampleIndices,e,_=>_)!==-1:!0}},UA=(r,e)=>{if(!r.keySampleIndices)return e;let t=Z(r.keySampleIndices,e,i=>i);return r.keySampleIndices[t]??-1},OA=(r,e)=>{if(!r.keySampleIndices)return e+1;let t=Z(r.keySampleIndices,e,i=>i);return r.keySampleIndices[t+1]??-1},i0=(r,e)=>{r.startTimestamp+=e,r.endTimestamp+=e;for(let t of r.samples)t.presentationTimestamp+=e;for(let t of r.presentationTimestamps)t.presentationTimestamp+=e},GA=r=>{let[e,,,t]=r,i=Math.hypot(e,t),s=e/i,n=t/i;return-Math.atan2(n,s)*(180/Math.PI)};var md=[{id:I.SeekHead,flag:"seekHeadSeen"},{id:I.Info,flag:"infoSeen"},{id:I.Tracks,flag:"tracksSeen"},{id:I.Cues,flag:"cuesSeen"}],su=class extends Ct{constructor(e){super(e),this.readMetadataPromise=null,this.segments=[],this.currentSegment=null,this.currentTrack=null,this.currentCluster=null,this.currentBlock=null,this.currentCueTime=null,this.isWebM=!1,this.metadataReader=new Ei(e._mainReader),this.clusterReader=new Ei(new Et(e.source,64*2**20))}async computeDuration(){let e=await this.getTracks(),t=await Promise.all(e.map(i=>i.computeDuration()));return Math.max(0,...t)}async getTracks(){return await this.readMetadata(),this.segments.flatMap(e=>e.tracks.map(t=>t.inputTrack))}async getMimeType(){await this.readMetadata();let e=await this.getTracks(),t=await Promise.all(e.map(i=>i.getCodecParameterString()));return Lx({isWebM:this.isWebM,hasVideo:this.segments.some(i=>i.tracks.some(s=>s.info?.type==="video")),hasAudio:this.segments.some(i=>i.tracks.some(s=>s.info?.type==="audio")),codecStrings:t.filter(Boolean)})}readMetadata(){return this.readMetadataPromise??=(async()=>{this.metadataReader.pos=0;let e=await this.input.source.getSize();for(;this.metadataReader.pos<=e-Zc;){await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+Ci);let{id:t,size:i}=this.metadataReader.readElementHeader(),s=this.metadataReader.pos;if(t===I.EBML)ki(i),await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+i),this.readContiguousElements(this.metadataReader,i);else if(t===I.Segment&&(await this.readSegment(i),i===null))break;ki(i),this.metadataReader.pos=s+i}})()}async readSegment(e){let t=this.metadataReader.pos;this.currentSegment={seekHeadSeen:!1,infoSeen:!1,tracksSeen:!1,cuesSeen:!1,timestampScale:-1,timestampFactor:-1,duration:-1,seekEntries:[],tracks:[],cuePoints:[],dataStartPos:t,elementEndPos:e===null?await this.input.source.getSize():t+e,clusterSeekStartPos:t,clusters:[],clusterLookupMutex:new wt},this.segments.push(this.currentSegment),await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+2**14);let i=!1;for(;this.metadataReader.pos<this.currentSegment.elementEndPos;){await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+Ci);let c=this.metadataReader.pos,{id:u,size:l}=this.metadataReader.readElementHeader(),h=this.metadataReader.pos,f=md.findIndex(d=>d.id===u);if(f!==-1){let d=md[f].flag;this.currentSegment[d]=!0,ki(l),await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+l),this.readContiguousElements(this.metadataReader,l)}else u===I.Cluster&&(i||(i=!0,this.currentSegment.clusterSeekStartPos=c));if(this.currentSegment.infoSeen&&this.currentSegment.tracksSeen&&this.currentSegment.cuesSeen)break;if(this.currentSegment.seekHeadSeen){let d=this.currentSegment.infoSeen,m=this.currentSegment.tracksSeen,x=this.currentSegment.cuesSeen;for(let g of this.currentSegment.seekEntries)g.id===I.Info?d=!0:g.id===I.Tracks?m=!0:g.id===I.Cues&&(x=!0);if(d&&m&&x)break}if(l===null)break;this.metadataReader.pos=h+l,i||(this.currentSegment.clusterSeekStartPos=this.metadataReader.pos)}for(let c of md){if(this.currentSegment[c.flag])continue;let u=this.currentSegment.seekEntries.find(f=>f.id===c.id);if(!u)continue;this.metadataReader.pos=t+u.segmentPosition,await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+2**12);let{id:l,size:h}=this.metadataReader.readElementHeader();l===c.id&&(ki(h),this.currentSegment[c.flag]=!0,await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+h),this.readContiguousElements(this.metadataReader,h))}this.currentSegment.tracks.sort((c,u)=>Number(u.isDefault)-Number(c.isDefault)),this.currentSegment.cuePoints.sort((c,u)=>c.clusterPosition-u.clusterPosition);let s=this.currentSegment.tracks.map(c=>c.id),n=new Set,o=null,a=null;for(let c of this.currentSegment.cuePoints){if(c.clusterPosition!==o){for(let l of n)w(a),this.currentSegment.tracks.find(f=>f.id===l).cuePoints.push(a);for(let l of s)n.add(l)}if(a=c,!n.has(c.trackId))continue;this.currentSegment.tracks.find(l=>l.id===c.trackId).cuePoints.push(c),n.delete(c.trackId),o=c.clusterPosition}for(let c of n)w(a),this.currentSegment.tracks.find(l=>l.id===c).cuePoints.push(a);for(let c of this.currentSegment.tracks)c.cuePoints.sort((u,l)=>u.time-l.time);this.currentSegment=null}async readCluster(e){await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+Ci);let t=this.metadataReader.pos,i=this.metadataReader.readElementHeader(),s=i.id,n=i.size,o=this.metadataReader.pos;n===null&&(this.clusterReader.pos=o,n=(await this.clusterReader.searchForNextElementId(rd,e.elementEndPos)??e.elementEndPos)-o),w(s===I.Cluster),this.clusterReader.pos=o,await this.clusterReader.reader.loadRange(this.clusterReader.pos,this.clusterReader.pos+n);let a={elementStartPos:t,elementEndPos:o+n,dataStartPos:o,timestamp:-1,trackData:new Map,nextCluster:null,isKnownToBeFirstCluster:!1};this.currentCluster=a,this.readContiguousElements(this.clusterReader,n);for(let[u,l]of a.trackData){let h=!1;w(l.blocks.length>0);for(let x=0;x<l.blocks.length;x++){let g=l.blocks[x];g.timestamp+=a.timestamp,h||=g.referencedTimestamps.length>0}h&&(l.blocks=NA(l.blocks)),l.presentationTimestamps=l.blocks.map((x,g)=>({timestamp:x.timestamp,blockIndex:g})).sort((x,g)=>x.timestamp-g.timestamp);for(let x=0;x<l.presentationTimestamps.length;x++){let g=l.presentationTimestamps[x],_=l.blocks[g.blockIndex];if(l.firstKeyFrameTimestamp===null&&_.isKeyFrame&&(l.firstKeyFrameTimestamp=_.timestamp),x<l.presentationTimestamps.length-1){let y=l.presentationTimestamps[x+1];_.duration=y.timestamp-_.timestamp}}let f=l.blocks[l.presentationTimestamps[0].blockIndex],d=l.blocks[he(l.presentationTimestamps).blockIndex];l.startTimestamp=f.timestamp,l.endTimestamp=d.timestamp+d.duration;let m=e.tracks.find(x=>x.id===u);if(m){let x=Z(m.clusters,a.elementStartPos,_=>_.elementStartPos);if(m.clusters.splice(x+1,0,a),l.firstKeyFrameTimestamp!==null){let _=Z(m.clustersWithKeyFrame,a.elementStartPos,y=>y.elementStartPos);m.clustersWithKeyFrame.splice(_+1,0,a)}}}let c=Z(e.clusters,t,u=>u.elementStartPos);return e.clusters.splice(c+1,0,a),this.currentCluster=null,a}getTrackDataInCluster(e,t){let i=e.trackData.get(t);return i||(i={startTimestamp:0,endTimestamp:0,firstKeyFrameTimestamp:null,blocks:[],presentationTimestamps:[]},e.trackData.set(t,i)),i}readContiguousElements(e,t){let i=e.pos;for(;e.pos-i<=t-Zc;)this.traverseElement(e)}traverseElement(e){let{id:t,size:i}=e.readElementHeader(),s=e.pos;switch(ki(i),t){case I.DocType:this.isWebM=e.readString(i)==="webm";break;case I.Seek:{if(!this.currentSegment)break;let n={id:-1,segmentPosition:-1};this.currentSegment.seekEntries.push(n),this.readContiguousElements(e,i),(n.id===-1||n.segmentPosition===-1)&&this.currentSegment.seekEntries.pop()}break;case I.SeekID:{let n=this.currentSegment?.seekEntries[this.currentSegment.seekEntries.length-1];if(!n)break;n.id=e.readUnsignedInt(i)}break;case I.SeekPosition:{let n=this.currentSegment?.seekEntries[this.currentSegment.seekEntries.length-1];if(!n)break;n.segmentPosition=e.readUnsignedInt(i)}break;case I.TimestampScale:{if(!this.currentSegment)break;this.currentSegment.timestampScale=e.readUnsignedInt(i),this.currentSegment.timestampFactor=1e9/this.currentSegment.timestampScale}break;case I.Duration:{if(!this.currentSegment)break;this.currentSegment.duration=e.readFloat(i)}break;case I.TrackEntry:{if(!this.currentSegment)break;if(this.currentTrack={id:-1,segment:this.currentSegment,demuxer:this,clusters:[],clustersWithKeyFrame:[],cuePoints:[],isDefault:!1,inputTrack:null,codecId:null,codecPrivate:null,languageCode:nt,info:null},this.readContiguousElements(e,i),this.currentTrack&&this.currentTrack.id!==-1&&this.currentTrack.codecId&&this.currentTrack.info){let n=this.currentTrack.codecId.indexOf("/"),o=n===-1?this.currentTrack.codecId:this.currentTrack.codecId.slice(0,n);if(this.currentTrack.info.type==="video"&&this.currentTrack.info.width!==-1&&this.currentTrack.info.height!==-1){this.currentTrack.codecId===Dt.avc?(this.currentTrack.info.codec="avc",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):this.currentTrack.codecId===Dt.hevc?(this.currentTrack.info.codec="hevc",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):o===Dt.vp8?this.currentTrack.info.codec="vp8":o===Dt.vp9?this.currentTrack.info.codec="vp9":o===Dt.av1&&(this.currentTrack.info.codec="av1");let a=this.currentTrack,c=new gr(new pd(a));this.currentTrack.inputTrack=c,this.currentSegment.tracks.push(this.currentTrack)}else if(this.currentTrack.info.type==="audio"&&this.currentTrack.info.numberOfChannels!==-1&&this.currentTrack.info.sampleRate!==-1){o===Dt.aac?(this.currentTrack.info.codec="aac",this.currentTrack.info.aacCodecInfo={isMpeg2:this.currentTrack.codecId.includes("MPEG2")},this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):this.currentTrack.codecId===Dt.mp3?this.currentTrack.info.codec="mp3":o===Dt.opus?(this.currentTrack.info.codec="opus",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):o===Dt.vorbis?(this.currentTrack.info.codec="vorbis",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):o===Dt.flac?(this.currentTrack.info.codec="flac",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):this.currentTrack.codecId==="A_PCM/INT/LIT"?this.currentTrack.info.bitDepth===8?this.currentTrack.info.codec="pcm-u8":this.currentTrack.info.bitDepth===16?this.currentTrack.info.codec="pcm-s16":this.currentTrack.info.bitDepth===24?this.currentTrack.info.codec="pcm-s24":this.currentTrack.info.bitDepth===32&&(this.currentTrack.info.codec="pcm-s32"):this.currentTrack.codecId==="A_PCM/INT/BIG"?this.currentTrack.info.bitDepth===8?this.currentTrack.info.codec="pcm-u8":this.currentTrack.info.bitDepth===16?this.currentTrack.info.codec="pcm-s16be":this.currentTrack.info.bitDepth===24?this.currentTrack.info.codec="pcm-s24be":this.currentTrack.info.bitDepth===32&&(this.currentTrack.info.codec="pcm-s32be"):this.currentTrack.codecId==="A_PCM/FLOAT/IEEE"&&(this.currentTrack.info.bitDepth===32?this.currentTrack.info.codec="pcm-f32":this.currentTrack.info.bitDepth===64&&(this.currentTrack.info.codec="pcm-f64"));let a=this.currentTrack,c=new Ze(new gd(a));this.currentTrack.inputTrack=c,this.currentSegment.tracks.push(this.currentTrack)}}this.currentTrack=null}break;case I.TrackNumber:{if(!this.currentTrack)break;this.currentTrack.id=e.readUnsignedInt(i)}break;case I.TrackType:{if(!this.currentTrack)break;let n=e.readUnsignedInt(i);n===1?this.currentTrack.info={type:"video",width:-1,height:-1,rotation:0,codec:null,codecDescription:null,colorSpace:null}:n===2&&(this.currentTrack.info={type:"audio",numberOfChannels:-1,sampleRate:-1,bitDepth:-1,codec:null,codecDescription:null,aacCodecInfo:null})}break;case I.FlagEnabled:{if(!this.currentTrack)break;e.readUnsignedInt(i)||(this.currentSegment.tracks.pop(),this.currentTrack=null)}break;case I.FlagDefault:{if(!this.currentTrack)break;this.currentTrack.isDefault=!!e.readUnsignedInt(i)}break;case I.CodecID:{if(!this.currentTrack)break;this.currentTrack.codecId=e.readString(i)}break;case I.CodecPrivate:{if(!this.currentTrack)break;this.currentTrack.codecPrivate=e.readBytes(i)}break;case I.Language:{if(!this.currentTrack)break;this.currentTrack.languageCode=e.readString(i),us(this.currentTrack.languageCode)||(this.currentTrack.languageCode=nt)}break;case I.Video:{if(this.currentTrack?.info?.type!=="video")break;this.readContiguousElements(e,i)}break;case I.PixelWidth:{if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.width=e.readUnsignedInt(i)}break;case I.PixelHeight:{if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.height=e.readUnsignedInt(i)}break;case I.Colour:{if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.colorSpace={},this.readContiguousElements(e,i)}break;case I.MatrixCoefficients:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;let n=e.readUnsignedInt(i),o=Mc[n]??null;this.currentTrack.info.colorSpace.matrix=o}break;case I.Range:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;this.currentTrack.info.colorSpace.fullRange=e.readUnsignedInt(i)===2}break;case I.TransferCharacteristics:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;let n=e.readUnsignedInt(i),o=Dc[n]??null;this.currentTrack.info.colorSpace.transfer=o}break;case I.Primaries:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;let n=e.readUnsignedInt(i),o=Rc[n]??null;this.currentTrack.info.colorSpace.primaries=o}break;case I.Projection:{if(this.currentTrack?.info?.type!=="video")break;this.readContiguousElements(e,i)}break;case I.ProjectionPoseRoll:{if(this.currentTrack?.info?.type!=="video")break;let o=-e.readFloat(i);try{this.currentTrack.info.rotation=Bc(o)}catch{}}break;case I.Audio:{if(this.currentTrack?.info?.type!=="audio")break;this.readContiguousElements(e,i)}break;case I.SamplingFrequency:{if(this.currentTrack?.info?.type!=="audio")break;this.currentTrack.info.sampleRate=e.readFloat(i)}break;case I.Channels:{if(this.currentTrack?.info?.type!=="audio")break;this.currentTrack.info.numberOfChannels=e.readUnsignedInt(i)}break;case I.BitDepth:{if(this.currentTrack?.info?.type!=="audio")break;this.currentTrack.info.bitDepth=e.readUnsignedInt(i)}break;case I.CuePoint:{if(!this.currentSegment)break;this.readContiguousElements(e,i),this.currentCueTime=null}break;case I.CueTime:this.currentCueTime=e.readUnsignedInt(i);break;case I.CueTrackPositions:{if(this.currentCueTime===null)break;w(this.currentSegment);let n={time:this.currentCueTime,trackId:-1,clusterPosition:-1};this.currentSegment.cuePoints.push(n),this.readContiguousElements(e,i),(n.trackId===-1||n.clusterPosition===-1)&&this.currentSegment.cuePoints.pop()}break;case I.CueTrack:{let n=this.currentSegment?.cuePoints[this.currentSegment.cuePoints.length-1];if(!n)break;n.trackId=e.readUnsignedInt(i)}break;case I.CueClusterPosition:{let n=this.currentSegment?.cuePoints[this.currentSegment.cuePoints.length-1];if(!n)break;w(this.currentSegment),n.clusterPosition=this.currentSegment.dataStartPos+e.readUnsignedInt(i)}break;case I.Timestamp:{if(!this.currentCluster)break;this.currentCluster.timestamp=e.readUnsignedInt(i)}break;case I.SimpleBlock:{if(!this.currentCluster)break;let n=e.readVarInt(),o=e.readS16(),c=!!(e.readU8()&128);this.getTrackDataInCluster(this.currentCluster,n).blocks.push({timestamp:o,duration:0,isKeyFrame:c,referencedTimestamps:[],data:e.readBytes(i-(e.pos-s))})}break;case I.BlockGroup:{if(!this.currentCluster)break;if(this.readContiguousElements(e,i),this.currentBlock){for(let n=0;n<this.currentBlock.referencedTimestamps.length;n++)this.currentBlock.referencedTimestamps[n]+=this.currentBlock.timestamp;this.currentBlock=null}}break;case I.Block:{if(!this.currentCluster)break;let n=e.readVarInt(),o=e.readS16(),a=e.readU8(),c=this.getTrackDataInCluster(this.currentCluster,n);this.currentBlock={timestamp:o,duration:0,isKeyFrame:!0,referencedTimestamps:[],data:e.readBytes(i-(e.pos-s))},c.blocks.push(this.currentBlock)}break;case I.BlockDuration:{if(!this.currentBlock)break;this.currentBlock.duration=e.readUnsignedInt(i)}break;case I.ReferenceBlock:{if(!this.currentBlock)break;this.currentBlock.isKeyFrame=!1;let n=e.readSignedInt(i);this.currentBlock.referencedTimestamps.push(n)}break}e.pos=s+i}},nu=class{constructor(e){this.internalTrack=e,this.packetToClusterLocation=new WeakMap}getId(){return this.internalTrack.id}getCodec(){throw new Error("Not implemented on base class.")}async computeDuration(){let e=await this.getPacket(1/0,{metadataOnly:!0});return(e?.timestamp??0)+(e?.duration??0)}getLanguageCode(){return this.internalTrack.languageCode}async getFirstTimestamp(){return(await this.getFirstPacket({metadataOnly:!0}))?.timestamp??0}getTimeResolution(){return this.internalTrack.segment.timestampFactor}async getFirstPacket(e){return this.performClusterLookup(()=>{let t=this.internalTrack.segment.clusters[0]??null;if(t?.isKnownToBeFirstCluster){let i=t;for(;i;){if(i.trackData.get(this.internalTrack.id))return{clusterIndex:Ae(this.internalTrack.clusters,i.elementStartPos,n=>n.elementStartPos),blockIndex:0,correctBlockFound:!0};i=i.nextCluster}}return{clusterIndex:-1,blockIndex:-1,correctBlockFound:!1}},-1/0,1/0,e)}intoTimescale(e){return cs(e*this.internalTrack.segment.timestampFactor,14)}async getPacket(e,t){let i=this.intoTimescale(e);return this.performClusterLookup(()=>this.findBlockInClustersForTimestamp(i),i,i,t)}async getNextPacket(e,t){let i=this.packetToClusterLocation.get(e);if(i===void 0)throw new Error("Packet was not created from this track.");let s=i.cluster.trackData.get(this.internalTrack.id),n=s.blocks[i.blockIndex],o=Ae(this.internalTrack.clusters,i.cluster.elementStartPos,a=>a.elementStartPos);return w(o!==-1),this.performClusterLookup(()=>{if(i.blockIndex+1<s.blocks.length)return{clusterIndex:o,blockIndex:i.blockIndex+1,correctBlockFound:!0};{let a=i.cluster;for(;a.nextCluster;)if(a=a.nextCluster,a.trackData.get(this.internalTrack.id)){let u=Ae(this.internalTrack.clusters,a.elementStartPos,l=>l.elementStartPos);return w(u!==-1),{clusterIndex:u,blockIndex:0,correctBlockFound:!0}}return{clusterIndex:o,blockIndex:-1,correctBlockFound:!1}}},n.timestamp,1/0,t)}async getKeyPacket(e,t){let i=this.intoTimescale(e);return this.performClusterLookup(()=>this.findKeyBlockInClustersForTimestamp(i),i,i,t)}async getNextKeyPacket(e,t){let i=this.packetToClusterLocation.get(e);if(i===void 0)throw new Error("Packet was not created from this track.");let s=i.cluster.trackData.get(this.internalTrack.id),n=s.blocks[i.blockIndex],o=Ae(this.internalTrack.clusters,i.cluster.elementStartPos,a=>a.elementStartPos);return w(o!==-1),this.performClusterLookup(()=>{let a=s.blocks.findIndex((c,u)=>c.isKeyFrame&&u>i.blockIndex);if(a!==-1)return{clusterIndex:o,blockIndex:a,correctBlockFound:!0};{let c=i.cluster;for(;c.nextCluster;){c=c.nextCluster;let u=c.trackData.get(this.internalTrack.id);if(u&&u.firstKeyFrameTimestamp!==null){let l=Ae(this.internalTrack.clusters,c.elementStartPos,f=>f.elementStartPos);w(l!==-1);let h=u.blocks.findIndex(f=>f.isKeyFrame);return w(h!==-1),{clusterIndex:l,blockIndex:h,correctBlockFound:!0}}}return{clusterIndex:o,blockIndex:-1,correctBlockFound:!1}}},n.timestamp,1/0,t)}async fetchPacketInCluster(e,t,i){if(t===-1)return null;let n=e.trackData.get(this.internalTrack.id).blocks[t];w(n);let o=i.metadataOnly?ot:n.data,a=n.timestamp/this.internalTrack.segment.timestampFactor,c=n.duration/this.internalTrack.segment.timestampFactor,u=new ge(o,n.isKeyFrame?"key":"delta",a,c,e.dataStartPos+t,n.data.byteLength);return this.packetToClusterLocation.set(u,{cluster:e,blockIndex:t}),u}findBlockInClustersForTimestamp(e){let t=Z(this.internalTrack.clusters,e,n=>n.trackData.get(this.internalTrack.id).startTimestamp),i=-1,s=!1;if(t!==-1){let o=this.internalTrack.clusters[t].trackData.get(this.internalTrack.id),a=Z(o.presentationTimestamps,e,c=>c.timestamp);w(a!==-1),i=o.presentationTimestamps[a].blockIndex,s=e<o.endTimestamp}return{clusterIndex:t,blockIndex:i,correctBlockFound:s}}findKeyBlockInClustersForTimestamp(e){let t=Z(this.internalTrack.clustersWithKeyFrame,e,o=>o.trackData.get(this.internalTrack.id).firstKeyFrameTimestamp),i=-1,s=-1,n=!1;if(t!==-1){let o=this.internalTrack.clustersWithKeyFrame[t];i=Ae(this.internalTrack.clusters,o.elementStartPos,l=>l.elementStartPos),w(i!==-1);let a=o.trackData.get(this.internalTrack.id),c=Ic(a.presentationTimestamps,l=>a.blocks[l.blockIndex].isKeyFrame&&l.timestamp<=e);w(c!==-1),s=a.presentationTimestamps[c].blockIndex,n=e<a.endTimestamp}return{clusterIndex:i,blockIndex:s,correctBlockFound:n}}async performClusterLookup(e,t,i,s){let{demuxer:n,segment:o}=this.internalTrack,a=await o.clusterLookupMutex.acquire();try{let{clusterIndex:c,blockIndex:u,correctBlockFound:l}=e();if(l){let C=this.internalTrack.clusters[c];return this.fetchPacketInCluster(C,u,s)}let h=n.metadataReader,f=n.clusterReader,d=null,m=c,x=u,g=Z(this.internalTrack.cuePoints,t,C=>C.time),_=g!==-1?this.internalTrack.cuePoints[g]:null,y=!1;if(c===-1)h.pos=_?.clusterPosition??o.clusterSeekStartPos,y=h.pos===o.clusterSeekStartPos;else{let C=this.internalTrack.clusters[c];!_||C.elementStartPos>=_.clusterPosition?(h.pos=C.elementEndPos,d=C):h.pos=_.clusterPosition}for(;h.pos<o.elementEndPos;){if(d){let P=d.trackData.get(this.internalTrack.id);if(P&&P.startTimestamp>i)break;if(d.nextCluster){h.pos=d.nextCluster.elementEndPos,d=d.nextCluster;continue}}await h.reader.loadRange(h.pos,h.pos+Ci);let C=h.pos,v=h.readElementHeader(),E=v.id,D=v.size,A=h.pos;if(E===I.Cluster){let P=Ae(o.clusters,C,Tt=>Tt.elementStartPos),k;P===-1?(h.pos=C,k=await n.readCluster(o)):k=o.clusters[P],d&&(d.nextCluster=k),d=k,y&&(k.isKnownToBeFirstCluster=!0,y=!1);let{clusterIndex:G,blockIndex:j,correctBlockFound:be}=e();if(be){let Tt=this.internalTrack.clusters[G];return this.fetchPacketInCluster(Tt,j,s)}G!==-1&&(m=G,x=j)}if(D===null){E===I.Cluster?(w(d),D=d.elementEndPos-A):(f.pos=A,D=(await f.searchForNextElementId(rd,o.elementEndPos)??o.elementEndPos)-A);let P=A+D;if(P>o.elementEndPos-Zc)break;if(f.pos=P,f.readElementId()===I.Segment){o.elementEndPos=P;break}}h.pos=A+D}let S=null,T=m!==-1?this.internalTrack.clusters[m]:null;if(T&&(S=await this.fetchPacketInCluster(T,x,s)),!S&&_&&(!T||T.elementStartPos<_.clusterPosition)){let v=this.internalTrack.cuePoints[g-1]?.time??-1/0;return this.performClusterLookup(e,v,i,s)}return S}finally{a()}}},pd=class extends nu{constructor(e){super(e),this.decoderConfigPromise=null,this.internalTrack=e}getCodec(){return this.internalTrack.info.codec}getCodedWidth(){return this.internalTrack.info.width}getCodedHeight(){return this.internalTrack.info.height}getRotation(){return this.internalTrack.info.rotation}async getColorSpace(){return{primaries:this.internalTrack.info.colorSpace?.primaries,transfer:this.internalTrack.info.colorSpace?.transfer,matrix:this.internalTrack.info.colorSpace?.matrix,fullRange:this.internalTrack.info.colorSpace?.fullRange}}async getDecoderConfig(){return this.internalTrack.info.codec?this.decoderConfigPromise??=(async()=>{let e=null;return(this.internalTrack.info.codec==="vp9"||this.internalTrack.info.codec==="av1"||this.internalTrack.info.codec==="avc"&&!this.internalTrack.info.codecDescription||this.internalTrack.info.codec==="hevc"&&!this.internalTrack.info.codecDescription)&&(e=await this.getFirstPacket({})),{codec:Gc({width:this.internalTrack.info.width,height:this.internalTrack.info.height,codec:this.internalTrack.info.codec,codecDescription:this.internalTrack.info.codecDescription,colorSpace:this.internalTrack.info.colorSpace,avcCodecInfo:this.internalTrack.info.codec==="avc"&&e?Lc(e.data):null,hevcCodecInfo:this.internalTrack.info.codec==="hevc"&&e?zc(e.data):null,vp9CodecInfo:this.internalTrack.info.codec==="vp9"&&e?Vc(e.data):null,av1CodecInfo:this.internalTrack.info.codec==="av1"&&e?Hc(e.data):null}),codedWidth:this.internalTrack.info.width,codedHeight:this.internalTrack.info.height,description:this.internalTrack.info.codecDescription??void 0,colorSpace:this.internalTrack.info.colorSpace??void 0}})():null}},gd=class extends nu{constructor(e){super(e),this.decoderConfig=null,this.internalTrack=e}getCodec(){return this.internalTrack.info.codec}getNumberOfChannels(){return this.internalTrack.info.numberOfChannels}getSampleRate(){return this.internalTrack.info.sampleRate}async getDecoderConfig(){return this.internalTrack.info.codec?this.decoderConfig??={codec:Nc({codec:this.internalTrack.info.codec,codecDescription:this.internalTrack.info.codecDescription,aacCodecInfo:this.internalTrack.info.aacCodecInfo}),numberOfChannels:this.internalTrack.info.numberOfChannels,sampleRate:this.internalTrack.info.sampleRate,description:this.internalTrack.info.codecDescription??void 0}:null}},NA=r=>{let e=new Map;for(let n=0;n<r.length;n++){let o=r[n];e.set(o.timestamp,o)}let t=new Set,i=[],s=n=>{if(!t.has(n)){t.add(n);for(let o=0;o<n.referencedTimestamps.length;o++){let a=n.referencedTimestamps[o],c=e.get(a);c&&s(c)}i.push(n)}};for(let n=0;n<r.length;n++)s(r[n]);return i};var vs=class{constructor(e){this.reader=e,this.pos=0,this.fileSize=null}readBytes(e){let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e);return this.pos+=e,new Uint8Array(t.buffer,i,e)}readU16(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+2);return this.pos+=2,e.getUint16(t,!1)}readU32(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+4);return this.pos+=4,e.getUint32(t,!1)}readAscii(e){let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e);this.pos+=e;let s="";for(let n=0;n<e;n++)s+=String.fromCharCode(t.getUint8(i+n));return s}readId3(){return this.readAscii(3)!=="ID3"?(this.pos-=3,null):(this.pos+=3,{size:LA(this.readU32())})}readNextFrameHeader(e){for(w(this.fileSize),e??=this.fileSize;this.pos<=e-4;){let t=this.readU32();this.pos-=4;let i=Wx(t,this);if(i)return i}return null}},LA=r=>{let e=2130706432,t=0;for(;e!==0;)t>>=1,t|=r&e,e>>=8;return t};var ou=class extends Ct{constructor(e){super(e),this.metadataPromise=null,this.firstFrameHeader=null,this.allSamples=[],this.tracks=[],this.reader=new vs(e._mainReader)}async readMetadata(){return this.metadataPromise??=(async()=>{let e=await this.input.source.getSize();this.reader.fileSize=e,await this.reader.reader.loadRange(0,e);let t=this.reader.readId3();t&&(this.reader.pos+=t.size);let i=0;for(;;){let s=this.reader.readNextFrameHeader();if(!s)break;let n=Hx(s.mpegVersionId,s.channel);this.reader.pos=s.startPos+n;let o=this.reader.readU32(),a=o===zx||o===Vx;if(this.reader.pos=s.startPos+s.totalSize-1,a)continue;this.firstFrameHeader||(this.firstFrameHeader=s);let c=s.audioSamplesInFrame/s.sampleRate,u={timestamp:i/s.sampleRate,duration:c,dataStart:s.startPos,dataSize:s.totalSize};this.allSamples.push(u),i+=s.audioSamplesInFrame}if(!this.firstFrameHeader)throw new Error("No MP3 frames found.");this.tracks=[new Ze(new _d(this))]})()}async getMimeType(){return"audio/mpeg"}async getTracks(){return await this.readMetadata(),this.tracks}async computeDuration(){await this.readMetadata();let e=he(this.allSamples);return w(e),e.timestamp+e.duration}},_d=class{constructor(e){this.demuxer=e}getId(){return 1}async getFirstTimestamp(){return 0}getTimeResolution(){return w(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.sampleRate/this.demuxer.firstFrameHeader.audioSamplesInFrame}computeDuration(){return this.demuxer.computeDuration()}getLanguageCode(){return nt}getCodec(){return"mp3"}getNumberOfChannels(){return w(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.channel===3?1:2}getSampleRate(){return w(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.sampleRate}async getDecoderConfig(){return w(this.demuxer.firstFrameHeader),{codec:"mp3",numberOfChannels:this.demuxer.firstFrameHeader.channel===3?1:2,sampleRate:this.demuxer.firstFrameHeader.sampleRate}}getPacketAtIndex(e,t){if(e===-1)return null;let i=this.demuxer.allSamples[e];if(!i)return null;let s;return t.metadataOnly?s=ot:(this.demuxer.reader.pos=i.dataStart,s=this.demuxer.reader.readBytes(i.dataSize)),new ge(s,"key",i.timestamp,i.duration,e,i.dataSize)}async getFirstPacket(e){return this.getPacketAtIndex(0,e)}async getNextPacket(e,t){let i=Ae(this.demuxer.allSamples,e.timestamp,s=>s.timestamp);if(i===-1)throw new Error("Packet was not created from this track.");return this.getPacketAtIndex(i+1,t)}async getPacket(e,t){let i=Z(this.demuxer.allSamples,e,s=>s.timestamp);return this.getPacketAtIndex(i,t)}getKeyPacket(e,t){return this.getPacket(e,t)}getNextKeyPacket(e,t){return this.getNextPacket(e,t)}};var au=class extends Ct{constructor(e){super(e),this.readingMutex=new wt,this.metadataPromise=null,this.fileSize=null,this.bitstreams=[],this.tracks=[],this.reader=new ms(new Et(e.source,64*2**20))}async readMetadata(){return this.metadataPromise??=(async()=>{for(this.fileSize=await this.input.source.getSize();this.reader.pos<this.fileSize-ps;){await this.reader.reader.loadRange(this.reader.pos,this.reader.pos+Ai);let e=this.reader.readPageHeader();if(!e||!!!(e.headerType&2))break;this.bitstreams.push({serialNumber:e.serialNumber,bosPage:e,description:null,numberOfChannels:-1,sampleRate:-1,codecInfo:{codec:null,vorbisInfo:null,opusInfo:null},lastMetadataPacket:null}),this.reader.pos=e.headerStartPos+e.totalSize}for(let e of this.bitstreams){let t=await this.readPacket(this.reader,e.bosPage,0);t&&(t.data.byteLength>=7&&t.data[0]===1&&t.data[1]===118&&t.data[2]===111&&t.data[3]===114&&t.data[4]===98&&t.data[5]===105&&t.data[6]===115?await this.readVorbisMetadata(t,e):t.data.byteLength>=8&&t.data[0]===79&&t.data[1]===112&&t.data[2]===117&&t.data[3]===115&&t.data[4]===72&&t.data[5]===101&&t.data[6]===97&&t.data[7]===100&&await this.readOpusMetadata(t,e),e.codecInfo.codec!==null&&this.tracks.push(new Ze(new bd(e,this))))}})()}async readVorbisMetadata(e,t){let i=await this.findNextPacketStart(this.reader,e);if(!i)return;let s=await this.readPacket(this.reader,i.startPage,i.startSegmentIndex);if(!s||(i=await this.findNextPacketStart(this.reader,s),!i))return;let n=await this.readPacket(this.reader,i.startPage,i.startSegmentIndex);if(!n||s.data[0]!==3||n.data[0]!==5)return;let o=[],a=h=>{for(;o.push(Math.min(255,h)),!(h<255);)h-=255};a(e.data.length),a(s.data.length);let c=new Uint8Array(1+o.length+e.data.length+s.data.length+n.data.length);c[0]=o.length,c.set(o,1),c.set(e.data,1+o.length),c.set(s.data,1+o.length+e.data.length),c.set(n.data,1+o.length+e.data.length+s.data.length),t.codecInfo.codec="vorbis",t.description=c,t.lastMetadataPacket=n;let u=St(e.data);t.numberOfChannels=u.getUint8(11),t.sampleRate=u.getUint32(12,!0);let l=u.getUint8(28);t.codecInfo.vorbisInfo={blocksizes:[1<<(l&15),1<<(l>>4)],modeBlockflags:vx(n.data).modeBlockflags}}async readOpusMetadata(e,t){let i=await this.findNextPacketStart(this.reader,e);if(!i)return;let s=await this.readPacket(this.reader,i.startPage,i.startSegmentIndex);if(!s)return;t.codecInfo.codec="opus",t.description=e.data,t.lastMetadataPacket=s;let n=Wc(e.data);t.numberOfChannels=n.outputChannelCount,t.sampleRate=n.inputSampleRate,t.codecInfo.opusInfo={preSkip:n.preSkip}}async readPacket(e,t,i){w(i<t.lacingValues.length),w(this.fileSize);let s=0;for(let f=0;f<i;f++)s+=t.lacingValues[f];let n=t,o=s,a=i,c=[];e:for(;;){await e.reader.loadRange(n.dataStartPos,n.dataStartPos+n.dataSize),e.pos=n.dataStartPos;let f=e.readBytes(n.dataSize);for(;;){if(a===n.lacingValues.length){c.push(f.subarray(s,o));break}let d=n.lacingValues[a];if(o+=d,d<255){c.push(f.subarray(s,o));break e}a++}for(;;){if(e.pos=n.headerStartPos+n.totalSize,e.pos>=this.fileSize-ps)return null;await e.reader.loadRange(e.pos,e.pos+Ai);let d=e.readPageHeader();if(!d)return null;if(n=d,n.serialNumber===t.serialNumber)break}s=0,o=0,a=0}let u=c.reduce((f,d)=>f+d.length,0),l=new Uint8Array(u),h=0;for(let f=0;f<c.length;f++){let d=c[f];l.set(d,h),h+=d.length}return{data:l,endPage:n,endSegmentIndex:a}}async findNextPacketStart(e,t){if(w(this.fileSize!==null),t.endSegmentIndex<t.endPage.lacingValues.length-1)return{startPage:t.endPage,startSegmentIndex:t.endSegmentIndex+1};if(!!(t.endPage.headerType&4))return null;for(e.pos=t.endPage.headerStartPos+t.endPage.totalSize;;){if(e.pos>=this.fileSize-ps)return null;await e.reader.loadRange(e.pos,e.pos+Ai);let s=e.readPageHeader();if(!s)return null;if(s.serialNumber===t.endPage.serialNumber)return{startPage:s,startSegmentIndex:0};e.pos=s.headerStartPos+s.totalSize}}async getMimeType(){await this.readMetadata();let e=await Promise.all(this.tracks.map(t=>t.getCodecParameterString()));return Xx({codecStrings:e.filter(Boolean)})}async getTracks(){return await this.readMetadata(),this.tracks}async computeDuration(){let e=await this.getTracks(),t=await Promise.all(e.map(i=>i.computeDuration()));return Math.max(0,...t)}},bd=class{constructor(e,t){this.bitstream=e,this.demuxer=t,this.encodedPacketToMetadata=new WeakMap,this.internalSampleRate=e.codecInfo.codec==="opus"?cx:e.sampleRate}getId(){return this.bitstream.serialNumber}getNumberOfChannels(){return this.bitstream.numberOfChannels}getSampleRate(){return this.bitstream.sampleRate}getTimeResolution(){return this.bitstream.sampleRate}getCodec(){return this.bitstream.codecInfo.codec}async getDecoderConfig(){return w(this.bitstream.codecInfo.codec),{codec:this.bitstream.codecInfo.codec,numberOfChannels:this.bitstream.numberOfChannels,sampleRate:this.bitstream.sampleRate,description:this.bitstream.description??void 0}}getLanguageCode(){return nt}async getFirstTimestamp(){return 0}async computeDuration(){let e=await this.getPacket(1/0,{metadataOnly:!0});return(e?.timestamp??0)+(e?.duration??0)}granulePositionToTimestampInSamples(e){return this.bitstream.codecInfo.codec==="opus"?(w(this.bitstream.codecInfo.opusInfo),e-this.bitstream.codecInfo.opusInfo.preSkip):e}createEncodedPacketFromOggPacket(e,t,i){if(!e)return null;let{durationInSamples:s,vorbisBlockSize:n}=jx(e.data,this.bitstream.codecInfo,t.vorbisLastBlocksize),o=new ge(i.metadataOnly?ot:e.data,"key",Math.max(0,t.timestampInSamples)/this.internalSampleRate,s/this.internalSampleRate,e.endPage.headerStartPos+e.endSegmentIndex,e.data.byteLength);return this.encodedPacketToMetadata.set(o,{packet:e,timestampInSamples:t.timestampInSamples,durationInSamples:s,vorbisBlockSize:n}),o}async getFirstPacket(e,t=!0){let i=t?await this.demuxer.readingMutex.acquire():null;try{w(this.bitstream.lastMetadataPacket);let s=await this.demuxer.findNextPacketStart(this.demuxer.reader,this.bitstream.lastMetadataPacket);if(!s)return null;let n=0;this.bitstream.codecInfo.codec==="opus"&&(w(this.bitstream.codecInfo.opusInfo),n-=this.bitstream.codecInfo.opusInfo.preSkip);let o=await this.demuxer.readPacket(this.demuxer.reader,s.startPage,s.startSegmentIndex);return this.createEncodedPacketFromOggPacket(o,{timestampInSamples:n,vorbisLastBlocksize:null},e)}finally{i?.()}}async getNextPacket(e,t){let i=await this.demuxer.readingMutex.acquire();try{let s=this.encodedPacketToMetadata.get(e);if(!s)throw new Error("Packet was not created from this track.");let n=await this.demuxer.findNextPacketStart(this.demuxer.reader,s.packet);if(!n)return null;let o=s.timestampInSamples+s.durationInSamples,a=await this.demuxer.readPacket(this.demuxer.reader,n.startPage,n.startSegmentIndex);return this.createEncodedPacketFromOggPacket(a,{timestampInSamples:o,vorbisLastBlocksize:s.vorbisBlockSize},t)}finally{i()}}async getPacket(e,t){let i=await this.demuxer.readingMutex.acquire();try{w(this.demuxer.fileSize!==null);let s=cs(e*this.internalSampleRate,14);if(s===0)return this.getFirstPacket(t,!1);if(s<0)return null;let n=this.demuxer.reader;w(this.bitstream.lastMetadataPacket);let o=await this.demuxer.findNextPacketStart(n,this.bitstream.lastMetadataPacket);if(!o)return null;let a=o.startPage,c=this.demuxer.fileSize,u=[a];e:for(;a.headerStartPos+a.totalSize<c;){let T=a.headerStartPos,C=Math.floor((T+c)/2),v=C;for(;;){let E=Math.min(v+Yx,c-ps);if(await n.reader.loadRange(v,E),n.pos=v,!n.findNextPageHeader(E)){c=C+ps;continue e}await n.reader.loadRange(n.pos,n.pos+Ai);let A=n.readPageHeader();w(A);let P=!1;if(A.serialNumber===this.bitstream.serialNumber)P=!0;else{await n.reader.loadRange(A.headerStartPos,A.headerStartPos+A.totalSize),n.pos=A.headerStartPos;let G=n.readBytes(A.totalSize);P=qx(G)===A.checksum}if(!P){v=A.headerStartPos+4;continue}if(P&&A.serialNumber!==this.bitstream.serialNumber){v=A.headerStartPos+A.totalSize;continue}if(A.granulePosition===-1){v=A.headerStartPos+A.totalSize;continue}this.granulePositionToTimestampInSamples(A.granulePosition)>s?c=A.headerStartPos:(a=A,u.push(A));continue e}}let l=o.startPage;for(let T of u){if(T.granulePosition===a.granulePosition)break;(!l||T.headerStartPos>l.headerStartPos)&&(l=T)}let h=l,f=[h];for(;!(h.serialNumber===this.bitstream.serialNumber&&h.granulePosition===a.granulePosition);){n.pos=h.headerStartPos+h.totalSize,await n.reader.loadRange(n.pos,n.pos+Ai);let T=n.readPageHeader();w(T),h=T,h.serialNumber===this.bitstream.serialNumber&&f.push(h)}w(h.granulePosition!==-1);let d=null,m,x,g=h,_=0;if(h.headerStartPos===o.startPage.headerStartPos)m=this.granulePositionToTimestampInSamples(0),x=!0,d=0;else{m=0,x=!1;for(let v=h.lacingValues.length-1;v>=0;v--)if(h.lacingValues[v]<255){d=v+1;break}if(d===null)throw new Error("Invalid page with granule position: no packets end on this page.");_=d-1;let T={data:ot,endPage:g,endSegmentIndex:_};if(await this.demuxer.findNextPacketStart(n,T)){let v=n0(f,h,d);w(v);let E=s0(f,v.page,v.segmentIndex);E&&(h=E.page,d=E.segmentIndex)}else for(;;){let v=n0(f,h,d);if(!v)break;let E=s0(f,v.page,v.segmentIndex);if(!E)break;if(h=E.page,d=E.segmentIndex,v.page.headerStartPos!==g.headerStartPos){g=v.page,_=v.segmentIndex;break}}}let y=null,S=null;for(;h!==null;){w(d!==null);let T=await this.demuxer.readPacket(n,h,d);if(!T)break;if(!(h.headerStartPos===o.startPage.headerStartPos&&d<o.startSegmentIndex)){let E=this.createEncodedPacketFromOggPacket(T,{timestampInSamples:m,vorbisLastBlocksize:S?.vorbisBlockSize??null},t);w(E);let D=this.encodedPacketToMetadata.get(E);if(w(D),!x&&T.endPage.headerStartPos===g.headerStartPos&&T.endSegmentIndex===_?(m=this.granulePositionToTimestampInSamples(h.granulePosition),x=!0,E=this.createEncodedPacketFromOggPacket(T,{timestampInSamples:m-D.durationInSamples,vorbisLastBlocksize:S?.vorbisBlockSize??null},t),w(E),D=this.encodedPacketToMetadata.get(E),w(D)):m+=D.durationInSamples,y=E,S=D,x&&(Math.max(m,0)>s||Math.max(D.timestampInSamples,0)===s))break}let v=await this.demuxer.findNextPacketStart(n,T);if(!v)break;h=v.startPage,d=v.startSegmentIndex}return y}finally{i()}}getKeyPacket(e,t){return this.getPacket(e,t)}getNextKeyPacket(e,t){return this.getNextPacket(e,t)}},s0=(r,e,t)=>{let i=e,s=t;e:for(;;){for(s--,s;s>=0;s--)if(i.lacingValues[s]<255){s++;break e}if(w(s===-1),!(i.headerType&1)){s=0;break}let o=Gh(r,a=>a.headerStartPos<i.headerStartPos);if(!o)return null;i=o,s=i.lacingValues.length}if(w(s!==-1),s===i.lacingValues.length){let n=r[r.indexOf(i)+1];w(n),i=n,s=0}return{page:i,segmentIndex:s}},n0=(r,e,t)=>{if(t>0)return{page:e,segmentIndex:t-1};let i=Gh(r,s=>s.headerStartPos<e.headerStartPos);return i?{page:i,segmentIndex:i.lacingValues.length-1}:null};var qt=class{},io=class extends qt{async _getMajorBrand(e){if(await e._mainReader.source.getSize()<12)return null;let i=new Mi(e._mainReader);return i.pos=4,i.readAscii(4)!=="ftyp"?null:i.readAscii(4)}_createDemuxer(e){return new ru(e)}},cu=class extends io{async _canReadInput(e){let t=await this._getMajorBrand(e);return!!t&&t!=="qt "}get name(){return"MP4"}get mimeType(){return"video/mp4"}},uu=class extends io{async _canReadInput(e){return await this._getMajorBrand(e)==="qt "}get name(){return"QuickTime File Format"}get mimeType(){return"video/quicktime"}},so=class extends qt{async isSupportedEBMLOfDocType(e,t){if(await e._mainReader.source.getSize()<8)return!1;let s=new Ei(e._mainReader),n=s.readVarIntSize();if(n<1||n>8||s.readUnsignedInt(n)!==I.EBML)return!1;let a=s.readElementSize();if(a===null)return!1;let c=s.pos;for(;s.pos<c+a;){let{id:u,size:l}=s.readElementHeader(),h=s.pos;if(l===null)return!1;switch(u){case I.EBMLVersion:if(s.readUnsignedInt(l)!==1)return!1;break;case I.EBMLReadVersion:if(s.readUnsignedInt(l)!==1)return!1;break;case I.DocType:if(s.readString(l)!==t)return!1;break;case I.DocTypeVersion:if(s.readUnsignedInt(l)>4)return!1;break}s.pos=h+l}return!0}_canReadInput(e){return this.isSupportedEBMLOfDocType(e,"matroska")}_createDemuxer(e){return new su(e)}get name(){return"Matroska"}get mimeType(){return"video/x-matroska"}},lu=class extends so{_canReadInput(e){return this.isSupportedEBMLOfDocType(e,"webm")}get name(){return"WebM"}get mimeType(){return"video/webm"}},hu=class extends qt{async _canReadInput(e){let t=await e._mainReader.source.getSize();if(t<4)return!1;let i=new vs(e._mainReader);i.fileSize=t;let s=i.readId3();s&&(i.pos+=s.size);let n=i.pos;await i.reader.loadRange(i.pos,i.pos+4096);let o=i.readNextFrameHeader(Math.min(n+4096,t));if(!o)return!1;if(s)return!0;i.pos=o.startPos+o.totalSize,await i.reader.loadRange(i.pos,i.pos+4);let a=i.readNextFrameHeader(i.pos+4);return!(!a||o.channel!==a.channel||o.sampleRate!==a.sampleRate)}_createDemuxer(e){return new ou(e)}get name(){return"MP3"}get mimeType(){return"audio/mpeg"}},du=class extends qt{async _canReadInput(e){if(await e._mainReader.source.getSize()<12)return!1;let i=new Ri(e._mainReader),s=i.readAscii(4);return s!=="RIFF"&&s!=="RIFX"?!1:(i.pos=8,i.readAscii(4)==="WAVE")}_createDemuxer(e){return new eu(e)}get name(){return"WAVE"}get mimeType(){return"audio/wav"}},fu=class extends qt{async _canReadInput(e){return await e._mainReader.source.getSize()<4?!1:new ms(e._mainReader).readAscii(4)==="OggS"}_createDemuxer(e){return new au(e)}get name(){return"Ogg"}get mimeType(){return"application/ogg"}},o0=new cu,a0=new uu,c0=new so,u0=new lu,l0=new hu,h0=new du,d0=new fu,yd=[o0,a0,c0,u0,h0,d0,l0];var no=class{constructor(e){if(this._demuxerPromise=null,this._format=null,!e||typeof e!="object")throw new TypeError("options must be an object.");if(!Array.isArray(e.formats)||e.formats.some(t=>!(t instanceof qt)))throw new TypeError("options.formats must be an array of InputFormat.");if(!(e.source instanceof Di))throw new TypeError("options.source must be a Source.");this._formats=e.formats,this._source=e.source,this._mainReader=new Et(e.source)}_getDemuxer(){return this._demuxerPromise??=(async()=>{await this._mainReader.loadRange(0,4096);for(let e of this._formats)if(await e._canReadInput(this))return this._format=e,e._createDemuxer(this);throw new Error("Input has an unsupported or unrecognizable format.")})()}get source(){return this._source}async getFormat(){return await this._getDemuxer(),w(this._format),this._format}async computeDuration(){return(await this._getDemuxer()).computeDuration()}async getTracks(){return(await this._getDemuxer()).getTracks()}async getVideoTracks(){return(await this.getTracks()).filter(t=>t.isVideoTrack())}async getPrimaryVideoTrack(){return(await this.getTracks()).find(t=>t.isVideoTrack())??null}async getAudioTracks(){return(await this.getTracks()).filter(t=>t.isAudioTrack())}async getPrimaryAudioTrack(){return(await this.getTracks()).find(t=>t.isAudioTrack())??null}async getMimeType(){return(await this._getDemuxer()).getMimeType()}};B();var fS={extension:{type:b.Environment,name:"browser",priority:-1},test:()=>!0,load:async()=>{await Promise.resolve().then(()=>(dS(),QB))}};B();var pS={extension:{type:b.Environment,name:"webworker",priority:0},test:()=>typeof self<"u"&&self.WorkerGlobalScope!==void 0,load:async()=>{await Promise.resolve().then(()=>(mS(),ZB))}};B();Hu();Uu();Ce();ra();var Ol;function SS(r){return Ol!==void 0||(Ol=(()=>{let e={stencil:!0,failIfMajorPerformanceCaveat:r??ti.defaultOptions.failIfMajorPerformanceCaveat};try{if(!W.get().getWebGLRenderingContext())return!1;let i=W.get().createCanvas().getContext("webgl",e),s=!!i?.getContextAttributes()?.stencil;if(i){let n=i.getExtension("WEBGL_lose_context");n&&n.loseContext()}return i=null,s}catch{return!1}})()),Ol}Ce();var Gl;async function vS(r={}){return Gl!==void 0||(Gl=await(async()=>{let e=W.get().getNavigator().gpu;if(!e)return!1;try{return await(await e.requestAdapter(r)).requestDevice(),!0}catch{return!1}})()),Gl}ra();var LC=["webgl","webgpu","canvas"];async function eg(r){let e=[];r.preference?(e.push(r.preference),LC.forEach(n=>{n!==r.preference&&e.push(n)})):e=LC.slice();let t,i={};for(let n=0;n<e.length;n++){let o=e[n];if(o==="webgpu"&&await vS()){let{WebGPURenderer:a}=await Promise.resolve().then(()=>(d1(),h1));t=a,i={...r,...r.webgpu};break}else if(o==="webgl"&&SS(r.failIfMajorPerformanceCaveat??ti.defaultOptions.failIfMajorPerformanceCaveat)){let{WebGLRenderer:a}=await Promise.resolve().then(()=>(NC(),GC));t=a,i={...r,...r.webgl};break}else if(o==="canvas")throw i={...r},new Error("CanvasRenderer is not yet implemented")}if(delete i.webgpu,delete i.webgl,!t)throw new Error("No available renderer for the current environment");let s=new t;return await s.init(i),s}var FE=Ch(IE(),1),gg={createCanvas:(r,e)=>new OffscreenCanvas(r??0,e??0),getCanvasRenderingContext2D:()=>OffscreenCanvasRenderingContext2D,getWebGLRenderingContext:()=>WebGLRenderingContext,getNavigator:()=>navigator,getBaseUrl:()=>globalThis.location.href,getFontFaceSet:()=>globalThis.fonts,fetch:(r,e)=>fetch(r,e),parseXML:r=>new FE.DOMParser().parseFromString(r,"text/xml")};Ui();xu();ye();Fu();var yh=class extends qr{constructor(e,t){let{text:i,resolution:s,style:n,anchor:o,width:a,height:c,roundPixels:u,...l}=e;super({...l}),this.batched=!0,this._resolution=null,this._autoResolution=!0,this._didTextUpdate=!0,this._styleClass=t,this.text=i??"",this.style=n,this.resolution=s??null,this.allowChildren=!1,this._anchor=new We({_onUpdate:()=>{this.onViewUpdate()}}),o&&(this.anchor=o),this.roundPixels=u??!1,a!==void 0&&(this.width=a),c!==void 0&&(this.height=c)}get anchor(){return this._anchor}set anchor(e){typeof e=="number"?this._anchor.set(e):this._anchor.copyFrom(e)}set text(e){e=e.toString(),this._text!==e&&(this._text=e,this.onViewUpdate())}get text(){return this._text}set resolution(e){this._autoResolution=e===null,this._resolution=e,this.onViewUpdate()}get resolution(){return this._resolution}get style(){return this._style}set style(e){e||(e={}),this._style?.off("update",this.onViewUpdate,this),e instanceof this._styleClass?this._style=e:this._style=new this._styleClass(e),this._style.on("update",this.onViewUpdate,this),this.onViewUpdate()}get width(){return Math.abs(this.scale.x)*this.bounds.width}set width(e){this._setWidth(e,this.bounds.width)}get height(){return Math.abs(this.scale.y)*this.bounds.height}set height(e){this._setHeight(e,this.bounds.height)}getSize(e){return e||(e={}),e.width=Math.abs(this.scale.x)*this.bounds.width,e.height=Math.abs(this.scale.y)*this.bounds.height,e}setSize(e,t){typeof e=="object"?(t=e.height??e.width,e=e.width):t??(t=e),e!==void 0&&this._setWidth(e,this.bounds.width),t!==void 0&&this._setHeight(t,this.bounds.height)}containsPoint(e){let t=this.bounds.width,i=this.bounds.height,s=-t*this.anchor.x,n=0;return e.x>=s&&e.x<=s+t&&(n=-i*this.anchor.y,e.y>=n&&e.y<=n+i)}onViewUpdate(){this.didViewUpdate||(this._didTextUpdate=!0),super.onViewUpdate()}destroy(e=!1){super.destroy(e),this.owner=null,this._bounds=null,this._anchor=null,(typeof e=="boolean"?e:e?.style)&&this._style.destroy(e),this._style=null,this._text=null}};function UE(r,e){let t=r[0]??{};return(typeof t=="string"||r[1])&&(z($,`use new ${e}({ text: "hi!", style }) instead`),t={text:t,style:r[1]}),t}Om();sn();tn();var lc=class extends yh{constructor(...e){let t=UE(e,"Text");super(t,ht),this.renderPipeId="text",t.textureStyle&&(this.textureStyle=t.textureStyle instanceof et?t.textureStyle:new et(t.textureStyle))}updateBounds(){let e=this._bounds,t=this._anchor,i=0,s=0;if(this._style.trim){let{frame:n,canvasAndContext:o}=Ji.getCanvasAndContext({text:this.text,style:this._style,resolution:1});Ji.returnCanvasAndContext(o),i=n.width,s=n.height}else{let n=Xe.measureText(this._text,this._style);i=n.width,s=n.height}e.minX=-t._x*i,e.maxX=e.minX+i,e.minY=-t._y*s,e.maxY=e.minY+s}};Ce();le();Tf();jt();Gu();Ve();O.add(fS,pS);W.set(gg);var OE=Pc.work(({host:r},e)=>({async hello(){await r.world()},async decode({source:t,video:i,audio:s}){let n=async()=>{if(t instanceof FileSystemFileHandle){let d=await t.getFile();return new to(d)}else return new ro(t)},o=new no({source:await n(),formats:yd}),[a,c]=await Promise.all([o.getPrimaryVideoTrack(),o.getPrimaryAudioTrack()]),u=await a?.canDecode(),l=await c?.canDecode(),h=i.getWriter(),f=s.getWriter();await Promise.all([(async()=>{if(u&&a){let d=new Xn(a);for await(let m of d.samples()){let x=m.toVideoFrame();await h.write(x),m.close(),x.close()}await h.close()}})(),(async()=>{if(l&&c){let d=new Yn(c);for await(let m of d.samples()){let x=m.toAudioData();await f.write(x),m.close(),x.close()}await f.close()}})()])},async encode({readables:t,config:i,bridge:s}){let n=new eo({format:new ys,target:new Vn(s,{chunked:!0})}),o=new Qn(i.video);n.addVideoTrack(o);let a=new Zn(i.audio);n.addAudioTrack(a),await n.start();let c=t.video.getReader(),u=t.audio.getReader();await Promise.all([(async()=>{for(;;){let{done:l,value:h}=await c.read();if(l)break;let f=new $t(h);await o.add(f),f.close()}})(),(async()=>{for(;;){let{done:l,value:h}=await u.read();if(l)break;let f=new Mt(h);await a.add(f),f.close(),h.close()}})()]),await n.finalize()},async composite(t){let{stage:i,renderer:s}=await oD(1920,1080);i.removeChildren();let{baseFrame:n,disposables:o}=await GE(t,i);s.render(i);let a=new VideoFrame(s.canvas,{timestamp:n?.timestamp,duration:n?.duration??void 0});n?.close(),s.clear();for(let c of o)c.destroy(!0);return e.transfer=[a],a}})),Th=null;async function oD(r,e){if(Th)return Th;let t=await eg({width:r,height:e,preference:"webgl",background:"black",preferWebGLVersion:2}),i=new we;return Th={renderer:t,stage:i},Th}async function GE(r,e,t=[]){if(Array.isArray(r)){let i;for(let s of r){let n=await GE(s,e,t);i??=n.baseFrame}return{baseFrame:i,disposables:t}}if(!aD(r))return console.warn("Invalid layer",r),{disposables:t};switch(r.kind){case"text":return cD(r,e,t);case"image":return uD(r,e,t);default:return console.warn("Unknown layer kind",r.kind),{disposables:t}}}function aD(r){return!!r&&typeof r=="object"&&typeof r.kind=="string"}function cD(r,e,t){let i=new lc({text:r.content,style:{fontFamily:"sans-serif",fontSize:r.fontSize??48,fill:r.color??"white"}});return NE(i,r),e.addChild(i),t.push(i),{disposables:t}}function uD(r,e,t){let i=M.from(r.frame),s=new Kt(i);return NE(s,r),e.addChild(s),t.push(s,i),{baseFrame:r.frame,disposables:t}}function NE(r,e={}){e.x&&(r.x=e.x),e.y&&(r.y=e.y),e.scale&&r.scale.set(e.scale),e.opacity&&(r.alpha=e.opacity),e.anchor&&"anchor"in r&&r.anchor.set(e.anchor)}await Pc.worker(OE);
1
+ function ms(t,e){return{error:r=>t.error({...e,...r}),rpcRequest:r=>t.rpcRequest({...e,...r}),rpcError:r=>t.rpcError({...e,...r})}}var Zr=()=>t=>({plain:t.none,errMessage:t.mix(t.brightRed,t.bold),errName:t.red,errStack:t.mix(t.red,t.dim),timestamp:t.blue,timestampErr:t.red});function Cn(){return Zr()}var Ke=Object.freeze({black:"\x1B[30m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m",white:"\x1B[37m",brightBlack:"\x1B[90m",brightRed:"\x1B[91m",brightGreen:"\x1B[92m",brightYellow:"\x1B[93m",brightBlue:"\x1B[94m",brightMagenta:"\x1B[95m",brightCyan:"\x1B[96m",brightWhite:"\x1B[97m",bgBlack:"\x1B[40m",bgRed:"\x1B[41m",bgGreen:"\x1B[42m",bgYellow:"\x1B[43m",bgBlue:"\x1B[44m",bgMagenta:"\x1B[45m",bgCyan:"\x1B[46m",bgWhite:"\x1B[47m",bgBrightBlack:"\x1B[100m",bgBrightRed:"\x1B[101m",bgBrightGreen:"\x1B[102m",bgBrightYellow:"\x1B[103m",bgBrightBlue:"\x1B[104m",bgBrightMagenta:"\x1B[105m",bgBrightCyan:"\x1B[106m",bgBrightWhite:"\x1B[107m",bold:"\x1B[1m",dim:"\x1B[2m",italic:"\x1B[3m",underline:"\x1B[4m",inverse:"\x1B[7m",hidden:"\x1B[8m",strikethrough:"\x1B[9m",reset:"\x1B[0m"});var Jr=()=>({none:t=>t,uncolor:Jo,mix:ec,hex:tc,rgb:_n,bgRgb:rc});function Jo(t){return t.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,"")}function ec(...t){return e=>{for(let r of t)e=r(e);return e}}function tc(t){t=t.replace(/^#/,"");let e,r,i,s;if(t.length===3)e=parseInt(t.split("").map(n=>n+n).join(""),16);else if(t.length===6)e=parseInt(t,16);else throw new Error("Invalid hex color");return r=e>>16&255,i=e>>8&255,s=e&255,_n(r,i,s)}function _n(t,e,r){let i=`\x1B[38;2;${t};${e};${r}m`;return s=>`${i}${s}${Ke.reset}`}function rc(t,e,r){let i=`\x1B[48;2;${t};${e};${r}m`;return s=>`${i}${s}${Ke.reset}`}var mr={...Object.fromEntries(Object.entries(Ke).map(([t])=>[t,e=>e])),...Jr()};var pr={...Object.fromEntries(Object.entries(Ke).map(([t,e])=>[t,r=>`${e}${r}${Ke.reset}`])),...Jr()};function ps(){return typeof Deno<"u"&&typeof Deno.version<"u"}function gs(){return typeof process<"u"&&process.versions&&process.versions.node}function Pn(){return gs()?process.env.FORCE_COLOR||process.stdout.isTTY&&process.env.TERM!=="dumb":ps()?Deno.env.get("FORCE_COLOR")||Deno.isatty(Deno.stdout.rid)&&Deno.env.get("TERM")!=="dumb":!1}var ws=()=>Pn()?pr:mr;var ei=()=>({colors:t,theme:e})=>{let r=e(t);function i(a){let o=a.stack?`
2
+ `+a.stack+`
3
+ `:"";return[r.errName(a.name+":"),r.errMessage(a.message)].join(" ")+r.errStack(o)}function s(a){return a&&a instanceof Error?i(a):a}function n(a){return a&&a instanceof Error?i(a):r.errMessage(a)}return{stdout:a=>a.map(s),stderr:a=>a.map(n)}};function gr(...t){return e=>({stdout:r=>{for(let i of t)r=i(e).stdout(r);return r},stderr:r=>{for(let i of t)r=i(e).stderr(r);return r}})}function ic(){return{icon:"\u{1F6A8}",now:()=>Date.now()}}var ti=t=>({colors:e,theme:r})=>{let i={...ic(),...t},s=r(e),n=new Date(i.now()),a=n.getUTCFullYear().toString().padStart(4,"0"),o=(n.getUTCMonth()+1).toString().padStart(2,"0"),c=n.getUTCDate().toString().padStart(2,"0"),l=`${a}-${o}-${c}`,d=n.getUTCHours().toString().padStart(2,"0"),u=n.getUTCMinutes().toString().padStart(2,"0"),h=n.getUTCSeconds().toString().padStart(2,"0"),f=n.getUTCMilliseconds().toString().padStart(3,"0"),p=`${d}:${u}:${h}.${f}`,g=`${l}::${p}`;return{stdout:w=>[s.timestamp(g),...w],stderr:w=>[s.timestampErr(g),...[i.icon].filter(Boolean),...w]}};function En(){return gr(ei(),ti())}var ri=()=>({stdout:async t=>{await Deno.stdout.write(new TextEncoder().encode(t+`
4
+ `))},stderr:async t=>{await Deno.stderr.write(new TextEncoder().encode(t+`
5
+ `))}});var ii=()=>({stdout:async t=>{process.stdout.write(t+`
6
+ `)},stderr:async t=>{process.stderr.write(t+`
7
+ `)}});var si=()=>({stdout:async t=>console.log(t),stderr:async t=>console.error(t)});var In=()=>ps()?ri():gs()?ii():si();var vn=()=>({stdout:async()=>{},stderr:async()=>{}});function An(){return()=>({stdout:t=>t,stderr:t=>t})}var Rt=class t{static writers={auto:In,void:vn,deno:ri,node:ii,console:si};static colors={auto:ws,colorful:()=>pr,colorless:()=>mr};static themes={auto:Cn,basic:Zr};static shapers={auto:En,none:An,errors:ei,timestamp:ti};writer=t.writers.auto();colors=t.colors.auto();theme=t.themes.auto();shaper=t.shapers.auto();async log(...e){await this.writer.stdout(this.shaper(this).stdout(e).join(" "))}async error(...e){await this.writer.stderr(this.shaper(this).stderr(e).join(" "))}setWriter(e){return this.writer=e,this}setColors(e){return this.colors=e,this}setTheme(e){return this.theme=e,this}setShaper(...e){return this.shaper=gr(...e),this}};var wr=class extends Rt{static dummy(){return new this().setWriter(Rt.writers.void())}rpcRequest=async({request:e,...r})=>{let i=this.colors.none;this.log(...this.#e(r),i(`${e.method}()`))};rpcError=async({request:e,error:r,...i})=>{this.error(...this.#e(i),`${e.method}()`,r)};#e({meta:e,label:r,remote:i}){let s=this.colors.mix(this.colors.blue,this.colors.dim),n=this.colors.mix(this.colors.cyan,this.colors.dim);return[e?this.#t(e):void 0,r||void 0,i===void 0?void 0:i?s("<-"):n("->")].filter(Boolean)}#t(e){let{headers:r}=e.request;return[this.colors.yellow(`[${e.ip}]`),this.colors.green(r.origin?r.origin:"(no-origin)")].join(" ")}};var Pe=class extends wr{rpcRequest=async()=>{}};function Ee(){let t,e,r=new Promise((s,n)=>{t=s,e=n});function i(s){return s.then(t).catch(e),r}return{promise:r,resolve:t,reject:e,entangle:i}}var Fn=Object.freeze({happy:t=>t!=null,sad:t=>t==null,boolean:t=>typeof t=="boolean",number:t=>typeof t=="number",string:t=>typeof t=="string",bigint:t=>typeof t=="bigint",object:t=>typeof t=="object"&&t!==null,array:t=>Array.isArray(t),fn:t=>typeof t=="function",symbol:t=>typeof t=="symbol"});var br=class extends Error{milliseconds;name=this.constructor.name;constructor(e){super(`deadline exceeded (${(e/1e3).toFixed(1)} seconds)`),this.milliseconds=e}};function Rn(t,e){return t<=0||t===1/0?e():new Promise((r,i)=>{let s=setTimeout(()=>i(new br(t)),t);e().then(r).catch(i).finally(()=>clearTimeout(s))})}function ni(){let t=[];function e(){for(let r of t)r();t=[]}return e.schedule=(...r)=>(t.push(...r),e),e}function Bn(t,e){let r=t;for(let i of e)if(r=r[i],Fn.sad(r))break;return r}function sc(){let t=new Set;async function e(...c){await Promise.all([...t].map(l=>l(...c)))}function r(c){return t.add(c),()=>{t.delete(c)}}async function i(...c){return e(...c)}function s(c){return r(c)}async function n(c){let{promise:l,resolve:d}=Ee(),u=s(async(...h)=>{c&&await c(...h),d(h),u()});return l}function a(){t.clear()}let o={pub:i,sub:s,publish:e,subscribe:r,on:r,next:n,clear:a};return Object.assign(s,o),Object.assign(i,o),o}function ai(t){let e=sc();return t&&e.sub(t),e.pub}var De;(function(t){t.version="2.0";function e(r){return"id"in r?r.id:null}t.getId=e,t.errorCodes={serverError:-32e3,unexposedError:-32001}})(De||(De={}));var oi=class extends Error{name=this.constructor.name},at=class extends Error{name=this.constructor.name};async function Dn({tap:t,request:e,action:r}){let i=De.getId(e);try{let s=await r();return i===null?null:{id:i,result:s,jsonrpc:De.version}}catch(s){return t.rpcError({request:e,error:s}),i===null?null:{id:i,jsonrpc:De.version,error:s instanceof oi?{code:De.errorCodes.serverError,message:s.message}:{code:De.errorCodes.unexposedError,message:"unexposed error"}}}}function ci(t){let e=t.tap??new Pe;return async r=>{let i=r.method.split("."),s=Bn(t.fns,i),n=async()=>await s(...r.params);return e.rpcRequest({request:r}),await Dn({tap:e,request:r,action:n})}}var On=Symbol("tune"),nc=Symbol("query"),ac=Symbol("notify"),oc=Symbol("settings");function zn(t){function e(r){let i={notify:void 0};return new Proxy((()=>{}),{apply:(s,n,a)=>t(r,a,i),get:(s,n)=>{if(n!=="then")return n===On?a=>(...o)=>t(r,o,{...i,...a}):n===ac?(...a)=>t(r,a,{...i,notify:!0}):n===nc?(...a)=>t(r,a,{...i,notify:!1}):n===oc?i:(s[n]||(s[n]=e([...r,n])),s[n])},set:(s,n,a)=>(s[n]=a,!0)})}return e([])}function ot(t){let{endpoint:e,tap:r=new Pe}=t,i=1;return zn(async(s,n,a)=>{let o=a.notify??t.notify??!1,c=a.transfer,l={jsonrpc:"2.0",method:s.join("."),params:n},d=o?l:{...l,id:i++};r.rpcRequest({request:d});let u=await e(d,{transfer:c});if(o&&!u)return null;if(!u)throw new at("response was null, but shouldn't be, because the request was not a notification");if("error"in u)throw new at(t.label?`${t.label}: ${u.error.message}`:u.error.message);return u.result})}function kr(t){return ot({endpoint:ci(t),tap:t.tap})}var ct=class{recv=ai();sendRequest=ai();sendResponse=ai();static makeEntangledPair({origin:e="example.e280.org"}={}){let r=new this,i=new this,s=[r.sendRequest.sub(a=>i.recv(a,{origin:e})),r.sendResponse.sub(a=>i.recv(a,{origin:e})),i.sendRequest.sub(a=>r.recv(a,{origin:e})),i.sendResponse.sub(a=>r.recv(a,{origin:e}))];return[r,i,()=>s.forEach(a=>a())]}};function li(t,e){return t.addEventListener("message",e),()=>t.removeEventListener("message",e)}function Mn(t,e){return async(r,{transfer:i}={})=>{if("id"in r){let s=Ee();return e(r,i,s.promise),t.wait(r.id,r.method).then(n=>(s.resolve(n),n))}else{let s=Promise.resolve(null);return e(r,i,s),s}}}function Un(t){let e=[],r=[];for(let i of Array.isArray(t)?t:[t])"method"in i?e.push(i):r.push(i);return{requests:e,responses:r}}async function Nn(t,e){let r=(await Promise.all(e.map(async i=>t(i)))).filter(i=>i!==null);return r.length===0?null:r.length===1?r[0]:r}var Bt=class extends ct{dispose=ni();constructor(e){super(),this.dispose.schedule(this.sendRequest.sub((r,i)=>e.postMessage(r,i)),this.sendResponse.sub((r,i)=>e.postMessage(r,i)),li(e,r=>this.recv(r.data,r)))}};var ui=class{remote;transfer;constructor(e){this.remote=e}};var bs=Object.freeze({timeout:6e4,maxRequestBytes:1e7});var di=class{timeout;pending=new Map;constructor(e){this.timeout=e}async wait(e,r){let i=Ee();return this.pending.set(e,{method:r,deferred:i}),await Rn(this.timeout,()=>i.promise).catch(s=>{throw s instanceof br&&(s.message=`request #${e} ${r}(), ${s.message}`),s})}deliverResponse(e){let r=this.pending.get(e.id);r&&("error"in e?r.deferred.reject(new at(e.error.message)):r.deferred.resolve(e))}};var lt=class{options;remote;remoteEndpoint;dispose=ni();#e;constructor(e){this.options=e;let{conduit:r,tap:i}=e;this.#e=new di(e.timeout??bs.timeout),this.remoteEndpoint=Mn(this.#e,r.sendRequest.pub.bind(r.sendRequest)),this.remote=ot({endpoint:this.remoteEndpoint,tap:i&&ms(i,{remote:!0})}),this.dispose.schedule(r.recv.sub(s=>this.recv(s)))}async recv(e){let r=new ui(this.remote),{conduit:i,rpc:s,tap:n}=this.options,{requests:a,responses:o}=Un(e);for(let u of o)this.#e.deliverResponse(u);if(!s)return;let c=await s(r),l=ci({fns:c,tap:n&&ms(n,{remote:!1})}),d=await Nn(l,a);d&&await i.sendResponse(d,r.transfer)}};var Oe={derive:{host:t=>({host:t.remote.host,get transfer(){return t.transfer},set transfer(e){t.transfer=e}}),work:t=>({work:t.remote,get transfer(){return t.transfer},set transfer(e){t.transfer=e}})},mock:{host:()=>({host:void 0,transfer:void 0}),work:()=>({work:void 0,transfer:void 0})}};var ze=new Pe;async function Vn(t,e,r={}){let i=r.tap??ze,s=new lt({tap:i,timeout:r.timeout??1/0,conduit:new Bt(t.getSelf()),rpc:async n=>e(Oe.derive.host(n))});return await s.remote.infra.ready(),s.remote.host}var Dt=class{worker;messenger;constructor(e,r){this.worker=e,this.messenger=r}static async make(e,r){let i=r.tap??ze,s=r.label??"comrade",n=e.loadWorker(r.workerUrl,s),a=Ee(),o={async ready(){a.resolve()}},c=new lt({tap:i,timeout:r.timeout??1/0,conduit:new Bt(n),rpc:async l=>({infra:o,host:r.setupHost(Oe.derive.work(l))})});return await a.promise,new this(n,c)}get work(){return this.messenger.remote}terminate(){this.worker.terminate()}};var hi=class{threads;static async make(e,r){let i=r.workerCount??e.guessOptimalThreadCount(),s=await Promise.all([...Array(i)].map(async(n,a)=>Dt.make(e,{...r,label:r.label??`${r.label??"comrade"}_${a+1}`})));return new this(s,{tap:r.tap})}work;#e=new Set;#t=[];constructor(e,r={}){this.threads=e;let i=r.tap??ze,s=async(n,a)=>this.#i({request:n,prom:Ee(),transfer:a?.transfer});this.work=ot({tap:i,endpoint:s}),e.forEach(n=>this.#e.add(n))}get threadCount(){return this.threads.length}terminate(){for(let e of this.threads)e.terminate()}#i(e){return this.#t.push(e),this.#r(),e.prom.promise}#r(){for(;this.#e.size>0&&this.#t.length>0;){let e=[...this.#e].pop();this.#e.delete(e);let r=this.#t.shift();this.#e.delete(e);let i=e.messenger.remoteEndpoint(r.request,{transfer:r.transfer});r.prom.entangle(i).finally(()=>{this.#e.add(e),this.#r()})}}};var Ln=t=>({thread:e=>Dt.make(t,e),cluster:e=>hi.make(t,e),worker:(e,r={})=>Vn(t,e,r),work:e=>e,host:e=>e,mocks(e){let{setupWork:r,setupHost:i,tap:s=ze}=e,n=Oe.mock.host(),a=Oe.mock.work();return a.work=kr({tap:s,fns:r(n)}),n.host=kr({tap:s,fns:i(a)}),{workShell:a,hostShell:n,work:a.work,host:n.host}},mockWork(e,r=ze){let i=Oe.mock.host(),s=Oe.mock.work();return s.work=kr({tap:r,fns:e(i)}),{workShell:s,hostShell:i,work:s.work,mockHost:n=>(i.host=kr({tap:r,fns:n(s)}),{workShell:s,hostShell:i,work:s.work,host:i.host})}}});var Wn=()=>({getSelf(){return self},guessOptimalThreadCount(){let t=navigator.hardwareConcurrency??1;return Math.max(1,t-1)},loadWorker(t,e){return new window.Worker(t,{name:e,type:"module"})},async loadWasm(t){return WebAssembly.instantiateStreaming(fetch(t))}});var uc=Wn(),fi=Ln(uc);function m(t){if(!t)throw new Error("Assertion failed.")}var mi=t=>{let e=(t%360+360)%360;if(e===0||e===90||e===180||e===270)return e;throw new Error(`Invalid rotation ${t}.`)},q=t=>t&&t[t.length-1],ut=t=>t>=0&&t<2**32,H=class t{constructor(e){this.bytes=e,this.pos=0}seekToByte(e){this.pos=8*e}readBit(){let e=Math.floor(this.pos/8),r=this.bytes[e]??0,i=7-(this.pos&7),s=(r&1<<i)>>i;return this.pos++,s}readBits(e){if(e===1)return this.readBit();let r=0;for(let i=0;i<e;i++)r<<=1,r|=this.readBit();return r}writeBits(e,r){let i=this.pos+e;for(let s=this.pos;s<i;s++){let n=Math.floor(s/8),a=this.bytes[n],o=7-(s&7);a&=~(1<<o),a|=(r&1<<i-s-1)>>i-s-1<<o,this.bytes[n]=a}this.pos=i}readAlignedByte(){if(this.pos%8!==0)throw new Error("Bitstream is not byte-aligned.");let e=this.pos/8,r=this.bytes[e]??0;return this.pos+=8,r}skipBits(e){this.pos+=e}getBitsLeft(){return this.bytes.length*8-this.pos}clone(){let e=new t(this.bytes);return e.pos=this.pos,e}},I=t=>{let e=0;for(;t.readBits(1)===0&&e<32;)e++;if(e>=32)throw new Error("Invalid exponential-Golomb code.");return(1<<e)-1+t.readBits(e)},Ie=t=>{let e=I(t);return(e&1)===0?-(e>>1):e+1>>1};var K=t=>t.constructor===Uint8Array?t:ArrayBuffer.isView(t)?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):new Uint8Array(t),V=t=>t.constructor===DataView?t:ArrayBuffer.isView(t)?new DataView(t.buffer,t.byteOffset,t.byteLength):new DataView(t),ie=new TextDecoder,ue=new TextEncoder;var Ss=t=>Object.fromEntries(Object.entries(t).map(([e,r])=>[r,e])),dt={bt709:1,bt470bg:5,smpte170m:6,bt2020:9,smpte432:12},pi=Ss(dt),ht={bt709:1,smpte170m:6,linear:8,"iec61966-2-1":13,pq:16,hlg:18},gi=Ss(ht),ft={rgb:0,bt709:1,bt470bg:5,smpte170m:6,"bt2020-ncl":9},wi=Ss(ft),qn=t=>!!t&&!!t.primaries&&!!t.transfer&&!!t.matrix&&t.fullRange!==void 0,Ot=t=>t instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&t instanceof SharedArrayBuffer||ArrayBuffer.isView(t),le=class{constructor(){this.currentPromise=Promise.resolve()}async acquire(){let e,r=new Promise(s=>{e=s}),i=this.currentPromise;return this.currentPromise=r,await i,e}},Cs=t=>[...t].map(e=>e.toString(16).padStart(2,"0")).join(""),_s=t=>(t=t>>1&1431655765|(t&1431655765)<<1,t=t>>2&858993459|(t&858993459)<<2,t=t>>4&252645135|(t&252645135)<<4,t=t>>8&16711935|(t&16711935)<<8,t=t>>16&65535|(t&65535)<<16,t>>>0),mt=(t,e,r)=>{let i=0,s=t.length-1,n=-1;for(;i<=s;){let a=i+s>>1,o=r(t[a]);o===e?(n=a,s=a-1):o<e?i=a+1:s=a-1}return n},M=(t,e,r)=>{let i=0,s=t.length-1,n=-1;for(;i<=s;){let a=i+(s-i+1)/2|0;r(t[a])<=e?(n=a,i=a+1):s=a-1}return n},Ps=(t,e,r)=>{let i=M(t,r(e),r);t.splice(i+1,0,e)},se=()=>{let t,e;return{promise:new Promise((i,s)=>{t=i,e=s}),resolve:t,reject:e}};var Es=(t,e)=>{for(let r=t.length-1;r>=0;r--)if(e(t[r]))return t[r]},bi=(t,e)=>{for(let r=t.length-1;r>=0;r--)if(e(t[r]))return r;return-1},jn=async function*(t){Symbol.iterator in t?yield*t[Symbol.iterator]():yield*t[Symbol.asyncIterator]()},$n=t=>{if(!(Symbol.iterator in t)&&!(Symbol.asyncIterator in t))throw new TypeError("Argument must be an iterable or async iterable.")},ne=t=>{throw new Error(`Unexpected value: ${t}`)},pt=(t,e,r)=>{let i=t.getUint8(e),s=t.getUint8(e+1),n=t.getUint8(e+2);return r?i|s<<8|n<<16:i<<16|s<<8|n},Qn=(t,e,r)=>pt(t,e,r)<<8>>8,yr=(t,e,r,i)=>{r=r>>>0,r=r&16777215,i?(t.setUint8(e,r&255),t.setUint8(e+1,r>>>8&255),t.setUint8(e+2,r>>>16&255)):(t.setUint8(e,r>>>16&255),t.setUint8(e+1,r>>>8&255),t.setUint8(e+2,r&255))},Gn=(t,e,r,i)=>{r=X(r,-8388608,8388607),r<0&&(r=r+16777216&16777215),yr(t,e,r,i)};var X=(t,e,r)=>Math.max(e,Math.min(r,t)),G="und",gt=t=>{let e=Math.round(t);return Math.abs(t/e-1)<10*Number.EPSILON?e:t},Kn=(t,e)=>Math.round(t/e)*e,Xn=t=>{let e=0;for(;t;)e++,t>>=1;return e},dc=/^[a-z]{3}$/,zt=t=>dc.test(t),ve=1e6*(1+Number.EPSILON),Is=(t,e)=>{let r={...t,...e};if(t.headers||e.headers){let i=t.headers?Hn(t.headers):{},s=e.headers?Hn(e.headers):{},n={...i};Object.entries(s).forEach(([a,o])=>{let c=Object.keys(n).find(l=>l.toLowerCase()===a.toLowerCase());c&&delete n[c],n[a]=o}),r.headers=n}return r},Hn=t=>{if(t instanceof Headers){let e={};return t.forEach((r,i)=>{e[i]=r}),e}if(Array.isArray(t)){let e={};return t.forEach(([r,i])=>{e[r]=i}),e}return t},vs=async(t,e,r,i,s)=>{let n=0;for(;;)try{return await t(e,r)}catch(a){if(s())throw a;n++;let o=i(n,a,e);if(o===null)throw a;if(console.error("Retrying failed fetch. Error:",a),!Number.isFinite(o)||o<0)throw new TypeError("Retry delay must be a non-negative finite number.");if(o>0&&await new Promise(c=>setTimeout(c,1e3*o)),s())throw a}},Yn=(t,e)=>{let r=t<0?-1:1;t=Math.abs(t);let i=0,s=1,n=1,a=0,o=t;for(;;){let c=Math.floor(o),l=c*n+i,d=c*a+s;if(d>e)return{numerator:r*n,denominator:a};if(i=n,s=a,n=l,a=d,o=1/(o-c),!isFinite(o))break}return{numerator:r*n,denominator:a}},Xe=class{constructor(){this.currentPromise=Promise.resolve()}call(e){return this.currentPromise=this.currentPromise.then(e)}},ks=null,Ye=()=>ks!==null?ks:ks=!!(typeof navigator<"u"&&(navigator.vendor?.match(/apple/i)||/AppleWebKit/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)||/\b(iPad|iPhone|iPod)\b/.test(navigator.userAgent))),ys=null,Mt=()=>ys!==null?ys:ys=typeof navigator<"u"&&navigator.userAgent?.includes("Firefox"),Ts=null,Tr=()=>Ts!==null?Ts:Ts=!!(typeof navigator<"u"&&(navigator.vendor?.includes("Google Inc")||/Chrome/.test(navigator.userAgent))),xs=null,Zn=()=>{if(xs!==null)return xs;if(typeof navigator>"u")return null;let t=/\bChrome\/(\d+)/.exec(navigator.userAgent);return t?xs=Number(t[1]):null},wt=(t,e)=>t!==-1?t:e,ki=(t,e,r,i)=>t<=i&&r<=e,xr=function*(t){for(let e in t){let r=t[e];r!==void 0&&(yield{key:e,value:r})}};var Jn=t=>{let e=atob(t),r=new Uint8Array(e.length);for(let i=0;i<e.length;i++)r[i]=e.charCodeAt(i);return r};var yi=()=>{Symbol.dispose??=Symbol("Symbol.dispose")},Sr=t=>typeof t=="number"&&!Number.isNaN(t);var ke=class{constructor(e,r){if(this.data=e,this.mimeType=r,!(e instanceof Uint8Array))throw new TypeError("data must be a Uint8Array.");if(typeof r!="string")throw new TypeError("mimeType must be a string.")}},Cr=class{constructor(e,r,i,s){if(this.data=e,this.mimeType=r,this.name=i,this.description=s,!(e instanceof Uint8Array))throw new TypeError("data must be a Uint8Array.");if(r!==void 0&&typeof r!="string")throw new TypeError("mimeType, when provided, must be a string.");if(i!==void 0&&typeof i!="string")throw new TypeError("name, when provided, must be a string.");if(s!==void 0&&typeof s!="string")throw new TypeError("description, when provided, must be a string.")}},ea=t=>{if(!t||typeof t!="object")throw new TypeError("tags must be an object.");if(t.title!==void 0&&typeof t.title!="string")throw new TypeError("tags.title, when provided, must be a string.");if(t.description!==void 0&&typeof t.description!="string")throw new TypeError("tags.description, when provided, must be a string.");if(t.artist!==void 0&&typeof t.artist!="string")throw new TypeError("tags.artist, when provided, must be a string.");if(t.album!==void 0&&typeof t.album!="string")throw new TypeError("tags.album, when provided, must be a string.");if(t.albumArtist!==void 0&&typeof t.albumArtist!="string")throw new TypeError("tags.albumArtist, when provided, must be a string.");if(t.trackNumber!==void 0&&(!Number.isInteger(t.trackNumber)||t.trackNumber<=0))throw new TypeError("tags.trackNumber, when provided, must be a positive integer.");if(t.tracksTotal!==void 0&&(!Number.isInteger(t.tracksTotal)||t.tracksTotal<=0))throw new TypeError("tags.tracksTotal, when provided, must be a positive integer.");if(t.discNumber!==void 0&&(!Number.isInteger(t.discNumber)||t.discNumber<=0))throw new TypeError("tags.discNumber, when provided, must be a positive integer.");if(t.discsTotal!==void 0&&(!Number.isInteger(t.discsTotal)||t.discsTotal<=0))throw new TypeError("tags.discsTotal, when provided, must be a positive integer.");if(t.genre!==void 0&&typeof t.genre!="string")throw new TypeError("tags.genre, when provided, must be a string.");if(t.date!==void 0&&(!(t.date instanceof Date)||Number.isNaN(t.date.getTime())))throw new TypeError("tags.date, when provided, must be a valid Date.");if(t.lyrics!==void 0&&typeof t.lyrics!="string")throw new TypeError("tags.lyrics, when provided, must be a string.");if(t.images!==void 0){if(!Array.isArray(t.images))throw new TypeError("tags.images, when provided, must be an array.");for(let e of t.images){if(!e||typeof e!="object")throw new TypeError("Each image in tags.images must be an object.");if(!(e.data instanceof Uint8Array))throw new TypeError("Each image.data must be a Uint8Array.");if(typeof e.mimeType!="string")throw new TypeError("Each image.mimeType must be a string.");if(!["coverFront","coverBack","unknown"].includes(e.kind))throw new TypeError("Each image.kind must be 'coverFront', 'coverBack', or 'unknown'.")}}if(t.comment!==void 0&&typeof t.comment!="string")throw new TypeError("tags.comment, when provided, must be a string.");if(t.raw!==void 0){if(!t.raw||typeof t.raw!="object")throw new TypeError("tags.raw, when provided, must be an object.");for(let e of Object.values(t.raw))if(e!==null&&typeof e!="string"&&!(e instanceof Uint8Array)&&!(e instanceof ke)&&!(e instanceof Cr))throw new TypeError("Each value in tags.raw must be a string, Uint8Array, RichImageData, AttachedFile, or null.")}};var de={default:!0,forced:!1,original:!1,commentary:!1,hearingImpaired:!1,visuallyImpaired:!1},ta=t=>{if(!t||typeof t!="object")throw new TypeError("disposition must be an object.");if(t.default!==void 0&&typeof t.default!="boolean")throw new TypeError("disposition.default must be a boolean.");if(t.forced!==void 0&&typeof t.forced!="boolean")throw new TypeError("disposition.forced must be a boolean.");if(t.original!==void 0&&typeof t.original!="boolean")throw new TypeError("disposition.original must be a boolean.");if(t.commentary!==void 0&&typeof t.commentary!="boolean")throw new TypeError("disposition.commentary must be a boolean.");if(t.hearingImpaired!==void 0&&typeof t.hearingImpaired!="boolean")throw new TypeError("disposition.hearingImpaired must be a boolean.");if(t.visuallyImpaired!==void 0&&typeof t.visuallyImpaired!="boolean")throw new TypeError("disposition.visuallyImpaired must be a boolean.")};var Ae=["avc","hevc","vp9","av1","vp8"],Q=["pcm-s16","pcm-s16be","pcm-s24","pcm-s24be","pcm-s32","pcm-s32be","pcm-f32","pcm-f32be","pcm-f64","pcm-f64be","pcm-u8","pcm-s8","ulaw","alaw"],As=["aac","opus","mp3","vorbis","flac"],Ue=[...As,...Q],bt=["webvtt"],ra=[{maxMacroblocks:99,maxBitrate:64e3,level:10},{maxMacroblocks:396,maxBitrate:192e3,level:11},{maxMacroblocks:396,maxBitrate:384e3,level:12},{maxMacroblocks:396,maxBitrate:768e3,level:13},{maxMacroblocks:396,maxBitrate:2e6,level:20},{maxMacroblocks:792,maxBitrate:4e6,level:21},{maxMacroblocks:1620,maxBitrate:4e6,level:22},{maxMacroblocks:1620,maxBitrate:1e7,level:30},{maxMacroblocks:3600,maxBitrate:14e6,level:31},{maxMacroblocks:5120,maxBitrate:2e7,level:32},{maxMacroblocks:8192,maxBitrate:2e7,level:40},{maxMacroblocks:8192,maxBitrate:5e7,level:41},{maxMacroblocks:8704,maxBitrate:5e7,level:42},{maxMacroblocks:22080,maxBitrate:135e6,level:50},{maxMacroblocks:36864,maxBitrate:24e7,level:51},{maxMacroblocks:36864,maxBitrate:24e7,level:52},{maxMacroblocks:139264,maxBitrate:24e7,level:60},{maxMacroblocks:139264,maxBitrate:48e7,level:61},{maxMacroblocks:139264,maxBitrate:8e8,level:62}],ia=[{maxPictureSize:36864,maxBitrate:128e3,tier:"L",level:30},{maxPictureSize:122880,maxBitrate:15e5,tier:"L",level:60},{maxPictureSize:245760,maxBitrate:3e6,tier:"L",level:63},{maxPictureSize:552960,maxBitrate:6e6,tier:"L",level:90},{maxPictureSize:983040,maxBitrate:1e7,tier:"L",level:93},{maxPictureSize:2228224,maxBitrate:12e6,tier:"L",level:120},{maxPictureSize:2228224,maxBitrate:3e7,tier:"H",level:120},{maxPictureSize:2228224,maxBitrate:2e7,tier:"L",level:123},{maxPictureSize:2228224,maxBitrate:5e7,tier:"H",level:123},{maxPictureSize:8912896,maxBitrate:25e6,tier:"L",level:150},{maxPictureSize:8912896,maxBitrate:1e8,tier:"H",level:150},{maxPictureSize:8912896,maxBitrate:4e7,tier:"L",level:153},{maxPictureSize:8912896,maxBitrate:16e7,tier:"H",level:153},{maxPictureSize:8912896,maxBitrate:6e7,tier:"L",level:156},{maxPictureSize:8912896,maxBitrate:24e7,tier:"H",level:156},{maxPictureSize:35651584,maxBitrate:6e7,tier:"L",level:180},{maxPictureSize:35651584,maxBitrate:24e7,tier:"H",level:180},{maxPictureSize:35651584,maxBitrate:12e7,tier:"L",level:183},{maxPictureSize:35651584,maxBitrate:48e7,tier:"H",level:183},{maxPictureSize:35651584,maxBitrate:24e7,tier:"L",level:186},{maxPictureSize:35651584,maxBitrate:8e8,tier:"H",level:186}],Me=[{maxPictureSize:36864,maxBitrate:2e5,level:10},{maxPictureSize:73728,maxBitrate:8e5,level:11},{maxPictureSize:122880,maxBitrate:18e5,level:20},{maxPictureSize:245760,maxBitrate:36e5,level:21},{maxPictureSize:552960,maxBitrate:72e5,level:30},{maxPictureSize:983040,maxBitrate:12e6,level:31},{maxPictureSize:2228224,maxBitrate:18e6,level:40},{maxPictureSize:2228224,maxBitrate:3e7,level:41},{maxPictureSize:8912896,maxBitrate:6e7,level:50},{maxPictureSize:8912896,maxBitrate:12e7,level:51},{maxPictureSize:8912896,maxBitrate:18e7,level:52},{maxPictureSize:35651584,maxBitrate:18e7,level:60},{maxPictureSize:35651584,maxBitrate:24e7,level:61},{maxPictureSize:35651584,maxBitrate:48e7,level:62}],sa=[{maxPictureSize:147456,maxBitrate:15e5,tier:"M",level:0},{maxPictureSize:278784,maxBitrate:3e6,tier:"M",level:1},{maxPictureSize:665856,maxBitrate:6e6,tier:"M",level:4},{maxPictureSize:1065024,maxBitrate:1e7,tier:"M",level:5},{maxPictureSize:2359296,maxBitrate:12e6,tier:"M",level:8},{maxPictureSize:2359296,maxBitrate:3e7,tier:"H",level:8},{maxPictureSize:2359296,maxBitrate:2e7,tier:"M",level:9},{maxPictureSize:2359296,maxBitrate:5e7,tier:"H",level:9},{maxPictureSize:8912896,maxBitrate:3e7,tier:"M",level:12},{maxPictureSize:8912896,maxBitrate:1e8,tier:"H",level:12},{maxPictureSize:8912896,maxBitrate:4e7,tier:"M",level:13},{maxPictureSize:8912896,maxBitrate:16e7,tier:"H",level:13},{maxPictureSize:8912896,maxBitrate:6e7,tier:"M",level:14},{maxPictureSize:8912896,maxBitrate:24e7,tier:"H",level:14},{maxPictureSize:35651584,maxBitrate:6e7,tier:"M",level:15},{maxPictureSize:35651584,maxBitrate:24e7,tier:"H",level:15},{maxPictureSize:35651584,maxBitrate:6e7,tier:"M",level:16},{maxPictureSize:35651584,maxBitrate:24e7,tier:"H",level:16},{maxPictureSize:35651584,maxBitrate:1e8,tier:"M",level:17},{maxPictureSize:35651584,maxBitrate:48e7,tier:"H",level:17},{maxPictureSize:35651584,maxBitrate:16e7,tier:"M",level:18},{maxPictureSize:35651584,maxBitrate:8e8,tier:"H",level:18},{maxPictureSize:35651584,maxBitrate:16e7,tier:"M",level:19},{maxPictureSize:35651584,maxBitrate:8e8,tier:"H",level:19}],na=".01.01.01.01.00",aa=".0.110.01.01.01.0",oa=(t,e,r,i)=>{if(t==="avc"){let n=Math.ceil(e/16)*Math.ceil(r/16),a=ra.find(u=>n<=u.maxMacroblocks&&i<=u.maxBitrate)??q(ra),o=a?a.level:0,c="64".padStart(2,"0"),l="00",d=o.toString(16).padStart(2,"0");return`avc1.${c}${l}${d}`}else if(t==="hevc"){let o=e*r,c=ia.find(d=>o<=d.maxPictureSize&&i<=d.maxBitrate)??q(ia);return`hev1.1.6.${c.tier}${c.level}.B0`}else{if(t==="vp8")return"vp8";if(t==="vp9"){let n=e*r;return`vp09.00.${(Me.find(c=>n<=c.maxPictureSize&&i<=c.maxBitrate)??q(Me)).level.toString().padStart(2,"0")}.08`}else if(t==="av1"){let n=e*r,a=sa.find(l=>n<=l.maxPictureSize&&i<=l.maxBitrate)??q(sa);return`av01.0.${a.level.toString().padStart(2,"0")}${a.tier}.08`}}throw new TypeError(`Unhandled codec '${t}'.`)};var ca=t=>{let e=t.split("."),s=(1<<7)+1,n=Number(e[1]),a=e[2],o=Number(a.slice(0,-1)),c=(n<<5)+o,l=a.slice(-1)==="H"?1:0,u=Number(e[3])===8?0:1,h=0,f=e[4]?Number(e[4]):0,p=e[5]?Number(e[5][0]):1,g=e[5]?Number(e[5][1]):1,w=e[5]?Number(e[5][2]):0,b=(l<<7)+(u<<6)+(h<<5)+(f<<4)+(p<<3)+(g<<2)+w;return[s,c,b,0]},Ti=t=>{let{codec:e,codecDescription:r,colorSpace:i,avcCodecInfo:s,hevcCodecInfo:n,vp9CodecInfo:a,av1CodecInfo:o}=t;if(e==="avc"){if(m(t.avcType!==null),s){let c=new Uint8Array([s.avcProfileIndication,s.profileCompatibility,s.avcLevelIndication]);return`avc${t.avcType}.${Cs(c)}`}if(!r||r.byteLength<4)throw new TypeError("AVC decoder description is not provided or is not at least 4 bytes long.");return`avc${t.avcType}.${Cs(r.subarray(1,4))}`}else if(e==="hevc"){let c,l,d,u,h,f;if(n)c=n.generalProfileSpace,l=n.generalProfileIdc,d=_s(n.generalProfileCompatibilityFlags),u=n.generalTierFlag,h=n.generalLevelIdc,f=[...n.generalConstraintIndicatorFlags];else{if(!r||r.byteLength<23)throw new TypeError("HEVC decoder description is not provided or is not at least 23 bytes long.");let g=V(r),w=g.getUint8(1);c=w>>6&3,l=w&31,d=_s(g.getUint32(2)),u=w>>5&1,h=g.getUint8(12),f=[];for(let b=0;b<6;b++)f.push(g.getUint8(6+b))}let p="hev1.";for(p+=["","A","B","C"][c]+l,p+=".",p+=d.toString(16).toUpperCase(),p+=".",p+=u===0?"L":"H",p+=h;f.length>0&&f[f.length-1]===0;)f.pop();return f.length>0&&(p+=".",p+=f.map(g=>g.toString(16).toUpperCase()).join(".")),p}else{if(e==="vp8")return"vp8";if(e==="vp9"){if(!a){let b=t.width*t.height,k=q(Me).level;for(let y of Me)if(b<=y.maxPictureSize){k=y.level;break}return`vp09.00.${k.toString().padStart(2,"0")}.08`}let c=a.profile.toString().padStart(2,"0"),l=a.level.toString().padStart(2,"0"),d=a.bitDepth.toString().padStart(2,"0"),u=a.chromaSubsampling.toString().padStart(2,"0"),h=a.colourPrimaries.toString().padStart(2,"0"),f=a.transferCharacteristics.toString().padStart(2,"0"),p=a.matrixCoefficients.toString().padStart(2,"0"),g=a.videoFullRangeFlag.toString().padStart(2,"0"),w=`vp09.${c}.${l}.${d}.${u}`;return w+=`.${h}.${f}.${p}.${g}`,w.endsWith(na)&&(w=w.slice(0,-na.length)),w}else if(e==="av1"){if(!o){let y=t.width*t.height,x=q(Me).level;for(let P of Me)if(y<=P.maxPictureSize){x=P.level;break}return`av01.0.${x.toString().padStart(2,"0")}M.08`}let c=o.profile,l=o.level.toString().padStart(2,"0"),d=o.tier?"H":"M",u=o.bitDepth.toString().padStart(2,"0"),h=o.monochrome?"1":"0",f=100*o.chromaSubsamplingX+10*o.chromaSubsamplingY+1*(o.chromaSubsamplingX&&o.chromaSubsamplingY?o.chromaSamplePosition:0),p=i?.primaries?dt[i.primaries]:1,g=i?.transfer?ht[i.transfer]:1,w=i?.matrix?ft[i.matrix]:1,b=i?.fullRange?1:0,k=`av01.${c}.${l}${d}.${u}`;return k+=`.${h}.${f.toString().padStart(3,"0")}`,k+=`.${p.toString().padStart(2,"0")}`,k+=`.${g.toString().padStart(2,"0")}`,k+=`.${w.toString().padStart(2,"0")}`,k+=`.${b}`,k.endsWith(aa)&&(k=k.slice(0,-aa.length)),k}}throw new TypeError(`Unhandled codec '${e}'.`)},la=(t,e,r)=>{if(t==="aac")return e>=2&&r<=24e3?"mp4a.40.29":r<=24e3?"mp4a.40.5":"mp4a.40.2";if(t==="mp3")return"mp3";if(t==="opus")return"opus";if(t==="vorbis")return"vorbis";if(t==="flac")return"flac";if(Q.includes(t))return t;throw new TypeError(`Unhandled codec '${t}'.`)},xi=t=>{let{codec:e,codecDescription:r,aacCodecInfo:i}=t;if(e==="aac"){if(!i)throw new TypeError("AAC codec info must be provided.");return i.isMpeg2?"mp4a.67":`mp4a.40.${_r(r).objectType}`}else{if(e==="mp3")return"mp3";if(e==="opus")return"opus";if(e==="vorbis")return"vorbis";if(e==="flac")return"flac";if(e&&Q.includes(e))return e}throw new TypeError(`Unhandled codec '${e}'.`)},Ut=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],Si=[-1,1,2,3,4,5,6,8],_r=t=>{if(!t||t.byteLength<2)throw new TypeError("AAC description must be at least 2 bytes long.");let e=new H(t),r=e.readBits(5);r===31&&(r=32+e.readBits(6));let i=e.readBits(4),s=null;i===15?s=e.readBits(24):i<Ut.length&&(s=Ut[i]);let n=e.readBits(4),a=null;return n>=1&&n<=7&&(a=Si[n]),{objectType:r,frequencyIndex:i,sampleRate:s,channelConfiguration:n,numberOfChannels:a}},ua=t=>{let e=Ut.indexOf(t.sampleRate),r=null;e===-1&&(e=15,r=t.sampleRate);let i=Si.indexOf(t.numberOfChannels);if(i===-1)throw new TypeError(`Unsupported number of channels: ${t.numberOfChannels}`);let s=13;t.objectType>=32&&(s+=6),e===15&&(s+=24);let n=Math.ceil(s/8),a=new Uint8Array(n),o=new H(a);return t.objectType<32?o.writeBits(5,t.objectType):(o.writeBits(5,31),o.writeBits(6,t.objectType-32)),o.writeBits(4,e),e===15&&o.writeBits(24,r),o.writeBits(4,i),a},kt=48e3,da=/^pcm-([usf])(\d+)+(be)?$/,fe=t=>{if(m(Q.includes(t)),t==="ulaw")return{dataType:"ulaw",sampleSize:1,littleEndian:!0,silentValue:255};if(t==="alaw")return{dataType:"alaw",sampleSize:1,littleEndian:!0,silentValue:213};let e=da.exec(t);m(e);let r;e[1]==="u"?r="unsigned":e[1]==="s"?r="signed":r="float";let i=Number(e[2])/8,s=e[3]!=="be",n=t==="pcm-u8"?2**7:0;return{dataType:r,sampleSize:i,littleEndian:s,silentValue:n}},Fs=t=>t.startsWith("avc1")||t.startsWith("avc3")?"avc":t.startsWith("hev1")||t.startsWith("hvc1")?"hevc":t==="vp8"?"vp8":t.startsWith("vp09")?"vp9":t.startsWith("av01")?"av1":t.startsWith("mp4a.40")||t==="mp4a.67"?"aac":t==="mp3"||t==="mp4a.69"||t==="mp4a.6B"||t==="mp4a.6b"?"mp3":t==="opus"?"opus":t==="vorbis"?"vorbis":t==="flac"?"flac":t==="ulaw"?"ulaw":t==="alaw"?"alaw":da.test(t)?t:t==="webvtt"?"webvtt":null,ha=t=>t==="avc"?{avc:{format:"avc"}}:t==="hevc"?{hevc:{format:"hevc"}}:{},fa=t=>t==="aac"?{aac:{format:"aac"}}:t==="opus"?{opus:{format:"opus"}}:{},hc=["avc1","avc3","hev1","hvc1","vp8","vp09","av01"],fc=/^(avc1|avc3)\.[0-9a-fA-F]{6}$/,mc=/^(hev1|hvc1)\.(?:[ABC]?\d+)\.[0-9a-fA-F]{1,8}\.[LH]\d+(?:\.[0-9a-fA-F]{1,2}){0,6}$/,pc=/^vp09(?:\.\d{2}){3}(?:(?:\.\d{2}){5})?$/,gc=/^av01\.\d\.\d{2}[MH]\.\d{2}(?:\.\d\.\d{3}\.\d{2}\.\d{2}\.\d{2}\.\d)?$/,ma=t=>{if(!t)throw new TypeError("Video chunk metadata must be provided.");if(typeof t!="object")throw new TypeError("Video chunk metadata must be an object.");if(!t.decoderConfig)throw new TypeError("Video chunk metadata must include a decoder configuration.");if(typeof t.decoderConfig!="object")throw new TypeError("Video chunk metadata decoder configuration must be an object.");if(typeof t.decoderConfig.codec!="string")throw new TypeError("Video chunk metadata decoder configuration must specify a codec string.");if(!hc.some(e=>t.decoderConfig.codec.startsWith(e)))throw new TypeError("Video chunk metadata decoder configuration codec string must be a valid video codec string as specified in the WebCodecs Codec Registry.");if(!Number.isInteger(t.decoderConfig.codedWidth)||t.decoderConfig.codedWidth<=0)throw new TypeError("Video chunk metadata decoder configuration must specify a valid codedWidth (positive integer).");if(!Number.isInteger(t.decoderConfig.codedHeight)||t.decoderConfig.codedHeight<=0)throw new TypeError("Video chunk metadata decoder configuration must specify a valid codedHeight (positive integer).");if(t.decoderConfig.description!==void 0&&!Ot(t.decoderConfig.description))throw new TypeError("Video chunk metadata decoder configuration description, when defined, must be an ArrayBuffer or an ArrayBuffer view.");if(t.decoderConfig.colorSpace!==void 0){let{colorSpace:e}=t.decoderConfig;if(typeof e!="object")throw new TypeError("Video chunk metadata decoder configuration colorSpace, when provided, must be an object.");let r=Object.keys(dt);if(e.primaries!=null&&!r.includes(e.primaries))throw new TypeError(`Video chunk metadata decoder configuration colorSpace primaries, when defined, must be one of ${r.join(", ")}.`);let i=Object.keys(ht);if(e.transfer!=null&&!i.includes(e.transfer))throw new TypeError(`Video chunk metadata decoder configuration colorSpace transfer, when defined, must be one of ${i.join(", ")}.`);let s=Object.keys(ft);if(e.matrix!=null&&!s.includes(e.matrix))throw new TypeError(`Video chunk metadata decoder configuration colorSpace matrix, when defined, must be one of ${s.join(", ")}.`);if(e.fullRange!=null&&typeof e.fullRange!="boolean")throw new TypeError("Video chunk metadata decoder configuration colorSpace fullRange, when defined, must be a boolean.")}if(t.decoderConfig.codec.startsWith("avc1")||t.decoderConfig.codec.startsWith("avc3")){if(!fc.test(t.decoderConfig.codec))throw new TypeError("Video chunk metadata decoder configuration codec string for AVC must be a valid AVC codec string as specified in Section 3.4 of RFC 6381.")}else if(t.decoderConfig.codec.startsWith("hev1")||t.decoderConfig.codec.startsWith("hvc1")){if(!mc.test(t.decoderConfig.codec))throw new TypeError("Video chunk metadata decoder configuration codec string for HEVC must be a valid HEVC codec string as specified in Section E.3 of ISO 14496-15.")}else if(t.decoderConfig.codec.startsWith("vp8")){if(t.decoderConfig.codec!=="vp8")throw new TypeError('Video chunk metadata decoder configuration codec string for VP8 must be "vp8".')}else if(t.decoderConfig.codec.startsWith("vp09")){if(!pc.test(t.decoderConfig.codec))throw new TypeError('Video chunk metadata decoder configuration codec string for VP9 must be a valid VP9 codec string as specified in Section "Codecs Parameter String" of https://www.webmproject.org/vp9/mp4/.')}else if(t.decoderConfig.codec.startsWith("av01")&&!gc.test(t.decoderConfig.codec))throw new TypeError('Video chunk metadata decoder configuration codec string for AV1 must be a valid AV1 codec string as specified in Section "Codecs Parameter String" of https://aomediacodec.github.io/av1-isobmff/.')},wc=["mp4a","mp3","opus","vorbis","flac","ulaw","alaw","pcm"],pa=t=>{if(!t)throw new TypeError("Audio chunk metadata must be provided.");if(typeof t!="object")throw new TypeError("Audio chunk metadata must be an object.");if(!t.decoderConfig)throw new TypeError("Audio chunk metadata must include a decoder configuration.");if(typeof t.decoderConfig!="object")throw new TypeError("Audio chunk metadata decoder configuration must be an object.");if(typeof t.decoderConfig.codec!="string")throw new TypeError("Audio chunk metadata decoder configuration must specify a codec string.");if(!wc.some(e=>t.decoderConfig.codec.startsWith(e)))throw new TypeError("Audio chunk metadata decoder configuration codec string must be a valid audio codec string as specified in the WebCodecs Codec Registry.");if(!Number.isInteger(t.decoderConfig.sampleRate)||t.decoderConfig.sampleRate<=0)throw new TypeError("Audio chunk metadata decoder configuration must specify a valid sampleRate (positive integer).");if(!Number.isInteger(t.decoderConfig.numberOfChannels)||t.decoderConfig.numberOfChannels<=0)throw new TypeError("Audio chunk metadata decoder configuration must specify a valid numberOfChannels (positive integer).");if(t.decoderConfig.description!==void 0&&!Ot(t.decoderConfig.description))throw new TypeError("Audio chunk metadata decoder configuration description, when defined, must be an ArrayBuffer or an ArrayBuffer view.");if(t.decoderConfig.codec.startsWith("mp4a")&&t.decoderConfig.codec!=="mp4a.69"&&t.decoderConfig.codec!=="mp4a.6B"&&t.decoderConfig.codec!=="mp4a.6b"){if(!["mp4a.40.2","mp4a.40.02","mp4a.40.5","mp4a.40.05","mp4a.40.29","mp4a.67"].includes(t.decoderConfig.codec))throw new TypeError("Audio chunk metadata decoder configuration codec string for AAC must be a valid AAC codec string as specified in https://www.w3.org/TR/webcodecs-aac-codec-registration/.");if(!t.decoderConfig.description)throw new TypeError("Audio chunk metadata decoder configuration for AAC must include a description, which is expected to be an AudioSpecificConfig as specified in ISO 14496-3.")}else if(t.decoderConfig.codec.startsWith("mp3")||t.decoderConfig.codec.startsWith("mp4a")){if(t.decoderConfig.codec!=="mp3"&&t.decoderConfig.codec!=="mp4a.69"&&t.decoderConfig.codec!=="mp4a.6B"&&t.decoderConfig.codec!=="mp4a.6b")throw new TypeError('Audio chunk metadata decoder configuration codec string for MP3 must be "mp3", "mp4a.69" or "mp4a.6B".')}else if(t.decoderConfig.codec.startsWith("opus")){if(t.decoderConfig.codec!=="opus")throw new TypeError('Audio chunk metadata decoder configuration codec string for Opus must be "opus".');if(t.decoderConfig.description&&t.decoderConfig.description.byteLength<18)throw new TypeError("Audio chunk metadata decoder configuration description, when specified, is expected to be an Identification Header as specified in Section 5.1 of RFC 7845.")}else if(t.decoderConfig.codec.startsWith("vorbis")){if(t.decoderConfig.codec!=="vorbis")throw new TypeError('Audio chunk metadata decoder configuration codec string for Vorbis must be "vorbis".');if(!t.decoderConfig.description)throw new TypeError("Audio chunk metadata decoder configuration for Vorbis must include a description, which is expected to adhere to the format described in https://www.w3.org/TR/webcodecs-vorbis-codec-registration/.")}else if(t.decoderConfig.codec.startsWith("flac")){if(t.decoderConfig.codec!=="flac")throw new TypeError('Audio chunk metadata decoder configuration codec string for FLAC must be "flac".');if(!t.decoderConfig.description||t.decoderConfig.description.byteLength<42)throw new TypeError("Audio chunk metadata decoder configuration for FLAC must include a description, which is expected to adhere to the format described in https://www.w3.org/TR/webcodecs-flac-codec-registration/.")}else if((t.decoderConfig.codec.startsWith("pcm")||t.decoderConfig.codec.startsWith("ulaw")||t.decoderConfig.codec.startsWith("alaw"))&&!Q.includes(t.decoderConfig.codec))throw new TypeError(`Audio chunk metadata decoder configuration codec string for PCM must be one of the supported PCM codecs (${Q.join(", ")}).`)},ga=t=>{if(!t)throw new TypeError("Subtitle metadata must be provided.");if(typeof t!="object")throw new TypeError("Subtitle metadata must be an object.");if(!t.config)throw new TypeError("Subtitle metadata must include a config object.");if(typeof t.config!="object")throw new TypeError("Subtitle metadata config must be an object.");if(typeof t.config.description!="string")throw new TypeError("Subtitle metadata config description must be a string.")};var Ci=class{constructor(e){this.mutex=new le,this.firstMediaStreamTimestamp=null,this.trackTimestampInfo=new WeakMap,this.output=e}onTrackClose(e){}validateAndNormalizeTimestamp(e,r,i){r+=e.source._timestampOffset;let s=this.trackTimestampInfo.get(e);if(!s){if(!i)throw new Error("First packet must be a key packet.");s={maxTimestamp:r,maxTimestampBeforeLastKeyPacket:r},this.trackTimestampInfo.set(e,s)}if(r<0)throw new Error(`Timestamps must be non-negative (got ${r}s).`);if(i&&(s.maxTimestampBeforeLastKeyPacket=s.maxTimestamp),r<s.maxTimestampBeforeLastKeyPacket)throw new Error(`Timestamps cannot be smaller than the largest timestamp of the previous GOP (a GOP begins with a key packet and ends right before the next key packet). Got ${r}s, but largest timestamp is ${s.maxTimestampBeforeLastKeyPacket}s.`);return s.maxTimestamp=Math.max(s.maxTimestamp,r),r}};var yt;(function(t){t[t.IDR=5]="IDR",t[t.SEI=6]="SEI",t[t.SPS=7]="SPS",t[t.PPS=8]="PPS",t[t.SPS_EXT=13]="SPS_EXT"})(yt||(yt={}));var ce;(function(t){t[t.RASL_N=8]="RASL_N",t[t.RASL_R=9]="RASL_R",t[t.BLA_W_LP=16]="BLA_W_LP",t[t.RSV_IRAP_VCL23=23]="RSV_IRAP_VCL23",t[t.VPS_NUT=32]="VPS_NUT",t[t.SPS_NUT=33]="SPS_NUT",t[t.PPS_NUT=34]="PPS_NUT",t[t.PREFIX_SEI_NUT=39]="PREFIX_SEI_NUT",t[t.SUFFIX_SEI_NUT=40]="SUFFIX_SEI_NUT"})(ce||(ce={}));var Nt=t=>{let e=[],r=0;for(;r<t.length;){let i=-1,s=0;for(let n=r;n<t.length-3;n++){if(t[n]===0&&t[n+1]===0&&t[n+2]===1){i=n,s=3;break}if(n<t.length-4&&t[n]===0&&t[n+1]===0&&t[n+2]===0&&t[n+3]===1){i=n,s=4;break}}if(i===-1)break;if(r>0&&i>r){let n=t.subarray(r,i);n.length>0&&e.push(n)}r=i+s}if(r<t.length){let i=t.subarray(r);i.length>0&&e.push(i)}return e},ba=(t,e)=>{let r=[],i=0,s=new DataView(t.buffer,t.byteOffset,t.byteLength);for(;i+e<=t.length;){let n;e===1?n=s.getUint8(i):e===2?n=s.getUint16(i,!1):e===3?n=pt(s,i,!1):e===4?n=s.getUint32(i,!1):(ne(e),m(!1)),i+=e;let a=t.subarray(i,i+n);r.push(a),i+=n}return r},_i=t=>{let e=[],r=t.length;for(let i=0;i<r;i++)i+2<r&&t[i]===0&&t[i+1]===0&&t[i+2]===3?(e.push(0,0),i+=2):e.push(t[i]);return new Uint8Array(e)},Rs=new Uint8Array([0,0,0,1]),bc=t=>{let e=t.reduce((s,n)=>s+Rs.byteLength+n.byteLength,0),r=new Uint8Array(e),i=0;for(let s of t)r.set(Rs,i),i+=Rs.byteLength,r.set(s,i),i+=s.byteLength;return r},Bs=(t,e)=>{let r=t.reduce((n,a)=>n+e+a.byteLength,0),i=new Uint8Array(r),s=0;for(let n of t){let a=new DataView(i.buffer,i.byteOffset,i.byteLength);switch(e){case 1:a.setUint8(s,n.byteLength);break;case 2:a.setUint16(s,n.byteLength,!1);break;case 3:yr(a,s,n.byteLength,!1);break;case 4:a.setUint32(s,n.byteLength,!1);break}s+=e,i.set(n,s),s+=n.byteLength}return i},Ds=(t,e)=>{if(e.description){let s=(K(e.description)[4]&3)+1;return ba(t,s)}else return Nt(t)},ka=(t,e)=>{if(e.description){let s=(K(e.description)[4]&3)+1;return Bs(t,s)}else return bc(t)},Tt=t=>t[0]&31,Pi=t=>{try{let e=Nt(t),r=e.filter(c=>Tt(c)===yt.SPS),i=e.filter(c=>Tt(c)===yt.PPS),s=e.filter(c=>Tt(c)===yt.SPS_EXT);if(r.length===0||i.length===0)return null;let n=r[0],a=Os(n);m(a!==null);let o=a.profileIdc===100||a.profileIdc===110||a.profileIdc===122||a.profileIdc===144;return{configurationVersion:1,avcProfileIndication:a.profileIdc,profileCompatibility:a.constraintFlags,avcLevelIndication:a.levelIdc,lengthSizeMinusOne:3,sequenceParameterSets:r,pictureParameterSets:i,chromaFormat:o?a.chromaFormatIdc:null,bitDepthLumaMinus8:o?a.bitDepthLumaMinus8:null,bitDepthChromaMinus8:o?a.bitDepthChromaMinus8:null,sequenceParameterSetExt:o?s:null}}catch(e){return console.error("Error building AVC Decoder Configuration Record:",e),null}},ya=t=>{let e=[];e.push(t.configurationVersion),e.push(t.avcProfileIndication),e.push(t.profileCompatibility),e.push(t.avcLevelIndication),e.push(252|t.lengthSizeMinusOne&3),e.push(224|t.sequenceParameterSets.length&31);for(let r of t.sequenceParameterSets){let i=r.byteLength;e.push(i>>8),e.push(i&255);for(let s=0;s<i;s++)e.push(r[s])}e.push(t.pictureParameterSets.length);for(let r of t.pictureParameterSets){let i=r.byteLength;e.push(i>>8),e.push(i&255);for(let s=0;s<i;s++)e.push(r[s])}if(t.avcProfileIndication===100||t.avcProfileIndication===110||t.avcProfileIndication===122||t.avcProfileIndication===144){m(t.chromaFormat!==null),m(t.bitDepthLumaMinus8!==null),m(t.bitDepthChromaMinus8!==null),m(t.sequenceParameterSetExt!==null),e.push(252|t.chromaFormat&3),e.push(248|t.bitDepthLumaMinus8&7),e.push(248|t.bitDepthChromaMinus8&7),e.push(t.sequenceParameterSetExt.length);for(let r of t.sequenceParameterSetExt){let i=r.byteLength;e.push(i>>8),e.push(i&255);for(let s=0;s<i;s++)e.push(r[s])}}return new Uint8Array(e)},Ta=t=>{try{let e=V(t),r=0,i=e.getUint8(r++),s=e.getUint8(r++),n=e.getUint8(r++),a=e.getUint8(r++),o=e.getUint8(r++)&3,c=e.getUint8(r++)&31,l=[];for(let f=0;f<c;f++){let p=e.getUint16(r,!1);r+=2,l.push(t.subarray(r,r+p)),r+=p}let d=e.getUint8(r++),u=[];for(let f=0;f<d;f++){let p=e.getUint16(r,!1);r+=2,u.push(t.subarray(r,r+p)),r+=p}let h={configurationVersion:i,avcProfileIndication:s,profileCompatibility:n,avcLevelIndication:a,lengthSizeMinusOne:o,sequenceParameterSets:l,pictureParameterSets:u,chromaFormat:null,bitDepthLumaMinus8:null,bitDepthChromaMinus8:null,sequenceParameterSetExt:null};if((s===100||s===110||s===122||s===144)&&r+4<=t.length){let f=e.getUint8(r++)&3,p=e.getUint8(r++)&7,g=e.getUint8(r++)&7,w=e.getUint8(r++);h.chromaFormat=f,h.bitDepthLumaMinus8=p,h.bitDepthChromaMinus8=g;let b=[];for(let k=0;k<w;k++){let y=e.getUint16(r,!1);r+=2,b.push(t.subarray(r,r+y)),r+=y}h.sequenceParameterSetExt=b}return h}catch(e){return console.error("Error deserializing AVC Decoder Configuration Record:",e),null}},Os=t=>{try{let e=new H(_i(t));if(e.skipBits(1),e.skipBits(2),e.readBits(5)!==7)return null;let i=e.readAlignedByte(),s=e.readAlignedByte(),n=e.readAlignedByte();I(e);let a=null,o=null,c=null;if((i===100||i===110||i===122||i===244||i===44||i===83||i===86||i===118||i===128)&&(a=I(e),a===3&&e.skipBits(1),o=I(e),c=I(e),e.skipBits(1),e.readBits(1))){for(let h=0;h<(a!==3?8:12);h++)if(e.readBits(1)){let p=h<6?16:64,g=8,w=8;for(let b=0;b<p;b++){if(w!==0){let k=Ie(e);w=(g+k+256)%256}g=w===0?g:w}}}I(e);let l=I(e);if(l===0)I(e);else if(l===1){e.skipBits(1),Ie(e),Ie(e);let u=I(e);for(let h=0;h<u;h++)Ie(e)}I(e),e.skipBits(1),I(e),I(e);let d=e.readBits(1);return{profileIdc:i,constraintFlags:s,levelIdc:n,frameMbsOnlyFlag:d,chromaFormatIdc:a,bitDepthLumaMinus8:o,bitDepthChromaMinus8:c}}catch(e){return console.error("Error parsing AVC SPS:",e),null}},zs=(t,e)=>{if(e.description){let s=(K(e.description)[21]&3)+1;return ba(t,s)}else return Nt(t)},Ne=t=>t[0]>>1&63,Ei=t=>{try{let e=Nt(t),r=e.filter(N=>Ne(N)===ce.VPS_NUT),i=e.filter(N=>Ne(N)===ce.SPS_NUT),s=e.filter(N=>Ne(N)===ce.PPS_NUT),n=e.filter(N=>Ne(N)===ce.PREFIX_SEI_NUT||Ne(N)===ce.SUFFIX_SEI_NUT);if(i.length===0||s.length===0)return null;let a=i[0],o=new H(_i(a));o.skipBits(16),o.readBits(4);let c=o.readBits(3),l=o.readBits(1),{general_profile_space:d,general_tier_flag:u,general_profile_idc:h,general_profile_compatibility_flags:f,general_constraint_indicator_flags:p,general_level_idc:g}=kc(o,c);I(o);let w=I(o);w===3&&o.skipBits(1),I(o),I(o),o.readBits(1)&&(I(o),I(o),I(o),I(o));let b=I(o),k=I(o);I(o);let x=o.readBits(1)?0:c;for(let N=x;N<=c;N++)I(o),I(o),I(o);I(o),I(o),I(o),I(o),I(o),I(o),o.readBits(1)&&o.readBits(1)&&yc(o),o.skipBits(1),o.skipBits(1),o.readBits(1)&&(o.skipBits(4),o.skipBits(4),I(o),I(o),o.skipBits(1));let P=I(o);if(Tc(o,P),o.readBits(1)){let N=I(o);for(let z=0;z<N;z++)I(o),o.skipBits(1)}o.skipBits(1),o.skipBits(1);let S=0;o.readBits(1)&&(S=Sc(o,c));let A=0;if(s.length>0){let N=s[0],z=new H(_i(N));z.skipBits(16),I(z),I(z),z.skipBits(1),z.skipBits(1),z.skipBits(3),z.skipBits(1),z.skipBits(1),I(z),I(z),Ie(z),z.skipBits(1),z.skipBits(1),z.readBits(1)&&I(z),Ie(z),Ie(z),z.skipBits(1),z.skipBits(1),z.skipBits(1),z.skipBits(1);let re=z.readBits(1),nt=z.readBits(1);!re&&!nt?A=0:re&&!nt?A=2:!re&&nt?A=3:A=0}let E=[...r.length?[{arrayCompleteness:1,nalUnitType:ce.VPS_NUT,nalUnits:r}]:[],...i.length?[{arrayCompleteness:1,nalUnitType:ce.SPS_NUT,nalUnits:i}]:[],...s.length?[{arrayCompleteness:1,nalUnitType:ce.PPS_NUT,nalUnits:s}]:[],...n.length?[{arrayCompleteness:1,nalUnitType:Ne(n[0]),nalUnits:n}]:[]];return{configurationVersion:1,generalProfileSpace:d,generalTierFlag:u,generalProfileIdc:h,generalProfileCompatibilityFlags:f,generalConstraintIndicatorFlags:p,generalLevelIdc:g,minSpatialSegmentationIdc:S,parallelismType:A,chromaFormatIdc:w,bitDepthLumaMinus8:b,bitDepthChromaMinus8:k,avgFrameRate:0,constantFrameRate:0,numTemporalLayers:c+1,temporalIdNested:l,lengthSizeMinusOne:3,arrays:E}}catch(e){return console.error("Error building HEVC Decoder Configuration Record:",e),null}},kc=(t,e)=>{let r=t.readBits(2),i=t.readBits(1),s=t.readBits(5),n=0;for(let d=0;d<32;d++)n=n<<1|t.readBits(1);let a=new Uint8Array(6);for(let d=0;d<6;d++)a[d]=t.readBits(8);let o=t.readBits(8),c=[],l=[];for(let d=0;d<e;d++)c.push(t.readBits(1)),l.push(t.readBits(1));if(e>0)for(let d=e;d<8;d++)t.skipBits(2);for(let d=0;d<e;d++)c[d]&&t.skipBits(88),l[d]&&t.skipBits(8);return{general_profile_space:r,general_tier_flag:i,general_profile_idc:s,general_profile_compatibility_flags:n,general_constraint_indicator_flags:a,general_level_idc:o}},yc=t=>{for(let e=0;e<4;e++)for(let r=0;r<(e===3?2:6);r++)if(!t.readBits(1))I(t);else{let s=Math.min(64,1<<4+(e<<1));e>1&&Ie(t);for(let n=0;n<s;n++)Ie(t)}},Tc=(t,e)=>{let r=[];for(let i=0;i<e;i++)r[i]=xc(t,i,e,r)},xc=(t,e,r,i)=>{let s=0,n=0,a=0;if(e!==0&&(n=t.readBits(1)),n){if(e===r){let c=I(t);a=e-(c+1)}else a=e-1;t.readBits(1),I(t);let o=i[a]??0;for(let c=0;c<=o;c++)t.readBits(1)||t.readBits(1);s=i[a]}else{let o=I(t),c=I(t);for(let l=0;l<o;l++)I(t),t.readBits(1);for(let l=0;l<c;l++)I(t),t.readBits(1);s=o+c}return s},Sc=(t,e)=>{if(t.readBits(1)&&t.readBits(8)===255&&(t.readBits(16),t.readBits(16)),t.readBits(1)&&t.readBits(1),t.readBits(1)&&(t.readBits(3),t.readBits(1),t.readBits(1)&&(t.readBits(8),t.readBits(8),t.readBits(8))),t.readBits(1)&&(I(t),I(t)),t.readBits(1),t.readBits(1),t.readBits(1),t.readBits(1)&&(I(t),I(t),I(t),I(t)),t.readBits(1)&&(t.readBits(32),t.readBits(32),t.readBits(1)&&I(t),t.readBits(1)&&Cc(t,!0,e)),t.readBits(1)){t.readBits(1),t.readBits(1),t.readBits(1);let r=I(t);return I(t),I(t),I(t),I(t),r}return 0},Cc=(t,e,r)=>{let i=!1,s=!1,n=!1;e&&(i=t.readBits(1)===1,s=t.readBits(1)===1,(i||s)&&(n=t.readBits(1)===1,n&&(t.readBits(8),t.readBits(5),t.readBits(1),t.readBits(5)),t.readBits(4),t.readBits(4),n&&t.readBits(4),t.readBits(5),t.readBits(5),t.readBits(5)));for(let a=0;a<=r;a++){let o=t.readBits(1)===1,c=!0;o||(c=t.readBits(1)===1);let l=!1;c?I(t):l=t.readBits(1)===1;let d=1;l||(d=I(t)+1),i&&wa(t,d,n),s&&wa(t,d,n)}},wa=(t,e,r)=>{for(let i=0;i<e;i++)I(t),I(t),r&&(I(t),I(t)),t.readBits(1)},xa=t=>{let e=[];e.push(t.configurationVersion),e.push((t.generalProfileSpace&3)<<6|(t.generalTierFlag&1)<<5|t.generalProfileIdc&31),e.push(t.generalProfileCompatibilityFlags>>>24&255),e.push(t.generalProfileCompatibilityFlags>>>16&255),e.push(t.generalProfileCompatibilityFlags>>>8&255),e.push(t.generalProfileCompatibilityFlags&255),e.push(...t.generalConstraintIndicatorFlags),e.push(t.generalLevelIdc&255),e.push(240|t.minSpatialSegmentationIdc>>8&15),e.push(t.minSpatialSegmentationIdc&255),e.push(252|t.parallelismType&3),e.push(252|t.chromaFormatIdc&3),e.push(248|t.bitDepthLumaMinus8&7),e.push(248|t.bitDepthChromaMinus8&7),e.push(t.avgFrameRate>>8&255),e.push(t.avgFrameRate&255),e.push((t.constantFrameRate&3)<<6|(t.numTemporalLayers&7)<<3|(t.temporalIdNested&1)<<2|t.lengthSizeMinusOne&3),e.push(t.arrays.length&255);for(let r of t.arrays){e.push((r.arrayCompleteness&1)<<7|0|r.nalUnitType&63),e.push(r.nalUnits.length>>8&255),e.push(r.nalUnits.length&255);for(let i of r.nalUnits){e.push(i.length>>8&255),e.push(i.length&255);for(let s=0;s<i.length;s++)e.push(i[s])}}return new Uint8Array(e)},Ii=t=>{let e=new H(t);if(e.readBits(2)!==2)return null;let i=e.readBits(1),n=(e.readBits(1)<<1)+i;if(n===3&&e.skipBits(1),e.readBits(1)===1||e.readBits(1)!==0||(e.skipBits(2),e.readBits(24)!==4817730))return null;let l=8;n>=2&&(l=e.readBits(1)?12:10);let d=e.readBits(3),u=0,h=0;if(d!==7)if(h=e.readBits(1),n===1||n===3){let A=e.readBits(1),E=e.readBits(1);u=!A&&!E?3:A&&!E?2:1,e.skipBits(1)}else u=1;else u=3,h=1;let f=e.readBits(16),p=e.readBits(16),g=f+1,w=p+1,b=g*w,k=q(Me).level;for(let S of Me)if(b<=S.maxPictureSize){k=S.level;break}return{profile:n,level:k,bitDepth:l,chromaSubsampling:u,videoFullRangeFlag:h,colourPrimaries:d===2?1:d===1?6:2,transferCharacteristics:d===2?1:d===1?6:2,matrixCoefficients:d===7?0:d===2?1:d===1?6:2}},Sa=function*(t){let e=new H(t),r=()=>{let i=0;for(let s=0;s<8;s++){let n=e.readAlignedByte();if(i|=(n&127)<<s*7,!(n&128))break;if(s===7&&n&128)return null}return i>=2**32-1?null:i};for(;e.getBitsLeft()>=8;){e.skipBits(1);let i=e.readBits(4),s=e.readBits(1),n=e.readBits(1);e.skipBits(1),s&&e.skipBits(8);let a;if(n){let o=r();if(o===null)return;a=o}else a=Math.floor(e.getBitsLeft()/8);m(e.pos%8===0),yield{type:i,data:t.subarray(e.pos/8,e.pos/8+a)},e.skipBits(a*8)}},vi=t=>{for(let{type:e,data:r}of Sa(t)){if(e!==1)continue;let i=new H(r),s=i.readBits(3),n=i.readBits(1),a=i.readBits(1),o=0,c=0,l=0;if(a)o=i.readBits(5);else{if(i.readBits(1)&&(i.skipBits(32),i.skipBits(32),i.readBits(1)))return null;let S=i.readBits(1);S&&(l=i.readBits(5),i.skipBits(32),i.skipBits(5),i.skipBits(5));let A=i.readBits(5);for(let E=0;E<=A;E++){i.skipBits(12);let D=i.readBits(5);if(E===0&&(o=D),D>7){let z=i.readBits(1);E===0&&(c=z)}if(S&&i.readBits(1)){let re=l+1;i.skipBits(re),i.skipBits(re),i.skipBits(1)}i.readBits(1)&&i.skipBits(4)}}let d=i.readBits(4),u=i.readBits(4),h=d+1;i.skipBits(h);let f=u+1;i.skipBits(f);let p=0;if(a?p=0:p=i.readBits(1),p&&(i.skipBits(4),i.skipBits(3)),i.skipBits(1),i.skipBits(1),i.skipBits(1),!a){i.skipBits(1),i.skipBits(1),i.skipBits(1),i.skipBits(1);let P=i.readBits(1);P&&(i.skipBits(1),i.skipBits(1));let S=i.readBits(1),A=0;S?A=2:A=i.readBits(1),A>0&&(i.readBits(1)||i.skipBits(1)),P&&i.skipBits(3)}i.skipBits(1),i.skipBits(1),i.skipBits(1);let g=i.readBits(1),w=8;s===2&&g?w=i.readBits(1)?12:10:s<=2&&(w=g?10:8);let b=0;s!==1&&(b=i.readBits(1));let k=1,y=1,x=0;return b||(s===0?(k=1,y=1):s===1?(k=0,y=0):w===12&&(k=i.readBits(1),k&&(y=i.readBits(1))),k&&y&&(x=i.readBits(2))),{profile:s,level:o,tier:c,bitDepth:w,monochrome:b,chromaSubsamplingX:k,chromaSubsamplingY:y,chromaSamplePosition:x}}return null},Ai=t=>{let e=V(t),r=e.getUint8(9),i=e.getUint16(10,!0),s=e.getUint32(12,!0),n=e.getInt16(16,!0),a=e.getUint8(18),o=null;return a&&(o=t.subarray(19,21+r)),{outputChannelCount:r,preSkip:i,inputSampleRate:s,outputGain:n,channelMappingFamily:a,channelMappingTable:o}},_c=[480,960,1920,2880,480,960,1920,2880,480,960,1920,2880,480,960,480,960,120,240,480,960,120,240,480,960,120,240,480,960,120,240,480,960],Ca=t=>{let e=t[0]>>3;return{durationInSamples:_c[e]}},_a=t=>{if(t.length<7)throw new Error("Setup header is too short.");if(t[0]!==5)throw new Error("Wrong packet type in Setup header.");if(String.fromCharCode(...t.slice(1,7))!=="vorbis")throw new Error("Invalid packet signature in Setup header.");let r=t.length,i=new Uint8Array(r);for(let u=0;u<r;u++)i[u]=t[r-1-u];let s=new H(i),n=0;for(;s.getBitsLeft()>97;)if(s.readBits(1)===1){n=s.pos;break}if(n===0)throw new Error("Invalid Setup header: framing bit not found.");let a=0,o=!1,c=0;for(;s.getBitsLeft()>=97;){let u=s.pos,h=s.readBits(8),f=s.readBits(16),p=s.readBits(16);if(h>63||f!==0||p!==0){s.pos=u;break}if(s.skipBits(1),a++,a>64)break;s.clone().readBits(6)+1===a&&(o=!0,c=a)}if(!o)throw new Error("Invalid Setup header: mode header not found.");if(c>63)throw new Error(`Unsupported mode count: ${c}.`);let l=c;s.pos=0,s.skipBits(n);let d=Array(l).fill(0);for(let u=l-1;u>=0;u--)s.skipBits(40),d[u]=s.readBits(1);return{modeBlockflags:d}},Fi=(t,e,r)=>{switch(t){case"avc":{let i=Ds(r,e),s=i.some(n=>Tt(n)===yt.IDR);if(!s&&(!Tr()||Zn()>=144))for(let n of i){if(Tt(n)!==yt.SEI)continue;let o=_i(n),c=1;do{let l=0;for(;;){let h=o[c++];if(h===void 0||(l+=h,h<255))break}let d=0;for(;;){let h=o[c++];if(h===void 0||(d+=h,h<255))break}if(l===6){let h=new H(o);h.pos=8*c;let f=I(h),p=h.readBits(1);if(f===0&&p===1){s=!0;break}}c+=d}while(c<o.length-1)}return s?"key":"delta"}case"hevc":return zs(r,e).some(n=>{let a=Ne(n);return ce.BLA_W_LP<=a&&a<=ce.RSV_IRAP_VCL23})?"key":"delta";case"vp8":return(r[0]&1)===0?"key":"delta";case"vp9":{let i=new H(r);if(i.readBits(2)!==2)return null;let s=i.readBits(1);return(i.readBits(1)<<1)+s===3&&i.skipBits(1),i.readBits(1)?null:i.readBits(1)===0?"key":"delta"}case"av1":{let i=!1;for(let{type:s,data:n}of Sa(r))if(s===1){let a=new H(n);a.skipBits(4),i=!!a.readBits(1)}else if(s===3||s===6||s===7){if(i)return"key";let a=new H(n);return a.readBits(1)?null:a.readBits(2)===0?"key":"delta"}return null}default:ne(t),m(!1)}},Ze;(function(t){t[t.STREAMINFO=0]="STREAMINFO",t[t.VORBIS_COMMENT=4]="VORBIS_COMMENT",t[t.PICTURE=6]="PICTURE"})(Ze||(Ze={}));var Pr=(t,e)=>{let r=V(t),i=0,s=r.getUint32(i,!0);i+=4;let n=ie.decode(t.subarray(i,i+s));i+=s,s>0&&(e.raw??={},e.raw.vendor??=n);let a=r.getUint32(i,!0);i+=4;for(let o=0;o<a;o++){let c=r.getUint32(i,!0);i+=4;let l=ie.decode(t.subarray(i,i+c));i+=c;let d=l.indexOf("=");if(d===-1)continue;let u=l.slice(0,d).toUpperCase(),h=l.slice(d+1);switch(e.raw??={},e.raw[u]??=h,u){case"TITLE":e.title??=h;break;case"DESCRIPTION":e.description??=h;break;case"ARTIST":e.artist??=h;break;case"ALBUM":e.album??=h;break;case"ALBUMARTIST":e.albumArtist??=h;break;case"COMMENT":e.comment??=h;break;case"LYRICS":e.lyrics??=h;break;case"TRACKNUMBER":{let f=h.split("/"),p=Number.parseInt(f[0],10),g=f[1]&&Number.parseInt(f[1],10);Number.isInteger(p)&&p>0&&(e.trackNumber??=p),g&&Number.isInteger(g)&&g>0&&(e.tracksTotal??=g)}break;case"TRACKTOTAL":{let f=Number.parseInt(h,10);Number.isInteger(f)&&f>0&&(e.tracksTotal??=f)}break;case"DISCNUMBER":{let f=h.split("/"),p=Number.parseInt(f[0],10),g=f[1]&&Number.parseInt(f[1],10);Number.isInteger(p)&&p>0&&(e.discNumber??=p),g&&Number.isInteger(g)&&g>0&&(e.discsTotal??=g)}break;case"DISCTOTAL":{let f=Number.parseInt(h,10);Number.isInteger(f)&&f>0&&(e.discsTotal??=f)}break;case"DATE":{let f=new Date(h);Number.isNaN(f.getTime())||(e.date??=f)}break;case"GENRE":e.genre??=h;break;case"METADATA_BLOCK_PICTURE":{let f=Jn(h),p=V(f),g=p.getUint32(0,!1),w=p.getUint32(4,!1),b=String.fromCharCode(...f.subarray(8,8+w)),k=p.getUint32(8+w,!1),y=ie.decode(f.subarray(12+w,12+w+k)),x=p.getUint32(w+k+28),P=f.subarray(w+k+32,w+k+32+x);e.images??=[],e.images.push({data:P,mimeType:b,kind:g===3?"coverFront":g===4?"coverBack":"unknown",name:void 0,description:y||void 0})}break}}};var ae=class{constructor(e){this.input=e}};var Ri=[],Bi=[],Pa=[],Ea=[];var Y=new Uint8Array(0),L=class t{constructor(e,r,i,s,n=-1,a,o){if(this.data=e,this.type=r,this.timestamp=i,this.duration=s,this.sequenceNumber=n,e===Y&&a===void 0)throw new Error("Internal error: byteLength must be explicitly provided when constructing metadata-only packets.");if(a===void 0&&(a=e.byteLength),!(e instanceof Uint8Array))throw new TypeError("data must be a Uint8Array.");if(r!=="key"&&r!=="delta")throw new TypeError('type must be either "key" or "delta".');if(!Number.isFinite(i))throw new TypeError("timestamp must be a number.");if(!Number.isFinite(s)||s<0)throw new TypeError("duration must be a non-negative number.");if(!Number.isFinite(n))throw new TypeError("sequenceNumber must be a number.");if(!Number.isInteger(a)||a<0)throw new TypeError("byteLength must be a non-negative integer.");if(o!==void 0&&(typeof o!="object"||!o))throw new TypeError("sideData, when provided, must be an object.");if(o?.alpha!==void 0&&!(o.alpha instanceof Uint8Array))throw new TypeError("sideData.alpha, when provided, must be a Uint8Array.");if(o?.alphaByteLength!==void 0&&(!Number.isInteger(o.alphaByteLength)||o.alphaByteLength<0))throw new TypeError("sideData.alphaByteLength, when provided, must be a non-negative integer.");this.byteLength=a,this.sideData=o??{},this.sideData.alpha&&this.sideData.alphaByteLength===void 0&&(this.sideData.alphaByteLength=this.sideData.alpha.byteLength)}get isMetadataOnly(){return this.data===Y}get microsecondTimestamp(){return Math.trunc(ve*this.timestamp)}get microsecondDuration(){return Math.trunc(ve*this.duration)}toEncodedVideoChunk(){if(this.isMetadataOnly)throw new TypeError("Metadata-only packets cannot be converted to a video chunk.");if(typeof EncodedVideoChunk>"u")throw new Error("Your browser does not support EncodedVideoChunk.");return new EncodedVideoChunk({data:this.data,type:this.type,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration})}alphaToEncodedVideoChunk(e=this.type){if(!this.sideData.alpha)throw new TypeError("This packet does not contain alpha side data.");if(this.isMetadataOnly)throw new TypeError("Metadata-only packets cannot be converted to a video chunk.");if(typeof EncodedVideoChunk>"u")throw new Error("Your browser does not support EncodedVideoChunk.");return new EncodedVideoChunk({data:this.sideData.alpha,type:e,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration})}toEncodedAudioChunk(){if(this.isMetadataOnly)throw new TypeError("Metadata-only packets cannot be converted to an audio chunk.");if(typeof EncodedAudioChunk>"u")throw new Error("Your browser does not support EncodedAudioChunk.");return new EncodedAudioChunk({data:this.data,type:this.type,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration})}static fromEncodedChunk(e,r){if(!(e instanceof EncodedVideoChunk||e instanceof EncodedAudioChunk))throw new TypeError("chunk must be an EncodedVideoChunk or EncodedAudioChunk.");let i=new Uint8Array(e.byteLength);return e.copyTo(i),new t(i,e.type,e.timestamp/1e6,(e.duration??0)/1e6,void 0,void 0,r)}clone(e){if(e!==void 0&&(typeof e!="object"||e===null))throw new TypeError("options, when provided, must be an object.");if(e?.timestamp!==void 0&&!Number.isFinite(e.timestamp))throw new TypeError("options.timestamp, when provided, must be a number.");if(e?.duration!==void 0&&!Number.isFinite(e.duration))throw new TypeError("options.duration, when provided, must be a number.");return new t(this.data,this.type,e?.timestamp??this.timestamp,e?.duration??this.duration,this.sequenceNumber,this.byteLength)}};var Ia=t=>{let i=t,s=4096,n=0,a=12,o=0;for(i<0&&(i=-i,n=128),i+=33,i>8191&&(i=8191);(i&s)!==s&&a>=5;)s>>=1,a--;return o=i>>a-4&15,~(n|a-5<<4|o)&255},va=t=>{let r=0,i=0,s=~t;s&128&&(s&=-129,r=-1),i=((s&240)>>4)+5;let n=(1<<i|(s&15)<<i-4|1<<i-5)-33;return r===0?n:-n},Aa=t=>{let r=2048,i=0,s=11,n=0,a=t;for(a<0&&(a=-a,i=128),a>4095&&(a=4095);(a&r)!==r&&s>=5;)r>>=1,s--;return n=a>>(s===4?1:s-4)&15,(i|s-4<<4|n)^85},Fa=t=>{let e=0,r=0,i=t^85;i&128&&(i&=-129,e=-1),r=((i&240)>>4)+4;let s=0;return r!==4?s=1<<r|(i&15)<<r-4|1<<r-5:s=i<<1|1,e===0?s:-s};yi();var Ra=-1/0,Ba=-1/0,Ir=null;typeof FinalizationRegistry<"u"&&(Ir=new FinalizationRegistry(t=>{let e=Date.now();t.type==="video"?(e-Ra>=1e3&&(console.error("A VideoSample was garbage collected without first being closed. For proper resource management, make sure to call close() on all your VideoSamples as soon as you're done using them."),Ra=e),typeof VideoFrame<"u"&&t.data instanceof VideoFrame&&t.data.close()):(e-Ba>=1e3&&(console.error("An AudioSample was garbage collected without first being closed. For proper resource management, make sure to call close() on all your AudioSamples as soon as you're done using them."),Ba=e),typeof AudioData<"u"&&t.data instanceof AudioData&&t.data.close())}));var Us=["I420","I420P10","I420P12","I420A","I420AP10","I420AP12","I422","I422P10","I422P12","I422A","I422AP10","I422AP12","I444","I444P10","I444P12","I444A","I444AP10","I444AP12","NV12","RGBA","RGBX","BGRA","BGRX"],Pc=new Set(Us),ge=class t{get displayWidth(){return this.rotation%180===0?this.codedWidth:this.codedHeight}get displayHeight(){return this.rotation%180===0?this.codedHeight:this.codedWidth}get microsecondTimestamp(){return Math.trunc(ve*this.timestamp)}get microsecondDuration(){return Math.trunc(ve*this.duration)}get hasAlpha(){return this.format&&this.format.includes("A")}constructor(e,r){if(this._closed=!1,e instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&e instanceof SharedArrayBuffer||ArrayBuffer.isView(e)){if(!r||typeof r!="object")throw new TypeError("init must be an object.");if(r.format===void 0||!Pc.has(r.format))throw new TypeError("init.format must be one of: "+Us.join(", "));if(!Number.isInteger(r.codedWidth)||r.codedWidth<=0)throw new TypeError("init.codedWidth must be a positive integer.");if(!Number.isInteger(r.codedHeight)||r.codedHeight<=0)throw new TypeError("init.codedHeight must be a positive integer.");if(r.rotation!==void 0&&![0,90,180,270].includes(r.rotation))throw new TypeError("init.rotation, when provided, must be 0, 90, 180, or 270.");if(!Number.isFinite(r.timestamp))throw new TypeError("init.timestamp must be a number.");if(r.duration!==void 0&&(!Number.isFinite(r.duration)||r.duration<0))throw new TypeError("init.duration, when provided, must be a non-negative number.");this._data=K(e).slice(),this._layout=r.layout??Ec(r.format,r.codedWidth,r.codedHeight),this.format=r.format,this.codedWidth=r.codedWidth,this.codedHeight=r.codedHeight,this.rotation=r.rotation??0,this.timestamp=r.timestamp,this.duration=r.duration??0,this.colorSpace=new Lt(r.colorSpace)}else if(typeof VideoFrame<"u"&&e instanceof VideoFrame){if(r?.rotation!==void 0&&![0,90,180,270].includes(r.rotation))throw new TypeError("init.rotation, when provided, must be 0, 90, 180, or 270.");if(r?.timestamp!==void 0&&!Number.isFinite(r?.timestamp))throw new TypeError("init.timestamp, when provided, must be a number.");if(r?.duration!==void 0&&(!Number.isFinite(r.duration)||r.duration<0))throw new TypeError("init.duration, when provided, must be a non-negative number.");this._data=e,this._layout=null,this.format=e.format,this.codedWidth=e.displayWidth,this.codedHeight=e.displayHeight,this.rotation=r?.rotation??0,this.timestamp=r?.timestamp??e.timestamp/1e6,this.duration=r?.duration??(e.duration??0)/1e6,this.colorSpace=new Lt(e.colorSpace)}else if(typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement||typeof SVGImageElement<"u"&&e instanceof SVGImageElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap||typeof HTMLVideoElement<"u"&&e instanceof HTMLVideoElement||typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement||typeof OffscreenCanvas<"u"&&e instanceof OffscreenCanvas){if(!r||typeof r!="object")throw new TypeError("init must be an object.");if(r.rotation!==void 0&&![0,90,180,270].includes(r.rotation))throw new TypeError("init.rotation, when provided, must be 0, 90, 180, or 270.");if(!Number.isFinite(r.timestamp))throw new TypeError("init.timestamp must be a number.");if(r.duration!==void 0&&(!Number.isFinite(r.duration)||r.duration<0))throw new TypeError("init.duration, when provided, must be a non-negative number.");if(typeof VideoFrame<"u")return new t(new VideoFrame(e,{timestamp:Math.trunc(r.timestamp*ve),duration:Math.trunc((r.duration??0)*ve)||void 0}),r);let i=0,s=0;if("naturalWidth"in e?(i=e.naturalWidth,s=e.naturalHeight):"videoWidth"in e?(i=e.videoWidth,s=e.videoHeight):"width"in e&&(i=Number(e.width),s=Number(e.height)),!i||!s)throw new TypeError("Could not determine dimensions.");let n=new OffscreenCanvas(i,s),a=n.getContext("2d",{alpha:Mt(),willReadFrequently:!0});m(a),a.drawImage(e,0,0),this._data=n,this._layout=null,this.format="RGBX",this.codedWidth=i,this.codedHeight=s,this.rotation=r.rotation??0,this.timestamp=r.timestamp,this.duration=r.duration??0,this.colorSpace=new Lt({matrix:"rgb",primaries:"bt709",transfer:"iec61966-2-1",fullRange:!0})}else throw new TypeError("Invalid data type: Must be a BufferSource or CanvasImageSource.");Ir?.register(this,{type:"video",data:this._data},this)}clone(){if(this._closed)throw new Error("VideoSample is closed.");return m(this._data!==null),xt(this._data)?new t(this._data.clone(),{timestamp:this.timestamp,duration:this.duration,rotation:this.rotation}):this._data instanceof Uint8Array?(m(this._layout),new t(this._data,{format:this.format,layout:this._layout,codedWidth:this.codedWidth,codedHeight:this.codedHeight,timestamp:this.timestamp,duration:this.duration,colorSpace:this.colorSpace,rotation:this.rotation})):new t(this._data,{format:this.format,codedWidth:this.codedWidth,codedHeight:this.codedHeight,timestamp:this.timestamp,duration:this.duration,colorSpace:this.colorSpace,rotation:this.rotation})}close(){this._closed||(Ir?.unregister(this),xt(this._data)?this._data.close():this._data=null,this._closed=!0)}allocationSize(e={}){if(Da(e),this._closed)throw new Error("VideoSample is closed.");if((e.format??this.format)===null)throw new Error("Cannot get allocation size when format is null. Please manually provide an RGB pixel format in the options instead.");if(m(this._data!==null),!xt(this._data)&&(e.colorSpace||e.format&&e.format!==this.format||e.layout||e.rect)){let r=this.toVideoFrame(),i=r.allocationSize(e);return r.close(),i}return xt(this._data)?this._data.allocationSize(e):this._data instanceof Uint8Array?this._data.byteLength:this.codedWidth*this.codedHeight*4}async copyTo(e,r={}){if(!Ot(e))throw new TypeError("destination must be an ArrayBuffer or an ArrayBuffer view.");if(Da(r),this._closed)throw new Error("VideoSample is closed.");if((r.format??this.format)===null)throw new Error("Cannot copy video sample data when format is null. Please manually provide an RGB pixel format in the options instead.");if(m(this._data!==null),!xt(this._data)&&(r.colorSpace||r.format&&r.format!==this.format||r.layout||r.rect)){let i=this.toVideoFrame(),s=await i.copyTo(e,r);return i.close(),s}if(xt(this._data))return this._data.copyTo(e,r);if(this._data instanceof Uint8Array)return m(this._layout),K(e).set(this._data),this._layout;{let s=this._data.getContext("2d");m(s);let n=s.getImageData(0,0,this.codedWidth,this.codedHeight);return K(e).set(n.data),[{offset:0,stride:4*this.codedWidth}]}}toVideoFrame(){if(this._closed)throw new Error("VideoSample is closed.");return m(this._data!==null),xt(this._data)?new VideoFrame(this._data,{timestamp:this.microsecondTimestamp,duration:this.microsecondDuration||void 0}):this._data instanceof Uint8Array?new VideoFrame(this._data,{format:this.format,codedWidth:this.codedWidth,codedHeight:this.codedHeight,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration||void 0,colorSpace:this.colorSpace}):new VideoFrame(this._data,{timestamp:this.microsecondTimestamp,duration:this.microsecondDuration||void 0})}draw(e,r,i,s,n,a,o,c,l){let d=0,u=0,h=this.displayWidth,f=this.displayHeight,p=0,g=0,w=this.displayWidth,b=this.displayHeight;if(a!==void 0?(d=r,u=i,h=s,f=n,p=a,g=o,c!==void 0?(w=c,b=l):(w=h,b=f)):(p=r,g=i,s!==void 0&&(w=s,b=n)),!(typeof CanvasRenderingContext2D<"u"&&e instanceof CanvasRenderingContext2D||typeof OffscreenCanvasRenderingContext2D<"u"&&e instanceof OffscreenCanvasRenderingContext2D))throw new TypeError("context must be a CanvasRenderingContext2D or OffscreenCanvasRenderingContext2D.");if(!Number.isFinite(d))throw new TypeError("sx must be a number.");if(!Number.isFinite(u))throw new TypeError("sy must be a number.");if(!Number.isFinite(h)||h<0)throw new TypeError("sWidth must be a non-negative number.");if(!Number.isFinite(f)||f<0)throw new TypeError("sHeight must be a non-negative number.");if(!Number.isFinite(p))throw new TypeError("dx must be a number.");if(!Number.isFinite(g))throw new TypeError("dy must be a number.");if(!Number.isFinite(w)||w<0)throw new TypeError("dWidth must be a non-negative number.");if(!Number.isFinite(b)||b<0)throw new TypeError("dHeight must be a non-negative number.");if(this._closed)throw new Error("VideoSample is closed.");({sx:d,sy:u,sWidth:h,sHeight:f}=this._rotateSourceRegion(d,u,h,f,this.rotation));let k=this.toCanvasImageSource();e.save();let y=p+w/2,x=g+b/2;e.translate(y,x),e.rotate(this.rotation*Math.PI/180);let P=this.rotation%180===0?1:w/b;e.scale(1/P,P),e.drawImage(k,d,u,h,f,-w/2,-b/2,w,b),e.restore()}drawWithFit(e,r){if(!(typeof CanvasRenderingContext2D<"u"&&e instanceof CanvasRenderingContext2D||typeof OffscreenCanvasRenderingContext2D<"u"&&e instanceof OffscreenCanvasRenderingContext2D))throw new TypeError("context must be a CanvasRenderingContext2D or OffscreenCanvasRenderingContext2D.");if(!r||typeof r!="object")throw new TypeError("options must be an object.");if(!["fill","contain","cover"].includes(r.fit))throw new TypeError("options.fit must be 'fill', 'contain', or 'cover'.");if(r.rotation!==void 0&&![0,90,180,270].includes(r.rotation))throw new TypeError("options.rotation, when provided, must be 0, 90, 180, or 270.");r.crop!==void 0&&za(r.crop,"options.");let i=e.canvas.width,s=e.canvas.height,n=r.rotation??this.rotation,[a,o]=n%180===0?[this.codedWidth,this.codedHeight]:[this.codedHeight,this.codedWidth];r.crop&&Oa(r.crop,a,o);let c,l,d,u,{sx:h,sy:f,sWidth:p,sHeight:g}=this._rotateSourceRegion(r.crop?.left??0,r.crop?.top??0,r.crop?.width??a,r.crop?.height??o,n);if(r.fit==="fill")c=0,l=0,d=i,u=s;else{let[b,k]=r.crop?[r.crop.width,r.crop.height]:[a,o],y=r.fit==="contain"?Math.min(i/b,s/k):Math.max(i/b,s/k);d=b*y,u=k*y,c=(i-d)/2,l=(s-u)/2}e.save();let w=n%180===0?1:d/u;e.translate(i/2,s/2),e.rotate(n*Math.PI/180),e.scale(1/w,w),e.translate(-i/2,-s/2),e.drawImage(this.toCanvasImageSource(),h,f,p,g,c,l,d,u),e.restore()}_rotateSourceRegion(e,r,i,s,n){return n===90?[e,r,i,s]=[r,this.codedHeight-e-i,s,i]:n===180?[e,r]=[this.codedWidth-e-i,this.codedHeight-r-s]:n===270&&([e,r,i,s]=[this.codedWidth-r-s,e,s,i]),{sx:e,sy:r,sWidth:i,sHeight:s}}toCanvasImageSource(){if(this._closed)throw new Error("VideoSample is closed.");if(m(this._data!==null),this._data instanceof Uint8Array){let e=this.toVideoFrame();return queueMicrotask(()=>e.close()),e}else return this._data}setRotation(e){if(![0,90,180,270].includes(e))throw new TypeError("newRotation must be 0, 90, 180, or 270.");this.rotation=e}setTimestamp(e){if(!Number.isFinite(e))throw new TypeError("newTimestamp must be a number.");this.timestamp=e}setDuration(e){if(!Number.isFinite(e)||e<0)throw new TypeError("newDuration must be a non-negative number.");this.duration=e}[Symbol.dispose](){this.close()}},Lt=class{constructor(e){this.primaries=e?.primaries??null,this.transfer=e?.transfer??null,this.matrix=e?.matrix??null,this.fullRange=e?.fullRange??null}toJSON(){return{primaries:this.primaries,transfer:this.transfer,matrix:this.matrix,fullRange:this.fullRange}}},xt=t=>typeof VideoFrame<"u"&&t instanceof VideoFrame,Oa=(t,e,r)=>{t.left=Math.min(t.left,e),t.top=Math.min(t.top,r),t.width=Math.min(t.width,e-t.left),t.height=Math.min(t.height,r-t.top),m(t.width>=0),m(t.height>=0)},za=(t,e)=>{if(!t||typeof t!="object")throw new TypeError(e+"crop, when provided, must be an object.");if(!Number.isInteger(t.left)||t.left<0)throw new TypeError(e+"crop.left must be a non-negative integer.");if(!Number.isInteger(t.top)||t.top<0)throw new TypeError(e+"crop.top must be a non-negative integer.");if(!Number.isInteger(t.width)||t.width<0)throw new TypeError(e+"crop.width must be a non-negative integer.");if(!Number.isInteger(t.height)||t.height<0)throw new TypeError(e+"crop.height must be a non-negative integer.")},Da=t=>{if(!t||typeof t!="object")throw new TypeError("options must be an object.");if(t.colorSpace!==void 0&&!["display-p3","srgb"].includes(t.colorSpace))throw new TypeError("options.colorSpace, when provided, must be 'display-p3' or 'srgb'.");if(t.format!==void 0&&typeof t.format!="string")throw new TypeError("options.format, when provided, must be a string.");if(t.layout!==void 0){if(!Array.isArray(t.layout))throw new TypeError("options.layout, when provided, must be an array.");for(let e of t.layout){if(!e||typeof e!="object")throw new TypeError("Each entry in options.layout must be an object.");if(!Number.isInteger(e.offset)||e.offset<0)throw new TypeError("plane.offset must be a non-negative integer.");if(!Number.isInteger(e.stride)||e.stride<0)throw new TypeError("plane.stride must be a non-negative integer.")}}if(t.rect!==void 0){if(!t.rect||typeof t.rect!="object")throw new TypeError("options.rect, when provided, must be an object.");if(t.rect.x!==void 0&&(!Number.isInteger(t.rect.x)||t.rect.x<0))throw new TypeError("options.rect.x, when provided, must be a non-negative integer.");if(t.rect.y!==void 0&&(!Number.isInteger(t.rect.y)||t.rect.y<0))throw new TypeError("options.rect.y, when provided, must be a non-negative integer.");if(t.rect.width!==void 0&&(!Number.isInteger(t.rect.width)||t.rect.width<0))throw new TypeError("options.rect.width, when provided, must be a non-negative integer.");if(t.rect.height!==void 0&&(!Number.isInteger(t.rect.height)||t.rect.height<0))throw new TypeError("options.rect.height, when provided, must be a non-negative integer.")}},Ec=(t,e,r)=>{let i=Ic(t),s=[],n=0;for(let a of i){let o=Math.ceil(e/a.widthDivisor),c=Math.ceil(r/a.heightDivisor),l=o*a.sampleBytes,d=l*c;s.push({offset:n,stride:l}),n+=d}return s},Ic=t=>{let e=(r,i,s,n,a)=>{let o=[{sampleBytes:r,widthDivisor:1,heightDivisor:1},{sampleBytes:i,widthDivisor:s,heightDivisor:n},{sampleBytes:i,widthDivisor:s,heightDivisor:n}];return a&&o.push({sampleBytes:r,widthDivisor:1,heightDivisor:1}),o};switch(t){case"I420":return e(1,1,2,2,!1);case"I420P10":case"I420P12":return e(2,2,2,2,!1);case"I420A":return e(1,1,2,2,!0);case"I420AP10":case"I420AP12":return e(2,2,2,2,!0);case"I422":return e(1,1,2,1,!1);case"I422P10":case"I422P12":return e(2,2,2,1,!1);case"I422A":return e(1,1,2,1,!0);case"I422AP10":case"I422AP12":return e(2,2,2,1,!0);case"I444":return e(1,1,1,1,!1);case"I444P10":case"I444P12":return e(2,2,1,1,!1);case"I444A":return e(1,1,1,1,!0);case"I444AP10":case"I444AP12":return e(2,2,1,1,!0);case"NV12":return[{sampleBytes:1,widthDivisor:1,heightDivisor:1},{sampleBytes:2,widthDivisor:2,heightDivisor:2}];case"RGBA":case"RGBX":case"BGRA":case"BGRX":return[{sampleBytes:4,widthDivisor:1,heightDivisor:1}];default:ne(t),m(!1)}},Ms=new Set(["f32","f32-planar","s16","s16-planar","s32","s32-planar","u8","u8-planar"]),we=class t{get microsecondTimestamp(){return Math.trunc(ve*this.timestamp)}get microsecondDuration(){return Math.trunc(ve*this.duration)}constructor(e){if(this._closed=!1,Er(e)){if(e.format===null)throw new TypeError("AudioData with null format is not supported.");this._data=e,this.format=e.format,this.sampleRate=e.sampleRate,this.numberOfFrames=e.numberOfFrames,this.numberOfChannels=e.numberOfChannels,this.timestamp=e.timestamp/1e6,this.duration=e.numberOfFrames/e.sampleRate}else{if(!e||typeof e!="object")throw new TypeError("Invalid AudioDataInit: must be an object.");if(!Ms.has(e.format))throw new TypeError("Invalid AudioDataInit: invalid format.");if(!Number.isFinite(e.sampleRate)||e.sampleRate<=0)throw new TypeError("Invalid AudioDataInit: sampleRate must be > 0.");if(!Number.isInteger(e.numberOfChannels)||e.numberOfChannels===0)throw new TypeError("Invalid AudioDataInit: numberOfChannels must be an integer > 0.");if(!Number.isFinite(e?.timestamp))throw new TypeError("init.timestamp must be a number.");let r=e.data.byteLength/(St(e.format)*e.numberOfChannels);if(!Number.isInteger(r))throw new TypeError("Invalid AudioDataInit: data size is not a multiple of frame size.");this.format=e.format,this.sampleRate=e.sampleRate,this.numberOfFrames=r,this.numberOfChannels=e.numberOfChannels,this.timestamp=e.timestamp,this.duration=r/e.sampleRate;let i;if(e.data instanceof ArrayBuffer)i=new Uint8Array(e.data);else if(ArrayBuffer.isView(e.data))i=new Uint8Array(e.data.buffer,e.data.byteOffset,e.data.byteLength);else throw new TypeError("Invalid AudioDataInit: data is not a BufferSource.");let s=this.numberOfFrames*this.numberOfChannels*St(this.format);if(i.byteLength<s)throw new TypeError("Invalid AudioDataInit: insufficient data size.");this._data=i}Ir?.register(this,{type:"audio",data:this._data},this)}allocationSize(e){if(!e||typeof e!="object")throw new TypeError("options must be an object.");if(!Number.isInteger(e.planeIndex)||e.planeIndex<0)throw new TypeError("planeIndex must be a non-negative integer.");if(e.format!==void 0&&!Ms.has(e.format))throw new TypeError("Invalid format.");if(e.frameOffset!==void 0&&(!Number.isInteger(e.frameOffset)||e.frameOffset<0))throw new TypeError("frameOffset must be a non-negative integer.");if(e.frameCount!==void 0&&(!Number.isInteger(e.frameCount)||e.frameCount<0))throw new TypeError("frameCount must be a non-negative integer.");if(this._closed)throw new Error("AudioSample is closed.");let r=e.format??this.format,i=e.frameOffset??0;if(i>=this.numberOfFrames)throw new RangeError("frameOffset out of range");let s=e.frameCount!==void 0?e.frameCount:this.numberOfFrames-i;if(s>this.numberOfFrames-i)throw new RangeError("frameCount out of range");let n=St(r),a=Vt(r);if(a&&e.planeIndex>=this.numberOfChannels)throw new RangeError("planeIndex out of range");if(!a&&e.planeIndex!==0)throw new RangeError("planeIndex out of range");return(a?s:s*this.numberOfChannels)*n}copyTo(e,r){if(!Ot(e))throw new TypeError("destination must be an ArrayBuffer or an ArrayBuffer view.");if(!r||typeof r!="object")throw new TypeError("options must be an object.");if(!Number.isInteger(r.planeIndex)||r.planeIndex<0)throw new TypeError("planeIndex must be a non-negative integer.");if(r.format!==void 0&&!Ms.has(r.format))throw new TypeError("Invalid format.");if(r.frameOffset!==void 0&&(!Number.isInteger(r.frameOffset)||r.frameOffset<0))throw new TypeError("frameOffset must be a non-negative integer.");if(r.frameCount!==void 0&&(!Number.isInteger(r.frameCount)||r.frameCount<0))throw new TypeError("frameCount must be a non-negative integer.");if(this._closed)throw new Error("AudioSample is closed.");let{planeIndex:i,format:s,frameCount:n,frameOffset:a}=r,o=this.format,c=s??this.format;if(!c)throw new Error("Destination format not determined");let l=this.numberOfFrames,d=this.numberOfChannels,u=a??0;if(u>=l)throw new RangeError("frameOffset out of range");let h=n!==void 0?n:l-u;if(h>l-u)throw new RangeError("frameCount out of range");let f=St(c),p=Vt(c);if(p&&i>=d)throw new RangeError("planeIndex out of range");if(!p&&i!==0)throw new RangeError("planeIndex out of range");let w=(p?h:h*d)*f;if(e.byteLength<w)throw new RangeError("Destination buffer is too small");let b=V(e),k=Ua(c);if(Er(this._data))Ye()&&d>2&&c!==o?vc(this._data,b,o,c,d,i,u,h):this._data.copyTo(e,{planeIndex:i,frameOffset:u,frameCount:h,format:c});else{let y=this._data,x=V(y),P=Ma(o),S=St(o),A=Vt(o);for(let E=0;E<h;E++)if(p){let D=E*f,N;A?N=(i*l+(E+u))*S:N=((E+u)*d+i)*S;let z=P(x,N);k(b,D,z)}else for(let D=0;D<d;D++){let z=(E*d+D)*f,re;A?re=(D*l+(E+u))*S:re=((E+u)*d+D)*S;let nt=P(x,re);k(b,z,nt)}}}clone(){if(this._closed)throw new Error("AudioSample is closed.");if(Er(this._data)){let e=new t(this._data.clone());return e.setTimestamp(this.timestamp),e}else return new t({format:this.format,sampleRate:this.sampleRate,numberOfFrames:this.numberOfFrames,numberOfChannels:this.numberOfChannels,timestamp:this.timestamp,data:this._data})}close(){this._closed||(Ir?.unregister(this),Er(this._data)?this._data.close():this._data=new Uint8Array(0),this._closed=!0)}toAudioData(){if(this._closed)throw new Error("AudioSample is closed.");if(Er(this._data)){if(this._data.timestamp===this.microsecondTimestamp)return this._data.clone();if(Vt(this.format)){let e=this.allocationSize({planeIndex:0,format:this.format}),r=new ArrayBuffer(e*this.numberOfChannels);for(let i=0;i<this.numberOfChannels;i++)this.copyTo(new Uint8Array(r,i*e,e),{planeIndex:i,format:this.format});return new AudioData({format:this.format,sampleRate:this.sampleRate,numberOfFrames:this.numberOfFrames,numberOfChannels:this.numberOfChannels,timestamp:this.microsecondTimestamp,data:r})}else{let e=new ArrayBuffer(this.allocationSize({planeIndex:0,format:this.format}));return this.copyTo(e,{planeIndex:0,format:this.format}),new AudioData({format:this.format,sampleRate:this.sampleRate,numberOfFrames:this.numberOfFrames,numberOfChannels:this.numberOfChannels,timestamp:this.microsecondTimestamp,data:e})}}else return new AudioData({format:this.format,sampleRate:this.sampleRate,numberOfFrames:this.numberOfFrames,numberOfChannels:this.numberOfChannels,timestamp:this.microsecondTimestamp,data:this._data.buffer instanceof ArrayBuffer?this._data.buffer:this._data.slice()})}toAudioBuffer(){if(this._closed)throw new Error("AudioSample is closed.");let e=new AudioBuffer({numberOfChannels:this.numberOfChannels,length:this.numberOfFrames,sampleRate:this.sampleRate}),r=new Float32Array(this.allocationSize({planeIndex:0,format:"f32-planar"})/4);for(let i=0;i<this.numberOfChannels;i++)this.copyTo(r,{planeIndex:i,format:"f32-planar"}),e.copyToChannel(r,i);return e}setTimestamp(e){if(!Number.isFinite(e))throw new TypeError("newTimestamp must be a number.");this.timestamp=e}[Symbol.dispose](){this.close()}static*_fromAudioBuffer(e,r){if(!(e instanceof AudioBuffer))throw new TypeError("audioBuffer must be an AudioBuffer.");let i=48e3*5,s=e.numberOfChannels,n=e.sampleRate,a=e.length,o=Math.floor(i/s),c=0,l=a;for(;l>0;){let d=Math.min(o,l),u=new Float32Array(s*d);for(let h=0;h<s;h++)e.copyFromChannel(u.subarray(h*d,(h+1)*d),h,c);yield new t({format:"f32-planar",sampleRate:n,numberOfFrames:d,numberOfChannels:s,timestamp:r+c/n,data:u}),c+=d,l-=d}}static fromAudioBuffer(e,r){if(!(e instanceof AudioBuffer))throw new TypeError("audioBuffer must be an AudioBuffer.");let i=48e3*5,s=e.numberOfChannels,n=e.sampleRate,a=e.length,o=Math.floor(i/s),c=0,l=a,d=[];for(;l>0;){let u=Math.min(o,l),h=new Float32Array(s*u);for(let p=0;p<s;p++)e.copyFromChannel(h.subarray(p*u,(p+1)*u),p,c);let f=new t({format:"f32-planar",sampleRate:n,numberOfFrames:u,numberOfChannels:s,timestamp:r+c/n,data:h});d.push(f),c+=u,l-=u}return d}},St=t=>{switch(t){case"u8":case"u8-planar":return 1;case"s16":case"s16-planar":return 2;case"s32":case"s32-planar":return 4;case"f32":case"f32-planar":return 4;default:throw new Error("Unknown AudioSampleFormat")}},Vt=t=>{switch(t){case"u8-planar":case"s16-planar":case"s32-planar":case"f32-planar":return!0;default:return!1}},Ma=t=>{switch(t){case"u8":case"u8-planar":return(e,r)=>(e.getUint8(r)-128)/128;case"s16":case"s16-planar":return(e,r)=>e.getInt16(r,!0)/32768;case"s32":case"s32-planar":return(e,r)=>e.getInt32(r,!0)/2147483648;case"f32":case"f32-planar":return(e,r)=>e.getFloat32(r,!0)}},Ua=t=>{switch(t){case"u8":case"u8-planar":return(e,r,i)=>e.setUint8(r,X((i+1)*127.5,0,255));case"s16":case"s16-planar":return(e,r,i)=>e.setInt16(r,X(Math.round(i*32767),-32768,32767),!0);case"s32":case"s32-planar":return(e,r,i)=>e.setInt32(r,X(Math.round(i*2147483647),-2147483648,2147483647),!0);case"f32":case"f32-planar":return(e,r,i)=>e.setFloat32(r,i,!0)}},Er=t=>typeof AudioData<"u"&&t instanceof AudioData,vc=(t,e,r,i,s,n,a,o)=>{let c=Ma(r),l=Ua(i),d=St(r),u=St(i),h=Vt(r);if(Vt(i))if(h){let p=new ArrayBuffer(o*d),g=V(p);t.copyTo(p,{planeIndex:n,frameOffset:a,frameCount:o,format:r});for(let w=0;w<o;w++){let b=w*d,k=w*u,y=c(g,b);l(e,k,y)}}else{let p=new ArrayBuffer(o*s*d),g=V(p);t.copyTo(p,{planeIndex:0,frameOffset:a,frameCount:o,format:r});for(let w=0;w<o;w++){let b=(w*s+n)*d,k=w*u,y=c(g,b);l(e,k,y)}}else if(h){let p=o*d,g=new ArrayBuffer(p),w=V(g);for(let b=0;b<s;b++){t.copyTo(g,{planeIndex:b,frameOffset:a,frameCount:o,format:r});for(let k=0;k<o;k++){let y=k*d,x=(k*s+b)*u,P=c(w,y);l(e,x,P)}}}else{let p=new ArrayBuffer(o*s*d),g=V(p);t.copyTo(p,{planeIndex:0,frameOffset:a,frameCount:o,format:r});for(let w=0;w<o;w++)for(let b=0;b<s;b++){let k=w*s+b,y=k*d,x=k*u,P=c(g,y);l(e,x,P)}}};var Wt=t=>{if(!t||typeof t!="object")throw new TypeError("options must be an object.");if(t.metadataOnly!==void 0&&typeof t.metadataOnly!="boolean")throw new TypeError("options.metadataOnly, when defined, must be a boolean.");if(t.verifyKeyPackets!==void 0&&typeof t.verifyKeyPackets!="boolean")throw new TypeError("options.verifyKeyPackets, when defined, must be a boolean.");if(t.verifyKeyPackets&&t.metadataOnly)throw new TypeError("options.verifyKeyPackets and options.metadataOnly cannot be enabled together.")},Ct=t=>{if(!Sr(t))throw new TypeError("timestamp must be a number.")},Ns=(t,e,r)=>r.verifyKeyPackets?e.then(async i=>{if(!i||i.type==="delta")return i;let s=await t.determinePacketType(i);return s&&(i.type=s),i}):e,_t=class{constructor(e){if(!(e instanceof Ht))throw new TypeError("track must be an InputTrack.");this._track=e}getFirstPacket(e={}){if(Wt(e),this._track.input._disposed)throw new Z;return Ns(this._track,this._track._backing.getFirstPacket(e),e)}getPacket(e,r={}){if(Ct(e),Wt(r),this._track.input._disposed)throw new Z;return Ns(this._track,this._track._backing.getPacket(e,r),r)}getNextPacket(e,r={}){if(!(e instanceof L))throw new TypeError("packet must be an EncodedPacket.");if(Wt(r),this._track.input._disposed)throw new Z;return Ns(this._track,this._track._backing.getNextPacket(e,r),r)}async getKeyPacket(e,r={}){if(Ct(e),Wt(r),this._track.input._disposed)throw new Z;if(!r.verifyKeyPackets)return this._track._backing.getKeyPacket(e,r);let i=await this._track._backing.getKeyPacket(e,r);return i&&(m(i.type==="key"),await this._track.determinePacketType(i)==="delta"?this.getKeyPacket(i.timestamp-1/this._track.timeResolution,r):i)}async getNextKeyPacket(e,r={}){if(!(e instanceof L))throw new TypeError("packet must be an EncodedPacket.");if(Wt(r),this._track.input._disposed)throw new Z;if(!r.verifyKeyPackets)return this._track._backing.getNextKeyPacket(e,r);let i=await this._track._backing.getNextKeyPacket(e,r);return i&&(m(i.type==="key"),await this._track.determinePacketType(i)==="delta"?this.getNextKeyPacket(i,r):i)}packets(e,r,i={}){if(e!==void 0&&!(e instanceof L))throw new TypeError("startPacket must be an EncodedPacket.");if(e!==void 0&&e.isMetadataOnly&&!i?.metadataOnly)throw new TypeError("startPacket can only be metadata-only if options.metadataOnly is enabled.");if(r!==void 0&&!(r instanceof L))throw new TypeError("endPacket must be an EncodedPacket.");if(Wt(i),this._track.input._disposed)throw new Z;let s=[],{promise:n,resolve:a}=se(),{promise:o,resolve:c}=se(),l=!1,d=!1,u=null,h=[],f=()=>Math.max(2,h.length);(async()=>{let g=e??await this.getFirstPacket(i);for(;g&&!d&&!this._track.input._disposed&&!(r&&g.sequenceNumber>=r?.sequenceNumber);){if(s.length>f()){({promise:o,resolve:c}=se()),await o;continue}s.push(g),a(),{promise:n,resolve:a}=se(),g=await this.getNextPacket(g,i)}l=!0,a()})().catch(g=>{u||(u=g,a())});let p=this._track;return{async next(){for(;;){if(p.input._disposed)throw new Z;if(d)return{value:void 0,done:!0};if(u)throw u;if(s.length>0){let g=s.shift(),w=performance.now();for(h.push(w);h.length>0&&w-h[0]>=1e3;)h.shift();return c(),{value:g,done:!1}}else{if(l)return{value:void 0,done:!0};await n}}},async return(){return d=!0,c(),a(),{value:void 0,done:!0}},async throw(g){throw g},[Symbol.asyncIterator](){return this}}}},vr=class{constructor(e,r){this.onSample=e,this.onError=r}},Ar=class{mediaSamplesInRange(e=0,r=1/0){Ct(e),Ct(r);let i=[],s=!1,n=null,{promise:a,resolve:o}=se(),{promise:c,resolve:l}=se(),d=!1,u=!1,h=!1,f=null;(async()=>{let w=await this._createDecoder(S=>{if(l(),S.timestamp>=r&&(u=!0),u){S.close();return}n&&(S.timestamp>e?(i.push(n),s=!0):n.close()),S.timestamp>=e&&(i.push(S),s=!0),n=s?null:S,i.length>0&&(o(),{promise:a,resolve:o}=se())},S=>{f||(f=S,o())}),b=this._createPacketSink(),k=await b.getKeyPacket(e,{verifyKeyPackets:!0})??await b.getFirstPacket(),y=k,x;if(r<1/0){let S=await b.getPacket(r),A=S?S.type==="key"&&S.timestamp===r?S:await b.getNextKeyPacket(S,{verifyKeyPackets:!0}):null;A&&(x=A)}let P=b.packets(k??void 0,x);for(await P.next();y&&!u&&!this._track.input._disposed;){let S=Na(i.length);if(i.length+w.getDecodeQueueSize()>S){({promise:c,resolve:l}=se()),await c;continue}w.decode(y);let A=await P.next();if(A.done)break;y=A.value}await P.return(),!h&&!this._track.input._disposed&&await w.flush(),w.close(),!s&&n&&i.push(n),d=!0,o()})().catch(w=>{f||(f=w,o())});let p=this._track,g=()=>{n?.close();for(let w of i)w.close()};return{async next(){for(;;){if(p.input._disposed)throw g(),new Z;if(h)return{value:void 0,done:!0};if(f)throw g(),f;if(i.length>0){let w=i.shift();return l(),{value:w,done:!1}}else if(!d)await a;else return{value:void 0,done:!0}}},async return(){return h=!0,u=!0,l(),o(),g(),{value:void 0,done:!0}},async throw(w){throw w},[Symbol.asyncIterator](){return this}}}mediaSamplesAtTimestamps(e){$n(e);let r=jn(e),i=[],s=[],{promise:n,resolve:a}=se(),{promise:o,resolve:c}=se(),l=!1,d=!1,u=null,h=g=>{s.push(g),a(),{promise:n,resolve:a}=se()};(async()=>{let g=await this._createDecoder(S=>{if(c(),d){S.close();return}let A=0;for(;i.length>0&&S.timestamp-i[0]>-1e-10;)A++,i.shift();if(A>0)for(let E=0;E<A;E++)h(E<A-1?S.clone():S);else S.close()},S=>{u||(u=S,a())}),w=this._createPacketSink(),b=null,k=null,y=-1,x=async()=>{m(k);let S=k;for(g.decode(S);S.sequenceNumber<y;){let A=Na(s.length);for(;s.length+g.getDecodeQueueSize()>A&&!d;)({promise:o,resolve:c}=se()),await o;if(d)break;let E=await w.getNextPacket(S);m(E),g.decode(E),S=E}y=-1},P=async()=>{await g.flush();for(let S=0;S<i.length;S++)h(null);i.length=0};for await(let S of r){if(Ct(S),d||this._track.input._disposed)break;let A=await w.getPacket(S),E=A&&await w.getKeyPacket(S,{verifyKeyPackets:!0});if(!E){y!==-1&&(await x(),await P()),h(null),b=null;continue}b&&(E.sequenceNumber!==k.sequenceNumber||A.timestamp<b.timestamp)&&(await x(),await P()),i.push(A.timestamp),y=Math.max(A.sequenceNumber,y),b=A,k=E}!d&&!this._track.input._disposed&&(y!==-1&&await x(),await P()),g.close(),l=!0,a()})().catch(g=>{u||(u=g,a())});let f=this._track,p=()=>{for(let g of s)g?.close()};return{async next(){for(;;){if(f.input._disposed)throw p(),new Z;if(d)return{value:void 0,done:!0};if(u)throw p(),u;if(s.length>0){let g=s.shift();return m(g!==void 0),c(),{value:g,done:!1}}else if(!l)await n;else return{value:void 0,done:!0}}},async return(){return d=!0,c(),a(),p(),{value:void 0,done:!0}},async throw(g){throw g},[Symbol.asyncIterator](){return this}}}},Na=t=>t===0?40:8,Vs=class extends vr{constructor(e,r,i,s,n,a){super(e,r),this.codec=i,this.decoderConfig=s,this.rotation=n,this.timeResolution=a,this.decoder=null,this.customDecoder=null,this.customDecoderCallSerializer=new Xe,this.customDecoderQueueSize=0,this.inputTimestamps=[],this.sampleQueue=[],this.currentPacketIndex=0,this.raslSkipped=!1,this.alphaDecoder=null,this.alphaHadKeyframe=!1,this.colorQueue=[],this.alphaQueue=[],this.merger=null,this.mergerCreationFailed=!1,this.decodedAlphaChunkCount=0,this.alphaDecoderQueueSize=0,this.nullAlphaFrameQueue=[],this.currentAlphaPacketIndex=0,this.alphaRaslSkipped=!1;let o=Ri.find(c=>c.supports(i,s));if(o)this.customDecoder=new o,this.customDecoder.codec=i,this.customDecoder.config=s,this.customDecoder.onSample=c=>{if(!(c instanceof ge))throw new TypeError("The argument passed to onSample must be a VideoSample.");this.finalizeAndEmitSample(c)},this.customDecoderCallSerializer.call(()=>this.customDecoder.init());else{let c=d=>{if(this.alphaQueue.length>0){let u=this.alphaQueue.shift();m(u!==void 0),this.mergeAlpha(d,u)}else this.colorQueue.push(d)};if(i==="avc"&&this.decoderConfig.description&&Tr()){let d=Ta(K(this.decoderConfig.description));if(d&&d.sequenceParameterSets.length>0){let u=Os(d.sequenceParameterSets[0]);u&&u.frameMbsOnlyFlag===0&&(this.decoderConfig={...this.decoderConfig,hardwareAcceleration:"prefer-software"})}}let l=new Error("Decoding error").stack;this.decoder=new VideoDecoder({output:d=>{try{c(d)}catch(u){this.onError(u)}},error:d=>{d.stack=l,this.onError(d)}}),this.decoder.configure(this.decoderConfig)}}getDecodeQueueSize(){return this.customDecoder?this.customDecoderQueueSize:(m(this.decoder),Math.max(this.decoder.decodeQueueSize,this.alphaDecoder?.decodeQueueSize??0))}decode(e){if(this.codec==="hevc"&&this.currentPacketIndex>0&&!this.raslSkipped){if(this.hasHevcRaslPicture(e.data))return;this.raslSkipped=!0}if(this.customDecoder)this.customDecoderQueueSize++,this.customDecoderCallSerializer.call(()=>this.customDecoder.decode(e)).then(()=>this.customDecoderQueueSize--);else{if(m(this.decoder),Ye()||Ps(this.inputTimestamps,e.timestamp,r=>r),Tr()&&this.currentPacketIndex===0&&this.codec==="avc"){let i=Ds(e.data,this.decoderConfig).filter(n=>{let a=Tt(n);return!(a>=20&&a<=31)}),s=ka(i,this.decoderConfig);e=new L(s,e.type,e.timestamp,e.duration)}this.decoder.decode(e.toEncodedVideoChunk()),this.decodeAlphaData(e)}this.currentPacketIndex++}decodeAlphaData(e){if(!e.sideData.alpha||this.mergerCreationFailed){this.pushNullAlphaFrame();return}if(!this.merger)try{this.merger=new Ls}catch(i){console.error("Due to an error, only color data will be decoded.",i),this.mergerCreationFailed=!0,this.decodeAlphaData(e);return}if(!this.alphaDecoder){let i=n=>{if(this.alphaDecoderQueueSize--,this.colorQueue.length>0){let a=this.colorQueue.shift();m(a!==void 0),this.mergeAlpha(a,n)}else this.alphaQueue.push(n);for(this.decodedAlphaChunkCount++;this.nullAlphaFrameQueue.length>0&&this.nullAlphaFrameQueue[0]===this.decodedAlphaChunkCount;)if(this.nullAlphaFrameQueue.shift(),this.colorQueue.length>0){let a=this.colorQueue.shift();m(a!==void 0),this.mergeAlpha(a,null)}else this.alphaQueue.push(null)},s=new Error("Decoding error").stack;this.alphaDecoder=new VideoDecoder({output:n=>{try{i(n)}catch(a){this.onError(a)}},error:n=>{n.stack=s,this.onError(n)}}),this.alphaDecoder.configure(this.decoderConfig)}let r=Fi(this.codec,this.decoderConfig,e.sideData.alpha);if(this.alphaHadKeyframe||(this.alphaHadKeyframe=r==="key"),this.alphaHadKeyframe){if(this.codec==="hevc"&&this.currentAlphaPacketIndex>0&&!this.alphaRaslSkipped){if(this.hasHevcRaslPicture(e.sideData.alpha)){this.pushNullAlphaFrame();return}this.alphaRaslSkipped=!0}this.currentAlphaPacketIndex++,this.alphaDecoder.decode(e.alphaToEncodedVideoChunk(r??e.type)),this.alphaDecoderQueueSize++}else this.pushNullAlphaFrame()}pushNullAlphaFrame(){this.alphaDecoderQueueSize===0?this.alphaQueue.push(null):this.nullAlphaFrameQueue.push(this.decodedAlphaChunkCount+this.alphaDecoderQueueSize)}hasHevcRaslPicture(e){return zs(e,this.decoderConfig).some(i=>{let s=Ne(i);return s===ce.RASL_N||s===ce.RASL_R})}sampleHandler(e){if(Ye()){if(this.sampleQueue.length>0&&e.timestamp>=q(this.sampleQueue).timestamp){for(let r of this.sampleQueue)this.finalizeAndEmitSample(r);this.sampleQueue.length=0}Ps(this.sampleQueue,e,r=>r.timestamp)}else{let r=this.inputTimestamps.shift();m(r!==void 0),e.setTimestamp(r),this.finalizeAndEmitSample(e)}}finalizeAndEmitSample(e){e.setTimestamp(Math.round(e.timestamp*this.timeResolution)/this.timeResolution),e.setDuration(Math.round(e.duration*this.timeResolution)/this.timeResolution),e.setRotation(this.rotation),this.onSample(e)}mergeAlpha(e,r){if(!r){let n=new ge(e);this.sampleHandler(n);return}m(this.merger),this.merger.update(e,r),e.close(),r.close();let i=new VideoFrame(this.merger.canvas,{timestamp:e.timestamp,duration:e.duration??void 0}),s=new ge(i);this.sampleHandler(s)}async flush(){if(this.customDecoder?await this.customDecoderCallSerializer.call(()=>this.customDecoder.flush()):(m(this.decoder),await Promise.all([this.decoder.flush(),this.alphaDecoder?.flush()]),this.colorQueue.forEach(e=>e.close()),this.colorQueue.length=0,this.alphaQueue.forEach(e=>e?.close()),this.alphaQueue.length=0,this.alphaHadKeyframe=!1,this.decodedAlphaChunkCount=0,this.alphaDecoderQueueSize=0,this.nullAlphaFrameQueue.length=0,this.currentAlphaPacketIndex=0,this.alphaRaslSkipped=!1),Ye()){for(let e of this.sampleQueue)this.finalizeAndEmitSample(e);this.sampleQueue.length=0}this.currentPacketIndex=0,this.raslSkipped=!1}close(){this.customDecoder?this.customDecoderCallSerializer.call(()=>this.customDecoder.close()):(m(this.decoder),this.decoder.close(),this.alphaDecoder?.close(),this.colorQueue.forEach(e=>e.close()),this.colorQueue.length=0,this.alphaQueue.forEach(e=>e?.close()),this.alphaQueue.length=0,this.merger?.close());for(let e of this.sampleQueue)e.close();this.sampleQueue.length=0}},Ls=class{constructor(){typeof OffscreenCanvas<"u"?this.canvas=new OffscreenCanvas(300,150):this.canvas=document.createElement("canvas");let e=this.canvas.getContext("webgl2",{premultipliedAlpha:!1});if(!e)throw new Error("Couldn't acquire WebGL 2 context.");this.gl=e,this.program=this.createProgram(),this.vao=this.createVAO(),this.colorTexture=this.createTexture(),this.alphaTexture=this.createTexture(),this.gl.useProgram(this.program),this.gl.uniform1i(this.gl.getUniformLocation(this.program,"u_colorTexture"),0),this.gl.uniform1i(this.gl.getUniformLocation(this.program,"u_alphaTexture"),1)}createProgram(){let e=this.createShader(this.gl.VERTEX_SHADER,`#version 300 es
8
+ in vec2 a_position;
9
+ in vec2 a_texCoord;
10
+ out vec2 v_texCoord;
11
+
12
+ void main() {
13
+ gl_Position = vec4(a_position, 0.0, 1.0);
14
+ v_texCoord = a_texCoord;
15
+ }
16
+ `),r=this.createShader(this.gl.FRAGMENT_SHADER,`#version 300 es
17
+ precision highp float;
18
+
19
+ uniform sampler2D u_colorTexture;
20
+ uniform sampler2D u_alphaTexture;
21
+ in vec2 v_texCoord;
22
+ out vec4 fragColor;
23
+
24
+ void main() {
25
+ vec3 color = texture(u_colorTexture, v_texCoord).rgb;
26
+ float alpha = texture(u_alphaTexture, v_texCoord).r;
27
+ fragColor = vec4(color, alpha);
28
+ }
29
+ `),i=this.gl.createProgram();return this.gl.attachShader(i,e),this.gl.attachShader(i,r),this.gl.linkProgram(i),i}createShader(e,r){let i=this.gl.createShader(e);return this.gl.shaderSource(i,r),this.gl.compileShader(i),i}createVAO(){let e=this.gl.createVertexArray();this.gl.bindVertexArray(e);let r=new Float32Array([-1,-1,0,1,1,-1,1,1,-1,1,0,0,1,1,1,0]),i=this.gl.createBuffer();this.gl.bindBuffer(this.gl.ARRAY_BUFFER,i),this.gl.bufferData(this.gl.ARRAY_BUFFER,r,this.gl.STATIC_DRAW);let s=this.gl.getAttribLocation(this.program,"a_position"),n=this.gl.getAttribLocation(this.program,"a_texCoord");return this.gl.enableVertexAttribArray(s),this.gl.vertexAttribPointer(s,2,this.gl.FLOAT,!1,16,0),this.gl.enableVertexAttribArray(n),this.gl.vertexAttribPointer(n,2,this.gl.FLOAT,!1,16,8),e}createTexture(){let e=this.gl.createTexture();return this.gl.bindTexture(this.gl.TEXTURE_2D,e),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_S,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_T,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MIN_FILTER,this.gl.LINEAR),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.LINEAR),e}update(e,r){(e.displayWidth!==this.canvas.width||e.displayHeight!==this.canvas.height)&&(this.canvas.width=e.displayWidth,this.canvas.height=e.displayHeight),this.gl.activeTexture(this.gl.TEXTURE0),this.gl.bindTexture(this.gl.TEXTURE_2D,this.colorTexture),this.gl.texImage2D(this.gl.TEXTURE_2D,0,this.gl.RGBA,this.gl.RGBA,this.gl.UNSIGNED_BYTE,e),this.gl.activeTexture(this.gl.TEXTURE1),this.gl.bindTexture(this.gl.TEXTURE_2D,this.alphaTexture),this.gl.texImage2D(this.gl.TEXTURE_2D,0,this.gl.RGBA,this.gl.RGBA,this.gl.UNSIGNED_BYTE,r),this.gl.viewport(0,0,this.canvas.width,this.canvas.height),this.gl.clear(this.gl.COLOR_BUFFER_BIT),this.gl.bindVertexArray(this.vao),this.gl.drawArrays(this.gl.TRIANGLE_STRIP,0,4)}close(){this.gl.getExtension("WEBGL_lose_context")?.loseContext(),this.gl=null}},Fr=class extends Ar{constructor(e){if(!(e instanceof Ve))throw new TypeError("videoTrack must be an InputVideoTrack.");super(),this._track=e}async _createDecoder(e,r){if(!await this._track.canDecode())throw new Error("This video track cannot be decoded by this browser. Make sure to check decodability before using a track.");let i=this._track.codec,s=this._track.rotation,n=await this._track.getDecoderConfig(),a=this._track.timeResolution;return m(i&&n),new Vs(e,r,i,n,s,a)}_createPacketSink(){return new _t(this._track)}async getSample(e){Ct(e);for await(let r of this.mediaSamplesAtTimestamps([e]))return r;throw new Error("Internal error: Iterator returned nothing.")}samples(e=0,r=1/0){return this.mediaSamplesInRange(e,r)}samplesAtTimestamps(e){return this.mediaSamplesAtTimestamps(e)}};var Ws=class extends vr{constructor(e,r,i,s){super(e,r),this.decoder=null,this.customDecoder=null,this.customDecoderCallSerializer=new Xe,this.customDecoderQueueSize=0,this.currentTimestamp=null;let n=o=>{(this.currentTimestamp===null||Math.abs(o.timestamp-this.currentTimestamp)>=o.duration)&&(this.currentTimestamp=o.timestamp);let c=this.currentTimestamp;if(this.currentTimestamp+=o.duration,o.numberOfFrames===0){o.close();return}let l=s.sampleRate;o.setTimestamp(Math.round(c*l)/l),e(o)},a=Bi.find(o=>o.supports(i,s));if(a)this.customDecoder=new a,this.customDecoder.codec=i,this.customDecoder.config=s,this.customDecoder.onSample=o=>{if(!(o instanceof we))throw new TypeError("The argument passed to onSample must be an AudioSample.");n(o)},this.customDecoderCallSerializer.call(()=>this.customDecoder.init());else{let o=new Error("Decoding error").stack;this.decoder=new AudioDecoder({output:c=>{try{n(new we(c))}catch(l){this.onError(l)}},error:c=>{c.stack=o,this.onError(c)}}),this.decoder.configure(s)}}getDecodeQueueSize(){return this.customDecoder?this.customDecoderQueueSize:(m(this.decoder),this.decoder.decodeQueueSize)}decode(e){this.customDecoder?(this.customDecoderQueueSize++,this.customDecoderCallSerializer.call(()=>this.customDecoder.decode(e)).then(()=>this.customDecoderQueueSize--)):(m(this.decoder),this.decoder.decode(e.toEncodedAudioChunk()))}flush(){return this.customDecoder?this.customDecoderCallSerializer.call(()=>this.customDecoder.flush()):(m(this.decoder),this.decoder.flush())}close(){this.customDecoder?this.customDecoderCallSerializer.call(()=>this.customDecoder.close()):(m(this.decoder),this.decoder.close())}},Hs=class extends vr{constructor(e,r,i){super(e,r),this.decoderConfig=i,this.currentTimestamp=null,m(Q.includes(i.codec)),this.codec=i.codec;let{dataType:s,sampleSize:n,littleEndian:a}=fe(this.codec);switch(this.inputSampleSize=n,n){case 1:s==="unsigned"?this.readInputValue=(o,c)=>o.getUint8(c)-2**7:s==="signed"?this.readInputValue=(o,c)=>o.getInt8(c):s==="ulaw"?this.readInputValue=(o,c)=>va(o.getUint8(c)):s==="alaw"?this.readInputValue=(o,c)=>Fa(o.getUint8(c)):m(!1);break;case 2:s==="unsigned"?this.readInputValue=(o,c)=>o.getUint16(c,a)-2**15:s==="signed"?this.readInputValue=(o,c)=>o.getInt16(c,a):m(!1);break;case 3:s==="unsigned"?this.readInputValue=(o,c)=>pt(o,c,a)-2**23:s==="signed"?this.readInputValue=(o,c)=>Qn(o,c,a):m(!1);break;case 4:s==="unsigned"?this.readInputValue=(o,c)=>o.getUint32(c,a)-2**31:s==="signed"?this.readInputValue=(o,c)=>o.getInt32(c,a):s==="float"?this.readInputValue=(o,c)=>o.getFloat32(c,a):m(!1);break;case 8:s==="float"?this.readInputValue=(o,c)=>o.getFloat64(c,a):m(!1);break;default:ne(n),m(!1)}switch(n){case 1:s==="ulaw"||s==="alaw"?(this.outputSampleSize=2,this.outputFormat="s16",this.writeOutputValue=(o,c,l)=>o.setInt16(c,l,!0)):(this.outputSampleSize=1,this.outputFormat="u8",this.writeOutputValue=(o,c,l)=>o.setUint8(c,l+2**7));break;case 2:this.outputSampleSize=2,this.outputFormat="s16",this.writeOutputValue=(o,c,l)=>o.setInt16(c,l,!0);break;case 3:this.outputSampleSize=4,this.outputFormat="s32",this.writeOutputValue=(o,c,l)=>o.setInt32(c,l<<8,!0);break;case 4:this.outputSampleSize=4,s==="float"?(this.outputFormat="f32",this.writeOutputValue=(o,c,l)=>o.setFloat32(c,l,!0)):(this.outputFormat="s32",this.writeOutputValue=(o,c,l)=>o.setInt32(c,l,!0));break;case 8:this.outputSampleSize=4,this.outputFormat="f32",this.writeOutputValue=(o,c,l)=>o.setFloat32(c,l,!0);break;default:ne(n),m(!1)}}getDecodeQueueSize(){return 0}decode(e){let r=V(e.data),i=e.byteLength/this.decoderConfig.numberOfChannels/this.inputSampleSize,s=i*this.decoderConfig.numberOfChannels*this.outputSampleSize,n=new ArrayBuffer(s),a=new DataView(n);for(let d=0;d<i*this.decoderConfig.numberOfChannels;d++){let u=d*this.inputSampleSize,h=d*this.outputSampleSize,f=this.readInputValue(r,u);this.writeOutputValue(a,h,f)}let o=i/this.decoderConfig.sampleRate;(this.currentTimestamp===null||Math.abs(e.timestamp-this.currentTimestamp)>=o)&&(this.currentTimestamp=e.timestamp);let c=this.currentTimestamp;this.currentTimestamp+=o;let l=new we({format:this.outputFormat,data:n,numberOfChannels:this.decoderConfig.numberOfChannels,sampleRate:this.decoderConfig.sampleRate,numberOfFrames:i,timestamp:c});this.onSample(l)}async flush(){}close(){}},Rr=class extends Ar{constructor(e){if(!(e instanceof J))throw new TypeError("audioTrack must be an InputAudioTrack.");super(),this._track=e}async _createDecoder(e,r){if(!await this._track.canDecode())throw new Error("This audio track cannot be decoded by this browser. Make sure to check decodability before using a track.");let i=this._track.codec,s=await this._track.getDecoderConfig();return m(i&&s),Q.includes(s.codec)?new Hs(e,r,s):new Ws(e,r,i,s)}_createPacketSink(){return new _t(this._track)}async getSample(e){Ct(e);for await(let r of this.mediaSamplesAtTimestamps([e]))return r;throw new Error("Internal error: Iterator returned nothing.")}samples(e=0,r=1/0){return this.mediaSamplesInRange(e,r)}samplesAtTimestamps(e){return this.mediaSamplesAtTimestamps(e)}};var Ht=class{constructor(e,r){this.input=e,this._backing=r}isVideoTrack(){return this instanceof Ve}isAudioTrack(){return this instanceof J}get id(){return this._backing.getId()}get internalCodecId(){return this._backing.getInternalCodecId()}get languageCode(){return this._backing.getLanguageCode()}get name(){return this._backing.getName()}get timeResolution(){return this._backing.getTimeResolution()}get disposition(){return this._backing.getDisposition()}getFirstTimestamp(){return this._backing.getFirstTimestamp()}computeDuration(){return this._backing.computeDuration()}async computePacketStats(e=1/0){let r=new _t(this),i=1/0,s=-1/0,n=0,a=0;for await(let o of r.packets(void 0,void 0,{metadataOnly:!0})){if(n>=e&&o.timestamp>=s)break;i=Math.min(i,o.timestamp),s=Math.max(s,o.timestamp+o.duration),n++,a+=o.byteLength}return{packetCount:n,averagePacketRate:n?Number((n/(s-i)).toPrecision(16)):0,averageBitrate:n?Number((8*a/(s-i)).toPrecision(16)):0}}},Ve=class extends Ht{constructor(e,r){super(e,r),this._backing=r}get type(){return"video"}get codec(){return this._backing.getCodec()}get codedWidth(){return this._backing.getCodedWidth()}get codedHeight(){return this._backing.getCodedHeight()}get rotation(){return this._backing.getRotation()}get displayWidth(){return this._backing.getRotation()%180===0?this._backing.getCodedWidth():this._backing.getCodedHeight()}get displayHeight(){return this._backing.getRotation()%180===0?this._backing.getCodedHeight():this._backing.getCodedWidth()}getColorSpace(){return this._backing.getColorSpace()}async hasHighDynamicRange(){let e=await this._backing.getColorSpace();return e.primaries==="bt2020"||e.primaries==="smpte432"||e.transfer==="pg"||e.transfer==="hlg"||e.matrix==="bt2020-ncl"}canBeTransparent(){return this._backing.canBeTransparent()}getDecoderConfig(){return this._backing.getDecoderConfig()}async getCodecParameterString(){return(await this._backing.getDecoderConfig())?.codec??null}async canDecode(){try{let e=await this._backing.getDecoderConfig();if(!e)return!1;let r=this._backing.getCodec();return m(r!==null),Ri.some(s=>s.supports(r,e))?!0:typeof VideoDecoder>"u"?!1:(await VideoDecoder.isConfigSupported(e)).supported===!0}catch(e){return console.error("Error during decodability check:",e),!1}}async determinePacketType(e){if(!(e instanceof L))throw new TypeError("packet must be an EncodedPacket.");if(e.isMetadataOnly)throw new TypeError("packet must not be metadata-only to determine its type.");if(this.codec===null)return null;let r=await this.getDecoderConfig();return m(r),Fi(this.codec,r,e.data)}},J=class extends Ht{constructor(e,r){super(e,r),this._backing=r}get type(){return"audio"}get codec(){return this._backing.getCodec()}get numberOfChannels(){return this._backing.getNumberOfChannels()}get sampleRate(){return this._backing.getSampleRate()}getDecoderConfig(){return this._backing.getDecoderConfig()}async getCodecParameterString(){return(await this._backing.getDecoderConfig())?.codec??null}async canDecode(){try{let e=await this._backing.getDecoderConfig();if(!e)return!1;let r=this._backing.getCodec();return m(r!==null),Bi.some(i=>i.supports(r,e))||e.codec.startsWith("pcm-")?!0:typeof AudioDecoder>"u"?!1:(await AudioDecoder.isConfigSupported(e)).supported===!0}catch(e){return console.error("Error during decodability check:",e),!1}}async determinePacketType(e){if(!(e instanceof L))throw new TypeError("packet must be an EncodedPacket.");return this.codec===null?null:"key"}};var Di=t=>{let r=(t.hasVideo?"video/":t.hasAudio?"audio/":"application/")+(t.isQuickTime?"quicktime":"mp4");if(t.codecStrings.length>0){let i=[...new Set(t.codecStrings)];r+=`; codecs="${i.join(", ")}"`}return r};var ye=8,Le=16,We=t=>{let e=_(t),r=j(t,4),i=8;e===1&&(e=me(t),i=16);let n=e-i;return n<0?null:{name:r,totalSize:e,headerSize:i,contentSize:n}},Je=t=>He(t)/65536,Oi=t=>He(t)/1073741824,zi=t=>{let e=0;for(let r=0;r<4;r++){e<<=7;let i=v(t);if(e|=i&127,(i&128)===0)break}return e},Te=t=>{let e=ee(t);return t.skip(2),e=Math.min(e,t.remainingLength),ie.decode(F(t,e))},Va=t=>{let e=We(t);if(!e||e.name!=="data"||t.remainingLength<8)return null;let r=_(t);t.skip(4);let i=F(t,e.contentSize-8);switch(r){case 1:return ie.decode(i);case 2:return new TextDecoder("utf-16be").decode(i);case 13:return new ke(i,"image/jpeg");case 14:return new ke(i,"image/png");case 27:return new ke(i,"image/bmp");default:return i}};var Mi=class extends ae{constructor(e){super(e),this.moovSlice=null,this.currentTrack=null,this.tracks=[],this.metadataPromise=null,this.movieTimescale=-1,this.movieDurationInTimescale=-1,this.isQuickTime=!1,this.metadataTags={},this.currentMetadataKeys=null,this.isFragmented=!1,this.fragmentTrackDefaults=[],this.currentFragment=null,this.lastReadFragment=null,this.reader=e._reader}async computeDuration(){let e=await this.getTracks(),r=await Promise.all(e.map(i=>i.computeDuration()));return Math.max(0,...r)}async getTracks(){return await this.readMetadata(),this.tracks.map(e=>e.inputTrack)}async getMimeType(){await this.readMetadata();let e=await Promise.all(this.tracks.map(r=>r.inputTrack.getCodecParameterString()));return Di({isQuickTime:this.isQuickTime,hasVideo:this.tracks.some(r=>r.info?.type==="video"),hasAudio:this.tracks.some(r=>r.info?.type==="audio"),codecStrings:e.filter(Boolean)})}async getMetadataTags(){return await this.readMetadata(),this.metadataTags}readMetadata(){return this.metadataPromise??=(async()=>{let e=0;for(;;){let r=this.reader.requestSliceRange(e,ye,Le);if(r instanceof Promise&&(r=await r),!r)break;let i=e,s=We(r);if(!s)break;if(s.name==="ftyp"){let n=j(r,4);this.isQuickTime=n==="qt "}else if(s.name==="moov"){let n=this.reader.requestSlice(r.filePos,s.contentSize);if(n instanceof Promise&&(n=await n),!n)break;this.moovSlice=n,this.readContiguousBoxes(this.moovSlice),this.tracks.sort((a,o)=>Number(o.disposition.default)-Number(a.disposition.default));for(let a of this.tracks){let o=a.editListPreviousSegmentDurations/this.movieTimescale;a.editListOffset-=Math.round(o*a.timescale)}break}e=i+s.totalSize}if(this.isFragmented&&this.reader.fileSize!==null){let r=this.reader.requestSlice(this.reader.fileSize-4,4);r instanceof Promise&&(r=await r),m(r);let i=_(r),s=this.reader.fileSize-i;if(s>=0&&s<=this.reader.fileSize-Le){let n=this.reader.requestSliceRange(s,ye,Le);if(n instanceof Promise&&(n=await n),n){let a=We(n);if(a&&a.name==="mfra"){let o=this.reader.requestSlice(n.filePos,a.contentSize);o instanceof Promise&&(o=await o),o&&this.readContiguousBoxes(o)}}}}})()}getSampleTableForTrack(e){if(e.sampleTable)return e.sampleTable;let r={sampleTimingEntries:[],sampleCompositionTimeOffsets:[],sampleSizes:[],keySampleIndices:null,chunkOffsets:[],sampleToChunk:[],presentationTimestamps:null,presentationTimestampIndexMap:null};e.sampleTable=r,m(this.moovSlice);let i=this.moovSlice.slice(e.sampleTableByteOffset);if(this.currentTrack=e,this.traverseBox(i),this.currentTrack=null,e.info?.type==="audio"&&e.info.codec&&Q.includes(e.info.codec)&&r.sampleCompositionTimeOffsets.length===0){m(e.info?.type==="audio");let n=fe(e.info.codec),a=[],o=[];for(let c=0;c<r.sampleToChunk.length;c++){let l=r.sampleToChunk[c],d=r.sampleToChunk[c+1],u=(d?d.startChunkIndex:r.chunkOffsets.length)-l.startChunkIndex;for(let h=0;h<u;h++){let f=l.startSampleIndex+h*l.samplesPerChunk,p=f+l.samplesPerChunk,g=M(r.sampleTimingEntries,f,E=>E.startIndex),w=r.sampleTimingEntries[g],b=M(r.sampleTimingEntries,p,E=>E.startIndex),k=r.sampleTimingEntries[b],y=w.startDecodeTimestamp+(f-w.startIndex)*w.delta,P=k.startDecodeTimestamp+(p-k.startIndex)*k.delta-y,S=q(a);S&&S.delta===P?S.count++:a.push({startIndex:l.startChunkIndex+h,startDecodeTimestamp:y,count:1,delta:P});let A=l.samplesPerChunk*n.sampleSize*e.info.numberOfChannels;o.push(A)}l.startSampleIndex=l.startChunkIndex,l.samplesPerChunk=1}r.sampleTimingEntries=a,r.sampleSizes=o}if(r.sampleCompositionTimeOffsets.length>0){r.presentationTimestamps=[];for(let n of r.sampleTimingEntries)for(let a=0;a<n.count;a++)r.presentationTimestamps.push({presentationTimestamp:n.startDecodeTimestamp+a*n.delta,sampleIndex:n.startIndex+a});for(let n of r.sampleCompositionTimeOffsets)for(let a=0;a<n.count;a++){let o=n.startIndex+a,c=r.presentationTimestamps[o];c&&(c.presentationTimestamp+=n.offset)}r.presentationTimestamps.sort((n,a)=>n.presentationTimestamp-a.presentationTimestamp),r.presentationTimestampIndexMap=Array(r.presentationTimestamps.length).fill(-1);for(let n=0;n<r.presentationTimestamps.length;n++)r.presentationTimestampIndexMap[r.presentationTimestamps[n].sampleIndex]=n}return r}async readFragment(e){if(this.lastReadFragment?.moofOffset===e)return this.lastReadFragment;let r=this.reader.requestSliceRange(e,ye,Le);r instanceof Promise&&(r=await r),m(r);let i=We(r);m(i?.name==="moof");let s=this.reader.requestSlice(e,i.totalSize);s instanceof Promise&&(s=await s),m(s),this.traverseBox(s);let n=this.lastReadFragment;m(n&&n.moofOffset===e);for(let[,a]of n.trackData){let o=a.track,{fragmentPositionCache:c}=o;if(!a.startTimestampIsFinal){let d=o.fragmentLookupTable.find(u=>u.moofOffset===n.moofOffset);if(d)qs(a,d.timestamp);else{let u=M(c,n.moofOffset-1,h=>h.moofOffset);if(u!==-1){let h=c[u];qs(a,h.endTimestamp)}}a.startTimestampIsFinal=!0}let l=M(c,a.startTimestamp,d=>d.startTimestamp);(l===-1||c[l].moofOffset!==n.moofOffset)&&c.splice(l+1,0,{moofOffset:n.moofOffset,startTimestamp:a.startTimestamp,endTimestamp:a.endTimestamp})}return n}readContiguousBoxes(e){let r=e.filePos;for(;e.filePos-r<=e.length-ye&&this.traverseBox(e););}*iterateContiguousBoxes(e){let r=e.filePos;for(;e.filePos-r<=e.length-ye;){let i=e.filePos,s=We(e);if(!s)break;yield{boxInfo:s,slice:e},e.filePos=i+s.totalSize}}traverseBox(e){let r=e.filePos,i=We(e);if(!i)return!1;let s=e.filePos,n=r+i.totalSize;switch(i.name){case"mdia":case"minf":case"dinf":case"mfra":case"edts":this.readContiguousBoxes(e.slice(s,i.contentSize));break;case"mvhd":{let a=v(e);e.skip(3),a===1?(e.skip(16),this.movieTimescale=_(e),this.movieDurationInTimescale=me(e)):(e.skip(8),this.movieTimescale=_(e),this.movieDurationInTimescale=_(e))}break;case"trak":{let a={id:-1,demuxer:this,inputTrack:null,disposition:{...de},info:null,timescale:-1,durationInMovieTimescale:-1,durationInMediaTimescale:-1,rotation:0,internalCodecId:null,name:null,languageCode:G,sampleTableByteOffset:-1,sampleTable:null,fragmentLookupTable:[],currentFragmentState:null,fragmentPositionCache:[],editListPreviousSegmentDurations:0,editListOffset:0};if(this.currentTrack=a,this.readContiguousBoxes(e.slice(s,i.contentSize)),a.id!==-1&&a.timescale!==-1&&a.info!==null){if(a.info.type==="video"&&a.info.width!==-1){let o=a;a.inputTrack=new Ve(this.input,new js(o)),this.tracks.push(a)}else if(a.info.type==="audio"&&a.info.numberOfChannels!==-1){let o=a;a.inputTrack=new J(this.input,new $s(o)),this.tracks.push(a)}}this.currentTrack=null}break;case"tkhd":{let a=this.currentTrack;if(!a)break;let o=v(e),l=!!(et(e)&1);if(a.disposition.default=l,o===0)e.skip(8),a.id=_(e),e.skip(4),a.durationInMovieTimescale=_(e);else if(o===1)e.skip(16),a.id=_(e),e.skip(4),a.durationInMovieTimescale=me(e);else throw new Error(`Incorrect track header version ${o}.`);e.skip(16);let d=[Je(e),Je(e),Oi(e),Je(e),Je(e),Oi(e),Je(e),Je(e),Oi(e)],u=mi(Kn(Bc(d),90));m(u===0||u===90||u===180||u===270),a.rotation=u}break;case"elst":{let a=this.currentTrack;if(!a)break;let o=v(e);e.skip(3);let c=!1,l=0,d=_(e);for(let u=0;u<d;u++){let h=o===1?me(e):_(e),f=o===1?Wa(e):He(e),p=Je(e);if(h!==0){if(c){console.warn("Unsupported edit list: multiple edits are not currently supported. Only using first edit.");break}if(f===-1){l+=h;continue}if(p!==1){console.warn("Unsupported edit list entry: media rate must be 1.");break}a.editListPreviousSegmentDurations=l,a.editListOffset=f,c=!0}}}break;case"mdhd":{let a=this.currentTrack;if(!a)break;let o=v(e);e.skip(3),o===0?(e.skip(8),a.timescale=_(e),a.durationInMediaTimescale=_(e)):o===1&&(e.skip(16),a.timescale=_(e),a.durationInMediaTimescale=me(e));let c=ee(e);if(c>0){a.languageCode="";for(let l=0;l<3;l++)a.languageCode=String.fromCharCode(96+(c&31))+a.languageCode,c>>=5;zt(a.languageCode)||(a.languageCode=G)}}break;case"hdlr":{let a=this.currentTrack;if(!a)break;e.skip(8);let o=j(e,4);o==="vide"?a.info={type:"video",width:-1,height:-1,codec:null,codecDescription:null,colorSpace:null,avcType:null,avcCodecInfo:null,hevcCodecInfo:null,vp9CodecInfo:null,av1CodecInfo:null}:o==="soun"&&(a.info={type:"audio",numberOfChannels:-1,sampleRate:-1,codec:null,codecDescription:null,aacCodecInfo:null})}break;case"stbl":{let a=this.currentTrack;if(!a)break;a.sampleTableByteOffset=r,this.readContiguousBoxes(e.slice(s,i.contentSize))}break;case"stsd":{let a=this.currentTrack;if(!a||a.info===null||a.sampleTable)break;let o=v(e);e.skip(3);let c=_(e);for(let l=0;l<c;l++){let d=e.filePos,u=We(e);if(!u)break;a.internalCodecId=u.name;let h=u.name.toLowerCase();if(a.info.type==="video")h==="avc1"||h==="avc3"?(a.info.codec="avc",a.info.avcType=h==="avc1"?1:3):h==="hvc1"||h==="hev1"?a.info.codec="hevc":h==="vp08"?a.info.codec="vp8":h==="vp09"?a.info.codec="vp9":h==="av01"?a.info.codec="av1":console.warn(`Unsupported video codec (sample entry type '${u.name}').`),e.skip(24),a.info.width=ee(e),a.info.height=ee(e),e.skip(50),this.readContiguousBoxes(e.slice(e.filePos,d+u.totalSize-e.filePos));else{h==="mp4a"||(h==="opus"?a.info.codec="opus":h==="flac"?a.info.codec="flac":h==="twos"||h==="sowt"||h==="raw "||h==="in24"||h==="in32"||h==="fl32"||h==="fl64"||h==="lpcm"||h==="ipcm"||h==="fpcm"||(h==="ulaw"?a.info.codec="ulaw":h==="alaw"?a.info.codec="alaw":console.warn(`Unsupported audio codec (sample entry type '${u.name}').`))),e.skip(8);let f=ee(e);e.skip(6);let p=ee(e),g=ee(e);e.skip(4);let w=_(e)/65536;if(o===0&&f>0){if(f===1)e.skip(4),g=8*_(e),e.skip(8);else if(f===2){e.skip(4),w=Ni(e),p=_(e),e.skip(4),g=_(e);let b=_(e);if(e.skip(8),h==="lpcm"){let k=g+7>>3,y=!!(b&1),x=!!(b&2),P=b&4?-1:0;g>0&&g<=64&&(y?g===32&&(a.info.codec=x?"pcm-f32be":"pcm-f32"):P&1<<k-1?k===1?a.info.codec="pcm-s8":k===2?a.info.codec=x?"pcm-s16be":"pcm-s16":k===3?a.info.codec=x?"pcm-s24be":"pcm-s24":k===4&&(a.info.codec=x?"pcm-s32be":"pcm-s32"):k===1&&(a.info.codec="pcm-u8")),a.info.codec===null&&console.warn("Unsupported PCM format.")}}}a.info.codec==="opus"&&(w=kt),a.info.numberOfChannels=p,a.info.sampleRate=w,h==="twos"?g===8?a.info.codec="pcm-s8":g===16?a.info.codec="pcm-s16be":(console.warn(`Unsupported sample size ${g} for codec 'twos'.`),a.info.codec=null):h==="sowt"?g===8?a.info.codec="pcm-s8":g===16?a.info.codec="pcm-s16":(console.warn(`Unsupported sample size ${g} for codec 'sowt'.`),a.info.codec=null):h==="raw "?a.info.codec="pcm-u8":h==="in24"?a.info.codec="pcm-s24be":h==="in32"?a.info.codec="pcm-s32be":h==="fl32"?a.info.codec="pcm-f32be":h==="fl64"?a.info.codec="pcm-f64be":h==="ipcm"?a.info.codec="pcm-s16be":h==="fpcm"&&(a.info.codec="pcm-f32be"),this.readContiguousBoxes(e.slice(e.filePos,d+u.totalSize-e.filePos))}}}break;case"avcC":{let a=this.currentTrack;if(!a)break;m(a.info),a.info.codecDescription=F(e,i.contentSize)}break;case"hvcC":{let a=this.currentTrack;if(!a)break;m(a.info),a.info.codecDescription=F(e,i.contentSize)}break;case"vpcC":{let a=this.currentTrack;if(!a)break;m(a.info?.type==="video"),e.skip(4);let o=v(e),c=v(e),l=v(e),d=l>>4,u=l>>1&7,h=l&1,f=v(e),p=v(e),g=v(e);a.info.vp9CodecInfo={profile:o,level:c,bitDepth:d,chromaSubsampling:u,videoFullRangeFlag:h,colourPrimaries:f,transferCharacteristics:p,matrixCoefficients:g}}break;case"av1C":{let a=this.currentTrack;if(!a)break;m(a.info?.type==="video"),e.skip(1);let o=v(e),c=o>>5,l=o&31,d=v(e),u=d>>7,h=d>>6&1,f=d>>5&1,p=d>>4&1,g=d>>3&1,w=d>>2&1,b=d&3,k=c===2&&h?f?12:10:h?10:8;a.info.av1CodecInfo={profile:c,level:l,tier:u,bitDepth:k,monochrome:p,chromaSubsamplingX:g,chromaSubsamplingY:w,chromaSamplePosition:b}}break;case"colr":{let a=this.currentTrack;if(!a||(m(a.info?.type==="video"),j(e,4)!=="nclx"))break;let c=ee(e),l=ee(e),d=ee(e),u=!!(v(e)&128);a.info.colorSpace={primaries:pi[c],transfer:gi[l],matrix:wi[d],fullRange:u}}break;case"wave":this.readContiguousBoxes(e.slice(s,i.contentSize));break;case"esds":{let a=this.currentTrack;if(!a)break;m(a.info?.type==="audio"),e.skip(4);let o=v(e);m(o===3),zi(e),e.skip(2);let c=v(e),l=(c&128)!==0,d=(c&64)!==0,u=(c&32)!==0;if(l&&e.skip(2),d){let w=v(e);e.skip(w)}u&&e.skip(2);let h=v(e);m(h===4);let f=zi(e),p=e.filePos,g=v(e);if(g===64||g===103?(a.info.codec="aac",a.info.aacCodecInfo={isMpeg2:g===103}):g===105||g===107?a.info.codec="mp3":g===221?a.info.codec="vorbis":console.warn(`Unsupported audio codec (objectTypeIndication ${g}) - discarding track.`),e.skip(12),f>e.filePos-p){let w=v(e);m(w===5);let b=zi(e);if(a.info.codecDescription=F(e,b),a.info.codec==="aac"){let k=_r(a.info.codecDescription);k.numberOfChannels!==null&&(a.info.numberOfChannels=k.numberOfChannels),k.sampleRate!==null&&(a.info.sampleRate=k.sampleRate)}}}break;case"enda":{let a=this.currentTrack;if(!a)break;m(a.info?.type==="audio"),ee(e)&255&&(a.info.codec==="pcm-s16be"?a.info.codec="pcm-s16":a.info.codec==="pcm-s24be"?a.info.codec="pcm-s24":a.info.codec==="pcm-s32be"?a.info.codec="pcm-s32":a.info.codec==="pcm-f32be"?a.info.codec="pcm-f32":a.info.codec==="pcm-f64be"&&(a.info.codec="pcm-f64"))}break;case"pcmC":{let a=this.currentTrack;if(!a)break;m(a.info?.type==="audio"),e.skip(4);let c=!!(v(e)&1),l=v(e);a.info.codec==="pcm-s16be"?c?l===16?a.info.codec="pcm-s16":l===24?a.info.codec="pcm-s24":l===32?a.info.codec="pcm-s32":(console.warn(`Invalid ipcm sample size ${l}.`),a.info.codec=null):l===16?a.info.codec="pcm-s16be":l===24?a.info.codec="pcm-s24be":l===32?a.info.codec="pcm-s32be":(console.warn(`Invalid ipcm sample size ${l}.`),a.info.codec=null):a.info.codec==="pcm-f32be"&&(c?l===32?a.info.codec="pcm-f32":l===64?a.info.codec="pcm-f64":(console.warn(`Invalid fpcm sample size ${l}.`),a.info.codec=null):l===32?a.info.codec="pcm-f32be":l===64?a.info.codec="pcm-f64be":(console.warn(`Invalid fpcm sample size ${l}.`),a.info.codec=null));break}case"dOps":{let a=this.currentTrack;if(!a)break;m(a.info?.type==="audio"),e.skip(1);let o=v(e),c=ee(e),l=_(e),d=Br(e),u=v(e),h;u!==0?h=F(e,2+o):h=new Uint8Array(0);let f=new Uint8Array(19+h.byteLength),p=new DataView(f.buffer);p.setUint32(0,1332770163,!1),p.setUint32(4,1214603620,!1),p.setUint8(8,1),p.setUint8(9,o),p.setUint16(10,c,!0),p.setUint32(12,l,!0),p.setInt16(16,d,!0),p.setUint8(18,u),f.set(h,19),a.info.codecDescription=f,a.info.numberOfChannels=o}break;case"dfLa":{let a=this.currentTrack;if(!a)break;m(a.info?.type==="audio"),e.skip(4);let o=127,c=128,l=e.filePos;for(;e.filePos<n;){let p=v(e),g=et(e);if((p&o)===Ze.STREAMINFO){e.skip(10);let b=_(e),k=b>>>12,y=(b>>9&7)+1;a.info.sampleRate=k,a.info.numberOfChannels=y,e.skip(20)}else e.skip(g);if(p&c)break}let d=e.filePos;e.filePos=l;let u=F(e,d-l),h=new Uint8Array(4+u.byteLength);new DataView(h.buffer).setUint32(0,1716281667,!1),h.set(u,4),a.info.codecDescription=h}break;case"stts":{let a=this.currentTrack;if(!a||!a.sampleTable)break;e.skip(4);let o=_(e),c=0,l=0;for(let d=0;d<o;d++){let u=_(e),h=_(e);a.sampleTable.sampleTimingEntries.push({startIndex:c,startDecodeTimestamp:l,count:u,delta:h}),c+=u,l+=u*h}}break;case"ctts":{let a=this.currentTrack;if(!a||!a.sampleTable)break;e.skip(4);let o=_(e),c=0;for(let l=0;l<o;l++){let d=_(e),u=He(e);a.sampleTable.sampleCompositionTimeOffsets.push({startIndex:c,count:d,offset:u}),c+=d}}break;case"stsz":{let a=this.currentTrack;if(!a||!a.sampleTable)break;e.skip(4);let o=_(e),c=_(e);if(o===0)for(let l=0;l<c;l++){let d=_(e);a.sampleTable.sampleSizes.push(d)}else a.sampleTable.sampleSizes.push(o)}break;case"stz2":{let a=this.currentTrack;if(!a||!a.sampleTable)break;e.skip(4),e.skip(3);let o=v(e),c=_(e),l=F(e,Math.ceil(c*o/8)),d=new H(l);for(let u=0;u<c;u++){let h=d.readBits(o);a.sampleTable.sampleSizes.push(h)}}break;case"stss":{let a=this.currentTrack;if(!a||!a.sampleTable)break;e.skip(4),a.sampleTable.keySampleIndices=[];let o=_(e);for(let c=0;c<o;c++){let l=_(e)-1;a.sampleTable.keySampleIndices.push(l)}a.sampleTable.keySampleIndices[0]!==0&&a.sampleTable.keySampleIndices.unshift(0)}break;case"stsc":{let a=this.currentTrack;if(!a||!a.sampleTable)break;e.skip(4);let o=_(e);for(let l=0;l<o;l++){let d=_(e)-1,u=_(e),h=_(e);a.sampleTable.sampleToChunk.push({startSampleIndex:-1,startChunkIndex:d,samplesPerChunk:u,sampleDescriptionIndex:h})}let c=0;for(let l=0;l<a.sampleTable.sampleToChunk.length;l++)if(a.sampleTable.sampleToChunk[l].startSampleIndex=c,l<a.sampleTable.sampleToChunk.length-1){let u=a.sampleTable.sampleToChunk[l+1].startChunkIndex-a.sampleTable.sampleToChunk[l].startChunkIndex;c+=u*a.sampleTable.sampleToChunk[l].samplesPerChunk}}break;case"stco":{let a=this.currentTrack;if(!a||!a.sampleTable)break;e.skip(4);let o=_(e);for(let c=0;c<o;c++){let l=_(e);a.sampleTable.chunkOffsets.push(l)}}break;case"co64":{let a=this.currentTrack;if(!a||!a.sampleTable)break;e.skip(4);let o=_(e);for(let c=0;c<o;c++){let l=me(e);a.sampleTable.chunkOffsets.push(l)}}break;case"mvex":this.isFragmented=!0,this.readContiguousBoxes(e.slice(s,i.contentSize));break;case"mehd":{let a=v(e);e.skip(3);let o=a===1?me(e):_(e);this.movieDurationInTimescale=o}break;case"trex":{e.skip(4);let a=_(e),o=_(e),c=_(e),l=_(e),d=_(e);this.fragmentTrackDefaults.push({trackId:a,defaultSampleDescriptionIndex:o,defaultSampleDuration:c,defaultSampleSize:l,defaultSampleFlags:d})}break;case"tfra":{let a=v(e);e.skip(3);let o=_(e),c=this.tracks.find(k=>k.id===o);if(!c)break;let l=_(e),d=(l&48)>>4,u=(l&12)>>2,h=l&3,f=[v,ee,et,_],p=f[d],g=f[u],w=f[h],b=_(e);for(let k=0;k<b;k++){let y=a===1?me(e):_(e),x=a===1?me(e):_(e);p(e),g(e),w(e),c.fragmentLookupTable.push({timestamp:y,moofOffset:x})}c.fragmentLookupTable.sort((k,y)=>k.timestamp-y.timestamp);for(let k=0;k<c.fragmentLookupTable.length-1;k++){let y=c.fragmentLookupTable[k],x=c.fragmentLookupTable[k+1];y.timestamp===x.timestamp&&(c.fragmentLookupTable.splice(k+1,1),k--)}}break;case"moof":this.currentFragment={moofOffset:r,moofSize:i.totalSize,implicitBaseDataOffset:r,trackData:new Map},this.readContiguousBoxes(e.slice(s,i.contentSize)),this.lastReadFragment=this.currentFragment,this.currentFragment=null;break;case"traf":if(m(this.currentFragment),this.readContiguousBoxes(e.slice(s,i.contentSize)),this.currentTrack){let a=this.currentFragment.trackData.get(this.currentTrack.id);if(a){let{currentFragmentState:o}=this.currentTrack;m(o),o.startTimestamp!==null&&(qs(a,o.startTimestamp),a.startTimestampIsFinal=!0)}this.currentTrack.currentFragmentState=null,this.currentTrack=null}break;case"tfhd":{m(this.currentFragment),e.skip(1);let a=et(e),o=!!(a&1),c=!!(a&2),l=!!(a&8),d=!!(a&16),u=!!(a&32),h=!!(a&65536),f=!!(a&131072),p=_(e),g=this.tracks.find(b=>b.id===p);if(!g)break;let w=this.fragmentTrackDefaults.find(b=>b.trackId===p);this.currentTrack=g,g.currentFragmentState={baseDataOffset:this.currentFragment.implicitBaseDataOffset,sampleDescriptionIndex:w?.defaultSampleDescriptionIndex??null,defaultSampleDuration:w?.defaultSampleDuration??null,defaultSampleSize:w?.defaultSampleSize??null,defaultSampleFlags:w?.defaultSampleFlags??null,startTimestamp:null},o?g.currentFragmentState.baseDataOffset=me(e):f&&(g.currentFragmentState.baseDataOffset=this.currentFragment.moofOffset),c&&(g.currentFragmentState.sampleDescriptionIndex=_(e)),l&&(g.currentFragmentState.defaultSampleDuration=_(e)),d&&(g.currentFragmentState.defaultSampleSize=_(e)),u&&(g.currentFragmentState.defaultSampleFlags=_(e)),h&&(g.currentFragmentState.defaultSampleDuration=0)}break;case"tfdt":{let a=this.currentTrack;if(!a)break;m(a.currentFragmentState);let o=v(e);e.skip(3);let c=o===0?_(e):me(e);a.currentFragmentState.startTimestamp=c}break;case"trun":{let a=this.currentTrack;if(!a)break;if(m(this.currentFragment),m(a.currentFragmentState),this.currentFragment.trackData.has(a.id)){console.warn("Can't have two trun boxes for the same track in one fragment. Ignoring...");break}let o=v(e),c=et(e),l=!!(c&1),d=!!(c&4),u=!!(c&256),h=!!(c&512),f=!!(c&1024),p=!!(c&2048),g=_(e),w=a.currentFragmentState.baseDataOffset;l&&(w+=He(e));let b=null;d&&(b=_(e));let k=w;if(g===0){this.currentFragment.implicitBaseDataOffset=k;break}let y=0,x={track:a,startTimestamp:0,endTimestamp:0,firstKeyFrameTimestamp:null,samples:[],presentationTimestamps:[],startTimestampIsFinal:!1};this.currentFragment.trackData.set(a.id,x);for(let A=0;A<g;A++){let E;u?E=_(e):(m(a.currentFragmentState.defaultSampleDuration!==null),E=a.currentFragmentState.defaultSampleDuration);let D;h?D=_(e):(m(a.currentFragmentState.defaultSampleSize!==null),D=a.currentFragmentState.defaultSampleSize);let N;f?N=_(e):(m(a.currentFragmentState.defaultSampleFlags!==null),N=a.currentFragmentState.defaultSampleFlags),A===0&&b!==null&&(N=b);let z=0;p&&(o===0?z=_(e):z=He(e));let re=!(N&65536);x.samples.push({presentationTimestamp:y+z,duration:E,byteOffset:k,byteSize:D,isKeyFrame:re}),k+=D,y+=E}x.presentationTimestamps=x.samples.map((A,E)=>({presentationTimestamp:A.presentationTimestamp,sampleIndex:E})).sort((A,E)=>A.presentationTimestamp-E.presentationTimestamp);for(let A=0;A<x.presentationTimestamps.length;A++){let E=x.presentationTimestamps[A],D=x.samples[E.sampleIndex];if(x.firstKeyFrameTimestamp===null&&D.isKeyFrame&&(x.firstKeyFrameTimestamp=D.presentationTimestamp),A<x.presentationTimestamps.length-1){let N=x.presentationTimestamps[A+1];D.duration=N.presentationTimestamp-E.presentationTimestamp}}let P=x.samples[x.presentationTimestamps[0].sampleIndex],S=x.samples[q(x.presentationTimestamps).sampleIndex];x.startTimestamp=P.presentationTimestamp,x.endTimestamp=S.presentationTimestamp+S.duration,this.currentFragment.implicitBaseDataOffset=k}break;case"udta":{let a=this.iterateContiguousBoxes(e.slice(s,i.contentSize));for(let{boxInfo:o,slice:c}of a){if(o.name!=="meta"&&!this.currentTrack){let l=c.filePos;this.metadataTags.raw??={},o.name[0]==="\xA9"?this.metadataTags.raw[o.name]??=Te(c):this.metadataTags.raw[o.name]??=F(c,o.contentSize),c.filePos=l}switch(o.name){case"meta":c.skip(-o.headerSize),this.traverseBox(c);break;case"\xA9nam":case"name":this.currentTrack?this.currentTrack.name=ie.decode(F(c,o.contentSize)):this.metadataTags.title??=Te(c);break;case"\xA9des":this.currentTrack||(this.metadataTags.description??=Te(c));break;case"\xA9ART":this.currentTrack||(this.metadataTags.artist??=Te(c));break;case"\xA9alb":this.currentTrack||(this.metadataTags.album??=Te(c));break;case"albr":this.currentTrack||(this.metadataTags.albumArtist??=Te(c));break;case"\xA9gen":this.currentTrack||(this.metadataTags.genre??=Te(c));break;case"\xA9day":if(!this.currentTrack){let l=new Date(Te(c));Number.isNaN(l.getTime())||(this.metadataTags.date??=l)}break;case"\xA9cmt":this.currentTrack||(this.metadataTags.comment??=Te(c));break;case"\xA9lyr":this.currentTrack||(this.metadataTags.lyrics??=Te(c));break}}}break;case"meta":{if(this.currentTrack)break;let o=_(e)!==0;this.currentMetadataKeys=new Map,o?this.readContiguousBoxes(e.slice(s,i.contentSize)):this.readContiguousBoxes(e.slice(s+4,i.contentSize-4)),this.currentMetadataKeys=null}break;case"keys":{if(!this.currentMetadataKeys)break;e.skip(4);let a=_(e);for(let o=0;o<a;o++){let c=_(e);e.skip(4);let l=ie.decode(F(e,c-8));this.currentMetadataKeys.set(o+1,l)}}break;case"ilst":{if(!this.currentMetadataKeys)break;let a=this.iterateContiguousBoxes(e.slice(s,i.contentSize));for(let{boxInfo:o,slice:c}of a){let l=o.name,d=(l.charCodeAt(0)<<24)+(l.charCodeAt(1)<<16)+(l.charCodeAt(2)<<8)+l.charCodeAt(3);this.currentMetadataKeys.has(d)&&(l=this.currentMetadataKeys.get(d));let u=Va(c);switch(this.metadataTags.raw??={},this.metadataTags.raw[l]??=u,l){case"\xA9nam":case"titl":case"com.apple.quicktime.title":case"title":typeof u=="string"&&(this.metadataTags.title??=u);break;case"\xA9des":case"desc":case"dscp":case"com.apple.quicktime.description":case"description":typeof u=="string"&&(this.metadataTags.description??=u);break;case"\xA9ART":case"com.apple.quicktime.artist":case"artist":typeof u=="string"&&(this.metadataTags.artist??=u);break;case"\xA9alb":case"albm":case"com.apple.quicktime.album":case"album":typeof u=="string"&&(this.metadataTags.album??=u);break;case"aART":case"album_artist":typeof u=="string"&&(this.metadataTags.albumArtist??=u);break;case"\xA9cmt":case"com.apple.quicktime.comment":case"comment":typeof u=="string"&&(this.metadataTags.comment??=u);break;case"\xA9gen":case"gnre":case"com.apple.quicktime.genre":case"genre":typeof u=="string"&&(this.metadataTags.genre??=u);break;case"\xA9lyr":case"lyrics":typeof u=="string"&&(this.metadataTags.lyrics??=u);break;case"\xA9day":case"rldt":case"com.apple.quicktime.creationdate":case"date":if(typeof u=="string"){let h=new Date(u);Number.isNaN(h.getTime())||(this.metadataTags.date??=h)}break;case"covr":case"com.apple.quicktime.artwork":u instanceof ke?(this.metadataTags.images??=[],this.metadataTags.images.push({data:u.data,kind:"coverFront",mimeType:u.mimeType})):u instanceof Uint8Array&&(this.metadataTags.images??=[],this.metadataTags.images.push({data:u,kind:"coverFront",mimeType:"image/*"}));break;case"track":if(typeof u=="string"){let h=u.split("/"),f=Number.parseInt(h[0],10),p=h[1]&&Number.parseInt(h[1],10);Number.isInteger(f)&&f>0&&(this.metadataTags.trackNumber??=f),p&&Number.isInteger(p)&&p>0&&(this.metadataTags.tracksTotal??=p)}break;case"trkn":if(u instanceof Uint8Array&&u.length>=6){let h=V(u),f=h.getUint16(2,!1),p=h.getUint16(4,!1);f>0&&(this.metadataTags.trackNumber??=f),p>0&&(this.metadataTags.tracksTotal??=p)}break;case"disc":case"disk":if(u instanceof Uint8Array&&u.length>=6){let h=V(u),f=h.getUint16(2,!1),p=h.getUint16(4,!1);f>0&&(this.metadataTags.discNumber??=f),p>0&&(this.metadataTags.discsTotal??=p)}break}}}break}return e.filePos=n,!0}},Ui=class{constructor(e){this.internalTrack=e,this.packetToSampleIndex=new WeakMap,this.packetToFragmentLocation=new WeakMap}getId(){return this.internalTrack.id}getCodec(){throw new Error("Not implemented on base class.")}getInternalCodecId(){return this.internalTrack.internalCodecId}getName(){return this.internalTrack.name}getLanguageCode(){return this.internalTrack.languageCode}getTimeResolution(){return this.internalTrack.timescale}getDisposition(){return this.internalTrack.disposition}async computeDuration(){let e=await this.getPacket(1/0,{metadataOnly:!0});return(e?.timestamp??0)+(e?.duration??0)}async getFirstTimestamp(){return(await this.getFirstPacket({metadataOnly:!0}))?.timestamp??0}async getFirstPacket(e){let r=await this.fetchPacketForSampleIndex(0,e);return r||!this.internalTrack.demuxer.isFragmented?r:this.performFragmentedLookup(null,i=>i.trackData.get(this.internalTrack.id)?{sampleIndex:0,correctSampleFound:!0}:{sampleIndex:-1,correctSampleFound:!1},-1/0,1/0,e)}mapTimestampIntoTimescale(e){return gt(e*this.internalTrack.timescale)+this.internalTrack.editListOffset}async getPacket(e,r){let i=this.mapTimestampIntoTimescale(e),s=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),n=Qs(s,i),a=await this.fetchPacketForSampleIndex(n,r);return!La(s)||!this.internalTrack.demuxer.isFragmented?a:this.performFragmentedLookup(null,o=>{let c=o.trackData.get(this.internalTrack.id);if(!c)return{sampleIndex:-1,correctSampleFound:!1};let l=M(c.presentationTimestamps,i,h=>h.presentationTimestamp),d=l!==-1?c.presentationTimestamps[l].sampleIndex:-1,u=l!==-1&&i<c.endTimestamp;return{sampleIndex:d,correctSampleFound:u}},i,i,r)}async getNextPacket(e,r){let i=this.packetToSampleIndex.get(e);if(i!==void 0)return this.fetchPacketForSampleIndex(i+1,r);let s=this.packetToFragmentLocation.get(e);if(s===void 0)throw new Error("Packet was not created from this track.");return this.performFragmentedLookup(s.fragment,n=>{if(n===s.fragment){let a=n.trackData.get(this.internalTrack.id);if(s.sampleIndex+1<a.samples.length)return{sampleIndex:s.sampleIndex+1,correctSampleFound:!0}}else if(n.trackData.get(this.internalTrack.id))return{sampleIndex:0,correctSampleFound:!0};return{sampleIndex:-1,correctSampleFound:!1}},-1/0,1/0,r)}async getKeyPacket(e,r){let i=this.mapTimestampIntoTimescale(e),s=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),n=Ac(s,i),a=await this.fetchPacketForSampleIndex(n,r);return!La(s)||!this.internalTrack.demuxer.isFragmented?a:this.performFragmentedLookup(null,o=>{let c=o.trackData.get(this.internalTrack.id);if(!c)return{sampleIndex:-1,correctSampleFound:!1};let l=bi(c.presentationTimestamps,h=>c.samples[h.sampleIndex].isKeyFrame&&h.presentationTimestamp<=i),d=l!==-1?c.presentationTimestamps[l].sampleIndex:-1,u=l!==-1&&i<c.endTimestamp;return{sampleIndex:d,correctSampleFound:u}},i,i,r)}async getNextKeyPacket(e,r){let i=this.packetToSampleIndex.get(e);if(i!==void 0){let n=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),a=Rc(n,i);return this.fetchPacketForSampleIndex(a,r)}let s=this.packetToFragmentLocation.get(e);if(s===void 0)throw new Error("Packet was not created from this track.");return this.performFragmentedLookup(s.fragment,n=>{if(n===s.fragment){let o=n.trackData.get(this.internalTrack.id).samples.findIndex((c,l)=>c.isKeyFrame&&l>s.sampleIndex);if(o!==-1)return{sampleIndex:o,correctSampleFound:!0}}else{let a=n.trackData.get(this.internalTrack.id);if(a&&a.firstKeyFrameTimestamp!==null){let o=a.samples.findIndex(c=>c.isKeyFrame);return m(o!==-1),{sampleIndex:o,correctSampleFound:!0}}}return{sampleIndex:-1,correctSampleFound:!1}},-1/0,1/0,r)}async fetchPacketForSampleIndex(e,r){if(e===-1)return null;let i=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),s=Fc(i,e);if(!s)return null;let n;if(r.metadataOnly)n=Y;else{let l=this.internalTrack.demuxer.reader.requestSlice(s.sampleOffset,s.sampleSize);l instanceof Promise&&(l=await l),m(l),n=F(l,s.sampleSize)}let a=(s.presentationTimestamp-this.internalTrack.editListOffset)/this.internalTrack.timescale,o=s.duration/this.internalTrack.timescale,c=new L(n,s.isKeyFrame?"key":"delta",a,o,e,s.sampleSize);return this.packetToSampleIndex.set(c,e),c}async fetchPacketInFragment(e,r,i){if(r===-1)return null;let n=e.trackData.get(this.internalTrack.id).samples[r];m(n);let a;if(i.metadataOnly)a=Y;else{let d=this.internalTrack.demuxer.reader.requestSlice(n.byteOffset,n.byteSize);d instanceof Promise&&(d=await d),m(d),a=F(d,n.byteSize)}let o=(n.presentationTimestamp-this.internalTrack.editListOffset)/this.internalTrack.timescale,c=n.duration/this.internalTrack.timescale,l=new L(a,n.isKeyFrame?"key":"delta",o,c,e.moofOffset+r,n.byteSize);return this.packetToFragmentLocation.set(l,{fragment:e,sampleIndex:r}),l}async performFragmentedLookup(e,r,i,s,n){let a=this.internalTrack.demuxer,o=null,c=null,l=-1;if(e){let{sampleIndex:w,correctSampleFound:b}=r(e);if(b)return this.fetchPacketInFragment(e,w,n);w!==-1&&(c=e,l=w)}let d=M(this.internalTrack.fragmentLookupTable,i,w=>w.timestamp),u=d!==-1?this.internalTrack.fragmentLookupTable[d]:null,h=M(this.internalTrack.fragmentPositionCache,i,w=>w.startTimestamp),f=h!==-1?this.internalTrack.fragmentPositionCache[h]:null,p=Math.max(u?.moofOffset??0,f?.moofOffset??0)||null,g;for(e?p===null||e.moofOffset>=p?(g=e.moofOffset+e.moofSize,o=e):g=p:g=p??0;;){if(o){let y=o.trackData.get(this.internalTrack.id);if(y&&y.startTimestamp>s)break}let w=a.reader.requestSliceRange(g,ye,Le);if(w instanceof Promise&&(w=await w),!w)break;let b=g,k=We(w);if(!k)break;if(k.name==="moof"){o=await a.readFragment(b);let{sampleIndex:y,correctSampleFound:x}=r(o);if(x)return this.fetchPacketInFragment(o,y,n);y!==-1&&(c=o,l=y)}g=b+k.totalSize}if(u&&(!c||c.moofOffset<u.moofOffset)){let w=this.internalTrack.fragmentLookupTable[d-1];m(!w||w.timestamp<u.timestamp);let b=w?.timestamp??-1/0;return this.performFragmentedLookup(null,r,b,s,n)}return c?this.fetchPacketInFragment(c,l,n):null}},js=class extends Ui{constructor(e){super(e),this.decoderConfigPromise=null,this.internalTrack=e}getCodec(){return this.internalTrack.info.codec}getCodedWidth(){return this.internalTrack.info.width}getCodedHeight(){return this.internalTrack.info.height}getRotation(){return this.internalTrack.rotation}async getColorSpace(){return{primaries:this.internalTrack.info.colorSpace?.primaries,transfer:this.internalTrack.info.colorSpace?.transfer,matrix:this.internalTrack.info.colorSpace?.matrix,fullRange:this.internalTrack.info.colorSpace?.fullRange}}async canBeTransparent(){return!1}async getDecoderConfig(){return this.internalTrack.info.codec?this.decoderConfigPromise??=(async()=>{if(this.internalTrack.info.codec==="vp9"&&!this.internalTrack.info.vp9CodecInfo){let e=await this.getFirstPacket({});this.internalTrack.info.vp9CodecInfo=e&&Ii(e.data)}else if(this.internalTrack.info.codec==="av1"&&!this.internalTrack.info.av1CodecInfo){let e=await this.getFirstPacket({});this.internalTrack.info.av1CodecInfo=e&&vi(e.data)}return{codec:Ti(this.internalTrack.info),codedWidth:this.internalTrack.info.width,codedHeight:this.internalTrack.info.height,description:this.internalTrack.info.codecDescription??void 0,colorSpace:this.internalTrack.info.colorSpace??void 0}})():null}},$s=class extends Ui{constructor(e){super(e),this.decoderConfig=null,this.internalTrack=e}getCodec(){return this.internalTrack.info.codec}getNumberOfChannels(){return this.internalTrack.info.numberOfChannels}getSampleRate(){return this.internalTrack.info.sampleRate}async getDecoderConfig(){return this.internalTrack.info.codec?this.decoderConfig??={codec:xi(this.internalTrack.info),numberOfChannels:this.internalTrack.info.numberOfChannels,sampleRate:this.internalTrack.info.sampleRate,description:this.internalTrack.info.codecDescription??void 0}:null}},Qs=(t,e)=>{if(t.presentationTimestamps){let r=M(t.presentationTimestamps,e,i=>i.presentationTimestamp);return r===-1?-1:t.presentationTimestamps[r].sampleIndex}else{let r=M(t.sampleTimingEntries,e,s=>s.startDecodeTimestamp);if(r===-1)return-1;let i=t.sampleTimingEntries[r];return i.startIndex+Math.min(Math.floor((e-i.startDecodeTimestamp)/i.delta),i.count-1)}},Ac=(t,e)=>{if(!t.keySampleIndices)return Qs(t,e);if(t.presentationTimestamps){let r=M(t.presentationTimestamps,e,i=>i.presentationTimestamp);if(r===-1)return-1;for(let i=r;i>=0;i--){let s=t.presentationTimestamps[i].sampleIndex;if(mt(t.keySampleIndices,s,a=>a)!==-1)return s}return-1}else{let r=Qs(t,e),i=M(t.keySampleIndices,r,s=>s);return t.keySampleIndices[i]??-1}},Fc=(t,e)=>{let r=M(t.sampleTimingEntries,e,b=>b.startIndex),i=t.sampleTimingEntries[r];if(!i||i.startIndex+i.count<=e)return null;let n=i.startDecodeTimestamp+(e-i.startIndex)*i.delta,a=M(t.sampleCompositionTimeOffsets,e,b=>b.startIndex),o=t.sampleCompositionTimeOffsets[a];o&&e-o.startIndex<o.count&&(n+=o.offset);let c=t.sampleSizes[Math.min(e,t.sampleSizes.length-1)],l=M(t.sampleToChunk,e,b=>b.startSampleIndex),d=t.sampleToChunk[l];m(d);let u=d.startChunkIndex+Math.floor((e-d.startSampleIndex)/d.samplesPerChunk),h=t.chunkOffsets[u],f=d.startSampleIndex+(u-d.startChunkIndex)*d.samplesPerChunk,p=0,g=h;if(t.sampleSizes.length===1)g+=c*(e-f),p+=c*d.samplesPerChunk;else for(let b=f;b<f+d.samplesPerChunk;b++){let k=t.sampleSizes[b];b<e&&(g+=k),p+=k}let w=i.delta;if(t.presentationTimestamps){let b=t.presentationTimestampIndexMap[e];m(b!==void 0),b<t.presentationTimestamps.length-1&&(w=t.presentationTimestamps[b+1].presentationTimestamp-n)}return{presentationTimestamp:n,duration:w,sampleOffset:g,sampleSize:c,chunkOffset:h,chunkSize:p,isKeyFrame:t.keySampleIndices?mt(t.keySampleIndices,e,b=>b)!==-1:!0}},Rc=(t,e)=>{if(!t.keySampleIndices)return e+1;let r=M(t.keySampleIndices,e,i=>i);return t.keySampleIndices[r+1]??-1},qs=(t,e)=>{t.startTimestamp+=e,t.endTimestamp+=e;for(let r of t.samples)r.presentationTimestamp+=e;for(let r of t.presentationTimestamps)r.presentationTimestamp+=e},Bc=t=>{let[e,,,r]=t,i=Math.hypot(e,r),s=e/i,n=r/i,a=-Math.atan2(n,s)*(180/Math.PI);return Number.isFinite(a)?a:0},La=t=>t.sampleSizes.length===0;var T;(function(t){t[t.EBML=440786851]="EBML",t[t.EBMLVersion=17030]="EBMLVersion",t[t.EBMLReadVersion=17143]="EBMLReadVersion",t[t.EBMLMaxIDLength=17138]="EBMLMaxIDLength",t[t.EBMLMaxSizeLength=17139]="EBMLMaxSizeLength",t[t.DocType=17026]="DocType",t[t.DocTypeVersion=17031]="DocTypeVersion",t[t.DocTypeReadVersion=17029]="DocTypeReadVersion",t[t.Void=236]="Void",t[t.Segment=408125543]="Segment",t[t.SeekHead=290298740]="SeekHead",t[t.Seek=19899]="Seek",t[t.SeekID=21419]="SeekID",t[t.SeekPosition=21420]="SeekPosition",t[t.Duration=17545]="Duration",t[t.Info=357149030]="Info",t[t.TimestampScale=2807729]="TimestampScale",t[t.MuxingApp=19840]="MuxingApp",t[t.WritingApp=22337]="WritingApp",t[t.Tracks=374648427]="Tracks",t[t.TrackEntry=174]="TrackEntry",t[t.TrackNumber=215]="TrackNumber",t[t.TrackUID=29637]="TrackUID",t[t.TrackType=131]="TrackType",t[t.FlagEnabled=185]="FlagEnabled",t[t.FlagDefault=136]="FlagDefault",t[t.FlagForced=21930]="FlagForced",t[t.FlagOriginal=21934]="FlagOriginal",t[t.FlagHearingImpaired=21931]="FlagHearingImpaired",t[t.FlagVisualImpaired=21932]="FlagVisualImpaired",t[t.FlagCommentary=21935]="FlagCommentary",t[t.FlagLacing=156]="FlagLacing",t[t.Name=21358]="Name",t[t.Language=2274716]="Language",t[t.LanguageBCP47=2274717]="LanguageBCP47",t[t.CodecID=134]="CodecID",t[t.CodecPrivate=25506]="CodecPrivate",t[t.CodecDelay=22186]="CodecDelay",t[t.SeekPreRoll=22203]="SeekPreRoll",t[t.DefaultDuration=2352003]="DefaultDuration",t[t.Video=224]="Video",t[t.PixelWidth=176]="PixelWidth",t[t.PixelHeight=186]="PixelHeight",t[t.AlphaMode=21440]="AlphaMode",t[t.Audio=225]="Audio",t[t.SamplingFrequency=181]="SamplingFrequency",t[t.Channels=159]="Channels",t[t.BitDepth=25188]="BitDepth",t[t.SimpleBlock=163]="SimpleBlock",t[t.BlockGroup=160]="BlockGroup",t[t.Block=161]="Block",t[t.BlockAdditions=30113]="BlockAdditions",t[t.BlockMore=166]="BlockMore",t[t.BlockAdditional=165]="BlockAdditional",t[t.BlockAddID=238]="BlockAddID",t[t.BlockDuration=155]="BlockDuration",t[t.ReferenceBlock=251]="ReferenceBlock",t[t.Cluster=524531317]="Cluster",t[t.Timestamp=231]="Timestamp",t[t.Cues=475249515]="Cues",t[t.CuePoint=187]="CuePoint",t[t.CueTime=179]="CueTime",t[t.CueTrackPositions=183]="CueTrackPositions",t[t.CueTrack=247]="CueTrack",t[t.CueClusterPosition=241]="CueClusterPosition",t[t.Colour=21936]="Colour",t[t.MatrixCoefficients=21937]="MatrixCoefficients",t[t.TransferCharacteristics=21946]="TransferCharacteristics",t[t.Primaries=21947]="Primaries",t[t.Range=21945]="Range",t[t.Projection=30320]="Projection",t[t.ProjectionType=30321]="ProjectionType",t[t.ProjectionPoseRoll=30325]="ProjectionPoseRoll",t[t.Attachments=423732329]="Attachments",t[t.AttachedFile=24999]="AttachedFile",t[t.FileDescription=18046]="FileDescription",t[t.FileName=18030]="FileName",t[t.FileMediaType=18016]="FileMediaType",t[t.FileData=18012]="FileData",t[t.FileUID=18094]="FileUID",t[t.Chapters=272869232]="Chapters",t[t.Tags=307544935]="Tags",t[t.Tag=29555]="Tag",t[t.Targets=25536]="Targets",t[t.TargetTypeValue=26826]="TargetTypeValue",t[t.TargetType=25546]="TargetType",t[t.TagTrackUID=25541]="TagTrackUID",t[t.TagEditionUID=25545]="TagEditionUID",t[t.TagChapterUID=25540]="TagChapterUID",t[t.TagAttachmentUID=25542]="TagAttachmentUID",t[t.SimpleTag=26568]="SimpleTag",t[t.TagName=17827]="TagName",t[t.TagLanguage=17530]="TagLanguage",t[t.TagString=17543]="TagString",t[t.TagBinary=17541]="TagBinary",t[t.ContentEncodings=28032]="ContentEncodings",t[t.ContentEncoding=25152]="ContentEncoding",t[t.ContentEncodingOrder=20529]="ContentEncodingOrder",t[t.ContentEncodingScope=20530]="ContentEncodingScope",t[t.ContentCompression=20532]="ContentCompression",t[t.ContentCompAlgo=16980]="ContentCompAlgo",t[t.ContentCompSettings=16981]="ContentCompSettings",t[t.ContentEncryption=20533]="ContentEncryption"})(T||(T={}));var Dc=[T.EBML,T.Segment],qt=[T.SeekHead,T.Info,T.Cluster,T.Tracks,T.Cues,T.Attachments,T.Chapters,T.Tags],Dr=[...Dc,...qt];var Gs=8,pe=2,xe=2*Gs,Ks=t=>{let e=v(t);if(t.skip(-1),e===0)return null;let r=1,i=128;for(;(e&i)===0;)r++,i>>=1;return r},jt=t=>{let e=v(t);if(e===0)return null;let r=1,i=128;for(;(e&i)===0;)r++,i>>=1;let s=e&i-1;for(let n=1;n<r;n++)s*=256,s+=v(t);return s},O=(t,e)=>{if(e<1||e>8)throw new Error("Bad unsigned int size "+e);let r=0;for(let i=0;i<e;i++)r*=256,r+=v(t);return r},Ha=(t,e)=>{if(e<1)throw new Error("Bad unsigned int size "+e);let r=0n;for(let i=0;i<e;i++)r<<=8n,r+=BigInt(v(t));return r};var Vi=t=>{let e=Ks(t);return e===null?null:O(t,e)},Xs=t=>{let e=v(t);return e===255?e=null:(t.skip(-1),e=jt(t),e===72057594037927940&&(e=null)),e},Se=t=>{let e=Vi(t);if(e===null)return null;let r=Xs(t);return{id:e,size:r}},tt=(t,e)=>{let r=F(t,e),i=0;for(;i<e&&r[i]!==0;)i+=1;return String.fromCharCode(...r.subarray(0,i))},$t=(t,e)=>{let r=F(t,e),i=0;for(;i<e&&r[i]!==0;)i+=1;return ie.decode(r.subarray(0,i))},Li=(t,e)=>{if(e===0)return 0;if(e!==4&&e!==8)throw new Error("Bad float size "+e);return e===4?qa(t):Ni(t)},Wi=async(t,e,r,i)=>{let s=new Set(r),n=e;for(;i===null||n<i;){let a=t.requestSliceRange(n,pe,xe);if(a instanceof Promise&&(a=await a),!a)break;let o=Se(a);if(!o)break;if(s.has(o.id))return{pos:n,found:!0};qe(o.size),n=a.filePos+o.size}return{pos:i!==null&&i>n?i:n,found:!1}},Ys=async(t,e,r,i)=>{let n=new Set(r),a=e;for(;a<i;){let o=t.requestSliceRange(a,0,Math.min(65536,i-a));if(o instanceof Promise&&(o=await o),!o||o.length<Gs)break;for(let c=0;c<o.length-Gs;c++){o.filePos=a;let l=Vi(o);if(l!==null&&n.has(l))return a;a++}}return null},Ce={avc:"V_MPEG4/ISO/AVC",hevc:"V_MPEGH/ISO/HEVC",vp8:"V_VP8",vp9:"V_VP9",av1:"V_AV1",aac:"A_AAC",mp3:"A_MPEG/L3",opus:"A_OPUS",vorbis:"A_VORBIS",flac:"A_FLAC","pcm-u8":"A_PCM/INT/LIT","pcm-s16":"A_PCM/INT/LIT","pcm-s16be":"A_PCM/INT/BIG","pcm-s24":"A_PCM/INT/LIT","pcm-s24be":"A_PCM/INT/BIG","pcm-s32":"A_PCM/INT/LIT","pcm-s32be":"A_PCM/INT/BIG","pcm-f32":"A_PCM/FLOAT/IEEE","pcm-f64":"A_PCM/FLOAT/IEEE",webvtt:"S_TEXT/WEBVTT"};function qe(t){if(t===null)throw new Error("Undefined element size is used in a place where it is not supported.")}var ja=t=>{let r=(t.hasVideo?"video/":t.hasAudio?"audio/":"application/")+(t.isWebM?"webm":"x-matroska");if(t.codecStrings.length>0){let i=[...new Set(t.codecStrings.filter(Boolean))];r+=`; codecs="${i.join(", ")}"`}return r};var je;(function(t){t[t.None=0]="None",t[t.Xiph=1]="Xiph",t[t.FixedSize=2]="FixedSize",t[t.Ebml=3]="Ebml"})(je||(je={}));var Hi;(function(t){t[t.Block=1]="Block",t[t.Private=2]="Private",t[t.Next=4]="Next"})(Hi||(Hi={}));var Or;(function(t){t[t.Zlib=0]="Zlib",t[t.Bzlib=1]="Bzlib",t[t.lzo1x=2]="lzo1x",t[t.HeaderStripping=3]="HeaderStripping"})(Or||(Or={}));var Zs=[{id:T.SeekHead,flag:"seekHeadSeen"},{id:T.Info,flag:"infoSeen"},{id:T.Tracks,flag:"tracksSeen"},{id:T.Cues,flag:"cuesSeen"}],$a=10*2**20,qi=class extends ae{constructor(e){super(e),this.readMetadataPromise=null,this.segments=[],this.currentSegment=null,this.currentTrack=null,this.currentCluster=null,this.currentBlock=null,this.currentBlockAdditional=null,this.currentCueTime=null,this.currentDecodingInstruction=null,this.currentTagTargetIsMovie=!0,this.currentSimpleTagName=null,this.currentAttachedFile=null,this.isWebM=!1,this.reader=e._reader}async computeDuration(){let e=await this.getTracks(),r=await Promise.all(e.map(i=>i.computeDuration()));return Math.max(0,...r)}async getTracks(){return await this.readMetadata(),this.segments.flatMap(e=>e.tracks.map(r=>r.inputTrack))}async getMimeType(){await this.readMetadata();let e=await this.getTracks(),r=await Promise.all(e.map(i=>i.getCodecParameterString()));return ja({isWebM:this.isWebM,hasVideo:this.segments.some(i=>i.tracks.some(s=>s.info?.type==="video")),hasAudio:this.segments.some(i=>i.tracks.some(s=>s.info?.type==="audio")),codecStrings:r.filter(Boolean)})}async getMetadataTags(){await this.readMetadata();for(let r of this.segments)r.metadataTagsCollected||(this.reader.fileSize!==null&&await this.loadSegmentMetadata(r),r.metadataTagsCollected=!0);let e={};for(let r of this.segments)e={...e,...r.metadataTags};return e}readMetadata(){return this.readMetadataPromise??=(async()=>{let e=0;for(;;){let r=this.reader.requestSliceRange(e,pe,xe);if(r instanceof Promise&&(r=await r),!r)break;let i=Se(r);if(!i)break;let s=i.id,n=i.size,a=r.filePos;if(s===T.EBML){qe(n);let o=this.reader.requestSlice(a,n);if(o instanceof Promise&&(o=await o),!o)break;this.readContiguousElements(o)}else if(s===T.Segment){if(await this.readSegment(a,n),n===null||this.reader.fileSize===null)break}else if(s===T.Cluster){if(this.reader.fileSize===null)break;n===null&&(n=(await Wi(this.reader,a,Dr,this.reader.fileSize)).pos-a);let o=q(this.segments);o&&(o.elementEndPos=a+n)}qe(n),e=a+n}})()}async readSegment(e,r){this.currentSegment={seekHeadSeen:!1,infoSeen:!1,tracksSeen:!1,cuesSeen:!1,tagsSeen:!1,attachmentsSeen:!1,timestampScale:-1,timestampFactor:-1,duration:-1,seekEntries:[],tracks:[],cuePoints:[],dataStartPos:e,elementEndPos:r===null?null:e+r,clusterSeekStartPos:e,lastReadCluster:null,metadataTags:{},metadataTagsCollected:!1},this.segments.push(this.currentSegment);let i=e;for(;this.currentSegment.elementEndPos===null||i<this.currentSegment.elementEndPos;){let o=this.reader.requestSliceRange(i,pe,xe);if(o instanceof Promise&&(o=await o),!o)break;let c=i,l=Se(o);if(!l||!qt.includes(l.id)&&l.id!==T.Void){let p=await Ys(this.reader,c,qt,Math.min(this.currentSegment.elementEndPos??1/0,c+$a));if(p){i=p;continue}else break}let{id:d,size:u}=l,h=o.filePos,f=Zs.findIndex(p=>p.id===d);if(f!==-1){let p=Zs[f].flag;this.currentSegment[p]=!0,qe(u);let g=this.reader.requestSlice(h,u);g instanceof Promise&&(g=await g),g&&this.readContiguousElements(g)}else if(d===T.Tags||d===T.Attachments){d===T.Tags?this.currentSegment.tagsSeen=!0:this.currentSegment.attachmentsSeen=!0,qe(u);let p=this.reader.requestSlice(h,u);p instanceof Promise&&(p=await p),p&&this.readContiguousElements(p)}else if(d===T.Cluster){this.currentSegment.clusterSeekStartPos=c;break}if(u===null)break;i=h+u}if(this.currentSegment.seekEntries.sort((o,c)=>o.segmentPosition-c.segmentPosition),this.reader.fileSize!==null)for(let o of this.currentSegment.seekEntries){let c=Zs.find(p=>p.id===o.id);if(!c||this.currentSegment[c.flag])continue;let l=this.reader.requestSliceRange(e+o.segmentPosition,pe,xe);if(l instanceof Promise&&(l=await l),!l)continue;let d=Se(l);if(!d)continue;let{id:u,size:h}=d;if(u!==c.id)continue;qe(h),this.currentSegment[c.flag]=!0;let f=this.reader.requestSlice(l.filePos,h);f instanceof Promise&&(f=await f),f&&this.readContiguousElements(f)}this.currentSegment.timestampScale===-1&&(this.currentSegment.timestampScale=1e6,this.currentSegment.timestampFactor=1e9/1e6),this.currentSegment.tracks.sort((o,c)=>Number(c.disposition.default)-Number(o.disposition.default));let s=new Map(this.currentSegment.tracks.map(o=>[o.id,o]));for(let o of this.currentSegment.cuePoints){let c=s.get(o.trackId);c&&c.cuePoints.push(o)}for(let o of this.currentSegment.tracks){o.cuePoints.sort((c,l)=>c.time-l.time);for(let c=0;c<o.cuePoints.length-1;c++){let l=o.cuePoints[c],d=o.cuePoints[c+1];l.time===d.time&&(o.cuePoints.splice(c+1,1),c--)}}let n=null,a=-1/0;for(let o of this.currentSegment.tracks)o.cuePoints.length>a&&(a=o.cuePoints.length,n=o);for(let o of this.currentSegment.tracks)o.cuePoints.length===0&&(o.cuePoints=n.cuePoints);this.currentSegment=null}async readCluster(e,r){if(r.lastReadCluster?.elementStartPos===e)return r.lastReadCluster;let i=this.reader.requestSliceRange(e,pe,xe);i instanceof Promise&&(i=await i),m(i);let s=e,n=Se(i);m(n);let a=n.id;m(a===T.Cluster);let o=n.size,c=i.filePos;o===null&&(o=(await Wi(this.reader,c,Dr,r.elementEndPos)).pos-c);let l=this.reader.requestSlice(c,o);l instanceof Promise&&(l=await l);let d={segment:r,elementStartPos:s,elementEndPos:c+o,dataStartPos:c,timestamp:-1,trackData:new Map};if(this.currentCluster=d,l){let u=this.readContiguousElements(l,Dr);d.elementEndPos=u}for(let[,u]of d.trackData){let h=u.track;m(u.blocks.length>0);let f=!1;for(let b=0;b<u.blocks.length;b++){let k=u.blocks[b];k.timestamp+=d.timestamp,f||=k.lacing!==je.None}u.presentationTimestamps=u.blocks.map((b,k)=>({timestamp:b.timestamp,blockIndex:k})).sort((b,k)=>b.timestamp-k.timestamp);for(let b=0;b<u.presentationTimestamps.length;b++){let k=u.presentationTimestamps[b],y=u.blocks[k.blockIndex];if(u.firstKeyFrameTimestamp===null&&y.isKeyFrame&&(u.firstKeyFrameTimestamp=y.timestamp),b<u.presentationTimestamps.length-1){let x=u.presentationTimestamps[b+1];y.duration=x.timestamp-y.timestamp}else y.duration===0&&h.defaultDuration!=null&&y.lacing===je.None&&(y.duration=h.defaultDuration)}f&&(this.expandLacedBlocks(u.blocks,h),u.presentationTimestamps=u.blocks.map((b,k)=>({timestamp:b.timestamp,blockIndex:k})).sort((b,k)=>b.timestamp-k.timestamp));let p=u.blocks[u.presentationTimestamps[0].blockIndex],g=u.blocks[q(u.presentationTimestamps).blockIndex];u.startTimestamp=p.timestamp,u.endTimestamp=g.timestamp+g.duration;let w=M(h.clusterPositionCache,u.startTimestamp,b=>b.startTimestamp);(w===-1||h.clusterPositionCache[w].elementStartPos!==s)&&h.clusterPositionCache.splice(w+1,0,{elementStartPos:d.elementStartPos,startTimestamp:u.startTimestamp})}return r.lastReadCluster=d,d}getTrackDataInCluster(e,r){let i=e.trackData.get(r);if(!i){let s=e.segment.tracks.find(n=>n.id===r);if(!s)return null;i={track:s,startTimestamp:0,endTimestamp:0,firstKeyFrameTimestamp:null,blocks:[],presentationTimestamps:[]},e.trackData.set(r,i)}return i}expandLacedBlocks(e,r){for(let i=0;i<e.length;i++){let s=e[i];if(s.lacing===je.None)continue;s.decoded||(s.data=this.decodeBlockData(r,s.data),s.decoded=!0);let n=Qt.tempFromBytes(s.data),a=[],o=v(n)+1;switch(s.lacing){case je.Xiph:{let l=0;for(let d=0;d<o-1;d++){let u=0;for(;n.bufferPos<n.length;){let h=v(n);if(u+=h,h<255){a.push(u),l+=u;break}}}a.push(n.length-(n.bufferPos+l))}break;case je.FixedSize:{let l=n.length-1,d=Math.floor(l/o);for(let u=0;u<o;u++)a.push(d)}break;case je.Ebml:{let l=jt(n);m(l!==null);let d=l;a.push(d);let u=d;for(let h=1;h<o-1;h++){let f=n.bufferPos,p=jt(n);m(p!==null);let g=p,b=(1<<(n.bufferPos-f)*7-1)-1,k=g-b;d+=k,a.push(d),u+=d}a.push(n.length-(n.bufferPos+u))}break;default:m(!1)}m(a.length===o),e.splice(i,1);let c=s.duration||o*(r.defaultDuration??0);for(let l=0;l<o;l++){let d=a[l],u=F(n,d),h=s.timestamp+c*l/o,f=c/o;e.splice(i+l,0,{timestamp:h,duration:f,isKeyFrame:s.isKeyFrame,data:u,lacing:je.None,decoded:!0,mainAdditional:s.mainAdditional})}i+=o,i--}}async loadSegmentMetadata(e){for(let r of e.seekEntries){if(!(r.id===T.Tags&&!e.tagsSeen)){if(!(r.id===T.Attachments&&!e.attachmentsSeen))continue}let i=this.reader.requestSliceRange(e.dataStartPos+r.segmentPosition,pe,xe);if(i instanceof Promise&&(i=await i),!i)continue;let s=Se(i);if(!s||s.id!==r.id)continue;let{size:n}=s;qe(n),m(!this.currentSegment),this.currentSegment=e;let a=this.reader.requestSlice(i.filePos,n);a instanceof Promise&&(a=await a),a&&this.readContiguousElements(a),this.currentSegment=null,r.id===T.Tags?e.tagsSeen=!0:r.id===T.Attachments&&(e.attachmentsSeen=!0)}}readContiguousElements(e,r){let i=e.filePos;for(;e.filePos-i<=e.length-pe;){let s=e.filePos;if(!this.traverseElement(e,r))return s}return e.filePos}traverseElement(e,r){let i=Se(e);if(!i||r&&r.includes(i.id))return!1;let{id:s,size:n}=i,a=e.filePos;switch(qe(n),s){case T.DocType:this.isWebM=tt(e,n)==="webm";break;case T.Seek:{if(!this.currentSegment)break;let o={id:-1,segmentPosition:-1};this.currentSegment.seekEntries.push(o),this.readContiguousElements(e.slice(a,n)),(o.id===-1||o.segmentPosition===-1)&&this.currentSegment.seekEntries.pop()}break;case T.SeekID:{let o=this.currentSegment?.seekEntries[this.currentSegment.seekEntries.length-1];if(!o)break;o.id=O(e,n)}break;case T.SeekPosition:{let o=this.currentSegment?.seekEntries[this.currentSegment.seekEntries.length-1];if(!o)break;o.segmentPosition=O(e,n)}break;case T.TimestampScale:{if(!this.currentSegment)break;this.currentSegment.timestampScale=O(e,n),this.currentSegment.timestampFactor=1e9/this.currentSegment.timestampScale}break;case T.Duration:{if(!this.currentSegment)break;this.currentSegment.duration=Li(e,n)}break;case T.TrackEntry:{if(!this.currentSegment)break;if(this.currentTrack={id:-1,segment:this.currentSegment,demuxer:this,clusterPositionCache:[],cuePoints:[],disposition:{...de},inputTrack:null,codecId:null,codecPrivate:null,defaultDuration:null,name:null,languageCode:G,decodingInstructions:[],info:null},this.readContiguousElements(e.slice(a,n)),this.currentTrack.decodingInstructions.some(o=>o.data?.type!=="decompress"||o.scope!==Hi.Block||o.data.algorithm!==Or.HeaderStripping)&&(console.warn(`Track #${this.currentTrack.id} has an unsupported content encoding; dropping.`),this.currentTrack=null),this.currentTrack&&this.currentTrack.id!==-1&&this.currentTrack.codecId&&this.currentTrack.info){let o=this.currentTrack.codecId.indexOf("/"),c=o===-1?this.currentTrack.codecId:this.currentTrack.codecId.slice(0,o);if(this.currentTrack.info.type==="video"&&this.currentTrack.info.width!==-1&&this.currentTrack.info.height!==-1){this.currentTrack.codecId===Ce.avc?(this.currentTrack.info.codec="avc",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):this.currentTrack.codecId===Ce.hevc?(this.currentTrack.info.codec="hevc",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):c===Ce.vp8?this.currentTrack.info.codec="vp8":c===Ce.vp9?this.currentTrack.info.codec="vp9":c===Ce.av1&&(this.currentTrack.info.codec="av1");let l=this.currentTrack,d=new Ve(this.input,new Js(l));this.currentTrack.inputTrack=d,this.currentSegment.tracks.push(this.currentTrack)}else if(this.currentTrack.info.type==="audio"&&this.currentTrack.info.numberOfChannels!==-1&&this.currentTrack.info.sampleRate!==-1){c===Ce.aac?(this.currentTrack.info.codec="aac",this.currentTrack.info.aacCodecInfo={isMpeg2:this.currentTrack.codecId.includes("MPEG2")},this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):this.currentTrack.codecId===Ce.mp3?this.currentTrack.info.codec="mp3":c===Ce.opus?(this.currentTrack.info.codec="opus",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate,this.currentTrack.info.sampleRate=kt):c===Ce.vorbis?(this.currentTrack.info.codec="vorbis",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):c===Ce.flac?(this.currentTrack.info.codec="flac",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):this.currentTrack.codecId==="A_PCM/INT/LIT"?this.currentTrack.info.bitDepth===8?this.currentTrack.info.codec="pcm-u8":this.currentTrack.info.bitDepth===16?this.currentTrack.info.codec="pcm-s16":this.currentTrack.info.bitDepth===24?this.currentTrack.info.codec="pcm-s24":this.currentTrack.info.bitDepth===32&&(this.currentTrack.info.codec="pcm-s32"):this.currentTrack.codecId==="A_PCM/INT/BIG"?this.currentTrack.info.bitDepth===8?this.currentTrack.info.codec="pcm-u8":this.currentTrack.info.bitDepth===16?this.currentTrack.info.codec="pcm-s16be":this.currentTrack.info.bitDepth===24?this.currentTrack.info.codec="pcm-s24be":this.currentTrack.info.bitDepth===32&&(this.currentTrack.info.codec="pcm-s32be"):this.currentTrack.codecId==="A_PCM/FLOAT/IEEE"&&(this.currentTrack.info.bitDepth===32?this.currentTrack.info.codec="pcm-f32":this.currentTrack.info.bitDepth===64&&(this.currentTrack.info.codec="pcm-f64"));let l=this.currentTrack,d=new J(this.input,new en(l));this.currentTrack.inputTrack=d,this.currentSegment.tracks.push(this.currentTrack)}}this.currentTrack=null}break;case T.TrackNumber:{if(!this.currentTrack)break;this.currentTrack.id=O(e,n)}break;case T.TrackType:{if(!this.currentTrack)break;let o=O(e,n);o===1?this.currentTrack.info={type:"video",width:-1,height:-1,rotation:0,codec:null,codecDescription:null,colorSpace:null,alphaMode:!1}:o===2&&(this.currentTrack.info={type:"audio",numberOfChannels:-1,sampleRate:-1,bitDepth:-1,codec:null,codecDescription:null,aacCodecInfo:null})}break;case T.FlagEnabled:{if(!this.currentTrack)break;O(e,n)||(this.currentSegment.tracks.pop(),this.currentTrack=null)}break;case T.FlagDefault:{if(!this.currentTrack)break;this.currentTrack.disposition.default=!!O(e,n)}break;case T.FlagForced:{if(!this.currentTrack)break;this.currentTrack.disposition.forced=!!O(e,n)}break;case T.FlagOriginal:{if(!this.currentTrack)break;this.currentTrack.disposition.original=!!O(e,n)}break;case T.FlagHearingImpaired:{if(!this.currentTrack)break;this.currentTrack.disposition.hearingImpaired=!!O(e,n)}break;case T.FlagVisualImpaired:{if(!this.currentTrack)break;this.currentTrack.disposition.visuallyImpaired=!!O(e,n)}break;case T.FlagCommentary:{if(!this.currentTrack)break;this.currentTrack.disposition.commentary=!!O(e,n)}break;case T.CodecID:{if(!this.currentTrack)break;this.currentTrack.codecId=tt(e,n)}break;case T.CodecPrivate:{if(!this.currentTrack)break;this.currentTrack.codecPrivate=F(e,n)}break;case T.DefaultDuration:{if(!this.currentTrack)break;this.currentTrack.defaultDuration=this.currentTrack.segment.timestampFactor*O(e,n)/1e9}break;case T.Name:{if(!this.currentTrack)break;this.currentTrack.name=$t(e,n)}break;case T.Language:{if(!this.currentTrack||this.currentTrack.languageCode!==G)break;this.currentTrack.languageCode=tt(e,n),zt(this.currentTrack.languageCode)||(this.currentTrack.languageCode=G)}break;case T.LanguageBCP47:{if(!this.currentTrack)break;let c=tt(e,n).split("-")[0];c?this.currentTrack.languageCode=c:this.currentTrack.languageCode=G}break;case T.Video:{if(this.currentTrack?.info?.type!=="video")break;this.readContiguousElements(e.slice(a,n))}break;case T.PixelWidth:{if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.width=O(e,n)}break;case T.PixelHeight:{if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.height=O(e,n)}break;case T.AlphaMode:{if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.alphaMode=O(e,n)===1}break;case T.Colour:{if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.colorSpace={},this.readContiguousElements(e.slice(a,n))}break;case T.MatrixCoefficients:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;let o=O(e,n),c=wi[o]??null;this.currentTrack.info.colorSpace.matrix=c}break;case T.Range:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;this.currentTrack.info.colorSpace.fullRange=O(e,n)===2}break;case T.TransferCharacteristics:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;let o=O(e,n),c=gi[o]??null;this.currentTrack.info.colorSpace.transfer=c}break;case T.Primaries:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;let o=O(e,n),c=pi[o]??null;this.currentTrack.info.colorSpace.primaries=c}break;case T.Projection:{if(this.currentTrack?.info?.type!=="video")break;this.readContiguousElements(e.slice(a,n))}break;case T.ProjectionPoseRoll:{if(this.currentTrack?.info?.type!=="video")break;let c=-Li(e,n);try{this.currentTrack.info.rotation=mi(c)}catch{}}break;case T.Audio:{if(this.currentTrack?.info?.type!=="audio")break;this.readContiguousElements(e.slice(a,n))}break;case T.SamplingFrequency:{if(this.currentTrack?.info?.type!=="audio")break;this.currentTrack.info.sampleRate=Li(e,n)}break;case T.Channels:{if(this.currentTrack?.info?.type!=="audio")break;this.currentTrack.info.numberOfChannels=O(e,n)}break;case T.BitDepth:{if(this.currentTrack?.info?.type!=="audio")break;this.currentTrack.info.bitDepth=O(e,n)}break;case T.CuePoint:{if(!this.currentSegment)break;this.readContiguousElements(e.slice(a,n)),this.currentCueTime=null}break;case T.CueTime:this.currentCueTime=O(e,n);break;case T.CueTrackPositions:{if(this.currentCueTime===null)break;m(this.currentSegment);let o={time:this.currentCueTime,trackId:-1,clusterPosition:-1};this.currentSegment.cuePoints.push(o),this.readContiguousElements(e.slice(a,n)),(o.trackId===-1||o.clusterPosition===-1)&&this.currentSegment.cuePoints.pop()}break;case T.CueTrack:{let o=this.currentSegment?.cuePoints[this.currentSegment.cuePoints.length-1];if(!o)break;o.trackId=O(e,n)}break;case T.CueClusterPosition:{let o=this.currentSegment?.cuePoints[this.currentSegment.cuePoints.length-1];if(!o)break;m(this.currentSegment),o.clusterPosition=this.currentSegment.dataStartPos+O(e,n)}break;case T.Timestamp:{if(!this.currentCluster)break;this.currentCluster.timestamp=O(e,n)}break;case T.SimpleBlock:{if(!this.currentCluster)break;let o=jt(e);if(o===null)break;let c=this.getTrackDataInCluster(this.currentCluster,o);if(!c)break;let l=Br(e),d=v(e),u=d>>1&3,h=!!(d&128);c.track.info?.type==="audio"&&c.track.info.codec&&(h=!0);let f=F(e,n-(e.filePos-a)),p=c.track.decodingInstructions.length>0;c.blocks.push({timestamp:l,duration:0,isKeyFrame:h,data:f,lacing:u,decoded:!p,mainAdditional:null})}break;case T.BlockGroup:{if(!this.currentCluster)break;this.readContiguousElements(e.slice(a,n)),this.currentBlock=null}break;case T.Block:{if(!this.currentCluster)break;let o=jt(e);if(o===null)break;let c=this.getTrackDataInCluster(this.currentCluster,o);if(!c)break;let l=Br(e),u=v(e)>>1&3,h=F(e,n-(e.filePos-a)),f=c.track.decodingInstructions.length>0;this.currentBlock={timestamp:l,duration:0,isKeyFrame:!0,data:h,lacing:u,decoded:!f,mainAdditional:null},c.blocks.push(this.currentBlock)}break;case T.BlockAdditions:this.readContiguousElements(e.slice(a,n));break;case T.BlockMore:{if(!this.currentBlock)break;this.currentBlockAdditional={addId:1,data:null},this.readContiguousElements(e.slice(a,n)),this.currentBlockAdditional.data&&this.currentBlockAdditional.addId===1&&(this.currentBlock.mainAdditional=this.currentBlockAdditional.data),this.currentBlockAdditional=null}break;case T.BlockAdditional:{if(!this.currentBlockAdditional)break;this.currentBlockAdditional.data=F(e,n)}break;case T.BlockAddID:{if(!this.currentBlockAdditional)break;this.currentBlockAdditional.addId=O(e,n)}break;case T.BlockDuration:{if(!this.currentBlock)break;this.currentBlock.duration=O(e,n)}break;case T.ReferenceBlock:{if(!this.currentBlock)break;this.currentBlock.isKeyFrame=!1}break;case T.Tag:this.currentTagTargetIsMovie=!0,this.readContiguousElements(e.slice(a,n));break;case T.Targets:this.readContiguousElements(e.slice(a,n));break;case T.TargetTypeValue:O(e,n)!==50&&(this.currentTagTargetIsMovie=!1);break;case T.TagTrackUID:case T.TagEditionUID:case T.TagChapterUID:case T.TagAttachmentUID:this.currentTagTargetIsMovie=!1;break;case T.SimpleTag:{if(!this.currentTagTargetIsMovie)break;this.currentSimpleTagName=null,this.readContiguousElements(e.slice(a,n))}break;case T.TagName:this.currentSimpleTagName=$t(e,n);break;case T.TagString:{if(!this.currentSimpleTagName)break;let o=$t(e,n);this.processTagValue(this.currentSimpleTagName,o)}break;case T.TagBinary:{if(!this.currentSimpleTagName)break;let o=F(e,n);this.processTagValue(this.currentSimpleTagName,o)}break;case T.AttachedFile:{if(!this.currentSegment)break;this.currentAttachedFile={fileUid:null,fileName:null,fileMediaType:null,fileData:null,fileDescription:null},this.readContiguousElements(e.slice(a,n));let o=this.currentSegment.metadataTags;if(this.currentAttachedFile.fileUid&&this.currentAttachedFile.fileData&&(o.raw??={},o.raw[this.currentAttachedFile.fileUid.toString()]=new Cr(this.currentAttachedFile.fileData,this.currentAttachedFile.fileMediaType??void 0,this.currentAttachedFile.fileName??void 0,this.currentAttachedFile.fileDescription??void 0)),this.currentAttachedFile.fileMediaType?.startsWith("image/")&&this.currentAttachedFile.fileData){let c=this.currentAttachedFile.fileName,l="unknown";if(c){let d=c.toLowerCase();d.startsWith("cover.")?l="coverFront":d.startsWith("back.")&&(l="coverBack")}o.images??=[],o.images.push({data:this.currentAttachedFile.fileData,mimeType:this.currentAttachedFile.fileMediaType,kind:l,name:this.currentAttachedFile.fileName??void 0,description:this.currentAttachedFile.fileDescription??void 0})}this.currentAttachedFile=null}break;case T.FileUID:{if(!this.currentAttachedFile)break;this.currentAttachedFile.fileUid=Ha(e,n)}break;case T.FileName:{if(!this.currentAttachedFile)break;this.currentAttachedFile.fileName=$t(e,n)}break;case T.FileMediaType:{if(!this.currentAttachedFile)break;this.currentAttachedFile.fileMediaType=tt(e,n)}break;case T.FileData:{if(!this.currentAttachedFile)break;this.currentAttachedFile.fileData=F(e,n)}break;case T.FileDescription:{if(!this.currentAttachedFile)break;this.currentAttachedFile.fileDescription=$t(e,n)}break;case T.ContentEncodings:{if(!this.currentTrack)break;this.readContiguousElements(e.slice(a,n)),this.currentTrack.decodingInstructions.sort((o,c)=>c.order-o.order)}break;case T.ContentEncoding:this.currentDecodingInstruction={order:0,scope:Hi.Block,data:null},this.readContiguousElements(e.slice(a,n)),this.currentDecodingInstruction.data&&this.currentTrack.decodingInstructions.push(this.currentDecodingInstruction),this.currentDecodingInstruction=null;break;case T.ContentEncodingOrder:{if(!this.currentDecodingInstruction)break;this.currentDecodingInstruction.order=O(e,n)}break;case T.ContentEncodingScope:{if(!this.currentDecodingInstruction)break;this.currentDecodingInstruction.scope=O(e,n)}break;case T.ContentCompression:{if(!this.currentDecodingInstruction)break;this.currentDecodingInstruction.data={type:"decompress",algorithm:Or.Zlib,settings:null},this.readContiguousElements(e.slice(a,n))}break;case T.ContentCompAlgo:{if(this.currentDecodingInstruction?.data?.type!=="decompress")break;this.currentDecodingInstruction.data.algorithm=O(e,n)}break;case T.ContentCompSettings:{if(this.currentDecodingInstruction?.data?.type!=="decompress")break;this.currentDecodingInstruction.data.settings=F(e,n)}break;case T.ContentEncryption:{if(!this.currentDecodingInstruction)break;this.currentDecodingInstruction.data={type:"decrypt"}}break}return e.filePos=a+n,!0}decodeBlockData(e,r){m(e.decodingInstructions.length>0);let i=r;for(let s of e.decodingInstructions)switch(m(s.data),s.data.type){case"decompress":switch(s.data.algorithm){case Or.HeaderStripping:if(s.data.settings&&s.data.settings.length>0){let n=s.data.settings,a=new Uint8Array(n.length+i.length);a.set(n,0),a.set(i,n.length),i=a}break;default:}break;default:}return i}processTagValue(e,r){if(!this.currentSegment?.metadataTags)return;let i=this.currentSegment.metadataTags;if(i.raw??={},i.raw[e]??=r,typeof r=="string")switch(e.toLowerCase()){case"title":i.title??=r;break;case"description":i.description??=r;break;case"artist":i.artist??=r;break;case"album":i.album??=r;break;case"album_artist":i.albumArtist??=r;break;case"genre":i.genre??=r;break;case"comment":i.comment??=r;break;case"lyrics":i.lyrics??=r;break;case"date":{let s=new Date(r);Number.isNaN(s.getTime())||(i.date??=s)}break;case"track_number":case"part_number":{let s=r.split("/"),n=Number.parseInt(s[0],10),a=s[1]&&Number.parseInt(s[1],10);Number.isInteger(n)&&n>0&&(i.trackNumber??=n),a&&Number.isInteger(a)&&a>0&&(i.tracksTotal??=a)}break;case"disc_number":case"disc":{let s=r.split("/"),n=Number.parseInt(s[0],10),a=s[1]&&Number.parseInt(s[1],10);Number.isInteger(n)&&n>0&&(i.discNumber??=n),a&&Number.isInteger(a)&&a>0&&(i.discsTotal??=a)}break}}},ji=class{constructor(e){this.internalTrack=e,this.packetToClusterLocation=new WeakMap}getId(){return this.internalTrack.id}getCodec(){throw new Error("Not implemented on base class.")}getInternalCodecId(){return this.internalTrack.codecId}async computeDuration(){let e=await this.getPacket(1/0,{metadataOnly:!0});return(e?.timestamp??0)+(e?.duration??0)}getName(){return this.internalTrack.name}getLanguageCode(){return this.internalTrack.languageCode}async getFirstTimestamp(){return(await this.getFirstPacket({metadataOnly:!0}))?.timestamp??0}getTimeResolution(){return this.internalTrack.segment.timestampFactor}getDisposition(){return this.internalTrack.disposition}async getFirstPacket(e){return this.performClusterLookup(null,r=>r.trackData.get(this.internalTrack.id)?{blockIndex:0,correctBlockFound:!0}:{blockIndex:-1,correctBlockFound:!1},-1/0,1/0,e)}intoTimescale(e){return gt(e*this.internalTrack.segment.timestampFactor)}async getPacket(e,r){let i=this.intoTimescale(e);return this.performClusterLookup(null,s=>{let n=s.trackData.get(this.internalTrack.id);if(!n)return{blockIndex:-1,correctBlockFound:!1};let a=M(n.presentationTimestamps,i,l=>l.timestamp),o=a!==-1?n.presentationTimestamps[a].blockIndex:-1,c=a!==-1&&i<n.endTimestamp;return{blockIndex:o,correctBlockFound:c}},i,i,r)}async getNextPacket(e,r){let i=this.packetToClusterLocation.get(e);if(i===void 0)throw new Error("Packet was not created from this track.");return this.performClusterLookup(i.cluster,s=>{if(s===i.cluster){let n=s.trackData.get(this.internalTrack.id);if(i.blockIndex+1<n.blocks.length)return{blockIndex:i.blockIndex+1,correctBlockFound:!0}}else if(s.trackData.get(this.internalTrack.id))return{blockIndex:0,correctBlockFound:!0};return{blockIndex:-1,correctBlockFound:!1}},-1/0,1/0,r)}async getKeyPacket(e,r){let i=this.intoTimescale(e);return this.performClusterLookup(null,s=>{let n=s.trackData.get(this.internalTrack.id);if(!n)return{blockIndex:-1,correctBlockFound:!1};let a=bi(n.presentationTimestamps,l=>n.blocks[l.blockIndex].isKeyFrame&&l.timestamp<=i),o=a!==-1?n.presentationTimestamps[a].blockIndex:-1,c=a!==-1&&i<n.endTimestamp;return{blockIndex:o,correctBlockFound:c}},i,i,r)}async getNextKeyPacket(e,r){let i=this.packetToClusterLocation.get(e);if(i===void 0)throw new Error("Packet was not created from this track.");return this.performClusterLookup(i.cluster,s=>{if(s===i.cluster){let a=s.trackData.get(this.internalTrack.id).blocks.findIndex((o,c)=>o.isKeyFrame&&c>i.blockIndex);if(a!==-1)return{blockIndex:a,correctBlockFound:!0}}else{let n=s.trackData.get(this.internalTrack.id);if(n&&n.firstKeyFrameTimestamp!==null){let a=n.blocks.findIndex(o=>o.isKeyFrame);return m(a!==-1),{blockIndex:a,correctBlockFound:!0}}}return{blockIndex:-1,correctBlockFound:!1}},-1/0,1/0,r)}async fetchPacketInCluster(e,r,i){if(r===-1)return null;let n=e.trackData.get(this.internalTrack.id).blocks[r];m(n),n.decoded||(n.data=this.internalTrack.demuxer.decodeBlockData(this.internalTrack,n.data),n.decoded=!0);let a=i.metadataOnly?Y:n.data,o=n.timestamp/this.internalTrack.segment.timestampFactor,c=n.duration/this.internalTrack.segment.timestampFactor,l={};n.mainAdditional&&this.internalTrack.info?.type==="video"&&this.internalTrack.info.alphaMode&&(l.alpha=i.metadataOnly?Y:n.mainAdditional,l.alphaByteLength=n.mainAdditional.byteLength);let d=new L(a,n.isKeyFrame?"key":"delta",o,c,e.dataStartPos+r,n.data.byteLength,l);return this.packetToClusterLocation.set(d,{cluster:e,blockIndex:r}),d}async performClusterLookup(e,r,i,s,n){let{demuxer:a,segment:o}=this.internalTrack,c=null,l=null,d=-1;if(e){let{blockIndex:b,correctBlockFound:k}=r(e);if(k)return this.fetchPacketInCluster(e,b,n);b!==-1&&(l=e,d=b)}let u=M(this.internalTrack.cuePoints,i,b=>b.time),h=u!==-1?this.internalTrack.cuePoints[u]:null,f=M(this.internalTrack.clusterPositionCache,i,b=>b.startTimestamp),p=f!==-1?this.internalTrack.clusterPositionCache[f]:null,g=Math.max(h?.clusterPosition??0,p?.elementStartPos??0)||null,w;for(e?g===null||e.elementStartPos>=g?(w=e.elementEndPos,c=e):w=g:w=g??o.clusterSeekStartPos;o.elementEndPos===null||w<=o.elementEndPos-pe;){if(c){let E=c.trackData.get(this.internalTrack.id);if(E&&E.startTimestamp>s)break}let b=a.reader.requestSliceRange(w,pe,xe);if(b instanceof Promise&&(b=await b),!b)break;let k=w,y=Se(b);if(!y||!qt.includes(y.id)&&y.id!==T.Void){let E=await Ys(a.reader,k,qt,Math.min(o.elementEndPos??1/0,k+$a));if(E){w=E;continue}else break}let x=y.id,P=y.size,S=b.filePos;if(x===T.Cluster){c=await a.readCluster(k,o),P=c.elementEndPos-S;let{blockIndex:E,correctBlockFound:D}=r(c);if(D)return this.fetchPacketInCluster(c,E,n);E!==-1&&(l=c,d=E)}P===null&&(m(x!==T.Cluster),P=(await Wi(a.reader,S,Dr,o.elementEndPos)).pos-S);let A=S+P;if(o.elementEndPos===null){let E=a.reader.requestSliceRange(A,pe,xe);if(E instanceof Promise&&(E=await E),!E)break;if(Vi(E)===T.Segment){o.elementEndPos=A;break}}w=A}if(h&&(!l||l.elementStartPos<h.clusterPosition)){let b=this.internalTrack.cuePoints[u-1];m(!b||b.time<h.time);let k=b?.time??-1/0;return this.performClusterLookup(null,r,k,s,n)}return l?this.fetchPacketInCluster(l,d,n):null}},Js=class extends ji{constructor(e){super(e),this.decoderConfigPromise=null,this.internalTrack=e}getCodec(){return this.internalTrack.info.codec}getCodedWidth(){return this.internalTrack.info.width}getCodedHeight(){return this.internalTrack.info.height}getRotation(){return this.internalTrack.info.rotation}async getColorSpace(){return{primaries:this.internalTrack.info.colorSpace?.primaries,transfer:this.internalTrack.info.colorSpace?.transfer,matrix:this.internalTrack.info.colorSpace?.matrix,fullRange:this.internalTrack.info.colorSpace?.fullRange}}async canBeTransparent(){return this.internalTrack.info.alphaMode}async getDecoderConfig(){return this.internalTrack.info.codec?this.decoderConfigPromise??=(async()=>{let e=null;return(this.internalTrack.info.codec==="vp9"||this.internalTrack.info.codec==="av1"||this.internalTrack.info.codec==="avc"&&!this.internalTrack.info.codecDescription||this.internalTrack.info.codec==="hevc"&&!this.internalTrack.info.codecDescription)&&(e=await this.getFirstPacket({})),{codec:Ti({width:this.internalTrack.info.width,height:this.internalTrack.info.height,codec:this.internalTrack.info.codec,codecDescription:this.internalTrack.info.codecDescription,colorSpace:this.internalTrack.info.colorSpace,avcType:1,avcCodecInfo:this.internalTrack.info.codec==="avc"&&e?Pi(e.data):null,hevcCodecInfo:this.internalTrack.info.codec==="hevc"&&e?Ei(e.data):null,vp9CodecInfo:this.internalTrack.info.codec==="vp9"&&e?Ii(e.data):null,av1CodecInfo:this.internalTrack.info.codec==="av1"&&e?vi(e.data):null}),codedWidth:this.internalTrack.info.width,codedHeight:this.internalTrack.info.height,description:this.internalTrack.info.codecDescription??void 0,colorSpace:this.internalTrack.info.colorSpace??void 0}})():null}},en=class extends ji{constructor(e){super(e),this.decoderConfig=null,this.internalTrack=e}getCodec(){return this.internalTrack.info.codec}getNumberOfChannels(){return this.internalTrack.info.numberOfChannels}getSampleRate(){return this.internalTrack.info.sampleRate}async getDecoderConfig(){return this.internalTrack.info.codec?this.decoderConfig??={codec:xi({codec:this.internalTrack.info.codec,codecDescription:this.internalTrack.info.codecDescription,aacCodecInfo:this.internalTrack.info.aacCodecInfo}),numberOfChannels:this.internalTrack.info.numberOfChannels,sampleRate:this.internalTrack.info.sampleRate,description:this.internalTrack.info.codecDescription??void 0}:null}};var Oc=[44100,48e3,32e3],zc=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,32,40,48,56,64,80,96,112,128,160,192,224,256,320,-1,-1,32,48,56,64,80,96,112,128,160,192,224,256,320,384,-1,-1,32,64,96,128,160,192,224,256,288,320,352,384,416,448,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,16,24,32,40,48,56,64,80,96,112,128,144,160,-1,-1,8,16,24,32,40,48,56,64,80,96,112,128,144,160,-1,-1,32,48,56,64,80,96,112,128,144,160,176,192,224,256,-1],Qa=1483304551,Ga=1231971951,Mc=(t,e,r,i,s)=>e===0?0:e===1?Math.floor(144*r/(i<<t))+s:e===2?Math.floor(144*r/i)+s:(Math.floor(12*r/i)+s)*4,Ka=(t,e)=>t===3?e===3?21:36:e===3?13:21,Xa=(t,e)=>{let r=t>>>24,i=t>>>16&255,s=t>>>8&255,n=t&255;if(r!==255&&i!==255&&s!==255&&n!==255)return{header:null,bytesAdvanced:4};if(r!==255)return{header:null,bytesAdvanced:1};if((i&224)!==224)return{header:null,bytesAdvanced:1};let a=0,o=0;i&16?a=i&8?0:1:(a=1,o=1);let c=i>>3&3,l=i>>1&3,d=s>>4&15,u=(s>>2&3)%3,h=s>>1&1,f=n>>6&3,p=n>>4&3,g=n>>3&1,w=n>>2&1,b=n&3,k=zc[a*16*4+l*16+d];if(k===-1)return{header:null,bytesAdvanced:1};let y=k*1e3,x=Oc[u]>>a+o,P=Mc(a,l,y,x,h);if(e!==null&&e<P)return{header:null,bytesAdvanced:1};let S;return c===3?S=l===3?384:1152:l===3?S=384:l===2?S=1152:S=576,{header:{totalSize:P,mpegVersionId:c,layer:l,bitrate:y,frequencyIndex:u,sampleRate:x,channel:f,modeExtension:p,copyright:g,original:w,emphasis:b,audioSamplesInFrame:S},bytesAdvanced:1}};var $i=t=>{let e=2130706432,r=0;for(;e!==0;)r>>=1,r|=t&e,e>>=8;return r};var Kt;(function(t){t[t.Unsynchronisation=128]="Unsynchronisation",t[t.ExtendedHeader=64]="ExtendedHeader",t[t.ExperimentalIndicator=32]="ExperimentalIndicator",t[t.Footer=16]="Footer"})(Kt||(Kt={}));var Xt;(function(t){t[t.ISO_8859_1=0]="ISO_8859_1",t[t.UTF_16_WITH_BOM=1]="UTF_16_WITH_BOM",t[t.UTF_16_BE_NO_BOM=2]="UTF_16_BE_NO_BOM",t[t.UTF_8=3]="UTF_8"})(Xt||(Xt={}));var zr=128,Zt=10,Yt=["Blues","Classic rock","Country","Dance","Disco","Funk","Grunge","Hip-hop","Jazz","Metal","New age","Oldies","Other","Pop","Rhythm and blues","Rap","Reggae","Rock","Techno","Industrial","Alternative","Ska","Death metal","Pranks","Soundtrack","Euro-techno","Ambient","Trip-hop","Vocal","Jazz & funk","Fusion","Trance","Classical","Instrumental","Acid","House","Game","Sound clip","Gospel","Noise","Alternative rock","Bass","Soul","Punk","Space","Meditative","Instrumental pop","Instrumental rock","Ethnic","Gothic","Darkwave","Techno-industrial","Electronic","Pop-folk","Eurodance","Dream","Southern rock","Comedy","Cult","Gangsta","Top 40","Christian rap","Pop/funk","Jungle music","Native US","Cabaret","New wave","Psychedelic","Rave","Showtunes","Trailer","Lo-fi","Tribal","Acid punk","Acid jazz","Polka","Retro","Musical","Rock 'n' roll","Hard rock","Folk","Folk rock","National folk","Swing","Fast fusion","Bebop","Latin","Revival","Celtic","Bluegrass","Avantgarde","Gothic rock","Progressive rock","Psychedelic rock","Symphonic rock","Slow rock","Big band","Chorus","Easy listening","Acoustic","Humour","Speech","Chanson","Opera","Chamber music","Sonata","Symphony","Booty bass","Primus","Porn groove","Satire","Slow jam","Club","Tango","Samba","Folklore","Ballad","Power ballad","Rhythmic Soul","Freestyle","Duet","Punk rock","Drum solo","A cappella","Euro-house","Dance hall","Goa music","Drum & bass","Club-house","Hardcore techno","Terror","Indie","Britpop","Negerpunk","Polsk punk","Beat","Christian gangsta rap","Heavy metal","Black metal","Crossover","Contemporary Christian","Christian rock","Merengue","Salsa","Thrash metal","Anime","Jpop","Synthpop","Christmas","Art rock","Baroque","Bhangra","Big beat","Breakbeat","Chillout","Downtempo","Dub","EBM","Eclectic","Electro","Electroclash","Emo","Experimental","Garage","Global","IDM","Illbient","Industro-Goth","Jam Band","Krautrock","Leftfield","Lounge","Math rock","New romantic","Nu-breakz","Post-punk","Post-rock","Psytrance","Shoegaze","Space rock","Trop rock","World music","Neoclassical","Audiobook","Audio theatre","Neue Deutsche Welle","Podcast","Indie rock","G-Funk","Dubstep","Garage rock","Psybient"],Ya=(t,e)=>{let r=t.filePos;e.raw??={},e.raw.TAG??=F(t,zr-3),t.filePos=r;let i=Gt(t,30);i&&(e.title??=i);let s=Gt(t,30);s&&(e.artist??=s);let n=Gt(t,30);n&&(e.album??=n);let a=Gt(t,4),o=Number.parseInt(a,10);Number.isInteger(o)&&o>0&&(e.date??=new Date(o,0,1));let c=F(t,30),l;if(c[28]===0&&c[29]!==0){let u=c[29];u>0&&(e.trackNumber??=u),t.skip(-30),l=Gt(t,28),t.skip(2)}else t.skip(-30),l=Gt(t,30);l&&(e.comment??=l);let d=v(t);d<Yt.length&&(e.genre??=Yt[d])},Gt=(t,e)=>{let r=F(t,e),i=wt(r.indexOf(0),r.length),s=r.subarray(0,i),n="";for(let a=0;a<s.length;a++)n+=String.fromCharCode(s[a]);return n.trimEnd()},Pt=t=>{let e=t.filePos,r=j(t,3),i=v(t),s=v(t),n=v(t),a=_(t);if(r!=="ID3"||i===255||s===255||(a&2155905152)!==0)return t.filePos=e,null;let o=$i(a);return{majorVersion:i,revision:s,flags:n,size:o}},Qi=(t,e,r)=>{if(![2,3,4].includes(e.majorVersion)){console.warn(`Unsupported ID3v2 major version: ${e.majorVersion}`);return}let i=F(t,e.size),s=new tn(e,i);if(e.flags&Kt.Footer&&s.removeFooter(),e.flags&Kt.Unsynchronisation&&e.majorVersion===3&&s.ununsynchronizeAll(),e.flags&Kt.ExtendedHeader){let n=s.readU32();e.majorVersion===3?s.pos+=n:s.pos+=n-4}for(;s.pos<=s.bytes.length-s.frameHeaderSize();){let n=s.readId3V2Frame();if(!n)break;let a=s.pos,o=s.pos+n.size,c=!1,l=!1,d=!1;if(e.majorVersion===3?(c=!!(n.flags&64),l=!!(n.flags&128)):e.majorVersion===4&&(c=!!(n.flags&4),l=!!(n.flags&8),d=!!(n.flags&2)||!!(e.flags&Kt.Unsynchronisation)),c){console.warn(`Skipping encrypted ID3v2 frame ${n.id}`),s.pos=o;continue}if(l){console.warn(`Skipping compressed ID3v2 frame ${n.id}`),s.pos=o;continue}switch(d&&s.ununsynchronizeRegion(s.pos,o),r.raw??={},n.id[0]==="T"?r.raw[n.id]??=s.readId3V2EncodingAndText(o):r.raw[n.id]??=s.readBytes(n.size),s.pos=a,n.id){case"TIT2":case"TT2":r.title??=s.readId3V2EncodingAndText(o);break;case"TIT3":case"TT3":r.description??=s.readId3V2EncodingAndText(o);break;case"TPE1":case"TP1":r.artist??=s.readId3V2EncodingAndText(o);break;case"TALB":case"TAL":r.album??=s.readId3V2EncodingAndText(o);break;case"TPE2":case"TP2":r.albumArtist??=s.readId3V2EncodingAndText(o);break;case"TRCK":case"TRK":{let h=s.readId3V2EncodingAndText(o).split("/"),f=Number.parseInt(h[0],10),p=h[1]&&Number.parseInt(h[1],10);Number.isInteger(f)&&f>0&&(r.trackNumber??=f),p&&Number.isInteger(p)&&p>0&&(r.tracksTotal??=p)}break;case"TPOS":case"TPA":{let h=s.readId3V2EncodingAndText(o).split("/"),f=Number.parseInt(h[0],10),p=h[1]&&Number.parseInt(h[1],10);Number.isInteger(f)&&f>0&&(r.discNumber??=f),p&&Number.isInteger(p)&&p>0&&(r.discsTotal??=p)}break;case"TCON":case"TCO":{let u=s.readId3V2EncodingAndText(o),h=/^\((\d+)\)/.exec(u);if(h){let f=Number.parseInt(h[1]);if(Yt[f]!==void 0){r.genre??=Yt[f];break}}if(h=/^\d+$/.exec(u),h){let f=Number.parseInt(h[0]);if(Yt[f]!==void 0){r.genre??=Yt[f];break}}r.genre??=u}break;case"TDRC":case"TDAT":{let u=s.readId3V2EncodingAndText(o),h=new Date(u);Number.isNaN(h.getTime())||(r.date??=h)}break;case"TYER":case"TYE":{let u=s.readId3V2EncodingAndText(o),h=Number.parseInt(u,10);Number.isInteger(h)&&(r.date??=new Date(h,0,1))}break;case"USLT":case"ULT":{let u=s.readU8();s.pos+=3,s.readId3V2Text(u,o),r.lyrics??=s.readId3V2Text(u,o)}break;case"COMM":case"COM":{let u=s.readU8();s.pos+=3,s.readId3V2Text(u,o),r.comment??=s.readId3V2Text(u,o)}break;case"APIC":case"PIC":{let u=s.readId3V2TextEncoding(),h;if(e.majorVersion===2){let w=s.readAscii(3);h=w==="PNG"?"image/png":w==="JPG"?"image/jpeg":"image/*"}else h=s.readId3V2Text(u,o);let f=s.readU8(),p=s.readId3V2Text(u,o).trimEnd(),g=o-s.pos;if(g>=0){let w=s.readBytes(g);r.images||(r.images=[]),r.images.push({data:w,mimeType:h,kind:f===3?"coverFront":f===4?"coverBack":"unknown",description:p})}}break;default:s.pos+=n.size;break}s.pos=o}},tn=class{constructor(e,r){this.header=e,this.bytes=r,this.pos=0,this.view=new DataView(r.buffer,r.byteOffset,r.byteLength)}frameHeaderSize(){return this.header.majorVersion===2?6:10}ununsynchronizeAll(){let e=[];for(let r=0;r<this.bytes.length;r++){let i=this.bytes[r];e.push(i),i===255&&r!==this.bytes.length-1&&this.bytes[r]===0&&r++}this.bytes=new Uint8Array(e),this.view=new DataView(this.bytes.buffer)}ununsynchronizeRegion(e,r){let i=[];for(let a=e;a<r;a++){let o=this.bytes[a];i.push(o),o===255&&a!==r-1&&this.bytes[a+1]===0&&a++}let s=this.bytes.subarray(0,e),n=this.bytes.subarray(r);this.bytes=new Uint8Array(s.length+i.length+n.length),this.bytes.set(s,0),this.bytes.set(i,s.length),this.bytes.set(n,s.length+i.length),this.view=new DataView(this.bytes.buffer)}removeFooter(){this.bytes=this.bytes.subarray(0,this.bytes.length-Zt),this.view=new DataView(this.bytes.buffer)}readBytes(e){let r=this.bytes.subarray(this.pos,this.pos+e);return this.pos+=e,r}readU8(){let e=this.view.getUint8(this.pos);return this.pos+=1,e}readU16(){let e=this.view.getUint16(this.pos,!1);return this.pos+=2,e}readU24(){let e=this.view.getUint16(this.pos,!1),r=this.view.getUint8(this.pos+1);return this.pos+=3,e*256+r}readU32(){let e=this.view.getUint32(this.pos,!1);return this.pos+=4,e}readAscii(e){let r="";for(let i=0;i<e;i++)r+=String.fromCharCode(this.view.getUint8(this.pos+i));return this.pos+=e,r}readId3V2Frame(){if(this.header.majorVersion===2){let e=this.readAscii(3);if(e==="\0\0\0")return null;let r=this.readU24();return{id:e,size:r,flags:0}}else{let e=this.readAscii(4);if(e==="\0\0\0\0")return null;let r=this.readU32(),i=this.header.majorVersion===4?$i(r):r,s=this.readU16(),n=this.pos,a=o=>{let c=this.pos+o;if(c>this.bytes.length)return!1;if(c<=this.bytes.length-this.frameHeaderSize()){this.pos+=o;let l=this.readAscii(4);if(l!=="\0\0\0\0"&&!/[0-9A-Z]{4}/.test(l))return!1}return!0};if(!a(i)){let o=this.header.majorVersion===4?r:$i(r);a(o)&&(i=o)}return this.pos=n,{id:e,size:i,flags:s}}}readId3V2TextEncoding(){let e=this.readU8();if(e>3)throw new Error(`Unsupported text encoding: ${e}`);return e}readId3V2Text(e,r){let i=this.pos,s=this.readBytes(r-this.pos);switch(e){case Xt.ISO_8859_1:{let n="";for(let a=0;a<s.length;a++){let o=s[a];if(o===0){this.pos=i+a+1;break}n+=String.fromCharCode(o)}return n}case Xt.UTF_16_WITH_BOM:if(s[0]===255&&s[1]===254){let n=new TextDecoder("utf-16le"),a=wt(s.findIndex((o,c)=>o===0&&s[c+1]===0&&c%2===0),s.length);return this.pos=i+Math.min(a+2,s.length),n.decode(s.subarray(2,a))}else if(s[0]===254&&s[1]===255){let n=new TextDecoder("utf-16be"),a=wt(s.findIndex((o,c)=>o===0&&s[c+1]===0&&c%2===0),s.length);return this.pos=i+Math.min(a+2,s.length),n.decode(s.subarray(2,a))}else{let n=wt(s.findIndex(a=>a===0),s.length);return this.pos=i+Math.min(n+1,s.length),ie.decode(s.subarray(0,n))}case Xt.UTF_16_BE_NO_BOM:{let n=new TextDecoder("utf-16be"),a=wt(s.findIndex((o,c)=>o===0&&s[c+1]===0&&c%2===0),s.length);return this.pos=i+Math.min(a+2,s.length),n.decode(s.subarray(0,a))}case Xt.UTF_8:{let n=wt(s.findIndex(a=>a===0),s.length);return this.pos=i+Math.min(n+1,s.length),ie.decode(s.subarray(0,n))}}}readId3V2EncodingAndText(e){if(this.pos>=e)return"";let r=this.readId3V2TextEncoding();return this.readId3V2Text(r,e)}};var Mr=async(t,e,r)=>{let i=e;for(;r===null||i<r;){let s=t.requestSlice(i,4);if(s instanceof Promise&&(s=await s),!s)break;let n=_(s),a=Xa(n,t.fileSize!==null?t.fileSize-i:null);if(a.header)return{header:a.header,startPos:i};i+=a.bytesAdvanced}return null};var Gi=class extends ae{constructor(e){super(e),this.metadataPromise=null,this.firstFrameHeader=null,this.loadedSamples=[],this.metadataTags=null,this.tracks=[],this.readingMutex=new le,this.lastSampleLoaded=!1,this.lastLoadedPos=0,this.nextTimestampInSamples=0,this.reader=e._reader}async readMetadata(){return this.metadataPromise??=(async()=>{for(;!this.firstFrameHeader&&!this.lastSampleLoaded;)await this.advanceReader();if(!this.firstFrameHeader)throw new Error("No valid MP3 frame found.");this.tracks=[new J(this.input,new rn(this))]})()}async advanceReader(){if(this.lastLoadedPos===0)for(;;){let o=this.reader.requestSlice(this.lastLoadedPos,Zt);if(o instanceof Promise&&(o=await o),!o){this.lastSampleLoaded=!0;return}let c=Pt(o);if(!c)break;this.lastLoadedPos=o.filePos+c.size}let e=await Mr(this.reader,this.lastLoadedPos,this.reader.fileSize);if(!e){this.lastSampleLoaded=!0;return}let r=e.header;this.lastLoadedPos=e.startPos+r.totalSize-1;let i=Ka(r.mpegVersionId,r.channel),s=this.reader.requestSlice(e.startPos+i,4);if(s instanceof Promise&&(s=await s),s){let o=_(s);if(o===Qa||o===Ga)return}this.firstFrameHeader||(this.firstFrameHeader=r),r.sampleRate!==this.firstFrameHeader.sampleRate&&console.warn(`MP3 changed sample rate mid-file: ${this.firstFrameHeader.sampleRate} Hz to ${r.sampleRate} Hz. Might be a bug, so please report this file.`);let n=r.audioSamplesInFrame/this.firstFrameHeader.sampleRate,a={timestamp:this.nextTimestampInSamples/this.firstFrameHeader.sampleRate,duration:n,dataStart:e.startPos,dataSize:r.totalSize};this.loadedSamples.push(a),this.nextTimestampInSamples+=r.audioSamplesInFrame}async getMimeType(){return"audio/mpeg"}async getTracks(){return await this.readMetadata(),this.tracks}async computeDuration(){await this.readMetadata();let e=this.tracks[0];return m(e),e.computeDuration()}async getMetadataTags(){let e=await this.readingMutex.acquire();try{if(await this.readMetadata(),this.metadataTags)return this.metadataTags;this.metadataTags={};let r=0,i=!1;for(;;){let s=this.reader.requestSlice(r,Zt);if(s instanceof Promise&&(s=await s),!s)break;let n=Pt(s);if(!n)break;i=!0;let a=this.reader.requestSlice(s.filePos,n.size);if(a instanceof Promise&&(a=await a),!a)break;Qi(a,n,this.metadataTags),r=s.filePos+n.size}if(!i&&this.reader.fileSize!==null&&this.reader.fileSize>=zr){let s=this.reader.requestSlice(this.reader.fileSize-zr,zr);s instanceof Promise&&(s=await s),m(s),j(s,3)==="TAG"&&Ya(s,this.metadataTags)}return this.metadataTags}finally{e()}}},rn=class{constructor(e){this.demuxer=e}getId(){return 1}async getFirstTimestamp(){return 0}getTimeResolution(){return m(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.sampleRate/this.demuxer.firstFrameHeader.audioSamplesInFrame}async computeDuration(){let e=await this.getPacket(1/0,{metadataOnly:!0});return(e?.timestamp??0)+(e?.duration??0)}getName(){return null}getLanguageCode(){return G}getCodec(){return"mp3"}getInternalCodecId(){return null}getNumberOfChannels(){return m(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.channel===3?1:2}getSampleRate(){return m(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.sampleRate}getDisposition(){return{...de}}async getDecoderConfig(){return m(this.demuxer.firstFrameHeader),{codec:"mp3",numberOfChannels:this.demuxer.firstFrameHeader.channel===3?1:2,sampleRate:this.demuxer.firstFrameHeader.sampleRate}}async getPacketAtIndex(e,r){if(e===-1)return null;let i=this.demuxer.loadedSamples[e];if(!i)return null;let s;if(r.metadataOnly)s=Y;else{let n=this.demuxer.reader.requestSlice(i.dataStart,i.dataSize);if(n instanceof Promise&&(n=await n),!n)return null;s=F(n,i.dataSize)}return new L(s,"key",i.timestamp,i.duration,e,i.dataSize)}getFirstPacket(e){return this.getPacketAtIndex(0,e)}async getNextPacket(e,r){let i=await this.demuxer.readingMutex.acquire();try{let s=mt(this.demuxer.loadedSamples,e.timestamp,a=>a.timestamp);if(s===-1)throw new Error("Packet was not created from this track.");let n=s+1;for(;n>=this.demuxer.loadedSamples.length&&!this.demuxer.lastSampleLoaded;)await this.demuxer.advanceReader();return this.getPacketAtIndex(n,r)}finally{i()}}async getPacket(e,r){let i=await this.demuxer.readingMutex.acquire();try{for(;;){let s=M(this.demuxer.loadedSamples,e,n=>n.timestamp);if(s===-1&&this.demuxer.loadedSamples.length>0)return null;if(this.demuxer.lastSampleLoaded)return this.getPacketAtIndex(s,r);if(s>=0&&s+1<this.demuxer.loadedSamples.length)return this.getPacketAtIndex(s,r);await this.demuxer.advanceReader()}}finally{i()}}getKeyPacket(e,r){return this.getPacket(e,r)}getNextKeyPacket(e,r){return this.getNextPacket(e,r)}};var sn=1399285583,Uc=79764919,Ja=new Uint32Array(256);for(let t=0;t<256;t++){let e=t<<24;for(let r=0;r<8;r++)e=e&2147483648?e<<1^Uc:e<<1;Ja[t]=e>>>0&4294967295}var eo=t=>{let e=V(t),r=e.getUint32(22,!0);e.setUint32(22,0,!0);let i=0;for(let s=0;s<t.length;s++){let n=t[s];i=(i<<8^Ja[i>>>24^n])>>>0}return e.setUint32(22,r,!0),i},to=(t,e,r)=>{let i=0,s=null;if(t.length>0)if(e.codec==="vorbis"){m(e.vorbisInfo);let n=e.vorbisInfo.modeBlockflags.length,o=(1<<Xn(n-1))-1<<1,c=(t[0]&o)>>1;if(c>=e.vorbisInfo.modeBlockflags.length)throw new Error("Invalid mode number.");let l=r,d=e.vorbisInfo.modeBlockflags[c];if(s=e.vorbisInfo.blocksizes[d],d===1){let u=(o|1)+1,h=t[0]&u?1:0;l=e.vorbisInfo.blocksizes[h]}i=l!==null?l+s>>2:0}else e.codec==="opus"&&(i=Ca(t).durationInSamples);return{durationInSamples:i,vorbisBlockSize:s}},ro=t=>{let e="audio/ogg";if(t.codecStrings){let r=[...new Set(t.codecStrings)];e+=`; codecs="${r.join(", ")}"`}return e};var rt=27,It=282,io=It+65025,Jt=t=>{let e=t.filePos;if(Et(t)!==sn)return null;t.skip(1);let i=v(t),s=no(t),n=Et(t),a=Et(t),o=Et(t),c=v(t),l=new Uint8Array(c);for(let f=0;f<c;f++)l[f]=v(t);let d=27+c,u=l.reduce((f,p)=>f+p,0),h=d+u;return{headerStartPos:e,totalSize:h,dataStartPos:e+d,dataSize:u,headerType:i,granulePosition:s,serialNumber:n,sequenceNumber:a,checksum:o,lacingValues:l}},so=(t,e)=>{for(;t.filePos<e-3;){let r=Et(t),i=r&255,s=r>>>8&255,n=r>>>16&255,a=r>>>24&255,o=79;if(!(i!==o&&s!==o&&n!==o&&a!==o)){if(t.skip(-4),r===sn)return!0;t.skip(1)}}return!1};var Ki=class extends ae{constructor(e){super(e),this.metadataPromise=null,this.bitstreams=[],this.tracks=[],this.metadataTags={},this.reader=e._reader}async readMetadata(){return this.metadataPromise??=(async()=>{let e=0;for(;;){let r=this.reader.requestSliceRange(e,rt,It);if(r instanceof Promise&&(r=await r),!r)break;let i=Jt(r);if(!i||!!!(i.headerType&2))break;this.bitstreams.push({serialNumber:i.serialNumber,bosPage:i,description:null,numberOfChannels:-1,sampleRate:-1,codecInfo:{codec:null,vorbisInfo:null,opusInfo:null},lastMetadataPacket:null}),e=i.headerStartPos+i.totalSize}for(let r of this.bitstreams){let i=await this.readPacket(r.bosPage,0);i&&(i.data.byteLength>=7&&i.data[0]===1&&i.data[1]===118&&i.data[2]===111&&i.data[3]===114&&i.data[4]===98&&i.data[5]===105&&i.data[6]===115?await this.readVorbisMetadata(i,r):i.data.byteLength>=8&&i.data[0]===79&&i.data[1]===112&&i.data[2]===117&&i.data[3]===115&&i.data[4]===72&&i.data[5]===101&&i.data[6]===97&&i.data[7]===100&&await this.readOpusMetadata(i,r),r.codecInfo.codec!==null&&this.tracks.push(new J(this.input,new nn(r,this))))}})()}async readVorbisMetadata(e,r){let i=await this.findNextPacketStart(e);if(!i)return;let s=await this.readPacket(i.startPage,i.startSegmentIndex);if(!s||(i=await this.findNextPacketStart(s),!i))return;let n=await this.readPacket(i.startPage,i.startSegmentIndex);if(!n||s.data[0]!==3||n.data[0]!==5)return;let a=[],o=u=>{for(;a.push(Math.min(255,u)),!(u<255);)u-=255};o(e.data.length),o(s.data.length);let c=new Uint8Array(1+a.length+e.data.length+s.data.length+n.data.length);c[0]=2,c.set(a,1),c.set(e.data,1+a.length),c.set(s.data,1+a.length+e.data.length),c.set(n.data,1+a.length+e.data.length+s.data.length),r.codecInfo.codec="vorbis",r.description=c,r.lastMetadataPacket=n;let l=V(e.data);r.numberOfChannels=l.getUint8(11),r.sampleRate=l.getUint32(12,!0);let d=l.getUint8(28);r.codecInfo.vorbisInfo={blocksizes:[1<<(d&15),1<<(d>>4)],modeBlockflags:_a(n.data).modeBlockflags},Pr(s.data.subarray(7),this.metadataTags)}async readOpusMetadata(e,r){let i=await this.findNextPacketStart(e);if(!i)return;let s=await this.readPacket(i.startPage,i.startSegmentIndex);if(!s)return;r.codecInfo.codec="opus",r.description=e.data,r.lastMetadataPacket=s;let n=Ai(e.data);r.numberOfChannels=n.outputChannelCount,r.sampleRate=kt,r.codecInfo.opusInfo={preSkip:n.preSkip},Pr(s.data.subarray(8),this.metadataTags)}async readPacket(e,r){m(r<e.lacingValues.length);let i=0;for(let u=0;u<r;u++)i+=e.lacingValues[u];let s=e,n=i,a=r,o=[];e:for(;;){let u=this.reader.requestSlice(s.dataStartPos,s.dataSize);u instanceof Promise&&(u=await u),m(u);let h=F(u,s.dataSize);for(;;){if(a===s.lacingValues.length){o.push(h.subarray(i,n));break}let p=s.lacingValues[a];if(n+=p,p<255){o.push(h.subarray(i,n));break e}a++}let f=s.headerStartPos+s.totalSize;for(;;){let p=this.reader.requestSliceRange(f,rt,It);if(p instanceof Promise&&(p=await p),!p)return null;let g=Jt(p);if(!g)return null;if(s=g,s.serialNumber===e.serialNumber)break;f=s.headerStartPos+s.totalSize}i=0,n=0,a=0}let c=o.reduce((u,h)=>u+h.length,0),l=new Uint8Array(c),d=0;for(let u=0;u<o.length;u++){let h=o[u];l.set(h,d),d+=h.length}return{data:l,endPage:s,endSegmentIndex:a}}async findNextPacketStart(e){if(e.endSegmentIndex<e.endPage.lacingValues.length-1)return{startPage:e.endPage,startSegmentIndex:e.endSegmentIndex+1};if(!!(e.endPage.headerType&4))return null;let i=e.endPage.headerStartPos+e.endPage.totalSize;for(;;){let s=this.reader.requestSliceRange(i,rt,It);if(s instanceof Promise&&(s=await s),!s)return null;let n=Jt(s);if(!n)return null;if(n.serialNumber===e.endPage.serialNumber)return{startPage:n,startSegmentIndex:0};i=n.headerStartPos+n.totalSize}}async getMimeType(){await this.readMetadata();let e=await Promise.all(this.tracks.map(r=>r.getCodecParameterString()));return ro({codecStrings:e.filter(Boolean)})}async getTracks(){return await this.readMetadata(),this.tracks}async computeDuration(){let e=await this.getTracks(),r=await Promise.all(e.map(i=>i.computeDuration()));return Math.max(0,...r)}async getMetadataTags(){return await this.readMetadata(),this.metadataTags}},nn=class{constructor(e,r){this.bitstream=e,this.demuxer=r,this.encodedPacketToMetadata=new WeakMap,this.sequentialScanCache=[],this.sequentialScanMutex=new le,this.internalSampleRate=e.codecInfo.codec==="opus"?kt:e.sampleRate}getId(){return this.bitstream.serialNumber}getNumberOfChannels(){return this.bitstream.numberOfChannels}getSampleRate(){return this.bitstream.sampleRate}getTimeResolution(){return this.bitstream.sampleRate}getCodec(){return this.bitstream.codecInfo.codec}getInternalCodecId(){return null}async getDecoderConfig(){return m(this.bitstream.codecInfo.codec),{codec:this.bitstream.codecInfo.codec,numberOfChannels:this.bitstream.numberOfChannels,sampleRate:this.bitstream.sampleRate,description:this.bitstream.description??void 0}}getName(){return null}getLanguageCode(){return G}getDisposition(){return{...de}}async getFirstTimestamp(){return 0}async computeDuration(){let e=await this.getPacket(1/0,{metadataOnly:!0});return(e?.timestamp??0)+(e?.duration??0)}granulePositionToTimestampInSamples(e){return this.bitstream.codecInfo.codec==="opus"?(m(this.bitstream.codecInfo.opusInfo),e-this.bitstream.codecInfo.opusInfo.preSkip):e}createEncodedPacketFromOggPacket(e,r,i){if(!e)return null;let{durationInSamples:s,vorbisBlockSize:n}=to(e.data,this.bitstream.codecInfo,r.vorbisLastBlocksize),a=new L(i.metadataOnly?Y:e.data,"key",Math.max(0,r.timestampInSamples)/this.internalSampleRate,s/this.internalSampleRate,e.endPage.headerStartPos+e.endSegmentIndex,e.data.byteLength);return this.encodedPacketToMetadata.set(a,{packet:e,timestampInSamples:r.timestampInSamples,durationInSamples:s,vorbisLastBlockSize:r.vorbisLastBlocksize,vorbisBlockSize:n}),a}async getFirstPacket(e){m(this.bitstream.lastMetadataPacket);let r=await this.demuxer.findNextPacketStart(this.bitstream.lastMetadataPacket);if(!r)return null;let i=0;this.bitstream.codecInfo.codec==="opus"&&(m(this.bitstream.codecInfo.opusInfo),i-=this.bitstream.codecInfo.opusInfo.preSkip);let s=await this.demuxer.readPacket(r.startPage,r.startSegmentIndex);return this.createEncodedPacketFromOggPacket(s,{timestampInSamples:i,vorbisLastBlocksize:null},e)}async getNextPacket(e,r){let i=this.encodedPacketToMetadata.get(e);if(!i)throw new Error("Packet was not created from this track.");let s=await this.demuxer.findNextPacketStart(i.packet);if(!s)return null;let n=i.timestampInSamples+i.durationInSamples,a=await this.demuxer.readPacket(s.startPage,s.startSegmentIndex);return this.createEncodedPacketFromOggPacket(a,{timestampInSamples:n,vorbisLastBlocksize:i.vorbisBlockSize},r)}async getPacket(e,r){if(this.demuxer.reader.fileSize===null)return this.getPacketSequential(e,r);let i=gt(e*this.internalSampleRate);if(i===0)return this.getFirstPacket(r);if(i<0)return null;m(this.bitstream.lastMetadataPacket);let s=await this.demuxer.findNextPacketStart(this.bitstream.lastMetadataPacket);if(!s)return null;let n=s.startPage,a=this.demuxer.reader.fileSize,o=[n];e:for(;n.headerStartPos+n.totalSize<a;){let k=n.headerStartPos,y=Math.floor((k+a)/2),x=y;for(;;){let P=Math.min(x+io,a-rt),S=this.demuxer.reader.requestSlice(x,P-x);if(S instanceof Promise&&(S=await S),m(S),!so(S,P)){a=y+rt;continue e}let E=this.demuxer.reader.requestSliceRange(S.filePos,rt,It);E instanceof Promise&&(E=await E),m(E);let D=Jt(E);m(D);let N=!1;if(D.serialNumber===this.bitstream.serialNumber)N=!0;else{let re=this.demuxer.reader.requestSlice(D.headerStartPos,D.totalSize);re instanceof Promise&&(re=await re),m(re);let nt=F(re,D.totalSize);N=eo(nt)===D.checksum}if(!N){x=D.headerStartPos+4;continue}if(N&&D.serialNumber!==this.bitstream.serialNumber){x=D.headerStartPos+D.totalSize;continue}if(D.granulePosition===-1){x=D.headerStartPos+D.totalSize;continue}this.granulePositionToTimestampInSamples(D.granulePosition)>i?a=D.headerStartPos:(n=D,o.push(D));continue e}}let c=s.startPage;for(let k of o){if(k.granulePosition===n.granulePosition)break;(!c||k.headerStartPos>c.headerStartPos)&&(c=k)}let l=c,d=[l];for(;!(l.serialNumber===this.bitstream.serialNumber&&l.granulePosition===n.granulePosition);){let k=l.headerStartPos+l.totalSize,y=this.demuxer.reader.requestSliceRange(k,rt,It);y instanceof Promise&&(y=await y),m(y);let x=Jt(y);m(x),l=x,l.serialNumber===this.bitstream.serialNumber&&d.push(l)}m(l.granulePosition!==-1);let u=null,h,f,p=l,g=0;if(l.headerStartPos===s.startPage.headerStartPos)h=this.granulePositionToTimestampInSamples(0),f=!0,u=0;else{h=0,f=!1;for(let x=l.lacingValues.length-1;x>=0;x--)if(l.lacingValues[x]<255){u=x+1;break}if(u===null)throw new Error("Invalid page with granule position: no packets end on this page.");g=u-1;let k={data:Y,endPage:p,endSegmentIndex:g};if(await this.demuxer.findNextPacketStart(k)){let x=oo(d,l,u);m(x);let P=ao(d,x.page,x.segmentIndex);P&&(l=P.page,u=P.segmentIndex)}else for(;;){let x=oo(d,l,u);if(!x)break;let P=ao(d,x.page,x.segmentIndex);if(!P)break;if(l=P.page,u=P.segmentIndex,x.page.headerStartPos!==p.headerStartPos){p=x.page,g=x.segmentIndex;break}}}let w=null,b=null;for(;l!==null;){m(u!==null);let k=await this.demuxer.readPacket(l,u);if(!k)break;if(!(l.headerStartPos===s.startPage.headerStartPos&&u<s.startSegmentIndex)){let P=this.createEncodedPacketFromOggPacket(k,{timestampInSamples:h,vorbisLastBlocksize:b?.vorbisBlockSize??null},r);m(P);let S=this.encodedPacketToMetadata.get(P);if(m(S),!f&&k.endPage.headerStartPos===p.headerStartPos&&k.endSegmentIndex===g?(h=this.granulePositionToTimestampInSamples(l.granulePosition),f=!0,P=this.createEncodedPacketFromOggPacket(k,{timestampInSamples:h-S.durationInSamples,vorbisLastBlocksize:b?.vorbisBlockSize??null},r),m(P),S=this.encodedPacketToMetadata.get(P),m(S)):h+=S.durationInSamples,w=P,b=S,f&&(Math.max(h,0)>i||Math.max(S.timestampInSamples,0)===i))break}let x=await this.demuxer.findNextPacketStart(k);if(!x)break;l=x.startPage,u=x.startSegmentIndex}return w}async getPacketSequential(e,r){let i=await this.sequentialScanMutex.acquire();try{let s=gt(e*this.internalSampleRate);e=s/this.internalSampleRate;let n=M(this.sequentialScanCache,s,c=>c.timestampInSamples),a;if(n!==-1){let c=this.sequentialScanCache[n];a=this.createEncodedPacketFromOggPacket(c.packet,{timestampInSamples:c.timestampInSamples,vorbisLastBlocksize:c.vorbisLastBlockSize},r)}else a=await this.getFirstPacket(r);let o=0;for(;a&&a.timestamp<e;){let c=await this.getNextPacket(a,r);if(!c||c.timestamp>e)break;if(a=c,o++,o===100){o=0;let l=this.encodedPacketToMetadata.get(a);m(l),this.sequentialScanCache.length>0&&m(q(this.sequentialScanCache).timestampInSamples<=l.timestampInSamples),this.sequentialScanCache.push(l)}}return a}finally{i()}}getKeyPacket(e,r){return this.getPacket(e,r)}getNextKeyPacket(e,r){return this.getNextPacket(e,r)}},ao=(t,e,r)=>{let i=e,s=r;e:for(;;){for(s--,s;s>=0;s--)if(i.lacingValues[s]<255){s++;break e}if(m(s===-1),!(i.headerType&1)){s=0;break}let a=Es(t,o=>o.headerStartPos<i.headerStartPos);if(!a)return null;i=a,s=i.lacingValues.length}if(m(s!==-1),s===i.lacingValues.length){let n=t[t.indexOf(i)+1];m(n),i=n,s=0}return{page:i,segmentIndex:s}},oo=(t,e,r)=>{if(r>0)return{page:e,segmentIndex:r-1};let i=Es(t,s=>s.headerStartPos<e.headerStartPos);return i?{page:i,segmentIndex:i.lacingValues.length-1}:null};var $e;(function(t){t[t.PCM=1]="PCM",t[t.IEEE_FLOAT=3]="IEEE_FLOAT",t[t.ALAW=6]="ALAW",t[t.MULAW=7]="MULAW",t[t.EXTENSIBLE=65534]="EXTENSIBLE"})($e||($e={}));var Xi=class extends ae{constructor(e){super(e),this.metadataPromise=null,this.dataStart=-1,this.dataSize=-1,this.audioInfo=null,this.tracks=[],this.lastKnownPacketIndex=0,this.metadataTags={},this.reader=e._reader}async readMetadata(){return this.metadataPromise??=(async()=>{let e=this.reader.requestSlice(0,12);e instanceof Promise&&(e=await e),m(e);let r=j(e,4),i=r!=="RIFX",s=r==="RF64",n=Qe(e,i),a=s?this.reader.fileSize:Math.min(n+8,this.reader.fileSize??1/0);if(j(e,4)!=="WAVE")throw new Error("Invalid WAVE file - wrong format");let c=0,l=null,d=e.filePos;for(;a===null||d<a;){let h=this.reader.requestSlice(d,8);if(h instanceof Promise&&(h=await h),!h)break;let f=j(h,4),p=Qe(h,i),g=h.filePos;if(s&&c===0&&f!=="ds64")throw new Error('Invalid RF64 file: First chunk must be "ds64".');if(f==="fmt ")await this.parseFmtChunk(g,p,i);else if(f==="data"){if(l??=p,this.dataStart=h.filePos,this.dataSize=Math.min(l,(a??1/0)-this.dataStart),this.reader.fileSize===null)break}else if(f==="ds64"){let w=this.reader.requestSlice(g,p);if(w instanceof Promise&&(w=await w),!w)break;let b=on(w,i);l=on(w,i),a=Math.min(b+8,this.reader.fileSize??1/0)}else f==="LIST"?await this.parseListChunk(g,p,i):(f==="ID3 "||f==="id3 ")&&await this.parseId3Chunk(g,p);d=g+p+(p&1),c++}if(!this.audioInfo)throw new Error('Invalid WAVE file - missing "fmt " chunk');if(this.dataStart===-1)throw new Error('Invalid WAVE file - missing "data" chunk');let u=this.audioInfo.blockSizeInBytes;this.dataSize=Math.floor(this.dataSize/u)*u,this.tracks.push(new J(this.input,new an(this)))})()}async parseFmtChunk(e,r,i){let s=this.reader.requestSlice(e,r);if(s instanceof Promise&&(s=await s),!s)return;let n=tr(s,i),a=tr(s,i),o=Qe(s,i);s.skip(4);let c=tr(s,i),l;if(r===14?l=8:l=tr(s,i),r>=18&&n!==357){let d=tr(s,i),u=r-18;if(Math.min(u,d)>=22&&n===$e.EXTENSIBLE){s.skip(6);let f=F(s,16);n=f[0]|f[1]<<8}}(n===$e.MULAW||n===$e.ALAW)&&(l=8),this.audioInfo={format:n,numberOfChannels:a,sampleRate:o,sampleSizeInBytes:Math.ceil(l/8),blockSizeInBytes:c}}async parseListChunk(e,r,i){let s=this.reader.requestSlice(e,r);if(s instanceof Promise&&(s=await s),!s)return;let n=j(s,4);if(n!=="INFO"&&n!=="INF0")return;let a=s.filePos;for(;a<=e+r-8;){s.filePos=a;let o=j(s,4),c=Qe(s,i),l=F(s,c),d=0;for(let h=0;h<l.length&&l[h]!==0;h++)d++;let u=String.fromCharCode(...l.subarray(0,d));switch(this.metadataTags.raw??={},this.metadataTags.raw[o]=u,o){case"INAM":case"TITL":this.metadataTags.title??=u;break;case"TIT3":this.metadataTags.description??=u;break;case"IART":this.metadataTags.artist??=u;break;case"IPRD":this.metadataTags.album??=u;break;case"IPRT":case"ITRK":case"TRCK":{let h=u.split("/"),f=Number.parseInt(h[0],10),p=h[1]&&Number.parseInt(h[1],10);Number.isInteger(f)&&f>0&&(this.metadataTags.trackNumber??=f),p&&Number.isInteger(p)&&p>0&&(this.metadataTags.tracksTotal??=p)}break;case"ICRD":case"IDIT":{let h=new Date(u);Number.isNaN(h.getTime())||(this.metadataTags.date??=h)}break;case"YEAR":{let h=Number.parseInt(u,10);Number.isInteger(h)&&h>0&&(this.metadataTags.date??=new Date(h,0,1))}break;case"IGNR":case"GENR":this.metadataTags.genre??=u;break;case"ICMT":case"CMNT":case"COMM":this.metadataTags.comment??=u;break}a+=8+c+(c&1)}}async parseId3Chunk(e,r){let i=this.reader.requestSlice(e,r);if(i instanceof Promise&&(i=await i),!i)return;let s=Pt(i);if(s){let n=i.slice(e+10,s.size);Qi(n,s,this.metadataTags)}}getCodec(){if(m(this.audioInfo),this.audioInfo.format===$e.MULAW)return"ulaw";if(this.audioInfo.format===$e.ALAW)return"alaw";if(this.audioInfo.format===$e.PCM){if(this.audioInfo.sampleSizeInBytes===1)return"pcm-u8";if(this.audioInfo.sampleSizeInBytes===2)return"pcm-s16";if(this.audioInfo.sampleSizeInBytes===3)return"pcm-s24";if(this.audioInfo.sampleSizeInBytes===4)return"pcm-s32"}return this.audioInfo.format===$e.IEEE_FLOAT&&this.audioInfo.sampleSizeInBytes===4?"pcm-f32":null}async getMimeType(){return"audio/wav"}async computeDuration(){await this.readMetadata();let e=this.tracks[0];return m(e),e.computeDuration()}async getTracks(){return await this.readMetadata(),this.tracks}async getMetadataTags(){return await this.readMetadata(),this.metadataTags}},er=2048,an=class{constructor(e){this.demuxer=e}getId(){return 1}getCodec(){return this.demuxer.getCodec()}getInternalCodecId(){return m(this.demuxer.audioInfo),this.demuxer.audioInfo.format}async getDecoderConfig(){let e=this.demuxer.getCodec();return e?(m(this.demuxer.audioInfo),{codec:e,numberOfChannels:this.demuxer.audioInfo.numberOfChannels,sampleRate:this.demuxer.audioInfo.sampleRate}):null}async computeDuration(){let e=await this.getPacket(1/0,{metadataOnly:!0});return(e?.timestamp??0)+(e?.duration??0)}getNumberOfChannels(){return m(this.demuxer.audioInfo),this.demuxer.audioInfo.numberOfChannels}getSampleRate(){return m(this.demuxer.audioInfo),this.demuxer.audioInfo.sampleRate}getTimeResolution(){return m(this.demuxer.audioInfo),this.demuxer.audioInfo.sampleRate}getName(){return null}getLanguageCode(){return G}getDisposition(){return{...de}}async getFirstTimestamp(){return 0}async getPacketAtIndex(e,r){m(this.demuxer.audioInfo);let i=e*er*this.demuxer.audioInfo.blockSizeInBytes;if(i>=this.demuxer.dataSize)return null;let s=Math.min(er*this.demuxer.audioInfo.blockSizeInBytes,this.demuxer.dataSize-i);if(this.demuxer.reader.fileSize===null){let c=this.demuxer.reader.requestSlice(this.demuxer.dataStart+i,s);if(c instanceof Promise&&(c=await c),!c)return null}let n;if(r.metadataOnly)n=Y;else{let c=this.demuxer.reader.requestSlice(this.demuxer.dataStart+i,s);c instanceof Promise&&(c=await c),m(c),n=F(c,s)}let a=e*er/this.demuxer.audioInfo.sampleRate,o=s/this.demuxer.audioInfo.blockSizeInBytes/this.demuxer.audioInfo.sampleRate;return this.demuxer.lastKnownPacketIndex=Math.max(e,a),new L(n,"key",a,o,e,s)}getFirstPacket(e){return this.getPacketAtIndex(0,e)}async getPacket(e,r){m(this.demuxer.audioInfo);let i=Math.floor(Math.min(e*this.demuxer.audioInfo.sampleRate/er,(this.demuxer.dataSize-1)/(er*this.demuxer.audioInfo.blockSizeInBytes))),s=await this.getPacketAtIndex(i,r);if(s)return s;if(i===0)return null;m(this.demuxer.reader.fileSize===null);let n=await this.getPacketAtIndex(this.demuxer.lastKnownPacketIndex,r);for(;n;){let a=await this.getNextPacket(n,r);if(!a)break;n=a}return n}getNextPacket(e,r){m(this.demuxer.audioInfo);let i=Math.round(e.timestamp*this.demuxer.audioInfo.sampleRate/er);return this.getPacketAtIndex(i+1,r)}getKeyPacket(e,r){return this.getPacket(e,r)}getNextKeyPacket(e,r){return this.getNextPacket(e,r)}};var rr=7,ir=9,Ur=t=>{let e=t.filePos,r=F(t,9),i=new H(r);if(i.readBits(12)!==4095||(i.skipBits(1),i.readBits(2)!==0))return null;let a=i.readBits(1),o=i.readBits(2)+1,c=i.readBits(4);if(c===15)return null;i.skipBits(1);let l=i.readBits(3);if(l===0)throw new Error("ADTS frames with channel configuration 0 are not supported.");i.skipBits(1),i.skipBits(1),i.skipBits(1),i.skipBits(1);let d=i.readBits(13);i.skipBits(11);let u=i.readBits(2)+1;if(u!==1)throw new Error("ADTS frames with more than one AAC frame are not supported.");let h=null;return a===1?t.filePos-=2:h=i.readBits(16),{objectType:o,samplingFrequencyIndex:c,channelConfiguration:l,frameLength:d,numberOfAacFrames:u,crcCheck:h,startPos:e}};var cn=1024,Yi=class extends ae{constructor(e){super(e),this.metadataPromise=null,this.firstFrameHeader=null,this.loadedSamples=[],this.tracks=[],this.readingMutex=new le,this.lastSampleLoaded=!1,this.lastLoadedPos=0,this.nextTimestampInSamples=0,this.reader=e._reader}async readMetadata(){return this.metadataPromise??=(async()=>{for(;!this.firstFrameHeader&&!this.lastSampleLoaded;)await this.advanceReader();m(this.firstFrameHeader),this.tracks=[new J(this.input,new ln(this))]})()}async advanceReader(){let e=this.reader.requestSliceRange(this.lastLoadedPos,rr,ir);if(e instanceof Promise&&(e=await e),!e){this.lastSampleLoaded=!0;return}let r=Ur(e);if(!r){this.lastSampleLoaded=!0;return}if(this.reader.fileSize!==null&&r.startPos+r.frameLength>this.reader.fileSize){this.lastSampleLoaded=!0;return}this.firstFrameHeader||(this.firstFrameHeader=r);let i=Ut[r.samplingFrequencyIndex];m(i!==void 0);let s=cn/i,n=r.crcCheck?ir:rr,a={timestamp:this.nextTimestampInSamples/i,duration:s,dataStart:r.startPos+n,dataSize:r.frameLength-n};this.loadedSamples.push(a),this.nextTimestampInSamples+=cn,this.lastLoadedPos=r.startPos+r.frameLength}async getMimeType(){return"audio/aac"}async getTracks(){return await this.readMetadata(),this.tracks}async computeDuration(){await this.readMetadata();let e=this.tracks[0];return m(e),e.computeDuration()}async getMetadataTags(){return{}}},ln=class{constructor(e){this.demuxer=e}getId(){return 1}async getFirstTimestamp(){return 0}getTimeResolution(){return this.getSampleRate()/cn}async computeDuration(){let e=await this.getPacket(1/0,{metadataOnly:!0});return(e?.timestamp??0)+(e?.duration??0)}getName(){return null}getLanguageCode(){return G}getCodec(){return"aac"}getInternalCodecId(){return m(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.objectType}getNumberOfChannels(){m(this.demuxer.firstFrameHeader);let e=Si[this.demuxer.firstFrameHeader.channelConfiguration];return m(e!==void 0),e}getSampleRate(){m(this.demuxer.firstFrameHeader);let e=Ut[this.demuxer.firstFrameHeader.samplingFrequencyIndex];return m(e!==void 0),e}getDisposition(){return{...de}}async getDecoderConfig(){m(this.demuxer.firstFrameHeader);let e=new Uint8Array(3),r=new H(e),{objectType:i,samplingFrequencyIndex:s,channelConfiguration:n}=this.demuxer.firstFrameHeader;return i>31?(r.writeBits(5,31),r.writeBits(6,i-32)):r.writeBits(5,i),r.writeBits(4,s),r.writeBits(4,n),{codec:`mp4a.40.${this.demuxer.firstFrameHeader.objectType}`,numberOfChannels:this.getNumberOfChannels(),sampleRate:this.getSampleRate(),description:e.subarray(0,Math.ceil((r.pos-1)/8))}}async getPacketAtIndex(e,r){if(e===-1)return null;let i=this.demuxer.loadedSamples[e];if(!i)return null;let s;if(r.metadataOnly)s=Y;else{let n=this.demuxer.reader.requestSlice(i.dataStart,i.dataSize);if(n instanceof Promise&&(n=await n),!n)return null;s=F(n,i.dataSize)}return new L(s,"key",i.timestamp,i.duration,e,i.dataSize)}getFirstPacket(e){return this.getPacketAtIndex(0,e)}async getNextPacket(e,r){let i=await this.demuxer.readingMutex.acquire();try{let s=mt(this.demuxer.loadedSamples,e.timestamp,a=>a.timestamp);if(s===-1)throw new Error("Packet was not created from this track.");let n=s+1;for(;n>=this.demuxer.loadedSamples.length&&!this.demuxer.lastSampleLoaded;)await this.demuxer.advanceReader();return this.getPacketAtIndex(n,r)}finally{i()}}async getPacket(e,r){let i=await this.demuxer.readingMutex.acquire();try{for(;;){let s=M(this.demuxer.loadedSamples,e,n=>n.timestamp);if(s===-1&&this.demuxer.loadedSamples.length>0)return null;if(this.demuxer.lastSampleLoaded)return this.getPacketAtIndex(s,r);if(s>=0&&s+1<this.demuxer.loadedSamples.length)return this.getPacketAtIndex(s,r);await this.demuxer.advanceReader()}}finally{i()}}getKeyPacket(e,r){return this.getPacket(e,r)}getNextKeyPacket(e,r){return this.getNextPacket(e,r)}};var co=t=>t===0?null:t===1?192:t>=2&&t<=5?144*2**t:t===6?"uncommon-u8":t===7?"uncommon-u16":t>=8&&t<=15?2**t:null,lo=(t,e)=>{switch(t){case 0:return e;case 1:return 88200;case 2:return 176400;case 3:return 192e3;case 4:return 8e3;case 5:return 16e3;case 6:return 22050;case 7:return 24e3;case 8:return 32e3;case 9:return 44100;case 10:return 48e3;case 11:return 96e3;case 12:return"uncommon-u8";case 13:return"uncommon-u16";case 14:return"uncommon-u16-10";default:return null}},uo=t=>{let e=0,r=new H(F(t,1));for(;r.readBits(1)===1;)e++;if(e===0)return r.readBits(7);let i=[],s=e-1,n=new H(F(t,s)),a=8-e-1;for(let c=0;c<a;c++)i.unshift(r.readBits(1));for(let c=0;c<s;c++)for(let l=0;l<8;l++){let d=n.readBits(1);l<2||i.unshift(d)}return i.reduce((c,l,d)=>c|l<<d,0)},ho=(t,e)=>{if(e==="uncommon-u16")return ee(t)+1;if(e==="uncommon-u8")return v(t)+1;if(typeof e=="number")return e;ne(e),m(!1)},fo=(t,e)=>e==="uncommon-u16"?ee(t):e==="uncommon-u16-10"?ee(t)*10:e==="uncommon-u8"?v(t):typeof e=="number"?e:null,mo=t=>{let r=0;for(let i of t){r^=i;for(let s=0;s<8;s++)(r&128)!==0?r=r<<1^7:r<<=1,r&=255}return r};var Zi=class extends ae{constructor(e){super(e),this.loadedSamples=[],this.metadataPromise=null,this.track=null,this.metadataTags={},this.audioInfo=null,this.lastLoadedPos=null,this.blockingBit=null,this.readingMutex=new le,this.lastSampleLoaded=!1,this.reader=e._reader}async computeDuration(){return await this.readMetadata(),m(this.track),this.track.computeDuration()}async getMetadataTags(){return await this.readMetadata(),this.metadataTags}async getTracks(){return await this.readMetadata(),m(this.track),[this.track]}async getMimeType(){return"audio/flac"}async readMetadata(){let e=4;return this.metadataPromise??=(async()=>{for(;this.reader.fileSize===null||e<this.reader.fileSize;){let r=this.reader.requestSlice(e,4);if(r instanceof Promise&&(r=await r),e+=4,r===null)throw new Error(`Metadata block at position ${e} is too small! Corrupted file.`);m(r);let i=v(r),s=et(r),n=(i&128)!==0;switch(i&127){case Ze.STREAMINFO:{let o=this.reader.requestSlice(e,s);if(o instanceof Promise&&(o=await o),m(o),o===null)throw new Error(`StreamInfo block at position ${e} is too small! Corrupted file.`);let c=F(o,34),l=new H(c),d=l.readBits(16),u=l.readBits(16),h=l.readBits(24),f=l.readBits(24),p=l.readBits(20),g=l.readBits(3)+1;l.readBits(5);let w=l.readBits(36);l.skipBits(128);let b=new Uint8Array(42);b.set(new Uint8Array([102,76,97,67]),0),b.set(new Uint8Array([128,0,0,34]),4),b.set(c,8),this.audioInfo={numberOfChannels:g,sampleRate:p,totalSamples:w,minimumBlockSize:d,maximumBlockSize:u,minimumFrameSize:h,maximumFrameSize:f,description:b},this.track=new J(this.input,new un(this));break}case Ze.VORBIS_COMMENT:{let o=this.reader.requestSlice(e,s);o instanceof Promise&&(o=await o),m(o),Pr(F(o,s),this.metadataTags);break}case Ze.PICTURE:{let o=this.reader.requestSlice(e,s);o instanceof Promise&&(o=await o),m(o);let c=_(o),l=_(o),d=ie.decode(F(o,l)),u=_(o),h=ie.decode(F(o,u));o.skip(16);let f=_(o),p=F(o,f);this.metadataTags.images??=[],this.metadataTags.images.push({data:p,mimeType:d,kind:c===3?"coverFront":c===4?"coverBack":"unknown",description:h});break}default:break}if(e+=s,n){this.lastLoadedPos=e;break}}})()}async readNextFlacFrame({startPos:e,isFirstPacket:r}){m(this.audioInfo);let i=6,n=this.audioInfo.maximumFrameSize+16,a=await this.reader.requestSliceRange(e,this.audioInfo.minimumFrameSize,n);if(!a)return null;let o=this.readFlacFrameHeader({slice:a,isFirstPacket:r});if(!o)return null;for(a.filePos=e+this.audioInfo.minimumFrameSize;;){if(a.filePos>a.end-i)return{num:o.num,blockSize:o.blockSize,sampleRate:o.sampleRate,size:a.end-e,isLastFrame:!0};if(v(a)===255){let l=a.filePos,d=v(a),u=this.blockingBit===1?249:248;if(d!==u){a.filePos=l;continue}a.skip(-2);let h=a.filePos-e,f=this.readFlacFrameHeader({slice:a,isFirstPacket:!1});if(!f){a.filePos=l;continue}if(this.blockingBit===0){if(f.num-o.num!==1){a.filePos=l;continue}}else if(f.num-o.num!==o.blockSize){a.filePos=l;continue}return{num:o.num,blockSize:o.blockSize,sampleRate:o.sampleRate,size:h,isLastFrame:!1}}}}readFlacFrameHeader({slice:e,isFirstPacket:r}){let i=e.filePos,s=F(e,4),n=new H(s);if(n.readBits(15)!==32764)return null;if(this.blockingBit===null){m(r);let w=n.readBits(1);this.blockingBit=w}else if(this.blockingBit===1){if(m(!r),n.readBits(1)!==1)return null}else if(this.blockingBit===0){if(m(!r),n.readBits(1)!==0)return null}else throw new Error("Invalid blocking bit");let o=co(n.readBits(4));if(!o)return null;m(this.audioInfo);let c=lo(n.readBits(4),this.audioInfo.sampleRate);if(!c||(n.readBits(4),n.readBits(3),n.readBits(1)!==0))return null;let d=uo(e),u=ho(e,o),h=fo(e,c);if(h===null||h!==this.audioInfo.sampleRate)return null;let f=e.filePos-i,p=v(e);e.skip(-f),e.skip(-1);let g=mo(F(e,f));return p!==g?null:{num:d,blockSize:u,sampleRate:h}}async advanceReader(){await this.readMetadata(),m(this.lastLoadedPos!==null),m(this.audioInfo);let e=this.lastLoadedPos,r=await this.readNextFlacFrame({startPos:e,isFirstPacket:this.loadedSamples.length===0});if(!r){this.lastSampleLoaded=!0;return}let i=this.loadedSamples[this.loadedSamples.length-1],n={blockOffset:i?i.blockOffset+i.blockSize:0,blockSize:r.blockSize,byteOffset:e,byteSize:r.size};if(this.lastLoadedPos=this.lastLoadedPos+r.size,this.loadedSamples.push(n),r.isLastFrame){this.lastSampleLoaded=!0;return}}},un=class{constructor(e){this.demuxer=e}getId(){return 1}getCodec(){return"flac"}getInternalCodecId(){return null}getNumberOfChannels(){return m(this.demuxer.audioInfo),this.demuxer.audioInfo.numberOfChannels}async computeDuration(){let e=await this.getPacket(1/0,{metadataOnly:!0});return(e?.timestamp??0)+(e?.duration??0)}getSampleRate(){return m(this.demuxer.audioInfo),this.demuxer.audioInfo.sampleRate}getName(){return null}getLanguageCode(){return G}getTimeResolution(){return m(this.demuxer.audioInfo),this.demuxer.audioInfo.sampleRate}getDisposition(){return{...de}}async getFirstTimestamp(){return 0}async getDecoderConfig(){return m(this.demuxer.audioInfo),{codec:"flac",numberOfChannels:this.demuxer.audioInfo.numberOfChannels,sampleRate:this.demuxer.audioInfo.sampleRate,description:this.demuxer.audioInfo.description}}async getPacket(e,r){if(m(this.demuxer.audioInfo),e<0)throw new Error("Timestamp cannot be negative");let i=await this.demuxer.readingMutex.acquire();try{for(;;){let s=M(this.demuxer.loadedSamples,e,c=>c.blockOffset/this.demuxer.audioInfo.sampleRate);if(s===-1){await this.demuxer.advanceReader();continue}let n=this.demuxer.loadedSamples[s],a=n.blockOffset/this.demuxer.audioInfo.sampleRate,o=n.blockSize/this.demuxer.audioInfo.sampleRate;if(a+o<=e){if(this.demuxer.lastSampleLoaded)return this.getPacketAtIndex(this.demuxer.loadedSamples.length-1,r);await this.demuxer.advanceReader();continue}return this.getPacketAtIndex(s,r)}}finally{i()}}async getNextPacket(e,r){let i=await this.demuxer.readingMutex.acquire();try{let s=e.sequenceNumber+1;if(this.demuxer.lastSampleLoaded&&s>=this.demuxer.loadedSamples.length)return null;for(;s>=this.demuxer.loadedSamples.length&&!this.demuxer.lastSampleLoaded;)await this.demuxer.advanceReader();return this.getPacketAtIndex(s,r)}finally{i()}}getKeyPacket(e,r){return this.getPacket(e,r)}getNextKeyPacket(e,r){return this.getNextPacket(e,r)}async getPacketAtIndex(e,r){let i=this.demuxer.loadedSamples[e];if(!i)return null;let s;if(r.metadataOnly)s=Y;else{let o=this.demuxer.reader.requestSlice(i.byteOffset,i.byteSize);if(o instanceof Promise&&(o=await o),!o)return null;s=F(o,i.byteSize)}m(this.demuxer.audioInfo);let n=i.blockOffset/this.demuxer.audioInfo.sampleRate,a=i.blockSize/this.demuxer.audioInfo.sampleRate;return new L(s,"key",n,a,e,i.byteSize)}async getFirstPacket(e){for(;this.demuxer.loadedSamples.length===0&&!this.demuxer.lastSampleLoaded;)await this.demuxer.advanceReader();return this.getPacketAtIndex(0,e)}};var be=class{},Nr=class extends be{async _getMajorBrand(e){let r=e._reader.requestSlice(0,12);return r instanceof Promise&&(r=await r),!r||(r.skip(4),j(r,4)!=="ftyp")?null:j(r,4)}_createDemuxer(e){return new Mi(e)}},Ji=class extends Nr{async _canReadInput(e){let r=await this._getMajorBrand(e);return!!r&&r!=="qt "}get name(){return"MP4"}get mimeType(){return"video/mp4"}},es=class extends Nr{async _canReadInput(e){return await this._getMajorBrand(e)==="qt "}get name(){return"QuickTime File Format"}get mimeType(){return"video/quicktime"}},Vr=class extends be{async isSupportedEBMLOfDocType(e,r){let i=e._reader.requestSlice(0,xe);if(i instanceof Promise&&(i=await i),!i)return!1;let s=Ks(i);if(s===null||s<1||s>8||O(i,s)!==T.EBML)return!1;let a=Xs(i);if(a===null)return!1;let o=e._reader.requestSlice(i.filePos,a);if(o instanceof Promise&&(o=await o),!o)return!1;let c=i.filePos;for(;o.filePos<=c+a-pe;){let l=Se(o);if(!l)break;let{id:d,size:u}=l,h=o.filePos;if(u===null)return!1;switch(d){case T.EBMLVersion:if(O(o,u)!==1)return!1;break;case T.EBMLReadVersion:if(O(o,u)!==1)return!1;break;case T.DocType:if(tt(o,u)!==r)return!1;break;case T.DocTypeVersion:if(O(o,u)>4)return!1;break}o.filePos=h+u}return!0}_canReadInput(e){return this.isSupportedEBMLOfDocType(e,"matroska")}_createDemuxer(e){return new qi(e)}get name(){return"Matroska"}get mimeType(){return"video/x-matroska"}},ts=class extends Vr{_canReadInput(e){return this.isSupportedEBMLOfDocType(e,"webm")}get name(){return"WebM"}get mimeType(){return"video/webm"}},rs=class extends be{async _canReadInput(e){let r=e._reader.requestSlice(0,10);if(r instanceof Promise&&(r=await r),!r)return!1;let i=0,s=!1;for(;;){let l=e._reader.requestSlice(i,Zt);if(l instanceof Promise&&(l=await l),!l)break;let d=Pt(l);if(!d)break;s=!0,i=l.filePos+d.size}let n=await Mr(e._reader,i,i+4096);if(!n)return!1;if(s)return!0;i=n.startPos+n.header.totalSize;let a=await Mr(e._reader,i,i+4);if(!a)return!1;let o=n.header,c=a.header;return!(o.channel!==c.channel||o.sampleRate!==c.sampleRate)}_createDemuxer(e){return new Gi(e)}get name(){return"MP3"}get mimeType(){return"audio/mpeg"}},is=class extends be{async _canReadInput(e){let r=e._reader.requestSlice(0,12);if(r instanceof Promise&&(r=await r),!r)return!1;let i=j(r,4);return i!=="RIFF"&&i!=="RIFX"&&i!=="RF64"?!1:(r.skip(4),j(r,4)==="WAVE")}_createDemuxer(e){return new Xi(e)}get name(){return"WAVE"}get mimeType(){return"audio/wav"}},ss=class extends be{async _canReadInput(e){let r=e._reader.requestSlice(0,4);return r instanceof Promise&&(r=await r),r?j(r,4)==="OggS":!1}_createDemuxer(e){return new Ki(e)}get name(){return"Ogg"}get mimeType(){return"application/ogg"}},ns=class extends be{async _canReadInput(e){let r=e._reader.requestSlice(0,4);return r instanceof Promise&&(r=await r),r?j(r,4)==="fLaC":!1}get name(){return"FLAC"}get mimeType(){return"audio/flac"}_createDemuxer(e){return new Zi(e)}},as=class extends be{async _canReadInput(e){let r=e._reader.requestSliceRange(0,rr,ir);if(r instanceof Promise&&(r=await r),!r)return!1;let i=Ur(r);if(!i||(r=e._reader.requestSliceRange(i.frameLength,rr,ir),r instanceof Promise&&(r=await r),!r))return!1;let s=Ur(r);return s?i.objectType===s.objectType&&i.samplingFrequencyIndex===s.samplingFrequencyIndex&&i.channelConfiguration===s.channelConfiguration:!1}_createDemuxer(e){return new Yi(e)}get name(){return"ADTS"}get mimeType(){return"audio/aac"}},po=new Ji,go=new es,wo=new Vr,bo=new ts,ko=new rs,yo=new is,To=new ss,xo=new as,So=new ns,os=[po,go,wo,bo,yo,To,So,ko,xo];var vt=class{constructor(){this._disposed=!1,this._sizePromise=null,this.onread=null}async getSizeOrNull(){if(this._disposed)throw new Z;return this._sizePromise??=Promise.resolve(this._retrieveSize())}async getSize(){if(this._disposed)throw new Z;let e=await this.getSizeOrNull();if(e===null)throw new Error("Cannot determine the size of an unsized source.");return e}};var Lr=class extends vt{constructor(e,r={}){if(!(e instanceof Blob))throw new TypeError("blob must be a Blob.");if(!r||typeof r!="object")throw new TypeError("options must be an object.");if(r.maxCacheSize!==void 0&&(!Sr(r.maxCacheSize)||r.maxCacheSize<0))throw new TypeError("options.maxCacheSize, when provided, must be a non-negative number.");super(),this._readers=new WeakMap,this._blob=e,this._orchestrator=new cs({maxCacheSize:r.maxCacheSize??8*2**20,maxWorkerCount:4,runWorker:this._runWorker.bind(this),prefetchProfile:_o.fileSystem})}_retrieveSize(){let e=this._blob.size;return this._orchestrator.fileSize=e,e}_read(e,r){return this._orchestrator.read(e,r)}async _runWorker(e){let r=this._readers.get(e);for(r===void 0&&("stream"in this._blob&&!Ye()?r=this._blob.slice(e.currentPos).stream().getReader():r=null,this._readers.set(e,r));e.currentPos<e.targetPos&&!e.aborted;)if(r){let{done:i,value:s}=await r.read();if(i)throw this._orchestrator.forgetWorker(e),new Error("Blob reader stopped unexpectedly before all requested data was read.");if(e.aborted)break;this.onread?.(e.currentPos,e.currentPos+s.length),this._orchestrator.supplyWorkerData(e,s)}else{let i=await this._blob.slice(e.currentPos,e.targetPos).arrayBuffer();if(e.aborted)break;this.onread?.(e.currentPos,e.currentPos+i.byteLength),this._orchestrator.supplyWorkerData(e,new Uint8Array(i))}e.running=!1,e.aborted&&await r?.cancel()}_dispose(){this._orchestrator.dispose()}},Co=.5*2**20,Nc=((t,e,r)=>{if(e instanceof Error&&(e.message.includes("Failed to fetch")||e.message.includes("Load failed")||e.message.includes("NetworkError when attempting to fetch resource"))){let s=null;try{typeof window<"u"&&typeof window.location<"u"&&(s=new URL(r instanceof Request?r.url:r,window.location.href).origin)}catch{}if((typeof navigator<"u"&&typeof navigator.onLine=="boolean"?navigator.onLine:!0)&&s!==null&&s!==window.location.origin)return console.warn("Request will not be retried because a CORS error was suspected due to different origins. You can modify this behavior by providing your own function for the 'getRetryDelay' option."),null}return Math.min(2**(t-2),16)}),Wr=class extends vt{constructor(e,r={}){if(typeof e!="string"&&!(e instanceof URL)&&!(typeof Request<"u"&&e instanceof Request))throw new TypeError("url must be a string, URL or Request.");if(!r||typeof r!="object")throw new TypeError("options must be an object.");if(r.requestInit!==void 0&&(!r.requestInit||typeof r.requestInit!="object"))throw new TypeError("options.requestInit, when provided, must be an object.");if(r.getRetryDelay!==void 0&&typeof r.getRetryDelay!="function")throw new TypeError("options.getRetryDelay, when provided, must be a function.");if(r.maxCacheSize!==void 0&&(!Sr(r.maxCacheSize)||r.maxCacheSize<0))throw new TypeError("options.maxCacheSize, when provided, must be a non-negative number.");if(r.fetchFn!==void 0&&typeof r.fetchFn!="function")throw new TypeError("options.fetchFn, when provided, must be a function.");super(),this._existingResponses=new WeakMap,this._url=e,this._options=r,this._getRetryDelay=r.getRetryDelay??Nc,this._orchestrator=new cs({maxCacheSize:r.maxCacheSize??64*2**20,maxWorkerCount:2,runWorker:this._runWorker.bind(this),prefetchProfile:_o.network})}async _retrieveSize(){let e=new AbortController,r=await vs(this._options.fetchFn??fetch,this._url,Is(this._options.requestInit??{},{headers:{Range:"bytes=0-"},signal:e.signal}),this._getRetryDelay,()=>this._disposed);if(!r.ok)throw new Error(`Error fetching ${String(this._url)}: ${r.status} ${r.statusText}`);let i,s;if(r.status===206)s=this._getTotalLengthFromRangeResponse(r),i=this._orchestrator.createWorker(0,Math.min(s,Co));else{let n=r.headers.get("Content-Length");if(n)s=Number(n),i=this._orchestrator.createWorker(0,s),this._orchestrator.options.maxCacheSize=1/0,console.warn("HTTP server did not respond with 206 Partial Content, meaning the entire remote resource now has to be downloaded. For efficient media file streaming across a network, please make sure your server supports range requests.");else throw new Error(`HTTP response (status ${r.status}) must surface Content-Length header.`)}return this._orchestrator.fileSize=s,this._existingResponses.set(i,{response:r,abortController:e}),this._orchestrator.runWorker(i),s}_read(e,r){return this._orchestrator.read(e,r)}async _runWorker(e){for(;;){let r=this._existingResponses.get(e);this._existingResponses.delete(e);let i=r?.abortController,s=r?.response;if(i||(i=new AbortController,s=await vs(this._options.fetchFn??fetch,this._url,Is(this._options.requestInit??{},{headers:{Range:`bytes=${e.currentPos}-`},signal:i.signal}),this._getRetryDelay,()=>this._disposed)),m(s),!s.ok)throw new Error(`Error fetching ${String(this._url)}: ${s.status} ${s.statusText}`);if(e.currentPos>0&&s.status!==206)throw new Error("HTTP server did not respond with 206 Partial Content to a range request. To enable efficient media file streaming across a network, please make sure your server supports range requests.");if(!s.body)throw new Error("Missing HTTP response body stream. The used fetch function must provide the response body as a ReadableStream.");let n=s.body.getReader();for(;;){if(e.currentPos>=e.targetPos||e.aborted){i.abort(),e.running=!1;return}let a;try{a=await n.read()}catch(l){if(this._disposed)throw l;let d=this._getRetryDelay(1,l,this._url);if(d!==null){console.error("Error while reading response stream. Attempting to resume.",l),await new Promise(u=>setTimeout(u,1e3*d));break}else throw l}if(e.aborted)continue;let{done:o,value:c}=a;if(o){if(e.currentPos>=e.targetPos){this._orchestrator.forgetWorker(e),e.running=!1;return}break}this.onread?.(e.currentPos,e.currentPos+c.length),this._orchestrator.supplyWorkerData(e,c)}}}_getTotalLengthFromRangeResponse(e){let r=e.headers.get("Content-Range");if(r){let s=/\/(\d+)/.exec(r);if(s)return Number(s[1])}let i=e.headers.get("Content-Length");if(i)return Number(i);throw new Error("Partial HTTP response (status 206) must surface either Content-Range or Content-Length header.")}_dispose(){this._orchestrator.dispose()}};var _o={none:(t,e)=>({start:t,end:e}),fileSystem:(t,e)=>(t=Math.floor((t-65536)/65536)*65536,e=Math.ceil((e+65536)/65536)*65536,{start:t,end:e}),network:(t,e,r)=>{t=Math.max(0,Math.floor((t-65536)/65536)*65536);for(let s of r){let a=Math.max((s.startPos+s.targetPos)/2,s.targetPos-8388608);if(ki(t,e,a,s.targetPos)){let o=s.targetPos-s.startPos,c=Math.ceil((o+1)/8388608)*8388608,l=2**Math.ceil(Math.log2(o+1)),d=Math.min(l,c);e=Math.max(e,s.startPos+d)}}return e=Math.max(e,t+Co),{start:t,end:e}}},cs=class{constructor(e){this.options=e,this.fileSize=null,this.nextAge=0,this.workers=[],this.cache=[],this.currentCacheSize=0,this.disposed=!1}read(e,r){m(this.fileSize!==null);let i=this.options.prefetchProfile(e,r,this.workers),s=Math.max(i.start,0),n=Math.min(i.end,this.fileSize);m(s<=e&&r<=n);let a=null,o=M(this.cache,e,k=>k.start),c=o!==-1?this.cache[o]:null;c&&c.start<=e&&r<=c.end&&(c.age=this.nextAge++,a={bytes:c.bytes,view:c.view,offset:c.start});let l=M(this.cache,s,k=>k.start),d=a?null:new Uint8Array(r-e),u=0,h=s,f=[];if(l!==-1){for(let k=l;k<this.cache.length;k++){let y=this.cache[k];if(y.start>=n)break;if(y.end<=s)continue;let x=Math.max(s,y.start),P=Math.min(n,y.end);if(m(x<=P),h<x&&f.push({start:h,end:x}),h=P,d){let S=Math.max(e,y.start),A=Math.min(r,y.end);if(S<A){let E=S-e;d.set(y.bytes.subarray(S-y.start,A-y.start),E),E===u&&(u=A-e)}}y.age=this.nextAge++}h<n&&f.push({start:h,end:n})}else f.push({start:s,end:n});if(d&&u>=d.length&&(a={bytes:d,view:V(d),offset:e}),f.length===0)return m(a),a;let{promise:p,resolve:g,reject:w}=se(),b=[];for(let k of f){let y=Math.max(e,k.start),x=Math.min(r,k.end);y===k.start&&x===k.end?b.push(k):y<x&&b.push({start:y,end:x})}for(let k of f){let y=d&&{start:e,bytes:d,holes:b,resolve:g,reject:w},x=!1;for(let P of this.workers)if(ki(k.start-131072,k.start,P.currentPos,P.targetPos)){P.targetPos=Math.max(P.targetPos,k.end),x=!0,y&&!P.pendingSlices.includes(y)&&P.pendingSlices.push(y),P.running||this.runWorker(P);break}if(!x){let P=this.createWorker(k.start,k.end);y&&(P.pendingSlices=[y]),this.runWorker(P)}}return a||(m(d),a=p.then(k=>({bytes:k,view:V(k),offset:e}))),a}createWorker(e,r){let i={startPos:e,currentPos:e,targetPos:r,running:!1,aborted:this.disposed,pendingSlices:[],age:this.nextAge++};for(this.workers.push(i);this.workers.length>this.options.maxWorkerCount;){let s=0,n=this.workers[0];for(let a=1;a<this.workers.length;a++){let o=this.workers[a];o.age<n.age&&(s=a,n=o)}if(n.running&&n.pendingSlices.length>0)break;n.aborted=!0,this.workers.splice(s,1)}return i}runWorker(e){m(!e.running),m(e.currentPos<e.targetPos),e.running=!0,e.age=this.nextAge++,this.options.runWorker(e).catch(r=>{if(e.running=!1,e.pendingSlices.length>0)e.pendingSlices.forEach(i=>i.reject(r)),e.pendingSlices.length=0;else throw r})}supplyWorkerData(e,r){m(!e.aborted);let i=e.currentPos,s=i+r.length;this.insertIntoCache({start:i,end:s,bytes:r,view:V(r),age:this.nextAge++}),e.currentPos+=r.length,e.targetPos=Math.max(e.targetPos,e.currentPos);for(let n=0;n<e.pendingSlices.length;n++){let a=e.pendingSlices[n],o=Math.max(i,a.start),c=Math.min(s,a.start+a.bytes.length);o<c&&a.bytes.set(r.subarray(o-i,c-i),o-a.start);for(let l=0;l<a.holes.length;l++){let d=a.holes[l];i<=d.start&&s>d.start&&(d.start=s),d.end<=d.start&&(a.holes.splice(l,1),l--)}a.holes.length===0&&(a.resolve(a.bytes),e.pendingSlices.splice(n,1),n--)}for(let n=0;n<this.workers.length;n++){let a=this.workers[n];e===a||a.running||ki(i,s,a.currentPos,a.targetPos)&&(this.workers.splice(n,1),n--)}}forgetWorker(e){let r=this.workers.indexOf(e);m(r!==-1),this.workers.splice(r,1)}insertIntoCache(e){if(this.options.maxCacheSize===0)return;let r=M(this.cache,e.start,i=>i.start)+1;if(r>0){let i=this.cache[r-1];if(i.end>=e.end)return;if(i.end>e.start){let s=new Uint8Array(e.end-i.start);s.set(i.bytes,0),s.set(e.bytes,e.start-i.start),this.currentCacheSize+=e.end-i.end,i.bytes=s,i.view=V(s),i.end=e.end,r--,e=i}else this.cache.splice(r,0,e),this.currentCacheSize+=e.bytes.length}else this.cache.splice(r,0,e),this.currentCacheSize+=e.bytes.length;for(let i=r+1;i<this.cache.length;i++){let s=this.cache[i];if(e.end<=s.start)break;if(e.end>=s.end){this.cache.splice(i,1),this.currentCacheSize-=s.bytes.length,i--;continue}let n=new Uint8Array(s.end-e.start);n.set(e.bytes,0),n.set(s.bytes,s.start-e.start),this.currentCacheSize-=e.end-s.start,e.bytes=n,e.view=V(n),e.end=s.end,this.cache.splice(i,1);break}for(;this.currentCacheSize>this.options.maxCacheSize;){let i=0,s=this.cache[0];for(let n=1;n<this.cache.length;n++){let a=this.cache[n];a.age<s.age&&(i=n,s=a)}if(this.currentCacheSize-s.bytes.length<=this.options.maxCacheSize)break;this.cache.splice(i,1),this.currentCacheSize-=s.bytes.length}}dispose(){for(let e of this.workers)e.aborted=!0;this.workers.length=0,this.cache.length=0,this.disposed=!0}};yi();var sr=class{get disposed(){return this._disposed}constructor(e){if(this._demuxerPromise=null,this._format=null,this._disposed=!1,!e||typeof e!="object")throw new TypeError("options must be an object.");if(!Array.isArray(e.formats)||e.formats.some(r=>!(r instanceof be)))throw new TypeError("options.formats must be an array of InputFormat.");if(!(e.source instanceof vt))throw new TypeError("options.source must be a Source.");if(e.source._disposed)throw new Error("options.source must not be disposed.");this._formats=e.formats,this._source=e.source,this._reader=new ls(e.source)}_getDemuxer(){return this._demuxerPromise??=(async()=>{this._reader.fileSize=await this._source.getSizeOrNull();for(let e of this._formats)if(await e._canReadInput(this))return this._format=e,e._createDemuxer(this);throw new Error("Input has an unsupported or unrecognizable format.")})()}get source(){return this._source}async getFormat(){return await this._getDemuxer(),m(this._format),this._format}async computeDuration(){return(await this._getDemuxer()).computeDuration()}async getTracks(){return(await this._getDemuxer()).getTracks()}async getVideoTracks(){return(await this.getTracks()).filter(r=>r.isVideoTrack())}async getAudioTracks(){return(await this.getTracks()).filter(r=>r.isAudioTrack())}async getPrimaryVideoTrack(){return(await this.getTracks()).find(r=>r.isVideoTrack())??null}async getPrimaryAudioTrack(){return(await this.getTracks()).find(r=>r.isAudioTrack())??null}async getMimeType(){return(await this._getDemuxer()).getMimeType()}async getMetadataTags(){return(await this._getDemuxer()).getMetadataTags()}dispose(){this._disposed||(this._disposed=!0,this._source._disposed=!0,this._source._dispose())}[Symbol.dispose](){this.dispose()}},Z=class extends Error{constructor(e="Input has been disposed."){super(e),this.name="InputDisposedError"}};var ls=class{constructor(e){this.source=e}requestSlice(e,r){if(this.source._disposed)throw new Z;if(this.fileSize!==null&&e+r>this.fileSize)return null;let i=e+r,s=this.source._read(e,i);return s instanceof Promise?s.then(n=>n?new Qt(n.bytes,n.view,n.offset,e,i):null):s?new Qt(s.bytes,s.view,s.offset,e,i):null}requestSliceRange(e,r,i){if(this.source._disposed)throw new Z;if(this.fileSize!==null)return this.requestSlice(e,X(this.fileSize-e,r,i));{let s=this.requestSlice(e,i),n=a=>{if(a)return a;let o=l=>(m(l!==null),this.requestSlice(e,X(l-e,r,i))),c=this.source._retrieveSize();return c instanceof Promise?c.then(o):o(c)};return s instanceof Promise?s.then(n):n(s)}}},Qt=class t{constructor(e,r,i,s,n){this.bytes=e,this.view=r,this.offset=i,this.start=s,this.end=n,this.bufferPos=s-i}static tempFromBytes(e){return new t(e,V(e),0,0,e.length)}get length(){return this.end-this.start}get filePos(){return this.offset+this.bufferPos}set filePos(e){this.bufferPos=e-this.offset}get remainingLength(){return Math.max(this.end-this.filePos,0)}skip(e){this.bufferPos+=e}slice(e,r=this.end-e){if(e<this.start||e+r>this.end)throw new RangeError("Slicing outside of original slice.");return new t(this.bytes,this.view,this.offset,e,e+r)}},he=(t,e)=>{if(t.filePos<t.start||t.filePos+e>t.end)throw new RangeError(`Tried reading [${t.filePos}, ${t.filePos+e}), but slice is [${t.start}, ${t.end}). This is likely an internal error, please report it alongside the file that caused it.`)},F=(t,e)=>{he(t,e);let r=t.bytes.subarray(t.bufferPos,t.bufferPos+e);return t.bufferPos+=e,r},v=t=>(he(t,1),t.view.getUint8(t.bufferPos++)),tr=(t,e)=>{he(t,2);let r=t.view.getUint16(t.bufferPos,e);return t.bufferPos+=2,r},ee=t=>{he(t,2);let e=t.view.getUint16(t.bufferPos,!1);return t.bufferPos+=2,e},et=t=>{he(t,3);let e=pt(t.view,t.bufferPos,!1);return t.bufferPos+=3,e},Br=t=>{he(t,2);let e=t.view.getInt16(t.bufferPos,!1);return t.bufferPos+=2,e},Qe=(t,e)=>{he(t,4);let r=t.view.getUint32(t.bufferPos,e);return t.bufferPos+=4,r},_=t=>{he(t,4);let e=t.view.getUint32(t.bufferPos,!1);return t.bufferPos+=4,e},Et=t=>{he(t,4);let e=t.view.getUint32(t.bufferPos,!0);return t.bufferPos+=4,e},He=t=>{he(t,4);let e=t.view.getInt32(t.bufferPos,!1);return t.bufferPos+=4,e},Vc=t=>{he(t,4);let e=t.view.getInt32(t.bufferPos,!0);return t.bufferPos+=4,e},on=(t,e)=>{let r,i;return e?(r=Qe(t,!0),i=Qe(t,!0)):(i=Qe(t,!1),r=Qe(t,!1)),i*4294967296+r},me=t=>{let e=_(t),r=_(t);return e*4294967296+r},Wa=t=>{let e=He(t),r=_(t);return e*4294967296+r},no=t=>{let e=Et(t);return Vc(t)*4294967296+e},qa=t=>{he(t,4);let e=t.view.getFloat32(t.bufferPos,!1);return t.bufferPos+=4,e},Ni=t=>{he(t,8);let e=t.view.getFloat64(t.bufferPos,!1);return t.bufferPos+=8,e},j=(t,e)=>{he(t,e);let r="";for(let i=0;i<e;i++)r+=String.fromCharCode(t.bytes[t.bufferPos++]);return r};var dn=/<(?:(\d{2}):)?(\d{2}):(\d{2}).(\d{3})>/g;var Po=t=>{let e=Math.floor(t/36e5),r=Math.floor(t%(3600*1e3)/(60*1e3)),i=Math.floor(t%(60*1e3)/1e3),s=t%1e3;return e.toString().padStart(2,"0")+":"+r.toString().padStart(2,"0")+":"+i.toString().padStart(2,"0")+"."+s.toString().padStart(3,"0")};var Hr=class{constructor(e){this.writer=e,this.helper=new Uint8Array(8),this.helperView=new DataView(this.helper.buffer),this.offsets=new WeakMap}writeU32(e){this.helperView.setUint32(0,e,!1),this.writer.write(this.helper.subarray(0,4))}writeU64(e){this.helperView.setUint32(0,Math.floor(e/2**32),!1),this.helperView.setUint32(4,e,!1),this.writer.write(this.helper.subarray(0,8))}writeAscii(e){for(let r=0;r<e.length;r++)this.helperView.setUint8(r%8,e.charCodeAt(r)),r%8===7&&this.writer.write(this.helper);e.length%8!==0&&this.writer.write(this.helper.subarray(0,e.length%8))}writeBox(e){if(this.offsets.set(e,this.writer.getPos()),e.contents&&!e.children)this.writeBoxHeader(e,e.size??e.contents.byteLength+8),this.writer.write(e.contents);else{let r=this.writer.getPos();if(this.writeBoxHeader(e,0),e.contents&&this.writer.write(e.contents),e.children)for(let n of e.children)n&&this.writeBox(n);let i=this.writer.getPos(),s=e.size??i-r;this.writer.seek(r),this.writeBoxHeader(e,s),this.writer.seek(i)}}writeBoxHeader(e,r){this.writeU32(e.largeSize?1:r),this.writeAscii(e.type),e.largeSize&&this.writeU64(r)}measureBoxHeader(e){return 8+(e.largeSize?8:0)}patchBox(e){let r=this.offsets.get(e);m(r!==void 0);let i=this.writer.getPos();this.writer.seek(r),this.writeBox(e),this.writer.seek(i)}measureBox(e){if(e.contents&&!e.children)return this.measureBoxHeader(e)+e.contents.byteLength;{let r=this.measureBoxHeader(e);if(e.contents&&(r+=e.contents.byteLength),e.children)for(let i of e.children)i&&(r+=this.measureBox(i));return r}}},U=new Uint8Array(8),Be=new DataView(U.buffer),$=t=>[(t%256+256)%256],R=t=>(Be.setUint16(0,t,!1),[U[0],U[1]]),vo=t=>(Be.setInt16(0,t,!1),[U[0],U[1]]),Ao=t=>(Be.setUint32(0,t,!1),[U[1],U[2],U[3]]),C=t=>(Be.setUint32(0,t,!1),[U[0],U[1],U[2],U[3]]),st=t=>(Be.setInt32(0,t,!1),[U[0],U[1],U[2],U[3]]),At=t=>(Be.setUint32(0,Math.floor(t/2**32),!1),Be.setUint32(4,t,!1),[U[0],U[1],U[2],U[3],U[4],U[5],U[6],U[7]]),Fo=t=>(Be.setInt16(0,2**8*t,!1),[U[0],U[1]]),Ge=t=>(Be.setInt32(0,2**16*t,!1),[U[0],U[1],U[2],U[3]]),hn=t=>(Be.setInt32(0,2**30*t,!1),[U[0],U[1],U[2],U[3]]),fn=(t,e)=>{let r=[],i=t;do{let s=i&127;i>>=7,r.length>0&&(s|=128),r.push(s),e!==void 0&&e--}while(i>0||e);return r.reverse()},oe=(t,e=!1)=>{let r=Array(t.length).fill(null).map((i,s)=>t.charCodeAt(s));return e&&r.push(0),r},pn=t=>{let e=null;for(let r of t)(!e||r.timestamp>e.timestamp)&&(e=r);return e},Ro=t=>{let e=t*(Math.PI/180),r=Math.round(Math.cos(e)),i=Math.round(Math.sin(e));return[r,i,0,-i,r,0,0,0,1]},Bo=Ro(0),Do=t=>[Ge(t[0]),Ge(t[1]),hn(t[2]),Ge(t[3]),Ge(t[4]),hn(t[5]),Ge(t[6]),Ge(t[7]),hn(t[8])],B=(t,e,r)=>({type:t,contents:e&&new Uint8Array(e.flat(10)),children:r}),W=(t,e,r,i,s)=>B(t,[$(e),Ao(r),i??[]],s),Oo=t=>t.isQuickTime?B("ftyp",[oe("qt "),C(512),oe("qt ")]):t.fragmented?B("ftyp",[oe("iso5"),C(512),oe("iso5"),oe("iso6"),oe("mp41")]):B("ftyp",[oe("isom"),C(512),oe("isom"),t.holdsAvc?oe("avc1"):[],oe("mp41")]),qr=t=>({type:"mdat",largeSize:t}),zo=t=>({type:"free",size:t}),nr=t=>B("moov",void 0,[Lc(t.creationTime,t.trackDatas),...t.trackDatas.map(e=>Wc(e,t.creationTime)),t.isFragmented?Sl(t.trackDatas):null,Rl(t)]),Lc=(t,e)=>{let r=te(Math.max(0,...e.filter(a=>a.samples.length>0).map(a=>{let o=pn(a.samples);return o.timestamp+o.duration})),us),i=Math.max(0,...e.map(a=>a.track.id))+1,s=!ut(t)||!ut(r),n=s?At:C;return W("mvhd",+s,0,[n(t),n(t),C(us),n(r),Ge(1),Fo(1),Array(10).fill(0),Do(Bo),Array(24).fill(0),C(i)])},Wc=(t,e)=>{let r=jo(t);return B("trak",void 0,[Hc(t,e),qc(t,e),r.name!==void 0?B("udta",void 0,[B("name",[...ue.encode(r.name)])]):null])},Hc=(t,e)=>{let r=pn(t.samples),i=te(r?r.timestamp+r.duration:0,us),s=!ut(e)||!ut(i),n=s?At:C,a;if(t.type==="video"){let c=t.track.metadata.rotation;a=Ro(c??0)}else a=Bo;let o=2;return t.track.metadata.disposition?.default!==!1&&(o|=1),W("tkhd",+s,o,[n(e),n(e),C(t.track.id),C(0),n(i),Array(8).fill(0),R(0),R(t.track.id),Fo(t.type==="audio"?1:0),R(0),Do(a),Ge(t.type==="video"?t.info.width:0),Ge(t.type==="video"?t.info.height:0)])},qc=(t,e)=>B("mdia",void 0,[jc(t,e),gn(!0,$c[t.type],Qc[t.type]),Gc(t)]),jc=(t,e)=>{let r=pn(t.samples),i=te(r?r.timestamp+r.duration:0,t.timescale),s=!ut(e)||!ut(i),n=s?At:C;return W("mdhd",+s,0,[n(e),n(e),C(t.timescale),n(i),R(qo(t.track.metadata.languageCode??G)),R(0)])},$c={video:"vide",audio:"soun",subtitle:"text"},Qc={video:"MediabunnyVideoHandler",audio:"MediabunnySoundHandler",subtitle:"MediabunnyTextHandler"},gn=(t,e,r,i="\0\0\0\0")=>W("hdlr",0,0,[t?oe("mhlr"):C(0),oe(e),oe(i),C(0),C(0),oe(r,!0)]),Gc=t=>B("minf",void 0,[Zc[t.type](),Jc(),rl(t)]),Kc=()=>W("vmhd",0,1,[R(0),R(0),R(0),R(0)]),Xc=()=>W("smhd",0,0,[R(0),R(0)]),Yc=()=>W("nmhd",0,0),Zc={video:Kc,audio:Xc,subtitle:Yc},Jc=()=>B("dinf",void 0,[el()]),el=()=>W("dref",0,0,[C(1)],[tl()]),tl=()=>W("url ",0,1),rl=t=>{let e=t.compositionTimeOffsetTable.length>1||t.compositionTimeOffsetTable.some(r=>r.sampleCompositionTimeOffset!==0);return B("stbl",void 0,[il(t),gl(t),e?Tl(t):null,e?xl(t):null,bl(t),kl(t),yl(t),wl(t)])},il=t=>{let e;if(t.type==="video")e=sl(zl(t.track.source._codec,t.info.decoderConfig.codec),t);else if(t.type==="audio"){let r=Ho(t.track.source._codec,t.muxer.isQuickTime);m(r),e=ll(r,t)}else t.type==="subtitle"&&(e=ml(Nl[t.track.source._codec],t));return m(e),W("stsd",0,0,[C(1)],[e])},sl=(t,e)=>B(t,[Array(6).fill(0),R(1),R(0),R(0),Array(12).fill(0),R(e.info.width),R(e.info.height),C(4718592),C(4718592),C(0),R(1),Array(32).fill(0),R(24),vo(65535)],[Ml[e.track.source._codec](e),qn(e.info.decoderConfig.colorSpace)?nl(e):null]),nl=t=>B("colr",[oe("nclx"),R(dt[t.info.decoderConfig.colorSpace.primaries]),R(ht[t.info.decoderConfig.colorSpace.transfer]),R(ft[t.info.decoderConfig.colorSpace.matrix]),$((t.info.decoderConfig.colorSpace.fullRange?1:0)<<7)]),al=t=>t.info.decoderConfig&&B("avcC",[...K(t.info.decoderConfig.description)]),ol=t=>t.info.decoderConfig&&B("hvcC",[...K(t.info.decoderConfig.description)]),Eo=t=>{if(!t.info.decoderConfig)return null;let e=t.info.decoderConfig,r=e.codec.split("."),i=Number(r[1]),s=Number(r[2]),n=Number(r[3]),a=r[4]?Number(r[4]):1,o=r[8]?Number(r[8]):Number(e.colorSpace?.fullRange??0),c=(n<<4)+(a<<1)+o,l=r[5]?Number(r[5]):e.colorSpace?.primaries?dt[e.colorSpace.primaries]:2,d=r[6]?Number(r[6]):e.colorSpace?.transfer?ht[e.colorSpace.transfer]:2,u=r[7]?Number(r[7]):e.colorSpace?.matrix?ft[e.colorSpace.matrix]:2;return W("vpcC",1,0,[$(i),$(s),$(c),$(l),$(d),$(u),R(0)])},cl=t=>B("av1C",ca(t.info.decoderConfig.codec)),ll=(t,e)=>{let r=0,i,s=16;if(Q.includes(e.track.source._codec)){let n=e.track.source._codec,{sampleSize:a}=fe(n);s=8*a,s>16&&(r=1)}return r===0?i=[Array(6).fill(0),R(1),R(r),R(0),C(0),R(e.info.numberOfChannels),R(s),R(0),R(0),R(e.info.sampleRate<2**16?e.info.sampleRate:0),R(0)]:i=[Array(6).fill(0),R(1),R(r),R(0),C(0),R(e.info.numberOfChannels),R(Math.min(s,16)),R(0),R(0),R(e.info.sampleRate<2**16?e.info.sampleRate:0),R(0),C(1),C(s/8),C(e.info.numberOfChannels*s/8),C(2)],B(t,i,[Ul(e.track.source._codec,e.muxer.isQuickTime)?.(e)??null])},mn=t=>{let e;switch(t.track.source._codec){case"aac":e=64;break;case"mp3":e=107;break;case"vorbis":e=221;break;default:throw new Error(`Unhandled audio codec: ${t.track.source._codec}`)}let r=[...$(e),...$(21),...Ao(0),...C(0),...C(0)];if(t.info.decoderConfig.description){let i=K(t.info.decoderConfig.description);r=[...r,...$(5),...fn(i.byteLength),...i]}return r=[...R(1),...$(0),...$(4),...fn(r.length),...r,...$(6),...$(1),...$(2)],r=[...$(3),...fn(r.length),...r],W("esds",0,0,r)},it=t=>B("wave",void 0,[ul(t),dl(t),B("\0\0\0\0")]),ul=t=>B("frma",[oe(Ho(t.track.source._codec,t.muxer.isQuickTime))]),dl=t=>{let{littleEndian:e}=fe(t.track.source._codec);return B("enda",[R(+e)])},hl=t=>{let e=t.info.numberOfChannels,r=3840,i=t.info.sampleRate,s=0,n=0,a=new Uint8Array(0),o=t.info.decoderConfig?.description;if(o){m(o.byteLength>=18);let c=K(o),l=Ai(c);e=l.outputChannelCount,r=l.preSkip,i=l.inputSampleRate,s=l.outputGain,n=l.channelMappingFamily,l.channelMappingTable&&(a=l.channelMappingTable)}return B("dOps",[$(0),$(e),R(r),C(i),vo(s),$(n),...a])},fl=t=>{let e=t.info.decoderConfig?.description;m(e);let r=K(e);return W("dfLa",0,0,[...r.subarray(4)])},Fe=t=>{let{littleEndian:e,sampleSize:r}=fe(t.track.source._codec),i=+e;return W("pcmC",0,0,[$(i),$(8*r)])},ml=(t,e)=>B(t,[Array(6).fill(0),R(1)],[Vl[e.track.source._codec](e)]),pl=t=>B("vttC",[...ue.encode(t.info.config.description)]);var gl=t=>W("stts",0,0,[C(t.timeToSampleTable.length),t.timeToSampleTable.map(e=>[C(e.sampleCount),C(e.sampleDelta)])]),wl=t=>{if(t.samples.every(r=>r.type==="key"))return null;let e=[...t.samples.entries()].filter(([,r])=>r.type==="key");return W("stss",0,0,[C(e.length),e.map(([r])=>C(r+1))])},bl=t=>W("stsc",0,0,[C(t.compactlyCodedChunkTable.length),t.compactlyCodedChunkTable.map(e=>[C(e.firstChunk),C(e.samplesPerChunk),C(1)])]),kl=t=>{if(t.type==="audio"&&t.info.requiresPcmTransformation){let{sampleSize:e}=fe(t.track.source._codec);return W("stsz",0,0,[C(e*t.info.numberOfChannels),C(t.samples.reduce((r,i)=>r+te(i.duration,t.timescale),0))])}return W("stsz",0,0,[C(0),C(t.samples.length),t.samples.map(e=>C(e.size))])},yl=t=>t.finalizedChunks.length>0&&q(t.finalizedChunks).offset>=2**32?W("co64",0,0,[C(t.finalizedChunks.length),t.finalizedChunks.map(e=>At(e.offset))]):W("stco",0,0,[C(t.finalizedChunks.length),t.finalizedChunks.map(e=>C(e.offset))]),Tl=t=>W("ctts",1,0,[C(t.compositionTimeOffsetTable.length),t.compositionTimeOffsetTable.map(e=>[C(e.sampleCount),st(e.sampleCompositionTimeOffset)])]),xl=t=>{let e=1/0,r=-1/0,i=1/0,s=-1/0;m(t.compositionTimeOffsetTable.length>0),m(t.samples.length>0);for(let a=0;a<t.compositionTimeOffsetTable.length;a++){let o=t.compositionTimeOffsetTable[a];e=Math.min(e,o.sampleCompositionTimeOffset),r=Math.max(r,o.sampleCompositionTimeOffset)}for(let a=0;a<t.samples.length;a++){let o=t.samples[a];i=Math.min(i,te(o.timestamp,t.timescale)),s=Math.max(s,te(o.timestamp+o.duration,t.timescale))}let n=Math.max(-e,0);return s>=2**31?null:W("cslg",0,0,[st(n),st(e),st(r),st(i),st(s)])},Sl=t=>B("mvex",void 0,t.map(Cl)),Cl=t=>W("trex",0,0,[C(t.track.id),C(1),C(0),C(0),C(0)]),wn=(t,e)=>B("moof",void 0,[_l(t),...e.map(Pl)]),_l=t=>W("mfhd",0,0,[C(t)]),Mo=t=>{let e=0,r=0,i=0,s=0,n=t.type==="delta";return r|=+n,n?e|=1:e|=2,e<<24|r<<16|i<<8|s},Pl=t=>B("traf",void 0,[El(t),Il(t),vl(t)]),El=t=>{m(t.currentChunk);let e=0;e|=8,e|=16,e|=32,e|=131072;let r=t.currentChunk.samples[1]??t.currentChunk.samples[0],i={duration:r.timescaleUnitsToNextSample,size:r.size,flags:Mo(r)};return W("tfhd",0,e,[C(t.track.id),C(i.duration),C(i.size),C(i.flags)])},Il=t=>(m(t.currentChunk),W("tfdt",1,0,[At(te(t.currentChunk.startTimestamp,t.timescale))])),vl=t=>{m(t.currentChunk);let e=t.currentChunk.samples.map(g=>g.timescaleUnitsToNextSample),r=t.currentChunk.samples.map(g=>g.size),i=t.currentChunk.samples.map(Mo),s=t.currentChunk.samples.map(g=>te(g.timestamp-g.decodeTimestamp,t.timescale)),n=new Set(e),a=new Set(r),o=new Set(i),c=new Set(s),l=o.size===2&&i[0]!==i[1],d=n.size>1,u=a.size>1,h=!l&&o.size>1,f=c.size>1||[...c].some(g=>g!==0),p=0;return p|=1,p|=4*+l,p|=256*+d,p|=512*+u,p|=1024*+h,p|=2048*+f,W("trun",1,p,[C(t.currentChunk.samples.length),C(t.currentChunk.offset-t.currentChunk.moofOffset||0),l?C(i[0]):[],t.currentChunk.samples.map((g,w)=>[d?C(e[w]):[],u?C(r[w]):[],h?C(i[w]):[],f?st(s[w]):[]])])},Uo=t=>B("mfra",void 0,[...t.map(Al),Fl()]),Al=(t,e)=>W("tfra",1,0,[C(t.track.id),C(63),C(t.finalizedChunks.length),t.finalizedChunks.map(i=>[At(te(i.samples[0].timestamp,t.timescale)),At(i.moofOffset),C(e+1),C(1),C(1)])]),Fl=()=>W("mfro",0,0,[C(0)]),No=()=>B("vtte"),Vo=(t,e,r,i,s)=>B("vttc",void 0,[s!==null?B("vsid",[st(s)]):null,r!==null?B("iden",[...ue.encode(r)]):null,e!==null?B("ctim",[...ue.encode(Po(e))]):null,i!==null?B("sttg",[...ue.encode(i)]):null,B("payl",[...ue.encode(t)])]),Lo=t=>B("vtta",[...ue.encode(t)]),Rl=t=>{let e=[],r=t.format._options.metadataFormat??"auto",i=t.output._metadataTags;if(r==="mdir"||r==="auto"&&!t.isQuickTime){let s=Dl(i);s&&e.push(s)}else if(r==="mdta"){let s=Ol(i);s&&e.push(s)}else(r==="udta"||r==="auto"&&t.isQuickTime)&&Bl(e,t.output._metadataTags);return e.length===0?null:B("udta",void 0,e)},Bl=(t,e)=>{for(let{key:r,value:i}of xr(e))switch(r){case"title":t.push(Re("\xA9nam",i));break;case"description":t.push(Re("\xA9des",i));break;case"artist":t.push(Re("\xA9ART",i));break;case"album":t.push(Re("\xA9alb",i));break;case"albumArtist":t.push(Re("albr",i));break;case"genre":t.push(Re("\xA9gen",i));break;case"date":t.push(Re("\xA9day",i.toISOString().slice(0,10)));break;case"comment":t.push(Re("\xA9cmt",i));break;case"lyrics":t.push(Re("\xA9lyr",i));break;case"raw":break;case"discNumber":case"discsTotal":case"trackNumber":case"tracksTotal":case"images":break;default:ne(r)}if(e.raw)for(let r in e.raw){let i=e.raw[r];i==null||r.length!==4||t.some(s=>s.type===r)||(typeof i=="string"?t.push(Re(r,i)):i instanceof Uint8Array&&t.push(B(r,Array.from(i))))}},Re=(t,e)=>{let r=ue.encode(e);return B(t,[R(r.length),R(qo("und")),Array.from(r)])},Io={"image/jpeg":13,"image/png":14,"image/bmp":27},Wo=(t,e)=>{let r=[];for(let{key:i,value:s}of xr(t))switch(i){case"title":r.push({key:e?"title":"\xA9nam",value:_e(s)});break;case"description":r.push({key:e?"description":"\xA9des",value:_e(s)});break;case"artist":r.push({key:e?"artist":"\xA9ART",value:_e(s)});break;case"album":r.push({key:e?"album":"\xA9alb",value:_e(s)});break;case"albumArtist":r.push({key:e?"album_artist":"aART",value:_e(s)});break;case"comment":r.push({key:e?"comment":"\xA9cmt",value:_e(s)});break;case"genre":r.push({key:e?"genre":"\xA9gen",value:_e(s)});break;case"lyrics":r.push({key:e?"lyrics":"\xA9lyr",value:_e(s)});break;case"date":r.push({key:e?"date":"\xA9day",value:_e(s.toISOString().slice(0,10))});break;case"images":for(let n of s)n.kind==="coverFront"&&r.push({key:"covr",value:B("data",[C(Io[n.mimeType]??0),C(0),Array.from(n.data)])});break;case"trackNumber":if(e){let n=t.tracksTotal!==void 0?`${s}/${t.tracksTotal}`:s.toString();r.push({key:"track",value:_e(n)})}else r.push({key:"trkn",value:B("data",[C(0),C(0),R(0),R(s),R(t.tracksTotal??0),R(0)])});break;case"discNumber":e||r.push({key:"disc",value:B("data",[C(0),C(0),R(0),R(s),R(t.discsTotal??0),R(0)])});break;case"tracksTotal":case"discsTotal":break;case"raw":break;default:ne(i)}if(t.raw)for(let i in t.raw){let s=t.raw[i];s==null||!e&&i.length!==4||r.some(n=>n.key===i)||(typeof s=="string"?r.push({key:i,value:_e(s)}):s instanceof Uint8Array?r.push({key:i,value:B("data",[C(0),C(0),Array.from(s)])}):s instanceof ke&&r.push({key:i,value:B("data",[C(Io[s.mimeType]??0),C(0),Array.from(s.data)])}))}return r},Dl=t=>{let e=Wo(t,!1);return e.length===0?null:W("meta",0,0,void 0,[gn(!1,"mdir","","appl"),B("ilst",void 0,e.map(r=>B(r.key,void 0,[r.value])))])},Ol=t=>{let e=Wo(t,!0);return e.length===0?null:B("meta",void 0,[gn(!1,"mdta",""),W("keys",0,0,[C(e.length)],e.map(r=>B("mdta",[...ue.encode(r.key)]))),B("ilst",void 0,e.map((r,i)=>{let s=String.fromCharCode(...C(i+1));return B(s,void 0,[r.value])}))])},_e=t=>B("data",[C(1),C(0),...ue.encode(t)]),zl=(t,e)=>{switch(t){case"avc":return e.startsWith("avc3")?"avc3":"avc1";case"hevc":return"hvc1";case"vp8":return"vp08";case"vp9":return"vp09";case"av1":return"av01"}},Ml={avc:al,hevc:ol,vp8:Eo,vp9:Eo,av1:cl},Ho=(t,e)=>{switch(t){case"aac":return"mp4a";case"mp3":return"mp4a";case"opus":return"Opus";case"vorbis":return"mp4a";case"flac":return"fLaC";case"ulaw":return"ulaw";case"alaw":return"alaw";case"pcm-u8":return"raw ";case"pcm-s8":return"sowt"}if(e)switch(t){case"pcm-s16":return"sowt";case"pcm-s16be":return"twos";case"pcm-s24":return"in24";case"pcm-s24be":return"in24";case"pcm-s32":return"in32";case"pcm-s32be":return"in32";case"pcm-f32":return"fl32";case"pcm-f32be":return"fl32";case"pcm-f64":return"fl64";case"pcm-f64be":return"fl64"}else switch(t){case"pcm-s16":return"ipcm";case"pcm-s16be":return"ipcm";case"pcm-s24":return"ipcm";case"pcm-s24be":return"ipcm";case"pcm-s32":return"ipcm";case"pcm-s32be":return"ipcm";case"pcm-f32":return"fpcm";case"pcm-f32be":return"fpcm";case"pcm-f64":return"fpcm";case"pcm-f64be":return"fpcm"}},Ul=(t,e)=>{switch(t){case"aac":return mn;case"mp3":return mn;case"opus":return hl;case"vorbis":return mn;case"flac":return fl}if(e)switch(t){case"pcm-s24":return it;case"pcm-s24be":return it;case"pcm-s32":return it;case"pcm-s32be":return it;case"pcm-f32":return it;case"pcm-f32be":return it;case"pcm-f64":return it;case"pcm-f64be":return it}else switch(t){case"pcm-s16":return Fe;case"pcm-s16be":return Fe;case"pcm-s24":return Fe;case"pcm-s24be":return Fe;case"pcm-s32":return Fe;case"pcm-s32be":return Fe;case"pcm-f32":return Fe;case"pcm-f32be":return Fe;case"pcm-f64":return Fe;case"pcm-f64be":return Fe}return null},Nl={webvtt:"wvtt"},Vl={webvtt:pl},qo=t=>{m(t.length===3);let e=0;for(let r=0;r<3;r++)e<<=5,e+=t.charCodeAt(r)-96;return e};var ds=class{constructor(){this.ensureMonotonicity=!1,this.trackedWrites=null,this.trackedStart=-1,this.trackedEnd=-1}start(){}maybeTrackWrites(e){if(!this.trackedWrites)return;let r=this.getPos();if(r<this.trackedStart){if(r+e.byteLength<=this.trackedStart)return;e=e.subarray(this.trackedStart-r),r=0}let i=r+e.byteLength-this.trackedStart,s=this.trackedWrites.byteLength;for(;s<i;)s*=2;if(s!==this.trackedWrites.byteLength){let n=new Uint8Array(s);n.set(this.trackedWrites,0),this.trackedWrites=n}this.trackedWrites.set(e,r-this.trackedStart),this.trackedEnd=Math.max(this.trackedEnd,r+e.byteLength)}startTrackingWrites(){this.trackedWrites=new Uint8Array(2**10),this.trackedStart=this.getPos(),this.trackedEnd=this.trackedStart}stopTrackingWrites(){if(!this.trackedWrites)throw new Error("Internal error: Can't get tracked writes since nothing was tracked.");let r={data:this.trackedWrites.subarray(0,this.trackedEnd-this.trackedStart),start:this.trackedStart,end:this.trackedEnd};return this.trackedWrites=null,r}},bn=2**16,kn=2**32,ar=class extends ds{constructor(e){if(super(),this.pos=0,this.maxPos=0,this.target=e,this.supportsResize="resize"in new ArrayBuffer(0),this.supportsResize)try{this.buffer=new ArrayBuffer(bn,{maxByteLength:kn})}catch{this.buffer=new ArrayBuffer(bn),this.supportsResize=!1}else this.buffer=new ArrayBuffer(bn);this.bytes=new Uint8Array(this.buffer)}ensureSize(e){let r=this.buffer.byteLength;for(;r<e;)r*=2;if(r!==this.buffer.byteLength){if(r>kn)throw new Error(`ArrayBuffer exceeded maximum size of ${kn} bytes. Please consider using another target.`);if(this.supportsResize)this.buffer.resize(r);else{let i=new ArrayBuffer(r),s=new Uint8Array(i);s.set(this.bytes,0),this.buffer=i,this.bytes=s}}}write(e){this.maybeTrackWrites(e),this.ensureSize(this.pos+e.byteLength),this.bytes.set(e,this.pos),this.target.onwrite?.(this.pos,this.pos+e.byteLength),this.pos+=e.byteLength,this.maxPos=Math.max(this.maxPos,this.pos)}seek(e){this.pos=e}getPos(){return this.pos}async flush(){}async finalize(){this.ensureSize(this.pos),this.target.buffer=this.buffer.slice(0,Math.max(this.maxPos,this.pos))}async close(){}getSlice(e,r){return this.bytes.slice(e,r)}},Ll=2**24,Wl=2,hs=class extends ds{constructor(e){super(),this.pos=0,this.sections=[],this.lastWriteEnd=0,this.lastFlushEnd=0,this.writer=null,this.chunks=[],this.target=e,this.chunked=e._options.chunked??!1,this.chunkSize=e._options.chunkSize??Ll}start(){this.writer=this.target._writable.getWriter()}write(e){if(this.pos>this.lastWriteEnd){let r=this.pos-this.lastWriteEnd;this.pos=this.lastWriteEnd,this.write(new Uint8Array(r))}this.maybeTrackWrites(e),this.sections.push({data:e.slice(),start:this.pos}),this.target.onwrite?.(this.pos,this.pos+e.byteLength),this.pos+=e.byteLength,this.lastWriteEnd=Math.max(this.lastWriteEnd,this.pos)}seek(e){this.pos=e}getPos(){return this.pos}async flush(){if(this.pos>this.lastWriteEnd){let i=this.pos-this.lastWriteEnd;this.pos=this.lastWriteEnd,this.write(new Uint8Array(i))}if(m(this.writer),this.sections.length===0)return;let e=[],r=[...this.sections].sort((i,s)=>i.start-s.start);e.push({start:r[0].start,size:r[0].data.byteLength});for(let i=1;i<r.length;i++){let s=e[e.length-1],n=r[i];n.start<=s.start+s.size?s.size=Math.max(s.size,n.start+n.data.byteLength-s.start):e.push({start:n.start,size:n.data.byteLength})}for(let i of e){i.data=new Uint8Array(i.size);for(let s of this.sections)i.start<=s.start&&s.start<i.start+i.size&&i.data.set(s.data,s.start-i.start);if(this.writer.desiredSize!==null&&this.writer.desiredSize<=0&&await this.writer.ready,this.chunked)this.writeDataIntoChunks(i.data,i.start),this.tryToFlushChunks();else{if(this.ensureMonotonicity&&i.start!==this.lastFlushEnd)throw new Error("Internal error: Monotonicity violation.");this.writer.write({type:"write",data:i.data,position:i.start}),this.lastFlushEnd=i.start+i.data.byteLength}}this.sections.length=0}writeDataIntoChunks(e,r){let i=this.chunks.findIndex(c=>c.start<=r&&r<c.start+this.chunkSize);i===-1&&(i=this.createChunk(r));let s=this.chunks[i],n=r-s.start,a=e.subarray(0,Math.min(this.chunkSize-n,e.byteLength));s.data.set(a,n);let o={start:n,end:n+a.byteLength};if(this.insertSectionIntoChunk(s,o),s.written[0].start===0&&s.written[0].end===this.chunkSize&&(s.shouldFlush=!0),this.chunks.length>Wl){for(let c=0;c<this.chunks.length-1;c++)this.chunks[c].shouldFlush=!0;this.tryToFlushChunks()}a.byteLength<e.byteLength&&this.writeDataIntoChunks(e.subarray(a.byteLength),r+a.byteLength)}insertSectionIntoChunk(e,r){let i=0,s=e.written.length-1,n=-1;for(;i<=s;){let a=Math.floor(i+(s-i+1)/2);e.written[a].start<=r.start?(i=a+1,n=a):s=a-1}for(e.written.splice(n+1,0,r),(n===-1||e.written[n].end<r.start)&&n++;n<e.written.length-1&&e.written[n].end>=e.written[n+1].start;)e.written[n].end=Math.max(e.written[n].end,e.written[n+1].end),e.written.splice(n+1,1)}createChunk(e){let i={start:Math.floor(e/this.chunkSize)*this.chunkSize,data:new Uint8Array(this.chunkSize),written:[],shouldFlush:!1};return this.chunks.push(i),this.chunks.sort((s,n)=>s.start-n.start),this.chunks.indexOf(i)}tryToFlushChunks(e=!1){m(this.writer);for(let r=0;r<this.chunks.length;r++){let i=this.chunks[r];if(!(!i.shouldFlush&&!e)){for(let s of i.written){let n=i.start+s.start;if(this.ensureMonotonicity&&n!==this.lastFlushEnd)throw new Error("Internal error: Monotonicity violation.");this.writer.write({type:"write",data:i.data.subarray(s.start,s.end),position:n}),this.lastFlushEnd=i.start+s.end}this.chunks.splice(r--,1)}}}finalize(){return this.chunked&&this.tryToFlushChunks(!0),m(this.writer),this.writer.close()}async close(){return this.writer?.close()}};var Ft=class{constructor(){this._output=null,this.onwrite=null}},jr=class extends Ft{constructor(){super(...arguments),this.buffer=null}_createWriter(){return new ar(this)}},$r=class extends Ft{constructor(e,r={}){if(super(),!(e instanceof WritableStream))throw new TypeError("StreamTarget requires a WritableStream instance.");if(r!=null&&typeof r!="object")throw new TypeError("StreamTarget options, when provided, must be an object.");if(r.chunked!==void 0&&typeof r.chunked!="boolean")throw new TypeError("options.chunked, when provided, must be a boolean.");if(r.chunkSize!==void 0&&(!Number.isInteger(r.chunkSize)||r.chunkSize<1024))throw new TypeError("options.chunkSize, when provided, must be an integer and not smaller than 1024.");this._writable=e,this._options=r}_createWriter(){return new hs(this)}};var us=1e3,Hl=2082844800,jo=t=>{let e={},r=t.track;return r.metadata.name!==void 0&&(e.name=r.metadata.name),e},te=(t,e,r=!0)=>{let i=t*e;return r?Math.round(i):i},fs=class extends Ci{constructor(e,r){super(e),this.auxTarget=new jr,this.auxWriter=this.auxTarget._createWriter(),this.auxBoxWriter=new Hr(this.auxWriter),this.mdat=null,this.ftypSize=null,this.trackDatas=[],this.allTracksKnown=se(),this.creationTime=Math.floor(Date.now()/1e3)+Hl,this.finalizedChunks=[],this.nextFragmentNumber=1,this.maxWrittenTimestamp=-1/0,this.format=r,this.writer=e._writer,this.boxWriter=new Hr(this.writer),this.isQuickTime=r instanceof or;let i=this.writer instanceof ar?"in-memory":!1;this.fastStart=r._options.fastStart??i,this.isFragmented=this.fastStart==="fragmented",(this.fastStart==="in-memory"||this.isFragmented)&&(this.writer.ensureMonotonicity=!0),this.minimumFragmentDuration=r._options.minimumFragmentDuration??1}async start(){let e=await this.mutex.acquire(),r=this.output._tracks.some(i=>i.type==="video"&&i.source._codec==="avc");if(this.format._options.onFtyp&&this.writer.startTrackingWrites(),this.boxWriter.writeBox(Oo({isQuickTime:this.isQuickTime,holdsAvc:r,fragmented:this.isFragmented})),this.format._options.onFtyp){let{data:i,start:s}=this.writer.stopTrackingWrites();this.format._options.onFtyp(i,s)}if(this.ftypSize=this.writer.getPos(),this.fastStart!=="in-memory")if(this.fastStart==="reserve"){for(let i of this.output._tracks)if(i.metadata.maximumPacketCount===void 0)throw new Error("All tracks must specify maximumPacketCount in their metadata when using fastStart: 'reserve'.")}else this.isFragmented||(this.format._options.onMdat&&this.writer.startTrackingWrites(),this.mdat=qr(!0),this.boxWriter.writeBox(this.mdat));await this.writer.flush(),e()}allTracksAreKnown(){for(let e of this.output._tracks)if(!e.source._closed&&!this.trackDatas.some(r=>r.track===e))return!1;return!0}async getMimeType(){await this.allTracksKnown.promise;let e=this.trackDatas.map(r=>r.type==="video"||r.type==="audio"?r.info.decoderConfig.codec:{webvtt:"wvtt"}[r.track.source._codec]);return Di({isQuickTime:this.isQuickTime,hasVideo:this.trackDatas.some(r=>r.type==="video"),hasAudio:this.trackDatas.some(r=>r.type==="audio"),codecStrings:e})}getVideoTrackData(e,r,i){let s=this.trackDatas.find(l=>l.track===e);if(s)return s;ma(i),m(i),m(i.decoderConfig);let n={...i.decoderConfig};m(n.codedWidth!==void 0),m(n.codedHeight!==void 0);let a=!1;if(e.source._codec==="avc"&&!n.description){let l=Pi(r.data);if(!l)throw new Error("Couldn't extract an AVCDecoderConfigurationRecord from the AVC packet. Make sure the packets are in Annex B format (as specified in ITU-T-REC-H.264) when not providing a description, or provide a description (must be an AVCDecoderConfigurationRecord as specified in ISO 14496-15) and ensure the packets are in AVCC format.");n.description=ya(l),a=!0}else if(e.source._codec==="hevc"&&!n.description){let l=Ei(r.data);if(!l)throw new Error("Couldn't extract an HEVCDecoderConfigurationRecord from the HEVC packet. Make sure the packets are in Annex B format (as specified in ITU-T-REC-H.265) when not providing a description, or provide a description (must be an HEVCDecoderConfigurationRecord as specified in ISO 14496-15) and ensure the packets are in HEVC format.");n.description=xa(l),a=!0}let o=Yn(1/(e.metadata.frameRate??57600),1e6).denominator,c={muxer:this,track:e,type:"video",info:{width:n.codedWidth,height:n.codedHeight,decoderConfig:n,requiresAnnexBTransformation:a},timescale:o,samples:[],sampleQueue:[],timestampProcessingQueue:[],timeToSampleTable:[],compositionTimeOffsetTable:[],lastTimescaleUnits:null,lastSample:null,finalizedChunks:[],currentChunk:null,compactlyCodedChunkTable:[]};return this.trackDatas.push(c),this.trackDatas.sort((l,d)=>l.track.id-d.track.id),this.allTracksAreKnown()&&this.allTracksKnown.resolve(),c}getAudioTrackData(e,r){let i=this.trackDatas.find(n=>n.track===e);if(i)return i;pa(r),m(r),m(r.decoderConfig);let s={muxer:this,track:e,type:"audio",info:{numberOfChannels:r.decoderConfig.numberOfChannels,sampleRate:r.decoderConfig.sampleRate,decoderConfig:r.decoderConfig,requiresPcmTransformation:!this.isFragmented&&Q.includes(e.source._codec)},timescale:r.decoderConfig.sampleRate,samples:[],sampleQueue:[],timestampProcessingQueue:[],timeToSampleTable:[],compositionTimeOffsetTable:[],lastTimescaleUnits:null,lastSample:null,finalizedChunks:[],currentChunk:null,compactlyCodedChunkTable:[]};return this.trackDatas.push(s),this.trackDatas.sort((n,a)=>n.track.id-a.track.id),this.allTracksAreKnown()&&this.allTracksKnown.resolve(),s}getSubtitleTrackData(e,r){let i=this.trackDatas.find(n=>n.track===e);if(i)return i;ga(r),m(r),m(r.config);let s={muxer:this,track:e,type:"subtitle",info:{config:r.config},timescale:1e3,samples:[],sampleQueue:[],timestampProcessingQueue:[],timeToSampleTable:[],compositionTimeOffsetTable:[],lastTimescaleUnits:null,lastSample:null,finalizedChunks:[],currentChunk:null,compactlyCodedChunkTable:[],lastCueEndTimestamp:0,cueQueue:[],nextSourceId:0,cueToSourceId:new WeakMap};return this.trackDatas.push(s),this.trackDatas.sort((n,a)=>n.track.id-a.track.id),this.allTracksAreKnown()&&this.allTracksKnown.resolve(),s}async addEncodedVideoPacket(e,r,i){let s=await this.mutex.acquire();try{let n=this.getVideoTrackData(e,r,i),a=r.data;if(n.info.requiresAnnexBTransformation){let l=Nt(a);if(l.length===0)throw new Error("Failed to transform packet data. Make sure all packets are provided in Annex B format, as specified in ITU-T-REC-H.264 and ITU-T-REC-H.265.");a=Bs(l,4)}let o=this.validateAndNormalizeTimestamp(n.track,r.timestamp,r.type==="key"),c=this.createSampleForTrack(n,a,o,r.duration,r.type);await this.registerSample(n,c)}finally{s()}}async addEncodedAudioPacket(e,r,i){let s=await this.mutex.acquire();try{let n=this.getAudioTrackData(e,i),a=this.validateAndNormalizeTimestamp(n.track,r.timestamp,r.type==="key"),o=this.createSampleForTrack(n,r.data,a,r.duration,r.type);n.info.requiresPcmTransformation&&await this.maybePadWithSilence(n,a),await this.registerSample(n,o)}finally{s()}}async maybePadWithSilence(e,r){let i=q(e.samples),s=i?i.timestamp+i.duration:0,n=r-s,a=te(n,e.timescale);if(a>0){let{sampleSize:o,silentValue:c}=fe(e.info.decoderConfig.codec),l=a*e.info.numberOfChannels,d=new Uint8Array(o*l).fill(c),u=this.createSampleForTrack(e,new Uint8Array(d.buffer),s,n,"key");await this.registerSample(e,u)}}async addSubtitleCue(e,r,i){let s=await this.mutex.acquire();try{let n=this.getSubtitleTrackData(e,i);this.validateAndNormalizeTimestamp(n.track,r.timestamp,!0),e.source._codec==="webvtt"&&(n.cueQueue.push(r),await this.processWebVTTCues(n,r.timestamp))}finally{s()}}async processWebVTTCues(e,r){for(;e.cueQueue.length>0;){let i=new Set([]);for(let l of e.cueQueue)m(l.timestamp<=r),m(e.lastCueEndTimestamp<=l.timestamp+l.duration),i.add(Math.max(l.timestamp,e.lastCueEndTimestamp)),i.add(l.timestamp+l.duration);let s=[...i].sort((l,d)=>l-d),n=s[0],a=s[1]??n;if(r<a)break;if(e.lastCueEndTimestamp<n){this.auxWriter.seek(0);let l=No();this.auxBoxWriter.writeBox(l);let d=this.auxWriter.getSlice(0,this.auxWriter.getPos()),u=this.createSampleForTrack(e,d,e.lastCueEndTimestamp,n-e.lastCueEndTimestamp,"key");await this.registerSample(e,u),e.lastCueEndTimestamp=n}this.auxWriter.seek(0);for(let l=0;l<e.cueQueue.length;l++){let d=e.cueQueue[l];if(d.timestamp>=a)break;dn.lastIndex=0;let u=dn.test(d.text),h=d.timestamp+d.duration,f=e.cueToSourceId.get(d);if(f===void 0&&a<h&&(f=e.nextSourceId++,e.cueToSourceId.set(d,f)),d.notes){let g=Lo(d.notes);this.auxBoxWriter.writeBox(g)}let p=Vo(d.text,u?n:null,d.identifier??null,d.settings??null,f??null);this.auxBoxWriter.writeBox(p),h===a&&e.cueQueue.splice(l--,1)}let o=this.auxWriter.getSlice(0,this.auxWriter.getPos()),c=this.createSampleForTrack(e,o,n,a-n,"key");await this.registerSample(e,c),e.lastCueEndTimestamp=a}}createSampleForTrack(e,r,i,s,n){return{timestamp:i,decodeTimestamp:i,duration:s,data:r,size:r.byteLength,type:n,timescaleUnitsToNextSample:te(s,e.timescale)}}processTimestamps(e,r){if(e.timestampProcessingQueue.length===0)return;if(e.type==="audio"&&e.info.requiresPcmTransformation){let s=0;for(let n=0;n<e.timestampProcessingQueue.length;n++){let a=e.timestampProcessingQueue[n],o=te(a.duration,e.timescale);s+=o}if(e.timeToSampleTable.length===0)e.timeToSampleTable.push({sampleCount:s,sampleDelta:1});else{let n=q(e.timeToSampleTable);n.sampleCount+=s}e.timestampProcessingQueue.length=0;return}let i=e.timestampProcessingQueue.map(s=>s.timestamp).sort((s,n)=>s-n);for(let s=0;s<e.timestampProcessingQueue.length;s++){let n=e.timestampProcessingQueue[s];n.decodeTimestamp=i[s],!this.isFragmented&&e.lastTimescaleUnits===null&&(n.decodeTimestamp=0);let a=te(n.timestamp-n.decodeTimestamp,e.timescale),o=te(n.duration,e.timescale);if(e.lastTimescaleUnits!==null){m(e.lastSample);let c=te(n.decodeTimestamp,e.timescale,!1),l=Math.round(c-e.lastTimescaleUnits);if(m(l>=0),e.lastTimescaleUnits+=l,e.lastSample.timescaleUnitsToNextSample=l,!this.isFragmented){let d=q(e.timeToSampleTable);if(m(d),d.sampleCount===1){d.sampleDelta=l;let h=e.timeToSampleTable[e.timeToSampleTable.length-2];h&&h.sampleDelta===l&&(h.sampleCount++,e.timeToSampleTable.pop(),d=h)}else d.sampleDelta!==l&&(d.sampleCount--,e.timeToSampleTable.push(d={sampleCount:1,sampleDelta:l}));d.sampleDelta===o?d.sampleCount++:e.timeToSampleTable.push({sampleCount:1,sampleDelta:o});let u=q(e.compositionTimeOffsetTable);m(u),u.sampleCompositionTimeOffset===a?u.sampleCount++:e.compositionTimeOffsetTable.push({sampleCount:1,sampleCompositionTimeOffset:a})}}else e.lastTimescaleUnits=te(n.decodeTimestamp,e.timescale,!1),this.isFragmented||(e.timeToSampleTable.push({sampleCount:1,sampleDelta:o}),e.compositionTimeOffsetTable.push({sampleCount:1,sampleCompositionTimeOffset:a}));e.lastSample=n}if(e.timestampProcessingQueue.length=0,m(e.lastSample),m(e.lastTimescaleUnits!==null),r!==void 0&&e.lastSample.timescaleUnitsToNextSample===0){m(r.type==="key");let s=te(r.timestamp,e.timescale,!1),n=Math.round(s-e.lastTimescaleUnits);e.lastSample.timescaleUnitsToNextSample=n}}async registerSample(e,r){r.type==="key"&&this.processTimestamps(e,r),e.timestampProcessingQueue.push(r),this.isFragmented?(e.sampleQueue.push(r),await this.interleaveSamples()):this.fastStart==="reserve"?await this.registerSampleFastStartReserve(e,r):await this.addSampleToTrack(e,r)}async addSampleToTrack(e,r){if(!this.isFragmented&&(e.samples.push(r),this.fastStart==="reserve")){let s=e.track.metadata.maximumPacketCount;if(m(s!==void 0),e.samples.length>s)throw new Error(`Track #${e.track.id} has already reached the maximum packet count (${s}). Either add less packets or increase the maximum packet count.`)}let i=!1;if(!e.currentChunk)i=!0;else{e.currentChunk.startTimestamp=Math.min(e.currentChunk.startTimestamp,r.timestamp);let s=r.timestamp-e.currentChunk.startTimestamp;if(this.isFragmented){let n=this.trackDatas.every(a=>{if(e===a)return r.type==="key";let o=a.sampleQueue[0];return o?o.type==="key":a.track.source._closed});s>=this.minimumFragmentDuration&&n&&r.timestamp>this.maxWrittenTimestamp&&(i=!0,await this.finalizeFragment())}else i=s>=.5}i&&(e.currentChunk&&await this.finalizeCurrentChunk(e),e.currentChunk={startTimestamp:r.timestamp,samples:[],offset:null,moofOffset:null}),m(e.currentChunk),e.currentChunk.samples.push(r),this.isFragmented&&(this.maxWrittenTimestamp=Math.max(this.maxWrittenTimestamp,r.timestamp))}async finalizeCurrentChunk(e){if(m(!this.isFragmented),!e.currentChunk)return;e.finalizedChunks.push(e.currentChunk),this.finalizedChunks.push(e.currentChunk);let r=e.currentChunk.samples.length;if(e.type==="audio"&&e.info.requiresPcmTransformation&&(r=e.currentChunk.samples.reduce((i,s)=>i+te(s.duration,e.timescale),0)),(e.compactlyCodedChunkTable.length===0||q(e.compactlyCodedChunkTable).samplesPerChunk!==r)&&e.compactlyCodedChunkTable.push({firstChunk:e.finalizedChunks.length,samplesPerChunk:r}),this.fastStart==="in-memory"){e.currentChunk.offset=0;return}e.currentChunk.offset=this.writer.getPos();for(let i of e.currentChunk.samples)m(i.data),this.writer.write(i.data),i.data=null;await this.writer.flush()}async interleaveSamples(e=!1){if(m(this.isFragmented),!(!e&&!this.allTracksAreKnown()))e:for(;;){let r=null,i=1/0;for(let n of this.trackDatas){if(!e&&n.sampleQueue.length===0&&!n.track.source._closed)break e;n.sampleQueue.length>0&&n.sampleQueue[0].timestamp<i&&(r=n,i=n.sampleQueue[0].timestamp)}if(!r)break;let s=r.sampleQueue.shift();await this.addSampleToTrack(r,s)}}async finalizeFragment(e=!0){m(this.isFragmented);let r=this.nextFragmentNumber++;if(r===1){this.format._options.onMoov&&this.writer.startTrackingWrites();let f=nr(this);if(this.boxWriter.writeBox(f),this.format._options.onMoov){let{data:p,start:g}=this.writer.stopTrackingWrites();this.format._options.onMoov(p,g)}}let i=this.trackDatas.filter(f=>f.currentChunk),s=wn(r,i),n=this.writer.getPos(),a=n+this.boxWriter.measureBox(s),o=a+ye,c=1/0;for(let f of i){f.currentChunk.offset=o,f.currentChunk.moofOffset=n;for(let p of f.currentChunk.samples)o+=p.size;c=Math.min(c,f.currentChunk.startTimestamp)}let l=o-a,d=l>=2**32;if(d)for(let f of i)f.currentChunk.offset+=Le-ye;this.format._options.onMoof&&this.writer.startTrackingWrites();let u=wn(r,i);if(this.boxWriter.writeBox(u),this.format._options.onMoof){let{data:f,start:p}=this.writer.stopTrackingWrites();this.format._options.onMoof(f,p,c)}m(this.writer.getPos()===a),this.format._options.onMdat&&this.writer.startTrackingWrites();let h=qr(d);h.size=l,this.boxWriter.writeBox(h),this.writer.seek(a+(d?Le:ye));for(let f of i)for(let p of f.currentChunk.samples)this.writer.write(p.data),p.data=null;if(this.format._options.onMdat){let{data:f,start:p}=this.writer.stopTrackingWrites();this.format._options.onMdat(f,p)}for(let f of i)f.finalizedChunks.push(f.currentChunk),this.finalizedChunks.push(f.currentChunk),f.currentChunk=null;e&&await this.writer.flush()}async registerSampleFastStartReserve(e,r){if(this.allTracksAreKnown()){if(!this.mdat){let i=nr(this),n=this.boxWriter.measureBox(i)+this.computeSampleTableSizeUpperBound()+4096;m(this.ftypSize!==null),this.writer.seek(this.ftypSize+n),this.format._options.onMdat&&this.writer.startTrackingWrites(),this.mdat=qr(!0),this.boxWriter.writeBox(this.mdat);for(let a of this.trackDatas){for(let o of a.sampleQueue)await this.addSampleToTrack(a,o);a.sampleQueue.length=0}}await this.addSampleToTrack(e,r)}else e.sampleQueue.push(r)}computeSampleTableSizeUpperBound(){m(this.fastStart==="reserve");let e=0;for(let r of this.trackDatas){let i=r.track.metadata.maximumPacketCount;m(i!==void 0),e+=8*Math.ceil(2/3*i),e+=4*i,e+=8*Math.ceil(2/3*i),e+=12*Math.ceil(2/3*i),e+=4*i,e+=8*i}return e}async onTrackClose(e){let r=await this.mutex.acquire();if(e.type==="subtitle"&&e.source._codec==="webvtt"){let i=this.trackDatas.find(s=>s.track===e);i&&await this.processWebVTTCues(i,1/0)}this.allTracksAreKnown()&&this.allTracksKnown.resolve(),this.isFragmented&&await this.interleaveSamples(),r()}async finalize(){let e=await this.mutex.acquire();this.allTracksKnown.resolve();for(let r of this.trackDatas)r.type==="subtitle"&&r.track.source._codec==="webvtt"&&await this.processWebVTTCues(r,1/0);if(this.isFragmented){await this.interleaveSamples(!0);for(let r of this.trackDatas)this.processTimestamps(r);await this.finalizeFragment(!1)}else for(let r of this.trackDatas)this.processTimestamps(r),await this.finalizeCurrentChunk(r);if(this.fastStart==="in-memory"){this.mdat=qr(!1);let r;for(let s=0;s<2;s++){let n=nr(this),a=this.boxWriter.measureBox(n);r=this.boxWriter.measureBox(this.mdat);let o=this.writer.getPos()+a+r;for(let c of this.finalizedChunks){c.offset=o;for(let{data:l}of c.samples)m(l),o+=l.byteLength,r+=l.byteLength}if(o<2**32)break;r>=2**32&&(this.mdat.largeSize=!0)}this.format._options.onMoov&&this.writer.startTrackingWrites();let i=nr(this);if(this.boxWriter.writeBox(i),this.format._options.onMoov){let{data:s,start:n}=this.writer.stopTrackingWrites();this.format._options.onMoov(s,n)}this.format._options.onMdat&&this.writer.startTrackingWrites(),this.mdat.size=r,this.boxWriter.writeBox(this.mdat);for(let s of this.finalizedChunks)for(let n of s.samples)m(n.data),this.writer.write(n.data),n.data=null;if(this.format._options.onMdat){let{data:s,start:n}=this.writer.stopTrackingWrites();this.format._options.onMdat(s,n)}}else if(this.isFragmented){let r=this.writer.getPos(),i=Uo(this.trackDatas);this.boxWriter.writeBox(i);let s=this.writer.getPos()-r;this.writer.seek(this.writer.getPos()-4),this.boxWriter.writeU32(s)}else{m(this.mdat);let r=this.boxWriter.offsets.get(this.mdat);m(r!==void 0);let i=this.writer.getPos()-r;if(this.mdat.size=i,this.mdat.largeSize=i>=2**32,this.boxWriter.patchBox(this.mdat),this.format._options.onMdat){let{data:n,start:a}=this.writer.stopTrackingWrites();this.format._options.onMdat(n,a)}let s=nr(this);if(this.fastStart==="reserve"){m(this.ftypSize!==null),this.writer.seek(this.ftypSize),this.format._options.onMoov&&this.writer.startTrackingWrites(),this.boxWriter.writeBox(s);let n=this.boxWriter.offsets.get(this.mdat)-this.writer.getPos();this.boxWriter.writeBox(zo(n))}else this.format._options.onMoov&&this.writer.startTrackingWrites(),this.boxWriter.writeBox(s);if(this.format._options.onMoov){let{data:n,start:a}=this.writer.stopTrackingWrites();this.format._options.onMoov(n,a)}}e()}};var cr=class{getSupportedVideoCodecs(){return this.getSupportedCodecs().filter(e=>Ae.includes(e))}getSupportedAudioCodecs(){return this.getSupportedCodecs().filter(e=>Ue.includes(e))}getSupportedSubtitleCodecs(){return this.getSupportedCodecs().filter(e=>bt.includes(e))}_codecUnsupportedHint(e){return""}},Qr=class extends cr{constructor(e={}){if(!e||typeof e!="object")throw new TypeError("options must be an object.");if(e.fastStart!==void 0&&![!1,"in-memory","reserve","fragmented"].includes(e.fastStart))throw new TypeError("options.fastStart, when provided, must be false, 'in-memory', 'reserve', or 'fragmented'.");if(e.minimumFragmentDuration!==void 0&&(!Number.isFinite(e.minimumFragmentDuration)||e.minimumFragmentDuration<0))throw new TypeError("options.minimumFragmentDuration, when provided, must be a non-negative number.");if(e.onFtyp!==void 0&&typeof e.onFtyp!="function")throw new TypeError("options.onFtyp, when provided, must be a function.");if(e.onMoov!==void 0&&typeof e.onMoov!="function")throw new TypeError("options.onMoov, when provided, must be a function.");if(e.onMdat!==void 0&&typeof e.onMdat!="function")throw new TypeError("options.onMdat, when provided, must be a function.");if(e.onMoof!==void 0&&typeof e.onMoof!="function")throw new TypeError("options.onMoof, when provided, must be a function.");if(e.metadataFormat!==void 0&&!["mdir","mdta","udta","auto"].includes(e.metadataFormat))throw new TypeError("options.metadataFormat, when provided, must be either 'auto', 'mdir', 'mdta', or 'udta'.");super(),this._options=e}getSupportedTrackCounts(){return{video:{min:0,max:1/0},audio:{min:0,max:1/0},subtitle:{min:0,max:1/0},total:{min:1,max:2**32-1}}}get supportsVideoRotationMetadata(){return!0}_createMuxer(e){return new fs(e,this)}},lr=class extends Qr{constructor(e){super(e)}get _name(){return"MP4"}get fileExtension(){return".mp4"}get mimeType(){return"video/mp4"}getSupportedCodecs(){return[...Ae,...As,"pcm-s16","pcm-s16be","pcm-s24","pcm-s24be","pcm-s32","pcm-s32be","pcm-f32","pcm-f32be","pcm-f64","pcm-f64be",...bt]}_codecUnsupportedHint(e){return new or().getSupportedCodecs().includes(e)?" Switching to MOV will grant support for this codec.":""}},or=class extends Qr{constructor(e){super(e)}get _name(){return"MOV"}get fileExtension(){return".mov"}get mimeType(){return"video/quicktime"}getSupportedCodecs(){return[...Ae,...Ue]}_codecUnsupportedHint(e){return new lr().getSupportedCodecs().includes(e)?" Switching to MP4 will grant support for this codec.":""}};var $o=t=>{if(!t||typeof t!="object")throw new TypeError("Encoding config must be an object.");if(!Ae.includes(t.codec))throw new TypeError(`Invalid video codec '${t.codec}'. Must be one of: ${Ae.join(", ")}.`);if(!(t.bitrate instanceof ur)&&(!Number.isInteger(t.bitrate)||t.bitrate<=0))throw new TypeError("config.bitrate must be a positive integer or a quality.");if(t.keyFrameInterval!==void 0&&(!Number.isFinite(t.keyFrameInterval)||t.keyFrameInterval<0))throw new TypeError("config.keyFrameInterval, when provided, must be a non-negative number.");if(t.sizeChangeBehavior!==void 0&&!["deny","passThrough","fill","contain","cover"].includes(t.sizeChangeBehavior))throw new TypeError("config.sizeChangeBehavior, when provided, must be 'deny', 'passThrough', 'fill', 'contain' or 'cover'.");if(t.onEncodedPacket!==void 0&&typeof t.onEncodedPacket!="function")throw new TypeError("config.onEncodedChunk, when provided, must be a function.");if(t.onEncoderConfig!==void 0&&typeof t.onEncoderConfig!="function")throw new TypeError("config.onEncoderConfig, when provided, must be a function.");ql(t.codec,t)},ql=(t,e)=>{if(!e||typeof e!="object")throw new TypeError("Encoding options must be an object.");if(e.alpha!==void 0&&!["discard","keep"].includes(e.alpha))throw new TypeError("options.alpha, when provided, must be 'discard' or 'keep'.");if(e.bitrateMode!==void 0&&!["constant","variable"].includes(e.bitrateMode))throw new TypeError("bitrateMode, when provided, must be 'constant' or 'variable'.");if(e.latencyMode!==void 0&&!["quality","realtime"].includes(e.latencyMode))throw new TypeError("latencyMode, when provided, must be 'quality' or 'realtime'.");if(e.fullCodecString!==void 0&&typeof e.fullCodecString!="string")throw new TypeError("fullCodecString, when provided, must be a string.");if(e.fullCodecString!==void 0&&Fs(e.fullCodecString)!==t)throw new TypeError(`fullCodecString, when provided, must be a string that matches the specified codec (${t}).`);if(e.hardwareAcceleration!==void 0&&!["no-preference","prefer-hardware","prefer-software"].includes(e.hardwareAcceleration))throw new TypeError("hardwareAcceleration, when provided, must be 'no-preference', 'prefer-hardware' or 'prefer-software'.");if(e.scalabilityMode!==void 0&&typeof e.scalabilityMode!="string")throw new TypeError("scalabilityMode, when provided, must be a string.");if(e.contentHint!==void 0&&typeof e.contentHint!="string")throw new TypeError("contentHint, when provided, must be a string.")},Qo=t=>{let e=t.bitrate instanceof ur?t.bitrate._toVideoBitrate(t.codec,t.width,t.height):t.bitrate;return{codec:t.fullCodecString??oa(t.codec,t.width,t.height,e),width:t.width,height:t.height,bitrate:e,bitrateMode:t.bitrateMode,alpha:t.alpha??"discard",framerate:t.framerate,latencyMode:t.latencyMode,hardwareAcceleration:t.hardwareAcceleration,scalabilityMode:t.scalabilityMode,contentHint:t.contentHint,...ha(t.codec)}},Go=t=>{if(!t||typeof t!="object")throw new TypeError("Encoding config must be an object.");if(!Ue.includes(t.codec))throw new TypeError(`Invalid audio codec '${t.codec}'. Must be one of: ${Ue.join(", ")}.`);if(t.bitrate===void 0&&(!Q.includes(t.codec)||t.codec==="flac"))throw new TypeError("config.bitrate must be provided for compressed audio codecs.");if(t.bitrate!==void 0&&!(t.bitrate instanceof ur)&&(!Number.isInteger(t.bitrate)||t.bitrate<=0))throw new TypeError("config.bitrate, when provided, must be a positive integer or a quality.");if(t.onEncodedPacket!==void 0&&typeof t.onEncodedPacket!="function")throw new TypeError("config.onEncodedChunk, when provided, must be a function.");if(t.onEncoderConfig!==void 0&&typeof t.onEncoderConfig!="function")throw new TypeError("config.onEncoderConfig, when provided, must be a function.");jl(t.codec,t)},jl=(t,e)=>{if(!e||typeof e!="object")throw new TypeError("Encoding options must be an object.");if(e.bitrateMode!==void 0&&!["constant","variable"].includes(e.bitrateMode))throw new TypeError("bitrateMode, when provided, must be 'constant' or 'variable'.");if(e.fullCodecString!==void 0&&typeof e.fullCodecString!="string")throw new TypeError("fullCodecString, when provided, must be a string.");if(e.fullCodecString!==void 0&&Fs(e.fullCodecString)!==t)throw new TypeError(`fullCodecString, when provided, must be a string that matches the specified codec (${t}).`)},Ko=t=>{let e=t.bitrate instanceof ur?t.bitrate._toAudioBitrate(t.codec):t.bitrate;return{codec:t.fullCodecString??la(t.codec,t.numberOfChannels,t.sampleRate),numberOfChannels:t.numberOfChannels,sampleRate:t.sampleRate,bitrate:e,bitrateMode:t.bitrateMode,...fa(t.codec)}},ur=class{constructor(e){this._factor=e}_toVideoBitrate(e,r,i){let s=r*i,n={avc:1,hevc:.6,vp9:.6,av1:.4,vp8:1.2},a=1920*1080,o=3e6,c=Math.pow(s/a,.95),u=o*c*n[e]*this._factor;return Math.ceil(u/1e3)*1e3}_toAudioBitrate(e){if(Q.includes(e)||e==="flac")return;let i={aac:128e3,opus:64e3,mp3:16e4,vorbis:64e3}[e];if(!i)throw new Error(`Unhandled codec: ${e}`);let s=i*this._factor;return e==="aac"?s=[96e3,128e3,16e4,192e3].reduce((a,o)=>Math.abs(o-s)<Math.abs(a-s)?o:a):e==="opus"||e==="vorbis"?s=Math.max(6e3,s):e==="mp3"&&(s=[8e3,16e3,24e3,32e3,4e4,48e3,64e3,8e4,96e3,112e3,128e3,16e4,192e3,224e3,256e3,32e4].reduce((a,o)=>Math.abs(o-s)<Math.abs(a-s)?o:a)),Math.round(s/1e3)*1e3}};var dr=class{constructor(){this._connectedTrack=null,this._closingPromise=null,this._closed=!1,this._timestampOffset=0}_ensureValidAdd(){if(!this._connectedTrack)throw new Error("Source is not connected to an output track.");if(this._connectedTrack.output.state==="canceled")throw new Error("Output has been canceled.");if(this._connectedTrack.output.state==="finalizing"||this._connectedTrack.output.state==="finalized")throw new Error("Output has been finalized.");if(this._connectedTrack.output.state==="pending")throw new Error("Output has not started.");if(this._closed)throw new Error("Source is closed.")}async _start(){}async _flushAndClose(e){}close(){if(this._closingPromise)return;let e=this._connectedTrack;if(!e)throw new Error("Cannot call close without connecting the source to an output track.");if(e.output.state==="pending")throw new Error("Cannot call close before output has been started.");this._closingPromise=(async()=>{await this._flushAndClose(!1),this._closed=!0,!(e.output.state==="finalizing"||e.output.state==="finalized")&&e.output._muxer.onTrackClose(e)})()}async _flushOrWaitForOngoingClose(e){return this._closingPromise?this._closingPromise:this._flushAndClose(e)}},hr=class extends dr{constructor(e){if(super(),this._connectedTrack=null,!Ae.includes(e))throw new TypeError(`Invalid video codec '${e}'. Must be one of: ${Ae.join(", ")}.`);this._codec=e}};var yn=class{constructor(e,r){this.source=e,this.encodingConfig=r,this.ensureEncoderPromise=null,this.encoderInitialized=!1,this.encoder=null,this.muxer=null,this.lastMultipleOfKeyFrameInterval=-1,this.codedWidth=null,this.codedHeight=null,this.resizeCanvas=null,this.customEncoder=null,this.customEncoderCallSerializer=new Xe,this.customEncoderQueueSize=0,this.alphaEncoder=null,this.splitter=null,this.splitterCreationFailed=!1,this.alphaFrameQueue=[],this.error=null,this.errorNeedsNewStack=!0}async add(e,r,i){try{if(this.checkForEncoderError(),this.source._ensureValidAdd(),this.codedWidth!==null&&this.codedHeight!==null){if(e.codedWidth!==this.codedWidth||e.codedHeight!==this.codedHeight){let o=this.encodingConfig.sizeChangeBehavior??"deny";if(o!=="passThrough"){if(o==="deny")throw new Error(`Video sample size must remain constant. Expected ${this.codedWidth}x${this.codedHeight}, got ${e.codedWidth}x${e.codedHeight}. To allow the sample size to change over time, set \`sizeChangeBehavior\` to a value other than 'strict' in the encoding options.`);{let c=!1;this.resizeCanvas||(typeof document<"u"?(this.resizeCanvas=document.createElement("canvas"),this.resizeCanvas.width=this.codedWidth,this.resizeCanvas.height=this.codedHeight):this.resizeCanvas=new OffscreenCanvas(this.codedWidth,this.codedHeight),c=!0);let l=this.resizeCanvas.getContext("2d",{alpha:Mt()});m(l),c||(Mt()?(l.fillStyle="black",l.fillRect(0,0,this.codedWidth,this.codedHeight)):l.clearRect(0,0,this.codedWidth,this.codedHeight)),e.drawWithFit(l,{fit:o}),r&&e.close(),e=new ge(this.resizeCanvas,{timestamp:e.timestamp,duration:e.duration,rotation:e.rotation}),r=!0}}}}else this.codedWidth=e.codedWidth,this.codedHeight=e.codedHeight;this.encoderInitialized||(this.ensureEncoderPromise||this.ensureEncoder(e),this.encoderInitialized||await this.ensureEncoderPromise),m(this.encoderInitialized);let s=this.encodingConfig.keyFrameInterval??5,n=Math.floor(e.timestamp/s),a={...i,keyFrame:i?.keyFrame||s===0||n!==this.lastMultipleOfKeyFrameInterval};if(this.lastMultipleOfKeyFrameInterval=n,this.customEncoder){this.customEncoderQueueSize++;let o=e.clone(),c=this.customEncoderCallSerializer.call(()=>this.customEncoder.encode(o,a)).then(()=>this.customEncoderQueueSize--).catch(l=>this.error??=l).finally(()=>{o.close()});this.customEncoderQueueSize>=4&&await c}else{m(this.encoder);let o=e.toVideoFrame();if(!this.alphaEncoder)this.encoder.encode(o,a),o.close();else if(!!o.format&&!o.format.includes("A")||this.splitterCreationFailed)this.alphaFrameQueue.push(null),this.encoder.encode(o,a),o.close();else{let l=o.displayWidth,d=o.displayHeight;if(!this.splitter)try{this.splitter=new Tn(l,d)}catch(u){console.error("Due to an error, only color data will be encoded.",u),this.splitterCreationFailed=!0,this.alphaFrameQueue.push(null),this.encoder.encode(o,a),o.close()}if(this.splitter){let u=this.splitter.extractColor(o),h=this.splitter.extractAlpha(o);this.alphaFrameQueue.push(h),this.encoder.encode(u,a),u.close(),o.close()}}r&&e.close(),this.encoder.encodeQueueSize>=4&&await new Promise(c=>this.encoder.addEventListener("dequeue",c,{once:!0}))}await this.muxer.mutex.currentPromise}finally{r&&e.close()}}ensureEncoder(e){let r=new Error;this.ensureEncoderPromise=(async()=>{let i=Qo({width:e.codedWidth,height:e.codedHeight,...this.encodingConfig,framerate:this.source._connectedTrack?.metadata.frameRate});this.encodingConfig.onEncoderConfig?.(i);let s=Pa.find(n=>n.supports(this.encodingConfig.codec,i));if(s)this.customEncoder=new s,this.customEncoder.codec=this.encodingConfig.codec,this.customEncoder.config=i,this.customEncoder.onPacket=(n,a)=>{if(!(n instanceof L))throw new TypeError("The first argument passed to onPacket must be an EncodedPacket.");if(a!==void 0&&(!a||typeof a!="object"))throw new TypeError("The second argument passed to onPacket must be an object or undefined.");this.encodingConfig.onEncodedPacket?.(n,a),this.muxer.addEncodedVideoPacket(this.source._connectedTrack,n,a).catch(o=>{this.error??=o,this.errorNeedsNewStack=!1})},await this.customEncoder.init();else{if(typeof VideoEncoder>"u")throw new Error("VideoEncoder is not supported by this browser.");if(i.alpha="discard",this.encodingConfig.alpha==="keep"&&(i.latencyMode="quality"),(i.width%2===1||i.height%2===1)&&(this.encodingConfig.codec==="avc"||this.encodingConfig.codec==="hevc"))throw new Error(`The dimensions ${i.width}x${i.height} are not supported for codec '${this.encodingConfig.codec}'; both width and height must be even numbers. Make sure to round your dimensions to the nearest even number.`);if(!(await VideoEncoder.isConfigSupported(i)).supported)throw new Error(`This specific encoder configuration (${i.codec}, ${i.bitrate} bps, ${i.width}x${i.height}, hardware acceleration: ${i.hardwareAcceleration??"no-preference"}) is not supported by this browser. Consider using another codec or changing your video parameters.`);let o=[],c=[],l=0,d=0,u=(h,f,p)=>{let g={};if(f){let b=new Uint8Array(f.byteLength);f.copyTo(b),g.alpha=b}let w=L.fromEncodedChunk(h,g);this.encodingConfig.onEncodedPacket?.(w,p),this.muxer.addEncodedVideoPacket(this.source._connectedTrack,w,p).catch(b=>{this.error??=b,this.errorNeedsNewStack=!1})};this.encoder=new VideoEncoder({output:(h,f)=>{if(!this.alphaEncoder){u(h,null,f);return}let p=this.alphaFrameQueue.shift();m(p!==void 0),p?(this.alphaEncoder.encode(p,{keyFrame:h.type==="key"}),d++,p.close(),o.push({chunk:h,meta:f})):d===0?u(h,null,f):(c.push(l+d),o.push({chunk:h,meta:f}))},error:h=>{h.stack=r.stack,this.error??=h}}),this.encoder.configure(i),this.encodingConfig.alpha==="keep"&&(this.alphaEncoder=new VideoEncoder({output:(h,f)=>{d--;let p=o.shift();for(m(p!==void 0),u(p.chunk,h,p.meta),l++;c.length>0&&c[0]===l;){c.shift();let g=o.shift();m(g!==void 0),u(g.chunk,null,g.meta)}},error:h=>{h.stack=r.stack,this.error??=h}}),this.alphaEncoder.configure(i))}m(this.source._connectedTrack),this.muxer=this.source._connectedTrack.output._muxer,this.encoderInitialized=!0})()}async flushAndClose(e){e||this.checkForEncoderError(),this.customEncoder?(e||this.customEncoderCallSerializer.call(()=>this.customEncoder.flush()),await this.customEncoderCallSerializer.call(()=>this.customEncoder.close())):this.encoder&&(e||(await this.encoder.flush(),await this.alphaEncoder?.flush()),this.encoder.state!=="closed"&&this.encoder.close(),this.alphaEncoder&&this.alphaEncoder.state!=="closed"&&this.alphaEncoder.close(),this.alphaFrameQueue.forEach(r=>r?.close()),this.splitter?.close()),e||this.checkForEncoderError()}getQueueSize(){return this.customEncoder?this.customEncoderQueueSize:this.encoder?.encodeQueueSize??0}checkForEncoderError(){if(this.error)throw this.errorNeedsNewStack&&(this.error.stack=new Error().stack),this.error}},Tn=class{constructor(e,r){this.lastFrame=null,typeof OffscreenCanvas<"u"?this.canvas=new OffscreenCanvas(e,r):(this.canvas=document.createElement("canvas"),this.canvas.width=e,this.canvas.height=r);let i=this.canvas.getContext("webgl2",{alpha:!0});if(!i)throw new Error("Couldn't acquire WebGL 2 context.");this.gl=i,this.colorProgram=this.createColorProgram(),this.alphaProgram=this.createAlphaProgram(),this.vao=this.createVAO(),this.sourceTexture=this.createTexture(),this.alphaResolutionLocation=this.gl.getUniformLocation(this.alphaProgram,"u_resolution"),this.gl.useProgram(this.colorProgram),this.gl.uniform1i(this.gl.getUniformLocation(this.colorProgram,"u_sourceTexture"),0),this.gl.useProgram(this.alphaProgram),this.gl.uniform1i(this.gl.getUniformLocation(this.alphaProgram,"u_sourceTexture"),0)}createVertexShader(){return this.createShader(this.gl.VERTEX_SHADER,`#version 300 es
30
+ in vec2 a_position;
31
+ in vec2 a_texCoord;
32
+ out vec2 v_texCoord;
33
+
34
+ void main() {
35
+ gl_Position = vec4(a_position, 0.0, 1.0);
36
+ v_texCoord = a_texCoord;
37
+ }
38
+ `)}createColorProgram(){let e=this.createVertexShader(),r=this.createShader(this.gl.FRAGMENT_SHADER,`#version 300 es
39
+ precision highp float;
40
+
41
+ uniform sampler2D u_sourceTexture;
42
+ in vec2 v_texCoord;
43
+ out vec4 fragColor;
44
+
45
+ void main() {
46
+ vec4 source = texture(u_sourceTexture, v_texCoord);
47
+ fragColor = vec4(source.rgb, 1.0);
48
+ }
49
+ `),i=this.gl.createProgram();return this.gl.attachShader(i,e),this.gl.attachShader(i,r),this.gl.linkProgram(i),i}createAlphaProgram(){let e=this.createVertexShader(),r=this.createShader(this.gl.FRAGMENT_SHADER,`#version 300 es
50
+ precision highp float;
51
+
52
+ uniform sampler2D u_sourceTexture;
53
+ uniform vec2 u_resolution; // The width and height of the canvas
54
+ in vec2 v_texCoord;
55
+ out vec4 fragColor;
56
+
57
+ // This function determines the value for a single byte in the YUV stream
58
+ float getByteValue(float byteOffset) {
59
+ float width = u_resolution.x;
60
+ float height = u_resolution.y;
61
+
62
+ float yPlaneSize = width * height;
63
+
64
+ if (byteOffset < yPlaneSize) {
65
+ // This byte is in the luma plane. Find the corresponding pixel coordinates to sample from
66
+ float y = floor(byteOffset / width);
67
+ float x = mod(byteOffset, width);
68
+
69
+ // Add 0.5 to sample the center of the texel
70
+ vec2 sampleCoord = (vec2(x, y) + 0.5) / u_resolution;
71
+
72
+ // The luma value is the alpha from the source texture
73
+ return texture(u_sourceTexture, sampleCoord).a;
74
+ } else {
75
+ // Write a fixed value for chroma and beyond
76
+ return 128.0 / 255.0;
77
+ }
78
+ }
79
+
80
+ void main() {
81
+ // Each fragment writes 4 bytes (R, G, B, A)
82
+ float pixelIndex = floor(gl_FragCoord.y) * u_resolution.x + floor(gl_FragCoord.x);
83
+ float baseByteOffset = pixelIndex * 4.0;
84
+
85
+ vec4 result;
86
+ for (int i = 0; i < 4; i++) {
87
+ float currentByteOffset = baseByteOffset + float(i);
88
+ result[i] = getByteValue(currentByteOffset);
89
+ }
90
+
91
+ fragColor = result;
92
+ }
93
+ `),i=this.gl.createProgram();return this.gl.attachShader(i,e),this.gl.attachShader(i,r),this.gl.linkProgram(i),i}createShader(e,r){let i=this.gl.createShader(e);return this.gl.shaderSource(i,r),this.gl.compileShader(i),this.gl.getShaderParameter(i,this.gl.COMPILE_STATUS)||console.error("Shader compile error:",this.gl.getShaderInfoLog(i)),i}createVAO(){let e=this.gl.createVertexArray();this.gl.bindVertexArray(e);let r=new Float32Array([-1,-1,0,1,1,-1,1,1,-1,1,0,0,1,1,1,0]),i=this.gl.createBuffer();this.gl.bindBuffer(this.gl.ARRAY_BUFFER,i),this.gl.bufferData(this.gl.ARRAY_BUFFER,r,this.gl.STATIC_DRAW);let s=this.gl.getAttribLocation(this.colorProgram,"a_position"),n=this.gl.getAttribLocation(this.colorProgram,"a_texCoord");return this.gl.enableVertexAttribArray(s),this.gl.vertexAttribPointer(s,2,this.gl.FLOAT,!1,16,0),this.gl.enableVertexAttribArray(n),this.gl.vertexAttribPointer(n,2,this.gl.FLOAT,!1,16,8),e}createTexture(){let e=this.gl.createTexture();return this.gl.bindTexture(this.gl.TEXTURE_2D,e),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_S,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_T,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MIN_FILTER,this.gl.LINEAR),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.LINEAR),e}updateTexture(e){this.lastFrame!==e&&((e.displayWidth!==this.canvas.width||e.displayHeight!==this.canvas.height)&&(this.canvas.width=e.displayWidth,this.canvas.height=e.displayHeight),this.gl.activeTexture(this.gl.TEXTURE0),this.gl.bindTexture(this.gl.TEXTURE_2D,this.sourceTexture),this.gl.texImage2D(this.gl.TEXTURE_2D,0,this.gl.RGBA,this.gl.RGBA,this.gl.UNSIGNED_BYTE,e),this.lastFrame=e)}extractColor(e){return this.updateTexture(e),this.gl.useProgram(this.colorProgram),this.gl.viewport(0,0,this.canvas.width,this.canvas.height),this.gl.clear(this.gl.COLOR_BUFFER_BIT),this.gl.bindVertexArray(this.vao),this.gl.drawArrays(this.gl.TRIANGLE_STRIP,0,4),new VideoFrame(this.canvas,{timestamp:e.timestamp,duration:e.duration??void 0,alpha:"discard"})}extractAlpha(e){this.updateTexture(e),this.gl.useProgram(this.alphaProgram),this.gl.uniform2f(this.alphaResolutionLocation,this.canvas.width,this.canvas.height),this.gl.viewport(0,0,this.canvas.width,this.canvas.height),this.gl.clear(this.gl.COLOR_BUFFER_BIT),this.gl.bindVertexArray(this.vao),this.gl.drawArrays(this.gl.TRIANGLE_STRIP,0,4);let{width:r,height:i}=this.canvas,s=Math.ceil(r/2)*Math.ceil(i/2),n=r*i+s*2,a=Math.ceil(n/(r*4)),o=new Uint8Array(4*r*a);this.gl.readPixels(0,0,r,a,this.gl.RGBA,this.gl.UNSIGNED_BYTE,o),o=o.subarray(0,n),m(o[r*i]===128),m(o[o.length-1]===128);let c={format:"I420",codedWidth:r,codedHeight:i,timestamp:e.timestamp,duration:e.duration??void 0,transfer:[o.buffer]};return new VideoFrame(o,c)}close(){this.gl.getExtension("WEBGL_lose_context")?.loseContext(),this.gl=null}},Gr=class extends hr{constructor(e){$o(e),super(e.codec),this._encoder=new yn(this,e)}add(e,r){if(!(e instanceof ge))throw new TypeError("videoSample must be a VideoSample.");return this._encoder.add(e,!1,r)}_flushAndClose(e){return this._encoder.flushAndClose(e)}};var fr=class extends dr{constructor(e){if(super(),this._connectedTrack=null,!Ue.includes(e))throw new TypeError(`Invalid audio codec '${e}'. Must be one of: ${Ue.join(", ")}.`);this._codec=e}};var xn=class{constructor(e,r){this.source=e,this.encodingConfig=r,this.ensureEncoderPromise=null,this.encoderInitialized=!1,this.encoder=null,this.muxer=null,this.lastNumberOfChannels=null,this.lastSampleRate=null,this.isPcmEncoder=!1,this.outputSampleSize=null,this.writeOutputValue=null,this.customEncoder=null,this.customEncoderCallSerializer=new Xe,this.customEncoderQueueSize=0,this.lastEndSampleIndex=null,this.error=null,this.errorNeedsNewStack=!0}async add(e,r){try{if(this.checkForEncoderError(),this.source._ensureValidAdd(),this.lastNumberOfChannels!==null&&this.lastSampleRate!==null){if(e.numberOfChannels!==this.lastNumberOfChannels||e.sampleRate!==this.lastSampleRate)throw new Error(`Audio parameters must remain constant. Expected ${this.lastNumberOfChannels} channels at ${this.lastSampleRate} Hz, got ${e.numberOfChannels} channels at ${e.sampleRate} Hz.`)}else this.lastNumberOfChannels=e.numberOfChannels,this.lastSampleRate=e.sampleRate;this.encoderInitialized||(this.ensureEncoderPromise||this.ensureEncoder(e),this.encoderInitialized||await this.ensureEncoderPromise),m(this.encoderInitialized);{let i=Math.round(e.timestamp*e.sampleRate),s=Math.round((e.timestamp+e.duration)*e.sampleRate);if(this.lastEndSampleIndex===null)this.lastEndSampleIndex=s;else{let n=i-this.lastEndSampleIndex;if(n>=64){let a=new we({data:new Float32Array(n*e.numberOfChannels),format:"f32-planar",sampleRate:e.sampleRate,numberOfChannels:e.numberOfChannels,numberOfFrames:n,timestamp:this.lastEndSampleIndex/e.sampleRate});await this.add(a,!0)}this.lastEndSampleIndex+=e.numberOfFrames}}if(this.customEncoder){this.customEncoderQueueSize++;let i=e.clone(),s=this.customEncoderCallSerializer.call(()=>this.customEncoder.encode(i)).then(()=>this.customEncoderQueueSize--).catch(n=>this.error??=n).finally(()=>{i.close()});this.customEncoderQueueSize>=4&&await s,await this.muxer.mutex.currentPromise}else if(this.isPcmEncoder)await this.doPcmEncoding(e,r);else{m(this.encoder);let i=e.toAudioData();this.encoder.encode(i),i.close(),r&&e.close(),this.encoder.encodeQueueSize>=4&&await new Promise(s=>this.encoder.addEventListener("dequeue",s,{once:!0})),await this.muxer.mutex.currentPromise}}finally{r&&e.close()}}async doPcmEncoding(e,r){m(this.outputSampleSize),m(this.writeOutputValue);let{numberOfChannels:i,numberOfFrames:s,sampleRate:n,timestamp:a}=e,o=2048,c=[];for(let h=0;h<s;h+=o){let f=Math.min(o,e.numberOfFrames-h),p=f*i*this.outputSampleSize,g=new ArrayBuffer(p),w=new DataView(g);c.push({frameCount:f,view:w})}let l=e.allocationSize({planeIndex:0,format:"f32-planar"}),d=new Float32Array(l/Float32Array.BYTES_PER_ELEMENT);for(let h=0;h<i;h++){e.copyTo(d,{planeIndex:h,format:"f32-planar"});for(let f=0;f<c.length;f++){let{frameCount:p,view:g}=c[f];for(let w=0;w<p;w++)this.writeOutputValue(g,(w*i+h)*this.outputSampleSize,d[f*o+w])}}r&&e.close();let u={decoderConfig:{codec:this.encodingConfig.codec,numberOfChannels:i,sampleRate:n}};for(let h=0;h<c.length;h++){let{frameCount:f,view:p}=c[h],g=p.buffer,w=h*o,b=new L(new Uint8Array(g),"key",a+w/n,f/n);this.encodingConfig.onEncodedPacket?.(b,u),await this.muxer.addEncodedAudioPacket(this.source._connectedTrack,b,u)}}ensureEncoder(e){let r=new Error;this.ensureEncoderPromise=(async()=>{let{numberOfChannels:i,sampleRate:s}=e,n=Ko({numberOfChannels:i,sampleRate:s,...this.encodingConfig});this.encodingConfig.onEncoderConfig?.(n);let a=Ea.find(o=>o.supports(this.encodingConfig.codec,n));if(a)this.customEncoder=new a,this.customEncoder.codec=this.encodingConfig.codec,this.customEncoder.config=n,this.customEncoder.onPacket=(o,c)=>{if(!(o instanceof L))throw new TypeError("The first argument passed to onPacket must be an EncodedPacket.");if(c!==void 0&&(!c||typeof c!="object"))throw new TypeError("The second argument passed to onPacket must be an object or undefined.");this.encodingConfig.onEncodedPacket?.(o,c),this.muxer.addEncodedAudioPacket(this.source._connectedTrack,o,c).catch(l=>{this.error??=l,this.errorNeedsNewStack=!1})},await this.customEncoder.init();else if(Q.includes(this.encodingConfig.codec))this.initPcmEncoder();else{if(typeof AudioEncoder>"u")throw new Error("AudioEncoder is not supported by this browser.");if(!(await AudioEncoder.isConfigSupported(n)).supported)throw new Error(`This specific encoder configuration (${n.codec}, ${n.bitrate} bps, ${n.numberOfChannels} channels, ${n.sampleRate} Hz) is not supported by this browser. Consider using another codec or changing your audio parameters.`);this.encoder=new AudioEncoder({output:(c,l)=>{if(this.encodingConfig.codec==="aac"&&l?.decoderConfig){let u=!1;if(!l.decoderConfig.description||l.decoderConfig.description.byteLength<2?u=!0:u=_r(K(l.decoderConfig.description)).objectType===0,u){let h=Number(q(n.codec.split(".")));l.decoderConfig.description=ua({objectType:h,numberOfChannels:l.decoderConfig.numberOfChannels,sampleRate:l.decoderConfig.sampleRate})}}let d=L.fromEncodedChunk(c);this.encodingConfig.onEncodedPacket?.(d,l),this.muxer.addEncodedAudioPacket(this.source._connectedTrack,d,l).catch(u=>{this.error??=u,this.errorNeedsNewStack=!1})},error:c=>{c.stack=r.stack,this.error??=c}}),this.encoder.configure(n)}m(this.source._connectedTrack),this.muxer=this.source._connectedTrack.output._muxer,this.encoderInitialized=!0})()}initPcmEncoder(){this.isPcmEncoder=!0;let e=this.encodingConfig.codec,{dataType:r,sampleSize:i,littleEndian:s}=fe(e);switch(this.outputSampleSize=i,i){case 1:r==="unsigned"?this.writeOutputValue=(n,a,o)=>n.setUint8(a,X((o+1)*127.5,0,255)):r==="signed"?this.writeOutputValue=(n,a,o)=>{n.setInt8(a,X(Math.round(o*128),-128,127))}:r==="ulaw"?this.writeOutputValue=(n,a,o)=>{let c=X(Math.floor(o*32767),-32768,32767);n.setUint8(a,Ia(c))}:r==="alaw"?this.writeOutputValue=(n,a,o)=>{let c=X(Math.floor(o*32767),-32768,32767);n.setUint8(a,Aa(c))}:m(!1);break;case 2:r==="unsigned"?this.writeOutputValue=(n,a,o)=>n.setUint16(a,X((o+1)*32767.5,0,65535),s):r==="signed"?this.writeOutputValue=(n,a,o)=>n.setInt16(a,X(Math.round(o*32767),-32768,32767),s):m(!1);break;case 3:r==="unsigned"?this.writeOutputValue=(n,a,o)=>yr(n,a,X((o+1)*83886075e-1,0,16777215),s):r==="signed"?this.writeOutputValue=(n,a,o)=>Gn(n,a,X(Math.round(o*8388607),-8388608,8388607),s):m(!1);break;case 4:r==="unsigned"?this.writeOutputValue=(n,a,o)=>n.setUint32(a,X((o+1)*21474836475e-1,0,4294967295),s):r==="signed"?this.writeOutputValue=(n,a,o)=>n.setInt32(a,X(Math.round(o*2147483647),-2147483648,2147483647),s):r==="float"?this.writeOutputValue=(n,a,o)=>n.setFloat32(a,o,s):m(!1);break;case 8:r==="float"?this.writeOutputValue=(n,a,o)=>n.setFloat64(a,o,s):m(!1);break;default:ne(i),m(!1)}}async flushAndClose(e){e||this.checkForEncoderError(),this.customEncoder?(e||this.customEncoderCallSerializer.call(()=>this.customEncoder.flush()),await this.customEncoderCallSerializer.call(()=>this.customEncoder.close())):this.encoder&&(e||await this.encoder.flush(),this.encoder.state!=="closed"&&this.encoder.close()),e||this.checkForEncoderError()}getQueueSize(){return this.customEncoder?this.customEncoderQueueSize:this.isPcmEncoder?0:this.encoder?.encodeQueueSize??0}checkForEncoderError(){if(this.error)throw this.errorNeedsNewStack&&(this.error.stack=new Error().stack),this.error}},Kr=class extends fr{constructor(e){Go(e),super(e.codec),this._encoder=new xn(this,e)}add(e){if(!(e instanceof we))throw new TypeError("audioSample must be an AudioSample.");return this._encoder.add(e,!1)}_flushAndClose(e){return this._encoder.flushAndClose(e)}};var Xr=class extends dr{constructor(e){if(super(),this._connectedTrack=null,!bt.includes(e))throw new TypeError(`Invalid subtitle codec '${e}'. Must be one of: ${bt.join(", ")}.`);this._codec=e}};var $l=["video","audio","subtitle"],Sn=t=>{if(!t||typeof t!="object")throw new TypeError("metadata must be an object.");if(t.languageCode!==void 0&&!zt(t.languageCode))throw new TypeError("metadata.languageCode, when provided, must be a three-letter, ISO 639-2/T language code.");if(t.name!==void 0&&typeof t.name!="string")throw new TypeError("metadata.name, when provided, must be a string.");if(t.disposition!==void 0&&ta(t.disposition),t.maximumPacketCount!==void 0&&(!Number.isInteger(t.maximumPacketCount)||t.maximumPacketCount<0))throw new TypeError("metadata.maximumPacketCount, when provided, must be a non-negative integer.")},Yr=class{constructor(e){if(this.state="pending",this._tracks=[],this._startPromise=null,this._cancelPromise=null,this._finalizePromise=null,this._mutex=new le,this._metadataTags={},!e||typeof e!="object")throw new TypeError("options must be an object.");if(!(e.format instanceof cr))throw new TypeError("options.format must be an OutputFormat.");if(!(e.target instanceof Ft))throw new TypeError("options.target must be a Target.");if(e.target._output)throw new Error("Target is already used for another output.");e.target._output=this,this.format=e.format,this.target=e.target,this._writer=e.target._createWriter(),this._muxer=e.format._createMuxer(this)}addVideoTrack(e,r={}){if(!(e instanceof hr))throw new TypeError("source must be a VideoSource.");if(Sn(r),r.rotation!==void 0&&![0,90,180,270].includes(r.rotation))throw new TypeError(`Invalid video rotation: ${r.rotation}. Has to be 0, 90, 180 or 270.`);if(!this.format.supportsVideoRotationMetadata&&r.rotation)throw new Error(`${this.format._name} does not support video rotation metadata.`);if(r.frameRate!==void 0&&(!Number.isFinite(r.frameRate)||r.frameRate<=0))throw new TypeError(`Invalid video frame rate: ${r.frameRate}. Must be a positive number.`);this._addTrack("video",e,r)}addAudioTrack(e,r={}){if(!(e instanceof fr))throw new TypeError("source must be an AudioSource.");Sn(r),this._addTrack("audio",e,r)}addSubtitleTrack(e,r={}){if(!(e instanceof Xr))throw new TypeError("source must be a SubtitleSource.");Sn(r),this._addTrack("subtitle",e,r)}setMetadataTags(e){if(ea(e),this.state!=="pending")throw new Error("Cannot set metadata tags after output has been started or canceled.");this._metadataTags=e}_addTrack(e,r,i){if(this.state!=="pending")throw new Error("Cannot add track after output has been started or canceled.");if(r._connectedTrack)throw new Error("Source is already used for a track.");let s=this.format.getSupportedTrackCounts(),n=this._tracks.reduce((l,d)=>l+(d.type===e?1:0),0),a=s[e].max;if(n===a)throw new Error(a===0?`${this.format._name} does not support ${e} tracks.`:`${this.format._name} does not support more than ${a} ${e} track${a===1?"":"s"}.`);let o=s.total.max;if(this._tracks.length===o)throw new Error(`${this.format._name} does not support more than ${o} tracks${o===1?"":"s"} in total.`);let c={id:this._tracks.length+1,output:this,type:e,source:r,metadata:i};if(c.type==="video"){let l=this.format.getSupportedVideoCodecs();if(l.length===0)throw new Error(`${this.format._name} does not support video tracks.`+this.format._codecUnsupportedHint(c.source._codec));if(!l.includes(c.source._codec))throw new Error(`Codec '${c.source._codec}' cannot be contained within ${this.format._name}. Supported video codecs are: ${l.map(d=>`'${d}'`).join(", ")}.`+this.format._codecUnsupportedHint(c.source._codec))}else if(c.type==="audio"){let l=this.format.getSupportedAudioCodecs();if(l.length===0)throw new Error(`${this.format._name} does not support audio tracks.`+this.format._codecUnsupportedHint(c.source._codec));if(!l.includes(c.source._codec))throw new Error(`Codec '${c.source._codec}' cannot be contained within ${this.format._name}. Supported audio codecs are: ${l.map(d=>`'${d}'`).join(", ")}.`+this.format._codecUnsupportedHint(c.source._codec))}else if(c.type==="subtitle"){let l=this.format.getSupportedSubtitleCodecs();if(l.length===0)throw new Error(`${this.format._name} does not support subtitle tracks.`+this.format._codecUnsupportedHint(c.source._codec));if(!l.includes(c.source._codec))throw new Error(`Codec '${c.source._codec}' cannot be contained within ${this.format._name}. Supported subtitle codecs are: ${l.map(d=>`'${d}'`).join(", ")}.`+this.format._codecUnsupportedHint(c.source._codec))}this._tracks.push(c),r._connectedTrack=c}async start(){let e=this.format.getSupportedTrackCounts();for(let i of $l){let s=this._tracks.reduce((a,o)=>a+(o.type===i?1:0),0),n=e[i].min;if(s<n)throw new Error(n===e[i].max?`${this.format._name} requires exactly ${n} ${i} track${n===1?"":"s"}.`:`${this.format._name} requires at least ${n} ${i} track${n===1?"":"s"}.`)}let r=e.total.min;if(this._tracks.length<r)throw new Error(r===e.total.max?`${this.format._name} requires exactly ${r} track${r===1?"":"s"}.`:`${this.format._name} requires at least ${r} track${r===1?"":"s"}.`);if(this.state==="canceled")throw new Error("Output has been canceled.");return this._startPromise?(console.warn("Output has already been started."),this._startPromise):this._startPromise=(async()=>{this.state="started",this._writer.start();let i=await this._mutex.acquire();await this._muxer.start();let s=this._tracks.map(n=>n.source._start());await Promise.all(s),i()})()}getMimeType(){return this._muxer.getMimeType()}async cancel(){if(this._cancelPromise)return console.warn("Output has already been canceled."),this._cancelPromise;if(this.state==="finalizing"||this.state==="finalized"){console.warn("Output has already been finalized.");return}return this._cancelPromise=(async()=>{this.state="canceled";let e=await this._mutex.acquire(),r=this._tracks.map(i=>i.source._flushOrWaitForOngoingClose(!0));await Promise.all(r),await this._writer.close(),e()})()}async finalize(){if(this.state==="pending")throw new Error("Cannot finalize before starting.");if(this.state==="canceled")throw new Error("Cannot finalize after canceling.");return this._finalizePromise?(console.warn("Output has already been finalized."),this._finalizePromise):this._finalizePromise=(async()=>{this.state="finalizing";let e=await this._mutex.acquire(),r=this._tracks.map(i=>i.source._flushOrWaitForOngoingClose(!1));await Promise.all(r),await this._muxer.finalize(),await this._writer.flush(),await this._writer.finalize(),this.state="finalized",e()})()}};var Xo=async t=>t instanceof Blob?new Lr(t):new Wr(t),Yo=fi.work(t=>({async hello(){await t.host.world()},async decodeAudio({source:e,audio:r,start:i,end:s,cancel:n}){let a=new sr({source:await Xo(e),formats:os}),o=await a.getPrimaryAudioTrack(),c=await o?.canDecode(),l=r.getWriter();if(!c||!o)return;let u=new Rr(o).samples(i,s);n.onmessage=async()=>{u.return(),a.dispose(),n.close()};for await(let h of u){let f=h.toAudioData();h.close(),await l.write(f),f.close()}await l.close()},async decodeVideo({source:e,video:r,start:i,end:s,cancel:n}){let a=new sr({source:await Xo(e),formats:os}),o=await a.getPrimaryVideoTrack(),c=await o?.canDecode(),l=r.getWriter();if(!c||!o)return;let u=new Fr(o).samples(i,s);n.onmessage=async()=>{await u.return(),n.close()};for await(let h of u){let f=h.toVideoFrame();h.close(),await l.write(f),f.close()}await l.close(),a.dispose()},async encode({video:e,audio:r,config:i,writable:s}){let n=new Yr({format:new lr,target:new $r(s,{chunked:!0})});async function a(){if(!e)return;let d=new Gr(i.video);n.addVideoTrack(d);for await(let u of e){let h=new ge(u);await d.add(h),h.close(),u.close()}}async function o(){if(!r)return;let d=new Kr(i.audio);n.addAudioTrack(d);for await(let u of r){let h=new we(u);await d.add(h),h.close(),u.close()}}let c=o(),l=a();await n.start(),await Promise.all([c,l]),await n.finalize()}}));await fi.worker(Yo);
1100
94
  /*! Bundled license information:
1101
95
 
1102
- mediabunny/dist/modules/misc.js:
1103
- mediabunny/dist/modules/custom-coder.js:
1104
- mediabunny/dist/modules/codec.js:
1105
- mediabunny/dist/modules/subtitles.js:
1106
- mediabunny/dist/modules/codec-data.js:
1107
- mediabunny/dist/modules/isobmff/isobmff-boxes.js:
1108
- mediabunny/dist/modules/muxer.js:
1109
- mediabunny/dist/modules/writer.js:
1110
- mediabunny/dist/modules/target.js:
1111
- mediabunny/dist/modules/isobmff/isobmff-misc.js:
1112
- mediabunny/dist/modules/isobmff/isobmff-muxer.js:
1113
- mediabunny/dist/modules/matroska/ebml.js:
1114
- mediabunny/dist/modules/matroska/matroska-misc.js:
1115
- mediabunny/dist/modules/mp3/mp3-misc.js:
1116
- mediabunny/dist/modules/ogg/ogg-misc.js:
1117
- mediabunny/dist/modules/ogg/ogg-reader.js:
1118
- mediabunny/dist/modules/demuxer.js:
1119
- mediabunny/dist/modules/packet.js:
1120
- mediabunny/dist/modules/pcm.js:
1121
- mediabunny/dist/modules/sample.js:
1122
- mediabunny/dist/modules/media-sink.js:
1123
- mediabunny/dist/modules/input-track.js:
1124
- mediabunny/dist/modules/reader.js:
1125
- mediabunny/dist/modules/wave/riff-reader.js:
1126
- mediabunny/dist/modules/wave/wave-demuxer.js:
1127
- mediabunny/dist/modules/output-format.js:
1128
- mediabunny/dist/modules/media-source.js:
1129
- mediabunny/dist/modules/output.js:
1130
- mediabunny/dist/modules/source.js:
1131
- mediabunny/dist/modules/isobmff/isobmff-reader.js:
1132
- mediabunny/dist/modules/isobmff/isobmff-demuxer.js:
1133
- mediabunny/dist/modules/matroska/matroska-demuxer.js:
1134
- mediabunny/dist/modules/mp3/mp3-reader.js:
1135
- mediabunny/dist/modules/mp3/mp3-demuxer.js:
1136
- mediabunny/dist/modules/ogg/ogg-demuxer.js:
1137
- mediabunny/dist/modules/input-format.js:
1138
- mediabunny/dist/modules/input.js:
1139
- mediabunny/dist/modules/index.js:
96
+ mediabunny/dist/modules/src/misc.js:
97
+ mediabunny/dist/modules/src/metadata.js:
98
+ mediabunny/dist/modules/src/codec.js:
99
+ mediabunny/dist/modules/src/muxer.js:
100
+ mediabunny/dist/modules/src/codec-data.js:
101
+ mediabunny/dist/modules/src/demuxer.js:
102
+ mediabunny/dist/modules/src/custom-coder.js:
103
+ mediabunny/dist/modules/src/packet.js:
104
+ mediabunny/dist/modules/src/pcm.js:
105
+ mediabunny/dist/modules/src/sample.js:
106
+ mediabunny/dist/modules/src/media-sink.js:
107
+ mediabunny/dist/modules/src/input-track.js:
108
+ mediabunny/dist/modules/src/isobmff/isobmff-misc.js:
109
+ mediabunny/dist/modules/src/isobmff/isobmff-reader.js:
110
+ mediabunny/dist/modules/src/isobmff/isobmff-demuxer.js:
111
+ mediabunny/dist/modules/src/matroska/ebml.js:
112
+ mediabunny/dist/modules/src/matroska/matroska-misc.js:
113
+ mediabunny/dist/modules/src/matroska/matroska-demuxer.js:
114
+ mediabunny/dist/modules/shared/mp3-misc.js:
115
+ mediabunny/dist/modules/src/id3.js:
116
+ mediabunny/dist/modules/src/mp3/mp3-reader.js:
117
+ mediabunny/dist/modules/src/mp3/mp3-demuxer.js:
118
+ mediabunny/dist/modules/src/ogg/ogg-misc.js:
119
+ mediabunny/dist/modules/src/ogg/ogg-reader.js:
120
+ mediabunny/dist/modules/src/ogg/ogg-demuxer.js:
121
+ mediabunny/dist/modules/src/wave/wave-demuxer.js:
122
+ mediabunny/dist/modules/src/adts/adts-reader.js:
123
+ mediabunny/dist/modules/src/adts/adts-demuxer.js:
124
+ mediabunny/dist/modules/src/flac/flac-misc.js:
125
+ mediabunny/dist/modules/src/flac/flac-demuxer.js:
126
+ mediabunny/dist/modules/src/input-format.js:
127
+ mediabunny/dist/modules/src/source.js:
128
+ mediabunny/dist/modules/src/input.js:
129
+ mediabunny/dist/modules/src/reader.js:
130
+ mediabunny/dist/modules/src/subtitles.js:
131
+ mediabunny/dist/modules/src/isobmff/isobmff-boxes.js:
132
+ mediabunny/dist/modules/src/writer.js:
133
+ mediabunny/dist/modules/src/target.js:
134
+ mediabunny/dist/modules/src/isobmff/isobmff-muxer.js:
135
+ mediabunny/dist/modules/src/output-format.js:
136
+ mediabunny/dist/modules/src/encode.js:
137
+ mediabunny/dist/modules/src/media-source.js:
138
+ mediabunny/dist/modules/src/output.js:
139
+ mediabunny/dist/modules/src/index.js:
1140
140
  (*!
1141
141
  * Copyright (c) 2025-present, Vanilagy and contributors
1142
142
  *