UNPKG

no-framework-video-player

Version:

A no framework video player.you can use it as long as your program is in javascript environment

15,437 lines 739 kB
(function(){ try {var elementStyle = document.createElement('style'); elementStyle.appendChild(document.createTextNode(".d-slider.svelte-1ruaw7f.svelte-1ruaw7f{position:relative}.d-slider.svelte-1ruaw7f .d-slider__runway.svelte-1ruaw7f{width:100%;background-color:#333;position:relative;cursor:pointer;vertical-align:middle}.d-slider.svelte-1ruaw7f .d-slider__runway .d-slider__cursor.svelte-1ruaw7f,.d-slider.svelte-1ruaw7f .d-slider__runway .d-slider__preload.svelte-1ruaw7f,.d-slider.svelte-1ruaw7f .d-slider__runway .d-slider__bar.svelte-1ruaw7f{position:absolute;top:0;left:0;height:100%}.d-slider.svelte-1ruaw7f .d-slider__runway .d-slider__cursor.svelte-1ruaw7f{display:none;z-index:1;width:1px;background:#fff;pointer-events:none}.d-slider.svelte-1ruaw7f .d-slider__runway .d-slider__cursor .d-slider__tips.svelte-1ruaw7f{pointer-events:none;color:#fff;position:absolute;white-space:nowrap;z-index:2;bottom:14px;left:50%;padding:4px;box-sizing:border-box;display:block;font-size:12px;background:rgba(0,0,0,.6);border-radius:3px;transform:translate(-50%)}.d-slider.svelte-1ruaw7f .d-slider__runway:hover .d-slider__cursor.svelte-1ruaw7f{display:block}.d-slider.svelte-1ruaw7f .d-slider__runway .d-slider__preload.svelte-1ruaw7f{background:#717171}.d-slider.svelte-1ruaw7f .d-slider__runway .d-slider__bar.svelte-1ruaw7f{background:linear-gradient(to right,var(--primary-color) 0%,var(--primary-color-end) 80%,var(--primary-color-end) 100%)}.d-slider.svelte-1ruaw7f .d-slider__runway .d-slider__bar.svelte-1ruaw7f:before{display:block;content:\"\";position:absolute;right:-6px;top:50%;width:12px;height:12px;transition:.2s;transform:translateY(-50%) scale(1);border-radius:50%;background:#fff;border:5px solid var(--primary-color)}.d-slider.is-vertical.svelte-1ruaw7f.svelte-1ruaw7f{height:100px;display:inline-block}.d-slider.is-vertical.svelte-1ruaw7f .d-slider__runway.svelte-1ruaw7f{position:relative;height:100%;margin:0 6px}.d-slider.is-vertical.svelte-1ruaw7f .d-slider__runway .d-slider__preload.svelte-1ruaw7f,.d-slider.is-vertical.svelte-1ruaw7f .d-slider__runway .d-slider__bar.svelte-1ruaw7f,.d-slider.is-vertical.svelte-1ruaw7f .d-slider__runway .d-slider__cursor.svelte-1ruaw7f{bottom:0;top:auto;width:100%}.d-slider.is-vertical.svelte-1ruaw7f .d-slider__runway .d-slider__cursor.svelte-1ruaw7f{height:1px}.d-slider.is-vertical.svelte-1ruaw7f .d-slider__runway .d-slider__bar.svelte-1ruaw7f:before{top:-6px;left:50%;width:12px;height:12px;transform:translate(-50%) scale(1)}.d-progress-bar.svelte-1ruaw7f.svelte-1ruaw7f{position:absolute;left:0;right:0;bottom:0;width:100%;transition:height .1s;height:3px;z-index:1}.d-progress-bar.svelte-1ruaw7f .d-slider__runway.svelte-1ruaw7f{transition:height .1s;height:100%!important}.d-progress-bar.svelte-1ruaw7f .d-slider__runway .d-slider__bar.svelte-1ruaw7f:before{transform:translateY(-50%) scale(0)}.d-progress-bar.svelte-1ruaw7f.svelte-1ruaw7f:hover{height:100%}.d-progress-bar.svelte-1ruaw7f:hover .d-slider__bar.svelte-1ruaw7f:before{transform:translateY(-50%) scale(1)!important}.d-player-filter-panel-item.svelte-1ruaw7f .d-slider__runway.svelte-1ruaw7f{background-color:#999}.d-player-filter-panel-item.svelte-1ruaw7f .d-slider__runway .d-slider__bar.svelte-1ruaw7f:before{width:8px;height:8px}.filter-panel-slider.svelte-1ruaw7f.svelte-1ruaw7f{width:100%}.d-switch.svelte-4mlfkg.svelte-4mlfkg{position:relative;height:18px;transition:background .2s;background:#757575;border-radius:10px;display:inline-flex;align-items:center;vertical-align:middle}.d-switch.svelte-4mlfkg .d-switch__input.svelte-4mlfkg{position:relative;z-index:1;margin:0;width:100%;height:100%;opacity:0}.d-switch.svelte-4mlfkg .d-switch_action.svelte-4mlfkg{position:absolute;transition:.2s;left:2px;top:2px;z-index:0;height:14px;width:14px;background:#fff;border-radius:50%}.d-switch.is-checked.svelte-4mlfkg.svelte-4mlfkg{background-color:var(--primary-color)}.d-switch.is-checked.svelte-4mlfkg .d-switch_action.svelte-4mlfkg{left:100%;background:#fff;margin-left:-18px}.d-icon.svelte-1ojdyss{display:inline-block;cursor:pointer;overflow:hidden}.icon-play.svelte-1ojdyss{margin-left:5px}div.svelte-1sesy3u.svelte-1sesy3u,span.svelte-1sesy3u.svelte-1sesy3u,h5.svelte-1sesy3u.svelte-1sesy3u,i.svelte-1sesy3u.svelte-1sesy3u,ul.svelte-1sesy3u.svelte-1sesy3u,li.svelte-1sesy3u.svelte-1sesy3u{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}ul.svelte-1sesy3u.svelte-1sesy3u{list-style:none}@keyframes svelte-1sesy3u-rotating{to{-webkit-transform:rotate(360deg)}}.d-player-contextmenu.svelte-1sesy3u.svelte-1sesy3u,.d-player-dialog.svelte-1sesy3u.svelte-1sesy3u{position:absolute;left:0;top:0;bottom:50px;width:100%;z-index:5}.d-player-contextmenu.svelte-1sesy3u .d-player-copyText.svelte-1sesy3u{opacity:0}.d-player-contextmenu.svelte-1sesy3u .d-player-contextmenu-body.svelte-1sesy3u{position:absolute;border-radius:5px;font-size:12px;background:rgba(0,0,0,.8);color:#efefef;text-align:left;min-width:130px;box-sizing:border-box;padding:5px 0}.d-player-contextmenu.svelte-1sesy3u .d-player-contextmenu-body li.svelte-1sesy3u{padding:8px 20px;margin:0;cursor:pointer;transition:.2s}.d-player-contextmenu.svelte-1sesy3u .d-player-contextmenu-body li.svelte-1sesy3u:hover{background-color:#ffffff1a}.d-player-dialog.svelte-1sesy3u.svelte-1sesy3u{display:flex;justify-content:center;align-items:center}.d-player-dialog.svelte-1sesy3u .d-player-dialog-body.svelte-1sesy3u{background-color:#212121e6;border-radius:5px;color:#fff;min-width:200px;padding:0 0 10px}.d-player-dialog.svelte-1sesy3u .d-player-dialog-body .d-player-dialog-title.svelte-1sesy3u{text-align:center;position:relative;font-size:14px;font-weight:400;margin:0 0 10px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.15)}.d-player-dialog.svelte-1sesy3u .d-player-dialog-body .d-player-dialog-title .icon-close.svelte-1sesy3u{position:absolute;right:0px;top:0px;width:40px;height:40px;line-height:40px;text-align:center;cursor:pointer}.d-player-dialog.svelte-1sesy3u .d-player-dialog-body .d-player-hotkey-panel.svelte-1sesy3u{font-size:12px;color:#eee;padding-right:40px}.d-player-dialog.svelte-1sesy3u .d-player-dialog-body .d-player-hotkey-panel .d-player-hotkey-panel-item.svelte-1sesy3u{line-height:26px}.d-player-dialog.svelte-1sesy3u .d-player-dialog-body .d-player-hotkey-panel .d-player-hotkey-panel-item span.svelte-1sesy3u{text-align:center;display:inline-block;width:120px}.d-player-dialog.svelte-1sesy3u .d-player-dialog-body .d-player-hotkey-panel .d-player-hotkey-panel-item span.svelte-1sesy3u:nth-child(2){color:#999;width:160px}.d-player-dialog.svelte-1sesy3u .d-player-dialog-body .d-player-filter-panel.svelte-1sesy3u{width:320px;padding:0 20px;text-align:center}.d-player-dialog.svelte-1sesy3u .d-player-dialog-body .d-player-filter-panel .d-player-filter-reset.svelte-1sesy3u{text-align:center;cursor:pointer;margin-top:10px;padding:3px 20px;display:inline-block;border-radius:2px;font-size:12px;background:rgba(133,133,133,.5)}.d-player-dialog.svelte-1sesy3u .d-player-dialog-body .d-player-filter-panel .d-player-filter-reset.svelte-1sesy3u:hover{background:rgba(255,255,255,.3)}.d-player-dialog.svelte-1sesy3u .d-player-dialog-body .d-player-filter-panel .d-player-filter-panel-item.svelte-1sesy3u{height:32px;display:flex;align-items:center}.d-player-dialog.svelte-1sesy3u .d-player-dialog-body .d-player-filter-panel .d-player-filter-panel-item span.svelte-1sesy3u{font-size:12px;display:block;width:80px;text-align:center}@font-face{font-family:iconfont;src:url(data:font/woff2;base64,d09GMgABAAAAAAf8AAsAAAAAD4AAAAesAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHFQGYACENAqQFI0gATYCJAMwCxoABCAFhGcHgRgbMA2jopRwhpH9xYEN7tEpwmIWXYlFbb0abbZI79LiOw8i759JE179cG04wTl4/lv73fdGdx1R7dBpePptO1IS0ROpEcucKY175977I5ZAEaYoB0Q+Sa9AyUuuH/ScmnFzExLIzqhN/27WA9pOSYBUSFMxoWIeqfuqJXeerBhQVrSma0bPHPxEe3/ryvP/O+8/vROmlEQSRRMb+GBOkyUgmdUv+7V8hmli/aG/EQqjplPxhHhyzZqoot6oROqNaqXSKgZrk2NVhFlY/ZvcBwGlU5v65uH5PUwdTjXMG8CGCvxoOVnCYeQmYnMKReR61X3j5QMHvfVHAO926uUnuiIo12AXut4HEbykIr8L6H/aqH1DN1cH6ytwwIDDgUnkzVf9Mi7j0GaVaYnWE2DczO1k+hWpS8cpyCzf5CG/v3tHvNa6IaYQ47zm7FpAEBVKVWcVleX4f16HsmrgftwVUiERBKQaQURqmOSxWwgowe5AqsY+hgAD9hkQCPIqAkW+QWCRBwQO+b0zfkj7zAJ2gT5gJrCcEZcy6q0k3pSWkWHj8nBmZvSUUTb8osN2s7NDvrdXy9Nj4OEpqIEIvRY3HgSKcZQwjtJS3DAytmYBP1FU9L3/95QyIMBkIg04lxMG42lHgjNnKzFOrpIelGoMuImUo5gYJWZmUln8gHHvebdwWjfAxMiUA08YhQPUsgelIOQoXHGTqgkpVLI6d55j9PHwK3FoAKBNZegLJupaYE4OgIPZDEU4VcoVnJw+yCoYJen8nooeZg8xh1dw1+lr7A1GPcBNDk+wU8z0R01PQJedZwEdOML6T/GY+RYOlQNVsVO4MJiynUNHad+DrMMYE6DECxPPp6YsmfmLfp2jszO+HSMX5vo5LbCgYXV9bicOrFDPI+TcNONAwuZOU5CInQB8k9z0KgEz9ZSDFCihUQLabhIWc9NrYIEIVIt5EDeskrA3qt9YDSPcdWDh2noLxHILj1c9ftyZVExBrBQf8ycPXZmJm19yxEd8SYWUnZDiw0f9KkHFyBEnQj4Jcxg16keoLs9e4FUXajyAkA/hOBh1+Jg/Tl5LwCHyShpOUqd85NsS6mQKJi6nUgR+0pNoYU0mxmzmjEZAGzSGurFL12bo2euXuavqeWbuxpUtKbNGQ2iq2mxKa2AdyOXblidgpmGYUnKTwMpEF0wUhCW+Sl/MlhKt0VCRaqbMpInEKxD6pEgh8IGMIZ3sKPbsO/4vhZPlndlsfQomL4051Z+cnFZpte02mX84Q8W1f5S7vYclBFYebq0HtaA4rCgkWDBKvPeaGbmxvnFjdCbI3Zqgv6QTvUUL7L0a5TmVoBTsSRkYStwLSjNLLKTOxQPr9mdUgALwUWxvm3tmT8FIqQ+I/vy5X6tMeE7iu1gRZnVOOLPKskb4PWbpek46J8lysdRZnctd0dXPIVtIdd8P3BB4TlLsQCz/PvQXdA4U+IFAO6tPRJy+kcbtFQmnbWZsp/HBt5RDf6N/299F71a8L1l2XHZ56PjwpMl5c/zm2L74vuE4iUzk6ypzk+373pWIJ+O74jvzg5EPfTfYIJQ3ZXfEednV2RMJQTydXZdZZ5sf/kT5rD/LR//8IYRA7yIxyJ3gO4hMcpcWSq+GXQu8FnYVaAqGXFcy2/8J325tba7MrARhjwNI/0h/srSLqLq+97+wSqPbAeMXczfUk+457lOffTaLYMcchIfgiDVCuOeqGCGCv/VzN25M3YXuk5nY3BWAekcGABlLarWx7FJG+g7amXCWcpWaZn8xiOP1ODp96TF4tnjHdo0tvL/UKaXIpjyuBFNgKXlIeV1KsfP+E7aa7cU7Tg+4X4w657FNCafER/j7IWTtLjju2vlB35b76OphdNX9lsqnaAdZwjBkmd14UtyqdBkVE0P1CLzF7HEvIPN3zSPyXP3S9y7nhMvCc5Zl9s1AdHTIS719PVb38Nacx0bnzXtO9YhVj54Yxd7iDEk3etkq57gf05ckk19/MyKOOSlZAnFV26xDvZQBytrbGblYPVZrz+eiIbVgcUszxV+IP038VPwFSOM9+nE1q2/0OVTdhzPtuA8A8O6xMQtEAACCXfwXYdxOlYz/1C6O4D8pXsl/IKQFVVxL5oIgA7hu3A+of8ma1Hq23rt8sxlJeWINH7gm/VW87WtqfLfUIqiHESmuJC3JjV0Ax6AOMHUdckh2cyWpsqb29qd0KCh5J9CJdON+u+BMKJP1P86EDypYACNaR1ncPjiVc/CiCygdODi4MkHrJymAbU8ERO8ZVOsPjN4ryuLewJn2B17vH0qPNXm8ynYNewY5YcREj2VS1bHgkr3UW0yakpsk+yMam8HKAtePeo+wRlPHDradhEQxi42q2OHlYliWimmjcpTkpkR61fPitB1cqSrYYyCOzIoRRuhVz0hKLe6Ywp/vFko0SpxRRD0qDHsi0qUzAZevgDpi1UoNDiTRakuEiCpiTDIMZVQu5/CjQCV3KYxOXyuHJOJKKzi0VR7tKFZlud1zqt09CyixV65LxYgVJ16CRCmklEpqafAX6pL3+nWmh0vFo6xOBiLnGNS8sThkpUGsxzooHM8xYpGowAF2vK3KpkInUp169CVtdEpQ1RACAAAAAA==) format(\"woff2\")}.iconfont{font-family:iconfont!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-replay:before{content:\"\\e631\"}.icon-pip:before{content:\"\\e820\"}.icon-loading:before{content:\"\\e62e\"}.icon-play:before{content:\"\\e851\"}.icon-pause:before{content:\"\\e863\"}.icon-screen:before{content:\"\\e88f\"}.icon-web-screen:before{content:\"\\e609\"}.icon-settings:before{content:\"\\e60c\"}.icon-volume-down:before{content:\"\\e60d\"}.icon-volume-up:before{content:\"\\e60e\"}.icon-volume-mute:before{content:\"\\e60f\"}div.svelte-1qnrxjl.svelte-1qnrxjl,span.svelte-1qnrxjl.svelte-1qnrxjl,p.svelte-1qnrxjl.svelte-1qnrxjl,img.svelte-1qnrxjl.svelte-1qnrxjl,i.svelte-1qnrxjl.svelte-1qnrxjl{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}.iconfont.svelte-1qnrxjl.svelte-1qnrxjl{display:inline-block}.d-flex-x.svelte-1qnrxjl.svelte-1qnrxjl{display:flex}.d-flex-x.svelte-1qnrxjl.svelte-1qnrxjl{align-items:center}.mr5.svelte-1qnrxjl.svelte-1qnrxjl{margin-right:5px}.d-pointer.svelte-1qnrxjl.svelte-1qnrxjl{cursor:pointer}.rotating.svelte-1qnrxjl.svelte-1qnrxjl{animation:svelte-1qnrxjl-rotating 2s linear infinite}@keyframes svelte-1qnrxjl-rotating{to{-webkit-transform:rotate(360deg)}}.f50.svelte-1qnrxjl.svelte-1qnrxjl{font-size:50px}.f24.svelte-1qnrxjl.svelte-1qnrxjl{font-size:24px}.d-loading.svelte-1qnrxjl.svelte-1qnrxjl{position:absolute;left:0;right:0;bottom:0px;top:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.3);z-index:2;color:#efefef;text-align:center;font-size:13px}.loading-img.svelte-1qnrxjl.svelte-1qnrxjl{width:50px}.d-logo-loading.svelte-1qnrxjl.svelte-1qnrxjl{position:relative;width:100px;height:23px;overflow:hidden}.d-logo-loading.svelte-1qnrxjl .d-logo.svelte-1qnrxjl{width:100%;height:100%;background:url(https://s.thsi.cn/cd/ths-frontend-hxmui-container/front/thsc-hxmui/1.11.0/img/logo_light.ed78645a.png) 50%;background-size:cover}.d-logo-loading.svelte-1qnrxjl .d-light.svelte-1qnrxjl{position:absolute;left:0;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:32px;height:23px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGIAAABaCAMAAAB0UnP8AAAAhFBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8g2+bRAAAALHRSTlMABAgVDx4uDCU9ODMZKUJcRiFWYGZKt06ojpeJUq95bmqzo6CTfYRydaybgZ4JNUQAAAd9SURBVGjejNWNVtpAEIbhpoECGii/ojUCapEU7v/++s27ux23kMTxHH/O0Tx+Mzubb7eqsPquGo0Gg0FZllVVDYeLxVg1/VT6cbEYqqqqVOl3RyP7M/7+W2sV9gEhYARQBoDH/6Du9aFCWaBgOIFRtBqhsgwhAcD9p0KxaG4I8RhFWwqAIglEIAGPv7OaUPomMo440dUrD5FlCAHS4x2JxiIRg55peApCIDAGixD+/dlsNg+l76QIoV0YnqNzGP+HUJdcANiEckRBPIcTrRk8RIlABrVICXj8drutrfTVFBAZlqOqaFXPNAoqaxMZSABQ10vKEKLIULOmjDyLgdA3CQQyAITn/0wVFBnkwPBWdaZwgjZNp2QgQgBWoWQsZcQctMqJzhTXIciw2ZBgtVqnQhGiZmVGd6e8TwhVGISOknUpAgfVfr/XZynB2MzsXEEEA6JNcMJPUxBqBHv8iTJFSWQwDyc6O5UJEC5oCAL2+6bZhWqaE0hmiKi8U719KodD3RsQZFCTlEDC0UqIjJTDY1R9nYLwYVsIFw4C9PzLh9XlIqY5HQ6r1XL5L8aCgXenyE+sEZOJ2uSCgGdKyG5nORRju82JQSuRnyefRBIUQc9/okCOyag3ED/GGaFqSeFEnARtsgwXhN8qIWbYPAKh3fgKgaAaiAiT+EGIIGjOHwC/rEx5/mAca02DTokYc0+1EoUTPuxAqE3M4RkhGiJsHGEadAqi6iAYRTbs+3vbiZoQEizDr/P5XXU+C7EYx2a/XkMw70RgdBJcTyEEx8lCkAHhDYQcl6M6BTHvJ/Ijm/oUFpsQCAZQGEyDTtXajK+myM4Tk6gV4tQcLwgCHqlgcKhaCGbRsRUKARGHbSGeIBAwiGHE/hCISR9RXB9ZNrteatiEiMIfymKETt0g2ra7yAhWmxBGxEm8v5vw8vIiQsZtovxEFD2rzXlKfUohBFB/6FRG3OUperdiHIma8xT7pDbp6a+vbUR/CifoE0e2ZilsJ1KIVxXEW06k7ZbQmyKN4u4uHVkR9EmTQPgyUXRsBcRkPqdPzc6GbSEQMGzeELvG7loukOymbdmKIp+2H9mPZ44TxMPDA0RIYXuhC6SFKNoWr6riVtCndTxPCoGQEWy3EZzZzhTFrT5N0pG92LDfIAQ4wXaf1hAcqKsUvRfUtpN4zwh/d0v4SgqOrIg4iicRCBlh1yDvC3uxQkiAuH3PBiEjwpGFYBSEyImLESsRs0SUbYSfJ67ZeEHVSxHqk4hzIijbC12DTyJO/4g0CvrU/a5gt7nI2QobBXvnBKvH/cEbScRcxNVVfkO42gpu2RNbEUI48fjItEXYbjPtSAw8RRcxdYLFy0cBwShE7J0YQ9y+PopEIFTxDoxb0VyPgmmfbdp+fYjovz4gfPEi8bdSc1ttI4qh6ENbqKF1ZojBLZi0BOqG/P8HRmeNthVFntFknvy2kHS2rn5xVRghhcLTB/0HiCq8akUtRw/DT0u0UyhCeGpxXNs/QKyrAgRlG4Sr4kmhwAi+LDxrNxFeowoQqYMSwnIgofh1H/FfCIWi1TZ+CuE9UrYpeIQiCPZkibYhHqQKQ3wp0S5WpGgbwsu21QoQJRSoAoTq9tdAtKoAQQcVwst++q2i6pl8BoHwunIEgop3qgjlwFcQRPt8PoJoy1F0Bo4YqjiRAzMiiqoq3nlvUc0j3lEItF0QWXgHot1akUc89csgqHiOiFpBmj0tCYpod+UoI0LbSh9C0EPRlUt4F6miIgKwibgGgk9PlhYKxDRt+4kvDxZeLFRUQZAFIUh3JCg9WRC5M8hJcC8CgiPGuJob5rmqolphBCGOCcGLUk9Op8kkuWQPjcNpT7S2NFCGKog6WPCeeLKlHLVWZATiRnrPMR4xgXlN9VZToaBW7LPi8BFxG/I0R0YHJVUI0VhREai7TqqWn/BTWn7UJ9vHgsp9pYsS4zmM4MkK0aoCwj3E1taALFtG+p0IdEGO0trAGPYNAARN9IZQM5ubNCAN4gjCMoibwX7FCeYmjNC4rVqxJbwci5i48dRTXUMZwYxQsMNP9clWRF5+0B683FumuRF6T/2TLT2zth+YoZUgO8FYCa5tHbsdc906stgcDG02sYHFZvipZo/yZcSsnaCWpxYOg/BdiYMIUrZ6j2pFfVKB4NlaNB7/Eo5/BrHPAEG4xEIQRKiiWc++WwFr28+mXKtyA9gAGQQlj1RTy5eWgqGMSbvywYiF/x9swE0RCSHWrcjb+M9eLZoVM58QBEOeujHGWWE5vQDABOvPRlcgTRREdwab/W5xmMRIJyQDXC523Smnl3hPzd0Chm5503TmDhZnMAOYk4aXILCTCMKaKgridqY66JoXxzy/5mFDNaKzQoxv9qi4GMKoN8kBwAapLkSxaYWkERF3OwYkDqs6esoG3EQxam7Q9QLtJ+7V8/BigySRZLfjtCoGh3og+cgdhJlA7D9yw8BVYpizgORbvf4P8B0vJSPaU312lYXcPhgBsR9O4M8TEp1iLSvaRwUDyDyv/m8i2RCxLoCqjRwPvKW/f+j7KYAIDeIN31OsfyvZzREAAAAASUVORK5CYII=) 50%;background-size:cover;opacity:.6;-webkit-animation:svelte-1qnrxjl-move .8s ease-in-out infinite;animation:svelte-1qnrxjl-move .8s ease-in-out infinite}@keyframes svelte-1qnrxjl-move{0%{left:0}to{left:100%}}.d-player-top.svelte-q8odyd{position:absolute;font-size:16px;left:0px;top:0;right:0px;color:#fff;display:flex;padding:0 20px;height:60px;background-image:linear-gradient(rgba(0,0,0,.6),transparent);justify-content:space-between;z-index:1}.d-flex-center.svelte-o0d56g{display:flex}.d-flex-center.svelte-o0d56g{justify-content:center;align-items:center}.d-status.svelte-o0d56g{text-align:center;font-size:14px;vertical-align:middle;background:rgba(0,0,0,.8);padding:0 8px;height:30px;border-radius:5px;display:flex;align-items:center;color:#fffffff2}.d-radio.svelte-1rv9n3y{position:relative;display:inline-block;padding-left:20px;box-sizing:border-box;height:18px;line-height:18px;font-size:14px;margin-left:12px;margin-top:10px;cursor:pointer;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.d-radio.svelte-1rv9n3y:before{content:\"\";position:absolute;display:inline-block;top:2px;left:0;width:12px;height:12px;border:1px solid #ccc;border-radius:50%}.d-radio.d-radio-checked.svelte-1rv9n3y:before{content:\"\";border-color:#409eff;position:absolute;display:inline-block;top:2px;left:0;width:12px;height:12px;border:1px solid #409eff;border-radius:50%}.d-radio.d-radio-checked.svelte-1rv9n3y:after{content:\"\";position:absolute;top:5px;left:3px;display:inline-block;width:8px;height:8px;background-color:#00a1d6;border-radius:50%}.d-toast.svelte-bbg92z{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background-color:#282828f5;padding:0 18px;border-radius:10px}.d-toast-content.svelte-bbg92z{font-size:16px;line-height:1;word-break:break-all;color:#fefefe}.d-feedback-container.svelte-bjqzkb.svelte-bjqzkb{position:absolute;left:0;top:0;right:0;bottom:0;display:flex;justify-content:center;align-items:center;z-index:3}.d-feedback-container.svelte-bjqzkb .dialog.svelte-bjqzkb{width:400px;height:240px;background-color:#212121e6;color:#fff}.d-feedback-container.svelte-bjqzkb .dialog .header.svelte-bjqzkb{width:100%;height:40px;display:flex;justify-content:center;align-items:center;font-size:16px;position:relative}.d-feedback-container.svelte-bjqzkb .dialog .header.svelte-bjqzkb:after{content:\" \";position:absolute;width:100%;height:1px;bottom:0;left:0;background-color:#fff6}.d-feedback-container.svelte-bjqzkb .dialog .header .icon-close.svelte-bjqzkb{position:absolute;right:0px;top:8px;width:40px;height:40px;line-height:40px;text-align:center;cursor:pointer;font:inherit}.d-feedback-container.svelte-bjqzkb .dialog .content.svelte-bjqzkb{position:relative;text-align:left}.d-feedback-container.svelte-bjqzkb .dialog .other.svelte-bjqzkb{font-size:14px;margin-left:12px}.d-feedback-container.svelte-bjqzkb .dialog #otherContent.svelte-bjqzkb{background-color:#191919;border:1px solid hsla(0,0%,100%,.4);resize:none;color:#ccc;margin-top:10px}.d-feedback-container.svelte-bjqzkb .dialog #otherContent.svelte-bjqzkb::-webkit-scrollbar{width:5px;background-color:#ffffff80}.d-feedback-container.svelte-bjqzkb .dialog #otherContent.svelte-bjqzkb::-webkit-scrollbar-thumb{width:5px;height:5px;background-color:#00000080;border-radius:10px}.d-feedback-container.svelte-bjqzkb .dialog .footer.svelte-bjqzkb{text-align:center}.d-feedback-container.svelte-bjqzkb .dialog .footer .d-player-filter-reset.svelte-bjqzkb{cursor:pointer;margin-top:10px;padding:3px 20px;display:inline-block;border-radius:2px;font-size:12px;background:rgba(133,133,133,.5)}.d-feedback-container.svelte-bjqzkb .dialog .footer .d-player-filter-reset.svelte-bjqzkb:hover{background:rgba(255,255,255,.3)}.d-icon-feedback.svelte-v622af{position:absolute;width:15px;height:15px;top:20px;right:35px;z-index:2;cursor:pointer}div.svelte-fbmaz8.svelte-fbmaz8,span.svelte-fbmaz8.svelte-fbmaz8,ul.svelte-fbmaz8.svelte-fbmaz8,li.svelte-fbmaz8.svelte-fbmaz8,video.svelte-fbmaz8.svelte-fbmaz8{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}ul.svelte-fbmaz8.svelte-fbmaz8{list-style:none}.d-fade-in-enter-active.svelte-fbmaz8.svelte-fbmaz8,.d-fade-in-leave-active.svelte-fbmaz8.svelte-fbmaz8{transition:.5s}.d-fade-in-enter-from.svelte-fbmaz8.svelte-fbmaz8,.d-fade-in-leave-to.svelte-fbmaz8.svelte-fbmaz8{opacity:0}.d-scale-out-enter-active.svelte-fbmaz8.svelte-fbmaz8,.d-scale-out-leave-active.svelte-fbmaz8.svelte-fbmaz8{transition:.3s}.d-scale-out-leave-to.svelte-fbmaz8.svelte-fbmaz8{transform:scale(1.3);opacity:0}.rotateHover.svelte-fbmaz8.svelte-fbmaz8{transition:.2s}.rotateHover.svelte-fbmaz8.svelte-fbmaz8:hover{transform:rotate(90deg)}.rotating.svelte-fbmaz8.svelte-fbmaz8{animation:svelte-fbmaz8-rotating 2s linear infinite}@keyframes svelte-fbmaz8-rotating{to{-webkit-transform:rotate(360deg)}}.iconfont.svelte-fbmaz8.svelte-fbmaz8{display:inline-block}.d-flex-x.svelte-fbmaz8.svelte-fbmaz8,.d-flex-y.svelte-fbmaz8.svelte-fbmaz8,.d-flex-center.svelte-fbmaz8.svelte-fbmaz8{display:flex}.d-flex-x.svelte-fbmaz8.svelte-fbmaz8{align-items:center}.d-flex-y.svelte-fbmaz8.svelte-fbmaz8{justify-content:center}.d-flex-center.svelte-fbmaz8.svelte-fbmaz8{justify-content:center;align-items:center}.mr5.svelte-fbmaz8.svelte-fbmaz8{margin-right:5px}.mr10.svelte-fbmaz8.svelte-fbmaz8{margin-right:10px}.ml5.svelte-fbmaz8.svelte-fbmaz8{margin-left:5px}.ml10.svelte-fbmaz8.svelte-fbmaz8{margin-left:10px}.d-pointer.svelte-fbmaz8.svelte-fbmaz8{cursor:pointer}.d-player-wrap.svelte-fbmaz8.svelte-fbmaz8{position:relative;overflow:hidden;background-color:#000}.d-player-wrap.web-full-screen.svelte-fbmaz8.svelte-fbmaz8{z-index:9999999;position:fixed;left:0;top:0;width:100vw!important;height:100vh!important}.d-player-wrap.svelte-fbmaz8 .d-player-video.svelte-fbmaz8{position:relative;z-index:1;width:100%;height:100%}.d-player-wrap.svelte-fbmaz8 .d-player-video .d-player-video-poster.svelte-fbmaz8{position:absolute;height:100%;width:100%;top:0;left:0}.d-player-wrap.svelte-fbmaz8 .d-player-video .d-player-video-main.svelte-fbmaz8{width:100%;height:100%;transition:.2s}.d-player-wrap.svelte-fbmaz8 .d-player-video .d-player-video-main.video-mirror.svelte-fbmaz8{transform:rotateY(180deg)}.d-player-wrap.svelte-fbmaz8 .d-player-control.svelte-fbmaz8{transition:.1s;transform:translateY(40px);position:absolute;z-index:2;left:0;bottom:0;height:50px;width:100%;color:#fff}.d-player-wrap.svelte-fbmaz8 .d-player-control .d-control-progress.svelte-fbmaz8{width:100%;position:relative;height:10px;cursor:pointer}.d-player-wrap.svelte-fbmaz8 .d-player-control .d-control-progress .d-progress-bar.svelte-fbmaz8{position:absolute;left:0;right:0;bottom:0;width:100%;transition:height .1s;height:3px;z-index:1}.d-player-wrap.svelte-fbmaz8 .d-player-control .d-control-progress .d-progress-bar .d-slider__runway.svelte-fbmaz8{transition:height .1s;height:100%}.d-player-wrap.svelte-fbmaz8 .d-player-control .d-control-progress .d-progress-bar .d-slider__runway .d-slider__bar.svelte-fbmaz8:before{transform:translateY(-50%) scale(0)}.d-player-wrap.svelte-fbmaz8 .d-player-control .d-control-progress:hover .d-progress-bar.svelte-fbmaz8{height:100%}.d-player-wrap.svelte-fbmaz8 .d-player-control .d-control-progress:hover .d-progress-bar .d-slider__bar.svelte-fbmaz8:before{transform:translateY(-50%) scale(1)!important}.d-player-wrap.svelte-fbmaz8 .d-player-control .d-control-tool.svelte-fbmaz8{position:absolute;padding:0 10px;background:rgba(0,0,0,.8);display:flex;justify-content:space-between;align-items:center;top:10px;left:0;bottom:0;width:100%;box-sizing:border-box}.d-player-wrap.svelte-fbmaz8 .d-player-control .d-control-tool .d-tool-bar.svelte-fbmaz8{display:flex;height:100%}.d-player-wrap.svelte-fbmaz8 .d-player-control .d-control-tool .d-tool-bar .d-tool-item.svelte-fbmaz8{position:relative;height:100%;cursor:pointer;text-align:center;padding:0 8px;display:flex;align-items:center;font-size:13px}.d-player-wrap.svelte-fbmaz8 .d-player-control .d-control-tool .d-tool-bar .d-tool-item .d-tool-item-main.svelte-fbmaz8{position:absolute;white-space:nowrap;z-index:2;bottom:98%;left:50%;padding:6px 16px;box-sizing:border-box;display:none;background:rgba(0,0,0,.95);border-radius:5px;transform:translate(-50%)}.d-player-wrap.svelte-fbmaz8 .d-player-control .d-control-tool .d-tool-bar .d-tool-item:hover .d-tool-item-main.svelte-fbmaz8{display:flex}.d-player-wrap.svelte-fbmaz8 .d-player-control .d-control-tool .d-tool-time.svelte-fbmaz8{font-size:12px;color:#fff;font-weight:300}.d-player-wrap.svelte-fbmaz8 .d-player-control .d-control-tool .d-tool-time .total-time.svelte-fbmaz8{color:#fffc}.d-player-wrap.svelte-fbmaz8 .d-player-control .d-control-tool .volume-box.svelte-fbmaz8{height:160px;width:50px;display:flex;align-items:center;justify-content:center}.d-player-wrap.svelte-fbmaz8 .d-player-control .d-control-tool .volume-box .volume-main.svelte-fbmaz8{height:90%;display:flex;width:60px;flex-direction:column;align-items:center}.d-player-wrap.svelte-fbmaz8 .d-player-control .d-control-tool .volume-box .volume-main .volume-text-size.svelte-fbmaz8{margin-bottom:10px;font-size:12px;font-weight:400}.d-player-wrap.svelte-fbmaz8 .d-player-control .d-control-tool .volume-box .volume-main.is-muted .d-slider__bar.svelte-fbmaz8{height:0!important}.d-player-wrap.svelte-fbmaz8 .d-player-control .d-control-tool .speed-main.svelte-fbmaz8{padding:0 10px}.d-player-wrap.svelte-fbmaz8 .d-player-control .d-control-tool .speed-main li.svelte-fbmaz8{cursor:pointer;line-height:34px;font-size:12px;color:#fff}.d-player-wrap.svelte-fbmaz8 .d-player-control .d-control-tool .speed-main li.svelte-fbmaz8:hover{opacity:.8}.d-player-wrap.svelte-fbmaz8 .d-player-control .d-control-tool .speed-main li.speed-active.svelte-fbmaz8{color:var(--primary-color);font-weight:700}.d-player-wrap.d-player-wrap-hover.svelte-fbmaz8 .d-player-control.svelte-fbmaz8{transform:translateY(0)}.d-player-state.svelte-fbmaz8.svelte-fbmaz8,.d-player-input.svelte-fbmaz8.svelte-fbmaz8{position:absolute;left:0;top:0;right:0;bottom:40px;display:flex;justify-content:center;align-items:center;overflow:hidden;z-index:1}.d-player-input.svelte-fbmaz8.svelte-fbmaz8{width:100%;border:none;opacity:0;cursor:default}.d-play-btn.svelte-fbmaz8.svelte-fbmaz8{width:90px;height:90px;color:#fff;display:flex;align-items:center;justify-content:center;background-color:#000000b3;border-radius:50%}.d-player-lightoff.svelte-fbmaz8.svelte-fbmaz8{position:fixed;left:0;top:0;width:100vw;height:100vh;background-color:#000000e6}.is-lightoff.svelte-fbmaz8.svelte-fbmaz8{z-index:999998}.d-left-0.svelte-fbmaz8.svelte-fbmaz8{left:0!important}.d-player-state-top.svelte-fbmaz8.svelte-fbmaz8{position:absolute;left:0;top:0;right:0;bottom:40px px;display:flex;justify-content:center;align-items:flex-start;padding-top:5%;overflow:hidden;z-index:1}")); document.head.appendChild(elementStyle);} catch(e) {console.error('vite-plugin-css-injected-by-js', e);} })();function De() {
}
const zr = (L) => L;
function Hr(L) {
  return L();
}
function Jt() {
  return /* @__PURE__ */ Object.create(null);
}
function at(L) {
  L.forEach(Hr);
}
function Ie(L) {
  return typeof L == "function";
}
function qe(L, A) {
  return L != L ? A == A : L !== A || L && typeof L == "object" || typeof L == "function";
}
let Rt;
function Mt(L, A) {
  return Rt || (Rt = document.createElement("a")), Rt.href = A, L === Rt.href;
}
function oi(L) {
  return Object.keys(L).length === 0;
}
function Re(L) {
  return L == null ? "" : L;
}
const jr = typeof window < "u";
let li = jr ? () => window.performance.now() : () => Date.now(), jt = jr ? (L) => requestAnimationFrame(L) : De;
const _t = /* @__PURE__ */ new Set();
function Vr(L) {
  _t.forEach((A) => {
    A.c(L) || (_t.delete(A), A.f());
  }), _t.size !== 0 && jt(Vr);
}
function ui(L) {
  let A;
  return _t.size === 0 && jt(Vr), {
    promise: new Promise((I) => {
      _t.add(A = { c: L, f: I });
    }),
    abort() {
      _t.delete(A);
    }
  };
}
function X(L, A) {
  L.appendChild(A);
}
function $e(L, A, I) {
  const N = Vt(L);
  if (!N.getElementById(A)) {
    const B = J("style");
    B.id = A, B.textContent = I, Yr(N, B);
  }
}
function Vt(L) {
  if (!L)
    return document;
  const A = L.getRootNode ? L.getRootNode() : L.ownerDocument;
  return A && A.host ? A : L.ownerDocument;
}
function fi(L) {
  const A = J("style");
  return Yr(Vt(L), A), A.sheet;
}
function Yr(L, A) {
  return X(L.head || L, A), A.sheet;
}
function fe(L, A, I) {
  L.insertBefore(A, I || null);
}
function ue(L) {
  L.parentNode.removeChild(L);
}
function It(L, A) {
  for (let I = 0; I < L.length; I += 1)
    L[I] && L[I].d(A);
}
function J(L) {
  return document.createElement(L);
}
function di(L) {
  return document.createElementNS("http://www.w3.org/2000/svg", L);
}
function he(L) {
  return document.createTextNode(L);
}
function ae() {
  return he(" ");
}
function Tt() {
  return he("");
}
function ce(L, A, I, N) {
  return L.addEventListener(A, I, N), () => L.removeEventListener(A, I, N);
}
function Bt(L) {
  return function(A) {
    return A.stopPropagation(), L.call(this, A);
  };
}
function V(L, A, I) {
  I == null ? L.removeAttribute(A) : L.getAttribute(A) !== I && L.setAttribute(A, I);
}
function ci(L) {
  return Array.from(L.childNodes);
}
function _e(L, A) {
  A = "" + A, L.wholeText !== A && (L.data = A);
}
function qt(L, A) {
  L.value = A == null ? "" : A;
}
function kt(L, A, I, N) {
  I === null ? L.style.removeProperty(A) : L.style.setProperty(A, I, N ? "important" : "");
}
function $t(L, A, I) {
  L.classList[I ? "add" : "remove"](A);
}
function Xr(L, A, { bubbles: I = !1, cancelable: N = !1 } = {}) {
  const B = document.createEvent("CustomEvent");
  return B.initCustomEvent(L, I, N, A), B;
}
class hi {
  constructor(A = !1) {
    this.is_svg = !1, this.is_svg = A, this.e = this.n = null;
  }
  c(A) {
    this.h(A);
  }
  m(A, I, N = null) {
    this.e || (this.is_svg ? this.e = di(I.nodeName) : this.e = J(I.nodeName), this.t = I, this.c(A)), this.i(N);
  }
  h(A) {
    this.e.innerHTML = A, this.n = Array.from(this.e.childNodes);
  }
  i(A) {
    for (let I = 0; I < this.n.length; I += 1)
      fe(this.t, this.n[I], A);
  }
  p(A) {
    this.d(), this.h(A), this.i(this.a);
  }
  d() {
    this.n.forEach(ue);
  }
}
const Ft = /* @__PURE__ */ new Map();
let wt = 0;
function vi(L) {
  let A = 5381, I = L.length;
  for (; I--; )
    A = (A << 5) - A ^ L.charCodeAt(I);
  return A >>> 0;
}
function gi(L, A) {
  const I = { stylesheet: fi(A), rules: {} };
  return Ft.set(L, I), I;
}
function er(L, A, I, N, B, G, U, M = 0) {
  const g = 16.666 / N;
  let P = `{
`;
  for (let D = 0; D <= 1; D += g) {
    const p = A + (I - A) * G(D);
    P += D * 100 + `%{${U(p, 1 - p)}}
`;
  }
  const y = P + `100% {${U(I, 1 - I)}}
}`, O = `__svelte_${vi(y)}_${M}`, C = Vt(L), { stylesheet: F, rules: R } = Ft.get(C) || gi(C, L);
  R[O] || (R[O] = !0, F.insertRule(`@keyframes ${O} ${y}`, F.cssRules.length));
  const T = L.style.animation || "";
  return L.style.animation = `${T ? `${T}, ` : ""}${O} ${N}ms linear ${B}ms 1 both`, wt += 1, O;
}
function mi(L, A) {
  const I = (L.style.animation || "").split(", "), N = I.filter(
    A ? (G) => G.indexOf(A) < 0 : (G) => G.indexOf("__svelte") === -1
  ), B = I.length - N.length;
  B && (L.style.animation = N.join(", "), wt -= B, wt || pi());
}
function pi() {
  jt(() => {
    wt || (Ft.forEach((L) => {
      const { ownerNode: A } = L.stylesheet;
      A && ue(A);
    }), Ft.clear());
  });
}
let At;
function bt(L) {
  At = L;
}
function Yt() {
  if (!At)
    throw new Error("Function called outside component initialization");
  return At;
}
function Qr(L) {
  Yt().$$.on_mount.push(L);
}
function Ei(L) {
  Yt().$$.on_destroy.push(L);
}
function pt() {
  const L = Yt();
  return (A, I, { cancelable: N = !1 } = {}) => {
    const B = L.$$.callbacks[A];
    if (B) {
      const G = Xr(A, I, { cancelable: N });
      return B.slice().forEach((U) => {
        U.call(L, G);
      }), !G.defaultPrevented;
    }
    return !0;
  };
}
function yi(L, A) {
  const I = L.$$.callbacks[A.type];
  I && I.slice().forEach((N) => N.call(this, A));
}
const Dt = [], ct = [], Ct = [], tr = [], Zr = Promise.resolve();
let zt = !1;
function Jr() {
  zt || (zt = !0, Zr.then(qr));
}
function Ht() {
  return Jr(), Zr;
}
function st(L) {
  Ct.push(L);
}
const Nt = /* @__PURE__ */ new Set();
let Pt = 0;
function qr() {
  const L = At;
  do {
    for (; Pt < Dt.length; ) {
      const A = Dt[Pt];
      Pt++, bt(A), _i(A.$$);
    }
    for (bt(null), Dt.length = 0, Pt = 0; ct.length; )
      ct.pop()();
    for (let A = 0; A < Ct.length; A += 1) {
      const I = Ct[A];
      Nt.has(I) || (Nt.add(I), I());
    }
    Ct.length = 0;
  } while (Dt.length);
  for (; tr.length; )
    tr.pop()();
  zt = !1, Nt.clear(), bt(L);
}
function _i(L) {
  if (L.fragment !== null) {
    L.update(), at(L.before_update);
    const A = L.dirty;
    L.dirty = [-1], L.fragment && L.fragment.p(L.ctx, A), L.after_update.forEach(st);
  }
}
let St;
function Ti() {
  return St || (St = Promise.resolve(), St.then(() => {
    St = null;
  })), St;
}
function Kt(L, A, I) {
  L.dispatchEvent(Xr(`${A ? "intro" : "outro"}${I}`));
}
const Ot = /* @__PURE__ */ new Set();
let ht;
function Ne() {
  ht = {
    r: 0,
    c: [],
    p: ht
  };
}
function Ke() {
  ht.r || at(ht.c), ht = ht.p;
}
function $(L, A) {
  L && L.i && (Ot.delete(L), L.i(A));
}
function se(L, A, I, N) {
  if (L && L.o) {
    if (Ot.has(L))
      return;
    Ot.add(L), ht.c.push(() => {
      Ot.delete(L), N && (I && L.d(1), N());
    }), L.o(A);
  } else
    N && N();
}
const xi = { duration: 0 };
function Ze(L, A, I, N) {
  let B = A(L, I), G = N ? 0 : 1, U = null, M = null, g = null;
  function P() {
    g && mi(L, g);
  }
  function y(C, F) {
    const R = C.b - G;
    return F *= Math.abs(R), {
      a: G,
      b: C.b,
      d: R,
      duration: F,
      start: C.start,
      end: C.start + F,
      group: C.group
    };
  }
  function O(C) {
    const { delay: F = 0, duration: R = 300, easing: T = zr, tick: D = De, css: p } = B || xi, S = {
      start: li() + F,
      b: C
    };
    C || (S.group = ht, ht.r += 1), U || M ? M = S : (p && (P(), g = er(L, G, C, R, F, T, p)), C && D(0, 1), U = y(S, R), st(() => Kt(L, C, "start")), ui((b) => {
      if (M && b > M.start && (U = y(M, R), M = null, Kt(L, U.b, "start"), p && (P(), g = er(L, G, U.b, U.duration, 0, T, B.css))), U) {
        if (b >= U.end)
          D(G = U.b, 1 - G), Kt(L, U.b, "end"), M || (U.b ? P() : --U.group.r || at(U.group.c)), U = null;
        else if (b >= U.start) {
          const _ = b - U.start;
          G = U.a + U.d * T(_ / U.duration), D(G, 1 - G);
        }
      }
      return !!(U || M);
    }));
  }
  return {
    run(C) {
      Ie(B) ? Ti().then(() => {
        B = B(), O(C);
      }) : O(C);
    },
    end() {
      P(), U = M = null;
    }
  };
}
function Se(L) {
  L && L.c();
}
function Te(L, A, I, N) {
  const { fragment: B, after_update: G } = L.$$;
  B && B.m(A, I), N || st(() => {
    const U = L.$$.on_mount.map(Hr).filter(Ie);
    L.$$.on_destroy ? L.$$.on_destroy.push(...U) : at(U), L.$$.on_mount = [];
  }), G.forEach(st);
}
function xe(L, A) {
  const I = L.$$;
  I.fragment !== null && (at(I.on_destroy), I.fragment && I.fragment.d(A), I.on_destroy = I.fragment = null, I.ctx = []);
}
function Si(L, A) {
  L.$$.dirty[0] === -1 && (Dt.push(L), Jr(), L.$$.dirty.fill(0)), L.$$.dirty[A / 31 | 0] |= 1 << A % 31;
}
function et(L, A, I, N, B, G, U, M = [-1]) {
  const g = At;
  bt(L);
  const P = L.$$ = {
    fragment: null,
    ctx: [],
    props: G,
    update: De,
    not_equal: B,
    bound: Jt(),
    on_mount: [],
    on_destroy: [],
    on_disconnect: [],
    before_update: [],
    after_update: [],
    context: new Map(A.context || (g ? g.$$.context : [])),
    callbacks: Jt(),
    dirty: M,
    skip_bound: !1,
    root: A.target || g.$$.root
  };
  U && U(P.root);
  let y = !1;
  if (P.ctx = I ? I(L, A.props || {}, (O, C, ...F) => {
    const R = F.length ? F[0] : C;
    return P.ctx && B(P.ctx[O], P.ctx[O] = R) && (!P.skip_bound && P.bound[O] && P.bound[O](R), y && Si(L, O)), C;
  }) : [], P.update(), y = !0, at(P.before_update), P.fragment = N ? N(P.ctx) : !1, A.target) {
    if (A.hydrate) {
      const O = ci(A.target);
      P.fragment && P.fragment.l(O), O.forEach(ue);
    } else
      P.fragment && P.fragment.c();
    A.intro && $(L.$$.fragment), Te(L, A.target, A.anchor, A.customElement), qr();
  }
  bt(g);
}
class tt {
  $destroy() {
    xe(this, 1), this.$destroy = De;
  }
  $on(A, I) {
    if (!Ie(I))
      return De;
    const N = this.$$.callbacks[A] || (this.$$.callbacks[A] = []);
    return N.push(I), () => {
      const B = N.indexOf(I);
      B !== -1 && N.splice(B, 1);
    };
  }
  $set(A) {
    this.$$set && !oi(A) && (this.$$.skip_bound = !0, this.$$set(A), this.$$.skip_bound = !1);
  }
}
function Je(L, { delay: A = 0, duration: I = 400, easing: N = zr } = {}) {
  const B = +getComputedStyle(L).opacity;
  return {
    delay: A,
    duration: I,
    easing: N,
    css: (G) => `opacity: ${G * B}`
  };
}
var Di = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {};
function bi(L) {
  return L && L.__esModule && Object.prototype.hasOwnProperty.call(L, "default") ? L.default : L;
}
var $r = { exports: {} };
(function(L, A) {
  typeof window < "u" && function(N, B) {
    L.exports = B();
  }(Di, () => (() => {
    var I = {
      "./src/config.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          enableStreamingMode: () => m,
          hlsDefaultConfig: () => e,
          mergeConfig: () => u
        });
        var P = g("./src/controller/abr-controller.ts"), y = g("./src/controller/audio-stream-controller.ts"), O = g("./src/controller/audio-track-controller.ts"), C = g("./src/controller/subtitle-stream-controller.ts"), F = g("./src/controller/subtitle-track-controller.ts"), R = g("./src/controller/buffer-controller.ts"), T = g("./src/controller/timeline-controller.ts"), D = g("./src/controller/cap-level-controller.ts"), p = g("./src/controller/fps-controller.ts"), S = g("./src/controller/eme-controller.ts"), b = g("./src/controller/cmcd-controller.ts"), _ = g("./src/utils/xhr-loader.ts"), E = g("./src/utils/fetch-loader.ts"), l = g("./src/utils/cues.ts"), n = g("./src/utils/mediakeys-helper.ts"), t = g("./src/utils/logger.ts");
        function d() {
          return d = Object.assign ? Object.assign.bind() : function(s) {
            for (var v = 1; v < arguments.length; v++) {
              var c = arguments[v];
              for (var o in c)
                Object.prototype.hasOwnProperty.call(c, o) && (s[o] = c[o]);
            }
            return s;
          }, d.apply(this, arguments);
        }
        function h(s, v) {
          var c = Object.keys(s);
          if (Object.getOwnPropertySymbols) {
            var o = Object.getOwnPropertySymbols(s);
            v && (o = o.filter(function(a) {
              return Object.getOwnPropertyDescriptor(s, a).enumerable;
            })), c.push.apply(c, o);
          }
          return c;
        }
        function i(s) {
          for (var v = 1; v < arguments.length; v++) {
            var c = arguments[v] != null ? arguments[v] : {};
            v % 2 ? h(Object(c), !0).forEach(function(o) {
              r(s, o, c[o]);
            }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(s, Object.getOwnPropertyDescriptors(c)) : h(Object(c)).forEach(function(o) {
              Object.defineProperty(s, o, Object.getOwnPropertyDescriptor(c, o));
            });
          }
          return s;
        }
        function r(s, v, c) {
          return v in s ? Object.defineProperty(s, v, { value: c, enumerable: !0, configurable: !0, writable: !0 }) : s[v] = c, s;
        }
        var e = i(i({
          autoStartLoad: !0,
          startPosition: -1,
          defaultAudioCodec: void 0,
          debug: !1,
          capLevelOnFPSDrop: !1,
          capLevelToPlayerSize: !1,
          ignoreDevicePixelRatio: !1,
          initialLiveManifestSize: 1,
          maxBufferLength: 30,
          backBufferLength: 1 / 0,
          maxBufferSize: 60 * 1e3 * 1e3,
          maxBufferHole: 0.1,
          highBufferWatchdogPeriod: 2,
          nudgeOffset: 0.1,
          nudgeMaxRetry: 3,
          maxFragLookUpTolerance: 0.25,
          liveSyncDurationCount: 3,
          liveMaxLatencyDurationCount: 1 / 0,
          liveSyncDuration: void 0,
          liveMaxLatencyDuration: void 0,
          maxLiveSyncPlaybackRate: 1,
          liveDurationInfinity: !1,
          liveBackBufferLength: null,
          maxMaxBufferLength: 600,
          enableWorker: !0,
          enableSoftwareAES: !0,
          manifestLoadingTimeOut: 1e4,
          manifestLoadingMaxRetry: 1,
          manifestLoadingRetryDelay: 1e3,
          manifestLoadingMaxRetryTimeout: 64e3,
          startLevel: void 0,
          levelLoadingTimeOut: 1e4,
          levelLoadingMaxRetry: 4,
          levelLoadingRetryDelay: 1e3,
          levelLoadingMaxRetryTimeout: 64e3,
          fragLoadingTimeOut: 2e4,
          fragLoadingMaxRetry: 6,
          fragLoadingRetryDelay: 1e3,
          fragLoadingMaxRetryTimeout: 64e3,
          startFragPrefetch: !1,
          fpsDroppedMonitoringPeriod: 5e3,
          fpsDroppedMonitoringThreshold: 0.2,
          appendErrorMaxRetry: 3,
          loader: _.default,
          fLoader: void 0,
          pLoader: void 0,
          xhrSetup: void 0,
          licenseXhrSetup: void 0,
          licenseResponseCallback: void 0,
          abrController: P.default,
          bufferController: R.default,
          capLevelController: D.default,
          fpsController: p.default,
          stretchShortVideoTrack: !1,
          maxAudioFramesDrift: 1,
          forceKeyFrameOnDiscontinuity: !0,
          abrEwmaFastLive: 3,
          abrEwmaSlowLive: 9,
          abrEwmaFastVoD: 3,
          abrEwmaSlowVoD: 9,
          abrEwmaDefaultEstimate: 5e5,
          abrBandWidthFactor: 0.95,
          abrBandWidthUpFactor: 0.7,
          abrMaxWithRealBitrate: !1,
          maxStarvationDelay: 4,
          maxLoadingDelay: 4,
          minAutoBitrate: 0,
          emeEnabled: !1,
          widevineLicenseUrl: void 0,
          drmSystemOptions: {},
          requestMediaKeySystemAccessFunc: n.requestMediaKeySystemAccess,
          testBandwidth: !0,
          progressive: !1,
          lowLatencyMode: !0,
          cmcd: void 0,
          enableDateRangeMetadataCues: !0,
          enableEmsgMetadataCues: !0,
          enableID3MetadataCues: !0
        }, f()), {}, {
          subtitleStreamController: C.SubtitleStreamController,
          subtitleTrackController: F.default,
          timelineController: T.TimelineController,
          audioStreamController: y.default,
          audioTrackController: O.default,
          emeController: S.default,
          cmcdController: b.default
        });
        function f() {
          return {
            cueHandler: l.default,
            enableWebVTT: !0,
            enableIMSC1: !0,
            enableCEA708Captions: !0,
            captionsTextTrack1Label: "English",
            captionsTextTrack1LanguageCode: "en",
            captionsTextTrack2Label: "Spanish",
            captionsTextTrack2LanguageCode: "es",
            captionsTextTrack3Label: "Unknown CC",
            captionsTextTrack3LanguageCode: "",
            captionsTextTrack4Label: "Unknown CC",
            captionsTextTrack4LanguageCode: "",
            renderTextTracksNatively: !0
          };
        }
        function u(s, v) {
          if ((v.liveSyncDurationCount || v.liveMaxLatencyDurationCount) && (v.liveSyncDuration || v.liveMaxLatencyDuration))
            throw new Error("Illegal hls.js config: don't mix up liveSyncDurationCount/liveMaxLatencyDurationCount and liveSyncDuration/liveMaxLatencyDuration");
          if (v.liveMaxLatencyDurationCount !== void 0 && (v.liveSyncDurationCount === void 0 || v.liveMaxLatencyDurationCount <= v.liveSyncDurationCount))
            throw new Error('Illegal hls.js config: "liveMaxLatencyDurationCount" must be greater than "liveSyncDurationCount"');
          if (v.liveMaxLatencyDuration !== void 0 && (v.liveSyncDuration === void 0 || v.liveMaxLatencyDuration <= v.liveSyncDuration))
            throw new Error('Illegal hls.js config: "liveMaxLatencyDuration" must be greater than "liveSyncDuration"');
          return d({}, s, v);
        }
        function m(s) {
          var v = s.loader;
          if (v !== E.default && v !== _.default)
            t.logger.log("[config]: Custom loader detected, cannot enable progressive streaming"), s.progressive = !1;
          else {
            var c = (0, E.fetchSupported)();
            c && (s.loader = E.default, s.progressive = !0, s.enableSoftwareAES = !0, t.logger.log("[config]: Progressive streaming enabled, using FetchLoader"));
          }
        }
      },
      "./src/controller/abr-controller.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          default: () => S
        });
        var P = g("./src/polyfills/number.ts"), y = g("./src/utils/ewma-bandwidth-estimator.ts"), O = g("./src/events.ts"), C = g("./src/errors.ts"), F = g("./src/types/loader.ts"), R = g("./src/utils/logger.ts");
        function T(b, _) {
          for (var E = 0; E < _.length; E++) {
            var l = _[E];
            l.enumerable = l.enumerable || !1, l.configurable = !0, "value" in l && (l.writable = !0), Object.defineProperty(b, l.key, l);
          }
        }
        function D(b, _, E) {
          return _ && T(b.prototype, _), E && T(b, E), Object.defineProperty(b, "prototype", { writable: !1 }), b;
        }
        var p = /* @__PURE__ */ function() {
          function b(E) {
            this.hls = void 0, this.lastLoadedFragLevel = 0, this._nextAutoLevel = -1, this.timer = void 0, this.onCheck = this._abandonRulesCheck.bind(this), this.fragCurrent = null, this.partCurrent = null, this.bitrateTestDelay = 0, this.bwEstimator = void 0, this.hls = E;
            var l = E.config;
            this.bwEstimator = new y.default(l.abrEwmaSlowVoD, l.abrEwmaFastVoD, l.abrEwmaDefaultEstimate), this.registerListeners();
          }
          var _ = b.prototype;
          return _.registerListeners = function() {
            var l = this.hls;
            l.on(O.Events.FRAG_LOADING, this.onFragLoading, this), l.on(O.Events.FRAG_LOADED, this.onFragLoaded, this), l.on(O.Events.FRAG_BUFFERED, this.onFragBuffered, this), l.on(O.Events.LEVEL_LOADED, this.onLevelLoaded, this), l.on(O.Events.ERROR, this.onError, this);
          }, _.unregisterListeners = function() {
            var l = this.hls;
            l.off(O.Events.FRAG_LOADING, this.onFragLoading, this), l.off(O.Events.FRAG_LOADED, this.onFragLoaded, this), l.off(O.Events.FRAG_BUFFERED, this.onFragBuffered, this), l.off(O.Events.LEVEL_LOADED, this.onLevelLoaded, this), l.off(O.Events.ERROR, this.onError, this);
          }, _.destroy = function() {
            this.unregisterListeners(), this.clearTimer(), this.hls = this.onCheck = null, this.fragCurrent = this.partCurrent = null;
          }, _.onFragLoading = function(l, n) {
            var t = n.frag;
            if (t.type === F.PlaylistLevelType.MAIN && !this.timer) {
              var d;
              this.fragCurrent = t, this.partCurrent = (d = n.part) != null ? d : null, this.timer = self.setInterval(this.onCheck, 100);
            }
          }, _.onLevelLoaded = function(l, n) {
            var t = this.hls.config;
            n.details.live ? this.bwEstimator.update(t.abrEwmaSlowLive, t.abrEwmaFastLive) : this.bwEstimator.update(t.abrEwmaSlowVoD, t.abrEwmaFastVoD);
          }, _._abandonRulesCheck = function() {
            var l = this.fragCurrent, n = this.partCurrent, t = this.hls, d = t.autoLevelEnabled;
            t.config;
            var h = t.media;
            if (!(!l || !h)) {
              var i = n ? n.stats : l.stats, r = n ? n.duration : l.duration;
              if (i.aborted || i.loaded && i.loaded === i.total || l.level === 0) {
                this.clearTimer(), this._nextAutoLevel = -1;
                return;
              }
              if (!(!d || h.paused || !h.playbackRate || !h.readyState)) {
                var e = t.mainForwardBufferInfo;
                if (e !== null) {
                  var f = performance.now() - i.loading.start, u = Math.abs(h.playbackRate);
                  if (!(f <= 500 * r / u)) {
                    var m = i.loaded && i.loading.first, s = this.bwEstimator.getEstimate(), v = t.levels, c = t.minAutoLevel, o = v[l.level], a = i.total || Math.max(i.loaded, Math.round(r * o.maxBitrate / 8)), x = m ? i.loaded * 1e3 / f : 0, k = x ? (a - i.loaded) / x : a * 8 / s, K = e.len / u;
                    if (!(k <= K)) {
                      var w = Number.POSITIVE_INFINITY, W;
                      for (W = l.level - 1; W > c; W--) {
                        var z = v[W].maxBitrate;
                        if (w = x ? r * z / (8 * 0.8 * x) : r * z / s, w < K)
                          break;
                      }
                      w >= k || (R.logger.warn("Fragment " + l.sn + (n ? " part " + n.index : "") + " of level " + l.level + " is loading too slowly and will cause an underbuffer; aborting and switching to level " + W + `
      Current BW estimate: ` + ((0, P.isFiniteNumber)(s) ? (s / 1024).toFixed(3) : "Unknown") + ` Kb/s
      Estimated load time for current fragment: ` + k.toFixed(3) + ` s
      Estimated load time for the next fragment: ` + w.toFixed(3) + ` s
      Time to underbuffer: ` + K.toFixed(3) + " s"), t.nextLoadLevel = W, m && this.bwEstimator.sample(f, i.loaded), this.clearTimer(), l.loader && (this.fragCurrent = this.partCurrent = null, l.loader.abort()), t.trigger(O.Events.FRAG_LOAD_EMERGENCY_ABORTED, {
                        frag: l,
                        part: n,
                        stats: i
                      }));
                    }
                  }
                }
              }
            }
          }, _.onFragLoaded = function(l, n) {
            var t = n.frag, d = n.part;
            if (t.type === F.PlaylistLevelType.MAIN && (0, P.isFiniteNumber)(t.sn)) {
              var h = d ? d.stats : t.stats, i = d ? d.duration : t.duration;
              if (this.clearTimer(), this.lastLoadedFragLevel = t.level, this._nextAutoLevel = -1, this.hls.config.abrMaxWithRealBitrate) {
                var r = this.hls.levels[t.level], e = (r.loaded ? r.loaded.bytes : 0) + h.loaded, f = (r.loaded ? r.loaded.duration : 0) + i;
                r.loaded = {
                  bytes: e,
                  duration: f
                }, r.realBitrate = Math.round(8 * e / f);
              }
              if (t.bitrateTest) {
                var u = {
                  stats: h,
                  frag: t,
                  part: d,
                  id: t.type
                };
                this.onFragBuffered(O.Events.FRAG_BUFFERED, u);
              }
            }
          }, _.onFragBuffered = function(l, n) {
            var t = n.frag, d = n.part, h = d ? d.stats : t.stats;
            if (!h.aborted && !(t.type !== F.PlaylistLevelType.MAIN || t.sn === "initSegment")) {
              var i = h.parsing.end - h.loading.start;
              this.bwEstimator.sample(i, h.loaded), h.bwEstimate = this.bwEstimator.getEstimate(), t.bitrateTest ? this.bitrateTestDelay = i / 1e3 : this.bitrateTestDelay = 0;
            }
          }, _.onError = function(l, n) {
            switch (n.details) {
              case C.ErrorDetails.FRAG_LOAD_ERROR:
              case C.ErrorDetails.FRAG_LOAD_TIMEOUT:
                this.clearTimer();
                break;
            }
          }, _.clearTimer = function() {
            self.clearInterval(this.timer), this.timer = void 0;
          }, _.getNextABRAutoLevel = function() {
            var l = this.fragCurrent, n = this.partCurrent, t = this.hls, d = t.maxAutoLevel, h = t.config, i = t.minAutoLevel, r = t.media, e = n ? n.duration : l ? l.duration : 0;
            r && r.currentTime;
            var f = r && r.playbackRate !== 0 ? Math.abs(r.playbackRate) : 1, u = this.bwEstimator ? this.bwEstimator.getEstimate() : h.abrEwmaDefaultEstimate, m = t.mainForwardBufferInfo, s = (m ? m.len : 0) / f, v = this.findBestLevel(u, i, d, s, h.abrBandWidthFactor, h.abrBandWidthUpFactor);
            if (v >= 0)
              return v;
            R.logger.trace((s ? "rebuffering expected" : "buffer is empty") + ", finding optimal quality level");
            var c = e ? Math.min(e, h.maxStarvationDelay) : h.maxStarvationDelay, o = h.abrBandWidthFactor, a = h.abrBandWidthUpFactor;
            if (!s) {
              var x = this.bitrateTestDelay;
              if (x) {
                var k = e ? Math.min(e, h.maxLoadingDelay) : h.maxLoadingDelay;
                c = k - x, R.logger.trace("bitrate test took " + Math.round(1e3 * x) + "ms, set first fragment max fetchDuration to " + Math.round(1e3 * c) + " ms"), o = a = 1;
              }
            }
            return v = this.findBestLevel(u, i, d, s + c, o, a), Math.max(v, 0);
          }, _.findBestLevel = function(l, n, t, d, h, i) {
            for (var r, e = this.fragCurrent, f = this.partCurrent, u = this.lastLoadedFragLevel, m = this.hls.levels, s = m[u], v = !!(s != null && (r = s.details) !== null && r !== void 0 && r.live), c = s == null ? void 0 : s.codecSet, o = f ? f.duration : e ? e.duration : 0, a = t; a >= n; a--) {
              var x = m[a];
              if (!(!x || c && x.codecSet !== c)) {
                var k = x.details, K = (f ? k == null ? void 0 : k.partTarget : k == null ? void 0 : k.averagetargetduration) || o, w = void 0;
                a <= u ? w = h * l : w = i * l;
                var W = m[a].maxBitrate, z = W * K / w;
                if (R.logger.trace("level/adjustedbw/bitrate/avgDuration/maxFetchDuration/fetchDuration: " + a + "/" + Math.round(w) + "/" + W + "/" + K + "/" + d + "/" + z), w > W && (z === 0 || !(0, P.isFiniteNumber)(z) || v && !this.bitrateTestDelay || z < d))
                  return a;
              }
            }
            return -1;
          }, D(b, [{
            key: "nextAutoLevel",
            get: function() {
              var l = this._nextAutoLevel, n = this.bwEstimator;
              if (l !== -1 && !n.canEstimate())
                return l;
              var t = this.getNextABRAutoLevel();
              return l !== -1 && this.hls.levels[t].loadError ? l : (l !== -1 && (t = Math.min(l, t)), t);
            },
            set: function(l) {
              this._nextAutoLevel = l;
            }
          }]), b;
        }();
        const S = p;
      },
      "./src/controller/audio-stream-controller.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          default: () => r
        });
        var P = g("./src/polyfills/number.ts"), y = g("./src/controller/base-stream-controller.ts"), O = g("./src/events.ts"), C = g("./src/utils/buffer-helper.ts"), F = g("./src/controller/fragment-tracker.ts"), R = g("./src/types/level.ts"), T = g("./src/types/loader.ts"), D = g("./src/loader/fragment.ts"), p = g("./src/demux/chunk-cache.ts"), S = g("./src/demux/transmuxer-interface.ts"), b = g("./src/types/transmuxer.ts"), _ = g("./src/controller/fragment-finders.ts"), E = g("./src/utils/discontinuities.ts"), l = g("./src/errors.ts");
        function n() {
          return n = Object.assign ? Object.assign.bind() : function(e) {
            for (var f = 1; f < arguments.length; f++) {
              var u = arguments[f];
              for (var m in u)
                Object.prototype.hasOwnProperty.call(u, m) && (e[m] = u[m]);
            }
            return e;
          }, n.apply(this, arguments);
        }
        function t(e, f) {
          e.prototype = Object.create(f.prototype), e.prototype.constructor = e, d(e, f);
        }
        function d(e, f) {
          return d = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(m, s) {
            return m.__proto__ = s, m;
          }, d(e, f);
        }
        var h = 100, i = /* @__PURE__ */ function(e) {
          t(f, e);
          function f(m, s) {
            var v;
            return v = e.call(this, m, s, "[audio-stream-controller]") || this, v.videoBuffer = null, v.videoTrackCC = -1, v.waitingVideoCC = -1, v.audioSwitch = !1, v.trackId = -1, v.waitingData = null, v.mainDetails = null, v.bufferFlushed = !1, v.cachedTrackLoadedData = null, v._registerListeners(), v;
          }
          var u = f.prototype;
          return u.onHandlerDestroying = function() {
            this._unregisterListeners(), this.mainDetails = null;
          }, u._registerListeners = function() {
            var s = this.hls;
            s.on(O.Events.MEDIA_ATTACHED, this.onMediaAttached, this), s.on(O.Events.MEDIA_DETACHING, this.onMediaDetaching, this), s.on(O.Events.MANIFEST_LOADING, this.onManifestLoading, this), s.on(O.Events.LEVEL_LOADED, this.onLevelLoaded, this), s.on(O.Events.AUDIO_TRACKS_UPDATED, this.onAudioTracksUpdated, this), s.on(O.Events.AUDIO_TRACK_SWITCHING, this.onAudioTrackSwitching, this), s.on(O.Events.AUDIO_TRACK_LOADED, this.onAudioTrackLoaded, this), s.on(O.Events.ERROR, this.onError, this), s.on(O.Events.BUFFER_RESET, this.onBufferReset, this), s.on(O.Events.BUFFER_CREATED, this.onBufferCreated, this), s.on(O.Events.BUFFER_FLUSHED, this.onBufferFlushed, this), s.on(O.Events.INIT_PTS_FOUND, this.onInitPtsFound, this), s.on(O.Events.FRAG_BUFFERED, this.onFragBuffered, this);
          }, u._unregisterListeners = function() {
            var s = this.hls;
            s.off(O.Events.MEDIA_ATTACHED, this.onMediaAttached, this), s.off(O.Events.MEDIA_DETACHING, this.onMediaDetaching, this), s.off(O.Events.MANIFEST_LOADING, this.onManifestLoading, this), s.off(O.Events.LEVEL_LOADED, this.onLevelLoaded, this), s.off(O.Events.AUDIO_TRACKS_UPDATED, this.onAudioTracksUpdated, this), s.off(O.Events.AUDIO_TRACK_SWITCHING, this.onAudioTrackSwitching, this), s.off(O.Events.AUDIO_TRACK_LOADED, this.onAudioTrackLoaded, this), s.off(O.Events.ERROR, this.onError, this), s.off(O.Events.BUFFER_RESET, this.onBufferReset, this), s.off(O.Events.BUFFER_CREATED, this.onBufferCreated, this), s.off(O.Events.BUFFER_FLUSHED, this.onBufferFlushed, this), s.off(O.Events.INIT_PTS_FOUND, this.onInitPtsFound, this), s.off(O.Events.FRAG_BUFFERED, this.onFragBuffered, this);
          }, u.onInitPtsFound = function(s, v) {
            var c = v.frag, o = v.id, a = v.initPTS;
            if (o === "main") {
              var x = c.cc;
              this.initPTS[c.cc] = a, this.log("InitPTS for cc: " + x + " found from main: " + a), this.videoTrackCC = x, this.state === y.State.WAITING_INIT_PTS && this.tick();
            }
          }, u.startLoad = function(s) {
            if (!this.levels) {
              this.startPosition = s, this.state = y.State.STOPPED;
              return;
            }
            var v = this.lastCurrentTime;
            this.stopLoad(), this.setInterval(h), this.fragLoadError = 0, v > 0 && s === -1 ? (this.log("Override startPosition with lastCurrentTime @" + v.toFixed(3)), s = v, this.state = y.State.IDLE) : (this.loadedmetadata = !1, this.state = y.State.WAITING_TRACK), this.nextLoadPosition = this.startPosition = this.lastCurrentTime = s, this.tick();
          }, u.doTick = function() {
            switch (this.state) {
              case y.State.IDLE:
                this.doTickIdle();
                break;
              case y.State.WAITING_TRACK: {
                var s, v = this.levels, c = this.trackId, o = v == null || (s = v[c]) === null || s === void 0 ? void 0 : s.details;
                if (o) {
                  if (this.waitForCdnTuneIn(o))
                    break;
                  this.state = y.State.WAITING_INIT_PTS;
                }
                break;
              }
              case y.State.FRAG_LOADING_WAITING_RETRY: {
                var a, x = performance.now(), k = this.retryDate;
                (!k || x >= k || (a = this.media) !== null && a !== void 0 && a.seeking) && (this.log("RetryDate reached, switch back to IDLE state"), this.resetStartWhenNotLoaded(this.trackId), this.state = y.State.IDLE);
                break;
              }
              case y.State.WAITING_INIT_PTS: {
                var K = this.waitingData;
                if (K) {
                  var w = K.frag, W = K.part, z = K.cache, H = K.complete;
                  if (this.initPTS[w.cc] !== void 0) {
                    this.waitingData = null, this.waitingVideoCC = -1, this.state = y.State.FRAG_LOADING;
                    var j = z.flush(), Y = {
                      frag: w,
                      part: W,
                      payload: j,
                      networkDetails: null
                    };
                    this._handleFragmentLoadProgress(Y), H && e.prototype._handleFragmentLoadComplete.call(this, Y);
                  } else if (this.videoTrackCC !== this.waitingVideoCC)
                    this.log("Waiting fragment cc (" + w.cc + ") cancelled because video is at cc " + this.videoTrackCC), this.clearWaitingFragment();
                  else {
                    var Z = this.getLoadPosition(), q = C.BufferHelper.bufferInfo(this.mediaBuffer, Z, this.config.maxBufferHole), ee = (0, _.fragmentWithinToleranceTest)(q.end, this.config.maxFragLookUpTolerance, w);
                    ee < 0 && (this.log("Waiting fragment cc (" + w.cc + ") @ " + w.start + " cancelled because another fragment at " + q.end + " is needed"), this.clearWaitingFragment());
                  }
                } else
                  this.state = y.State.IDLE;
              }
            }
            this.onTickEnd();
          }, u.clearWaitingFragment = function() {
            var s = this.waitingData;
            s && (this.fragmentTracker.removeFragment(s.frag), this.waitingData = null, this.waitingVideoCC = -1, this.state = y.State.IDLE);
          }, u.resetLoadingState = function() {
            this.clearWaitingFragment(), e.prototype.resetLoadingState.call(this);
          }, u.onTickEnd = function() {
            var s = this.media;
            if (!(!s || !s.readyState)) {
              var v = this.mediaBuffer ? this.mediaBuffer : s, c = v.buffered;
              !this.loadedmetadata && c.length && (this.loadedmetadata = !0), this.lastCurrentTime = s.currentTime;
            }
          }, u.doTickIdle = function() {
            var s, v, c = this.hls, o = this.levels, a = this.media, x = this.trackId, k = c.config;
            if (!(!o || !o[x]) && !(!a && (this.startFragRequested || !k.startFragPrefetch))) {
              var K = o[x], w = K.details;
              if (!w || w.live && this.levelLastLoaded !== x || this.waitForCdnTuneIn(w)) {
                this.state = y.State.WAITING_TRACK;
                return;
              }
              var W = this.mediaBuffer ? this.mediaBuffer : this.media;
              this.bufferFlushed && W && (this.bufferFlushed = !1, this.afterBufferFlushed(W, D.ElementaryStreamTypes.AUDIO, T.PlaylistLevelType.AUDIO));
              var z = this.getFwdBufferInfo(W, T.PlaylistLevelType.AUDIO);
              if (z !== null) {
                var H = this.getFwdBufferInfo(this.videoBuffer ? this.videoBuffer : this.media, T.PlaylistLevelType.MAIN), j = z.len, Y = this.getMaxBufferLength(H == null ? void 0 : H.len), Z = this.audioSwitch;
                if (!(j >= Y && !Z)) {
                  if (!Z && this._streamEnded(z, w)) {
                    c.trigger(O.Events.BUFFER_EOS, {
                      type: "audio"
                    }), this.state = y.State.ENDED;
                    return;
                  }
                  var q = w.fragments, ee = q[0].start, te = z.end;
                  if (Z && a) {
                    var ne = this.getLoadPosition();
                    te = ne, w.PTSKnown && ne < ee && (z.end > ee || z.nextStart) && (this.log("Alt audio track ahead of main track, seek to start of alt audio track"), a.currentTime = ee + 0.05);
                  }
                  if (!(H && te > H.end + w.targetduration) && !((!H || !H.len) && z.len)) {
                    var ie = this.getNextFragment(te, w);
                    if (!ie) {
                      this.bufferFlushed = !0;
                      return;
                    }
                    ((s = ie.decryptdata) === null || s === void 0 ? void 0 : s.keyFormat) === "identity" && !((v = ie.decryptdata) !== null && v !== void 0 && v.key) ? this.loadKey(ie, w) : this.loadFragment(ie, w, te);
                  }
                }
              }
            }
          }, u.getMaxBufferLength = function(s) {
            var v = e.prototype.getMaxBufferLength.call(this);
            return s ? Math.max(v, s) : v;
          }, u.onMediaDetaching = function() {
            this.videoBuffer = null, e.prototype.onMediaDetaching.call(this);
          }, u.onAudioTracksUpdated = function(s, v) {
            var c = v.audioTracks;
            this.resetTransmuxer(), this.levels = c.map(function(o) {
              return new R.Level(o);
            });
          }, u.onAudioTrackSwitching = function(s, v) {
            var c = !!v.url;
            this.trackId = v.id;
            var o = this.fragCurrent;
            o != null && o.loader && o.loader.abort(), this.fragCurrent = null, this.clearWaitingFragment(), c ? this.setInterval(h) : this.resetTransmuxer(), c ? (this.audioSwitch = !0, this.state = y.State.IDLE) : this.state = y.State.STOPPED, this.tick();
          }, u.onManifestLoading = function() {
            this.mainDetails = null, this.fragmentTracker.removeAllFragments(), this.startPosition = this.lastCurrentTime = 0, this.bufferFlushed = !1;
          }, u.onLevelLoaded = function(s, v) {
            this.mainDetails = v.details, this.cachedTrackLoadedData !== null && (this.hls.trigger(O.Events.AUDIO_TRACK_LOADED, this.cachedTrackLoadedData), this.cachedTrackLoadedData = null);
          }, u.onAudioTrackLoaded = function(s, v) {
            var c;
            if (this.mainDetails == null) {
              this.cachedTrackLoadedData = v;
              return;
            }
            var o = this.levels, a = v.details, x = v.id;
            if (!o) {
              this.warn("Audio tracks were reset while loading level " + x);
              return;
            }
            this.log("Track " + x + " loaded [" + a.startSN + "," + a.endSN + "],duration:" + a.totalduration);
            var k = o[x], K = 0;
            if (a.live || (c = k.details) !== null && c !== void 0 && c.live) {
              var w = this.mainDetails;
              if (a.fragments[0] || (a.deltaUpdateFailed = !0), a.deltaUpdateFailed || !w)
                return;
              !k.details && a.hasProgramDateTime && w.hasProgramDateTime ? ((0, E.alignMediaPlaylistByPDT)(a, w), K = a.fragments[0].start) : K = this.alignPlaylists(a, k.details);
            }
            k.details = a, this.levelLastLoaded = x, !this.startFragRequested && (this.mainDetails || !a.live) && this.setStartPosition(k.details, K), this.state === y.State.WAITING_TRACK && !this.waitForCdnTuneIn(a) && (this.state = y.State.IDLE), this.tick();
          }, u._handleFragmentLoadProgress = function(s) {
            var v, c = s.frag, o = s.part, a = s.payload, x = this.config, k = this.trackId, K = this.levels;
            if (!K) {
              this.warn("Audio tracks were reset while fragment load was in progress. Fragment " + c.sn + " of level " + c.level + " will not be buffered");
              return;
            }
            var w = K[k];
            console.assert(w, "Audio track is defined on fragment load progress");
            var W = w.details;
            console.assert(W, "Audio track details are defined on fragment load progress");
            var z = x.defaultAudioCodec || w.audioCodec || "mp4a.40.2", H = this.transmuxer;
            H || (H = this.transmuxer = new S.default(this.hls, T.PlaylistLevelType.AUDIO, this._handleTransmuxComplete.bind(this), this._handleTransmuxerFlush.bind(this)));
            var j = this.initPTS[c.cc], Y = (v = c.initSegment) === null || v === void 0 ? void 0 : v.data;
            if (j !== void 0) {
              var Z = !1, q = o ? o.index : -1, ee = q !== -1, te = new b.ChunkMetadata(c.level, c.sn, c.stats.chunkCount, a.byteLength, q, ee);
              H.push(a, Y, z, "", c, o, W.totalduration, Z, te, j);
            } else {
              this.log("Unknown video PTS for cc " + c.cc + ", waiting for video PTS before demuxing audio frag " + c.sn + " of [" + W.startSN + " ," + W.endSN + "],track " + k);
              var ne = this.waitingData = this.waitingData || {
                frag: c,
                part: o,
                cache: new p.default(),
                complete: !1
              }, ie = ne.cache;
              ie.push(new Uint8Array(a)), this.waitingVideoCC = this.videoTrackCC, this.state = y.State.WAITING_INIT_PTS;
            }
          }, u._handleFragmentLoadComplete = function(s) {
            if (this.waitingData) {
              this.waitingData.complete = !0;
              return;
            }
            e.prototype._handleFragmentLoadComplete.call(this, s);
          }, u.onBufferReset = function() {
            this.mediaBuffer = this.videoBuffer = null, this.loadedmetadata = !1;
          }, u.onBufferCreated = function(s, v) {
            var c = v.tracks.audio;
            c && (this.mediaBuffer = c.buffer || null), v.tracks.video && (this.videoBuffer = v.tracks.video.buffer || null);
          }, u.onFragBuffered = function(s, v) {
            var c = v.frag, o = v.part;
            if (c.type === T.PlaylistLevelType.AUDIO) {
              if (this.fragContextChanged(c)) {
                this.warn("Fragment " + c.sn + (o ? " p: " + o.index : "") + " of level " + c.level + " finished buffering, but was aborted. state: " + this.state + ", audioSwitch: " + this.audioSwitch);
                return;
              }
              c.sn !== "initSegment" && (this.fragPrevious = c, this.audioSwitch && (this.audioSwitch = !1, this.hls.trigger(O.Events.AUDIO_TRACK_SWITCHED, {
                id: this.trackId
              }))), this.fragBufferedComplete(c, o);
            }
          }, u.onError = function(s, v) {
            switch (v.details) {
              case l.ErrorDetails.FRAG_LOAD_ERROR:
              case l.ErrorDetails.FRAG_LOAD_TIMEOUT:
              case l.ErrorDetails.KEY_LOAD_ERROR:
              case l.ErrorDetails.KEY_LOAD_TIMEOUT:
                this.onFragmentOrKeyLoadError(T.PlaylistLevelType.AUDIO, v);
                break;
              case l.ErrorDetails.AUDIO_TRACK_LOAD_ERROR:
              case l.ErrorDetails.AUDIO_TRACK_LOAD_TIMEOUT:
                this.state !== y.State.ERROR && this.state !== y.State.STOPPED && (this.state = v.fatal ? y.State.ERROR : y.State.IDLE, this.warn(v.details + " while loading frag, switching to " + this.state + " state"));
                break;
              case l.ErrorDetails.BUFFER_FULL_ERROR:
                if (v.parent === "audio" && (this.state === y.State.PARSING || this.state === y.State.PARSED)) {
                  var c = !0, o = this.getFwdBufferInfo(this.mediaBuffer, T.PlaylistLevelType.AUDIO);
                  o && o.len > 0.5 && (c = !this.reduceMaxBufferLength(o.len)), c && (this.warn("Buffer full error also media.currentTime is not buffered, flush audio buffer"), this.fragCurrent = null, e.prototype.flushMainBuffer.call(this, 0, Number.POSITIVE_INFINITY, "audio")), this.resetLoadingState();
                }
                break;
            }
          }, u.onBufferFlushed = function(s, v) {
            var c = v.type;
            c === D.ElementaryStreamTypes.AUDIO && (this.bufferFlushed = !0);
          }, u._handleTransmuxComplete = function(s) {
            var v, c = "audio", o = this.hls, a = s.remuxResult, x = s.chunkMeta, k = this.getCurrentContext(x);
            if (!k) {
              this.warn("The loading context changed while buffering fragment " + x.sn + " of level " + x.level + ". This chunk will not be buffered."), this.resetStartWhenNotLoaded(x.level);
              return;
            }
            var K = k.frag, w = k.part, W = k.level.details, z = a.audio, H = a.text, j = a.id3, Y = a.initSegment;
            if (!(this.fragContextChanged(K) || !W)) {
              if (this.state = y.State.PARSING, this.audioSwitch && z && this.completeAudioSwitch(), Y != null && Y.tracks && (this._bufferInitSegment(Y.tracks, K, x), o.trigger(O.Events.FRAG_PARSING_INIT_SEGMENT, {
                frag: K,
                id: c,
                tracks: Y.tracks
              })), z) {
                var Z = z.startPTS, q = z.endPTS, ee = z.startDTS, te = z.endDTS;
                w && (w.elementaryStreams[D.ElementaryStreamTypes.AUDIO] = {
                  startPTS: Z,
                  endPTS: q,
                  startDTS: ee,
                  endDTS: te
                }), K.setElementaryStreamInfo(D.ElementaryStreamTypes.AUDIO, Z, q, ee, te), this.bufferFragmentData(z, K, w, x);
              }
              if (j != null && (v = j.samples) !== null && v !== void 0 && v.length) {
                var ne = n({
                  id: c,
                  frag: K,
                  details: W
                }, j);
                o.trigger(O.Events.FRAG_PARSING_METADATA, ne);
              }
              if (H) {
                var ie = n({
                  id: c,
                  frag: K,
                  details: W
                }, H);
                o.trigger(O.Events.FRAG_PARSING_USERDATA, ie);
              }
            }
          }, u._bufferInitSegment = function(s, v, c) {
            if (this.state === y.State.PARSING) {
              s.video && delete s.video;
              var o = s.audio;
              if (!!o) {
                o.levelCodec = o.codec, o.id = "audio", this.log("Init audio buffer, container:" + o.container + ", codecs[parsed]=[" + o.codec + "]"), this.hls.trigger(O.Events.BUFFER_CODECS, s);
                var a = o.initSegment;
                if (a != null && a.byteLength) {
                  var x = {
                    type: "audio",
                    frag: v,
                    part: null,
                    chunkMeta: c,
                    parent: v.type,
                    data: a
                  };
                  this.hls.trigger(O.Events.BUFFER_APPENDING, x);
                }
                this.tick();
              }
            }
          }, u.loadFragment = function(s, v, c) {
            var o = this.fragmentTracker.getState(s);
            this.fragCurrent = s, (this.audioSwitch || o === F.FragmentState.NOT_LOADED || o === F.FragmentState.PARTIAL) && (s.sn === "initSegment" ? this._loadInitSegment(s) : v.live && !(0, P.isFiniteNumber)(this.initPTS[s.cc]) ? (this.log("Waiting for video PTS in continuity counter " + s.cc + " of live stream before loading audio fragment " + s.sn + " of level " + this.trackId), this.state = y.State.WAITING_INIT_PTS) : (this.startFragRequested = !0, e.prototype.loadFragment.call(this, s, v, c)));
          }, u.completeAudioSwitch = function() {
            var s = this.hls, v = this.media, c = this.trackId;
            v && (this.log("Switching audio track : flushing all audio"), e.prototype.flushMainBuffer.call(this, 0, Number.POSITIVE_INFINITY, "audio")), this.audioSwitch = !1, s.trigger(O.Events.AUDIO_TRACK_SWITCHED, {
              id: c
            });
          }, f;
        }(y.default);
        const r = i;
      },
      "./src/controller/audio-track-controller.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          default: () => S
        });
        var P = g("./src/events.ts"), y = g("./src/errors.ts"), O = g("./src/controller/base-playlist-controller.ts"), C = g("./src/types/loader.ts");
        function F(b, _) {
          for (var E = 0; E < _.length; E++) {
            var l = _[E];
            l.enumerable = l.enumerable || !1, l.configurable = !0, "value" in l && (l.writable = !0), Object.defineProperty(b, l.key, l);
          }
        }
        function R(b, _, E) {
          return _ && F(b.prototype, _), E && F(b, E), Object.defineProperty(b, "prototype", { writable: !1 }), b;
        }
        function T(b, _) {
          b.prototype = Object.create(_.prototype), b.prototype.constructor = b, D(b, _);
        }
        function D(b, _) {
          return D = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(l, n) {
            return l.__proto__ = n, l;
          }, D(b, _);
        }
        var p = /* @__PURE__ */ function(b) {
          T(_, b);
          function _(l) {
            var n;
            return n = b.call(this, l, "[audio-track-controller]") || this, n.tracks = [], n.groupId = null, n.tracksInGroup = [], n.trackId = -1, n.trackName = "", n.selectDefaultTrack = !0, n.registerListeners(), n;
          }
          var E = _.prototype;
          return E.registerListeners = function() {
            var n = this.hls;
            n.on(P.Events.MANIFEST_LOADING, this.onManifestLoading, this), n.on(P.Events.MANIFEST_PARSED, this.onManifestParsed, this), n.on(P.Events.LEVEL_LOADING, this.onLevelLoading, this), n.on(P.Events.LEVEL_SWITCHING, this.onLevelSwitching, this), n.on(P.Events.AUDIO_TRACK_LOADED, this.onAudioTrackLoaded, this), n.on(P.Events.ERROR, this.onError, this);
          }, E.unregisterListeners = function() {
            var n = this.hls;
            n.off(P.Events.MANIFEST_LOADING, this.onManifestLoading, this), n.off(P.Events.MANIFEST_PARSED, this.onManifestParsed, this), n.off(P.Events.LEVEL_LOADING, this.onLevelLoading, this), n.off(P.Events.LEVEL_SWITCHING, this.onLevelSwitching, this), n.off(P.Events.AUDIO_TRACK_LOADED, this.onAudioTrackLoaded, this), n.off(P.Events.ERROR, this.onError, this);
          }, E.destroy = function() {
            this.unregisterListeners(), this.tracks.length = 0, this.tracksInGroup.length = 0, b.prototype.destroy.call(this);
          }, E.onManifestLoading = function() {
            this.tracks = [], this.groupId = null, this.tracksInGroup = [], this.trackId = -1, this.trackName = "", this.selectDefaultTrack = !0;
          }, E.onManifestParsed = function(n, t) {
            this.tracks = t.audioTracks || [];
          }, E.onAudioTrackLoaded = function(n, t) {
            var d = t.id, h = t.details, i = this.tracksInGroup[d];
            if (!i) {
              this.warn("Invalid audio track id " + d);
              return;
            }
            var r = i.details;
            i.details = t.details, this.log("audioTrack " + d + " loaded [" + h.startSN + "-" + h.endSN + "]"), d === this.trackId && (this.retryCount = 0, this.playlistLoaded(d, t, r));
          }, E.onLevelLoading = function(n, t) {
            this.switchLevel(t.level);
          }, E.onLevelSwitching = function(n, t) {
            this.switchLevel(t.level);
          }, E.switchLevel = function(n) {
            var t = this.hls.levels[n];
            if (!!(t != null && t.audioGroupIds)) {
              var d = t.audioGroupIds[t.urlId];
              if (this.groupId !== d) {
                this.groupId = d;
                var h = this.tracks.filter(function(r) {
                  return !d || r.groupId === d;
                });
                this.selectDefaultTrack && !h.some(function(r) {
                  return r.default;
                }) && (this.selectDefaultTrack = !1), this.tracksInGroup = h;
                var i = {
                  audioTracks: h
                };
                this.log("Updating audio tracks, " + h.length + ' track(s) found in "' + d + '" group-id'), this.hls.trigger(P.Events.AUDIO_TRACKS_UPDATED, i), this.selectInitialTrack();
              }
            }
          }, E.onError = function(n, t) {
            b.prototype.onError.call(this, n, t), !(t.fatal || !t.context) && t.context.type === C.PlaylistContextType.AUDIO_TRACK && t.context.id === this.trackId && t.context.groupId === this.groupId && this.retryLoadingOrFail(t);
          }, E.setAudioTrack = function(n) {
            var t = this.tracksInGroup;
            if (n < 0 || n >= t.length) {
              this.warn("Invalid id passed to audio-track controller");
              return;
            }
            this.clearTimer();
            var d = t[this.trackId];
            this.log("Now switching to audio-track index " + n);
            var h = t[n], i = h.id, r = h.groupId, e = r === void 0 ? "" : r, f = h.name, u = h.type, m = h.url;
            if (this.trackId = n, this.trackName = f, this.selectDefaultTrack = !1, this.hls.trigger(P.Events.AUDIO_TRACK_SWITCHING, {
              id: i,
              groupId: e,
              name: f,
              type: u,
              url: m
            }), !(h.details && !h.details.live)) {
              var s = this.switchParams(h.url, d == null ? void 0 : d.details);
              this.loadPlaylist(s);
            }
          }, E.selectInitialTrack = function() {
            var n = this.tracksInGroup;
            console.assert(n.length, "Initial audio track should be selected when tracks are known");
            var t = this.trackName, d = this.findTrackId(t) || this.findTrackId();
            d !== -1 ? this.setAudioTrack(d) : (this.warn("No track found for running audio group-ID: " + this.groupId), this.hls.trigger(P.Events.ERROR, {
              type: y.ErrorTypes.MEDIA_ERROR,
              details: y.ErrorDetails.AUDIO_TRACK_LOAD_ERROR,
              fatal: !0
            }));
          }, E.findTrackId = function(n) {
            for (var t = this.tracksInGroup, d = 0; d < t.length; d++) {
              var h = t[d];
              if ((!this.selectDefaultTrack || h.default) && (!n || n === h.name))
                return h.id;
            }
            return -1;
          }, E.loadPlaylist = function(n) {
            var t = this.tracksInGroup[this.trackId];
            if (this.shouldLoadTrack(t)) {
              var d = t.id, h = t.groupId, i = t.url;
              if (n)
                try {
                  i = n.addDirectives(i);
                } catch (r) {
                  this.warn("Could not construct new URL with HLS Delivery Directives: " + r);
                }
              this.log("loading audio-track playlist for id: " + d), this.clearTimer(), this.hls.trigger(P.Events.AUDIO_TRACK_LOADING, {
                url: i,
                id: d,
                groupId: h,
                deliveryDirectives: n || null
              });
            }
          }, R(_, [{
            key: "audioTracks",
            get: function() {
              return this.tracksInGroup;
            }
          }, {
            key: "audioTrack",
            get: function() {
              return this.trackId;
            },
            set: function(n) {
              this.selectDefaultTrack = !1, this.setAudioTrack(n);
            }
          }]), _;
        }(O.default);
        const S = p;
      },
      "./src/controller/base-playlist-controller.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          default: () => R
        });
        var P = g("./src/polyfills/number.ts"), y = g("./src/types/level.ts"), O = g("./src/controller/level-helper.ts"), C = g("./src/utils/logger.ts"), F = g("./src/errors.ts"), R = /* @__PURE__ */ function() {
          function T(p, S) {
            this.hls = void 0, this.timer = -1, this.canLoad = !1, this.retryCount = 0, this.log = void 0, this.warn = void 0, this.log = C.logger.log.bind(C.logger, S + ":"), this.warn = C.logger.warn.bind(C.logger, S + ":"), this.hls = p;
          }
          var D = T.prototype;
          return D.destroy = function() {
            this.clearTimer(), this.hls = this.log = this.warn = null;
          }, D.onError = function(S, b) {
            b.fatal && b.type === F.ErrorTypes.NETWORK_ERROR && this.clearTimer();
          }, D.clearTimer = function() {
            clearTimeout(this.timer), this.timer = -1;
          }, D.startLoad = function() {
            this.canLoad = !0, this.retryCount = 0, this.loadPlaylist();
          }, D.stopLoad = function() {
            this.canLoad = !1, this.clearTimer();
          }, D.switchParams = function(S, b) {
            var _ = b == null ? void 0 : b.renditionReports;
            if (_)
              for (var E = 0; E < _.length; E++) {
                var l = _[E], n = "" + l.URI;
                if (n === S.slice(-n.length)) {
                  var t = parseInt(l["LAST-MSN"]), d = parseInt(l["LAST-PART"]);
                  if (b && this.hls.config.lowLatencyMode) {
                    var h = Math.min(b.age - b.partTarget, b.targetduration);
                    d !== void 0 && h > b.partTarget && (d += 1);
                  }
                  if ((0, P.isFiniteNumber)(t))
                    return new y.HlsUrlParameters(t, (0, P.isFiniteNumber)(d) ? d : void 0, y.HlsSkip.No);
                }
              }
          }, D.loadPlaylist = function(S) {
          }, D.shouldLoadTrack = function(S) {
            return this.canLoad && S && !!S.url && (!S.details || S.details.live);
          }, D.playlistLoaded = function(S, b, _) {
            var E = this, l = b.details, n = b.stats, t = n.loading.end ? Math.max(0, self.performance.now() - n.loading.end) : 0;
            if (l.advancedDateTime = Date.now() - t, l.live || _ != null && _.live) {
              if (l.reloaded(_), _ && this.log("live playlist " + S + " " + (l.advanced ? "REFRESHED " + l.lastPartSn + "-" + l.lastPartIndex : "MISSED")), _ && l.fragments.length > 0 && (0, O.mergeDetails)(_, l), !this.canLoad || !l.live)
                return;
              var d, h = void 0, i = void 0;
              if (l.canBlockReload && l.endSN && l.advanced) {
                var r = this.hls.config.lowLatencyMode, e = l.lastPartSn, f = l.endSN, u = l.lastPartIndex, m = u !== -1, s = e === f, v = r ? 0 : u;
                m ? (h = s ? f + 1 : e, i = s ? v : u + 1) : h = f + 1;
                var c = l.age, o = c + l.ageHeader, a = Math.min(o - l.partTarget, l.targetduration * 1.5);
                if (a > 0) {
                  if (_ && a > _.tuneInGoal)
                    this.warn("CDN Tune-in goal increased from: " + _.tuneInGoal + " to: " + a + " with playlist age: " + l.age), a = 0;
                  else {
                    var x = Math.floor(a / l.targetduration);
                    if (h += x, i !== void 0) {
                      var k = Math.round(a % l.targetduration / l.partTarget);
                      i += k;
                    }
                    this.log("CDN Tune-in age: " + l.ageHeader + "s last advanced " + c.toFixed(2) + "s goal: " + a + " skip sn " + x + " to part " + i);
                  }
                  l.tuneInGoal = a;
                }
                if (d = this.getDeliveryDirectives(l, b.deliveryDirectives, h, i), r || !s) {
                  this.loadPlaylist(d);
                  return;
                }
              } else
                d = this.getDeliveryDirectives(l, b.deliveryDirectives, h, i);
              var K = (0, O.computeReloadInterval)(l, n);
              h !== void 0 && l.canBlockReload && (K -= l.partTarget || 1), this.log("reload live playlist " + S + " in " + Math.round(K) + " ms"), this.timer = self.setTimeout(function() {
                return E.loadPlaylist(d);
              }, K);
            } else
              this.clearTimer();
          }, D.getDeliveryDirectives = function(S, b, _, E) {
            var l = (0, y.getSkipValue)(S, _);
            return b != null && b.skip && S.deltaUpdateFailed && (_ = b.msn, E = b.part, l = y.HlsSkip.No), new y.HlsUrlParameters(_, E, l);
          }, D.retryLoadingOrFail = function(S) {
            var b = this, _ = this.hls.config, E = this.retryCount < _.levelLoadingMaxRetry;
            if (E) {
              var l;
              if (this.retryCount++, S.details.indexOf("LoadTimeOut") > -1 && (l = S.context) !== null && l !== void 0 && l.deliveryDirectives)
                this.warn("retry playlist loading #" + this.retryCount + ' after "' + S.details + '"'), this.loadPlaylist();
              else {
                var n = Math.min(Math.pow(2, this.retryCount) * _.levelLoadingRetryDelay, _.levelLoadingMaxRetryTimeout);
                this.timer = self.setTimeout(function() {
                  return b.loadPlaylist();
                }, n), this.warn("retry playlist loading #" + this.retryCount + " in " + n + ' ms after "' + S.details + '"');
              }
            } else
              this.warn('cannot recover from error "' + S.details + '"'), this.clearTimer(), S.fatal = !0;
            return E;
          }, T;
        }();
      },
      "./src/controller/base-stream-controller.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          State: () => f,
          default: () => u
        });
        var P = g("./src/polyfills/number.ts"), y = g("./src/task-loop.ts"), O = g("./src/controller/fragment-tracker.ts"), C = g("./src/utils/buffer-helper.ts"), F = g("./src/utils/logger.ts"), R = g("./src/events.ts"), T = g("./src/errors.ts"), D = g("./src/types/transmuxer.ts"), p = g("./src/utils/mp4-tools.ts"), S = g("./src/utils/discontinuities.ts"), b = g("./src/controller/fragment-finders.ts"), _ = g("./src/controller/level-helper.ts"), E = g("./src/loader/fragment-loader.ts"), l = g("./src/crypt/decrypter.ts"), n = g("./src/utils/time-ranges.ts"), t = g("./src/types/loader.ts");
        function d(m, s) {
          for (var v = 0; v < s.length; v++) {
            var c = s[v];
            c.enumerable = c.enumerable || !1, c.configurable = !0, "value" in c && (c.writable = !0), Object.defineProperty(m, c.key, c);
          }
        }
        function h(m, s, v) {
          return s && d(m.prototype, s), v && d(m, v), Object.defineProperty(m, "prototype", { writable: !1 }), m;
        }
        function i(m) {
          if (m === void 0)
            throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
          return m;
        }
        function r(m, s) {
          m.prototype = Object.create(s.prototype), m.prototype.constructor = m, e(m, s);
        }
        function e(m, s) {
          return e = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(c, o) {
            return c.__proto__ = o, c;
          }, e(m, s);
        }
        var f = {
          STOPPED: "STOPPED",
          IDLE: "IDLE",
          KEY_LOADING: "KEY_LOADING",
          FRAG_LOADING: "FRAG_LOADING",
          FRAG_LOADING_WAITING_RETRY: "FRAG_LOADING_WAITING_RETRY",
          WAITING_TRACK: "WAITING_TRACK",
          PARSING: "PARSING",
          PARSED: "PARSED",
          ENDED: "ENDED",
          ERROR: "ERROR",
          WAITING_INIT_PTS: "WAITING_INIT_PTS",
          WAITING_LEVEL: "WAITING_LEVEL"
        }, u = /* @__PURE__ */ function(m) {
          r(s, m);
          function s(c, o, a) {
            var x;
            return x = m.call(this) || this, x.hls = void 0, x.fragPrevious = null, x.fragCurrent = null, x.fragmentTracker = void 0, x.transmuxer = null, x._state = f.STOPPED, x.media = null, x.mediaBuffer = null, x.config = void 0, x.bitrateTest = !1, x.lastCurrentTime = 0, x.nextLoadPosition = 0, x.startPosition = 0, x.loadedmetadata = !1, x.fragLoadError = 0, x.retryDate = 0, x.levels = null, x.fragmentLoader = void 0, x.levelLastLoaded = null, x.startFragRequested = !1, x.decrypter = void 0, x.initPTS = [], x.onvseeking = null, x.onvended = null, x.logPrefix = "", x.log = void 0, x.warn = void 0, x.logPrefix = a, x.log = F.logger.log.bind(F.logger, a + ":"), x.warn = F.logger.warn.bind(F.logger, a + ":"), x.hls = c, x.fragmentLoader = new E.default(c.config), x.fragmentTracker = o, x.config = c.config, x.decrypter = new l.default(c, c.config), c.on(R.Events.KEY_LOADED, x.onKeyLoaded, i(x)), c.on(R.Events.LEVEL_SWITCHING, x.onLevelSwitching, i(x)), x;
          }
          var v = s.prototype;
          return v.doTick = function() {
            this.onTickEnd();
          }, v.onTickEnd = function() {
          }, v.startLoad = function(o) {
          }, v.stopLoad = function() {
            this.fragmentLoader.abort();
            var o = this.fragCurrent;
            o && this.fragmentTracker.removeFragment(o), this.resetTransmuxer(), this.fragCurrent = null, this.fragPrevious = null, this.clearInterval(), this.clearNextTick(), this.state = f.STOPPED;
          }, v._streamEnded = function(o, a) {
            var x = this.fragCurrent, k = this.fragmentTracker;
            if (!a.live && x && this.media && x.sn >= a.endSN && !o.nextStart) {
              var K = a.partList;
              if (K != null && K.length) {
                var w = K[K.length - 1], W = C.BufferHelper.isBuffered(this.media, w.start + w.duration / 2);
                return W;
              }
              var z = k.getState(x);
              return z === O.FragmentState.PARTIAL || z === O.FragmentState.OK;
            }
            return !1;
          }, v.onMediaAttached = function(o, a) {
            var x = this.media = this.mediaBuffer = a.media;
            this.onvseeking = this.onMediaSeeking.bind(this), this.onvended = this.onMediaEnded.bind(this), x.addEventListener("seeking", this.onvseeking), x.addEventListener("ended", this.onvended);
            var k = this.config;
            this.levels && k.autoStartLoad && this.state === f.STOPPED && this.startLoad(k.startPosition);
          }, v.onMediaDetaching = function() {
            var o = this.media;
            o != null && o.ended && (this.log("MSE detaching and video ended, reset startPosition"), this.startPosition = this.lastCurrentTime = 0), o && this.onvseeking && this.onvended && (o.removeEventListener("seeking", this.onvseeking), o.removeEventListener("ended", this.onvended), this.onvseeking = this.onvended = null), this.media = this.mediaBuffer = null, this.loadedmetadata = !1, this.fragmentTracker.removeAllFragments(), this.stopLoad();
          }, v.onMediaSeeking = function() {
            var o = this.config, a = this.fragCurrent, x = this.media, k = this.mediaBuffer, K = this.state, w = x ? x.currentTime : 0, W = C.BufferHelper.bufferInfo(k || x, w, o.maxBufferHole);
            if (this.log("media seeking to " + ((0, P.isFiniteNumber)(w) ? w.toFixed(3) : w) + ", state: " + K), K === f.ENDED)
              this.resetLoadingState();
            else if (a && !W.len) {
              var z = o.maxFragLookUpTolerance, H = a.start - z, j = a.start + a.duration + z, Y = w > j;
              (w < H || Y) && (Y && a.loader && (this.log("seeking outside of buffer while fragment load in progress, cancel fragment load"), a.loader.abort()), this.resetLoadingState());
            }
            x && (this.lastCurrentTime = w), !this.loadedmetadata && !W.len && (this.nextLoadPosition = this.startPosition = w), this.tickImmediate();
          }, v.onMediaEnded = function() {
            this.startPosition = this.lastCurrentTime = 0;
          }, v.onKeyLoaded = function(o, a) {
            if (!(this.state !== f.KEY_LOADING || a.frag !== this.fragCurrent || !this.levels)) {
              this.state = f.IDLE;
              var x = this.levels[a.frag.level].details;
              x && this.loadFragment(a.frag, x, a.frag.start);
            }
          }, v.onLevelSwitching = function(o, a) {
            this.fragLoadError = 0;
          }, v.onHandlerDestroying = function() {
            this.stopLoad(), m.prototype.onHandlerDestroying.call(this);
          }, v.onHandlerDestroyed = function() {
            this.state = f.STOPPED, this.hls.off(R.Events.KEY_LOADED, this.onKeyLoaded, this), this.hls.off(R.Events.LEVEL_SWITCHING, this.onLevelSwitching, this), this.fragmentLoader && this.fragmentLoader.destroy(), this.decrypter && this.decrypter.destroy(), this.hls = this.log = this.warn = this.decrypter = this.fragmentLoader = this.fragmentTracker = null, m.prototype.onHandlerDestroyed.call(this);
          }, v.loadKey = function(o, a) {
            this.log("Loading key for " + o.sn + " of [" + a.startSN + "-" + a.endSN + "], " + (this.logPrefix === "[stream-controller]" ? "level" : "track") + " " + o.level), this.state = f.KEY_LOADING, this.fragCurrent = o, this.hls.trigger(R.Events.KEY_LOADING, {
              frag: o
            });
          }, v.loadFragment = function(o, a, x) {
            this._loadFragForPlayback(o, a, x);
          }, v._loadFragForPlayback = function(o, a, x) {
            var k = this, K = function(W) {
              if (k.fragContextChanged(o)) {
                k.warn("Fragment " + o.sn + (W.part ? " p: " + W.part.index : "") + " of level " + o.level + " was dropped during download."), k.fragmentTracker.removeFragment(o);
                return;
              }
              o.stats.chunkCount++, k._handleFragmentLoadProgress(W);
            };
            this._doFragLoad(o, a, x, K).then(function(w) {
              if (!!w) {
                k.fragLoadError = 0;
                var W = k.state;
                if (k.fragContextChanged(o)) {
                  (W === f.FRAG_LOADING || !k.fragCurrent && W === f.PARSING) && (k.fragmentTracker.removeFragment(o), k.state = f.IDLE);
                  return;
                }
                "payload" in w && (k.log("Loaded fragment " + o.sn + " of level " + o.level), k.hls.trigger(R.Events.FRAG_LOADED, w)), k._handleFragmentLoadComplete(w);
              }
            }).catch(function(w) {
              k.state === f.STOPPED || k.state === f.ERROR || (k.warn(w), k.resetFragmentLoading(o));
            });
          }, v.flushMainBuffer = function(o, a, x) {
            if (x === void 0 && (x = null), !!(o - a)) {
              var k = {
                startOffset: o,
                endOffset: a,
                type: x
              };
              this.fragLoadError = 0, this.hls.trigger(R.Events.BUFFER_FLUSHING, k);
            }
          }, v._loadInitSegment = function(o) {
            var a = this;
            this._doFragLoad(o).then(function(x) {
              if (!x || a.fragContextChanged(o) || !a.levels)
                throw new Error("init load aborted");
              return x;
            }).then(function(x) {
              var k = a.hls, K = x.payload, w = o.decryptdata;
              if (K && K.byteLength > 0 && w && w.key && w.iv && w.method === "AES-128") {
                var W = self.performance.now();
                return a.decrypter.webCryptoDecrypt(new Uint8Array(K), w.key.buffer, w.iv.buffer).then(function(z) {
                  var H = self.performance.now();
                  return k.trigger(R.Events.FRAG_DECRYPTED, {
                    frag: o,
                    payload: z,
                    stats: {
                      tstart: W,
                      tdecrypt: H
                    }
                  }), x.payload = z, x;
                });
              }
              return x;
            }).then(function(x) {
              var k = a.fragCurrent, K = a.hls, w = a.levels;
              if (!w)
                throw new Error("init load aborted, missing levels");
              var W = w[o.level].details;
              console.assert(W, "Level details are defined when init segment is loaded");
              var z = o.stats;
              a.state = f.IDLE, a.fragLoadError = 0, o.data = new Uint8Array(x.payload), z.parsing.start = z.buffering.start = self.performance.now(), z.parsing.end = z.buffering.end = self.performance.now(), x.frag === k && K.trigger(R.Events.FRAG_BUFFERED, {
                stats: z,
                frag: k,
                part: null,
                id: o.type
              }), a.tick();
            }).catch(function(x) {
              a.state === f.STOPPED || a.state === f.ERROR || (a.warn(x), a.resetFragmentLoading(o));
            });
          }, v.fragContextChanged = function(o) {
            var a = this.fragCurrent;
            return !o || !a || o.level !== a.level || o.sn !== a.sn || o.urlId !== a.urlId;
          }, v.fragBufferedComplete = function(o, a) {
            var x, k, K = this.mediaBuffer ? this.mediaBuffer : this.media;
            this.log("Buffered " + o.type + " sn: " + o.sn + (a ? " part: " + a.index : "") + " of " + (this.logPrefix === "[stream-controller]" ? "level" : "track") + " " + o.level + " " + (K ? n.default.toString(C.BufferHelper.getBuffered(K)) : "(detached)")), this.state = f.IDLE, K && (!this.loadedmetadata && K.buffered.length && ((x = this.fragCurrent) === null || x === void 0 ? void 0 : x.sn) === ((k = this.fragPrevious) === null || k === void 0 ? void 0 : k.sn) && (this.loadedmetadata = !0, this.seekToStartPos()), this.tick());
          }, v.seekToStartPos = function() {
          }, v._handleFragmentLoadComplete = function(o) {
            var a = this.transmuxer;
            if (!!a) {
              var x = o.frag, k = o.part, K = o.partsLoaded, w = !K || K.length === 0 || K.some(function(z) {
                return !z;
              }), W = new D.ChunkMetadata(x.level, x.sn, x.stats.chunkCount + 1, 0, k ? k.index : -1, !w);
              a.flush(W);
            }
          }, v._handleFragmentLoadProgress = function(o) {
          }, v._doFragLoad = function(o, a, x, k) {
            var K = this;
            if (x === void 0 && (x = null), !this.levels)
              throw new Error("frag load aborted, missing levels");
            if (x = Math.max(o.start, x || 0), this.config.lowLatencyMode && a) {
              var w = a.partList;
              if (w && k) {
                x > o.end && a.fragmentHint && (o = a.fragmentHint);
                var W = this.getNextPart(w, o, x);
                if (W > -1) {
                  var z = w[W];
                  return this.log("Loading part sn: " + o.sn + " p: " + z.index + " cc: " + o.cc + " of playlist [" + a.startSN + "-" + a.endSN + "] parts [0-" + W + "-" + (w.length - 1) + "] " + (this.logPrefix === "[stream-controller]" ? "level" : "track") + ": " + o.level + ", target: " + parseFloat(x.toFixed(3))), this.nextLoadPosition = z.start + z.duration, this.state = f.FRAG_LOADING, this.hls.trigger(R.Events.FRAG_LOADING, {
                    frag: o,
                    part: w[W],
                    targetBufferTime: x
                  }), this.doFragPartsLoad(o, w, W, k).catch(function(H) {
                    return K.handleFragLoadError(H);
                  });
                } else if (!o.url || this.loadedEndOfParts(w, x))
                  return Promise.resolve(null);
              }
            }
            return this.log("Loading fragment " + o.sn + " cc: " + o.cc + " " + (a ? "of [" + a.startSN + "-" + a.endSN + "] " : "") + (this.logPrefix === "[stream-controller]" ? "level" : "track") + ": " + o.level + ", target: " + parseFloat(x.toFixed(3))), (0, P.isFiniteNumber)(o.sn) && !this.bitrateTest && (this.nextLoadPosition = o.start + o.duration), this.state = f.FRAG_LOADING, this.hls.trigger(R.Events.FRAG_LOADING, {
              frag: o,
              targetBufferTime: x
            }), this.fragmentLoader.load(o, k).catch(function(H) {
              return K.handleFragLoadError(H);
            });
          }, v.doFragPartsLoad = function(o, a, x, k) {
            var K = this;
            return new Promise(function(w, W) {
              var z = [], H = function j(Y) {
                var Z = a[Y];
                K.fragmentLoader.loadPart(o, Z, k).then(function(q) {
                  z[Z.index] = q;
                  var ee = q.part;
                  K.hls.trigger(R.Events.FRAG_LOADED, q);
                  var te = a[Y + 1];
                  if (te && te.fragment === o)
                    j(Y + 1);
                  else
                    return w({
                      frag: o,
                      part: ee,
                      partsLoaded: z
                    });
                }).catch(W);
              };
              H(x);
            });
          }, v.handleFragLoadError = function(o) {
            var a = o.data;
            return a && a.details === T.ErrorDetails.INTERNAL_ABORTED ? this.handleFragLoadAborted(a.frag, a.part) : this.hls.trigger(R.Events.ERROR, a), null;
          }, v._handleTransmuxerFlush = function(o) {
            var a = this.getCurrentContext(o);
            if (!a || this.state !== f.PARSING) {
              this.fragCurrent || (this.state = f.IDLE);
              return;
            }
            var x = a.frag, k = a.part, K = a.level, w = self.performance.now();
            x.stats.parsing.end = w, k && (k.stats.parsing.end = w), this.updateLevelTiming(x, k, K, o.partial);
          }, v.getCurrentContext = function(o) {
            var a = this.levels, x = o.level, k = o.sn, K = o.part;
            if (!a || !a[x])
              return this.warn("Levels object was unset while buffering fragment " + k + " of level " + x + ". The current chunk will not be buffered."), null;
            var w = a[x], W = K > -1 ? (0, _.getPartWith)(w, k, K) : null, z = W ? W.fragment : (0, _.getFragmentWithSN)(w, k, this.fragCurrent);
            return z ? {
              frag: z,
              part: W,
              level: w
            } : null;
          }, v.bufferFragmentData = function(o, a, x, k) {
            if (!(!o || this.state !== f.PARSING)) {
              var K = o.data1, w = o.data2, W = K;
              if (K && w && (W = (0, p.appendUint8Array)(K, w)), !(!W || !W.length)) {
                var z = {
                  type: o.type,
                  frag: a,
                  part: x,
                  chunkMeta: k,
                  parent: a.type,
                  data: W
                };
                this.hls.trigger(R.Events.BUFFER_APPENDING, z), o.dropped && o.independent && !x && this.flushBufferGap(a);
              }
            }
          }, v.flushBufferGap = function(o) {
            var a = this.media;
            if (!!a) {
              if (!C.BufferHelper.isBuffered(a, a.currentTime)) {
                this.flushMainBuffer(0, o.start);
                return;
              }
              var x = a.currentTime, k = C.BufferHelper.bufferInfo(a, x, 0), K = o.duration, w = Math.min(this.config.maxFragLookUpTolerance * 2, K * 0.25), W = Math.max(Math.min(o.start - w, k.end - w), x + w);
              o.start - W > w && this.flushMainBuffer(W, o.start);
            }
          }, v.getFwdBufferInfo = function(o, a) {
            var x = this.config, k = this.getLoadPosition();
            if (!(0, P.isFiniteNumber)(k))
              return null;
            var K = C.BufferHelper.bufferInfo(o, k, x.maxBufferHole);
            if (K.len === 0 && K.nextStart !== void 0) {
              var w = this.fragmentTracker.getBufferedFrag(k, a);
              if (w && K.nextStart < w.end)
                return C.BufferHelper.bufferInfo(o, k, Math.max(K.nextStart, x.maxBufferHole));
            }
            return K;
          }, v.getMaxBufferLength = function(o) {
            var a = this.config, x;
            return o ? x = Math.max(8 * a.maxBufferSize / o, a.maxBufferLength) : x = a.maxBufferLength, Math.min(x, a.maxMaxBufferLength);
          }, v.reduceMaxBufferLength = function(o) {
            var a = this.config, x = o || a.maxBufferLength;
            return a.maxMaxBufferLength >= x ? (a.maxMaxBufferLength /= 2, this.warn("Reduce max buffer length to " + a.maxMaxBufferLength + "s"), !0) : !1;
          }, v.getNextFragment = function(o, a) {
            var x = a.fragments, k = x.length;
            if (!k)
              return null;
            var K = this.config, w = x[0].start, W;
            if (a.live) {
              var z = K.initialLiveManifestSize;
              if (k < z)
                return this.warn("Not enough fragments to start playback (have: " + k + ", need: " + z + ")"), null;
              !a.PTSKnown && !this.startFragRequested && this.startPosition === -1 && (W = this.getInitialLiveFragment(a, x), this.startPosition = W ? this.hls.liveSyncPosition || W.start : o);
            } else
              o <= w && (W = x[0]);
            if (!W) {
              var H = K.lowLatencyMode ? a.partEnd : a.fragmentEnd;
              W = this.getFragmentAtPosition(o, H, a);
            }
            return this.mapToInitFragWhenRequired(W);
          }, v.mapToInitFragWhenRequired = function(o) {
            return o != null && o.initSegment && !(o != null && o.initSegment.data) && !this.bitrateTest ? o.initSegment : o;
          }, v.getNextPart = function(o, a, x) {
            for (var k = -1, K = !1, w = !0, W = 0, z = o.length; W < z; W++) {
              var H = o[W];
              if (w = w && !H.independent, k > -1 && x < H.start)
                break;
              var j = H.loaded;
              !j && (K || H.independent || w) && H.fragment === a && (k = W), K = j;
            }
            return k;
          }, v.loadedEndOfParts = function(o, a) {
            var x = o[o.length - 1];
            return x && a > x.start && x.loaded;
          }, v.getInitialLiveFragment = function(o, a) {
            var x = this.fragPrevious, k = null;
            if (x) {
              if (o.hasProgramDateTime && (this.log("Live playlist, switching playlist, load frag with same PDT: " + x.programDateTime), k = (0, b.findFragmentByPDT)(a, x.endProgramDateTime, this.config.maxFragLookUpTolerance)), !k) {
                var K = x.sn + 1;
                if (K >= o.startSN && K <= o.endSN) {
                  var w = a[K - o.startSN];
                  x.cc === w.cc && (k = w, this.log("Live playlist, switching playlist, load frag with next SN: " + k.sn));
                }
                k || (k = (0, b.findFragWithCC)(a, x.cc), k && this.log("Live playlist, switching playlist, load frag with same CC: " + k.sn));
              }
            } else {
              var W = this.hls.liveSyncPosition;
              W !== null && (k = this.getFragmentAtPosition(W, this.bitrateTest ? o.fragmentEnd : o.edge, o));
            }
            return k;
          }, v.getFragmentAtPosition = function(o, a, x) {
            var k = this.config, K = this.fragPrevious, w = x.fragments, W = x.endSN, z = x.fragmentHint, H = k.maxFragLookUpTolerance, j = !!(k.lowLatencyMode && x.partList && z);
            j && z && !this.bitrateTest && (w = w.concat(z), W = z.sn);
            var Y;
            if (o < a) {
              var Z = o > a - H ? 0 : H;
              Y = (0, b.findFragmentByPTS)(K, w, o, Z);
            } else
              Y = w[w.length - 1];
            if (Y) {
              var q = Y.sn - x.startSN;
              if (K && Y.sn === K.sn && !j) {
                var ee = K && Y.level === K.level;
                if (ee) {
                  var te = w[q + 1];
                  Y.sn < W && this.fragmentTracker.getState(te) !== O.FragmentState.OK ? (this.log("SN " + Y.sn + " just loaded, load next one: " + te.sn), Y = te) : Y = null;
                }
              }
            }
            return Y;
          }, v.synchronizeToLiveEdge = function(o) {
            var a = this.config, x = this.media;
            if (!!x) {
              var k = this.hls.liveSyncPosition, K = x.currentTime, w = o.fragments[0].start, W = o.edge, z = K >= w - a.maxFragLookUpTolerance && K <= W;
              if (k !== null && x.duration > k && (K < k || !z)) {
                var H = a.liveMaxLatencyDuration !== void 0 ? a.liveMaxLatencyDuration : a.liveMaxLatencyDurationCount * o.targetduration;
                (!z && x.readyState < 4 || K < W - H) && (this.loadedmetadata || (this.nextLoadPosition = k), x.readyState && (this.warn("Playback: " + K.toFixed(3) + " is located too far from the end of live sliding playlist: " + W + ", reset currentTime to : " + k.toFixed(3)), x.currentTime = k));
              }
            }
          }, v.alignPlaylists = function(o, a) {
            var x = this.levels, k = this.levelLastLoaded, K = this.fragPrevious, w = k !== null ? x[k] : null, W = o.fragments.length;
            if (!W)
              return this.warn("No fragments in live playlist"), 0;
            var z = o.fragments[0].start, H = !a, j = o.alignedSliding && (0, P.isFiniteNumber)(z);
            if (H || !j && !z) {
              (0, S.alignStream)(K, w, o);
              var Y = o.fragments[0].start;
              return this.log("Live playlist sliding: " + Y.toFixed(2) + " start-sn: " + (a ? a.startSN : "na") + "->" + o.startSN + " prev-sn: " + (K ? K.sn : "na") + " fragments: " + W), Y;
            }
            return z;
          }, v.waitForCdnTuneIn = function(o) {
            var a = 3;
            return o.live && o.canBlockReload && o.partTarget && o.tuneInGoal > Math.max(o.partHoldBack, o.partTarget * a);
          }, v.setStartPosition = function(o, a) {
            var x = this.startPosition;
            if (x < a && (x = -1), x === -1 || this.lastCurrentTime === -1) {
              var k = o.startTimeOffset;
              (0, P.isFiniteNumber)(k) ? (x = a + k, k < 0 && (x += o.totalduration), x = Math.min(Math.max(a, x), a + o.totalduration), this.log("Start time offset " + k + " found in playlist, adjust startPosition to " + x), this.startPosition = x) : o.live ? x = this.hls.liveSyncPosition || a : this.startPosition = x = 0, this.lastCurrentTime = x;
            }
            this.nextLoadPosition = x;
          }, v.getLoadPosition = function() {
            var o = this.media, a = 0;
            return this.loadedmetadata && o ? a = o.currentTime : this.nextLoadPosition && (a = this.nextLoadPosition), a;
          }, v.handleFragLoadAborted = function(o, a) {
            this.transmuxer && o.sn !== "initSegment" && o.stats.aborted && (this.warn("Fragment " + o.sn + (a ? " part" + a.index : "") + " of level " + o.level + " was aborted"), this.resetFragmentLoading(o));
          }, v.resetFragmentLoading = function(o) {
            (!this.fragCurrent || !this.fragContextChanged(o) && this.state !== f.FRAG_LOADING_WAITING_RETRY) && (this.state = f.IDLE);
          }, v.onFragmentOrKeyLoadError = function(o, a) {
            if (!a.fatal) {
              var x = a.frag;
              if (!(!x || x.type !== o)) {
                var k = this.fragCurrent;
                console.assert(k && x.sn === k.sn && x.level === k.level && x.urlId === k.urlId, "Frag load error must match current frag to retry");
                var K = this.config;
                if (this.fragLoadError + 1 <= K.fragLoadingMaxRetry) {
                  this.loadedmetadata || (this.startFragRequested = !1, this.nextLoadPosition = this.startPosition);
                  var w = Math.min(Math.pow(2, this.fragLoadError) * K.fragLoadingRetryDelay, K.fragLoadingMaxRetryTimeout);
                  this.warn("Fragment " + x.sn + " of " + o + " " + x.level + " failed to load, retrying in " + w + "ms"), this.retryDate = self.performance.now() + w, this.fragLoadError++, this.state = f.FRAG_LOADING_WAITING_RETRY;
                } else
                  a.levelRetry ? (o === t.PlaylistLevelType.AUDIO && (this.fragCurrent = null), this.fragLoadError = 0, this.state = f.IDLE) : (F.logger.error(a.details + " reaches max retry, redispatch as fatal ..."), a.fatal = !0, this.hls.stopLoad(), this.state = f.ERROR);
              }
            }
          }, v.afterBufferFlushed = function(o, a, x) {
            if (!!o) {
              var k = C.BufferHelper.getBuffered(o);
              this.fragmentTracker.detectEvictedFragments(a, k, x), this.state === f.ENDED && this.resetLoadingState();
            }
          }, v.resetLoadingState = function() {
            this.fragCurrent = null, this.fragPrevious = null, this.state = f.IDLE;
          }, v.resetStartWhenNotLoaded = function(o) {
            if (!this.loadedmetadata) {
              this.startFragRequested = !1;
              var a = this.levels ? this.levels[o].details : null;
              a != null && a.live ? (this.startPosition = -1, this.setStartPosition(a, 0), this.resetLoadingState()) : this.nextLoadPosition = this.startPosition;
            }
          }, v.updateLevelTiming = function(o, a, x, k) {
            var K = this, w = x.details;
            console.assert(!!w, "level.details must be defined");
            var W = Object.keys(o.elementaryStreams).reduce(function(z, H) {
              var j = o.elementaryStreams[H];
              if (j) {
                var Y = j.endPTS - j.startPTS;
                if (Y <= 0)
                  return K.warn("Could not parse fragment " + o.sn + " " + H + " duration reliably (" + Y + ")"), z || !1;
                var Z = k ? 0 : (0, _.updateFragPTSDTS)(w, o, j.startPTS, j.endPTS, j.startDTS, j.endDTS);
                return K.hls.trigger(R.Events.LEVEL_PTS_UPDATED, {
                  details: w,
                  level: x,
                  drift: Z,
                  type: H,
                  frag: o,
                  start: j.startPTS,
                  end: j.endPTS
                }), !0;
              }
              return z;
            }, !1);
            W || (this.warn("Found no media in fragment " + o.sn + " of level " + x.id + " resetting transmuxer to fallback to playlist timing"), this.resetTransmuxer()), this.state = f.PARSED, this.hls.trigger(R.Events.FRAG_PARSED, {
              frag: o,
              part: a
            });
          }, v.resetTransmuxer = function() {
            this.transmuxer && (this.transmuxer.destroy(), this.transmuxer = null);
          }, h(s, [{
            key: "state",
            get: function() {
              return this._state;
            },
            set: function(o) {
              var a = this._state;
              a !== o && (this._state = o, this.log(a + "->" + o));
            }
          }]), s;
        }(y.default);
      },
      "./src/controller/buffer-controller.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          default: () => b
        });
        var P = g("./src/polyfills/number.ts"), y = g("./src/events.ts"), O = g("./src/utils/logger.ts"), C = g("./src/errors.ts"), F = g("./src/utils/buffer-helper.ts"), R = g("./src/utils/mediasource-helper.ts"), T = g("./src/loader/fragment.ts"), D = g("./src/controller/buffer-operation-queue.ts"), p = (0, R.getMediaSource)(), S = /([ha]vc.)(?:\.[^.,]+)+/, b = /* @__PURE__ */ function() {
          function _(l) {
            var n = this;
            this.details = null, this._objectUrl = null, this.operationQueue = void 0, this.listeners = void 0, this.hls = void 0, this.bufferCodecEventsExpected = 0, this._bufferCodecEventsTotal = 0, this.media = null, this.mediaSource = null, this.appendError = 0, this.tracks = {}, this.pendingTracks = {}, this.sourceBuffer = void 0, this._onMediaSourceOpen = function() {
              var t = n.hls, d = n.media, h = n.mediaSource;
              O.logger.log("[buffer-controller]: Media source opened"), d && (n.updateMediaElementDuration(), t.trigger(y.Events.MEDIA_ATTACHED, {
                media: d
              })), h && h.removeEventListener("sourceopen", n._onMediaSourceOpen), n.checkPendingTracks();
            }, this._onMediaSourceClose = function() {
              O.logger.log("[buffer-controller]: Media source closed");
            }, this._onMediaSourceEnded = function() {
              O.logger.log("[buffer-controller]: Media source ended");
            }, this.hls = l, this._initSourceBuffer(), this.registerListeners();
          }
          var E = _.prototype;
          return E.hasSourceTypes = function() {
            return this.getSourceBufferTypes().length > 0 || Object.keys(this.pendingTracks).length > 0;
          }, E.destroy = function() {
            this.unregisterListeners(), this.details = null;
          }, E.registerListeners = function() {
            var n = this.hls;
            n.on(y.Events.MEDIA_ATTACHING, this.onMediaAttaching, this), n.on(y.Events.MEDIA_DETACHING, this.onMediaDetaching, this), n.on(y.Events.MANIFEST_PARSED, this.onManifestParsed, this), n.on(y.Events.BUFFER_RESET, this.onBufferReset, this), n.on(y.Events.BUFFER_APPENDING, this.onBufferAppending, this), n.on(y.Events.BUFFER_CODECS, this.onBufferCodecs, this), n.on(y.Events.BUFFER_EOS, this.onBufferEos, this), n.on(y.Events.BUFFER_FLUSHING, this.onBufferFlushing, this), n.on(y.Events.LEVEL_UPDATED, this.onLevelUpdated, this), n.on(y.Events.FRAG_PARSED, this.onFragParsed, this), n.on(y.Events.FRAG_CHANGED, this.onFragChanged, this);
          }, E.unregisterListeners = function() {
            var n = this.hls;
            n.off(y.Events.MEDIA_ATTACHING, this.onMediaAttaching, this), n.off(y.Events.MEDIA_DETACHING, this.onMediaDetaching, this), n.off(y.Events.MANIFEST_PARSED, this.onManifestParsed, this), n.off(y.Events.BUFFER_RESET, this.onBufferReset, this), n.off(y.Events.BUFFER_APPENDING, this.onBufferAppending, this), n.off(y.Events.BUFFER_CODECS, this.onBufferCodecs, this), n.off(y.Events.BUFFER_EOS, this.onBufferEos, this), n.off(y.Events.BUFFER_FLUSHING, this.onBufferFlushing, this), n.off(y.Events.LEVEL_UPDATED, this.onLevelUpdated, this), n.off(y.Events.FRAG_PARSED, this.onFragParsed, this), n.off(y.Events.FRAG_CHANGED, this.onFragChanged, this);
          }, E._initSourceBuffer = function() {
            this.sourceBuffer = {}, this.operationQueue = new D.default(this.sourceBuffer), this.listeners = {
              audio: [],
              video: [],
              audiovideo: []
            };
          }, E.onManifestParsed = function(n, t) {
            var d = 2;
            (t.audio && !t.video || !t.altAudio) && (d = 1), this.bufferCodecEventsExpected = this._bufferCodecEventsTotal = d, this.details = null, O.logger.log(this.bufferCodecEventsExpected + " bufferCodec event(s) expected");
          }, E.onMediaAttaching = function(n, t) {
            var d = this.media = t.media;
            if (d && p) {
              var h = this.mediaSource = new p();
              h.addEventListener("sourceopen", this._onMediaSourceOpen), h.addEventListener("sourceended", this._onMediaSourceEnded), h.addEventListener("sourceclose", this._onMediaSourceClose), d.src = self.URL.createObjectURL(h), this._objectUrl = d.src;
            }
          }, E.onMediaDetaching = function() {
            var n = this.media, t = this.mediaSource, d = this._objectUrl;
            if (t) {
              if (O.logger.log("[buffer-controller]: media source detaching"), t.readyState === "open")
                try {
                  t.endOfStream();
                } catch (h) {
                  O.logger.warn("[buffer-controller]: onMediaDetaching: " + h.message + " while calling endOfStream");
                }
              this.onBufferReset(), t.removeEventListener("sourceopen", this._onMediaSourceOpen), t.removeEventListener("sourceended", this._onMediaSourceEnded), t.removeEventListener("sourceclose", this._onMediaSourceClose), n && (d && self.URL.revokeObjectURL(d), n.src === d ? (n.removeAttribute("src"), n.load()) : O.logger.warn("[buffer-controller]: media.src was changed by a third party - skip cleanup")), this.mediaSource = null, this.media = null, this._objectUrl = null, this.bufferCodecEventsExpected = this._bufferCodecEventsTotal, this.pendingTracks = {}, this.tracks = {};
            }
            this.hls.trigger(y.Events.MEDIA_DETACHED, void 0);
          }, E.onBufferReset = function() {
            var n = this;
            this.getSourceBufferTypes().forEach(function(t) {
              var d = n.sourceBuffer[t];
              try {
                d && (n.removeBufferListeners(t), n.mediaSource && n.mediaSource.removeSourceBuffer(d), n.sourceBuffer[t] = void 0);
              } catch (h) {
                O.logger.warn("[buffer-controller]: Failed to reset the " + t + " buffer", h);
              }
            }), this._initSourceBuffer();
          }, E.onBufferCodecs = function(n, t) {
            var d = this, h = this.getSourceBufferTypes().length;
            Object.keys(t).forEach(function(i) {
              if (h) {
                var r = d.tracks[i];
                if (r && typeof r.buffer.changeType == "function") {
                  var e = t[i], f = e.id, u = e.codec, m = e.levelCodec, s = e.container, v = e.metadata, c = (r.levelCodec || r.codec).replace(S, "$1"), o = (m || u).replace(S, "$1");
                  if (c !== o) {
                    var a = s + ";codecs=" + (m || u);
                    d.appendChangeType(i, a), O.logger.log("[buffer-controller]: switching codec " + c + " to " + o), d.tracks[i] = {
                      buffer: r.buffer,
                      codec: u,
                      container: s,
                      levelCodec: m,
                      metadata: v,
                      id: f
                    };
                  }
                }
              } else
                d.pendingTracks[i] = t[i];
            }), !h && (this.bufferCodecEventsExpected = Math.max(this.bufferCodecEventsExpected - 1, 0), this.mediaSource && this.mediaSource.readyState === "open" && this.checkPendingTracks());
          }, E.appendChangeType = function(n, t) {
            var d = this, h = this.operationQueue, i = {
              execute: function() {
                var e = d.sourceBuffer[n];
                e && (O.logger.log("[buffer-controller]: changing " + n + " sourceBuffer type to " + t), e.changeType(t)), h.shiftAndExecuteNext(n);
              },
              onStart: function() {
              },
              onComplete: function() {
              },
              onError: function(e) {
                O.logger.warn("[buffer-controller]: Failed to change " + n + " SourceBuffer type", e);
              }
            };
            h.append(i, n);
          }, E.onBufferAppending = function(n, t) {
            var d = this, h = this.hls, i = this.operationQueue, r = this.tracks, e = t.data, f = t.type, u = t.frag, m = t.part, s = t.chunkMeta, v = s.buffering[f], c = self.performance.now();
            v.start = c;
            var o = u.stats.buffering, a = m ? m.stats.buffering : null;
            o.start === 0 && (o.start = c), a && a.start === 0 && (a.start = c);
            var x = r.audio, k = f === "audio" && s.id === 1 && (x == null ? void 0 : x.container) === "audio/mpeg", K = {
              execute: function() {
                if (v.executeStart = self.performance.now(), k) {
                  var W = d.sourceBuffer[f];
                  if (W) {
                    var z = u.start - W.timestampOffset;
                    Math.abs(z) >= 0.1 && (O.logger.log("[buffer-controller]: Updating audio SourceBuffer timestampOffset to " + u.start + " (delta: " + z + ") sn: " + u.sn + ")"), W.timestampOffset = u.start);
                  }
                }
                d.appendExecutor(e, f);
              },
              onStart: function() {
              },
              onComplete: function() {
                var W = self.performance.now();
                v.executeEnd = v.end = W, o.first === 0 && (o.first = W), a && a.first === 0 && (a.first = W);
                var z = d.sourceBuffer, H = {};
                for (var j in z)
                  H[j] = F.BufferHelper.getBuffered(z[j]);
                d.appendError = 0, d.hls.trigger(y.Events.BUFFER_APPENDED, {
                  type: f,
                  frag: u,
                  part: m,
                  chunkMeta: s,
                  parent: u.type,
                  timeRanges: H
                });
              },
              onError: function(W) {
                O.logger.error("[buffer-controller]: Error encountered while trying to append to the " + f + " SourceBuffer", W);
                var z = {
                  type: C.ErrorTypes.MEDIA_ERROR,
                  parent: u.type,
                  details: C.ErrorDetails.BUFFER_APPEND_ERROR,
                  err: W,
                  fatal: !1
                };
                W.code === DOMException.QUOTA_EXCEEDED_ERR ? z.details = C.ErrorDetails.BUFFER_FULL_ERROR : (d.appendError++, z.details = C.ErrorDetails.BUFFER_APPEND_ERROR, d.appendError > h.config.appendErrorMaxRetry && (O.logger.error("[buffer-controller]: Failed " + h.config.appendErrorMaxRetry + " times to append segment in sourceBuffer"), z.fatal = !0, h.stopLoad())), h.trigger(y.Events.ERROR, z);
              }
            };
            i.append(K, f);
          }, E.onBufferFlushing = function(n, t) {
            var d = this, h = this.operationQueue, i = function(e) {
              return {
                execute: d.removeExecutor.bind(d, e, t.startOffset, t.endOffset),
                onStart: function() {
                },
                onComplete: function() {
                  d.hls.trigger(y.Events.BUFFER_FLUSHED, {
                    type: e
                  });
                },
                onError: function(u) {
                  O.logger.warn("[buffer-controller]: Failed to remove from " + e + " SourceBuffer", u);
                }
              };
            };
            t.type ? h.append(i(t.type), t.type) : this.getSourceBufferTypes().forEach(function(r) {
              h.append(i(r), r);
            });
          }, E.onFragParsed = function(n, t) {
            var d = this, h = t.frag, i = t.part, r = [], e = i ? i.elementaryStreams : h.elementaryStreams;
            e[T.ElementaryStreamTypes.AUDIOVIDEO] ? r.push("audiovideo") : (e[T.ElementaryStreamTypes.AUDIO] && r.push("audio"), e[T.ElementaryStreamTypes.VIDEO] && r.push("video"));
            var f = function() {
              var m = self.performance.now();
              h.stats.buffering.end = m, i && (i.stats.buffering.end = m);
              var s = i ? i.stats : h.stats;
              d.hls.trigger(y.Events.FRAG_BUFFERED, {
                frag: h,
                part: i,
                stats: s,
                id: h.type
              });
            };
            r.length === 0 && O.logger.warn("Fragments must have at least one ElementaryStreamType set. type: " + h.type + " level: " + h.level + " sn: " + h.sn), this.blockBuffers(f, r);
          }, E.onFragChanged = function(n, t) {
            this.flushBackBuffer();
          }, E.onBufferEos = function(n, t) {
            var d = this, h = this.getSourceBufferTypes().reduce(function(i, r) {
              var e = d.sourceBuffer[r];
              return (!t.type || t.type === r) && e && !e.ended && (e.ended = !0, O.logger.log("[buffer-controller]: " + r + " sourceBuffer now EOS")), i && !!(!e || e.ended);
            }, !0);
            h && this.blockBuffers(function() {
              var i = d.mediaSource;
              !i || i.readyState !== "open" || i.endOfStream();
            });
          }, E.onLevelUpdated = function(n, t) {
            var d = t.details;
            !d.fragments.length || (this.details = d, this.getSourceBufferTypes().length ? this.blockBuffers(this.updateMediaElementDuration.bind(this)) : this.updateMediaElementDuration());
          }, E.flushBackBuffer = function() {
            var n = this.hls, t = this.details, d = this.media, h = this.sourceBuffer;
            if (!(!d || t === null)) {
              var i = this.getSourceBufferTypes();
              if (!!i.length) {
                var r = t.live && n.config.liveBackBufferLength !== null ? n.config.liveBackBufferLength : n.config.backBufferLength;
                if (!(!(0, P.isFiniteNumber)(r) || r < 0)) {
                  var e = d.currentTime, f = t.levelTargetDuration, u = Math.max(r, f), m = Math.floor(e / f) * f - u;
                  i.forEach(function(s) {
                    var v = h[s];
                    if (v) {
                      var c = F.BufferHelper.getBuffered(v);
                      c.length > 0 && m > c.start(0) && (n.trigger(y.Events.BACK_BUFFER_REACHED, {
                        bufferEnd: m
                      }), t.live && n.trigger(y.Events.LIVE_BACK_BUFFER_REACHED, {
                        bufferEnd: m
                      }), n.trigger(y.Events.BUFFER_FLUSHING, {
                        startOffset: 0,
                        endOffset: m,
                        type: s
                      }));
                    }
                  });
                }
              }
            }
          }, E.updateMediaElementDuration = function() {
            if (!(!this.details || !this.media || !this.mediaSource || this.mediaSource.readyState !== "open")) {
              var n = this.details, t = this.hls, d = this.media, h = this.mediaSource, i = n.fragments[0].start + n.totalduration, r = d.duration, e = (0, P.isFiniteNumber)(h.duration) ? h.duration : 0;
              n.live && t.config.liveDurationInfinity ? (O.logger.log("[buffer-controller]: Media Source duration is set to Infinity"), h.duration = 1 / 0, this.updateSeekableRange(n)) : (i > e && i > r || !(0, P.isFiniteNumber)(r)) && (O.logger.log("[buffer-controller]: Updating Media Source duration to " + i.toFixed(3)), h.duration = i);
            }
          }, E.updateSeekableRange = function(n) {
            var t = this.mediaSource, d = n.fragments, h = d.length;
            if (h && n.live && t !== null && t !== void 0 && t.setLiveSeekableRange) {
              var i = Math.max(0, d[0].start), r = Math.max(i, i + n.totalduration);
              t.setLiveSeekableRange(i, r);
            }
          }, E.checkPendingTracks = function() {
            var n = this.bufferCodecEventsExpected, t = this.operationQueue, d = this.pendingTracks, h = Object.keys(d).length;
            if (h && !n || h === 2) {
              this.createSourceBuffers(d), this.pendingTracks = {};
              var i = this.getSourceBufferTypes();
              if (i.length === 0) {
                this.hls.trigger(y.Events.ERROR, {
                  type: C.ErrorTypes.MEDIA_ERROR,
                  details: C.ErrorDetails.BUFFER_INCOMPATIBLE_CODECS_ERROR,
                  fatal: !0,
                  reason: "could not create source buffer for media codec(s)"
                });
                return;
              }
              i.forEach(function(r) {
                t.executeNext(r);
              });
            }
          }, E.createSourceBuffers = function(n) {
            var t = this.sourceBuffer, d = this.mediaSource;
            if (!d)
              throw Error("createSourceBuffers called when mediaSource was null");
            var h = 0;
            for (var i in n)
              if (!t[i]) {
                var r = n[i];
                if (!r)
                  throw Error("source buffer exists for track " + i + ", however track does not");
                var e = r.levelCodec || r.codec, f = r.container + ";codecs=" + e;
                O.logger.log("[buffer-controller]: creating sourceBuffer(" + f + ")");
                try {
                  var u = t[i] = d.addSourceBuffer(f), m = i;
                  this.addBufferListener(m, "updatestart", this._onSBUpdateStart), this.addBufferListener(m, "updateend", this._onSBUpdateEnd), this.addBufferListener(m, "error", this._onSBUpdateError), this.tracks[i] = {
                    buffer: u,
                    codec: e,
                    container: r.container,
                    levelCodec: r.levelCodec,
                    metadata: r.metadata,
                    id: r.id
                  }, h++;
                } catch (s) {
                  O.logger.error("[buffer-controller]: error while trying to add sourceBuffer: " + s.message), this.hls.trigger(y.Events.ERROR, {
                    type: C.ErrorTypes.MEDIA_ERROR,
                    details: C.ErrorDetails.BUFFER_ADD_CODEC_ERROR,
                    fatal: !1,
                    error: s,
                    mimeType: f
                  });
                }
              }
            h && this.hls.trigger(y.Events.BUFFER_CREATED, {
              tracks: this.tracks
            });
          }, E._onSBUpdateStart = function(n) {
            var t = this.operationQueue, d = t.current(n);
            d.onStart();
          }, E._onSBUpdateEnd = function(n) {
            var t = this.operationQueue, d = t.current(n);
            d.onComplete(), t.shiftAndExecuteNext(n);
          }, E._onSBUpdateError = function(n, t) {
            O.logger.error("[buffer-controller]: " + n + " SourceBuffer error", t), this.hls.trigger(y.Events.ERROR, {
              type: C.ErrorTypes.MEDIA_ERROR,
              details: C.ErrorDetails.BUFFER_APPENDING_ERROR,
              fatal: !1
            });
            var d = this.operationQueue.current(n);
            d && d.onError(t);
          }, E.removeExecutor = function(n, t, d) {
            var h = this.media, i = this.mediaSource, r = this.operationQueue, e = this.sourceBuffer, f = e[n];
            if (!h || !i || !f) {
              O.logger.warn("[buffer-controller]: Attempting to remove from the " + n + " SourceBuffer, but it does not exist"), r.shiftAndExecuteNext(n);
              return;
            }
            var u = (0, P.isFiniteNumber)(h.duration) ? h.duration : 1 / 0, m = (0, P.isFiniteNumber)(i.duration) ? i.duration : 1 / 0, s = Math.max(0, t), v = Math.min(d, u, m);
            v > s ? (O.logger.log("[buffer-controller]: Removing [" + s + "," + v + "] from the " + n + " SourceBuffer"), console.assert(!f.updating, n + " sourceBuffer must not be updating"), f.remove(s, v)) : r.shiftAndExecuteNext(n);
          }, E.appendExecutor = function(n, t) {
            var d = this.operationQueue, h = this.sourceBuffer, i = h[t];
            if (!i) {
              O.logger.warn("[buffer-controller]: Attempting to append to the " + t + " SourceBuffer, but it does not exist"), d.shiftAndExecuteNext(t);
              return;
            }
            i.ended = !1, console.assert(!i.updating, t + " sourceBuffer must not be updating"), i.appendBuffer(n);
          }, E.blockBuffers = function(n, t) {
            var d = this;
            if (t === void 0 && (t = this.getSourceBufferTypes()), !t.length) {
              O.logger.log("[buffer-controller]: Blocking operation requested, but no SourceBuffers exist"), Promise.resolve().then(n);
              return;
            }
            var h = this.operationQueue, i = t.map(function(r) {
              return h.appendBlocker(r);
            });
            Promise.all(i).then(function() {
              n(), t.forEach(function(r) {
                var e = d.sourceBuffer[r];
                (!e || !e.updating) && h.shiftAndExecuteNext(r);
              });
            });
          }, E.getSourceBufferTypes = function() {
            return Object.keys(this.sourceBuffer);
          }, E.addBufferListener = function(n, t, d) {
            var h = this.sourceBuffer[n];
            if (!!h) {
              var i = d.bind(this, n);
              this.listeners[n].push({
                event: t,
                listener: i
              }), h.addEventListener(t, i);
            }
          }, E.removeBufferListeners = function(n) {
            var t = this.sourceBuffer[n];
            !t || this.listeners[n].forEach(function(d) {
              t.removeEventListener(d.event, d.listener);
            });
          }, _;
        }();
      },
      "./src/controller/buffer-operation-queue.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          default: () => y
        });
        var P = g("./src/utils/logger.ts"), y = /* @__PURE__ */ function() {
          function O(F) {
            this.buffers = void 0, this.queues = {
              video: [],
              audio: [],
              audiovideo: []
            }, this.buffers = F;
          }
          var C = O.prototype;
          return C.append = function(R, T) {
            var D = this.queues[T];
            D.push(R), D.length === 1 && this.buffers[T] && this.executeNext(T);
          }, C.insertAbort = function(R, T) {
            var D = this.queues[T];
            D.unshift(R), this.executeNext(T);
          }, C.appendBlocker = function(R) {
            var T, D = new Promise(function(S) {
              T = S;
            }), p = {
              execute: T,
              onStart: function() {
              },
              onComplete: function() {
              },
              onError: function() {
              }
            };
            return this.append(p, R), D;
          }, C.executeNext = function(R) {
            var T = this.buffers, D = this.queues, p = T[R], S = D[R];
            if (S.length) {
              var b = S[0];
              try {
                b.execute();
              } catch (_) {
                P.logger.warn("[buffer-operation-queue]: Unhandled exception executing the current operation"), b.onError(_), (!p || !p.updating) && (S.shift(), this.executeNext(R));
              }
            }
          }, C.shiftAndExecuteNext = function(R) {
            this.queues[R].shift(), this.executeNext(R);
          }, C.current = function(R) {
            return this.queues[R][0];
          }, O;
        }();
      },
      "./src/controller/cap-level-controller.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          default: () => F
        });
        var P = g("./src/events.ts");
        function y(R, T) {
          for (var D = 0; D < T.length; D++) {
            var p = T[D];
            p.enumerable = p.enumerable || !1, p.configurable = !0, "value" in p && (p.writable = !0), Object.defineProperty(R, p.key, p);
          }
        }
        function O(R, T, D) {
          return T && y(R.prototype, T), D && y(R, D), Object.defineProperty(R, "prototype", { writable: !1 }), R;
        }
        var C = /* @__PURE__ */ function() {
          function R(D) {
            this.autoLevelCapping = void 0, this.firstLevel = void 0, this.media = void 0, this.restrictedLevels = void 0, this.timer = void 0, this.hls = void 0, this.streamController = void 0, this.clientRect = void 0, this.hls = D, this.autoLevelCapping = Number.POSITIVE_INFINITY, this.firstLevel = -1, this.media = null, this.restrictedLevels = [], this.timer = void 0, this.clientRect = null, this.registerListeners();
          }
          var T = R.prototype;
          return T.setStreamController = function(p) {
            this.streamController = p;
          }, T.destroy = function() {
            this.unregisterListener(), this.hls.config.capLevelToPlayerSize && this.stopCapping(), this.media = null, this.clientRect = null, this.hls = this.streamController = null;
          }, T.registerListeners = function() {
            var p = this.hls;
            p.on(P.Events.FPS_DROP_LEVEL_CAPPING, this.onFpsDropLevelCapping, this), p.on(P.Events.MEDIA_ATTACHING, this.onMediaAttaching, this), p.on(P.Events.MANIFEST_PARSED, this.onManifestParsed, this), p.on(P.Events.BUFFER_CODECS, this.onBufferCodecs, this), p.on(P.Events.MEDIA_DETACHING, this.onMediaDetaching, this);
          }, T.unregisterListener = function() {
            var p = this.hls;
            p.off(P.Events.FPS_DROP_LEVEL_CAPPING, this.onFpsDropLevelCapping, this), p.off(P.Events.MEDIA_ATTACHING, this.onMediaAttaching, this), p.off(P.Events.MANIFEST_PARSED, this.onManifestParsed, this), p.off(P.Events.BUFFER_CODECS, this.onBufferCodecs, this), p.off(P.Events.MEDIA_DETACHING, this.onMediaDetaching, this);
          }, T.onFpsDropLevelCapping = function(p, S) {
            R.isLevelAllowed(S.droppedLevel, this.restrictedLevels) && this.restrictedLevels.push(S.droppedLevel);
          }, T.onMediaAttaching = function(p, S) {
            this.media = S.media instanceof HTMLVideoElement ? S.media : null;
          }, T.onManifestParsed = function(p, S) {
            var b = this.hls;
            this.restrictedLevels = [], this.firstLevel = S.firstLevel, b.config.capLevelToPlayerSize && S.video && this.startCapping();
          }, T.onBufferCodecs = function(p, S) {
            var b = this.hls;
            b.config.capLevelToPlayerSize && S.video && this.startCapping();
          }, T.onMediaDetaching = function() {
            this.stopCapping();
          }, T.detectPlayerSize = function() {
            if (this.media && this.mediaHeight > 0 && this.mediaWidth > 0) {
              var p = this.hls.levels;
              if (p.length) {
                var S = this.hls;
                S.autoLevelCapping = this.getMaxLevel(p.length - 1), S.autoLevelCapping > this.autoLevelCapping && this.streamController && this.streamController.nextLevelSwitch(), this.autoLevelCapping = S.autoLevelCapping;
              }
            }
          }, T.getMaxLevel = function(p) {
            var S = this, b = this.hls.levels;
            if (!b.length)
              return -1;
            var _ = b.filter(function(E, l) {
              return R.isLevelAllowed(l, S.restrictedLevels) && l <= p;
            });
            return this.clientRect = null, R.getMaxLevelByMediaSize(_, this.mediaWidth, this.mediaHeight);
          }, T.startCapping = function() {
            this.timer || (this.autoLevelCapping = Number.POSITIVE_INFINITY, this.hls.firstLevel = this.getMaxLevel(this.firstLevel), self.clearInterval(this.timer), this.timer = self.setInterval(this.detectPlayerSize.bind(this), 1e3), this.detectPlayerSize());
          }, T.stopCapping = function() {
            this.restrictedLevels = [], this.firstLevel = -1, this.autoLevelCapping = Number.POSITIVE_INFINITY, this.timer && (self.clearInterval(this.timer), this.timer = void 0);
          }, T.getDimensions = function() {
            if (this.clientRect)
              return this.clientRect;
            var p = this.media, S = {
              width: 0,
              height: 0
            };
            if (p) {
              var b = p.getBoundingClientRect();
              S.width = b.width, S.height = b.height, !S.width && !S.height && (S.width = b.right - b.left || p.width || 0, S.height = b.bottom - b.top || p.height || 0);
            }
            return this.clientRect = S, S;
          }, R.isLevelAllowed = function(p, S) {
            return S === void 0 && (S = []), S.indexOf(p) === -1;
          }, R.getMaxLevelByMediaSize = function(p, S, b) {
            if (!p || !p.length)
              return -1;
            for (var _ = function(d, h) {
              return h ? d.width !== h.width || d.height !== h.height : !0;
            }, E = p.length - 1, l = 0; l < p.length; l += 1) {
              var n = p[l];
              if ((n.width >= S || n.height >= b) && _(n, p[l + 1])) {
                E = l;
                break;
              }
            }
            return E;
          }, O(R, [{
            key: "mediaWidth",
            get: function() {
              return this.getDimensions().width * this.contentScaleFactor;
            }
          }, {
            key: "mediaHeight",
            get: function() {
              return this.getDimensions().height * this.contentScaleFactor;
            }
          }, {
            key: "contentScaleFactor",
            get: function() {
              var p = 1;
              if (!this.hls.config.ignoreDevicePixelRatio)
                try {
                  p = self.devicePixelRatio;
                } catch {
                }
              return p;
            }
          }]), R;
        }();
        const F = C;
      },
      "./src/controller/cmcd-controller.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          default: () => b
        });
        var P = g("./src/events.ts"), y = g("./src/types/cmcd.ts"), O = g("./src/utils/buffer-helper.ts"), C = g("./src/utils/logger.ts");
        function F(_, E) {
          for (var l = 0; l < E.length; l++) {
            var n = E[l];
            n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(_, n.key, n);
          }
        }
        function R(_, E, l) {
          return E && F(_.prototype, E), l && F(_, l), Object.defineProperty(_, "prototype", { writable: !1 }), _;
        }
        function T(_, E) {
          var l = typeof Symbol < "u" && _[Symbol.iterator] || _["@@iterator"];
          if (l)
            return (l = l.call(_)).next.bind(l);
          if (Array.isArray(_) || (l = D(_)) || E && _ && typeof _.length == "number") {
            l && (_ = l);
            var n = 0;
            return function() {
              return n >= _.length ? { done: !0 } : { done: !1, value: _[n++] };
            };
          }
          throw new TypeError(`Invalid attempt to iterate non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`);
        }
        function D(_, E) {
          if (!!_) {
            if (typeof _ == "string")
              return p(_, E);
            var l = Object.prototype.toString.call(_).slice(8, -1);
            if (l === "Object" && _.constructor && (l = _.constructor.name), l === "Map" || l === "Set")
              return Array.from(_);
            if (l === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(l))
              return p(_, E);
          }
        }
        function p(_, E) {
          (E == null || E > _.length) && (E = _.length);
          for (var l = 0, n = new Array(E); l < E; l++)
            n[l] = _[l];
          return n;
        }
        function S() {
          return S = Object.assign ? Object.assign.bind() : function(_) {
            for (var E = 1; E < arguments.length; E++) {
              var l = arguments[E];
              for (var n in l)
                Object.prototype.hasOwnProperty.call(l, n) && (_[n] = l[n]);
            }
            return _;
          }, S.apply(this, arguments);
        }
        var b = /* @__PURE__ */ function() {
          function _(l) {
            var n = this;
            this.hls = void 0, this.config = void 0, this.media = void 0, this.sid = void 0, this.cid = void 0, this.useHeaders = !1, this.initialized = !1, this.starved = !1, this.buffering = !0, this.audioBuffer = void 0, this.videoBuffer = void 0, this.onWaiting = function() {
              n.initialized && (n.starved = !0), n.buffering = !0;
            }, this.onPlaying = function() {
              n.initialized || (n.initialized = !0), n.buffering = !1;
            }, this.applyPlaylistData = function(h) {
              try {
                n.apply(h, {
                  ot: y.CMCDObjectType.MANIFEST,
                  su: !n.initialized
                });
              } catch (i) {
                C.logger.warn("Could not generate manifest CMCD data.", i);
              }
            }, this.applyFragmentData = function(h) {
              try {
                var i = h.frag, r = n.hls.levels[i.level], e = n.getObjectType(i), f = {
                  d: i.duration * 1e3,
                  ot: e
                };
                (e === y.CMCDObjectType.VIDEO || e === y.CMCDObjectType.AUDIO || e == y.CMCDObjectType.MUXED) && (f.br = r.bitrate / 1e3, f.tb = n.getTopBandwidth(e) / 1e3, f.bl = n.getBufferLength(e)), n.apply(h, f);
              } catch (u) {
                C.logger.warn("Could not generate segment CMCD data.", u);
              }
            }, this.hls = l;
            var t = this.config = l.config, d = t.cmcd;
            d != null && (t.pLoader = this.createPlaylistLoader(), t.fLoader = this.createFragmentLoader(), this.sid = d.sessionId || _.uuid(), this.cid = d.contentId, this.useHeaders = d.useHeaders === !0, this.registerListeners());
          }
          var E = _.prototype;
          return E.registerListeners = function() {
            var n = this.hls;
            n.on(P.Events.MEDIA_ATTACHED, this.onMediaAttached, this), n.on(P.Events.MEDIA_DETACHED, this.onMediaDetached, this), n.on(P.Events.BUFFER_CREATED, this.onBufferCreated, this);
          }, E.unregisterListeners = function() {
            var n = this.hls;
            n.off(P.Events.MEDIA_ATTACHED, this.onMediaAttached, this), n.off(P.Events.MEDIA_DETACHED, this.onMediaDetached, this), n.off(P.Events.BUFFER_CREATED, this.onBufferCreated, this), this.onMediaDetached();
          }, E.destroy = function() {
            this.unregisterListeners(), this.hls = this.config = this.audioBuffer = this.videoBuffer = null;
          }, E.onMediaAttached = function(n, t) {
            this.media = t.media, this.media.addEventListener("waiting", this.onWaiting), this.media.addEventListener("playing", this.onPlaying);
          }, E.onMediaDetached = function() {
            !this.media || (this.media.removeEventListener("waiting", this.onWaiting), this.media.removeEventListener("playing", this.onPlaying), this.media = null);
          }, E.onBufferCreated = function(n, t) {
            var d, h;
            this.audioBuffer = (d = t.tracks.audio) === null || d === void 0 ? void 0 : d.buffer, this.videoBuffer = (h = t.tracks.video) === null || h === void 0 ? void 0 : h.buffer;
          }, E.createData = function() {
            var n;
            return {
              v: y.CMCDVersion,
              sf: y.CMCDStreamingFormat.HLS,
              sid: this.sid,
              cid: this.cid,
              pr: (n = this.media) === null || n === void 0 ? void 0 : n.playbackRate,
              mtp: this.hls.bandwidthEstimate / 1e3
            };
          }, E.apply = function(n, t) {
            t === void 0 && (t = {}), S(t, this.createData());
            var d = t.ot === y.CMCDObjectType.INIT || t.ot === y.CMCDObjectType.VIDEO || t.ot === y.CMCDObjectType.MUXED;
            if (this.starved && d && (t.bs = !0, t.su = !0, this.starved = !1), t.su == null && (t.su = this.buffering), this.useHeaders) {
              var h = _.toHeaders(t);
              if (!Object.keys(h).length)
                return;
              n.headers || (n.headers = {}), S(n.headers, h);
            } else {
              var i = _.toQuery(t);
              if (!i)
                return;
              n.url = _.appendQueryToUri(n.url, i);
            }
          }, E.getObjectType = function(n) {
            var t = n.type;
            if (t === "subtitle")
              return y.CMCDObjectType.TIMED_TEXT;
            if (n.sn === "initSegment")
              return y.CMCDObjectType.INIT;
            if (t === "audio")
              return y.CMCDObjectType.AUDIO;
            if (t === "main")
              return this.hls.audioTracks.length ? y.CMCDObjectType.VIDEO : y.CMCDObjectType.MUXED;
          }, E.getTopBandwidth = function(n) {
            var t = 0, d, h = this.hls;
            if (n === y.CMCDObjectType.AUDIO)
              d = h.audioTracks;
            else {
              var i = h.maxAutoLevel, r = i > -1 ? i + 1 : h.levels.length;
              d = h.levels.slice(0, r);
            }
            for (var e = T(d), f; !(f = e()).done; ) {
              var u = f.value;
              u.bitrate > t && (t = u.bitrate);
            }
            return t > 0 ? t : NaN;
          }, E.getBufferLength = function(n) {
            var t = this.hls.media, d = n === y.CMCDObjectType.AUDIO ? this.audioBuffer : this.videoBuffer;
            if (!d || !t)
              return NaN;
            var h = O.BufferHelper.bufferInfo(d, t.currentTime, this.config.maxBufferHole);
            return h.len * 1e3;
          }, E.createPlaylistLoader = function() {
            var n = this.config.pLoader, t = this.applyPlaylistData, d = n || this.config.loader;
            return /* @__PURE__ */ function() {
              function h(r) {
                this.loader = void 0, this.loader = new d(r);
              }
              var i = h.prototype;
              return i.destroy = function() {
                this.loader.destroy();
              }, i.abort = function() {
                this.loader.abort();
              }, i.load = function(e, f, u) {
                t(e), this.loader.load(e, f, u);
              }, R(h, [{
                key: "stats",
                get: function() {
                  return this.loader.stats;
                }
              }, {
                key: "context",
                get: function() {
                  return this.loader.context;
                }
              }]), h;
            }();
          }, E.createFragmentLoader = function() {
            var n = this.config.fLoader, t = this.applyFragmentData, d = n || this.config.loader;
            return /* @__PURE__ */ function() {
              function h(r) {
                this.loader = void 0, this.loader = new d(r);
              }
              var i = h.prototype;
              return i.destroy = function() {
                this.loader.destroy();
              }, i.abort = function() {
                this.loader.abort();
              }, i.load = function(e, f, u) {
                t(e), this.loader.load(e, f, u);
              }, R(h, [{
                key: "stats",
                get: function() {
                  return this.loader.stats;
                }
              }, {
                key: "context",
                get: function() {
                  return this.loader.context;
                }
              }]), h;
            }();
          }, _.uuid = function() {
            var n = URL.createObjectURL(new Blob()), t = n.toString();
            return URL.revokeObjectURL(n), t.slice(t.lastIndexOf("/") + 1);
          }, _.serialize = function(n) {
            for (var t = [], d = function(k) {
              return !Number.isNaN(k) && k != null && k !== "" && k !== !1;
            }, h = function(k) {
              return Math.round(k);
            }, i = function(k) {
              return h(k / 100) * 100;
            }, r = function(k) {
              return encodeURIComponent(k);
            }, e = {
              br: h,
              d: h,
              bl: i,
              dl: i,
              mtp: i,
              nor: r,
              rtp: i,
              tb: h
            }, f = Object.keys(n || {}).sort(), u = T(f), m; !(m = u()).done; ) {
              var s = m.value, v = n[s];
              if (!!d(v) && !(s === "v" && v === 1) && !(s == "pr" && v === 1)) {
                var c = e[s];
                c && (v = c(v));
                var o = typeof v, a = void 0;
                s === "ot" || s === "sf" || s === "st" ? a = s + "=" + v : o === "boolean" ? a = s : o === "number" ? a = s + "=" + v : a = s + "=" + JSON.stringify(v), t.push(a);
              }
            }
            return t.join(",");
          }, _.toHeaders = function(n) {
            for (var t = Object.keys(n), d = {}, h = ["Object", "Request", "Session", "Status"], i = [{}, {}, {}, {}], r = {
              br: 0,
              d: 0,
              ot: 0,
              tb: 0,
              bl: 1,
              dl: 1,
              mtp: 1,
              nor: 1,
              nrr: 1,
              su: 1,
              cid: 2,
              pr: 2,
              sf: 2,
              sid: 2,
              st: 2,
              v: 2,
              bs: 3,
              rtp: 3
            }, e = 0, f = t; e < f.length; e++) {
              var u = f[e], m = r[u] != null ? r[u] : 1;
              i[m][u] = n[u];
            }
            for (var s = 0; s < i.length; s++) {
              var v = _.serialize(i[s]);
              v && (d["CMCD-" + h[s]] = v);
            }
            return d;
          }, _.toQuery = function(n) {
            return "CMCD=" + encodeURIComponent(_.serialize(n));
          }, _.appendQueryToUri = function(n, t) {
            if (!t)
              return n;
            var d = n.includes("?") ? "&" : "?";
            return "" + n + d + t;
          }, _;
        }();
      },
      "./src/controller/eme-controller.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          default: () => b
        });
        var P = g("./src/events.ts"), y = g("./src/errors.ts"), O = g("./src/utils/logger.ts"), C = g("./src/utils/mediakeys-helper.ts");
        function F(_, E) {
          for (var l = 0; l < E.length; l++) {
            var n = E[l];
            n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(_, n.key, n);
          }
        }
        function R(_, E, l) {
          return E && F(_.prototype, E), l && F(_, l), Object.defineProperty(_, "prototype", { writable: !1 }), _;
        }
        var T = 3, D = function(E, l, n) {
          var t = {
            audioCapabilities: [],
            videoCapabilities: []
          };
          return E.forEach(function(d) {
            t.audioCapabilities.push({
              contentType: 'audio/mp4; codecs="' + d + '"',
              robustness: n.audioRobustness || ""
            });
          }), l.forEach(function(d) {
            t.videoCapabilities.push({
              contentType: 'video/mp4; codecs="' + d + '"',
              robustness: n.videoRobustness || ""
            });
          }), [t];
        }, p = function(E, l, n, t) {
          switch (E) {
            case C.KeySystems.WIDEVINE:
              return D(l, n, t);
            default:
              throw new Error("Unknown key-system: " + E);
          }
        }, S = /* @__PURE__ */ function() {
          function _(l) {
            this.hls = void 0, this._widevineLicenseUrl = void 0, this._licenseXhrSetup = void 0, this._licenseResponseCallback = void 0, this._emeEnabled = void 0, this._requestMediaKeySystemAccess = void 0, this._drmSystemOptions = void 0, this._config = void 0, this._mediaKeysList = [], this._media = null, this._hasSetMediaKeys = !1, this._requestLicenseFailureCount = 0, this.mediaKeysPromise = null, this._onMediaEncrypted = this.onMediaEncrypted.bind(this), this.hls = l, this._config = l.config, this._widevineLicenseUrl = this._config.widevineLicenseUrl, this._licenseXhrSetup = this._config.licenseXhrSetup, this._licenseResponseCallback = this._config.licenseResponseCallback, this._emeEnabled = this._config.emeEnabled, this._requestMediaKeySystemAccess = this._config.requestMediaKeySystemAccessFunc, this._drmSystemOptions = this._config.drmSystemOptions, this._registerListeners();
          }
          var E = _.prototype;
          return E.destroy = function() {
            this._unregisterListeners(), this.hls = this._onMediaEncrypted = null, this._requestMediaKeySystemAccess = null;
          }, E._registerListeners = function() {
            this.hls.on(P.Events.MEDIA_ATTACHED, this.onMediaAttached, this), this.hls.on(P.Events.MEDIA_DETACHED, this.onMediaDetached, this), this.hls.on(P.Events.MANIFEST_PARSED, this.onManifestParsed, this);
          }, E._unregisterListeners = function() {
            this.hls.off(P.Events.MEDIA_ATTACHED, this.onMediaAttached, this), this.hls.off(P.Events.MEDIA_DETACHED, this.onMediaDetached, this), this.hls.off(P.Events.MANIFEST_PARSED, this.onManifestParsed, this);
          }, E.getLicenseServerUrl = function(n) {
            switch (n) {
              case C.KeySystems.WIDEVINE:
                if (!this._widevineLicenseUrl)
                  break;
                return this._widevineLicenseUrl;
            }
            throw new Error('no license server URL configured for key-system "' + n + '"');
          }, E._attemptKeySystemAccess = function(n, t, d) {
            var h = this, i = p(n, t, d, this._drmSystemOptions);
            O.logger.log("Requesting encrypted media key-system access");
            var r = this.requestMediaKeySystemAccess(n, i);
            this.mediaKeysPromise = r.then(function(e) {
              return h._onMediaKeySystemAccessObtained(n, e);
            }), r.catch(function(e) {
              O.logger.error('Failed to obtain key-system "' + n + '" access:', e);
            });
          }, E._onMediaKeySystemAccessObtained = function(n, t) {
            var d = this;
            O.logger.log('Access for key-system "' + n + '" obtained');
            var h = {
              mediaKeysSessionInitialized: !1,
              mediaKeySystemAccess: t,
              mediaKeySystemDomain: n
            };
            this._mediaKeysList.push(h);
            var i = Promise.resolve().then(function() {
              return t.createMediaKeys();
            }).then(function(r) {
              return h.mediaKeys = r, O.logger.log('Media-keys created for key-system "' + n + '"'), d._onMediaKeysCreated(), r;
            });
            return i.catch(function(r) {
              O.logger.error("Failed to create media-keys:", r);
            }), i;
          }, E._onMediaKeysCreated = function() {
            var n = this;
            this._mediaKeysList.forEach(function(t) {
              t.mediaKeysSession || (t.mediaKeysSession = t.mediaKeys.createSession(), n._onNewMediaKeySession(t.mediaKeysSession));
            });
          }, E._onNewMediaKeySession = function(n) {
            var t = this;
            O.logger.log("New key-system session " + n.sessionId), n.addEventListener("message", function(d) {
              t._onKeySessionMessage(n, d.message);
            }, !1);
          }, E._onKeySessionMessage = function(n, t) {
            O.logger.log("Got EME message event, creating license request"), this._requestLicense(t, function(d) {
              O.logger.log("Received license data (length: " + (d && d.byteLength) + "), updating key-session"), n.update(d).catch(function(h) {
                O.logger.warn("Updating key-session failed: " + h);
              });
            });
          }, E.onMediaEncrypted = function(n) {
            var t = this;
            if (O.logger.log('Media is encrypted using "' + n.initDataType + '" init data type'), !this.mediaKeysPromise) {
              O.logger.error("Fatal: Media is encrypted but no CDM access or no keys have been requested"), this.hls.trigger(P.Events.ERROR, {
                type: y.ErrorTypes.KEY_SYSTEM_ERROR,
                details: y.ErrorDetails.KEY_SYSTEM_NO_KEYS,
                fatal: !0
              });
              return;
            }
            var d = function(i) {
              !t._media || (t._attemptSetMediaKeys(i), t._generateRequestWithPreferredKeySession(n.initDataType, n.initData));
            };
            this.mediaKeysPromise.then(d).catch(d);
          }, E._attemptSetMediaKeys = function(n) {
            if (!this._media)
              throw new Error("Attempted to set mediaKeys without first attaching a media element");
            if (!this._hasSetMediaKeys) {
              var t = this._mediaKeysList[0];
              if (!t || !t.mediaKeys) {
                O.logger.error("Fatal: Media is encrypted but no CDM access or no keys have been obtained yet"), this.hls.trigger(P.Events.ERROR, {
                  type: y.ErrorTypes.KEY_SYSTEM_ERROR,
                  details: y.ErrorDetails.KEY_SYSTEM_NO_KEYS,
                  fatal: !0
                });
                return;
              }
              O.logger.log("Setting keys for encrypted media"), this._media.setMediaKeys(t.mediaKeys), this._hasSetMediaKeys = !0;
            }
          }, E._generateRequestWithPreferredKeySession = function(n, t) {
            var d = this, h = this._mediaKeysList[0];
            if (!h) {
              O.logger.error("Fatal: Media is encrypted but not any key-system access has been obtained yet"), this.hls.trigger(P.Events.ERROR, {
                type: y.ErrorTypes.KEY_SYSTEM_ERROR,
                details: y.ErrorDetails.KEY_SYSTEM_NO_ACCESS,
                fatal: !0
              });
              return;
            }
            if (h.mediaKeysSessionInitialized) {
              O.logger.warn("Key-Session already initialized but requested again");
              return;
            }
            var i = h.mediaKeysSession;
            if (!i) {
              O.logger.error("Fatal: Media is encrypted but no key-session existing"), this.hls.trigger(P.Events.ERROR, {
                type: y.ErrorTypes.KEY_SYSTEM_ERROR,
                details: y.ErrorDetails.KEY_SYSTEM_NO_SESSION,
                fatal: !0
              });
              return;
            }
            if (!t) {
              O.logger.warn("Fatal: initData required for generating a key session is null"), this.hls.trigger(P.Events.ERROR, {
                type: y.ErrorTypes.KEY_SYSTEM_ERROR,
                details: y.ErrorDetails.KEY_SYSTEM_NO_INIT_DATA,
                fatal: !0
              });
              return;
            }
            O.logger.log('Generating key-session request for "' + n + '" init data type'), h.mediaKeysSessionInitialized = !0, i.generateRequest(n, t).then(function() {
              O.logger.debug("Key-session generation succeeded");
            }).catch(function(r) {
              O.logger.error("Error generating key-session request:", r), d.hls.trigger(P.Events.ERROR, {
                type: y.ErrorTypes.KEY_SYSTEM_ERROR,
                details: y.ErrorDetails.KEY_SYSTEM_NO_SESSION,
                fatal: !1
              });
            });
          }, E._createLicenseXhr = function(n, t, d) {
            var h = new XMLHttpRequest();
            h.responseType = "arraybuffer", h.onreadystatechange = this._onLicenseRequestReadyStageChange.bind(this, h, n, t, d);
            var i = this._licenseXhrSetup;
            if (i)
              try {
                i.call(this.hls, h, n), i = void 0;
              } catch (r) {
                O.logger.error(r);
              }
            try {
              h.readyState || h.open("POST", n, !0), i && i.call(this.hls, h, n);
            } catch (r) {
              throw new Error("issue setting up KeySystem license XHR " + r);
            }
            return h;
          }, E._onLicenseRequestReadyStageChange = function(n, t, d, h) {
            switch (n.readyState) {
              case 4:
                if (n.status === 200) {
                  this._requestLicenseFailureCount = 0, O.logger.log("License request succeeded");
                  var i = n.response, r = this._licenseResponseCallback;
                  if (r)
                    try {
                      i = r.call(this.hls, n, t);
                    } catch (f) {
                      O.logger.error(f);
                    }
                  h(i);
                } else {
                  if (O.logger.error("License Request XHR failed (" + t + "). Status: " + n.status + " (" + n.statusText + ")"), this._requestLicenseFailureCount++, this._requestLicenseFailureCount > T) {
                    this.hls.trigger(P.Events.ERROR, {
                      type: y.ErrorTypes.KEY_SYSTEM_ERROR,
                      details: y.ErrorDetails.KEY_SYSTEM_LICENSE_REQUEST_FAILED,
                      fatal: !0
                    });
                    return;
                  }
                  var e = T - this._requestLicenseFailureCount + 1;
                  O.logger.warn("Retrying license request, " + e + " attempts left"), this._requestLicense(d, h);
                }
                break;
            }
          }, E._generateLicenseRequestChallenge = function(n, t) {
            switch (n.mediaKeySystemDomain) {
              case C.KeySystems.WIDEVINE:
                return t;
            }
            throw new Error("unsupported key-system: " + n.mediaKeySystemDomain);
          }, E._requestLicense = function(n, t) {
            O.logger.log("Requesting content license for key-system");
            var d = this._mediaKeysList[0];
            if (!d) {
              O.logger.error("Fatal error: Media is encrypted but no key-system access has been obtained yet"), this.hls.trigger(P.Events.ERROR, {
                type: y.ErrorTypes.KEY_SYSTEM_ERROR,
                details: y.ErrorDetails.KEY_SYSTEM_NO_ACCESS,
                fatal: !0
              });
              return;
            }
            try {
              var h = this.getLicenseServerUrl(d.mediaKeySystemDomain), i = this._createLicenseXhr(h, n, t);
              O.logger.log("Sending license request to URL: " + h);
              var r = this._generateLicenseRequestChallenge(d, n);
              i.send(r);
            } catch (e) {
              O.logger.error("Failure requesting DRM license: " + e), this.hls.trigger(P.Events.ERROR, {
                type: y.ErrorTypes.KEY_SYSTEM_ERROR,
                details: y.ErrorDetails.KEY_SYSTEM_LICENSE_REQUEST_FAILED,
                fatal: !0
              });
            }
          }, E.onMediaAttached = function(n, t) {
            if (!!this._emeEnabled) {
              var d = t.media;
              this._media = d, d.addEventListener("encrypted", this._onMediaEncrypted);
            }
          }, E.onMediaDetached = function() {
            var n = this._media, t = this._mediaKeysList;
            !n || (n.removeEventListener("encrypted", this._onMediaEncrypted), this._media = null, this._mediaKeysList = [], Promise.all(t.map(function(d) {
              if (d.mediaKeysSession)
                return d.mediaKeysSession.close().catch(function() {
                });
            })).then(function() {
              return n.setMediaKeys(null);
            }).catch(function() {
            }));
          }, E.onManifestParsed = function(n, t) {
            if (!!this._emeEnabled) {
              var d = t.levels.map(function(i) {
                return i.audioCodec;
              }).filter(function(i) {
                return !!i;
              }), h = t.levels.map(function(i) {
                return i.videoCodec;
              }).filter(function(i) {
                return !!i;
              });
              this._attemptKeySystemAccess(C.KeySystems.WIDEVINE, d, h);
            }
          }, R(_, [{
            key: "requestMediaKeySystemAccess",
            get: function() {
              if (!this._requestMediaKeySystemAccess)
                throw new Error("No requestMediaKeySystemAccess function configured");
              return this._requestMediaKeySystemAccess;
            }
          }]), _;
        }();
        const b = S;
      },
      "./src/controller/fps-controller.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          default: () => C
        });
        var P = g("./src/events.ts"), y = g("./src/utils/logger.ts"), O = /* @__PURE__ */ function() {
          function F(T) {
            this.hls = void 0, this.isVideoPlaybackQualityAvailable = !1, this.timer = void 0, this.media = null, this.lastTime = void 0, this.lastDroppedFrames = 0, this.lastDecodedFrames = 0, this.streamController = void 0, this.hls = T, this.registerListeners();
          }
          var R = F.prototype;
          return R.setStreamController = function(D) {
            this.streamController = D;
          }, R.registerListeners = function() {
            this.hls.on(P.Events.MEDIA_ATTACHING, this.onMediaAttaching, this);
          }, R.unregisterListeners = function() {
            this.hls.off(P.Events.MEDIA_ATTACHING, this.onMediaAttaching);
          }, R.destroy = function() {
            this.timer && clearInterval(this.timer), this.unregisterListeners(), this.isVideoPlaybackQualityAvailable = !1, this.media = null;
          }, R.onMediaAttaching = function(D, p) {
            var S = this.hls.config;
            if (S.capLevelOnFPSDrop) {
              var b = p.media instanceof self.HTMLVideoElement ? p.media : null;
              this.media = b, b && typeof b.getVideoPlaybackQuality == "function" && (this.isVideoPlaybackQualityAvailable = !0), self.clearInterval(this.timer), this.timer = self.setInterval(this.checkFPSInterval.bind(this), S.fpsDroppedMonitoringPeriod);
            }
          }, R.checkFPS = function(D, p, S) {
            var b = performance.now();
            if (p) {
              if (this.lastTime) {
                var _ = b - this.lastTime, E = S - this.lastDroppedFrames, l = p - this.lastDecodedFrames, n = 1e3 * E / _, t = this.hls;
                if (t.trigger(P.Events.FPS_DROP, {
                  currentDropped: E,
                  currentDecoded: l,
                  totalDroppedFrames: S
                }), n > 0 && E > t.config.fpsDroppedMonitoringThreshold * l) {
                  var d = t.currentLevel;
                  y.logger.warn("drop FPS ratio greater than max allowed value for currentLevel: " + d), d > 0 && (t.autoLevelCapping === -1 || t.autoLevelCapping >= d) && (d = d - 1, t.trigger(P.Events.FPS_DROP_LEVEL_CAPPING, {
                    level: d,
                    droppedLevel: t.currentLevel
                  }), t.autoLevelCapping = d, this.streamController.nextLevelSwitch());
                }
              }
              this.lastTime = b, this.lastDroppedFrames = S, this.lastDecodedFrames = p;
            }
          }, R.checkFPSInterval = function() {
            var D = this.media;
            if (D)
              if (this.isVideoPlaybackQualityAvailable) {
                var p = D.getVideoPlaybackQuality();
                this.checkFPS(D, p.totalVideoFrames, p.droppedVideoFrames);
              } else
                this.checkFPS(D, D.webkitDecodedFrameCount, D.webkitDroppedFrameCount);
          }, F;
        }();
        const C = O;
      },
      "./src/controller/fragment-finders.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          findFragWithCC: () => T,
          findFragmentByPDT: () => O,
          findFragmentByPTS: () => C,
          fragmentWithinToleranceTest: () => F,
          pdtWithinToleranceTest: () => R
        });
        var P = g("./src/polyfills/number.ts"), y = g("./src/utils/binary-search.ts");
        function O(D, p, S) {
          if (p === null || !Array.isArray(D) || !D.length || !(0, P.isFiniteNumber)(p))
            return null;
          var b = D[0].programDateTime;
          if (p < (b || 0))
            return null;
          var _ = D[D.length - 1].endProgramDateTime;
          if (p >= (_ || 0))
            return null;
          S = S || 0;
          for (var E = 0; E < D.length; ++E) {
            var l = D[E];
            if (R(p, S, l))
              return l;
          }
          return null;
        }
        function C(D, p, S, b) {
          S === void 0 && (S = 0), b === void 0 && (b = 0);
          var _ = null;
          if (D ? _ = p[D.sn - p[0].sn + 1] || null : S === 0 && p[0].start === 0 && (_ = p[0]), _ && F(S, b, _) === 0)
            return _;
          var E = y.default.search(p, F.bind(null, S, b));
          return E || _;
        }
        function F(D, p, S) {
          D === void 0 && (D = 0), p === void 0 && (p = 0);
          var b = Math.min(p, S.duration + (S.deltaPTS ? S.deltaPTS : 0));
          return S.start + S.duration - b <= D ? 1 : S.start - b > D && S.start ? -1 : 0;
        }
        function R(D, p, S) {
          var b = Math.min(p, S.duration + (S.deltaPTS ? S.deltaPTS : 0)) * 1e3, _ = S.endProgramDateTime || 0;
          return _ - b > D;
        }
        function T(D, p) {
          return y.default.search(D, function(S) {
            return S.cc < p ? 1 : S.cc > p ? -1 : 0;
          });
        }
      },
      "./src/controller/fragment-tracker.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          FragmentState: () => O,
          FragmentTracker: () => C
        });
        var P = g("./src/events.ts"), y = g("./src/types/loader.ts"), O;
        (function(T) {
          T.NOT_LOADED = "NOT_LOADED", T.APPENDING = "APPENDING", T.PARTIAL = "PARTIAL", T.OK = "OK";
        })(O || (O = {}));
        var C = /* @__PURE__ */ function() {
          function T(p) {
            this.activeFragment = null, this.activeParts = null, this.fragments = /* @__PURE__ */ Object.create(null), this.timeRanges = /* @__PURE__ */ Object.create(null), this.bufferPadding = 0.2, this.hls = void 0, this.hls = p, this._registerListeners();
          }
          var D = T.prototype;
          return D._registerListeners = function() {
            var S = this.hls;
            S.on(P.Events.BUFFER_APPENDED, this.onBufferAppended, this), S.on(P.Events.FRAG_BUFFERED, this.onFragBuffered, this), S.on(P.Events.FRAG_LOADED, this.onFragLoaded, this);
          }, D._unregisterListeners = function() {
            var S = this.hls;
            S.off(P.Events.BUFFER_APPENDED, this.onBufferAppended, this), S.off(P.Events.FRAG_BUFFERED, this.onFragBuffered, this), S.off(P.Events.FRAG_LOADED, this.onFragLoaded, this);
          }, D.destroy = function() {
            this._unregisterListeners(), this.fragments = this.timeRanges = null;
          }, D.getAppendedFrag = function(S, b) {
            if (b === y.PlaylistLevelType.MAIN) {
              var _ = this.activeFragment, E = this.activeParts;
              if (!_)
                return null;
              if (E)
                for (var l = E.length; l--; ) {
                  var n = E[l], t = n ? n.end : _.appendedPTS;
                  if (n.start <= S && t !== void 0 && S <= t)
                    return l > 9 && (this.activeParts = E.slice(l - 9)), n;
                }
              else if (_.start <= S && _.appendedPTS !== void 0 && S <= _.appendedPTS)
                return _;
            }
            return this.getBufferedFrag(S, b);
          }, D.getBufferedFrag = function(S, b) {
            for (var _ = this.fragments, E = Object.keys(_), l = E.length; l--; ) {
              var n = _[E[l]];
              if ((n == null ? void 0 : n.body.type) === b && n.buffered) {
                var t = n.body;
                if (t.start <= S && S <= t.end)
                  return t;
              }
            }
            return null;
          }, D.detectEvictedFragments = function(S, b, _) {
            var E = this;
            Object.keys(this.fragments).forEach(function(l) {
              var n = E.fragments[l];
              if (!!n) {
                if (!n.buffered) {
                  n.body.type === _ && E.removeFragment(n.body);
                  return;
                }
                var t = n.range[S];
                !t || t.time.some(function(d) {
                  var h = !E.isTimeBuffered(d.startPTS, d.endPTS, b);
                  return h && E.removeFragment(n.body), h;
                });
              }
            });
          }, D.detectPartialFragments = function(S) {
            var b = this, _ = this.timeRanges, E = S.frag, l = S.part;
            if (!(!_ || E.sn === "initSegment")) {
              var n = R(E), t = this.fragments[n];
              !t || (Object.keys(_).forEach(function(d) {
                var h = E.elementaryStreams[d];
                if (!!h) {
                  var i = _[d], r = l !== null || h.partial === !0;
                  t.range[d] = b.getBufferedTimes(E, l, r, i);
                }
              }), t.loaded = null, Object.keys(t.range).length ? t.buffered = !0 : this.removeFragment(t.body));
            }
          }, D.fragBuffered = function(S) {
            var b = R(S), _ = this.fragments[b];
            _ && (_.loaded = null, _.buffered = !0);
          }, D.getBufferedTimes = function(S, b, _, E) {
            for (var l = {
              time: [],
              partial: _
            }, n = b ? b.start : S.start, t = b ? b.end : S.end, d = S.minEndPTS || t, h = S.maxStartPTS || n, i = 0; i < E.length; i++) {
              var r = E.start(i) - this.bufferPadding, e = E.end(i) + this.bufferPadding;
              if (h >= r && d <= e) {
                l.time.push({
                  startPTS: Math.max(n, E.start(i)),
                  endPTS: Math.min(t, E.end(i))
                });
                break;
              } else if (n < e && t > r)
                l.partial = !0, l.time.push({
                  startPTS: Math.max(n, E.start(i)),
                  endPTS: Math.min(t, E.end(i))
                });
              else if (t <= r)
                break;
            }
            return l;
          }, D.getPartialFragment = function(S) {
            var b = null, _, E, l, n = 0, t = this.bufferPadding, d = this.fragments;
            return Object.keys(d).forEach(function(h) {
              var i = d[h];
              !i || F(i) && (E = i.body.start - t, l = i.body.end + t, S >= E && S <= l && (_ = Math.min(S - E, l - S), n <= _ && (b = i.body, n = _)));
            }), b;
          }, D.getState = function(S) {
            var b = R(S), _ = this.fragments[b];
            return _ ? _.buffered ? F(_) ? O.PARTIAL : O.OK : O.APPENDING : O.NOT_LOADED;
          }, D.isTimeBuffered = function(S, b, _) {
            for (var E, l, n = 0; n < _.length; n++) {
              if (E = _.start(n) - this.bufferPadding, l = _.end(n) + this.bufferPadding, S >= E && b <= l)
                return !0;
              if (b <= E)
                return !1;
            }
            return !1;
          }, D.onFragLoaded = function(S, b) {
            var _ = b.frag, E = b.part;
            if (!(_.sn === "initSegment" || _.bitrateTest || E)) {
              var l = R(_);
              this.fragments[l] = {
                body: _,
                loaded: b,
                buffered: !1,
                range: /* @__PURE__ */ Object.create(null)
              };
            }
          }, D.onBufferAppended = function(S, b) {
            var _ = this, E = b.frag, l = b.part, n = b.timeRanges;
            if (E.type === y.PlaylistLevelType.MAIN)
              if (this.activeFragment = E, l) {
                var t = this.activeParts;
                t || (this.activeParts = t = []), t.push(l);
              } else
                this.activeParts = null;
            this.timeRanges = n, Object.keys(n).forEach(function(d) {
              var h = n[d];
              if (_.detectEvictedFragments(d, h), !l)
                for (var i = 0; i < h.length; i++)
                  E.appendedPTS = Math.max(h.end(i), E.appendedPTS || 0);
            });
          }, D.onFragBuffered = function(S, b) {
            this.detectPartialFragments(b);
          }, D.hasFragment = function(S) {
            var b = R(S);
            return !!this.fragments[b];
          }, D.removeFragmentsInRange = function(S, b, _) {
            var E = this;
            Object.keys(this.fragments).forEach(function(l) {
              var n = E.fragments[l];
              if (!!n && n.buffered) {
                var t = n.body;
                t.type === _ && t.start < b && t.end > S && E.removeFragment(t);
              }
            });
          }, D.removeFragment = function(S) {
            var b = R(S);
            S.stats.loaded = 0, S.clearElementaryStreamInfo(), delete this.fragments[b];
          }, D.removeAllFragments = function() {
            this.fragments = /* @__PURE__ */ Object.create(null), this.activeFragment = null, this.activeParts = null;
          }, T;
        }();
        function F(T) {
          var D, p;
          return T.buffered && (((D = T.range.video) === null || D === void 0 ? void 0 : D.partial) || ((p = T.range.audio) === null || p === void 0 ? void 0 : p.partial));
        }
        function R(T) {
          return T.type + "_" + T.level + "_" + T.urlId + "_" + T.sn;
        }
      },
      "./src/controller/gap-controller.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          MAX_START_GAP_JUMP: () => R,
          SKIP_BUFFER_HOLE_STEP_SECONDS: () => T,
          SKIP_BUFFER_RANGE_START: () => D,
          STALL_MINIMUM_DURATION_MS: () => F,
          default: () => p
        });
        var P = g("./src/utils/buffer-helper.ts"), y = g("./src/errors.ts"), O = g("./src/events.ts"), C = g("./src/utils/logger.ts"), F = 250, R = 2, T = 0.1, D = 0.05, p = /* @__PURE__ */ function() {
          function S(_, E, l, n) {
            this.config = void 0, this.media = null, this.fragmentTracker = void 0, this.hls = void 0, this.nudgeRetry = 0, this.stallReported = !1, this.stalled = null, this.moved = !1, this.seeking = !1, this.config = _, this.media = E, this.fragmentTracker = l, this.hls = n;
          }
          var b = S.prototype;
          return b.destroy = function() {
            this.media = null, this.hls = this.fragmentTracker = null;
          }, b.poll = function(E, l) {
            var n = this.config, t = this.media, d = this.stalled;
            if (t !== null) {
              var h = t.currentTime, i = t.seeking, r = this.seeking && !i, e = !this.seeking && i;
              if (this.seeking = i, h !== E) {
                if (this.moved = !0, d !== null) {
                  if (this.stallReported) {
                    var f = self.performance.now() - d;
                    C.logger.warn("playback not stuck anymore @" + h + ", after " + Math.round(f) + "ms"), this.stallReported = !1;
                  }
                  this.stalled = null, this.nudgeRetry = 0;
                }
                return;
              }
              if ((e || r) && (this.stalled = null), !(t.paused && !i || t.ended || t.playbackRate === 0 || !P.BufferHelper.getBuffered(t).length)) {
                var u = P.BufferHelper.bufferInfo(t, h, 0), m = u.len > 0, s = u.nextStart || 0;
                if (!(!m && !s)) {
                  if (i) {
                    var v = u.len > R, c = !s || l && l.start <= h || s - h > R && !this.fragmentTracker.getPartialFragment(h);
                    if (v || c)
                      return;
                    this.moved = !1;
                  }
                  if (!this.moved && this.stalled !== null) {
                    var o, a = Math.max(s, u.start || 0) - h, x = this.hls.levels ? this.hls.levels[this.hls.currentLevel] : null, k = x == null || (o = x.details) === null || o === void 0 ? void 0 : o.live, K = k ? x.details.targetduration * 2 : R;
                    if (a > 0 && a <= K) {
                      this._trySkipBufferHole(null);
                      return;
                    }
                  }
                  var w = self.performance.now();
                  if (d === null) {
                    this.stalled = w;
                    return;
                  }
                  var W = w - d;
                  if (!(!i && W >= F && (this._reportStall(u), !this.media))) {
                    var z = P.BufferHelper.bufferInfo(t, h, n.maxBufferHole);
                    this._tryFixBufferStall(z, W);
                  }
                }
              }
            }
          }, b._tryFixBufferStall = function(E, l) {
            var n = this.config, t = this.fragmentTracker, d = this.media;
            if (d !== null) {
              var h = d.currentTime, i = t.getPartialFragment(h);
              if (i) {
                var r = this._trySkipBufferHole(i);
                if (r || !this.media)
                  return;
              }
              E.len > n.maxBufferHole && l > n.highBufferWatchdogPeriod * 1e3 && (C.logger.warn("Trying to nudge playhead over buffer-hole"), this.stalled = null, this._tryNudgeBuffer());
            }
          }, b._reportStall = function(E) {
            var l = this.hls, n = this.media, t = this.stallReported;
            !t && n && (this.stallReported = !0, C.logger.warn("Playback stalling at @" + n.currentTime + " due to low buffer (" + JSON.stringify(E) + ")"), l.trigger(O.Events.ERROR, {
              type: y.ErrorTypes.MEDIA_ERROR,
              details: y.ErrorDetails.BUFFER_STALLED_ERROR,
              fatal: !1,
              buffer: E.len
            }));
          }, b._trySkipBufferHole = function(E) {
            var l = this.config, n = this.hls, t = this.media;
            if (t === null)
              return 0;
            for (var d = t.currentTime, h = 0, i = P.BufferHelper.getBuffered(t), r = 0; r < i.length; r++) {
              var e = i.start(r);
              if (d + l.maxBufferHole >= h && d < e) {
                var f = Math.max(e + D, t.currentTime + T);
                return C.logger.warn("skipping hole, adjusting currentTime from " + d + " to " + f), this.moved = !0, this.stalled = null, t.currentTime = f, E && n.trigger(O.Events.ERROR, {
                  type: y.ErrorTypes.MEDIA_ERROR,
                  details: y.ErrorDetails.BUFFER_SEEK_OVER_HOLE,
                  fatal: !1,
                  reason: "fragment loaded with buffer holes, seeking from " + d + " to " + f,
                  frag: E
                }), f;
              }
              h = i.end(r);
            }
            return 0;
          }, b._tryNudgeBuffer = function() {
            var E = this.config, l = this.hls, n = this.media, t = this.nudgeRetry;
            if (n !== null) {
              var d = n.currentTime;
              if (this.nudgeRetry++, t < E.nudgeMaxRetry) {
                var h = d + (t + 1) * E.nudgeOffset;
                C.logger.warn("Nudging 'currentTime' from " + d + " to " + h), n.currentTime = h, l.trigger(O.Events.ERROR, {
                  type: y.ErrorTypes.MEDIA_ERROR,
                  details: y.ErrorDetails.BUFFER_NUDGE_ON_STALL,
                  fatal: !1
                });
              } else
                C.logger.error("Playhead still not moving while enough data buffered @" + d + " after " + E.nudgeMaxRetry + " nudges"), l.trigger(O.Events.ERROR, {
                  type: y.ErrorTypes.MEDIA_ERROR,
                  details: y.ErrorDetails.BUFFER_STALLED_ERROR,
                  fatal: !0
                });
            }
          }, S;
        }();
      },
      "./src/controller/id3-track-controller.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          default: () => E
        });
        var P = g("./src/polyfills/number.ts"), y = g("./src/events.ts"), O = g("./src/utils/texttrack-utils.ts"), C = g("./src/demux/id3.ts"), F = g("./src/loader/date-range.ts"), R = g("./src/types/demuxer.ts"), T = 0.25;
        function D() {
          return self.WebKitDataCue || self.VTTCue || self.TextTrackCue;
        }
        var p = function() {
          var l = D();
          try {
            new l(0, Number.POSITIVE_INFINITY, "");
          } catch {
            return Number.MAX_VALUE;
          }
          return Number.POSITIVE_INFINITY;
        }();
        function S(l, n) {
          return l.getTime() / 1e3 - n;
        }
        function b(l) {
          return Uint8Array.from(l.replace(/^0x/, "").replace(/([\da-fA-F]{2}) ?/g, "0x$1 ").replace(/ +$/, "").split(" ")).buffer;
        }
        var _ = /* @__PURE__ */ function() {
          function l(t) {
            this.hls = void 0, this.id3Track = null, this.media = null, this.dateRangeCuesAppended = {}, this.hls = t, this._registerListeners();
          }
          var n = l.prototype;
          return n.destroy = function() {
            this._unregisterListeners(), this.id3Track = null, this.media = null, this.dateRangeCuesAppended = {}, this.hls = null;
          }, n._registerListeners = function() {
            var d = this.hls;
            d.on(y.Events.MEDIA_ATTACHED, this.onMediaAttached, this), d.on(y.Events.MEDIA_DETACHING, this.onMediaDetaching, this), d.on(y.Events.MANIFEST_LOADING, this.onManifestLoading, this), d.on(y.Events.FRAG_PARSING_METADATA, this.onFragParsingMetadata, this), d.on(y.Events.BUFFER_FLUSHING, this.onBufferFlushing, this), d.on(y.Events.LEVEL_UPDATED, this.onLevelUpdated, this);
          }, n._unregisterListeners = function() {
            var d = this.hls;
            d.off(y.Events.MEDIA_ATTACHED, this.onMediaAttached, this), d.off(y.Events.MEDIA_DETACHING, this.onMediaDetaching, this), d.off(y.Events.MANIFEST_LOADING, this.onManifestLoading, this), d.off(y.Events.FRAG_PARSING_METADATA, this.onFragParsingMetadata, this), d.off(y.Events.BUFFER_FLUSHING, this.onBufferFlushing, this), d.off(y.Events.LEVEL_UPDATED, this.onLevelUpdated, this);
          }, n.onMediaAttached = function(d, h) {
            this.media = h.media;
          }, n.onMediaDetaching = function() {
            !this.id3Track || ((0, O.clearCurrentCues)(this.id3Track), this.id3Track = null, this.media = null, this.dateRangeCuesAppended = {});
          }, n.onManifestLoading = function() {
            this.dateRangeCuesAppended = {};
          }, n.createTrack = function(d) {
            var h = this.getID3Track(d.textTracks);
            return h.mode = "hidden", h;
          }, n.getID3Track = function(d) {
            if (!!this.media) {
              for (var h = 0; h < d.length; h++) {
                var i = d[h];
                if (i.kind === "metadata" && i.label === "id3")
                  return (0, O.sendAddTrackEvent)(i, this.media), i;
              }
              return this.media.addTextTrack("metadata", "id3");
            }
          }, n.onFragParsingMetadata = function(d, h) {
            if (!!this.media) {
              var i = this.hls.config, r = i.enableEmsgMetadataCues, e = i.enableID3MetadataCues;
              if (!(!r && !e)) {
                h.frag;
                var f = h.samples;
                h.details, this.id3Track || (this.id3Track = this.createTrack(this.media));
                for (var u = D(), m = 0; m < f.length; m++) {
                  var s = f[m].type;
                  if (!(s === R.MetadataSchema.emsg && !r || !e)) {
                    var v = C.getID3Frames(f[m].data);
                    if (v) {
                      var c = f[m].pts, o = c + f[m].duration;
                      o > p && (o = p);
                      var a = o - c;
                      a <= 0 && (o = c + T);
                      for (var x = 0; x < v.length; x++) {
                        var k = v[x];
                        if (!C.isTimeStampFrame(k)) {
                          this.updateId3CueEnds(c);
                          var K = new u(c, o, "");
                          K.value = k, s && (K.type = s), this.id3Track.addCue(K);
                        }
                      }
                    }
                  }
                }
              }
            }
          }, n.updateId3CueEnds = function(d) {
            var h, i = (h = this.id3Track) === null || h === void 0 ? void 0 : h.cues;
            if (i)
              for (var r = i.length; r--; ) {
                var e = i[r];
                e.startTime < d && e.endTime === p && (e.endTime = d);
              }
          }, n.onBufferFlushing = function(d, h) {
            var i = h.startOffset, r = h.endOffset, e = h.type, f = this.id3Track, u = this.hls;
            if (!!u) {
              var m = u.config, s = m.enableEmsgMetadataCues, v = m.enableID3MetadataCues;
              if (f && (s || v)) {
                var c;
                e === "audio" ? c = function(a) {
                  return a.type === R.MetadataSchema.audioId3 && v;
                } : e === "video" ? c = function(a) {
                  return a.type === R.MetadataSchema.emsg && s;
                } : c = function(a) {
                  return a.type === R.MetadataSchema.audioId3 && v || a.type === R.MetadataSchema.emsg && s;
                }, (0, O.removeCuesInRange)(f, i, r, c);
              }
            }
          }, n.onLevelUpdated = function(d, h) {
            var i = this, r = h.details;
            if (!(!this.media || !r.hasProgramDateTime || !this.hls.config.enableDateRangeMetadataCues)) {
              var e = this.dateRangeCuesAppended, f = this.id3Track, u = r.dateRanges, m = Object.keys(u);
              if (f)
                for (var s = Object.keys(e).filter(function(w) {
                  return !m.includes(w);
                }), v = function(W) {
                  var z = s[W];
                  Object.keys(e[z].cues).forEach(function(H) {
                    f.removeCue(e[z].cues[H]);
                  }), delete e[z];
                }, c = s.length; c--; )
                  v(c);
              var o = r.fragments[r.fragments.length - 1];
              if (!(m.length === 0 || !(0, P.isFiniteNumber)(o == null ? void 0 : o.programDateTime))) {
                this.id3Track || (this.id3Track = this.createTrack(this.media));
                for (var a = o.programDateTime / 1e3 - o.start, x = D(), k = function(W) {
                  var z = m[W], H = u[z], j = e[z], Y = (j == null ? void 0 : j.cues) || {}, Z = (j == null ? void 0 : j.durationKnown) || !1, q = S(H.startDate, a), ee = p, te = H.endDate;
                  if (te)
                    ee = S(te, a), Z = !0;
                  else if (H.endOnNext && !Z) {
                    var ne = m.reduce(function(me, ve) {
                      var pe = u[ve];
                      return pe.class === H.class && pe.id !== ve && pe.startDate > H.startDate && me.push(pe), me;
                    }, []).sort(function(me, ve) {
                      return me.startDate.getTime() - ve.startDate.getTime();
                    })[0];
                    ne && (ee = S(ne.startDate, a), Z = !0);
                  }
                  for (var ie = Object.keys(H.attr), oe = 0; oe < ie.length; oe++) {
                    var de = ie[oe];
                    if (!(de === F.DateRangeAttribute.ID || de === F.DateRangeAttribute.CLASS || de === F.DateRangeAttribute.START_DATE || de === F.DateRangeAttribute.DURATION || de === F.DateRangeAttribute.END_DATE || de === F.DateRangeAttribute.END_ON_NEXT)) {
                      var re = Y[de];
                      if (re)
                        Z && !j.durationKnown && (re.endTime = ee);
                      else {
                        var le = H.attr[de];
                        re = new x(q, ee, ""), (de === F.DateRangeAttribute.SCTE35_OUT || de === F.DateRangeAttribute.SCTE35_IN) && (le = b(le)), re.value = {
                          key: de,
                          data: le
                        }, re.type = R.MetadataSchema.dateRange, i.id3Track.addCue(re), Y[de] = re;
                      }
                    }
                  }
                  e[z] = {
                    cues: Y,
                    dateRange: H,
                    durationKnown: Z
                  };
                }, K = 0; K < m.length; K++)
                  k(K);
              }
            }
          }, l;
        }();
        const E = _;
      },
      "./src/controller/latency-controller.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          default: () => R
        });
        var P = g("./src/errors.ts"), y = g("./src/events.ts"), O = g("./src/utils/logger.ts");
        function C(T, D) {
          for (var p = 0; p < D.length; p++) {
            var S = D[p];
            S.enumerable = S.enumerable || !1, S.configurable = !0, "value" in S && (S.writable = !0), Object.defineProperty(T, S.key, S);
          }
        }
        function F(T, D, p) {
          return D && C(T.prototype, D), p && C(T, p), Object.defineProperty(T, "prototype", { writable: !1 }), T;
        }
        var R = /* @__PURE__ */ function() {
          function T(p) {
            var S = this;
            this.hls = void 0, this.config = void 0, this.media = null, this.levelDetails = null, this.currentTime = 0, this.stallCount = 0, this._latency = null, this.timeupdateHandler = function() {
              return S.timeupdate();
            }, this.hls = p, this.config = p.config, this.registerListeners();
          }
          var D = T.prototype;
          return D.destroy = function() {
            this.unregisterListeners(), this.onMediaDetaching(), this.levelDetails = null, this.hls = this.timeupdateHandler = null;
          }, D.registerListeners = function() {
            this.hls.on(y.Events.MEDIA_ATTACHED, this.onMediaAttached, this), this.hls.on(y.Events.MEDIA_DETACHING, this.onMediaDetaching, this), this.hls.on(y.Events.MANIFEST_LOADING, this.onManifestLoading, this), this.hls.on(y.Events.LEVEL_UPDATED, this.onLevelUpdated, this), this.hls.on(y.Events.ERROR, this.onError, this);
          }, D.unregisterListeners = function() {
            this.hls.off(y.Events.MEDIA_ATTACHED, this.onMediaAttached), this.hls.off(y.Events.MEDIA_DETACHING, this.onMediaDetaching), this.hls.off(y.Events.MANIFEST_LOADING, this.onManifestLoading), this.hls.off(y.Events.LEVEL_UPDATED, this.onLevelUpdated), this.hls.off(y.Events.ERROR, this.onError);
          }, D.onMediaAttached = function(S, b) {
            this.media = b.media, this.media.addEventListener("timeupdate", this.timeupdateHandler);
          }, D.onMediaDetaching = function() {
            this.media && (this.media.removeEventListener("timeupdate", this.timeupdateHandler), this.media = null);
          }, D.onManifestLoading = function() {
            this.levelDetails = null, this._latency = null, this.stallCount = 0;
          }, D.onLevelUpdated = function(S, b) {
            var _ = b.details;
            this.levelDetails = _, _.advanced && this.timeupdate(), !_.live && this.media && this.media.removeEventListener("timeupdate", this.timeupdateHandler);
          }, D.onError = function(S, b) {
            b.details === P.ErrorDetails.BUFFER_STALLED_ERROR && (this.stallCount++, O.logger.warn("[playback-rate-controller]: Stall detected, adjusting target latency"));
          }, D.timeupdate = function() {
            var S = this.media, b = this.levelDetails;
            if (!(!S || !b)) {
              this.currentTime = S.currentTime;
              var _ = this.computeLatency();
              if (_ !== null) {
                this._latency = _;
                var E = this.config, l = E.lowLatencyMode, n = E.maxLiveSyncPlaybackRate;
                if (!(!l || n === 1)) {
                  var t = this.targetLatency;
                  if (t !== null) {
                    var d = _ - t, h = Math.min(this.maxLatency, t + b.targetduration), i = d < h;
                    if (b.live && i && d > 0.05 && this.forwardBufferLength > 1) {
                      var r = Math.min(2, Math.max(1, n)), e = Math.round(2 / (1 + Math.exp(-0.75 * d - this.edgeStalled)) * 20) / 20;
                      S.playbackRate = Math.min(r, Math.max(1, e));
                    } else
                      S.playbackRate !== 1 && S.playbackRate !== 0 && (S.playbackRate = 1);
                  }
                }
              }
            }
          }, D.estimateLiveEdge = function() {
            var S = this.levelDetails;
            return S === null ? null : S.edge + S.age;
          }, D.computeLatency = function() {
            var S = this.estimateLiveEdge();
            return S === null ? null : S - this.currentTime;
          }, F(T, [{
            key: "latency",
            get: function() {
              return this._latency || 0;
            }
          }, {
            key: "maxLatency",
            get: function() {
              var S = this.config, b = this.levelDetails;
              return S.liveMaxLatencyDuration !== void 0 ? S.liveMaxLatencyDuration : b ? S.liveMaxLatencyDurationCount * b.targetduration : 0;
            }
          }, {
            key: "targetLatency",
            get: function() {
              var S = this.levelDetails;
              if (S === null)
                return null;
              var b = S.holdBack, _ = S.partHoldBack, E = S.targetduration, l = this.config, n = l.liveSyncDuration, t = l.liveSyncDurationCount, d = l.lowLatencyMode, h = this.hls.userConfig, i = d && _ || b;
              (h.liveSyncDuration || h.liveSyncDurationCount || i === 0) && (i = n !== void 0 ? n : t * E);
              var r = E, e = 1;
              return i + Math.min(this.stallCount * e, r);
            }
          }, {
            key: "liveSyncPosition",
            get: function() {
              var S = this.estimateLiveEdge(), b = this.targetLatency, _ = this.levelDetails;
              if (S === null || b === null || _ === null)
                return null;
              var E = _.edge, l = S - b - this.edgeStalled, n = E - _.totalduration, t = E - (this.config.lowLatencyMode && _.partTarget || _.targetduration);
              return Math.min(Math.max(n, l), t);
            }
          }, {
            key: "drift",
            get: function() {
              var S = this.levelDetails;
              return S === null ? 1 : S.drift;
            }
          }, {
            key: "edgeStalled",
            get: function() {
              var S = this.levelDetails;
              if (S === null)
                return 0;
              var b = (this.config.lowLatencyMode && S.partTarget || S.targetduration) * 3;
              return Math.max(S.age - b, 0);
            }
          }, {
            key: "forwardBufferLength",
            get: function() {
              var S = this.media, b = this.levelDetails;
              if (!S || !b)
                return 0;
              var _ = S.buffered.length;
              return (_ ? S.buffered.end(_ - 1) : b.edge) - this.currentTime;
            }
          }]), T;
        }();
      },
      "./src/controller/level-controller.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          default: () => l
        });
        var P = g("./src/types/level.ts"), y = g("./src/events.ts"), O = g("./src/errors.ts"), C = g("./src/utils/codecs.ts"), F = g("./src/controller/level-helper.ts"), R = g("./src/controller/base-playlist-controller.ts"), T = g("./src/types/loader.ts");
        function D() {
          return D = Object.assign ? Object.assign.bind() : function(n) {
            for (var t = 1; t < arguments.length; t++) {
              var d = arguments[t];
              for (var h in d)
                Object.prototype.hasOwnProperty.call(d, h) && (n[h] = d[h]);
            }
            return n;
          }, D.apply(this, arguments);
        }
        function p(n, t) {
          for (var d = 0; d < t.length; d++) {
            var h = t[d];
            h.enumerable = h.enumerable || !1, h.configurable = !0, "value" in h && (h.writable = !0), Object.defineProperty(n, h.key, h);
          }
        }
        function S(n, t, d) {
          return t && p(n.prototype, t), d && p(n, d), Object.defineProperty(n, "prototype", { writable: !1 }), n;
        }
        function b(n, t) {
          n.prototype = Object.create(t.prototype), n.prototype.constructor = n, _(n, t);
        }
        function _(n, t) {
          return _ = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(h, i) {
            return h.__proto__ = i, h;
          }, _(n, t);
        }
        var E = /chrome|firefox/.test(navigator.userAgent.toLowerCase()), l = /* @__PURE__ */ function(n) {
          b(t, n);
          function t(h) {
            var i;
            return i = n.call(this, h, "[level-controller]") || this, i._levels = [], i._firstLevel = -1, i._startLevel = void 0, i.currentLevelIndex = -1, i.manualLevelIndex = -1, i.onParsedComplete = void 0, i._registerListeners(), i;
          }
          var d = t.prototype;
          return d._registerListeners = function() {
            var i = this.hls;
            i.on(y.Events.MANIFEST_LOADED, this.onManifestLoaded, this), i.on(y.Events.LEVEL_LOADED, this.onLevelLoaded, this), i.on(y.Events.AUDIO_TRACK_SWITCHED, this.onAudioTrackSwitched, this), i.on(y.Events.FRAG_LOADED, this.onFragLoaded, this), i.on(y.Events.ERROR, this.onError, this);
          }, d._unregisterListeners = function() {
            var i = this.hls;
            i.off(y.Events.MANIFEST_LOADED, this.onManifestLoaded, this), i.off(y.Events.LEVEL_LOADED, this.onLevelLoaded, this), i.off(y.Events.AUDIO_TRACK_SWITCHED, this.onAudioTrackSwitched, this), i.off(y.Events.FRAG_LOADED, this.onFragLoaded, this), i.off(y.Events.ERROR, this.onError, this);
          }, d.destroy = function() {
            this._unregisterListeners(), this.manualLevelIndex = -1, this._levels.length = 0, n.prototype.destroy.call(this);
          }, d.startLoad = function() {
            var i = this._levels;
            i.forEach(function(r) {
              r.loadError = 0;
            }), n.prototype.startLoad.call(this);
          }, d.onManifestLoaded = function(i, r) {
            var e = [], f = [], u = [], m, s = {}, v, c = !1, o = !1, a = !1;
            if (r.levels.forEach(function(w) {
              var W = w.attrs;
              c = c || !!(w.width && w.height), o = o || !!w.videoCodec, a = a || !!w.audioCodec, E && w.audioCodec && w.audioCodec.indexOf("mp4a.40.34") !== -1 && (w.audioCodec = void 0);
              var z = w.bitrate + "-" + w.attrs.RESOLUTION + "-" + w.attrs.CODECS;
              v = s[z], v ? v.url.push(w.url) : (v = new P.Level(w), s[z] = v, e.push(v)), W && (W.AUDIO && (0, F.addGroupId)(v, "audio", W.AUDIO), W.SUBTITLES && (0, F.addGroupId)(v, "text", W.SUBTITLES));
            }), (c || o) && a && (e = e.filter(function(w) {
              var W = w.videoCodec, z = w.width, H = w.height;
              return !!W || !!(z && H);
            })), e = e.filter(function(w) {
              var W = w.audioCodec, z = w.videoCodec;
              return (!W || (0, C.isCodecSupportedInMp4)(W, "audio")) && (!z || (0, C.isCodecSupportedInMp4)(z, "video"));
            }), r.audioTracks && (f = r.audioTracks.filter(function(w) {
              return !w.audioCodec || (0, C.isCodecSupportedInMp4)(w.audioCodec, "audio");
            }), (0, F.assignTrackIdsByGroup)(f)), r.subtitles && (u = r.subtitles, (0, F.assignTrackIdsByGroup)(u)), e.length > 0) {
              m = e[0].bitrate, e.sort(function(w, W) {
                return w.bitrate - W.bitrate;
              }), this._levels = e;
              for (var x = 0; x < e.length; x++)
                if (e[x].bitrate === m) {
                  this._firstLevel = x, this.log("manifest loaded, " + e.length + " level(s) found, first bitrate: " + m);
                  break;
                }
              var k = a && !o, K = {
                levels: e,
                audioTracks: f,
                subtitleTracks: u,
                firstLevel: this._firstLevel,
                stats: r.stats,
                audio: a,
                video: o,
                altAudio: !k && f.some(function(w) {
                  return !!w.url;
                })
              };
              this.hls.trigger(y.Events.MANIFEST_PARSED, K), (this.hls.config.autoStartLoad || this.hls.forceStartLoad) && this.hls.startLoad(this.hls.config.startPosition);
            } else
              this.hls.trigger(y.Events.ERROR, {
                type: O.ErrorTypes.MEDIA_ERROR,
                details: O.ErrorDetails.MANIFEST_INCOMPATIBLE_CODECS_ERROR,
                fatal: !0,
                url: r.url,
                reason: "no level with compatible codecs found in manifest"
              });
          }, d.onError = function(i, r) {
            var e;
            if (n.prototype.onError.call(this, i, r), !r.fatal) {
              var f = r.context, u = this._levels[this.currentLevelIndex];
              if (f && (f.type === T.PlaylistContextType.AUDIO_TRACK && u.audioGroupIds && f.groupId === u.audioGroupIds[u.urlId] || f.type === T.PlaylistContextType.SUBTITLE_TRACK && u.textGroupIds && f.groupId === u.textGroupIds[u.urlId])) {
                this.redundantFailover(this.currentLevelIndex);
                return;
              }
              var m = !1, s = !0, v;
              switch (r.details) {
                case O.ErrorDetails.FRAG_LOAD_ERROR:
                case O.ErrorDetails.FRAG_LOAD_TIMEOUT:
                case O.ErrorDetails.KEY_LOAD_ERROR:
                case O.ErrorDetails.KEY_LOAD_TIMEOUT:
                  if (r.frag) {
                    var c = r.frag.type === T.PlaylistLevelType.MAIN ? r.frag.level : this.currentLevelIndex, o = this._levels[c];
                    o ? (o.fragmentError++, o.fragmentError > this.hls.config.fragLoadingMaxRetry && (v = c)) : v = c;
                  }
                  break;
                case O.ErrorDetails.LEVEL_LOAD_ERROR:
                case O.ErrorDetails.LEVEL_LOAD_TIMEOUT:
                  f && (f.deliveryDirectives && (s = !1), v = f.level), m = !0;
                  break;
                case O.ErrorDetails.REMUX_ALLOC_ERROR:
                  v = (e = r.level) != null ? e : this.currentLevelIndex, m = !0;
                  break;
              }
              v !== void 0 && this.recoverLevel(r, v, m, s);
            }
          }, d.recoverLevel = function(i, r, e, f) {
            var u = i.details, m = this._levels[r];
            if (m.loadError++, e) {
              var s = this.retryLoadingOrFail(i);
              if (s)
                i.levelRetry = !0;
              else {
                this.currentLevelIndex = -1;
                return;
              }
            }
            if (f) {
              var v = m.url.length;
              if (v > 1 && m.loadError < v)
                i.levelRetry = !0, this.redundantFailover(r);
              else if (this.manualLevelIndex === -1) {
                for (var c = -1, o = this._levels, a = o.length; a--; ) {
                  var x = (a + this.currentLevelIndex) % o.length;
                  if (x !== this.currentLevelIndex && o[x].loadError === 0) {
                    c = x;
                    break;
                  }
                }
                c > -1 && this.currentLevelIndex !== c && (this.warn(u + ": switch to " + c), i.levelRetry = !0, this.hls.nextAutoLevel = c);
              }
            }
          }, d.redundantFailover = function(i) {
            var r = this._levels[i], e = r.url.length;
            if (e > 1) {
              var f = (r.urlId + 1) % e;
              this.warn("Switching to redundant URL-id " + f), this._levels.forEach(function(u) {
                u.urlId = f;
              }), this.level = i;
            }
          }, d.onFragLoaded = function(i, r) {
            var e = r.frag;
            if (e !== void 0 && e.type === T.PlaylistLevelType.MAIN) {
              var f = this._levels[e.level];
              f !== void 0 && (f.fragmentError = 0, f.loadError = 0);
            }
          }, d.onLevelLoaded = function(i, r) {
            var e, f = r.level, u = r.details, m = this._levels[f];
            if (!m) {
              var s;
              this.warn("Invalid level index " + f), (s = r.deliveryDirectives) !== null && s !== void 0 && s.skip && (u.deltaUpdateFailed = !0);
              return;
            }
            f === this.currentLevelIndex ? (m.fragmentError === 0 && (m.loadError = 0, this.retryCount = 0), this.playlistLoaded(f, r, m.details)) : (e = r.deliveryDirectives) !== null && e !== void 0 && e.skip && (u.deltaUpdateFailed = !0);
          }, d.onAudioTrackSwitched = function(i, r) {
            var e = this.hls.levels[this.currentLevelIndex];
            if (!!e && e.audioGroupIds) {
              for (var f = -1, u = this.hls.audioTracks[r.id].groupId, m = 0; m < e.audioGroupIds.length; m++)
                if (e.audioGroupIds[m] === u) {
                  f = m;
                  break;
                }
              f !== e.urlId && (e.urlId = f, this.startLoad());
            }
          }, d.loadPlaylist = function(i) {
            var r = this.currentLevelIndex, e = this._levels[r];
            if (this.canLoad && e && e.url.length > 0) {
              var f = e.urlId, u = e.url[f];
              if (i)
                try {
                  u = i.addDirectives(u);
                } catch (m) {
                  this.warn("Could not construct new URL with HLS Delivery Directives: " + m);
                }
              this.log("Attempt loading level index " + r + (i ? " at sn " + i.msn + " part " + i.part : "") + " with URL-id " + f + " " + u), this.clearTimer(), this.hls.trigger(y.Events.LEVEL_LOADING, {
                url: u,
                level: r,
                id: f,
                deliveryDirectives: i || null
              });
            }
          }, d.removeLevel = function(i, r) {
            var e = function(m, s) {
              return s !== r;
            }, f = this._levels.filter(function(u, m) {
              return m !== i ? !0 : u.url.length > 1 && r !== void 0 ? (u.url = u.url.filter(e), u.audioGroupIds && (u.audioGroupIds = u.audioGroupIds.filter(e)), u.textGroupIds && (u.textGroupIds = u.textGroupIds.filter(e)), u.urlId = 0, !0) : !1;
            }).map(function(u, m) {
              var s = u.details;
              return s != null && s.fragments && s.fragments.forEach(function(v) {
                v.level = m;
              }), u;
            });
            this._levels = f, this.hls.trigger(y.Events.LEVELS_UPDATED, {
              levels: f
            });
          }, S(t, [{
            key: "levels",
            get: function() {
              return this._levels.length === 0 ? null : this._levels;
            }
          }, {
            key: "level",
            get: function() {
              return this.currentLevelIndex;
            },
            set: function(i) {
              var r, e = this._levels;
              if (e.length !== 0 && !(this.currentLevelIndex === i && (r = e[i]) !== null && r !== void 0 && r.details)) {
                if (i < 0 || i >= e.length) {
                  var f = i < 0;
                  if (this.hls.trigger(y.Events.ERROR, {
                    type: O.ErrorTypes.OTHER_ERROR,
                    details: O.ErrorDetails.LEVEL_SWITCH_ERROR,
                    level: i,
                    fatal: f,
                    reason: "invalid level idx"
                  }), f)
                    return;
                  i = Math.min(i, e.length - 1);
                }
                this.clearTimer();
                var u = this.currentLevelIndex, m = e[u], s = e[i];
                this.log("switching to level " + i + " from " + u), this.currentLevelIndex = i;
                var v = D({}, s, {
                  level: i,
                  maxBitrate: s.maxBitrate,
                  uri: s.uri,
                  urlId: s.urlId
                });
                delete v._urlId, this.hls.trigger(y.Events.LEVEL_SWITCHING, v);
                var c = s.details;
                if (!c || c.live) {
                  var o = this.switchParams(s.uri, m == null ? void 0 : m.details);
                  this.loadPlaylist(o);
                }
              }
            }
          }, {
            key: "manualLevel",
            get: function() {
              return this.manualLevelIndex;
            },
            set: function(i) {
              this.manualLevelIndex = i, this._startLevel === void 0 && (this._startLevel = i), i !== -1 && (this.level = i);
            }
          }, {
            key: "firstLevel",
            get: function() {
              return this._firstLevel;
            },
            set: function(i) {
              this._firstLevel = i;
            }
          }, {
            key: "startLevel",
            get: function() {
              if (this._startLevel === void 0) {
                var i = this.hls.config.startLevel;
                return i !== void 0 ? i : this._firstLevel;
              } else
                return this._startLevel;
            },
            set: function(i) {
              this._startLevel = i;
            }
          }, {
            key: "nextLoadLevel",
            get: function() {
              return this.manualLevelIndex !== -1 ? this.manualLevelIndex : this.hls.nextAutoLevel;
            },
            set: function(i) {
              this.level = i, this.manualLevelIndex === -1 && (this.hls.nextAutoLevel = i);
            }
          }]), t;
        }(R.default);
      },
      "./src/controller/level-helper.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          addGroupId: () => F,
          addSliding: () => n,
          adjustSliding: () => l,
          assignTrackIdsByGroup: () => R,
          computeReloadInterval: () => t,
          getFragmentWithSN: () => d,
          getPartWith: () => h,
          mapFragmentIntersection: () => E,
          mapPartIntersection: () => _,
          mergeDetails: () => S,
          updateFragPTSDTS: () => p,
          updatePTS: () => T
        });
        var P = g("./src/polyfills/number.ts"), y = g("./src/utils/logger.ts"), O = g("./src/loader/date-range.ts");
        function C() {
          return C = Object.assign ? Object.assign.bind() : function(i) {
            for (var r = 1; r < arguments.length; r++) {
              var e = arguments[r];
              for (var f in e)
                Object.prototype.hasOwnProperty.call(e, f) && (i[f] = e[f]);
            }
            return i;
          }, C.apply(this, arguments);
        }
        function F(i, r, e) {
          switch (r) {
            case "audio":
              i.audioGroupIds || (i.audioGroupIds = []), i.audioGroupIds.push(e);
              break;
            case "text":
              i.textGroupIds || (i.textGroupIds = []), i.textGroupIds.push(e);
              break;
          }
        }
        function R(i) {
          var r = {};
          i.forEach(function(e) {
            var f = e.groupId || "";
            e.id = r[f] = r[f] || 0, r[f]++;
          });
        }
        function T(i, r, e) {
          var f = i[r], u = i[e];
          D(f, u);
        }
        function D(i, r) {
          var e = r.startPTS;
          if ((0, P.isFiniteNumber)(e)) {
            var f = 0, u;
            r.sn > i.sn ? (f = e - i.start, u = i) : (f = i.start - e, u = r), u.duration !== f && (u.duration = f);
          } else if (r.sn > i.sn) {
            var m = i.cc === r.cc;
            m && i.minEndPTS ? r.start = i.start + (i.minEndPTS - i.start) : r.start = i.start + i.duration;
          } else
            r.start = Math.max(i.start - r.duration, 0);
        }
        function p(i, r, e, f, u, m) {
          var s = f - e;
          s <= 0 && (y.logger.warn("Fragment should have a positive duration", r), f = e + r.duration, m = u + r.duration);
          var v = e, c = f, o = r.startPTS, a = r.endPTS;
          if ((0, P.isFiniteNumber)(o)) {
            var x = Math.abs(o - e);
            (0, P.isFiniteNumber)(r.deltaPTS) ? r.deltaPTS = Math.max(x, r.deltaPTS) : r.deltaPTS = x, v = Math.max(e, o), e = Math.min(e, o), u = Math.min(u, r.startDTS), c = Math.min(f, a), f = Math.max(f, a), m = Math.max(m, r.endDTS);
          }
          r.duration = f - e;
          var k = e - r.start;
          r.appendedPTS = f, r.start = r.startPTS = e, r.maxStartPTS = v, r.startDTS = u, r.endPTS = f, r.minEndPTS = c, r.endDTS = m;
          var K = r.sn;
          if (!i || K < i.startSN || K > i.endSN)
            return 0;
          var w, W = K - i.startSN, z = i.fragments;
          for (z[W] = r, w = W; w > 0; w--)
            D(z[w], z[w - 1]);
          for (w = W; w < z.length - 1; w++)
            D(z[w], z[w + 1]);
          return i.fragmentHint && D(z[z.length - 1], i.fragmentHint), i.PTSKnown = i.alignedSliding = !0, k;
        }
        function S(i, r) {
          for (var e = null, f = i.fragments, u = f.length - 1; u >= 0; u--) {
            var m = f[u].initSegment;
            if (m) {
              e = m;
              break;
            }
          }
          i.fragmentHint && delete i.fragmentHint.endPTS;
          var s = 0, v;
          if (E(i, r, function(w, W) {
            w.relurl && (s = w.cc - W.cc), (0, P.isFiniteNumber)(w.startPTS) && (0, P.isFiniteNumber)(w.endPTS) && (W.start = W.startPTS = w.startPTS, W.startDTS = w.startDTS, W.appendedPTS = w.appendedPTS, W.maxStartPTS = w.maxStartPTS, W.endPTS = w.endPTS, W.endDTS = w.endDTS, W.minEndPTS = w.minEndPTS, W.duration = w.endPTS - w.startPTS, W.duration && (v = W), r.PTSKnown = r.alignedSliding = !0), W.elementaryStreams = w.elementaryStreams, W.loader = w.loader, W.stats = w.stats, W.urlId = w.urlId, w.initSegment && (W.initSegment = w.initSegment, e = w.initSegment);
          }), e) {
            var c = r.fragmentHint ? r.fragments.concat(r.fragmentHint) : r.fragments;
            c.forEach(function(w) {
              var W;
              (!w.initSegment || w.initSegment.relurl === ((W = e) === null || W === void 0 ? void 0 : W.relurl)) && (w.initSegment = e);
            });
          }
          if (r.skippedSegments)
            if (r.deltaUpdateFailed = r.fragments.some(function(w) {
              return !w;
            }), r.deltaUpdateFailed) {
              y.logger.warn("[level-helper] Previous playlist missing segments skipped in delta playlist");
              for (var o = r.skippedSegments; o--; )
                r.fragments.shift();
              r.startSN = r.fragments[0].sn, r.startCC = r.fragments[0].cc;
            } else
              r.canSkipDateRanges && (r.dateRanges = b(i.dateRanges, r.dateRanges, r.recentlyRemovedDateranges));
          var a = r.fragments;
          if (s) {
            y.logger.warn("discontinuity sliding from playlist, take drift into account");
            for (var x = 0; x < a.length; x++)
              a[x].cc += s;
          }
          r.skippedSegments && (r.startCC = r.fragments[0].cc), _(i.partList, r.partList, function(w, W) {
            W.elementaryStreams = w.elementaryStreams, W.stats = w.stats;
          }), v ? p(r, v, v.startPTS, v.endPTS, v.startDTS, v.endDTS) : l(i, r), a.length && (r.totalduration = r.edge - a[0].start), r.driftStartTime = i.driftStartTime, r.driftStart = i.driftStart;
          var k = r.advancedDateTime;
          if (r.advanced && k) {
            var K = r.edge;
            r.driftStart || (r.driftStartTime = k, r.driftStart = K), r.driftEndTime = k, r.driftEnd = K;
          } else
            r.driftEndTime = i.driftEndTime, r.driftEnd = i.driftEnd, r.advancedDateTime = i.advancedDateTime;
        }
        function b(i, r, e) {
          var f = C({}, i);
          return e && e.forEach(function(u) {
            delete f[u];
          }), Object.keys(r).forEach(function(u) {
            var m = new O.DateRange(r[u].attr, f[u]);
            m.isValid ? f[u] = m : y.logger.warn('Ignoring invalid Playlist Delta Update DATERANGE tag: "' + JSON.stringify(r[u].attr) + '"');
          }), f;
        }
        function _(i, r, e) {
          if (i && r)
            for (var f = 0, u = 0, m = i.length; u <= m; u++) {
              var s = i[u], v = r[u + f];
              s && v && s.index === v.index && s.fragment.sn === v.fragment.sn ? e(s, v) : f--;
            }
        }
        function E(i, r, e) {
          for (var f = r.skippedSegments, u = Math.max(i.startSN, r.startSN) - r.startSN, m = (i.fragmentHint ? 1 : 0) + (f ? r.endSN : Math.min(i.endSN, r.endSN)) - r.startSN, s = r.startSN - i.startSN, v = r.fragmentHint ? r.fragments.concat(r.fragmentHint) : r.fragments, c = i.fragmentHint ? i.fragments.concat(i.fragmentHint) : i.fragments, o = u; o <= m; o++) {
            var a = c[s + o], x = v[o];
            f && !x && o < f && (x = r.fragments[o] = a), a && x && e(a, x);
          }
        }
        function l(i, r) {
          var e = r.startSN + r.skippedSegments - i.startSN, f = i.fragments;
          e < 0 || e >= f.length || n(r, f[e].start);
        }
        function n(i, r) {
          if (r) {
            for (var e = i.fragments, f = i.skippedSegments; f < e.length; f++)
              e[f].start += r;
            i.fragmentHint && (i.fragmentHint.start += r);
          }
        }
        function t(i, r) {
          var e = 1e3 * i.levelTargetDuration, f = e / 2, u = i.age, m = u > 0 && u < e * 3, s = r.loading.end - r.loading.start, v, c = i.availabilityDelay;
          if (i.updated === !1)
            if (m) {
              var o = 333 * i.misses;
              v = Math.max(Math.min(f, s * 2), o), i.availabilityDelay = (i.availabilityDelay || 0) + v;
            } else
              v = f;
          else
            m ? (c = Math.min(c || e / 2, u), i.availabilityDelay = c, v = c + e - u) : v = e - s;
          return Math.round(v);
        }
        function d(i, r, e) {
          if (!i || !i.details)
            return null;
          var f = i.details, u = f.fragments[r - f.startSN];
          return u || (u = f.fragmentHint, u && u.sn === r) ? u : r < f.startSN && e && e.sn === r ? e : null;
        }
        function h(i, r, e) {
          if (!i || !i.details)
            return null;
          var f = i.details.partList;
          if (f)
            for (var u = f.length; u--; ) {
              var m = f[u];
              if (m.index === e && m.fragment.sn === r)
                return m;
            }
          return null;
        }
      },
      "./src/controller/stream-controller.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          default: () => h
        });
        var P = g("./src/polyfills/number.ts"), y = g("./src/controller/base-stream-controller.ts"), O = g("./src/is-supported.ts"), C = g("./src/events.ts"), F = g("./src/utils/buffer-helper.ts"), R = g("./src/controller/fragment-tracker.ts"), T = g("./src/types/loader.ts"), D = g("./src/loader/fragment.ts"), p = g("./src/demux/transmuxer-interface.ts"), S = g("./src/types/transmuxer.ts"), b = g("./src/controller/gap-controller.ts"), _ = g("./src/errors.ts");
        function E(i, r) {
          for (var e = 0; e < r.length; e++) {
            var f = r[e];
            f.enumerable = f.enumerable || !1, f.configurable = !0, "value" in f && (f.writable = !0), Object.defineProperty(i, f.key, f);
          }
        }
        function l(i, r, e) {
          return r && E(i.prototype, r), e && E(i, e), Object.defineProperty(i, "prototype", { writable: !1 }), i;
        }
        function n(i, r) {
          i.prototype = Object.create(r.prototype), i.prototype.constructor = i, t(i, r);
        }
        function t(i, r) {
          return t = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(f, u) {
            return f.__proto__ = u, f;
          }, t(i, r);
        }
        var d = 100, h = /* @__PURE__ */ function(i) {
          n(r, i);
          function r(f, u) {
            var m;
            return m = i.call(this, f, u, "[stream-controller]") || this, m.audioCodecSwap = !1, m.gapController = null, m.level = -1, m._forceStartLoad = !1, m.altAudio = !1, m.audioOnly = !1, m.fragPlaying = null, m.onvplaying = null, m.onvseeked = null, m.fragLastKbps = 0, m.couldBacktrack = !1, m.backtrackFragment = null, m.audioCodecSwitch = !1, m.videoBuffer = null, m._registerListeners(), m;
          }
          var e = r.prototype;
          return e._registerListeners = function() {
            var u = this.hls;
            u.on(C.Events.MEDIA_ATTACHED, this.onMediaAttached, this), u.on(C.Events.MEDIA_DETACHING, this.onMediaDetaching, this), u.on(C.Events.MANIFEST_LOADING, this.onManifestLoading, this), u.on(C.Events.MANIFEST_PARSED, this.onManifestParsed, this), u.on(C.Events.LEVEL_LOADING, this.onLevelLoading, this), u.on(C.Events.LEVEL_LOADED, this.onLevelLoaded, this), u.on(C.Events.FRAG_LOAD_EMERGENCY_ABORTED, this.onFragLoadEmergencyAborted, this), u.on(C.Events.ERROR, this.onError, this), u.on(C.Events.AUDIO_TRACK_SWITCHING, this.onAudioTrackSwitching, this), u.on(C.Events.AUDIO_TRACK_SWITCHED, this.onAudioTrackSwitched, this), u.on(C.Events.BUFFER_CREATED, this.onBufferCreated, this), u.on(C.Events.BUFFER_FLUSHED, this.onBufferFlushed, this), u.on(C.Events.LEVELS_UPDATED, this.onLevelsUpdated, this), u.on(C.Events.FRAG_BUFFERED, this.onFragBuffered, this);
          }, e._unregisterListeners = function() {
            var u = this.hls;
            u.off(C.Events.MEDIA_ATTACHED, this.onMediaAttached, this), u.off(C.Events.MEDIA_DETACHING, this.onMediaDetaching, this), u.off(C.Events.MANIFEST_LOADING, this.onManifestLoading, this), u.off(C.Events.MANIFEST_PARSED, this.onManifestParsed, this), u.off(C.Events.LEVEL_LOADED, this.onLevelLoaded, this), u.off(C.Events.FRAG_LOAD_EMERGENCY_ABORTED, this.onFragLoadEmergencyAborted, this), u.off(C.Events.ERROR, this.onError, this), u.off(C.Events.AUDIO_TRACK_SWITCHING, this.onAudioTrackSwitching, this), u.off(C.Events.AUDIO_TRACK_SWITCHED, this.onAudioTrackSwitched, this), u.off(C.Events.BUFFER_CREATED, this.onBufferCreated, this), u.off(C.Events.BUFFER_FLUSHED, this.onBufferFlushed, this), u.off(C.Events.LEVELS_UPDATED, this.onLevelsUpdated, this), u.off(C.Events.FRAG_BUFFERED, this.onFragBuffered, this);
          }, e.onHandlerDestroying = function() {
            this._unregisterListeners(), this.onMediaDetaching();
          }, e.startLoad = function(u) {
            if (this.levels) {
              var m = this.lastCurrentTime, s = this.hls;
              if (this.stopLoad(), this.setInterval(d), this.level = -1, this.fragLoadError = 0, !this.startFragRequested) {
                var v = s.startLevel;
                v === -1 && (s.config.testBandwidth && this.levels.length > 1 ? (v = 0, this.bitrateTest = !0) : v = s.nextAutoLevel), this.level = s.nextLoadLevel = v, this.loadedmetadata = !1;
              }
              m > 0 && u === -1 && (this.log("Override startPosition with lastCurrentTime @" + m.toFixed(3)), u = m), this.state = y.State.IDLE, this.nextLoadPosition = this.startPosition = this.lastCurrentTime = u, this.tick();
            } else
              this._forceStartLoad = !0, this.state = y.State.STOPPED;
          }, e.stopLoad = function() {
            this._forceStartLoad = !1, i.prototype.stopLoad.call(this);
          }, e.doTick = function() {
            switch (this.state) {
              case y.State.IDLE:
                this.doTickIdle();
                break;
              case y.State.WAITING_LEVEL: {
                var u, m = this.levels, s = this.level, v = m == null || (u = m[s]) === null || u === void 0 ? void 0 : u.details;
                if (v && (!v.live || this.levelLastLoaded === this.level)) {
                  if (this.waitForCdnTuneIn(v))
                    break;
                  this.state = y.State.IDLE;
                  break;
                }
                break;
              }
              case y.State.FRAG_LOADING_WAITING_RETRY:
                {
                  var c, o = self.performance.now(), a = this.retryDate;
                  (!a || o >= a || (c = this.media) !== null && c !== void 0 && c.seeking) && (this.log("retryDate reached, switch back to IDLE state"), this.resetStartWhenNotLoaded(this.level), this.state = y.State.IDLE);
                }
                break;
            }
            this.onTickEnd();
          }, e.onTickEnd = function() {
            i.prototype.onTickEnd.call(this), this.checkBuffer(), this.checkFragmentChanged();
          }, e.doTickIdle = function() {
            var u, m, s = this.hls, v = this.levelLastLoaded, c = this.levels, o = this.media, a = s.config, x = s.nextLoadLevel;
            if (!(v === null || !o && (this.startFragRequested || !a.startFragPrefetch)) && !(this.altAudio && this.audioOnly) && !(!c || !c[x])) {
              var k = c[x];
              this.level = s.nextLoadLevel = x;
              var K = k.details;
              if (!K || this.state === y.State.WAITING_LEVEL || K.live && this.levelLastLoaded !== x) {
                this.state = y.State.WAITING_LEVEL;
                return;
              }
              var w = this.getMainFwdBufferInfo();
              if (w !== null) {
                var W = w.len, z = this.getMaxBufferLength(k.maxBitrate);
                if (!(W >= z)) {
                  if (this._streamEnded(w, K)) {
                    var H = {};
                    this.altAudio && (H.type = "video"), this.hls.trigger(C.Events.BUFFER_EOS, H), this.state = y.State.ENDED;
                    return;
                  }
                  this.backtrackFragment && this.backtrackFragment.start > w.end && (this.backtrackFragment = null);
                  var j = this.backtrackFragment ? this.backtrackFragment.start : w.end, Y = this.getNextFragment(j, K);
                  if (this.couldBacktrack && !this.fragPrevious && Y && Y.sn !== "initSegment" && this.fragmentTracker.getState(Y) !== R.FragmentState.OK) {
                    var Z, q = ((Z = this.backtrackFragment) != null ? Z : Y).sn, ee = q - K.startSN, te = K.fragments[ee - 1];
                    te && Y.cc === te.cc && (Y = te, this.fragmentTracker.removeFragment(te));
                  } else
                    this.backtrackFragment && w.len && (this.backtrackFragment = null);
                  if (Y && this.fragmentTracker.getState(Y) === R.FragmentState.OK && this.nextLoadPosition > j) {
                    var ne = this.audioOnly && !this.altAudio ? D.ElementaryStreamTypes.AUDIO : D.ElementaryStreamTypes.VIDEO;
                    o && this.afterBufferFlushed(o, ne, T.PlaylistLevelType.MAIN), Y = this.getNextFragment(this.nextLoadPosition, K);
                  }
                  !Y || (Y.initSegment && !Y.initSegment.data && !this.bitrateTest && (Y = Y.initSegment), ((u = Y.decryptdata) === null || u === void 0 ? void 0 : u.keyFormat) === "identity" && !((m = Y.decryptdata) !== null && m !== void 0 && m.key) ? this.loadKey(Y, K) : this.loadFragment(Y, K, j));
                }
              }
            }
          }, e.loadFragment = function(u, m, s) {
            var v, c = this.fragmentTracker.getState(u);
            this.fragCurrent = u, c === R.FragmentState.NOT_LOADED ? u.sn === "initSegment" ? this._loadInitSegment(u) : this.bitrateTest ? (this.log("Fragment " + u.sn + " of level " + u.level + " is being downloaded to test bitrate and will not be buffered"), this._loadBitrateTestFrag(u)) : (this.startFragRequested = !0, i.prototype.loadFragment.call(this, u, m, s)) : c === R.FragmentState.APPENDING ? this.reduceMaxBufferLength(u.duration) && this.fragmentTracker.removeFragment(u) : ((v = this.media) === null || v === void 0 ? void 0 : v.buffered.length) === 0 && this.fragmentTracker.removeAllFragments();
          }, e.getAppendedFrag = function(u) {
            var m = this.fragmentTracker.getAppendedFrag(u, T.PlaylistLevelType.MAIN);
            return m && "fragment" in m ? m.fragment : m;
          }, e.getBufferedFrag = function(u) {
            return this.fragmentTracker.getBufferedFrag(u, T.PlaylistLevelType.MAIN);
          }, e.followingBufferedFrag = function(u) {
            return u ? this.getBufferedFrag(u.end + 0.5) : null;
          }, e.immediateLevelSwitch = function() {
            this.abortCurrentFrag(), this.flushMainBuffer(0, Number.POSITIVE_INFINITY);
          }, e.nextLevelSwitch = function() {
            var u = this.levels, m = this.media;
            if (m != null && m.readyState) {
              var s, v = this.getAppendedFrag(m.currentTime);
              if (v && v.start > 1 && this.flushMainBuffer(0, v.start - 1), !m.paused && u) {
                var c = this.hls.nextLoadLevel, o = u[c], a = this.fragLastKbps;
                a && this.fragCurrent ? s = this.fragCurrent.duration * o.maxBitrate / (1e3 * a) + 1 : s = 0;
              } else
                s = 0;
              var x = this.getBufferedFrag(m.currentTime + s);
              if (x) {
                var k = this.followingBufferedFrag(x);
                if (k) {
                  this.abortCurrentFrag();
                  var K = k.maxStartPTS ? k.maxStartPTS : k.start, w = k.duration, W = Math.max(x.end, K + Math.min(Math.max(w - this.config.maxFragLookUpTolerance, w * 0.5), w * 0.75));
                  this.flushMainBuffer(W, Number.POSITIVE_INFINITY);
                }
              }
            }
          }, e.abortCurrentFrag = function() {
            var u = this.fragCurrent;
            switch (this.fragCurrent = null, this.backtrackFragment = null, u != null && u.loader && u.loader.abort(), this.state) {
              case y.State.KEY_LOADING:
              case y.State.FRAG_LOADING:
              case y.State.FRAG_LOADING_WAITING_RETRY:
              case y.State.PARSING:
              case y.State.PARSED:
                this.state = y.State.IDLE;
                break;
            }
            this.nextLoadPosition = this.getLoadPosition();
          }, e.flushMainBuffer = function(u, m) {
            i.prototype.flushMainBuffer.call(this, u, m, this.altAudio ? "video" : null);
          }, e.onMediaAttached = function(u, m) {
            i.prototype.onMediaAttached.call(this, u, m);
            var s = m.media;
            this.onvplaying = this.onMediaPlaying.bind(this), this.onvseeked = this.onMediaSeeked.bind(this), s.addEventListener("playing", this.onvplaying), s.addEventListener("seeked", this.onvseeked), this.gapController = new b.default(this.config, s, this.fragmentTracker, this.hls);
          }, e.onMediaDetaching = function() {
            var u = this.media;
            u && this.onvplaying && this.onvseeked && (u.removeEventListener("playing", this.onvplaying), u.removeEventListener("seeked", this.onvseeked), this.onvplaying = this.onvseeked = null, this.videoBuffer = null), this.fragPlaying = null, this.gapController && (this.gapController.destroy(), this.gapController = null), i.prototype.onMediaDetaching.call(this);
          }, e.onMediaPlaying = function() {
            this.tick();
          }, e.onMediaSeeked = function() {
            var u = this.media, m = u ? u.currentTime : null;
            (0, P.isFiniteNumber)(m) && this.log("Media seeked to " + m.toFixed(3)), this.tick();
          }, e.onManifestLoading = function() {
            this.log("Trigger BUFFER_RESET"), this.hls.trigger(C.Events.BUFFER_RESET, void 0), this.fragmentTracker.removeAllFragments(), this.couldBacktrack = !1, this.startPosition = this.lastCurrentTime = 0, this.fragPlaying = null, this.backtrackFragment = null;
          }, e.onManifestParsed = function(u, m) {
            var s = !1, v = !1, c;
            m.levels.forEach(function(o) {
              c = o.audioCodec, c && (c.indexOf("mp4a.40.2") !== -1 && (s = !0), c.indexOf("mp4a.40.5") !== -1 && (v = !0));
            }), this.audioCodecSwitch = s && v && !(0, O.changeTypeSupported)(), this.audioCodecSwitch && this.log("Both AAC/HE-AAC audio found in levels; declaring level codec as HE-AAC"), this.levels = m.levels, this.startFragRequested = !1;
          }, e.onLevelLoading = function(u, m) {
            var s = this.levels;
            if (!(!s || this.state !== y.State.IDLE)) {
              var v = s[m.level];
              (!v.details || v.details.live && this.levelLastLoaded !== m.level || this.waitForCdnTuneIn(v.details)) && (this.state = y.State.WAITING_LEVEL);
            }
          }, e.onLevelLoaded = function(u, m) {
            var s, v = this.levels, c = m.level, o = m.details, a = o.totalduration;
            if (!v) {
              this.warn("Levels were reset while loading level " + c);
              return;
            }
            this.log("Level " + c + " loaded [" + o.startSN + "," + o.endSN + "], cc [" + o.startCC + ", " + o.endCC + "] duration:" + a);
            var x = this.fragCurrent;
            x && (this.state === y.State.FRAG_LOADING || this.state === y.State.FRAG_LOADING_WAITING_RETRY) && x.level !== m.level && x.loader && (this.state = y.State.IDLE, this.backtrackFragment = null, x.loader.abort());
            var k = v[c], K = 0;
            if (o.live || (s = k.details) !== null && s !== void 0 && s.live) {
              if (o.fragments[0] || (o.deltaUpdateFailed = !0), o.deltaUpdateFailed)
                return;
              K = this.alignPlaylists(o, k.details);
            }
            if (k.details = o, this.levelLastLoaded = c, this.hls.trigger(C.Events.LEVEL_UPDATED, {
              details: o,
              level: c
            }), this.state === y.State.WAITING_LEVEL) {
              if (this.waitForCdnTuneIn(o))
                return;
              this.state = y.State.IDLE;
            }
            this.startFragRequested ? o.live && this.synchronizeToLiveEdge(o) : this.setStartPosition(o, K), this.tick();
          }, e._handleFragmentLoadProgress = function(u) {
            var m, s = u.frag, v = u.part, c = u.payload, o = this.levels;
            if (!o) {
              this.warn("Levels were reset while fragment load was in progress. Fragment " + s.sn + " of level " + s.level + " will not be buffered");
              return;
            }
            var a = o[s.level], x = a.details;
            if (!x) {
              this.warn("Dropping fragment " + s.sn + " of level " + s.level + " after level details were reset");
              return;
            }
            var k = a.videoCodec, K = x.PTSKnown || !x.live, w = (m = s.initSegment) === null || m === void 0 ? void 0 : m.data, W = this._getAudioCodec(a), z = this.transmuxer = this.transmuxer || new p.default(this.hls, T.PlaylistLevelType.MAIN, this._handleTransmuxComplete.bind(this), this._handleTransmuxerFlush.bind(this)), H = v ? v.index : -1, j = H !== -1, Y = new S.ChunkMetadata(s.level, s.sn, s.stats.chunkCount, c.byteLength, H, j), Z = this.initPTS[s.cc];
            z.push(c, w, W, k, s, v, x.totalduration, K, Y, Z);
          }, e.onAudioTrackSwitching = function(u, m) {
            var s = this.altAudio, v = !!m.url, c = m.id;
            if (!v) {
              if (this.mediaBuffer !== this.media) {
                this.log("Switching on main audio, use media.buffered to schedule main fragment loading"), this.mediaBuffer = this.media;
                var o = this.fragCurrent;
                o != null && o.loader && (this.log("Switching to main audio track, cancel main fragment load"), o.loader.abort()), this.resetTransmuxer(), this.resetLoadingState();
              } else
                this.audioOnly && this.resetTransmuxer();
              var a = this.hls;
              s && a.trigger(C.Events.BUFFER_FLUSHING, {
                startOffset: 0,
                endOffset: Number.POSITIVE_INFINITY,
                type: "audio"
              }), a.trigger(C.Events.AUDIO_TRACK_SWITCHED, {
                id: c
              });
            }
          }, e.onAudioTrackSwitched = function(u, m) {
            var s = m.id, v = !!this.hls.audioTracks[s].url;
            if (v) {
              var c = this.videoBuffer;
              c && this.mediaBuffer !== c && (this.log("Switching on alternate audio, use video.buffered to schedule main fragment loading"), this.mediaBuffer = c);
            }
            this.altAudio = v, this.tick();
          }, e.onBufferCreated = function(u, m) {
            var s = m.tracks, v, c, o = !1;
            for (var a in s) {
              var x = s[a];
              if (x.id === "main") {
                if (c = a, v = x, a === "video") {
                  var k = s[a];
                  k && (this.videoBuffer = k.buffer);
                }
              } else
                o = !0;
            }
            o && v ? (this.log("Alternate track found, use " + c + ".buffered to schedule main fragment loading"), this.mediaBuffer = v.buffer) : this.mediaBuffer = this.media;
          }, e.onFragBuffered = function(u, m) {
            var s = m.frag, v = m.part;
            if (!(s && s.type !== T.PlaylistLevelType.MAIN)) {
              if (this.fragContextChanged(s)) {
                this.warn("Fragment " + s.sn + (v ? " p: " + v.index : "") + " of level " + s.level + " finished buffering, but was aborted. state: " + this.state), this.state === y.State.PARSED && (this.state = y.State.IDLE);
                return;
              }
              var c = v ? v.stats : s.stats;
              this.fragLastKbps = Math.round(8 * c.total / (c.buffering.end - c.loading.first)), s.sn !== "initSegment" && (this.fragPrevious = s), this.fragBufferedComplete(s, v);
            }
          }, e.onError = function(u, m) {
            switch (m.details) {
              case _.ErrorDetails.FRAG_LOAD_ERROR:
              case _.ErrorDetails.FRAG_LOAD_TIMEOUT:
              case _.ErrorDetails.KEY_LOAD_ERROR:
              case _.ErrorDetails.KEY_LOAD_TIMEOUT:
                this.onFragmentOrKeyLoadError(T.PlaylistLevelType.MAIN, m);
                break;
              case _.ErrorDetails.LEVEL_LOAD_ERROR:
              case _.ErrorDetails.LEVEL_LOAD_TIMEOUT:
                this.state !== y.State.ERROR && (m.fatal ? (this.warn("" + m.details), this.state = y.State.ERROR) : !m.levelRetry && this.state === y.State.WAITING_LEVEL && (this.state = y.State.IDLE));
                break;
              case _.ErrorDetails.BUFFER_FULL_ERROR:
                if (m.parent === "main" && (this.state === y.State.PARSING || this.state === y.State.PARSED)) {
                  var s = !0, v = this.getFwdBufferInfo(this.media, T.PlaylistLevelType.MAIN);
                  v && v.len > 0.5 && (s = !this.reduceMaxBufferLength(v.len)), s && (this.warn("buffer full error also media.currentTime is not buffered, flush main"), this.immediateLevelSwitch()), this.resetLoadingState();
                }
                break;
            }
          }, e.checkBuffer = function() {
            var u = this.media, m = this.gapController;
            if (!(!u || !m || !u.readyState)) {
              if (this.loadedmetadata || !F.BufferHelper.getBuffered(u).length) {
                var s = this.state !== y.State.IDLE ? this.fragCurrent : null;
                m.poll(this.lastCurrentTime, s);
              }
              this.lastCurrentTime = u.currentTime;
            }
          }, e.onFragLoadEmergencyAborted = function() {
            this.state = y.State.IDLE, this.loadedmetadata || (this.startFragRequested = !1, this.nextLoadPosition = this.startPosition), this.tickImmediate();
          }, e.onBufferFlushed = function(u, m) {
            var s = m.type;
            if (s !== D.ElementaryStreamTypes.AUDIO || this.audioOnly && !this.altAudio) {
              var v = (s === D.ElementaryStreamTypes.VIDEO ? this.videoBuffer : this.mediaBuffer) || this.media;
              this.afterBufferFlushed(v, s, T.PlaylistLevelType.MAIN);
            }
          }, e.onLevelsUpdated = function(u, m) {
            this.levels = m.levels;
          }, e.swapAudioCodec = function() {
            this.audioCodecSwap = !this.audioCodecSwap;
          }, e.seekToStartPos = function() {
            var u = this.media;
            if (!!u) {
              var m = u.currentTime, s = this.startPosition;
              if (s >= 0 && m < s) {
                if (u.seeking) {
                  this.log("could not seek to " + s + ", already seeking at " + m);
                  return;
                }
                var v = F.BufferHelper.getBuffered(u), c = v.length ? v.start(0) : 0, o = c - s;
                o > 0 && (o < this.config.maxBufferHole || o < this.config.maxFragLookUpTolerance) && (this.log("adjusting start position by " + o + " to match buffer start"), s += o, this.startPosition = s), this.log("seek to target start position " + s + " from current time " + m), u.currentTime = s;
              }
            }
          }, e._getAudioCodec = function(u) {
            var m = this.config.defaultAudioCodec || u.audioCodec;
            return this.audioCodecSwap && m && (this.log("Swapping audio codec"), m.indexOf("mp4a.40.5") !== -1 ? m = "mp4a.40.2" : m = "mp4a.40.5"), m;
          }, e._loadBitrateTestFrag = function(u) {
            var m = this;
            u.bitrateTest = !0, this._doFragLoad(u).then(function(s) {
              var v = m.hls;
              if (!(!s || v.nextLoadLevel || m.fragContextChanged(u))) {
                m.fragLoadError = 0, m.state = y.State.IDLE, m.startFragRequested = !1, m.bitrateTest = !1;
                var c = u.stats;
                c.parsing.start = c.parsing.end = c.buffering.start = c.buffering.end = self.performance.now(), v.trigger(C.Events.FRAG_LOADED, s), u.bitrateTest = !1;
              }
            });
          }, e._handleTransmuxComplete = function(u) {
            var m, s = "main", v = this.hls, c = u.remuxResult, o = u.chunkMeta, a = this.getCurrentContext(o);
            if (!a) {
              this.warn("The loading context changed while buffering fragment " + o.sn + " of level " + o.level + ". This chunk will not be buffered."), this.resetStartWhenNotLoaded(o.level);
              return;
            }
            var x = a.frag, k = a.part, K = a.level, w = c.video, W = c.text, z = c.id3, H = c.initSegment, j = K.details, Y = this.altAudio ? void 0 : c.audio;
            if (!this.fragContextChanged(x)) {
              if (this.state = y.State.PARSING, H) {
                H.tracks && (this._bufferInitSegment(K, H.tracks, x, o), v.trigger(C.Events.FRAG_PARSING_INIT_SEGMENT, {
                  frag: x,
                  id: s,
                  tracks: H.tracks
                }));
                var Z = H.initPTS, q = H.timescale;
                (0, P.isFiniteNumber)(Z) && (this.initPTS[x.cc] = Z, v.trigger(C.Events.INIT_PTS_FOUND, {
                  frag: x,
                  id: s,
                  initPTS: Z,
                  timescale: q
                }));
              }
              if (w && c.independent !== !1) {
                if (j) {
                  var ee = w.startPTS, te = w.endPTS, ne = w.startDTS, ie = w.endDTS;
                  if (k)
                    k.elementaryStreams[w.type] = {
                      startPTS: ee,
                      endPTS: te,
                      startDTS: ne,
                      endDTS: ie
                    };
                  else if (w.firstKeyFrame && w.independent && (this.couldBacktrack = !0), w.dropped && w.independent) {
                    var oe = this.getMainFwdBufferInfo(), de = (oe ? oe.end : this.getLoadPosition()) + this.config.maxBufferHole, re = w.firstKeyFramePTS ? w.firstKeyFramePTS : ee;
                    if (de < re - this.config.maxBufferHole) {
                      this.backtrack(x);
                      return;
                    }
                    x.setElementaryStreamInfo(w.type, x.start, te, x.start, ie, !0);
                  }
                  x.setElementaryStreamInfo(w.type, ee, te, ne, ie), this.backtrackFragment && (this.backtrackFragment = x), this.bufferFragmentData(w, x, k, o);
                }
              } else if (c.independent === !1) {
                this.backtrack(x);
                return;
              }
              if (Y) {
                var le = Y.startPTS, me = Y.endPTS, ve = Y.startDTS, pe = Y.endDTS;
                k && (k.elementaryStreams[D.ElementaryStreamTypes.AUDIO] = {
                  startPTS: le,
                  endPTS: me,
                  startDTS: ve,
                  endDTS: pe
                }), x.setElementaryStreamInfo(D.ElementaryStreamTypes.AUDIO, le, me, ve, pe), this.bufferFragmentData(Y, x, k, o);
              }
              if (j && z !== null && z !== void 0 && (m = z.samples) !== null && m !== void 0 && m.length) {
                var Pe = {
                  id: s,
                  frag: x,
                  details: j,
                  samples: z.samples
                };
                v.trigger(C.Events.FRAG_PARSING_METADATA, Pe);
              }
              if (j && W) {
                var ye = {
                  id: s,
                  frag: x,
                  details: j,
                  samples: W.samples
                };
                v.trigger(C.Events.FRAG_PARSING_USERDATA, ye);
              }
            }
          }, e._bufferInitSegment = function(u, m, s, v) {
            var c = this;
            if (this.state === y.State.PARSING) {
              this.audioOnly = !!m.audio && !m.video, this.altAudio && !this.audioOnly && delete m.audio;
              var o = m.audio, a = m.video, x = m.audiovideo;
              if (o) {
                var k = u.audioCodec, K = navigator.userAgent.toLowerCase();
                this.audioCodecSwitch && (k && (k.indexOf("mp4a.40.5") !== -1 ? k = "mp4a.40.2" : k = "mp4a.40.5"), o.metadata.channelCount !== 1 && K.indexOf("firefox") === -1 && (k = "mp4a.40.5")), K.indexOf("android") !== -1 && o.container !== "audio/mpeg" && (k = "mp4a.40.2", this.log("Android: force audio codec to " + k)), u.audioCodec && u.audioCodec !== k && this.log('Swapping manifest audio codec "' + u.audioCodec + '" for "' + k + '"'), o.levelCodec = k, o.id = "main", this.log("Init audio buffer, container:" + o.container + ", codecs[selected/level/parsed]=[" + (k || "") + "/" + (u.audioCodec || "") + "/" + o.codec + "]");
              }
              a && (a.levelCodec = u.videoCodec, a.id = "main", this.log("Init video buffer, container:" + a.container + ", codecs[level/parsed]=[" + (u.videoCodec || "") + "/" + a.codec + "]")), x && this.log("Init audiovideo buffer, container:" + x.container + ", codecs[level/parsed]=[" + (u.attrs.CODECS || "") + "/" + x.codec + "]"), this.hls.trigger(C.Events.BUFFER_CODECS, m), Object.keys(m).forEach(function(w) {
                var W = m[w], z = W.initSegment;
                z != null && z.byteLength && c.hls.trigger(C.Events.BUFFER_APPENDING, {
                  type: w,
                  data: z,
                  frag: s,
                  part: null,
                  chunkMeta: v,
                  parent: s.type
                });
              }), this.tick();
            }
          }, e.getMainFwdBufferInfo = function() {
            return this.getFwdBufferInfo(this.mediaBuffer ? this.mediaBuffer : this.media, T.PlaylistLevelType.MAIN);
          }, e.backtrack = function(u) {
            this.couldBacktrack = !0, this.backtrackFragment = u, this.resetTransmuxer(), this.flushBufferGap(u), this.fragmentTracker.removeFragment(u), this.fragPrevious = null, this.nextLoadPosition = u.start, this.state = y.State.IDLE;
          }, e.checkFragmentChanged = function() {
            var u = this.media, m = null;
            if (u && u.readyState > 1 && u.seeking === !1) {
              var s = u.currentTime;
              if (F.BufferHelper.isBuffered(u, s) ? m = this.getAppendedFrag(s) : F.BufferHelper.isBuffered(u, s + 0.1) && (m = this.getAppendedFrag(s + 0.1)), m) {
                this.backtrackFragment = null;
                var v = this.fragPlaying, c = m.level;
                (!v || m.sn !== v.sn || v.level !== c || m.urlId !== v.urlId) && (this.hls.trigger(C.Events.FRAG_CHANGED, {
                  frag: m
                }), (!v || v.level !== c) && this.hls.trigger(C.Events.LEVEL_SWITCHED, {
                  level: c
                }), this.fragPlaying = m);
              }
            }
          }, l(r, [{
            key: "nextLevel",
            get: function() {
              var u = this.nextBufferedFrag;
              return u ? u.level : -1;
            }
          }, {
            key: "currentFrag",
            get: function() {
              var u = this.media;
              return u ? this.fragPlaying || this.getAppendedFrag(u.currentTime) : null;
            }
          }, {
            key: "currentProgramDateTime",
            get: function() {
              var u = this.media;
              if (u) {
                var m = u.currentTime, s = this.currentFrag;
                if (s && (0, P.isFiniteNumber)(m) && (0, P.isFiniteNumber)(s.programDateTime)) {
                  var v = s.programDateTime + (m - s.start) * 1e3;
                  return new Date(v);
                }
              }
              return null;
            }
          }, {
            key: "currentLevel",
            get: function() {
              var u = this.currentFrag;
              return u ? u.level : -1;
            }
          }, {
            key: "nextBufferedFrag",
            get: function() {
              var u = this.currentFrag;
              return u ? this.followingBufferedFrag(u) : null;
            }
          }, {
            key: "forceStartLoad",
            get: function() {
              return this._forceStartLoad;
            }
          }]), r;
        }(y.default);
      },
      "./src/controller/subtitle-stream-controller.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          SubtitleStreamController: () => n
        });
        var P = g("./src/events.ts"), y = g("./src/utils/buffer-helper.ts"), O = g("./src/controller/fragment-finders.ts"), C = g("./src/utils/discontinuities.ts"), F = g("./src/controller/level-helper.ts"), R = g("./src/controller/fragment-tracker.ts"), T = g("./src/controller/base-stream-controller.ts"), D = g("./src/types/loader.ts"), p = g("./src/types/level.ts");
        function S(d, h) {
          for (var i = 0; i < h.length; i++) {
            var r = h[i];
            r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(d, r.key, r);
          }
        }
        function b(d, h, i) {
          return h && S(d.prototype, h), i && S(d, i), Object.defineProperty(d, "prototype", { writable: !1 }), d;
        }
        function _(d, h) {
          d.prototype = Object.create(h.prototype), d.prototype.constructor = d, E(d, h);
        }
        function E(d, h) {
          return E = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(r, e) {
            return r.__proto__ = e, r;
          }, E(d, h);
        }
        var l = 500, n = /* @__PURE__ */ function(d) {
          _(h, d);
          function h(r, e) {
            var f;
            return f = d.call(this, r, e, "[subtitle-stream-controller]") || this, f.levels = [], f.currentTrackId = -1, f.tracksBuffered = [], f.mainDetails = null, f._registerListeners(), f;
          }
          var i = h.prototype;
          return i.onHandlerDestroying = function() {
            this._unregisterListeners(), this.mainDetails = null;
          }, i._registerListeners = function() {
            var e = this.hls;
            e.on(P.Events.MEDIA_ATTACHED, this.onMediaAttached, this), e.on(P.Events.MEDIA_DETACHING, this.onMediaDetaching, this), e.on(P.Events.MANIFEST_LOADING, this.onManifestLoading, this), e.on(P.Events.LEVEL_LOADED, this.onLevelLoaded, this), e.on(P.Events.ERROR, this.onError, this), e.on(P.Events.SUBTITLE_TRACKS_UPDATED, this.onSubtitleTracksUpdated, this), e.on(P.Events.SUBTITLE_TRACK_SWITCH, this.onSubtitleTrackSwitch, this), e.on(P.Events.SUBTITLE_TRACK_LOADED, this.onSubtitleTrackLoaded, this), e.on(P.Events.SUBTITLE_FRAG_PROCESSED, this.onSubtitleFragProcessed, this), e.on(P.Events.BUFFER_FLUSHING, this.onBufferFlushing, this);
          }, i._unregisterListeners = function() {
            var e = this.hls;
            e.off(P.Events.MEDIA_ATTACHED, this.onMediaAttached, this), e.off(P.Events.MEDIA_DETACHING, this.onMediaDetaching, this), e.off(P.Events.MANIFEST_LOADING, this.onManifestLoading, this), e.off(P.Events.LEVEL_LOADED, this.onLevelLoaded, this), e.off(P.Events.ERROR, this.onError, this), e.off(P.Events.SUBTITLE_TRACKS_UPDATED, this.onSubtitleTracksUpdated, this), e.off(P.Events.SUBTITLE_TRACK_SWITCH, this.onSubtitleTrackSwitch, this), e.off(P.Events.SUBTITLE_TRACK_LOADED, this.onSubtitleTrackLoaded, this), e.off(P.Events.SUBTITLE_FRAG_PROCESSED, this.onSubtitleFragProcessed, this), e.off(P.Events.BUFFER_FLUSHING, this.onBufferFlushing, this);
          }, i.startLoad = function() {
            this.stopLoad(), this.state = T.State.IDLE, this.setInterval(l), this.tick();
          }, i.onManifestLoading = function() {
            this.mainDetails = null, this.fragmentTracker.removeAllFragments();
          }, i.onLevelLoaded = function(e, f) {
            this.mainDetails = f.details;
          }, i.onSubtitleFragProcessed = function(e, f) {
            var u = f.frag, m = f.success;
            if (this.fragPrevious = u, this.state = T.State.IDLE, !!m) {
              var s = this.tracksBuffered[this.currentTrackId];
              if (!!s) {
                for (var v, c = u.start, o = 0; o < s.length; o++)
                  if (c >= s[o].start && c <= s[o].end) {
                    v = s[o];
                    break;
                  }
                var a = u.start + u.duration;
                v ? v.end = a : (v = {
                  start: c,
                  end: a
                }, s.push(v)), this.fragmentTracker.fragBuffered(u);
              }
            }
          }, i.onBufferFlushing = function(e, f) {
            var u = f.startOffset, m = f.endOffset;
            if (u === 0 && m !== Number.POSITIVE_INFINITY) {
              var s = this.currentTrackId, v = this.levels;
              if (!v.length || !v[s] || !v[s].details)
                return;
              var c = v[s].details, o = c.targetduration, a = m - o;
              if (a <= 0)
                return;
              f.endOffsetSubtitles = Math.max(0, a), this.tracksBuffered.forEach(function(x) {
                for (var k = 0; k < x.length; ) {
                  if (x[k].end <= a) {
                    x.shift();
                    continue;
                  } else if (x[k].start < a)
                    x[k].start = a;
                  else
                    break;
                  k++;
                }
              }), this.fragmentTracker.removeFragmentsInRange(u, a, D.PlaylistLevelType.SUBTITLE);
            }
          }, i.onError = function(e, f) {
            var u, m = f.frag;
            !m || m.type !== D.PlaylistLevelType.SUBTITLE || ((u = this.fragCurrent) !== null && u !== void 0 && u.loader && this.fragCurrent.loader.abort(), this.state = T.State.IDLE);
          }, i.onSubtitleTracksUpdated = function(e, f) {
            var u = this, m = f.subtitleTracks;
            this.tracksBuffered = [], this.levels = m.map(function(s) {
              return new p.Level(s);
            }), this.fragmentTracker.removeAllFragments(), this.fragPrevious = null, this.levels.forEach(function(s) {
              u.tracksBuffered[s.id] = [];
            }), this.mediaBuffer = null;
          }, i.onSubtitleTrackSwitch = function(e, f) {
            if (this.currentTrackId = f.id, !this.levels.length || this.currentTrackId === -1) {
              this.clearInterval();
              return;
            }
            var u = this.levels[this.currentTrackId];
            u != null && u.details ? this.mediaBuffer = this.mediaBufferTimeRanges : this.mediaBuffer = null, u && this.setInterval(l);
          }, i.onSubtitleTrackLoaded = function(e, f) {
            var u, m = f.details, s = f.id, v = this.currentTrackId, c = this.levels;
            if (!!c.length) {
              var o = c[v];
              if (!(s >= c.length || s !== v || !o)) {
                if (this.mediaBuffer = this.mediaBufferTimeRanges, m.live || (u = o.details) !== null && u !== void 0 && u.live) {
                  var a = this.mainDetails;
                  if (m.deltaUpdateFailed || !a)
                    return;
                  var x = a.fragments[0];
                  if (!o.details)
                    m.hasProgramDateTime && a.hasProgramDateTime ? (0, C.alignMediaPlaylistByPDT)(m, a) : x && (0, F.addSliding)(m, x.start);
                  else {
                    var k = this.alignPlaylists(m, o.details);
                    k === 0 && x && (0, F.addSliding)(m, x.start);
                  }
                }
                if (o.details = m, this.levelLastLoaded = s, this.tick(), m.live && !this.fragCurrent && this.media && this.state === T.State.IDLE) {
                  var K = (0, O.findFragmentByPTS)(null, m.fragments, this.media.currentTime, 0);
                  K || (this.warn("Subtitle playlist not aligned with playback"), o.details = void 0);
                }
              }
            }
          }, i._handleFragmentLoadComplete = function(e) {
            var f = e.frag, u = e.payload, m = f.decryptdata, s = this.hls;
            if (!this.fragContextChanged(f) && u && u.byteLength > 0 && m && m.key && m.iv && m.method === "AES-128") {
              var v = performance.now();
              this.decrypter.webCryptoDecrypt(new Uint8Array(u), m.key.buffer, m.iv.buffer).then(function(c) {
                var o = performance.now();
                s.trigger(P.Events.FRAG_DECRYPTED, {
                  frag: f,
                  payload: c,
                  stats: {
                    tstart: v,
                    tdecrypt: o
                  }
                });
              });
            }
          }, i.doTick = function() {
            if (!this.media) {
              this.state = T.State.IDLE;
              return;
            }
            if (this.state === T.State.IDLE) {
              var e = this.currentTrackId, f = this.levels;
              if (!f.length || !f[e] || !f[e].details)
                return;
              var u = f[e].details, m = u.targetduration, s = this.config, v = this.media, c = y.BufferHelper.bufferedInfo(this.tracksBuffered[this.currentTrackId] || [], v.currentTime - m, s.maxBufferHole), o = c.end, a = c.len, x = this.getMaxBufferLength() + m;
              if (a > x)
                return;
              console.assert(u, "Subtitle track details are defined on idle subtitle stream controller tick");
              var k = u.fragments, K = k.length, w = u.edge, W, z = this.fragPrevious;
              if (o < w) {
                var H = s.maxFragLookUpTolerance;
                W = (0, O.findFragmentByPTS)(z, k, Math.max(k[0].start, o), H), !W && z && z.start < k[0].start && (W = k[0]);
              } else
                W = k[K - 1];
              if (W = this.mapToInitFragWhenRequired(W), !W || this.fragmentTracker.getState(W) !== R.FragmentState.NOT_LOADED)
                return;
              W.encrypted ? this.loadKey(W, u) : this.loadFragment(W, u, o);
            }
          }, i.loadFragment = function(e, f, u) {
            this.fragCurrent = e, e.sn === "initSegment" ? this._loadInitSegment(e) : d.prototype.loadFragment.call(this, e, f, u);
          }, b(h, [{
            key: "mediaBufferTimeRanges",
            get: function() {
              return new t(this.tracksBuffered[this.currentTrackId] || []);
            }
          }]), h;
        }(T.default), t = function(h) {
          this.buffered = void 0;
          var i = function(e, f, u) {
            if (f = f >>> 0, f > u - 1)
              throw new DOMException("Failed to execute '" + e + "' on 'TimeRanges': The index provided (" + f + ") is greater than the maximum bound (" + u + ")");
            return h[f][e];
          };
          this.buffered = {
            get length() {
              return h.length;
            },
            end: function(e) {
              return i("end", e, h.length);
            },
            start: function(e) {
              return i("start", e, h.length);
            }
          };
        };
      },
      "./src/controller/subtitle-track-controller.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          default: () => b
        });
        var P = g("./src/events.ts"), y = g("./src/utils/texttrack-utils.ts"), O = g("./src/controller/base-playlist-controller.ts"), C = g("./src/types/loader.ts");
        function F(_, E) {
          for (var l = 0; l < E.length; l++) {
            var n = E[l];
            n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(_, n.key, n);
          }
        }
        function R(_, E, l) {
          return E && F(_.prototype, E), l && F(_, l), Object.defineProperty(_, "prototype", { writable: !1 }), _;
        }
        function T(_, E) {
          _.prototype = Object.create(E.prototype), _.prototype.constructor = _, D(_, E);
        }
        function D(_, E) {
          return D = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(n, t) {
            return n.__proto__ = t, n;
          }, D(_, E);
        }
        var p = /* @__PURE__ */ function(_) {
          T(E, _);
          function E(n) {
            var t;
            return t = _.call(this, n, "[subtitle-track-controller]") || this, t.media = null, t.tracks = [], t.groupId = null, t.tracksInGroup = [], t.trackId = -1, t.selectDefaultTrack = !0, t.queuedDefaultTrack = -1, t.trackChangeListener = function() {
              return t.onTextTracksChanged();
            }, t.asyncPollTrackChange = function() {
              return t.pollTrackChange(0);
            }, t.useTextTrackPolling = !1, t.subtitlePollingInterval = -1, t._subtitleDisplay = !0, t.registerListeners(), t;
          }
          var l = E.prototype;
          return l.destroy = function() {
            this.unregisterListeners(), this.tracks.length = 0, this.tracksInGroup.length = 0, this.trackChangeListener = this.asyncPollTrackChange = null, _.prototype.destroy.call(this);
          }, l.registerListeners = function() {
            var t = this.hls;
            t.on(P.Events.MEDIA_ATTACHED, this.onMediaAttached, this), t.on(P.Events.MEDIA_DETACHING, this.onMediaDetaching, this), t.on(P.Events.MANIFEST_LOADING, this.onManifestLoading, this), t.on(P.Events.MANIFEST_PARSED, this.onManifestParsed, this), t.on(P.Events.LEVEL_LOADING, this.onLevelLoading, this), t.on(P.Events.LEVEL_SWITCHING, this.onLevelSwitching, this), t.on(P.Events.SUBTITLE_TRACK_LOADED, this.onSubtitleTrackLoaded, this), t.on(P.Events.ERROR, this.onError, this);
          }, l.unregisterListeners = function() {
            var t = this.hls;
            t.off(P.Events.MEDIA_ATTACHED, this.onMediaAttached, this), t.off(P.Events.MEDIA_DETACHING, this.onMediaDetaching, this), t.off(P.Events.MANIFEST_LOADING, this.onManifestLoading, this), t.off(P.Events.MANIFEST_PARSED, this.onManifestParsed, this), t.off(P.Events.LEVEL_LOADING, this.onLevelLoading, this), t.off(P.Events.LEVEL_SWITCHING, this.onLevelSwitching, this), t.off(P.Events.SUBTITLE_TRACK_LOADED, this.onSubtitleTrackLoaded, this), t.off(P.Events.ERROR, this.onError, this);
          }, l.onMediaAttached = function(t, d) {
            this.media = d.media, this.media && (this.queuedDefaultTrack > -1 && (this.subtitleTrack = this.queuedDefaultTrack, this.queuedDefaultTrack = -1), this.useTextTrackPolling = !(this.media.textTracks && "onchange" in this.media.textTracks), this.useTextTrackPolling ? this.pollTrackChange(500) : this.media.textTracks.addEventListener("change", this.asyncPollTrackChange));
          }, l.pollTrackChange = function(t) {
            self.clearInterval(this.subtitlePollingInterval), this.subtitlePollingInterval = self.setInterval(this.trackChangeListener, t);
          }, l.onMediaDetaching = function() {
            if (!!this.media) {
              self.clearInterval(this.subtitlePollingInterval), this.useTextTrackPolling || this.media.textTracks.removeEventListener("change", this.asyncPollTrackChange), this.trackId > -1 && (this.queuedDefaultTrack = this.trackId);
              var t = S(this.media.textTracks);
              t.forEach(function(d) {
                (0, y.clearCurrentCues)(d);
              }), this.subtitleTrack = -1, this.media = null;
            }
          }, l.onManifestLoading = function() {
            this.tracks = [], this.groupId = null, this.tracksInGroup = [], this.trackId = -1, this.selectDefaultTrack = !0;
          }, l.onManifestParsed = function(t, d) {
            this.tracks = d.subtitleTracks;
          }, l.onSubtitleTrackLoaded = function(t, d) {
            var h = d.id, i = d.details, r = this.trackId, e = this.tracksInGroup[r];
            if (!e) {
              this.warn("Invalid subtitle track id " + h);
              return;
            }
            var f = e.details;
            e.details = d.details, this.log("subtitle track " + h + " loaded [" + i.startSN + "-" + i.endSN + "]"), h === this.trackId && (this.retryCount = 0, this.playlistLoaded(h, d, f));
          }, l.onLevelLoading = function(t, d) {
            this.switchLevel(d.level);
          }, l.onLevelSwitching = function(t, d) {
            this.switchLevel(d.level);
          }, l.switchLevel = function(t) {
            var d = this.hls.levels[t];
            if (!!(d != null && d.textGroupIds)) {
              var h = d.textGroupIds[d.urlId];
              if (this.groupId !== h) {
                var i = this.tracksInGroup ? this.tracksInGroup[this.trackId] : void 0, r = this.tracks.filter(function(u) {
                  return !h || u.groupId === h;
                });
                this.tracksInGroup = r;
                var e = this.findTrackId(i == null ? void 0 : i.name) || this.findTrackId();
                this.groupId = h;
                var f = {
                  subtitleTracks: r
                };
                this.log("Updating subtitle tracks, " + r.length + ' track(s) found in "' + h + '" group-id'), this.hls.trigger(P.Events.SUBTITLE_TRACKS_UPDATED, f), e !== -1 && this.setSubtitleTrack(e, i);
              }
            }
          }, l.findTrackId = function(t) {
            for (var d = this.tracksInGroup, h = 0; h < d.length; h++) {
              var i = d[h];
              if ((!this.selectDefaultTrack || i.default) && (!t || t === i.name))
                return i.id;
            }
            return -1;
          }, l.onError = function(t, d) {
            _.prototype.onError.call(this, t, d), !(d.fatal || !d.context) && d.context.type === C.PlaylistContextType.SUBTITLE_TRACK && d.context.id === this.trackId && d.context.groupId === this.groupId && this.retryLoadingOrFail(d);
          }, l.loadPlaylist = function(t) {
            var d = this.tracksInGroup[this.trackId];
            if (this.shouldLoadTrack(d)) {
              var h = d.id, i = d.groupId, r = d.url;
              if (t)
                try {
                  r = t.addDirectives(r);
                } catch (e) {
                  this.warn("Could not construct new URL with HLS Delivery Directives: " + e);
                }
              this.log("Loading subtitle playlist for id " + h), this.hls.trigger(P.Events.SUBTITLE_TRACK_LOADING, {
                url: r,
                id: h,
                groupId: i,
                deliveryDirectives: t || null
              });
            }
          }, l.toggleTrackModes = function(t) {
            var d = this, h = this.media, i = this.trackId;
            if (!!h) {
              var r = S(h.textTracks), e = r.filter(function(m) {
                return m.groupId === d.groupId;
              });
              if (t === -1)
                [].slice.call(r).forEach(function(m) {
                  m.mode = "disabled";
                });
              else {
                var f = e[i];
                f && (f.mode = "disabled");
              }
              var u = e[t];
              u && (u.mode = this.subtitleDisplay ? "showing" : "hidden");
            }
          }, l.setSubtitleTrack = function(t, d) {
            var h, i = this.tracksInGroup;
            if (!this.media) {
              this.queuedDefaultTrack = t;
              return;
            }
            if (this.trackId !== t && this.toggleTrackModes(t), !(this.trackId === t && (t === -1 || (h = i[t]) !== null && h !== void 0 && h.details) || t < -1 || t >= i.length)) {
              this.clearTimer();
              var r = i[t];
              if (this.log("Switching to subtitle track " + t), this.trackId = t, r) {
                var e = r.id, f = r.groupId, u = f === void 0 ? "" : f, m = r.name, s = r.type, v = r.url;
                this.hls.trigger(P.Events.SUBTITLE_TRACK_SWITCH, {
                  id: e,
                  groupId: u,
                  name: m,
                  type: s,
                  url: v
                });
                var c = this.switchParams(r.url, d == null ? void 0 : d.details);
                this.loadPlaylist(c);
              } else
                this.hls.trigger(P.Events.SUBTITLE_TRACK_SWITCH, {
                  id: t
                });
            }
          }, l.onTextTracksChanged = function() {
            if (this.useTextTrackPolling || self.clearInterval(this.subtitlePollingInterval), !(!this.media || !this.hls.config.renderTextTracksNatively)) {
              for (var t = -1, d = S(this.media.textTracks), h = 0; h < d.length; h++)
                if (d[h].mode === "hidden")
                  t = h;
                else if (d[h].mode === "showing") {
                  t = h;
                  break;
                }
              this.subtitleTrack !== t && (this.subtitleTrack = t);
            }
          }, R(E, [{
            key: "subtitleDisplay",
            get: function() {
              return this._subtitleDisplay;
            },
            set: function(t) {
              this._subtitleDisplay = t, this.trackId > -1 && this.toggleTrackModes(this.trackId);
            }
          }, {
            key: "subtitleTracks",
            get: function() {
              return this.tracksInGroup;
            }
          }, {
            key: "subtitleTrack",
            get: function() {
              return this.trackId;
            },
            set: function(t) {
              this.selectDefaultTrack = !1;
              var d = this.tracksInGroup ? this.tracksInGroup[this.trackId] : void 0;
              this.setSubtitleTrack(t, d);
            }
          }]), E;
        }(O.default);
        function S(_) {
          for (var E = [], l = 0; l < _.length; l++) {
            var n = _[l];
            n.kind === "subtitles" && n.label && E.push(_[l]);
          }
          return E;
        }
        const b = p;
      },
      "./src/controller/timeline-controller.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          TimelineController: () => b
        });
        var P = g("./src/polyfills/number.ts"), y = g("./src/events.ts"), O = g("./src/utils/cea-608-parser.ts"), C = g("./src/utils/output-filter.ts"), F = g("./src/utils/webvtt-parser.ts"), R = g("./src/utils/texttrack-utils.ts"), T = g("./src/utils/imsc1-ttml-parser.ts"), D = g("./src/utils/mp4-tools.ts"), p = g("./src/types/loader.ts"), S = g("./src/utils/logger.ts"), b = /* @__PURE__ */ function() {
          function n(d) {
            if (this.hls = void 0, this.media = null, this.config = void 0, this.enabled = !0, this.Cues = void 0, this.textTracks = [], this.tracks = [], this.initPTS = [], this.timescale = [], this.unparsedVttFrags = [], this.captionsTracks = {}, this.nonNativeCaptionsTracks = {}, this.cea608Parser1 = void 0, this.cea608Parser2 = void 0, this.lastSn = -1, this.lastPartIndex = -1, this.prevCC = -1, this.vttCCs = l(), this.captionsProperties = void 0, this.hls = d, this.config = d.config, this.Cues = d.config.cueHandler, this.captionsProperties = {
              textTrack1: {
                label: this.config.captionsTextTrack1Label,
                languageCode: this.config.captionsTextTrack1LanguageCode
              },
              textTrack2: {
                label: this.config.captionsTextTrack2Label,
                languageCode: this.config.captionsTextTrack2LanguageCode
              },
              textTrack3: {
                label: this.config.captionsTextTrack3Label,
                languageCode: this.config.captionsTextTrack3LanguageCode
              },
              textTrack4: {
                label: this.config.captionsTextTrack4Label,
                languageCode: this.config.captionsTextTrack4LanguageCode
              }
            }, this.config.enableCEA708Captions) {
              var h = new C.default(this, "textTrack1"), i = new C.default(this, "textTrack2"), r = new C.default(this, "textTrack3"), e = new C.default(this, "textTrack4");
              this.cea608Parser1 = new O.default(1, h, i), this.cea608Parser2 = new O.default(3, r, e);
            }
            d.on(y.Events.MEDIA_ATTACHING, this.onMediaAttaching, this), d.on(y.Events.MEDIA_DETACHING, this.onMediaDetaching, this), d.on(y.Events.MANIFEST_LOADING, this.onManifestLoading, this), d.on(y.Events.MANIFEST_LOADED, this.onManifestLoaded, this), d.on(y.Events.SUBTITLE_TRACKS_UPDATED, this.onSubtitleTracksUpdated, this), d.on(y.Events.FRAG_LOADING, this.onFragLoading, this), d.on(y.Events.FRAG_LOADED, this.onFragLoaded, this), d.on(y.Events.FRAG_PARSING_USERDATA, this.onFragParsingUserdata, this), d.on(y.Events.FRAG_DECRYPTED, this.onFragDecrypted, this), d.on(y.Events.INIT_PTS_FOUND, this.onInitPtsFound, this), d.on(y.Events.SUBTITLE_TRACKS_CLEARED, this.onSubtitleTracksCleared, this), d.on(y.Events.BUFFER_FLUSHING, this.onBufferFlushing, this);
          }
          var t = n.prototype;
          return t.destroy = function() {
            var h = this.hls;
            h.off(y.Events.MEDIA_ATTACHING, this.onMediaAttaching, this), h.off(y.Events.MEDIA_DETACHING, this.onMediaDetaching, this), h.off(y.Events.MANIFEST_LOADING, this.onManifestLoading, this), h.off(y.Events.MANIFEST_LOADED, this.onManifestLoaded, this), h.off(y.Events.SUBTITLE_TRACKS_UPDATED, this.onSubtitleTracksUpdated, this), h.off(y.Events.FRAG_LOADING, this.onFragLoading, this), h.off(y.Events.FRAG_LOADED, this.onFragLoaded, this), h.off(y.Events.FRAG_PARSING_USERDATA, this.onFragParsingUserdata, this), h.off(y.Events.FRAG_DECRYPTED, this.onFragDecrypted, this), h.off(y.Events.INIT_PTS_FOUND, this.onInitPtsFound, this), h.off(y.Events.SUBTITLE_TRACKS_CLEARED, this.onSubtitleTracksCleared, this), h.off(y.Events.BUFFER_FLUSHING, this.onBufferFlushing, this), this.hls = this.config = this.cea608Parser1 = this.cea608Parser2 = null;
          }, t.addCues = function(h, i, r, e, f) {
            for (var u = !1, m = f.length; m--; ) {
              var s = f[m], v = E(s[0], s[1], i, r);
              if (v >= 0 && (s[0] = Math.min(s[0], i), s[1] = Math.max(s[1], r), u = !0, v / (r - i) > 0.5))
                return;
            }
            if (u || f.push([i, r]), this.config.renderTextTracksNatively) {
              var c = this.captionsTracks[h];
              this.Cues.newCue(c, i, r, e);
            } else {
              var o = this.Cues.newCue(null, i, r, e);
              this.hls.trigger(y.Events.CUES_PARSED, {
                type: "captions",
                cues: o,
                track: h
              });
            }
          }, t.onInitPtsFound = function(h, i) {
            var r = this, e = i.frag, f = i.id, u = i.initPTS, m = i.timescale, s = this.unparsedVttFrags;
            f === "main" && (this.initPTS[e.cc] = u, this.timescale[e.cc] = m), s.length && (this.unparsedVttFrags = [], s.forEach(function(v) {
              r.onFragLoaded(y.Events.FRAG_LOADED, v);
            }));
          }, t.getExistingTrack = function(h) {
            var i = this.media;
            if (i)
              for (var r = 0; r < i.textTracks.length; r++) {
                var e = i.textTracks[r];
                if (e[h])
                  return e;
              }
            return null;
          }, t.createCaptionsTrack = function(h) {
            this.config.renderTextTracksNatively ? this.createNativeTrack(h) : this.createNonNativeTrack(h);
          }, t.createNativeTrack = function(h) {
            if (!this.captionsTracks[h]) {
              var i = this.captionsProperties, r = this.captionsTracks, e = this.media, f = i[h], u = f.label, m = f.languageCode, s = this.getExistingTrack(h);
              if (s)
                r[h] = s, (0, R.clearCurrentCues)(r[h]), (0, R.sendAddTrackEvent)(r[h], e);
              else {
                var v = this.createTextTrack("captions", u, m);
                v && (v[h] = !0, r[h] = v);
              }
            }
          }, t.createNonNativeTrack = function(h) {
            if (!this.nonNativeCaptionsTracks[h]) {
              var i = this.captionsProperties[h];
              if (!!i) {
                var r = i.label, e = {
                  _id: h,
                  label: r,
                  kind: "captions",
                  default: i.media ? !!i.media.default : !1,
                  closedCaptions: i.media
                };
                this.nonNativeCaptionsTracks[h] = e, this.hls.trigger(y.Events.NON_NATIVE_TEXT_TRACKS_FOUND, {
                  tracks: [e]
                });
              }
            }
          }, t.createTextTrack = function(h, i, r) {
            var e = this.media;
            if (!!e)
              return e.addTextTrack(h, i, r);
          }, t.onMediaAttaching = function(h, i) {
            this.media = i.media, this._cleanTracks();
          }, t.onMediaDetaching = function() {
            var h = this.captionsTracks;
            Object.keys(h).forEach(function(i) {
              (0, R.clearCurrentCues)(h[i]), delete h[i];
            }), this.nonNativeCaptionsTracks = {};
          }, t.onManifestLoading = function() {
            this.lastSn = -1, this.lastPartIndex = -1, this.prevCC = -1, this.vttCCs = l(), this._cleanTracks(), this.tracks = [], this.captionsTracks = {}, this.nonNativeCaptionsTracks = {}, this.textTracks = [], this.unparsedVttFrags = this.unparsedVttFrags || [], this.initPTS = [], this.timescale = [], this.cea608Parser1 && this.cea608Parser2 && (this.cea608Parser1.reset(), this.cea608Parser2.reset());
          }, t._cleanTracks = function() {
            var h = this.media;
            if (!!h) {
              var i = h.textTracks;
              if (i)
                for (var r = 0; r < i.length; r++)
                  (0, R.clearCurrentCues)(i[r]);
            }
          }, t.onSubtitleTracksUpdated = function(h, i) {
            var r = this;
            this.textTracks = [];
            var e = i.subtitleTracks || [], f = e.some(function(v) {
              return v.textCodec === T.IMSC1_CODEC;
            });
            if (this.config.enableWebVTT || f && this.config.enableIMSC1) {
              var u = this.tracks && e && this.tracks.length === e.length;
              if (this.tracks = e || [], this.config.renderTextTracksNatively) {
                var m = this.media ? this.media.textTracks : [];
                this.tracks.forEach(function(v, c) {
                  var o;
                  if (c < m.length) {
                    for (var a = null, x = 0; x < m.length; x++)
                      if (_(m[x], v)) {
                        a = m[x];
                        break;
                      }
                    a && (o = a);
                  }
                  if (o)
                    (0, R.clearCurrentCues)(o);
                  else {
                    var k = r._captionsOrSubtitlesFromCharacteristics(v);
                    o = r.createTextTrack(k, v.name, v.lang), o && (o.mode = "disabled");
                  }
                  o && (o.groupId = v.groupId, r.textTracks.push(o));
                });
              } else if (!u && this.tracks && this.tracks.length) {
                var s = this.tracks.map(function(v) {
                  return {
                    label: v.name,
                    kind: v.type.toLowerCase(),
                    default: v.default,
                    subtitleTrack: v
                  };
                });
                this.hls.trigger(y.Events.NON_NATIVE_TEXT_TRACKS_FOUND, {
                  tracks: s
                });
              }
            }
          }, t._captionsOrSubtitlesFromCharacteristics = function(h) {
            var i;
            if ((i = h.attrs) !== null && i !== void 0 && i.CHARACTERISTICS) {
              var r = /transcribes-spoken-dialog/gi.test(h.attrs.CHARACTERISTICS), e = /describes-music-and-sound/gi.test(h.attrs.CHARACTERISTICS);
              if (r && e)
                return "captions";
            }
            return "subtitles";
          }, t.onManifestLoaded = function(h, i) {
            var r = this;
            this.config.enableCEA708Captions && i.captions && i.captions.forEach(function(e) {
              var f = /(?:CC|SERVICE)([1-4])/.exec(e.instreamId);
              if (!!f) {
                var u = "textTrack" + f[1], m = r.captionsProperties[u];
                !m || (m.label = e.name, e.lang && (m.languageCode = e.lang), m.media = e);
              }
            });
          }, t.closedCaptionsForLevel = function(h) {
            var i = this.hls.levels[h.level];
            return i == null ? void 0 : i.attrs["CLOSED-CAPTIONS"];
          }, t.onFragLoading = function(h, i) {
            var r = this.cea608Parser1, e = this.cea608Parser2, f = this.lastSn, u = this.lastPartIndex;
            if (!(!this.enabled || !(r && e)) && i.frag.type === p.PlaylistLevelType.MAIN) {
              var m, s, v = i.frag.sn, c = (m = i == null || (s = i.part) === null || s === void 0 ? void 0 : s.index) != null ? m : -1;
              v === f + 1 || v === f && c === u + 1 || (r.reset(), e.reset()), this.lastSn = v, this.lastPartIndex = c;
            }
          }, t.onFragLoaded = function(h, i) {
            var r = i.frag, e = i.payload, f = this.initPTS, u = this.unparsedVttFrags;
            if (r.type === p.PlaylistLevelType.SUBTITLE)
              if (e.byteLength) {
                if (!(0, P.isFiniteNumber)(f[r.cc])) {
                  u.push(i), f.length && this.hls.trigger(y.Events.SUBTITLE_FRAG_PROCESSED, {
                    success: !1,
                    frag: r,
                    error: new Error("Missing initial subtitle PTS")
                  });
                  return;
                }
                var m = r.decryptdata, s = "stats" in i;
                if (m == null || m.key == null || m.method !== "AES-128" || s) {
                  var v = this.tracks[r.level], c = this.vttCCs;
                  c[r.cc] || (c[r.cc] = {
                    start: r.start,
                    prevCC: this.prevCC,
                    new: !0
                  }, this.prevCC = r.cc), v && v.textCodec === T.IMSC1_CODEC ? this._parseIMSC1(r, e) : this._parseVTTs(r, e, c);
                }
              } else
                this.hls.trigger(y.Events.SUBTITLE_FRAG_PROCESSED, {
                  success: !1,
                  frag: r,
                  error: new Error("Empty subtitle payload")
                });
          }, t._parseIMSC1 = function(h, i) {
            var r = this, e = this.hls;
            (0, T.parseIMSC1)(i, this.initPTS[h.cc], this.timescale[h.cc], function(f) {
              r._appendCues(f, h.level), e.trigger(y.Events.SUBTITLE_FRAG_PROCESSED, {
                success: !0,
                frag: h
              });
            }, function(f) {
              S.logger.log("Failed to parse IMSC1: " + f), e.trigger(y.Events.SUBTITLE_FRAG_PROCESSED, {
                success: !1,
                frag: h,
                error: f
              });
            });
          }, t._parseVTTs = function(h, i, r) {
            var e, f = this, u = this.hls, m = (e = h.initSegment) !== null && e !== void 0 && e.data ? (0, D.appendUint8Array)(h.initSegment.data, new Uint8Array(i)) : i;
            (0, F.parseWebVTT)(m, this.initPTS[h.cc], this.timescale[h.cc], r, h.cc, h.start, function(s) {
              f._appendCues(s, h.level), u.trigger(y.Events.SUBTITLE_FRAG_PROCESSED, {
                success: !0,
                frag: h
              });
            }, function(s) {
              f._fallbackToIMSC1(h, i), S.logger.log("Failed to parse VTT cue: " + s), u.trigger(y.Events.SUBTITLE_FRAG_PROCESSED, {
                success: !1,
                frag: h,
                error: s
              });
            });
          }, t._fallbackToIMSC1 = function(h, i) {
            var r = this, e = this.tracks[h.level];
            e.textCodec || (0, T.parseIMSC1)(i, this.initPTS[h.cc], this.timescale[h.cc], function() {
              e.textCodec = T.IMSC1_CODEC, r._parseIMSC1(h, i);
            }, function() {
              e.textCodec = "wvtt";
            });
          }, t._appendCues = function(h, i) {
            var r = this.hls;
            if (this.config.renderTextTracksNatively) {
              var e = this.textTracks[i];
              if (!e || e.mode === "disabled")
                return;
              h.forEach(function(m) {
                return (0, R.addCueToTrack)(e, m);
              });
            } else {
              var f = this.tracks[i];
              if (!f)
                return;
              var u = f.default ? "default" : "subtitles" + i;
              r.trigger(y.Events.CUES_PARSED, {
                type: "subtitles",
                cues: h,
                track: u
              });
            }
          }, t.onFragDecrypted = function(h, i) {
            var r = i.frag;
            if (r.type === p.PlaylistLevelType.SUBTITLE) {
              if (!(0, P.isFiniteNumber)(this.initPTS[r.cc])) {
                this.unparsedVttFrags.push(i);
                return;
              }
              this.onFragLoaded(y.Events.FRAG_LOADED, i);
            }
          }, t.onSubtitleTracksCleared = function() {
            this.tracks = [], this.captionsTracks = {};
          }, t.onFragParsingUserdata = function(h, i) {
            var r = this.cea608Parser1, e = this.cea608Parser2;
            if (!(!this.enabled || !(r && e))) {
              var f = i.frag, u = i.samples;
              if (!(f.type === p.PlaylistLevelType.MAIN && this.closedCaptionsForLevel(f) === "NONE"))
                for (var m = 0; m < u.length; m++) {
                  var s = u[m].bytes;
                  if (s) {
                    var v = this.extractCea608Data(s);
                    r.addData(u[m].pts, v[0]), e.addData(u[m].pts, v[1]);
                  }
                }
            }
          }, t.onBufferFlushing = function(h, i) {
            var r = i.startOffset, e = i.endOffset, f = i.endOffsetSubtitles, u = i.type, m = this.media;
            if (!(!m || m.currentTime < e)) {
              if (!u || u === "video") {
                var s = this.captionsTracks;
                Object.keys(s).forEach(function(c) {
                  return (0, R.removeCuesInRange)(s[c], r, e);
                });
              }
              if (this.config.renderTextTracksNatively && r === 0 && f !== void 0) {
                var v = this.textTracks;
                Object.keys(v).forEach(function(c) {
                  return (0, R.removeCuesInRange)(v[c], r, f);
                });
              }
            }
          }, t.extractCea608Data = function(h) {
            for (var i = [[], []], r = h[0] & 31, e = 2, f = 0; f < r; f++) {
              var u = h[e++], m = 127 & h[e++], s = 127 & h[e++];
              if (!(m === 0 && s === 0)) {
                var v = (4 & u) !== 0;
                if (v) {
                  var c = 3 & u;
                  (c === 0 || c === 1) && (i[c].push(m), i[c].push(s));
                }
              }
            }
            return i;
          }, n;
        }();
        function _(n, t) {
          return n && n.label === t.name && !(n.textTrack1 || n.textTrack2);
        }
        function E(n, t, d, h) {
          return Math.min(t, h) - Math.max(n, d);
        }
        function l() {
          return {
            ccOffset: 0,
            presentationOffset: 0,
            0: {
              start: 0,
              prevCC: -1,
              new: !0
            }
          };
        }
      },
      "./src/crypt/aes-crypto.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          default: () => P
        });
        var P = /* @__PURE__ */ function() {
          function y(C, F) {
            this.subtle = void 0, this.aesIV = void 0, this.subtle = C, this.aesIV = F;
          }
          var O = y.prototype;
          return O.decrypt = function(F, R) {
            return this.subtle.decrypt({
              name: "AES-CBC",
              iv: this.aesIV
            }, R, F);
          }, y;
        }();
      },
      "./src/crypt/aes-decryptor.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          default: () => O,
          removePadding: () => y
        });
        var P = g("./src/utils/typed-array.ts");
        function y(C) {
          var F = C.byteLength, R = F && new DataView(C.buffer).getUint8(F - 1);
          return R ? (0, P.sliceUint8)(C, 0, F - R) : C;
        }
        var O = /* @__PURE__ */ function() {
          function C() {
            this.rcon = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54], this.subMix = [new Uint32Array(256), new Uint32Array(256), new Uint32Array(256), new Uint32Array(256)], this.invSubMix = [new Uint32Array(256), new Uint32Array(256), new Uint32Array(256), new Uint32Array(256)], this.sBox = new Uint32Array(256), this.invSBox = new Uint32Array(256), this.key = new Uint32Array(0), this.ksRows = 0, this.keySize = 0, this.keySchedule = void 0, this.invKeySchedule = void 0, this.initTable();
          }
          var F = C.prototype;
          return F.uint8ArrayToUint32Array_ = function(T) {
            for (var D = new DataView(T), p = new Uint32Array(4), S = 0; S < 4; S++)
              p[S] = D.getUint32(S * 4);
            return p;
          }, F.initTable = function() {
            var T = this.sBox, D = this.invSBox, p = this.subMix, S = p[0], b = p[1], _ = p[2], E = p[3], l = this.invSubMix, n = l[0], t = l[1], d = l[2], h = l[3], i = new Uint32Array(256), r = 0, e = 0, f = 0;
            for (f = 0; f < 256; f++)
              f < 128 ? i[f] = f << 1 : i[f] = f << 1 ^ 283;
            for (f = 0; f < 256; f++) {
              var u = e ^ e << 1 ^ e << 2 ^ e << 3 ^ e << 4;
              u = u >>> 8 ^ u & 255 ^ 99, T[r] = u, D[u] = r;
              var m = i[r], s = i[m], v = i[s], c = i[u] * 257 ^ u * 16843008;
              S[r] = c << 24 | c >>> 8, b[r] = c << 16 | c >>> 16, _[r] = c << 8 | c >>> 24, E[r] = c, c = v * 16843009 ^ s * 65537 ^ m * 257 ^ r * 16843008, n[u] = c << 24 | c >>> 8, t[u] = c << 16 | c >>> 16, d[u] = c << 8 | c >>> 24, h[u] = c, r ? (r = m ^ i[i[i[v ^ m]]], e ^= i[i[e]]) : r = e = 1;
            }
          }, F.expandKey = function(T) {
            for (var D = this.uint8ArrayToUint32Array_(T), p = !0, S = 0; S < D.length && p; )
              p = D[S] === this.key[S], S++;
            if (!p) {
              this.key = D;
              var b = this.keySize = D.length;
              if (b !== 4 && b !== 6 && b !== 8)
                throw new Error("Invalid aes key size=" + b);
              var _ = this.ksRows = (b + 6 + 1) * 4, E, l, n = this.keySchedule = new Uint32Array(_), t = this.invKeySchedule = new Uint32Array(_), d = this.sBox, h = this.rcon, i = this.invSubMix, r = i[0], e = i[1], f = i[2], u = i[3], m, s;
              for (E = 0; E < _; E++) {
                if (E < b) {
                  m = n[E] = D[E];
                  continue;
                }
                s = m, E % b === 0 ? (s = s << 8 | s >>> 24, s = d[s >>> 24] << 24 | d[s >>> 16 & 255] << 16 | d[s >>> 8 & 255] << 8 | d[s & 255], s ^= h[E / b | 0] << 24) : b > 6 && E % b === 4 && (s = d[s >>> 24] << 24 | d[s >>> 16 & 255] << 16 | d[s >>> 8 & 255] << 8 | d[s & 255]), n[E] = m = (n[E - b] ^ s) >>> 0;
              }
              for (l = 0; l < _; l++)
                E = _ - l, l & 3 ? s = n[E] : s = n[E - 4], l < 4 || E <= 4 ? t[l] = s : t[l] = r[d[s >>> 24]] ^ e[d[s >>> 16 & 255]] ^ f[d[s >>> 8 & 255]] ^ u[d[s & 255]], t[l] = t[l] >>> 0;
            }
          }, F.networkToHostOrderSwap = function(T) {
            return T << 24 | (T & 65280) << 8 | (T & 16711680) >> 8 | T >>> 24;
          }, F.decrypt = function(T, D, p) {
            for (var S = this.keySize + 6, b = this.invKeySchedule, _ = this.invSBox, E = this.invSubMix, l = E[0], n = E[1], t = E[2], d = E[3], h = this.uint8ArrayToUint32Array_(p), i = h[0], r = h[1], e = h[2], f = h[3], u = new Int32Array(T), m = new Int32Array(u.length), s, v, c, o, a, x, k, K, w, W, z, H, j, Y, Z = this.networkToHostOrderSwap; D < u.length; ) {
              for (w = Z(u[D]), W = Z(u[D + 1]), z = Z(u[D + 2]), H = Z(u[D + 3]), a = w ^ b[0], x = H ^ b[1], k = z ^ b[2], K = W ^ b[3], j = 4, Y = 1; Y < S; Y++)
                s = l[a >>> 24] ^ n[x >> 16 & 255] ^ t[k >> 8 & 255] ^ d[K & 255] ^ b[j], v = l[x >>> 24] ^ n[k >> 16 & 255] ^ t[K >> 8 & 255] ^ d[a & 255] ^ b[j + 1], c = l[k >>> 24] ^ n[K >> 16 & 255] ^ t[a >> 8 & 255] ^ d[x & 255] ^ b[j + 2], o = l[K >>> 24] ^ n[a >> 16 & 255] ^ t[x >> 8 & 255] ^ d[k & 255] ^ b[j + 3], a = s, x = v, k = c, K = o, j = j + 4;
              s = _[a >>> 24] << 24 ^ _[x >> 16 & 255] << 16 ^ _[k >> 8 & 255] << 8 ^ _[K & 255] ^ b[j], v = _[x >>> 24] << 24 ^ _[k >> 16 & 255] << 16 ^ _[K >> 8 & 255] << 8 ^ _[a & 255] ^ b[j + 1], c = _[k >>> 24] << 24 ^ _[K >> 16 & 255] << 16 ^ _[a >> 8 & 255] << 8 ^ _[x & 255] ^ b[j + 2], o = _[K >>> 24] << 24 ^ _[a >> 16 & 255] << 16 ^ _[x >> 8 & 255] << 8 ^ _[k & 255] ^ b[j + 3], m[D] = Z(s ^ i), m[D + 1] = Z(o ^ r), m[D + 2] = Z(c ^ e), m[D + 3] = Z(v ^ f), i = w, r = W, e = z, f = H, D = D + 4;
            }
            return m.buffer;
          }, C;
        }();
      },
      "./src/crypt/decrypter.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          default: () => D
        });
        var P = g("./src/crypt/aes-crypto.ts"), y = g("./src/crypt/fast-aes-key.ts"), O = g("./src/crypt/aes-decryptor.ts"), C = g("./src/utils/logger.ts"), F = g("./src/utils/mp4-tools.ts"), R = g("./src/utils/typed-array.ts"), T = 16, D = /* @__PURE__ */ function() {
          function p(b, _, E) {
            var l = E === void 0 ? {} : E, n = l.removePKCS7Padding, t = n === void 0 ? !0 : n;
            if (this.logEnabled = !0, this.observer = void 0, this.config = void 0, this.removePKCS7Padding = void 0, this.subtle = null, this.softwareDecrypter = null, this.key = null, this.fastAesKey = null, this.remainderData = null, this.currentIV = null, this.currentResult = null, this.observer = b, this.config = _, this.removePKCS7Padding = t, t)
              try {
                var d = self.crypto;
                d && (this.subtle = d.subtle || d.webkitSubtle);
              } catch {
              }
            this.subtle === null && (this.config.enableSoftwareAES = !0);
          }
          var S = p.prototype;
          return S.destroy = function() {
            this.observer = null;
          }, S.isSync = function() {
            return this.config.enableSoftwareAES;
          }, S.flush = function() {
            var _ = this.currentResult;
            if (!_) {
              this.reset();
              return;
            }
            var E = new Uint8Array(_);
            return this.reset(), this.removePKCS7Padding ? (0, O.removePadding)(E) : E;
          }, S.reset = function() {
            this.currentResult = null, this.currentIV = null, this.remainderData = null, this.softwareDecrypter && (this.softwareDecrypter = null);
          }, S.decrypt = function(_, E, l, n) {
            if (this.config.enableSoftwareAES) {
              this.softwareDecrypt(new Uint8Array(_), E, l);
              var t = this.flush();
              t && n(t.buffer);
            } else
              this.webCryptoDecrypt(new Uint8Array(_), E, l).then(n);
          }, S.softwareDecrypt = function(_, E, l) {
            var n = this.currentIV, t = this.currentResult, d = this.remainderData;
            this.logOnce("JS AES decrypt"), d && (_ = (0, F.appendUint8Array)(d, _), this.remainderData = null);
            var h = this.getValidChunk(_);
            if (!h.length)
              return null;
            n && (l = n);
            var i = this.softwareDecrypter;
            i || (i = this.softwareDecrypter = new O.default()), i.expandKey(E);
            var r = t;
            return this.currentResult = i.decrypt(h.buffer, 0, l), this.currentIV = (0, R.sliceUint8)(h, -16).buffer, r || null;
          }, S.webCryptoDecrypt = function(_, E, l) {
            var n = this, t = this.subtle;
            return (this.key !== E || !this.fastAesKey) && (this.key = E, this.fastAesKey = new y.default(t, E)), this.fastAesKey.expandKey().then(function(d) {
              if (!t)
                return Promise.reject(new Error("web crypto not initialized"));
              var h = new P.default(t, l);
              return h.decrypt(_.buffer, d);
            }).catch(function(d) {
              return n.onWebCryptoError(d, _, E, l);
            });
          }, S.onWebCryptoError = function(_, E, l, n) {
            return C.logger.warn("[decrypter.ts]: WebCrypto Error, disable WebCrypto API:", _), this.config.enableSoftwareAES = !0, this.logEnabled = !0, this.softwareDecrypt(E, l, n);
          }, S.getValidChunk = function(_) {
            var E = _, l = _.length - _.length % T;
            return l !== _.length && (E = (0, R.sliceUint8)(_, 0, l), this.remainderData = (0, R.sliceUint8)(_, l)), E;
          }, S.logOnce = function(_) {
            !this.logEnabled || (C.logger.log("[decrypter.ts]: " + _), this.logEnabled = !1);
          }, p;
        }();
      },
      "./src/crypt/fast-aes-key.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          default: () => P
        });
        var P = /* @__PURE__ */ function() {
          function y(C, F) {
            this.subtle = void 0, this.key = void 0, this.subtle = C, this.key = F;
          }
          var O = y.prototype;
          return O.expandKey = function() {
            return this.subtle.importKey("raw", this.key, {
              name: "AES-CBC"
            }, !1, ["encrypt", "decrypt"]);
          }, y;
        }();
      },
      "./src/demux/aacdemuxer.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          default: () => D
        });
        var P = g("./src/demux/base-audio-demuxer.ts"), y = g("./src/demux/adts.ts"), O = g("./src/utils/logger.ts"), C = g("./src/demux/id3.ts");
        function F(p, S) {
          p.prototype = Object.create(S.prototype), p.prototype.constructor = p, R(p, S);
        }
        function R(p, S) {
          return R = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(_, E) {
            return _.__proto__ = E, _;
          }, R(p, S);
        }
        var T = /* @__PURE__ */ function(p) {
          F(S, p);
          function S(_, E) {
            var l;
            return l = p.call(this) || this, l.observer = void 0, l.config = void 0, l.observer = _, l.config = E, l;
          }
          var b = S.prototype;
          return b.resetInitSegment = function(E, l, n, t) {
            p.prototype.resetInitSegment.call(this, E, l, n, t), this._audioTrack = {
              container: "audio/adts",
              type: "audio",
              id: 2,
              pid: -1,
              sequenceNumber: 0,
              segmentCodec: "aac",
              samples: [],
              manifestCodec: l,
              duration: t,
              inputTimeScale: 9e4,
              dropped: 0
            };
          }, S.probe = function(E) {
            if (!E)
              return !1;
            for (var l = C.getID3Data(E, 0) || [], n = l.length, t = E.length; n < t; n++)
              if (y.probe(E, n))
                return O.logger.log("ADTS sync word found !"), !0;
            return !1;
          }, b.canParse = function(E, l) {
            return y.canParse(E, l);
          }, b.appendFrame = function(E, l, n) {
            y.initTrackConfig(E, this.observer, l, n, E.manifestCodec);
            var t = y.appendFrame(E, l, n, this.basePTS, this.frameIndex);
            if (t && t.missing === 0)
              return t;
          }, S;
        }(P.default);
        const D = T;
      },
      "./src/demux/adts.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          appendFrame: () => n,
          canGetFrameLength: () => D,
          canParse: () => S,
          getAudioConfig: () => C,
          getFrameDuration: () => E,
          getFullFrameLength: () => T,
          getHeaderLength: () => R,
          initTrackConfig: () => _,
          isHeader: () => p,
          isHeaderPattern: () => F,
          parseFrameHeader: () => l,
          probe: () => b
        });
        var P = g("./src/utils/logger.ts"), y = g("./src/errors.ts"), O = g("./src/events.ts");
        function C(t, d, h, i) {
          var r, e, f, u, m = navigator.userAgent.toLowerCase(), s = i, v = [96e3, 88200, 64e3, 48e3, 44100, 32e3, 24e3, 22050, 16e3, 12e3, 11025, 8e3, 7350];
          r = ((d[h + 2] & 192) >>> 6) + 1;
          var c = (d[h + 2] & 60) >>> 2;
          if (c > v.length - 1) {
            t.trigger(O.Events.ERROR, {
              type: y.ErrorTypes.MEDIA_ERROR,
              details: y.ErrorDetails.FRAG_PARSING_ERROR,
              fatal: !0,
              reason: "invalid ADTS sampling index:" + c
            });
            return;
          }
          return f = (d[h + 2] & 1) << 2, f |= (d[h + 3] & 192) >>> 6, P.logger.log("manifest codec:" + i + ", ADTS type:" + r + ", samplingIndex:" + c), /firefox/i.test(m) ? c >= 6 ? (r = 5, u = new Array(4), e = c - 3) : (r = 2, u = new Array(2), e = c) : m.indexOf("android") !== -1 ? (r = 2, u = new Array(2), e = c) : (r = 5, u = new Array(4), i && (i.indexOf("mp4a.40.29") !== -1 || i.indexOf("mp4a.40.5") !== -1) || !i && c >= 6 ? e = c - 3 : ((i && i.indexOf("mp4a.40.2") !== -1 && (c >= 6 && f === 1 || /vivaldi/i.test(m)) || !i && f === 1) && (r = 2, u = new Array(2)), e = c)), u[0] = r << 3, u[0] |= (c & 14) >> 1, u[1] |= (c & 1) << 7, u[1] |= f << 3, r === 5 && (u[1] |= (e & 14) >> 1, u[2] = (e & 1) << 7, u[2] |= 8, u[3] = 0), {
            config: u,
            samplerate: v[c],
            channelCount: f,
            codec: "mp4a.40." + r,
            manifestCodec: s
          };
        }
        function F(t, d) {
          return t[d] === 255 && (t[d + 1] & 246) === 240;
        }
        function R(t, d) {
          return t[d + 1] & 1 ? 7 : 9;
        }
        function T(t, d) {
          return (t[d + 3] & 3) << 11 | t[d + 4] << 3 | (t[d + 5] & 224) >>> 5;
        }
        function D(t, d) {
          return d + 5 < t.length;
        }
        function p(t, d) {
          return d + 1 < t.length && F(t, d);
        }
        function S(t, d) {
          return D(t, d) && F(t, d) && T(t, d) <= t.length - d;
        }
        function b(t, d) {
          if (p(t, d)) {
            var h = R(t, d);
            if (d + h >= t.length)
              return !1;
            var i = T(t, d);
            if (i <= h)
              return !1;
            var r = d + i;
            return r === t.length || p(t, r);
          }
          return !1;
        }
        function _(t, d, h, i, r) {
          if (!t.samplerate) {
            var e = C(d, h, i, r);
            if (!e)
              return;
            t.config = e.config, t.samplerate = e.samplerate, t.channelCount = e.channelCount, t.codec = e.codec, t.manifestCodec = e.manifestCodec, P.logger.log("parsed codec:" + t.codec + ", rate:" + e.samplerate + ", channels:" + e.channelCount);
          }
        }
        function E(t) {
          return 9216e4 / t;
        }
        function l(t, d) {
          var h = R(t, d);
          if (d + h <= t.length) {
            var i = T(t, d) - h;
            if (i > 0)
              return {
                headerLength: h,
                frameLength: i
              };
          }
        }
        function n(t, d, h, i, r) {
          var e = E(t.samplerate), f = i + r * e, u = l(d, h), m;
          if (u) {
            var s = u.frameLength, v = u.headerLength, c = v + s, o = Math.max(0, h + c - d.length);
            o ? (m = new Uint8Array(c - v), m.set(d.subarray(h + v, d.length), 0)) : m = d.subarray(h + v, h + c);
            var a = {
              unit: m,
              pts: f
            };
            return o || t.samples.push(a), {
              sample: a,
              length: c,
              missing: o
            };
          }
          var x = d.length - h;
          m = new Uint8Array(x), m.set(d.subarray(h, d.length), 0);
          var k = {
            unit: m,
            pts: f
          };
          return {
            sample: k,
            length: x,
            missing: -1
          };
        }
      },
      "./src/demux/base-audio-demuxer.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          default: () => p,
          initPTSFn: () => D
        });
        var P = g("./src/polyfills/number.ts"), y = g("./src/demux/id3.ts"), O = g("./src/types/demuxer.ts"), C = g("./src/demux/dummy-demuxed-track.ts"), F = g("./src/utils/mp4-tools.ts"), R = g("./src/utils/typed-array.ts"), T = /* @__PURE__ */ function() {
          function S() {
            this._audioTrack = void 0, this._id3Track = void 0, this.frameIndex = 0, this.cachedData = null, this.basePTS = null, this.initPTS = null;
          }
          var b = S.prototype;
          return b.resetInitSegment = function(E, l, n, t) {
            this._id3Track = {
              type: "id3",
              id: 3,
              pid: -1,
              inputTimeScale: 9e4,
              sequenceNumber: 0,
              samples: [],
              dropped: 0
            };
          }, b.resetTimeStamp = function(E) {
            this.initPTS = E, this.resetContiguity();
          }, b.resetContiguity = function() {
            this.basePTS = null, this.frameIndex = 0;
          }, b.canParse = function(E, l) {
            return !1;
          }, b.appendFrame = function(E, l, n) {
          }, b.demux = function(E, l) {
            this.cachedData && (E = (0, F.appendUint8Array)(this.cachedData, E), this.cachedData = null);
            var n = y.getID3Data(E, 0), t = n ? n.length : 0, d, h, i = this._audioTrack, r = this._id3Track, e = n ? y.getTimeStamp(n) : void 0, f = E.length;
            for ((this.basePTS === null || this.frameIndex === 0 && (0, P.isFiniteNumber)(e)) && (this.basePTS = D(e, l, this.initPTS)), n && n.length > 0 && r.samples.push({
              pts: this.basePTS,
              dts: this.basePTS,
              data: n,
              type: O.MetadataSchema.audioId3,
              duration: Number.POSITIVE_INFINITY
            }), h = this.basePTS; t < f; ) {
              if (this.canParse(E, t)) {
                var u = this.appendFrame(i, E, t);
                u ? (this.frameIndex++, h = u.sample.pts, t += u.length, d = t) : t = f;
              } else
                y.canParse(E, t) ? (n = y.getID3Data(E, t), r.samples.push({
                  pts: h,
                  dts: h,
                  data: n,
                  type: O.MetadataSchema.audioId3,
                  duration: Number.POSITIVE_INFINITY
                }), t += n.length, d = t) : t++;
              if (t === f && d !== f) {
                var m = (0, R.sliceUint8)(E, d);
                this.cachedData ? this.cachedData = (0, F.appendUint8Array)(this.cachedData, m) : this.cachedData = m;
              }
            }
            return {
              audioTrack: i,
              videoTrack: (0, C.dummyTrack)(),
              id3Track: r,
              textTrack: (0, C.dummyTrack)()
            };
          }, b.demuxSampleAes = function(E, l, n) {
            return Promise.reject(new Error("[" + this + "] This demuxer does not support Sample-AES decryption"));
          }, b.flush = function(E) {
            var l = this.cachedData;
            return l && (this.cachedData = null, this.demux(l, 0)), {
              audioTrack: this._audioTrack,
              videoTrack: (0, C.dummyTrack)(),
              id3Track: this._id3Track,
              textTrack: (0, C.dummyTrack)()
            };
          }, b.destroy = function() {
          }, S;
        }(), D = function(b, _, E) {
          return (0, P.isFiniteNumber)(b) ? b * 90 : _ * 9e4 + (E || 0);
        };
        const p = T;
      },
      "./src/demux/chunk-cache.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          default: () => P
        });
        var P = /* @__PURE__ */ function() {
          function O() {
            this.chunks = [], this.dataLength = 0;
          }
          var C = O.prototype;
          return C.push = function(R) {
            this.chunks.push(R), this.dataLength += R.length;
          }, C.flush = function() {
            var R = this.chunks, T = this.dataLength, D;
            if (R.length)
              R.length === 1 ? D = R[0] : D = y(R, T);
            else
              return new Uint8Array(0);
            return this.reset(), D;
          }, C.reset = function() {
            this.chunks.length = 0, this.dataLength = 0;
          }, O;
        }();
        function y(O, C) {
          for (var F = new Uint8Array(C), R = 0, T = 0; T < O.length; T++) {
            var D = O[T];
            F.set(D, R), R += D.length;
          }
          return F;
        }
      },
      "./src/demux/dummy-demuxed-track.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          dummyTrack: () => P
        });
        function P(y, O) {
          return y === void 0 && (y = ""), O === void 0 && (O = 9e4), {
            type: y,
            id: -1,
            pid: -1,
            inputTimeScale: O,
            sequenceNumber: -1,
            samples: [],
            dropped: 0
          };
        }
      },
      "./src/demux/exp-golomb.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          default: () => O
        });
        var P = g("./src/utils/logger.ts"), y = /* @__PURE__ */ function() {
          function C(R) {
            this.data = void 0, this.bytesAvailable = void 0, this.word = void 0, this.bitsAvailable = void 0, this.data = R, this.bytesAvailable = R.byteLength, this.word = 0, this.bitsAvailable = 0;
          }
          var F = C.prototype;
          return F.loadWord = function() {
            var T = this.data, D = this.bytesAvailable, p = T.byteLength - D, S = new Uint8Array(4), b = Math.min(4, D);
            if (b === 0)
              throw new Error("no bytes available");
            S.set(T.subarray(p, p + b)), this.word = new DataView(S.buffer).getUint32(0), this.bitsAvailable = b * 8, this.bytesAvailable -= b;
          }, F.skipBits = function(T) {
            var D;
            this.bitsAvailable > T ? (this.word <<= T, this.bitsAvailable -= T) : (T -= this.bitsAvailable, D = T >> 3, T -= D >> 3, this.bytesAvailable -= D, this.loadWord(), this.word <<= T, this.bitsAvailable -= T);
          }, F.readBits = function(T) {
            var D = Math.min(this.bitsAvailable, T), p = this.word >>> 32 - D;
            return T > 32 && P.logger.error("Cannot read more than 32 bits at a time"), this.bitsAvailable -= D, this.bitsAvailable > 0 ? this.word <<= D : this.bytesAvailable > 0 && this.loadWord(), D = T - D, D > 0 && this.bitsAvailable ? p << D | this.readBits(D) : p;
          }, F.skipLZ = function() {
            var T;
            for (T = 0; T < this.bitsAvailable; ++T)
              if ((this.word & 2147483648 >>> T) !== 0)
                return this.word <<= T, this.bitsAvailable -= T, T;
            return this.loadWord(), T + this.skipLZ();
          }, F.skipUEG = function() {
            this.skipBits(1 + this.skipLZ());
          }, F.skipEG = function() {
            this.skipBits(1 + this.skipLZ());
          }, F.readUEG = function() {
            var T = this.skipLZ();
            return this.readBits(T + 1) - 1;
          }, F.readEG = function() {
            var T = this.readUEG();
            return 1 & T ? 1 + T >>> 1 : -1 * (T >>> 1);
          }, F.readBoolean = function() {
            return this.readBits(1) === 1;
          }, F.readUByte = function() {
            return this.readBits(8);
          }, F.readUShort = function() {
            return this.readBits(16);
          }, F.readUInt = function() {
            return this.readBits(32);
          }, F.skipScalingList = function(T) {
            for (var D = 8, p = 8, S, b = 0; b < T; b++)
              p !== 0 && (S = this.readEG(), p = (D + S + 256) % 256), D = p === 0 ? D : p;
          }, F.readSPS = function() {
            var T = 0, D = 0, p = 0, S = 0, b, _, E, l = this.readUByte.bind(this), n = this.readBits.bind(this), t = this.readUEG.bind(this), d = this.readBoolean.bind(this), h = this.skipBits.bind(this), i = this.skipEG.bind(this), r = this.skipUEG.bind(this), e = this.skipScalingList.bind(this);
            l();
            var f = l();
            if (n(5), h(3), l(), r(), f === 100 || f === 110 || f === 122 || f === 244 || f === 44 || f === 83 || f === 86 || f === 118 || f === 128) {
              var u = t();
              if (u === 3 && h(1), r(), r(), h(1), d())
                for (_ = u !== 3 ? 8 : 12, E = 0; E < _; E++)
                  d() && (E < 6 ? e(16) : e(64));
            }
            r();
            var m = t();
            if (m === 0)
              t();
            else if (m === 1)
              for (h(1), i(), i(), b = t(), E = 0; E < b; E++)
                i();
            r(), h(1);
            var s = t(), v = t(), c = n(1);
            c === 0 && h(1), h(1), d() && (T = t(), D = t(), p = t(), S = t());
            var o = [1, 1];
            if (d() && d()) {
              var a = l();
              switch (a) {
                case 1:
                  o = [1, 1];
                  break;
                case 2:
                  o = [12, 11];
                  break;
                case 3:
                  o = [10, 11];
                  break;
                case 4:
                  o = [16, 11];
                  break;
                case 5:
                  o = [40, 33];
                  break;
                case 6:
                  o = [24, 11];
                  break;
                case 7:
                  o = [20, 11];
                  break;
                case 8:
                  o = [32, 11];
                  break;
                case 9:
                  o = [80, 33];
                  break;
                case 10:
                  o = [18, 11];
                  break;
                case 11:
                  o = [15, 11];
                  break;
                case 12:
                  o = [64, 33];
                  break;
                case 13:
                  o = [160, 99];
                  break;
                case 14:
                  o = [4, 3];
                  break;
                case 15:
                  o = [3, 2];
                  break;
                case 16:
                  o = [2, 1];
                  break;
                case 255: {
                  o = [l() << 8 | l(), l() << 8 | l()];
                  break;
                }
              }
            }
            return {
              width: Math.ceil((s + 1) * 16 - T * 2 - D * 2),
              height: (2 - c) * (v + 1) * 16 - (c ? 2 : 4) * (p + S),
              pixelRatio: o
            };
          }, F.readSliceType = function() {
            return this.readUByte(), this.readUEG(), this.readUEG();
          }, C;
        }();
        const O = y;
      },
      "./src/demux/id3.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          canParse: () => F,
          decodeFrame: () => S,
          getID3Data: () => O,
          getID3Frames: () => p,
          getTimeStamp: () => R,
          isFooter: () => y,
          isHeader: () => P,
          isTimeStampFrame: () => T,
          testables: () => t,
          utf8ArrayToStr: () => n
        });
        var P = function(r, e) {
          return e + 10 <= r.length && r[e] === 73 && r[e + 1] === 68 && r[e + 2] === 51 && r[e + 3] < 255 && r[e + 4] < 255 && r[e + 6] < 128 && r[e + 7] < 128 && r[e + 8] < 128 && r[e + 9] < 128;
        }, y = function(r, e) {
          return e + 10 <= r.length && r[e] === 51 && r[e + 1] === 68 && r[e + 2] === 73 && r[e + 3] < 255 && r[e + 4] < 255 && r[e + 6] < 128 && r[e + 7] < 128 && r[e + 8] < 128 && r[e + 9] < 128;
        }, O = function(r, e) {
          for (var f = e, u = 0; P(r, e); ) {
            u += 10;
            var m = C(r, e + 6);
            u += m, y(r, e + 10) && (u += 10), e += u;
          }
          if (u > 0)
            return r.subarray(f, f + u);
        }, C = function(r, e) {
          var f = 0;
          return f = (r[e] & 127) << 21, f |= (r[e + 1] & 127) << 14, f |= (r[e + 2] & 127) << 7, f |= r[e + 3] & 127, f;
        }, F = function(r, e) {
          return P(r, e) && C(r, e + 6) + 10 <= r.length - e;
        }, R = function(r) {
          for (var e = p(r), f = 0; f < e.length; f++) {
            var u = e[f];
            if (T(u))
              return l(u);
          }
        }, T = function(r) {
          return r && r.key === "PRIV" && r.info === "com.apple.streaming.transportStreamTimestamp";
        }, D = function(r) {
          var e = String.fromCharCode(r[0], r[1], r[2], r[3]), f = C(r, 4), u = 10;
          return {
            type: e,
            size: f,
            data: r.subarray(u, u + f)
          };
        }, p = function(r) {
          for (var e = 0, f = []; P(r, e); ) {
            var u = C(r, e + 6);
            e += 10;
            for (var m = e + u; e + 8 < m; ) {
              var s = D(r.subarray(e)), v = S(s);
              v && f.push(v), e += s.size + 10;
            }
            y(r, e) && (e += 10);
          }
          return f;
        }, S = function(r) {
          return r.type === "PRIV" ? b(r) : r.type[0] === "W" ? E(r) : _(r);
        }, b = function(r) {
          if (!(r.size < 2)) {
            var e = n(r.data, !0), f = new Uint8Array(r.data.subarray(e.length + 1));
            return {
              key: r.type,
              info: e,
              data: f.buffer
            };
          }
        }, _ = function(r) {
          if (!(r.size < 2)) {
            if (r.type === "TXXX") {
              var e = 1, f = n(r.data.subarray(e), !0);
              e += f.length + 1;
              var u = n(r.data.subarray(e));
              return {
                key: r.type,
                info: f,
                data: u
              };
            }
            var m = n(r.data.subarray(1));
            return {
              key: r.type,
              data: m
            };
          }
        }, E = function(r) {
          if (r.type === "WXXX") {
            if (r.size < 2)
              return;
            var e = 1, f = n(r.data.subarray(e), !0);
            e += f.length + 1;
            var u = n(r.data.subarray(e));
            return {
              key: r.type,
              info: f,
              data: u
            };
          }
          var m = n(r.data);
          return {
            key: r.type,
            data: m
          };
        }, l = function(r) {
          if (r.data.byteLength === 8) {
            var e = new Uint8Array(r.data), f = e[3] & 1, u = (e[4] << 23) + (e[5] << 15) + (e[6] << 7) + e[7];
            return u /= 45, f && (u += 4772185884e-2), Math.round(u);
          }
        }, n = function(r, e) {
          e === void 0 && (e = !1);
          var f = h();
          if (f) {
            var u = f.decode(r);
            if (e) {
              var m = u.indexOf("\0");
              return m !== -1 ? u.substring(0, m) : u;
            }
            return u.replace(/\0/g, "");
          }
          for (var s = r.length, v, c, o, a = "", x = 0; x < s; ) {
            if (v = r[x++], v === 0 && e)
              return a;
            if (v === 0 || v === 3)
              continue;
            switch (v >> 4) {
              case 0:
              case 1:
              case 2:
              case 3:
              case 4:
              case 5:
              case 6:
              case 7:
                a += String.fromCharCode(v);
                break;
              case 12:
              case 13:
                c = r[x++], a += String.fromCharCode((v & 31) << 6 | c & 63);
                break;
              case 14:
                c = r[x++], o = r[x++], a += String.fromCharCode((v & 15) << 12 | (c & 63) << 6 | (o & 63) << 0);
                break;
            }
          }
          return a;
        }, t = {
          decodeTextFrame: _
        }, d;
        function h() {
          return !d && typeof self.TextDecoder < "u" && (d = new self.TextDecoder("utf-8")), d;
        }
      },
      "./src/demux/mp3demuxer.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          default: () => D
        });
        var P = g("./src/demux/base-audio-demuxer.ts"), y = g("./src/demux/id3.ts"), O = g("./src/utils/logger.ts"), C = g("./src/demux/mpegaudio.ts");
        function F(p, S) {
          p.prototype = Object.create(S.prototype), p.prototype.constructor = p, R(p, S);
        }
        function R(p, S) {
          return R = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(_, E) {
            return _.__proto__ = E, _;
          }, R(p, S);
        }
        var T = /* @__PURE__ */ function(p) {
          F(S, p);
          function S() {
            return p.apply(this, arguments) || this;
          }
          var b = S.prototype;
          return b.resetInitSegment = function(E, l, n, t) {
            p.prototype.resetInitSegment.call(this, E, l, n, t), this._audioTrack = {
              container: "audio/mpeg",
              type: "audio",
              id: 2,
              pid: -1,
              sequenceNumber: 0,
              segmentCodec: "mp3",
              samples: [],
              manifestCodec: l,
              duration: t,
              inputTimeScale: 9e4,
              dropped: 0
            };
          }, S.probe = function(E) {
            if (!E)
              return !1;
            for (var l = y.getID3Data(E, 0) || [], n = l.length, t = E.length; n < t; n++)
              if (C.probe(E, n))
                return O.logger.log("MPEG Audio sync word found !"), !0;
            return !1;
          }, b.canParse = function(E, l) {
            return C.canParse(E, l);
          }, b.appendFrame = function(E, l, n) {
            if (this.basePTS !== null)
              return C.appendFrame(E, l, n, this.basePTS, this.frameIndex);
          }, S;
        }(P.default);
        const D = T;
      },
      "./src/demux/mp4demuxer.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          default: () => T
        });
        var P = g("./src/polyfills/number.ts"), y = g("./src/types/demuxer.ts"), O = g("./src/utils/mp4-tools.ts"), C = g("./src/demux/dummy-demuxed-track.ts"), F = /\/emsg[-/]ID3/i, R = /* @__PURE__ */ function() {
          function D(S, b) {
            this.remainderData = null, this.timeOffset = 0, this.config = void 0, this.videoTrack = void 0, this.audioTrack = void 0, this.id3Track = void 0, this.txtTrack = void 0, this.config = b;
          }
          var p = D.prototype;
          return p.resetTimeStamp = function() {
          }, p.resetInitSegment = function(b, _, E, l) {
            var n = (0, O.parseInitSegment)(b), t = this.videoTrack = (0, C.dummyTrack)("video", 1), d = this.audioTrack = (0, C.dummyTrack)("audio", 1), h = this.txtTrack = (0, C.dummyTrack)("text", 1);
            if (this.id3Track = (0, C.dummyTrack)("id3", 1), this.timeOffset = 0, n.video) {
              var i = n.video, r = i.id, e = i.timescale, f = i.codec;
              t.id = r, t.timescale = h.timescale = e, t.codec = f;
            }
            if (n.audio) {
              var u = n.audio, m = u.id, s = u.timescale, v = u.codec;
              d.id = m, d.timescale = s, d.codec = v;
            }
            h.id = O.RemuxerTrackIdConfig.text, t.sampleDuration = 0, t.duration = d.duration = l;
          }, p.resetContiguity = function() {
          }, D.probe = function(b) {
            return b = b.length > 16384 ? b.subarray(0, 16384) : b, (0, O.findBox)(b, ["moof"]).length > 0;
          }, p.demux = function(b, _) {
            this.timeOffset = _;
            var E = b, l = this.videoTrack, n = this.txtTrack;
            if (this.config.progressive) {
              this.remainderData && (E = (0, O.appendUint8Array)(this.remainderData, b));
              var t = (0, O.segmentValidRange)(E);
              this.remainderData = t.remainder, l.samples = t.valid || new Uint8Array();
            } else
              l.samples = E;
            var d = this.extractID3Track(l, _);
            return n.samples = (0, O.parseSamples)(_, l), {
              videoTrack: l,
              audioTrack: this.audioTrack,
              id3Track: d,
              textTrack: this.txtTrack
            };
          }, p.flush = function() {
            var b = this.timeOffset, _ = this.videoTrack, E = this.txtTrack;
            _.samples = this.remainderData || new Uint8Array(), this.remainderData = null;
            var l = this.extractID3Track(_, this.timeOffset);
            return E.samples = (0, O.parseSamples)(b, _), {
              videoTrack: _,
              audioTrack: (0, C.dummyTrack)(),
              id3Track: l,
              textTrack: (0, C.dummyTrack)()
            };
          }, p.extractID3Track = function(b, _) {
            var E = this.id3Track;
            if (b.samples.length) {
              var l = (0, O.findBox)(b.samples, ["emsg"]);
              l && l.forEach(function(n) {
                var t = (0, O.parseEmsg)(n);
                if (F.test(t.schemeIdUri)) {
                  var d = (0, P.isFiniteNumber)(t.presentationTime) ? t.presentationTime / t.timeScale : _ + t.presentationTimeDelta / t.timeScale, h = t.eventDuration === 4294967295 ? Number.POSITIVE_INFINITY : t.eventDuration / t.timeScale;
                  h <= 1e-3 && (h = Number.POSITIVE_INFINITY);
                  var i = t.payload;
                  E.samples.push({
                    data: i,
                    len: i.byteLength,
                    dts: d,
                    pts: d,
                    type: y.MetadataSchema.emsg,
                    duration: h
                  });
                }
              });
            }
            return E;
          }, p.demuxSampleAes = function(b, _, E) {
            return Promise.reject(new Error("The MP4 demuxer does not support SAMPLE-AES decryption"));
          }, p.destroy = function() {
          }, D;
        }();
        const T = R;
      },
      "./src/demux/mpegaudio.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          appendFrame: () => R,
          canParse: () => S,
          isHeader: () => p,
          isHeaderPattern: () => D,
          parseHeader: () => T,
          probe: () => b
        });
        var P = null, y = [32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448, 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 32, 48, 56, 64, 80, 96, 112, 128, 144, 160, 176, 192, 224, 256, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160], O = [44100, 48e3, 32e3, 22050, 24e3, 16e3, 11025, 12e3, 8e3], C = [
          [
            0,
            72,
            144,
            12
          ],
          [
            0,
            0,
            0,
            0
          ],
          [
            0,
            72,
            144,
            12
          ],
          [
            0,
            144,
            144,
            12
          ]
        ], F = [
          0,
          1,
          1,
          4
        ];
        function R(_, E, l, n, t) {
          if (!(l + 24 > E.length)) {
            var d = T(E, l);
            if (d && l + d.frameLength <= E.length) {
              var h = d.samplesPerFrame * 9e4 / d.sampleRate, i = n + t * h, r = {
                unit: E.subarray(l, l + d.frameLength),
                pts: i,
                dts: i
              };
              return _.config = [], _.channelCount = d.channelCount, _.samplerate = d.sampleRate, _.samples.push(r), {
                sample: r,
                length: d.frameLength,
                missing: 0
              };
            }
          }
        }
        function T(_, E) {
          var l = _[E + 1] >> 3 & 3, n = _[E + 1] >> 1 & 3, t = _[E + 2] >> 4 & 15, d = _[E + 2] >> 2 & 3;
          if (l !== 1 && t !== 0 && t !== 15 && d !== 3) {
            var h = _[E + 2] >> 1 & 1, i = _[E + 3] >> 6, r = l === 3 ? 3 - n : n === 3 ? 3 : 4, e = y[r * 14 + t - 1] * 1e3, f = l === 3 ? 0 : l === 2 ? 1 : 2, u = O[f * 3 + d], m = i === 3 ? 1 : 2, s = C[l][n], v = F[n], c = s * 8 * v, o = Math.floor(s * e / u + h) * v;
            if (P === null) {
              var a = navigator.userAgent || "", x = a.match(/Chrome\/(\d+)/i);
              P = x ? parseInt(x[1]) : 0;
            }
            var k = !!P && P <= 87;
            return k && n === 2 && e >= 224e3 && i === 0 && (_[E + 3] = _[E + 3] | 128), {
              sampleRate: u,
              channelCount: m,
              frameLength: o,
              samplesPerFrame: c
            };
          }
        }
        function D(_, E) {
          return _[E] === 255 && (_[E + 1] & 224) === 224 && (_[E + 1] & 6) !== 0;
        }
        function p(_, E) {
          return E + 1 < _.length && D(_, E);
        }
        function S(_, E) {
          var l = 4;
          return D(_, E) && l <= _.length - E;
        }
        function b(_, E) {
          if (E + 1 < _.length && D(_, E)) {
            var l = 4, n = T(_, E), t = l;
            n != null && n.frameLength && (t = n.frameLength);
            var d = E + t;
            return d === _.length || p(_, d);
          }
          return !1;
        }
      },
      "./src/demux/sample-aes.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          default: () => C
        });
        var P = g("./src/crypt/decrypter.ts"), y = g("./src/utils/mp4-tools.ts"), O = /* @__PURE__ */ function() {
          function F(T, D, p) {
            this.keyData = void 0, this.decrypter = void 0, this.keyData = p, this.decrypter = new P.default(T, D, {
              removePKCS7Padding: !1
            });
          }
          var R = F.prototype;
          return R.decryptBuffer = function(D, p) {
            this.decrypter.decrypt(D, this.keyData.key.buffer, this.keyData.iv.buffer, p);
          }, R.decryptAacSample = function(D, p, S, b) {
            var _ = D[p].unit;
            if (!(_.length <= 16)) {
              var E = _.subarray(16, _.length - _.length % 16), l = E.buffer.slice(E.byteOffset, E.byteOffset + E.length), n = this;
              this.decryptBuffer(l, function(t) {
                var d = new Uint8Array(t);
                _.set(d, 16), b || n.decryptAacSamples(D, p + 1, S);
              });
            }
          }, R.decryptAacSamples = function(D, p, S) {
            for (; ; p++) {
              if (p >= D.length) {
                S();
                return;
              }
              if (!(D[p].unit.length < 32)) {
                var b = this.decrypter.isSync();
                if (this.decryptAacSample(D, p, S, b), !b)
                  return;
              }
            }
          }, R.getAvcEncryptedData = function(D) {
            for (var p = Math.floor((D.length - 48) / 160) * 16 + 16, S = new Int8Array(p), b = 0, _ = 32; _ < D.length - 16; _ += 160, b += 16)
              S.set(D.subarray(_, _ + 16), b);
            return S;
          }, R.getAvcDecryptedUnit = function(D, p) {
            for (var S = new Uint8Array(p), b = 0, _ = 32; _ < D.length - 16; _ += 160, b += 16)
              D.set(S.subarray(b, b + 16), _);
            return D;
          }, R.decryptAvcSample = function(D, p, S, b, _, E) {
            var l = (0, y.discardEPB)(_.data), n = this.getAvcEncryptedData(l), t = this;
            this.decryptBuffer(n.buffer, function(d) {
              _.data = t.getAvcDecryptedUnit(l, d), E || t.decryptAvcSamples(D, p, S + 1, b);
            });
          }, R.decryptAvcSamples = function(D, p, S, b) {
            if (D instanceof Uint8Array)
              throw new Error("Cannot decrypt samples of type Uint8Array");
            for (; ; p++, S = 0) {
              if (p >= D.length) {
                b();
                return;
              }
              for (var _ = D[p].units; !(S >= _.length); S++) {
                var E = _[S];
                if (!(E.data.length <= 48 || E.type !== 1 && E.type !== 5)) {
                  var l = this.decrypter.isSync();
                  if (this.decryptAvcSample(D, p, S, b, E, l), !l)
                    return;
                }
              }
            }
          }, F;
        }();
        const C = O;
      },
      "./src/demux/transmuxer-interface.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          default: () => p
        });
        var P = g("./src/demux/webworkify-webpack.js"), y = g("./src/events.ts"), O = g("./src/demux/transmuxer.ts"), C = g("./src/utils/logger.ts"), F = g("./src/errors.ts"), R = g("./src/utils/mediasource-helper.ts"), T = g("./node_modules/eventemitter3/index.js"), D = (0, R.getMediaSource)() || {
          isTypeSupported: function() {
            return !1;
          }
        }, p = /* @__PURE__ */ function() {
          function S(_, E, l, n) {
            var t = this;
            this.hls = void 0, this.id = void 0, this.observer = void 0, this.frag = null, this.part = null, this.worker = void 0, this.onwmsg = void 0, this.transmuxer = null, this.onTransmuxComplete = void 0, this.onFlush = void 0, this.hls = _, this.id = E, this.onTransmuxComplete = l, this.onFlush = n;
            var d = _.config, h = function(u, m) {
              m = m || {}, m.frag = t.frag, m.id = t.id, _.trigger(u, m);
            };
            this.observer = new T.EventEmitter(), this.observer.on(y.Events.FRAG_DECRYPTED, h), this.observer.on(y.Events.ERROR, h);
            var i = {
              mp4: D.isTypeSupported("video/mp4"),
              mpeg: D.isTypeSupported("audio/mpeg"),
              mp3: D.isTypeSupported('audio/mp4; codecs="mp3"')
            }, r = navigator.vendor;
            if (d.enableWorker && typeof Worker < "u") {
              C.logger.log("demuxing in webworker");
              var e;
              try {
                e = this.worker = (0, P.default)("./src/demux/transmuxer-worker.ts"), this.onwmsg = this.onWorkerMessage.bind(this), e.addEventListener("message", this.onwmsg), e.onerror = function(f) {
                  _.trigger(y.Events.ERROR, {
                    type: F.ErrorTypes.OTHER_ERROR,
                    details: F.ErrorDetails.INTERNAL_EXCEPTION,
                    fatal: !0,
                    event: "demuxerWorker",
                    error: new Error(f.message + "  (" + f.filename + ":" + f.lineno + ")")
                  });
                }, e.postMessage({
                  cmd: "init",
                  typeSupported: i,
                  vendor: r,
                  id: E,
                  config: JSON.stringify(d)
                });
              } catch (f) {
                C.logger.warn("Error in worker:", f), C.logger.error("Error while initializing DemuxerWorker, fallback to inline"), e && self.URL.revokeObjectURL(e.objectURL), this.transmuxer = new O.default(this.observer, i, d, r, E), this.worker = null;
              }
            } else
              this.transmuxer = new O.default(this.observer, i, d, r, E);
          }
          var b = S.prototype;
          return b.destroy = function() {
            var E = this.worker;
            if (E)
              E.removeEventListener("message", this.onwmsg), E.terminate(), this.worker = null, this.onwmsg = void 0;
            else {
              var l = this.transmuxer;
              l && (l.destroy(), this.transmuxer = null);
            }
            var n = this.observer;
            n && n.removeAllListeners(), this.frag = null, this.observer = null, this.hls = null;
          }, b.push = function(E, l, n, t, d, h, i, r, e, f) {
            var u, m, s = this;
            e.transmuxing.start = self.performance.now();
            var v = this.transmuxer, c = this.worker, o = h ? h.start : d.start, a = d.decryptdata, x = this.frag, k = !(x && d.cc === x.cc), K = !(x && e.level === x.level), w = x ? e.sn - x.sn : -1, W = this.part ? e.part - this.part.index : -1, z = w === 0 && e.id > 1 && e.id === (x == null ? void 0 : x.stats.chunkCount), H = !K && (w === 1 || w === 0 && (W === 1 || z && W <= 0)), j = self.performance.now();
            (K || w || d.stats.parsing.start === 0) && (d.stats.parsing.start = j), h && (W || !H) && (h.stats.parsing.start = j);
            var Y = !(x && ((u = d.initSegment) === null || u === void 0 ? void 0 : u.url) === ((m = x.initSegment) === null || m === void 0 ? void 0 : m.url)), Z = new O.TransmuxState(k, H, r, K, o, Y);
            if (!H || k || Y) {
              C.logger.log("[transmuxer-interface, " + d.type + "]: Starting new transmux session for sn: " + e.sn + " p: " + e.part + " level: " + e.level + " id: " + e.id + `
        discontinuity: ` + k + `
        trackSwitch: ` + K + `
        contiguous: ` + H + `
        accurateTimeOffset: ` + r + `
        timeOffset: ` + o + `
        initSegmentChange: ` + Y);
              var q = new O.TransmuxConfig(n, t, l, i, f);
              this.configureTransmuxer(q);
            }
            if (this.frag = d, this.part = h, c)
              c.postMessage({
                cmd: "demux",
                data: E,
                decryptdata: a,
                chunkMeta: e,
                state: Z
              }, E instanceof ArrayBuffer ? [E] : []);
            else if (v) {
              var ee = v.push(E, a, e, Z);
              (0, O.isPromise)(ee) ? ee.then(function(te) {
                s.handleTransmuxComplete(te);
              }) : this.handleTransmuxComplete(ee);
            }
          }, b.flush = function(E) {
            var l = this;
            E.transmuxing.start = self.performance.now();
            var n = this.transmuxer, t = this.worker;
            if (t)
              t.postMessage({
                cmd: "flush",
                chunkMeta: E
              });
            else if (n) {
              var d = n.flush(E);
              (0, O.isPromise)(d) ? d.then(function(h) {
                l.handleFlushResult(h, E);
              }) : this.handleFlushResult(d, E);
            }
          }, b.handleFlushResult = function(E, l) {
            var n = this;
            E.forEach(function(t) {
              n.handleTransmuxComplete(t);
            }), this.onFlush(l);
          }, b.onWorkerMessage = function(E) {
            var l = E.data, n = this.hls;
            switch (l.event) {
              case "init": {
                self.URL.revokeObjectURL(this.worker.objectURL);
                break;
              }
              case "transmuxComplete": {
                this.handleTransmuxComplete(l.data);
                break;
              }
              case "flush": {
                this.onFlush(l.data);
                break;
              }
              case "workerLog":
                C.logger[l.data.logType] && C.logger[l.data.logType](l.data.message);
                break;
              default: {
                l.data = l.data || {}, l.data.frag = this.frag, l.data.id = this.id, n.trigger(l.event, l.data);
                break;
              }
            }
          }, b.configureTransmuxer = function(E) {
            var l = this.worker, n = this.transmuxer;
            l ? l.postMessage({
              cmd: "configure",
              config: E
            }) : n && n.configure(E);
          }, b.handleTransmuxComplete = function(E) {
            E.chunkMeta.transmuxing.end = self.performance.now(), this.onTransmuxComplete(E);
          }, S;
        }();
      },
      "./src/demux/transmuxer-worker.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          default: () => F
        });
        var P = g("./src/demux/transmuxer.ts"), y = g("./src/events.ts"), O = g("./src/utils/logger.ts"), C = g("./node_modules/eventemitter3/index.js");
        function F(S) {
          var b = new C.EventEmitter(), _ = function(n, t) {
            S.postMessage({
              event: n,
              data: t
            });
          };
          b.on(y.Events.FRAG_DECRYPTED, _), b.on(y.Events.ERROR, _);
          var E = function() {
            var n = function(h) {
              var i = function(e) {
                _("workerLog", {
                  logType: h,
                  message: e
                });
              };
              O.logger[h] = i;
            };
            for (var t in O.logger)
              n(t);
          };
          S.addEventListener("message", function(l) {
            var n = l.data;
            switch (n.cmd) {
              case "init": {
                var t = JSON.parse(n.config);
                S.transmuxer = new P.default(b, n.typeSupported, t, n.vendor, n.id), (0, O.enableLogs)(t.debug, n.id), E(), _("init", null);
                break;
              }
              case "configure": {
                S.transmuxer.configure(n.config);
                break;
              }
              case "demux": {
                var d = S.transmuxer.push(n.data, n.decryptdata, n.chunkMeta, n.state);
                (0, P.isPromise)(d) ? d.then(function(r) {
                  R(S, r);
                }) : R(S, d);
                break;
              }
              case "flush": {
                var h = n.chunkMeta, i = S.transmuxer.flush(h);
                (0, P.isPromise)(i) ? i.then(function(r) {
                  D(S, r, h);
                }) : D(S, i, h);
                break;
              }
            }
          });
        }
        function R(S, b) {
          if (p(b.remuxResult))
            return !1;
          var _ = [], E = b.remuxResult, l = E.audio, n = E.video;
          return l && T(_, l), n && T(_, n), S.postMessage({
            event: "transmuxComplete",
            data: b
          }, _), !0;
        }
        function T(S, b) {
          b.data1 && S.push(b.data1.buffer), b.data2 && S.push(b.data2.buffer);
        }
        function D(S, b, _) {
          var E = b.reduce(function(l, n) {
            return R(S, n) || l;
          }, !1);
          E || S.postMessage({
            event: "transmuxComplete",
            data: b[0]
          }), S.postMessage({
            event: "flush",
            data: _
          });
        }
        function p(S) {
          return !S.audio && !S.video && !S.text && !S.id3 && !S.initSegment;
        }
      },
      "./src/demux/transmuxer.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          TransmuxConfig: () => d,
          TransmuxState: () => h,
          default: () => E,
          isPromise: () => t
        });
        var P = g("./src/events.ts"), y = g("./src/errors.ts"), O = g("./src/crypt/decrypter.ts"), C = g("./src/demux/aacdemuxer.ts"), F = g("./src/demux/mp4demuxer.ts"), R = g("./src/demux/tsdemuxer.ts"), T = g("./src/demux/mp3demuxer.ts"), D = g("./src/remux/mp4-remuxer.ts"), p = g("./src/remux/passthrough-remuxer.ts"), S = g("./src/utils/logger.ts"), b;
        try {
          b = self.performance.now.bind(self.performance);
        } catch {
          S.logger.debug("Unable to use Performance API on this environment"), b = self.Date.now;
        }
        var _ = [{
          demux: R.default,
          remux: D.default
        }, {
          demux: F.default,
          remux: p.default
        }, {
          demux: C.default,
          remux: D.default
        }, {
          demux: T.default,
          remux: D.default
        }], E = /* @__PURE__ */ function() {
          function i(e, f, u, m, s) {
            this.observer = void 0, this.typeSupported = void 0, this.config = void 0, this.vendor = void 0, this.id = void 0, this.demuxer = void 0, this.remuxer = void 0, this.decrypter = void 0, this.probe = void 0, this.decryptionPromise = null, this.transmuxConfig = void 0, this.currentTransmuxState = void 0, this.observer = e, this.typeSupported = f, this.config = u, this.vendor = m, this.id = s;
          }
          var r = i.prototype;
          return r.configure = function(f) {
            this.transmuxConfig = f, this.decrypter && this.decrypter.reset();
          }, r.push = function(f, u, m, s) {
            var v = this, c = m.transmuxing;
            c.executeStart = b();
            var o = new Uint8Array(f), a = this.config, x = this.currentTransmuxState, k = this.transmuxConfig;
            s && (this.currentTransmuxState = s);
            var K = s || x, w = K.contiguous, W = K.discontinuity, z = K.trackSwitch, H = K.accurateTimeOffset, j = K.timeOffset, Y = K.initSegmentChange, Z = k.audioCodec, q = k.videoCodec, ee = k.defaultInitPts, te = k.duration, ne = k.initSegmentData;
            (W || z || Y) && this.resetInitSegment(ne, Z, q, te), (W || Y) && this.resetInitialTimestamp(ee), w || this.resetContiguity();
            var ie = l(o, u);
            if (ie && ie.method === "AES-128") {
              var oe = this.getDecrypter();
              if (a.enableSoftwareAES) {
                var de = oe.softwareDecrypt(o, ie.key.buffer, ie.iv.buffer);
                if (!de)
                  return c.executeEnd = b(), n(m);
                o = new Uint8Array(de);
              } else
                return this.decryptionPromise = oe.webCryptoDecrypt(o, ie.key.buffer, ie.iv.buffer).then(function(me) {
                  var ve = v.push(me, null, m);
                  return v.decryptionPromise = null, ve;
                }), this.decryptionPromise;
            }
            this.needsProbing(o, W, z) && this.configureTransmuxer(o, k);
            var re = this.transmux(o, ie, j, H, m), le = this.currentTransmuxState;
            return le.contiguous = !0, le.discontinuity = !1, le.trackSwitch = !1, c.executeEnd = b(), re;
          }, r.flush = function(f) {
            var u = this, m = f.transmuxing;
            m.executeStart = b();
            var s = this.decrypter, v = this.currentTransmuxState, c = this.decryptionPromise;
            if (c)
              return c.then(function() {
                return u.flush(f);
              });
            var o = [], a = v.timeOffset;
            if (s) {
              var x = s.flush();
              x && o.push(this.push(x, null, f));
            }
            var k = this.demuxer, K = this.remuxer;
            if (!k || !K)
              return this.observer.emit(P.Events.ERROR, P.Events.ERROR, {
                type: y.ErrorTypes.MEDIA_ERROR,
                details: y.ErrorDetails.FRAG_PARSING_ERROR,
                fatal: !0,
                reason: "no demux matching with content found"
              }), m.executeEnd = b(), [n(f)];
            var w = k.flush(a);
            return t(w) ? w.then(function(W) {
              return u.flushRemux(o, W, f), o;
            }) : (this.flushRemux(o, w, f), o);
          }, r.flushRemux = function(f, u, m) {
            var s = u.audioTrack, v = u.videoTrack, c = u.id3Track, o = u.textTrack, a = this.currentTransmuxState, x = a.accurateTimeOffset, k = a.timeOffset;
            S.logger.log("[transmuxer.ts]: Flushed fragment " + m.sn + (m.part > -1 ? " p: " + m.part : "") + " of level " + m.level);
            var K = this.remuxer.remux(s, v, c, o, k, x, !0, this.id);
            f.push({
              remuxResult: K,
              chunkMeta: m
            }), m.transmuxing.executeEnd = b();
          }, r.resetInitialTimestamp = function(f) {
            var u = this.demuxer, m = this.remuxer;
            !u || !m || (u.resetTimeStamp(f), m.resetTimeStamp(f));
          }, r.resetContiguity = function() {
            var f = this.demuxer, u = this.remuxer;
            !f || !u || (f.resetContiguity(), u.resetNextTimestamp());
          }, r.resetInitSegment = function(f, u, m, s) {
            var v = this.demuxer, c = this.remuxer;
            !v || !c || (v.resetInitSegment(f, u, m, s), c.resetInitSegment(f, u, m));
          }, r.destroy = function() {
            this.demuxer && (this.demuxer.destroy(), this.demuxer = void 0), this.remuxer && (this.remuxer.destroy(), this.remuxer = void 0);
          }, r.transmux = function(f, u, m, s, v) {
            var c;
            return u && u.method === "SAMPLE-AES" ? c = this.transmuxSampleAes(f, u, m, s, v) : c = this.transmuxUnencrypted(f, m, s, v), c;
          }, r.transmuxUnencrypted = function(f, u, m, s) {
            var v = this.demuxer.demux(f, u, !1, !this.config.progressive), c = v.audioTrack, o = v.videoTrack, a = v.id3Track, x = v.textTrack, k = this.remuxer.remux(c, o, a, x, u, m, !1, this.id);
            return {
              remuxResult: k,
              chunkMeta: s
            };
          }, r.transmuxSampleAes = function(f, u, m, s, v) {
            var c = this;
            return this.demuxer.demuxSampleAes(f, u, m).then(function(o) {
              var a = c.remuxer.remux(o.audioTrack, o.videoTrack, o.id3Track, o.textTrack, m, s, !1, c.id);
              return {
                remuxResult: a,
                chunkMeta: v
              };
            });
          }, r.configureTransmuxer = function(f, u) {
            for (var m = this.config, s = this.observer, v = this.typeSupported, c = this.vendor, o = u.audioCodec, a = u.defaultInitPts, x = u.duration, k = u.initSegmentData, K = u.videoCodec, w, W = 0, z = _.length; W < z; W++)
              if (_[W].demux.probe(f)) {
                w = _[W];
                break;
              }
            w || (S.logger.warn("Failed to find demuxer by probing frag, treating as mp4 passthrough"), w = {
              demux: F.default,
              remux: p.default
            });
            var H = this.demuxer, j = this.remuxer, Y = w.remux, Z = w.demux;
            (!j || !(j instanceof Y)) && (this.remuxer = new Y(s, m, v, c)), (!H || !(H instanceof Z)) && (this.demuxer = new Z(s, m, v), this.probe = Z.probe), this.resetInitSegment(k, o, K, x), this.resetInitialTimestamp(a);
          }, r.needsProbing = function(f, u, m) {
            return !this.demuxer || !this.remuxer || u || m;
          }, r.getDecrypter = function() {
            var f = this.decrypter;
            return f || (f = this.decrypter = new O.default(this.observer, this.config)), f;
          }, i;
        }();
        function l(i, r) {
          var e = null;
          return i.byteLength > 0 && r != null && r.key != null && r.iv !== null && r.method != null && (e = r), e;
        }
        var n = function(r) {
          return {
            remuxResult: {},
            chunkMeta: r
          };
        };
        function t(i) {
          return "then" in i && i.then instanceof Function;
        }
        var d = function(r, e, f, u, m) {
          this.audioCodec = void 0, this.videoCodec = void 0, this.initSegmentData = void 0, this.duration = void 0, this.defaultInitPts = void 0, this.audioCodec = r, this.videoCodec = e, this.initSegmentData = f, this.duration = u, this.defaultInitPts = m;
        }, h = function(r, e, f, u, m, s) {
          this.discontinuity = void 0, this.contiguous = void 0, this.accurateTimeOffset = void 0, this.trackSwitch = void 0, this.timeOffset = void 0, this.initSegmentChange = void 0, this.discontinuity = r, this.contiguous = e, this.accurateTimeOffset = f, this.trackSwitch = u, this.timeOffset = m, this.initSegmentChange = s;
        };
      },
      "./src/demux/tsdemuxer.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          default: () => h
        });
        var P = g("./src/demux/adts.ts"), y = g("./src/demux/mpegaudio.ts"), O = g("./src/demux/exp-golomb.ts"), C = g("./src/demux/sample-aes.ts"), F = g("./src/events.ts"), R = g("./src/utils/mp4-tools.ts"), T = g("./src/utils/logger.ts"), D = g("./src/errors.ts"), p = g("./src/types/demuxer.ts");
        function S() {
          return S = Object.assign ? Object.assign.bind() : function(i) {
            for (var r = 1; r < arguments.length; r++) {
              var e = arguments[r];
              for (var f in e)
                Object.prototype.hasOwnProperty.call(e, f) && (i[f] = e[f]);
            }
            return i;
          }, S.apply(this, arguments);
        }
        var b = 188, _ = /* @__PURE__ */ function() {
          function i(e, f, u) {
            this.observer = void 0, this.config = void 0, this.typeSupported = void 0, this.sampleAes = null, this.pmtParsed = !1, this.audioCodec = void 0, this.videoCodec = void 0, this._duration = 0, this._pmtId = -1, this._avcTrack = void 0, this._audioTrack = void 0, this._id3Track = void 0, this._txtTrack = void 0, this.aacOverFlow = null, this.avcSample = null, this.remainderData = null, this.observer = e, this.config = f, this.typeSupported = u;
          }
          i.probe = function(f) {
            var u = i.syncOffset(f);
            return u > 0 && T.logger.warn("MPEG2-TS detected but first sync word found @ offset " + u), u !== -1;
          }, i.syncOffset = function(f) {
            for (var u = Math.min(b * 5, f.length - b * 2) + 1, m = 0; m < u; ) {
              if (f[m] === 71 && f[m + b] === 71)
                return m;
              m++;
            }
            return -1;
          }, i.createTrack = function(f, u) {
            return {
              container: f === "video" || f === "audio" ? "video/mp2t" : void 0,
              type: f,
              id: R.RemuxerTrackIdConfig[f],
              pid: -1,
              inputTimeScale: 9e4,
              sequenceNumber: 0,
              samples: [],
              dropped: 0,
              duration: f === "audio" ? u : void 0
            };
          };
          var r = i.prototype;
          return r.resetInitSegment = function(f, u, m, s) {
            this.pmtParsed = !1, this._pmtId = -1, this._avcTrack = i.createTrack("video"), this._audioTrack = i.createTrack("audio", s), this._id3Track = i.createTrack("id3"), this._txtTrack = i.createTrack("text"), this._audioTrack.segmentCodec = "aac", this.aacOverFlow = null, this.avcSample = null, this.remainderData = null, this.audioCodec = u, this.videoCodec = m, this._duration = s;
          }, r.resetTimeStamp = function() {
          }, r.resetContiguity = function() {
            var f = this._audioTrack, u = this._avcTrack, m = this._id3Track;
            f && (f.pesData = null), u && (u.pesData = null), m && (m.pesData = null), this.aacOverFlow = null, this.avcSample = null, this.remainderData = null;
          }, r.demux = function(f, u, m, s) {
            m === void 0 && (m = !1), s === void 0 && (s = !1), m || (this.sampleAes = null);
            var v, c = this._avcTrack, o = this._audioTrack, a = this._id3Track, x = this._txtTrack, k = c.pid, K = c.pesData, w = o.pid, W = a.pid, z = o.pesData, H = a.pesData, j = null, Y = this.pmtParsed, Z = this._pmtId, q = f.length;
            if (this.remainderData && (f = (0, R.appendUint8Array)(this.remainderData, f), q = f.length, this.remainderData = null), q < b && !s)
              return this.remainderData = f, {
                audioTrack: o,
                videoTrack: c,
                id3Track: a,
                textTrack: x
              };
            var ee = Math.max(0, i.syncOffset(f));
            q -= (q - ee) % b, q < f.byteLength && !s && (this.remainderData = new Uint8Array(f.buffer, q, f.buffer.byteLength - q));
            for (var te = 0, ne = ee; ne < q; ne += b)
              if (f[ne] === 71) {
                var ie = !!(f[ne + 1] & 64), oe = ((f[ne + 1] & 31) << 8) + f[ne + 2], de = (f[ne + 3] & 48) >> 4, re = void 0;
                if (de > 1) {
                  if (re = ne + 5 + f[ne + 4], re === ne + b)
                    continue;
                } else
                  re = ne + 4;
                switch (oe) {
                  case k:
                    ie && (K && (v = t(K)) && this.parseAVCPES(c, x, v, !1), K = {
                      data: [],
                      size: 0
                    }), K && (K.data.push(f.subarray(re, ne + b)), K.size += ne + b - re);
                    break;
                  case w:
                    if (ie) {
                      if (z && (v = t(z)))
                        switch (o.segmentCodec) {
                          case "aac":
                            this.parseAACPES(o, v);
                            break;
                          case "mp3":
                            this.parseMPEGPES(o, v);
                            break;
                        }
                      z = {
                        data: [],
                        size: 0
                      };
                    }
                    z && (z.data.push(f.subarray(re, ne + b)), z.size += ne + b - re);
                    break;
                  case W:
                    ie && (H && (v = t(H)) && this.parseID3PES(a, v), H = {
                      data: [],
                      size: 0
                    }), H && (H.data.push(f.subarray(re, ne + b)), H.size += ne + b - re);
                    break;
                  case 0:
                    ie && (re += f[re] + 1), Z = this._pmtId = l(f, re);
                    break;
                  case Z: {
                    ie && (re += f[re] + 1);
                    var le = n(f, re, this.typeSupported, m);
                    k = le.avc, k > 0 && (c.pid = k), w = le.audio, w > 0 && (o.pid = w, o.segmentCodec = le.segmentCodec), W = le.id3, W > 0 && (a.pid = W), j !== null && !Y && (T.logger.log("unknown PID '" + j + "' in TS found"), j = null, ne = ee - 188), Y = this.pmtParsed = !0;
                    break;
                  }
                  case 17:
                  case 8191:
                    break;
                  default:
                    j = oe;
                    break;
                }
              } else
                te++;
            te > 0 && this.observer.emit(F.Events.ERROR, F.Events.ERROR, {
              type: D.ErrorTypes.MEDIA_ERROR,
              details: D.ErrorDetails.FRAG_PARSING_ERROR,
              fatal: !1,
              reason: "Found " + te + " TS packet/s that do not start with 0x47"
            }), c.pesData = K, o.pesData = z, a.pesData = H;
            var me = {
              audioTrack: o,
              videoTrack: c,
              id3Track: a,
              textTrack: x
            };
            return s && this.extractRemainingSamples(me), me;
          }, r.flush = function() {
            var f = this.remainderData;
            this.remainderData = null;
            var u;
            return f ? u = this.demux(f, -1, !1, !0) : u = {
              videoTrack: this._avcTrack,
              audioTrack: this._audioTrack,
              id3Track: this._id3Track,
              textTrack: this._txtTrack
            }, this.extractRemainingSamples(u), this.sampleAes ? this.decrypt(u, this.sampleAes) : u;
          }, r.extractRemainingSamples = function(f) {
            var u = f.audioTrack, m = f.videoTrack, s = f.id3Track, v = f.textTrack, c = m.pesData, o = u.pesData, a = s.pesData, x;
            if (c && (x = t(c)) ? (this.parseAVCPES(m, v, x, !0), m.pesData = null) : m.pesData = c, o && (x = t(o))) {
              switch (u.segmentCodec) {
                case "aac":
                  this.parseAACPES(u, x);
                  break;
                case "mp3":
                  this.parseMPEGPES(u, x);
                  break;
              }
              u.pesData = null;
            } else
              o != null && o.size && T.logger.log("last AAC PES packet truncated,might overlap between fragments"), u.pesData = o;
            a && (x = t(a)) ? (this.parseID3PES(s, x), s.pesData = null) : s.pesData = a;
          }, r.demuxSampleAes = function(f, u, m) {
            var s = this.demux(f, m, !0, !this.config.progressive), v = this.sampleAes = new C.default(this.observer, this.config, u);
            return this.decrypt(s, v);
          }, r.decrypt = function(f, u) {
            return new Promise(function(m) {
              var s = f.audioTrack, v = f.videoTrack;
              s.samples && s.segmentCodec === "aac" ? u.decryptAacSamples(s.samples, 0, function() {
                v.samples ? u.decryptAvcSamples(v.samples, 0, 0, function() {
                  m(f);
                }) : m(f);
              }) : v.samples && u.decryptAvcSamples(v.samples, 0, 0, function() {
                m(f);
              });
            });
          }, r.destroy = function() {
            this._duration = 0;
          }, r.parseAVCPES = function(f, u, m, s) {
            var v = this, c = this.parseAVCNALu(f, m.data), o = this.avcSample, a, x = !1;
            m.data = null, o && c.length && !f.audFound && (d(o, f), o = this.avcSample = E(!1, m.pts, m.dts, "")), c.forEach(function(k) {
              switch (k.type) {
                case 1: {
                  a = !0, o || (o = v.avcSample = E(!0, m.pts, m.dts, "")), o.frame = !0;
                  var K = k.data;
                  if (x && K.length > 4) {
                    var w = new O.default(K).readSliceType();
                    (w === 2 || w === 4 || w === 7 || w === 9) && (o.key = !0);
                  }
                  break;
                }
                case 5:
                  a = !0, o || (o = v.avcSample = E(!0, m.pts, m.dts, "")), o.key = !0, o.frame = !0;
                  break;
                case 6: {
                  a = !0, (0, R.parseSEIMessageFromNALu)(k.data, 1, m.pts, u.samples);
                  break;
                }
                case 7:
                  if (a = !0, x = !0, !f.sps) {
                    var W = new O.default(k.data), z = W.readSPS();
                    f.width = z.width, f.height = z.height, f.pixelRatio = z.pixelRatio, f.sps = [k.data], f.duration = v._duration;
                    for (var H = k.data.subarray(1, 4), j = "avc1.", Y = 0; Y < 3; Y++) {
                      var Z = H[Y].toString(16);
                      Z.length < 2 && (Z = "0" + Z), j += Z;
                    }
                    f.codec = j;
                  }
                  break;
                case 8:
                  a = !0, f.pps || (f.pps = [k.data]);
                  break;
                case 9:
                  a = !1, f.audFound = !0, o && d(o, f), o = v.avcSample = E(!1, m.pts, m.dts, "");
                  break;
                case 12:
                  a = !0;
                  break;
                default:
                  a = !1, o && (o.debug += "unknown NAL " + k.type + " ");
                  break;
              }
              if (o && a) {
                var q = o.units;
                q.push(k);
              }
            }), s && o && (d(o, f), this.avcSample = null);
          }, r.getLastNalUnit = function(f) {
            var u, m = this.avcSample, s;
            if ((!m || m.units.length === 0) && (m = f[f.length - 1]), (u = m) !== null && u !== void 0 && u.units) {
              var v = m.units;
              s = v[v.length - 1];
            }
            return s;
          }, r.parseAVCNALu = function(f, u) {
            var m = u.byteLength, s = f.naluState || 0, v = s, c = [], o = 0, a, x, k, K = -1, w = 0;
            for (s === -1 && (K = 0, w = u[0] & 31, s = 0, o = 1); o < m; ) {
              if (a = u[o++], !s) {
                s = a ? 0 : 1;
                continue;
              }
              if (s === 1) {
                s = a ? 0 : 2;
                continue;
              }
              if (!a)
                s = 3;
              else if (a === 1) {
                if (K >= 0) {
                  var W = {
                    data: u.subarray(K, o - s - 1),
                    type: w
                  };
                  c.push(W);
                } else {
                  var z = this.getLastNalUnit(f.samples);
                  if (z && (v && o <= 4 - v && z.state && (z.data = z.data.subarray(0, z.data.byteLength - v)), x = o - s - 1, x > 0)) {
                    var H = new Uint8Array(z.data.byteLength + x);
                    H.set(z.data, 0), H.set(u.subarray(0, x), z.data.byteLength), z.data = H, z.state = 0;
                  }
                }
                o < m ? (k = u[o] & 31, K = o, w = k, s = 0) : s = -1;
              } else
                s = 0;
            }
            if (K >= 0 && s >= 0) {
              var j = {
                data: u.subarray(K, m),
                type: w,
                state: s
              };
              c.push(j);
            }
            if (c.length === 0) {
              var Y = this.getLastNalUnit(f.samples);
              if (Y) {
                var Z = new Uint8Array(Y.data.byteLength + u.byteLength);
                Z.set(Y.data, 0), Z.set(u, Y.data.byteLength), Y.data = Z;
              }
            }
            return f.naluState = s, c;
          }, r.parseAACPES = function(f, u) {
            var m = 0, s = this.aacOverFlow, v = u.data;
            if (s) {
              this.aacOverFlow = null;
              var c = s.missing, o = s.sample.unit.byteLength;
              if (c === -1) {
                var a = new Uint8Array(o + v.byteLength);
                a.set(s.sample.unit, 0), a.set(v, o), v = a;
              } else {
                var x = o - c;
                s.sample.unit.set(v.subarray(0, c), x), f.samples.push(s.sample), m = s.missing;
              }
            }
            var k, K;
            for (k = m, K = v.length; k < K - 1 && !P.isHeader(v, k); k++)
              ;
            if (k !== m) {
              var w, W;
              if (k < K - 1 ? (w = "AAC PES did not start with ADTS header,offset:" + k, W = !1) : (w = "no ADTS header found in AAC PES", W = !0), T.logger.warn("parsing error:" + w), this.observer.emit(F.Events.ERROR, F.Events.ERROR, {
                type: D.ErrorTypes.MEDIA_ERROR,
                details: D.ErrorDetails.FRAG_PARSING_ERROR,
                fatal: W,
                reason: w
              }), W)
                return;
            }
            P.initTrackConfig(f, this.observer, v, k, this.audioCodec);
            var z;
            if (u.pts !== void 0)
              z = u.pts;
            else if (s) {
              var H = P.getFrameDuration(f.samplerate);
              z = s.sample.pts + H;
            } else {
              T.logger.warn("[tsdemuxer]: AAC PES unknown PTS");
              return;
            }
            for (var j = 0, Y; k < K; )
              if (Y = P.appendFrame(f, v, k, z, j), k += Y.length, Y.missing) {
                this.aacOverFlow = Y;
                break;
              } else
                for (j++; k < K - 1 && !P.isHeader(v, k); k++)
                  ;
          }, r.parseMPEGPES = function(f, u) {
            var m = u.data, s = m.length, v = 0, c = 0, o = u.pts;
            if (o === void 0) {
              T.logger.warn("[tsdemuxer]: MPEG PES unknown PTS");
              return;
            }
            for (; c < s; )
              if (y.isHeader(m, c)) {
                var a = y.appendFrame(f, m, c, o, v);
                if (a)
                  c += a.length, v++;
                else
                  break;
              } else
                c++;
          }, r.parseID3PES = function(f, u) {
            if (u.pts === void 0) {
              T.logger.warn("[tsdemuxer]: ID3 PES unknown PTS");
              return;
            }
            var m = S({}, u, {
              type: this._avcTrack ? p.MetadataSchema.emsg : p.MetadataSchema.audioId3,
              duration: Number.POSITIVE_INFINITY
            });
            f.samples.push(m);
          }, i;
        }();
        function E(i, r, e, f) {
          return {
            key: i,
            frame: !1,
            pts: r,
            dts: e,
            units: [],
            debug: f,
            length: 0
          };
        }
        function l(i, r) {
          return (i[r + 10] & 31) << 8 | i[r + 11];
        }
        function n(i, r, e, f) {
          var u = {
            audio: -1,
            avc: -1,
            id3: -1,
            segmentCodec: "aac"
          }, m = (i[r + 1] & 15) << 8 | i[r + 2], s = r + 3 + m - 4, v = (i[r + 10] & 15) << 8 | i[r + 11];
          for (r += 12 + v; r < s; ) {
            var c = (i[r + 1] & 31) << 8 | i[r + 2];
            switch (i[r]) {
              case 207:
                if (!f) {
                  T.logger.log("ADTS AAC with AES-128-CBC frame encryption found in unencrypted stream");
                  break;
                }
              case 15:
                u.audio === -1 && (u.audio = c);
                break;
              case 21:
                u.id3 === -1 && (u.id3 = c);
                break;
              case 219:
                if (!f) {
                  T.logger.log("H.264 with AES-128-CBC slice encryption found in unencrypted stream");
                  break;
                }
              case 27:
                u.avc === -1 && (u.avc = c);
                break;
              case 3:
              case 4:
                e.mpeg !== !0 && e.mp3 !== !0 ? T.logger.log("MPEG audio found, not supported in this browser") : u.audio === -1 && (u.audio = c, u.segmentCodec = "mp3");
                break;
              case 36:
                T.logger.warn("Unsupported HEVC stream type found");
                break;
            }
            r += ((i[r + 3] & 15) << 8 | i[r + 4]) + 5;
          }
          return u;
        }
        function t(i) {
          var r = 0, e, f, u, m, s, v = i.data;
          if (!i || i.size === 0)
            return null;
          for (; v[0].length < 19 && v.length > 1; ) {
            var c = new Uint8Array(v[0].length + v[1].length);
            c.set(v[0]), c.set(v[1], v[0].length), v[0] = c, v.splice(1, 1);
          }
          e = v[0];
          var o = (e[0] << 16) + (e[1] << 8) + e[2];
          if (o === 1) {
            if (f = (e[4] << 8) + e[5], f && f > i.size - 6)
              return null;
            var a = e[7];
            a & 192 && (m = (e[9] & 14) * 536870912 + (e[10] & 255) * 4194304 + (e[11] & 254) * 16384 + (e[12] & 255) * 128 + (e[13] & 254) / 2, a & 64 ? (s = (e[14] & 14) * 536870912 + (e[15] & 255) * 4194304 + (e[16] & 254) * 16384 + (e[17] & 255) * 128 + (e[18] & 254) / 2, m - s > 54e5 && (T.logger.warn(Math.round((m - s) / 9e4) + "s delta between PTS and DTS, align them"), m = s)) : s = m), u = e[8];
            var x = u + 9;
            if (i.size <= x)
              return null;
            i.size -= x;
            for (var k = new Uint8Array(i.size), K = 0, w = v.length; K < w; K++) {
              e = v[K];
              var W = e.byteLength;
              if (x)
                if (x > W) {
                  x -= W;
                  continue;
                } else
                  e = e.subarray(x), W -= x, x = 0;
              k.set(e, r), r += W;
            }
            return f && (f -= u + 3), {
              data: k,
              pts: m,
              dts: s,
              len: f
            };
          }
          return null;
        }
        function d(i, r) {
          if (i.units.length && i.frame) {
            if (i.pts === void 0) {
              var e = r.samples, f = e.length;
              if (f) {
                var u = e[f - 1];
                i.pts = u.pts, i.dts = u.dts;
              } else {
                r.dropped++;
                return;
              }
            }
            r.samples.push(i);
          }
          i.debug.length && T.logger.log(i.pts + "/" + i.dts + ":" + i.debug);
        }
        const h = _;
      },
      "./src/demux/webworkify-webpack.js": (U, M, g) => {
        g.r(M), g.d(M, {
          default: () => S
        });
        var P = function() {
          var _ = ENTRY_MODULE, E = {};
          function l(t) {
            var d = E[t];
            if (d !== void 0)
              return d.exports;
            var h = E[t] = {
              exports: {}
            };
            return _[t].call(h.exports, h, h.exports, l), h.exports;
          }
          l.m = _, function() {
            l.n = function(t) {
              var d = t && t.__esModule ? function() {
                return t.default;
              } : function() {
                return t;
              };
              return l.d(d, {
                a: d
              }), d;
            };
          }(), function() {
            l.d = function(t, d) {
              for (var h in d)
                l.o(d, h) && !l.o(t, h) && Object.defineProperty(t, h, {
                  enumerable: !0,
                  get: d[h]
                });
            };
          }(), function() {
            l.o = function(t, d) {
              return Object.prototype.hasOwnProperty.call(t, d);
            };
          }(), function() {
            l.r = function(t) {
              typeof Symbol < "u" && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, {
                value: "Module"
              }), Object.defineProperty(t, "__esModule", {
                value: !0
              });
            };
          }();
          var n = l(ENTRY_MODULE);
          return n.default || n;
        };
        P.toString();
        var y = "[\\.|\\-|\\+|\\w|/|@]+", O = "\\(\\s*(/\\*.*?\\*/)?\\s*.*?(" + y + ").*?\\)";
        function C(b) {
          return (b + "").replace(/[.?*+^$[\]\\(){}|-]/g, "\\$&");
        }
        function F(b) {
          return !isNaN(1 * b);
        }
        function R(b, _, E) {
          var l = {};
          l[E] = [];
          var n = _.toString(), t = n.match(/^function\s?\w*\(\w+,\s*\w+,\s*(\w+)\)/) || n.match(/^\(\w+,\s*\w+,\s*(\w+)\)\s?\=\s?\>/);
          if (!t)
            return l;
          for (var d = t[1], h = new RegExp("(\\\\n|\\W)" + C(d) + O, "g"), i; i = h.exec(n); )
            i[3] !== "dll-reference" && l[E].push(i[3]);
          for (h = new RegExp("\\(" + C(d) + '\\("(dll-reference\\s(' + y + '))"\\)\\)' + O, "g"); i = h.exec(n); )
            b[i[2]] || (l[E].push(i[1]), b[i[2]] = g(i[1]).m), l[i[2]] = l[i[2]] || [], l[i[2]].push(i[4]);
          for (var r = Object.keys(l), e = 0; e < r.length; e++)
            for (var f = 0; f < l[r[e]].length; f++)
              F(l[r[e]][f]) && (l[r[e]][f] = 1 * l[r[e]][f]);
          return l;
        }
        function T(b) {
          var _ = Object.keys(b);
          return _.reduce(function(E, l) {
            return E || b[l].length > 0;
          }, !1);
        }
        function D(b, _) {
          for (var E = {
            main: [_]
          }, l = {
            main: []
          }, n = {
            main: {}
          }; T(E); )
            for (var t = Object.keys(E), d = 0; d < t.length; d++) {
              var h = t[d], i = E[h], r = i.pop();
              if (n[h] = n[h] || {}, !(n[h][r] || !b[h][r])) {
                n[h][r] = !0, l[h] = l[h] || [], l[h].push(r);
                for (var e = R(b, b[h][r], h), f = Object.keys(e), u = 0; u < f.length; u++)
                  E[f[u]] = E[f[u]] || [], E[f[u]] = E[f[u]].concat(e[f[u]]);
              }
            }
          return l;
        }
        function p(b, _, E, l) {
          var n = b[l].map(function(d) {
            return '"' + d + '": ' + _[l][d].toString();
          }).join(","), t = P.toString().split("ENTRY_MODULE");
          return t[0] + "{" + n + "}" + t[1] + '"' + E + '"' + t[2];
        }
        function S(b, _) {
          _ = _ || {};
          var E = {
            main: g.m
          }, l = _.all ? {
            main: Object.keys(E.main)
          } : D(E, b), n = "";
          Object.keys(l).filter(function(r) {
            return r !== "main";
          }).forEach(function(r) {
            for (var e = 0; l[r][e]; )
              e++;
            l[r].push(e), E[r][e] = "(function(module, exports, __webpack_require__) { module.exports = __webpack_require__; })", n = n + ("var " + r + " = (" + p(l, E, e, modules) + `)();
`);
          }), n = n + ("((" + p(l, E, b, "main") + ")())(self);");
          var t = new window.Blob([n], {
            type: "text/javascript"
          }), d = window.URL || window.webkitURL || window.mozURL || window.msURL, h = d.createObjectURL(t), i = new window.Worker(h);
          return i.objectURL = h, i;
        }
      },
      "./src/errors.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          ErrorDetails: () => y,
          ErrorTypes: () => P
        });
        var P;
        (function(O) {
          O.NETWORK_ERROR = "networkError", O.MEDIA_ERROR = "mediaError", O.KEY_SYSTEM_ERROR = "keySystemError", O.MUX_ERROR = "muxError", O.OTHER_ERROR = "otherError";
        })(P || (P = {}));
        var y;
        (function(O) {
          O.KEY_SYSTEM_NO_KEYS = "keySystemNoKeys", O.KEY_SYSTEM_NO_ACCESS = "keySystemNoAccess", O.KEY_SYSTEM_NO_SESSION = "keySystemNoSession", O.KEY_SYSTEM_LICENSE_REQUEST_FAILED = "keySystemLicenseRequestFailed", O.KEY_SYSTEM_NO_INIT_DATA = "keySystemNoInitData", O.MANIFEST_LOAD_ERROR = "manifestLoadError", O.MANIFEST_LOAD_TIMEOUT = "manifestLoadTimeOut", O.MANIFEST_PARSING_ERROR = "manifestParsingError", O.MANIFEST_INCOMPATIBLE_CODECS_ERROR = "manifestIncompatibleCodecsError", O.LEVEL_EMPTY_ERROR = "levelEmptyError", O.LEVEL_LOAD_ERROR = "levelLoadError", O.LEVEL_LOAD_TIMEOUT = "levelLoadTimeOut", O.LEVEL_SWITCH_ERROR = "levelSwitchError", O.AUDIO_TRACK_LOAD_ERROR = "audioTrackLoadError", O.AUDIO_TRACK_LOAD_TIMEOUT = "audioTrackLoadTimeOut", O.SUBTITLE_LOAD_ERROR = "subtitleTrackLoadError", O.SUBTITLE_TRACK_LOAD_TIMEOUT = "subtitleTrackLoadTimeOut", O.FRAG_LOAD_ERROR = "fragLoadError", O.FRAG_LOAD_TIMEOUT = "fragLoadTimeOut", O.FRAG_DECRYPT_ERROR = "fragDecryptError", O.FRAG_PARSING_ERROR = "fragParsingError", O.REMUX_ALLOC_ERROR = "remuxAllocError", O.KEY_LOAD_ERROR = "keyLoadError", O.KEY_LOAD_TIMEOUT = "keyLoadTimeOut", O.BUFFER_ADD_CODEC_ERROR = "bufferAddCodecError", O.BUFFER_INCOMPATIBLE_CODECS_ERROR = "bufferIncompatibleCodecsError", O.BUFFER_APPEND_ERROR = "bufferAppendError", O.BUFFER_APPENDING_ERROR = "bufferAppendingError", O.BUFFER_STALLED_ERROR = "bufferStalledError", O.BUFFER_FULL_ERROR = "bufferFullError", O.BUFFER_SEEK_OVER_HOLE = "bufferSeekOverHole", O.BUFFER_NUDGE_ON_STALL = "bufferNudgeOnStall", O.INTERNAL_EXCEPTION = "internalException", O.INTERNAL_ABORTED = "aborted", O.UNKNOWN = "unknown";
        })(y || (y = {}));
      },
      "./src/events.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          Events: () => P
        });
        var P;
        (function(y) {
          y.MEDIA_ATTACHING = "hlsMediaAttaching", y.MEDIA_ATTACHED = "hlsMediaAttached", y.MEDIA_DETACHING = "hlsMediaDetaching", y.MEDIA_DETACHED = "hlsMediaDetached", y.BUFFER_RESET = "hlsBufferReset", y.BUFFER_CODECS = "hlsBufferCodecs", y.BUFFER_CREATED = "hlsBufferCreated", y.BUFFER_APPENDING = "hlsBufferAppending", y.BUFFER_APPENDED = "hlsBufferAppended", y.BUFFER_EOS = "hlsBufferEos", y.BUFFER_FLUSHING = "hlsBufferFlushing", y.BUFFER_FLUSHED = "hlsBufferFlushed", y.MANIFEST_LOADING = "hlsManifestLoading", y.MANIFEST_LOADED = "hlsManifestLoaded", y.MANIFEST_PARSED = "hlsManifestParsed", y.LEVEL_SWITCHING = "hlsLevelSwitching", y.LEVEL_SWITCHED = "hlsLevelSwitched", y.LEVEL_LOADING = "hlsLevelLoading", y.LEVEL_LOADED = "hlsLevelLoaded", y.LEVEL_UPDATED = "hlsLevelUpdated", y.LEVEL_PTS_UPDATED = "hlsLevelPtsUpdated", y.LEVELS_UPDATED = "hlsLevelsUpdated", y.AUDIO_TRACKS_UPDATED = "hlsAudioTracksUpdated", y.AUDIO_TRACK_SWITCHING = "hlsAudioTrackSwitching", y.AUDIO_TRACK_SWITCHED = "hlsAudioTrackSwitched", y.AUDIO_TRACK_LOADING = "hlsAudioTrackLoading", y.AUDIO_TRACK_LOADED = "hlsAudioTrackLoaded", y.SUBTITLE_TRACKS_UPDATED = "hlsSubtitleTracksUpdated", y.SUBTITLE_TRACKS_CLEARED = "hlsSubtitleTracksCleared", y.SUBTITLE_TRACK_SWITCH = "hlsSubtitleTrackSwitch", y.SUBTITLE_TRACK_LOADING = "hlsSubtitleTrackLoading", y.SUBTITLE_TRACK_LOADED = "hlsSubtitleTrackLoaded", y.SUBTITLE_FRAG_PROCESSED = "hlsSubtitleFragProcessed", y.CUES_PARSED = "hlsCuesParsed", y.NON_NATIVE_TEXT_TRACKS_FOUND = "hlsNonNativeTextTracksFound", y.INIT_PTS_FOUND = "hlsInitPtsFound", y.FRAG_LOADING = "hlsFragLoading", y.FRAG_LOAD_EMERGENCY_ABORTED = "hlsFragLoadEmergencyAborted", y.FRAG_LOADED = "hlsFragLoaded", y.FRAG_DECRYPTED = "hlsFragDecrypted", y.FRAG_PARSING_INIT_SEGMENT = "hlsFragParsingInitSegment", y.FRAG_PARSING_USERDATA = "hlsFragParsingUserdata", y.FRAG_PARSING_METADATA = "hlsFragParsingMetadata", y.FRAG_PARSED = "hlsFragParsed", y.FRAG_BUFFERED = "hlsFragBuffered", y.FRAG_CHANGED = "hlsFragChanged", y.FPS_DROP = "hlsFpsDrop", y.FPS_DROP_LEVEL_CAPPING = "hlsFpsDropLevelCapping", y.ERROR = "hlsError", y.DESTROYING = "hlsDestroying", y.KEY_LOADING = "hlsKeyLoading", y.KEY_LOADED = "hlsKeyLoaded", y.LIVE_BACK_BUFFER_REACHED = "hlsLiveBackBufferReached", y.BACK_BUFFER_REACHED = "hlsBackBufferReached";
        })(P || (P = {}));
      },
      "./src/hls.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          default: () => d
        });
        var P = g("./node_modules/url-toolkit/src/url-toolkit.js"), y = g("./src/loader/playlist-loader.ts"), O = g("./src/loader/key-loader.ts"), C = g("./src/controller/id3-track-controller.ts"), F = g("./src/controller/latency-controller.ts"), R = g("./src/controller/level-controller.ts"), T = g("./src/controller/fragment-tracker.ts"), D = g("./src/controller/stream-controller.ts"), p = g("./src/is-supported.ts"), S = g("./src/utils/logger.ts"), b = g("./src/config.ts"), _ = g("./node_modules/eventemitter3/index.js"), E = g("./src/events.ts"), l = g("./src/errors.ts");
        function n(h, i) {
          for (var r = 0; r < i.length; r++) {
            var e = i[r];
            e.enumerable = e.enumerable || !1, e.configurable = !0, "value" in e && (e.writable = !0), Object.defineProperty(h, e.key, e);
          }
        }
        function t(h, i, r) {
          return i && n(h.prototype, i), r && n(h, r), Object.defineProperty(h, "prototype", { writable: !1 }), h;
        }
        var d = /* @__PURE__ */ function() {
          h.isSupported = function() {
            return (0, p.isSupported)();
          };
          function h(r) {
            r === void 0 && (r = {}), this.config = void 0, this.userConfig = void 0, this.coreComponents = void 0, this.networkControllers = void 0, this._emitter = new _.EventEmitter(), this._autoLevelCapping = void 0, this.abrController = void 0, this.bufferController = void 0, this.capLevelController = void 0, this.latencyController = void 0, this.levelController = void 0, this.streamController = void 0, this.audioTrackController = void 0, this.subtitleTrackController = void 0, this.emeController = void 0, this.cmcdController = void 0, this._media = null, this.url = null;
            var e = this.config = (0, b.mergeConfig)(h.DefaultConfig, r);
            this.userConfig = r, (0, S.enableLogs)(e.debug, "Hls instance"), this._autoLevelCapping = -1, e.progressive && (0, b.enableStreamingMode)(e);
            var f = e.abrController, u = e.bufferController, m = e.capLevelController, s = e.fpsController, v = this.abrController = new f(this), c = this.bufferController = new u(this), o = this.capLevelController = new m(this), a = new s(this), x = new y.default(this), k = new O.default(this), K = new C.default(this), w = this.levelController = new R.default(this), W = new T.FragmentTracker(this), z = this.streamController = new D.default(this, W);
            o.setStreamController(z), a.setStreamController(z);
            var H = [x, k, w, z];
            this.networkControllers = H;
            var j = [v, c, o, a, K, W];
            this.audioTrackController = this.createController(e.audioTrackController, null, H), this.createController(e.audioStreamController, W, H), this.subtitleTrackController = this.createController(e.subtitleTrackController, null, H), this.createController(e.subtitleStreamController, W, H), this.createController(e.timelineController, null, j), this.emeController = this.createController(e.emeController, null, j), this.cmcdController = this.createController(e.cmcdController, null, j), this.latencyController = this.createController(F.default, null, j), this.coreComponents = j;
          }
          var i = h.prototype;
          return i.createController = function(e, f, u) {
            if (e) {
              var m = f ? new e(this, f) : new e(this);
              return u && u.push(m), m;
            }
            return null;
          }, i.on = function(e, f, u) {
            u === void 0 && (u = this), this._emitter.on(e, f, u);
          }, i.once = function(e, f, u) {
            u === void 0 && (u = this), this._emitter.once(e, f, u);
          }, i.removeAllListeners = function(e) {
            this._emitter.removeAllListeners(e);
          }, i.off = function(e, f, u, m) {
            u === void 0 && (u = this), this._emitter.off(e, f, u, m);
          }, i.listeners = function(e) {
            return this._emitter.listeners(e);
          }, i.emit = function(e, f, u) {
            return this._emitter.emit(e, f, u);
          }, i.trigger = function(e, f) {
            if (this.config.debug)
              return this.emit(e, e, f);
            try {
              return this.emit(e, e, f);
            } catch (u) {
              S.logger.error("An internal error happened while handling event " + e + '. Error message: "' + u.message + '". Here is a stacktrace:', u), this.trigger(E.Events.ERROR, {
                type: l.ErrorTypes.OTHER_ERROR,
                details: l.ErrorDetails.INTERNAL_EXCEPTION,
                fatal: !1,
                event: e,
                error: u
              });
            }
            return !1;
          }, i.listenerCount = function(e) {
            return this._emitter.listenerCount(e);
          }, i.destroy = function() {
            S.logger.log("destroy"), this.trigger(E.Events.DESTROYING, void 0), this.detachMedia(), this.removeAllListeners(), this._autoLevelCapping = -1, this.url = null, this.networkControllers.forEach(function(e) {
              return e.destroy();
            }), this.networkControllers.length = 0, this.coreComponents.forEach(function(e) {
              return e.destroy();
            }), this.coreComponents.length = 0;
          }, i.attachMedia = function(e) {
            S.logger.log("attachMedia"), this._media = e, this.trigger(E.Events.MEDIA_ATTACHING, {
              media: e
            });
          }, i.detachMedia = function() {
            S.logger.log("detachMedia"), this.trigger(E.Events.MEDIA_DETACHING, void 0), this._media = null;
          }, i.loadSource = function(e) {
            this.stopLoad();
            var f = this.media, u = this.url, m = this.url = P.buildAbsoluteURL(self.location.href, e, {
              alwaysNormalize: !0
            });
            S.logger.log("loadSource:" + m), f && u && u !== m && this.bufferController.hasSourceTypes() && (this.detachMedia(), this.attachMedia(f)), this.trigger(E.Events.MANIFEST_LOADING, {
              url: e
            });
          }, i.startLoad = function(e) {
            e === void 0 && (e = -1), S.logger.log("startLoad(" + e + ")"), this.networkControllers.forEach(function(f) {
              f.startLoad(e);
            });
          }, i.stopLoad = function() {
            S.logger.log("stopLoad"), this.networkControllers.forEach(function(e) {
              e.stopLoad();
            });
          }, i.swapAudioCodec = function() {
            S.logger.log("swapAudioCodec"), this.streamController.swapAudioCodec();
          }, i.recoverMediaError = function() {
            S.logger.log("recoverMediaError");
            var e = this._media;
            this.detachMedia(), e && this.attachMedia(e);
          }, i.removeLevel = function(e, f) {
            f === void 0 && (f = 0), this.levelController.removeLevel(e, f);
          }, t(h, [{
            key: "levels",
            get: function() {
              var e = this.levelController.levels;
              return e || [];
            }
          }, {
            key: "currentLevel",
            get: function() {
              return this.streamController.currentLevel;
            },
            set: function(e) {
              S.logger.log("set currentLevel:" + e), this.loadLevel = e, this.abrController.clearTimer(), this.streamController.immediateLevelSwitch();
            }
          }, {
            key: "nextLevel",
            get: function() {
              return this.streamController.nextLevel;
            },
            set: function(e) {
              S.logger.log("set nextLevel:" + e), this.levelController.manualLevel = e, this.streamController.nextLevelSwitch();
            }
          }, {
            key: "loadLevel",
            get: function() {
              return this.levelController.level;
            },
            set: function(e) {
              S.logger.log("set loadLevel:" + e), this.levelController.manualLevel = e;
            }
          }, {
            key: "nextLoadLevel",
            get: function() {
              return this.levelController.nextLoadLevel;
            },
            set: function(e) {
              this.levelController.nextLoadLevel = e;
            }
          }, {
            key: "firstLevel",
            get: function() {
              return Math.max(this.levelController.firstLevel, this.minAutoLevel);
            },
            set: function(e) {
              S.logger.log("set firstLevel:" + e), this.levelController.firstLevel = e;
            }
          }, {
            key: "startLevel",
            get: function() {
              return this.levelController.startLevel;
            },
            set: function(e) {
              S.logger.log("set startLevel:" + e), e !== -1 && (e = Math.max(e, this.minAutoLevel)), this.levelController.startLevel = e;
            }
          }, {
            key: "capLevelToPlayerSize",
            get: function() {
              return this.config.capLevelToPlayerSize;
            },
            set: function(e) {
              var f = !!e;
              f !== this.config.capLevelToPlayerSize && (f ? this.capLevelController.startCapping() : (this.capLevelController.stopCapping(), this.autoLevelCapping = -1, this.streamController.nextLevelSwitch()), this.config.capLevelToPlayerSize = f);
            }
          }, {
            key: "autoLevelCapping",
            get: function() {
              return this._autoLevelCapping;
            },
            set: function(e) {
              this._autoLevelCapping !== e && (S.logger.log("set autoLevelCapping:" + e), this._autoLevelCapping = e);
            }
          }, {
            key: "bandwidthEstimate",
            get: function() {
              var e = this.abrController.bwEstimator;
              return e ? e.getEstimate() : NaN;
            }
          }, {
            key: "autoLevelEnabled",
            get: function() {
              return this.levelController.manualLevel === -1;
            }
          }, {
            key: "manualLevel",
            get: function() {
              return this.levelController.manualLevel;
            }
          }, {
            key: "minAutoLevel",
            get: function() {
              var e = this.levels, f = this.config.minAutoBitrate;
              if (!e)
                return 0;
              for (var u = e.length, m = 0; m < u; m++)
                if (e[m].maxBitrate >= f)
                  return m;
              return 0;
            }
          }, {
            key: "maxAutoLevel",
            get: function() {
              var e = this.levels, f = this.autoLevelCapping, u;
              return f === -1 && e && e.length ? u = e.length - 1 : u = f, u;
            }
          }, {
            key: "nextAutoLevel",
            get: function() {
              return Math.min(Math.max(this.abrController.nextAutoLevel, this.minAutoLevel), this.maxAutoLevel);
            },
            set: function(e) {
              this.abrController.nextAutoLevel = Math.max(this.minAutoLevel, e);
            }
          }, {
            key: "playingDate",
            get: function() {
              return this.streamController.currentProgramDateTime;
            }
          }, {
            key: "mainForwardBufferInfo",
            get: function() {
              return this.streamController.getMainFwdBufferInfo();
            }
          }, {
            key: "audioTracks",
            get: function() {
              var e = this.audioTrackController;
              return e ? e.audioTracks : [];
            }
          }, {
            key: "audioTrack",
            get: function() {
              var e = this.audioTrackController;
              return e ? e.audioTrack : -1;
            },
            set: function(e) {
              var f = this.audioTrackController;
              f && (f.audioTrack = e);
            }
          }, {
            key: "subtitleTracks",
            get: function() {
              var e = this.subtitleTrackController;
              return e ? e.subtitleTracks : [];
            }
          }, {
            key: "subtitleTrack",
            get: function() {
              var e = this.subtitleTrackController;
              return e ? e.subtitleTrack : -1;
            },
            set: function(e) {
              var f = this.subtitleTrackController;
              f && (f.subtitleTrack = e);
            }
          }, {
            key: "media",
            get: function() {
              return this._media;
            }
          }, {
            key: "subtitleDisplay",
            get: function() {
              var e = this.subtitleTrackController;
              return e ? e.subtitleDisplay : !1;
            },
            set: function(e) {
              var f = this.subtitleTrackController;
              f && (f.subtitleDisplay = e);
            }
          }, {
            key: "lowLatencyMode",
            get: function() {
              return this.config.lowLatencyMode;
            },
            set: function(e) {
              this.config.lowLatencyMode = e;
            }
          }, {
            key: "liveSyncPosition",
            get: function() {
              return this.latencyController.liveSyncPosition;
            }
          }, {
            key: "latency",
            get: function() {
              return this.latencyController.latency;
            }
          }, {
            key: "maxLatency",
            get: function() {
              return this.latencyController.maxLatency;
            }
          }, {
            key: "targetLatency",
            get: function() {
              return this.latencyController.targetLatency;
            }
          }, {
            key: "drift",
            get: function() {
              return this.latencyController.drift;
            }
          }, {
            key: "forceStartLoad",
            get: function() {
              return this.streamController.forceStartLoad;
            }
          }], [{
            key: "version",
            get: function() {
              return "1.2.5";
            }
          }, {
            key: "Events",
            get: function() {
              return E.Events;
            }
          }, {
            key: "ErrorTypes",
            get: function() {
              return l.ErrorTypes;
            }
          }, {
            key: "ErrorDetails",
            get: function() {
              return l.ErrorDetails;
            }
          }, {
            key: "DefaultConfig",
            get: function() {
              return h.defaultConfig ? h.defaultConfig : b.hlsDefaultConfig;
            },
            set: function(e) {
              h.defaultConfig = e;
            }
          }]), h;
        }();
        d.defaultConfig = void 0;
      },
      "./src/is-supported.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          changeTypeSupported: () => C,
          isSupported: () => O
        });
        var P = g("./src/utils/mediasource-helper.ts");
        function y() {
          return self.SourceBuffer || self.WebKitSourceBuffer;
        }
        function O() {
          var F = (0, P.getMediaSource)();
          if (!F)
            return !1;
          var R = y(), T = F && typeof F.isTypeSupported == "function" && F.isTypeSupported('video/mp4; codecs="avc1.42E01E,mp4a.40.2"'), D = !R || R.prototype && typeof R.prototype.appendBuffer == "function" && typeof R.prototype.remove == "function";
          return !!T && !!D;
        }
        function C() {
          var F, R = y();
          return typeof (R == null || (F = R.prototype) === null || F === void 0 ? void 0 : F.changeType) == "function";
        }
      },
      "./src/loader/date-range.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          DateRange: () => D,
          DateRangeAttribute: () => T
        });
        var P = g("./src/polyfills/number.ts"), y = g("./src/utils/attr-list.ts"), O = g("./src/utils/logger.ts");
        function C() {
          return C = Object.assign ? Object.assign.bind() : function(p) {
            for (var S = 1; S < arguments.length; S++) {
              var b = arguments[S];
              for (var _ in b)
                Object.prototype.hasOwnProperty.call(b, _) && (p[_] = b[_]);
            }
            return p;
          }, C.apply(this, arguments);
        }
        function F(p, S) {
          for (var b = 0; b < S.length; b++) {
            var _ = S[b];
            _.enumerable = _.enumerable || !1, _.configurable = !0, "value" in _ && (_.writable = !0), Object.defineProperty(p, _.key, _);
          }
        }
        function R(p, S, b) {
          return S && F(p.prototype, S), b && F(p, b), Object.defineProperty(p, "prototype", { writable: !1 }), p;
        }
        var T;
        (function(p) {
          p.ID = "ID", p.CLASS = "CLASS", p.START_DATE = "START-DATE", p.DURATION = "DURATION", p.END_DATE = "END-DATE", p.END_ON_NEXT = "END-ON-NEXT", p.PLANNED_DURATION = "PLANNED-DURATION", p.SCTE35_OUT = "SCTE35-OUT", p.SCTE35_IN = "SCTE35-IN";
        })(T || (T = {}));
        var D = /* @__PURE__ */ function() {
          function p(S, b) {
            if (this.attr = void 0, this._startDate = void 0, this._endDate = void 0, this._badValueForSameId = void 0, b) {
              var _ = b.attr;
              for (var E in _)
                if (Object.prototype.hasOwnProperty.call(S, E) && S[E] !== _[E]) {
                  O.logger.warn('DATERANGE tag attribute: "' + E + '" does not match for tags with ID: "' + S.ID + '"'), this._badValueForSameId = E;
                  break;
                }
              S = C(new y.AttrList({}), _, S);
            }
            if (this.attr = S, this._startDate = new Date(S[T.START_DATE]), T.END_DATE in this.attr) {
              var l = new Date(this.attr[T.END_DATE]);
              (0, P.isFiniteNumber)(l.getTime()) && (this._endDate = l);
            }
          }
          return R(p, [{
            key: "id",
            get: function() {
              return this.attr.ID;
            }
          }, {
            key: "class",
            get: function() {
              return this.attr.CLASS;
            }
          }, {
            key: "startDate",
            get: function() {
              return this._startDate;
            }
          }, {
            key: "endDate",
            get: function() {
              if (this._endDate)
                return this._endDate;
              var b = this.duration;
              return b !== null ? new Date(this._startDate.getTime() + b * 1e3) : null;
            }
          }, {
            key: "duration",
            get: function() {
              if (T.DURATION in this.attr) {
                var b = this.attr.decimalFloatingPoint(T.DURATION);
                if ((0, P.isFiniteNumber)(b))
                  return b;
              } else if (this._endDate)
                return (this._endDate.getTime() - this._startDate.getTime()) / 1e3;
              return null;
            }
          }, {
            key: "plannedDuration",
            get: function() {
              return T.PLANNED_DURATION in this.attr ? this.attr.decimalFloatingPoint(T.PLANNED_DURATION) : null;
            }
          }, {
            key: "endOnNext",
            get: function() {
              return this.attr.bool(T.END_ON_NEXT);
            }
          }, {
            key: "isValid",
            get: function() {
              return !!this.id && !this._badValueForSameId && (0, P.isFiniteNumber)(this.startDate.getTime()) && (this.duration === null || this.duration >= 0) && (!this.endOnNext || !!this.class);
            }
          }]), p;
        }();
      },
      "./src/loader/fragment-loader.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          LoadError: () => E,
          default: () => b
        });
        var P = g("./src/polyfills/number.ts"), y = g("./src/errors.ts");
        function O(l, n) {
          l.prototype = Object.create(n.prototype), l.prototype.constructor = l, D(l, n);
        }
        function C(l) {
          var n = typeof Map == "function" ? /* @__PURE__ */ new Map() : void 0;
          return C = function(d) {
            if (d === null || !T(d))
              return d;
            if (typeof d != "function")
              throw new TypeError("Super expression must either be null or a function");
            if (typeof n < "u") {
              if (n.has(d))
                return n.get(d);
              n.set(d, h);
            }
            function h() {
              return F(d, arguments, p(this).constructor);
            }
            return h.prototype = Object.create(d.prototype, { constructor: { value: h, enumerable: !1, writable: !0, configurable: !0 } }), D(h, d);
          }, C(l);
        }
        function F(l, n, t) {
          return R() ? F = Reflect.construct.bind() : F = function(h, i, r) {
            var e = [null];
            e.push.apply(e, i);
            var f = Function.bind.apply(h, e), u = new f();
            return r && D(u, r.prototype), u;
          }, F.apply(null, arguments);
        }
        function R() {
          if (typeof Reflect > "u" || !Reflect.construct || Reflect.construct.sham)
            return !1;
          if (typeof Proxy == "function")
            return !0;
          try {
            return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
            })), !0;
          } catch {
            return !1;
          }
        }
        function T(l) {
          return Function.toString.call(l).indexOf("[native code]") !== -1;
        }
        function D(l, n) {
          return D = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(d, h) {
            return d.__proto__ = h, d;
          }, D(l, n);
        }
        function p(l) {
          return p = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function(t) {
            return t.__proto__ || Object.getPrototypeOf(t);
          }, p(l);
        }
        var S = Math.pow(2, 17), b = /* @__PURE__ */ function() {
          function l(t) {
            this.config = void 0, this.loader = null, this.partLoadTimeout = -1, this.config = t;
          }
          var n = l.prototype;
          return n.destroy = function() {
            this.loader && (this.loader.destroy(), this.loader = null);
          }, n.abort = function() {
            this.loader && this.loader.abort();
          }, n.load = function(d, h) {
            var i = this, r = d.url;
            if (!r)
              return Promise.reject(new E({
                type: y.ErrorTypes.NETWORK_ERROR,
                details: y.ErrorDetails.FRAG_LOAD_ERROR,
                fatal: !1,
                frag: d,
                networkDetails: null
              }, "Fragment does not have a " + (r ? "part list" : "url")));
            this.abort();
            var e = this.config, f = e.fLoader, u = e.loader;
            return new Promise(function(m, s) {
              i.loader && i.loader.destroy();
              var v = i.loader = d.loader = f ? new f(e) : new u(e), c = _(d), o = {
                timeout: e.fragLoadingTimeOut,
                maxRetry: 0,
                retryDelay: 0,
                maxRetryDelay: e.fragLoadingMaxRetryTimeout,
                highWaterMark: d.sn === "initSegment" ? 1 / 0 : S
              };
              d.stats = v.stats, v.load(c, o, {
                onSuccess: function(x, k, K, w) {
                  i.resetLoader(d, v), m({
                    frag: d,
                    part: null,
                    payload: x.data,
                    networkDetails: w
                  });
                },
                onError: function(x, k, K) {
                  i.resetLoader(d, v), s(new E({
                    type: y.ErrorTypes.NETWORK_ERROR,
                    details: y.ErrorDetails.FRAG_LOAD_ERROR,
                    fatal: !1,
                    frag: d,
                    response: x,
                    networkDetails: K
                  }));
                },
                onAbort: function(x, k, K) {
                  i.resetLoader(d, v), s(new E({
                    type: y.ErrorTypes.NETWORK_ERROR,
                    details: y.ErrorDetails.INTERNAL_ABORTED,
                    fatal: !1,
                    frag: d,
                    networkDetails: K
                  }));
                },
                onTimeout: function(x, k, K) {
                  i.resetLoader(d, v), s(new E({
                    type: y.ErrorTypes.NETWORK_ERROR,
                    details: y.ErrorDetails.FRAG_LOAD_TIMEOUT,
                    fatal: !1,
                    frag: d,
                    networkDetails: K
                  }));
                },
                onProgress: function(x, k, K, w) {
                  h && h({
                    frag: d,
                    part: null,
                    payload: K,
                    networkDetails: w
                  });
                }
              });
            });
          }, n.loadPart = function(d, h, i) {
            var r = this;
            this.abort();
            var e = this.config, f = e.fLoader, u = e.loader;
            return new Promise(function(m, s) {
              r.loader && r.loader.destroy();
              var v = r.loader = d.loader = f ? new f(e) : new u(e), c = _(d, h), o = {
                timeout: e.fragLoadingTimeOut,
                maxRetry: 0,
                retryDelay: 0,
                maxRetryDelay: e.fragLoadingMaxRetryTimeout,
                highWaterMark: S
              };
              h.stats = v.stats, v.load(c, o, {
                onSuccess: function(x, k, K, w) {
                  r.resetLoader(d, v), r.updateStatsFromPart(d, h);
                  var W = {
                    frag: d,
                    part: h,
                    payload: x.data,
                    networkDetails: w
                  };
                  i(W), m(W);
                },
                onError: function(x, k, K) {
                  r.resetLoader(d, v), s(new E({
                    type: y.ErrorTypes.NETWORK_ERROR,
                    details: y.ErrorDetails.FRAG_LOAD_ERROR,
                    fatal: !1,
                    frag: d,
                    part: h,
                    response: x,
                    networkDetails: K
                  }));
                },
                onAbort: function(x, k, K) {
                  d.stats.aborted = h.stats.aborted, r.resetLoader(d, v), s(new E({
                    type: y.ErrorTypes.NETWORK_ERROR,
                    details: y.ErrorDetails.INTERNAL_ABORTED,
                    fatal: !1,
                    frag: d,
                    part: h,
                    networkDetails: K
                  }));
                },
                onTimeout: function(x, k, K) {
                  r.resetLoader(d, v), s(new E({
                    type: y.ErrorTypes.NETWORK_ERROR,
                    details: y.ErrorDetails.FRAG_LOAD_TIMEOUT,
                    fatal: !1,
                    frag: d,
                    part: h,
                    networkDetails: K
                  }));
                }
              });
            });
          }, n.updateStatsFromPart = function(d, h) {
            var i = d.stats, r = h.stats, e = r.total;
            if (i.loaded += r.loaded, e) {
              var f = Math.round(d.duration / h.duration), u = Math.min(Math.round(i.loaded / e), f), m = f - u, s = m * Math.round(i.loaded / u);
              i.total = i.loaded + s;
            } else
              i.total = Math.max(i.loaded, i.total);
            var v = i.loading, c = r.loading;
            v.start ? v.first += c.first - c.start : (v.start = c.start, v.first = c.first), v.end = c.end;
          }, n.resetLoader = function(d, h) {
            d.loader = null, this.loader === h && (self.clearTimeout(this.partLoadTimeout), this.loader = null), h.destroy();
          }, l;
        }();
        function _(l, n) {
          n === void 0 && (n = null);
          var t = n || l, d = {
            frag: l,
            part: n,
            responseType: "arraybuffer",
            url: t.url,
            headers: {},
            rangeStart: 0,
            rangeEnd: 0
          }, h = t.byteRangeStartOffset, i = t.byteRangeEndOffset;
          return (0, P.isFiniteNumber)(h) && (0, P.isFiniteNumber)(i) && (d.rangeStart = h, d.rangeEnd = i), d;
        }
        var E = /* @__PURE__ */ function(l) {
          O(n, l);
          function n(t) {
            for (var d, h = arguments.length, i = new Array(h > 1 ? h - 1 : 0), r = 1; r < h; r++)
              i[r - 1] = arguments[r];
            return d = l.call.apply(l, [this].concat(i)) || this, d.data = void 0, d.data = t, d;
          }
          return n;
        }(/* @__PURE__ */ C(Error));
      },
      "./src/loader/fragment.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          BaseSegment: () => b,
          ElementaryStreamTypes: () => S,
          Fragment: () => _,
          Part: () => E
        });
        var P = g("./src/polyfills/number.ts"), y = g("./node_modules/url-toolkit/src/url-toolkit.js"), O = g("./src/utils/logger.ts"), C = g("./src/loader/level-key.ts"), F = g("./src/loader/load-stats.ts");
        function R(l, n) {
          l.prototype = Object.create(n.prototype), l.prototype.constructor = l, T(l, n);
        }
        function T(l, n) {
          return T = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(d, h) {
            return d.__proto__ = h, d;
          }, T(l, n);
        }
        function D(l, n) {
          for (var t = 0; t < n.length; t++) {
            var d = n[t];
            d.enumerable = d.enumerable || !1, d.configurable = !0, "value" in d && (d.writable = !0), Object.defineProperty(l, d.key, d);
          }
        }
        function p(l, n, t) {
          return n && D(l.prototype, n), t && D(l, t), Object.defineProperty(l, "prototype", { writable: !1 }), l;
        }
        var S;
        (function(l) {
          l.AUDIO = "audio", l.VIDEO = "video", l.AUDIOVIDEO = "audiovideo";
        })(S || (S = {}));
        var b = /* @__PURE__ */ function() {
          function l(t) {
            var d;
            this._byteRange = null, this._url = null, this.baseurl = void 0, this.relurl = void 0, this.elementaryStreams = (d = {}, d[S.AUDIO] = null, d[S.VIDEO] = null, d[S.AUDIOVIDEO] = null, d), this.baseurl = t;
          }
          var n = l.prototype;
          return n.setByteRange = function(d, h) {
            var i = d.split("@", 2), r = [];
            i.length === 1 ? r[0] = h ? h.byteRangeEndOffset : 0 : r[0] = parseInt(i[1]), r[1] = parseInt(i[0]) + r[0], this._byteRange = r;
          }, p(l, [{
            key: "byteRange",
            get: function() {
              return this._byteRange ? this._byteRange : [];
            }
          }, {
            key: "byteRangeStartOffset",
            get: function() {
              return this.byteRange[0];
            }
          }, {
            key: "byteRangeEndOffset",
            get: function() {
              return this.byteRange[1];
            }
          }, {
            key: "url",
            get: function() {
              return !this._url && this.baseurl && this.relurl && (this._url = (0, y.buildAbsoluteURL)(this.baseurl, this.relurl, {
                alwaysNormalize: !0
              })), this._url || "";
            },
            set: function(d) {
              this._url = d;
            }
          }]), l;
        }(), _ = /* @__PURE__ */ function(l) {
          R(n, l);
          function n(d, h) {
            var i;
            return i = l.call(this, h) || this, i._decryptdata = null, i.rawProgramDateTime = null, i.programDateTime = null, i.tagList = [], i.duration = 0, i.sn = 0, i.levelkey = void 0, i.type = void 0, i.loader = null, i.level = -1, i.cc = 0, i.startPTS = void 0, i.endPTS = void 0, i.appendedPTS = void 0, i.startDTS = void 0, i.endDTS = void 0, i.start = 0, i.deltaPTS = void 0, i.maxStartPTS = void 0, i.minEndPTS = void 0, i.stats = new F.LoadStats(), i.urlId = 0, i.data = void 0, i.bitrateTest = !1, i.title = null, i.initSegment = null, i.type = d, i;
          }
          var t = n.prototype;
          return t.createInitializationVector = function(h) {
            for (var i = new Uint8Array(16), r = 12; r < 16; r++)
              i[r] = h >> 8 * (15 - r) & 255;
            return i;
          }, t.setDecryptDataFromLevelKey = function(h, i) {
            var r = h;
            return (h == null ? void 0 : h.method) === "AES-128" && h.uri && !h.iv && (r = C.LevelKey.fromURI(h.uri), r.method = h.method, r.iv = this.createInitializationVector(i), r.keyFormat = "identity"), r;
          }, t.setElementaryStreamInfo = function(h, i, r, e, f, u) {
            u === void 0 && (u = !1);
            var m = this.elementaryStreams, s = m[h];
            if (!s) {
              m[h] = {
                startPTS: i,
                endPTS: r,
                startDTS: e,
                endDTS: f,
                partial: u
              };
              return;
            }
            s.startPTS = Math.min(s.startPTS, i), s.endPTS = Math.max(s.endPTS, r), s.startDTS = Math.min(s.startDTS, e), s.endDTS = Math.max(s.endDTS, f);
          }, t.clearElementaryStreamInfo = function() {
            var h = this.elementaryStreams;
            h[S.AUDIO] = null, h[S.VIDEO] = null, h[S.AUDIOVIDEO] = null;
          }, p(n, [{
            key: "decryptdata",
            get: function() {
              if (!this.levelkey && !this._decryptdata)
                return null;
              if (!this._decryptdata && this.levelkey) {
                var h = this.sn;
                typeof h != "number" && (this.levelkey && this.levelkey.method === "AES-128" && !this.levelkey.iv && O.logger.warn('missing IV for initialization segment with method="' + this.levelkey.method + '" - compliance issue'), h = 0), this._decryptdata = this.setDecryptDataFromLevelKey(this.levelkey, h);
              }
              return this._decryptdata;
            }
          }, {
            key: "end",
            get: function() {
              return this.start + this.duration;
            }
          }, {
            key: "endProgramDateTime",
            get: function() {
              if (this.programDateTime === null || !(0, P.isFiniteNumber)(this.programDateTime))
                return null;
              var h = (0, P.isFiniteNumber)(this.duration) ? this.duration : 0;
              return this.programDateTime + h * 1e3;
            }
          }, {
            key: "encrypted",
            get: function() {
              var h;
              return !!((h = this.decryptdata) !== null && h !== void 0 && h.keyFormat && this.decryptdata.uri);
            }
          }]), n;
        }(b), E = /* @__PURE__ */ function(l) {
          R(n, l);
          function n(t, d, h, i, r) {
            var e;
            e = l.call(this, h) || this, e.fragOffset = 0, e.duration = 0, e.gap = !1, e.independent = !1, e.relurl = void 0, e.fragment = void 0, e.index = void 0, e.stats = new F.LoadStats(), e.duration = t.decimalFloatingPoint("DURATION"), e.gap = t.bool("GAP"), e.independent = t.bool("INDEPENDENT"), e.relurl = t.enumeratedString("URI"), e.fragment = d, e.index = i;
            var f = t.enumeratedString("BYTERANGE");
            return f && e.setByteRange(f, r), r && (e.fragOffset = r.fragOffset + r.duration), e;
          }
          return p(n, [{
            key: "start",
            get: function() {
              return this.fragment.start + this.fragOffset;
            }
          }, {
            key: "end",
            get: function() {
              return this.start + this.duration;
            }
          }, {
            key: "loaded",
            get: function() {
              var d = this.elementaryStreams;
              return !!(d.audio || d.video || d.audiovideo);
            }
          }]), n;
        }(b);
      },
      "./src/loader/key-loader.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          default: () => C
        });
        var P = g("./src/events.ts"), y = g("./src/errors.ts"), O = g("./src/utils/logger.ts"), C = /* @__PURE__ */ function() {
          function F(T) {
            this.hls = void 0, this.loaders = {}, this.decryptkey = null, this.decrypturl = null, this.hls = T, this.registerListeners();
          }
          var R = F.prototype;
          return R.startLoad = function(D) {
          }, R.stopLoad = function() {
            this.destroyInternalLoaders();
          }, R.registerListeners = function() {
            this.hls.on(P.Events.KEY_LOADING, this.onKeyLoading, this);
          }, R.unregisterListeners = function() {
            this.hls.off(P.Events.KEY_LOADING, this.onKeyLoading);
          }, R.destroyInternalLoaders = function() {
            for (var D in this.loaders) {
              var p = this.loaders[D];
              p && p.destroy();
            }
            this.loaders = {};
          }, R.destroy = function() {
            this.unregisterListeners(), this.destroyInternalLoaders();
          }, R.onKeyLoading = function(D, p) {
            var S = p.frag, b = S.type, _ = this.loaders[b];
            if (!S.decryptdata) {
              O.logger.warn("Missing decryption data on fragment in onKeyLoading");
              return;
            }
            var E = S.decryptdata.uri;
            if (E !== this.decrypturl || this.decryptkey === null) {
              var l = this.hls.config;
              if (_ && (O.logger.warn("abort previous key loader for type:" + b), _.abort()), !E) {
                O.logger.warn("key uri is falsy");
                return;
              }
              var n = l.loader, t = S.loader = this.loaders[b] = new n(l);
              this.decrypturl = E, this.decryptkey = null;
              var d = {
                url: E,
                frag: S,
                responseType: "arraybuffer"
              }, h = {
                timeout: l.fragLoadingTimeOut,
                maxRetry: 0,
                retryDelay: l.fragLoadingRetryDelay,
                maxRetryDelay: l.fragLoadingMaxRetryTimeout,
                highWaterMark: 0
              }, i = {
                onSuccess: this.loadsuccess.bind(this),
                onError: this.loaderror.bind(this),
                onTimeout: this.loadtimeout.bind(this)
              };
              t.load(d, h, i);
            } else
              this.decryptkey && (S.decryptdata.key = this.decryptkey, this.hls.trigger(P.Events.KEY_LOADED, {
                frag: S
              }));
          }, R.loadsuccess = function(D, p, S) {
            var b = S.frag;
            if (!b.decryptdata) {
              O.logger.error("after key load, decryptdata unset");
              return;
            }
            this.decryptkey = b.decryptdata.key = new Uint8Array(D.data), b.loader = null, delete this.loaders[b.type], this.hls.trigger(P.Events.KEY_LOADED, {
              frag: b
            });
          }, R.loaderror = function(D, p) {
            var S = p.frag, b = S.loader;
            b && b.abort(), delete this.loaders[S.type], this.hls.trigger(P.Events.ERROR, {
              type: y.ErrorTypes.NETWORK_ERROR,
              details: y.ErrorDetails.KEY_LOAD_ERROR,
              fatal: !1,
              frag: S,
              response: D
            });
          }, R.loadtimeout = function(D, p) {
            var S = p.frag, b = S.loader;
            b && b.abort(), delete this.loaders[S.type], this.hls.trigger(P.Events.ERROR, {
              type: y.ErrorTypes.NETWORK_ERROR,
              details: y.ErrorDetails.KEY_LOAD_TIMEOUT,
              fatal: !1,
              frag: S
            });
          }, F;
        }();
      },
      "./src/loader/level-details.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          LevelDetails: () => F
        });
        var P = g("./src/polyfills/number.ts");
        function y(R, T) {
          for (var D = 0; D < T.length; D++) {
            var p = T[D];
            p.enumerable = p.enumerable || !1, p.configurable = !0, "value" in p && (p.writable = !0), Object.defineProperty(R, p.key, p);
          }
        }
        function O(R, T, D) {
          return T && y(R.prototype, T), D && y(R, D), Object.defineProperty(R, "prototype", { writable: !1 }), R;
        }
        var C = 10, F = /* @__PURE__ */ function() {
          function R(D) {
            this.PTSKnown = !1, this.alignedSliding = !1, this.averagetargetduration = void 0, this.endCC = 0, this.endSN = 0, this.fragments = void 0, this.fragmentHint = void 0, this.partList = null, this.dateRanges = void 0, this.live = !0, this.ageHeader = 0, this.advancedDateTime = void 0, this.updated = !0, this.advanced = !0, this.availabilityDelay = void 0, this.misses = 0, this.needSidxRanges = !1, this.startCC = 0, this.startSN = 0, this.startTimeOffset = null, this.targetduration = 0, this.totalduration = 0, this.type = null, this.url = void 0, this.m3u8 = "", this.version = null, this.canBlockReload = !1, this.canSkipUntil = 0, this.canSkipDateRanges = !1, this.skippedSegments = 0, this.recentlyRemovedDateranges = void 0, this.partHoldBack = 0, this.holdBack = 0, this.partTarget = 0, this.preloadHint = void 0, this.renditionReports = void 0, this.tuneInGoal = 0, this.deltaUpdateFailed = void 0, this.driftStartTime = 0, this.driftEndTime = 0, this.driftStart = 0, this.driftEnd = 0, this.fragments = [], this.dateRanges = {}, this.url = D;
          }
          var T = R.prototype;
          return T.reloaded = function(p) {
            if (!p) {
              this.advanced = !0, this.updated = !0;
              return;
            }
            var S = this.lastPartSn - p.lastPartSn, b = this.lastPartIndex - p.lastPartIndex;
            this.updated = this.endSN !== p.endSN || !!b || !!S, this.advanced = this.endSN > p.endSN || S > 0 || S === 0 && b > 0, this.updated || this.advanced ? this.misses = Math.floor(p.misses * 0.6) : this.misses = p.misses + 1, this.availabilityDelay = p.availabilityDelay;
          }, O(R, [{
            key: "hasProgramDateTime",
            get: function() {
              return this.fragments.length ? (0, P.isFiniteNumber)(this.fragments[this.fragments.length - 1].programDateTime) : !1;
            }
          }, {
            key: "levelTargetDuration",
            get: function() {
              return this.averagetargetduration || this.targetduration || C;
            }
          }, {
            key: "drift",
            get: function() {
              var p = this.driftEndTime - this.driftStartTime;
              if (p > 0) {
                var S = this.driftEnd - this.driftStart;
                return S * 1e3 / p;
              }
              return 1;
            }
          }, {
            key: "edge",
            get: function() {
              return this.partEnd || this.fragmentEnd;
            }
          }, {
            key: "partEnd",
            get: function() {
              var p;
              return (p = this.partList) !== null && p !== void 0 && p.length ? this.partList[this.partList.length - 1].end : this.fragmentEnd;
            }
          }, {
            key: "fragmentEnd",
            get: function() {
              var p;
              return (p = this.fragments) !== null && p !== void 0 && p.length ? this.fragments[this.fragments.length - 1].end : 0;
            }
          }, {
            key: "age",
            get: function() {
              return this.advancedDateTime ? Math.max(Date.now() - this.advancedDateTime, 0) / 1e3 : 0;
            }
          }, {
            key: "lastPartIndex",
            get: function() {
              var p;
              return (p = this.partList) !== null && p !== void 0 && p.length ? this.partList[this.partList.length - 1].index : -1;
            }
          }, {
            key: "lastPartSn",
            get: function() {
              var p;
              return (p = this.partList) !== null && p !== void 0 && p.length ? this.partList[this.partList.length - 1].fragment.sn : this.endSN;
            }
          }]), R;
        }();
      },
      "./src/loader/level-key.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          LevelKey: () => C
        });
        var P = g("./node_modules/url-toolkit/src/url-toolkit.js");
        function y(F, R) {
          for (var T = 0; T < R.length; T++) {
            var D = R[T];
            D.enumerable = D.enumerable || !1, D.configurable = !0, "value" in D && (D.writable = !0), Object.defineProperty(F, D.key, D);
          }
        }
        function O(F, R, T) {
          return R && y(F.prototype, R), T && y(F, T), Object.defineProperty(F, "prototype", { writable: !1 }), F;
        }
        var C = /* @__PURE__ */ function() {
          F.fromURL = function(T, D) {
            return new F(T, D);
          }, F.fromURI = function(T) {
            return new F(T);
          };
          function F(R, T) {
            this._uri = null, this.method = null, this.keyFormat = null, this.keyFormatVersions = null, this.keyID = null, this.key = null, this.iv = null, T ? this._uri = (0, P.buildAbsoluteURL)(R, T, {
              alwaysNormalize: !0
            }) : this._uri = R;
          }
          return O(F, [{
            key: "uri",
            get: function() {
              return this._uri;
            }
          }]), F;
        }();
      },
      "./src/loader/load-stats.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          LoadStats: () => P
        });
        var P = function() {
          this.aborted = !1, this.loaded = 0, this.retry = 0, this.total = 0, this.chunkCount = 0, this.bwEstimate = 0, this.loading = {
            start: 0,
            first: 0,
            end: 0
          }, this.parsing = {
            start: 0,
            end: 0
          }, this.buffering = {
            start: 0,
            first: 0,
            end: 0
          };
        };
      },
      "./src/loader/m3u8-parser.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          default: () => t
        });
        var P = g("./src/polyfills/number.ts"), y = g("./node_modules/url-toolkit/src/url-toolkit.js"), O = g("./src/loader/date-range.ts"), C = g("./src/loader/fragment.ts"), F = g("./src/loader/level-details.ts"), R = g("./src/loader/level-key.ts"), T = g("./src/utils/attr-list.ts"), D = g("./src/utils/logger.ts"), p = g("./src/utils/codecs.ts"), S = /#EXT-X-STREAM-INF:([^\r\n]*)(?:[\r\n](?:#[^\r\n]*)?)*([^\r\n]+)|#EXT-X-SESSION-DATA:([^\r\n]*)[\r\n]+/g, b = /#EXT-X-MEDIA:(.*)/g, _ = new RegExp([
          /#EXTINF:\s*(\d*(?:\.\d+)?)(?:,(.*)\s+)?/.source,
          /(?!#) *(\S[\S ]*)/.source,
          /#EXT-X-BYTERANGE:*(.+)/.source,
          /#EXT-X-PROGRAM-DATE-TIME:(.+)/.source,
          /#.*/.source
        ].join("|"), "g"), E = new RegExp([/#(EXTM3U)/.source, /#EXT-X-(DATERANGE|KEY|MAP|PART|PART-INF|PLAYLIST-TYPE|PRELOAD-HINT|RENDITION-REPORT|SERVER-CONTROL|SKIP|START):(.+)/.source, /#EXT-X-(BITRATE|DISCONTINUITY-SEQUENCE|MEDIA-SEQUENCE|TARGETDURATION|VERSION): *(\d+)/.source, /#EXT-X-(DISCONTINUITY|ENDLIST|GAP)/.source, /(#)([^:]*):(.*)/.source, /(#)(.*)(?:.*)\r?\n?/.source].join("|")), l = /\.(mp4|m4s|m4v|m4a)$/i;
        function n(f) {
          var u, m;
          return l.test((u = (m = y.parseURL(f)) === null || m === void 0 ? void 0 : m.path) != null ? u : "");
        }
        var t = /* @__PURE__ */ function() {
          function f() {
          }
          return f.findGroup = function(m, s) {
            for (var v = 0; v < m.length; v++) {
              var c = m[v];
              if (c.id === s)
                return c;
            }
          }, f.convertAVC1ToAVCOTI = function(m) {
            var s = m.split(".");
            if (s.length > 2) {
              var v = s.shift() + ".";
              return v += parseInt(s.shift()).toString(16), v += ("000" + parseInt(s.shift()).toString(16)).slice(-4), v;
            }
            return m;
          }, f.resolve = function(m, s) {
            return y.buildAbsoluteURL(s, m, {
              alwaysNormalize: !0
            });
          }, f.parseMasterPlaylist = function(m, s) {
            var v = [], c = [], o = {}, a = !1;
            S.lastIndex = 0;
            for (var x; (x = S.exec(m)) != null; )
              if (x[1]) {
                var k, K = new T.AttrList(x[1]), w = {
                  attrs: K,
                  bitrate: K.decimalInteger("AVERAGE-BANDWIDTH") || K.decimalInteger("BANDWIDTH"),
                  name: K.NAME,
                  url: f.resolve(x[2], s)
                }, W = K.decimalResolution("RESOLUTION");
                W && (w.width = W.width, w.height = W.height), d((K.CODECS || "").split(/[ ,]+/).filter(function(j) {
                  return j;
                }), w), w.videoCodec && w.videoCodec.indexOf("avc1") !== -1 && (w.videoCodec = f.convertAVC1ToAVCOTI(w.videoCodec)), (k = w.unknownCodecs) !== null && k !== void 0 && k.length || c.push(w), v.push(w);
              } else if (x[3]) {
                var z = new T.AttrList(x[3]);
                z["DATA-ID"] && (a = !0, o[z["DATA-ID"]] = z);
              }
            var H = c.length > 0 && c.length < v.length;
            return {
              levels: H ? c : v,
              sessionData: a ? o : null
            };
          }, f.parseMasterPlaylistMedia = function(m, s, v, c) {
            c === void 0 && (c = []);
            var o, a = [], x = 0;
            for (b.lastIndex = 0; (o = b.exec(m)) !== null; ) {
              var k = new T.AttrList(o[1]);
              if (k.TYPE === v) {
                var K = {
                  attrs: k,
                  bitrate: 0,
                  id: x++,
                  groupId: k["GROUP-ID"],
                  instreamId: k["INSTREAM-ID"],
                  name: k.NAME || k.LANGUAGE || "",
                  type: v,
                  default: k.bool("DEFAULT"),
                  autoselect: k.bool("AUTOSELECT"),
                  forced: k.bool("FORCED"),
                  lang: k.LANGUAGE,
                  url: k.URI ? f.resolve(k.URI, s) : ""
                };
                if (c.length) {
                  var w = f.findGroup(c, K.groupId) || c[0];
                  h(K, w, "audioCodec"), h(K, w, "textCodec");
                }
                a.push(K);
              }
            }
            return a;
          }, f.parseLevelPlaylist = function(m, s, v, c, o) {
            var a = new F.LevelDetails(s), x = a.fragments, k = null, K = 0, w = 0, W = 0, z = 0, H = null, j = new C.Fragment(c, s), Y, Z, q, ee = -1, te = !1;
            for (_.lastIndex = 0, a.m3u8 = m; (Y = _.exec(m)) !== null; ) {
              te && (te = !1, j = new C.Fragment(c, s), j.start = W, j.sn = K, j.cc = z, j.level = v, k && (j.initSegment = k, j.rawProgramDateTime = k.rawProgramDateTime, k.rawProgramDateTime = null));
              var ne = Y[1];
              if (ne) {
                j.duration = parseFloat(ne);
                var ie = (" " + Y[2]).slice(1);
                j.title = ie || null, j.tagList.push(ie ? ["INF", ne, ie] : ["INF", ne]);
              } else if (Y[3])
                (0, P.isFiniteNumber)(j.duration) && (j.start = W, q && (j.levelkey = q), j.sn = K, j.level = v, j.cc = z, j.urlId = o, x.push(j), j.relurl = (" " + Y[3]).slice(1), r(j, H), H = j, W += j.duration, K++, w = 0, te = !0);
              else if (Y[4]) {
                var oe = (" " + Y[4]).slice(1);
                H ? j.setByteRange(oe, H) : j.setByteRange(oe);
              } else if (Y[5])
                j.rawProgramDateTime = (" " + Y[5]).slice(1), j.tagList.push(["PROGRAM-DATE-TIME", j.rawProgramDateTime]), ee === -1 && (ee = x.length);
              else {
                if (Y = Y[0].match(E), !Y) {
                  D.logger.warn("No matches on slow regex match for level playlist!");
                  continue;
                }
                for (Z = 1; Z < Y.length && !(typeof Y[Z] < "u"); Z++)
                  ;
                var de = (" " + Y[Z]).slice(1), re = (" " + Y[Z + 1]).slice(1), le = Y[Z + 2] ? (" " + Y[Z + 2]).slice(1) : "";
                switch (de) {
                  case "PLAYLIST-TYPE":
                    a.type = re.toUpperCase();
                    break;
                  case "MEDIA-SEQUENCE":
                    K = a.startSN = parseInt(re);
                    break;
                  case "SKIP": {
                    var me = new T.AttrList(re), ve = me.decimalInteger("SKIPPED-SEGMENTS");
                    if ((0, P.isFiniteNumber)(ve)) {
                      a.skippedSegments = ve;
                      for (var pe = ve; pe--; )
                        x.unshift(null);
                      K += ve;
                    }
                    var Pe = me.enumeratedString("RECENTLY-REMOVED-DATERANGES");
                    Pe && (a.recentlyRemovedDateranges = Pe.split("	"));
                    break;
                  }
                  case "TARGETDURATION":
                    a.targetduration = parseFloat(re);
                    break;
                  case "VERSION":
                    a.version = parseInt(re);
                    break;
                  case "EXTM3U":
                    break;
                  case "ENDLIST":
                    a.live = !1;
                    break;
                  case "#":
                    (re || le) && j.tagList.push(le ? [re, le] : [re]);
                    break;
                  case "DISCONTINUITY":
                    z++, j.tagList.push(["DIS"]);
                    break;
                  case "GAP":
                    j.tagList.push([de]);
                    break;
                  case "BITRATE":
                    j.tagList.push([de, re]);
                    break;
                  case "DATERANGE": {
                    var ye = new T.AttrList(re), Ce = new O.DateRange(ye, a.dateRanges[ye.ID]);
                    Ce.isValid || a.skippedSegments ? a.dateRanges[Ce.id] = Ce : D.logger.warn('Ignoring invalid DATERANGE tag: "' + re + '"'), j.tagList.push(["EXT-X-DATERANGE", re]);
                    break;
                  }
                  case "DISCONTINUITY-SEQUENCE":
                    z = parseInt(re);
                    break;
                  case "KEY": {
                    var Oe, Ae = new T.AttrList(re), Fe = Ae.enumeratedString("METHOD"), We = Ae.URI, He = Ae.hexadecimalInteger("IV"), Ge = Ae.enumeratedString("KEYFORMATVERSIONS"), we = Ae.enumeratedString("KEYID"), Be = (Oe = Ae.enumeratedString("KEYFORMAT")) != null ? Oe : "identity", Ee = [
                      "com.apple.streamingkeydelivery",
                      "com.microsoft.playready",
                      "urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed",
                      "com.widevine"
                    ];
                    if (Ee.indexOf(Be) > -1) {
                      D.logger.warn("Keyformat " + Be + " is not supported from the manifest");
                      continue;
                    } else if (Be !== "identity")
                      continue;
                    Fe && (q = R.LevelKey.fromURL(s, We), We && ["AES-128", "SAMPLE-AES", "SAMPLE-AES-CENC"].indexOf(Fe) >= 0 && (q.method = Fe, q.keyFormat = Be, we && (q.keyID = we), Ge && (q.keyFormatVersions = Ge), q.iv = He));
                    break;
                  }
                  case "START": {
                    var rt = new T.AttrList(re), Le = rt.decimalFloatingPoint("TIME-OFFSET");
                    (0, P.isFiniteNumber)(Le) && (a.startTimeOffset = Le);
                    break;
                  }
                  case "MAP": {
                    var Me = new T.AttrList(re);
                    if (j.duration) {
                      var je = new C.Fragment(c, s);
                      e(je, Me, v, q), k = je, j.initSegment = k, k.rawProgramDateTime && !j.rawProgramDateTime && (j.rawProgramDateTime = k.rawProgramDateTime);
                    } else
                      e(j, Me, v, q), k = j, te = !0;
                    break;
                  }
                  case "SERVER-CONTROL": {
                    var be = new T.AttrList(re);
                    a.canBlockReload = be.bool("CAN-BLOCK-RELOAD"), a.canSkipUntil = be.optionalFloat("CAN-SKIP-UNTIL", 0), a.canSkipDateRanges = a.canSkipUntil > 0 && be.bool("CAN-SKIP-DATERANGES"), a.partHoldBack = be.optionalFloat("PART-HOLD-BACK", 0), a.holdBack = be.optionalFloat("HOLD-BACK", 0);
                    break;
                  }
                  case "PART-INF": {
                    var ke = new T.AttrList(re);
                    a.partTarget = ke.decimalFloatingPoint("PART-TARGET");
                    break;
                  }
                  case "PART": {
                    var ze = a.partList;
                    ze || (ze = a.partList = []);
                    var ot = w > 0 ? ze[ze.length - 1] : void 0, lt = w++, vt = new C.Part(new T.AttrList(re), j, s, lt, ot);
                    ze.push(vt), j.duration += vt.duration;
                    break;
                  }
                  case "PRELOAD-HINT": {
                    var Qe = new T.AttrList(re);
                    a.preloadHint = Qe;
                    break;
                  }
                  case "RENDITION-REPORT": {
                    var xt = new T.AttrList(re);
                    a.renditionReports = a.renditionReports || [], a.renditionReports.push(xt);
                    break;
                  }
                  default:
                    D.logger.warn("line parsed but not handled: " + Y);
                    break;
                }
              }
            }
            H && !H.relurl ? (x.pop(), W -= H.duration, a.partList && (a.fragmentHint = H)) : a.partList && (r(j, H), j.cc = z, a.fragmentHint = j);
            var ut = x.length, it = x[0], gt = x[ut - 1];
            if (W += a.skippedSegments * a.targetduration, W > 0 && ut && gt) {
              a.averagetargetduration = W / ut;
              var ft = gt.sn;
              a.endSN = ft !== "initSegment" ? ft : 0, it && (a.startCC = it.cc, it.initSegment || a.fragments.every(function(yt) {
                return yt.relurl && n(yt.relurl);
              }) && (D.logger.warn("MP4 fragments found but no init segment (probably no MAP, incomplete M3U8), trying to fetch SIDX"), j = new C.Fragment(c, s), j.relurl = gt.relurl, j.level = v, j.sn = "initSegment", it.initSegment = j, a.needSidxRanges = !0));
            } else
              a.endSN = 0, a.startCC = 0;
            return a.fragmentHint && (W += a.fragmentHint.duration), a.totalduration = W, a.endCC = z, ee > 0 && i(x, ee), a;
          }, f;
        }();
        function d(f, u) {
          ["video", "audio", "text"].forEach(function(m) {
            var s = f.filter(function(c) {
              return (0, p.isCodecType)(c, m);
            });
            if (s.length) {
              var v = s.filter(function(c) {
                return c.lastIndexOf("avc1", 0) === 0 || c.lastIndexOf("mp4a", 0) === 0;
              });
              u[m + "Codec"] = v.length > 0 ? v[0] : s[0], f = f.filter(function(c) {
                return s.indexOf(c) === -1;
              });
            }
          }), u.unknownCodecs = f;
        }
        function h(f, u, m) {
          var s = u[m];
          s && (f[m] = s);
        }
        function i(f, u) {
          for (var m = f[u], s = u; s--; ) {
            var v = f[s];
            if (!v)
              return;
            v.programDateTime = m.programDateTime - v.duration * 1e3, m = v;
          }
        }
        function r(f, u) {
          f.rawProgramDateTime ? f.programDateTime = Date.parse(f.rawProgramDateTime) : u != null && u.programDateTime && (f.programDateTime = u.endProgramDateTime), (0, P.isFiniteNumber)(f.programDateTime) || (f.programDateTime = null, f.rawProgramDateTime = null);
        }
        function e(f, u, m, s) {
          f.relurl = u.URI, u.BYTERANGE && f.setByteRange(u.BYTERANGE), f.level = m, f.sn = "initSegment", s && (f.levelkey = s), f.initSegment = null;
        }
      },
      "./src/loader/playlist-loader.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          default: () => _
        });
        var P = g("./src/polyfills/number.ts"), y = g("./src/events.ts"), O = g("./src/errors.ts"), C = g("./src/utils/logger.ts"), F = g("./src/utils/mp4-tools.ts"), R = g("./src/loader/m3u8-parser.ts"), T = g("./src/types/loader.ts"), D = g("./src/utils/attr-list.ts");
        function p(E) {
          var l = E.type;
          switch (l) {
            case T.PlaylistContextType.AUDIO_TRACK:
              return T.PlaylistLevelType.AUDIO;
            case T.PlaylistContextType.SUBTITLE_TRACK:
              return T.PlaylistLevelType.SUBTITLE;
            default:
              return T.PlaylistLevelType.MAIN;
          }
        }
        function S(E, l) {
          var n = E.url;
          return (n === void 0 || n.indexOf("data:") === 0) && (n = l.url), n;
        }
        var b = /* @__PURE__ */ function() {
          function E(n) {
            this.hls = void 0, this.loaders = /* @__PURE__ */ Object.create(null), this.hls = n, this.registerListeners();
          }
          var l = E.prototype;
          return l.startLoad = function(t) {
          }, l.stopLoad = function() {
            this.destroyInternalLoaders();
          }, l.registerListeners = function() {
            var t = this.hls;
            t.on(y.Events.MANIFEST_LOADING, this.onManifestLoading, this), t.on(y.Events.LEVEL_LOADING, this.onLevelLoading, this), t.on(y.Events.AUDIO_TRACK_LOADING, this.onAudioTrackLoading, this), t.on(y.Events.SUBTITLE_TRACK_LOADING, this.onSubtitleTrackLoading, this);
          }, l.unregisterListeners = function() {
            var t = this.hls;
            t.off(y.Events.MANIFEST_LOADING, this.onManifestLoading, this), t.off(y.Events.LEVEL_LOADING, this.onLevelLoading, this), t.off(y.Events.AUDIO_TRACK_LOADING, this.onAudioTrackLoading, this), t.off(y.Events.SUBTITLE_TRACK_LOADING, this.onSubtitleTrackLoading, this);
          }, l.createInternalLoader = function(t) {
            var d = this.hls.config, h = d.pLoader, i = d.loader, r = h || i, e = new r(d);
            return t.loader = e, this.loaders[t.type] = e, e;
          }, l.getInternalLoader = function(t) {
            return this.loaders[t.type];
          }, l.resetInternalLoader = function(t) {
            this.loaders[t] && delete this.loaders[t];
          }, l.destroyInternalLoaders = function() {
            for (var t in this.loaders) {
              var d = this.loaders[t];
              d && d.destroy(), this.resetInternalLoader(t);
            }
          }, l.destroy = function() {
            this.unregisterListeners(), this.destroyInternalLoaders();
          }, l.onManifestLoading = function(t, d) {
            var h = d.url;
            this.load({
              id: null,
              groupId: null,
              level: 0,
              responseType: "text",
              type: T.PlaylistContextType.MANIFEST,
              url: h,
              deliveryDirectives: null
            });
          }, l.onLevelLoading = function(t, d) {
            var h = d.id, i = d.level, r = d.url, e = d.deliveryDirectives;
            this.load({
              id: h,
              groupId: null,
              level: i,
              responseType: "text",
              type: T.PlaylistContextType.LEVEL,
              url: r,
              deliveryDirectives: e
            });
          }, l.onAudioTrackLoading = function(t, d) {
            var h = d.id, i = d.groupId, r = d.url, e = d.deliveryDirectives;
            this.load({
              id: h,
              groupId: i,
              level: null,
              responseType: "text",
              type: T.PlaylistContextType.AUDIO_TRACK,
              url: r,
              deliveryDirectives: e
            });
          }, l.onSubtitleTrackLoading = function(t, d) {
            var h = d.id, i = d.groupId, r = d.url, e = d.deliveryDirectives;
            this.load({
              id: h,
              groupId: i,
              level: null,
              responseType: "text",
              type: T.PlaylistContextType.SUBTITLE_TRACK,
              url: r,
              deliveryDirectives: e
            });
          }, l.load = function(t) {
            var d, h = this.hls.config, i = this.getInternalLoader(t);
            if (i) {
              var r = i.context;
              if (r && r.url === t.url) {
                C.logger.trace("[playlist-loader]: playlist request ongoing");
                return;
              }
              C.logger.log("[playlist-loader]: aborting previous loader for type: " + t.type), i.abort();
            }
            var e, f, u, m;
            switch (t.type) {
              case T.PlaylistContextType.MANIFEST:
                e = h.manifestLoadingMaxRetry, f = h.manifestLoadingTimeOut, u = h.manifestLoadingRetryDelay, m = h.manifestLoadingMaxRetryTimeout;
                break;
              case T.PlaylistContextType.LEVEL:
              case T.PlaylistContextType.AUDIO_TRACK:
              case T.PlaylistContextType.SUBTITLE_TRACK:
                e = 0, f = h.levelLoadingTimeOut;
                break;
              default:
                e = h.levelLoadingMaxRetry, f = h.levelLoadingTimeOut, u = h.levelLoadingRetryDelay, m = h.levelLoadingMaxRetryTimeout;
                break;
            }
            if (i = this.createInternalLoader(t), (d = t.deliveryDirectives) !== null && d !== void 0 && d.part) {
              var s;
              if (t.type === T.PlaylistContextType.LEVEL && t.level !== null ? s = this.hls.levels[t.level].details : t.type === T.PlaylistContextType.AUDIO_TRACK && t.id !== null ? s = this.hls.audioTracks[t.id].details : t.type === T.PlaylistContextType.SUBTITLE_TRACK && t.id !== null && (s = this.hls.subtitleTracks[t.id].details), s) {
                var v = s.partTarget, c = s.targetduration;
                v && c && (f = Math.min(Math.max(v * 3, c * 0.8) * 1e3, f));
              }
            }
            var o = {
              timeout: f,
              maxRetry: e,
              retryDelay: u,
              maxRetryDelay: m,
              highWaterMark: 0
            }, a = {
              onSuccess: this.loadsuccess.bind(this),
              onError: this.loaderror.bind(this),
              onTimeout: this.loadtimeout.bind(this)
            };
            i.load(t, o, a);
          }, l.loadsuccess = function(t, d, h, i) {
            if (i === void 0 && (i = null), h.isSidxRequest) {
              this.handleSidxRequest(t, h), this.handlePlaylistLoaded(t, d, h, i);
              return;
            }
            this.resetInternalLoader(h.type);
            var r = t.data;
            if (r.indexOf("#EXTM3U") !== 0) {
              this.handleManifestParsingError(t, h, "no EXTM3U delimiter", i);
              return;
            }
            d.parsing.start = performance.now(), r.indexOf("#EXTINF:") > 0 || r.indexOf("#EXT-X-TARGETDURATION:") > 0 ? this.handleTrackOrLevelPlaylist(t, d, h, i) : this.handleMasterPlaylist(t, d, h, i);
          }, l.loaderror = function(t, d, h) {
            h === void 0 && (h = null), this.handleNetworkError(d, h, !1, t);
          }, l.loadtimeout = function(t, d, h) {
            h === void 0 && (h = null), this.handleNetworkError(d, h, !0);
          }, l.handleMasterPlaylist = function(t, d, h, i) {
            var r = this.hls, e = t.data, f = S(t, h), u = R.default.parseMasterPlaylist(e, f), m = u.levels, s = u.sessionData;
            if (!m.length) {
              this.handleManifestParsingError(t, h, "no level found in manifest", i);
              return;
            }
            var v = m.map(function(K) {
              return {
                id: K.attrs.AUDIO,
                audioCodec: K.audioCodec
              };
            }), c = m.map(function(K) {
              return {
                id: K.attrs.SUBTITLES,
                textCodec: K.textCodec
              };
            }), o = R.default.parseMasterPlaylistMedia(e, f, "AUDIO", v), a = R.default.parseMasterPlaylistMedia(e, f, "SUBTITLES", c), x = R.default.parseMasterPlaylistMedia(e, f, "CLOSED-CAPTIONS");
            if (o.length) {
              var k = o.some(function(K) {
                return !K.url;
              });
              !k && m[0].audioCodec && !m[0].attrs.AUDIO && (C.logger.log("[playlist-loader]: audio codec signaled in quality level, but no embedded audio track signaled, create one"), o.unshift({
                type: "main",
                name: "main",
                default: !1,
                autoselect: !1,
                forced: !1,
                id: -1,
                attrs: new D.AttrList({}),
                bitrate: 0,
                url: ""
              }));
            }
            r.trigger(y.Events.MANIFEST_LOADED, {
              levels: m,
              audioTracks: o,
              subtitles: a,
              captions: x,
              url: f,
              stats: d,
              networkDetails: i,
              sessionData: s
            });
          }, l.handleTrackOrLevelPlaylist = function(t, d, h, i) {
            var r = this.hls, e = h.id, f = h.level, u = h.type, m = S(t, h), s = (0, P.isFiniteNumber)(e) ? e : 0, v = (0, P.isFiniteNumber)(f) ? f : s, c = p(h), o = R.default.parseLevelPlaylist(t.data, m, v, c, s);
            if (!o.fragments.length) {
              r.trigger(y.Events.ERROR, {
                type: O.ErrorTypes.NETWORK_ERROR,
                details: O.ErrorDetails.LEVEL_EMPTY_ERROR,
                fatal: !1,
                url: m,
                reason: "no fragments found in level",
                level: typeof h.level == "number" ? h.level : void 0
              });
              return;
            }
            if (u === T.PlaylistContextType.MANIFEST) {
              var a = {
                attrs: new D.AttrList({}),
                bitrate: 0,
                details: o,
                name: "",
                url: m
              };
              r.trigger(y.Events.MANIFEST_LOADED, {
                levels: [a],
                audioTracks: [],
                url: m,
                stats: d,
                networkDetails: i,
                sessionData: null
              });
            }
            if (d.parsing.end = performance.now(), o.needSidxRanges) {
              var x, k = (x = o.fragments[0].initSegment) === null || x === void 0 ? void 0 : x.url;
              this.load({
                url: k,
                isSidxRequest: !0,
                type: u,
                level: f,
                levelDetails: o,
                id: e,
                groupId: null,
                rangeStart: 0,
                rangeEnd: 2048,
                responseType: "arraybuffer",
                deliveryDirectives: null
              });
              return;
            }
            h.levelDetails = o, this.handlePlaylistLoaded(t, d, h, i);
          }, l.handleSidxRequest = function(t, d) {
            var h = new Uint8Array(t.data), i = (0, F.findBox)(h, ["sidx"])[0];
            if (!!i) {
              var r = (0, F.parseSegmentIndex)(i);
              if (!!r) {
                var e = r.references, f = d.levelDetails;
                e.forEach(function(u, m) {
                  var s = u.info, v = f.fragments[m];
                  if (v.byteRange.length === 0 && v.setByteRange(String(1 + s.end - s.start) + "@" + String(s.start)), v.initSegment) {
                    var c = (0, F.findBox)(h, ["moov"])[0], o = c ? c.length : null;
                    v.initSegment.setByteRange(String(o) + "@0");
                  }
                });
              }
            }
          }, l.handleManifestParsingError = function(t, d, h, i) {
            this.hls.trigger(y.Events.ERROR, {
              type: O.ErrorTypes.NETWORK_ERROR,
              details: O.ErrorDetails.MANIFEST_PARSING_ERROR,
              fatal: d.type === T.PlaylistContextType.MANIFEST,
              url: t.url,
              reason: h,
              response: t,
              context: d,
              networkDetails: i
            });
          }, l.handleNetworkError = function(t, d, h, i) {
            h === void 0 && (h = !1), C.logger.warn("[playlist-loader]: A network " + (h ? "timeout" : "error") + " occurred while loading " + t.type + " level: " + t.level + " id: " + t.id + ' group-id: "' + t.groupId + '"');
            var r = O.ErrorDetails.UNKNOWN, e = !1, f = this.getInternalLoader(t);
            switch (t.type) {
              case T.PlaylistContextType.MANIFEST:
                r = h ? O.ErrorDetails.MANIFEST_LOAD_TIMEOUT : O.ErrorDetails.MANIFEST_LOAD_ERROR, e = !0;
                break;
              case T.PlaylistContextType.LEVEL:
                r = h ? O.ErrorDetails.LEVEL_LOAD_TIMEOUT : O.ErrorDetails.LEVEL_LOAD_ERROR, e = !1;
                break;
              case T.PlaylistContextType.AUDIO_TRACK:
                r = h ? O.ErrorDetails.AUDIO_TRACK_LOAD_TIMEOUT : O.ErrorDetails.AUDIO_TRACK_LOAD_ERROR, e = !1;
                break;
              case T.PlaylistContextType.SUBTITLE_TRACK:
                r = h ? O.ErrorDetails.SUBTITLE_TRACK_LOAD_TIMEOUT : O.ErrorDetails.SUBTITLE_LOAD_ERROR, e = !1;
                break;
            }
            f && this.resetInternalLoader(t.type);
            var u = {
              type: O.ErrorTypes.NETWORK_ERROR,
              details: r,
              fatal: e,
              url: t.url,
              loader: f,
              context: t,
              networkDetails: d
            };
            i && (u.response = i), this.hls.trigger(y.Events.ERROR, u);
          }, l.handlePlaylistLoaded = function(t, d, h, i) {
            var r = h.type, e = h.level, f = h.id, u = h.groupId, m = h.loader, s = h.levelDetails, v = h.deliveryDirectives;
            if (!(s != null && s.targetduration)) {
              this.handleManifestParsingError(t, h, "invalid target duration", i);
              return;
            }
            if (!!m)
              switch (s.live && (m.getCacheAge && (s.ageHeader = m.getCacheAge() || 0), (!m.getCacheAge || isNaN(s.ageHeader)) && (s.ageHeader = 0)), r) {
                case T.PlaylistContextType.MANIFEST:
                case T.PlaylistContextType.LEVEL:
                  this.hls.trigger(y.Events.LEVEL_LOADED, {
                    details: s,
                    level: e || 0,
                    id: f || 0,
                    stats: d,
                    networkDetails: i,
                    deliveryDirectives: v
                  });
                  break;
                case T.PlaylistContextType.AUDIO_TRACK:
                  this.hls.trigger(y.Events.AUDIO_TRACK_LOADED, {
                    details: s,
                    id: f || 0,
                    groupId: u || "",
                    stats: d,
                    networkDetails: i,
                    deliveryDirectives: v
                  });
                  break;
                case T.PlaylistContextType.SUBTITLE_TRACK:
                  this.hls.trigger(y.Events.SUBTITLE_TRACK_LOADED, {
                    details: s,
                    id: f || 0,
                    groupId: u || "",
                    stats: d,
                    networkDetails: i,
                    deliveryDirectives: v
                  });
                  break;
              }
          }, E;
        }();
        const _ = b;
      },
      "./src/polyfills/number.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          MAX_SAFE_INTEGER: () => y,
          isFiniteNumber: () => P
        });
        var P = Number.isFinite || function(O) {
          return typeof O == "number" && isFinite(O);
        }, y = Number.MAX_SAFE_INTEGER || 9007199254740991;
      },
      "./src/remux/aac-helper.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          default: () => y
        });
        var P = /* @__PURE__ */ function() {
          function O() {
          }
          return O.getSilentFrame = function(F, R) {
            switch (F) {
              case "mp4a.40.2":
                if (R === 1)
                  return new Uint8Array([0, 200, 0, 128, 35, 128]);
                if (R === 2)
                  return new Uint8Array([33, 0, 73, 144, 2, 25, 0, 35, 128]);
                if (R === 3)
                  return new Uint8Array([0, 200, 0, 128, 32, 132, 1, 38, 64, 8, 100, 0, 142]);
                if (R === 4)
                  return new Uint8Array([0, 200, 0, 128, 32, 132, 1, 38, 64, 8, 100, 0, 128, 44, 128, 8, 2, 56]);
                if (R === 5)
                  return new Uint8Array([0, 200, 0, 128, 32, 132, 1, 38, 64, 8, 100, 0, 130, 48, 4, 153, 0, 33, 144, 2, 56]);
                if (R === 6)
                  return new Uint8Array([0, 200, 0, 128, 32, 132, 1, 38, 64, 8, 100, 0, 130, 48, 4, 153, 0, 33, 144, 2, 0, 178, 0, 32, 8, 224]);
                break;
              default:
                if (R === 1)
                  return new Uint8Array([1, 64, 34, 128, 163, 78, 230, 128, 186, 8, 0, 0, 0, 28, 6, 241, 193, 10, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 94]);
                if (R === 2)
                  return new Uint8Array([1, 64, 34, 128, 163, 94, 230, 128, 186, 8, 0, 0, 0, 0, 149, 0, 6, 241, 161, 10, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 94]);
                if (R === 3)
                  return new Uint8Array([1, 64, 34, 128, 163, 94, 230, 128, 186, 8, 0, 0, 0, 0, 149, 0, 6, 241, 161, 10, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 94]);
                break;
            }
          }, O;
        }();
        const y = P;
      },
      "./src/remux/mp4-generator.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          default: () => O
        });
        var P = Math.pow(2, 32) - 1, y = /* @__PURE__ */ function() {
          function C() {
          }
          return C.init = function() {
            C.types = {
              avc1: [],
              avcC: [],
              btrt: [],
              dinf: [],
              dref: [],
              esds: [],
              ftyp: [],
              hdlr: [],
              mdat: [],
              mdhd: [],
              mdia: [],
              mfhd: [],
              minf: [],
              moof: [],
              moov: [],
              mp4a: [],
              ".mp3": [],
              mvex: [],
              mvhd: [],
              pasp: [],
              sdtp: [],
              stbl: [],
              stco: [],
              stsc: [],
              stsd: [],
              stsz: [],
              stts: [],
              tfdt: [],
              tfhd: [],
              traf: [],
              trak: [],
              trun: [],
              trex: [],
              tkhd: [],
              vmhd: [],
              smhd: []
            };
            var R;
            for (R in C.types)
              C.types.hasOwnProperty(R) && (C.types[R] = [R.charCodeAt(0), R.charCodeAt(1), R.charCodeAt(2), R.charCodeAt(3)]);
            var T = new Uint8Array([
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              118,
              105,
              100,
              101,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              86,
              105,
              100,
              101,
              111,
              72,
              97,
              110,
              100,
              108,
              101,
              114,
              0
            ]), D = new Uint8Array([
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              115,
              111,
              117,
              110,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              83,
              111,
              117,
              110,
              100,
              72,
              97,
              110,
              100,
              108,
              101,
              114,
              0
            ]);
            C.HDLR_TYPES = {
              video: T,
              audio: D
            };
            var p = new Uint8Array([
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              1,
              0,
              0,
              0,
              12,
              117,
              114,
              108,
              32,
              0,
              0,
              0,
              1
            ]), S = new Uint8Array([
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0
            ]);
            C.STTS = C.STSC = C.STCO = S, C.STSZ = new Uint8Array([
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0
            ]), C.VMHD = new Uint8Array([
              0,
              0,
              0,
              1,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0
            ]), C.SMHD = new Uint8Array([
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0
            ]), C.STSD = new Uint8Array([
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              1
            ]);
            var b = new Uint8Array([105, 115, 111, 109]), _ = new Uint8Array([97, 118, 99, 49]), E = new Uint8Array([0, 0, 0, 1]);
            C.FTYP = C.box(C.types.ftyp, b, E, b, _), C.DINF = C.box(C.types.dinf, C.box(C.types.dref, p));
          }, C.box = function(R) {
            for (var T = 8, D = arguments.length, p = new Array(D > 1 ? D - 1 : 0), S = 1; S < D; S++)
              p[S - 1] = arguments[S];
            for (var b = p.length, _ = b; b--; )
              T += p[b].byteLength;
            var E = new Uint8Array(T);
            for (E[0] = T >> 24 & 255, E[1] = T >> 16 & 255, E[2] = T >> 8 & 255, E[3] = T & 255, E.set(R, 4), b = 0, T = 8; b < _; b++)
              E.set(p[b], T), T += p[b].byteLength;
            return E;
          }, C.hdlr = function(R) {
            return C.box(C.types.hdlr, C.HDLR_TYPES[R]);
          }, C.mdat = function(R) {
            return C.box(C.types.mdat, R);
          }, C.mdhd = function(R, T) {
            T *= R;
            var D = Math.floor(T / (P + 1)), p = Math.floor(T % (P + 1));
            return C.box(C.types.mdhd, new Uint8Array([
              1,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              2,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              3,
              R >> 24 & 255,
              R >> 16 & 255,
              R >> 8 & 255,
              R & 255,
              D >> 24,
              D >> 16 & 255,
              D >> 8 & 255,
              D & 255,
              p >> 24,
              p >> 16 & 255,
              p >> 8 & 255,
              p & 255,
              85,
              196,
              0,
              0
            ]));
          }, C.mdia = function(R) {
            return C.box(C.types.mdia, C.mdhd(R.timescale, R.duration), C.hdlr(R.type), C.minf(R));
          }, C.mfhd = function(R) {
            return C.box(C.types.mfhd, new Uint8Array([
              0,
              0,
              0,
              0,
              R >> 24,
              R >> 16 & 255,
              R >> 8 & 255,
              R & 255
            ]));
          }, C.minf = function(R) {
            return R.type === "audio" ? C.box(C.types.minf, C.box(C.types.smhd, C.SMHD), C.DINF, C.stbl(R)) : C.box(C.types.minf, C.box(C.types.vmhd, C.VMHD), C.DINF, C.stbl(R));
          }, C.moof = function(R, T, D) {
            return C.box(C.types.moof, C.mfhd(R), C.traf(D, T));
          }, C.moov = function(R) {
            for (var T = R.length, D = []; T--; )
              D[T] = C.trak(R[T]);
            return C.box.apply(null, [C.types.moov, C.mvhd(R[0].timescale, R[0].duration)].concat(D).concat(C.mvex(R)));
          }, C.mvex = function(R) {
            for (var T = R.length, D = []; T--; )
              D[T] = C.trex(R[T]);
            return C.box.apply(null, [C.types.mvex].concat(D));
          }, C.mvhd = function(R, T) {
            T *= R;
            var D = Math.floor(T / (P + 1)), p = Math.floor(T % (P + 1)), S = new Uint8Array([
              1,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              2,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              3,
              R >> 24 & 255,
              R >> 16 & 255,
              R >> 8 & 255,
              R & 255,
              D >> 24,
              D >> 16 & 255,
              D >> 8 & 255,
              D & 255,
              p >> 24,
              p >> 16 & 255,
              p >> 8 & 255,
              p & 255,
              0,
              1,
              0,
              0,
              1,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              1,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              1,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              64,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              255,
              255,
              255,
              255
            ]);
            return C.box(C.types.mvhd, S);
          }, C.sdtp = function(R) {
            var T = R.samples || [], D = new Uint8Array(4 + T.length), p, S;
            for (p = 0; p < T.length; p++)
              S = T[p].flags, D[p + 4] = S.dependsOn << 4 | S.isDependedOn << 2 | S.hasRedundancy;
            return C.box(C.types.sdtp, D);
          }, C.stbl = function(R) {
            return C.box(C.types.stbl, C.stsd(R), C.box(C.types.stts, C.STTS), C.box(C.types.stsc, C.STSC), C.box(C.types.stsz, C.STSZ), C.box(C.types.stco, C.STCO));
          }, C.avc1 = function(R) {
            var T = [], D = [], p, S, b;
            for (p = 0; p < R.sps.length; p++)
              S = R.sps[p], b = S.byteLength, T.push(b >>> 8 & 255), T.push(b & 255), T = T.concat(Array.prototype.slice.call(S));
            for (p = 0; p < R.pps.length; p++)
              S = R.pps[p], b = S.byteLength, D.push(b >>> 8 & 255), D.push(b & 255), D = D.concat(Array.prototype.slice.call(S));
            var _ = C.box(C.types.avcC, new Uint8Array([
              1,
              T[3],
              T[4],
              T[5],
              255,
              224 | R.sps.length
            ].concat(T).concat([
              R.pps.length
            ]).concat(D))), E = R.width, l = R.height, n = R.pixelRatio[0], t = R.pixelRatio[1];
            return C.box(
              C.types.avc1,
              new Uint8Array([
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                1,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                E >> 8 & 255,
                E & 255,
                l >> 8 & 255,
                l & 255,
                0,
                72,
                0,
                0,
                0,
                72,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                1,
                18,
                100,
                97,
                105,
                108,
                121,
                109,
                111,
                116,
                105,
                111,
                110,
                47,
                104,
                108,
                115,
                46,
                106,
                115,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                24,
                17,
                17
              ]),
              _,
              C.box(C.types.btrt, new Uint8Array([
                0,
                28,
                156,
                128,
                0,
                45,
                198,
                192,
                0,
                45,
                198,
                192
              ])),
              C.box(C.types.pasp, new Uint8Array([
                n >> 24,
                n >> 16 & 255,
                n >> 8 & 255,
                n & 255,
                t >> 24,
                t >> 16 & 255,
                t >> 8 & 255,
                t & 255
              ]))
            );
          }, C.esds = function(R) {
            var T = R.config.length;
            return new Uint8Array([
              0,
              0,
              0,
              0,
              3,
              23 + T,
              0,
              1,
              0,
              4,
              15 + T,
              64,
              21,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              5
            ].concat([T]).concat(R.config).concat([6, 1, 2]));
          }, C.mp4a = function(R) {
            var T = R.samplerate;
            return C.box(C.types.mp4a, new Uint8Array([
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              1,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              R.channelCount,
              0,
              16,
              0,
              0,
              0,
              0,
              T >> 8 & 255,
              T & 255,
              0,
              0
            ]), C.box(C.types.esds, C.esds(R)));
          }, C.mp3 = function(R) {
            var T = R.samplerate;
            return C.box(C.types[".mp3"], new Uint8Array([
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              1,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              R.channelCount,
              0,
              16,
              0,
              0,
              0,
              0,
              T >> 8 & 255,
              T & 255,
              0,
              0
            ]));
          }, C.stsd = function(R) {
            return R.type === "audio" ? R.segmentCodec === "mp3" && R.codec === "mp3" ? C.box(C.types.stsd, C.STSD, C.mp3(R)) : C.box(C.types.stsd, C.STSD, C.mp4a(R)) : C.box(C.types.stsd, C.STSD, C.avc1(R));
          }, C.tkhd = function(R) {
            var T = R.id, D = R.duration * R.timescale, p = R.width, S = R.height, b = Math.floor(D / (P + 1)), _ = Math.floor(D % (P + 1));
            return C.box(C.types.tkhd, new Uint8Array([
              1,
              0,
              0,
              7,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              2,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              3,
              T >> 24 & 255,
              T >> 16 & 255,
              T >> 8 & 255,
              T & 255,
              0,
              0,
              0,
              0,
              b >> 24,
              b >> 16 & 255,
              b >> 8 & 255,
              b & 255,
              _ >> 24,
              _ >> 16 & 255,
              _ >> 8 & 255,
              _ & 255,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              1,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              1,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              64,
              0,
              0,
              0,
              p >> 8 & 255,
              p & 255,
              0,
              0,
              S >> 8 & 255,
              S & 255,
              0,
              0
            ]));
          }, C.traf = function(R, T) {
            var D = C.sdtp(R), p = R.id, S = Math.floor(T / (P + 1)), b = Math.floor(T % (P + 1));
            return C.box(
              C.types.traf,
              C.box(C.types.tfhd, new Uint8Array([
                0,
                0,
                0,
                0,
                p >> 24,
                p >> 16 & 255,
                p >> 8 & 255,
                p & 255
              ])),
              C.box(C.types.tfdt, new Uint8Array([
                1,
                0,
                0,
                0,
                S >> 24,
                S >> 16 & 255,
                S >> 8 & 255,
                S & 255,
                b >> 24,
                b >> 16 & 255,
                b >> 8 & 255,
                b & 255
              ])),
              C.trun(R, D.length + 16 + 20 + 8 + 16 + 8 + 8),
              D
            );
          }, C.trak = function(R) {
            return R.duration = R.duration || 4294967295, C.box(C.types.trak, C.tkhd(R), C.mdia(R));
          }, C.trex = function(R) {
            var T = R.id;
            return C.box(C.types.trex, new Uint8Array([
              0,
              0,
              0,
              0,
              T >> 24,
              T >> 16 & 255,
              T >> 8 & 255,
              T & 255,
              0,
              0,
              0,
              1,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              1,
              0,
              1
            ]));
          }, C.trun = function(R, T) {
            var D = R.samples || [], p = D.length, S = 12 + 16 * p, b = new Uint8Array(S), _, E, l, n, t, d;
            for (T += 8 + S, b.set([
              R.type === "video" ? 1 : 0,
              0,
              15,
              1,
              p >>> 24 & 255,
              p >>> 16 & 255,
              p >>> 8 & 255,
              p & 255,
              T >>> 24 & 255,
              T >>> 16 & 255,
              T >>> 8 & 255,
              T & 255
            ], 0), _ = 0; _ < p; _++)
              E = D[_], l = E.duration, n = E.size, t = E.flags, d = E.cts, b.set([
                l >>> 24 & 255,
                l >>> 16 & 255,
                l >>> 8 & 255,
                l & 255,
                n >>> 24 & 255,
                n >>> 16 & 255,
                n >>> 8 & 255,
                n & 255,
                t.isLeading << 2 | t.dependsOn,
                t.isDependedOn << 6 | t.hasRedundancy << 4 | t.paddingValue << 1 | t.isNonSync,
                t.degradPrio & 240 << 8,
                t.degradPrio & 15,
                d >>> 24 & 255,
                d >>> 16 & 255,
                d >>> 8 & 255,
                d & 255
              ], 12 + 16 * _);
            return C.box(C.types.trun, b);
          }, C.initSegment = function(R) {
            C.types || C.init();
            var T = C.moov(R), D = new Uint8Array(C.FTYP.byteLength + T.byteLength);
            return D.set(C.FTYP), D.set(T, C.FTYP.byteLength), D;
          }, C;
        }();
        y.types = void 0, y.HDLR_TYPES = void 0, y.STTS = void 0, y.STSC = void 0, y.STCO = void 0, y.STSZ = void 0, y.VMHD = void 0, y.SMHD = void 0, y.STSD = void 0, y.FTYP = void 0, y.DINF = void 0;
        const O = y;
      },
      "./src/remux/mp4-remuxer.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          default: () => n,
          flushTextTrackMetadataCueSamples: () => h,
          flushTextTrackUserdataCueSamples: () => i,
          normalizePts: () => t
        });
        var P = g("./src/polyfills/number.ts"), y = g("./src/remux/aac-helper.ts"), O = g("./src/remux/mp4-generator.ts"), C = g("./src/events.ts"), F = g("./src/errors.ts"), R = g("./src/utils/logger.ts"), T = g("./src/types/loader.ts"), D = g("./src/utils/timescale-conversion.ts");
        function p() {
          return p = Object.assign ? Object.assign.bind() : function(f) {
            for (var u = 1; u < arguments.length; u++) {
              var m = arguments[u];
              for (var s in m)
                Object.prototype.hasOwnProperty.call(m, s) && (f[s] = m[s]);
            }
            return f;
          }, p.apply(this, arguments);
        }
        var S = 10 * 1e3, b = 1024, _ = 1152, E = null, l = null, n = /* @__PURE__ */ function() {
          function f(m, s, v, c) {
            if (this.observer = void 0, this.config = void 0, this.typeSupported = void 0, this.ISGenerated = !1, this._initPTS = void 0, this._initDTS = void 0, this.nextAvcDts = null, this.nextAudioPts = null, this.videoSampleDuration = null, this.isAudioContiguous = !1, this.isVideoContiguous = !1, this.observer = m, this.config = s, this.typeSupported = v, this.ISGenerated = !1, E === null) {
              var o = navigator.userAgent || "", a = o.match(/Chrome\/(\d+)/i);
              E = a ? parseInt(a[1]) : 0;
            }
            if (l === null) {
              var x = navigator.userAgent.match(/Safari\/(\d+)/i);
              l = x ? parseInt(x[1]) : 0;
            }
          }
          var u = f.prototype;
          return u.destroy = function() {
          }, u.resetTimeStamp = function(s) {
            R.logger.log("[mp4-remuxer]: initPTS & initDTS reset"), this._initPTS = this._initDTS = s;
          }, u.resetNextTimestamp = function() {
            R.logger.log("[mp4-remuxer]: reset next timestamp"), this.isVideoContiguous = !1, this.isAudioContiguous = !1;
          }, u.resetInitSegment = function() {
            R.logger.log("[mp4-remuxer]: ISGenerated flag reset"), this.ISGenerated = !1;
          }, u.getVideoStartPts = function(s) {
            var v = !1, c = s.reduce(function(o, a) {
              var x = a.pts - o;
              return x < -4294967296 ? (v = !0, t(o, a.pts)) : x > 0 ? o : a.pts;
            }, s[0].pts);
            return v && R.logger.debug("PTS rollover detected"), c;
          }, u.remux = function(s, v, c, o, a, x, k, K) {
            var w, W, z, H, j, Y, Z = a, q = a, ee = s.pid > -1, te = v.pid > -1, ne = v.samples.length, ie = s.samples.length > 0, oe = k && ne > 0 || ne > 1, de = (!ee || ie) && (!te || oe) || this.ISGenerated || k;
            if (de) {
              this.ISGenerated || (z = this.generateIS(s, v, a));
              var re = this.isVideoContiguous, le = -1, me;
              if (oe && (le = d(v.samples), !re && this.config.forceKeyFrameOnDiscontinuity))
                if (Y = !0, le > 0) {
                  R.logger.warn("[mp4-remuxer]: Dropped " + le + " out of " + ne + " video samples due to a missing keyframe");
                  var ve = this.getVideoStartPts(v.samples);
                  v.samples = v.samples.slice(le), v.dropped += le, q += (v.samples[0].pts - ve) / v.inputTimeScale, me = q;
                } else
                  le === -1 && (R.logger.warn("[mp4-remuxer]: No keyframe found out of " + ne + " video samples"), Y = !1);
              if (this.ISGenerated) {
                if (ie && oe) {
                  var pe = this.getVideoStartPts(v.samples), Pe = t(s.samples[0].pts, pe) - pe, ye = Pe / v.inputTimeScale;
                  Z += Math.max(0, ye), q += Math.max(0, -ye);
                }
                if (ie) {
                  if (s.samplerate || (R.logger.warn("[mp4-remuxer]: regenerate InitSegment as audio detected"), z = this.generateIS(s, v, a)), W = this.remuxAudio(s, Z, this.isAudioContiguous, x, te || oe || K === T.PlaylistLevelType.AUDIO ? q : void 0), oe) {
                    var Ce = W ? W.endPTS - W.startPTS : 0;
                    v.inputTimeScale || (R.logger.warn("[mp4-remuxer]: regenerate InitSegment as video detected"), z = this.generateIS(s, v, a)), w = this.remuxVideo(v, q, re, Ce);
                  }
                } else
                  oe && (w = this.remuxVideo(v, q, re, 0));
                w && (w.firstKeyFrame = le, w.independent = le !== -1, w.firstKeyFramePTS = me);
              }
            }
            return this.ISGenerated && (c.samples.length && (j = h(c, a, this._initPTS, this._initDTS)), o.samples.length && (H = i(o, a, this._initPTS))), {
              audio: W,
              video: w,
              initSegment: z,
              independent: Y,
              text: H,
              id3: j
            };
          }, u.generateIS = function(s, v, c) {
            var o = s.samples, a = v.samples, x = this.typeSupported, k = {}, K = !(0, P.isFiniteNumber)(this._initPTS), w = "audio/mp4", W, z, H;
            if (K && (W = z = 1 / 0), s.config && o.length) {
              switch (s.timescale = s.samplerate, s.segmentCodec) {
                case "mp3":
                  x.mpeg ? (w = "audio/mpeg", s.codec = "") : x.mp3 && (s.codec = "mp3");
                  break;
              }
              k.audio = {
                id: "audio",
                container: w,
                codec: s.codec,
                initSegment: s.segmentCodec === "mp3" && x.mpeg ? new Uint8Array(0) : O.default.initSegment([s]),
                metadata: {
                  channelCount: s.channelCount
                }
              }, K && (H = s.inputTimeScale, W = z = o[0].pts - Math.round(H * c));
            }
            if (v.sps && v.pps && a.length && (v.timescale = v.inputTimeScale, k.video = {
              id: "main",
              container: "video/mp4",
              codec: v.codec,
              initSegment: O.default.initSegment([v]),
              metadata: {
                width: v.width,
                height: v.height
              }
            }, K)) {
              H = v.inputTimeScale;
              var j = this.getVideoStartPts(a), Y = Math.round(H * c);
              z = Math.min(z, t(a[0].dts, j) - Y), W = Math.min(W, j - Y);
            }
            if (Object.keys(k).length)
              return this.ISGenerated = !0, K && (this._initPTS = W, this._initDTS = z), {
                tracks: k,
                initPTS: W,
                timescale: H
              };
          }, u.remuxVideo = function(s, v, c, o) {
            var a = s.inputTimeScale, x = s.samples, k = [], K = x.length, w = this._initPTS, W = this.nextAvcDts, z = 8, H = this.videoSampleDuration, j, Y, Z = Number.POSITIVE_INFINITY, q = Number.NEGATIVE_INFINITY, ee = !1;
            if (!c || W === null) {
              var te = v * a, ne = x[0].pts - t(x[0].dts, x[0].pts);
              W = te - ne;
            }
            for (var ie = 0; ie < K; ie++) {
              var oe = x[ie];
              oe.pts = t(oe.pts - w, W), oe.dts = t(oe.dts - w, W), oe.dts < x[ie > 0 ? ie - 1 : ie].dts && (ee = !0);
            }
            ee && x.sort(function(Ut, Zt) {
              var ai = Ut.dts - Zt.dts, si = Ut.pts - Zt.pts;
              return ai || si;
            }), j = x[0].dts, Y = x[x.length - 1].dts;
            var de = Y - j, re = de ? Math.round(de / (K - 1)) : H || s.inputTimeScale / 30;
            if (c) {
              var le = j - W, me = le > re, ve = le < -1;
              if ((me || ve) && (me ? R.logger.warn("AVC: " + (0, D.toMsFromMpegTsClock)(le, !0) + " ms (" + le + "dts) hole between fragments detected, filling it") : R.logger.warn("AVC: " + (0, D.toMsFromMpegTsClock)(-le, !0) + " ms (" + le + "dts) overlapping between fragments detected"), !ve || W > x[0].pts)) {
                j = W;
                var pe = x[0].pts - le;
                x[0].dts = j, x[0].pts = pe, R.logger.log("Video: First PTS/DTS adjusted: " + (0, D.toMsFromMpegTsClock)(pe, !0) + "/" + (0, D.toMsFromMpegTsClock)(j, !0) + ", delta: " + (0, D.toMsFromMpegTsClock)(le, !0) + " ms");
              }
            }
            j = Math.max(0, j);
            for (var Pe = 0, ye = 0, Ce = 0; Ce < K; Ce++) {
              for (var Oe = x[Ce], Ae = Oe.units, Fe = Ae.length, We = 0, He = 0; He < Fe; He++)
                We += Ae[He].data.length;
              ye += We, Pe += Fe, Oe.length = We, Oe.dts = Math.max(Oe.dts, j), Z = Math.min(Oe.pts, Z), q = Math.max(Oe.pts, q);
            }
            Y = x[K - 1].dts;
            var Ge = ye + 4 * Pe + 8, we;
            try {
              we = new Uint8Array(Ge);
            } catch {
              this.observer.emit(C.Events.ERROR, C.Events.ERROR, {
                type: F.ErrorTypes.MUX_ERROR,
                details: F.ErrorDetails.REMUX_ALLOC_ERROR,
                fatal: !1,
                bytes: Ge,
                reason: "fail allocating video mdat " + Ge
              });
              return;
            }
            var Be = new DataView(we.buffer);
            Be.setUint32(0, Ge), we.set(O.default.types.mdat, 4);
            for (var Ee = !1, rt = Number.POSITIVE_INFINITY, Le = Number.POSITIVE_INFINITY, Me = Number.NEGATIVE_INFINITY, je = Number.NEGATIVE_INFINITY, be = 0; be < K; be++) {
              for (var ke = x[be], ze = ke.units, ot = 0, lt = 0, vt = ze.length; lt < vt; lt++) {
                var Qe = ze[lt], xt = Qe.data, ut = Qe.data.byteLength;
                Be.setUint32(z, ut), z += 4, we.set(xt, z), z += ut, ot += 4 + ut;
              }
              var it = void 0;
              if (be < K - 1)
                H = x[be + 1].dts - ke.dts, it = x[be + 1].pts - ke.pts;
              else {
                var gt = this.config, ft = be > 0 ? ke.dts - x[be - 1].dts : re;
                if (it = be > 0 ? ke.pts - x[be - 1].pts : re, gt.stretchShortVideoTrack && this.nextAudioPts !== null) {
                  var yt = Math.floor(gt.maxBufferHole * a), Q = (o ? Z + o * a : this.nextAudioPts) - ke.pts;
                  Q > yt ? (H = Q - ft, H < 0 ? H = ft : Ee = !0, R.logger.log("[mp4-remuxer]: It is approximately " + Q / 90 + " ms to the next segment; using duration " + H / 90 + " ms for the last video frame.")) : H = ft;
                } else
                  H = ft;
              }
              var ge = Math.round(ke.pts - ke.dts);
              rt = Math.min(rt, H), Me = Math.max(Me, H), Le = Math.min(Le, it), je = Math.max(je, it), k.push(new r(ke.key, H, ot, ge));
            }
            if (k.length) {
              if (E) {
                if (E < 70) {
                  var Ue = k[0].flags;
                  Ue.dependsOn = 2, Ue.isNonSync = 0;
                }
              } else if (l && je - Le < Me - rt && re / Me < 0.025 && k[0].cts === 0) {
                R.logger.warn("Found irregular gaps in sample duration. Using PTS instead of DTS to determine MP4 sample duration.");
                for (var Xe = j, Ve = 0, Xt = k.length; Ve < Xt; Ve++) {
                  var Qt = Xe + k[Ve].duration, ei = Xe + k[Ve].cts;
                  if (Ve < Xt - 1) {
                    var ti = Qt + k[Ve + 1].cts;
                    k[Ve].duration = ti - ei;
                  } else
                    k[Ve].duration = Ve ? k[Ve - 1].duration : re;
                  k[Ve].cts = 0, Xe = Qt;
                }
              }
            }
            console.assert(H !== null, "mp4SampleDuration must be computed"), H = Ee || !H ? re : H, this.nextAvcDts = W = Y + H, this.videoSampleDuration = H, this.isVideoContiguous = !0;
            var ri = O.default.moof(s.sequenceNumber++, j, p({}, s, {
              samples: k
            })), ii = "video", ni = {
              data1: ri,
              data2: we,
              startPTS: Z / a,
              endPTS: (q + H) / a,
              startDTS: j / a,
              endDTS: W / a,
              type: ii,
              hasAudio: !1,
              hasVideo: !0,
              nb: k.length,
              dropped: s.dropped
            };
            return s.samples = [], s.dropped = 0, console.assert(we.length, "MDAT length must not be zero"), ni;
          }, u.remuxAudio = function(s, v, c, o, a) {
            var x = s.inputTimeScale, k = s.samplerate ? s.samplerate : x, K = x / k, w = s.segmentCodec === "aac" ? b : _, W = w * K, z = this._initPTS, H = s.segmentCodec === "mp3" && this.typeSupported.mpeg, j = [], Y = a !== void 0, Z = s.samples, q = H ? 0 : 8, ee = this.nextAudioPts || -1, te = v * x;
            if (this.isAudioContiguous = c = c || Z.length && ee > 0 && (o && Math.abs(te - ee) < 9e3 || Math.abs(t(Z[0].pts - z, te) - ee) < 20 * W), Z.forEach(function(Qe) {
              Qe.pts = t(Qe.pts - z, te);
            }), !c || ee < 0) {
              if (Z = Z.filter(function(Qe) {
                return Qe.pts >= 0;
              }), !Z.length)
                return;
              a === 0 ? ee = 0 : o && !Y ? ee = Math.max(0, te) : ee = Z[0].pts;
            }
            if (s.segmentCodec === "aac")
              for (var ne = this.config.maxAudioFramesDrift, ie = 0, oe = ee; ie < Z.length; ie++) {
                var de = Z[ie], re = de.pts, le = re - oe, me = Math.abs(1e3 * le / x);
                if (le <= -ne * W && Y)
                  ie === 0 && (R.logger.warn("Audio frame @ " + (re / x).toFixed(3) + "s overlaps nextAudioPts by " + Math.round(1e3 * le / x) + " ms."), this.nextAudioPts = ee = oe = re);
                else if (le >= ne * W && me < S && Y) {
                  var ve = Math.round(le / W);
                  oe = re - ve * W, oe < 0 && (ve--, oe += W), ie === 0 && (this.nextAudioPts = ee = oe), R.logger.warn("[mp4-remuxer]: Injecting " + ve + " audio frame @ " + (oe / x).toFixed(3) + "s due to " + Math.round(1e3 * le / x) + " ms gap.");
                  for (var pe = 0; pe < ve; pe++) {
                    var Pe = Math.max(oe, 0), ye = y.default.getSilentFrame(s.manifestCodec || s.codec, s.channelCount);
                    ye || (R.logger.log("[mp4-remuxer]: Unable to get silent frame for given audio codec; duplicating last frame instead."), ye = de.unit.subarray()), Z.splice(ie, 0, {
                      unit: ye,
                      pts: Pe
                    }), oe += W, ie++;
                  }
                }
                de.pts = oe, oe += W;
              }
            for (var Ce = null, Oe = null, Ae, Fe = 0, We = Z.length; We--; )
              Fe += Z[We].unit.byteLength;
            for (var He = 0, Ge = Z.length; He < Ge; He++) {
              var we = Z[He], Be = we.unit, Ee = we.pts;
              if (Oe !== null) {
                var rt = j[He - 1];
                rt.duration = Math.round((Ee - Oe) / K);
              } else if (c && s.segmentCodec === "aac" && (Ee = ee), Ce = Ee, Fe > 0) {
                Fe += q;
                try {
                  Ae = new Uint8Array(Fe);
                } catch {
                  this.observer.emit(C.Events.ERROR, C.Events.ERROR, {
                    type: F.ErrorTypes.MUX_ERROR,
                    details: F.ErrorDetails.REMUX_ALLOC_ERROR,
                    fatal: !1,
                    bytes: Fe,
                    reason: "fail allocating audio mdat " + Fe
                  });
                  return;
                }
                if (!H) {
                  var Le = new DataView(Ae.buffer);
                  Le.setUint32(0, Fe), Ae.set(O.default.types.mdat, 4);
                }
              } else
                return;
              Ae.set(Be, q);
              var Me = Be.byteLength;
              q += Me, j.push(new r(!0, w, Me, 0)), Oe = Ee;
            }
            var je = j.length;
            if (!!je) {
              var be = j[j.length - 1];
              this.nextAudioPts = ee = Oe + K * be.duration;
              var ke = H ? new Uint8Array(0) : O.default.moof(s.sequenceNumber++, Ce / K, p({}, s, {
                samples: j
              }));
              s.samples = [];
              var ze = Ce / x, ot = ee / x, lt = "audio", vt = {
                data1: ke,
                data2: Ae,
                startPTS: ze,
                endPTS: ot,
                startDTS: ze,
                endDTS: ot,
                type: lt,
                hasAudio: !0,
                hasVideo: !1,
                nb: je
              };
              return this.isAudioContiguous = !0, console.assert(Ae.length, "MDAT length must not be zero"), vt;
            }
          }, u.remuxEmptyAudio = function(s, v, c, o) {
            var a = s.inputTimeScale, x = s.samplerate ? s.samplerate : a, k = a / x, K = this.nextAudioPts, w = (K !== null ? K : o.startDTS * a) + this._initDTS, W = o.endDTS * a + this._initDTS, z = k * b, H = Math.ceil((W - w) / z), j = y.default.getSilentFrame(s.manifestCodec || s.codec, s.channelCount);
            if (R.logger.warn("[mp4-remuxer]: remux empty Audio"), !j) {
              R.logger.trace("[mp4-remuxer]: Unable to remuxEmptyAudio since we were unable to get a silent frame for given audio codec");
              return;
            }
            for (var Y = [], Z = 0; Z < H; Z++) {
              var q = w + Z * z;
              Y.push({
                unit: j,
                pts: q,
                dts: q
              });
            }
            return s.samples = Y, this.remuxAudio(s, v, c, !1);
          }, f;
        }();
        function t(f, u) {
          var m;
          if (u === null)
            return f;
          for (u < f ? m = -8589934592 : m = 8589934592; Math.abs(f - u) > 4294967296; )
            f += m;
          return f;
        }
        function d(f) {
          for (var u = 0; u < f.length; u++)
            if (f[u].key)
              return u;
          return -1;
        }
        function h(f, u, m, s) {
          var v = f.samples.length;
          if (!!v) {
            for (var c = f.inputTimeScale, o = 0; o < v; o++) {
              var a = f.samples[o];
              a.pts = t(a.pts - m, u * c) / c, a.dts = t(a.dts - s, u * c) / c;
            }
            var x = f.samples;
            return f.samples = [], {
              samples: x
            };
          }
        }
        function i(f, u, m) {
          var s = f.samples.length;
          if (!!s) {
            for (var v = f.inputTimeScale, c = 0; c < s; c++) {
              var o = f.samples[c];
              o.pts = t(o.pts - m, u * v) / v;
            }
            f.samples.sort(function(x, k) {
              return x.pts - k.pts;
            });
            var a = f.samples;
            return f.samples = [], {
              samples: a
            };
          }
        }
        var r = function(u, m, s, v) {
          this.size = void 0, this.duration = void 0, this.cts = void 0, this.flags = void 0, this.duration = m, this.size = s, this.cts = v, this.flags = new e(u);
        }, e = function(u) {
          this.isLeading = 0, this.isDependedOn = 0, this.hasRedundancy = 0, this.degradPrio = 0, this.dependsOn = 1, this.isNonSync = 1, this.dependsOn = u ? 2 : 1, this.isNonSync = u ? 0 : 1;
        };
      },
      "./src/remux/passthrough-remuxer.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          default: () => D
        });
        var P = g("./src/polyfills/number.ts"), y = g("./src/remux/mp4-remuxer.ts"), O = g("./src/utils/mp4-tools.ts"), C = g("./src/loader/fragment.ts"), F = g("./src/utils/logger.ts"), R = /* @__PURE__ */ function() {
          function p() {
            this.emitInitSegment = !1, this.audioCodec = void 0, this.videoCodec = void 0, this.initData = void 0, this.initPTS = void 0, this.initTracks = void 0, this.lastEndTime = null;
          }
          var S = p.prototype;
          return S.destroy = function() {
          }, S.resetTimeStamp = function(_) {
            this.initPTS = _, this.lastEndTime = null;
          }, S.resetNextTimestamp = function() {
            this.lastEndTime = null;
          }, S.resetInitSegment = function(_, E, l) {
            this.audioCodec = E, this.videoCodec = l, this.generateInitSegment(_), this.emitInitSegment = !0;
          }, S.generateInitSegment = function(_) {
            var E = this.audioCodec, l = this.videoCodec;
            if (!_ || !_.byteLength) {
              this.initTracks = void 0, this.initData = void 0;
              return;
            }
            var n = this.initData = (0, O.parseInitSegment)(_);
            E || (E = T(n.audio, C.ElementaryStreamTypes.AUDIO)), l || (l = T(n.video, C.ElementaryStreamTypes.VIDEO));
            var t = {};
            n.audio && n.video ? t.audiovideo = {
              container: "video/mp4",
              codec: E + "," + l,
              initSegment: _,
              id: "main"
            } : n.audio ? t.audio = {
              container: "audio/mp4",
              codec: E,
              initSegment: _,
              id: "audio"
            } : n.video ? t.video = {
              container: "video/mp4",
              codec: l,
              initSegment: _,
              id: "main"
            } : F.logger.warn("[passthrough-remuxer.ts]: initSegment does not contain moov or trak boxes."), this.initTracks = t;
          }, S.remux = function(_, E, l, n, t) {
            var d, h = this.initPTS, i = this.lastEndTime, r = {
              audio: void 0,
              video: void 0,
              text: n,
              id3: l,
              initSegment: void 0
            };
            (0, P.isFiniteNumber)(i) || (i = this.lastEndTime = t || 0);
            var e = E.samples;
            if (!e || !e.length)
              return r;
            var f = {
              initPTS: void 0,
              timescale: 1
            }, u = this.initData;
            if ((!u || !u.length) && (this.generateInitSegment(e), u = this.initData), !u || !u.length)
              return F.logger.warn("[passthrough-remuxer.ts]: Failed to generate initSegment."), r;
            this.emitInitSegment && (f.tracks = this.initTracks, this.emitInitSegment = !1);
            var m = (0, O.getStartDTS)(u, e);
            (0, P.isFiniteNumber)(h) || (this.initPTS = f.initPTS = h = m - t);
            var s = (0, O.getDuration)(e, u), v = _ ? m - h : i, c = v + s;
            (0, O.offsetStartDTS)(u, e, h), s > 0 ? this.lastEndTime = c : (F.logger.warn("Duration parsed from mp4 should be greater than zero"), this.resetNextTimestamp());
            var o = !!u.audio, a = !!u.video, x = "";
            o && (x += "audio"), a && (x += "video");
            var k = {
              data1: e,
              startPTS: v,
              startDTS: v,
              endPTS: c,
              endDTS: c,
              type: x,
              hasAudio: o,
              hasVideo: a,
              nb: 1,
              dropped: 0
            };
            r.audio = k.type === "audio" ? k : void 0, r.video = k.type !== "audio" ? k : void 0, r.initSegment = f;
            var K = (d = this.initPTS) != null ? d : 0;
            return r.id3 = (0, y.flushTextTrackMetadataCueSamples)(l, t, K, K), n.samples.length && (r.text = (0, y.flushTextTrackUserdataCueSamples)(n, t, K)), r;
          }, p;
        }();
        function T(p, S) {
          var b = p == null ? void 0 : p.codec;
          return b && b.length > 4 ? b : b === "hvc1" || b === "hev1" ? "hvc1.1.c.L120.90" : b === "av01" ? "av01.0.04M.08" : b === "avc1" || S === C.ElementaryStreamTypes.VIDEO ? "avc1.42e01e" : "mp4a.40.5";
        }
        const D = R;
      },
      "./src/task-loop.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          default: () => P
        });
        var P = /* @__PURE__ */ function() {
          function y() {
            this._boundTick = void 0, this._tickTimer = null, this._tickInterval = null, this._tickCallCount = 0, this._boundTick = this.tick.bind(this);
          }
          var O = y.prototype;
          return O.destroy = function() {
            this.onHandlerDestroying(), this.onHandlerDestroyed();
          }, O.onHandlerDestroying = function() {
            this.clearNextTick(), this.clearInterval();
          }, O.onHandlerDestroyed = function() {
          }, O.hasInterval = function() {
            return !!this._tickInterval;
          }, O.hasNextTick = function() {
            return !!this._tickTimer;
          }, O.setInterval = function(F) {
            return this._tickInterval ? !1 : (this._tickInterval = self.setInterval(this._boundTick, F), !0);
          }, O.clearInterval = function() {
            return this._tickInterval ? (self.clearInterval(this._tickInterval), this._tickInterval = null, !0) : !1;
          }, O.clearNextTick = function() {
            return this._tickTimer ? (self.clearTimeout(this._tickTimer), this._tickTimer = null, !0) : !1;
          }, O.tick = function() {
            this._tickCallCount++, this._tickCallCount === 1 && (this.doTick(), this._tickCallCount > 1 && this.tickImmediate(), this._tickCallCount = 0);
          }, O.tickImmediate = function() {
            this.clearNextTick(), this._tickTimer = self.setTimeout(this._boundTick, 0);
          }, O.doTick = function() {
          }, y;
        }();
      },
      "./src/types/cmcd.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          CMCDObjectType: () => y,
          CMCDStreamType: () => C,
          CMCDStreamingFormat: () => O,
          CMCDVersion: () => P
        });
        var P = 1, y;
        (function(F) {
          F.MANIFEST = "m", F.AUDIO = "a", F.VIDEO = "v", F.MUXED = "av", F.INIT = "i", F.CAPTION = "c", F.TIMED_TEXT = "tt", F.KEY = "k", F.OTHER = "o";
        })(y || (y = {}));
        var O;
        (function(F) {
          F.DASH = "d", F.HLS = "h", F.SMOOTH = "s", F.OTHER = "o";
        })(O || (O = {}));
        var C;
        (function(F) {
          F.VOD = "v", F.LIVE = "l";
        })(C || (C = {}));
      },
      "./src/types/demuxer.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          MetadataSchema: () => P
        });
        var P;
        (function(y) {
          y.audioId3 = "org.id3", y.dateRange = "com.apple.quicktime.HLS", y.emsg = "https://aomedia.org/emsg/ID3";
        })(P || (P = {}));
      },
      "./src/types/level.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          HlsSkip: () => O,
          HlsUrlParameters: () => F,
          Level: () => R,
          getSkipValue: () => C
        });
        function P(T, D) {
          for (var p = 0; p < D.length; p++) {
            var S = D[p];
            S.enumerable = S.enumerable || !1, S.configurable = !0, "value" in S && (S.writable = !0), Object.defineProperty(T, S.key, S);
          }
        }
        function y(T, D, p) {
          return D && P(T.prototype, D), p && P(T, p), Object.defineProperty(T, "prototype", { writable: !1 }), T;
        }
        var O;
        (function(T) {
          T.No = "", T.Yes = "YES", T.v2 = "v2";
        })(O || (O = {}));
        function C(T, D) {
          var p = T.canSkipUntil, S = T.canSkipDateRanges, b = T.endSN, _ = D !== void 0 ? D - b : 0;
          return p && _ < p ? S ? O.v2 : O.Yes : O.No;
        }
        var F = /* @__PURE__ */ function() {
          function T(p, S, b) {
            this.msn = void 0, this.part = void 0, this.skip = void 0, this.msn = p, this.part = S, this.skip = b;
          }
          var D = T.prototype;
          return D.addDirectives = function(S) {
            var b = new self.URL(S);
            return this.msn !== void 0 && b.searchParams.set("_HLS_msn", this.msn.toString()), this.part !== void 0 && b.searchParams.set("_HLS_part", this.part.toString()), this.skip && b.searchParams.set("_HLS_skip", this.skip), b.toString();
          }, T;
        }(), R = /* @__PURE__ */ function() {
          function T(D) {
            this.attrs = void 0, this.audioCodec = void 0, this.bitrate = void 0, this.codecSet = void 0, this.height = void 0, this.id = void 0, this.name = void 0, this.videoCodec = void 0, this.width = void 0, this.unknownCodecs = void 0, this.audioGroupIds = void 0, this.details = void 0, this.fragmentError = 0, this.loadError = 0, this.loaded = void 0, this.realBitrate = 0, this.textGroupIds = void 0, this.url = void 0, this._urlId = 0, this.url = [D.url], this.attrs = D.attrs, this.bitrate = D.bitrate, D.details && (this.details = D.details), this.id = D.id || 0, this.name = D.name, this.width = D.width || 0, this.height = D.height || 0, this.audioCodec = D.audioCodec, this.videoCodec = D.videoCodec, this.unknownCodecs = D.unknownCodecs, this.codecSet = [D.videoCodec, D.audioCodec].filter(function(p) {
              return p;
            }).join(",").replace(/\.[^.,]+/g, "");
          }
          return y(T, [{
            key: "maxBitrate",
            get: function() {
              return Math.max(this.realBitrate, this.bitrate);
            }
          }, {
            key: "uri",
            get: function() {
              return this.url[this._urlId] || "";
            }
          }, {
            key: "urlId",
            get: function() {
              return this._urlId;
            },
            set: function(p) {
              var S = p % this.url.length;
              this._urlId !== S && (this.details = void 0, this._urlId = S);
            }
          }]), T;
        }();
      },
      "./src/types/loader.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          PlaylistContextType: () => P,
          PlaylistLevelType: () => y
        });
        var P;
        (function(O) {
          O.MANIFEST = "manifest", O.LEVEL = "level", O.AUDIO_TRACK = "audioTrack", O.SUBTITLE_TRACK = "subtitleTrack";
        })(P || (P = {}));
        var y;
        (function(O) {
          O.MAIN = "main", O.AUDIO = "audio", O.SUBTITLE = "subtitle";
        })(y || (y = {}));
      },
      "./src/types/transmuxer.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          ChunkMetadata: () => P
        });
        var P = function(C, F, R, T, D, p) {
          T === void 0 && (T = 0), D === void 0 && (D = -1), p === void 0 && (p = !1), this.level = void 0, this.sn = void 0, this.part = void 0, this.id = void 0, this.size = void 0, this.partial = void 0, this.transmuxing = y(), this.buffering = {
            audio: y(),
            video: y(),
            audiovideo: y()
          }, this.level = C, this.sn = F, this.id = R, this.size = T, this.part = D, this.partial = p;
        };
        function y() {
          return {
            start: 0,
            executeStart: 0,
            executeEnd: 0,
            end: 0
          };
        }
      },
      "./src/utils/attr-list.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          AttrList: () => O
        });
        var P = /^(\d+)x(\d+)$/, y = /\s*(.+?)\s*=((?:\".*?\")|.*?)(?:,|$)/g, O = /* @__PURE__ */ function() {
          function C(R) {
            typeof R == "string" && (R = C.parseAttrList(R));
            for (var T in R)
              R.hasOwnProperty(T) && (this[T] = R[T]);
          }
          var F = C.prototype;
          return F.decimalInteger = function(T) {
            var D = parseInt(this[T], 10);
            return D > Number.MAX_SAFE_INTEGER ? 1 / 0 : D;
          }, F.hexadecimalInteger = function(T) {
            if (this[T]) {
              var D = (this[T] || "0x").slice(2);
              D = (D.length & 1 ? "0" : "") + D;
              for (var p = new Uint8Array(D.length / 2), S = 0; S < D.length / 2; S++)
                p[S] = parseInt(D.slice(S * 2, S * 2 + 2), 16);
              return p;
            } else
              return null;
          }, F.hexadecimalIntegerAsNumber = function(T) {
            var D = parseInt(this[T], 16);
            return D > Number.MAX_SAFE_INTEGER ? 1 / 0 : D;
          }, F.decimalFloatingPoint = function(T) {
            return parseFloat(this[T]);
          }, F.optionalFloat = function(T, D) {
            var p = this[T];
            return p ? parseFloat(p) : D;
          }, F.enumeratedString = function(T) {
            return this[T];
          }, F.bool = function(T) {
            return this[T] === "YES";
          }, F.decimalResolution = function(T) {
            var D = P.exec(this[T]);
            if (D !== null)
              return {
                width: parseInt(D[1], 10),
                height: parseInt(D[2], 10)
              };
          }, C.parseAttrList = function(T) {
            var D, p = {}, S = '"';
            for (y.lastIndex = 0; (D = y.exec(T)) !== null; ) {
              var b = D[2];
              b.indexOf(S) === 0 && b.lastIndexOf(S) === b.length - 1 && (b = b.slice(1, -1)), p[D[1]] = b;
            }
            return p;
          }, C;
        }();
      },
      "./src/utils/binary-search.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          default: () => y
        });
        var P = {
          search: function(C, F) {
            for (var R = 0, T = C.length - 1, D = null, p = null; R <= T; ) {
              D = (R + T) / 2 | 0, p = C[D];
              var S = F(p);
              if (S > 0)
                R = D + 1;
              else if (S < 0)
                T = D - 1;
              else
                return p;
            }
            return null;
          }
        };
        const y = P;
      },
      "./src/utils/buffer-helper.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          BufferHelper: () => O
        });
        var P = g("./src/utils/logger.ts"), y = {
          length: 0,
          start: function() {
            return 0;
          },
          end: function() {
            return 0;
          }
        }, O = /* @__PURE__ */ function() {
          function C() {
          }
          return C.isBuffered = function(R, T) {
            try {
              if (R) {
                for (var D = C.getBuffered(R), p = 0; p < D.length; p++)
                  if (T >= D.start(p) && T <= D.end(p))
                    return !0;
              }
            } catch {
            }
            return !1;
          }, C.bufferInfo = function(R, T, D) {
            try {
              if (R) {
                var p = C.getBuffered(R), S = [], b;
                for (b = 0; b < p.length; b++)
                  S.push({
                    start: p.start(b),
                    end: p.end(b)
                  });
                return this.bufferedInfo(S, T, D);
              }
            } catch {
            }
            return {
              len: 0,
              start: T,
              end: T,
              nextStart: void 0
            };
          }, C.bufferedInfo = function(R, T, D) {
            T = Math.max(0, T), R.sort(function(r, e) {
              var f = r.start - e.start;
              return f || e.end - r.end;
            });
            var p = [];
            if (D)
              for (var S = 0; S < R.length; S++) {
                var b = p.length;
                if (b) {
                  var _ = p[b - 1].end;
                  R[S].start - _ < D ? R[S].end > _ && (p[b - 1].end = R[S].end) : p.push(R[S]);
                } else
                  p.push(R[S]);
              }
            else
              p = R;
            for (var E = 0, l, n = T, t = T, d = 0; d < p.length; d++) {
              var h = p[d].start, i = p[d].end;
              if (T + D >= h && T < i)
                n = h, t = i, E = t - T;
              else if (T + D < h) {
                l = h;
                break;
              }
            }
            return {
              len: E,
              start: n || 0,
              end: t || 0,
              nextStart: l
            };
          }, C.getBuffered = function(R) {
            try {
              return R.buffered;
            } catch (T) {
              return P.logger.log("failed to get media.buffered", T), y;
            }
          }, C;
        }();
      },
      "./src/utils/cea-608-parser.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          CaptionScreen: () => d,
          Row: () => t,
          default: () => u
        });
        var P = g("./src/utils/logger.ts"), y = {
          42: 225,
          92: 233,
          94: 237,
          95: 243,
          96: 250,
          123: 231,
          124: 247,
          125: 209,
          126: 241,
          127: 9608,
          128: 174,
          129: 176,
          130: 189,
          131: 191,
          132: 8482,
          133: 162,
          134: 163,
          135: 9834,
          136: 224,
          137: 32,
          138: 232,
          139: 226,
          140: 234,
          141: 238,
          142: 244,
          143: 251,
          144: 193,
          145: 201,
          146: 211,
          147: 218,
          148: 220,
          149: 252,
          150: 8216,
          151: 161,
          152: 42,
          153: 8217,
          154: 9473,
          155: 169,
          156: 8480,
          157: 8226,
          158: 8220,
          159: 8221,
          160: 192,
          161: 194,
          162: 199,
          163: 200,
          164: 202,
          165: 203,
          166: 235,
          167: 206,
          168: 207,
          169: 239,
          170: 212,
          171: 217,
          172: 249,
          173: 219,
          174: 171,
          175: 187,
          176: 195,
          177: 227,
          178: 205,
          179: 204,
          180: 236,
          181: 210,
          182: 242,
          183: 213,
          184: 245,
          185: 123,
          186: 125,
          187: 92,
          188: 94,
          189: 95,
          190: 124,
          191: 8764,
          192: 196,
          193: 228,
          194: 214,
          195: 246,
          196: 223,
          197: 165,
          198: 164,
          199: 9475,
          200: 197,
          201: 229,
          202: 216,
          203: 248,
          204: 9487,
          205: 9491,
          206: 9495,
          207: 9499
        }, O = function(s) {
          var v = s;
          return y.hasOwnProperty(s) && (v = y[s]), String.fromCharCode(v);
        }, C = 15, F = 100, R = {
          17: 1,
          18: 3,
          21: 5,
          22: 7,
          23: 9,
          16: 11,
          19: 12,
          20: 14
        }, T = {
          17: 2,
          18: 4,
          21: 6,
          22: 8,
          23: 10,
          19: 13,
          20: 15
        }, D = {
          25: 1,
          26: 3,
          29: 5,
          30: 7,
          31: 9,
          24: 11,
          27: 12,
          28: 14
        }, p = {
          25: 2,
          26: 4,
          29: 6,
          30: 8,
          31: 10,
          27: 13,
          28: 15
        }, S = ["white", "green", "blue", "cyan", "red", "yellow", "magenta", "black", "transparent"], b;
        (function(m) {
          m[m.ERROR = 0] = "ERROR", m[m.TEXT = 1] = "TEXT", m[m.WARNING = 2] = "WARNING", m[m.INFO = 2] = "INFO", m[m.DEBUG = 3] = "DEBUG", m[m.DATA = 3] = "DATA";
        })(b || (b = {}));
        var _ = /* @__PURE__ */ function() {
          function m() {
            this.time = null, this.verboseLevel = b.ERROR;
          }
          var s = m.prototype;
          return s.log = function(c, o) {
            this.verboseLevel >= c && P.logger.log(this.time + " [" + c + "] " + o);
          }, m;
        }(), E = function(s) {
          for (var v = [], c = 0; c < s.length; c++)
            v.push(s[c].toString(16));
          return v;
        }, l = /* @__PURE__ */ function() {
          function m(v, c, o, a, x) {
            this.foreground = void 0, this.underline = void 0, this.italics = void 0, this.background = void 0, this.flash = void 0, this.foreground = v || "white", this.underline = c || !1, this.italics = o || !1, this.background = a || "black", this.flash = x || !1;
          }
          var s = m.prototype;
          return s.reset = function() {
            this.foreground = "white", this.underline = !1, this.italics = !1, this.background = "black", this.flash = !1;
          }, s.setStyles = function(c) {
            for (var o = ["foreground", "underline", "italics", "background", "flash"], a = 0; a < o.length; a++) {
              var x = o[a];
              c.hasOwnProperty(x) && (this[x] = c[x]);
            }
          }, s.isDefault = function() {
            return this.foreground === "white" && !this.underline && !this.italics && this.background === "black" && !this.flash;
          }, s.equals = function(c) {
            return this.foreground === c.foreground && this.underline === c.underline && this.italics === c.italics && this.background === c.background && this.flash === c.flash;
          }, s.copy = function(c) {
            this.foreground = c.foreground, this.underline = c.underline, this.italics = c.italics, this.background = c.background, this.flash = c.flash;
          }, s.toString = function() {
            return "color=" + this.foreground + ", underline=" + this.underline + ", italics=" + this.italics + ", background=" + this.background + ", flash=" + this.flash;
          }, m;
        }(), n = /* @__PURE__ */ function() {
          function m(v, c, o, a, x, k) {
            this.uchar = void 0, this.penState = void 0, this.uchar = v || " ", this.penState = new l(c, o, a, x, k);
          }
          var s = m.prototype;
          return s.reset = function() {
            this.uchar = " ", this.penState.reset();
          }, s.setChar = function(c, o) {
            this.uchar = c, this.penState.copy(o);
          }, s.setPenState = function(c) {
            this.penState.copy(c);
          }, s.equals = function(c) {
            return this.uchar === c.uchar && this.penState.equals(c.penState);
          }, s.copy = function(c) {
            this.uchar = c.uchar, this.penState.copy(c.penState);
          }, s.isEmpty = function() {
            return this.uchar === " " && this.penState.isDefault();
          }, m;
        }(), t = /* @__PURE__ */ function() {
          function m(v) {
            this.chars = void 0, this.pos = void 0, this.currPenState = void 0, this.cueStartTime = void 0, this.logger = void 0, this.chars = [];
            for (var c = 0; c < F; c++)
              this.chars.push(new n());
            this.logger = v, this.pos = 0, this.currPenState = new l();
          }
          var s = m.prototype;
          return s.equals = function(c) {
            for (var o = !0, a = 0; a < F; a++)
              if (!this.chars[a].equals(c.chars[a])) {
                o = !1;
                break;
              }
            return o;
          }, s.copy = function(c) {
            for (var o = 0; o < F; o++)
              this.chars[o].copy(c.chars[o]);
          }, s.isEmpty = function() {
            for (var c = !0, o = 0; o < F; o++)
              if (!this.chars[o].isEmpty()) {
                c = !1;
                break;
              }
            return c;
          }, s.setCursor = function(c) {
            this.pos !== c && (this.pos = c), this.pos < 0 ? (this.logger.log(b.DEBUG, "Negative cursor position " + this.pos), this.pos = 0) : this.pos > F && (this.logger.log(b.DEBUG, "Too large cursor position " + this.pos), this.pos = F);
          }, s.moveCursor = function(c) {
            var o = this.pos + c;
            if (c > 1)
              for (var a = this.pos + 1; a < o + 1; a++)
                this.chars[a].setPenState(this.currPenState);
            this.setCursor(o);
          }, s.backSpace = function() {
            this.moveCursor(-1), this.chars[this.pos].setChar(" ", this.currPenState);
          }, s.insertChar = function(c) {
            c >= 144 && this.backSpace();
            var o = O(c);
            if (this.pos >= F) {
              this.logger.log(b.ERROR, "Cannot insert " + c.toString(16) + " (" + o + ") at position " + this.pos + ". Skipping it!");
              return;
            }
            this.chars[this.pos].setChar(o, this.currPenState), this.moveCursor(1);
          }, s.clearFromPos = function(c) {
            var o;
            for (o = c; o < F; o++)
              this.chars[o].reset();
          }, s.clear = function() {
            this.clearFromPos(0), this.pos = 0, this.currPenState.reset();
          }, s.clearToEndOfRow = function() {
            this.clearFromPos(this.pos);
          }, s.getTextString = function() {
            for (var c = [], o = !0, a = 0; a < F; a++) {
              var x = this.chars[a].uchar;
              x !== " " && (o = !1), c.push(x);
            }
            return o ? "" : c.join("");
          }, s.setPenStyles = function(c) {
            this.currPenState.setStyles(c);
            var o = this.chars[this.pos];
            o.setPenState(this.currPenState);
          }, m;
        }(), d = /* @__PURE__ */ function() {
          function m(v) {
            this.rows = void 0, this.currRow = void 0, this.nrRollUpRows = void 0, this.lastOutputScreen = void 0, this.logger = void 0, this.rows = [];
            for (var c = 0; c < C; c++)
              this.rows.push(new t(v));
            this.logger = v, this.currRow = C - 1, this.nrRollUpRows = null, this.lastOutputScreen = null, this.reset();
          }
          var s = m.prototype;
          return s.reset = function() {
            for (var c = 0; c < C; c++)
              this.rows[c].clear();
            this.currRow = C - 1;
          }, s.equals = function(c) {
            for (var o = !0, a = 0; a < C; a++)
              if (!this.rows[a].equals(c.rows[a])) {
                o = !1;
                break;
              }
            return o;
          }, s.copy = function(c) {
            for (var o = 0; o < C; o++)
              this.rows[o].copy(c.rows[o]);
          }, s.isEmpty = function() {
            for (var c = !0, o = 0; o < C; o++)
              if (!this.rows[o].isEmpty()) {
                c = !1;
                break;
              }
            return c;
          }, s.backSpace = function() {
            var c = this.rows[this.currRow];
            c.backSpace();
          }, s.clearToEndOfRow = function() {
            var c = this.rows[this.currRow];
            c.clearToEndOfRow();
          }, s.insertChar = function(c) {
            var o = this.rows[this.currRow];
            o.insertChar(c);
          }, s.setPen = function(c) {
            var o = this.rows[this.currRow];
            o.setPenStyles(c);
          }, s.moveCursor = function(c) {
            var o = this.rows[this.currRow];
            o.moveCursor(c);
          }, s.setCursor = function(c) {
            this.logger.log(b.INFO, "setCursor: " + c);
            var o = this.rows[this.currRow];
            o.setCursor(c);
          }, s.setPAC = function(c) {
            this.logger.log(b.INFO, "pacData = " + JSON.stringify(c));
            var o = c.row - 1;
            if (this.nrRollUpRows && o < this.nrRollUpRows - 1 && (o = this.nrRollUpRows - 1), this.nrRollUpRows && this.currRow !== o) {
              for (var a = 0; a < C; a++)
                this.rows[a].clear();
              var x = this.currRow + 1 - this.nrRollUpRows, k = this.lastOutputScreen;
              if (k) {
                var K = k.rows[x].cueStartTime, w = this.logger.time;
                if (K && w !== null && K < w)
                  for (var W = 0; W < this.nrRollUpRows; W++)
                    this.rows[o - this.nrRollUpRows + W + 1].copy(k.rows[x + W]);
              }
            }
            this.currRow = o;
            var z = this.rows[this.currRow];
            if (c.indent !== null) {
              var H = c.indent, j = Math.max(H - 1, 0);
              z.setCursor(c.indent), c.color = z.chars[j].penState.foreground;
            }
            var Y = {
              foreground: c.color,
              underline: c.underline,
              italics: c.italics,
              background: "black",
              flash: !1
            };
            this.setPen(Y);
          }, s.setBkgData = function(c) {
            this.logger.log(b.INFO, "bkgData = " + JSON.stringify(c)), this.backSpace(), this.setPen(c), this.insertChar(32);
          }, s.setRollUpRows = function(c) {
            this.nrRollUpRows = c;
          }, s.rollUp = function() {
            if (this.nrRollUpRows === null) {
              this.logger.log(b.DEBUG, "roll_up but nrRollUpRows not set yet");
              return;
            }
            this.logger.log(b.TEXT, this.getDisplayText());
            var c = this.currRow + 1 - this.nrRollUpRows, o = this.rows.splice(c, 1)[0];
            o.clear(), this.rows.splice(this.currRow, 0, o), this.logger.log(b.INFO, "Rolling up");
          }, s.getDisplayText = function(c) {
            c = c || !1;
            for (var o = [], a = "", x = -1, k = 0; k < C; k++) {
              var K = this.rows[k].getTextString();
              K && (x = k + 1, c ? o.push("Row " + x + ": '" + K + "'") : o.push(K.trim()));
            }
            return o.length > 0 && (c ? a = "[" + o.join(" | ") + "]" : a = o.join(`
`)), a;
          }, s.getTextAndFormat = function() {
            return this.rows;
          }, m;
        }(), h = /* @__PURE__ */ function() {
          function m(v, c, o) {
            this.chNr = void 0, this.outputFilter = void 0, this.mode = void 0, this.verbose = void 0, this.displayedMemory = void 0, this.nonDisplayedMemory = void 0, this.lastOutputScreen = void 0, this.currRollUpRow = void 0, this.writeScreen = void 0, this.cueStartTime = void 0, this.logger = void 0, this.chNr = v, this.outputFilter = c, this.mode = null, this.verbose = 0, this.displayedMemory = new d(o), this.nonDisplayedMemory = new d(o), this.lastOutputScreen = new d(o), this.currRollUpRow = this.displayedMemory.rows[C - 1], this.writeScreen = this.displayedMemory, this.mode = null, this.cueStartTime = null, this.logger = o;
          }
          var s = m.prototype;
          return s.reset = function() {
            this.mode = null, this.displayedMemory.reset(), this.nonDisplayedMemory.reset(), this.lastOutputScreen.reset(), this.outputFilter.reset(), this.currRollUpRow = this.displayedMemory.rows[C - 1], this.writeScreen = this.displayedMemory, this.mode = null, this.cueStartTime = null;
          }, s.getHandler = function() {
            return this.outputFilter;
          }, s.setHandler = function(c) {
            this.outputFilter = c;
          }, s.setPAC = function(c) {
            this.writeScreen.setPAC(c);
          }, s.setBkgData = function(c) {
            this.writeScreen.setBkgData(c);
          }, s.setMode = function(c) {
            c !== this.mode && (this.mode = c, this.logger.log(b.INFO, "MODE=" + c), this.mode === "MODE_POP-ON" ? this.writeScreen = this.nonDisplayedMemory : (this.writeScreen = this.displayedMemory, this.writeScreen.reset()), this.mode !== "MODE_ROLL-UP" && (this.displayedMemory.nrRollUpRows = null, this.nonDisplayedMemory.nrRollUpRows = null), this.mode = c);
          }, s.insertChars = function(c) {
            for (var o = 0; o < c.length; o++)
              this.writeScreen.insertChar(c[o]);
            var a = this.writeScreen === this.displayedMemory ? "DISP" : "NON_DISP";
            this.logger.log(b.INFO, a + ": " + this.writeScreen.getDisplayText(!0)), (this.mode === "MODE_PAINT-ON" || this.mode === "MODE_ROLL-UP") && (this.logger.log(b.TEXT, "DISPLAYED: " + this.displayedMemory.getDisplayText(!0)), this.outputDataUpdate());
          }, s.ccRCL = function() {
            this.logger.log(b.INFO, "RCL - Resume Caption Loading"), this.setMode("MODE_POP-ON");
          }, s.ccBS = function() {
            this.logger.log(b.INFO, "BS - BackSpace"), this.mode !== "MODE_TEXT" && (this.writeScreen.backSpace(), this.writeScreen === this.displayedMemory && this.outputDataUpdate());
          }, s.ccAOF = function() {
          }, s.ccAON = function() {
          }, s.ccDER = function() {
            this.logger.log(b.INFO, "DER- Delete to End of Row"), this.writeScreen.clearToEndOfRow(), this.outputDataUpdate();
          }, s.ccRU = function(c) {
            this.logger.log(b.INFO, "RU(" + c + ") - Roll Up"), this.writeScreen = this.displayedMemory, this.setMode("MODE_ROLL-UP"), this.writeScreen.setRollUpRows(c);
          }, s.ccFON = function() {
            this.logger.log(b.INFO, "FON - Flash On"), this.writeScreen.setPen({
              flash: !0
            });
          }, s.ccRDC = function() {
            this.logger.log(b.INFO, "RDC - Resume Direct Captioning"), this.setMode("MODE_PAINT-ON");
          }, s.ccTR = function() {
            this.logger.log(b.INFO, "TR"), this.setMode("MODE_TEXT");
          }, s.ccRTD = function() {
            this.logger.log(b.INFO, "RTD"), this.setMode("MODE_TEXT");
          }, s.ccEDM = function() {
            this.logger.log(b.INFO, "EDM - Erase Displayed Memory"), this.displayedMemory.reset(), this.outputDataUpdate(!0);
          }, s.ccCR = function() {
            this.logger.log(b.INFO, "CR - Carriage Return"), this.writeScreen.rollUp(), this.outputDataUpdate(!0);
          }, s.ccENM = function() {
            this.logger.log(b.INFO, "ENM - Erase Non-displayed Memory"), this.nonDisplayedMemory.reset();
          }, s.ccEOC = function() {
            if (this.logger.log(b.INFO, "EOC - End Of Caption"), this.mode === "MODE_POP-ON") {
              var c = this.displayedMemory;
              this.displayedMemory = this.nonDisplayedMemory, this.nonDisplayedMemory = c, this.writeScreen = this.nonDisplayedMemory, this.logger.log(b.TEXT, "DISP: " + this.displayedMemory.getDisplayText());
            }
            this.outputDataUpdate(!0);
          }, s.ccTO = function(c) {
            this.logger.log(b.INFO, "TO(" + c + ") - Tab Offset"), this.writeScreen.moveCursor(c);
          }, s.ccMIDROW = function(c) {
            var o = {
              flash: !1
            };
            if (o.underline = c % 2 === 1, o.italics = c >= 46, o.italics)
              o.foreground = "white";
            else {
              var a = Math.floor(c / 2) - 16, x = ["white", "green", "blue", "cyan", "red", "yellow", "magenta"];
              o.foreground = x[a];
            }
            this.logger.log(b.INFO, "MIDROW: " + JSON.stringify(o)), this.writeScreen.setPen(o);
          }, s.outputDataUpdate = function(c) {
            c === void 0 && (c = !1);
            var o = this.logger.time;
            o !== null && this.outputFilter && (this.cueStartTime === null && !this.displayedMemory.isEmpty() ? this.cueStartTime = o : this.displayedMemory.equals(this.lastOutputScreen) || (this.outputFilter.newCue(this.cueStartTime, o, this.lastOutputScreen), c && this.outputFilter.dispatchCue && this.outputFilter.dispatchCue(), this.cueStartTime = this.displayedMemory.isEmpty() ? null : o), this.lastOutputScreen.copy(this.displayedMemory));
          }, s.cueSplitAtTime = function(c) {
            this.outputFilter && (this.displayedMemory.isEmpty() || (this.outputFilter.newCue && this.outputFilter.newCue(this.cueStartTime, c, this.displayedMemory), this.cueStartTime = c));
          }, m;
        }(), i = /* @__PURE__ */ function() {
          function m(v, c, o) {
            this.channels = void 0, this.currentChannel = 0, this.cmdHistory = void 0, this.logger = void 0;
            var a = new _();
            this.channels = [null, new h(v, c, a), new h(v + 1, o, a)], this.cmdHistory = f(), this.logger = a;
          }
          var s = m.prototype;
          return s.getHandler = function(c) {
            return this.channels[c].getHandler();
          }, s.setHandler = function(c, o) {
            this.channels[c].setHandler(o);
          }, s.addData = function(c, o) {
            var a, x, k, K = !1;
            this.logger.time = c;
            for (var w = 0; w < o.length; w += 2)
              if (x = o[w] & 127, k = o[w + 1] & 127, !(x === 0 && k === 0)) {
                if (this.logger.log(b.DATA, "[" + E([o[w], o[w + 1]]) + "] -> (" + E([x, k]) + ")"), a = this.parseCmd(x, k), a || (a = this.parseMidrow(x, k)), a || (a = this.parsePAC(x, k)), a || (a = this.parseBackgroundAttributes(x, k)), !a && (K = this.parseChars(x, k), K)) {
                  var W = this.currentChannel;
                  if (W && W > 0) {
                    var z = this.channels[W];
                    z.insertChars(K);
                  } else
                    this.logger.log(b.WARNING, "No channel found yet. TEXT-MODE?");
                }
                !a && !K && this.logger.log(b.WARNING, "Couldn't parse cleaned data " + E([x, k]) + " orig: " + E([o[w], o[w + 1]]));
              }
          }, s.parseCmd = function(c, o) {
            var a = this.cmdHistory, x = (c === 20 || c === 28 || c === 21 || c === 29) && o >= 32 && o <= 47, k = (c === 23 || c === 31) && o >= 33 && o <= 35;
            if (!(x || k))
              return !1;
            if (e(c, o, a))
              return r(null, null, a), this.logger.log(b.DEBUG, "Repeated command (" + E([c, o]) + ") is dropped"), !0;
            var K = c === 20 || c === 21 || c === 23 ? 1 : 2, w = this.channels[K];
            return c === 20 || c === 21 || c === 28 || c === 29 ? o === 32 ? w.ccRCL() : o === 33 ? w.ccBS() : o === 34 ? w.ccAOF() : o === 35 ? w.ccAON() : o === 36 ? w.ccDER() : o === 37 ? w.ccRU(2) : o === 38 ? w.ccRU(3) : o === 39 ? w.ccRU(4) : o === 40 ? w.ccFON() : o === 41 ? w.ccRDC() : o === 42 ? w.ccTR() : o === 43 ? w.ccRTD() : o === 44 ? w.ccEDM() : o === 45 ? w.ccCR() : o === 46 ? w.ccENM() : o === 47 && w.ccEOC() : w.ccTO(o - 32), r(c, o, a), this.currentChannel = K, !0;
          }, s.parseMidrow = function(c, o) {
            var a = 0;
            if ((c === 17 || c === 25) && o >= 32 && o <= 47) {
              if (c === 17 ? a = 1 : a = 2, a !== this.currentChannel)
                return this.logger.log(b.ERROR, "Mismatch channel in midrow parsing"), !1;
              var x = this.channels[a];
              return x ? (x.ccMIDROW(o), this.logger.log(b.DEBUG, "MIDROW (" + E([c, o]) + ")"), !0) : !1;
            }
            return !1;
          }, s.parsePAC = function(c, o) {
            var a, x = this.cmdHistory, k = (c >= 17 && c <= 23 || c >= 25 && c <= 31) && o >= 64 && o <= 127, K = (c === 16 || c === 24) && o >= 64 && o <= 95;
            if (!(k || K))
              return !1;
            if (e(c, o, x))
              return r(null, null, x), !0;
            var w = c <= 23 ? 1 : 2;
            o >= 64 && o <= 95 ? a = w === 1 ? R[c] : D[c] : a = w === 1 ? T[c] : p[c];
            var W = this.channels[w];
            return W ? (W.setPAC(this.interpretPAC(a, o)), r(c, o, x), this.currentChannel = w, !0) : !1;
          }, s.interpretPAC = function(c, o) {
            var a, x = {
              color: null,
              italics: !1,
              indent: null,
              underline: !1,
              row: c
            };
            return o > 95 ? a = o - 96 : a = o - 64, x.underline = (a & 1) === 1, a <= 13 ? x.color = ["white", "green", "blue", "cyan", "red", "yellow", "magenta", "white"][Math.floor(a / 2)] : a <= 15 ? (x.italics = !0, x.color = "white") : x.indent = Math.floor((a - 16) / 2) * 4, x;
          }, s.parseChars = function(c, o) {
            var a, x = null, k = null;
            if (c >= 25 ? (a = 2, k = c - 8) : (a = 1, k = c), k >= 17 && k <= 19) {
              var K;
              k === 17 ? K = o + 80 : k === 18 ? K = o + 112 : K = o + 144, this.logger.log(b.INFO, "Special char '" + O(K) + "' in channel " + a), x = [K];
            } else
              c >= 32 && c <= 127 && (x = o === 0 ? [c] : [c, o]);
            if (x) {
              var w = E(x);
              this.logger.log(b.DEBUG, "Char codes =  " + w.join(",")), r(c, o, this.cmdHistory);
            }
            return x;
          }, s.parseBackgroundAttributes = function(c, o) {
            var a = (c === 16 || c === 24) && o >= 32 && o <= 47, x = (c === 23 || c === 31) && o >= 45 && o <= 47;
            if (!(a || x))
              return !1;
            var k, K = {};
            c === 16 || c === 24 ? (k = Math.floor((o - 32) / 2), K.background = S[k], o % 2 === 1 && (K.background = K.background + "_semi")) : o === 45 ? K.background = "transparent" : (K.foreground = "black", o === 47 && (K.underline = !0));
            var w = c <= 23 ? 1 : 2, W = this.channels[w];
            return W.setBkgData(K), r(c, o, this.cmdHistory), !0;
          }, s.reset = function() {
            for (var c = 0; c < Object.keys(this.channels).length; c++) {
              var o = this.channels[c];
              o && o.reset();
            }
            this.cmdHistory = f();
          }, s.cueSplitAtTime = function(c) {
            for (var o = 0; o < this.channels.length; o++) {
              var a = this.channels[o];
              a && a.cueSplitAtTime(c);
            }
          }, m;
        }();
        function r(m, s, v) {
          v.a = m, v.b = s;
        }
        function e(m, s, v) {
          return v.a === m && v.b === s;
        }
        function f() {
          return {
            a: null,
            b: null
          };
        }
        const u = i;
      },
      "./src/utils/codecs.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          isCodecSupportedInMp4: () => O,
          isCodecType: () => y
        });
        var P = {
          audio: {
            a3ds: !0,
            "ac-3": !0,
            "ac-4": !0,
            alac: !0,
            alaw: !0,
            dra1: !0,
            "dts+": !0,
            "dts-": !0,
            dtsc: !0,
            dtse: !0,
            dtsh: !0,
            "ec-3": !0,
            enca: !0,
            g719: !0,
            g726: !0,
            m4ae: !0,
            mha1: !0,
            mha2: !0,
            mhm1: !0,
            mhm2: !0,
            mlpa: !0,
            mp4a: !0,
            "raw ": !0,
            Opus: !0,
            opus: !0,
            samr: !0,
            sawb: !0,
            sawp: !0,
            sevc: !0,
            sqcp: !0,
            ssmv: !0,
            twos: !0,
            ulaw: !0
          },
          video: {
            avc1: !0,
            avc2: !0,
            avc3: !0,
            avc4: !0,
            avcp: !0,
            av01: !0,
            drac: !0,
            dva1: !0,
            dvav: !0,
            dvh1: !0,
            dvhe: !0,
            encv: !0,
            hev1: !0,
            hvc1: !0,
            mjp2: !0,
            mp4v: !0,
            mvc1: !0,
            mvc2: !0,
            mvc3: !0,
            mvc4: !0,
            resv: !0,
            rv60: !0,
            s263: !0,
            svc1: !0,
            svc2: !0,
            "vc-1": !0,
            vp08: !0,
            vp09: !0
          },
          text: {
            stpp: !0,
            wvtt: !0
          }
        };
        function y(C, F) {
          var R = P[F];
          return !!R && R[C.slice(0, 4)] === !0;
        }
        function O(C, F) {
          return MediaSource.isTypeSupported((F || "video") + '/mp4;codecs="' + C + '"');
        }
      },
      "./src/utils/cues.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          default: () => R
        });
        var P = g("./src/utils/vttparser.ts"), y = g("./src/utils/webvtt-parser.ts"), O = g("./src/utils/texttrack-utils.ts"), C = /\s/, F = {
          newCue: function(D, p, S, b) {
            for (var _ = [], E, l, n, t, d, h = self.VTTCue || self.TextTrackCue, i = 0; i < b.rows.length; i++)
              if (E = b.rows[i], n = !0, t = 0, d = "", !E.isEmpty()) {
                for (var r = 0; r < E.chars.length; r++)
                  C.test(E.chars[r].uchar) && n ? t++ : (d += E.chars[r].uchar, n = !1);
                E.cueStartTime = p, p === S && (S += 1e-4), t >= 16 ? t-- : t++;
                var e = (0, P.fixLineBreaks)(d.trim()), f = (0, y.generateCueId)(p, S, e);
                (!D || !D.cues || !D.cues.getCueById(f)) && (l = new h(p, S, e), l.id = f, l.line = i + 1, l.align = "left", l.position = 10 + Math.min(80, Math.floor(t * 8 / 32) * 10), _.push(l));
              }
            return D && _.length && (_.sort(function(u, m) {
              return u.line === "auto" || m.line === "auto" ? 0 : u.line > 8 && m.line > 8 ? m.line - u.line : u.line - m.line;
            }), _.forEach(function(u) {
              return (0, O.addCueToTrack)(D, u);
            })), _;
          }
        };
        const R = F;
      },
      "./src/utils/discontinuities.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          adjustSlidingStart: () => D,
          alignMediaPlaylistByPDT: () => _,
          alignPDT: () => b,
          alignStream: () => p,
          findDiscontinuousReferenceFrag: () => R,
          findFirstFragWithCC: () => C,
          shouldAlignOnDiscontinuities: () => F
        });
        var P = g("./src/polyfills/number.ts"), y = g("./src/utils/logger.ts"), O = g("./src/controller/level-helper.ts");
        function C(E, l) {
          for (var n = null, t = 0, d = E.length; t < d; t++) {
            var h = E[t];
            if (h && h.cc === l) {
              n = h;
              break;
            }
          }
          return n;
        }
        function F(E, l, n) {
          return !!(l.details && (n.endCC > n.startCC || E && E.cc < n.startCC));
        }
        function R(E, l, n) {
          var t = E.fragments, d = l.fragments;
          if (!d.length || !t.length) {
            y.logger.log("No fragments to align");
            return;
          }
          var h = C(t, d[0].cc);
          if (!h || h && !h.startPTS) {
            y.logger.log("No frag in previous level to align on");
            return;
          }
          return h;
        }
        function T(E, l) {
          if (E) {
            var n = E.start + l;
            E.start = E.startPTS = n, E.endPTS = n + E.duration;
          }
        }
        function D(E, l) {
          for (var n = l.fragments, t = 0, d = n.length; t < d; t++)
            T(n[t], E);
          l.fragmentHint && T(l.fragmentHint, E), l.alignedSliding = !0;
        }
        function p(E, l, n) {
          !l || (S(E, n, l), !n.alignedSliding && l.details && b(n, l.details), !n.alignedSliding && l.details && !n.skippedSegments && (0, O.adjustSliding)(l.details, n));
        }
        function S(E, l, n) {
          if (F(E, n, l)) {
            var t = R(n.details, l);
            t && (0, P.isFiniteNumber)(t.start) && (y.logger.log("Adjusting PTS using last level due to CC increase within current level " + l.url), D(t.start, l));
          }
        }
        function b(E, l) {
          if (!(!l.fragments.length || !E.hasProgramDateTime || !l.hasProgramDateTime)) {
            var n = l.fragments[0].programDateTime, t = E.fragments[0].programDateTime, d = (t - n) / 1e3 + l.fragments[0].start;
            d && (0, P.isFiniteNumber)(d) && (y.logger.log("Adjusting PTS using programDateTime delta " + (t - n) + "ms, sliding:" + d.toFixed(3) + " " + E.url + " "), D(d, E));
          }
        }
        function _(E, l) {
          if (!(!E.hasProgramDateTime || !l.hasProgramDateTime)) {
            var n = E.fragments, t = l.fragments;
            if (!(!n.length || !t.length)) {
              var d = Math.round(t.length / 2) - 1, h = t[d], i = C(n, h.cc) || n[Math.round(n.length / 2) - 1], r = h.programDateTime, e = i.programDateTime;
              if (!(r === null || e === null)) {
                var f = (e - r) / 1e3 - (i.start - h.start);
                D(f, E);
              }
            }
          }
        }
      },
      "./src/utils/ewma-bandwidth-estimator.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          default: () => O
        });
        var P = g("./src/utils/ewma.ts"), y = /* @__PURE__ */ function() {
          function C(R, T, D) {
            this.defaultEstimate_ = void 0, this.minWeight_ = void 0, this.minDelayMs_ = void 0, this.slow_ = void 0, this.fast_ = void 0, this.defaultEstimate_ = D, this.minWeight_ = 1e-3, this.minDelayMs_ = 50, this.slow_ = new P.default(R), this.fast_ = new P.default(T);
          }
          var F = C.prototype;
          return F.update = function(T, D) {
            var p = this.slow_, S = this.fast_;
            this.slow_.halfLife !== T && (this.slow_ = new P.default(T, p.getEstimate(), p.getTotalWeight())), this.fast_.halfLife !== D && (this.fast_ = new P.default(D, S.getEstimate(), S.getTotalWeight()));
          }, F.sample = function(T, D) {
            T = Math.max(T, this.minDelayMs_);
            var p = 8 * D, S = T / 1e3, b = p / S;
            this.fast_.sample(S, b), this.slow_.sample(S, b);
          }, F.canEstimate = function() {
            var T = this.fast_;
            return T && T.getTotalWeight() >= this.minWeight_;
          }, F.getEstimate = function() {
            return this.canEstimate() ? Math.min(this.fast_.getEstimate(), this.slow_.getEstimate()) : this.defaultEstimate_;
          }, F.destroy = function() {
          }, C;
        }();
        const O = y;
      },
      "./src/utils/ewma.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          default: () => y
        });
        var P = /* @__PURE__ */ function() {
          function O(F, R, T) {
            R === void 0 && (R = 0), T === void 0 && (T = 0), this.halfLife = void 0, this.alpha_ = void 0, this.estimate_ = void 0, this.totalWeight_ = void 0, this.halfLife = F, this.alpha_ = F ? Math.exp(Math.log(0.5) / F) : 0, this.estimate_ = R, this.totalWeight_ = T;
          }
          var C = O.prototype;
          return C.sample = function(R, T) {
            var D = Math.pow(this.alpha_, R);
            this.estimate_ = T * (1 - D) + D * this.estimate_, this.totalWeight_ += R;
          }, C.getTotalWeight = function() {
            return this.totalWeight_;
          }, C.getEstimate = function() {
            if (this.alpha_) {
              var R = 1 - Math.pow(this.alpha_, this.totalWeight_);
              if (R)
                return this.estimate_ / R;
            }
            return this.estimate_;
          }, O;
        }();
        const y = P;
      },
      "./src/utils/fetch-loader.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          default: () => d,
          fetchSupported: () => _
        });
        var P = g("./src/polyfills/number.ts"), y = g("./src/loader/load-stats.ts"), O = g("./src/demux/chunk-cache.ts");
        function C(h, i) {
          h.prototype = Object.create(i.prototype), h.prototype.constructor = h, p(h, i);
        }
        function F(h) {
          var i = typeof Map == "function" ? /* @__PURE__ */ new Map() : void 0;
          return F = function(e) {
            if (e === null || !D(e))
              return e;
            if (typeof e != "function")
              throw new TypeError("Super expression must either be null or a function");
            if (typeof i < "u") {
              if (i.has(e))
                return i.get(e);
              i.set(e, f);
            }
            function f() {
              return R(e, arguments, S(this).constructor);
            }
            return f.prototype = Object.create(e.prototype, { constructor: { value: f, enumerable: !1, writable: !0, configurable: !0 } }), p(f, e);
          }, F(h);
        }
        function R(h, i, r) {
          return T() ? R = Reflect.construct.bind() : R = function(f, u, m) {
            var s = [null];
            s.push.apply(s, u);
            var v = Function.bind.apply(f, s), c = new v();
            return m && p(c, m.prototype), c;
          }, R.apply(null, arguments);
        }
        function T() {
          if (typeof Reflect > "u" || !Reflect.construct || Reflect.construct.sham)
            return !1;
          if (typeof Proxy == "function")
            return !0;
          try {
            return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
            })), !0;
          } catch {
            return !1;
          }
        }
        function D(h) {
          return Function.toString.call(h).indexOf("[native code]") !== -1;
        }
        function p(h, i) {
          return p = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(e, f) {
            return e.__proto__ = f, e;
          }, p(h, i);
        }
        function S(h) {
          return S = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function(r) {
            return r.__proto__ || Object.getPrototypeOf(r);
          }, S(h);
        }
        function b() {
          return b = Object.assign ? Object.assign.bind() : function(h) {
            for (var i = 1; i < arguments.length; i++) {
              var r = arguments[i];
              for (var e in r)
                Object.prototype.hasOwnProperty.call(r, e) && (h[e] = r[e]);
            }
            return h;
          }, b.apply(this, arguments);
        }
        function _() {
          if (self.fetch && self.AbortController && self.ReadableStream && self.Request)
            try {
              return new self.ReadableStream({}), !0;
            } catch {
            }
          return !1;
        }
        var E = /* @__PURE__ */ function() {
          function h(r) {
            this.fetchSetup = void 0, this.requestTimeout = void 0, this.request = void 0, this.response = void 0, this.controller = void 0, this.context = void 0, this.config = null, this.callbacks = null, this.stats = void 0, this.loader = null, this.fetchSetup = r.fetchSetup || n, this.controller = new self.AbortController(), this.stats = new y.LoadStats();
          }
          var i = h.prototype;
          return i.destroy = function() {
            this.loader = this.callbacks = null, this.abortInternal();
          }, i.abortInternal = function() {
            var e = this.response;
            (!e || !e.ok) && (this.stats.aborted = !0, this.controller.abort());
          }, i.abort = function() {
            var e;
            this.abortInternal(), (e = this.callbacks) !== null && e !== void 0 && e.onAbort && this.callbacks.onAbort(this.stats, this.context, this.response);
          }, i.load = function(e, f, u) {
            var m = this, s = this.stats;
            if (s.loading.start)
              throw new Error("Loader can only be used once.");
            s.loading.start = self.performance.now();
            var v = l(e, this.controller.signal), c = u.onProgress, o = e.responseType === "arraybuffer", a = o ? "byteLength" : "length";
            this.context = e, this.config = f, this.callbacks = u, this.request = this.fetchSetup(e, v), self.clearTimeout(this.requestTimeout), this.requestTimeout = self.setTimeout(function() {
              m.abortInternal(), u.onTimeout(s, e, m.response);
            }, f.timeout), self.fetch(this.request).then(function(x) {
              if (m.response = m.loader = x, !x.ok) {
                var k = x.status, K = x.statusText;
                throw new t(K || "fetch, bad network response", k, x);
              }
              return s.loading.first = Math.max(self.performance.now(), s.loading.start), s.total = parseInt(x.headers.get("Content-Length") || "0"), c && (0, P.isFiniteNumber)(f.highWaterMark) ? m.loadProgressively(x, s, e, f.highWaterMark, c) : o ? x.arrayBuffer() : x.text();
            }).then(function(x) {
              var k = m.response;
              self.clearTimeout(m.requestTimeout), s.loading.end = Math.max(self.performance.now(), s.loading.first), s.loaded = s.total = x[a];
              var K = {
                url: k.url,
                data: x
              };
              c && !(0, P.isFiniteNumber)(f.highWaterMark) && c(s, e, x, k), u.onSuccess(K, s, e, k);
            }).catch(function(x) {
              if (self.clearTimeout(m.requestTimeout), !s.aborted) {
                var k = x && x.code || 0, K = x ? x.message : null;
                u.onError({
                  code: k,
                  text: K
                }, e, x ? x.details : null);
              }
            });
          }, i.getCacheAge = function() {
            var e = null;
            if (this.response) {
              var f = this.response.headers.get("age");
              e = f ? parseFloat(f) : null;
            }
            return e;
          }, i.loadProgressively = function(e, f, u, m, s) {
            m === void 0 && (m = 0);
            var v = new O.default(), c = e.body.getReader(), o = function a() {
              return c.read().then(function(x) {
                if (x.done)
                  return v.dataLength && s(f, u, v.flush(), e), Promise.resolve(new ArrayBuffer(0));
                var k = x.value, K = k.length;
                return f.loaded += K, K < m || v.dataLength ? (v.push(k), v.dataLength >= m && s(f, u, v.flush(), e)) : s(f, u, k, e), a();
              }).catch(function() {
                return Promise.reject();
              });
            };
            return o();
          }, h;
        }();
        function l(h, i) {
          var r = {
            method: "GET",
            mode: "cors",
            credentials: "same-origin",
            signal: i,
            headers: new self.Headers(b({}, h.headers))
          };
          return h.rangeEnd && r.headers.set("Range", "bytes=" + h.rangeStart + "-" + String(h.rangeEnd - 1)), r;
        }
        function n(h, i) {
          return new self.Request(h.url, i);
        }
        var t = /* @__PURE__ */ function(h) {
          C(i, h);
          function i(r, e, f) {
            var u;
            return u = h.call(this, r) || this, u.code = void 0, u.details = void 0, u.code = e, u.details = f, u;
          }
          return i;
        }(/* @__PURE__ */ F(Error));
        const d = E;
      },
      "./src/utils/imsc1-ttml-parser.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          IMSC1_CODEC: () => D,
          parseIMSC1: () => _
        });
        var P = g("./src/utils/mp4-tools.ts"), y = g("./src/utils/vttparser.ts"), O = g("./src/utils/vttcue.ts"), C = g("./src/demux/id3.ts"), F = g("./src/utils/timescale-conversion.ts"), R = g("./src/utils/webvtt-parser.ts");
        function T() {
          return T = Object.assign ? Object.assign.bind() : function(u) {
            for (var m = 1; m < arguments.length; m++) {
              var s = arguments[m];
              for (var v in s)
                Object.prototype.hasOwnProperty.call(s, v) && (u[v] = s[v]);
            }
            return u;
          }, T.apply(this, arguments);
        }
        var D = "stpp.ttml.im1t", p = /^(\d{2,}):(\d{2}):(\d{2}):(\d{2})\.?(\d+)?$/, S = /^(\d*(?:\.\d*)?)(h|m|s|ms|f|t)$/, b = {
          left: "start",
          center: "center",
          right: "end",
          start: "start",
          end: "end"
        };
        function _(u, m, s, v, c) {
          var o = (0, P.findBox)(new Uint8Array(u), ["mdat"]);
          if (o.length === 0) {
            c(new Error("Could not parse IMSC1 mdat"));
            return;
          }
          var a = o.map(function(k) {
            return (0, C.utf8ArrayToStr)(k);
          }), x = (0, F.toTimescaleFromScale)(m, 1, s);
          try {
            a.forEach(function(k) {
              return v(E(k, x));
            });
          } catch (k) {
            c(k);
          }
        }
        function E(u, m) {
          var s = new DOMParser(), v = s.parseFromString(u, "text/xml"), c = v.getElementsByTagName("tt")[0];
          if (!c)
            throw new Error("Invalid ttml");
          var o = {
            frameRate: 30,
            subFrameRate: 1,
            frameRateMultiplier: 0,
            tickRate: 0
          }, a = Object.keys(o).reduce(function(W, z) {
            return W[z] = c.getAttribute("ttp:" + z) || o[z], W;
          }, {}), x = c.getAttribute("xml:space") !== "preserve", k = n(l(c, "styling", "style")), K = n(l(c, "layout", "region")), w = l(c, "body", "[begin]");
          return [].map.call(w, function(W) {
            var z = t(W, x);
            if (!z || !W.hasAttribute("begin"))
              return null;
            var H = r(W.getAttribute("begin"), a), j = r(W.getAttribute("dur"), a), Y = r(W.getAttribute("end"), a);
            if (H === null)
              throw i(W);
            if (Y === null) {
              if (j === null)
                throw i(W);
              Y = H + j;
            }
            var Z = new O.default(H - m, Y - m, z);
            Z.id = (0, R.generateCueId)(Z.startTime, Z.endTime, Z.text);
            var q = K[W.getAttribute("region")], ee = k[W.getAttribute("style")];
            Z.position = 10, Z.size = 80;
            var te = d(q, ee, k), ne = te.textAlign;
            if (ne) {
              var ie = b[ne];
              ie && (Z.lineAlign = ie), Z.align = ne;
            }
            return T(Z, te), Z;
          }).filter(function(W) {
            return W !== null;
          });
        }
        function l(u, m, s) {
          var v = u.getElementsByTagName(m)[0];
          return v ? [].slice.call(v.querySelectorAll(s)) : [];
        }
        function n(u) {
          return u.reduce(function(m, s) {
            var v = s.getAttribute("xml:id");
            return v && (m[v] = s), m;
          }, {});
        }
        function t(u, m) {
          return [].slice.call(u.childNodes).reduce(function(s, v, c) {
            var o;
            return v.nodeName === "br" && c ? s + `
` : (o = v.childNodes) !== null && o !== void 0 && o.length ? t(v, m) : m ? s + v.textContent.trim().replace(/\s+/g, " ") : s + v.textContent;
          }, "");
        }
        function d(u, m, s) {
          var v = "http://www.w3.org/ns/ttml#styling", c = null, o = [
            "displayAlign",
            "textAlign",
            "color",
            "backgroundColor",
            "fontSize",
            "fontFamily"
          ], a = u != null && u.hasAttribute("style") ? u.getAttribute("style") : null;
          return a && s.hasOwnProperty(a) && (c = s[a]), o.reduce(function(x, k) {
            var K = h(m, v, k) || h(u, v, k) || h(c, v, k);
            return K && (x[k] = K), x;
          }, {});
        }
        function h(u, m, s) {
          return u && u.hasAttributeNS(m, s) ? u.getAttributeNS(m, s) : null;
        }
        function i(u) {
          return new Error("Could not parse ttml timestamp " + u);
        }
        function r(u, m) {
          if (!u)
            return null;
          var s = (0, y.parseTimeStamp)(u);
          return s === null && (p.test(u) ? s = e(u, m) : S.test(u) && (s = f(u, m))), s;
        }
        function e(u, m) {
          var s = p.exec(u), v = (s[4] | 0) + (s[5] | 0) / m.subFrameRate;
          return (s[1] | 0) * 3600 + (s[2] | 0) * 60 + (s[3] | 0) + v / m.frameRate;
        }
        function f(u, m) {
          var s = S.exec(u), v = Number(s[1]), c = s[2];
          switch (c) {
            case "h":
              return v * 3600;
            case "m":
              return v * 60;
            case "ms":
              return v * 1e3;
            case "f":
              return v / m.frameRate;
            case "t":
              return v / m.tickRate;
          }
          return v;
        }
      },
      "./src/utils/logger.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          enableLogs: () => R,
          logger: () => T
        });
        var P = function() {
        }, y = {
          trace: P,
          debug: P,
          log: P,
          warn: P,
          info: P,
          error: P
        }, O = y;
        function C(D) {
          var p = self.console[D];
          return p ? p.bind(self.console, "[" + D + "] >") : P;
        }
        function F(D) {
          for (var p = arguments.length, S = new Array(p > 1 ? p - 1 : 0), b = 1; b < p; b++)
            S[b - 1] = arguments[b];
          S.forEach(function(_) {
            O[_] = D[_] ? D[_].bind(D) : C(_);
          });
        }
        function R(D, p) {
          if (self.console && D === !0 || typeof D == "object") {
            F(
              D,
              "debug",
              "log",
              "info",
              "warn",
              "error"
            );
            try {
              O.log('Debug logs enabled for "' + p + '"');
            } catch {
              O = y;
            }
          } else
            O = y;
        }
        var T = O;
      },
      "./src/utils/mediakeys-helper.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          KeySystems: () => P,
          requestMediaKeySystemAccess: () => y
        });
        var P;
        (function(O) {
          O.WIDEVINE = "com.widevine.alpha", O.PLAYREADY = "com.microsoft.playready";
        })(P || (P = {}));
        var y = function() {
          return typeof self < "u" && self.navigator && self.navigator.requestMediaKeySystemAccess ? self.navigator.requestMediaKeySystemAccess.bind(self.navigator) : null;
        }();
      },
      "./src/utils/mediasource-helper.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          getMediaSource: () => P
        });
        function P() {
          return self.MediaSource || self.WebKitMediaSource;
        }
      },
      "./src/utils/mp4-tools.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          RemuxerTrackIdConfig: () => R,
          appendUint8Array: () => r,
          bin2str: () => T,
          computeRawDurationFromSamples: () => d,
          discardEPB: () => s,
          findBox: () => _,
          getDuration: () => t,
          getStartDTS: () => n,
          offsetStartDTS: () => h,
          parseEmsg: () => v,
          parseInitSegment: () => l,
          parseSEIMessageFromNALu: () => m,
          parseSamples: () => e,
          parseSegmentIndex: () => E,
          readSint32: () => S,
          readUint16: () => D,
          readUint32: () => p,
          segmentValidRange: () => i,
          writeUint32: () => b
        });
        var P = g("./src/utils/typed-array.ts"), y = g("./src/loader/fragment.ts"), O = g("./src/demux/id3.ts"), C = Math.pow(2, 32) - 1, F = [].push, R = {
          video: 1,
          audio: 2,
          id3: 3,
          text: 4
        };
        function T(c) {
          return String.fromCharCode.apply(null, c);
        }
        function D(c, o) {
          var a = c[o] << 8 | c[o + 1];
          return a < 0 ? 65536 + a : a;
        }
        function p(c, o) {
          var a = S(c, o);
          return a < 0 ? 4294967296 + a : a;
        }
        function S(c, o) {
          return c[o] << 24 | c[o + 1] << 16 | c[o + 2] << 8 | c[o + 3];
        }
        function b(c, o, a) {
          c[o] = a >> 24, c[o + 1] = a >> 16 & 255, c[o + 2] = a >> 8 & 255, c[o + 3] = a & 255;
        }
        function _(c, o) {
          var a = [];
          if (!o.length)
            return a;
          for (var x = c.byteLength, k = 0; k < x; ) {
            var K = p(c, k), w = T(c.subarray(k + 4, k + 8)), W = K > 1 ? k + K : x;
            if (w === o[0])
              if (o.length === 1)
                a.push(c.subarray(k + 8, W));
              else {
                var z = _(c.subarray(k + 8, W), o.slice(1));
                z.length && F.apply(a, z);
              }
            k = W;
          }
          return a;
        }
        function E(c) {
          var o = [], a = c[0], x = 8, k = p(c, x);
          x += 4;
          var K = 0, w = 0;
          a === 0 ? x += 8 : x += 16, x += 2;
          var W = c.length + w, z = D(c, x);
          x += 2;
          for (var H = 0; H < z; H++) {
            var j = x, Y = p(c, j);
            j += 4;
            var Z = Y & 2147483647, q = (Y & 2147483648) >>> 31;
            if (q === 1)
              return console.warn("SIDX has hierarchical references (not supported)"), null;
            var ee = p(c, j);
            j += 4, o.push({
              referenceSize: Z,
              subsegmentDuration: ee,
              info: {
                duration: ee / k,
                start: W,
                end: W + Z - 1
              }
            }), W += Z, j += 4, x = j;
          }
          return {
            earliestPresentationTime: K,
            timescale: k,
            version: a,
            referencesCount: z,
            references: o
          };
        }
        function l(c) {
          for (var o = [], a = _(c, ["moov", "trak"]), x = 0; x < a.length; x++) {
            var k = a[x], K = _(k, ["tkhd"])[0];
            if (K) {
              var w = K[0], W = w === 0 ? 12 : 20, z = p(K, W), H = _(k, ["mdia", "mdhd"])[0];
              if (H) {
                w = H[0], W = w === 0 ? 12 : 20;
                var j = p(H, W), Y = _(k, ["mdia", "hdlr"])[0];
                if (Y) {
                  var Z = T(Y.subarray(8, 12)), q = {
                    soun: y.ElementaryStreamTypes.AUDIO,
                    vide: y.ElementaryStreamTypes.VIDEO
                  }[Z];
                  if (q) {
                    var ee = _(k, ["mdia", "minf", "stbl", "stsd"])[0], te = void 0;
                    ee && (te = T(ee.subarray(12, 16))), o[z] = {
                      timescale: j,
                      type: q
                    }, o[q] = {
                      timescale: j,
                      id: z,
                      codec: te
                    };
                  }
                }
              }
            }
          }
          var ne = _(c, ["moov", "mvex", "trex"]);
          return ne.forEach(function(ie) {
            var oe = p(ie, 4), de = o[oe];
            de && (de.default = {
              duration: p(ie, 12),
              flags: p(ie, 20)
            });
          }), o;
        }
        function n(c, o) {
          return _(o, ["moof", "traf"]).reduce(function(a, x) {
            var k = _(x, ["tfdt"])[0], K = k[0], w = _(x, ["tfhd"]).reduce(function(W, z) {
              var H = p(z, 4), j = c[H];
              if (j) {
                var Y = p(k, 4);
                K === 1 && (Y *= Math.pow(2, 32), Y += p(k, 8));
                var Z = j.timescale || 9e4, q = Y / Z;
                if (isFinite(q) && (W === null || q < W))
                  return q;
              }
              return W;
            }, null);
            return w !== null && isFinite(w) && (a === null || w < a) ? w : a;
          }, null) || 0;
        }
        function t(c, o) {
          for (var a = 0, x = 0, k = 0, K = _(c, ["moof", "traf"]), w = 0; w < K.length; w++) {
            var W = K[w], z = _(W, ["tfhd"])[0], H = p(z, 4), j = o[H];
            if (!!j) {
              var Y = j.default, Z = p(z, 0) | (Y == null ? void 0 : Y.flags), q = Y == null ? void 0 : Y.duration;
              Z & 8 && (Z & 2 ? q = p(z, 12) : q = p(z, 8));
              for (var ee = j.timescale || 9e4, te = _(W, ["trun"]), ne = 0; ne < te.length; ne++) {
                if (a = d(te[ne]), !a && q) {
                  var ie = p(te[ne], 4);
                  a = q * ie;
                }
                j.type === y.ElementaryStreamTypes.VIDEO ? x += a / ee : j.type === y.ElementaryStreamTypes.AUDIO && (k += a / ee);
              }
            }
          }
          if (x === 0 && k === 0) {
            for (var oe = 0, de = _(c, ["sidx"]), re = 0; re < de.length; re++) {
              var le = E(de[re]);
              le != null && le.references && (oe += le.references.reduce(function(me, ve) {
                return me + ve.info.duration || 0;
              }, 0));
            }
            return oe;
          }
          return x || k;
        }
        function d(c) {
          var o = p(c, 0), a = 8;
          o & 1 && (a += 4), o & 4 && (a += 4);
          for (var x = 0, k = p(c, 4), K = 0; K < k; K++) {
            if (o & 256) {
              var w = p(c, a);
              x += w, a += 4;
            }
            o & 512 && (a += 4), o & 1024 && (a += 4), o & 2048 && (a += 4);
          }
          return x;
        }
        function h(c, o, a) {
          _(o, ["moof", "traf"]).forEach(function(x) {
            _(x, ["tfhd"]).forEach(function(k) {
              var K = p(k, 4), w = c[K];
              if (!!w) {
                var W = w.timescale || 9e4;
                _(x, ["tfdt"]).forEach(function(z) {
                  var H = z[0], j = p(z, 4);
                  if (H === 0)
                    j -= a * W, j = Math.max(j, 0), b(z, 4, j);
                  else {
                    j *= Math.pow(2, 32), j += p(z, 8), j -= a * W, j = Math.max(j, 0);
                    var Y = Math.floor(j / (C + 1)), Z = Math.floor(j % (C + 1));
                    b(z, 4, Y), b(z, 8, Z);
                  }
                });
              }
            });
          });
        }
        function i(c) {
          var o = {
            valid: null,
            remainder: null
          }, a = _(c, ["moof"]);
          if (a) {
            if (a.length < 2)
              return o.remainder = c, o;
          } else
            return o;
          var x = a[a.length - 1];
          return o.valid = (0, P.sliceUint8)(c, 0, x.byteOffset - 8), o.remainder = (0, P.sliceUint8)(c, x.byteOffset - 8), o;
        }
        function r(c, o) {
          var a = new Uint8Array(c.length + o.length);
          return a.set(c), a.set(o, c.length), a;
        }
        function e(c, o) {
          var a = [], x = o.samples, k = o.timescale, K = o.id, w = !1, W = _(x, ["moof"]);
          return W.map(function(z) {
            var H = z.byteOffset - 8, j = _(z, ["traf"]);
            j.map(function(Y) {
              var Z = _(Y, ["tfdt"]).map(function(q) {
                var ee = q[0], te = p(q, 4);
                return ee === 1 && (te *= Math.pow(2, 32), te += p(q, 8)), te / k;
              })[0];
              return Z !== void 0 && (c = Z), _(Y, ["tfhd"]).map(function(q) {
                var ee = p(q, 4), te = p(q, 0) & 16777215, ne = (te & 1) !== 0, ie = (te & 2) !== 0, oe = (te & 8) !== 0, de = 0, re = (te & 16) !== 0, le = 0, me = (te & 32) !== 0, ve = 8;
                ee === K && (ne && (ve += 8), ie && (ve += 4), oe && (de = p(q, ve), ve += 4), re && (le = p(q, ve), ve += 4), me && (ve += 4), o.type === "video" && (w = f(o.codec)), _(Y, ["trun"]).map(function(pe) {
                  var Pe = pe[0], ye = p(pe, 0) & 16777215, Ce = (ye & 1) !== 0, Oe = 0, Ae = (ye & 4) !== 0, Fe = (ye & 256) !== 0, We = 0, He = (ye & 512) !== 0, Ge = 0, we = (ye & 1024) !== 0, Be = (ye & 2048) !== 0, Ee = 0, rt = p(pe, 4), Le = 8;
                  Ce && (Oe = p(pe, Le), Le += 4), Ae && (Le += 4);
                  for (var Me = Oe + H, je = 0; je < rt; je++) {
                    if (Fe ? (We = p(pe, Le), Le += 4) : We = de, He ? (Ge = p(pe, Le), Le += 4) : Ge = le, we && (Le += 4), Be && (Pe === 0 ? Ee = p(pe, Le) : Ee = S(pe, Le), Le += 4), o.type === y.ElementaryStreamTypes.VIDEO)
                      for (var be = 0; be < Ge; ) {
                        var ke = p(x, Me);
                        if (Me += 4, u(w, x[Me])) {
                          var ze = x.subarray(Me, Me + ke);
                          m(ze, w ? 2 : 1, c + Ee / k, a);
                        }
                        Me += ke, be += ke + 4;
                      }
                    c += We / k;
                  }
                }));
              });
            });
          }), a;
        }
        function f(c) {
          if (!c)
            return !1;
          var o = c.indexOf("."), a = o < 0 ? c : c.substring(0, o);
          return a === "hvc1" || a === "hev1" || a === "dvh1" || a === "dvhe";
        }
        function u(c, o) {
          if (c) {
            var a = o >> 1 & 63;
            return a === 39 || a === 40;
          } else {
            var x = o & 31;
            return x === 6;
          }
        }
        function m(c, o, a, x) {
          var k = s(c), K = 0;
          K += o;
          for (var w = 0, W = 0, z = !1, H = 0; K < k.length; ) {
            w = 0;
            do {
              if (K >= k.length)
                break;
              H = k[K++], w += H;
            } while (H === 255);
            W = 0;
            do {
              if (K >= k.length)
                break;
              H = k[K++], W += H;
            } while (H === 255);
            var j = k.length - K;
            if (!z && w === 4 && K < k.length) {
              z = !0;
              var Y = k[K++];
              if (Y === 181) {
                var Z = D(k, K);
                if (K += 2, Z === 49) {
                  var q = p(k, K);
                  if (K += 4, q === 1195456820) {
                    var ee = k[K++];
                    if (ee === 3) {
                      var te = k[K++], ne = 31 & te, ie = 64 & te, oe = ie ? 2 + ne * 3 : 0, de = new Uint8Array(oe);
                      if (ie) {
                        de[0] = te;
                        for (var re = 1; re < oe; re++)
                          de[re] = k[K++];
                      }
                      x.push({
                        type: ee,
                        payloadType: w,
                        pts: a,
                        bytes: de
                      });
                    }
                  }
                }
              }
            } else if (w === 5 && W < j) {
              if (z = !0, W > 16) {
                for (var le = [], me = 0; me < 16; me++) {
                  var ve = k[K++].toString(16);
                  le.push(ve.length == 1 ? "0" + ve : ve), (me === 3 || me === 5 || me === 7 || me === 9) && le.push("-");
                }
                for (var pe = W - 16, Pe = new Uint8Array(pe), ye = 0; ye < pe; ye++)
                  Pe[ye] = k[K++];
                x.push({
                  payloadType: w,
                  pts: a,
                  uuid: le.join(""),
                  userData: (0, O.utf8ArrayToStr)(Pe),
                  userDataBytes: Pe
                });
              }
            } else if (W < j)
              K += W;
            else if (W > j)
              break;
          }
        }
        function s(c) {
          for (var o = c.byteLength, a = [], x = 1; x < o - 2; )
            c[x] === 0 && c[x + 1] === 0 && c[x + 2] === 3 ? (a.push(x + 2), x += 2) : x++;
          if (a.length === 0)
            return c;
          var k = o - a.length, K = new Uint8Array(k), w = 0;
          for (x = 0; x < k; w++, x++)
            w === a[0] && (w++, a.shift()), K[x] = c[w];
          return K;
        }
        function v(c) {
          var o = c[0], a = "", x = "", k = 0, K = 0, w = 0, W = 0, z = 0, H = 0;
          if (o === 0) {
            for (; T(c.subarray(H, H + 1)) !== "\0"; )
              a += T(c.subarray(H, H + 1)), H += 1;
            for (a += T(c.subarray(H, H + 1)), H += 1; T(c.subarray(H, H + 1)) !== "\0"; )
              x += T(c.subarray(H, H + 1)), H += 1;
            x += T(c.subarray(H, H + 1)), H += 1, k = p(c, 12), K = p(c, 16), W = p(c, 20), z = p(c, 24), H = 28;
          } else if (o === 1) {
            H += 4, k = p(c, H), H += 4;
            var j = p(c, H);
            H += 4;
            var Y = p(c, H);
            for (H += 4, w = Math.pow(2, 32) * j + Y, Number.isSafeInteger(w) || (w = Number.MAX_SAFE_INTEGER, console.warn("Presentation time exceeds safe integer limit and wrapped to max safe integer in parsing emsg box")), W = p(c, H), H += 4, z = p(c, H), H += 4; T(c.subarray(H, H + 1)) !== "\0"; )
              a += T(c.subarray(H, H + 1)), H += 1;
            for (a += T(c.subarray(H, H + 1)), H += 1; T(c.subarray(H, H + 1)) !== "\0"; )
              x += T(c.subarray(H, H + 1)), H += 1;
            x += T(c.subarray(H, H + 1)), H += 1;
          }
          var Z = c.subarray(H, c.byteLength);
          return {
            schemeIdUri: a,
            value: x,
            timeScale: k,
            presentationTime: w,
            presentationTimeDelta: K,
            eventDuration: W,
            id: z,
            payload: Z
          };
        }
      },
      "./src/utils/output-filter.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          default: () => P
        });
        var P = /* @__PURE__ */ function() {
          function y(C, F) {
            this.timelineController = void 0, this.cueRanges = [], this.trackName = void 0, this.startTime = null, this.endTime = null, this.screen = null, this.timelineController = C, this.trackName = F;
          }
          var O = y.prototype;
          return O.dispatchCue = function() {
            this.startTime !== null && (this.timelineController.addCues(this.trackName, this.startTime, this.endTime, this.screen, this.cueRanges), this.startTime = null);
          }, O.newCue = function(F, R, T) {
            (this.startTime === null || this.startTime > F) && (this.startTime = F), this.endTime = R, this.screen = T, this.timelineController.createCaptionsTrack(this.trackName);
          }, O.reset = function() {
            this.cueRanges = [], this.startTime = null;
          }, y;
        }();
      },
      "./src/utils/texttrack-utils.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          addCueToTrack: () => O,
          clearCurrentCues: () => C,
          getCuesInRange: () => T,
          removeCuesInRange: () => F,
          sendAddTrackEvent: () => y
        });
        var P = g("./src/utils/logger.ts");
        function y(D, p) {
          var S;
          try {
            S = new Event("addtrack");
          } catch {
            S = document.createEvent("Event"), S.initEvent("addtrack", !1, !1);
          }
          S.track = D, p.dispatchEvent(S);
        }
        function O(D, p) {
          var S = D.mode;
          if (S === "disabled" && (D.mode = "hidden"), D.cues && !D.cues.getCueById(p.id))
            try {
              if (D.addCue(p), !D.cues.getCueById(p.id))
                throw new Error("addCue is failed for: " + p);
            } catch (_) {
              P.logger.debug("[texttrack-utils]: " + _);
              var b = new self.TextTrackCue(p.startTime, p.endTime, p.text);
              b.id = p.id, D.addCue(b);
            }
          S === "disabled" && (D.mode = S);
        }
        function C(D) {
          var p = D.mode;
          if (p === "disabled" && (D.mode = "hidden"), D.cues)
            for (var S = D.cues.length; S--; )
              D.removeCue(D.cues[S]);
          p === "disabled" && (D.mode = p);
        }
        function F(D, p, S, b) {
          var _ = D.mode;
          if (_ === "disabled" && (D.mode = "hidden"), D.cues && D.cues.length > 0)
            for (var E = T(D.cues, p, S), l = 0; l < E.length; l++)
              (!b || b(E[l])) && D.removeCue(E[l]);
          _ === "disabled" && (D.mode = _);
        }
        function R(D, p) {
          if (p < D[0].startTime)
            return 0;
          var S = D.length - 1;
          if (p > D[S].endTime)
            return -1;
          for (var b = 0, _ = S; b <= _; ) {
            var E = Math.floor((_ + b) / 2);
            if (p < D[E].startTime)
              _ = E - 1;
            else if (p > D[E].startTime && b < S)
              b = E + 1;
            else
              return E;
          }
          return D[b].startTime - p < p - D[_].startTime ? b : _;
        }
        function T(D, p, S) {
          var b = [], _ = R(D, p);
          if (_ > -1)
            for (var E = _, l = D.length; E < l; E++) {
              var n = D[E];
              if (n.startTime >= p && n.endTime <= S)
                b.push(n);
              else if (n.startTime > S)
                return b;
            }
          return b;
        }
      },
      "./src/utils/time-ranges.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          default: () => y
        });
        var P = {
          toString: function(C) {
            for (var F = "", R = C.length, T = 0; T < R; T++)
              F += "[" + C.start(T).toFixed(3) + "," + C.end(T).toFixed(3) + "]";
            return F;
          }
        };
        const y = P;
      },
      "./src/utils/timescale-conversion.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          toMpegTsClockFromTimescale: () => F,
          toMsFromMpegTsClock: () => C,
          toTimescaleFromBase: () => y,
          toTimescaleFromScale: () => O
        });
        var P = 9e4;
        function y(R, T, D, p) {
          D === void 0 && (D = 1), p === void 0 && (p = !1);
          var S = R * T * D;
          return p ? Math.round(S) : S;
        }
        function O(R, T, D, p) {
          return D === void 0 && (D = 1), p === void 0 && (p = !1), y(R, T, 1 / D, p);
        }
        function C(R, T) {
          return T === void 0 && (T = !1), y(R, 1e3, 1 / P, T);
        }
        function F(R, T) {
          return T === void 0 && (T = 1), y(R, P, 1 / T);
        }
      },
      "./src/utils/typed-array.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          sliceUint8: () => P
        });
        function P(y, O, C) {
          return Uint8Array.prototype.slice ? y.slice(O, C) : new Uint8Array(Array.prototype.slice.call(y, O, C));
        }
      },
      "./src/utils/vttcue.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          default: () => P
        });
        const P = function() {
          if (typeof self < "u" && self.VTTCue)
            return self.VTTCue;
          var y = ["", "lr", "rl"], O = ["start", "middle", "end", "left", "right"];
          function C(p, S) {
            if (typeof S != "string" || !Array.isArray(p))
              return !1;
            var b = S.toLowerCase();
            return ~p.indexOf(b) ? b : !1;
          }
          function F(p) {
            return C(y, p);
          }
          function R(p) {
            return C(O, p);
          }
          function T(p) {
            for (var S = arguments.length, b = new Array(S > 1 ? S - 1 : 0), _ = 1; _ < S; _++)
              b[_ - 1] = arguments[_];
            for (var E = 1; E < arguments.length; E++) {
              var l = arguments[E];
              for (var n in l)
                p[n] = l[n];
            }
            return p;
          }
          function D(p, S, b) {
            var _ = this, E = {
              enumerable: !0
            };
            _.hasBeenReset = !1;
            var l = "", n = !1, t = p, d = S, h = b, i = null, r = "", e = !0, f = "auto", u = "start", m = 50, s = "middle", v = 50, c = "middle";
            Object.defineProperty(_, "id", T({}, E, {
              get: function() {
                return l;
              },
              set: function(a) {
                l = "" + a;
              }
            })), Object.defineProperty(_, "pauseOnExit", T({}, E, {
              get: function() {
                return n;
              },
              set: function(a) {
                n = !!a;
              }
            })), Object.defineProperty(_, "startTime", T({}, E, {
              get: function() {
                return t;
              },
              set: function(a) {
                if (typeof a != "number")
                  throw new TypeError("Start time must be set to a number.");
                t = a, this.hasBeenReset = !0;
              }
            })), Object.defineProperty(_, "endTime", T({}, E, {
              get: function() {
                return d;
              },
              set: function(a) {
                if (typeof a != "number")
                  throw new TypeError("End time must be set to a number.");
                d = a, this.hasBeenReset = !0;
              }
            })), Object.defineProperty(_, "text", T({}, E, {
              get: function() {
                return h;
              },
              set: function(a) {
                h = "" + a, this.hasBeenReset = !0;
              }
            })), Object.defineProperty(_, "region", T({}, E, {
              get: function() {
                return i;
              },
              set: function(a) {
                i = a, this.hasBeenReset = !0;
              }
            })), Object.defineProperty(_, "vertical", T({}, E, {
              get: function() {
                return r;
              },
              set: function(a) {
                var x = F(a);
                if (x === !1)
                  throw new SyntaxError("An invalid or illegal string was specified.");
                r = x, this.hasBeenReset = !0;
              }
            })), Object.defineProperty(_, "snapToLines", T({}, E, {
              get: function() {
                return e;
              },
              set: function(a) {
                e = !!a, this.hasBeenReset = !0;
              }
            })), Object.defineProperty(_, "line", T({}, E, {
              get: function() {
                return f;
              },
              set: function(a) {
                if (typeof a != "number" && a !== "auto")
                  throw new SyntaxError("An invalid number or illegal string was specified.");
                f = a, this.hasBeenReset = !0;
              }
            })), Object.defineProperty(_, "lineAlign", T({}, E, {
              get: function() {
                return u;
              },
              set: function(a) {
                var x = R(a);
                if (!x)
                  throw new SyntaxError("An invalid or illegal string was specified.");
                u = x, this.hasBeenReset = !0;
              }
            })), Object.defineProperty(_, "position", T({}, E, {
              get: function() {
                return m;
              },
              set: function(a) {
                if (a < 0 || a > 100)
                  throw new Error("Position must be between 0 and 100.");
                m = a, this.hasBeenReset = !0;
              }
            })), Object.defineProperty(_, "positionAlign", T({}, E, {
              get: function() {
                return s;
              },
              set: function(a) {
                var x = R(a);
                if (!x)
                  throw new SyntaxError("An invalid or illegal string was specified.");
                s = x, this.hasBeenReset = !0;
              }
            })), Object.defineProperty(_, "size", T({}, E, {
              get: function() {
                return v;
              },
              set: function(a) {
                if (a < 0 || a > 100)
                  throw new Error("Size must be between 0 and 100.");
                v = a, this.hasBeenReset = !0;
              }
            })), Object.defineProperty(_, "align", T({}, E, {
              get: function() {
                return c;
              },
              set: function(a) {
                var x = R(a);
                if (!x)
                  throw new SyntaxError("An invalid or illegal string was specified.");
                c = x, this.hasBeenReset = !0;
              }
            })), _.displayState = void 0;
          }
          return D.prototype.getCueAsHTML = function() {
            var p = self.WebVTT;
            return p.convertCueToDOMTree(self, this.text);
          }, D;
        }();
      },
      "./src/utils/vttparser.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          VTTParser: () => S,
          fixLineBreaks: () => p,
          parseTimeStamp: () => O
        });
        var P = g("./src/utils/vttcue.ts"), y = /* @__PURE__ */ function() {
          function b() {
          }
          var _ = b.prototype;
          return _.decode = function(l, n) {
            if (!l)
              return "";
            if (typeof l != "string")
              throw new Error("Error - expected string data.");
            return decodeURIComponent(encodeURIComponent(l));
          }, b;
        }();
        function O(b) {
          function _(l, n, t, d) {
            return (l | 0) * 3600 + (n | 0) * 60 + (t | 0) + parseFloat(d || 0);
          }
          var E = b.match(/^(?:(\d+):)?(\d{2}):(\d{2})(\.\d+)?/);
          return E ? parseFloat(E[2]) > 59 ? _(E[2], E[3], 0, E[4]) : _(E[1], E[2], E[3], E[4]) : null;
        }
        var C = /* @__PURE__ */ function() {
          function b() {
            this.values = /* @__PURE__ */ Object.create(null);
          }
          var _ = b.prototype;
          return _.set = function(l, n) {
            !this.get(l) && n !== "" && (this.values[l] = n);
          }, _.get = function(l, n, t) {
            return t ? this.has(l) ? this.values[l] : n[t] : this.has(l) ? this.values[l] : n;
          }, _.has = function(l) {
            return l in this.values;
          }, _.alt = function(l, n, t) {
            for (var d = 0; d < t.length; ++d)
              if (n === t[d]) {
                this.set(l, n);
                break;
              }
          }, _.integer = function(l, n) {
            /^-?\d+$/.test(n) && this.set(l, parseInt(n, 10));
          }, _.percent = function(l, n) {
            if (/^([\d]{1,3})(\.[\d]*)?%$/.test(n)) {
              var t = parseFloat(n);
              if (t >= 0 && t <= 100)
                return this.set(l, t), !0;
            }
            return !1;
          }, b;
        }();
        function F(b, _, E, l) {
          var n = l ? b.split(l) : [b];
          for (var t in n)
            if (typeof n[t] == "string") {
              var d = n[t].split(E);
              if (d.length === 2) {
                var h = d[0], i = d[1];
                _(h, i);
              }
            }
        }
        var R = new P.default(0, 0, ""), T = R.align === "middle" ? "middle" : "center";
        function D(b, _, E) {
          var l = b;
          function n() {
            var h = O(b);
            if (h === null)
              throw new Error("Malformed timestamp: " + l);
            return b = b.replace(/^[^\sa-zA-Z-]+/, ""), h;
          }
          function t(h, i) {
            var r = new C();
            F(h, function(u, m) {
              var s;
              switch (u) {
                case "region":
                  for (var v = E.length - 1; v >= 0; v--)
                    if (E[v].id === m) {
                      r.set(u, E[v].region);
                      break;
                    }
                  break;
                case "vertical":
                  r.alt(u, m, ["rl", "lr"]);
                  break;
                case "line":
                  s = m.split(","), r.integer(u, s[0]), r.percent(u, s[0]) && r.set("snapToLines", !1), r.alt(u, s[0], ["auto"]), s.length === 2 && r.alt("lineAlign", s[1], ["start", T, "end"]);
                  break;
                case "position":
                  s = m.split(","), r.percent(u, s[0]), s.length === 2 && r.alt("positionAlign", s[1], ["start", T, "end", "line-left", "line-right", "auto"]);
                  break;
                case "size":
                  r.percent(u, m);
                  break;
                case "align":
                  r.alt(u, m, ["start", T, "end", "left", "right"]);
                  break;
              }
            }, /:/, /\s/), i.region = r.get("region", null), i.vertical = r.get("vertical", "");
            var e = r.get("line", "auto");
            e === "auto" && R.line === -1 && (e = -1), i.line = e, i.lineAlign = r.get("lineAlign", "start"), i.snapToLines = r.get("snapToLines", !0), i.size = r.get("size", 100), i.align = r.get("align", T);
            var f = r.get("position", "auto");
            f === "auto" && R.position === 50 && (f = i.align === "start" || i.align === "left" ? 0 : i.align === "end" || i.align === "right" ? 100 : 50), i.position = f;
          }
          function d() {
            b = b.replace(/^\s+/, "");
          }
          if (d(), _.startTime = n(), d(), b.slice(0, 3) !== "-->")
            throw new Error("Malformed time stamp (time stamps must be separated by '-->'): " + l);
          b = b.slice(3), d(), _.endTime = n(), d(), t(b, _);
        }
        function p(b) {
          return b.replace(/<br(?: \/)?>/gi, `
`);
        }
        var S = /* @__PURE__ */ function() {
          function b() {
            this.state = "INITIAL", this.buffer = "", this.decoder = new y(), this.regionList = [], this.cue = null, this.oncue = void 0, this.onparsingerror = void 0, this.onflush = void 0;
          }
          var _ = b.prototype;
          return _.parse = function(l) {
            var n = this;
            l && (n.buffer += n.decoder.decode(l, {
              stream: !0
            }));
            function t() {
              var f = n.buffer, u = 0;
              for (f = p(f); u < f.length && f[u] !== "\r" && f[u] !== `
`; )
                ++u;
              var m = f.slice(0, u);
              return f[u] === "\r" && ++u, f[u] === `
` && ++u, n.buffer = f.slice(u), m;
            }
            function d(f) {
              F(f, function(u, m) {
              }, /:/);
            }
            try {
              var h = "";
              if (n.state === "INITIAL") {
                if (!/\r\n|\n/.test(n.buffer))
                  return this;
                h = t();
                var i = h.match(/^()?WEBVTT([ \t].*)?$/);
                if (!i || !i[0])
                  throw new Error("Malformed WebVTT signature.");
                n.state = "HEADER";
              }
              for (var r = !1; n.buffer; ) {
                if (!/\r\n|\n/.test(n.buffer))
                  return this;
                switch (r ? r = !1 : h = t(), n.state) {
                  case "HEADER":
                    /:/.test(h) ? d(h) : h || (n.state = "ID");
                    continue;
                  case "NOTE":
                    h || (n.state = "ID");
                    continue;
                  case "ID":
                    if (/^NOTE($|[ \t])/.test(h)) {
                      n.state = "NOTE";
                      break;
                    }
                    if (!h)
                      continue;
                    if (n.cue = new P.default(0, 0, ""), n.state = "CUE", h.indexOf("-->") === -1) {
                      n.cue.id = h;
                      continue;
                    }
                  case "CUE":
                    if (!n.cue) {
                      n.state = "BADCUE";
                      continue;
                    }
                    try {
                      D(h, n.cue, n.regionList);
                    } catch {
                      n.cue = null, n.state = "BADCUE";
                      continue;
                    }
                    n.state = "CUETEXT";
                    continue;
                  case "CUETEXT":
                    {
                      var e = h.indexOf("-->") !== -1;
                      if (!h || e && (r = !0)) {
                        n.oncue && n.cue && n.oncue(n.cue), n.cue = null, n.state = "ID";
                        continue;
                      }
                      if (n.cue === null)
                        continue;
                      n.cue.text && (n.cue.text += `
`), n.cue.text += h;
                    }
                    continue;
                  case "BADCUE":
                    h || (n.state = "ID");
                }
              }
            } catch {
              n.state === "CUETEXT" && n.cue && n.oncue && n.oncue(n.cue), n.cue = null, n.state = n.state === "INITIAL" ? "BADWEBVTT" : "BADCUE";
            }
            return this;
          }, _.flush = function() {
            var l = this;
            try {
              if ((l.cue || l.state === "HEADER") && (l.buffer += `

`, l.parse()), l.state === "INITIAL" || l.state === "BADWEBVTT")
                throw new Error("Malformed WebVTT signature.");
            } catch (n) {
              l.onparsingerror && l.onparsingerror(n);
            }
            return l.onflush && l.onflush(), this;
          }, b;
        }();
      },
      "./src/utils/webvtt-parser.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          generateCueId: () => S,
          parseWebVTT: () => _
        });
        var P = g("./src/polyfills/number.ts"), y = g("./src/utils/vttparser.ts"), O = g("./src/demux/id3.ts"), C = g("./src/utils/timescale-conversion.ts"), F = g("./src/remux/mp4-remuxer.ts"), R = /\r\n|\n\r|\n|\r/g, T = function(l, n, t) {
          return t === void 0 && (t = 0), l.slice(t, t + n.length) === n;
        }, D = function(l) {
          var n = parseInt(l.slice(-3)), t = parseInt(l.slice(-6, -4)), d = parseInt(l.slice(-9, -7)), h = l.length > 9 ? parseInt(l.substring(0, l.indexOf(":"))) : 0;
          if (!(0, P.isFiniteNumber)(n) || !(0, P.isFiniteNumber)(t) || !(0, P.isFiniteNumber)(d) || !(0, P.isFiniteNumber)(h))
            throw Error("Malformed X-TIMESTAMP-MAP: Local:" + l);
          return n += 1e3 * t, n += 60 * 1e3 * d, n += 60 * 60 * 1e3 * h, n;
        }, p = function(l) {
          for (var n = 5381, t = l.length; t; )
            n = n * 33 ^ l.charCodeAt(--t);
          return (n >>> 0).toString();
        };
        function S(E, l, n) {
          return p(E.toString()) + p(l.toString()) + p(n);
        }
        var b = function(l, n, t) {
          var d = l[n], h = l[d.prevCC];
          if (!h || !h.new && d.new) {
            l.ccOffset = l.presentationOffset = d.start, d.new = !1;
            return;
          }
          for (; (i = h) !== null && i !== void 0 && i.new; ) {
            var i;
            l.ccOffset += d.start - h.start, d.new = !1, d = h, h = l[d.prevCC];
          }
          l.presentationOffset = t;
        };
        function _(E, l, n, t, d, h, i, r) {
          var e = new y.VTTParser(), f = (0, O.utf8ArrayToStr)(new Uint8Array(E)).trim().replace(R, `
`).split(`
`), u = [], m = (0, C.toMpegTsClockFromTimescale)(l, n), s = "00:00.000", v = 0, c = 0, o, a = !0;
          e.oncue = function(x) {
            var k = t[d], K = t.ccOffset, w = (v - m) / 9e4;
            k != null && k.new && (c !== void 0 ? K = t.ccOffset = k.start : b(t, d, w)), w && (K = w - t.presentationOffset);
            var W = x.endTime - x.startTime, z = (0, F.normalizePts)((x.startTime + K - c) * 9e4, h * 9e4) / 9e4;
            x.startTime = Math.max(z, 0), x.endTime = Math.max(z + W, 0);
            var H = x.text.trim();
            x.text = decodeURIComponent(encodeURIComponent(H)), x.id || (x.id = S(x.startTime, x.endTime, H)), x.endTime > 0 && u.push(x);
          }, e.onparsingerror = function(x) {
            o = x;
          }, e.onflush = function() {
            if (o) {
              r(o);
              return;
            }
            i(u);
          }, f.forEach(function(x) {
            if (a)
              if (T(x, "X-TIMESTAMP-MAP=")) {
                a = !1, x.slice(16).split(",").forEach(function(k) {
                  T(k, "LOCAL:") ? s = k.slice(6) : T(k, "MPEGTS:") && (v = parseInt(k.slice(7)));
                });
                try {
                  c = D(s) / 1e3;
                } catch (k) {
                  o = k;
                }
                return;
              } else
                x === "" && (a = !1);
            e.parse(x + `
`);
          }), e.flush();
        }
      },
      "./src/utils/xhr-loader.ts": (U, M, g) => {
        g.r(M), g.d(M, {
          default: () => F
        });
        var P = g("./src/utils/logger.ts"), y = g("./src/loader/load-stats.ts"), O = /^age:\s*[\d.]+\s*$/m, C = /* @__PURE__ */ function() {
          function R(D) {
            this.xhrSetup = void 0, this.requestTimeout = void 0, this.retryTimeout = void 0, this.retryDelay = void 0, this.config = null, this.callbacks = null, this.context = void 0, this.loader = null, this.stats = void 0, this.xhrSetup = D ? D.xhrSetup : null, this.stats = new y.LoadStats(), this.retryDelay = 0;
          }
          var T = R.prototype;
          return T.destroy = function() {
            this.callbacks = null, this.abortInternal(), this.loader = null, this.config = null;
          }, T.abortInternal = function() {
            var p = this.loader;
            self.clearTimeout(this.requestTimeout), self.clearTimeout(this.retryTimeout), p && (p.onreadystatechange = null, p.onprogress = null, p.readyState !== 4 && (this.stats.aborted = !0, p.abort()));
          }, T.abort = function() {
            var p;
            this.abortInternal(), (p = this.callbacks) !== null && p !== void 0 && p.onAbort && this.callbacks.onAbort(this.stats, this.context, this.loader);
          }, T.load = function(p, S, b) {
            if (this.stats.loading.start)
              throw new Error("Loader can only be used once.");
            this.stats.loading.start = self.performance.now(), this.context = p, this.config = S, this.callbacks = b, this.retryDelay = S.retryDelay, this.loadInternal();
          }, T.loadInternal = function() {
            var p = this.config, S = this.context;
            if (!!p) {
              var b = this.loader = new self.XMLHttpRequest(), _ = this.stats;
              _.loading.first = 0, _.loaded = 0;
              var E = this.xhrSetup;
              try {
                if (E)
                  try {
                    E(b, S.url);
                  } catch {
                    b.open("GET", S.url, !0), E(b, S.url);
                  }
                b.readyState || b.open("GET", S.url, !0);
                var l = this.context.headers;
                if (l)
                  for (var n in l)
                    b.setRequestHeader(n, l[n]);
              } catch (t) {
                this.callbacks.onError({
                  code: b.status,
                  text: t.message
                }, S, b);
                return;
              }
              S.rangeEnd && b.setRequestHeader("Range", "bytes=" + S.rangeStart + "-" + (S.rangeEnd - 1)), b.onreadystatechange = this.readystatechange.bind(this), b.onprogress = this.loadprogress.bind(this), b.responseType = S.responseType, self.clearTimeout(this.requestTimeout), this.requestTimeout = self.setTimeout(this.loadtimeout.bind(this), p.timeout), b.send();
            }
          }, T.readystatechange = function() {
            var p = this.context, S = this.loader, b = this.stats;
            if (!(!p || !S)) {
              var _ = S.readyState, E = this.config;
              if (!b.aborted && _ >= 2)
                if (self.clearTimeout(this.requestTimeout), b.loading.first === 0 && (b.loading.first = Math.max(self.performance.now(), b.loading.start)), _ === 4) {
                  S.onreadystatechange = null, S.onprogress = null;
                  var l = S.status, n = S.responseType === "arraybuffer";
                  if (l >= 200 && l < 300 && (n && S.response || S.responseText !== null)) {
                    b.loading.end = Math.max(self.performance.now(), b.loading.first);
                    var t, d;
                    if (n ? (t = S.response, d = t.byteLength) : (t = S.responseText, d = t.length), b.loaded = b.total = d, !this.callbacks)
                      return;
                    var h = this.callbacks.onProgress;
                    if (h && h(b, p, t, S), !this.callbacks)
                      return;
                    var i = {
                      url: S.responseURL,
                      data: t
                    };
                    this.callbacks.onSuccess(i, b, p, S);
                  } else
                    b.retry >= E.maxRetry || l >= 400 && l < 499 ? (P.logger.error(l + " while loading " + p.url), this.callbacks.onError({
                      code: l,
                      text: S.statusText
                    }, p, S)) : (P.logger.warn(l + " while loading " + p.url + ", retrying in " + this.retryDelay + "..."), this.abortInternal(), this.loader = null, self.clearTimeout(this.retryTimeout), this.retryTimeout = self.setTimeout(this.loadInternal.bind(this), this.retryDelay), this.retryDelay = Math.min(2 * this.retryDelay, E.maxRetryDelay), b.retry++);
                } else
                  self.clearTimeout(this.requestTimeout), this.requestTimeout = self.setTimeout(this.loadtimeout.bind(this), E.timeout);
            }
          }, T.loadtimeout = function() {
            P.logger.warn("timeout while loading " + this.context.url);
            var p = this.callbacks;
            p && (this.abortInternal(), p.onTimeout(this.stats, this.context, this.loader));
          }, T.loadprogress = function(p) {
            var S = this.stats;
            S.loaded = p.loaded, p.lengthComputable && (S.total = p.total);
          }, T.getCacheAge = function() {
            var p = null;
            if (this.loader && O.test(this.loader.getAllResponseHeaders())) {
              var S = this.loader.getResponseHeader("age");
              p = S ? parseFloat(S) : null;
            }
            return p;
          }, R;
        }();
        const F = C;
      },
      "./node_modules/eventemitter3/index.js": (U) => {
        var M = Object.prototype.hasOwnProperty, g = "~";
        function P() {
        }
        Object.create && (P.prototype = /* @__PURE__ */ Object.create(null), new P().__proto__ || (g = !1));
        function y(R, T, D) {
          this.fn = R, this.context = T, this.once = D || !1;
        }
        function O(R, T, D, p, S) {
          if (typeof D != "function")
            throw new TypeError("The listener must be a function");
          var b = new y(D, p || R, S), _ = g ? g + T : T;
          return R._events[_] ? R._events[_].fn ? R._events[_] = [R._events[_], b] : R._events[_].push(b) : (R._events[_] = b, R._eventsCount++), R;
        }
        function C(R, T) {
          --R._eventsCount === 0 ? R._events = new P() : delete R._events[T];
        }
        function F() {
          this._events = new P(), this._eventsCount = 0;
        }
        F.prototype.eventNames = function() {
          var T = [], D, p;
          if (this._eventsCount === 0)
            return T;
          for (p in D = this._events)
            M.call(D, p) && T.push(g ? p.slice(1) : p);
          return Object.getOwnPropertySymbols ? T.concat(Object.getOwnPropertySymbols(D)) : T;
        }, F.prototype.listeners = function(T) {
          var D = g ? g + T : T, p = this._events[D];
          if (!p)
            return [];
          if (p.fn)
            return [p.fn];
          for (var S = 0, b = p.length, _ = new Array(b); S < b; S++)
            _[S] = p[S].fn;
          return _;
        }, F.prototype.listenerCount = function(T) {
          var D = g ? g + T : T, p = this._events[D];
          return p ? p.fn ? 1 : p.length : 0;
        }, F.prototype.emit = function(T, D, p, S, b, _) {
          var E = g ? g + T : T;
          if (!this._events[E])
            return !1;
          var l = this._events[E], n = arguments.length, t, d;
          if (l.fn) {
            switch (l.once && this.removeListener(T, l.fn, void 0, !0), n) {
              case 1:
                return l.fn.call(l.context), !0;
              case 2:
                return l.fn.call(l.context, D), !0;
              case 3:
                return l.fn.call(l.context, D, p), !0;
              case 4:
                return l.fn.call(l.context, D, p, S), !0;
              case 5:
                return l.fn.call(l.context, D, p, S, b), !0;
              case 6:
                return l.fn.call(l.context, D, p, S, b, _), !0;
            }
            for (d = 1, t = new Array(n - 1); d < n; d++)
              t[d - 1] = arguments[d];
            l.fn.apply(l.context, t);
          } else {
            var h = l.length, i;
            for (d = 0; d < h; d++)
              switch (l[d].once && this.removeListener(T, l[d].fn, void 0, !0), n) {
                case 1:
                  l[d].fn.call(l[d].context);
                  break;
                case 2:
                  l[d].fn.call(l[d].context, D);
                  break;
                case 3:
                  l[d].fn.call(l[d].context, D, p);
                  break;
                case 4:
                  l[d].fn.call(l[d].context, D, p, S);
                  break;
                default:
                  if (!t)
                    for (i = 1, t = new Array(n - 1); i < n; i++)
                      t[i - 1] = arguments[i];
                  l[d].fn.apply(l[d].context, t);
              }
          }
          return !0;
        }, F.prototype.on = function(T, D, p) {
          return O(this, T, D, p, !1);
        }, F.prototype.once = function(T, D, p) {
          return O(this, T, D, p, !0);
        }, F.prototype.removeListener = function(T, D, p, S) {
          var b = g ? g + T : T;
          if (!this._events[b])
            return this;
          if (!D)
            return C(this, b), this;
          var _ = this._events[b];
          if (_.fn)
            _.fn === D && (!S || _.once) && (!p || _.context === p) && C(this, b);
          else {
            for (var E = 0, l = [], n = _.length; E < n; E++)
              (_[E].fn !== D || S && !_[E].once || p && _[E].context !== p) && l.push(_[E]);
            l.length ? this._events[b] = l.length === 1 ? l[0] : l : C(this, b);
          }
          return this;
        }, F.prototype.removeAllListeners = function(T) {
          var D;
          return T ? (D = g ? g + T : T, this._events[D] && C(this, D)) : (this._events = new P(), this._eventsCount = 0), this;
        }, F.prototype.off = F.prototype.removeListener, F.prototype.addListener = F.prototype.on, F.prefixed = g, F.EventEmitter = F, U.exports = F;
      },
      "./node_modules/url-toolkit/src/url-toolkit.js": function(U) {
        (function(M) {
          var g = /^(?=((?:[a-zA-Z0-9+\-.]+:)?))\1(?=((?:\/\/[^\/?#]*)?))\2(?=((?:(?:[^?#\/]*\/)*[^;?#\/]*)?))\3((?:;[^?#]*)?)(\?[^#]*)?(#[^]*)?$/, P = /^(?=([^\/?#]*))\1([^]*)$/, y = /(?:\/|^)\.(?=\/)/g, O = /(?:\/|^)\.\.\/(?!\.\.\/)[^\/]*(?=\/)/g, C = {
            buildAbsoluteURL: function(F, R, T) {
              if (T = T || {}, F = F.trim(), R = R.trim(), !R) {
                if (!T.alwaysNormalize)
                  return F;
                var D = C.parseURL(F);
                if (!D)
                  throw new Error("Error trying to parse base URL.");
                return D.path = C.normalizePath(
                  D.path
                ), C.buildURLFromParts(D);
              }
              var p = C.parseURL(R);
              if (!p)
                throw new Error("Error trying to parse relative URL.");
              if (p.scheme)
                return T.alwaysNormalize ? (p.path = C.normalizePath(p.path), C.buildURLFromParts(p)) : R;
              var S = C.parseURL(F);
              if (!S)
                throw new Error("Error trying to parse base URL.");
              if (!S.netLoc && S.path && S.path[0] !== "/") {
                var b = P.exec(S.path);
                S.netLoc = b[1], S.path = b[2];
              }
              S.netLoc && !S.path && (S.path = "/");
              var _ = {
                scheme: S.scheme,
                netLoc: p.netLoc,
                path: null,
                params: p.params,
                query: p.query,
                fragment: p.fragment
              };
              if (!p.netLoc && (_.netLoc = S.netLoc, p.path[0] !== "/"))
                if (!p.path)
                  _.path = S.path, p.params || (_.params = S.params, p.query || (_.query = S.query));
                else {
                  var E = S.path, l = E.substring(0, E.lastIndexOf("/") + 1) + p.path;
                  _.path = C.normalizePath(l);
                }
              return _.path === null && (_.path = T.alwaysNormalize ? C.normalizePath(p.path) : p.path), C.buildURLFromParts(_);
            },
            parseURL: function(F) {
              var R = g.exec(F);
              return R ? {
                scheme: R[1] || "",
                netLoc: R[2] || "",
                path: R[3] || "",
                params: R[4] || "",
                query: R[5] || "",
                fragment: R[6] || ""
              } : null;
            },
            normalizePath: function(F) {
              for (F = F.split("").reverse().join("").replace(y, ""); F.length !== (F = F.replace(O, "")).length; )
                ;
              return F.split("").reverse().join("");
            },
            buildURLFromParts: function(F) {
              return F.scheme + F.netLoc + F.path + F.params + F.query + F.fragment;
            }
          };
          U.exports = C;
        })();
      }
    }, N = {};
    function B(U) {
      var M = N[U];
      if (M !== void 0)
        return M.exports;
      var g = N[U] = {
        exports: {}
      };
      return I[U].call(g.exports, g, g.exports, B), g.exports;
    }
    B.m = I, B.n = (U) => {
      var M = U && U.__esModule ? () => U.default : () => U;
      return B.d(M, { a: M }), M;
    }, B.d = (U, M) => {
      for (var g in M)
        B.o(M, g) && !B.o(U, g) && Object.defineProperty(U, g, { enumerable: !0, get: M[g] });
    }, B.o = (U, M) => Object.prototype.hasOwnProperty.call(U, M), B.r = (U) => {
      typeof Symbol < "u" && Symbol.toStringTag && Object.defineProperty(U, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(U, "__esModule", { value: !0 });
    };
    var G = B("./src/hls.ts");
    return G = G.default, G;
  })());
})($r);
const nt = /* @__PURE__ */ bi($r.exports);
function rr(L, A, I, N) {
  var B, G = !1, U = 0;
  function M() {
    B && clearTimeout(B);
  }
  function g() {
    M(), G = !0;
  }
  typeof A != "boolean" && (N = I, I = A, A = void 0);
  function P() {
    for (var y = arguments.length, O = new Array(y), C = 0; C < y; C++)
      O[C] = arguments[C];
    var F = this, R = Date.now() - U;
    if (G)
      return;
    function T() {
      U = Date.now(), I.apply(F, O);
    }
    function D() {
      B = void 0;
    }
    N && !B && T(), M(), N === void 0 && R > L ? T() : A !== !0 && (B = setTimeout(N ? D : T, N === void 0 ? L - R : L));
  }
  return P.cancel = g, P;
}
function ir(L, A, I) {
  return I === void 0 ? rr(L, A, !1) : rr(L, I, A !== !1);
}
const nr = (L) => `${parseInt("0x" + L.slice(1, 3))},${parseInt("0x" + L.slice(3, 5))},${parseInt(
  "0x" + L.slice(5, 7)
)}`, Wt = (L) => {
  let A = ~~(L / 3600), I = ~~(L % 3600 / 60), N = ~~(L % 60);
  return A = A < 10 ? "0" + A : A, I = I < 10 ? "0" + I : I, N = N < 10 ? "0" + N : N, `${A}:${I}:${N}`;
}, dt = "ontouchstart" in window, Li = (L) => {
  let A = document, I = A.webkitIsFullScreen || A.fullscreen;
  return I ? (document.exitFullscreen || A.webkitExitFullScreen).call(A) : (L.requestFullscreen || (L == null ? void 0 : L.webkitRequestFullScreen)).call(L), !I;
}, mt = function(L, A, I, N = !1) {
  L && A && I && L.addEventListener(A, I, N);
}, Ye = function(L, A, I, N = !1) {
  L && A && I && L.removeEventListener(A, I, N);
};
function Ai(L) {
  $e(L, "svelte-1ruaw7f", ".d-slider.svelte-1ruaw7f.svelte-1ruaw7f{position:relative}.d-slider.svelte-1ruaw7f .d-slider__runway.svelte-1ruaw7f{width:100%;background-color:#333333;position:relative;cursor:pointer;vertical-align:middle}.d-slider.svelte-1ruaw7f .d-slider__runway .d-slider__cursor.svelte-1ruaw7f,.d-slider.svelte-1ruaw7f .d-slider__runway .d-slider__preload.svelte-1ruaw7f,.d-slider.svelte-1ruaw7f .d-slider__runway .d-slider__bar.svelte-1ruaw7f{position:absolute;top:0;left:0;height:100%}.d-slider.svelte-1ruaw7f .d-slider__runway .d-slider__cursor.svelte-1ruaw7f{display:none;z-index:1;width:1px;background:#fff;pointer-events:none}.d-slider.svelte-1ruaw7f .d-slider__runway .d-slider__cursor .d-slider__tips.svelte-1ruaw7f{pointer-events:none;color:#fff;position:absolute;white-space:nowrap;z-index:2;bottom:14px;left:50%;padding:4px;box-sizing:border-box;display:block;font-size:12px;background:rgba(0, 0, 0, 0.6);border-radius:3px;transform:translateX(-50%)}.d-slider.svelte-1ruaw7f .d-slider__runway:hover .d-slider__cursor.svelte-1ruaw7f{display:block}.d-slider.svelte-1ruaw7f .d-slider__runway .d-slider__preload.svelte-1ruaw7f{background:#717171}.d-slider.svelte-1ruaw7f .d-slider__runway .d-slider__bar.svelte-1ruaw7f{background:linear-gradient(to right, var(--primary-color) 0%, var(--primary-color-end) 80%, var(--primary-color-end) 100%)}.d-slider.svelte-1ruaw7f .d-slider__runway .d-slider__bar.svelte-1ruaw7f::before{display:block;content:'';position:absolute;right:-6px;top:50%;width:12px;height:12px;transition:0.2s;transform:translateY(-50%) scale(1, 1);border-radius:50%;background:#fff;border:5px solid var(--primary-color)}.d-slider.is-vertical.svelte-1ruaw7f.svelte-1ruaw7f{height:100px;display:inline-block}.d-slider.is-vertical.svelte-1ruaw7f .d-slider__runway.svelte-1ruaw7f{position:relative;height:100%;margin:0 6px}.d-slider.is-vertical.svelte-1ruaw7f .d-slider__runway .d-slider__preload.svelte-1ruaw7f,.d-slider.is-vertical.svelte-1ruaw7f .d-slider__runway .d-slider__bar.svelte-1ruaw7f,.d-slider.is-vertical.svelte-1ruaw7f .d-slider__runway .d-slider__cursor.svelte-1ruaw7f{bottom:0;top:auto;width:100%}.d-slider.is-vertical.svelte-1ruaw7f .d-slider__runway .d-slider__cursor.svelte-1ruaw7f{height:1px}.d-slider.is-vertical.svelte-1ruaw7f .d-slider__runway .d-slider__bar.svelte-1ruaw7f::before{top:-6px;left:50%;width:12px;height:12px;transform:translateX(-50%) scale(1, 1)}.d-progress-bar.svelte-1ruaw7f.svelte-1ruaw7f{position:absolute;left:0;right:0;bottom:0;width:100%;transition:height 0.1s;height:3px;z-index:1}.d-progress-bar.svelte-1ruaw7f .d-slider__runway.svelte-1ruaw7f{transition:height 0.1s;height:100% !important}.d-progress-bar.svelte-1ruaw7f .d-slider__runway .d-slider__bar.svelte-1ruaw7f::before{transform:translateY(-50%) scale(0, 0)}.d-progress-bar.svelte-1ruaw7f.svelte-1ruaw7f:hover{height:100%}.d-progress-bar.svelte-1ruaw7f:hover .d-slider__bar.svelte-1ruaw7f::before{transform:translateY(-50%) scale(1, 1) !important}.d-player-filter-panel-item.svelte-1ruaw7f .d-slider__runway.svelte-1ruaw7f{background-color:#999}.d-player-filter-panel-item.svelte-1ruaw7f .d-slider__runway .d-slider__bar.svelte-1ruaw7f:before{width:8px;height:8px}.filter-panel-slider.svelte-1ruaw7f.svelte-1ruaw7f{width:100%}");
}
function Ii(L) {
  let A, I, N, B, G, U, M, g, P, y, O, C, F, R, T;
  return {
    c() {
      A = J("div"), I = J("div"), N = J("div"), B = J("div"), G = he(L[2]), g = ae(), P = J("div"), y = ae(), O = J("div"), V(B, "class", "d-slider__tips svelte-1ruaw7f"), V(B, "style", U = `left:${L[5].hoverTipsLeft};display:${L[2] ? "block" : "none"}`), V(N, "class", "d-slider__cursor svelte-1ruaw7f"), V(N, "style", M = `${L[8]}; display:${L[0] ? "block" : "none"}`), V(P, "class", "d-slider__preload svelte-1ruaw7f"), V(P, "style", L[9]), V(O, "class", "d-slider__bar svelte-1ruaw7f"), V(O, "style", L[10]), V(I, "class", "d-slider__runway svelte-1ruaw7f"), V(I, "style", C = L[1] ? "width:" + L[3] : "height:" + L[3]), V(A, "class", F = Re(`d-slider ${L[1] ? "is-vertical" : ""} ${L[4]}`) + " svelte-1ruaw7f");
    },
    m(D, p) {
      fe(D, A, p), X(A, I), X(I, N), X(N, B), X(B, G), L[19](B), X(I, g), X(I, P), X(I, y), X(I, O), L[20](A), R || (T = [
        ce(I, "mousemove", L[15]),
        ce(I, "mouseleave", L[14]),
        ce(I, "mouseenter", L[13]),
        ce(A, "mousedown", Bt(L[12])),
        ce(A, "contextmenu", L[11])
      ], R = !0);
    },
    p(D, [p]) {
      p & 4 && _e(G, D[2]), p & 36 && U !== (U = `left:${D[5].hoverTipsLeft};display:${D[2] ? "block" : "none"}`) && V(B, "style", U), p & 257 && M !== (M = `${D[8]}; display:${D[0] ? "block" : "none"}`) && V(N, "style", M), p & 512 && V(P, "style", D[9]), p & 1024 && V(O, "style", D[10]), p & 10 && C !== (C = D[1] ? "width:" + D[3] : "height:" + D[3]) && V(I, "style", C), p & 18 && F !== (F = Re(`d-slider ${D[1] ? "is-vertical" : ""} ${D[4]}`) + " svelte-1ruaw7f") && V(A, "class", F);
    },
    i: De,
    o: De,
    d(D) {
      D && ue(A), L[19](null), L[20](null), R = !1, at(T);
    }
  };
}
function Ri(L, A, I) {
  let N, B, G;
  const U = pt();
  let { modelValue: M = 0 } = A, { disabled: g = !1 } = A, { vertical: P = !1 } = A, { hover: y = !1 } = A, { hoverText: O = "" } = A, { preload: C = 0 } = A, { size: F = "10px" } = A, { className: R = "" } = A;
  const T = {
    dragging: !1,
    hoverPosition: 0,
    hoverTipsLeft: "50%"
  };
  let D, p;
  const S = (e) => {
    e.preventDefault();
  }, b = (e) => {
    if (g) {
      const f = t(e);
      U("speedDisabled", f);
      return;
    }
    e.preventDefault(), I(5, T.dragging = !0, T), n(e), mt(window, "mousemove", d), mt(window, "touchmove", d), mt(window, "mouseup", h), mt(window, "touchend", h);
  }, _ = () => {
    I(0, y = !0);
  }, E = () => {
    I(0, y = !1);
  }, l = (e) => {
    if (!y)
      return;
    let f = t(e);
    if (U("onMousemove", { ev: e, val: f }), I(5, T.hoverPosition = f, T), P)
      return;
    let u = D, m = p.clientWidth / 2, s = e.clientX - u.getBoundingClientRect().left;
    s < m ? I(5, T.hoverTipsLeft = m - s + "px", T) : u.clientWidth - s < m ? I(5, T.hoverTipsLeft = u.clientWidth - s - m + "px", T) : I(5, T.hoverTipsLeft = "50%", T);
  }, n = (e) => {
    let f = t(e);
    U("update", f), U("change", { ev: e, value: f });
  }, t = (e) => {
    let f = D, u = 0;
    if (P) {
      let m = f.clientHeight;
      u = (f.getBoundingClientRect().bottom - e.clientY) / m;
    } else
      u = (e.clientX - f.getBoundingClientRect().left) / f.clientWidth;
    return u < 0 ? 0 : u > 1 ? 1 : u;
  }, d = (e) => {
    n(e);
  }, h = (e) => {
    T.dragging && (Ye(window, "mousemove", d), Ye(window, "touchmove", d), Ye(window, "mouseup", h), Ye(window, "touchend", h), Ye(window, "contextmenu", h), setTimeout(
      () => {
        I(5, T.dragging = !1, T);
      },
      0
    ));
  };
  function i(e) {
    ct[e ? "unshift" : "push"](() => {
      p = e, I(7, p);
    });
  }
  function r(e) {
    ct[e ? "unshift" : "push"](() => {
      D = e, I(6, D);
    });
  }
  return L.$$set = (e) => {
    "modelValue" in e && I(16, M = e.modelValue), "disabled" in e && I(17, g = e.disabled), "vertical" in e && I(1, P = e.vertical), "hover" in e && I(0, y = e.hover), "hoverText" in e && I(2, O = e.hoverText), "preload" in e && I(18, C = e.preload), "size" in e && I(3, F = e.size), "className" in e && I(4, R = e.className);
  }, L.$$.update = () => {
    L.$$.dirty & 65538 && I(10, N = (() => {
      let e = M < 0 ? 0 : M > 1 ? 1 : M;
      return P ? `height:${e * 100}%` : `width:${e * 100}%`;
    })()), L.$$.dirty & 262146 && I(9, B = (() => {
      let e = C < 0 ? 0 : C > 1 ? 1 : C;
      return P ? `height:${e * 100}%` : `width:${e * 100}%`;
    })()), L.$$.dirty & 34 && I(8, G = (() => {
      let e = T.hoverPosition < 0 ? 0 : T.hoverPosition > 1 ? 1 : T.hoverPosition;
      return P ? `bottom:${e * 100}%` : `left:${e * 100}%`;
    })());
  }, [
    y,
    P,
    O,
    F,
    R,
    T,
    D,
    p,
    G,
    B,
    N,
    S,
    b,
    _,
    E,
    l,
    M,
    g,
    C,
    i,
    r
  ];
}
class Lt extends tt {
  constructor(A) {
    super(), et(
      this,
      A,
      Ri,
      Ii,
      qe,
      {
        modelValue: 16,
        disabled: 17,
        vertical: 1,
        hover: 0,
        hoverText: 2,
        preload: 18,
        size: 3,
        className: 4
      },
      Ai
    );
  }
}
function Pi(L) {
  $e(L, "svelte-4mlfkg", ".d-switch.svelte-4mlfkg.svelte-4mlfkg{position:relative;height:18px;transition:background 0.2s;background:#757575;border-radius:10px;display:inline-flex;align-items:center;vertical-align:middle}.d-switch.svelte-4mlfkg .d-switch__input.svelte-4mlfkg{position:relative;z-index:1;margin:0;width:100%;height:100%;opacity:0}.d-switch.svelte-4mlfkg .d-switch_action.svelte-4mlfkg{position:absolute;transition:0.2s;left:2px;top:2px;z-index:0;height:14px;width:14px;background:#fff;border-radius:50%}.d-switch.is-checked.svelte-4mlfkg.svelte-4mlfkg{background-color:var(--primary-color)}.d-switch.is-checked.svelte-4mlfkg .d-switch_action.svelte-4mlfkg{left:100%;background:#fff;margin-left:-18px}");
}
function Ci(L) {
  let A, I, N, B, G, U, M, g;
  return {
    c() {
      A = J("div"), I = J("input"), N = ae(), B = J("span"), V(I, "class", "d-switch__input svelte-4mlfkg"), V(I, "type", "checkbox"), I.checked = L[4], V(I, "true-value", L[1]), V(I, "false-value", L[2]), V(B, "class", "d-switch_action svelte-4mlfkg"), V(A, "class", G = Re(L[4] ? "is-checked d-switch" : "d-switch") + " svelte-4mlfkg"), V(A, "style", U = `width:${L[0]}`);
    },
    m(P, y) {
      fe(P, A, y), X(A, I), L[8](I), X(A, N), X(A, B), M || (g = ce(I, "change", L[5]), M = !0);
    },
    p(P, [y]) {
      y & 16 && (I.checked = P[4]), y & 2 && V(I, "true-value", P[1]), y & 4 && V(I, "false-value", P[2]), y & 16 && G !== (G = Re(P[4] ? "is-checked d-switch" : "d-switch") + " svelte-4mlfkg") && V(A, "class", G), y & 1 && U !== (U = `width:${P[0]}`) && V(A, "style", U);
    },
    i: De,
    o: De,
    d(P) {
      P && ue(A), L[8](null), M = !1, g();
    }
  };
}
function Oi(L, A, I) {
  let N;
  const B = pt();
  let { modelValue: G } = A, { width: U = "40px" } = A, { trueValue: M = !0 } = A, { falseValue: g = !0 } = A, { activeColor: P = "#409EFF" } = A, y;
  const O = async () => {
    await Ht();
    const F = y.checked;
    B("update", F), B("change", F);
  };
  function C(F) {
    ct[F ? "unshift" : "push"](() => {
      y = F, I(3, y);
    });
  }
  return L.$$set = (F) => {
    "modelValue" in F && I(6, G = F.modelValue), "width" in F && I(0, U = F.width), "trueValue" in F && I(1, M = F.trueValue), "falseValue" in F && I(2, g = F.falseValue), "activeColor" in F && I(7, P = F.activeColor);
  }, L.$$.update = () => {
    L.$$.dirty & 66 && I(4, N = (() => G === M)());
  }, [
    U,
    M,
    g,
    y,
    N,
    O,
    G,
    P,
    C
  ];
}
class Gt extends tt {
  constructor(A) {
    super(), et(
      this,
      A,
      Oi,
      Ci,
      qe,
      {
        modelValue: 6,
        width: 0,
        trueValue: 1,
        falseValue: 2,
        activeColor: 7
      },
      Pi
    );
  }
}
function Mi(L) {
  $e(L, "svelte-1ojdyss", "@import '../style/iconfont.css';.d-icon.svelte-1ojdyss{display:inline-block;cursor:pointer;overflow:hidden}.icon-play.svelte-1ojdyss{margin-left:5px}");
}
function ki(L) {
  let A, I;
  return {
    c() {
      A = J("i"), V(A, "class", I = Re(`${L[0]} d-icon iconfont ${L[1]}`) + " svelte-1ojdyss"), V(A, "style", L[2]);
    },
    m(N, B) {
      fe(N, A, B);
    },
    p(N, [B]) {
      B & 3 && I !== (I = Re(`${N[0]} d-icon iconfont ${N[1]}`) + " svelte-1ojdyss") && V(A, "class", I), B & 4 && V(A, "style", N[2]);
    },
    i: De,
    o: De,
    d(N) {
      N && ue(A);
    }
  };
}
function Fi(L, A, I) {
  let N, { icon: B } = A, { size: G } = A, { className: U = "" } = A;
  return L.$$set = (M) => {
    "icon" in M && I(0, B = M.icon), "size" in M && I(3, G = M.size), "className" in M && I(1, U = M.className);
  }, L.$$.update = () => {
    L.$$.dirty & 8 && I(2, N = (() => `font-size:${/^\d+$/.test(G + "") ? G + "px" : G}`)());
  }, [B, U, N, G];
}
class Et extends tt {
  constructor(A) {
    super(), et(this, A, Fi, ki, qe, { icon: 0, size: 3, className: 1 }, Mi);
  }
}
const ar = {
  en: {
    speed: "speed",
    mirror: "mirror",
    loop: "loop",
    lightOff: "light off",
    pictureInPicture: "picture in picture",
    webFullScreen: "web fullscreen",
    exitWebFullScreen: "exit web fullscreen",
    fullScreen: "fullscreen(f)",
    exitFullScreen: "exit fullscreen(f)",
    colorAdjustment: "Color adjustment",
    saturability: "saturability",
    brightness: "brightness",
    contrast: "contrast",
    reset: "reset",
    shortcutKeyInstructions: "Shortcut key instructions",
    copyVideoUrl: "Copy the url address",
    version: "Version",
    loading: "loading",
    replay: "replay",
    playError: "play error",
    playStuck: "play stuck",
    progressError: "The progress bar cannot be dragged",
    videoBlack: "The video is black but there is sound",
    soundPictueAsync: "Sound and picture are out of sync",
    feedbackTips: "Feedback success!",
    playerFeedBack: "Player problem feedback",
    other: "other",
    feedbackPlaceHolder: "Description of the problem in 100 words or less",
    confirm: "confirm"
  },
  "zh-cn": {
    speed: "\u500D\u901F",
    mirror: "\u955C\u50CF\u753B\u9762",
    loop: "\u5FAA\u73AF\u64AD\u653E",
    lightOff: "\u5173\u706F\u6A21\u5F0F",
    pictureInPicture: "\u753B\u4E2D\u753B",
    webFullScreen: "\u7F51\u9875\u5168\u5C4F",
    exitWebFullScreen: "\u9000\u51FA\u7F51\u9875\u5168\u5C4F",
    fullScreen: "\u5168\u5C4F(f)",
    exitFullScreen: "\u9000\u51FA\u5168\u5C4F(f)",
    colorAdjustment: "\u89C6\u9891\u8272\u5F69\u8C03\u6574",
    saturability: "\u9971\u548C\u5EA6",
    brightness: "\u4EAE\u5EA6",
    contrast: "\u5BF9\u6BD4\u5EA6",
    reset: "\u91CD\u7F6E",
    shortcutKeyInstructions: "\u5FEB\u6377\u952E\u8BF4\u660E",
    copyVideoUrl: "\u590D\u5236\u7F51\u5740\u89C6\u9891",
    version: "\u7248\u672C",
    loading: "\u6B63\u5728\u7F13\u51B2...",
    replay: "\u91CD\u65B0\u64AD\u653E",
    playError: "\u8BF7\u6C42\u9519\u8BEF",
    playStuck: "\u64AD\u653E\u5361\u987F",
    progressError: "\u8FDB\u5EA6\u6761\u65E0\u6CD5\u62D6\u52A8",
    videoBlack: "\u89C6\u9891\u9ED1\u5C4F\u4F46\u6709\u58F0\u97F3",
    soundPictueAsync: "\u97F3\u753B\u4E0D\u540C\u6B65",
    feedbackTips: "\u53CD\u9988\u6210\u529F\uFF01",
    playerFeedBack: "\u64AD\u653E\u5668\u95EE\u9898\u53CD\u9988",
    other: "\u5176\u4ED6",
    feedbackPlaceHolder: "\u95EE\u9898\u63CF\u8FF0\uFF0C\u9650100\u5B57\u5185",
    confirm: "\u786E\u8BA4"
  },
  "zh-tw": {
    speed: "\u500D\u901F",
    mirror: "\u93E1\u50CF\u756B\u9762",
    loop: "\u8FF4\u5708\u64AD\u653E",
    lightOff: "\u95DC\u71C8\u6A21\u5F0F",
    pictureInPicture: "\u756B\u4E2D\u756B",
    webFullScreen: "\u7DB2\u9801\u5168\u5C4F",
    exitWebFullScreen: "\u9000\u51FA\u7DB2\u9801\u5168\u5C4F",
    fullScreen: "\u5168\u5C4F(f)",
    exitFullScreen: "\u9000\u51FA\u5168\u5C4F(f)",
    colorAdjustment: "\u8996\u983B\u8272\u5F69\u8ABF\u6574",
    saturability: "\u98FD\u548C\u5EA6",
    brightness: "\u4EAE\u5EA6",
    contrast: "\u5C0D\u6BD4\u5EA6",
    reset: "\u91CD\u7F6E",
    shortcutKeyInstructions: "\u5FEB\u6377\u9375\u8AAA\u660E",
    copyVideoUrl: "\u8907\u88FD\u7DB2\u5740\u8996\u983B",
    version: "\u7248\u672C",
    loading: "\u6B63\u5728\u7DE9\u885D...",
    replay: "\u91CD\u65B0\u64AD\u653E",
    playError: "\u8ACB\u6C42\u932F\u8AA4",
    playStuck: "\u64AD\u653E\u5361\u9813",
    progressError: "\u9032\u5EA6\u689D\u7121\u6CD5\u62D6\u52D5",
    videoBlack: "\u8996\u983B\u9ED1\u5C4F\u4F46\u6709\u8072\u97F3",
    soundPictueAsync: "\u97F3\u756B\u4E0D\u540C\u6B65",
    feedbackTips: "\u56DE\u994B\u6210\u529F\uFF01",
    playerFeedBack: "\u64AD\u653E\u5668\u554F\u984C\u56DE\u994B",
    other: "\u5176\u4ED6",
    feedbackPlaceHolder: "\u554F\u984C\u63CF\u8FF0\uFF0C\u9650100\u5B57\u5167",
    confirm: "\u78BA\u8A8D"
  }
};
function wi(L) {
  $e(L, "svelte-1sesy3u", "div.svelte-1sesy3u.svelte-1sesy3u,span.svelte-1sesy3u.svelte-1sesy3u,h5.svelte-1sesy3u.svelte-1sesy3u,i.svelte-1sesy3u.svelte-1sesy3u,ul.svelte-1sesy3u.svelte-1sesy3u,li.svelte-1sesy3u.svelte-1sesy3u{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}ul.svelte-1sesy3u.svelte-1sesy3u{list-style:none}@keyframes svelte-1sesy3u-rotating{100%{-webkit-transform:rotate(360deg)}}.d-player-contextmenu.svelte-1sesy3u.svelte-1sesy3u,.d-player-dialog.svelte-1sesy3u.svelte-1sesy3u{position:absolute;left:0;top:0;bottom:50px;width:100%;z-index:5}.d-player-contextmenu.svelte-1sesy3u .d-player-copyText.svelte-1sesy3u{opacity:0}.d-player-contextmenu.svelte-1sesy3u .d-player-contextmenu-body.svelte-1sesy3u{position:absolute;border-radius:5px;font-size:12px;background:rgba(0, 0, 0, 0.8);color:#efefef;padding:0;text-align:left;min-width:130px;box-sizing:border-box;padding:5px 0}.d-player-contextmenu.svelte-1sesy3u .d-player-contextmenu-body li.svelte-1sesy3u{padding:8px 20px;margin:0;cursor:pointer;transition:0.2s}.d-player-contextmenu.svelte-1sesy3u .d-player-contextmenu-body li.svelte-1sesy3u:hover{background-color:rgba(255, 255, 255, 0.1)}.d-player-dialog.svelte-1sesy3u.svelte-1sesy3u{display:flex;justify-content:center;align-items:center}.d-player-dialog.svelte-1sesy3u .d-player-dialog-body.svelte-1sesy3u{background-color:rgba(33, 33, 33, 0.9);border-radius:5px;color:#fff;min-width:200px;padding:0 0 10px}.d-player-dialog.svelte-1sesy3u .d-player-dialog-body .d-player-dialog-title.svelte-1sesy3u{text-align:center;position:relative;font-size:14px;font-weight:normal;margin:0;padding:12px 0px;border-bottom:1px solid rgba(255, 255, 255, 0.15);margin-bottom:10px}.d-player-dialog.svelte-1sesy3u .d-player-dialog-body .d-player-dialog-title .icon-close.svelte-1sesy3u{position:absolute;right:0px;top:0px;width:40px;height:40px;line-height:40px;text-align:center;cursor:pointer}.d-player-dialog.svelte-1sesy3u .d-player-dialog-body .d-player-hotkey-panel.svelte-1sesy3u{font-size:12px;color:#eee;padding-right:40px}.d-player-dialog.svelte-1sesy3u .d-player-dialog-body .d-player-hotkey-panel .d-player-hotkey-panel-item.svelte-1sesy3u{line-height:26px}.d-player-dialog.svelte-1sesy3u .d-player-dialog-body .d-player-hotkey-panel .d-player-hotkey-panel-item span.svelte-1sesy3u{text-align:center;display:inline-block;width:120px}.d-player-dialog.svelte-1sesy3u .d-player-dialog-body .d-player-hotkey-panel .d-player-hotkey-panel-item span.svelte-1sesy3u:nth-child(2){color:#999;width:160px}.d-player-dialog.svelte-1sesy3u .d-player-dialog-body .d-player-filter-panel.svelte-1sesy3u{width:320px;padding:0 20px;text-align:center}.d-player-dialog.svelte-1sesy3u .d-player-dialog-body .d-player-filter-panel .d-player-filter-reset.svelte-1sesy3u{text-align:center;cursor:pointer;margin-top:10px;padding:3px 20px;display:inline-block;border-radius:2px;font-size:12px;background:rgba(133, 133, 133, 0.5)}.d-player-dialog.svelte-1sesy3u .d-player-dialog-body .d-player-filter-panel .d-player-filter-reset.svelte-1sesy3u:hover{background:rgba(255, 255, 255, 0.3)}.d-player-dialog.svelte-1sesy3u .d-player-dialog-body .d-player-filter-panel .d-player-filter-panel-item.svelte-1sesy3u{height:32px;display:flex;align-items:center}.d-player-dialog.svelte-1sesy3u .d-player-dialog-body .d-player-filter-panel .d-player-filter-panel-item span.svelte-1sesy3u{font-size:12px;display:block;width:80px;text-align:center}");
}
function sr(L, A, I) {
  const N = L.slice();
  return N[17] = A[I], N;
}
function or(L, A, I) {
  const N = L.slice();
  return N[17] = A[I], N;
}
function lr(L) {
  let A, I, N, B = L[1].dialogTitle + "", G, U, M, g, P, y, O, C, F, R = L[1].dialogType == "hotkey" && ur(L), T = L[1].dialogType == "filter" && dr(L);
  return {
    c() {
      A = J("div"), I = J("div"), N = J("h5"), G = he(B), U = ae(), M = J("i"), M.textContent = "X", g = ae(), R && R.c(), P = ae(), T && T.c(), V(M, "class", "icon icon-close svelte-1sesy3u"), V(N, "class", "d-player-dialog-title svelte-1sesy3u"), V(I, "class", "d-player-dialog-body svelte-1sesy3u"), V(A, "class", "d-player-dialog svelte-1sesy3u");
    },
    m(D, p) {
      fe(D, A, p), X(A, I), X(I, N), X(N, G), X(N, U), X(N, M), X(I, g), R && R.m(I, null), X(I, P), T && T.m(I, null), O = !0, C || (F = ce(M, "click", L[9]), C = !0);
    },
    p(D, p) {
      (!O || p & 2) && B !== (B = D[1].dialogTitle + "") && _e(G, B), D[1].dialogType == "hotkey" ? R ? R.p(D, p) : (R = ur(D), R.c(), R.m(I, P)) : R && (R.d(1), R = null), D[1].dialogType == "filter" ? T ? (T.p(D, p), p & 2 && $(T, 1)) : (T = dr(D), T.c(), $(T, 1), T.m(I, null)) : T && (Ne(), se(T, 1, 1, () => {
        T = null;
      }), Ke());
    },
    i(D) {
      O || ($(T), st(() => {
        y || (y = Ze(A, Je, {}, !0)), y.run(1);
      }), O = !0);
    },
    o(D) {
      se(T), y || (y = Ze(A, Je, {}, !1)), y.run(0), O = !1;
    },
    d(D) {
      D && ue(A), R && R.d(), T && T.d(), D && y && y.end(), C = !1, F();
    }
  };
}
function ur(L) {
  let A, I = L[5], N = [];
  for (let B = 0; B < I.length; B += 1)
    N[B] = fr(or(L, I, B));
  return {
    c() {
      A = J("ul");
      for (let B = 0; B < N.length; B += 1)
        N[B].c();
      V(A, "class", "d-player-hotkey-panel svelte-1sesy3u");
    },
    m(B, G) {
      fe(B, A, G);
      for (let U = 0; U < N.length; U += 1)
        N[U].m(A, null);
    },
    p(B, G) {
      if (G & 32) {
        I = B[5];
        let U;
        for (U = 0; U < I.length; U += 1) {
          const M = or(B, I, U);
          N[U] ? N[U].p(M, G) : (N[U] = fr(M), N[U].c(), N[U].m(A, null));
        }
        for (; U < N.length; U += 1)
          N[U].d(1);
        N.length = I.length;
      }
    },
    d(B) {
      B && ue(A), It(N, B);
    }
  };
}
function fr(L) {
  let A, I, N = L[17].key + "", B, G, U, M = L[17].label + "", g, P;
  return {
    c() {
      A = J("li"), I = J("span"), B = he(N), G = ae(), U = J("span"), g = he(M), P = ae(), V(I, "class", "svelte-1sesy3u"), V(U, "class", "svelte-1sesy3u"), V(A, "class", "d-player-hotkey-panel-item svelte-1sesy3u");
    },
    m(y, O) {
      fe(y, A, O), X(A, I), X(I, B), X(A, G), X(A, U), X(U, g), X(A, P);
    },
    p: De,
    d(y) {
      y && ue(A);
    }
  };
}
function dr(L) {
  let A, I, N, B = L[0].saturability + "", G, U, M, g, P, y = Math.round(L[2].saturate * 255) + "", O, C, F, R, T = L[0].brightness + "", D, p, S, b, _, E = Math.round(L[2].brightness * 255) + "", l, n, t, d, h = L[0].contrast + "", i, r, e, f, u, m = Math.round(L[2].contrast * 255) + "", s, v, c, o = L[0].reset + "", a, x, k, K;
  return M = new Lt({
    props: {
      className: "d-player-filter-panel-item filter-panel-slider",
      size: "5px",
      modelValue: L[2].saturate
    }
  }), M.$on("update", L[10]), S = new Lt({
    props: {
      className: "d-player-filter-panel-item filter-panel-slider",
      size: "5px",
      modelValue: L[2].brightness
    }
  }), S.$on("update", L[11]), e = new Lt({
    props: {
      className: "d-player-filter-panel-item filter-panel-slider",
      size: "5px",
      modelValue: L[2].contrast
    }
  }), e.$on("update", L[12]), {
    c() {
      A = J("ul"), I = J("li"), N = J("span"), G = he(B), U = ae(), Se(M.$$.fragment), g = ae(), P = J("span"), O = he(y), C = ae(), F = J("li"), R = J("span"), D = he(T), p = ae(), Se(S.$$.fragment), b = ae(), _ = J("span"), l = he(E), n = ae(), t = J("li"), d = J("span"), i = he(h), r = ae(), Se(e.$$.fragment), f = ae(), u = J("span"), s = he(m), v = ae(), c = J("span"), a = he(o), V(N, "class", "svelte-1sesy3u"), V(P, "class", "svelte-1sesy3u"), V(I, "class", "d-player-filter-panel-item svelte-1sesy3u"), V(R, "class", "svelte-1sesy3u"), V(_, "class", "svelte-1sesy3u"), V(F, "class", "d-player-filter-panel-item svelte-1sesy3u"), V(d, "class", "svelte-1sesy3u"), V(u, "class", "svelte-1sesy3u"), V(t, "class", "d-player-filter-panel-item svelte-1sesy3u"), V(c, "title", "\u91CD\u7F6E"), V(c, "aria-label", "\u91CD\u7F6E"), V(c, "class", "d-player-filter-reset svelte-1sesy3u"), V(A, "class", "d-player-filter-panel svelte-1sesy3u");
    },
    m(w, W) {
      fe(w, A, W), X(A, I), X(I, N), X(N, G), X(I, U), Te(M, I, null), X(I, g), X(I, P), X(P, O), X(A, C), X(A, F), X(F, R), X(R, D), X(F, p), Te(S, F, null), X(F, b), X(F, _), X(_, l), X(A, n), X(A, t), X(t, d), X(d, i), X(t, r), Te(e, t, null), X(t, f), X(t, u), X(u, s), X(A, v), X(A, c), X(c, a), x = !0, k || (K = ce(c, "click", L[6]), k = !0);
    },
    p(w, W) {
      (!x || W & 1) && B !== (B = w[0].saturability + "") && _e(G, B);
      const z = {};
      W & 4 && (z.modelValue = w[2].saturate), M.$set(z), (!x || W & 4) && y !== (y = Math.round(w[2].saturate * 255) + "") && _e(O, y), (!x || W & 1) && T !== (T = w[0].brightness + "") && _e(D, T);
      const H = {};
      W & 4 && (H.modelValue = w[2].brightness), S.$set(H), (!x || W & 4) && E !== (E = Math.round(w[2].brightness * 255) + "") && _e(l, E), (!x || W & 1) && h !== (h = w[0].contrast + "") && _e(i, h);
      const j = {};
      W & 4 && (j.modelValue = w[2].contrast), e.$set(j), (!x || W & 4) && m !== (m = Math.round(w[2].contrast * 255) + "") && _e(s, m), (!x || W & 1) && o !== (o = w[0].reset + "") && _e(a, o);
    },
    i(w) {
      x || ($(M.$$.fragment, w), $(S.$$.fragment, w), $(e.$$.fragment, w), x = !0);
    },
    o(w) {
      se(M.$$.fragment, w), se(S.$$.fragment, w), se(e.$$.fragment, w), x = !1;
    },
    d(w) {
      w && ue(A), xe(M), xe(S), xe(e), k = !1, K();
    }
  };
}
function cr(L) {
  let A, I, N, B, G = L[4], U = [];
  for (let M = 0; M < G.length; M += 1)
    U[M] = hr(sr(L, G, M));
  return {
    c() {
      A = J("div"), I = J("ul");
      for (let M = 0; M < U.length; M += 1)
        U[M].c();
      N = ae(), B = J("input"), V(I, "class", "d-player-contextmenu-body svelte-1sesy3u"), V(I, "style", L[3]), V(B, "class", "d-player-copyText svelte-1sesy3u"), V(A, "class", "d-player-contextmenu svelte-1sesy3u");
    },
    m(M, g) {
      fe(M, A, g), X(A, I);
      for (let P = 0; P < U.length; P += 1)
        U[P].m(I, null);
      X(A, N), X(A, B);
    },
    p(M, g) {
      if (g & 16) {
        G = M[4];
        let P;
        for (P = 0; P < G.length; P += 1) {
          const y = sr(M, G, P);
          U[P] ? U[P].p(y, g) : (U[P] = hr(y), U[P].c(), U[P].m(I, null));
        }
        for (; P < U.length; P += 1)
          U[P].d(1);
        U.length = G.length;
      }
      g & 8 && V(I, "style", M[3]);
    },
    d(M) {
      M && ue(A), It(U, M);
    }
  };
}
function hr(L) {
  let A, I = L[17].label + "", N, B;
  return {
    c() {
      A = J("li"), N = he(I), V(A, "dplayerkeycode", B = L[17].key), V(A, "class", "svelte-1sesy3u");
    },
    m(G, U) {
      fe(G, A, U), X(A, N);
    },
    p(G, U) {
      U & 16 && I !== (I = G[17].label + "") && _e(N, I), U & 16 && B !== (B = G[17].key) && V(A, "dplayerkeycode", B);
    },
    d(G) {
      G && ue(A);
    }
  };
}
function Bi(L) {
  let A, I, N, B = L[1].dialogType && lr(L), G = L[1].show && cr(L);
  return {
    c() {
      A = J("div"), B && B.c(), I = ae(), G && G.c(), V(A, "class", "svelte-1sesy3u");
    },
    m(U, M) {
      fe(U, A, M), B && B.m(A, null), X(A, I), G && G.m(A, null), N = !0;
    },
    p(U, [M]) {
      U[1].dialogType ? B ? (B.p(U, M), M & 2 && $(B, 1)) : (B = lr(U), B.c(), $(B, 1), B.m(A, I)) : B && (Ne(), se(B, 1, 1, () => {
        B = null;
      }), Ke()), U[1].show ? G ? G.p(U, M) : (G = cr(U), G.c(), G.m(A, null)) : G && (G.d(1), G = null);
    },
    i(U) {
      N || ($(B), N = !0);
    },
    o(U) {
      se(B), N = !1;
    },
    d(U) {
      U && ue(A), B && B.d(), G && G.d();
    }
  };
}
function Ui(L, A, I) {
  let N, { version: B = "1.0.0" } = A, { nowLanguage: G } = A, { contextMenu: U = ["filter", "hotkey", "copy", "version"] } = A;
  const M = {
    version: B,
    show: !1,
    dialogType: "",
    dialogTitle: "",
    mouseX: 0,
    mouseY: 0
  }, g = [
    {
      label: G.colorAdjustment,
      key: "filter"
    },
    {
      label: G.shortcutKeyInstructions,
      key: "hotkey"
    },
    {
      label: G.copyVideoUrl,
      key: "copy"
    },
    {
      label: `${G.version}\uFF1A` + B,
      key: "version"
    }
  ], P = [
    { key: "Space", label: "\u64AD\u653E/\u6682\u505C" },
    { key: "\u2192", label: "\u5355\u6B21\u5FEB\u8FDB10s\uFF0C\u957F\u63095\u500D\u901F\u64AD\u653E" },
    { key: "\u2190", label: "\u5FEB\u900010s" },
    { key: "\u2191", label: "\u97F3\u91CF\u589E\u52A010%" },
    { key: "\u2193", label: "\u97F3\u91CF\u589E\u52A0\u964D\u4F4E10%" }
  ], y = {
    saturate: 0.392,
    brightness: 0.392,
    contrast: 0.392
  };
  let O;
  const C = () => {
    I(2, y.saturate = 0.392, y), I(2, y.brightness = 0.392, y), I(2, y.contrast = 0.392, y);
  }, F = (_) => {
    _.key == "Escape" && T(0);
  }, R = (_) => {
    _.preventDefault(), mt(window, "keydown", F), mt(window, "click", T);
    const E = document.querySelector("#refPlayerWrap");
    mt(E, "click", T);
    let l = E.clientWidth;
    E.clientHeight, I(1, M.mouseX = _.clientX - E.getBoundingClientRect().left, M), l - M.mouseX < 130 && I(1, M.mouseX = M.mouseX + (l - M.mouseX - 130), M), I(1, M.mouseY = _.clientY - E.getBoundingClientRect().top, M), I(1, M.show = !0, M);
  }, T = (_) => {
    let E = _.path[0].tagName == "LI", l = _.path[0].attributes.dplayerKeyCode && _.path[0].attributes.dplayerKeyCode.value, n = N.map((d) => d.key);
    if (E && n.includes(l))
      if (I(1, M.dialogTitle = _.path[0].innerText, M), I(1, M.dialogType = l, M), l == "copy") {
        let d = document.querySelector(".d-player-copyText");
        d.value = window.location.href, d.select(), document.execCommand("copy"), I(1, M.dialogType = "", M);
      } else
        l == "version" && I(1, M.dialogType = "", M);
    I(1, M.show = !1, M), Ye(window, "keydown", F), Ye(window, "click", T);
    const t = document.querySelector("#refPlayerWrap");
    Ye(t, "click", T);
  };
  Qr(() => {
    const _ = document.querySelector("#refPlayerWrap");
    Ye(window, "keydown", F), Ye(window, "click", T), Ye(_, "contextmenu", R), mt(_, "contextmenu", R);
  }), Ei(() => {
    const _ = document.querySelector("#refPlayerWrap");
    Ye(window, "keydown", F), Ye(window, "click", T), Ye(_, "contextmenu", R);
  });
  const D = () => {
    I(1, M.dialogType = !1, M);
  }, p = (_) => {
    I(2, y.saturate = _.detail, y);
  }, S = (_) => {
    I(2, y.brightness = _.detail, y);
  }, b = (_) => {
    I(2, y.contrast = _.detail, y);
  };
  return L.$$set = (_) => {
    "version" in _ && I(7, B = _.version), "nowLanguage" in _ && I(0, G = _.nowLanguage), "contextMenu" in _ && I(8, U = _.contextMenu);
  }, L.$$.update = () => {
    if (L.$$.dirty & 256 && I(4, N = g.filter((_) => U.includes(_.key))), L.$$.dirty & 2 && I(3, O = `left: ${M.mouseX}px;top:${M.mouseY}px`), L.$$.dirty & 4) {
      const _ = document.querySelector("#dPlayerVideo");
      if (_) {
        const E = (y.saturate * 2.55).toFixed(2), l = (y.brightness * 2.55).toFixed(2), n = (y.contrast * 2.55).toFixed(2);
        _.style.filter = `saturate(${E}) brightness(${l}) contrast(${n})`, _.style["-webkit-filter"] = `saturate(${E}) brightness(${l}) contrast(${n})`;
      }
    }
  }, [
    G,
    M,
    y,
    O,
    N,
    P,
    C,
    B,
    U,
    D,
    p,
    S,
    b
  ];
}
class Ni extends tt {
  constructor(A) {
    super(), et(
      this,
      A,
      Ui,
      Bi,
      qe,
      {
        version: 7,
        nowLanguage: 0,
        contextMenu: 8
      },
      wi
    );
  }
}
function Ki(L) {
  $e(L, "svelte-1qnrxjl", "@import '../style/iconfont.css';div.svelte-1qnrxjl.svelte-1qnrxjl,span.svelte-1qnrxjl.svelte-1qnrxjl,p.svelte-1qnrxjl.svelte-1qnrxjl,img.svelte-1qnrxjl.svelte-1qnrxjl,i.svelte-1qnrxjl.svelte-1qnrxjl{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}.iconfont.svelte-1qnrxjl.svelte-1qnrxjl{display:inline-block}.d-flex-x.svelte-1qnrxjl.svelte-1qnrxjl{display:flex}.d-flex-x.svelte-1qnrxjl.svelte-1qnrxjl{align-items:center}.mr5.svelte-1qnrxjl.svelte-1qnrxjl{margin-right:5px}.d-pointer.svelte-1qnrxjl.svelte-1qnrxjl{cursor:pointer}.rotating.svelte-1qnrxjl.svelte-1qnrxjl{animation:svelte-1qnrxjl-rotating 2s linear infinite}@keyframes svelte-1qnrxjl-rotating{100%{-webkit-transform:rotate(360deg)}}.f50.svelte-1qnrxjl.svelte-1qnrxjl{font-size:50px}.f24.svelte-1qnrxjl.svelte-1qnrxjl{font-size:24px}.d-loading.svelte-1qnrxjl.svelte-1qnrxjl{position:absolute;left:0;right:0;bottom:0px;top:0;display:flex;align-items:center;justify-content:center;background:rgba(0, 0, 0, 0.3);z-index:2;color:#efefef;text-align:center;font-size:13px}.loading-img.svelte-1qnrxjl.svelte-1qnrxjl{width:50px}.d-logo-loading.svelte-1qnrxjl.svelte-1qnrxjl{position:relative;width:100px;height:23px;overflow:hidden}.d-logo-loading.svelte-1qnrxjl .d-logo.svelte-1qnrxjl{width:100%;height:100%;background:url(https://s.thsi.cn/cd/ths-frontend-hxmui-container/front/thsc-hxmui/1.11.0/img/logo_light.ed78645a.png) 50%;background-size:cover}.d-logo-loading.svelte-1qnrxjl .d-light.svelte-1qnrxjl{position:absolute;left:0;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:32px;height:23px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGIAAABaCAMAAAB0UnP8AAAAhFBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8g2+bRAAAALHRSTlMABAgVDx4uDCU9ODMZKUJcRiFWYGZKt06ojpeJUq95bmqzo6CTfYRydaybgZ4JNUQAAAd9SURBVGjejNWNVtpAEIbhpoECGii/ojUCapEU7v/++s27ux23kMTxHH/O0Tx+Mzubb7eqsPquGo0Gg0FZllVVDYeLxVg1/VT6cbEYqqqqVOl3RyP7M/7+W2sV9gEhYARQBoDH/6Du9aFCWaBgOIFRtBqhsgwhAcD9p0KxaG4I8RhFWwqAIglEIAGPv7OaUPomMo440dUrD5FlCAHS4x2JxiIRg55peApCIDAGixD+/dlsNg+l76QIoV0YnqNzGP+HUJdcANiEckRBPIcTrRk8RIlABrVICXj8drutrfTVFBAZlqOqaFXPNAoqaxMZSABQ10vKEKLIULOmjDyLgdA3CQQyAITn/0wVFBnkwPBWdaZwgjZNp2QgQgBWoWQsZcQctMqJzhTXIciw2ZBgtVqnQhGiZmVGd6e8TwhVGISOknUpAgfVfr/XZynB2MzsXEEEA6JNcMJPUxBqBHv8iTJFSWQwDyc6O5UJEC5oCAL2+6bZhWqaE0hmiKi8U719KodD3RsQZFCTlEDC0UqIjJTDY1R9nYLwYVsIFw4C9PzLh9XlIqY5HQ6r1XL5L8aCgXenyE+sEZOJ2uSCgGdKyG5nORRju82JQSuRnyefRBIUQc9/okCOyag3ED/GGaFqSeFEnARtsgwXhN8qIWbYPAKh3fgKgaAaiAiT+EGIIGjOHwC/rEx5/mAca02DTokYc0+1EoUTPuxAqE3M4RkhGiJsHGEadAqi6iAYRTbs+3vbiZoQEizDr/P5XXU+C7EYx2a/XkMw70RgdBJcTyEEx8lCkAHhDYQcl6M6BTHvJ/Ijm/oUFpsQCAZQGEyDTtXajK+myM4Tk6gV4tQcLwgCHqlgcKhaCGbRsRUKARGHbSGeIBAwiGHE/hCISR9RXB9ZNrteatiEiMIfymKETt0g2ra7yAhWmxBGxEm8v5vw8vIiQsZtovxEFD2rzXlKfUohBFB/6FRG3OUperdiHIma8xT7pDbp6a+vbUR/CifoE0e2ZilsJ1KIVxXEW06k7ZbQmyKN4u4uHVkR9EmTQPgyUXRsBcRkPqdPzc6GbSEQMGzeELvG7loukOymbdmKIp+2H9mPZ44TxMPDA0RIYXuhC6SFKNoWr6riVtCndTxPCoGQEWy3EZzZzhTFrT5N0pG92LDfIAQ4wXaf1hAcqKsUvRfUtpN4zwh/d0v4SgqOrIg4iicRCBlh1yDvC3uxQkiAuH3PBiEjwpGFYBSEyImLESsRs0SUbYSfJ67ZeEHVSxHqk4hzIijbC12DTyJO/4g0CvrU/a5gt7nI2QobBXvnBKvH/cEbScRcxNVVfkO42gpu2RNbEUI48fjItEXYbjPtSAw8RRcxdYLFy0cBwShE7J0YQ9y+PopEIFTxDoxb0VyPgmmfbdp+fYjovz4gfPEi8bdSc1ttI4qh6ENbqKF1ZojBLZi0BOqG/P8HRmeNthVFntFknvy2kHS2rn5xVRghhcLTB/0HiCq8akUtRw/DT0u0UyhCeGpxXNs/QKyrAgRlG4Sr4kmhwAi+LDxrNxFeowoQqYMSwnIgofh1H/FfCIWi1TZ+CuE9UrYpeIQiCPZkibYhHqQKQ3wp0S5WpGgbwsu21QoQJRSoAoTq9tdAtKoAQQcVwst++q2i6pl8BoHwunIEgop3qgjlwFcQRPt8PoJoy1F0Bo4YqjiRAzMiiqoq3nlvUc0j3lEItF0QWXgHot1akUc89csgqHiOiFpBmj0tCYpod+UoI0LbSh9C0EPRlUt4F6miIgKwibgGgk9PlhYKxDRt+4kvDxZeLFRUQZAFIUh3JCg9WRC5M8hJcC8CgiPGuJob5rmqolphBCGOCcGLUk9Op8kkuWQPjcNpT7S2NFCGKog6WPCeeLKlHLVWZATiRnrPMR4xgXlN9VZToaBW7LPi8BFxG/I0R0YHJVUI0VhREai7TqqWn/BTWn7UJ9vHgsp9pYsS4zmM4MkK0aoCwj3E1taALFtG+p0IdEGO0trAGPYNAARN9IZQM5ubNCAN4gjCMoibwX7FCeYmjNC4rVqxJbwci5i48dRTXUMZwYxQsMNP9clWRF5+0B683FumuRF6T/2TLT2zth+YoZUgO8FYCa5tHbsdc906stgcDG02sYHFZvipZo/yZcSsnaCWpxYOg/BdiYMIUrZ6j2pFfVKB4NlaNB7/Eo5/BrHPAEG4xEIQRKiiWc++WwFr28+mXKtyA9gAGQQlj1RTy5eWgqGMSbvywYiF/x9swE0RCSHWrcjb+M9eLZoVM58QBEOeujHGWWE5vQDABOvPRlcgTRREdwab/W5xmMRIJyQDXC523Smnl3hPzd0Chm5503TmDhZnMAOYk4aXILCTCMKaKgridqY66JoXxzy/5mFDNaKzQoxv9qi4GMKoN8kBwAapLkSxaYWkERF3OwYkDqs6esoG3EQxam7Q9QLtJ+7V8/BigySRZLfjtCoGh3og+cgdhJlA7D9yw8BVYpizgORbvf4P8B0vJSPaU312lYXcPhgBsR9O4M8TEp1iLSvaRwUDyDyv/m8i2RCxLoCqjRwPvKW/f+j7KYAIDeIN31OsfyvZzREAAAAASUVORK5CYII=) 50%;background-size:cover;opacity:0.6;-webkit-animation:svelte-1qnrxjl-move 0.8s ease-in-out infinite;animation:svelte-1qnrxjl-move 0.8s ease-in-out infinite}@keyframes svelte-1qnrxjl-move{from{left:0}to{left:100%}}");
}
function vr(L) {
  let A, I, N = ["loadstart", "waiting"].includes(L[1]), B, G, U = N && gr(L), M = L[1] == "ended" && mr(L), g = (L[1] == "error" || L[1] == "stalled") && pr(L);
  return {
    c() {
      A = J("div"), I = J("div"), U && U.c(), B = ae(), M && M.c(), G = ae(), g && g.c(), V(I, "class", "svelte-1qnrxjl"), V(A, "class", "d-loading svelte-1qnrxjl"), V(A, "style", L[6]);
    },
    m(P, y) {
      fe(P, A, y), X(A, I), U && U.m(I, null), X(I, B), M && M.m(I, null), X(I, G), g && g.m(I, null);
    },
    p(P, y) {
      y & 2 && (N = ["loadstart", "waiting"].includes(P[1])), N ? U ? U.p(P, y) : (U = gr(P), U.c(), U.m(I, B)) : U && (U.d(1), U = null), P[1] == "ended" ? M ? M.p(P, y) : (M = mr(P), M.c(), M.m(I, G)) : M && (M.d(1), M = null), P[1] == "error" || P[1] == "stalled" ? g ? g.p(P, y) : (g = pr(P), g.c(), g.m(I, null)) : g && (g.d(1), g = null), y & 64 && V(A, "style", P[6]);
    },
    d(P) {
      P && ue(A), U && U.d(), M && M.d(), g && g.d();
    }
  };
}
function gr(L) {
  let A, I, N, B;
  function G(g, P) {
    return g[3] ? Hi : g[4] ? zi : g[5] === "ths" ? Gi : Wi;
  }
  let U = G(L), M = U(L);
  return {
    c() {
      A = J("span"), M.c(), I = ae(), N = J("p"), B = he(L[2]), V(N, "class", "svelte-1qnrxjl"), V(A, "class", "svelte-1qnrxjl");
    },
    m(g, P) {
      fe(g, A, P), M.m(A, null), X(A, I), X(A, N), X(N, B);
    },
    p(g, P) {
      U === (U = G(g)) && M ? M.p(g, P) : (M.d(1), M = U(g), M && (M.c(), M.m(A, I))), P & 4 && _e(B, g[2]);
    },
    d(g) {
      g && ue(A), M.d();
    }
  };
}
function Wi(L) {
  let A;
  return {
    c() {
      A = J("i"), V(A, "class", "rotating iconfont icon-loading f50 svelte-1qnrxjl");
    },
    m(I, N) {
      fe(I, A, N);
    },
    p: De,
    d(I) {
      I && ue(A);
    }
  };
}
function Gi(L) {
  let A;
  return {
    c() {
      A = J("div"), A.innerHTML = `<div class="d-logo svelte-1qnrxjl"></div> 
              <div class="d-light svelte-1qnrxjl"></div>`, V(A, "class", "d-logo-loading svelte-1qnrxjl");
    },
    m(I, N) {
      fe(I, A, N);
    },
    p: De,
    d(I) {
      I && ue(A);
    }
  };
}
function zi(L) {
  let A, I;
  return {
    c() {
      A = J("img"), Mt(A.src, I = L[4]) || V(A, "src", I), V(A, "alt", ""), V(A, "class", "rotating f50 loading-img svelte-1qnrxjl");
    },
    m(N, B) {
      fe(N, A, B);
    },
    p(N, B) {
      B & 16 && !Mt(A.src, I = N[4]) && V(A, "src", I);
    },
    d(N) {
      N && ue(A);
    }
  };
}
function Hi(L) {
  let A, I;
  return {
    c() {
      A = new hi(!1), I = Tt(), A.a = I;
    },
    m(N, B) {
      A.m(L[3], N, B), fe(N, I, B);
    },
    p(N, B) {
      B & 8 && A.p(N[3]);
    },
    d(N) {
      N && ue(I), N && A.d();
    }
  };
}
function mr(L) {
  let A, I, N, B = L[0].replay + "", G, U, M;
  return {
    c() {
      A = J("span"), I = J("p"), N = J("i"), G = he(B), V(N, "class", "iconfont icon-replay f24 mr5 svelte-1qnrxjl"), V(I, "class", "d-flex-x d-pointer svelte-1qnrxjl"), V(A, "class", "svelte-1qnrxjl");
    },
    m(g, P) {
      fe(g, A, P), X(A, I), X(I, N), X(I, G), U || (M = ce(I, "click", L[8]), U = !0);
    },
    p(g, P) {
      P & 1 && B !== (B = g[0].replay + "") && _e(G, B);
    },
    d(g) {
      g && ue(A), U = !1, M();
    }
  };
}
function pr(L) {
  let A, I, N, B = L[0].playError + "", G, U, M;
  return {
    c() {
      A = J("span"), I = J("p"), N = J("i"), G = he(B), V(N, "class", "iconfont icon-replay f24 mr5 svelte-1qnrxjl"), V(I, "class", "d-flex-x d-pointer svelte-1qnrxjl"), V(A, "class", "svelte-1qnrxjl");
    },
    m(g, P) {
      fe(g, A, P), X(A, I), X(I, N), X(I, G), U || (M = ce(I, "click", L[8]), U = !0);
    },
    p(g, P) {
      P & 1 && B !== (B = g[0].playError + "") && _e(G, B);
    },
    d(g) {
      g && ue(A), U = !1, M();
    }
  };
}
function ji(L) {
  let A = L[7].includes(L[1]), I, N = A && vr(L);
  return {
    c() {
      N && N.c(), I = Tt();
    },
    m(B, G) {
      N && N.m(B, G), fe(B, I, G);
    },
    p(B, [G]) {
      G & 2 && (A = B[7].includes(B[1])), A ? N ? N.p(B, G) : (N = vr(B), N.c(), N.m(I.parentNode, I)) : N && (N.d(1), N = null);
    },
    i: De,
    o: De,
    d(B) {
      N && N.d(B), B && ue(I);
    }
  };
}
function Vi(L, A, I) {
  const N = pt(), B = ["loadstart", "loadStateType", "waiting", "ended", "error", "stalled"];
  let { nowLanguage: G } = A, { loadType: U = G.loading } = A, { loadingText: M = "" } = A, { loadingDom: g = "" } = A, { loadingImg: P = "" } = A, { loadingType: y = "" } = A, O = "";
  const C = () => {
    N("playHandle");
  };
  return L.$$set = (F) => {
    "nowLanguage" in F && I(0, G = F.nowLanguage), "loadType" in F && I(1, U = F.loadType), "loadingText" in F && I(2, M = F.loadingText), "loadingDom" in F && I(3, g = F.loadingDom), "loadingImg" in F && I(4, P = F.loadingImg), "loadingType" in F && I(5, y = F.loadingType);
  }, L.$$.update = () => {
    if (L.$$.dirty & 2) {
      let F = "background: rgba(0, 0, 0, .1);z-index:1";
      U === "loadstart" && (F = "background: rgba(0, 0, 0, 1);;z-index:3"), I(6, O = F);
    }
  }, [
    G,
    U,
    M,
    g,
    P,
    y,
    O,
    B,
    C
  ];
}
class Yi extends tt {
  constructor(A) {
    super(), et(
      this,
      A,
      Vi,
      ji,
      qe,
      {
        nowLanguage: 0,
        loadType: 1,
        loadingText: 2,
        loadingDom: 3,
        loadingImg: 4,
        loadingType: 5
      },
      Ki
    );
  }
}
function Xi(L) {
  $e(L, "svelte-q8odyd", ".d-player-top.svelte-q8odyd{position:absolute;font-size:16px;left:0px;top:0;right:0px;color:#fff;display:flex;padding:0 20px;height:60px;background-image:linear-gradient(rgba(0, 0, 0, 0.6), transparent);justify-content:space-between;z-index:1}");
}
function Qi(L) {
  let A, I, N = (L[0] || "") + "", B;
  return {
    c() {
      A = J("div"), I = J("p"), B = he(N), V(I, "class", "top-title"), V(A, "class", "d-player-top svelte-q8odyd");
    },
    m(G, U) {
      fe(G, A, U), X(A, I), X(I, B);
    },
    p(G, [U]) {
      U & 1 && N !== (N = (G[0] || "") + "") && _e(B, N);
    },
    i: De,
    o: De,
    d(G) {
      G && ue(A);
    }
  };
}
function Zi(L, A, I) {
  let { title: N = "" } = A;
  return L.$$set = (B) => {
    "title" in B && I(0, N = B.title);
  }, [N];
}
class Ji extends tt {
  constructor(A) {
    super(), et(this, A, Zi, Qi, qe, { title: 0 }, Xi);
  }
}
function qi(L) {
  $e(L, "svelte-o0d56g", ".d-flex-center.svelte-o0d56g{display:flex}.d-flex-center.svelte-o0d56g{justify-content:center;align-items:center}.d-status.svelte-o0d56g{text-align:center;font-size:14px;vertical-align:middle;background:rgba(0, 0, 0, 0.8);padding:0 8px;height:30px;border-radius:5px;display:flex;align-items:center;color:rgba(255, 255, 255, 0.95)}");
}
function Er(L) {
  let A, I, N, B = L[0].handleType == "volume" && yr(L), G = (L[0].handleType === "playbackRate" || L[0].isMultiplesPlay) && _r();
  return {
    c() {
      A = J("div"), B && B.c(), I = ae(), G && G.c(), V(A, "class", "d-status svelte-o0d56g");
    },
    m(U, M) {
      fe(U, A, M), B && B.m(A, null), X(A, I), G && G.m(A, null), N = !0;
    },
    p(U, M) {
      U[0].handleType == "volume" ? B ? (B.p(U, M), M & 1 && $(B, 1)) : (B = yr(U), B.c(), $(B, 1), B.m(A, I)) : B && (Ne(), se(B, 1, 1, () => {
        B = null;
      }), Ke()), U[0].handleType === "playbackRate" || U[0].isMultiplesPlay ? G || (G = _r(), G.c(), G.m(A, null)) : G && (G.d(1), G = null);
    },
    i(U) {
      N || ($(B), N = !0);
    },
    o(U) {
      se(B), N = !1;
    },
    d(U) {
      U && ue(A), B && B.d(), G && G.d();
    }
  };
}
function yr(L) {
  let A, I, N, B = ~~(L[0].volume * 100) + "", G, U, M;
  return I = new Et({
    props: {
      size: "18",
      className: "d-status-icon",
      icon: `icon-volume-${L[0].volume == 0 ? "mute" : L[0].volume > 0.5 ? "up" : "down"}`
    }
  }), {
    c() {
      A = J("li"), Se(I.$$.fragment), N = ae(), G = he(B), U = he("%"), V(A, "class", "d-flex-center svelte-o0d56g");
    },
    m(g, P) {
      fe(g, A, P), Te(I, A, null), X(A, N), X(A, G), X(A, U), M = !0;
    },
    p(g, P) {
      const y = {};
      P & 1 && (y.icon = `icon-volume-${g[0].volume == 0 ? "mute" : g[0].volume > 0.5 ? "up" : "down"}`), I.$set(y), (!M || P & 1) && B !== (B = ~~(g[0].volume * 100) + "") && _e(G, B);
    },
    i(g) {
      M || ($(I.$$.fragment, g), M = !0);
    },
    o(g) {
      se(I.$$.fragment, g), M = !1;
    },
    d(g) {
      g && ue(A), xe(I);
    }
  };
}
function _r(L) {
  let A;
  return {
    c() {
      A = J("li"), A.innerHTML = `<d-icon size="12" icon="icon-play"></d-icon> 
        <d-icon size="12" icon="icon-play" style="margin-right:5px"></d-icon>5X\u901F\u64AD\u653E\u4E2D`, V(A, "class", "d-flex-center svelte-o0d56g");
    },
    m(I, N) {
      fe(I, A, N);
    },
    d(I) {
      I && ue(A);
    }
  };
}
function $i(L) {
  let A, I, N = (L[0].handleType || L[0].isMultiplesPlay) && Er(L);
  return {
    c() {
      N && N.c(), A = Tt();
    },
    m(B, G) {
      N && N.m(B, G), fe(B, A, G), I = !0;
    },
    p(B, [G]) {
      B[0].handleType || B[0].isMultiplesPlay ? N ? (N.p(B, G), G & 1 && $(N, 1)) : (N = Er(B), N.c(), $(N, 1), N.m(A.parentNode, A)) : N && (Ne(), se(N, 1, 1, () => {
        N = null;
      }), Ke());
    },
    i(B) {
      I || ($(N), I = !0);
    },
    o(B) {
      se(N), I = !1;
    },
    d(B) {
      N && N.d(B), B && ue(A);
    }
  };
}
function en(L, A, I) {
  let { state: N } = A;
  return L.$$set = (B) => {
    "state" in B && I(0, N = B.state);
  }, [N];
}
class tn extends tt {
  constructor(A) {
    super(), et(this, A, en, $i, qe, { state: 0 }, qi);
  }
}
function rn(L) {
  $e(L, "svelte-1rv9n3y", ".d-radio.svelte-1rv9n3y{position:relative;display:inline-block;padding-left:20px;box-sizing:border-box;height:18px;line-height:18px;font-size:14px;margin-left:12px;margin-top:10px;cursor:pointer;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.d-radio.svelte-1rv9n3y::before{content:'';position:absolute;display:inline-block;top:2px;left:0;width:12px;height:12px;border:1px solid #ccc;border-radius:50%}.d-radio.d-radio-checked.svelte-1rv9n3y::before{content:'';border-color:#409eff;position:absolute;display:inline-block;top:2px;left:0;width:12px;height:12px;border:1px solid #409eff;border-radius:50%}.d-radio.d-radio-checked.svelte-1rv9n3y::after{content:'';position:absolute;top:5px;left:3px;display:inline-block;width:8px;height:8px;background-color:#00a1d6;border-radius:50%}");
}
function nn(L) {
  let A, I, N, B, G;
  return {
    c() {
      A = J("div"), I = he(L[0]), V(A, "title", L[0]), V(A, "class", "d-radio svelte-1rv9n3y"), V(A, "style", N = `width:${L[1]}`), $t(A, "d-radio-checked", L[2]);
    },
    m(U, M) {
      fe(U, A, M), X(A, I), B || (G = ce(A, "click", Bt(L[3])), B = !0);
    },
    p(U, [M]) {
      M & 1 && _e(I, U[0]), M & 1 && V(A, "title", U[0]), M & 2 && N !== (N = `width:${U[1]}`) && V(A, "style", N), M & 4 && $t(A, "d-radio-checked", U[2]);
    },
    i: De,
    o: De,
    d(U) {
      U && ue(A), B = !1, G();
    }
  };
}
function an(L, A, I) {
  const N = pt();
  let { radioText: B = "" } = A, { width: G = "100%" } = A, U = !1;
  const M = () => {
    I(2, U = !U), N("checkRadio", { radioText: B, isChecked: U });
  };
  return L.$$set = (g) => {
    "radioText" in g && I(0, B = g.radioText), "width" in g && I(1, G = g.width);
  }, [B, G, U, M];
}
class sn extends tt {
  constructor(A) {
    super(), et(this, A, an, nn, qe, { radioText: 0, width: 1 }, rn);
  }
}
function on(L) {
  $e(L, "svelte-bbg92z", ".d-toast.svelte-bbg92z{position:fixed;top:50%;left:50%;transform:translate(-50%, -50%);background-color:rgba(40, 40, 40, 0.96);padding:0 18px;border-radius:10px}.d-toast-content.svelte-bbg92z{font-size:16px;line-height:1;word-break:break-all;color:#fefefe}");
}
function Tr(L) {
  let A, I, N, B, G;
  return {
    c() {
      A = J("div"), I = J("p"), V(I, "class", "d-toast-content svelte-bbg92z"), V(A, "class", "d-toast svelte-bbg92z"), V(A, "style", N = `z-index: ${L[1]}`);
    },
    m(U, M) {
      fe(U, A, M), X(A, I), I.innerHTML = L[0], G = !0;
    },
    p(U, M) {
      (!G || M & 1) && (I.innerHTML = U[0]), (!G || M & 2 && N !== (N = `z-index: ${U[1]}`)) && V(A, "style", N);
    },
    i(U) {
      G || (st(() => {
        B || (B = Ze(A, Je, {}, !0)), B.run(1);
      }), G = !0);
    },
    o(U) {
      B || (B = Ze(A, Je, {}, !1)), B.run(0), G = !1;
    },
    d(U) {
      U && ue(A), U && B && B.end();
    }
  };
}
function ln(L) {
  let A, I, N = L[2] && Tr(L);
  return {
    c() {
      N && N.c(), A = Tt();
    },
    m(B, G) {
      N && N.m(B, G), fe(B, A, G), I = !0;
    },
    p(B, [G]) {
      B[2] ? N ? (N.p(B, G), G & 4 && $(N, 1)) : (N = Tr(B), N.c(), $(N, 1), N.m(A.parentNode, A)) : N && (Ne(), se(N, 1, 1, () => {
        N = null;
      }), Ke());
    },
    i(B) {
      I || ($(N), I = !0);
    },
    o(B) {
      se(N), I = !1;
    },
    d(B) {
      N && N.d(B), B && ue(A);
    }
  };
}
function un(L, A, I) {
  const N = pt();
  let { content: B = "" } = A, { zIndex: G = 9999 } = A, { duration: U = 2e3 } = A, { isShow: M = !1 } = A;
  return L.$$set = (g) => {
    "content" in g && I(0, B = g.content), "zIndex" in g && I(1, G = g.zIndex), "duration" in g && I(3, U = g.duration), "isShow" in g && I(2, M = g.isShow);
  }, L.$$.update = () => {
    L.$$.dirty & 12 && M && setTimeout(
      () => {
        N("closeIsShow");
      },
      U
    );
  }, [B, G, M, U];
}
class fn extends tt {
  constructor(A) {
    super(), et(
      this,
      A,
      un,
      ln,
      qe,
      {
        content: 0,
        zIndex: 1,
        duration: 3,
        isShow: 2
      },
      on
    );
  }
}
function dn(L) {
  $e(L, "svelte-bjqzkb", ".d-feedback-container.svelte-bjqzkb.svelte-bjqzkb{position:absolute;left:0;top:0;right:0;bottom:0;display:flex;justify-content:center;align-items:center;z-index:3}.d-feedback-container.svelte-bjqzkb .dialog.svelte-bjqzkb{width:400px;height:240px;background-color:rgba(33, 33, 33, 0.9);color:#ffffff}.d-feedback-container.svelte-bjqzkb .dialog .header.svelte-bjqzkb{width:100%;height:40px;display:flex;justify-content:center;align-items:center;font-size:16px;position:relative}.d-feedback-container.svelte-bjqzkb .dialog .header.svelte-bjqzkb::after{content:' ';position:absolute;width:100%;height:1px;bottom:0;left:0;background-color:hsla(0, 0%, 100%, 0.4)}.d-feedback-container.svelte-bjqzkb .dialog .header .icon-close.svelte-bjqzkb{position:absolute;right:0px;top:8px;width:40px;height:40px;line-height:40px;text-align:center;cursor:pointer;font:inherit}.d-feedback-container.svelte-bjqzkb .dialog .content.svelte-bjqzkb{position:relative;text-align:left}.d-feedback-container.svelte-bjqzkb .dialog .other.svelte-bjqzkb{font-size:14px;margin-left:12px}.d-feedback-container.svelte-bjqzkb .dialog #otherContent.svelte-bjqzkb{background-color:#191919;border:1px solid hsla(0, 0%, 100%, 0.4);resize:none;color:#ccc;margin-top:10px}.d-feedback-container.svelte-bjqzkb .dialog #otherContent.svelte-bjqzkb::-webkit-scrollbar{width:5px;background-color:rgba(255, 255, 255, 0.5)}.d-feedback-container.svelte-bjqzkb .dialog #otherContent.svelte-bjqzkb::-webkit-scrollbar-thumb{width:5px;height:5px;background-color:rgba(0, 0, 0, 0.5);border-radius:10px}.d-feedback-container.svelte-bjqzkb .dialog .footer.svelte-bjqzkb{text-align:center}.d-feedback-container.svelte-bjqzkb .dialog .footer .d-player-filter-reset.svelte-bjqzkb{cursor:pointer;margin-top:10px;padding:3px 20px;display:inline-block;border-radius:2px;font-size:12px;background:rgba(133, 133, 133, 0.5)}.d-feedback-container.svelte-bjqzkb .dialog .footer .d-player-filter-reset.svelte-bjqzkb:hover{background:rgba(255, 255, 255, 0.3)}");
}
function xr(L, A, I) {
  const N = L.slice();
  return N[13] = A[I], N;
}
function Sr(L) {
  let A, I, N, B, G = L[1].playerFeedBack + "", U, M, g, P, y, O, C, F = L[1].other + "", R, T, D, p, S, b, _, E, l = L[1].confirm + "", n, t, d, h, i, r, e, f = L[8], u = [];
  for (let s = 0; s < f.length; s += 1)
    u[s] = Dr(xr(L, f, s));
  const m = (s) => se(u[s], 1, 1, () => {
    u[s] = null;
  });
  return {
    c() {
      A = J("div"), I = J("div"), N = J("div"), B = J("span"), U = he(G), M = ae(), g = J("i"), g.textContent = "X", P = ae(), y = J("div");
      for (let s = 0; s < u.length; s += 1)
        u[s].c();
      O = ae(), C = J("span"), R = he(F), T = he("\uFF1A"), D = ae(), p = J("textarea"), b = ae(), _ = J("div"), E = J("span"), n = he(l), V(g, "class", "icon-close svelte-bjqzkb"), V(N, "class", "header svelte-bjqzkb"), V(C, "class", "other svelte-bjqzkb"), V(p, "name", "otherContent"), V(p, "id", "otherContent"), V(p, "cols", "36"), V(p, "rows", "3"), V(p, "placeholder", S = L[1].feedbackPlaceHolder), V(p, "class", "svelte-bjqzkb"), V(y, "class", "content svelte-bjqzkb"), V(E, "title", t = L[1].confirm), V(E, "aria-label", d = L[1].confirm), V(E, "class", "d-player-filter-reset svelte-bjqzkb"), V(_, "class", "footer svelte-bjqzkb"), V(I, "class", "dialog svelte-bjqzkb"), V(A, "class", "d-feedback-container svelte-bjqzkb");
    },
    m(s, v) {
      fe(s, A, v), X(A, I), X(I, N), X(N, B), X(B, U), X(N, M), X(N, g), X(I, P), X(I, y);
      for (let c = 0; c < u.length; c += 1)
        u[c].m(y, null);
      X(y, O), X(y, C), X(C, R), X(C, T), X(y, D), X(y, p), qt(p, L[2]), X(I, b), X(I, _), X(_, E), X(E, n), i = !0, r || (e = [
        ce(g, "click", L[5]),
        ce(p, "input", L[10]),
        ce(E, "click", L[6]),
        ce(I, "click", Bt(L[9]))
      ], r = !0);
    },
    p(s, v) {
      if ((!i || v & 2) && G !== (G = s[1].playerFeedBack + "") && _e(U, G), v & 384) {
        f = s[8];
        let c;
        for (c = 0; c < f.length; c += 1) {
          const o = xr(s, f, c);
          u[c] ? (u[c].p(o, v), $(u[c], 1)) : (u[c] = Dr(o), u[c].c(), $(u[c], 1), u[c].m(y, O));
        }
        for (Ne(), c = f.length; c < u.length; c += 1)
          m(c);
        Ke();
      }
      (!i || v & 2) && F !== (F = s[1].other + "") && _e(R, F), (!i || v & 2 && S !== (S = s[1].feedbackPlaceHolder)) && V(p, "placeholder", S), v & 4 && qt(p, s[2]), (!i || v & 2) && l !== (l = s[1].confirm + "") && _e(n, l), (!i || v & 2 && t !== (t = s[1].confirm)) && V(E, "title", t), (!i || v & 2 && d !== (d = s[1].confirm)) && V(E, "aria-label", d);
    },
    i(s) {
      if (!i) {
        for (let v = 0; v < f.length; v += 1)
          $(u[v]);
        st(() => {
          h || (h = Ze(A, Je, {}, !0)), h.run(1);
        }), i = !0;
      }
    },
    o(s) {
      u = u.filter(Boolean);
      for (let v = 0; v < u.length; v += 1)
        se(u[v]);
      h || (h = Ze(A, Je, {}, !1)), h.run(0), i = !1;
    },
    d(s) {
      s && ue(A), It(u, s), s && h && h.end(), r = !1, at(e);
    }
  };
}
function Dr(L) {
  let A, I;
  return A = new sn({
    props: {
      radioText: L[13],
      width: "45%"
    }
  }), A.$on("checkRadio", L[7]), {
    c() {
      Se(A.$$.fragment);
    },
    m(N, B) {
      Te(A, N, B), I = !0;
    },
    p: De,
    i(N) {
      I || ($(A.$$.fragment, N), I = !0);
    },
    o(N) {
      se(A.$$.fragment, N), I = !1;
    },
    d(N) {
      xe(A, N);
    }
  };
}
function cn(L) {
  let A, I, N, B;
  A = new fn({
    props: {
      isShow: L[3],
      content: L[1].feedbackTips
    }
  }), A.$on("closeIsShow", L[4]);
  let G = L[0] && Sr(L);
  return {
    c() {
      Se(A.$$.fragment), I = ae(), G && G.c(), N = Tt();
    },
    m(U, M) {
      Te(A, U, M), fe(U, I, M), G && G.m(U, M), fe(U, N, M), B = !0;
    },
    p(U, [M]) {
      const g = {};
      M & 8 && (g.isShow = U[3]), M & 2 && (g.content = U[1].feedbackTips), A.$set(g), U[0] ? G ? (G.p(U, M), M & 1 && $(G, 1)) : (G = Sr(U), G.c(), $(G, 1), G.m(N.parentNode, N)) : G && (Ne(), se(G, 1, 1, () => {
        G = null;
      }), Ke());
    },
    i(U) {
      B || ($(A.$$.fragment, U), $(G), B = !0);
    },
    o(U) {
      se(A.$$.fragment, U), se(G), B = !1;
    },
    d(U) {
      xe(A, U), U && ue(I), G && G.d(U), U && ue(N);
    }
  };
}
function hn(L, A, I) {
  const N = pt();
  let { isShow: B = !1 } = A, { nowLanguage: G } = A;
  const U = /* @__PURE__ */ new Set([]);
  let M = "", g = !1;
  const P = () => {
    I(3, g = !1);
  }, y = () => {
    N("closeFeedBack");
  }, O = () => {
    I(3, g = !0), y(), N("feedbackConfirm", {
      feedbackOptions: [...U],
      feedbackValue: M
    });
  }, C = ({ detail: { isChecked: D, radioText: p } }) => {
    D ? U.add(p) : U.delete(p);
  }, F = [
    G.playStuck,
    G.progressError,
    G.videoBlack,
    G.soundPictueAsync
  ];
  function R(D) {
    yi.call(this, L, D);
  }
  function T() {
    M = this.value, I(2, M);
  }
  return L.$$set = (D) => {
    "isShow" in D && I(0, B = D.isShow), "nowLanguage" in D && I(1, G = D.nowLanguage);
  }, [
    B,
    G,
    M,
    g,
    P,
    y,
    O,
    C,
    F,
    R,
    T
  ];
}
class vn extends tt {
  constructor(A) {
    super(), et(this, A, hn, cn, qe, { isShow: 0, nowLanguage: 1 }, dn);
  }
}
function gn(L) {
  $e(L, "svelte-v622af", ".d-icon-feedback.svelte-v622af{position:absolute;width:15px;height:15px;top:20px;right:35px;z-index:2;cursor:pointer}");
}
function mn(L) {
  let A, I, N, B, G, U, M;
  return B = new vn({
    props: {
      nowLanguage: L[0],
      isShow: L[1]
    }
  }), B.$on("closeFeedBack", L[3]), B.$on("feedbackConfirm", L[4]), {
    c() {
      A = J("div"), A.innerHTML = '<svg t="1669096469269" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5486" width="25" height="25"><path d="M514.048 54.272q95.232 0 178.688 36.352t145.92 98.304 98.304 145.408 35.84 178.688-35.84 178.176-98.304 145.408-145.92 98.304-178.688 35.84-178.176-35.84-145.408-98.304-98.304-145.408-35.84-178.176 35.84-178.688 98.304-145.408 145.408-98.304 178.176-36.352zM515.072 826.368q26.624 0 44.544-17.92t17.92-43.52q0-26.624-17.92-44.544t-44.544-17.92-44.544 17.92-17.92 44.544q0 25.6 17.92 43.52t44.544 17.92zM567.296 574.464q-1.024-16.384 20.48-34.816t48.128-40.96 49.152-50.688 24.576-65.024q2.048-39.936-8.192-74.752t-33.792-59.904-60.928-39.936-87.552-14.848q-62.464 0-103.936 22.016t-67.072 53.248-35.84 64.512-9.216 55.808q1.024 26.624 16.896 38.912t34.304 12.8 33.792-10.24 15.36-31.232q0-12.288 7.68-30.208t20.992-34.304 32.256-27.648 42.496-11.264q46.08 0 73.728 23.04t25.6 57.856q0 17.408-10.24 32.256t-26.112 28.672-33.792 27.648-33.792 28.672-26.624 32.256-11.776 37.888l1.024 38.912q0 15.36 14.336 29.184t37.888 14.848q23.552-1.024 37.376-15.36t12.8-32.768l0-24.576z" p-id="5487" fill="rgba(255,255,255,0.5)"></path></svg>', N = ae(), Se(B.$$.fragment), V(A, "class", "d-icon-feedback svelte-v622af");
    },
    m(g, P) {
      fe(g, A, P), fe(g, N, P), Te(B, g, P), G = !0, U || (M = ce(A, "click", Bt(L[2])), U = !0);
    },
    p(g, [P]) {
      const y = {};
      P & 1 && (y.nowLanguage = g[0]), P & 2 && (y.isShow = g[1]), B.$set(y);
    },
    i(g) {
      G || (st(() => {
        I || (I = Ze(A, Je, {}, !0)), I.run(1);
      }), $(B.$$.fragment, g), G = !0);
    },
    o(g) {
      I || (I = Ze(A, Je, {}, !1)), I.run(0), se(B.$$.fragment, g), G = !1;
    },
    d(g) {
      g && ue(A), g && I && I.end(), g && ue(N), xe(B, g), U = !1, M();
    }
  };
}
function pn(L, A, I) {
  const N = pt();
  let { nowLanguage: B } = A, G = !1;
  const U = () => {
    I(1, G = !0);
  }, M = () => {
    I(1, G = !1);
  }, g = ({ detail: P }) => {
    N("feedbackConfirm", P);
  };
  return L.$$set = (P) => {
    "nowLanguage" in P && I(0, B = P.nowLanguage);
  }, [B, G, U, M, g];
}
class En extends tt {
  constructor(A) {
    super(), et(this, A, pn, mn, qe, { nowLanguage: 0 }, gn);
  }
}
const yn = [
  "loadstart",
  "durationchange",
  "loadedmetadata",
  "loadeddata",
  "progress",
  "canplay",
  "canplaythrough",
  "play",
  "pause",
  "playing",
  "seeking",
  "seeked",
  "waiting",
  "timeupdate",
  "ended",
  "error",
  "stalled"
];
function _n(L) {
  $e(L, "svelte-fbmaz8", "div.svelte-fbmaz8.svelte-fbmaz8,span.svelte-fbmaz8.svelte-fbmaz8,ul.svelte-fbmaz8.svelte-fbmaz8,li.svelte-fbmaz8.svelte-fbmaz8,video.svelte-fbmaz8.svelte-fbmaz8{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}ul.svelte-fbmaz8.svelte-fbmaz8{list-style:none}.d-fade-in-enter-active.svelte-fbmaz8.svelte-fbmaz8,.d-fade-in-leave-active.svelte-fbmaz8.svelte-fbmaz8{transition:0.5s}.d-fade-in-enter-from.svelte-fbmaz8.svelte-fbmaz8,.d-fade-in-leave-to.svelte-fbmaz8.svelte-fbmaz8{opacity:0}.d-scale-out-enter-active.svelte-fbmaz8.svelte-fbmaz8,.d-scale-out-leave-active.svelte-fbmaz8.svelte-fbmaz8{transition:0.3s}.d-scale-out-leave-to.svelte-fbmaz8.svelte-fbmaz8{transform:scale(1.3);opacity:0}.rotateHover.svelte-fbmaz8.svelte-fbmaz8{transition:0.2s}.rotateHover.svelte-fbmaz8.svelte-fbmaz8:hover{transform:rotate(90deg)}.rotating.svelte-fbmaz8.svelte-fbmaz8{animation:svelte-fbmaz8-rotating 2s linear infinite}@keyframes svelte-fbmaz8-rotating{100%{-webkit-transform:rotate(360deg)}}.iconfont.svelte-fbmaz8.svelte-fbmaz8{display:inline-block}.d-flex-x.svelte-fbmaz8.svelte-fbmaz8,.d-flex-y.svelte-fbmaz8.svelte-fbmaz8,.d-flex-center.svelte-fbmaz8.svelte-fbmaz8{display:flex}.d-flex-x.svelte-fbmaz8.svelte-fbmaz8{align-items:center}.d-flex-y.svelte-fbmaz8.svelte-fbmaz8{justify-content:center}.d-flex-center.svelte-fbmaz8.svelte-fbmaz8{justify-content:center;align-items:center}.mr5.svelte-fbmaz8.svelte-fbmaz8{margin-right:5px}.mr10.svelte-fbmaz8.svelte-fbmaz8{margin-right:10px}.ml5.svelte-fbmaz8.svelte-fbmaz8{margin-left:5px}.ml10.svelte-fbmaz8.svelte-fbmaz8{margin-left:10px}.d-pointer.svelte-fbmaz8.svelte-fbmaz8{cursor:pointer}.d-player-wrap.svelte-fbmaz8.svelte-fbmaz8{position:relative;overflow:hidden;background-color:#000}.d-player-wrap.web-full-screen.svelte-fbmaz8.svelte-fbmaz8{z-index:9999999;position:fixed;left:0;top:0;width:100vw !important;height:100vh !important}.d-player-wrap.svelte-fbmaz8 .d-player-video.svelte-fbmaz8{position:relative;z-index:1;width:100%;height:100%}.d-player-wrap.svelte-fbmaz8 .d-player-video .d-player-video-poster.svelte-fbmaz8{position:absolute;height:100%;width:100%;top:0;left:0}.d-player-wrap.svelte-fbmaz8 .d-player-video .d-player-video-main.svelte-fbmaz8{width:100%;height:100%;transition:0.2s}.d-player-wrap.svelte-fbmaz8 .d-player-video .d-player-video-main.video-mirror.svelte-fbmaz8{transform:rotateY(180deg)}.d-player-wrap.svelte-fbmaz8 .d-player-control.svelte-fbmaz8{transition:0.1s;transform:translateY(40px);position:absolute;z-index:2;left:0;bottom:0;height:50px;width:100%;color:#fff}.d-player-wrap.svelte-fbmaz8 .d-player-control .d-control-progress.svelte-fbmaz8{width:100%;position:relative;height:10px;cursor:pointer}.d-player-wrap.svelte-fbmaz8 .d-player-control .d-control-progress .d-progress-bar.svelte-fbmaz8{position:absolute;left:0;right:0;bottom:0;width:100%;transition:height 0.1s;height:3px;z-index:1}.d-player-wrap.svelte-fbmaz8 .d-player-control .d-control-progress .d-progress-bar .d-slider__runway.svelte-fbmaz8{transition:height 0.1s;height:100%}.d-player-wrap.svelte-fbmaz8 .d-player-control .d-control-progress .d-progress-bar .d-slider__runway .d-slider__bar.svelte-fbmaz8::before{transform:translateY(-50%) scale(0, 0)}.d-player-wrap.svelte-fbmaz8 .d-player-control .d-control-progress:hover .d-progress-bar.svelte-fbmaz8{height:100%}.d-player-wrap.svelte-fbmaz8 .d-player-control .d-control-progress:hover .d-progress-bar .d-slider__bar.svelte-fbmaz8::before{transform:translateY(-50%) scale(1, 1) !important}.d-player-wrap.svelte-fbmaz8 .d-player-control .d-control-tool.svelte-fbmaz8{position:absolute;padding:0 10px;background:rgba(0, 0, 0, 0.8);display:flex;justify-content:space-between;align-items:center;top:10px;left:0;bottom:0;width:100%;box-sizing:border-box}.d-player-wrap.svelte-fbmaz8 .d-player-control .d-control-tool .d-tool-bar.svelte-fbmaz8{display:flex;height:100%}.d-player-wrap.svelte-fbmaz8 .d-player-control .d-control-tool .d-tool-bar .d-tool-item.svelte-fbmaz8{position:relative;height:100%;cursor:pointer;text-align:center;padding:0 8px;display:flex;align-items:center;font-size:13px}.d-player-wrap.svelte-fbmaz8 .d-player-control .d-control-tool .d-tool-bar .d-tool-item .d-tool-item-main.svelte-fbmaz8{position:absolute;white-space:nowrap;z-index:2;bottom:98%;left:50%;padding:6px 16px;box-sizing:border-box;display:none;background:rgba(0, 0, 0, 0.95);border-radius:5px;transform:translateX(-50%)}.d-player-wrap.svelte-fbmaz8 .d-player-control .d-control-tool .d-tool-bar .d-tool-item:hover .d-tool-item-main.svelte-fbmaz8{display:flex}.d-player-wrap.svelte-fbmaz8 .d-player-control .d-control-tool .d-tool-time.svelte-fbmaz8{font-size:12px;color:#fff;font-weight:300}.d-player-wrap.svelte-fbmaz8 .d-player-control .d-control-tool .d-tool-time .total-time.svelte-fbmaz8{color:rgba(255, 255, 255, 0.8)}.d-player-wrap.svelte-fbmaz8 .d-player-control .d-control-tool .volume-box.svelte-fbmaz8{height:160px;width:50px;display:flex;align-items:center;justify-content:center}.d-player-wrap.svelte-fbmaz8 .d-player-control .d-control-tool .volume-box .volume-main.svelte-fbmaz8{height:90%;display:flex;width:60px;flex-direction:column;align-items:center}.d-player-wrap.svelte-fbmaz8 .d-player-control .d-control-tool .volume-box .volume-main .volume-text-size.svelte-fbmaz8{margin-bottom:10px;font-size:12px;font-weight:400}.d-player-wrap.svelte-fbmaz8 .d-player-control .d-control-tool .volume-box .volume-main.is-muted .d-slider__bar.svelte-fbmaz8{height:0 !important}.d-player-wrap.svelte-fbmaz8 .d-player-control .d-control-tool .speed-main.svelte-fbmaz8{padding:0 10px}.d-player-wrap.svelte-fbmaz8 .d-player-control .d-control-tool .speed-main li.svelte-fbmaz8{cursor:pointer;line-height:34px;font-size:12px;color:#fff}.d-player-wrap.svelte-fbmaz8 .d-player-control .d-control-tool .speed-main li.svelte-fbmaz8:hover{opacity:0.8}.d-player-wrap.svelte-fbmaz8 .d-player-control .d-control-tool .speed-main li.speed-active.svelte-fbmaz8{color:var(--primary-color);font-weight:bold}.d-player-wrap.d-player-wrap-hover.svelte-fbmaz8 .d-player-control.svelte-fbmaz8{transform:translateY(0px)}.d-player-state.svelte-fbmaz8.svelte-fbmaz8,.d-player-input.svelte-fbmaz8.svelte-fbmaz8{position:absolute;left:0;top:0;right:0;bottom:40px;display:flex;justify-content:center;align-items:center;overflow:hidden;z-index:1}.d-player-input.svelte-fbmaz8.svelte-fbmaz8{width:100%;border:none;opacity:0;cursor:default}.d-play-btn.svelte-fbmaz8.svelte-fbmaz8{width:90px;height:90px;color:#fff;display:flex;align-items:center;justify-content:center;background-color:rgba(0, 0, 0, 0.7);border-radius:50%}.d-player-lightoff.svelte-fbmaz8.svelte-fbmaz8{position:fixed;left:0;top:0;width:100vw;height:100vh;background-color:rgba(0, 0, 0, 0.9)}.is-lightoff.svelte-fbmaz8.svelte-fbmaz8{z-index:999998}.d-left-0.svelte-fbmaz8.svelte-fbmaz8{left:0 !important}.d-player-state-top.svelte-fbmaz8.svelte-fbmaz8{position:absolute;left:0;top:0;right:0;bottom:40px px;display:flex;justify-content:center;align-items:flex-start;padding-top:5%;overflow:hidden;z-index:1}");
}
function br(L, A, I) {
  const N = L.slice();
  return N[86] = A[I], N;
}
function Lr(L, A, I) {
  const N = L.slice();
  return N[86] = A[I], N[90] = I, N;
}
function Ar(L) {
  let A, I, N;
  return {
    c() {
      A = J("div"), V(A, "class", "d-player-lightoff svelte-fbmaz8");
    },
    m(B, G) {
      fe(B, A, G), N = !0;
    },
    i(B) {
      N || (st(() => {
        I || (I = Ze(A, Je, {}, !0)), I.run(1);
      }), N = !0);
    },
    o(B) {
      I || (I = Ze(A, Je, {}, !1)), I.run(0), N = !1;
    },
    d(B) {
      B && ue(A), B && I && I.end();
    }
  };
}
function Ir(L) {
  let A, I;
  return A = new Ji({ props: { title: L[4] } }), {
    c() {
      Se(A.$$.fragment);
    },
    m(N, B) {
      Te(A, N, B), I = !0;
    },
    p(N, B) {
      const G = {};
      B[0] & 16 && (G.title = N[4]), A.$set(G);
    },
    i(N) {
      I || ($(A.$$.fragment, N), I = !0);
    },
    o(N) {
      se(A.$$.fragment, N), I = !1;
    },
    d(N) {
      xe(A, N);
    }
  };
}
function Tn(L) {
  let A, I, N, B, G, U, M, g = L[15].playBtnState === "play" && Rr();
  B = new tn({ props: { state: L[15] } });
  let P = L[15].hasFeedBack && (L[15].playBtnState === "play" || L[15].isVideoHovering) && Pr(L);
  return {
    c() {
      A = J("div"), g && g.c(), I = ae(), N = J("div"), Se(B.$$.fragment), G = ae(), P && P.c(), U = Tt(), V(A, "class", "d-player-state svelte-fbmaz8"), V(N, "class", "d-player-state-top svelte-fbmaz8");
    },
    m(y, O) {
      fe(y, A, O), g && g.m(A, null), fe(y, I, O), fe(y, N, O), Te(B, N, null), fe(y, G, O), P && P.m(y, O), fe(y, U, O), M = !0;
    },
    p(y, O) {
      y[15].playBtnState === "play" ? g ? O[0] & 32768 && $(g, 1) : (g = Rr(), g.c(), $(g, 1), g.m(A, null)) : g && (Ne(), se(g, 1, 1, () => {
        g = null;
      }), Ke());
      const C = {};
      O[0] & 32768 && (C.state = y[15]), B.$set(C), y[15].hasFeedBack && (y[15].playBtnState === "play" || y[15].isVideoHovering) ? P ? (P.p(y, O), O[0] & 32768 && $(P, 1)) : (P = Pr(y), P.c(), $(P, 1), P.m(U.parentNode, U)) : P && (Ne(), se(P, 1, 1, () => {
        P = null;
      }), Ke());
    },
    i(y) {
      M || ($(g), $(B.$$.fragment, y), $(P), M = !0);
    },
    o(y) {
      se(g), se(B.$$.fragment, y), se(P), M = !1;
    },
    d(y) {
      y && ue(A), g && g.d(), y && ue(I), y && ue(N), xe(B), y && ue(G), P && P.d(y), y && ue(U);
    }
  };
}
function Rr(L) {
  let A, I, N, B;
  return I = new Et({ props: { icon: "icon-play", size: "30" } }), {
    c() {
      A = J("div"), Se(I.$$.fragment), V(A, "class", "d-play-btn svelte-fbmaz8");
    },
    m(G, U) {
      fe(G, A, U), Te(I, A, null), B = !0;
    },
    i(G) {
      B || ($(I.$$.fragment, G), st(() => {
        N || (N = Ze(A, Je, {}, !0)), N.run(1);
      }), B = !0);
    },
    o(G) {
      se(I.$$.fragment, G), N || (N = Ze(A, Je, {}, !1)), N.run(0), B = !1;
    },
    d(G) {
      G && ue(A), xe(I), G && N && N.end();
    }
  };
}
function Pr(L) {
  let A, I;
  return A = new En({
    props: { nowLanguage: L[23] }
  }), A.$on("feedbackConfirm", L[26]), {
    c() {
      Se(A.$$.fragment);
    },
    m(N, B) {
      Te(A, N, B), I = !0;
    },
    p: De,
    i(N) {
      I || ($(A.$$.fragment, N), I = !0);
    },
    o(N) {
      se(A.$$.fragment, N), I = !1;
    },
    d(N) {
      xe(A, N);
    }
  };
}
function xn(L) {
  let A, I, N;
  return {
    c() {
      A = J("input"), V(A, "type", "input"), A.readOnly = !0, V(A, "class", "d-player-input svelte-fbmaz8"), V(A, "maxlength", "0");
    },
    m(B, G) {
      fe(B, A, G), L[60](A), I || (N = [
        ce(A, "dblclick", L[61]),
        ce(A, "click", L[31]),
        ce(A, "keyup", L[28]),
        ce(A, "keydown", L[62])
      ], I = !0);
    },
    p: De,
    d(B) {
      B && ue(A), L[60](null), I = !1, at(N);
    }
  };
}
function Cr(L) {
  let A, I = L[8].includes("progress"), N, B, G, U, M, g, P = L[8].includes("progressTime"), y, O, C = L[15].qualityLevels.length && L[8].includes("quality"), F, R = L[8].includes("speedRate"), T, D = L[8].includes("volume"), p, S = L[8].includes("setting"), b, _ = L[8].includes("pip") && document.pictureInPictureEnabled, E, l = L[8].includes("pageFullScreen"), n, t = L[8].includes("fullScreen"), d, h, i, r = I && Or(L);
  M = new Et({
    props: {
      size: "24",
      icon: `icon-${L[15].playBtnState}`
    }
  });
  let e = P && Mr(L), f = C && kr(L), u = R && wr(L), m = D && Ur(L), s = S && Nr(L), v = _ && Kr(L), c = l && Wr(L), o = t && Gr(L);
  return {
    c() {
      A = J("div"), r && r.c(), N = ae(), B = J("div"), G = J("div"), U = J("div"), Se(M.$$.fragment), g = ae(), e && e.c(), y = ae(), O = J("div"), f && f.c(), F = ae(), u && u.c(), T = ae(), m && m.c(), p = ae(), s && s.c(), b = ae(), v && v.c(), E = ae(), c && c.c(), n = ae(), o && o.c(), V(U, "class", "d-tool-item svelte-fbmaz8"), V(G, "class", "d-tool-bar svelte-fbmaz8"), V(O, "class", "d-tool-bar svelte-fbmaz8"), V(B, "class", "d-control-tool svelte-fbmaz8"), V(A, "class", "d-player-control svelte-fbmaz8");
    },
    m(a, x) {
      fe(a, A, x), r && r.m(A, null), X(A, N), X(A, B), X(B, G), X(G, U), Te(M, U, null), X(G, g), e && e.m(G, null), X(B, y), X(B, O), f && f.m(O, null), X(O, F), u && u.m(O, null), X(O, T), m && m.m(O, null), X(O, p), s && s.m(O, null), X(O, b), v && v.m(O, null), X(O, E), c && c.m(O, null), X(O, n), o && o.m(O, null), L[72](A), d = !0, h || (i = [
        ce(U, "click", L[31]),
        ce(B, "click", L[29])
      ], h = !0);
    },
    p(a, x) {
      x[0] & 256 && (I = a[8].includes("progress")), I ? r ? (r.p(a, x), x[0] & 256 && $(r, 1)) : (r = Or(a), r.c(), $(r, 1), r.m(A, N)) : r && (Ne(), se(r, 1, 1, () => {
        r = null;
      }), Ke());
      const k = {};
      x[0] & 32768 && (k.icon = `icon-${a[15].playBtnState}`), M.$set(k), x[0] & 256 && (P = a[8].includes("progressTime")), P ? e ? e.p(a, x) : (e = Mr(a), e.c(), e.m(G, null)) : e && (e.d(1), e = null), x[0] & 33024 && (C = a[15].qualityLevels.length && a[8].includes("quality")), C ? f ? f.p(a, x) : (f = kr(a), f.c(), f.m(O, F)) : f && (f.d(1), f = null), x[0] & 256 && (R = a[8].includes("speedRate")), R ? u ? u.p(a, x) : (u = wr(a), u.c(), u.m(O, T)) : u && (u.d(1), u = null), x[0] & 256 && (D = a[8].includes("volume")), D ? m ? (m.p(a, x), x[0] & 256 && $(m, 1)) : (m = Ur(a), m.c(), $(m, 1), m.m(O, p)) : m && (Ne(), se(m, 1, 1, () => {
        m = null;
      }), Ke()), x[0] & 256 && (S = a[8].includes("setting")), S ? s ? (s.p(a, x), x[0] & 256 && $(s, 1)) : (s = Nr(a), s.c(), $(s, 1), s.m(O, b)) : s && (Ne(), se(s, 1, 1, () => {
        s = null;
      }), Ke()), x[0] & 256 && (_ = a[8].includes("pip") && document.pictureInPictureEnabled), _ ? v ? (v.p(a, x), x[0] & 256 && $(v, 1)) : (v = Kr(a), v.c(), $(v, 1), v.m(O, E)) : v && (Ne(), se(v, 1, 1, () => {
        v = null;
      }), Ke()), x[0] & 256 && (l = a[8].includes("pageFullScreen")), l ? c ? (c.p(a, x), x[0] & 256 && $(c, 1)) : (c = Wr(a), c.c(), $(c, 1), c.m(O, n)) : c && (Ne(), se(c, 1, 1, () => {
        c = null;
      }), Ke()), x[0] & 256 && (t = a[8].includes("fullScreen")), t ? o ? (o.p(a, x), x[0] & 256 && $(o, 1)) : (o = Gr(a), o.c(), $(o, 1), o.m(O, null)) : o && (Ne(), se(o, 1, 1, () => {
        o = null;
      }), Ke());
    },
    i(a) {
      d || ($(r), $(M.$$.fragment, a), $(m), $(s), $(v), $(c), $(o), d = !0);
    },
    o(a) {
      se(r), se(M.$$.fragment, a), se(m), se(s), se(v), se(c), se(o), d = !1;
    },
    d(a) {
      a && ue(A), r && r.d(), xe(M), e && e.d(), f && f.d(), u && u.d(), m && m.d(), s && s.d(), v && v.d(), c && c.d(), o && o.d(), L[72](null), h = !1, at(i);
    }
  };
}
function Or(L) {
  let A, I, N;
  return I = new Lt({
    props: {
      className: "d-progress-bar",
      disabled: !L[15].canSpeed,
      hoverText: L[15].progressCursorTime,
      modelValue: L[15].playProgress,
      preload: L[15].preloadBar
    }
  }), I.$on("onMousemove", L[34]), I.$on("change", L[33]), I.$on("update", L[63]), I.$on("speedDisabled", L[27]), {
    c() {
      A = J("div"), Se(I.$$.fragment), V(A, "class", "d-control-progress svelte-fbmaz8");
    },
    m(B, G) {
      fe(B, A, G), Te(I, A, null), N = !0;
    },
    p(B, G) {
      const U = {};
      G[0] & 32768 && (U.disabled = !B[15].canSpeed), G[0] & 32768 && (U.hoverText = B[15].progressCursorTime), G[0] & 32768 && (U.modelValue = B[15].playProgress), G[0] & 32768 && (U.preload = B[15].preloadBar), I.$set(U);
    },
    i(B) {
      N || ($(I.$$.fragment, B), N = !0);
    },
    o(B) {
      se(I.$$.fragment, B), N = !1;
    },
    d(B) {
      B && ue(A), xe(I);
    }
  };
}
function Mr(L) {
  let A, I, N = L[15].currentTime + "", B, G, U, M, g, P = L[15].totalTime + "", y;
  return {
    c() {
      A = J("div"), I = J("span"), B = he(N), G = ae(), U = J("span"), U.textContent = "/", M = ae(), g = J("span"), y = he(P), V(I, "class", "svelte-fbmaz8"), kt(U, "margin", "0 3px"), V(U, "class", "svelte-fbmaz8"), V(g, "class", "total-time svelte-fbmaz8"), V(A, "class", "d-tool-item d-tool-time audioTrack-btn svelte-fbmaz8");
    },
    m(O, C) {
      fe(O, A, C), X(A, I), X(I, B), X(A, G), X(A, U), X(A, M), X(A, g), X(g, y);
    },
    p(O, C) {
      C[0] & 32768 && N !== (N = O[15].currentTime + "") && _e(B, N), C[0] & 32768 && P !== (P = O[15].totalTime + "") && _e(y, P);
    },
    d(O) {
      O && ue(A);
    }
  };
}
function kr(L) {
  let A, I = (L[15].qualityLevels.length && (L[15].qualityLevels[L[15].currentLevel] || {}).height) + "", N, B, G, U, M = L[15].qualityLevels, g = [];
  for (let P = 0; P < M.length; P += 1)
    g[P] = Fr(Lr(L, M, P));
  return {
    c() {
      A = J("div"), N = he(I), B = he(`P
              `), G = J("div"), U = J("ul");
      for (let P = 0; P < g.length; P += 1)
        g[P].c();
      V(U, "class", "speed-main svelte-fbmaz8"), kt(U, "text-align", "center"), V(G, "class", "d-tool-item-main svelte-fbmaz8"), V(A, "class", "d-tool-item quality-btn svelte-fbmaz8");
    },
    m(P, y) {
      fe(P, A, y), X(A, N), X(A, B), X(A, G), X(G, U);
      for (let O = 0; O < g.length; O += 1)
        g[O].m(U, null);
    },
    p(P, y) {
      if (y[0] & 32768 && I !== (I = (P[15].qualityLevels.length && (P[15].qualityLevels[P[15].currentLevel] || {}).height) + "") && _e(N, I), y[0] & 32768 | y[1] & 32) {
        M = P[15].qualityLevels;
        let O;
        for (O = 0; O < M.length; O += 1) {
          const C = Lr(P, M, O);
          g[O] ? g[O].p(C, y) : (g[O] = Fr(C), g[O].c(), g[O].m(U, null));
        }
        for (; O < g.length; O += 1)
          g[O].d(1);
        g.length = M.length;
      }
    },
    d(P) {
      P && ue(A), It(g, P);
    }
  };
}
function Fr(L) {
  let A, I = L[86].height + "", N, B, G, U, M;
  function g() {
    return L[64](L[86], L[90]);
  }
  return {
    c() {
      A = J("li"), N = he(I), B = he(`P
                    `), V(A, "class", G = Re(L[15].currentLevel == L[90] ? "speed-active" : "") + " svelte-fbmaz8");
    },
    m(P, y) {
      fe(P, A, y), X(A, N), X(A, B), U || (M = ce(A, "click", g), U = !0);
    },
    p(P, y) {
      L = P, y[0] & 32768 && I !== (I = L[86].height + "") && _e(N, I), y[0] & 32768 && G !== (G = Re(L[15].currentLevel == L[90] ? "speed-active" : "") + " svelte-fbmaz8") && V(A, "class", G);
    },
    d(P) {
      P && ue(A), U = !1, M();
    }
  };
}
function wr(L) {
  let A, I = (L[15].speedActive == "1.0" ? L[23].speed : L[15].speedActive + "x") + "", N, B, G, U, M = L[15].speedRate, g = [];
  for (let P = 0; P < M.length; P += 1)
    g[P] = Br(br(L, M, P));
  return {
    c() {
      A = J("div"), N = he(I), B = ae(), G = J("div"), U = J("ul");
      for (let P = 0; P < g.length; P += 1)
        g[P].c();
      V(U, "class", "speed-main svelte-fbmaz8"), V(G, "class", "d-tool-item-main svelte-fbmaz8"), V(A, "class", "d-tool-item speedRate-btn svelte-fbmaz8");
    },
    m(P, y) {
      fe(P, A, y), X(A, N), X(A, B), X(A, G), X(G, U);
      for (let O = 0; O < g.length; O += 1)
        g[O].m(U, null);
    },
    p(P, y) {
      if (y[0] & 32768 && I !== (I = (P[15].speedActive == "1.0" ? P[23].speed : P[15].speedActive + "x") + "") && _e(N, I), y[0] & 32768 | y[1] & 64) {
        M = P[15].speedRate;
        let O;
        for (O = 0; O < M.length; O += 1) {
          const C = br(P, M, O);
          g[O] ? g[O].p(C, y) : (g[O] = Br(C), g[O].c(), g[O].m(U, null));
        }
        for (; O < g.length; O += 1)
          g[O].d(1);
        g.length = M.length;
      }
    },
    d(P) {
      P && ue(A), It(g, P);
    }
  };
}
function Br(L) {
  let A, I = L[86] + "", N, B, G, U, M;
  function g() {
    return L[65](L[86]);
  }
  return {
    c() {
      A = J("li"), N = he(I), B = he(`x
                    `), V(A, "class", G = Re(L[15].speedActive == L[86] ? "speed-active" : "") + " svelte-fbmaz8");
    },
    m(P, y) {
      fe(P, A, y), X(A, N), X(A, B), U || (M = ce(A, "click", g), U = !0);
    },
    p(P, y) {
      L = P, y[0] & 32768 && I !== (I = L[86] + "") && _e(N, I), y[0] & 32768 && G !== (G = Re(L[15].speedActive == L[86] ? "speed-active" : "") + " svelte-fbmaz8") && V(A, "class", G);
    },
    d(P) {
      P && ue(A), U = !1, M();
    }
  };
}
function Ur(L) {
  let A, I, N, B, G = (L[15].muted ? 0 : ~~(L[15].volume * 100)) + "", U, M, g, P, y, O, C, F, R, T, D;
  return P = new Lt({
    props: {
      hover: !1,
      size: "5px",
      vertical: !0,
      modelValue: L[15].volume
    }
  }), P.$on("change", L[66]), P.$on("update", L[67]), F = new Et({
    props: {
      size: "20",
      icon: `icon-volume-${L[15].volume == 0 || L[15].muted ? "mute" : L[15].volume > 0.5 ? "up" : "down"}`
    }
  }), {
    c() {
      A = J("div"), I = J("div"), N = J("div"), B = J("span"), U = he(G), M = he("%"), g = ae(), Se(P.$$.fragment), O = ae(), C = J("span"), Se(F.$$.fragment), V(B, "class", "volume-text-size svelte-fbmaz8"), V(N, "class", y = Re(`${L[15].muted ? "is-muted" : ""} volume-main`) + " svelte-fbmaz8"), V(I, "class", "d-tool-item-main volume-box svelte-fbmaz8"), kt(I, "width", "52px"), kt(C, "display", "flex"), V(C, "class", "svelte-fbmaz8"), V(A, "class", "d-tool-item volume-btn svelte-fbmaz8");
    },
    m(p, S) {
      fe(p, A, S), X(A, I), X(I, N), X(N, B), X(B, U), X(B, M), X(N, g), Te(P, N, null), X(A, O), X(A, C), Te(F, C, null), R = !0, T || (D = ce(C, "click", L[32]), T = !0);
    },
    p(p, S) {
      (!R || S[0] & 32768) && G !== (G = (p[15].muted ? 0 : ~~(p[15].volume * 100)) + "") && _e(U, G);
      const b = {};
      S[0] & 32768 && (b.modelValue = p[15].volume), P.$set(b), (!R || S[0] & 32768 && y !== (y = Re(`${p[15].muted ? "is-muted" : ""} volume-main`) + " svelte-fbmaz8")) && V(N, "class", y);
      const _ = {};
      S[0] & 32768 && (_.icon = `icon-volume-${p[15].volume == 0 || p[15].muted ? "mute" : p[15].volume > 0.5 ? "up" : "down"}`), F.$set(_);
    },
    i(p) {
      R || ($(P.$$.fragment, p), $(F.$$.fragment, p), R = !0);
    },
    o(p) {
      se(P.$$.fragment, p), se(F.$$.fragment, p), R = !1;
    },
    d(p) {
      p && ue(A), xe(P), xe(F), T = !1, D();
    }
  };
}
function Nr(L) {
  let A, I, N, B, G, U, M = L[23].mirror + "", g, P, y, O, C, F = L[23].loop + "", R, T, D, p, S, b = L[23].lightOff + "", _, E, l, n;
  return I = new Et({
    props: {
      size: "20",
      className: "rotateHover",
      icon: "icon-settings"
    }
  }), y = new Gt({
    props: { modelValue: L[15].mirror }
  }), y.$on("change", L[38]), y.$on("update", L[68]), D = new Gt({
    props: { modelValue: L[15].loop }
  }), D.$on("change", L[39]), D.$on("update", L[69]), l = new Gt({
    props: { modelValue: L[15].lightOff }
  }), l.$on("change", L[40]), l.$on("update", L[70]), {
    c() {
      A = J("div"), Se(I.$$.fragment), N = ae(), B = J("div"), G = J("ul"), U = J("li"), g = he(M), P = ae(), Se(y.$$.fragment), O = ae(), C = J("li"), R = he(F), T = ae(), Se(D.$$.fragment), p = ae(), S = J("li"), _ = he(b), E = ae(), Se(l.$$.fragment), V(U, "class", "svelte-fbmaz8"), V(C, "class", "svelte-fbmaz8"), V(S, "class", "svelte-fbmaz8"), V(G, "class", "speed-main svelte-fbmaz8"), V(B, "class", "d-tool-item-main svelte-fbmaz8"), V(A, "class", "d-tool-item setting-btn svelte-fbmaz8");
    },
    m(t, d) {
      fe(t, A, d), Te(I, A, null), X(A, N), X(A, B), X(B, G), X(G, U), X(U, g), X(U, P), Te(y, U, null), X(G, O), X(G, C), X(C, R), X(C, T), Te(D, C, null), X(G, p), X(G, S), X(S, _), X(S, E), Te(l, S, null), n = !0;
    },
    p(t, d) {
      const h = {};
      d[0] & 32768 && (h.modelValue = t[15].mirror), y.$set(h);
      const i = {};
      d[0] & 32768 && (i.modelValue = t[15].loop), D.$set(i);
      const r = {};
      d[0] & 32768 && (r.modelValue = t[15].lightOff), l.$set(r);
    },
    i(t) {
      n || ($(I.$$.fragment, t), $(y.$$.fragment, t), $(D.$$.fragment, t), $(l.$$.fragment, t), n = !0);
    },
    o(t) {
      se(I.$$.fragment, t), se(y.$$.fragment, t), se(D.$$.fragment, t), se(l.$$.fragment, t), n = !1;
    },
    d(t) {
      t && ue(A), xe(I), xe(y), xe(D), xe(l);
    }
  };
}
function Kr(L) {
  let A, I, N, B, G, U, M;
  return I = new Et({ props: { size: "20", icon: "icon-pip" } }), {
    c() {
      A = J("div"), Se(I.$$.fragment), N = ae(), B = J("div"), B.textContent = `${L[23].pictureInPicture}`, V(B, "class", "d-tool-item-main svelte-fbmaz8"), V(A, "class", "d-tool-item pip-btn svelte-fbmaz8");
    },
    m(g, P) {
      fe(g, A, P), Te(I, A, null), X(A, N), X(A, B), G = !0, U || (M = ce(A, "click", L[41]), U = !0);
    },
    p: De,
    i(g) {
      G || ($(I.$$.fragment, g), G = !0);
    },
    o(g) {
      se(I.$$.fragment, g), G = !1;
    },
    d(g) {
      g && ue(A), xe(I), U = !1, M();
    }
  };
}
function Wr(L) {
  let A, I, N, B, G, U, M, g, P;
  return I = new Et({
    props: { size: "20", icon: "icon-web-screen" }
  }), {
    c() {
      A = J("div"), Se(I.$$.fragment), N = ae(), B = J("div"), G = he(L[22]), V(B, "class", U = Re(`d-tool-item-main  ${L[8].includes("fullScreen") ? "" : "d-left-0"}`) + " svelte-fbmaz8"), V(A, "class", "d-tool-item pip-btn svelte-fbmaz8");
    },
    m(y, O) {
      fe(y, A, O), Te(I, A, null), X(A, N), X(A, B), X(B, G), M = !0, g || (P = ce(A, "click", L[71]), g = !0);
    },
    p(y, O) {
      (!M || O[0] & 4194304) && _e(G, y[22]), (!M || O[0] & 256 && U !== (U = Re(`d-tool-item-main  ${y[8].includes("fullScreen") ? "" : "d-left-0"}`) + " svelte-fbmaz8")) && V(B, "class", U);
    },
    i(y) {
      M || ($(I.$$.fragment, y), M = !0);
    },
    o(y) {
      se(I.$$.fragment, y), M = !1;
    },
    d(y) {
      y && ue(A), xe(I), g = !1, P();
    }
  };
}
function Gr(L) {
  let A, I, N, B, G, U, M, g, P;
  return U = new Et({
    props: { size: "20", icon: "icon-screen" }
  }), {
    c() {
      A = J("div"), I = J("div"), N = he(L[21]), G = ae(), Se(U.$$.fragment), V(I, "class", B = Re(`d-tool-item-main ${L[15].fullScreen || L[0] === "en" ? "d-left-0" : ""}`) + " svelte-fbmaz8"), V(A, "class", "d-tool-item fullScreen-btn svelte-fbmaz8");
    },
    m(y, O) {
      fe(y, A, O), X(A, I), X(I, N), X(A, G), Te(U, A, null), M = !0, g || (P = ce(A, "click", L[42]), g = !0);
    },
    p(y, O) {
      (!M || O[0] & 2097152) && _e(N, y[21]), (!M || O[0] & 32769 && B !== (B = Re(`d-tool-item-main ${y[15].fullScreen || y[0] === "en" ? "d-left-0" : ""}`) + " svelte-fbmaz8")) && V(I, "class", B);
    },
    i(y) {
      M || ($(U.$$.fragment, y), M = !0);
    },
    o(y) {
      se(U.$$.fragment, y), M = !1;
    },
    d(y) {
      y && ue(A), xe(U), g = !1, P();
    }
  };
}
function Sn(L) {
  let A, I, N, B, G, U, M, g, P, y, O, C, F, R, T, D, p, S, b, _, E, l, n, t = L[15].lightOff && Ar(), d = L[15].fullScreen && L[4] && Ir(L), h = !dt && Tn(L), i = !dt && xn(L);
  T = new Yi({
    props: {
      nowLanguage: L[23],
      loadingText: L[14],
      loadType: L[15].loadStateType,
      loadingDom: L[12],
      loadingImg: L[11],
      loadingType: L[13]
    }
  }), T.$on("playHandle", L[30]), p = new Ni({
    props: {
      contextMenu: L[10],
      nowLanguage: L[23],
      version: Dn
    }
  });
  let r = !dt && L[7] && Cr(L);
  return {
    c() {
      t && t.c(), A = ae(), I = J("div"), N = J("div"), B = J("video"), G = he("\u60A8\u7684\u6D4F\u89C8\u5668\u4E0D\u652F\u6301Video\u6807\u7B7E\u3002"), O = ae(), d && d.c(), C = ae(), h && h.c(), F = ae(), i && i.c(), R = ae(), Se(T.$$.fragment), D = ae(), Se(p.$$.fragment), S = ae(), r && r.c(), V(B, "class", U = Re(`${L[15].mirror ? "video-mirror" : ""} d-player-video-main`) + " svelte-fbmaz8"), V(B, "id", "dPlayerVideoMain"), B.controls = M = dt && L[15].canSpeed, B.muted = g = L[15].muted, B.loop = P = L[15].loop, B.playsInline = L[6], Mt(B.src, y = L[3]) || V(B, "src", y), V(B, "poster", L[5]), V(B, "preload", L[9]), V(B, "webkit-playsinline", L[6]), V(B, "width", "100%"), V(B, "height", "100%"), V(N, "id", "dPlayerVideo"), V(N, "class", "d-player-video svelte-fbmaz8"), V(I, "id", "refPlayerWrap"), V(I, "style", b = `width:${L[1]};height:${L[2]};--primary-color:rgb(${L[24]});--primary-color-end:rgb(${L[25]})`), V(I, "class", _ = Re(`d-player-wrap ${L[15].webFullScreen ? "web-full-screen" : ""} ${L[15].lightOff ? "is-lightoff" : ""} ${L[15].playBtnState === "play" || L[15].isVideoHovering ? "d-player-wrap-hover" : ""}`) + " svelte-fbmaz8");
    },
    m(e, f) {
      t && t.m(e, f), fe(e, A, f), fe(e, I, f), X(I, N), X(N, B), X(B, G), L[58](B), isNaN(L[15].volume) || (B.volume = L[15].volume), X(I, O), d && d.m(I, null), X(I, C), h && h.m(I, null), X(I, F), i && i.m(I, null), X(I, R), Te(T, I, null), X(I, D), Te(p, I, null), X(I, S), r && r.m(I, null), L[73](I), E = !0, l || (n = [
        ce(B, "volumechange", L[59]),
        ce(B, "loadstart", function() {
          Ie(L[20].loadstart) && L[20].loadstart.apply(this, arguments);
        }),
        ce(B, "durationchange", function() {
          Ie(L[20].durationchange) && L[20].durationchange.apply(this, arguments);
        }),
        ce(B, "loadedmetadata", function() {
          Ie(L[20].loadedmetadata) && L[20].loadedmetadata.apply(this, arguments);
        }),
        ce(B, "loadeddata", function() {
          Ie(L[20].loadeddata) && L[20].loadeddata.apply(this, arguments);
        }),
        ce(B, "progress", function() {
          Ie(L[20].progress) && L[20].progress.apply(this, arguments);
        }),
        ce(B, "canplay", function() {
          Ie(L[20].canplay) && L[20].canplay.apply(this, arguments);
        }),
        ce(B, "canplaythrough", function() {
          Ie(L[20].canplaythrough) && L[20].canplaythrough.apply(this, arguments);
        }),
        ce(B, "ended", function() {
          Ie(L[20].ended) && L[20].ended.apply(this, arguments);
        }),
        ce(B, "error", function() {
          Ie(L[20].error) && L[20].error.apply(this, arguments);
        }),
        ce(B, "pause", function() {
          Ie(L[20].pause) && L[20].pause.apply(this, arguments);
        }),
        ce(B, "play", function() {
          Ie(L[20].play) && L[20].play.apply(this, arguments);
        }),
        ce(B, "playing", function() {
          Ie(L[20].playing) && L[20].playing.apply(this, arguments);
        }),
        ce(B, "seeked", function() {
          Ie(L[20].seeked) && L[20].seeked.apply(this, arguments);
        }),
        ce(B, "seeking", function() {
          Ie(L[20].seeking) && L[20].seeking.apply(this, arguments);
        }),
        ce(B, "stalled", function() {
          Ie(L[20].stalled) && L[20].stalled.apply(this, arguments);
        }),
        ce(B, "timeupdate", function() {
          Ie(L[20].timeupdate) && L[20].timeupdate.apply(this, arguments);
        }),
        ce(B, "waiting", function() {
          Ie(L[20].waiting) && L[20].waiting.apply(this, arguments);
        }),
        ce(I, "mousemove", L[35])
      ], l = !0);
    },
    p(e, f) {
      L = e, L[15].lightOff ? t ? f[0] & 32768 && $(t, 1) : (t = Ar(), t.c(), $(t, 1), t.m(A.parentNode, A)) : t && (Ne(), se(t, 1, 1, () => {
        t = null;
      }), Ke()), (!E || f[0] & 32768 && U !== (U = Re(`${L[15].mirror ? "video-mirror" : ""} d-player-video-main`) + " svelte-fbmaz8")) && V(B, "class", U), (!E || f[0] & 32768 && M !== (M = dt && L[15].canSpeed)) && (B.controls = M), (!E || f[0] & 32768 && g !== (g = L[15].muted)) && (B.muted = g), (!E || f[0] & 32768 && P !== (P = L[15].loop)) && (B.loop = P), (!E || f[0] & 64) && (B.playsInline = L[6]), (!E || f[0] & 8 && !Mt(B.src, y = L[3])) && V(B, "src", y), (!E || f[0] & 32) && V(B, "poster", L[5]), (!E || f[0] & 512) && V(B, "preload", L[9]), (!E || f[0] & 64) && V(B, "webkit-playsinline", L[6]), f[0] & 32768 && !isNaN(L[15].volume) && (B.volume = L[15].volume), L[15].fullScreen && L[4] ? d ? (d.p(L, f), f[0] & 32784 && $(d, 1)) : (d = Ir(L), d.c(), $(d, 1), d.m(I, C)) : d && (Ne(), se(d, 1, 1, () => {
        d = null;
      }), Ke()), dt || h.p(L, f), dt || i.p(L, f);
      const u = {};
      f[0] & 16384 && (u.loadingText = L[14]), f[0] & 32768 && (u.loadType = L[15].loadStateType), f[0] & 4096 && (u.loadingDom = L[12]), f[0] & 2048 && (u.loadingImg = L[11]), f[0] & 8192 && (u.loadingType = L[13]), T.$set(u);
      const m = {};
      f[0] & 1024 && (m.contextMenu = L[10]), p.$set(m), !dt && L[7] ? r ? (r.p(L, f), f[0] & 128 && $(r, 1)) : (r = Cr(L), r.c(), $(r, 1), r.m(I, null)) : r && (Ne(), se(r, 1, 1, () => {
        r = null;
      }), Ke()), (!E || f[0] & 6 && b !== (b = `width:${L[1]};height:${L[2]};--primary-color:rgb(${L[24]});--primary-color-end:rgb(${L[25]})`)) && V(I, "style", b), (!E || f[0] & 32768 && _ !== (_ = Re(`d-player-wrap ${L[15].webFullScreen ? "web-full-screen" : ""} ${L[15].lightOff ? "is-lightoff" : ""} ${L[15].playBtnState === "play" || L[15].isVideoHovering ? "d-player-wrap-hover" : ""}`) + " svelte-fbmaz8")) && V(I, "class", _);
    },
    i(e) {
      E || ($(t), $(d), $(h), $(T.$$.fragment, e), $(p.$$.fragment, e), $(r), E = !0);
    },
    o(e) {
      se(t), se(d), se(h), se(T.$$.fragment, e), se(p.$$.fragment, e), se(r), E = !1;
    },
    d(e) {
      t && t.d(e), e && ue(A), e && ue(I), L[58](null), d && d.d(), h && h.d(), i && i.d(), xe(T), xe(p), r && r.d(), L[73](null), l = !1, at(n);
    }
  };
}
const Dn = "1.0.0";
function bn(L, A, I) {
  let N, B;
  const G = pt();
  let { languageType: U = "zh-cn" } = A;
  const M = ar[U] || ar["zh-cn"];
  let { width: g = "800px" } = A, { height: P = "450px" } = A, { color: y = "#E93030" } = A, { colorEnd: O = "#F06F6F" } = A, { src: C = "" } = A, { title: F = "" } = A, { type: R = "video/mp4" } = A, { poster: T = "" } = A, { webFullScreen: D = !1 } = A, { canSpeed: p = !0 } = A, { currentTime: S = 0 } = A, { playsinline: b = !1 } = A, { muted: _ = !1 } = A, { speedRate: E = ["2.0", "1.5", "1.25", "1.0", "0.75", "0.5"] } = A, { autoPlay: l = !1 } = A, { loop: n = !1 } = A, { mirror: t = !1 } = A, { lightOff: d = !1 } = A, { volume: h = 1 } = A, { control: i = !0 } = A, { controlBtns: r = [
    "progress",
    "progressTime",
    "quality",
    "speedRate",
    "volume",
    "setting",
    "pip",
    "pageFullScreen",
    "fullScreen"
  ] } = A, { preload: e = "auto" } = A, { qualityLevels: f = [] } = A, { contextMenu: u = ["filter", "hotkey", "copy", "version"] } = A, { loadingImg: m = "" } = A, { loadingDom: s = "" } = A, { loadingType: v = "" } = A, { loadingText: c = M.loading } = A, { hasFeedBack: o = !1 } = A;
  const a = {
    width: g,
    height: P,
    color: y,
    colorEnd: O,
    src: C,
    title: F,
    type: R,
    poster: T,
    webFullScreen: D,
    canSpeed: p,
    playsinline: b,
    muted: _,
    speedRate: E,
    autoPlay: l,
    loop: n,
    mirror: t,
    lightOff: d,
    volume: h,
    control: i,
    controlBtns: r,
    preload: e,
    qualityLevels: f,
    hasFeedBack: o,
    isShowFeedBack: !1,
    currentTime: "",
    dVideo: null,
    playBtnState: l ? "pause" : "play",
    loadStateType: "loadstart",
    fullScreen: !1,
    handleType: "",
    preloadBar: 0,
    totalTime: "00:00:00",
    isVideoHovering: !0,
    speedActive: "1.0",
    playProgress: 0,
    isMultiplesPlay: !1,
    longPressTimeout: null,
    progressCursorTime: "00:00:00",
    currentLevel: 0
  };
  let x, k, K, w, W;
  const z = nr(a.color), H = nr(a.colorEnd), j = ({ detail: Q }) => {
    G("feedbackConfirm", Q);
  }, Y = ({ detail: Q }) => {
    G("speedDisabled", Q);
  }, Z = ir(500, () => {
    I(15, a.handleType = "", a);
  }), q = (Q) => {
    Q.preventDefault(), Q.code == "ArrowUp" ? I(15, a.volume = a.volume + 0.1 > 1 ? 1 : a.volume + 0.1, a) : I(15, a.volume = a.volume - 0.1 < 0 ? 0 : a.volume - 0.1, a), I(15, a.muted = !1, a), I(15, a.handleType = "volume", a), Z();
  }, ee = (Q) => {
    !p || (I(
      15,
      a.dVideo.currentTime = a.dVideo.currentTime < 10 ? 0.1 : a.dVideo.currentTime - 10,
      a
    ), Ee.timeupdate(a.dVideo), oe());
  }, te = (Q, ge) => {
    Q.preventDefault();
    const Ue = Q.type;
    if (Q.keyCode === 39) {
      if (oe(), Ue === "keyup") {
        if (clearTimeout(a.longPressTimeout), !p && !a.longPressTimeout)
          return;
        a.isMultiplesPlay ? (I(15, a.dVideo.playbackRate = +a.speedActive, a), I(15, a.isMultiplesPlay = !1, a)) : (I(15, a.dVideo.currentTime = a.dVideo.currentTime + 10, a), Ee.timeupdate(a.dVideo));
      } else if (Ue === "keydown") {
        if (!p)
          return;
        a.isMultiplesPlay && clearTimeout(a.longPressTimeout), I(
          15,
          a.longPressTimeout = window.setTimeout(
            () => {
              I(15, a.isMultiplesPlay = !0, a), I(15, a.dVideo.playbackRate = 5, a), I(15, a.handleType = "playbackRate", a), Z();
            },
            500
          ),
          a
        );
      }
    }
    if (ge === "keydown") {
      switch (Q.keyCode) {
        case 32:
          re(Q);
          break;
        case 70:
          r.includes("fullScreen") && we();
          break;
        case 37:
          ee();
          break;
        case 38:
          q(Q);
          break;
        case 40:
          q(Q);
          break;
      }
      Z();
    }
  }, ne = () => {
    dt || W.focus();
  }, ie = (Q) => {
    const { code: ge, message: Ue, name: Xe } = Q;
    Ue.includes("play() failed because the user didn't interact with the document first") && ge === 0 && Xe === "NotAllowedError" ? (I(15, a.muted = !0, a), Ht().then(() => {
      oe();
    })) : setTimeout(
      () => {
        I(15, a.playBtnState = "replay", a), I(15, a.loadStateType = "error", a);
      },
      500
    );
  }, oe = () => {
    I(15, a.loadStateType = "play", a);
    const Q = a.dVideo.play();
    Q && Q.catch((ge) => {
      ie(ge);
    }), I(15, a.playBtnState = "pause", a);
  }, de = () => {
    I(15, a.loadStateType = "pause", a), a.dVideo.pause(), I(15, a.playBtnState = "play", a);
  }, re = (Q) => {
    Q && Q.preventDefault(), a.playBtnState == "play" || a.playBtnState == "replay" ? oe() : a.playBtnState == "pause" && de();
  }, le = () => {
    I(15, a.muted = !a.muted, a), a.volume === 0 && I(15, a.volume = 0.05, a);
  }, me = ({ detail: { ev: Q, value: ge } }) => {
    var Xe, Ve;
    const Ue = a.dVideo.duration || ((Ve = (Xe = a == null ? void 0 : a.dVideo) == null ? void 0 : Xe.target) == null ? void 0 : Ve.duration);
    I(15, a.dVideo.currentTime = Ue * ge, a), a.playBtnState === "play" && oe();
  }, ve = ({ detail: { ev: Q, val: ge } }) => {
    I(15, a.progressCursorTime = Wt(a.dVideo.duration * ge), a);
  }, pe = ir(2500, () => {
    I(15, a.isVideoHovering = !1, a);
  }), Pe = (Q) => {
    I(15, a.isVideoHovering = !0, a), pe();
  }, ye = (Q, ge) => {
    x && (x.currentLevel = ge), I(15, a.currentLevel = ge, a);
  }, Ce = (Q) => {
    I(15, a.speedActive = Q, a), I(15, a.dVideo.playbackRate = +Q, a);
  }, Oe = (Q) => {
    G("mirrorChange", {
      mirrorStatus: Q.detail,
      videoDom: a.dVideo
    });
  }, Ae = (Q) => {
    G("loopChange", {
      loopStatus: Q.detail,
      videoDom: a.dVideo
    });
  }, Fe = (Q) => {
    G("lightOffChange", {
      lightOffStatus: Q.detail,
      videoDom: a.dVideo
    });
  }, We = () => {
    document.exitPictureInPicture();
  }, He = () => {
    a.dVideo.requestPictureInPicture();
  }, Ge = () => {
    document.pictureInPictureElement ? We() : He();
  }, we = () => {
    I(15, a.fullScreen = Li(k), a);
  }, Be = (...Q) => (ge) => Q.reverse().reduce(
    (Ue, Xe) => {
      if (Xe)
        return Xe(Ue);
    },
    ge
  ), Ee = yn.reduce(
    (Q, ge) => (Q[ge] = (Ue) => {
      ["stalled", "error"].includes(ge) && I(15, a.playBtnState = "replay", a), I(15, a.loadStateType = ge, a), ["canplay", "durationchange", "progress", "timeupdate"].includes(ge) || G(ge, {
        currentTime: a.dVideo.currentTime,
        duration: a.dVideo.duration
      });
    }, Q),
    {}
  );
  Ee.canplay = Be(Ee.canplay, (Q) => {
    (a.playBtnState !== "play" || a.autoPlay) && oe(), G("canplay", {
      videoDom: a.dVideo,
      duration: a.dVideo.duration
    });
  }), Ee.ended = Be(Ee.ended, (Q) => {
    I(15, a.playBtnState = "replay", a);
  }), Ee.durationchange = (Q) => {
    G("durationchange", { duration: a.dVideo.duration }), S !== 0 && I(15, a.dVideo.currentTime = S, a), Ee.timeupdate(Q);
  }, Ee.progress = (Q) => {
    const ge = Q.target.duration;
    G("progress", {
      duration: ge,
      currentTime: a.dVideo.currentTime
    });
    const Ue = Q.target.buffered, Xe = Q.target.buffered.length && Q.target.buffered.end(Ue - 1);
    I(15, a.preloadBar = Xe / ge, a);
  }, Ee.timeupdate = (Q) => {
    const ge = Q.duration || Q.target.duration || 0, Ue = Q.currentTime || Q.target.currentTime;
    G("timeupdate", { currentTime: Ue, duration: ge }), I(15, a.playProgress = Ue / ge, a), I(15, a.currentTime = Wt(Ue), a), I(15, a.totalTime = Wt(ge), a);
  }, Ee.playing = Be(Ee.playing, () => {
    I(15, a.playBtnState = "pause", a);
  }), Ee.pause = Be(Ee.pause, () => {
    I(15, a.playBtnState = "play", a);
  }), Ee.error = Be(Ee.error, (Q) => {
    I(15, a.loadStateType = "error", a), I(15, a.playBtnState = "replay", a);
  });
  const rt = () => {
    if (a.dVideo.canPlayType(R) || a.dVideo.canPlayType("application/vnd.apple.mpegurl")) {
      x && (x.detachMedia(), I(15, a.qualityLevels = [], a)), Ce(a.speedActive || "1.0");
      return;
    }
    nt.isSupported() && (x = new nt({ fragLoadingTimeOut: 2e3 }), x.detachMedia(), x.attachMedia(a.dVideo), x.on(nt.Events.MEDIA_ATTACHED, () => {
      x.loadSource(C), x.on(nt.Events.MANIFEST_PARSED, (Q, ge) => {
        I(15, a.qualityLevels = ge.levels || [], a);
      });
    }), x.on(nt.Events.ERROR, (Q, ge) => {
      if (ge.fatal)
        switch (ge.type) {
          case nt.ErrorTypes.NETWORK_ERROR:
            x.startLoad();
            break;
          case nt.ErrorTypes.MEDIA_ERROR:
            x.recoverMediaError();
            break;
          default:
            x.destroy();
            break;
        }
    }), x.on(nt.Events.LEVEL_SWITCHING, (Q, ge) => {
      G(nt.Events.LEVEL_SWITCHING, ge.level);
    }), x.on(nt.Events.LEVEL_SWITCHED, (Q, ge) => {
      I(15, a.currentLevel = ge.level, a), G(nt.Events.LEVEL_SWITCHED, a.currentLevel);
    }));
  };
  Qr(() => {
    I(15, a.dVideo = K, a), ne();
  });
  function Le(Q) {
    ct[Q ? "unshift" : "push"](() => {
      K = Q, I(17, K);
    });
  }
  function Me() {
    a.volume = this.volume, I(15, a);
  }
  function je(Q) {
    ct[Q ? "unshift" : "push"](() => {
      W = Q, I(19, W);
    });
  }
  const be = () => {
    r.includes("fullScreen") && we();
  }, ke = (Q) => {
    te(Q, "keydown");
  }, ze = (Q) => {
    I(15, a.playProgress = Q.detail, a);
  }, ot = (Q, ge) => {
    ye(Q, ge);
  }, lt = (Q) => {
    Ce(Q);
  }, vt = () => {
    I(15, a.muted = !1, a);
  }, Qe = (Q) => {
    I(15, a.volume = Q.detail, a);
  }, xt = (Q) => {
    I(15, a.mirror = Q.detail, a);
  }, ut = (Q) => {
    I(15, a.loop = Q.detail, a);
  }, it = (Q) => {
    I(15, a.lightOff = Q.detail, a);
  }, gt = () => {
    I(15, a.webFullScreen = !a.webFullScreen, a);
  };
  function ft(Q) {
    ct[Q ? "unshift" : "push"](() => {
      w = Q, I(18, w);
    });
  }
  function yt(Q) {
    ct[Q ? "unshift" : "push"](() => {
      k = Q, I(16, k);
    });
  }
  return L.$$set = (Q) => {
    "languageType" in Q && I(0, U = Q.languageType), "width" in Q && I(1, g = Q.width), "height" in Q && I(2, P = Q.height), "color" in Q && I(43, y = Q.color), "colorEnd" in Q && I(44, O = Q.colorEnd), "src" in Q && I(3, C = Q.src), "title" in Q && I(4, F = Q.title), "type" in Q && I(45, R = Q.type), "poster" in Q && I(5, T = Q.poster), "webFullScreen" in Q && I(46, D = Q.webFullScreen), "canSpeed" in Q && I(47, p = Q.canSpeed), "currentTime" in Q && I(48, S = Q.currentTime), "playsinline" in Q && I(6, b = Q.playsinline), "muted" in Q && I(49, _ = Q.muted), "speedRate" in Q && I(50, E = Q.speedRate), "autoPlay" in Q && I(51, l = Q.autoPlay), "loop" in Q && I(52, n = Q.loop), "mirror" in Q && I(53, t = Q.mirror), "lightOff" in Q && I(54, d = Q.lightOff), "volume" in Q && I(55, h = Q.volume), "control" in Q && I(7, i = Q.control), "controlBtns" in Q && I(8, r = Q.controlBtns), "preload" in Q && I(9, e = Q.preload), "qualityLevels" in Q && I(56, f = Q.qualityLevels), "contextMenu" in Q && I(10, u = Q.contextMenu), "loadingImg" in Q && I(11, m = Q.loadingImg), "loadingDom" in Q && I(12, s = Q.loadingDom), "loadingType" in Q && I(13, v = Q.loadingType), "loadingText" in Q && I(14, c = Q.loadingText), "hasFeedBack" in Q && I(57, o = Q.hasFeedBack);
  }, L.$$.update = () => {
    L.$$.dirty[0] & 32768 && I(22, N = a.webFullScreen ? M.exitWebFullScreen : M.webFullScreen), L.$$.dirty[0] & 32768 && I(21, B = a.fullScreen ? M.exitFullScreen : M.fullScreen), L.$$.dirty[0] & 8 && C && Ht().then(() => {
      rt();
    });
  }, [
    U,
    g,
    P,
    C,
    F,
    T,
    b,
    i,
    r,
    e,
    u,
    m,
    s,
    v,
    c,
    a,
    k,
    K,
    w,
    W,
    Ee,
    B,
    N,
    M,
    z,
    H,
    j,
    Y,
    te,
    ne,
    oe,
    re,
    le,
    me,
    ve,
    Pe,
    ye,
    Ce,
    Oe,
    Ae,
    Fe,
    Ge,
    we,
    y,
    O,
    R,
    D,
    p,
    S,
    _,
    E,
    l,
    n,
    t,
    d,
    h,
    f,
    o,
    Le,
    Me,
    je,
    be,
    ke,
    ze,
    ot,
    lt,
    vt,
    Qe,
    xt,
    ut,
    it,
    gt,
    ft,
    yt
  ];
}
class Ln extends tt {
  constructor(A) {
    super(), et(
      this,
      A,
      bn,
      Sn,
      qe,
      {
        languageType: 0,
        width: 1,
        height: 2,
        color: 43,
        colorEnd: 44,
        src: 3,
        title: 4,
        type: 45,
        poster: 5,
        webFullScreen: 46,
        canSpeed: 47,
        currentTime: 48,
        playsinline: 6,
        muted: 49,
        speedRate: 50,
        autoPlay: 51,
        loop: 52,
        mirror: 53,
        lightOff: 54,
        volume: 55,
        control: 7,
        controlBtns: 8,
        preload: 9,
        qualityLevels: 56,
        contextMenu: 10,
        loadingImg: 11,
        loadingDom: 12,
        loadingType: 13,
        loadingText: 14,
        hasFeedBack: 57
      },
      _n,
      [-1, -1, -1]
    );
  }
}
export {
  Ln as default
};