@omnimedia/omnitool 1.1.0-5 → 1.1.0-51
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.
- package/README.md +143 -80
- package/package.json +18 -16
- package/s/context.ts +0 -7
- package/s/demo/demo.bundle.ts +102 -43
- package/s/demo/demo.css +246 -11
- package/s/demo/routines/export-test.ts +16 -0
- package/s/demo/routines/filmstrip-test.ts +22 -18
- package/s/demo/routines/load-video.ts +2 -3
- package/s/demo/routines/playback-test.ts +76 -0
- package/s/demo/routines/timeline-setup.ts +24 -0
- package/s/demo/routines/transcode-test.ts +21 -5
- package/s/demo/routines/transitions-test.ts +2 -2
- package/s/demo/routines/waveform-test.ts +8 -6
- package/s/driver/driver-worker.ts +9 -0
- package/s/driver/driver.test.ts +1 -1
- package/s/driver/driver.ts +32 -44
- package/s/driver/fns/schematic.ts +52 -25
- package/s/driver/fns/work.ts +71 -200
- package/s/driver/parts/compositor.ts +178 -0
- package/s/driver/parts/machina.ts +19 -20
- package/s/index.html.ts +103 -19
- package/s/index.ts +1 -0
- package/s/tests.bundle.ts +11 -0
- package/s/tests.html.ts +28 -0
- package/s/timeline/index.ts +3 -0
- package/s/timeline/parts/basics.ts +1 -1
- package/s/timeline/parts/filmstrip.ts +43 -16
- package/s/timeline/parts/item.ts +59 -6
- package/s/timeline/parts/media.ts +32 -1
- package/s/timeline/parts/resource-pool.ts +8 -5
- package/s/timeline/parts/resource.ts +2 -0
- package/s/timeline/parts/waveform.ts +3 -4
- package/s/timeline/renderers/export/parts/audio-gain.ts +17 -0
- package/s/timeline/renderers/export/parts/audio-mix.ts +133 -0
- package/s/timeline/renderers/export/parts/cursor.ts +109 -0
- package/s/timeline/renderers/export/parts/produce-audio.ts +64 -0
- package/s/timeline/renderers/export/parts/produce-video.ts +50 -0
- package/s/timeline/renderers/export/parts/resamplers.ts +48 -0
- package/s/timeline/renderers/export/produce.ts +28 -0
- package/s/timeline/renderers/parts/handy.ts +360 -0
- package/s/timeline/renderers/parts/samplers/audio/parts/find.ts +19 -0
- package/s/timeline/renderers/parts/samplers/audio/parts/init.ts +60 -0
- package/s/timeline/renderers/parts/samplers/audio/parts/sink.ts +38 -0
- package/s/timeline/renderers/parts/samplers/audio/parts/types.ts +16 -0
- package/s/timeline/renderers/parts/samplers/audio/sampler.ts +35 -0
- package/s/timeline/renderers/parts/samplers/visual/parts/defaults.ts +16 -0
- package/s/timeline/renderers/parts/samplers/visual/parts/sample.ts +59 -0
- package/s/timeline/renderers/parts/samplers/visual/parts/sequence.ts +111 -0
- package/s/timeline/renderers/parts/samplers/visual/parts/sink.ts +38 -0
- package/s/timeline/renderers/parts/samplers/visual/parts/transition.ts +28 -0
- package/s/timeline/renderers/parts/samplers/visual/parts/types.ts +10 -0
- package/s/timeline/renderers/parts/samplers/visual/sampler.ts +28 -0
- package/s/timeline/renderers/parts/schedulers.ts +96 -0
- package/s/timeline/renderers/player/parts/playback.ts +125 -0
- package/s/timeline/renderers/player/player.ts +71 -0
- package/s/timeline/renderers/renderers.test.ts +387 -0
- package/s/timeline/sugar/helpers.ts +85 -0
- package/s/timeline/sugar/o.ts +178 -38
- package/s/timeline/sugar/omni.test.ts +210 -0
- package/s/timeline/sugar/omni.ts +38 -12
- package/s/timeline/types.ts +29 -0
- package/s/timeline/utils/checksum.ts +3 -1
- package/s/timeline/utils/datafile.ts +15 -4
- package/s/timeline/utils/dummy-data.ts +3 -3
- package/s/timeline/utils/matrix.ts +33 -0
- package/s/units/fps.ts +8 -0
- package/s/units/ms.ts +8 -0
- package/s/units/seconds.ts +8 -0
- package/x/WebGLRenderer-7X274AYV.js +2 -0
- package/x/WebGLRenderer-7X274AYV.js.map +7 -0
- package/x/WebGPURenderer-XMCMEXAO.js +2 -0
- package/x/WebGPURenderer-XMCMEXAO.js.map +7 -0
- package/x/browserAll-6TVTCHHE.js +2 -0
- package/x/browserAll-6TVTCHHE.js.map +7 -0
- package/x/chunk-4ONWQOPX.js +157 -0
- package/x/chunk-4ONWQOPX.js.map +7 -0
- package/x/chunk-63NSCXPX.js +2 -0
- package/x/chunk-63NSCXPX.js.map +7 -0
- package/x/chunk-A45M2HJC.js +2 -0
- package/x/chunk-A45M2HJC.js.map +7 -0
- package/x/chunk-OTQK6FAJ.js +15 -0
- package/x/chunk-OTQK6FAJ.js.map +7 -0
- package/x/chunk-Q7JBQNE4.js +42 -0
- package/x/chunk-Q7JBQNE4.js.map +7 -0
- package/x/chunk-W33LM336.js +393 -0
- package/x/chunk-W33LM336.js.map +7 -0
- package/x/chunk-W5CN46AR.js +327 -0
- package/x/chunk-W5CN46AR.js.map +7 -0
- package/x/chunk-WFT3KTZG.js +269 -0
- package/x/chunk-WFT3KTZG.js.map +7 -0
- package/x/context.d.ts +1 -4
- package/x/context.js +1 -5
- package/x/context.js.map +1 -1
- package/x/demo/WebGLRenderer-NLGJGAXK.js +2 -0
- package/x/demo/WebGLRenderer-NLGJGAXK.js.map +7 -0
- package/x/demo/WebGPURenderer-RBOFXPL5.js +2 -0
- package/x/demo/WebGPURenderer-RBOFXPL5.js.map +7 -0
- package/x/demo/browserAll-5AZHDDG6.js +2 -0
- package/x/demo/browserAll-5AZHDDG6.js.map +7 -0
- package/x/demo/chunk-5ZZYIILO.js +393 -0
- package/x/demo/chunk-5ZZYIILO.js.map +7 -0
- package/x/demo/chunk-P3PTHHFE.js +42 -0
- package/x/demo/chunk-P3PTHHFE.js.map +7 -0
- package/x/demo/chunk-PYG4RZZ2.js +269 -0
- package/x/demo/chunk-PYG4RZZ2.js.map +7 -0
- package/x/demo/chunk-Q4MWBZHL.js +157 -0
- package/x/demo/chunk-Q4MWBZHL.js.map +7 -0
- package/x/demo/chunk-T3METYEY.js +15 -0
- package/x/demo/chunk-T3METYEY.js.map +7 -0
- package/x/demo/chunk-USLRKDKD.js +2 -0
- package/x/demo/chunk-USLRKDKD.js.map +7 -0
- package/x/demo/chunk-YISSXWBT.js +327 -0
- package/x/demo/chunk-YISSXWBT.js.map +7 -0
- package/x/demo/chunk-YJQWVIHX.js +2 -0
- package/x/demo/chunk-YJQWVIHX.js.map +7 -0
- package/x/demo/demo.bundle.js +92 -40
- package/x/demo/demo.bundle.js.map +1 -1
- package/x/demo/demo.bundle.min.js +2450 -35
- package/x/demo/demo.bundle.min.js.map +4 -4
- package/x/demo/demo.css +246 -11
- package/x/demo/routines/export-test.d.ts +2 -0
- package/x/demo/routines/export-test.js +10 -0
- package/x/demo/routines/export-test.js.map +1 -0
- package/x/demo/routines/filmstrip-test.d.ts +1 -1
- package/x/demo/routines/filmstrip-test.js +20 -17
- package/x/demo/routines/filmstrip-test.js.map +1 -1
- package/x/demo/routines/load-video.d.ts +1 -1
- package/x/demo/routines/load-video.js +1 -2
- package/x/demo/routines/load-video.js.map +1 -1
- package/x/demo/routines/playback-test.d.ts +2 -0
- package/x/demo/routines/playback-test.js +65 -0
- package/x/demo/routines/playback-test.js.map +1 -0
- package/x/demo/routines/timeline-setup.d.ts +6 -0
- package/x/demo/routines/timeline-setup.js +13 -0
- package/x/demo/routines/timeline-setup.js.map +1 -0
- package/x/demo/routines/transcode-test.js +17 -5
- package/x/demo/routines/transcode-test.js.map +1 -1
- package/x/demo/routines/transitions-test.js +2 -2
- package/x/demo/routines/transitions-test.js.map +1 -1
- package/x/demo/routines/waveform-test.d.ts +2 -1
- package/x/demo/routines/waveform-test.js +7 -6
- package/x/demo/routines/waveform-test.js.map +1 -1
- package/x/demo/webworkerAll-QKIC5O27.js +2 -0
- package/x/demo/webworkerAll-QKIC5O27.js.map +7 -0
- package/x/driver/WebGLRenderer-OMRWYQIV.js +2 -0
- package/x/driver/WebGLRenderer-OMRWYQIV.js.map +7 -0
- package/x/driver/WebGPURenderer-KQJB2OJJ.js +2 -0
- package/x/driver/WebGPURenderer-KQJB2OJJ.js.map +7 -0
- package/x/driver/browserAll-YBZEJCN3.js +2 -0
- package/x/driver/browserAll-YBZEJCN3.js.map +7 -0
- package/x/driver/chunk-3L3MB5NY.js +393 -0
- package/x/driver/chunk-3L3MB5NY.js.map +7 -0
- package/x/driver/chunk-42BQ4XKE.js +269 -0
- package/x/driver/chunk-42BQ4XKE.js.map +7 -0
- package/x/driver/chunk-4HAYG3N5.js +327 -0
- package/x/driver/chunk-4HAYG3N5.js.map +7 -0
- package/x/driver/chunk-BFBY7VYB.js +42 -0
- package/x/driver/chunk-BFBY7VYB.js.map +7 -0
- package/x/driver/chunk-KM6O72WE.js +157 -0
- package/x/driver/chunk-KM6O72WE.js.map +7 -0
- package/x/driver/chunk-N6HD4WYJ.js +2 -0
- package/x/driver/chunk-N6HD4WYJ.js.map +7 -0
- package/x/driver/chunk-WCZ2O3UN.js +15 -0
- package/x/driver/chunk-WCZ2O3UN.js.map +7 -0
- package/x/driver/chunk-XWNSF3WJ.js +2 -0
- package/x/driver/chunk-XWNSF3WJ.js.map +7 -0
- package/x/driver/driver-worker.d.ts +1 -0
- package/x/driver/driver-worker.js +6 -0
- package/x/driver/driver-worker.js.map +1 -0
- package/x/driver/driver.d.ts +12 -9
- package/x/driver/driver.js +31 -41
- package/x/driver/driver.js.map +1 -1
- package/x/driver/driver.test.js +1 -1
- package/x/driver/driver.test.js.map +1 -1
- package/x/driver/driver.worker.bundle.min.js +139 -1135
- package/x/driver/driver.worker.bundle.min.js.map +4 -4
- package/x/driver/fns/host.d.ts +10 -4
- package/x/driver/fns/schematic.d.ts +47 -24
- package/x/driver/fns/work.d.ts +12 -7
- package/x/driver/fns/work.js +68 -170
- package/x/driver/fns/work.js.map +1 -1
- package/x/driver/parts/compositor.d.ts +15 -0
- package/x/driver/parts/compositor.js +152 -0
- package/x/driver/parts/compositor.js.map +1 -0
- package/x/driver/parts/machina.d.ts +0 -20
- package/x/driver/parts/machina.js +6 -10
- package/x/driver/parts/machina.js.map +1 -1
- package/x/driver/webworkerAll-BKJQW6P7.js +2 -0
- package/x/driver/webworkerAll-BKJQW6P7.js.map +7 -0
- package/x/features/speech/transcribe/parts/prep-audio.d.ts +1 -1
- package/x/features/speech/transcribe/worker.bundle.min.js +703 -703
- package/x/features/speech/transcribe/worker.bundle.min.js.map +4 -4
- package/x/index.d.ts +1 -0
- package/x/index.html +349 -30
- package/x/index.html.js +103 -19
- package/x/index.html.js.map +1 -1
- package/x/index.js +1 -0
- package/x/index.js.map +1 -1
- package/x/tests.bundle.js +8 -0
- package/x/tests.bundle.js.map +1 -0
- package/x/tests.bundle.min.js +2464 -0
- package/x/tests.bundle.min.js.map +7 -0
- package/x/tests.html +316 -0
- package/x/tests.html.d.ts +2 -0
- package/x/tests.html.js +22 -0
- package/x/tests.html.js.map +1 -0
- package/x/timeline/index.d.ts +3 -0
- package/x/timeline/index.js +3 -0
- package/x/timeline/index.js.map +1 -1
- package/x/timeline/parts/basics.d.ts +1 -1
- package/x/timeline/parts/filmstrip.d.ts +4 -3
- package/x/timeline/parts/filmstrip.js +29 -10
- package/x/timeline/parts/filmstrip.js.map +1 -1
- package/x/timeline/parts/item.d.ts +51 -8
- package/x/timeline/parts/item.js +7 -3
- package/x/timeline/parts/item.js.map +1 -1
- package/x/timeline/parts/media.d.ts +5 -0
- package/x/timeline/parts/media.js +27 -1
- package/x/timeline/parts/media.js.map +1 -1
- package/x/timeline/parts/resource-pool.d.ts +3 -0
- package/x/timeline/parts/resource-pool.js +7 -4
- package/x/timeline/parts/resource-pool.js.map +1 -1
- package/x/timeline/parts/resource.d.ts +2 -0
- package/x/timeline/parts/waveform.d.ts +2 -1
- package/x/timeline/parts/waveform.js +2 -4
- package/x/timeline/parts/waveform.js.map +1 -1
- package/x/timeline/renderers/export/parts/audio-gain.d.ts +1 -0
- package/x/timeline/renderers/export/parts/audio-gain.js +13 -0
- package/x/timeline/renderers/export/parts/audio-gain.js.map +1 -0
- package/x/timeline/renderers/export/parts/audio-mix.d.ts +21 -0
- package/x/timeline/renderers/export/parts/audio-mix.js +89 -0
- package/x/timeline/renderers/export/parts/audio-mix.js.map +1 -0
- package/x/timeline/renderers/export/parts/cursor.d.ts +19 -0
- package/x/timeline/renderers/export/parts/cursor.js +80 -0
- package/x/timeline/renderers/export/parts/cursor.js.map +1 -0
- package/x/timeline/renderers/export/parts/produce-audio.d.ts +6 -0
- package/x/timeline/renderers/export/parts/produce-audio.js +41 -0
- package/x/timeline/renderers/export/parts/produce-audio.js.map +1 -0
- package/x/timeline/renderers/export/parts/produce-video.d.ts +10 -0
- package/x/timeline/renderers/export/parts/produce-video.js +27 -0
- package/x/timeline/renderers/export/parts/produce-video.js.map +1 -0
- package/x/timeline/renderers/export/parts/resamplers.d.ts +12 -0
- package/x/timeline/renderers/export/parts/resamplers.js +29 -0
- package/x/timeline/renderers/export/parts/resamplers.js.map +1 -0
- package/x/timeline/renderers/export/produce.d.ts +13 -0
- package/x/timeline/renderers/export/produce.js +15 -0
- package/x/timeline/renderers/export/produce.js.map +1 -0
- package/x/timeline/renderers/parts/handy.d.ts +30 -0
- package/x/timeline/renderers/parts/handy.js +219 -0
- package/x/timeline/renderers/parts/handy.js.map +1 -0
- package/x/timeline/renderers/parts/samplers/audio/parts/find.d.ts +6 -0
- package/x/timeline/renderers/parts/samplers/audio/parts/find.js +15 -0
- package/x/timeline/renderers/parts/samplers/audio/parts/find.js.map +1 -0
- package/x/timeline/renderers/parts/samplers/audio/parts/init.d.ts +5 -0
- package/x/timeline/renderers/parts/samplers/audio/parts/init.js +40 -0
- package/x/timeline/renderers/parts/samplers/audio/parts/init.js.map +1 -0
- package/x/timeline/renderers/parts/samplers/audio/parts/sink.d.ts +8 -0
- package/x/timeline/renderers/parts/samplers/audio/parts/sink.js +24 -0
- package/x/timeline/renderers/parts/samplers/audio/parts/sink.js.map +1 -0
- package/x/timeline/renderers/parts/samplers/audio/parts/types.d.ts +14 -0
- package/x/timeline/renderers/parts/samplers/audio/parts/types.js.map +1 -0
- package/x/timeline/renderers/parts/samplers/audio/sampler.d.ts +11 -0
- package/x/timeline/renderers/parts/samplers/audio/sampler.js +22 -0
- package/x/timeline/renderers/parts/samplers/audio/sampler.js.map +1 -0
- package/x/timeline/renderers/parts/samplers/visual/parts/defaults.d.ts +5 -0
- package/x/timeline/renderers/parts/samplers/visual/parts/defaults.js +10 -0
- package/x/timeline/renderers/parts/samplers/visual/parts/defaults.js.map +1 -0
- package/x/timeline/renderers/parts/samplers/visual/parts/sample.d.ts +5 -0
- package/x/timeline/renderers/parts/samplers/visual/parts/sample.js +38 -0
- package/x/timeline/renderers/parts/samplers/visual/parts/sample.js.map +1 -0
- package/x/timeline/renderers/parts/samplers/visual/parts/sequence.d.ts +5 -0
- package/x/timeline/renderers/parts/samplers/visual/parts/sequence.js +75 -0
- package/x/timeline/renderers/parts/samplers/visual/parts/sequence.js.map +1 -0
- package/x/timeline/renderers/parts/samplers/visual/parts/sink.d.ts +8 -0
- package/x/timeline/renderers/parts/samplers/visual/parts/sink.js +24 -0
- package/x/timeline/renderers/parts/samplers/visual/parts/sink.js.map +1 -0
- package/x/timeline/renderers/parts/samplers/visual/parts/transition.d.ts +3 -0
- package/x/timeline/renderers/parts/samplers/visual/parts/transition.js +18 -0
- package/x/timeline/renderers/parts/samplers/visual/parts/transition.js.map +1 -0
- package/x/timeline/renderers/parts/samplers/visual/parts/types.d.ts +8 -0
- package/x/timeline/renderers/parts/samplers/visual/parts/types.js +2 -0
- package/x/timeline/renderers/parts/samplers/visual/parts/types.js.map +1 -0
- package/x/timeline/renderers/parts/samplers/visual/sampler.d.ts +7 -0
- package/x/timeline/renderers/parts/samplers/visual/sampler.js +17 -0
- package/x/timeline/renderers/parts/samplers/visual/sampler.js.map +1 -0
- package/x/timeline/renderers/parts/schedulers.d.ts +17 -0
- package/x/timeline/renderers/parts/schedulers.js +64 -0
- package/x/timeline/renderers/parts/schedulers.js.map +1 -0
- package/x/timeline/renderers/player/parts/playback.d.ts +31 -0
- package/x/timeline/renderers/player/parts/playback.js +91 -0
- package/x/timeline/renderers/player/parts/playback.js.map +1 -0
- package/x/timeline/renderers/player/player.d.ts +23 -0
- package/x/timeline/renderers/player/player.js +50 -0
- package/x/timeline/renderers/player/player.js.map +1 -0
- package/x/timeline/renderers/renderers.test.d.ts +32 -0
- package/x/timeline/renderers/renderers.test.js +306 -0
- package/x/timeline/renderers/renderers.test.js.map +1 -0
- package/x/timeline/sugar/helpers.d.ts +30 -0
- package/x/timeline/sugar/helpers.js +46 -0
- package/x/timeline/sugar/helpers.js.map +1 -0
- package/x/timeline/sugar/o.d.ts +31 -4
- package/x/timeline/sugar/o.js +144 -38
- package/x/timeline/sugar/o.js.map +1 -1
- package/x/timeline/sugar/omni.d.ts +11 -2
- package/x/timeline/sugar/omni.js +30 -9
- package/x/timeline/sugar/omni.js.map +1 -1
- package/x/timeline/sugar/omni.test.d.ts +27 -0
- package/x/timeline/sugar/omni.test.js +128 -0
- package/x/timeline/sugar/omni.test.js.map +1 -0
- package/x/timeline/types.d.ts +24 -0
- package/x/timeline/types.js +2 -0
- package/x/timeline/types.js.map +1 -0
- package/x/timeline/utils/checksum.d.ts +3 -2
- package/x/timeline/utils/checksum.js.map +1 -1
- package/x/timeline/utils/datafile.d.ts +5 -3
- package/x/timeline/utils/datafile.js +18 -5
- package/x/timeline/utils/datafile.js.map +1 -1
- package/x/timeline/utils/dummy-data.d.ts +1 -2
- package/x/timeline/utils/dummy-data.js +4 -2
- package/x/timeline/utils/dummy-data.js.map +1 -1
- package/x/timeline/utils/matrix.d.ts +8 -0
- package/x/timeline/utils/matrix.js +26 -0
- package/x/timeline/utils/matrix.js.map +1 -0
- package/x/units/fps.d.ts +6 -0
- package/x/units/fps.js +2 -0
- package/x/units/fps.js.map +1 -0
- package/x/units/ms.d.ts +6 -0
- package/x/units/ms.js +2 -0
- package/x/units/ms.js.map +1 -0
- package/x/units/seconds.d.ts +6 -0
- package/x/units/seconds.js +2 -0
- package/x/units/seconds.js.map +1 -0
- package/x/webworkerAll-VVIU3M54.js +2 -0
- package/x/webworkerAll-VVIU3M54.js.map +7 -0
- package/s/tests.test.ts +0 -8
- package/s/timeline/sugar/omni-test.ts +0 -38
- package/s/tools/common/loader.ts +0 -26
- package/s/tools/common/transformer-pipeline.ts +0 -26
- package/s/tools/speech-recognition/common/model.ts +0 -26
- package/s/tools/speech-recognition/whisper/fns/host.ts +0 -25
- package/s/tools/speech-recognition/whisper/fns/schematic.ts +0 -23
- package/s/tools/speech-recognition/whisper/fns/work.ts +0 -91
- package/s/tools/speech-recognition/whisper/parts/types.ts +0 -38
- package/s/tools/speech-recognition/whisper/parts/worker.bundle.ts +0 -7
- package/s/tools/speech-recognition/whisper/tool.ts +0 -70
- package/x/tests.test.js +0 -6
- package/x/tests.test.js.map +0 -1
- package/x/timeline/sugar/omni-test.d.ts +0 -1
- package/x/timeline/sugar/omni-test.js +0 -22
- package/x/timeline/sugar/omni-test.js.map +0 -1
- package/x/tools/common/loader.d.ts +0 -19
- package/x/tools/common/loader.js +0 -18
- package/x/tools/common/loader.js.map +0 -1
- package/x/tools/common/transformer-pipeline.d.ts +0 -8
- package/x/tools/common/transformer-pipeline.js +0 -24
- package/x/tools/common/transformer-pipeline.js.map +0 -1
- package/x/tools/speech-recognition/common/model.d.ts +0 -14
- package/x/tools/speech-recognition/common/model.js +0 -16
- package/x/tools/speech-recognition/common/model.js.map +0 -1
- package/x/tools/speech-recognition/whisper/fns/host.d.ts +0 -13
- package/x/tools/speech-recognition/whisper/fns/host.js +0 -19
- package/x/tools/speech-recognition/whisper/fns/host.js.map +0 -1
- package/x/tools/speech-recognition/whisper/fns/schematic.d.ts +0 -19
- package/x/tools/speech-recognition/whisper/fns/schematic.js +0 -2
- package/x/tools/speech-recognition/whisper/fns/schematic.js.map +0 -1
- package/x/tools/speech-recognition/whisper/fns/work.d.ts +0 -12
- package/x/tools/speech-recognition/whisper/fns/work.js +0 -74
- package/x/tools/speech-recognition/whisper/fns/work.js.map +0 -1
- package/x/tools/speech-recognition/whisper/parts/types.d.ts +0 -31
- package/x/tools/speech-recognition/whisper/parts/types.js.map +0 -1
- package/x/tools/speech-recognition/whisper/parts/worker.bundle.d.ts +0 -1
- package/x/tools/speech-recognition/whisper/parts/worker.bundle.js +0 -4
- package/x/tools/speech-recognition/whisper/parts/worker.bundle.js.map +0 -1
- package/x/tools/speech-recognition/whisper/parts/worker.bundle.min.js +0 -8
- package/x/tools/speech-recognition/whisper/parts/worker.bundle.min.js.map +0 -7
- package/x/tools/speech-recognition/whisper/tool.d.ts +0 -12
- package/x/tools/speech-recognition/whisper/tool.js +0 -63
- package/x/tools/speech-recognition/whisper/tool.js.map +0 -1
- /package/x/{tests.test.d.ts → tests.bundle.d.ts} +0 -0
- /package/x/{tools/speech-recognition/whisper → timeline/renderers/parts/samplers/audio}/parts/types.js +0 -0
|
@@ -1,1142 +1,146 @@
|
|
|
1
|
-
var $E=Object.create;var kh=Object.defineProperty;var qE=Object.getOwnPropertyDescriptor;var jE=Object.getOwnPropertyNames;var XE=Object.getPrototypeOf,YE=Object.prototype.hasOwnProperty;var p=(r,e)=>()=>(r&&(e=r(r=0)),e);var Or=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),yg=(r,e)=>{for(var t in e)kh(r,t,{get:e[t],enumerable:!0})},KE=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of jE(e))!YE.call(r,s)&&s!==t&&kh(r,s,{get:()=>e[s],enumerable:!(i=qE(e,s))||i.enumerable});return r};var Ah=(r,e,t)=>(t=r!=null?$E(XE(r)):{},KE(e||!r||!r.__esModule?kh(t,"default",{value:r,enumerable:!0}):t,r));var b,Oh,Rc,O,P=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||{}),Oh=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},Rc=(r,e)=>Oh(r).priority??e,O={_addHandlers:{},_removeHandlers:{},_queue:{},remove(...r){return r.map(Oh).forEach(e=>{e.type.forEach(t=>this._removeHandlers[t]?.(e))}),this},add(...r){return r.map(Oh).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)=>Rc(o.value,t)-Rc(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)=>Rc(n,t)-Rc(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 Hg=Or((EO,Gh)=>{"use strict";var dk=Object.prototype.hasOwnProperty,Ze="~";function Un(){}Object.create&&(Un.prototype=Object.create(null),new Un().__proto__||(Ze=!1));function fk(r,e,t){this.fn=r,this.context=e,this.once=t||!1}function Vg(r,e,t,i,s){if(typeof t!="function")throw new TypeError("The listener must be a function");var n=new fk(t,i||r,s),o=Ze?Ze+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 Dc(r,e){--r._eventsCount===0?r._events=new Un:delete r._events[e]}function qe(){this._events=new Un,this._eventsCount=0}qe.prototype.eventNames=function(){var e=[],t,i;if(this._eventsCount===0)return e;for(i in t=this._events)dk.call(t,i)&&e.push(Ze?i.slice(1):i);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e};qe.prototype.listeners=function(e){var t=Ze?Ze+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=Ze?Ze+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=Ze?Ze+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 Vg(this,e,t,i,!1)};qe.prototype.once=function(e,t,i){return Vg(this,e,t,i,!0)};qe.prototype.removeListener=function(e,t,i,s){var n=Ze?Ze+e:e;if(!this._events[n])return this;if(!t)return Dc(this,n),this;var o=this._events[n];if(o.fn)o.fn===t&&(!s||o.once)&&(!i||o.context===i)&&Dc(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:Dc(this,n)}return this};qe.prototype.removeAllListeners=function(e){var t;return e?(t=Ze?Ze+e:e,this._events[t]&&Dc(this,t)):(this._events=new Un,this._eventsCount=0),this};qe.prototype.off=qe.prototype.removeListener;qe.prototype.addListener=qe.prototype.on;qe.prefixed=Ze;qe.EventEmitter=qe;typeof Gh<"u"&&(Gh.exports=qe)});var Wg,oe,Ve=p(()=>{Wg=Ah(Hg(),1),oe=Wg.default});var mk,pr,Ue,St,Zg,$g,Nh,pk,Mc,Jg,ex,qg,jg,Xg,On,gk,xk,_k,bk,Vh,Yg,yk,Lh,zh,Kg,Hh,Mt,Qg,tx,rx=p(()=>{mk={grad:.9,turn:360,rad:360/(2*Math.PI)},pr=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},St=function(r,e,t){return e===void 0&&(e=0),t===void 0&&(t=1),r>t?t:r>e?r:e},Zg=function(r){return(r=isFinite(r)?r%360:0)>0?r:r+360},$g=function(r){return{r:St(r.r,0,255),g:St(r.g,0,255),b:St(r.b,0,255),a:St(r.a)}},Nh=function(r){return{r:Ue(r.r),g:Ue(r.g),b:Ue(r.b),a:Ue(r.a,3)}},pk=/^#([0-9a-f]{3,8})$/i,Mc=function(r){var e=r.toString(16);return e.length<2?"0"+e:e},Jg=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}},ex=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}},qg=function(r){return{h:Zg(r.h),s:St(r.s,0,100),l:St(r.l,0,100),a:St(r.a)}},jg=function(r){return{h:Ue(r.h),s:Ue(r.s),l:Ue(r.l),a:Ue(r.a,3)}},Xg=function(r){return ex((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},On=function(r){return{h:(e=Jg(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},gk=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,xk=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,_k=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,bk=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Vh={string:[[function(r){var e=pk.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=_k.exec(r)||bk.exec(r);return e?e[2]!==e[4]||e[4]!==e[6]?null:$g({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=gk.exec(r)||xk.exec(r);if(!e)return null;var t,i,s=qg({h:(t=e[1],i=e[2],i===void 0&&(i="deg"),Number(t)*(mk[i]||1)),s:Number(e[3]),l:Number(e[4]),a:e[5]===void 0?1:Number(e[5])/(e[6]?100:1)});return Xg(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 pr(e)&&pr(t)&&pr(i)?$g({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(!pr(e)||!pr(t)||!pr(i))return null;var o=qg({h:Number(e),s:Number(t),l:Number(i),a:Number(n)});return Xg(o)},"hsl"],[function(r){var e=r.h,t=r.s,i=r.v,s=r.a,n=s===void 0?1:s;if(!pr(e)||!pr(t)||!pr(i))return null;var o=function(a){return{h:Zg(a.h),s:St(a.s,0,100),v:St(a.v,0,100),a:St(a.a)}}({h:Number(e),s:Number(t),v:Number(i),a:Number(n)});return ex(o)},"hsv"]]},Yg=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]},yk=function(r){return typeof r=="string"?Yg(r.trim(),Vh.string):typeof r=="object"&&r!==null?Yg(r,Vh.object):[null,void 0]},Lh=function(r,e){var t=On(r);return{h:t.h,s:St(t.s+100*e,0,100),l:t.l,a:t.a}},zh=function(r){return(299*r.r+587*r.g+114*r.b)/1e3/255},Kg=function(r,e){var t=On(r);return{h:t.h,s:t.s,l:St(t.l+100*e,0,100),a:t.a}},Hh=function(){function r(e){this.parsed=yk(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(zh(this.rgba),2)},r.prototype.isDark=function(){return zh(this.rgba)<.5},r.prototype.isLight=function(){return zh(this.rgba)>=.5},r.prototype.toHex=function(){return e=Nh(this.rgba),t=e.r,i=e.g,s=e.b,o=(n=e.a)<1?Mc(Ue(255*n)):"","#"+Mc(t)+Mc(i)+Mc(s)+o;var e,t,i,s,n,o},r.prototype.toRgb=function(){return Nh(this.rgba)},r.prototype.toRgbString=function(){return e=Nh(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 jg(On(this.rgba))},r.prototype.toHslString=function(){return e=jg(On(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=Jg(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 Mt({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),Mt(Lh(this.rgba,e))},r.prototype.desaturate=function(e){return e===void 0&&(e=.1),Mt(Lh(this.rgba,-e))},r.prototype.grayscale=function(){return Mt(Lh(this.rgba,-1))},r.prototype.lighten=function(e){return e===void 0&&(e=.1),Mt(Kg(this.rgba,e))},r.prototype.darken=function(e){return e===void 0&&(e=.1),Mt(Kg(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"?Mt({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=On(this.rgba);return typeof e=="number"?Mt({h:e,s:t.s,l:t.l,a:t.a}):Ue(t.h)},r.prototype.isEqual=function(e){return this.toHex()===Mt(e).toHex()},r}(),Mt=function(r){return r instanceof Hh?r:new Hh(r)},Qg=[],tx=function(r){r.forEach(function(e){Qg.indexOf(e)<0&&(e(Hh,Vh),Qg.push(e))})}});function ix(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 sx=p(()=>{});var ns,q,He=p(()=>{rx();sx();tx([ix]);ns=class Gn{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 Gn)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]=Gn._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=Gn.HEX_PATTERN.exec(e);a&&(e=`#${a[2]}`)}let o=Mt(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 Gn||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}};ns.shared=new ns;ns._temp=new ns;ns.HEX_PATTERN=/^(#|0x)?(([a-f0-9]{3}){1,2}([a-f0-9]{2})?)$/i;q=ns});var nx,ox=p(()=>{"use strict";nx={cullArea:null,cullable:!1,cullableChildren:!0}});var ax,cx,ux,Wh=p(()=>{"use strict";ax=Math.PI*2,cx=180/Math.PI,ux=Math.PI/180});var Z,$h,It=p(()=>{"use strict";Z=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 $h.x=0,$h.y=0,$h}},$h=new Z});var R,Tk,wk,ee=p(()=>{Wh();It();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 Z;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 Z;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(ax-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 wk.identity()}static get shared(){return Tk.identity()}},Tk=new R,wk=new R});var We,Ic=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 qh[r]===void 0&&(qh[r]=-1),++qh[r]}var qh,Oe=p(()=>{"use strict";qh={default:-1}});function z(r,e,t=3){if(lx[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))),lx[e]=!0}var lx,$,hx,ye=p(()=>{"use strict";lx={},$="8.0.0",hx="8.3.4"});var xi,jh=p(()=>{"use strict";xi=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 Xh,pe,gr=p(()=>{jh();Xh=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 xi(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}},pe=new Xh});var dx,fx=p(()=>{ye();dx={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 Fc(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 Yh=p(()=>{"use strict"});var mx,px=p(()=>{Yh();ye();mx={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)}Fc(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 gx,xx=p(()=>{"use strict";gx={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 xr,Uc=p(()=>{"use strict";xr=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 Kh,Oc,_x=p(()=>{P();gr();Kh=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 pe.get(i.maskClass,e)}return e}returnMaskEffect(e){pe.return(e)}},Oc=new Kh;O.handleByList(b.MaskEffect,Oc._effectClasses)});var bx,yx=p(()=>{Uc();_x();bx={_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),Oc.returnMaskEffect(e),this._maskEffect=null),r!=null&&(this._maskEffect=Oc.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 xr);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 xr),this._filterEffect.filterArea=r},get filterArea(){return this._filterEffect?.filterArea}}});var Tx,wx=p(()=>{ye();Tx={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 Gc,Y,Ge=p(()=>{It();Gc=[new Z,new Z,new Z,new Z],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 M=this.x<e.x?e.x:this.x;if((this.right>e.right?e.right:this.right)<=M)return!1;let B=this.y<e.y?e.y:this.y;return(this.bottom>e.bottom?e.bottom:this.bottom)>B}let i=this.left,s=this.right,n=this.top,o=this.bottom;if(s<=i||o<=n)return!1;let a=Gc[0].set(e.left,e.top),c=Gc[1].set(e.left,e.bottom),u=Gc[2].set(e.right,e.top),l=Gc[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 Sx,ae,ot=p(()=>{ee();Ge();Sx=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=Sx,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=Sx,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 Re,gt,_i=p(()=>{ee();jh();ot();Re=new xi(R),gt=new xi(ae)});var Sk,vx,Cx=p(()=>{ee();ot();_i();Sk=new R,vx={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=gt.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(Sk).invert()),e.addBounds(i,this.relativeGroupTransform)),e.addBounds(i),gt.return(i)}else this.renderGroup&&(e.addBounds(i,this.relativeGroupTransform),gt.return(i))}}});function os(r,e,t){t.clear();let i,s;return r.parent?e?i=r.parent.worldTransform:(s=Re.get().identity(),i=Nc(r,s)):i=R.IDENTITY,Ex(r,t,i,e),s&&Re.return(s),t.isValid||t.set(0,0,0,0),t}function Ex(r,e,t,i){if(!r.visible||!r.measurable)return;let s;i?s=r.worldTransform:(r.updateLocalTransform(),s=Re.get(),s.appendFrom(r.localTransform,t));let n=e,o=!!r.effects.length;if(o&&(e=gt.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++)Ex(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),gt.return(e)}i||Re.return(s)}function Nc(r,e){let t=r.parent;return t&&(Nc(t,e),t.updateLocalTransform(),e.append(t.localTransform)),e}var Nn=p(()=>{ee();_i()});function Lc(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 Qh=p(()=>{"use strict"});function as(r,e){return r===kx?e:e===kx?r:Lc(r,e)}var kx,Zh=p(()=>{Qh();kx=16777215});function Ln(r){return((r&255)<<16)+(r&65280)+(r>>16&255)}var Ax,Px=p(()=>{Nn();_i();Zh();Ax={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=Nc(this,Re.get().identity());return r.appendFrom(this.localTransform,t),Re.return(t),r},getGlobalTint(r){if(r)return this.renderGroup?Ln(this.renderGroup.worldColor):this.parentRenderGroup?Ln(as(this.localColor,this.parentRenderGroup.worldColor)):this.tint;let e=this.localColor,t=this.parent;for(;t;)e=as(e,t.localColor),t=t.parent;return Ln(e)}}});function cs(r,e,t){return e.clear(),t||(t=R.IDENTITY),Bx(r,e,t,r,!0),e.isValid||e.set(0,0,0,0),e}function Bx(r,e,t,i,s){let n;if(s)n=Re.get(),n=t.copyTo(n);else{if(!r.visible||!r.measurable)return;r.updateLocalTransform();let c=r.localTransform;n=Re.get(),n.appendFrom(c,t)}let o=e,a=!!r.effects.length;if(a&&(e=gt.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++)Bx(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),gt.return(e)}Re.return(n)}var zc=p(()=>{ee();_i()});function Jh(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&&Jh(s,e)}return e.didChange}var Rx=p(()=>{"use strict"});var vk,Dx,Mx=p(()=>{ee();ot();Nn();zc();Rx();vk=new R,Dx={_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),Jh(this,r),r.didChange&&cs(this,r.localBounds,vk),r.localBounds},getBounds(r,e){return os(this,r,e||new ae)}}});var Ix,Fx=p(()=>{"use strict";Ix={_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 Ck(r,e){return r._zIndex-e._zIndex}var Ux,Ox=p(()=>{"use strict";Ux={_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(Ck))}}});var Gx,Nx=p(()=>{It();_i();Gx={getGlobalPosition(r=new Z,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(Re.get(),t);return e=i.apply(r,e),Re.return(i),e},toLocal(r,e,t,i){e&&(r=e.toGlobal(r,t,i));let s=this.getGlobalTransform(Re.get(),i);return t=s.applyInverse(r,t),Re.return(s),t}}});var us,ed=p(()=>{Oe();us=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 _r(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 td(r){return!(r&r-1)&&!!r}var zn=p(()=>{"use strict"});function Vc(r){let e={};for(let t in r)r[t]!==void 0&&(e[t]=r[t]);return e}var rd=p(()=>{"use strict"});function Ek(r){let e=Lx[r];return e===void 0&&(Lx[r]=K("resource")),e}var Lx,zx,Je,bi=p(()=>{Ve();Oe();ye();Lx=Object.create(null);zx=class Vx extends oe{constructor(e={}){super(),this._resourceType="textureSampler",this._touched=0,this._maxAnisotropy=1,this.destroyed=!1,e={...Vx.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=Ek(e),this._resourceId}destroy(){this.destroyed=!0,this.emit("destroy",this),this.emit("change",this),this.removeAllListeners()}};zx.defaultOptions={addressMode:"clamp-to-edge",scaleMode:"linear"};Je=zx});var Hx,se,et=p(()=>{Ve();zn();rd();Oe();bi();Hx=class Wx 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={...Wx.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 Je(Vc(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=td(this.pixelWidth)&&td(this.pixelHeight)}static test(e){throw new Error("Unimplemented")}};Hx.defaultOptions={resolution:1,format:"bgra8unorm",alphaMode:"premultiply-alpha-on-upload",dimensions:"2d",mipLevelCount:1,autoGenerateMipmaps:!1,sampleCount:1,antialias:!1,autoGarbageCollect:!1};se=Hx});function kk(){for(let r=0;r<16;r++){let e=[];id.push(e);for(let t=0;t<16;t++){let i=Hc(yi[r]*yi[t]+wi[r]*Ti[t]),s=Hc(Ti[r]*yi[t]+Si[r]*Ti[t]),n=Hc(yi[r]*wi[t]+wi[r]*Si[t]),o=Hc(Ti[r]*wi[t]+Si[r]*Si[t]);for(let a=0;a<16;a++)if(yi[a]===i&&Ti[a]===s&&wi[a]===n&&Si[a]===o){e.push(a);break}}}for(let r=0;r<16;r++){let e=new R;e.set(yi[r],Ti[r],wi[r],Si[r],0,0),$x.push(e)}}var yi,Ti,wi,Si,id,$x,Hc,xe,qx=p(()=>{ee();yi=[1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1,0,1],Ti=[0,1,1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1],wi=[0,-1,-1,-1,0,1,1,1,0,1,1,1,0,-1,-1,-1],Si=[1,1,0,-1,-1,-1,0,1,-1,-1,0,1,1,1,0,-1],id=[],$x=[],Hc=Math.sign;kk();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=>yi[r],uY:r=>Ti[r],vX:r=>wi[r],vY:r=>Si[r],inv:r=>r&8?r&15:-r&7,add:(r,e)=>id[r][e],sub:(r,e)=>id[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=$x[xe.inv(e)];s.tx=t,s.ty=i,r.append(s)}}});var sd,jx=p(()=>{"use strict";sd=()=>{}});var vi,nd=p(()=>{P();et();vi=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}};vi.extension=b.TextureSource});var Xx,ls,od=p(()=>{ee();Xx=new R,ls=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&&(Xx.set(i.width/s.width,0,0,i.height/s.height,-s.x/s.width,-s.y/s.height),this.mapCoord.append(Xx));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 D,le=p(()=>{Ve();qx();Ge();Oe();ye();jx();nd();et();od();D=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 ls(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}};D.EMPTY=new D({label:"EMPTY",source:new se({label:"EMPTY"})});D.EMPTY.destroy=sd;D.WHITE=new D({source:new vi({resource:new Uint8Array([255,255,255,255]),width:1,height:1,alphaMode:"premultiply-alpha-on-upload",label:"WHITE"}),label:"WHITE"});D.WHITE.destroy=sd});var Ak,ad,Te,Lr=p(()=>{zn();et();le();bi();Ak=0,ad=class{constructor(e){this._poolKeyHash=Object.create(null),this._texturePool={},this.textureOptions=e||{},this.enableFullScreen=!1,this.textureStyle=new Je(this.textureOptions)}createTexture(e,t,i){let s=new se({...this.textureOptions,width:e,height:t,resolution:1,antialias:i,autoGarbageCollect:!1});return new D({source:s,label:`texturePool_${Ak++}`})}getOptimalTexture(e,t,i=1,s){let n=Math.ceil(e*i-1e-6),o=Math.ceil(t*i-1e-6);n=_r(n),o=_r(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 ad});var Wc,Yx=p(()=>{ee();ed();Lr();Wc=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 us,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 Kx(r,e,t={}){for(let i in e)!t[i]&&e[i]!==void 0&&(r[i]=e[i])}var Qx=p(()=>{"use strict"});var cd,ud,ld,hs,Vn,Ci,we,Ht=p(()=>{Ve();He();ox();P();ee();Wh();Ic();Oe();ye();gr();fx();px();xx();yx();wx();Cx();Px();Mx();Fx();Ox();Nx();Yx();Qx();cd=new We(null),ud=new We(null),ld=new We(null,1,1),hs=1,Vn=2,Ci=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=ld,this._pivot=ud,this._skew=cd,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=[],Kx(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=pe.get(Wc,this),this.groupTransform=R.IDENTITY,e?.addChild(this),this._updateIsSimple()}disableRenderGroup(){if(!this.renderGroup)return;let e=this.parentRenderGroup;e?.removeChild(this),pe.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*cx}set angle(e){this.rotation=e*ux}get pivot(){return this._pivot===ud&&(this._pivot=new We(this,0,0)),this._pivot}set pivot(e){this._pivot===ud&&(this._pivot=new We(this,0,0)),typeof e=="number"?this._pivot.set(e):this._pivot.copyFrom(e)}get skew(){return this._skew===cd&&(this._skew=new We(this,0,0)),this._skew}set skew(e){this._skew===cd&&(this._skew=new We(this,0,0)),this._skew.copyFrom(e)}get scale(){return this._scale===ld&&(this._scale=new We(this,1,1)),this._scale}set scale(e){this._scale===ld&&(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|=hs,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|=hs,this._onUpdate())}get tint(){return Ln(this.localColor)}set blendMode(e){this.localBlendMode!==e&&(this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._updateFlags|=Vn,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|=Ci,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|=Ci,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|=Ci,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,mx,vx,Gx,Ix,Dx,bx,Tx,Ux,nx,dx,Ax,gx)});var zr,$c=p(()=>{It();zr=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 Z,this.page=new Z,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 Pk(r){return function(e){return e.test(r)}}function Hn(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=Pk(t),n={apple:{phone:s(hd)&&!s(br),ipod:s(Zx),tablet:!s(hd)&&(s(Jx)||c0(e))&&!s(br),universal:s(e0),device:(s(hd)||s(Zx)||s(Jx)||s(e0)||c0(e))&&!s(br)},amazon:{phone:s(ds),tablet:!s(ds)&&s(qc),device:s(ds)||s(qc)},android:{phone:!s(br)&&s(ds)||!s(br)&&s(dd),tablet:!s(br)&&!s(ds)&&!s(dd)&&(s(qc)||s(t0)),device:!s(br)&&(s(ds)||s(qc)||s(dd)||s(t0))||s(/\bokhttp\b/i)},windows:{phone:s(br),tablet:s(r0),device:s(br)||s(r0)},other:{blackberry:s(i0),blackberry10:s(s0),opera:s(n0),firefox:s(a0),chrome:s(o0),device:s(i0)||s(s0)||s(n0)||s(a0)||s(o0)},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 hd,Zx,Jx,e0,dd,t0,ds,qc,br,r0,i0,s0,n0,o0,a0,c0,fd=p(()=>{hd=/iPhone/i,Zx=/iPod/i,Jx=/iPad/i,e0=/\biOS-universal(?:.+)Mac\b/i,dd=/\bAndroid(?:.+)Mobile\b/i,t0=/Android/i,ds=/(?:SD4930UR|\bSilk(?:.+)Mobile\b)/i,qc=/Silk/i,br=/Windows Phone/i,r0=/\bWindows(?:.+)ARM\b/i,i0=/BlackBerry/i,s0=/BB10/i,n0=/Opera Mini/i,o0=/\b(CriOS|Chrome)(?:.+)Mobile/i,a0=/Mobile(?:.+)Firefox\b/i,c0=function(r){return typeof r<"u"&&r.platform==="MacIntel"&&typeof r.maxTouchPoints=="number"&&r.maxTouchPoints>1&&typeof MSStream>"u"}});var u0=p(()=>{fd();fd()});var Bk,l0,h0=p(()=>{u0();Bk=Hn.default??Hn,l0=Bk(globalThis.navigator)});var Rk,jc,Dk,Mk,d0,f0,Ik,Fk,Uk,md,p0,g0=p(()=>{$c();P();h0();Yh();Rk=9,jc=100,Dk=0,Mk=0,d0=2,f0=1,Ik=-1e3,Fk=-1e3,Uk=2,md=class m0{constructor(e,t=l0){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=`${f0}px`,e.style.height=`${f0}px`,e.style.position="absolute",e.style.top=`${Ik}px`,e.style.left=`${Fk}px`,e.style.zIndex=Uk.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=`${jc}px`,this._div.style.height=`${jc}px`,this._div.style.position="absolute",this._div.style.top=`${Dk}px`,this._div.style.left=`${Mk}px`,this._div.style.zIndex=d0.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:{...m0.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,Fc(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=`${jc}px`,t.style.height=`${jc}px`,t.style.backgroundColor=this.debug?"rgba(255,255,255,0.5)":"transparent",t.style.position="absolute",t.style.zIndex=d0.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 zr(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!==Rk||!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()}};md.extension={type:[b.WebGLSystem,b.WebGPUSystem],name:"accessibility"};md.defaultOptions={enabledByDefault:!1,debug:!1,activateOnTab:!0,deactivateOnMouseMove:!0};p0=md});var x0,_0=p(()=>{"use strict";x0={accessible:!1,accessibleTitle:null,accessibleHint:null,tabIndex:0,accessibleType:"button",accessibleText:null,accessiblePointerEvents:"auto",accessibleChildren:!0,_accessibleActive:!1,_accessibleDiv:null,_renderId:-1}});var b0=p(()=>{P();Ht();g0();_0();O.add(p0);O.mixin(we,x0)});var Wn,y0=p(()=>{P();Wn=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}};Wn.extension=b.Application});var Vr,Xc=p(()=>{"use strict";Vr=(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))(Vr||{})});var fs,T0=p(()=>{"use strict";fs=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 w0,at,$n=p(()=>{Xc();T0();w0=class xt{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 fs(null,null,1/0),this.deltaMS=1/xt.targetFPMS,this.elapsedMS=1/xt.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=Vr.NORMAL){return this._addListener(new fs(e,t,i))}addOnce(e,t,i=Vr.NORMAL){return this._addListener(new fs(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*xt.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,xt.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(!xt._shared){let e=xt._shared=new xt;e.autoStart=!0,e._protected=!0}return xt._shared}static get system(){if(!xt._system){let e=xt._system=new xt;e.autoStart=!0,e._protected=!0}return xt._system}};w0.targetFPMS=.06;at=w0});var qn,S0=p(()=>{P();Xc();$n();qn=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,Vr.LOW)},get(){return this._ticker}}),this.stop=()=>{this._ticker.stop()},this.start=()=>{this._ticker.start()},this._ticker=null,this.ticker=e.sharedTicker?at.shared:new at,e.autoStart&&this.start()}static destroy(){if(this._ticker){let e=this._ticker;this.ticker=null,e.destroy()}}};qn.extension=b.Application});var pd=p(()=>{P();y0();S0();O.add(Wn);O.add(qn)});function G(...r){gd!==v0&&(gd++,gd===v0?console.warn("PixiJS Warning: too many warnings, no more warnings will be reported to the console by PixiJS."):console.warn("PixiJS Warning: ",...r))}var gd,v0,ge=p(()=>{"use strict";gd=0,v0=500});var xd,Wt,_d=p(()=>{Xc();$n();xd=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||(at.system.add(this._tickerUpdate,this,Vr.INTERACTION),this._tickerAdded=!0)}removeTickerListener(){this._tickerAdded&&(at.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())}},Wt=new xd});var yr,Yc=p(()=>{It();$c();yr=class extends zr{constructor(){super(...arguments),this.client=new Z,this.movement=new Z,this.offset=new Z,this.global=new Z,this.screen=new Z}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 tt,bd=p(()=>{Yc();tt=class extends yr{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 $t,yd=p(()=>{Yc();$t=class extends yr{constructor(){super(...arguments),this.DOM_DELTA_PIXEL=0,this.DOM_DELTA_LINE=1,this.DOM_DELTA_PAGE=2}};$t.DOM_DELTA_PIXEL=0;$t.DOM_DELTA_LINE=1;$t.DOM_DELTA_PAGE=2});var Ok,Gk,jn,Kc,C0=p(()=>{Ve();It();ge();_d();Yc();bd();yd();Ok=2048,Gk=new Z,jn=new Z,Kc=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 G(`[EventBoundary]: Event mapping not defined for ${e.type}`)}hitTest(e,t){Wt.pauseUpdate=!0;let s=this._isPointerMoveEvent&&this.enableGlobalMoveEvents?"hitTestMoveRecursive":"hitTestRecursive",n=this[s](this.rootTarget,this.rootTarget.eventMode,Gk.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<Ok&&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")&&(Wt.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")&&(Wt.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,jn),!e.hitArea.contains(jn.x,jn.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,jn),e.containsPoint(jn)):!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 tt)){G("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 tt)){G("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 tt)){G("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 tt)){G("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 tt)){G("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 tt)){G("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 $t)){G("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(tt);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($t);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(tt);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 tt&&t instanceof tt&&(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 yr&&t instanceof yr&&(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 Nk,Lk,wd,Qc,Sd=p(()=>{P();C0();_d();bd();yd();Nk=1,Lk={touchstart:"pointerdown",touchend:"pointerup",touchendoutside:"pointerupoutside",touchmove:"pointermove",touchcancel:"pointercancel"},wd=class Td{constructor(e){this.supportsTouchEvents="ontouchstart"in globalThis,this.supportsPointerEvents=!!globalThis.PointerEvent,this.domElement=null,this.resolution=1,this.renderer=e,this.rootBoundary=new Kc(null),Wt.init(this),this.autoPreventDefault=!0,this._eventsAdded=!1,this._rootPointerEvent=new tt(null),this._rootWheelEvent=new $t(null),this.cursorStyles={default:"inherit",pointer:"pointer"},this.features=new Proxy({...Td.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,Td._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,Wt.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,Wt.domElement=e,this._addEvents()}_addEvents(){if(this._eventsAdded||!this.domElement)return;Wt.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;Wt.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=Nk),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=Lk[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}};wd.extension={name:"events",type:[b.WebGLSystem,b.CanvasSystem,b.WebGPUSystem],priority:-1};wd.defaultEventFeatures={move:!0,globalMove:!0,click:!0,wheel:!0};Qc=wd});var E0,k0=p(()=>{Sd();$c();E0={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??Qc.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 zr))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 A0=p(()=>{P();Ht();Sd();k0();O.add(Qc);O.mixin(we,E0)});var Xn,P0=p(()=>{P();Xn=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}};Xn.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"dom"}});var Hr,Zc=p(()=>{ot();Ht();Hr=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 B0=p(()=>{P();P0();O.add(Xn)});var vd,R0=p(()=>{"use strict";vd=(r=>(r[r.Low=0]="Low",r[r.Normal=1]="Normal",r[r.High=2]="High",r))(vd||{})});var D0,M0=p(()=>{"use strict";D0={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 I0,W,ve=p(()=>{M0();I0=D0,W={get(){return I0},set(r){I0=r}}});function Ft(r){if(typeof r!="string")throw new TypeError(`Path must be a string. Received ${JSON.stringify(r)}`)}function Yn(r){return r.split("?")[0].split("#")[0]}function zk(r){return r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Vk(r,e,t){return r.replace(new RegExp(zk(e),"g"),t)}function Hk(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 Ei,Cd=p(()=>{ve();Ei={toPosix(r){return Vk(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){Ft(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(Ft(r),this.isDataUrl(r)||this.isBlobUrl(r))return r;let i=Yn(this.toPosix(e??W.get().getBaseUrl())),s=Yn(this.toPosix(t??this.rootname(i)));return r=this.toPosix(r),r.startsWith("/")?Ei.join(s,r.slice(1)):this.isAbsolute(r)?r:this.join(i,r)},normalize(r){if(Ft(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=Hk(r,!1),r.length>0&&i&&(r+="/"),t?`/${r}`:e+r},isAbsolute(r){return Ft(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(Ft(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(Ft(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){Ft(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){Ft(r),e&&Ft(e),r=Yn(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){Ft(r),r=Yn(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){Ft(r);let e={root:"",dir:"",base:"",ext:"",name:""};if(r.length===0)return e;r=Yn(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 Wr,Ed=p(()=>{"use strict";Wr=(r,e,t=!1)=>(Array.isArray(r)||(r=[r]),e?r.map(i=>typeof i=="string"||t?e(i):i):r)});function F0(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?F0(r.replace(i[t],a),e,t+1,i,s):s.push(r.replace(i[t],a))}}function U0(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)}),F0(r,s,0,t,i)}else i.push(r);return i}var O0=p(()=>{"use strict"});var kd,G0=p(()=>{"use strict";kd=r=>!Array.isArray(r)});function Wk(r){return r.split(".").pop().split("?").shift().split("#").shift()}var Kn,N0=p(()=>{ge();Cd();Ed();O0();G0();Kn=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 Wr(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&&G("[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)&&G(`[Resolver] already has key: ${n} overwriting`)},Wr(t).forEach(n=>{let{src:o}=n,{data:a,format:c,loadParser:u}=n,l=Wr(o).map(d=>typeof d=="string"?U0(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=kd(e);e=Wr(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=kd(e);e=Wr(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=Ei.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??Wk(e.src),e}};Kn.RETINA_PREFIX=/@([0-9\.]+)x/});var Ad,L0=p(()=>{"use strict";Ad=(r,e)=>{let t=e.split("?")[1];return t&&(r+=`?${t}`),r}});var z0,Pd,V0=p(()=>{Ge();et();le();z0=class Qn{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 D?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<=Qn.BATCH_SIZE?(this._processFrames(0),this._processAnimations(),this._parseComplete()):this._nextBatch()})}_processFrames(e){let t=e,i=Qn.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 D({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*Qn.BATCH_SIZE),this._batchIndex++,setTimeout(()=>{this._batchIndex*Qn.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=[]}};z0.BATCH_SIZE=1e3;Pd=z0});function H0(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=Ei.dirname(r[0]);e.linkedSheets.forEach((n,o)=>{let a=H0([`${s}/${e.data.meta.related_multi_packs[o]}`],n,!0);Object.assign(i,a)})}return i}var $k,W0,$0=p(()=>{R0();N0();L0();P();le();Cd();V0();$k=["jpg","png","jpeg","avif","webp","basis","etc2","bc7","bc6h","bc5","bc4","bc3","bc2","bc1","eac","astc"];W0={extension:b.Asset,cache:{test:r=>r instanceof Pd,getCacheableAssets:(r,e)=>H0(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"&&$k.includes(s)},parse:r=>{let e=r.split(".");return{resolution:parseFloat(Kn.RETINA_PREFIX.exec(r)?.[1]??"1"),format:e[e.length-2],src:r}}},loader:{name:"spritesheetLoader",extension:{type:b.LoadParser,priority:vd.Normal,name:"spritesheetLoader"},async testParse(r,e){return Ei.extname(e.src).toLowerCase()===".json"&&!!r.frames},async parse(r,e,t){let{texture:i,imageFilename:s,textureOptions:n,cachePrefix:o}=e?.data??{},a=Ei.dirname(e.src);a&&a.lastIndexOf("/")!==a.length-1&&(a+="/");let c;if(i instanceof D)c=i;else{let h=Ad(a+(s??r.meta.image),e.src);c=(await t.load([{src:h,data:n}]))[h]}let u=new Pd({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=Ad(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 Jc=p(()=>{P();$0();O.add(W0)});function eu(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 Bd=p(()=>{"use strict"});var qt,tu=p(()=>{Ic();le();Bd();ye();Zc();qt=class r extends Hr{constructor(e=D.EMPTY){e instanceof D&&(e={texture:e});let{texture:t=D.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 D?new r(e):new r(D.from(e,t))}set texture(e){e||(e=D.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 eu(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 ru(r,e,t){let i=qk;r.measurable=!0,os(r,t,i),e.addBoundsMask(i),r.measurable=!1}var qk,Rd=p(()=>{ot();Nn();qk=new ae});function iu(r,e,t){let i=gt.get();r.measurable=!0;let s=Re.get().identity(),n=q0(r,t,s);cs(r,i,n),r.measurable=!1,e.addBoundsMask(i),Re.return(s),gt.return(i)}function q0(r,e,t){return r?(r!==e&&(q0(r.parent,e,t),r.updateLocalTransform(),t.append(r.localTransform)),t):(G("Mask bounds, renderable is not inside the root container"),t)}var Dd=p(()=>{zc();_i();ge()});var Zn,j0=p(()=>{P();tu();Rd();Dd();Zn=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 qt),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||ru(this.mask,e,t)}addLocalBounds(e,t){iu(this.mask,e,t)}containsPoint(e,t){let i=this.mask;return t(i,e)}destroy(){this.reset()}static test(e){return e instanceof qt}};Zn.extension=b.MaskEffect});var Jn,X0=p(()=>{P();Jn=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"}};Jn.extension=b.MaskEffect});var eo,Y0=p(()=>{P();Ht();Rd();Dd();eo=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){ru(this.mask,e,t)}addLocalBounds(e,t){iu(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}};eo.extension=b.MaskEffect});var je,ms=p(()=>{ve();P();et();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 jt,su=p(()=>{P();et();jt=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}};jt.extension=b.TextureSource});async function K0(){return Md??(Md=(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"})()),Md}var Md,Q0=p(()=>{"use strict"});var nu,J0,e_=p(()=>{P();$n();Q0();et();nu=class Z0 extends se{constructor(e){super(e),this.isReady=!1,this.uploadMethodId="video",e={...Z0.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=at.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 K0(),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&&(at.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||(at.shared.add(this.updateFrame,this),this._isConnectedToTicker=!0,this._msToNextUpdate=0)):(this._videoFrameRequestCallbackHandle!==null&&(this.resource.cancelVideoFrameCallback(this._videoFrameRequestCallbackHandle),this._videoFrameRequestCallbackHandle=null),this._isConnectedToTicker&&(at.shared.remove(this.updateFrame,this),this._isConnectedToTicker=!1,this._msToNextUpdate=0))}static test(e){return globalThis.HTMLVideoElement&&e instanceof HTMLVideoElement}};nu.extension=b.TextureSource;nu.defaultOptions={...se.defaultOptions,autoLoad:!0,autoPlay:!0,updateFPS:0,crossorigin:!0,loop:!1,muted:!0,playsinline:!0,preload:!1};nu.MIME_TYPES={ogv:"video/ogg",mov:"video/quicktime",m4v:"video/mp4"};J0=nu});var Id,De,to=p(()=>{ge();Ed();Id=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||G(`[Assets] Asset id ${e} was not found in the Cache`),t}set(e,t){let i=Wr(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&&G("[Cache] already has key:",c),this._cache.set(c,n.get(c))})}remove(e){if(!this._cacheMap.has(e)){G(`[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}},De=new Id});function t_(r={}){let e=r&&r.resource,t=e?r.resource:r,i=e?r:{resource:r};for(let s=0;s<Fd.length;s++){let n=Fd[s];if(n.test(t))return new n(i)}throw new Error(`Could not find a source type for resource: ${i.resource}`)}function r_(r={},e=!1){let t=r&&r.resource,i=t?r.resource:r,s=t?r:{resource:r};if(!e&&De.has(i))return De.get(i);let n=new D({source:t_(s)});return n.on("destroy",()=>{De.has(i)&&De.remove(i)}),e||De.set(i,n),n}function i_(r,e=!1){return typeof r=="string"?De.get(r):r instanceof se?new D({source:r}):r_(r,e)}var Fd,Ud=p(()=>{to();P();et();le();Fd=[];O.handleByList(b.TextureSource,Fd);D.from=i_;se.from=t_});var ou=p(()=>{P();j0();X0();Y0();nd();ms();su();e_();Ud();O.add(Zn,Jn,eo,J0,jt,je,vi)});var Ne,$r=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 ps(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 s_[i]||jk(r,e,i,t)}function jk(r,e,t,i){let s={},n=0;for(let a=0;a<i;a++){let c=a<e?r[a]:D.EMPTY.source;s[n++]=c.source,s[n++]=c.style}let o=new Ne(s);return s_[t]=o,o}var s_,au=p(()=>{$r();le();s_={}});var Xt,Od=p(()=>{"use strict";Xt=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 ro(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 Gd=p(()=>{"use strict"});var n_,me,ki=p(()=>{"use strict";n_={normal:"normal-npm",add:"add-npm",screen:"screen-npm"},me=(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))(me||{})});function Tr(r,e){return e.alphaMode==="no-premultiply-alpha"&&n_[r]||r}var io=p(()=>{ki()});function uu(){return(!cu||cu?.isContextLost())&&(cu=W.get().createCanvas().getContext("webgl",{})),cu}var cu,Nd=p(()=>{ve()});function Yk(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 lu(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=Xk.replace(/%forloop%/gi,Yk(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 Xk,Ld=p(()=>{"use strict";Xk=["precision mediump float;","void main(void){","float test = 0.1;","%forloop%","gl_FragColor = vec4(0.0);","}"].join(`
|
|
21
|
-
`)});function o_(){if(gs)return gs;let r=uu();return gs=r.getParameter(r.MAX_TEXTURE_IMAGE_UNITS),gs=lu(gs,r),r.getExtension("WEBGL_lose_context")?.loseContext(),gs}var gs,a_=p(()=>{Nd();Ld();gs=null});var hu,c_=p(()=>{"use strict";hu=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 u_(){return Vd>0?h_[--Vd]:new zd}function l_(r){h_[Vd++]=r}var zd,h_,Vd,so,d_,m_,p_=p(()=>{Oe();Od();ye();Gd();io();a_();c_();zd=class{constructor(){this.renderPipeId="batch",this.action="startBatch",this.start=0,this.size=0,this.textures=new hu,this.blendMode="normal",this.topology="triangle-strip",this.canBundle=!0}destroy(){this.textures=null,this.gpuBindGroup=null,this.bindGroup=null,this.batcher=null}},h_=[],Vd=0;so=0,d_=class f_{constructor(e){this.uid=K("batcher"),this.dirty=!0,this.batchIndex=0,this.batches=[],this._elements=[],e={...f_.defaultOptions,...e},e.maxTextures||(z("v8.8.0","maxTextures is a required option for Batcher now, please pass it in the options"),e.maxTextures=o_());let{maxTextures:t,attributesInitialSize:i,indicesInitialSize:s}=e;this.attributeBuffer=new Xt(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++)l_(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=u_(),s=i.textures;s.clear();let n=t[this.elementStart],o=Tr(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=Tr(g.blendMode,y),T=o!==S||a!==g.topology;if(y._batchTick===so&&!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=so,(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=u_(),s=i.textures,s.clear(),++so),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,++so),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,++so,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 Xt(t);ro(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 ro(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++)l_(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}};d_.defaultOptions={maxTextures:null,attributesInitialSize:4,indicesInitialSize:6};m_=d_});var Q,wr=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 Ce,qr=p(()=>{Ve();Oe();wr();Ce=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 Hd(r,e){if(!(r instanceof Ce)){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 Ce({data:r,label:e?"index-mesh-buffer":"vertex-mesh-buffer",usage:t})}return r}var g_=p(()=>{qr();wr()});function x_(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||8)/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 __=p(()=>{"use strict"});function Kk(r){return(r instanceof Ce||Array.isArray(r)||r.BYTES_PER_ELEMENT)&&(r={buffer:r}),r.buffer=Hd(r.buffer,!1),r}var vt,xs=p(()=>{Ve();ot();Oe();qr();g_();__();vt=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=Kk(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=Hd(e,!0),this.buffers.push(this.indexBuffer)}get bounds(){return this._boundsDirty?(this._boundsDirty=!1,x_(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 Qk,Zk,du,b_=p(()=>{qr();wr();xs();Qk=new Float32Array(1),Zk=new Uint32Array(1),du=class extends vt{constructor(){let t=new Ce({data:Qk,label:"attribute-batch-buffer",usage:Q.VERTEX|Q.COPY_DST,shrinkToFit:!1}),i=new Ce({data:Zk,label:"index-batch-buffer",usage:Q.INDEX|Q.COPY_DST,shrinkToFit:!1}),s=24;super({attributes:{aPosition:{buffer:t,format:"float32x2",stride:s,offset:0},aUV:{buffer:t,format:"float32x2",stride:s,offset:8},aColor:{buffer:t,format:"unorm8x4",stride:s,offset:16},aTextureIdAndRound:{buffer:t,format:"uint16x2",stride:s,offset:20}},indexBuffer:i})}}});function Sr(r,e){let t=y_[r];return t===void 0&&(Wd[e]===void 0&&(Wd[e]=1),y_[r]=t=Wd[e]++),t}var Wd,y_,no=p(()=>{"use strict";Wd=Object.create(null),y_=Object.create(null)});function T_(){if(!fu){fu="mediump";let r=uu();r&&r.getShaderPrecisionFormat&&(fu=r.getShaderPrecisionFormat(r.FRAGMENT_SHADER,r.HIGH_FLOAT).precision?"highp":"mediump")}return fu}var fu,w_=p(()=>{Nd()});function S_(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 v_=p(()=>{"use strict"});function C_(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 E_=p(()=>{"use strict"});function k_(r,e){return e?`#version 300 es
|
|
38
|
-
${r}`:r}var A_=p(()=>{"use strict"});function P_(r,{name:e="pixi-program"},t=!0){e=e.replace(/\s+/g,"-"),e+=t?"-fragment":"-vertex";let i=t?Jk:eA;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 Jk,eA,B_=p(()=>{"use strict";Jk={},eA={}});function R_(r,e){return e?r.replace("#version 300 es",""):r}var D_=p(()=>{"use strict"});var $d,qd,M_,Ct,Ai=p(()=>{no();w_();v_();E_();A_();B_();D_();$d={stripVersion:R_,ensurePrecision:C_,addProgramDefines:S_,setProgramName:P_,insertVersion:k_},qd=Object.create(null),M_=class jd{constructor(e){e={...jd.defaultOptions,...e};let t=e.fragment.indexOf("#version 300 es")!==-1,i={stripVersion:t,ensurePrecision:{requestedFragmentPrecision:e.preferredFragmentPrecision,requestedVertexPrecision:e.preferredVertexPrecision,maxSupportedVertexPrecision:"highp",maxSupportedFragmentPrecision:T_()},setProgramName:{name:e.name},addProgramDefines:t,insertVersion:t},s=e.fragment,n=e.vertex;Object.keys($d).forEach(o=>{let a=i[o];s=$d[o](s,a,!0),n=$d[o](n,a,!1)}),this.fragment=s,this.vertex=n,this.transformFeedbackVaryings=e.transformFeedbackVaryings,this._key=Sr(`${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 qd[t]||(qd[t]=new jd(e)),qd[t]}};M_.defaultOptions={preferredVertexPrecision:"highp",preferredFragmentPrecision:"mediump"};Ct=M_});function ct(r){return I_[r]??I_.float32}var I_,Pi=p(()=>{"use strict";I_={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 F_({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=tA[a[3]]??"float32";t[a[2]]={location:parseInt(a[1],10),format:c,stride:ct(c).stride,offset:0,instance:!1,start:0}}}}return t}var tA,U_=p(()=>{Pi();tA={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 mu(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 O_=p(()=>{"use strict"});var _s,G_=p(()=>{"use strict";_s=(r=>(r[r.VERTEX=1]="VERTEX",r[r.FRAGMENT=2]="FRAGMENT",r[r.COMPUTE=4]="COMPUTE",r))(_s||{})});function N_({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:_s.VERTEX|_s.FRAGMENT,buffer:{type:"uniform"}}):i.type==="sampler"?e[i.group].push({binding:i.binding,visibility:_s.FRAGMENT,sampler:{type:"filtering"}}):i.type==="texture_2d"&&e[i.group].push({binding:i.binding,visibility:_s.FRAGMENT,texture:{sampleType:"float",viewDimension:"2d",multisampled:!1}})}return e}var L_=p(()=>{G_()});function z_({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 V_=p(()=>{"use strict"});function H_(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 W_=p(()=>{"use strict"});var Xd,Et,bs=p(()=>{no();U_();O_();L_();V_();W_();Xd=Object.create(null),Et=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=mu(t.source);this.structsAndGroups=a}else{let a=mu(i.source),c=mu(t.source);this.structsAndGroups=H_(a,c)}this.layout=s??z_(this.structsAndGroups),this.gpuLayout=n??N_(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=Sr(i,"program")}get attributeData(){return this._attributeData??(this._attributeData=F_(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 Xd[t]||(Xd[t]=new r(e)),Xd[t]}}});function Yd(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 G(`${i} placement hook does not exist in shader`)}}var $_=p(()=>{ge()});function Kd(r){let e={};return(r.match(rA)?.map(i=>i.replace(/[{()}]/g,""))??[]).forEach(i=>{e[i]=[]}),e}var rA,q_=p(()=>{"use strict";rA=/\{\{(.*?)\}\}/g});function j_(r,e){let t,i=/@in\s+([^;]+);/g;for(;(t=i.exec(r))!==null;)e.push(t[1])}function Qd(r,e,t=!1){let i=[];j_(e,i),r.forEach(a=>{a.header&&j_(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 X_=p(()=>{"use strict"});function Y_(r,e){let t,i=/@out\s+([^;]+);/g;for(;(t=i.exec(r))!==null;)e.push(t[1])}function iA(r){let t=/\b(\w+)\s*:/g.exec(r);return t?t[1]:""}function sA(r){let e=/@.*?\s+/g;return r.replace(e,"")}function K_(r,e){let t=[];Y_(e,t),r.forEach(c=>{c.header&&Y_(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 ${sA(c)};`).join(`
|
|
44
|
-
`),o=`return VSOutput(
|
|
45
|
-
${t.sort().map(c=>` ${iA(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 Q_=p(()=>{"use strict"});function Zd(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 Z_=p(()=>{"use strict"});function J_({template:r,bits:e}){let t=tb(r,e);if(jr[t])return jr[t];let{vertex:i,fragment:s}=oA(r,e);return jr[t]=rb(i,s,e),jr[t]}function eb({template:r,bits:e}){let t=tb(r,e);return jr[t]||(jr[t]=rb(r.vertex,r.fragment,e)),jr[t]}function oA(r,e){let t=e.map(o=>o.vertex).filter(o=>!!o),i=e.map(o=>o.fragment).filter(o=>!!o),s=Qd(t,r.vertex,!0);s=K_(t,s);let n=Qd(i,r.fragment,!0);return{vertex:s,fragment:n}}function tb(r,e){return e.map(t=>(Jd.has(t)||Jd.set(t,nA++),Jd.get(t))).sort((t,i)=>t-i).join("-")+r.vertex+r.fragment}function rb(r,e,t){let i=Kd(r),s=Kd(e);return t.forEach(n=>{Yd(n.vertex,i,n.name),Yd(n.fragment,s,n.name)}),{vertex:Zd(r,i),fragment:Zd(e,s)}}var jr,Jd,nA,ib=p(()=>{$_();q_();X_();Q_();Z_();jr=Object.create(null),Jd=new Map,nA=0});var sb,nb,ob,ab,cb=p(()=>{"use strict";sb=`
|
|
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
|
-
`,nb=`
|
|
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
|
-
`,ob=`
|
|
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
|
-
`,ab=`
|
|
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 ub,lb,hb=p(()=>{"use strict";ub={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
|
-
`}},lb={name:"global-uniforms-bit",vertex:{header:`
|
|
190
|
-
uniform mat3 uProjectionMatrix;
|
|
191
|
-
uniform mat3 uWorldTransformMatrix;
|
|
192
|
-
uniform vec4 uWorldColorAlpha;
|
|
193
|
-
uniform vec2 uResolution;
|
|
194
|
-
`}}});function Yt({bits:r,name:e}){let t=J_({template:{fragment:nb,vertex:sb},bits:[ub,...r]});return Et.from({name:e,vertex:{source:t.vertex,entryPoint:"main"},fragment:{source:t.fragment,entryPoint:"main"}})}function Kt({bits:r,name:e}){return new Ct({name:e,...eb({template:{vertex:ob,fragment:ab},bits:[lb,...r]})})}var Xr=p(()=>{Ai();bs();ib();cb();hb()});var ys,Ts,oo=p(()=>{"use strict";ys={name:"color-bit",vertex:{header:`
|
|
195
|
-
@in aColor: vec4<f32>;
|
|
196
|
-
`,main:`
|
|
197
|
-
vColor *= vec4<f32>(aColor.rgb * aColor.a, aColor.a);
|
|
198
|
-
`}},Ts={name:"color-bit",vertex:{header:`
|
|
199
|
-
in vec4 aColor;
|
|
200
|
-
`,main:`
|
|
201
|
-
vColor *= vec4(aColor.rgb * aColor.a, aColor.a);
|
|
202
|
-
`}}});function aA(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 cA(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 ws(r){return ef[r]||(ef[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
|
-
${aA(r)}
|
|
218
|
-
`,main:`
|
|
219
|
-
var uvDx = dpdx(vUV);
|
|
220
|
-
var uvDy = dpdy(vUV);
|
|
221
|
-
|
|
222
|
-
${cA(r)}
|
|
223
|
-
`}}),ef[r]}function uA(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 Ss(r){return tf[r]||(tf[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
|
-
${uA(r)}
|
|
243
|
-
`}}),tf[r]}var ef,tf,ao=p(()=>{"use strict";ef={};tf={}});var Qt,Zt,Yr=p(()=>{"use strict";Qt={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
|
-
`}},Zt={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 rf,db,fb=p(()=>{"use strict";rf=["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>"],db=rf.reduce((r,e)=>(r[e]=!0,r),{})});function mb(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 pb=p(()=>{"use strict"});var gb,ce,rt=p(()=>{Oe();no();fb();pb();gb=class xb{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={...xb.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,!db[n.type])throw new Error(`Uniform type ${n.type} is not supported. Supported uniform types are: ${rf.join(", ")}`);n.value??(n.value=mb(n.type,n.size)),i[s]=n.value}this.uniforms=i,this._dirtyId=1,this.ubo=t.ubo,this.isStatic=t.isStatic,this._signature=Sr(Object.keys(i).map(s=>`${s}-${e[s].type}`).join("-"),"uniform-group")}update(){this._dirtyId++}};gb.defaultOptions={ubo:!1,isStatic:!1};ce=gb});function vs(r){let e=_b[r];if(e)return e;let t=new Int32Array(r);for(let i=0;i<r;i++)t[i]=i;return e=_b[r]=new ce({uTextures:{value:t,type:"i32",size:r}},{isStatic:!0}),e}var _b,pu=p(()=>{rt();_b={}});var Me,Jt=p(()=>{"use strict";Me=(r=>(r[r.WEBGL=1]="WEBGL",r[r.WEBGPU=2]="WEBGPU",r[r.BOTH=3]="BOTH",r))(Me||{})});var Ee,Ut=p(()=>{Ve();Oe();Ai();$r();bs();Jt();rt();Ee=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|=Me.WEBGPU),i&&(o|=Me.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=Et.from(t)),i&&(o=Ct.from(i)),new r({gpuProgram:n,glProgram:o,...s})}}});var gu,bb=p(()=>{Xr();oo();ao();Yr();pu();Ut();gu=class extends Ee{constructor(e){let t=Kt({name:"batch",bits:[Ts,Ss(e),Zt]}),i=Yt({name:"batch",bits:[ys,ws(e),Qt]});super({glProgram:t,gpuProgram:i,resources:{batchSamplers:vs(e)}})}}});var sf,yb,co,nf=p(()=>{P();p_();b_();bb();sf=null,yb=class Tb extends m_{constructor(e){super(e),this.geometry=new du,this.name=Tb.extension.name,this.vertexSize=6,sf??(sf=new gu(e.maxTextures)),this.shader=sf}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}};yb.extension={type:[b.Batcher],name:"default"};co=yb});function wb(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 Sb(r,e,t,i){let s=0;for(e*=t;s<i;)r[e]=0,r[e+1]=0,e+=t,s++}var vb=p(()=>{"use strict"});function of(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 Cb=p(()=>{"use strict"});var lA,Bi,af=p(()=>{ee();Qh();lA=new R,Bi=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?Lc(t,i.groupColor)+(this.alpha*i.groupAlpha*255<<24):t+(this.alpha*255<<24)}get transform(){return this.renderable?.groupTransform||lA}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 Cs,Eb,kb,Ab=p(()=>{P();Cs={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,M=t+v,A=t-v,B=i+E,k=i-E;e[l++]=M,e[l++]=B,e[--h]=B,e[--h]=A,e[f++]=A,e[f++]=k,e[--d]=k,e[--d]=M}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}},Eb={...Cs,extension:{...Cs.extension,name:"ellipse"}},kb={...Cs,extension:{...Cs.extension,name:"roundedRectangle"}}});function Pb(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 Bb=p(()=>{"use strict"});function Rb(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 Ri(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 Db(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 fe=Pb(r);t&&(fe*=-1),c=(c-.5)*fe+.5}let u=new Z(r[0],r[1]),l=new Z(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 fe=(u.x+l.x)*.5,Ur=(l.y+u.y)*.5;r.unshift(fe,Ur),r.push(fe,Ur)}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],M=0,A=0,B=-(C-E),k=T-v,L=0,j=0,be=Math.sqrt(B*B+k*k);B/=be,k/=be,B*=_,k*=_;let wt=c,U=(1-wt)*2,H=wt*2;h||(a.cap==="round"?x+=Ri(T-B*(U-H)*.5,C-k*(U-H)*.5,T-B*U,C-k*U,T+B*H,C+k*H,d,!0)+2:a.cap==="square"&&(x+=Rb(T,C,B,k,U,H,!0,d))),d.push(T-B*U,C-k*U),d.push(T+B*H,C+k*H);for(let fe=1;fe<m-1;++fe){T=r[(fe-1)*2],C=r[(fe-1)*2+1],v=r[fe*2],E=r[fe*2+1],M=r[(fe+1)*2],A=r[(fe+1)*2+1],B=-(C-E),k=T-v,be=Math.sqrt(B*B+k*k),B/=be,k/=be,B*=_,k*=_,L=-(E-A),j=v-M,be=Math.sqrt(L*L+j*j),L/=be,j/=be,L*=_,j*=_;let Ur=v-T,En=C-E,kn=v-M,An=A-E,gg=Ur*kn+En*An,lc=En*kn-An*Ur,Pn=lc<0;if(Math.abs(lc)<.001*Math.abs(gg)){d.push(v-B*U,E-k*U),d.push(v+B*H,E+k*H),gg>=0&&(a.join==="round"?x+=Ri(v,E,v-B*U,E-k*U,v-L*U,E-j*U,d,!1)+4:x+=2,d.push(v-L*H,E-j*H),d.push(v+L*U,E+j*U));continue}let xg=(-B+T)*(-k+E)-(-B+v)*(-k+C),_g=(-L+M)*(-j+E)-(-L+v)*(-j+A),hc=(Ur*_g-kn*xg)/lc,dc=(An*xg-En*_g)/lc,Eh=(hc-v)*(hc-v)+(dc-E)*(dc-E),ci=v+(hc-v)*U,ui=E+(dc-E)*U,li=v-(hc-v)*H,hi=E-(dc-E)*H,HE=Math.min(Ur*Ur+En*En,kn*kn+An*An),bg=Pn?U:H,WE=HE+bg*bg*y;Eh<=WE?a.join==="bevel"||Eh/y>S?(Pn?(d.push(ci,ui),d.push(v+B*H,E+k*H),d.push(ci,ui),d.push(v+L*H,E+j*H)):(d.push(v-B*U,E-k*U),d.push(li,hi),d.push(v-L*U,E-j*U),d.push(li,hi)),x+=2):a.join==="round"?Pn?(d.push(ci,ui),d.push(v+B*H,E+k*H),x+=Ri(v,E,v+B*H,E+k*H,v+L*H,E+j*H,d,!0)+4,d.push(ci,ui),d.push(v+L*H,E+j*H)):(d.push(v-B*U,E-k*U),d.push(li,hi),x+=Ri(v,E,v-B*U,E-k*U,v-L*U,E-j*U,d,!1)+4,d.push(v-L*U,E-j*U),d.push(li,hi)):(d.push(ci,ui),d.push(li,hi)):(d.push(v-B*U,E-k*U),d.push(v+B*H,E+k*H),a.join==="round"?Pn?x+=Ri(v,E,v+B*H,E+k*H,v+L*H,E+j*H,d,!0)+2:x+=Ri(v,E,v-B*U,E-k*U,v-L*U,E-j*U,d,!1)+2:a.join==="miter"&&Eh/y<=S&&(Pn?(d.push(li,hi),d.push(li,hi)):(d.push(ci,ui),d.push(ci,ui)),x+=2),d.push(v-L*U,E-j*U),d.push(v+L*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],B=-(C-E),k=T-v,be=Math.sqrt(B*B+k*k),B/=be,k/=be,B*=_,k*=_,d.push(v-B*U,E-k*U),d.push(v+B*H,E+k*H),h||(a.cap==="round"?x+=Ri(v-B*(U-H)*.5,E-k*(U-H)*.5,v-B*U,E-k*U,v+B*H,E+k*H,d,!1)+2:a.cap==="square"&&(x+=Rb(v,E,B,k,U,H,!1,d)));let Ch=1e-4*1e-4;for(let fe=g;fe<x+g-2;++fe)T=d[fe*2],C=d[fe*2+1],v=d[(fe+1)*2],E=d[(fe+1)*2+1],M=d[(fe+2)*2],A=d[(fe+2)*2+1],!(Math.abs(T*(E-A)+v*(A-C)+M*(C-E))<Ch)&&n.push(fe,fe+1,fe+2)}var Mb=p(()=>{It();Bb()});function Ib(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 Fb=p(()=>{});function bu(r,e,t=2){let i=e&&e.length,s=i?e[0]*t:r.length,n=Ob(r,0,s,t,!0),o=[];if(!n||n.next===n.prev)return o;let a,c,u;if(i&&(n=xA(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 lo(n,o,t,a,c,u,0),o}function Ob(r,e,t,i,s){let n;if(s===AA(r,e,t,i)>0)for(let o=e;o<t;o+=i)n=Ub(o/i|0,r[o],r[o+1],n);else for(let o=t-i;o>=e;o-=i)n=Ub(o/i|0,r[o],r[o+1],n);return n&&Es(n,n.next)&&(fo(n),n=n.next),n}function Di(r,e){if(!r)return r;e||(e=r);let t=r,i;do if(i=!1,!t.steiner&&(Es(t,t.next)||Se(t.prev,t,t.next)===0)){if(fo(t),t=e=t.prev,t===t.next)break;i=!0}else t=t.next;while(i||t!==e);return e}function lo(r,e,t,i,s,n,o){if(!r)return;!o&&n&&wA(r,i,s,n);let a=r;for(;r.prev!==r.next;){let c=r.prev,u=r.next;if(n?mA(r,i,s,n):fA(r)){e.push(c.i,r.i,u.i),fo(r),r=u.next,a=u.next;continue}if(r=u,r===a){o?o===1?(r=pA(Di(r),e),lo(r,e,t,i,s,n,2)):o===2&&gA(r,e,t,i,s,n):lo(Di(r),e,t,i,s,n,1);break}}}function fA(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&&uo(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 mA(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),_=cf(d,m,e,t,i),y=cf(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&&uo(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&&uo(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&&uo(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&&uo(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 pA(r,e){let t=r;do{let i=t.prev,s=t.next.next;!Es(i,s)&&Nb(i,t,t.next,s)&&ho(i,s)&&ho(s,i)&&(e.push(i.i,t.i,s.i),fo(t),fo(t.next),t=r=s),t=t.next}while(t!==r);return Di(t)}function gA(r,e,t,i,s,n){let o=r;do{let a=o.next.next;for(;a!==o.prev;){if(o.i!==a.i&&CA(o,a)){let c=Lb(o,a);o=Di(o,o.next),c=Di(c,c.next),lo(o,e,t,i,s,n,0),lo(c,e,t,i,s,n,0);return}a=a.next}o=o.next}while(o!==r)}function xA(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=Ob(r,a,c,i,!1);u===u.next&&(u.steiner=!0),s.push(vA(u))}s.sort(_A);for(let n=0;n<s.length;n++)t=bA(s[n],t);return t}function _A(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 bA(r,e){let t=yA(r,e);if(!t)return e;let i=Lb(t,r);return Di(i,i.next),Di(t,t.next)}function yA(r,e){let t=e,i=r.x,s=r.y,n=-1/0,o;if(Es(r,t))return t;do{if(Es(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&&Gb(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);ho(t,r)&&(h<l||h===l&&(t.x>o.x||t.x===o.x&&TA(o,t)))&&(o=t,l=h)}t=t.next}while(t!==a);return o}function TA(r,e){return Se(r.prev,r,e.prev)<0&&Se(e.next,r,r.next)<0}function wA(r,e,t,i){let s=r;do s.z===0&&(s.z=cf(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,SA(s)}function SA(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 cf(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 vA(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 Gb(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 uo(r,e,t,i,s,n,o,a){return!(r===o&&e===a)&&Gb(r,e,t,i,s,n,o,a)}function CA(r,e){return r.next.i!==e.i&&r.prev.i!==e.i&&!EA(r,e)&&(ho(r,e)&&ho(e,r)&&kA(r,e)&&(Se(r.prev,r,e.prev)||Se(r,e.prev,e))||Es(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 Es(r,e){return r.x===e.x&&r.y===e.y}function Nb(r,e,t,i){let s=_u(Se(r,e,t)),n=_u(Se(r,e,i)),o=_u(Se(t,i,r)),a=_u(Se(t,i,e));return!!(s!==n&&o!==a||s===0&&xu(r,t,e)||n===0&&xu(r,i,e)||o===0&&xu(t,r,i)||a===0&&xu(t,e,i))}function xu(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 _u(r){return r>0?1:r<0?-1:0}function EA(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&&Nb(t,t.next,r,e))return!0;t=t.next}while(t!==r);return!1}function ho(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 kA(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 Lb(r,e){let t=uf(r.i,r.x,r.y),i=uf(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 Ub(r,e,t,i){let s=uf(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 fo(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 uf(r,e,t){return{i:r,x:e,y:t,prev:null,next:null,z:0,prevZ:null,nextZ:null,steiner:!1}}function AA(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 zb=p(()=>{});var Vb,Hb=p(()=>{zb();Ve();Vb=bu.default||bu});function yu(r,e,t,i,s,n,o){let a=Vb(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 lf=p(()=>{Hb()});var PA,Wb,$b=p(()=>{P();lf();PA=[],Wb={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){yu(r,PA,e,t,i,s,n)}}});var qb,jb=p(()=>{P();qb={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 Xb,Yb=p(()=>{P();Xb={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 Qb(r,e){for(let t=0;t<e.length;t++){let i=e[t];r.addColorStop(i.offset,i.color)}}function Zb(r,e){let t=W.get().createCanvas(r,e),i=t.getContext("2d");return{canvas:t,context:i}}function BA(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]??ut.defaultLinearOptions.textureSize}),e}var Kb,df,ut,ks=p(()=>{He();ve();ee();su();le();Oe();ye();rd();Kb=[{offset:0,color:"white"},{offset:1,color:"black"}],df=class hf{constructor(...e){this.uid=K("fillGradient"),this.type="linear",this.colorStops=[];let t=BA(e);t={...t.type==="radial"?hf.defaultRadialOptions:hf.defaultLinearOptions,...Vc(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:Kb,u=this._textureSize,{canvas:l,context:h}=Zb(u,1),f=a?h.createLinearGradient(this._textureSize,0,0,0):h.createLinearGradient(0,0,this._textureSize,0);Qb(f,c),h.fillStyle=f,h.fillRect(0,0,u,1),this.texture=new D({source:new jt({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:Kb,t=this._textureSize,{canvas:i,context:s}=Zb(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);Qb(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 D({source:new jt({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}};df.defaultLinearOptions={start:{x:0,y:0},end:{x:0,y:1},colorStops:[],textureSpace:"local",type:"linear",textureSize:256,wrapMode:"clamp-to-edge"};df.defaultRadialOptions={center:{x:.5,y:.5},innerRadius:0,outerRadius:.5,colorStops:[],scale:1,textureSpace:"local",type:"radial",textureSize:256,wrapMode:"clamp-to-edge"};ut=df});function Jb(r,e,t,i){let s=e.matrix?r.copyFrom(e.matrix).invert():r.identity();if(e.textureSpace==="local"){let o=t.getBounds(DA);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 ut)&&n.addressMode==="clamp-to-edge"&&(n.addressMode="repeat",n.update()),i&&s.append(RA.copyFrom(i).invert()),s}var RA,DA,ey=p(()=>{ee();Ge();ks();RA=new R,DA=new Y});function ry(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")FA(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&&ty(u.shapePath,c,!0,i,t),u&&(a.shapePrimitives[a.shapePrimitives.length-1].holes=u.shapePath.shapePrimitives),ty(a,c,o,i,t)}}}function FA(r,e,t){let i=[],s=Tu.rectangle,n=MA;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&&of(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=pe.get(Bi);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 ty(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=Tu[c.type];if(!f.build(c,h))return;let d=a.length,m=n.length/2,x="triangle-list";if(u&&of(h,u),t){let S=c.closePath??!0,T=e;T.pixelLine?(Ib(h,S,n,a),x="line-list"):Db(h,T,!1,S,n,a)}else if(l){let S=[],T=h.slice();UA(l).forEach(v=>{S.push(T.length/2),T.push(...v)}),yu(T,S,n,2,m,a,d)}else f.triangulate(h,n,2,m,a,d);let g=o.length/2,_=e.texture;if(_!==D.WHITE){let S=Jb(IA,e,c,u);wb(n,2,m,o,g,2,n.length/2-m,S)}else Sb(o,g,2,n.length/2-m);let y=pe.get(Bi);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 UA(r){let e=[];for(let t=0;t<r.length;t++){let i=r[t].shape,s=[];Tu[i.type].build(i,s)&&e.push(s)}return e}var Tu,MA,IA,iy=p(()=>{P();ee();Ge();vb();Cb();le();gr();af();Ab();Mb();Fb();$b();jb();Yb();ey();lf();Tu={};O.handleByMap(b.ShapeBuilder,Tu);O.add(qb,Wb,Xb,Cs,Eb,kb);MA=new Y,IA=new R});var ff,mf,gf,As,wu=p(()=>{P();au();nf();ed();ye();gr();iy();ff=class{constructor(){this.batches=[],this.geometryData={vertices:[],uvs:[],indices:[]}}},mf=class{constructor(){this.instructions=new us}init(e){this.batcher=new co({maxTextures:e}),this.instructions.reset()}get geometry(){return z(hx,"GraphicsContextRenderData#geometry is deprecated, please use batcher.geometry instead."),this.batcher.geometry}},gf=class pf{constructor(e){this._gpuContextHash={},this._graphicsDataContextHash=Object.create(null),this._renderer=e,e.renderableGC.addManagedHash(this,"_gpuContextHash"),e.renderableGC.addManagedHash(this,"_graphicsDataContextHash")}init(e){pf.defaultOptions.bezierSmoothness=e?.bezierSmoothness??pf.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),ry(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=pe.get(mf,{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=ps(h.textures.textures,h.textures.count,this._renderer.limits.maxBatchableTextures)}return this._graphicsDataContextHash[e.uid]=t,t}_initContext(e){let t=new ff;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]&&(pe.return(this.getContextRenderData(e)),this._graphicsDataContextHash[e.uid]=null),t.batches&&t.batches.forEach(i=>{pe.return(i)})}destroy(){for(let e in this._gpuContextHash)this._gpuContextHash[e]&&this.onGraphicsContextDestroy(this._gpuContextHash[e].context)}};gf.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"graphicsContext"};gf.defaultOptions={bezierSmoothness:.5};As=gf});var OA,xf,_f,bf,yf,Tf,wf,Sf,Ae,Ot=p(()=>{"use strict";OA={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},xf=0,_f=1,bf=2,yf=3,Tf=4,wf=5,Sf=class sy{constructor(){this.data=0,this.blendMode="normal",this.polygonOffset=0,this.blend=!0,this.depthMask=!0}get blend(){return!!(this.data&1<<xf)}set blend(e){!!(this.data&1<<xf)!==e&&(this.data^=1<<xf)}get offsets(){return!!(this.data&1<<_f)}set offsets(e){!!(this.data&1<<_f)!==e&&(this.data^=1<<_f)}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<<bf)}set culling(e){!!(this.data&1<<bf)!==e&&(this.data^=1<<bf)}get depthTest(){return!!(this.data&1<<yf)}set depthTest(e){!!(this.data&1<<yf)!==e&&(this.data^=1<<yf)}get depthMask(){return!!(this.data&1<<wf)}set depthMask(e){!!(this.data&1<<wf)!==e&&(this.data^=1<<wf)}get clockwiseFrontFace(){return!!(this.data&1<<Tf)}set clockwiseFrontFace(e){!!(this.data&1<<Tf)!==e&&(this.data^=1<<Tf)}get blendMode(){return this._blendMode}set blendMode(e){this.blend=e!=="none",this._blendMode=e,this._blendModeId=OA[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 sy;return e.depthTest=!1,e.blend=!0,e}};Sf.default2d=Sf.for2d();Ae=Sf});function er(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 Ps=p(()=>{"use strict"});var vf,mo,ny=p(()=>{P();Ot();gr();Ps();af();vf=class{constructor(){this.batches=[],this.batched=!1}destroy(){this.batches.forEach(e=>{pe.return(e)}),this.batches.length=0}},mo=class{constructor(e,t){this.state=Ae.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,er(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 vf;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=pe.get(Bi);return o.copyTo(a),a.renderable=e,a.roundPixels=n,a})}destroy(){this.renderer=null,this._adaptor.destroy(),this._adaptor=null,this.state=null}};mo.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"graphics"}});var Cf=p(()=>{P();wu();ny();O.add(mo);O.add(As)});var Kr,Su=p(()=>{"use strict";Kr=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 vu,po,oy=p(()=>{P();ee();$r();rt();io();Ps();Su();vu=class{destroy(){}},po=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=Tr(e.groupBlendMode,e.texture._source);let t=this.localUniforms;t.uniforms.uTransformMatrix=e.groupTransform,t.uniforms.uRound=this.renderer._roundPixels|e._roundPixels,t.update(),er(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 vu),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 vu),e._gpuData[this.renderer.uid].batchableMesh||this._initBatchableMesh(e)}_initBatchableMesh(e){let t=new Kr;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}};po.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"mesh"}});var Ef=p(()=>{P();oy();O.add(po)});var Cu,ay=p(()=>{"use strict";Cu=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 kf(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 cy=p(()=>{"use strict"});function ly(r){return{dynamicUpdate:uy(r,!0),staticUpdate:uy(r,!1)}}function uy(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=ct(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 hy=p(()=>{Pi()});function GA(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 Eu,dy=p(()=>{qr();wr();xs();Pi();Od();cy();hy();Eu=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=ct(h.format);h.dynamic?n+=f.stride:s+=f.stride}this._dynamicStride=n/4,this._staticStride=s/4,this.staticAttributeBuffer=new Xt(t*4*s),this.dynamicAttributeBuffer=new Xt(t*4*n),this.indexBuffer=kf(t);let o=new vt,a=0,c=0;this._staticBuffer=new Ce({data:new Float32Array(1),label:"static-particle-buffer",shrinkToFit:!1,usage:Q.VERTEX|Q.COPY_DST}),this._dynamicBuffer=new Ce({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=ct(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=GA(e);return this._generateParticleUpdateCache[t]?this._generateParticleUpdateCache[t]:(this._generateParticleUpdateCache[t]=this.generateParticleUpdate(e),this._generateParticleUpdateCache[t])}generateParticleUpdate(e){return ly(e)}update(e,t){e.length>this._size&&(t=!0,this._size=Math.max(e.length,this._size*1.5|0),this.staticAttributeBuffer=new Xt(this._size*this._staticStride*4*4),this.dynamicAttributeBuffer=new Xt(this._size*this._dynamicStride*4*4),this.indexBuffer=kf(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 fy,my=p(()=>{fy=`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 py,gy=p(()=>{py=`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 Af,xy=p(()=>{Af=`
|
|
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 ku,_y=p(()=>{He();ee();Ai();bs();Ut();le();bi();my();gy();xy();ku=class extends Ee{constructor(){let e=Ct.from({vertex:py,fragment:fy}),t=Et.from({fragment:{source:Af,entryPoint:"mainFragment"},vertex:{source:Af,entryPoint:"mainVertex"}});super({glProgram:e,gpuProgram:t,resources:{uTexture:D.WHITE.source,uSampler:new Je({}),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 Bs,Pf=p(()=>{ee();rt();io();Ot();Ps();dy();_y();Bs=class{constructor(e,t){this.state=Ae.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 ku,this.state=Ae.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 Eu({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=Tr(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,er(e.groupColorAlpha,o.uColor,0),this.adaptor.execute(this,e)}destroy(){this.defaultShader&&(this.defaultShader.destroy(),this.defaultShader=null)}}});var go,by=p(()=>{P();ay();Pf();go=class extends Bs{constructor(e){super(e,new Cu)}};go.extension={type:[b.WebGLPipes],name:"particle"}});var Au,yy=p(()=>{"use strict";Au=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 xo,Ty=p(()=>{P();yy();Pf();xo=class extends Bs{constructor(e){super(e,new Au)}};xo.extension={type:[b.WebGPUPipes],name:"particle"}});var Bf=p(()=>{P();by();Ty();O.add(go);O.add(xo)});function _o(r,e){let{texture:t,bounds:i}=r;eu(i,e._anchor,t);let s=e._style._getFinalPadding();i.minX-=s,i.minY-=s,i.maxX-=s,i.maxY-=s}var Rf=p(()=>{Bd()});var tr,bo=p(()=>{"use strict";tr=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 Pu,wy=p(()=>{bo();Pu=class extends tr{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 yo,Sy=p(()=>{P();Rf();wy();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),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),_o(t,e)}_getGpuText(e){return e._gpuData[this._renderer.uid]||this.initGpuText(e)}initGpuText(e){let t=new Pu(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}};yo.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"text"}});var vy,vr,Bu=p(()=>{ee();Oe();vy={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"}},vr=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=vy[t].addressModeU,e.source.style.addressModeV=vy[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 Ey=Or((tW,Cy)=>{Cy.exports=LA;var Df={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},NA=/([astvzqmhlc])([^astvzqmhlc]*)/ig;function LA(r){var e=[];return r.replace(NA,function(t,i,s){var n=i.toLowerCase();for(s=VA(s),n=="m"&&s.length>2&&(e.push([i].concat(s.splice(0,2))),n="l",i=i=="m"?"l":"L");;){if(s.length==Df[n])return s.unshift(i),e.push(s);if(s.length<Df[n])throw new Error("malformed path data");e.push([i].concat(s.splice(0,Df[n])))}}),e}var zA=/-?[0-9]*\.?[0-9]+(?:e[-+]?\d+)?/ig;function VA(r){var e=r.match(zA);return e?e.map(Number):[]}});function Ay(r,e){let t=(0,ky.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:G(`Unknown SVG path command: ${u}`)}u!=="Z"&&u!=="z"&&s===null&&(s={startX:n,startY:o},i.push(s))}return e}var ky,Py=p(()=>{ky=Ah(Ey(),1);ge()});var Ru,By=p(()=>{Ge();Ru=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 Du,Ry=p(()=>{Ge();Du=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 Dy(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 My=p(()=>{"use strict"});var HA,WA,Rs,Iy=p(()=>{My();Ge();Rs=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(HA),i=e.getBounds(WA);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=Dy(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 Mu,Iu,Fy=p(()=>{Ge();Mu=(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},Iu=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&&Mu(e,t,f,d,u,h,l)||e>g-u&&t<d&&Mu(e,t,g-u,d,u,h,l)||e>g-u&&t>_-u&&Mu(e,t,g-u,_-u,u,h,l)||e<f&&t>_-u&&Mu(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 Uu(r,e,t,i,s,n,o,a,c,u){let h=Math.min(.99,Math.max(0,u??As.defaultOptions.bezierSmoothness)),f=(qA-h)/1;return f*=f,jA(e,t,i,s,n,o,a,c,r,f),r}function jA(r,e,t,i,s,n,o,a,c,u){If(r,e,t,i,s,n,o,a,c,u,0),c.push(o,a)}function If(r,e,t,i,s,n,o,a,c,u,l){if(l>$A)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 M=o-r,A=a-e,B=Math.abs((t-o)*A-(i-a)*M),k=Math.abs((s-o)*A-(n-a)*M),L,j;if(B>Fu&&k>Fu){if((B+k)*(B+k)<=u*(M*M+A*A)){if(Ds<Mf){c.push(v,E);return}let be=Math.atan2(n-i,s-t);if(L=Math.abs(be-Math.atan2(i-e,t-r)),j=Math.abs(Math.atan2(a-n,o-s)-be),L>=h&&(L=2*h-L),j>=h&&(j=2*h-j),L+j<Ds){c.push(v,E);return}if(Mi!==0){if(L>Mi){c.push(t,i);return}if(j>Mi){c.push(s,n);return}}}}else if(B>Fu){if(B*B<=u*(M*M+A*A)){if(Ds<Mf){c.push(v,E);return}if(L=Math.abs(Math.atan2(n-i,s-t)-Math.atan2(i-e,t-r)),L>=h&&(L=2*h-L),L<Ds){c.push(t,i),c.push(s,n);return}if(Mi!==0&&L>Mi){c.push(t,i);return}}}else if(k>Fu){if(k*k<=u*(M*M+A*A)){if(Ds<Mf){c.push(v,E);return}if(L=Math.abs(Math.atan2(a-n,o-s)-Math.atan2(n-i,s-t)),L>=h&&(L=2*h-L),L<Ds){c.push(t,i),c.push(s,n);return}if(Mi!==0&&L>Mi){c.push(s,n);return}}}else if(M=v-(r+o)/2,A=E-(e+a)/2,M*M+A*A<=u){c.push(v,E);return}}If(r,e,f,d,y,S,v,E,c,u,l+1),If(v,E,T,C,g,_,o,a,c,u,l+1)}var $A,Fu,qA,Mf,Ds,Mi,Ff=p(()=>{wu();$A=8,Fu=11920929e-14,qA=1,Mf=.01,Ds=0,Mi=0});function Oy(r,e,t,i,s,n,o,a){let u=Math.min(.99,Math.max(0,a??As.defaultOptions.bezierSmoothness)),l=(KA-u)/1;return l*=l,ZA(e,t,i,s,n,o,r,l),r}function ZA(r,e,t,i,s,n,o,a){Uf(o,r,e,t,i,s,n,a,0),o.push(s,n)}function Uf(r,e,t,i,s,n,o,a,c){if(c>XA)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>YA){if(y*y<=a*(g*g+_*_)){if(Uy<QA){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<Uy){r.push(m,x);return}}}else if(g=m-(e+n)/2,_=x-(t+o)/2,g*g+_*_<=a){r.push(m,x);return}Uf(r,e,t,l,h,m,x,a,c+1),Uf(r,m,x,f,d,n,o,a,c+1)}var XA,YA,KA,QA,Uy,Gy=p(()=>{wu();XA=8,YA=11920929e-14,KA=1,QA=.01,Uy=0});function Ou(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 Of=p(()=>{"use strict"});function Ny(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),M=h*(g+S),A=l*(g+S),B=Math.atan2(E-C,v-T),k=Math.atan2(A-C,M-T);Ou(r,T+e,C+t,n,B,k,u*l>h*c)}var Ly=p(()=>{Of()});function JA(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 Vy(r,e,t,i,s,n,o,a=0,c=0,u=0){if(n===0||o===0)return;let l=Math.sin(a*To/360),h=Math.cos(a*To/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)),eP(e,t,i,s,n,o,c,u,l,h,f,d,Gf);let{ang1:x,ang2:g}=Gf,{centerX:_,centerY:y}=Gf,S=Math.abs(g)/(To/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 M=0;M<T;M++){let A=JA(x,g),{x:B,y:k}=Nf(A[0],n,o,h,l,_,y,E),{x:L,y:j}=Nf(A[1],n,o,h,l,_,y,E),{x:be,y:wt}=Nf(A[2],n,o,h,l,_,y,E);Uu(r,C,v,B,k,L,j,be,wt),C=be,v=wt,x+=g}}var To,Gf,Nf,zy,eP,Hy=p(()=>{Ff();To=Math.PI*2,Gf={centerX:0,centerY:0,ang1:0,ang2:0},Nf=({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};zy=(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)},eP=(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,M=(-l-y)/s,A=(-h-S)/n,B=zy(1,0,v,E),k=zy(v,E,M,A);a===0&&k>0&&(k-=To),a===1&&k<0&&(k+=To),f.centerX=T,f.centerY=C,f.ang1=B,f.ang2=k}});function Wy(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 $y(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 qy=p(()=>{"use strict"});var tP,Gu,jy=p(()=>{By();Ry();Iy();Ge();Fy();ot();Ff();Gy();Of();Ly();Hy();qy();tP=new Y,Gu=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 Ou(a,e,t,i,s,n,o),this}arcTo(e,t,i,s,n){this._ensurePoly();let o=this._currentPoly.points;return Ny(o,e,t,i,s,n),this}arcToSvg(e,t,i,s,n,o,a){let c=this._currentPoly.points;return Vy(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 Uu(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 Oy(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 Ru(e,t,i),s),this}poly(e,t,i){let s=new Rs(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?$y(this,e,t,s):Wy(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 Du(e,t,i,s),n),this}roundRect(e,t,i,s,n,o){return this.drawShape(new Iu(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 Rs,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 Rs,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(tP);s.transform?e.addRect(n,s.transform):e.addRect(n)}return e}}});function wo(r,e){return r?r.prepend(e):e.clone()}var Qr,Lf=p(()=>{It();Oe();ge();Py();jy();Qr=class r{constructor(e,t=!1){this.instructions=[],this.uid=K("graphicsPath"),this._dirty=!0,this.checkForHoles=t,typeof e=="string"?Ay(e,this):this.instructions=e?.slice()??[]}get shapePath(){return this._shapePath||(this._shapePath=new Gu(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(Z.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(Z.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]=wo(y[3],e);break;case"rect":y[4]=wo(y[4],e);break;case"ellipse":y[8]=wo(y[8],e);break;case"roundRect":y[5]=wo(y[5],e);break;case"addPath":y[0].transform(e);break;case"poly":y[2]=wo(y[2],e);break;default:G("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 zf=p(()=>{"use strict"});function Xy(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]=rP(o);break;case"radialgradient":e.defs[o.id]=iP(o);break;default:break}}}}function rP(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 ut(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 iP(r){return G("[SVG Parser] Radial gradients are not yet supported"),new ut(0,0,1,0)}var Yy=p(()=>{He();ge();ks();zf()});function Vf(r){let e=r.match(/url\s*\(\s*['"]?\s*#([^'"\s)]+)\s*['"]?\s*\)/i);return e?e[1]:""}var Ky=p(()=>{"use strict"});function Hf(r,e){let t=r.getAttribute("style"),i={},s={},n={strokeStyle:i,fillStyle:s,useFill:!1,useStroke:!1};for(let o in Qy){let a=r.getAttribute(o);a&&Zy(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(":");Qy[u]&&Zy(e,n,u,l.trim())}}return{strokeStyle:n.useStroke?i:null,fillStyle:n.useFill?s:null,useFill:n.useFill,useStroke:n.useStroke}}function Zy(r,e,t,i){switch(t){case"stroke":if(i!=="none"){if(i.startsWith("url(")){let s=Vf(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=Vf(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 Qy,Jy=p(()=>{He();Ky();Qy={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 e2(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 Qr};Xy(r,t);let i=r.children,{fillStyle:s,strokeStyle:n}=Hf(r,t);for(let o=0;o<i.length;o++){let a=i[o];a.nodeName.toLowerCase()!=="defs"&&t2(a,t,s,n)}return e}function t2(r,e,t,i){let s=r.children,{fillStyle:n,strokeStyle:o}=Hf(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,M;switch(r.nodeName.toLowerCase()){case"path":C=r.getAttribute("d"),r.getAttribute("fill-rule")==="evenodd"&&G("SVG Evenodd fill rule not supported, your svg may render incorrectly"),v=new Qr(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),M=_e(r,"height",0),_=_e(r,"rx",0),y=_e(r,"ry",0),_||y?e.context.roundRect(c,u,E,M,_||y):e.context.rect(c,u,E,M),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:{G(`[SVG parser] <${r.nodeName}> elements unsupported`);break}}a&&(t=null);for(let A=0;A<s.length;A++)t2(s[A],e,t,i)}var r2=p(()=>{ge();Lf();Yy();zf();Jy()});function sP(r){return q.isColorLike(r)}function i2(r){return r instanceof vr}function s2(r){return r instanceof ut}function nP(r){return r instanceof D}function oP(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=D.WHITE,{...t,...r}}function aP(r,e,t){return r.texture=e,{...t,...r}}function n2(r,e,t){return r.fill=e,r.color=16777215,r.texture=e.texture,r.matrix=e.transform,{...t,...r}}function o2(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 cP(r,e){let t={...e,...r},i=q.shared.setValue(t.color);return t.alpha*=i.alpha,t.color=i.toNumber(),t}function Cr(r,e){if(r==null)return null;let t={},i=r;return sP(r)?oP(t,r,e):nP(r)?aP(t,r,e):i2(r)?n2(t,r,e):s2(r)?o2(t,r,e):i.fill&&i2(i.fill)?n2(i,i.fill,e):i.fill&&s2(i.fill)?o2(i,i.fill,e):cP(i,e)}function Ms(r,e){let{width:t,alignment:i,miterLimit:s,cap:n,join:o,pixelLine:a,...c}=e,u=Cr(r,c);return u?{width:t,alignment:i,miterLimit:s,cap:n,join:o,pixelLine:a,...u}:null}var Wf=p(()=>{He();le();ks();Bu()});var uP,a2,$f,_t,qf=p(()=>{Ve();He();ee();It();le();Oe();ye();ot();Lf();r2();Wf();uP=new Z,a2=new R,$f=class rr extends oe{constructor(){super(...arguments),this.uid=K("graphicsContext"),this.dirty=!0,this.batchMode="auto",this.instructions=[],this._activePath=new Qr,this._transform=new R,this._fillStyle={...rr.defaultFillStyle},this._strokeStyle={...rr.defaultStrokeStyle},this._stateStack=[],this._tick=0,this._bounds=new ae,this._boundsDirty=!0}clone(){let e=new rr;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=Cr(e,rr.defaultFillStyle)}get strokeStyle(){return this._strokeStyle}set strokeStyle(e){this._strokeStyle=Ms(e,rr.defaultStrokeStyle)}setFillStyle(e){return this._fillStyle=Cr(e,rr.defaultFillStyle),this}setStrokeStyle(e){return this._strokeStyle=Cr(e,rr.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 Qr,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=Cr(e,rr.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(Z.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=Ms(e,rr.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++,e2(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):(a2.set(e,t,i,s,n,o),this._transform.append(a2),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,uP):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}};$f.defaultFillStyle={color:16777215,alpha:1,texture:D.WHITE,matrix:null,fill:null,textureSpace:"local"};$f.defaultStrokeStyle={width:1,color:16777215,alpha:1,alignment:.5,miterLimit:10,cap:"butt",join:"miter",texture:D.WHITE,matrix:null,fill:null,textureSpace:"local",pixelLine:!1};_t=$f});function u2(r){let e=[],t=0;for(let i=0;i<c2.length;i++){let s=`_${c2[i]}`;e[t++]=r[s]}return t=l2(r._fill,e,t),t=hP(r._stroke,e,t),t=dP(r.dropShadow,e,t),t=lP(r.filters,e,t),e.join("-")}function lP(r,e,t){if(!r)return t;for(let i of r)e[t++]=i.uid;return t}function l2(r,e,t){return r&&(e[t++]=r.color,e[t++]=r.alpha,e[t++]=r.fill?.styleKey),t}function hP(r,e,t){return r&&(t=l2(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 dP(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 c2,h2=p(()=>{He();c2=["align","breakWords","cssOverrides","fontVariant","fontWeight","leading","letterSpacing","lineHeight","padding","textBaseline","trim","whiteSpace","wordWrap","wordWrapWidth","fontFamily","fontStyle","fontSize"]});function fP(r){let e=r;if(typeof e.dropShadow=="boolean"&&e.dropShadow){let t=lt.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 ut||t instanceof vr)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=lt.defaultTextStyle.fontSize:typeof r.fontSize=="string"?t=parseInt(r.fontSize,10):t=r.fontSize;let i=new ut({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 jf,lt,Fs=p(()=>{Ve();He();ye();ks();Bu();qf();Wf();h2();jf=class Is extends oe{constructor(e={}){super(),fP(e);let t={...Is.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({...Is.defaultDropShadow,...e}):this._dropShadow=e?this._createProxy({...Is.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({..._t.defaultFillStyle,...e},()=>{this._fill=Cr({...this._originalFill},_t.defaultFillStyle)})),this._fill=Cr(e===0?"black":e,_t.defaultFillStyle),this.update())}get stroke(){return this._originalStroke}set stroke(e){e!==this._originalStroke&&(this._originalStroke=e,this._isFillStyle(e)&&(this._originalStroke=this._createProxy({..._t.defaultStrokeStyle,...e},()=>{this._stroke=Ms({...this._originalStroke},_t.defaultStrokeStyle)})),this._stroke=Ms(e,_t.defaultStrokeStyle),this.update())}_generateKey(){return this._styleKey=u2(this),this._styleKey}update(){this._styleKey=null,this.emit("update",this)}reset(){let e=Is.defaultTextStyle;for(let t in e)this[t]=e[t]}get styleKey(){return this._styleKey||this._generateKey()}clone(){return new Is({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 ut||e instanceof vr)}};jf.defaultDropShadow={alpha:1,angle:Math.PI/6,blur:0,color:"black",distance:5};jf.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};lt=jf});function Nu(r,e,t,i){let s=mP;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 mP,Xf=p(()=>{Lr();ot();mP=new ae});var Yf,bt,Us=p(()=>{ve();zn();Yf=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=_r(e),t=_r(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={}}},bt=new Yf});function pP(r,e){Ii||(Ii=W.get().createCanvas(256,128),Er=Ii.getContext("2d",{willReadFrequently:!0}),Er.globalCompositeOperation="copy",Er.globalAlpha=1),(Ii.width<r||Ii.height<e)&&(Ii.width=_r(r),Ii.height=_r(e))}function d2(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 f2(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 m2(...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(pP(s,n),!Er)throw new TypeError("Failed to get canvas 2D context");Er.drawImage(t,0,0,s,n,0,0,s*i,n*i);let c=Er.getImageData(0,0,s,n).data,u=0,l=0,h=s-1,f=n-1;for(;l<n&&d2(c,s,l);)++l;if(l===n)return Y.EMPTY;for(;d2(c,s,f);)--f;for(;f2(c,s,u,l,f);)++u;for(;f2(c,s,h,l,f);)--h;return++h,++f,Er.globalCompositeOperation="source-over",Er.strokeRect(u,l,h-u,f-l),Er.globalCompositeOperation="copy",o??(o=new Y),o.set(u/i,l/i,(h-u)/i,(f-l)/i),o}var Ii,Er,p2=p(()=>{ve();zn();Ge();Ii=null,Er=null});function Fi(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)&&!gP.includes(s)&&(s=`"${s}"`),t[i]=s}return`${r.fontStyle} ${r.fontVariant} ${r.fontWeight} ${e} ${t.join(",")}`}var gP,Lu=p(()=>{"use strict";gP=["serif","sans-serif","monospace","cursive","fantasy","system-ui"]});var Kf,ir,Xe,Os=p(()=>{ve();Lu();Kf={willReadFrequently:!0},ir=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=Fi(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",Kf),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 M=V._getFromCache(C,u,c,s);M+n>m&&(a+=V._addLine(o),d=!1,o="",n=0),o+=C,n+=M}}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",Kf)?.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",Kf)),V.__context}};ir.METRICS_STRING="|\xC9q\xC5";ir.BASELINE_SYMBOL="M";ir.BASELINE_MULTIPLIER=1.4;ir.HEIGHT_MULTIPLIER=2;ir.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]})();ir.experimentalLetterSpacing=!1;ir._fonts={};ir._newlines=[10,13];ir._breakingSpaces=[9,32,8192,8193,8194,8195,8196,8197,8198,8200,8201,8202,8287,12288];Xe=ir});function Gs(r,e,t,i=0){if(r.texture===D.WHITE&&!r.fill)return q.shared.setValue(r.color).setAlpha(r.alpha??1).toHexa();if(r.fill){if(r.fill instanceof vr){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 ut){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*g2)/g2,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 G("FillStyle not recognised",r),"red"}var g2,Qf=p(()=>{He();ee();le();ge();ks();Bu();g2=1e5});var x2,Zf,Ui,Jf=p(()=>{He();Ge();Us();p2();Os();Lu();Qf();x2=new Y,Zf=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=bt.getOptimalCanvasAndContext(a,c);this._renderTextToCanvas(t,i,n,s,u);let l=i.trim?m2({canvas:u.canvas,width:a,height:c,resolution:1,output:x2}):x2.set(0,0,a,c);return{canvasAndContext:u,frame:l}}returnCanvasAndContext(e){bt.returnCanvasAndContext(e)}_renderTextToCanvas(e,t,i,s,n){let{canvas:o,context:a}=n,c=Fi(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,B=A.color,k=A.alpha;a.shadowColor=q.shared.setValue(B).setAlpha(k).toRgbaString();let L=A.blur*s,j=A.distance*s;a.shadowBlur=L,a.shadowOffsetX=Math.cos(A.angle)*j,a.shadowOffsetY=Math.sin(A.angle)*j+v}else{if(a.fillStyle=t._fill?Gs(t._fill,a,u):null,t._stroke?.width){let A=t._stroke.width*t._stroke.alignment;a.strokeStyle=Gs(t._stroke,a,u,A)}a.shadowColor="black"}let E=(h-m.fontSize)/2;h-m.fontSize<0&&(E=0);let M=t._stroke?.width??0;for(let A=0;A<l.length;A++)g=M/2,_=M/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}}},Ui=new Zf});var So,_2=p(()=>{P();Lr();bi();ye();Fs();Xf();Jf();So=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 lt||(e.style=new lt(e.style)),e.textureStyle instanceof Je||(e.textureStyle=new Je(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}=Ui.getCanvasAndContext({text:n,style:o,resolution:c}),h=Nu(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),Ui.returnCanvasAndContext(l),f}return this._renderer.texture.initSource(h._source),Ui.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}};So.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"canvasText"}});var em=p(()=>{P();Sy();_2();O.add(So);O.add(yo)});var zu,b2=p(()=>{ye();Zc();qf();zu=class r extends Hr{constructor(e){e instanceof _t&&(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 _t,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!==_t.defaultStrokeStyle.width||e.color!==_t.defaultStrokeStyle.color||e.alpha!==_t.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 y2,T2,w2=p(()=>{"use strict";y2={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
|
-
`}},T2={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 S2,v2,C2=p(()=>{"use strict";S2={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
|
-
`}},v2={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 tm,rm,Vu,E2=p(()=>{ee();Xr();oo();ao();Yr();pu();Ut();rt();w2();C2();Vu=class extends Ee{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"}});tm??(tm=Yt({name:"sdf-shader",bits:[ys,ws(e),y2,S2,Qt]})),rm??(rm=Kt({name:"sdf-shader",bits:[Ts,Ss(e),T2,v2,Zt]})),super({glProgram:rm,gpuProgram:tm,resources:{localUniforms:t,batchSamplers:vs(e)}})}}});var Hu,k2=p(()=>{Ve();ye();Hu=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 A2,im,B2=p(()=>{He();Ge();Us();su();le();bi();ye();Os();Lu();Qf();Fs();k2();A2=class P2 extends Hu{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={...P2.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=D.WHITE,i._fill.fill=null),this.applyFillAsTint=t.overrideFill;let s=i.fontSize;i.fontSize=this.baseMeasurementFontSize;let n=Fi(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 Je?t.textureStyle:new Je(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 M=S/h-(a.dropShadow?.distance??0)-(a._stroke?.width??0);if(this.chars[_]={id:_.codePointAt(0),xOffset:-this._padding,yOffset:-this._padding,xAdvance:M,kerning:{}},d){this._drawGlyph(n,y,c+f,u+f,h,a);let A=o.width*h,B=o.height*h,k=new Y(c/A*o.width,u/B*o.height,v/A*o.width,E/B*o.height);this.chars[_].texture=new D({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=bt.getOptimalCanvasAndContext(this._textureSize,this._textureSize,e);this._setupContext(t.context,this._style,e);let i=e*(this.baseRenderedFontSize/this.baseMeasurementFontSize),s=new D({source:new jt({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=Fi(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=Gs(s,e)),t._fill&&(e.fillStyle=Gs(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];bt.returnCanvasAndContext(t),i.destroy(!0)}this.pages=null}};A2.defaultOptions={textureSize:512,style:new lt,mipmap:!0};im=A2});function Wu(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"?xP(s):e.align==="right"?_P(s):e.align==="justify"&&bP(s),s}function xP(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 _P(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 bP(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 sm=p(()=>{"use strict"});function R2(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 D2=p(()=>{"use strict"});var $u,nm,M2,I2=p(()=>{to();ye();ge();Os();Fs();B2();sm();D2();$u=0,nm=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(!De.has(i)){let o=new im({style:t,overrideFill:s,overrideSize:!0,...this.defaultOptions});$u++,$u>50&&G("BitmapText",`You have dynamically created ${$u} bitmap fonts, this can be inefficient. Try pre installing your font styles using \`BitmapFont.install({name:"style1", style})\``),o.once("destroy",()=>{$u--,De.remove(i)}),De.set(i,o)}let n=De.get(i);return n.ensureCharacters?.(e),n}getLayout(e,t,i=!0){let s=this.getFont(e,t),n=Xe.graphemeSegmenter(e);return Wu(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 lt?s:new lt(s),o=n._fill.fill!==null&&n._fill.fill!==void 0,a=new im({style:n,overrideFill:o,skipKerning:t.skipKerning,padding:t.padding,resolution:t.resolution,overrideSize:!1,textureStyle:t.textureStyle}),c=R2(t.chars);return a.ensureCharacters(c.join("")),De.set(`${i}-bitmap`,a),a.once("destroy",()=>De.remove(`${i}-bitmap`)),a}uninstall(e){let t=`${e}-bitmap`,i=De.get(t);i&&i.destroy()}},M2=new nm});function F2(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 om,vo,U2=p(()=>{to();P();b2();Os();E2();I2();sm();om=class extends zu{destroy(){this.context.customShader&&this.context.customShader.destroy(),super.destroy()}},vo=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);F2(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);F2(e,t),this._renderer.renderPipes.graphics.updateRenderable(t),t.context.customShader&&this._updateDistanceField(e)}_updateContext(e,t){let{context:i}=t,s=M2.getFont(e.text,e._style);i.clear(),s.distanceField.type!=="none"&&(i.customShader||(i.customShader=new Vu(this._renderer.limits.maxBatchableTextures)));let n=Xe.graphemeSegmenter(e.text),o=e._style,a=s.baseLineOffset,c=Wu(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 om;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=De.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}};vo.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"bitmapText"}});var am=p(()=>{P();U2();O.add(vo)});var qu,O2=p(()=>{bo();qu=class extends tr{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 Co,G2=p(()=>{P();le();Rf();O2();Co=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,_o(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,_o(t,e)}_getGpuText(e){return e._gpuData[this._renderer.uid]||this.initGpuText(e)}initGpuText(e){let t=new qu(this._renderer);return t.renderable=e,t.transform=e.groupTransform,t.texture=D.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}};Co.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"htmlText"}});function N2(){let{userAgent:r}=W.get().getNavigator();return/^((?!chrome|android).)*safari/i.test(r)}var L2=p(()=>{ve()});var z2,V2,Ns,cm=p(()=>{"use strict";z2="http://www.w3.org/2000/svg",V2="http://www.w3.org/1999/xhtml",Ns=class{constructor(){this.svgRoot=document.createElementNS(z2,"svg"),this.foreignObject=document.createElementNS(z2,"foreignObject"),this.domElement=document.createElementNS(V2,"div"),this.styleElement=document.createElementNS(V2,"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 $2(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?[j2(e)]:[],...r.dropShadow?[q2(r.dropShadow)]:[],...r.cssOverrides].join(";")} }`];return yP(r.tagStyles,s),s.join(" ")}function q2(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 j2(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 yP(r,e){for(let t in r){let i=r[t],s=[];for(let n in i)W2[n]?s.push(W2[n](i[n])):H2[n]&&s.push(H2[n].replace("{{VALUE}}",i[n]));e.push(`${t} { ${s.join(";")} }`)}}var H2,W2,X2=p(()=>{He();H2={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"},W2={fill:r=>`color: ${q.shared.setValue(r).toHex()}`,breakWords:r=>`word-wrap: ${r?"break-all":"break-word"}`,stroke:j2,dropShadow:q2}});var ju,Y2=p(()=>{ge();Fs();X2();ju=class r extends lt{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=$2(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"&&G("[HTMLTextStyle] only color fill is not supported by HTMLText"),super.fill=e}set stroke(e){e&&typeof e!="string"&&typeof e!="number"&&G("[HTMLTextStyle] only color stroke is not supported by HTMLText"),super.stroke=e}}});function K2(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 Q2=p(()=>{"use strict"});async function Z2(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 J2=p(()=>{ve()});async function um(r,e){let t=await Z2(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 eT=p(()=>{J2()});async function tT(r,e,t){let i=r.filter(s=>De.has(`${s}-and-url`)).map((s,n)=>{if(!Xu.has(s)){let{url:o}=De.get(`${s}-and-url`);n===0?Xu.set(s,um({fontWeight:e.fontWeight,fontStyle:e.fontStyle,fontFamily:s},o)):Xu.set(s,um({fontWeight:t.fontWeight,fontStyle:t.fontStyle,fontFamily:s},o))}return Xu.get(s)});return(await Promise.all(i)).join(`
|
|
474
|
-
`)}var Xu,rT=p(()=>{to();eT();Xu=new Map});function iT(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 sT=p(()=>{"use strict"});function nT(r,e){let t=bt.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 oT=p(()=>{Us()});function aT(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 cT=p(()=>{"use strict"});function lT(r,e,t,i){i||(i=uT||(uT=new Ns));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 uT,hT=p(()=>{cm()});var Eo,dT=p(()=>{P();Us();Lr();Jt();L2();ge();gr();Xf();cm();Y2();Q2();rT();sT();oT();cT();hT();Eo=class{constructor(e){this._renderer=e,this._createCanvas=e.type===Me.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=pe.get(Ns),a=K2(t,i),c=await tT(a,i,ju.defaultTextStyle),u=lT(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=iT(t,i,s,c,o);await aT(f,m,N2()&&a.length>0);let x=f,g;this._createCanvas&&(g=nT(f,s));let _=Nu(g?g.canvas:x,f.width-d,f.height-d,s);return n&&(_.source.style=n),this._createCanvas&&(this._renderer.texture.initSource(_.source),bt.returnCanvasAndContext(g)),pe.return(o),_}returnTexturePromise(e){e.then(t=>{this._cleanUp(t)}).catch(()=>{G("HTMLTextSystem: Failed to clean texture")})}_cleanUp(e){Te.returnTexture(e,!0),e.source.resource=null,e.source.uploadMethodId="unknown"}destroy(){this._renderer=null}};Eo.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"htmlText"}});var lm=p(()=>{P();G2();dT();O.add(Eo);O.add(Co)});var fT,Ls,Yu=p(()=>{qr();wr();xs();ye();fT=class mT extends vt{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={...mT.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 Ce({data:i,label:"attribute-mesh-positions",shrinkToFit:o,usage:Q.VERTEX|Q.COPY_DST}),c=new Ce({data:s,label:"attribute-mesh-uvs",shrinkToFit:o,usage:Q.VERTEX|Q.COPY_DST}),u=new Ce({data:n,label:"index-mesh-buffer",shrinkToFit:o,usage:Q.INDEX|Q.COPY_DST});super({attributes:{aPosition:{buffer:a,format:"float32x2",stride:8,offset:0},aUV:{buffer:c,format:"float32x2",stride:8,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}};fT.defaultOptions={topology:"triangle-list",shrinkBuffersToFit:!1};Ls=fT});var Oi,pT,zs,Vs=p(()=>{"use strict";Oi={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
|
-
`}},pT={...Oi,vertex:{...Oi.vertex,header:Oi.vertex.header.replace("group(1)","group(2)")}},zs={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 gT,xT,_T=p(()=>{"use strict";gT={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
|
-
`}},xT={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 hm,dm,Ku,bT=p(()=>{ee();Xr();Vs();Yr();Ut();rt();le();_T();Ku=class extends Ee{constructor(){hm??(hm=Yt({name:"tiling-sprite-shader",bits:[Oi,gT,Qt]})),dm??(dm=Kt({name:"tiling-sprite-shader",bits:[zs,xT,Zt]}));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:dm,gpuProgram:hm,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:D.EMPTY.source,uSampler:D.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 Qu,yT=p(()=>{Yu();Qu=class extends Ls{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 TT(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 wT=p(()=>{"use strict"});function ST(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 vT=p(()=>{"use strict"});function CT(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),ST(e,2,0,a)}var ET=p(()=>{ee();vT()});var Zu,fm,ko,kT=p(()=>{P();io();Ot();Jt();Ps();Su();Yu();bT();yT();wT();ET();Zu=new Qu,fm=class{constructor(){this.canBatch=!0,this.geometry=new Ls({indices:Zu.indices.slice(),positions:Zu.positions.slice(),uvs:Zu.uvs.slice()})}destroy(){this.geometry.destroy(),this.shader?.destroy()}},ko=class{constructor(e){this._state=Ae.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 Kr);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 Ku),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,er(e.groupColorAlpha,i.uColor,0),this._state.blendMode=Tr(e.groupBlendMode,e.texture._source),this._renderer.encoder.draw({geometry:Zu,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 fm;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()),CT(e,i.uvs),TT(e,i.positions)}destroy(){this._renderer=null}_updateCanBatch(e){let t=this._getTilingSpriteData(e),i=e.texture,s=!0;return this._renderer.type===Me.WEBGL&&(s=this._renderer.context.supports.nonPowOf2wrapping),t.canBatch=i.textureMatrix.isSimple&&(s||i.source.isPowerOfTwo),t.canBatch}};ko.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"tilingSprite"}});var mm=p(()=>{P();kT();O.add(ko)});var AT,BT,RT=p(()=>{ye();Yu();AT=class PT extends Ls{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={...PT.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()}};AT.defaultOptions={width:100,height:100,verticesX:10,verticesY:10};BT=AT});var DT,IT,FT=p(()=>{RT();DT=class MT extends BT{constructor(e={}){e={...MT.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()}};DT.defaultOptions={width:100,height:100,leftWidth:10,topHeight:10,rightWidth:10,bottomHeight:10,originalWidth:100,originalHeight:100};IT=DT});var pm,Ao,UT=p(()=>{P();Su();FT();pm=class extends Kr{constructor(){super(),this.geometry=new IT}destroy(){this.geometry.destroy()}},Ao=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 pm,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}};Ao.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"nineSliceSprite"}});var gm=p(()=>{P();UT();O.add(Ao)});var Po,OT=p(()=>{P();Po=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}};Po.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"filter"}});function GT(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 NT=p(()=>{"use strict"});var TP,xm,Bo,LT=p(()=>{P();ee();$r();xs();rt();le();Lr();Jt();ot();NT();ge();TP=new vt({attributes:{aPosition:{buffer:new Float32Array([0,0,1,0,1,1,0,1]),format:"float32x2",stride:8,offset:0}},indexBuffer:new Uint32Array([0,1,2,0,2,3])}),xm=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}}},Bo=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?GT(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=D.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=D.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 D&&(i.source.resource=null);let g=this.renderer.renderTarget.getRenderTarget(i);if(n.renderTarget.bind(i,!!s),i instanceof D?(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:TP,shader:e,state:e._state,topology:"triangle-list"}),n.type===Me.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)){G("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 xm),this._filterStackIndex++,e}};Bo.extension={type:[b.WebGLSystem,b.WebGPUSystem],name:"filter"}});var _m=p(()=>{P();OT();LT();O.add(Bo);O.add(Po)});var wP={};var zT=p(()=>{b0();pd();A0();B0();Jc();ou();Cf();Ef();Bf();em();am();lm();mm();gm();_m()});var SP={};var HT=p(()=>{pd();Jc();ou();Cf();Ef();Bf();em();am();lm();mm();gm();_m()});var $T,qT,jT=p(()=>{Ai();bs();Ut();Ot();$T=class bm extends Ee{constructor(e){e={...bm.defaultOptions,...e},super(e),this.enabled=!0,this._state=Ae.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=Et.from(t)),i&&(o=Ct.from(i)),new bm({gpuProgram:n,glProgram:o,...s})}};$T.defaultOptions={blendMode:"normal",resolution:1,padding:0,antialias:"off",blendRequired:!1,clipToViewport:!0};qT=$T});async function XT(r){if(!r)for(let e=0;e<ym.length;e++){let t=ym[e];if(t.value.test()){await t.value.load();return}}}var ym,YT=p(()=>{P();ym=[];O.handleByNamedList(b.Environment,ym)});function Ju(){if(typeof Ro=="boolean")return Ro;try{Ro=new Function("param1","param2","param3","return param1[param2] === param3;")({a:"b"},"a","b")===!0}catch{Ro=!1}return Ro}var Ro,Tm=p(()=>{"use strict"});var Le,Hs=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 Ws,wm=p(()=>{"use strict";Ws=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 vP,KT,Zr,Do=p(()=>{He();YT();Ht();Tm();Oe();ye();Hs();wm();Ve();vP=["init","destroy","contextChange","resolutionChange","resetState","renderEnd","renderStart","render","update","postrender","prerender"],KT=class QT 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=[...vP,...this.config.runners??[]];this._addRunners(...t),this._unsafeEvalCheck()}async init(e={}){let t=e.skipExtensionImports===!0?!0:e.manageImports===!1;await XT(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={...QT.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 Ws(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(!Ju())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()}};KT.defaultOptions={resolution:1,failIfMajorPerformanceCaveat:!1,roundPixels:!1};Zr=KT});var Mo,ew=p(()=>{P();ee();au();Xr();oo();ao();Vs();Yr();Ut();rt();Mo=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=Yt({name:"graphics",bits:[ys,ws(this._maxTextures),pT,Qt]});this.shader=new Ee({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=ps(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}};Mo.extension={type:[b.WebGPUPipesAdaptor],name:"graphics"}});var tw,rw,Sm=p(()=>{"use strict";tw={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
|
-
`}},rw={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 Io,iw=p(()=>{P();ee();Xr();Vs();Yr();Sm();Ut();le();ge();Io=class{init(){let e=Yt({name:"mesh",bits:[Oi,tw,Qt]});this._shader=new Ee({gpuProgram:e,resources:{uTexture:D.EMPTY._source,uSampler:D.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){G("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}};Io.extension={type:[b.WebGPUPipesAdaptor],name:"mesh"}});var rl,Fo,sw=p(()=>{P();Ot();au();rl=Ae.for2d(),Fo=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),rl.blendMode="normal",s.pipeline.getPipeline(t,o,rl);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=ps(c.textures,c.count,s.limits.maxBatchableTextures)}rl.blendMode=t.blendMode;let o=s.bindGroup.getBindGroup(t.bindGroup,i,1),a=s.pipeline.getPipeline(this._geometry,i,rl,t.topology);t.bindGroup._touch(s.textureGC.count),n.setPipeline(a),n.renderPassEncoder.setBindGroup(1,o),n.renderPassEncoder.drawIndexed(t.size,1,t.start)}};Fo.extension={type:[b.WebGPUPipesAdaptor],name:"batch"}});var Uo,nw=p(()=>{P();Uo=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}};Uo.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"customRender"}});function Oo(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 vm=p(()=>{"use strict"});var CP,Go,ow=p(()=>{P();ee();gr();bo();vm();CP=new R,Go=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&&(pe.return(e._batchableRenderGroup),e._batchableRenderGroup=null),t.add(e)}_addRenderableCacheAsTexture(e,t){let i=e._batchableRenderGroup??(e._batchableRenderGroup=pe.get(tr));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=CP.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}),Oo(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}),Oo(e,this._renderer.renderPipes),this._renderer.globalUniforms.pop()}};Go.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"renderGroup"}});function No(r,e){e||(e=0);for(let t=e;t<r.length&&r[t];t++)r[t]=null}var Cm=p(()=>{"use strict"});function Em(r,e=!1){kP(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&&uw(l,i,0)}No(a,c),o.index=0}if(e)for(let s=0;s<r.renderGroupChildren.length;s++)Em(r.renderGroupChildren[s],e)}function kP(r){let e=r.root,t;if(r.renderGroupParent){let i=r.renderGroupParent;r.worldTransform.appendFrom(e.relativeGroupTransform,i.worldTransform),r.worldColor=as(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 uw(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&aw&&cw(r,s,t)):(t=r._updateFlags,r.relativeGroupTransform.copyFrom(i),t&aw&&cw(r,EP,t)),!r.renderGroup){let n=r.children,o=n.length;for(let u=0;u<o;u++)uw(n[u],e,t);let a=r.parentRenderGroup,c=r;c.renderPipeId&&!a.structureDidChange&&a.updateRenderable(c)}}function cw(r,e,t){if(t&hs){r.groupColor=as(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&Vn&&(r.groupBlendMode=r.localBlendMode==="inherit"?e.groupBlendMode:r.localBlendMode),t&Ci&&(r.globalDisplayStatus=r.localDisplayStatus&e.globalDisplayStatus),r._updateFlags=0}var EP,aw,lw=p(()=>{Ht();Cm();Zh();EP=new we,aw=Ci|hs|Vn});function hw(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 dw=p(()=>{"use strict"});var AP,Lo,fw=p(()=>{P();ee();Lr();ot();Cm();vm();lw();dw();AP=new R,Lo=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=AP;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}),Oo(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?No(e.childrenRenderablesToUpdate.list,0):hw(e,i),Em(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)}No(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)}};Lo.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"renderGroup"}});var zo,mw=p(()=>{P();bo();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.bounds=e.visualBounds,t.texture=e._texture}_getGpuSprite(e){return e._gpuData[this._renderer.uid]||this._initGPUSprite(e)}_initGPUSprite(e){let t=new tr;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}};zo.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"sprite"}});var $s,km=p(()=>{Ve();$s="8.10.1"});var Am,Vo,pw=p(()=>{P();km();Am=class{static init(){globalThis.__PIXI_APP_INIT__?.(this,$s)}static destroy(){}};Am.extension=b.Application;Vo=class{constructor(e){this._renderer=e}init(){globalThis.__PIXI_RENDERER_INIT__?.(this._renderer,$s)}destroy(){this._renderer=null}};Vo.extension={type:[b.WebGLSystem,b.WebGPUSystem],name:"initHook",priority:-10}});var Pm,Bm,xw=p(()=>{P();Ot();nf();Pm=class gw{constructor(e,t){this.state=Ae.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 co({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]=gw.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}};Pm.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"batch"};Pm._availableBatchers=Object.create(null);Bm=Pm;O.handleByMap(b.Batcher,Bm._availableBatchers);O.add(co)});var _w,bw=p(()=>{_w=`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 yw,Tw=p(()=>{yw=`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 Rm,ww=p(()=>{Rm=`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 il,Sw=p(()=>{ee();Ai();bs();rt();od();jT();bw();Tw();ww();il=class extends qT{constructor(e){let{sprite:t,...i}=e,s=new ls(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=Et.from({vertex:{source:Rm,entryPoint:"mainVertex"},fragment:{source:Rm,entryPoint:"mainFragment"}}),a=Ct.from({vertex:yw,fragment:_w,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 PP,Dm,Ho,vw=p(()=>{P();Uc();Sw();ot();Nn();tu();gr();le();Lr();Jt();PP=new ae,Dm=class extends xr{constructor(){super(),this.filters=[new il({sprite:new qt(D.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}},Ho=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=pe.get(Dm);if(s.inverse=e.inverse,i){e.mask.mask.measurable=!0;let n=os(e.mask.mask,!0,PP);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===Me.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),pe.return(s.filterEffect)}}destroy(){this._renderer=null,this._activeMaskStage=null}};Ho.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"alphaMask"}});var Wo,Cw=p(()=>{P();Wo=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}};Wo.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"colorMask"}});var $o,Ew=p(()=>{P();Hs();ki();$o=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(me.RENDERING_MASK_ADD,n),n++,i.colorMask.setMask(0)):e.action==="pushMaskEnd"?(e.inverse?i.stencil.setStencilMode(me.INVERSE_MASK_ACTIVE,n):i.stencil.setStencilMode(me.MASK_ACTIVE,n),i.colorMask.setMask(15)):e.action==="popMaskBegin"?(i.colorMask.setMask(0),n!==0?i.stencil.setStencilMode(me.RENDERING_MASK_REMOVE,n):(i.renderTarget.clear(null,Le.STENCIL),i.stencil.setStencilMode(me.DISABLED,n)),n--):e.action==="popMaskEnd"&&(e.inverse?i.stencil.setStencilMode(me.INVERSE_MASK_ACTIVE,n):i.stencil.setStencilMode(me.MASK_ACTIVE,n),i.colorMask.setMask(15)),this._maskStackHash[s]=n}destroy(){this._renderer=null,this._maskStackHash=null,this._maskHash=null}};$o.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"stencilMask"}});var Mm,Aw,Pw=p(()=>{He();P();Mm=class kw{constructor(){this.clearBeforeRender=!0,this._backgroundColor=new q(0),this.color=this._backgroundColor,this.alpha=1}init(e){e={...kw.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(){}};Mm.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"background",priority:0};Mm.defaultOptions={backgroundAlpha:1,backgroundColor:0,clearBeforeRender:!0};Aw=Mm});var qo,jo,Bw=p(()=>{P();Uc();ge();qo={};O.handle(b.BlendMode,r=>{if(!r.name)throw new Error("BlendMode extension must have a name property");qo[r.name]=r.ref},r=>{delete qo[r.name]});jo=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=!!qo[t],this._isAdvanced&&(this._beginAdvancedBlendMode(i),this._renderableList.push(e))}_beginAdvancedBlendMode(e){this._renderer.renderPipes.batch.break(e);let t=this._activeBlendMode;if(!qo[t]){G(`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 xr,i.filters=[new qo[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}};jo.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"blendMode"}});var Im,Fm,Dw,Mw=p(()=>{P();Ht();le();Im={png:"image/png",jpg:"image/jpeg",webp:"image/webp"},Fm=class Rw{constructor(e){this._renderer=e}_normalizeOptions(e,t={}){return e instanceof we||e instanceof D?{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,Rw.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)},Im[t],i)});if(s.toDataURL!==void 0)return s.toDataURL(Im[t],i);if(s.convertToBlob!==void 0){let n=await s.convertToBlob({type:Im[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 D)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 D?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 D?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}};Fm.extension={type:[b.WebGLSystem,b.WebGPUSystem],name:"extract"};Fm.defaultImageOptions={format:"png",quality:1};Dw=Fm});var sl,Iw=p(()=>{et();le();sl=class r extends D{static create(e){return new r({source:new se(e)})}resize(e,t,i){return this.source.resize(e,t,i),this}}});var BP,RP,DP,Xo,Fw=p(()=>{He();P();ee();Ge();ot();zc();Ht();Iw();BP=new Y,RP=new ae,DP=[0,0,0,0],Xo=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=DP;let o=e.frame?.copyTo(BP)||cs(s,RP).rectangle;o.width=Math.max(o.width,1/t)|0,o.height=Math.max(o.height,1/t)|0;let a=sl.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}};Xo.extension={type:[b.WebGLSystem,b.WebGPUSystem],name:"textureGenerator"}});var Yo,Uw=p(()=>{P();ee();It();Ps();$r();Jt();rt();Yo=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 Z},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,er(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===Me.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}};Yo.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"globalUniforms"}});var MP,Ko,Ow=p(()=>{P();$n();MP=1,Ko=class{constructor(){this._tasks=[],this._offset=0}init(){at.system.add(this._update,this)}repeat(e,t,i=!0){let s=MP++,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(){at.system.remove(this._update,this),this._tasks.length=0}};Ko.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"scheduler",priority:0}});function Nw(r){if(!Gw){if(W.get().getNavigator().userAgent.toLowerCase().indexOf("chrome")>-1){let e=[`%c %c %c %c %c PixiJS %c v${$s} (${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 ${$s} - ${r} - http://www.pixijs.com/`);Gw=!0}}var Gw,Lw=p(()=>{ve();km();Gw=!1});var qs,zw=p(()=>{P();Lw();Jt();qs=class{constructor(e){this._renderer=e}init(e){if(e.hello){let t=this._renderer.name;this._renderer.type===Me.WEBGL&&(t+=` ${this._renderer.context.webGLVersion}`),Nw(t)}}};qs.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"hello",priority:-2};qs.defaultOptions={hello:!1}});function Vw(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 Hw(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 Ww=p(()=>{"use strict"});var IP,Um,qw,jw=p(()=>{P();Ww();IP=0,Um=class $w{constructor(e){this._managedRenderables=[],this._managedHashes=[],this._managedArrays=[],this._renderer=e}init(e){e={...$w.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]=Vw(t.context[t.hash])},this._frequency),this._arrayHandler=this._renderer.scheduler.repeat(()=>{for(let t of this._managedArrays)Hw(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=IP++,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)}};Um.extension={type:[b.WebGLSystem,b.WebGPUSystem],name:"renderableGC",priority:0};Um.defaultOptions={renderableGCActive:!0,renderableGCMaxUnusedTime:6e4,renderableGCFrequency:3e4};qw=Um});var Om,Yw,Kw=p(()=>{P();Om=class Xw{constructor(e){this._renderer=e,this.count=0,this.checkCount=0}init(e){e={...Xw.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}};Om.extension={type:[b.WebGLSystem,b.WebGPUSystem],name:"textureGC"};Om.defaultOptions={textureGCActive:!0,textureGCAMaxIdle:null,textureGCMaxIdle:3600,textureGCCheckCountMax:600};Yw=Om});var Qw,Qo,Gm=p(()=>{Oe();et();le();Qw=class Zw{constructor(e={}){if(this.uid=K("renderTarget"),this.colorTextures=[],this.dirtyId=0,this.isRoot=!1,this._size=new Float32Array(2),this._managedColorTextures=!1,e={...Zw.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 D||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)}};Qw.defaultOptions={width:0,height:0,resolution:1,colorTextures:1,stencil:!1,depth:!1,antialias:!1,isRoot:!1};Qo=Qw});function nl(r,e){if(!Zo.has(r)){let t=new D({source:new je({resource:r,...e})}),i=()=>{Zo.get(r)===t&&Zo.delete(r)};t.once("destroy",i),t.source.once("destroy",i),Zo.set(r,t)}return Zo.get(r)}var Zo,Nm=p(()=>{ms();le();Zo=new Map});var Lm,eS,tS=p(()=>{ve();P();Ge();ye();Gm();Nm();Lm=class Jw{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={...Jw.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=nl(this.canvas,e),this.renderTarget=new Qo({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)}};Lm.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"view",priority:0};Lm.defaultOptions={width:800,height:600,autoDensity:!1,antialias:!1};eS=Lm});var ol,al,zm=p(()=>{nw();ow();fw();mw();pw();xw();vw();Cw();Ew();Pw();Bw();Mw();Fw();Uw();Ow();zw();jw();Kw();tS();ol=[Aw,Yo,qs,eS,Lo,Yw,Xo,Dw,Vo,qw,Ko],al=[jo,Bm,zo,Go,Ho,$o,Wo,Uo]});var Jo,rS=p(()=>{P();Jo=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}};Jo.extension={type:[b.WebGPUSystem],name:"bindGroup"}});var ea,iS=p(()=>{P();Gd();ea=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&&(ro(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}};ea.extension={type:[b.WebGPUSystem],name:"buffer"}});var ta,sS=p(()=>{P();ta=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}};ta.extension={type:[b.WebGPUSystem],name:"colorMask"}});var js,nS=p(()=>{ve();P();js=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}};js.extension={type:[b.WebGPUSystem],name:"device"};js.defaultOptions={powerPreference:void 0,forceFallbackAdapter:!1}});var ra,oS=p(()=>{P();ra=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}};ra.extension={type:[b.WebGPUSystem],name:"encoder",priority:1}});var ia,aS=p(()=>{P();ia=class{constructor(e){this._renderer=e}contextChange(){this.maxTextures=this._renderer.device.gpu.device.limits.maxSampledTexturesPerShaderStage,this.maxBatchableTextures=this.maxTextures}destroy(){}};ia.extension={type:[b.WebGPUSystem],name:"limits"}});var sa,cS=p(()=>{P();ki();sa=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:me.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}};sa.extension={type:[b.WebGPUSystem],name:"stencil"}});var Xs,Vm=p(()=>{Tm();qr();wr();Xs=class{constructor(e){this._syncFunctionHash=Object.create(null),this._adaptor=e,this._systemCheck()}_systemCheck(){if(!Ju())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 Ce({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 Ce({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 uS(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=na[s.data.type].size,o=na[s.data.type].align;if(!na[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 na,Hm=p(()=>{"use strict";na={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 kr,Wm=p(()=>{"use strict";kr=[{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 cl(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<kr.length;f++)if(kr[f].test(c.data)){h=c.offset/4,s.push(`name = "${u}";`,`offset += ${h-n};`,kr[f][e]||kr[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 $m=p(()=>{Wm()});function Ys(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 qm,lS,jm=p(()=>{"use strict";qm={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>":Ys(3,2),"mat4x2<f32>":Ys(4,2),"mat2x3<f32>":Ys(2,3),"mat4x3<f32>":Ys(4,3),"mat2x4<f32>":Ys(2,4),"mat3x4<f32>":Ys(3,4)},lS={...qm,"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 hS(r,e){let{size:t,align:i}=na[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 dS=p(()=>{Hm()});function fS(r){return cl(r,"uboWgsl",hS,lS)}var mS=p(()=>{$m();jm();dS()});var oa,pS=p(()=>{P();Vm();Hm();mS();oa=class extends Xs{constructor(){super({createUboElements:uS,generateUboSync:fS})}};oa.extension={type:[b.WebGPUSystem],name:"ubo"}});var Jr,ul=p(()=>{Ve();Oe();Jr=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 ll,gS=p(()=>{"use strict";ll=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 ei,aa,xS=p(()=>{P();qr();ul();wr();gS();$r();ei=128,aa=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 ll({minUniformOffsetAlignment:ei});let t=256/ei;for(let i=0;i<t;i++){let s=Q.UNIFORM|Q.COPY_DST;i===0&&(s|=Q.COPY_SRC),this._buffers.push(new Ce({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/ei),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/ei)}getArrayBindGroup(e){let t=this._batchBuffer.addGroup(e);return this._getBindGroup(t/ei)}getArrayBufferResource(e){let i=this._batchBuffer.addGroup(e)/ei;return this._getBufferResource(i)}_getBufferResource(e){if(!this._bufferResources[e]){let t=this._buffers[e%2];this._bufferResources[e]=new Jr({buffer:t,offset:(e/2|0)*256,size:ei})}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),ei,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}};aa.extension={type:[b.WebGPUPipes],name:"uniformBatch"}});function hl(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)):G(`Attribute ${t} is not present in the shader, but is present in the geometry. Unable to infer attribute details.`)}FP(r)}function FP(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]+=ct(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]+=ct(o.format).stride}}var Xm=p(()=>{ge();Pi()});var sr,Ym=p(()=>{ki();sr=[];sr[me.NONE]=void 0;sr[me.DISABLED]={stencilWriteMask:0,stencilReadMask:0};sr[me.RENDERING_MASK_ADD]={stencilFront:{compare:"equal",passOp:"increment-clamp"},stencilBack:{compare:"equal",passOp:"increment-clamp"}};sr[me.RENDERING_MASK_REMOVE]={stencilFront:{compare:"equal",passOp:"decrement-clamp"},stencilBack:{compare:"equal",passOp:"decrement-clamp"}};sr[me.MASK_ACTIVE]={stencilWriteMask:0,stencilFront:{compare:"equal",passOp:"keep"},stencilBack:{compare:"equal",passOp:"keep"}};sr[me.INVERSE_MASK_ACTIVE]={stencilWriteMask:0,stencilFront:{compare:"not-equal",passOp:"keep"},stencilBack:{compare:"not-equal",passOp:"keep"}}});function OP(r,e,t,i,s){return r<<24|e<<16|t<<10|i<<5|s}function GP(r,e,t,i){return t<<6|r<<3|i<<1|e}var UP,ca,_S=p(()=>{P();ge();Xm();ki();no();Ym();UP={"point-list":0,"line-list":1,"line-strip":2,"triangle-list":3,"triangle-strip":4};ca=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(me.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=sr[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||(hl(e,t.attributeData),this._generateBufferKey(e)),s||(s=e.topology);let n=OP(e._layoutKey,t._layoutKey,i.data,i._blendModeId,UP[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===me.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=Sr(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=Sr(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&&G(`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=GP(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}};ca.extension={type:[b.WebGPUSystem],name:"pipeline"}});function bS(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 yS=p(()=>{"use strict"});function TS(r){let e=r.colorTexture.source.resource;return globalThis.HTMLCanvasElement&&e instanceof HTMLCanvasElement&&document.body.contains(e)}var wS=p(()=>{"use strict"});var Ks,Km=p(()=>{ee();Ge();Hs();yS();wm();ms();et();le();Nm();wS();Gm();Ks=class{constructor(e){this.rootViewPort=new Y,this.viewport=new Y,this.onRenderTargetChange=new Ws("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=TS(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 D&&(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 bS(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=nl(e).source),e instanceof Qo?t=e:e instanceof se&&(t=new Qo({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 dl,SS=p(()=>{"use strict";dl=class{constructor(){this.contexts=[],this.msaaTextures=[],this.msaaSamples=1}}});var fl,vS=p(()=>{Hs();ms();et();SS();fl=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 dl;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 ua,CS=p(()=>{P();Km();vS();ua=class extends Ks{constructor(e){super(e),this.adaptor=new fl,this.adaptor.init(e,this)}};ua.extension={type:[b.WebGPUSystem],name:"renderTarget"}});var la,ES=p(()=>{P();la=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}};la.extension={type:[b.WebGPUSystem],name:"shader"}});var it,kS=p(()=>{"use strict";it={};it.normal={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"}};it.add={alpha:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one",operation:"add"}};it.multiply={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"dst",dstFactor:"one-minus-src-alpha",operation:"add"}};it.screen={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src",operation:"add"}};it.overlay={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src",operation:"add"}};it.none={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"zero",dstFactor:"zero",operation:"add"}};it["normal-npm"]={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha",operation:"add"}};it["add-npm"]={alpha:{srcFactor:"one",dstFactor:"one",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one",operation:"add"}};it["screen-npm"]={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one-minus-src",operation:"add"}};it.erase={alpha:{srcFactor:"zero",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"zero",dstFactor:"one-minus-src",operation:"add"}};it.min={alpha:{srcFactor:"one",dstFactor:"one",operation:"min"},color:{srcFactor:"one",dstFactor:"one",operation:"min"}};it.max={alpha:{srcFactor:"one",dstFactor:"one",operation:"max"},color:{srcFactor:"one",dstFactor:"one",operation:"max"}}});var ha,AS=p(()=>{P();Ot();kS();ha=class{constructor(){this.defaultState=new Ae,this.defaultState.blend=!0}contextChange(e){this.gpu=e}getColorTargets(e){return[{format:"bgra8unorm",writeMask:0,blend:it[e.blendMode]||it.normal}]}destroy(){this.gpu=null}};ha.extension={type:[b.WebGPUSystem],name:"state"}});var PS,BS=p(()=>{"use strict";PS={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 Qm,NP,RS,DS=p(()=>{"use strict";Qm={"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}},NP={blockBytes:4,blockWidth:1,blockHeight:1},RS={type:"compressed",upload(r,e,t){let i=r.pixelWidth,s=r.pixelHeight,n=Qm[r.format]||NP;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 ml,Zm=p(()=>{ve();ge();ml={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,G("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 MS,IS=p(()=>{Zm();MS={type:"video",upload(r,e,t){ml.upload(r,e,t)}}});var pl,FS=p(()=>{"use strict";pl=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 da,US=p(()=>{ve();P();rt();Us();$r();BS();DS();Zm();IS();FS();da=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:ml,buffer:PS,video:MS,compressed:RS},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=Qm[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 pl(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=bt.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 bt.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}};da.extension={type:[b.WebGPUSystem],name:"texture"}});var LS={};yg(LS,{WebGPURenderer:()=>Jm});var LP,zP,VP,OS,GS,NS,Jm,zS=p(()=>{P();ew();iw();sw();Do();zm();Jt();rS();iS();sS();nS();oS();aS();cS();pS();xS();_S();CS();ES();AS();US();LP=[...ol,oa,ra,js,ia,ea,da,ua,la,ha,ca,ta,sa,Jo],zP=[...al,aa],VP=[Fo,Io,Mo],OS=[],GS=[],NS=[];O.handleByNamedList(b.WebGPUSystem,OS);O.handleByNamedList(b.WebGPUPipes,GS);O.handleByNamedList(b.WebGPUPipesAdaptor,NS);O.add(...LP,...zP,...VP);Jm=class extends Zr{constructor(){let e={name:"webgpu",type:Me.WEBGPU,systems:OS,renderPipes:GS,renderPipeAdaptors:NS};super(e)}}});var fa,VS=p(()=>{P();ee();Xr();oo();ao();Vs();Yr();pu();Ut();rt();fa=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=Kt({name:"graphics",bits:[Ts,Ss(i),zs,Zt]});this.shader=new Ee({glProgram:s,resources:{localUniforms:t,batchSamplers:vs(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}};fa.extension={type:[b.WebGLPipesAdaptor],name:"graphics"}});var ma,HS=p(()=>{P();ee();Xr();Vs();Yr();Sm();Ut();le();ge();ma=class{init(){let e=Kt({name:"mesh",bits:[zs,rw,Zt]});this._shader=new Ee({glProgram:e,resources:{uTexture:D.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){G("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}};ma.extension={type:[b.WebGLPipesAdaptor],name:"mesh"}});var pa,WS=p(()=>{P();Ot();pa=class{constructor(){this._tempState=Ae.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)}};pa.extension={type:[b.WebGLPipesAdaptor],name:"batch"}});var ga,$S=p(()=>{"use strict";ga=(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))(ga||{})});var gl,qS=p(()=>{"use strict";gl=class{constructor(e,t){this._lastBindBaseLocation=-1,this._lastBindCallId=-1,this.buffer=e||null,this.updateID=-1,this.byteLength=-1,this.type=t}}});var xa,jS=p(()=>{P();wr();$S();qS();xa=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=ga.ARRAY_BUFFER;e.descriptor.usage&Q.INDEX?i=ga.ELEMENT_ARRAY_BUFFER:e.descriptor.usage&Q.UNIFORM&&(i=ga.UNIFORM_BUFFER);let s=new gl(t.createBuffer(),i);return this._gpuBuffers[e.uid]=s,e.on("destroy",this.onBufferDestroy,this),s}resetState(){this._boundBufferBases=Object.create(null)}};xa.extension={type:[b.WebGLSystem],name:"buffer"}});var ep,YS,KS=p(()=>{ve();P();ge();ep=class XS{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={...XS.defaultOptions,...e};let t=this.multiView=e.multiView;if(e.context&&t&&(G("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&&G("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&&G("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||G("Provided WebGL context does not support 32 index buffer, large scenes may not render correctly")}};ep.extension={type:[b.WebGLSystem],name:"context"};ep.defaultOptions={context:null,premultipliedAlpha:!0,preserveDrawingBuffer:!1,powerPreference:void 0,preferWebGLVersion:2,multiView:!1};YS=ep});var xl,tp,re,rp=p(()=>{"use strict";xl=(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))(xl||{}),tp=(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))(tp||{}),re=(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))(re||{})});function ZS(r){return QS[r]??QS.float32}var QS,JS=p(()=>{rp();QS={uint8x2:re.UNSIGNED_BYTE,uint8x4:re.UNSIGNED_BYTE,sint8x2:re.BYTE,sint8x4:re.BYTE,unorm8x2:re.UNSIGNED_BYTE,unorm8x4:re.UNSIGNED_BYTE,snorm8x2:re.BYTE,snorm8x4:re.BYTE,uint16x2:re.UNSIGNED_SHORT,uint16x4:re.UNSIGNED_SHORT,sint16x2:re.SHORT,sint16x4:re.SHORT,unorm16x2:re.UNSIGNED_SHORT,unorm16x4:re.UNSIGNED_SHORT,snorm16x2:re.SHORT,snorm16x4:re.SHORT,float16x2:re.HALF_FLOAT,float16x4:re.HALF_FLOAT,float32:re.FLOAT,float32x2:re.FLOAT,float32x3:re.FLOAT,float32x4:re.FLOAT,uint32:re.UNSIGNED_INT,uint32x2:re.UNSIGNED_INT,uint32x3:re.UNSIGNED_INT,uint32x4:re.UNSIGNED_INT,sint32:re.INT,sint32x2:re.INT,sint32x3:re.INT,sint32x4:re.INT}});var HP,_a,ev=p(()=>{P();Pi();Xm();JS();HP={"point-list":0,"line-list":1,"line-strip":3,"triangle-list":4,"triangle-strip":5},_a=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;hl(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=ct(c.format),m=ZS(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=HP[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}};_a.extension={type:[b.WebGLSystem],name:"geometry"}});var WP,ip,rv,iv=p(()=>{P();ge();xs();Ut();Ot();et();le();Ai();WP=new vt({attributes:{aPosition:[-1,-1,3,-1,-1,3]}}),ip=class tv{constructor(e){this.useBackBuffer=!1,this._useBackBufferThisRender=!1,this._renderer=e}init(e={}){let{useBackBuffer:t,antialias:i}={...tv.defaultOptions,...e};this.useBackBuffer=t,this._antialias=i,this._renderer.context.supports.msaa||(G("antialiasing, is not supported on when using the back buffer"),this._antialias=!1),this._state=Ae.for2d();let s=new Ct({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 Ee({glProgram:s,resources:{uTexture:D.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:WP,shader:this._bigTriangleShader,state:this._state}))}_getBackBufferTexture(e){return this._backBufferTexture=this._backBufferTexture||new D({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)}};ip.extension={type:[b.WebGLSystem],name:"backBuffer",priority:1};ip.defaultOptions={useBackBuffer:!1};rv=ip});var ba,sv=p(()=>{P();ba=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)))}};ba.extension={type:[b.WebGLSystem],name:"colorMask"}});var ya,nv=p(()=>{P();ya=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}};ya.extension={type:[b.WebGLSystem],name:"encoder"}});var Ta,ov=p(()=>{P();Ld();Ta=class{constructor(e){this._renderer=e}contextChange(){let e=this._renderer.gl;this.maxTextures=e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS),this.maxBatchableTextures=lu(this.maxTextures,e),this.maxUniformBindings=e.getParameter(e.MAX_UNIFORM_BUFFER_BINDINGS)}destroy(){}};Ta.extension={type:[b.WebGLSystem],name:"limits"}});var wa,av=p(()=>{P();Ym();ki();wa=class{constructor(e){this._stencilCache={enabled:!1,stencilReference:0,stencilMode:me.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:me.DISABLED,stencilReference:0}),this.setStencilMode(t.stencilMode,t.stencilReference)}resetState(){this._stencilCache.enabled=!1,this._stencilCache.stencilMode=me.NONE,this._stencilCache.stencilReference=0}setStencilMode(e,t){let i=this._renderTargetStencilState[this._activeRenderTarget.uid],s=this._gl,n=sr[e],o=this._stencilCache;if(i.stencilMode=e,i.stencilReference=t,e===me.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]))}};wa.extension={type:[b.WebGLSystem],name:"stencil"}});function cv(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=sp[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 sp,np=p(()=>{"use strict";sp={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 uv(r,e){let t=Math.max(sp[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 lv=p(()=>{np()});function hv(r){return cl(r,"uboStd40",uv,qm)}var dv=p(()=>{$m();jm();lv()});var Sa,fv=p(()=>{P();Vm();np();dv();Sa=class extends Xs{constructor(){super({createUboElements:cv,generateUboSync:hv})}};Sa.extension={type:[b.WebGLSystem],name:"ubo"}});var _l,mv=p(()=>{"use strict";_l=class{constructor(){this.width=-1,this.height=-1,this.msaa=!1,this.msaaRenderBuffer=[]}}});var bl,pv=p(()=>{Ge();ge();ms();Hs();mv();bl=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 _l;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:G("[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 va,gv=p(()=>{P();Km();pv();va=class extends Ks{constructor(e){super(e),this.adaptor=new bl,this.adaptor.init(e,this)}};va.extension={type:[b.WebGLSystem],name:"renderTarget"}});function xv(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 Jr){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 _v=p(()=>{ul();rt();et()});var yl,bv=p(()=>{"use strict";yl=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 op(r,e,t){let i=r.createShader(e);return r.shaderSource(i,t),r.compileShader(i),i}var yv=p(()=>{"use strict"});function ap(r){let e=new Array(r);for(let t=0;t<e.length;t++)e[t]=!1;return e}function Tl(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 ap(2*e);case"bvec3":return ap(3*e);case"bvec4":return ap(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 cp=p(()=>{"use strict"});function up(r,e){if(!wl){let t=Object.keys(Tv);wl={};for(let i=0;i<t.length;++i){let s=t[i];wl[r[s]]=Tv[s]}}return wl[e]}function wv(r,e){let t=up(r,e);return $P[t]||"float32"}var wl,Tv,$P,lp=p(()=>{"use strict";wl=null,Tv={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"},$P={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 Sv(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=wv(e,a.type);i[a.name]={location:0,format:c,stride:ct(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 vv=p(()=>{Pi();lp()});function Cv(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 Ev=p(()=>{"use strict"});function kv(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=up(e,n.type);t[o]={name:o,index:s,type:c,size:n.size,isArray:a,value:Tl(c,n.size)}}return t}var Av=p(()=>{cp();lp()});function Pv(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 Bv(r,e,t,i){r.getProgramParameter(e,r.LINK_STATUS)||(r.getShaderParameter(t,r.COMPILE_STATUS)||Pv(r,t),r.getShaderParameter(i,r.COMPILE_STATUS)||Pv(r,i),console.error("PixiJS Error: Could not initialize shader."),r.getProgramInfoLog(e)!==""&&console.warn("PixiJS Warning: gl.getProgramInfoLog()",r.getProgramInfoLog(e)))}var Rv=p(()=>{"use strict"});function Dv(r,e){let t=op(r,r.VERTEX_SHADER,e.vertex),i=op(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"?G("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)||Bv(r,s,t,i),e._attributeData=Sv(s,r,!/^[ \t]*#[ \t]*version[ \t]+300[ \t]+es[ \t]*$/m.test(e.vertex)),e._uniformData=kv(s,r),e._uniformBlockData=Cv(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:Tl(u.type,u.size)}}return new yl(s,o)}var Mv=p(()=>{ge();bv();yv();cp();vv();Ev();Av();Rv()});var Sl,Ca,Iv=p(()=>{P();_v();Mv();Sl={textureCount:0,blockIndex:0},Ca=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;Sl.textureCount=0,Sl.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,Sl)}updateUniformGroup(e){this._renderer.uniformGroup.updateUniformGroup(e,this._activeProgram,Sl)}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]=Dv(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 xv(e,t)}resetState(){this._activeProgram=null}};Ca.extension={type:[b.WebGLSystem],name:"shader"}});var Fv,Uv,Ov=p(()=>{"use strict";Fv={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);"},Uv={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 Gv(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 Jr&&t.push(`
|
|
1083
|
-
renderer.shader.bindBufferResource(uv.${i}, "${i}");
|
|
1084
|
-
`);continue}let s=r.uniformStructures[i],n=!1;for(let o=0;o<kr.length;o++){let a=kr[o];if(s.type===a.type&&a.test(s)){t.push(`name = "${i}";`,kr[o].uniform),n=!0;break}}if(!n){let a=(s.size===1?Fv:Uv)[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 Nv=p(()=>{ul();rt();Wm();Ov()});var Ea,Lv=p(()=>{P();Nv();Ea=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 Gv(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}};Ea.extension={type:[b.WebGLSystem],name:"uniformGroup"}});function zv(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 Vv=p(()=>{ve()});var qP,jP,XP,YP,KP,QP,Hv,Wv,$v=p(()=>{P();Ot();Vv();qP=0,jP=1,XP=2,YP=3,KP=4,QP=5,Hv=class hp{constructor(e){this._invertFrontFace=!1,this.gl=null,this.stateId=0,this.polygonOffset=0,this.blendMode="none",this._blendEq=!1,this.map=[],this.map[qP]=this.setBlend,this.map[jP]=this.setOffset,this.map[XP]=this.setCullFace,this.map[YP]=this.setDepthTest,this.map[KP]=this.setFrontFace,this.map[QP]=this.setDepthMask,this.checks=[],this.defaultState=Ae.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=zv(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(hp._checkBlendMode,e),this.gl[e?"enable":"disable"](this.gl.BLEND)}setOffset(e){this._updateCheck(hp._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}};Hv.extension={type:[b.WebGLSystem],name:"state"};Wv=Hv});var vl,qv=p(()=>{rp();vl=class{constructor(e){this.target=tp.TEXTURE_2D,this.texture=e,this.width=-1,this.height=-1,this.type=re.UNSIGNED_BYTE,this.internalFormat=xl.RGBA,this.format=xl.RGBA,this.samplerType=0}}});var jv,Xv=p(()=>{"use strict";jv={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 ZP,Yv,Kv=p(()=>{"use strict";ZP={"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},Yv={id:"compressed",upload(r,e,t){t.pixelStorei(t.UNPACK_ALIGNMENT,4);let i=r.pixelWidth,s=r.pixelHeight,n=!!ZP[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 Cl,dp=p(()=>{"use strict";Cl={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 Qv,Zv=p(()=>{dp();Qv={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}Cl.upload(r,e,t,i)}}});var fp,Jv,El,e1,t1=p(()=>{"use strict";fp={linear:9729,nearest:9728},Jv={linear:{linear:9987,nearest:9985},nearest:{linear:9986,nearest:9984}},El={"clamp-to-edge":33071,repeat:10497,"mirror-repeat":33648},e1={never:512,less:513,equal:514,"less-equal":515,greater:516,"not-equal":517,"greater-equal":518,always:519}});function mp(r,e,t,i,s,n,o,a){let c=n;if(!a||r.addressModeU!=="repeat"||r.addressModeV!=="repeat"||r.addressModeW!=="repeat"){let u=El[o?"clamp-to-edge":r.addressModeU],l=El[o?"clamp-to-edge":r.addressModeV],h=El[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,fp[r.magFilter]),t){if(!a||r.mipmapFilter!=="linear"){let u=Jv[r.minFilter][r.mipmapFilter];e[s](c,e.TEXTURE_MIN_FILTER,u)}}else e[s](c,e.TEXTURE_MIN_FILTER,fp[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,e1[r.compare])}var r1=p(()=>{t1()});function i1(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 s1=p(()=>{"use strict"});function n1(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 o1=p(()=>{ve()});function a1(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 c1=p(()=>{"use strict"});var JP,ka,u1=p(()=>{ve();P();le();qv();Xv();Kv();dp();Zv();r1();s1();o1();c1();JP=4,ka=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:Cl,buffer:jv,video:Qv,compressed:Yv},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=n1(e,this._renderer.context.extensions),this._mapFormatToType=a1(e),this._mapFormatToFormat=i1(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(D.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=D.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 vl(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,mp(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,mp(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(JP*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(D.EMPTY.source),this._boundSamplers=Object.create(null);let e=this._gl;this._premultiplyAlpha=!1,e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,this._premultiplyAlpha)}};ka.extension={type:[b.WebGLSystem],name:"texture"}});var f1={};yg(f1,{WebGLRenderer:()=>pp});var eB,tB,rB,l1,h1,d1,pp,m1=p(()=>{P();VS();HS();WS();Do();zm();Jt();jS();KS();ev();iv();sv();nv();ov();av();fv();gv();Iv();Lv();$v();u1();eB=[...ol,Sa,rv,YS,Ta,xa,ka,va,_a,Ea,Ca,ya,Wv,wa,ba],tB=[...al],rB=[pa,ma,fa],l1=[],h1=[],d1=[];O.handleByNamedList(b.WebGLSystem,l1);O.handleByNamedList(b.WebGLPipes,h1);O.handleByNamedList(b.WebGLPipesAdaptor,d1);O.add(...eB,...tB,...rB);pp=class extends Zr{constructor(){let e={name:"webgl",type:Me.WEBGL,systems:l1,renderPipes:h1,renderPipeAdaptors:d1};super(e)}}});var Aa=Or(Qs=>{"use strict";function iB(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 xp(r,e){return e===void 0&&(e=Object),e&&typeof e.freeze=="function"?e.freeze(r):r}function sB(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 g1=xp({HTML:"text/html",isHTML:function(r){return r===g1.HTML},XML_APPLICATION:"application/xml",XML_TEXT:"text/xml",XML_XHTML_APPLICATION:"application/xhtml+xml",XML_SVG_IMAGE:"image/svg+xml"}),x1=xp({HTML:"http://www.w3.org/1999/xhtml",isHTML:function(r){return r===x1.HTML},SVG:"http://www.w3.org/2000/svg",XML:"http://www.w3.org/XML/1998/namespace",XMLNS:"http://www.w3.org/2000/xmlns/"});Qs.assign=sB;Qs.find=iB;Qs.freeze=xp;Qs.MIME_TYPE=g1;Qs.NAMESPACE=x1});var Ap=Or(ti=>{var C1=Aa(),nr=C1.find,Pa=C1.NAMESPACE;function nB(r){return r!==""}function oB(r){return r?r.split(/[\t\n\f\r ]+/).filter(nB):[]}function aB(r,e){return r.hasOwnProperty(e)||(r[e]=!0),r}function _1(r){if(!r)return[];var e=oB(r);return Object.keys(e.reduce(aB,{}))}function cB(r){return function(e){return r&&r.indexOf(e)!==-1}}function Ra(r,e){for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=r[t])}function dt(r,e){var t=r.prototype;if(!(t instanceof e)){let s=function(){};var i=s;s.prototype=e.prototype,s=new s,Ra(t,s),r.prototype=t=s}t.constructor!=r&&(typeof r!="function"&&console.error("unknown Class:"+r),t.constructor=r)}var ft={},Gt=ft.ELEMENT_NODE=1,Js=ft.ATTRIBUTE_NODE=2,kl=ft.TEXT_NODE=3,E1=ft.CDATA_SECTION_NODE=4,k1=ft.ENTITY_REFERENCE_NODE=5,uB=ft.ENTITY_NODE=6,A1=ft.PROCESSING_INSTRUCTION_NODE=7,P1=ft.COMMENT_NODE=8,B1=ft.DOCUMENT_NODE=9,R1=ft.DOCUMENT_TYPE_NODE=10,Pr=ft.DOCUMENT_FRAGMENT_NODE=11,lB=ft.NOTATION_NODE=12,Ye={},ze={},Bie=Ye.INDEX_SIZE_ERR=(ze[1]="Index size error",1),Rie=Ye.DOMSTRING_SIZE_ERR=(ze[2]="DOMString size error",2),ht=Ye.HIERARCHY_REQUEST_ERR=(ze[3]="Hierarchy request error",3),Die=Ye.WRONG_DOCUMENT_ERR=(ze[4]="Wrong document",4),Mie=Ye.INVALID_CHARACTER_ERR=(ze[5]="Invalid character",5),Iie=Ye.NO_DATA_ALLOWED_ERR=(ze[6]="No data allowed",6),Fie=Ye.NO_MODIFICATION_ALLOWED_ERR=(ze[7]="No modification allowed",7),D1=Ye.NOT_FOUND_ERR=(ze[8]="Not found",8),Uie=Ye.NOT_SUPPORTED_ERR=(ze[9]="Not supported",9),b1=Ye.INUSE_ATTRIBUTE_ERR=(ze[10]="Attribute in use",10),Oie=Ye.INVALID_STATE_ERR=(ze[11]="Invalid state",11),Gie=Ye.SYNTAX_ERR=(ze[12]="Syntax error",12),Nie=Ye.INVALID_MODIFICATION_ERR=(ze[13]="Invalid modification",13),Lie=Ye.NAMESPACE_ERR=(ze[14]="Invalid namespace",14),zie=Ye.INVALID_ACCESS_ERR=(ze[15]="Invalid access",15);function Pe(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,Pe);return t.code=r,e&&(this.message=this.message+": "+e),t}Pe.prototype=Error.prototype;Ra(Ye,Pe);function Ar(){}Ar.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++)Zs(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 en(r,e){this._node=r,this._refresh=e,yp(this)}function yp(r){var e=r._node._inc||r._node.ownerDocument._inc;if(r._inc!==e){var t=r._refresh(r._node);if(W1(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];Ra(t,r),r._inc=e}}en.prototype.item=function(r){return yp(this),this[r]||null};dt(en,Ar);function Al(){}function M1(r,e){for(var t=r.length;t--;)if(r[t]===e)return t}function y1(r,e,t,i){if(i?e[M1(e,i)]=t:e[e.length++]=t,r){t.ownerElement=r;var s=r.ownerDocument;s&&(i&&U1(s,r,i),hB(s,r,t))}}function T1(r,e,t){var i=M1(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&&(U1(n,r,t),t.ownerElement=null)}}else throw new Pe(D1,new Error(r.tagName+"@"+t))}Al.prototype={length:0,item:Ar.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 Pe(b1);var t=this.getNamedItem(r.nodeName);return y1(this._ownerElement,this,r,t),t},setNamedItemNS:function(r){var e=r.ownerElement,t;if(e&&e!=this._ownerElement)throw new Pe(b1);return t=this.getNamedItemNS(r.namespaceURI,r.localName),y1(this._ownerElement,this,r,t),t},removeNamedItem:function(r){var e=this.getNamedItem(r);return T1(this._ownerElement,this,e),e},removeNamedItemNS:function(r,e){var t=this.getNamedItemNS(r,e);return T1(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 I1(){}I1.prototype={hasFeature:function(r,e){return!0},createDocument:function(r,e,t){var i=new Da;if(i.implementation=this,i.childNodes=new Ar,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 Rl;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 Pl(this,r,e)},replaceChild:function(r,e){Pl(this,r,e,G1),e&&this.removeChild(e)},removeChild:function(r){return O1(this,r)},appendChild:function(r){return this.insertBefore(r,null)},hasChildNodes:function(){return this.firstChild!=null},cloneNode:function(r){return bp(this.ownerDocument||this,this,r)},normalize:function(){for(var r=this.firstChild;r;){var e=r.nextSibling;e&&e.nodeType==kl&&r.nodeType==kl?(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==Js?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==Js?e.ownerDocument:e.parentNode}return null},isDefaultNamespace:function(r){var e=this.lookupPrefix(r);return e==null}};function F1(r){return r=="<"&&"<"||r==">"&&">"||r=="&"&&"&"||r=='"'&&"""||"&#"+r.charCodeAt()+";"}Ra(ft,ue);Ra(ft,ue.prototype);function Ba(r,e){if(e(r))return!0;if(r=r.firstChild)do if(Ba(r,e))return!0;while(r=r.nextSibling)}function Da(){this.ownerDocument=this}function hB(r,e,t){r&&r._inc++;var i=t.namespaceURI;i===Pa.XMLNS&&(e._nsMap[t.prefix?t.localName:""]=t.value)}function U1(r,e,t,i){r&&r._inc++;var s=t.namespaceURI;s===Pa.XMLNS&&delete e._nsMap[t.prefix?t.localName:""]}function Tp(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 O1(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,Tp(r.ownerDocument,r),e}function dB(r){return r&&(r.nodeType===ue.DOCUMENT_NODE||r.nodeType===ue.DOCUMENT_FRAGMENT_NODE||r.nodeType===ue.ELEMENT_NODE)}function fB(r){return r&&(or(r)||wp(r)||Br(r)||r.nodeType===ue.DOCUMENT_FRAGMENT_NODE||r.nodeType===ue.COMMENT_NODE||r.nodeType===ue.PROCESSING_INSTRUCTION_NODE)}function Br(r){return r&&r.nodeType===ue.DOCUMENT_TYPE_NODE}function or(r){return r&&r.nodeType===ue.ELEMENT_NODE}function wp(r){return r&&r.nodeType===ue.TEXT_NODE}function w1(r,e){var t=r.childNodes||[];if(nr(t,or)||Br(e))return!1;var i=nr(t,Br);return!(e&&i&&t.indexOf(i)>t.indexOf(e))}function S1(r,e){var t=r.childNodes||[];function i(n){return or(n)&&n!==e}if(nr(t,i))return!1;var s=nr(t,Br);return!(e&&s&&t.indexOf(s)>t.indexOf(e))}function mB(r,e,t){if(!dB(r))throw new Pe(ht,"Unexpected parent node type "+r.nodeType);if(t&&t.parentNode!==r)throw new Pe(D1,"child not in parent");if(!fB(e)||Br(e)&&r.nodeType!==ue.DOCUMENT_NODE)throw new Pe(ht,"Unexpected node type "+e.nodeType+" for parent node type "+r.nodeType)}function pB(r,e,t){var i=r.childNodes||[],s=e.childNodes||[];if(e.nodeType===ue.DOCUMENT_FRAGMENT_NODE){var n=s.filter(or);if(n.length>1||nr(s,wp))throw new Pe(ht,"More than one element or text in fragment");if(n.length===1&&!w1(r,t))throw new Pe(ht,"Element in fragment can not be inserted before doctype")}if(or(e)&&!w1(r,t))throw new Pe(ht,"Only one element can be added and only after doctype");if(Br(e)){if(nr(i,Br))throw new Pe(ht,"Only one doctype is allowed");var o=nr(i,or);if(t&&i.indexOf(o)<i.indexOf(t))throw new Pe(ht,"Doctype can only be inserted before an element");if(!t&&o)throw new Pe(ht,"Doctype can not be appended since element is present")}}function G1(r,e,t){var i=r.childNodes||[],s=e.childNodes||[];if(e.nodeType===ue.DOCUMENT_FRAGMENT_NODE){var n=s.filter(or);if(n.length>1||nr(s,wp))throw new Pe(ht,"More than one element or text in fragment");if(n.length===1&&!S1(r,t))throw new Pe(ht,"Element in fragment can not be inserted before doctype")}if(or(e)&&!S1(r,t))throw new Pe(ht,"Only one element can be added and only after doctype");if(Br(e)){let c=function(u){return Br(u)&&u!==t};var a=c;if(nr(i,c))throw new Pe(ht,"Only one doctype is allowed");var o=nr(i,or);if(t&&i.indexOf(o)<i.indexOf(t))throw new Pe(ht,"Doctype can only be inserted before an element")}}function Pl(r,e,t,i){mB(r,e,t),r.nodeType===ue.DOCUMENT_NODE&&(i||pB)(r,e,t);var s=e.parentNode;if(s&&s.removeChild(e),e.nodeType===Pr){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 Tp(r.ownerDocument||r,r),e.nodeType==Pr&&(e.firstChild=e.lastChild=null),e}function gB(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,Tp(r.ownerDocument,r,e),e}Da.prototype={nodeName:"#document",nodeType:B1,doctype:null,documentElement:null,_inc:1,insertBefore:function(r,e){if(r.nodeType==Pr){for(var t=r.firstChild;t;){var i=t.nextSibling;this.insertBefore(t,e),t=i}return r}return Pl(this,r,e),r.ownerDocument=this,this.documentElement===null&&r.nodeType===Gt&&(this.documentElement=r),r},removeChild:function(r){return this.documentElement==r&&(this.documentElement=null),O1(this,r)},replaceChild:function(r,e){Pl(this,r,e,G1),r.ownerDocument=this,e&&this.removeChild(e),or(r)&&(this.documentElement=r)},importNode:function(r,e){return H1(this,r,e)},getElementById:function(r){var e=null;return Ba(this.documentElement,function(t){if(t.nodeType==Gt&&t.getAttribute("id")==r)return e=t,!0}),e},getElementsByClassName:function(r){var e=_1(r);return new en(this,function(t){var i=[];return e.length>0&&Ba(t.documentElement,function(s){if(s!==t&&s.nodeType===Gt){var n=s.getAttribute("class");if(n){var o=r===n;if(!o){var a=_1(n);o=e.every(cB(a))}o&&i.push(s)}}}),i})},createElement:function(r){var e=new Gi;e.ownerDocument=this,e.nodeName=r,e.tagName=r,e.localName=r,e.childNodes=new Ar;var t=e.attributes=new Al;return t._ownerElement=e,e},createDocumentFragment:function(){var r=new Dl;return r.ownerDocument=this,r.childNodes=new Ar,r},createTextNode:function(r){var e=new Sp;return e.ownerDocument=this,e.appendData(r),e},createComment:function(r){var e=new vp;return e.ownerDocument=this,e.appendData(r),e},createCDATASection:function(r){var e=new Cp;return e.ownerDocument=this,e.appendData(r),e},createProcessingInstruction:function(r,e){var t=new kp;return t.ownerDocument=this,t.tagName=t.nodeName=t.target=r,t.nodeValue=t.data=e,t},createAttribute:function(r){var e=new Bl;return e.ownerDocument=this,e.name=r,e.nodeName=r,e.localName=r,e.specified=!0,e},createEntityReference:function(r){var e=new Ep;return e.ownerDocument=this,e.nodeName=r,e},createElementNS:function(r,e){var t=new Gi,i=e.split(":"),s=t.attributes=new Al;return t.childNodes=new Ar,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 Bl,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}};dt(Da,ue);function Gi(){this._nsMap={}}Gi.prototype={nodeType:Gt,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===Pr?this.insertBefore(r,null):gB(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 en(this,function(e){var t=[];return Ba(e,function(i){i!==e&&i.nodeType==Gt&&(r==="*"||i.tagName==r)&&t.push(i)}),t})},getElementsByTagNameNS:function(r,e){return new en(this,function(t){var i=[];return Ba(t,function(s){s!==t&&s.nodeType===Gt&&(r==="*"||s.namespaceURI===r)&&(e==="*"||s.localName==e)&&i.push(s)}),i})}};Da.prototype.getElementsByTagName=Gi.prototype.getElementsByTagName;Da.prototype.getElementsByTagNameNS=Gi.prototype.getElementsByTagNameNS;dt(Gi,ue);function Bl(){}Bl.prototype.nodeType=Js;dt(Bl,ue);function Ma(){}Ma.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[ht])},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}};dt(Ma,ue);function Sp(){}Sp.prototype={nodeName:"#text",nodeType:kl,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}};dt(Sp,Ma);function vp(){}vp.prototype={nodeName:"#comment",nodeType:P1};dt(vp,Ma);function Cp(){}Cp.prototype={nodeName:"#cdata-section",nodeType:E1};dt(Cp,Ma);function Rl(){}Rl.prototype.nodeType=R1;dt(Rl,ue);function N1(){}N1.prototype.nodeType=lB;dt(N1,ue);function L1(){}L1.prototype.nodeType=uB;dt(L1,ue);function Ep(){}Ep.prototype.nodeType=k1;dt(Ep,ue);function Dl(){}Dl.prototype.nodeName="#document-fragment";Dl.prototype.nodeType=Pr;dt(Dl,ue);function kp(){}kp.prototype.nodeType=A1;dt(kp,ue);function z1(){}z1.prototype.serializeToString=function(r,e,t){return V1.call(r,e,t)};ue.prototype.toString=V1;function V1(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 Zs(this,t,r,e,o),t.join("")}function v1(r,e,t){var i=r.prefix||"",s=r.namespaceURI;if(!s||i==="xml"&&s===Pa.XML||s===Pa.XMLNS)return!1;for(var n=t.length;n--;){var o=t[n];if(o.prefix===i)return o.namespace!==s}return!0}function _p(r,e,t){r.push(" ",e,'="',t.replace(/[<>&"\t\n\r]/g,F1),'"')}function Zs(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 Gt:var n=r.attributes,o=n.length,_=r.firstChild,a=r.tagName;t=Pa.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(v1(m,t,s)){var x=m.prefix||"",g=m.namespaceURI;_p(e,x?"xmlns:"+x:"xmlns",g),s.push({prefix:x,namespace:g})}Zs(m,e,t,i,s)}if(a===c&&v1(r,t,s)){var x=r.prefix||"",g=r.namespaceURI;_p(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):Zs(_,e,t,i,s.slice()),_=_.nextSibling;else for(;_;)Zs(_,e,t,i,s.slice()),_=_.nextSibling;e.push("</",c,">")}else e.push("/>");return;case B1:case Pr:for(var _=r.firstChild;_;)Zs(_,e,t,i,s.slice()),_=_.nextSibling;return;case Js:return _p(e,r.name,r.value);case kl:return e.push(r.data.replace(/[<&>]/g,F1));case E1:return e.push("<![CDATA[",r.data,"]]>");case P1:return e.push("<!--",r.data,"-->");case R1: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 A1:return e.push("<?",r.target," ",r.data,"?>");case k1:return e.push("&",r.nodeName,";");default:e.push("??",r.nodeName)}}function H1(r,e,t){var i;switch(e.nodeType){case Gt:i=e.cloneNode(!1),i.ownerDocument=r;case Pr:break;case Js:t=!0;break}if(i||(i=e.cloneNode(!1)),i.ownerDocument=r,i.parentNode=null,t)for(var s=e.firstChild;s;)i.appendChild(H1(r,s,t)),s=s.nextSibling;return i}function bp(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 Ar),i.ownerDocument=r,i.nodeType){case Gt:var o=e.attributes,a=i.attributes=new Al,c=o.length;a._ownerElement=i;for(var u=0;u<c;u++)i.setAttributeNode(bp(r,o.item(u),!0));break;case Js:t=!0}if(t)for(var l=e.firstChild;l;)i.appendChild(bp(r,l,t)),l=l.nextSibling;return i}function W1(r,e,t){r[e]=t}try{if(Object.defineProperty){let r=function(e){switch(e.nodeType){case Gt:case Pr: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}};xB=r,Object.defineProperty(en.prototype,"length",{get:function(){return yp(this),this.$$length}}),Object.defineProperty(ue.prototype,"textContent",{get:function(){return r(this)},set:function(e){switch(this.nodeType){case Gt:case Pr: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}}}),W1=function(e,t,i){e["$$"+t]=i}}}catch{}var xB;ti.DocumentType=Rl;ti.DOMException=Pe;ti.DOMImplementation=I1;ti.Element=Gi;ti.Node=ue;ti.NodeList=Ar;ti.XMLSerializer=z1});var q1=Or(Ia=>{"use strict";var $1=Aa().freeze;Ia.XML_ENTITIES=$1({amp:"&",apos:"'",gt:">",lt:"<",quot:'"'});Ia.HTML_ENTITIES=$1({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"});Ia.entityMap=Ia.HTML_ENTITIES});var eC=Or(Bp=>{var Ga=Aa().NAMESPACE,Pp=/[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]/,j1=new RegExp("[\\-\\.0-9"+Pp.source.slice(1,-1)+"\\u00B7\\u0300-\\u036F\\u203F-\\u2040]"),X1=new RegExp("^"+Pp.source+j1.source+"*(?::"+Pp.source+j1.source+"*)?$"),Fa=0,ri=1,tn=2,Ua=3,rn=4,sn=5,Oa=6,Ml=7;function nn(r,e){this.message=r,this.locator=e,Error.captureStackTrace&&Error.captureStackTrace(this,nn)}nn.prototype=new Error;nn.prototype.name=nn.name;function Q1(){}Q1.prototype={parse:function(r,e,t){var i=this.domBuilder;i.startDocument(),Z1(e,e={}),_B(r,e,t,i,this.errorHandler),i.endDocument()}};function _B(r,e,t,i,s){function n(U){if(U>65535){U-=65536;var H=55296+(U>>10),Ch=56320+(U&1023);return String.fromCharCode(H,Ch)}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 M in C)Object.prototype.hasOwnProperty.call(C,M)&&i.endPrefixMapping(M);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=SB(r,g,i);break;case"!":f&&c(g),k=wB(r,g,i,s);break;default:f&&c(g);var A=new J1,B=d[d.length-1].currentNSMap,k=bB(r,g,A,B,o,s),L=A.length;if(!A.closed&&TB(r,k,A.tagName,m)&&(A.closed=!0,t.nbsp||s.warning("unclosed xml attribute")),f&&L){for(var j=Y1(f,{}),be=0;be<L;be++){var wt=A[be];c(wt.offset),wt.locator=Y1(f,{})}i.locator=j,K1(A,i,B)&&d.push(A),i.locator=f}else K1(A,i,B)&&d.push(A);Ga.isHTML(A.uri)&&!A.closed?k=yB(r,k,A.tagName,o,i):k++}}catch(U){if(U instanceof nn)throw U;s.error("element parse error: "+U),k=-1}k>x?x=k:a(Math.max(g,x)+1)}}function Y1(r,e){return e.lineNumber=r.lineNumber,e.columnNumber=r.columnNumber,e}function bB(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=Fa;;){var h=r.charAt(u);switch(h){case"=":if(l===ri)a=r.slice(e,u),l=Ua;else if(l===tn)l=Ua;else throw new Error("attribute equal must after attrName");break;case"'":case'"':if(l===Ua||l===ri)if(l===ri&&(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=sn;else throw new Error("attribute value no end '"+h+"' match");else if(l==rn)c=r.slice(e,u),o(a,c,e),n.warning('attribute "'+a+'" missed start quot('+h+")!!"),e=u+1,l=sn;else throw new Error('attribute value must after "="');break;case"/":switch(l){case Fa:t.setTagName(r.slice(e,u));case sn:case Oa:case Ml:l=Ml,t.closed=!0;case rn:case ri:break;case tn:t.closed=!0;break;default:throw new Error("attribute invalid close char('/')")}break;case"":return n.error("unexpected end of input"),l==Fa&&t.setTagName(r.slice(e,u)),u;case">":switch(l){case Fa:t.setTagName(r.slice(e,u));case sn:case Oa:case Ml:break;case rn:case ri:c=r.slice(e,u),c.slice(-1)==="/"&&(t.closed=!0,c=c.slice(0,-1));case tn:l===tn&&(c=a),l==rn?(n.warning('attribute "'+c+'" missed quot(")!'),o(a,c,e)):((!Ga.isHTML(i[""])||!c.match(/^(?:disabled|checked|selected)$/i))&&n.warning('attribute "'+c+'" missed value!! "'+c+'" instead!!'),o(c,c,e));break;case Ua:throw new Error("attribute value missed!!")}return u;case"\x80":h=" ";default:if(h<=" ")switch(l){case Fa:t.setTagName(r.slice(e,u)),l=Oa;break;case ri:a=r.slice(e,u),l=tn;break;case rn:var c=r.slice(e,u);n.warning('attribute "'+c+'" missed quot(")!!'),o(a,c,e);case sn:l=Oa;break}else switch(l){case tn:var f=t.tagName;(!Ga.isHTML(i[""])||!a.match(/^(?:disabled|checked|selected)$/i))&&n.warning('attribute "'+a+'" missed value!! "'+a+'" instead2!!'),o(a,a,e),e=u,l=ri;break;case sn:n.warning('attribute space is required"'+a+'"!!');case Oa:l=ri,e=u;break;case Ua:l=rn,e=u;break;case Ml:throw new Error("elements closed character '/' and '>' must be connected to")}}u++}}function K1(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={},Z1(t,t={})),t[l]=s[l]=a,n.uri=Ga.XMLNS,e.startPrefixMapping(l,a))}for(var h=r.length;h--;){n=r[h];var c=n.prefix;c&&(c==="xml"&&(n.uri=Ga.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 yB(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 TB(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 Z1(r,e){for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=r[t])}function wB(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=vB(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 SB(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 J1(){this.attributeNames={}}J1.prototype={setTagName:function(r){if(!X1.test(r))throw new Error("invalid tagName:"+r);this.tagName=r},addValue:function(r,e,t){if(!X1.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 vB(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}Bp.XMLReader=Q1;Bp.ParseError=nn});var aC=Or(Fl=>{var CB=Aa(),EB=Ap(),tC=q1(),sC=eC(),kB=EB.DOMImplementation,rC=CB.NAMESPACE,AB=sC.ParseError,PB=sC.XMLReader;function nC(r){return r.replace(/\r[\n\u0085]/g,`
|
|
1
|
+
import"./chunk-WCZ2O3UN.js";import"./chunk-3L3MB5NY.js";import"./chunk-BFBY7VYB.js";import"./chunk-N6HD4WYJ.js";import"./chunk-KM6O72WE.js";import"./chunk-4HAYG3N5.js";import{Q as ms,a as Kt,b as ml,c as zi,d as Lo}from"./chunk-42BQ4XKE.js";var Qr=Kt(er=>{"use strict";function vl(t,e,r){if(r===void 0&&(r=Array.prototype),t&&typeof r.find=="function")return r.find.call(t,e);for(var i=0;i<t.length;i++)if(Object.prototype.hasOwnProperty.call(t,i)){var n=t[i];if(e.call(void 0,n,i,t))return n}}function xs(t,e){return e===void 0&&(e=Object),e&&typeof e.freeze=="function"?e.freeze(t):t}function _l(t,e){if(t===null||typeof t!="object")throw new TypeError("target is not an object");for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t}var ua=xs({HTML:"text/html",isHTML:function(t){return t===ua.HTML},XML_APPLICATION:"application/xml",XML_TEXT:"text/xml",XML_XHTML_APPLICATION:"application/xhtml+xml",XML_SVG_IMAGE:"image/svg+xml"}),la=xs({HTML:"http://www.w3.org/1999/xhtml",isHTML:function(t){return t===la.HTML},SVG:"http://www.w3.org/2000/svg",XML:"http://www.w3.org/XML/1998/namespace",XMLNS:"http://www.w3.org/2000/xmlns/"});er.assign=_l;er.find=vl;er.freeze=xs;er.MIME_TYPE=ua;er.NAMESPACE=la});var Ds=Kt(ft=>{var wa=Qr(),Ue=wa.find,Xr=wa.NAMESPACE;function Pl(t){return t!==""}function Dl(t){return t?t.split(/[\t\n\f\r ]+/).filter(Pl):[]}function Il(t,e){return t.hasOwnProperty(e)||(t[e]=!0),t}function da(t){if(!t)return[];var e=Dl(t);return Object.keys(e.reduce(Il,{}))}function Fl(t){return function(e){return t&&t.indexOf(e)!==-1}}function Yr(t,e){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}function pe(t,e){var r=t.prototype;if(!(r instanceof e)){let n=function(){};var i=n;n.prototype=e.prototype,n=new n,Yr(r,n),t.prototype=r=n}r.constructor!=t&&(typeof t!="function"&&console.error("unknown Class:"+t),r.constructor=t)}var ge={},_e=ge.ELEMENT_NODE=1,rr=ge.ATTRIBUTE_NODE=2,rn=ge.TEXT_NODE=3,xa=ge.CDATA_SECTION_NODE=4,ya=ge.ENTITY_REFERENCE_NODE=5,Bl=ge.ENTITY_NODE=6,Ta=ge.PROCESSING_INSTRUCTION_NODE=7,ka=ge.COMMENT_NODE=8,Sa=ge.DOCUMENT_NODE=9,Ca=ge.DOCUMENT_TYPE_NODE=10,Ye=ge.DOCUMENT_FRAGMENT_NODE=11,Rl=ge.NOTATION_NODE=12,le={},oe={},n0=le.INDEX_SIZE_ERR=(oe[1]="Index size error",1),s0=le.DOMSTRING_SIZE_ERR=(oe[2]="DOMString size error",2),he=le.HIERARCHY_REQUEST_ERR=(oe[3]="Hierarchy request error",3),o0=le.WRONG_DOCUMENT_ERR=(oe[4]="Wrong document",4),a0=le.INVALID_CHARACTER_ERR=(oe[5]="Invalid character",5),c0=le.NO_DATA_ALLOWED_ERR=(oe[6]="No data allowed",6),u0=le.NO_MODIFICATION_ALLOWED_ERR=(oe[7]="No modification allowed",7),Ea=le.NOT_FOUND_ERR=(oe[8]="Not found",8),l0=le.NOT_SUPPORTED_ERR=(oe[9]="Not supported",9),fa=le.INUSE_ATTRIBUTE_ERR=(oe[10]="Attribute in use",10),d0=le.INVALID_STATE_ERR=(oe[11]="Invalid state",11),f0=le.SYNTAX_ERR=(oe[12]="Syntax error",12),m0=le.INVALID_MODIFICATION_ERR=(oe[13]="Invalid modification",13),h0=le.NAMESPACE_ERR=(oe[14]="Invalid namespace",14),p0=le.INVALID_ACCESS_ERR=(oe[15]="Invalid access",15);function K(t,e){if(e instanceof Error)var r=e;else r=this,Error.call(this,oe[t]),this.message=oe[t],Error.captureStackTrace&&Error.captureStackTrace(this,K);return r.code=t,e&&(this.message=this.message+": "+e),r}K.prototype=Error.prototype;Yr(le,K);function Ke(){}Ke.prototype={length:0,item:function(t){return t>=0&&t<this.length?this[t]:null},toString:function(t,e){for(var r=[],i=0;i<this.length;i++)tr(this[i],r,t,e);return r.join("")},filter:function(t){return Array.prototype.filter.call(this,t)},indexOf:function(t){return Array.prototype.indexOf.call(this,t)}};function ir(t,e){this._node=t,this._refresh=e,ks(this)}function ks(t){var e=t._node._inc||t._node.ownerDocument._inc;if(t._inc!==e){var r=t._refresh(t._node);if(Ma(t,"length",r.length),!t.$$length||r.length<t.$$length)for(var i=r.length;i in t;i++)Object.prototype.hasOwnProperty.call(t,i)&&delete t[i];Yr(r,t),t._inc=e}}ir.prototype.item=function(t){return ks(this),this[t]||null};pe(ir,Ke);function nn(){}function Aa(t,e){for(var r=t.length;r--;)if(t[r]===e)return r}function ma(t,e,r,i){if(i?e[Aa(e,i)]=r:e[e.length++]=r,t){r.ownerElement=t;var n=t.ownerDocument;n&&(i&&Pa(n,t,i),Ol(n,t,r))}}function ha(t,e,r){var i=Aa(e,r);if(i>=0){for(var n=e.length-1;i<n;)e[i]=e[++i];if(e.length=n,t){var s=t.ownerDocument;s&&(Pa(s,t,r),r.ownerElement=null)}}else throw new K(Ea,new Error(t.tagName+"@"+r))}nn.prototype={length:0,item:Ke.prototype.item,getNamedItem:function(t){for(var e=this.length;e--;){var r=this[e];if(r.nodeName==t)return r}},setNamedItem:function(t){var e=t.ownerElement;if(e&&e!=this._ownerElement)throw new K(fa);var r=this.getNamedItem(t.nodeName);return ma(this._ownerElement,this,t,r),r},setNamedItemNS:function(t){var e=t.ownerElement,r;if(e&&e!=this._ownerElement)throw new K(fa);return r=this.getNamedItemNS(t.namespaceURI,t.localName),ma(this._ownerElement,this,t,r),r},removeNamedItem:function(t){var e=this.getNamedItem(t);return ha(this._ownerElement,this,e),e},removeNamedItemNS:function(t,e){var r=this.getNamedItemNS(t,e);return ha(this._ownerElement,this,r),r},getNamedItemNS:function(t,e){for(var r=this.length;r--;){var i=this[r];if(i.localName==e&&i.namespaceURI==t)return i}return null}};function va(){}va.prototype={hasFeature:function(t,e){return!0},createDocument:function(t,e,r){var i=new Zr;if(i.implementation=this,i.childNodes=new Ke,i.doctype=r||null,r&&i.appendChild(r),e){var n=i.createElementNS(t,e);i.appendChild(n)}return i},createDocumentType:function(t,e,r){var i=new an;return i.name=t,i.nodeName=t,i.publicId=e||"",i.systemId=r||"",i}};function H(){}H.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(t,e){return sn(this,t,e)},replaceChild:function(t,e){sn(this,t,e,Ia),e&&this.removeChild(e)},removeChild:function(t){return Da(this,t)},appendChild:function(t){return this.insertBefore(t,null)},hasChildNodes:function(){return this.firstChild!=null},cloneNode:function(t){return Ts(this.ownerDocument||this,this,t)},normalize:function(){for(var t=this.firstChild;t;){var e=t.nextSibling;e&&e.nodeType==rn&&t.nodeType==rn?(this.removeChild(e),t.appendData(e.data)):(t.normalize(),t=e)}},isSupported:function(t,e){return this.ownerDocument.implementation.hasFeature(t,e)},hasAttributes:function(){return this.attributes.length>0},lookupPrefix:function(t){for(var e=this;e;){var r=e._nsMap;if(r){for(var i in r)if(Object.prototype.hasOwnProperty.call(r,i)&&r[i]===t)return i}e=e.nodeType==rr?e.ownerDocument:e.parentNode}return null},lookupNamespaceURI:function(t){for(var e=this;e;){var r=e._nsMap;if(r&&Object.prototype.hasOwnProperty.call(r,t))return r[t];e=e.nodeType==rr?e.ownerDocument:e.parentNode}return null},isDefaultNamespace:function(t){var e=this.lookupPrefix(t);return e==null}};function _a(t){return t=="<"&&"<"||t==">"&&">"||t=="&"&&"&"||t=='"'&&"""||"&#"+t.charCodeAt()+";"}Yr(ge,H);Yr(ge,H.prototype);function Kr(t,e){if(e(t))return!0;if(t=t.firstChild)do if(Kr(t,e))return!0;while(t=t.nextSibling)}function Zr(){this.ownerDocument=this}function Ol(t,e,r){t&&t._inc++;var i=r.namespaceURI;i===Xr.XMLNS&&(e._nsMap[r.prefix?r.localName:""]=r.value)}function Pa(t,e,r,i){t&&t._inc++;var n=r.namespaceURI;n===Xr.XMLNS&&delete e._nsMap[r.prefix?r.localName:""]}function Ss(t,e,r){if(t&&t._inc){t._inc++;var i=e.childNodes;if(r)i[i.length++]=r;else{for(var n=e.firstChild,s=0;n;)i[s++]=n,n=n.nextSibling;i.length=s,delete i[i.length]}}}function Da(t,e){var r=e.previousSibling,i=e.nextSibling;return r?r.nextSibling=i:t.firstChild=i,i?i.previousSibling=r:t.lastChild=r,e.parentNode=null,e.previousSibling=null,e.nextSibling=null,Ss(t.ownerDocument,t),e}function Nl(t){return t&&(t.nodeType===H.DOCUMENT_NODE||t.nodeType===H.DOCUMENT_FRAGMENT_NODE||t.nodeType===H.ELEMENT_NODE)}function Ml(t){return t&&(ze(t)||Cs(t)||Ze(t)||t.nodeType===H.DOCUMENT_FRAGMENT_NODE||t.nodeType===H.COMMENT_NODE||t.nodeType===H.PROCESSING_INSTRUCTION_NODE)}function Ze(t){return t&&t.nodeType===H.DOCUMENT_TYPE_NODE}function ze(t){return t&&t.nodeType===H.ELEMENT_NODE}function Cs(t){return t&&t.nodeType===H.TEXT_NODE}function pa(t,e){var r=t.childNodes||[];if(Ue(r,ze)||Ze(e))return!1;var i=Ue(r,Ze);return!(e&&i&&r.indexOf(i)>r.indexOf(e))}function ga(t,e){var r=t.childNodes||[];function i(s){return ze(s)&&s!==e}if(Ue(r,i))return!1;var n=Ue(r,Ze);return!(e&&n&&r.indexOf(n)>r.indexOf(e))}function Ul(t,e,r){if(!Nl(t))throw new K(he,"Unexpected parent node type "+t.nodeType);if(r&&r.parentNode!==t)throw new K(Ea,"child not in parent");if(!Ml(e)||Ze(e)&&t.nodeType!==H.DOCUMENT_NODE)throw new K(he,"Unexpected node type "+e.nodeType+" for parent node type "+t.nodeType)}function zl(t,e,r){var i=t.childNodes||[],n=e.childNodes||[];if(e.nodeType===H.DOCUMENT_FRAGMENT_NODE){var s=n.filter(ze);if(s.length>1||Ue(n,Cs))throw new K(he,"More than one element or text in fragment");if(s.length===1&&!pa(t,r))throw new K(he,"Element in fragment can not be inserted before doctype")}if(ze(e)&&!pa(t,r))throw new K(he,"Only one element can be added and only after doctype");if(Ze(e)){if(Ue(i,Ze))throw new K(he,"Only one doctype is allowed");var o=Ue(i,ze);if(r&&i.indexOf(o)<i.indexOf(r))throw new K(he,"Doctype can only be inserted before an element");if(!r&&o)throw new K(he,"Doctype can not be appended since element is present")}}function Ia(t,e,r){var i=t.childNodes||[],n=e.childNodes||[];if(e.nodeType===H.DOCUMENT_FRAGMENT_NODE){var s=n.filter(ze);if(s.length>1||Ue(n,Cs))throw new K(he,"More than one element or text in fragment");if(s.length===1&&!ga(t,r))throw new K(he,"Element in fragment can not be inserted before doctype")}if(ze(e)&&!ga(t,r))throw new K(he,"Only one element can be added and only after doctype");if(Ze(e)){let c=function(u){return Ze(u)&&u!==r};var a=c;if(Ue(i,c))throw new K(he,"Only one doctype is allowed");var o=Ue(i,ze);if(r&&i.indexOf(o)<i.indexOf(r))throw new K(he,"Doctype can only be inserted before an element")}}function sn(t,e,r,i){Ul(t,e,r),t.nodeType===H.DOCUMENT_NODE&&(i||zl)(t,e,r);var n=e.parentNode;if(n&&n.removeChild(e),e.nodeType===Ye){var s=e.firstChild;if(s==null)return e;var o=e.lastChild}else s=o=e;var a=r?r.previousSibling:t.lastChild;s.previousSibling=a,o.nextSibling=r,a?a.nextSibling=s:t.firstChild=s,r==null?t.lastChild=o:r.previousSibling=o;do s.parentNode=t;while(s!==o&&(s=s.nextSibling));return Ss(t.ownerDocument||t,t),e.nodeType==Ye&&(e.firstChild=e.lastChild=null),e}function Vl(t,e){return e.parentNode&&e.parentNode.removeChild(e),e.parentNode=t,e.previousSibling=t.lastChild,e.nextSibling=null,e.previousSibling?e.previousSibling.nextSibling=e:t.firstChild=e,t.lastChild=e,Ss(t.ownerDocument,t,e),e}Zr.prototype={nodeName:"#document",nodeType:Sa,doctype:null,documentElement:null,_inc:1,insertBefore:function(t,e){if(t.nodeType==Ye){for(var r=t.firstChild;r;){var i=r.nextSibling;this.insertBefore(r,e),r=i}return t}return sn(this,t,e),t.ownerDocument=this,this.documentElement===null&&t.nodeType===_e&&(this.documentElement=t),t},removeChild:function(t){return this.documentElement==t&&(this.documentElement=null),Da(this,t)},replaceChild:function(t,e){sn(this,t,e,Ia),t.ownerDocument=this,e&&this.removeChild(e),ze(t)&&(this.documentElement=t)},importNode:function(t,e){return Na(this,t,e)},getElementById:function(t){var e=null;return Kr(this.documentElement,function(r){if(r.nodeType==_e&&r.getAttribute("id")==t)return e=r,!0}),e},getElementsByClassName:function(t){var e=da(t);return new ir(this,function(r){var i=[];return e.length>0&&Kr(r.documentElement,function(n){if(n!==r&&n.nodeType===_e){var s=n.getAttribute("class");if(s){var o=t===s;if(!o){var a=da(s);o=e.every(Fl(a))}o&&i.push(n)}}}),i})},createElement:function(t){var e=new vt;e.ownerDocument=this,e.nodeName=t,e.tagName=t,e.localName=t,e.childNodes=new Ke;var r=e.attributes=new nn;return r._ownerElement=e,e},createDocumentFragment:function(){var t=new cn;return t.ownerDocument=this,t.childNodes=new Ke,t},createTextNode:function(t){var e=new Es;return e.ownerDocument=this,e.appendData(t),e},createComment:function(t){var e=new As;return e.ownerDocument=this,e.appendData(t),e},createCDATASection:function(t){var e=new vs;return e.ownerDocument=this,e.appendData(t),e},createProcessingInstruction:function(t,e){var r=new Ps;return r.ownerDocument=this,r.tagName=r.nodeName=r.target=t,r.nodeValue=r.data=e,r},createAttribute:function(t){var e=new on;return e.ownerDocument=this,e.name=t,e.nodeName=t,e.localName=t,e.specified=!0,e},createEntityReference:function(t){var e=new _s;return e.ownerDocument=this,e.nodeName=t,e},createElementNS:function(t,e){var r=new vt,i=e.split(":"),n=r.attributes=new nn;return r.childNodes=new Ke,r.ownerDocument=this,r.nodeName=e,r.tagName=e,r.namespaceURI=t,i.length==2?(r.prefix=i[0],r.localName=i[1]):r.localName=e,n._ownerElement=r,r},createAttributeNS:function(t,e){var r=new on,i=e.split(":");return r.ownerDocument=this,r.nodeName=e,r.name=e,r.namespaceURI=t,r.specified=!0,i.length==2?(r.prefix=i[0],r.localName=i[1]):r.localName=e,r}};pe(Zr,H);function vt(){this._nsMap={}}vt.prototype={nodeType:_e,hasAttribute:function(t){return this.getAttributeNode(t)!=null},getAttribute:function(t){var e=this.getAttributeNode(t);return e&&e.value||""},getAttributeNode:function(t){return this.attributes.getNamedItem(t)},setAttribute:function(t,e){var r=this.ownerDocument.createAttribute(t);r.value=r.nodeValue=""+e,this.setAttributeNode(r)},removeAttribute:function(t){var e=this.getAttributeNode(t);e&&this.removeAttributeNode(e)},appendChild:function(t){return t.nodeType===Ye?this.insertBefore(t,null):Vl(this,t)},setAttributeNode:function(t){return this.attributes.setNamedItem(t)},setAttributeNodeNS:function(t){return this.attributes.setNamedItemNS(t)},removeAttributeNode:function(t){return this.attributes.removeNamedItem(t.nodeName)},removeAttributeNS:function(t,e){var r=this.getAttributeNodeNS(t,e);r&&this.removeAttributeNode(r)},hasAttributeNS:function(t,e){return this.getAttributeNodeNS(t,e)!=null},getAttributeNS:function(t,e){var r=this.getAttributeNodeNS(t,e);return r&&r.value||""},setAttributeNS:function(t,e,r){var i=this.ownerDocument.createAttributeNS(t,e);i.value=i.nodeValue=""+r,this.setAttributeNode(i)},getAttributeNodeNS:function(t,e){return this.attributes.getNamedItemNS(t,e)},getElementsByTagName:function(t){return new ir(this,function(e){var r=[];return Kr(e,function(i){i!==e&&i.nodeType==_e&&(t==="*"||i.tagName==t)&&r.push(i)}),r})},getElementsByTagNameNS:function(t,e){return new ir(this,function(r){var i=[];return Kr(r,function(n){n!==r&&n.nodeType===_e&&(t==="*"||n.namespaceURI===t)&&(e==="*"||n.localName==e)&&i.push(n)}),i})}};Zr.prototype.getElementsByTagName=vt.prototype.getElementsByTagName;Zr.prototype.getElementsByTagNameNS=vt.prototype.getElementsByTagNameNS;pe(vt,H);function on(){}on.prototype.nodeType=rr;pe(on,H);function Jr(){}Jr.prototype={data:"",substringData:function(t,e){return this.data.substring(t,t+e)},appendData:function(t){t=this.data+t,this.nodeValue=this.data=t,this.length=t.length},insertData:function(t,e){this.replaceData(t,0,e)},appendChild:function(t){throw new Error(oe[he])},deleteData:function(t,e){this.replaceData(t,e,"")},replaceData:function(t,e,r){var i=this.data.substring(0,t),n=this.data.substring(t+e);r=i+r+n,this.nodeValue=this.data=r,this.length=r.length}};pe(Jr,H);function Es(){}Es.prototype={nodeName:"#text",nodeType:rn,splitText:function(t){var e=this.data,r=e.substring(t);e=e.substring(0,t),this.data=this.nodeValue=e,this.length=e.length;var i=this.ownerDocument.createTextNode(r);return this.parentNode&&this.parentNode.insertBefore(i,this.nextSibling),i}};pe(Es,Jr);function As(){}As.prototype={nodeName:"#comment",nodeType:ka};pe(As,Jr);function vs(){}vs.prototype={nodeName:"#cdata-section",nodeType:xa};pe(vs,Jr);function an(){}an.prototype.nodeType=Ca;pe(an,H);function Fa(){}Fa.prototype.nodeType=Rl;pe(Fa,H);function Ba(){}Ba.prototype.nodeType=Bl;pe(Ba,H);function _s(){}_s.prototype.nodeType=ya;pe(_s,H);function cn(){}cn.prototype.nodeName="#document-fragment";cn.prototype.nodeType=Ye;pe(cn,H);function Ps(){}Ps.prototype.nodeType=Ta;pe(Ps,H);function Ra(){}Ra.prototype.serializeToString=function(t,e,r){return Oa.call(t,e,r)};H.prototype.toString=Oa;function Oa(t,e){var r=[],i=this.nodeType==9&&this.documentElement||this,n=i.prefix,s=i.namespaceURI;if(s&&n==null){var n=i.lookupPrefix(s);if(n==null)var o=[{namespace:s,prefix:null}]}return tr(this,r,t,e,o),r.join("")}function ba(t,e,r){var i=t.prefix||"",n=t.namespaceURI;if(!n||i==="xml"&&n===Xr.XML||n===Xr.XMLNS)return!1;for(var s=r.length;s--;){var o=r[s];if(o.prefix===i)return o.namespace!==n}return!0}function ys(t,e,r){t.push(" ",e,'="',r.replace(/[<>&"\t\n\r]/g,_a),'"')}function tr(t,e,r,i,n){if(n||(n=[]),i)if(t=i(t),t){if(typeof t=="string"){e.push(t);return}}else return;switch(t.nodeType){case _e:var s=t.attributes,o=s.length,w=t.firstChild,a=t.tagName;r=Xr.isHTML(t.namespaceURI)||r;var c=a;if(!r&&!t.prefix&&t.namespaceURI){for(var u,l=0;l<s.length;l++)if(s.item(l).name==="xmlns"){u=s.item(l).value;break}if(!u)for(var d=n.length-1;d>=0;d--){var f=n[d];if(f.prefix===""&&f.namespace===t.namespaceURI){u=f.namespace;break}}if(u!==t.namespaceURI)for(var d=n.length-1;d>=0;d--){var f=n[d];if(f.namespace===t.namespaceURI){f.prefix&&(c=f.prefix+":"+a);break}}}e.push("<",c);for(var m=0;m<o;m++){var p=s.item(m);p.prefix=="xmlns"?n.push({prefix:p.localName,namespace:p.value}):p.nodeName=="xmlns"&&n.push({prefix:"",namespace:p.value})}for(var m=0;m<o;m++){var p=s.item(m);if(ba(p,r,n)){var g=p.prefix||"",b=p.namespaceURI;ys(e,g?"xmlns:"+g:"xmlns",b),n.push({prefix:g,namespace:b})}tr(p,e,r,i,n)}if(a===c&&ba(t,r,n)){var g=t.prefix||"",b=t.namespaceURI;ys(e,g?"xmlns:"+g:"xmlns",b),n.push({prefix:g,namespace:b})}if(w||r&&!/^(?:meta|link|img|br|hr|input)$/i.test(a)){if(e.push(">"),r&&/^script$/i.test(a))for(;w;)w.data?e.push(w.data):tr(w,e,r,i,n.slice()),w=w.nextSibling;else for(;w;)tr(w,e,r,i,n.slice()),w=w.nextSibling;e.push("</",c,">")}else e.push("/>");return;case Sa:case Ye:for(var w=t.firstChild;w;)tr(w,e,r,i,n.slice()),w=w.nextSibling;return;case rr:return ys(e,t.name,t.value);case rn:return e.push(t.data.replace(/[<&>]/g,_a));case xa:return e.push("<![CDATA[",t.data,"]]>");case ka:return e.push("<!--",t.data,"-->");case Ca:var x=t.publicId,y=t.systemId;if(e.push("<!DOCTYPE ",t.name),x)e.push(" PUBLIC ",x),y&&y!="."&&e.push(" ",y),e.push(">");else if(y&&y!=".")e.push(" SYSTEM ",y,">");else{var T=t.internalSubset;T&&e.push(" [",T,"]"),e.push(">")}return;case Ta:return e.push("<?",t.target," ",t.data,"?>");case ya:return e.push("&",t.nodeName,";");default:e.push("??",t.nodeName)}}function Na(t,e,r){var i;switch(e.nodeType){case _e:i=e.cloneNode(!1),i.ownerDocument=t;case Ye:break;case rr:r=!0;break}if(i||(i=e.cloneNode(!1)),i.ownerDocument=t,i.parentNode=null,r)for(var n=e.firstChild;n;)i.appendChild(Na(t,n,r)),n=n.nextSibling;return i}function Ts(t,e,r){var i=new e.constructor;for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var s=e[n];typeof s!="object"&&s!=i[n]&&(i[n]=s)}switch(e.childNodes&&(i.childNodes=new Ke),i.ownerDocument=t,i.nodeType){case _e:var o=e.attributes,a=i.attributes=new nn,c=o.length;a._ownerElement=i;for(var u=0;u<c;u++)i.setAttributeNode(Ts(t,o.item(u),!0));break;case rr:r=!0}if(r)for(var l=e.firstChild;l;)i.appendChild(Ts(t,l,r)),l=l.nextSibling;return i}function Ma(t,e,r){t[e]=r}try{if(Object.defineProperty){let t=function(e){switch(e.nodeType){case _e:case Ye:var r=[];for(e=e.firstChild;e;)e.nodeType!==7&&e.nodeType!==8&&r.push(t(e)),e=e.nextSibling;return r.join("");default:return e.nodeValue}};Ll=t,Object.defineProperty(ir.prototype,"length",{get:function(){return ks(this),this.$$length}}),Object.defineProperty(H.prototype,"textContent",{get:function(){return t(this)},set:function(e){switch(this.nodeType){case _e:case Ye: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}}}),Ma=function(e,r,i){e["$$"+r]=i}}}catch{}var Ll;ft.DocumentType=an;ft.DOMException=K;ft.DOMImplementation=va;ft.Element=vt;ft.Node=H;ft.NodeList=Ke;ft.XMLSerializer=Ra});var za=Kt(ei=>{"use strict";var Ua=Qr().freeze;ei.XML_ENTITIES=Ua({amp:"&",apos:"'",gt:">",lt:"<",quot:'"'});ei.HTML_ENTITIES=Ua({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:`
|
|
2
|
+
`,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"});ei.entityMap=ei.HTML_ENTITIES});var $a=Kt(Fs=>{var ni=Qr().NAMESPACE,Is=/[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]/,Va=new RegExp("[\\-\\.0-9"+Is.source.slice(1,-1)+"\\u00B7\\u0300-\\u036F\\u203F-\\u2040]"),La=new RegExp("^"+Is.source+Va.source+"*(?::"+Is.source+Va.source+"*)?$"),ti=0,mt=1,nr=2,ri=3,sr=4,or=5,ii=6,un=7;function ar(t,e){this.message=t,this.locator=e,Error.captureStackTrace&&Error.captureStackTrace(this,ar)}ar.prototype=new Error;ar.prototype.name=ar.name;function Wa(){}Wa.prototype={parse:function(t,e,r){var i=this.domBuilder;i.startDocument(),Ga(e,e={}),ql(t,e,r,i,this.errorHandler),i.endDocument()}};function ql(t,e,r,i,n){function s(X){if(X>65535){X-=65536;var Ce=55296+(X>>10),fl=56320+(X&1023);return String.fromCharCode(Ce,fl)}else return String.fromCharCode(X)}function o(X){var Ce=X.slice(1,-1);return Object.hasOwnProperty.call(r,Ce)?r[Ce]:Ce.charAt(0)==="#"?s(parseInt(Ce.substr(1).replace("x","0x"))):(n.error("entity not found:"+X),X)}function a(X){if(X>g){var Ce=t.substring(g,X).replace(/&#?\w+;/g,o);f&&c(g),i.characters(Ce,0,X-g),g=X}}function c(X,Ce){for(;X>=l&&(Ce=d.exec(t));)u=Ce.index,l=u+Ce[0].length,f.lineNumber++;f.columnNumber=X-u+1}for(var u=0,l=0,d=/.*(?:\r\n?|\n)|.*$/g,f=i.locator,m=[{currentNSMap:e}],p={},g=0;;){try{var b=t.indexOf("<",g);if(b<0){if(!t.substr(g).match(/^\s*$/)){var w=i.doc,x=w.createTextNode(t.substr(g));w.appendChild(x),i.currentElement=x}return}switch(b>g&&a(b),t.charAt(b+1)){case"/":var B=t.indexOf(">",b+3),y=t.substring(b+2,B).replace(/[ \t\n\r]+$/g,""),T=m.pop();B<0?(y=t.substring(b+2).replace(/[\s<].*/,""),n.error("end tag name: "+y+" is not complete:"+T.tagName),B=b+1+y.length):y.match(/\s</)&&(y=y.replace(/[\s<].*/,""),n.error("end tag name: "+y+" maybe not complete"),B=b+1+y.length);var E=T.localNSMap,S=T.tagName==y,P=S||T.tagName&&T.tagName.toLowerCase()==y.toLowerCase();if(P){if(i.endElement(T.uri,T.localName,y),E)for(var v in E)Object.prototype.hasOwnProperty.call(E,v)&&i.endPrefixMapping(v);S||n.fatalError("end tag name: "+y+" is not match the current start tagName:"+T.tagName)}else m.push(T);B++;break;case"?":f&&c(b),B=$l(t,b,i);break;case"!":f&&c(b),B=jl(t,b,i,n);break;default:f&&c(b);var F=new ja,M=m[m.length-1].currentNSMap,B=Hl(t,b,F,M,o,n),Q=F.length;if(!F.closed&&Gl(t,B,F.tagName,p)&&(F.closed=!0,r.nbsp||n.warning("unclosed xml attribute")),f&&Q){for(var je=qa(f,{}),Ui=0;Ui<Q;Ui++){var Vo=F[Ui];c(Vo.offset),Vo.locator=qa(f,{})}i.locator=je,Ha(F,i,M)&&m.push(F),i.locator=f}else Ha(F,i,M)&&m.push(F);ni.isHTML(F.uri)&&!F.closed?B=Wl(t,B,F.tagName,o,i):B++}}catch(X){if(X instanceof ar)throw X;n.error("element parse error: "+X),B=-1}B>g?g=B:a(Math.max(b,g)+1)}}function qa(t,e){return e.lineNumber=t.lineNumber,e.columnNumber=t.columnNumber,e}function Hl(t,e,r,i,n,s){function o(m,p,g){r.attributeNames.hasOwnProperty(m)&&s.fatalError("Attribute "+m+" redefined"),r.addValue(m,p.replace(/[\t\n\r]/g," ").replace(/&#?\w+;/g,n),g)}for(var a,c,u=++e,l=ti;;){var d=t.charAt(u);switch(d){case"=":if(l===mt)a=t.slice(e,u),l=ri;else if(l===nr)l=ri;else throw new Error("attribute equal must after attrName");break;case"'":case'"':if(l===ri||l===mt)if(l===mt&&(s.warning('attribute value must after "="'),a=t.slice(e,u)),e=u+1,u=t.indexOf(d,e),u>0)c=t.slice(e,u),o(a,c,e-1),l=or;else throw new Error("attribute value no end '"+d+"' match");else if(l==sr)c=t.slice(e,u),o(a,c,e),s.warning('attribute "'+a+'" missed start quot('+d+")!!"),e=u+1,l=or;else throw new Error('attribute value must after "="');break;case"/":switch(l){case ti:r.setTagName(t.slice(e,u));case or:case ii:case un:l=un,r.closed=!0;case sr:case mt:break;case nr:r.closed=!0;break;default:throw new Error("attribute invalid close char('/')")}break;case"":return s.error("unexpected end of input"),l==ti&&r.setTagName(t.slice(e,u)),u;case">":switch(l){case ti:r.setTagName(t.slice(e,u));case or:case ii:case un:break;case sr:case mt:c=t.slice(e,u),c.slice(-1)==="/"&&(r.closed=!0,c=c.slice(0,-1));case nr:l===nr&&(c=a),l==sr?(s.warning('attribute "'+c+'" missed quot(")!'),o(a,c,e)):((!ni.isHTML(i[""])||!c.match(/^(?:disabled|checked|selected)$/i))&&s.warning('attribute "'+c+'" missed value!! "'+c+'" instead!!'),o(c,c,e));break;case ri:throw new Error("attribute value missed!!")}return u;case"\x80":d=" ";default:if(d<=" ")switch(l){case ti:r.setTagName(t.slice(e,u)),l=ii;break;case mt:a=t.slice(e,u),l=nr;break;case sr:var c=t.slice(e,u);s.warning('attribute "'+c+'" missed quot(")!!'),o(a,c,e);case or:l=ii;break}else switch(l){case nr:var f=r.tagName;(!ni.isHTML(i[""])||!a.match(/^(?:disabled|checked|selected)$/i))&&s.warning('attribute "'+a+'" missed value!! "'+a+'" instead2!!'),o(a,a,e),e=u,l=mt;break;case or:s.warning('attribute space is required"'+a+'"!!');case ii:l=mt,e=u;break;case ri:l=sr,e=u;break;case un:throw new Error("elements closed character '/' and '>' must be connected to")}}u++}}function Ha(t,e,r){for(var i=t.tagName,n=null,d=t.length;d--;){var s=t[d],o=s.qName,a=s.value,f=o.indexOf(":");if(f>0)var c=s.prefix=o.slice(0,f),u=o.slice(f+1),l=c==="xmlns"&&u;else u=o,c=null,l=o==="xmlns"&&"";s.localName=u,l!==!1&&(n==null&&(n={},Ga(r,r={})),r[l]=n[l]=a,s.uri=ni.XMLNS,e.startPrefixMapping(l,a))}for(var d=t.length;d--;){s=t[d];var c=s.prefix;c&&(c==="xml"&&(s.uri=ni.XML),c!=="xmlns"&&(s.uri=r[c||""]))}var f=i.indexOf(":");f>0?(c=t.prefix=i.slice(0,f),u=t.localName=i.slice(f+1)):(c=null,u=t.localName=i);var m=t.uri=r[c||""];if(e.startElement(m,u,i,t),t.closed){if(e.endElement(m,u,i),n)for(c in n)Object.prototype.hasOwnProperty.call(n,c)&&e.endPrefixMapping(c)}else return t.currentNSMap=r,t.localNSMap=n,!0}function Wl(t,e,r,i,n){if(/^(?:script|textarea)$/i.test(r)){var s=t.indexOf("</"+r+">",e),o=t.substring(e+1,s);if(/[&<]/.test(o))return/^script$/i.test(r)?(n.characters(o,0,o.length),s):(o=o.replace(/&#?\w+;/g,i),n.characters(o,0,o.length),s)}return e+1}function Gl(t,e,r,i){var n=i[r];return n==null&&(n=t.lastIndexOf("</"+r+">"),n<e&&(n=t.lastIndexOf("</"+r)),i[r]=n),n<e}function Ga(t,e){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}function jl(t,e,r,i){var n=t.charAt(e+2);switch(n){case"-":if(t.charAt(e+3)==="-"){var s=t.indexOf("-->",e+4);return s>e?(r.comment(t,e+4,s-e-4),s+3):(i.error("Unclosed comment"),-1)}else return-1;default:if(t.substr(e+3,6)=="CDATA["){var s=t.indexOf("]]>",e+9);return r.startCDATA(),r.characters(t,e+9,s-e-9),r.endCDATA(),s+3}var o=Ql(t,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 d=o[a-1];return r.startDTD(c,u,l),r.endDTD(),d.index+d[0].length}}return-1}function $l(t,e,r){var i=t.indexOf("?>",e);if(i){var n=t.substring(e,i).match(/^<\?(\S*)\s*([\s\S]*?)\s*$/);if(n){var s=n[0].length;return r.processingInstruction(n[1],n[2]),i+2}else return-1}return-1}function ja(){this.attributeNames={}}ja.prototype={setTagName:function(t){if(!La.test(t))throw new Error("invalid tagName:"+t);this.tagName=t},addValue:function(t,e,r){if(!La.test(t))throw new Error("invalid attribute:"+t);this.attributeNames[t]=this.length,this[this.length++]={qName:t,value:e,offset:r}},length:0,getLocalName:function(t){return this[t].localName},getLocator:function(t){return this[t].locator},getQName:function(t){return this[t].qName},getURI:function(t){return this[t].uri},getValue:function(t){return this[t].value}};function Ql(t,e){var r,i=[],n=/'[^']+'|"[^"]+"|[^\s<>\/=]+=?|(\/?\s*>|<)/g;for(n.lastIndex=e,n.exec(t);r=n.exec(t);)if(i.push(r),r[1])return i}Fs.XMLReader=Wa;Fs.ParseError=ar});var ec=Kt(dn=>{var Xl=Qr(),Kl=Ds(),Qa=za(),Ya=$a(),Yl=Kl.DOMImplementation,Xa=Xl.NAMESPACE,Zl=Ya.ParseError,Jl=Ya.XMLReader;function Za(t){return t.replace(/\r[\n\u0085]/g,`
|
|
1091
3
|
`).replace(/[\r\u0085\u2028]/g,`
|
|
1092
|
-
`)}function
|
|
1093
|
-
@`+(
|
|
4
|
+
`)}function Ja(t){this.options=t||{locator:{}}}Ja.prototype.parseFromString=function(t,e){var r=this.options,i=new Jl,n=r.domBuilder||new si,s=r.errorHandler,o=r.locator,a=r.xmlns||{},c=/\/x?html?$/.test(e),u=c?Qa.HTML_ENTITIES:Qa.XML_ENTITIES;o&&n.setDocumentLocator(o),i.errorHandler=ed(s,n,o),i.domBuilder=r.domBuilder||n,c&&(a[""]=Xa.HTML),a.xml=a.xml||Xa.XML;var l=r.normalizeLineEndings||Za;return t&&typeof t=="string"?i.parse(l(t),a,u):i.errorHandler.error("invalid doc source"),n.doc};function ed(t,e,r){if(!t){if(e instanceof si)return e;t=e}var i={},n=t instanceof Function;r=r||{};function s(o){var a=t[o];!a&&n&&(a=t.length==2?function(c){t(o,c)}:t),i[o]=a&&function(c){a("[xmldom "+o+"] "+c+Bs(r))}||function(){}}return s("warning"),s("error"),s("fatalError"),i}function si(){this.cdata=!1}function cr(t,e){e.lineNumber=t.lineNumber,e.columnNumber=t.columnNumber}si.prototype={startDocument:function(){this.doc=new Yl().createDocument(null,null,null),this.locator&&(this.doc.documentURI=this.locator.systemId)},startElement:function(t,e,r,i){var n=this.doc,s=n.createElementNS(t,r||e),o=i.length;ln(this,s),this.currentElement=s,this.locator&&cr(this.locator,s);for(var a=0;a<o;a++){var t=i.getURI(a),c=i.getValue(a),r=i.getQName(a),u=n.createAttributeNS(t,r);this.locator&&cr(i.getLocator(a),u),u.value=u.nodeValue=c,s.setAttributeNode(u)}},endElement:function(t,e,r){var i=this.currentElement,n=i.tagName;this.currentElement=i.parentNode},startPrefixMapping:function(t,e){},endPrefixMapping:function(t){},processingInstruction:function(t,e){var r=this.doc.createProcessingInstruction(t,e);this.locator&&cr(this.locator,r),ln(this,r)},ignorableWhitespace:function(t,e,r){},characters:function(t,e,r){if(t=Ka.apply(this,arguments),t){if(this.cdata)var i=this.doc.createCDATASection(t);else var i=this.doc.createTextNode(t);this.currentElement?this.currentElement.appendChild(i):/^\s*$/.test(t)&&this.doc.appendChild(i),this.locator&&cr(this.locator,i)}},skippedEntity:function(t){},endDocument:function(){this.doc.normalize()},setDocumentLocator:function(t){(this.locator=t)&&(t.lineNumber=0)},comment:function(t,e,r){t=Ka.apply(this,arguments);var i=this.doc.createComment(t);this.locator&&cr(this.locator,i),ln(this,i)},startCDATA:function(){this.cdata=!0},endCDATA:function(){this.cdata=!1},startDTD:function(t,e,r){var i=this.doc.implementation;if(i&&i.createDocumentType){var n=i.createDocumentType(t,e,r);this.locator&&cr(this.locator,n),ln(this,n),this.doc.doctype=n}},warning:function(t){console.warn("[xmldom warning] "+t,Bs(this.locator))},error:function(t){console.error("[xmldom error] "+t,Bs(this.locator))},fatalError:function(t){throw new Zl(t,this.locator)}};function Bs(t){if(t)return`
|
|
5
|
+
@`+(t.systemId||"")+"#[line:"+t.lineNumber+",col:"+t.columnNumber+"]"}function Ka(t,e,r){return typeof t=="string"?t.substr(e,r):t.length>=e+r||e?new java.lang.String(t,e,r)+"":t}"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl".replace(/\w+/g,function(t){si.prototype[t]=function(){return null}});function ln(t,e){t.currentElement?t.currentElement.appendChild(e):t.doc.appendChild(e)}dn.__DOMHandler=si;dn.normalizeLineEndings=Za;dn.DOMParser=Ja});var rc=Kt(fn=>{var tc=Ds();fn.DOMImplementation=tc.DOMImplementation;fn.XMLSerializer=tc.XMLSerializer;fn.DOMParser=ec().DOMParser});function hs(t,e){return{error:r=>t.error({...e,...r}),rpcRequest:r=>t.rpcRequest({...e,...r}),rpcError:r=>t.rpcError({...e,...r})}}var Vi=()=>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 qo(){return Vi()}var dt=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 Li=()=>({none:t=>t,uncolor:pl,mix:gl,hex:bl,rgb:Ho,bgRgb:wl});function pl(t){return t.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,"")}function gl(...t){return e=>{for(let r of t)e=r(e);return e}}function bl(t){t=t.replace(/^#/,"");let e,r,i,n;if(t.length===3)e=parseInt(t.split("").map(s=>s+s).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,n=e&255,Ho(r,i,n)}function Ho(t,e,r){let i=`\x1B[38;2;${t};${e};${r}m`;return n=>`${i}${n}${dt.reset}`}function wl(t,e,r){let i=`\x1B[48;2;${t};${e};${r}m`;return n=>`${i}${n}${dt.reset}`}var qr={...Object.fromEntries(Object.entries(dt).map(([t])=>[t,e=>e])),...Li()};var Hr={...Object.fromEntries(Object.entries(dt).map(([t,e])=>[t,r=>`${e}${r}${dt.reset}`])),...Li()};function ps(){return typeof Deno<"u"&&typeof Deno.version<"u"}function gs(){return typeof process<"u"&&process.versions&&process.versions.node}function Wo(){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 bs=()=>Wo()?Hr:qr;var qi=()=>({colors:t,theme:e})=>{let r=e(t);function i(o){let a=o.stack?`
|
|
1094
6
|
`+o.stack+`
|
|
1095
|
-
`:"";return[
|
|
1096
|
-
`))},stderr:async
|
|
1097
|
-
`))}});var
|
|
1098
|
-
`),stderr:async
|
|
1099
|
-
`)});var bc=()=>({stdout:async r=>console.log(r),stderr:async r=>console.error(r)});var Cg=()=>Bh()?xc():Rh()?_c():bc();var Eg=()=>({stdout:async()=>{},stderr:async()=>{}});function kg(){return()=>({stdout:r=>r,stderr:r=>r})}var rs=class r{static writers={auto:Cg,void:Eg,deno:xc,node:_c,console:bc};static colors={auto:Dh,colorful:()=>Rn,colorless:()=>Bn};static themes={auto:Tg,basic:fc};static shapers={auto:vg,none:kg,errors:pc,timestamp:gc};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=Dn(...e),this}};var Mn=class extends rs{static dummy(){return new this().setWriter(rs.writers.void())}rpcRequest=async({request:e,...t})=>{let i=this.colors.none;this.log(...this.#e(t),i(`${e.method}()`))};rpcError=async({request:e,error:t,...i})=>{this.error(...this.#e(i),`${e.method}()`,t)};#e({meta:e,label:t,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,t||void 0,i===void 0?void 0:i?s("<-"):n("->")].filter(Boolean)}#t(e){let{headers:t}=e.request;return[this.colors.yellow(`[${e.ip}]`),this.colors.green(t.origin?t.origin:"(no-origin)")].join(" ")}};var zt=class extends Mn{rpcRequest=async()=>{}};var Vt=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(Vt.random(r))},string(r){return di.fromBytes(r)},bytes(r){return di.toBytes(r)}});var Mh=58,yc="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",Ih=Object.freeze({fromBytes(r){let e=BigInt("0x"+di.fromBytes(r)),t="";for(;e>0;){let i=e%BigInt(Mh);e=e/BigInt(Mh),t=yc[Number(i)]+t}for(let i of r)if(i===0)t=yc[0]+t;else break;return t},toBytes(r){let e=BigInt(0);for(let o of r){let a=yc.indexOf(o);if(a===-1)throw new Error(`Invalid character '${o}' in base58 string`);e=e*BigInt(Mh)+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===yc[0])s++;else break;let n=new Uint8Array(s+i.length);return n.set(i,s),n},random(r=32){return this.fromBytes(Vt.random(r))},string(r){return Ih.fromBytes(r)},bytes(r){return Ih.toBytes(r)}});var Ag=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(Vt.random(e))}};var Fh=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(Vt.random(r))},string(r){return Fh.fromBytes(r)},bytes(r){return Fh.toBytes(r)}});var Pg=Object.freeze({fromBytes(r){return new TextDecoder().decode(r)},toBytes(r){return new TextEncoder().encode(r)},string(r){return Pg.fromBytes(r)},bytes(r){return Pg.toBytes(r)}});var Tc=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 In=class extends Error{milliseconds;name=this.constructor.name;constructor(e){super(`deadline exceeded (${(e/1e3).toFixed(1)} seconds)`),this.milliseconds=e}};function wc(r,e){return r<=0||r===1/0?e():new Promise((t,i)=>{let s=setTimeout(()=>i(new In(r)),r);e().then(t).catch(i).finally(()=>clearTimeout(s))})}function Dt(){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 Bg(r,e){let t=r;for(let i of e)if(t=t[i],Tc.unset(t))break;return t}function ik(r){return{map:e=>Rg(r,e),filter:e=>Dg(r,e)}}ik.pipe=Object.freeze({map:r=>e=>Rg(e,r),filter:r=>e=>Dg(e,r)});var Rg=(r,e)=>Object.fromEntries(Object.entries(r).map(([t,i])=>[t,e(i,t)])),Dg=(r,e)=>Object.fromEntries(Object.entries(r).filter(([t,i])=>e(i,t)));function sk(){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}=Dt(),a=e((...c)=>{o(c),a()});return n}function s(){r.clear()}return e.pub=t,e.sub=e,e.on=e,e.next=i,e.clear=s,t.pub=t,t.sub=e,t.on=e,t.next=i,t.clear=s,[t,e]}function Sc(r){let e=sk()[0];return r&&e.sub(r),e}var dr=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 Nr;(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}})(Nr||(Nr={}));var vc=class extends Error{name=this.constructor.name},fi=class extends Error{name=this.constructor.name};async function Mg({tap:r,request:e,action:t}){let i=Nr.getId(e);try{let s=await t();return i===null?null:{id:i,result:s,jsonrpc:Nr.version}}catch(s){return r.rpcError({request:e,error:s}),i===null?null:{id:i,jsonrpc:Nr.version,error:s instanceof vc?{code:Nr.errorCodes.serverError,message:s.message}:{code:Nr.errorCodes.unexposedError,message:"unexposed error"}}}}function Cc(r){let e=r.tap??new zt;return async t=>{let i=t.method.split("."),s=Bg(r.fns,i),n=async()=>await s(...t.params);return e.rpcRequest({request:t}),await Mg({tap:e,request:t,action:n})}}var Ig=Symbol("tune"),nk=Symbol("query"),ok=Symbol("notify"),ak=Symbol("settings");function Fg(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===Ig?o=>(...a)=>r(t,a,{...i,...o}):n===ok?(...o)=>r(t,o,{...i,notify:!0}):n===nk?(...o)=>r(t,o,{...i,notify:!1}):n===ak?i:(s[n]||(s[n]=e([...t,n])),s[n])},set:(s,n,o)=>(s[n]=o,!0)})}return e([])}function mi(r){let{endpoint:e,tap:t=new zt}=r,i=1;return Fg(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.rpcRequest({request:l});let h=await e(l,{transfer:c});if(a&&!h)return null;if(!h)throw new fi("response was null, but shouldn't be, because the request was not a notification");if("error"in h)throw new fi(r.label?`${r.label}: ${h.error.message}`:h.error.message);return h.result})}function Fn(r){return mi({endpoint:Cc(r),tap:r.tap})}var pi=class{recv=Sc();sendRequest=Sc();sendResponse=Sc();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())]}};function Ec(r,e){return r.addEventListener("message",e),()=>r.removeEventListener("message",e)}function Ug(r,e){return async(t,{transfer:i}={})=>{if("id"in t){let s=Dt();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 Og(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 Gg(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 dr;constructor(e){super(),this.#e.add(this.sendRequest.sub((t,i)=>e.postMessage(t,i)),this.sendResponse.sub((t,i)=>e.postMessage(t,i)),Ec(e,t=>this.recv(t.data,t)))}dispose(){this.#e.dispose()}};var kc=class{remote;transfer;constructor(e){this.remote=e}};var Uh=Object.freeze({timeout:6e4,maxRequestBytes:1e7});var Ac=class{timeout;pending=new Map;constructor(e){this.timeout=e}async wait(e,t){let i=Dt();return this.pending.set(e,{method:t,deferred:i}),await wc(this.timeout,()=>i.promise).catch(s=>{throw s instanceof In&&(s.message=`request #${e} ${t}(), ${s.message}`),s})}deliverResponse(e){let t=this.pending.get(e.id);t&&("error"in e?t.deferred.reject(new fi(e.error.message)):t.deferred.resolve(e))}};var gi=class{options;remote;remoteEndpoint;#e;#t=new dr;constructor(e){this.options=e;let{conduit:t,tap:i}=e;this.#e=new Ac(e.timeout??Uh.timeout),this.remoteEndpoint=Ug(this.#e,t.sendRequest.pub.bind(t.sendRequest)),this.remote=mi({endpoint:this.remoteEndpoint,tap:i&&Ph(i,{remote:!0})}),this.#t.add(t.recv.sub(s=>this.recv(s)))}async recv(e){let t=new kc(this.remote),{conduit:i,rpc:s,tap:n}=this.options,{requests:o,responses:a}=Og(e);for(let h of a)this.#e.deliverResponse(h);if(!s)return;let c=await s(t),u=Cc({fns:c,tap:n&&Ph(n,{remote:!1})}),l=await Gg(u,o);l&&await i.sendResponse(l,t.transfer)}dispose(){this.#t.dispose()}};var fr={derive:{host:r=>({host:r.remote.host,get transfer(){return r.transfer},set transfer(e){r.transfer=e}}),work:r=>({work:r.remote,get transfer(){return r.transfer},set transfer(e){r.transfer=e}})},mock:{host:()=>({host:void 0,transfer:void 0}),work:()=>({work:void 0,transfer:void 0})}};var mr=new zt;async function Ng(r,e,t={}){let i=t.tap??mr,s=new gi({tap:i,timeout:t.timeout??1/0,conduit:new is(r.getSelf()),rpc:async n=>e(fr.derive.host(n))});return await s.remote.infra.ready(),s.remote.host}var ss=class{worker;messenger;constructor(e,t){this.worker=e,this.messenger=t}static async make(e,t){let i=t.tap??mr,s=t.label??"comrade",n=e.loadWorker(t.workerUrl,s),o=Dt(),a={async ready(){o.resolve()}},c=new gi({tap:i,timeout:t.timeout??1/0,conduit:new is(n),rpc:async u=>({infra:a,host:t.setupHost(fr.derive.work(u))})});return await o.promise,new this(n,c)}get work(){return this.messenger.remote}terminate(){this.worker.terminate()}};var Pc=class{threads;static async make(e,t){let i=t.workerCount??e.guessOptimalThreadCount(),s=await Promise.all([...Array(i)].map(async(n,o)=>ss.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??mr,s=async(n,o)=>this.#i({request:n,prom:Dt(),transfer:o?.transfer});this.work=mi({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 Lg=r=>({thread:e=>ss.make(r,e),cluster:e=>Pc.make(r,e),worker:(e,t={})=>Ng(r,e,t),work:e=>e,host:e=>e,mocks(e){let{setupWork:t,setupHost:i,tap:s=mr}=e,n=fr.mock.host(),o=fr.mock.work();return o.work=Fn({tap:s,fns:t(n)}),n.host=Fn({tap:s,fns:i(o)}),{workShell:o,hostShell:n,work:o.work,host:n.host}},mockWork(e,t=mr){let i=fr.mock.host(),s=fr.mock.work();return s.work=Fn({tap:t,fns:e(i)}),{workShell:s,hostShell:i,work:s.work,mockHost:n=>(i.host=Fn({tap:t,fns:n(s)}),{workShell:s,hostShell:i,work:s.work,host:i.host})}}});var zg=()=>({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 hk=zg(),Bc=Lg(hk);P();var VT={extension:{type:b.Environment,name:"browser",priority:-1},test:()=>!0,load:async()=>{await Promise.resolve().then(()=>(zT(),wP))}};P();var WT={extension:{type:b.Environment,name:"webworker",priority:0},test:()=>typeof self<"u"&&self.WorkerGlobalScope!==void 0,load:async()=>{await Promise.resolve().then(()=>(HT(),SP))}};P();ou();Jc();ve();Do();var el;function ZT(r){return el!==void 0||(el=(()=>{let e={stencil:!0,failIfMajorPerformanceCaveat:r??Zr.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}})()),el}ve();var tl;async function JT(r={}){return tl!==void 0||(tl=await(async()=>{let e=W.get().getNavigator().gpu;if(!e)return!1;try{return await(await e.requestAdapter(r)).requestDevice(),!0}catch{return!1}})()),tl}Do();var p1=["webgl","webgpu","canvas"];async function gp(r){let e=[];r.preference?(e.push(r.preference),p1.forEach(n=>{n!==r.preference&&e.push(n)})):e=p1.slice();let t,i={};for(let n=0;n<e.length;n++){let o=e[n];if(o==="webgpu"&&await JT()){let{WebGPURenderer:a}=await Promise.resolve().then(()=>(zS(),LS));t=a,i={...r,...r.webgpu};break}else if(o==="webgl"&&ZT(r.failIfMajorPerformanceCaveat??Zr.defaultOptions.failIfMajorPerformanceCaveat)){let{WebGLRenderer:a}=await Promise.resolve().then(()=>(m1(),f1));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 lC=Ah(uC(),1),Dp={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 lC.DOMParser().parseFromString(r,"text/xml")};bi();Ic();ye();Zc();var Ol=class extends Hr{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 hC(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}Jf();Os();Fs();var La=class extends Ol{constructor(...e){let t=hC(e,"Text");super(t,lt),this.renderPipeId="text",t.textureStyle&&(this.textureStyle=t.textureStyle instanceof Je?t.textureStyle:new Je(t.textureStyle))}updateBounds(){let e=this._bounds,t=this._anchor,i=0,s=0;if(this._style.trim){let{frame:n,canvasAndContext:o}=Ui.getCanvasAndContext({text:this.text,style:this._style,resolution:1});Ui.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}};ve();le();Ud();Ht();tu();Ve();O.add(VT,WT);function w(r){if(!r)throw new Error("Assertion failed.")}var Gl=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],Ni=r=>r>=0&&r<2**32,$e=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){if(e===1)return this.readBit();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}},N=r=>{let e=0;for(;r.readBits(1)===0&&e<32;)e++;if(e>=32)throw new Error("Invalid exponential-Golomb code.");return(1<<e)-1+r.readBits(e)},an=r=>{let e=N(r);return(e&1)===0?-(e>>1):e+1>>1};var yt=r=>r instanceof Uint8Array?r:r instanceof ArrayBuffer?new Uint8Array(r):new Uint8Array(r.buffer,r.byteOffset,r.byteLength),At=r=>r instanceof DataView?r:r instanceof ArrayBuffer?new DataView(r):new DataView(r.buffer,r.byteOffset,r.byteLength),Li=new TextEncoder,Mp=r=>Object.fromEntries(Object.entries(r).map(([e,t])=>[t,e])),zi={bt709:1,bt470bg:5,smpte170m:6,bt2020:9,smpte432:12},Nl=Mp(zi),Vi={bt709:1,smpte170m:6,linear:8,"iec61966-2-1":13,pg:16,hlg:18},Ll=Mp(Vi),Hi={rgb:0,bt709:1,bt470bg:5,smpte170m:6,"bt2020-ncl":9},zl=Mp(Hi),dC=r=>!!r&&!!r.primaries&&!!r.transfer&&!!r.matrix&&r.fullRange!==void 0,cn=r=>r instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&r instanceof SharedArrayBuffer||ArrayBuffer.isView(r),kt=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}},Ip=r=>[...r].map(e=>e.toString(16).padStart(2,"0")).join(""),Fp=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),Be=(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},J=(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}},fC=(r,e)=>{let t=r.indexOf(e);t!==-1&&r.splice(t,1)},Up=(r,e)=>{for(let t=r.length-1;t>=0;t--)if(e(r[t]))return r[t]},Vl=(r,e)=>{for(let t=r.length-1;t>=0;t--)if(e(r[t]))return t;return-1},mC=async function*(r){Symbol.iterator in r?yield*r[Symbol.iterator]():yield*r[Symbol.asyncIterator]()},pC=r=>{if(!(Symbol.iterator in r)&&!(Symbol.asyncIterator in r))throw new TypeError("Argument must be an iterable or async iterable.")},si=r=>{throw new Error(`Unexpected value: ${r}`)},Op=(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},gC=(r,e,t)=>Op(r,e,t)<<8>>8,Gp=(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))},xC=(r,e,t,i)=>{t=Qe(t,-8388608,8388607),t<0&&(t=t+16777216&16777215),Gp(r,e,t,i)};var Qe=(r,e,t)=>Math.max(e,Math.min(t,r)),mt="und",un=(r,e)=>{let t=10**e;return Math.round(r*t)/t},_C=(r,e)=>Math.round(r/e)*e,bC=r=>{let e=0;for(;r;)e++,r>>=1;return e},RB=/^[a-z]{3}$/,ln=r=>RB.test(r),ar=1e6*(1+Number.EPSILON),za=(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]=za(r[i],e[i]):t[i]=e[i];return t},Hl=async(r,e,t)=>{let i=0;for(;;)try{return await fetch(r,e)}catch(s){i++;let n=t(i);if(n===null)throw s;if(console.error("Retrying failed fetch. Error:",s),!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))}},yC=(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}},ii=class{constructor(){this.currentPromise=Promise.resolve()}call(e){return this.currentPromise=this.currentPromise.then(e)}};var Wl=[],$l=[],TC=[],wC=[];var Dr=["avc","hevc","vp9","av1","vp8"],Ie=["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"],Np=["aac","opus","mp3","vorbis","flac"],ni=[...Np,...Ie],hn=["webvtt"],SC=[{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}],vC=[{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}],Rr=[{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}],CC=[{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}],EC=".01.01.01.01.00",kC=".0.110.01.01.01.0",AC=(r,e,t,i)=>{if(r==="avc"){let n=Math.ceil(e/16)*Math.ceil(t/16),o=SC.find(h=>n<=h.maxMacroblocks&&i<=h.maxBitrate)??he(SC),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 a=e*t,c=vC.find(l=>a<=l.maxPictureSize&&i<=l.maxBitrate)??he(vC);return`hev1.1.6.${c.tier}${c.level}.B0`}else{if(r==="vp8")return"vp8";if(r==="vp9"){let n=e*t;return`vp09.00.${(Rr.find(c=>n<=c.maxPictureSize&&i<=c.maxBitrate)??he(Rr)).level.toString().padStart(2,"0")}.08`}else if(r==="av1"){let n=e*t,o=CC.find(u=>n<=u.maxPictureSize&&i<=u.maxBitrate)??he(CC);return`av01.0.${o.level.toString().padStart(2,"0")}${o.tier}.08`}}throw new TypeError(`Unhandled codec '${r}'.`)};var PC=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]},ql=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.${Ip(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.${Ip(t.subarray(1,4))}`}else if(e==="hevc"){let c,u,l,h,f,d;if(n)c=n.generalProfileSpace,u=n.generalProfileIdc,l=Fp(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=At(t),g=x.getUint8(1);c=g>>6&3,u=g&31,l=Fp(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(Rr).level;for(let S of Rr)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(EC)&&(g=g.slice(0,-EC.length)),g}else if(e==="av1"){if(!a){let S=r.width*r.height,T=he(Rr).level;for(let C of Rr)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?zi[i.primaries]:1,x=i?.transfer?Vi[i.transfer]:1,g=i?.matrix?Hi[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(kC)&&(y=y.slice(0,-kC.length)),y}}throw new TypeError(`Unhandled codec '${e}'.`)},BC=(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(Ie.includes(r))return r;throw new TypeError(`Unhandled codec '${r}'.`)},jl=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.${Lp(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&&Ie.includes(e))return e}throw new TypeError(`Unhandled codec '${e}'.`)},Lp=r=>{if(!r||r.byteLength<2)throw new TypeError("AAC description must be at least 2 bytes long.");let e=new $e(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}},RC=48e3,DC=/^pcm-([usf])(\d+)+(be)?$/,Tt=r=>{if(w(Ie.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=DC.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}},zp=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":DC.test(r)?r:r==="webvtt"?"webvtt":null,MC=r=>r==="avc"?{avc:{format:"avc"}}:r==="hevc"?{hevc:{format:"hevc"}}:{},IC=r=>r==="aac"?{aac:{format:"aac"}}:r==="opus"?{opus:{format:"opus"}}:{},Pt=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(Ie.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}},vse=new Pt(.3),Cse=new Pt(.6),Ese=new Pt(1),kse=new Pt(2),Ase=new Pt(4),DB=["avc1","avc3","hev1","hvc1","vp8","vp09","av01"],MB=/^(avc1|avc3)\.[0-9a-fA-F]{6}$/,IB=/^(hev1|hvc1)\.(?:[ABC]?\d+)\.[0-9a-fA-F]{1,8}\.[LH]\d+(?:\.[0-9a-fA-F]{1,2}){0,6}$/,FB=/^vp09(?:\.\d{2}){3}(?:(?:\.\d{2}){5})?$/,UB=/^av01\.\d\.\d{2}[MH]\.\d{2}(?:\.\d\.\d{3}\.\d{2}\.\d{2}\.\d{2}\.\d)?$/,FC=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(!DB.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&&!cn(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(zi);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(Vi);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(Hi);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(!MB.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(!IB.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(!FB.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")&&!UB.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/.')},OB=["mp4a","mp3","opus","vorbis","flac","ulaw","alaw","pcm"],UC=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(!OB.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&&!cn(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"))&&!Ie.includes(r.decoderConfig.codec))throw new TypeError(`Audio chunk metadata decoder configuration codec string for PCM must be one of the supported PCM codecs (${Ie.join(", ")}).`)},OC=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 Vp=/<(?:(\d{2}):)?(\d{2}):(\d{2}).(\d{3})>/g;var GC=r=>{let e=Math.floor(r/36e5),t=Math.floor(r%(3600*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 Va=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},NC=(r,e)=>{let t=[],i=0,s=new DataView(r.buffer,r.byteOffset,r.byteLength);for(;i+e<=r.length;){let n;e===1?n=s.getUint8(i):e===2?n=s.getUint16(i,!1):e===3?n=(s.getUint16(i,!1)<<8)+s.getUint8(i+2):e===4?n=s.getUint32(i,!1):(si(e),w(!1)),i+=e;let o=r.subarray(i,i+n);t.push(o),i+=n}return t},Hp=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)},WC=r=>{let t=Va(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},Xl=r=>r[0]&31,Yl=r=>{try{let e=Va(r),t=e.filter(f=>Xl(f)===7),i=e.filter(f=>Xl(f)===8),s=e.filter(f=>Xl(f)===13);if(t.length===0||i.length===0)return null;let n=t[0],o=new $e(Hp(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){N(o);let f=N(o);f===3&&o.skipBits(1);let d=N(o),m=N(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}},$C=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)},LC=32,zC=33,VC=34,GB=39,NB=40,Wi=r=>r[0]>>1&63,Kl=r=>{try{let e=Va(r),t=e.filter(B=>Wi(B)===LC),i=e.filter(B=>Wi(B)===zC),s=e.filter(B=>Wi(B)===VC),n=e.filter(B=>Wi(B)===GB||Wi(B)===NB);if(i.length===0||s.length===0)return null;let o=i[0],a=new $e(Hp(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}=LB(a,c);N(a);let g=N(a);g===3&&a.skipBits(1),N(a),N(a),a.readBits(1)&&(N(a),N(a),N(a),N(a));let _=N(a),y=N(a);N(a);let T=a.readBits(1)?0:c;for(let B=T;B<=c;B++)N(a),N(a),N(a);N(a),N(a),N(a),N(a),N(a),N(a),a.readBits(1)&&a.readBits(1)&&zB(a),a.skipBits(1),a.skipBits(1),a.readBits(1)&&(a.skipBits(4),a.skipBits(4),N(a),N(a),a.skipBits(1));let C=N(a);if(VB(a,C),a.readBits(1)){let B=N(a);for(let k=0;k<B;k++)N(a),a.skipBits(1)}a.skipBits(1),a.skipBits(1);let v=0;a.readBits(1)&&(v=WB(a,c));let E=0;if(s.length>0){let B=s[0],k=new $e(Hp(B));k.skipBits(16),N(k),N(k),k.skipBits(1),k.skipBits(1),k.skipBits(3),k.skipBits(1),k.skipBits(1),N(k),N(k),an(k),k.skipBits(1),k.skipBits(1),k.readBits(1)&&N(k),an(k),an(k),k.skipBits(1),k.skipBits(1),k.skipBits(1),k.skipBits(1);let L=k.readBits(1),j=k.readBits(1);!L&&!j?E=0:L&&!j?E=2:!L&&j?E=3:E=0}let M=[...t.length?[{arrayCompleteness:1,nalUnitType:LC,nalUnits:t}]:[],...i.length?[{arrayCompleteness:1,nalUnitType:zC,nalUnits:i}]:[],...s.length?[{arrayCompleteness:1,nalUnitType:VC,nalUnits:s}]:[],...n.length?[{arrayCompleteness:1,nalUnitType:Wi(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:M}}catch(e){return console.error("Error building HEVC Decoder Configuration Record:",e),null}},LB=(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}},zB=r=>{for(let e=0;e<4;e++)for(let t=0;t<(e===3?2:6);t++)if(!r.readBits(1))N(r);else{let s=Math.min(64,1<<4+(e<<1));e>1&&an(r);for(let n=0;n<s;n++)an(r)}},VB=(r,e)=>{let t=[];for(let i=0;i<e;i++)t[i]=HB(r,i,e,t)},HB=(r,e,t,i)=>{let s=0,n=0,o=0;if(e!==0&&(n=r.readBits(1)),n){if(e===t){let c=N(r);o=e-(c+1)}else o=e-1;r.readBits(1),N(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=N(r),c=N(r);for(let u=0;u<a;u++)N(r),r.readBits(1);for(let u=0;u<c;u++)N(r),r.readBits(1);s=a+c}return s},WB=(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)&&(N(r),N(r)),r.readBits(1),r.readBits(1),r.readBits(1),r.readBits(1)&&(N(r),N(r),N(r),N(r)),r.readBits(1)&&(r.readBits(32),r.readBits(32),r.readBits(1)&&N(r),r.readBits(1)&&$B(r,!0,e)),r.readBits(1)){r.readBits(1),r.readBits(1),r.readBits(1);let t=N(r);return N(r),N(r),N(r),N(r),t}return 0},$B=(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?N(r):u=r.readBits(1)===1;let l=1;u||(l=N(r)+1),i&&HC(r,l,n),s&&HC(r,l,n)}},HC=(r,e,t)=>{for(let i=0;i<e;i++)N(r),N(r),t&&(N(r),N(r)),r.readBits(1)},qC=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)},Ql=r=>{let e=new $e(r);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 u=8;n>=2&&(u=e.readBits(1)?12:10);let l=e.readBits(3),h=0,f=0;if(l!==7)if(f=e.readBits(1),n===1||n===3){let E=e.readBits(1),M=e.readBits(1);h=!E&&!M?3:E&&!M?2:1,e.skipBits(1)}else h=1;else h=3,f=1;let d=e.readBits(16),m=e.readBits(16),x=d+1,g=m+1,_=x*g,y=he(Rr).level;for(let v of Rr)if(_<=v.maxPictureSize){y=v.level;break}return{profile:n,level:y,bitDepth:u,chromaSubsampling:h,videoFullRangeFlag:f,colourPrimaries:l===2?1:l===1?6:2,transferCharacteristics:l===2?1:l===1?6:2,matrixCoefficients:l===7?0:l===2?1:l===1?6:2}};function*jC(r){let e=new $e(r),t=()=>{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 o;if(n){let a=t();if(a===null)return;o=a}else o=Math.floor(e.getBitsLeft()/8);w(e.pos%8===0),yield{type:i,data:r.subarray(e.pos/8,e.pos/8+o)},e.skipBits(o*8)}}var Zl=r=>{for(let{type:e,data:t}of jC(r)){if(e!==1)continue;let i=new $e(t),s=i.readBits(3),n=i.readBits(1),o=i.readBits(1),a=0,c=0,u=0;if(o)a=i.readBits(5);else{if(i.readBits(1)&&(i.skipBits(32),i.skipBits(32),i.readBits(1)))return null;let _=i.readBits(1);_&&(u=i.readBits(5),i.skipBits(32),i.skipBits(5),i.skipBits(5));let y=i.readBits(5);for(let S=0;S<=y;S++){i.skipBits(12);let T=i.readBits(5);if(S===0&&(a=T),T>7){let v=i.readBits(1);S===0&&(c=v)}if(_&&i.readBits(1)){let E=u+1;i.skipBits(E),i.skipBits(E),i.skipBits(1)}i.readBits(1)&&i.skipBits(4)}}let l=i.readBits(1),h=8;s===2&&l?h=i.readBits(1)?12:10:s<=2&&(h=l?10:8);let f=0;s!==1&&(f=i.readBits(1));let d=1,m=1,x=0;return f||(s===0?(d=1,m=1):s===1?(d=0,m=0):h===12&&(d=i.readBits(1),d&&(m=i.readBits(1))),d&&m&&(x=i.readBits(2))),{profile:s,level:a,tier:c,bitDepth:h,monochrome:f,chromaSubsamplingX:d,chromaSubsamplingY:m,chromaSamplePosition:x}}return null},Jl=r=>{let e=At(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}},qB=[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],XC=r=>{let e=r[0]>>3;return{durationInSamples:qB[e]}},YC=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 $e(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}},KC=async(r,e)=>{switch(w(r.codec),r.codec){case"avc":{let t=await r.getDecoderConfig();w(t);let i;if(t.description){let a=(yt(t.description)[4]&3)+1;i=NC(e.data,a)}else i=Va(e.data);return i.some(n=>Xl(n)===5)?"key":"delta"}case"hevc":{let t=await r.getDecoderConfig();w(t);let i;if(t.description){let a=(yt(t.description)[21]&3)+1;i=NC(e.data,a)}else i=Va(e.data);return i.some(n=>{let o=Wi(n);return 16<=o&&o<=23})?"key":"delta"}case"vp8":return(e.data[0]&1)===0?"key":"delta";case"vp9":{let t=new $e(e.data);if(t.readBits(2)!==2)return null;let i=t.readBits(1);return(t.readBits(1)<<1)+i===3&&t.skipBits(1),t.readBits(1)?null:t.readBits(1)===0?"key":"delta"}case"av1":{let t=!1;for(let{type:i,data:s}of jC(e.data))if(i===1){let n=new $e(s);n.skipBits(4),t=!!n.readBits(1)}else if(i===3||i===6||i===7){if(t)return"key";let n=new $e(s);return n.readBits(1)?null:n.readBits(2)===0?"key":"delta"}return null}default:si(r.codec),w(!1)}};var Ha=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}}},ie=new Uint8Array(8),ur=new DataView(ie.buffer),ke=r=>[(r%256+256)%256],X=r=>(ur.setUint16(0,r,!1),[ie[0],ie[1]]),ZC=r=>(ur.setInt16(0,r,!1),[ie[0],ie[1]]),JC=r=>(ur.setUint32(0,r,!1),[ie[1],ie[2],ie[3]]),F=r=>(ur.setUint32(0,r,!1),[ie[0],ie[1],ie[2],ie[3]]),ai=r=>(ur.setInt32(0,r,!1),[ie[0],ie[1],ie[2],ie[3]]),$i=r=>(ur.setUint32(0,Math.floor(r/2**32),!1),ur.setUint32(4,r,!1),[ie[0],ie[1],ie[2],ie[3],ie[4],ie[5],ie[6],ie[7]]),eE=r=>(ur.setInt16(0,2**8*r,!1),[ie[0],ie[1]]),Mr=r=>(ur.setInt32(0,2**16*r,!1),[ie[0],ie[1],ie[2],ie[3]]),Wp=r=>(ur.setInt32(0,2**30*r,!1),[ie[0],ie[1],ie[2],ie[3]]),$p=(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()},st=(r,e=!1)=>{let t=Array(r.length).fill(null).map((i,s)=>r.charCodeAt(s));return e&&t.push(0),t},jp=r=>{let e=null;for(let t of r)(!e||t.timestamp>e.timestamp)&&(e=t);return e},tE=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]},rE=tE(0),iE=r=>[Mr(r[0]),Mr(r[1]),Wp(r[2]),Mr(r[3]),Mr(r[4]),Wp(r[5]),Mr(r[6]),Mr(r[7]),Wp(r[8])],te=(r,e,t)=>({type:r,contents:e&&new Uint8Array(e.flat(10)),children:t}),ne=(r,e,t,i,s)=>te(r,[ke(e),JC(t),i??[]],s),sE=r=>r.isQuickTime?te("ftyp",[st("qt "),F(512),st("qt ")]):r.fragmented?te("ftyp",[st("iso5"),F(512),st("iso5"),st("iso6"),st("mp41")]):te("ftyp",[st("isom"),F(512),st("isom"),r.holdsAvc?st("avc1"):[],st("mp41")]),th=r=>({type:"mdat",largeSize:r}),Wa=(r,e,t=!1)=>te("moov",void 0,[jB(e,r),...r.map(i=>XB(i,e)),t?BR(r):null]),jB=(r,e)=>{let t=Fe(Math.max(0,...e.filter(o=>o.samples.length>0).map(o=>{let a=jp(o.samples);return a.timestamp+a.duration})),eh),i=Math.max(0,...e.map(o=>o.track.id))+1,s=!Ni(r)||!Ni(t),n=s?$i:F;return ne("mvhd",+s,0,[n(r),n(r),F(eh),n(t),Mr(1),eE(1),Array(10).fill(0),iE(rE),Array(24).fill(0),F(i)])},XB=(r,e)=>te("trak",void 0,[YB(r,e),KB(r,e)]),YB=(r,e)=>{let t=jp(r.samples),i=Fe(t?t.timestamp+t.duration:0,eh),s=!Ni(e)||!Ni(i),n=s?$i:F,o;if(r.type==="video"){let a=r.track.metadata.rotation;o=tE(a??0)}else o=rE;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),eE(r.type==="audio"?1:0),X(0),iE(o),Mr(r.type==="video"?r.info.width:0),Mr(r.type==="video"?r.info.height:0)])},KB=(r,e)=>te("mdia",void 0,[QB(r,e),eR(r),tR(r)]),QB=(r,e)=>{let t=jp(r.samples),i=Fe(t?t.timestamp+t.duration:0,r.timescale),s=!Ni(e)||!Ni(i),n=s?$i:F,o=0;for(let a of r.track.metadata.languageCode??mt)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)])},ZB={video:"vide",audio:"soun",subtitle:"text"},JB={video:"MediabunnyVideoHandler",audio:"MediabunnySoundHandler",subtitle:"MediabunnyTextHandler"},eR=r=>ne("hdlr",0,0,[st("mhlr"),st(ZB[r.type]),F(0),F(0),F(0),st(JB[r.type],!0)]),tR=r=>te("minf",void 0,[nR[r.type](),oR(),uR(r)]),rR=()=>ne("vmhd",0,1,[X(0),X(0),X(0),X(0)]),iR=()=>ne("smhd",0,0,[X(0),X(0)]),sR=()=>ne("nmhd",0,0),nR={video:rR,audio:iR,subtitle:sR},oR=()=>te("dinf",void 0,[aR()]),aR=()=>ne("dref",0,0,[F(1)],[cR()]),cR=()=>ne("url ",0,1),uR=r=>{let e=r.compositionTimeOffsetTable.length>1||r.compositionTimeOffsetTable.some(t=>t.sampleCompositionTimeOffset!==0);return te("stbl",void 0,[lR(r),SR(r),e?AR(r):null,e?PR(r):null,CR(r),ER(r),kR(r),vR(r)])},lR=r=>{let e;if(r.type==="video")e=hR(NR[r.track.source._codec],r);else if(r.type==="audio"){let t=lE(r.track.source._codec,r.muxer.isQuickTime);w(t),e=gR(t,r)}else r.type==="subtitle"&&(e=TR(VR[r.track.source._codec],r));return w(e),ne("stsd",0,0,[F(1)],[e])},hR=(r,e)=>te(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),ZC(65535)],[LR[e.track.source._codec](e),dC(e.info.decoderConfig.colorSpace)?dR(e):null]),dR=r=>te("colr",[st("nclx"),X(zi[r.info.decoderConfig.colorSpace.primaries]),X(Vi[r.info.decoderConfig.colorSpace.transfer]),X(Hi[r.info.decoderConfig.colorSpace.matrix]),ke((r.info.decoderConfig.colorSpace.fullRange?1:0)<<7)]),fR=r=>r.info.decoderConfig&&te("avcC",[...yt(r.info.decoderConfig.description)]),mR=r=>r.info.decoderConfig&&te("hvcC",[...yt(r.info.decoderConfig.description)]),QC=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?zi[e.colorSpace.primaries]:2,l=t[6]?Number(t[6]):e.colorSpace?.transfer?Vi[e.colorSpace.transfer]:2,h=t[7]?Number(t[7]):e.colorSpace?.matrix?Hi[e.colorSpace.matrix]:2;return ne("vpcC",1,0,[ke(i),ke(s),ke(c),ke(u),ke(l),ke(h),X(0)])},pR=r=>te("av1C",PC(r.info.decoderConfig.codec)),gR=(r,e)=>{let t=0,i,s=16;if(Ie.includes(e.track.source._codec)){let n=e.track.source._codec,{sampleSize:o}=Tt(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)],te(r,i,[zR(e.track.source._codec,e.muxer.isQuickTime)?.(e)??null])},qp=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=[...ke(e),...ke(21),...JC(0),...F(0),...F(0)];if(r.info.decoderConfig.description){let i=yt(r.info.decoderConfig.description);t=[...t,...ke(5),...$p(i.byteLength),...i]}return t=[...X(1),...ke(0),...ke(4),...$p(t.length),...t,...ke(6),...ke(1),...ke(2)],t=[...ke(3),...$p(t.length),...t],ne("esds",0,0,t)},oi=r=>te("wave",void 0,[xR(r),_R(r),te("\0\0\0\0")]),xR=r=>te("frma",[st(lE(r.track.source._codec,r.muxer.isQuickTime))]),_R=r=>{let{littleEndian:e}=Tt(r.track.source._codec);return te("enda",[X(+e)])},bR=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=yt(a),u=Jl(c);e=u.outputChannelCount,t=u.preSkip,i=u.inputSampleRate,s=u.outputGain,n=u.channelMappingFamily,u.channelMappingTable&&(o=u.channelMappingTable)}return te("dOps",[ke(0),ke(e),X(t),F(i),ZC(s),ke(n),...o])},yR=r=>{let e=r.info.decoderConfig?.description;w(e);let t=yt(e);return ne("dfLa",0,0,[...t.subarray(4)])},cr=r=>{let{littleEndian:e,sampleSize:t}=Tt(r.track.source._codec),i=+e;return ne("pcmC",0,0,[ke(i),ke(8*t)])},TR=(r,e)=>te(r,[Array(6).fill(0),X(1)],[HR[e.track.source._codec](e)]),wR=r=>te("vttC",[...Li.encode(r.info.config.description)]);var SR=r=>ne("stts",0,0,[F(r.timeToSampleTable.length),r.timeToSampleTable.map(e=>[F(e.sampleCount),F(e.sampleDelta)])]),vR=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))])},CR=r=>ne("stsc",0,0,[F(r.compactlyCodedChunkTable.length),r.compactlyCodedChunkTable.map(e=>[F(e.firstChunk),F(e.samplesPerChunk),F(1)])]),ER=r=>{if(r.type==="audio"&&r.info.requiresPcmTransformation){let{sampleSize:e}=Tt(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))])},kR=r=>r.finalizedChunks.length>0&&he(r.finalizedChunks).offset>=2**32?ne("co64",0,0,[F(r.finalizedChunks.length),r.finalizedChunks.map(e=>$i(e.offset))]):ne("stco",0,0,[F(r.finalizedChunks.length),r.finalizedChunks.map(e=>F(e.offset))]),AR=r=>ne("ctts",1,0,[F(r.compositionTimeOffsetTable.length),r.compositionTimeOffsetTable.map(e=>[F(e.sampleCount),ai(e.sampleCompositionTimeOffset)])]),PR=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,[ai(n),ai(e),ai(t),ai(i),ai(s)])},BR=r=>te("mvex",void 0,r.map(RR)),RR=r=>ne("trex",0,0,[F(r.track.id),F(1),F(0),F(0),F(0)]),Xp=(r,e)=>te("moof",void 0,[DR(r),...e.map(MR)]),DR=r=>ne("mfhd",0,0,[F(r)]),nE=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},MR=r=>te("traf",void 0,[IR(r),FR(r),UR(r)]),IR=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:nE(t)};return ne("tfhd",0,e,[F(r.track.id),F(i.duration),F(i.size),F(i.flags)])},FR=r=>(w(r.currentChunk),ne("tfdt",1,0,[$i(Fe(r.currentChunk.startTimestamp,r.timescale))])),UR=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(nE),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?ai(s[g]):[]])])},oE=r=>te("mfra",void 0,[...r.map(OR),GR()]),OR=(r,e)=>ne("tfra",1,0,[F(r.track.id),F(63),F(r.finalizedChunks.length),r.finalizedChunks.map(i=>[$i(Fe(i.samples[0].timestamp,r.timescale)),$i(i.moofOffset),F(e+1),F(1),F(1)])]),GR=()=>ne("mfro",0,0,[F(0)]),aE=()=>te("vtte"),cE=(r,e,t,i,s)=>te("vttc",void 0,[s!==null?te("vsid",[ai(s)]):null,t!==null?te("iden",[...Li.encode(t)]):null,e!==null?te("ctim",[...Li.encode(GC(e))]):null,i!==null?te("sttg",[...Li.encode(i)]):null,te("payl",[...Li.encode(r)])]),uE=r=>te("vtta",[...Li.encode(r)]),NR={avc:"avc1",hevc:"hvc1",vp8:"vp08",vp9:"vp09",av1:"av01"},LR={avc:fR,hevc:mR,vp8:QC,vp9:QC,av1:pR},lE=(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"}},zR=(r,e)=>{switch(r){case"aac":return qp;case"mp3":return qp;case"opus":return bR;case"vorbis":return qp;case"flac":return yR}if(e)switch(r){case"pcm-s24":return oi;case"pcm-s24be":return oi;case"pcm-s32":return oi;case"pcm-s32be":return oi;case"pcm-f32":return oi;case"pcm-f32be":return oi;case"pcm-f64":return oi;case"pcm-f64be":return oi}else switch(r){case"pcm-s16":return cr;case"pcm-s16be":return cr;case"pcm-s24":return cr;case"pcm-s24be":return cr;case"pcm-s32":return cr;case"pcm-s32be":return cr;case"pcm-f32":return cr;case"pcm-f32be":return cr;case"pcm-f64":return cr;case"pcm-f64be":return cr}return null},VR={webvtt:"wvtt"},HR={webvtt:wR};var rh=class{constructor(e){this.mutex=new kt,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 ih=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}},Yp=2**16,Kp=2**32,dn=class extends ih{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(Yp,{maxByteLength:Kp})}catch{this.buffer=new ArrayBuffer(Yp),this.supportsResize=!1}else this.buffer=new ArrayBuffer(Yp);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>Kp)throw new Error(`ArrayBuffer exceeded maximum size of ${Kp} 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)}},WR=2**24,$R=2,sh=class extends ih{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??WR}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>$R){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 qi=class{constructor(){this._output=null}},$a=class extends qi{constructor(){super(...arguments),this.buffer=null}_createWriter(){return new dn(this)}},qa=class extends qi{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 sh(this)}};var nh=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 ji=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 eh=1e3,qR=2082844800,Fe=(r,e,t=!0)=>{let i=r*e;return t?Math.round(i):i},ah=class extends rh{constructor(e,t){super(e),this.auxTarget=new $a,this.auxWriter=this.auxTarget._createWriter(),this.auxBoxWriter=new Ha(this.auxWriter),this.mdat=null,this.trackDatas=[],this.allTracksKnown=Ke(),this.creationTime=Math.floor(Date.now()/1e3)+qR,this.finalizedChunks=[],this.nextFragmentNumber=1,this.maxWrittenTimestamp=-1/0,this.format=t,this.writer=e._writer,this.boxWriter=new Ha(this.writer),this.isQuickTime=t instanceof mn;let i=this.writer instanceof dn?"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(sE({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=th(!1):this.isFragmented||(this.format._options.onMdat&&this.writer.startTrackingWrites(),this.mdat=th(!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 nh({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;FC(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=Yl(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=$C(u),o=!0}else if(e.source._codec==="hevc"&&!n.description){let u=Kl(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=qC(u),o=!0}let a=yC(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;UC(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&&Ie.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;OC(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=WC(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}=Tt(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=aE();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;Vp.lastIndex=0;let h=Vp.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=uE(l.notes);this.auxBoxWriter.writeBox(x)}let m=cE(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=Wa(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=Xp(t,i),n=this.writer.getPos(),o=n+this.boxWriter.measureBox(s),a=o+8,c=1/0;for(let d of i){d.currentChunk.offset=a,d.currentChunk.moofOffset=n;for(let m of d.currentChunk.samples)a+=m.size;c=Math.min(c,d.currentChunk.startTimestamp)}let u=a-o,l=u>=2**32;if(l)for(let d of i)d.currentChunk.offset+=8;this.format._options.onMoof&&this.writer.startTrackingWrites();let h=Xp(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,c)}w(this.writer.getPos()===o),this.format._options.onMdat&&this.writer.startTrackingWrites();let f=th(l);f.size=u,this.boxWriter.writeBox(f),this.writer.seek(o+(l?16:8));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=Wa(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=Wa(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=oE(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=Wa(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 jR=[I.EBML,I.Segment],XR=[I.EBMLMaxIDLength,I.EBMLMaxSizeLength,I.SeekHead,I.Info,I.Cluster,I.Tracks,I.Cues,I.Attachments,I.Chapters,I.Tags],ch=[...jR,...XR];var hE=8,uh=2,Xi=4+hE,Yi=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<hE;)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-Xi;){this.reader.rangeIsLoaded(this.pos,this.pos+Xi)||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}},Nt={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 dE=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 YR={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]},KR={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]},QR={0:[11025,12e3,8e3,-1],2:[22050,24e3,16e3,-1],3:[44100,48e3,32e3,-1]},fE=1483304551,mE=1231971951,ZR=(r,e,t,i)=>Math.floor(r===3?(12*e/t+i)*4:144*e/t+i),pE=(r,e)=>r===3?e===3?21:36:e===3?13:21,gE=(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?YR[c]?.[u]:KR[c]?.[u];if(!_||_===-1)return null;let y=_*1e3,S=QR[a]?.[l];if(!S||S===-1)return null;let T=ZR(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 Qp=1399285583,JR=79764919,xE=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^JR:e<<1;xE[r]=e>>>0&4294967295}var _E=r=>{let e=At(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^xE[i>>>24^n])>>>0}return e.setUint32(22,t,!0),i},bE=(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<<bC(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=XC(r).durationInSamples);return{durationInSamples:i,vorbisBlockSize:s}},yE=r=>{let e="audio/ogg";if(r.codecStrings){let t=[...new Set(r.codecStrings)];e+=`; codecs="${t.join(", ")}"`}return e};var gn=27,Qi=282,TE=Qi+65025,pn=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()!==Qp)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===Qp)return!0;this.pos+=1}}return!1}};var Bt=class{constructor(e){this.input=e}};var pt=new Uint8Array(0),de=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===pt&&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===pt}get microsecondTimestamp(){return Math.trunc(ar*this.timestamp)}get microsecondDuration(){return Math.trunc(ar*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 wE=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},SE=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},vE=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},CE=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 lr=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(ar*this.timestamp)}get microsecondDuration(){return Math.trunc(ar*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=yt(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*ar),duration:Math.trunc((t.duration??0)*ar)}),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),ja(this._data)?new r(this._data.clone(),{timestamp:this.timestamp,duration:this.duration,rotation:this.rotation}):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,rotation:this.rotation}):new r(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||(ja(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),ja(this._data)?this._data.allocationSize():this._data instanceof Uint8Array?this._data.byteLength:this.codedWidth*this.codedHeight*4}async copyTo(e){if(!cn(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),ja(this._data))await this._data.copyTo(e);else if(this._data instanceof Uint8Array)yt(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);yt(e).set(s.data)}}toVideoFrame(){if(this._closed)throw new Error("VideoSample is closed.");return w(this._data!==null),ja(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}},ja=r=>typeof VideoFrame<"u"&&r instanceof VideoFrame,Zp=new Set(["f32","f32-planar","s16","s16-planar","s32","s32-planar","u8","u8-planar"]),Lt=class r{get microsecondTimestamp(){return Math.trunc(ar*this.timestamp)}get microsecondDuration(){return Math.trunc(ar*this.duration)}constructor(e){if(this._closed=!1,Ya(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(!Zp.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/(Xa(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*Xa(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&&!Zp.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=Xa(t),o=lh(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(!cn(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&&!Zp.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=Xa(a),d=lh(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=At(e),_=tD(a);if(Ya(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=eD(T),v=Xa(T),E=lh(T);for(let M=0;M<h;M++)if(d){let A=M*f,B;E?B=(i*c+(M+l))*v:B=((M+l)*u+i)*v;let k=C(S,B);_(g,A,k)}else for(let A=0;A<u;A++){let k=(M*u+A)*f,L;E?L=(A*c+(M+l))*v:L=((M+l)*u+A)*v;let j=C(S,L);_(g,k,j)}}}clone(){if(this._closed)throw new Error("AudioSample is closed.");if(Ya(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||(Ya(this._data)?this._data.close():this._data=new Uint8Array(0),this._closed=!0)}toAudioData(){if(this._closed)throw new Error("AudioSample is closed.");if(Ya(this._data)){if(this._data.timestamp===this.microsecondTimestamp)return this._data.clone();if(lh(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}static fromAudioBuffer(e,t){if(!(e instanceof AudioBuffer))throw new TypeError("audioBuffer must be an AudioBuffer.");let i=64*1024*1024,s=e.numberOfChannels,n=e.sampleRate,o=e.length,a=Math.floor(i/s),c=0,u=o,l=[];for(;u>0;){let h=Math.min(a,u),f=new Float32Array(s*h);for(let m=0;m<s;m++)e.copyFromChannel(f.subarray(m*h,m*h+h),m,c);let d=new r({format:"f32-planar",sampleRate:n,numberOfFrames:h,numberOfChannels:s,timestamp:t+c/n,data:f});l.push(d),c+=h,u-=h}return l}},Xa=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")}},lh=r=>{switch(r){case"u8-planar":case"s16-planar":case"s32-planar":case"f32-planar":return!0;default:return!1}},eD=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)}},tD=r=>{switch(r){case"u8":case"u8-planar":return(e,t,i)=>e.setUint8(t,Qe((i+1)*127.5,0,255));case"s16":case"s16-planar":return(e,t,i)=>e.setInt16(t,Qe(Math.round(i*32767),-32768,32767),!0);case"s32":case"s32-planar":return(e,t,i)=>e.setInt32(t,Qe(Math.round(i*2147483647),-2147483648,2147483647),!0);case"f32":case"f32-planar":return(e,t,i)=>e.setFloat32(t,i,!0)}},Ya=r=>typeof AudioData<"u"&&r instanceof AudioData;var xn=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.");if(r.verifyKeyPackets!==void 0&&typeof r.verifyKeyPackets!="boolean")throw new TypeError("options.verifyKeyPackets, when defined, must be a boolean.");if(r.verifyKeyPackets&&r.metadataOnly)throw new TypeError("options.verifyKeyPackets and options.metadataOnly cannot be enabled together.")},Zi=r=>{if(typeof r!="number"||Number.isNaN(r))throw new TypeError("timestamp must be a number.")},Jp=(r,e,t)=>t.verifyKeyPackets?e.then(async i=>{if(!i||i.type==="delta")return i;let s=await r.determinePacketType(i);return s&&(i.type=s),i}):e,Ji=class{constructor(e){if(!(e instanceof _n))throw new TypeError("track must be an InputTrack.");this._track=e}getFirstPacket(e={}){return xn(e),Jp(this._track,this._track._backing.getFirstPacket(e),e)}getPacket(e,t={}){return Zi(e),xn(t),Jp(this._track,this._track._backing.getPacket(e,t),t)}getNextPacket(e,t={}){if(!(e instanceof de))throw new TypeError("packet must be an EncodedPacket.");return xn(t),Jp(this._track,this._track._backing.getNextPacket(e,t),t)}async getKeyPacket(e,t={}){if(Zi(e),xn(t),!t.verifyKeyPackets)return this._track._backing.getKeyPacket(e,t);let i=await this._track._backing.getKeyPacket(e,t);return!i||i.type==="delta"?i:await this._track.determinePacketType(i)==="delta"?this.getKeyPacket(i.timestamp-1/this._track.timeResolution,t):i}async getNextKeyPacket(e,t={}){if(!(e instanceof de))throw new TypeError("packet must be an EncodedPacket.");if(xn(t),!t.verifyKeyPackets)return this._track._backing.getNextKeyPacket(e,t);let i=await this._track._backing.getNextKeyPacket(e,t);return!i||i.type==="delta"?i:await this._track.determinePacketType(i)==="delta"?this.getNextKeyPacket(i,t):i}packets(e,t,i={}){if(e!==void 0&&!(e instanceof de))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 de))throw new TypeError("endPacket must be an EncodedPacket.");xn(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}}}},Ka=class{constructor(e,t){this.onSample=e,this.onError=t}},Qa=class{mediaSamplesInRange(e=0,t=1/0){Zi(e),Zi(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,{verifyKeyPackets:!0})??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,{verifyKeyPackets:!0}):null;v&&(S=v)}let T=g.packets(_,S);for(await T.next();y&&!h;){let C=EE(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){pC(e);let t=mC(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=EE(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(Zi(C),l)break;let v=await x.getPacket(C),E=v&&await x.getKeyPacket(C,{verifyKeyPackets:!0});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}}}},EE=r=>r===0?40:8,eg=class extends Ka{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 ii,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=J(this.sampleQueue,u.timestamp,h=>h.timestamp);this.sampleQueue.splice(l+1,0,u)},c=Wl.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 lr))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 lr(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}},Za=class extends Qa{constructor(e){if(!(e instanceof Ir))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 eg(e,t,i,n,s,o)}_createPacketSink(){return new Ji(this._videoTrack)}async getSample(e){Zi(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 tg=class extends Ka{constructor(e,t,i,s){super(e,t),this.decoder=null,this.customDecoder=null,this.customDecoderCallSerializer=new ii,this.customDecoderQueueSize=0;let n=a=>{let c=s.sampleRate;a.setTimestamp(Math.round(a.timestamp*c)/c),e(a)},o=$l.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 Lt))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 Lt(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())}},rg=class extends Ka{constructor(e,t,i){super(e,t),this.decoderConfig=i,this.currentTimestamp=null,w(Ie.includes(i.codec)),this.codec=i.codec;let{dataType:s,sampleSize:n,littleEndian:o}=Tt(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)=>SE(a.getUint8(c)):s==="alaw"?this.readInputValue=(a,c)=>CE(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)=>Op(a,c,o)-2**23:s==="signed"?this.readInputValue=(a,c)=>gC(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:si(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:si(n),w(!1)}}getDecodeQueueSize(){return 0}decode(e){let t=At(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 Lt({format:this.outputFormat,data:n,numberOfChannels:this.decoderConfig.numberOfChannels,sampleRate:this.decoderConfig.sampleRate,numberOfFrames:i,timestamp:c});this.onSample(u)}async flush(){}close(){}},Ja=class extends Qa{constructor(e){if(!(e instanceof nt))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),Ie.includes(s.codec)?new rg(e,t,s):new tg(e,t,i,s)}_createPacketSink(){return new Ji(this._audioTrack)}async getSample(e){Zi(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 _n=class{constructor(e){this._backing=e}isVideoTrack(){return this instanceof Ir}isAudioTrack(){return this instanceof nt}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 Ji(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}}},Ir=class extends _n{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),Wl.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}}async determinePacketType(e){if(!(e instanceof de))throw new TypeError("packet must be an EncodedPacket.");if(e.isMetadataOnly)throw new TypeError("packet must not be metadata-only to determine its type.");return this.codec===null?null:KC(this,e)}},nt=class extends _n{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),$l.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}}async determinePacketType(e){if(!(e instanceof de))throw new TypeError("packet must be an EncodedPacket.");return this.codec===null?null:"key"}};var Rt=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=J(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;fC(this.loadingSegments,o),this.insertIntoLoadedSegments(e,a)}rangeIsLoaded(e,t){if(t<=e)return!0;let i=J(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=J(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=J(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=J(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 es=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)}readU64(){let e,t;return this.littleEndian?(e=this.readU32(),t=this.readU32()):(t=this.readU32(),e=this.readU32()),t*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}};var Fr;(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"})(Fr||(Fr={}));var hh=class extends Bt{constructor(e){super(e),this.metadataPromise=null,this.dataStart=-1,this.dataSize=-1,this.audioInfo=null,this.tracks=[],this.metadataReader=new es(e._mainReader),this.chunkReader=new es(new Rt(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!=="RIFX";let i=t==="RF64",s=this.metadataReader.readU32(),n=i?e:Math.min(s+8,e);if(this.metadataReader.readAscii(4)!=="WAVE")throw new Error("Invalid WAVE file - wrong format");this.metadataReader.pos=12;let a=0,c=null;for(;this.metadataReader.pos<n;){await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+8);let l=this.metadataReader.readAscii(4),h=this.metadataReader.readU32(),f=this.metadataReader.pos;if(i&&a===0&&l!=="ds64")throw new Error('Invalid RF64 file: First chunk must be "ds64".');if(l==="fmt ")await this.parseFmtChunk(h);else if(l==="data")c??=h,this.dataStart=this.metadataReader.pos,this.dataSize=Math.min(c,n-this.dataStart);else if(l==="ds64"){let d=this.metadataReader.readU64();c=this.metadataReader.readU64(),n=Math.min(d+8,e)}this.metadataReader.pos=f+h+(h&1),a++}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 nt(new ig(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===Fr.EXTENSIBLE){this.metadataReader.pos+=6;let l=this.metadataReader.readBytes(16);t=l[0]|l[1]<<8}}(t===Fr.MULAW||t===Fr.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===Fr.MULAW)return"ulaw";if(this.audioInfo.format===Fr.ALAW)return"alaw";if(this.audioInfo.format===Fr.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===Fr.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}},bn=2048,ig=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 mt}async getFirstTimestamp(){return 0}async getPacketAtIndex(e,t){w(this.demuxer.audioInfo);let i=e*bn*this.demuxer.audioInfo.blockSizeInBytes;if(i>=this.demuxer.dataSize)return null;let s=Math.min(bn*this.demuxer.audioInfo.blockSizeInBytes,this.demuxer.dataSize-i),n;if(t.metadataOnly)n=pt;else{let c=bn*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*bn/this.demuxer.audioInfo.sampleRate,a=s/this.demuxer.audioInfo.blockSizeInBytes/this.demuxer.audioInfo.sampleRate;return new de(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/bn);return this.getPacketAtIndex(i,t)}getNextPacket(e,t){w(this.demuxer.audioInfo);let i=Math.round(e.timestamp*this.demuxer.audioInfo.sampleRate/bn);return this.getPacketAtIndex(i+1,t)}getKeyPacket(e,t){return this.getPacket(e,t)}getNextKeyPacket(e,t){return this.getNextPacket(e,t)}};var yn=class{getSupportedVideoCodecs(){return this.getSupportedCodecs().filter(e=>Dr.includes(e))}getSupportedAudioCodecs(){return this.getSupportedCodecs().filter(e=>ni.includes(e))}getSupportedSubtitleCodecs(){return this.getSupportedCodecs().filter(e=>hn.includes(e))}_codecUnsupportedHint(e){return""}},ec=class extends yn{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 ah(e,this)}},Tn=class extends ec{get _name(){return"MP4"}get fileExtension(){return".mp4"}get mimeType(){return"video/mp4"}getSupportedCodecs(){return[...Dr,...Np,"pcm-s16","pcm-s16be","pcm-s24","pcm-s24be","pcm-s32","pcm-s32be","pcm-f32","pcm-f32be","pcm-f64","pcm-f64be",...hn]}_codecUnsupportedHint(e){return new mn().getSupportedCodecs().includes(e)?" Switching to MOV will grant support for this codec.":""}},mn=class extends ec{get _name(){return"MOV"}get fileExtension(){return".mov"}get mimeType(){return"video/quicktime"}getSupportedCodecs(){return[...Dr,...ni]}_codecUnsupportedHint(e){return new Tn().getSupportedCodecs().includes(e)?" Switching to MP4 will grant support for this codec.":""}};var wn=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(){}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()}},Sn=class extends wn{constructor(e){if(super(),this._connectedTrack=null,!Dr.includes(e))throw new TypeError(`Invalid video codec '${e}'. Must be one of: ${Dr.join(", ")}.`);this._codec=e}};var rD=r=>{if(!r||typeof r!="object")throw new TypeError("Encoding config must be an object.");if(!Dr.includes(r.codec))throw new TypeError(`Invalid video codec '${r.codec}'. Must be one of: ${Dr.join(", ")}.`);if(!(r.bitrate instanceof Pt)&&(!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&&zp(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.")},sg=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 ii,this.customEncoderQueueSize=0,this.encoderError=null}async add(e,t,i){try{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}finally{t&&e.close()}}async ensureEncoder(e){if(!this.encoder)return this.ensureEncoderPromise=(async()=>{let t=e.codedWidth,i=e.codedHeight,s=this.encodingConfig.bitrate instanceof Pt?this.encodingConfig.bitrate._toVideoBitrate(this.encodingConfig.codec,t,i):this.encodingConfig.bitrate,n={codec:this.encodingConfig.fullCodecString??AC(this.encodingConfig.codec,t,i,s),width:t,height:i,bitrate:s,framerate:this.source._connectedTrack?.metadata.frameRate,latencyMode:this.encodingConfig.latencyMode,...MC(this.encodingConfig.codec)};this.encodingConfig.onEncoderConfig?.(n);let o=TC.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 de))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=de.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}},tc=class extends Sn{constructor(e){rD(e),super(e.codec),this._encoder=new sg(this,e)}add(e,t){if(!(e instanceof lr))throw new TypeError("videoSample must be a VideoSample.");return this._encoder.add(e,!1,t)}_flushAndClose(){return this._encoder.flushAndClose()}};var vn=class extends wn{constructor(e){if(super(),this._connectedTrack=null,!ni.includes(e))throw new TypeError(`Invalid audio codec '${e}'. Must be one of: ${ni.join(", ")}.`);this._codec=e}};var iD=r=>{if(!r||typeof r!="object")throw new TypeError("Encoding config must be an object.");if(!ni.includes(r.codec))throw new TypeError(`Invalid audio codec '${r.codec}'. Must be one of: ${ni.join(", ")}.`);if(r.bitrate===void 0&&(!Ie.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 Pt)&&(!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&&zp(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.")},ng=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 ii,this.customEncoderQueueSize=0,this.encoderError=null}async add(e,t){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;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}}finally{t&&e.close()}}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 de(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 Pt?this.encodingConfig.bitrate._toAudioBitrate(this.encodingConfig.codec):this.encodingConfig.bitrate,n={codec:this.encodingConfig.fullCodecString??BC(this.encodingConfig.codec,t,i),numberOfChannels:t,sampleRate:i,bitrate:s,...IC(this.encodingConfig.codec)};this.encodingConfig.onEncoderConfig?.(n);let o=wC.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 de))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(Ie.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=de.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}=Tt(e);switch(this.outputSampleSize=i,i){case 1:t==="unsigned"?this.writeOutputValue=(n,o,a)=>n.setUint8(o,Qe((a+1)*127.5,0,255)):t==="signed"?this.writeOutputValue=(n,o,a)=>{n.setInt8(o,Qe(Math.round(a*128),-128,127))}:t==="ulaw"?this.writeOutputValue=(n,o,a)=>{let c=Qe(Math.floor(a*32767),-32768,32767);n.setUint8(o,wE(c))}:t==="alaw"?this.writeOutputValue=(n,o,a)=>{let c=Qe(Math.floor(a*32767),-32768,32767);n.setUint8(o,vE(c))}:w(!1);break;case 2:t==="unsigned"?this.writeOutputValue=(n,o,a)=>n.setUint16(o,Qe((a+1)*32767.5,0,65535),s):t==="signed"?this.writeOutputValue=(n,o,a)=>n.setInt16(o,Qe(Math.round(a*32767),-32768,32767),s):w(!1);break;case 3:t==="unsigned"?this.writeOutputValue=(n,o,a)=>Gp(n,o,Qe((a+1)*83886075e-1,0,16777215),s):t==="signed"?this.writeOutputValue=(n,o,a)=>xC(n,o,Qe(Math.round(a*8388607),-8388608,8388607),s):w(!1);break;case 4:t==="unsigned"?this.writeOutputValue=(n,o,a)=>n.setUint32(o,Qe((a+1)*21474836475e-1,0,4294967295),s):t==="signed"?this.writeOutputValue=(n,o,a)=>n.setInt32(o,Qe(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:si(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}},rc=class extends vn{constructor(e){iD(e),super(e.codec),this._encoder=new ng(this,e)}add(e){if(!(e instanceof Lt))throw new TypeError("audioSample must be an AudioSample.");return this._encoder.add(e,!1)}_flushAndClose(){return this._encoder.flushAndClose()}};var ic=class extends wn{constructor(e){if(super(),this._connectedTrack=null,!hn.includes(e))throw new TypeError(`Invalid subtitle codec '${e}'. Must be one of: ${hn.join(", ")}.`);this._codec=e}};var kE=["video","audio","subtitle"],og=r=>{if(!r||typeof r!="object")throw new TypeError("metadata must be an object.");if(r.languageCode!==void 0&&!ln(r.languageCode))throw new TypeError("metadata.languageCode must be a three-letter, ISO 639-2/T language code.")},sc=class{constructor(e){if(this.state="pending",this._tracks=[],this._startPromise=null,this._cancelPromise=null,this._finalizePromise=null,this._mutex=new kt,!e||typeof e!="object")throw new TypeError("options must be an object.");if(!(e.format instanceof yn))throw new TypeError("options.format must be an OutputFormat.");if(!(e.target instanceof qi))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 Sn))throw new TypeError("source must be a VideoSource.");if(og(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 vn))throw new TypeError("source must be an AudioSource.");og(t),this._addTrack("audio",e,t)}addSubtitleTrack(e,t={}){if(!(e instanceof ic))throw new TypeError("source must be a SubtitleSource.");og(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 kE){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();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(),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 ts=class{constructor(){this._sizePromise=null,this.onread=null}getSize(){return this._sizePromise??=this._retrieveSize()}};var nc=class extends ts{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}},oc=class extends ts{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 Hl(this._url,za(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 i.status===200&&(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;try{let i=await Hl(this._url,za(this._options.requestInit??{},{method:"HEAD"}),this._options.getRetryDelay??(()=>null));if(i.ok){let s=i.headers.get("Content-Length");if(s)return parseInt(s)}}catch{}let e=await Hl(this._url,za(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])}}else if(e.status===200)return this._fullData=await e.arrayBuffer(),this._fullData.byteLength;let{response:t}=await this._makeRequest();return t.byteLength}};var dh=class extends Bt{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 kt,this.metadataReader=new ji(e._mainReader),this.chunkReader=new ji(new Rt(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 nh({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&&Ie.includes(e.info.codec)&&t.sampleCompositionTimeOffsets.length===0){w(e.info?.type==="audio");let s=Tt(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=J(t.sampleTimingEntries,f,E=>E.startIndex),x=t.sampleTimingEntries[m],g=J(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=Be(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=J(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=Be(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),PE(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:mt,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 Ir(new ag(n)),this.tracks.push(s)}else if(s.info.type==="audio"&&s.info.numberOfChannels!==-1){let n=s;s.inputTrack=new nt(new cg(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+=16;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=Gl(_C(aD(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;ln(s.languageCode)||(s.languageCode=mt)}}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+=24,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+=8;let h=this.metadataReader.readU16();this.metadataReader.pos+=6;let f=this.metadataReader.readU16(),d=this.metadataReader.readU16();this.metadataReader.pos+=4;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+=8;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+=8,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:Nl[o],transfer:Ll[a],matrix:zl[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=Lp(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 $e(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=J(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=J(this.currentTrack.fragments,this.currentFragment.moofOffset,c=>c.moofOffset);if(this.currentTrack.fragments.splice(n+1,0,this.currentFragment),s.firstKeyFrameTimestamp!==null){let c=J(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&&(PE(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 M;h?M=this.metadataReader.readU32():(w(s.currentFragmentState.defaultSampleFlags!==null),M=s.currentFragmentState.defaultSampleFlags),C===0&&x!==null&&(M=x);let A=0;f&&(n===0?A=this.metadataReader.readU32():A=this.metadataReader.readI32());let B=!(M&65536);y.samples.push({presentationTimestamp:_+A,duration:v,byteOffset:g,byteSize:E,isKeyFrame:B}),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 M=y.presentationTimestamps[C+1];E.duration=M.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}},fh=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){let t=await this.fetchPacketForSampleIndex(0,e);return t||!this.internalTrack.demuxer.isFragmented?t:this.performFragmentedLookup(()=>{let i=this.internalTrack.demuxer.fragments[0]??null;if(i?.isKnownToBeFirstFragment){let s=i;for(;s;){if(s.trackData.get(this.internalTrack.id))return{fragmentIndex:Be(this.internalTrack.fragments,s.moofOffset,o=>o.moofOffset),sampleIndex:0,correctSampleFound:!0};s=s.nextFragment}}return{fragmentIndex:-1,sampleIndex:-1,correctSampleFound:!1}},-1/0,1/0,e)}mapTimestampIntoTimescale(e){return un(e*this.internalTrack.timescale,14)+this.internalTrack.editListOffset}async getPacket(e,t){let i=this.mapTimestampIntoTimescale(e),s=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),n=AE(s,i),o=await this.fetchPacketForSampleIndex(n,t);return!BE(s)||!this.internalTrack.demuxer.isFragmented?o:this.performFragmentedLookup(()=>this.findSampleInFragmentsForTimestamp(i),i,i,t)}async getNextPacket(e,t){let i=this.packetToSampleIndex.get(e);if(i!==void 0)return this.fetchPacketForSampleIndex(i+1,t);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=Be(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=Be(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)}async getKeyPacket(e,t){let i=this.mapTimestampIntoTimescale(e),s=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),n=AE(s,i),o=n===-1?-1:nD(s,n),a=await this.fetchPacketForSampleIndex(o,t);return!BE(s)||!this.internalTrack.demuxer.isFragmented?a:this.performFragmentedLookup(()=>this.findKeySampleInFragmentsForTimestamp(i),i,i,t)}async getNextKeyPacket(e,t){let i=this.packetToSampleIndex.get(e);if(i!==void 0){let c=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),u=oD(c,i);return this.fetchPacketForSampleIndex(u,t)}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=Be(this.internalTrack.fragments,s.fragment.moofOffset,c=>c.moofOffset);return w(a!==-1),this.performFragmentedLookup(()=>{let c=n.samples.findIndex((u,l)=>u.isKeyFrame&&l>s.sampleIndex);if(c!==-1)return{fragmentIndex:a,sampleIndex:c,correctSampleFound:!0};{let u=s.fragment;for(;u.nextFragment;){u=u.nextFragment;let l=u.trackData.get(this.internalTrack.id);if(l&&l.firstKeyFrameTimestamp!==null){let h=Be(this.internalTrack.fragments,u.moofOffset,d=>d.moofOffset);w(h!==-1);let f=l.samples.findIndex(d=>d.isKeyFrame);return w(f!==-1),{fragmentIndex:h,sampleIndex:f,correctSampleFound:!0}}}return{fragmentIndex:a,sampleIndex:-1,correctSampleFound:!1}}},o.presentationTimestamp,1/0,t)}async fetchPacketForSampleIndex(e,t){if(e===-1)return null;let i=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),s=sD(i,e);if(!s)return null;let n;t.metadataOnly?n=pt:(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 de(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=pt:(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 de(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=J(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=J(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=J(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=Be(this.internalTrack.fragments,o.moofOffset,l=>l.moofOffset),w(i!==-1);let a=o.trackData.get(this.internalTrack.id),c=Vl(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?J(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=Be(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:M,sampleIndex:A,correctSampleFound:B}=e();if(B){let k=this.internalTrack.fragments[M];return this.fetchPacketInFragment(k,A,s)}M!==-1&&(d=M,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()}}},ag=class extends fh{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&&Ql(e.data)}else if(this.internalTrack.info.codec==="av1"&&!this.internalTrack.info.av1CodecInfo){let e=await this.getFirstPacket({});this.internalTrack.info.av1CodecInfo=e&&Zl(e.data)}return{codec:ql(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}},cg=class extends fh{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:jl(this.internalTrack.info),numberOfChannels:this.internalTrack.info.numberOfChannels,sampleRate:this.internalTrack.info.sampleRate,description:this.internalTrack.info.codecDescription??void 0}:null}},AE=(r,e)=>{if(r.presentationTimestamps){let t=J(r.presentationTimestamps,e,i=>i.presentationTimestamp);return t===-1?-1:r.presentationTimestamps[t].sampleIndex}else{let t=J(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)}},sD=(r,e)=>{let t=J(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=J(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=J(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?Be(r.keySampleIndices,e,_=>_)!==-1:!0}},nD=(r,e)=>{if(!r.keySampleIndices)return e;let t=J(r.keySampleIndices,e,i=>i);return r.keySampleIndices[t]??-1},oD=(r,e)=>{if(!r.keySampleIndices)return e+1;let t=J(r.keySampleIndices,e,i=>i);return r.keySampleIndices[t+1]??-1},PE=(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},aD=r=>{let[e,,,t]=r,i=Math.hypot(e,t),s=e/i,n=t/i;return-Math.atan2(n,s)*(180/Math.PI)},BE=r=>r.sampleSizes.length===0;var ug=[{id:I.SeekHead,flag:"seekHeadSeen"},{id:I.Info,flag:"infoSeen"},{id:I.Tracks,flag:"tracksSeen"},{id:I.Cues,flag:"cuesSeen"}],mh=class extends Bt{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 Yi(e._mainReader),this.clusterReader=new Yi(new Rt(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 dE({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-uh;){await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+Xi);let t=this.metadataReader.readElementHeader(),i=t.id,s=t.size,n=this.metadataReader.pos;if(i===I.EBML)Ki(s),await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+s),this.readContiguousElements(this.metadataReader,s);else if(i===I.Segment){if(await this.readSegment(s),s===null)break}else if(i===I.Cluster){s===null&&(s=(await this.clusterReader.searchForNextElementId(ch,e)??e)-n);let o=he(this.segments);o&&(o.elementEndPos=n+s)}Ki(s),this.metadataReader.pos=n+s}})()}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 kt},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+Xi);let c=this.metadataReader.pos,{id:u,size:l}=this.metadataReader.readElementHeader(),h=this.metadataReader.pos,f=ug.findIndex(d=>d.id===u);if(f!==-1){let d=ug[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 ug){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.timestampScale===-1&&(this.currentSegment.timestampScale=1e6,this.currentSegment.timestampFactor=1e9/1e6),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+Xi);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(ch,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=cD(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=J(m.clusters,a.elementStartPos,_=>_.elementStartPos);if(m.clusters.splice(x+1,0,a),l.firstKeyFrameTimestamp!==null){let _=J(m.clustersWithKeyFrame,a.elementStartPos,y=>y.elementStartPos);m.clustersWithKeyFrame.splice(_+1,0,a)}}}let c=J(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-uh;)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:mt,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===Nt.avc?(this.currentTrack.info.codec="avc",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):this.currentTrack.codecId===Nt.hevc?(this.currentTrack.info.codec="hevc",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):o===Nt.vp8?this.currentTrack.info.codec="vp8":o===Nt.vp9?this.currentTrack.info.codec="vp9":o===Nt.av1&&(this.currentTrack.info.codec="av1");let a=this.currentTrack,c=new Ir(new lg(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===Nt.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===Nt.mp3?this.currentTrack.info.codec="mp3":o===Nt.opus?(this.currentTrack.info.codec="opus",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):o===Nt.vorbis?(this.currentTrack.info.codec="vorbis",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):o===Nt.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 nt(new hg(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),ln(this.currentTrack.languageCode)||(this.currentTrack.languageCode=mt)}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=zl[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=Ll[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=Nl[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=Gl(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}},ph=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:Be(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 un(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=Be(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=Be(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=Be(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=Be(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?pt:n.data,a=n.timestamp/this.internalTrack.segment.timestampFactor,c=n.duration/this.internalTrack.segment.timestampFactor,u=new de(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=J(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=J(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=J(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=Be(this.internalTrack.clusters,o.elementStartPos,l=>l.elementStartPos),w(i!==-1);let a=o.trackData.get(this.internalTrack.id),c=Vl(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=J(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 B=d.trackData.get(this.internalTrack.id);if(B&&B.startTimestamp>i)break;if(d.nextCluster){h.pos=d.nextCluster.elementEndPos,d=d.nextCluster;continue}}await h.reader.loadRange(h.pos,h.pos+Xi);let C=h.pos,v=h.readElementHeader(),E=v.id,M=v.size,A=h.pos;if(E===I.Cluster){let B=Be(o.clusters,C,wt=>wt.elementStartPos),k;B===-1?(h.pos=C,k=await n.readCluster(o)):k=o.clusters[B],d&&(d.nextCluster=k),d=k,y&&(k.isKnownToBeFirstCluster=!0,y=!1);let{clusterIndex:L,blockIndex:j,correctBlockFound:be}=e();if(be){let wt=this.internalTrack.clusters[L];return this.fetchPacketInCluster(wt,j,s)}L!==-1&&(m=L,x=j)}if(M===null){E===I.Cluster?(w(d),M=d.elementEndPos-A):(f.pos=A,M=(await f.searchForNextElementId(ch,o.elementEndPos)??o.elementEndPos)-A);let B=A+M;if(B>o.elementEndPos-uh)break;if(f.pos=B,f.readElementId()===I.Segment){o.elementEndPos=B;break}}h.pos=A+M}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()}}},lg=class extends ph{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:ql({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?Yl(e.data):null,hevcCodecInfo:this.internalTrack.info.codec==="hevc"&&e?Kl(e.data):null,vp9CodecInfo:this.internalTrack.info.codec==="vp9"&&e?Ql(e.data):null,av1CodecInfo:this.internalTrack.info.codec==="av1"&&e?Zl(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}},hg=class extends ph{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:jl({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}},cD=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 Cn=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:uD(this.readU32())})}readNextFrameHeader(e){for(w(this.fileSize),e??=this.fileSize;this.pos<=e-4;){let t=this.readU32();this.pos-=4;let i=gE(t,this);if(i)return i}return null}},uD=r=>{let e=2130706432,t=0;for(;e!==0;)t>>=1,t|=r&e,e>>=8;return t};var gh=class extends Bt{constructor(e){super(e),this.metadataPromise=null,this.firstFrameHeader=null,this.allSamples=[],this.tracks=[],this.reader=new Cn(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=pE(s.mpegVersionId,s.channel);this.reader.pos=s.startPos+n;let o=this.reader.readU32(),a=o===fE||o===mE;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 nt(new fg(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}},fg=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 mt}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=pt:(this.demuxer.reader.pos=i.dataStart,s=this.demuxer.reader.readBytes(i.dataSize)),new de(s,"key",i.timestamp,i.duration,e,i.dataSize)}async getFirstPacket(e){return this.getPacketAtIndex(0,e)}async getNextPacket(e,t){let i=Be(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=J(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 xh=class extends Bt{constructor(e){super(e),this.readingMutex=new kt,this.metadataPromise=null,this.fileSize=null,this.bitstreams=[],this.tracks=[],this.reader=new pn(new Rt(e.source,64*2**20))}async readMetadata(){return this.metadataPromise??=(async()=>{for(this.fileSize=await this.input.source.getSize();this.reader.pos<this.fileSize-gn;){await this.reader.reader.loadRange(this.reader.pos,this.reader.pos+Qi);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 nt(new mg(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=At(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:YC(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=Jl(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-gn)return null;await e.reader.loadRange(e.pos,e.pos+Qi);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-gn)return null;await e.reader.loadRange(e.pos,e.pos+Qi);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 yE({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)}},mg=class{constructor(e,t){this.bitstream=e,this.demuxer=t,this.encodedPacketToMetadata=new WeakMap,this.internalSampleRate=e.codecInfo.codec==="opus"?RC: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 mt}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}=bE(e.data,this.bitstream.codecInfo,t.vorbisLastBlocksize),o=new de(i.metadataOnly?pt: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=un(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+TE,c-gn);if(await n.reader.loadRange(v,E),n.pos=v,!n.findNextPageHeader(E)){c=C+gn;continue e}await n.reader.loadRange(n.pos,n.pos+Qi);let A=n.readPageHeader();w(A);let B=!1;if(A.serialNumber===this.bitstream.serialNumber)B=!0;else{await n.reader.loadRange(A.headerStartPos,A.headerStartPos+A.totalSize),n.pos=A.headerStartPos;let L=n.readBytes(A.totalSize);B=_E(L)===A.checksum}if(!B){v=A.headerStartPos+4;continue}if(B&&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+Qi);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:pt,endPage:g,endSegmentIndex:_};if(await this.demuxer.findNextPacketStart(n,T)){let v=DE(f,h,d);w(v);let E=RE(f,v.page,v.segmentIndex);E&&(h=E.page,d=E.segmentIndex)}else for(;;){let v=DE(f,h,d);if(!v)break;let E=RE(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 M=this.encodedPacketToMetadata.get(E);if(w(M),!x&&T.endPage.headerStartPos===g.headerStartPos&&T.endSegmentIndex===_?(m=this.granulePositionToTimestampInSamples(h.granulePosition),x=!0,E=this.createEncodedPacketFromOggPacket(T,{timestampInSamples:m-M.durationInSamples,vorbisLastBlocksize:S?.vorbisBlockSize??null},t),w(E),M=this.encodedPacketToMetadata.get(E),w(M)):m+=M.durationInSamples,y=E,S=M,x&&(Math.max(m,0)>s||Math.max(M.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)}},RE=(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=Up(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}},DE=(r,e,t)=>{if(t>0)return{page:e,segmentIndex:t-1};let i=Up(r,s=>s.headerStartPos<e.headerStartPos);return i?{page:i,segmentIndex:i.lacingValues.length-1}:null};var hr=class{},ac=class extends hr{async _getMajorBrand(e){if(await e._mainReader.source.getSize()<12)return null;let i=new ji(e._mainReader);return i.pos=4,i.readAscii(4)!=="ftyp"?null:i.readAscii(4)}_createDemuxer(e){return new dh(e)}},_h=class extends ac{async _canReadInput(e){let t=await this._getMajorBrand(e);return!!t&&t!=="qt "}get name(){return"MP4"}get mimeType(){return"video/mp4"}},bh=class extends ac{async _canReadInput(e){return await this._getMajorBrand(e)==="qt "}get name(){return"QuickTime File Format"}get mimeType(){return"video/quicktime"}},cc=class extends hr{async isSupportedEBMLOfDocType(e,t){if(await e._mainReader.source.getSize()<8)return!1;let s=new Yi(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 mh(e)}get name(){return"Matroska"}get mimeType(){return"video/x-matroska"}},yh=class extends cc{_canReadInput(e){return this.isSupportedEBMLOfDocType(e,"webm")}get name(){return"WebM"}get mimeType(){return"video/webm"}},Th=class extends hr{async _canReadInput(e){let t=await e._mainReader.source.getSize();if(t<4)return!1;let i=new Cn(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 gh(e)}get name(){return"MP3"}get mimeType(){return"audio/mpeg"}},wh=class extends hr{async _canReadInput(e){if(await e._mainReader.source.getSize()<12)return!1;let i=new es(e._mainReader),s=i.readAscii(4);return s!=="RIFF"&&s!=="RIFX"&&s!=="RF64"?!1:(i.pos=8,i.readAscii(4)==="WAVE")}_createDemuxer(e){return new hh(e)}get name(){return"WAVE"}get mimeType(){return"audio/wav"}},Sh=class extends hr{async _canReadInput(e){return await e._mainReader.source.getSize()<4?!1:new pn(e._mainReader).readAscii(4)==="OggS"}_createDemuxer(e){return new xh(e)}get name(){return"Ogg"}get mimeType(){return"application/ogg"}},ME=new _h,IE=new bh,FE=new cc,UE=new yh,OE=new Th,GE=new wh,NE=new Sh,pg=[ME,IE,FE,UE,GE,NE,OE];var uc=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 hr)))throw new TypeError("options.formats must be an array of InputFormat.");if(!(e.source instanceof ts))throw new TypeError("options.source must be a Source.");this._formats=e.formats,this._source=e.source,this._mainReader=new Rt(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()}};W.set(Dp);var LE=Bc.work(r=>({async hello(){await r.host.world()},async decode({source:e,video:t,audio:i}){let s=async()=>e instanceof Blob?new nc(e):new oc(e),n=new uc({source:await s(),formats:pg}),[o,a]=await Promise.all([n.getPrimaryVideoTrack(),n.getPrimaryAudioTrack()]),c=await o?.canDecode(),u=await a?.canDecode(),l=t.getWriter(),h=i.getWriter();await Promise.all([(async()=>{if(c&&o){let f=new Za(o);for await(let d of f.samples()){let m=d.toVideoFrame();await l.write(m),d.close(),m.close()}await l.close()}})(),(async()=>{if(u&&a){let f=new Ja(a);for await(let d of f.samples()){let m=d.toAudioData();await h.write(m),d.close(),m.close()}await h.close()}})()])},async encode({readables:e,config:t,bridge:i}){let s=new sc({format:new Tn,target:new qa(i,{chunked:!0})}),n=new tc(t.video);s.addVideoTrack(n);let o=new rc(t.audio);s.addAudioTrack(o),await s.start();let a=e.video.getReader(),c=e.audio.getReader();await Promise.all([(async()=>{for(;;){let{done:u,value:l}=await a.read();if(u)break;let h=new lr(l);await n.add(h),h.close()}})(),(async()=>{for(;;){let{done:u,value:l}=await c.read();if(u)break;let h=new Lt(l);await o.add(h),h.close(),l.close()}})()]),await s.finalize()},async composite(e){let{stage:t,renderer:i}=await lD(1920,1080);t.removeChildren();let{baseFrame:s,disposables:n}=await zE(e,t);i.render(t);let o=new VideoFrame(i.canvas,{timestamp:s?.timestamp,duration:s?.duration??void 0});s?.close(),i.clear();for(let a of n)a.destroy(!0);return r.transfer=[o],o}})),vh=null;async function lD(r,e){if(vh)return vh;let t=await gp({width:r,height:e,preference:"webgl",background:"black",preferWebGLVersion:2}),i=new we;return vh={renderer:t,stage:i},vh}async function zE(r,e,t=[]){if(Array.isArray(r)){let i;for(let s of r){let n=await zE(s,e,t);i??=n.baseFrame}return{baseFrame:i,disposables:t}}if(!hD(r))return console.warn("Invalid layer",r),{disposables:t};switch(r.kind){case"text":return dD(r,e,t);case"image":return fD(r,e,t);default:return console.warn("Unknown layer kind",r.kind),{disposables:t}}}function hD(r){return!!r&&typeof r=="object"&&typeof r.kind=="string"}function dD(r,e,t){let i=new La({text:r.content,style:{fontFamily:"sans-serif",fontSize:r.fontSize??48,fill:r.color??"white"}});return VE(i,r),e.addChild(i),t.push(i),{disposables:t}}function fD(r,e,t){let i=D.from(r.frame),s=new qt(i);return VE(s,r),e.addChild(s),t.push(s,i),{baseFrame:r.frame,disposables:t}}function VE(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 Bc.worker(LE);
|
|
7
|
+
`:"";return[r.errName(o.name+":"),r.errMessage(o.message)].join(" ")+r.errStack(a)}function n(o){return o&&o instanceof Error?i(o):o}function s(o){return o&&o instanceof Error?i(o):r.errMessage(o)}return{stdout:o=>o.map(n),stderr:o=>o.map(s)}};function Wr(...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 xl(){return{icon:"\u{1F6A8}",now:()=>Date.now()}}var Hi=t=>({colors:e,theme:r})=>{let i={...xl(),...t},n=r(e),s=new Date(i.now()),o=s.getUTCFullYear().toString().padStart(4,"0"),a=(s.getUTCMonth()+1).toString().padStart(2,"0"),c=s.getUTCDate().toString().padStart(2,"0"),u=`${o}-${a}-${c}`,l=s.getUTCHours().toString().padStart(2,"0"),d=s.getUTCMinutes().toString().padStart(2,"0"),f=s.getUTCSeconds().toString().padStart(2,"0"),m=s.getUTCMilliseconds().toString().padStart(3,"0"),p=`${l}:${d}:${f}.${m}`,g=`${u}::${p}`;return{stdout:b=>[n.timestamp(g),...b],stderr:b=>[n.timestampErr(g),...[i.icon].filter(Boolean),...b]}};function Go(){return Wr(qi(),Hi())}var Wi=()=>({stdout:async t=>{await Deno.stdout.write(new TextEncoder().encode(t+`
|
|
8
|
+
`))},stderr:async t=>{await Deno.stderr.write(new TextEncoder().encode(t+`
|
|
9
|
+
`))}});var Gi=()=>({stdout:async t=>{process.stdout.write(t+`
|
|
10
|
+
`)},stderr:async t=>{process.stderr.write(t+`
|
|
11
|
+
`)}});var ji=()=>({stdout:async t=>console.log(t),stderr:async t=>console.error(t)});var jo=()=>ps()?Wi():gs()?Gi():ji();var $o=()=>({stdout:async()=>{},stderr:async()=>{}});function Qo(){return()=>({stdout:t=>t,stderr:t=>t})}var Yt=class t{static writers={auto:jo,void:$o,deno:Wi,node:Gi,console:ji};static colors={auto:bs,colorful:()=>Hr,colorless:()=>qr};static themes={auto:qo,basic:Vi};static shapers={auto:Go,none:Qo,errors:qi,timestamp:Hi};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=Wr(...e),this}};var Gr=class extends Yt{static dummy(){return new this().setWriter(Yt.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 n=this.colors.mix(this.colors.blue,this.colors.dim),s=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?n("<-"):s("->")].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 Ne=class extends Gr{rpcRequest=async()=>{}};function Me(){let t,e,r=new Promise((n,s)=>{t=n,e=s});function i(n){return n.then(t).catch(e),r}return{promise:r,resolve:t,reject:e,entangle:i}}var Xo=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 jr=class extends Error{milliseconds;name=this.constructor.name;constructor(e){super(`deadline exceeded (${(e/1e3).toFixed(1)} seconds)`),this.milliseconds=e}};function Ko(t,e){return t<=0||t===1/0?e():new Promise((r,i)=>{let n=setTimeout(()=>i(new jr(t)),t);e().then(r).catch(i).finally(()=>clearTimeout(n))})}function $i(){let t=[];function e(){for(let r of t)r();t=[]}return e.schedule=(...r)=>(t.push(...r),e),e}function Yo(t,e){let r=t;for(let i of e)if(r=r[i],Xo.sad(r))break;return r}function yl(){let t=new Set;async function e(...c){await Promise.all([...t].map(u=>u(...c)))}function r(c){return t.add(c),()=>{t.delete(c)}}async function i(...c){return e(...c)}function n(c){return r(c)}async function s(c){let{promise:u,resolve:l}=Me(),d=n(async(...f)=>{c&&await c(...f),l(f),d()});return u}function o(){t.clear()}let a={pub:i,sub:n,publish:e,subscribe:r,on:r,next:s,clear:o};return Object.assign(n,a),Object.assign(i,a),a}function Qi(t){let e=yl();return t&&e.sub(t),e.pub}var $e;(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}})($e||($e={}));var Xi=class extends Error{name=this.constructor.name},St=class extends Error{name=this.constructor.name};async function Zo({tap:t,request:e,action:r}){let i=$e.getId(e);try{let n=await r();return i===null?null:{id:i,result:n,jsonrpc:$e.version}}catch(n){return t.rpcError({request:e,error:n}),i===null?null:{id:i,jsonrpc:$e.version,error:n instanceof Xi?{code:$e.errorCodes.serverError,message:n.message}:{code:$e.errorCodes.unexposedError,message:"unexposed error"}}}}function Ki(t){let e=t.tap??new Ne;return async r=>{let i=r.method.split("."),n=Yo(t.fns,i),s=async()=>await n(...r.params);return e.rpcRequest({request:r}),await Zo({tap:e,request:r,action:s})}}var Jo=Symbol("tune"),Tl=Symbol("query"),kl=Symbol("notify"),Sl=Symbol("settings");function ea(t){function e(r){let i={notify:void 0};return new Proxy((()=>{}),{apply:(n,s,o)=>t(r,o,i),get:(n,s)=>{if(s!=="then")return s===Jo?o=>(...a)=>t(r,a,{...i,...o}):s===kl?(...o)=>t(r,o,{...i,notify:!0}):s===Tl?(...o)=>t(r,o,{...i,notify:!1}):s===Sl?i:(n[s]||(n[s]=e([...r,s])),n[s])},set:(n,s,o)=>(n[s]=o,!0)})}return e([])}function Ct(t){let{endpoint:e,tap:r=new Ne}=t,i=1;return ea(async(n,s,o)=>{let a=o.notify??t.notify??!1,c=o.transfer,u={jsonrpc:"2.0",method:n.join("."),params:s},l=a?u:{...u,id:i++};r.rpcRequest({request:l});let d=await e(l,{transfer:c});if(a&&!d)return null;if(!d)throw new St("response was null, but shouldn't be, because the request was not a notification");if("error"in d)throw new St(t.label?`${t.label}: ${d.error.message}`:d.error.message);return d.result})}function $r(t){return Ct({endpoint:Ki(t),tap:t.tap})}var Et=class{recv=Qi();sendRequest=Qi();sendResponse=Qi();static makeEntangledPair({origin:e="example.e280.org"}={}){let r=new this,i=new this,n=[r.sendRequest.sub(o=>i.recv(o,{origin:e})),r.sendResponse.sub(o=>i.recv(o,{origin:e})),i.sendRequest.sub(o=>r.recv(o,{origin:e})),i.sendResponse.sub(o=>r.recv(o,{origin:e}))];return[r,i,()=>n.forEach(o=>o())]}};function Yi(t,e){return t.addEventListener("message",e),()=>t.removeEventListener("message",e)}function ta(t,e){return async(r,{transfer:i}={})=>{if("id"in r){let n=Me();return e(r,i,n.promise),t.wait(r.id,r.method).then(s=>(n.resolve(s),s))}else{let n=Promise.resolve(null);return e(r,i,n),n}}}function ra(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 ia(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 Zt=class extends Et{dispose=$i();constructor(e){super(),this.dispose.schedule(this.sendRequest.sub((r,i)=>e.postMessage(r,i)),this.sendResponse.sub((r,i)=>e.postMessage(r,i)),Yi(e,r=>this.recv(r.data,r)))}};var Zi=class{remote;transfer;constructor(e){this.remote=e}};var ws=Object.freeze({timeout:6e4,maxRequestBytes:1e7});var Ji=class{timeout;pending=new Map;constructor(e){this.timeout=e}async wait(e,r){let i=Me();return this.pending.set(e,{method:r,deferred:i}),await Ko(this.timeout,()=>i.promise).catch(n=>{throw n instanceof jr&&(n.message=`request #${e} ${r}(), ${n.message}`),n})}deliverResponse(e){let r=this.pending.get(e.id);r&&("error"in e?r.deferred.reject(new St(e.error.message)):r.deferred.resolve(e))}};var At=class{options;remote;remoteEndpoint;dispose=$i();#e;constructor(e){this.options=e;let{conduit:r,tap:i}=e;this.#e=new Ji(e.timeout??ws.timeout),this.remoteEndpoint=ta(this.#e,r.sendRequest.pub.bind(r.sendRequest)),this.remote=Ct({endpoint:this.remoteEndpoint,tap:i&&hs(i,{remote:!0})}),this.dispose.schedule(r.recv.sub(n=>this.recv(n)))}async recv(e){let r=new Zi(this.remote),{conduit:i,rpc:n,tap:s}=this.options,{requests:o,responses:a}=ra(e);for(let d of a)this.#e.deliverResponse(d);if(!n)return;let c=await n(r),u=Ki({fns:c,tap:s&&hs(s,{remote:!1})}),l=await ia(u,o);l&&await i.sendResponse(l,r.transfer)}};var Qe={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 Xe=new Ne;async function na(t,e,r={}){let i=r.tap??Xe,n=new At({tap:i,timeout:r.timeout??1/0,conduit:new Zt(t.getSelf()),rpc:async s=>e(Qe.derive.host(s))});return await n.remote.infra.ready(),n.remote.host}var Jt=class{worker;messenger;constructor(e,r){this.worker=e,this.messenger=r}static async make(e,r){let i=r.tap??Xe,n=r.label??"comrade",s=e.loadWorker(r.workerUrl,n),o=Me(),a={async ready(){o.resolve()}},c=new At({tap:i,timeout:r.timeout??1/0,conduit:new Zt(s),rpc:async u=>({infra:a,host:r.setupHost(Qe.derive.work(u))})});return await o.promise,new this(s,c)}get work(){return this.messenger.remote}terminate(){this.worker.terminate()}};var en=class{threads;static async make(e,r){let i=r.workerCount??e.guessOptimalThreadCount(),n=await Promise.all([...Array(i)].map(async(s,o)=>Jt.make(e,{...r,label:r.label??`${r.label??"comrade"}_${o+1}`})));return new this(n,{tap:r.tap})}work;#e=new Set;#t=[];constructor(e,r={}){this.threads=e;let i=r.tap??Xe,n=async(s,o)=>this.#i({request:s,prom:Me(),transfer:o?.transfer});this.work=Ct({tap:i,endpoint:n}),e.forEach(s=>this.#e.add(s))}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 sa=t=>({thread:e=>Jt.make(t,e),cluster:e=>en.make(t,e),worker:(e,r={})=>na(t,e,r),work:e=>e,host:e=>e,mocks(e){let{setupWork:r,setupHost:i,tap:n=Xe}=e,s=Qe.mock.host(),o=Qe.mock.work();return o.work=$r({tap:n,fns:r(s)}),s.host=$r({tap:n,fns:i(o)}),{workShell:o,hostShell:s,work:o.work,host:s.host}},mockWork(e,r=Xe){let i=Qe.mock.host(),n=Qe.mock.work();return n.work=$r({tap:r,fns:e(i)}),{workShell:n,hostShell:i,work:n.work,mockHost:s=>(i.host=$r({tap:r,fns:s(n)}),{workShell:n,hostShell:i,work:n.work,host:i.host})}}});var oa=()=>({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 Al=oa(),tn=sa(Al);var aa={extension:{type:zi.Environment,name:"browser",priority:-1},test:()=>!0,load:async()=>{await import("./browserAll-YBZEJCN3.js")}};var ca={extension:{type:zi.Environment,name:"webworker",priority:0},test:()=>typeof self<"u"&&self.WorkerGlobalScope!==void 0,load:async()=>{await import("./webworkerAll-BKJQW6P7.js")}};var ic=ml(rc(),1),Rs={createCanvas:(t,e)=>new OffscreenCanvas(t??0,e??0),createImage:()=>new Image,getCanvasRenderingContext2D:()=>OffscreenCanvasRenderingContext2D,getWebGLRenderingContext:()=>WebGLRenderingContext,getNavigator:()=>navigator,getBaseUrl:()=>globalThis.location.href,getFontFaceSet:()=>globalThis.fonts,fetch:(t,e)=>fetch(t,e),parseXML:t=>new ic.DOMParser().parseFromString(t,"text/xml")};Lo.add(aa,ca);function h(t){if(!t)throw new Error("Assertion failed.")}var mn=t=>{let e=(t%360+360)%360;if(e===0||e===90||e===180||e===270)return e;throw new Error(`Invalid rotation ${t}.`)},G=t=>t&&t[t.length-1],_t=t=>t>=0&&t<2**32,W=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),n=(r&1<<i)>>i;return this.pos++,n}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 n=this.pos;n<i;n++){let s=Math.floor(n/8),o=this.bytes[s],a=7-(n&7);o&=~(1<<a),o|=(r&1<<i-n-1)>>i-n-1<<a,this.bytes[s]=o}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}},_=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)},Ve=t=>{let e=_(t);return(e&1)===0?-(e>>1):e+1>>1};var J=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),ae=new TextDecoder,we=new TextEncoder;var zs=t=>Object.fromEntries(Object.entries(t).map(([e,r])=>[r,e])),Pt={bt709:1,bt470bg:5,smpte170m:6,bt2020:9,smpte432:12},hn=zs(Pt),Dt={bt709:1,smpte170m:6,linear:8,"iec61966-2-1":13,pq:16,hlg:18},pn=zs(Dt),It={rgb:0,bt709:1,bt470bg:5,smpte170m:6,"bt2020-ncl":9},gn=zs(It),sc=t=>!!t&&!!t.primaries&&!!t.transfer&&!!t.matrix&&t.fullRange!==void 0,ur=t=>t instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&t instanceof SharedArrayBuffer||ArrayBuffer.isView(t),be=class{constructor(){this.currentPromise=Promise.resolve()}async acquire(){let e,r=new Promise(n=>{e=n}),i=this.currentPromise;return this.currentPromise=r,await i,e}},Vs=t=>[...t].map(e=>e.toString(16).padStart(2,"0")).join(""),Ls=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),Ft=(t,e,r)=>{let i=0,n=t.length-1,s=-1;for(;i<=n;){let o=i+n>>1,a=r(t[o]);a===e?(s=o,n=o-1):a<e?i=o+1:n=o-1}return s},U=(t,e,r)=>{let i=0,n=t.length-1,s=-1;for(;i<=n;){let o=i+(n-i+1)/2|0;r(t[o])<=e?(s=o,i=o+1):n=o-1}return s},qs=(t,e,r)=>{let i=U(t,r(e),r);t.splice(i+1,0,e)},ce=()=>{let t,e;return{promise:new Promise((i,n)=>{t=i,e=n}),resolve:t,reject:e}};var Hs=(t,e)=>{for(let r=t.length-1;r>=0;r--)if(e(t[r]))return t[r]},bn=(t,e)=>{for(let r=t.length-1;r>=0;r--)if(e(t[r]))return r;return-1},oc=async function*(t){Symbol.iterator in t?yield*t[Symbol.iterator]():yield*t[Symbol.asyncIterator]()},ac=t=>{if(!(Symbol.iterator in t)&&!(Symbol.asyncIterator in t))throw new TypeError("Argument must be an iterable or async iterable.")},ue=t=>{throw new Error(`Unexpected value: ${t}`)},Bt=(t,e,r)=>{let i=t.getUint8(e),n=t.getUint8(e+1),s=t.getUint8(e+2);return r?i|n<<8|s<<16:i<<16|n<<8|s},cc=(t,e,r)=>Bt(t,e,r)<<8>>8,oi=(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))},uc=(t,e,r,i)=>{r=ee(r,-8388608,8388607),r<0&&(r=r+16777216&16777215),oi(t,e,r,i)};var ee=(t,e,r)=>Math.max(e,Math.min(r,t)),Z="und",Rt=t=>{let e=Math.round(t);return Math.abs(t/e-1)<10*Number.EPSILON?e:t},lc=(t,e)=>Math.round(t/e)*e,dc=t=>{let e=0;for(;t;)e++,t>>=1;return e},td=/^[a-z]{3}$/,lr=t=>td.test(t),Le=1e6*(1+Number.EPSILON),Ws=(t,e)=>{let r={...t,...e};if(t.headers||e.headers){let i=t.headers?nc(t.headers):{},n=e.headers?nc(e.headers):{},s={...i};Object.entries(n).forEach(([o,a])=>{let c=Object.keys(s).find(u=>u.toLowerCase()===o.toLowerCase());c&&delete s[c],s[o]=a}),r.headers=s}return r},nc=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},Gs=async(t,e,r,i,n)=>{let s=0;for(;;)try{return await t(e,r)}catch(o){if(n())throw o;s++;let a=i(s,o,e);if(a===null)throw o;if(console.error("Retrying failed fetch. Error:",o),!Number.isFinite(a)||a<0)throw new TypeError("Retry delay must be a non-negative finite number.");if(a>0&&await new Promise(c=>setTimeout(c,1e3*a)),n())throw o}},fc=(t,e)=>{let r=t<0?-1:1;t=Math.abs(t);let i=0,n=1,s=1,o=0,a=t;for(;;){let c=Math.floor(a),u=c*s+i,l=c*o+n;if(l>e)return{numerator:r*s,denominator:o};if(i=s,n=o,s=u,o=l,a=1/(a-c),!isFinite(a))break}return{numerator:r*s,denominator:o}},ht=class{constructor(){this.currentPromise=Promise.resolve()}call(e){return this.currentPromise=this.currentPromise.then(e)}},Os=null,pt=()=>Os!==null?Os:Os=!!(typeof navigator<"u"&&(navigator.vendor?.match(/apple/i)||/AppleWebKit/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)||/\b(iPad|iPhone|iPod)\b/.test(navigator.userAgent))),Ns=null,dr=()=>Ns!==null?Ns:Ns=typeof navigator<"u"&&navigator.userAgent?.includes("Firefox"),Ms=null,ai=()=>Ms!==null?Ms:Ms=!!(typeof navigator<"u"&&(navigator.vendor?.includes("Google Inc")||/Chrome/.test(navigator.userAgent))),Us=null,mc=()=>{if(Us!==null)return Us;if(typeof navigator>"u")return null;let t=/\bChrome\/(\d+)/.exec(navigator.userAgent);return t?Us=Number(t[1]):null},Ot=(t,e)=>t!==-1?t:e,wn=(t,e,r,i)=>t<=i&&r<=e,ci=function*(t){for(let e in t){let r=t[e];r!==void 0&&(yield{key:e,value:r})}};var hc=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 xn=()=>{Symbol.dispose??=Symbol("Symbol.dispose")},ui=t=>typeof t=="number"&&!Number.isNaN(t);var Pe=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.")}},li=class{constructor(e,r,i,n){if(this.data=e,this.mimeType=r,this.name=i,this.description=n,!(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(n!==void 0&&typeof n!="string")throw new TypeError("description, when provided, must be a string.")}},pc=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 Pe)&&!(e instanceof li))throw new TypeError("Each value in tags.raw must be a string, Uint8Array, RichImageData, AttachedFile, or null.")}};var xe={default:!0,forced:!1,original:!1,commentary:!1,hearingImpaired:!1,visuallyImpaired:!1},gc=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 qe=["avc","hevc","vp9","av1","vp8"],Y=["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"],js=["aac","opus","mp3","vorbis","flac"],et=[...js,...Y],Nt=["webvtt"],bc=[{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}],wc=[{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}],Je=[{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}],xc=[{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}],yc=".01.01.01.01.00",Tc=".0.110.01.01.01.0",kc=(t,e,r,i)=>{if(t==="avc"){let s=Math.ceil(e/16)*Math.ceil(r/16),o=bc.find(d=>s<=d.maxMacroblocks&&i<=d.maxBitrate)??G(bc),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(t==="hevc"){let a=e*r,c=wc.find(l=>a<=l.maxPictureSize&&i<=l.maxBitrate)??G(wc);return`hev1.1.6.${c.tier}${c.level}.B0`}else{if(t==="vp8")return"vp8";if(t==="vp9"){let s=e*r;return`vp09.00.${(Je.find(c=>s<=c.maxPictureSize&&i<=c.maxBitrate)??G(Je)).level.toString().padStart(2,"0")}.08`}else if(t==="av1"){let s=e*r,o=xc.find(u=>s<=u.maxPictureSize&&i<=u.maxBitrate)??G(xc);return`av01.0.${o.level.toString().padStart(2,"0")}${o.tier}.08`}}throw new TypeError(`Unhandled codec '${t}'.`)};var Sc=t=>{let e=t.split("."),n=(1<<7)+1,s=Number(e[1]),o=e[2],a=Number(o.slice(0,-1)),c=(s<<5)+a,u=o.slice(-1)==="H"?1:0,d=Number(e[3])===8?0:1,f=0,m=e[4]?Number(e[4]):0,p=e[5]?Number(e[5][0]):1,g=e[5]?Number(e[5][1]):1,b=e[5]?Number(e[5][2]):0,w=(u<<7)+(d<<6)+(f<<5)+(m<<4)+(p<<3)+(g<<2)+b;return[n,c,w,0]},yn=t=>{let{codec:e,codecDescription:r,colorSpace:i,avcCodecInfo:n,hevcCodecInfo:s,vp9CodecInfo:o,av1CodecInfo:a}=t;if(e==="avc"){if(h(t.avcType!==null),n){let c=new Uint8Array([n.avcProfileIndication,n.profileCompatibility,n.avcLevelIndication]);return`avc${t.avcType}.${Vs(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}.${Vs(r.subarray(1,4))}`}else if(e==="hevc"){let c,u,l,d,f,m;if(s)c=s.generalProfileSpace,u=s.generalProfileIdc,l=Ls(s.generalProfileCompatibilityFlags),d=s.generalTierFlag,f=s.generalLevelIdc,m=[...s.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),b=g.getUint8(1);c=b>>6&3,u=b&31,l=Ls(g.getUint32(2)),d=b>>5&1,f=g.getUint8(12),m=[];for(let w=0;w<6;w++)m.push(g.getUint8(6+w))}let p="hev1.";for(p+=["","A","B","C"][c]+u,p+=".",p+=l.toString(16).toUpperCase(),p+=".",p+=d===0?"L":"H",p+=f;m.length>0&&m[m.length-1]===0;)m.pop();return m.length>0&&(p+=".",p+=m.map(g=>g.toString(16).toUpperCase()).join(".")),p}else{if(e==="vp8")return"vp8";if(e==="vp9"){if(!o){let w=t.width*t.height,x=G(Je).level;for(let y of Je)if(w<=y.maxPictureSize){x=y.level;break}return`vp09.00.${x.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"),d=o.chromaSubsampling.toString().padStart(2,"0"),f=o.colourPrimaries.toString().padStart(2,"0"),m=o.transferCharacteristics.toString().padStart(2,"0"),p=o.matrixCoefficients.toString().padStart(2,"0"),g=o.videoFullRangeFlag.toString().padStart(2,"0"),b=`vp09.${c}.${u}.${l}.${d}`;return b+=`.${f}.${m}.${p}.${g}`,b.endsWith(yc)&&(b=b.slice(0,-yc.length)),b}else if(e==="av1"){if(!a){let y=t.width*t.height,T=G(Je).level;for(let E of Je)if(y<=E.maxPictureSize){T=E.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",d=a.bitDepth.toString().padStart(2,"0"),f=a.monochrome?"1":"0",m=100*a.chromaSubsamplingX+10*a.chromaSubsamplingY+1*(a.chromaSubsamplingX&&a.chromaSubsamplingY?a.chromaSamplePosition:0),p=i?.primaries?Pt[i.primaries]:1,g=i?.transfer?Dt[i.transfer]:1,b=i?.matrix?It[i.matrix]:1,w=i?.fullRange?1:0,x=`av01.${c}.${u}${l}.${d}`;return x+=`.${f}.${m.toString().padStart(3,"0")}`,x+=`.${p.toString().padStart(2,"0")}`,x+=`.${g.toString().padStart(2,"0")}`,x+=`.${b.toString().padStart(2,"0")}`,x+=`.${w}`,x.endsWith(Tc)&&(x=x.slice(0,-Tc.length)),x}}throw new TypeError(`Unhandled codec '${e}'.`)},Cc=(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(Y.includes(t))return t;throw new TypeError(`Unhandled codec '${t}'.`)},Tn=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.${di(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&&Y.includes(e))return e}throw new TypeError(`Unhandled codec '${e}'.`)},fr=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],kn=[-1,1,2,3,4,5,6,8],di=t=>{if(!t||t.byteLength<2)throw new TypeError("AAC description must be at least 2 bytes long.");let e=new W(t),r=e.readBits(5);r===31&&(r=32+e.readBits(6));let i=e.readBits(4),n=null;i===15?n=e.readBits(24):i<fr.length&&(n=fr[i]);let s=e.readBits(4),o=null;return s>=1&&s<=7&&(o=kn[s]),{objectType:r,frequencyIndex:i,sampleRate:n,channelConfiguration:s,numberOfChannels:o}},Ec=t=>{let e=fr.indexOf(t.sampleRate),r=null;e===-1&&(e=15,r=t.sampleRate);let i=kn.indexOf(t.numberOfChannels);if(i===-1)throw new TypeError(`Unsupported number of channels: ${t.numberOfChannels}`);let n=13;t.objectType>=32&&(n+=6),e===15&&(n+=24);let s=Math.ceil(n/8),o=new Uint8Array(s),a=new W(o);return t.objectType<32?a.writeBits(5,t.objectType):(a.writeBits(5,31),a.writeBits(6,t.objectType-32)),a.writeBits(4,e),e===15&&a.writeBits(24,r),a.writeBits(4,i),o},Mt=48e3,Ac=/^pcm-([usf])(\d+)+(be)?$/,Te=t=>{if(h(Y.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=Ac.exec(t);h(e);let r;e[1]==="u"?r="unsigned":e[1]==="s"?r="signed":r="float";let i=Number(e[2])/8,n=e[3]!=="be",s=t==="pcm-u8"?2**7:0;return{dataType:r,sampleSize:i,littleEndian:n,silentValue:s}},$s=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":Ac.test(t)?t:t==="webvtt"?"webvtt":null,vc=t=>t==="avc"?{avc:{format:"avc"}}:t==="hevc"?{hevc:{format:"hevc"}}:{},_c=t=>t==="aac"?{aac:{format:"aac"}}:t==="opus"?{opus:{format:"opus"}}:{},rd=["avc1","avc3","hev1","hvc1","vp8","vp09","av01"],id=/^(avc1|avc3)\.[0-9a-fA-F]{6}$/,nd=/^(hev1|hvc1)\.(?:[ABC]?\d+)\.[0-9a-fA-F]{1,8}\.[LH]\d+(?:\.[0-9a-fA-F]{1,2}){0,6}$/,sd=/^vp09(?:\.\d{2}){3}(?:(?:\.\d{2}){5})?$/,od=/^av01\.\d\.\d{2}[MH]\.\d{2}(?:\.\d\.\d{3}\.\d{2}\.\d{2}\.\d{2}\.\d)?$/,Pc=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(!rd.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&&!ur(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(Pt);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(Dt);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 n=Object.keys(It);if(e.matrix!=null&&!n.includes(e.matrix))throw new TypeError(`Video chunk metadata decoder configuration colorSpace matrix, when defined, must be one of ${n.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(!id.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(!nd.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(!sd.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")&&!od.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/.')},ad=["mp4a","mp3","opus","vorbis","flac","ulaw","alaw","pcm"],Dc=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(!ad.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&&!ur(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"))&&!Y.includes(t.decoderConfig.codec))throw new TypeError(`Audio chunk metadata decoder configuration codec string for PCM must be one of the supported PCM codecs (${Y.join(", ")}).`)},Ic=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 Sn=class{constructor(e){this.mutex=new be,this.firstMediaStreamTimestamp=null,this.trackTimestampInfo=new WeakMap,this.output=e}onTrackClose(e){}validateAndNormalizeTimestamp(e,r,i){r+=e.source._timestampOffset;let n=this.trackTimestampInfo.get(e);if(!n){if(!i)throw new Error("First packet must be a key packet.");n={maxTimestamp:r,maxTimestampBeforeLastKeyPacket:r},this.trackTimestampInfo.set(e,n)}if(r<0)throw new Error(`Timestamps must be non-negative (got ${r}s).`);if(i&&(n.maxTimestampBeforeLastKeyPacket=n.maxTimestamp),r<n.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 ${n.maxTimestampBeforeLastKeyPacket}s.`);return n.maxTimestamp=Math.max(n.maxTimestamp,r),r}};var Ut;(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"})(Ut||(Ut={}));var me;(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"})(me||(me={}));var mr=t=>{let e=[],r=0;for(;r<t.length;){let i=-1,n=0;for(let s=r;s<t.length-3;s++){if(t[s]===0&&t[s+1]===0&&t[s+2]===1){i=s,n=3;break}if(s<t.length-4&&t[s]===0&&t[s+1]===0&&t[s+2]===0&&t[s+3]===1){i=s,n=4;break}}if(i===-1)break;if(r>0&&i>r){let s=t.subarray(r,i);s.length>0&&e.push(s)}r=i+n}if(r<t.length){let i=t.subarray(r);i.length>0&&e.push(i)}return e},Bc=(t,e)=>{let r=[],i=0,n=new DataView(t.buffer,t.byteOffset,t.byteLength);for(;i+e<=t.length;){let s;e===1?s=n.getUint8(i):e===2?s=n.getUint16(i,!1):e===3?s=Bt(n,i,!1):e===4?s=n.getUint32(i,!1):(ue(e),h(!1)),i+=e;let o=t.subarray(i,i+s);r.push(o),i+=s}return r},Cn=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)},Qs=new Uint8Array([0,0,0,1]),cd=t=>{let e=t.reduce((n,s)=>n+Qs.byteLength+s.byteLength,0),r=new Uint8Array(e),i=0;for(let n of t)r.set(Qs,i),i+=Qs.byteLength,r.set(n,i),i+=n.byteLength;return r},Xs=(t,e)=>{let r=t.reduce((s,o)=>s+e+o.byteLength,0),i=new Uint8Array(r),n=0;for(let s of t){let o=new DataView(i.buffer,i.byteOffset,i.byteLength);switch(e){case 1:o.setUint8(n,s.byteLength);break;case 2:o.setUint16(n,s.byteLength,!1);break;case 3:oi(o,n,s.byteLength,!1);break;case 4:o.setUint32(n,s.byteLength,!1);break}n+=e,i.set(s,n),n+=s.byteLength}return i},Ks=(t,e)=>{if(e.description){let n=(J(e.description)[4]&3)+1;return Bc(t,n)}else return mr(t)},Rc=(t,e)=>{if(e.description){let n=(J(e.description)[4]&3)+1;return Xs(t,n)}else return cd(t)},zt=t=>t[0]&31,En=t=>{try{let e=mr(t),r=e.filter(c=>zt(c)===Ut.SPS),i=e.filter(c=>zt(c)===Ut.PPS),n=e.filter(c=>zt(c)===Ut.SPS_EXT);if(r.length===0||i.length===0)return null;let s=r[0],o=Ys(s);h(o!==null);let a=o.profileIdc===100||o.profileIdc===110||o.profileIdc===122||o.profileIdc===144;return{configurationVersion:1,avcProfileIndication:o.profileIdc,profileCompatibility:o.constraintFlags,avcLevelIndication:o.levelIdc,lengthSizeMinusOne:3,sequenceParameterSets:r,pictureParameterSets:i,chromaFormat:a?o.chromaFormatIdc:null,bitDepthLumaMinus8:a?o.bitDepthLumaMinus8:null,bitDepthChromaMinus8:a?o.bitDepthChromaMinus8:null,sequenceParameterSetExt:a?n:null}}catch(e){return console.error("Error building AVC Decoder Configuration Record:",e),null}},Oc=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 n=0;n<i;n++)e.push(r[n])}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 n=0;n<i;n++)e.push(r[n])}if(t.avcProfileIndication===100||t.avcProfileIndication===110||t.avcProfileIndication===122||t.avcProfileIndication===144){h(t.chromaFormat!==null),h(t.bitDepthLumaMinus8!==null),h(t.bitDepthChromaMinus8!==null),h(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 n=0;n<i;n++)e.push(r[n])}}return new Uint8Array(e)},Nc=t=>{try{let e=V(t),r=0,i=e.getUint8(r++),n=e.getUint8(r++),s=e.getUint8(r++),o=e.getUint8(r++),a=e.getUint8(r++)&3,c=e.getUint8(r++)&31,u=[];for(let m=0;m<c;m++){let p=e.getUint16(r,!1);r+=2,u.push(t.subarray(r,r+p)),r+=p}let l=e.getUint8(r++),d=[];for(let m=0;m<l;m++){let p=e.getUint16(r,!1);r+=2,d.push(t.subarray(r,r+p)),r+=p}let f={configurationVersion:i,avcProfileIndication:n,profileCompatibility:s,avcLevelIndication:o,lengthSizeMinusOne:a,sequenceParameterSets:u,pictureParameterSets:d,chromaFormat:null,bitDepthLumaMinus8:null,bitDepthChromaMinus8:null,sequenceParameterSetExt:null};if((n===100||n===110||n===122||n===144)&&r+4<=t.length){let m=e.getUint8(r++)&3,p=e.getUint8(r++)&7,g=e.getUint8(r++)&7,b=e.getUint8(r++);f.chromaFormat=m,f.bitDepthLumaMinus8=p,f.bitDepthChromaMinus8=g;let w=[];for(let x=0;x<b;x++){let y=e.getUint16(r,!1);r+=2,w.push(t.subarray(r,r+y)),r+=y}f.sequenceParameterSetExt=w}return f}catch(e){return console.error("Error deserializing AVC Decoder Configuration Record:",e),null}},Ys=t=>{try{let e=new W(Cn(t));if(e.skipBits(1),e.skipBits(2),e.readBits(5)!==7)return null;let i=e.readAlignedByte(),n=e.readAlignedByte(),s=e.readAlignedByte();_(e);let o=null,a=null,c=null;if((i===100||i===110||i===122||i===244||i===44||i===83||i===86||i===118||i===128)&&(o=_(e),o===3&&e.skipBits(1),a=_(e),c=_(e),e.skipBits(1),e.readBits(1))){for(let f=0;f<(o!==3?8:12);f++)if(e.readBits(1)){let p=f<6?16:64,g=8,b=8;for(let w=0;w<p;w++){if(b!==0){let x=Ve(e);b=(g+x+256)%256}g=b===0?g:b}}}_(e);let u=_(e);if(u===0)_(e);else if(u===1){e.skipBits(1),Ve(e),Ve(e);let d=_(e);for(let f=0;f<d;f++)Ve(e)}_(e),e.skipBits(1),_(e),_(e);let l=e.readBits(1);return{profileIdc:i,constraintFlags:n,levelIdc:s,frameMbsOnlyFlag:l,chromaFormatIdc:o,bitDepthLumaMinus8:a,bitDepthChromaMinus8:c}}catch(e){return console.error("Error parsing AVC SPS:",e),null}},Zs=(t,e)=>{if(e.description){let n=(J(e.description)[21]&3)+1;return Bc(t,n)}else return mr(t)},tt=t=>t[0]>>1&63,An=t=>{try{let e=mr(t),r=e.filter(M=>tt(M)===me.VPS_NUT),i=e.filter(M=>tt(M)===me.SPS_NUT),n=e.filter(M=>tt(M)===me.PPS_NUT),s=e.filter(M=>tt(M)===me.PREFIX_SEI_NUT||tt(M)===me.SUFFIX_SEI_NUT);if(i.length===0||n.length===0)return null;let o=i[0],a=new W(Cn(o));a.skipBits(16),a.readBits(4);let c=a.readBits(3),u=a.readBits(1),{general_profile_space:l,general_tier_flag:d,general_profile_idc:f,general_profile_compatibility_flags:m,general_constraint_indicator_flags:p,general_level_idc:g}=ud(a,c);_(a);let b=_(a);b===3&&a.skipBits(1),_(a),_(a),a.readBits(1)&&(_(a),_(a),_(a),_(a));let w=_(a),x=_(a);_(a);let T=a.readBits(1)?0:c;for(let M=T;M<=c;M++)_(a),_(a),_(a);_(a),_(a),_(a),_(a),_(a),_(a),a.readBits(1)&&a.readBits(1)&&ld(a),a.skipBits(1),a.skipBits(1),a.readBits(1)&&(a.skipBits(4),a.skipBits(4),_(a),_(a),a.skipBits(1));let E=_(a);if(dd(a,E),a.readBits(1)){let M=_(a);for(let B=0;B<M;B++)_(a),a.skipBits(1)}a.skipBits(1),a.skipBits(1);let S=0;a.readBits(1)&&(S=md(a,c));let P=0;if(n.length>0){let M=n[0],B=new W(Cn(M));B.skipBits(16),_(B),_(B),B.skipBits(1),B.skipBits(1),B.skipBits(3),B.skipBits(1),B.skipBits(1),_(B),_(B),Ve(B),B.skipBits(1),B.skipBits(1),B.readBits(1)&&_(B),Ve(B),Ve(B),B.skipBits(1),B.skipBits(1),B.skipBits(1),B.skipBits(1);let Q=B.readBits(1),je=B.readBits(1);!Q&&!je?P=0:Q&&!je?P=2:!Q&&je?P=3:P=0}let v=[...r.length?[{arrayCompleteness:1,nalUnitType:me.VPS_NUT,nalUnits:r}]:[],...i.length?[{arrayCompleteness:1,nalUnitType:me.SPS_NUT,nalUnits:i}]:[],...n.length?[{arrayCompleteness:1,nalUnitType:me.PPS_NUT,nalUnits:n}]:[],...s.length?[{arrayCompleteness:1,nalUnitType:tt(s[0]),nalUnits:s}]:[]];return{configurationVersion:1,generalProfileSpace:l,generalTierFlag:d,generalProfileIdc:f,generalProfileCompatibilityFlags:m,generalConstraintIndicatorFlags:p,generalLevelIdc:g,minSpatialSegmentationIdc:S,parallelismType:P,chromaFormatIdc:b,bitDepthLumaMinus8:w,bitDepthChromaMinus8:x,avgFrameRate:0,constantFrameRate:0,numTemporalLayers:c+1,temporalIdNested:u,lengthSizeMinusOne:3,arrays:v}}catch(e){return console.error("Error building HEVC Decoder Configuration Record:",e),null}},ud=(t,e)=>{let r=t.readBits(2),i=t.readBits(1),n=t.readBits(5),s=0;for(let l=0;l<32;l++)s=s<<1|t.readBits(1);let o=new Uint8Array(6);for(let l=0;l<6;l++)o[l]=t.readBits(8);let a=t.readBits(8),c=[],u=[];for(let l=0;l<e;l++)c.push(t.readBits(1)),u.push(t.readBits(1));if(e>0)for(let l=e;l<8;l++)t.skipBits(2);for(let l=0;l<e;l++)c[l]&&t.skipBits(88),u[l]&&t.skipBits(8);return{general_profile_space:r,general_tier_flag:i,general_profile_idc:n,general_profile_compatibility_flags:s,general_constraint_indicator_flags:o,general_level_idc:a}},ld=t=>{for(let e=0;e<4;e++)for(let r=0;r<(e===3?2:6);r++)if(!t.readBits(1))_(t);else{let n=Math.min(64,1<<4+(e<<1));e>1&&Ve(t);for(let s=0;s<n;s++)Ve(t)}},dd=(t,e)=>{let r=[];for(let i=0;i<e;i++)r[i]=fd(t,i,e,r)},fd=(t,e,r,i)=>{let n=0,s=0,o=0;if(e!==0&&(s=t.readBits(1)),s){if(e===r){let c=_(t);o=e-(c+1)}else o=e-1;t.readBits(1),_(t);let a=i[o]??0;for(let c=0;c<=a;c++)t.readBits(1)||t.readBits(1);n=i[o]}else{let a=_(t),c=_(t);for(let u=0;u<a;u++)_(t),t.readBits(1);for(let u=0;u<c;u++)_(t),t.readBits(1);n=a+c}return n},md=(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)&&(_(t),_(t)),t.readBits(1),t.readBits(1),t.readBits(1),t.readBits(1)&&(_(t),_(t),_(t),_(t)),t.readBits(1)&&(t.readBits(32),t.readBits(32),t.readBits(1)&&_(t),t.readBits(1)&&hd(t,!0,e)),t.readBits(1)){t.readBits(1),t.readBits(1),t.readBits(1);let r=_(t);return _(t),_(t),_(t),_(t),r}return 0},hd=(t,e,r)=>{let i=!1,n=!1,s=!1;e&&(i=t.readBits(1)===1,n=t.readBits(1)===1,(i||n)&&(s=t.readBits(1)===1,s&&(t.readBits(8),t.readBits(5),t.readBits(1),t.readBits(5)),t.readBits(4),t.readBits(4),s&&t.readBits(4),t.readBits(5),t.readBits(5),t.readBits(5)));for(let o=0;o<=r;o++){let a=t.readBits(1)===1,c=!0;a||(c=t.readBits(1)===1);let u=!1;c?_(t):u=t.readBits(1)===1;let l=1;u||(l=_(t)+1),i&&Fc(t,l,s),n&&Fc(t,l,s)}},Fc=(t,e,r)=>{for(let i=0;i<e;i++)_(t),_(t),r&&(_(t),_(t)),t.readBits(1)},Mc=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 n=0;n<i.length;n++)e.push(i[n])}}return new Uint8Array(e)},vn=t=>{let e=new W(t);if(e.readBits(2)!==2)return null;let i=e.readBits(1),s=(e.readBits(1)<<1)+i;if(s===3&&e.skipBits(1),e.readBits(1)===1||e.readBits(1)!==0||(e.skipBits(2),e.readBits(24)!==4817730))return null;let u=8;s>=2&&(u=e.readBits(1)?12:10);let l=e.readBits(3),d=0,f=0;if(l!==7)if(f=e.readBits(1),s===1||s===3){let P=e.readBits(1),v=e.readBits(1);d=!P&&!v?3:P&&!v?2:1,e.skipBits(1)}else d=1;else d=3,f=1;let m=e.readBits(16),p=e.readBits(16),g=m+1,b=p+1,w=g*b,x=G(Je).level;for(let S of Je)if(w<=S.maxPictureSize){x=S.level;break}return{profile:s,level:x,bitDepth:u,chromaSubsampling:d,videoFullRangeFlag:f,colourPrimaries:l===2?1:l===1?6:2,transferCharacteristics:l===2?1:l===1?6:2,matrixCoefficients:l===7?0:l===2?1:l===1?6:2}},Uc=function*(t){let e=new W(t),r=()=>{let i=0;for(let n=0;n<8;n++){let s=e.readAlignedByte();if(i|=(s&127)<<n*7,!(s&128))break;if(n===7&&s&128)return null}return i>=2**32-1?null:i};for(;e.getBitsLeft()>=8;){e.skipBits(1);let i=e.readBits(4),n=e.readBits(1),s=e.readBits(1);e.skipBits(1),n&&e.skipBits(8);let o;if(s){let a=r();if(a===null)return;o=a}else o=Math.floor(e.getBitsLeft()/8);h(e.pos%8===0),yield{type:i,data:t.subarray(e.pos/8,e.pos/8+o)},e.skipBits(o*8)}},_n=t=>{for(let{type:e,data:r}of Uc(t)){if(e!==1)continue;let i=new W(r),n=i.readBits(3),s=i.readBits(1),o=i.readBits(1),a=0,c=0,u=0;if(o)a=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&&(u=i.readBits(5),i.skipBits(32),i.skipBits(5),i.skipBits(5));let P=i.readBits(5);for(let v=0;v<=P;v++){i.skipBits(12);let F=i.readBits(5);if(v===0&&(a=F),F>7){let B=i.readBits(1);v===0&&(c=B)}if(S&&i.readBits(1)){let Q=u+1;i.skipBits(Q),i.skipBits(Q),i.skipBits(1)}i.readBits(1)&&i.skipBits(4)}}let l=i.readBits(4),d=i.readBits(4),f=l+1;i.skipBits(f);let m=d+1;i.skipBits(m);let p=0;if(o?p=0:p=i.readBits(1),p&&(i.skipBits(4),i.skipBits(3)),i.skipBits(1),i.skipBits(1),i.skipBits(1),!o){i.skipBits(1),i.skipBits(1),i.skipBits(1),i.skipBits(1);let E=i.readBits(1);E&&(i.skipBits(1),i.skipBits(1));let S=i.readBits(1),P=0;S?P=2:P=i.readBits(1),P>0&&(i.readBits(1)||i.skipBits(1)),E&&i.skipBits(3)}i.skipBits(1),i.skipBits(1),i.skipBits(1);let g=i.readBits(1),b=8;n===2&&g?b=i.readBits(1)?12:10:n<=2&&(b=g?10:8);let w=0;n!==1&&(w=i.readBits(1));let x=1,y=1,T=0;return w||(n===0?(x=1,y=1):n===1?(x=0,y=0):b===12&&(x=i.readBits(1),x&&(y=i.readBits(1))),x&&y&&(T=i.readBits(2))),{profile:n,level:a,tier:c,bitDepth:b,monochrome:w,chromaSubsamplingX:x,chromaSubsamplingY:y,chromaSamplePosition:T}}return null},Pn=t=>{let e=V(t),r=e.getUint8(9),i=e.getUint16(10,!0),n=e.getUint32(12,!0),s=e.getInt16(16,!0),o=e.getUint8(18),a=null;return o&&(a=t.subarray(19,21+r)),{outputChannelCount:r,preSkip:i,inputSampleRate:n,outputGain:s,channelMappingFamily:o,channelMappingTable:a}},pd=[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],zc=t=>{let e=t[0]>>3;return{durationInSamples:pd[e]}},Vc=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 d=0;d<r;d++)i[d]=t[r-1-d];let n=new W(i),s=0;for(;n.getBitsLeft()>97;)if(n.readBits(1)===1){s=n.pos;break}if(s===0)throw new Error("Invalid Setup header: framing bit not found.");let o=0,a=!1,c=0;for(;n.getBitsLeft()>=97;){let d=n.pos,f=n.readBits(8),m=n.readBits(16),p=n.readBits(16);if(f>63||m!==0||p!==0){n.pos=d;break}if(n.skipBits(1),o++,o>64)break;n.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;n.pos=0,n.skipBits(s);let l=Array(u).fill(0);for(let d=u-1;d>=0;d--)n.skipBits(40),l[d]=n.readBits(1);return{modeBlockflags:l}},Dn=(t,e,r)=>{switch(t){case"avc":{let i=Ks(r,e),n=i.some(s=>zt(s)===Ut.IDR);if(!n&&(!ai()||mc()>=144))for(let s of i){if(zt(s)!==Ut.SEI)continue;let a=Cn(s),c=1;do{let u=0;for(;;){let f=a[c++];if(f===void 0||(u+=f,f<255))break}let l=0;for(;;){let f=a[c++];if(f===void 0||(l+=f,f<255))break}if(u===6){let f=new W(a);f.pos=8*c;let m=_(f),p=f.readBits(1);if(m===0&&p===1){n=!0;break}}c+=l}while(c<a.length-1)}return n?"key":"delta"}case"hevc":return Zs(r,e).some(s=>{let o=tt(s);return me.BLA_W_LP<=o&&o<=me.RSV_IRAP_VCL23})?"key":"delta";case"vp8":return(r[0]&1)===0?"key":"delta";case"vp9":{let i=new W(r);if(i.readBits(2)!==2)return null;let n=i.readBits(1);return(i.readBits(1)<<1)+n===3&&i.skipBits(1),i.readBits(1)?null:i.readBits(1)===0?"key":"delta"}case"av1":{let i=!1;for(let{type:n,data:s}of Uc(r))if(n===1){let o=new W(s);o.skipBits(4),i=!!o.readBits(1)}else if(n===3||n===6||n===7){if(i)return"key";let o=new W(s);return o.readBits(1)?null:o.readBits(2)===0?"key":"delta"}return null}default:ue(t),h(!1)}},gt;(function(t){t[t.STREAMINFO=0]="STREAMINFO",t[t.VORBIS_COMMENT=4]="VORBIS_COMMENT",t[t.PICTURE=6]="PICTURE"})(gt||(gt={}));var fi=(t,e)=>{let r=V(t),i=0,n=r.getUint32(i,!0);i+=4;let s=ae.decode(t.subarray(i,i+n));i+=n,n>0&&(e.raw??={},e.raw.vendor??=s);let o=r.getUint32(i,!0);i+=4;for(let a=0;a<o;a++){let c=r.getUint32(i,!0);i+=4;let u=ae.decode(t.subarray(i,i+c));i+=c;let l=u.indexOf("=");if(l===-1)continue;let d=u.slice(0,l).toUpperCase(),f=u.slice(l+1);switch(e.raw??={},e.raw[d]??=f,d){case"TITLE":e.title??=f;break;case"DESCRIPTION":e.description??=f;break;case"ARTIST":e.artist??=f;break;case"ALBUM":e.album??=f;break;case"ALBUMARTIST":e.albumArtist??=f;break;case"COMMENT":e.comment??=f;break;case"LYRICS":e.lyrics??=f;break;case"TRACKNUMBER":{let m=f.split("/"),p=Number.parseInt(m[0],10),g=m[1]&&Number.parseInt(m[1],10);Number.isInteger(p)&&p>0&&(e.trackNumber??=p),g&&Number.isInteger(g)&&g>0&&(e.tracksTotal??=g)}break;case"TRACKTOTAL":{let m=Number.parseInt(f,10);Number.isInteger(m)&&m>0&&(e.tracksTotal??=m)}break;case"DISCNUMBER":{let m=f.split("/"),p=Number.parseInt(m[0],10),g=m[1]&&Number.parseInt(m[1],10);Number.isInteger(p)&&p>0&&(e.discNumber??=p),g&&Number.isInteger(g)&&g>0&&(e.discsTotal??=g)}break;case"DISCTOTAL":{let m=Number.parseInt(f,10);Number.isInteger(m)&&m>0&&(e.discsTotal??=m)}break;case"DATE":{let m=new Date(f);Number.isNaN(m.getTime())||(e.date??=m)}break;case"GENRE":e.genre??=f;break;case"METADATA_BLOCK_PICTURE":{let m=hc(f),p=V(m),g=p.getUint32(0,!1),b=p.getUint32(4,!1),w=String.fromCharCode(...m.subarray(8,8+b)),x=p.getUint32(8+b,!1),y=ae.decode(m.subarray(12+b,12+b+x)),T=p.getUint32(b+x+28),E=m.subarray(b+x+32,b+x+32+T);e.images??=[],e.images.push({data:E,mimeType:w,kind:g===3?"coverFront":g===4?"coverBack":"unknown",name:void 0,description:y||void 0})}break}}};var de=class{constructor(e){this.input=e}};var In=[],Fn=[],Lc=[],qc=[];var te=new Uint8Array(0),L=class t{constructor(e,r,i,n,s=-1,o,a){if(this.data=e,this.type=r,this.timestamp=i,this.duration=n,this.sequenceNumber=s,e===te&&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(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(n)||n<0)throw new TypeError("duration must be a non-negative number.");if(!Number.isFinite(s))throw new TypeError("sequenceNumber must be a number.");if(!Number.isInteger(o)||o<0)throw new TypeError("byteLength must be a non-negative integer.");if(a!==void 0&&(typeof a!="object"||!a))throw new TypeError("sideData, when provided, must be an object.");if(a?.alpha!==void 0&&!(a.alpha instanceof Uint8Array))throw new TypeError("sideData.alpha, when provided, must be a Uint8Array.");if(a?.alphaByteLength!==void 0&&(!Number.isInteger(a.alphaByteLength)||a.alphaByteLength<0))throw new TypeError("sideData.alphaByteLength, when provided, must be a non-negative integer.");this.byteLength=o,this.sideData=a??{},this.sideData.alpha&&this.sideData.alphaByteLength===void 0&&(this.sideData.alphaByteLength=this.sideData.alpha.byteLength)}get isMetadataOnly(){return this.data===te}get microsecondTimestamp(){return Math.trunc(Le*this.timestamp)}get microsecondDuration(){return Math.trunc(Le*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 Hc=t=>{let i=t,n=4096,s=0,o=12,a=0;for(i<0&&(i=-i,s=128),i+=33,i>8191&&(i=8191);(i&n)!==n&&o>=5;)n>>=1,o--;return a=i>>o-4&15,~(s|o-5<<4|a)&255},Wc=t=>{let r=0,i=0,n=~t;n&128&&(n&=-129,r=-1),i=((n&240)>>4)+5;let s=(1<<i|(n&15)<<i-4|1<<i-5)-33;return r===0?s:-s},Gc=t=>{let r=2048,i=0,n=11,s=0,o=t;for(o<0&&(o=-o,i=128),o>4095&&(o=4095);(o&r)!==r&&n>=5;)r>>=1,n--;return s=o>>(n===4?1:n-4)&15,(i|n-4<<4|s)^85},jc=t=>{let e=0,r=0,i=t^85;i&128&&(i&=-129,e=-1),r=((i&240)>>4)+4;let n=0;return r!==4?n=1<<r|(i&15)<<r-4|1<<r-5:n=i<<1|1,e===0?n:-n};xn();var $c=-1/0,Qc=-1/0,hi=null;typeof FinalizationRegistry<"u"&&(hi=new FinalizationRegistry(t=>{let e=Date.now();t.type==="video"?(e-$c>=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."),$c=e),typeof VideoFrame<"u"&&t.data instanceof VideoFrame&&t.data.close()):(e-Qc>=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."),Qc=e),typeof AudioData<"u"&&t.data instanceof AudioData&&t.data.close())}));var eo=["I420","I420P10","I420P12","I420A","I420AP10","I420AP12","I422","I422P10","I422P12","I422A","I422AP10","I422AP12","I444","I444P10","I444P12","I444A","I444AP10","I444AP12","NV12","RGBA","RGBX","BGRA","BGRX"],gd=new Set(eo),Ee=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(Le*this.timestamp)}get microsecondDuration(){return Math.trunc(Le*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||!gd.has(r.format))throw new TypeError("init.format must be one of: "+eo.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=J(e).slice(),this._layout=r.layout??bd(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 pr(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 pr(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*Le),duration:Math.trunc((r.duration??0)*Le)||void 0}),r);let i=0,n=0;if("naturalWidth"in e?(i=e.naturalWidth,n=e.naturalHeight):"videoWidth"in e?(i=e.videoWidth,n=e.videoHeight):"width"in e&&(i=Number(e.width),n=Number(e.height)),!i||!n)throw new TypeError("Could not determine dimensions.");let s=new OffscreenCanvas(i,n),o=s.getContext("2d",{alpha:dr(),willReadFrequently:!0});h(o),o.drawImage(e,0,0),this._data=s,this._layout=null,this.format="RGBX",this.codedWidth=i,this.codedHeight=n,this.rotation=r.rotation??0,this.timestamp=r.timestamp,this.duration=r.duration??0,this.colorSpace=new pr({matrix:"rgb",primaries:"bt709",transfer:"iec61966-2-1",fullRange:!0})}else throw new TypeError("Invalid data type: Must be a BufferSource or CanvasImageSource.");hi?.register(this,{type:"video",data:this._data},this)}clone(){if(this._closed)throw new Error("VideoSample is closed.");return h(this._data!==null),Vt(this._data)?new t(this._data.clone(),{timestamp:this.timestamp,duration:this.duration,rotation:this.rotation}):this._data instanceof Uint8Array?(h(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||(hi?.unregister(this),Vt(this._data)?this._data.close():this._data=null,this._closed=!0)}allocationSize(e={}){if(Xc(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(h(this._data!==null),!Vt(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 Vt(this._data)?this._data.allocationSize(e):this._data instanceof Uint8Array?this._data.byteLength:this.codedWidth*this.codedHeight*4}async copyTo(e,r={}){if(!ur(e))throw new TypeError("destination must be an ArrayBuffer or an ArrayBuffer view.");if(Xc(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(h(this._data!==null),!Vt(this._data)&&(r.colorSpace||r.format&&r.format!==this.format||r.layout||r.rect)){let i=this.toVideoFrame(),n=await i.copyTo(e,r);return i.close(),n}if(Vt(this._data))return this._data.copyTo(e,r);if(this._data instanceof Uint8Array)return h(this._layout),J(e).set(this._data),this._layout;{let n=this._data.getContext("2d");h(n);let s=n.getImageData(0,0,this.codedWidth,this.codedHeight);return J(e).set(s.data),[{offset:0,stride:4*this.codedWidth}]}}toVideoFrame(){if(this._closed)throw new Error("VideoSample is closed.");return h(this._data!==null),Vt(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,n,s,o,a,c,u){let l=0,d=0,f=this.displayWidth,m=this.displayHeight,p=0,g=0,b=this.displayWidth,w=this.displayHeight;if(o!==void 0?(l=r,d=i,f=n,m=s,p=o,g=a,c!==void 0?(b=c,w=u):(b=f,w=m)):(p=r,g=i,n!==void 0&&(b=n,w=s)),!(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(d))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(m)||m<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(b)||b<0)throw new TypeError("dWidth must be a non-negative number.");if(!Number.isFinite(w)||w<0)throw new TypeError("dHeight must be a non-negative number.");if(this._closed)throw new Error("VideoSample is closed.");({sx:l,sy:d,sWidth:f,sHeight:m}=this._rotateSourceRegion(l,d,f,m,this.rotation));let x=this.toCanvasImageSource();e.save();let y=p+b/2,T=g+w/2;e.translate(y,T),e.rotate(this.rotation*Math.PI/180);let E=this.rotation%180===0?1:b/w;e.scale(1/E,E),e.drawImage(x,l,d,f,m,-b/2,-w/2,b,w),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&&Yc(r.crop,"options.");let i=e.canvas.width,n=e.canvas.height,s=r.rotation??this.rotation,[o,a]=s%180===0?[this.codedWidth,this.codedHeight]:[this.codedHeight,this.codedWidth];r.crop&&Kc(r.crop,o,a);let c,u,l,d,{sx:f,sy:m,sWidth:p,sHeight:g}=this._rotateSourceRegion(r.crop?.left??0,r.crop?.top??0,r.crop?.width??o,r.crop?.height??a,s);if(r.fit==="fill")c=0,u=0,l=i,d=n;else{let[w,x]=r.crop?[r.crop.width,r.crop.height]:[o,a],y=r.fit==="contain"?Math.min(i/w,n/x):Math.max(i/w,n/x);l=w*y,d=x*y,c=(i-l)/2,u=(n-d)/2}e.save();let b=s%180===0?1:l/d;e.translate(i/2,n/2),e.rotate(s*Math.PI/180),e.scale(1/b,b),e.translate(-i/2,-n/2),e.drawImage(this.toCanvasImageSource(),f,m,p,g,c,u,l,d),e.restore()}_rotateSourceRegion(e,r,i,n,s){return s===90?[e,r,i,n]=[r,this.codedHeight-e-i,n,i]:s===180?[e,r]=[this.codedWidth-e-i,this.codedHeight-r-n]:s===270&&([e,r,i,n]=[this.codedWidth-r-n,e,n,i]),{sx:e,sy:r,sWidth:i,sHeight:n}}toCanvasImageSource(){if(this._closed)throw new Error("VideoSample is closed.");if(h(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()}},pr=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}}},Vt=t=>typeof VideoFrame<"u"&&t instanceof VideoFrame,Kc=(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),h(t.width>=0),h(t.height>=0)},Yc=(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.")},Xc=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.")}},bd=(t,e,r)=>{let i=wd(t),n=[],s=0;for(let o of i){let a=Math.ceil(e/o.widthDivisor),c=Math.ceil(r/o.heightDivisor),u=a*o.sampleBytes,l=u*c;n.push({offset:s,stride:u}),s+=l}return n},wd=t=>{let e=(r,i,n,s,o)=>{let a=[{sampleBytes:r,widthDivisor:1,heightDivisor:1},{sampleBytes:i,widthDivisor:n,heightDivisor:s},{sampleBytes:i,widthDivisor:n,heightDivisor:s}];return o&&a.push({sampleBytes:r,widthDivisor:1,heightDivisor:1}),a};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:ue(t),h(!1)}},Js=new Set(["f32","f32-planar","s16","s16-planar","s32","s32-planar","u8","u8-planar"]),Ae=class t{get microsecondTimestamp(){return Math.trunc(Le*this.timestamp)}get microsecondDuration(){return Math.trunc(Le*this.duration)}constructor(e){if(this._closed=!1,mi(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(!Js.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/(Lt(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 n=this.numberOfFrames*this.numberOfChannels*Lt(this.format);if(i.byteLength<n)throw new TypeError("Invalid AudioDataInit: insufficient data size.");this._data=i}hi?.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&&!Js.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 n=e.frameCount!==void 0?e.frameCount:this.numberOfFrames-i;if(n>this.numberOfFrames-i)throw new RangeError("frameCount out of range");let s=Lt(r),o=hr(r);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?n:n*this.numberOfChannels)*s}copyTo(e,r){if(!ur(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&&!Js.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:n,frameCount:s,frameOffset:o}=r,a=this.format,c=n??this.format;if(!c)throw new Error("Destination format not determined");let u=this.numberOfFrames,l=this.numberOfChannels,d=o??0;if(d>=u)throw new RangeError("frameOffset out of range");let f=s!==void 0?s:u-d;if(f>u-d)throw new RangeError("frameCount out of range");let m=Lt(c),p=hr(c);if(p&&i>=l)throw new RangeError("planeIndex out of range");if(!p&&i!==0)throw new RangeError("planeIndex out of range");let b=(p?f:f*l)*m;if(e.byteLength<b)throw new RangeError("Destination buffer is too small");let w=V(e),x=Jc(c);if(mi(this._data))pt()&&l>2&&c!==a?xd(this._data,w,a,c,l,i,d,f):this._data.copyTo(e,{planeIndex:i,frameOffset:d,frameCount:f,format:c});else{let y=this._data,T=V(y),E=Zc(a),S=Lt(a),P=hr(a);for(let v=0;v<f;v++)if(p){let F=v*m,M;P?M=(i*u+(v+d))*S:M=((v+d)*l+i)*S;let B=E(T,M);x(w,F,B)}else for(let F=0;F<l;F++){let B=(v*l+F)*m,Q;P?Q=(F*u+(v+d))*S:Q=((v+d)*l+F)*S;let je=E(T,Q);x(w,B,je)}}}clone(){if(this._closed)throw new Error("AudioSample is closed.");if(mi(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||(hi?.unregister(this),mi(this._data)?this._data.close():this._data=new Uint8Array(0),this._closed=!0)}toAudioData(){if(this._closed)throw new Error("AudioSample is closed.");if(mi(this._data)){if(this._data.timestamp===this.microsecondTimestamp)return this._data.clone();if(hr(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,n=e.numberOfChannels,s=e.sampleRate,o=e.length,a=Math.floor(i/n),c=0,u=o;for(;u>0;){let l=Math.min(a,u),d=new Float32Array(n*l);for(let f=0;f<n;f++)e.copyFromChannel(d.subarray(f*l,(f+1)*l),f,c);yield new t({format:"f32-planar",sampleRate:s,numberOfFrames:l,numberOfChannels:n,timestamp:r+c/s,data:d}),c+=l,u-=l}}static fromAudioBuffer(e,r){if(!(e instanceof AudioBuffer))throw new TypeError("audioBuffer must be an AudioBuffer.");let i=48e3*5,n=e.numberOfChannels,s=e.sampleRate,o=e.length,a=Math.floor(i/n),c=0,u=o,l=[];for(;u>0;){let d=Math.min(a,u),f=new Float32Array(n*d);for(let p=0;p<n;p++)e.copyFromChannel(f.subarray(p*d,(p+1)*d),p,c);let m=new t({format:"f32-planar",sampleRate:s,numberOfFrames:d,numberOfChannels:n,timestamp:r+c/s,data:f});l.push(m),c+=d,u-=d}return l}},Lt=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")}},hr=t=>{switch(t){case"u8-planar":case"s16-planar":case"s32-planar":case"f32-planar":return!0;default:return!1}},Zc=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)}},Jc=t=>{switch(t){case"u8":case"u8-planar":return(e,r,i)=>e.setUint8(r,ee((i+1)*127.5,0,255));case"s16":case"s16-planar":return(e,r,i)=>e.setInt16(r,ee(Math.round(i*32767),-32768,32767),!0);case"s32":case"s32-planar":return(e,r,i)=>e.setInt32(r,ee(Math.round(i*2147483647),-2147483648,2147483647),!0);case"f32":case"f32-planar":return(e,r,i)=>e.setFloat32(r,i,!0)}},mi=t=>typeof AudioData<"u"&&t instanceof AudioData,xd=(t,e,r,i,n,s,o,a)=>{let c=Zc(r),u=Jc(i),l=Lt(r),d=Lt(i),f=hr(r);if(hr(i))if(f){let p=new ArrayBuffer(a*l),g=V(p);t.copyTo(p,{planeIndex:s,frameOffset:o,frameCount:a,format:r});for(let b=0;b<a;b++){let w=b*l,x=b*d,y=c(g,w);u(e,x,y)}}else{let p=new ArrayBuffer(a*n*l),g=V(p);t.copyTo(p,{planeIndex:0,frameOffset:o,frameCount:a,format:r});for(let b=0;b<a;b++){let w=(b*n+s)*l,x=b*d,y=c(g,w);u(e,x,y)}}else if(f){let p=a*l,g=new ArrayBuffer(p),b=V(g);for(let w=0;w<n;w++){t.copyTo(g,{planeIndex:w,frameOffset:o,frameCount:a,format:r});for(let x=0;x<a;x++){let y=x*l,T=(x*n+w)*d,E=c(b,y);u(e,T,E)}}}else{let p=new ArrayBuffer(a*n*l),g=V(p);t.copyTo(p,{planeIndex:0,frameOffset:o,frameCount:a,format:r});for(let b=0;b<a;b++)for(let w=0;w<n;w++){let x=b*n+w,y=x*l,T=x*d,E=c(g,y);u(e,T,E)}}};var gr=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.")},qt=t=>{if(!ui(t))throw new TypeError("timestamp must be a number.")},to=(t,e,r)=>r.verifyKeyPackets?e.then(async i=>{if(!i||i.type==="delta")return i;let n=await t.determinePacketType(i);return n&&(i.type=n),i}):e,Ht=class{constructor(e){if(!(e instanceof br))throw new TypeError("track must be an InputTrack.");this._track=e}getFirstPacket(e={}){if(gr(e),this._track.input._disposed)throw new re;return to(this._track,this._track._backing.getFirstPacket(e),e)}getPacket(e,r={}){if(qt(e),gr(r),this._track.input._disposed)throw new re;return to(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(gr(r),this._track.input._disposed)throw new re;return to(this._track,this._track._backing.getNextPacket(e,r),r)}async getKeyPacket(e,r={}){if(qt(e),gr(r),this._track.input._disposed)throw new re;if(!r.verifyKeyPackets)return this._track._backing.getKeyPacket(e,r);let i=await this._track._backing.getKeyPacket(e,r);return i&&(h(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(gr(r),this._track.input._disposed)throw new re;if(!r.verifyKeyPackets)return this._track._backing.getNextKeyPacket(e,r);let i=await this._track._backing.getNextKeyPacket(e,r);return i&&(h(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(gr(i),this._track.input._disposed)throw new re;let n=[],{promise:s,resolve:o}=ce(),{promise:a,resolve:c}=ce(),u=!1,l=!1,d=null,f=[],m=()=>Math.max(2,f.length);(async()=>{let g=e??await this.getFirstPacket(i);for(;g&&!l&&!this._track.input._disposed&&!(r&&g.sequenceNumber>=r?.sequenceNumber);){if(n.length>m()){({promise:a,resolve:c}=ce()),await a;continue}n.push(g),o(),{promise:s,resolve:o}=ce(),g=await this.getNextPacket(g,i)}u=!0,o()})().catch(g=>{d||(d=g,o())});let p=this._track;return{async next(){for(;;){if(p.input._disposed)throw new re;if(l)return{value:void 0,done:!0};if(d)throw d;if(n.length>0){let g=n.shift(),b=performance.now();for(f.push(b);f.length>0&&b-f[0]>=1e3;)f.shift();return c(),{value:g,done:!1}}else{if(u)return{value:void 0,done:!0};await s}}},async return(){return l=!0,c(),o(),{value:void 0,done:!0}},async throw(g){throw g},[Symbol.asyncIterator](){return this}}}},pi=class{constructor(e,r){this.onSample=e,this.onError=r}},gi=class{mediaSamplesInRange(e=0,r=1/0){qt(e),qt(r);let i=[],n=!1,s=null,{promise:o,resolve:a}=ce(),{promise:c,resolve:u}=ce(),l=!1,d=!1,f=!1,m=null;(async()=>{let b=await this._createDecoder(S=>{if(u(),S.timestamp>=r&&(d=!0),d){S.close();return}s&&(S.timestamp>e?(i.push(s),n=!0):s.close()),S.timestamp>=e&&(i.push(S),n=!0),s=n?null:S,i.length>0&&(a(),{promise:o,resolve:a}=ce())},S=>{m||(m=S,a())}),w=this._createPacketSink(),x=await w.getKeyPacket(e,{verifyKeyPackets:!0})??await w.getFirstPacket(),y=x,T;if(r<1/0){let S=await w.getPacket(r),P=S?S.type==="key"&&S.timestamp===r?S:await w.getNextKeyPacket(S,{verifyKeyPackets:!0}):null;P&&(T=P)}let E=w.packets(x??void 0,T);for(await E.next();y&&!d&&!this._track.input._disposed;){let S=eu(i.length);if(i.length+b.getDecodeQueueSize()>S){({promise:c,resolve:u}=ce()),await c;continue}b.decode(y);let P=await E.next();if(P.done)break;y=P.value}await E.return(),!f&&!this._track.input._disposed&&await b.flush(),b.close(),!n&&s&&i.push(s),l=!0,a()})().catch(b=>{m||(m=b,a())});let p=this._track,g=()=>{s?.close();for(let b of i)b.close()};return{async next(){for(;;){if(p.input._disposed)throw g(),new re;if(f)return{value:void 0,done:!0};if(m)throw g(),m;if(i.length>0){let b=i.shift();return u(),{value:b,done:!1}}else if(!l)await o;else return{value:void 0,done:!0}}},async return(){return f=!0,d=!0,u(),a(),g(),{value:void 0,done:!0}},async throw(b){throw b},[Symbol.asyncIterator](){return this}}}mediaSamplesAtTimestamps(e){ac(e);let r=oc(e),i=[],n=[],{promise:s,resolve:o}=ce(),{promise:a,resolve:c}=ce(),u=!1,l=!1,d=null,f=g=>{n.push(g),o(),{promise:s,resolve:o}=ce()};(async()=>{let g=await this._createDecoder(S=>{if(c(),l){S.close();return}let P=0;for(;i.length>0&&S.timestamp-i[0]>-1e-10;)P++,i.shift();if(P>0)for(let v=0;v<P;v++)f(v<P-1?S.clone():S);else S.close()},S=>{d||(d=S,o())}),b=this._createPacketSink(),w=null,x=null,y=-1,T=async()=>{h(x);let S=x;for(g.decode(S);S.sequenceNumber<y;){let P=eu(n.length);for(;n.length+g.getDecodeQueueSize()>P&&!l;)({promise:a,resolve:c}=ce()),await a;if(l)break;let v=await b.getNextPacket(S);h(v),g.decode(v),S=v}y=-1},E=async()=>{await g.flush();for(let S=0;S<i.length;S++)f(null);i.length=0};for await(let S of r){if(qt(S),l||this._track.input._disposed)break;let P=await b.getPacket(S),v=P&&await b.getKeyPacket(S,{verifyKeyPackets:!0});if(!v){y!==-1&&(await T(),await E()),f(null),w=null;continue}w&&(v.sequenceNumber!==x.sequenceNumber||P.timestamp<w.timestamp)&&(await T(),await E()),i.push(P.timestamp),y=Math.max(P.sequenceNumber,y),w=P,x=v}!l&&!this._track.input._disposed&&(y!==-1&&await T(),await E()),g.close(),u=!0,o()})().catch(g=>{d||(d=g,o())});let m=this._track,p=()=>{for(let g of n)g?.close()};return{async next(){for(;;){if(m.input._disposed)throw p(),new re;if(l)return{value:void 0,done:!0};if(d)throw p(),d;if(n.length>0){let g=n.shift();return h(g!==void 0),c(),{value:g,done:!1}}else if(!u)await s;else return{value:void 0,done:!0}}},async return(){return l=!0,c(),o(),p(),{value:void 0,done:!0}},async throw(g){throw g},[Symbol.asyncIterator](){return this}}}},eu=t=>t===0?40:8,ro=class extends pi{constructor(e,r,i,n,s,o){super(e,r),this.codec=i,this.decoderConfig=n,this.rotation=s,this.timeResolution=o,this.decoder=null,this.customDecoder=null,this.customDecoderCallSerializer=new ht,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 a=In.find(c=>c.supports(i,n));if(a)this.customDecoder=new a,this.customDecoder.codec=i,this.customDecoder.config=n,this.customDecoder.onSample=c=>{if(!(c instanceof Ee))throw new TypeError("The argument passed to onSample must be a VideoSample.");this.finalizeAndEmitSample(c)},this.customDecoderCallSerializer.call(()=>this.customDecoder.init());else{let c=l=>{if(this.alphaQueue.length>0){let d=this.alphaQueue.shift();h(d!==void 0),this.mergeAlpha(l,d)}else this.colorQueue.push(l)};if(i==="avc"&&this.decoderConfig.description&&ai()){let l=Nc(J(this.decoderConfig.description));if(l&&l.sequenceParameterSets.length>0){let d=Ys(l.sequenceParameterSets[0]);d&&d.frameMbsOnlyFlag===0&&(this.decoderConfig={...this.decoderConfig,hardwareAcceleration:"prefer-software"})}}let u=new Error("Decoding error").stack;this.decoder=new VideoDecoder({output:l=>{try{c(l)}catch(d){this.onError(d)}},error:l=>{l.stack=u,this.onError(l)}}),this.decoder.configure(this.decoderConfig)}}getDecodeQueueSize(){return this.customDecoder?this.customDecoderQueueSize:(h(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(h(this.decoder),pt()||qs(this.inputTimestamps,e.timestamp,r=>r),ai()&&this.currentPacketIndex===0&&this.codec==="avc"){let i=Ks(e.data,this.decoderConfig).filter(s=>{let o=zt(s);return!(o>=20&&o<=31)}),n=Rc(i,this.decoderConfig);e=new L(n,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 io}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=s=>{if(this.alphaDecoderQueueSize--,this.colorQueue.length>0){let o=this.colorQueue.shift();h(o!==void 0),this.mergeAlpha(o,s)}else this.alphaQueue.push(s);for(this.decodedAlphaChunkCount++;this.nullAlphaFrameQueue.length>0&&this.nullAlphaFrameQueue[0]===this.decodedAlphaChunkCount;)if(this.nullAlphaFrameQueue.shift(),this.colorQueue.length>0){let o=this.colorQueue.shift();h(o!==void 0),this.mergeAlpha(o,null)}else this.alphaQueue.push(null)},n=new Error("Decoding error").stack;this.alphaDecoder=new VideoDecoder({output:s=>{try{i(s)}catch(o){this.onError(o)}},error:s=>{s.stack=n,this.onError(s)}}),this.alphaDecoder.configure(this.decoderConfig)}let r=Dn(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 n=tt(i);return n===me.RASL_N||n===me.RASL_R})}sampleHandler(e){if(pt()){if(this.sampleQueue.length>0&&e.timestamp>=G(this.sampleQueue).timestamp){for(let r of this.sampleQueue)this.finalizeAndEmitSample(r);this.sampleQueue.length=0}qs(this.sampleQueue,e,r=>r.timestamp)}else{let r=this.inputTimestamps.shift();h(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 s=new Ee(e);this.sampleHandler(s);return}h(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}),n=new Ee(i);this.sampleHandler(n)}async flush(){if(this.customDecoder?await this.customDecoderCallSerializer.call(()=>this.customDecoder.flush()):(h(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),pt()){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()):(h(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}},io=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
|
|
12
|
+
in vec2 a_position;
|
|
13
|
+
in vec2 a_texCoord;
|
|
14
|
+
out vec2 v_texCoord;
|
|
15
|
+
|
|
16
|
+
void main() {
|
|
17
|
+
gl_Position = vec4(a_position, 0.0, 1.0);
|
|
18
|
+
v_texCoord = a_texCoord;
|
|
19
|
+
}
|
|
20
|
+
`),r=this.createShader(this.gl.FRAGMENT_SHADER,`#version 300 es
|
|
21
|
+
precision highp float;
|
|
22
|
+
|
|
23
|
+
uniform sampler2D u_colorTexture;
|
|
24
|
+
uniform sampler2D u_alphaTexture;
|
|
25
|
+
in vec2 v_texCoord;
|
|
26
|
+
out vec4 fragColor;
|
|
27
|
+
|
|
28
|
+
void main() {
|
|
29
|
+
vec3 color = texture(u_colorTexture, v_texCoord).rgb;
|
|
30
|
+
float alpha = texture(u_alphaTexture, v_texCoord).r;
|
|
31
|
+
fragColor = vec4(color, alpha);
|
|
32
|
+
}
|
|
33
|
+
`),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 n=this.gl.getAttribLocation(this.program,"a_position"),s=this.gl.getAttribLocation(this.program,"a_texCoord");return this.gl.enableVertexAttribArray(n),this.gl.vertexAttribPointer(n,2,this.gl.FLOAT,!1,16,0),this.gl.enableVertexAttribArray(s),this.gl.vertexAttribPointer(s,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}},bi=class extends gi{constructor(e){if(!(e instanceof rt))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,n=this._track.rotation,s=await this._track.getDecoderConfig(),o=this._track.timeResolution;return h(i&&s),new ro(e,r,i,s,n,o)}_createPacketSink(){return new Ht(this._track)}async getSample(e){qt(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 no=class extends pi{constructor(e,r,i,n){super(e,r),this.decoder=null,this.customDecoder=null,this.customDecoderCallSerializer=new ht,this.customDecoderQueueSize=0,this.currentTimestamp=null;let s=a=>{(this.currentTimestamp===null||Math.abs(a.timestamp-this.currentTimestamp)>=a.duration)&&(this.currentTimestamp=a.timestamp);let c=this.currentTimestamp;if(this.currentTimestamp+=a.duration,a.numberOfFrames===0){a.close();return}let u=n.sampleRate;a.setTimestamp(Math.round(c*u)/u),e(a)},o=Fn.find(a=>a.supports(i,n));if(o)this.customDecoder=new o,this.customDecoder.codec=i,this.customDecoder.config=n,this.customDecoder.onSample=a=>{if(!(a instanceof Ae))throw new TypeError("The argument passed to onSample must be an AudioSample.");s(a)},this.customDecoderCallSerializer.call(()=>this.customDecoder.init());else{let a=new Error("Decoding error").stack;this.decoder=new AudioDecoder({output:c=>{try{s(new Ae(c))}catch(u){this.onError(u)}},error:c=>{c.stack=a,this.onError(c)}}),this.decoder.configure(n)}}getDecodeQueueSize(){return this.customDecoder?this.customDecoderQueueSize:(h(this.decoder),this.decoder.decodeQueueSize)}decode(e){this.customDecoder?(this.customDecoderQueueSize++,this.customDecoderCallSerializer.call(()=>this.customDecoder.decode(e)).then(()=>this.customDecoderQueueSize--)):(h(this.decoder),this.decoder.decode(e.toEncodedAudioChunk()))}flush(){return this.customDecoder?this.customDecoderCallSerializer.call(()=>this.customDecoder.flush()):(h(this.decoder),this.decoder.flush())}close(){this.customDecoder?this.customDecoderCallSerializer.call(()=>this.customDecoder.close()):(h(this.decoder),this.decoder.close())}},so=class extends pi{constructor(e,r,i){super(e,r),this.decoderConfig=i,this.currentTimestamp=null,h(Y.includes(i.codec)),this.codec=i.codec;let{dataType:n,sampleSize:s,littleEndian:o}=Te(this.codec);switch(this.inputSampleSize=s,s){case 1:n==="unsigned"?this.readInputValue=(a,c)=>a.getUint8(c)-2**7:n==="signed"?this.readInputValue=(a,c)=>a.getInt8(c):n==="ulaw"?this.readInputValue=(a,c)=>Wc(a.getUint8(c)):n==="alaw"?this.readInputValue=(a,c)=>jc(a.getUint8(c)):h(!1);break;case 2:n==="unsigned"?this.readInputValue=(a,c)=>a.getUint16(c,o)-2**15:n==="signed"?this.readInputValue=(a,c)=>a.getInt16(c,o):h(!1);break;case 3:n==="unsigned"?this.readInputValue=(a,c)=>Bt(a,c,o)-2**23:n==="signed"?this.readInputValue=(a,c)=>cc(a,c,o):h(!1);break;case 4:n==="unsigned"?this.readInputValue=(a,c)=>a.getUint32(c,o)-2**31:n==="signed"?this.readInputValue=(a,c)=>a.getInt32(c,o):n==="float"?this.readInputValue=(a,c)=>a.getFloat32(c,o):h(!1);break;case 8:n==="float"?this.readInputValue=(a,c)=>a.getFloat64(c,o):h(!1);break;default:ue(s),h(!1)}switch(s){case 1:n==="ulaw"||n==="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,n==="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:ue(s),h(!1)}}getDecodeQueueSize(){return 0}decode(e){let r=V(e.data),i=e.byteLength/this.decoderConfig.numberOfChannels/this.inputSampleSize,n=i*this.decoderConfig.numberOfChannels*this.outputSampleSize,s=new ArrayBuffer(n),o=new DataView(s);for(let l=0;l<i*this.decoderConfig.numberOfChannels;l++){let d=l*this.inputSampleSize,f=l*this.outputSampleSize,m=this.readInputValue(r,d);this.writeOutputValue(o,f,m)}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 Ae({format:this.outputFormat,data:s,numberOfChannels:this.decoderConfig.numberOfChannels,sampleRate:this.decoderConfig.sampleRate,numberOfFrames:i,timestamp:c});this.onSample(u)}async flush(){}close(){}},wi=class extends gi{constructor(e){if(!(e instanceof ie))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,n=await this._track.getDecoderConfig();return h(i&&n),Y.includes(n.codec)?new so(e,r,n):new no(e,r,i,n)}_createPacketSink(){return new Ht(this._track)}async getSample(e){qt(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 br=class{constructor(e,r){this.input=e,this._backing=r}isVideoTrack(){return this instanceof rt}isAudioTrack(){return this instanceof ie}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 Ht(this),i=1/0,n=-1/0,s=0,o=0;for await(let a of r.packets(void 0,void 0,{metadataOnly:!0})){if(s>=e&&a.timestamp>=n)break;i=Math.min(i,a.timestamp),n=Math.max(n,a.timestamp+a.duration),s++,o+=a.byteLength}return{packetCount:s,averagePacketRate:s?Number((s/(n-i)).toPrecision(16)):0,averageBitrate:s?Number((8*o/(n-i)).toPrecision(16)):0}}},rt=class extends br{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 h(r!==null),In.some(n=>n.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 h(r),Dn(this.codec,r,e.data)}},ie=class extends br{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 h(r!==null),Fn.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 Bn=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 De=8,it=16,nt=t=>{let e=A(t),r=j(t,4),i=8;e===1&&(e=ke(t),i=16);let s=e-i;return s<0?null:{name:r,totalSize:e,headerSize:i,contentSize:s}},bt=t=>st(t)/65536,Rn=t=>st(t)/1073741824,On=t=>{let e=0;for(let r=0;r<4;r++){e<<=7;let i=D(t);if(e|=i&127,(i&128)===0)break}return e},Ie=t=>{let e=ne(t);return t.skip(2),e=Math.min(e,t.remainingLength),ae.decode(I(t,e))},tu=t=>{let e=nt(t);if(!e||e.name!=="data"||t.remainingLength<8)return null;let r=A(t);t.skip(4);let i=I(t,e.contentSize-8);switch(r){case 1:return ae.decode(i);case 2:return new TextDecoder("utf-16be").decode(i);case 13:return new Pe(i,"image/jpeg");case 14:return new Pe(i,"image/png");case 27:return new Pe(i,"image/bmp");default:return i}};var Nn=class extends de{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 Bn({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,De,it);if(r instanceof Promise&&(r=await r),!r)break;let i=e,n=nt(r);if(!n)break;if(n.name==="ftyp"){let s=j(r,4);this.isQuickTime=s==="qt "}else if(n.name==="moov"){let s=this.reader.requestSlice(r.filePos,n.contentSize);if(s instanceof Promise&&(s=await s),!s)break;this.moovSlice=s,this.readContiguousBoxes(this.moovSlice),this.tracks.sort((o,a)=>Number(a.disposition.default)-Number(o.disposition.default));for(let o of this.tracks){let a=o.editListPreviousSegmentDurations/this.movieTimescale;o.editListOffset-=Math.round(a*o.timescale)}break}e=i+n.totalSize}if(this.isFragmented&&this.reader.fileSize!==null){let r=this.reader.requestSlice(this.reader.fileSize-4,4);r instanceof Promise&&(r=await r),h(r);let i=A(r),n=this.reader.fileSize-i;if(n>=0&&n<=this.reader.fileSize-it){let s=this.reader.requestSliceRange(n,De,it);if(s instanceof Promise&&(s=await s),s){let o=nt(s);if(o&&o.name==="mfra"){let a=this.reader.requestSlice(s.filePos,o.contentSize);a instanceof Promise&&(a=await a),a&&this.readContiguousBoxes(a)}}}}})()}getSampleTableForTrack(e){if(e.sampleTable)return e.sampleTable;let r={sampleTimingEntries:[],sampleCompositionTimeOffsets:[],sampleSizes:[],keySampleIndices:null,chunkOffsets:[],sampleToChunk:[],presentationTimestamps:null,presentationTimestampIndexMap:null};e.sampleTable=r,h(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&&Y.includes(e.info.codec)&&r.sampleCompositionTimeOffsets.length===0){h(e.info?.type==="audio");let s=Te(e.info.codec),o=[],a=[];for(let c=0;c<r.sampleToChunk.length;c++){let u=r.sampleToChunk[c],l=r.sampleToChunk[c+1],d=(l?l.startChunkIndex:r.chunkOffsets.length)-u.startChunkIndex;for(let f=0;f<d;f++){let m=u.startSampleIndex+f*u.samplesPerChunk,p=m+u.samplesPerChunk,g=U(r.sampleTimingEntries,m,v=>v.startIndex),b=r.sampleTimingEntries[g],w=U(r.sampleTimingEntries,p,v=>v.startIndex),x=r.sampleTimingEntries[w],y=b.startDecodeTimestamp+(m-b.startIndex)*b.delta,E=x.startDecodeTimestamp+(p-x.startIndex)*x.delta-y,S=G(o);S&&S.delta===E?S.count++:o.push({startIndex:u.startChunkIndex+f,startDecodeTimestamp:y,count:1,delta:E});let P=u.samplesPerChunk*s.sampleSize*e.info.numberOfChannels;a.push(P)}u.startSampleIndex=u.startChunkIndex,u.samplesPerChunk=1}r.sampleTimingEntries=o,r.sampleSizes=a}if(r.sampleCompositionTimeOffsets.length>0){r.presentationTimestamps=[];for(let s of r.sampleTimingEntries)for(let o=0;o<s.count;o++)r.presentationTimestamps.push({presentationTimestamp:s.startDecodeTimestamp+o*s.delta,sampleIndex:s.startIndex+o});for(let s of r.sampleCompositionTimeOffsets)for(let o=0;o<s.count;o++){let a=s.startIndex+o,c=r.presentationTimestamps[a];c&&(c.presentationTimestamp+=s.offset)}r.presentationTimestamps.sort((s,o)=>s.presentationTimestamp-o.presentationTimestamp),r.presentationTimestampIndexMap=Array(r.presentationTimestamps.length).fill(-1);for(let s=0;s<r.presentationTimestamps.length;s++)r.presentationTimestampIndexMap[r.presentationTimestamps[s].sampleIndex]=s}return r}async readFragment(e){if(this.lastReadFragment?.moofOffset===e)return this.lastReadFragment;let r=this.reader.requestSliceRange(e,De,it);r instanceof Promise&&(r=await r),h(r);let i=nt(r);h(i?.name==="moof");let n=this.reader.requestSlice(e,i.totalSize);n instanceof Promise&&(n=await n),h(n),this.traverseBox(n);let s=this.lastReadFragment;h(s&&s.moofOffset===e);for(let[,o]of s.trackData){let a=o.track,{fragmentPositionCache:c}=a;if(!o.startTimestampIsFinal){let l=a.fragmentLookupTable.find(d=>d.moofOffset===s.moofOffset);if(l)oo(o,l.timestamp);else{let d=U(c,s.moofOffset-1,f=>f.moofOffset);if(d!==-1){let f=c[d];oo(o,f.endTimestamp)}}o.startTimestampIsFinal=!0}let u=U(c,o.startTimestamp,l=>l.startTimestamp);(u===-1||c[u].moofOffset!==s.moofOffset)&&c.splice(u+1,0,{moofOffset:s.moofOffset,startTimestamp:o.startTimestamp,endTimestamp:o.endTimestamp})}return s}readContiguousBoxes(e){let r=e.filePos;for(;e.filePos-r<=e.length-De&&this.traverseBox(e););}*iterateContiguousBoxes(e){let r=e.filePos;for(;e.filePos-r<=e.length-De;){let i=e.filePos,n=nt(e);if(!n)break;yield{boxInfo:n,slice:e},e.filePos=i+n.totalSize}}traverseBox(e){let r=e.filePos,i=nt(e);if(!i)return!1;let n=e.filePos,s=r+i.totalSize;switch(i.name){case"mdia":case"minf":case"dinf":case"mfra":case"edts":this.readContiguousBoxes(e.slice(n,i.contentSize));break;case"mvhd":{let o=D(e);e.skip(3),o===1?(e.skip(16),this.movieTimescale=A(e),this.movieDurationInTimescale=ke(e)):(e.skip(8),this.movieTimescale=A(e),this.movieDurationInTimescale=A(e))}break;case"trak":{let o={id:-1,demuxer:this,inputTrack:null,disposition:{...xe},info:null,timescale:-1,durationInMovieTimescale:-1,durationInMediaTimescale:-1,rotation:0,internalCodecId:null,name:null,languageCode:Z,sampleTableByteOffset:-1,sampleTable:null,fragmentLookupTable:[],currentFragmentState:null,fragmentPositionCache:[],editListPreviousSegmentDurations:0,editListOffset:0};if(this.currentTrack=o,this.readContiguousBoxes(e.slice(n,i.contentSize)),o.id!==-1&&o.timescale!==-1&&o.info!==null){if(o.info.type==="video"&&o.info.width!==-1){let a=o;o.inputTrack=new rt(this.input,new ao(a)),this.tracks.push(o)}else if(o.info.type==="audio"&&o.info.numberOfChannels!==-1){let a=o;o.inputTrack=new ie(this.input,new co(a)),this.tracks.push(o)}}this.currentTrack=null}break;case"tkhd":{let o=this.currentTrack;if(!o)break;let a=D(e),u=!!(wt(e)&1);if(o.disposition.default=u,a===0)e.skip(8),o.id=A(e),e.skip(4),o.durationInMovieTimescale=A(e);else if(a===1)e.skip(16),o.id=A(e),e.skip(4),o.durationInMovieTimescale=ke(e);else throw new Error(`Incorrect track header version ${a}.`);e.skip(16);let l=[bt(e),bt(e),Rn(e),bt(e),bt(e),Rn(e),bt(e),bt(e),Rn(e)],d=mn(lc(Sd(l),90));h(d===0||d===90||d===180||d===270),o.rotation=d}break;case"elst":{let o=this.currentTrack;if(!o)break;let a=D(e);e.skip(3);let c=!1,u=0,l=A(e);for(let d=0;d<l;d++){let f=a===1?ke(e):A(e),m=a===1?iu(e):st(e),p=bt(e);if(f!==0){if(c){console.warn("Unsupported edit list: multiple edits are not currently supported. Only using first edit.");break}if(m===-1){u+=f;continue}if(p!==1){console.warn("Unsupported edit list entry: media rate must be 1.");break}o.editListPreviousSegmentDurations=u,o.editListOffset=m,c=!0}}}break;case"mdhd":{let o=this.currentTrack;if(!o)break;let a=D(e);e.skip(3),a===0?(e.skip(8),o.timescale=A(e),o.durationInMediaTimescale=A(e)):a===1&&(e.skip(16),o.timescale=A(e),o.durationInMediaTimescale=ke(e));let c=ne(e);if(c>0){o.languageCode="";for(let u=0;u<3;u++)o.languageCode=String.fromCharCode(96+(c&31))+o.languageCode,c>>=5;lr(o.languageCode)||(o.languageCode=Z)}}break;case"hdlr":{let o=this.currentTrack;if(!o)break;e.skip(8);let a=j(e,4);a==="vide"?o.info={type:"video",width:-1,height:-1,codec:null,codecDescription:null,colorSpace:null,avcType:null,avcCodecInfo:null,hevcCodecInfo:null,vp9CodecInfo:null,av1CodecInfo:null}:a==="soun"&&(o.info={type:"audio",numberOfChannels:-1,sampleRate:-1,codec:null,codecDescription:null,aacCodecInfo:null})}break;case"stbl":{let o=this.currentTrack;if(!o)break;o.sampleTableByteOffset=r,this.readContiguousBoxes(e.slice(n,i.contentSize))}break;case"stsd":{let o=this.currentTrack;if(!o||o.info===null||o.sampleTable)break;let a=D(e);e.skip(3);let c=A(e);for(let u=0;u<c;u++){let l=e.filePos,d=nt(e);if(!d)break;o.internalCodecId=d.name;let f=d.name.toLowerCase();if(o.info.type==="video")f==="avc1"||f==="avc3"?(o.info.codec="avc",o.info.avcType=f==="avc1"?1:3):f==="hvc1"||f==="hev1"?o.info.codec="hevc":f==="vp08"?o.info.codec="vp8":f==="vp09"?o.info.codec="vp9":f==="av01"?o.info.codec="av1":console.warn(`Unsupported video codec (sample entry type '${d.name}').`),e.skip(24),o.info.width=ne(e),o.info.height=ne(e),e.skip(50),this.readContiguousBoxes(e.slice(e.filePos,l+d.totalSize-e.filePos));else{f==="mp4a"||(f==="opus"?o.info.codec="opus":f==="flac"?o.info.codec="flac":f==="twos"||f==="sowt"||f==="raw "||f==="in24"||f==="in32"||f==="fl32"||f==="fl64"||f==="lpcm"||f==="ipcm"||f==="fpcm"||(f==="ulaw"?o.info.codec="ulaw":f==="alaw"?o.info.codec="alaw":console.warn(`Unsupported audio codec (sample entry type '${d.name}').`))),e.skip(8);let m=ne(e);e.skip(6);let p=ne(e),g=ne(e);e.skip(4);let b=A(e)/65536;if(a===0&&m>0){if(m===1)e.skip(4),g=8*A(e),e.skip(8);else if(m===2){e.skip(4),b=Un(e),p=A(e),e.skip(4),g=A(e);let w=A(e);if(e.skip(8),f==="lpcm"){let x=g+7>>3,y=!!(w&1),T=!!(w&2),E=w&4?-1:0;g>0&&g<=64&&(y?g===32&&(o.info.codec=T?"pcm-f32be":"pcm-f32"):E&1<<x-1?x===1?o.info.codec="pcm-s8":x===2?o.info.codec=T?"pcm-s16be":"pcm-s16":x===3?o.info.codec=T?"pcm-s24be":"pcm-s24":x===4&&(o.info.codec=T?"pcm-s32be":"pcm-s32"):x===1&&(o.info.codec="pcm-u8")),o.info.codec===null&&console.warn("Unsupported PCM format.")}}}o.info.codec==="opus"&&(b=Mt),o.info.numberOfChannels=p,o.info.sampleRate=b,f==="twos"?g===8?o.info.codec="pcm-s8":g===16?o.info.codec="pcm-s16be":(console.warn(`Unsupported sample size ${g} for codec 'twos'.`),o.info.codec=null):f==="sowt"?g===8?o.info.codec="pcm-s8":g===16?o.info.codec="pcm-s16":(console.warn(`Unsupported sample size ${g} for codec 'sowt'.`),o.info.codec=null):f==="raw "?o.info.codec="pcm-u8":f==="in24"?o.info.codec="pcm-s24be":f==="in32"?o.info.codec="pcm-s32be":f==="fl32"?o.info.codec="pcm-f32be":f==="fl64"?o.info.codec="pcm-f64be":f==="ipcm"?o.info.codec="pcm-s16be":f==="fpcm"&&(o.info.codec="pcm-f32be"),this.readContiguousBoxes(e.slice(e.filePos,l+d.totalSize-e.filePos))}}}break;case"avcC":{let o=this.currentTrack;if(!o)break;h(o.info),o.info.codecDescription=I(e,i.contentSize)}break;case"hvcC":{let o=this.currentTrack;if(!o)break;h(o.info),o.info.codecDescription=I(e,i.contentSize)}break;case"vpcC":{let o=this.currentTrack;if(!o)break;h(o.info?.type==="video"),e.skip(4);let a=D(e),c=D(e),u=D(e),l=u>>4,d=u>>1&7,f=u&1,m=D(e),p=D(e),g=D(e);o.info.vp9CodecInfo={profile:a,level:c,bitDepth:l,chromaSubsampling:d,videoFullRangeFlag:f,colourPrimaries:m,transferCharacteristics:p,matrixCoefficients:g}}break;case"av1C":{let o=this.currentTrack;if(!o)break;h(o.info?.type==="video"),e.skip(1);let a=D(e),c=a>>5,u=a&31,l=D(e),d=l>>7,f=l>>6&1,m=l>>5&1,p=l>>4&1,g=l>>3&1,b=l>>2&1,w=l&3,x=c===2&&f?m?12:10:f?10:8;o.info.av1CodecInfo={profile:c,level:u,tier:d,bitDepth:x,monochrome:p,chromaSubsamplingX:g,chromaSubsamplingY:b,chromaSamplePosition:w}}break;case"colr":{let o=this.currentTrack;if(!o||(h(o.info?.type==="video"),j(e,4)!=="nclx"))break;let c=ne(e),u=ne(e),l=ne(e),d=!!(D(e)&128);o.info.colorSpace={primaries:hn[c],transfer:pn[u],matrix:gn[l],fullRange:d}}break;case"wave":this.readContiguousBoxes(e.slice(n,i.contentSize));break;case"esds":{let o=this.currentTrack;if(!o)break;h(o.info?.type==="audio"),e.skip(4);let a=D(e);h(a===3),On(e),e.skip(2);let c=D(e),u=(c&128)!==0,l=(c&64)!==0,d=(c&32)!==0;if(u&&e.skip(2),l){let b=D(e);e.skip(b)}d&&e.skip(2);let f=D(e);h(f===4);let m=On(e),p=e.filePos,g=D(e);if(g===64||g===103?(o.info.codec="aac",o.info.aacCodecInfo={isMpeg2:g===103}):g===105||g===107?o.info.codec="mp3":g===221?o.info.codec="vorbis":console.warn(`Unsupported audio codec (objectTypeIndication ${g}) - discarding track.`),e.skip(12),m>e.filePos-p){let b=D(e);h(b===5);let w=On(e);if(o.info.codecDescription=I(e,w),o.info.codec==="aac"){let x=di(o.info.codecDescription);x.numberOfChannels!==null&&(o.info.numberOfChannels=x.numberOfChannels),x.sampleRate!==null&&(o.info.sampleRate=x.sampleRate)}}}break;case"enda":{let o=this.currentTrack;if(!o)break;h(o.info?.type==="audio"),ne(e)&255&&(o.info.codec==="pcm-s16be"?o.info.codec="pcm-s16":o.info.codec==="pcm-s24be"?o.info.codec="pcm-s24":o.info.codec==="pcm-s32be"?o.info.codec="pcm-s32":o.info.codec==="pcm-f32be"?o.info.codec="pcm-f32":o.info.codec==="pcm-f64be"&&(o.info.codec="pcm-f64"))}break;case"pcmC":{let o=this.currentTrack;if(!o)break;h(o.info?.type==="audio"),e.skip(4);let c=!!(D(e)&1),u=D(e);o.info.codec==="pcm-s16be"?c?u===16?o.info.codec="pcm-s16":u===24?o.info.codec="pcm-s24":u===32?o.info.codec="pcm-s32":(console.warn(`Invalid ipcm sample size ${u}.`),o.info.codec=null):u===16?o.info.codec="pcm-s16be":u===24?o.info.codec="pcm-s24be":u===32?o.info.codec="pcm-s32be":(console.warn(`Invalid ipcm sample size ${u}.`),o.info.codec=null):o.info.codec==="pcm-f32be"&&(c?u===32?o.info.codec="pcm-f32":u===64?o.info.codec="pcm-f64":(console.warn(`Invalid fpcm sample size ${u}.`),o.info.codec=null):u===32?o.info.codec="pcm-f32be":u===64?o.info.codec="pcm-f64be":(console.warn(`Invalid fpcm sample size ${u}.`),o.info.codec=null));break}case"dOps":{let o=this.currentTrack;if(!o)break;h(o.info?.type==="audio"),e.skip(1);let a=D(e),c=ne(e),u=A(e),l=xi(e),d=D(e),f;d!==0?f=I(e,2+a):f=new Uint8Array(0);let m=new Uint8Array(19+f.byteLength),p=new DataView(m.buffer);p.setUint32(0,1332770163,!1),p.setUint32(4,1214603620,!1),p.setUint8(8,1),p.setUint8(9,a),p.setUint16(10,c,!0),p.setUint32(12,u,!0),p.setInt16(16,l,!0),p.setUint8(18,d),m.set(f,19),o.info.codecDescription=m,o.info.numberOfChannels=a}break;case"dfLa":{let o=this.currentTrack;if(!o)break;h(o.info?.type==="audio"),e.skip(4);let a=127,c=128,u=e.filePos;for(;e.filePos<s;){let p=D(e),g=wt(e);if((p&a)===gt.STREAMINFO){e.skip(10);let w=A(e),x=w>>>12,y=(w>>9&7)+1;o.info.sampleRate=x,o.info.numberOfChannels=y,e.skip(20)}else e.skip(g);if(p&c)break}let l=e.filePos;e.filePos=u;let d=I(e,l-u),f=new Uint8Array(4+d.byteLength);new DataView(f.buffer).setUint32(0,1716281667,!1),f.set(d,4),o.info.codecDescription=f}break;case"stts":{let o=this.currentTrack;if(!o||!o.sampleTable)break;e.skip(4);let a=A(e),c=0,u=0;for(let l=0;l<a;l++){let d=A(e),f=A(e);o.sampleTable.sampleTimingEntries.push({startIndex:c,startDecodeTimestamp:u,count:d,delta:f}),c+=d,u+=d*f}}break;case"ctts":{let o=this.currentTrack;if(!o||!o.sampleTable)break;e.skip(4);let a=A(e),c=0;for(let u=0;u<a;u++){let l=A(e),d=st(e);o.sampleTable.sampleCompositionTimeOffsets.push({startIndex:c,count:l,offset:d}),c+=l}}break;case"stsz":{let o=this.currentTrack;if(!o||!o.sampleTable)break;e.skip(4);let a=A(e),c=A(e);if(a===0)for(let u=0;u<c;u++){let l=A(e);o.sampleTable.sampleSizes.push(l)}else o.sampleTable.sampleSizes.push(a)}break;case"stz2":{let o=this.currentTrack;if(!o||!o.sampleTable)break;e.skip(4),e.skip(3);let a=D(e),c=A(e),u=I(e,Math.ceil(c*a/8)),l=new W(u);for(let d=0;d<c;d++){let f=l.readBits(a);o.sampleTable.sampleSizes.push(f)}}break;case"stss":{let o=this.currentTrack;if(!o||!o.sampleTable)break;e.skip(4),o.sampleTable.keySampleIndices=[];let a=A(e);for(let c=0;c<a;c++){let u=A(e)-1;o.sampleTable.keySampleIndices.push(u)}o.sampleTable.keySampleIndices[0]!==0&&o.sampleTable.keySampleIndices.unshift(0)}break;case"stsc":{let o=this.currentTrack;if(!o||!o.sampleTable)break;e.skip(4);let a=A(e);for(let u=0;u<a;u++){let l=A(e)-1,d=A(e),f=A(e);o.sampleTable.sampleToChunk.push({startSampleIndex:-1,startChunkIndex:l,samplesPerChunk:d,sampleDescriptionIndex:f})}let c=0;for(let u=0;u<o.sampleTable.sampleToChunk.length;u++)if(o.sampleTable.sampleToChunk[u].startSampleIndex=c,u<o.sampleTable.sampleToChunk.length-1){let d=o.sampleTable.sampleToChunk[u+1].startChunkIndex-o.sampleTable.sampleToChunk[u].startChunkIndex;c+=d*o.sampleTable.sampleToChunk[u].samplesPerChunk}}break;case"stco":{let o=this.currentTrack;if(!o||!o.sampleTable)break;e.skip(4);let a=A(e);for(let c=0;c<a;c++){let u=A(e);o.sampleTable.chunkOffsets.push(u)}}break;case"co64":{let o=this.currentTrack;if(!o||!o.sampleTable)break;e.skip(4);let a=A(e);for(let c=0;c<a;c++){let u=ke(e);o.sampleTable.chunkOffsets.push(u)}}break;case"mvex":this.isFragmented=!0,this.readContiguousBoxes(e.slice(n,i.contentSize));break;case"mehd":{let o=D(e);e.skip(3);let a=o===1?ke(e):A(e);this.movieDurationInTimescale=a}break;case"trex":{e.skip(4);let o=A(e),a=A(e),c=A(e),u=A(e),l=A(e);this.fragmentTrackDefaults.push({trackId:o,defaultSampleDescriptionIndex:a,defaultSampleDuration:c,defaultSampleSize:u,defaultSampleFlags:l})}break;case"tfra":{let o=D(e);e.skip(3);let a=A(e),c=this.tracks.find(x=>x.id===a);if(!c)break;let u=A(e),l=(u&48)>>4,d=(u&12)>>2,f=u&3,m=[D,ne,wt,A],p=m[l],g=m[d],b=m[f],w=A(e);for(let x=0;x<w;x++){let y=o===1?ke(e):A(e),T=o===1?ke(e):A(e);p(e),g(e),b(e),c.fragmentLookupTable.push({timestamp:y,moofOffset:T})}c.fragmentLookupTable.sort((x,y)=>x.timestamp-y.timestamp);for(let x=0;x<c.fragmentLookupTable.length-1;x++){let y=c.fragmentLookupTable[x],T=c.fragmentLookupTable[x+1];y.timestamp===T.timestamp&&(c.fragmentLookupTable.splice(x+1,1),x--)}}break;case"moof":this.currentFragment={moofOffset:r,moofSize:i.totalSize,implicitBaseDataOffset:r,trackData:new Map},this.readContiguousBoxes(e.slice(n,i.contentSize)),this.lastReadFragment=this.currentFragment,this.currentFragment=null;break;case"traf":if(h(this.currentFragment),this.readContiguousBoxes(e.slice(n,i.contentSize)),this.currentTrack){let o=this.currentFragment.trackData.get(this.currentTrack.id);if(o){let{currentFragmentState:a}=this.currentTrack;h(a),a.startTimestamp!==null&&(oo(o,a.startTimestamp),o.startTimestampIsFinal=!0)}this.currentTrack.currentFragmentState=null,this.currentTrack=null}break;case"tfhd":{h(this.currentFragment),e.skip(1);let o=wt(e),a=!!(o&1),c=!!(o&2),u=!!(o&8),l=!!(o&16),d=!!(o&32),f=!!(o&65536),m=!!(o&131072),p=A(e),g=this.tracks.find(w=>w.id===p);if(!g)break;let b=this.fragmentTrackDefaults.find(w=>w.trackId===p);this.currentTrack=g,g.currentFragmentState={baseDataOffset:this.currentFragment.implicitBaseDataOffset,sampleDescriptionIndex:b?.defaultSampleDescriptionIndex??null,defaultSampleDuration:b?.defaultSampleDuration??null,defaultSampleSize:b?.defaultSampleSize??null,defaultSampleFlags:b?.defaultSampleFlags??null,startTimestamp:null},a?g.currentFragmentState.baseDataOffset=ke(e):m&&(g.currentFragmentState.baseDataOffset=this.currentFragment.moofOffset),c&&(g.currentFragmentState.sampleDescriptionIndex=A(e)),u&&(g.currentFragmentState.defaultSampleDuration=A(e)),l&&(g.currentFragmentState.defaultSampleSize=A(e)),d&&(g.currentFragmentState.defaultSampleFlags=A(e)),f&&(g.currentFragmentState.defaultSampleDuration=0)}break;case"tfdt":{let o=this.currentTrack;if(!o)break;h(o.currentFragmentState);let a=D(e);e.skip(3);let c=a===0?A(e):ke(e);o.currentFragmentState.startTimestamp=c}break;case"trun":{let o=this.currentTrack;if(!o)break;if(h(this.currentFragment),h(o.currentFragmentState),this.currentFragment.trackData.has(o.id)){console.warn("Can't have two trun boxes for the same track in one fragment. Ignoring...");break}let a=D(e),c=wt(e),u=!!(c&1),l=!!(c&4),d=!!(c&256),f=!!(c&512),m=!!(c&1024),p=!!(c&2048),g=A(e),b=o.currentFragmentState.baseDataOffset;u&&(b+=st(e));let w=null;l&&(w=A(e));let x=b;if(g===0){this.currentFragment.implicitBaseDataOffset=x;break}let y=0,T={track:o,startTimestamp:0,endTimestamp:0,firstKeyFrameTimestamp:null,samples:[],presentationTimestamps:[],startTimestampIsFinal:!1};this.currentFragment.trackData.set(o.id,T);for(let P=0;P<g;P++){let v;d?v=A(e):(h(o.currentFragmentState.defaultSampleDuration!==null),v=o.currentFragmentState.defaultSampleDuration);let F;f?F=A(e):(h(o.currentFragmentState.defaultSampleSize!==null),F=o.currentFragmentState.defaultSampleSize);let M;m?M=A(e):(h(o.currentFragmentState.defaultSampleFlags!==null),M=o.currentFragmentState.defaultSampleFlags),P===0&&w!==null&&(M=w);let B=0;p&&(a===0?B=A(e):B=st(e));let Q=!(M&65536);T.samples.push({presentationTimestamp:y+B,duration:v,byteOffset:x,byteSize:F,isKeyFrame:Q}),x+=F,y+=v}T.presentationTimestamps=T.samples.map((P,v)=>({presentationTimestamp:P.presentationTimestamp,sampleIndex:v})).sort((P,v)=>P.presentationTimestamp-v.presentationTimestamp);for(let P=0;P<T.presentationTimestamps.length;P++){let v=T.presentationTimestamps[P],F=T.samples[v.sampleIndex];if(T.firstKeyFrameTimestamp===null&&F.isKeyFrame&&(T.firstKeyFrameTimestamp=F.presentationTimestamp),P<T.presentationTimestamps.length-1){let M=T.presentationTimestamps[P+1];F.duration=M.presentationTimestamp-v.presentationTimestamp}}let E=T.samples[T.presentationTimestamps[0].sampleIndex],S=T.samples[G(T.presentationTimestamps).sampleIndex];T.startTimestamp=E.presentationTimestamp,T.endTimestamp=S.presentationTimestamp+S.duration,this.currentFragment.implicitBaseDataOffset=x}break;case"udta":{let o=this.iterateContiguousBoxes(e.slice(n,i.contentSize));for(let{boxInfo:a,slice:c}of o){if(a.name!=="meta"&&!this.currentTrack){let u=c.filePos;this.metadataTags.raw??={},a.name[0]==="\xA9"?this.metadataTags.raw[a.name]??=Ie(c):this.metadataTags.raw[a.name]??=I(c,a.contentSize),c.filePos=u}switch(a.name){case"meta":c.skip(-a.headerSize),this.traverseBox(c);break;case"\xA9nam":case"name":this.currentTrack?this.currentTrack.name=ae.decode(I(c,a.contentSize)):this.metadataTags.title??=Ie(c);break;case"\xA9des":this.currentTrack||(this.metadataTags.description??=Ie(c));break;case"\xA9ART":this.currentTrack||(this.metadataTags.artist??=Ie(c));break;case"\xA9alb":this.currentTrack||(this.metadataTags.album??=Ie(c));break;case"albr":this.currentTrack||(this.metadataTags.albumArtist??=Ie(c));break;case"\xA9gen":this.currentTrack||(this.metadataTags.genre??=Ie(c));break;case"\xA9day":if(!this.currentTrack){let u=new Date(Ie(c));Number.isNaN(u.getTime())||(this.metadataTags.date??=u)}break;case"\xA9cmt":this.currentTrack||(this.metadataTags.comment??=Ie(c));break;case"\xA9lyr":this.currentTrack||(this.metadataTags.lyrics??=Ie(c));break}}}break;case"meta":{if(this.currentTrack)break;let a=A(e)!==0;this.currentMetadataKeys=new Map,a?this.readContiguousBoxes(e.slice(n,i.contentSize)):this.readContiguousBoxes(e.slice(n+4,i.contentSize-4)),this.currentMetadataKeys=null}break;case"keys":{if(!this.currentMetadataKeys)break;e.skip(4);let o=A(e);for(let a=0;a<o;a++){let c=A(e);e.skip(4);let u=ae.decode(I(e,c-8));this.currentMetadataKeys.set(a+1,u)}}break;case"ilst":{if(!this.currentMetadataKeys)break;let o=this.iterateContiguousBoxes(e.slice(n,i.contentSize));for(let{boxInfo:a,slice:c}of o){let u=a.name,l=(u.charCodeAt(0)<<24)+(u.charCodeAt(1)<<16)+(u.charCodeAt(2)<<8)+u.charCodeAt(3);this.currentMetadataKeys.has(l)&&(u=this.currentMetadataKeys.get(l));let d=tu(c);switch(this.metadataTags.raw??={},this.metadataTags.raw[u]??=d,u){case"\xA9nam":case"titl":case"com.apple.quicktime.title":case"title":typeof d=="string"&&(this.metadataTags.title??=d);break;case"\xA9des":case"desc":case"dscp":case"com.apple.quicktime.description":case"description":typeof d=="string"&&(this.metadataTags.description??=d);break;case"\xA9ART":case"com.apple.quicktime.artist":case"artist":typeof d=="string"&&(this.metadataTags.artist??=d);break;case"\xA9alb":case"albm":case"com.apple.quicktime.album":case"album":typeof d=="string"&&(this.metadataTags.album??=d);break;case"aART":case"album_artist":typeof d=="string"&&(this.metadataTags.albumArtist??=d);break;case"\xA9cmt":case"com.apple.quicktime.comment":case"comment":typeof d=="string"&&(this.metadataTags.comment??=d);break;case"\xA9gen":case"gnre":case"com.apple.quicktime.genre":case"genre":typeof d=="string"&&(this.metadataTags.genre??=d);break;case"\xA9lyr":case"lyrics":typeof d=="string"&&(this.metadataTags.lyrics??=d);break;case"\xA9day":case"rldt":case"com.apple.quicktime.creationdate":case"date":if(typeof d=="string"){let f=new Date(d);Number.isNaN(f.getTime())||(this.metadataTags.date??=f)}break;case"covr":case"com.apple.quicktime.artwork":d instanceof Pe?(this.metadataTags.images??=[],this.metadataTags.images.push({data:d.data,kind:"coverFront",mimeType:d.mimeType})):d instanceof Uint8Array&&(this.metadataTags.images??=[],this.metadataTags.images.push({data:d,kind:"coverFront",mimeType:"image/*"}));break;case"track":if(typeof d=="string"){let f=d.split("/"),m=Number.parseInt(f[0],10),p=f[1]&&Number.parseInt(f[1],10);Number.isInteger(m)&&m>0&&(this.metadataTags.trackNumber??=m),p&&Number.isInteger(p)&&p>0&&(this.metadataTags.tracksTotal??=p)}break;case"trkn":if(d instanceof Uint8Array&&d.length>=6){let f=V(d),m=f.getUint16(2,!1),p=f.getUint16(4,!1);m>0&&(this.metadataTags.trackNumber??=m),p>0&&(this.metadataTags.tracksTotal??=p)}break;case"disc":case"disk":if(d instanceof Uint8Array&&d.length>=6){let f=V(d),m=f.getUint16(2,!1),p=f.getUint16(4,!1);m>0&&(this.metadataTags.discNumber??=m),p>0&&(this.metadataTags.discsTotal??=p)}break}}}break}return e.filePos=s,!0}},Mn=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 Rt(e*this.internalTrack.timescale)+this.internalTrack.editListOffset}async getPacket(e,r){let i=this.mapTimestampIntoTimescale(e),n=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),s=uo(n,i),o=await this.fetchPacketForSampleIndex(s,r);return!ru(n)||!this.internalTrack.demuxer.isFragmented?o:this.performFragmentedLookup(null,a=>{let c=a.trackData.get(this.internalTrack.id);if(!c)return{sampleIndex:-1,correctSampleFound:!1};let u=U(c.presentationTimestamps,i,f=>f.presentationTimestamp),l=u!==-1?c.presentationTimestamps[u].sampleIndex:-1,d=u!==-1&&i<c.endTimestamp;return{sampleIndex:l,correctSampleFound:d}},i,i,r)}async getNextPacket(e,r){let i=this.packetToSampleIndex.get(e);if(i!==void 0)return this.fetchPacketForSampleIndex(i+1,r);let n=this.packetToFragmentLocation.get(e);if(n===void 0)throw new Error("Packet was not created from this track.");return this.performFragmentedLookup(n.fragment,s=>{if(s===n.fragment){let o=s.trackData.get(this.internalTrack.id);if(n.sampleIndex+1<o.samples.length)return{sampleIndex:n.sampleIndex+1,correctSampleFound:!0}}else if(s.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),n=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),s=yd(n,i),o=await this.fetchPacketForSampleIndex(s,r);return!ru(n)||!this.internalTrack.demuxer.isFragmented?o:this.performFragmentedLookup(null,a=>{let c=a.trackData.get(this.internalTrack.id);if(!c)return{sampleIndex:-1,correctSampleFound:!1};let u=bn(c.presentationTimestamps,f=>c.samples[f.sampleIndex].isKeyFrame&&f.presentationTimestamp<=i),l=u!==-1?c.presentationTimestamps[u].sampleIndex:-1,d=u!==-1&&i<c.endTimestamp;return{sampleIndex:l,correctSampleFound:d}},i,i,r)}async getNextKeyPacket(e,r){let i=this.packetToSampleIndex.get(e);if(i!==void 0){let s=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),o=kd(s,i);return this.fetchPacketForSampleIndex(o,r)}let n=this.packetToFragmentLocation.get(e);if(n===void 0)throw new Error("Packet was not created from this track.");return this.performFragmentedLookup(n.fragment,s=>{if(s===n.fragment){let a=s.trackData.get(this.internalTrack.id).samples.findIndex((c,u)=>c.isKeyFrame&&u>n.sampleIndex);if(a!==-1)return{sampleIndex:a,correctSampleFound:!0}}else{let o=s.trackData.get(this.internalTrack.id);if(o&&o.firstKeyFrameTimestamp!==null){let a=o.samples.findIndex(c=>c.isKeyFrame);return h(a!==-1),{sampleIndex:a,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),n=Td(i,e);if(!n)return null;let s;if(r.metadataOnly)s=te;else{let u=this.internalTrack.demuxer.reader.requestSlice(n.sampleOffset,n.sampleSize);u instanceof Promise&&(u=await u),h(u),s=I(u,n.sampleSize)}let o=(n.presentationTimestamp-this.internalTrack.editListOffset)/this.internalTrack.timescale,a=n.duration/this.internalTrack.timescale,c=new L(s,n.isKeyFrame?"key":"delta",o,a,e,n.sampleSize);return this.packetToSampleIndex.set(c,e),c}async fetchPacketInFragment(e,r,i){if(r===-1)return null;let s=e.trackData.get(this.internalTrack.id).samples[r];h(s);let o;if(i.metadataOnly)o=te;else{let l=this.internalTrack.demuxer.reader.requestSlice(s.byteOffset,s.byteSize);l instanceof Promise&&(l=await l),h(l),o=I(l,s.byteSize)}let a=(s.presentationTimestamp-this.internalTrack.editListOffset)/this.internalTrack.timescale,c=s.duration/this.internalTrack.timescale,u=new L(o,s.isKeyFrame?"key":"delta",a,c,e.moofOffset+r,s.byteSize);return this.packetToFragmentLocation.set(u,{fragment:e,sampleIndex:r}),u}async performFragmentedLookup(e,r,i,n,s){let o=this.internalTrack.demuxer,a=null,c=null,u=-1;if(e){let{sampleIndex:b,correctSampleFound:w}=r(e);if(w)return this.fetchPacketInFragment(e,b,s);b!==-1&&(c=e,u=b)}let l=U(this.internalTrack.fragmentLookupTable,i,b=>b.timestamp),d=l!==-1?this.internalTrack.fragmentLookupTable[l]:null,f=U(this.internalTrack.fragmentPositionCache,i,b=>b.startTimestamp),m=f!==-1?this.internalTrack.fragmentPositionCache[f]:null,p=Math.max(d?.moofOffset??0,m?.moofOffset??0)||null,g;for(e?p===null||e.moofOffset>=p?(g=e.moofOffset+e.moofSize,a=e):g=p:g=p??0;;){if(a){let y=a.trackData.get(this.internalTrack.id);if(y&&y.startTimestamp>n)break}let b=o.reader.requestSliceRange(g,De,it);if(b instanceof Promise&&(b=await b),!b)break;let w=g,x=nt(b);if(!x)break;if(x.name==="moof"){a=await o.readFragment(w);let{sampleIndex:y,correctSampleFound:T}=r(a);if(T)return this.fetchPacketInFragment(a,y,s);y!==-1&&(c=a,u=y)}g=w+x.totalSize}if(d&&(!c||c.moofOffset<d.moofOffset)){let b=this.internalTrack.fragmentLookupTable[l-1];h(!b||b.timestamp<d.timestamp);let w=b?.timestamp??-1/0;return this.performFragmentedLookup(null,r,w,n,s)}return c?this.fetchPacketInFragment(c,u,s):null}},ao=class extends Mn{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&&vn(e.data)}else if(this.internalTrack.info.codec==="av1"&&!this.internalTrack.info.av1CodecInfo){let e=await this.getFirstPacket({});this.internalTrack.info.av1CodecInfo=e&&_n(e.data)}return{codec:yn(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}},co=class extends Mn{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:Tn(this.internalTrack.info),numberOfChannels:this.internalTrack.info.numberOfChannels,sampleRate:this.internalTrack.info.sampleRate,description:this.internalTrack.info.codecDescription??void 0}:null}},uo=(t,e)=>{if(t.presentationTimestamps){let r=U(t.presentationTimestamps,e,i=>i.presentationTimestamp);return r===-1?-1:t.presentationTimestamps[r].sampleIndex}else{let r=U(t.sampleTimingEntries,e,n=>n.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)}},yd=(t,e)=>{if(!t.keySampleIndices)return uo(t,e);if(t.presentationTimestamps){let r=U(t.presentationTimestamps,e,i=>i.presentationTimestamp);if(r===-1)return-1;for(let i=r;i>=0;i--){let n=t.presentationTimestamps[i].sampleIndex;if(Ft(t.keySampleIndices,n,o=>o)!==-1)return n}return-1}else{let r=uo(t,e),i=U(t.keySampleIndices,r,n=>n);return t.keySampleIndices[i]??-1}},Td=(t,e)=>{let r=U(t.sampleTimingEntries,e,w=>w.startIndex),i=t.sampleTimingEntries[r];if(!i||i.startIndex+i.count<=e)return null;let s=i.startDecodeTimestamp+(e-i.startIndex)*i.delta,o=U(t.sampleCompositionTimeOffsets,e,w=>w.startIndex),a=t.sampleCompositionTimeOffsets[o];a&&e-a.startIndex<a.count&&(s+=a.offset);let c=t.sampleSizes[Math.min(e,t.sampleSizes.length-1)],u=U(t.sampleToChunk,e,w=>w.startSampleIndex),l=t.sampleToChunk[u];h(l);let d=l.startChunkIndex+Math.floor((e-l.startSampleIndex)/l.samplesPerChunk),f=t.chunkOffsets[d],m=l.startSampleIndex+(d-l.startChunkIndex)*l.samplesPerChunk,p=0,g=f;if(t.sampleSizes.length===1)g+=c*(e-m),p+=c*l.samplesPerChunk;else for(let w=m;w<m+l.samplesPerChunk;w++){let x=t.sampleSizes[w];w<e&&(g+=x),p+=x}let b=i.delta;if(t.presentationTimestamps){let w=t.presentationTimestampIndexMap[e];h(w!==void 0),w<t.presentationTimestamps.length-1&&(b=t.presentationTimestamps[w+1].presentationTimestamp-s)}return{presentationTimestamp:s,duration:b,sampleOffset:g,sampleSize:c,chunkOffset:f,chunkSize:p,isKeyFrame:t.keySampleIndices?Ft(t.keySampleIndices,e,w=>w)!==-1:!0}},kd=(t,e)=>{if(!t.keySampleIndices)return e+1;let r=U(t.keySampleIndices,e,i=>i);return t.keySampleIndices[r+1]??-1},oo=(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},Sd=t=>{let[e,,,r]=t,i=Math.hypot(e,r),n=e/i,s=r/i,o=-Math.atan2(s,n)*(180/Math.PI);return Number.isFinite(o)?o:0},ru=t=>t.sampleSizes.length===0;var k;(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"})(k||(k={}));var Cd=[k.EBML,k.Segment],wr=[k.SeekHead,k.Info,k.Cluster,k.Tracks,k.Cues,k.Attachments,k.Chapters,k.Tags],yi=[...Cd,...wr];var lo=8,Se=2,Fe=2*lo,fo=t=>{let e=D(t);if(t.skip(-1),e===0)return null;let r=1,i=128;for(;(e&i)===0;)r++,i>>=1;return r},xr=t=>{let e=D(t);if(e===0)return null;let r=1,i=128;for(;(e&i)===0;)r++,i>>=1;let n=e&i-1;for(let s=1;s<r;s++)n*=256,n+=D(t);return n},N=(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+=D(t);return r},nu=(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(D(t));return r};var zn=t=>{let e=fo(t);return e===null?null:N(t,e)},mo=t=>{let e=D(t);return e===255?e=null:(t.skip(-1),e=xr(t),e===72057594037927940&&(e=null)),e},Be=t=>{let e=zn(t);if(e===null)return null;let r=mo(t);return{id:e,size:r}},xt=(t,e)=>{let r=I(t,e),i=0;for(;i<e&&r[i]!==0;)i+=1;return String.fromCharCode(...r.subarray(0,i))},yr=(t,e)=>{let r=I(t,e),i=0;for(;i<e&&r[i]!==0;)i+=1;return ae.decode(r.subarray(0,i))},Vn=(t,e)=>{if(e===0)return 0;if(e!==4&&e!==8)throw new Error("Bad float size "+e);return e===4?su(t):Un(t)},Ln=async(t,e,r,i)=>{let n=new Set(r),s=e;for(;i===null||s<i;){let o=t.requestSliceRange(s,Se,Fe);if(o instanceof Promise&&(o=await o),!o)break;let a=Be(o);if(!a)break;if(n.has(a.id))return{pos:s,found:!0};ot(a.size),s=o.filePos+a.size}return{pos:i!==null&&i>s?i:s,found:!1}},ho=async(t,e,r,i)=>{let s=new Set(r),o=e;for(;o<i;){let a=t.requestSliceRange(o,0,Math.min(65536,i-o));if(a instanceof Promise&&(a=await a),!a||a.length<lo)break;for(let c=0;c<a.length-lo;c++){a.filePos=o;let u=zn(a);if(u!==null&&s.has(u))return o;o++}}return null},Re={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 ot(t){if(t===null)throw new Error("Undefined element size is used in a place where it is not supported.")}var ou=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 at;(function(t){t[t.None=0]="None",t[t.Xiph=1]="Xiph",t[t.FixedSize=2]="FixedSize",t[t.Ebml=3]="Ebml"})(at||(at={}));var qn;(function(t){t[t.Block=1]="Block",t[t.Private=2]="Private",t[t.Next=4]="Next"})(qn||(qn={}));var Ti;(function(t){t[t.Zlib=0]="Zlib",t[t.Bzlib=1]="Bzlib",t[t.lzo1x=2]="lzo1x",t[t.HeaderStripping=3]="HeaderStripping"})(Ti||(Ti={}));var po=[{id:k.SeekHead,flag:"seekHeadSeen"},{id:k.Info,flag:"infoSeen"},{id:k.Tracks,flag:"tracksSeen"},{id:k.Cues,flag:"cuesSeen"}],au=10*2**20,Hn=class extends de{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 ou({isWebM:this.isWebM,hasVideo:this.segments.some(i=>i.tracks.some(n=>n.info?.type==="video")),hasAudio:this.segments.some(i=>i.tracks.some(n=>n.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,Se,Fe);if(r instanceof Promise&&(r=await r),!r)break;let i=Be(r);if(!i)break;let n=i.id,s=i.size,o=r.filePos;if(n===k.EBML){ot(s);let a=this.reader.requestSlice(o,s);if(a instanceof Promise&&(a=await a),!a)break;this.readContiguousElements(a)}else if(n===k.Segment){if(await this.readSegment(o,s),s===null||this.reader.fileSize===null)break}else if(n===k.Cluster){if(this.reader.fileSize===null)break;s===null&&(s=(await Ln(this.reader,o,yi,this.reader.fileSize)).pos-o);let a=G(this.segments);a&&(a.elementEndPos=o+s)}ot(s),e=o+s}})()}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 a=this.reader.requestSliceRange(i,Se,Fe);if(a instanceof Promise&&(a=await a),!a)break;let c=i,u=Be(a);if(!u||!wr.includes(u.id)&&u.id!==k.Void){let p=await ho(this.reader,c,wr,Math.min(this.currentSegment.elementEndPos??1/0,c+au));if(p){i=p;continue}else break}let{id:l,size:d}=u,f=a.filePos,m=po.findIndex(p=>p.id===l);if(m!==-1){let p=po[m].flag;this.currentSegment[p]=!0,ot(d);let g=this.reader.requestSlice(f,d);g instanceof Promise&&(g=await g),g&&this.readContiguousElements(g)}else if(l===k.Tags||l===k.Attachments){l===k.Tags?this.currentSegment.tagsSeen=!0:this.currentSegment.attachmentsSeen=!0,ot(d);let p=this.reader.requestSlice(f,d);p instanceof Promise&&(p=await p),p&&this.readContiguousElements(p)}else if(l===k.Cluster){this.currentSegment.clusterSeekStartPos=c;break}if(d===null)break;i=f+d}if(this.currentSegment.seekEntries.sort((a,c)=>a.segmentPosition-c.segmentPosition),this.reader.fileSize!==null)for(let a of this.currentSegment.seekEntries){let c=po.find(p=>p.id===a.id);if(!c||this.currentSegment[c.flag])continue;let u=this.reader.requestSliceRange(e+a.segmentPosition,Se,Fe);if(u instanceof Promise&&(u=await u),!u)continue;let l=Be(u);if(!l)continue;let{id:d,size:f}=l;if(d!==c.id)continue;ot(f),this.currentSegment[c.flag]=!0;let m=this.reader.requestSlice(u.filePos,f);m instanceof Promise&&(m=await m),m&&this.readContiguousElements(m)}this.currentSegment.timestampScale===-1&&(this.currentSegment.timestampScale=1e6,this.currentSegment.timestampFactor=1e9/1e6),this.currentSegment.tracks.sort((a,c)=>Number(c.disposition.default)-Number(a.disposition.default));let n=new Map(this.currentSegment.tracks.map(a=>[a.id,a]));for(let a of this.currentSegment.cuePoints){let c=n.get(a.trackId);c&&c.cuePoints.push(a)}for(let a of this.currentSegment.tracks){a.cuePoints.sort((c,u)=>c.time-u.time);for(let c=0;c<a.cuePoints.length-1;c++){let u=a.cuePoints[c],l=a.cuePoints[c+1];u.time===l.time&&(a.cuePoints.splice(c+1,1),c--)}}let s=null,o=-1/0;for(let a of this.currentSegment.tracks)a.cuePoints.length>o&&(o=a.cuePoints.length,s=a);for(let a of this.currentSegment.tracks)a.cuePoints.length===0&&(a.cuePoints=s.cuePoints);this.currentSegment=null}async readCluster(e,r){if(r.lastReadCluster?.elementStartPos===e)return r.lastReadCluster;let i=this.reader.requestSliceRange(e,Se,Fe);i instanceof Promise&&(i=await i),h(i);let n=e,s=Be(i);h(s);let o=s.id;h(o===k.Cluster);let a=s.size,c=i.filePos;a===null&&(a=(await Ln(this.reader,c,yi,r.elementEndPos)).pos-c);let u=this.reader.requestSlice(c,a);u instanceof Promise&&(u=await u);let l={segment:r,elementStartPos:n,elementEndPos:c+a,dataStartPos:c,timestamp:-1,trackData:new Map};if(this.currentCluster=l,u){let d=this.readContiguousElements(u,yi);l.elementEndPos=d}for(let[,d]of l.trackData){let f=d.track;h(d.blocks.length>0);let m=!1;for(let w=0;w<d.blocks.length;w++){let x=d.blocks[w];x.timestamp+=l.timestamp,m||=x.lacing!==at.None}d.presentationTimestamps=d.blocks.map((w,x)=>({timestamp:w.timestamp,blockIndex:x})).sort((w,x)=>w.timestamp-x.timestamp);for(let w=0;w<d.presentationTimestamps.length;w++){let x=d.presentationTimestamps[w],y=d.blocks[x.blockIndex];if(d.firstKeyFrameTimestamp===null&&y.isKeyFrame&&(d.firstKeyFrameTimestamp=y.timestamp),w<d.presentationTimestamps.length-1){let T=d.presentationTimestamps[w+1];y.duration=T.timestamp-y.timestamp}else y.duration===0&&f.defaultDuration!=null&&y.lacing===at.None&&(y.duration=f.defaultDuration)}m&&(this.expandLacedBlocks(d.blocks,f),d.presentationTimestamps=d.blocks.map((w,x)=>({timestamp:w.timestamp,blockIndex:x})).sort((w,x)=>w.timestamp-x.timestamp));let p=d.blocks[d.presentationTimestamps[0].blockIndex],g=d.blocks[G(d.presentationTimestamps).blockIndex];d.startTimestamp=p.timestamp,d.endTimestamp=g.timestamp+g.duration;let b=U(f.clusterPositionCache,d.startTimestamp,w=>w.startTimestamp);(b===-1||f.clusterPositionCache[b].elementStartPos!==n)&&f.clusterPositionCache.splice(b+1,0,{elementStartPos:l.elementStartPos,startTimestamp:d.startTimestamp})}return r.lastReadCluster=l,l}getTrackDataInCluster(e,r){let i=e.trackData.get(r);if(!i){let n=e.segment.tracks.find(s=>s.id===r);if(!n)return null;i={track:n,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 n=e[i];if(n.lacing===at.None)continue;n.decoded||(n.data=this.decodeBlockData(r,n.data),n.decoded=!0);let s=Tr.tempFromBytes(n.data),o=[],a=D(s)+1;switch(n.lacing){case at.Xiph:{let u=0;for(let l=0;l<a-1;l++){let d=0;for(;s.bufferPos<s.length;){let f=D(s);if(d+=f,f<255){o.push(d),u+=d;break}}}o.push(s.length-(s.bufferPos+u))}break;case at.FixedSize:{let u=s.length-1,l=Math.floor(u/a);for(let d=0;d<a;d++)o.push(l)}break;case at.Ebml:{let u=xr(s);h(u!==null);let l=u;o.push(l);let d=l;for(let f=1;f<a-1;f++){let m=s.bufferPos,p=xr(s);h(p!==null);let g=p,w=(1<<(s.bufferPos-m)*7-1)-1,x=g-w;l+=x,o.push(l),d+=l}o.push(s.length-(s.bufferPos+d))}break;default:h(!1)}h(o.length===a),e.splice(i,1);let c=n.duration||a*(r.defaultDuration??0);for(let u=0;u<a;u++){let l=o[u],d=I(s,l),f=n.timestamp+c*u/a,m=c/a;e.splice(i+u,0,{timestamp:f,duration:m,isKeyFrame:n.isKeyFrame,data:d,lacing:at.None,decoded:!0,mainAdditional:n.mainAdditional})}i+=a,i--}}async loadSegmentMetadata(e){for(let r of e.seekEntries){if(!(r.id===k.Tags&&!e.tagsSeen)){if(!(r.id===k.Attachments&&!e.attachmentsSeen))continue}let i=this.reader.requestSliceRange(e.dataStartPos+r.segmentPosition,Se,Fe);if(i instanceof Promise&&(i=await i),!i)continue;let n=Be(i);if(!n||n.id!==r.id)continue;let{size:s}=n;ot(s),h(!this.currentSegment),this.currentSegment=e;let o=this.reader.requestSlice(i.filePos,s);o instanceof Promise&&(o=await o),o&&this.readContiguousElements(o),this.currentSegment=null,r.id===k.Tags?e.tagsSeen=!0:r.id===k.Attachments&&(e.attachmentsSeen=!0)}}readContiguousElements(e,r){let i=e.filePos;for(;e.filePos-i<=e.length-Se;){let n=e.filePos;if(!this.traverseElement(e,r))return n}return e.filePos}traverseElement(e,r){let i=Be(e);if(!i||r&&r.includes(i.id))return!1;let{id:n,size:s}=i,o=e.filePos;switch(ot(s),n){case k.DocType:this.isWebM=xt(e,s)==="webm";break;case k.Seek:{if(!this.currentSegment)break;let a={id:-1,segmentPosition:-1};this.currentSegment.seekEntries.push(a),this.readContiguousElements(e.slice(o,s)),(a.id===-1||a.segmentPosition===-1)&&this.currentSegment.seekEntries.pop()}break;case k.SeekID:{let a=this.currentSegment?.seekEntries[this.currentSegment.seekEntries.length-1];if(!a)break;a.id=N(e,s)}break;case k.SeekPosition:{let a=this.currentSegment?.seekEntries[this.currentSegment.seekEntries.length-1];if(!a)break;a.segmentPosition=N(e,s)}break;case k.TimestampScale:{if(!this.currentSegment)break;this.currentSegment.timestampScale=N(e,s),this.currentSegment.timestampFactor=1e9/this.currentSegment.timestampScale}break;case k.Duration:{if(!this.currentSegment)break;this.currentSegment.duration=Vn(e,s)}break;case k.TrackEntry:{if(!this.currentSegment)break;if(this.currentTrack={id:-1,segment:this.currentSegment,demuxer:this,clusterPositionCache:[],cuePoints:[],disposition:{...xe},inputTrack:null,codecId:null,codecPrivate:null,defaultDuration:null,name:null,languageCode:Z,decodingInstructions:[],info:null},this.readContiguousElements(e.slice(o,s)),this.currentTrack.decodingInstructions.some(a=>a.data?.type!=="decompress"||a.scope!==qn.Block||a.data.algorithm!==Ti.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 a=this.currentTrack.codecId.indexOf("/"),c=a===-1?this.currentTrack.codecId:this.currentTrack.codecId.slice(0,a);if(this.currentTrack.info.type==="video"&&this.currentTrack.info.width!==-1&&this.currentTrack.info.height!==-1){this.currentTrack.codecId===Re.avc?(this.currentTrack.info.codec="avc",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):this.currentTrack.codecId===Re.hevc?(this.currentTrack.info.codec="hevc",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):c===Re.vp8?this.currentTrack.info.codec="vp8":c===Re.vp9?this.currentTrack.info.codec="vp9":c===Re.av1&&(this.currentTrack.info.codec="av1");let u=this.currentTrack,l=new rt(this.input,new go(u));this.currentTrack.inputTrack=l,this.currentSegment.tracks.push(this.currentTrack)}else if(this.currentTrack.info.type==="audio"&&this.currentTrack.info.numberOfChannels!==-1&&this.currentTrack.info.sampleRate!==-1){c===Re.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===Re.mp3?this.currentTrack.info.codec="mp3":c===Re.opus?(this.currentTrack.info.codec="opus",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate,this.currentTrack.info.sampleRate=Mt):c===Re.vorbis?(this.currentTrack.info.codec="vorbis",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):c===Re.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 u=this.currentTrack,l=new ie(this.input,new bo(u));this.currentTrack.inputTrack=l,this.currentSegment.tracks.push(this.currentTrack)}}this.currentTrack=null}break;case k.TrackNumber:{if(!this.currentTrack)break;this.currentTrack.id=N(e,s)}break;case k.TrackType:{if(!this.currentTrack)break;let a=N(e,s);a===1?this.currentTrack.info={type:"video",width:-1,height:-1,rotation:0,codec:null,codecDescription:null,colorSpace:null,alphaMode:!1}:a===2&&(this.currentTrack.info={type:"audio",numberOfChannels:-1,sampleRate:-1,bitDepth:-1,codec:null,codecDescription:null,aacCodecInfo:null})}break;case k.FlagEnabled:{if(!this.currentTrack)break;N(e,s)||(this.currentSegment.tracks.pop(),this.currentTrack=null)}break;case k.FlagDefault:{if(!this.currentTrack)break;this.currentTrack.disposition.default=!!N(e,s)}break;case k.FlagForced:{if(!this.currentTrack)break;this.currentTrack.disposition.forced=!!N(e,s)}break;case k.FlagOriginal:{if(!this.currentTrack)break;this.currentTrack.disposition.original=!!N(e,s)}break;case k.FlagHearingImpaired:{if(!this.currentTrack)break;this.currentTrack.disposition.hearingImpaired=!!N(e,s)}break;case k.FlagVisualImpaired:{if(!this.currentTrack)break;this.currentTrack.disposition.visuallyImpaired=!!N(e,s)}break;case k.FlagCommentary:{if(!this.currentTrack)break;this.currentTrack.disposition.commentary=!!N(e,s)}break;case k.CodecID:{if(!this.currentTrack)break;this.currentTrack.codecId=xt(e,s)}break;case k.CodecPrivate:{if(!this.currentTrack)break;this.currentTrack.codecPrivate=I(e,s)}break;case k.DefaultDuration:{if(!this.currentTrack)break;this.currentTrack.defaultDuration=this.currentTrack.segment.timestampFactor*N(e,s)/1e9}break;case k.Name:{if(!this.currentTrack)break;this.currentTrack.name=yr(e,s)}break;case k.Language:{if(!this.currentTrack||this.currentTrack.languageCode!==Z)break;this.currentTrack.languageCode=xt(e,s),lr(this.currentTrack.languageCode)||(this.currentTrack.languageCode=Z)}break;case k.LanguageBCP47:{if(!this.currentTrack)break;let c=xt(e,s).split("-")[0];c?this.currentTrack.languageCode=c:this.currentTrack.languageCode=Z}break;case k.Video:{if(this.currentTrack?.info?.type!=="video")break;this.readContiguousElements(e.slice(o,s))}break;case k.PixelWidth:{if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.width=N(e,s)}break;case k.PixelHeight:{if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.height=N(e,s)}break;case k.AlphaMode:{if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.alphaMode=N(e,s)===1}break;case k.Colour:{if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.colorSpace={},this.readContiguousElements(e.slice(o,s))}break;case k.MatrixCoefficients:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;let a=N(e,s),c=gn[a]??null;this.currentTrack.info.colorSpace.matrix=c}break;case k.Range:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;this.currentTrack.info.colorSpace.fullRange=N(e,s)===2}break;case k.TransferCharacteristics:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;let a=N(e,s),c=pn[a]??null;this.currentTrack.info.colorSpace.transfer=c}break;case k.Primaries:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;let a=N(e,s),c=hn[a]??null;this.currentTrack.info.colorSpace.primaries=c}break;case k.Projection:{if(this.currentTrack?.info?.type!=="video")break;this.readContiguousElements(e.slice(o,s))}break;case k.ProjectionPoseRoll:{if(this.currentTrack?.info?.type!=="video")break;let c=-Vn(e,s);try{this.currentTrack.info.rotation=mn(c)}catch{}}break;case k.Audio:{if(this.currentTrack?.info?.type!=="audio")break;this.readContiguousElements(e.slice(o,s))}break;case k.SamplingFrequency:{if(this.currentTrack?.info?.type!=="audio")break;this.currentTrack.info.sampleRate=Vn(e,s)}break;case k.Channels:{if(this.currentTrack?.info?.type!=="audio")break;this.currentTrack.info.numberOfChannels=N(e,s)}break;case k.BitDepth:{if(this.currentTrack?.info?.type!=="audio")break;this.currentTrack.info.bitDepth=N(e,s)}break;case k.CuePoint:{if(!this.currentSegment)break;this.readContiguousElements(e.slice(o,s)),this.currentCueTime=null}break;case k.CueTime:this.currentCueTime=N(e,s);break;case k.CueTrackPositions:{if(this.currentCueTime===null)break;h(this.currentSegment);let a={time:this.currentCueTime,trackId:-1,clusterPosition:-1};this.currentSegment.cuePoints.push(a),this.readContiguousElements(e.slice(o,s)),(a.trackId===-1||a.clusterPosition===-1)&&this.currentSegment.cuePoints.pop()}break;case k.CueTrack:{let a=this.currentSegment?.cuePoints[this.currentSegment.cuePoints.length-1];if(!a)break;a.trackId=N(e,s)}break;case k.CueClusterPosition:{let a=this.currentSegment?.cuePoints[this.currentSegment.cuePoints.length-1];if(!a)break;h(this.currentSegment),a.clusterPosition=this.currentSegment.dataStartPos+N(e,s)}break;case k.Timestamp:{if(!this.currentCluster)break;this.currentCluster.timestamp=N(e,s)}break;case k.SimpleBlock:{if(!this.currentCluster)break;let a=xr(e);if(a===null)break;let c=this.getTrackDataInCluster(this.currentCluster,a);if(!c)break;let u=xi(e),l=D(e),d=l>>1&3,f=!!(l&128);c.track.info?.type==="audio"&&c.track.info.codec&&(f=!0);let m=I(e,s-(e.filePos-o)),p=c.track.decodingInstructions.length>0;c.blocks.push({timestamp:u,duration:0,isKeyFrame:f,data:m,lacing:d,decoded:!p,mainAdditional:null})}break;case k.BlockGroup:{if(!this.currentCluster)break;this.readContiguousElements(e.slice(o,s)),this.currentBlock=null}break;case k.Block:{if(!this.currentCluster)break;let a=xr(e);if(a===null)break;let c=this.getTrackDataInCluster(this.currentCluster,a);if(!c)break;let u=xi(e),d=D(e)>>1&3,f=I(e,s-(e.filePos-o)),m=c.track.decodingInstructions.length>0;this.currentBlock={timestamp:u,duration:0,isKeyFrame:!0,data:f,lacing:d,decoded:!m,mainAdditional:null},c.blocks.push(this.currentBlock)}break;case k.BlockAdditions:this.readContiguousElements(e.slice(o,s));break;case k.BlockMore:{if(!this.currentBlock)break;this.currentBlockAdditional={addId:1,data:null},this.readContiguousElements(e.slice(o,s)),this.currentBlockAdditional.data&&this.currentBlockAdditional.addId===1&&(this.currentBlock.mainAdditional=this.currentBlockAdditional.data),this.currentBlockAdditional=null}break;case k.BlockAdditional:{if(!this.currentBlockAdditional)break;this.currentBlockAdditional.data=I(e,s)}break;case k.BlockAddID:{if(!this.currentBlockAdditional)break;this.currentBlockAdditional.addId=N(e,s)}break;case k.BlockDuration:{if(!this.currentBlock)break;this.currentBlock.duration=N(e,s)}break;case k.ReferenceBlock:{if(!this.currentBlock)break;this.currentBlock.isKeyFrame=!1}break;case k.Tag:this.currentTagTargetIsMovie=!0,this.readContiguousElements(e.slice(o,s));break;case k.Targets:this.readContiguousElements(e.slice(o,s));break;case k.TargetTypeValue:N(e,s)!==50&&(this.currentTagTargetIsMovie=!1);break;case k.TagTrackUID:case k.TagEditionUID:case k.TagChapterUID:case k.TagAttachmentUID:this.currentTagTargetIsMovie=!1;break;case k.SimpleTag:{if(!this.currentTagTargetIsMovie)break;this.currentSimpleTagName=null,this.readContiguousElements(e.slice(o,s))}break;case k.TagName:this.currentSimpleTagName=yr(e,s);break;case k.TagString:{if(!this.currentSimpleTagName)break;let a=yr(e,s);this.processTagValue(this.currentSimpleTagName,a)}break;case k.TagBinary:{if(!this.currentSimpleTagName)break;let a=I(e,s);this.processTagValue(this.currentSimpleTagName,a)}break;case k.AttachedFile:{if(!this.currentSegment)break;this.currentAttachedFile={fileUid:null,fileName:null,fileMediaType:null,fileData:null,fileDescription:null},this.readContiguousElements(e.slice(o,s));let a=this.currentSegment.metadataTags;if(this.currentAttachedFile.fileUid&&this.currentAttachedFile.fileData&&(a.raw??={},a.raw[this.currentAttachedFile.fileUid.toString()]=new li(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,u="unknown";if(c){let l=c.toLowerCase();l.startsWith("cover.")?u="coverFront":l.startsWith("back.")&&(u="coverBack")}a.images??=[],a.images.push({data:this.currentAttachedFile.fileData,mimeType:this.currentAttachedFile.fileMediaType,kind:u,name:this.currentAttachedFile.fileName??void 0,description:this.currentAttachedFile.fileDescription??void 0})}this.currentAttachedFile=null}break;case k.FileUID:{if(!this.currentAttachedFile)break;this.currentAttachedFile.fileUid=nu(e,s)}break;case k.FileName:{if(!this.currentAttachedFile)break;this.currentAttachedFile.fileName=yr(e,s)}break;case k.FileMediaType:{if(!this.currentAttachedFile)break;this.currentAttachedFile.fileMediaType=xt(e,s)}break;case k.FileData:{if(!this.currentAttachedFile)break;this.currentAttachedFile.fileData=I(e,s)}break;case k.FileDescription:{if(!this.currentAttachedFile)break;this.currentAttachedFile.fileDescription=yr(e,s)}break;case k.ContentEncodings:{if(!this.currentTrack)break;this.readContiguousElements(e.slice(o,s)),this.currentTrack.decodingInstructions.sort((a,c)=>c.order-a.order)}break;case k.ContentEncoding:this.currentDecodingInstruction={order:0,scope:qn.Block,data:null},this.readContiguousElements(e.slice(o,s)),this.currentDecodingInstruction.data&&this.currentTrack.decodingInstructions.push(this.currentDecodingInstruction),this.currentDecodingInstruction=null;break;case k.ContentEncodingOrder:{if(!this.currentDecodingInstruction)break;this.currentDecodingInstruction.order=N(e,s)}break;case k.ContentEncodingScope:{if(!this.currentDecodingInstruction)break;this.currentDecodingInstruction.scope=N(e,s)}break;case k.ContentCompression:{if(!this.currentDecodingInstruction)break;this.currentDecodingInstruction.data={type:"decompress",algorithm:Ti.Zlib,settings:null},this.readContiguousElements(e.slice(o,s))}break;case k.ContentCompAlgo:{if(this.currentDecodingInstruction?.data?.type!=="decompress")break;this.currentDecodingInstruction.data.algorithm=N(e,s)}break;case k.ContentCompSettings:{if(this.currentDecodingInstruction?.data?.type!=="decompress")break;this.currentDecodingInstruction.data.settings=I(e,s)}break;case k.ContentEncryption:{if(!this.currentDecodingInstruction)break;this.currentDecodingInstruction.data={type:"decrypt"}}break}return e.filePos=o+s,!0}decodeBlockData(e,r){h(e.decodingInstructions.length>0);let i=r;for(let n of e.decodingInstructions)switch(h(n.data),n.data.type){case"decompress":switch(n.data.algorithm){case Ti.HeaderStripping:if(n.data.settings&&n.data.settings.length>0){let s=n.data.settings,o=new Uint8Array(s.length+i.length);o.set(s,0),o.set(i,s.length),i=o}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 n=new Date(r);Number.isNaN(n.getTime())||(i.date??=n)}break;case"track_number":case"part_number":{let n=r.split("/"),s=Number.parseInt(n[0],10),o=n[1]&&Number.parseInt(n[1],10);Number.isInteger(s)&&s>0&&(i.trackNumber??=s),o&&Number.isInteger(o)&&o>0&&(i.tracksTotal??=o)}break;case"disc_number":case"disc":{let n=r.split("/"),s=Number.parseInt(n[0],10),o=n[1]&&Number.parseInt(n[1],10);Number.isInteger(s)&&s>0&&(i.discNumber??=s),o&&Number.isInteger(o)&&o>0&&(i.discsTotal??=o)}break}}},Wn=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 Rt(e*this.internalTrack.segment.timestampFactor)}async getPacket(e,r){let i=this.intoTimescale(e);return this.performClusterLookup(null,n=>{let s=n.trackData.get(this.internalTrack.id);if(!s)return{blockIndex:-1,correctBlockFound:!1};let o=U(s.presentationTimestamps,i,u=>u.timestamp),a=o!==-1?s.presentationTimestamps[o].blockIndex:-1,c=o!==-1&&i<s.endTimestamp;return{blockIndex:a,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,n=>{if(n===i.cluster){let s=n.trackData.get(this.internalTrack.id);if(i.blockIndex+1<s.blocks.length)return{blockIndex:i.blockIndex+1,correctBlockFound:!0}}else if(n.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,n=>{let s=n.trackData.get(this.internalTrack.id);if(!s)return{blockIndex:-1,correctBlockFound:!1};let o=bn(s.presentationTimestamps,u=>s.blocks[u.blockIndex].isKeyFrame&&u.timestamp<=i),a=o!==-1?s.presentationTimestamps[o].blockIndex:-1,c=o!==-1&&i<s.endTimestamp;return{blockIndex:a,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,n=>{if(n===i.cluster){let o=n.trackData.get(this.internalTrack.id).blocks.findIndex((a,c)=>a.isKeyFrame&&c>i.blockIndex);if(o!==-1)return{blockIndex:o,correctBlockFound:!0}}else{let s=n.trackData.get(this.internalTrack.id);if(s&&s.firstKeyFrameTimestamp!==null){let o=s.blocks.findIndex(a=>a.isKeyFrame);return h(o!==-1),{blockIndex:o,correctBlockFound:!0}}}return{blockIndex:-1,correctBlockFound:!1}},-1/0,1/0,r)}async fetchPacketInCluster(e,r,i){if(r===-1)return null;let s=e.trackData.get(this.internalTrack.id).blocks[r];h(s),s.decoded||(s.data=this.internalTrack.demuxer.decodeBlockData(this.internalTrack,s.data),s.decoded=!0);let o=i.metadataOnly?te:s.data,a=s.timestamp/this.internalTrack.segment.timestampFactor,c=s.duration/this.internalTrack.segment.timestampFactor,u={};s.mainAdditional&&this.internalTrack.info?.type==="video"&&this.internalTrack.info.alphaMode&&(u.alpha=i.metadataOnly?te:s.mainAdditional,u.alphaByteLength=s.mainAdditional.byteLength);let l=new L(o,s.isKeyFrame?"key":"delta",a,c,e.dataStartPos+r,s.data.byteLength,u);return this.packetToClusterLocation.set(l,{cluster:e,blockIndex:r}),l}async performClusterLookup(e,r,i,n,s){let{demuxer:o,segment:a}=this.internalTrack,c=null,u=null,l=-1;if(e){let{blockIndex:w,correctBlockFound:x}=r(e);if(x)return this.fetchPacketInCluster(e,w,s);w!==-1&&(u=e,l=w)}let d=U(this.internalTrack.cuePoints,i,w=>w.time),f=d!==-1?this.internalTrack.cuePoints[d]:null,m=U(this.internalTrack.clusterPositionCache,i,w=>w.startTimestamp),p=m!==-1?this.internalTrack.clusterPositionCache[m]:null,g=Math.max(f?.clusterPosition??0,p?.elementStartPos??0)||null,b;for(e?g===null||e.elementStartPos>=g?(b=e.elementEndPos,c=e):b=g:b=g??a.clusterSeekStartPos;a.elementEndPos===null||b<=a.elementEndPos-Se;){if(c){let v=c.trackData.get(this.internalTrack.id);if(v&&v.startTimestamp>n)break}let w=o.reader.requestSliceRange(b,Se,Fe);if(w instanceof Promise&&(w=await w),!w)break;let x=b,y=Be(w);if(!y||!wr.includes(y.id)&&y.id!==k.Void){let v=await ho(o.reader,x,wr,Math.min(a.elementEndPos??1/0,x+au));if(v){b=v;continue}else break}let T=y.id,E=y.size,S=w.filePos;if(T===k.Cluster){c=await o.readCluster(x,a),E=c.elementEndPos-S;let{blockIndex:v,correctBlockFound:F}=r(c);if(F)return this.fetchPacketInCluster(c,v,s);v!==-1&&(u=c,l=v)}E===null&&(h(T!==k.Cluster),E=(await Ln(o.reader,S,yi,a.elementEndPos)).pos-S);let P=S+E;if(a.elementEndPos===null){let v=o.reader.requestSliceRange(P,Se,Fe);if(v instanceof Promise&&(v=await v),!v)break;if(zn(v)===k.Segment){a.elementEndPos=P;break}}b=P}if(f&&(!u||u.elementStartPos<f.clusterPosition)){let w=this.internalTrack.cuePoints[d-1];h(!w||w.time<f.time);let x=w?.time??-1/0;return this.performClusterLookup(null,r,x,n,s)}return u?this.fetchPacketInCluster(u,l,s):null}},go=class extends Wn{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:yn({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?En(e.data):null,hevcCodecInfo:this.internalTrack.info.codec==="hevc"&&e?An(e.data):null,vp9CodecInfo:this.internalTrack.info.codec==="vp9"&&e?vn(e.data):null,av1CodecInfo:this.internalTrack.info.codec==="av1"&&e?_n(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}},bo=class extends Wn{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:Tn({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 Ed=[44100,48e3,32e3],Ad=[-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],cu=1483304551,uu=1231971951,vd=(t,e,r,i,n)=>e===0?0:e===1?Math.floor(144*r/(i<<t))+n:e===2?Math.floor(144*r/i)+n:(Math.floor(12*r/i)+n)*4,lu=(t,e)=>t===3?e===3?21:36:e===3?13:21,du=(t,e)=>{let r=t>>>24,i=t>>>16&255,n=t>>>8&255,s=t&255;if(r!==255&&i!==255&&n!==255&&s!==255)return{header:null,bytesAdvanced:4};if(r!==255)return{header:null,bytesAdvanced:1};if((i&224)!==224)return{header:null,bytesAdvanced:1};let o=0,a=0;i&16?o=i&8?0:1:(o=1,a=1);let c=i>>3&3,u=i>>1&3,l=n>>4&15,d=(n>>2&3)%3,f=n>>1&1,m=s>>6&3,p=s>>4&3,g=s>>3&1,b=s>>2&1,w=s&3,x=Ad[o*16*4+u*16+l];if(x===-1)return{header:null,bytesAdvanced:1};let y=x*1e3,T=Ed[d]>>o+a,E=vd(o,u,y,T,f);if(e!==null&&e<E)return{header:null,bytesAdvanced:1};let S;return c===3?S=u===3?384:1152:u===3?S=384:u===2?S=1152:S=576,{header:{totalSize:E,mpegVersionId:c,layer:u,bitrate:y,frequencyIndex:d,sampleRate:T,channel:m,modeExtension:p,copyright:g,original:b,emphasis:w,audioSamplesInFrame:S},bytesAdvanced:1}};var Gn=t=>{let e=2130706432,r=0;for(;e!==0;)r>>=1,r|=t&e,e>>=8;return r};var Sr;(function(t){t[t.Unsynchronisation=128]="Unsynchronisation",t[t.ExtendedHeader=64]="ExtendedHeader",t[t.ExperimentalIndicator=32]="ExperimentalIndicator",t[t.Footer=16]="Footer"})(Sr||(Sr={}));var Cr;(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"})(Cr||(Cr={}));var ki=128,Ar=10,Er=["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"],fu=(t,e)=>{let r=t.filePos;e.raw??={},e.raw.TAG??=I(t,ki-3),t.filePos=r;let i=kr(t,30);i&&(e.title??=i);let n=kr(t,30);n&&(e.artist??=n);let s=kr(t,30);s&&(e.album??=s);let o=kr(t,4),a=Number.parseInt(o,10);Number.isInteger(a)&&a>0&&(e.date??=new Date(a,0,1));let c=I(t,30),u;if(c[28]===0&&c[29]!==0){let d=c[29];d>0&&(e.trackNumber??=d),t.skip(-30),u=kr(t,28),t.skip(2)}else t.skip(-30),u=kr(t,30);u&&(e.comment??=u);let l=D(t);l<Er.length&&(e.genre??=Er[l])},kr=(t,e)=>{let r=I(t,e),i=Ot(r.indexOf(0),r.length),n=r.subarray(0,i),s="";for(let o=0;o<n.length;o++)s+=String.fromCharCode(n[o]);return s.trimEnd()},Wt=t=>{let e=t.filePos,r=j(t,3),i=D(t),n=D(t),s=D(t),o=A(t);if(r!=="ID3"||i===255||n===255||(o&2155905152)!==0)return t.filePos=e,null;let a=Gn(o);return{majorVersion:i,revision:n,flags:s,size:a}},jn=(t,e,r)=>{if(![2,3,4].includes(e.majorVersion)){console.warn(`Unsupported ID3v2 major version: ${e.majorVersion}`);return}let i=I(t,e.size),n=new wo(e,i);if(e.flags&Sr.Footer&&n.removeFooter(),e.flags&Sr.Unsynchronisation&&e.majorVersion===3&&n.ununsynchronizeAll(),e.flags&Sr.ExtendedHeader){let s=n.readU32();e.majorVersion===3?n.pos+=s:n.pos+=s-4}for(;n.pos<=n.bytes.length-n.frameHeaderSize();){let s=n.readId3V2Frame();if(!s)break;let o=n.pos,a=n.pos+s.size,c=!1,u=!1,l=!1;if(e.majorVersion===3?(c=!!(s.flags&64),u=!!(s.flags&128)):e.majorVersion===4&&(c=!!(s.flags&4),u=!!(s.flags&8),l=!!(s.flags&2)||!!(e.flags&Sr.Unsynchronisation)),c){console.warn(`Skipping encrypted ID3v2 frame ${s.id}`),n.pos=a;continue}if(u){console.warn(`Skipping compressed ID3v2 frame ${s.id}`),n.pos=a;continue}switch(l&&n.ununsynchronizeRegion(n.pos,a),r.raw??={},s.id[0]==="T"?r.raw[s.id]??=n.readId3V2EncodingAndText(a):r.raw[s.id]??=n.readBytes(s.size),n.pos=o,s.id){case"TIT2":case"TT2":r.title??=n.readId3V2EncodingAndText(a);break;case"TIT3":case"TT3":r.description??=n.readId3V2EncodingAndText(a);break;case"TPE1":case"TP1":r.artist??=n.readId3V2EncodingAndText(a);break;case"TALB":case"TAL":r.album??=n.readId3V2EncodingAndText(a);break;case"TPE2":case"TP2":r.albumArtist??=n.readId3V2EncodingAndText(a);break;case"TRCK":case"TRK":{let f=n.readId3V2EncodingAndText(a).split("/"),m=Number.parseInt(f[0],10),p=f[1]&&Number.parseInt(f[1],10);Number.isInteger(m)&&m>0&&(r.trackNumber??=m),p&&Number.isInteger(p)&&p>0&&(r.tracksTotal??=p)}break;case"TPOS":case"TPA":{let f=n.readId3V2EncodingAndText(a).split("/"),m=Number.parseInt(f[0],10),p=f[1]&&Number.parseInt(f[1],10);Number.isInteger(m)&&m>0&&(r.discNumber??=m),p&&Number.isInteger(p)&&p>0&&(r.discsTotal??=p)}break;case"TCON":case"TCO":{let d=n.readId3V2EncodingAndText(a),f=/^\((\d+)\)/.exec(d);if(f){let m=Number.parseInt(f[1]);if(Er[m]!==void 0){r.genre??=Er[m];break}}if(f=/^\d+$/.exec(d),f){let m=Number.parseInt(f[0]);if(Er[m]!==void 0){r.genre??=Er[m];break}}r.genre??=d}break;case"TDRC":case"TDAT":{let d=n.readId3V2EncodingAndText(a),f=new Date(d);Number.isNaN(f.getTime())||(r.date??=f)}break;case"TYER":case"TYE":{let d=n.readId3V2EncodingAndText(a),f=Number.parseInt(d,10);Number.isInteger(f)&&(r.date??=new Date(f,0,1))}break;case"USLT":case"ULT":{let d=n.readU8();n.pos+=3,n.readId3V2Text(d,a),r.lyrics??=n.readId3V2Text(d,a)}break;case"COMM":case"COM":{let d=n.readU8();n.pos+=3,n.readId3V2Text(d,a),r.comment??=n.readId3V2Text(d,a)}break;case"APIC":case"PIC":{let d=n.readId3V2TextEncoding(),f;if(e.majorVersion===2){let b=n.readAscii(3);f=b==="PNG"?"image/png":b==="JPG"?"image/jpeg":"image/*"}else f=n.readId3V2Text(d,a);let m=n.readU8(),p=n.readId3V2Text(d,a).trimEnd(),g=a-n.pos;if(g>=0){let b=n.readBytes(g);r.images||(r.images=[]),r.images.push({data:b,mimeType:f,kind:m===3?"coverFront":m===4?"coverBack":"unknown",description:p})}}break;default:n.pos+=s.size;break}n.pos=a}},wo=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 o=e;o<r;o++){let a=this.bytes[o];i.push(a),a===255&&o!==r-1&&this.bytes[o+1]===0&&o++}let n=this.bytes.subarray(0,e),s=this.bytes.subarray(r);this.bytes=new Uint8Array(n.length+i.length+s.length),this.bytes.set(n,0),this.bytes.set(i,n.length),this.bytes.set(s,n.length+i.length),this.view=new DataView(this.bytes.buffer)}removeFooter(){this.bytes=this.bytes.subarray(0,this.bytes.length-Ar),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?Gn(r):r,n=this.readU16(),s=this.pos,o=a=>{let c=this.pos+a;if(c>this.bytes.length)return!1;if(c<=this.bytes.length-this.frameHeaderSize()){this.pos+=a;let u=this.readAscii(4);if(u!=="\0\0\0\0"&&!/[0-9A-Z]{4}/.test(u))return!1}return!0};if(!o(i)){let a=this.header.majorVersion===4?r:Gn(r);o(a)&&(i=a)}return this.pos=s,{id:e,size:i,flags:n}}}readId3V2TextEncoding(){let e=this.readU8();if(e>3)throw new Error(`Unsupported text encoding: ${e}`);return e}readId3V2Text(e,r){let i=this.pos,n=this.readBytes(r-this.pos);switch(e){case Cr.ISO_8859_1:{let s="";for(let o=0;o<n.length;o++){let a=n[o];if(a===0){this.pos=i+o+1;break}s+=String.fromCharCode(a)}return s}case Cr.UTF_16_WITH_BOM:if(n[0]===255&&n[1]===254){let s=new TextDecoder("utf-16le"),o=Ot(n.findIndex((a,c)=>a===0&&n[c+1]===0&&c%2===0),n.length);return this.pos=i+Math.min(o+2,n.length),s.decode(n.subarray(2,o))}else if(n[0]===254&&n[1]===255){let s=new TextDecoder("utf-16be"),o=Ot(n.findIndex((a,c)=>a===0&&n[c+1]===0&&c%2===0),n.length);return this.pos=i+Math.min(o+2,n.length),s.decode(n.subarray(2,o))}else{let s=Ot(n.findIndex(o=>o===0),n.length);return this.pos=i+Math.min(s+1,n.length),ae.decode(n.subarray(0,s))}case Cr.UTF_16_BE_NO_BOM:{let s=new TextDecoder("utf-16be"),o=Ot(n.findIndex((a,c)=>a===0&&n[c+1]===0&&c%2===0),n.length);return this.pos=i+Math.min(o+2,n.length),s.decode(n.subarray(0,o))}case Cr.UTF_8:{let s=Ot(n.findIndex(o=>o===0),n.length);return this.pos=i+Math.min(s+1,n.length),ae.decode(n.subarray(0,s))}}}readId3V2EncodingAndText(e){if(this.pos>=e)return"";let r=this.readId3V2TextEncoding();return this.readId3V2Text(r,e)}};var Si=async(t,e,r)=>{let i=e;for(;r===null||i<r;){let n=t.requestSlice(i,4);if(n instanceof Promise&&(n=await n),!n)break;let s=A(n),o=du(s,t.fileSize!==null?t.fileSize-i:null);if(o.header)return{header:o.header,startPos:i};i+=o.bytesAdvanced}return null};var $n=class extends de{constructor(e){super(e),this.metadataPromise=null,this.firstFrameHeader=null,this.loadedSamples=[],this.metadataTags=null,this.tracks=[],this.readingMutex=new be,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 ie(this.input,new xo(this))]})()}async advanceReader(){if(this.lastLoadedPos===0)for(;;){let a=this.reader.requestSlice(this.lastLoadedPos,Ar);if(a instanceof Promise&&(a=await a),!a){this.lastSampleLoaded=!0;return}let c=Wt(a);if(!c)break;this.lastLoadedPos=a.filePos+c.size}let e=await Si(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=lu(r.mpegVersionId,r.channel),n=this.reader.requestSlice(e.startPos+i,4);if(n instanceof Promise&&(n=await n),n){let a=A(n);if(a===cu||a===uu)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 s=r.audioSamplesInFrame/this.firstFrameHeader.sampleRate,o={timestamp:this.nextTimestampInSamples/this.firstFrameHeader.sampleRate,duration:s,dataStart:e.startPos,dataSize:r.totalSize};this.loadedSamples.push(o),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 h(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 n=this.reader.requestSlice(r,Ar);if(n instanceof Promise&&(n=await n),!n)break;let s=Wt(n);if(!s)break;i=!0;let o=this.reader.requestSlice(n.filePos,s.size);if(o instanceof Promise&&(o=await o),!o)break;jn(o,s,this.metadataTags),r=n.filePos+s.size}if(!i&&this.reader.fileSize!==null&&this.reader.fileSize>=ki){let n=this.reader.requestSlice(this.reader.fileSize-ki,ki);n instanceof Promise&&(n=await n),h(n),j(n,3)==="TAG"&&fu(n,this.metadataTags)}return this.metadataTags}finally{e()}}},xo=class{constructor(e){this.demuxer=e}getId(){return 1}async getFirstTimestamp(){return 0}getTimeResolution(){return h(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 Z}getCodec(){return"mp3"}getInternalCodecId(){return null}getNumberOfChannels(){return h(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.channel===3?1:2}getSampleRate(){return h(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.sampleRate}getDisposition(){return{...xe}}async getDecoderConfig(){return h(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 n;if(r.metadataOnly)n=te;else{let s=this.demuxer.reader.requestSlice(i.dataStart,i.dataSize);if(s instanceof Promise&&(s=await s),!s)return null;n=I(s,i.dataSize)}return new L(n,"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 n=Ft(this.demuxer.loadedSamples,e.timestamp,o=>o.timestamp);if(n===-1)throw new Error("Packet was not created from this track.");let s=n+1;for(;s>=this.demuxer.loadedSamples.length&&!this.demuxer.lastSampleLoaded;)await this.demuxer.advanceReader();return this.getPacketAtIndex(s,r)}finally{i()}}async getPacket(e,r){let i=await this.demuxer.readingMutex.acquire();try{for(;;){let n=U(this.demuxer.loadedSamples,e,s=>s.timestamp);if(n===-1&&this.demuxer.loadedSamples.length>0)return null;if(this.demuxer.lastSampleLoaded)return this.getPacketAtIndex(n,r);if(n>=0&&n+1<this.demuxer.loadedSamples.length)return this.getPacketAtIndex(n,r);await this.demuxer.advanceReader()}}finally{i()}}getKeyPacket(e,r){return this.getPacket(e,r)}getNextKeyPacket(e,r){return this.getNextPacket(e,r)}};var yo=1399285583,_d=79764919,hu=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^_d:e<<1;hu[t]=e>>>0&4294967295}var pu=t=>{let e=V(t),r=e.getUint32(22,!0);e.setUint32(22,0,!0);let i=0;for(let n=0;n<t.length;n++){let s=t[n];i=(i<<8^hu[i>>>24^s])>>>0}return e.setUint32(22,r,!0),i},gu=(t,e,r)=>{let i=0,n=null;if(t.length>0)if(e.codec==="vorbis"){h(e.vorbisInfo);let s=e.vorbisInfo.modeBlockflags.length,a=(1<<dc(s-1))-1<<1,c=(t[0]&a)>>1;if(c>=e.vorbisInfo.modeBlockflags.length)throw new Error("Invalid mode number.");let u=r,l=e.vorbisInfo.modeBlockflags[c];if(n=e.vorbisInfo.blocksizes[l],l===1){let d=(a|1)+1,f=t[0]&d?1:0;u=e.vorbisInfo.blocksizes[f]}i=u!==null?u+n>>2:0}else e.codec==="opus"&&(i=zc(t).durationInSamples);return{durationInSamples:i,vorbisBlockSize:n}},bu=t=>{let e="audio/ogg";if(t.codecStrings){let r=[...new Set(t.codecStrings)];e+=`; codecs="${r.join(", ")}"`}return e};var yt=27,jt=282,wu=jt+65025,vr=t=>{let e=t.filePos;if(Gt(t)!==yo)return null;t.skip(1);let i=D(t),n=yu(t),s=Gt(t),o=Gt(t),a=Gt(t),c=D(t),u=new Uint8Array(c);for(let m=0;m<c;m++)u[m]=D(t);let l=27+c,d=u.reduce((m,p)=>m+p,0),f=l+d;return{headerStartPos:e,totalSize:f,dataStartPos:e+l,dataSize:d,headerType:i,granulePosition:n,serialNumber:s,sequenceNumber:o,checksum:a,lacingValues:u}},xu=(t,e)=>{for(;t.filePos<e-3;){let r=Gt(t),i=r&255,n=r>>>8&255,s=r>>>16&255,o=r>>>24&255,a=79;if(!(i!==a&&n!==a&&s!==a&&o!==a)){if(t.skip(-4),r===yo)return!0;t.skip(1)}}return!1};var Qn=class extends de{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,yt,jt);if(r instanceof Promise&&(r=await r),!r)break;let i=vr(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 ie(this.input,new To(r,this))))}})()}async readVorbisMetadata(e,r){let i=await this.findNextPacketStart(e);if(!i)return;let n=await this.readPacket(i.startPage,i.startSegmentIndex);if(!n||(i=await this.findNextPacketStart(n),!i))return;let s=await this.readPacket(i.startPage,i.startSegmentIndex);if(!s||n.data[0]!==3||s.data[0]!==5)return;let o=[],a=d=>{for(;o.push(Math.min(255,d)),!(d<255);)d-=255};a(e.data.length),a(n.data.length);let c=new Uint8Array(1+o.length+e.data.length+n.data.length+s.data.length);c[0]=2,c.set(o,1),c.set(e.data,1+o.length),c.set(n.data,1+o.length+e.data.length),c.set(s.data,1+o.length+e.data.length+n.data.length),r.codecInfo.codec="vorbis",r.description=c,r.lastMetadataPacket=s;let u=V(e.data);r.numberOfChannels=u.getUint8(11),r.sampleRate=u.getUint32(12,!0);let l=u.getUint8(28);r.codecInfo.vorbisInfo={blocksizes:[1<<(l&15),1<<(l>>4)],modeBlockflags:Vc(s.data).modeBlockflags},fi(n.data.subarray(7),this.metadataTags)}async readOpusMetadata(e,r){let i=await this.findNextPacketStart(e);if(!i)return;let n=await this.readPacket(i.startPage,i.startSegmentIndex);if(!n)return;r.codecInfo.codec="opus",r.description=e.data,r.lastMetadataPacket=n;let s=Pn(e.data);r.numberOfChannels=s.outputChannelCount,r.sampleRate=Mt,r.codecInfo.opusInfo={preSkip:s.preSkip},fi(n.data.subarray(8),this.metadataTags)}async readPacket(e,r){h(r<e.lacingValues.length);let i=0;for(let d=0;d<r;d++)i+=e.lacingValues[d];let n=e,s=i,o=r,a=[];e:for(;;){let d=this.reader.requestSlice(n.dataStartPos,n.dataSize);d instanceof Promise&&(d=await d),h(d);let f=I(d,n.dataSize);for(;;){if(o===n.lacingValues.length){a.push(f.subarray(i,s));break}let p=n.lacingValues[o];if(s+=p,p<255){a.push(f.subarray(i,s));break e}o++}let m=n.headerStartPos+n.totalSize;for(;;){let p=this.reader.requestSliceRange(m,yt,jt);if(p instanceof Promise&&(p=await p),!p)return null;let g=vr(p);if(!g)return null;if(n=g,n.serialNumber===e.serialNumber)break;m=n.headerStartPos+n.totalSize}i=0,s=0,o=0}let c=a.reduce((d,f)=>d+f.length,0),u=new Uint8Array(c),l=0;for(let d=0;d<a.length;d++){let f=a[d];u.set(f,l),l+=f.length}return{data:u,endPage:n,endSegmentIndex:o}}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 n=this.reader.requestSliceRange(i,yt,jt);if(n instanceof Promise&&(n=await n),!n)return null;let s=vr(n);if(!s)return null;if(s.serialNumber===e.endPage.serialNumber)return{startPage:s,startSegmentIndex:0};i=s.headerStartPos+s.totalSize}}async getMimeType(){await this.readMetadata();let e=await Promise.all(this.tracks.map(r=>r.getCodecParameterString()));return bu({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}},To=class{constructor(e,r){this.bitstream=e,this.demuxer=r,this.encodedPacketToMetadata=new WeakMap,this.sequentialScanCache=[],this.sequentialScanMutex=new be,this.internalSampleRate=e.codecInfo.codec==="opus"?Mt: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 h(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 Z}getDisposition(){return{...xe}}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"?(h(this.bitstream.codecInfo.opusInfo),e-this.bitstream.codecInfo.opusInfo.preSkip):e}createEncodedPacketFromOggPacket(e,r,i){if(!e)return null;let{durationInSamples:n,vorbisBlockSize:s}=gu(e.data,this.bitstream.codecInfo,r.vorbisLastBlocksize),o=new L(i.metadataOnly?te:e.data,"key",Math.max(0,r.timestampInSamples)/this.internalSampleRate,n/this.internalSampleRate,e.endPage.headerStartPos+e.endSegmentIndex,e.data.byteLength);return this.encodedPacketToMetadata.set(o,{packet:e,timestampInSamples:r.timestampInSamples,durationInSamples:n,vorbisLastBlockSize:r.vorbisLastBlocksize,vorbisBlockSize:s}),o}async getFirstPacket(e){h(this.bitstream.lastMetadataPacket);let r=await this.demuxer.findNextPacketStart(this.bitstream.lastMetadataPacket);if(!r)return null;let i=0;this.bitstream.codecInfo.codec==="opus"&&(h(this.bitstream.codecInfo.opusInfo),i-=this.bitstream.codecInfo.opusInfo.preSkip);let n=await this.demuxer.readPacket(r.startPage,r.startSegmentIndex);return this.createEncodedPacketFromOggPacket(n,{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 n=await this.demuxer.findNextPacketStart(i.packet);if(!n)return null;let s=i.timestampInSamples+i.durationInSamples,o=await this.demuxer.readPacket(n.startPage,n.startSegmentIndex);return this.createEncodedPacketFromOggPacket(o,{timestampInSamples:s,vorbisLastBlocksize:i.vorbisBlockSize},r)}async getPacket(e,r){if(this.demuxer.reader.fileSize===null)return this.getPacketSequential(e,r);let i=Rt(e*this.internalSampleRate);if(i===0)return this.getFirstPacket(r);if(i<0)return null;h(this.bitstream.lastMetadataPacket);let n=await this.demuxer.findNextPacketStart(this.bitstream.lastMetadataPacket);if(!n)return null;let s=n.startPage,o=this.demuxer.reader.fileSize,a=[s];e:for(;s.headerStartPos+s.totalSize<o;){let x=s.headerStartPos,y=Math.floor((x+o)/2),T=y;for(;;){let E=Math.min(T+wu,o-yt),S=this.demuxer.reader.requestSlice(T,E-T);if(S instanceof Promise&&(S=await S),h(S),!xu(S,E)){o=y+yt;continue e}let v=this.demuxer.reader.requestSliceRange(S.filePos,yt,jt);v instanceof Promise&&(v=await v),h(v);let F=vr(v);h(F);let M=!1;if(F.serialNumber===this.bitstream.serialNumber)M=!0;else{let Q=this.demuxer.reader.requestSlice(F.headerStartPos,F.totalSize);Q instanceof Promise&&(Q=await Q),h(Q);let je=I(Q,F.totalSize);M=pu(je)===F.checksum}if(!M){T=F.headerStartPos+4;continue}if(M&&F.serialNumber!==this.bitstream.serialNumber){T=F.headerStartPos+F.totalSize;continue}if(F.granulePosition===-1){T=F.headerStartPos+F.totalSize;continue}this.granulePositionToTimestampInSamples(F.granulePosition)>i?o=F.headerStartPos:(s=F,a.push(F));continue e}}let c=n.startPage;for(let x of a){if(x.granulePosition===s.granulePosition)break;(!c||x.headerStartPos>c.headerStartPos)&&(c=x)}let u=c,l=[u];for(;!(u.serialNumber===this.bitstream.serialNumber&&u.granulePosition===s.granulePosition);){let x=u.headerStartPos+u.totalSize,y=this.demuxer.reader.requestSliceRange(x,yt,jt);y instanceof Promise&&(y=await y),h(y);let T=vr(y);h(T),u=T,u.serialNumber===this.bitstream.serialNumber&&l.push(u)}h(u.granulePosition!==-1);let d=null,f,m,p=u,g=0;if(u.headerStartPos===n.startPage.headerStartPos)f=this.granulePositionToTimestampInSamples(0),m=!0,d=0;else{f=0,m=!1;for(let T=u.lacingValues.length-1;T>=0;T--)if(u.lacingValues[T]<255){d=T+1;break}if(d===null)throw new Error("Invalid page with granule position: no packets end on this page.");g=d-1;let x={data:te,endPage:p,endSegmentIndex:g};if(await this.demuxer.findNextPacketStart(x)){let T=ku(l,u,d);h(T);let E=Tu(l,T.page,T.segmentIndex);E&&(u=E.page,d=E.segmentIndex)}else for(;;){let T=ku(l,u,d);if(!T)break;let E=Tu(l,T.page,T.segmentIndex);if(!E)break;if(u=E.page,d=E.segmentIndex,T.page.headerStartPos!==p.headerStartPos){p=T.page,g=T.segmentIndex;break}}}let b=null,w=null;for(;u!==null;){h(d!==null);let x=await this.demuxer.readPacket(u,d);if(!x)break;if(!(u.headerStartPos===n.startPage.headerStartPos&&d<n.startSegmentIndex)){let E=this.createEncodedPacketFromOggPacket(x,{timestampInSamples:f,vorbisLastBlocksize:w?.vorbisBlockSize??null},r);h(E);let S=this.encodedPacketToMetadata.get(E);if(h(S),!m&&x.endPage.headerStartPos===p.headerStartPos&&x.endSegmentIndex===g?(f=this.granulePositionToTimestampInSamples(u.granulePosition),m=!0,E=this.createEncodedPacketFromOggPacket(x,{timestampInSamples:f-S.durationInSamples,vorbisLastBlocksize:w?.vorbisBlockSize??null},r),h(E),S=this.encodedPacketToMetadata.get(E),h(S)):f+=S.durationInSamples,b=E,w=S,m&&(Math.max(f,0)>i||Math.max(S.timestampInSamples,0)===i))break}let T=await this.demuxer.findNextPacketStart(x);if(!T)break;u=T.startPage,d=T.startSegmentIndex}return b}async getPacketSequential(e,r){let i=await this.sequentialScanMutex.acquire();try{let n=Rt(e*this.internalSampleRate);e=n/this.internalSampleRate;let s=U(this.sequentialScanCache,n,c=>c.timestampInSamples),o;if(s!==-1){let c=this.sequentialScanCache[s];o=this.createEncodedPacketFromOggPacket(c.packet,{timestampInSamples:c.timestampInSamples,vorbisLastBlocksize:c.vorbisLastBlockSize},r)}else o=await this.getFirstPacket(r);let a=0;for(;o&&o.timestamp<e;){let c=await this.getNextPacket(o,r);if(!c||c.timestamp>e)break;if(o=c,a++,a===100){a=0;let u=this.encodedPacketToMetadata.get(o);h(u),this.sequentialScanCache.length>0&&h(G(this.sequentialScanCache).timestampInSamples<=u.timestampInSamples),this.sequentialScanCache.push(u)}}return o}finally{i()}}getKeyPacket(e,r){return this.getPacket(e,r)}getNextKeyPacket(e,r){return this.getNextPacket(e,r)}},Tu=(t,e,r)=>{let i=e,n=r;e:for(;;){for(n--,n;n>=0;n--)if(i.lacingValues[n]<255){n++;break e}if(h(n===-1),!(i.headerType&1)){n=0;break}let o=Hs(t,a=>a.headerStartPos<i.headerStartPos);if(!o)return null;i=o,n=i.lacingValues.length}if(h(n!==-1),n===i.lacingValues.length){let s=t[t.indexOf(i)+1];h(s),i=s,n=0}return{page:i,segmentIndex:n}},ku=(t,e,r)=>{if(r>0)return{page:e,segmentIndex:r-1};let i=Hs(t,n=>n.headerStartPos<e.headerStartPos);return i?{page:i,segmentIndex:i.lacingValues.length-1}:null};var ct;(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"})(ct||(ct={}));var Xn=class extends de{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),h(e);let r=j(e,4),i=r!=="RIFX",n=r==="RF64",s=ut(e,i),o=n?this.reader.fileSize:Math.min(s+8,this.reader.fileSize??1/0);if(j(e,4)!=="WAVE")throw new Error("Invalid WAVE file - wrong format");let c=0,u=null,l=e.filePos;for(;o===null||l<o;){let f=this.reader.requestSlice(l,8);if(f instanceof Promise&&(f=await f),!f)break;let m=j(f,4),p=ut(f,i),g=f.filePos;if(n&&c===0&&m!=="ds64")throw new Error('Invalid RF64 file: First chunk must be "ds64".');if(m==="fmt ")await this.parseFmtChunk(g,p,i);else if(m==="data"){if(u??=p,this.dataStart=f.filePos,this.dataSize=Math.min(u,(o??1/0)-this.dataStart),this.reader.fileSize===null)break}else if(m==="ds64"){let b=this.reader.requestSlice(g,p);if(b instanceof Promise&&(b=await b),!b)break;let w=So(b,i);u=So(b,i),o=Math.min(w+8,this.reader.fileSize??1/0)}else m==="LIST"?await this.parseListChunk(g,p,i):(m==="ID3 "||m==="id3 ")&&await this.parseId3Chunk(g,p);l=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 d=this.audioInfo.blockSizeInBytes;this.dataSize=Math.floor(this.dataSize/d)*d,this.tracks.push(new ie(this.input,new ko(this)))})()}async parseFmtChunk(e,r,i){let n=this.reader.requestSlice(e,r);if(n instanceof Promise&&(n=await n),!n)return;let s=Pr(n,i),o=Pr(n,i),a=ut(n,i);n.skip(4);let c=Pr(n,i),u;if(r===14?u=8:u=Pr(n,i),r>=18&&s!==357){let l=Pr(n,i),d=r-18;if(Math.min(d,l)>=22&&s===ct.EXTENSIBLE){n.skip(6);let m=I(n,16);s=m[0]|m[1]<<8}}(s===ct.MULAW||s===ct.ALAW)&&(u=8),this.audioInfo={format:s,numberOfChannels:o,sampleRate:a,sampleSizeInBytes:Math.ceil(u/8),blockSizeInBytes:c}}async parseListChunk(e,r,i){let n=this.reader.requestSlice(e,r);if(n instanceof Promise&&(n=await n),!n)return;let s=j(n,4);if(s!=="INFO"&&s!=="INF0")return;let o=n.filePos;for(;o<=e+r-8;){n.filePos=o;let a=j(n,4),c=ut(n,i),u=I(n,c),l=0;for(let f=0;f<u.length&&u[f]!==0;f++)l++;let d=String.fromCharCode(...u.subarray(0,l));switch(this.metadataTags.raw??={},this.metadataTags.raw[a]=d,a){case"INAM":case"TITL":this.metadataTags.title??=d;break;case"TIT3":this.metadataTags.description??=d;break;case"IART":this.metadataTags.artist??=d;break;case"IPRD":this.metadataTags.album??=d;break;case"IPRT":case"ITRK":case"TRCK":{let f=d.split("/"),m=Number.parseInt(f[0],10),p=f[1]&&Number.parseInt(f[1],10);Number.isInteger(m)&&m>0&&(this.metadataTags.trackNumber??=m),p&&Number.isInteger(p)&&p>0&&(this.metadataTags.tracksTotal??=p)}break;case"ICRD":case"IDIT":{let f=new Date(d);Number.isNaN(f.getTime())||(this.metadataTags.date??=f)}break;case"YEAR":{let f=Number.parseInt(d,10);Number.isInteger(f)&&f>0&&(this.metadataTags.date??=new Date(f,0,1))}break;case"IGNR":case"GENR":this.metadataTags.genre??=d;break;case"ICMT":case"CMNT":case"COMM":this.metadataTags.comment??=d;break}o+=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 n=Wt(i);if(n){let s=i.slice(e+10,n.size);jn(s,n,this.metadataTags)}}getCodec(){if(h(this.audioInfo),this.audioInfo.format===ct.MULAW)return"ulaw";if(this.audioInfo.format===ct.ALAW)return"alaw";if(this.audioInfo.format===ct.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===ct.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 h(e),e.computeDuration()}async getTracks(){return await this.readMetadata(),this.tracks}async getMetadataTags(){return await this.readMetadata(),this.metadataTags}},_r=2048,ko=class{constructor(e){this.demuxer=e}getId(){return 1}getCodec(){return this.demuxer.getCodec()}getInternalCodecId(){return h(this.demuxer.audioInfo),this.demuxer.audioInfo.format}async getDecoderConfig(){let e=this.demuxer.getCodec();return e?(h(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 h(this.demuxer.audioInfo),this.demuxer.audioInfo.numberOfChannels}getSampleRate(){return h(this.demuxer.audioInfo),this.demuxer.audioInfo.sampleRate}getTimeResolution(){return h(this.demuxer.audioInfo),this.demuxer.audioInfo.sampleRate}getName(){return null}getLanguageCode(){return Z}getDisposition(){return{...xe}}async getFirstTimestamp(){return 0}async getPacketAtIndex(e,r){h(this.demuxer.audioInfo);let i=e*_r*this.demuxer.audioInfo.blockSizeInBytes;if(i>=this.demuxer.dataSize)return null;let n=Math.min(_r*this.demuxer.audioInfo.blockSizeInBytes,this.demuxer.dataSize-i);if(this.demuxer.reader.fileSize===null){let c=this.demuxer.reader.requestSlice(this.demuxer.dataStart+i,n);if(c instanceof Promise&&(c=await c),!c)return null}let s;if(r.metadataOnly)s=te;else{let c=this.demuxer.reader.requestSlice(this.demuxer.dataStart+i,n);c instanceof Promise&&(c=await c),h(c),s=I(c,n)}let o=e*_r/this.demuxer.audioInfo.sampleRate,a=n/this.demuxer.audioInfo.blockSizeInBytes/this.demuxer.audioInfo.sampleRate;return this.demuxer.lastKnownPacketIndex=Math.max(e,o),new L(s,"key",o,a,e,n)}getFirstPacket(e){return this.getPacketAtIndex(0,e)}async getPacket(e,r){h(this.demuxer.audioInfo);let i=Math.floor(Math.min(e*this.demuxer.audioInfo.sampleRate/_r,(this.demuxer.dataSize-1)/(_r*this.demuxer.audioInfo.blockSizeInBytes))),n=await this.getPacketAtIndex(i,r);if(n)return n;if(i===0)return null;h(this.demuxer.reader.fileSize===null);let s=await this.getPacketAtIndex(this.demuxer.lastKnownPacketIndex,r);for(;s;){let o=await this.getNextPacket(s,r);if(!o)break;s=o}return s}getNextPacket(e,r){h(this.demuxer.audioInfo);let i=Math.round(e.timestamp*this.demuxer.audioInfo.sampleRate/_r);return this.getPacketAtIndex(i+1,r)}getKeyPacket(e,r){return this.getPacket(e,r)}getNextKeyPacket(e,r){return this.getNextPacket(e,r)}};var Dr=7,Ir=9,Ci=t=>{let e=t.filePos,r=I(t,9),i=new W(r);if(i.readBits(12)!==4095||(i.skipBits(1),i.readBits(2)!==0))return null;let o=i.readBits(1),a=i.readBits(2)+1,c=i.readBits(4);if(c===15)return null;i.skipBits(1);let u=i.readBits(3);if(u===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 l=i.readBits(13);i.skipBits(11);let d=i.readBits(2)+1;if(d!==1)throw new Error("ADTS frames with more than one AAC frame are not supported.");let f=null;return o===1?t.filePos-=2:f=i.readBits(16),{objectType:a,samplingFrequencyIndex:c,channelConfiguration:u,frameLength:l,numberOfAacFrames:d,crcCheck:f,startPos:e}};var Co=1024,Kn=class extends de{constructor(e){super(e),this.metadataPromise=null,this.firstFrameHeader=null,this.loadedSamples=[],this.tracks=[],this.readingMutex=new be,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();h(this.firstFrameHeader),this.tracks=[new ie(this.input,new Eo(this))]})()}async advanceReader(){let e=this.reader.requestSliceRange(this.lastLoadedPos,Dr,Ir);if(e instanceof Promise&&(e=await e),!e){this.lastSampleLoaded=!0;return}let r=Ci(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=fr[r.samplingFrequencyIndex];h(i!==void 0);let n=Co/i,s=r.crcCheck?Ir:Dr,o={timestamp:this.nextTimestampInSamples/i,duration:n,dataStart:r.startPos+s,dataSize:r.frameLength-s};this.loadedSamples.push(o),this.nextTimestampInSamples+=Co,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 h(e),e.computeDuration()}async getMetadataTags(){return{}}},Eo=class{constructor(e){this.demuxer=e}getId(){return 1}async getFirstTimestamp(){return 0}getTimeResolution(){return this.getSampleRate()/Co}async computeDuration(){let e=await this.getPacket(1/0,{metadataOnly:!0});return(e?.timestamp??0)+(e?.duration??0)}getName(){return null}getLanguageCode(){return Z}getCodec(){return"aac"}getInternalCodecId(){return h(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.objectType}getNumberOfChannels(){h(this.demuxer.firstFrameHeader);let e=kn[this.demuxer.firstFrameHeader.channelConfiguration];return h(e!==void 0),e}getSampleRate(){h(this.demuxer.firstFrameHeader);let e=fr[this.demuxer.firstFrameHeader.samplingFrequencyIndex];return h(e!==void 0),e}getDisposition(){return{...xe}}async getDecoderConfig(){h(this.demuxer.firstFrameHeader);let e=new Uint8Array(3),r=new W(e),{objectType:i,samplingFrequencyIndex:n,channelConfiguration:s}=this.demuxer.firstFrameHeader;return i>31?(r.writeBits(5,31),r.writeBits(6,i-32)):r.writeBits(5,i),r.writeBits(4,n),r.writeBits(4,s),{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 n;if(r.metadataOnly)n=te;else{let s=this.demuxer.reader.requestSlice(i.dataStart,i.dataSize);if(s instanceof Promise&&(s=await s),!s)return null;n=I(s,i.dataSize)}return new L(n,"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 n=Ft(this.demuxer.loadedSamples,e.timestamp,o=>o.timestamp);if(n===-1)throw new Error("Packet was not created from this track.");let s=n+1;for(;s>=this.demuxer.loadedSamples.length&&!this.demuxer.lastSampleLoaded;)await this.demuxer.advanceReader();return this.getPacketAtIndex(s,r)}finally{i()}}async getPacket(e,r){let i=await this.demuxer.readingMutex.acquire();try{for(;;){let n=U(this.demuxer.loadedSamples,e,s=>s.timestamp);if(n===-1&&this.demuxer.loadedSamples.length>0)return null;if(this.demuxer.lastSampleLoaded)return this.getPacketAtIndex(n,r);if(n>=0&&n+1<this.demuxer.loadedSamples.length)return this.getPacketAtIndex(n,r);await this.demuxer.advanceReader()}}finally{i()}}getKeyPacket(e,r){return this.getPacket(e,r)}getNextKeyPacket(e,r){return this.getNextPacket(e,r)}};var Su=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,Cu=(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}},Eu=t=>{let e=0,r=new W(I(t,1));for(;r.readBits(1)===1;)e++;if(e===0)return r.readBits(7);let i=[],n=e-1,s=new W(I(t,n)),o=8-e-1;for(let c=0;c<o;c++)i.unshift(r.readBits(1));for(let c=0;c<n;c++)for(let u=0;u<8;u++){let l=s.readBits(1);u<2||i.unshift(l)}return i.reduce((c,u,l)=>c|u<<l,0)},Au=(t,e)=>{if(e==="uncommon-u16")return ne(t)+1;if(e==="uncommon-u8")return D(t)+1;if(typeof e=="number")return e;ue(e),h(!1)},vu=(t,e)=>e==="uncommon-u16"?ne(t):e==="uncommon-u16-10"?ne(t)*10:e==="uncommon-u8"?D(t):typeof e=="number"?e:null,_u=t=>{let r=0;for(let i of t){r^=i;for(let n=0;n<8;n++)(r&128)!==0?r=r<<1^7:r<<=1,r&=255}return r};var Yn=class extends de{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 be,this.lastSampleLoaded=!1,this.reader=e._reader}async computeDuration(){return await this.readMetadata(),h(this.track),this.track.computeDuration()}async getMetadataTags(){return await this.readMetadata(),this.metadataTags}async getTracks(){return await this.readMetadata(),h(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.`);h(r);let i=D(r),n=wt(r),s=(i&128)!==0;switch(i&127){case gt.STREAMINFO:{let a=this.reader.requestSlice(e,n);if(a instanceof Promise&&(a=await a),h(a),a===null)throw new Error(`StreamInfo block at position ${e} is too small! Corrupted file.`);let c=I(a,34),u=new W(c),l=u.readBits(16),d=u.readBits(16),f=u.readBits(24),m=u.readBits(24),p=u.readBits(20),g=u.readBits(3)+1;u.readBits(5);let b=u.readBits(36);u.skipBits(128);let w=new Uint8Array(42);w.set(new Uint8Array([102,76,97,67]),0),w.set(new Uint8Array([128,0,0,34]),4),w.set(c,8),this.audioInfo={numberOfChannels:g,sampleRate:p,totalSamples:b,minimumBlockSize:l,maximumBlockSize:d,minimumFrameSize:f,maximumFrameSize:m,description:w},this.track=new ie(this.input,new Ao(this));break}case gt.VORBIS_COMMENT:{let a=this.reader.requestSlice(e,n);a instanceof Promise&&(a=await a),h(a),fi(I(a,n),this.metadataTags);break}case gt.PICTURE:{let a=this.reader.requestSlice(e,n);a instanceof Promise&&(a=await a),h(a);let c=A(a),u=A(a),l=ae.decode(I(a,u)),d=A(a),f=ae.decode(I(a,d));a.skip(16);let m=A(a),p=I(a,m);this.metadataTags.images??=[],this.metadataTags.images.push({data:p,mimeType:l,kind:c===3?"coverFront":c===4?"coverBack":"unknown",description:f});break}default:break}if(e+=n,s){this.lastLoadedPos=e;break}}})()}async readNextFlacFrame({startPos:e,isFirstPacket:r}){h(this.audioInfo);let i=6,s=this.audioInfo.maximumFrameSize+16,o=await this.reader.requestSliceRange(e,this.audioInfo.minimumFrameSize,s);if(!o)return null;let a=this.readFlacFrameHeader({slice:o,isFirstPacket:r});if(!a)return null;for(o.filePos=e+this.audioInfo.minimumFrameSize;;){if(o.filePos>o.end-i)return{num:a.num,blockSize:a.blockSize,sampleRate:a.sampleRate,size:o.end-e,isLastFrame:!0};if(D(o)===255){let u=o.filePos,l=D(o),d=this.blockingBit===1?249:248;if(l!==d){o.filePos=u;continue}o.skip(-2);let f=o.filePos-e,m=this.readFlacFrameHeader({slice:o,isFirstPacket:!1});if(!m){o.filePos=u;continue}if(this.blockingBit===0){if(m.num-a.num!==1){o.filePos=u;continue}}else if(m.num-a.num!==a.blockSize){o.filePos=u;continue}return{num:a.num,blockSize:a.blockSize,sampleRate:a.sampleRate,size:f,isLastFrame:!1}}}}readFlacFrameHeader({slice:e,isFirstPacket:r}){let i=e.filePos,n=I(e,4),s=new W(n);if(s.readBits(15)!==32764)return null;if(this.blockingBit===null){h(r);let b=s.readBits(1);this.blockingBit=b}else if(this.blockingBit===1){if(h(!r),s.readBits(1)!==1)return null}else if(this.blockingBit===0){if(h(!r),s.readBits(1)!==0)return null}else throw new Error("Invalid blocking bit");let a=Su(s.readBits(4));if(!a)return null;h(this.audioInfo);let c=Cu(s.readBits(4),this.audioInfo.sampleRate);if(!c||(s.readBits(4),s.readBits(3),s.readBits(1)!==0))return null;let l=Eu(e),d=Au(e,a),f=vu(e,c);if(f===null||f!==this.audioInfo.sampleRate)return null;let m=e.filePos-i,p=D(e);e.skip(-m),e.skip(-1);let g=_u(I(e,m));return p!==g?null:{num:l,blockSize:d,sampleRate:f}}async advanceReader(){await this.readMetadata(),h(this.lastLoadedPos!==null),h(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],s={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(s),r.isLastFrame){this.lastSampleLoaded=!0;return}}},Ao=class{constructor(e){this.demuxer=e}getId(){return 1}getCodec(){return"flac"}getInternalCodecId(){return null}getNumberOfChannels(){return h(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 h(this.demuxer.audioInfo),this.demuxer.audioInfo.sampleRate}getName(){return null}getLanguageCode(){return Z}getTimeResolution(){return h(this.demuxer.audioInfo),this.demuxer.audioInfo.sampleRate}getDisposition(){return{...xe}}async getFirstTimestamp(){return 0}async getDecoderConfig(){return h(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(h(this.demuxer.audioInfo),e<0)throw new Error("Timestamp cannot be negative");let i=await this.demuxer.readingMutex.acquire();try{for(;;){let n=U(this.demuxer.loadedSamples,e,c=>c.blockOffset/this.demuxer.audioInfo.sampleRate);if(n===-1){await this.demuxer.advanceReader();continue}let s=this.demuxer.loadedSamples[n],o=s.blockOffset/this.demuxer.audioInfo.sampleRate,a=s.blockSize/this.demuxer.audioInfo.sampleRate;if(o+a<=e){if(this.demuxer.lastSampleLoaded)return this.getPacketAtIndex(this.demuxer.loadedSamples.length-1,r);await this.demuxer.advanceReader();continue}return this.getPacketAtIndex(n,r)}}finally{i()}}async getNextPacket(e,r){let i=await this.demuxer.readingMutex.acquire();try{let n=e.sequenceNumber+1;if(this.demuxer.lastSampleLoaded&&n>=this.demuxer.loadedSamples.length)return null;for(;n>=this.demuxer.loadedSamples.length&&!this.demuxer.lastSampleLoaded;)await this.demuxer.advanceReader();return this.getPacketAtIndex(n,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 n;if(r.metadataOnly)n=te;else{let a=this.demuxer.reader.requestSlice(i.byteOffset,i.byteSize);if(a instanceof Promise&&(a=await a),!a)return null;n=I(a,i.byteSize)}h(this.demuxer.audioInfo);let s=i.blockOffset/this.demuxer.audioInfo.sampleRate,o=i.blockSize/this.demuxer.audioInfo.sampleRate;return new L(n,"key",s,o,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 ve=class{},Ei=class extends ve{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 Nn(e)}},Zn=class extends Ei{async _canReadInput(e){let r=await this._getMajorBrand(e);return!!r&&r!=="qt "}get name(){return"MP4"}get mimeType(){return"video/mp4"}},Jn=class extends Ei{async _canReadInput(e){return await this._getMajorBrand(e)==="qt "}get name(){return"QuickTime File Format"}get mimeType(){return"video/quicktime"}},Ai=class extends ve{async isSupportedEBMLOfDocType(e,r){let i=e._reader.requestSlice(0,Fe);if(i instanceof Promise&&(i=await i),!i)return!1;let n=fo(i);if(n===null||n<1||n>8||N(i,n)!==k.EBML)return!1;let o=mo(i);if(o===null)return!1;let a=e._reader.requestSlice(i.filePos,o);if(a instanceof Promise&&(a=await a),!a)return!1;let c=i.filePos;for(;a.filePos<=c+o-Se;){let u=Be(a);if(!u)break;let{id:l,size:d}=u,f=a.filePos;if(d===null)return!1;switch(l){case k.EBMLVersion:if(N(a,d)!==1)return!1;break;case k.EBMLReadVersion:if(N(a,d)!==1)return!1;break;case k.DocType:if(xt(a,d)!==r)return!1;break;case k.DocTypeVersion:if(N(a,d)>4)return!1;break}a.filePos=f+d}return!0}_canReadInput(e){return this.isSupportedEBMLOfDocType(e,"matroska")}_createDemuxer(e){return new Hn(e)}get name(){return"Matroska"}get mimeType(){return"video/x-matroska"}},es=class extends Ai{_canReadInput(e){return this.isSupportedEBMLOfDocType(e,"webm")}get name(){return"WebM"}get mimeType(){return"video/webm"}},ts=class extends ve{async _canReadInput(e){let r=e._reader.requestSlice(0,10);if(r instanceof Promise&&(r=await r),!r)return!1;let i=0,n=!1;for(;;){let u=e._reader.requestSlice(i,Ar);if(u instanceof Promise&&(u=await u),!u)break;let l=Wt(u);if(!l)break;n=!0,i=u.filePos+l.size}let s=await Si(e._reader,i,i+4096);if(!s)return!1;if(n)return!0;i=s.startPos+s.header.totalSize;let o=await Si(e._reader,i,i+4);if(!o)return!1;let a=s.header,c=o.header;return!(a.channel!==c.channel||a.sampleRate!==c.sampleRate)}_createDemuxer(e){return new $n(e)}get name(){return"MP3"}get mimeType(){return"audio/mpeg"}},rs=class extends ve{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 Xn(e)}get name(){return"WAVE"}get mimeType(){return"audio/wav"}},is=class extends ve{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 Qn(e)}get name(){return"Ogg"}get mimeType(){return"application/ogg"}},ns=class extends ve{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 Yn(e)}},ss=class extends ve{async _canReadInput(e){let r=e._reader.requestSliceRange(0,Dr,Ir);if(r instanceof Promise&&(r=await r),!r)return!1;let i=Ci(r);if(!i||(r=e._reader.requestSliceRange(i.frameLength,Dr,Ir),r instanceof Promise&&(r=await r),!r))return!1;let n=Ci(r);return n?i.objectType===n.objectType&&i.samplingFrequencyIndex===n.samplingFrequencyIndex&&i.channelConfiguration===n.channelConfiguration:!1}_createDemuxer(e){return new Kn(e)}get name(){return"ADTS"}get mimeType(){return"audio/aac"}},Pu=new Zn,Du=new Jn,Iu=new Ai,Fu=new es,Bu=new ts,Ru=new rs,Ou=new is,Nu=new ss,Mu=new ns,os=[Pu,Du,Iu,Fu,Ru,Ou,Mu,Bu,Nu];var $t=class{constructor(){this._disposed=!1,this._sizePromise=null,this.onread=null}async getSizeOrNull(){if(this._disposed)throw new re;return this._sizePromise??=Promise.resolve(this._retrieveSize())}async getSize(){if(this._disposed)throw new re;let e=await this.getSizeOrNull();if(e===null)throw new Error("Cannot determine the size of an unsized source.");return e}};var vi=class extends $t{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&&(!ui(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 as({maxCacheSize:r.maxCacheSize??8*2**20,maxWorkerCount:4,runWorker:this._runWorker.bind(this),prefetchProfile:zu.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&&!pt()?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:n}=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+n.length),this._orchestrator.supplyWorkerData(e,n)}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()}},Uu=.5*2**20,Pd=((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 n=null;try{typeof window<"u"&&typeof window.location<"u"&&(n=new URL(r instanceof Request?r.url:r,window.location.href).origin)}catch{}if((typeof navigator<"u"&&typeof navigator.onLine=="boolean"?navigator.onLine:!0)&&n!==null&&n!==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)}),_i=class extends $t{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&&(!ui(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??Pd,this._orchestrator=new as({maxCacheSize:r.maxCacheSize??64*2**20,maxWorkerCount:2,runWorker:this._runWorker.bind(this),prefetchProfile:zu.network})}async _retrieveSize(){let e=new AbortController,r=await Gs(this._options.fetchFn??fetch,this._url,Ws(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,n;if(r.status===206)n=this._getTotalLengthFromRangeResponse(r),i=this._orchestrator.createWorker(0,Math.min(n,Uu));else{let s=r.headers.get("Content-Length");if(s)n=Number(s),i=this._orchestrator.createWorker(0,n),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=n,this._existingResponses.set(i,{response:r,abortController:e}),this._orchestrator.runWorker(i),n}_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,n=r?.response;if(i||(i=new AbortController,n=await Gs(this._options.fetchFn??fetch,this._url,Ws(this._options.requestInit??{},{headers:{Range:`bytes=${e.currentPos}-`},signal:i.signal}),this._getRetryDelay,()=>this._disposed)),h(n),!n.ok)throw new Error(`Error fetching ${String(this._url)}: ${n.status} ${n.statusText}`);if(e.currentPos>0&&n.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(!n.body)throw new Error("Missing HTTP response body stream. The used fetch function must provide the response body as a ReadableStream.");let s=n.body.getReader();for(;;){if(e.currentPos>=e.targetPos||e.aborted){i.abort(),e.running=!1;return}let o;try{o=await s.read()}catch(u){if(this._disposed)throw u;let l=this._getRetryDelay(1,u,this._url);if(l!==null){console.error("Error while reading response stream. Attempting to resume.",u),await new Promise(d=>setTimeout(d,1e3*l));break}else throw u}if(e.aborted)continue;let{done:a,value:c}=o;if(a){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 n=/\/(\d+)/.exec(r);if(n)return Number(n[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 zu={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 n of r){let o=Math.max((n.startPos+n.targetPos)/2,n.targetPos-8388608);if(wn(t,e,o,n.targetPos)){let a=n.targetPos-n.startPos,c=Math.ceil((a+1)/8388608)*8388608,u=2**Math.ceil(Math.log2(a+1)),l=Math.min(u,c);e=Math.max(e,n.startPos+l)}}return e=Math.max(e,t+Uu),{start:t,end:e}}},as=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){h(this.fileSize!==null);let i=this.options.prefetchProfile(e,r,this.workers),n=Math.max(i.start,0),s=Math.min(i.end,this.fileSize);h(n<=e&&r<=s);let o=null,a=U(this.cache,e,x=>x.start),c=a!==-1?this.cache[a]:null;c&&c.start<=e&&r<=c.end&&(c.age=this.nextAge++,o={bytes:c.bytes,view:c.view,offset:c.start});let u=U(this.cache,n,x=>x.start),l=o?null:new Uint8Array(r-e),d=0,f=n,m=[];if(u!==-1){for(let x=u;x<this.cache.length;x++){let y=this.cache[x];if(y.start>=s)break;if(y.end<=n)continue;let T=Math.max(n,y.start),E=Math.min(s,y.end);if(h(T<=E),f<T&&m.push({start:f,end:T}),f=E,l){let S=Math.max(e,y.start),P=Math.min(r,y.end);if(S<P){let v=S-e;l.set(y.bytes.subarray(S-y.start,P-y.start),v),v===d&&(d=P-e)}}y.age=this.nextAge++}f<s&&m.push({start:f,end:s})}else m.push({start:n,end:s});if(l&&d>=l.length&&(o={bytes:l,view:V(l),offset:e}),m.length===0)return h(o),o;let{promise:p,resolve:g,reject:b}=ce(),w=[];for(let x of m){let y=Math.max(e,x.start),T=Math.min(r,x.end);y===x.start&&T===x.end?w.push(x):y<T&&w.push({start:y,end:T})}for(let x of m){let y=l&&{start:e,bytes:l,holes:w,resolve:g,reject:b},T=!1;for(let E of this.workers)if(wn(x.start-131072,x.start,E.currentPos,E.targetPos)){E.targetPos=Math.max(E.targetPos,x.end),T=!0,y&&!E.pendingSlices.includes(y)&&E.pendingSlices.push(y),E.running||this.runWorker(E);break}if(!T){let E=this.createWorker(x.start,x.end);y&&(E.pendingSlices=[y]),this.runWorker(E)}}return o||(h(l),o=p.then(x=>({bytes:x,view:V(x),offset:e}))),o}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 n=0,s=this.workers[0];for(let o=1;o<this.workers.length;o++){let a=this.workers[o];a.age<s.age&&(n=o,s=a)}if(s.running&&s.pendingSlices.length>0)break;s.aborted=!0,this.workers.splice(n,1)}return i}runWorker(e){h(!e.running),h(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){h(!e.aborted);let i=e.currentPos,n=i+r.length;this.insertIntoCache({start:i,end:n,bytes:r,view:V(r),age:this.nextAge++}),e.currentPos+=r.length,e.targetPos=Math.max(e.targetPos,e.currentPos);for(let s=0;s<e.pendingSlices.length;s++){let o=e.pendingSlices[s],a=Math.max(i,o.start),c=Math.min(n,o.start+o.bytes.length);a<c&&o.bytes.set(r.subarray(a-i,c-i),a-o.start);for(let u=0;u<o.holes.length;u++){let l=o.holes[u];i<=l.start&&n>l.start&&(l.start=n),l.end<=l.start&&(o.holes.splice(u,1),u--)}o.holes.length===0&&(o.resolve(o.bytes),e.pendingSlices.splice(s,1),s--)}for(let s=0;s<this.workers.length;s++){let o=this.workers[s];e===o||o.running||wn(i,n,o.currentPos,o.targetPos)&&(this.workers.splice(s,1),s--)}}forgetWorker(e){let r=this.workers.indexOf(e);h(r!==-1),this.workers.splice(r,1)}insertIntoCache(e){if(this.options.maxCacheSize===0)return;let r=U(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 n=new Uint8Array(e.end-i.start);n.set(i.bytes,0),n.set(e.bytes,e.start-i.start),this.currentCacheSize+=e.end-i.end,i.bytes=n,i.view=V(n),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 n=this.cache[i];if(e.end<=n.start)break;if(e.end>=n.end){this.cache.splice(i,1),this.currentCacheSize-=n.bytes.length,i--;continue}let s=new Uint8Array(n.end-e.start);s.set(e.bytes,0),s.set(n.bytes,n.start-e.start),this.currentCacheSize-=e.end-n.start,e.bytes=s,e.view=V(s),e.end=n.end,this.cache.splice(i,1);break}for(;this.currentCacheSize>this.options.maxCacheSize;){let i=0,n=this.cache[0];for(let s=1;s<this.cache.length;s++){let o=this.cache[s];o.age<n.age&&(i=s,n=o)}if(this.currentCacheSize-n.bytes.length<=this.options.maxCacheSize)break;this.cache.splice(i,1),this.currentCacheSize-=n.bytes.length}}dispose(){for(let e of this.workers)e.aborted=!0;this.workers.length=0,this.cache.length=0,this.disposed=!0}};xn();var Fr=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 ve)))throw new TypeError("options.formats must be an array of InputFormat.");if(!(e.source instanceof $t))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 cs(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(),h(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()}},re=class extends Error{constructor(e="Input has been disposed."){super(e),this.name="InputDisposedError"}};var cs=class{constructor(e){this.source=e}requestSlice(e,r){if(this.source._disposed)throw new re;if(this.fileSize!==null&&e+r>this.fileSize)return null;let i=e+r,n=this.source._read(e,i);return n instanceof Promise?n.then(s=>s?new Tr(s.bytes,s.view,s.offset,e,i):null):n?new Tr(n.bytes,n.view,n.offset,e,i):null}requestSliceRange(e,r,i){if(this.source._disposed)throw new re;if(this.fileSize!==null)return this.requestSlice(e,ee(this.fileSize-e,r,i));{let n=this.requestSlice(e,i),s=o=>{if(o)return o;let a=u=>(h(u!==null),this.requestSlice(e,ee(u-e,r,i))),c=this.source._retrieveSize();return c instanceof Promise?c.then(a):a(c)};return n instanceof Promise?n.then(s):s(n)}}},Tr=class t{constructor(e,r,i,n,s){this.bytes=e,this.view=r,this.offset=i,this.start=n,this.end=s,this.bufferPos=n-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)}},ye=(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.`)},I=(t,e)=>{ye(t,e);let r=t.bytes.subarray(t.bufferPos,t.bufferPos+e);return t.bufferPos+=e,r},D=t=>(ye(t,1),t.view.getUint8(t.bufferPos++)),Pr=(t,e)=>{ye(t,2);let r=t.view.getUint16(t.bufferPos,e);return t.bufferPos+=2,r},ne=t=>{ye(t,2);let e=t.view.getUint16(t.bufferPos,!1);return t.bufferPos+=2,e},wt=t=>{ye(t,3);let e=Bt(t.view,t.bufferPos,!1);return t.bufferPos+=3,e},xi=t=>{ye(t,2);let e=t.view.getInt16(t.bufferPos,!1);return t.bufferPos+=2,e},ut=(t,e)=>{ye(t,4);let r=t.view.getUint32(t.bufferPos,e);return t.bufferPos+=4,r},A=t=>{ye(t,4);let e=t.view.getUint32(t.bufferPos,!1);return t.bufferPos+=4,e},Gt=t=>{ye(t,4);let e=t.view.getUint32(t.bufferPos,!0);return t.bufferPos+=4,e},st=t=>{ye(t,4);let e=t.view.getInt32(t.bufferPos,!1);return t.bufferPos+=4,e},Dd=t=>{ye(t,4);let e=t.view.getInt32(t.bufferPos,!0);return t.bufferPos+=4,e},So=(t,e)=>{let r,i;return e?(r=ut(t,!0),i=ut(t,!0)):(i=ut(t,!1),r=ut(t,!1)),i*4294967296+r},ke=t=>{let e=A(t),r=A(t);return e*4294967296+r},iu=t=>{let e=st(t),r=A(t);return e*4294967296+r},yu=t=>{let e=Gt(t);return Dd(t)*4294967296+e},su=t=>{ye(t,4);let e=t.view.getFloat32(t.bufferPos,!1);return t.bufferPos+=4,e},Un=t=>{ye(t,8);let e=t.view.getFloat64(t.bufferPos,!1);return t.bufferPos+=8,e},j=(t,e)=>{ye(t,e);let r="";for(let i=0;i<e;i++)r+=String.fromCharCode(t.bytes[t.bufferPos++]);return r};var vo=/<(?:(\d{2}):)?(\d{2}):(\d{2}).(\d{3})>/g;var Vu=t=>{let e=Math.floor(t/36e5),r=Math.floor(t%(3600*1e3)/(60*1e3)),i=Math.floor(t%(60*1e3)/1e3),n=t%1e3;return e.toString().padStart(2,"0")+":"+r.toString().padStart(2,"0")+":"+i.toString().padStart(2,"0")+"."+n.toString().padStart(3,"0")};var Pi=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 s of e.children)s&&this.writeBox(s);let i=this.writer.getPos(),n=e.size??i-r;this.writer.seek(r),this.writeBoxHeader(e,n),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);h(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}}},z=new Uint8Array(8),Ge=new DataView(z.buffer),$=t=>[(t%256+256)%256],R=t=>(Ge.setUint16(0,t,!1),[z[0],z[1]]),Hu=t=>(Ge.setInt16(0,t,!1),[z[0],z[1]]),Wu=t=>(Ge.setUint32(0,t,!1),[z[1],z[2],z[3]]),C=t=>(Ge.setUint32(0,t,!1),[z[0],z[1],z[2],z[3]]),kt=t=>(Ge.setInt32(0,t,!1),[z[0],z[1],z[2],z[3]]),Qt=t=>(Ge.setUint32(0,Math.floor(t/2**32),!1),Ge.setUint32(4,t,!1),[z[0],z[1],z[2],z[3],z[4],z[5],z[6],z[7]]),Gu=t=>(Ge.setInt16(0,2**8*t,!1),[z[0],z[1]]),lt=t=>(Ge.setInt32(0,2**16*t,!1),[z[0],z[1],z[2],z[3]]),_o=t=>(Ge.setInt32(0,2**30*t,!1),[z[0],z[1],z[2],z[3]]),Po=(t,e)=>{let r=[],i=t;do{let n=i&127;i>>=7,r.length>0&&(n|=128),r.push(n),e!==void 0&&e--}while(i>0||e);return r.reverse()},fe=(t,e=!1)=>{let r=Array(t.length).fill(null).map((i,n)=>t.charCodeAt(n));return e&&r.push(0),r},Io=t=>{let e=null;for(let r of t)(!e||r.timestamp>e.timestamp)&&(e=r);return e},ju=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]},$u=ju(0),Qu=t=>[lt(t[0]),lt(t[1]),_o(t[2]),lt(t[3]),lt(t[4]),_o(t[5]),lt(t[6]),lt(t[7]),_o(t[8])],O=(t,e,r)=>({type:t,contents:e&&new Uint8Array(e.flat(10)),children:r}),q=(t,e,r,i,n)=>O(t,[$(e),Wu(r),i??[]],n),Xu=t=>t.isQuickTime?O("ftyp",[fe("qt "),C(512),fe("qt ")]):t.fragmented?O("ftyp",[fe("iso5"),C(512),fe("iso5"),fe("iso6"),fe("mp41")]):O("ftyp",[fe("isom"),C(512),fe("isom"),t.holdsAvc?fe("avc1"):[],fe("mp41")]),Di=t=>({type:"mdat",largeSize:t}),Ku=t=>({type:"free",size:t}),Br=t=>O("moov",void 0,[Id(t.creationTime,t.trackDatas),...t.trackDatas.map(e=>Fd(e,t.creationTime)),t.isFragmented?hf(t.trackDatas):null,Sf(t)]),Id=(t,e)=>{let r=se(Math.max(0,...e.filter(o=>o.samples.length>0).map(o=>{let a=Io(o.samples);return a.timestamp+a.duration})),us),i=Math.max(0,...e.map(o=>o.track.id))+1,n=!_t(t)||!_t(r),s=n?Qt:C;return q("mvhd",+n,0,[s(t),s(t),C(us),s(r),lt(1),Gu(1),Array(10).fill(0),Qu($u),Array(24).fill(0),C(i)])},Fd=(t,e)=>{let r=sl(t);return O("trak",void 0,[Bd(t,e),Rd(t,e),r.name!==void 0?O("udta",void 0,[O("name",[...we.encode(r.name)])]):null])},Bd=(t,e)=>{let r=Io(t.samples),i=se(r?r.timestamp+r.duration:0,us),n=!_t(e)||!_t(i),s=n?Qt:C,o;if(t.type==="video"){let c=t.track.metadata.rotation;o=ju(c??0)}else o=$u;let a=2;return t.track.metadata.disposition?.default!==!1&&(a|=1),q("tkhd",+n,a,[s(e),s(e),C(t.track.id),C(0),s(i),Array(8).fill(0),R(0),R(t.track.id),Gu(t.type==="audio"?1:0),R(0),Qu(o),lt(t.type==="video"?t.info.width:0),lt(t.type==="video"?t.info.height:0)])},Rd=(t,e)=>O("mdia",void 0,[Od(t,e),Fo(!0,Nd[t.type],Md[t.type]),Ud(t)]),Od=(t,e)=>{let r=Io(t.samples),i=se(r?r.timestamp+r.duration:0,t.timescale),n=!_t(e)||!_t(i),s=n?Qt:C;return q("mdhd",+n,0,[s(e),s(e),C(t.timescale),s(i),R(nl(t.track.metadata.languageCode??Z)),R(0)])},Nd={video:"vide",audio:"soun",subtitle:"text"},Md={video:"MediabunnyVideoHandler",audio:"MediabunnySoundHandler",subtitle:"MediabunnyTextHandler"},Fo=(t,e,r,i="\0\0\0\0")=>q("hdlr",0,0,[t?fe("mhlr"):C(0),fe(e),fe(i),C(0),C(0),fe(r,!0)]),Ud=t=>O("minf",void 0,[qd[t.type](),Hd(),jd(t)]),zd=()=>q("vmhd",0,1,[R(0),R(0),R(0),R(0)]),Vd=()=>q("smhd",0,0,[R(0),R(0)]),Ld=()=>q("nmhd",0,0),qd={video:zd,audio:Vd,subtitle:Ld},Hd=()=>O("dinf",void 0,[Wd()]),Wd=()=>q("dref",0,0,[C(1)],[Gd()]),Gd=()=>q("url ",0,1),jd=t=>{let e=t.compositionTimeOffsetTable.length>1||t.compositionTimeOffsetTable.some(r=>r.sampleCompositionTimeOffset!==0);return O("stbl",void 0,[$d(t),af(t),e?ff(t):null,e?mf(t):null,uf(t),lf(t),df(t),cf(t)])},$d=t=>{let e;if(t.type==="video")e=Qd(vf(t.track.source._codec,t.info.decoderConfig.codec),t);else if(t.type==="audio"){let r=il(t.track.source._codec,t.muxer.isQuickTime);h(r),e=Jd(r,t)}else t.type==="subtitle"&&(e=sf(Df[t.track.source._codec],t));return h(e),q("stsd",0,0,[C(1)],[e])},Qd=(t,e)=>O(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),Hu(65535)],[_f[e.track.source._codec](e),sc(e.info.decoderConfig.colorSpace)?Xd(e):null]),Xd=t=>O("colr",[fe("nclx"),R(Pt[t.info.decoderConfig.colorSpace.primaries]),R(Dt[t.info.decoderConfig.colorSpace.transfer]),R(It[t.info.decoderConfig.colorSpace.matrix]),$((t.info.decoderConfig.colorSpace.fullRange?1:0)<<7)]),Kd=t=>t.info.decoderConfig&&O("avcC",[...J(t.info.decoderConfig.description)]),Yd=t=>t.info.decoderConfig&&O("hvcC",[...J(t.info.decoderConfig.description)]),Lu=t=>{if(!t.info.decoderConfig)return null;let e=t.info.decoderConfig,r=e.codec.split("."),i=Number(r[1]),n=Number(r[2]),s=Number(r[3]),o=r[4]?Number(r[4]):1,a=r[8]?Number(r[8]):Number(e.colorSpace?.fullRange??0),c=(s<<4)+(o<<1)+a,u=r[5]?Number(r[5]):e.colorSpace?.primaries?Pt[e.colorSpace.primaries]:2,l=r[6]?Number(r[6]):e.colorSpace?.transfer?Dt[e.colorSpace.transfer]:2,d=r[7]?Number(r[7]):e.colorSpace?.matrix?It[e.colorSpace.matrix]:2;return q("vpcC",1,0,[$(i),$(n),$(c),$(u),$(l),$(d),R(0)])},Zd=t=>O("av1C",Sc(t.info.decoderConfig.codec)),Jd=(t,e)=>{let r=0,i,n=16;if(Y.includes(e.track.source._codec)){let s=e.track.source._codec,{sampleSize:o}=Te(s);n=8*o,n>16&&(r=1)}return r===0?i=[Array(6).fill(0),R(1),R(r),R(0),C(0),R(e.info.numberOfChannels),R(n),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(n,16)),R(0),R(0),R(e.info.sampleRate<2**16?e.info.sampleRate:0),R(0),C(1),C(n/8),C(e.info.numberOfChannels*n/8),C(2)],O(t,i,[Pf(e.track.source._codec,e.muxer.isQuickTime)?.(e)??null])},Do=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),...Wu(0),...C(0),...C(0)];if(t.info.decoderConfig.description){let i=J(t.info.decoderConfig.description);r=[...r,...$(5),...Po(i.byteLength),...i]}return r=[...R(1),...$(0),...$(4),...Po(r.length),...r,...$(6),...$(1),...$(2)],r=[...$(3),...Po(r.length),...r],q("esds",0,0,r)},Tt=t=>O("wave",void 0,[ef(t),tf(t),O("\0\0\0\0")]),ef=t=>O("frma",[fe(il(t.track.source._codec,t.muxer.isQuickTime))]),tf=t=>{let{littleEndian:e}=Te(t.track.source._codec);return O("enda",[R(+e)])},rf=t=>{let e=t.info.numberOfChannels,r=3840,i=t.info.sampleRate,n=0,s=0,o=new Uint8Array(0),a=t.info.decoderConfig?.description;if(a){h(a.byteLength>=18);let c=J(a),u=Pn(c);e=u.outputChannelCount,r=u.preSkip,i=u.inputSampleRate,n=u.outputGain,s=u.channelMappingFamily,u.channelMappingTable&&(o=u.channelMappingTable)}return O("dOps",[$(0),$(e),R(r),C(i),Hu(n),$(s),...o])},nf=t=>{let e=t.info.decoderConfig?.description;h(e);let r=J(e);return q("dfLa",0,0,[...r.subarray(4)])},He=t=>{let{littleEndian:e,sampleSize:r}=Te(t.track.source._codec),i=+e;return q("pcmC",0,0,[$(i),$(8*r)])},sf=(t,e)=>O(t,[Array(6).fill(0),R(1)],[If[e.track.source._codec](e)]),of=t=>O("vttC",[...we.encode(t.info.config.description)]);var af=t=>q("stts",0,0,[C(t.timeToSampleTable.length),t.timeToSampleTable.map(e=>[C(e.sampleCount),C(e.sampleDelta)])]),cf=t=>{if(t.samples.every(r=>r.type==="key"))return null;let e=[...t.samples.entries()].filter(([,r])=>r.type==="key");return q("stss",0,0,[C(e.length),e.map(([r])=>C(r+1))])},uf=t=>q("stsc",0,0,[C(t.compactlyCodedChunkTable.length),t.compactlyCodedChunkTable.map(e=>[C(e.firstChunk),C(e.samplesPerChunk),C(1)])]),lf=t=>{if(t.type==="audio"&&t.info.requiresPcmTransformation){let{sampleSize:e}=Te(t.track.source._codec);return q("stsz",0,0,[C(e*t.info.numberOfChannels),C(t.samples.reduce((r,i)=>r+se(i.duration,t.timescale),0))])}return q("stsz",0,0,[C(0),C(t.samples.length),t.samples.map(e=>C(e.size))])},df=t=>t.finalizedChunks.length>0&&G(t.finalizedChunks).offset>=2**32?q("co64",0,0,[C(t.finalizedChunks.length),t.finalizedChunks.map(e=>Qt(e.offset))]):q("stco",0,0,[C(t.finalizedChunks.length),t.finalizedChunks.map(e=>C(e.offset))]),ff=t=>q("ctts",1,0,[C(t.compositionTimeOffsetTable.length),t.compositionTimeOffsetTable.map(e=>[C(e.sampleCount),kt(e.sampleCompositionTimeOffset)])]),mf=t=>{let e=1/0,r=-1/0,i=1/0,n=-1/0;h(t.compositionTimeOffsetTable.length>0),h(t.samples.length>0);for(let o=0;o<t.compositionTimeOffsetTable.length;o++){let a=t.compositionTimeOffsetTable[o];e=Math.min(e,a.sampleCompositionTimeOffset),r=Math.max(r,a.sampleCompositionTimeOffset)}for(let o=0;o<t.samples.length;o++){let a=t.samples[o];i=Math.min(i,se(a.timestamp,t.timescale)),n=Math.max(n,se(a.timestamp+a.duration,t.timescale))}let s=Math.max(-e,0);return n>=2**31?null:q("cslg",0,0,[kt(s),kt(e),kt(r),kt(i),kt(n)])},hf=t=>O("mvex",void 0,t.map(pf)),pf=t=>q("trex",0,0,[C(t.track.id),C(1),C(0),C(0),C(0)]),Bo=(t,e)=>O("moof",void 0,[gf(t),...e.map(bf)]),gf=t=>q("mfhd",0,0,[C(t)]),Yu=t=>{let e=0,r=0,i=0,n=0,s=t.type==="delta";return r|=+s,s?e|=1:e|=2,e<<24|r<<16|i<<8|n},bf=t=>O("traf",void 0,[wf(t),xf(t),yf(t)]),wf=t=>{h(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:Yu(r)};return q("tfhd",0,e,[C(t.track.id),C(i.duration),C(i.size),C(i.flags)])},xf=t=>(h(t.currentChunk),q("tfdt",1,0,[Qt(se(t.currentChunk.startTimestamp,t.timescale))])),yf=t=>{h(t.currentChunk);let e=t.currentChunk.samples.map(g=>g.timescaleUnitsToNextSample),r=t.currentChunk.samples.map(g=>g.size),i=t.currentChunk.samples.map(Yu),n=t.currentChunk.samples.map(g=>se(g.timestamp-g.decodeTimestamp,t.timescale)),s=new Set(e),o=new Set(r),a=new Set(i),c=new Set(n),u=a.size===2&&i[0]!==i[1],l=s.size>1,d=o.size>1,f=!u&&a.size>1,m=c.size>1||[...c].some(g=>g!==0),p=0;return p|=1,p|=4*+u,p|=256*+l,p|=512*+d,p|=1024*+f,p|=2048*+m,q("trun",1,p,[C(t.currentChunk.samples.length),C(t.currentChunk.offset-t.currentChunk.moofOffset||0),u?C(i[0]):[],t.currentChunk.samples.map((g,b)=>[l?C(e[b]):[],d?C(r[b]):[],f?C(i[b]):[],m?kt(n[b]):[]])])},Zu=t=>O("mfra",void 0,[...t.map(Tf),kf()]),Tf=(t,e)=>q("tfra",1,0,[C(t.track.id),C(63),C(t.finalizedChunks.length),t.finalizedChunks.map(i=>[Qt(se(i.samples[0].timestamp,t.timescale)),Qt(i.moofOffset),C(e+1),C(1),C(1)])]),kf=()=>q("mfro",0,0,[C(0)]),Ju=()=>O("vtte"),el=(t,e,r,i,n)=>O("vttc",void 0,[n!==null?O("vsid",[kt(n)]):null,r!==null?O("iden",[...we.encode(r)]):null,e!==null?O("ctim",[...we.encode(Vu(e))]):null,i!==null?O("sttg",[...we.encode(i)]):null,O("payl",[...we.encode(t)])]),tl=t=>O("vtta",[...we.encode(t)]),Sf=t=>{let e=[],r=t.format._options.metadataFormat??"auto",i=t.output._metadataTags;if(r==="mdir"||r==="auto"&&!t.isQuickTime){let n=Ef(i);n&&e.push(n)}else if(r==="mdta"){let n=Af(i);n&&e.push(n)}else(r==="udta"||r==="auto"&&t.isQuickTime)&&Cf(e,t.output._metadataTags);return e.length===0?null:O("udta",void 0,e)},Cf=(t,e)=>{for(let{key:r,value:i}of ci(e))switch(r){case"title":t.push(We("\xA9nam",i));break;case"description":t.push(We("\xA9des",i));break;case"artist":t.push(We("\xA9ART",i));break;case"album":t.push(We("\xA9alb",i));break;case"albumArtist":t.push(We("albr",i));break;case"genre":t.push(We("\xA9gen",i));break;case"date":t.push(We("\xA9day",i.toISOString().slice(0,10)));break;case"comment":t.push(We("\xA9cmt",i));break;case"lyrics":t.push(We("\xA9lyr",i));break;case"raw":break;case"discNumber":case"discsTotal":case"trackNumber":case"tracksTotal":case"images":break;default:ue(r)}if(e.raw)for(let r in e.raw){let i=e.raw[r];i==null||r.length!==4||t.some(n=>n.type===r)||(typeof i=="string"?t.push(We(r,i)):i instanceof Uint8Array&&t.push(O(r,Array.from(i))))}},We=(t,e)=>{let r=we.encode(e);return O(t,[R(r.length),R(nl("und")),Array.from(r)])},qu={"image/jpeg":13,"image/png":14,"image/bmp":27},rl=(t,e)=>{let r=[];for(let{key:i,value:n}of ci(t))switch(i){case"title":r.push({key:e?"title":"\xA9nam",value:Oe(n)});break;case"description":r.push({key:e?"description":"\xA9des",value:Oe(n)});break;case"artist":r.push({key:e?"artist":"\xA9ART",value:Oe(n)});break;case"album":r.push({key:e?"album":"\xA9alb",value:Oe(n)});break;case"albumArtist":r.push({key:e?"album_artist":"aART",value:Oe(n)});break;case"comment":r.push({key:e?"comment":"\xA9cmt",value:Oe(n)});break;case"genre":r.push({key:e?"genre":"\xA9gen",value:Oe(n)});break;case"lyrics":r.push({key:e?"lyrics":"\xA9lyr",value:Oe(n)});break;case"date":r.push({key:e?"date":"\xA9day",value:Oe(n.toISOString().slice(0,10))});break;case"images":for(let s of n)s.kind==="coverFront"&&r.push({key:"covr",value:O("data",[C(qu[s.mimeType]??0),C(0),Array.from(s.data)])});break;case"trackNumber":if(e){let s=t.tracksTotal!==void 0?`${n}/${t.tracksTotal}`:n.toString();r.push({key:"track",value:Oe(s)})}else r.push({key:"trkn",value:O("data",[C(0),C(0),R(0),R(n),R(t.tracksTotal??0),R(0)])});break;case"discNumber":e||r.push({key:"disc",value:O("data",[C(0),C(0),R(0),R(n),R(t.discsTotal??0),R(0)])});break;case"tracksTotal":case"discsTotal":break;case"raw":break;default:ue(i)}if(t.raw)for(let i in t.raw){let n=t.raw[i];n==null||!e&&i.length!==4||r.some(s=>s.key===i)||(typeof n=="string"?r.push({key:i,value:Oe(n)}):n instanceof Uint8Array?r.push({key:i,value:O("data",[C(0),C(0),Array.from(n)])}):n instanceof Pe&&r.push({key:i,value:O("data",[C(qu[n.mimeType]??0),C(0),Array.from(n.data)])}))}return r},Ef=t=>{let e=rl(t,!1);return e.length===0?null:q("meta",0,0,void 0,[Fo(!1,"mdir","","appl"),O("ilst",void 0,e.map(r=>O(r.key,void 0,[r.value])))])},Af=t=>{let e=rl(t,!0);return e.length===0?null:O("meta",void 0,[Fo(!1,"mdta",""),q("keys",0,0,[C(e.length)],e.map(r=>O("mdta",[...we.encode(r.key)]))),O("ilst",void 0,e.map((r,i)=>{let n=String.fromCharCode(...C(i+1));return O(n,void 0,[r.value])}))])},Oe=t=>O("data",[C(1),C(0),...we.encode(t)]),vf=(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"}},_f={avc:Kd,hevc:Yd,vp8:Lu,vp9:Lu,av1:Zd},il=(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"}},Pf=(t,e)=>{switch(t){case"aac":return Do;case"mp3":return Do;case"opus":return rf;case"vorbis":return Do;case"flac":return nf}if(e)switch(t){case"pcm-s24":return Tt;case"pcm-s24be":return Tt;case"pcm-s32":return Tt;case"pcm-s32be":return Tt;case"pcm-f32":return Tt;case"pcm-f32be":return Tt;case"pcm-f64":return Tt;case"pcm-f64be":return Tt}else switch(t){case"pcm-s16":return He;case"pcm-s16be":return He;case"pcm-s24":return He;case"pcm-s24be":return He;case"pcm-s32":return He;case"pcm-s32be":return He;case"pcm-f32":return He;case"pcm-f32be":return He;case"pcm-f64":return He;case"pcm-f64be":return He}return null},Df={webvtt:"wvtt"},If={webvtt:of},nl=t=>{h(t.length===3);let e=0;for(let r=0;r<3;r++)e<<=5,e+=t.charCodeAt(r)-96;return e};var ls=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,n=this.trackedWrites.byteLength;for(;n<i;)n*=2;if(n!==this.trackedWrites.byteLength){let s=new Uint8Array(n);s.set(this.trackedWrites,0),this.trackedWrites=s}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}},Ro=2**16,Oo=2**32,Rr=class extends ls{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(Ro,{maxByteLength:Oo})}catch{this.buffer=new ArrayBuffer(Ro),this.supportsResize=!1}else this.buffer=new ArrayBuffer(Ro);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>Oo)throw new Error(`ArrayBuffer exceeded maximum size of ${Oo} bytes. Please consider using another target.`);if(this.supportsResize)this.buffer.resize(r);else{let i=new ArrayBuffer(r),n=new Uint8Array(i);n.set(this.bytes,0),this.buffer=i,this.bytes=n}}}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)}},Ff=2**24,Bf=2,ds=class extends ls{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??Ff}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(h(this.writer),this.sections.length===0)return;let e=[],r=[...this.sections].sort((i,n)=>i.start-n.start);e.push({start:r[0].start,size:r[0].data.byteLength});for(let i=1;i<r.length;i++){let n=e[e.length-1],s=r[i];s.start<=n.start+n.size?n.size=Math.max(n.size,s.start+s.data.byteLength-n.start):e.push({start:s.start,size:s.data.byteLength})}for(let i of e){i.data=new Uint8Array(i.size);for(let n of this.sections)i.start<=n.start&&n.start<i.start+i.size&&i.data.set(n.data,n.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 n=this.chunks[i],s=r-n.start,o=e.subarray(0,Math.min(this.chunkSize-s,e.byteLength));n.data.set(o,s);let a={start:s,end:s+o.byteLength};if(this.insertSectionIntoChunk(n,a),n.written[0].start===0&&n.written[0].end===this.chunkSize&&(n.shouldFlush=!0),this.chunks.length>Bf){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),r+o.byteLength)}insertSectionIntoChunk(e,r){let i=0,n=e.written.length-1,s=-1;for(;i<=n;){let o=Math.floor(i+(n-i+1)/2);e.written[o].start<=r.start?(i=o+1,s=o):n=o-1}for(e.written.splice(s+1,0,r),(s===-1||e.written[s].end<r.start)&&s++;s<e.written.length-1&&e.written[s].end>=e.written[s+1].start;)e.written[s].end=Math.max(e.written[s].end,e.written[s+1].end),e.written.splice(s+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((n,s)=>n.start-s.start),this.chunks.indexOf(i)}tryToFlushChunks(e=!1){h(this.writer);for(let r=0;r<this.chunks.length;r++){let i=this.chunks[r];if(!(!i.shouldFlush&&!e)){for(let n of i.written){let s=i.start+n.start;if(this.ensureMonotonicity&&s!==this.lastFlushEnd)throw new Error("Internal error: Monotonicity violation.");this.writer.write({type:"write",data:i.data.subarray(n.start,n.end),position:s}),this.lastFlushEnd=i.start+n.end}this.chunks.splice(r--,1)}}}finalize(){return this.chunked&&this.tryToFlushChunks(!0),h(this.writer),this.writer.close()}async close(){return this.writer?.close()}};var Xt=class{constructor(){this._output=null,this.onwrite=null}},Ii=class extends Xt{constructor(){super(...arguments),this.buffer=null}_createWriter(){return new Rr(this)}},Fi=class extends Xt{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 ds(this)}};var us=1e3,Rf=2082844800,sl=t=>{let e={},r=t.track;return r.metadata.name!==void 0&&(e.name=r.metadata.name),e},se=(t,e,r=!0)=>{let i=t*e;return r?Math.round(i):i},fs=class extends Sn{constructor(e,r){super(e),this.auxTarget=new Ii,this.auxWriter=this.auxTarget._createWriter(),this.auxBoxWriter=new Pi(this.auxWriter),this.mdat=null,this.ftypSize=null,this.trackDatas=[],this.allTracksKnown=ce(),this.creationTime=Math.floor(Date.now()/1e3)+Rf,this.finalizedChunks=[],this.nextFragmentNumber=1,this.maxWrittenTimestamp=-1/0,this.format=r,this.writer=e._writer,this.boxWriter=new Pi(this.writer),this.isQuickTime=r instanceof Or;let i=this.writer instanceof Rr?"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(Xu({isQuickTime:this.isQuickTime,holdsAvc:r,fragmented:this.isFragmented})),this.format._options.onFtyp){let{data:i,start:n}=this.writer.stopTrackingWrites();this.format._options.onFtyp(i,n)}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=Di(!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 Bn({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 n=this.trackDatas.find(u=>u.track===e);if(n)return n;Pc(i),h(i),h(i.decoderConfig);let s={...i.decoderConfig};h(s.codedWidth!==void 0),h(s.codedHeight!==void 0);let o=!1;if(e.source._codec==="avc"&&!s.description){let u=En(r.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.");s.description=Oc(u),o=!0}else if(e.source._codec==="hevc"&&!s.description){let u=An(r.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.");s.description=Mc(u),o=!0}let a=fc(1/(e.metadata.frameRate??57600),1e6).denominator,c={muxer:this,track:e,type:"video",info:{width:s.codedWidth,height:s.codedHeight,decoderConfig:s,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,r){let i=this.trackDatas.find(s=>s.track===e);if(i)return i;Dc(r),h(r),h(r.decoderConfig);let n={muxer:this,track:e,type:"audio",info:{numberOfChannels:r.decoderConfig.numberOfChannels,sampleRate:r.decoderConfig.sampleRate,decoderConfig:r.decoderConfig,requiresPcmTransformation:!this.isFragmented&&Y.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(n),this.trackDatas.sort((s,o)=>s.track.id-o.track.id),this.allTracksAreKnown()&&this.allTracksKnown.resolve(),n}getSubtitleTrackData(e,r){let i=this.trackDatas.find(s=>s.track===e);if(i)return i;Ic(r),h(r),h(r.config);let n={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(n),this.trackDatas.sort((s,o)=>s.track.id-o.track.id),this.allTracksAreKnown()&&this.allTracksKnown.resolve(),n}async addEncodedVideoPacket(e,r,i){let n=await this.mutex.acquire();try{let s=this.getVideoTrackData(e,r,i),o=r.data;if(s.info.requiresAnnexBTransformation){let u=mr(o);if(u.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.");o=Xs(u,4)}let a=this.validateAndNormalizeTimestamp(s.track,r.timestamp,r.type==="key"),c=this.createSampleForTrack(s,o,a,r.duration,r.type);await this.registerSample(s,c)}finally{n()}}async addEncodedAudioPacket(e,r,i){let n=await this.mutex.acquire();try{let s=this.getAudioTrackData(e,i),o=this.validateAndNormalizeTimestamp(s.track,r.timestamp,r.type==="key"),a=this.createSampleForTrack(s,r.data,o,r.duration,r.type);s.info.requiresPcmTransformation&&await this.maybePadWithSilence(s,o),await this.registerSample(s,a)}finally{n()}}async maybePadWithSilence(e,r){let i=G(e.samples),n=i?i.timestamp+i.duration:0,s=r-n,o=se(s,e.timescale);if(o>0){let{sampleSize:a,silentValue:c}=Te(e.info.decoderConfig.codec),u=o*e.info.numberOfChannels,l=new Uint8Array(a*u).fill(c),d=this.createSampleForTrack(e,new Uint8Array(l.buffer),n,s,"key");await this.registerSample(e,d)}}async addSubtitleCue(e,r,i){let n=await this.mutex.acquire();try{let s=this.getSubtitleTrackData(e,i);this.validateAndNormalizeTimestamp(s.track,r.timestamp,!0),e.source._codec==="webvtt"&&(s.cueQueue.push(r),await this.processWebVTTCues(s,r.timestamp))}finally{n()}}async processWebVTTCues(e,r){for(;e.cueQueue.length>0;){let i=new Set([]);for(let u of e.cueQueue)h(u.timestamp<=r),h(e.lastCueEndTimestamp<=u.timestamp+u.duration),i.add(Math.max(u.timestamp,e.lastCueEndTimestamp)),i.add(u.timestamp+u.duration);let n=[...i].sort((u,l)=>u-l),s=n[0],o=n[1]??s;if(r<o)break;if(e.lastCueEndTimestamp<s){this.auxWriter.seek(0);let u=Ju();this.auxBoxWriter.writeBox(u);let l=this.auxWriter.getSlice(0,this.auxWriter.getPos()),d=this.createSampleForTrack(e,l,e.lastCueEndTimestamp,s-e.lastCueEndTimestamp,"key");await this.registerSample(e,d),e.lastCueEndTimestamp=s}this.auxWriter.seek(0);for(let u=0;u<e.cueQueue.length;u++){let l=e.cueQueue[u];if(l.timestamp>=o)break;vo.lastIndex=0;let d=vo.test(l.text),f=l.timestamp+l.duration,m=e.cueToSourceId.get(l);if(m===void 0&&o<f&&(m=e.nextSourceId++,e.cueToSourceId.set(l,m)),l.notes){let g=tl(l.notes);this.auxBoxWriter.writeBox(g)}let p=el(l.text,d?s:null,l.identifier??null,l.settings??null,m??null);this.auxBoxWriter.writeBox(p),f===o&&e.cueQueue.splice(u--,1)}let a=this.auxWriter.getSlice(0,this.auxWriter.getPos()),c=this.createSampleForTrack(e,a,s,o-s,"key");await this.registerSample(e,c),e.lastCueEndTimestamp=o}}createSampleForTrack(e,r,i,n,s){return{timestamp:i,decodeTimestamp:i,duration:n,data:r,size:r.byteLength,type:s,timescaleUnitsToNextSample:se(n,e.timescale)}}processTimestamps(e,r){if(e.timestampProcessingQueue.length===0)return;if(e.type==="audio"&&e.info.requiresPcmTransformation){let n=0;for(let s=0;s<e.timestampProcessingQueue.length;s++){let o=e.timestampProcessingQueue[s],a=se(o.duration,e.timescale);n+=a}if(e.timeToSampleTable.length===0)e.timeToSampleTable.push({sampleCount:n,sampleDelta:1});else{let s=G(e.timeToSampleTable);s.sampleCount+=n}e.timestampProcessingQueue.length=0;return}let i=e.timestampProcessingQueue.map(n=>n.timestamp).sort((n,s)=>n-s);for(let n=0;n<e.timestampProcessingQueue.length;n++){let s=e.timestampProcessingQueue[n];s.decodeTimestamp=i[n],!this.isFragmented&&e.lastTimescaleUnits===null&&(s.decodeTimestamp=0);let o=se(s.timestamp-s.decodeTimestamp,e.timescale),a=se(s.duration,e.timescale);if(e.lastTimescaleUnits!==null){h(e.lastSample);let c=se(s.decodeTimestamp,e.timescale,!1),u=Math.round(c-e.lastTimescaleUnits);if(h(u>=0),e.lastTimescaleUnits+=u,e.lastSample.timescaleUnitsToNextSample=u,!this.isFragmented){let l=G(e.timeToSampleTable);if(h(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 d=G(e.compositionTimeOffsetTable);h(d),d.sampleCompositionTimeOffset===o?d.sampleCount++:e.compositionTimeOffsetTable.push({sampleCount:1,sampleCompositionTimeOffset:o})}}else e.lastTimescaleUnits=se(s.decodeTimestamp,e.timescale,!1),this.isFragmented||(e.timeToSampleTable.push({sampleCount:1,sampleDelta:a}),e.compositionTimeOffsetTable.push({sampleCount:1,sampleCompositionTimeOffset:o}));e.lastSample=s}if(e.timestampProcessingQueue.length=0,h(e.lastSample),h(e.lastTimescaleUnits!==null),r!==void 0&&e.lastSample.timescaleUnitsToNextSample===0){h(r.type==="key");let n=se(r.timestamp,e.timescale,!1),s=Math.round(n-e.lastTimescaleUnits);e.lastSample.timescaleUnitsToNextSample=s}}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 n=e.track.metadata.maximumPacketCount;if(h(n!==void 0),e.samples.length>n)throw new Error(`Track #${e.track.id} has already reached the maximum packet count (${n}). 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 n=r.timestamp-e.currentChunk.startTimestamp;if(this.isFragmented){let s=this.trackDatas.every(o=>{if(e===o)return r.type==="key";let a=o.sampleQueue[0];return a?a.type==="key":o.track.source._closed});n>=this.minimumFragmentDuration&&s&&r.timestamp>this.maxWrittenTimestamp&&(i=!0,await this.finalizeFragment())}else i=n>=.5}i&&(e.currentChunk&&await this.finalizeCurrentChunk(e),e.currentChunk={startTimestamp:r.timestamp,samples:[],offset:null,moofOffset:null}),h(e.currentChunk),e.currentChunk.samples.push(r),this.isFragmented&&(this.maxWrittenTimestamp=Math.max(this.maxWrittenTimestamp,r.timestamp))}async finalizeCurrentChunk(e){if(h(!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,n)=>i+se(n.duration,e.timescale),0)),(e.compactlyCodedChunkTable.length===0||G(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)h(i.data),this.writer.write(i.data),i.data=null;await this.writer.flush()}async interleaveSamples(e=!1){if(h(this.isFragmented),!(!e&&!this.allTracksAreKnown()))e:for(;;){let r=null,i=1/0;for(let s of this.trackDatas){if(!e&&s.sampleQueue.length===0&&!s.track.source._closed)break e;s.sampleQueue.length>0&&s.sampleQueue[0].timestamp<i&&(r=s,i=s.sampleQueue[0].timestamp)}if(!r)break;let n=r.sampleQueue.shift();await this.addSampleToTrack(r,n)}}async finalizeFragment(e=!0){h(this.isFragmented);let r=this.nextFragmentNumber++;if(r===1){this.format._options.onMoov&&this.writer.startTrackingWrites();let m=Br(this);if(this.boxWriter.writeBox(m),this.format._options.onMoov){let{data:p,start:g}=this.writer.stopTrackingWrites();this.format._options.onMoov(p,g)}}let i=this.trackDatas.filter(m=>m.currentChunk),n=Bo(r,i),s=this.writer.getPos(),o=s+this.boxWriter.measureBox(n),a=o+De,c=1/0;for(let m of i){m.currentChunk.offset=a,m.currentChunk.moofOffset=s;for(let p of m.currentChunk.samples)a+=p.size;c=Math.min(c,m.currentChunk.startTimestamp)}let u=a-o,l=u>=2**32;if(l)for(let m of i)m.currentChunk.offset+=it-De;this.format._options.onMoof&&this.writer.startTrackingWrites();let d=Bo(r,i);if(this.boxWriter.writeBox(d),this.format._options.onMoof){let{data:m,start:p}=this.writer.stopTrackingWrites();this.format._options.onMoof(m,p,c)}h(this.writer.getPos()===o),this.format._options.onMdat&&this.writer.startTrackingWrites();let f=Di(l);f.size=u,this.boxWriter.writeBox(f),this.writer.seek(o+(l?it:De));for(let m of i)for(let p of m.currentChunk.samples)this.writer.write(p.data),p.data=null;if(this.format._options.onMdat){let{data:m,start:p}=this.writer.stopTrackingWrites();this.format._options.onMdat(m,p)}for(let m of i)m.finalizedChunks.push(m.currentChunk),this.finalizedChunks.push(m.currentChunk),m.currentChunk=null;e&&await this.writer.flush()}async registerSampleFastStartReserve(e,r){if(this.allTracksAreKnown()){if(!this.mdat){let i=Br(this),s=this.boxWriter.measureBox(i)+this.computeSampleTableSizeUpperBound()+4096;h(this.ftypSize!==null),this.writer.seek(this.ftypSize+s),this.format._options.onMdat&&this.writer.startTrackingWrites(),this.mdat=Di(!0),this.boxWriter.writeBox(this.mdat);for(let o of this.trackDatas){for(let a of o.sampleQueue)await this.addSampleToTrack(o,a);o.sampleQueue.length=0}}await this.addSampleToTrack(e,r)}else e.sampleQueue.push(r)}computeSampleTableSizeUpperBound(){h(this.fastStart==="reserve");let e=0;for(let r of this.trackDatas){let i=r.track.metadata.maximumPacketCount;h(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(n=>n.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=Di(!1);let r;for(let n=0;n<2;n++){let s=Br(this),o=this.boxWriter.measureBox(s);r=this.boxWriter.measureBox(this.mdat);let a=this.writer.getPos()+o+r;for(let c of this.finalizedChunks){c.offset=a;for(let{data:u}of c.samples)h(u),a+=u.byteLength,r+=u.byteLength}if(a<2**32)break;r>=2**32&&(this.mdat.largeSize=!0)}this.format._options.onMoov&&this.writer.startTrackingWrites();let i=Br(this);if(this.boxWriter.writeBox(i),this.format._options.onMoov){let{data:n,start:s}=this.writer.stopTrackingWrites();this.format._options.onMoov(n,s)}this.format._options.onMdat&&this.writer.startTrackingWrites(),this.mdat.size=r,this.boxWriter.writeBox(this.mdat);for(let n of this.finalizedChunks)for(let s of n.samples)h(s.data),this.writer.write(s.data),s.data=null;if(this.format._options.onMdat){let{data:n,start:s}=this.writer.stopTrackingWrites();this.format._options.onMdat(n,s)}}else if(this.isFragmented){let r=this.writer.getPos(),i=Zu(this.trackDatas);this.boxWriter.writeBox(i);let n=this.writer.getPos()-r;this.writer.seek(this.writer.getPos()-4),this.boxWriter.writeU32(n)}else{h(this.mdat);let r=this.boxWriter.offsets.get(this.mdat);h(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:s,start:o}=this.writer.stopTrackingWrites();this.format._options.onMdat(s,o)}let n=Br(this);if(this.fastStart==="reserve"){h(this.ftypSize!==null),this.writer.seek(this.ftypSize),this.format._options.onMoov&&this.writer.startTrackingWrites(),this.boxWriter.writeBox(n);let s=this.boxWriter.offsets.get(this.mdat)-this.writer.getPos();this.boxWriter.writeBox(Ku(s))}else this.format._options.onMoov&&this.writer.startTrackingWrites(),this.boxWriter.writeBox(n);if(this.format._options.onMoov){let{data:s,start:o}=this.writer.stopTrackingWrites();this.format._options.onMoov(s,o)}}e()}};var Nr=class{getSupportedVideoCodecs(){return this.getSupportedCodecs().filter(e=>qe.includes(e))}getSupportedAudioCodecs(){return this.getSupportedCodecs().filter(e=>et.includes(e))}getSupportedSubtitleCodecs(){return this.getSupportedCodecs().filter(e=>Nt.includes(e))}_codecUnsupportedHint(e){return""}},Bi=class extends Nr{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)}},Mr=class extends Bi{constructor(e){super(e)}get _name(){return"MP4"}get fileExtension(){return".mp4"}get mimeType(){return"video/mp4"}getSupportedCodecs(){return[...qe,...js,"pcm-s16","pcm-s16be","pcm-s24","pcm-s24be","pcm-s32","pcm-s32be","pcm-f32","pcm-f32be","pcm-f64","pcm-f64be",...Nt]}_codecUnsupportedHint(e){return new Or().getSupportedCodecs().includes(e)?" Switching to MOV will grant support for this codec.":""}},Or=class extends Bi{constructor(e){super(e)}get _name(){return"MOV"}get fileExtension(){return".mov"}get mimeType(){return"video/quicktime"}getSupportedCodecs(){return[...qe,...et]}_codecUnsupportedHint(e){return new Mr().getSupportedCodecs().includes(e)?" Switching to MP4 will grant support for this codec.":""}};var ol=t=>{if(!t||typeof t!="object")throw new TypeError("Encoding config must be an object.");if(!qe.includes(t.codec))throw new TypeError(`Invalid video codec '${t.codec}'. Must be one of: ${qe.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.");Of(t.codec,t)},Of=(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&&$s(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.")},al=t=>{let e=t.bitrate instanceof Ur?t.bitrate._toVideoBitrate(t.codec,t.width,t.height):t.bitrate;return{codec:t.fullCodecString??kc(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,...vc(t.codec)}},cl=t=>{if(!t||typeof t!="object")throw new TypeError("Encoding config must be an object.");if(!et.includes(t.codec))throw new TypeError(`Invalid audio codec '${t.codec}'. Must be one of: ${et.join(", ")}.`);if(t.bitrate===void 0&&(!Y.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.");Nf(t.codec,t)},Nf=(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&&$s(e.fullCodecString)!==t)throw new TypeError(`fullCodecString, when provided, must be a string that matches the specified codec (${t}).`)},ul=t=>{let e=t.bitrate instanceof Ur?t.bitrate._toAudioBitrate(t.codec):t.bitrate;return{codec:t.fullCodecString??Cc(t.codec,t.numberOfChannels,t.sampleRate),numberOfChannels:t.numberOfChannels,sampleRate:t.sampleRate,bitrate:e,bitrateMode:t.bitrateMode,..._c(t.codec)}},Ur=class{constructor(e){this._factor=e}_toVideoBitrate(e,r,i){let n=r*i,s={avc:1,hevc:.6,vp9:.6,av1:.4,vp8:1.2},o=1920*1080,a=3e6,c=Math.pow(n/o,.95),d=a*c*s[e]*this._factor;return Math.ceil(d/1e3)*1e3}_toAudioBitrate(e){if(Y.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 n=i*this._factor;return e==="aac"?n=[96e3,128e3,16e4,192e3].reduce((o,a)=>Math.abs(a-n)<Math.abs(o-n)?a:o):e==="opus"||e==="vorbis"?n=Math.max(6e3,n):e==="mp3"&&(n=[8e3,16e3,24e3,32e3,4e4,48e3,64e3,8e4,96e3,112e3,128e3,16e4,192e3,224e3,256e3,32e4].reduce((o,a)=>Math.abs(a-n)<Math.abs(o-n)?a:o)),Math.round(n/1e3)*1e3}};var zr=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)}},Vr=class extends zr{constructor(e){if(super(),this._connectedTrack=null,!qe.includes(e))throw new TypeError(`Invalid video codec '${e}'. Must be one of: ${qe.join(", ")}.`);this._codec=e}};var No=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 ht,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 a=this.encodingConfig.sizeChangeBehavior??"deny";if(a!=="passThrough"){if(a==="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 u=this.resizeCanvas.getContext("2d",{alpha:dr()});h(u),c||(dr()?(u.fillStyle="black",u.fillRect(0,0,this.codedWidth,this.codedHeight)):u.clearRect(0,0,this.codedWidth,this.codedHeight)),e.drawWithFit(u,{fit:a}),r&&e.close(),e=new Ee(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),h(this.encoderInitialized);let n=this.encodingConfig.keyFrameInterval??5,s=Math.floor(e.timestamp/n),o={...i,keyFrame:i?.keyFrame||n===0||s!==this.lastMultipleOfKeyFrameInterval};if(this.lastMultipleOfKeyFrameInterval=s,this.customEncoder){this.customEncoderQueueSize++;let a=e.clone(),c=this.customEncoderCallSerializer.call(()=>this.customEncoder.encode(a,o)).then(()=>this.customEncoderQueueSize--).catch(u=>this.error??=u).finally(()=>{a.close()});this.customEncoderQueueSize>=4&&await c}else{h(this.encoder);let a=e.toVideoFrame();if(!this.alphaEncoder)this.encoder.encode(a,o),a.close();else if(!!a.format&&!a.format.includes("A")||this.splitterCreationFailed)this.alphaFrameQueue.push(null),this.encoder.encode(a,o),a.close();else{let u=a.displayWidth,l=a.displayHeight;if(!this.splitter)try{this.splitter=new Mo(u,l)}catch(d){console.error("Due to an error, only color data will be encoded.",d),this.splitterCreationFailed=!0,this.alphaFrameQueue.push(null),this.encoder.encode(a,o),a.close()}if(this.splitter){let d=this.splitter.extractColor(a),f=this.splitter.extractAlpha(a);this.alphaFrameQueue.push(f),this.encoder.encode(d,o),d.close(),a.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=al({width:e.codedWidth,height:e.codedHeight,...this.encodingConfig,framerate:this.source._connectedTrack?.metadata.frameRate});this.encodingConfig.onEncoderConfig?.(i);let n=Lc.find(s=>s.supports(this.encodingConfig.codec,i));if(n)this.customEncoder=new n,this.customEncoder.codec=this.encodingConfig.codec,this.customEncoder.config=i,this.customEncoder.onPacket=(s,o)=>{if(!(s instanceof L))throw new TypeError("The first argument passed to onPacket must be an EncodedPacket.");if(o!==void 0&&(!o||typeof o!="object"))throw new TypeError("The second argument passed to onPacket must be an object or undefined.");this.encodingConfig.onEncodedPacket?.(s,o),this.muxer.addEncodedVideoPacket(this.source._connectedTrack,s,o).catch(a=>{this.error??=a,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 a=[],c=[],u=0,l=0,d=(f,m,p)=>{let g={};if(m){let w=new Uint8Array(m.byteLength);m.copyTo(w),g.alpha=w}let b=L.fromEncodedChunk(f,g);this.encodingConfig.onEncodedPacket?.(b,p),this.muxer.addEncodedVideoPacket(this.source._connectedTrack,b,p).catch(w=>{this.error??=w,this.errorNeedsNewStack=!1})};this.encoder=new VideoEncoder({output:(f,m)=>{if(!this.alphaEncoder){d(f,null,m);return}let p=this.alphaFrameQueue.shift();h(p!==void 0),p?(this.alphaEncoder.encode(p,{keyFrame:f.type==="key"}),l++,p.close(),a.push({chunk:f,meta:m})):l===0?d(f,null,m):(c.push(u+l),a.push({chunk:f,meta:m}))},error:f=>{f.stack=r.stack,this.error??=f}}),this.encoder.configure(i),this.encodingConfig.alpha==="keep"&&(this.alphaEncoder=new VideoEncoder({output:(f,m)=>{l--;let p=a.shift();for(h(p!==void 0),d(p.chunk,f,p.meta),u++;c.length>0&&c[0]===u;){c.shift();let g=a.shift();h(g!==void 0),d(g.chunk,null,g.meta)}},error:f=>{f.stack=r.stack,this.error??=f}}),this.alphaEncoder.configure(i))}h(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}},Mo=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
|
|
34
|
+
in vec2 a_position;
|
|
35
|
+
in vec2 a_texCoord;
|
|
36
|
+
out vec2 v_texCoord;
|
|
37
|
+
|
|
38
|
+
void main() {
|
|
39
|
+
gl_Position = vec4(a_position, 0.0, 1.0);
|
|
40
|
+
v_texCoord = a_texCoord;
|
|
41
|
+
}
|
|
42
|
+
`)}createColorProgram(){let e=this.createVertexShader(),r=this.createShader(this.gl.FRAGMENT_SHADER,`#version 300 es
|
|
43
|
+
precision highp float;
|
|
44
|
+
|
|
45
|
+
uniform sampler2D u_sourceTexture;
|
|
46
|
+
in vec2 v_texCoord;
|
|
47
|
+
out vec4 fragColor;
|
|
48
|
+
|
|
49
|
+
void main() {
|
|
50
|
+
vec4 source = texture(u_sourceTexture, v_texCoord);
|
|
51
|
+
fragColor = vec4(source.rgb, 1.0);
|
|
52
|
+
}
|
|
53
|
+
`),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
|
|
54
|
+
precision highp float;
|
|
55
|
+
|
|
56
|
+
uniform sampler2D u_sourceTexture;
|
|
57
|
+
uniform vec2 u_resolution; // The width and height of the canvas
|
|
58
|
+
in vec2 v_texCoord;
|
|
59
|
+
out vec4 fragColor;
|
|
60
|
+
|
|
61
|
+
// This function determines the value for a single byte in the YUV stream
|
|
62
|
+
float getByteValue(float byteOffset) {
|
|
63
|
+
float width = u_resolution.x;
|
|
64
|
+
float height = u_resolution.y;
|
|
65
|
+
|
|
66
|
+
float yPlaneSize = width * height;
|
|
67
|
+
|
|
68
|
+
if (byteOffset < yPlaneSize) {
|
|
69
|
+
// This byte is in the luma plane. Find the corresponding pixel coordinates to sample from
|
|
70
|
+
float y = floor(byteOffset / width);
|
|
71
|
+
float x = mod(byteOffset, width);
|
|
72
|
+
|
|
73
|
+
// Add 0.5 to sample the center of the texel
|
|
74
|
+
vec2 sampleCoord = (vec2(x, y) + 0.5) / u_resolution;
|
|
75
|
+
|
|
76
|
+
// The luma value is the alpha from the source texture
|
|
77
|
+
return texture(u_sourceTexture, sampleCoord).a;
|
|
78
|
+
} else {
|
|
79
|
+
// Write a fixed value for chroma and beyond
|
|
80
|
+
return 128.0 / 255.0;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
void main() {
|
|
85
|
+
// Each fragment writes 4 bytes (R, G, B, A)
|
|
86
|
+
float pixelIndex = floor(gl_FragCoord.y) * u_resolution.x + floor(gl_FragCoord.x);
|
|
87
|
+
float baseByteOffset = pixelIndex * 4.0;
|
|
88
|
+
|
|
89
|
+
vec4 result;
|
|
90
|
+
for (int i = 0; i < 4; i++) {
|
|
91
|
+
float currentByteOffset = baseByteOffset + float(i);
|
|
92
|
+
result[i] = getByteValue(currentByteOffset);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
fragColor = result;
|
|
96
|
+
}
|
|
97
|
+
`),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 n=this.gl.getAttribLocation(this.colorProgram,"a_position"),s=this.gl.getAttribLocation(this.colorProgram,"a_texCoord");return this.gl.enableVertexAttribArray(n),this.gl.vertexAttribPointer(n,2,this.gl.FLOAT,!1,16,0),this.gl.enableVertexAttribArray(s),this.gl.vertexAttribPointer(s,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,n=Math.ceil(r/2)*Math.ceil(i/2),s=r*i+n*2,o=Math.ceil(s/(r*4)),a=new Uint8Array(4*r*o);this.gl.readPixels(0,0,r,o,this.gl.RGBA,this.gl.UNSIGNED_BYTE,a),a=a.subarray(0,s),h(a[r*i]===128),h(a[a.length-1]===128);let c={format:"I420",codedWidth:r,codedHeight:i,timestamp:e.timestamp,duration:e.duration??void 0,transfer:[a.buffer]};return new VideoFrame(a,c)}close(){this.gl.getExtension("WEBGL_lose_context")?.loseContext(),this.gl=null}},Ri=class extends Vr{constructor(e){ol(e),super(e.codec),this._encoder=new No(this,e)}add(e,r){if(!(e instanceof Ee))throw new TypeError("videoSample must be a VideoSample.");return this._encoder.add(e,!1,r)}_flushAndClose(e){return this._encoder.flushAndClose(e)}};var Lr=class extends zr{constructor(e){if(super(),this._connectedTrack=null,!et.includes(e))throw new TypeError(`Invalid audio codec '${e}'. Must be one of: ${et.join(", ")}.`);this._codec=e}};var Uo=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 ht,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),h(this.encoderInitialized);{let i=Math.round(e.timestamp*e.sampleRate),n=Math.round((e.timestamp+e.duration)*e.sampleRate);if(this.lastEndSampleIndex===null)this.lastEndSampleIndex=n;else{let s=i-this.lastEndSampleIndex;if(s>=64){let o=new Ae({data:new Float32Array(s*e.numberOfChannels),format:"f32-planar",sampleRate:e.sampleRate,numberOfChannels:e.numberOfChannels,numberOfFrames:s,timestamp:this.lastEndSampleIndex/e.sampleRate});await this.add(o,!0)}this.lastEndSampleIndex+=e.numberOfFrames}}if(this.customEncoder){this.customEncoderQueueSize++;let i=e.clone(),n=this.customEncoderCallSerializer.call(()=>this.customEncoder.encode(i)).then(()=>this.customEncoderQueueSize--).catch(s=>this.error??=s).finally(()=>{i.close()});this.customEncoderQueueSize>=4&&await n,await this.muxer.mutex.currentPromise}else if(this.isPcmEncoder)await this.doPcmEncoding(e,r);else{h(this.encoder);let i=e.toAudioData();this.encoder.encode(i),i.close(),r&&e.close(),this.encoder.encodeQueueSize>=4&&await new Promise(n=>this.encoder.addEventListener("dequeue",n,{once:!0})),await this.muxer.mutex.currentPromise}}finally{r&&e.close()}}async doPcmEncoding(e,r){h(this.outputSampleSize),h(this.writeOutputValue);let{numberOfChannels:i,numberOfFrames:n,sampleRate:s,timestamp:o}=e,a=2048,c=[];for(let f=0;f<n;f+=a){let m=Math.min(a,e.numberOfFrames-f),p=m*i*this.outputSampleSize,g=new ArrayBuffer(p),b=new DataView(g);c.push({frameCount:m,view:b})}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 m=0;m<c.length;m++){let{frameCount:p,view:g}=c[m];for(let b=0;b<p;b++)this.writeOutputValue(g,(b*i+f)*this.outputSampleSize,l[m*a+b])}}r&&e.close();let d={decoderConfig:{codec:this.encodingConfig.codec,numberOfChannels:i,sampleRate:s}};for(let f=0;f<c.length;f++){let{frameCount:m,view:p}=c[f],g=p.buffer,b=f*a,w=new L(new Uint8Array(g),"key",o+b/s,m/s);this.encodingConfig.onEncodedPacket?.(w,d),await this.muxer.addEncodedAudioPacket(this.source._connectedTrack,w,d)}}ensureEncoder(e){let r=new Error;this.ensureEncoderPromise=(async()=>{let{numberOfChannels:i,sampleRate:n}=e,s=ul({numberOfChannels:i,sampleRate:n,...this.encodingConfig});this.encodingConfig.onEncoderConfig?.(s);let o=qc.find(a=>a.supports(this.encodingConfig.codec,s));if(o)this.customEncoder=new o,this.customEncoder.codec=this.encodingConfig.codec,this.customEncoder.config=s,this.customEncoder.onPacket=(a,c)=>{if(!(a 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?.(a,c),this.muxer.addEncodedAudioPacket(this.source._connectedTrack,a,c).catch(u=>{this.error??=u,this.errorNeedsNewStack=!1})},await this.customEncoder.init();else if(Y.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(s)).supported)throw new Error(`This specific encoder configuration (${s.codec}, ${s.bitrate} bps, ${s.numberOfChannels} channels, ${s.sampleRate} Hz) is not supported by this browser. Consider using another codec or changing your audio parameters.`);this.encoder=new AudioEncoder({output:(c,u)=>{if(this.encodingConfig.codec==="aac"&&u?.decoderConfig){let d=!1;if(!u.decoderConfig.description||u.decoderConfig.description.byteLength<2?d=!0:d=di(J(u.decoderConfig.description)).objectType===0,d){let f=Number(G(s.codec.split(".")));u.decoderConfig.description=Ec({objectType:f,numberOfChannels:u.decoderConfig.numberOfChannels,sampleRate:u.decoderConfig.sampleRate})}}let l=L.fromEncodedChunk(c);this.encodingConfig.onEncodedPacket?.(l,u),this.muxer.addEncodedAudioPacket(this.source._connectedTrack,l,u).catch(d=>{this.error??=d,this.errorNeedsNewStack=!1})},error:c=>{c.stack=r.stack,this.error??=c}}),this.encoder.configure(s)}h(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:n}=Te(e);switch(this.outputSampleSize=i,i){case 1:r==="unsigned"?this.writeOutputValue=(s,o,a)=>s.setUint8(o,ee((a+1)*127.5,0,255)):r==="signed"?this.writeOutputValue=(s,o,a)=>{s.setInt8(o,ee(Math.round(a*128),-128,127))}:r==="ulaw"?this.writeOutputValue=(s,o,a)=>{let c=ee(Math.floor(a*32767),-32768,32767);s.setUint8(o,Hc(c))}:r==="alaw"?this.writeOutputValue=(s,o,a)=>{let c=ee(Math.floor(a*32767),-32768,32767);s.setUint8(o,Gc(c))}:h(!1);break;case 2:r==="unsigned"?this.writeOutputValue=(s,o,a)=>s.setUint16(o,ee((a+1)*32767.5,0,65535),n):r==="signed"?this.writeOutputValue=(s,o,a)=>s.setInt16(o,ee(Math.round(a*32767),-32768,32767),n):h(!1);break;case 3:r==="unsigned"?this.writeOutputValue=(s,o,a)=>oi(s,o,ee((a+1)*83886075e-1,0,16777215),n):r==="signed"?this.writeOutputValue=(s,o,a)=>uc(s,o,ee(Math.round(a*8388607),-8388608,8388607),n):h(!1);break;case 4:r==="unsigned"?this.writeOutputValue=(s,o,a)=>s.setUint32(o,ee((a+1)*21474836475e-1,0,4294967295),n):r==="signed"?this.writeOutputValue=(s,o,a)=>s.setInt32(o,ee(Math.round(a*2147483647),-2147483648,2147483647),n):r==="float"?this.writeOutputValue=(s,o,a)=>s.setFloat32(o,a,n):h(!1);break;case 8:r==="float"?this.writeOutputValue=(s,o,a)=>s.setFloat64(o,a,n):h(!1);break;default:ue(i),h(!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}},Oi=class extends Lr{constructor(e){cl(e),super(e.codec),this._encoder=new Uo(this,e)}add(e){if(!(e instanceof Ae))throw new TypeError("audioSample must be an AudioSample.");return this._encoder.add(e,!1)}_flushAndClose(e){return this._encoder.flushAndClose(e)}};var Ni=class extends zr{constructor(e){if(super(),this._connectedTrack=null,!Nt.includes(e))throw new TypeError(`Invalid subtitle codec '${e}'. Must be one of: ${Nt.join(", ")}.`);this._codec=e}};var Mf=["video","audio","subtitle"],zo=t=>{if(!t||typeof t!="object")throw new TypeError("metadata must be an object.");if(t.languageCode!==void 0&&!lr(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&&gc(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.")},Mi=class{constructor(e){if(this.state="pending",this._tracks=[],this._startPromise=null,this._cancelPromise=null,this._finalizePromise=null,this._mutex=new be,this._metadataTags={},!e||typeof e!="object")throw new TypeError("options must be an object.");if(!(e.format instanceof Nr))throw new TypeError("options.format must be an OutputFormat.");if(!(e.target instanceof Xt))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 Vr))throw new TypeError("source must be a VideoSource.");if(zo(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 Lr))throw new TypeError("source must be an AudioSource.");zo(r),this._addTrack("audio",e,r)}addSubtitleTrack(e,r={}){if(!(e instanceof Ni))throw new TypeError("source must be a SubtitleSource.");zo(r),this._addTrack("subtitle",e,r)}setMetadataTags(e){if(pc(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 n=this.format.getSupportedTrackCounts(),s=this._tracks.reduce((u,l)=>u+(l.type===e?1:0),0),o=n[e].max;if(s===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=n.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:r,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),r._connectedTrack=c}async start(){let e=this.format.getSupportedTrackCounts();for(let i of Mf){let n=this._tracks.reduce((o,a)=>o+(a.type===i?1:0),0),s=e[i].min;if(n<s)throw new Error(s===e[i].max?`${this.format._name} requires exactly ${s} ${i} track${s===1?"":"s"}.`:`${this.format._name} requires at least ${s} ${i} track${s===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 n=this._tracks.map(s=>s.source._start());await Promise.all(n),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()})()}};ms.set(Rs);var ll=async t=>t instanceof Blob?new vi(t):new _i(t),dl=tn.work(t=>({async hello(){await t.host.world()},async decodeAudio({source:e,audio:r,start:i,end:n}){let o=await new Fr({source:await ll(e),formats:os}).getPrimaryAudioTrack(),a=await o?.canDecode(),c=r.getWriter();if(a&&o){let u=new wi(o);for await(let l of u.samples(i,n)){let d=l.toAudioData();await c.write(d),l.close(),d.close()}await c.close()}},async decodeVideo({source:e,video:r,start:i,end:n}){let o=await new Fr({source:await ll(e),formats:os}).getPrimaryVideoTrack(),a=await o?.canDecode(),c=r.getWriter();if(a&&o){let u=new bi(o);for await(let l of u.samples(i,n)){let d=l.toVideoFrame();await c.write(d),l.close(),d.close()}await c.close()}},async encode({video:e,audio:r,config:i,writable:n}){let s=new Mi({format:new Mr,target:new Fi(n,{chunked:!0})});async function o(){if(!e)return;let l=new Ri(i.video);s.addVideoTrack(l);for await(let d of e){let f=new Ee(d);await l.add(f),f.close()}}async function a(){if(!r)return;let l=new Oi(i.audio);s.addAudioTrack(l);for await(let d of r){let f=new Ae(d);await l.add(f),f.close(),d.close()}}let c=a(),u=o();await s.start(),await Promise.all([c,u]),await s.finalize()}}));await tn.worker(dl);
|
|
1100
98
|
/*! Bundled license information:
|
|
1101
99
|
|
|
1102
|
-
mediabunny/dist/modules/misc.js:
|
|
1103
|
-
mediabunny/dist/modules/
|
|
1104
|
-
mediabunny/dist/modules/codec.js:
|
|
1105
|
-
mediabunny/dist/modules/
|
|
1106
|
-
mediabunny/dist/modules/codec-data.js:
|
|
1107
|
-
mediabunny/dist/modules/
|
|
1108
|
-
mediabunny/dist/modules/
|
|
1109
|
-
mediabunny/dist/modules/
|
|
1110
|
-
mediabunny/dist/modules/
|
|
1111
|
-
mediabunny/dist/modules/
|
|
1112
|
-
mediabunny/dist/modules/
|
|
1113
|
-
mediabunny/dist/modules/
|
|
1114
|
-
mediabunny/dist/modules/
|
|
1115
|
-
mediabunny/dist/modules/
|
|
1116
|
-
mediabunny/dist/modules/
|
|
1117
|
-
mediabunny/dist/modules/
|
|
1118
|
-
mediabunny/dist/modules/
|
|
1119
|
-
mediabunny/dist/modules/demuxer.js:
|
|
1120
|
-
mediabunny/dist/modules/
|
|
1121
|
-
mediabunny/dist/modules/
|
|
1122
|
-
mediabunny/dist/modules/
|
|
1123
|
-
mediabunny/dist/modules/
|
|
1124
|
-
mediabunny/dist/modules/
|
|
1125
|
-
mediabunny/dist/modules/reader.js:
|
|
1126
|
-
mediabunny/dist/modules/
|
|
1127
|
-
mediabunny/dist/modules/wave/wave-demuxer.js:
|
|
1128
|
-
mediabunny/dist/modules/
|
|
1129
|
-
mediabunny/dist/modules/
|
|
1130
|
-
mediabunny/dist/modules/
|
|
1131
|
-
mediabunny/dist/modules/
|
|
1132
|
-
mediabunny/dist/modules/
|
|
1133
|
-
mediabunny/dist/modules/
|
|
1134
|
-
mediabunny/dist/modules/
|
|
1135
|
-
mediabunny/dist/modules/
|
|
1136
|
-
mediabunny/dist/modules/
|
|
1137
|
-
mediabunny/dist/modules/
|
|
1138
|
-
mediabunny/dist/modules/
|
|
1139
|
-
mediabunny/dist/modules/
|
|
100
|
+
mediabunny/dist/modules/src/misc.js:
|
|
101
|
+
mediabunny/dist/modules/src/metadata.js:
|
|
102
|
+
mediabunny/dist/modules/src/codec.js:
|
|
103
|
+
mediabunny/dist/modules/src/muxer.js:
|
|
104
|
+
mediabunny/dist/modules/src/codec-data.js:
|
|
105
|
+
mediabunny/dist/modules/src/demuxer.js:
|
|
106
|
+
mediabunny/dist/modules/src/custom-coder.js:
|
|
107
|
+
mediabunny/dist/modules/src/packet.js:
|
|
108
|
+
mediabunny/dist/modules/src/pcm.js:
|
|
109
|
+
mediabunny/dist/modules/src/sample.js:
|
|
110
|
+
mediabunny/dist/modules/src/media-sink.js:
|
|
111
|
+
mediabunny/dist/modules/src/input-track.js:
|
|
112
|
+
mediabunny/dist/modules/src/isobmff/isobmff-misc.js:
|
|
113
|
+
mediabunny/dist/modules/src/isobmff/isobmff-reader.js:
|
|
114
|
+
mediabunny/dist/modules/src/isobmff/isobmff-demuxer.js:
|
|
115
|
+
mediabunny/dist/modules/src/matroska/ebml.js:
|
|
116
|
+
mediabunny/dist/modules/src/matroska/matroska-misc.js:
|
|
117
|
+
mediabunny/dist/modules/src/matroska/matroska-demuxer.js:
|
|
118
|
+
mediabunny/dist/modules/shared/mp3-misc.js:
|
|
119
|
+
mediabunny/dist/modules/src/id3.js:
|
|
120
|
+
mediabunny/dist/modules/src/mp3/mp3-reader.js:
|
|
121
|
+
mediabunny/dist/modules/src/mp3/mp3-demuxer.js:
|
|
122
|
+
mediabunny/dist/modules/src/ogg/ogg-misc.js:
|
|
123
|
+
mediabunny/dist/modules/src/ogg/ogg-reader.js:
|
|
124
|
+
mediabunny/dist/modules/src/ogg/ogg-demuxer.js:
|
|
125
|
+
mediabunny/dist/modules/src/wave/wave-demuxer.js:
|
|
126
|
+
mediabunny/dist/modules/src/adts/adts-reader.js:
|
|
127
|
+
mediabunny/dist/modules/src/adts/adts-demuxer.js:
|
|
128
|
+
mediabunny/dist/modules/src/flac/flac-misc.js:
|
|
129
|
+
mediabunny/dist/modules/src/flac/flac-demuxer.js:
|
|
130
|
+
mediabunny/dist/modules/src/input-format.js:
|
|
131
|
+
mediabunny/dist/modules/src/source.js:
|
|
132
|
+
mediabunny/dist/modules/src/input.js:
|
|
133
|
+
mediabunny/dist/modules/src/reader.js:
|
|
134
|
+
mediabunny/dist/modules/src/subtitles.js:
|
|
135
|
+
mediabunny/dist/modules/src/isobmff/isobmff-boxes.js:
|
|
136
|
+
mediabunny/dist/modules/src/writer.js:
|
|
137
|
+
mediabunny/dist/modules/src/target.js:
|
|
138
|
+
mediabunny/dist/modules/src/isobmff/isobmff-muxer.js:
|
|
139
|
+
mediabunny/dist/modules/src/output-format.js:
|
|
140
|
+
mediabunny/dist/modules/src/encode.js:
|
|
141
|
+
mediabunny/dist/modules/src/media-source.js:
|
|
142
|
+
mediabunny/dist/modules/src/output.js:
|
|
143
|
+
mediabunny/dist/modules/src/index.js:
|
|
1140
144
|
(*!
|
|
1141
145
|
* Copyright (c) 2025-present, Vanilagy and contributors
|
|
1142
146
|
*
|