From 461efec83acc21a89b161349c383e2584165278c Mon Sep 17 00:00:00 2001 From: Yiannis Christodoulou Date: Fri, 3 Oct 2025 13:03:26 +0300 Subject: [PATCH] build assets --- static/video_js/video-js.css | 2 +- static/video_js/video-js.js | 2 +- static/video_js/video-js.js.map | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/static/video_js/video-js.css b/static/video_js/video-js.css index 7d7d2b77..caf97c63 100644 --- a/static/video_js/video-js.css +++ b/static/video_js/video-js.css @@ -1 +1 @@ -html{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}@media (hover: none) and (pointer: coarse){.video-js .vjs-control:hover:after,.video-js .vjs-control:focus:after,.video-js .vjs-control:active:after,.video-js button.vjs-button:hover span.vjs-control-text,.vjs-chapter-marker:hover .vjs-chapter-marker-tooltip,.vjs-chapter-floating-tooltip,.vjs-sprite-preview-tooltip{display:none!important;opacity:0!important;visibility:hidden!important}.video-js .vjs-progress-control{bottom:58px!important}.video-js .vjs-progress-holder,.video-js .vjs-seek-bar{touch-action:pan-x!important;-webkit-touch-callout:none!important;-webkit-user-select:none!important;user-select:none!important}.video-js .vjs-big-play-button{pointer-events:auto!important;z-index:1!important}.video-js .vjs-progress-control{z-index:10!important;pointer-events:auto!important}.video-js .vjs-autoplay-toggle.touch-active:after{opacity:1!important;visibility:visible!important}}.playlist-items a{text-decoration:none!important}.video-js-root-main .video-js.video-js-rounded-corners,.video-js-root-main .video-js.video-js-rounded-corners.vjs-has-started,.video-js-root-main .video-js.video-js-rounded-corners.vjs-fullscreen,.video-js-root-main .video-js.video-js-rounded-corners.vjs-paused,.video-js-root-main .video-js.video-js-rounded-corners.vjs-ended,.video-js-root-main .video-js.video-js-rounded-corners.chapters-open{outline:none!important;border-radius:12px!important}.video-js video{outline:none!important}.video-js-root-main .video-js.video-js-rounded-corners .vjs-poster{border-radius:12px!important}.video-js-root-main .video-js.video-js-rounded-corners video{border-radius:12px!important}.video-js div.vjs-control-bar{background:transparent!important;background-color:transparent!important;background-image:none!important;display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:flex-start!important;padding:0 12px;height:48px}.video-js .vjs-play-control{order:0!important}.video-js .vjs-play-wrapper{order:0!important;display:flex!important;align-items:center!important;justify-content:center!important;position:relative!important;background:rgba(0,0,0,.1)!important;border-radius:6px!important;padding:2px!important;margin:0 2px!important;transition:background-color .3s ease!important;width:40px!important;height:40px!important;flex-shrink:0!important}.video-js .vjs-play-wrapper:hover{background:rgba(0,0,0,.2)!important}.video-js .vjs-next-video-wrapper{order:1!important;display:flex!important;align-items:center!important;justify-content:center!important;position:relative!important;background:rgba(0,0,0,.1)!important;border-radius:6px!important;padding:2px!important;margin:0 2px!important;transition:background-color .3s ease!important;width:40px!important;height:40px!important;flex-shrink:0!important}.video-js .vjs-next-video-wrapper:hover{background:rgba(0,0,0,.2)!important}.video-js .vjs-volume-wrapper{order:2!important;display:flex!important;align-items:center!important;justify-content:center!important;position:relative!important;background:rgba(0,0,0,.1)!important;border-radius:6px!important;padding:2px!important;margin:0 2px!important;transition:background-color .3s ease!important;width:auto!important;height:40px!important;flex-shrink:0!important}.video-js .vjs-volume-wrapper:hover{background:rgba(0,0,0,.2)!important}.video-js .vjs-autoplay-wrapper{order:5!important;display:flex!important;align-items:center!important;justify-content:center!important;position:relative!important;background:rgba(0,0,0,.1)!important;border-radius:6px!important;padding:2px!important;margin:0 2px!important;transition:background-color .3s ease!important;width:40px!important;height:40px!important;flex-shrink:0!important}.video-js .vjs-autoplay-wrapper:hover{background:rgba(0,0,0,.2)!important}.video-js .vjs-chapters-button.vjs-menu-button{order:6!important;display:flex!important;align-items:center!important;justify-content:center!important;position:relative!important;background:rgba(0,0,0,.1)!important;border-radius:6px!important;padding:2px!important;margin:0 2px!important;transition:background-color .3s ease!important;width:40px!important;height:40px!important;flex-shrink:0!important}.video-js .vjs-chapters-button.vjs-menu-button:hover{background:rgba(0,0,0,.2)!important}.video-js .vjs-subtitles-button.vjs-menu-button{order:7!important;display:flex!important;align-items:center!important;justify-content:center!important;position:relative!important;background:rgba(0,0,0,.1)!important;border-radius:6px!important;padding:2px!important;margin:0 2px!important;transition:background-color .3s ease!important;width:40px!important;height:40px!important;flex-shrink:0!important}.video-js .vjs-subtitles-button.vjs-menu-button:hover{background:rgba(0,0,0,.2)!important}.video-js .vjs-settings-wrapper{order:8!important;display:flex!important;align-items:center!important;justify-content:center!important;position:relative!important;background:rgba(0,0,0,.1)!important;border-radius:6px!important;padding:2px!important;margin:0 2px!important;transition:background-color .3s ease!important;width:40px!important;height:40px!important;flex-shrink:0!important}.video-js .vjs-settings-wrapper:hover{background:rgba(0,0,0,.2)!important}.video-js .vjs-pip-wrapper{order:9!important;display:flex!important;align-items:center!important;justify-content:center!important;position:relative!important;background:rgba(0,0,0,.1)!important;border-radius:6px!important;padding:2px!important;margin:0 2px!important;transition:background-color .3s ease!important;width:40px!important;height:40px!important;flex-shrink:0!important}.video-js .vjs-pip-wrapper:hover{background:rgba(0,0,0,.2)!important}.video-js .vjs-pip-wrapper .vjs-picture-in-picture-control{display:flex!important;align-items:center!important;justify-content:center!important;width:36px!important;height:36px!important;margin:0!important;padding:0!important;position:relative!important}.video-js .vjs-fullscreen-wrapper{order:10!important;display:flex!important;align-items:center!important;justify-content:center!important;position:relative!important;background:rgba(0,0,0,.1)!important;border-radius:6px!important;padding:2px!important;margin:0 2px!important;transition:background-color .3s ease!important;width:40px!important;height:40px!important;flex-shrink:0!important}.video-js .vjs-fullscreen-wrapper:hover{background:rgba(0,0,0,.2)!important}.video-js .vjs-fullscreen-wrapper .vjs-fullscreen-control{display:flex!important;align-items:center!important;justify-content:center!important;width:36px!important;height:36px!important;margin:0!important;padding:0!important;position:relative!important}.video-js .vjs-pip-wrapper{margin-right:0!important}.video-js .vjs-fullscreen-wrapper{margin-left:0!important}.video-js .vjs-settings-wrapper .vjs-settings-button{display:flex!important;align-items:center!important;justify-content:center!important;width:36px!important;height:36px!important;margin:0!important;padding:0!important;position:relative!important;overflow:hidden!important}.video-js .vjs-settings-wrapper .vjs-settings-button svg{width:46px!important;height:46px!important}.video-js .vjs-play-wrapper,.video-js .vjs-next-video-wrapper,.video-js .vjs-volume-wrapper,.video-js .vjs-autoplay-wrapper,.video-js .vjs-chapters-button.vjs-menu-button,.video-js .vjs-subtitles-button.vjs-menu-button,.video-js .vjs-settings-wrapper,.video-js .vjs-pip-wrapper,.video-js .vjs-fullscreen-wrapper{align-items:center!important;justify-content:center!important;vertical-align:middle!important}.video-js .vjs-next-video-control{order:1!important}.video-js .vjs-volume-panel{order:2!important}.video-js .custom-remaining-time{order:3!important}.video-js .vjs-spacer-control{order:4!important}.video-js .vjs-autoplay-toggle{order:5!important}.video-js .vjs-chapters-button{order:6!important}.video-js .vjs-subs-caps-button,.video-js .vjs-subtitles-button{order:7!important}.video-js .vjs-settings-button{order:8!important}.video-js .vjs-picture-in-picture-control{order:9!important}.video-js .vjs-fullscreen-control{order:10!important}.video-js-root-main .video-js.video-js-rounded-corners:after{content:"";position:absolute;bottom:0;left:0;right:0;height:120px;background:linear-gradient(to top,rgba(0,0,0,.8) 0%,rgba(0,0,0,.6) 25%,rgba(0,0,0,.4) 50%,rgba(0,0,0,.2) 75%,transparent 100%);pointer-events:none;opacity:0;transition:opacity .3s ease;z-index:2}.video-js-root-main .video-js.video-js-rounded-corners.vjs-user-active:after,.video-js-root-main .video-js.video-js-rounded-corners.vjs-paused:after,.video-js-root-main .video-js.video-js-rounded-corners.vjs-ended:after{border-bottom-left-radius:12px!important;border-bottom-right-radius:12px!important;opacity:1}.video-js .vjs-control-bar{z-index:6!important}.video-js.vjs-user-active:before,.video-js.vjs-paused:before{content:"";position:absolute;bottom:0;left:0;right:0;height:120px;background:linear-gradient(transparent,rgba(0,0,0,.7));z-index:2;pointer-events:none;transition:opacity .3s ease}.video-js.vjs-user-inactive:not(.vjs-paused):before{opacity:0}.video-js .vjs-progress-control.vjs-control{z-index:7!important}.video-js .vjs-control-bar .vjs-button .vjs-icon-placeholder:before{color:#fff!important;text-shadow:0 1px 2px rgba(0,0,0,.6)!important}.video-js .vjs-control-bar .vjs-time-control{color:#fff!important;text-shadow:0 1px 2px rgba(0,0,0,.6)!important;font-weight:500!important}@media (hover: hover) and (pointer: fine){.vjs-volume-control.vjs-control{top:17px!important}}.video-js .vjs-volume-control .vjs-volume-bar{background:rgba(255,255,255,.3)!important}.video-js .vjs-volume-control .vjs-volume-level{background:#ffffff!important}.video-container{width:100%;max-width:1200px;margin:0 auto;padding:0 20px;box-sizing:border-box;overflow-x:hidden;position:relative}.video-js-root-main{width:100%;max-width:100%;overflow-x:hidden}.video-js.vjs-fluid{width:100%!important;max-width:100%!important}.vjs-play-progress{background-color:#019932!important}.vjs-load-progress,.vjs-progress-holder{background:rgba(255,255,255,.5)!important}.vjs-load-progress>div[data-start][data-end]{background:transparent!important;border:none!important;box-shadow:none!important}.video-js .vjs-progress-control{position:absolute!important;bottom:42px!important;left:0!important;right:0!important;width:100%!important;height:28px!important;z-index:3!important;padding:8px 0!important;margin:0 auto!important}.video-js .vjs-control-bar .vjs-progress-control{display:none!important}.video-js .vjs-progress-control.vjs-control{display:block!important}.video-js .vjs-control-bar .vjs-icon-placeholder,.video-js .vjs-control-bar .vjs-button .vjs-icon-placeholder,.video-js .vjs-control-bar [class*=vjs-icon-]{font-size:1.5em!important}.vjs-mouse-display{z-index:4!important}.vjs-slider-horizontal{top:-5px}.video-js .vjs-spacer-control{flex:1 1 auto!important;flex-grow:1!important;flex-shrink:1!important;min-width:1px!important;height:100%!important}.video-js .vjs-control-bar .vjs-spacer-control{margin-left:auto!important}.video-js .vjs-control-bar .vjs-control{flex:0 0 auto!important;flex-shrink:0!important}.video-js .vjs-autoplay-toggle{margin-right:0!important}.video-js .vjs-picture-in-picture-control{margin-left:6px!important}button{cursor:pointer}.video-js{padding:0;height:100%!important;outline:none}.video-js[tabindex]{outline:none}.video-js .vjs-text-track-display{position:absolute!important;bottom:6em!important;left:0!important;right:0!important;top:0!important;pointer-events:none!important;z-index:10!important}.video-js .vjs-text-track-cue{position:absolute!important;bottom:0!important;left:0!important;right:0!important;text-align:center!important;padding:0!important;background:transparent!important;border:none!important;font-size:1.2em!important;line-height:1.4!important;color:#fff!important;text-shadow:2px 2px 4px rgba(0,0,0,.8)!important;font-family:Arial,sans-serif!important;font-weight:600!important;white-space:pre-line!important;word-wrap:break-word!important;max-width:90%!important;margin:0 auto!important;z-index:11!important}.video-js .vjs-text-track-cue>div{background:rgba(0,0,0,.7)!important;padding:8px 12px!important;border-radius:4px!important;display:inline-block!important;margin:2px 0!important;max-width:100%!important;box-sizing:border-box!important}.video-js.vjs-fullscreen .vjs-text-track-display{bottom:8em!important}.video-js.vjs-fullscreen .vjs-text-track-cue{font-size:1.4em!important;max-width:85%!important}.video-js.vjs-fullscreen .vjs-text-track-cue>div{padding:10px 16px!important;font-size:1em!important}.video-js .vjs-menu-button:not(.vjs-disabled) .vjs-menu{display:none!important}.video-js .vjs-menu-button:not(.vjs-disabled).vjs-lock-showing .vjs-menu,.video-js .vjs-menu-button:not(.vjs-disabled) .vjs-menu.vjs-lock-showing{display:block!important}.video-js .vjs-menu-button:hover .vjs-menu{display:none!important}.video-js .vjs-menu-button.vjs-lock-showing:hover .vjs-menu{display:block!important}.video-js .vjs-menu.vjs-lock-showing{display:block!important;opacity:1!important;visibility:visible!important}.video-js.chapters-open .vjs-menu,.video-js.chapters-open .vjs-menu.vjs-lock-showing,.video-js.chapters-open .vjs-hover-display,.video-js.chapters-open .vjs-time-tooltip,.video-js.chapters-open .vjs-progress-holder .vjs-mouse-display{display:none!important;opacity:0!important;visibility:hidden!important}.video-js .vjs-volume-panel.vjs-hover{transition:ease-in-out .5s!important;width:auto!important}.video-js span.vjs-control-text{position:absolute!important;bottom:125%;left:50%;transform:translate(-50%);background:rgba(0,0,0,.75);color:#fff;padding:6px 8px!important;border-radius:3px;font-size:13px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .3s ease;z-index:1000;box-shadow:0 0 5px #0000004d;height:auto!important;width:auto!important;overflow:visible!important;clip:initial!important}.video-js button.vjs-button:hover span.vjs-control-text{opacity:1}.video-js .vjs-control:focus:before,.video-js .vjs-control:hover:before,.video-js .vjs-control:focus{text-shadow:none!important}.vjs-volume-panel{gap:5px;z-index:1000!important}.video-js .vjs-play-progress.vjs-slider-bar+.vjs-time-tooltip{padding:0}.video-js div.vjs-control{width:auto}.vjs-chapters-button button.vjs-button,.vjs-subtitles-button button.vjs-button,.video-js button.vjs-control{width:36px!important;height:36px!important;display:flex;align-items:center;justify-content:center;padding:0!important}button.vjs-button>.vjs-icon-placeholder:before{line-height:36px;transition:ease-in-out .5s}.vjs-icon-chapters:before,.video-js .vjs-chapters-button .vjs-icon-placeholder:before{font-size:2.1em!important}.video-js .vjs-volume-panel div.vjs-volume-control{height:100%!important;display:flex;align-items:center;justify-content:center;margin:0;width:0;transition:ease-in-out .5s!important;opacity:0}.video-js .vjs-volume-panel div.vjs-volume-control .vjs-volume-bar{margin:0;top:0}@media (pointer: coarse){.video-js .vjs-volume-panel div.vjs-volume-control{width:0!important;opacity:0!important;display:none!important}.video-js .vjs-volume-panel .vjs-mute-control{display:flex!important;opacity:1!important}}@media (max-width: 767px){.video-js .vjs-volume-panel div.vjs-volume-control{width:0!important;opacity:0!important;display:none!important}.video-js .vjs-big-play-button{width:60px!important;height:60px!important;font-size:2.5em!important;border-radius:50%!important}.video-js .vjs-big-play-button .vjs-icon-placeholder:before{font-size:1.2em!important;line-height:60px!important}.video-js-root-main .video-js.video-js-rounded-corners,.video-js-root-main .video-js.video-js-rounded-corners.vjs-has-started,.video-js-root-main .video-js.video-js-rounded-corners.vjs-fullscreen,.video-js-root-main .video-js.video-js-rounded-corners.vjs-paused,.video-js-root-main .video-js.video-js-rounded-corners.vjs-ended,.video-js-root-main .video-js.video-js-rounded-corners.chapters-open,.video-js-root-main .video-js.video-js-rounded-corners .vjs-poster{border-radius:0!important}.video-js-root-main .video-js.video-js-rounded-corners video{border-radius:0!important}.video-js .vjs-progress-control{bottom:42px!important}.video-js .vjs-play-wrapper,.video-js .vjs-next-video-wrapper,.video-js .vjs-volume-wrapper,.video-js .vjs-autoplay-wrapper,.video-js .vjs-chapters-button.vjs-menu-button,.video-js .vjs-subtitles-button.vjs-menu-button,.video-js .vjs-settings-wrapper,.video-js .vjs-pip-wrapper,.video-js .vjs-fullscreen-wrapper{padding:0!important;margin:0 1px!important;width:32px!important;height:32px!important;align-items:center!important;justify-content:center!important}.video-js .vjs-play-wrapper .vjs-play-control,.video-js .vjs-next-video-wrapper .vjs-next-video-control,.video-js .vjs-autoplay-wrapper .vjs-autoplay-toggle,.video-js .vjs-chapters-button.vjs-menu-button button,.video-js .vjs-subtitles-button.vjs-menu-button button,.video-js .vjs-settings-wrapper .vjs-settings-button,.video-js .vjs-pip-wrapper .vjs-picture-in-picture-control,.video-js .vjs-fullscreen-wrapper .vjs-fullscreen-control{width:32px!important;height:32px!important;display:flex!important;align-items:center!important;justify-content:center!important;margin:0!important;padding:0!important}.video-js .vjs-play-wrapper .vjs-play-control .vjs-icon-placeholder{display:flex!important;align-items:center!important;justify-content:center!important;width:100%!important;height:100%!important;line-height:1!important;position:absolute!important;top:48%!important;left:50%!important;transform:translate(-50%,-50%)!important}.video-js .vjs-play-wrapper .vjs-play-control .vjs-icon-placeholder:before{position:static!important;top:auto!important;left:auto!important;transform:none!important;vertical-align:middle!important;line-height:1!important;display:flex!important;align-items:center!important;justify-content:center!important}.vjs-chapters-button button.vjs-button,.vjs-subtitles-button button.vjs-button,.video-js button.vjs-control{width:32px;height:32px}button.vjs-button>.vjs-icon-placeholder:before{line-height:32px}.video-js div.vjs-control{height:32px}.vjs-button>.vjs-icon-placeholder:before{font-size:1.4em!important}.video-js div.vjs-control-bar{padding:0 2px;display:flex!important;flex-wrap:nowrap!important;gap:2px!important}.video-js .vjs-control-bar .vjs-control{flex:0 0 auto!important}.video-js .vjs-control-bar .custom-remaining-time{flex:0 1 auto!important;min-width:fit-content!important}.video-js .vjs-spacer-control{flex:1 1 auto!important;flex-grow:1!important;min-width:8px!important}.video-js .vjs-autoplay-toggle{margin-right:0!important}.video-js .vjs-picture-in-picture-control{margin-left:6px!important}.video-js .vjs-text-track-display{bottom:8em!important}.video-js .vjs-text-track-cue{font-size:1.1em!important;max-width:95%!important}.video-js .vjs-text-track-cue>div{padding:6px 10px!important;font-size:.9em!important;background:rgba(0,0,0,.8)!important}.video-js.vjs-fullscreen .vjs-text-track-display{bottom:10em!important}.video-js.vjs-fullscreen .vjs-text-track-cue{font-size:1.3em!important;max-width:90%!important}.video-js.vjs-fullscreen .vjs-text-track-cue>div{padding:8px 12px!important;font-size:.95em!important}.video-container{padding:0 15px}.video-js .vjs-control:hover:after,.video-js .vjs-control:focus:after,.video-js .vjs-control:active:after{display:none!important;opacity:0!important;visibility:hidden!important}.video-js .vjs-play-control:hover:after,.video-js .vjs-mute-control:hover:after,.video-js .vjs-volume-panel:hover:after,.video-js .vjs-fullscreen-control:hover:after,.video-js .vjs-picture-in-picture-control:hover:after,.video-js .vjs-settings-control:hover:after,.video-js .vjs-chapters-control:hover:after,.video-js .vjs-autoplay-toggle:hover:after,.video-js .vjs-next-video-control:hover:after,.video-js .vjs-remaining-time:hover:after{display:none!important;opacity:0!important;visibility:hidden!important}.video-js button.vjs-button:hover span.vjs-control-text{opacity:0!important;visibility:hidden!important}}@media (max-width: 500px){.video-js .vjs-volume-panel div.vjs-volume-control{width:0!important;opacity:0!important;display:none!important}.video-js .vjs-subtitles-button.vjs-menu-button,.video-js .vjs-subs-caps-button{display:none!important}.video-js .vjs-play-wrapper,.video-js .vjs-next-video-wrapper,.video-js .vjs-volume-wrapper{margin:0 .5px!important;padding:0!important}.vjs-chapters-button button.vjs-button,.vjs-subtitles-button button.vjs-button,.video-js button.vjs-control{width:26px!important;height:26px!important}button.vjs-button>.vjs-icon-placeholder:before{line-height:26px!important}.video-js div.vjs-control{height:26px!important}.vjs-button>.vjs-icon-placeholder:before{font-size:1.3em!important}.video-js div.vjs-control-bar{padding:0 1px!important;gap:0px!important;height:40px!important}.video-js .vjs-autoplay-toggle{margin-right:0!important}.video-js .vjs-progress-control{bottom:28px!important}.video-js .vjs-picture-in-picture-control,.video-js .vjs-descriptions-button,.video-js .vjs-audio-button{display:none!important}.video-js .custom-remaining-time{display:flex!important;visibility:visible!important;opacity:1!important;flex-shrink:0!important;min-width:fit-content!important}.video-js .custom-remaining-time .vjs-remaining-time-display{display:flex!important;visibility:visible!important;opacity:1!important}}@media (max-width: 480px){.video-js-root-main .video-js.video-js-rounded-corners,.video-js-root-main .video-js.video-js-rounded-corners.vjs-has-started,.video-js-root-main .video-js.video-js-rounded-corners.vjs-fullscreen,.video-js-root-main .video-js.video-js-rounded-corners.vjs-paused,.video-js-root-main .video-js.video-js-rounded-corners.vjs-ended,.video-js-root-main .video-js.video-js-rounded-corners.chapters-open,.video-js-root-main .video-js.video-js-rounded-corners .vjs-poster{border-radius:0!important}.video-js-root-main .video-js.video-js-rounded-corners video{border-radius:0!important}.video-container{padding:0 10px}.video-js .vjs-control:hover:after,.video-js .vjs-control:focus:after,.video-js .vjs-control:active:after{display:none!important;opacity:0!important;visibility:hidden!important}.video-js .vjs-play-control:hover:after,.video-js .vjs-mute-control:hover:after,.video-js .vjs-volume-panel:hover:after,.video-js .vjs-fullscreen-control:hover:after,.video-js .vjs-picture-in-picture-control:hover:after,.video-js .vjs-settings-control:hover:after,.video-js .vjs-chapters-control:hover:after,.video-js .vjs-autoplay-toggle:hover:after,.video-js .vjs-next-video-control:hover:after,.video-js .vjs-remaining-time:hover:after{display:none!important;opacity:0!important;visibility:hidden!important}.video-js button.vjs-button:hover span.vjs-control-text{opacity:0!important;visibility:hidden!important}}@media (max-width: 399px){.video-js .vjs-volume-panel div.vjs-volume-control{width:0!important;opacity:0!important;display:none!important}.video-js .vjs-subtitles-button.vjs-menu-button,.video-js .vjs-subs-caps-button{display:none!important}.video-js .vjs-play-wrapper,.video-js .vjs-next-video-wrapper,.video-js .vjs-volume-wrapper{margin:0!important;padding:0!important}.vjs-chapters-button button.vjs-button,.vjs-subtitles-button button.vjs-button,.video-js button.vjs-control{width:28px;height:28px}button.vjs-button>.vjs-icon-placeholder:before{line-height:28px}.video-js div.vjs-control{height:28px}.video-js div.vjs-control-bar{padding:0 1px;gap:1px!important}.video-js .vjs-control-bar .vjs-control{flex:0 0 auto!important}.video-js .vjs-control-bar .custom-remaining-time{flex:0 1 auto!important;min-width:fit-content!important}.video-js .vjs-spacer-control{flex:1 1 auto!important;flex-grow:1!important;min-width:4px!important}.video-js .vjs-autoplay-toggle{margin-right:0!important}.video-js .vjs-picture-in-picture-control{margin-left:4px!important}.video-js .vjs-text-track-display{bottom:7em!important}.video-js .vjs-text-track-cue{font-size:1em!important;max-width:98%!important}.video-js .vjs-text-track-cue>div{padding:4px 8px!important;font-size:.85em!important;background:rgba(0,0,0,.85)!important}.video-js.vjs-fullscreen .vjs-text-track-display{bottom:9em!important}.video-js.vjs-fullscreen .vjs-text-track-cue{font-size:1.2em!important;max-width:95%!important}.video-js.vjs-fullscreen .vjs-text-track-cue>div{padding:6px 10px!important;font-size:.9em!important}.vjs-button>.vjs-icon-placeholder:before{font-size:1.4em!important}}@media (min-width: 1025px){.video-js .vjs-text-track-display{bottom:6em!important}.video-js .vjs-autoplay-toggle{margin-right:0!important}.video-js .vjs-picture-in-picture-control{margin-left:12px!important}.video-js .vjs-text-track-cue{font-size:1.2em!important;max-width:90%!important}.video-js .vjs-text-track-cue>div{padding:8px 12px!important;font-size:1em!important}.video-js.vjs-fullscreen .vjs-text-track-display{bottom:8em!important}}@media (min-width: 768px) and (max-width: 899px){.video-js .vjs-text-track-display{bottom:8em!important}.video-js .vjs-text-track-cue{font-size:1.15em!important;max-width:88%!important}.video-js .vjs-text-track-cue>div{padding:7px 11px!important;font-size:.95em!important}.video-js.vjs-fullscreen .vjs-text-track-display{bottom:9em!important}.video-js .vjs-control:hover:after,.video-js .vjs-control:focus:after,.video-js .vjs-control:active:after{display:none!important;opacity:0!important;visibility:hidden!important}.video-js .vjs-play-control:hover:after,.video-js .vjs-mute-control:hover:after,.video-js .vjs-volume-panel:hover:after,.video-js .vjs-fullscreen-control:hover:after,.video-js .vjs-picture-in-picture-control:hover:after,.video-js .vjs-settings-control:hover:after,.video-js .vjs-chapters-control:hover:after,.video-js .vjs-autoplay-toggle:hover:after,.video-js .vjs-next-video-control:hover:after,.video-js .vjs-remaining-time:hover:after{display:none!important;opacity:0!important;visibility:hidden!important}.video-js button.vjs-button:hover span.vjs-control-text{opacity:0!important;visibility:hidden!important}}.vjs-svg-icon{display:inline-block;background-repeat:no-repeat;background-position:center;fill:currentColor;height:1.8em;width:1.8em}.vjs-svg-icon:before{content:none!important}.vjs-svg-icon:hover,.vjs-control:focus .vjs-svg-icon{filter:drop-shadow(0 0 .25em #fff)}.vjs-modal-dialog .vjs-modal-dialog-content,.video-js .vjs-modal-dialog,.vjs-button>.vjs-icon-placeholder:before,.video-js .vjs-big-play-button .vjs-icon-placeholder:before{position:absolute;top:0;left:0;width:100%;height:100%}.vjs-button>.vjs-icon-placeholder:before,.video-js .vjs-big-play-button .vjs-icon-placeholder:before{text-align:center}@font-face{font-family:VideoJS;src:url(data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAABTsAAsAAAAAIpAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAADsAAABUIIslek9TLzIAAAFEAAAAPgAAAFZRiV32Y21hcAAAAYQAAAEJAAAD5p42+VxnbHlmAAACkAAADtIAABckI4l972hlYWQAABFkAAAAKwAAADYsvIjpaGhlYQAAEZAAAAAdAAAAJA+RCL1obXR4AAARsAAAABcAAAC8Q2YAAGxvY2EAABHIAAAAYAAAAGB7CIGGbWF4cAAAEigAAAAfAAAAIAFAAI9uYW1lAAASSAAAASUAAAIK1cf1oHBvc3QAABNwAAABfAAAAnXdFqh1eJxjYGRgYOBiMGCwY2BycfMJYeDLSSzJY5BiYGGAAJA8MpsxJzM9kYEDxgPKsYBpDiBmg4gCACY7BUgAeJxjYGR7yDiBgZWBgaWQ5RkDA8MvCM0cwxDOeI6BgYmBlZkBKwhIc01hcPjI+FGPHcRdyA4RZgQRADaGCyYAAHic7dPXbcMwAEXRK1vuvffem749XAbKV3bjBA6fXsaIgMMLEWoQJaAEFKNnlELyQ4K27zib5PNF6vl8yld+TKr5kH0+cUw0xv00Hwvx2DResUyFKrV4XoMmLdp06NKjz4AhI8ZMmDJjzoIlK9Zs2LJjz4EjJ85cuHLjziPe/0UWL17mf2tqKLz/9jK9f8tXpGCoRdPKhtS0RqFkWvVQNtSKoVYNtWaoddPXEBqG2jQ9XWgZattQO4baNdSeofYNdWCoQ0MdGerYUCeGOjXUmaHODXVhqEtDXRnq2lA3hro11J2h7g31YKhHQz0Z6tlQL4Z6NdSbod4N9WGoT9MfHF6GmhnZLxyDcRMAAAB4nJ1YC1hU17U+a5/HMA4iA3NmVBDmoQwP5TFnHlFeA4gYiUFRQINoSCBAyK3G2yi+0aipYtFcHYo2xsb4NiY3+VrNxSaX5uvt495ozNdoYoxmem2/L8HGpLc+InB279pnhlGr5mvL4eyz99nrrL32eu1/DQcc/okdYgdHOA6MQKp4r9gx0EcMHMezOalVasW5BM7NcXoSb9fFgE6KtSSBxWz1FYDPG+vMBGcKb9cebu2VS5s2aaTkCvRSf6C7Y+Ppibm5E09v7IDs2/3uZQtbD0zIyppwoHXh/93ukmyYgdePNRp65p5v+3v/9otQl2O7wP34cT88p8Md2YxpYLQZoRcy6FlSBRnwnGAe6BPMSCZo+7NJVqS0cE4uHendzhSnbPH6TDqL1+Nme5LZXkCHnGyoH0kne30WH+gswhm3q+pt/mTas9NLS64GnjmSlTPw0wVQT/ewRaBgxtydy3cuUB9/6SW+vb5yRvr+t0eOfPKJZ/9t3+4tL7xj32Xd3thCxi+ge6ifdsAN+l5+wi5HQ/cCoeull1AszS7CUfEcJzK7sKWJAdJhCd0sPM4+EY7QDm5ov08hXRQXE5bf6PV5Q5+IjW7X7Nku92Ask4l2hCRRD6TPqISiCJeQna3SCFwrhrNzXHzo4yFevBwxpzxk8WCIIfkvVEKVy32SbT8n68gzgaslpaiO2zIGIyuSb7RNf9HSuN26y/7OC1tgEmpiyA6aD4qcgTOiLThwGG0eB694FI8NHLLN6OBlRVaMxNAFS4JdXUG6mW8PwpKuYLCLXKGbu8iwYNdgO06Sn3Th+/vyZAxs8Ro30DjHe9gy8Fywi24OMm7Qyzh3MTZVOMYhLBnoC+J79lpTUyQmorjhnMwlcQ5uPEYGpDjsOkkH49BjQLQBqs3jFtFdJNlksYmoQFDArLh8Xh+Qd6Ghcsb6FUuehDi+U/lqD71K/qiegeV1imcwjl7ExwiSrf4BZyCujV6cVcFo6VX+G9IcPyFjJnUufbU/jzrL1X99as36reXl8K32nFaOr+E8jWJEcJ55DpMVfSMe95/AJaOsGBH2GJCNpiRQbK4C8BjdmQA22QY2j03Em13i2YHqtNLU1NI04Yj2HJgA6fQc6VPNpA/D+Ryks554NnVy2mB72uRUfPLsqR4N0LOBQKArwJYO+5W2fgZX8oC1HR6HjNaQTVIG2FPwnTcXXGZZfNB7TE6pTKZUwaw91XWLAoFFGcnB5PHjsckgBjbWutrL+0h5Y1xw3DRGDumsnXb3MJwXrJIN5U7m0rgJ3yG5w4he5ckFG4pmNEkOm0/xOO4r4yL87wqtQM+hiJIVp+6iG2wPBKD35ElGkDx+UfC2v1mFG1o+M3AjNFty8biKMXwzyxnZLds8wYD2BxmCPHAldPOeLsy/0BugftYhVYFAhO8SqQ0j3oK7dHJZnI/jxmUS4onlxskSF8thmvNZjIrRZwEPxr0lBuLRuz3oy/FOHCsxwOPYh2M+e9u3J5pgPYz9gp6G7C9m0A11F9ddqKMfV+4sbq45/YspOysXvT+3pdFdYNg2fHbW8Dz301MqDVuGrz0Fuh0YMW8mddrpqzST7rV9BcvqPoNvadRndWp0p8HvbiqrFj5yFQ/vNFSXDpxpLEFWp+DcrF3FT1afWshFcmCfeAMjEvO65i0Y6XijQfSRPWx3TV/Df7Km3E1l+kLt56s/rwVzuRusNMhudznkwdLaS+QNdeal2jDPP4l9qHc98vTYZOSkxzD+njBWVWjFPKgipx6DkWvXQiW8OYcewVHE5yukinDMcfGgc0opDltYKDxIGBedkzc6jSfE7tlvESCDFUw0Hx0opS+U0lHCxNottbNWSxX9zZVvEhKWUSyBpaXwBc2a98M6UqPeXAs/GDon8Ax7hsthO8cM5HU7Ad0UvRR9lHmtyQKZ4MAe814X5h9MSUkQmhf96eVJ6p90OjIiqSIjvykvr2l5U55O/fPQKD+jIomYpNyGJQ25uQ2kIikRfAmuBHCPsWqkSDEqgZ5KDI2sifS/R43MbZg0idFHbCPNxXxZws1ACVE6hAhOdJwRkJLFBLPZpRGYJ50pko6XzMkgmSx40ljik6AQcKhFnLcQE6rF7PXFe1Ocoj0T3AXgSgJTDIhHRfHlYZKuSzc6uievOJGXY+i5GJkkTp7UM3y0LqATDbtFcbdBxO7o4T25JYlEjoH0uynUh8rapkxp62QN70svSF+hT4gGPlovlmcm/ComLi7mV4kTykV9NFWjE/QrwgQ4uIcAP0rQF4VZYRP2o3PhHHzfPMJj9Ir+uzKUlrH49ntT18AVvj1sc3YGjUT/Mt2Dxawa8ArcA7bCQIpvfwAYu22vEG/No/5RvPdA7g+AelLrPwzy+LtkLPhnpIxH14m4EYq8eeMHbPEPNm6G7Nv9B4jcFPZ8bJj0SEjP3MPgQdKTqqEoy2v6G32P/Y6dxOv04AxnoAeq+GILvUavtYCBXm+BaIhuodcfrN5B/V2EYMCPh+SxavjGyPwV0x4CJgUPGT0mQaODGBACIJZGsMXwAD0LGXx7l3CdAcKMIKI+f5CepWeD0BvyU/GcdBxPF8SwejC6LGZmAURFdsSWKR5HyHld2kbdIZO1Ixx+bnnzU7n5+blPNV9jnUDWhP2tC68tbN3PVIldsQPxSAcSpjOav7Q05uXn5zW2LLvDXn9B6syscPy9iDLEMmSrJz6nYuWMipukjM0AH8JkGS+XFyMRkzSCH7KD/hwm172SAyZYumHlefr5AddrtA0O0TnwaVZxcRY9Bfukn9Gf05N1r9DV9MoBsJ1f+ZrqUvtPHizJAntWybv7hmqLt6QLuK6ZS9Fqi1jO5rDoWPZXXII5Tgajg53cIXCjDCGIcYrRIY2n6+mXOa/W0bdhau3ryiEYe2FV/5oeaIYK/5w5frCyll6/cYO8DiNhw6t1MBWmznt91QX62UF1N7l0eHBZTRGpKaqpKVIPF9UcIzmReud9TSY75+K899GHbBu6wjoR7RKKZVYiYxSPf5/2wJT5e3NAhmUbVn5KLx1Ujg0+BGvpAIh0DezInTkzF37KVocxrKU3r1+XLtAe2lO3l66kfQfB/unKY+q8N375Ru8bc4pJXfEcESU95q+p8ZNZRTWH1d9FzvUdYXk5rLkcdkEisoKKVHQW/b3GEx6tPaYcoJfOr9wAbSBnv1IHpep0OExr4LPMkpJM+j7sly7UHkOzXjoAZljHCGiyegtNlwljM0v+c19ET9Pvst09a2Mtgcf5/ZSzYO5h1156+eyydfAsxGa9XAuF6vzjh6CssLq6ECysperXX0sX5h5ZdpZe3guxsGIPEtHk/aqXX1hVqP5HYVVVISkrrNqvXorIc+5Ou91Hnr/LcD2afi6eX7UBloOcs7cOpqgGaNfs1g7bNbs9z6wASaylN69d0/TFTIz6Ws8+oGV3mE2612wRTHKcVUbhjKadebloMc+dyXgMVtVK6BwMB/+mVW09igdRBWaRtNQX59d/VD//xdQ0TCiYNj1KT9sq6Wdu5WTbqk3qDXyDaLa1fv621LS01G3z61sD6lH8lAxDLicV921s6Bf92JOYvzNYCL1khbqBXEFUzC521N5NyzNaQIWhjyFyDoBIVrAjmv2UEaLlI+c6zw1jmVIPLLLZZUTj6GxGHW+mq1tgHXR2D85p4Q934+jLbtjVLcyCdS10NVzpHqxp4Q/hK7WopY/NRGx9HGsPGdFjOjcpjBnGYMVqY/4eqT5khWEHWUup2A/pTw7pdWgsWft7ETUERL96nRg0HNFPmCYba6pylECaExX89A9WLUOVB4oKLu/o1oqSYHCgLzBUlAz8hNFDRpeSU1XT+LRmDUgPaKbYdHDn9suF/tu13nHJij0N97LfS0QmqONuyONk7zvUI6Qa0pF9f2+oABL92AT6e0U//z9YqAiWtJLU1JK0gS+1aacwamiNqK067u9ZQ8f1d4qLodMzz3uL89Z68V/Hnr++hXWUuHgw8dfi972PeTyPefu3aNNucemQ74qFuIaJnVkOu4Q+yjuwmmC1FqZpl1i4uzoPxjkpPf3Xv545tl26Rr+dOvUd+omqJzch9dOeU7f10Y64nMcKK137DccIZq2WdXtdZjbEoLSzHwiMtrjYLDxpHQW8gjMX6XFYAE2zSWVD04EGYSs9MbO6sEo20BMEAB4mpvSypsKjZ4Stgzb+c3A9/MQT2+vrBy+qvyFxLUtLlSRF/Ri2wjfZ2dus2Q8lXx4608/jnqK5OOap6NY2PSjYYnECCjiEeLJll/pbmqfeIK+ps3+MxrlEhqmTPipVP7kqlF4VhpEb6r+Q7YOJg38kJ9SHBf3NBl6+9YchfbUjb5ahLSzUM3kPHmwFAsZ5rpai0S7E5xWzZ1j+fW7zsUWP2g5NXTw52ySCTrgG0+lbw60l2Y/CB185CoA8NK+tbRKxfjy6pm5hzQRRR+cMqv1Jbiw6STivtEvt3DRcy0QEh92JlUGo2PG4tSKHl00YD6xc8CK+YPYyy3io2lN8BcSjKRzrIV6ypOAobqxViJPaT9M9Hy5szY33mp7OX/Zu89L/7Ww5vqY2Y8b0pKgoiUhG5cPDPzq8qTV/WkzUOIvXVVA96kmjcBrr3HrYC/Wn+fYP6Z7T1rqy3zknbvqma/FvVk96fNXGkuaXrdHW5JGSxZT/2I/O73v+yNWafMdzc5NdxYurHs6h86e01sLKLz9EBrg+x36rxAaED7hRnAMx7Vzu+9wabh3zG8XLQjx0ablUJzmxdErxYT3kzQSd0SSafVqF5PXgpp0OyYJ1EyNHpGUZmvK575ySzd85JSqF7IBzSAbMM04+MbE58xF3/njXOGecSaermlw2y9PsSQdytLJVr8t+wg+rR8cZYoeNxVIzNdk3Bngi8U5LAlgTFoQnzJCa5EsCgYhCaGL+qPj7TdhG31p9tej3R04N//PXxNwJvyUqwaJqRPJY98TJ5TPndmflRAkAhBfe46sfKW5wizSge08Xb7Ca/GUVs55trngkKkrUS2WPzKttaaqq+idmahugkY+W6fN0I6i3gPt/x88U4wAAeJxjYGRgYADiGU9YXsXz23xl4GZnAIFH7fO+IdMc/WBxDgYmEAUASbMKwAB4nGNgZGBgZwABjj4Ghv//OfoZGBlQgT4ARicDZAAAAHicY2BgYGAfxJijD8Fmu4EqBwCSpgKpAAAAAAAADgBoAH4AzADgAQIBQgFsAZgB7gIuAooC0AL8A2IDjAOoA+AEMASwBNoFCAVaBcAGCAYuBnAGrAb2B04HigfSCCoIcAiGCJwIyAkkCVYJiAmsCfIKIApWCsQLknicY2BkYGDQZ2hmYGcAASYg5gJCBob/YD4DABqrAdAAeJxdkE1qg0AYhl8Tk9AIoVDaVSmzahcF87PMARLIMoFAl0ZHY1BHdBJIT9AT9AQ9RQ9Qeqy+yteNMzDzfM+88w0K4BY/cNAMB6N2bUaPPBLukybCLvleeAAPj8JD+hfhMV7hC3u4wxs7OO4NzQSZcI/8Ltwnfwi75E/hAR7wJTyk/xYeY49fYQ/PztM+jbTZ7LY6OWdBJdX/pqs6NYWa+zMxa13oKrA6Uoerqi/JwtpYxZXJ1coUVmeZUWVlTjq0/tHacjmdxuL90OR8O0UEDYMNdtiSEpz5XQGqzlm30kzUdAYFFOb8R7NOZk0q2lwAyz1i7oAr1xoXvrOgtYhZx8wY5KRV269JZ5yGpmzPTjQhvY9je6vEElPOuJP3mWKnP5M3V+YAAAB4nG2ReVPbMBDF/ULi2EkDBFqO3gdHLxUzDB9IkdexBllydRD49ihO3Ckz7B/a31utZnafkkGyiXnyclxhgB0MMUKKMTLkmGCKV5hhF3vYxxwHOMRrvMERjnGCU7zFO7zHB3zEJ3zGF3zFN5zhHBe4xHf8wE/8wm8w/MEVimTYKv44XR9MSCsUjVoeHE3vjQoNsSZ4mmxZmVWPjSz7jlou6/0qKOWEJdKMtCe793/hQfqxa6XWZHMXFl56RS4TvPXSaDeoy0zUUZB109KstDK8lHo5q6Qi1hcOnqkImubPS6aqRq7mlnaEWabub4iYblba3SRmgldS0+FWdhNtt04F14JUaqkl7tcpOpJtErvNt3Bd9HRT5JWxK25Ldjvp6br4hzfFiIdSmlzTg2fSUzNrLd1LE1ynxq4OVaVoKLjzJ60UPtj1RKzHzsbjly6inVnFBS2MucviPncU7Rr7lfTxRepDs1A2j3ZHRc7PuzFYSfE3ZOd4kjwBy227hA==) format("woff");font-weight:400;font-style:normal}.vjs-icon-play,.video-js .vjs-play-control .vjs-icon-placeholder,.video-js .vjs-big-play-button .vjs-icon-placeholder:before{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-play:before,.video-js .vjs-play-control .vjs-icon-placeholder:before,.video-js .vjs-big-play-button .vjs-icon-placeholder:before{content:""}.vjs-icon-play-circle{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-play-circle:before{content:""}.vjs-icon-pause,.video-js .vjs-play-control.vjs-playing .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-pause:before,.video-js .vjs-play-control.vjs-playing .vjs-icon-placeholder:before{content:""}.vjs-icon-volume-mute,.video-js .vjs-mute-control.vjs-vol-0 .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-volume-mute:before,.video-js .vjs-mute-control.vjs-vol-0 .vjs-icon-placeholder:before{content:""}.vjs-icon-volume-low,.video-js .vjs-mute-control.vjs-vol-1 .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-volume-low:before,.video-js .vjs-mute-control.vjs-vol-1 .vjs-icon-placeholder:before{content:""}.vjs-icon-volume-mid,.video-js .vjs-mute-control.vjs-vol-2 .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-volume-mid:before,.video-js .vjs-mute-control.vjs-vol-2 .vjs-icon-placeholder:before{content:""}.vjs-icon-volume-high,.video-js .vjs-mute-control .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-volume-high:before,.video-js .vjs-mute-control .vjs-icon-placeholder:before{content:""}.vjs-icon-fullscreen-enter,.video-js .vjs-fullscreen-control .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-fullscreen-enter:before,.video-js .vjs-fullscreen-control .vjs-icon-placeholder:before{content:""}.vjs-icon-fullscreen-exit,.video-js.vjs-fullscreen .vjs-fullscreen-control .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-fullscreen-exit:before,.video-js.vjs-fullscreen .vjs-fullscreen-control .vjs-icon-placeholder:before{content:""}.vjs-icon-spinner{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-spinner:before{content:""}.vjs-icon-subtitles,.video-js .vjs-subs-caps-button .vjs-icon-placeholder,.video-js.video-js:lang(en-GB) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js.video-js:lang(en-IE) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js.video-js:lang(en-AU) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js.video-js:lang(en-NZ) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js .vjs-subtitles-button .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-subtitles:before,.video-js .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js.video-js:lang(en-GB) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js.video-js:lang(en-IE) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js.video-js:lang(en-AU) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js.video-js:lang(en-NZ) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js .vjs-subtitles-button .vjs-icon-placeholder:before{content:""}.vjs-icon-captions,.video-js:lang(en) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js:lang(fr-CA) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js .vjs-captions-button .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-captions:before,.video-js:lang(en) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js:lang(fr-CA) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js .vjs-captions-button .vjs-icon-placeholder:before{content:""}.vjs-icon-hd{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-hd:before{content:""}.vjs-icon-chapters,.video-js .vjs-chapters-button .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-chapters:before,.video-js .vjs-chapters-button .vjs-icon-placeholder:before{content:""}.vjs-icon-downloading{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-downloading:before{content:""}.vjs-icon-file-download{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-file-download:before{content:""}.vjs-icon-file-download-done{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-file-download-done:before{content:""}.vjs-icon-file-download-off{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-file-download-off:before{content:""}.vjs-icon-share{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-share:before{content:""}.vjs-icon-cog{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-cog:before{content:""}.vjs-icon-square{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-square:before{content:""}.vjs-icon-circle,.vjs-seek-to-live-control .vjs-icon-placeholder,.video-js .vjs-volume-level,.video-js .vjs-play-progress{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-circle:before,.vjs-seek-to-live-control .vjs-icon-placeholder:before,.video-js .vjs-volume-level:before,.video-js .vjs-play-progress:before{content:""}.vjs-icon-circle-outline{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-circle-outline:before{content:""}.vjs-icon-circle-inner-circle{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-circle-inner-circle:before{content:""}.vjs-icon-cancel,.video-js .vjs-control.vjs-close-button .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-cancel:before,.video-js .vjs-control.vjs-close-button .vjs-icon-placeholder:before{content:""}.vjs-icon-repeat{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-repeat:before{content:""}.vjs-icon-replay,.video-js .vjs-play-control.vjs-ended .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-replay:before,.video-js .vjs-play-control.vjs-ended .vjs-icon-placeholder:before{content:""}.vjs-icon-replay-5,.video-js .vjs-skip-backward-5 .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-replay-5:before,.video-js .vjs-skip-backward-5 .vjs-icon-placeholder:before{content:""}.vjs-icon-replay-10,.video-js .vjs-skip-backward-10 .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-replay-10:before,.video-js .vjs-skip-backward-10 .vjs-icon-placeholder:before{content:""}.vjs-icon-replay-30,.video-js .vjs-skip-backward-30 .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-replay-30:before,.video-js .vjs-skip-backward-30 .vjs-icon-placeholder:before{content:""}.vjs-icon-forward-5,.video-js .vjs-skip-forward-5 .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-forward-5:before,.video-js .vjs-skip-forward-5 .vjs-icon-placeholder:before{content:""}.vjs-icon-forward-10,.video-js .vjs-skip-forward-10 .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-forward-10:before,.video-js .vjs-skip-forward-10 .vjs-icon-placeholder:before{content:""}.vjs-icon-forward-30,.video-js .vjs-skip-forward-30 .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-forward-30:before,.video-js .vjs-skip-forward-30 .vjs-icon-placeholder:before{content:""}.vjs-icon-audio,.video-js .vjs-audio-button .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-audio:before,.video-js .vjs-audio-button .vjs-icon-placeholder:before{content:""}.vjs-icon-next-item{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-next-item:before{content:""}.vjs-icon-previous-item{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-previous-item:before{content:""}.vjs-icon-shuffle{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-shuffle:before{content:""}.vjs-icon-cast{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-cast:before{content:""}.vjs-icon-picture-in-picture-enter,.video-js .vjs-picture-in-picture-control .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-picture-in-picture-enter:before,.video-js .vjs-picture-in-picture-control .vjs-icon-placeholder:before{content:""}.vjs-icon-picture-in-picture-exit,.video-js.vjs-picture-in-picture .vjs-picture-in-picture-control .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-picture-in-picture-exit:before,.video-js.vjs-picture-in-picture .vjs-picture-in-picture-control .vjs-icon-placeholder:before{content:""}.vjs-icon-facebook{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-facebook:before{content:""}.vjs-icon-linkedin{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-linkedin:before{content:""}.vjs-icon-twitter{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-twitter:before{content:""}.vjs-icon-tumblr{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-tumblr:before{content:""}.vjs-icon-pinterest{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-pinterest:before{content:""}.vjs-icon-audio-description,.video-js .vjs-descriptions-button .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-audio-description:before,.video-js .vjs-descriptions-button .vjs-icon-placeholder:before{content:""}.video-js{display:inline-block;vertical-align:top;box-sizing:border-box;color:#fff;background-color:#000;position:relative;padding:0;font-size:10px;line-height:1;font-weight:400;font-style:normal;font-family:Arial,Helvetica,sans-serif;word-break:initial}.video-js:-moz-full-screen{position:absolute}.video-js:-webkit-full-screen{width:100%!important;height:100%!important}.video-js[tabindex="-1"]{outline:none}.video-js *,.video-js *:before,.video-js *:after{box-sizing:inherit}.video-js ul{font-family:inherit;font-size:inherit;line-height:inherit;list-style-position:outside;margin:0}.video-js.vjs-fluid,.video-js.vjs-16-9,.video-js.vjs-4-3,.video-js.vjs-9-16,.video-js.vjs-1-1{width:100%;max-width:100%}.video-js.vjs-fluid:not(.vjs-audio-only-mode),.video-js.vjs-16-9:not(.vjs-audio-only-mode),.video-js.vjs-4-3:not(.vjs-audio-only-mode),.video-js.vjs-9-16:not(.vjs-audio-only-mode),.video-js.vjs-1-1:not(.vjs-audio-only-mode){height:0}.video-js.vjs-16-9:not(.vjs-audio-only-mode){padding-top:56.25%}.video-js.vjs-4-3:not(.vjs-audio-only-mode){padding-top:75%}.video-js.vjs-9-16:not(.vjs-audio-only-mode){padding-top:177.7777777778%}.video-js.vjs-1-1:not(.vjs-audio-only-mode){padding-top:100%}.video-js.vjs-fill:not(.vjs-audio-only-mode){width:100%;height:100%}.video-js .vjs-tech{position:absolute;top:0;left:0;width:100%;height:100%}.video-js.vjs-audio-only-mode .vjs-tech{display:none}body.vjs-full-window,body.vjs-pip-window{padding:0;margin:0;height:100%}.vjs-full-window .video-js.vjs-fullscreen,body.vjs-pip-window .video-js{position:fixed;overflow:hidden;z-index:1000;left:0;top:0;bottom:0;right:0}.video-js.vjs-fullscreen:not(.vjs-ios-native-fs),body.vjs-pip-window .video-js{width:100%!important;height:100%!important;padding-top:0!important;display:block}.video-js.vjs-fullscreen.vjs-user-inactive{cursor:none}.vjs-pip-container .vjs-pip-text{position:absolute;bottom:10%;font-size:2em;background-color:#000000b3;padding:.5em;text-align:center;width:100%}.vjs-layout-tiny.vjs-pip-container .vjs-pip-text,.vjs-layout-x-small.vjs-pip-container .vjs-pip-text,.vjs-layout-small.vjs-pip-container .vjs-pip-text{bottom:0;font-size:1.4em}.vjs-hidden{display:none!important}.vjs-disabled{opacity:.5;cursor:default}.video-js .vjs-offscreen{height:1px;left:-9999px;position:absolute;top:0;width:1px}.vjs-lock-showing{display:block!important;opacity:1!important;visibility:visible!important}.vjs-no-js{padding:20px;color:#fff;background-color:#000;font-size:18px;font-family:Arial,Helvetica,sans-serif;text-align:center;width:300px;height:150px;margin:0 auto}.vjs-no-js a,.vjs-no-js a:visited{color:#66a8cc}.video-js .vjs-big-play-button{font-size:3em;line-height:1.5em;height:1.63332em;width:3em;display:block;position:absolute;top:50%;left:50%;padding:0;margin-top:-.81666em;margin-left:-1.5em;cursor:pointer;opacity:1;border:.06666em solid #fff;background-color:#2b333f;background-color:#2b333fb3;border-radius:.3em;transition:all .4s}.vjs-big-play-button .vjs-svg-icon{width:1em;height:1em;position:absolute;top:50%;left:50%;line-height:1;transform:translate(-50%,-50%)}.video-js:hover .vjs-big-play-button,.video-js .vjs-big-play-button:focus{border-color:#fff;background-color:#73859f;background-color:#73859f80;transition:all 0s}.vjs-controls-disabled .vjs-big-play-button,.vjs-has-started .vjs-big-play-button,.vjs-using-native-controls .vjs-big-play-button,.vjs-error .vjs-big-play-button{display:none}.vjs-has-started.vjs-paused.vjs-show-big-play-button-on-pause:not(.vjs-seeking,.vjs-scrubbing,.vjs-error) .vjs-big-play-button{display:block}.video-js button{background:none;border:none;color:inherit;display:inline-block;font-size:inherit;line-height:inherit;text-transform:none;text-decoration:none;transition:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.video-js.vjs-spatial-navigation-enabled .vjs-button:focus{outline:.0625em solid white;box-shadow:none}.vjs-control .vjs-button{width:100%;height:100%}.video-js .vjs-control.vjs-close-button{cursor:pointer;height:3em;position:absolute;right:0;top:.5em;z-index:2}.video-js .vjs-modal-dialog{background:rgba(0,0,0,.8);background:linear-gradient(180deg,rgba(0,0,0,.8),rgba(255,255,255,0));overflow:auto}.video-js .vjs-modal-dialog>*{box-sizing:border-box}.vjs-modal-dialog .vjs-modal-dialog-content{font-size:1.2em;line-height:1.5;padding:20px 24px;z-index:1}.vjs-menu-button{cursor:pointer}.vjs-menu-button.vjs-disabled{cursor:default}.vjs-workinghover .vjs-menu-button.vjs-disabled:hover .vjs-menu{display:none}.vjs-menu .vjs-menu-content{display:block;padding:0;margin:0;font-family:Arial,Helvetica,sans-serif;overflow:auto}.vjs-menu .vjs-menu-content>*{box-sizing:border-box}.vjs-scrubbing .vjs-control.vjs-menu-button:hover .vjs-menu{display:none}.vjs-menu li{display:flex;justify-content:center;list-style:none;margin:0;padding:.2em 0;line-height:1.4em;font-size:1.2em;text-align:center;text-transform:lowercase}.vjs-menu li.vjs-menu-item:focus,.vjs-menu li.vjs-menu-item:hover,.js-focus-visible .vjs-menu li.vjs-menu-item:hover{background-color:#73859f;background-color:#73859f80}.vjs-menu li.vjs-selected,.vjs-menu li.vjs-selected:focus,.vjs-menu li.vjs-selected:hover,.js-focus-visible .vjs-menu li.vjs-selected:hover{background-color:#fff;color:#2b333f}.vjs-menu li.vjs-selected .vjs-svg-icon,.vjs-menu li.vjs-selected:focus .vjs-svg-icon,.vjs-menu li.vjs-selected:hover .vjs-svg-icon,.js-focus-visible .vjs-menu li.vjs-selected:hover .vjs-svg-icon{fill:#000}.video-js .vjs-menu *:not(.vjs-selected):focus:not(:focus-visible),.js-focus-visible .vjs-menu *:not(.vjs-selected):focus:not(.focus-visible){background:none}.vjs-menu li.vjs-menu-title{text-align:center;text-transform:uppercase;font-size:1em;line-height:2em;padding:0;margin:0 0 .3em;font-weight:700;cursor:default}.vjs-menu-button-popup .vjs-menu{display:none;position:absolute;bottom:0;width:10em;left:-3em;height:0em;margin-bottom:1.5em;border-top-color:#2b333fb3}.vjs-pip-window .vjs-menu-button-popup .vjs-menu{left:unset;right:1em}.vjs-menu-button-popup .vjs-menu .vjs-menu-content{background-color:#2b333f;background-color:#2b333fb3;position:absolute;width:100%;bottom:1.5em;max-height:15em}.vjs-layout-tiny .vjs-menu-button-popup .vjs-menu .vjs-menu-content,.vjs-layout-x-small .vjs-menu-button-popup .vjs-menu .vjs-menu-content{max-height:5em}.vjs-layout-small .vjs-menu-button-popup .vjs-menu .vjs-menu-content{max-height:10em}.vjs-layout-medium .vjs-menu-button-popup .vjs-menu .vjs-menu-content{max-height:14em}.vjs-layout-large .vjs-menu-button-popup .vjs-menu .vjs-menu-content,.vjs-layout-x-large .vjs-menu-button-popup .vjs-menu .vjs-menu-content,.vjs-layout-huge .vjs-menu-button-popup .vjs-menu .vjs-menu-content{max-height:25em}.vjs-workinghover .vjs-menu-button-popup.vjs-hover .vjs-menu,.vjs-menu-button-popup .vjs-menu.vjs-lock-showing{display:block}.video-js .vjs-menu-button-inline{transition:all .4s;overflow:hidden}.video-js .vjs-menu-button-inline:before{width:2.222222222em}.video-js .vjs-menu-button-inline:hover,.video-js .vjs-menu-button-inline:focus,.video-js .vjs-menu-button-inline.vjs-slider-active{width:12em}.vjs-menu-button-inline .vjs-menu{opacity:0;height:100%;width:auto;position:absolute;left:4em;top:0;padding:0;margin:0;transition:all .4s}.vjs-menu-button-inline:hover .vjs-menu,.vjs-menu-button-inline:focus .vjs-menu,.vjs-menu-button-inline.vjs-slider-active .vjs-menu{display:block;opacity:1}.vjs-menu-button-inline .vjs-menu-content{width:auto;height:100%;margin:0;overflow:hidden}.video-js .vjs-control-bar{display:none;width:100%;position:absolute;bottom:0;left:0;right:0;height:3em;background-color:#2b333f;background-color:#2b333fb3}.video-js.vjs-spatial-navigation-enabled .vjs-control-bar{gap:1px}.video-js:not(.vjs-controls-disabled,.vjs-using-native-controls,.vjs-error) .vjs-control-bar.vjs-lock-showing{display:flex!important}.vjs-has-started .vjs-control-bar,.vjs-audio-only-mode .vjs-control-bar{display:flex;visibility:visible;opacity:1;transition:visibility .1s,opacity .1s}.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar{visibility:visible;opacity:0;pointer-events:none;transition:visibility 1s,opacity 1s}.vjs-controls-disabled .vjs-control-bar,.vjs-using-native-controls .vjs-control-bar,.vjs-error .vjs-control-bar{display:none!important}.vjs-audio.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar,.vjs-audio-only-mode.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar{opacity:1;visibility:visible;pointer-events:auto}.video-js .vjs-control{position:relative;text-align:center;margin:0;padding:0;height:100%;width:4em;flex:none}.video-js .vjs-control.vjs-visible-text{width:auto;padding-left:1em;padding-right:1em}.vjs-button>.vjs-icon-placeholder:before{font-size:1.8em;line-height:1.67}.vjs-button>.vjs-icon-placeholder{display:block}.vjs-button>.vjs-svg-icon{display:inline-block}.video-js .vjs-control:focus:before,.video-js .vjs-control:hover:before,.video-js .vjs-control:focus{text-shadow:0em 0em 1em white}.video-js *:not(.vjs-visible-text)>.vjs-control-text{border:0;clip:rect(0 0 0 0);height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.video-js .vjs-custom-control-spacer{display:none}.video-js .vjs-progress-control{cursor:pointer;flex:auto;display:flex;align-items:center;min-width:4em;touch-action:none}.video-js .vjs-progress-control.disabled{cursor:default}.vjs-live .vjs-progress-control{display:none}.vjs-liveui .vjs-progress-control{display:flex;align-items:center}.video-js .vjs-progress-holder{flex:auto;transition:all .2s;height:.3em}.video-js .vjs-progress-control .vjs-progress-holder{margin:0 10px}.video-js .vjs-progress-control:hover .vjs-progress-holder,.video-js.vjs-scrubbing.vjs-touch-enabled .vjs-progress-control .vjs-progress-holder{font-size:1.6666666667em}.video-js .vjs-progress-control:hover .vjs-progress-holder.disabled{font-size:1em}.video-js .vjs-progress-holder .vjs-play-progress,.video-js .vjs-progress-holder .vjs-load-progress,.video-js .vjs-progress-holder .vjs-load-progress div{position:absolute;display:block;height:100%;margin:0;padding:0;width:0}.video-js .vjs-play-progress{background-color:#fff}.video-js .vjs-play-progress:before{font-size:.9em;position:absolute;right:-.5em;line-height:.35em;z-index:1}.vjs-svg-icons-enabled .vjs-play-progress:before{content:none!important}.vjs-play-progress .vjs-svg-icon{position:absolute;top:-.35em;right:-.4em;width:.9em;height:.9em;pointer-events:none;line-height:.15em;z-index:1}.video-js .vjs-load-progress{background:rgba(114.9141509434,132.7028301887,159.3858490566,.5)}.video-js .vjs-load-progress div{background:rgba(114.9141509434,132.7028301887,159.3858490566,.75)}.video-js .vjs-time-tooltip{background-color:#fff;background-color:#fffc;border-radius:.3em;color:#000;float:right;font-family:Arial,Helvetica,sans-serif;font-size:1em;padding:6px 8px 8px;pointer-events:none;position:absolute;top:-3.4em;visibility:hidden;z-index:1}.video-js .vjs-progress-holder:focus .vjs-time-tooltip{display:none}.video-js .vjs-progress-control:hover .vjs-time-tooltip,.video-js .vjs-progress-control:hover .vjs-progress-holder:focus .vjs-time-tooltip,.video-js.vjs-scrubbing.vjs-touch-enabled .vjs-progress-control .vjs-time-tooltip{display:block;font-size:.6em;visibility:visible}.video-js .vjs-progress-control.disabled:hover .vjs-time-tooltip{font-size:1em}.video-js .vjs-progress-control .vjs-mouse-display{display:none;position:absolute;width:1px;height:100%;background-color:#000;z-index:1}.video-js .vjs-progress-control:hover .vjs-mouse-display,.video-js.vjs-scrubbing.vjs-touch-enabled .vjs-progress-control .vjs-mouse-display{display:block}.video-js.vjs-user-inactive .vjs-progress-control .vjs-mouse-display,.video-js.vjs-touch-enabled:not(.vjs-scrubbing) .vjs-progress-control .vjs-mouse-display{visibility:hidden;opacity:0;transition:visibility 1s,opacity 1s}.vjs-mouse-display .vjs-time-tooltip{color:#fff;background-color:#000;background-color:#000c}.video-js .vjs-slider{position:relative;cursor:pointer;padding:0;margin:0 .45em;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;background-color:#73859f;background-color:#73859f80}.video-js .vjs-slider.disabled{cursor:default}.video-js .vjs-slider:focus{text-shadow:0em 0em 1em white;box-shadow:0 0 1em #fff}.video-js.vjs-spatial-navigation-enabled .vjs-slider:focus{outline:.0625em solid white}.video-js .vjs-mute-control{cursor:pointer;flex:none}.video-js .vjs-volume-control{cursor:pointer;margin-right:1em;display:flex}.video-js .vjs-volume-control.vjs-volume-horizontal{width:5em}.video-js .vjs-volume-panel .vjs-volume-control{visibility:visible;opacity:0;width:1px;height:1px;margin-left:-1px}.video-js .vjs-volume-panel{transition:width 1s}.video-js .vjs-volume-panel.vjs-hover .vjs-volume-control,.video-js .vjs-volume-panel:active .vjs-volume-control,.video-js .vjs-volume-panel:focus .vjs-volume-control,.video-js .vjs-volume-panel .vjs-volume-control:active,.video-js .vjs-volume-panel.vjs-hover .vjs-mute-control~.vjs-volume-control,.video-js .vjs-volume-panel .vjs-volume-control.vjs-slider-active{visibility:visible;opacity:1;position:relative;transition:visibility .1s,opacity .1s,height .1s,width .1s,left 0s,top 0s}.video-js .vjs-volume-panel.vjs-hover .vjs-volume-control.vjs-volume-horizontal,.video-js .vjs-volume-panel:active .vjs-volume-control.vjs-volume-horizontal,.video-js .vjs-volume-panel:focus .vjs-volume-control.vjs-volume-horizontal,.video-js .vjs-volume-panel .vjs-volume-control:active.vjs-volume-horizontal,.video-js .vjs-volume-panel.vjs-hover .vjs-mute-control~.vjs-volume-control.vjs-volume-horizontal,.video-js .vjs-volume-panel .vjs-volume-control.vjs-slider-active.vjs-volume-horizontal{width:5em;height:3em;margin-right:0}.video-js .vjs-volume-panel.vjs-hover .vjs-volume-control.vjs-volume-vertical,.video-js .vjs-volume-panel:active .vjs-volume-control.vjs-volume-vertical,.video-js .vjs-volume-panel:focus .vjs-volume-control.vjs-volume-vertical,.video-js .vjs-volume-panel .vjs-volume-control:active.vjs-volume-vertical,.video-js .vjs-volume-panel.vjs-hover .vjs-mute-control~.vjs-volume-control.vjs-volume-vertical,.video-js .vjs-volume-panel .vjs-volume-control.vjs-slider-active.vjs-volume-vertical{left:-3.5em;transition:left 0s}.video-js .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-hover,.video-js .vjs-volume-panel.vjs-volume-panel-horizontal:active,.video-js .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active{width:10em;transition:width .1s}.video-js .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-mute-toggle-only{width:4em}.video-js .vjs-volume-panel .vjs-volume-control.vjs-volume-vertical{height:8em;width:3em;left:-3000em;transition:visibility 1s,opacity 1s,height 1s 1s,width 1s 1s,left 1s 1s,top 1s 1s}.video-js .vjs-volume-panel .vjs-volume-control.vjs-volume-horizontal{transition:visibility 1s,opacity 1s,height 1s 1s,width 1s,left 1s 1s,top 1s 1s}.video-js .vjs-volume-panel{display:flex}.video-js .vjs-volume-bar{margin:1.35em .45em}.vjs-volume-bar.vjs-slider-horizontal{width:5em;height:.3em}.vjs-volume-bar.vjs-slider-vertical{width:.3em;height:5em;margin:1.35em auto}.video-js .vjs-volume-level{position:absolute;bottom:0;left:0;background-color:#fff}.video-js .vjs-volume-level:before{position:absolute;font-size:.9em;z-index:1}.vjs-slider-vertical .vjs-volume-level{width:.3em}.vjs-slider-vertical .vjs-volume-level:before{top:-.5em;left:-.3em;z-index:1}.vjs-svg-icons-enabled .vjs-volume-level:before{content:none}.vjs-volume-level .vjs-svg-icon{position:absolute;width:.9em;height:.9em;pointer-events:none;z-index:1}.vjs-slider-horizontal .vjs-volume-level{height:.3em}.vjs-slider-horizontal .vjs-volume-level:before{line-height:.35em;right:-.5em}.vjs-slider-horizontal .vjs-volume-level .vjs-svg-icon{right:-.3em;transform:translateY(-50%)}.vjs-slider-vertical .vjs-volume-level .vjs-svg-icon{top:-.55em;transform:translate(-50%)}.video-js .vjs-volume-panel.vjs-volume-panel-vertical{width:4em}.vjs-volume-bar.vjs-slider-vertical .vjs-volume-level{height:100%}.vjs-volume-bar.vjs-slider-horizontal .vjs-volume-level{width:100%}.video-js .vjs-volume-vertical{width:3em;height:8em;bottom:8em;background-color:#2b333f;background-color:#2b333fb3}.video-js .vjs-volume-horizontal .vjs-menu{left:-2em}.video-js .vjs-volume-tooltip{background-color:#fff;background-color:#fffc;border-radius:.3em;color:#000;float:right;font-family:Arial,Helvetica,sans-serif;font-size:1em;padding:6px 8px 8px;pointer-events:none;position:absolute;top:-3.4em;visibility:hidden;z-index:1}.video-js .vjs-volume-control:hover .vjs-volume-tooltip,.video-js .vjs-volume-control:hover .vjs-progress-holder:focus .vjs-volume-tooltip{display:block;font-size:1em;visibility:visible}.video-js .vjs-volume-vertical:hover .vjs-volume-tooltip,.video-js .vjs-volume-vertical:hover .vjs-progress-holder:focus .vjs-volume-tooltip{left:1em;top:-12px}.video-js .vjs-volume-control.disabled:hover .vjs-volume-tooltip{font-size:1em}.video-js .vjs-volume-control .vjs-mouse-display{display:none;position:absolute;width:100%;height:1px;background-color:#000;z-index:1}.video-js .vjs-volume-horizontal .vjs-mouse-display{width:1px;height:100%}.video-js .vjs-volume-control:hover .vjs-mouse-display{display:block}.video-js.vjs-user-inactive .vjs-volume-control .vjs-mouse-display{visibility:hidden;opacity:0;transition:visibility 1s,opacity 1s}.vjs-mouse-display .vjs-volume-tooltip{color:#fff;background-color:#000;background-color:#000c}.vjs-poster{display:inline-block;vertical-align:middle;cursor:pointer;margin:0;padding:0;position:absolute;top:0;right:0;bottom:0;left:0;height:100%}.vjs-has-started .vjs-poster,.vjs-using-native-controls .vjs-poster{display:none}.vjs-audio.vjs-has-started .vjs-poster,.vjs-has-started.vjs-audio-poster-mode .vjs-poster,.vjs-pip-container.vjs-has-started .vjs-poster{display:block}.vjs-poster img{width:100%;height:100%;object-fit:contain}.video-js .vjs-live-control{display:flex;align-items:flex-start;flex:auto;font-size:1em;line-height:3em}.video-js:not(.vjs-live) .vjs-live-control,.video-js.vjs-liveui .vjs-live-control{display:none}.video-js .vjs-seek-to-live-control{align-items:center;cursor:pointer;flex:none;display:inline-flex;height:100%;padding-left:.5em;padding-right:.5em;font-size:1em;line-height:3em;width:auto;min-width:4em}.video-js.vjs-live:not(.vjs-liveui) .vjs-seek-to-live-control,.video-js:not(.vjs-live) .vjs-seek-to-live-control{display:none}.vjs-seek-to-live-control.vjs-control.vjs-at-live-edge{cursor:auto}.vjs-seek-to-live-control .vjs-icon-placeholder{margin-right:.5em;color:#888}.vjs-svg-icons-enabled .vjs-seek-to-live-control{line-height:0}.vjs-seek-to-live-control .vjs-svg-icon{width:1em;height:1em;pointer-events:none;fill:#888}.vjs-seek-to-live-control.vjs-control.vjs-at-live-edge .vjs-icon-placeholder{color:red}.vjs-seek-to-live-control.vjs-control.vjs-at-live-edge .vjs-svg-icon{fill:red}.video-js .vjs-time-control{flex:none;font-size:1em;line-height:3em;min-width:2em;width:auto;padding-left:1em;padding-right:1em}.vjs-live .vjs-time-control,.vjs-live .vjs-time-divider,.video-js .vjs-current-time,.video-js .vjs-duration{display:none}.vjs-time-divider{display:none;line-height:3em}.vjs-normalise-time-controls:not(.vjs-live) .vjs-time-control{display:flex}.video-js .vjs-play-control{cursor:pointer}.video-js .vjs-play-control .vjs-icon-placeholder{flex:none}.vjs-text-track-display{position:absolute;bottom:3em;left:0;right:0;top:0;pointer-events:none}.vjs-error .vjs-text-track-display{display:none}.video-js.vjs-controls-disabled .vjs-text-track-display,.video-js.vjs-user-inactive.vjs-playing .vjs-text-track-display{bottom:1em}.video-js .vjs-text-track{font-size:1.4em;text-align:center;margin-bottom:.1em}.vjs-subtitles{color:#fff}.vjs-captions{color:#fc6}.vjs-tt-cue{display:block}video::-webkit-media-text-track-display{transform:translateY(-3em)}.video-js.vjs-controls-disabled video::-webkit-media-text-track-display,.video-js.vjs-user-inactive.vjs-playing video::-webkit-media-text-track-display{transform:translateY(-1.5em)}.video-js.vjs-force-center-align-cues .vjs-text-track-cue{text-align:center!important;width:80%!important}@supports not (inset: 10px){.video-js .vjs-text-track-display>div{top:0;right:0;bottom:0;left:0}}.video-js .vjs-picture-in-picture-control{cursor:pointer;flex:none}.video-js.vjs-audio-only-mode .vjs-picture-in-picture-control,.vjs-pip-window .vjs-picture-in-picture-control{display:none}.video-js .vjs-fullscreen-control{cursor:pointer;flex:none}.video-js.vjs-audio-only-mode .vjs-fullscreen-control,.vjs-pip-window .vjs-fullscreen-control{display:none}.vjs-playback-rate>.vjs-menu-button,.vjs-playback-rate .vjs-playback-rate-value{position:absolute;top:0;left:0;width:100%;height:100%}.vjs-playback-rate .vjs-playback-rate-value{pointer-events:none;font-size:1.5em;line-height:2;text-align:center}.vjs-playback-rate .vjs-menu{width:4em;left:0}.vjs-error .vjs-error-display .vjs-modal-dialog-content{font-size:1.4em;text-align:center}.vjs-loading-spinner{display:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);opacity:.85;text-align:left;border:.6em solid rgba(43,51,63,.7);box-sizing:border-box;background-clip:padding-box;width:5em;height:5em;border-radius:50%;visibility:hidden}.vjs-seeking .vjs-loading-spinner,.vjs-waiting .vjs-loading-spinner{display:flex;justify-content:center;align-items:center;animation:vjs-spinner-show 0s linear .3s forwards}.vjs-error .vjs-loading-spinner{display:none}.vjs-loading-spinner:before,.vjs-loading-spinner:after{content:"";position:absolute;box-sizing:inherit;width:inherit;height:inherit;border-radius:inherit;opacity:1;border:inherit;border-color:transparent;border-top-color:#fff}.vjs-seeking .vjs-loading-spinner:before,.vjs-seeking .vjs-loading-spinner:after,.vjs-waiting .vjs-loading-spinner:before,.vjs-waiting .vjs-loading-spinner:after{animation:vjs-spinner-spin 1.1s cubic-bezier(.6,.2,0,.8) infinite,vjs-spinner-fade 1.1s linear infinite}.vjs-seeking .vjs-loading-spinner:before,.vjs-waiting .vjs-loading-spinner:before{border-top-color:#fff}.vjs-seeking .vjs-loading-spinner:after,.vjs-waiting .vjs-loading-spinner:after{border-top-color:#fff;animation-delay:.44s}@keyframes vjs-spinner-show{to{visibility:visible}}@keyframes vjs-spinner-spin{to{transform:rotate(360deg)}}@keyframes vjs-spinner-fade{0%{border-top-color:#73859f}20%{border-top-color:#73859f}35%{border-top-color:#fff}60%{border-top-color:#73859f}to{border-top-color:#73859f}}.video-js.vjs-audio-only-mode .vjs-captions-button{display:none}.vjs-chapters-button .vjs-menu ul{width:24em}.video-js.vjs-audio-only-mode .vjs-descriptions-button{display:none}.vjs-subs-caps-button+.vjs-menu .vjs-captions-menu-item .vjs-svg-icon{width:1.5em;height:1.5em}.video-js .vjs-subs-caps-button+.vjs-menu .vjs-captions-menu-item .vjs-menu-item-text .vjs-icon-placeholder{vertical-align:middle;display:inline-block;margin-bottom:-.1em}.video-js .vjs-subs-caps-button+.vjs-menu .vjs-captions-menu-item .vjs-menu-item-text .vjs-icon-placeholder:before{font-family:VideoJS;content:"";font-size:1.5em;line-height:inherit}.video-js.vjs-audio-only-mode .vjs-subs-caps-button{display:none}.video-js .vjs-audio-button+.vjs-menu .vjs-descriptions-menu-item .vjs-menu-item-text .vjs-icon-placeholder,.video-js .vjs-audio-button+.vjs-menu .vjs-main-desc-menu-item .vjs-menu-item-text .vjs-icon-placeholder{vertical-align:middle;display:inline-block;margin-bottom:-.1em}.video-js .vjs-audio-button+.vjs-menu .vjs-descriptions-menu-item .vjs-menu-item-text .vjs-icon-placeholder:before,.video-js .vjs-audio-button+.vjs-menu .vjs-main-desc-menu-item .vjs-menu-item-text .vjs-icon-placeholder:before{font-family:VideoJS;content:" ";font-size:1.5em;line-height:inherit}.video-js.vjs-layout-small .vjs-current-time,.video-js.vjs-layout-small .vjs-time-divider,.video-js.vjs-layout-small .vjs-duration,.video-js.vjs-layout-small .vjs-remaining-time,.video-js.vjs-layout-small .vjs-playback-rate,.video-js.vjs-layout-small .vjs-volume-control,.video-js.vjs-layout-x-small .vjs-current-time,.video-js.vjs-layout-x-small .vjs-time-divider,.video-js.vjs-layout-x-small .vjs-duration,.video-js.vjs-layout-x-small .vjs-remaining-time,.video-js.vjs-layout-x-small .vjs-playback-rate,.video-js.vjs-layout-x-small .vjs-volume-control,.video-js.vjs-layout-tiny .vjs-current-time,.video-js.vjs-layout-tiny .vjs-time-divider,.video-js.vjs-layout-tiny .vjs-duration,.video-js.vjs-layout-tiny .vjs-remaining-time,.video-js.vjs-layout-tiny .vjs-playback-rate,.video-js.vjs-layout-tiny .vjs-volume-control{display:none}.video-js.vjs-layout-small .vjs-volume-panel.vjs-volume-panel-horizontal:hover,.video-js.vjs-layout-small .vjs-volume-panel.vjs-volume-panel-horizontal:active,.video-js.vjs-layout-small .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active,.video-js.vjs-layout-small .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-hover,.video-js.vjs-layout-x-small .vjs-volume-panel.vjs-volume-panel-horizontal:hover,.video-js.vjs-layout-x-small .vjs-volume-panel.vjs-volume-panel-horizontal:active,.video-js.vjs-layout-x-small .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active,.video-js.vjs-layout-x-small .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-hover,.video-js.vjs-layout-tiny .vjs-volume-panel.vjs-volume-panel-horizontal:hover,.video-js.vjs-layout-tiny .vjs-volume-panel.vjs-volume-panel-horizontal:active,.video-js.vjs-layout-tiny .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active,.video-js.vjs-layout-tiny .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-hover{width:auto;width:initial}.video-js.vjs-layout-x-small .vjs-progress-control,.video-js.vjs-layout-tiny .vjs-progress-control{display:none}.video-js.vjs-layout-x-small .vjs-custom-control-spacer{flex:auto;display:block}.vjs-modal-dialog.vjs-text-track-settings{background-color:#2b333f;background-color:#2b333fbf;color:#fff;height:70%}.vjs-spatial-navigation-enabled .vjs-modal-dialog.vjs-text-track-settings{height:80%}.vjs-error .vjs-text-track-settings{display:none}.vjs-text-track-settings .vjs-modal-dialog-content{display:table}.vjs-text-track-settings .vjs-track-settings-colors,.vjs-text-track-settings .vjs-track-settings-font,.vjs-text-track-settings .vjs-track-settings-controls{display:table-cell}.vjs-text-track-settings .vjs-track-settings-controls{text-align:right;vertical-align:bottom}@supports (display: grid){.vjs-text-track-settings .vjs-modal-dialog-content{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr;padding:20px 24px 0}.vjs-track-settings-controls .vjs-default-button{margin-bottom:20px}.vjs-text-track-settings .vjs-track-settings-controls{grid-column:1/-1}.vjs-layout-small .vjs-text-track-settings .vjs-modal-dialog-content,.vjs-layout-x-small .vjs-text-track-settings .vjs-modal-dialog-content,.vjs-layout-tiny .vjs-text-track-settings .vjs-modal-dialog-content{grid-template-columns:1fr}}.vjs-text-track-settings select{font-size:inherit}.vjs-track-setting>select{margin-right:1em;margin-bottom:.5em}.vjs-text-track-settings fieldset{margin:10px;border:none}.vjs-text-track-settings fieldset span{display:inline-block;padding:0 .6em .8em}.vjs-text-track-settings fieldset span>select{max-width:7.3em}.vjs-text-track-settings legend{color:#fff;font-weight:700;font-size:1.2em}.vjs-text-track-settings .vjs-label{margin:0 .5em .5em 0}.vjs-track-settings-controls button:focus,.vjs-track-settings-controls button:active{outline-style:solid;outline-width:medium;background-image:linear-gradient(0deg,#fff 88%,rgb(114.9141509434,132.7028301887,159.3858490566) 100%)}.vjs-track-settings-controls button:hover{color:#2b333fbf}.vjs-track-settings-controls button{background-color:#fff;background-image:linear-gradient(-180deg,#fff 88%,rgb(114.9141509434,132.7028301887,159.3858490566) 100%);color:#2b333f;cursor:pointer;border-radius:2px}.vjs-track-settings-controls .vjs-default-button{margin-right:1em}.vjs-title-bar{background:rgba(0,0,0,.9);background:linear-gradient(180deg,rgba(0,0,0,.9) 0%,rgba(0,0,0,.7) 60%,rgba(0,0,0,0) 100%);font-size:1.2em;line-height:1.5;transition:opacity .1s;padding:.666em 1.333em 4em;pointer-events:none;position:absolute;top:0;width:100%}.vjs-error .vjs-title-bar{display:none}.vjs-title-bar-title,.vjs-title-bar-description{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vjs-title-bar-title{font-weight:700;margin-bottom:.333em}.vjs-playing.vjs-user-inactive .vjs-title-bar{opacity:0;transition:opacity 1s}.video-js .vjs-skip-forward-5,.video-js .vjs-skip-forward-10,.video-js .vjs-skip-forward-30,.video-js .vjs-skip-backward-5,.video-js .vjs-skip-backward-10,.video-js .vjs-skip-backward-30{cursor:pointer}.video-js .vjs-transient-button{position:absolute;height:3em;display:flex;align-items:center;justify-content:center;background-color:#32323280;cursor:pointer;opacity:1;transition:opacity 1s}.video-js:not(.vjs-has-started) .vjs-transient-button{display:none}.video-js.not-hover .vjs-transient-button:not(.force-display),.video-js.vjs-user-inactive .vjs-transient-button:not(.force-display){opacity:0}.video-js .vjs-transient-button span{padding:0 .5em}.video-js .vjs-transient-button.vjs-left{left:1em}.video-js .vjs-transient-button.vjs-right{right:1em}.video-js .vjs-transient-button.vjs-top{top:1em}.video-js .vjs-transient-button.vjs-near-top{top:4em}.video-js .vjs-transient-button.vjs-bottom{bottom:4em}.video-js .vjs-transient-button:hover{background-color:#323232e6}@media print{.video-js>*:not(.vjs-tech):not(.vjs-poster){visibility:hidden}}.vjs-resize-manager{position:absolute;top:0;left:0;width:100%;height:100%;border:none;z-index:-1000}.js-focus-visible .video-js *:focus:not(.focus-visible){outline:none}.video-js *:focus:not(:focus-visible){outline:none}#page-embed .video-js-root-embed .video-js video{width:100vw!important;height:100vh!important;object-fit:cover!important;border-radius:0!important}#page-embed .video-js-root-embed .video-js .vjs-poster{border-radius:0!important;width:100vw!important;height:100vh!important;object-fit:cover!important}#page-embed .video-js-root-embed .video-container{width:100vw;height:100vh;max-width:none;margin:0;padding:0;box-sizing:border-box;position:fixed;top:0;left:0;z-index:1000}#page-embed .video-js-root-embed .video-js.vjs-fluid{width:100vw!important;height:100vh!important;max-width:none!important;max-height:none!important}#page-embed .video-js-root-embed .video-js{width:100vw!important;height:100vh!important;border-radius:0;position:relative}#page-embed .video-js-root-embed{position:fixed;top:0}#page-embed .video-js-root-embed .video-js .vjs-control-bar{position:fixed!important;bottom:0!important;left:0!important;right:0!important;width:100vw!important;z-index:1001!important;background:transparent!important;background-color:transparent!important;background-image:none!important;padding:0 12px!important;margin:0!important;border:none!important;box-shadow:none!important}#page-embed .video-js-root-embed .video-js .vjs-progress-control{position:fixed!important;bottom:48px!important;left:0!important;right:0!important;width:100vw!important;z-index:1000!important;margin:0!important;padding:0!important;border:none!important}#page-embed .video-js-root-embed .video-js:after{position:fixed!important;bottom:0!important;left:0!important;right:0!important;width:100vw!important;height:120px!important;z-index:999!important}@media (max-width: 768px){#page-embed .video-js-root-embed .video-js .vjs-control-bar{height:56px!important;padding:0 16px!important;margin:0!important;border:none!important;background:transparent!important;background-color:transparent!important;background-image:none!important}#page-embed .video-js-root-embed .video-js .vjs-progress-control{bottom:44px!important;margin:0!important;padding:0!important}#page-embed .video-js-root-embed .video-js .vjs-control-bar{padding-bottom:env(safe-area-inset-bottom,0)!important}}#page-embed .video-js-root-embed .video-js.vjs-user-active .vjs-control-bar,#page-embed .video-js-root-embed .video-js.vjs-paused .vjs-control-bar,#page-embed .video-js-root-embed .video-js.vjs-ended .vjs-control-bar{opacity:1!important;visibility:visible!important;transform:translateY(0)!important}#page-embed .video-js-root-embed .video-js .vjs-control-bar{transition:opacity .3s ease,transform .3s ease!important}#page-embed .video-js-root-embed .video-js.vjs-user-inactive:not(.vjs-paused):not(.vjs-ended) .vjs-control-bar{opacity:0!important;transform:translateY(100%)!important}#page-embed .video-js-root-embed .video-js.vjs-user-inactive:not(.vjs-paused):not(.vjs-ended) .vjs-progress-control{opacity:0!important}#page-embed .video-js-root-embed .video-js .vjs-seek-indicator{position:fixed!important;top:50vh!important;left:50vw!important;transform:translate(-50%,-50%)!important;z-index:10000!important;pointer-events:none!important;display:none!important;align-items:center!important;justify-content:center!important;opacity:0!important;visibility:hidden!important;transition:opacity .2s ease-in-out!important;width:auto!important;height:auto!important;margin:0!important;padding:0!important}#page-embed .video-js-root-embed .video-js .vjs-big-play-button{position:absolute!important;top:50%!important;left:50%!important;transform:translate(-50%,-50%)!important;z-index:1000!important;pointer-events:auto!important;margin:0!important;padding:0!important}#page-embed .video-js-root-embed .video-js:not(.vjs-has-started) .vjs-control-bar{display:none!important;opacity:0!important;visibility:hidden!important}#page-embed .video-js-root-embed .video-js:not(.vjs-has-started) .vjs-progress-control{display:none!important;opacity:0!important;visibility:hidden!important}.video-js .vjs-captions-button,.video-js .vjs-subs-caps-button{display:none!important}.video-js .vjs-subtitles-button .vjs-menu,.video-js .vjs-subtitles-button .vjs-menu.vjs-lock-showing,.video-js .vjs-subtitles-button .vjs-menu.vjs-lock-showing .vjs-menu-content{display:none!important;visibility:hidden!important;opacity:0!important;pointer-events:none!important}.video-js .vjs-chapters-button .vjs-menu,.video-js .vjs-chapters-button .vjs-menu.vjs-lock-showing,.video-js .vjs-chapters-button .vjs-menu.vjs-lock-showing .vjs-menu-content{display:none!important}.video-js .vjs-chapters-button .vjs-menu{display:none!important;visibility:hidden!important;opacity:0!important;pointer-events:none!important}.video-js .vjs-subtitles-button{position:relative;cursor:pointer!important;pointer-events:auto!important}.video-js button.vjs-subtitles-button{cursor:pointer!important;pointer-events:auto!important;touch-action:manipulation!important;-webkit-tap-highlight-color:transparent!important}.video-js button.vjs-subtitles-button:before{content:"";position:absolute;left:50%;transform:translate(-50%);bottom:6px;height:3px;background:#e1002d;border-radius:2px;width:0;padding:0;transition:none!important;animation:none!important;-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important}.video-js .vjs-subs-active button.vjs-subtitles-button:before{width:24px;transition:none!important;animation:none!important;-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important}.video-js button.vjs-subtitles-button{transition:none!important;animation:none!important;-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important}@media (max-width: 767px){.video-js .vjs-subtitles-button button.vjs-button{min-width:32px!important;min-height:32px!important;touch-action:manipulation!important;-webkit-tap-highlight-color:transparent!important;-webkit-touch-callout:none!important;-webkit-user-select:none!important;user-select:none!important}.video-js .vjs-subs-active button.vjs-subtitles-button:before{width:20px}.video-js button.vjs-subtitles-button:before{bottom:2px}}.vjs-end-screen-overlay{position:absolute;top:0;left:0;width:100%;height:calc(100% - 100px);background:#000000;display:none;flex-direction:column;justify-content:center;align-items:center;padding:20px;box-sizing:border-box;z-index:9999;overflow:hidden}.video-js.vjs-ended .vjs-poster{display:none!important;opacity:0!important;visibility:hidden!important;z-index:-1!important;width:0!important;height:0!important}.video-js.vjs-ended video{display:none!important;opacity:0!important;visibility:hidden!important}.video-js.vjs-ended .vjs-end-screen-overlay{z-index:99999!important;display:flex!important}#page-embed .video-js-root-embed .video-js.vjs-ended .vjs-end-screen-overlay{position:fixed!important;top:0!important;left:0!important;width:100vw!important;height:100vh!important;z-index:99999!important;display:flex!important;padding-top:80px!important}.video-js.vjs-ended .vjs-control-bar{z-index:100000!important;position:absolute!important;bottom:0!important;left:0!important;right:0!important;width:100%!important;display:flex!important;opacity:1!important;visibility:visible!important}.video-js.vjs-ended .vjs-progress-control{z-index:0!important;position:absolute!important;left:0!important;right:0!important;width:100%!important;display:block!important;opacity:1!important;visibility:visible!important}#page-embed .video-js-root-embed .video-js.vjs-ended .vjs-control-bar{position:fixed!important;bottom:0!important;left:0!important;right:0!important;width:100vw!important;z-index:100000!important;display:flex!important;opacity:1!important;visibility:visible!important}#page-embed .video-js-root-embed .video-js.vjs-ended .vjs-progress-control{position:fixed!important;bottom:48px!important;left:0!important;right:0!important;width:100vw!important;z-index:100000!important;display:block!important;opacity:1!important;visibility:visible!important}#page-embed .video-js-root-embed .video-js.vjs-ended .vjs-embed-info-overlay{z-index:100001!important;display:flex!important;opacity:1!important;visibility:visible!important}.video-js.vjs-ended .vjs-big-play-button,.video-js.vjs-ended .vjs-seek-indicator{display:none!important;opacity:0!important;visibility:hidden!important}.video-js.vjs-ended .vjs-control-bar{background:#000000!important;background-color:#000!important;background-image:none!important}.video-js.vjs-ended .vjs-progress-control{background:#000000!important;background-color:#000!important}.video-js.vjs-ended:after{background:#000000!important;background-image:none!important}.video-js.vjs-ended:before{background:#000000!important;background-image:none!important}.video-js.vjs-ended .vjs-loading-spinner,.video-js.vjs-ended .vjs-mouse-display{background:#000000!important;background-image:none!important}.video-js.vjs-ended .vjs-progress-holder{background:rgba(255,255,255,.3)!important}.video-js.vjs-ended .vjs-tech,.video-js.vjs-ended .vjs-poster-overlay{display:none!important;opacity:0!important;visibility:hidden!important}.vjs-related-videos-title{color:#fff;font-size:24px;line-height:24px;padding:0;margin:0;text-align:center;font-weight:700;flex-shrink:0}.vjs-related-videos-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:2px;width:100%;max-width:100%;margin:0;box-sizing:border-box;justify-items:stretch;align-items:stretch;justify-content:center;align-content:start;overflow:hidden;height:100%;flex:1;grid-row-gap:2px;grid-column-gap:2px;grid-auto-rows:1fr}.vjs-related-video-item{position:relative;cursor:pointer;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease;background:#1a1a1a;border:1px solid #333;aspect-ratio:16/9;width:100%;min-height:100px;box-shadow:0 2px 8px #0003}.video-js.video-js-rounded-corners .vjs-related-video-item{border-radius:8px}.vjs-related-video-item:hover{transform:translateY(-2px);box-shadow:0 8px 25px #0000004d}.vjs-related-video-thumbnail{width:100%;height:100%;object-fit:cover;display:block;background:#1a1a1a;transition:transform .2s ease}.vjs-related-video-item:hover .vjs-related-video-thumbnail{transform:scale(1.02)}.vjs-related-video-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(transparent,rgba(0,0,0,.9));color:#fff;padding:12px;opacity:0;transition:opacity .3s ease;display:flex;flex-direction:column;justify-content:flex-start;height:100%}.vjs-related-video-item:hover .vjs-related-video-overlay{opacity:1}.vjs-related-video-title{font-size:14px;font-weight:700;line-height:1.3;color:#fff;margin-bottom:4px}.vjs-related-video-meta{display:flex;flex-direction:row;gap:8px;align-items:center}.vjs-related-video-author,.vjs-related-video-views{font-size:12px;color:#fff}.vjs-related-video-author:after{content:"•";margin-left:8px;color:#fff}.vjs-related-video-duration{position:absolute;bottom:8px;right:8px;background:rgba(0,0,0,.8);color:#fff;padding:2px 6px;font-size:11px;font-weight:700;opacity:0;transition:opacity .3s ease}.video-js.video-js-rounded-corners .vjs-related-video-duration{border-radius:2px}.vjs-related-video-item:hover .vjs-related-video-duration{opacity:1}.video-js.vjs-ended .vjs-control-bar{opacity:1!important;pointer-events:auto!important}.video-js.vjs-ended .vjs-control-bar .vjs-control,.video-js.vjs-ended .vjs-control-bar button{opacity:1!important;pointer-events:auto!important;cursor:pointer!important}.video-js.vjs-ended .vjs-control-bar .vjs-control.vjs-volume-control{opacity:0!important}.video-js.vjs-ended .vjs-control-bar .vjs-volume-panel.vjs-hover .vjs-volume-control{opacity:1!important}@media (max-width: 1200px){.vjs-related-videos-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:2px;grid-row-gap:2px;grid-column-gap:2px;grid-auto-rows:1fr}.vjs-end-screen-overlay{padding:15px;height:calc(100% - 95px)}}@media (max-width: 900px){.vjs-related-videos-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:2px;grid-row-gap:2px;grid-column-gap:2px;grid-auto-rows:1fr}.vjs-end-screen-overlay{padding:10px;height:calc(100% - 90px)}}@media (max-width: 600px){.vjs-related-videos-grid{grid-template-columns:repeat(2,1fr);gap:2px;grid-row-gap:2px;grid-column-gap:2px;grid-auto-rows:1fr}.vjs-end-screen-overlay{padding:10px 5px 5px;height:calc(100% - 60px);justify-content:flex-start}.vjs-related-video-item{min-height:60px}}@media (max-width: 400px){.vjs-related-videos-grid{grid-template-columns:repeat(2,1fr);gap:2px;grid-row-gap:2px;grid-column-gap:2px;grid-auto-rows:1fr}.vjs-end-screen-overlay{height:calc(100% - 60px);padding:10px 5px 5px;justify-content:flex-start}.vjs-related-video-item{min-height:50px}}.video-js.vjs-ended .vjs-play-control{opacity:1!important;pointer-events:auto!important;cursor:pointer!important}.video-js.vjs-ended .vjs-progress-control,.video-js.vjs-ended .vjs-volume-panel{opacity:1!important;pointer-events:auto!important}@media (min-width: 1200px){.vjs-related-videos-grid{grid-template-columns:repeat(4,1fr);gap:20px;height:auto;max-height:none}}@media (max-width: 1199px){.vjs-related-video-item:nth-child(n+10){display:none}}@media (max-width: 1100px){.vjs-related-videos-grid{grid-template-columns:repeat(3,1fr);gap:16px}}@media (min-width: 1024px) and (max-width: 1199px){.vjs-related-videos-grid{grid-template-columns:repeat(3,1fr);gap:16px;height:auto;max-height:none}.vjs-related-video-item:nth-child(n+10){display:none}}@media (min-width: 900px) and (max-width: 1024px){.vjs-related-videos-grid{grid-template-columns:repeat(3,1fr);gap:16px;height:auto;max-height:none}.vjs-related-video-item:nth-child(n+10){display:none}}@media (min-width: 768px) and (max-width: 899px){.vjs-related-videos-grid{grid-template-columns:repeat(3,1fr);gap:14px;height:auto;max-height:none}.vjs-end-screen-overlay{padding:20px 16px;justify-content:center}.vjs-related-video-item:nth-child(n+10){display:none}}@media (max-width: 767px){.vjs-related-videos-grid{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr);gap:16px!important;grid-gap:16px!important;max-height:70vh}.vjs-end-screen-overlay{padding:20px 12px;justify-content:flex-start}.vjs-related-video-item:nth-child(n+5){display:none}.vjs-related-video-thumbnail{height:100%}}@media (max-width: 574px){.vjs-related-video-item:nth-child(n+5){display:none}.vjs-related-videos-grid{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr);gap:14px!important;grid-gap:14px!important;max-height:65vh}.vjs-end-screen-overlay{padding:15px 10px;justify-content:flex-start}}@media (max-width: 439px){.vjs-related-video-item:nth-child(n+5){display:none}.vjs-related-videos-grid{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr);gap:12px!important;grid-gap:12px!important;max-height:60vh}.vjs-end-screen-overlay{padding:10px 8px;justify-content:flex-start}}@media (max-width: 480px){.vjs-related-video-thumbnail{height:100%}}.vjs-autoplay-countdown-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.85);display:none;flex-direction:column;justify-content:center;align-items:center;z-index:4;padding:20px;box-sizing:border-box;opacity:0;transition:opacity .2s ease-out}.autoplay-close-button{position:absolute;top:16px;right:16px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.3);border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;transition:all .2s ease;padding:0;z-index:10}.autoplay-close-button:hover{background:rgba(255,255,255,.2);border-color:#ffffff80;transform:scale(1.1)}.autoplay-close-button:active{transform:scale(.95)}.vjs-autoplay-countdown-overlay.autoplay-countdown-show{opacity:1}.autoplay-countdown-content{text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px;max-width:350px;width:100%}.countdown-label{color:#fffc;font-size:14px;font-weight:400;margin:0;text-transform:uppercase;letter-spacing:1px}.next-video-title{color:#fff;font-size:18px;font-weight:600;margin:0 0 12px;line-height:1.3;max-width:100%;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;text-align:center}.next-video-author{color:#ffffffb3;font-size:14px;font-weight:400;margin:-8px 0 0;line-height:1.2}.circular-countdown{position:relative;cursor:pointer;transition:transform .2s ease;margin:10px 0}.circular-countdown:hover{transform:scale(1.05)}.countdown-circle{filter:drop-shadow(0 4px 8px rgba(0,0,0,.3))}.countdown-progress{stroke-linecap:round;stroke-dasharray:282.74;stroke-dashoffset:282.74}.play-icon{cursor:pointer;transition:all .2s ease}.circular-countdown:hover .play-icon circle{fill:#fff}.circular-countdown:hover .play-icon path{fill:#000}.autoplay-cancel-button{background:transparent;border:1px solid rgba(255,255,255,.3);color:#ffffffe6;padding:10px 24px;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease;text-transform:uppercase;letter-spacing:.5px;margin-top:4px;display:inline-block}.autoplay-cancel-button:hover{background:rgba(255,255,255,.1);border-color:#ffffff80;color:#fff;transform:translateY(-1px)}@media (min-width: 768px){.autoplay-close-button{display:flex!important}.autoplay-cancel-button{display:inline-block!important}}@media (max-width: 767px){.autoplay-close-button{display:flex!important;top:12px;right:12px;width:36px;height:36px}.autoplay-close-button svg{width:20px;height:20px}.autoplay-countdown-content{gap:8px;max-width:280px}.countdown-label{font-size:13px;margin:0}.next-video-title{font-size:16px;margin:0 0 8px}.next-video-author{font-size:13px;margin:-6px 0 0}.circular-countdown{margin:4px 0}.circular-countdown svg{width:80px;height:80px}.autoplay-cancel-button{display:none}}@media (max-width: 480px){.autoplay-close-button{display:flex!important;top:10px;right:10px;width:32px;height:32px}.autoplay-close-button svg{width:18px;height:18px}.autoplay-countdown-content{gap:6px;max-width:260px}.countdown-label{font-size:12px;margin:0}.next-video-title{font-size:15px;margin:0 0 6px}.next-video-author{font-size:12px;margin:-4px 0 0}.circular-countdown{margin:2px 0}.circular-countdown svg{width:70px;height:70px}.autoplay-cancel-button{display:none}}.vjs-embed-info-overlay{position:absolute!important;top:10px!important;left:10px!important;z-index:1000!important;display:flex!important;align-items:center!important;gap:10px!important;padding:8px 12px!important;max-width:calc(100% - 40px)!important;box-sizing:border-box!important;transition:opacity .3s ease-in-out!important;font-family:Arial,sans-serif!important}.vjs-embed-info-overlay .embed-avatar-container{flex-shrink:0!important;width:32px!important;height:32px!important;border-radius:50%!important;overflow:hidden!important;border:1px solid rgba(255,255,255,.2)!important}.vjs-embed-info-overlay .embed-avatar-container a{display:block!important;width:100%!important;height:100%!important;text-decoration:none!important}.vjs-embed-info-overlay .embed-avatar-container img{width:100%!important;height:100%!important;object-fit:cover!important;display:block!important}.vjs-embed-info-overlay .embed-title-container{flex:1!important;min-width:0!important;overflow:hidden!important}.vjs-embed-info-overlay .embed-title-container a,.vjs-embed-info-overlay .embed-title-container span{color:#fff!important;text-decoration:none!important;font-size:14px!important;font-weight:500!important;line-height:1.3!important;display:block!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;transition:color .2s ease!important}.vjs-embed-info-overlay .embed-title-container a:hover{color:#ccc!important}@media (max-width: 768px){.vjs-embed-info-overlay{top:8px!important;left:8px!important;padding:6px 10px!important;gap:8px!important;max-width:calc(100% - 32px)!important}.vjs-embed-info-overlay .embed-avatar-container{width:28px!important;height:28px!important}.vjs-embed-info-overlay .embed-title-container a,.vjs-embed-info-overlay .embed-title-container span{font-size:13px!important}}@media (max-width: 480px){.vjs-embed-info-overlay{top:6px!important;left:6px!important;padding:5px 8px!important;gap:6px!important;max-width:calc(100% - 24px)!important}.vjs-embed-info-overlay .embed-avatar-container{width:24px!important;height:24px!important}.vjs-embed-info-overlay .embed-title-container a,.vjs-embed-info-overlay .embed-title-container span{font-size:12px!important}}.vjs-chapter-markers-track{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;overflow:hidden}.vjs-chapter-marker{position:absolute;top:0;width:2px;height:100%;background:rgba(255,193,7,.8);pointer-events:auto;cursor:pointer;transition:background .2s ease}.vjs-chapter-marker:hover{background:rgba(255,193,7,1);width:3px}.vjs-chapter-marker-tooltip{position:absolute;bottom:8px;left:50%;transform:translate(-50%);background:rgba(0,0,0,.8);color:#fff;padding:4px 8px;border-radius:4px;font-size:11px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:1001}.vjs-chapter-marker:hover .vjs-chapter-marker-tooltip{opacity:1}.vjs-chapter-floating-tooltip{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif!important;line-height:1.4!important;animation:fadeIn .2s ease-in-out;text-align:center;width:160px!important;max-width:100%!important;height:auto}.chapter-image-sprite{width:166px!important;max-width:100%!important;height:96px;margin:0 auto 10px;border-radius:6px;border:3px solid #fff}.vjs-chapter-floating-tooltip .chapter-title{font-size:16px;margin:0 0 10px;font-weight:700;word-break:break-all;line-height:20px}.vjs-chapter-floating-tooltip .position-info,.vjs-chapter-floating-tooltip .chapter-info{font-size:15px;display:inline-block;margin:0 0 2px;line-height:normal;vertical-align:top;line-height:20px}@keyframes fadeIn{0%{opacity:0;transform:translate(-50%) translateY(5px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@media (hover: none) and (pointer: coarse){.vjs-chapter-marker:hover .vjs-chapter-marker-tooltip,.vjs-chapter-floating-tooltip{display:none!important;opacity:0!important;visibility:hidden!important}}@media (min-width: 768px) and (max-width: 899px){.vjs-chapter-marker:hover .vjs-chapter-marker-tooltip{opacity:0!important;visibility:hidden!important}.vjs-chapter-floating-tooltip{display:none!important;opacity:0!important;visibility:hidden!important}}@media (max-width: 767px){.vjs-chapter-marker:hover .vjs-chapter-marker-tooltip{opacity:0!important;visibility:hidden!important}.vjs-chapter-floating-tooltip{display:none!important;opacity:0!important;visibility:hidden!important}}@media (max-width: 480px){.vjs-chapter-marker:hover .vjs-chapter-marker-tooltip{opacity:0!important;visibility:hidden!important}.vjs-chapter-floating-tooltip{display:none!important;opacity:0!important;visibility:hidden!important}}.vjs-sprite-preview-track{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;overflow:hidden}.vjs-sprite-preview-tooltip{text-align:center;width:172px!important;max-width:100%!important;height:auto}.vjs-sprite-preview-tooltip .sprite-image-preview{width:166px!important;max-width:100%!important;height:96px;margin:0 auto;border-radius:6px;border:3px solid #fff}@media (hover: none) and (pointer: coarse){.vjs-sprite-preview-tooltip{display:none!important;opacity:0!important;visibility:hidden!important}}@media (min-width: 768px) and (max-width: 899px){.vjs-sprite-preview-tooltip{display:none!important;opacity:0!important;visibility:hidden!important}}@media (max-width: 767px){.vjs-sprite-preview-tooltip{display:none!important;opacity:0!important;visibility:hidden!important}}@media (max-width: 480px){.vjs-sprite-preview-tooltip{display:none!important;opacity:0!important;visibility:hidden!important}}.vjs-next-video-control .vjs-icon-placeholder{width:1.2em;height:1.2em;display:flex;align-items:center;justify-content:center;margin:auto;display:none!important}.vjs-next-video-control .vjs-icon-placeholder svg{width:100%;height:100%;display:block}@media (max-width: 767px){.vjs-next-video-control svg{width:32px;height:32px}}@media (max-width: 399px){.vjs-next-video-control svg{width:28px;height:28px}}.vjs-autoplay-toggle .vjs-autoplay-icon svg{width:100%;height:100%;display:block}.video-js .vjs-autoplay-toggle{position:relative}.video-js .vjs-autoplay-toggle .vjs-hover-display,.video-js .vjs-autoplay-toggle .vjs-tooltip,.video-js .vjs-autoplay-toggle .vjs-tooltip-text{display:none!important;visibility:hidden!important;opacity:0!important;pointer-events:none!important}.video-js .vjs-autoplay-toggle:after{content:attr(title);position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:rgba(0,0,0,.9);color:#fff;padding:6px 10px;border-radius:4px;font-size:12px;white-space:nowrap;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease;z-index:1000;margin-bottom:8px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;box-shadow:0 2px 8px #0000004d;border:1px solid rgba(255,255,255,.1)}.video-js .vjs-autoplay-toggle:hover:after,.video-js .vjs-autoplay-toggle:focus:after{opacity:1;visibility:visible}@media (max-width: 767px){.video-js .vjs-autoplay-toggle.touch-active:after{opacity:1;visibility:visible}.video-js .vjs-autoplay-toggle:after{font-size:11px;padding:5px 8px;margin-bottom:6px}}.vjs-control-bar .custom-remaining-time .vjs-remaining-time-display{font-size:14px!important;font-weight:500;line-height:1;display:flex;align-items:center;justify-content:center;height:100%;color:#fff;white-space:nowrap;padding:0 4px}.vjs-control-bar .custom-remaining-time{flex-shrink:1!important;min-width:0!important}@media (max-width: 767px){.vjs-control-bar .custom-remaining-time .vjs-remaining-time-display{font-size:13px!important;padding:0 3px;font-weight:600!important}}@media (max-width: 500px){.vjs-control-bar .custom-remaining-time .vjs-remaining-time-display{font-size:12px!important;padding:0 2px;letter-spacing:-.2px;font-weight:600!important}}@media (max-width: 480px){.vjs-control-bar .custom-remaining-time .vjs-remaining-time-display{font-size:11px!important;padding:0 2px;letter-spacing:-.2px;font-weight:600!important}}@media (max-width: 399px){.vjs-control-bar .custom-remaining-time .vjs-remaining-time-display{font-size:10px!important;padding:0 1px;letter-spacing:-.3px;font-weight:600!important}}.video-chapter{position:absolute;top:auto;bottom:60px;width:min(360px,calc(100% - 20px));border:1px solid rgba(255,255,255,.12);border-radius:8px;height:calc(100% - 80px);background:rgba(18,18,18,.96);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);overflow:hidden;box-shadow:0 12px 30px #00000073;right:10px}.chapter-head{padding:12px 8px 10px 16px;position:sticky;top:0;left:0;background:linear-gradient(180deg,rgba(28,28,28,.95),rgba(18,18,18,.95));border-bottom:1px solid rgba(255,255,255,.08);z-index:2}.playlist-title{display:flex;align-items:center;gap:10px}.chapter-title{width:auto;flex:1;min-width:0}.chapter-title h3{margin:0;padding:0}.chapter-title h3 a{color:#fff;font-size:18px;line-height:26px;font-weight:700;text-decoration:none;white-space:nowrap;text-overflow:ellipsis;height:28px;overflow:hidden;display:block}.chapter-title p{margin:4px 0 0;padding:0;color:#fff;font-size:12px;font-weight:400;line-height:15px}.chapter-title p a{color:#fff;font-size:12px;font-weight:400;line-height:15px;text-decoration:none}.chapter-close{width:40px;margin-left:auto;display:flex;align-items:center;justify-content:flex-end}.chapter-close button{background:transparent;color:#fff;border:0;width:40px;height:40px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:8px}.chapter-close button:hover{background:rgba(255,255,255,.1)}.settings-header{display:flex;align-items:center;justify-content:space-between;position:relative}.settings-close-btn{background:transparent;color:#fff;border:0;width:32px;height:32px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:6px;cursor:pointer}.settings-close-btn:hover{background:rgba(255,255,255,.1)}.playlist-action-menu{display:none;justify-content:space-between;gap:10px}.playlist-action-menu button{background:transparent;border:0;width:40px;height:40px;padding:0;display:flex;justify-content:center;align-items:center;border-radius:100px}.playlist-action-menu button:hover{background:rgba(0,0,0,.1)}.start-action{display:flex}.chapter-body{height:calc(100% - 80px);overflow:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y;overscroll-behavior:contain;scroll-behavior:smooth}.chapter-body ul{margin:0;padding:0}.playlist-items a{padding:12px;display:flex;align-items:center;text-decoration:none;gap:12px;width:100%;box-sizing:border-box;color:#fff}.playlist-items a:hover{background:rgba(255,255,255,.06)}.playlist-items.selected a{background:rgba(255,255,255,.14)}.playlist-drag-handle{width:24px;display:flex;justify-content:center;color:#e0e0e0;font-size:12px}.thumbnail-meta{flex:1;min-width:0;padding:0}.thumbnail-meta h4{margin:0 2px 4px 0;font-size:14px;line-height:20px;font-weight:600;overflow:hidden;text-overflow:ellipsis;color:#fff;white-space:normal;max-height:40px;-webkit-line-clamp:2;line-clamp:2;display:-webkit-box;-webkit-box-orient:vertical}.thumbnail-meta .meta-sub{display:flex;gap:8px;align-items:center}.thumbnail-meta .meta-sub .meta-dynamic{color:#bdbdbd;font-size:12px;line-height:18px}.thumbnail-action button{border:0;background:transparent;color:#fff;opacity:0}.playlist-items a:hover .thumbnail-action button{opacity:1}.chapter-body::-webkit-scrollbar{width:10px}.chapter-body::-webkit-scrollbar-thumb{background:rgba(255,255,255,.18);border-radius:8px}.chapter-body::-webkit-scrollbar-track{background:transparent}@media (max-width: 767px){.chapter-body{-webkit-overflow-scrolling:touch;touch-action:pan-y;overscroll-behavior:contain;height:calc(100% - 70px)}.chapter-body::-webkit-scrollbar{width:0px}div.chapter-close button{width:30px;height:30px}.video-js-root-main .video-js.video-js-rounded-corners .custom-chapters-overlay{border-bottom-left-radius:12px!important;border-bottom-right-radius:12px!important}.custom-chapters-overlay .video-chapter{right:10px;left:auto;width:100%;max-width:280px;height:calc(100% - 40px);max-height:calc(100% - 40px);overflow:hidden;bottom:40px}.chapter-head{padding:10px 15px}.chapter-title h3 a{font-size:15px!important;line-height:20px!important;height:20px!important}.chapter-title p{font-size:11px!important;line-height:14px!important}.playlist-items a{padding:10px 16px!important;min-height:58px!important}.thumbnail-meta h4{font-size:13px!important;line-height:18px!important}.thumbnail-meta .meta-sub .meta-dynamic{font-size:11px!important;line-height:16px!important}}.vjs-settings-button{width:3em;height:3em;display:flex;align-items:center;justify-content:center;padding:0;margin:0}.vjs-icon-cog1{font-size:30px!important;position:relative;top:-8px!important;display:flex;align-items:center;justify-content:center;width:100%;height:100%;line-height:1}.custom-settings-overlay{border:0;position:absolute;bottom:60px;right:20px;width:280px;height:350px;background:rgba(28,28,28,.95);color:#fff;border-radius:7px;box-shadow:0 4px 12px #00000080;display:none;z-index:9999;font-size:14px;overflow:auto}.settings-header{padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.1);font-weight:700}.settings-item{padding:12px 16px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(255,255,255,.1);transition:background .2s ease;gap:10px}.settings-item .settings-left span{display:flex}.custom-settings-overlay .settings-left span.vjs-icon-placeholder{transform:inherit!important}.settings-item:last-child{border-bottom:none}.settings-item:hover{background:rgba(255,255,255,.05)}.speed-submenu,.quality-submenu,.subtitles-submenu{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(28,28,28,.95);display:none;flex-direction:column;overflow:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y;overscroll-behavior:contain}.subtitle-option{padding:12px 16px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;transition:background .2s ease}.subtitle-option:hover{background:rgba(255,255,255,.05)}.subtitle-option.active{background:rgba(255,255,255,.1)}.submenu-header{padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.1);display:flex;align-items:center;cursor:pointer;position:sticky;top:0;background:rgba(28,28,28,.95);z-index:1}.submenu-header:hover{background:rgba(28,28,28,1)}.speed-option{padding:12px 16px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;transition:background .2s ease}.speed-option:hover{background:rgba(255,255,255,.05)}.speed-option.active{background:rgba(255,255,255,.1)}.quality-option{padding:12px 16px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;transition:background .2s ease}.quality-option:hover{background:rgba(255,255,255,.05)}.quality-option.active{background:rgba(255,255,255,.1)}.settings-left{display:inline-flex;align-items:center;gap:8px}.settings-right{display:inline-flex;align-items:center;text-align:right}sup.hd-badge{font-size:10px;line-height:1;margin-left:6px;background:#e53935;color:#fff;padding:1px 4px;border-radius:3px}.video-js .vjs-settings-button{cursor:pointer!important;pointer-events:auto!important;position:relative!important;display:flex!important;align-items:center!important;justify-content:center!important;min-width:32px!important;height:32px!important;padding:0!important;border:none!important;background:transparent!important;color:inherit!important;font-size:inherit!important;line-height:inherit!important;text-align:center!important;vertical-align:middle!important;touch-action:manipulation!important;-webkit-tap-highlight-color:transparent!important;-webkit-touch-callout:none!important;-webkit-user-select:none!important;user-select:none!important}.video-js .vjs-settings-button:hover{background:none!important}.video-js .vjs-settings-button:focus{outline:none!important}.video-js .vjs-settings-button .vjs-icon-cog{font-size:18px!important;width:18px!important;height:18px!important;display:flex!important;align-items:center!important;justify-content:center!important}.video-js .vjs-control-bar .settings-item-svg{display:flex}.video-js .vjs-control-bar .settings-item-svg svg{width:auto!important;height:auto!important;transform:inherit!important}.vjs-settings-button svg{transition:ease-in-out .3s}.vjs-settings-button.settings-clicked svg{transform:rotate(30deg)}@media (max-width: 1024px){body div.custom-settings-overlay{height:calc(100% - 40px);max-height:300px}}@media (max-width: 767px){.video-js .vjs-settings-button{min-width:44px!important;height:44px!important;padding:0!important;margin:0 2px!important;display:flex!important;align-items:center!important;justify-content:center!important;touch-action:manipulation!important;-webkit-tap-highlight-color:transparent!important;cursor:pointer!important;z-index:1000!important;pointer-events:auto!important;position:relative!important}.video-js .vjs-settings-button .vjs-icon-cog{font-size:20px!important;width:20px!important;height:20px!important;display:flex!important;align-items:center!important;justify-content:center!important}.video-js .vjs-control-bar .vjs-button{touch-action:manipulation!important;-webkit-tap-highlight-color:transparent!important;-webkit-touch-callout:none!important;-webkit-user-select:none!important;user-select:none!important}.custom-settings-overlay .settings-item{padding:6px 16px;font-size:15px;touch-action:manipulation;line-height:18px}.custom-settings-overlay .settings-header{padding:10px 16px;font-size:18px;line-height:20px}body div.custom-settings-overlay{bottom:40px}}@media (max-width: 480px){.video-js .vjs-settings-button .vjs-icon-cog{font-size:22px!important;width:22px!important;height:22px!important}}.vjs-seek-indicator{position:absolute!important;top:50%!important;left:50%!important;transform:translate(-50%,-50%)!important;z-index:9999!important;pointer-events:none!important;display:none!important;align-items:center!important;justify-content:center!important;opacity:0!important;visibility:hidden!important;transition:opacity .2s ease-in-out!important}.vjs-seek-indicator-content{background:transparent!important;flex-direction:column!important;align-items:center!important;justify-content:center!important}.vjs-seek-indicator-icon{position:relative!important;display:flex!important;align-items:center!important;justify-content:center!important;margin-bottom:4px!important}.seek-icon-container{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;animation:seekPulse .3s ease-out!important}.youtube-seek-container{display:flex!important;align-items:center!important;justify-content:center!important;animation:youtubeSeekPulse .3s ease-out!important}.youtube-seek-circle{width:80px!important;height:80px!important;border-radius:50%!important;-webkit-border-radius:50%!important;-moz-border-radius:50%!important;background:rgba(0,0,0,.8)!important;backdrop-filter:blur(10px)!important;-webkit-backdrop-filter:blur(10px)!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;padding:0!important;box-shadow:0 4px 20px #0000004d!important;border:1px solid rgba(255,255,255,.15)!important;box-sizing:border-box!important;overflow:hidden!important}@media (max-width: 768px){.vjs-seek-indicator{top:calc(50% - 30px)!important}.youtube-seek-circle{width:60px!important;height:60px!important}.youtube-seek-icon svg{width:24px!important;height:24px!important}}@media (max-width: 480px){.vjs-seek-indicator{top:calc(50% - 40px)!important}.youtube-seek-circle{width:50px!important;height:50px!important}.youtube-seek-icon svg{width:20px!important;height:20px!important}}.youtube-seek-icon{display:flex!important;align-items:center!important;justify-content:center!important;margin-bottom:4px!important}.youtube-seek-icon svg{filter:drop-shadow(0 1px 2px rgba(0,0,0,.5))!important}.youtube-seek-time{color:#fff!important;font-size:10px!important;font-weight:500!important;text-align:center!important;line-height:1.2!important;opacity:.9!important;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif!important}@keyframes youtubeSeekPulse{0%{transform:scale(.7);opacity:.5}50%{transform:scale(1.05);opacity:.9}to{transform:scale(1);opacity:1}}.seek-seconds{color:#fff!important;font-size:16px!important;font-weight:700!important;text-shadow:0 2px 4px rgba(0,0,0,.7)!important;line-height:1!important}.vjs-seek-indicator-text{color:#fff!important;font-size:16px!important;font-weight:500!important;text-align:center!important;text-shadow:0 1px 2px rgba(0,0,0,.8)!important} +html{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}@media (hover: none) and (pointer: coarse){.video-js .vjs-control:hover:after,.video-js .vjs-control:focus:after,.video-js .vjs-control:active:after,.video-js button.vjs-button:hover span.vjs-control-text,.vjs-chapter-marker:hover .vjs-chapter-marker-tooltip,.vjs-chapter-floating-tooltip,.vjs-sprite-preview-tooltip{display:none!important;opacity:0!important;visibility:hidden!important}.video-js .vjs-progress-control{bottom:58px!important}.video-js .vjs-progress-holder,.video-js .vjs-seek-bar{touch-action:pan-x!important;-webkit-touch-callout:none!important;-webkit-user-select:none!important;user-select:none!important}.video-js .vjs-big-play-button{pointer-events:auto!important;z-index:1!important}.video-js .vjs-progress-control{z-index:10!important;pointer-events:auto!important}.video-js .vjs-autoplay-toggle.touch-active:after{opacity:1!important;visibility:visible!important}}.playlist-items a{text-decoration:none!important}.video-js-root-main .video-js.video-js-rounded-corners,.video-js-root-main .video-js.video-js-rounded-corners.vjs-has-started,.video-js-root-main .video-js.video-js-rounded-corners.vjs-fullscreen,.video-js-root-main .video-js.video-js-rounded-corners.vjs-paused,.video-js-root-main .video-js.video-js-rounded-corners.vjs-ended,.video-js-root-main .video-js.video-js-rounded-corners.chapters-open{outline:none!important;border-radius:12px!important}.video-js video{outline:none!important}.video-js-root-main .video-js.video-js-rounded-corners .vjs-poster{border-radius:12px!important}.video-js-root-main .video-js.video-js-rounded-corners video{border-radius:12px!important}.video-js div.vjs-control-bar{background:transparent!important;background-color:transparent!important;background-image:none!important;display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:flex-start!important;padding:0 12px;height:48px}.video-js .vjs-play-control{order:0!important}.video-js .vjs-play-wrapper{order:0!important;display:flex!important;align-items:center!important;justify-content:center!important;position:relative!important;background:rgba(0,0,0,.1)!important;border-radius:6px!important;padding:2px!important;margin:0 2px!important;transition:background-color .3s ease!important;width:40px!important;height:40px!important;flex-shrink:0!important}.video-js .vjs-play-wrapper:hover{background:rgba(0,0,0,.2)!important}.video-js .vjs-next-video-wrapper{order:1!important;display:flex!important;align-items:center!important;justify-content:center!important;position:relative!important;background:rgba(0,0,0,.1)!important;border-radius:6px!important;padding:2px!important;margin:0 2px!important;transition:background-color .3s ease!important;width:40px!important;height:40px!important;flex-shrink:0!important}.video-js .vjs-next-video-wrapper:hover{background:rgba(0,0,0,.2)!important}.video-js .vjs-volume-wrapper{order:2!important;display:flex!important;align-items:center!important;justify-content:center!important;position:relative!important;background:rgba(0,0,0,.1)!important;border-radius:6px!important;padding:2px!important;margin:0 2px!important;transition:background-color .3s ease!important;width:auto!important;height:40px!important;flex-shrink:0!important}.video-js .vjs-volume-wrapper:hover{background:rgba(0,0,0,.2)!important}.video-js .vjs-autoplay-wrapper{order:5!important;display:flex!important;align-items:center!important;justify-content:center!important;position:relative!important;background:rgba(0,0,0,.1)!important;border-radius:6px!important;padding:2px!important;margin:0 2px!important;transition:background-color .3s ease!important;width:40px!important;height:40px!important;flex-shrink:0!important}.video-js .vjs-autoplay-wrapper:hover{background:rgba(0,0,0,.2)!important}.video-js .vjs-chapters-button.vjs-menu-button{order:6!important;display:flex!important;align-items:center!important;justify-content:center!important;position:relative!important;background:rgba(0,0,0,.1)!important;border-radius:6px!important;padding:2px!important;margin:0 2px!important;transition:background-color .3s ease!important;width:40px!important;height:40px!important;flex-shrink:0!important}.video-js .vjs-chapters-button.vjs-menu-button:hover{background:rgba(0,0,0,.2)!important}.video-js .vjs-subtitles-button.vjs-menu-button{order:7!important;display:flex!important;align-items:center!important;justify-content:center!important;position:relative!important;background:rgba(0,0,0,.1)!important;border-radius:6px!important;padding:2px!important;margin:0 2px!important;transition:background-color .3s ease!important;width:40px!important;height:40px!important;flex-shrink:0!important}.video-js .vjs-subtitles-button.vjs-menu-button:hover{background:rgba(0,0,0,.2)!important}.video-js .vjs-settings-wrapper{order:8!important;display:flex!important;align-items:center!important;justify-content:center!important;position:relative!important;background:rgba(0,0,0,.1)!important;border-radius:6px!important;padding:2px!important;margin:0 2px!important;transition:background-color .3s ease!important;width:40px!important;height:40px!important;flex-shrink:0!important}.video-js .vjs-settings-wrapper:hover{background:rgba(0,0,0,.2)!important}.video-js .vjs-pip-wrapper{order:9!important;display:flex!important;align-items:center!important;justify-content:center!important;position:relative!important;background:rgba(0,0,0,.1)!important;border-radius:6px!important;padding:2px!important;margin:0 2px!important;transition:background-color .3s ease!important;width:40px!important;height:40px!important;flex-shrink:0!important}.video-js .vjs-pip-wrapper:hover{background:rgba(0,0,0,.2)!important}.video-js .vjs-pip-wrapper .vjs-picture-in-picture-control{display:flex!important;align-items:center!important;justify-content:center!important;width:36px!important;height:36px!important;margin:0!important;padding:0!important;position:relative!important}.video-js .vjs-fullscreen-wrapper{order:10!important;display:flex!important;align-items:center!important;justify-content:center!important;position:relative!important;background:rgba(0,0,0,.1)!important;border-radius:6px!important;padding:2px!important;margin:0 2px!important;transition:background-color .3s ease!important;width:40px!important;height:40px!important;flex-shrink:0!important}.video-js .vjs-fullscreen-wrapper:hover{background:rgba(0,0,0,.2)!important}.video-js .vjs-fullscreen-wrapper .vjs-fullscreen-control{display:flex!important;align-items:center!important;justify-content:center!important;width:36px!important;height:36px!important;margin:0!important;padding:0!important;position:relative!important}.video-js .vjs-pip-wrapper{margin-right:0!important}.video-js .vjs-fullscreen-wrapper{margin-left:0!important}.video-js .vjs-settings-wrapper .vjs-settings-button{display:flex!important;align-items:center!important;justify-content:center!important;width:36px!important;height:36px!important;margin:0!important;padding:0!important;position:relative!important;overflow:hidden!important}.video-js .vjs-settings-wrapper .vjs-settings-button svg{width:46px!important;height:46px!important}.video-js .vjs-play-wrapper,.video-js .vjs-next-video-wrapper,.video-js .vjs-volume-wrapper,.video-js .vjs-autoplay-wrapper,.video-js .vjs-chapters-button.vjs-menu-button,.video-js .vjs-subtitles-button.vjs-menu-button,.video-js .vjs-settings-wrapper,.video-js .vjs-pip-wrapper,.video-js .vjs-fullscreen-wrapper{align-items:center!important;justify-content:center!important;vertical-align:middle!important}.video-js .vjs-next-video-control{order:1!important}.video-js .vjs-volume-panel{order:2!important}.video-js .custom-remaining-time{order:3!important}.video-js .vjs-spacer-control{order:4!important}.video-js .vjs-autoplay-toggle{order:5!important}.video-js .vjs-chapters-button{order:6!important}.video-js .vjs-subs-caps-button,.video-js .vjs-subtitles-button{order:7!important}.video-js .vjs-settings-button{order:8!important}.video-js .vjs-picture-in-picture-control{order:9!important}.video-js .vjs-fullscreen-control{order:10!important}.video-js-root-main .video-js.video-js-rounded-corners:after{content:"";position:absolute;bottom:0;left:0;right:0;height:120px;background:linear-gradient(to top,rgba(0,0,0,.8) 0%,rgba(0,0,0,.6) 25%,rgba(0,0,0,.4) 50%,rgba(0,0,0,.2) 75%,transparent 100%);pointer-events:none;opacity:0;transition:opacity .3s ease;z-index:2}.video-js-root-main .video-js.video-js-rounded-corners.vjs-user-active:after,.video-js-root-main .video-js.video-js-rounded-corners.vjs-paused:after,.video-js-root-main .video-js.video-js-rounded-corners.vjs-ended:after{border-bottom-left-radius:12px!important;border-bottom-right-radius:12px!important;opacity:1}.video-js .vjs-control-bar{z-index:6!important}.video-js.vjs-user-active:before,.video-js.vjs-paused:before{content:"";position:absolute;bottom:0;left:0;right:0;height:120px;background:linear-gradient(transparent,rgba(0,0,0,.7));z-index:2;pointer-events:none;transition:opacity .3s ease}.video-js.vjs-user-inactive:not(.vjs-paused):before{opacity:0}.video-js .vjs-progress-control.vjs-control{z-index:7!important}.video-js .vjs-control-bar .vjs-button .vjs-icon-placeholder:before{color:#fff!important;text-shadow:0 1px 2px rgba(0,0,0,.6)!important}.video-js .vjs-control-bar .vjs-time-control{color:#fff!important;text-shadow:0 1px 2px rgba(0,0,0,.6)!important;font-weight:500!important}@media (hover: hover) and (pointer: fine){.vjs-volume-control.vjs-control{top:17px!important}}.video-js .vjs-volume-control .vjs-volume-bar{background:rgba(255,255,255,.3)!important}.video-js .vjs-volume-control .vjs-volume-level{background:#ffffff!important}.video-container{width:100%;max-width:1200px;margin:0 auto;padding:0 20px;box-sizing:border-box;overflow:hidden;position:relative}.video-js-root-main{width:100%;max-width:100%;overflow:hidden}.video-js.vjs-fluid{width:100%!important;max-width:100%!important}.vjs-play-progress{background-color:#019932!important}.vjs-load-progress,.vjs-progress-holder{background:rgba(255,255,255,.5)!important}.vjs-load-progress>div[data-start][data-end]{background:transparent!important;border:none!important;box-shadow:none!important}.video-js .vjs-progress-control{position:absolute!important;bottom:42px!important;left:0!important;right:0!important;width:100%!important;height:28px!important;z-index:3!important;padding:8px 0!important;margin:0 auto!important}.video-js .vjs-control-bar .vjs-progress-control{display:none!important}.video-js .vjs-progress-control.vjs-control{display:block!important}.video-js .vjs-control-bar .vjs-icon-placeholder,.video-js .vjs-control-bar .vjs-button .vjs-icon-placeholder,.video-js .vjs-control-bar [class*=vjs-icon-]{font-size:1.5em!important}.vjs-mouse-display{z-index:4!important}.vjs-slider-horizontal{top:-5px}.video-js .vjs-spacer-control{flex:1 1 auto!important;flex-grow:1!important;flex-shrink:1!important;min-width:1px!important;height:100%!important}.video-js .vjs-control-bar .vjs-spacer-control{margin-left:auto!important}.video-js .vjs-control-bar .vjs-control{flex:0 0 auto!important;flex-shrink:0!important}.video-js .vjs-autoplay-toggle{margin-right:0!important}.video-js .vjs-picture-in-picture-control{margin-left:6px!important}button{cursor:pointer}.video-js{padding:0;height:100%!important;outline:none;overflow:hidden}.video-js[tabindex]{outline:none}.video-js .vjs-text-track-display{position:absolute!important;bottom:6em!important;left:0!important;right:0!important;top:0!important;pointer-events:none!important;z-index:10!important}.video-js .vjs-text-track-cue{position:absolute!important;bottom:0!important;left:0!important;right:0!important;text-align:center!important;padding:0!important;background:transparent!important;border:none!important;font-size:1.2em!important;line-height:1.4!important;color:#fff!important;text-shadow:2px 2px 4px rgba(0,0,0,.8)!important;font-family:Arial,sans-serif!important;font-weight:600!important;white-space:pre-line!important;word-wrap:break-word!important;max-width:90%!important;margin:0 auto!important;z-index:11!important}.video-js .vjs-text-track-cue>div{background:rgba(0,0,0,.7)!important;padding:8px 12px!important;border-radius:4px!important;display:inline-block!important;margin:2px 0!important;max-width:100%!important;box-sizing:border-box!important}.video-js.vjs-fullscreen .vjs-text-track-display{bottom:8em!important}.video-js.vjs-fullscreen .vjs-text-track-cue{font-size:1.4em!important;max-width:85%!important}.video-js.vjs-fullscreen .vjs-text-track-cue>div{padding:10px 16px!important;font-size:1em!important}.video-js .vjs-menu-button:not(.vjs-disabled) .vjs-menu{display:none!important}.video-js .vjs-menu-button:not(.vjs-disabled).vjs-lock-showing .vjs-menu,.video-js .vjs-menu-button:not(.vjs-disabled) .vjs-menu.vjs-lock-showing{display:block!important}.video-js .vjs-menu-button:hover .vjs-menu{display:none!important}.video-js .vjs-menu-button.vjs-lock-showing:hover .vjs-menu{display:block!important}.video-js .vjs-menu.vjs-lock-showing{display:block!important;opacity:1!important;visibility:visible!important}.video-js.chapters-open .vjs-menu,.video-js.chapters-open .vjs-menu.vjs-lock-showing,.video-js.chapters-open .vjs-hover-display,.video-js.chapters-open .vjs-time-tooltip,.video-js.chapters-open .vjs-progress-holder .vjs-mouse-display{display:none!important;opacity:0!important;visibility:hidden!important}.video-js .vjs-volume-panel.vjs-hover{transition:ease-in-out .5s!important;width:auto!important}.video-js span.vjs-control-text{position:absolute!important;bottom:125%;left:50%;transform:translate(-50%);background:rgba(0,0,0,.75);color:#fff;padding:6px 8px!important;border-radius:3px;font-size:13px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .3s ease;z-index:1000;box-shadow:0 0 5px #0000004d;height:auto!important;width:auto!important;overflow:visible!important;clip:initial!important}.video-js button.vjs-button:hover span.vjs-control-text{opacity:1}.video-js .vjs-control:focus:before,.video-js .vjs-control:hover:before,.video-js .vjs-control:focus{text-shadow:none!important}.vjs-volume-panel{gap:5px;z-index:1000!important}.video-js .vjs-play-progress.vjs-slider-bar+.vjs-time-tooltip{padding:0}.video-js div.vjs-control{width:auto}.vjs-chapters-button button.vjs-button,.vjs-subtitles-button button.vjs-button,.video-js button.vjs-control{width:36px!important;height:36px!important;display:flex;align-items:center;justify-content:center;padding:0!important}button.vjs-button>.vjs-icon-placeholder:before{line-height:36px;transition:ease-in-out .5s}.vjs-icon-chapters:before,.video-js .vjs-chapters-button .vjs-icon-placeholder:before{font-size:2.1em!important}.video-js .vjs-volume-panel div.vjs-volume-control{height:100%!important;display:flex;align-items:center;justify-content:center;margin:0;width:0;transition:ease-in-out .5s!important;opacity:0}.video-js .vjs-volume-panel div.vjs-volume-control .vjs-volume-bar{margin:0;top:0}@media (pointer: coarse){.video-js .vjs-volume-panel div.vjs-volume-control{width:0!important;opacity:0!important;display:none!important}.video-js .vjs-volume-panel .vjs-mute-control{display:flex!important;opacity:1!important}}@media (max-width: 767px){.video-js .vjs-volume-panel div.vjs-volume-control{width:0!important;opacity:0!important;display:none!important}.video-js .vjs-big-play-button{width:60px!important;height:60px!important;font-size:2.5em!important;border-radius:50%!important}.video-js .vjs-big-play-button .vjs-icon-placeholder:before{font-size:1.2em!important;line-height:60px!important}.video-js-root-main .video-js.video-js-rounded-corners,.video-js-root-main .video-js.video-js-rounded-corners.vjs-has-started,.video-js-root-main .video-js.video-js-rounded-corners.vjs-fullscreen,.video-js-root-main .video-js.video-js-rounded-corners.vjs-paused,.video-js-root-main .video-js.video-js-rounded-corners.vjs-ended,.video-js-root-main .video-js.video-js-rounded-corners.chapters-open,.video-js-root-main .video-js.video-js-rounded-corners .vjs-poster{border-radius:0!important}.video-js-root-main .video-js.video-js-rounded-corners video{border-radius:0!important}.video-js .vjs-progress-control{bottom:42px!important}.video-js .vjs-play-wrapper,.video-js .vjs-next-video-wrapper,.video-js .vjs-volume-wrapper,.video-js .vjs-autoplay-wrapper,.video-js .vjs-chapters-button.vjs-menu-button,.video-js .vjs-subtitles-button.vjs-menu-button,.video-js .vjs-settings-wrapper,.video-js .vjs-pip-wrapper,.video-js .vjs-fullscreen-wrapper{padding:0!important;margin:0 1px!important;width:32px!important;height:32px!important;align-items:center!important;justify-content:center!important}.video-js .vjs-play-wrapper .vjs-play-control,.video-js .vjs-next-video-wrapper .vjs-next-video-control,.video-js .vjs-autoplay-wrapper .vjs-autoplay-toggle,.video-js .vjs-chapters-button.vjs-menu-button button,.video-js .vjs-subtitles-button.vjs-menu-button button,.video-js .vjs-settings-wrapper .vjs-settings-button,.video-js .vjs-pip-wrapper .vjs-picture-in-picture-control,.video-js .vjs-fullscreen-wrapper .vjs-fullscreen-control{width:32px!important;height:32px!important;display:flex!important;align-items:center!important;justify-content:center!important;margin:0!important;padding:0!important}.video-js .vjs-play-wrapper .vjs-play-control .vjs-icon-placeholder{display:flex!important;align-items:center!important;justify-content:center!important;width:100%!important;height:100%!important;line-height:1!important;position:absolute!important;top:48%!important;left:50%!important;transform:translate(-50%,-50%)!important}.video-js .vjs-play-wrapper .vjs-play-control .vjs-icon-placeholder:before{position:static!important;top:auto!important;left:auto!important;transform:none!important;vertical-align:middle!important;line-height:1!important;display:flex!important;align-items:center!important;justify-content:center!important}.vjs-chapters-button button.vjs-button,.vjs-subtitles-button button.vjs-button,.video-js button.vjs-control{width:32px;height:32px}button.vjs-button>.vjs-icon-placeholder:before{line-height:32px}.video-js div.vjs-control{height:32px}.vjs-button>.vjs-icon-placeholder:before{font-size:1.4em!important}.video-js div.vjs-control-bar{padding:0 2px;display:flex!important;flex-wrap:nowrap!important;gap:2px!important}.video-js .vjs-control-bar .vjs-control{flex:0 0 auto!important}.video-js .vjs-control-bar .custom-remaining-time{flex:0 1 auto!important;min-width:fit-content!important}.video-js .vjs-spacer-control{flex:1 1 auto!important;flex-grow:1!important;min-width:8px!important}.video-js .vjs-autoplay-toggle{margin-right:0!important}.video-js .vjs-picture-in-picture-control{margin-left:6px!important}.video-js .vjs-text-track-display{bottom:8em!important}.video-js .vjs-text-track-cue{font-size:1.1em!important;max-width:95%!important}.video-js .vjs-text-track-cue>div{padding:6px 10px!important;font-size:.9em!important;background:rgba(0,0,0,.8)!important}.video-js.vjs-fullscreen .vjs-text-track-display{bottom:10em!important}.video-js.vjs-fullscreen .vjs-text-track-cue{font-size:1.3em!important;max-width:90%!important}.video-js.vjs-fullscreen .vjs-text-track-cue>div{padding:8px 12px!important;font-size:.95em!important}.video-container{padding:0 15px}.video-js .vjs-control:hover:after,.video-js .vjs-control:focus:after,.video-js .vjs-control:active:after{display:none!important;opacity:0!important;visibility:hidden!important}.video-js .vjs-play-control:hover:after,.video-js .vjs-mute-control:hover:after,.video-js .vjs-volume-panel:hover:after,.video-js .vjs-fullscreen-control:hover:after,.video-js .vjs-picture-in-picture-control:hover:after,.video-js .vjs-settings-control:hover:after,.video-js .vjs-chapters-control:hover:after,.video-js .vjs-autoplay-toggle:hover:after,.video-js .vjs-next-video-control:hover:after,.video-js .vjs-remaining-time:hover:after{display:none!important;opacity:0!important;visibility:hidden!important}.video-js button.vjs-button:hover span.vjs-control-text{opacity:0!important;visibility:hidden!important}}@media (max-width: 500px){.video-js .vjs-volume-panel div.vjs-volume-control{width:0!important;opacity:0!important;display:none!important}.video-js .vjs-subtitles-button.vjs-menu-button,.video-js .vjs-subs-caps-button{display:none!important}.video-js .vjs-play-wrapper,.video-js .vjs-next-video-wrapper,.video-js .vjs-volume-wrapper{margin:0 .5px!important;padding:0!important}.vjs-chapters-button button.vjs-button,.vjs-subtitles-button button.vjs-button,.video-js button.vjs-control{width:26px!important;height:26px!important}button.vjs-button>.vjs-icon-placeholder:before{line-height:26px!important}.video-js div.vjs-control{height:26px!important}.vjs-button>.vjs-icon-placeholder:before{font-size:1.3em!important}.video-js div.vjs-control-bar{padding:0 1px!important;gap:0px!important;height:40px!important}.video-js .vjs-autoplay-toggle{margin-right:0!important}.video-js .vjs-progress-control{bottom:28px!important}.video-js .vjs-picture-in-picture-control,.video-js .vjs-descriptions-button,.video-js .vjs-audio-button{display:none!important}.video-js .custom-remaining-time{display:flex!important;visibility:visible!important;opacity:1!important;flex-shrink:0!important;min-width:fit-content!important}.video-js .custom-remaining-time .vjs-remaining-time-display{display:flex!important;visibility:visible!important;opacity:1!important}}@media (max-width: 480px){.video-js-root-main .video-js.video-js-rounded-corners,.video-js-root-main .video-js.video-js-rounded-corners.vjs-has-started,.video-js-root-main .video-js.video-js-rounded-corners.vjs-fullscreen,.video-js-root-main .video-js.video-js-rounded-corners.vjs-paused,.video-js-root-main .video-js.video-js-rounded-corners.vjs-ended,.video-js-root-main .video-js.video-js-rounded-corners.chapters-open,.video-js-root-main .video-js.video-js-rounded-corners .vjs-poster{border-radius:0!important}.video-js-root-main .video-js.video-js-rounded-corners video{border-radius:0!important}.video-container{padding:0 10px}.video-js .vjs-control:hover:after,.video-js .vjs-control:focus:after,.video-js .vjs-control:active:after{display:none!important;opacity:0!important;visibility:hidden!important}.video-js .vjs-play-control:hover:after,.video-js .vjs-mute-control:hover:after,.video-js .vjs-volume-panel:hover:after,.video-js .vjs-fullscreen-control:hover:after,.video-js .vjs-picture-in-picture-control:hover:after,.video-js .vjs-settings-control:hover:after,.video-js .vjs-chapters-control:hover:after,.video-js .vjs-autoplay-toggle:hover:after,.video-js .vjs-next-video-control:hover:after,.video-js .vjs-remaining-time:hover:after{display:none!important;opacity:0!important;visibility:hidden!important}.video-js button.vjs-button:hover span.vjs-control-text{opacity:0!important;visibility:hidden!important}}@media (max-width: 399px){.video-js .vjs-volume-panel div.vjs-volume-control{width:0!important;opacity:0!important;display:none!important}.video-js .vjs-subtitles-button.vjs-menu-button,.video-js .vjs-subs-caps-button{display:none!important}.video-js .vjs-play-wrapper,.video-js .vjs-next-video-wrapper,.video-js .vjs-volume-wrapper{margin:0!important;padding:0!important}.vjs-chapters-button button.vjs-button,.vjs-subtitles-button button.vjs-button,.video-js button.vjs-control{width:28px;height:28px}button.vjs-button>.vjs-icon-placeholder:before{line-height:28px}.video-js div.vjs-control{height:28px}.video-js div.vjs-control-bar{padding:0 1px;gap:1px!important}.video-js .vjs-control-bar .vjs-control{flex:0 0 auto!important}.video-js .vjs-control-bar .custom-remaining-time{flex:0 1 auto!important;min-width:fit-content!important}.video-js .vjs-spacer-control{flex:1 1 auto!important;flex-grow:1!important;min-width:4px!important}.video-js .vjs-autoplay-toggle{margin-right:0!important}.video-js .vjs-picture-in-picture-control{margin-left:4px!important}.video-js .vjs-text-track-display{bottom:7em!important}.video-js .vjs-text-track-cue{font-size:1em!important;max-width:98%!important}.video-js .vjs-text-track-cue>div{padding:4px 8px!important;font-size:.85em!important;background:rgba(0,0,0,.85)!important}.video-js.vjs-fullscreen .vjs-text-track-display{bottom:9em!important}.video-js.vjs-fullscreen .vjs-text-track-cue{font-size:1.2em!important;max-width:95%!important}.video-js.vjs-fullscreen .vjs-text-track-cue>div{padding:6px 10px!important;font-size:.9em!important}.vjs-button>.vjs-icon-placeholder:before{font-size:1.4em!important}}@media (min-width: 1025px){.video-js .vjs-text-track-display{bottom:6em!important}.video-js .vjs-autoplay-toggle{margin-right:0!important}.video-js .vjs-picture-in-picture-control{margin-left:12px!important}.video-js .vjs-text-track-cue{font-size:1.2em!important;max-width:90%!important}.video-js .vjs-text-track-cue>div{padding:8px 12px!important;font-size:1em!important}.video-js.vjs-fullscreen .vjs-text-track-display{bottom:8em!important}}@media (min-width: 768px) and (max-width: 899px){.video-js .vjs-text-track-display{bottom:8em!important}.video-js .vjs-text-track-cue{font-size:1.15em!important;max-width:88%!important}.video-js .vjs-text-track-cue>div{padding:7px 11px!important;font-size:.95em!important}.video-js.vjs-fullscreen .vjs-text-track-display{bottom:9em!important}.video-js .vjs-control:hover:after,.video-js .vjs-control:focus:after,.video-js .vjs-control:active:after{display:none!important;opacity:0!important;visibility:hidden!important}.video-js .vjs-play-control:hover:after,.video-js .vjs-mute-control:hover:after,.video-js .vjs-volume-panel:hover:after,.video-js .vjs-fullscreen-control:hover:after,.video-js .vjs-picture-in-picture-control:hover:after,.video-js .vjs-settings-control:hover:after,.video-js .vjs-chapters-control:hover:after,.video-js .vjs-autoplay-toggle:hover:after,.video-js .vjs-next-video-control:hover:after,.video-js .vjs-remaining-time:hover:after{display:none!important;opacity:0!important;visibility:hidden!important}.video-js button.vjs-button:hover span.vjs-control-text{opacity:0!important;visibility:hidden!important}}.vjs-svg-icon{display:inline-block;background-repeat:no-repeat;background-position:center;fill:currentColor;height:1.8em;width:1.8em}.vjs-svg-icon:before{content:none!important}.vjs-svg-icon:hover,.vjs-control:focus .vjs-svg-icon{filter:drop-shadow(0 0 .25em #fff)}.vjs-modal-dialog .vjs-modal-dialog-content,.video-js .vjs-modal-dialog,.vjs-button>.vjs-icon-placeholder:before,.video-js .vjs-big-play-button .vjs-icon-placeholder:before{position:absolute;top:0;left:0;width:100%;height:100%}.vjs-button>.vjs-icon-placeholder:before,.video-js .vjs-big-play-button .vjs-icon-placeholder:before{text-align:center}@font-face{font-family:VideoJS;src:url(data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAABTsAAsAAAAAIpAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAADsAAABUIIslek9TLzIAAAFEAAAAPgAAAFZRiV32Y21hcAAAAYQAAAEJAAAD5p42+VxnbHlmAAACkAAADtIAABckI4l972hlYWQAABFkAAAAKwAAADYsvIjpaGhlYQAAEZAAAAAdAAAAJA+RCL1obXR4AAARsAAAABcAAAC8Q2YAAGxvY2EAABHIAAAAYAAAAGB7CIGGbWF4cAAAEigAAAAfAAAAIAFAAI9uYW1lAAASSAAAASUAAAIK1cf1oHBvc3QAABNwAAABfAAAAnXdFqh1eJxjYGRgYOBiMGCwY2BycfMJYeDLSSzJY5BiYGGAAJA8MpsxJzM9kYEDxgPKsYBpDiBmg4gCACY7BUgAeJxjYGR7yDiBgZWBgaWQ5RkDA8MvCM0cwxDOeI6BgYmBlZkBKwhIc01hcPjI+FGPHcRdyA4RZgQRADaGCyYAAHic7dPXbcMwAEXRK1vuvffem749XAbKV3bjBA6fXsaIgMMLEWoQJaAEFKNnlELyQ4K27zib5PNF6vl8yld+TKr5kH0+cUw0xv00Hwvx2DResUyFKrV4XoMmLdp06NKjz4AhI8ZMmDJjzoIlK9Zs2LJjz4EjJ85cuHLjziPe/0UWL17mf2tqKLz/9jK9f8tXpGCoRdPKhtS0RqFkWvVQNtSKoVYNtWaoddPXEBqG2jQ9XWgZattQO4baNdSeofYNdWCoQ0MdGerYUCeGOjXUmaHODXVhqEtDXRnq2lA3hro11J2h7g31YKhHQz0Z6tlQL4Z6NdSbod4N9WGoT9MfHF6GmhnZLxyDcRMAAAB4nJ1YC1hU17U+a5/HMA4iA3NmVBDmoQwP5TFnHlFeA4gYiUFRQINoSCBAyK3G2yi+0aipYtFcHYo2xsb4NiY3+VrNxSaX5uvt495ozNdoYoxmem2/L8HGpLc+InB279pnhlGr5mvL4eyz99nrrL32eu1/DQcc/okdYgdHOA6MQKp4r9gx0EcMHMezOalVasW5BM7NcXoSb9fFgE6KtSSBxWz1FYDPG+vMBGcKb9cebu2VS5s2aaTkCvRSf6C7Y+Ppibm5E09v7IDs2/3uZQtbD0zIyppwoHXh/93ukmyYgdePNRp65p5v+3v/9otQl2O7wP34cT88p8Md2YxpYLQZoRcy6FlSBRnwnGAe6BPMSCZo+7NJVqS0cE4uHendzhSnbPH6TDqL1+Nme5LZXkCHnGyoH0kne30WH+gswhm3q+pt/mTas9NLS64GnjmSlTPw0wVQT/ewRaBgxtydy3cuUB9/6SW+vb5yRvr+t0eOfPKJZ/9t3+4tL7xj32Xd3thCxi+ge6ifdsAN+l5+wi5HQ/cCoeull1AszS7CUfEcJzK7sKWJAdJhCd0sPM4+EY7QDm5ov08hXRQXE5bf6PV5Q5+IjW7X7Nku92Ask4l2hCRRD6TPqISiCJeQna3SCFwrhrNzXHzo4yFevBwxpzxk8WCIIfkvVEKVy32SbT8n68gzgaslpaiO2zIGIyuSb7RNf9HSuN26y/7OC1tgEmpiyA6aD4qcgTOiLThwGG0eB694FI8NHLLN6OBlRVaMxNAFS4JdXUG6mW8PwpKuYLCLXKGbu8iwYNdgO06Sn3Th+/vyZAxs8Ro30DjHe9gy8Fywi24OMm7Qyzh3MTZVOMYhLBnoC+J79lpTUyQmorjhnMwlcQ5uPEYGpDjsOkkH49BjQLQBqs3jFtFdJNlksYmoQFDArLh8Xh+Qd6Ghcsb6FUuehDi+U/lqD71K/qiegeV1imcwjl7ExwiSrf4BZyCujV6cVcFo6VX+G9IcPyFjJnUufbU/jzrL1X99as36reXl8K32nFaOr+E8jWJEcJ55DpMVfSMe95/AJaOsGBH2GJCNpiRQbK4C8BjdmQA22QY2j03Em13i2YHqtNLU1NI04Yj2HJgA6fQc6VPNpA/D+Ryks554NnVy2mB72uRUfPLsqR4N0LOBQKArwJYO+5W2fgZX8oC1HR6HjNaQTVIG2FPwnTcXXGZZfNB7TE6pTKZUwaw91XWLAoFFGcnB5PHjsckgBjbWutrL+0h5Y1xw3DRGDumsnXb3MJwXrJIN5U7m0rgJ3yG5w4he5ckFG4pmNEkOm0/xOO4r4yL87wqtQM+hiJIVp+6iG2wPBKD35ElGkDx+UfC2v1mFG1o+M3AjNFty8biKMXwzyxnZLds8wYD2BxmCPHAldPOeLsy/0BugftYhVYFAhO8SqQ0j3oK7dHJZnI/jxmUS4onlxskSF8thmvNZjIrRZwEPxr0lBuLRuz3oy/FOHCsxwOPYh2M+e9u3J5pgPYz9gp6G7C9m0A11F9ddqKMfV+4sbq45/YspOysXvT+3pdFdYNg2fHbW8Dz301MqDVuGrz0Fuh0YMW8mddrpqzST7rV9BcvqPoNvadRndWp0p8HvbiqrFj5yFQ/vNFSXDpxpLEFWp+DcrF3FT1afWshFcmCfeAMjEvO65i0Y6XijQfSRPWx3TV/Df7Km3E1l+kLt56s/rwVzuRusNMhudznkwdLaS+QNdeal2jDPP4l9qHc98vTYZOSkxzD+njBWVWjFPKgipx6DkWvXQiW8OYcewVHE5yukinDMcfGgc0opDltYKDxIGBedkzc6jSfE7tlvESCDFUw0Hx0opS+U0lHCxNottbNWSxX9zZVvEhKWUSyBpaXwBc2a98M6UqPeXAs/GDon8Ax7hsthO8cM5HU7Ad0UvRR9lHmtyQKZ4MAe814X5h9MSUkQmhf96eVJ6p90OjIiqSIjvykvr2l5U55O/fPQKD+jIomYpNyGJQ25uQ2kIikRfAmuBHCPsWqkSDEqgZ5KDI2sifS/R43MbZg0idFHbCPNxXxZws1ACVE6hAhOdJwRkJLFBLPZpRGYJ50pko6XzMkgmSx40ljik6AQcKhFnLcQE6rF7PXFe1Ocoj0T3AXgSgJTDIhHRfHlYZKuSzc6uievOJGXY+i5GJkkTp7UM3y0LqATDbtFcbdBxO7o4T25JYlEjoH0uynUh8rapkxp62QN70svSF+hT4gGPlovlmcm/ComLi7mV4kTykV9NFWjE/QrwgQ4uIcAP0rQF4VZYRP2o3PhHHzfPMJj9Ir+uzKUlrH49ntT18AVvj1sc3YGjUT/Mt2Dxawa8ArcA7bCQIpvfwAYu22vEG/No/5RvPdA7g+AelLrPwzy+LtkLPhnpIxH14m4EYq8eeMHbPEPNm6G7Nv9B4jcFPZ8bJj0SEjP3MPgQdKTqqEoy2v6G32P/Y6dxOv04AxnoAeq+GILvUavtYCBXm+BaIhuodcfrN5B/V2EYMCPh+SxavjGyPwV0x4CJgUPGT0mQaODGBACIJZGsMXwAD0LGXx7l3CdAcKMIKI+f5CepWeD0BvyU/GcdBxPF8SwejC6LGZmAURFdsSWKR5HyHld2kbdIZO1Ixx+bnnzU7n5+blPNV9jnUDWhP2tC68tbN3PVIldsQPxSAcSpjOav7Q05uXn5zW2LLvDXn9B6syscPy9iDLEMmSrJz6nYuWMipukjM0AH8JkGS+XFyMRkzSCH7KD/hwm172SAyZYumHlefr5AddrtA0O0TnwaVZxcRY9Bfukn9Gf05N1r9DV9MoBsJ1f+ZrqUvtPHizJAntWybv7hmqLt6QLuK6ZS9Fqi1jO5rDoWPZXXII5Tgajg53cIXCjDCGIcYrRIY2n6+mXOa/W0bdhau3ryiEYe2FV/5oeaIYK/5w5frCyll6/cYO8DiNhw6t1MBWmznt91QX62UF1N7l0eHBZTRGpKaqpKVIPF9UcIzmReud9TSY75+K899GHbBu6wjoR7RKKZVYiYxSPf5/2wJT5e3NAhmUbVn5KLx1Ujg0+BGvpAIh0DezInTkzF37KVocxrKU3r1+XLtAe2lO3l66kfQfB/unKY+q8N375Ru8bc4pJXfEcESU95q+p8ZNZRTWH1d9FzvUdYXk5rLkcdkEisoKKVHQW/b3GEx6tPaYcoJfOr9wAbSBnv1IHpep0OExr4LPMkpJM+j7sly7UHkOzXjoAZljHCGiyegtNlwljM0v+c19ET9Pvst09a2Mtgcf5/ZSzYO5h1156+eyydfAsxGa9XAuF6vzjh6CssLq6ECysperXX0sX5h5ZdpZe3guxsGIPEtHk/aqXX1hVqP5HYVVVISkrrNqvXorIc+5Ou91Hnr/LcD2afi6eX7UBloOcs7cOpqgGaNfs1g7bNbs9z6wASaylN69d0/TFTIz6Ws8+oGV3mE2612wRTHKcVUbhjKadebloMc+dyXgMVtVK6BwMB/+mVW09igdRBWaRtNQX59d/VD//xdQ0TCiYNj1KT9sq6Wdu5WTbqk3qDXyDaLa1fv621LS01G3z61sD6lH8lAxDLicV921s6Bf92JOYvzNYCL1khbqBXEFUzC521N5NyzNaQIWhjyFyDoBIVrAjmv2UEaLlI+c6zw1jmVIPLLLZZUTj6GxGHW+mq1tgHXR2D85p4Q934+jLbtjVLcyCdS10NVzpHqxp4Q/hK7WopY/NRGx9HGsPGdFjOjcpjBnGYMVqY/4eqT5khWEHWUup2A/pTw7pdWgsWft7ETUERL96nRg0HNFPmCYba6pylECaExX89A9WLUOVB4oKLu/o1oqSYHCgLzBUlAz8hNFDRpeSU1XT+LRmDUgPaKbYdHDn9suF/tu13nHJij0N97LfS0QmqONuyONk7zvUI6Qa0pF9f2+oABL92AT6e0U//z9YqAiWtJLU1JK0gS+1aacwamiNqK067u9ZQ8f1d4qLodMzz3uL89Z68V/Hnr++hXWUuHgw8dfi972PeTyPefu3aNNucemQ74qFuIaJnVkOu4Q+yjuwmmC1FqZpl1i4uzoPxjkpPf3Xv545tl26Rr+dOvUd+omqJzch9dOeU7f10Y64nMcKK137DccIZq2WdXtdZjbEoLSzHwiMtrjYLDxpHQW8gjMX6XFYAE2zSWVD04EGYSs9MbO6sEo20BMEAB4mpvSypsKjZ4Stgzb+c3A9/MQT2+vrBy+qvyFxLUtLlSRF/Ri2wjfZ2dus2Q8lXx4608/jnqK5OOap6NY2PSjYYnECCjiEeLJll/pbmqfeIK+ps3+MxrlEhqmTPipVP7kqlF4VhpEb6r+Q7YOJg38kJ9SHBf3NBl6+9YchfbUjb5ahLSzUM3kPHmwFAsZ5rpai0S7E5xWzZ1j+fW7zsUWP2g5NXTw52ySCTrgG0+lbw60l2Y/CB185CoA8NK+tbRKxfjy6pm5hzQRRR+cMqv1Jbiw6STivtEvt3DRcy0QEh92JlUGo2PG4tSKHl00YD6xc8CK+YPYyy3io2lN8BcSjKRzrIV6ypOAobqxViJPaT9M9Hy5szY33mp7OX/Zu89L/7Ww5vqY2Y8b0pKgoiUhG5cPDPzq8qTV/WkzUOIvXVVA96kmjcBrr3HrYC/Wn+fYP6Z7T1rqy3zknbvqma/FvVk96fNXGkuaXrdHW5JGSxZT/2I/O73v+yNWafMdzc5NdxYurHs6h86e01sLKLz9EBrg+x36rxAaED7hRnAMx7Vzu+9wabh3zG8XLQjx0ablUJzmxdErxYT3kzQSd0SSafVqF5PXgpp0OyYJ1EyNHpGUZmvK575ySzd85JSqF7IBzSAbMM04+MbE58xF3/njXOGecSaermlw2y9PsSQdytLJVr8t+wg+rR8cZYoeNxVIzNdk3Bngi8U5LAlgTFoQnzJCa5EsCgYhCaGL+qPj7TdhG31p9tej3R04N//PXxNwJvyUqwaJqRPJY98TJ5TPndmflRAkAhBfe46sfKW5wizSge08Xb7Ca/GUVs55trngkKkrUS2WPzKttaaqq+idmahugkY+W6fN0I6i3gPt/x88U4wAAeJxjYGRgYADiGU9YXsXz23xl4GZnAIFH7fO+IdMc/WBxDgYmEAUASbMKwAB4nGNgZGBgZwABjj4Ghv//OfoZGBlQgT4ARicDZAAAAHicY2BgYGAfxJijD8Fmu4EqBwCSpgKpAAAAAAAADgBoAH4AzADgAQIBQgFsAZgB7gIuAooC0AL8A2IDjAOoA+AEMASwBNoFCAVaBcAGCAYuBnAGrAb2B04HigfSCCoIcAiGCJwIyAkkCVYJiAmsCfIKIApWCsQLknicY2BkYGDQZ2hmYGcAASYg5gJCBob/YD4DABqrAdAAeJxdkE1qg0AYhl8Tk9AIoVDaVSmzahcF87PMARLIMoFAl0ZHY1BHdBJIT9AT9AQ9RQ9Qeqy+yteNMzDzfM+88w0K4BY/cNAMB6N2bUaPPBLukybCLvleeAAPj8JD+hfhMV7hC3u4wxs7OO4NzQSZcI/8Ltwnfwi75E/hAR7wJTyk/xYeY49fYQ/PztM+jbTZ7LY6OWdBJdX/pqs6NYWa+zMxa13oKrA6Uoerqi/JwtpYxZXJ1coUVmeZUWVlTjq0/tHacjmdxuL90OR8O0UEDYMNdtiSEpz5XQGqzlm30kzUdAYFFOb8R7NOZk0q2lwAyz1i7oAr1xoXvrOgtYhZx8wY5KRV269JZ5yGpmzPTjQhvY9je6vEElPOuJP3mWKnP5M3V+YAAAB4nG2ReVPbMBDF/ULi2EkDBFqO3gdHLxUzDB9IkdexBllydRD49ihO3Ckz7B/a31utZnafkkGyiXnyclxhgB0MMUKKMTLkmGCKV5hhF3vYxxwHOMRrvMERjnGCU7zFO7zHB3zEJ3zGF3zFN5zhHBe4xHf8wE/8wm8w/MEVimTYKv44XR9MSCsUjVoeHE3vjQoNsSZ4mmxZmVWPjSz7jlou6/0qKOWEJdKMtCe793/hQfqxa6XWZHMXFl56RS4TvPXSaDeoy0zUUZB109KstDK8lHo5q6Qi1hcOnqkImubPS6aqRq7mlnaEWabub4iYblba3SRmgldS0+FWdhNtt04F14JUaqkl7tcpOpJtErvNt3Bd9HRT5JWxK25Ldjvp6br4hzfFiIdSmlzTg2fSUzNrLd1LE1ynxq4OVaVoKLjzJ60UPtj1RKzHzsbjly6inVnFBS2MucviPncU7Rr7lfTxRepDs1A2j3ZHRc7PuzFYSfE3ZOd4kjwBy227hA==) format("woff");font-weight:400;font-style:normal}.vjs-icon-play,.video-js .vjs-play-control .vjs-icon-placeholder,.video-js .vjs-big-play-button .vjs-icon-placeholder:before{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-play:before,.video-js .vjs-play-control .vjs-icon-placeholder:before,.video-js .vjs-big-play-button .vjs-icon-placeholder:before{content:""}.vjs-icon-play-circle{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-play-circle:before{content:""}.vjs-icon-pause,.video-js .vjs-play-control.vjs-playing .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-pause:before,.video-js .vjs-play-control.vjs-playing .vjs-icon-placeholder:before{content:""}.vjs-icon-volume-mute,.video-js .vjs-mute-control.vjs-vol-0 .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-volume-mute:before,.video-js .vjs-mute-control.vjs-vol-0 .vjs-icon-placeholder:before{content:""}.vjs-icon-volume-low,.video-js .vjs-mute-control.vjs-vol-1 .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-volume-low:before,.video-js .vjs-mute-control.vjs-vol-1 .vjs-icon-placeholder:before{content:""}.vjs-icon-volume-mid,.video-js .vjs-mute-control.vjs-vol-2 .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-volume-mid:before,.video-js .vjs-mute-control.vjs-vol-2 .vjs-icon-placeholder:before{content:""}.vjs-icon-volume-high,.video-js .vjs-mute-control .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-volume-high:before,.video-js .vjs-mute-control .vjs-icon-placeholder:before{content:""}.vjs-icon-fullscreen-enter,.video-js .vjs-fullscreen-control .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-fullscreen-enter:before,.video-js .vjs-fullscreen-control .vjs-icon-placeholder:before{content:""}.vjs-icon-fullscreen-exit,.video-js.vjs-fullscreen .vjs-fullscreen-control .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-fullscreen-exit:before,.video-js.vjs-fullscreen .vjs-fullscreen-control .vjs-icon-placeholder:before{content:""}.vjs-icon-spinner{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-spinner:before{content:""}.vjs-icon-subtitles,.video-js .vjs-subs-caps-button .vjs-icon-placeholder,.video-js.video-js:lang(en-GB) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js.video-js:lang(en-IE) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js.video-js:lang(en-AU) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js.video-js:lang(en-NZ) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js .vjs-subtitles-button .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-subtitles:before,.video-js .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js.video-js:lang(en-GB) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js.video-js:lang(en-IE) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js.video-js:lang(en-AU) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js.video-js:lang(en-NZ) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js .vjs-subtitles-button .vjs-icon-placeholder:before{content:""}.vjs-icon-captions,.video-js:lang(en) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js:lang(fr-CA) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js .vjs-captions-button .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-captions:before,.video-js:lang(en) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js:lang(fr-CA) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js .vjs-captions-button .vjs-icon-placeholder:before{content:""}.vjs-icon-hd{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-hd:before{content:""}.vjs-icon-chapters,.video-js .vjs-chapters-button .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-chapters:before,.video-js .vjs-chapters-button .vjs-icon-placeholder:before{content:""}.vjs-icon-downloading{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-downloading:before{content:""}.vjs-icon-file-download{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-file-download:before{content:""}.vjs-icon-file-download-done{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-file-download-done:before{content:""}.vjs-icon-file-download-off{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-file-download-off:before{content:""}.vjs-icon-share{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-share:before{content:""}.vjs-icon-cog{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-cog:before{content:""}.vjs-icon-square{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-square:before{content:""}.vjs-icon-circle,.vjs-seek-to-live-control .vjs-icon-placeholder,.video-js .vjs-volume-level,.video-js .vjs-play-progress{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-circle:before,.vjs-seek-to-live-control .vjs-icon-placeholder:before,.video-js .vjs-volume-level:before,.video-js .vjs-play-progress:before{content:""}.vjs-icon-circle-outline{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-circle-outline:before{content:""}.vjs-icon-circle-inner-circle{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-circle-inner-circle:before{content:""}.vjs-icon-cancel,.video-js .vjs-control.vjs-close-button .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-cancel:before,.video-js .vjs-control.vjs-close-button .vjs-icon-placeholder:before{content:""}.vjs-icon-repeat{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-repeat:before{content:""}.vjs-icon-replay,.video-js .vjs-play-control.vjs-ended .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-replay:before,.video-js .vjs-play-control.vjs-ended .vjs-icon-placeholder:before{content:""}.vjs-icon-replay-5,.video-js .vjs-skip-backward-5 .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-replay-5:before,.video-js .vjs-skip-backward-5 .vjs-icon-placeholder:before{content:""}.vjs-icon-replay-10,.video-js .vjs-skip-backward-10 .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-replay-10:before,.video-js .vjs-skip-backward-10 .vjs-icon-placeholder:before{content:""}.vjs-icon-replay-30,.video-js .vjs-skip-backward-30 .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-replay-30:before,.video-js .vjs-skip-backward-30 .vjs-icon-placeholder:before{content:""}.vjs-icon-forward-5,.video-js .vjs-skip-forward-5 .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-forward-5:before,.video-js .vjs-skip-forward-5 .vjs-icon-placeholder:before{content:""}.vjs-icon-forward-10,.video-js .vjs-skip-forward-10 .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-forward-10:before,.video-js .vjs-skip-forward-10 .vjs-icon-placeholder:before{content:""}.vjs-icon-forward-30,.video-js .vjs-skip-forward-30 .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-forward-30:before,.video-js .vjs-skip-forward-30 .vjs-icon-placeholder:before{content:""}.vjs-icon-audio,.video-js .vjs-audio-button .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-audio:before,.video-js .vjs-audio-button .vjs-icon-placeholder:before{content:""}.vjs-icon-next-item{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-next-item:before{content:""}.vjs-icon-previous-item{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-previous-item:before{content:""}.vjs-icon-shuffle{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-shuffle:before{content:""}.vjs-icon-cast{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-cast:before{content:""}.vjs-icon-picture-in-picture-enter,.video-js .vjs-picture-in-picture-control .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-picture-in-picture-enter:before,.video-js .vjs-picture-in-picture-control .vjs-icon-placeholder:before{content:""}.vjs-icon-picture-in-picture-exit,.video-js.vjs-picture-in-picture .vjs-picture-in-picture-control .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-picture-in-picture-exit:before,.video-js.vjs-picture-in-picture .vjs-picture-in-picture-control .vjs-icon-placeholder:before{content:""}.vjs-icon-facebook{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-facebook:before{content:""}.vjs-icon-linkedin{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-linkedin:before{content:""}.vjs-icon-twitter{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-twitter:before{content:""}.vjs-icon-tumblr{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-tumblr:before{content:""}.vjs-icon-pinterest{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-pinterest:before{content:""}.vjs-icon-audio-description,.video-js .vjs-descriptions-button .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-audio-description:before,.video-js .vjs-descriptions-button .vjs-icon-placeholder:before{content:""}.video-js{display:inline-block;vertical-align:top;box-sizing:border-box;color:#fff;background-color:#000;position:relative;padding:0;font-size:10px;line-height:1;font-weight:400;font-style:normal;font-family:Arial,Helvetica,sans-serif;word-break:initial}.video-js:-moz-full-screen{position:absolute}.video-js:-webkit-full-screen{width:100%!important;height:100%!important}.video-js[tabindex="-1"]{outline:none}.video-js *,.video-js *:before,.video-js *:after{box-sizing:inherit}.video-js ul{font-family:inherit;font-size:inherit;line-height:inherit;list-style-position:outside;margin:0}.video-js.vjs-fluid,.video-js.vjs-16-9,.video-js.vjs-4-3,.video-js.vjs-9-16,.video-js.vjs-1-1{width:100%;max-width:100%}.video-js.vjs-fluid:not(.vjs-audio-only-mode),.video-js.vjs-16-9:not(.vjs-audio-only-mode),.video-js.vjs-4-3:not(.vjs-audio-only-mode),.video-js.vjs-9-16:not(.vjs-audio-only-mode),.video-js.vjs-1-1:not(.vjs-audio-only-mode){height:0}.video-js.vjs-16-9:not(.vjs-audio-only-mode){padding-top:56.25%}.video-js.vjs-4-3:not(.vjs-audio-only-mode){padding-top:75%}.video-js.vjs-9-16:not(.vjs-audio-only-mode){padding-top:177.7777777778%}.video-js.vjs-1-1:not(.vjs-audio-only-mode){padding-top:100%}.video-js.vjs-fill:not(.vjs-audio-only-mode){width:100%;height:100%}.video-js .vjs-tech{position:absolute;top:0;left:0;width:100%;height:100%}.video-js.vjs-audio-only-mode .vjs-tech{display:none}body.vjs-full-window,body.vjs-pip-window{padding:0;margin:0;height:100%}.vjs-full-window .video-js.vjs-fullscreen,body.vjs-pip-window .video-js{position:fixed;overflow:hidden;z-index:1000;left:0;top:0;bottom:0;right:0}.video-js.vjs-fullscreen:not(.vjs-ios-native-fs),body.vjs-pip-window .video-js{width:100%!important;height:100%!important;padding-top:0!important;display:block}.video-js.vjs-fullscreen.vjs-user-inactive{cursor:none}.vjs-pip-container .vjs-pip-text{position:absolute;bottom:10%;font-size:2em;background-color:#000000b3;padding:.5em;text-align:center;width:100%}.vjs-layout-tiny.vjs-pip-container .vjs-pip-text,.vjs-layout-x-small.vjs-pip-container .vjs-pip-text,.vjs-layout-small.vjs-pip-container .vjs-pip-text{bottom:0;font-size:1.4em}.vjs-hidden{display:none!important}.vjs-disabled{opacity:.5;cursor:default}.video-js .vjs-offscreen{height:1px;left:-9999px;position:absolute;top:0;width:1px}.vjs-lock-showing{display:block!important;opacity:1!important;visibility:visible!important}.vjs-no-js{padding:20px;color:#fff;background-color:#000;font-size:18px;font-family:Arial,Helvetica,sans-serif;text-align:center;width:300px;height:150px;margin:0 auto}.vjs-no-js a,.vjs-no-js a:visited{color:#66a8cc}.video-js .vjs-big-play-button{font-size:3em;line-height:1.5em;height:1.63332em;width:3em;display:block;position:absolute;top:50%;left:50%;padding:0;margin-top:-.81666em;margin-left:-1.5em;cursor:pointer;opacity:1;border:.06666em solid #fff;background-color:#2b333f;background-color:#2b333fb3;border-radius:.3em;transition:all .4s}.vjs-big-play-button .vjs-svg-icon{width:1em;height:1em;position:absolute;top:50%;left:50%;line-height:1;transform:translate(-50%,-50%)}.video-js:hover .vjs-big-play-button,.video-js .vjs-big-play-button:focus{border-color:#fff;background-color:#73859f;background-color:#73859f80;transition:all 0s}.vjs-controls-disabled .vjs-big-play-button,.vjs-has-started .vjs-big-play-button,.vjs-using-native-controls .vjs-big-play-button,.vjs-error .vjs-big-play-button{display:none}.vjs-has-started.vjs-paused.vjs-show-big-play-button-on-pause:not(.vjs-seeking,.vjs-scrubbing,.vjs-error) .vjs-big-play-button{display:block}.video-js button{background:none;border:none;color:inherit;display:inline-block;font-size:inherit;line-height:inherit;text-transform:none;text-decoration:none;transition:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.video-js.vjs-spatial-navigation-enabled .vjs-button:focus{outline:.0625em solid white;box-shadow:none}.vjs-control .vjs-button{width:100%;height:100%}.video-js .vjs-control.vjs-close-button{cursor:pointer;height:3em;position:absolute;right:0;top:.5em;z-index:2}.video-js .vjs-modal-dialog{background:rgba(0,0,0,.8);background:linear-gradient(180deg,rgba(0,0,0,.8),rgba(255,255,255,0));overflow:auto}.video-js .vjs-modal-dialog>*{box-sizing:border-box}.vjs-modal-dialog .vjs-modal-dialog-content{font-size:1.2em;line-height:1.5;padding:20px 24px;z-index:1}.vjs-menu-button{cursor:pointer}.vjs-menu-button.vjs-disabled{cursor:default}.vjs-workinghover .vjs-menu-button.vjs-disabled:hover .vjs-menu{display:none}.vjs-menu .vjs-menu-content{display:block;padding:0;margin:0;font-family:Arial,Helvetica,sans-serif;overflow:auto}.vjs-menu .vjs-menu-content>*{box-sizing:border-box}.vjs-scrubbing .vjs-control.vjs-menu-button:hover .vjs-menu{display:none}.vjs-menu li{display:flex;justify-content:center;list-style:none;margin:0;padding:.2em 0;line-height:1.4em;font-size:1.2em;text-align:center;text-transform:lowercase}.vjs-menu li.vjs-menu-item:focus,.vjs-menu li.vjs-menu-item:hover,.js-focus-visible .vjs-menu li.vjs-menu-item:hover{background-color:#73859f;background-color:#73859f80}.vjs-menu li.vjs-selected,.vjs-menu li.vjs-selected:focus,.vjs-menu li.vjs-selected:hover,.js-focus-visible .vjs-menu li.vjs-selected:hover{background-color:#fff;color:#2b333f}.vjs-menu li.vjs-selected .vjs-svg-icon,.vjs-menu li.vjs-selected:focus .vjs-svg-icon,.vjs-menu li.vjs-selected:hover .vjs-svg-icon,.js-focus-visible .vjs-menu li.vjs-selected:hover .vjs-svg-icon{fill:#000}.video-js .vjs-menu *:not(.vjs-selected):focus:not(:focus-visible),.js-focus-visible .vjs-menu *:not(.vjs-selected):focus:not(.focus-visible){background:none}.vjs-menu li.vjs-menu-title{text-align:center;text-transform:uppercase;font-size:1em;line-height:2em;padding:0;margin:0 0 .3em;font-weight:700;cursor:default}.vjs-menu-button-popup .vjs-menu{display:none;position:absolute;bottom:0;width:10em;left:-3em;height:0em;margin-bottom:1.5em;border-top-color:#2b333fb3}.vjs-pip-window .vjs-menu-button-popup .vjs-menu{left:unset;right:1em}.vjs-menu-button-popup .vjs-menu .vjs-menu-content{background-color:#2b333f;background-color:#2b333fb3;position:absolute;width:100%;bottom:1.5em;max-height:15em}.vjs-layout-tiny .vjs-menu-button-popup .vjs-menu .vjs-menu-content,.vjs-layout-x-small .vjs-menu-button-popup .vjs-menu .vjs-menu-content{max-height:5em}.vjs-layout-small .vjs-menu-button-popup .vjs-menu .vjs-menu-content{max-height:10em}.vjs-layout-medium .vjs-menu-button-popup .vjs-menu .vjs-menu-content{max-height:14em}.vjs-layout-large .vjs-menu-button-popup .vjs-menu .vjs-menu-content,.vjs-layout-x-large .vjs-menu-button-popup .vjs-menu .vjs-menu-content,.vjs-layout-huge .vjs-menu-button-popup .vjs-menu .vjs-menu-content{max-height:25em}.vjs-workinghover .vjs-menu-button-popup.vjs-hover .vjs-menu,.vjs-menu-button-popup .vjs-menu.vjs-lock-showing{display:block}.video-js .vjs-menu-button-inline{transition:all .4s;overflow:hidden}.video-js .vjs-menu-button-inline:before{width:2.222222222em}.video-js .vjs-menu-button-inline:hover,.video-js .vjs-menu-button-inline:focus,.video-js .vjs-menu-button-inline.vjs-slider-active{width:12em}.vjs-menu-button-inline .vjs-menu{opacity:0;height:100%;width:auto;position:absolute;left:4em;top:0;padding:0;margin:0;transition:all .4s}.vjs-menu-button-inline:hover .vjs-menu,.vjs-menu-button-inline:focus .vjs-menu,.vjs-menu-button-inline.vjs-slider-active .vjs-menu{display:block;opacity:1}.vjs-menu-button-inline .vjs-menu-content{width:auto;height:100%;margin:0;overflow:hidden}.video-js .vjs-control-bar{display:none;width:100%;position:absolute;bottom:0;left:0;right:0;height:3em;background-color:#2b333f;background-color:#2b333fb3}.video-js.vjs-spatial-navigation-enabled .vjs-control-bar{gap:1px}.video-js:not(.vjs-controls-disabled,.vjs-using-native-controls,.vjs-error) .vjs-control-bar.vjs-lock-showing{display:flex!important}.vjs-has-started .vjs-control-bar,.vjs-audio-only-mode .vjs-control-bar{display:flex;visibility:visible;opacity:1;transition:visibility .1s,opacity .1s}.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar{visibility:visible;opacity:0;pointer-events:none;transition:visibility 1s,opacity 1s}.vjs-controls-disabled .vjs-control-bar,.vjs-using-native-controls .vjs-control-bar,.vjs-error .vjs-control-bar{display:none!important}.vjs-audio.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar,.vjs-audio-only-mode.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar{opacity:1;visibility:visible;pointer-events:auto}.video-js .vjs-control{position:relative;text-align:center;margin:0;padding:0;height:100%;width:4em;flex:none}.video-js .vjs-control.vjs-visible-text{width:auto;padding-left:1em;padding-right:1em}.vjs-button>.vjs-icon-placeholder:before{font-size:1.8em;line-height:1.67}.vjs-button>.vjs-icon-placeholder{display:block}.vjs-button>.vjs-svg-icon{display:inline-block}.video-js .vjs-control:focus:before,.video-js .vjs-control:hover:before,.video-js .vjs-control:focus{text-shadow:0em 0em 1em white}.video-js *:not(.vjs-visible-text)>.vjs-control-text{border:0;clip:rect(0 0 0 0);height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.video-js .vjs-custom-control-spacer{display:none}.video-js .vjs-progress-control{cursor:pointer;flex:auto;display:flex;align-items:center;min-width:4em;touch-action:none}.video-js .vjs-progress-control.disabled{cursor:default}.vjs-live .vjs-progress-control{display:none}.vjs-liveui .vjs-progress-control{display:flex;align-items:center}.video-js .vjs-progress-holder{flex:auto;transition:all .2s;height:.3em}.video-js .vjs-progress-control .vjs-progress-holder{margin:0 10px}.video-js .vjs-progress-control:hover .vjs-progress-holder,.video-js.vjs-scrubbing.vjs-touch-enabled .vjs-progress-control .vjs-progress-holder{font-size:1.6666666667em}.video-js .vjs-progress-control:hover .vjs-progress-holder.disabled{font-size:1em}.video-js .vjs-progress-holder .vjs-play-progress,.video-js .vjs-progress-holder .vjs-load-progress,.video-js .vjs-progress-holder .vjs-load-progress div{position:absolute;display:block;height:100%;margin:0;padding:0;width:0}.video-js .vjs-play-progress{background-color:#fff}.video-js .vjs-play-progress:before{font-size:.9em;position:absolute;right:-.5em;line-height:.35em;z-index:1}.vjs-svg-icons-enabled .vjs-play-progress:before{content:none!important}.vjs-play-progress .vjs-svg-icon{position:absolute;top:-.35em;right:-.4em;width:.9em;height:.9em;pointer-events:none;line-height:.15em;z-index:1}.video-js .vjs-load-progress{background:rgba(114.9141509434,132.7028301887,159.3858490566,.5)}.video-js .vjs-load-progress div{background:rgba(114.9141509434,132.7028301887,159.3858490566,.75)}.video-js .vjs-time-tooltip{background-color:#fff;background-color:#fffc;border-radius:.3em;color:#000;float:right;font-family:Arial,Helvetica,sans-serif;font-size:1em;padding:6px 8px 8px;pointer-events:none;position:absolute;top:-3.4em;visibility:hidden;z-index:1}.video-js .vjs-progress-holder:focus .vjs-time-tooltip{display:none}.video-js .vjs-progress-control:hover .vjs-time-tooltip,.video-js .vjs-progress-control:hover .vjs-progress-holder:focus .vjs-time-tooltip,.video-js.vjs-scrubbing.vjs-touch-enabled .vjs-progress-control .vjs-time-tooltip{display:block;font-size:.6em;visibility:visible}.video-js .vjs-progress-control.disabled:hover .vjs-time-tooltip{font-size:1em}.video-js .vjs-progress-control .vjs-mouse-display{display:none;position:absolute;width:1px;height:100%;background-color:#000;z-index:1}.video-js .vjs-progress-control:hover .vjs-mouse-display,.video-js.vjs-scrubbing.vjs-touch-enabled .vjs-progress-control .vjs-mouse-display{display:block}.video-js.vjs-user-inactive .vjs-progress-control .vjs-mouse-display,.video-js.vjs-touch-enabled:not(.vjs-scrubbing) .vjs-progress-control .vjs-mouse-display{visibility:hidden;opacity:0;transition:visibility 1s,opacity 1s}.vjs-mouse-display .vjs-time-tooltip{color:#fff;background-color:#000;background-color:#000c}.video-js .vjs-slider{position:relative;cursor:pointer;padding:0;margin:0 .45em;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;background-color:#73859f;background-color:#73859f80}.video-js .vjs-slider.disabled{cursor:default}.video-js .vjs-slider:focus{text-shadow:0em 0em 1em white;box-shadow:0 0 1em #fff}.video-js.vjs-spatial-navigation-enabled .vjs-slider:focus{outline:.0625em solid white}.video-js .vjs-mute-control{cursor:pointer;flex:none}.video-js .vjs-volume-control{cursor:pointer;margin-right:1em;display:flex}.video-js .vjs-volume-control.vjs-volume-horizontal{width:5em}.video-js .vjs-volume-panel .vjs-volume-control{visibility:visible;opacity:0;width:1px;height:1px;margin-left:-1px}.video-js .vjs-volume-panel{transition:width 1s}.video-js .vjs-volume-panel.vjs-hover .vjs-volume-control,.video-js .vjs-volume-panel:active .vjs-volume-control,.video-js .vjs-volume-panel:focus .vjs-volume-control,.video-js .vjs-volume-panel .vjs-volume-control:active,.video-js .vjs-volume-panel.vjs-hover .vjs-mute-control~.vjs-volume-control,.video-js .vjs-volume-panel .vjs-volume-control.vjs-slider-active{visibility:visible;opacity:1;position:relative;transition:visibility .1s,opacity .1s,height .1s,width .1s,left 0s,top 0s}.video-js .vjs-volume-panel.vjs-hover .vjs-volume-control.vjs-volume-horizontal,.video-js .vjs-volume-panel:active .vjs-volume-control.vjs-volume-horizontal,.video-js .vjs-volume-panel:focus .vjs-volume-control.vjs-volume-horizontal,.video-js .vjs-volume-panel .vjs-volume-control:active.vjs-volume-horizontal,.video-js .vjs-volume-panel.vjs-hover .vjs-mute-control~.vjs-volume-control.vjs-volume-horizontal,.video-js .vjs-volume-panel .vjs-volume-control.vjs-slider-active.vjs-volume-horizontal{width:5em;height:3em;margin-right:0}.video-js .vjs-volume-panel.vjs-hover .vjs-volume-control.vjs-volume-vertical,.video-js .vjs-volume-panel:active .vjs-volume-control.vjs-volume-vertical,.video-js .vjs-volume-panel:focus .vjs-volume-control.vjs-volume-vertical,.video-js .vjs-volume-panel .vjs-volume-control:active.vjs-volume-vertical,.video-js .vjs-volume-panel.vjs-hover .vjs-mute-control~.vjs-volume-control.vjs-volume-vertical,.video-js .vjs-volume-panel .vjs-volume-control.vjs-slider-active.vjs-volume-vertical{left:-3.5em;transition:left 0s}.video-js .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-hover,.video-js .vjs-volume-panel.vjs-volume-panel-horizontal:active,.video-js .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active{width:10em;transition:width .1s}.video-js .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-mute-toggle-only{width:4em}.video-js .vjs-volume-panel .vjs-volume-control.vjs-volume-vertical{height:8em;width:3em;left:-3000em;transition:visibility 1s,opacity 1s,height 1s 1s,width 1s 1s,left 1s 1s,top 1s 1s}.video-js .vjs-volume-panel .vjs-volume-control.vjs-volume-horizontal{transition:visibility 1s,opacity 1s,height 1s 1s,width 1s,left 1s 1s,top 1s 1s}.video-js .vjs-volume-panel{display:flex}.video-js .vjs-volume-bar{margin:1.35em .45em}.vjs-volume-bar.vjs-slider-horizontal{width:5em;height:.3em}.vjs-volume-bar.vjs-slider-vertical{width:.3em;height:5em;margin:1.35em auto}.video-js .vjs-volume-level{position:absolute;bottom:0;left:0;background-color:#fff}.video-js .vjs-volume-level:before{position:absolute;font-size:.9em;z-index:1}.vjs-slider-vertical .vjs-volume-level{width:.3em}.vjs-slider-vertical .vjs-volume-level:before{top:-.5em;left:-.3em;z-index:1}.vjs-svg-icons-enabled .vjs-volume-level:before{content:none}.vjs-volume-level .vjs-svg-icon{position:absolute;width:.9em;height:.9em;pointer-events:none;z-index:1}.vjs-slider-horizontal .vjs-volume-level{height:.3em}.vjs-slider-horizontal .vjs-volume-level:before{line-height:.35em;right:-.5em}.vjs-slider-horizontal .vjs-volume-level .vjs-svg-icon{right:-.3em;transform:translateY(-50%)}.vjs-slider-vertical .vjs-volume-level .vjs-svg-icon{top:-.55em;transform:translate(-50%)}.video-js .vjs-volume-panel.vjs-volume-panel-vertical{width:4em}.vjs-volume-bar.vjs-slider-vertical .vjs-volume-level{height:100%}.vjs-volume-bar.vjs-slider-horizontal .vjs-volume-level{width:100%}.video-js .vjs-volume-vertical{width:3em;height:8em;bottom:8em;background-color:#2b333f;background-color:#2b333fb3}.video-js .vjs-volume-horizontal .vjs-menu{left:-2em}.video-js .vjs-volume-tooltip{background-color:#fff;background-color:#fffc;border-radius:.3em;color:#000;float:right;font-family:Arial,Helvetica,sans-serif;font-size:1em;padding:6px 8px 8px;pointer-events:none;position:absolute;top:-3.4em;visibility:hidden;z-index:1}.video-js .vjs-volume-control:hover .vjs-volume-tooltip,.video-js .vjs-volume-control:hover .vjs-progress-holder:focus .vjs-volume-tooltip{display:block;font-size:1em;visibility:visible}.video-js .vjs-volume-vertical:hover .vjs-volume-tooltip,.video-js .vjs-volume-vertical:hover .vjs-progress-holder:focus .vjs-volume-tooltip{left:1em;top:-12px}.video-js .vjs-volume-control.disabled:hover .vjs-volume-tooltip{font-size:1em}.video-js .vjs-volume-control .vjs-mouse-display{display:none;position:absolute;width:100%;height:1px;background-color:#000;z-index:1}.video-js .vjs-volume-horizontal .vjs-mouse-display{width:1px;height:100%}.video-js .vjs-volume-control:hover .vjs-mouse-display{display:block}.video-js.vjs-user-inactive .vjs-volume-control .vjs-mouse-display{visibility:hidden;opacity:0;transition:visibility 1s,opacity 1s}.vjs-mouse-display .vjs-volume-tooltip{color:#fff;background-color:#000;background-color:#000c}.vjs-poster{display:inline-block;vertical-align:middle;cursor:pointer;margin:0;padding:0;position:absolute;top:0;right:0;bottom:0;left:0;height:100%}.vjs-has-started .vjs-poster,.vjs-using-native-controls .vjs-poster{display:none}.vjs-audio.vjs-has-started .vjs-poster,.vjs-has-started.vjs-audio-poster-mode .vjs-poster,.vjs-pip-container.vjs-has-started .vjs-poster{display:block}.vjs-poster img{width:100%;height:100%;object-fit:contain}.video-js .vjs-live-control{display:flex;align-items:flex-start;flex:auto;font-size:1em;line-height:3em}.video-js:not(.vjs-live) .vjs-live-control,.video-js.vjs-liveui .vjs-live-control{display:none}.video-js .vjs-seek-to-live-control{align-items:center;cursor:pointer;flex:none;display:inline-flex;height:100%;padding-left:.5em;padding-right:.5em;font-size:1em;line-height:3em;width:auto;min-width:4em}.video-js.vjs-live:not(.vjs-liveui) .vjs-seek-to-live-control,.video-js:not(.vjs-live) .vjs-seek-to-live-control{display:none}.vjs-seek-to-live-control.vjs-control.vjs-at-live-edge{cursor:auto}.vjs-seek-to-live-control .vjs-icon-placeholder{margin-right:.5em;color:#888}.vjs-svg-icons-enabled .vjs-seek-to-live-control{line-height:0}.vjs-seek-to-live-control .vjs-svg-icon{width:1em;height:1em;pointer-events:none;fill:#888}.vjs-seek-to-live-control.vjs-control.vjs-at-live-edge .vjs-icon-placeholder{color:red}.vjs-seek-to-live-control.vjs-control.vjs-at-live-edge .vjs-svg-icon{fill:red}.video-js .vjs-time-control{flex:none;font-size:1em;line-height:3em;min-width:2em;width:auto;padding-left:1em;padding-right:1em}.vjs-live .vjs-time-control,.vjs-live .vjs-time-divider,.video-js .vjs-current-time,.video-js .vjs-duration{display:none}.vjs-time-divider{display:none;line-height:3em}.vjs-normalise-time-controls:not(.vjs-live) .vjs-time-control{display:flex}.video-js .vjs-play-control{cursor:pointer}.video-js .vjs-play-control .vjs-icon-placeholder{flex:none}.vjs-text-track-display{position:absolute;bottom:3em;left:0;right:0;top:0;pointer-events:none}.vjs-error .vjs-text-track-display{display:none}.video-js.vjs-controls-disabled .vjs-text-track-display,.video-js.vjs-user-inactive.vjs-playing .vjs-text-track-display{bottom:1em}.video-js .vjs-text-track{font-size:1.4em;text-align:center;margin-bottom:.1em}.vjs-subtitles{color:#fff}.vjs-captions{color:#fc6}.vjs-tt-cue{display:block}video::-webkit-media-text-track-display{transform:translateY(-3em)}.video-js.vjs-controls-disabled video::-webkit-media-text-track-display,.video-js.vjs-user-inactive.vjs-playing video::-webkit-media-text-track-display{transform:translateY(-1.5em)}.video-js.vjs-force-center-align-cues .vjs-text-track-cue{text-align:center!important;width:80%!important}@supports not (inset: 10px){.video-js .vjs-text-track-display>div{top:0;right:0;bottom:0;left:0}}.video-js .vjs-picture-in-picture-control{cursor:pointer;flex:none}.video-js.vjs-audio-only-mode .vjs-picture-in-picture-control,.vjs-pip-window .vjs-picture-in-picture-control{display:none}.video-js .vjs-fullscreen-control{cursor:pointer;flex:none}.video-js.vjs-audio-only-mode .vjs-fullscreen-control,.vjs-pip-window .vjs-fullscreen-control{display:none}.vjs-playback-rate>.vjs-menu-button,.vjs-playback-rate .vjs-playback-rate-value{position:absolute;top:0;left:0;width:100%;height:100%}.vjs-playback-rate .vjs-playback-rate-value{pointer-events:none;font-size:1.5em;line-height:2;text-align:center}.vjs-playback-rate .vjs-menu{width:4em;left:0}.vjs-error .vjs-error-display .vjs-modal-dialog-content{font-size:1.4em;text-align:center}.vjs-loading-spinner{display:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);opacity:.85;text-align:left;border:.6em solid rgba(43,51,63,.7);box-sizing:border-box;background-clip:padding-box;width:5em;height:5em;border-radius:50%;visibility:hidden}.vjs-seeking .vjs-loading-spinner,.vjs-waiting .vjs-loading-spinner{display:flex;justify-content:center;align-items:center;animation:vjs-spinner-show 0s linear .3s forwards}.vjs-error .vjs-loading-spinner{display:none}.vjs-loading-spinner:before,.vjs-loading-spinner:after{content:"";position:absolute;box-sizing:inherit;width:inherit;height:inherit;border-radius:inherit;opacity:1;border:inherit;border-color:transparent;border-top-color:#fff}.vjs-seeking .vjs-loading-spinner:before,.vjs-seeking .vjs-loading-spinner:after,.vjs-waiting .vjs-loading-spinner:before,.vjs-waiting .vjs-loading-spinner:after{animation:vjs-spinner-spin 1.1s cubic-bezier(.6,.2,0,.8) infinite,vjs-spinner-fade 1.1s linear infinite}.vjs-seeking .vjs-loading-spinner:before,.vjs-waiting .vjs-loading-spinner:before{border-top-color:#fff}.vjs-seeking .vjs-loading-spinner:after,.vjs-waiting .vjs-loading-spinner:after{border-top-color:#fff;animation-delay:.44s}@keyframes vjs-spinner-show{to{visibility:visible}}@keyframes vjs-spinner-spin{to{transform:rotate(360deg)}}@keyframes vjs-spinner-fade{0%{border-top-color:#73859f}20%{border-top-color:#73859f}35%{border-top-color:#fff}60%{border-top-color:#73859f}to{border-top-color:#73859f}}.video-js.vjs-audio-only-mode .vjs-captions-button{display:none}.vjs-chapters-button .vjs-menu ul{width:24em}.video-js.vjs-audio-only-mode .vjs-descriptions-button{display:none}.vjs-subs-caps-button+.vjs-menu .vjs-captions-menu-item .vjs-svg-icon{width:1.5em;height:1.5em}.video-js .vjs-subs-caps-button+.vjs-menu .vjs-captions-menu-item .vjs-menu-item-text .vjs-icon-placeholder{vertical-align:middle;display:inline-block;margin-bottom:-.1em}.video-js .vjs-subs-caps-button+.vjs-menu .vjs-captions-menu-item .vjs-menu-item-text .vjs-icon-placeholder:before{font-family:VideoJS;content:"";font-size:1.5em;line-height:inherit}.video-js.vjs-audio-only-mode .vjs-subs-caps-button{display:none}.video-js .vjs-audio-button+.vjs-menu .vjs-descriptions-menu-item .vjs-menu-item-text .vjs-icon-placeholder,.video-js .vjs-audio-button+.vjs-menu .vjs-main-desc-menu-item .vjs-menu-item-text .vjs-icon-placeholder{vertical-align:middle;display:inline-block;margin-bottom:-.1em}.video-js .vjs-audio-button+.vjs-menu .vjs-descriptions-menu-item .vjs-menu-item-text .vjs-icon-placeholder:before,.video-js .vjs-audio-button+.vjs-menu .vjs-main-desc-menu-item .vjs-menu-item-text .vjs-icon-placeholder:before{font-family:VideoJS;content:" ";font-size:1.5em;line-height:inherit}.video-js.vjs-layout-small .vjs-current-time,.video-js.vjs-layout-small .vjs-time-divider,.video-js.vjs-layout-small .vjs-duration,.video-js.vjs-layout-small .vjs-remaining-time,.video-js.vjs-layout-small .vjs-playback-rate,.video-js.vjs-layout-small .vjs-volume-control,.video-js.vjs-layout-x-small .vjs-current-time,.video-js.vjs-layout-x-small .vjs-time-divider,.video-js.vjs-layout-x-small .vjs-duration,.video-js.vjs-layout-x-small .vjs-remaining-time,.video-js.vjs-layout-x-small .vjs-playback-rate,.video-js.vjs-layout-x-small .vjs-volume-control,.video-js.vjs-layout-tiny .vjs-current-time,.video-js.vjs-layout-tiny .vjs-time-divider,.video-js.vjs-layout-tiny .vjs-duration,.video-js.vjs-layout-tiny .vjs-remaining-time,.video-js.vjs-layout-tiny .vjs-playback-rate,.video-js.vjs-layout-tiny .vjs-volume-control{display:none}.video-js.vjs-layout-small .vjs-volume-panel.vjs-volume-panel-horizontal:hover,.video-js.vjs-layout-small .vjs-volume-panel.vjs-volume-panel-horizontal:active,.video-js.vjs-layout-small .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active,.video-js.vjs-layout-small .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-hover,.video-js.vjs-layout-x-small .vjs-volume-panel.vjs-volume-panel-horizontal:hover,.video-js.vjs-layout-x-small .vjs-volume-panel.vjs-volume-panel-horizontal:active,.video-js.vjs-layout-x-small .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active,.video-js.vjs-layout-x-small .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-hover,.video-js.vjs-layout-tiny .vjs-volume-panel.vjs-volume-panel-horizontal:hover,.video-js.vjs-layout-tiny .vjs-volume-panel.vjs-volume-panel-horizontal:active,.video-js.vjs-layout-tiny .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active,.video-js.vjs-layout-tiny .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-hover{width:auto;width:initial}.video-js.vjs-layout-x-small .vjs-progress-control,.video-js.vjs-layout-tiny .vjs-progress-control{display:none}.video-js.vjs-layout-x-small .vjs-custom-control-spacer{flex:auto;display:block}.vjs-modal-dialog.vjs-text-track-settings{background-color:#2b333f;background-color:#2b333fbf;color:#fff;height:70%}.vjs-spatial-navigation-enabled .vjs-modal-dialog.vjs-text-track-settings{height:80%}.vjs-error .vjs-text-track-settings{display:none}.vjs-text-track-settings .vjs-modal-dialog-content{display:table}.vjs-text-track-settings .vjs-track-settings-colors,.vjs-text-track-settings .vjs-track-settings-font,.vjs-text-track-settings .vjs-track-settings-controls{display:table-cell}.vjs-text-track-settings .vjs-track-settings-controls{text-align:right;vertical-align:bottom}@supports (display: grid){.vjs-text-track-settings .vjs-modal-dialog-content{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr;padding:20px 24px 0}.vjs-track-settings-controls .vjs-default-button{margin-bottom:20px}.vjs-text-track-settings .vjs-track-settings-controls{grid-column:1/-1}.vjs-layout-small .vjs-text-track-settings .vjs-modal-dialog-content,.vjs-layout-x-small .vjs-text-track-settings .vjs-modal-dialog-content,.vjs-layout-tiny .vjs-text-track-settings .vjs-modal-dialog-content{grid-template-columns:1fr}}.vjs-text-track-settings select{font-size:inherit}.vjs-track-setting>select{margin-right:1em;margin-bottom:.5em}.vjs-text-track-settings fieldset{margin:10px;border:none}.vjs-text-track-settings fieldset span{display:inline-block;padding:0 .6em .8em}.vjs-text-track-settings fieldset span>select{max-width:7.3em}.vjs-text-track-settings legend{color:#fff;font-weight:700;font-size:1.2em}.vjs-text-track-settings .vjs-label{margin:0 .5em .5em 0}.vjs-track-settings-controls button:focus,.vjs-track-settings-controls button:active{outline-style:solid;outline-width:medium;background-image:linear-gradient(0deg,#fff 88%,rgb(114.9141509434,132.7028301887,159.3858490566) 100%)}.vjs-track-settings-controls button:hover{color:#2b333fbf}.vjs-track-settings-controls button{background-color:#fff;background-image:linear-gradient(-180deg,#fff 88%,rgb(114.9141509434,132.7028301887,159.3858490566) 100%);color:#2b333f;cursor:pointer;border-radius:2px}.vjs-track-settings-controls .vjs-default-button{margin-right:1em}.vjs-title-bar{background:rgba(0,0,0,.9);background:linear-gradient(180deg,rgba(0,0,0,.9) 0%,rgba(0,0,0,.7) 60%,rgba(0,0,0,0) 100%);font-size:1.2em;line-height:1.5;transition:opacity .1s;padding:.666em 1.333em 4em;pointer-events:none;position:absolute;top:0;width:100%}.vjs-error .vjs-title-bar{display:none}.vjs-title-bar-title,.vjs-title-bar-description{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vjs-title-bar-title{font-weight:700;margin-bottom:.333em}.vjs-playing.vjs-user-inactive .vjs-title-bar{opacity:0;transition:opacity 1s}.video-js .vjs-skip-forward-5,.video-js .vjs-skip-forward-10,.video-js .vjs-skip-forward-30,.video-js .vjs-skip-backward-5,.video-js .vjs-skip-backward-10,.video-js .vjs-skip-backward-30{cursor:pointer}.video-js .vjs-transient-button{position:absolute;height:3em;display:flex;align-items:center;justify-content:center;background-color:#32323280;cursor:pointer;opacity:1;transition:opacity 1s}.video-js:not(.vjs-has-started) .vjs-transient-button{display:none}.video-js.not-hover .vjs-transient-button:not(.force-display),.video-js.vjs-user-inactive .vjs-transient-button:not(.force-display){opacity:0}.video-js .vjs-transient-button span{padding:0 .5em}.video-js .vjs-transient-button.vjs-left{left:1em}.video-js .vjs-transient-button.vjs-right{right:1em}.video-js .vjs-transient-button.vjs-top{top:1em}.video-js .vjs-transient-button.vjs-near-top{top:4em}.video-js .vjs-transient-button.vjs-bottom{bottom:4em}.video-js .vjs-transient-button:hover{background-color:#323232e6}@media print{.video-js>*:not(.vjs-tech):not(.vjs-poster){visibility:hidden}}.vjs-resize-manager{position:absolute;top:0;left:0;width:100%;height:100%;border:none;z-index:-1000}.js-focus-visible .video-js *:focus:not(.focus-visible){outline:none}.video-js *:focus:not(:focus-visible){outline:none}#page-embed .video-js-root-embed .video-js video{width:100vw!important;height:100vh!important;object-fit:cover!important;border-radius:0!important}#page-embed .video-js-root-embed .video-js .vjs-poster{border-radius:0!important;width:100vw!important;height:100vh!important;object-fit:cover!important}#page-embed .video-js-root-embed .video-container{width:100vw;height:100vh;max-width:none;margin:0;padding:0;box-sizing:border-box;position:fixed;top:0;left:0;z-index:1000}#page-embed .video-js-root-embed .video-js.vjs-fluid{width:100vw!important;height:100vh!important;max-width:none!important;max-height:none!important}#page-embed .video-js-root-embed .video-js{width:100vw!important;height:100vh!important;border-radius:0;position:relative;overflow:hidden}#page-embed .video-js-root-embed{position:fixed;top:0;overflow:hidden}#page-embed .video-js-root-embed .video-js .vjs-control-bar{position:fixed!important;bottom:0!important;left:0!important;right:0!important;width:100vw!important;z-index:1001!important;background:transparent!important;background-color:transparent!important;background-image:none!important;padding:0 12px!important;margin:0!important;border:none!important;box-shadow:none!important}#page-embed .video-js-root-embed .video-js .vjs-progress-control{position:fixed!important;bottom:48px!important;left:0!important;right:0!important;width:100vw!important;z-index:1000!important;margin:0!important;padding:0!important;border:none!important}#page-embed .video-js-root-embed .video-js:after{position:fixed!important;bottom:0!important;left:0!important;right:0!important;width:100vw!important;height:120px!important;z-index:999!important}@media (max-width: 768px){#page-embed .video-js-root-embed .video-js .vjs-control-bar{height:56px!important;padding:0 16px!important;margin:0!important;border:none!important;background:transparent!important;background-color:transparent!important;background-image:none!important}#page-embed .video-js-root-embed .video-js .vjs-progress-control{bottom:44px!important;margin:0!important;padding:0!important}#page-embed .video-js-root-embed .video-js .vjs-control-bar{padding-bottom:env(safe-area-inset-bottom,0)!important}}#page-embed .video-js-root-embed .video-js.vjs-user-active .vjs-control-bar,#page-embed .video-js-root-embed .video-js.vjs-paused .vjs-control-bar,#page-embed .video-js-root-embed .video-js.vjs-ended .vjs-control-bar{opacity:1!important;visibility:visible!important;transform:translateY(0)!important}#page-embed .video-js-root-embed .video-js .vjs-control-bar{transition:opacity .3s ease,transform .3s ease!important}#page-embed .video-js-root-embed .video-js.vjs-user-inactive:not(.vjs-paused):not(.vjs-ended) .vjs-control-bar{opacity:0!important;transform:translateY(100%)!important}#page-embed .video-js-root-embed .video-js.vjs-user-inactive:not(.vjs-paused):not(.vjs-ended) .vjs-progress-control{opacity:0!important}#page-embed .video-js-root-embed .video-js .vjs-seek-indicator{position:fixed!important;top:50vh!important;left:50vw!important;transform:translate(-50%,-50%)!important;z-index:10000!important;pointer-events:none!important;display:none!important;align-items:center!important;justify-content:center!important;opacity:0!important;visibility:hidden!important;transition:opacity .2s ease-in-out!important;width:auto!important;height:auto!important;margin:0!important;padding:0!important}#page-embed .video-js-root-embed .video-js .vjs-big-play-button{position:absolute!important;top:50%!important;left:50%!important;transform:translate(-50%,-50%)!important;z-index:1000!important;pointer-events:auto!important;margin:0!important;padding:0!important}#page-embed .video-js-root-embed .video-js:not(.vjs-has-started) .vjs-control-bar{display:none!important;opacity:0!important;visibility:hidden!important}#page-embed .video-js-root-embed .video-js:not(.vjs-has-started) .vjs-progress-control{display:none!important;opacity:0!important;visibility:hidden!important}.video-js .vjs-captions-button,.video-js .vjs-subs-caps-button{display:none!important}.video-js .vjs-subtitles-button .vjs-menu,.video-js .vjs-subtitles-button .vjs-menu.vjs-lock-showing,.video-js .vjs-subtitles-button .vjs-menu.vjs-lock-showing .vjs-menu-content{display:none!important;visibility:hidden!important;opacity:0!important;pointer-events:none!important}.video-js .vjs-chapters-button .vjs-menu,.video-js .vjs-chapters-button .vjs-menu.vjs-lock-showing,.video-js .vjs-chapters-button .vjs-menu.vjs-lock-showing .vjs-menu-content{display:none!important}.video-js .vjs-chapters-button .vjs-menu{display:none!important;visibility:hidden!important;opacity:0!important;pointer-events:none!important}.video-js .vjs-subtitles-button{position:relative;cursor:pointer!important;pointer-events:auto!important}.video-js button.vjs-subtitles-button{cursor:pointer!important;pointer-events:auto!important;touch-action:manipulation!important;-webkit-tap-highlight-color:transparent!important}.video-js button.vjs-subtitles-button:before{content:"";position:absolute;left:50%;transform:translate(-50%);bottom:6px;height:3px;background:#e1002d;border-radius:2px;width:0;padding:0;transition:none!important;animation:none!important;-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important}.video-js .vjs-subs-active button.vjs-subtitles-button:before{width:24px;transition:none!important;animation:none!important;-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important}.video-js button.vjs-subtitles-button{transition:none!important;animation:none!important;-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important}@media (max-width: 767px){.video-js .vjs-subtitles-button button.vjs-button{min-width:32px!important;min-height:32px!important;touch-action:manipulation!important;-webkit-tap-highlight-color:transparent!important;-webkit-touch-callout:none!important;-webkit-user-select:none!important;user-select:none!important}.video-js .vjs-subs-active button.vjs-subtitles-button:before{width:20px}.video-js button.vjs-subtitles-button:before{bottom:2px}}.vjs-end-screen-overlay{position:absolute;top:0;left:0;width:100%;height:calc(100% - 80px);background:#000000;display:none;flex-direction:column;justify-content:center;align-items:center;padding:40px;box-sizing:border-box;z-index:9999;overflow:hidden}.video-js.vjs-ended .vjs-poster{display:none!important;opacity:0!important;visibility:hidden!important;z-index:-1!important;width:0!important;height:0!important}.video-js.vjs-ended video{display:none!important;opacity:0!important;visibility:hidden!important}.video-js.vjs-ended .vjs-end-screen-overlay{z-index:99999!important;display:flex!important}#page-embed .video-js-root-embed .video-js.vjs-ended .vjs-end-screen-overlay{position:fixed!important;top:0!important;left:0!important;width:100vw!important;height:calc(100vh - 80px)!important;z-index:9998!important;display:flex!important;padding:120px 40px 40px!important;justify-content:center!important}@media (max-height: 500px){#page-embed .video-js-root-embed .vjs-related-videos-grid{grid-template-columns:repeat(2,1fr)!important;grid-template-rows:1fr!important;gap:20px!important;max-width:600px}#page-embed .video-js-root-embed .video-js.vjs-ended .vjs-end-screen-overlay{height:calc(100vh - 60px)!important;padding:80px 30px 30px!important}#page-embed .video-js-root-embed .vjs-related-video-item:nth-child(n+3){display:none!important}}@media (max-height: 400px){#page-embed .video-js-root-embed .vjs-related-videos-grid{gap:15px!important;max-width:500px}#page-embed .video-js-root-embed .video-js.vjs-ended .vjs-end-screen-overlay{height:calc(100vh - 50px)!important;padding:60px 25px 25px!important}#page-embed .video-js-root-embed .vjs-related-video-item{min-height:80px!important}}.video-js.vjs-ended .vjs-control-bar{z-index:10000!important;position:absolute!important;bottom:0!important;left:0!important;right:0!important;width:100%!important;display:flex!important;opacity:1!important;visibility:visible!important}.video-js.vjs-ended .vjs-progress-control{z-index:10001!important;position:absolute!important;bottom:48px!important;left:0!important;right:0!important;width:100%!important;display:block!important;opacity:1!important;visibility:visible!important}#page-embed .video-js-root-embed .video-js.vjs-ended .vjs-control-bar{position:fixed!important;bottom:0!important;left:0!important;right:0!important;width:100vw!important;z-index:10000!important;display:flex!important;opacity:1!important;visibility:visible!important}#page-embed .video-js-root-embed .video-js.vjs-ended .vjs-progress-control{position:fixed!important;bottom:48px!important;left:0!important;right:0!important;width:100vw!important;z-index:10001!important;display:block!important;opacity:1!important;visibility:visible!important}#page-embed .video-js-root-embed .video-js.vjs-ended .vjs-embed-info-overlay{z-index:10002!important;display:flex!important;opacity:1!important;visibility:visible!important}.video-js.vjs-ended .vjs-big-play-button,.video-js.vjs-ended .vjs-seek-indicator{display:none!important;opacity:0!important;visibility:hidden!important}.video-js.vjs-ended .vjs-control-bar{background:#000000!important;background-color:#000!important;background-image:none!important}.video-js.vjs-ended .vjs-progress-control{background:#000000!important;background-color:#000!important}.video-js.vjs-ended:after{background:#000000!important;background-image:none!important}.video-js.vjs-ended:before{background:#000000!important;background-image:none!important}.video-js.vjs-ended .vjs-loading-spinner,.video-js.vjs-ended .vjs-mouse-display{background:#000000!important;background-image:none!important}.video-js.vjs-ended .vjs-progress-holder{background:rgba(255,255,255,.3)!important}.video-js.vjs-ended .vjs-tech,.video-js.vjs-ended .vjs-poster-overlay{display:none!important;opacity:0!important;visibility:hidden!important}.vjs-related-videos-title{color:#fff;font-size:24px;line-height:24px;padding:0;margin:0;text-align:center;font-weight:700;flex-shrink:0}.vjs-related-videos-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;width:100%;max-width:100%;margin:0;box-sizing:border-box;justify-items:stretch;align-items:stretch;justify-content:center;align-content:center;overflow:hidden;grid-auto-rows:1fr}.vjs-related-video-item{position:relative;cursor:pointer;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease;background:#1a1a1a;border:1px solid #333;aspect-ratio:16/9;width:100%;min-height:100px;box-shadow:0 2px 8px #0003}.video-js.video-js-rounded-corners .vjs-related-video-item{border-radius:8px}.vjs-related-video-item:hover{transform:translateY(-2px);box-shadow:0 8px 25px #0000004d}.vjs-related-video-thumbnail{width:100%;height:100%;object-fit:cover;display:block;background:#1a1a1a;transition:transform .2s ease}.vjs-related-video-item:hover .vjs-related-video-thumbnail{transform:scale(1.02)}.vjs-related-video-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(transparent,rgba(0,0,0,.9));color:#fff;padding:12px;opacity:0;transition:opacity .3s ease;display:flex;flex-direction:column;justify-content:flex-start;height:100%}.vjs-related-video-item:hover .vjs-related-video-overlay,.vjs-related-video-item.vjs-touch-device .vjs-related-video-overlay{opacity:1}.vjs-related-video-title{font-size:14px;font-weight:700;line-height:1.3;color:#fff;margin-bottom:4px}.vjs-related-video-meta{display:flex;flex-direction:row;gap:8px;align-items:center}.vjs-related-video-author,.vjs-related-video-views{font-size:12px;color:#fff}.vjs-related-video-author:after{content:"•";margin-left:8px;color:#fff}.vjs-related-video-duration{position:absolute;bottom:8px;right:8px;background:rgba(0,0,0,.8);color:#fff;padding:2px 6px;font-size:11px;font-weight:700;opacity:0;transition:opacity .3s ease}.video-js.video-js-rounded-corners .vjs-related-video-duration{border-radius:2px}.vjs-related-video-item:hover .vjs-related-video-duration,.vjs-related-video-item.vjs-touch-device .vjs-related-video-duration{opacity:1}.video-js.vjs-ended .vjs-control-bar{opacity:1!important;pointer-events:auto!important}.video-js.vjs-ended .vjs-control-bar .vjs-control,.video-js.vjs-ended .vjs-control-bar button{opacity:1!important;pointer-events:auto!important;cursor:pointer!important}.video-js.vjs-ended .vjs-control-bar .vjs-control.vjs-volume-control{opacity:0!important}.video-js.vjs-ended .vjs-control-bar .vjs-volume-panel.vjs-hover .vjs-volume-control{opacity:1!important}@media (max-width: 1200px){.vjs-related-videos-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}.vjs-end-screen-overlay{height:calc(100% - 70px);padding:35px}#page-embed .video-js-root-embed .video-js.vjs-ended .vjs-end-screen-overlay{height:calc(100vh - 70px)!important;padding:115px 35px 35px!important}}@media (max-width: 900px){.vjs-related-videos-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.vjs-end-screen-overlay{height:calc(100% - 60px);padding:30px}#page-embed .video-js-root-embed .video-js.vjs-ended .vjs-end-screen-overlay{height:calc(100vh - 60px)!important;padding:110px 30px 30px!important}}@media (max-width: 600px){.vjs-related-videos-grid{grid-template-columns:repeat(2,1fr);gap:10px}.vjs-end-screen-overlay{height:calc(100% - 50px);padding:25px;justify-content:center}#page-embed .video-js-root-embed .video-js.vjs-ended .vjs-end-screen-overlay{height:calc(100vh - 50px)!important;padding:105px 25px 25px!important}.vjs-related-video-item{min-height:80px}}@media (max-width: 400px){.vjs-related-videos-grid{grid-template-columns:repeat(2,1fr);gap:8px}.vjs-end-screen-overlay{height:calc(100% - 40px);padding:20px;justify-content:center}#page-embed .video-js-root-embed .video-js.vjs-ended .vjs-end-screen-overlay{height:calc(100vh - 40px)!important;padding:100px 20px 20px!important}.vjs-related-video-item{min-height:70px}}.video-js.vjs-ended .vjs-play-control{opacity:1!important;pointer-events:auto!important;cursor:pointer!important}.video-js.vjs-ended .vjs-progress-control,.video-js.vjs-ended .vjs-volume-panel{opacity:1!important;pointer-events:auto!important}@media (min-width: 1200px){.vjs-related-videos-grid{grid-template-columns:repeat(4,1fr);gap:20px}.vjs-end-screen-overlay{height:calc(100% - 80px);padding:40px}#page-embed .video-js-root-embed .video-js.vjs-ended .vjs-end-screen-overlay{height:calc(100vh - 80px)!important;padding:120px 40px 40px!important}}@media (max-width: 1199px){.vjs-related-video-item:nth-child(n+10){display:none}}@media (max-width: 1100px){.vjs-related-videos-grid{grid-template-columns:repeat(3,1fr);gap:16px}}@media (min-width: 1024px) and (max-width: 1199px){.vjs-related-videos-grid{grid-template-columns:repeat(3,1fr);gap:16px}.vjs-related-video-item:nth-child(n+10){display:none}}@media (min-width: 900px) and (max-width: 1024px){.vjs-related-videos-grid{grid-template-columns:repeat(3,1fr);gap:16px}.vjs-related-video-item:nth-child(n+10){display:none}}@media (min-width: 768px) and (max-width: 899px){.vjs-related-videos-grid{grid-template-columns:repeat(3,1fr);gap:14px}.vjs-end-screen-overlay{height:calc(100% - 60px);padding:30px;justify-content:center}#page-embed .video-js-root-embed .video-js.vjs-ended .vjs-end-screen-overlay{height:calc(100vh - 60px)!important;padding:110px 30px 30px!important}.vjs-related-video-item:nth-child(n+10){display:none}}@media (max-width: 767px){.vjs-related-video-item:nth-child(n+5){display:none}.vjs-related-videos-grid{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr);gap:12px}.vjs-end-screen-overlay{padding:12px;justify-content:center;height:calc(100% - 105px)}#page-embed .video-js-root-embed .video-js.vjs-ended .vjs-end-screen-overlay{height:calc(100vh - 105px)!important;padding:80px 12px 12px!important}.vjs-related-video-thumbnail{height:100%}}@media (max-width: 574px){.vjs-related-video-item:nth-child(n+5){display:none}.vjs-related-videos-grid{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr);gap:10px}.vjs-end-screen-overlay{padding:10px;justify-content:center;height:calc(100% - 100px)}#page-embed .video-js-root-embed .video-js.vjs-ended .vjs-end-screen-overlay{height:calc(100vh - 100px)!important;padding:80px 10px 10px!important}}@media (max-width: 439px){.vjs-related-video-item:nth-child(n+5){display:none}.vjs-related-videos-grid{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr);gap:8px}.vjs-end-screen-overlay{padding:8px;justify-content:center;height:calc(100% - 98px)}#page-embed .video-js-root-embed .video-js.vjs-ended .vjs-end-screen-overlay{height:calc(100vh - 98px)!important;padding:80px 8px 8px!important}}@media (max-width: 480px){.vjs-related-video-thumbnail{height:100%}}.vjs-autoplay-countdown-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.85);display:none;flex-direction:column;justify-content:center;align-items:center;z-index:4;padding:20px;box-sizing:border-box;opacity:0;transition:opacity .2s ease-out}.autoplay-close-button{position:absolute;top:16px;right:16px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.3);border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;transition:all .2s ease;padding:0;z-index:10}.autoplay-close-button:hover{background:rgba(255,255,255,.2);border-color:#ffffff80;transform:scale(1.1)}.autoplay-close-button:active{transform:scale(.95)}.vjs-autoplay-countdown-overlay.autoplay-countdown-show{opacity:1}.autoplay-countdown-content{text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px;max-width:350px;width:100%}.countdown-label{color:#fffc;font-size:14px;font-weight:400;margin:0;text-transform:uppercase;letter-spacing:1px}.next-video-title{color:#fff;font-size:18px;font-weight:600;margin:0 0 12px;line-height:1.3;max-width:100%;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;text-align:center}.next-video-author{color:#ffffffb3;font-size:14px;font-weight:400;margin:-8px 0 0;line-height:1.2}.circular-countdown{position:relative;cursor:pointer;transition:transform .2s ease;margin:10px 0}.circular-countdown:hover{transform:scale(1.05)}.countdown-circle{filter:drop-shadow(0 4px 8px rgba(0,0,0,.3))}.countdown-progress{stroke-linecap:round;stroke-dasharray:282.74;stroke-dashoffset:282.74}.play-icon{cursor:pointer;transition:all .2s ease}.circular-countdown:hover .play-icon circle{fill:#fff}.circular-countdown:hover .play-icon path{fill:#000}.autoplay-cancel-button{background:transparent;border:1px solid rgba(255,255,255,.3);color:#ffffffe6;padding:10px 24px;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease;text-transform:uppercase;letter-spacing:.5px;margin-top:4px;display:inline-block}.autoplay-cancel-button:hover{background:rgba(255,255,255,.1);border-color:#ffffff80;color:#fff;transform:translateY(-1px)}@media (min-width: 768px){.autoplay-close-button{display:flex!important}.autoplay-cancel-button{display:inline-block!important}}@media (max-width: 767px){.autoplay-close-button{display:flex!important;top:12px;right:12px;width:36px;height:36px}.autoplay-close-button svg{width:20px;height:20px}.autoplay-countdown-content{gap:8px;max-width:280px}.countdown-label{font-size:13px;margin:0}.next-video-title{font-size:16px;margin:0 0 8px}.next-video-author{font-size:13px;margin:-6px 0 0}.circular-countdown{margin:4px 0}.circular-countdown svg{width:80px;height:80px}.autoplay-cancel-button{display:none}}@media (max-width: 480px){.autoplay-close-button{display:flex!important;top:10px;right:10px;width:32px;height:32px}.autoplay-close-button svg{width:18px;height:18px}.autoplay-countdown-content{gap:6px;max-width:260px}.countdown-label{font-size:12px;margin:0}.next-video-title{font-size:15px;margin:0 0 6px}.next-video-author{font-size:12px;margin:-4px 0 0}.circular-countdown{margin:2px 0}.circular-countdown svg{width:70px;height:70px}.autoplay-cancel-button{display:none}}.vjs-embed-info-overlay{position:absolute!important;top:10px!important;left:10px!important;z-index:1000!important;display:flex!important;align-items:center!important;gap:10px!important;padding:8px 12px!important;max-width:calc(100% - 40px)!important;box-sizing:border-box!important;transition:opacity .3s ease-in-out!important;font-family:Arial,sans-serif!important}.vjs-embed-info-overlay .embed-avatar-container{flex-shrink:0!important;width:32px!important;height:32px!important;border-radius:50%!important;overflow:hidden!important;border:1px solid rgba(255,255,255,.2)!important}.vjs-embed-info-overlay .embed-avatar-container a{display:block!important;width:100%!important;height:100%!important;text-decoration:none!important}.vjs-embed-info-overlay .embed-avatar-container img{width:100%!important;height:100%!important;object-fit:cover!important;display:block!important}.vjs-embed-info-overlay .embed-title-container{flex:1!important;min-width:0!important;overflow:hidden!important}.vjs-embed-info-overlay .embed-title-container a,.vjs-embed-info-overlay .embed-title-container span{color:#fff!important;text-decoration:none!important;font-size:14px!important;font-weight:500!important;line-height:1.3!important;display:block!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;transition:color .2s ease!important}.vjs-embed-info-overlay .embed-title-container a:hover{color:#ccc!important}@media (max-width: 768px){.vjs-embed-info-overlay{top:8px!important;left:8px!important;padding:6px 10px!important;gap:8px!important;max-width:calc(100% - 32px)!important}.vjs-embed-info-overlay .embed-avatar-container{width:28px!important;height:28px!important}.vjs-embed-info-overlay .embed-title-container a,.vjs-embed-info-overlay .embed-title-container span{font-size:13px!important}}@media (max-width: 480px){.vjs-embed-info-overlay{top:6px!important;left:6px!important;padding:5px 8px!important;gap:6px!important;max-width:calc(100% - 24px)!important}.vjs-embed-info-overlay .embed-avatar-container{width:24px!important;height:24px!important}.vjs-embed-info-overlay .embed-title-container a,.vjs-embed-info-overlay .embed-title-container span{font-size:12px!important}}.vjs-chapter-markers-track{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;overflow:hidden}.vjs-chapter-marker{position:absolute;top:0;width:2px;height:100%;background:rgba(255,193,7,.8);pointer-events:auto;cursor:pointer;transition:background .2s ease}.vjs-chapter-marker:hover{background:rgba(255,193,7,1);width:3px}.vjs-chapter-marker-tooltip{position:absolute;bottom:8px;left:50%;transform:translate(-50%);background:rgba(0,0,0,.8);color:#fff;padding:4px 8px;border-radius:4px;font-size:11px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:1001}.vjs-chapter-marker:hover .vjs-chapter-marker-tooltip{opacity:1}.vjs-chapter-floating-tooltip{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif!important;line-height:1.4!important;animation:fadeIn .2s ease-in-out;text-align:center;width:160px!important;max-width:100%!important;height:auto}.chapter-image-sprite{width:166px!important;max-width:100%!important;height:96px;margin:0 auto 10px;border-radius:6px;border:3px solid #fff}.vjs-chapter-floating-tooltip .chapter-title{font-size:16px;margin:0 0 10px;font-weight:700;word-break:break-all;line-height:20px}.vjs-chapter-floating-tooltip .position-info,.vjs-chapter-floating-tooltip .chapter-info{font-size:15px;display:inline-block;margin:0 0 2px;line-height:normal;vertical-align:top;line-height:20px}@keyframes fadeIn{0%{opacity:0;transform:translate(-50%) translateY(5px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@media (hover: none) and (pointer: coarse){.vjs-chapter-marker:hover .vjs-chapter-marker-tooltip,.vjs-chapter-floating-tooltip{display:none!important;opacity:0!important;visibility:hidden!important}}@media (min-width: 768px) and (max-width: 899px){.vjs-chapter-marker:hover .vjs-chapter-marker-tooltip{opacity:0!important;visibility:hidden!important}.vjs-chapter-floating-tooltip{display:none!important;opacity:0!important;visibility:hidden!important}}@media (max-width: 767px){.vjs-chapter-marker:hover .vjs-chapter-marker-tooltip{opacity:0!important;visibility:hidden!important}.vjs-chapter-floating-tooltip{display:none!important;opacity:0!important;visibility:hidden!important}}@media (max-width: 480px){.vjs-chapter-marker:hover .vjs-chapter-marker-tooltip{opacity:0!important;visibility:hidden!important}.vjs-chapter-floating-tooltip{display:none!important;opacity:0!important;visibility:hidden!important}}.vjs-sprite-preview-track{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;overflow:hidden}.vjs-sprite-preview-tooltip{text-align:center;width:172px!important;max-width:100%!important;height:auto}.vjs-sprite-preview-tooltip .sprite-image-preview{width:166px!important;max-width:100%!important;height:96px;margin:0 auto;border-radius:6px;border:3px solid #fff}@media (hover: none) and (pointer: coarse){.vjs-sprite-preview-tooltip{display:none!important;opacity:0!important;visibility:hidden!important}}@media (min-width: 768px) and (max-width: 899px){.vjs-sprite-preview-tooltip{display:none!important;opacity:0!important;visibility:hidden!important}}@media (max-width: 767px){.vjs-sprite-preview-tooltip{display:none!important;opacity:0!important;visibility:hidden!important}}@media (max-width: 480px){.vjs-sprite-preview-tooltip{display:none!important;opacity:0!important;visibility:hidden!important}}.vjs-next-video-control .vjs-icon-placeholder{width:1.2em;height:1.2em;display:flex;align-items:center;justify-content:center;margin:auto;display:none!important}.vjs-next-video-control .vjs-icon-placeholder svg{width:100%;height:100%;display:block}@media (max-width: 767px){.vjs-next-video-control svg{width:32px;height:32px}}@media (max-width: 399px){.vjs-next-video-control svg{width:28px;height:28px}}.vjs-autoplay-toggle .vjs-autoplay-icon svg{width:100%;height:100%;display:block}.video-js .vjs-autoplay-toggle{position:relative}.video-js .vjs-autoplay-toggle .vjs-hover-display,.video-js .vjs-autoplay-toggle .vjs-tooltip,.video-js .vjs-autoplay-toggle .vjs-tooltip-text{display:none!important;visibility:hidden!important;opacity:0!important;pointer-events:none!important}.video-js .vjs-autoplay-toggle:after{content:attr(title);position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:rgba(0,0,0,.9);color:#fff;padding:6px 10px;border-radius:4px;font-size:12px;white-space:nowrap;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease;z-index:1000;margin-bottom:8px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;box-shadow:0 2px 8px #0000004d;border:1px solid rgba(255,255,255,.1)}.video-js .vjs-autoplay-toggle:hover:after,.video-js .vjs-autoplay-toggle:focus:after{opacity:1;visibility:visible}@media (max-width: 767px){.video-js .vjs-autoplay-toggle.touch-active:after{opacity:1;visibility:visible}.video-js .vjs-autoplay-toggle:after{font-size:11px;padding:5px 8px;margin-bottom:6px}}.vjs-control-bar .custom-remaining-time .vjs-remaining-time-display{font-size:14px!important;font-weight:500;line-height:1;display:flex;align-items:center;justify-content:center;height:100%;color:#fff;white-space:nowrap;padding:0 4px}.vjs-control-bar .custom-remaining-time{flex-shrink:1!important;min-width:0!important}@media (max-width: 767px){.vjs-control-bar .custom-remaining-time .vjs-remaining-time-display{font-size:13px!important;padding:0 3px;font-weight:600!important}}@media (max-width: 500px){.vjs-control-bar .custom-remaining-time .vjs-remaining-time-display{font-size:12px!important;padding:0 2px;letter-spacing:-.2px;font-weight:600!important}}@media (max-width: 480px){.vjs-control-bar .custom-remaining-time .vjs-remaining-time-display{font-size:11px!important;padding:0 2px;letter-spacing:-.2px;font-weight:600!important}}@media (max-width: 399px){.vjs-control-bar .custom-remaining-time .vjs-remaining-time-display{font-size:10px!important;padding:0 1px;letter-spacing:-.3px;font-weight:600!important}}.video-chapter{position:absolute;top:auto;bottom:60px;width:min(360px,calc(100% - 20px));border:1px solid rgba(255,255,255,.12);border-radius:8px;height:calc(100% - 80px);background:rgba(18,18,18,.96);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);overflow:hidden;box-shadow:0 12px 30px #00000073;right:10px}.chapter-head{padding:12px 8px 10px 16px;position:sticky;top:0;left:0;background:linear-gradient(180deg,rgba(28,28,28,.95),rgba(18,18,18,.95));border-bottom:1px solid rgba(255,255,255,.08);z-index:2}.playlist-title{display:flex;align-items:center;gap:10px}.chapter-title{width:auto;flex:1;min-width:0}.chapter-title h3{margin:0;padding:0}.chapter-title h3 a{color:#fff;font-size:18px;line-height:26px;font-weight:700;text-decoration:none;white-space:nowrap;text-overflow:ellipsis;height:28px;overflow:hidden;display:block}.chapter-title p{margin:4px 0 0;padding:0;color:#fff;font-size:12px;font-weight:400;line-height:15px}.chapter-title p a{color:#fff;font-size:12px;font-weight:400;line-height:15px;text-decoration:none}.chapter-close{width:40px;margin-left:auto;display:flex;align-items:center;justify-content:flex-end}.chapter-close button{background:transparent;color:#fff;border:0;width:40px;height:40px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:8px}.chapter-close button:hover{background:rgba(255,255,255,.1)}.settings-header{display:flex;align-items:center;justify-content:space-between;position:relative}.settings-close-btn{background:transparent;color:#fff;border:0;width:32px;height:32px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:6px;cursor:pointer}.settings-close-btn:hover{background:rgba(255,255,255,.1)}.playlist-action-menu{display:none;justify-content:space-between;gap:10px}.playlist-action-menu button{background:transparent;border:0;width:40px;height:40px;padding:0;display:flex;justify-content:center;align-items:center;border-radius:100px}.playlist-action-menu button:hover{background:rgba(0,0,0,.1)}.start-action{display:flex}.chapter-body{height:calc(100% - 80px);overflow:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y;overscroll-behavior:contain;scroll-behavior:smooth}.chapter-body ul{margin:0;padding:0}.playlist-items a{padding:12px;display:flex;align-items:center;text-decoration:none;gap:12px;width:100%;box-sizing:border-box;color:#fff}.playlist-items a:hover{background:rgba(255,255,255,.06)}.playlist-items.selected a{background:rgba(255,255,255,.14)}.playlist-drag-handle{width:24px;display:flex;justify-content:center;color:#e0e0e0;font-size:12px}.thumbnail-meta{flex:1;min-width:0;padding:0}.thumbnail-meta h4{margin:0 2px 4px 0;font-size:14px;line-height:20px;font-weight:600;overflow:hidden;text-overflow:ellipsis;color:#fff;white-space:normal;max-height:40px;-webkit-line-clamp:2;line-clamp:2;display:-webkit-box;-webkit-box-orient:vertical}.thumbnail-meta .meta-sub{display:flex;gap:8px;align-items:center}.thumbnail-meta .meta-sub .meta-dynamic{color:#bdbdbd;font-size:12px;line-height:18px}.thumbnail-action button{border:0;background:transparent;color:#fff;opacity:0}.playlist-items a:hover .thumbnail-action button{opacity:1}.chapter-body::-webkit-scrollbar{width:10px}.chapter-body::-webkit-scrollbar-thumb{background:rgba(255,255,255,.18);border-radius:8px}.chapter-body::-webkit-scrollbar-track{background:transparent}@media (max-width: 767px){.chapter-body{-webkit-overflow-scrolling:touch;touch-action:pan-y;overscroll-behavior:contain;height:calc(100% - 70px)}.chapter-body::-webkit-scrollbar{width:0px}div.chapter-close button{width:30px;height:30px}.video-js-root-main .video-js.video-js-rounded-corners .custom-chapters-overlay{border-bottom-left-radius:12px!important;border-bottom-right-radius:12px!important}.custom-chapters-overlay .video-chapter{right:10px;left:auto;width:100%;max-width:280px;height:calc(100% - 40px);max-height:calc(100% - 40px);overflow:hidden;bottom:40px}.chapter-head{padding:10px 15px}.chapter-title h3 a{font-size:15px!important;line-height:20px!important;height:20px!important}.chapter-title p{font-size:11px!important;line-height:14px!important}.playlist-items a{padding:10px 16px!important;min-height:58px!important}.thumbnail-meta h4{font-size:13px!important;line-height:18px!important}.thumbnail-meta .meta-sub .meta-dynamic{font-size:11px!important;line-height:16px!important}}.vjs-settings-button{width:3em;height:3em;display:flex;align-items:center;justify-content:center;padding:0;margin:0}.vjs-icon-cog1{font-size:30px!important;position:relative;top:-8px!important;display:flex;align-items:center;justify-content:center;width:100%;height:100%;line-height:1}.custom-settings-overlay{border:0;position:absolute;bottom:60px;right:20px;width:280px;height:350px;background:rgba(28,28,28,.95);color:#fff;border-radius:7px;box-shadow:0 4px 12px #00000080;display:none;z-index:9999;font-size:14px;overflow:auto}.settings-header{padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.1);font-weight:700}.settings-item{padding:12px 16px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(255,255,255,.1);transition:background .2s ease;gap:10px}.settings-item .settings-left span{display:flex}.custom-settings-overlay .settings-left span.vjs-icon-placeholder{transform:inherit!important}.settings-item:last-child{border-bottom:none}.settings-item:hover{background:rgba(255,255,255,.05)}.speed-submenu,.quality-submenu,.subtitles-submenu{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(28,28,28,.95);display:none;flex-direction:column;overflow:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y;overscroll-behavior:contain}.subtitle-option{padding:12px 16px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;transition:background .2s ease}.subtitle-option:hover{background:rgba(255,255,255,.05)}.subtitle-option.active{background:rgba(255,255,255,.1)}.submenu-header{padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.1);display:flex;align-items:center;cursor:pointer;position:sticky;top:0;background:rgba(28,28,28,.95);z-index:1}.submenu-header:hover{background:rgba(28,28,28,1)}.speed-option{padding:12px 16px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;transition:background .2s ease}.speed-option:hover{background:rgba(255,255,255,.05)}.speed-option.active{background:rgba(255,255,255,.1)}.quality-option{padding:12px 16px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;transition:background .2s ease}.quality-option:hover{background:rgba(255,255,255,.05)}.quality-option.active{background:rgba(255,255,255,.1)}.settings-left{display:inline-flex;align-items:center;gap:8px}.settings-right{display:inline-flex;align-items:center;text-align:right}sup.hd-badge{font-size:10px;line-height:1;margin-left:6px;background:#e53935;color:#fff;padding:1px 4px;border-radius:3px}.video-js .vjs-settings-button{cursor:pointer!important;pointer-events:auto!important;position:relative!important;display:flex!important;align-items:center!important;justify-content:center!important;min-width:32px!important;height:32px!important;padding:0!important;border:none!important;background:transparent!important;color:inherit!important;font-size:inherit!important;line-height:inherit!important;text-align:center!important;vertical-align:middle!important;touch-action:manipulation!important;-webkit-tap-highlight-color:transparent!important;-webkit-touch-callout:none!important;-webkit-user-select:none!important;user-select:none!important}.video-js .vjs-settings-button:hover{background:none!important}.video-js .vjs-settings-button:focus{outline:none!important}.video-js .vjs-settings-button .vjs-icon-cog{font-size:18px!important;width:18px!important;height:18px!important;display:flex!important;align-items:center!important;justify-content:center!important}.video-js .vjs-control-bar .settings-item-svg{display:flex}.video-js .vjs-control-bar .settings-item-svg svg{width:auto!important;height:auto!important;transform:inherit!important}.vjs-settings-button svg{transition:ease-in-out .3s}.vjs-settings-button.settings-clicked svg{transform:rotate(30deg)}@media (max-width: 1024px){body div.custom-settings-overlay{height:calc(100% - 40px);max-height:300px}}@media (max-width: 767px){.video-js .vjs-settings-button{min-width:44px!important;height:44px!important;padding:0!important;margin:0 2px!important;display:flex!important;align-items:center!important;justify-content:center!important;touch-action:manipulation!important;-webkit-tap-highlight-color:transparent!important;cursor:pointer!important;z-index:1000!important;pointer-events:auto!important;position:relative!important}.video-js .vjs-settings-button .vjs-icon-cog{font-size:20px!important;width:20px!important;height:20px!important;display:flex!important;align-items:center!important;justify-content:center!important}.video-js .vjs-control-bar .vjs-button{touch-action:manipulation!important;-webkit-tap-highlight-color:transparent!important;-webkit-touch-callout:none!important;-webkit-user-select:none!important;user-select:none!important}.custom-settings-overlay .settings-item{padding:6px 16px;font-size:15px;touch-action:manipulation;line-height:18px}.custom-settings-overlay .settings-header{padding:10px 16px;font-size:18px;line-height:20px}body div.custom-settings-overlay{bottom:40px}}@media (max-width: 480px){.video-js .vjs-settings-button .vjs-icon-cog{font-size:22px!important;width:22px!important;height:22px!important}}.vjs-seek-indicator{position:absolute!important;top:50%!important;left:50%!important;transform:translate(-50%,-50%)!important;z-index:9999!important;pointer-events:none!important;display:none!important;align-items:center!important;justify-content:center!important;opacity:0!important;visibility:hidden!important;transition:opacity .2s ease-in-out!important}.vjs-seek-indicator-content{background:transparent!important;flex-direction:column!important;align-items:center!important;justify-content:center!important}.vjs-seek-indicator-icon{position:relative!important;display:flex!important;align-items:center!important;justify-content:center!important;margin-bottom:4px!important}.seek-icon-container{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;animation:seekPulse .3s ease-out!important}.youtube-seek-container{display:flex!important;align-items:center!important;justify-content:center!important;animation:youtubeSeekPulse .3s ease-out!important}.youtube-seek-circle{width:80px!important;height:80px!important;border-radius:50%!important;-webkit-border-radius:50%!important;-moz-border-radius:50%!important;background:rgba(0,0,0,.8)!important;backdrop-filter:blur(10px)!important;-webkit-backdrop-filter:blur(10px)!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;padding:0!important;box-shadow:0 4px 20px #0000004d!important;border:1px solid rgba(255,255,255,.15)!important;box-sizing:border-box!important;overflow:hidden!important}@media (max-width: 768px){.vjs-seek-indicator{top:calc(50% - 30px)!important}.youtube-seek-circle{width:60px!important;height:60px!important}.youtube-seek-icon svg{width:24px!important;height:24px!important}}@media (max-width: 480px){.vjs-seek-indicator{top:calc(50% - 40px)!important}.youtube-seek-circle{width:50px!important;height:50px!important}.youtube-seek-icon svg{width:20px!important;height:20px!important}}.youtube-seek-icon{display:flex!important;align-items:center!important;justify-content:center!important;margin-bottom:4px!important}.youtube-seek-icon svg{filter:drop-shadow(0 1px 2px rgba(0,0,0,.5))!important}.youtube-seek-time{color:#fff!important;font-size:10px!important;font-weight:500!important;text-align:center!important;line-height:1.2!important;opacity:.9!important;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif!important}@keyframes youtubeSeekPulse{0%{transform:scale(.7);opacity:.5}50%{transform:scale(1.05);opacity:.9}to{transform:scale(1);opacity:1}}.seek-seconds{color:#fff!important;font-size:16px!important;font-weight:700!important;text-shadow:0 2px 4px rgba(0,0,0,.7)!important;line-height:1!important}.vjs-seek-indicator-text{color:#fff!important;font-size:16px!important;font-weight:500!important;text-align:center!important;text-shadow:0 1px 2px rgba(0,0,0,.8)!important} diff --git a/static/video_js/video-js.js b/static/video_js/video-js.js index 0abfbfac..ba10ad3a 100644 --- a/static/video_js/video-js.js +++ b/static/video_js/video-js.js @@ -495,7 +495,7 @@ ${Mu(e)}`),i.map&&!i.map.bytes&&(this.logger_("going to request init segment."), `.split("").map(s=>s.charCodeAt(0)));class W3 extends Error{constructor(){super("Trying to parse received VTT cues, but there is no WebVTT. Make sure vtt.js is loaded.")}}class K3 extends Ly{constructor(e,i={}){super(e,i),this.mediaSource_=null,this.subtitlesTrack_=null,this.featuresNativeTextTracks_=e.featuresNativeTextTracks,this.loadVttJs=e.loadVttJs,this.shouldSaveSegmentTimingInfo_=!1}buffered_(){if(!this.subtitlesTrack_||!this.subtitlesTrack_.cues||!this.subtitlesTrack_.cues.length)return Ni();const e=this.subtitlesTrack_.cues,i=e[0].startTime,r=e[e.length-1].startTime;return Ni([[i,r]])}initSegmentForMap(e,i=!1){if(!e)return null;const r=Rp(e);let o=this.initSegments_[r];if(i&&!o&&e.bytes){const l=yx.byteLength+e.bytes.byteLength,c=new Uint8Array(l);c.set(e.bytes),c.set(yx,e.bytes.byteLength),this.initSegments_[r]=o={resolvedUri:e.resolvedUri,byterange:e.byterange,bytes:c}}return o||e}couldBeginLoading_(){return this.playlist_&&this.subtitlesTrack_&&!this.paused()}init_(){return this.state="READY",this.resetEverything(),this.monitorBuffer_()}track(e){return typeof e>"u"?this.subtitlesTrack_:(this.subtitlesTrack_=e,this.state==="INIT"&&this.couldBeginLoading_()&&this.init_(),this.subtitlesTrack_)}remove(e,i){Ld(e,i,this.subtitlesTrack_)}fillBuffer_(){const e=this.chooseNextRequest_();if(e){if(this.syncController_.timestampOffsetForTimeline(e.timeline)===null){const i=()=>{this.state="READY",this.paused()||this.monitorBuffer_()};this.syncController_.one("timestampoffset",i),this.state="WAITING_ON_TIMELINE";return}this.loadSegment_(e)}}timestampOffsetForSegment_(){return null}chooseNextRequest_(){return this.skipEmptySegments_(super.chooseNextRequest_())}skipEmptySegments_(e){for(;e&&e.segment.empty;){if(e.mediaIndex+1>=e.playlist.segments.length){e=null;break}e=this.generateSegmentInfo_({playlist:e.playlist,mediaIndex:e.mediaIndex+1,startOfSegment:e.startOfSegment+e.duration,isSyncRequest:e.isSyncRequest})}return e}stopForError(e){this.error(e),this.state="READY",this.pause(),this.trigger("error")}segmentRequestFinished_(e,i,r){if(!this.subtitlesTrack_){this.state="READY";return}if(this.saveTransferStats_(i.stats),!this.pendingSegment_){this.state="READY",this.mediaRequestsAborted+=1;return}if(e){e.code===sr.TIMEOUT&&this.handleTimeout_(),e.code===sr.ABORTED?this.mediaRequestsAborted+=1:this.mediaRequestsErrored+=1,this.stopForError(e);return}const o=this.pendingSegment_,l=r.mp4VttCues&&r.mp4VttCues.length;l&&(o.mp4VttCues=r.mp4VttCues),this.saveBandwidthRelatedStats_(o.duration,i.stats),i.key&&this.segmentKey(i.key,!0),this.state="APPENDING",this.trigger("appending");const c=o.segment;if(c.map&&(c.map.bytes=i.map.bytes),o.bytes=i.bytes,typeof z.WebVTT!="function"&&typeof this.loadVttJs=="function"){this.state="WAITING_ON_VTTJS",this.loadVttJs().then(()=>this.segmentRequestFinished_(e,i,r),()=>this.stopForError({message:"Error loading vtt.js"}));return}c.requested=!0;try{this.parseVTTCues_(o)}catch(f){this.stopForError({message:f.message,metadata:{errorType:F.Error.StreamingVttParserError,error:f}});return}if(l||this.updateTimeMapping_(o,this.syncController_.timelines[o.timeline],this.playlist_),o.cues.length?o.timingInfo={start:o.cues[0].startTime,end:o.cues[o.cues.length-1].endTime}:o.timingInfo={start:o.startOfSegment,end:o.startOfSegment+o.duration},o.isSyncRequest){this.trigger("syncinfoupdate"),this.pendingSegment_=null,this.state="READY";return}o.byteLength=o.bytes.byteLength,this.mediaSecondsLoaded+=c.duration,o.cues.forEach(f=>{this.subtitlesTrack_.addCue(this.featuresNativeTextTracks_?new z.VTTCue(f.startTime,f.endTime,f.text):f)}),I3(this.subtitlesTrack_),this.handleAppendsDone_()}handleData_(e,i){const r=e&&e.type==="vtt",o=i&&i.type==="text";r&&o&&super.handleData_(e,i)}updateTimingInfoEnd_(){}parseMp4VttCues_(e){const i=this.sourceUpdater_.videoTimestampOffset()===null?this.sourceUpdater_.audioTimestampOffset():this.sourceUpdater_.videoTimestampOffset();e.mp4VttCues.forEach(r=>{const o=r.start+i,l=r.end+i,c=new z.VTTCue(o,l,r.cueText);r.settings&&r.settings.split(" ").forEach(f=>{const p=f.split(":"),v=p[0],S=p[1];c[v]=isNaN(S)?S:Number(S)}),e.cues.push(c)})}parseVTTCues_(e){let i,r=!1;if(typeof z.WebVTT!="function")throw new W3;if(e.cues=[],e.timestampmap={MPEGTS:0,LOCAL:0},e.mp4VttCues){this.parseMp4VttCues_(e);return}typeof z.TextDecoder=="function"?i=new z.TextDecoder("utf8"):(i=z.WebVTT.StringDecoder(),r=!0);const o=new z.WebVTT.Parser(z,z.vttjs,i);if(o.oncue=e.cues.push.bind(e.cues),o.ontimestampmap=c=>{e.timestampmap=c},o.onparsingerror=c=>{F.log.warn("Error encountered when parsing cues: "+c.message)},e.segment.map){let c=e.segment.map.bytes;r&&(c=gx(c)),o.parse(c)}let l=e.bytes;r&&(l=gx(l)),o.parse(l),o.flush()}updateTimeMapping_(e,i,r){const o=e.segment;if(!i)return;if(!e.cues.length){o.empty=!0;return}const{MPEGTS:l,LOCAL:c}=e.timestampmap,p=l/wo.ONE_SECOND_IN_TS-c+i.mapping;if(e.cues.forEach(v=>{const S=v.endTime-v.startTime,x=this.handleRollover_(v.startTime+p,i.time);v.startTime=Math.max(x,0),v.endTime=Math.max(x+S,0)}),!r.syncInfo){const v=e.cues[0].startTime,S=e.cues[e.cues.length-1].startTime;r.syncInfo={mediaSequence:r.mediaSequence+e.mediaIndex,time:Math.min(v,S-o.duration)}}}handleRollover_(e,i){if(i===null)return e;let r=e*wo.ONE_SECOND_IN_TS;const o=i*wo.ONE_SECOND_IN_TS;let l;for(o4294967296;)r+=l;return r/wo.ONE_SECOND_IN_TS}}const Z3=function(s,e){const i=s.cues;for(let r=0;r=o.adStartTime&&e<=o.adEndTime)return o}return null},J3=function(s,e,i=0){if(!s.segments)return;let r=i,o;for(let l=0;l=this.start&&e0}resetAppendStatus(){this.segmentSyncInfo_.resetAppendedStatus(),this.partsSyncInfo_.forEach(e=>e.resetAppendedStatus())}}class vx{constructor(){this.storage_=new Map,this.diagnostics_="",this.isReliable_=!1,this.start_=-1/0,this.end_=1/0}get start(){return this.start_}get end(){return this.end_}get diagnostics(){return this.diagnostics_}get isReliable(){return this.isReliable_}resetAppendedStatus(){this.storage_.forEach(e=>e.resetAppendStatus())}update(e,i){const{mediaSequence:r,segments:o}=e;if(this.isReliable_=this.isReliablePlaylist_(r,o),!!this.isReliable_)return this.updateStorage_(o,r,this.calculateBaseTime_(r,o,i))}getSyncInfoForTime(e){for(const{segmentSyncInfo:i,partsSyncInfo:r}of this.storage_.values())if(r.length){for(const o of r)if(o.isInRange(e))return o}else if(i.isInRange(e))return i;return null}getSyncInfoForMediaSequence(e){return this.storage_.get(e)}updateStorage_(e,i,r){const o=new Map;let l=` `,c=r,f=i;this.start_=c,e.forEach((p,v)=>{const S=this.storage_.get(f),x=c,D=x+p.duration,k=!!(S&&S.segmentSyncInfo&&S.segmentSyncInfo.isAppended),I=new Tx({start:x,end:D,appended:k,segmentIndex:v});p.syncInfo=I;let C=c;const P=(p.parts||[]).map((U,Y)=>{const $=C,G=C+U.duration,W=!!(S&&S.partsSyncInfo&&S.partsSyncInfo[Y]&&S.partsSyncInfo[Y].isAppended),oe=new Tx({start:$,end:G,appended:W,segmentIndex:v,partIndex:Y});return C=G,l+=`Media Sequence: ${f}.${Y} | Range: ${$} --> ${G} | Appended: ${W} `,U.syncInfo=oe,oe});o.set(f,new eI(I,P)),l+=`${ox(p.resolvedUri)} | Media Sequence: ${f} | Range: ${x} --> ${D} | Appended: ${k} -`,f++,c=D}),this.end_=c,this.storage_=o,this.diagnostics_=l}calculateBaseTime_(e,i,r){if(!this.storage_.size)return 0;if(this.storage_.has(e))return this.storage_.get(e).segmentSyncInfo.start;const o=Math.min(...this.storage_.keys());if(ei!==1/0?{time:0,segmentIndex:0,partIndex:null}:null},{name:"MediaSequence",run:(s,e,i,r,o,l)=>{const c=s.getMediaSequenceSync(l);if(!c||!c.isReliable)return null;const f=c.getSyncInfoForTime(o);return f?{time:f.start,partIndex:f.partIndex,segmentIndex:f.segmentIndex}:null}},{name:"ProgramDateTime",run:(s,e,i,r,o)=>{if(!Object.keys(s.timelineToDatetimeMappings).length)return null;let l=null,c=null;const f=vy(e);o=o||0;for(let p=0;p{let l=null,c=null;o=o||0;const f=vy(e);for(let p=0;p=k)&&(c=k,l={time:D,segmentIndex:S.segmentIndex,partIndex:S.partIndex})}}return l}},{name:"Discontinuity",run:(s,e,i,r,o)=>{let l=null;if(o=o||0,e.discontinuityStarts&&e.discontinuityStarts.length){let c=null;for(let f=0;f=x)&&(c=x,l={time:S.time,segmentIndex:p,partIndex:null})}}}return l}},{name:"Playlist",run:(s,e,i,r,o)=>e.syncInfo?{time:e.syncInfo.time,segmentIndex:e.syncInfo.mediaSequence-e.mediaSequence,partIndex:null}:null}];class iI extends F.EventTarget{constructor(e={}){super(),this.timelines=[],this.discontinuities=[],this.timelineToDatetimeMappings={};const i=new vx,r=new bx(i),o=new bx(i);this.mediaSequenceStorage_={main:i,audio:r,vtt:o},this.logger_=ls("SyncController")}getMediaSequenceSync(e){return this.mediaSequenceStorage_[e]||null}getSyncPoint(e,i,r,o,l){if(i!==1/0)return jy.find(({name:p})=>p==="VOD").run(this,e,i);const c=this.runStrategies_(e,i,r,o,l);if(!c.length)return null;for(const f of c){const{syncPoint:p,strategy:v}=f,{segmentIndex:S,time:x}=p;if(S<0)continue;const D=e.segments[S],k=x,I=k+D.duration;if(this.logger_(`Strategy: ${v}. Current time: ${o}. selected segment: ${S}. Time: [${k} -> ${I}]}`),o>=k&&o0&&(o.time*=-1),Math.abs(o.time+Nd({defaultDuration:e.targetDuration,durationList:e.segments,startIndex:o.segmentIndex,endIndex:0}))}runStrategies_(e,i,r,o,l){const c=[];for(let f=0;ftI){F.log.warn(`Not saving expired segment info. Media sequence gap ${r} is too large.`);return}for(let o=r-1;o>=0;o--){const l=e.segments[o];if(l&&typeof l.start<"u"){i.syncInfo={mediaSequence:e.mediaSequence+o,time:l.start},this.logger_(`playlist refresh sync: [time:${i.syncInfo.time}, mediaSequence: ${i.syncInfo.mediaSequence}]`),this.trigger("syncinfoupdate");break}}}setDateTimeMappingForStart(e){if(this.timelineToDatetimeMappings={},e.segments&&e.segments.length&&e.segments[0].dateTimeObject){const i=e.segments[0],r=i.dateTimeObject.getTime()/1e3;this.timelineToDatetimeMappings[i.timeline]=-r}}saveSegmentTimingInfo({segmentInfo:e,shouldSaveTimelineMapping:i}){const r=this.calculateSegmentTimeMapping_(e,e.timingInfo,i),o=e.segment;r&&(this.saveDiscontinuitySyncInfo_(e),e.playlist.syncInfo||(e.playlist.syncInfo={mediaSequence:e.playlist.mediaSequence+e.mediaIndex,time:o.start}));const l=o.dateTimeObject;o.discontinuity&&i&&l&&(this.timelineToDatetimeMappings[o.timeline]=-(l.getTime()/1e3))}timestampOffsetForTimeline(e){return typeof this.timelines[e]>"u"?null:this.timelines[e].time}mappingForTimeline(e){return typeof this.timelines[e]>"u"?null:this.timelines[e].mapping}calculateSegmentTimeMapping_(e,i,r){const o=e.segment,l=e.part;let c=this.timelines[e.timeline],f,p;if(typeof e.timestampOffset=="number")c={time:e.startOfSegment,mapping:e.startOfSegment-i.start},r&&(this.timelines[e.timeline]=c,this.trigger("timestampoffset"),this.logger_(`time mapping for timeline ${e.timeline}: [time: ${c.time}] [mapping: ${c.mapping}]`)),f=e.startOfSegment,p=i.end+c.mapping;else if(c)f=i.start+c.mapping,p=i.end+c.mapping;else return!1;return l&&(l.start=f,l.end=p),(!o.start||fp){let v;f<0?v=r.start-Nd({defaultDuration:i.targetDuration,durationList:i.segments,startIndex:e.mediaIndex,endIndex:l}):v=r.end+Nd({defaultDuration:i.targetDuration,durationList:i.segments,startIndex:e.mediaIndex+1,endIndex:l}),this.discontinuities[c]={time:v,accuracy:p}}}}dispose(){this.trigger("dispose"),this.off()}}class nI extends F.EventTarget{constructor(){super(),this.pendingTimelineChanges_={},this.lastTimelineChanges_={}}clearPendingTimelineChange(e){this.pendingTimelineChanges_[e]=null,this.trigger("pendingtimelinechange")}pendingTimelineChange({type:e,from:i,to:r}){return typeof i=="number"&&typeof r=="number"&&(this.pendingTimelineChanges_[e]={type:e,from:i,to:r},this.trigger("pendingtimelinechange")),this.pendingTimelineChanges_[e]}lastTimelineChange({type:e,from:i,to:r}){if(typeof i=="number"&&typeof r=="number"){this.lastTimelineChanges_[e]={type:e,from:i,to:r},delete this.pendingTimelineChanges_[e];const o={timelineChangeInfo:{from:i,to:r}};this.trigger({type:"timelinechange",metadata:o})}return this.lastTimelineChanges_[e]}dispose(){this.trigger("dispose"),this.pendingTimelineChanges_={},this.lastTimelineChanges_={},this.off()}}const sI=YS(QS(function(){var s=function(){function C(){this.listeners={}}var P=C.prototype;return P.on=function(Y,$){this.listeners[Y]||(this.listeners[Y]=[]),this.listeners[Y].push($)},P.off=function(Y,$){if(!this.listeners[Y])return!1;var G=this.listeners[Y].indexOf($);return this.listeners[Y]=this.listeners[Y].slice(0),this.listeners[Y].splice(G,1),G>-1},P.trigger=function(Y){var $=this.listeners[Y];if($)if(arguments.length===2)for(var G=$.length,W=0;W>7)*283)^G]=G;for(W=oe=0;!Y[W];W^=fe||1,oe=de[oe]||1)for(_e=oe^oe<<1^oe<<2^oe<<3^oe<<4,_e=_e>>8^_e&255^99,Y[W]=_e,$[_e]=W,le=K[me=K[fe=K[W]]],ge=le*16843009^me*65537^fe*257^W*16843008,he=K[_e]*257^_e*16843008,G=0;G<4;G++)P[G][W]=he=he<<24^he>>>8,U[G][_e]=ge=ge<<24^ge>>>8;for(G=0;G<5;G++)P[G]=P[G].slice(0),U[G]=U[G].slice(0);return C};let r=null;class o{constructor(P){r||(r=i()),this._tables=[[r[0][0].slice(),r[0][1].slice(),r[0][2].slice(),r[0][3].slice(),r[0][4].slice()],[r[1][0].slice(),r[1][1].slice(),r[1][2].slice(),r[1][3].slice(),r[1][4].slice()]];let U,Y,$;const G=this._tables[0][4],W=this._tables[1],oe=P.length;let K=1;if(oe!==4&&oe!==6&&oe!==8)throw new Error("Invalid aes key size");const de=P.slice(0),fe=[];for(this._key=[de,fe],U=oe;U<4*oe+28;U++)$=de[U-1],(U%oe===0||oe===8&&U%oe===4)&&($=G[$>>>24]<<24^G[$>>16&255]<<16^G[$>>8&255]<<8^G[$&255],U%oe===0&&($=$<<8^$>>>24^K<<24,K=K<<1^(K>>7)*283)),de[U]=de[U-oe]^$;for(Y=0;U;Y++,U--)$=de[Y&3?U:U-4],U<=4||Y<4?fe[Y]=$:fe[Y]=W[0][G[$>>>24]]^W[1][G[$>>16&255]]^W[2][G[$>>8&255]]^W[3][G[$&255]]}decrypt(P,U,Y,$,G,W){const oe=this._key[1];let K=P^oe[0],de=$^oe[1],fe=Y^oe[2],me=U^oe[3],le,_e,he;const ge=oe.length/4-2;let Ae,ne=4;const Se=this._tables[1],pe=Se[0],Ue=Se[1],se=Se[2],Oe=Se[3],we=Se[4];for(Ae=0;Ae>>24]^Ue[de>>16&255]^se[fe>>8&255]^Oe[me&255]^oe[ne],_e=pe[de>>>24]^Ue[fe>>16&255]^se[me>>8&255]^Oe[K&255]^oe[ne+1],he=pe[fe>>>24]^Ue[me>>16&255]^se[K>>8&255]^Oe[de&255]^oe[ne+2],me=pe[me>>>24]^Ue[K>>16&255]^se[de>>8&255]^Oe[fe&255]^oe[ne+3],ne+=4,K=le,de=_e,fe=he;for(Ae=0;Ae<4;Ae++)G[(3&-Ae)+W]=we[K>>>24]<<24^we[de>>16&255]<<16^we[fe>>8&255]<<8^we[me&255]^oe[ne++],le=K,K=de,de=fe,fe=me,me=le}}class l extends s{constructor(){super(s),this.jobs=[],this.delay=1,this.timeout_=null}processJob_(){this.jobs.shift()(),this.jobs.length?this.timeout_=setTimeout(this.processJob_.bind(this),this.delay):this.timeout_=null}push(P){this.jobs.push(P),this.timeout_||(this.timeout_=setTimeout(this.processJob_.bind(this),this.delay))}}const c=function(C){return C<<24|(C&65280)<<8|(C&16711680)>>8|C>>>24},f=function(C,P,U){const Y=new Int32Array(C.buffer,C.byteOffset,C.byteLength>>2),$=new o(Array.prototype.slice.call(P)),G=new Uint8Array(C.byteLength),W=new Int32Array(G.buffer);let oe,K,de,fe,me,le,_e,he,ge;for(oe=U[0],K=U[1],de=U[2],fe=U[3],ge=0;ge{const Y=C[U];D(Y)?P[U]={bytes:Y.buffer,byteOffset:Y.byteOffset,byteLength:Y.byteLength}:P[U]=Y}),P};self.onmessage=function(C){const P=C.data,U=new Uint8Array(P.encrypted.bytes,P.encrypted.byteOffset,P.encrypted.byteLength),Y=new Uint32Array(P.key.bytes,P.key.byteOffset,P.key.byteLength/4),$=new Uint32Array(P.iv.bytes,P.iv.byteOffset,P.iv.byteLength/4);new p(U,Y,$,function(G,W){self.postMessage(I({source:P.source,decrypted:W}),[W.buffer])})}}));var rI=$S(sI);const aI=s=>{let e=s.default?"main":"alternative";return s.characteristics&&s.characteristics.indexOf("public.accessibility.describes-video")>=0&&(e="main-desc"),e},_x=(s,e)=>{s.abort(),s.pause(),e&&e.activePlaylistLoader&&(e.activePlaylistLoader.pause(),e.activePlaylistLoader=null)},zy=(s,e)=>{e.activePlaylistLoader=s,s.load()},oI=(s,e)=>()=>{const{segmentLoaders:{[s]:i,main:r},mediaTypes:{[s]:o}}=e,l=o.activeTrack(),c=o.getActiveGroup(),f=o.activePlaylistLoader,p=o.lastGroup_;if(!(c&&p&&c.id===p.id)&&(o.lastGroup_=c,o.lastTrack_=l,_x(i,o),!(!c||c.isMainPlaylist))){if(!c.playlistLoader){f&&r.resetEverything();return}i.resyncLoader(),zy(c.playlistLoader,o)}},lI=(s,e)=>()=>{const{segmentLoaders:{[s]:i},mediaTypes:{[s]:r}}=e;r.lastGroup_=null,i.abort(),i.pause()},uI=(s,e)=>()=>{const{mainPlaylistLoader:i,segmentLoaders:{[s]:r,main:o},mediaTypes:{[s]:l}}=e,c=l.activeTrack(),f=l.getActiveGroup(),p=l.activePlaylistLoader,v=l.lastTrack_;if(!(v&&c&&v.id===c.id)&&(l.lastGroup_=f,l.lastTrack_=c,_x(r,l),!!f)){if(f.isMainPlaylist){if(!c||!v||c.id===v.id)return;const S=e.vhs.playlistController_,x=S.selectPlaylist();if(S.media()===x)return;l.logger_(`track change. Switching main audio from ${v.id} to ${c.id}`),i.pause(),o.resetEverything(),S.fastQualityChange_(x);return}if(s==="AUDIO"){if(!f.playlistLoader){o.setAudio(!0),o.resetEverything();return}r.setAudio(!0),o.setAudio(!1)}if(p===f.playlistLoader){zy(f.playlistLoader,l);return}r.track&&r.track(c),r.resetEverything(),zy(f.playlistLoader,l)}},Up={AUDIO:(s,e)=>()=>{const{mediaTypes:{[s]:i},excludePlaylist:r}=e,o=i.activeTrack(),l=i.activeGroup(),c=(l.filter(p=>p.default)[0]||l[0]).id,f=i.tracks[c];if(o===f){r({error:{message:"Problem encountered loading the default audio track."}});return}F.log.warn("Problem encountered loading the alternate audio track.Switching back to default.");for(const p in i.tracks)i.tracks[p].enabled=i.tracks[p]===f;i.onTrackChanged()},SUBTITLES:(s,e)=>()=>{const{mediaTypes:{[s]:i}}=e;F.log.warn("Problem encountered loading the subtitle track.Disabling subtitle track.");const r=i.activeTrack();r&&(r.mode="disabled"),i.onTrackChanged()}},Sx={AUDIO:(s,e,i)=>{if(!e)return;const{tech:r,requestOptions:o,segmentLoaders:{[s]:l}}=i;e.on("loadedmetadata",()=>{const c=e.media();l.playlist(c,o),(!r.paused()||c.endList&&r.preload()!=="none")&&l.load()}),e.on("loadedplaylist",()=>{l.playlist(e.media(),o),r.paused()||l.load()}),e.on("error",Up[s](s,i))},SUBTITLES:(s,e,i)=>{const{tech:r,requestOptions:o,segmentLoaders:{[s]:l},mediaTypes:{[s]:c}}=i;e.on("loadedmetadata",()=>{const f=e.media();l.playlist(f,o),l.track(c.activeTrack()),(!r.paused()||f.endList&&r.preload()!=="none")&&l.load()}),e.on("loadedplaylist",()=>{l.playlist(e.media(),o),r.paused()||l.load()}),e.on("error",Up[s](s,i))}},cI={AUDIO:(s,e)=>{const{vhs:i,sourceType:r,segmentLoaders:{[s]:o},requestOptions:l,main:{mediaGroups:c},mediaTypes:{[s]:{groups:f,tracks:p,logger_:v}},mainPlaylistLoader:S}=e,x=kd(S.main);(!c[s]||Object.keys(c[s]).length===0)&&(c[s]={main:{default:{default:!0}}},x&&(c[s].main.default.playlists=S.main.playlists));for(const D in c[s]){f[D]||(f[D]=[]);for(const k in c[s][D]){let I=c[s][D][k],C;if(x?(v(`AUDIO group '${D}' label '${k}' is a main playlist`),I.isMainPlaylist=!0,C=null):r==="vhs-json"&&I.playlists?C=new _u(I.playlists[0],i,l):I.resolvedUri?C=new _u(I.resolvedUri,i,l):I.playlists&&r==="dash"?C=new Ay(I.playlists[0],i,l,S):C=null,I=Ct({id:k,playlistLoader:C},I),Sx[s](s,I.playlistLoader,e),f[D].push(I),typeof p[k]>"u"){const P=new F.AudioTrack({id:k,kind:aI(I),enabled:!1,language:I.language,default:I.default,label:k});p[k]=P}}}o.on("error",Up[s](s,e))},SUBTITLES:(s,e)=>{const{tech:i,vhs:r,sourceType:o,segmentLoaders:{[s]:l},requestOptions:c,main:{mediaGroups:f},mediaTypes:{[s]:{groups:p,tracks:v}},mainPlaylistLoader:S}=e;for(const x in f[s]){p[x]||(p[x]=[]);for(const D in f[s][x]){if(!r.options_.useForcedSubtitles&&f[s][x][D].forced)continue;let k=f[s][x][D],I;if(o==="hls")I=new _u(k.resolvedUri,r,c);else if(o==="dash"){if(!k.playlists.filter(P=>P.excludeUntil!==1/0).length)return;I=new Ay(k.playlists[0],r,c,S)}else o==="vhs-json"&&(I=new _u(k.playlists?k.playlists[0]:k.resolvedUri,r,c));if(k=Ct({id:D,playlistLoader:I},k),Sx[s](s,k.playlistLoader,e),p[x].push(k),typeof v[D]>"u"){const C=i.addRemoteTextTrack({id:D,kind:"subtitles",default:k.default&&k.autoselect,language:k.language,label:D},!1).track;v[D]=C}}}l.on("error",Up[s](s,e))},"CLOSED-CAPTIONS":(s,e)=>{const{tech:i,main:{mediaGroups:r},mediaTypes:{[s]:{groups:o,tracks:l}}}=e;for(const c in r[s]){o[c]||(o[c]=[]);for(const f in r[s][c]){const p=r[s][c][f];if(!/^(?:CC|SERVICE)/.test(p.instreamId))continue;const v=i.options_.vhs&&i.options_.vhs.captionServices||{};let S={label:f,language:p.language,instreamId:p.instreamId,default:p.default&&p.autoselect};if(v[S.instreamId]&&(S=Ct(S,v[S.instreamId])),S.default===void 0&&delete S.default,o[c].push(Ct({id:f},p)),typeof l[f]>"u"){const x=i.addRemoteTextTrack({id:S.instreamId,kind:"captions",default:S.default,language:S.language,label:S.label},!1).track;l[f]=x}}}}},xx=(s,e)=>{for(let i=0;ii=>{const{mainPlaylistLoader:r,mediaTypes:{[s]:{groups:o}}}=e,l=r.media();if(!l)return null;let c=null;l.attributes[s]&&(c=o[l.attributes[s]]);const f=Object.keys(o);if(!c)if(s==="AUDIO"&&f.length>1&&kd(e.main))for(let p=0;p"u"?c:i===null||!c?null:c.filter(p=>p.id===i.id)[0]||null},hI={AUDIO:(s,e)=>()=>{const{mediaTypes:{[s]:{tracks:i}}}=e;for(const r in i)if(i[r].enabled)return i[r];return null},SUBTITLES:(s,e)=>()=>{const{mediaTypes:{[s]:{tracks:i}}}=e;for(const r in i)if(i[r].mode==="showing"||i[r].mode==="hidden")return i[r];return null}},fI=(s,{mediaTypes:e})=>()=>{const i=e[s].activeTrack();return i?e[s].activeGroup(i):null},pI=s=>{["AUDIO","SUBTITLES","CLOSED-CAPTIONS"].forEach(v=>{cI[v](v,s)});const{mediaTypes:e,mainPlaylistLoader:i,tech:r,vhs:o,segmentLoaders:{["AUDIO"]:l,main:c}}=s;["AUDIO","SUBTITLES"].forEach(v=>{e[v].activeGroup=dI(v,s),e[v].activeTrack=hI[v](v,s),e[v].onGroupChanged=oI(v,s),e[v].onGroupChanging=lI(v,s),e[v].onTrackChanged=uI(v,s),e[v].getActiveGroup=fI(v,s)});const f=e.AUDIO.activeGroup();if(f){const v=(f.filter(x=>x.default)[0]||f[0]).id;e.AUDIO.tracks[v].enabled=!0,e.AUDIO.onGroupChanged(),e.AUDIO.onTrackChanged(),e.AUDIO.getActiveGroup().playlistLoader?(c.setAudio(!1),l.setAudio(!0)):c.setAudio(!0)}i.on("mediachange",()=>{["AUDIO","SUBTITLES"].forEach(v=>e[v].onGroupChanged())}),i.on("mediachanging",()=>{["AUDIO","SUBTITLES"].forEach(v=>e[v].onGroupChanging())});const p=()=>{e.AUDIO.onTrackChanged(),r.trigger({type:"usage",name:"vhs-audio-change"})};r.audioTracks().addEventListener("change",p),r.remoteTextTracks().addEventListener("change",e.SUBTITLES.onTrackChanged),o.on("dispose",()=>{r.audioTracks().removeEventListener("change",p),r.remoteTextTracks().removeEventListener("change",e.SUBTITLES.onTrackChanged)}),r.clearTracks("audio");for(const v in e.AUDIO.tracks)r.audioTracks().addTrack(e.AUDIO.tracks[v])},mI=()=>{const s={};return["AUDIO","SUBTITLES","CLOSED-CAPTIONS"].forEach(e=>{s[e]={groups:{},tracks:{},activePlaylistLoader:null,activeGroup:$r,activeTrack:$r,getActiveGroup:$r,onGroupChanged:$r,onTrackChanged:$r,lastTrack_:null,logger_:ls(`MediaGroups[${e}]`)}}),s};class Ex{constructor(){this.priority_=[],this.pathwayClones_=new Map}set version(e){e===1&&(this.version_=e)}set ttl(e){this.ttl_=e||300}set reloadUri(e){e&&(this.reloadUri_=Dn(this.reloadUri_,e))}set priority(e){e&&e.length&&(this.priority_=e)}set pathwayClones(e){e&&e.length&&(this.pathwayClones_=new Map(e.map(i=>[i.ID,i])))}get version(){return this.version_}get ttl(){return this.ttl_}get reloadUri(){return this.reloadUri_}get priority(){return this.priority_}get pathwayClones(){return this.pathwayClones_}}class gI extends F.EventTarget{constructor(e,i){super(),this.currentPathway=null,this.defaultPathway=null,this.queryBeforeStart=!1,this.availablePathways_=new Set,this.steeringManifest=new Ex,this.proxyServerUrl_=null,this.manifestType_=null,this.ttlTimeout_=null,this.request_=null,this.currentPathwayClones=new Map,this.nextPathwayClones=new Map,this.excludedSteeringManifestURLs=new Set,this.logger_=ls("Content Steering"),this.xhr_=e,this.getBandwidth_=i}assignTagProperties(e,i){this.manifestType_=i.serverUri?"HLS":"DASH";const r=i.serverUri||i.serverURL;if(!r){this.logger_(`steering manifest URL is ${r}, cannot request steering manifest.`),this.trigger("error");return}if(r.startsWith("data:")){this.decodeDataUriManifest_(r.substring(r.indexOf(",")+1));return}this.steeringManifest.reloadUri=Dn(e,r),this.defaultPathway=i.pathwayId||i.defaultServiceLocation,this.queryBeforeStart=i.queryBeforeStart,this.proxyServerUrl_=i.proxyServerURL,this.defaultPathway&&!this.queryBeforeStart&&this.trigger("content-steering")}requestSteeringManifest(e){const i=this.steeringManifest.reloadUri;if(!i)return;const r=e?i:this.getRequestURI(i);if(!r){this.logger_("No valid content steering manifest URIs. Stopping content steering."),this.trigger("error"),this.dispose();return}const o={contentSteeringInfo:{uri:r}};this.trigger({type:"contentsteeringloadstart",metadata:o}),this.request_=this.xhr_({uri:r,requestType:"content-steering-manifest"},(l,c)=>{if(l){if(c.status===410){this.logger_(`manifest request 410 ${l}.`),this.logger_(`There will be no more content steering requests to ${r} this session.`),this.excludedSteeringManifestURLs.add(r);return}if(c.status===429){const v=c.responseHeaders["retry-after"];this.logger_(`manifest request 429 ${l}.`),this.logger_(`content steering will retry in ${v} seconds.`),this.startTTLTimeout_(parseInt(v,10));return}this.logger_(`manifest failed to load ${l}.`),this.startTTLTimeout_();return}this.trigger({type:"contentsteeringloadcomplete",metadata:o});let f;try{f=JSON.parse(this.request_.responseText)}catch(v){const S={errorType:F.Error.StreamingContentSteeringParserError,error:v};this.trigger({type:"error",metadata:S})}this.assignSteeringProperties_(f);const p={contentSteeringInfo:o.contentSteeringInfo,contentSteeringManifest:{version:this.steeringManifest.version,reloadUri:this.steeringManifest.reloadUri,priority:this.steeringManifest.priority}};this.trigger({type:"contentsteeringparsed",metadata:p}),this.startTTLTimeout_()})}setProxyServerUrl_(e){const i=new z.URL(e),r=new z.URL(this.proxyServerUrl_);return r.searchParams.set("url",encodeURI(i.toString())),this.setSteeringParams_(r.toString())}decodeDataUriManifest_(e){const i=JSON.parse(z.atob(e));this.assignSteeringProperties_(i)}setSteeringParams_(e){const i=new z.URL(e),r=this.getPathway(),o=this.getBandwidth_();if(r){const l=`_${this.manifestType_}_pathway`;i.searchParams.set(l,r)}if(o){const l=`_${this.manifestType_}_throughput`;i.searchParams.set(l,o)}return i.toString()}assignSteeringProperties_(e){if(this.steeringManifest.version=e.VERSION,!this.steeringManifest.version){this.logger_(`manifest version is ${e.VERSION}, which is not supported.`),this.trigger("error");return}this.steeringManifest.ttl=e.TTL,this.steeringManifest.reloadUri=e["RELOAD-URI"],this.steeringManifest.priority=e["PATHWAY-PRIORITY"]||e["SERVICE-LOCATION-PRIORITY"],this.steeringManifest.pathwayClones=e["PATHWAY-CLONES"],this.nextPathwayClones=this.steeringManifest.pathwayClones,this.availablePathways_.size||(this.logger_("There are no available pathways for content steering. Ending content steering."),this.trigger("error"),this.dispose());const r=(o=>{for(const l of o)if(this.availablePathways_.has(l))return l;return[...this.availablePathways_][0]})(this.steeringManifest.priority);this.currentPathway!==r&&(this.currentPathway=r,this.trigger("content-steering"))}getPathway(){return this.currentPathway||this.defaultPathway}getRequestURI(e){if(!e)return null;const i=o=>this.excludedSteeringManifestURLs.has(o);if(this.proxyServerUrl_){const o=this.setProxyServerUrl_(e);if(!i(o))return o}const r=this.setSteeringParams_(e);return i(r)?null:r}startTTLTimeout_(e=this.steeringManifest.ttl){const i=e*1e3;this.ttlTimeout_=z.setTimeout(()=>{this.requestSteeringManifest()},i)}clearTTLTimeout_(){z.clearTimeout(this.ttlTimeout_),this.ttlTimeout_=null}abort(){this.request_&&this.request_.abort(),this.request_=null}dispose(){this.off("content-steering"),this.off("error"),this.abort(),this.clearTTLTimeout_(),this.currentPathway=null,this.defaultPathway=null,this.queryBeforeStart=null,this.proxyServerUrl_=null,this.manifestType_=null,this.ttlTimeout_=null,this.request_=null,this.excludedSteeringManifestURLs=new Set,this.availablePathways_=new Set,this.steeringManifest=new Ex}addAvailablePathway(e){e&&this.availablePathways_.add(e)}clearAvailablePathways(){this.availablePathways_.clear()}excludePathway(e){return this.availablePathways_.delete(e)}didDASHTagChange(e,i){return!i&&this.steeringManifest.reloadUri||i&&(Dn(e,i.serverURL)!==this.steeringManifest.reloadUri||i.defaultServiceLocation!==this.defaultPathway||i.queryBeforeStart!==this.queryBeforeStart||i.proxyServerURL!==this.proxyServerUrl_)}getAvailablePathways(){return this.availablePathways_}}const yI=(s,e)=>{let i=null;return(...r)=>{clearTimeout(i),i=setTimeout(()=>{s.apply(null,r)},e)}},TI=10;let za;const vI=["mediaRequests","mediaRequestsAborted","mediaRequestsTimedout","mediaRequestsErrored","mediaTransferDuration","mediaBytesTransferred","mediaAppends"],bI=function(s){return this.audioSegmentLoader_[s]+this.mainSegmentLoader_[s]},_I=function({currentPlaylist:s,buffered:e,currentTime:i,nextPlaylist:r,bufferLowWaterLine:o,bufferHighWaterLine:l,duration:c,bufferBasedABR:f,log:p}){if(!r)return F.log.warn("We received no playlist to switch to. Please check your stream."),!1;const v=`allowing switch ${s&&s.id||"null"} -> ${r.id}`;if(!s)return p(`${v} as current playlist is not set`),!0;if(r.id===s.id)return!1;const S=!!Tu(e,i).length;if(!s.endList)return!S&&typeof s.partTargetDuration=="number"?(p(`not ${v} as current playlist is live llhls, but currentTime isn't in buffered.`),!1):(p(`${v} as current playlist is live`),!0);const x=yy(e,i),D=f?ki.EXPERIMENTAL_MAX_BUFFER_LOW_WATER_LINE:ki.MAX_BUFFER_LOW_WATER_LINE;if(cI)&&x>=o){let C=`${v} as forwardBuffer >= bufferLowWaterLine (${x} >= ${o})`;return f&&(C+=` and next bandwidth > current bandwidth (${k} > ${I})`),p(C),!0}return p(`not ${v} as no switching criteria met`),!1};class SI extends F.EventTarget{constructor(e){super(),this.fastQualityChange_=yI(this.fastQualityChange_.bind(this),100);const{src:i,withCredentials:r,tech:o,bandwidth:l,externVhs:c,useCueTags:f,playlistExclusionDuration:p,enableLowInitialPlaylist:v,sourceType:S,cacheEncryptionKeys:x,bufferBasedABR:D,leastPixelDiffSelector:k,captionServices:I,experimentalUseMMS:C}=e;if(!i)throw new Error("A non-empty playlist URL or JSON manifest string is required");let{maxPlaylistRetries:P}=e;(P===null||typeof P>"u")&&(P=1/0),za=c,this.bufferBasedABR=!!D,this.leastPixelDiffSelector=!!k,this.withCredentials=r,this.tech_=o,this.vhs_=o.vhs,this.player_=e.player_,this.sourceType_=S,this.useCueTags_=f,this.playlistExclusionDuration=p,this.maxPlaylistRetries=P,this.enableLowInitialPlaylist=v,this.usingManagedMediaSource_=!1,this.useCueTags_&&(this.cueTagsTrack_=this.tech_.addTextTrack("metadata","ad-cues"),this.cueTagsTrack_.inBandMetadataTrackDispatchType=""),this.requestOptions_={withCredentials:r,maxPlaylistRetries:P,timeout:null},this.on("error",this.pauseLoading),this.mediaTypes_=mI(),C&&z.ManagedMediaSource?(this.tech_.el_.disableRemotePlayback=!0,this.mediaSource=new z.ManagedMediaSource,this.usingManagedMediaSource_=!0,F.log("Using ManagedMediaSource")):z.MediaSource&&(this.mediaSource=new z.MediaSource),this.handleDurationChange_=this.handleDurationChange_.bind(this),this.handleSourceOpen_=this.handleSourceOpen_.bind(this),this.handleSourceEnded_=this.handleSourceEnded_.bind(this),this.load=this.load.bind(this),this.pause=this.pause.bind(this),this.mediaSource.addEventListener("durationchange",this.handleDurationChange_),this.mediaSource.addEventListener("sourceopen",this.handleSourceOpen_),this.mediaSource.addEventListener("sourceended",this.handleSourceEnded_),this.mediaSource.addEventListener("startstreaming",this.load),this.mediaSource.addEventListener("endstreaming",this.pause),this.seekable_=Ni(),this.hasPlayed_=!1,this.syncController_=new iI(e),this.segmentMetadataTrack_=o.addRemoteTextTrack({kind:"metadata",label:"segment-metadata"},!1).track,this.segmentMetadataTrack_.mode="hidden",this.decrypter_=new rI,this.sourceUpdater_=new mx(this.mediaSource),this.inbandTextTracks_={},this.timelineChangeController_=new nI,this.keyStatusMap_=new Map;const U={vhs:this.vhs_,parse708captions:e.parse708captions,useDtsForTimestampOffset:e.useDtsForTimestampOffset,captionServices:I,mediaSource:this.mediaSource,currentTime:this.tech_.currentTime.bind(this.tech_),seekable:()=>this.seekable(),seeking:()=>this.tech_.seeking(),duration:()=>this.duration(),hasPlayed:()=>this.hasPlayed_,goalBufferLength:()=>this.goalBufferLength(),bandwidth:l,syncController:this.syncController_,decrypter:this.decrypter_,sourceType:this.sourceType_,inbandTextTracks:this.inbandTextTracks_,cacheEncryptionKeys:x,sourceUpdater:this.sourceUpdater_,timelineChangeController:this.timelineChangeController_,exactManifestTimings:e.exactManifestTimings,addMetadataToTextTrack:this.addMetadataToTextTrack.bind(this)};this.mainPlaylistLoader_=this.sourceType_==="dash"?new Ay(i,this.vhs_,Ct(this.requestOptions_,{addMetadataToTextTrack:this.addMetadataToTextTrack.bind(this)})):new _u(i,this.vhs_,Ct(this.requestOptions_,{addDateRangesToTextTrack:this.addDateRangesToTextTrack_.bind(this)})),this.setupMainPlaylistLoaderListeners_(),this.mainSegmentLoader_=new Ly(Ct(U,{segmentMetadataTrack:this.segmentMetadataTrack_,loaderType:"main"}),e),this.audioSegmentLoader_=new Ly(Ct(U,{loaderType:"audio"}),e),this.subtitleSegmentLoader_=new K3(Ct(U,{loaderType:"vtt",featuresNativeTextTracks:this.tech_.featuresNativeTextTracks,loadVttJs:()=>new Promise((G,W)=>{function oe(){o.off("vttjserror",K),G()}function K(){o.off("vttjsloaded",oe),W()}o.one("vttjsloaded",oe),o.one("vttjserror",K),o.addWebVttScript_()})}),e);const Y=()=>this.mainSegmentLoader_.bandwidth;this.contentSteeringController_=new gI(this.vhs_.xhr,Y),this.setupSegmentLoaderListeners_(),this.bufferBasedABR&&(this.mainPlaylistLoader_.one("loadedplaylist",()=>this.startABRTimer_()),this.tech_.on("pause",()=>this.stopABRTimer_()),this.tech_.on("play",()=>this.startABRTimer_())),vI.forEach(G=>{this[G+"_"]=bI.bind(this,G)}),this.logger_=ls("pc"),this.triggeredFmp4Usage=!1,this.tech_.preload()==="none"?(this.loadOnPlay_=()=>{this.loadOnPlay_=null,this.mainPlaylistLoader_.load()},this.tech_.one("play",this.loadOnPlay_)):this.mainPlaylistLoader_.load(),this.timeToLoadedData__=-1,this.mainAppendsToLoadedData__=-1,this.audioAppendsToLoadedData__=-1;const $=this.tech_.preload()==="none"?"play":"loadstart";this.tech_.one($,()=>{const G=Date.now();this.tech_.one("loadeddata",()=>{this.timeToLoadedData__=Date.now()-G,this.mainAppendsToLoadedData__=this.mainSegmentLoader_.mediaAppends,this.audioAppendsToLoadedData__=this.audioSegmentLoader_.mediaAppends})})}mainAppendsToLoadedData_(){return this.mainAppendsToLoadedData__}audioAppendsToLoadedData_(){return this.audioAppendsToLoadedData__}appendsToLoadedData_(){const e=this.mainAppendsToLoadedData_(),i=this.audioAppendsToLoadedData_();return e===-1||i===-1?-1:e+i}timeToLoadedData_(){return this.timeToLoadedData__}checkABR_(e="abr"){const i=this.selectPlaylist();i&&this.shouldSwitchToMedia_(i)&&this.switchMedia_(i,e)}switchMedia_(e,i,r){const o=this.media(),l=o&&(o.id||o.uri),c=e&&(e.id||e.uri);if(l&&l!==c){this.logger_(`switch media ${l} -> ${c} from ${i}`);const f={renditionInfo:{id:c,bandwidth:e.attributes.BANDWIDTH,resolution:e.attributes.RESOLUTION,codecs:e.attributes.CODECS},cause:i};this.trigger({type:"renditionselected",metadata:f}),this.tech_.trigger({type:"usage",name:`vhs-rendition-change-${i}`})}this.mainPlaylistLoader_.media(e,r)}switchMediaForDASHContentSteering_(){["AUDIO","SUBTITLES","CLOSED-CAPTIONS"].forEach(e=>{const i=this.mediaTypes_[e],r=i?i.activeGroup():null,o=this.contentSteeringController_.getPathway();if(r&&o){const c=(r.length?r[0].playlists:r.playlists).filter(f=>f.attributes.serviceLocation===o);c.length&&this.mediaTypes_[e].activePlaylistLoader.media(c[0])}})}startABRTimer_(){this.stopABRTimer_(),this.abrTimer_=z.setInterval(()=>this.checkABR_(),250)}stopABRTimer_(){this.tech_.scrubbing&&this.tech_.scrubbing()||(z.clearInterval(this.abrTimer_),this.abrTimer_=null)}getAudioTrackPlaylists_(){const e=this.main(),i=e&&e.playlists||[];if(!e||!e.mediaGroups||!e.mediaGroups.AUDIO)return i;const r=e.mediaGroups.AUDIO,o=Object.keys(r);let l;if(Object.keys(this.mediaTypes_.AUDIO.groups).length)l=this.mediaTypes_.AUDIO.activeTrack();else{const f=r.main||o.length&&r[o[0]];for(const p in f)if(f[p].default){l={label:p};break}}if(!l)return i;const c=[];for(const f in r)if(r[f][l.label]){const p=r[f][l.label];if(p.playlists&&p.playlists.length)c.push.apply(c,p.playlists);else if(p.uri)c.push(p);else if(e.playlists.length)for(let v=0;v{const i=this.mainPlaylistLoader_.media(),r=i.targetDuration*1.5*1e3;_y(this.mainPlaylistLoader_.main,this.mainPlaylistLoader_.media())?this.requestOptions_.timeout=0:this.requestOptions_.timeout=r,i.endList&&this.tech_.preload()!=="none"&&(this.mainSegmentLoader_.playlist(i,this.requestOptions_),this.mainSegmentLoader_.load()),pI({sourceType:this.sourceType_,segmentLoaders:{AUDIO:this.audioSegmentLoader_,SUBTITLES:this.subtitleSegmentLoader_,main:this.mainSegmentLoader_},tech:this.tech_,requestOptions:this.requestOptions_,mainPlaylistLoader:this.mainPlaylistLoader_,vhs:this.vhs_,main:this.main(),mediaTypes:this.mediaTypes_,excludePlaylist:this.excludePlaylist.bind(this)}),this.triggerPresenceUsage_(this.main(),i),this.setupFirstPlay(),!this.mediaTypes_.AUDIO.activePlaylistLoader||this.mediaTypes_.AUDIO.activePlaylistLoader.media()?this.trigger("selectedinitialmedia"):this.mediaTypes_.AUDIO.activePlaylistLoader.one("loadedmetadata",()=>{this.trigger("selectedinitialmedia")})}),this.mainPlaylistLoader_.on("loadedplaylist",()=>{this.loadOnPlay_&&this.tech_.off("play",this.loadOnPlay_);let i=this.mainPlaylistLoader_.media();if(!i){this.attachContentSteeringListeners_(),this.initContentSteeringController_(),this.excludeUnsupportedVariants_();let r;if(this.enableLowInitialPlaylist&&(r=this.selectInitialPlaylist()),r||(r=this.selectPlaylist()),!r||!this.shouldSwitchToMedia_(r)||(this.initialMedia_=r,this.switchMedia_(this.initialMedia_,"initial"),!(this.sourceType_==="vhs-json"&&this.initialMedia_.segments)))return;i=this.initialMedia_}this.handleUpdatedMediaPlaylist(i)}),this.mainPlaylistLoader_.on("error",()=>{const i=this.mainPlaylistLoader_.error;this.excludePlaylist({playlistToExclude:i.playlist,error:i})}),this.mainPlaylistLoader_.on("mediachanging",()=>{this.mainSegmentLoader_.abort(),this.mainSegmentLoader_.pause()}),this.mainPlaylistLoader_.on("mediachange",()=>{const i=this.mainPlaylistLoader_.media(),r=i.targetDuration*1.5*1e3;_y(this.mainPlaylistLoader_.main,this.mainPlaylistLoader_.media())?this.requestOptions_.timeout=0:this.requestOptions_.timeout=r,this.sourceType_==="dash"&&this.mainPlaylistLoader_.isPaused&&this.mainPlaylistLoader_.load(),this.mainSegmentLoader_.pause(),this.mainSegmentLoader_.playlist(i,this.requestOptions_),this.waitingForFastQualityPlaylistReceived_?this.runFastQualitySwitch_():this.mainSegmentLoader_.load(),this.tech_.trigger({type:"mediachange",bubbles:!0})}),this.mainPlaylistLoader_.on("playlistunchanged",()=>{const i=this.mainPlaylistLoader_.media();if(i.lastExcludeReason_==="playlist-unchanged")return;this.stuckAtPlaylistEnd_(i)&&(this.excludePlaylist({error:{message:"Playlist no longer updating.",reason:"playlist-unchanged"}}),this.tech_.trigger("playliststuck"))}),this.mainPlaylistLoader_.on("renditiondisabled",()=>{this.tech_.trigger({type:"usage",name:"vhs-rendition-disabled"})}),this.mainPlaylistLoader_.on("renditionenabled",()=>{this.tech_.trigger({type:"usage",name:"vhs-rendition-enabled"})}),["manifestrequeststart","manifestrequestcomplete","manifestparsestart","manifestparsecomplete","playlistrequeststart","playlistrequestcomplete","playlistparsestart","playlistparsecomplete","renditiondisabled","renditionenabled"].forEach(i=>{this.mainPlaylistLoader_.on(i,r=>{this.player_.trigger(ei({},r))})})}handleUpdatedMediaPlaylist(e){this.useCueTags_&&this.updateAdCues_(e),this.mainSegmentLoader_.pause(),this.mainSegmentLoader_.playlist(e,this.requestOptions_),this.waitingForFastQualityPlaylistReceived_&&this.runFastQualitySwitch_(),this.updateDuration(!e.endList),this.tech_.paused()||(this.mainSegmentLoader_.load(),this.audioSegmentLoader_&&this.audioSegmentLoader_.load())}triggerPresenceUsage_(e,i){const r=e.mediaGroups||{};let o=!0;const l=Object.keys(r.AUDIO);for(const c in r.AUDIO)for(const f in r.AUDIO[c])r.AUDIO[c][f].uri||(o=!1);o&&this.tech_.trigger({type:"usage",name:"vhs-demuxed"}),Object.keys(r.SUBTITLES).length&&this.tech_.trigger({type:"usage",name:"vhs-webvtt"}),za.Playlist.isAes(i)&&this.tech_.trigger({type:"usage",name:"vhs-aes"}),l.length&&Object.keys(r.AUDIO[l[0]]).length>1&&this.tech_.trigger({type:"usage",name:"vhs-alternate-audio"}),this.useCueTags_&&this.tech_.trigger({type:"usage",name:"vhs-playlist-cue-tags"})}shouldSwitchToMedia_(e){const i=this.mainPlaylistLoader_.media()||this.mainPlaylistLoader_.pendingMedia_,r=this.tech_.currentTime(),o=this.bufferLowWaterLine(),l=this.bufferHighWaterLine(),c=this.tech_.buffered();return _I({buffered:c,currentTime:r,currentPlaylist:i,nextPlaylist:e,bufferLowWaterLine:o,bufferHighWaterLine:l,duration:this.duration(),bufferBasedABR:this.bufferBasedABR,log:this.logger_})}setupSegmentLoaderListeners_(){this.mainSegmentLoader_.on("bandwidthupdate",()=>{this.checkABR_("bandwidthupdate"),this.tech_.trigger("bandwidthupdate")}),this.mainSegmentLoader_.on("timeout",()=>{this.bufferBasedABR&&this.mainSegmentLoader_.load()}),this.bufferBasedABR||this.mainSegmentLoader_.on("progress",()=>{this.trigger("progress")}),this.mainSegmentLoader_.on("error",()=>{const r=this.mainSegmentLoader_.error();this.excludePlaylist({playlistToExclude:r.playlist,error:r})}),this.mainSegmentLoader_.on("appenderror",()=>{this.error=this.mainSegmentLoader_.error_,this.trigger("error")}),this.mainSegmentLoader_.on("syncinfoupdate",()=>{this.onSyncInfoUpdate_()}),this.mainSegmentLoader_.on("timestampoffset",()=>{this.tech_.trigger({type:"usage",name:"vhs-timestamp-offset"})}),this.audioSegmentLoader_.on("syncinfoupdate",()=>{this.onSyncInfoUpdate_()}),this.audioSegmentLoader_.on("appenderror",()=>{this.error=this.audioSegmentLoader_.error_,this.trigger("error")}),this.mainSegmentLoader_.on("ended",()=>{this.logger_("main segment loader ended"),this.onEndOfStream()}),this.timelineChangeController_.on("audioTimelineBehind",()=>{const r=this.audioSegmentLoader_.pendingSegment_;if(!r||!r.segment||!r.segment.syncInfo)return;const o=r.segment.syncInfo.end+.01;this.tech_.setCurrentTime(o)}),this.timelineChangeController_.on("fixBadTimelineChange",()=>{this.logger_("Fix bad timeline change. Restarting al segment loaders..."),this.mainSegmentLoader_.pause(),this.mainSegmentLoader_.resetEverything(),this.mediaTypes_.AUDIO.activePlaylistLoader&&(this.audioSegmentLoader_.pause(),this.audioSegmentLoader_.resetEverything()),this.mediaTypes_.SUBTITLES.activePlaylistLoader&&(this.subtitleSegmentLoader_.pause(),this.subtitleSegmentLoader_.resetEverything()),this.load()}),this.mainSegmentLoader_.on("earlyabort",r=>{this.bufferBasedABR||(this.delegateLoaders_("all",["abort"]),this.excludePlaylist({error:{message:"Aborted early because there isn't enough bandwidth to complete the request without rebuffering."},playlistExclusionDuration:TI}))});const e=()=>{if(!this.sourceUpdater_.hasCreatedSourceBuffers())return this.tryToCreateSourceBuffers_();const r=this.getCodecsOrExclude_();r&&this.sourceUpdater_.addOrChangeSourceBuffers(r)};this.mainSegmentLoader_.on("trackinfo",e),this.audioSegmentLoader_.on("trackinfo",e),this.mainSegmentLoader_.on("fmp4",()=>{this.triggeredFmp4Usage||(this.tech_.trigger({type:"usage",name:"vhs-fmp4"}),this.triggeredFmp4Usage=!0)}),this.audioSegmentLoader_.on("fmp4",()=>{this.triggeredFmp4Usage||(this.tech_.trigger({type:"usage",name:"vhs-fmp4"}),this.triggeredFmp4Usage=!0)}),this.audioSegmentLoader_.on("ended",()=>{this.logger_("audioSegmentLoader ended"),this.onEndOfStream()}),["segmentselected","segmentloadstart","segmentloaded","segmentkeyloadstart","segmentkeyloadcomplete","segmentdecryptionstart","segmentdecryptioncomplete","segmenttransmuxingstart","segmenttransmuxingcomplete","segmenttransmuxingtrackinfoavailable","segmenttransmuxingtiminginfoavailable","segmentappendstart","appendsdone","bandwidthupdated","timelinechange","codecschange"].forEach(r=>{this.mainSegmentLoader_.on(r,o=>{this.player_.trigger(ei({},o))}),this.audioSegmentLoader_.on(r,o=>{this.player_.trigger(ei({},o))}),this.subtitleSegmentLoader_.on(r,o=>{this.player_.trigger(ei({},o))})})}mediaSecondsLoaded_(){return Math.max(this.audioSegmentLoader_.mediaSecondsLoaded+this.mainSegmentLoader_.mediaSecondsLoaded)}load(){this.mainSegmentLoader_.load(),this.mediaTypes_.AUDIO.activePlaylistLoader&&this.audioSegmentLoader_.load(),this.mediaTypes_.SUBTITLES.activePlaylistLoader&&this.subtitleSegmentLoader_.load()}pause(){this.mainSegmentLoader_.pause(),this.mediaTypes_.AUDIO.activePlaylistLoader&&this.audioSegmentLoader_.pause(),this.mediaTypes_.SUBTITLES.activePlaylistLoader&&this.subtitleSegmentLoader_.pause()}fastQualityChange_(e=this.selectPlaylist()){if(e&&e===this.mainPlaylistLoader_.media()){this.logger_("skipping fastQualityChange because new media is same as old");return}this.switchMedia_(e,"fast-quality"),this.waitingForFastQualityPlaylistReceived_=!0}runFastQualitySwitch_(){this.waitingForFastQualityPlaylistReceived_=!1,this.mainSegmentLoader_.pause(),this.mainSegmentLoader_.resetEverything(),this.mediaTypes_.AUDIO.activePlaylistLoader&&(this.audioSegmentLoader_.pause(),this.audioSegmentLoader_.resetEverything()),this.mediaTypes_.SUBTITLES.activePlaylistLoader&&(this.subtitleSegmentLoader_.pause(),this.subtitleSegmentLoader_.resetEverything()),this.load()}play(){if(this.setupFirstPlay())return;this.tech_.ended()&&this.tech_.setCurrentTime(0),this.hasPlayed_&&this.load();const e=this.tech_.seekable();if(this.tech_.duration()===1/0&&this.tech_.currentTime(){})}this.trigger("sourceopen")}handleSourceEnded_(){if(!this.inbandTextTracks_.metadataTrack_)return;const e=this.inbandTextTracks_.metadataTrack_.cues;if(!e||!e.length)return;const i=this.duration();e[e.length-1].endTime=isNaN(i)||Math.abs(i)===1/0?Number.MAX_VALUE:i}handleDurationChange_(){this.tech_.trigger("durationchange")}onEndOfStream(){let e=this.mainSegmentLoader_.ended_;if(this.mediaTypes_.AUDIO.activePlaylistLoader){const i=this.mainSegmentLoader_.getCurrentMediaInfo_();!i||i.hasVideo?e=e&&this.audioSegmentLoader_.ended_:e=this.audioSegmentLoader_.ended_}e&&(this.stopABRTimer_(),this.sourceUpdater_.endOfStream())}stuckAtPlaylistEnd_(e){if(!this.seekable().length)return!1;const r=this.syncController_.getExpiredTime(e,this.duration());if(r===null)return!1;const o=za.Playlist.playlistEnd(e,r),l=this.tech_.currentTime(),c=this.tech_.buffered();if(!c.length)return o-l<=nr;const f=c.end(c.length-1);return f-l<=nr&&o-f<=nr}excludePlaylist({playlistToExclude:e=this.mainPlaylistLoader_.media(),error:i={},playlistExclusionDuration:r}){if(e=e||this.mainPlaylistLoader_.media(),r=r||i.playlistExclusionDuration||this.playlistExclusionDuration,!e){this.error=i,this.mediaSource.readyState!=="open"?this.trigger("error"):this.sourceUpdater_.endOfStream("network");return}e.playlistErrors_++;const o=this.mainPlaylistLoader_.main.playlists,l=o.filter(Lp),c=l.length===1&&l[0]===e;if(o.length===1&&r!==1/0)return F.log.warn(`Problem encountered with playlist ${e.id}. Trying again since it is the only playlist.`),this.tech_.trigger("retryplaylist"),this.mainPlaylistLoader_.load(c);if(c){if(this.main().contentSteering){const I=this.pathwayAttribute_(e),C=this.contentSteeringController_.steeringManifest.ttl*1e3;this.contentSteeringController_.excludePathway(I),this.excludeThenChangePathway_(),setTimeout(()=>{this.contentSteeringController_.addAvailablePathway(I)},C);return}let k=!1;o.forEach(I=>{if(I===e)return;const C=I.excludeUntil;typeof C<"u"&&C!==1/0&&(k=!0,delete I.excludeUntil)}),k&&(F.log.warn("Removing other playlists from the exclusion list because the last rendition is about to be excluded."),this.tech_.trigger("retryplaylist"))}let f;e.playlistErrors_>this.maxPlaylistRetries?f=1/0:f=Date.now()+r*1e3,e.excludeUntil=f,i.reason&&(e.lastExcludeReason_=i.reason),this.tech_.trigger("excludeplaylist"),this.tech_.trigger({type:"usage",name:"vhs-rendition-excluded"});const p=this.selectPlaylist();if(!p){this.error="Playback cannot continue. No available working or supported playlists.",this.trigger("error");return}const v=i.internal?this.logger_:F.log.warn,S=i.message?" "+i.message:"";v(`${i.internal?"Internal problem":"Problem"} encountered with playlist ${e.id}.${S} Switching to playlist ${p.id}.`),p.attributes.AUDIO!==e.attributes.AUDIO&&this.delegateLoaders_("audio",["abort","pause"]),p.attributes.SUBTITLES!==e.attributes.SUBTITLES&&this.delegateLoaders_("subtitle",["abort","pause"]),this.delegateLoaders_("main",["abort","pause"]);const x=p.targetDuration/2*1e3||5*1e3,D=typeof p.lastRequest=="number"&&Date.now()-p.lastRequest<=x;return this.switchMedia_(p,"exclude",c||D)}pauseLoading(){this.delegateLoaders_("all",["abort","pause"]),this.stopABRTimer_()}delegateLoaders_(e,i){const r=[],o=e==="all";(o||e==="main")&&r.push(this.mainPlaylistLoader_);const l=[];(o||e==="audio")&&l.push("AUDIO"),(o||e==="subtitle")&&(l.push("CLOSED-CAPTIONS"),l.push("SUBTITLES")),l.forEach(c=>{const f=this.mediaTypes_[c]&&this.mediaTypes_[c].activePlaylistLoader;f&&r.push(f)}),["main","audio","subtitle"].forEach(c=>{const f=this[`${c}SegmentLoader_`];f&&(e===c||e==="all")&&r.push(f)}),r.forEach(c=>i.forEach(f=>{typeof c[f]=="function"&&c[f]()}))}setCurrentTime(e){const i=Tu(this.tech_.buffered(),e);if(!(this.mainPlaylistLoader_&&this.mainPlaylistLoader_.media())||!this.mainPlaylistLoader_.media().segments)return 0;if(i&&i.length)return e;this.mainSegmentLoader_.pause(),this.mainSegmentLoader_.resetEverything(),this.mediaTypes_.AUDIO.activePlaylistLoader&&(this.audioSegmentLoader_.pause(),this.audioSegmentLoader_.resetEverything()),this.mediaTypes_.SUBTITLES.activePlaylistLoader&&(this.subtitleSegmentLoader_.pause(),this.subtitleSegmentLoader_.resetEverything()),this.load()}duration(){if(!this.mainPlaylistLoader_)return 0;const e=this.mainPlaylistLoader_.media();return e?e.endList?this.mediaSource?this.mediaSource.duration:za.Playlist.duration(e):1/0:0}seekable(){return this.seekable_}getSeekableRange_(e,i){const r=e.media();if(!r)return null;const o=this.syncController_.getMediaSequenceSync(i);if(o&&o.isReliable){const f=o.start,p=o.end;if(!isFinite(f)||!isFinite(p))return null;const v=za.Playlist.liveEdgeDelay(this.mainPlaylistLoader_.main,r),S=Math.max(f,p-v);return Ni([[f,S]])}const l=this.syncController_.getExpiredTime(r,this.duration());if(l===null)return null;const c=za.Playlist.seekable(r,l,za.Playlist.liveEdgeDelay(this.mainPlaylistLoader_.main,r));return c.length?c:null}computeFinalSeekable_(e,i){if(!i)return e;const r=e.start(0),o=e.end(0),l=i.start(0),c=i.end(0);return l>o||r>c?e:Ni([[Math.max(r,l),Math.min(o,c)]])}onSyncInfoUpdate_(){if(!this.mainPlaylistLoader_)return;const e=this.getSeekableRange_(this.mainPlaylistLoader_,"main");if(!e)return;let i;if(this.mediaTypes_.AUDIO.activePlaylistLoader&&(i=this.getSeekableRange_(this.mediaTypes_.AUDIO.activePlaylistLoader,"audio"),!i))return;const r=this.seekable_;if(this.seekable_=this.computeFinalSeekable_(e,i),!this.seekable_||r&&r.length&&this.seekable_.length&&r.start(0)===this.seekable_.start(0)&&r.end(0)===this.seekable_.end(0))return;this.logger_(`seekable updated [${fS(this.seekable_)}]`);const o={seekableRanges:this.seekable_};this.trigger({type:"seekablerangeschanged",metadata:o}),this.tech_.trigger("seekablechanged")}updateDuration(e){if(this.updateDuration_&&(this.mediaSource.removeEventListener("sourceopen",this.updateDuration_),this.updateDuration_=null),this.mediaSource.readyState!=="open"){this.updateDuration_=this.updateDuration.bind(this,e),this.mediaSource.addEventListener("sourceopen",this.updateDuration_);return}if(e){const o=this.seekable();if(!o.length)return;(isNaN(this.mediaSource.duration)||this.mediaSource.duration0&&(r=Math.max(r,i.end(i.length-1))),this.mediaSource.duration!==r&&this.sourceUpdater_.setDuration(r)}dispose(){this.trigger("dispose"),this.decrypter_.terminate(),this.mainPlaylistLoader_.dispose(),this.mainSegmentLoader_.dispose(),this.contentSteeringController_.dispose(),this.keyStatusMap_.clear(),this.loadOnPlay_&&this.tech_.off("play",this.loadOnPlay_),["AUDIO","SUBTITLES"].forEach(e=>{const i=this.mediaTypes_[e].groups;for(const r in i)i[r].forEach(o=>{o.playlistLoader&&o.playlistLoader.dispose()})}),this.audioSegmentLoader_.dispose(),this.subtitleSegmentLoader_.dispose(),this.sourceUpdater_.dispose(),this.timelineChangeController_.dispose(),this.stopABRTimer_(),this.updateDuration_&&this.mediaSource.removeEventListener("sourceopen",this.updateDuration_),this.mediaSource.removeEventListener("durationchange",this.handleDurationChange_),this.mediaSource.removeEventListener("sourceopen",this.handleSourceOpen_),this.mediaSource.removeEventListener("sourceended",this.handleSourceEnded_),this.off()}main(){return this.mainPlaylistLoader_.main}media(){return this.mainPlaylistLoader_.media()||this.initialMedia_}areMediaTypesKnown_(){const e=!!this.mediaTypes_.AUDIO.activePlaylistLoader,i=!!this.mainSegmentLoader_.getCurrentMediaInfo_(),r=e?!!this.audioSegmentLoader_.getCurrentMediaInfo_():!0;return!(!i||!r)}getCodecsOrExclude_(){const e={main:this.mainSegmentLoader_.getCurrentMediaInfo_()||{},audio:this.audioSegmentLoader_.getCurrentMediaInfo_()||{}},i=this.mainSegmentLoader_.getPendingSegmentPlaylist()||this.media();e.video=e.main;const r=Id(this.main(),i),o={},l=!!this.mediaTypes_.AUDIO.activePlaylistLoader;if(e.main.hasVideo&&(o.video=r.video||e.main.videoCodec||Qw),e.main.isMuxed&&(o.video+=`,${r.audio||e.main.audioCodec||r1}`),(e.main.hasAudio&&!e.main.isMuxed||e.audio.hasAudio||l)&&(o.audio=r.audio||e.main.audioCodec||e.audio.audioCodec||r1,e.audio.isFmp4=e.main.hasAudio&&!e.main.isMuxed?e.main.isFmp4:e.audio.isFmp4),!o.audio&&!o.video){this.excludePlaylist({playlistToExclude:i,error:{message:"Could not determine codecs for playlist."},playlistExclusionDuration:1/0});return}const c=(v,S)=>v?nd(S,this.usingManagedMediaSource_):Qg(S),f={};let p;if(["video","audio"].forEach(function(v){if(o.hasOwnProperty(v)&&!c(e[v].isFmp4,o[v])){const S=e[v].isFmp4?"browser":"muxer";f[S]=f[S]||[],f[S].push(o[v]),v==="audio"&&(p=S)}}),l&&p&&i.attributes.AUDIO){const v=i.attributes.AUDIO;this.main().playlists.forEach(S=>{(S.attributes&&S.attributes.AUDIO)===v&&S!==i&&(S.excludeUntil=1/0)}),this.logger_(`excluding audio group ${v} as ${p} does not support codec(s): "${o.audio}"`)}if(Object.keys(f).length){const v=Object.keys(f).reduce((S,x)=>(S&&(S+=", "),S+=`${x} does not support codec(s): "${f[x].join(",")}"`,S),"")+".";this.excludePlaylist({playlistToExclude:i,error:{internal:!0,message:v},playlistExclusionDuration:1/0});return}if(this.sourceUpdater_.hasCreatedSourceBuffers()&&!this.sourceUpdater_.canChangeType()){const v=[];if(["video","audio"].forEach(S=>{const x=(Gs(this.sourceUpdater_.codecs[S]||"")[0]||{}).type,D=(Gs(o[S]||"")[0]||{}).type;x&&D&&x.toLowerCase()!==D.toLowerCase()&&v.push(`"${this.sourceUpdater_.codecs[S]}" -> "${o[S]}"`)}),v.length){this.excludePlaylist({playlistToExclude:i,error:{message:`Codec switching not supported: ${v.join(", ")}.`,internal:!0},playlistExclusionDuration:1/0});return}}return o}tryToCreateSourceBuffers_(){if(this.mediaSource.readyState!=="open"||this.sourceUpdater_.hasCreatedSourceBuffers()||!this.areMediaTypesKnown_())return;const e=this.getCodecsOrExclude_();if(!e)return;this.sourceUpdater_.createSourceBuffers(e);const i=[e.video,e.audio].filter(Boolean).join(",");this.excludeIncompatibleVariants_(i)}excludeUnsupportedVariants_(){const e=this.main().playlists,i=[];Object.keys(e).forEach(r=>{const o=e[r];if(i.indexOf(o.id)!==-1)return;i.push(o.id);const l=Id(this.main,o),c=[];l.audio&&!Qg(l.audio)&&!nd(l.audio,this.usingManagedMediaSource_)&&c.push(`audio codec ${l.audio}`),l.video&&!Qg(l.video)&&!nd(l.video,this.usingManagedMediaSource_)&&c.push(`video codec ${l.video}`),l.text&&l.text==="stpp.ttml.im1t"&&c.push(`text codec ${l.text}`),c.length&&(o.excludeUntil=1/0,this.logger_(`excluding ${o.id} for unsupported: ${c.join(", ")}`))})}excludeIncompatibleVariants_(e){const i=[],r=this.main().playlists,o=Od(Gs(e)),l=kS(o),c=o.video&&Gs(o.video)[0]||null,f=o.audio&&Gs(o.audio)[0]||null;Object.keys(r).forEach(p=>{const v=r[p];if(i.indexOf(v.id)!==-1||v.excludeUntil===1/0)return;i.push(v.id);const S=[],x=Id(this.mainPlaylistLoader_.main,v),D=kS(x);if(!(!x.audio&&!x.video)){if(D!==l&&S.push(`codec count "${D}" !== "${l}"`),!this.sourceUpdater_.canChangeType()){const k=x.video&&Gs(x.video)[0]||null,I=x.audio&&Gs(x.audio)[0]||null;k&&c&&k.type.toLowerCase()!==c.type.toLowerCase()&&S.push(`video codec "${k.type}" !== "${c.type}"`),I&&f&&I.type.toLowerCase()!==f.type.toLowerCase()&&S.push(`audio codec "${I.type}" !== "${f.type}"`)}S.length&&(v.excludeUntil=1/0,this.logger_(`excluding ${v.id}: ${S.join(" && ")}`))}})}updateAdCues_(e){let i=0;const r=this.seekable();r.length&&(i=r.start(0)),J3(e,this.cueTagsTrack_,i)}goalBufferLength(){const e=this.tech_.currentTime(),i=ki.GOAL_BUFFER_LENGTH,r=ki.GOAL_BUFFER_LENGTH_RATE,o=Math.max(i,ki.MAX_GOAL_BUFFER_LENGTH);return Math.min(i+e*r,o)}bufferLowWaterLine(){const e=this.tech_.currentTime(),i=ki.BUFFER_LOW_WATER_LINE,r=ki.BUFFER_LOW_WATER_LINE_RATE,o=Math.max(i,ki.MAX_BUFFER_LOW_WATER_LINE),l=Math.max(i,ki.EXPERIMENTAL_MAX_BUFFER_LOW_WATER_LINE);return Math.min(i+e*r,this.bufferBasedABR?l:o)}bufferHighWaterLine(){return ki.BUFFER_HIGH_WATER_LINE}addDateRangesToTextTrack_(e){lx(this.inbandTextTracks_,"com.apple.streaming",this.tech_),O3({inbandTextTracks:this.inbandTextTracks_,dateRanges:e})}addMetadataToTextTrack(e,i,r){const o=this.sourceUpdater_.videoBuffer?this.sourceUpdater_.videoTimestampOffset():this.sourceUpdater_.audioTimestampOffset();lx(this.inbandTextTracks_,e,this.tech_),w3({inbandTextTracks:this.inbandTextTracks_,metadataArray:i,timestampOffset:o,videoDuration:r})}pathwayAttribute_(e){return e.attributes["PATHWAY-ID"]||e.attributes.serviceLocation}initContentSteeringController_(){const e=this.main();if(e.contentSteering){for(const i of e.playlists)this.contentSteeringController_.addAvailablePathway(this.pathwayAttribute_(i));if(this.contentSteeringController_.assignTagProperties(e.uri,e.contentSteering),this.contentSteeringController_.queryBeforeStart){this.contentSteeringController_.requestSteeringManifest(!0);return}this.tech_.one("canplay",()=>{this.contentSteeringController_.requestSteeringManifest()})}}resetContentSteeringController_(){this.contentSteeringController_.clearAvailablePathways(),this.contentSteeringController_.dispose(),this.initContentSteeringController_()}attachContentSteeringListeners_(){this.contentSteeringController_.on("content-steering",this.excludeThenChangePathway_.bind(this)),["contentsteeringloadstart","contentsteeringloadcomplete","contentsteeringparsed"].forEach(i=>{this.contentSteeringController_.on(i,r=>{this.trigger(ei({},r))})}),this.sourceType_==="dash"&&this.mainPlaylistLoader_.on("loadedplaylist",()=>{const i=this.main();(this.contentSteeringController_.didDASHTagChange(i.uri,i.contentSteering)||(()=>{const l=this.contentSteeringController_.getAvailablePathways(),c=[];for(const f of i.playlists){const p=f.attributes.serviceLocation;if(p&&(c.push(p),!l.has(p)))return!0}return!!(!c.length&&l.size)})())&&this.resetContentSteeringController_()})}excludeThenChangePathway_(){const e=this.contentSteeringController_.getPathway();if(!e)return;this.handlePathwayClones_();const r=this.main().playlists,o=new Set;let l=!1;Object.keys(r).forEach(c=>{const f=r[c],p=this.pathwayAttribute_(f),v=p&&e!==p;f.excludeUntil===1/0&&f.lastExcludeReason_==="content-steering"&&!v&&(delete f.excludeUntil,delete f.lastExcludeReason_,l=!0);const x=!f.excludeUntil&&f.excludeUntil!==1/0;!o.has(f.id)&&v&&x&&(o.add(f.id),f.excludeUntil=1/0,f.lastExcludeReason_="content-steering",this.logger_(`excluding ${f.id} for ${f.lastExcludeReason_}`))}),this.contentSteeringController_.manifestType_==="DASH"&&Object.keys(this.mediaTypes_).forEach(c=>{const f=this.mediaTypes_[c];if(f.activePlaylistLoader){const p=f.activePlaylistLoader.media_;p&&p.attributes.serviceLocation!==e&&(l=!0)}}),l&&this.changeSegmentPathway_()}handlePathwayClones_(){const i=this.main().playlists,r=this.contentSteeringController_.currentPathwayClones,o=this.contentSteeringController_.nextPathwayClones;if(r&&r.size||o&&o.size){for(const[c,f]of r.entries())o.get(c)||(this.mainPlaylistLoader_.updateOrDeleteClone(f),this.contentSteeringController_.excludePathway(c));for(const[c,f]of o.entries()){const p=r.get(c);if(!p){i.filter(S=>S.attributes["PATHWAY-ID"]===f["BASE-ID"]).forEach(S=>{this.mainPlaylistLoader_.addClonePathway(f,S)}),this.contentSteeringController_.addAvailablePathway(c);continue}this.equalPathwayClones_(p,f)||(this.mainPlaylistLoader_.updateOrDeleteClone(f,!0),this.contentSteeringController_.addAvailablePathway(c))}this.contentSteeringController_.currentPathwayClones=new Map(JSON.parse(JSON.stringify([...o])))}}equalPathwayClones_(e,i){if(e["BASE-ID"]!==i["BASE-ID"]||e.ID!==i.ID||e["URI-REPLACEMENT"].HOST!==i["URI-REPLACEMENT"].HOST)return!1;const r=e["URI-REPLACEMENT"].PARAMS,o=i["URI-REPLACEMENT"].PARAMS;for(const l in r)if(r[l]!==o[l])return!1;for(const l in o)if(r[l]!==o[l])return!1;return!0}changeSegmentPathway_(){const e=this.selectPlaylist();this.pauseLoading(),this.contentSteeringController_.manifestType_==="DASH"&&this.switchMediaForDASHContentSteering_(),this.switchMedia_(e,"content-steering")}excludeNonUsablePlaylistsByKeyId_(){if(!this.mainPlaylistLoader_||!this.mainPlaylistLoader_.main)return;let e=0;const i="non-usable";this.mainPlaylistLoader_.main.playlists.forEach(r=>{const o=this.mainPlaylistLoader_.getKeyIdSet(r);!o||!o.size||o.forEach(l=>{const c="usable",f=this.keyStatusMap_.has(l)&&this.keyStatusMap_.get(l)===c,p=r.lastExcludeReason_===i&&r.excludeUntil===1/0;f?f&&p&&(delete r.excludeUntil,delete r.lastExcludeReason_,this.logger_(`enabling playlist ${r.id} because key ID ${l} is ${c}`)):(r.excludeUntil!==1/0&&r.lastExcludeReason_!==i&&(r.excludeUntil=1/0,r.lastExcludeReason_=i,this.logger_(`excluding playlist ${r.id} because the key ID ${l} doesn't exist in the keyStatusMap or is not ${c}`)),e++)})}),e>=this.mainPlaylistLoader_.main.playlists.length&&this.mainPlaylistLoader_.main.playlists.forEach(r=>{const o=r&&r.attributes&&r.attributes.RESOLUTION&&r.attributes.RESOLUTION.height<720,l=r.excludeUntil===1/0&&r.lastExcludeReason_===i;o&&l&&(delete r.excludeUntil,F.log.warn(`enabling non-HD playlist ${r.id} because all playlists were excluded due to ${i} key IDs`))})}addKeyStatus_(e,i){const l=(typeof e=="string"?e:X3(e)).slice(0,32).toLowerCase();this.logger_(`KeyStatus '${i}' with key ID ${l} added to the keyStatusMap`),this.keyStatusMap_.set(l,i)}updatePlaylistByKeyStatus(e,i){this.addKeyStatus_(e,i),this.waitingForFastQualityPlaylistReceived_||this.excludeNonUsableThenChangePlaylist_(),this.mainPlaylistLoader_.off("loadedplaylist",this.excludeNonUsableThenChangePlaylist_.bind(this)),this.mainPlaylistLoader_.on("loadedplaylist",this.excludeNonUsableThenChangePlaylist_.bind(this))}excludeNonUsableThenChangePlaylist_(){this.excludeNonUsablePlaylistsByKeyId_(),this.fastQualityChange_()}}const xI=(s,e,i)=>r=>{const o=s.main.playlists[e],l=by(o),c=Lp(o);if(typeof r>"u")return c;r?delete o.disabled:o.disabled=!0;const f={renditionInfo:{id:e,bandwidth:o.attributes.BANDWIDTH,resolution:o.attributes.RESOLUTION,codecs:o.attributes.CODECS},cause:"fast-quality"};return r!==c&&!l&&(r?(i(o),s.trigger({type:"renditionenabled",metadata:f})):s.trigger({type:"renditiondisabled",metadata:f})),r};class EI{constructor(e,i,r){const{playlistController_:o}=e,l=o.fastQualityChange_.bind(o);if(i.attributes){const c=i.attributes.RESOLUTION;this.width=c&&c.width,this.height=c&&c.height,this.bandwidth=i.attributes.BANDWIDTH,this.frameRate=i.attributes["FRAME-RATE"]}this.codecs=Id(o.main(),i),this.playlist=i,this.id=r,this.enabled=xI(e.playlists,i.id,l)}}const MI=function(s){s.representations=()=>{const e=s.playlistController_.main(),i=kd(e)?s.playlistController_.getAudioTrackPlaylists_():e.playlists;return i?i.filter(r=>!by(r)).map((r,o)=>new EI(s,r,r.id)):[]}},Mx=["seeking","seeked","pause","playing","error"];class DI extends F.EventTarget{constructor(e){super(),this.playlistController_=e.playlistController,this.tech_=e.tech,this.seekable=e.seekable,this.allowSeeksWithinUnsafeLiveWindow=e.allowSeeksWithinUnsafeLiveWindow,this.liveRangeSafeTimeDelta=e.liveRangeSafeTimeDelta,this.media=e.media,this.playedRanges_=[],this.consecutiveUpdates=0,this.lastRecordedTime=null,this.checkCurrentTimeTimeout_=null,this.logger_=ls("PlaybackWatcher"),this.logger_("initialize");const i=()=>this.monitorCurrentTime_(),r=()=>this.monitorCurrentTime_(),o=()=>this.techWaiting_(),l=()=>this.resetTimeUpdate_(),c=this.playlistController_,f=["main","subtitle","audio"],p={};f.forEach(S=>{p[S]={reset:()=>this.resetSegmentDownloads_(S),updateend:()=>this.checkSegmentDownloads_(S)},c[`${S}SegmentLoader_`].on("appendsdone",p[S].updateend),c[`${S}SegmentLoader_`].on("playlistupdate",p[S].reset),this.tech_.on(["seeked","seeking"],p[S].reset)});const v=S=>{["main","audio"].forEach(x=>{c[`${x}SegmentLoader_`][S]("appended",this.seekingAppendCheck_)})};this.seekingAppendCheck_=()=>{this.fixesBadSeeks_()&&(this.consecutiveUpdates=0,this.lastRecordedTime=this.tech_.currentTime(),v("off"))},this.clearSeekingAppendCheck_=()=>v("off"),this.watchForBadSeeking_=()=>{this.clearSeekingAppendCheck_(),v("on")},this.tech_.on("seeked",this.clearSeekingAppendCheck_),this.tech_.on("seeking",this.watchForBadSeeking_),this.tech_.on("waiting",o),this.tech_.on(Mx,l),this.tech_.on("canplay",r),this.tech_.one("play",i),this.dispose=()=>{this.clearSeekingAppendCheck_(),this.logger_("dispose"),this.tech_.off("waiting",o),this.tech_.off(Mx,l),this.tech_.off("canplay",r),this.tech_.off("play",i),this.tech_.off("seeking",this.watchForBadSeeking_),this.tech_.off("seeked",this.clearSeekingAppendCheck_),f.forEach(S=>{c[`${S}SegmentLoader_`].off("appendsdone",p[S].updateend),c[`${S}SegmentLoader_`].off("playlistupdate",p[S].reset),this.tech_.off(["seeked","seeking"],p[S].reset)}),this.checkCurrentTimeTimeout_&&z.clearTimeout(this.checkCurrentTimeTimeout_),this.resetTimeUpdate_()}}monitorCurrentTime_(){this.checkCurrentTime_(),this.checkCurrentTimeTimeout_&&z.clearTimeout(this.checkCurrentTimeTimeout_),this.checkCurrentTimeTimeout_=z.setTimeout(this.monitorCurrentTime_.bind(this),250)}resetSegmentDownloads_(e){const i=this.playlistController_[`${e}SegmentLoader_`];this[`${e}StalledDownloads_`]>0&&this.logger_(`resetting possible stalled download count for ${e} loader`),this[`${e}StalledDownloads_`]=0,this[`${e}Buffered_`]=i.buffered_()}checkSegmentDownloads_(e){const i=this.playlistController_,r=i[`${e}SegmentLoader_`],o=r.buffered_(),l=pO(this[`${e}Buffered_`],o);if(this[`${e}Buffered_`]=o,l){const c={bufferedRanges:o};i.trigger({type:"bufferedrangeschanged",metadata:c}),this.resetSegmentDownloads_(e);return}this[`${e}StalledDownloads_`]++,this.logger_(`found #${this[`${e}StalledDownloads_`]} ${e} appends that did not increase buffer (possible stalled download)`,{playlistId:r.playlist_&&r.playlist_.id,buffered:zo(o)}),!(this[`${e}StalledDownloads_`]<10)&&(this.logger_(`${e} loader stalled download exclusion`),this.resetSegmentDownloads_(e),this.tech_.trigger({type:"usage",name:`vhs-${e}-download-exclusion`}),e!=="subtitle"&&i.excludePlaylist({error:{message:`Excessive ${e} segment downloading detected.`},playlistExclusionDuration:1/0}))}checkCurrentTime_(){if(this.tech_.paused()||this.tech_.seeking())return;const e=this.tech_.currentTime(),i=this.tech_.buffered();if(this.lastRecordedTime===e&&(!i.length||e+nr>=i.end(i.length-1)))return this.techWaiting_();if(this.consecutiveUpdates>=5&&e===this.lastRecordedTime)this.consecutiveUpdates++,this.waiting_();else if(e===this.lastRecordedTime)this.consecutiveUpdates++;else{this.playedRanges_.push(Ni([this.lastRecordedTime,e]));const r={playedRanges:this.playedRanges_};this.playlistController_.trigger({type:"playedrangeschanged",metadata:r}),this.consecutiveUpdates=0,this.lastRecordedTime=e}}resetTimeUpdate_(){this.consecutiveUpdates=0}fixesBadSeeks_(){if(!this.tech_.seeking())return!1;const i=this.seekable(),r=this.tech_.currentTime(),o=this.afterSeekableWindow_(i,r,this.media(),this.allowSeeksWithinUnsafeLiveWindow);let l;if(o&&(l=i.end(i.length-1)),this.beforeSeekableWindow_(i,r)){const I=i.start(0);l=I+(I===i.end(0)?0:nr)}if(typeof l<"u")return this.logger_(`Trying to seek outside of seekable at time ${r} with seekable range ${fS(i)}. Seeking to ${l}.`),this.tech_.setCurrentTime(l),!0;const c=this.playlistController_.sourceUpdater_,f=this.tech_.buffered(),p=c.audioBuffer?c.audioBuffered():null,v=c.videoBuffer?c.videoBuffered():null,S=this.media(),x=S.partTargetDuration?S.partTargetDuration:(S.targetDuration-ir)*2,D=[p,v];for(let I=0;I ${r.end(0)}]. Attempting to resume playback by seeking to the current time.`),this.tech_.trigger({type:"usage",name:"vhs-unknown-waiting"});return}}techWaiting_(){const e=this.seekable(),i=this.tech_.currentTime();if(this.tech_.seeking())return!0;if(this.beforeSeekableWindow_(e,i)){const f=e.end(e.length-1);return this.logger_(`Fell out of live window at time ${i}. Seeking to live point (seekable end) ${f}`),this.resetTimeUpdate_(),this.tech_.setCurrentTime(f),this.tech_.trigger({type:"usage",name:"vhs-live-resync"}),!0}const r=this.tech_.vhs.playlistController_.sourceUpdater_,o=this.tech_.buffered();if(this.videoUnderflow_({audioBuffered:r.audioBuffered(),videoBuffered:r.videoBuffered(),currentTime:i}))return this.resetTimeUpdate_(),this.tech_.setCurrentTime(i),this.tech_.trigger({type:"usage",name:"vhs-video-underflow"}),!0;const c=Ip(o,i);return c.length>0?(this.logger_(`Stopped at ${i} and seeking to ${c.start(0)}`),this.resetTimeUpdate_(),this.skipTheGap_(i),!0):!1}afterSeekableWindow_(e,i,r,o=!1){if(!e.length)return!1;let l=e.end(e.length-1)+nr;const c=!r.endList,f=typeof r.partTargetDuration=="number";return c&&(f||o)&&(l=e.end(e.length-1)+r.targetDuration*3),i>l}beforeSeekableWindow_(e,i){return!!(e.length&&e.start(0)>0&&i2)return{start:l,end:c}}return null}}const CI={errorInterval:30,getSource(s){const i=this.tech({IWillNotUseThisInPlugins:!0}).currentSource_||this.currentSource();return s(i)}},Dx=function(s,e){let i=0,r=0;const o=Ct(CI,e);s.ready(()=>{s.trigger({type:"usage",name:"vhs-error-reload-initialized"})});const l=function(){r&&s.currentTime(r)},c=function(S){S!=null&&(r=s.duration()!==1/0&&s.currentTime()||0,s.one("loadedmetadata",l),s.src(S),s.trigger({type:"usage",name:"vhs-error-reload"}),s.play())},f=function(){if(Date.now()-i{Object.defineProperty(Kt,s,{get(){return F.log.warn(`using Vhs.${s} is UNSAFE be sure you know what you are doing`),ki[s]},set(e){if(F.log.warn(`using Vhs.${s} is UNSAFE be sure you know what you are doing`),typeof e!="number"||e<0){F.log.warn(`value of Vhs.${s} must be greater than or equal to 0`);return}ki[s]=e}})});const Ax="videojs-vhs",wx=function(s,e){const i=e.media();let r=-1;for(let o=0;o{s.addQualityLevel(i)}),wx(s,e.playlists)};Kt.canPlaySource=function(){return F.log.warn("VHS is no longer a tech. Please remove it from your player's techOrder.")};const LI=(s,e,i)=>{if(!s)return s;let r={};e&&e.attributes&&e.attributes.CODECS&&(r=Od(Gs(e.attributes.CODECS))),i&&i.attributes&&i.attributes.CODECS&&(r.audio=i.attributes.CODECS);const o=Fl(r.video),l=Fl(r.audio),c={};for(const f in s)c[f]={},l&&(c[f].audioContentType=l),o&&(c[f].videoContentType=o),e.contentProtection&&e.contentProtection[f]&&e.contentProtection[f].pssh&&(c[f].pssh=e.contentProtection[f].pssh),typeof s[f]=="string"&&(c[f].url=s[f]);return Ct(s,c)},RI=(s,e)=>s.reduce((i,r)=>{if(!r.contentProtection)return i;const o=e.reduce((l,c)=>{const f=r.contentProtection[c];return f&&f.pssh&&(l[c]={pssh:f.pssh}),l},{});return Object.keys(o).length&&i.push(o),i},[]),jI=({player:s,sourceKeySystems:e,audioMedia:i,mainPlaylists:r})=>{if(!s.eme.initializeMediaKeys)return Promise.resolve();const o=i?r.concat([i]):r,l=RI(o,Object.keys(e)),c=[],f=[];return l.forEach(p=>{f.push(new Promise((v,S)=>{s.tech_.one("keysessioncreated",v)})),c.push(new Promise((v,S)=>{s.eme.initializeMediaKeys({keySystems:p},x=>{if(x){S(x);return}v()})}))}),Promise.race([Promise.all(c),Promise.race(f)])},zI=({player:s,sourceKeySystems:e,media:i,audioMedia:r})=>{const o=LI(e,i,r);return o?(s.currentSource().keySystems=o,o&&!s.eme?(F.log.warn("DRM encrypted source cannot be decrypted without a DRM plugin"),!1):!0):!1},Nx=()=>{if(!z.localStorage)return null;const s=z.localStorage.getItem(Ax);if(!s)return null;try{return JSON.parse(s)}catch{return null}},UI=s=>{if(!z.localStorage)return!1;let e=Nx();e=e?Ct(e,s):s;try{z.localStorage.setItem(Ax,JSON.stringify(e))}catch{return!1}return e},PI=s=>s.toLowerCase().indexOf("data:application/vnd.videojs.vhs+json,")===0?JSON.parse(s.substring(s.indexOf(",")+1)):s,kx=(s,e)=>{s._requestCallbackSet||(s._requestCallbackSet=new Set),s._requestCallbackSet.add(e)},Ox=(s,e)=>{s._responseCallbackSet||(s._responseCallbackSet=new Set),s._responseCallbackSet.add(e)},Ix=(s,e)=>{s._requestCallbackSet&&(s._requestCallbackSet.delete(e),s._requestCallbackSet.size||delete s._requestCallbackSet)},Lx=(s,e)=>{s._responseCallbackSet&&(s._responseCallbackSet.delete(e),s._responseCallbackSet.size||delete s._responseCallbackSet)};Kt.supportsNativeHls=function(){if(!ve||!ve.createElement)return!1;const s=ve.createElement("video");return F.getTech("Html5").isSupported()?["application/vnd.apple.mpegurl","audio/mpegurl","audio/x-mpegurl","application/x-mpegurl","video/x-mpegurl","video/mpegurl","application/mpegurl"].some(function(i){return/maybe|probably/i.test(s.canPlayType(i))}):!1}(),Kt.supportsNativeDash=function(){return!ve||!ve.createElement||!F.getTech("Html5").isSupported()?!1:/maybe|probably/i.test(ve.createElement("video").canPlayType("application/dash+xml"))}(),Kt.supportsTypeNatively=s=>s==="hls"?Kt.supportsNativeHls:s==="dash"?Kt.supportsNativeDash:!1,Kt.isSupported=function(){return F.log.warn("VHS is no longer a tech. Please remove it from your player's techOrder.")},Kt.xhr.onRequest=function(s){kx(Kt.xhr,s)},Kt.xhr.onResponse=function(s){Ox(Kt.xhr,s)},Kt.xhr.offRequest=function(s){Ix(Kt.xhr,s)},Kt.xhr.offResponse=function(s){Lx(Kt.xhr,s)};const BI=F.getComponent("Component");class Rx extends BI{constructor(e,i,r){if(super(i,r.vhs),typeof r.initialBandwidth=="number"&&(this.options_.bandwidth=r.initialBandwidth),this.logger_=ls("VhsHandler"),i.options_&&i.options_.playerId){const o=F.getPlayer(i.options_.playerId);this.player_=o}if(this.tech_=i,this.source_=e,this.stats={},this.ignoreNextSeekingEvent_=!1,this.setOptions_(),this.options_.overrideNative&&i.overrideNativeAudioTracks&&i.overrideNativeVideoTracks)i.overrideNativeAudioTracks(!0),i.overrideNativeVideoTracks(!0);else if(this.options_.overrideNative&&(i.featuresNativeVideoTracks||i.featuresNativeAudioTracks))throw new Error("Overriding native VHS requires emulated tracks. See https://git.io/vMpjB");this.on(ve,["fullscreenchange","webkitfullscreenchange","mozfullscreenchange","MSFullscreenChange"],o=>{const l=ve.fullscreenElement||ve.webkitFullscreenElement||ve.mozFullScreenElement||ve.msFullscreenElement;l&&l.contains(this.tech_.el())?this.playlistController_.fastQualityChange_():this.playlistController_.checkABR_()}),this.on(this.tech_,"seeking",function(){if(this.ignoreNextSeekingEvent_){this.ignoreNextSeekingEvent_=!1;return}this.setCurrentTime(this.tech_.currentTime())}),this.on(this.tech_,"error",function(){this.tech_.error()&&this.playlistController_&&this.playlistController_.pauseLoading()}),this.on(this.tech_,"play",this.play)}setOptions_(e={}){if(this.options_=Ct(this.options_,e),this.options_.withCredentials=this.options_.withCredentials||!1,this.options_.limitRenditionByPlayerDimensions=this.options_.limitRenditionByPlayerDimensions!==!1,this.options_.useDevicePixelRatio=this.options_.useDevicePixelRatio||!1,this.options_.usePlayerObjectFit=this.options_.usePlayerObjectFit||!1,this.options_.useBandwidthFromLocalStorage=typeof this.source_.useBandwidthFromLocalStorage<"u"?this.source_.useBandwidthFromLocalStorage:this.options_.useBandwidthFromLocalStorage||!1,this.options_.useForcedSubtitles=this.options_.useForcedSubtitles||!1,this.options_.useNetworkInformationApi=typeof this.options_.useNetworkInformationApi<"u"?this.options_.useNetworkInformationApi:!0,this.options_.useDtsForTimestampOffset=this.options_.useDtsForTimestampOffset||!1,this.options_.customTagParsers=this.options_.customTagParsers||[],this.options_.customTagMappers=this.options_.customTagMappers||[],this.options_.cacheEncryptionKeys=this.options_.cacheEncryptionKeys||!1,this.options_.llhls=this.options_.llhls!==!1,this.options_.bufferBasedABR=this.options_.bufferBasedABR||!1,typeof this.options_.playlistExclusionDuration!="number"&&(this.options_.playlistExclusionDuration=60),typeof this.options_.bandwidth!="number"&&this.options_.useBandwidthFromLocalStorage){const r=Nx();r&&r.bandwidth&&(this.options_.bandwidth=r.bandwidth,this.tech_.trigger({type:"usage",name:"vhs-bandwidth-from-local-storage"})),r&&r.throughput&&(this.options_.throughput=r.throughput,this.tech_.trigger({type:"usage",name:"vhs-throughput-from-local-storage"}))}typeof this.options_.bandwidth!="number"&&(this.options_.bandwidth=ki.INITIAL_BANDWIDTH),this.options_.enableLowInitialPlaylist=this.options_.enableLowInitialPlaylist&&this.options_.bandwidth===ki.INITIAL_BANDWIDTH,["withCredentials","useDevicePixelRatio","usePlayerObjectFit","customPixelRatio","limitRenditionByPlayerDimensions","bandwidth","customTagParsers","customTagMappers","cacheEncryptionKeys","playlistSelector","initialPlaylistSelector","bufferBasedABR","liveRangeSafeTimeDelta","llhls","useForcedSubtitles","useNetworkInformationApi","useDtsForTimestampOffset","exactManifestTimings","leastPixelDiffSelector"].forEach(r=>{typeof this.source_[r]<"u"&&(this.options_[r]=this.source_[r])}),this.limitRenditionByPlayerDimensions=this.options_.limitRenditionByPlayerDimensions,this.useDevicePixelRatio=this.options_.useDevicePixelRatio,this.usePlayerObjectFit=this.options_.usePlayerObjectFit;const i=this.options_.customPixelRatio;typeof i=="number"&&i>=0&&(this.customPixelRatio=i)}setOptions(e={}){this.setOptions_(e)}src(e,i){if(!e)return;this.setOptions_(),this.options_.src=PI(this.source_.src),this.options_.tech=this.tech_,this.options_.externVhs=Kt,this.options_.sourceType=a1(i),this.options_.seekTo=l=>{this.tech_.setCurrentTime(l)},this.options_.player_=this.player_,this.playlistController_=new SI(this.options_);const r=Ct({liveRangeSafeTimeDelta:nr},this.options_,{seekable:()=>this.seekable(),media:()=>this.playlistController_.media(),playlistController:this.playlistController_});this.playbackWatcher_=new DI(r),this.attachStreamingEventListeners_(),this.playlistController_.on("error",()=>{const l=F.players[this.tech_.options_.playerId];let c=this.playlistController_.error;typeof c=="object"&&!c.code?c.code=3:typeof c=="string"&&(c={message:c,code:3}),l.error(c)});const o=this.options_.bufferBasedABR?Kt.movingAverageBandwidthSelector(.55):Kt.STANDARD_PLAYLIST_SELECTOR;this.playlistController_.selectPlaylist=this.selectPlaylist?this.selectPlaylist.bind(this):o.bind(this),this.playlistController_.selectInitialPlaylist=Kt.INITIAL_PLAYLIST_SELECTOR.bind(this),this.playlists=this.playlistController_.mainPlaylistLoader_,this.mediaSource=this.playlistController_.mediaSource,Object.defineProperties(this,{selectPlaylist:{get(){return this.playlistController_.selectPlaylist},set(l){this.playlistController_.selectPlaylist=l.bind(this)}},throughput:{get(){return this.playlistController_.mainSegmentLoader_.throughput.rate},set(l){this.playlistController_.mainSegmentLoader_.throughput.rate=l,this.playlistController_.mainSegmentLoader_.throughput.count=1}},bandwidth:{get(){let l=this.playlistController_.mainSegmentLoader_.bandwidth;const c=z.navigator.connection||z.navigator.mozConnection||z.navigator.webkitConnection,f=1e7;if(this.options_.useNetworkInformationApi&&c){const p=c.downlink*1e3*1e3;p>=f&&l>=f?l=Math.max(l,p):l=p}return l},set(l){this.playlistController_.mainSegmentLoader_.bandwidth=l,this.playlistController_.mainSegmentLoader_.throughput={rate:0,count:0}}},systemBandwidth:{get(){const l=1/(this.bandwidth||1);let c;return this.throughput>0?c=1/this.throughput:c=0,Math.floor(1/(l+c))},set(){F.log.error('The "systemBandwidth" property is read-only')}}}),this.options_.bandwidth&&(this.bandwidth=this.options_.bandwidth),this.options_.throughput&&(this.throughput=this.options_.throughput),Object.defineProperties(this.stats,{bandwidth:{get:()=>this.bandwidth||0,enumerable:!0},mediaRequests:{get:()=>this.playlistController_.mediaRequests_()||0,enumerable:!0},mediaRequestsAborted:{get:()=>this.playlistController_.mediaRequestsAborted_()||0,enumerable:!0},mediaRequestsTimedout:{get:()=>this.playlistController_.mediaRequestsTimedout_()||0,enumerable:!0},mediaRequestsErrored:{get:()=>this.playlistController_.mediaRequestsErrored_()||0,enumerable:!0},mediaTransferDuration:{get:()=>this.playlistController_.mediaTransferDuration_()||0,enumerable:!0},mediaBytesTransferred:{get:()=>this.playlistController_.mediaBytesTransferred_()||0,enumerable:!0},mediaSecondsLoaded:{get:()=>this.playlistController_.mediaSecondsLoaded_()||0,enumerable:!0},mediaAppends:{get:()=>this.playlistController_.mediaAppends_()||0,enumerable:!0},mainAppendsToLoadedData:{get:()=>this.playlistController_.mainAppendsToLoadedData_()||0,enumerable:!0},audioAppendsToLoadedData:{get:()=>this.playlistController_.audioAppendsToLoadedData_()||0,enumerable:!0},appendsToLoadedData:{get:()=>this.playlistController_.appendsToLoadedData_()||0,enumerable:!0},timeToLoadedData:{get:()=>this.playlistController_.timeToLoadedData_()||0,enumerable:!0},buffered:{get:()=>zo(this.tech_.buffered()),enumerable:!0},currentTime:{get:()=>this.tech_.currentTime(),enumerable:!0},currentSource:{get:()=>this.tech_.currentSource_,enumerable:!0},currentTech:{get:()=>this.tech_.name_,enumerable:!0},duration:{get:()=>this.tech_.duration(),enumerable:!0},main:{get:()=>this.playlists.main,enumerable:!0},playerDimensions:{get:()=>this.tech_.currentDimensions(),enumerable:!0},seekable:{get:()=>zo(this.tech_.seekable()),enumerable:!0},timestamp:{get:()=>Date.now(),enumerable:!0},videoPlaybackQuality:{get:()=>this.tech_.getVideoPlaybackQuality(),enumerable:!0}}),this.tech_.one("canplay",this.playlistController_.setupFirstPlay.bind(this.playlistController_)),this.tech_.on("bandwidthupdate",()=>{this.options_.useBandwidthFromLocalStorage&&UI({bandwidth:this.bandwidth,throughput:Math.round(this.throughput)})}),this.playlistController_.on("selectedinitialmedia",()=>{MI(this)}),this.playlistController_.sourceUpdater_.on("createdsourcebuffers",()=>{this.setupEme_()}),this.on(this.playlistController_,"progress",function(){this.tech_.trigger("progress")}),this.on(this.playlistController_,"firstplay",function(){this.ignoreNextSeekingEvent_=!0}),this.setupQualityLevels_(),this.tech_.el()&&(this.mediaSourceUrl_=z.URL.createObjectURL(this.playlistController_.mediaSource),(F.browser.IS_ANY_SAFARI||F.browser.IS_IOS)&&this.options_.overrideNative&&this.options_.sourceType==="hls"&&typeof this.tech_.addSourceElement=="function"?(this.tech_.addSourceElement(this.mediaSourceUrl_),this.tech_.addSourceElement(this.source_.src)):this.tech_.src(this.mediaSourceUrl_))}createKeySessions_(){const e=this.playlistController_.mediaTypes_.AUDIO.activePlaylistLoader;this.logger_("waiting for EME key session creation"),jI({player:this.player_,sourceKeySystems:this.source_.keySystems,audioMedia:e&&e.media(),mainPlaylists:this.playlists.main.playlists}).then(()=>{this.logger_("created EME key session"),this.playlistController_.sourceUpdater_.initializedEme()}).catch(i=>{this.logger_("error while creating EME key session",i),this.player_.error({message:"Failed to initialize media keys for EME",code:3})})}handleWaitingForKey_(){this.logger_("waitingforkey fired, attempting to create any new key sessions"),this.createKeySessions_()}setupEme_(){const e=this.playlistController_.mediaTypes_.AUDIO.activePlaylistLoader,i=zI({player:this.player_,sourceKeySystems:this.source_.keySystems,media:this.playlists.media(),audioMedia:e&&e.media()});if(this.player_.tech_.on("keystatuschange",r=>{this.playlistController_.updatePlaylistByKeyStatus(r.keyId,r.status)}),this.handleWaitingForKey_=this.handleWaitingForKey_.bind(this),this.player_.tech_.on("waitingforkey",this.handleWaitingForKey_),!i){this.playlistController_.sourceUpdater_.initializedEme();return}this.createKeySessions_()}setupQualityLevels_(){const e=F.players[this.tech_.options_.playerId];!e||!e.qualityLevels||this.qualityLevels_||(this.qualityLevels_=e.qualityLevels(),this.playlistController_.on("selectedinitialmedia",()=>{II(this.qualityLevels_,this)}),this.playlists.on("mediachange",()=>{wx(this.qualityLevels_,this.playlists)}))}static version(){return{"@videojs/http-streaming":Cx,"mux.js":wI,"mpd-parser":NI,"m3u8-parser":kI,"aes-decrypter":OI}}version(){return this.constructor.version()}canChangeType(){return mx.canChangeType()}play(){this.playlistController_.play()}setCurrentTime(e){this.playlistController_.setCurrentTime(e)}duration(){return this.playlistController_.duration()}seekable(){return this.playlistController_.seekable()}dispose(){this.playbackWatcher_&&this.playbackWatcher_.dispose(),this.playlistController_&&this.playlistController_.dispose(),this.qualityLevels_&&this.qualityLevels_.dispose(),this.tech_&&this.tech_.vhs&&delete this.tech_.vhs,this.mediaSourceUrl_&&z.URL.revokeObjectURL&&(z.URL.revokeObjectURL(this.mediaSourceUrl_),this.mediaSourceUrl_=null),this.tech_&&this.tech_.off("waitingforkey",this.handleWaitingForKey_),super.dispose()}convertToProgramTime(e,i){return $O({playlist:this.playlistController_.media(),time:e,callback:i})}seekToProgramTime(e,i,r=!0,o=2){return qS({programTime:e,playlist:this.playlistController_.media(),retryCount:o,pauseAfterSeek:r,seekTo:this.options_.seekTo,tech:this.options_.tech,callback:i})}setupXhrHooks_(){this.xhr.onRequest=e=>{kx(this.xhr,e)},this.xhr.onResponse=e=>{Ox(this.xhr,e)},this.xhr.offRequest=e=>{Ix(this.xhr,e)},this.xhr.offResponse=e=>{Lx(this.xhr,e)},this.player_.trigger("xhr-hooks-ready")}attachStreamingEventListeners_(){const e=["seekablerangeschanged","bufferedrangeschanged","contentsteeringloadstart","contentsteeringloadcomplete","contentsteeringparsed"],i=["gapjumped","playedrangeschanged"];e.forEach(r=>{this.playlistController_.on(r,o=>{this.player_.trigger(ei({},o))})}),i.forEach(r=>{this.playbackWatcher_.on(r,o=>{this.player_.trigger(ei({},o))})})}}const Pp={name:"videojs-http-streaming",VERSION:Cx,canHandleSource(s,e={}){const i=Ct(F.options,e);return!i.vhs.experimentalUseMMS&&!nd("avc1.4d400d,mp4a.40.2",!1)?!1:Pp.canPlayType(s.type,i)},handleSource(s,e,i={}){const r=Ct(F.options,i);return e.vhs=new Rx(s,e,r),e.vhs.xhr=jS(),e.vhs.setupXhrHooks_(),e.vhs.src(s.src,s.type),e.vhs},canPlayType(s,e){const i=a1(s);if(!i)return"";const r=Pp.getOverrideNative(e);return!Kt.supportsTypeNatively(i)||r?"maybe":""},getOverrideNative(s={}){const{vhs:e={}}=s,i=!(F.browser.IS_ANY_SAFARI||F.browser.IS_IOS),{overrideNative:r=i}=e;return r}};(()=>nd("avc1.4d400d,mp4a.40.2",!0))()&&F.getTech("Html5").registerSourceHandler(Pp,0),F.VhsHandler=Rx,F.VhsSourceHandler=Pp,F.Vhs=Kt,F.use||F.registerComponent("Vhs",Kt),F.options.vhs=F.options.vhs||{},(!F.getPlugin||!F.getPlugin("reloadSourceOnError"))&&F.registerPlugin("reloadSourceOnError",AI);const r8="",a8="",o8="",l8="",qI=F.getComponent("Component");class jx extends qI{constructor(e,i){i&&i.relatedVideos&&(i._relatedVideos=i.relatedVideos),super(e,i),this.relatedVideos=i&&i.relatedVideos?i.relatedVideos:[]}createEl(){const e=this.options_&&this.options_._relatedVideos?this.options_._relatedVideos:[],i=this.getMaxVideosForScreen(),r=e.slice(0,i),o=super.createEl("div",{className:"vjs-end-screen-overlay"}),l=F.dom.createEl("div",{className:"vjs-related-videos-grid"});return r&&Array.isArray(r)&&r.length>0?r.forEach(c=>{const f=this.createVideoItem(c);l.appendChild(f)}):this.createSampleVideos().slice(0,this.getMaxVideosForScreen()).forEach(f=>{const p=this.createVideoItem(f);l.appendChild(p)}),o.appendChild(l),o}createVideoItem(e){const i=F.dom.createEl("div",{className:"vjs-related-video-item"}),r=e.thumbnail||this.getPlaceholderImage(e.title),o=F.dom.createEl("img",{className:"vjs-related-video-thumbnail",src:r,alt:e.title,loading:"lazy",onerror:()=>{o.src=this.getPlaceholderImage(e.title)}}),l=F.dom.createEl("div",{className:"vjs-related-video-overlay"}),c=F.dom.createEl("div",{className:"vjs-related-video-title"});c.textContent=e.title;const f=F.dom.createEl("div",{className:"vjs-related-video-meta"}),p=F.dom.createEl("div",{className:"vjs-related-video-author"});p.textContent=e.author;const v=F.dom.createEl("div",{className:"vjs-related-video-views"});v.textContent=e.views,f.appendChild(p),f.appendChild(v);const S=F.dom.createEl("div",{className:"vjs-related-video-duration"}),x=D=>{if(!D||D===0)return"";const k=Math.floor(D/60),I=Math.floor(D%60);return`${k}:${I.toString().padStart(2,"0")}`};return S.textContent=x(e.duration),l.appendChild(c),l.appendChild(f),i.appendChild(o),i.appendChild(l),e.duration&&e.duration>0&&i.appendChild(S),i.addEventListener("click",()=>{(this.player().id()||this.player().options_.id)==="video-embed"||window.location.pathname.includes("/embed")||window.location.search.includes("embed")||window.parent!==window?window.open(`/view?m=${e.id}`,"_blank","noopener,noreferrer"):window.location.href=`/view?m=${e.id}`}),i}getPlaceholderImage(e){const i=["#009931","#4ECDC4","#45B7D1","#96CEB4","#FFEAA7","#DDA0DD","#98D8C8","#F7DC6F","#BB8FCE","#85C1E9"];let r=0;for(let v=0;v=1200?12:e>=1024?9:e>=768?6:4}createSampleVideos(){return[{id:"sample1",title:"React Full Course for Beginners",author:"Bro Code",views:"2.1M views",duration:1800,thumbnail:"https://img.youtube.com/vi/dGcsHMXbSOA/maxresdefault.jpg"},{id:"sample2",title:"JavaScript ES6+ Features",author:"Tech Tutorials",views:"850K views",duration:1200,thumbnail:"https://img.youtube.com/vi/WZQc7RUAg18/maxresdefault.jpg"},{id:"sample3",title:"CSS Grid Layout Masterclass",author:"Web Dev Academy",views:"1.2M views",duration:2400,thumbnail:"https://img.youtube.com/vi/0xMQfnTU6oo/maxresdefault.jpg"},{id:"sample4",title:"Node.js Backend Development",author:"Code Master",views:"650K views",duration:3600,thumbnail:"https://img.youtube.com/vi/fBNz6F-Cowg/maxresdefault.jpg"},{id:"sample5",title:"Vue.js Complete Guide",author:"Frontend Pro",views:"980K views",duration:2800,thumbnail:"https://img.youtube.com/vi/qZXt1Aom3Cs/maxresdefault.jpg"},{id:"sample6",title:"Python Data Science",author:"Data Academy",views:"1.5M views",duration:4200,thumbnail:"https://img.youtube.com/vi/ua-CiDNNj30/maxresdefault.jpg"},{id:"sample7",title:"TypeScript Fundamentals",author:"TypeScript Expert",views:"720K views",duration:2100,thumbnail:"https://img.youtube.com/vi/BwuLxPH8IDs/maxresdefault.jpg"},{id:"sample8",title:"MongoDB Database Tutorial",author:"Database Pro",views:"890K views",duration:1800,thumbnail:"https://img.youtube.com/vi/-56x56UppqQ/maxresdefault.jpg"},{id:"sample9",title:"Docker Containerization",author:"DevOps Master",views:"1.1M views",duration:3200,thumbnail:"https://img.youtube.com/vi/pTFZFxd4hOI/maxresdefault.jpg"},{id:"sample10",title:"AWS Cloud Services",author:"Cloud Expert",views:"1.3M views",duration:4500,thumbnail:"https://img.youtube.com/vi/ITcXLS3h2qU/maxresdefault.jpg"},{id:"sample11",title:"GraphQL API Design",author:"API Specialist",views:"680K views",duration:2600,thumbnail:"https://img.youtube.com/vi/ed8SzALpx1Q/maxresdefault.jpg"},{id:"sample12",title:"Machine Learning Basics",author:"AI Academy",views:"2.3M views",duration:5400,thumbnail:"https://img.youtube.com/vi/i_LwzRVP7bg/maxresdefault.jpg"}]}show(){this.el().style.display="flex"}hide(){this.el().style.display="none"}}F.registerComponent("EndScreenOverlay",jx);const u8="",FI=F.getComponent("Component");class zx extends FI{constructor(e,i){super(e,i),this.nextVideoData=i.nextVideoData||null,this.countdownSeconds=i.countdownSeconds||5,this.onPlayNext=i.onPlayNext||(()=>{}),this.onCancel=i.onCancel||(()=>{}),this.currentCountdown=this.countdownSeconds,this.startTime=null,this.isActive=!1,this.startCountdown=this.startCountdown.bind(this),this.stopCountdown=this.stopCountdown.bind(this),this.handlePlayNext=this.handlePlayNext.bind(this),this.handleCancel=this.handleCancel.bind(this),this.updateCountdownDisplay=this.updateCountdownDisplay.bind(this)}createEl(){var c,f;const e=super.createEl("div",{className:"vjs-autoplay-countdown-overlay"}),i=((c=this.nextVideoData)==null?void 0:c.title)||"Next Video";e.innerHTML=` +`,f++,c=D}),this.end_=c,this.storage_=o,this.diagnostics_=l}calculateBaseTime_(e,i,r){if(!this.storage_.size)return 0;if(this.storage_.has(e))return this.storage_.get(e).segmentSyncInfo.start;const o=Math.min(...this.storage_.keys());if(ei!==1/0?{time:0,segmentIndex:0,partIndex:null}:null},{name:"MediaSequence",run:(s,e,i,r,o,l)=>{const c=s.getMediaSequenceSync(l);if(!c||!c.isReliable)return null;const f=c.getSyncInfoForTime(o);return f?{time:f.start,partIndex:f.partIndex,segmentIndex:f.segmentIndex}:null}},{name:"ProgramDateTime",run:(s,e,i,r,o)=>{if(!Object.keys(s.timelineToDatetimeMappings).length)return null;let l=null,c=null;const f=vy(e);o=o||0;for(let p=0;p{let l=null,c=null;o=o||0;const f=vy(e);for(let p=0;p=k)&&(c=k,l={time:D,segmentIndex:S.segmentIndex,partIndex:S.partIndex})}}return l}},{name:"Discontinuity",run:(s,e,i,r,o)=>{let l=null;if(o=o||0,e.discontinuityStarts&&e.discontinuityStarts.length){let c=null;for(let f=0;f=x)&&(c=x,l={time:S.time,segmentIndex:p,partIndex:null})}}}return l}},{name:"Playlist",run:(s,e,i,r,o)=>e.syncInfo?{time:e.syncInfo.time,segmentIndex:e.syncInfo.mediaSequence-e.mediaSequence,partIndex:null}:null}];class iI extends F.EventTarget{constructor(e={}){super(),this.timelines=[],this.discontinuities=[],this.timelineToDatetimeMappings={};const i=new vx,r=new bx(i),o=new bx(i);this.mediaSequenceStorage_={main:i,audio:r,vtt:o},this.logger_=ls("SyncController")}getMediaSequenceSync(e){return this.mediaSequenceStorage_[e]||null}getSyncPoint(e,i,r,o,l){if(i!==1/0)return jy.find(({name:p})=>p==="VOD").run(this,e,i);const c=this.runStrategies_(e,i,r,o,l);if(!c.length)return null;for(const f of c){const{syncPoint:p,strategy:v}=f,{segmentIndex:S,time:x}=p;if(S<0)continue;const D=e.segments[S],k=x,I=k+D.duration;if(this.logger_(`Strategy: ${v}. Current time: ${o}. selected segment: ${S}. Time: [${k} -> ${I}]}`),o>=k&&o0&&(o.time*=-1),Math.abs(o.time+Nd({defaultDuration:e.targetDuration,durationList:e.segments,startIndex:o.segmentIndex,endIndex:0}))}runStrategies_(e,i,r,o,l){const c=[];for(let f=0;ftI){F.log.warn(`Not saving expired segment info. Media sequence gap ${r} is too large.`);return}for(let o=r-1;o>=0;o--){const l=e.segments[o];if(l&&typeof l.start<"u"){i.syncInfo={mediaSequence:e.mediaSequence+o,time:l.start},this.logger_(`playlist refresh sync: [time:${i.syncInfo.time}, mediaSequence: ${i.syncInfo.mediaSequence}]`),this.trigger("syncinfoupdate");break}}}setDateTimeMappingForStart(e){if(this.timelineToDatetimeMappings={},e.segments&&e.segments.length&&e.segments[0].dateTimeObject){const i=e.segments[0],r=i.dateTimeObject.getTime()/1e3;this.timelineToDatetimeMappings[i.timeline]=-r}}saveSegmentTimingInfo({segmentInfo:e,shouldSaveTimelineMapping:i}){const r=this.calculateSegmentTimeMapping_(e,e.timingInfo,i),o=e.segment;r&&(this.saveDiscontinuitySyncInfo_(e),e.playlist.syncInfo||(e.playlist.syncInfo={mediaSequence:e.playlist.mediaSequence+e.mediaIndex,time:o.start}));const l=o.dateTimeObject;o.discontinuity&&i&&l&&(this.timelineToDatetimeMappings[o.timeline]=-(l.getTime()/1e3))}timestampOffsetForTimeline(e){return typeof this.timelines[e]>"u"?null:this.timelines[e].time}mappingForTimeline(e){return typeof this.timelines[e]>"u"?null:this.timelines[e].mapping}calculateSegmentTimeMapping_(e,i,r){const o=e.segment,l=e.part;let c=this.timelines[e.timeline],f,p;if(typeof e.timestampOffset=="number")c={time:e.startOfSegment,mapping:e.startOfSegment-i.start},r&&(this.timelines[e.timeline]=c,this.trigger("timestampoffset"),this.logger_(`time mapping for timeline ${e.timeline}: [time: ${c.time}] [mapping: ${c.mapping}]`)),f=e.startOfSegment,p=i.end+c.mapping;else if(c)f=i.start+c.mapping,p=i.end+c.mapping;else return!1;return l&&(l.start=f,l.end=p),(!o.start||fp){let v;f<0?v=r.start-Nd({defaultDuration:i.targetDuration,durationList:i.segments,startIndex:e.mediaIndex,endIndex:l}):v=r.end+Nd({defaultDuration:i.targetDuration,durationList:i.segments,startIndex:e.mediaIndex+1,endIndex:l}),this.discontinuities[c]={time:v,accuracy:p}}}}dispose(){this.trigger("dispose"),this.off()}}class nI extends F.EventTarget{constructor(){super(),this.pendingTimelineChanges_={},this.lastTimelineChanges_={}}clearPendingTimelineChange(e){this.pendingTimelineChanges_[e]=null,this.trigger("pendingtimelinechange")}pendingTimelineChange({type:e,from:i,to:r}){return typeof i=="number"&&typeof r=="number"&&(this.pendingTimelineChanges_[e]={type:e,from:i,to:r},this.trigger("pendingtimelinechange")),this.pendingTimelineChanges_[e]}lastTimelineChange({type:e,from:i,to:r}){if(typeof i=="number"&&typeof r=="number"){this.lastTimelineChanges_[e]={type:e,from:i,to:r},delete this.pendingTimelineChanges_[e];const o={timelineChangeInfo:{from:i,to:r}};this.trigger({type:"timelinechange",metadata:o})}return this.lastTimelineChanges_[e]}dispose(){this.trigger("dispose"),this.pendingTimelineChanges_={},this.lastTimelineChanges_={},this.off()}}const sI=YS(QS(function(){var s=function(){function C(){this.listeners={}}var P=C.prototype;return P.on=function(Y,$){this.listeners[Y]||(this.listeners[Y]=[]),this.listeners[Y].push($)},P.off=function(Y,$){if(!this.listeners[Y])return!1;var G=this.listeners[Y].indexOf($);return this.listeners[Y]=this.listeners[Y].slice(0),this.listeners[Y].splice(G,1),G>-1},P.trigger=function(Y){var $=this.listeners[Y];if($)if(arguments.length===2)for(var G=$.length,W=0;W>7)*283)^G]=G;for(W=oe=0;!Y[W];W^=fe||1,oe=de[oe]||1)for(_e=oe^oe<<1^oe<<2^oe<<3^oe<<4,_e=_e>>8^_e&255^99,Y[W]=_e,$[_e]=W,le=K[me=K[fe=K[W]]],ge=le*16843009^me*65537^fe*257^W*16843008,he=K[_e]*257^_e*16843008,G=0;G<4;G++)P[G][W]=he=he<<24^he>>>8,U[G][_e]=ge=ge<<24^ge>>>8;for(G=0;G<5;G++)P[G]=P[G].slice(0),U[G]=U[G].slice(0);return C};let r=null;class o{constructor(P){r||(r=i()),this._tables=[[r[0][0].slice(),r[0][1].slice(),r[0][2].slice(),r[0][3].slice(),r[0][4].slice()],[r[1][0].slice(),r[1][1].slice(),r[1][2].slice(),r[1][3].slice(),r[1][4].slice()]];let U,Y,$;const G=this._tables[0][4],W=this._tables[1],oe=P.length;let K=1;if(oe!==4&&oe!==6&&oe!==8)throw new Error("Invalid aes key size");const de=P.slice(0),fe=[];for(this._key=[de,fe],U=oe;U<4*oe+28;U++)$=de[U-1],(U%oe===0||oe===8&&U%oe===4)&&($=G[$>>>24]<<24^G[$>>16&255]<<16^G[$>>8&255]<<8^G[$&255],U%oe===0&&($=$<<8^$>>>24^K<<24,K=K<<1^(K>>7)*283)),de[U]=de[U-oe]^$;for(Y=0;U;Y++,U--)$=de[Y&3?U:U-4],U<=4||Y<4?fe[Y]=$:fe[Y]=W[0][G[$>>>24]]^W[1][G[$>>16&255]]^W[2][G[$>>8&255]]^W[3][G[$&255]]}decrypt(P,U,Y,$,G,W){const oe=this._key[1];let K=P^oe[0],de=$^oe[1],fe=Y^oe[2],me=U^oe[3],le,_e,he;const ge=oe.length/4-2;let Ae,ne=4;const Se=this._tables[1],pe=Se[0],Ue=Se[1],se=Se[2],Oe=Se[3],we=Se[4];for(Ae=0;Ae>>24]^Ue[de>>16&255]^se[fe>>8&255]^Oe[me&255]^oe[ne],_e=pe[de>>>24]^Ue[fe>>16&255]^se[me>>8&255]^Oe[K&255]^oe[ne+1],he=pe[fe>>>24]^Ue[me>>16&255]^se[K>>8&255]^Oe[de&255]^oe[ne+2],me=pe[me>>>24]^Ue[K>>16&255]^se[de>>8&255]^Oe[fe&255]^oe[ne+3],ne+=4,K=le,de=_e,fe=he;for(Ae=0;Ae<4;Ae++)G[(3&-Ae)+W]=we[K>>>24]<<24^we[de>>16&255]<<16^we[fe>>8&255]<<8^we[me&255]^oe[ne++],le=K,K=de,de=fe,fe=me,me=le}}class l extends s{constructor(){super(s),this.jobs=[],this.delay=1,this.timeout_=null}processJob_(){this.jobs.shift()(),this.jobs.length?this.timeout_=setTimeout(this.processJob_.bind(this),this.delay):this.timeout_=null}push(P){this.jobs.push(P),this.timeout_||(this.timeout_=setTimeout(this.processJob_.bind(this),this.delay))}}const c=function(C){return C<<24|(C&65280)<<8|(C&16711680)>>8|C>>>24},f=function(C,P,U){const Y=new Int32Array(C.buffer,C.byteOffset,C.byteLength>>2),$=new o(Array.prototype.slice.call(P)),G=new Uint8Array(C.byteLength),W=new Int32Array(G.buffer);let oe,K,de,fe,me,le,_e,he,ge;for(oe=U[0],K=U[1],de=U[2],fe=U[3],ge=0;ge{const Y=C[U];D(Y)?P[U]={bytes:Y.buffer,byteOffset:Y.byteOffset,byteLength:Y.byteLength}:P[U]=Y}),P};self.onmessage=function(C){const P=C.data,U=new Uint8Array(P.encrypted.bytes,P.encrypted.byteOffset,P.encrypted.byteLength),Y=new Uint32Array(P.key.bytes,P.key.byteOffset,P.key.byteLength/4),$=new Uint32Array(P.iv.bytes,P.iv.byteOffset,P.iv.byteLength/4);new p(U,Y,$,function(G,W){self.postMessage(I({source:P.source,decrypted:W}),[W.buffer])})}}));var rI=$S(sI);const aI=s=>{let e=s.default?"main":"alternative";return s.characteristics&&s.characteristics.indexOf("public.accessibility.describes-video")>=0&&(e="main-desc"),e},_x=(s,e)=>{s.abort(),s.pause(),e&&e.activePlaylistLoader&&(e.activePlaylistLoader.pause(),e.activePlaylistLoader=null)},zy=(s,e)=>{e.activePlaylistLoader=s,s.load()},oI=(s,e)=>()=>{const{segmentLoaders:{[s]:i,main:r},mediaTypes:{[s]:o}}=e,l=o.activeTrack(),c=o.getActiveGroup(),f=o.activePlaylistLoader,p=o.lastGroup_;if(!(c&&p&&c.id===p.id)&&(o.lastGroup_=c,o.lastTrack_=l,_x(i,o),!(!c||c.isMainPlaylist))){if(!c.playlistLoader){f&&r.resetEverything();return}i.resyncLoader(),zy(c.playlistLoader,o)}},lI=(s,e)=>()=>{const{segmentLoaders:{[s]:i},mediaTypes:{[s]:r}}=e;r.lastGroup_=null,i.abort(),i.pause()},uI=(s,e)=>()=>{const{mainPlaylistLoader:i,segmentLoaders:{[s]:r,main:o},mediaTypes:{[s]:l}}=e,c=l.activeTrack(),f=l.getActiveGroup(),p=l.activePlaylistLoader,v=l.lastTrack_;if(!(v&&c&&v.id===c.id)&&(l.lastGroup_=f,l.lastTrack_=c,_x(r,l),!!f)){if(f.isMainPlaylist){if(!c||!v||c.id===v.id)return;const S=e.vhs.playlistController_,x=S.selectPlaylist();if(S.media()===x)return;l.logger_(`track change. Switching main audio from ${v.id} to ${c.id}`),i.pause(),o.resetEverything(),S.fastQualityChange_(x);return}if(s==="AUDIO"){if(!f.playlistLoader){o.setAudio(!0),o.resetEverything();return}r.setAudio(!0),o.setAudio(!1)}if(p===f.playlistLoader){zy(f.playlistLoader,l);return}r.track&&r.track(c),r.resetEverything(),zy(f.playlistLoader,l)}},Up={AUDIO:(s,e)=>()=>{const{mediaTypes:{[s]:i},excludePlaylist:r}=e,o=i.activeTrack(),l=i.activeGroup(),c=(l.filter(p=>p.default)[0]||l[0]).id,f=i.tracks[c];if(o===f){r({error:{message:"Problem encountered loading the default audio track."}});return}F.log.warn("Problem encountered loading the alternate audio track.Switching back to default.");for(const p in i.tracks)i.tracks[p].enabled=i.tracks[p]===f;i.onTrackChanged()},SUBTITLES:(s,e)=>()=>{const{mediaTypes:{[s]:i}}=e;F.log.warn("Problem encountered loading the subtitle track.Disabling subtitle track.");const r=i.activeTrack();r&&(r.mode="disabled"),i.onTrackChanged()}},Sx={AUDIO:(s,e,i)=>{if(!e)return;const{tech:r,requestOptions:o,segmentLoaders:{[s]:l}}=i;e.on("loadedmetadata",()=>{const c=e.media();l.playlist(c,o),(!r.paused()||c.endList&&r.preload()!=="none")&&l.load()}),e.on("loadedplaylist",()=>{l.playlist(e.media(),o),r.paused()||l.load()}),e.on("error",Up[s](s,i))},SUBTITLES:(s,e,i)=>{const{tech:r,requestOptions:o,segmentLoaders:{[s]:l},mediaTypes:{[s]:c}}=i;e.on("loadedmetadata",()=>{const f=e.media();l.playlist(f,o),l.track(c.activeTrack()),(!r.paused()||f.endList&&r.preload()!=="none")&&l.load()}),e.on("loadedplaylist",()=>{l.playlist(e.media(),o),r.paused()||l.load()}),e.on("error",Up[s](s,i))}},cI={AUDIO:(s,e)=>{const{vhs:i,sourceType:r,segmentLoaders:{[s]:o},requestOptions:l,main:{mediaGroups:c},mediaTypes:{[s]:{groups:f,tracks:p,logger_:v}},mainPlaylistLoader:S}=e,x=kd(S.main);(!c[s]||Object.keys(c[s]).length===0)&&(c[s]={main:{default:{default:!0}}},x&&(c[s].main.default.playlists=S.main.playlists));for(const D in c[s]){f[D]||(f[D]=[]);for(const k in c[s][D]){let I=c[s][D][k],C;if(x?(v(`AUDIO group '${D}' label '${k}' is a main playlist`),I.isMainPlaylist=!0,C=null):r==="vhs-json"&&I.playlists?C=new _u(I.playlists[0],i,l):I.resolvedUri?C=new _u(I.resolvedUri,i,l):I.playlists&&r==="dash"?C=new Ay(I.playlists[0],i,l,S):C=null,I=Ct({id:k,playlistLoader:C},I),Sx[s](s,I.playlistLoader,e),f[D].push(I),typeof p[k]>"u"){const P=new F.AudioTrack({id:k,kind:aI(I),enabled:!1,language:I.language,default:I.default,label:k});p[k]=P}}}o.on("error",Up[s](s,e))},SUBTITLES:(s,e)=>{const{tech:i,vhs:r,sourceType:o,segmentLoaders:{[s]:l},requestOptions:c,main:{mediaGroups:f},mediaTypes:{[s]:{groups:p,tracks:v}},mainPlaylistLoader:S}=e;for(const x in f[s]){p[x]||(p[x]=[]);for(const D in f[s][x]){if(!r.options_.useForcedSubtitles&&f[s][x][D].forced)continue;let k=f[s][x][D],I;if(o==="hls")I=new _u(k.resolvedUri,r,c);else if(o==="dash"){if(!k.playlists.filter(P=>P.excludeUntil!==1/0).length)return;I=new Ay(k.playlists[0],r,c,S)}else o==="vhs-json"&&(I=new _u(k.playlists?k.playlists[0]:k.resolvedUri,r,c));if(k=Ct({id:D,playlistLoader:I},k),Sx[s](s,k.playlistLoader,e),p[x].push(k),typeof v[D]>"u"){const C=i.addRemoteTextTrack({id:D,kind:"subtitles",default:k.default&&k.autoselect,language:k.language,label:D},!1).track;v[D]=C}}}l.on("error",Up[s](s,e))},"CLOSED-CAPTIONS":(s,e)=>{const{tech:i,main:{mediaGroups:r},mediaTypes:{[s]:{groups:o,tracks:l}}}=e;for(const c in r[s]){o[c]||(o[c]=[]);for(const f in r[s][c]){const p=r[s][c][f];if(!/^(?:CC|SERVICE)/.test(p.instreamId))continue;const v=i.options_.vhs&&i.options_.vhs.captionServices||{};let S={label:f,language:p.language,instreamId:p.instreamId,default:p.default&&p.autoselect};if(v[S.instreamId]&&(S=Ct(S,v[S.instreamId])),S.default===void 0&&delete S.default,o[c].push(Ct({id:f},p)),typeof l[f]>"u"){const x=i.addRemoteTextTrack({id:S.instreamId,kind:"captions",default:S.default,language:S.language,label:S.label},!1).track;l[f]=x}}}}},xx=(s,e)=>{for(let i=0;ii=>{const{mainPlaylistLoader:r,mediaTypes:{[s]:{groups:o}}}=e,l=r.media();if(!l)return null;let c=null;l.attributes[s]&&(c=o[l.attributes[s]]);const f=Object.keys(o);if(!c)if(s==="AUDIO"&&f.length>1&&kd(e.main))for(let p=0;p"u"?c:i===null||!c?null:c.filter(p=>p.id===i.id)[0]||null},hI={AUDIO:(s,e)=>()=>{const{mediaTypes:{[s]:{tracks:i}}}=e;for(const r in i)if(i[r].enabled)return i[r];return null},SUBTITLES:(s,e)=>()=>{const{mediaTypes:{[s]:{tracks:i}}}=e;for(const r in i)if(i[r].mode==="showing"||i[r].mode==="hidden")return i[r];return null}},fI=(s,{mediaTypes:e})=>()=>{const i=e[s].activeTrack();return i?e[s].activeGroup(i):null},pI=s=>{["AUDIO","SUBTITLES","CLOSED-CAPTIONS"].forEach(v=>{cI[v](v,s)});const{mediaTypes:e,mainPlaylistLoader:i,tech:r,vhs:o,segmentLoaders:{["AUDIO"]:l,main:c}}=s;["AUDIO","SUBTITLES"].forEach(v=>{e[v].activeGroup=dI(v,s),e[v].activeTrack=hI[v](v,s),e[v].onGroupChanged=oI(v,s),e[v].onGroupChanging=lI(v,s),e[v].onTrackChanged=uI(v,s),e[v].getActiveGroup=fI(v,s)});const f=e.AUDIO.activeGroup();if(f){const v=(f.filter(x=>x.default)[0]||f[0]).id;e.AUDIO.tracks[v].enabled=!0,e.AUDIO.onGroupChanged(),e.AUDIO.onTrackChanged(),e.AUDIO.getActiveGroup().playlistLoader?(c.setAudio(!1),l.setAudio(!0)):c.setAudio(!0)}i.on("mediachange",()=>{["AUDIO","SUBTITLES"].forEach(v=>e[v].onGroupChanged())}),i.on("mediachanging",()=>{["AUDIO","SUBTITLES"].forEach(v=>e[v].onGroupChanging())});const p=()=>{e.AUDIO.onTrackChanged(),r.trigger({type:"usage",name:"vhs-audio-change"})};r.audioTracks().addEventListener("change",p),r.remoteTextTracks().addEventListener("change",e.SUBTITLES.onTrackChanged),o.on("dispose",()=>{r.audioTracks().removeEventListener("change",p),r.remoteTextTracks().removeEventListener("change",e.SUBTITLES.onTrackChanged)}),r.clearTracks("audio");for(const v in e.AUDIO.tracks)r.audioTracks().addTrack(e.AUDIO.tracks[v])},mI=()=>{const s={};return["AUDIO","SUBTITLES","CLOSED-CAPTIONS"].forEach(e=>{s[e]={groups:{},tracks:{},activePlaylistLoader:null,activeGroup:$r,activeTrack:$r,getActiveGroup:$r,onGroupChanged:$r,onTrackChanged:$r,lastTrack_:null,logger_:ls(`MediaGroups[${e}]`)}}),s};class Ex{constructor(){this.priority_=[],this.pathwayClones_=new Map}set version(e){e===1&&(this.version_=e)}set ttl(e){this.ttl_=e||300}set reloadUri(e){e&&(this.reloadUri_=Dn(this.reloadUri_,e))}set priority(e){e&&e.length&&(this.priority_=e)}set pathwayClones(e){e&&e.length&&(this.pathwayClones_=new Map(e.map(i=>[i.ID,i])))}get version(){return this.version_}get ttl(){return this.ttl_}get reloadUri(){return this.reloadUri_}get priority(){return this.priority_}get pathwayClones(){return this.pathwayClones_}}class gI extends F.EventTarget{constructor(e,i){super(),this.currentPathway=null,this.defaultPathway=null,this.queryBeforeStart=!1,this.availablePathways_=new Set,this.steeringManifest=new Ex,this.proxyServerUrl_=null,this.manifestType_=null,this.ttlTimeout_=null,this.request_=null,this.currentPathwayClones=new Map,this.nextPathwayClones=new Map,this.excludedSteeringManifestURLs=new Set,this.logger_=ls("Content Steering"),this.xhr_=e,this.getBandwidth_=i}assignTagProperties(e,i){this.manifestType_=i.serverUri?"HLS":"DASH";const r=i.serverUri||i.serverURL;if(!r){this.logger_(`steering manifest URL is ${r}, cannot request steering manifest.`),this.trigger("error");return}if(r.startsWith("data:")){this.decodeDataUriManifest_(r.substring(r.indexOf(",")+1));return}this.steeringManifest.reloadUri=Dn(e,r),this.defaultPathway=i.pathwayId||i.defaultServiceLocation,this.queryBeforeStart=i.queryBeforeStart,this.proxyServerUrl_=i.proxyServerURL,this.defaultPathway&&!this.queryBeforeStart&&this.trigger("content-steering")}requestSteeringManifest(e){const i=this.steeringManifest.reloadUri;if(!i)return;const r=e?i:this.getRequestURI(i);if(!r){this.logger_("No valid content steering manifest URIs. Stopping content steering."),this.trigger("error"),this.dispose();return}const o={contentSteeringInfo:{uri:r}};this.trigger({type:"contentsteeringloadstart",metadata:o}),this.request_=this.xhr_({uri:r,requestType:"content-steering-manifest"},(l,c)=>{if(l){if(c.status===410){this.logger_(`manifest request 410 ${l}.`),this.logger_(`There will be no more content steering requests to ${r} this session.`),this.excludedSteeringManifestURLs.add(r);return}if(c.status===429){const v=c.responseHeaders["retry-after"];this.logger_(`manifest request 429 ${l}.`),this.logger_(`content steering will retry in ${v} seconds.`),this.startTTLTimeout_(parseInt(v,10));return}this.logger_(`manifest failed to load ${l}.`),this.startTTLTimeout_();return}this.trigger({type:"contentsteeringloadcomplete",metadata:o});let f;try{f=JSON.parse(this.request_.responseText)}catch(v){const S={errorType:F.Error.StreamingContentSteeringParserError,error:v};this.trigger({type:"error",metadata:S})}this.assignSteeringProperties_(f);const p={contentSteeringInfo:o.contentSteeringInfo,contentSteeringManifest:{version:this.steeringManifest.version,reloadUri:this.steeringManifest.reloadUri,priority:this.steeringManifest.priority}};this.trigger({type:"contentsteeringparsed",metadata:p}),this.startTTLTimeout_()})}setProxyServerUrl_(e){const i=new z.URL(e),r=new z.URL(this.proxyServerUrl_);return r.searchParams.set("url",encodeURI(i.toString())),this.setSteeringParams_(r.toString())}decodeDataUriManifest_(e){const i=JSON.parse(z.atob(e));this.assignSteeringProperties_(i)}setSteeringParams_(e){const i=new z.URL(e),r=this.getPathway(),o=this.getBandwidth_();if(r){const l=`_${this.manifestType_}_pathway`;i.searchParams.set(l,r)}if(o){const l=`_${this.manifestType_}_throughput`;i.searchParams.set(l,o)}return i.toString()}assignSteeringProperties_(e){if(this.steeringManifest.version=e.VERSION,!this.steeringManifest.version){this.logger_(`manifest version is ${e.VERSION}, which is not supported.`),this.trigger("error");return}this.steeringManifest.ttl=e.TTL,this.steeringManifest.reloadUri=e["RELOAD-URI"],this.steeringManifest.priority=e["PATHWAY-PRIORITY"]||e["SERVICE-LOCATION-PRIORITY"],this.steeringManifest.pathwayClones=e["PATHWAY-CLONES"],this.nextPathwayClones=this.steeringManifest.pathwayClones,this.availablePathways_.size||(this.logger_("There are no available pathways for content steering. Ending content steering."),this.trigger("error"),this.dispose());const r=(o=>{for(const l of o)if(this.availablePathways_.has(l))return l;return[...this.availablePathways_][0]})(this.steeringManifest.priority);this.currentPathway!==r&&(this.currentPathway=r,this.trigger("content-steering"))}getPathway(){return this.currentPathway||this.defaultPathway}getRequestURI(e){if(!e)return null;const i=o=>this.excludedSteeringManifestURLs.has(o);if(this.proxyServerUrl_){const o=this.setProxyServerUrl_(e);if(!i(o))return o}const r=this.setSteeringParams_(e);return i(r)?null:r}startTTLTimeout_(e=this.steeringManifest.ttl){const i=e*1e3;this.ttlTimeout_=z.setTimeout(()=>{this.requestSteeringManifest()},i)}clearTTLTimeout_(){z.clearTimeout(this.ttlTimeout_),this.ttlTimeout_=null}abort(){this.request_&&this.request_.abort(),this.request_=null}dispose(){this.off("content-steering"),this.off("error"),this.abort(),this.clearTTLTimeout_(),this.currentPathway=null,this.defaultPathway=null,this.queryBeforeStart=null,this.proxyServerUrl_=null,this.manifestType_=null,this.ttlTimeout_=null,this.request_=null,this.excludedSteeringManifestURLs=new Set,this.availablePathways_=new Set,this.steeringManifest=new Ex}addAvailablePathway(e){e&&this.availablePathways_.add(e)}clearAvailablePathways(){this.availablePathways_.clear()}excludePathway(e){return this.availablePathways_.delete(e)}didDASHTagChange(e,i){return!i&&this.steeringManifest.reloadUri||i&&(Dn(e,i.serverURL)!==this.steeringManifest.reloadUri||i.defaultServiceLocation!==this.defaultPathway||i.queryBeforeStart!==this.queryBeforeStart||i.proxyServerURL!==this.proxyServerUrl_)}getAvailablePathways(){return this.availablePathways_}}const yI=(s,e)=>{let i=null;return(...r)=>{clearTimeout(i),i=setTimeout(()=>{s.apply(null,r)},e)}},TI=10;let za;const vI=["mediaRequests","mediaRequestsAborted","mediaRequestsTimedout","mediaRequestsErrored","mediaTransferDuration","mediaBytesTransferred","mediaAppends"],bI=function(s){return this.audioSegmentLoader_[s]+this.mainSegmentLoader_[s]},_I=function({currentPlaylist:s,buffered:e,currentTime:i,nextPlaylist:r,bufferLowWaterLine:o,bufferHighWaterLine:l,duration:c,bufferBasedABR:f,log:p}){if(!r)return F.log.warn("We received no playlist to switch to. Please check your stream."),!1;const v=`allowing switch ${s&&s.id||"null"} -> ${r.id}`;if(!s)return p(`${v} as current playlist is not set`),!0;if(r.id===s.id)return!1;const S=!!Tu(e,i).length;if(!s.endList)return!S&&typeof s.partTargetDuration=="number"?(p(`not ${v} as current playlist is live llhls, but currentTime isn't in buffered.`),!1):(p(`${v} as current playlist is live`),!0);const x=yy(e,i),D=f?ki.EXPERIMENTAL_MAX_BUFFER_LOW_WATER_LINE:ki.MAX_BUFFER_LOW_WATER_LINE;if(cI)&&x>=o){let C=`${v} as forwardBuffer >= bufferLowWaterLine (${x} >= ${o})`;return f&&(C+=` and next bandwidth > current bandwidth (${k} > ${I})`),p(C),!0}return p(`not ${v} as no switching criteria met`),!1};class SI extends F.EventTarget{constructor(e){super(),this.fastQualityChange_=yI(this.fastQualityChange_.bind(this),100);const{src:i,withCredentials:r,tech:o,bandwidth:l,externVhs:c,useCueTags:f,playlistExclusionDuration:p,enableLowInitialPlaylist:v,sourceType:S,cacheEncryptionKeys:x,bufferBasedABR:D,leastPixelDiffSelector:k,captionServices:I,experimentalUseMMS:C}=e;if(!i)throw new Error("A non-empty playlist URL or JSON manifest string is required");let{maxPlaylistRetries:P}=e;(P===null||typeof P>"u")&&(P=1/0),za=c,this.bufferBasedABR=!!D,this.leastPixelDiffSelector=!!k,this.withCredentials=r,this.tech_=o,this.vhs_=o.vhs,this.player_=e.player_,this.sourceType_=S,this.useCueTags_=f,this.playlistExclusionDuration=p,this.maxPlaylistRetries=P,this.enableLowInitialPlaylist=v,this.usingManagedMediaSource_=!1,this.useCueTags_&&(this.cueTagsTrack_=this.tech_.addTextTrack("metadata","ad-cues"),this.cueTagsTrack_.inBandMetadataTrackDispatchType=""),this.requestOptions_={withCredentials:r,maxPlaylistRetries:P,timeout:null},this.on("error",this.pauseLoading),this.mediaTypes_=mI(),C&&z.ManagedMediaSource?(this.tech_.el_.disableRemotePlayback=!0,this.mediaSource=new z.ManagedMediaSource,this.usingManagedMediaSource_=!0,F.log("Using ManagedMediaSource")):z.MediaSource&&(this.mediaSource=new z.MediaSource),this.handleDurationChange_=this.handleDurationChange_.bind(this),this.handleSourceOpen_=this.handleSourceOpen_.bind(this),this.handleSourceEnded_=this.handleSourceEnded_.bind(this),this.load=this.load.bind(this),this.pause=this.pause.bind(this),this.mediaSource.addEventListener("durationchange",this.handleDurationChange_),this.mediaSource.addEventListener("sourceopen",this.handleSourceOpen_),this.mediaSource.addEventListener("sourceended",this.handleSourceEnded_),this.mediaSource.addEventListener("startstreaming",this.load),this.mediaSource.addEventListener("endstreaming",this.pause),this.seekable_=Ni(),this.hasPlayed_=!1,this.syncController_=new iI(e),this.segmentMetadataTrack_=o.addRemoteTextTrack({kind:"metadata",label:"segment-metadata"},!1).track,this.segmentMetadataTrack_.mode="hidden",this.decrypter_=new rI,this.sourceUpdater_=new mx(this.mediaSource),this.inbandTextTracks_={},this.timelineChangeController_=new nI,this.keyStatusMap_=new Map;const U={vhs:this.vhs_,parse708captions:e.parse708captions,useDtsForTimestampOffset:e.useDtsForTimestampOffset,captionServices:I,mediaSource:this.mediaSource,currentTime:this.tech_.currentTime.bind(this.tech_),seekable:()=>this.seekable(),seeking:()=>this.tech_.seeking(),duration:()=>this.duration(),hasPlayed:()=>this.hasPlayed_,goalBufferLength:()=>this.goalBufferLength(),bandwidth:l,syncController:this.syncController_,decrypter:this.decrypter_,sourceType:this.sourceType_,inbandTextTracks:this.inbandTextTracks_,cacheEncryptionKeys:x,sourceUpdater:this.sourceUpdater_,timelineChangeController:this.timelineChangeController_,exactManifestTimings:e.exactManifestTimings,addMetadataToTextTrack:this.addMetadataToTextTrack.bind(this)};this.mainPlaylistLoader_=this.sourceType_==="dash"?new Ay(i,this.vhs_,Ct(this.requestOptions_,{addMetadataToTextTrack:this.addMetadataToTextTrack.bind(this)})):new _u(i,this.vhs_,Ct(this.requestOptions_,{addDateRangesToTextTrack:this.addDateRangesToTextTrack_.bind(this)})),this.setupMainPlaylistLoaderListeners_(),this.mainSegmentLoader_=new Ly(Ct(U,{segmentMetadataTrack:this.segmentMetadataTrack_,loaderType:"main"}),e),this.audioSegmentLoader_=new Ly(Ct(U,{loaderType:"audio"}),e),this.subtitleSegmentLoader_=new K3(Ct(U,{loaderType:"vtt",featuresNativeTextTracks:this.tech_.featuresNativeTextTracks,loadVttJs:()=>new Promise((G,W)=>{function oe(){o.off("vttjserror",K),G()}function K(){o.off("vttjsloaded",oe),W()}o.one("vttjsloaded",oe),o.one("vttjserror",K),o.addWebVttScript_()})}),e);const Y=()=>this.mainSegmentLoader_.bandwidth;this.contentSteeringController_=new gI(this.vhs_.xhr,Y),this.setupSegmentLoaderListeners_(),this.bufferBasedABR&&(this.mainPlaylistLoader_.one("loadedplaylist",()=>this.startABRTimer_()),this.tech_.on("pause",()=>this.stopABRTimer_()),this.tech_.on("play",()=>this.startABRTimer_())),vI.forEach(G=>{this[G+"_"]=bI.bind(this,G)}),this.logger_=ls("pc"),this.triggeredFmp4Usage=!1,this.tech_.preload()==="none"?(this.loadOnPlay_=()=>{this.loadOnPlay_=null,this.mainPlaylistLoader_.load()},this.tech_.one("play",this.loadOnPlay_)):this.mainPlaylistLoader_.load(),this.timeToLoadedData__=-1,this.mainAppendsToLoadedData__=-1,this.audioAppendsToLoadedData__=-1;const $=this.tech_.preload()==="none"?"play":"loadstart";this.tech_.one($,()=>{const G=Date.now();this.tech_.one("loadeddata",()=>{this.timeToLoadedData__=Date.now()-G,this.mainAppendsToLoadedData__=this.mainSegmentLoader_.mediaAppends,this.audioAppendsToLoadedData__=this.audioSegmentLoader_.mediaAppends})})}mainAppendsToLoadedData_(){return this.mainAppendsToLoadedData__}audioAppendsToLoadedData_(){return this.audioAppendsToLoadedData__}appendsToLoadedData_(){const e=this.mainAppendsToLoadedData_(),i=this.audioAppendsToLoadedData_();return e===-1||i===-1?-1:e+i}timeToLoadedData_(){return this.timeToLoadedData__}checkABR_(e="abr"){const i=this.selectPlaylist();i&&this.shouldSwitchToMedia_(i)&&this.switchMedia_(i,e)}switchMedia_(e,i,r){const o=this.media(),l=o&&(o.id||o.uri),c=e&&(e.id||e.uri);if(l&&l!==c){this.logger_(`switch media ${l} -> ${c} from ${i}`);const f={renditionInfo:{id:c,bandwidth:e.attributes.BANDWIDTH,resolution:e.attributes.RESOLUTION,codecs:e.attributes.CODECS},cause:i};this.trigger({type:"renditionselected",metadata:f}),this.tech_.trigger({type:"usage",name:`vhs-rendition-change-${i}`})}this.mainPlaylistLoader_.media(e,r)}switchMediaForDASHContentSteering_(){["AUDIO","SUBTITLES","CLOSED-CAPTIONS"].forEach(e=>{const i=this.mediaTypes_[e],r=i?i.activeGroup():null,o=this.contentSteeringController_.getPathway();if(r&&o){const c=(r.length?r[0].playlists:r.playlists).filter(f=>f.attributes.serviceLocation===o);c.length&&this.mediaTypes_[e].activePlaylistLoader.media(c[0])}})}startABRTimer_(){this.stopABRTimer_(),this.abrTimer_=z.setInterval(()=>this.checkABR_(),250)}stopABRTimer_(){this.tech_.scrubbing&&this.tech_.scrubbing()||(z.clearInterval(this.abrTimer_),this.abrTimer_=null)}getAudioTrackPlaylists_(){const e=this.main(),i=e&&e.playlists||[];if(!e||!e.mediaGroups||!e.mediaGroups.AUDIO)return i;const r=e.mediaGroups.AUDIO,o=Object.keys(r);let l;if(Object.keys(this.mediaTypes_.AUDIO.groups).length)l=this.mediaTypes_.AUDIO.activeTrack();else{const f=r.main||o.length&&r[o[0]];for(const p in f)if(f[p].default){l={label:p};break}}if(!l)return i;const c=[];for(const f in r)if(r[f][l.label]){const p=r[f][l.label];if(p.playlists&&p.playlists.length)c.push.apply(c,p.playlists);else if(p.uri)c.push(p);else if(e.playlists.length)for(let v=0;v{const i=this.mainPlaylistLoader_.media(),r=i.targetDuration*1.5*1e3;_y(this.mainPlaylistLoader_.main,this.mainPlaylistLoader_.media())?this.requestOptions_.timeout=0:this.requestOptions_.timeout=r,i.endList&&this.tech_.preload()!=="none"&&(this.mainSegmentLoader_.playlist(i,this.requestOptions_),this.mainSegmentLoader_.load()),pI({sourceType:this.sourceType_,segmentLoaders:{AUDIO:this.audioSegmentLoader_,SUBTITLES:this.subtitleSegmentLoader_,main:this.mainSegmentLoader_},tech:this.tech_,requestOptions:this.requestOptions_,mainPlaylistLoader:this.mainPlaylistLoader_,vhs:this.vhs_,main:this.main(),mediaTypes:this.mediaTypes_,excludePlaylist:this.excludePlaylist.bind(this)}),this.triggerPresenceUsage_(this.main(),i),this.setupFirstPlay(),!this.mediaTypes_.AUDIO.activePlaylistLoader||this.mediaTypes_.AUDIO.activePlaylistLoader.media()?this.trigger("selectedinitialmedia"):this.mediaTypes_.AUDIO.activePlaylistLoader.one("loadedmetadata",()=>{this.trigger("selectedinitialmedia")})}),this.mainPlaylistLoader_.on("loadedplaylist",()=>{this.loadOnPlay_&&this.tech_.off("play",this.loadOnPlay_);let i=this.mainPlaylistLoader_.media();if(!i){this.attachContentSteeringListeners_(),this.initContentSteeringController_(),this.excludeUnsupportedVariants_();let r;if(this.enableLowInitialPlaylist&&(r=this.selectInitialPlaylist()),r||(r=this.selectPlaylist()),!r||!this.shouldSwitchToMedia_(r)||(this.initialMedia_=r,this.switchMedia_(this.initialMedia_,"initial"),!(this.sourceType_==="vhs-json"&&this.initialMedia_.segments)))return;i=this.initialMedia_}this.handleUpdatedMediaPlaylist(i)}),this.mainPlaylistLoader_.on("error",()=>{const i=this.mainPlaylistLoader_.error;this.excludePlaylist({playlistToExclude:i.playlist,error:i})}),this.mainPlaylistLoader_.on("mediachanging",()=>{this.mainSegmentLoader_.abort(),this.mainSegmentLoader_.pause()}),this.mainPlaylistLoader_.on("mediachange",()=>{const i=this.mainPlaylistLoader_.media(),r=i.targetDuration*1.5*1e3;_y(this.mainPlaylistLoader_.main,this.mainPlaylistLoader_.media())?this.requestOptions_.timeout=0:this.requestOptions_.timeout=r,this.sourceType_==="dash"&&this.mainPlaylistLoader_.isPaused&&this.mainPlaylistLoader_.load(),this.mainSegmentLoader_.pause(),this.mainSegmentLoader_.playlist(i,this.requestOptions_),this.waitingForFastQualityPlaylistReceived_?this.runFastQualitySwitch_():this.mainSegmentLoader_.load(),this.tech_.trigger({type:"mediachange",bubbles:!0})}),this.mainPlaylistLoader_.on("playlistunchanged",()=>{const i=this.mainPlaylistLoader_.media();if(i.lastExcludeReason_==="playlist-unchanged")return;this.stuckAtPlaylistEnd_(i)&&(this.excludePlaylist({error:{message:"Playlist no longer updating.",reason:"playlist-unchanged"}}),this.tech_.trigger("playliststuck"))}),this.mainPlaylistLoader_.on("renditiondisabled",()=>{this.tech_.trigger({type:"usage",name:"vhs-rendition-disabled"})}),this.mainPlaylistLoader_.on("renditionenabled",()=>{this.tech_.trigger({type:"usage",name:"vhs-rendition-enabled"})}),["manifestrequeststart","manifestrequestcomplete","manifestparsestart","manifestparsecomplete","playlistrequeststart","playlistrequestcomplete","playlistparsestart","playlistparsecomplete","renditiondisabled","renditionenabled"].forEach(i=>{this.mainPlaylistLoader_.on(i,r=>{this.player_.trigger(ei({},r))})})}handleUpdatedMediaPlaylist(e){this.useCueTags_&&this.updateAdCues_(e),this.mainSegmentLoader_.pause(),this.mainSegmentLoader_.playlist(e,this.requestOptions_),this.waitingForFastQualityPlaylistReceived_&&this.runFastQualitySwitch_(),this.updateDuration(!e.endList),this.tech_.paused()||(this.mainSegmentLoader_.load(),this.audioSegmentLoader_&&this.audioSegmentLoader_.load())}triggerPresenceUsage_(e,i){const r=e.mediaGroups||{};let o=!0;const l=Object.keys(r.AUDIO);for(const c in r.AUDIO)for(const f in r.AUDIO[c])r.AUDIO[c][f].uri||(o=!1);o&&this.tech_.trigger({type:"usage",name:"vhs-demuxed"}),Object.keys(r.SUBTITLES).length&&this.tech_.trigger({type:"usage",name:"vhs-webvtt"}),za.Playlist.isAes(i)&&this.tech_.trigger({type:"usage",name:"vhs-aes"}),l.length&&Object.keys(r.AUDIO[l[0]]).length>1&&this.tech_.trigger({type:"usage",name:"vhs-alternate-audio"}),this.useCueTags_&&this.tech_.trigger({type:"usage",name:"vhs-playlist-cue-tags"})}shouldSwitchToMedia_(e){const i=this.mainPlaylistLoader_.media()||this.mainPlaylistLoader_.pendingMedia_,r=this.tech_.currentTime(),o=this.bufferLowWaterLine(),l=this.bufferHighWaterLine(),c=this.tech_.buffered();return _I({buffered:c,currentTime:r,currentPlaylist:i,nextPlaylist:e,bufferLowWaterLine:o,bufferHighWaterLine:l,duration:this.duration(),bufferBasedABR:this.bufferBasedABR,log:this.logger_})}setupSegmentLoaderListeners_(){this.mainSegmentLoader_.on("bandwidthupdate",()=>{this.checkABR_("bandwidthupdate"),this.tech_.trigger("bandwidthupdate")}),this.mainSegmentLoader_.on("timeout",()=>{this.bufferBasedABR&&this.mainSegmentLoader_.load()}),this.bufferBasedABR||this.mainSegmentLoader_.on("progress",()=>{this.trigger("progress")}),this.mainSegmentLoader_.on("error",()=>{const r=this.mainSegmentLoader_.error();this.excludePlaylist({playlistToExclude:r.playlist,error:r})}),this.mainSegmentLoader_.on("appenderror",()=>{this.error=this.mainSegmentLoader_.error_,this.trigger("error")}),this.mainSegmentLoader_.on("syncinfoupdate",()=>{this.onSyncInfoUpdate_()}),this.mainSegmentLoader_.on("timestampoffset",()=>{this.tech_.trigger({type:"usage",name:"vhs-timestamp-offset"})}),this.audioSegmentLoader_.on("syncinfoupdate",()=>{this.onSyncInfoUpdate_()}),this.audioSegmentLoader_.on("appenderror",()=>{this.error=this.audioSegmentLoader_.error_,this.trigger("error")}),this.mainSegmentLoader_.on("ended",()=>{this.logger_("main segment loader ended"),this.onEndOfStream()}),this.timelineChangeController_.on("audioTimelineBehind",()=>{const r=this.audioSegmentLoader_.pendingSegment_;if(!r||!r.segment||!r.segment.syncInfo)return;const o=r.segment.syncInfo.end+.01;this.tech_.setCurrentTime(o)}),this.timelineChangeController_.on("fixBadTimelineChange",()=>{this.logger_("Fix bad timeline change. Restarting al segment loaders..."),this.mainSegmentLoader_.pause(),this.mainSegmentLoader_.resetEverything(),this.mediaTypes_.AUDIO.activePlaylistLoader&&(this.audioSegmentLoader_.pause(),this.audioSegmentLoader_.resetEverything()),this.mediaTypes_.SUBTITLES.activePlaylistLoader&&(this.subtitleSegmentLoader_.pause(),this.subtitleSegmentLoader_.resetEverything()),this.load()}),this.mainSegmentLoader_.on("earlyabort",r=>{this.bufferBasedABR||(this.delegateLoaders_("all",["abort"]),this.excludePlaylist({error:{message:"Aborted early because there isn't enough bandwidth to complete the request without rebuffering."},playlistExclusionDuration:TI}))});const e=()=>{if(!this.sourceUpdater_.hasCreatedSourceBuffers())return this.tryToCreateSourceBuffers_();const r=this.getCodecsOrExclude_();r&&this.sourceUpdater_.addOrChangeSourceBuffers(r)};this.mainSegmentLoader_.on("trackinfo",e),this.audioSegmentLoader_.on("trackinfo",e),this.mainSegmentLoader_.on("fmp4",()=>{this.triggeredFmp4Usage||(this.tech_.trigger({type:"usage",name:"vhs-fmp4"}),this.triggeredFmp4Usage=!0)}),this.audioSegmentLoader_.on("fmp4",()=>{this.triggeredFmp4Usage||(this.tech_.trigger({type:"usage",name:"vhs-fmp4"}),this.triggeredFmp4Usage=!0)}),this.audioSegmentLoader_.on("ended",()=>{this.logger_("audioSegmentLoader ended"),this.onEndOfStream()}),["segmentselected","segmentloadstart","segmentloaded","segmentkeyloadstart","segmentkeyloadcomplete","segmentdecryptionstart","segmentdecryptioncomplete","segmenttransmuxingstart","segmenttransmuxingcomplete","segmenttransmuxingtrackinfoavailable","segmenttransmuxingtiminginfoavailable","segmentappendstart","appendsdone","bandwidthupdated","timelinechange","codecschange"].forEach(r=>{this.mainSegmentLoader_.on(r,o=>{this.player_.trigger(ei({},o))}),this.audioSegmentLoader_.on(r,o=>{this.player_.trigger(ei({},o))}),this.subtitleSegmentLoader_.on(r,o=>{this.player_.trigger(ei({},o))})})}mediaSecondsLoaded_(){return Math.max(this.audioSegmentLoader_.mediaSecondsLoaded+this.mainSegmentLoader_.mediaSecondsLoaded)}load(){this.mainSegmentLoader_.load(),this.mediaTypes_.AUDIO.activePlaylistLoader&&this.audioSegmentLoader_.load(),this.mediaTypes_.SUBTITLES.activePlaylistLoader&&this.subtitleSegmentLoader_.load()}pause(){this.mainSegmentLoader_.pause(),this.mediaTypes_.AUDIO.activePlaylistLoader&&this.audioSegmentLoader_.pause(),this.mediaTypes_.SUBTITLES.activePlaylistLoader&&this.subtitleSegmentLoader_.pause()}fastQualityChange_(e=this.selectPlaylist()){if(e&&e===this.mainPlaylistLoader_.media()){this.logger_("skipping fastQualityChange because new media is same as old");return}this.switchMedia_(e,"fast-quality"),this.waitingForFastQualityPlaylistReceived_=!0}runFastQualitySwitch_(){this.waitingForFastQualityPlaylistReceived_=!1,this.mainSegmentLoader_.pause(),this.mainSegmentLoader_.resetEverything(),this.mediaTypes_.AUDIO.activePlaylistLoader&&(this.audioSegmentLoader_.pause(),this.audioSegmentLoader_.resetEverything()),this.mediaTypes_.SUBTITLES.activePlaylistLoader&&(this.subtitleSegmentLoader_.pause(),this.subtitleSegmentLoader_.resetEverything()),this.load()}play(){if(this.setupFirstPlay())return;this.tech_.ended()&&this.tech_.setCurrentTime(0),this.hasPlayed_&&this.load();const e=this.tech_.seekable();if(this.tech_.duration()===1/0&&this.tech_.currentTime(){})}this.trigger("sourceopen")}handleSourceEnded_(){if(!this.inbandTextTracks_.metadataTrack_)return;const e=this.inbandTextTracks_.metadataTrack_.cues;if(!e||!e.length)return;const i=this.duration();e[e.length-1].endTime=isNaN(i)||Math.abs(i)===1/0?Number.MAX_VALUE:i}handleDurationChange_(){this.tech_.trigger("durationchange")}onEndOfStream(){let e=this.mainSegmentLoader_.ended_;if(this.mediaTypes_.AUDIO.activePlaylistLoader){const i=this.mainSegmentLoader_.getCurrentMediaInfo_();!i||i.hasVideo?e=e&&this.audioSegmentLoader_.ended_:e=this.audioSegmentLoader_.ended_}e&&(this.stopABRTimer_(),this.sourceUpdater_.endOfStream())}stuckAtPlaylistEnd_(e){if(!this.seekable().length)return!1;const r=this.syncController_.getExpiredTime(e,this.duration());if(r===null)return!1;const o=za.Playlist.playlistEnd(e,r),l=this.tech_.currentTime(),c=this.tech_.buffered();if(!c.length)return o-l<=nr;const f=c.end(c.length-1);return f-l<=nr&&o-f<=nr}excludePlaylist({playlistToExclude:e=this.mainPlaylistLoader_.media(),error:i={},playlistExclusionDuration:r}){if(e=e||this.mainPlaylistLoader_.media(),r=r||i.playlistExclusionDuration||this.playlistExclusionDuration,!e){this.error=i,this.mediaSource.readyState!=="open"?this.trigger("error"):this.sourceUpdater_.endOfStream("network");return}e.playlistErrors_++;const o=this.mainPlaylistLoader_.main.playlists,l=o.filter(Lp),c=l.length===1&&l[0]===e;if(o.length===1&&r!==1/0)return F.log.warn(`Problem encountered with playlist ${e.id}. Trying again since it is the only playlist.`),this.tech_.trigger("retryplaylist"),this.mainPlaylistLoader_.load(c);if(c){if(this.main().contentSteering){const I=this.pathwayAttribute_(e),C=this.contentSteeringController_.steeringManifest.ttl*1e3;this.contentSteeringController_.excludePathway(I),this.excludeThenChangePathway_(),setTimeout(()=>{this.contentSteeringController_.addAvailablePathway(I)},C);return}let k=!1;o.forEach(I=>{if(I===e)return;const C=I.excludeUntil;typeof C<"u"&&C!==1/0&&(k=!0,delete I.excludeUntil)}),k&&(F.log.warn("Removing other playlists from the exclusion list because the last rendition is about to be excluded."),this.tech_.trigger("retryplaylist"))}let f;e.playlistErrors_>this.maxPlaylistRetries?f=1/0:f=Date.now()+r*1e3,e.excludeUntil=f,i.reason&&(e.lastExcludeReason_=i.reason),this.tech_.trigger("excludeplaylist"),this.tech_.trigger({type:"usage",name:"vhs-rendition-excluded"});const p=this.selectPlaylist();if(!p){this.error="Playback cannot continue. No available working or supported playlists.",this.trigger("error");return}const v=i.internal?this.logger_:F.log.warn,S=i.message?" "+i.message:"";v(`${i.internal?"Internal problem":"Problem"} encountered with playlist ${e.id}.${S} Switching to playlist ${p.id}.`),p.attributes.AUDIO!==e.attributes.AUDIO&&this.delegateLoaders_("audio",["abort","pause"]),p.attributes.SUBTITLES!==e.attributes.SUBTITLES&&this.delegateLoaders_("subtitle",["abort","pause"]),this.delegateLoaders_("main",["abort","pause"]);const x=p.targetDuration/2*1e3||5*1e3,D=typeof p.lastRequest=="number"&&Date.now()-p.lastRequest<=x;return this.switchMedia_(p,"exclude",c||D)}pauseLoading(){this.delegateLoaders_("all",["abort","pause"]),this.stopABRTimer_()}delegateLoaders_(e,i){const r=[],o=e==="all";(o||e==="main")&&r.push(this.mainPlaylistLoader_);const l=[];(o||e==="audio")&&l.push("AUDIO"),(o||e==="subtitle")&&(l.push("CLOSED-CAPTIONS"),l.push("SUBTITLES")),l.forEach(c=>{const f=this.mediaTypes_[c]&&this.mediaTypes_[c].activePlaylistLoader;f&&r.push(f)}),["main","audio","subtitle"].forEach(c=>{const f=this[`${c}SegmentLoader_`];f&&(e===c||e==="all")&&r.push(f)}),r.forEach(c=>i.forEach(f=>{typeof c[f]=="function"&&c[f]()}))}setCurrentTime(e){const i=Tu(this.tech_.buffered(),e);if(!(this.mainPlaylistLoader_&&this.mainPlaylistLoader_.media())||!this.mainPlaylistLoader_.media().segments)return 0;if(i&&i.length)return e;this.mainSegmentLoader_.pause(),this.mainSegmentLoader_.resetEverything(),this.mediaTypes_.AUDIO.activePlaylistLoader&&(this.audioSegmentLoader_.pause(),this.audioSegmentLoader_.resetEverything()),this.mediaTypes_.SUBTITLES.activePlaylistLoader&&(this.subtitleSegmentLoader_.pause(),this.subtitleSegmentLoader_.resetEverything()),this.load()}duration(){if(!this.mainPlaylistLoader_)return 0;const e=this.mainPlaylistLoader_.media();return e?e.endList?this.mediaSource?this.mediaSource.duration:za.Playlist.duration(e):1/0:0}seekable(){return this.seekable_}getSeekableRange_(e,i){const r=e.media();if(!r)return null;const o=this.syncController_.getMediaSequenceSync(i);if(o&&o.isReliable){const f=o.start,p=o.end;if(!isFinite(f)||!isFinite(p))return null;const v=za.Playlist.liveEdgeDelay(this.mainPlaylistLoader_.main,r),S=Math.max(f,p-v);return Ni([[f,S]])}const l=this.syncController_.getExpiredTime(r,this.duration());if(l===null)return null;const c=za.Playlist.seekable(r,l,za.Playlist.liveEdgeDelay(this.mainPlaylistLoader_.main,r));return c.length?c:null}computeFinalSeekable_(e,i){if(!i)return e;const r=e.start(0),o=e.end(0),l=i.start(0),c=i.end(0);return l>o||r>c?e:Ni([[Math.max(r,l),Math.min(o,c)]])}onSyncInfoUpdate_(){if(!this.mainPlaylistLoader_)return;const e=this.getSeekableRange_(this.mainPlaylistLoader_,"main");if(!e)return;let i;if(this.mediaTypes_.AUDIO.activePlaylistLoader&&(i=this.getSeekableRange_(this.mediaTypes_.AUDIO.activePlaylistLoader,"audio"),!i))return;const r=this.seekable_;if(this.seekable_=this.computeFinalSeekable_(e,i),!this.seekable_||r&&r.length&&this.seekable_.length&&r.start(0)===this.seekable_.start(0)&&r.end(0)===this.seekable_.end(0))return;this.logger_(`seekable updated [${fS(this.seekable_)}]`);const o={seekableRanges:this.seekable_};this.trigger({type:"seekablerangeschanged",metadata:o}),this.tech_.trigger("seekablechanged")}updateDuration(e){if(this.updateDuration_&&(this.mediaSource.removeEventListener("sourceopen",this.updateDuration_),this.updateDuration_=null),this.mediaSource.readyState!=="open"){this.updateDuration_=this.updateDuration.bind(this,e),this.mediaSource.addEventListener("sourceopen",this.updateDuration_);return}if(e){const o=this.seekable();if(!o.length)return;(isNaN(this.mediaSource.duration)||this.mediaSource.duration0&&(r=Math.max(r,i.end(i.length-1))),this.mediaSource.duration!==r&&this.sourceUpdater_.setDuration(r)}dispose(){this.trigger("dispose"),this.decrypter_.terminate(),this.mainPlaylistLoader_.dispose(),this.mainSegmentLoader_.dispose(),this.contentSteeringController_.dispose(),this.keyStatusMap_.clear(),this.loadOnPlay_&&this.tech_.off("play",this.loadOnPlay_),["AUDIO","SUBTITLES"].forEach(e=>{const i=this.mediaTypes_[e].groups;for(const r in i)i[r].forEach(o=>{o.playlistLoader&&o.playlistLoader.dispose()})}),this.audioSegmentLoader_.dispose(),this.subtitleSegmentLoader_.dispose(),this.sourceUpdater_.dispose(),this.timelineChangeController_.dispose(),this.stopABRTimer_(),this.updateDuration_&&this.mediaSource.removeEventListener("sourceopen",this.updateDuration_),this.mediaSource.removeEventListener("durationchange",this.handleDurationChange_),this.mediaSource.removeEventListener("sourceopen",this.handleSourceOpen_),this.mediaSource.removeEventListener("sourceended",this.handleSourceEnded_),this.off()}main(){return this.mainPlaylistLoader_.main}media(){return this.mainPlaylistLoader_.media()||this.initialMedia_}areMediaTypesKnown_(){const e=!!this.mediaTypes_.AUDIO.activePlaylistLoader,i=!!this.mainSegmentLoader_.getCurrentMediaInfo_(),r=e?!!this.audioSegmentLoader_.getCurrentMediaInfo_():!0;return!(!i||!r)}getCodecsOrExclude_(){const e={main:this.mainSegmentLoader_.getCurrentMediaInfo_()||{},audio:this.audioSegmentLoader_.getCurrentMediaInfo_()||{}},i=this.mainSegmentLoader_.getPendingSegmentPlaylist()||this.media();e.video=e.main;const r=Id(this.main(),i),o={},l=!!this.mediaTypes_.AUDIO.activePlaylistLoader;if(e.main.hasVideo&&(o.video=r.video||e.main.videoCodec||Qw),e.main.isMuxed&&(o.video+=`,${r.audio||e.main.audioCodec||r1}`),(e.main.hasAudio&&!e.main.isMuxed||e.audio.hasAudio||l)&&(o.audio=r.audio||e.main.audioCodec||e.audio.audioCodec||r1,e.audio.isFmp4=e.main.hasAudio&&!e.main.isMuxed?e.main.isFmp4:e.audio.isFmp4),!o.audio&&!o.video){this.excludePlaylist({playlistToExclude:i,error:{message:"Could not determine codecs for playlist."},playlistExclusionDuration:1/0});return}const c=(v,S)=>v?nd(S,this.usingManagedMediaSource_):Qg(S),f={};let p;if(["video","audio"].forEach(function(v){if(o.hasOwnProperty(v)&&!c(e[v].isFmp4,o[v])){const S=e[v].isFmp4?"browser":"muxer";f[S]=f[S]||[],f[S].push(o[v]),v==="audio"&&(p=S)}}),l&&p&&i.attributes.AUDIO){const v=i.attributes.AUDIO;this.main().playlists.forEach(S=>{(S.attributes&&S.attributes.AUDIO)===v&&S!==i&&(S.excludeUntil=1/0)}),this.logger_(`excluding audio group ${v} as ${p} does not support codec(s): "${o.audio}"`)}if(Object.keys(f).length){const v=Object.keys(f).reduce((S,x)=>(S&&(S+=", "),S+=`${x} does not support codec(s): "${f[x].join(",")}"`,S),"")+".";this.excludePlaylist({playlistToExclude:i,error:{internal:!0,message:v},playlistExclusionDuration:1/0});return}if(this.sourceUpdater_.hasCreatedSourceBuffers()&&!this.sourceUpdater_.canChangeType()){const v=[];if(["video","audio"].forEach(S=>{const x=(Gs(this.sourceUpdater_.codecs[S]||"")[0]||{}).type,D=(Gs(o[S]||"")[0]||{}).type;x&&D&&x.toLowerCase()!==D.toLowerCase()&&v.push(`"${this.sourceUpdater_.codecs[S]}" -> "${o[S]}"`)}),v.length){this.excludePlaylist({playlistToExclude:i,error:{message:`Codec switching not supported: ${v.join(", ")}.`,internal:!0},playlistExclusionDuration:1/0});return}}return o}tryToCreateSourceBuffers_(){if(this.mediaSource.readyState!=="open"||this.sourceUpdater_.hasCreatedSourceBuffers()||!this.areMediaTypesKnown_())return;const e=this.getCodecsOrExclude_();if(!e)return;this.sourceUpdater_.createSourceBuffers(e);const i=[e.video,e.audio].filter(Boolean).join(",");this.excludeIncompatibleVariants_(i)}excludeUnsupportedVariants_(){const e=this.main().playlists,i=[];Object.keys(e).forEach(r=>{const o=e[r];if(i.indexOf(o.id)!==-1)return;i.push(o.id);const l=Id(this.main,o),c=[];l.audio&&!Qg(l.audio)&&!nd(l.audio,this.usingManagedMediaSource_)&&c.push(`audio codec ${l.audio}`),l.video&&!Qg(l.video)&&!nd(l.video,this.usingManagedMediaSource_)&&c.push(`video codec ${l.video}`),l.text&&l.text==="stpp.ttml.im1t"&&c.push(`text codec ${l.text}`),c.length&&(o.excludeUntil=1/0,this.logger_(`excluding ${o.id} for unsupported: ${c.join(", ")}`))})}excludeIncompatibleVariants_(e){const i=[],r=this.main().playlists,o=Od(Gs(e)),l=kS(o),c=o.video&&Gs(o.video)[0]||null,f=o.audio&&Gs(o.audio)[0]||null;Object.keys(r).forEach(p=>{const v=r[p];if(i.indexOf(v.id)!==-1||v.excludeUntil===1/0)return;i.push(v.id);const S=[],x=Id(this.mainPlaylistLoader_.main,v),D=kS(x);if(!(!x.audio&&!x.video)){if(D!==l&&S.push(`codec count "${D}" !== "${l}"`),!this.sourceUpdater_.canChangeType()){const k=x.video&&Gs(x.video)[0]||null,I=x.audio&&Gs(x.audio)[0]||null;k&&c&&k.type.toLowerCase()!==c.type.toLowerCase()&&S.push(`video codec "${k.type}" !== "${c.type}"`),I&&f&&I.type.toLowerCase()!==f.type.toLowerCase()&&S.push(`audio codec "${I.type}" !== "${f.type}"`)}S.length&&(v.excludeUntil=1/0,this.logger_(`excluding ${v.id}: ${S.join(" && ")}`))}})}updateAdCues_(e){let i=0;const r=this.seekable();r.length&&(i=r.start(0)),J3(e,this.cueTagsTrack_,i)}goalBufferLength(){const e=this.tech_.currentTime(),i=ki.GOAL_BUFFER_LENGTH,r=ki.GOAL_BUFFER_LENGTH_RATE,o=Math.max(i,ki.MAX_GOAL_BUFFER_LENGTH);return Math.min(i+e*r,o)}bufferLowWaterLine(){const e=this.tech_.currentTime(),i=ki.BUFFER_LOW_WATER_LINE,r=ki.BUFFER_LOW_WATER_LINE_RATE,o=Math.max(i,ki.MAX_BUFFER_LOW_WATER_LINE),l=Math.max(i,ki.EXPERIMENTAL_MAX_BUFFER_LOW_WATER_LINE);return Math.min(i+e*r,this.bufferBasedABR?l:o)}bufferHighWaterLine(){return ki.BUFFER_HIGH_WATER_LINE}addDateRangesToTextTrack_(e){lx(this.inbandTextTracks_,"com.apple.streaming",this.tech_),O3({inbandTextTracks:this.inbandTextTracks_,dateRanges:e})}addMetadataToTextTrack(e,i,r){const o=this.sourceUpdater_.videoBuffer?this.sourceUpdater_.videoTimestampOffset():this.sourceUpdater_.audioTimestampOffset();lx(this.inbandTextTracks_,e,this.tech_),w3({inbandTextTracks:this.inbandTextTracks_,metadataArray:i,timestampOffset:o,videoDuration:r})}pathwayAttribute_(e){return e.attributes["PATHWAY-ID"]||e.attributes.serviceLocation}initContentSteeringController_(){const e=this.main();if(e.contentSteering){for(const i of e.playlists)this.contentSteeringController_.addAvailablePathway(this.pathwayAttribute_(i));if(this.contentSteeringController_.assignTagProperties(e.uri,e.contentSteering),this.contentSteeringController_.queryBeforeStart){this.contentSteeringController_.requestSteeringManifest(!0);return}this.tech_.one("canplay",()=>{this.contentSteeringController_.requestSteeringManifest()})}}resetContentSteeringController_(){this.contentSteeringController_.clearAvailablePathways(),this.contentSteeringController_.dispose(),this.initContentSteeringController_()}attachContentSteeringListeners_(){this.contentSteeringController_.on("content-steering",this.excludeThenChangePathway_.bind(this)),["contentsteeringloadstart","contentsteeringloadcomplete","contentsteeringparsed"].forEach(i=>{this.contentSteeringController_.on(i,r=>{this.trigger(ei({},r))})}),this.sourceType_==="dash"&&this.mainPlaylistLoader_.on("loadedplaylist",()=>{const i=this.main();(this.contentSteeringController_.didDASHTagChange(i.uri,i.contentSteering)||(()=>{const l=this.contentSteeringController_.getAvailablePathways(),c=[];for(const f of i.playlists){const p=f.attributes.serviceLocation;if(p&&(c.push(p),!l.has(p)))return!0}return!!(!c.length&&l.size)})())&&this.resetContentSteeringController_()})}excludeThenChangePathway_(){const e=this.contentSteeringController_.getPathway();if(!e)return;this.handlePathwayClones_();const r=this.main().playlists,o=new Set;let l=!1;Object.keys(r).forEach(c=>{const f=r[c],p=this.pathwayAttribute_(f),v=p&&e!==p;f.excludeUntil===1/0&&f.lastExcludeReason_==="content-steering"&&!v&&(delete f.excludeUntil,delete f.lastExcludeReason_,l=!0);const x=!f.excludeUntil&&f.excludeUntil!==1/0;!o.has(f.id)&&v&&x&&(o.add(f.id),f.excludeUntil=1/0,f.lastExcludeReason_="content-steering",this.logger_(`excluding ${f.id} for ${f.lastExcludeReason_}`))}),this.contentSteeringController_.manifestType_==="DASH"&&Object.keys(this.mediaTypes_).forEach(c=>{const f=this.mediaTypes_[c];if(f.activePlaylistLoader){const p=f.activePlaylistLoader.media_;p&&p.attributes.serviceLocation!==e&&(l=!0)}}),l&&this.changeSegmentPathway_()}handlePathwayClones_(){const i=this.main().playlists,r=this.contentSteeringController_.currentPathwayClones,o=this.contentSteeringController_.nextPathwayClones;if(r&&r.size||o&&o.size){for(const[c,f]of r.entries())o.get(c)||(this.mainPlaylistLoader_.updateOrDeleteClone(f),this.contentSteeringController_.excludePathway(c));for(const[c,f]of o.entries()){const p=r.get(c);if(!p){i.filter(S=>S.attributes["PATHWAY-ID"]===f["BASE-ID"]).forEach(S=>{this.mainPlaylistLoader_.addClonePathway(f,S)}),this.contentSteeringController_.addAvailablePathway(c);continue}this.equalPathwayClones_(p,f)||(this.mainPlaylistLoader_.updateOrDeleteClone(f,!0),this.contentSteeringController_.addAvailablePathway(c))}this.contentSteeringController_.currentPathwayClones=new Map(JSON.parse(JSON.stringify([...o])))}}equalPathwayClones_(e,i){if(e["BASE-ID"]!==i["BASE-ID"]||e.ID!==i.ID||e["URI-REPLACEMENT"].HOST!==i["URI-REPLACEMENT"].HOST)return!1;const r=e["URI-REPLACEMENT"].PARAMS,o=i["URI-REPLACEMENT"].PARAMS;for(const l in r)if(r[l]!==o[l])return!1;for(const l in o)if(r[l]!==o[l])return!1;return!0}changeSegmentPathway_(){const e=this.selectPlaylist();this.pauseLoading(),this.contentSteeringController_.manifestType_==="DASH"&&this.switchMediaForDASHContentSteering_(),this.switchMedia_(e,"content-steering")}excludeNonUsablePlaylistsByKeyId_(){if(!this.mainPlaylistLoader_||!this.mainPlaylistLoader_.main)return;let e=0;const i="non-usable";this.mainPlaylistLoader_.main.playlists.forEach(r=>{const o=this.mainPlaylistLoader_.getKeyIdSet(r);!o||!o.size||o.forEach(l=>{const c="usable",f=this.keyStatusMap_.has(l)&&this.keyStatusMap_.get(l)===c,p=r.lastExcludeReason_===i&&r.excludeUntil===1/0;f?f&&p&&(delete r.excludeUntil,delete r.lastExcludeReason_,this.logger_(`enabling playlist ${r.id} because key ID ${l} is ${c}`)):(r.excludeUntil!==1/0&&r.lastExcludeReason_!==i&&(r.excludeUntil=1/0,r.lastExcludeReason_=i,this.logger_(`excluding playlist ${r.id} because the key ID ${l} doesn't exist in the keyStatusMap or is not ${c}`)),e++)})}),e>=this.mainPlaylistLoader_.main.playlists.length&&this.mainPlaylistLoader_.main.playlists.forEach(r=>{const o=r&&r.attributes&&r.attributes.RESOLUTION&&r.attributes.RESOLUTION.height<720,l=r.excludeUntil===1/0&&r.lastExcludeReason_===i;o&&l&&(delete r.excludeUntil,F.log.warn(`enabling non-HD playlist ${r.id} because all playlists were excluded due to ${i} key IDs`))})}addKeyStatus_(e,i){const l=(typeof e=="string"?e:X3(e)).slice(0,32).toLowerCase();this.logger_(`KeyStatus '${i}' with key ID ${l} added to the keyStatusMap`),this.keyStatusMap_.set(l,i)}updatePlaylistByKeyStatus(e,i){this.addKeyStatus_(e,i),this.waitingForFastQualityPlaylistReceived_||this.excludeNonUsableThenChangePlaylist_(),this.mainPlaylistLoader_.off("loadedplaylist",this.excludeNonUsableThenChangePlaylist_.bind(this)),this.mainPlaylistLoader_.on("loadedplaylist",this.excludeNonUsableThenChangePlaylist_.bind(this))}excludeNonUsableThenChangePlaylist_(){this.excludeNonUsablePlaylistsByKeyId_(),this.fastQualityChange_()}}const xI=(s,e,i)=>r=>{const o=s.main.playlists[e],l=by(o),c=Lp(o);if(typeof r>"u")return c;r?delete o.disabled:o.disabled=!0;const f={renditionInfo:{id:e,bandwidth:o.attributes.BANDWIDTH,resolution:o.attributes.RESOLUTION,codecs:o.attributes.CODECS},cause:"fast-quality"};return r!==c&&!l&&(r?(i(o),s.trigger({type:"renditionenabled",metadata:f})):s.trigger({type:"renditiondisabled",metadata:f})),r};class EI{constructor(e,i,r){const{playlistController_:o}=e,l=o.fastQualityChange_.bind(o);if(i.attributes){const c=i.attributes.RESOLUTION;this.width=c&&c.width,this.height=c&&c.height,this.bandwidth=i.attributes.BANDWIDTH,this.frameRate=i.attributes["FRAME-RATE"]}this.codecs=Id(o.main(),i),this.playlist=i,this.id=r,this.enabled=xI(e.playlists,i.id,l)}}const MI=function(s){s.representations=()=>{const e=s.playlistController_.main(),i=kd(e)?s.playlistController_.getAudioTrackPlaylists_():e.playlists;return i?i.filter(r=>!by(r)).map((r,o)=>new EI(s,r,r.id)):[]}},Mx=["seeking","seeked","pause","playing","error"];class DI extends F.EventTarget{constructor(e){super(),this.playlistController_=e.playlistController,this.tech_=e.tech,this.seekable=e.seekable,this.allowSeeksWithinUnsafeLiveWindow=e.allowSeeksWithinUnsafeLiveWindow,this.liveRangeSafeTimeDelta=e.liveRangeSafeTimeDelta,this.media=e.media,this.playedRanges_=[],this.consecutiveUpdates=0,this.lastRecordedTime=null,this.checkCurrentTimeTimeout_=null,this.logger_=ls("PlaybackWatcher"),this.logger_("initialize");const i=()=>this.monitorCurrentTime_(),r=()=>this.monitorCurrentTime_(),o=()=>this.techWaiting_(),l=()=>this.resetTimeUpdate_(),c=this.playlistController_,f=["main","subtitle","audio"],p={};f.forEach(S=>{p[S]={reset:()=>this.resetSegmentDownloads_(S),updateend:()=>this.checkSegmentDownloads_(S)},c[`${S}SegmentLoader_`].on("appendsdone",p[S].updateend),c[`${S}SegmentLoader_`].on("playlistupdate",p[S].reset),this.tech_.on(["seeked","seeking"],p[S].reset)});const v=S=>{["main","audio"].forEach(x=>{c[`${x}SegmentLoader_`][S]("appended",this.seekingAppendCheck_)})};this.seekingAppendCheck_=()=>{this.fixesBadSeeks_()&&(this.consecutiveUpdates=0,this.lastRecordedTime=this.tech_.currentTime(),v("off"))},this.clearSeekingAppendCheck_=()=>v("off"),this.watchForBadSeeking_=()=>{this.clearSeekingAppendCheck_(),v("on")},this.tech_.on("seeked",this.clearSeekingAppendCheck_),this.tech_.on("seeking",this.watchForBadSeeking_),this.tech_.on("waiting",o),this.tech_.on(Mx,l),this.tech_.on("canplay",r),this.tech_.one("play",i),this.dispose=()=>{this.clearSeekingAppendCheck_(),this.logger_("dispose"),this.tech_.off("waiting",o),this.tech_.off(Mx,l),this.tech_.off("canplay",r),this.tech_.off("play",i),this.tech_.off("seeking",this.watchForBadSeeking_),this.tech_.off("seeked",this.clearSeekingAppendCheck_),f.forEach(S=>{c[`${S}SegmentLoader_`].off("appendsdone",p[S].updateend),c[`${S}SegmentLoader_`].off("playlistupdate",p[S].reset),this.tech_.off(["seeked","seeking"],p[S].reset)}),this.checkCurrentTimeTimeout_&&z.clearTimeout(this.checkCurrentTimeTimeout_),this.resetTimeUpdate_()}}monitorCurrentTime_(){this.checkCurrentTime_(),this.checkCurrentTimeTimeout_&&z.clearTimeout(this.checkCurrentTimeTimeout_),this.checkCurrentTimeTimeout_=z.setTimeout(this.monitorCurrentTime_.bind(this),250)}resetSegmentDownloads_(e){const i=this.playlistController_[`${e}SegmentLoader_`];this[`${e}StalledDownloads_`]>0&&this.logger_(`resetting possible stalled download count for ${e} loader`),this[`${e}StalledDownloads_`]=0,this[`${e}Buffered_`]=i.buffered_()}checkSegmentDownloads_(e){const i=this.playlistController_,r=i[`${e}SegmentLoader_`],o=r.buffered_(),l=pO(this[`${e}Buffered_`],o);if(this[`${e}Buffered_`]=o,l){const c={bufferedRanges:o};i.trigger({type:"bufferedrangeschanged",metadata:c}),this.resetSegmentDownloads_(e);return}this[`${e}StalledDownloads_`]++,this.logger_(`found #${this[`${e}StalledDownloads_`]} ${e} appends that did not increase buffer (possible stalled download)`,{playlistId:r.playlist_&&r.playlist_.id,buffered:zo(o)}),!(this[`${e}StalledDownloads_`]<10)&&(this.logger_(`${e} loader stalled download exclusion`),this.resetSegmentDownloads_(e),this.tech_.trigger({type:"usage",name:`vhs-${e}-download-exclusion`}),e!=="subtitle"&&i.excludePlaylist({error:{message:`Excessive ${e} segment downloading detected.`},playlistExclusionDuration:1/0}))}checkCurrentTime_(){if(this.tech_.paused()||this.tech_.seeking())return;const e=this.tech_.currentTime(),i=this.tech_.buffered();if(this.lastRecordedTime===e&&(!i.length||e+nr>=i.end(i.length-1)))return this.techWaiting_();if(this.consecutiveUpdates>=5&&e===this.lastRecordedTime)this.consecutiveUpdates++,this.waiting_();else if(e===this.lastRecordedTime)this.consecutiveUpdates++;else{this.playedRanges_.push(Ni([this.lastRecordedTime,e]));const r={playedRanges:this.playedRanges_};this.playlistController_.trigger({type:"playedrangeschanged",metadata:r}),this.consecutiveUpdates=0,this.lastRecordedTime=e}}resetTimeUpdate_(){this.consecutiveUpdates=0}fixesBadSeeks_(){if(!this.tech_.seeking())return!1;const i=this.seekable(),r=this.tech_.currentTime(),o=this.afterSeekableWindow_(i,r,this.media(),this.allowSeeksWithinUnsafeLiveWindow);let l;if(o&&(l=i.end(i.length-1)),this.beforeSeekableWindow_(i,r)){const I=i.start(0);l=I+(I===i.end(0)?0:nr)}if(typeof l<"u")return this.logger_(`Trying to seek outside of seekable at time ${r} with seekable range ${fS(i)}. Seeking to ${l}.`),this.tech_.setCurrentTime(l),!0;const c=this.playlistController_.sourceUpdater_,f=this.tech_.buffered(),p=c.audioBuffer?c.audioBuffered():null,v=c.videoBuffer?c.videoBuffered():null,S=this.media(),x=S.partTargetDuration?S.partTargetDuration:(S.targetDuration-ir)*2,D=[p,v];for(let I=0;I ${r.end(0)}]. Attempting to resume playback by seeking to the current time.`),this.tech_.trigger({type:"usage",name:"vhs-unknown-waiting"});return}}techWaiting_(){const e=this.seekable(),i=this.tech_.currentTime();if(this.tech_.seeking())return!0;if(this.beforeSeekableWindow_(e,i)){const f=e.end(e.length-1);return this.logger_(`Fell out of live window at time ${i}. Seeking to live point (seekable end) ${f}`),this.resetTimeUpdate_(),this.tech_.setCurrentTime(f),this.tech_.trigger({type:"usage",name:"vhs-live-resync"}),!0}const r=this.tech_.vhs.playlistController_.sourceUpdater_,o=this.tech_.buffered();if(this.videoUnderflow_({audioBuffered:r.audioBuffered(),videoBuffered:r.videoBuffered(),currentTime:i}))return this.resetTimeUpdate_(),this.tech_.setCurrentTime(i),this.tech_.trigger({type:"usage",name:"vhs-video-underflow"}),!0;const c=Ip(o,i);return c.length>0?(this.logger_(`Stopped at ${i} and seeking to ${c.start(0)}`),this.resetTimeUpdate_(),this.skipTheGap_(i),!0):!1}afterSeekableWindow_(e,i,r,o=!1){if(!e.length)return!1;let l=e.end(e.length-1)+nr;const c=!r.endList,f=typeof r.partTargetDuration=="number";return c&&(f||o)&&(l=e.end(e.length-1)+r.targetDuration*3),i>l}beforeSeekableWindow_(e,i){return!!(e.length&&e.start(0)>0&&i2)return{start:l,end:c}}return null}}const CI={errorInterval:30,getSource(s){const i=this.tech({IWillNotUseThisInPlugins:!0}).currentSource_||this.currentSource();return s(i)}},Dx=function(s,e){let i=0,r=0;const o=Ct(CI,e);s.ready(()=>{s.trigger({type:"usage",name:"vhs-error-reload-initialized"})});const l=function(){r&&s.currentTime(r)},c=function(S){S!=null&&(r=s.duration()!==1/0&&s.currentTime()||0,s.one("loadedmetadata",l),s.src(S),s.trigger({type:"usage",name:"vhs-error-reload"}),s.play())},f=function(){if(Date.now()-i{Object.defineProperty(Kt,s,{get(){return F.log.warn(`using Vhs.${s} is UNSAFE be sure you know what you are doing`),ki[s]},set(e){if(F.log.warn(`using Vhs.${s} is UNSAFE be sure you know what you are doing`),typeof e!="number"||e<0){F.log.warn(`value of Vhs.${s} must be greater than or equal to 0`);return}ki[s]=e}})});const Ax="videojs-vhs",wx=function(s,e){const i=e.media();let r=-1;for(let o=0;o{s.addQualityLevel(i)}),wx(s,e.playlists)};Kt.canPlaySource=function(){return F.log.warn("VHS is no longer a tech. Please remove it from your player's techOrder.")};const LI=(s,e,i)=>{if(!s)return s;let r={};e&&e.attributes&&e.attributes.CODECS&&(r=Od(Gs(e.attributes.CODECS))),i&&i.attributes&&i.attributes.CODECS&&(r.audio=i.attributes.CODECS);const o=Fl(r.video),l=Fl(r.audio),c={};for(const f in s)c[f]={},l&&(c[f].audioContentType=l),o&&(c[f].videoContentType=o),e.contentProtection&&e.contentProtection[f]&&e.contentProtection[f].pssh&&(c[f].pssh=e.contentProtection[f].pssh),typeof s[f]=="string"&&(c[f].url=s[f]);return Ct(s,c)},RI=(s,e)=>s.reduce((i,r)=>{if(!r.contentProtection)return i;const o=e.reduce((l,c)=>{const f=r.contentProtection[c];return f&&f.pssh&&(l[c]={pssh:f.pssh}),l},{});return Object.keys(o).length&&i.push(o),i},[]),jI=({player:s,sourceKeySystems:e,audioMedia:i,mainPlaylists:r})=>{if(!s.eme.initializeMediaKeys)return Promise.resolve();const o=i?r.concat([i]):r,l=RI(o,Object.keys(e)),c=[],f=[];return l.forEach(p=>{f.push(new Promise((v,S)=>{s.tech_.one("keysessioncreated",v)})),c.push(new Promise((v,S)=>{s.eme.initializeMediaKeys({keySystems:p},x=>{if(x){S(x);return}v()})}))}),Promise.race([Promise.all(c),Promise.race(f)])},zI=({player:s,sourceKeySystems:e,media:i,audioMedia:r})=>{const o=LI(e,i,r);return o?(s.currentSource().keySystems=o,o&&!s.eme?(F.log.warn("DRM encrypted source cannot be decrypted without a DRM plugin"),!1):!0):!1},Nx=()=>{if(!z.localStorage)return null;const s=z.localStorage.getItem(Ax);if(!s)return null;try{return JSON.parse(s)}catch{return null}},UI=s=>{if(!z.localStorage)return!1;let e=Nx();e=e?Ct(e,s):s;try{z.localStorage.setItem(Ax,JSON.stringify(e))}catch{return!1}return e},PI=s=>s.toLowerCase().indexOf("data:application/vnd.videojs.vhs+json,")===0?JSON.parse(s.substring(s.indexOf(",")+1)):s,kx=(s,e)=>{s._requestCallbackSet||(s._requestCallbackSet=new Set),s._requestCallbackSet.add(e)},Ox=(s,e)=>{s._responseCallbackSet||(s._responseCallbackSet=new Set),s._responseCallbackSet.add(e)},Ix=(s,e)=>{s._requestCallbackSet&&(s._requestCallbackSet.delete(e),s._requestCallbackSet.size||delete s._requestCallbackSet)},Lx=(s,e)=>{s._responseCallbackSet&&(s._responseCallbackSet.delete(e),s._responseCallbackSet.size||delete s._responseCallbackSet)};Kt.supportsNativeHls=function(){if(!ve||!ve.createElement)return!1;const s=ve.createElement("video");return F.getTech("Html5").isSupported()?["application/vnd.apple.mpegurl","audio/mpegurl","audio/x-mpegurl","application/x-mpegurl","video/x-mpegurl","video/mpegurl","application/mpegurl"].some(function(i){return/maybe|probably/i.test(s.canPlayType(i))}):!1}(),Kt.supportsNativeDash=function(){return!ve||!ve.createElement||!F.getTech("Html5").isSupported()?!1:/maybe|probably/i.test(ve.createElement("video").canPlayType("application/dash+xml"))}(),Kt.supportsTypeNatively=s=>s==="hls"?Kt.supportsNativeHls:s==="dash"?Kt.supportsNativeDash:!1,Kt.isSupported=function(){return F.log.warn("VHS is no longer a tech. Please remove it from your player's techOrder.")},Kt.xhr.onRequest=function(s){kx(Kt.xhr,s)},Kt.xhr.onResponse=function(s){Ox(Kt.xhr,s)},Kt.xhr.offRequest=function(s){Ix(Kt.xhr,s)},Kt.xhr.offResponse=function(s){Lx(Kt.xhr,s)};const BI=F.getComponent("Component");class Rx extends BI{constructor(e,i,r){if(super(i,r.vhs),typeof r.initialBandwidth=="number"&&(this.options_.bandwidth=r.initialBandwidth),this.logger_=ls("VhsHandler"),i.options_&&i.options_.playerId){const o=F.getPlayer(i.options_.playerId);this.player_=o}if(this.tech_=i,this.source_=e,this.stats={},this.ignoreNextSeekingEvent_=!1,this.setOptions_(),this.options_.overrideNative&&i.overrideNativeAudioTracks&&i.overrideNativeVideoTracks)i.overrideNativeAudioTracks(!0),i.overrideNativeVideoTracks(!0);else if(this.options_.overrideNative&&(i.featuresNativeVideoTracks||i.featuresNativeAudioTracks))throw new Error("Overriding native VHS requires emulated tracks. See https://git.io/vMpjB");this.on(ve,["fullscreenchange","webkitfullscreenchange","mozfullscreenchange","MSFullscreenChange"],o=>{const l=ve.fullscreenElement||ve.webkitFullscreenElement||ve.mozFullScreenElement||ve.msFullscreenElement;l&&l.contains(this.tech_.el())?this.playlistController_.fastQualityChange_():this.playlistController_.checkABR_()}),this.on(this.tech_,"seeking",function(){if(this.ignoreNextSeekingEvent_){this.ignoreNextSeekingEvent_=!1;return}this.setCurrentTime(this.tech_.currentTime())}),this.on(this.tech_,"error",function(){this.tech_.error()&&this.playlistController_&&this.playlistController_.pauseLoading()}),this.on(this.tech_,"play",this.play)}setOptions_(e={}){if(this.options_=Ct(this.options_,e),this.options_.withCredentials=this.options_.withCredentials||!1,this.options_.limitRenditionByPlayerDimensions=this.options_.limitRenditionByPlayerDimensions!==!1,this.options_.useDevicePixelRatio=this.options_.useDevicePixelRatio||!1,this.options_.usePlayerObjectFit=this.options_.usePlayerObjectFit||!1,this.options_.useBandwidthFromLocalStorage=typeof this.source_.useBandwidthFromLocalStorage<"u"?this.source_.useBandwidthFromLocalStorage:this.options_.useBandwidthFromLocalStorage||!1,this.options_.useForcedSubtitles=this.options_.useForcedSubtitles||!1,this.options_.useNetworkInformationApi=typeof this.options_.useNetworkInformationApi<"u"?this.options_.useNetworkInformationApi:!0,this.options_.useDtsForTimestampOffset=this.options_.useDtsForTimestampOffset||!1,this.options_.customTagParsers=this.options_.customTagParsers||[],this.options_.customTagMappers=this.options_.customTagMappers||[],this.options_.cacheEncryptionKeys=this.options_.cacheEncryptionKeys||!1,this.options_.llhls=this.options_.llhls!==!1,this.options_.bufferBasedABR=this.options_.bufferBasedABR||!1,typeof this.options_.playlistExclusionDuration!="number"&&(this.options_.playlistExclusionDuration=60),typeof this.options_.bandwidth!="number"&&this.options_.useBandwidthFromLocalStorage){const r=Nx();r&&r.bandwidth&&(this.options_.bandwidth=r.bandwidth,this.tech_.trigger({type:"usage",name:"vhs-bandwidth-from-local-storage"})),r&&r.throughput&&(this.options_.throughput=r.throughput,this.tech_.trigger({type:"usage",name:"vhs-throughput-from-local-storage"}))}typeof this.options_.bandwidth!="number"&&(this.options_.bandwidth=ki.INITIAL_BANDWIDTH),this.options_.enableLowInitialPlaylist=this.options_.enableLowInitialPlaylist&&this.options_.bandwidth===ki.INITIAL_BANDWIDTH,["withCredentials","useDevicePixelRatio","usePlayerObjectFit","customPixelRatio","limitRenditionByPlayerDimensions","bandwidth","customTagParsers","customTagMappers","cacheEncryptionKeys","playlistSelector","initialPlaylistSelector","bufferBasedABR","liveRangeSafeTimeDelta","llhls","useForcedSubtitles","useNetworkInformationApi","useDtsForTimestampOffset","exactManifestTimings","leastPixelDiffSelector"].forEach(r=>{typeof this.source_[r]<"u"&&(this.options_[r]=this.source_[r])}),this.limitRenditionByPlayerDimensions=this.options_.limitRenditionByPlayerDimensions,this.useDevicePixelRatio=this.options_.useDevicePixelRatio,this.usePlayerObjectFit=this.options_.usePlayerObjectFit;const i=this.options_.customPixelRatio;typeof i=="number"&&i>=0&&(this.customPixelRatio=i)}setOptions(e={}){this.setOptions_(e)}src(e,i){if(!e)return;this.setOptions_(),this.options_.src=PI(this.source_.src),this.options_.tech=this.tech_,this.options_.externVhs=Kt,this.options_.sourceType=a1(i),this.options_.seekTo=l=>{this.tech_.setCurrentTime(l)},this.options_.player_=this.player_,this.playlistController_=new SI(this.options_);const r=Ct({liveRangeSafeTimeDelta:nr},this.options_,{seekable:()=>this.seekable(),media:()=>this.playlistController_.media(),playlistController:this.playlistController_});this.playbackWatcher_=new DI(r),this.attachStreamingEventListeners_(),this.playlistController_.on("error",()=>{const l=F.players[this.tech_.options_.playerId];let c=this.playlistController_.error;typeof c=="object"&&!c.code?c.code=3:typeof c=="string"&&(c={message:c,code:3}),l.error(c)});const o=this.options_.bufferBasedABR?Kt.movingAverageBandwidthSelector(.55):Kt.STANDARD_PLAYLIST_SELECTOR;this.playlistController_.selectPlaylist=this.selectPlaylist?this.selectPlaylist.bind(this):o.bind(this),this.playlistController_.selectInitialPlaylist=Kt.INITIAL_PLAYLIST_SELECTOR.bind(this),this.playlists=this.playlistController_.mainPlaylistLoader_,this.mediaSource=this.playlistController_.mediaSource,Object.defineProperties(this,{selectPlaylist:{get(){return this.playlistController_.selectPlaylist},set(l){this.playlistController_.selectPlaylist=l.bind(this)}},throughput:{get(){return this.playlistController_.mainSegmentLoader_.throughput.rate},set(l){this.playlistController_.mainSegmentLoader_.throughput.rate=l,this.playlistController_.mainSegmentLoader_.throughput.count=1}},bandwidth:{get(){let l=this.playlistController_.mainSegmentLoader_.bandwidth;const c=z.navigator.connection||z.navigator.mozConnection||z.navigator.webkitConnection,f=1e7;if(this.options_.useNetworkInformationApi&&c){const p=c.downlink*1e3*1e3;p>=f&&l>=f?l=Math.max(l,p):l=p}return l},set(l){this.playlistController_.mainSegmentLoader_.bandwidth=l,this.playlistController_.mainSegmentLoader_.throughput={rate:0,count:0}}},systemBandwidth:{get(){const l=1/(this.bandwidth||1);let c;return this.throughput>0?c=1/this.throughput:c=0,Math.floor(1/(l+c))},set(){F.log.error('The "systemBandwidth" property is read-only')}}}),this.options_.bandwidth&&(this.bandwidth=this.options_.bandwidth),this.options_.throughput&&(this.throughput=this.options_.throughput),Object.defineProperties(this.stats,{bandwidth:{get:()=>this.bandwidth||0,enumerable:!0},mediaRequests:{get:()=>this.playlistController_.mediaRequests_()||0,enumerable:!0},mediaRequestsAborted:{get:()=>this.playlistController_.mediaRequestsAborted_()||0,enumerable:!0},mediaRequestsTimedout:{get:()=>this.playlistController_.mediaRequestsTimedout_()||0,enumerable:!0},mediaRequestsErrored:{get:()=>this.playlistController_.mediaRequestsErrored_()||0,enumerable:!0},mediaTransferDuration:{get:()=>this.playlistController_.mediaTransferDuration_()||0,enumerable:!0},mediaBytesTransferred:{get:()=>this.playlistController_.mediaBytesTransferred_()||0,enumerable:!0},mediaSecondsLoaded:{get:()=>this.playlistController_.mediaSecondsLoaded_()||0,enumerable:!0},mediaAppends:{get:()=>this.playlistController_.mediaAppends_()||0,enumerable:!0},mainAppendsToLoadedData:{get:()=>this.playlistController_.mainAppendsToLoadedData_()||0,enumerable:!0},audioAppendsToLoadedData:{get:()=>this.playlistController_.audioAppendsToLoadedData_()||0,enumerable:!0},appendsToLoadedData:{get:()=>this.playlistController_.appendsToLoadedData_()||0,enumerable:!0},timeToLoadedData:{get:()=>this.playlistController_.timeToLoadedData_()||0,enumerable:!0},buffered:{get:()=>zo(this.tech_.buffered()),enumerable:!0},currentTime:{get:()=>this.tech_.currentTime(),enumerable:!0},currentSource:{get:()=>this.tech_.currentSource_,enumerable:!0},currentTech:{get:()=>this.tech_.name_,enumerable:!0},duration:{get:()=>this.tech_.duration(),enumerable:!0},main:{get:()=>this.playlists.main,enumerable:!0},playerDimensions:{get:()=>this.tech_.currentDimensions(),enumerable:!0},seekable:{get:()=>zo(this.tech_.seekable()),enumerable:!0},timestamp:{get:()=>Date.now(),enumerable:!0},videoPlaybackQuality:{get:()=>this.tech_.getVideoPlaybackQuality(),enumerable:!0}}),this.tech_.one("canplay",this.playlistController_.setupFirstPlay.bind(this.playlistController_)),this.tech_.on("bandwidthupdate",()=>{this.options_.useBandwidthFromLocalStorage&&UI({bandwidth:this.bandwidth,throughput:Math.round(this.throughput)})}),this.playlistController_.on("selectedinitialmedia",()=>{MI(this)}),this.playlistController_.sourceUpdater_.on("createdsourcebuffers",()=>{this.setupEme_()}),this.on(this.playlistController_,"progress",function(){this.tech_.trigger("progress")}),this.on(this.playlistController_,"firstplay",function(){this.ignoreNextSeekingEvent_=!0}),this.setupQualityLevels_(),this.tech_.el()&&(this.mediaSourceUrl_=z.URL.createObjectURL(this.playlistController_.mediaSource),(F.browser.IS_ANY_SAFARI||F.browser.IS_IOS)&&this.options_.overrideNative&&this.options_.sourceType==="hls"&&typeof this.tech_.addSourceElement=="function"?(this.tech_.addSourceElement(this.mediaSourceUrl_),this.tech_.addSourceElement(this.source_.src)):this.tech_.src(this.mediaSourceUrl_))}createKeySessions_(){const e=this.playlistController_.mediaTypes_.AUDIO.activePlaylistLoader;this.logger_("waiting for EME key session creation"),jI({player:this.player_,sourceKeySystems:this.source_.keySystems,audioMedia:e&&e.media(),mainPlaylists:this.playlists.main.playlists}).then(()=>{this.logger_("created EME key session"),this.playlistController_.sourceUpdater_.initializedEme()}).catch(i=>{this.logger_("error while creating EME key session",i),this.player_.error({message:"Failed to initialize media keys for EME",code:3})})}handleWaitingForKey_(){this.logger_("waitingforkey fired, attempting to create any new key sessions"),this.createKeySessions_()}setupEme_(){const e=this.playlistController_.mediaTypes_.AUDIO.activePlaylistLoader,i=zI({player:this.player_,sourceKeySystems:this.source_.keySystems,media:this.playlists.media(),audioMedia:e&&e.media()});if(this.player_.tech_.on("keystatuschange",r=>{this.playlistController_.updatePlaylistByKeyStatus(r.keyId,r.status)}),this.handleWaitingForKey_=this.handleWaitingForKey_.bind(this),this.player_.tech_.on("waitingforkey",this.handleWaitingForKey_),!i){this.playlistController_.sourceUpdater_.initializedEme();return}this.createKeySessions_()}setupQualityLevels_(){const e=F.players[this.tech_.options_.playerId];!e||!e.qualityLevels||this.qualityLevels_||(this.qualityLevels_=e.qualityLevels(),this.playlistController_.on("selectedinitialmedia",()=>{II(this.qualityLevels_,this)}),this.playlists.on("mediachange",()=>{wx(this.qualityLevels_,this.playlists)}))}static version(){return{"@videojs/http-streaming":Cx,"mux.js":wI,"mpd-parser":NI,"m3u8-parser":kI,"aes-decrypter":OI}}version(){return this.constructor.version()}canChangeType(){return mx.canChangeType()}play(){this.playlistController_.play()}setCurrentTime(e){this.playlistController_.setCurrentTime(e)}duration(){return this.playlistController_.duration()}seekable(){return this.playlistController_.seekable()}dispose(){this.playbackWatcher_&&this.playbackWatcher_.dispose(),this.playlistController_&&this.playlistController_.dispose(),this.qualityLevels_&&this.qualityLevels_.dispose(),this.tech_&&this.tech_.vhs&&delete this.tech_.vhs,this.mediaSourceUrl_&&z.URL.revokeObjectURL&&(z.URL.revokeObjectURL(this.mediaSourceUrl_),this.mediaSourceUrl_=null),this.tech_&&this.tech_.off("waitingforkey",this.handleWaitingForKey_),super.dispose()}convertToProgramTime(e,i){return $O({playlist:this.playlistController_.media(),time:e,callback:i})}seekToProgramTime(e,i,r=!0,o=2){return qS({programTime:e,playlist:this.playlistController_.media(),retryCount:o,pauseAfterSeek:r,seekTo:this.options_.seekTo,tech:this.options_.tech,callback:i})}setupXhrHooks_(){this.xhr.onRequest=e=>{kx(this.xhr,e)},this.xhr.onResponse=e=>{Ox(this.xhr,e)},this.xhr.offRequest=e=>{Ix(this.xhr,e)},this.xhr.offResponse=e=>{Lx(this.xhr,e)},this.player_.trigger("xhr-hooks-ready")}attachStreamingEventListeners_(){const e=["seekablerangeschanged","bufferedrangeschanged","contentsteeringloadstart","contentsteeringloadcomplete","contentsteeringparsed"],i=["gapjumped","playedrangeschanged"];e.forEach(r=>{this.playlistController_.on(r,o=>{this.player_.trigger(ei({},o))})}),i.forEach(r=>{this.playbackWatcher_.on(r,o=>{this.player_.trigger(ei({},o))})})}}const Pp={name:"videojs-http-streaming",VERSION:Cx,canHandleSource(s,e={}){const i=Ct(F.options,e);return!i.vhs.experimentalUseMMS&&!nd("avc1.4d400d,mp4a.40.2",!1)?!1:Pp.canPlayType(s.type,i)},handleSource(s,e,i={}){const r=Ct(F.options,i);return e.vhs=new Rx(s,e,r),e.vhs.xhr=jS(),e.vhs.setupXhrHooks_(),e.vhs.src(s.src,s.type),e.vhs},canPlayType(s,e){const i=a1(s);if(!i)return"";const r=Pp.getOverrideNative(e);return!Kt.supportsTypeNatively(i)||r?"maybe":""},getOverrideNative(s={}){const{vhs:e={}}=s,i=!(F.browser.IS_ANY_SAFARI||F.browser.IS_IOS),{overrideNative:r=i}=e;return r}};(()=>nd("avc1.4d400d,mp4a.40.2",!0))()&&F.getTech("Html5").registerSourceHandler(Pp,0),F.VhsHandler=Rx,F.VhsSourceHandler=Pp,F.Vhs=Kt,F.use||F.registerComponent("Vhs",Kt),F.options.vhs=F.options.vhs||{},(!F.getPlugin||!F.getPlugin("reloadSourceOnError"))&&F.registerPlugin("reloadSourceOnError",AI);const r8="",a8="",o8="",l8="",qI=F.getComponent("Component");class jx extends qI{constructor(e,i){i&&i.relatedVideos&&(i._relatedVideos=i.relatedVideos),super(e,i),this.relatedVideos=i&&i.relatedVideos?i.relatedVideos:[]}createEl(){const e=this.options_&&this.options_._relatedVideos?this.options_._relatedVideos:[],i=this.getMaxVideosForScreen(),r=e.slice(0,i),o=super.createEl("div",{className:"vjs-end-screen-overlay"}),l=F.dom.createEl("div",{className:"vjs-related-videos-grid"});return r&&Array.isArray(r)&&r.length>0?r.forEach(c=>{const f=this.createVideoItem(c);l.appendChild(f)}):this.createSampleVideos().slice(0,this.getMaxVideosForScreen()).forEach(f=>{const p=this.createVideoItem(f);l.appendChild(p)}),o.appendChild(l),o}createVideoItem(e){const i=this.isTouchDevice(),r=F.dom.createEl("div",{className:i?"vjs-related-video-item vjs-touch-device":"vjs-related-video-item"}),o=e.thumbnail||this.getPlaceholderImage(e.title),l=F.dom.createEl("img",{className:"vjs-related-video-thumbnail",src:o,alt:e.title,loading:"lazy",onerror:()=>{l.src=this.getPlaceholderImage(e.title)}}),c=F.dom.createEl("div",{className:"vjs-related-video-overlay"}),f=F.dom.createEl("div",{className:"vjs-related-video-title"});f.textContent=e.title;const p=F.dom.createEl("div",{className:"vjs-related-video-meta"}),v=F.dom.createEl("div",{className:"vjs-related-video-author"});v.textContent=e.author;const S=F.dom.createEl("div",{className:"vjs-related-video-views"});S.textContent=e.views,p.appendChild(v),p.appendChild(S);const x=F.dom.createEl("div",{className:"vjs-related-video-duration"}),D=k=>{if(!k||k===0)return"";const I=Math.floor(k/60),C=Math.floor(k%60);return`${I}:${C.toString().padStart(2,"0")}`};return x.textContent=D(e.duration),c.appendChild(f),c.appendChild(p),r.appendChild(l),r.appendChild(c),e.duration&&e.duration>0&&r.appendChild(x),r.addEventListener("click",()=>{(this.player().id()||this.player().options_.id)==="video-embed"||window.location.pathname.includes("/embed")||window.location.search.includes("embed")||window.parent!==window?window.open(`/view?m=${e.id}`,"_blank","noopener,noreferrer"):window.location.href=`/view?m=${e.id}`}),r}getPlaceholderImage(e){const i=["#009931","#4ECDC4","#45B7D1","#96CEB4","#FFEAA7","#DDA0DD","#98D8C8","#F7DC6F","#BB8FCE","#85C1E9"];let r=0;for(let v=0;v=1200?12:e>=1024?9:e>=768?6:4}createSampleVideos(){return[{id:"sample1",title:"React Full Course for Beginners",author:"Bro Code",views:"2.1M views",duration:1800,thumbnail:"https://img.youtube.com/vi/dGcsHMXbSOA/maxresdefault.jpg"},{id:"sample2",title:"JavaScript ES6+ Features",author:"Tech Tutorials",views:"850K views",duration:1200,thumbnail:"https://img.youtube.com/vi/WZQc7RUAg18/maxresdefault.jpg"},{id:"sample3",title:"CSS Grid Layout Masterclass",author:"Web Dev Academy",views:"1.2M views",duration:2400,thumbnail:"https://img.youtube.com/vi/0xMQfnTU6oo/maxresdefault.jpg"},{id:"sample4",title:"Node.js Backend Development",author:"Code Master",views:"650K views",duration:3600,thumbnail:"https://img.youtube.com/vi/fBNz6F-Cowg/maxresdefault.jpg"},{id:"sample5",title:"Vue.js Complete Guide",author:"Frontend Pro",views:"980K views",duration:2800,thumbnail:"https://img.youtube.com/vi/qZXt1Aom3Cs/maxresdefault.jpg"},{id:"sample6",title:"Python Data Science",author:"Data Academy",views:"1.5M views",duration:4200,thumbnail:"https://img.youtube.com/vi/ua-CiDNNj30/maxresdefault.jpg"},{id:"sample7",title:"TypeScript Fundamentals",author:"TypeScript Expert",views:"720K views",duration:2100,thumbnail:"https://img.youtube.com/vi/BwuLxPH8IDs/maxresdefault.jpg"},{id:"sample8",title:"MongoDB Database Tutorial",author:"Database Pro",views:"890K views",duration:1800,thumbnail:"https://img.youtube.com/vi/-56x56UppqQ/maxresdefault.jpg"},{id:"sample9",title:"Docker Containerization",author:"DevOps Master",views:"1.1M views",duration:3200,thumbnail:"https://img.youtube.com/vi/pTFZFxd4hOI/maxresdefault.jpg"},{id:"sample10",title:"AWS Cloud Services",author:"Cloud Expert",views:"1.3M views",duration:4500,thumbnail:"https://img.youtube.com/vi/ITcXLS3h2qU/maxresdefault.jpg"},{id:"sample11",title:"GraphQL API Design",author:"API Specialist",views:"680K views",duration:2600,thumbnail:"https://img.youtube.com/vi/ed8SzALpx1Q/maxresdefault.jpg"},{id:"sample12",title:"Machine Learning Basics",author:"AI Academy",views:"2.3M views",duration:5400,thumbnail:"https://img.youtube.com/vi/i_LwzRVP7bg/maxresdefault.jpg"}]}isTouchDevice(){return"ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0||window.matchMedia("(pointer: coarse)").matches}show(){this.el().style.display="flex"}hide(){this.el().style.display="none"}}F.registerComponent("EndScreenOverlay",jx);const u8="",FI=F.getComponent("Component");class zx extends FI{constructor(e,i){super(e,i),this.nextVideoData=i.nextVideoData||null,this.countdownSeconds=i.countdownSeconds||5,this.onPlayNext=i.onPlayNext||(()=>{}),this.onCancel=i.onCancel||(()=>{}),this.currentCountdown=this.countdownSeconds,this.startTime=null,this.isActive=!1,this.startCountdown=this.startCountdown.bind(this),this.stopCountdown=this.stopCountdown.bind(this),this.handlePlayNext=this.handlePlayNext.bind(this),this.handleCancel=this.handleCancel.bind(this),this.updateCountdownDisplay=this.updateCountdownDisplay.bind(this)}createEl(){var c,f;const e=super.createEl("div",{className:"vjs-autoplay-countdown-overlay"}),i=((c=this.nextVideoData)==null?void 0:c.title)||"Next Video";e.innerHTML=`