shaka-ts 5.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1161 @@
1
+ var Io=Object.defineProperty,Co=Object.defineProperties;var xo=Object.getOwnPropertyDescriptors;var yo=Object.getOwnPropertySymbols;var wo=Object.prototype.hasOwnProperty,Mo=Object.prototype.propertyIsEnumerable;var ja=(y,e,t)=>e in y?Io(y,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):y[e]=t,To=(y,e)=>{for(var t in e||(e={}))wo.call(e,t)&&ja(y,t,e[t]);if(yo)for(var t of yo(e))Mo.call(e,t)&&ja(y,t,e[t]);return y},vo=(y,e)=>Co(y,xo(e));var l=(y,e,t)=>ja(y,typeof e!="symbol"?e+"":e,t);var So,bo,Fe=((bo=(So=globalThis.process)==null?void 0:So.env)==null?void 0:bo.NODE_ENV)!=="production";/*! @license
2
+ * Shaka Player
3
+ * Copyright 2016 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */var v=class{static assert(e,t){}};v.ENABLE_ASSERTS=Fe;v.ENABLE_ASSERTS&&console.assert&&console.assert.bind&&(v.assert=console.assert.bind(console));/*! @license
6
+ * Shaka Player
7
+ * Copyright 2016 Google LLC
8
+ * SPDX-License-Identifier: Apache-2.0
9
+ */var ys=class y{constructor(e,t){l(this,"major_");l(this,"minor_");this.major_=e,this.minor_=t}major(){return this.major_}minor(){return this.minor_}compareTo(e){let t=this.major_-e.major_,i=this.minor_-e.minor_;return t||i}toString(){return"v"+this.major_+"."+this.minor_}static parse(e){let t=e.substring(1).split(".",2);return new y(Number(t[0]),Number(t[1]))}};/*! @license
10
+ * Shaka Player
11
+ * Copyright 2016 Google LLC
12
+ * SPDX-License-Identifier: Apache-2.0
13
+ */var Qs=class{constructor(e,t,i){l(this,"libraryVersion_");l(this,"onPending_");l(this,"onExpired_");this.libraryVersion_=e,this.onPending_=t,this.onExpired_=i}enforce(e,t,i){(e.compareTo(this.libraryVersion_)>0?this.onPending_:this.onExpired_)(this.libraryVersion_,e,t,i)}};/*! @license
14
+ * Shaka Player
15
+ * Copyright 2016 Google LLC
16
+ * SPDX-License-Identifier: Apache-2.0
17
+ */var ar=class ar{static alwaysError(...e){}static alwaysWarn(...e){}static warnOnce(e,...t){ar.oneTimeWarningIssued_.has(e)||(ar.oneTimeWarningIssued_.add(e),ar.alwaysWarn(...t))}static error(...e){}static warning(...e){}static info(...e){}static debug(...e){}static v1(...e){}static v2(...e){}};l(ar,"Level",{NONE:0,ERROR:1,WARNING:2,INFO:3,DEBUG:4,V1:5,V2:6}),l(ar,"MAX_LOG_LEVEL",3),l(ar,"oneTimeWarningIssued_",new Set);var p=ar;self.console&&(p.logMap_=new Map().set(p.Level.ERROR,(...y)=>console.error(...y)).set(p.Level.WARNING,(...y)=>console.warn(...y)).set(p.Level.INFO,(...y)=>console.info(...y)).set(p.Level.DEBUG,(...y)=>console.log(...y)).set(p.Level.V1,(...y)=>console.debug(...y)).set(p.Level.V2,(...y)=>console.debug(...y)),p.alwaysWarn=(...y)=>console.warn(...y),p.alwaysError=(...y)=>console.error(...y),Fe?(p.currentLevel,p.setLevel=y=>{let e=t=>t<=y?(v.assert(p.logMap_.has(t),"Unexpected log level"),p.logMap_.get(t)):()=>{};p.currentLevel=y,p.error=e(p.Level.ERROR),p.warning=e(p.Level.WARNING),p.info=e(p.Level.INFO),p.debug=e(p.Level.DEBUG),p.v1=e(p.Level.V1),p.v2=e(p.Level.V2)},p.setLevel(p.MAX_LOG_LEVEL)):(p.MAX_LOG_LEVEL>=p.Level.ERROR&&(p.error=p.logMap_.get(p.Level.ERROR)),p.MAX_LOG_LEVEL>=p.Level.WARNING&&(p.warning=p.logMap_.get(p.Level.WARNING)),p.MAX_LOG_LEVEL>=p.Level.INFO&&(p.info=p.logMap_.get(p.Level.INFO)),p.MAX_LOG_LEVEL>=p.Level.DEBUG&&(p.debug=p.logMap_.get(p.Level.DEBUG)),p.MAX_LOG_LEVEL>=p.Level.V1&&(p.v1=p.logMap_.get(p.Level.V1)),p.MAX_LOG_LEVEL>=p.Level.V2&&(p.v2=p.logMap_.get(p.Level.V2))));/*! @license
18
+ * Shaka Player
19
+ * Copyright 2016 Google LLC
20
+ * SPDX-License-Identifier: Apache-2.0
21
+ */var or=class or{static init(e){v.assert(or.enforcer_==null,"Deprecate.init should only be called once."),or.enforcer_=new Qs(ys.parse(e),or.onPending_,or.onExpired_)}static deprecateFeature(e,t,i){let r=or.enforcer_;v.assert(r,"Missing deprecation enforcer. Was |init| called?");let s=new ys(e,0);r.enforce(s,t,i)}static onPending_(e,t,i,r){p.alwaysWarn([i,"has been deprecated and will be removed in",t,". We are currently at version",e,". Additional information:",r].join(" "))}static onExpired_(e,t,i,r){let s=[i,"has been deprecated and has been removed in",t,". We are now at version",e,". Additional information:",r].join(" ");p.alwaysError(s),v.assert(!1,s)}};l(or,"enforcer_",null);var Cr=or;/*! @license
22
+ * Shaka Player
23
+ * Copyright 2016 Google LLC
24
+ * SPDX-License-Identifier: Apache-2.0
25
+ */var _e=class{constructor(e){l(this,"gen_");l(this,"value_");this.gen_=e,this.value_=void 0}value(){return this.value_===void 0&&(this.value_=this.gen_(),v.assert(this.value_!==void 0,"Unable to create lazy value")),this.value_}reset(){this.value_=void 0}};/*! @license
26
+ * Shaka Player
27
+ * Copyright 2016 Google LLC
28
+ * SPDX-License-Identifier: Apache-2.0
29
+ */var Ai=class Ai{static registerDeviceFactory(e){v.assert(!Ai.factory_,"Device Factory should NOT be defined"),Ai.factory_=e}static registerDefaultDeviceFactory(e){v.assert(!Ai.defaultFactory_,"Default device Factory should NOT be defined"),Ai.defaultFactory_=e}static getDevice(){return v.assert(Ai.factory_||Ai.defaultFactory_,"Device Factory should be defined"),Ai.device_.value()}};l(Ai,"factory_",null),l(Ai,"defaultFactory_",null);var j=Ai;j.device_=new _e(()=>{let y;return j.factory_&&(y=j.factory_()),!y&&j.defaultFactory_&&(y=j.defaultFactory_()),y&&p.info(y.toString()),y});/*! @license
30
+ * Shaka Player
31
+ * Copyright 2016 Google LLC
32
+ * SPDX-License-Identifier: Apache-2.0
33
+ */var ie=class{supportsMediaSource(){}supportsMediaType(e){}supportsMediaCapabilities(){}getVersion(){}getDeviceName(){}getDeviceType(){}getBrowserEngine(){}requiresEncryptionInfoInAllInitSegments(e,t){}requiresClearAndEncryptedInitSegments(e){}insertEncryptionDataBeforeClear(e){}requiresTfhdFix(e){}requiresEC3InitSegments(){}requiresDvvcWorkaround(e){}supportsSequenceMode(){}supportsSmoothCodecSwitching(e){}seekDelay(){}detectMaxHardwareResolution(){}supportsServerCertificate(){}adjustConfig(e){}shouldOverrideDolbyVisionCodecs(){}shouldAvoidUseTextDecoderEncoder(){}supportsOfflineStorage(){}rejectCodecs(){}getHdrLevel(e){}supportsAirPlay(){}misreportAC3UsingDrm(){}returnLittleEndianUsingPlayReady(){}supportsEncryptionSchemePolyfill(){}misreportsSupportForPersistentLicenses(){}supportStandardVP9Checking(){}createMediaKeysWhenCheckingSupport(){}disableHEVCSupport(){}supportsCbcsWithoutEncryptionSchemeSupport(){}supportsContainerChangeType(){}needWaitForEncryptedEvent(e){}getRemote(e){}supportsWorkerTransmux(){}hasWorkingClearKeySupport(){}};l(ie,"DeviceType",{DESKTOP:"DESKTOP",MOBILE:"MOBILE",TV:"TV",VR:"VR",APPLE_VR:"APPLE_VR",CONSOLE:"CONSOLE",CAST:"CAST"}),l(ie,"BrowserEngine",{CHROMIUM:"CHROMIUM",EDGE:"EDGE",GECKO:"GECKO",WEBKIT:"WEBKIT",UNKNOWN:"UNKNOWN"});/*! @license
34
+ * Shaka Player
35
+ * Copyright 2016 Google LLC
36
+ * SPDX-License-Identifier: Apache-2.0
37
+ */var D=class y{static equal(e,t){if(!e&&!t)return!0;if(!e||!t||e.byteLength!=t.byteLength)return!1;if(y.unsafeGetArrayBuffer_(e)==y.unsafeGetArrayBuffer_(t)&&(e.byteOffset||0)==(t.byteOffset||0))return!0;let i=y.toUint8(e),r=y.toUint8(t);for(let s=0;s<e.byteLength;s++)if(i[s]!=r[s])return!1;return!0}static unsafeGetArrayBuffer_(e){return ArrayBuffer.isView(e)?e.buffer:e}static toArrayBuffer(e){if(ArrayBuffer.isView(e)){let t=e;return t.byteOffset==0&&t.byteLength==t.buffer.byteLength?t.buffer:new Uint8Array(t).buffer}else return e}static toUint8(e,t=0,i=1/0){return y.view_(e,t,i,Uint8Array)}static toUint16(e,t=0,i=1/0){return y.view_(e,t,i,Uint16Array)}static toDataView(e,t=0,i=1/0){return y.view_(e,t,i,DataView)}static view_(e,t,i,r){let s=y.unsafeGetArrayBuffer_(e),n=1;"BYTES_PER_ELEMENT"in r&&(n=r.BYTES_PER_ELEMENT);let a=((e.byteOffset||0)+e.byteLength)/n,o=((e.byteOffset||0)+t)/n,c=Math.floor(Math.max(0,Math.min(o,a))),d=Math.floor(Math.min(c+Math.max(i,0),a));return new r(s,c,d-c)}};/*! @license
38
+ * Shaka Player
39
+ * Copyright 2016 Google LLC
40
+ * SPDX-License-Identifier: Apache-2.0
41
+ */var Ii=class Ii{constructor(e,t,i,...r){l(this,"severity");l(this,"category");l(this,"code");l(this,"data");l(this,"handled");l(this,"message");l(this,"stack");this.severity=e,this.category=t,this.code=i,this.data=r,this.handled=!1;let s="Shaka Error "+this.code;if(Fe){let n="UNKNOWN",a="UNKNOWN";for(let o in Ii.Category)Ii.Category[o]==this.category&&(n=o);for(let o in Ii.Code)Ii.Code[o]==this.code&&(a=o);s="Shaka Error "+n+"."+a+" ("+this.data.toString()+")"}if(this.message=s,Ii.createStack)try{throw new Error(this.message||"Shaka Error")}catch(n){this.stack=n.stack}}toString(){return"shaka.util.Error "+JSON.stringify(this,null," ")}static getMediaElementErrorDetails(e){let t=e.code,i=e.msExtendedCode;i&&(i<0&&(i+=Math.pow(2,32)),i=i.toString(16));let r=e.message;return{code:t,extended:i,message:r}}};l(Ii,"createStack",!0),l(Ii,"Severity",{RECOVERABLE:1,CRITICAL:2}),l(Ii,"Category",{NETWORK:1,TEXT:2,MEDIA:3,MANIFEST:4,STREAMING:5,DRM:6,PLAYER:7,CAST:8,STORAGE:9,ADS:10}),l(Ii,"Code",{UNSUPPORTED_SCHEME:1e3,BAD_HTTP_STATUS:1001,HTTP_ERROR:1002,TIMEOUT:1003,MALFORMED_DATA_URI:1004,REQUEST_FILTER_ERROR:1006,RESPONSE_FILTER_ERROR:1007,MALFORMED_TEST_URI:1008,UNEXPECTED_TEST_REQUEST:1009,ATTEMPTS_EXHAUSTED:1010,SEGMENT_MISSING:1011,INVALID_TEXT_HEADER:2e3,INVALID_TEXT_CUE:2001,UNABLE_TO_DETECT_ENCODING:2003,BAD_ENCODING:2004,INVALID_XML:2005,INVALID_MP4_TTML:2007,INVALID_MP4_VTT:2008,UNABLE_TO_EXTRACT_CUE_START_TIME:2009,INVALID_MP4_CEA:2010,TEXT_COULD_NOT_GUESS_MIME_TYPE:2011,CANNOT_ADD_EXTERNAL_TEXT_TO_SRC_EQUALS:2012,TEXT_ONLY_WEBVTT_SRC_EQUALS:2013,MISSING_TEXT_PLUGIN:2014,UNSUPPORTED_EXTERNAL_THUMBNAILS_URI:2017,BUFFER_READ_OUT_OF_BOUNDS:3e3,JS_INTEGER_OVERFLOW:3001,EBML_OVERFLOW:3002,EBML_BAD_FLOATING_POINT_SIZE:3003,MP4_SIDX_WRONG_BOX_TYPE:3004,MP4_SIDX_INVALID_TIMESCALE:3005,MP4_SIDX_TYPE_NOT_SUPPORTED:3006,WEBM_CUES_ELEMENT_MISSING:3007,WEBM_EBML_HEADER_ELEMENT_MISSING:3008,WEBM_SEGMENT_ELEMENT_MISSING:3009,WEBM_INFO_ELEMENT_MISSING:3010,WEBM_DURATION_ELEMENT_MISSING:3011,WEBM_CUE_TRACK_POSITIONS_ELEMENT_MISSING:3012,WEBM_CUE_TIME_ELEMENT_MISSING:3013,MEDIA_SOURCE_OPERATION_FAILED:3014,MEDIA_SOURCE_OPERATION_THREW:3015,VIDEO_ERROR:3016,QUOTA_EXCEEDED_ERROR:3017,TRANSMUXING_FAILED:3018,CONTENT_TRANSFORMATION_FAILED:3019,TRANSMUXING_NO_VIDEO_DATA:3023,STREAMING_NOT_ALLOWED:3024,BUFFER_WRITE_OUT_OF_BOUNDS:3025,UNABLE_TO_GUESS_MANIFEST_TYPE:4e3,DASH_INVALID_XML:4001,DASH_NO_SEGMENT_INFO:4002,DASH_EMPTY_ADAPTATION_SET:4003,DASH_EMPTY_PERIOD:4004,DASH_WEBM_MISSING_INIT:4005,DASH_UNSUPPORTED_CONTAINER:4006,DASH_PSSH_BAD_ENCODING:4007,DASH_NO_COMMON_KEY_SYSTEM:4008,DASH_MULTIPLE_KEY_IDS_NOT_SUPPORTED:4009,DASH_CONFLICTING_KEY_IDS:4010,RESTRICTIONS_CANNOT_BE_MET:4012,HLS_PLAYLIST_HEADER_MISSING:4015,INVALID_HLS_TAG:4016,HLS_INVALID_PLAYLIST_HIERARCHY:4017,DASH_DUPLICATE_REPRESENTATION_ID:4018,HLS_MULTIPLE_MEDIA_INIT_SECTIONS_FOUND:4020,HLS_REQUIRED_ATTRIBUTE_MISSING:4023,HLS_REQUIRED_TAG_MISSING:4024,HLS_COULD_NOT_GUESS_CODECS:4025,HLS_KEYFORMATS_NOT_SUPPORTED:4026,DASH_UNSUPPORTED_XLINK_ACTUATE:4027,DASH_XLINK_DEPTH_LIMIT:4028,CONTENT_UNSUPPORTED_BY_BROWSER:4032,CANNOT_ADD_EXTERNAL_TEXT_TO_LIVE_STREAM:4033,NO_VARIANTS:4036,PERIOD_FLATTENING_FAILED:4037,INCONSISTENT_DRM_ACROSS_PERIODS:4038,HLS_VARIABLE_NOT_FOUND:4039,HLS_MSE_ENCRYPTED_MP2T_NOT_SUPPORTED:4040,HLS_MSE_ENCRYPTED_LEGACY_APPLE_MEDIA_KEYS_NOT_SUPPORTED:4041,NO_WEB_CRYPTO_API:4042,CANNOT_ADD_EXTERNAL_THUMBNAILS_TO_LIVE_STREAM:4045,AES_128_INVALID_IV_LENGTH:4048,AES_128_INVALID_KEY_LENGTH:4049,DASH_CONFLICTING_AES_128:4050,DASH_UNSUPPORTED_AES_128:4051,DASH_INVALID_PATCH:4052,HLS_EMPTY_MEDIA_PLAYLIST:4053,DASH_MSE_ENCRYPTED_LEGACY_APPLE_MEDIA_KEYS_NOT_SUPPORTED:4054,CANNOT_ADD_EXTERNAL_CHAPTERS_TO_LIVE_STREAM:4055,WEBTRANSPORT_NOT_AVAILABLE:4056,WEBTRANSPORT_INITIALIZATION_FAILED:4057,MSF_VOD_CONTENT_NOT_SUPPORTED:4058,HLS_INVALID_KEY_IV_FOR_GCM:4059,HLS_INVALID_GCM_SEGMENT:4060,DASH_INVALID_JSON:4061,MSF_NO_CATALOG:4062,DASH_UNSUPPORTED_ESSENTIAL_PROPERTY:4063,MSF_CATALOG_TIMEOUT:4064,STREAMING_ENGINE_STARTUP_INVALID_STATE:5006,NO_RECOGNIZED_KEY_SYSTEMS:6e3,REQUESTED_KEY_SYSTEM_CONFIG_UNAVAILABLE:6001,FAILED_TO_CREATE_CDM:6002,FAILED_TO_ATTACH_TO_VIDEO:6003,INVALID_SERVER_CERTIFICATE:6004,FAILED_TO_CREATE_SESSION:6005,FAILED_TO_GENERATE_LICENSE_REQUEST:6006,LICENSE_REQUEST_FAILED:6007,LICENSE_RESPONSE_REJECTED:6008,ENCRYPTED_CONTENT_WITHOUT_DRM_INFO:6010,NO_LICENSE_SERVER_GIVEN:6012,OFFLINE_SESSION_REMOVED:6013,EXPIRED:6014,SERVER_CERTIFICATE_REQUIRED:6015,INIT_DATA_TRANSFORM_ERROR:6016,SERVER_CERTIFICATE_REQUEST_FAILED:6017,MIN_HDCP_VERSION_NOT_MATCH:6018,ERROR_CHECKING_HDCP_VERSION:6019,MISSING_EME_SUPPORT:6020,LOAD_INTERRUPTED:7e3,OPERATION_ABORTED:7001,NO_VIDEO_ELEMENT:7002,OBJECT_DESTROYED:7003,CONTENT_NOT_LOADED:7004,SRC_EQUALS_PRELOAD_NOT_SUPPORTED:7005,PRELOAD_DESTROYED:7006,QUEUE_INDEX_OUT_OF_BOUNDS:7007,CAST_API_UNAVAILABLE:8e3,NO_CAST_RECEIVERS:8001,ALREADY_CASTING:8002,UNEXPECTED_CAST_ERROR:8003,CAST_CANCELED_BY_USER:8004,CAST_CONNECTION_TIMED_OUT:8005,CAST_RECEIVER_APP_UNAVAILABLE:8006,STORAGE_NOT_SUPPORTED:9e3,INDEXED_DB_ERROR:9001,DEPRECATED_OPERATION_ABORTED:9002,REQUESTED_ITEM_NOT_FOUND:9003,MALFORMED_OFFLINE_URI:9004,CANNOT_STORE_LIVE_OFFLINE:9005,NO_INIT_DATA_FOR_OFFLINE:9007,LOCAL_PLAYER_INSTANCE_REQUIRED:9008,NEW_KEY_OPERATION_NOT_SUPPORTED:9011,KEY_NOT_FOUND:9012,MISSING_STORAGE_CELL:9013,STORAGE_LIMIT_REACHED:9014,DOWNLOAD_SIZE_CALLBACK_ERROR:9015,MODIFY_OPERATION_NOT_SUPPORTED:9016,INDEXED_DB_INIT_TIMED_OUT:9017,CS_IMA_SDK_MISSING:1e4,SS_IMA_SDK_MISSING:10002,CURRENT_DAI_REQUEST_NOT_FINISHED:10004,VAST_INVALID_XML:10007,CS_AD_CONTAINER_MISSING:10008,SS_AD_CONTAINER_MISSING:10009,MEDIATAILOR_REQUEST_FAILED:10010});var h=Ii;/*! @license
42
+ * Shaka Player
43
+ * Copyright 2016 Google LLC
44
+ * SPDX-License-Identifier: Apache-2.0
45
+ */var q=class y{static fromUTF8(e){if(!e)return"";let t=D.toUint8(e);if(t[0]==239&&t[1]==187&&t[2]==191&&(t=t.subarray(3)),self.TextDecoder&&!j.getDevice().shouldAvoidUseTextDecoderEncoder()){let r=new TextDecoder().decode(t);return r.includes("\uFFFD")&&p.alwaysError('Decoded string contains an "unknown character" codepoint. That probably means the UTF8 encoding was incorrect!'),r}else{let i="";for(let r=0;r<t.length;++r){let s=65533;if((t[r]&128)==0?s=t[r]:t.length>=r+2&&(t[r]&224)==192&&(t[r+1]&192)==128?(s=(t[r]&31)<<6|t[r+1]&63,r+=1):t.length>=r+3&&(t[r]&240)==224&&(t[r+1]&192)==128&&(t[r+2]&192)==128?(s=(t[r]&15)<<12|(t[r+1]&63)<<6|t[r+2]&63,r+=2):t.length>=r+4&&(t[r]&241)==240&&(t[r+1]&192)==128&&(t[r+2]&192)==128&&(t[r+3]&192)==128&&(s=(t[r]&7)<<18|(t[r+1]&63)<<12|(t[r+2]&63)<<6|t[r+3]&63,r+=3),s<=65535)i+=String.fromCharCode(s);else{let n=s-65536,a=n>>10,o=n&1023;i+=String.fromCharCode(55296+a),i+=String.fromCharCode(56320+o)}}return i}}static fromUTF16(e,t,i){if(!e)return"";if(!i&&e.byteLength%2!=0)throw p.error("Data has an incorrect length, must be even."),new h(h.Severity.CRITICAL,h.Category.TEXT,h.Code.BAD_ENCODING);let r=Math.floor(e.byteLength/2),s=new Uint16Array(r),n=D.toDataView(e);for(let a=0;a<r;a++)s[a]=n.getUint16(a*2,t);return y.fromCharCode(s)}static fromBytesAutoDetect(e){if(!e)return"";let t=D.toUint8(e);if(t[0]==239&&t[1]==187&&t[2]==191)return y.fromUTF8(t);if(t[0]==254&&t[1]==255)return y.fromUTF16(t.subarray(2),!1);if(t[0]==255&&t[1]==254)return y.fromUTF16(t.subarray(2),!0);let i=r=>t.byteLength<=r||t[r]>=9&&t[r]<=126;if(p.debug("Unable to find byte-order-mark, making an educated guess."),t[0]==0&&t[2]==0)return y.fromUTF16(e,!1);if(t[1]==0&&t[3]==0)return y.fromUTF16(e,!0);if(i(0)&&i(1)&&i(2)&&i(3))return y.fromUTF8(e);throw new h(h.Severity.CRITICAL,h.Category.TEXT,h.Code.UNABLE_TO_DETECT_ENCODING)}static toUTF8(e){if(self.TextEncoder&&!j.getDevice().shouldAvoidUseTextDecoderEncoder()){let t=new TextEncoder;return D.toArrayBuffer(t.encode(e))}else{let t=encodeURIComponent(e),i=unescape(t),r=new Uint8Array(i.length);for(let s=0;s<i.length;s++){let n=i[s];r[s]=n.charCodeAt(0)}return D.toArrayBuffer(r)}}static toUTF16(e,t){let i=new ArrayBuffer(e.length*2),r=new DataView(i);for(let s=0;s<e.length;++s){let n=e.charCodeAt(s);r.setUint16(s*2,n,t)}return i}static fromCharCode(e){return y.fromCharCodeImpl_.value()(e)}static resetFromCharCode(){y.fromCharCodeImpl_.reset()}static htmlUnescape(e){let t={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&apos;":"'","&nbsp;":"\xA0","&lrm;":"\u200E","&rlm;":"\u200F"},i=/&(?:amp|lt|gt|quot|apos|nbsp|lrm|rlm|#[xX]?[0-9a-fA-F]+);/g,r=RegExp(i.source);return e&&r.test(e)?e.replace(i,s=>{if(s[1]=="#"){let n=0;return s[2]=="x"||s[2]=="X"?n=parseInt(s.substring(3),16):n=parseInt(s.substring(2),10),n>=0&&n<=1114111?String.fromCodePoint(n):""}return t[s]||"'"}):e||""}};q.fromCharCodeImpl_=new _e(()=>{let y=e=>{try{let t=new Uint8Array(e),i=String.fromCharCode.apply(null,t);return v.assert(i,"Should get value"),i.length>0}catch(t){return!1}};for(let e=64*1024;e>0;e/=2)if(y(e))return t=>{let i="";for(let r=0;r<t.length;r+=e){let s=t.subarray(r,r+e);i+=String.fromCharCode.apply(null,s)}return i};return v.assert(!1,"Unable to create a fromCharCode method"),null});/*! @license
46
+ * Shaka Player
47
+ * Copyright 2016 Google LLC
48
+ * SPDX-License-Identifier: Apache-2.0
49
+ */var ne=class y{static toStandardBase64(e){let t=D.toUint8(e);if(!Uint8Array.prototype.toBase64){let i=q.fromCharCode(t);return btoa(i)}return t.toBase64({alphabet:"base64",omitPadding:!1})}static toBase64(e,t){if(t=t==null?!0:t,!Uint8Array.prototype.toBase64){let r=y.toStandardBase64(e).replace(/\+/g,"-").replace(/\//g,"_");return t?r:r.replace(/[=]*$/,"")}return D.toUint8(e).toBase64({alphabet:"base64url",omitPadding:!t})}static fromBase64(e){if(!("fromBase64"in Uint8Array)){let r=self.atob(e.replace(/-/g,"+").replace(/_/g,"/")),s=new Uint8Array(r.length);for(let n=0;n<r.length;++n)s[n]=r.charCodeAt(n);return s}let t=e.replace(/\s+/g,""),i=/[-_]/.test(t);return Uint8Array.fromBase64(t,{alphabet:i?"base64url":"base64"})}static fromHex(e){if(!("fromHex"in Uint8Array)){let t=e.length/2,i=new Uint8Array(t);for(let r=0;r<t;r++)i[r]=parseInt(e.substr(r*2,2),16);return i}return Uint8Array.fromHex(e)}static toHex(e){let t=D.toUint8(e);if(!Uint8Array.prototype.toHex){let i="";for(let r of t)r=r.toString(16),r.length==1&&(r="0"+r),i+=r;return i}return t.toHex()}static concat(...e){return y.concatRange(e,0,e.length)}static concatRange(e,t=0,i=e.length){let r=0;for(let a=t;a<i;++a)r+=e[a].byteLength;let s=new Uint8Array(r),n=0;for(let a=t;a<i;++a){let o=e[a];ArrayBuffer.isView(o)&&o.BYTES_PER_ELEMENT===1?s.set(o,n):s.set(D.toUint8(o),n),n+=o.byteLength}return s}static removeEmulationPreventionBytes(e){let t=new Uint8Array(e.length),i=0,r=0;for(let s=0;s<e.length;s++){let n=e[s];if(i>=2&&n==3){i=0;continue}t[r++]=n,n==0?i++:i=0}return t.subarray(0,r)}};/*! @license
50
+ * Shaka Player
51
+ * Copyright 2016 Google LLC
52
+ * SPDX-License-Identifier: Apache-2.0
53
+ */var Vt=class Vt{static isBrowserSupported(){return!!window.MediaKeys&&!!window.navigator&&!!window.navigator.requestMediaKeySystemAccess&&!!window.MediaKeySystemAccess&&!!window.MediaKeySystemAccess.prototype.getConfiguration}static areDrmCompatible(e,t){if(e===t||!e.length||!t.length)return!0;for(let i of e){if(Vt.isClearKeyWihRawKey(i))return!0;for(let r of t)if(i.keySystem===r.keySystem||Vt.isClearKeyWihRawKey(r))return!0}return!1}static getCommonDrmInfos(e,t){if(!e.length)return t;if(!t.length)return e;let i=[];for(let r of e)for(let s of t)if(r.keySystem==s.keySystem){let n=new Map,a=(r.initData||[]).concat(s.initData||[]);for(let u of a)n.set(u.keyId,u);let o=Array.from(n.values()),c=r.keyIds&&s.keyIds?new Set([...r.keyIds,...s.keyIds]):r.keyIds||s.keyIds,d={keySystem:r.keySystem,licenseServerUri:r.licenseServerUri||s.licenseServerUri,distinctiveIdentifierRequired:r.distinctiveIdentifierRequired||s.distinctiveIdentifierRequired,persistentStateRequired:r.persistentStateRequired||s.persistentStateRequired,videoRobustness:r.videoRobustness||s.videoRobustness,audioRobustness:r.audioRobustness||s.audioRobustness,serverCertificate:r.serverCertificate||s.serverCertificate,serverCertificateUri:r.serverCertificateUri||s.serverCertificateUri,initData:o,keyIds:c};i.push(d);break}else Vt.isClearKeyWihRawKey(r)?i.push(r):Vt.isClearKeyWihRawKey(s)&&i.push(s);return i}static keySystem(e){return e?e.keySystem:""}static isClearKeySystem(e){return e==="org.w3.clearkey"}static isWidevineKeySystem(e){return e?!!e.match(/^com\.widevine\.alpha/):!1}static isPlayReadyKeySystem(e){return e?!!e.match(/^com\.(microsoft|chromecast)\.playready/):!1}static isFairPlayKeySystem(e){return e?!!e.match(/^com\.apple\.fps/):!1}static isWisePlayKeySystem(e){return e==="com.huawei.wiseplay"}static isClearKeyWihRawKey(e){let t=e.licenseServerUri;return t?t.startsWith("data:application/json;base64,"):!1}static generateKeySystemCacheKey_(e,t,i,r){let n=[...new Set(r)].sort().join("#");return`${e}#${t}#${i}#${n}`}static hasMediaKeySystemAccess(e,t,i,r){let s=Vt.generateKeySystemCacheKey_(e,t,i,r);return Vt.memoizedMediaKeySystemAccessRequests_.has(s)}static getMediaKeySystemAccess(e,t,i,r){let s=Vt.generateKeySystemCacheKey_(e,t,i,r);return Vt.memoizedMediaKeySystemAccessRequests_.get(s)||null}static setMediaKeySystemAccess(e,t,i,r,s){let n=Vt.generateKeySystemCacheKey_(e,t,i,r);Vt.memoizedMediaKeySystemAccessRequests_.set(n,s)}static clearMediaKeySystemAccessMap(){Vt.memoizedMediaKeySystemAccessRequests_.clear()}static isMediaKeysPolyfilled(e){return e===window.shakaMediaKeysPolyfill}static getUuidMap(e=!1,t=!1){let i={"1077efec-c0b2-4d02-ace3-3c1e52e2fb4b":"org.w3.clearkey","e2719d58-a985-b3c9-781a-b030af78d30e":"org.w3.clearkey","edef8ba9-79d6-4ace-a3c8-27dcd51d21ed":"com.widevine.alpha","9a04f079-9840-4286-ab92-e65be0885f95":"com.microsoft.playready","79f0049a-4098-8642-ab92-e65be0885f95":"com.microsoft.playready","94ce86fb-07ff-4f43-adb8-93d2fa968ca2":"com.apple.fps","3d5e6d35-9b9a-41e8-b843-dd3c6e72c42c":"com.huawei.wiseplay"};if(!e&&!t)return i;let r={};for(let s in i){let n=i[s],a=s;t?a="urn:uuid:"+s:e&&(a=s.replace(/-/g,"")),r[a]=n}return r}static normalizeClearKeyValue(e){return e.length===Vt.CLEAR_KEY_BASE64URL_LENGTH_?e:ne.toBase64(ne.fromHex(e),!1)}};l(Vt,"memoizedMediaKeySystemAccessRequests_",new Map),l(Vt,"CLEAR_KEY_BASE64URL_LENGTH_",22);var de=Vt;de.DUMMY_KEY_ID=new _e(()=>D.toArrayBuffer(new Uint8Array([0])));/*! @license
54
+ * Shaka Player
55
+ * Copyright 2016 Google LLC
56
+ * SPDX-License-Identifier: Apache-2.0
57
+ */var ae=class y{constructor(e){l(this,"onTick_");l(this,"cancelPending_");this.onTick_=e,this.cancelPending_=null}tickNow(){return this.stop(),this.onTick_(),this}tickAfter(e){return this.stop(),this.schedule_(()=>{this.onTick_()},e),this}tickEvery(e){if(this.stop(),Fe){let t=Error("Timer created").stack;y.activeTimers.set(this,t)}return this.scheduleRepeating_(e),this}stop(){var e;(e=this.cancelPending_)==null||e.call(this),this.cancelPending_=null,Fe&&y.activeTimers.delete(this)}schedule_(e,t){let i=!0,r=null;this.cancelPending_=()=>{clearTimeout(r),i=!1},r=setTimeout(()=>{i&&e()},t*1e3)}scheduleRepeating_(e){this.schedule_(()=>{this.scheduleRepeating_(e),this.onTick_()},e)}};Fe&&(ae.activeTimers=new Map);/*! @license
58
+ * Shaka Player
59
+ * Copyright 2016 Google LLC
60
+ * SPDX-License-Identifier: Apache-2.0
61
+ */var xr=class y{constructor(e,t=!1){l(this,"maxAttempts_");l(this,"baseDelay_");l(this,"fuzzFactor_");l(this,"backoffFactor_");l(this,"numAttempts_");l(this,"nextUnfuzzedDelay_");l(this,"autoReset_");let i=y.defaultRetryParameters();this.maxAttempts_=e.maxAttempts==null?i.maxAttempts:e.maxAttempts,v.assert(this.maxAttempts_>=1,"maxAttempts should be >= 1"),this.baseDelay_=e.baseDelay==null?i.baseDelay:e.baseDelay,v.assert(this.baseDelay_>=0,"baseDelay should be >= 0"),this.fuzzFactor_=e.fuzzFactor==null?i.fuzzFactor:e.fuzzFactor,v.assert(this.fuzzFactor_>=0,"fuzzFactor should be >= 0"),this.backoffFactor_=e.backoffFactor==null?i.backoffFactor:e.backoffFactor,v.assert(this.backoffFactor_>=0,"backoffFactor should be >= 0"),this.numAttempts_=0,this.nextUnfuzzedDelay_=this.baseDelay_,this.autoReset_=t,this.autoReset_&&(v.assert(this.maxAttempts_>=2,"maxAttempts must be >= 2 for autoReset == true"),this.numAttempts_=1)}async attempt(){if(this.numAttempts_>=this.maxAttempts_)if(this.autoReset_)this.reset_();else throw new h(h.Severity.CRITICAL,h.Category.PLAYER,h.Code.ATTEMPTS_EXHAUSTED);let e=this.numAttempts_;if(this.numAttempts_++,e==0){v.assert(!this.autoReset_,"Failed to delay with auto-reset!");return}let t=y.fuzz_(this.nextUnfuzzedDelay_,this.fuzzFactor_);await new Promise(i=>{y.defer(t,i)}),this.nextUnfuzzedDelay_*=this.backoffFactor_}static defaultRetryParameters(){return{maxAttempts:2,baseDelay:1e3,backoffFactor:2,fuzzFactor:.5,timeout:3e4,stallTimeout:5e3,connectionTimeout:1e4}}static fuzz_(e,t){let r=(Math.random()*2-1)*t;return e*(1+r)}reset_(){v.assert(this.autoReset_,"Should only be used for auto-reset!"),this.numAttempts_=1,this.nextUnfuzzedDelay_=this.baseDelay_}static defer(e,t){new ae(t).tickAfter(e/1e3)}};/*! @license
62
+ * Shaka Player
63
+ * Copyright 2016 Google LLC
64
+ * SPDX-License-Identifier: Apache-2.0
65
+ */var je=class y{constructor(e,t){l(this,"promise");l(this,"onAbort_");l(this,"abortPromise_");this.promise=e,this.onAbort_=t,this.abortPromise_=null}get aborted(){return this.abortPromise_!==null}static failed(e){return new y(Promise.reject(e),()=>Promise.resolve())}static aborted(){let e=Promise.reject(y.abortError());return e.catch(()=>{}),new y(e,()=>Promise.resolve())}static abortError(){return new h(h.Severity.CRITICAL,h.Category.PLAYER,h.Code.OPERATION_ABORTED)}static completed(e){return new y(Promise.resolve(e),()=>Promise.resolve())}static notAbortable(e){return new y(e,()=>e.catch(()=>{}))}abort(){return this.abortPromise_||(this.abortPromise_=this.onAbort_()),this.abortPromise_}static all(e){return new y(Promise.all(e.map(t=>t.promise)),()=>Promise.all(e.map(t=>t.abort())))}finally(e){return this.promise.then(t=>e(!0),t=>e(!1)),this}chain(e,t){let i=Promise.withResolvers();i.promise.catch(()=>{});let r=y.abortError(),s=()=>(i.reject(r),this.abort()),n=a=>o=>{if(this.abortPromise_&&a){i.reject(r);return}let c=a?e:t;if(!c){(a?i.resolve:i.reject)(o);return}s=y.wrapChainCallback_(c,o,i)};return this.promise.then(n(!0),n(!1)),new y(i.promise,()=>s())}static wrapChainCallback_(e,t,i){try{let r=e(t);return r&&r.promise&&r.abort?(i.resolve(r.promise),()=>r.abort()):(i.resolve(r),()=>Promise.resolve(r).then(()=>{},()=>{}))}catch(r){return i.reject(r),()=>Promise.resolve()}}};/*! @license
66
+ * Shaka Player
67
+ * Copyright 2016 Google LLC
68
+ * SPDX-License-Identifier: Apache-2.0
69
+ */var Ts=class Ts{constructor(e,t){l(this,"bubbles");l(this,"cancelable");l(this,"defaultPrevented");l(this,"timeStamp");l(this,"type");l(this,"isTrusted");l(this,"currentTarget");l(this,"target");l(this,"stopped");if(t)if(t instanceof Map)for(let i of t.keys())Object.defineProperty(this,i,{value:t.get(i),writable:!0,enumerable:!0});else{let i=Ts.recastDictAsObject_(t);for(let r in i)Object.defineProperty(this,r,{value:i[r],writable:!0,enumerable:!0})}this.bubbles=!1,this.cancelable=!1,this.defaultPrevented=!1,this.timeStamp=window.performance&&window.performance.now?window.performance.now():Date.now(),this.type=e,this.isTrusted=!1,this.currentTarget=null,this.target=null,this.stopped=!1}static fromRealEvent(e){let t=new Ts(e.type);for(let i in e)Object.defineProperty(t,i,{value:e[i],writable:!0,enumerable:!0});return t}static recastDictAsObject_(e){return v.assert(!(e instanceof Map),"dict should not be a map"),e}preventDefault(){this.cancelable&&(this.defaultPrevented=!0)}stopImmediatePropagation(){this.stopped=!0}stopPropagation(){}};l(Ts,"EventName",{AbrStatusChanged:"abrstatuschanged",Adaptation:"adaptation",AudioTrackChanged:"audiotrackchanged",AudioTracksChanged:"audiotrackschanged",BoundaryCrossed:"boundarycrossed",Buffering:"buffering",BufferAppending:"bufferappending",CanUpdateStartTime:"canupdatestarttime",Complete:"complete",ConfigurationChanged:"configurationchanged",CurrentItemChanged:"currentitemchanged",DownloadCompleted:"downloadcompleted",DownloadFailed:"downloadfailed",DownloadHeadersReceived:"downloadheadersreceived",DrmSessionUpdate:"drmsessionupdate",Emsg:"emsg",ItemsInserted:"itemsinserted",ItemsRemoved:"itemsremoved",Prft:"prft",Error:"error",ExpirationUpdated:"expirationupdated",FirstQuartile:"firstquartile",GapJumped:"gapjumped",KeyStatusChanged:"keystatuschanged",Loaded:"loaded",Loading:"loading",ManifestParsed:"manifestparsed",ManifestUpdated:"manifestupdated",MediaQualityChanged:"mediaqualitychanged",MediaSourceRecovered:"mediasourcerecovered",MetadataAdded:"metadataadded",Metadata:"metadata",Midpoint:"midpoint",NoSpatialVideoInfoEvent:"nospatialvideoinfo",OnStateChange:"onstatechange",ProgramInformation:"programinformation",RateChange:"ratechange",SegmentAppended:"segmentappended",SessionDataEvent:"sessiondata",SpatialVideoInfoEvent:"spatialvideoinfo",StallDetected:"stalldetected",Started:"started",StateChanged:"statechanged",Streaming:"streaming",TextChanged:"textchanged",ThirdQuartile:"thirdquartile",TimelineChanged:"timelinechange",TimelineRegionAdded:"timelineregionadded",TimelineRegionEnter:"timelineregionenter",TimelineRegionExit:"timelineregionexit",TracksChanged:"trackschanged",Unloading:"unloading",VariantChanged:"variantchanged"});var U=Ts;/*! @license
70
+ * Shaka Player
71
+ * Copyright 2016 Google LLC
72
+ * SPDX-License-Identifier: Apache-2.0
73
+ *//*! @license
74
+ * Shaka Player
75
+ * Copyright 2016 Google LLC
76
+ * SPDX-License-Identifier: Apache-2.0
77
+ */var lr=class{constructor(){l(this,"map_");this.map_=new Map}push(e,t){this.map_.getOrInsertComputed(e,()=>[]).push(t)}get(e){return this.map_.has(e)?this.map_.get(e).slice():null}getAll(){let e=[];for(let t of this.map_.values())e.push(...t);return e}remove(e,t){if(!this.map_.has(e))return;let i=this.map_.get(e).filter(r=>r!=t);this.map_.set(e,i),i.length||this.map_.delete(e)}clear(){this.map_.clear()}forEach(e){this.map_.forEach((t,i)=>{e(i,t)})}size(){return this.map_.size}keys(){return Array.from(this.map_.keys())}};/*! @license
78
+ * Shaka Player
79
+ * Copyright 2016 Google LLC
80
+ * SPDX-License-Identifier: Apache-2.0
81
+ */var vs=class vs{constructor(){l(this,"listeners_");l(this,"dispatchTarget");this.listeners_=new lr,this.dispatchTarget=this}addEventListener(e,t,i){this.listeners_&&this.listeners_.push(e,t)}listenToAllEvents(e){this.addEventListener(vs.ALL_EVENTS,e)}removeEventListener(e,t,i){this.listeners_&&this.listeners_.remove(e,t)}dispatchEvent(e){if(v.assert(e instanceof U,"FakeEventTarget can only dispatch FakeEvents!"),!this.listeners_)return!0;let t=this.listeners_.get(e.type)||[],i=this.listeners_.get(vs.ALL_EVENTS);i&&(t=t.concat(i));for(let r of t){e.target=this.dispatchTarget,e.currentTarget=this.dispatchTarget;try{r.handleEvent?r.handleEvent(e):r.call(this,e)}catch(s){p.error("Uncaught exception in event handler",s,s?s.message:null,s?s.stack:null)}if(e.stopped)break}return e.defaultPrevented}release(){this.listeners_=null}};l(vs,"ALL_EVENTS","__shaka_all_events__");var Le=vs;/*! @license
82
+ * Shaka Player
83
+ * Copyright 2016 Google LLC
84
+ * SPDX-License-Identifier: Apache-2.0
85
+ *//*! @license
86
+ * Shaka Player
87
+ * Copyright 2016 Google LLC
88
+ * SPDX-License-Identifier: Apache-2.0
89
+ */var Ne=class y{static cloneObject(e){let t=new WeakSet,i=r=>{switch(typeof r){case"undefined":case"boolean":case"number":case"string":case"symbol":case"function":return r;default:{if(!r||ArrayBuffer.isView(r))return r;if(t.has(r))return null;let n=Array.isArray(r);if(r.constructor!=Object&&!n)return null;t.add(r);let a=n?[]:{};for(let o in r)a[o]=i(r[o]);return n&&(a.length=r.length),a}}};return i(e)}static shallowCloneObject(e){let t={};for(let i in e)t[i]=e[i];return t}static alphabeticalKeyOrderStringify(e){return Array.isArray(e)?y.arrayStringify_(e):typeof e=="function"?"":e instanceof Object?y.objectStringify_(e):JSON.stringify(e)}static objectStringify_(e){let t=Object.keys(e);t.sort();let i=[];for(let r of t){let s=JSON.stringify(r),n=e[r];if(n!==void 0){let a=y.alphabeticalKeyOrderStringify(n);a&&i.push(s+":"+a)}}return"{"+i.join(",")+"}"}static arrayStringify_(e){let t=[];for(let i=0;i<e.length;i++){let r=i.toString(),s=e[i];if(s!==void 0){let n=y.alphabeticalKeyOrderStringify(s);n&&t.push(r+":"+n)}}return"["+t.join(",")+"]"}};/*! @license
90
+ * Shaka Player
91
+ * Copyright 2016 Google LLC
92
+ * SPDX-License-Identifier: Apache-2.0
93
+ */var ye=class y{static defaultEquals(e,t){return typeof e=="number"&&typeof t=="number"&&isNaN(e)&&isNaN(t)?!0:e===t}static remove(e,t){let i=e.indexOf(t);i>-1&&e.splice(i,1)}static count(e,t){let i=0;for(let r of e)i+=t(r)?1:0;return i}static hasSameElements(e,t,i){if(i||(i=y.defaultEquals),e.length!=t.length)return!1;let r=t.slice();for(let s of e){let n=r.findIndex(a=>i(s,a));if(n==-1)return!1;r[n]=r[r.length-1],r.pop()}return r.length==0}static partition(e,t){let i=[],r=[];for(let s of e)t(s)?i.push(s):r.push(s);return[i,r]}static binarySearch(e,t){let i=0,r=e.length;for(;i<r;){let s=i+r>>>1;t(e[s])?i=s+1:r=s}return i}static equal(e,t,i){if(e===t)return!0;if(!e||!t)return e==t;if(i||(i=y.defaultEquals),e.length!=t.length)return!1;for(let r=0;r<e.length;r++)if(!i(e[r],t[r]))return!1;return!0}};/*! @license
94
+ * Shaka Player
95
+ * Copyright 2016 Google LLC
96
+ * SPDX-License-Identifier: Apache-2.0
97
+ */var gi=class{constructor(){l(this,"operations_");this.operations_=[]}manage(e){this.operations_.push(e.finally(()=>{ye.remove(this.operations_,e)}))}destroy(){let e=[];for(let t of this.operations_)t.promise.catch(()=>{}),e.push(t.abort());return this.operations_=[],Promise.all(e)}};/*! @license
98
+ * Shaka Player
99
+ * Copyright 2016 Google LLC
100
+ * SPDX-License-Identifier: Apache-2.0
101
+ */var fe=class{static resolve(e,t){return new URL(t,e).toString()}static resolveUris(e,t,i=""){if(t.length==0)return e;let r=[];for(let s of e)for(let n of t){let a=new URL(n,s);if(i){let o=new URLSearchParams(i);for(let[c,d]of o.entries())a.searchParams.append(c,d)}r.push(a.toString())}return r}static getScheme(e){try{let i=new URL(e).protocol.slice(0,-1);if(i&&e.toLowerCase().startsWith(i+":"))return i}catch(i){}let t=e.match(/^([a-zA-Z][a-zA-Z0-9+.-]*):/);return t?t[1].toLowerCase():""}static setScheme(e,t){try{let r=new URL(e);if(r.protocol=t,r.protocol===t+":")return r.toString()}catch(r){}let i=e.indexOf(":");return i===-1?t+":"+e:t+e.slice(i)}static getDomain(e){try{let i=new URL(e).hostname;if(i)return i}catch(i){}let t=e.match(/^[a-zA-Z][a-zA-Z0-9+.-]*:\/\/([^/?#]*)/);return t?t[1]:""}static setDomain(e,t){let i=new URL(e);return i.hostname=t,i.toString()}static applyUrlParams(e,t){let i=t==null?void 0:t();if(!i)return e;let r=new URL(e);for(let[s,n]of new URLSearchParams(i))r.searchParams.set(s,n);return r.toString()}static appendParams(e,t){if(!t.size)return e;let i=new URL(e);for(let[r,s]of t.entries())i.searchParams.set(r,s);return i.toString()}};/*! @license
102
+ * Shaka Player
103
+ * Copyright 2016 Google LLC
104
+ * SPDX-License-Identifier: Apache-2.0
105
+ */var _i=class _i extends Le{constructor(t,i,r,s,n,a,o){super();l(this,"config_");l(this,"destroyed_");l(this,"operationManager_");l(this,"requestFilters_");l(this,"responseFilters_");l(this,"onProgressUpdated_");l(this,"onHeadersReceived_");l(this,"onDownloadCompleted_");l(this,"onDownloadFailed_");l(this,"onRequest_");l(this,"onRetry_");l(this,"onResponse_");l(this,"hostCommonAccessTokenMap_");this.config_=null,this.destroyed_=!1,this.operationManager_=new gi,this.requestFilters_=new Set,this.responseFilters_=new Set,this.onProgressUpdated_=t||null,this.onHeadersReceived_=i||null,this.onDownloadCompleted_=r||null,this.onDownloadFailed_=s||null,this.onRequest_=n||null,this.onRetry_=a||null,this.onResponse_=o||null,this.hostCommonAccessTokenMap_=new Map}configure(t){this.config_=t}static registerScheme(t,i,r,s=!1){v.assert(r==null||r>0,"explicit priority must be > 0"),r=r||_i.PluginPriority.APPLICATION;let n=_i.schemes_.get(t);(!n||r>=n.priority)&&_i.schemes_.set(t,{priority:r,plugin:i,progressSupport:s})}static unregisterScheme(t){_i.schemes_.delete(t)}copyFiltersInto(t){for(let i of this.requestFilters_)t.requestFilters_.add(i);for(let i of this.responseFilters_)t.responseFilters_.add(i)}registerRequestFilter(t){this.requestFilters_.add(t)}unregisterRequestFilter(t){this.requestFilters_.delete(t)}clearAllRequestFilters(){this.requestFilters_.clear()}registerResponseFilter(t){this.responseFilters_.add(t)}unregisterResponseFilter(t){this.responseFilters_.delete(t)}clearAllResponseFilters(){this.responseFilters_.clear()}clearCommonAccessTokenMap(){this.hostCommonAccessTokenMap_.clear()}static defaultRetryParameters(){return xr.defaultRetryParameters()}static makeRequest(t,i,r=null){return{uris:t,method:"GET",body:null,headers:{},allowCrossSiteCredentials:!1,retryParameters:i,licenseRequestType:null,sessionId:null,drmInfo:null,initData:null,initDataType:null,streamDataCallback:r,attempt:0}}destroy(){return this.destroyed_=!0,this.requestFilters_.clear(),this.responseFilters_.clear(),this.hostCommonAccessTokenMap_.clear(),super.release(),this.operationManager_.destroy()}request(t,i,r){let s=new _i.NumBytesRemainingClass;if(this.destroyed_){let m=Promise.reject(new h(h.Severity.CRITICAL,h.Category.PLAYER,h.Code.OPERATION_ABORTED));return m.catch(()=>{}),new Js(m,()=>Promise.resolve(),s)}v.assert(i.uris&&i.uris.length,"Request without URIs!"),i.method=i.method||"GET",i.headers=i.headers||{};let n=Ne.cloneObject(i.headers);i.retryParameters=i.retryParameters?Ne.cloneObject(i.retryParameters):_i.defaultRetryParameters(),i.uris=Ne.cloneObject(i.uris),i.attempt=0;let a=this.makeRequestWithRetry_(t,i,r,s,n),o=a.chain(m=>this.filterResponse_(t,m,r)),c=0;a.promise.then(()=>{c=Date.now()},()=>{});let d=o.chain(m=>{let f=Date.now()-c,g=m.response;if(g.timeMs+=f,!m.gotProgress&&this.onProgressUpdated_&&!g.fromCache&&i.method!="HEAD"&&t==Eo.SEGMENT){let _=this.allowSwitch_(r);this.onProgressUpdated_(g.timeMs,g.data.byteLength,_,i,r)}return this.onResponse_&&this.onResponse_(t,g,r),g},m=>{throw m&&(v.assert(m instanceof h,"Wrong error type"),m.severity=h.Severity.CRITICAL),m}),u=new Js(d.promise,()=>d.abort(),s);return this.operationManager_.manage(u),u}filterRequest_(t,i,r){let s=je.completed(void 0),n=a=>{s=s.chain(()=>(i.body&&(i.body=D.toArrayBuffer(i.body)),a(t,i,r)))};this.onRequest_&&n(this.onRequest_);for(let a of this.requestFilters_)n(a);return s.chain(void 0,a=>{throw a instanceof h&&a.code==h.Code.OPERATION_ABORTED?a:new h(h.Severity.CRITICAL,h.Category.NETWORK,h.Code.REQUEST_FILTER_ERROR,a)})}makeRequestWithRetry_(t,i,r,s,n){let a=new xr(i.retryParameters,!1);return this.send_(t,i,r,a,null,s,n)}send_(t,i,r,s,n,a,o){v.assert(this.config_,"Config must not be null!");let c=i.attempt%i.uris.length;i.headers=Ne.cloneObject(o);let d=this.filterRequest_(t,i,r),u=Date.now(),m=0;if(d.promise.then(()=>{m=Date.now()-u},()=>{}),this.config_.forceHTTP&&(i.uris[c]=i.uris[c].replace("https://","http://")),this.config_.forceHTTPS&&(i.uris[c]=i.uris[c].replace("http://","https://")),c>0&&this.onRetry_){let L=i.uris[c],V=i.uris[c-1];this.onRetry_(t,r,L,V)}let f=fe.getScheme(i.uris[c]),g=!1;f||(f=_i.getLocationProtocol_(),v.assert(f[f.length-1]==":","location.protocol expected to end with a colon!"),f=f.slice(0,-1),i.uris[c]=fe.setScheme(i.uris[c],f)),f=f.toLowerCase();let _=_i.schemes_.get(f),T=_?_.plugin:null;if(!T)return je.failed(new h(h.Severity.CRITICAL,h.Category.NETWORK,h.Code.UNSUPPORTED_SCHEME,i.uris[c]));let S=_.progressSupport,b=this.hostCommonAccessTokenMap_.get(fe.getDomain(i.uris[c]));b&&(i.headers[this.config_.commonAccessTokenHeaderName]=b);let E=d.chain(()=>je.notAbortable(s.attempt())),C=null,A=null,w=!1,M=!1,x;return E.chain(()=>{if(this.destroyed_)return je.aborted();x=Date.now();let L=Eo.SEGMENT,V=0,ee=(Z,ce,W)=>{if(C&&C.stop(),A&&A.tickAfter(J/1e3),this.onProgressUpdated_&&t==L){V++,i.packetNumber=V;let z=this.allowSwitch_(r);this.onProgressUpdated_(Z,ce,z,i,r),g=!0,a.setBytes(W)}},oe=Z=>{M=!0,i.timeToFirstByte=Date.now()-i.requestStartTime,this.onHeadersReceived_&&this.onHeadersReceived_(Z,i,t)};i.requestStartTime=Date.now();let le=T(i.uris[c],i,t,ee,oe,{minBytesForProgressEvents:this.config_.minBytesForProgressEvents});if(!S)return le;let H=i.retryParameters.connectionTimeout;H&&(C=new ae(()=>{w=!0,le.abort()}),C.tickAfter(H/1e3));let J=i.retryParameters.stallTimeout;return J&&(A=new ae(()=>{w=!0,le.abort()})),le}).chain(L=>{C&&C.stop(),A&&A.stop(),L.timeMs==null&&(L.timeMs=Date.now()-x,L.timeMs+=m);let V=L.headers[this.config_.commonAccessTokenHeaderName];V&&this.hostCommonAccessTokenMap_.set(fe.getDomain(L.uri),V);let ee={response:L,gotProgress:g};return M||this.onHeadersReceived_&&this.onHeadersReceived_(L.headers,i,t),this.onDownloadCompleted_&&this.onDownloadCompleted_(t,i,r,L),ee},L=>{if(C&&C.stop(),A&&A.stop(),this.onDownloadFailed_){let V=null,ee=0;L instanceof h&&(V=L,L.code==h.Code.BAD_HTTP_STATUS&&(ee=L.data[1])),this.onDownloadFailed_(t,i,r,V,ee,w)}if(this.destroyed_)return je.aborted();if(w&&(L=new h(h.Severity.RECOVERABLE,h.Category.NETWORK,h.Code.TIMEOUT,i.uris[c],t)),L instanceof h){if(L.code==h.Code.OPERATION_ABORTED)throw L;if(L.code==h.Code.ATTEMPTS_EXHAUSTED)throw v.assert(n,"Should have last error"),n;if(L.severity==h.Severity.RECOVERABLE){let V=new Map().set("error",L),ee=new U("retry",V);if(ee.cancelable=!0,this.dispatchEvent(ee),ee.defaultPrevented)throw L;return++i.attempt,this.send_(t,i,r,s,L,a,o)}}throw L})}filterResponse_(t,i,r){let s=je.completed(void 0);for(let n of this.responseFilters_)s=s.chain(()=>{let a=i.response;return a.data&&(a.data=D.toArrayBuffer(a.data)),n(t,a,r)});return s.chain(()=>i,n=>{let a=h.Severity.CRITICAL;if(n instanceof h){if(n.code==h.Code.OPERATION_ABORTED)throw n;a=n.severity}throw new h(a,h.Category.NETWORK,h.Code.RESPONSE_FILTER_ERROR,n)})}allowSwitch_(t){if(t){let i=t.segment,r=t.stream;if(i&&r&&r.fastSwitching&&i.isPartial())return!1}return!0}static getLocationProtocol_(){return location.protocol}};l(_i,"PluginPriority",{FALLBACK:1,PREFERRED:2,APPLICATION:3}),l(_i,"schemes_",new Map);var K=_i;K.NumBytesRemainingClass=class{constructor(){this.bytesToLoad_=0}setBytes(y){this.bytesToLoad_=y}getBytes(){return this.bytesToLoad_}};var Js=class extends je{constructor(t,i,r){super(t,i);l(this,"bytesRemaining_");this.bytesRemaining_=r}getBytesRemaining(){return this.bytesRemaining_.getBytes()}},Eo={MANIFEST:0,SEGMENT:1,LICENSE:2,APP:3,TIMING:4,SERVER_CERTIFICATE:5,KEY:6,ADS:7,CONTENT_STEERING:8,CMCD:9,SESSION_DATA:10,FINGERPRINT:11,PLAYLIST:12,EVENT_CALLBACK:13};/*! @license
106
+ * Shaka Player
107
+ * Copyright 2016 Google LLC
108
+ * SPDX-License-Identifier: Apache-2.0
109
+ */var ci=class y{constructor(e){l(this,"destroyed_");l(this,"waitOnDestroy_");l(this,"onDestroy_");this.destroyed_=!1,this.waitOnDestroy_=Promise.withResolvers(),this.onDestroy_=e}destroyed(){return this.destroyed_}destroy(){return this.destroyed_?this.waitOnDestroy_.promise:(this.destroyed_=!0,this.onDestroy_().then(()=>{this.waitOnDestroy_.resolve()},()=>{this.waitOnDestroy_.resolve()}))}ensureNotDestroyed(e){if(this.destroyed_)throw e instanceof h&&e.code==h.Code.OBJECT_DESTROYED?e:y.destroyedError(e)}static destroyedError(e){return new h(h.Severity.CRITICAL,h.Category.PLAYER,h.Code.OBJECT_DESTROYED,e)}};/*! @license
110
+ * Shaka Player
111
+ * Copyright 2016 Google LLC
112
+ * SPDX-License-Identifier: Apache-2.0
113
+ */var ue=class y{constructor(){l(this,"bindingMap_");this.bindingMap_=new lr}release(){this.removeAll(),this.bindingMap_=null}listen(e,t,i,r){if(!this.bindingMap_)return;let s=new y.Binding_(e,t,i,r);this.bindingMap_.push(t,s)}listenOnce(e,t,i,r){let s=n=>{this.unlisten(e,t,s),i(n)};this.listen(e,t,s,r)}listenMulti(e,t,i,r){if(this.bindingMap_)for(let s of t)this.listen(e,s,i,r)}listenOnceMulti(e,t,i,r){if(!this.bindingMap_)return;let s=!1,n=a=>{if(!s){s=!0;for(let o of t)this.unlisten(e,o,n);i(a)}};for(let a of t)this.listen(e,a,n,r)}unlisten(e,t,i){if(!this.bindingMap_)return;let r=this.bindingMap_.get(t)||[];for(let s of r)s.target==e&&(i==s.listener||!i)&&(s.unlisten(),this.bindingMap_.remove(t,s))}unlistenMulti(e,t,i){if(this.bindingMap_)for(let r of t)this.unlisten(e,r,i)}removeAll(){if(!this.bindingMap_)return;let e=this.bindingMap_.getAll();for(let t of e)t.unlisten();this.bindingMap_.clear()}};ue.Binding_=class{constructor(y,e,t,i){this.target=y,this.type=e,this.listener=t,this.options=ue.Binding_.convertOptions_(y,i),this.target.addEventListener(e,t,this.options)}unlisten(){v.assert(this.target,"Missing target"),this.target.removeEventListener(this.type,this.listener,this.options),this.target=null,this.listener=null,this.options=!1}static convertOptions_(y,e){if(e==null)return!1;if(typeof e=="boolean")return e;{let t=new Set(["passive","capture"]),i=Object.keys(e).filter(s=>!t.has(s));return v.assert(i.length==0,"Unsupported flag(s) to addEventListener: "+i.join(",")),ue.Binding_.doesSupportObject_(y)?e:e.capture||!1}}static doesSupportObject_(y){let e=ue.Binding_.supportsObject_;if(e==null){e=!1;try{let t={},i={get:()=>(e=!0,!1)};Object.defineProperty(t,"passive",i),Object.defineProperty(t,"capture",i);let r=()=>{};y.addEventListener("test",r,t),y.removeEventListener("test",r,t)}catch(t){e=!1}ue.Binding_.supportsObject_=e}return e||!1}};ue.Binding_.supportsObject_=void 0;/*! @license
114
+ * Shaka Player
115
+ * Copyright 2016 Google LLC
116
+ * SPDX-License-Identifier: Apache-2.0
117
+ */var it=class{static isNotNull(e){return e!=null}static promiseWithTimeout(e,t){return Promise.race([t,new Promise(((i,r)=>{new ae(r).tickAfter(e)}))])}static delay(e){return new Promise(t=>{new ae(t).tickAfter(e)})}};/*! @license
118
+ * Shaka Player
119
+ * Copyright 2016 Google LLC
120
+ * SPDX-License-Identifier: Apache-2.0
121
+ */var Qi=class{static map(e,t){let i=[];for(let r of e)i.push(t(r));return i}static every(e,t){for(let i of e)if(!t(i))return!1;return!0}static some(e,t){for(let i of e)if(t(i))return!0;return!1}static filter(e,t){let i=[];for(let r of e)t(r)&&i.push(r);return i}};/*! @license
122
+ * Shaka Player
123
+ * Copyright 2016 Google LLC
124
+ * SPDX-License-Identifier: Apache-2.0
125
+ */var Ve=class Ve{static areLocaleCompatible(e,t){return e=Ve.normalize(e),t=Ve.normalize(t),e==t}static areLanguageCompatible(e,t){e=Ve.normalize(e),t=Ve.normalize(t);let i=Ve.disassembleLocale_(e),r=Ve.disassembleLocale_(t);return i[0]==r[0]}static isParentOf(e,t){e=Ve.normalize(e),t=Ve.normalize(t);let i=Ve.disassembleLocale_(e),r=Ve.disassembleLocale_(t);return i[0]==r[0]&&i.length==1&&r.length==2}static isSiblingOf(e,t){e=Ve.normalize(e),t=Ve.normalize(t);let i=Ve.disassembleLocale_(e),r=Ve.disassembleLocale_(t);return i.length==2&&r.length==2&&i[0]==r[0]}static normalize(e){let[i="",r=""]=e.split("-x-"),[s="",n=""]=i.split("-"),a=r?`x-${r}`:"",o=s.toLowerCase();o=Ve.isoMap_.get(o)||o;let c=n.toUpperCase();return`${c?`${o}-${c}`:o}${a?`-${a}`:""}`}static areSiblings(e,t){let i=Ve.getBase(e),r=Ve.getBase(t);return e!=i&&t!=r&&i==r}static relatedness(e,t){return e=Ve.normalize(e),t=Ve.normalize(t),t==e?4:Ve.isParentOf(t,e)?3:Ve.isSiblingOf(t,e)?2:Ve.isParentOf(e,t)?1:0}static getBase(e){let t=e.indexOf("-"),i;return t>=0?i=e.substring(0,t):i=e,i=i.toLowerCase(),i=Ve.isoMap_.get(i)||i,i}static getLocaleForText(e){let t=e.language||"und";return Ve.normalize(t)}static getLocaleForVariant(e){return e.language?Ve.normalize(e.language):e.audio&&e.audio.language?Ve.normalize(e.audio.language):e.video&&e.video.language?Ve.normalize(e.video.language):"und"}static findClosestLocale(e,t){let i=Ve.normalize(e),r=new Set;for(let s of t)r.add(Ve.normalize(s));for(let s of r)if(s==i)return s;for(let s of r)if(Ve.isParentOf(s,i))return s;for(let s of r)if(Ve.isSiblingOf(s,i))return s;for(let s of r)if(Ve.isParentOf(i,s))return s;return null}static disassembleLocale_(e){let t=e.split("-");return v.assert(t.length<=2,["Locales should not have more than 2 components. ",e," has too many components."].join()),t}};l(Ve,"isoMap_",new Map([["aar","aa"],["abk","ab"],["afr","af"],["aka","ak"],["alb","sq"],["amh","am"],["ara","ar"],["arg","an"],["arm","hy"],["asm","as"],["ava","av"],["ave","ae"],["aym","ay"],["aze","az"],["bak","ba"],["bam","bm"],["baq","eu"],["bel","be"],["ben","bn"],["bih","bh"],["bis","bi"],["bod","bo"],["bos","bs"],["bre","br"],["bul","bg"],["bur","my"],["cat","ca"],["ces","cs"],["cha","ch"],["che","ce"],["chi","zh"],["chu","cu"],["chv","cv"],["cor","kw"],["cos","co"],["cre","cr"],["cym","cy"],["cze","cs"],["dan","da"],["deu","de"],["div","dv"],["dut","nl"],["dzo","dz"],["ell","el"],["eng","en"],["epo","eo"],["est","et"],["eus","eu"],["ewe","ee"],["fao","fo"],["fas","fa"],["fij","fj"],["fin","fi"],["fra","fr"],["fre","fr"],["fry","fy"],["ful","ff"],["geo","ka"],["ger","de"],["gla","gd"],["gle","ga"],["glg","gl"],["glv","gv"],["gre","el"],["grn","gn"],["guj","gu"],["hat","ht"],["hau","ha"],["heb","he"],["her","hz"],["hin","hi"],["hmo","ho"],["hrv","hr"],["hun","hu"],["hye","hy"],["ibo","ig"],["ice","is"],["ido","io"],["iii","ii"],["iku","iu"],["ile","ie"],["ina","ia"],["ind","id"],["ipk","ik"],["isl","is"],["ita","it"],["jav","jv"],["jpn","ja"],["kal","kl"],["kan","kn"],["kas","ks"],["kat","ka"],["kau","kr"],["kaz","kk"],["khm","km"],["kik","ki"],["kin","rw"],["kir","ky"],["kom","kv"],["kon","kg"],["kor","ko"],["kua","kj"],["kur","ku"],["lao","lo"],["lat","la"],["lav","lv"],["lim","li"],["lin","ln"],["lit","lt"],["ltz","lb"],["lub","lu"],["lug","lg"],["mac","mk"],["mah","mh"],["mal","ml"],["mao","mi"],["mar","mr"],["may","ms"],["mkd","mk"],["mlg","mg"],["mlt","mt"],["mon","mn"],["mri","mi"],["msa","ms"],["mya","my"],["nau","na"],["nav","nv"],["nbl","nr"],["nde","nd"],["ndo","ng"],["nep","ne"],["nld","nl"],["nno","nn"],["nob","nb"],["nor","no"],["nya","ny"],["oci","oc"],["oji","oj"],["ori","or"],["orm","om"],["oss","os"],["pan","pa"],["per","fa"],["pli","pi"],["pol","pl"],["por","pt"],["pus","ps"],["que","qu"],["roh","rm"],["ron","ro"],["rum","ro"],["run","rn"],["rus","ru"],["sag","sg"],["san","sa"],["sin","si"],["slk","sk"],["slo","sk"],["slv","sl"],["sme","se"],["smo","sm"],["sna","sn"],["snd","sd"],["som","so"],["sot","st"],["spa","es"],["sqi","sq"],["srd","sc"],["srp","sr"],["ssw","ss"],["sun","su"],["swa","sw"],["swe","sv"],["tah","ty"],["tam","ta"],["tat","tt"],["tel","te"],["tgk","tg"],["tgl","tl"],["tha","th"],["tib","bo"],["tir","ti"],["ton","to"],["tsn","tn"],["tso","ts"],["tuk","tk"],["tur","tr"],["twi","tw"],["uig","ug"],["ukr","uk"],["urd","ur"],["uzb","uz"],["ven","ve"],["vie","vi"],["vol","vo"],["wel","cy"],["wln","wa"],["wol","wo"],["xho","xh"],["yid","yi"],["yor","yo"],["zha","za"],["zho","zh"],["zul","zu"]]));var ve=Ve;/*! @license
126
+ * Shaka Player
127
+ * Copyright 2016 Google LLC
128
+ * SPDX-License-Identifier: Apache-2.0
129
+ */var Ci=class Ci{static createDrmInfo(e,t,i,r=void 0,s=void 0){let n={keySystem:e,encryptionScheme:t,licenseServerUri:"",distinctiveIdentifierRequired:!1,persistentStateRequired:!1,audioRobustness:"",videoRobustness:"",serverCertificate:null,serverCertificateUri:"",sessionType:"",initData:i||[],keyIds:new Set,mediaTypes:s};return r&&(n.keySystemUris=new Set([r])),!i&&de.isFairPlayKeySystem(e)&&n.initData.push({initDataType:"sinf",initData:new Uint8Array(0),keyId:null}),n}static createDrmInfoFromClearKeys(e,t="cenc"){let i=[],r=[],s=[],n=new Map;e.forEach((m,f)=>{let g=de.normalizeClearKeyValue(f),_=de.normalizeClearKeyValue(m),T={kty:"oct",kid:g,k:_};i.push(T),r.push(T.kid),s.push(f),n.set(g,_)});let o=JSON.stringify({keys:i}),c=JSON.stringify({kids:r}),u=[{initData:D.toUint8(q.toUTF8(c)),initDataType:"keyids"}];return{keySystem:"org.w3.clearkey",encryptionScheme:t,licenseServerUri:"data:application/json;base64,"+window.btoa(o),distinctiveIdentifierRequired:!1,persistentStateRequired:!1,audioRobustness:"",videoRobustness:"",serverCertificate:null,serverCertificateUri:"",sessionType:"",initData:u,keyIds:new Set(s),clearKeys:n}}static guessCodecs(e,t){if(t.length==1)return t[0];let i=Ci.guessCodecsSafe(e,t);if(i!=null)return i;throw new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.HLS_COULD_NOT_GUESS_CODECS,t)}static guessCodecsSafe(e,t){let i=Ci.CODEC_REGEXPS_BY_CONTENT_TYPE_.get(e);for(let r of i)for(let s of t)if(r.test(s.trim()))return s.trim();return e==Ci.ContentType.TEXT?"":null}static parseCEA608Captions(e,t){if(!e){t.set("CC1","und");return}let i=1,r=e.split(";");for(let s of r){let n,a;if(!s.includes("="))n=`CC${i}`,i+=r.length==2?2:1,a=s;else{let o=s.split("=");n=o[0].startsWith("CC")?o[0]:`CC${o[0]}`,a=o[1]||"und"}t.set(n,ve.normalize(a))}}static parseCEA708Captions(e,t){if(!e){t.set("svc1","und");return}let i=1;for(let r of e.split(";")){let s,n;if(!r.includes("="))s=`svc${i}`,i++,n=r;else{let a=r.split("=");s=`svc${a[0]}`,n=a[1].split(",")[0].split(":").pop()}t.set(s,ve.normalize(n))}}static guessAllCodecsSafe(e,t){let i=[],r=Ci.CODEC_REGEXPS_BY_CONTENT_TYPE_.get(e);for(let s of r)for(let n of t)s.test(n.trim())&&i.push(n.trim());return i}};l(Ci,"ContentType",{VIDEO:"video",AUDIO:"audio",TEXT:"text",IMAGE:"image",APPLICATION:"application",CHAPTER:"chapter"}),l(Ci,"TextStreamKind",{SUBTITLE:"subtitle",CLOSED_CAPTION:"caption"}),l(Ci,"VIDEO_CODEC_REGEXPS",[/^avc/,/^hev/,/^hvc/,/^vvc/,/^vvi/,/^vp0?[89]/,/^av01/,/^mp2v/,/^dvh/,/^dva/,/^dav/]),l(Ci,"AUDIO_CODEC_REGEXPS",[/^vorbis$/,/^Opus$/,/^opus$/,/^fLaC$/,/^flac$/,/^mp4a/,/^[ae]c-3$/,/^ac-4/,/^dts[cehx]?$/,/^iamf/,/^mhm[12]/,/^ac3$/,/^eac3$/,/^apac$/]),l(Ci,"TEXT_CODEC_REGEXPS",[/^vtt$/,/^wvtt/,/^stpp/]);var R=Ci;R.GAP_OVERLAP_TOLERANCE_SECONDS=1/15;R.CODEC_REGEXPS_BY_CONTENT_TYPE_=new Map().set("audio",R.AUDIO_CODEC_REGEXPS).set("video",R.VIDEO_CODEC_REGEXPS).set("text",R.TEXT_CODEC_REGEXPS);/*! @license
130
+ * Shaka Player
131
+ * Copyright 2016 Google LLC
132
+ * SPDX-License-Identifier: Apache-2.0
133
+ */var Zt=class{static asMap(e){let t=new Map;for(let i of Object.keys(e))t.set(i,e[i]);return t}static asObject(e){let t={};return e.forEach((i,r)=>{t[r]=i}),t}static hasSameElements(e,t){if(!e&&!t)return!0;if(e&&!t)return!1;if(t&&!e||e.size!=t.size)return!1;for(let[i,r]of e){if(!t.has(i))return!1;let s=t.get(i);if(s!=r||s==null)return!1}return!0}};/*! @license
134
+ * Shaka Player
135
+ * Copyright 2016 Google LLC
136
+ * SPDX-License-Identifier: Apache-2.0
137
+ */var Zs=class Zs{constructor(e,t){l(this,"dataView_");l(this,"littleEndian_");l(this,"position_");this.dataView_=D.toDataView(e),this.littleEndian_=t==Zs.Endianness.LITTLE_ENDIAN,this.position_=0}getDataView(){return this.dataView_}hasMoreData(){return this.position_<this.dataView_.byteLength}getPosition(){return this.position_}getLength(){return this.dataView_.byteLength}readUint8(){try{let e=this.dataView_.getUint8(this.position_);return this.position_+=1,e}catch(e){throw this.outOfBounds_()}}readUint16(){try{let e=this.dataView_.getUint16(this.position_,this.littleEndian_);return this.position_+=2,e}catch(e){throw this.outOfBounds_()}}readUint32(){try{let e=this.dataView_.getUint32(this.position_,this.littleEndian_);return this.position_+=4,e}catch(e){throw this.outOfBounds_()}}readInt32(){try{let e=this.dataView_.getInt32(this.position_,this.littleEndian_);return this.position_+=4,e}catch(e){throw this.outOfBounds_()}}readUint64(){let e,t;try{this.littleEndian_?(e=this.dataView_.getUint32(this.position_,!0),t=this.dataView_.getUint32(this.position_+4,!0)):(t=this.dataView_.getUint32(this.position_,!1),e=this.dataView_.getUint32(this.position_+4,!1))}catch(i){throw this.outOfBounds_()}if(t>2097151)throw new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.JS_INTEGER_OVERFLOW);return this.position_+=8,t*Math.pow(2,32)+e}readBytes(e,t){if(v.assert(e>=0,"Bad call to DataViewReader.readBytes"),this.position_+e>this.dataView_.byteLength)throw this.outOfBounds_();let i=D.toUint8(this.dataView_,this.position_,e);return this.position_+=e,t?new Uint8Array(i):i}skip(e){if(v.assert(e>=0,"Bad call to DataViewReader.skip"),this.position_+e>this.dataView_.byteLength)throw this.outOfBounds_();this.position_+=e}rewind(e){if(v.assert(e>=0,"Bad call to DataViewReader.rewind"),this.position_<e)throw this.outOfBounds_();this.position_-=e}seek(e){if(v.assert(e>=0,"Bad call to DataViewReader.seek"),e<0||e>this.dataView_.byteLength)throw this.outOfBounds_();this.position_=e}readTerminatedString(){let e=this.position_;for(;this.hasMoreData()&&this.dataView_.getUint8(this.position_)!=0;)this.position_+=1;let t=D.toUint8(this.dataView_,e,this.position_-e);return this.position_+=1,q.fromUTF8(t)}outOfBounds_(){return new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.BUFFER_READ_OUT_OF_BOUNDS)}};l(Zs,"Endianness",{BIG_ENDIAN:0,LITTLE_ENDIAN:1});var Et=Zs;/*! @license
138
+ * Shaka Player
139
+ * Copyright 2016 Google LLC
140
+ * SPDX-License-Identifier: Apache-2.0
141
+ */var Mt=class Mt{constructor(){l(this,"headers_");l(this,"boxDefinitions_");l(this,"done_");this.headers_=new Map,this.boxDefinitions_=new Map,this.done_=!1}box(e,t){let i=Mt.typeFromString_(e);return this.headers_.set(i,Mt.BoxType_.BASIC_BOX),this.boxDefinitions_.set(i,t),this}boxes(e,t){for(let i of e)this.box(i,t);return this}fullBox(e,t){let i=Mt.typeFromString_(e);return this.headers_.set(i,Mt.BoxType_.FULL_BOX),this.boxDefinitions_.set(i,t),this}fullBoxes(e,t){for(let i of e)this.fullBox(i,t);return this}stop(){this.done_=!0}parse(e,t,i){let r=new Et(e,Et.Endianness.BIG_ENDIAN);for(this.done_=!1;r.hasMoreData()&&!this.done_;)this.parseNext(0,r,t,i)}parseNext(e,t,i,r){let s=t.getPosition();if(r&&s+8>t.getLength()){this.done_=!0;return}let n=t.readUint32(),a=t.readUint32(),o=Mt.typeToString(a),c=!1;switch(p.v2("Parsing MP4 box",o),n){case 0:n=t.getLength()-s;break;case 1:if(r&&t.getPosition()+8>t.getLength()){this.done_=!0;return}n=t.readUint64(),c=!0;break}let d=this.boxDefinitions_.get(a);if(d){let u=null,m=null;if(this.headers_.get(a)==Mt.BoxType_.FULL_BOX){if(r&&t.getPosition()+4>t.getLength()){this.done_=!0;return}let b=t.readUint32();u=b>>>24,m=b&16777215}let f=s+n;if(i&&f>t.getLength()&&(f=t.getLength()),r&&f>t.getLength()){this.done_=!0;return}let g=f-t.getPosition(),_=g>0?t.readBytes(g,!1):new Uint8Array(0),T=new Et(_,Et.Endianness.BIG_ENDIAN),S={name:o,parser:this,partialOkay:i||!1,stopOnPartial:r||!1,version:u,flags:m,reader:T,size:n,start:s+e,has64BitSize:c};d(S)}else{let u=Math.min(s+n-t.getPosition(),t.getLength()-t.getPosition());t.skip(u)}}static children(e){let t=Mt.headerSize(e);for(;e.reader.hasMoreData()&&!e.parser.done_;)e.parser.parseNext(e.start+t,e.reader,e.partialOkay,e.stopOnPartial)}static sampleDescription(e){let t=Mt.headerSize(e),i=e.reader.readUint32();for(let r=0;r<i&&(e.parser.parseNext(e.start+t,e.reader,e.partialOkay,e.stopOnPartial),!e.parser.done_);r++);}static visualSampleEntry(e){let t=Mt.headerSize(e);for(e.reader.skip(78);e.reader.hasMoreData()&&!e.parser.done_;)e.parser.parseNext(e.start+t,e.reader,e.partialOkay,e.stopOnPartial)}static audioSampleEntry(e){let t=Mt.headerSize(e);e.reader.skip(8);let i=e.reader.readUint16();for(e.reader.skip(6),i==2?e.reader.skip(48):e.reader.skip(12),i==1&&e.reader.skip(16);e.reader.hasMoreData()&&!e.parser.done_;)e.parser.parseNext(e.start+t,e.reader,e.partialOkay,e.stopOnPartial)}static allData(e,t){return i=>{let r=i.reader.getLength()-i.reader.getPosition();e(i.reader.readBytes(r,t))}}static typeFromString_(e){v.assert(e.length==4,"Mp4 box names must be 4 characters long");let t=0;for(let i of e)t=t<<8|i.charCodeAt(0);return t}static typeToString(e){return String.fromCharCode(e>>24&255,e>>16&255,e>>8&255,e&255)}static headerSize(e){let i=e.has64BitSize?8:0,r=e.flags!=null?4:0;return 8+i+r}};l(Mt,"BoxType_",{BASIC_BOX:0,FULL_BOX:1}),l(Mt,"SAMPLE_TABLE_PATH",["moov","trak","mdia","minf","stbl"]),l(Mt,"FRAGMENT_PATH",["moof","traf"]),l(Mt,"AVC_DV_",["avc1","avc3","dvav","dva1"]),l(Mt,"HEVC_DV_",["hev1","hvc1","dvh1","dvhe"]),l(Mt,"VVC_DV_",["vvc1","vvi1","dvc1","dvi1"]),l(Mt,"GENERIC_AUDIO_SAMPLE_ENTRIES",["ac-3","ec-3","ac-4","Opus","fLaC","apac"]);var F=Mt;F.AVC_HEVC_DV=[...F.AVC_DV_,...F.HEVC_DV_];F.AVC_HEVC_VVC_DV=[...F.AVC_HEVC_DV,...F.VVC_DV_];/*! @license
142
+ * Shaka Player
143
+ * Copyright 2016 Google LLC
144
+ * SPDX-License-Identifier: Apache-2.0
145
+ */var ei=class y{constructor(e){l(this,"systemIds");l(this,"data");this.systemIds=[],this.data=[],new F().boxes(["moov","moof"],F.children).fullBox("pssh",t=>this.parsePsshBox_(t)).parse(e),this.data.length==0&&p.v2("No pssh box found!")}parsePsshBox_(e){if(v.assert(e.version!=null,"PSSH boxes are full boxes and must have a valid version"),v.assert(e.flags!=null,"PSSH boxes are full boxes and must have a valid flag"),e.version>1){p.warning("Unrecognized PSSH version found!");return}let t=e.reader.getDataView();v.assert(t.byteOffset>=12,"DataView at incorrect position");let i=D.toUint8(t,-12,e.size);this.data.push(i);let r=e.reader.readBytes(16,!1);this.systemIds.push(ne.toHex(r))}static createPssh(e,t,i,r){v.assert(t.byteLength==16,"Invalid system ID length");let s=e.length,n=12+t.length+4+s;r>0&&(n+=4+16*i.size);let a=new Uint8Array(n),o=D.toDataView(a),c=0;if(o.setUint32(c,n),c+=4,o.setUint32(c,1886614376),c+=4,r<1?o.setUint32(c,0):o.setUint32(c,16777216),c+=4,a.set(t,c),c+=t.length,r>0){o.setUint32(c,i.size),c+=4;for(let d of i){let u=ne.fromHex(d);a.set(u,c),c+=u.length}}return o.setUint32(c,s),c+=4,a.set(e,c),c+=s,v.assert(c===n,"PSSH invalid length."),a}static getPsshData(e){let t=8,i=D.toDataView(e),r=i.getUint8(t);return t+=20,r>0&&(t+=4+16*i.getUint32(t)),t+=4,D.toUint8(i,t)}static normaliseInitData(e){if(!e)return e;let t=new y(e);if(t.data.length<=1)return e;let i=[];for(let r of t.data)i.some(n=>D.equal(n,r))||i.push(r);return ne.concat(...i)}};/*! @license
146
+ * Shaka Player
147
+ * Copyright 2016 Google LLC
148
+ * SPDX-License-Identifier: Apache-2.0
149
+ */var xi=class xi{constructor(e,t,i,r){l(this,"dec_");l(this,"media_");l(this,"canvas_");l(this,"decConfig_");l(this,"isDualTrack_");l(this,"lcevcLib_");this.lcevcLib_,this.dec_=null,this.media_=e,this.canvas_=t,this.decConfig_=i,this.isDualTrack_=r,this.create_()}appendBuffer(e,t,i){let r=R.ContentType;i.type!==r.VIDEO||this.isDualTrack_&&!xi.isStreamSupported(i)||this.dec_&&this.dec_.appendBuffer(e,"video",i.id,-t,!this.isDualTrack_)}removeBuffer(e,t,i){let r=R.ContentType;e===r.VIDEO&&this.dec_&&this.dec_.flushBuffer(t,i)}hideCanvas(){this.dec_&&this.canvas_.classList.add("shaka-hidden")}create_(){this.isSupported_()&&!this.dec_&&this.lcevcLib_.SupportObject.webGLSupport(this.canvas_)&&(this.canvas_.classList.remove("shaka-hidden"),this.dec_=new this.lcevcLib_.LCEVCdec(this.media_,this.canvas_,this.decConfig_))}release(){this.dec_&&(this.dec_.close(),this.dec_=null)}isSupported_(){if(typeof libDPIModule=="undefined"&&p.alwaysWarn("Could not find LCEVC Library dependencies on this page"),typeof LCEVCdec!="undefined")this.lcevcLib_=LCEVCdec;else return p.alwaysWarn("Could not find LCEVC Library on this page"),!1;return typeof this.lcevcLib_.SupportObject=="undefined"?(p.alwaysWarn("Could not find LCEVC Library on this page"),!1):(this.lcevcLib_.SupportObject.SupportStatus||p.alwaysWarn(this.lcevcLib_.SupportObject.SupportError),typeof this.lcevcLib_!="undefined"&&typeof libDPIModule!="undefined"&&this.canvas_ instanceof HTMLCanvasElement&&this.lcevcLib_.SupportObject.SupportStatus)}updateVariant(e,t){let i=e.video;if(!i)return;i.dependencyStream&&(i=i.dependencyStream);let r=xi.ContainerFormat.MPEG2_TS,s=xi.StreamingFormat.OTHER;switch(i.mimeType){case"video/webm":{r=xi.ContainerFormat.WEBM;break}case"video/mp4":{r=xi.ContainerFormat.MP4;break}}switch(t){case"DASH":{s=xi.StreamingFormat.DASH;break}case"HLS":{s=xi.StreamingFormat.HLS;break}}this.dec_&&(this.dec_.setLevelSwitching(i.id,!0),this.dec_.setContainerFormat(r),this.dec_.setStreamingFormat(s))}static isStreamSupported(e){return!e||typeof LCEVCdec=="undefined"?!1:e.codecs=="lvc1"}};l(xi,"ContainerFormat",{MPEG2_TS:0,WEBM:1,MP4:2}),l(xi,"StreamingFormat",{HLS:0,DASH:1,OTHER:-1});var wr=xi;/*! @license
150
+ * Shaka Player
151
+ * Copyright 2016 Google LLC
152
+ * SPDX-License-Identifier: Apache-2.0
153
+ */var ti=class ti{static registerParserByMime(e,t){ti.parsersByMime.set(e,t)}static unregisterParserByMime(e){ti.parsersByMime.delete(e)}static probeSupport(){let e={},t=j.getDevice();if(t.supportsMediaSource())for(let r of ti.parsersByMime.keys())e[r]=!0;let i=["application/dash+xml","application/x-mpegurl","application/vnd.apple.mpegurl","audio/x-mpegurl"];for(let r of i)t.supportsMediaSource()?e[r]=ti.parsersByMime.has(r):e[r]=t.supportsMediaType(r);return e}static getFactory(e,t){if(t){let i=ti.parsersByMime.get(t);if(i)return i;p.warning("Could not determine manifest type using MIME type ",t)}throw new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.UNABLE_TO_GUESS_MANIFEST_TYPE,e,t)}static isSupported(e){return j.getDevice().supportsMediaSource()?ti.parsersByMime.has(e):!1}};l(ti,"HLS","HLS"),l(ti,"DASH","DASH"),l(ti,"MSF","MSF"),l(ti,"UNKNOWN","UNKNOWN"),l(ti,"AccessibilityPurpose",{VISUALLY_IMPAIRED:"visually impaired",HARD_OF_HEARING:"hard of hearing",SPOKEN_SUBTITLES:"spoken subtitles"}),l(ti,"parsersByMime",new Map);var me=ti;/*! @license
154
+ * Shaka Player
155
+ * Copyright 2016 Google LLC
156
+ * SPDX-License-Identifier: Apache-2.0
157
+ */var en=class{extract(e,t){}extractRaw608(e,t){}decode(){return[]}clear(){}getStreams(){return[]}};/*! @license
158
+ * Shaka Player
159
+ * Copyright 2016 Google LLC
160
+ * SPDX-License-Identifier: Apache-2.0
161
+ */var tn=class{init(e){}parse(e){return[]}};/*! @license
162
+ * Shaka Player
163
+ * Copyright 2016 Google LLC
164
+ * SPDX-License-Identifier: Apache-2.0
165
+ */var Ht=class Ht{constructor(e){l(this,"decoderCache_");l(this,"currentContinuityTimeline_");l(this,"ceaParser_");l(this,"ceaDecoder_");this.decoderCache_=new Map,this.currentContinuityTimeline_=0,this.ceaParser_=new tn;let t=Ht.findParser(e.toLowerCase());t&&(this.ceaParser_=t()),this.ceaDecoder_=new en;let i=Ht.findDecoder();i&&(this.ceaDecoder_=i(),this.decoderCache_.set(this.currentContinuityTimeline_,this.ceaDecoder_))}init(e,t=!1,i=-1){p.debug("Passing new init segment to CEA parser"),i!=-1&&this.currentContinuityTimeline_!=i?this.updateDecoder_(i):t||this.reset(),this.ceaParser_.init(e),i!=-1&&(this.currentContinuityTimeline_=i)}parseFrom(e){let t=this.ceaParser_.parse(e);for(let i of t){let r=D.toUint8(i.packet);if(r.length>0)switch(i.format){case Ht.CaptionPacketFormat.SEI:this.ceaDecoder_.extract(r,i.pts);break;case Ht.CaptionPacketFormat.RAW608:this.ceaDecoder_.extractRaw608(r,i.pts);break}}return this.ceaDecoder_.decode()}updateDecoder_(e){this.decoderCache_.set(this.currentContinuityTimeline_,this.ceaDecoder_),this.ceaDecoder_=this.decoderCache_.getOrInsertComputed(e,()=>{let t=Ht.findDecoder();return t?t():this.ceaDecoder_})}reset(){this.ceaDecoder_.clear()}remove(e=[]){let t=new Set(e);for(let i of this.decoderCache_.keys())if(!t.has(i)){let r=this.decoderCache_.get(i);r&&r.clear(),this.decoderCache_.delete(i)}}getStreams(){return this.ceaDecoder_.getStreams()}static registerParser(e,t){Ht.parserMap_.set(e,t)}static unregisterParser(e){Ht.parserMap_.delete(e)}static findParser(e){return Ht.parserMap_.get(e)}static registerDecoder(e){Ht.decoderFactory_=e}static unregisterDecoder(){Ht.decoderFactory_=null}static findDecoder(){return Ht.decoderFactory_}};l(Ht,"parserMap_",new Map),l(Ht,"decoderFactory_",null),l(Ht,"CaptionPacketFormat",{SEI:"sei",RAW608:"raw608"});var Rt=Ht;/*! @license
166
+ * Shaka Player
167
+ * Copyright 2016 Google LLC
168
+ * SPDX-License-Identifier: Apache-2.0
169
+ */var Ji=class Ji{constructor(){l(this,"id");l(this,"viewportAnchorX");l(this,"viewportAnchorY");l(this,"regionAnchorX");l(this,"regionAnchorY");l(this,"width");l(this,"height");l(this,"heightUnits");l(this,"widthUnits");l(this,"viewportAnchorUnits");l(this,"scroll");this.id="",this.viewportAnchorX=0,this.viewportAnchorY=0,this.regionAnchorX=0,this.regionAnchorY=0,this.width=100,this.height=100,this.heightUnits=Ji.units.PERCENTAGE,this.widthUnits=Ji.units.PERCENTAGE,this.viewportAnchorUnits=Ji.units.PERCENTAGE,this.scroll=Ji.scrollMode.NONE}clone(){let e=new Ji;return e.id=this.id,e.viewportAnchorX=this.viewportAnchorX,e.viewportAnchorY=this.viewportAnchorY,e.regionAnchorX=this.regionAnchorX,e.regionAnchorY=this.regionAnchorY,e.width=this.width,e.height=this.height,e.heightUnits=this.heightUnits,e.widthUnits=this.widthUnits,e.viewportAnchorUnits=this.viewportAnchorUnits,e.scroll=this.scroll,e}};l(Ji,"units",{PX:0,PERCENTAGE:1,LINES:2}),l(Ji,"scrollMode",{NONE:"",UP:"up"});var He=Ji;/*! @license
170
+ * Shaka Player
171
+ * Copyright 2016 Google LLC
172
+ * SPDX-License-Identifier: Apache-2.0
173
+ */var Ss=class Ss{constructor(e){l(this,"data_");l(this,"position_");this.data_=e||"",this.position_=0}atEnd(){return this.position_==this.data_.length}readLine(){return this.readRegexReturnCapture_(/(.*?)(\n|$)/gm,1)}readWord(){return this.readRegexReturnCapture_(/[^ \t\n]*/gm,0)}skipWhitespace(){this.readRegex(/[ \t]+/gm)}forEachWord(e){let t=this.readWord();for(;t;)e(t),this.skipWhitespace(),t=this.readWord()}readRegex(e){let t=this.indexOf_(e);return this.atEnd()||t==null||t.position!=this.position_?null:(this.position_+=t.length,t.results)}readRegexReturnCapture_(e,t){if(this.atEnd())return null;let i=this.readRegex(e);return i?i[t]:null}indexOf_(e){v.assert(e.global,"global flag should be set"),e.lastIndex=this.position_;let t=e.exec(this.data_);return t==null?null:{position:t.index,length:t[0].length,results:t}}parseTime(){let e=this.readRegex(Ss.timeFormat_);if(e==null)return null;let t=Number(e[1])||0,i=Number(e[2]),r=Number(e[3]),s=Number(e[6])||0;return i>59||r>59?null:s/1e3+r+i*60+t*3600}static parseTime(e){return e?new Ss(e).parseTime():null}};l(Ss,"timeFormat_",/(?:(\d{1,}):)?(\d{2}):(\d{2})((\.(\d{1,3})))?/g);var Gt=Ss;/*! @license
174
+ * tXml
175
+ * Copyright 2015 Tobias Nickel
176
+ * SPDX-License-Identifier: MIT
177
+ */var At=class At{static parseXml(e,t,i=!1){let r=q.fromBytesAutoDetect(e);return At.parseXmlString(r,t,i)}static parseXmlString(e,t,i=!1){let r=At.parse(e,i);if(!t&&r.length)return r[0];let s=t.split(","),n=r.find(a=>s.includes(a.tagName));return n||(p.error("parseXml root element not found!"),null)}static getKnownNameSpace(e){return At.uriToNameSpace_.has(e)?At.uriToNameSpace_.get(e):""}static getKnownSchema(e){return At.nameSpaceToUri_.has(e)?At.nameSpaceToUri_.get(e):""}static setKnownNameSpace(e,t){At.uriToNameSpace_.set(e,t),At.nameSpaceToUri_.set(t,e)}static parse(e,t){let i=0,r=0,s="<",n=60,a=">",o=62,c=45,d=47,u=33,m=39,f=34,g=91;function _(A,w=!1){let M=[];for(;e[i];)if(e.charCodeAt(i)==n){if(e.charCodeAt(i+1)===d){let k=i+2;i=e.indexOf(a,i);let L=e.substring(k,i),V=L.indexOf(A);if(V==-1){let ee=A.indexOf(".");if(ee>0){let oe=A.substring(0,ee);V=L.indexOf(oe)}}if(V==-1){let ee=e.substring(0,i).split(`
178
+ `);throw new Error(`Unexpected close tag
179
+ Line: `+(ee.length-1)+`
180
+ Column: `+(ee[ee.length-1].length+1)+`
181
+ Char: `+e[i])}return i+1&&(i+=1),M}else if(e.charCodeAt(i+1)===u){if(e.charCodeAt(i+2)==c){for(;i!==-1&&!(e.charCodeAt(i)===o&&e.charCodeAt(i-1)==c&&e.charCodeAt(i-2)==c&&i!=-1);)i=e.indexOf(a,i+1);i===-1&&(i=e.length)}else if(e.charCodeAt(i+2)===g&&e.charCodeAt(i+8)===g&&e.substr(i+3,5).toLowerCase()==="cdata"){let k=e.indexOf("]]>",i);k==-1?(M.push(e.substr(i+9)),i=e.length):(M.push(e.substring(i+9,k)),i=k+3);continue}i++;continue}if(r>512)throw new Error("XML is too deeply nested");r++;let x=E(w);if(r--,M.push(x),typeof x=="string")return M;x.tagName[0]==="?"&&x.children&&(M.push(...x.children),x.children=[])}else{let x=T();w?x.length>0&&M.push(x):(M.length&&x.length==1&&x[0]==`
182
+ `||x.trim().length>0)&&M.push(x),i++}return M}function T(){let A=i;return i=e.indexOf(s,i)-1,i===-2&&(i=e.length),(" "+e.slice(A,i+1)).slice(1)}let S=`\r
183
+ >/= `;function b(){let A=i;for(;S.indexOf(e[i])===-1&&e[i];)i++;return(" "+e.slice(A,i)).slice(1)}function E(A){i++;let w=b(),M={},x=[];for(;e.charCodeAt(i)!==o&&e[i];){let V=e.charCodeAt(i);if(V>64&&V<91||V>96&&V<123){let ee=b(),oe=e.charCodeAt(i);for(;oe&&oe!==m&&oe!==f&&!(oe>64&&oe<91||oe>96&&oe<123)&&oe!==o;)i++,oe=e.charCodeAt(i);let le=C();if(oe===m||oe===f){if(i===-1){let H={tagName:w,attributes:M,children:x,parent:null};if(t)for(let J=0;J<x.length;J++)typeof x[J]!="string"&&(x[J].parent=H);return H}}else le=null,i--;if(ee.startsWith("xmlns:")){let H=ee.split(":");At.setKnownNameSpace(le,H[1])}w==="tt"&&ee==="xml:space"&&le==="preserve"&&(A=!0),M[ee]=le}i++}e.charCodeAt(i-1)!==d?(i++,x=_(w,A)):i++;let k={tagName:w,attributes:M,children:x,parent:null},L=x.length;for(let V=0;V<L;V++){let ee=x[V];typeof ee!="string"?t&&(ee.parent=k):V==L-1&&ee==`
184
+ `&&x.pop()}return k}function C(){let A=e[i],w=i+1;return i=e.indexOf(A,w),(" "+e.slice(w,i)).slice(1)}return _("")}static isNode(e){return!!e.tagName}static isText(e){return typeof e=="string"}static getChildNodes(e){let t=[];if(!e.children)return[];for(let i of e.children)typeof i!="string"&&t.push(i);return t}static findChildren(e,t){let i=[];if(!e.children)return[];for(let r of e.children)r.tagName===t&&i.push(r);return i}static getTextContents(e){if(typeof e=="string")return q.htmlUnescape(e);let t=[];for(let r of e.children)typeof r=="string"&&t.push(r);let i=t.join("");return i===""?null:q.htmlUnescape(i)}static getContents(e){for(let i of e.children)if(typeof i!="string")return null;let t=At.getTextContents(e);return t&&(t=t.trim()),t}static getElementsByTagName(e,t,i=[]){if(e.tagName===t&&i.push(e),e.children)for(let r of e.children)At.getElementsByTagName(r,t,i);return i}static findChild(e,t){let i=At.findChildren(e,t);return i.length!=1?null:i[0]}static findChildNS(e,t,i){let r=At.findChildrenNS(e,t,i);return r.length!=1?null:r[0]}static parseAttr(e,t,i,r=null){let s=null,n=e.attributes[t];return n!=null&&(n!==""||r===null)&&(s=i(n)),s==null?r:s}static getAttributeNS(e,t,i){let r=At.getKnownNameSpace(t);return e.attributes[`${r}:${i}`]||null}static findChildrenNS(e,t,i){let r=At.getKnownNameSpace(t),s=[];if(e.children){let n=r?`${r}:${i}`:i;for(let a of e.children)a&&a.tagName===n&&s.push(a)}return s}static getAttributeNSList(e,t,i){for(let r of t){let s=At.getAttributeNS(e,r,i);if(s)return s}return null}static parseDate(e){if(!e)return null;/^\d+-\d+-\d+T\d+:\d+:\d+(\.\d+)?$/.test(e)&&(e+="Z");let t=Date.parse(e);return isNaN(t)?null:t/1e3}static parseDuration(e){if(!e)return null;let t="^P(?:([0-9]*)Y)?(?:([0-9]*)M)?(?:([0-9]*)D)?(?:T(?:([0-9]*)H)?(?:([0-9]*)M)?(?:([0-9.]*)S)?)?$",i=new RegExp(t,"i").exec(e);if(!i)return p.warning("Invalid duration string:",e),null;let r=Number(i[1]||null),s=Number(i[2]||null),n=Number(i[3]||null),a=Number(i[4]||null),o=Number(i[5]||null),c=Number(i[6]||null),d=3600*24*365*r+3600*24*30*s+3600*24*n+3600*a+60*o+c;return isFinite(d)?d:null}static parseRange(e){let t=/([0-9]+)-([0-9]+)/.exec(e);if(!t)return null;let i=Number(t[1]);if(!isFinite(i))return null;let r=Number(t[2]);return isFinite(r)?{start:i,end:r}:null}static parseInt(e){let t=Number(e);return t%1===0?t:null}static parsePositiveInt(e){let t=Number(e);return t%1===0&&t>0?t:null}static parseNonNegativeInt(e){let t=Number(e);return t%1===0&&t>=0?t:null}static parseFloat(e){let t=Number(e);return isNaN(t)?null:t}static parseBoolean(e){return e?e.toLowerCase()==="true":!1}static evalDivision(e){let t,i;return(t=e.match(/^(\d+)\/(\d+)$/))?i=Number(t[1])/Number(t[2]):i=Number(e),isNaN(i)?null:i}static parseXpath(e){let t=[],i=q.htmlUnescape(e).split(/\/+(?=(?:[^'"]*['"][^'"]*['"])*[^'"]*$)/);for(let r of i){let s=r.match(/^([\w]+)/);if(s){let n=r.match(/(@id='(.*?)')/),a=r.match(/(@t='(\d+)')/),o=r.match(/(@n='(\d+)')/),c=r.match(/\[(\d+)\]/);t.push({name:s[0],id:n?n[0].match(/'(.*?)'/)[0].replace(/'/gm,""):null,t:a?Number(a[0].match(/'(.*?)'/)[0].replace(/'/gm,"")):null,n:o?Number(o[0].match(/'(.*?)'/)[0].replace(/'/gm,"")):null,position:c?Number(c[1])-1:null,attribute:r.split("/@")[1]||null})}else r.startsWith("@")&&t.length&&(t[t.length-1].attribute=r.slice(1))}return t}static modifyNodes(e,t){let i=shaka.util.TXml,r=i.parseXpath(t.attributes.sel||"");if(!r.length)return;let s=r[r.length-1],n=t.attributes.pos||null,a=s.position;a==null&&(s.t!==null&&(a=i.nodePositionByAttribute_(e,"t",s.t)),s.n!==null&&(a=i.nodePositionByAttribute_(e,"n",s.n))),a===null?a=n==="prepend"?0:e.length:n==="prepend"?--a:n==="after"&&++a;let o=t.tagName,c=s.attribute;if(c&&e[a])i.modifyNodeAttribute(e[a],o,c,i.getContents(t)||"");else if((o==="remove"||o==="replace")&&e.splice(a,1),o==="add"||o==="replace"){let d=t.children;e.splice(a,0,...d)}}static nodePositionByAttribute_(e,t,i){let r=0;for(let s of e){let n=s.attributes;if(Number(n[t])===i)return r;r++}return null}static modifyNodeAttribute(e,t,i,r){t==="remove"?delete e.attributes[i]:(t==="add"||t==="replace")&&(e.attributes[i]=r)}static cloneNode(e){if(!e)return null;let t={tagName:e.tagName,attributes:shaka.util.ObjectUtils.shallowCloneObject(e.attributes),children:[],parent:null};for(let i of e.children)if(typeof i=="string")t.children.push(i);else{let r=At.cloneNode(i);r.parent=t,t.children.push(r)}return t}};l(At,"uriToNameSpace_",new Map),l(At,"nameSpaceToUri_",new Map);var I=At;/*! @license
185
+ * Shaka Player
186
+ * Copyright 2016 Google LLC
187
+ * SPDX-License-Identifier: Apache-2.0
188
+ */var Ee=class Ee{constructor(e,t,i){l(this,"startTime");l(this,"endTime");l(this,"payload");l(this,"region");l(this,"position");l(this,"positionAlign");l(this,"size");l(this,"textAlign");l(this,"direction");l(this,"writingMode");l(this,"lineInterpretation");l(this,"line");l(this,"lineHeight");l(this,"lineAlign");l(this,"displayAlign");l(this,"color");l(this,"backgroundColor");l(this,"backgroundImage");l(this,"border");l(this,"fontSize");l(this,"fontWeight");l(this,"fontStyle");l(this,"fontFamily");l(this,"letterSpacing");l(this,"linePadding");l(this,"opacity");l(this,"textCombineUpright");l(this,"textDecoration");l(this,"textShadow");l(this,"textStrokeColor");l(this,"textStrokeWidth");l(this,"wrapLine");l(this,"id");l(this,"nestedCues");l(this,"isContainer");l(this,"lineBreak");l(this,"rubyTag");l(this,"cellResolution");this.startTime=e,this.endTime=t,this.payload=i,this.region=new He,this.position=null,this.positionAlign=Ee.positionAlign.AUTO,this.size=0,this.textAlign=Ee.textAlign.CENTER,this.direction=Ee.direction.HORIZONTAL_LEFT_TO_RIGHT,this.writingMode=Ee.writingMode.HORIZONTAL_TOP_TO_BOTTOM,this.lineInterpretation=Ee.lineInterpretation.LINE_NUMBER,this.line=null,this.lineHeight="",this.lineAlign=Ee.lineAlign.START,this.displayAlign=Ee.displayAlign.AFTER,this.color="",this.backgroundColor="",this.backgroundImage="",this.border="",this.fontSize="",this.fontWeight=Ee.fontWeight.NORMAL,this.fontStyle=Ee.fontStyle.NORMAL,this.fontFamily="",this.letterSpacing="",this.linePadding="",this.opacity=1,this.textCombineUpright="",this.textDecoration=[],this.textShadow="",this.textStrokeColor="",this.textStrokeWidth="",this.wrapLine=!0,this.id="",this.nestedCues=[],this.isContainer=!1,this.lineBreak=!1,this.rubyTag=null,this.cellResolution={columns:32,rows:15}}static lineBreak(e,t){let i=new Ee(e,t,"");return i.lineBreak=!0,i}clone(){let e=new Ee(0,0,""),t=i=>{if(i===null||typeof i!="object")return i;if(Array.isArray(i))return i.map(t);if(i instanceof Ee||i instanceof He)return i.clone();let r={};for(let s in i)r[s]=t(i[s]);return r};for(let i in this)e[i]=t(this[i]);return e}static equal(e,t){if(e.payload!=t.payload)return!1;let i=(r,s)=>Math.abs(r-s)<.001;if(!i(e.startTime,t.startTime)||!i(e.endTime,t.endTime))return!1;for(let r in e)if(!(r=="startTime"||r=="endTime"||r=="payload")){if(r=="nestedCues"){if(!ye.equal(e.nestedCues,t.nestedCues,Ee.equal))return!1}else if(r=="region"||r=="cellResolution"){for(let s in e[r])if(e[r][s]!=t[r][s])return!1}else if(Array.isArray(e[r])){if(!ye.equal(e[r],t[r]))return!1}else if(e[r]!=t[r])return!1}return!0}static parseCuePayload(e,t=new Map){let i=e.payload;if(!i.includes("<")){e.payload=q.htmlUnescape(i);return}t.size===0&&Ee.addDefaultTextColor(t),i=Ee.replaceKaraokeStylePayload_(i),i=Ee.replaceVoiceStylePayload_(i),i=Ee.escapeInvalidChevrons_(i),e.payload="";let r="<span>"+i.replace(/\n/g,"<br />")+"</span>",s;try{s=I.parseXmlString(r,"span")}catch(n){p.warning("cue parse fail: ",n)}if(s){let n=s.children;if(n.length==1){let a=n[0];if(!I.isNode(a)){e.payload=q.htmlUnescape(i);return}}for(let a of n)Ee.generateCueFromElement_(a,e,t)}else p.warning("The cue's markup could not be parsed: ",i),e.payload=q.htmlUnescape(i)}static addDefaultTextColor(e){let t=Ee.defaultTextColor;for(let[r,s]of Object.entries(t)){let n=new Ee(0,0,"");n.color=s,e.set("."+r,n)}let i=Ee.defaultTextBackgroundColor;for(let[r,s]of Object.entries(i)){let n=new Ee(0,0,"");n.backgroundColor=s,e.set("."+r,n)}}static replaceKaraokeStylePayload_(e){let t=[],i=-1;for(let s=0;s<e.length;s++)if(e[s]==="<")i=s+1;else if(e[s]===">"&&i>0){let n=e.substr(i,s-i);n.match(Ee.timeFormat_)&&t.push(n),i=-1}let r=e;for(let s of t){let n="<"+s+">",a='<div time="'+s+'">',o="</div>";r=r.replace(n,a),r+=o}return r}static replaceVoiceStylePayload_(e){let i=[],r=-1,s="",n=!1;for(let a=0;a<e.length;a++)if(e[a]==="/"){let o=e.indexOf(">",a);if(o===-1)return e;let c=e.substring(a+1,o);if(!c||c!="v"){s+=e[a];continue}n=!0;let d=null;if(i.length&&(d=i[i.length-1]),!d)s+=e[a];else if(d===c)s+="/"+c+">",a+=c.length+1;else{if(!d.startsWith("v")){s+=e[a];continue}s+="/"+d+">",a+=c.length+1}}else e[a]==="<"?(r=a+1,e[r]!="v"&&(r=-1)):e[a]===">"&&r>0&&(i.push(e.substr(r,a-r)),r=-1),s+=e[a];for(let a of i){let o=a.replace(" ",".voice-");s=s.replace(`<${a}>`,`<${o}>`),s=s.replace(`</${a}>`,`</${o}>`),n||(s+=`</${o}>`)}return s}static escapeInvalidChevrons_(e){let t={"< ":""," >":" &gt;"},i=/(< +>|<\s|\s>)/g,r=RegExp(i.source);return e&&r.test(e)?e.replace(i,s=>t[s]||""):e||""}static generateCueFromElement_(e,t,i){let r=t.clone();if(r.nestedCues=[],r.payload="",r.rubyTag="",r.line=null,r.region=new He,r.position=null,r.size=0,r.textAlign=Ee.textAlign.CENTER,I.isNode(e)){let a=Ee.fontWeight.BOLD,o=Ee.fontStyle.ITALIC,c=Ee.textDecoration.UNDERLINE,d=e.tagName.split(/(?=[ .])+/g);for(let u of d){let m=u;if(m.startsWith(".voice-")){let f=m.split("-").pop();m=`v[voice="${f}"]`,i.has(m)||(m=`v[voice=${f}]`)}switch(i.has(m)&&Ee.mergeStyle_(r,i.get(m)),u){case"br":{let f=Ee.lineBreak(r.startTime,r.endTime);t.nestedCues.push(f);return}case"b":r.fontWeight=a;break;case"i":r.fontStyle=o;break;case"u":r.textDecoration.push(c);break;case"font":{let f=e.attributes.color;f&&(r.color=f);break}case"div":{let f=e.attributes.time;if(!f)break;let g=Gt.parseTime(f);g&&(r.startTime=g);break}case"ruby":case"rp":case"rt":r.rubyTag=u;break;default:break}}}let s=a=>I.isText(a),n=e.children;if(s(e)||n.length==1&&s(n[0])){let a=I.getTextContents(e).split(`
189
+ `),o=!0;for(let c of a){if(!o){let d=Ee.lineBreak(r.startTime,r.endTime);t.nestedCues.push(d)}if(c.length>0){let d=r.clone();d.payload=q.htmlUnescape(c),t.nestedCues.push(d)}o=!1}}else{t.nestedCues.push(r);for(let a of n)Ee.generateCueFromElement_(a,r,i)}}static mergeStyle_(e,t){t&&(e.backgroundColor=Ee.getOrDefault_(t.backgroundColor,e.backgroundColor),e.color=Ee.getOrDefault_(t.color,e.color),e.fontFamily=Ee.getOrDefault_(t.fontFamily,e.fontFamily),e.fontSize=Ee.getOrDefault_(t.fontSize,e.fontSize),e.textShadow=Ee.getOrDefault_(t.textShadow,e.textShadow),e.fontWeight=t.fontWeight,e.fontStyle=t.fontStyle,e.opacity=t.opacity,e.rubyTag=t.rubyTag,e.textCombineUpright=t.textCombineUpright,e.wrapLine=t.wrapLine)}static getOrDefault_(e,t){return e||t}};l(Ee,"positionAlign",{LEFT:"line-left",RIGHT:"line-right",CENTER:"center",AUTO:"auto"}),l(Ee,"textAlign",{LEFT:"left",RIGHT:"right",CENTER:"center",START:"start",END:"end"}),l(Ee,"displayAlign",{BEFORE:"before",CENTER:"center",AFTER:"after"}),l(Ee,"direction",{HORIZONTAL_LEFT_TO_RIGHT:"ltr",HORIZONTAL_RIGHT_TO_LEFT:"rtl"}),l(Ee,"writingMode",{HORIZONTAL_TOP_TO_BOTTOM:"horizontal-tb",VERTICAL_LEFT_TO_RIGHT:"vertical-lr",VERTICAL_RIGHT_TO_LEFT:"vertical-rl"}),l(Ee,"lineInterpretation",{LINE_NUMBER:0,PERCENTAGE:1}),l(Ee,"lineAlign",{CENTER:"center",START:"start",END:"end"}),l(Ee,"defaultTextColor",{white:"white",lime:"lime",cyan:"cyan",red:"red",yellow:"yellow",magenta:"magenta",blue:"blue",black:"black"}),l(Ee,"defaultTextBackgroundColor",{bg_white:"white",bg_lime:"lime",bg_cyan:"cyan",bg_red:"red",bg_yellow:"yellow",bg_magenta:"magenta",bg_blue:"blue",bg_black:"black"}),l(Ee,"fontWeight",{NORMAL:400,BOLD:700}),l(Ee,"fontStyle",{NORMAL:"normal",ITALIC:"italic",OBLIQUE:"oblique"}),l(Ee,"textDecoration",{UNDERLINE:"underline",LINE_THROUGH:"line-through",OVERLINE:"overline"}),l(Ee,"timeFormat_",/(?:(\d{1,}):)?(\d{2}):(\d{2})\.(\d{2,3})/g);var B=Ee;/*! @license
190
+ * Shaka Player
191
+ * Copyright 2016 Google LLC
192
+ * SPDX-License-Identifier: Apache-2.0
193
+ */var Xt=class Xt{destroy(){}static registerTransmuxer(e,t,i){let s=Xt.normalizeMimeType_(e)+"-"+i;Xt.transmuxerMap_.set(s,{priority:i,plugin:t})}static unregisterTransmuxer(e,t){let r=Xt.normalizeMimeType_(e)+"-"+t;Xt.transmuxerMap_.delete(r)}static findTransmuxer(e,t){for(let i of Xt.PLUGIN_PRIORITY_ORDER){let r=Xt.findTransmuxerPlugin(e,i);if(!r)continue;let s=r(),n=s.isSupported(e,t);if(s.destroy(),n)return r}return null}static findTransmuxerPlugin(e,t=null){let i=Xt.normalizeMimeType_(e),r=t!==null?[t]:Xt.PLUGIN_PRIORITY_ORDER;for(let s of r){let n=i+"-"+s,a=Xt.transmuxerMap_.get(n);if(a)return a.plugin}return null}static normalizeMimeType_(e){return e.toLowerCase().split(";")[0]}static isSupported(e,t){return!!Xt.findTransmuxer(e)}static convertCodecs(e,t){let i=Xt.findTransmuxer(t);if(!i)return t;let r=i(),s=r.convertCodecs(e,t);return r.destroy(),s}};l(Xt,"transmuxerMap_",new Map),l(Xt,"PluginPriority",{FALLBACK:1,PREFERRED_SECONDARY:2,PREFERRED:3,APPLICATION:4});var Oe=Xt;Oe.PLUGIN_PRIORITY_ORDER=[Oe.PluginPriority.APPLICATION,Oe.PluginPriority.PREFERRED,Oe.PluginPriority.PREFERRED_SECONDARY,Oe.PluginPriority.FALLBACK];/*! @license
194
+ * Shaka Player
195
+ * Copyright 2016 Google LLC
196
+ * SPDX-License-Identifier: Apache-2.0
197
+ */var di=class di{static getFullType(e,t){let i=e;return t&&!di.RAW_FORMATS.includes(e)&&(i+='; codecs="'+t+'"'),i}static getFullTypeWithAllCodecs(e,t){let i=e;return t&&(i+='; codecs="'+t+'"'),i}static getFullOrConvertedType(e,t,i){let r=di.getFullType(e,t),s=di.getFullTypeWithAllCodecs(e,t),n=R.ContentType;return Oe.isSupported(s,i)?Oe.convertCodecs(i,s):e!="video/mp2t"&&i==n.AUDIO?r.replace("video","audio"):r}static getExtendedType(e,t,i){let r=[t];return di.EXTENDED_MIME_PARAMETERS_.forEach((n,a)=>{let o=e[a];a=="codecs"?di.RAW_FORMATS.includes(e.mimeType)||r.push('codecs="'+i+'"'):o&&r.push(n+'="'+o+'"')}),e.hdr=="PQ"&&r.push('eotf="smpte2084"'),r.join(";")}static getContainerType(e){return e.split(";")[0].split("/")[1]}static splitCodecs(e){return e.split(",")}static getNormalizedCodec(e){let t=di.getCodecParts_(e),i=t[0].toLowerCase(),r=t[1].toLowerCase();switch(!0){case(i==="mp4a"&&r==="69"):case(i==="mp4a"&&r==="6b"):case(i==="mp4a"&&r==="40.34"):return"mp3";case(i==="mp4a"&&r==="66"):case(i==="mp4a"&&r==="67"):case(i==="mp4a"&&r==="68"):case(i==="mp4a"&&r==="40.2"):case(i==="mp4a"&&r==="40.02"):case(i==="mp4a"&&r==="40.5"):case(i==="mp4a"&&r==="40.05"):case(i==="mp4a"&&r==="40.29"):case(i==="mp4a"&&r==="40.42"):return"aac";case(i==="mp4a"&&r==="a5"):case i==="ac3":case i==="ac-3":return"ac-3";case(i==="mp4a"&&r==="a6"):case i==="eac3":case i==="ec-3":return"ec-3";case i==="ac-4":return"ac-4";case(i==="mp4a"&&r==="b2"):return"dtsx";case(i==="mp4a"&&r==="a9"):return"dtsc";case i==="vp09":case i==="vp9":return"vp9";case i==="avc1":case i==="avc3":return"avc";case i==="hvc1":case i==="hev1":return"hevc";case i==="vvc1":case i==="vvi1":return"vvc";case i==="dvh1":case i==="dvhe":return r&&r.startsWith("05")?"dovi-p5":"dovi-hevc";case i==="dvav":case i==="dva1":return"dovi-avc";case i==="dav1":return"dovi-av1";case i==="dvc1":case i==="dvi1":return"dovi-vvc";case i==="lvc1":return"lcevc"}return i}static getCodecBase(e){let t=[];for(let i of e.split(",")){let r=di.getCodecParts_(i);t.push(r[0])}return t.sort().join(",")}static getBasicType(e){return e.split(";")[0]}static getCodecs(e){let t=e.split(/ *; */);t.shift();let i=t.find(s=>s.startsWith("codecs="));return i?i.split("=")[1].replace(/^"|"$/g,""):""}static isHlsType(e){return e==="application/x-mpegurl"||e==="application/vnd.apple.mpegurl"||e==="audio/x-mpegurl"}static isDashType(e){return e==="application/dash+xml"||e==="video/vnd.mpeg.dash.mpd"}static getCorrectAudioCodecs(e,t){let i=j.getDevice(),r=ie.BrowserEngine.WEBKIT,s=e.toLowerCase();return s=="flac"?i.getBrowserEngine()!=r?"flac":"fLaC":s==="opus"?i.getBrowserEngine()!=r?"opus":di.getContainerType(t)=="mp4"?"Opus":"opus":s=="ac-3"&&i.requiresEC3InitSegments()?"ec-3":e}static getCorrectVideoCodecs(e){if(e.includes("avc1")){let t=e.split(".");if(t.length==3){let i=t.shift()+".";return i+=parseInt(t.shift(),10).toString(16),i+=("000"+parseInt(t.shift(),10).toString(16)).slice(-4),i}}else if(e=="vp9")return"vp09.00.41.08";return e}static getCodecParts_(e){let t=e.split("."),i=t[0];t.shift();let r=t.join(".");return[i,r]}};l(di,"CEA608_CLOSED_CAPTION_MIMETYPE","application/cea-608"),l(di,"CEA708_CLOSED_CAPTION_MIMETYPE","application/cea-708"),l(di,"RAW_FORMATS",["audio/aac","audio/ac3","audio/ec3","audio/mpeg"]);var N=di;N.EXTENDED_MIME_PARAMETERS_=new Map().set("codecs","codecs").set("frameRate","framerate").set("bandwidth","bitrate").set("width","width").set("height","height").set("channelsCount","channels");/*! @license
198
+ * Shaka Player
199
+ * Copyright 2016 Google LLC
200
+ * SPDX-License-Identifier: Apache-2.0
201
+ */var cr=class cr{constructor(e,t=me.UNKNOWN){l(this,"parser_");l(this,"displayer_");l(this,"manifestType_");l(this,"segmentRelativeVttTiming_");l(this,"containerIsMpegTs_");l(this,"external_");l(this,"timestampOffsetMap_");l(this,"deferredAppends_");l(this,"appendWindowStart_");l(this,"appendWindowEnd_");l(this,"bufferStart_");l(this,"bufferEnd_");l(this,"selectedClosedCaptionId_");l(this,"modifyCueCallback_");l(this,"closedCaptionsMap_");this.parser_=null,this.displayer_=e,this.manifestType_=t,this.segmentRelativeVttTiming_=!1,this.containerIsMpegTs_=!1,this.external_=!1,this.timestampOffsetMap_=new Map,this.deferredAppends_=new Map,this.appendWindowStart_=0,this.appendWindowEnd_=1/0,this.bufferStart_=null,this.bufferEnd_=null,this.selectedClosedCaptionId_="",this.modifyCueCallback_=(i,r)=>{},this.closedCaptionsMap_=new Map}static registerParser(e,t){cr.parserMap_.set(e,t)}static unregisterParser(e){cr.parserMap_.delete(e)}static findParser(e){return cr.parserMap_.get(e)}static isTypeSupported(e){return cr.parserMap_.has(e)?!0:e==N.CEA608_CLOSED_CAPTION_MIMETYPE||e==N.CEA708_CLOSED_CAPTION_MIMETYPE?!!Rt.findDecoder():!1}destroy(){return this.parser_=null,this.displayer_=null,this.timestampOffsetMap_.clear(),this.deferredAppends_.clear(),this.closedCaptionsMap_.clear(),Promise.resolve()}setDisplayer(e){this.displayer_=e}initParser(e,t,i){if(e==N.CEA608_CLOSED_CAPTION_MIMETYPE||e==N.CEA708_CLOSED_CAPTION_MIMETYPE){this.parser_=null;return}let r=cr.parserMap_.get(e);v.assert(r,"Text type negotiation should have happened already"),this.parser_=r(),this.parser_.setManifestType(this.manifestType_),this.segmentRelativeVttTiming_=i,this.external_=t}setModifyCueCallback(e){this.modifyCueCallback_=e}async appendBuffer(e,t,i,r,s=-1){if(v.assert(this.parser_,"The parser should already be initialized"),!this.external_&&!this.timestampOffsetMap_.has(s)){let u=this.deferredAppends_.get(s)||[];u.push({buffer:e,startTime:t,endTime:i,uri:r,disco:s}),this.deferredAppends_.set(s,u);return}if(await Promise.resolve(),!this.parser_||!this.displayer_)return;if(t==null||i==null){this.parser_.parseInit(D.toUint8(e));return}let n=this.external_?0:this.timestampOffsetMap_.get(s),a=this.segmentRelativeVttTiming_||this.external_?t:this.timestampOffsetMap_.get(s),o={periodStart:n,segmentStart:t,segmentEnd:i,vttOffset:a,isMpegTs:this.containerIsMpegTs_},c=this.parser_.parseMedia(D.toUint8(e),o,r,[]);for(let u of c)this.modifyCueCallback_(u,r||null,o);let d=c.filter(u=>u.startTime>=this.appendWindowStart_&&u.startTime<this.appendWindowEnd_);this.displayer_.append(d),this.bufferStart_==null?this.bufferStart_=Math.max(t,this.appendWindowStart_):(v.assert(this.bufferEnd_!=null,"There should already be a buffered range end."),v.assert(t-this.bufferEnd_<=1,"There should not be a gap in text references >1s")),this.bufferEnd_=Math.min(i,this.appendWindowEnd_)}async remove(e,t,i=!1){if(await Promise.resolve(),e>=t||i&&(this.removeClosedCaptions_(e,t),this.selectedClosedCaptionId_===""))return;let r=s=>s.startTime<t&&s.endTime>e;for(let s of this.deferredAppends_.keys()){let n=this.deferredAppends_.get(s),a=[];for(let o=0;o<n.length;o++){let c=n[o];r(c)||a.push(c)}this.deferredAppends_.set(s,a)}this.displayer_&&this.displayer_.remove(e,t)&&(this.bufferStart_==null?v.assert(this.bufferEnd_==null,"end must be null if startTime is null"):(v.assert(this.bufferEnd_!=null,"end must be non-null if startTime is non-null"),t<=this.bufferStart_||e>=this.bufferEnd_||(e<=this.bufferStart_&&t>=this.bufferEnd_?this.bufferStart_=this.bufferEnd_=null:e<=this.bufferStart_&&t<this.bufferEnd_?this.bufferStart_=t:e>this.bufferStart_&&t>=this.bufferEnd_?this.bufferEnd_=e:v.assert(!1,"removal from the middle is not supported by TextEngine")),this.updateRangesWithClosedCaptions_()))}setTimestampOffset(e,t=-1){(!this.timestampOffsetMap_.has(t)||this.manifestType_!==me.HLS||this.manifestType_===me.HLS&&t===-1&&this.timestampOffsetMap_.get(t)===0)&&this.timestampOffsetMap_.set(t,e);let r=this.deferredAppends_.get(t)||[];for(let s=0;s<r.length;s++){let{buffer:n,startTime:a,endTime:o,uri:c,disco:d}=r[s];this.appendBuffer(n,a,o,c,d)}this.deferredAppends_.set(t,[])}setContainerIsMpegTs(e){this.containerIsMpegTs_=e}setAppendWindow(e,t){this.appendWindowStart_=e,this.appendWindowEnd_=t}bufferStart(){return this.bufferStart_}bufferEnd(){return this.bufferEnd_}isBuffered(e){return this.bufferStart_==null||this.bufferEnd_==null?!1:e>=this.bufferStart_&&e<this.bufferEnd_}bufferedAheadOf(e){return this.bufferEnd_==null||this.bufferEnd_<e?0:(v.assert(this.bufferStart_!=null,"start should not be null if end is not null"),this.bufferEnd_-Math.max(e,this.bufferStart_))}bufferedBehindOf(e){return this.bufferStart_==null||this.bufferStart_>e?0:(v.assert(this.bufferEnd_!=null,"end should not be null if start is not null"),Math.min(e,this.bufferEnd_)-this.bufferStart_)}setSelectedClosedCaptionId(e,t){this.selectedClosedCaptionId_=e;let i=this.closedCaptionsMap_.get(e);if(i){let r=i.filter(s=>s.endTime<=t);r.length&&this.displayer_.append(r)}}applyVideoTimestampOffsetRecursive_(e,t){e.startTime+=t,e.endTime+=t;for(let i of e.nestedCues)this.applyVideoTimestampOffsetRecursive_(i,t)}storeAndAppendClosedCaptions(e,t){let i=new Map;for(let r of e){let s=r.stream,n=r.cue;i.getOrInsert(s,[]),this.applyVideoTimestampOffsetRecursive_(n,t),n.startTime>=this.appendWindowStart_&&n.startTime<this.appendWindowEnd_&&(i.get(s).push(n),s==this.selectedClosedCaptionId_&&this.displayer_.append([n]))}for(let r of i.keys()){let s=this.closedCaptionsMap_.getOrInsertComputed(r,()=>[]);for(let n of i.get(r))s.push(n)}this.updateRangesWithClosedCaptions_()}removeClosedCaptions_(e,t){for(let i of this.closedCaptionsMap_.keys()){let r=this.closedCaptionsMap_.get(i);r=r.filter(s=>s.startTime<e||s.endTime>=t),this.closedCaptionsMap_.set(i,r)}}updateRangesWithClosedCaptions_(){let e=1/0,t=-1/0;for(let i of this.closedCaptionsMap_.values())for(let r of i)e=Math.min(e,r.startTime),t=Math.max(t,r.endTime);e===1/0||t===-1/0||(this.bufferStart_==null?this.bufferStart_=Math.max(e,this.appendWindowStart_):this.bufferStart_=Math.min(this.bufferStart_,Math.max(e,this.appendWindowStart_)),this.bufferEnd_=Math.max(this.bufferEnd_,Math.min(t,this.appendWindowEnd_)))}getNumberOfClosedCaptionChannels(){return this.closedCaptionsMap_.size}getNumberOfClosedCaptionsInChannel(e){let t=this.closedCaptionsMap_.get(e);return t?t.length:0}};l(cr,"parserMap_",new Map);var Ue=cr;/*! @license
202
+ * Shaka Player
203
+ * Copyright 2016 Google LLC
204
+ * SPDX-License-Identifier: Apache-2.0
205
+ */var Ce=class Ce{static chooseCodecsAndFilterManifest(e,t,i,r,s){if(s.length){let f=e.textStreams;for(let g of s){let _=f.filter(T=>!!(T.codecs.startsWith(g)||T.mimeType.startsWith(g)));if(_.length){f=_;break}}e.textStreams=f}let n=e.variants;if((t.length||i.length)&&(n=Ce.choosePreferredCodecs(n,t,i)),r.length){let f=new lr;for(let _ of n)f.push(String(_.video.width||0),_);let g=[];f.forEach((_,T)=>{let S=0,b=[];for(let E of T){let C=r.filter(A=>E.decodingInfos[0][A]).length;C>S?(S=C,b=[E]):C==S&&b.push(E)}g.push(...b)}),n=g}let a=new Set;for(let f of n)f.video&&a.add(f.video);if(!a.size){e.variants=n;return}let o={vp8:1,avc:1,"dovi-avc":.95,vp9:.9,vp09:.9,hevc:.85,"dovi-hevc":.8,"dovi-p5":.75,av01:.7,"dovi-av1":.65,vvc:.6},c=Array.from(a).sort((f,g)=>{if(f.bandwidth&&g.bandwidth&&f.bandwidth!=g.bandwidth)return f.bandwidth-g.bandwidth;if(f.width!=g.width)return f.width-g.width;if(f.codecs&&g.codecs){let _=N.getNormalizedCodec(f.codecs),T=N.getNormalizedCodec(g.codecs),S=o[_]||1,b=o[T]||1;return S-b}return 0}),d=[],u=new Map,m=f=>{let g=[String(f.width||""),String(f.height||""),String(Math.round(f.frameRate||0)),f.hdr||"",f.fastSwitching];return f.dependencyStream&&g.push(f.dependencyStream.baseOriginalId||""),f.roles&&g.push(f.roles.sort().join("_")),g.join(";")};for(let f of c){let g=m(f),_=u.get(g)||[];if(!_.length)_.push(f),d.push(f.id);else{let T=_[_.length-1],S=N.getNormalizedCodec(T.codecs),b=N.getNormalizedCodec(f.codecs);S==b&&(_.push(f),d.push(f.id))}u.set(g,_)}e.variants=n.filter(f=>{let g=f.video;return g&&!d.includes(g.id)?(p.debug("Dropping Variant (better codec available)",f),!1):!0})}static choosePreferredCodecs(e,t,i){let r=e;for(let s of t){let n=r.filter(a=>a.video&&a.video.codecs.startsWith(s));if(n.length){r=n;break}}for(let s of i){let n=r.filter(a=>a.audio&&a.audio.codecs.startsWith(s));if(n.length){r=n;break}}return r}static filterByRestrictions(e,t,i){e.variants=e.variants.filter(r=>Ce.meetsRestrictions(r,t,i))}static meetsRestrictions(e,t,i){let r=(s,n,a)=>s>=n&&s<=a;if(e&&e.video&&e.video.width&&e.video.height){let s=e.video.width,n=e.video.height;if(n>s&&([s,n]=[n,s]),!r(s,t.minWidth,Math.min(t.maxWidth,i.width))||!r(n,t.minHeight,Math.min(t.maxHeight,i.height))||!r(s*n,t.minPixels,t.maxPixels))return!1}return!(e&&e.video&&e.video.frameRate&&!r(e.video.frameRate,t.minFrameRate,t.maxFrameRate)||e&&e.audio&&e.audio.channelsCount&&!r(e.audio.channelsCount,t.minChannelsCount,t.maxChannelsCount)||!r(e.bandwidth,t.minBandwidth,t.maxBandwidth))}static applyRestrictions(e,t,i){let r=!1;for(let s of e){let n=s.allowedByApplication;s.allowedByApplication=Ce.meetsRestrictions(s,t,i),n!=s.allowedByApplication&&(r=!0)}return r}static async filterManifest(e,t,i=[],r={}){await Ce.filterManifestByMediaCapabilities(e,t,t.offlineSessionIds.length>0,i,r),Ce.filterTextStreams_(t),await Ce.filterImageStreams_(t)}static async filterManifestByMediaCapabilities(e,t,i,r,s){v.assert(navigator.mediaCapabilities,"MediaCapabilities should be valid."),j.getDevice().shouldOverrideDolbyVisionCodecs()&&Ce.overrideDolbyVisionCodecs(t.variants),await Ce.getDecodingInfosForVariants(t.variants,i,!1,r);let n=null;if(e){let a=e.getDrmInfo();a&&(n=a.keySystem)}t.variants=t.variants.filter(a=>{let o=Ce.checkVariantSupported_(a,n,s);return o||p.debug("Dropping variant - not compatible with platform",Ce.getVariantSummaryString_(a)),o})}static overrideDolbyVisionCodecs(e){let t=new Map().set("dvav","avc3").set("dva1","avc1").set("dvhe","hev1").set("dvh1","hvc1").set("dvc1","vvc1").set("dvi1","vvi1"),i=new Set;for(let r of e)r.video&&i.add(r.video);for(let r of i)for(let[s,n]of t)if(r.codecs.includes(s)){r.codecs=r.codecs.replace(s,n);break}}static checkVariantSupported_(e,t,i){if(!e.decodingInfos.some(g=>{if(!g.supported)return!1;if(t){let _=g.keySystemAccess;if(_&&(i[_.keySystem]||_.keySystem)!=t)return!1}return!0}))return!1;let s=j.getDevice(),n=s.getDeviceName()==="Xbox",a=s.getDeviceType()===ie.DeviceType.MOBILE&&s.getBrowserEngine()===ie.BrowserEngine.GECKO,o=e.video,c=o&&o.width||0,d=o&&o.height||0;if(n&&o&&(c>1920||d>1080)&&(o.codecs.includes("avc1.")||o.codecs.includes("avc3.")))return!1;let u=o&&o.dependencyStream;if(u&&!wr.isStreamSupported(u))return!1;let m=e.audio;return!(a&&m&&m.encrypted&&m.codecs.toLowerCase().includes("opus")||m&&m.dependencyStream)}static async getDecodingInfosForVariant_(e,t){let i=(n,a)=>{if(n){let o=Ne.shallowCloneObject(n);return o.supported=n.supported&&a.supported,o.powerEfficient=n.powerEfficient&&a.powerEfficient,o.smooth=n.smooth&&a.smooth,a.keySystemAccess&&!o.keySystemAccess&&(o.keySystemAccess=a.keySystemAccess),o}else return a},r=null,s=[];for(let n of t){let a=Ne.alphabeticalKeyOrderStringify(n),o=Ce.decodingConfigCache_;o.has(a)?(p.v2("Using cached results of mediaCapabilities.decodingInfo","for key",a),r=i(r,o.get(a))):s.push(Ce.checkEachDecodingConfigCombination_(n).then(c=>{let d=null;for(let u of c||[])d=i(d,u);d&&(o.set(a,d),r=i(r,d))}))}await Promise.all(s),r&&e.decodingInfos.push(r)}static checkEachDecodingConfigCombination_(e){let t=[""];e.video&&(t=N.getCodecs(e.video.contentType).split(","));let i=[""];e.audio&&(i=N.getCodecs(e.audio.contentType).split(","));let r=[];for(let s of t)for(let n of i){let a=Ne.cloneObject(e);if(e.video){let o=N.getBasicType(a.video.contentType);a.video.contentType=N.getFullType(o,s)}if(e.audio){let o=N.getBasicType(a.audio.contentType);a.audio.contentType=N.getFullType(o,n)}r.push(new Promise((o,c)=>{let u;j.getDevice().getDeviceType()==ie.DeviceType.MOBILE?u=it.promiseWithTimeout(5,navigator.mediaCapabilities.decodingInfo(a)):u=navigator.mediaCapabilities.decodingInfo(a),u.then(f=>{o(f)}).catch(c)}))}return Promise.all(r).catch(s=>(p.info("MediaCapabilities.decodingInfo() failed.",JSON.stringify(e),s),null))}static async getDecodingInfosForVariants(e,t,i,r){if(e.some(n=>n.decodingInfos.length)){p.debug("Already got the variants' decodingInfo.");return}for(let n of r){let a=!1;for(let o of e){let c=Ce.getDecodingConfigs_(o,t,i).filter(d=>{let u=d[0],m=u.keySystemConfiguration&&u.keySystemConfiguration.keySystem;return!m||m===n});for(let d of c)await Ce.getDecodingInfosForVariant_(o,d);o.decodingInfos.some(d=>d.supported)&&(a=!0)}if(a)return}for(let n of e){let a=Ce.getDecodingConfigs_(n,t,i).filter(o=>{let c=o[0],d=c.keySystemConfiguration&&c.keySystemConfiguration.keySystem;return!d||!r.includes(d)});for(let o of a)await Ce.getDecodingInfosForVariant_(n,o)}}static getDecodingConfigs_(e,t,i){let r=e.audio,s=e.video,n=R.ContentType,a=[],o=[];if(s)for(let S of s.fullMimeTypes){let b=N.getCodecs(S);if(b.includes(",")&&!r){let A=b.split(","),w=N.getBasicType(S);b=R.guessCodecs(n.VIDEO,A);let M=R.guessCodecs(n.AUDIO,A);M=N.getCorrectAudioCodecs(M,w);let x=N.getFullOrConvertedType(w,M,n.AUDIO);o.push({contentType:x,channels:2,bitrate:e.bandwidth||1,samplerate:1,spatialRendering:!1})}b=N.getCorrectVideoCodecs(b);let C={contentType:N.getFullOrConvertedType(N.getBasicType(S),b,n.VIDEO),width:s.width||64,height:s.height||64,bitrate:s.bandwidth||e.bandwidth||1,framerate:s.frameRate||30};if(s.hdr)switch(s.hdr){case"PQ":C.transferFunction="pq";break;case"HLG":C.transferFunction="hlg";break}s.colorGamut&&(C.colorGamut=s.colorGamut),a.push(C)}if(r)for(let S of r.fullMimeTypes){let b=N.getBasicType(S),E=N.getCorrectAudioCodecs(N.getCodecs(S),b),C=N.getFullOrConvertedType(b,E,n.AUDIO);o.push({contentType:C,channels:r.channelsCount||2,bitrate:r.bandwidth||e.bandwidth||1,samplerate:r.audioSamplingRate||1,spatialRendering:r.spatialAudio})}let c=[];a.length==0&&a.push(null),o.length==0&&o.push(null);for(let S of a)for(let b of o){let E={type:i?"file":"media-source"};S&&(E.video=S),b&&(E.audio=b),c.push(E)}let d=e.video?e.video.drmInfos:[],u=e.audio?e.audio.drmInfos:[],m=d.concat(u);if(!m.length)return[c];let f=[],g=new Map;for(let S of m)g.get(S.keySystem)||g.set(S.keySystem,[]),g.get(S.keySystem).push(S);let _=t?"required":"optional",T=t?["persistent-license"]:["temporary"];for(let S of g.keys()){let b=g.get(S),E=new Map;for(let C of b){let A=`${C.videoRobustness},${C.audioRobustness}`;E.get(A)||E.set(A,[]),E.get(A).push(C)}for(let C of E.values()){let A=[];for(let w of c){let M=Object.assign({},w),x={keySystem:S,initDataType:"cenc",persistentState:_,distinctiveIdentifier:"optional",sessionTypes:T};for(let k of C){if(k.initData&&k.initData.length){let L=new Set;for(let V of k.initData)L.add(V.initDataType);L.size>1&&p.v2("DrmInfo contains more than one initDataType,","and we use the initDataType of the first initData.",k),x.initDataType=k.initData[0].initDataType}k.distinctiveIdentifierRequired&&(x.distinctiveIdentifier="required"),k.persistentStateRequired&&(x.persistentState="required"),k.sessionType&&(x.sessionTypes=[k.sessionType]),r&&(x.audio?(k.encryptionScheme&&(x.audio.encryptionScheme=x.audio.encryptionScheme||k.encryptionScheme),x.audio.robustness=x.audio.robustness||k.audioRobustness):(x.audio={robustness:k.audioRobustness},k.encryptionScheme&&(x.audio.encryptionScheme=k.encryptionScheme)),x.audio.robustness==""&&delete x.audio.robustness),s&&(x.video?(k.encryptionScheme&&(x.video.encryptionScheme=x.video.encryptionScheme||k.encryptionScheme),x.video.robustness=x.video.robustness||k.videoRobustness):(x.video={robustness:k.videoRobustness},k.encryptionScheme&&(x.video.encryptionScheme=k.encryptionScheme)),x.video.robustness==""&&delete x.video.robustness)}M.keySystemConfiguration=x,A.push(M)}f.push(A)}}return f}static filterManifestByCurrentVariant(e,t){t.variants=t.variants.filter(i=>{let r=i.audio,s=i.video;return r&&e&&e.audio&&!Ce.areStreamsCompatible_(r,e.audio)?(p.debug("Dropping variant - not compatible with active audio","active audio",Ce.getStreamSummaryString_(e.audio),"variant.audio",Ce.getStreamSummaryString_(r)),!1):s&&e&&e.video&&!Ce.areStreamsCompatible_(s,e.video)?(p.debug("Dropping variant - not compatible with active video","active video",Ce.getStreamSummaryString_(e.video),"variant.video",Ce.getStreamSummaryString_(s)),!1):!0})}static filterTextStreams_(e){e.textStreams=e.textStreams.filter(t=>{let i=N.getFullType(t.mimeType,t.codecs),r=Ue.isTypeSupported(i);return r||p.debug("Dropping text stream. Is not supported by the platform.",t),r})}static async filterImageStreams_(e){let t=[];for(let i of e.imageStreams){let r=i.mimeType;if(r=="application/mp4"&&i.codecs=="mjpg"&&(r="image/jpg"),!Ce.supportedImageMimeTypes_.has(r)){let n=Ce.minImage_.get(r);if(n){let a=await Ce.isImageSupported_(n);Ce.supportedImageMimeTypes_.set(r,a)}else Ce.supportedImageMimeTypes_.set(r,!1)}Ce.supportedImageMimeTypes_.get(r)?t.push(i):p.debug("Dropping image stream. Is not supported by the platform.",i)}e.imageStreams=t}static isImageSupported_(e){return new Promise(t=>{let i=new Image;i.src=e,"decode"in i?i.decode().then(()=>{t(!0)}).catch(()=>{t(!1)}):i.onload=i.onerror=()=>{t(i.height===2)}})}static areStreamsCompatible_(e,t){return!(e.mimeType!=t.mimeType||e.codecs.split(".")[0]!=t.codecs.split(".")[0])}static variantToTrack(e){let t=R.ContentType,i=e.audio,r=e.video,s=i?i.mimeType:null,n=r?r.mimeType:null,a=i?i.codecs:null,o=r?r.codecs:null,c=i?i.groupId:null,d=[];r&&d.push(r.mimeType),i&&d.push(i.mimeType);let u=d[0]||null,m=[];i&&m.push(i.kind),r&&m.push(r.kind);let f=m[0]||null,g=new Set;if(i)for(let S of i.roles)g.add(S);if(r)for(let S of r.roles)g.add(S);let _={id:e.id,active:!1,type:"variant",bandwidth:e.bandwidth,language:e.language,label:null,videoLabel:null,kind:f,width:null,height:null,frameRate:null,pixelAspectRatio:null,hdr:null,colorGamut:null,videoLayout:null,mimeType:u,audioMimeType:s,videoMimeType:n,codecs:"",audioCodec:a,videoCodec:o,primary:e.primary,roles:Array.from(g),audioRoles:null,videoRoles:null,audioLanguage:null,videoLanguage:null,forced:!1,videoId:null,audioId:null,audioGroupId:c,channelsCount:null,audioSamplingRate:null,spatialAudio:!1,tilesLayout:null,audioBandwidth:null,videoBandwidth:null,originalVideoId:null,originalAudioId:null,originalTextId:null,originalImageId:null,accessibilityPurpose:null,originalLanguage:null};if(r){_.videoId=r.id,_.originalVideoId=r.originalId,_.width=r.width||null,_.height=r.height||null,_.frameRate=r.frameRate||null,_.pixelAspectRatio=r.pixelAspectRatio||null,_.videoBandwidth=r.bandwidth||null,_.hdr=r.hdr||null,_.colorGamut=r.colorGamut||null,_.videoLayout=r.videoLayout||null,_.videoRoles=r.roles,_.videoLanguage=r.language||null,_.videoLabel=r.label;let S=r.dependencyStream;if(S&&(_.width=S.width||_.width,_.height=S.height||_.height,_.videoCodec=S.codecs||_.videoCodec,_.pixelAspectRatio=S.pixelAspectRatio||_.pixelAspectRatio,_.videoBandwidth&&S.bandwidth&&(_.videoBandwidth+=S.bandwidth)),o.includes(",")){_.channelsCount=r.channelsCount,_.audioSamplingRate=r.audioSamplingRate,_.spatialAudio=r.spatialAudio,_.originalLanguage=r.originalLanguage,_.audioMimeType=n;let b=o.split(",");try{_.videoCodec=R.guessCodecs(t.VIDEO,b),_.audioCodec=R.guessCodecs(t.AUDIO,b)}catch(E){}}}if(i){_.audioId=i.id,_.originalAudioId=i.originalId,_.channelsCount=i.channelsCount,_.audioSamplingRate=i.audioSamplingRate,_.audioBandwidth=i.bandwidth||null,_.spatialAudio=i.spatialAudio,_.label=i.label,_.audioRoles=i.roles,_.audioLanguage=i.language||null,_.accessibilityPurpose=i.accessibilityPurpose,_.originalLanguage=i.originalLanguage;let S=i.dependencyStream;S&&(_.audioCodec=S.codecs||_.audioCodec,_.audioBandwidth&&S.bandwidth&&(_.audioBandwidth+=S.bandwidth))}r&&!_.videoBandwidth&&(i?_.audioBandwidth&&(_.videoBandwidth=_.bandwidth-_.audioBandwidth):_.videoBandwidth=_.bandwidth),i&&!_.audioBandwidth&&(r?_.videoBandwidth&&(_.audioBandwidth=_.bandwidth-_.videoBandwidth):_.audioBandwidth=_.bandwidth);let T=[];return _.videoCodec&&T.push(_.videoCodec),_.audioCodec&&T.push(_.audioCodec),_.codecs=T.join(", "),_}static textStreamToTrack(e){let t=R.ContentType;return{id:e.id,active:!1,type:t.TEXT,bandwidth:e.bandwidth||0,language:e.language,label:e.label,kind:e.kind||null,mimeType:e.mimeType,codecs:e.codecs||null,primary:e.primary,roles:e.roles,accessibilityPurpose:e.accessibilityPurpose,forced:e.forced,originalTextId:e.originalId,originalLanguage:e.originalLanguage}}static imageStreamToTrack(e){let t=R.ContentType,i=e.width||null,r=e.height||null,s=null;e.segmentIndex&&(s=e.segmentIndex.earliestReference());let n=e.tilesLayout;return s&&(n=s.getTilesLayout()||n),n&&i!=null&&(i/=Number(n.split("x")[0])),n&&r!=null&&(r/=Number(n.split("x")[1])),{id:e.id,type:t.IMAGE,bandwidth:e.bandwidth||0,width:i,height:r,mimeType:e.mimeType,codecs:e.codecs||null,tilesLayout:n||null,originalImageId:e.originalId}}static chapterStreamToTrack(e){let t=R.ContentType;return{id:e.id,type:t.CHAPTER,bandwidth:e.bandwidth||0,language:e.language}}static html5TrackId(e){return e.__shaka_id==null&&(e.__shaka_id=Ce.nextTrackId_++),e.__shaka_id}static html5TextTrackToTrack(e,t=!1){let i=R.ContentType,r={id:Ce.html5TrackId(e),active:t&&e.mode!="disabled",type:i.TEXT,bandwidth:0,language:ve.normalize(e.language||"und"),label:e.label,kind:e.kind,mimeType:null,codecs:null,primary:!1,roles:[],accessibilityPurpose:null,forced:e.kind=="forced",originalTextId:e.id,originalLanguage:e.language};return e.kind=="captions"&&(r.mimeType="unknown"),e.kind=="subtitles"&&(r.mimeType="text/vtt"),e.kind&&(r.roles=[e.kind]),r}static html5TextTrackToChapterTrack(e){let t=R.ContentType;return{id:Ce.html5TrackId(e),type:t.CHAPTER,bandwidth:0,language:ve.normalize(e.language||"und")}}static html5AudioTrackToTrack(e){let t=e.language,i={active:e.enabled,language:ve.normalize(t||"und"),label:e.label,mimeType:null,codecs:null,primary:e.kind=="main",roles:[],accessibilityPurpose:null,channelsCount:null,audioSamplingRate:null,spatialAudio:!1,originalLanguage:t};return e.kind&&(e.kind=="description"&&(i.accessibilityPurpose=me.AccessibilityPurpose.VISUALLY_IMPAIRED),i.roles.push(e.kind)),e.configuration&&(e.configuration.codec&&(i.codecs=e.configuration.codec),e.configuration.sampleRate&&(i.audioSamplingRate=e.configuration.sampleRate),e.configuration.numberOfChannels&&(i.channelsCount=e.configuration.numberOfChannels)),i}static html5TrackToShakaTrack(e,t){v.assert(e||t,"There must be at least audioTrack or videoTrack.");let i=e?e.language:null,r={id:Ce.html5TrackId(e||t),active:e?e.enabled:t.selected,type:"variant",bandwidth:0,language:ve.normalize(i||"und"),label:e?e.label:null,videoLabel:null,kind:e?e.kind:null,width:null,height:null,frameRate:null,pixelAspectRatio:null,hdr:null,colorGamut:null,videoLayout:null,mimeType:null,audioMimeType:null,videoMimeType:null,codecs:null,audioCodec:null,videoCodec:null,primary:e?e.kind=="main":!1,roles:[],forced:!1,audioRoles:null,videoRoles:null,audioLanguage:e?ve.normalize(e.language||"und"):null,videoLanguage:t?ve.normalize(t.language||"und"):null,videoId:null,audioId:null,audioGroupId:null,channelsCount:null,audioSamplingRate:null,spatialAudio:!1,tilesLayout:null,audioBandwidth:null,videoBandwidth:null,originalVideoId:t?t.id:null,originalAudioId:e?e.id:null,originalTextId:null,originalImageId:null,accessibilityPurpose:null,originalLanguage:i};if(e&&e.kind&&(r.roles=[e.kind],r.audioRoles=[e.kind]),e&&e.configuration&&(e.configuration.codec&&(r.audioCodec=e.configuration.codec,r.codecs=r.audioCodec),e.configuration.bitrate&&(r.audioBandwidth=e.configuration.bitrate,r.bandwidth+=r.audioBandwidth),e.configuration.sampleRate&&(r.audioSamplingRate=e.configuration.sampleRate),e.configuration.numberOfChannels&&(r.channelsCount=e.configuration.numberOfChannels)),t&&t.configuration&&(t.configuration.codec&&(r.videoCodec=t.configuration.codec,r.codecs?r.codecs+=","+r.videoCodec:r.codecs=r.videoCodec),t.configuration.bitrate&&(r.videoBandwidth=t.configuration.bitrate,r.bandwidth+=r.videoBandwidth),t.configuration.framerate&&(r.frameRate=t.configuration.framerate),t.configuration.width&&(r.width=t.configuration.width),t.configuration.height&&(r.height=t.configuration.height),t.configuration.colorSpace&&t.configuration.colorSpace.transfer))switch(t.configuration.colorSpace.transfer){case"pq":r.hdr="PQ";break;case"hlg":r.hdr="HLG";break;case"bt709":r.hdr="SDR";break}return r}static isPlayable(e){return e.allowedByApplication&&e.allowedByKeySystem&&e.disabledUntilTime==0}static getPlayableVariants(e){return e.filter(t=>Ce.isPlayable(t))}static filterStreamsByLanguageAndRole(e,t,i,r){if(!t)return[];let s=e,n=e.filter(c=>c.primary);n.length&&(s=n);let a=s.length?s[0].language:"";if(s=s.filter(c=>c.language==a),t){let c=ve.findClosestLocale(ve.normalize(t),e.map(d=>d.language));if(c)s=e.filter(d=>ve.normalize(d.language)==c);else return[]}if(s=s.filter(c=>c.forced==r),i){let c=Ce.filterStreamsByRole_(s,i);if(c.length)return c;p.warning("No exact match for the text role could be found.")}else{let c=s.filter(d=>d.roles.length==0);if(c.length)return c}let o=s.map(c=>c.roles).reduce((c,d)=>c.concat(d),[]);return o.length?Ce.filterStreamsByRole_(s,o[0]):s}static filterStreamsByRole_(e,t){return e.filter(i=>i.roles.includes(t))}static isAudio(e){let t=R.ContentType;return e.type==t.AUDIO}static isVideo(e){let t=R.ContentType;return e.type==t.VIDEO}static getVariantStreams(e){let t=[];return e.audio&&t.push(e.audio),e.video&&t.push(e.video),t}static isFastSwitching(e){return!!(e.audio&&e.audio.fastSwitching||e.video&&e.video.fastSwitching)}static setBetterIFrameStream(e,t){if(!t.length)return;let i=t.filter(r=>N.getNormalizedCodec(e.codecs)==N.getNormalizedCodec(r.codecs)).sort((r,s)=>!r.bandwidth||!s.bandwidth||r.bandwidth==s.bandwidth?(r.width||0)-(s.width||0):r.bandwidth-s.bandwidth);if(e.trickModeVideo=i[0],i.length>1){let r=i.find(s=>e.width==s.width&&e.height==s.height);r&&(e.trickModeVideo=r)}}static getVariantSummaryString_(e){let t=[];return e.audio&&t.push(Ce.getStreamSummaryString_(e.audio)),e.video&&t.push(Ce.getStreamSummaryString_(e.video)),t.join(", ")}static getStreamSummaryString_(e){return Ce.isAudio(e)?"type=audio codecs="+e.codecs+" bandwidth="+e.bandwidth+" channelsCount="+e.channelsCount+" audioSamplingRate="+e.audioSamplingRate:Ce.isVideo(e)?"type=video codecs="+e.codecs+" bandwidth="+e.bandwidth+" frameRate="+e.frameRate+" width="+e.width+" height="+e.height:"unexpected stream type"}static clearDecodingConfigCache(){Ce.decodingConfigCache_.clear()}static createStream(e){let t={id:0,originalId:null,groupId:null,createSegmentIndex:()=>Promise.resolve(),segmentIndex:null,mimeType:"",codecs:"",supplementalCodecs:"",encrypted:!1,drmInfos:[],keyIds:new Set,language:"",originalLanguage:null,label:null,type:"",primary:!1,trickModeVideo:null,dependencyStream:null,emsgSchemeIdUris:null,roles:[],accessibilityPurpose:null,forced:!1,channelsCount:null,audioSamplingRate:null,spatialAudio:!1,closedCaptions:null,external:!1,fastSwitching:!1,fullMimeTypes:new Set,isAudioMuxedInVideo:!1,baseOriginalId:null,isIframe:!1};return Object.assign(t,e),t.mimeType&&t.fullMimeTypes.add(N.getFullType(t.mimeType,t.codecs)),t}static createEmptyVariant(e){let t=R.ContentType,i={id:0,language:"und",disabledUntilTime:0,primary:!1,audio:null,video:null,bandwidth:100,allowedByApplication:!0,allowedByKeySystem:!0,decodingInfos:[]};for(let r of e){let s=Ce.createStream({mimeType:r?N.getBasicType(r):"",codecs:r?N.getCodecs(r):"",encrypted:!0,language:"und",type:t.VIDEO});r.startsWith("audio/")?(s.type=t.AUDIO,i.audio=s):i.video=s}return i}};l(Ce,"decodingConfigCache_",new Map),l(Ce,"nextTrackId_",0),l(Ce,"DecodingAttributes",{SMOOTH:"smooth",POWER:"powerEfficient"});var se=Ce;se.supportedImageMimeTypes_=new Map().set("image/svg+xml",!0).set("image/png",!0).set("image/jpeg",!0).set("image/jpg",!0);se.minWebPImage_="data:image/webp;base64,UklGRjoAAABXRUJQVlA4IC4AAACyAgCdASoCAAIALmk0mk0iIiIiIgBoSygABc6WWgAA/veff/0PP8bA//LwYAAA";se.minAvifImage_="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAAB0AAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAIAAAACAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQ0MAAAAABNjb2xybmNseAACAAIAAYAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAACVtZGF0EgAKCBgANogQEAwgMg8f8D///8WfhwB8+ErK42A=";se.minImage_=new Map().set("image/webp",se.minWebPImage_).set("image/avif",se.minAvifImage_);/*! @license
206
+ * Shaka Player
207
+ * Copyright 2016 Google LLC
208
+ * SPDX-License-Identifier: Apache-2.0
209
+ */var yi=class yi{constructor(e){l(this,"playerInterface_");l(this,"mediaKeys_");l(this,"video_");l(this,"initialized_");l(this,"initializedForStorage_");l(this,"licenseTimeSeconds_");l(this,"currentDrmInfo_");l(this,"eventManager_");l(this,"activeSessions_");l(this,"activeRequests_");l(this,"storedPersistentSessions_");l(this,"hasInitData_");l(this,"allSessionsLoaded_");l(this,"config_");l(this,"onError_");l(this,"keyStatusByKeyId_");l(this,"announcedKeyStatusByKeyId_");l(this,"keyStatusTimer_");l(this,"usePersistentLicenses_");l(this,"mediaKeyMessageEvents_");l(this,"initialRequestsSent_");l(this,"expirationTimer_");l(this,"destroyer_");l(this,"srcEquals_");l(this,"mediaKeysAttached_");l(this,"manifestInitData_");l(this,"isPreload_");this.playerInterface_=e,this.mediaKeys_=null,this.video_=null,this.initialized_=!1,this.initializedForStorage_=!1,this.licenseTimeSeconds_=0,this.currentDrmInfo_=null,this.eventManager_=new ue,this.activeSessions_=new Map,this.activeRequests_=[],this.storedPersistentSessions_=new Map,this.hasInitData_=!1,this.allSessionsLoaded_=Promise.withResolvers(),this.config_=null,this.onError_=i=>{i.severity==h.Severity.CRITICAL&&this.allSessionsLoaded_.reject(i),e.onError(i)},this.keyStatusByKeyId_=new Map,this.announcedKeyStatusByKeyId_=new Map,this.keyStatusTimer_=new ae(()=>this.processKeyStatusChanges_()),this.usePersistentLicenses_=!1,this.mediaKeyMessageEvents_=[],this.initialRequestsSent_=!1,this.expirationTimer_=new ae(()=>{this.pollExpiration_()});let t=()=>{};this.allSessionsLoaded_.promise.catch(t),this.destroyer_=new ci(()=>this.destroyNow_()),this.srcEquals_=!1,this.mediaKeysAttached_=null,this.manifestInitData_=null,this.isPreload_=()=>!1}destroy(){return this.destroyer_.destroy()}async destroyNow_(){if(this.eventManager_.release(),this.eventManager_=null,this.allSessionsLoaded_.reject(),this.expirationTimer_.stop(),this.expirationTimer_=null,this.keyStatusTimer_.stop(),this.keyStatusTimer_=null,await this.closeOpenSessions_(),this.video_){de.isMediaKeysPolyfilled("webkit")||v.assert(!this.video_.src&&!this.video_.getElementsByTagName("source").length,"video src must be removed first!");try{await this.video_.setMediaKeys(null)}catch(e){p.alwaysWarn("DrmEngine.destroyNow_ exception",e)}this.video_=null}this.currentDrmInfo_=null,this.mediaKeys_=null,this.storedPersistentSessions_=new Map,this.config_=null,this.onError_=()=>{},this.playerInterface_=null,this.srcEquals_=!1,this.mediaKeysAttached_=null}configure(e,t){this.config_=e,t&&(this.isPreload_=t),this.expirationTimer_&&this.initialized_&&this.currentDrmInfo_&&this.expirationTimer_.tickEvery(this.config_.updateExpirationTime)}setSrcEquals(e){this.srcEquals_=e}initForStorage(e,t){return this.initializedForStorage_=!0,this.storedPersistentSessions_=new Map,this.usePersistentLicenses_=t,this.init_(e,!1)}initForPlayback(e,t,i=!0){this.storedPersistentSessions_=new Map;for(let r of t)this.storedPersistentSessions_.set(r,{initData:null,initDataType:null});for(let r of this.config_.persistentSessionsMetadata)this.storedPersistentSessions_.set(r.sessionId,{initData:r.initData,initDataType:r.initDataType});return this.usePersistentLicenses_=this.storedPersistentSessions_.size>0,this.init_(e,i)}async initForRemoval(e,t,i,r,s){let n=[];s.length&&n.push(s[0].contentType),r.length&&n.push(r[0].contentType);let a=c=>{let d=R.createDrmInfo(e,c,null);return d.licenseServerUri=t,d.serverCertificate=i,d.persistentStateRequired=!0,d.sessionType="persistent-license",d},o=se.createEmptyVariant(n);if(o.video){let c=a(s[0].encryptionScheme||"");o.video.drmInfos.push(c)}if(o.audio){let c=a(r[0].encryptionScheme||"");o.audio.drmInfos.push(c)}return await se.getDecodingInfosForVariants([o],!0,this.srcEquals_,[]),this.destroyer_.ensureNotDestroyed(),this.queryMediaKeys_([o])}async init_(e,t){v.assert(this.config_,"DrmEngine configure() must be called before init()!"),yi.configureClearKey(this.config_.clearKeys,e);let i=e.some(u=>!!(u.video&&u.video.drmInfos.length||u.audio&&u.audio.drmInfos.length)),r=Zt.asMap(this.config_.servers),s=Zt.asMap(this.config_.advanced||{});!i&&t&&yi.replaceDrmInfo_(e,r);let n=new WeakSet;for(let u of e){let m=this.getVariantDrmInfos_(u);for(let f of m)n.has(f)||(n.add(f),yi.fillInDrmInfoDefaults_(f,r,s,this.config_.keySystemsMapping))}let a=(u,m)=>{let f=[];for(let g of u){let _=g[m]||s.has(g.keySystem)&&s.get(g.keySystem)[m]||"";if(_==""&&de.isWidevineKeySystem(g.keySystem)&&(m=="audioRobustness"?_=[this.config_.defaultAudioRobustnessForWidevine]:m=="videoRobustness"&&(_=[this.config_.defaultVideoRobustnessForWidevine])),typeof _=="string")f.push(g);else if(Array.isArray(_)){_.length===0&&(_=[""]);for(let T of _)f.push(Object.assign({},g,{[m]:T}))}}return f},o=new WeakSet;for(let u of e)u.video&&!o.has(u.video)&&(u.video.drmInfos=a(u.video.drmInfos,"videoRobustness"),u.video.drmInfos=a(u.video.drmInfos,"audioRobustness"),o.add(u.video)),u.audio&&!o.has(u.audio)&&(u.audio.drmInfos=a(u.audio.drmInfos,"videoRobustness"),u.audio.drmInfos=a(u.audio.drmInfos,"audioRobustness"),o.add(u.audio));if(await se.getDecodingInfosForVariants(e,this.usePersistentLicenses_,this.srcEquals_,this.config_.preferredKeySystems),this.destroyer_.ensureNotDestroyed(),!(i||r.size>0))return this.initialized_=!0,Promise.resolve();let d=this.queryMediaKeys_(e);return i?d:d.catch(()=>{})}async attachMediaKeys_(){if(!this.video_.mediaKeys){if(this.mediaKeysAttached_){await this.mediaKeysAttached_,this.destroyer_.ensureNotDestroyed();return}try{this.mediaKeysAttached_=this.video_.setMediaKeys(this.mediaKeys_),await this.mediaKeysAttached_}catch(e){v.assert(e instanceof Error,"Wrong error type!"),this.onError_(new h(h.Severity.CRITICAL,h.Category.DRM,h.Code.FAILED_TO_ATTACH_TO_VIDEO,e.message))}this.destroyer_.ensureNotDestroyed()}}async onEncryptedEvent_(e){await this.attachMediaKeys_(),this.newInitData(e.initDataType,D.toUint8(e.initData))}async attach(e){if(this.video_===e)return;if(!this.mediaKeys_){this.eventManager_.listenOnce(e,"encrypted",n=>{this.onError_(new h(h.Severity.CRITICAL,h.Category.DRM,h.Code.ENCRYPTED_CONTENT_WITHOUT_DRM_INFO))});return}let t=j.getDevice();this.video_=e,this.config_.delayLicenseRequestUntilPlayed&&this.eventManager_.listenOnce(this.video_,"play",()=>this.onPlay_());let i=t.getRemote(this.video_);i?this.eventManager_.listenMulti(i,["connect","connecting","disconnect"],()=>{this.closeOpenSessions_()}):"webkitCurrentPlaybackTargetIsWireless"in this.video_&&this.eventManager_.listen(this.video_,"webkitcurrentplaybacktargetiswirelesschanged",()=>this.closeOpenSessions_()),this.manifestInitData_=this.currentDrmInfo_&&this.currentDrmInfo_.initData.find(n=>n.initData.length>0)||null;let r=this.currentDrmInfo_.keySystem,s=t.needWaitForEncryptedEvent(r);!s&&(this.manifestInitData_||this.currentDrmInfo_.keySystem!=="com.apple.fps"||this.storedPersistentSessions_.size)&&await this.attachMediaKeys_(),this.createOrLoad().catch(()=>{}),(s||!this.manifestInitData_&&!this.storedPersistentSessions_.size&&!this.config_.parseInbandPsshEnabled)&&this.eventManager_.listen(this.video_,"encrypted",n=>this.onEncryptedEvent_(n))}hasManifestInitData(){return!!this.manifestInitData_}async setServerCertificate(){if(v.assert(this.initialized_,"Must call init() before setServerCertificate"),!(!this.mediaKeys_||!this.currentDrmInfo_)){if(this.currentDrmInfo_.serverCertificateUri&&(!this.currentDrmInfo_.serverCertificate||!this.currentDrmInfo_.serverCertificate.length)){let e=K.makeRequest([this.currentDrmInfo_.serverCertificateUri],this.config_.retryParameters);try{let i=await this.playerInterface_.netEngine.request(K.RequestType.SERVER_CERTIFICATE,e,{isPreload:this.isPreload_()}).promise;this.currentDrmInfo_.serverCertificate=D.toUint8(i.data)}catch(t){throw v.assert(t instanceof h,"Wrong NetworkingEngine error type!"),new h(h.Severity.CRITICAL,h.Category.DRM,h.Code.SERVER_CERTIFICATE_REQUEST_FAILED,t)}if(this.destroyer_.destroyed())return}if(!(!this.currentDrmInfo_.serverCertificate||!this.currentDrmInfo_.serverCertificate.length))try{await this.mediaKeys_.setServerCertificate(this.currentDrmInfo_.serverCertificate)||p.warning("Server certificates are not supported by the key system. The server certificate has been ignored.")}catch(e){throw new h(h.Severity.CRITICAL,h.Category.DRM,h.Code.INVALID_SERVER_CERTIFICATE,e.message)}}}async removeSession(e){v.assert(this.mediaKeys_,"Must call init() before removeSession");let t=await this.loadOfflineSession_(e,{initData:null,initDataType:null});if(!t){p.v2("Ignoring attempt to remove missing session",e);return}let i=[],r=this.activeSessions_.get(t);r&&(r.updatePromise=Promise.withResolvers(),i.push(r.updatePromise.promise)),p.v2("Attempting to remove session",e),i.push(t.remove()),await Promise.all(i),this.activeSessions_.delete(t)}async createOrLoad(){if(this.storedPersistentSessions_.size){if(this.storedPersistentSessions_.forEach((i,r)=>{this.loadOfflineSession_(r,i)}),await this.allSessionsLoaded_.promise,(this.currentDrmInfo_&&this.currentDrmInfo_.keyIds||new Set([])).size>0&&this.areAllKeysUsable_())return this.allSessionsLoaded_.promise;this.hasInitData_=!1,this.allSessionsLoaded_=Promise.withResolvers(),this.allSessionsLoaded_.promise.catch(()=>{})}let e=(this.currentDrmInfo_?this.currentDrmInfo_.initData:[])||[];for(let t of e)this.newInitData(t.initDataType,t.initData);return this.areAllSessionsLoaded_()&&this.allSessionsLoaded_.resolve(),this.allSessionsLoaded_.promise}updateCurrentDrmInfo(e){this.currentDrmInfo_&&(this.currentDrmInfo_.mediaTypes!==e.mediaTypes&&(this.currentDrmInfo_.mediaTypes=e.mediaTypes),de.isClearKeyWihRawKey(e)&&(this.currentDrmInfo_=this.createDrmInfoByInfos_(this.currentDrmInfo_.keySystem,[this.currentDrmInfo_,e])))}newInitData(e,t){if(t.length){try{t=this.config_.initDataTransform(t,e,this.currentDrmInfo_)}catch(i){let r=i;i instanceof h||(r=new h(h.Severity.CRITICAL,h.Category.DRM,h.Code.INIT_DATA_TRANSFORM_ERROR,i)),this.onError_(r);return}if(this.config_.ignoreDuplicateInitData){let i=this.activeSessions_.values();for(let s of i)if(D.equal(t,s.initData)){p.debug("Ignoring duplicate init data.");return}let r=!1;if(this.storedPersistentSessions_.forEach((s,n)=>{!r&&D.equal(t,s.initData)&&(r=!0)}),r){p.debug("Ignoring duplicate init data.");return}}this.hasInitData_=!0,this.activeSessions_.size>0&&this.areAllSessionsLoaded_()&&(this.allSessionsLoaded_.resolve(),this.hasInitData_=!1,this.allSessionsLoaded_=Promise.withResolvers(),this.allSessionsLoaded_.promise.catch(()=>{})),this.createSession(e,t,this.currentDrmInfo_.sessionType)}}initialized(){return this.initialized_}getSessionIds(){let e=this.activeSessions_.keys(),t=Qi.map(e,i=>i.sessionId);return Array.from(t)}getActiveSessionsMetadata(){let e=this.activeSessions_.keys(),t=Qi.map(e,i=>{let r=this.activeSessions_.get(i);return{sessionId:i.sessionId,sessionType:r.type,initData:r.initData,initDataType:r.initDataType}});return Array.from(t)}renewLicense(e){this.activeSessions_.forEach((t,i)=>{(e==null||i.sessionId==e)&&this.triggerRenewal_(i)})}async retryLicensing(e,t=.1){this.destroyer_.ensureNotDestroyed(),p.info("Retrying licensing for session",e.sessionId);let i=null,r=null;if(this.activeSessions_.forEach((a,o)=>{o.sessionId===e.sessionId&&(i=o,r=a)}),!i||!r)return p.warning("Session not found for retry:",e.sessionId),!1;if(!this.currentDrmInfo_)return p.warning("No DRM info available for retry"),!1;if(!r.initData||!r.initDataType)return p.error("Missing initData or initDataType for session retry"),!1;let s=r.initData,n=r.initDataType;t>0&&await it.delay(t);try{this.activeSessions_.delete(i),await this.closeSession_(i);let a=this.createSession(n,s,this.currentDrmInfo_.sessionType,!1);if(!a)throw new h(h.Severity.CRITICAL,h.Category.DRM,h.Code.FAILED_TO_CREATE_SESSION,"Failed to create new session for license retry");return p.info("Successfully created new session for retry:",a.sessionId),!0}catch(a){return p.error("Failed to retry licensing:",a),!1}}getExpiration(){let e=1/0,t=this.activeSessions_.keys();for(let i of t)isNaN(i.expiration)||(e=Math.min(e,i.expiration));return e}getLicenseTime(){return this.licenseTimeSeconds_?this.licenseTimeSeconds_:NaN}getDrmInfo(){return this.currentDrmInfo_}getMediaKeys(){return this.mediaKeys_}getKeyStatuses(){return Zt.asObject(this.announcedKeyStatusByKeyId_)}async queryMediaKeys_(e){let t=new Map,i=this.getKeySystemAccessFromVariants_(e,t);if(!i)throw navigator.requestMediaKeySystemAccess?new h(h.Severity.CRITICAL,h.Category.DRM,h.Code.REQUESTED_KEY_SYSTEM_CONFIG_UNAVAILABLE):new h(h.Severity.CRITICAL,h.Category.DRM,h.Code.MISSING_EME_SUPPORT);this.destroyer_.ensureNotDestroyed();try{let r=i.getConfiguration();p.v2("Got MediaKeySystemAccess with configuration",r);let s=this.config_.keySystemsMapping[i.keySystem]||i.keySystem;if(this.currentDrmInfo_=this.createDrmInfoByInfos_(s,t.get(s)),!this.currentDrmInfo_.licenseServerUri)throw new h(h.Severity.CRITICAL,h.Category.DRM,h.Code.NO_LICENSE_SERVER_GIVEN,this.currentDrmInfo_.keySystem);let n=await i.createMediaKeys();if(this.destroyer_.ensureNotDestroyed(),p.info("Created MediaKeys object for key system",this.currentDrmInfo_.keySystem),this.mediaKeys_=n,this.config_.minHdcpVersion!=""&&"getStatusForPolicy"in this.mediaKeys_)try{if(await this.mediaKeys_.getStatusForPolicy({minHdcpVersion:this.config_.minHdcpVersion})!="usable")throw new h(h.Severity.CRITICAL,h.Category.DRM,h.Code.MIN_HDCP_VERSION_NOT_MATCH);this.destroyer_.ensureNotDestroyed()}catch(a){throw a instanceof h?a:new h(h.Severity.CRITICAL,h.Category.DRM,h.Code.ERROR_CHECKING_HDCP_VERSION,a.message)}this.initialized_=!0,this.expirationTimer_.tickEvery(this.config_.updateExpirationTime),await this.setServerCertificate(),this.destroyer_.ensureNotDestroyed()}catch(r){throw this.destroyer_.ensureNotDestroyed(r),this.currentDrmInfo_=null,r instanceof h?r:new h(h.Severity.CRITICAL,h.Category.DRM,h.Code.FAILED_TO_CREATE_CDM,r.message)}}getKeySystemAccessFromVariants_(e,t){for(let r of e){let s=this.getVariantDrmInfos_(r);for(let n of s)t.getOrInsertComputed(n.keySystem,()=>[]).push(n)}if(t.size==1&&t.has(""))throw new h(h.Severity.CRITICAL,h.Category.DRM,h.Code.NO_RECOGNIZED_KEY_SYSTEMS);let i=this.config_.preferredKeySystems;if(!i.length){let r=Zt.asMap(this.config_.servers);r.size==1&&(i=Array.from(r.keys()))}for(let r of i)for(let s of e){let n=s.decodingInfos.find(a=>a.supported&&a.keySystemAccess!=null&&a.keySystemAccess.keySystem==r);if(n)return n.keySystemAccess}for(let r of[!0,!1])for(let s of e)for(let n of s.decodingInfos){if(!n.supported||!n.keySystemAccess)continue;let a=n.keySystemAccess.keySystem;if(i.includes(a))continue;let o=t.get(a);!o&&this.config_.keySystemsMapping[a]&&(o=t.get(this.config_.keySystemsMapping[a]));for(let c of o)if(!!c.licenseServerUri==r)return n.keySystemAccess}return null}checkSessionsLoaded_(){this.areAllSessionsLoaded_()&&this.allSessionsLoaded_.resolve()}setLoadSessionTimeoutTimer_(e){new ae(()=>{e.loaded=!0,this.checkSessionsLoaded_()}).tickAfter(yi.SESSION_LOAD_TIMEOUT_)}async loadOfflineSession_(e,t){let i,r="persistent-license";try{p.v1("Attempting to load an offline session",e),i=this.mediaKeys_.createSession(r)}catch(n){let a=new h(h.Severity.CRITICAL,h.Category.DRM,h.Code.FAILED_TO_CREATE_SESSION,n.message);return this.onError_(a),Promise.reject(a)}this.eventManager_.listen(i,"message",(n=>this.onSessionMessage_(n))),this.eventManager_.listen(i,"keystatuseschange",n=>this.onKeyStatusesChange_(n));let s={initData:t.initData,initDataType:t.initDataType,loaded:!1,oldExpiration:1/0,updatePromise:null,type:r,lastRenewalTime:0,isRenewal:!1};this.activeSessions_.set(i,s);try{let n=await i.load(e);if(this.destroyer_.ensureNotDestroyed(),p.v2("Loaded offline session",e,n),!n){this.activeSessions_.delete(i);let a=this.config_.persistentSessionOnlinePlayback?h.Severity.RECOVERABLE:h.Severity.CRITICAL;this.onError_(new h(a,h.Category.DRM,h.Code.OFFLINE_SESSION_REMOVED)),s.loaded=!0}return this.setLoadSessionTimeoutTimer_(s),this.checkSessionsLoaded_(),i}catch(n){this.destroyer_.ensureNotDestroyed(n),this.activeSessions_.delete(i);let a=this.config_.persistentSessionOnlinePlayback?h.Severity.RECOVERABLE:h.Severity.CRITICAL;this.onError_(new h(a,h.Category.DRM,h.Code.FAILED_TO_CREATE_SESSION,n.message)),s.loaded=!0,this.checkSessionsLoaded_()}return Promise.resolve()}createSession(e,t,i,r=!1){v.assert(this.mediaKeys_,"mediaKeys_ should be valid when creating temporary session.");let s;try{p.info("Creating new",i,"session"),s=this.mediaKeys_.createSession(i)}catch(a){return this.onError_(new h(h.Severity.CRITICAL,h.Category.DRM,h.Code.FAILED_TO_CREATE_SESSION,a.message)),null}this.eventManager_.listen(s,"message",(a=>this.onSessionMessage_(a))),this.eventManager_.listen(s,"keystatuseschange",a=>this.onKeyStatusesChange_(a));let n={initData:t,initDataType:e,loaded:!1,oldExpiration:1/0,updatePromise:null,type:i,lastRenewalTime:0,isRenewal:r};if(this.activeSessions_.set(s,n),s.closed.then(a=>{if(this.destroyer_.destroyed())return;let o=this.activeSessions_.get(s);o&&this.onSessionClosed_(s,o,a||"unknown")}).catch(a=>{p.warning("session.closed rejected:",a)}),this.config_.logLicenseExchange){let a=ne.toBase64(t);p.info("EME init data: type=",e,"data=",a)}return s.generateRequest(e,t).catch(a=>{if(this.destroyer_.destroyed())return;v.assert(a instanceof Error,"Wrong error type!"),this.activeSessions_.delete(s);let o=a.errorCode,c;o&&o.systemCode&&(c=o.systemCode,c<0&&(c+=Math.pow(2,32)),c="0x"+c.toString(16)),this.onError_(new h(h.Severity.CRITICAL,h.Category.DRM,h.Code.FAILED_TO_GENERATE_LICENSE_REQUEST,a.message,a,c))}),s}onSessionMessage_(e){this.delayLicenseRequest_()?this.mediaKeyMessageEvents_.push(e):this.sendLicenseRequest_(e)}delayLicenseRequest_(){return this.video_?this.config_.delayLicenseRequestUntilPlayed&&this.video_.paused&&!this.initialRequestsSent_:!this.initializedForStorage_&&this.config_.delayLicenseRequestUntilPlayed}async waitForActiveRequests(){this.hasInitData_&&!this.delayLicenseRequest_()&&(await this.allSessionsLoaded_.promise,await Promise.all(this.activeRequests_.map(e=>e.promise)))}async sendLicenseRequest_(e){let t=e.target;if(p.v1("Sending license request for session",t.sessionId,"of type",e.messageType),this.config_.logLicenseExchange){let m=ne.toBase64(e.message);p.info("EME license request",m)}let i=this.activeSessions_.get(t),r=this.currentDrmInfo_.licenseServerUri,s=this.config_.advanced[this.currentDrmInfo_.keySystem];e.messageType=="individualization-request"&&s&&s.individualizationServer&&(r=s.individualizationServer);let n=K.RequestType.LICENSE,a=K.makeRequest([r],this.config_.retryParameters);if(a.body=e.message,a.method="POST",a.licenseRequestType=e.messageType,a.sessionId=t.sessionId,a.drmInfo=this.currentDrmInfo_,i&&(a.initData=i.initData,a.initDataType=i.initDataType,i.isRenewal&&(a.licenseRequestType="license-renewal")),s&&s.headers)for(let m in s.headers)a.headers[m]=s.headers[m];let o=de.isClearKeySystem(this.currentDrmInfo_.keySystem);o&&this.fixClearKeyRequest_(a,this.currentDrmInfo_),de.isPlayReadyKeySystem(this.currentDrmInfo_.keySystem)&&this.unpackPlayReadyRequest_(a);let c=Date.now(),d;try{let m=this.playerInterface_.netEngine.request(n,a,{isPreload:this.isPreload_()});this.activeRequests_.push(m),d=await m.promise,ye.remove(this.activeRequests_,m)}catch(m){if(this.destroyer_.destroyed())return;v.assert(m instanceof h,"Wrong NetworkingEngine error type!");let f={sessionId:t.sessionId,sessionType:i.type,initData:i.initData,initDataType:i.initDataType},g=new h(h.Severity.CRITICAL,h.Category.DRM,h.Code.LICENSE_REQUEST_FAILED,m,f);if(this.config_.failureCallback)try{this.config_.failureCallback(g)}catch(_){p.error("Error in failureCallback:",_)}if(g.handled){p.info("License request failure handled by failureCallback"),i&&i.updatePromise&&i.updatePromise.reject(g);return}this.activeSessions_.size==1?(this.onError_(g),i&&i.updatePromise&&i.updatePromise.reject(g)):(i&&i.updatePromise&&i.updatePromise.reject(g),this.activeSessions_.delete(t),this.areAllSessionsLoaded_()&&(this.allSessionsLoaded_.resolve(),this.keyStatusTimer_.tickAfter(.1)));return}if(this.destroyer_.destroyed())return;if(this.licenseTimeSeconds_+=(Date.now()-c)/1e3,this.config_.logLicenseExchange){let m=ne.toBase64(d.data);p.info("EME license response",m)}o&&this.processClearKeyResponse_(d);try{p.v1("Updating session",t.sessionId),await t.update(d.data),i&&(i.lastRenewalTime=Date.now()/1e3)}catch(m){let f=m&&m.message||String(m),g=new h(h.Severity.CRITICAL,h.Category.DRM,h.Code.LICENSE_RESPONSE_REJECTED,f);this.onError_(g),i&&i.updatePromise&&i.updatePromise.reject(g);return}if(this.destroyer_.destroyed())return;let u=new U("drmsessionupdate");this.playerInterface_.onEvent(u),i&&(i.updatePromise&&i.updatePromise.resolve(),this.setLoadSessionTimeoutTimer_(i))}processClearKeyResponse_(e){let t=q.fromUTF8(e.data);try{let i=JSON.parse(t),r=new Map(i.keys.map(({kid:s,k:n})=>[de.normalizeClearKeyValue(s),de.normalizeClearKeyValue(n)]));if(!this.currentDrmInfo_.clearKeys)this.currentDrmInfo_.clearKeys=r;else for(let[s,n]of r)this.currentDrmInfo_.clearKeys.set(s,n)}catch(i){}}unpackPlayReadyRequest_(e){let t=q.fromUTF16(e.body,!0,!0);if(!t.includes("PlayReadyKeyMessage")){p.debug("PlayReady request is already unwrapped."),e.headers["Content-Type"]="text/xml; charset=utf-8";return}p.debug("Unwrapping PlayReady request.");let i=I.parseXmlString(t,"PlayReadyKeyMessage");v.assert(i,"Failed to parse PlayReady XML!");let r=I.getElementsByTagName(i,"HttpHeader");for(let n of r){let a=I.getElementsByTagName(n,"name")[0],o=I.getElementsByTagName(n,"value")[0];v.assert(a&&o,"Malformed PlayReady headers!"),e.headers[I.getTextContents(a)]=I.getTextContents(o)}let s=I.getElementsByTagName(i,"Challenge")[0];v.assert(s,"Malformed PlayReady challenge!"),v.assert(s.attributes.encoding=="base64encoded","Unexpected PlayReady challenge encoding!"),e.body=ne.fromBase64(I.getTextContents(s))}fixClearKeyRequest_(e,t){try{let i=q.fromBytesAutoDetect(e.body);if(i){let r=JSON.parse(i);r.type||(r.type=t.sessionType,e.body=q.toUTF8(JSON.stringify(r)))}}catch(i){p.info("Error unpacking ClearKey license",i)}}onKeyStatusesChange_(e){let t=e.target;p.v2("Key status changed for session",t.sessionId);let i=this.activeSessions_.get(t),r=t.keyStatuses,s=!1;r.forEach((a,o)=>{if(typeof o=="string"){let u=o;o=a,a=u}let c=j.getDevice();if(de.isPlayReadyKeySystem(this.currentDrmInfo_.keySystem)&&o.byteLength==16&&c.returnLittleEndianUsingPlayReady()){let u=D.toDataView(o),m=u.getUint32(0,!0),f=u.getUint16(4,!0),g=u.getUint16(6,!0);u.setUint32(0,m,!1),u.setUint16(4,f,!1),u.setUint16(6,g,!1)}i&&a!="status-pending"&&(i.loaded=!0),i||v.assert(a!="usable","Usable keys found in closed session"),a=="expired"&&(s=!0);let d=ne.toHex(o).slice(0,32);this.keyStatusByKeyId_.set(d,a)});let n=t.expiration-Date.now();(n<0||s&&n<1e3)&&i&&!i.updatePromise&&(p.debug("Session has expired",t.sessionId),this.activeSessions_.delete(t),this.closeSession_(t)),this.areAllSessionsLoaded_()&&(this.allSessionsLoaded_.resolve(),this.keyStatusTimer_.tickAfter(yi.KEY_STATUS_BATCH_TIME))}processKeyStatusChanges_(){let e=this.keyStatusByKeyId_,t=this.announcedKeyStatusByKeyId_;t.clear(),e.forEach((s,n)=>t.set(n,s));let i=Array.from(t.values());i.length&&i.every(s=>s=="expired")&&this.onError_(new h(h.Severity.CRITICAL,h.Category.DRM,h.Code.EXPIRED)),this.playerInterface_.onKeyStatus(Zt.asObject(t))}static async probeSupport(){let e=["org.w3.clearkey","com.widevine.alpha","com.microsoft.playready","com.microsoft.playready.hardware","com.microsoft.playready.recommendation","com.microsoft.playready.recommendation.3000","com.microsoft.playready.recommendation.3000.clearlead","com.chromecast.playready","com.apple.fps.1_0","com.apple.fps","com.huawei.wiseplay"];if(!de.isBrowserSupported()){let _={};for(let T of e)_[T]=null;return _}let t=["1.0","1.1","1.2","1.3","1.4","2.0","2.1","2.2","2.3"],i=["SW_SECURE_CRYPTO","SW_SECURE_DECODE","HW_SECURE_CRYPTO","HW_SECURE_DECODE","HW_SECURE_ALL"],s={"com.widevine.alpha":i,"com.widevine.alpha.experiment":i,"com.microsoft.playready.recommendation":["150","2000","3000"]},o={videoCapabilities:[{contentType:'video/mp4; codecs="avc1.42E01E"'},{contentType:'video/webm; codecs="vp8"'}],audioCapabilities:[{contentType:'audio/mp4; codecs="mp4a.40.2"'},{contentType:'audio/webm; codecs="opus"'}],initDataTypes:["cenc","sinf","skd","keyids"]},c=[null,"cenc","cbcs"],d=new Map,u=j.getDevice(),m=async(_,T,S)=>{let b;try{if(u.createMediaKeysWhenCheckingSupport())b=await T.createMediaKeys();else throw new Error("Suppressing Firefox Windows DRM in testing!")}catch(V){return}let E=T.getConfiguration().sessionTypes,C=E?E.includes("persistent-license"):!1;u.misreportsSupportForPersistentLicenses()&&(C=!1);let A=T.getConfiguration().videoCapabilities,w=T.getConfiguration().audioCapabilities,M={persistentState:C,encryptionSchemes:[],videoRobustnessLevels:[],audioRobustnessLevels:[],minHdcpVersions:[]};d.get(_)?M=d.get(_):d.set(_,M);let x=A[0].encryptionScheme;x&&!M.encryptionSchemes.includes(x)&&M.encryptionSchemes.push(x);let k=A[0].robustness;k&&!M.videoRobustnessLevels.includes(k)&&M.videoRobustnessLevels.push(k);let L=w[0].robustness;if(L&&!M.audioRobustnessLevels.includes(L)&&M.audioRobustnessLevels.push(L),S&&"getStatusForPolicy"in b)for(let V of t){if(M.minHdcpVersions.includes(V))continue;if(await b.getStatusForPolicy({minHdcpVersion:V})=="usable")M.minHdcpVersions.includes(V)||M.minHdcpVersions.push(V);else break}},f=async(_,T,S,b,E=!1)=>{try{let C=Ne.cloneObject(o);for(let L of C.videoCapabilities)L.encryptionScheme=T,L.robustness=S;for(let L of C.audioCapabilities)L.encryptionScheme=T,L.robustness=b;let A=Ne.cloneObject(C);A.persistentState="required",A.sessionTypes=["persistent-license"];let w=[A,C],M=5,x;j.getDevice().getDeviceType()==ie.DeviceType.MOBILE?x=await it.promiseWithTimeout(M,navigator.requestMediaKeySystemAccess(_,w)):x=await navigator.requestMediaKeySystemAccess(_,w),await m(_,x,E)}catch(C){}},g=[];for(let _ of e){d.set(_,null);let T=!0;for(let S of c)g.push(f(_,S,"","",T)),T=!1;for(let S of s[_]||[])g.push(f(_,null,S,"")),g.push(f(_,null,"",S))}return await Promise.all(g),Zt.asObject(d)}onPlay_(){for(let e of this.mediaKeyMessageEvents_)this.sendLicenseRequest_(e);this.initialRequestsSent_=!0,this.mediaKeyMessageEvents_=[]}async closeSession_(e){let t=null;try{t=(await it.promiseWithTimeout(yi.CLOSE_TIMEOUT_,Promise.all([e.close().catch(()=>{}),e.closed])))[1]}catch(i){p.warning("Timeout waiting for session close")}t&&this.handleSessionCloseReason_(e,t)}processSessionCloseReason_(e,t){e==="internal-error"?(p.error("CDM internal error. Cannot create new sessions."),this.onError_(new h(h.Severity.CRITICAL,h.Category.DRM,h.Code.FAILED_TO_CREATE_SESSION,"CDM reported internal error"))):e==="closed-by-application"?p.v1("Session closed by application"):e==="release-acknowledged"?p.v1("Session closed: license release acknowledged"):e==="resource-evicted"?p.warning("Session closed: resources evicted"):e==="hardware-context-reset"?t?(p.warning("Hardware context reset detected. Recreating session..."),this.recreateSessionAfterHardwareReset_(t)):p.warning("Hardware context reset detected during app close"):p.warning("Session closed with unknown reason:",e)}handleSessionCloseReason_(e,t){p.info("Session closed with reason",t,"sessionId",e.sessionId),t!=="unknown"&&this.processSessionCloseReason_(t)}onSessionClosed_(e,t,i){i!=="unknown"&&(p.info("CDM closed session with reason",i,"sessionId",e.sessionId),this.activeSessions_.delete(e),this.processSessionCloseReason_(i,t))}recreateSessionAfterHardwareReset_(e){if(p.info("Recreating session after hardware context reset","initDataType",e.initDataType),!e.initDataType||!e.initData){p.error("Cannot recreate session: missing initData or initDataType"),this.onError_(new h(h.Severity.CRITICAL,h.Category.DRM,h.Code.FAILED_TO_CREATE_SESSION,"Cannot recreate session after hardware reset: missing metadata"));return}try{this.createSession(e.initDataType,e.initData,e.type),p.info("Session successfully recreated after hardware reset")}catch(t){p.error("Failed to recreate session after hardware reset:",t),this.onError_(new h(h.Severity.CRITICAL,h.Category.DRM,h.Code.FAILED_TO_CREATE_SESSION,"Failed to recreate session after hardware context reset: "+t.message))}}async closeOpenSessions_(){let e=Array.from(this.activeSessions_.entries());this.activeSessions_.clear(),await Promise.all(e.map(async([t,i])=>{try{!this.initializedForStorage_&&!this.storedPersistentSessions_.has(t.sessionId)&&i.type==="persistent-license"&&!this.config_.persistentSessionOnlinePlayback?(p.v1("Removing session",t.sessionId),await t.remove()):(p.v1("Closing session",t.sessionId,i),await this.closeSession_(t))}catch(r){p.error("Failed to close or remove the session",r)}}))}getVariantDrmInfos_(e){let t=e.video?e.video.drmInfos:[],i=e.audio?e.audio.drmInfos:[];return t.concat(i)}pollExpiration_(){let e=Date.now()/1e3;this.activeSessions_.forEach((t,i)=>{let r=t.oldExpiration,s=i.expiration;if(isNaN(s)&&(s=1/0),s!=r&&(this.playerInterface_.onExpirationUpdated(i.sessionId,s),t.oldExpiration=s),this.config_.renewalIntervalSec>0){let n=e-t.lastRenewalTime;t.lastRenewalTime>0&&n>=this.config_.renewalIntervalSec&&this.triggerRenewal_(i)}})}async triggerRenewal_(e){p.info("Triggering license renewal for session",e.sessionId);let t=this.activeSessions_.get(e);if(t&&(t.lastRenewalTime=Date.now()/1e3),!this.currentDrmInfo_)return;let i=this.currentDrmInfo_.keySystem,r=e,s={sessionId:e.sessionId,sessionType:this.currentDrmInfo_.sessionType,initData:t?t.initData:null,initDataType:t?t.initDataType:null};try{if(de.isFairPlayKeySystem(i)){let c=q.toUTF8("renew");await e.update(c)}else if(de.isPlayReadyKeySystem(i)&&t&&t.initData&&t.initDataType)r=await this.requestPlayReadyLicenseForRenewal_(e,t);else{p.alwaysWarn("Manual license renewal is not supported for "+i);return}}catch(c){p.error("Failed to renew license:",c);return}let n=this.activeSessions_.get(r),a={sessionId:r.sessionId,sessionType:this.currentDrmInfo_.sessionType,initData:n?n.initData:null,initDataType:n?n.initDataType:null},o=new U("licenserenewal",new Map().set("oldSessionMetadata",s).set("newSessionMetadata",a));this.playerInterface_.onEvent(o)}async requestPlayReadyLicenseForRenewal_(e,t){v.assert(t.initDataType,"initDataType must be defined"),v.assert(t.initData,"initData must be defined"),this.activeSessions_.delete(e),await this.closeSession_(e);let i=this.createSession(t.initDataType,t.initData,this.currentDrmInfo_.sessionType,!0);if(!i)throw new h(h.Severity.CRITICAL,h.Category.DRM,h.Code.FAILED_TO_CREATE_SESSION,"Failed to create new session for renewal");return i}areAllSessionsLoaded_(){let e=this.activeSessions_.values();return Qi.every(e,t=>t.loaded)}areAllKeysUsable_(){let e=this.currentDrmInfo_&&this.currentDrmInfo_.keyIds||new Set([]);for(let t of e)if(this.keyStatusByKeyId_.get(t)!=="usable")return!1;return!0}static replaceDrmInfo_(e,t){let i=[];t.forEach((r,s)=>{i.push({keySystem:s,licenseServerUri:r,distinctiveIdentifierRequired:!1,persistentStateRequired:!1,audioRobustness:"",videoRobustness:"",serverCertificate:null,serverCertificateUri:"",initData:[],keyIds:new Set})});for(let r of e)r.video&&(r.video.drmInfos=i),r.audio&&(r.audio.drmInfos=i)}createDrmInfoByInfos_(e,t){let i=[],r=[],s=[],n=[],a=[],o=new Set,c=new Set;yi.processDrmInfos_(t,i,r,n,s,a,o,c),i.length>1&&p.warning("Multiple unique encryption schemes found! Only the first will be used."),n.length>1&&p.warning("Multiple unique server certificates found! Only the first will be used."),r.length>1&&p.warning("Multiple unique license server URIs found! Only the first will be used."),s.length>1&&p.warning("Multiple unique server certificate URIs found! Only the first will be used.");let d=this.usePersistentLicenses_?"persistent-license":"temporary",u={keySystem:e,encryptionScheme:i[0],licenseServerUri:r[0],distinctiveIdentifierRequired:t[0].distinctiveIdentifierRequired,persistentStateRequired:t[0].persistentStateRequired,sessionType:t[0].sessionType||d,audioRobustness:t[0].audioRobustness||"",videoRobustness:t[0].videoRobustness||"",serverCertificate:n[0],serverCertificateUri:s[0],initData:a,keyIds:o,mediaTypes:t[0].mediaTypes};c.size>0&&(u.keySystemUris=c);for(let m of t)m.distinctiveIdentifierRequired&&(u.distinctiveIdentifierRequired=m.distinctiveIdentifierRequired),m.persistentStateRequired&&(u.persistentStateRequired=m.persistentStateRequired);return u}static processDrmInfos_(e,t,i,r,s,n,a,o){let c=(m,f)=>m.keyId&&m.keyId==f.keyId?!0:m.initDataType==f.initDataType&&D.equal(m.initData,f.initData),d="data:application/json;base64,",u=[];for(let m of e){if(t.includes(m.encryptionScheme)||t.push(m.encryptionScheme),de.isClearKeySystem(m.keySystem)&&m.licenseServerUri.startsWith(d)?u.includes(m.licenseServerUri)||u.push(m.licenseServerUri):i.includes(m.licenseServerUri)||i.push(m.licenseServerUri),s.includes(m.serverCertificateUri)||s.push(m.serverCertificateUri),m.serverCertificate&&(r.some(g=>D.equal(g,m.serverCertificate))||r.push(m.serverCertificate)),m.initData)for(let f of m.initData)n.some(_=>c(_,f))||n.push(f);if(m.keyIds)for(let f of m.keyIds)a.add(f);if(m.keySystemUris&&o)for(let f of m.keySystemUris)o.add(f)}if(u.length==1)i.push(u[0]);else if(u.length>0){let m=[];for(let _ of u){let T=window.atob(_.split(d).pop()),S=JSON.parse(T);m.push(...S.keys)}let g=JSON.stringify({keys:m});i.push(d+window.btoa(g))}}static fillInDrmInfoDefaults_(e,t,i,r){let s=e.keySystem;if(!s||de.isClearKeySystem(s)&&e.licenseServerUri)return;if(t.size&&t.get(s)){let a=t.get(s);e.licenseServerUri=a}e.keyIds||(e.keyIds=new Set);let n=i.get(s);n&&(e.distinctiveIdentifierRequired||(e.distinctiveIdentifierRequired=n.distinctiveIdentifierRequired),e.persistentStateRequired||(e.persistentStateRequired=n.persistentStateRequired),e.serverCertificate||(e.serverCertificate=n.serverCertificate),n.sessionType&&(e.sessionType=n.sessionType),e.serverCertificateUri||(e.serverCertificateUri=n.serverCertificateUri)),r[s]&&(e.keySystem=r[s]),window.cast&&window.cast.__platform__&&s=="com.microsoft.playready"&&(e.keySystem="com.chromecast.playready")}parseInbandPssh(e,t){if(!this.config_.parseInbandPsshEnabled||this.manifestInitData_)return Promise.resolve();let i=R.ContentType;if(![i.AUDIO,i.VIDEO].includes(e))return Promise.resolve();let r=new ei(D.toUint8(t)),s=0;for(let o of r.data)s+=o.length;if(s==0)return Promise.resolve();let n=new Uint8Array(s),a=0;for(let o of r.data)n.set(o,a),a+=o.length;return this.newInitData("cenc",n),this.allSessionsLoaded_.promise}static configureClearKey(e,t){let i=Zt.asMap(e);if(i.size==0)return;let r=R.createDrmInfoFromClearKeys(i);for(let s of t)s.video&&(s.video.drmInfos=[r]),s.audio&&(s.audio.drmInfos=[r])}};l(yi,"CLOSE_TIMEOUT_",1),l(yi,"SESSION_LOAD_TIMEOUT_",5),l(yi,"KEY_STATUS_BATCH_TIME",.5);var Bi=yi;/*! @license
210
+ * Shaka Player
211
+ * Copyright 2016 Google LLC
212
+ * SPDX-License-Identifier: Apache-2.0
213
+ */var Kt={CAN_PLAY:"canplay",CAN_PLAY_THROUGH:"canplaythrough",DURATION_CHANGE:"durationchange",ENCRYPTED:"encrypted",ENDED:"ended",LOADED_DATA:"loadeddata",LOADED_METADATA:"loadedmetadata",PAUSE:"pause",PLAY:"play",PLAYING:"playing",PROGRESS:"progress",RATE_CHANGE:"ratechange",SEEKED:"seeked",SEEKING:"seeking",STALLED:"stalled",TIME_UPDATE:"timeupdate",VOLUME_CHANGE:"volumechange",WAITING:"waiting"};/*! @license
214
+ * Shaka Player
215
+ * Copyright 2016 Google LLC
216
+ * SPDX-License-Identifier: Apache-2.0
217
+ */var Fi=class Fi{constructor(e,t){l(this,"previousState_");l(this,"thresholds_");l(this,"lastRebufferTime_");l(this,"lastReportedTime_");let i=Fi.State;this.previousState_=i.SATISFIED,this.thresholds_=new Map().set(i.SATISFIED,t).set(i.STARVING,e),this.lastRebufferTime_=0,this.lastReportedTime_=-1}setThresholds(e,t){let i=Fi.State;this.thresholds_.set(i.SATISFIED,t).set(i.STARVING,e)}update(e,t){let i=Fi.State,r=this.thresholds_.get(this.previousState_),s=t||e>=r&&e>0?i.SATISFIED:i.STARVING;return this.setState(s)}setState(e){let t=Fi.State,i=this.previousState_!==e;return this.previousState_=e,i&&e===t.SATISFIED&&(this.lastRebufferTime_=Date.now()),i}getState(){return this.previousState_}getLastRebufferTime(){return this.lastRebufferTime_}resetLastRebufferTime(){this.lastRebufferTime_=0}reportEvent(e,t){p.v2("BufferingObserver got event",e,"at time",t);let i=this.lastReportedTime_;this.lastReportedTime_=t;let r;switch(e){case Kt.SEEKING:case Kt.WAITING:this.lastReportedTime_=-1,r=Fi.State.STARVING;break;case Kt.CAN_PLAY_THROUGH:case Kt.PLAYING:case Kt.SEEKED:r=Fi.State.SATISFIED;break;case Kt.TIME_UPDATE:i>=0&&t-i>.01&&(r=Fi.State.SATISFIED);break}return r!==void 0?this.setState(r):!1}};l(Fi,"State",{STARVING:0,SATISFIED:1});var Mr=Fi;/*! @license
218
+ * Shaka Player
219
+ * Copyright 2016 Google LLC
220
+ * SPDX-License-Identifier: Apache-2.0
221
+ */var rn=class rn{constructor(e,t,i){l(this,"config_");l(this,"maxHwRes_");l(this,"drmEngine_");v.assert(e,"Must have config"),this.config_=e,this.maxHwRes_=t,this.drmEngine_=i}setDrmEngine(e){this.drmEngine_=e}async filterManifest(e){if(v.assert(e,"Manifest should exist!"),await se.filterManifest(this.drmEngine_,e,this.config_.drm.preferredKeySystems,this.config_.drm.keySystemsMapping),!this.config_.streaming.dontChooseCodecs){let t=this.config_.preferredVideo.map(s=>s.codec).filter(Boolean),i=this.config_.preferredAudio.map(s=>s.codec).filter(Boolean),r=this.config_.preferredText.map(s=>s.format).filter(Boolean);se.chooseCodecsAndFilterManifest(e,t,i,this.config_.preferredDecodingAttributes,r)}return this.checkPlayableVariants_(e),this.filterManifestWithRestrictions(e)}applyRestrictions(e){return se.applyRestrictions(e.variants,this.config_.restrictions,this.maxHwRes_)}filterManifestWithRestrictions(e){let t=this.applyRestrictions(e);if(e){let i=this.drmEngine_?this.drmEngine_.getDrmInfo():null;if(i&&this.drmEngine_.getMediaKeys()){let r=new Set;for(let s of e.variants)s.audio&&r.add(s.audio),s.video&&r.add(s.video);for(let s of r)this.processDrmInfos(i.keySystem,s)}this.checkRestrictedVariants(e)}return t}checkPlayableVariants_(e){if(!e.variants.some(se.isPlayable))throw new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.CONTENT_UNSUPPORTED_BY_BROWSER)}processDrmInfos(e,t){for(let i of t.drmInfos)if(i.keySystem==e){for(let r of i.initData||[])this.drmEngine_.newInitData(r.initDataType,r.initData);this.drmEngine_.updateCurrentDrmInfo(i)}}checkRestrictedVariants(e){let t=rn.restrictedStatuses,i=this.drmEngine_?this.drmEngine_.getKeyStatuses():{},r=Object.keys(i),s=r.length&&r[0]=="00",n=!1,a=new Set,o=new Set,c=new WeakSet,d=m=>{if(!(!m||c.has(m))&&(c.add(m),m.keyIds.size))for(let f of m.keyIds){let g=i[s?"00":f];g?t.includes(g)&&o.add(g):a.add(f)}};for(let m of e.variants){if(!m.allowedByApplication)n=!0;else if(m.allowedByKeySystem)return;d(m.audio),d(m.video)}let u={hasAppRestrictions:n,missingKeys:Array.from(a),restrictedKeyStatuses:Array.from(o)};throw new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.RESTRICTIONS_CANNOT_BE_MET,u)}};l(rn,"restrictedStatuses",["output-restricted","internal-error"]);var Rr=rn;/*! @license
222
+ * Shaka Player
223
+ * Copyright 2016 Google LLC
224
+ * SPDX-License-Identifier: Apache-2.0
225
+ */var Pr={RELOAD:"reload",SMOOTH:"smooth"};/*! @license
226
+ * Shaka Player
227
+ * Copyright 2016 Google LLC
228
+ * SPDX-License-Identifier: Apache-2.0
229
+ */var pe=class y{static parseTFHD(e,t){let i=null,r=null,s=null,n=null,a=e.readUint32();return t&1&&(s=e.readUint64()),t&2&&(n=e.readUint32()),t&8&&(i=e.readUint32()),t&16&&(r=e.readUint32()),{trackId:a,defaultSampleDuration:i,defaultSampleSize:r,baseDataOffset:s,sampleDescriptionIndex:n}}static parseTFDT(e,t){return{baseMediaDecodeTime:t==1?e.readUint64():e.readUint32()}}static parseTFDTInaccurate(e,t){if(t==1){let i=e.readUint32(),r=e.readUint32();return{baseMediaDecodeTime:i*Math.pow(2,32)+r}}else return{baseMediaDecodeTime:e.readUint32()}}static parsePRFTInaccurate(e,t){e.readUint32();let i=e.readUint32(),r=e.readUint32(),s=i*1e3+r/2**32*1e3,n;if(t===0)n=e.readUint32();else{let a=e.readUint32(),o=e.readUint32();n=a*Math.pow(2,32)+o}return{mediaTime:n,ntpTimestamp:s}}static parseMDHD(e,t){t==1?(e.skip(8),e.skip(8)):(e.skip(4),e.skip(4));let i=e.readUint32();e.skip(4);let r=e.readUint16(),s=String.fromCharCode((r>>10)+96)+String.fromCharCode(((r&960)>>5)+96)+String.fromCharCode((r&31)+96);return{timescale:i,language:s}}static parseTREX(e){e.skip(4),e.skip(4);let t=e.readUint32(),i=e.readUint32();return{defaultSampleDuration:t,defaultSampleSize:i}}static parseTRUN(e,t,i){let r=e.readUint32(),s=[],n=null;i&1&&(n=e.readInt32()),i&4&&e.skip(4);for(let a=0;a<r;a++){let o={sampleDuration:null,sampleSize:null,sampleCompositionTimeOffset:null};i&256&&(o.sampleDuration=e.readUint32()),i&512&&(o.sampleSize=e.readUint32()),i&1024&&e.skip(4),i&2048&&(o.sampleCompositionTimeOffset=t==0?e.readUint32():e.readInt32()),s.push(o)}return{sampleCount:r,sampleData:s,dataOffset:n}}static parseTKHD(e,t){t==1?(e.skip(8),e.skip(8)):(e.skip(4),e.skip(4));let i=e.readUint32();t==1?e.skip(8):e.skip(4),e.skip(4),e.skip(8),e.skip(2),e.skip(2),e.skip(2),e.skip(2),e.skip(36);let r=e.readUint16()+e.readUint16()/16,s=e.readUint16()+e.readUint16()/16;return{trackId:i,width:r,height:s}}static visualSampleEntry(e){e.skip(24);let t=e.readUint16(),i=e.readUint16();return e.skip(50),{width:t,height:i}}static audioSampleEntry(e){e.skip(6),e.skip(2),e.skip(8);let t=e.readUint16();e.skip(2),e.skip(2),e.skip(2);let i=e.readUint16()+e.readUint16()/65536;return{channelCount:t,sampleRate:i}}static parseESDS(e){let t="mp4a",i,r;for(;e.hasMoreData();){i=e.readUint8();let s=e.readUint8();for(;s&128;)s=e.readUint8();if(i==3){e.readUint16();let n=e.readUint8();n&128&&e.readUint16(),n&64&&e.skip(e.readUint8()),n&32&&e.readUint16()}else if(i==4)r=e.readUint8(),e.skip(12);else if(i==5)break}if(r&&(t+="."+y.toHex_(r),i==5&&e.hasMoreData())){let s=e.readUint8(),n=(s&248)>>3;n===31&&e.hasMoreData()&&(n=32+((s&7)<<3)+((e.readUint8()&224)>>5)),t+="."+n}return{codec:t}}static parseAVCC(e,t){return t.skip(1),{codec:e+"."+y.toHex_(t.readUint8())+y.toHex_(t.readUint8())+y.toHex_(t.readUint8())}}static parseHVCC(e,t){t.skip(1);let i=t.readUint8(),r=["","A","B","C"][i>>6],s=i&31,n=t.readUint32(),a=(i&32)>>5?"H":"L",o=[t.readUint8(),t.readUint8(),t.readUint8(),t.readUint8(),t.readUint8(),t.readUint8()],c=t.readUint8(),d=e;d+="."+r+s,d+="."+y.toHex_(y.reverseBits_(n),!0),d+="."+a+c;let u="";for(let m=o.length;m--;){let f=o[m];(f||u)&&(u="."+f.toString(16).toUpperCase()+u)}return d+=u,{codec:d}}static parseDVCC(e,t){t.skip(2);let i=t.readUint8(),r=t.readUint8(),s=i>>1&127,n=i<<5&32|r>>3&31;return{codec:e+"."+y.addLeadingZero_(s)+"."+y.addLeadingZero_(n)}}static parseDVVC(e,t){t.skip(2);let i=t.readUint8(),r=t.readUint8(),s=i>>1&127,n=i<<5&32|r>>3&31;return{codec:e+"."+y.addLeadingZero_(s)+"."+y.addLeadingZero_(n)}}static parseVPCC(e,t){let i=t.readUint8(),r=t.readUint8(),s=t.readUint8()>>4&15;return{codec:e+"."+y.addLeadingZero_(i)+"."+y.addLeadingZero_(r)+"."+y.addLeadingZero_(s)}}static parseAV1C(e,t){t.skip(1);let i=t.readUint8(),r=t.readUint8(),s=i>>>5,n=i&31,a=r>>>7?"H":"M",o=(r&64)>>6,c=(r&32)>>5,d=s===2&&o?c?12:10:o?10:8,u=(r&16)>>4,m=(r&8)>>3,f=(r&4)>>2,g=r&3;return{codec:e+"."+s+"."+y.addLeadingZero_(n)+a+"."+y.addLeadingZero_(d)+"."+u+"."+m+f+g+"."+y.addLeadingZero_(1)+"."+y.addLeadingZero_(1)+"."+y.addLeadingZero_(1)+"."+0}}static parseFRMA(e){let t=e.readUint32();return{codec:F.typeToString(t)}}static parseTENC(e,t){e.readUint8();let i=e.readUint8(),r=t>=1?i>>4&15:0,s=t>=1?i&15:0,n=e.readUint8(),a=e.readUint8(),o=e.readBytes(16,!1),c=ne.toHex(o),d=null;if(n===1&&a===0){let u=e.readUint8();d=e.readBytes(u,!0)}return{defaultKID:c,defaultIsProtected:n,defaultPerSampleIVSize:a,defaultCryptByteBlock:r,defaultSkipByteBlock:s,defaultConstantIV:d}}static parseHDLR(e){e.skip(4);let t=e.readBytes(4,!1);return{handlerType:String.fromCharCode(t[0],t[1],t[2],t[3])}}static parsePRJI(e){return{projection:e.readTerminatedString()}}static parseHFOV(e){return{hfov:e.readUint32()/1e3}}static parseCOLR(e){let t=null,i=null,r=e.readBytes(4,!1),s="";if(s+=String.fromCharCode(r[0]),s+=String.fromCharCode(r[1]),s+=String.fromCharCode(r[2]),s+=String.fromCharCode(r[3]),s==="nclx"){switch(e.readUint16()){case 1:case 5:case 6:case 7:t="srgb";break;case 9:t="rec2020";break;case 11:case 12:t="p3";break}let a=e.readUint16();switch(e.readUint16(),a){case 1:case 6:case 13:case 14:case 15:i="SDR";break;case 16:i="PQ";break;case 18:i="HLG";break}}return{colorGamut:t,videoRange:i}}static updateAV1CodecWithCOLRBox(e,t){let i=t.getPosition(),r=t.readBytes(4,!1),s="";if(s+=String.fromCharCode(r[0]),s+=String.fromCharCode(r[1]),s+=String.fromCharCode(r[2]),s+=String.fromCharCode(r[3]),s==="nclx"){let n=t.readUint16(),a=t.readUint16(),o=t.readUint16(),c=t.readUint8()>>7,d=e.split(".");d.length==10&&(d[6]=y.addLeadingZero_(n),d[7]=y.addLeadingZero_(a),d[8]=y.addLeadingZero_(o),d[9]=String(c),e=d.join("."))}return t.seek(i),e}static parseSCHM(e){return{encryptionScheme:F.typeToString(e.readUint32())}}static toHex_(e,t=!1){let i=e.toString(16).toUpperCase();return t?i:("0"+i).slice(-2)}static reverseBits_(e){let t=e,i=0;for(let r=0;r<32&&(i|=t&1,r!=31);r++)i<<=1,t>>=1;return i}static addLeadingZero_(e){return(e<10?"0":"")+e}static parseSENC(e,t,i,r){let s=!!(t&1),n=!!(t&2),a=i,o=r;if(s&&(e.skip(3),a=e.readUint8(),e.skip(16),a===0)){let u=e.readUint8();o=e.readBytes(u,!0)}let c=e.readUint32(),d=[];for(let u=0;u<c;u++){let m=o;if(a>0)m=e.readBytes(a,!0);else if(!m)throw new Error("SENC specifies IV size 0 but no constant IV is available.");let f=new Uint8Array(16);f.set(m.subarray(0,Math.min(m.length,16)),0);let g=null;if(n){let _=e.readUint16();g=[];for(let T=0;T<_;T++)g.push({clearBytes:e.readUint16(),encryptedBytes:e.readUint32()})}d.push({iv:f,subsamples:g})}return{samples:d}}};/*! @license
230
+ * Shaka Player
231
+ * Copyright 2016 Google LLC
232
+ * SPDX-License-Identifier: Apache-2.0
233
+ */var bs=class bs{constructor(){l(this,"drmInfo_");l(this,"keyMap_");l(this,"keyMapPromise_");l(this,"lastInit_");this.drmInfo_=null,this.keyMap_=new Map,this.keyMapPromise_=null,this.lastInit_=null}async decrypt(e,t,i){let r=D.toUint8(e);return t?(this.lastInit_=r,this.stripEncryptionFromInit_(r)):this.lastInit_?(this.drmInfo_!==i&&(this.drmInfo_=i,this.keyMapPromise_=this.buildKeyMap_(this.drmInfo_),this.keyMap_=await this.keyMapPromise_,this.keyMapPromise_=null),this.decryptSegment_(r,this.lastInit_)):r}async destroy(){if(this.keyMapPromise_)try{await this.keyMapPromise_}catch(e){}this.drmInfo_=null,this.keyMap_.clear(),this.keyMapPromise_=null,this.lastInit_=null}async buildKeyMap_(e){let t=new Map;if(!e.clearKeys)return t;let i=await Promise.all([...e.clearKeys.entries()].map(([r,s])=>{let n=ne.fromBase64(s),a=ne.fromBase64(r);return Promise.all([crypto.subtle.importKey("raw",n,{name:"AES-CBC"},!1,["decrypt","encrypt"]),crypto.subtle.importKey("raw",n,{name:"AES-CTR"},!1,["decrypt"])]).then(([o,c])=>({kidHex:ne.toHex(a),cbc:o,ctr:c}))}));for(let{kidHex:r,cbc:s,ctr:n}of i)t.set(r,{cbc:s,ctr:n});return t}async decryptSegment_(e,t){let i=this.parseInitSegment_(t),r=this.parseMediaSegment_(e,i),s=r.fragments.map(o=>{let c=i.get(o.trackId)||i.values().next().value;return this.decryptFragment_(o,e,c)}),n=await Promise.all(s),a=[e.slice(0,r.firstFragmentOffset),...n];return ne.concat(...a)}stripEncryptionFromInit_(e){let t=D.toUint8(e).slice(),i=D.toDataView(t),r=[],s=-1,n=a=>{r.push(()=>{i.setUint32(a.start+4,bs.BOX_TYPE_FREE_,!1),t.fill(0,a.start+8,a.start+a.size)})};new F().boxes(F.SAMPLE_TABLE_PATH,F.children).fullBox("stsd",F.sampleDescription).box("encv",a=>{s=a.start,F.visualSampleEntry(a)}).box("enca",a=>{s=a.start,F.audioSampleEntry(a)}).box("sinf",a=>{n(a),F.children(a)}).box("frma",a=>{let{codec:o}=pe.parseFRMA(a.reader),c=s;c!==-1&&o&&r.push(()=>{for(let d=0;d<4;++d)i.setUint8(c+4+d,o.charCodeAt(d))})}).fullBox("sgpd",n).box("pssh",n).parse(t,!0);for(let a of r)a();return t}parseInitSegment_(e){let t=new Map,i=0;return new F().boxes(["moov","mdia","minf","stbl"],F.children).box("trak",r=>{i=0,F.children(r)}).fullBox("tkhd",r=>{v.assert(r.version!=null,"TKHD is a full box and should have a valid version."),i=pe.parseTKHD(r.reader,r.version).trackId,t.getOrInsert(i,{defaultKID:"",encryptionScheme:"cenc",defaultIVSize:8,defaultConstantIV:null,defaultCryptByteBlock:0,defaultSkipByteBlock:0})}).fullBox("stsd",F.sampleDescription).box("encv",F.visualSampleEntry).box("enca",F.audioSampleEntry).box("sinf",F.children).fullBox("schm",r=>{let s=pe.parseSCHM(r.reader),n=t.get(i);n&&(n.encryptionScheme=s.encryptionScheme.toLowerCase())}).box("schi",F.children).fullBox("tenc",r=>{v.assert(r.version!=null,"TENC is a full box and should have a valid version.");let s=pe.parseTENC(r.reader,r.version),n=t.get(i);n&&(n.defaultKID=s.defaultKID,n.defaultIVSize=s.defaultPerSampleIVSize,n.defaultConstantIV=s.defaultConstantIV,n.defaultCryptByteBlock=s.defaultCryptByteBlock,n.defaultSkipByteBlock=s.defaultSkipByteBlock)}).parse(e,!0),t}parseMediaSegment_(e,t){let i=[],r=0,s=null,n=a=>{s&&s.boxesToFree.push({start:a.start,size:a.size})};return new F().box("moof",a=>{i.length||(r=a.start),s={moofStart:a.start,moofSize:a.size,mdatStart:-1,mdatSize:-1,sencInfo:null,tfhdDefaultSize:0,trackId:0,trunSamples:[],boxesToFree:[]},F.children(a)}).box("traf",F.children).fullBox("tfhd",a=>{if(!s)return;v.assert(a.flags!=null,"TFHD is a full box and should have valid flags.");let o=pe.parseTFHD(a.reader,a.flags);s.trackId=o.trackId,s.tfhdDefaultSize=o.defaultSampleSize||0}).fullBox("trun",a=>{if(!s)return;v.assert(a.version!=null&&a.flags!=null,"TRUN is a full box and should have a valid version & flags.");let o=pe.parseTRUN(a.reader,a.version,a.flags);for(let c of o.sampleData)s.trunSamples.push({size:c.sampleSize||s.tfhdDefaultSize})}).fullBox("senc",a=>{if(!s)return;v.assert(a.flags!=null,"SENC is a full box and should have valid flags.");let o=t.get(s.trackId);o&&(s.sencInfo=pe.parseSENC(a.reader,a.flags,o.defaultIVSize,o.defaultConstantIV)),n(a)}).fullBoxes(["saiz","saio","sgpd","sbgp"],n).box("pssh",n).box("mdat",a=>{s&&(s.mdatStart=a.start,s.mdatSize=a.size,i.push(s),s=null)}).parse(e),{fragments:i,firstFragmentOffset:r}}async decryptFragment_(e,t,i){let r=i.defaultKID,s=this.keyMap_.get(r);if(!s)return p.warning("[ClearKeyDecryptor] No key found for KID:",r),t.slice(e.moofStart,e.mdatStart+e.mdatSize);let n=i.encryptionScheme,a=e.sencInfo;if(a&&i.defaultIVSize!==8){let _=t.subarray(e.moofStart,e.moofStart+e.moofSize);new F().boxes(F.FRAGMENT_PATH,F.children).fullBox("senc",T=>{v.assert(T.flags!=null,"SENC is a full box and should have valid flags."),a=pe.parseSENC(T.reader,T.flags,i.defaultIVSize,i.defaultConstantIV)}).parse(_,!1)}let o=e.mdatStart+8,c=t.subarray(o,o+e.mdatSize-8),d=await this.decryptMdat_(c,e.trunSamples.map(_=>_.size),a,i,s,n),u=t.slice(e.moofStart,e.moofStart+e.moofSize),m=D.toDataView(u);if(e.boxesToFree)for(let _ of e.boxesToFree){let T=_.start-e.moofStart;T>=0&&T+_.size<=u.byteLength&&(m.setUint32(T+4,bs.BOX_TYPE_FREE_,!1),u.fill(0,T+8,T+_.size))}let f=8+d.byteLength,g=new Uint8Array(f);return D.toDataView(g).setUint32(0,f,!1),g.set([109,100,97,116],4),g.set(d,8),ne.concat(u,g)}async decryptMdat_(e,t,i,r,s,n){let a=new Uint8Array(e.byteLength),o=0,c=t.map((u,m)=>{let f=o;o+=u;let g=e.subarray(f,f+u);if(i&&i.samples[m]){let _=i.samples[m],T=r.defaultIVSize===16?16:8,S=new Uint8Array(16);if(S.set(_.iv.slice(0,T),0),n==="cenc")return this.decryptSampleCenc_(g,S,_.subsamples,s).then(E=>({offset:f,dec:E}));let b=r.defaultConstantIV||S;return this.decryptSampleCbcs_(g,b,_.subsamples,r,s).then(E=>({offset:f,dec:E}))}return n==="cbcs"&&r.defaultConstantIV?this.decryptSampleCbcs_(g,r.defaultConstantIV,null,r,s).then(_=>({offset:f,dec:_})):Promise.resolve({offset:f,dec:g})}),d=await Promise.all(c);for(let{offset:u,dec:m}of d)a.set(m,u);return a}async decryptSampleCenc_(e,t,i,r){if(!i||!i.length)return D.toUint8(await crypto.subtle.decrypt({name:"AES-CTR",counter:t,length:64},r.ctr,e));let s=new Uint8Array(e.byteLength),n=0,a=0,o=i.map(d=>{let u=n;if(n+=d.clearBytes,d.encryptedBytes===0)return Promise.resolve({clearStart:u,clearLen:d.clearBytes,encStart:n,encLen:0,decrypted:null});let m=t.slice();this.addCounterOffset_(m,a);let f=n;n+=d.encryptedBytes,a+=Math.ceil(d.encryptedBytes/16);let g=e.subarray(f,f+d.encryptedBytes);return crypto.subtle.decrypt({name:"AES-CTR",counter:m,length:64},r.ctr,g).then(_=>({clearStart:u,clearLen:d.clearBytes,encStart:f,encLen:d.encryptedBytes,decrypted:D.toUint8(_)}))}),c=await Promise.all(o);for(let d of c)s.set(e.subarray(d.clearStart,d.clearStart+d.clearLen),d.clearStart),d.decrypted&&s.set(d.decrypted,d.encStart);return s}async decryptSampleCbcs_(e,t,i,r,s){let n=r.defaultCryptByteBlock,a=r.defaultSkipByteBlock;n===0&&(n=1,a=0);let o=new Uint8Array(e.byteLength),c=[],d=t,u=(m,f)=>{let g=m,_=m+f;for(;g<_;){let T=_-g,S=Math.min(n*16,T);if(S>=16){let E=Math.floor(S/16)*16,C=g,A=S-E,w=g+E,M=d;c.push(this.rawCBCDecrypt_(e.subarray(C,C+E),M,s.cbc).then(x=>{o.set(x,C),A>0&&o.set(e.subarray(w,w+A),w)})),d=e.slice(C+E-16,C+E),g+=E+A}else o.set(e.subarray(g,g+S),g),g+=S;let b=Math.min(a*16,_-g);b>0&&(o.set(e.subarray(g,g+b),g),g+=b)}};if(!i||!i.length)u(0,e.byteLength);else{let m=0;for(let f of i){let g=m;if(m+=f.clearBytes,o.set(e.subarray(g,g+f.clearBytes),g),f.encryptedBytes>0){let _=m;m+=f.encryptedBytes,u(_,f.encryptedBytes)}}}return await Promise.all(c),o}async rawCBCDecrypt_(e,t,i){if(!e||!e.byteLength||e.byteLength%16!==0)return new Uint8Array(0);let r=e.byteLength/16,n=e.subarray((r-1)*16,r*16).map(m=>16^m),a=new Uint8Array(16),o=await crypto.subtle.encrypt({name:"AES-CBC",iv:a},i,n),c=new Uint8Array(o,0,16),d=new Uint8Array(e.byteLength+16);d.set(e,0),d.set(c,e.byteLength);let u=await crypto.subtle.decrypt({name:"AES-CBC",iv:t},i,d);return D.toUint8(u)}addCounterOffset_(e,t){let i=t;for(let r=15;r>=8&&i>0;r--)i+=e[r],e[r]=i&255,i>>>=8}static shouldUse(e){var t;return!e||!((t=window.crypto)!=null&&t.subtle)||!de.isClearKeySystem(e.keySystem)?!1:!j.getDevice().hasWorkingClearKeySupport()}};l(bs,"BOX_TYPE_FREE_",1718773093);var Es=bs;/*! @license
234
+ * Shaka Player
235
+ * Copyright 2016 Google LLC
236
+ * SPDX-License-Identifier: Apache-2.0
237
+ */var sn=class sn{static isTypeSupported(e){return sn.MediaSourceTypeSupportMap.getOrInsertComputed(e,()=>{var r;let i=self.ManagedMediaSource||self.MediaSource;return(r=i==null?void 0:i.isTypeSupported(e))!=null?r:!1})}static isInfiniteLiveStreamDurationSupported(){let e=self.ManagedMediaSource||self.MediaSource;return e&&e.prototype?!!e.prototype.setLiveSeekableRange&&!!e.prototype.clearLiveSeekableRange:!1}};l(sn,"MediaSourceTypeSupportMap",new Map);var Ke=sn;/*! @license
238
+ * Shaka Player
239
+ * Copyright 2016 Google LLC
240
+ * SPDX-License-Identifier: Apache-2.0
241
+ */var te=class te{constructor(e=[]){l(this,"streamInfos_");this.streamInfos_=e}initSegment(){let e=this.moov_(),t=te.FTYP_.value(),i=t.byteLength+e.byteLength,r=new Uint8Array(i);return r.set(t),r.set(e,t.byteLength),r}moov_(){if(this.streamInfos_.length===0)throw new Error("StreamInfos must have elements");let e=[];for(let i of this.streamInfos_)e.push(this.trak_(i));let t=this.streamInfos_[0];return te.box("moov",this.mvhd_(t),...e,this.mvex_(),this.psshs(t.stream))}mvhd_(e){let t=e.duration*e.timescale,i=Math.floor(t/(te.UINT32_MAX_+1)),r=Math.floor(t%(te.UINT32_MAX_+1)),s=te.MVHD_TEMPLATE_.value();return this.writeUint32_(s,e.timescale,20),this.writeUint32_(s,i,24),this.writeUint32_(s,r,28),te.box("mvhd",s)}trak_(e){return te.box("trak",this.tkhd_(e),this.mdia_(e))}tkhd_(e){let t=R.ContentType,i=e.id+1,r=e.stream.width||0,s=e.stream.height||0;e.type==t.AUDIO&&(r=0,s=0);let n=e.duration*e.timescale,a=Math.floor(n/(te.UINT32_MAX_+1)),o=Math.floor(n%(te.UINT32_MAX_+1)),c=te.TKHD_TEMPLATE_.value();return this.writeUint32_(c,i,20),this.writeUint32_(c,a,28),this.writeUint32_(c,o,32),this.writeUint16_(c,r,88),this.writeUint16_(c,s,92),te.box("tkhd",c)}mdia_(e){return te.box("mdia",this.mdhd_(e),this.hdlr_(e),this.minf_(e))}mdhd_(e){let t=e.duration*e.timescale,i=Math.floor(t/(te.UINT32_MAX_+1)),r=Math.floor(t%(te.UINT32_MAX_+1)),s=e.stream.language,n=s.charCodeAt(0)-96<<10|s.charCodeAt(1)-96<<5|s.charCodeAt(2)-96,a=te.MDHD_TEMPLATE_.value();return this.writeUint32_(a,e.timescale,20),this.writeUint32_(a,i,24),this.writeUint32_(a,r,28),this.writeUint16_(a,n,32),te.box("mdhd",a)}hdlr_(e){let t=R.ContentType,i=new Uint8Array([]);switch(e.type){case t.VIDEO:i=te.HDLR_TYPES_.video.value();break;case t.AUDIO:i=te.HDLR_TYPES_.audio.value();break}return te.box("hdlr",i)}minf_(e){let t=R.ContentType;switch(e.type){case t.VIDEO:return te.box("minf",te.box("vmhd",te.VMHD_.value()),te.DINF_.value(),this.stbl_(e));case t.AUDIO:return te.box("minf",te.box("smhd",te.SMHD_.value()),te.DINF_.value(),this.stbl_(e))}return new Uint8Array([])}stbl_(e){return te.box("stbl",this.stsd_(e),te.STTS_BOX_.value(),te.STSC_BOX_.value(),te.STSZ_BOX_.value(),te.STCO_BOX_.value())}stsd_(e){let t=R.ContentType,i="aac";e.codecs.includes("mp3")?i="mp3":e.codecs.includes("ac-3")?j.getDevice().requiresEC3InitSegments()?i="ec-3":i="ac-3":e.codecs.includes("ec-3")?i="ec-3":e.codecs.includes("opus")&&(i="opus");let r=new Uint8Array([]);switch(e.type){case t.VIDEO:e.codecs.includes("avc1")?r=this.avc1_(e):e.codecs.includes("hvc1")&&(r=this.hvc1_(e));break;case t.AUDIO:i=="mp3"?r=this.mp3_(e):i=="ac-3"?r=this.ac3_(e):i=="ec-3"?r=this.ec3_(e):i=="opus"?r=this.opus_(e):r=this.mp4a_(e);break}return te.box("stsd",te.STSD_.value(),r)}videoSampleEntry_(e,t,i){let r=e.stream.width||0,s=e.stream.height||0,n=new Uint8Array([]);e.mediaConfig.byteLength>0&&(n=te.box(i,e.mediaConfig));let a=te.VIDEO_SAMPLE_ENTRY_TEMPLATE_.value();this.writeUint16_(a,r,24),this.writeUint16_(a,s,26);let o=this.pasp_(e),c=new Uint8Array([]),d=t;return te.isStreamEncrypted_(e.stream)&&(c=this.sinf(e.stream,e.codecs),d="encv"),te.box(d,a,n,o,c)}avc1_(e){return this.videoSampleEntry_(e,"avc1","avcC")}hvc1_(e){return this.videoSampleEntry_(e,"hvc1","hvcC")}pasp_(e){if(!e.hSpacing&&!e.vSpacing)return new Uint8Array([]);let t=e.hSpacing||0,i=e.vSpacing||0,r=te.allocBox_("pasp",8);return this.writeUint32_(r,t,te.BOX_HEADER_SIZE_),this.writeUint32_(r,i,te.BOX_HEADER_SIZE_+4),r}audioStsd_(e){let t=e.stream.channelsCount||2,i=e.stream.audioSamplingRate||44100,r=te.AUDIO_STSD_TEMPLATE_.value();return r[17]=t,this.writeUint16_(r,i,24),r}mp3_(e){return te.box(".mp3",this.audioStsd_(e))}ac3_(e){let t=te.box("dac3",e.mediaConfig),i="ac-3",r=new Uint8Array([]);return te.isStreamEncrypted_(e.stream)&&(r=this.sinf(e.stream,e.codecs),i="enca"),te.box(i,this.audioStsd_(e),t,r)}ec3_(e){let t=te.box("dec3",e.mediaConfig),i="ec-3",r=new Uint8Array([]);return te.isStreamEncrypted_(e.stream)&&(r=this.sinf(e.stream,e.codecs),i="enca"),te.box(i,this.audioStsd_(e),t,r)}opus_(e){let t=te.box("dOps",e.mediaConfig),i="Opus",r=new Uint8Array([]);return te.isStreamEncrypted_(e.stream)&&(r=this.sinf(e.stream,e.codecs),i="enca"),te.box(i,this.audioStsd_(e),t,r)}mp4a_(e){let t;e.mediaConfig.byteLength>0?t=te.box("esds",e.mediaConfig):t=te.box("esds",this.esds_(e));let i="mp4a",r=new Uint8Array([]);return te.isStreamEncrypted_(e.stream)&&(r=this.sinf(e.stream,e.codecs),i="enca"),te.box(i,this.audioStsd_(e),t,r)}esds_(e){let t=R.ContentType,i=e.id+1,r=e.stream.channelsCount||2,s=e.stream.audioSamplingRate||44100,n=R.guessCodecs(t.AUDIO,e.codecs.split(",")),a={96e3:0,88200:1,64e3:2,48e3:3,44100:4,32e3:5,24e3:6,22050:7,16e3:8,12e3:9,11025:10,8e3:11,7350:12},o=a[s];(n==="mp4a.40.5"||n==="mp4a.40.29")&&(o=a[s*2]);let c=parseInt(n.split(".").pop(),10),d=te.ESDS_TEMPLATE_.value();return this.writeUint16_(d,i,6),d[26]=c<<3|o>>>1,d[27]=o<<7|r<<3,d}mvex_(){let e=[];for(let t of this.streamInfos_)e.push(this.trex_(t));return te.box("mvex",...e)}trex_(e){let t=e.id+1,i=te.TREX_TEMPLATE_.value();return this.writeUint32_(i,t,4),te.box("trex",i)}psshs(e){let t=[];if(!te.isStreamEncrypted_(e))return new Uint8Array([]);for(let r of e.drmInfos)if(r.initData)for(let s of r.initData)t.push(s.initData);return ne.concat(...t)}sinf(e,t){return te.box("sinf",this.frma_(t),this.schm_(e),this.schi_(e))}frma_(e){let t=e.split(".")[0],i=te.BOX_HEADER_SIZE_,r=te.allocBox_("frma",4);return this.writeUint32_(r,this.stringToCharCode_(t),i),r}schm_(e){let t="cenc",i=e.drmInfos[0];i&&i.encryptionScheme&&(t=i.encryptionScheme);let r=te.SCHM_TEMPLATE_.value();return this.writeUint32_(r,this.stringToCharCode_(t),4),te.box("schm",r)}schi_(e){return te.box("schi",this.tenc_(e))}tenc_(e){let t=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);for(let i of e.drmInfos)if(i&&i.keyIds&&i.keyIds.size)for(let r of i.keyIds)t=this.hexStringToBuffer_(r);return v.assert(t,"Default KID should be non-null"),te.box("tenc",te.TENC_HEADER_.value(),t)}segmentData(){let e=te.BOX_HEADER_SIZE_,t=[],i=0;for(let n of this.streamInfos_){let a=this.moof_(n),o=n.data?n.data.samples:[],c=0;for(let u of o)c+=u.data.byteLength;let d=e+c;t.push({moof:a,samples:o,mdatSize:d}),i+=a.byteLength+d}let r=D.toUint8(new ArrayBuffer(i)),s=0;for(let{moof:n,samples:a,mdatSize:o}of t){r.set(n,s),s+=n.byteLength,this.writeUint32_(r,o,s),r.set(te.MDAT_TYPE_.value(),s+4),s+=e;for(let c of a)r.set(c.data,s),s+=c.data.byteLength}return r}moof_(e){return te.box("moof",this.mfhd_(e),this.traf_(e))}mfhd_(e){let t=e.data?e.data.sequenceNumber:0,i=te.allocBox_("mfhd",8);return this.writeUint32_(i,t,te.BOX_HEADER_SIZE_+4),i}traf_(e){let t=this.sdtp_(e),i=t.length+32+20+8+16+8+8;return te.box("traf",this.tfhd_(e),this.tfdt_(e),this.trun_(e,i),t)}sdtp_(e){let t=e.data?e.data.samples:[],i=te.allocBox_("sdtp",4+t.length),r=te.BOX_HEADER_SIZE_+4;for(let s=0;s<t.length;s++){let n=t[s].flags;i[s+r]=n.dependsOn<<4|n.isDependedOn<<2|n.hasRedundancy}return i}tfhd_(e){let t=e.id+1,i=te.TFHD_TEMPLATE_.value();return this.writeUint32_(i,t,4),te.box("tfhd",i)}tfdt_(e){let t=te.BOX_HEADER_SIZE_,i=e.data?e.data.baseMediaDecodeTime:0,r=Math.floor(i/(te.UINT32_MAX_+1)),s=Math.floor(i%(te.UINT32_MAX_+1)),n=te.allocBox_("tfdt",12);return n[t]=1,this.writeUint32_(n,r,t+4),this.writeUint32_(n,s,t+8),n}trun_(e,t){let i=R.ContentType,r=e.data?e.data.samples:[],s=r.length,n=12+16*s,a=te.allocBox_("trun",n);t+=te.BOX_HEADER_SIZE_+n;let o=e.type===i.VIDEO;a[te.BOX_HEADER_SIZE_]=o?1:0,a[te.BOX_HEADER_SIZE_+1]=0,a[te.BOX_HEADER_SIZE_+2]=15,a[te.BOX_HEADER_SIZE_+3]=1,this.writeUint32_(a,s,te.BOX_HEADER_SIZE_+4),this.writeUint32_(a,t,te.BOX_HEADER_SIZE_+8);for(let c=0;c<s;c++){let d=r[c],u=d.flags,m=te.BOX_HEADER_SIZE_+12+16*c;this.writeUint32_(a,d.duration,m),this.writeUint32_(a,d.size,m+4),a[m+8]=u.isLeading<<2|u.dependsOn,a[m+9]=u.isDependedOn<<6|u.hasRedundancy<<4|u.isNonSync,a[m+10]=u.degradPrio&61440,a[m+11]=u.degradPrio&15,this.writeUint32_(a,d.cts,m+12)}return a}writeUint32_(e,t,i){e[i]=t>>>24&255,e[i+1]=t>>>16&255,e[i+2]=t>>>8&255,e[i+3]=t&255}writeUint16_(e,t,i){e[i]=t>>>8&255,e[i+1]=t&255}hexStringToBuffer_(e){let t=new Uint8Array(e.length/2);for(let i=0;i<e.length/2;i+=1)t[i]=parseInt(String(e[i*2]+e[i*2+1]),16);return t}stringToCharCode_(e){let t=0;for(let i=0;i<e.length;i+=1)t|=e.charCodeAt(i)<<(e.length-i-1)*8;return t}static box(e,...t){let i=0;for(let n of t)i+=n.byteLength;let r=te.allocBox_(e,i),s=te.BOX_HEADER_SIZE_;for(let n=0;n<t.length;n++)r.set(t[n],s),s+=t[n].byteLength;return r}static allocBox_(e,t){let i=te.BOX_TYPES_.get(e);i||(i=[e.charCodeAt(0),e.charCodeAt(1),e.charCodeAt(2),e.charCodeAt(3)],te.BOX_TYPES_.set(e,i));let r=te.BOX_HEADER_SIZE_+t,s=new Uint8Array(r);return s[0]=r>>24&255,s[1]=r>>16&255,s[2]=r>>8&255,s[3]=r&255,s.set(i,4),s}static isStreamEncrypted_(e){return e.encrypted&&e.drmInfos.length>0}};l(te,"BOX_TYPES_",new Map),l(te,"BOX_HEADER_SIZE_",8);var xe=te;xe.UINT32_MAX_=Math.pow(2,32)-1;xe.MDAT_TYPE_=new _e(()=>new Uint8Array([109,100,97,116]));xe.MVHD_TEMPLATE_=new _e(()=>new Uint8Array([1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255]));xe.TKHD_TEMPLATE_=new _e(()=>new Uint8Array([1,0,0,7,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0]));xe.MDHD_TEMPLATE_=new _e(()=>new Uint8Array([1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]));xe.TREX_TEMPLATE_=new _e(()=>new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0]));xe.TFHD_TEMPLATE_=new _e(()=>new Uint8Array([0,0,0,58,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0]));xe.ESDS_TEMPLATE_=new _e(()=>new Uint8Array([0,0,0,0,3,25,0,0,0,4,17,64,21,0,0,0,0,0,0,0,0,0,0,0,5,2,0,0,6,1,2]));xe.AUDIO_STSD_TEMPLATE_=new _e(()=>new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0]));xe.VIDEO_SAMPLE_ENTRY_TEMPLATE_=new _e(()=>new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,72,0,0,0,72,0,0,0,0,0,0,0,1,19,118,105,100,101,111,106,115,45,99,111,110,116,114,105,98,45,104,108,115,0,0,0,0,0,0,0,0,0,0,0,0,0,24,17,17]));xe.TENC_HEADER_=new _e(()=>new Uint8Array([0,0,0,0,0,0,1,8]));xe.SCHM_TEMPLATE_=new _e(()=>new Uint8Array([0,0,0,0,0,0,0,0,0,1,0,0]));xe.HDLR_TYPES_={video:new _e(()=>new Uint8Array([0,0,0,0,0,0,0,0,118,105,100,101,0,0,0,0,0,0,0,0,0,0,0,0,86,105,100,101,111,72,97,110,100,108,101,114,0])),audio:new _e(()=>new Uint8Array([0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0]))};xe.VMHD_=new _e(()=>new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0]));xe.SMHD_=new _e(()=>new Uint8Array([0,0,0,0,0,0,0,0]));xe.STSD_=new _e(()=>new Uint8Array([0,0,0,0,0,0,0,1]));xe.FTYP_=new _e(()=>{let y=new Uint8Array([105,115,111,109]),e=new Uint8Array([97,118,99,49]),t=new Uint8Array([0,0,0,1]);return xe.box("ftyp",y,t,y,e)});xe.DINF_=new _e(()=>{let y=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1]),e=xe.box("dref",y);return xe.box("dinf",e)});xe.STTS_BOX_=new _e(()=>xe.allocBox_("stts",8));xe.STSC_BOX_=new _e(()=>xe.allocBox_("stsc",8));xe.STSZ_BOX_=new _e(()=>xe.allocBox_("stsz",12));xe.STCO_BOX_=new _e(()=>xe.allocBox_("stco",8));/*! @license
242
+ * Shaka Player
243
+ * Copyright 2016 Google LLC
244
+ * SPDX-License-Identifier: Apache-2.0
245
+ */var Pe=class Pe{static correctEnca(e){let t=D.toUint8(e),i=t,r=16,s=null;return new F().boxes(F.SAMPLE_TABLE_PATH,F.children).fullBox("stsd",F.sampleDescription).box("enca",n=>(s=n.reader.getDataView(),F.audioSampleEntry(n))).box("sinf",F.children).box("frma",n=>{n.parser.stop();let{codec:a}=pe.parseFRMA(n.reader);a==="ec-3"&&s&&s.getUint16(r)!==2&&s.setUint16(r,2)}).parse(t),i}static freeDvvcBox(e){let t=D.toUint8(e),i=null,r=-1;return new F().boxes(F.SAMPLE_TABLE_PATH,F.children).fullBox("stsd",F.sampleDescription).box("hvc1",s=>(i=s.reader.getDataView(),r=s.start,F.visualSampleEntry(s))).box("dvvC",s=>{s.parser.stop();let n=s.start-r-4;i.setUint32(n,Pe.BOX_TYPE_FREE_)}).parse(t),t}static fakeEncryption(e,t,i,r){let s=D.toUint8(t),n=s,a=!1,o,c=[],d=T=>{c.push(T),F.children(T)},u=T=>{a=!0,T.parser.stop()},m=[],f=T=>{m.push({box:T,newType:Pe.BOX_TYPE_ENCV_})},g=T=>{m.push({box:T,newType:Pe.BOX_TYPE_ENCA_})};if(new F().boxes(F.SAMPLE_TABLE_PATH,d).fullBox("stsd",T=>{o=T,c.push(T),F.sampleDescription(T)}).boxes(["encv","enca"],u).boxes(F.AVC_HEVC_VVC_DV,f).boxes([...F.GENERIC_AUDIO_SAMPLE_ENTRIES,"mp4a"],g).parse(s),a)return p.debug("Init segment already indicates encryption."),s;if(m.length==0||!o)throw p.error("Failed to find boxes needed to fake encryption!"),p.v2("Failed init segment (hex):",ne.toHex(s)),new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.CONTENT_TRANSFORMATION_FAILED,i);m.reverse();for(let T of m){let S=F.typeToString(T.newType);p.debug(`Inserting "${S}" box into init segment.`),n=Pe.insertEncryptionMetadata_(e,n,o,T.box,c,T.newType,r)}if(n=Pe.insertPsshBoxes_(e,n),j.getDevice().requiresClearAndEncryptedInitSegments(r)){let T=new Uint8Array(s.byteLength+n.byteLength);return T.set(n),T.set(s,n.byteLength),T}return n}static fakeMediaEncryption(e){let t=D.toUint8(e),i=[];new F().box("mdat",s=>{i.push(s)}).parse(t);let r=[];for(let s=0;s<i.length;s++){let n=i[s-1],a=i[s],o=n?n.start+n.size:0,c=a.start+a.size,d=t.subarray(o,c);r.push(Pe.fakeMediaEncryptionInChunk_(d))}return ne.concat(...r)}static fakeMediaEncryptionInChunk_(e){let i,r,s,n,a=[],o=u=>{a.push(u),F.children(u)},c=u=>{i=u,s=pe.parseTFHD(u.reader,u.flags)},d=u=>{r=u,n=pe.parseTRUN(u.reader,u.version,u.flags)};if(new F().boxes(F.FRAGMENT_PATH,o).fullBox("tfhd",c).fullBox("trun",d).parse(e),s&&s.sampleDescriptionIndex!==2){let u=i.start+F.headerSize(i)+4+(s.baseDataOffset!==null?8:0),m=D.toDataView(e);if(s.sampleDescriptionIndex!==null)m.setUint32(u,2);else{Pe.updateBoxSize_(e,i.start,i.size+4);let g=m.getUint32(i.start+8);if(m.setUint32(i.start+8,g|2),n&&n.dataOffset!==null){let b=n.dataOffset+4,E=r.start+F.headerSize(r)+4;m.setInt32(E,b)}let _=e.subarray(0,u),T=e.subarray(u);e=new Uint8Array(e.byteLength+4),e.set(_);let S=[];for(let b=3;b>=0;b--)S.push(2>>8*b&255);e.set(new Uint8Array(S),u),e.set(T,u+4);for(let b of a)Pe.updateBoxSize_(e,b.start,b.size+4)}}return e}static insertEncryptionMetadata_(e,t,i,r,s,n,a){let o=Pe.createEncryptionMetadata_(e,t,r,n),c=new Uint8Array(t.byteLength+o.byteLength),u=j.getDevice().insertEncryptionDataBeforeClear(a)?r.start:r.start+r.size,m=t.subarray(0,u),f=t.subarray(u);c.set(m),c.set(o,u),c.set(f,u+o.byteLength);for(let S of s)v.assert(S.start<u,"Ancestor MP4 box found in the wrong location! Modified init segment will not make sense!"),Pe.updateBoxSize_(c,S.start,S.size+o.byteLength);let g=D.toDataView(c,i.start),_=F.headerSize(i),T=g.getUint32(_);return g.setUint32(_,T+1),c}static createEncryptionMetadata_(e,t,i,r){let n=new xe().sinf(e,i.name),a=t.subarray(i.start,i.start+i.size),o=new Uint8Array(i.size+n.byteLength);return o.set(a,0),D.toDataView(o).setUint32(Pe.BOX_TYPE_OFFSET_,r),o.set(n,i.size),Pe.updateBoxSize_(o,0,o.byteLength),o}static insertPsshBoxes_(e,t){let i=new xe().psshs(e);if(i.byteLength===0)return t;let r=0,s=0;new F().box("moov",u=>{r=u.start,s=u.size,u.parser.stop()}).parse(t);let n=s+i.byteLength,a=r+s;Pe.updateBoxSize_(t,r,n);let o=new Uint8Array(t.byteLength+i.byteLength),c=t.subarray(0,a),d=t.subarray(a);return o.set(c),o.set(i,a),o.set(d,a+i.byteLength),o}static updateBoxSize_(e,t,i){let r=D.toDataView(e,t),s=r.getUint32(Pe.BOX_SIZE_OFFSET_);s==0||(s==1?(r.setUint32(Pe.BOX_SIZE_64_OFFSET_,i>>32),r.setUint32(Pe.BOX_SIZE_64_OFFSET_+4,i&4294967295)):r.setUint32(Pe.BOX_SIZE_OFFSET_,i))}static fakeEC3(e){let t=D.toUint8(e),i=[],r=s=>{i.push({start:s.start,size:s.size}),F.children(s)};return new F().boxes(F.SAMPLE_TABLE_PATH,r).box("stsd",s=>{i.push({start:s.start,size:s.size});let n=D.toDataView(t,s.start);for(let a=0;a<s.size-3;a++){let o=n.getUint32(a);o==Pe.BOX_TYPE_AC_3_?n.setUint32(a,Pe.BOX_TYPE_EC_3_):o==Pe.BOX_TYPE_DAC3_&&n.setUint32(a,Pe.BOX_TYPE_DEC3_)}}).parse(t),t}static fixBrokenIframes(e){let t=D.toUint8(e),i=[],r=[],s=[],n=[],a=!1;if(new F().box("moof",W=>{i.push(W),F.children(W)}).box("traf",W=>{r.push(W),F.children(W)}).fullBox("tfhd",W=>{s.push(W)}).fullBox("trun",W=>{n.push(W)}).boxes(["senc","saiz","saio"],()=>{a=!0}).parse(t,!1,!0),a||i.length!=1||r.length!=1||s.length!=1||n.length!=1)return t;let o=i[0],c=r[0],d=s[0],u=n[0];v.assert(d.flags!=null,"TFHD should have valid flags"),v.assert(u.flags!=null,"TRUN should have valid flags"),v.assert(u.version!=null,"TRUN should have a valid version");let m=u.flags,f=pe.parseTFHD(d.reader,d.flags),g=pe.parseTRUN(u.reader,u.version,u.flags);if(f.baseDataOffset!=null||!(m&1)||g.dataOffset==null)return t;let _=o.start+o.size,T=D.toDataView(t);if(_+8>t.byteLength||T.getUint32(_+Pe.BOX_TYPE_OFFSET_)!=Pe.BOX_TYPE_MDAT_)return t;let S=T.getUint32(_),b=8;if(S==1)return t;S==0&&(S=t.byteLength-_);let E=t.byteLength-(_+b),C=S-b;if(E>=C)return t;let A=0,w=0;for(let W of g.sampleData){let z=W.sampleSize!=null?W.sampleSize:f.defaultSampleSize;if(z==null)return t;if(A+z>E)break;A+=z,w++}if(w!=1||w>=g.sampleCount)return t;let M=(m&256)!=0,x=0;for(let W of g.sampleData){let z=M?W.sampleDuration:f.defaultSampleDuration;if(z==null)return t;x+=z}let k=F.headerSize(u),L=u.start+k+4;L+=4,m&4&&(L+=4);let V=0;m&256&&(V+=4),m&512&&(V+=4),m&1024&&(V+=4),m&2048&&(V+=4);let oe=(g.sampleCount-w)*V,le=L+w*V;if(le+oe!=_)return t;let H=t.slice(0,le),J=D.toDataView(H);if(J.setUint32(u.start+k,w),J.setInt32(u.start+k+4,g.dataOffset-oe),M)J.setUint32(L,x);else{let W=d.start+F.headerSize(d)+4;f.sampleDescriptionIndex!=null&&(W+=4),J.setUint32(W,x)}Pe.updateBoxSize_(H,u.start,u.size-oe),Pe.updateBoxSize_(H,c.start,c.size-oe),Pe.updateBoxSize_(H,o.start,o.size-oe);let Z=t.slice(_,_+b);Pe.updateBoxSize_(Z,0,b+A);let ce=t.subarray(_+b,_+b+A);return ne.concat(H,Z,ce)}};l(Pe,"BOX_SIZE_OFFSET_",0),l(Pe,"BOX_TYPE_OFFSET_",4),l(Pe,"BOX_SIZE_64_OFFSET_",8),l(Pe,"BOX_TYPE_MDAT_",1835295092),l(Pe,"BOX_TYPE_ENCV_",1701733238),l(Pe,"BOX_TYPE_ENCA_",1701733217),l(Pe,"BOX_TYPE_AC_3_",1633889587),l(Pe,"BOX_TYPE_DAC3_",1684103987),l(Pe,"BOX_TYPE_EC_3_",1700998451),l(Pe,"BOX_TYPE_FREE_",1718773093),l(Pe,"BOX_TYPE_DEC3_",1684366131);var Zi=Pe;/*! @license
246
+ * Shaka Player
247
+ * Copyright 2016 Google LLC
248
+ * SPDX-License-Identifier: Apache-2.0
249
+ */var Tt=class{constructor(e,t,i,r=null,s=null,n=null,a=null,o=!1){l(this,"getUris");l(this,"startByte");l(this,"endByte");l(this,"mediaQuality");l(this,"timescale");l(this,"segmentData");l(this,"aesKey");l(this,"codecs");l(this,"mimeType");l(this,"boundaryEnd");l(this,"encrypted");this.getUris=e,this.startByte=t,this.endByte=i,this.mediaQuality=r,this.timescale=s,this.segmentData=n,this.aesKey=a,this.codecs=null,this.mimeType=null,this.boundaryEnd=null,this.encrypted=o}getStartByte(){return this.startByte}getEndByte(){return this.endByte}getSize(){return this.endByte?this.endByte+1-this.startByte:null}getMediaQuality(){return this.mediaQuality}setSegmentData(e){this.segmentData=e}getSegmentData(){return this.segmentData}static equal(e,t){return e===t?!0:!e||!t?e==t:e.getStartByte()==t.getStartByte()&&e.getEndByte()==t.getEndByte()&&ye.equal(e.getUris().sort(),t.getUris().sort())&&D.equal(e.getSegmentData(),t.getSegmentData())}},As=class As{constructor(e,t,i,r,s,n,a,o,c,d=[],u="",m=null,f=null,g=As.Status.AVAILABLE,_=null,T=!1){l(this,"startTime");l(this,"endTime");l(this,"trueEndTime");l(this,"getUrisInner");l(this,"startByte");l(this,"endByte");l(this,"initSegmentReference");l(this,"timestampOffset");l(this,"appendWindowStart");l(this,"appendWindowEnd");l(this,"partialReferences");l(this,"tilesLayout");l(this,"tileDuration");l(this,"syncTime");l(this,"status");l(this,"preload");l(this,"independent");l(this,"byterangeOptimization");l(this,"aesKey");l(this,"thumbnailSprite");l(this,"discontinuitySequence");l(this,"allPartialSegments");l(this,"partial");l(this,"lastPartial");l(this,"codecs");l(this,"mimeType");l(this,"bandwidth");l(this,"segmentData");l(this,"removeSegmentDataOnGet");l(this,"metadata_");v.assert(e<=t,"startTime must be less than or equal to endTime"),v.assert(s==null||r<s,"startByte must be < endByte"),this.startTime=e,this.endTime=t,this.trueEndTime=t,this.getUrisInner=i,this.startByte=r,this.endByte=s,this.initSegmentReference=n,this.timestampOffset=a,this.appendWindowStart=o,this.appendWindowEnd=c,this.partialReferences=d,this.tilesLayout=u,this.tileDuration=m,this.syncTime=f,this.status=g,this.preload=!1,this.independent=!0,this.byterangeOptimization=!1,this.aesKey=_,this.thumbnailSprite=null,this.discontinuitySequence=-1,this.allPartialSegments=T,this.partial=!1,this.lastPartial=!1;for(let S of this.partialReferences)S.markAsPartial();this.allPartialSegments&&this.partialReferences.length&&this.partialReferences[this.partialReferences.length-1].markAsLastPartial(),this.codecs=null,this.mimeType=null,this.bandwidth=null,this.segmentData=null,this.removeSegmentDataOnGet=!1,this.metadata_=null}getUris(){return this.getUrisInner()}getStartTime(){return this.startTime}getEndTime(){return this.endTime}getStartByte(){return this.startByte}getEndByte(){return this.endByte}getSize(){if(this.endByte)return this.endByte+1-this.startByte;if(this.bandwidth){let e=this.bandwidth*(this.endTime-this.startTime);if(!isNaN(e)&&e>0)return e}if(this.hasPartialSegments()&&this.hasAllPartialSegments()){let e=0;for(let t of this.partialReferences){let i=t.getSize();return i&&(e+=i),null}if(e)return e}return null}hasPartialSegments(){return this.partialReferences.length>0}hasAllPartialSegments(){return this.allPartialSegments}getTilesLayout(){return this.tilesLayout}getTileDuration(){return this.tileDuration}getStatus(){return this.status}markAsUnavailable(){this.status=As.Status.UNAVAILABLE}markAsPreload(){this.preload=!0}isPreload(){return this.preload}markAsNonIndependent(){this.independent=!1}isIndependent(){return this.independent}markAsPartial(){this.partial=!0}isPartial(){return this.partial}markAsLastPartial(){this.lastPartial=!0}isLastPartial(){return this.lastPartial}markAsByterangeOptimization(){this.byterangeOptimization=!0}hasByterangeOptimization(){return this.byterangeOptimization}setThumbnailSprite(e){this.thumbnailSprite=e}getThumbnailSprite(){return this.thumbnailSprite}offset(e){this.startTime+=e,this.endTime+=e,this.trueEndTime+=e;for(let t of this.partialReferences)t.startTime+=e,t.endTime+=e,t.trueEndTime+=e}syncAgainst(e){if(this.syncTime==null){p.alwaysError("Sync attempted without sync time!");return}let i=this.syncTime-e-this.startTime;Math.abs(i)>=.001&&this.offset(i)}setSegmentData(e,t=!1){this.segmentData=e,this.removeSegmentDataOnGet=t}getSegmentData(e=!0){let t=this.segmentData;return e&&this.removeSegmentDataOnGet&&(this.segmentData=null),t}updateInitSegmentReference(e){this.initSegmentReference=e;for(let t of this.partialReferences)t.updateInitSegmentReference(e)}setMetadata(e){this.metadata_=e}getMetadata(){return this.metadata_}};l(As,"Status",{AVAILABLE:0,UNAVAILABLE:1,MISSING:2});var Se=As;/*! @license
250
+ * Shaka Player
251
+ * Copyright 2016 Google LLC
252
+ * SPDX-License-Identifier: Apache-2.0
253
+ */var Je=class y{static isBufferNegligible_(e){return e.length==1&&e.end(0)-e.start(0)<1e-4}static bufferStart(e){return!e||y.isBufferNegligible_(e)?null:e.length==1&&e.start(0)<0?0:e.length?e.start(0):null}static bufferEnd(e){return!e||y.isBufferNegligible_(e)?null:e.length?e.end(e.length-1):null}static isBuffered(e,t){return!e||!e.length||y.isBufferNegligible_(e)||t>e.end(e.length-1)?!1:t>=e.start(0)}static bufferedAheadOf(e,t){if(!e||!e.length||y.isBufferNegligible_(e))return 0;let i=0;for(let{start:r,end:s}of y.getBufferedInfo(e))s>t&&(i+=s-Math.max(r,t));return i}static bufferedBehindOf(e,t){if(!e||!e.length||y.isBufferNegligible_(e))return 0;let i=0;for(let{start:r,end:s}of y.getBufferedInfo(e))r<t&&(i+=Math.min(s,t)-r);return i}static getGapIndex(e,t,i){if(!e||!e.length||y.isBufferNegligible_(e))return null;let r=y.getBufferedInfo(e).findIndex((s,n,a)=>s.start>t&&(n==0||a[n-1].end-t<=i));return r>=0?r:null}static getBufferedInfo(e){if(!e)return[];let t=[];for(let i=0;i<e.length;i++)t.push({start:e.start(i),end:e.end(i)});return t}static computeAddedRange(e,t){if(!e||!e.length)return null;if(!t||!t.length)return y.getBufferedInfo(t).pop();let i=y.getBufferedInfo(t).reverse(),r=y.getBufferedInfo(e).reverse();for(let s of i){let n=!1;for(let a of r)if(a.end>=s.start&&a.end<=s.end&&(n=!0,s.end>a.end))return{start:a.end,end:s.end};if(!n)return s}return null}};/*! @license
254
+ * Shaka Player
255
+ * Copyright 2016 Google LLC
256
+ * SPDX-License-Identifier: Apache-2.0
257
+ */var kr=class kr{static getMetadataFrames(e,t){let i=kr.parsersByMime_.get(t)||[],r=[];for(let a of i)r.push(...a().parse(e));let s=new Set,n=[];for(let a of r)s.has(a.key)||(s.add(a.key),n.push(a));return n}static supports(e){let t=kr.parsersByMime_.get(e);return t!=null&&t.length>0}static registerParserByMime(e,t){let i=kr.parsersByMime_;i.has(e)||i.set(e,[]),i.get(e).push(t)}static unregisterParserByMime(e){kr.parsersByMime_.delete(e)}};l(kr,"parsersByMime_",new Map);var kt=kr;/*! @license
258
+ * Shaka Player
259
+ * Copyright 2016 Google LLC
260
+ * SPDX-License-Identifier: Apache-2.0
261
+ */var ke=class ke{static isHeader_(e,t){return t+10<=e.length&&e[t]===73&&e[t+1]===68&&e[t+2]===51&&e[t+3]<255&&e[t+4]<255&&e[t+6]<128&&e[t+7]<128&&e[t+8]<128&&e[t+9]<128}static isFooter_(e,t){return t+10<=e.length&&e[t]===51&&e[t+1]===68&&e[t+2]===73&&e[t+3]<255&&e[t+4]<255&&e[t+6]<128&&e[t+7]<128&&e[t+8]<128&&e[t+9]<128}static readSize_(e,t){let i=0;return i=(e[t]&127)<<21,i|=(e[t+1]&127)<<14,i|=(e[t+2]&127)<<7,i|=e[t+3]&127,i}static readSizeBE_(e,t){let i=0;return i=e[t]<<24,i|=e[t+1]<<16,i|=e[t+2]<<8,i|=e[t+3],i>>>0}static decodeString_(e,t){switch(t){case ke.LATIN1_encoding:return Array.from(e).map(i=>String.fromCharCode(i)).join("");case ke.UTF16BOM_encoding:return q.fromBytesAutoDetect(e);case ke.UTF16BE_encoding:return q.fromUTF16(e,!1);case ke.UTF8_encoding:return q.fromUTF8(e);default:return""}}static nullTermSize_(e){return e===ke.UTF16BOM_encoding||e===ke.UTF16BE_encoding?2:1}static findNull_(e,t,i=0){if(t===ke.UTF16BOM_encoding||t===ke.UTF16BE_encoding){for(let r=i;r+1<e.length;r+=2)if(e[r]===0&&e[r+1]===0)return r;return-1}return e.indexOf(0,i)}static getFrameData_(e,t){let i=String.fromCharCode(e[0],e[1],e[2],e[3]),r=t>=4?ke.readSize_(e,4):ke.readSizeBE_(e,4),s=10;return{type:i,size:r,data:e.subarray(s,s+r)}}static decodeFrame_(e){let t={key:e.type,description:"",data:"",mimeType:null,pictureType:null};if(e.type==="APIC"){if(e.size<2)return null;let i=e.data[0],r=e.data.subarray(1).indexOf(0);if(r===-1)return null;let s=q.fromUTF8(D.toUint8(e.data,1,r)),n=e.data[2+r],a=3+r,o=ke.findNull_(e.data,i,a);if(o===-1)return null;let c=ke.decodeString_(e.data.subarray(a,o),i),d=ke.nullTermSize_(i),u=o+d,m;return s==="-->"?m=q.fromUTF8(e.data.subarray(u)):m=D.toArrayBuffer(e.data.subarray(u)),t.mimeType=s,t.pictureType=n,t.description=c,t.data=m,t}else if(e.type==="COMM"){if(e.size<5)return null;let i=e.data[0],r=q.fromUTF8(e.data.subarray(1,4)).replace(/\0/g,""),s=4,n=ke.findNull_(e.data,i,s);if(n===-1)return null;let a=ke.decodeString_(e.data.subarray(s,n),i),o=ke.nullTermSize_(i),c=ke.decodeString_(e.data.subarray(n+o),i).replace(/\0*$/,"");return t.description=a||r,t.data=c,t}else if(e.type==="TXXX"){if(e.size<2)return null;let i=e.data[0],r=ke.findNull_(e.data,i,1);if(r===-1)return null;let s=ke.decodeString_(e.data.subarray(1,r),i),n=ke.nullTermSize_(i),a=ke.decodeString_(e.data.subarray(r+n),i).replace(/^\ufeff/,"").replace(/\0*$/,"");return t.description=s,t.data=a,t}else if(e.type==="WXXX"){if(e.size<2)return null;let i=e.data[0],r=ke.findNull_(e.data,i,1);if(r===-1)return null;let s=ke.decodeString_(e.data.subarray(1,r),i),n=ke.nullTermSize_(i),a=q.fromUTF8(e.data.subarray(r+n)).replace(/\0*$/,"");return t.description=s,t.data=a,t}else if(e.type==="PRIV"){if(e.size<2)return null;let i=e.data.indexOf(0);if(i===-1)return null;let r=q.fromUTF8(D.toUint8(e.data,0,i));if(t.description=r,r=="com.apple.streaming.transportStreamTimestamp"){let s=e.data.subarray(r.length+1),n=s[3]&1,a=(s[4]<<23)+(s[5]<<15)+(s[6]<<7)+s[7];a/=45,n&&(a+=4772185884e-2),t.data=a}else{let s=D.toArrayBuffer(e.data.subarray(r.length+1));t.data=s}return t}else if(e.type==="UFID"){let i=e.data.indexOf(0);if(i===-1)return null;let r=q.fromUTF8(D.toUint8(e.data,0,i));return t.description=r,t.data=D.toArrayBuffer(e.data.subarray(i+1)),t}else if(e.type[0]==="T"){if(e.size<2)return null;let i=e.data[0],s=ke.decodeString_(e.data.subarray(1),i).replace(/\0+$/,"").split("\0").map(n=>n.replace(/^\ufeff/,"")).filter(n=>n.length>0).join(" / ");return t.data=s,t}else if(e.type[0]==="W"){let i=q.fromUTF8(e.data).replace(/\0*$/,"");return t.data=i,t}else if(e.data)return p.warning("Unrecognized ID3 frame type:",e.type),t.data=D.toArrayBuffer(e.data),t;return null}static getID3Frames(e){let t=0,i=[];for(;ke.isHeader_(e,t);){let r=e[t+3],s=ke.readSize_(e,t+6);e[t+5]>>6&1&&(t+=10),t+=10;let n=t+s;for(;t+10<n&&e[t]!==0;){let a=ke.getFrameData_(e.subarray(t),r),o=ke.decodeFrame_(a);o&&i.push(o),t+=a.size+10}ke.isFooter_(e,t)&&(t+=10)}return i}static getID3Data(e,t=0){let i=t,r=0;for(;ke.isHeader_(e,t);){e[t+5]>>6&1&&(r+=10),r+=10;let s=ke.readSize_(e,t+6);r+=s,ke.isFooter_(e,t+10)&&(r+=10),t+=r}return r>0?e.subarray(i,i+r):new Uint8Array([])}parse(e){return ke.getID3Frames(e)}};l(ke,"LATIN1_encoding",0),l(ke,"UTF16BOM_encoding",1),l(ke,"UTF16BE_encoding",2),l(ke,"UTF8_encoding",3);var It=ke;for(let y of N.RAW_FORMATS)kt.registerParserByMime(y,()=>new It);/*! @license
262
+ * Shaka Player
263
+ * Copyright 2016 Google LLC
264
+ * SPDX-License-Identifier: Apache-2.0
265
+ */var rt=class rt{constructor(e,t=""){l(this,"innerTransmuxer_");l(this,"workerUrl_");l(this,"workerFailed_");l(this,"nextReqId_");l(this,"pendingRequests_");l(this,"id_");l(this,"workerReady_");l(this,"attachedToWorker_");this.innerTransmuxer_=e,this.workerUrl_=t,this.workerFailed_=!1,this.nextReqId_=0,this.pendingRequests_=new Map,this.id_=rt.nextId_++,this.workerReady_=!1,this.attachedToWorker_=!1}destroy(){for(let e of this.pendingRequests_.values())e.timer.stop(),e.reject(new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.TRANSMUXING_FAILED,"Worker transmuxer destroyed"));this.pendingRequests_.clear(),this.attachedToWorker_&&(rt.sharedWorker_&&rt.sharedWorker_.postMessage({cmd:"destroy",id:this.id_}),rt.activeInstances_.delete(this.id_),this.attachedToWorker_=!1,rt.activeInstances_.size===0&&rt.sharedWorker_&&(rt.sharedWorker_.terminate(),rt.sharedWorker_=null)),this.innerTransmuxer_.destroy()}isSupported(e,t){return this.innerTransmuxer_.isSupported(e,t)}convertCodecs(e,t){return this.innerTransmuxer_.convertCodecs(e,t)}getOriginalMimeType(){return this.innerTransmuxer_.getOriginalMimeType()}async transmux(e,t,i,r,s){if(this.workerFailed_)return this.innerTransmuxer_.transmux(e,t,i,r,s);if(!this.attachedToWorker_){if(!rt.getOrCreateWorker_(this.workerUrl_))return this.workerFailed_=!0,this.innerTransmuxer_.transmux(e,t,i,r,s);rt.activeInstances_.set(this.id_,this),this.attachedToWorker_=!0}let n=rt.sharedWorker_;if(!n)return this.workerFailed_=!0,this.innerTransmuxer_.transmux(e,t,i,r,s);if(!this.workerReady_){let E=this.innerTransmuxer_.getOriginalMimeType();n.postMessage({cmd:"init",id:this.id_,mimeType:E}),this.workerReady_=!0}let a=this.nextReqId_++,o={id:t.id,codecs:t.codecs,channelsCount:t.channelsCount,audioSamplingRate:t.audioSamplingRate,height:t.height,width:t.width,language:t.language},c=i?{discontinuitySequence:i.discontinuitySequence,startTime:i.startTime,endTime:i.endTime,uris:i.getUris()}:null,d=D.toArrayBuffer(ne.concat(e)),{promise:u,resolve:m,reject:f}=Promise.withResolvers(),g=!1,_=new ae(()=>{this.pendingRequests_.has(a)&&(this.pendingRequests_.delete(a),this.workerFailed_=!0,g=!0,m(null))});_.tickAfter(rt.TIMEOUT_MS_/1e3),this.pendingRequests_.set(a,{resolve:m,reject:f,timer:_});try{n.postMessage({cmd:"transmux",id:this.id_,reqId:a,data:d,streamProps:o,refProps:c,duration:r,contentType:s},[d])}catch(E){return _.stop(),this.pendingRequests_.delete(a),p.warning("Failed to post message to worker, falling back to main thread",E),rt.terminateWorker_("Worker postMessage failed"),this.innerTransmuxer_.transmux(e,t,i,r,s)}let T=await u;if(g||T===null)return p.alwaysWarn("Worker transmux unavailable; falling back to main-thread transmuxing"),this.innerTransmuxer_.transmux(e,t,i,r,s);let S=T.streamMutations;if(S&&Object.keys(S).length>0)for(let E of Object.keys(S))t[E]=S[E];let b=T.output;return b.type==="raw"?D.toUint8(b.data):{data:D.toUint8(b.data),init:b.init?D.toUint8(b.init):null}}onWorkerMessage_(e){let t=e.cmd;if(t==="transmuxed"||t==="error"){let i=e.reqId,r=this.pendingRequests_.get(i);if(!r)return;if(r.timer.stop(),this.pendingRequests_.delete(i),t==="error"){let s=e.error;r.reject(new h(s.severity,s.category,s.code,...s.data))}else r.resolve(e)}}};l(rt,"nextId_",0),l(rt,"TIMEOUT_MS_",3e4),l(rt,"sharedWorker_",null),l(rt,"activeInstances_",new Map),l(rt,"getOrCreateWorker_",e=>{if(rt.sharedWorker_)return rt.sharedWorker_;if(!j.getDevice().supportsWorkerTransmux())return p.info("Device does not support worker transmuxing; falling back to main-thread transmuxing"),null;if(!e)return p.warning("Transmuxer worker URL is not configured (mediaSource.transmuxWorkerUrl); falling back to main-thread transmuxing"),null;try{let i=new Worker(e);return i.addEventListener("message",r=>{let s=r.data,n=s.cmd;if(n==="transmuxed"||n==="error"){let a=rt.activeInstances_.get(s.id);a&&a.onWorkerMessage_(s)}}),i.addEventListener("error",r=>{p.warning("Transmuxer worker error:",r),rt.terminateWorker_("Worker error")}),rt.sharedWorker_=i,i}catch(i){return p.warning("Failed to create transmuxer worker, falling back to main thread",i),null}}),l(rt,"terminateWorker_",e=>{p.warning("Transmuxer worker terminated, falling back to main thread:",e);for(let t of rt.activeInstances_.values()){t.workerFailed_=!0;for(let i of t.pendingRequests_.values())i.timer.stop(),i.resolve(null);t.pendingRequests_.clear()}rt.sharedWorker_=null,rt.activeInstances_.clear()});var Is=rt;/*! @license
266
+ * Shaka Player
267
+ * Copyright 2016 Google LLC
268
+ * SPDX-License-Identifier: Apache-2.0
269
+ */var qt=class qt{static createHTMLElement(e){return document.createElement(e)}static createSVGElement(e){return document.createElementNS("http://www.w3.org/2000/svg",e)}static createButton(){let e=document.createElement("button");return e.setAttribute("type","button"),e}static createSourceElement(e,t=""){let i=document.createElement("source");return i.src=e,i.type=t,i}static clearSourceFromVideo(e){let t=!1,i=e.getElementsByTagName("source");for(let r=i.length-1;r>=0;--r)e.removeChild(i[r]),t=!0;return e.src&&(e.removeAttribute("src"),t=!0),t}static asHTMLElement(e){return e}static asHTMLCanvasElement(e){return e}static asHTMLMediaElement(e){return e}static asHTMLIFrameElement(e){return e}static getElementByClassName(e,t){let i=t.getElementsByClassName(e);return v.assert(i.length==1,"Should only be one element with class name "+e),qt.asHTMLElement(i[0])}static getElementByClassNameIfItExists(e,t){let i=t.getElementsByClassName(e);return i.length?(v.assert(i.length==1,"Should only be one element with class name "+e),qt.asHTMLElement(i[0])):null}static removeAllChildren(e){for(;e.firstChild;)e.removeChild(e.firstChild)}static anyMediaElement(){return qt.cachedMediaElement_||(qt.cacheExpirationTimer_||(qt.cacheExpirationTimer_=new ae(()=>{qt.cachedMediaElement_=null})),qt.cachedMediaElement_=document.getElementsByTagName("video")[0]||document.getElementsByTagName("audio")[0],qt.cachedMediaElement_||(qt.cachedMediaElement_=document.createElement("video")),qt.cacheExpirationTimer_.tickAfter(1)),qt.cachedMediaElement_}static async addFont(e,t){if(!("fonts"in document&&"FontFace"in window)||(await document.fonts.ready,!("entries"in document.fonts)))return;let i=s=>{let n=s.entries(),a=[],o=n.next();for(;o.done===!1;)a.push(o.value),o=n.next();return a};for(let s of i(document.fonts))if(s.family===e&&s.display==="swap")return;let r=new FontFace(e,`url(${t})`,{display:"swap"});document.fonts.add(r)}};l(qt,"cacheExpirationTimer_",null),l(qt,"cachedMediaElement_",null);var Ge=qt;/*! @license
270
+ * Shaka Player
271
+ * Copyright 2016 Google LLC
272
+ * SPDX-License-Identifier: Apache-2.0
273
+ */var jt=class{static isFloatEqual(e,t,i=Number.EPSILON){if(e===t)return!0;let r=Math.abs(e-t);return r<=i?!0:i!==Number.EPSILON?Math.abs(r-i)<=Number.EPSILON:!1}};/*! @license
274
+ * Shaka Player
275
+ * Copyright 2016 Google LLC
276
+ * SPDX-License-Identifier: Apache-2.0
277
+ */var Wr=class{static convertNtp(e){let t=Date.UTC(1900,0,1,0,0,0,0);return new Date(t+e).getTime()}};/**
278
+ * @license
279
+ * Copyright Brightcove, Inc.
280
+ *
281
+ * Licensed under the Apache License, Version 2.0 (the "License");
282
+ * you may not use this file except in compliance with the License.
283
+ * You may obtain a copy of the License at
284
+ *
285
+ * http://www.apache.org/licenses/LICENSE-2.0
286
+ *
287
+ * Unless required by applicable law or agreed to in writing, software
288
+ * distributed under the License is distributed on an "AS IS" BASIS,
289
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
290
+ * See the License for the specific language governing permissions and
291
+ * limitations under the License.
292
+ */var ii=class{constructor(e,t=!1){l(this,"data_");l(this,"workingBytesAvailable_");l(this,"workingWord_");l(this,"workingBitsAvailable_");this.data_=e,t&&(this.data_=ne.removeEmulationPreventionBytes(e)),this.workingBytesAvailable_=this.data_.byteLength,this.workingWord_=0,this.workingBitsAvailable_=0}loadWord_(){let e=this.data_.byteLength-this.workingBytesAvailable_,t=Math.min(4,this.workingBytesAvailable_);if(t===0)return;let i=0;for(let r=0;r<t;r++)i=i<<8|this.data_[e+r];this.workingWord_=i<<(4-t)*8,this.workingBitsAvailable_=t*8,this.workingBytesAvailable_-=t}skipBits(e){if(this.workingBitsAvailable_<=e){e-=this.workingBitsAvailable_;let t=Math.floor(e/8);e-=t*8,this.workingBitsAvailable_-=t,this.loadWord_()}this.workingWord_<<=e,this.workingBitsAvailable_-=e}readBits(e){let t=Math.min(this.workingBitsAvailable_,e),i=this.workingWord_>>>32-t;return this.workingBitsAvailable_-=t,this.workingBitsAvailable_>0?this.workingWord_<<=t:this.workingBytesAvailable_>0&&this.loadWord_(),t=e-t,t>0?i<<t|this.readBits(t):i}skipLeadingZeros_(){let e=0;for(;this.workingBitsAvailable_===0;){if(this.workingBytesAvailable_===0)return e;this.loadWord_()}for(;;){let t=Math.clz32(this.workingWord_);if(t>this.workingBitsAvailable_&&(t=this.workingBitsAvailable_),e+=t,this.workingWord_<<=t,this.workingBitsAvailable_-=t,this.workingBitsAvailable_>0||this.workingBytesAvailable_===0)break;this.loadWord_()}return e}skipExpGolomb(){this.skipBits(1+this.skipLeadingZeros_())}readUnsignedExpGolomb(){let e=this.skipLeadingZeros_();return this.readBits(e+1)-1}readExpGolomb(){let e=this.readUnsignedExpGolomb();return 1&e?1+e>>>1:-1*(e>>>1)}readBoolean(){return this.readBits(1)===1}readUnsignedByte(){return this.readBits(8)}skipScalingList(e){let t=8,i=8;for(let r=0;r<e;r++){if(i!==0){let s=this.readExpGolomb();i=(t+s+256)%256}t=i===0?t:i}}readSliceType(){return this.readUnsignedByte(),this.readUnsignedExpGolomb(),this.readUnsignedExpGolomb()}};/*! @license
293
+ * Shaka Player
294
+ * Copyright 2016 Google LLC
295
+ * SPDX-License-Identifier: Apache-2.0
296
+ */var lt=class lt{constructor(){l(this,"pmtId_");l(this,"pmtParsed_");l(this,"videoPid_");l(this,"videoCodec_");l(this,"videoData_");l(this,"videoDataPesIndices_");l(this,"videoPes_");l(this,"audioPid_");l(this,"audioCodec_");l(this,"audioData_");l(this,"audioDataPesIndices_");l(this,"audioPes_");l(this,"id3Pid_");l(this,"id3Data_");l(this,"id3DataPesIndices_");l(this,"referencePts_");l(this,"opusMetadata_");l(this,"discontinuitySequence_");this.pmtId_=null,this.pmtParsed_=!1,this.videoPid_=null,this.videoCodec_=null,this.videoData_=[],this.videoDataPesIndices_=[],this.videoPes_=[],this.audioPid_=null,this.audioCodec_=null,this.audioData_=[],this.audioDataPesIndices_=[],this.audioPes_=[],this.id3Pid_=null,this.id3Data_=[],this.id3DataPesIndices_=[],this.referencePts_=null,this.opusMetadata_=null,this.discontinuitySequence_=null}clearData(){this.videoData_=[],this.videoDataPesIndices_=[],this.videoPes_=[],this.audioData_=[],this.audioDataPesIndices_=[],this.audioPes_=[],this.id3Data_=[],this.id3DataPesIndices_=[]}setDiscontinuitySequence(e){this.discontinuitySequence_!=null&&this.discontinuitySequence_!=e&&(this.referencePts_=null),this.discontinuitySequence_=e}parse(e){let t=lt.PacketLength_;if(e.length<3*t)return this;let i=Math.max(0,lt.syncOffset(e)),r=e.length-(e.length+i)%t,s=!1;for(let n=i;n<r;n+=t)if(e[n]==71){let a=!!(e[n+1]&64),o=((e[n+1]&31)<<8)+e[n+2],c=(e[n+3]&48)>>4,d;if(c>1){if(d=n+5+e[n+4],d==n+t)continue}else d=n+4;switch(o){case 0:a&&(d+=e[d]+1),this.pmtId_=this.getPmtId_(e,d);break;case 17:case 8191:break;case this.pmtId_:{a&&(d+=e[d]+1);let u=this.parsePMT_(e,d);u.video!=-1&&(this.videoPid_=u.video,this.videoCodec_=u.videoCodec),u.audio!=-1&&(this.audioPid_=u.audio,this.audioCodec_=u.audioCodec),u.id3!=-1&&(this.id3Pid_=u.id3),s&&!this.pmtParsed_&&(p.debug("reparse from beginning"),s=!1,n=i-t),this.pmtParsed_=!0;break}case this.videoPid_:{let u=e.subarray(d,n+t);a?(this.videoDataPesIndices_.push(this.videoData_.length),this.videoData_.push(u)):this.videoDataPesIndices_.length&&this.videoData_.push(u);break}case this.audioPid_:{let u=e.subarray(d,n+t);a?(this.audioDataPesIndices_.push(this.audioData_.length),this.audioData_.push(u)):this.audioDataPesIndices_.length&&this.audioData_.push(u);break}case this.id3Pid_:{let u=e.subarray(d,n+t);a?(this.id3DataPesIndices_.push(this.id3Data_.length),this.id3Data_.push(u)):this.id3DataPesIndices_.length&&this.id3Data_.push(u);break}default:s=!0;break}}else p.warning("Found TS packet that do not start with 0x47");return this}getPmtId_(e,t){return(e[t+10]&31)<<8|e[t+11]}parsePMT_(e,t){let i={audio:-1,video:-1,id3:-1,audioCodec:"",videoCodec:""},r=(e[t+1]&15)<<8|e[t+2],s=t+3+r-4,n=(e[t+10]&15)<<8|e[t+11];for(t+=12+n;t<s;){let a=(e[t+1]&31)<<8|e[t+2],o=(e[t+3]&15)<<8|e[t+4];switch(e[t]){case 6:if(o>0){let c=t+5,d=o;for(;d>2;){let u=e[c],m=e[c+1]+2;switch(u){case 5:{let f=c+2,g=e[f]<<24|e[f+1]<<16|e[f+2]<<8|e[f+3];i.audio==-1&&g===1332770163?(i.audio=a,i.audioCodec="opus"):i.video==-1&&g===1096167473&&(i.video=a,i.videoCodec="av1");break}case 106:i.audio==-1&&(i.audio=a,i.audioCodec="ac3");break;case 122:i.audio==-1&&(i.audio=a,i.audioCodec="ec3");break;case 124:i.audio==-1&&(i.audio=a,i.audioCodec="aac");break;case 127:if(i.audioCodec=="opus"){let f=e[c+2],g=null;if(f===128&&(g=e[c+3]),g==null)break;let _=(g&15)===0?2:g&15;this.opusMetadata_={channelCount:_,channelConfigCode:g,sampleRate:48e3}}break}c+=m,d-=m}}break;case 207:break;case 15:i.audio==-1&&(i.audio=a,i.audioCodec="aac");break;case 17:i.audio==-1&&(i.audio=a,i.audioCodec="aac-loas");break;case 21:i.id3==-1&&(i.id3=a);break;case 219:break;case 27:i.video==-1&&(i.video=a,i.videoCodec="avc");break;case 3:case 4:i.audio==-1&&(i.audio=a,i.audioCodec="mp3");break;case 36:i.video==-1&&(i.video=a,i.videoCodec="hvc");break;case 129:i.audio==-1&&(i.audio=a,i.audioCodec="ac3");break;case 132:case 135:i.audio==-1&&(i.audio=a,i.audioCodec="ec3");break;default:break}t+=o+5}return i}concatPesPackets_(e,t,i){let r=this.getPesPacketRange_(e,t,i);return this.concatPesPacketRange_(e,r)}concatPesPacketRange_(e,t){return ne.concatRange(e,t.first,t.end)}getPesPacketRange_(e,t,i){let r=t[i],s=i+1<t.length?t[i+1]:e.length;return{first:r,end:s}}parsePESHeader_(e,t){if(e.byteLength<lt.MIN_PES_HEADER_LENGTH_||(e[0]<<16|e[1]<<8|e[2])!==1)return null;let r=e[4]<<8|e[5];if(r&&r>t-6)return null;let s=null,n=null,a=e[7];if(e.byteLength<this.getRequiredPesHeaderLength_(e))return null;if(a&192){let d=(e[9]&14)*536870912+(e[10]&255)*4194304+(e[11]&254)*16384+(e[12]&255)*128+(e[13]&254)/2,u=null;a&64&&(u=(e[14]&14)*536870912+(e[15]&255)*4194304+(e[16]&254)*16384+(e[17]&255)*128+(e[18]&254)/2,d=this.handleRollover_(d,u)),this.referencePts_==null&&(this.referencePts_=d),s=this.handleRollover_(d,this.referencePts_),this.referencePts_=s,n=s,u!=null&&(n=this.handleRollover_(u,s))}let c=e[8]+9;return t<=c?null:{packetLength:r,payloadStartOffset:c,pts:s,dts:n}}parsePES_(e){let t=this.parsePESHeader_(e,e.byteLength);return t?{data:e.subarray(t.payloadStartOffset),packetLength:t.packetLength,pts:t.pts,dts:t.dts,nalus:[]}:null}parseNalus(e,t){let i=lt.Timescale,r=e.pts?e.pts/i:null,s=e.data,n=s.byteLength,a=1;this.videoCodec_=="hvc"&&(a=2);let o=t.state||0,c=o,d=0,u=[],m=-1,f=0,g=this.videoCodec_==="hvc",_=S=>g?s[S]>>1&63:s[S]&31,T=()=>u.length?u[u.length-1]:t.nalu;for(o==-1&&(m=0,f=_(0),o=0,d=1);d<n;){let S=s[d++];if(!o){o=S?0:1;continue}if(o===1){o=S?0:2;continue}if(!S)o=3;else if(S==1){let b=d-o-1;if(m>=0){let E={data:s.subarray(m+a,b),fullData:s.subarray(m,b),type:f,time:r,state:null};u.push(E)}else{let E=T();if(E&&(c&&d<=4-c&&E.state&&(E.data=E.data.subarray(0,E.data.byteLength-c),E.fullData=E.fullData.subarray(0,E.fullData.byteLength-c)),b>0)){let C=s.subarray(0,b);E.data=ne.concat(E.data,C),E.fullData=ne.concat(E.fullData,C),E.state=0}}d<n?(f=_(d),m=d,o=0):o=-1}else o=0}if(m>=0&&o>=0){let S={data:s.subarray(m+a,n),fullData:s.subarray(m,n),type:f,time:r,state:o};u.push(S)}if(!u.length&&t.nalu){let S=T();S&&(S.data=ne.concat(S.data,s),S.fullData=ne.concat(S.fullData,s))}return t.state=o,u}getMetadata(){let e=lt.Timescale,t=[];for(let i=0;i<this.id3DataPesIndices_.length;i++){let r=this.concatPesPackets_(this.id3Data_,this.id3DataPesIndices_,i),s=this.parsePES_(r);s&&t.push({cueTime:s.pts?s.pts/e:null,data:s.data,frames:It.getID3Frames(s.data),dts:s.dts,pts:s.pts})}return t}getAudioData(){if(this.audioDataPesIndices_.length&&!this.audioPes_.length)for(let e=0;e<this.audioDataPesIndices_.length;e++){let t=this.concatPesPackets_(this.audioData_,this.audioDataPesIndices_,e),i=this.parsePES_(t),r=this.audioPes_.length?this.audioPes_[this.audioPes_.length-1]:null;if(i&&i.pts!=null&&i.dts!=null&&(!r||r.pts!=i.pts&&r.dts!=i.dts))this.audioPes_.push(i);else if(this.audioPes_.length){let s=i?i.data:t;if(!s)continue;r=this.audioPes_[this.audioPes_.length-1],r.data=ne.concat(r.data,s)}}return this.audioPes_}getVideoData(e=!0){if(this.videoDataPesIndices_.length&&!this.videoPes_.length){for(let t=0;t<this.videoDataPesIndices_.length;t++){let i=this.concatPesPackets_(this.videoData_,this.videoDataPesIndices_,t),r=this.parsePES_(i),s=this.videoPes_.length?this.videoPes_[this.videoPes_.length-1]:null;if(r&&r.pts!=null&&r.dts!=null&&(!s||s.pts!=r.pts&&s.dts!=r.dts))this.videoPes_.push(r);else if(this.videoPes_.length){let n=r?r.data:i;if(!n)continue;s=this.videoPes_[this.videoPes_.length-1],s.data=ne.concat(s.data,n)}}if(e){let t={nalu:null,state:null},i=[];for(let r of this.videoPes_)r.nalus=this.parseNalus(r,t),r.nalus.length&&(i.push(r),t.nalu=r.nalus[r.nalus.length-1]);this.videoPes_=i}}if(!e){let t=this.videoPes_;return this.videoPes_=[],t}return this.videoPes_}getStartTimeFromPesHeaders(e){let t,i;if(e=="audio")t=this.audioData_,i=this.audioDataPesIndices_;else if(e=="video")t=this.videoData_,i=this.videoDataPesIndices_;else return null;for(let r=0;r<i.length;r++){let s=this.getPesPacketRange_(t,i,r),n=t[s.first];if(!n)continue;let a=0;for(let m=s.first;m<s.end;m++)a+=t[m].byteLength;let c=n.byteLength>=lt.MIN_PES_HEADER_LENGTH_&&n.byteLength>=this.getRequiredPesHeaderLength_(n)?n:this.concatPesPacketRange_(t,s),d=this.parsePESHeader_(c,a);if(!d)continue;let u=this.getStartTimeFromPes_(d);if(u!=null)return u}return null}getRequiredPesHeaderLength_(e){let t=e[7];return t&64?lt.PES_HEADER_WITH_DTS_LENGTH_:t&192?lt.PES_HEADER_WITH_PTS_LENGTH_:lt.MIN_PES_HEADER_LENGTH_}getStartTimeFromPes_(e){return e.pts==null||e.dts==null?null:Math.min(e.dts,e.pts)/lt.Timescale}getStartTime(e){let t;if(e=="audio")t=this.getAudioData();else if(e=="video")t=this.getVideoData(!1);else return null;return t.length?this.getStartTimeFromPes_(t[0]):null}getCodecs(){return{audio:this.audioCodec_,video:this.videoCodec_}}getVideoNalus(){let e=[];for(let t of this.getVideoData())e.push(...t.nalus);return e}getVideoInfo(){return this.videoCodec_=="hvc"?this.getHvcInfo_():this.getAvcInfo_()}getFrameRate_(){let e=lt.Timescale,t=this.getVideoData();if(t.length>1){let i=t[0].pts;v.assert(typeof i=="number","Should be an number!");let r=t[1].pts;if(v.assert(typeof r=="number","Should be an number!"),!isNaN(r-i))return Math.abs(1/(r-i)*e)}return null}getAvcInfo_(){let e={height:null,width:null,codec:null,frameRate:null},t=this.getVideoNalus();if(!t.length)return e;let i=t.find(T=>T.type==lt.H264_NALU_TYPE_SPS_);if(!i)return e;let r=new ii(i.data),s=r.readUnsignedByte(),n=r.readUnsignedByte(),a=r.readUnsignedByte();if(r.skipExpGolomb(),lt.PROFILES_WITH_OPTIONAL_SPS_DATA_.includes(s)){let T=r.readUnsignedExpGolomb();if(T===3&&r.skipBits(1),r.skipExpGolomb(),r.skipExpGolomb(),r.skipBits(1),r.readBoolean()){let S=T!==3?8:12;for(let b=0;b<S;b++)r.readBoolean()&&(b<6?r.skipScalingList(16):r.skipScalingList(64))}}r.skipExpGolomb();let o=r.readUnsignedExpGolomb();if(o===0)r.readUnsignedExpGolomb();else if(o===1){r.skipBits(1),r.skipExpGolomb(),r.skipExpGolomb();let T=r.readUnsignedExpGolomb();for(let S=0;S<T;S++)r.skipExpGolomb()}r.skipExpGolomb(),r.skipBits(1);let c=r.readUnsignedExpGolomb(),d=r.readUnsignedExpGolomb(),u=r.readBits(1);u===0&&r.skipBits(1),r.skipBits(1);let m=0,f=0,g=0,_=0;return r.readBoolean()&&(m=r.readUnsignedExpGolomb(),f=r.readUnsignedExpGolomb(),g=r.readUnsignedExpGolomb(),_=r.readUnsignedExpGolomb()),e.height=String((2-u)*(d+1)*16-g*2-_*2),e.width=String((c+1)*16-m*2-f*2),e.codec="avc1."+this.byteToHex_(s)+this.byteToHex_(n)+this.byteToHex_(a),e.frameRate=this.getFrameRate_(),e}getHvcInfo_(){let e={height:null,width:null,codec:null,frameRate:null},t=this.getVideoNalus();if(!t.length)return e;let i=t.find(ce=>ce.type==lt.H265_NALU_TYPE_SPS_);if(!i)return e;let r=new ii(i.fullData,!0);r.readUnsignedByte(),r.readUnsignedByte(),r.readBits(4);let s=r.readBits(3);r.readBoolean();let n=r.readBits(2),a=r.readBits(1),o=r.readBits(5),c=r.readBits(32),d=r.readUnsignedByte(),u=r.readUnsignedByte(),m=r.readUnsignedByte(),f=r.readUnsignedByte(),g=r.readUnsignedByte(),_=r.readUnsignedByte(),T=r.readUnsignedByte(),S=[],b=[];for(let ce=0;ce<s;ce++)S.push(r.readBoolean()),b.push(r.readBoolean());if(s>0)for(let ce=s;ce<8;ce++)r.readBits(2);for(let ce=0;ce<s;ce++)S[ce]&&r.readBits(88),b[ce]&&r.readUnsignedByte();r.readUnsignedExpGolomb();let E=r.readUnsignedExpGolomb();E==3&&r.readBits(1);let C=r.readUnsignedExpGolomb(),A=r.readUnsignedExpGolomb(),w=0,M=0,x=0,k=0;r.readBoolean()&&(w+=r.readUnsignedExpGolomb(),M+=r.readUnsignedExpGolomb(),x+=r.readUnsignedExpGolomb(),k+=r.readUnsignedExpGolomb());let V=E===1||E===2?2:1,ee=E===1?2:1;e.width=String(C-(w+M)*V),e.height=String(A-(x+k)*ee);let oe=ce=>{let W=0;for(let z=0;z<32;z++)W|=(ce>>z&1)<<31-z;return W>>>0},le=["","A","B","C"][n],H=oe(c),J=a==1?"H":"L",Z="hvc1";return Z+="."+le+o,Z+="."+H.toString(16).toUpperCase(),Z+="."+J+T,_&&(Z+="."+_.toString(16).toUpperCase()),g&&(Z+="."+g.toString(16).toUpperCase()),f&&(Z+="."+f.toString(16).toUpperCase()),m&&(Z+="."+m.toString(16).toUpperCase()),u&&(Z+="."+u.toString(16).toUpperCase()),d&&(Z+="."+d.toString(16).toUpperCase()),e.codec=Z,e.frameRate=this.getFrameRate_(),e}getOpusMetadata(){return this.opusMetadata_}byteToHex_(e){return("0"+e.toString(16).toUpperCase()).slice(-2)}handleRollover_(e,t){let s=1;for(e>t&&(s=-1);Math.abs(t-e)>4294967296;)e+=s*8589934592;return e}static probe(e){let t=lt.syncOffset(e);return t<0?!1:(t>0&&p.warning("MPEG2-TS detected but first sync word found @ offset "+t+", junk ahead ?"),!0)}static syncOffset(e){let t=lt.PacketLength_,i=Math.min(1e3,e.length-3*t),r=0;for(;r<i;){if(e[r]==71&&e[r+t]==71&&e[r+2*t]==71)return r;{let s=e.indexOf(71,r+1);r=s>=0&&s<i?s:r+1}}return-1}};l(lt,"Timescale",9e4),l(lt,"PacketLength_",188),l(lt,"MIN_PES_HEADER_LENGTH_",9),l(lt,"PES_HEADER_WITH_PTS_LENGTH_",14),l(lt,"PES_HEADER_WITH_DTS_LENGTH_",19),l(lt,"H264_NALU_TYPE_SPS_",7),l(lt,"H265_NALU_TYPE_SPS_",33),l(lt,"PROFILES_WITH_OPTIONAL_SPS_DATA_",[100,110,122,244,44,83,86,118,128,138,139,134]);var pt=lt;/*! @license
297
+ * Shaka Player
298
+ * Copyright 2016 Google LLC
299
+ * SPDX-License-Identifier: Apache-2.0
300
+ */var ri=class ri{constructor(e,t,i,r,s){l(this,"video_");l(this,"playerInterface_");l(this,"config_");l(this,"textDisplayer_");l(this,"sourceBuffers_");l(this,"sourceBufferTypes_");l(this,"expectedEncryption_");l(this,"textEngine_");l(this,"segmentRelativeVttTiming_");l(this,"lcevcDec_");l(this,"queues_");l(this,"eventManager_");l(this,"transmuxers_");l(this,"captionParser_");l(this,"mediaSourceOpen_");l(this,"url_");l(this,"playbackHasBegun_");l(this,"streamingAllowed_");l(this,"usingRemotePlayback_");l(this,"source_");l(this,"secondarySource_");l(this,"mediaSource_");l(this,"reloadingMediaSource_");l(this,"playAfterReset_");l(this,"destroyer_");l(this,"sequenceMode_");l(this,"manifestType_");l(this,"ignoreManifestTimestampsInSegmentsMode_");l(this,"attemptTimestampOffsetCalculation_");l(this,"needSplitMuxedContent_");l(this,"lastDuration_");l(this,"tsParsers_");l(this,"firstVideoTimestamp_");l(this,"firstVideoReferenceStartTime_");l(this,"firstAudioTimestamp_");l(this,"firstAudioReferenceStartTime_");l(this,"audioCompensation_");l(this,"usesLiveSeekableRange_");l(this,"clearKeyDecryptors_");this.video_=e,this.playerInterface_=i,this.config_=r,this.textDisplayer_=t,this.sourceBuffers_=new Map,this.sourceBufferTypes_=new Map,this.expectedEncryption_=new Map,this.textEngine_=null,this.segmentRelativeVttTiming_=!1,this.lcevcDec_=s||null,this.queues_=new Map,this.eventManager_=new ue,this.transmuxers_=new Map,this.captionParser_=null,this.mediaSourceOpen_=Promise.withResolvers(),this.url_="",this.playbackHasBegun_=!1,this.streamingAllowed_=!0,this.usingRemotePlayback_=!1,this.source_=null,this.secondarySource_=null,this.mediaSource_=this.createMediaSource(this.mediaSourceOpen_),this.reloadingMediaSource_=!1,this.playAfterReset_=!1,this.destroyer_=new ci(()=>this.doDestroy_()),this.sequenceMode_=!1,this.manifestType_=me.UNKNOWN,this.ignoreManifestTimestampsInSegmentsMode_=!1,this.attemptTimestampOffsetCalculation_=!1,this.needSplitMuxedContent_=!1,this.lastDuration_=null,this.tsParsers_=new Map,this.firstVideoTimestamp_=null,this.firstVideoReferenceStartTime_=null,this.firstAudioTimestamp_=null,this.firstAudioReferenceStartTime_=null,this.audioCompensation_=Promise.withResolvers();let a=j.getDevice().getRemote(this.video_);a&&(this.usingRemotePlayback_=a.state!="disconnected",this.eventManager_.listenMulti(a,["connect","connecting","disconnect"],()=>{this.usingRemotePlayback_=a.state!="disconnected"})),this.usesLiveSeekableRange_=!1,this.clearKeyDecryptors_=new Map}createMediaSource(e){this.streamingAllowed_=!0;let t;return window.ManagedMediaSource?(this.secondarySource_||(this.video_.disableRemotePlayback=!0),t=new ManagedMediaSource,this.eventManager_.listen(t,"startstreaming",()=>{p.info("MMS startstreaming"),this.streamingAllowed_=!0}),this.eventManager_.listen(t,"endstreaming",()=>{p.info("MMS endstreaming"),this.streamingAllowed_=!1})):t=new MediaSource,this.eventManager_.listenOnce(t,"sourceopen",()=>this.onSourceOpen_(e)),this.eventManager_.listenOnce(this.video_,"playing",()=>{this.playbackHasBegun_=!0}),this.url_=ri.createObjectURL(t),this.removeSources_(),this.config_.useSourceElements?(this.source_=Ge.createSourceElement(this.url_),this.video_.appendChild(this.source_),this.secondarySource_&&this.video_.appendChild(this.secondarySource_),this.video_.load()):this.video_.src=this.url_,t}addSecondarySource(e,t){var i;if(!this.video_||!window.ManagedMediaSource||!this.mediaSource_){p.warning("Secondary source is used only with ManagedMediaSource");return}this.config_.useSourceElements&&(((i=this.secondarySource_)==null?void 0:i.parentElement)===this.video_&&this.video_.removeChild(this.secondarySource_),this.secondarySource_=Ge.createSourceElement(e,t),this.video_.appendChild(this.secondarySource_),this.video_.disableRemotePlayback=!1)}onSourceOpen_(e){v.assert(this.url_,"Must have object URL"),URL.revokeObjectURL(this.url_),e.resolve()}static probeSupport(){let e=['video/mp4; codecs="avc1.42E01E"','video/mp4; codecs="avc3.42E01E"','video/mp4; codecs="hev1.1.6.L93.90"','video/mp4; codecs="hvc1.1.6.L93.90"','video/mp4; codecs="hev1.2.4.L153.B0"; eotf="smpte2084"','video/mp4; codecs="hvc1.2.4.L153.B0"; eotf="smpte2084"','video/mp4; codecs="hvc1.2.20000000.L153.B0"','video/mp4; codecs="hvc1.2.4.L120.b0"','video/mp4; codecs="hvc1.2.4.L123.b0"','video/mp4; codecs="vp9"','video/mp4; codecs="vp09.00.10.08"','video/mp4; codecs="av01.0.01M.08"','video/mp4; codecs="av01.0.31M.10.0.111.09.16.09.0"','video/mp4; codecs="av01.0.31M.10.0.112.09.18.09.0"','video/mp4; codecs="dvh1.05.01"','video/mp4; codecs="dvh1.08.01"','video/mp4; codecs="dav1.10.01"','video/mp4; codecs="dvh1.20.01"','audio/mp4; codecs="mp4a.40.2"','audio/mp4; codecs="ac-3"','audio/mp4; codecs="ec-3"','audio/mp4; codecs="ac-4.02.01.03"','audio/mp4; codecs="opus"','audio/mp4; codecs="flac"','audio/mp4; codecs="dtsc"','audio/mp4; codecs="dtse"','audio/mp4; codecs="dtsx"','audio/mp4; codecs="apac.31.00"','video/webm; codecs="vp8"','video/webm; codecs="vp9"','video/webm; codecs="vp09.00.10.08"','audio/webm; codecs="vorbis"','audio/webm; codecs="opus"','video/mp2t; codecs="avc1.42E01E"','video/mp2t; codecs="avc3.42E01E"','video/mp2t; codecs="hvc1.1.6.L93.90"','video/mp2t; codecs="mp4a.40.2"','video/mp2t; codecs="ac-3"','video/mp2t; codecs="ec-3"',"text/vtt",'application/mp4; codecs="wvtt"',"application/ttml+xml",'application/mp4; codecs="stpp"',...N.RAW_FORMATS],t={},i=j.getDevice();for(let r of e){if(Ue.isTypeSupported(r))t[r]=!0;else if(i.supportsMediaSource()){let n=N.getBasicType(r),a=N.getCorrectAudioCodecs(N.getCodecs(r),n),o=N.getFullType(n,a);t[r]=Ke.isTypeSupported(o)||Oe.isSupported(o)}else t[r]=i.supportsMediaType(r);let s=r.split(";")[0];t[s]=t[s]||t[r]}return t}destroy(){return this.destroyer_.destroy()}async doDestroy_(){let e=[];for(let[t,i]of this.queues_){let r=i[0],s=t;this.queues_.set(s,i.slice(0,1)),r&&e.push(r.p.promise.catch(()=>{}));for(let n of i.slice(1))n.p.reject(ci.destroyedError())}this.textEngine_&&e.push(this.textEngine_.destroy()),await Promise.all(e),e=[];for(let t of this.transmuxers_.values())t.destroy();for(let t of this.clearKeyDecryptors_.values())e.push(t.destroy());if(this.eventManager_&&(this.eventManager_.release(),this.eventManager_=null),this.video_&&(this.removeSources_(),this.video_.load(),this.video_.disableRemotePlayback=!1),this.video_=null,this.source_=null,this.secondarySource_=null,this.config_=null,this.mediaSource_=null,this.textEngine_=null,this.textDisplayer_=null,this.sourceBuffers_.clear(),this.expectedEncryption_.clear(),this.clearKeyDecryptors_.clear(),this.transmuxers_.clear(),this.captionParser_=null,Fe)for(let[t,i]of this.queues_)v.assert(i.length==0,t+" queue should be empty after destroy!");this.queues_.clear(),this.lcevcDec_=null,this.tsParsers_.clear(),this.playerInterface_=null,await Promise.all(e)}removeSources_(){var e,t;this.video_&&(this.video_.removeAttribute("src"),((e=this.source_)==null?void 0:e.parentElement)===this.video_&&this.video_.removeChild(this.source_),((t=this.secondarySource_)==null?void 0:t.parentElement)===this.video_&&this.video_.removeChild(this.secondarySource_))}open(){return this.mediaSourceOpen_.promise}async init(e,t=!1,i=me.UNKNOWN,r=!1){let s=R.ContentType;await this.mediaSourceOpen_.promise,(this.ended()||this.closed())&&(p.alwaysError("Expected MediaSource to be open during init(); reopening the media source."),this.mediaSourceOpen_=Promise.withResolvers(),this.mediaSource_=this.createMediaSource(this.mediaSourceOpen_),await this.mediaSourceOpen_.promise),this.sequenceMode_=t,this.manifestType_=i,this.ignoreManifestTimestampsInSegmentsMode_=r,this.attemptTimestampOffsetCalculation_=!this.sequenceMode_&&this.manifestType_==me.HLS&&!this.ignoreManifestTimestampsInSegmentsMode_,this.tsParsers_.clear(),this.firstVideoTimestamp_=null,this.firstVideoReferenceStartTime_=null,this.firstAudioTimestamp_=null,this.firstAudioReferenceStartTime_=null,this.audioCompensation_=Promise.withResolvers();for(let a of e.keys()){let o=e.get(a);this.initSourceBuffer_(a,o,o.codecs),this.needSplitMuxedContent_?(this.queues_.set(s.AUDIO,[]),this.queues_.set(s.VIDEO,[])):this.queues_.set(a,[])}let n=e.get(s.AUDIO);n&&n.isAudioMuxedInVideo&&(this.needSplitMuxedContent_=!0)}initSourceBuffer_(e,t,i){var n;let r=R.ContentType;e==r.AUDIO&&i&&(i=N.getCorrectAudioCodecs(i,t.mimeType)),e==r.VIDEO&&i&&t.mimeType=="video/mp4"&&(i=N.getCorrectVideoCodecs(i));let s=N.getFullType(t.mimeType,i);if(e==r.TEXT)this.reinitText(s,t.external);else{let a=this.config_.forceTransmux;(!Ke.isTypeSupported(s)||!this.sequenceMode_&&N.RAW_FORMATS.includes(s))&&(a=!0);let o=N.getFullTypeWithAllCodecs(t.mimeType,i);if(a){let m=R.guessCodecsSafe(r.AUDIO,(i||"").split(",")),f=R.guessCodecsSafe(r.VIDEO,(i||"").split(","));if(m&&f){this.needSplitMuxedContent_=!0,this.initSourceBuffer_(r.AUDIO,t,m),this.initSourceBuffer_(r.VIDEO,t,f);return}let g=Oe.findTransmuxer(o);if(g){let _=new Is(g(),this.config_.transmuxWorkerUrl);this.transmuxers_.set(e,_),s=_.convertCodecs(e,o)}}let c=this.addExtraFeaturesToMimeType_(s);this.destroyer_.ensureNotDestroyed();let d;try{d=this.mediaSource_.addSourceBuffer(c)}catch(m){throw new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.MEDIA_SOURCE_OPERATION_THREW,m,"The mediaSource_ status was "+this.mediaSource_.readyState+" expected 'open'",null)}this.sequenceMode_&&(d.mode=ri.SourceBufferMode_.SEQUENCE),this.eventManager_.listen(d,"error",()=>this.onError_(e)),this.eventManager_.listen(d,"updateend",()=>this.onUpdateEnd_(e)),this.sourceBuffers_.set(e,d),this.sourceBufferTypes_.set(e,s),this.expectedEncryption_.set(e,!!t.drmInfos.length);let u=this.playerInterface_.getDrmInfo();if(Es.shouldUse(u)){let m=new Es;this.clearKeyDecryptors_.set(e,m)}else(n=this.clearKeyDecryptors_.get(e))==null||n.destroy(),this.clearKeyDecryptors_.delete(e)}}configure(e){this.config_=e,this.textEngine_&&this.textEngine_.setModifyCueCallback(e.modifyCueCallback)}isStreamingAllowed(){return this.streamingAllowed_&&!this.usingRemotePlayback_&&!this.reloadingMediaSource_}isReloadingMediaSource(){return this.reloadingMediaSource_}reinitText(e,t){this.textEngine_||(this.textEngine_=new Ue(this.textDisplayer_,this.manifestType_),this.textEngine_&&this.textEngine_.setModifyCueCallback(this.config_.modifyCueCallback)),this.textEngine_.initParser(e,t,this.segmentRelativeVttTiming_)}ended(){return this.reloadingMediaSource_?!1:this.mediaSource_?this.mediaSource_.readyState=="ended":!0}closed(){return this.reloadingMediaSource_?!1:this.mediaSource_?this.mediaSource_.readyState=="closed":!0}bufferStart(e){if(!this.sourceBuffers_.size)return null;let t=R.ContentType;return e==t.TEXT?this.textEngine_.bufferStart():Je.bufferStart(this.getBuffered_(e))}bufferEnd(e){if(!this.sourceBuffers_.size)return null;let t=R.ContentType;return e==t.TEXT?this.textEngine_.bufferEnd():Je.bufferEnd(this.getBuffered_(e))}isBuffered(e,t){let i=R.ContentType;if(e==i.TEXT)return this.textEngine_.isBuffered(t);{let r=this.getBuffered_(e);return Je.isBuffered(r,t)}}bufferedAheadOf(e,t){let i=R.ContentType;if(e==i.TEXT)return this.textEngine_.bufferedAheadOf(t);{let r=this.getBuffered_(e);return Je.bufferedAheadOf(r,t)}}bufferedBehindOf(e,t){let i=R.ContentType;if(e==i.TEXT)return this.textEngine_.bufferedBehindOf(t);{let r=this.getBuffered_(e);return Je.bufferedBehindOf(r,t)}}getBufferedInfo(){let e=R.ContentType,t={total:this.reloadingMediaSource_?[]:Je.getBufferedInfo(this.video_.buffered),audio:Je.getBufferedInfo(this.getBuffered_(e.AUDIO)),video:Je.getBufferedInfo(this.getBuffered_(e.VIDEO)),text:[]};if(this.textEngine_){let i=this.textEngine_.bufferStart(),r=this.textEngine_.bufferEnd();i!=null&&r!=null&&t.text.push({start:i,end:r})}return t}getBuffered_(e){if(!this.canPerformOperations_())return null;try{return this.sourceBuffers_.get(e).buffered}catch(t){return this.sourceBuffers_.has(e)&&p.error("failed to get buffered range for "+e,t),null}}getCaptionParser(e){return new Rt(e)}getTimestampAndDispatchMetadata(e,t,i,r,s,n=!1){let a=null,o=[],c=D.toUint8(t);if(N.RAW_FORMATS.includes(s)){let d=It.getID3Frames(c);if(d.length&&i){let u=d.find(f=>f.description==="com.apple.streaming.transportStreamTimestamp");u&&typeof u.data=="number"&&(a=Math.round(u.data)/1e3);let m={cueTime:i.startTime,data:c,frames:d,dts:i.startTime,pts:i.startTime};this.playerInterface_.onMetadata([m],0,i.endTime)}}else if(s.includes("/mp4")&&i&&i.initSegmentReference){let d=new F,u=r.emsgSchemeIdUris!=null&&r.emsgSchemeIdUris.length>0||this.config_.dispatchAllEmsgBoxes,m=[];u&&d.fullBox("emsg",S=>{let b=this.parseEMSG_(i,r.emsgSchemeIdUris,S);b&&m.push(b)});let f=i.initSegmentReference.timescale,g=f&&!isNaN(f),_=0,T=!1;g&&d.fullBox("prft",S=>{v.assert(typeof f=="number","Timescale should be a number!"),this.parsePrft_(f,S)}).boxes(F.FRAGMENT_PATH,F.children).fullBox("tfdt",S=>{T||(v.assert(S.version==0||S.version==1,"TFDT version can only be 0 or 1"),v.assert(typeof f=="number","Timescale should be a number!"),_=pe.parseTFDTInaccurate(S.reader,S.version).baseMediaDecodeTime/f,T=!0,u||S.parser.stop())}),(u||g)&&d.parse(t,!1,n),T&&i.timestampOffset==0&&(a=_);for(let S of m)this.dispatchEmsg_(S,i,a)}else if(!s.includes("/mp4")&&!s.includes("/webm")&&pt.probe(c)){let d=this.tsParsers_.getOrInsertComputed(e,()=>new pt);d.clearData(),d.setDiscontinuitySequence(i.discontinuitySequence),d.parse(c);let u=d.getStartTimeFromPesHeaders(e);u!=null&&(a=u),o=d.getMetadata()}return{timestamp:a,metadata:o}}parseEMSG_(e,t,i){let r,s,n,a,o,c,d;i.version===0?(a=i.reader.readTerminatedString(),d=i.reader.readTerminatedString(),r=i.reader.readUint32(),c=i.reader.readUint32(),n=i.reader.readUint32(),s=i.reader.readUint32(),o=e.startTime+c/r):(r=i.reader.readUint32(),o=i.reader.readUint64()/r+e.timestampOffset,c=o-e.startTime,n=i.reader.readUint32(),s=i.reader.readUint32(),a=i.reader.readTerminatedString(),d=i.reader.readTerminatedString());let u=i.reader.readBytes(i.reader.getLength()-i.reader.getPosition(),!0);if(t&&t.includes(a)||this.config_.dispatchAllEmsgBoxes)if(a=="urn:mpeg:dash:event:2012")this.playerInterface_.onManifestUpdate();else{let m=o;return(a!=="https://aomedia.org/emsg/ID3"||n!==4294967295)&&(m+=n/r),{startTime:o,endTime:m,schemeIdUri:a,value:d,timescale:r,presentationTimeDelta:c,eventDuration:n,id:s,messageData:u}}return null}dispatchEmsg_(e,t,i){let r=jt.isFloatEqual(e.startTime,t.startTime+e.presentationTimeDelta/e.timescale);if(i&&this.manifestType_==me.HLS&&!r){let s=-i+t.startTime;e.startTime=e.startTime+s,e.endTime=e.endTime+s}if(this.playerInterface_.onEmsg(e),e.messageData&&(e.schemeIdUri=="https://aomedia.org/emsg/ID3"||e.schemeIdUri=="https://developer.apple.com/streaming/emsg-id3")){let s=It.getID3Frames(e.messageData);if(s.length){let n=e.startTime,a={cueTime:n,data:e.messageData,frames:s,dts:n,pts:n};this.playerInterface_.onMetadata([a],0,e.endTime)}}}parsePrft_(e,t){v.assert(t.version==0||t.version==1,"PRFT version can only be 0 or 1");let i=pe.parsePRFTInaccurate(t.reader,t.version),r=Wr.convertNtp(i.ntpTimestamp),s=new Date(r-i.mediaTime/e*1e3),n={wallClockTime:r,programStartDate:s},a=U.EventName.Prft,o=new Map().set("detail",n),c=new U(a,o);this.playerInterface_.onEvent(c)}dispatchBufferAppending_(e,t,i=!1){let r=U.EventName.BufferAppending,s=new Map().set("data",t).set("contentType",e).set("isInitData",i),n=new U(r,s);this.playerInterface_.onEvent(n)}async appendBuffer(e,t,i,r,s,n=!1,a=!1,o=!1,c=!1,d){let u=R.ContentType;if(e==u.TEXT)return await this.textEngine_.appendBuffer(t,i?i.startTime:null,i?i.endTime:null,i?i.getUris()[0]:null,i?i.discontinuitySequence:-1),{mediaTimestamp:null};if(!c&&this.needSplitMuxedContent_){let T=await this.appendBuffer(u.AUDIO,t,i,r,s,n,a,o,!0),S=await this.appendBuffer(u.VIDEO,t,i,r,s,n,a,o,!0);return S.mediaTimestamp!=null?S:T}if(!this.sourceBuffers_.has(e))return p.warning("Attempted to restore a non-existent source buffer"),{mediaTimestamp:null};let m=this.sourceBuffers_.get(e).timestampOffset,f=null;this.ended()&&this.enqueueOperation_(e,()=>this.reopenMediaSource_(e),null);let g=this.sourceBufferTypes_.get(e);if(this.transmuxers_.has(e)&&(g=this.transmuxers_.get(e).getOriginalMimeType()),i){let{timestamp:T,metadata:S}=this.getTimestampAndDispatchMetadata(e,t,i,r,g,o);if(T!=null){if(f=T,this.firstVideoTimestamp_==null&&e==u.VIDEO&&(this.firstVideoTimestamp_=T,this.firstVideoReferenceStartTime_=i.startTime,this.firstAudioTimestamp_!=null)){let M=0;this.firstVideoReferenceStartTime_==this.firstAudioReferenceStartTime_&&(M=this.firstVideoTimestamp_-this.firstAudioTimestamp_),this.audioCompensation_.resolve(M)}if(this.firstAudioTimestamp_==null&&e==u.AUDIO&&(this.firstAudioTimestamp_=T,this.firstAudioReferenceStartTime_=i.startTime,this.firstVideoTimestamp_!=null)){let M=0;this.firstVideoReferenceStartTime_==this.firstAudioReferenceStartTime_&&(M=this.firstVideoTimestamp_-this.firstAudioTimestamp_),this.audioCompensation_.resolve(M)}let b=T,E=N.RAW_FORMATS;!this.sequenceMode_&&E.includes(this.sourceBufferTypes_.get(e))&&(b=0);let C=i.startTime-b;(Math.abs(m-C)>=.001||n||a)&&(!o||C>0||!m)&&(m=C,this.attemptTimestampOffsetCalculation_&&(this.enqueueOperation_(e,()=>this.abort_(e),null),this.enqueueOperation_(e,()=>this.setTimestampOffset_(e,m),null))),(e==u.VIDEO||!this.sourceBuffers_.has(u.VIDEO))&&this.textEngine_&&(this.textEngine_.setTimestampOffset(m,i.discontinuitySequence),this.textEngine_.setContainerIsMpegTs((g||"").includes("mp2t")))}S.length&&this.playerInterface_.onMetadata(S,m,i?i.endTime:null)}if(s&&e==u.VIDEO){if(this.textEngine_||this.reinitText(N.CEA608_CLOSED_CAPTION_MIMETYPE,!1),!this.captionParser_){let T=g.split(";",1)[0];this.captionParser_=this.getCaptionParser(T)}if(!i)this.captionParser_.init(t,a,d);else{let T=this.captionParser_.parseFrom(t);T.length&&this.textEngine_.storeAndAppendClosedCaptions(T,m)}}if(this.transmuxers_.has(e)){let T=await this.transmuxers_.get(e).transmux(t,r,i,this.mediaSource_.duration,e);if(ArrayBuffer.isView(T))t=T;else{let S=T;if(S.init!=null){let b=S.init;this.enqueueOperation_(e,()=>{this.append_(e,b,m,r,!0)},i?i.getUris()[0]:null)}t=S.data}}if(t=this.workAroundBrokenPlatforms_(r,t,i,e),this.clearKeyDecryptors_.has(e)){let T=N.getContainerType(this.sourceBufferTypes_.get(e))=="mp4",S=this.playerInterface_.getDrmInfo();if(T&&S){let b=i===null;t=await this.clearKeyDecryptors_.get(e).decrypt(t,b,S)}}if(i&&this.sequenceMode_&&e!=u.TEXT&&(n||a)){let T=i.startTime;if(this.manifestType_==me.HLS&&!this.needSplitMuxedContent_&&e==u.AUDIO&&this.sourceBuffers_.has(u.VIDEO)){let S=await this.audioCompensation_.promise;Math.abs(S)>.15&&(T-=S)}this.enqueueOperation_(e,()=>this.abort_(e),null),this.enqueueOperation_(e,()=>this.setTimestampOffset_(e,T),null)}let _=null;if(await this.enqueueOperation_(e,()=>{Fe&&i&&!i.isPreload()&&!o&&(_=this.getBuffered_(e)),this.append_(e,t,m,r,!i)},i?i.getUris()[0]:null),Fe&&i&&!i.isPreload()&&!o&&this.manifestType_!==me.MSF){let T=this.getBuffered_(e),S=Je.computeAddedRange(_,T);if(S){let b=i.endTime-i.startTime,E=S.end-S.start,C=Math.abs(S.end-i.endTime);b>.1&&(C>b/2||Math.abs(b-E)>.03)&&p.error("Possible encoding problem detected!","Unexpected buffered range for reference",i,"from URIs",i.getUris(),"should be",{start:i.startTime,end:i.endTime},"but got",S)}}return{mediaTimestamp:f}}setSelectedClosedCaptionId(e){let t=R.ContentType.VIDEO,i=this.bufferEnd(t)||0;this.textEngine_.setSelectedClosedCaptionId(e,i)}clearSelectedClosedCaptionId(){this.textEngine_&&this.textEngine_.setSelectedClosedCaptionId("",0)}async remove(e,t,i,r){let s=R.ContentType;if(e==s.VIDEO&&this.captionParser_){this.captionParser_.remove(r);let n=this.textEngine_.bufferStart()||0;this.textEngine_.remove(n,i,!0)}e==s.TEXT?await this.textEngine_.remove(t,i):i>t&&(await this.enqueueOperation_(e,()=>this.remove_(e,t,i),null),this.needSplitMuxedContent_&&await this.enqueueOperation_(s.AUDIO,()=>this.remove_(s.AUDIO,t,i),null))}async clear(e){let t=R.ContentType;if(e==t.TEXT){if(!this.textEngine_)return;await this.textEngine_.remove(0,1/0)}else e===t.VIDEO&&this.captionParser_&&this.textEngine_&&await this.textEngine_.remove(0,1/0,!0),await this.enqueueOperation_(e,()=>this.remove_(e,0,this.mediaSource_.duration),null),this.needSplitMuxedContent_&&await this.enqueueOperation_(t.AUDIO,()=>this.remove_(t.AUDIO,0,this.mediaSource_.duration),null)}resetCaptionParser(){this.captionParser_&&this.captionParser_.reset()}async flush(e){let t=R.ContentType;e!=t.TEXT&&(await this.enqueueOperation_(e,()=>this.flush_(e),null),this.needSplitMuxedContent_&&await this.enqueueOperation_(t.AUDIO,()=>this.flush_(t.AUDIO),null))}async setStreamProperties(e,t,i,r,s,n,a,o){let c=R.ContentType;if(e==c.TEXT){s||this.textEngine_.setTimestampOffset(t),this.textEngine_.setAppendWindow(i,r);return}let d=[];await this.codecSwitchIfNecessary_(e,n,a,o)||(d.push(this.enqueueOperation_(e,()=>this.abort_(e),null)),this.needSplitMuxedContent_&&d.push(this.enqueueOperation_(c.AUDIO,()=>this.abort_(c.AUDIO),null))),s||(d.push(this.enqueueOperation_(e,()=>this.setTimestampOffset_(e,t),null)),this.needSplitMuxedContent_&&d.push(this.enqueueOperation_(c.AUDIO,()=>this.setTimestampOffset_(c.AUDIO,t),null))),(i!=0||r!=1/0)&&(d.push(this.enqueueOperation_(e,()=>this.setAppendWindow_(e,i,r),null)),this.needSplitMuxedContent_&&d.push(this.enqueueOperation_(c.AUDIO,()=>this.setAppendWindow_(c.AUDIO,i,r),null))),d.length&&await Promise.all(d)}async resync(e,t){let i=R.ContentType;if(e==i.TEXT||!this.sequenceMode_)return;let r=this.bufferEnd(e);r&&Math.abs(r-t)<.15||(this.enqueueOperation_(e,()=>this.abort_(e),null),this.needSplitMuxedContent_&&this.enqueueOperation_(i.AUDIO,()=>this.abort_(i.AUDIO),null),await this.enqueueOperation_(e,()=>this.setTimestampOffset_(e,t),null),this.needSplitMuxedContent_&&await this.enqueueOperation_(i.AUDIO,()=>this.setTimestampOffset_(i.AUDIO,t),null))}async endOfStream(e){await this.enqueueBlockingOperation_(()=>{this.ended()||this.closed()||(e?this.mediaSource_.endOfStream(e):this.mediaSource_.endOfStream())})}async setDuration(e){await this.enqueueBlockingOperation_(()=>{if(this.config_.durationReductionEmitsUpdateEnd&&e<this.mediaSource_.duration)for(let t of this.sourceBuffers_.keys()){let i={start:()=>{},p:Promise.withResolvers(),uri:null};this.queues_.get(t).unshift(i)}this.mediaSource_.duration=e,this.lastDuration_=e})}getDuration(){return this.mediaSource_.duration}async setLiveSeekableRange(e,t){!this.canPerformOperations_()||this.mediaSource_.duration!==1/0||(v.assert("setLiveSeekableRange"in this.mediaSource_,"Using setLiveSeekableRange on not supported platform"),this.usesLiveSeekableRange_=!0,await this.enqueueBlockingOperation_(()=>{!this.canPerformOperations_()||this.mediaSource_.duration!==1/0||this.mediaSource_.setLiveSeekableRange(e,t)}))}async clearLiveSeekableRange(){!this.canPerformOperations_()||!this.usesLiveSeekableRange_||this.mediaSource_.duration!==1/0||(v.assert("clearLiveSeekableRange"in this.mediaSource_,"Using clearLiveSeekableRange on not supported platform"),this.usesLiveSeekableRange_=!1,await this.enqueueBlockingOperation_(()=>{!this.canPerformOperations_()||this.mediaSource_.duration!==1/0||this.mediaSource_.clearLiveSeekableRange()}))}appendDependency(e,t,i){this.lcevcDec_&&this.lcevcDec_.appendBuffer(e,t,i)}removeDependency(e,t,i){this.lcevcDec_&&this.lcevcDec_.removeBuffer(e,t,i)}append_(e,t,i,r,s=!1){this.appendDependency(t,i,r),this.dispatchBufferAppending_(e,t,s),this.sourceBuffers_.get(e).appendBuffer(t)}remove_(e,t,i){if(i<=t){this.onUpdateEnd_(e);return}this.removeDependency(e,t,i),this.sourceBuffers_.get(e).remove(t,i)}abort_(e){let t=this.sourceBuffers_.get(e),i=t.appendWindowStart,r=t.appendWindowEnd;t.abort(),t.appendWindowStart=i,t.appendWindowEnd=r,this.onUpdateEnd_(e)}reopenMediaSource_(e){let t=this.sourceBuffers_.get(e);if(!this.ended()){this.onUpdateEnd_(e);return}let i=t.buffered,r=i.length?i.end(i.length-1):0;t.remove(r,r+.001)}flush_(e){v.assert(this.video_.buffered.length==0,"MediaSourceEngine.flush_ should only be used after clearing all data!"),this.video_.currentTime-=.001,this.onUpdateEnd_(e)}setTimestampOffset_(e,t){t<0&&(t+=.001),this.sourceBuffers_.get(e).timestampOffset=t,this.onUpdateEnd_(e)}setAppendWindow_(e,t,i){let r=this.sourceBuffers_.get(e);(r.appendWindowEnd!==i||r.appendWindowStart!==t)&&(r.appendWindowStart=0,r.appendWindowEnd=i,r.appendWindowStart=t),this.onUpdateEnd_(e)}onError_(e){let t=this.queues_.get(e)[0];v.assert(t,"Spurious error event!"),v.assert(!this.sourceBuffers_.get(e).updating,"SourceBuffer should not be updating on error!");let i=this.video_.error?this.video_.error.code:0;t.p.reject(new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.MEDIA_SOURCE_OPERATION_FAILED,i,t.uri))}onUpdateEnd_(e){if(this.reloadingMediaSource_||this.destroyer_.destroyed()){let i=this.queues_.get(e);if(i&&i.length){let r=i[0];r&&r.p&&r.p.resolve(),this.queues_.set(e,[])}return}let t=this.queues_.get(e)[0];v.assert(t,"Spurious updateend event!"),t&&(v.assert(!this.sourceBuffers_.get(e).updating,"SourceBuffer should not be updating on updateend!"),t.p.resolve(),this.popFromQueue_(e))}enqueueOperation_(e,t,i){this.destroyer_.ensureNotDestroyed();let r={start:t,p:Promise.withResolvers(),uri:i};return this.queues_.get(e).push(r),this.queues_.get(e).length==1&&this.startOperation_(e),r.p.promise}async enqueueBlockingOperation_(e){this.destroyer_.ensureNotDestroyed();let t=[],i=Array.from(this.sourceBuffers_.keys()),r=new Map;for(let s of i){let n=Promise.withResolvers(),a={start:()=>n.resolve(),p:n,uri:null},o=this.queues_.get(s);o.push(a),t.push(n.promise),r.set(s,a),o.length==1&&a.start()}try{await Promise.all(t)}catch(s){if(this.destroyer_.destroyed()){for(let n of i){let a=this.queues_.get(n);r.has(n)&&ye.remove(a,r.get(n))}return}throw s}if(Fe)for(let s of i)v.assert(this.sourceBuffers_.get(s).updating==!1,"SourceBuffers should not be updating after a blocking op!");try{await e()}catch(s){let n=this.video_.error?h.getMediaElementErrorDetails(this.video_.error):"No error in the media element";throw new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.MEDIA_SOURCE_OPERATION_THREW,s,n,null)}finally{for(let s of i)this.popFromQueue_(s)}}popFromQueue_(e){v.assert(this.queues_.has(e),"Queue should exist"),this.queues_.get(e).shift(),this.startOperation_(e)}startOperation_(e){let t=this.queues_.get(e)[0];if(t)try{t.start()}catch(i){if(i.name=="QuotaExceededError")t.p.reject(new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.QUOTA_EXCEEDED_ERROR,e));else if(!this.isStreamingAllowed())t.p.reject(new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.STREAMING_NOT_ALLOWED,e));else{let r=this.video_.error?h.getMediaElementErrorDetails(this.video_.error):"No error in the media element";t.p.reject(new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.MEDIA_SOURCE_OPERATION_THREW,i,r,t.uri))}this.popFromQueue_(e)}}getTextDisplayer(){return v.assert(this.textDisplayer_,"TextDisplayer should only be null when this is destroyed"),this.textDisplayer_}setTextDisplayer(e){this.textDisplayer_=e,this.textEngine_&&this.textEngine_.setDisplayer(e)}setSegmentRelativeVttTiming(e){this.segmentRelativeVttTiming_=e}workAroundBrokenPlatforms_(e,t,i,r){let s=R.ContentType;if(!(N.getContainerType(this.sourceBufferTypes_.get(r))=="mp4"))return t;let a=i===null,o=this.expectedEncryption_.get(r),c=this.playerInterface_.getKeySystem(),d=!1;i&&i.initSegmentReference&&(d=i.initSegmentReference.encrypted);let u=i?i.getUris()[0]:null,m=j.getDevice();return this.config_.correctEc3Enca&&a&&r===s.AUDIO&&(t=Zi.correctEnca(t)),a&&m.requiresDvvcWorkaround(e)&&(t=Zi.freeDvvcBox(t)),this.config_.insertFakeEncryptionInInit&&o&&m.requiresEncryptionInfoInAllInitSegments(c,r)&&(a?(p.debug("Forcing fake encryption information in init segment."),t=Zi.fakeEncryption(e,t,u,c)):!d&&m.requiresTfhdFix(r)&&(p.debug("Forcing fake encryption information in media segment."),t=Zi.fakeMediaEncryption(t))),a&&m.requiresEC3InitSegments()&&(p.debug("Forcing fake EC-3 information in init segment."),t=Zi.fakeEC3(t)),!a&&e.isIframe&&this.config_.repairIFrames&&(t=Zi.fixBrokenIframes(t)),t}change_(e,t,i){let r=R.ContentType;if(e===r.TEXT){p.debug(`Change not supported for ${e}`);return}let s=this.sourceBufferTypes_.get(e);p.debug(`Change Type: ${s} -> ${t}`);let n=j.getDevice(),a=this.playerInterface_.getKeySystem();if(n.supportsSmoothCodecSwitching(a)){this.transmuxers_.has(e)&&(this.transmuxers_.get(e).destroy(),this.transmuxers_.delete(e)),i&&this.transmuxers_.set(e,i);let o=this.addExtraFeaturesToMimeType_(t);this.sourceBuffers_.get(e).changeType(o),this.sourceBufferTypes_.set(e,t)}else p.debug("Change Type not supported");this.onUpdateEnd_(e)}changeType(e,t,i){return this.enqueueOperation_(e,()=>this.change_(e,t,i),null)}async reset_(e){if(this.reloadingMediaSource_||this.usingRemotePlayback_)return;let t=R.ContentType;this.reloadingMediaSource_=!0,this.needSplitMuxedContent_=!1;let i=this.video_.currentTime,r=this.video_.autoplay;this.video_.paused||(this.playAfterReset_=!0),this.playbackHasBegun_&&(this.video_.autoplay=!1);try{this.eventManager_.removeAll();for(let m of this.transmuxers_.values())m.destroy();for(let m of this.clearKeyDecryptors_.values())m.destroy();for(let m of this.sourceBuffers_.values())try{this.mediaSource_.removeSourceBuffer(m)}catch(f){p.debug("Exception on removeSourceBuffer",f)}this.transmuxers_.clear(),this.sourceBuffers_.clear(),this.clearKeyDecryptors_.clear();let s=this.mediaSource_.duration;this.mediaSourceOpen_=Promise.withResolvers(),this.mediaSource_=this.createMediaSource(this.mediaSourceOpen_),await this.mediaSourceOpen_.promise,!isNaN(s)&&s?this.mediaSource_.duration=s:!isNaN(this.lastDuration_)&&this.lastDuration_&&(this.mediaSource_.duration=this.lastDuration_);let n=Promise.withResolvers(),a=this.mediaSource_.sourceBuffers,o=e.size,c=0,d=()=>{c++,c===o&&(n.resolve(),this.eventManager_.unlisten(a,"addsourcebuffer",d))};this.eventManager_.listen(a,"addsourcebuffer",d);for(let m of e.keys()){let f=e.get(m);this.initSourceBuffer_(m,f,f.codecs)}let u=e.get(t.AUDIO);u&&u.isAudioMuxedInVideo&&(this.needSplitMuxedContent_=!0),this.needSplitMuxedContent_&&!this.queues_.has(t.AUDIO)&&this.queues_.set(t.AUDIO,[]),await n.promise}finally{this.reloadingMediaSource_=!1,this.destroyer_.ensureNotDestroyed(),this.eventManager_.listenOnce(this.video_,Kt.LOADED_METADATA,()=>{this.destroyer_.destroyed()||(this.video_.currentTime=i)}),this.eventManager_.listenOnce(this.video_,Kt.CAN_PLAY_THROUGH,()=>{this.destroyer_.destroyed()||(this.video_.autoplay=r,this.playAfterReset_&&(this.playAfterReset_=!1,this.video_.play()))})}}reset(e){return this.enqueueBlockingOperation_(()=>this.reset_(e))}getRealInfo_(e,t,i){let r=R.ContentType,s,n=!1,a=R.guessCodecsSafe(r.AUDIO,(i||"").split(",")),o=R.guessCodecsSafe(r.VIDEO,(i||"").split(",")),c=o;e==r.AUDIO&&(c=a),c||(c=i);let d=N.getFullType(t,c),u=N.getBasicType(this.sourceBufferTypes_.get(e)),m=this.config_.forceTransmux;if(!Ke.isTypeSupported(d)||!this.sequenceMode_&&N.RAW_FORMATS.includes(d)?m=!0:!m&&t!=u&&(m=!j.getDevice().supportsContainerChangeType()&&N.RAW_FORMATS.includes(t)),m){let _=N.getFullTypeWithAllCodecs(t,c),T=Oe.findTransmuxer(_);T&&(s=new Is(T(),this.config_.transmuxWorkerUrl),a&&o&&(n=!0),d=s.convertCodecs(e,_))}!s&&e===r.VIDEO&&a&&(d=N.getFullType(t,i));let f=N.getNormalizedCodec(N.getCodecs(d)),g=N.getBasicType(d);return{transmuxer:s,transmuxerMuxed:n,basicType:g,codec:f,mimeType:d}}getInfoAboutResetOrChangeType_(e,t,i,r){let s=R.ContentType;if(e==s.TEXT)return{type:ri.ResetMode_.NONE,newMimeType:t,transmuxer:null};let n=N.getNormalizedCodec(N.getCodecs(this.sourceBufferTypes_.get(e))),a=N.getBasicType(this.sourceBufferTypes_.get(e)),o=this.getRealInfo_(e,t,i),c=o.transmuxer,d=o.transmuxerMuxed,u=o.basicType,m=o.codec,f=o.mimeType,g=!0;if(d&&this.sourceBufferTypes_.has(s.AUDIO)){let b=this.getRealInfo_(s.AUDIO,t,i),E=N.getNormalizedCodec(N.getCodecs(this.sourceBufferTypes_.get(s.AUDIO))),C=N.getBasicType(this.sourceBufferTypes_.get(s.AUDIO));g=E==b.codec&&C==b.basicType,b.transmuxer&&b.transmuxer.destroy()}if(n===m&&a===u&&g)return{type:ri.ResetMode_.NONE,newMimeType:f,transmuxer:c};let _=!0;(this.needSplitMuxedContent_&&!r.has(s.AUDIO)||d&&c&&!this.transmuxers_.has(e))&&(_=!1);let T=j.getDevice(),S=this.playerInterface_.getKeySystem();return _&&this.config_.codecSwitchingStrategy===Pr.SMOOTH&&T.supportsSmoothCodecSwitching(S)?{type:ri.ResetMode_.CHANGE_TYPE,newMimeType:f,transmuxer:c}:(c&&c.destroy(),{type:ri.ResetMode_.RESET,newMimeType:f,transmuxer:null})}async codecSwitchIfNecessary_(e,t,i,r){let s=R.ContentType,{type:n,transmuxer:a,newMimeType:o}=this.getInfoAboutResetOrChangeType_(e,t,i,r),c=r.get(s.AUDIO);return c&&(this.needSplitMuxedContent_=c.isAudioMuxedInVideo),n==ri.ResetMode_.NONE?(this.transmuxers_.has(e)&&!a?(this.transmuxers_.get(e).destroy(),this.transmuxers_.delete(e)):!this.transmuxers_.has(e)&&a?this.transmuxers_.set(e,a):a&&(this.transmuxers_.has(e)&&this.transmuxers_.get(e).transmux!==a.transmux?(this.transmuxers_.get(e).destroy(),this.transmuxers_.set(e,a)):a.destroy()),!1):(n==ri.ResetMode_.CHANGE_TYPE?await this.changeType(e,o,a):n==ri.ResetMode_.RESET&&(a&&a.destroy(),await this.reset(r)),!0)}isResetMediaSourceNecessary(e,t,i,r){let s=this.getInfoAboutResetOrChangeType_(e,t,i,r);return s.transmuxer&&s.transmuxer.destroy(),s.type==ri.ResetMode_.RESET}updateLcevcDec(e){this.lcevcDec_=e}addExtraFeaturesToMimeType_(e){let t=this.config_.addExtraFeaturesToSourceBuffer(e),i=e+t;return p.debug("Using full mime type",i),i}canPerformOperations_(){return!(!this.mediaSource_||this.destroyer_.destroyed()||this.video_.error||this.usingRemotePlayback_||this.reloadingMediaSource_||this.closed())}};l(ri,"SourceBufferMode_",{SEQUENCE:"sequence",SEGMENTS:"segments"}),l(ri,"ResetMode_",{NONE:"none",RESET:"reset",CHANGE_TYPE:"changeType"});var dr=ri;dr.createObjectURL=window.URL.createObjectURL;/*! @license
301
+ * Shaka Player
302
+ * Copyright 2016 Google LLC
303
+ * SPDX-License-Identifier: Apache-2.0
304
+ */var wi=class{constructor(e,t,i=!0,r=1){l(this,"presentationStartTime_");l(this,"presentationDelay_");l(this,"duration_");l(this,"segmentAvailabilityDuration_");l(this,"maxSegmentDuration_");l(this,"minSegmentStartTime_");l(this,"maxSegmentEndTime_");l(this,"clockOffset_");l(this,"static_");l(this,"isLive2VodTransition_");l(this,"userSeekStart_");l(this,"autoCorrectDrift_");l(this,"availabilityTimeOffset_");l(this,"startTimeLocked_");l(this,"initialProgramDateTime_");l(this,"programDateTimeRegions_");this.presentationStartTime_=e,this.presentationDelay_=t,this.duration_=1/0,this.segmentAvailabilityDuration_=1/0,this.maxSegmentDuration_=r,this.minSegmentStartTime_=null,this.maxSegmentEndTime_=null,this.clockOffset_=0,this.static_=!0,this.isLive2VodTransition_=!1,this.userSeekStart_=0,this.autoCorrectDrift_=i,this.availabilityTimeOffset_=0,this.startTimeLocked_=!1,this.initialProgramDateTime_=e,this.programDateTimeRegions_=[]}getDuration(){return this.duration_}getMaxSegmentDuration(){return this.maxSegmentDuration_}setPresentationStartTime(e){v.assert(e>=0,"presentationStartTime must be >= 0"),this.presentationStartTime_=e}setDuration(e){v.assert(e>0,"duration must be > 0"),this.duration_=e}getPresentationStartTime(){return this.presentationStartTime_}setClockOffset(e){this.clockOffset_=e}setStatic(e){e&&!this.static_&&(this.isLive2VodTransition_=!0),this.static_=e}setSegmentAvailabilityDuration(e){v.assert(e>=0,"segmentAvailabilityDuration must be >= 0"),this.segmentAvailabilityDuration_=e}getSegmentAvailabilityDuration(){return this.segmentAvailabilityDuration_}setDelay(e){v.assert(e>=0,"delay must be >= 0"),this.presentationDelay_=e}getDelay(){return this.presentationDelay_}notifyTimeRange(e,t){if(e.length==0)return;let i=(Date.now()+this.clockOffset_)/1e3,r=e.filter(a=>a.start+t<i);if(r.length==0)return;let s=r[0].start+t,n=r[r.length-1].end+t;this.notifyMinSegmentStartTime(s),this.maxSegmentDuration_=r.reduce((a,o)=>Math.max(a,o.end-o.start),this.maxSegmentDuration_),this.maxSegmentEndTime_=Math.max(this.maxSegmentEndTime_,n),this.presentationStartTime_!=null&&this.autoCorrectDrift_&&!this.startTimeLocked_&&(this.presentationStartTime_=i-this.maxSegmentEndTime_-this.maxSegmentDuration_),p.v1("notifySegments:","maxSegmentDuration="+this.maxSegmentDuration_)}notifySegments(e){if(e.length==0)return;let t=e[0].startTime,i=e[0].endTime,r=(Date.now()+this.clockOffset_)/1e3;for(let s of e)r<s.startTime||(t=Math.min(t,s.startTime),i=Math.max(i,s.endTime),this.maxSegmentDuration_=Math.max(this.maxSegmentDuration_,s.endTime-s.startTime));this.notifyMinSegmentStartTime(t),this.maxSegmentEndTime_=Math.max(this.maxSegmentEndTime_,i),this.presentationStartTime_!=null&&this.autoCorrectDrift_&&!this.startTimeLocked_&&(this.presentationStartTime_=r-this.maxSegmentEndTime_-this.maxSegmentDuration_),p.v1("notifySegments:","maxSegmentDuration="+this.maxSegmentDuration_)}notifyPeriodDuration(e,t){this.notifyMinSegmentStartTime(e),t!=1/0&&!this.isLive()&&(this.maxSegmentEndTime_=Math.max(this.maxSegmentEndTime_,t))}getMaxSegmentEndTime(){return this.maxSegmentEndTime_}lockStartTime(){this.startTimeLocked_=!0}isStartTimeLocked(){return this.startTimeLocked_}setInitialProgramDateTime(e){this.initialProgramDateTime_=e}getInitialProgramDateTime(){return this.initialProgramDateTime_}setProgramDateTimeRegions(e){this.programDateTimeRegions_=e}getProgramDateTimeRegionForTime(e){if(!this.programDateTimeRegions_.length)return null;let t=this.programDateTimeRegions_[0];for(let i of this.programDateTimeRegions_)if(i.start<=e)t=i;else break;return t}getProgramDateTimeForTime(e){let t=this.getProgramDateTimeRegionForTime(e);return t?t.pdt+(e-t.start):this.initialProgramDateTime_==null?null:this.initialProgramDateTime_+e}notifyMinSegmentStartTime(e){this.minSegmentStartTime_==null?this.minSegmentStartTime_=e:this.isLive2VodTransition_||(this.minSegmentStartTime_=Math.min(this.minSegmentStartTime_,e))}notifyMaxSegmentDuration(e){this.maxSegmentDuration_=Math.max(this.maxSegmentDuration_,e),p.v1("notifyNewSegmentDuration:","maxSegmentDuration="+this.maxSegmentDuration_)}offset(e){this.minSegmentStartTime_!=null&&(this.minSegmentStartTime_+=e),this.maxSegmentEndTime_!=null&&(this.maxSegmentEndTime_+=e)}isLive(){return this.duration_==1/0&&!this.static_}isInProgress(){return this.duration_!=1/0&&!this.static_}isDynamic(){return!this.static_}getSegmentAvailabilityStart(){v.assert(this.segmentAvailabilityDuration_>=0,"The availability duration should be positive");let t=this.getSegmentAvailabilityEnd()-this.segmentAvailabilityDuration_;return Math.max(this.userSeekStart_,t)}setUserSeekStart(e){this.userSeekStart_=e}getSegmentAvailabilityEnd(){return this.isDynamic()?Math.min(this.getLiveEdge_()+this.availabilityTimeOffset_,this.duration_):this.maxSegmentEndTime_?Math.min(this.maxSegmentEndTime_,this.duration_):this.duration_}getSafeSeekRangeStart(e){let t=Math.max(this.minSegmentStartTime_,this.userSeekStart_);if(this.segmentAvailabilityDuration_==1/0)return Math.ceil(t*1e3)/1e3;let r=this.getSegmentAvailabilityEnd()-this.segmentAvailabilityDuration_,s=Math.min(r+e,this.getSeekRangeEnd());return Math.max(t,s)}getSeekRangeStart(){return this.getSafeSeekRangeStart(0)}getSeekRangeEnd(){let t=this.isDynamic()?this.presentationDelay_:0;return Math.max(0,this.getSegmentAvailabilityEnd()-t)}usingPresentationStartTime(){return!(this.presentationStartTime_==null||this.maxSegmentEndTime_!=null&&this.autoCorrectDrift_)}getLiveEdge_(){v.assert(this.presentationStartTime_!=null,"Cannot compute timeline live edge without start time");let e=(Date.now()+this.clockOffset_)/1e3;return Math.max(0,e-this.maxSegmentDuration_-this.presentationStartTime_)}setAvailabilityTimeOffset(e){this.availabilityTimeOffset_=e}getAvailabilityTimeOffset(){return this.availabilityTimeOffset_}assertIsValid(){Fe&&(this.isLive()?v.assert(this.presentationStartTime_!=null,"Detected as live stream, but does not match our model of live!"):this.isInProgress()?v.assert(this.presentationStartTime_!=null&&this.segmentAvailabilityDuration_==1/0,"Detected as IPR stream, but does not match our model of IPR!"):v.assert(this.segmentAvailabilityDuration_==1/0&&this.duration_!=1/0&&this.static_,"Detected as VOD stream, but does not match our model of VOD!"))}};/*! @license
305
+ * Shaka Player
306
+ * Copyright 2016 Google LLC
307
+ * SPDX-License-Identifier: Apache-2.0
308
+ */var nn=class nn{constructor(e,t,i,r,s){l(this,"onEvent_");l(this,"getPlaybackRate_");l(this,"video_");l(this,"timeline_");l(this,"config_");l(this,"eventManager_");l(this,"started_");l(this,"seekingEventReceived_");l(this,"startTime_");l(this,"isJumpingGap_");l(this,"gapsJumped_");l(this,"stallsDetected_");l(this,"stallDetector_");l(this,"hadSegmentAppended_");l(this,"gapJumpTimer_");this.onEvent_=r,this.getPlaybackRate_=s||(()=>e.playbackRate),this.video_=e,this.timeline_=t,this.config_=i,this.eventManager_=new ue,this.started_=!1,this.seekingEventReceived_=!1,this.startTime_=0,this.isJumpingGap_=!1,this.gapsJumped_=0,this.stallsDetected_=0,this.stallDetector_=this.createStallDetector_(),this.hadSegmentAppended_=!1,this.eventManager_.listen(e,"waiting",()=>this.onPollGapJump_()),this.gapJumpTimer_=new ae(()=>{this.onPollGapJump_()}).tickEvery(this.config_.gapJumpTimerTime)}release(){this.eventManager_&&(this.eventManager_.release(),this.eventManager_=null),this.gapJumpTimer_!=null&&(this.gapJumpTimer_.stop(),this.gapJumpTimer_=null),this.stallDetector_&&(this.stallDetector_.release(),this.stallDetector_=null),this.onEvent_=null,this.timeline_=null,this.video_=null}onSegmentAppended(){this.hadSegmentAppended_=!0,this.gapJumpTimer_&&this.gapJumpTimer_.tickEvery(this.config_.gapJumpTimerTime),this.onPollGapJump_()}onStarted(e){this.video_.seeking&&!this.seekingEventReceived_&&(this.seekingEventReceived_=!0,this.startTime_=e),this.gapJumpTimer_&&this.gapJumpTimer_.tickEvery(this.config_.gapJumpTimerTime),this.onPollGapJump_()}onSeeking(){this.seekingEventReceived_=!0,this.hadSegmentAppended_=!1,this.gapJumpTimer_&&this.gapJumpTimer_.tickEvery(this.config_.gapJumpTimerTime),this.onPollGapJump_()}getGapsJumped(){return this.gapsJumped_}getStallsDetected(){return this.stallsDetected_}getIsJumpingGap(){return this.isJumpingGap_}onPollGapJump_(){if(this.video_.readyState==0)return;if(this.video_.seeking){if(!this.seekingEventReceived_)return}else this.seekingEventReceived_=!1;if(this.video_.paused&&(this.video_.currentTime!=this.startTime_||!this.video_.autoplay&&this.video_.currentTime==this.startTime_)||this.stallDetector_&&this.stallDetector_.poll())return;let e=this.video_.currentTime,t=this.video_.buffered,i=this.config_.gapDetectionThreshold;if(this.getPlaybackRate_()<0)return;let r=Je.getGapIndex(t,e,i);if(r==null&&this.stallDetector_&&!this.stallDetector_.poll()){let c=Je.getBufferedInfo(t);for(let d=0;d<c.length-1;d++)if(Math.abs(e-c[d].end)<.1&&c[d+1].start>c[d].end){r=d+1;break}}if(r==null||r==0&&!this.hadSegmentAppended_)return;let s=t.start(r),n=this.config_.gapPadding;n&&(s=Math.ceil((s+n)*100)/100);let a=this.timeline_.getSeekRangeEnd();if(s>=a)return;let o=s-e;o<nn.BROWSER_GAP_TOLERANCE||(r==0?p.info("Jumping forward",o,"seconds because of gap before start time of",s):p.info("Jumping forward",o,"seconds because of gap starting at",t.end(r-1),"and ending at",s),this.seek_(s),e==this.startTime_&&(this.startTime_=s),this.gapsJumped_++,this.onEvent_(new U(U.EventName.GapJumped)))}seek_(e){this.isJumpingGap_=!0,this.eventManager_.listenOnce(this.video_,"seeked",()=>{this.isJumpingGap_=!1}),this.video_.currentTime=e}createStallDetector_(){if(!this.config_.stallEnabled)return null;v.assert(this.video_,"Must have video");let e=this.config_.stallThreshold,t=this.config_.stallSkip,i=async(s,n,a)=>{if(v.assert(this.video_,"Must have video"),!!Je.getBufferedInfo(this.video_.buffered).length){if(p.debug(`Stall detected at ${s} for ${n} seconds (attempt ${a+1}).`),t)p.debug(`Seeking forward ${t} seconds to break stall.`),this.video_.currentTime+=t;else{if(p.debug("Wait for play to avoid reject a possible other play call."),await this.video_.play(),!this.video_)return;p.debug("Pausing and unpausing to break stall."),this.video_.pause(),this.video_.play()}a==0&&(this.stallsDetected_++,this.onEvent_(new U(U.EventName.StallDetected)))}};return new Ya(new $a(this.video_),e,i)}};l(nn,"BROWSER_GAP_TOLERANCE",.001);var Cs=nn,an=class an{constructor(e,t,i){l(this,"implementation_");l(this,"wasMakingProgress_");l(this,"value_");l(this,"lastUpdateSeconds_");l(this,"stallAttempts_");l(this,"lastAttemptSeconds_");l(this,"stallThresholdSeconds_");l(this,"onStall_");this.implementation_=e,this.wasMakingProgress_=e.shouldBeMakingProgress(),this.value_=e.getPresentationSeconds(),this.lastUpdateSeconds_=e.getWallSeconds(),this.stallAttempts_=0,this.lastAttemptSeconds_=0,this.stallThresholdSeconds_=t,this.onStall_=i}release(){this.implementation_&&this.implementation_.release(),this.implementation_=null,this.onStall_=null}poll(){let e=this.implementation_,t=e.shouldBeMakingProgress(),i=e.getPresentationSeconds(),r=e.getWallSeconds();(this.value_!=i||this.wasMakingProgress_!=t)&&(this.lastUpdateSeconds_=r,this.value_=i,this.wasMakingProgress_=t,this.stallAttempts_=0);let n=r-this.lastUpdateSeconds_,a=1+an.MAX_STALL_RETRIES,o=n>=this.stallThresholdSeconds_&&t&&this.stallAttempts_<a&&(this.stallAttempts_==0||r-this.lastAttemptSeconds_>=this.stallThresholdSeconds_);return o&&(this.onStall_&&this.onStall_(this.value_,n,this.stallAttempts_),this.stallAttempts_++,this.lastAttemptSeconds_=r,this.value_=e.getPresentationSeconds()),o}};l(an,"MAX_STALL_RETRIES",2);var Ya=an;var $a=class{constructor(e){l(this,"mediaElement_");l(this,"audioEventManager_");l(this,"audioFocusPaused_");this.mediaElement_=e,this.audioEventManager_=new ue,this.audioFocusPaused_=!1,this.audioEventManager_.listen(this.mediaElement_,"audiofocuspaused",()=>{p.info("Audio focus paused"),this.audioFocusPaused_=!0}),this.audioEventManager_.listen(this.mediaElement_,"audiofocusgranted",()=>{p.info("Audio focus granted"),this.audioFocusPaused_=!1}),this.audioEventManager_.listen(this.mediaElement_,"audiofocuslost",()=>{p.info("Audio focus lost"),this.audioFocusPaused_=!0})}shouldBeMakingProgress(){return this.mediaElement_.paused||this.mediaElement_.playbackRate==0||this.audioFocusPaused_||this.mediaElement_.buffered.length==0?!1:this.hasContentFor_(this.mediaElement_.buffered,this.mediaElement_.currentTime)}getPresentationSeconds(){return this.mediaElement_.currentTime}getWallSeconds(){return Date.now()/1e3}hasContentFor_(e,t){for(let{start:i,end:r}of Je.getBufferedInfo(e))if(!(t<i-.1)&&!(t>r-.5))return!0;return!1}release(){this.audioEventManager_&&this.audioEventManager_.release(),this.audioEventManager_=null}};/*! @license
309
+ * Shaka Player
310
+ * Copyright 2016 Google LLC
311
+ * SPDX-License-Identifier: Apache-2.0
312
+ */var ui=class y{static waitForReadyState(e,t,i,r){if(t==HTMLMediaElement.HAVE_NOTHING||e.readyState>=t)r();else{let s=y.READY_STATES_TO_EVENT_NAMES_.value().get(t);i.listenOnce(e,s,r)}}};ui.READY_STATES_TO_EVENT_NAMES_=new _e(()=>new Map([[HTMLMediaElement.HAVE_METADATA,"loadedmetadata"],[HTMLMediaElement.HAVE_CURRENT_DATA,"loadeddata"],[HTMLMediaElement.HAVE_FUTURE_DATA,"canplay"],[HTMLMediaElement.HAVE_ENOUGH_DATA,"canplaythrough"]]));/*! @license
313
+ * Shaka Player
314
+ * Copyright 2016 Google LLC
315
+ * SPDX-License-Identifier: Apache-2.0
316
+ */var on=class{constructor(e,t,i,r){l(this,"video_");l(this,"onSeek_");l(this,"onStarted_");l(this,"startTime_");l(this,"getStartTime_");l(this,"started_");l(this,"eventManager_");l(this,"mover_");this.video_=e,this.onSeek_=t,this.onStarted_=i,this.startTime_=null,this.getStartTime_=()=>(this.startTime_==null&&(this.startTime_=r()),this.startTime_),this.started_=!1,this.eventManager_=new ue,this.mover_=new Qa(e,10),ui.waitForReadyState(this.video_,HTMLMediaElement.HAVE_METADATA,this.eventManager_,()=>{this.setStartTime_(this.getStartTime_())})}release(){this.eventManager_&&(this.eventManager_.release(),this.eventManager_=null),this.mover_!=null&&(this.mover_.release(),this.mover_=null),this.onSeek_=()=>{},this.video_=null}getTime(){return this.started_?this.video_.currentTime:this.getStartTime_()}setTime(e){this.video_.readyState>0?this.mover_.moveTo(e):(this.startTime_=e,ui.waitForReadyState(this.video_,HTMLMediaElement.HAVE_METADATA,this.eventManager_,()=>{this.setStartTime_(this.getStartTime_())}))}setStartTime_(e){if(Math.abs(this.video_.currentTime-e)<.001){this.startListeningToSeeks_();return}this.eventManager_.listenOnce(this.video_,"seeking",()=>{this.startListeningToSeeks_()}),this.mover_.moveTo(e)}startListeningToSeeks_(){v.assert(this.video_.readyState>0,"The media element should be ready before we listen for seeking."),this.started_=!0,this.eventManager_.listen(this.video_,"seeking",()=>this.onSeek_()),this.onStarted_(this.video_.currentTime)}},Qa=class{constructor(e,t){l(this,"mediaElement_");l(this,"maxAttempts_");l(this,"remainingAttempts_");l(this,"originTime_");l(this,"targetTime_");l(this,"timer_");this.mediaElement_=e,this.maxAttempts_=t,this.remainingAttempts_=0,this.originTime_=0,this.targetTime_=0,this.timer_=new ae(()=>this.onTick_())}release(){this.timer_&&(this.timer_.stop(),this.timer_=null),this.mediaElement_=null}moveTo(e){this.originTime_=this.mediaElement_.currentTime,this.targetTime_=e,this.remainingAttempts_=this.maxAttempts_,this.mediaElement_.currentTime=e,this.timer_.tickEvery(.1)}onTick_(){if(this.remainingAttempts_<=0){p.warning(["Failed to move playhead from",this.originTime_,"to",this.targetTime_].join(" ")),this.timer_.stop();return}if(this.mediaElement_.currentTime!=this.originTime_||this.mediaElement_.currentTime===this.targetTime_){this.timer_.stop();return}this.mediaElement_.currentTime=this.targetTime_,this.remainingAttempts_--}};/*! @license
317
+ * Shaka Player
318
+ * Copyright 2016 Google LLC
319
+ * SPDX-License-Identifier: Apache-2.0
320
+ */var ln=class{constructor(e){l(this,"mediaElement_");l(this,"started_");l(this,"startTime_");l(this,"eventManager_");this.mediaElement_=e,this.started_=!1,this.startTime_=null,this.eventManager_=new ue}ready(){v.assert(this.mediaElement_!=null,"Playhead should not be released before calling ready()");let e=()=>{if(this.startTime_==null||this.startTime_==0&&this.mediaElement_.duration!=1/0)this.started_=!0;else{let t=this.mediaElement_.currentTime,i=null;if(typeof this.startTime_=="number")i=this.startTime_;else if(this.startTime_ instanceof Date){let r=this.getProgramStartTime_();r!==null&&(i=this.startTime_.getTime()/1e3-r,i=this.clampTime_(i))}if(i==null){this.started_=!0;return}i<0&&(i=Math.max(0,t+i)),t!=i?(this.eventManager_.listenOnce(this.mediaElement_,"seeking",()=>{this.started_=!0}),this.mediaElement_.currentTime=i):this.started_=!0}};ui.waitForReadyState(this.mediaElement_,HTMLMediaElement.HAVE_FUTURE_DATA,this.eventManager_,()=>{e()})}release(){this.eventManager_&&(this.eventManager_.release(),this.eventManager_=null),this.mediaElement_=null}setStartTime(e){this.startTime_=this.started_?this.startTime_:e}getTime(){let e=this.started_?this.mediaElement_.currentTime:this.startTime_;return e instanceof Date&&(e=e.getTime()/1e3-(this.getProgramStartTime_()||0),e=this.clampTime_(e)),e||0}getStallsDetected(){return 0}getGapsJumped(){return 0}getIsJumpingGap(){return!1}notifyOfBufferingChange(){}isBufferedToEnd(){v.assert(this.mediaElement_,"We need a video element to get buffering information");let e=Je.bufferEnd(this.mediaElement_.buffered);return e!=null&&e>=this.mediaElement_.duration-1}getProgramStartTime_(){if(this.mediaElement_.getStartDate){let t=this.mediaElement_.getStartDate().getTime();if(!isNaN(t))return t/1e3}return null}clampTime_(e){let t=this.mediaElement_.seekable;return t.length>0&&(e=Math.max(t.start(0),e),e=Math.min(t.end(t.length-1),e)),e}},cn=class{constructor(e,t,i,r,s,n,a){l(this,"minSeekRange_");l(this,"mediaElement_");l(this,"timeline_");l(this,"config_");l(this,"onSeek_");l(this,"lastCorrectiveSeek_");l(this,"gapController_");l(this,"videoWrapper_");l(this,"checkWindowTimer_");this.minSeekRange_=3,this.mediaElement_=e,this.timeline_=t.presentationTimeline,this.config_=i,this.onSeek_=s,this.lastCorrectiveSeek_=null,this.gapController_=new Cs(e,t.presentationTimeline,i,n,a),this.videoWrapper_=new on(e,()=>this.onSeeking_(),o=>this.onStarted_(o),()=>this.getStartTime_(r)),this.checkWindowTimer_=new ae(()=>{this.onPollWindow_()})}ready(){this.checkWindowTimer_.tickEvery(.25)}release(){this.videoWrapper_&&(this.videoWrapper_.release(),this.videoWrapper_=null),this.gapController_&&(this.gapController_.release(),this.gapController_=null),this.checkWindowTimer_&&(this.checkWindowTimer_.stop(),this.checkWindowTimer_=null),this.config_=null,this.timeline_=null,this.videoWrapper_=null,this.mediaElement_=null,this.onSeek_=()=>{}}setStartTime(e){this.videoWrapper_.setTime(this.getStartTime_(e))}getTime(){let e=this.videoWrapper_.getTime();return this.mediaElement_.readyState>0&&!this.mediaElement_.paused?this.clampTime_(e):e}getStallsDetected(){return this.gapController_.getStallsDetected()}getGapsJumped(){return this.gapController_.getGapsJumped()}getIsJumpingGap(){return this.gapController_.getIsJumpingGap()}getStartTime_(e){if(e==null)this.timeline_.isDynamic()?e=this.timeline_.getSeekRangeEnd():e=this.timeline_.getSeekRangeStart();else if(e instanceof Date){let t=this.timeline_.getInitialProgramDateTime()||this.timeline_.getPresentationStartTime();v.assert(t!=null,"Presentation start time should not be null!"),e=e.getTime()/1e3-t}else e<0&&(e=this.timeline_.getSeekRangeEnd()+e);return this.clampSeekToDuration_(this.clampTime_(e))}notifyOfBufferingChange(){this.gapController_.onSegmentAppended()}isBufferedToEnd(){if(v.assert(this.mediaElement_,"We need a video element to get buffering information"),v.assert(this.timeline_,"We need a timeline to get buffering information"),this.timeline_.isDynamic()){let e=this.timeline_.getSegmentAvailabilityEnd(),t=Je.bufferEnd(this.mediaElement_.buffered);if(t!=null&&t>=e)return!0}return!1}onPollWindow_(){if(this.mediaElement_.readyState==0||this.mediaElement_.paused)return;let e=this.videoWrapper_.getTime(),t=this.timeline_.getSeekRangeStart(),i=this.timeline_.getSeekRangeEnd();if(i-t<this.minSeekRange_&&(t=i-this.minSeekRange_),e<t){let r=this.reposition_(e);p.info("Jumping forward "+(r-e)+" seconds to catch up with the seek range."),this.mediaElement_.currentTime=r}}onStarted_(e){this.gapController_.onStarted(e)}onSeeking_(){this.gapController_.onSeeking();let e=this.videoWrapper_.getTime(),t=this.reposition_(e),i=Cs.BROWSER_GAP_TOLERANCE;if(!Ke.isInfiniteLiveStreamDurationSupported()&&Math.abs(t-e)>i){let s=!1,n=j.getDevice().seekDelay();if(n){let a=Date.now()/1e3;(!this.lastCorrectiveSeek_||this.lastCorrectiveSeek_<a-n)&&(this.lastCorrectiveSeek_=a,s=!0)}else s=!0;if(s){this.videoWrapper_.setTime(t);return}}p.v1("Seek to "+e),this.onSeek_()}clampSeekToDuration_(e){let t=this.timeline_.getDuration();return e>=t?(v.assert(this.config_.durationBackoff>=0,"Duration backoff must be non-negative!"),t-this.config_.durationBackoff):e}reposition_(e){v.assert(this.config_,"Cannot reposition playhead when it has been destroyed");let t=u=>Je.isBuffered(this.mediaElement_.buffered,u),i=this.config_.rebufferingGoal,r=this.config_.safeSeekOffset,s=this.timeline_.getSeekRangeStart(),n=this.timeline_.getSeekRangeEnd(),a=this.timeline_.getDuration();n-s<this.minSeekRange_&&(s=n-this.minSeekRange_);let o=this.timeline_.getSafeSeekRangeStart(i),c=this.timeline_.getSafeSeekRangeStart(r),d=this.timeline_.getSafeSeekRangeStart(i+r);return e>=a?(p.v1("Playhead past duration."),this.clampSeekToDuration_(e)):e>n?(p.v1("Playhead past end."),n-this.config_.safeSeekEndOffset):e<s?this.timeline_.isLive()&&this.config_.returnToEndOfLiveWindowWhenOutside?n-this.config_.safeSeekEndOffset:t(c)?(p.v1("Playhead before start & start is buffered"),c):(p.v1("Playhead before start & start is unbuffered"),d):e>=o||t(e)?(p.v1("Playhead in safe region or in buffered region."),e):(p.v1("Playhead outside safe region & in unbuffered region."),d)}clampTime_(e){let t=this.timeline_.getSeekRangeStart();if(e<t)return t;let i=this.timeline_.getSeekRangeEnd();return e>i?i:e}};/*! @license
321
+ * Shaka Player
322
+ * Copyright 2016 Google LLC
323
+ * SPDX-License-Identifier: Apache-2.0
324
+ */var Ze=class y{constructor(e){l(this,"references");l(this,"timer_");l(this,"numEvicted_");l(this,"immutable_");Fe&&y.assertCorrectReferences_(e),this.references=e,this.timer_=null,this.numEvicted_=0,this.immutable_=!1}getIsImmutable(){return this.immutable_}getNumReferences(){return this.references.length}getNumEvicted(){return this.numEvicted_}release(){this.immutable_||(this.references=[],this.timer_&&this.timer_.stop(),this.timer_=null)}markImmutable(){this.immutable_=!0}forEachTopLevelReference(e){for(let t of this.references)e(t)}earliestReference(){return this.references[0]||null}dropFirstReferences(e){this.references.splice(0,e)}find(e){let t=this.references.length-1;if(t<0)return null;if(e<this.references[0].startTime)return this.numEvicted_;let i=ye.binarySearch(this.references,n=>n.startTime<=e)-1;if(i<0)return null;let r=this.references[i],s=i<t?this.references[i+1].startTime:r.endTime;return e>=r.startTime&&e<s?i+this.numEvicted_:null}get(e){if(this.references.length==0)return null;let t=e-this.numEvicted_;return t<0||t>=this.references.length?null:this.references[t]}offset(e){if(!this.immutable_)for(let t of this.references)t.offset(e)}merge(e){if(Fe&&y.assertCorrectReferences_(e),this.immutable_||!e.length)return;let t=Math.round(e[0].startTime*1e3)/1e3,i=ye.binarySearch(this.references,r=>Math.round(r.startTime*1e3)/1e3<t);this.references.length=i,this.references.push(...e),Fe&&y.assertCorrectReferences_(this.references)}mergeAndEvict(e,t){let i=this.references.length>0?this.references[0].startTime:-1/0,r=Math.max(t,i),s=0;for(;s<e.length&&e[s].endTime<=r;)s++;s>0&&(e=e.slice(s));let n=this.references[0];this.merge(e);let a=this.references[0];n&&v.assert(n.startTime==a.startTime,"SegmentIndex.merge should not change the first reference time!"),this.evict(t)}evict(e){if(this.immutable_)return;let t=ye.binarySearch(this.references,i=>i.endTime<=e);t>0&&(this.numEvicted_+=t,this.references=this.references.slice(t))}fit(e,t,i=!1){if(v.assert(t!=null,"Content duration must be known for static content!"),v.assert(t!=1/0,"Content duration must be finite for static content!"),this.immutable_)return;for(;this.references.length&&this.references[this.references.length-1].startTime>=t;)this.references.pop();let r=ye.binarySearch(this.references,a=>a.endTime<=e);if(r>0&&(i||(this.numEvicted_+=r),this.references=this.references.slice(r)),this.references.length==0)return;let s=this.references[this.references.length-1],n=new Se(s.startTime,t,s.getUrisInner,s.startByte,s.endByte,s.initSegmentReference,s.timestampOffset,s.appendWindowStart,s.appendWindowEnd,s.partialReferences,s.tilesLayout,s.tileDuration,s.syncTime,s.status,s.aesKey);n.mimeType=s.mimeType,n.codecs=s.codecs,n.discontinuitySequence=s.discontinuitySequence,this.references[this.references.length-1]=n}updateEvery(e,t){v.assert(!this.timer_,"SegmentIndex timer already started!"),!this.immutable_&&(this.timer_&&this.timer_.stop(),this.timer_=new ae(()=>{let i=t();i?this.references.push(...i):(this.timer_.stop(),this.timer_=null)}),this.timer_.tickEvery(e))}[Symbol.iterator](){let e=this.getIteratorForTime(0);return v.assert(e!=null,"Iterator for 0 should never be null!"),e}getIteratorForTime(e,t=!1,i=!1){let r=this.find(e);if(r==null)return null;let s=this.get(r);i?r++:r--;let n=-1;if(s&&s.hasPartialSegments())for(let a=s.partialReferences.length-1;a>=0;--a){let o=s.partialReferences[a];if(e>=o.startTime&&e<o.endTime){if(!t){for(;a&&!o.isIndependent();)a--,o=s.partialReferences[a];if(!o.isIndependent())return p.alwaysError("No independent partial segment found!"),null}i?r--:r++,n=a-1;break}}return new Ja(this,r,n,i)}isEmpty(){return this.getNumReferences()==0}continuityTimeline(){return-1}static forSingleSegment(e,t,i){let r=new Se(e,e+t,()=>i,0,null,null,e,e,e+t);return new y([r])}};Fe&&(Ze.assertCorrectReferences_=y=>{v.assert(y.every((e,t)=>{if(t==0)return!0;let i=y[t-1];return i.startTime<e.startTime?!0:i.startTime>e.startTime?!1:i.endTime<=e.endTime}),"SegmentReferences are incorrect")});var Ja=class{constructor(e,t,i,r){l(this,"segmentIndex_");l(this,"currentPosition_");l(this,"currentPartialPosition_");l(this,"reverse");this.segmentIndex_=e,this.currentPosition_=t,this.currentPartialPosition_=i,this.reverse=r}setReverse(e){this.reverse=e}currentPosition(){return this.currentPosition_}current(){let e=this.segmentIndex_.get(this.currentPosition_);return e&&e.hasPartialSegments()&&e.hasAllPartialSegments()&&this.currentPartialPosition_>=e.partialReferences.length&&(this.currentPosition_++,this.currentPartialPosition_=0,e=this.segmentIndex_.get(this.currentPosition_)),e&&e.hasPartialSegments()?e.partialReferences[this.currentPartialPosition_]:e}next(){let e=this.segmentIndex_.get(this.currentPosition_);if(!this.reverse)e&&e.hasPartialSegments()?(this.currentPartialPosition_++,e.hasAllPartialSegments()&&this.currentPartialPosition_==e.partialReferences.length&&(this.currentPosition_++,this.currentPartialPosition_=0)):(this.currentPosition_++,this.currentPartialPosition_=0);else if(e&&e.hasPartialSegments()){if(this.currentPartialPosition_--,this.currentPartialPosition_<0){this.currentPosition_--;let i=this.segmentIndex_.get(this.currentPosition_);i&&i.hasPartialSegments()?this.currentPartialPosition_=i.partialReferences.length-1:this.currentPartialPosition_=0}}else this.currentPosition_--,this.currentPartialPosition_=0;let t=this.current();return{value:t,done:!t}}resetToLastIndependent(){let e=this.current();if(e&&e.isPartial()&&!e.isIndependent()){let t=this.segmentIndex_.get(this.currentPosition_);if(t&&t.hasPartialSegments()){let i=t.partialReferences[this.currentPartialPosition_];for(;i.isIndependent()&&!(this.currentPartialPosition_<=0);)this.currentPartialPosition_--,i=t.partialReferences[this.currentPartialPosition_]}}}},Mi=class y extends Ze{constructor(){super([]);l(this,"indexes_");this.indexes_=[]}appendSegmentIndex(t){v.assert(this.indexes_.length==0||t.getNumEvicted()==0,"Should not append a new segment index with already-evicted segments"),this.indexes_.push(t)}clone(){let t=new y;return t.indexes_=this.indexes_.slice(),t.numEvicted_=this.numEvicted_,t}release(){this.indexes_=[]}forEachTopLevelReference(t){for(let i of this.indexes_)i.forEachTopLevelReference(t)}forEachIndex(t){for(let i of this.indexes_)t(i)}find(t){let i=this.numEvicted_;for(let r of this.indexes_){let s=r.find(t);if(s!=null)return s+i;i+=r.getNumEvicted()+r.getNumReferences()}return null}getTimelineForTime(t){for(let i of this.indexes_)if(i.find(t)!=null)return i.continuityTimeline();return-1}get(t){let i=this.numEvicted_,r=!1;for(let s of this.indexes_){v.assert(!r||s.getNumEvicted()==0,"Should not see evicted segments after available segments");let n=s.get(t-i);if(n)return n;let a=s.getNumReferences();i+=s.getNumEvicted()+a,r=r||a!=0}return null}offset(t){v.assert(!1,"offset() should not be used in MetaSegmentIndex!")}merge(t){v.assert(!1,"merge() should not be used in MetaSegmentIndex!")}evict(t){if(!this.indexes_.length)return;let i=this.indexes_[0];i.evict(t),i.isEmpty()&&(this.indexes_.shift(),this.numEvicted_+=i.getNumEvicted(),i.release(),this.evict(t))}mergeAndEvict(t,i){v.assert(!1,"mergeAndEvict() should not be used in MetaSegmentIndex!")}fit(t,i){v.assert(!1,"fit() should not be used in MetaSegmentIndex!")}updateEvery(t,i){v.assert(!1,"updateEvery() should not be used in MetaSegmentIndex!")}};/*! @license
325
+ * Shaka Player
326
+ * Copyright 2016 Google LLC
327
+ * SPDX-License-Identifier: Apache-2.0
328
+ */var dn=class{constructor(e){l(this,"harness_");l(this,"isBuffering_");l(this,"rate_");l(this,"pollRate_");l(this,"timer_");this.harness_=e,this.isBuffering_=!1,this.rate_=this.harness_.getRate(),this.pollRate_=.25,this.timer_=new ae(()=>{this.harness_.isPaused()||this.harness_.movePlayhead(this.rate_*this.pollRate_)})}release(){this.set(this.getDefaultRate()),this.timer_&&(this.timer_.stop(),this.timer_=null),this.harness_=null}setBuffering(e){this.isBuffering_=e,this.apply_()}set(e){v.assert(e!=0,"Should never set rate of 0 explicitly!"),this.rate_=e,this.apply_()}getRealRate(){return this.rate_}getDefaultRate(){return this.harness_.getDefaultRate()}apply_(){this.timer_.stop();let e=this.calculateCurrentRate_();if(p.v1("Changing effective playback rate to",e),e>=0&&e<=16)try{this.applyRate_(e);return}catch(t){}this.timer_.tickEvery(this.pollRate_),this.applyRate_(0)}calculateCurrentRate_(){return this.isBuffering_?0:this.rate_}applyRate_(e){let t=this.harness_.getRate();return t!=e&&this.harness_.setRate(e),t!=e}};/*! @license
329
+ * Shaka Player
330
+ * Copyright 2016 Google LLC
331
+ * SPDX-License-Identifier: Apache-2.0
332
+ */var xs=class{constructor(e){l(this,"mediaElement_");l(this,"eventManager_");l(this,"observers_");l(this,"pollingLoop_");this.mediaElement_=e,this.eventManager_=new ue,this.observers_=new Set,this.pollingLoop_=new ae(()=>{this.pollAllObservers_(!1)}).tickNow(),e.paused||this.pollingLoop_.tickEvery(.25),this.eventManager_.listen(e,"playing",()=>{this.pollingLoop_.tickNow().tickEvery(.25)}),this.eventManager_.listen(e,"pause",()=>{this.pollingLoop_.stop()}),this.eventManager_.listen(e,"seeked",()=>{this.pollingLoop_.tickNow(),e.paused||this.pollingLoop_.tickEvery(.25)})}release(){this.eventManager_&&(this.eventManager_.release(),this.eventManager_=null),this.pollingLoop_.stop();for(let e of this.observers_)e.release();this.observers_.clear()}manage(e){this.observers_.add(e)}notifyOfSeek(e){this.pollAllObservers_(e)}pollAllObservers_(e){let t=this.mediaElement_.currentTime;for(let i of this.observers_)i.poll(t,e)}};/*! @license
333
+ * Shaka Player
334
+ * Copyright 2016 Google LLC
335
+ * SPDX-License-Identifier: Apache-2.0
336
+ */var ur=class y extends Le{constructor(t){super();l(this,"contentTypeStates_");l(this,"getBufferedInfo_");this.contentTypeStates_=new Map,this.getBufferedInfo_=t}release(){this.contentTypeStates_.clear(),super.release()}getContentTypeState_(t){let i=this.contentTypeStates_.get(t);return i||(i={qualityChangePositions:[],currentQuality:null,contentType:t},this.contentTypeStates_.set(t,i)),i}addMediaQualityChange(t,i){let r=this.getContentTypeState_(t.contentType);this.purgeQualityChangePositions_(r);let s={mediaQuality:t,position:i},n=r.qualityChangePositions,a=n.findIndex(o=>o.position>=i);if(a>=0){let o=n[a].position==i?1:0;n.splice(a,o,s)}else n.push(s)}static getMediaQualityAtPosition_(t,i){let r=i.qualityChangePositions;for(let s=r.length-1;s>=0;s--){let n=r[s];if(n.position<=t)return n.mediaQuality}return null}static mediaQualitiesAreTheSame_(t,i){return t===i?!0:!t||!i?!1:t.bandwidth==i.bandwidth&&t.audioSamplingRate==i.audioSamplingRate&&t.codecs==i.codecs&&t.contentType==i.contentType&&t.frameRate==i.frameRate&&t.height==i.height&&t.mimeType==i.mimeType&&t.channelsCount==i.channelsCount&&t.pixelAspectRatio==i.pixelAspectRatio&&t.width==i.width}poll(t,i){for(let r of this.contentTypeStates_.values()){let s=r.currentQuality,n=y.getMediaQualityAtPosition_(t,r),a=n&&!y.mediaQualitiesAreTheSame_(s,n),o=n&&s&&n.label&&s.label&&s.label!==n.label,c=n&&s&&n.language&&s.language&&s.language!==n.language,d=n&&s&&n.roles&&s.roles&&!ye.equal(s.roles,n.roles);if((o||c||d)&&this.positionIsBuffered_(t,n.contentType)){r.currentQuality=n;let u=new U("audiotrackchange",new Map([["quality",n],["position",t]]));this.dispatchEvent(u)}if(a&&this.positionIsBuffered_(t,n.contentType)){r.currentQuality=n,p.debug("Media quality changed at position "+t+" "+JSON.stringify(n));let u=new U("qualitychange",new Map([["quality",n],["position",t]]));this.dispatchEvent(u)}}}positionIsBuffered_(t,i){let s=this.getBufferedInfo_()[i];if(s&&s.length>0){let n=s[0].start,a=s[s.length-1].end;if(t>=n&&t<a)return!0}return!1}purgeQualityChangePositions_(t){let r=this.getBufferedInfo_()[t.contentType];if(r&&r.length>0){let s=r[0].start,n=r[r.length-1].end,a=t.qualityChangePositions;t.qualityChangePositions=a.filter((o,c)=>!(o.position<=s&&c+1<a.length&&a[c+1].position<=s||o.position>=n))}else t.qualityChangePositions=[]}static createQualityInfo(t){let i={bandwidth:t.bandwidth||0,audioSamplingRate:null,codecs:t.codecs,contentType:t.type,frameRate:null,height:null,mimeType:t.mimeType,channelsCount:null,pixelAspectRatio:null,width:null,label:null,roles:t.roles,language:null};return t.type==R.ContentType.VIDEO&&(i.frameRate=t.frameRate||null,i.height=t.height||null,i.pixelAspectRatio=t.pixelAspectRatio||null,i.width=t.width||null),t.type==R.ContentType.AUDIO&&(i.audioSamplingRate=t.audioSamplingRate,i.channelsCount=t.channelsCount,i.label=t.label||null,i.language=t.language),i}};/*! @license
337
+ * Shaka Player
338
+ * Copyright 2016 Google LLC
339
+ * SPDX-License-Identifier: Apache-2.0
340
+ */var un=class un extends Le{constructor(t){super();l(this,"regions_");l(this,"getFilterRange_");l(this,"filterTimer_");this.regions_=new Map,this.getFilterRange_=t,this.filterTimer_=null}release(){this.regions_.clear(),this.releaseTimer_(),super.release()}addRegion(t){let i=this.generateKey_(t);if(!this.regions_.has(i)){this.regions_.set(i,t);let r=new U("regionadd",new Map([["region",t]]));this.dispatchEvent(r),this.setupTimer_()}}filterByRange_(){let t=this.getFilterRange_();for(let[i,r]of this.regions_)if(r.endTime<t.start){this.regions_.delete(i);let s=new U("regionremove",new Map([["region",r]]));this.dispatchEvent(s)}this.regions_.size||this.releaseTimer_()}setupTimer_(){this.filterTimer_||(this.filterTimer_=new ae(()=>{this.filterByRange_()}).tickEvery(un.REGION_FILTER_INTERVAL))}releaseTimer_(){this.filterTimer_&&(this.filterTimer_.stop(),this.filterTimer_=null)}regions(){return this.regions_.values()}generateKey_(t){return`${t.schemeIdUri}_${t.id}_${t.startTime.toFixed(1)}_${t.endTime.toFixed(1)}`}};l(un,"REGION_FILTER_INTERVAL",2);var zr=un;/*! @license
341
+ * Shaka Player
342
+ * Copyright 2016 Google LLC
343
+ * SPDX-License-Identifier: Apache-2.0
344
+ */var Xr=class y{constructor(e,t,i,r,s,n){l(this,"prefetchLimit_");l(this,"stream_");l(this,"fetchDispatcher_");l(this,"segmentPrefetchMap_");l(this,"initSegmentPrefetchMap_");l(this,"iterator_");l(this,"reverse_");l(this,"shouldPrefetchNextSegment_");l(this,"getPlaybackRate_");this.prefetchLimit_=e,this.stream_=t,this.fetchDispatcher_=i,this.segmentPrefetchMap_=new Map,this.initSegmentPrefetchMap_=new Map,this.iterator_=null,this.reverse_=r;let a=(c,d)=>!d.fastSwitching||!c.isPartial()||!c.isLastPartial();this.shouldPrefetchNextSegment_=s||a;let o=()=>1;this.getPlaybackRate_=n||o}replaceFetchDispatcher(e){this.fetchDispatcher_=e;for(let t of this.segmentPrefetchMap_.values())t.replaceFetchDispatcher(e)}prefetchSegmentsByTime(e,t=!1){v.assert(this.prefetchLimit_>0,"SegmentPrefetch can not be used when prefetchLimit <= 0.");let i=y.logPrefix_(this.stream_);if(!this.stream_.segmentIndex)return p.debug(i,"missing segmentIndex"),Promise.resolve();if(this.iterator_||(this.iterator_=this.stream_.segmentIndex.getIteratorForTime(e,!0,this.reverse_)),!this.iterator_)return p.debug(i,"missing iterator"),Promise.resolve();t&&this.iterator_.next();let r=[],s=Math.abs(this.getPlaybackRate_()),n=Math.ceil(this.prefetchLimit_*s);for(;this.segmentPrefetchMap_.size<n;){let a=this.iterator_.next().value;if(!a)break;let o=!0;if(a.isPreload()&&a.endByte!=null&&(o=!1),a.getStatus()==Se.Status.MISSING&&(o=!1),a.getSegmentData(!1)&&(o=!1),o&&a.initSegmentReference&&r.push(this.prefetchInitSegment(a.initSegmentReference)),o&&!this.segmentPrefetchMap_.has(a)){let c=new hn(this.fetchDispatcher_);r.push(c.dispatchFetch(a,this.stream_)),this.segmentPrefetchMap_.set(a,c)}if(!this.shouldPrefetchNextSegment_(a,this.stream_))break}return this.clearInitSegments_(),Promise.all(r)}prefetchInitSegment(e){v.assert(this.prefetchLimit_>0,"SegmentPrefetch can not be used when prefetchLimit <= 0.");let t=y.logPrefix_(this.stream_);if(!this.stream_.segmentIndex)return p.debug(t,"missing segmentIndex"),Promise.resolve();if(e.getSegmentData()||Array.from(this.initSegmentPrefetchMap_.keys()).some(a=>Tt.equal(a,e)))return Promise.resolve();let s=new hn(this.fetchDispatcher_),n=s.dispatchFetch(e,this.stream_);return this.initSegmentPrefetchMap_.set(e,s),n}getPrefetchedSegment(e,t){v.assert(this.prefetchLimit_>0,"SegmentPrefetch can not be used when prefetchLimit <= 0.");let i=y.logPrefix_(this.stream_),r=this.segmentPrefetchMap_;if(e instanceof Tt&&(r=this.initSegmentPrefetchMap_),r.has(e)){let s=r.get(e);return t&&s.setStreamDataCallback(t),e instanceof Se?p.debug(i,"reused prefetched segment at time:",e.startTime,"mapSize",r.size):p.debug(i,"reused prefetched init segment at time, mapSize",r.size),s.getOperation()}else return e instanceof Se?p.debug(i,"missed segment at time:",e.startTime,"mapSize",r.size):p.debug(i,"missed init segment at time, mapSize",r.size),null}clearMap_(e){for(let t of e.keys())t&&this.abortPrefetchedSegment_(t)}resetPosition(){this.iterator_=null}clearAll(){this.clearMap_(this.segmentPrefetchMap_),this.clearMap_(this.initSegmentPrefetchMap_),this.resetPosition();let e=y.logPrefix_(this.stream_);p.debug(e,"cleared all")}removeReference(e){this.abortPrefetchedSegment_(e)}evict(e,t=!1){for(let i of this.segmentPrefetchMap_.keys())e>i.endTime&&this.abortPrefetchedSegment_(i);t&&this.clearInitSegments_()}setReverse(e){this.reverse_=e,this.iterator_&&this.iterator_.setReverse(e)}clearInitSegments_(){if(!this.segmentPrefetchMap_.size)return;let e=Array.from(this.segmentPrefetchMap_.keys());for(let t of this.initSegmentPrefetchMap_.keys())e.some(r=>Tt.equal(r.initSegmentReference,t))||this.abortPrefetchedSegment_(t)}resetLimit(e){v.assert(e>=0,"The new prefetch limit must be >= 0.");let t=y.logPrefix_(this.stream_);p.debug(t,"resetting prefetch limit to",e),this.prefetchLimit_=e;let i=Array.from(this.segmentPrefetchMap_.keys());for(;i.length>e;){let r=i.pop();r&&this.abortPrefetchedSegment_(r)}this.clearInitSegments_()}switchStream(e){e&&e!==this.stream_&&(this.clearAll(),this.stream_=e)}getStream(){return this.stream_}abortPrefetchedSegment_(e){let t=y.logPrefix_(this.stream_),i=this.segmentPrefetchMap_;e instanceof Tt&&(i=this.initSegmentPrefetchMap_);let r=i.get(e);i.delete(e),r&&(r.abort(),e instanceof Se?p.debug(t,"pop and abort prefetched segment at time:",e.startTime):p.debug(t,"pop and abort prefetched init segment"))}static logPrefix_(e){return"SegmentPrefetch("+e.type+":"+e.id+")"}},hn=class{constructor(e){l(this,"fetchDispatcher_");l(this,"streamDataCallback_");l(this,"operation_");this.fetchDispatcher_=e,this.streamDataCallback_=null,this.operation_=null}replaceFetchDispatcher(e){this.fetchDispatcher_=e}dispatchFetch(e,t){let i=new Uint8Array(0);return this.operation_=this.fetchDispatcher_(e,t,async r=>{i.byteLength>0?i=ne.concat(i,r):i=r,this.streamDataCallback_&&(await this.streamDataCallback_(i),i=new Uint8Array(0))}),this.operation_.promise.catch(r=>r instanceof h&&r.code==h.Code.OPERATION_ABORTED?Promise.resolve():Promise.reject(r))}getOperation(){return this.operation_}setStreamDataCallback(e){this.streamDataCallback_=e}abort(){this.operation_&&this.operation_.abort()}};/*! @license
345
+ * Shaka Player
346
+ * Copyright 2016 Google LLC
347
+ * SPDX-License-Identifier: Apache-2.0
348
+ */var Ti={KEEP:"keep",RESET:"reset",RESET_TO_ENCRYPTED:"reset_to_encrypted",RESET_ON_ENCRYPTION_CHANGE:"RESET_ON_ENCRYPTION_CHANGE"};/*! @license
349
+ * Shaka Player
350
+ * Copyright 2016 Google LLC
351
+ * SPDX-License-Identifier: Apache-2.0
352
+ */var Vi=class Vi{static parseMsProRecords_(e,t){let i=[];for(;t<e.byteLength-1;){let r=e.getUint16(t,!0);t+=2;let s=e.getUint16(t,!0);if(t+=2,(s&1)!=0||s+t>e.byteLength)return p.warning("Malformed MS PRO object"),[];let n=D.toUint8(e,t,s);i.push({type:r,value:n}),t+=s}return i}static parseMsPro_(e){let t=0,i=D.toDataView(e),r=i.getUint32(t,!0);return t+=4,r!=e.byteLength?(p.warning("PlayReady Object with invalid length encountered."),[]):(t+=2,Vi.parseMsProRecords_(i,t))}static getLaurl_(e){for(let t of I.getElementsByTagName(e,"DATA"))if(t.children){for(let i of t.children)if(i.tagName=="LA_URL")return I.getTextContents(i)}return""}static getPlayReadyHeaderObject_(e){let t=Vi.PLAYREADY_RECORD_TYPES,r=Vi.parseMsPro_(e).find(a=>a.type===t.RIGHTS_MANAGEMENT);if(!r)return null;let s=q.fromUTF16(r.value,!0),n=I.parseXmlString(s,"WRMHEADER");return n||null}static getLicenseUrl(e){let t=ne.fromBase64(I.getTextContents(e));return Vi.getLicenseFromHeader_(t)}static getLicenseUrlFromPssh(e){let t=ei.getPsshData(e);return Vi.getLicenseFromHeader_(t)}static getLicenseFromHeader_(e){try{let t=Vi.getPlayReadyHeaderObject_(e);return t?Vi.getLaurl_(t):""}catch(t){return""}}};l(Vi,"PLAYREADY_RECORD_TYPES",{RIGHTS_MANAGEMENT:1,RESERVED:2,EMBEDDED_LICENSE:3});var Ri=Vi;/*! @license
353
+ * Shaka Player
354
+ * Copyright 2016 Google LLC
355
+ * SPDX-License-Identifier: Apache-2.0
356
+ */var vt=class y{static getBasicInfoFromMimeType(e){let t=N.getBasicType(e),i=t.split("/")[0],r=N.getCodecs(e);return{type:i,mimeType:t,codecs:r,language:null,height:null,width:null,channelCount:null,sampleRate:null,closedCaptions:new Map,videoRange:null,colorGamut:null,frameRate:null,timescale:null,drmInfos:[]}}static getBasicInfoFromTs(e,t,i,r){let s=D.toUint8(e),n=new pt().parse(s),a=n.getCodecs(),o=n.getVideoInfo(),c=[],d=!1,u=!1;if(!t)switch(a.audio){case"aac":case"aac-loas":n.getAudioData().length&&(c.push("mp4a.40.2"),d=!0);break;case"mp3":n.getAudioData().length&&(c.push("mp4a.40.34"),d=!0);break;case"ac3":n.getAudioData().length&&(c.push("ac-3"),d=!0);break;case"ec3":n.getAudioData().length&&(c.push("ec-3"),d=!0);break;case"opus":n.getAudioData().length&&(c.push("opus"),d=!0);break}if(!i)switch(a.video){case"avc":o.codec?c.push(o.codec):c.push("avc1.42E01E"),u=!0;break;case"hvc":o.codec?c.push(o.codec):c.push("hvc1.1.6.L93.90"),u=!0;break;case"av1":c.push("av01.0.01M.08"),u=!0;break}if(!c.length)return null;let m=d&&!u,f=new Map;if(u&&!r){let g=new Rt("video/mp2t");g.parseFrom(e);for(let _ of g.getStreams())f.set(_,_);g.reset()}return{type:m?"audio":"video",mimeType:"video/mp2t",codecs:c.join(", "),language:null,height:o.height,width:o.width,channelCount:null,sampleRate:null,closedCaptions:f,videoRange:null,colorGamut:null,frameRate:o.frameRate,timescale:null,drmInfos:[]}}static getBasicInfoFromMp4(e,t,i){var X;v.assert(e!=null||t!=null,"Either initData or data must be non-null.");let r=[],s=[],n=[],a=!1,o=!1,c=!1,d=O=>{let $=O.toLowerCase();switch($){case"avc1":case"avc3":s.push($+".42E01E"),o=!0;break;case"hev1":case"hvc1":s.push($+".1.6.L93.90"),o=!0;break;case"dvh1":case"dvhe":s.push($+".05.04"),o=!0;break;case"vp09":s.push($+".00.10.08"),o=!0;break;case"av01":s.push($+".0.01M.08"),o=!0;break;case"mp4a":r.push("mp4a.40.2"),a=!0;break;case"ac-3":case"ec-3":case"ac-4":case"opus":case"flac":r.push($),a=!0;break;case"apac":r.push("apac.31.00"),a=!0;break}},u=O=>d(O.name),m=null,f=null,g=null,_=null,T=null,S=null,b=null,E=null,C=null,A=new Map,w=new Set,M=null,x=null,k,L=0,V=[],ee=new Map,oe=null,le=new Map,H;if(e&&t){let O=D.toUint8(e),$=D.toUint8(t);H=ne.concat(O,$)}else t?H=D.toUint8(t):e&&(H=D.toUint8(e));let J=O=>{let $=pe.audioSampleEntry(O.reader);_=$.channelCount,T=$.sampleRate,u(O),O.reader.hasMoreData()&&F.children(O)},Z=O=>{k=O.name;let $=pe.visualSampleEntry(O.reader);g=String($.width),f=String($.height),O.reader.hasMoreData()&&F.children(O)},ce;if(new F().boxes([...F.SAMPLE_TABLE_PATH,...F.FRAGMENT_PATH],F.children).fullBox("tkhd",O=>{v.assert(O.version!=null,"TKHD is a full box and should have a valid version."),oe=pe.parseTKHD(O.reader,O.version).trackId}).fullBox("mdhd",O=>{v.assert(O.version!=null,"MDHD is a full box and should have a valid version.");let $=pe.parseMDHD(O.reader,O.version);m=$.language,oe!==null&&ee.set(oe,$.timescale)}).fullBox("stsd",F.sampleDescription).fullBox("tfhd",O=>{v.assert(O.flags!=null,"A TFHD box should have a valid flags value");let $=pe.parseTFHD(O.reader,O.flags);$.defaultSampleDuration&&(L=$.defaultSampleDuration)}).fullBox("trun",O=>{v.assert(O.version!=null,"A TRUN box should have a valid version value"),v.assert(O.flags!=null,"A TRUN box should have a valid flags value"),V=pe.parseTRUN(O.reader,O.version,O.flags).sampleData}).box("mp4a",O=>{let $=pe.audioSampleEntry(O.reader);_=$.channelCount,T=$.sampleRate,O.reader.hasMoreData()?F.children(O):u(O)}).box("esds",O=>{let $=pe.parseESDS(O.reader);r.push($.codec),a=!0}).boxes(F.GENERIC_AUDIO_SAMPLE_ENTRIES,J).boxes([...F.AVC_HEVC_DV,"vp09","av01"],Z).box("avcC",O=>{let $=k||"";switch(k){case"dvav":$="avc3";break;case"dva1":$="avc1";break}let Ie=pe.parseAVCC($,O.reader);s.push(Ie.codec),o=!0}).box("hvcC",O=>{let $=k||"";switch(k){case"dvh1":$="hvc1";break;case"dvhe":$="hev1";break}let Ie=pe.parseHVCC($,O.reader);s.push(Ie.codec),o=!0}).box("dvcC",O=>{let $=k||"";switch(k){case"hvc1":$="dvh1";break;case"hev1":$="dvhe";break;case"avc1":$="dva1";break;case"avc3":$="dvav";break;case"av01":$="dav1";break}let Ie=pe.parseDVCC($,O.reader);s.push(Ie.codec),o=!0}).box("dvvC",O=>{let $=k||"";switch(k){case"hvc1":$="dvh1";break;case"hev1":$="dvhe";break;case"avc1":$="dva1";break;case"avc3":$="dvav";break;case"av01":$="dav1";break}let Ie=pe.parseDVVC($,O.reader);s.push(Ie.codec),o=!0}).fullBox("vpcC",O=>{let $=k||"",Ie=pe.parseVPCC($,O.reader);s.push(Ie.codec),o=!0}).box("av1C",O=>{let $=k||"";k==="dav1"&&($="av01");let Ie=pe.parseAV1C($,O.reader);s.push(Ie.codec),o=!0}).boxes(["wvtt","stpp"],O=>{n.push(O.name),c=!0}).box("c608",()=>{le.set("CC1","CC1"),oe!==null&&ee.delete(oe)}).box("enca",J).box("encv",Z).box("sinf",F.children).box("frma",O=>{let{codec:$}=pe.parseFRMA(O.reader);d($)}).box("colr",O=>{s=s.map(tt=>tt.startsWith("av01.")?pe.updateAV1CodecWithCOLRBox(tt,O.reader):tt);let{videoRange:$,colorGamut:Ie}=pe.parseCOLR(O.reader);S=$,b=Ie}).fullBox("schm",O=>{M=pe.parseSCHM(O.reader).encryptionScheme}).box("schi",F.children).fullBox("tenc",O=>{v.assert(O.version!=null,"TENC is a full box and should have a valid version."),x=pe.parseTENC(O.reader,O.version).defaultKID}).fullBox("pssh",O=>{v.assert(O.version!=null,"PSSH is a full box and should have a valid version.");let $=O.reader.getDataView();v.assert($.byteOffset>=12,"DataView at incorrect position");let Ie=D.toUint8($,-12,O.size),tt=ne.toHex(Ie);if(w.has(tt))return;w.add(tt);let _t=O.reader.readBytes(16,!1),bt=ne.toHex(_t);ce||(ce=de.getUuidMap(!0));let yt=ce[bt.toLowerCase()];if(!yt)return;let xt=R.createDrmInfo(yt,"cenc",[{initDataType:"cenc",initData:Ie}]);if(de.isPlayReadyKeySystem(yt)&&(xt.licenseServerUri=Ri.getLicenseUrlFromPssh(Ie)),O.version>0){let mt=O.reader.readUint32();for(let Qe=0;Qe<mt;Qe++){let Ft=O.reader.readBytes(16,!1);xt.keyIds.add(ne.toHex(Ft))}}A.set(yt,xt)}).parse(H,!0,!0),!r.length&&!s.length&&!n.length)return null;C=ee.values().next().value;let W=a&&!o;if(o&&!i&&t&&!le.size){let O=new Rt("video/mp4");e&&O.init(e);try{O.parseFrom(t);for(let $ of O.getStreams())le.set($,$)}catch($){p.debug("Error detecting CC streams",$)}O.reset()}let z=r.concat(s).concat(n);M==="cbcs"&&x&&!A.has("com.apple.fps")&&A.set("com.apple.fps",R.createDrmInfo("com.apple.fps",M,null));for(let O of A.values())M&&(O.encryptionScheme=M),x&&O.keyIds.add(x);let ge="video",Y="video/mp4";if(c?(ge="text",Y="application/mp4"):W&&(ge="audio",Y="audio/mp4"),ge==="video"&&C!=null&&V.length){let O=C,$=0;for(let Ie of V)$+=(X=Ie.sampleDuration)!=null?X:L;$>0&&(E=O*V.length/$)}return{type:ge,mimeType:Y,codecs:y.codecsFiltering(z).join(", "),language:m,height:f,width:g,channelCount:_,sampleRate:T,closedCaptions:le,videoRange:S,colorGamut:b,frameRate:E,timescale:C,drmInfos:Array.from(A.values())}}static codecsFiltering(e){let t=R.ContentType,i=y.filterDuplicateCodecs_(e),r=R.guessAllCodecsSafe(t.AUDIO,i),s=R.guessAllCodecsSafe(t.VIDEO,i),n=R.guessAllCodecsSafe(t.TEXT,i),a=y.chooseBetterCodecs_(s),o=r.concat(a).concat(n);return i.length&&!o.length?i:o}static getStartTimeAndDurationFromMp4(e,t){var o;let i=0,r=0,s=[];new F().boxes(F.FRAGMENT_PATH,F.children).fullBox("tfhd",c=>{v.assert(c.flags!=null,"A TFHD box should have a valid flags value"),r=pe.parseTFHD(c.reader,c.flags).defaultSampleDuration}).fullBox("tfdt",c=>{v.assert(c.version==0||c.version==1,"TFDT version can only be 0 or 1"),i=pe.parseTFDTInaccurate(c.reader,c.version).baseMediaDecodeTime/t}).fullBox("trun",c=>{v.assert(c.version!=null,"A TRUN box should have a valid version value"),v.assert(c.flags!=null,"A TRUN box should have a valid flags value"),s=pe.parseTRUN(c.reader,c.version,c.flags).sampleData,c.parser.stop()}).parse(e);let n=0;for(let c of s)n+=(o=c.sampleDuration)!=null?o:r;let a=n/t;return{startTime:i,duration:a}}static filterDuplicateCodecs_(e){let t=new Set,i=[];for(let r of e){let s=N.getCodecBase(r);t.has(s)?p.debug("Ignoring duplicate codec"):(i.push(r),t.add(s))}return i}static chooseBetterCodecs_(e){if(e.length<=1)return e;let t=e.find(r=>r.startsWith("dvav.")||r.startsWith("dva1.")||r.startsWith("dvh1.")||r.startsWith("dvhe.")||r.startsWith("dav1.")||r.startsWith("dvc1.")||r.startsWith("dvi1."));if(!t)return e;let i=`video/mp4; codecs="${t}"`;return Ke.isTypeSupported(i)?[t]:e.filter(r=>r!=t)}static getDefaultKID(e){let t=null;return new F().boxes([...F.SAMPLE_TABLE_PATH,"sinf","schi"],F.children).fullBox("stsd",F.sampleDescription).box("encv",F.visualSampleEntry).box("enca",F.audioSampleEntry).fullBox("tenc",i=>{v.assert(i.version!=null,"TENC is a full box and should have a valid version."),t=pe.parseTENC(i.reader,i.version).defaultKID}).parse(e,!0),t}static async aesDecrypt(e,t,i){let r=t;if(r.cryptoKey||(v.assert(r.fetchKey,"If AES cryptoKey was not preloaded, fetchKey function should be provided"),await r.fetchKey(),v.assert(r.cryptoKey,"AES cryptoKey should now be set")),t.blockCipherMode=="GCM"&&t.bitsKey==256){let a=D.toUint8(e);if(a.byteLength<32)throw new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.HLS_INVALID_GCM_SEGMENT);let o=a.slice(0,16),c=a.slice(16),d={name:"AES-GCM",iv:o,tagLength:128};return window.crypto.subtle.decrypt(d,r.cryptoKey,c)}let s=r.iv;if(!s){s=D.toUint8(new ArrayBuffer(16));let a=r.firstMediaSequenceNumber+i;for(let o=s.byteLength-1;o>=0;o--)s[o]=a&255,a>>=8}let n;return t.blockCipherMode=="CBC"?n={name:"AES-CBC",iv:s}:n={name:"AES-CTR",counter:s,length:64},window.crypto.subtle.decrypt(n,r.cryptoKey,e)}};/*! @license
357
+ * Shaka Player
358
+ * Copyright 2016 Google LLC
359
+ * SPDX-License-Identifier: Apache-2.0
360
+ */var ct=class y{static async getMimeType(e,t,i){let r=y.getMimeTypeFromUri(e);if(r)return r;let s=K.RequestType.MANIFEST,n=K.makeRequest([e],i);try{n.method="HEAD",r=(await t.request(s,n).promise).headers["content-type"]}catch(a){a&&(a.code==h.Code.HTTP_ERROR||a.code==h.Code.BAD_HTTP_STATUS)&&(n.method="GET",r=(await t.request(s,n).promise).headers["content-type"])}return r?r.toLowerCase().split(";").shift():""}static getMimeTypeFromUri(e){let t=y.getExtension(e),i=y.EXTENSIONS_TO_MIME_TYPES_.get(t);return i!=null?i:""}static getExtension(e){let t=e.length;for(let i=0;i<e.length;i++){let r=e.charCodeAt(i);if(r===63||r===35){t=i;break}}for(let i=t-1;i>=0;i--){let r=e.charCodeAt(i);if(r===46)return i+1<t?e.slice(i+1,t).toLowerCase():"";if(r===47)return""}return""}static createSegmentRequest(e,t,i,r,s){let n=K.makeRequest(e,r,s);return t==0&&i==null||(i?n.headers.Range="bytes="+t+"-"+i:n.headers.Range="bytes="+t+"-"),n}};ct.EXTENSIONS_TO_MIME_TYPES_=new Map().set("mp4","video/mp4").set("m4v","video/mp4").set("m4a","audio/mp4").set("cmfv","video/mp4").set("cmfa","audio/mp4").set("webm","video/webm").set("weba","audio/webm").set("mkv","video/webm").set("ts","video/mp2t").set("ogv","video/ogg").set("ogg","audio/ogg").set("opus","audio/opus").set("mpg","video/mpeg").set("mpeg","video/mpeg").set("mov","video/quicktime").set("m3u8","application/x-mpegurl").set("mpd","application/dash+xml").set("mp3","audio/mpeg").set("aac","audio/aac").set("flac","audio/flac").set("wav","audio/wav").set("srt","text/srt").set("vtt","text/vtt").set("webvtt","text/vtt").set("ttml","application/ttml+xml").set("jpeg","image/jpeg").set("jpg","image/jpeg").set("png","image/png").set("svg","image/svg+xml").set("webp","image/webp").set("avif","image/avif").set("html","text/html").set("htm","text/html");/*! @license
361
+ * Shaka Player
362
+ * Copyright 2016 Google LLC
363
+ * SPDX-License-Identifier: Apache-2.0
364
+ */var Be=class Be{constructor(e,t){l(this,"playerInterface_");l(this,"manifest_");l(this,"config_");l(this,"deferredCloseSegmentIndex_");l(this,"bufferingScale_");l(this,"currentVariant_");l(this,"currentTextStream_");l(this,"textStreamSequenceId_");l(this,"mediaStates_");l(this,"startupComplete_");l(this,"failureCallbackBackoff_");l(this,"fatalError_");l(this,"destroyer_");l(this,"lastMediaSourceReset_");l(this,"audioPrefetchMap_");l(this,"spatialVideoInfo_");l(this,"playRangeStart_");l(this,"playRangeEnd_");l(this,"lastTextMediaStateBeforeUnload_");l(this,"requestedDependencySegments_");l(this,"liveSeekableRangeEventManager_");l(this,"updateLiveSeekableRangeTimer_");l(this,"boundaryTime_");l(this,"crossBoundarySeek_");l(this,"crossBoundaryTimer_");l(this,"crossBoundaryEventManager_");this.playerInterface_=t,this.manifest_=e,this.config_=null,this.deferredCloseSegmentIndex_=new Map,this.bufferingScale_=1,this.currentVariant_=null,this.currentTextStream_=null,this.textStreamSequenceId_=0,this.mediaStates_=new Map,this.startupComplete_=!1,this.failureCallbackBackoff_=null,this.fatalError_=!1,this.destroyer_=new ci(()=>this.doDestroy_()),this.lastMediaSourceReset_=Date.now()/1e3,this.audioPrefetchMap_=new Map,this.spatialVideoInfo_={projection:null,hfov:null},this.playRangeStart_=0,this.playRangeEnd_=1/0,this.lastTextMediaStateBeforeUnload_=null,this.requestedDependencySegments_=[],this.liveSeekableRangeEventManager_=new ue,this.updateLiveSeekableRangeTimer_=new ae(()=>{if(!this.manifest_||!this.playerInterface_){this.updateLiveSeekableRangeTimer_&&this.updateLiveSeekableRangeTimer_.stop();return}if(!this.manifest_.presentationTimeline.isDynamic()){this.playerInterface_.mediaSourceEngine.clearLiveSeekableRange(),this.updateLiveSeekableRangeTimer_&&this.updateLiveSeekableRangeTimer_.stop();return}let i=this.manifest_.presentationTimeline.getSeekRangeStart(),r=this.manifest_.presentationTimeline.getSeekRangeEnd();r-i>1?this.playerInterface_.mediaSourceEngine.setLiveSeekableRange(i,r):this.playerInterface_.mediaSourceEngine.clearLiveSeekableRange()}),this.boundaryTime_=null,this.crossBoundarySeek_=!1,this.crossBoundaryTimer_=new ae(()=>{let i=this.playerInterface_.video;i.ended||this.boundaryTime_&&(p.info("Crossing boundary at",this.boundaryTime_),this.crossBoundarySeek_=!0,i.currentTime=this.boundaryTime_,this.boundaryTime_=null)}),this.crossBoundaryEventManager_=new ue}destroy(){return this.destroyer_.destroy()}async doDestroy_(){var t,i,r,s;(t=this.updateLiveSeekableRangeTimer_)==null||t.stop(),this.updateLiveSeekableRangeTimer_=null,(i=this.liveSeekableRangeEventManager_)==null||i.release(),this.liveSeekableRangeEventManager_=null,(r=this.crossBoundaryTimer_)==null||r.stop(),this.crossBoundaryTimer_=null,(s=this.crossBoundaryEventManager_)==null||s.release(),this.crossBoundaryEventManager_=null;let e=[];for(let n of this.mediaStates_.values())this.cancelUpdate_(n),e.push(this.abortOperations_(n)),n.segmentPrefetch&&(n.segmentPrefetch.clearAll(),n.segmentPrefetch=null);for(let n of this.audioPrefetchMap_.values())n.clearAll();await Promise.all(e),this.mediaStates_.clear(),this.audioPrefetchMap_.clear(),this.playerInterface_=null,this.manifest_=null,this.config_=null,this.boundaryTime_=null}configure(e){this.config_=e;let t={maxAttempts:Math.max(e.retryParameters.maxAttempts,2),baseDelay:e.retryParameters.baseDelay,backoffFactor:e.retryParameters.backoffFactor,fuzzFactor:e.retryParameters.fuzzFactor,timeout:0,stallTimeout:0,connectionTimeout:0},i=!0;this.failureCallbackBackoff_=new xr(t,i);let r=R.ContentType;if(e.disableAudioPrefetch){let s=this.mediaStates_.get(r.AUDIO);s&&s.segmentPrefetch&&(s.segmentPrefetch.clearAll(),s.segmentPrefetch=null);for(let n of this.audioPrefetchMap_.keys())this.audioPrefetchMap_.get(n).clearAll(),this.audioPrefetchMap_.delete(n)}if(e.disableTextPrefetch){let s=this.mediaStates_.get(r.TEXT);s&&s.segmentPrefetch&&(s.segmentPrefetch.clearAll(),s.segmentPrefetch=null)}if(e.disableVideoPrefetch){let s=this.mediaStates_.get(r.VIDEO);s&&s.segmentPrefetch&&(s.segmentPrefetch.clearAll(),s.segmentPrefetch=null)}for(let s of this.mediaStates_.keys()){let n=this.mediaStates_.get(s);n.segmentPrefetch?(n.segmentPrefetch.resetLimit(e.segmentPrefetchLimit),e.segmentPrefetchLimit>0||(n.segmentPrefetch.clearAll(),n.segmentPrefetch=null)):e.segmentPrefetchLimit>0&&(n.segmentPrefetch=this.createSegmentPrefetch_(n.stream))}e.disableAudioPrefetch||this.updatePrefetchMapForAudio_()}applyPlayRange(e,t){this.manifest_.presentationTimeline.isDynamic()||(this.playRangeStart_=e,this.playRangeEnd_=t)}async start(e){v.assert(this.config_,"StreamingEngine configure() must be called before init()!"),await this.initStreams_(e||new Map),this.destroyer_.ensureNotDestroyed(),p.debug("init: completed initial Stream setup"),this.startupComplete_=!0}getCurrentVariant(){return this.currentVariant_}getCurrentTextStream(){return this.currentTextStream_}async loadNewTextStream_(e){let t=R.ContentType;v.assert(!this.mediaStates_.has(t.TEXT),"Should not call loadNewTextStream_ while streaming text!"),this.textStreamSequenceId_++;let i=this.textStreamSequenceId_;try{await this.playerInterface_.mediaSourceEngine.clear(t.TEXT)}catch(a){this.playerInterface_&&this.playerInterface_.onError(a)}let r=N.getFullType(e.mimeType,e.codecs);if(this.playerInterface_.mediaSourceEngine.reinitText(r,e.external),this.playerInterface_.mediaSourceEngine.getTextDisplayer().isTextVisible()&&this.textStreamSequenceId_==i){let a=this.createMediaState_(e);this.mediaStates_.set(t.TEXT,a),this.scheduleUpdate_(a,0)}}unloadTextStream(){let e=R.ContentType,t=this.mediaStates_.get(e.TEXT);t&&(this.cancelUpdate_(t),this.abortOperations_(t).catch(()=>{}),this.lastTextMediaStateBeforeUnload_=this.mediaStates_.get(e.TEXT),this.mediaStates_.delete(e.TEXT),t.stream&&t.stream.closeSegmentIndex&&t.stream.closeSegmentIndex()),this.currentTextStream_=null}setTrickPlay(e){let t=R.ContentType;this.updateSegmentIteratorReverse_();let i=this.mediaStates_.get(t.VIDEO);if(!i)return;let r=i.stream;if(r)if(p.debug("setTrickPlay",e),e){let s=r.trickModeVideo;if(!s||i.restoreStreamAfterTrickPlay)return;p.debug("Engaging trick mode stream",s),this.switchInternal_(s,!1,0,!1),i.restoreStreamAfterTrickPlay=r}else{let s=i.restoreStreamAfterTrickPlay;if(!s)return;p.debug("Restoring non-trick-mode stream",s),i.restoreStreamAfterTrickPlay=null,this.switchInternal_(s,!0,0,!1)}}switchVariant(e,t=!1,i=0,r=!1,s=!1){this.currentVariant_=e,this.startupComplete_&&(e.video&&this.switchInternal_(e.video,t,i,r,s),e.audio&&this.switchInternal_(e.audio,t,i,r,s))}async switchTextStream(e){if(this.lastTextMediaStateBeforeUnload_=null,this.currentTextStream_=e,!this.startupComplete_)return;let t=R.ContentType;v.assert(e&&e.type==t.TEXT,"Wrong stream type passed to switchTextStream!"),e.segmentIndex||await e.createSegmentIndex(),this.switchInternal_(e,!0,0,!1)}reloadTextStream(){let e=R.ContentType,t=this.mediaStates_.get(e.TEXT);t&&this.switchInternal_(t.stream,!0,0,!0)}handleDeferredCloseSegmentIndexes_(e){for(let[t,i]of this.deferredCloseSegmentIndex_.entries()){let r=t,s=i;r.includes(e.type)&&(s(),this.deferredCloseSegmentIndex_.delete(r))}}switchInternal_(e,t,i,r,s){let n=R.ContentType,a=e.type,o=this.mediaStates_.get(a);if(!o&&e.type==n.TEXT){this.loadNewTextStream_(e);return}if(v.assert(o,"switch: expected mediaState to exist"),!o)return;if(o.restoreStreamAfterTrickPlay&&(p.debug("switch during trick play mode",e),e.trickModeVideo?(o.restoreStreamAfterTrickPlay=e,e=e.trickModeVideo,p.debug("switch found trick play stream",e)):(o.restoreStreamAfterTrickPlay=null,p.debug("switch found no special trick play stream"))),o.stream==e&&!r){let u=Be.logPrefix_(o);p.debug("switch: Stream "+u+" already active");return}if(this.audioPrefetchMap_.has(e)?o.segmentPrefetch=this.audioPrefetchMap_.get(e):o.segmentPrefetch&&o.segmentPrefetch.switchStream(e),e.type==n.TEXT&&o.stream!=e){let u=N.getFullType(e.mimeType,e.codecs);this.playerInterface_.mediaSourceEngine.reinitText(u,e.external)}if(!this.audioPrefetchMap_.has(o.stream)&&o.stream.closeSegmentIndex)if(o.performingUpdate){let u=Be.logPrefix_(o);this.deferredCloseSegmentIndex_.getOrInsert(u,o.stream.closeSegmentIndex)}else o.stream.closeSegmentIndex();let c=o.stream.isAudioMuxedInVideo!=e.isAudioMuxedInVideo;o.stream=e,o.segmentIterator=null,o.adaptation=!!s,e.dependencyStream?o.dependencyMediaState=this.createMediaState_(e.dependencyStream):o.dependencyMediaState=null,this.setupCrossBoundaryListeners_();let d=Be.logPrefix_(o);if(p.debug("switch: switching to Stream "+d),c&&(o.lastInitSegmentReference=null,o.lastAppendWindowStart=null,o.lastAppendWindowEnd=null,e.isAudioMuxedInVideo)){let u=null;o.type===n.VIDEO?u=this.mediaStates_.get(n.AUDIO):o.type===n.AUDIO&&(u=this.mediaStates_.get(n.VIDEO)),u&&(this.abortOperations_(u).catch(()=>{}),u.lastInitSegmentReference=null,u.lastAppendWindowStart=null,u.lastAppendWindowEnd=null,this.forceClearBuffer_(u),this.makeAbortDecision_(u).catch(m=>{this.playerInterface_&&(v.assert(m instanceof h,"Wrong error type!"),this.playerInterface_.onError(m))}))}t?o.clearingBuffer?o.waitingToFlushBuffer=!0:o.performingUpdate?(o.waitingToClearBuffer=!0,o.clearBufferSafeMargin=i,o.waitingToFlushBuffer=!0):(this.cancelUpdate_(o),this.clearBuffer_(o,!0,i).catch(u=>{this.playerInterface_&&(v.assert(u instanceof h,"Wrong error type!"),this.playerInterface_.onError(u))})):!o.performingUpdate&&!o.updateTimer&&this.scheduleUpdate_(o,0),this.makeAbortDecision_(o).catch(u=>{this.playerInterface_&&(v.assert(u instanceof h,"Wrong error type!"),this.playerInterface_.onError(u))})}async makeAbortDecision_(e){if(!e.operation)return;let t=e.stream,i=e.operation;t.segmentIndex||await t.createSegmentIndex();let r=t.dependencyStream;r&&!r.segmentIndex&&await r.createSegmentIndex(),e.operation==i&&e.stream==t&&(v.assert(e.stream.segmentIndex,"Segment index should exist by now!"),this.shouldAbortCurrentRequest_(e)&&(p.info("Aborting current segment request."),e.operation.abort()))}shouldAbortCurrentRequest_(e){v.assert(e.operation,"Abort logic requires an ongoing operation!"),v.assert(e.stream&&e.stream.segmentIndex,"Abort logic requires a segment index");let t=this.playerInterface_.getPresentationTime(),i=this.playerInterface_.mediaSourceEngine.bufferEnd(e.type),r=this.getTimeNeeded_(e,t),s=e.stream.segmentIndex.find(r),n=s==null?null:e.stream.segmentIndex.get(s),a=n?n.getSize():null;if(n&&!a){let _=n.getEndTime()-n.getStartTime(),T=e.stream.bandwidth||this.currentVariant_.bandwidth;a=_*T/8}if(!a)return!0;let o=n.initSegmentReference;o&&(a+=o.getSize()||0);let c=this.playerInterface_.getBandwidthEstimate(),d=a*8/c,u=(i||0)-t,m=this.config_.rebufferingGoal,f=u-m;return d<f||e.operation.getBytesRemaining()>a}seeked(){if(!this.playerInterface_)return;let e=this.playerInterface_.getPresentationTime(),t=R.ContentType,i=s=>this.playerInterface_.mediaSourceEngine.isBuffered(s,e),r=!1;for(let s of this.mediaStates_.keys()){let n=this.mediaStates_.get(s),a=Be.logPrefix_(n);if(!this.crossBoundarySeek_&&!i(s)){if(this.lastMediaSourceReset_=0,n.segmentPrefetch&&n.segmentPrefetch.resetPosition(),n.type===t.AUDIO)for(let d of this.audioPrefetchMap_.values())d.resetPosition();n.segmentIterator=null,(this.playerInterface_.mediaSourceEngine.bufferEnd(s)!=null||n.performingUpdate)&&(this.forceClearBuffer_(n),r=!0),n.operation&&(n.operation.abort(),p.debug(a,"Aborting operation due to seek"),n.operation=null),s===t.TEXT&&this.playerInterface_.mediaSourceEngine.resetCaptionParser(),n.seeked=!0}this.crossBoundarySeek_&&!n.clearingBuffer&&!n.performingUpdate&&!n.updateTimer&&this.scheduleUpdate_(n,0)}this.shouldUseCrossBoundaryLogic_()&&this.forwardTimeForCrossBoundary_(),r||p.debug("(all): seeked: buffered seek: presentationTime="+e)}forceClearBuffer_(e){let t=Be.logPrefix_(e);if(e.clearingBuffer){p.debug(t,"clear: already clearing the buffer");return}if(e.waitingToClearBuffer){p.debug(t,"clear: already waiting");return}if(e.performingUpdate){p.debug(t,"clear: currently updating"),e.waitingToClearBuffer=!0,e.clearBufferSafeMargin=0;return}let i=e.type;if(this.playerInterface_.mediaSourceEngine.bufferStart(i)==null){p.debug(t,"clear: nothing buffered"),e.updateTimer==null&&this.scheduleUpdate_(e,0);return}p.debug(t,"clear: handling right now"),this.cancelUpdate_(e),this.clearBuffer_(e,!1,0).catch(r=>{this.playerInterface_&&(v.assert(r instanceof h,"Wrong error type!"),this.playerInterface_.onError(r))})}async initStreams_(e){if(v.assert(this.config_,"StreamingEngine configure() must be called before init()!"),!this.currentVariant_)throw p.error("init: no Streams chosen"),new h(h.Severity.CRITICAL,h.Category.STREAMING,h.Code.STREAMING_ENGINE_STARTUP_INVALID_STATE);let t=this.getStreamsByType_(!0);await this.playerInterface_.mediaSourceEngine.init(t,this.manifest_.sequenceMode,this.manifest_.type,this.manifest_.ignoreManifestTimestampsInSegmentsMode),this.destroyer_.ensureNotDestroyed(),this.updateDuration().catch(()=>{});for(let r of t.keys()){let s=t.get(r);if(!this.mediaStates_.has(r)){let n=this.createMediaState_(s),a=e.get(s.id);a&&(a.replaceFetchDispatcher((o,c,d)=>this.dispatchFetch_(o,c,d)),n.segmentPrefetch=a),this.mediaStates_.set(r,n),this.scheduleUpdate_(n,0)}}this.setupCrossBoundaryListeners_()}createMediaState_(e){let t={stream:e,type:e.type,segmentIterator:null,segmentPrefetch:this.createSegmentPrefetch_(e),lastSegmentReference:null,lastInitSegmentReference:null,lastTimestampOffset:null,lastAppendWindowStart:null,lastAppendWindowEnd:null,lastCodecs:null,lastMimeType:null,restoreStreamAfterTrickPlay:null,endOfStream:!1,performingUpdate:!1,updateTimer:null,waitingToClearBuffer:!1,clearBufferSafeMargin:0,waitingToFlushBuffer:!1,clearingBuffer:!1,seeked:!0,adaptation:!1,recovering:!1,hasError:!1,operation:null,dependencyMediaState:null};return e.dependencyStream&&(t.dependencyMediaState=this.createMediaState_(e.dependencyStream)),t}createSegmentPrefetch_(e){let t=R.ContentType;if(this.manifest_.type==me.MSF||e.type===t.VIDEO&&this.config_.disableVideoPrefetch||e.type===t.AUDIO&&this.config_.disableAudioPrefetch)return null;let i=N.CEA608_CLOSED_CAPTION_MIMETYPE,r=N.CEA708_CLOSED_CAPTION_MIMETYPE;if(e.type===t.TEXT&&(e.mimeType==i||e.mimeType==r)||e.type===t.TEXT&&this.config_.disableTextPrefetch)return null;if(this.audioPrefetchMap_.has(e))return this.audioPrefetchMap_.get(e);let s=e.type,n=this.mediaStates_.get(s),a=n&&n.segmentPrefetch;if(a&&e===a.getStream())return a;if(this.config_.segmentPrefetchLimit>0){let o=this.playerInterface_.getPlaybackRate()<0;return new Xr(this.config_.segmentPrefetchLimit,e,(c,d,u)=>this.dispatchFetch_(c,d,u),o,this.playerInterface_.shouldPrefetchNextSegment,this.playerInterface_.getPlaybackRate)}return null}updatePrefetchMapForAudio_(){let e=this.config_.segmentPrefetchLimit,t=this.config_.prefetchAudioLanguages;for(let i of this.manifest_.variants){if(!i.audio)continue;if(this.audioPrefetchMap_.has(i.audio)){let s=this.audioPrefetchMap_.get(i.audio);if(s.resetLimit(e),!(e>0)||!t.some(n=>ve.areLanguageCompatible(i.audio.language,n))){let n=i.audio.type,a=this.mediaStates_.get(n),o=a&&a.segmentPrefetch;s!==o&&s.clearAll(),this.audioPrefetchMap_.delete(i.audio)}continue}if(e<=0||!t.some(s=>ve.areLanguageCompatible(i.audio.language,s)))continue;let r=this.createSegmentPrefetch_(i.audio);r&&(i.audio.segmentIndex||i.audio.createSegmentIndex(),this.audioPrefetchMap_.set(i.audio,r))}}async updateDuration(){let e=Ke.isInfiniteLiveStreamDurationSupported(),t=this.manifest_.presentationTimeline.getDuration();this.liveSeekableRangeEventManager_.removeAll(),t<1/0?(e&&(this.updateLiveSeekableRangeTimer_&&this.updateLiveSeekableRangeTimer_.stop(),this.playerInterface_.mediaSourceEngine.clearLiveSeekableRange()),await this.playerInterface_.mediaSourceEngine.setDuration(t)):e?(await this.playerInterface_.mediaSourceEngine.setDuration(1/0),this.updateLiveSeekableRangeTimer_&&(this.updateLiveSeekableRangeTimer_.tickNow(),this.liveSeekableRangeEventManager_.listenOnce(this.playerInterface_.video,"timeupdate",()=>{this.updateLiveSeekableRangeTimer_.tickNow().tickEvery(.5)}))):this.playerInterface_.mediaSourceEngine.setDuration(Math.pow(2,32))}async onUpdate_(e){this.destroyer_.ensureNotDestroyed();let t=R.ContentType,i=Be.logPrefix_(e);if(v.assert(!e.performingUpdate&&e.updateTimer!=null,i+" unexpected call to onUpdate_()"),e.performingUpdate||e.updateTimer==null||(v.assert(!e.clearingBuffer,i+" onUpdate_() should not be called when clearing the buffer"),e.clearingBuffer))return;if(e.updateTimer=null,e.waitingToClearBuffer){p.debug(i,"skipping update and clearing the buffer"),await this.clearBuffer_(e,e.waitingToFlushBuffer,e.clearBufferSafeMargin);return}if(this.handleDeferredCloseSegmentIndexes_(e),!e.stream.segmentIndex){let a=e.stream,o=e.stream.codecs,c=e.stream.mimeType;try{await e.stream.createSegmentIndex()}catch(d){await this.handleStreamingError_(e,d);return}if(e.type===t.TEXT&&(o!=e.stream.codecs||c!=e.stream.mimeType)){let d=N.getFullType(e.stream.mimeType,e.stream.codecs);this.playerInterface_.mediaSourceEngine.reinitText(d,e.stream.external)}if(a!=e.stream){a.closeSegmentIndex&&(v.assert(!e.stream.segmentIndex,"mediaState.stream should not have segmentIndex yet."),a.closeSegmentIndex()),!e.performingUpdate&&!e.updateTimer&&this.scheduleUpdate_(e,0);return}}if(e.dependencyMediaState&&!e.dependencyMediaState.stream.segmentIndex)try{await e.dependencyMediaState.stream.createSegmentIndex()}catch(a){p.warning("Could not create segment index for dependency",a)}try{let a=this.update_(e);a!=null&&(this.scheduleUpdate_(e,a),e.hasError=!1)}catch(a){await this.handleStreamingError_(e,a);return}if(e.type===t.TEXT)return;let r=[];e.stream&&!e.stream.isAudioMuxedInVideo&&r.push(e);let s=e.type===t.AUDIO?t.VIDEO:t.AUDIO,n=this.mediaStates_.get(s);if(n&&n.stream&&!n.stream.isAudioMuxedInVideo&&r.push(n),this.startupComplete_&&r.every(a=>a.endOfStream)){p.v1(i,"calling endOfStream()..."),await this.playerInterface_.mediaSourceEngine.endOfStream(),this.destroyer_.ensureNotDestroyed();let a=this.playerInterface_.mediaSourceEngine.getDuration();a!=0&&a<this.manifest_.presentationTimeline.getDuration()&&this.manifest_.presentationTimeline.setDuration(a)}}update_(e){v.assert(this.manifest_,"manifest_ should not be null"),v.assert(this.config_,"config_ should not be null");let t=R.ContentType;if(Be.isEmbeddedText_(e))return this.playerInterface_.mediaSourceEngine.setSelectedClosedCaptionId(e.stream.originalId||""),null;if(e.type==t.TEXT&&this.playerInterface_.mediaSourceEngine.clearSelectedClosedCaptionId(),e.stream.isAudioMuxedInVideo&&e.type==t.AUDIO)return null;if(e.type!=t.TEXT&&this.playerInterface_.mediaSourceEngine.closed())return this.resetMediaSource(!0),null;let i=this.config_.updateIntervalSeconds/Math.max(1,Math.abs(this.playerInterface_.getPlaybackRate()));if(!this.playerInterface_.mediaSourceEngine.isStreamingAllowed()&&e.type!=t.TEXT)return i/2;let r=Be.logPrefix_(e),s=this.playerInterface_.getPresentationTime(),n=this.playerInterface_.getPlaybackRate()<0;if(e.type===t.AUDIO)for(let k of this.audioPrefetchMap_.keys()){let L=this.audioPrefetchMap_.get(k);L.evict(s,!0),L.prefetchSegmentsByTime(s)}let a=this.getTimeNeeded_(e,s);p.v2(r,"timeNeeded="+a);let o=n?this.playerInterface_.mediaSourceEngine.bufferedBehindOf(e.type,s):this.playerInterface_.mediaSourceEngine.bufferedAheadOf(e.type,s);p.v2(r,"update_:","presentationTime="+s,"bufferedAhead="+o);let c=Math.max(this.config_.rebufferingGoal,this.config_.bufferingGoal),d=Math.max(1,c*this.bufferingScale_),u=this.manifest_.presentationTimeline.isDynamic()?1/0:this.manifest_.presentationTimeline.getDuration()-a,m=1e-6,f=this.playerInterface_.mediaSourceEngine.bufferEnd(e.type);if(!n&&u<m&&f){if(p.debug(r,"buffered to end of presentation"),e.endOfStream=!0,e.type==t.VIDEO){let k=this.mediaStates_.get(t.TEXT);k&&Be.isEmbeddedText_(k)&&(k.endOfStream=!0);let L=this.mediaStates_.get(t.AUDIO);L&&L.stream.isAudioMuxedInVideo&&(L.endOfStream=!0)}return null}if(e.endOfStream=!1,n){let k=this.manifest_.presentationTimeline.getSeekRangeStart();if(f!=null&&a<=k+m)return p.debug(r,"buffered to start of presentation"),null}if(o>0&&this.config_.stopFetchingOnPause&&this.playerInterface_.video.paused)return p.v2(r,"video paused"),i/2;if(o>=d)return p.v2(r,"buffering goal met"),i/2;let g=!e.segmentIterator,_=this.getSegmentReferenceNeeded_(e,s,f);if(!_){if(!this.manifest_.presentationTimeline.isDynamic()&&u<m){if(p.info(r,"Close to end with no buffer and no segment reference.","Marking as end of stream."),e.endOfStream=!0,e.type==t.VIDEO){let V=this.mediaStates_.get(t.TEXT);V&&Be.isEmbeddedText_(V)&&(V.endOfStream=!0)}return null}let k=1/0,L=e.lastSegmentReference;return L&&(k=L.endTime-L.startTime),Math.min(k/2,i)}let T=e.lastInitSegmentReference,S=_.initSegmentReference;T&&S&&Tt.equal(S,T)&&(T.boundaryEnd=S.boundaryEnd);let b=!1;g&&e.adaptation&&(b=!0,e.adaptation=!1);let E=1/0,C=-1/0;for(let k of this.mediaStates_.values()){if(Be.isEmbeddedText_(k)||k.stream.isAudioMuxedInVideo||k.segmentIterator&&!k.segmentIterator.current())continue;let L=this.getTimeNeeded_(k,s);E=Math.min(E,L),C=Math.max(C,L)}let w=this.manifest_.presentationTimeline.getMaxSegmentDuration()*Be.MAX_RUN_AHEAD_SEGMENTS_;return(n?C-a:a-E)>=w?(p.v2(r,"waiting for other streams to buffer"),i):(e.segmentPrefetch&&e.segmentIterator&&!this.audioPrefetchMap_.has(e.stream)&&(e.segmentPrefetch.evict(_.startTime+.001),e.segmentPrefetch.prefetchSegmentsByTime(_.startTime).catch(()=>{})),this.shouldUseCrossBoundaryLogic_()&&this.discardReferenceByBoundary_(e,_)||(this.fetchAndAppend_(e,s,_,b).catch(()=>{}),e.dependencyMediaState&&this.fetchAndAppendDependency_(e.dependencyMediaState,s,d)),null)}getTimeNeeded_(e,t){return e.lastSegmentReference?this.playerInterface_.getPlaybackRate()<0?e.lastSegmentReference.startTime:e.lastSegmentReference.endTime:t}getSegmentReferenceNeeded_(e,t,i){var s,n;let r=Be.logPrefix_(e);if(v.assert(e.stream.segmentIndex,"segment index should have been generated already"),e.segmentIterator){let a=e.segmentIterator.current();if(a&&e.lastSegmentReference){let o=e.lastSegmentReference.startTime,c=e.lastSegmentReference.endTime;jt.isFloatEqual(o,a.startTime,.002)&&jt.isFloatEqual(c,a.endTime,.002)&&(a=e.segmentIterator.next().value)}return a}else if(e.lastSegmentReference||i){let a=this.playerInterface_.getPlaybackRate()<0,o;if(a){let d=this.playerInterface_.mediaSourceEngine.bufferStart(e.type),u=e.lastSegmentReference?e.lastSegmentReference.startTime:null,m=d;u!=null&&(m==null||u<m)&&(m=u),o=m!=null?m-.001:i}else o=e.lastSegmentReference?e.lastSegmentReference.endTime:i;v.assert(o!=null,"Should have a time to search"),p.v1(r,"looking up segment from new stream endTime:",o),e.stream.segmentIndex&&(e.segmentIterator=e.stream.segmentIndex.getIteratorForTime(o,!1,a));let c=e.segmentIterator&&e.segmentIterator.next().value;return c==null&&p.warning(r,"cannot find segment","endTime:",o),c}else{let a=this.manifest_.sequenceMode||this.shouldUseCrossBoundaryLogic_()||this.manifest_.type===me.MSF?0:this.config_.inaccurateManifestTolerance,o=Math.max(t-a,0),c=this.playerInterface_.mediaSourceEngine.getDuration(),d=Be.LOOKUP_TIME_DURATION_THRESHOLD_;Math.abs(o-c)<d&&(a=d,o=Math.max(t-a,0)),p.v1(r,"looking up segment","lookupTime:",o,"presentationTime:",t);let u=this.playerInterface_.getPlaybackRate()<0,m=null;for(a&&(e.stream.segmentIndex&&(e.segmentIterator=e.stream.segmentIndex.getIteratorForTime(o,!1,u)),m=e.segmentIterator&&e.segmentIterator.next().value),m||(e.stream.segmentIndex&&(e.segmentIterator=e.stream.segmentIndex.getIteratorForTime(t,!1,u)),m=e.segmentIterator&&e.segmentIterator.next().value);(m==null?void 0:m.getStatus())===Se.Status.MISSING;)m=(n=(s=e.segmentIterator)==null?void 0:s.next().value)!=null?n:null;return m==null&&p.warning(r,"cannot find segment","lookupTime:",o,"presentationTime:",t),m}}async fetchAndAppend_(e,t,i,r){let s=R.ContentType,n=Be.logPrefix_(e);p.v1(n,"fetchAndAppend_:","presentationTime="+t,"reference.startTime="+i.startTime,"reference.endTime="+i.endTime);let a=e.stream,o=e.segmentIterator;e.performingUpdate=!0;try{if(i.getStatus()==Se.Status.MISSING)throw new h(h.Severity.RECOVERABLE,h.Category.NETWORK,h.Code.SEGMENT_MISSING);if(await this.initSourceBuffer_(e,i,r),this.destroyer_.ensureNotDestroyed(),this.fatalError_)return;p.v2(n,"fetching segment");let c=a.mimeType=="video/mp4"||a.mimeType=="audio/mp4",d=window.ReadableStream,u=this.config_.lowLatencyMode&&this.manifest_.isLowLatency,m={mediaTimestamp:null};if(u&&d&&c&&(this.manifest_.type!=me.HLS||i.hasByterangeOptimization())){let T=new Uint8Array(0),S=!1,b=!1,E,C=async w=>{if(!S&&(b=!0,this.destroyer_.ensureNotDestroyed(),!this.fatalError_))try{T=ne.concat(T,w);let M=!1,x=0;if(new F().box("mdat",k=>{x=k.size+k.start,M=!0}).parse(T,!1,!0),M){let k=T.subarray(0,x);T=T.subarray(x);let L=await this.append_(e,t,a,i,k,!0,r);m.mediaTimestamp==null&&(m=L),e.segmentPrefetch&&e.segmentIterator&&e.segmentPrefetch.prefetchSegmentsByTime(i.startTime,!0)}}catch(M){E=M}},A=await this.fetch_(e,i,C);if(E)throw E;if(!b){if(S=!0,this.destroyer_.ensureNotDestroyed(),this.fatalError_)return;if(e.waitingToClearBuffer){p.info(n,"waitingToClearBuffer, skip append"),e.performingUpdate=!1,this.scheduleUpdate_(e,0);return}m=await this.append_(e,t,a,i,A,!1,r)}e.segmentPrefetch&&e.segmentIterator&&e.segmentPrefetch.prefetchSegmentsByTime(i.startTime,!0)}else{u&&!d&&p.warning("Low latency streaming mode is enabled, but ReadableStream is not supported by the browser.");let S=await this.fetch_(e,i);if(this.destroyer_.ensureNotDestroyed(),this.fatalError_)return;if(this.destroyer_.ensureNotDestroyed(),e.waitingToClearBuffer){p.info(n,"waitingToClearBuffer, skip append"),e.performingUpdate=!1,this.scheduleUpdate_(e,0);return}m=await this.append_(e,t,a,i,S,!1,r)}if(this.destroyer_.ensureNotDestroyed(),this.fatalError_)return;e.lastSegmentReference=i;let f=o.next().value;p.v2(n,"advancing to next segment",f),e.performingUpdate=!1,e.recovering=!1;let _=this.playerInterface_.mediaSourceEngine.getBufferedInfo()[e.type];if(p.v1(n,"finished fetch and append",JSON.stringify(_)),!e.waitingToClearBuffer){let T=null;e.type===s.VIDEO?T=this.mediaStates_.get(s.AUDIO):e.type===s.AUDIO&&(T=this.mediaStates_.get(s.VIDEO)),T&&T.type==s.AUDIO?this.playerInterface_.onSegmentAppended(i,e.stream,T.stream.isAudioMuxedInVideo,!1,m.mediaTimestamp):this.playerInterface_.onSegmentAppended(i,e.stream,e.stream.codecs.includes(","),!1,m.mediaTimestamp)}this.cancelUpdate_(e),this.scheduleUpdate_(e,0)}catch(c){if(this.destroyer_.ensureNotDestroyed(c),this.fatalError_)return;v.assert(c instanceof h,"Should only receive a Shaka error"),e.performingUpdate=!1,c.code==h.Code.OPERATION_ABORTED?(e.performingUpdate=!1,this.cancelUpdate_(e),this.scheduleUpdate_(e,0)):e.type==s.TEXT&&this.config_.ignoreTextStreamFailures?(c.code==h.Code.BAD_HTTP_STATUS?p.warning(n,"Text stream failed to download. Proceeding without it."):p.warning(n,"Text stream failed to parse. Proceeding without it."),this.mediaStates_.delete(s.TEXT)):c.code==h.Code.QUOTA_EXCEEDED_ERROR?await this.handleQuotaExceeded_(e,c):(p.error(n,"failed fetch and append: code="+c.code),e.hasError=!0,c.category==h.Category.NETWORK&&e.segmentPrefetch&&e.segmentPrefetch.removeReference(i),c.severity=h.Severity.CRITICAL,await this.handleStreamingError_(e,c))}}async fetchAndAppendDependency_(e,t,i){let r=R.ContentType,s=e.stream,n=s.segmentIndex,a=n&&n.getIteratorForTime(t),o=a&&a.next().value;for(;o&&this.requestedDependencySegments_.includes(o.startTime);)o=a&&a.next().value;if(o){let c=o.initSegmentReference;if(c&&!Tt.equal(c,e.lastInitSegmentReference)){e.lastInitSegmentReference=c;try{let d=await this.fetch_(e,c);if(!this.playerInterface_)return;this.playerInterface_.mediaSourceEngine.appendDependency(d,0,s),this.requestedDependencySegments_=[]}catch(d){throw e.lastInitSegmentReference=null,d}}if(!e.lastSegmentReference||e.lastSegmentReference!=o){e.lastSegmentReference=o;try{let m=await this.fetch_(e,o);if(!this.playerInterface_)return;this.playerInterface_.mediaSourceEngine.appendDependency(m,0,s),this.requestedDependencySegments_.push(o.startTime)}catch(m){throw e.lastSegmentReference=null,m}if(!this.playerInterface_)return;if(!e.waitingToClearBuffer){let m=null;e.type===r.VIDEO?m=this.mediaStates_.get(r.AUDIO):e.type===r.AUDIO&&(m=this.mediaStates_.get(r.VIDEO)),m&&m.type==r.AUDIO?this.playerInterface_.onSegmentAppended(o,e.stream,m.stream.isAudioMuxedInVideo,!0,null):this.playerInterface_.onSegmentAppended(o,e.stream,e.stream.codecs.includes(","),!0,null)}let d=Math.max(0,...this.requestedDependencySegments_);this.playerInterface_.getPresentationTime()+i>d&&await this.fetchAndAppendDependency_(e,o.startTime,i)}}}retry(e){if(this.destroyer_.destroyed())return p.error("Unable to retry after StreamingEngine is destroyed!"),!1;if(this.fatalError_)return p.error("Unable to retry after StreamingEngine encountered a fatal error!"),!1;for(let t of this.mediaStates_.values()){let i=Be.logPrefix_(t);t.hasError&&!t.performingUpdate&&!t.updateTimer&&(p.info(i,"Retrying after failure..."),t.hasError=!1,this.scheduleUpdate_(t,e))}return!0}async handleQuotaExceeded_(e,t){let i=Be.logPrefix_(e),r=!1;for(let s of this.mediaStates_.values())if(s!=e&&s.recovering){r=!0;break}if(r)p.debug(i,"MediaSource threw QuotaExceededError:","waiting for another stream to recover...");else{if(this.config_.avoidEvictionOnQuotaExceededError){let o=this.getDisabledTime_(t);if(o&&p.debug(i,"Disabling stream due to quota",t),this.playerInterface_.disableStream(e.stream,o))return;this.scheduleUpdate_(e,4);return}let s=Math.round(100*this.bufferingScale_);if(s>20)this.bufferingScale_-=.2;else if(s>4)this.bufferingScale_-=.04;else{let o=this.getDisabledTime_(t);if(o&&p.debug(i,"Disabling stream due to quota",t),this.playerInterface_.disableStream(e.stream,o)){this.bufferingScale_=1;let d=this.playerInterface_.getPresentationTime();await this.evict_(e,d)}else p.error(i,"MediaSource threw QuotaExceededError too many times"),e.hasError=!0,this.fatalError_=!0,this.playerInterface_.onError(t);return}let n=Math.round(100*this.bufferingScale_);p.warning(i,"MediaSource threw QuotaExceededError:","reducing buffering goals by "+(100-n)+"%"),e.recovering=!0;let a=this.playerInterface_.getPresentationTime();await this.evict_(e,a)}this.scheduleUpdate_(e,4)}async initSourceBuffer_(e,t,i){let r=R.ContentType,s=Be.logPrefix_(e),n=e.lastSegmentReference==null,a=[],o=Math.max(0,Math.max(t.appendWindowStart,this.playRangeStart_)-Be.APPEND_WINDOW_START_FUDGE_),c=Math.min(t.appendWindowEnd,this.playRangeEnd_)+Be.APPEND_WINDOW_END_FUDGE_;if(this.config_.clampAppendWindowToDuration){let _=this.manifest_.presentationTimeline.getDuration();_<1/0&&(c=Math.min(c,_))}v.assert(t.startTime<=c,s+" segment should start before append window end");let d=t.codecs||e.stream.codecs,u=N.getCodecBase(d),m=N.getBasicType(t.mimeType||e.stream.mimeType),f=t.timestampOffset;if(f!=e.lastTimestampOffset||o!=e.lastAppendWindowStart||c!=e.lastAppendWindowEnd||u!=e.lastCodecs||m!=e.lastMimeType){if(p.v1(s,"setting timestamp offset to "+f),p.v1(s,"setting append window start to "+o),p.v1(s,"setting append window end to "+c),e.lastCodecs&&e.lastMimeType&&this.playerInterface_.mediaSourceEngine.isResetMediaSourceNecessary(e.type,m,d,this.getStreamsByType_())){let T=null;e.type===r.VIDEO?T=this.mediaStates_.get(r.AUDIO):e.type===r.AUDIO&&(T=this.mediaStates_.get(r.VIDEO)),T&&(await this.abortOperations_(T).catch(()=>{}),T.lastInitSegmentReference=null,T.lastAppendWindowStart=null,T.lastAppendWindowEnd=null,this.forceClearBuffer_(T))}await this.setProperties_(e,f,o,c,t,u,m)}if(!Tt.equal(t.initSegmentReference,e.lastInitSegmentReference)&&(e.lastInitSegmentReference=t.initSegmentReference,t.isIndependent()&&t.initSegmentReference)){p.v1(s,"fetching init segment");let _=this.fetch_(e,t.initSegmentReference),T=async()=>{try{let b=await _;this.destroyer_.ensureNotDestroyed();let E=null,C=new Map,A={projection:null,hfov:null};if(e.stream){let L=e.stream.videoLayout;if(L){let V=L.split("/");V.includes("PROJ-RECT")?A.projection="rect":V.includes("PROJ-EQUI")?A.projection="equi":V.includes("PROJ-HEQU")?A.projection="hequ":V.includes("PROJ-PRIM")?A.projection="prim":V.includes("PROJ-AIV")&&(A.projection="aiv")}}let w=new F;w.boxes(["moov","trak","mdia"],F.children).fullBox("mdhd",L=>{v.assert(L.version!=null,"MDHD is a full box and should have a valid version."),E=pe.parseMDHD(L.reader,L.version).timescale}).fullBox("hdlr",L=>{switch(v.assert(L.version!=null,"HDLR is a full box and should have a valid version."),pe.parseHDLR(L.reader).handlerType){case"soun":C.set(r.AUDIO,E);break;case"vide":C.set(r.VIDEO,E);break}E=null}),e.type===r.VIDEO&&!A.projection&&w.boxes(["minf","stbl"],F.children).fullBox("stsd",F.sampleDescription).boxes([...F.AVC_HEVC_VVC_DV,"encv"],F.visualSampleEntry).boxes(["vexu","proj"],F.children).fullBox("prji",L=>{let V=pe.parsePRJI(L.reader);A.projection=V.projection}).box("hfov",L=>{let V=pe.parseHFOV(L.reader);A.hfov=V.hfov}),w.parse(b,!0,!0),e.type===r.VIDEO&&this.updateSpatialVideoInfo_(A),C.has(e.type)?t.initSegmentReference.timescale=C.get(e.type):E!=null&&(t.initSegmentReference.timescale=E);let M=e.stream.segmentIndex,x;M instanceof Mi&&(x=M.getTimelineForTime(t.startTime)),p.v1(s,"appending init segment");let k=e.stream.closedCaptions&&e.stream.closedCaptions.size>0;await this.playerInterface_.beforeAppendSegment(e.type,b),await this.playerInterface_.mediaSourceEngine.appendBuffer(e.type,b,null,e.stream,k,e.seeked,i,!1,!1,x)}catch(b){throw e.lastInitSegmentReference=null,b}},S=t.startTime;if(n){let b=this.playerInterface_.mediaSourceEngine.bufferEnd(e.type);b!=null&&(S=b)}this.playerInterface_.onInitSegmentAppended(S,t.initSegmentReference),a.push(T())}let g=e.lastSegmentReference?e.lastSegmentReference.discontinuitySequence:-1;t.discontinuitySequence!=g&&a.push(this.playerInterface_.mediaSourceEngine.resync(e.type,t.startTime)),await Promise.all(a)}async setProperties_(e,t,i,r,s,n,a){let o=R.ContentType,c=this.getStreamsByType_();try{e.lastAppendWindowStart=i,e.lastAppendWindowEnd=r,n&&(e.lastCodecs=n),a&&(e.lastMimeType=a),e.lastTimestampOffset=t;let d=this.manifest_.sequenceMode||this.manifest_.type==me.HLS,u=null;e.type===o.VIDEO?u=this.mediaStates_.get(o.AUDIO):e.type===o.AUDIO&&(u=this.mediaStates_.get(o.VIDEO)),u&&u.stream&&u.stream.isAudioMuxedInVideo&&await this.playerInterface_.mediaSourceEngine.setStreamProperties(u.type,t,i,r,d,u.stream.mimeType,u.stream.codecs,c),await this.playerInterface_.mediaSourceEngine.setStreamProperties(e.type,t,i,r,d,s.mimeType||e.stream.mimeType,s.codecs||e.stream.codecs,c)}catch(d){throw e.lastAppendWindowStart=null,e.lastAppendWindowEnd=null,e.lastCodecs=null,e.lastMimeType=null,e.lastTimestampOffset=null,d}}async append_(e,t,i,r,s,n=!1,a=!1){let o=Be.logPrefix_(e),c=i.closedCaptions&&i.closedCaptions.size>0;if(this.config_.shouldFixTimestampOffset){let m=i.mimeType=="video/mp4"||i.mimeType=="audio/mp4",f=null;r.initSegmentReference&&(f=r.initSegmentReference.timescale),m&&f&&i.type===R.ContentType.VIDEO&&this.manifest_.type==me.DASH&&new F().boxes(F.FRAGMENT_PATH,F.children).fullBox("tfdt",async _=>{v.assert(_.version!=null,"TFDT is a full box and should have a valid version.");let S=pe.parseTFDTInaccurate(_.reader,_.version).baseMediaDecodeTime;if(!S)return;v.assert(typeof f=="number","Should be an number!");let b=-S/f;if((Number(e.lastTimestampOffset)||0)<b){let C=e.lastAppendWindowStart,A=e.lastAppendWindowEnd;v.assert(typeof C=="number","Should be an number!"),v.assert(typeof A=="number","Should be an number!"),await this.setProperties_(e,b,C,A,r)}}).parse(s,!1,n)}await this.evict_(e,t),this.destroyer_.ensureNotDestroyed();let d=e.seeked;e.seeked=!1,await this.playerInterface_.beforeAppendSegment(e.type,s);let u=await this.playerInterface_.mediaSourceEngine.appendBuffer(e.type,s,r,i,c,d,a,n);return this.destroyer_.ensureNotDestroyed(),p.v2(o,"appended media segment"),u}async evict_(e,t){this.lastTextMediaStateBeforeUnload_==e&&(this.lastTextMediaStateBeforeUnload_=null);let i=e.stream.segmentIndex,r;i instanceof Mi&&(i.evict(this.manifest_.presentationTimeline.getSegmentAvailabilityStart()),r=[],i.forEachIndex(g=>{r.push(g.continuityTimeline())}));let s=Be.logPrefix_(e);p.v2(s,"checking buffer length");let n=Math.max(this.config_.bufferBehind*this.bufferingScale_,this.manifest_.presentationTimeline.getMaxSegmentDuration()),a=this.playerInterface_.mediaSourceEngine.bufferStart(e.type);if(a==null){p.v2(s,"buffer behind okay because nothing buffered:","presentationTime="+t,"bufferBehind="+n);return}let o=t-a,c=this.config_.evictionGoal,d=this.manifest_.presentationTimeline.getSeekRangeStart(),m=this.manifest_.presentationTimeline.getSeekRangeEnd()-d,f=o-n;if(m>c&&(f=Math.max(o-n,d-c-a)),f<=c){p.v2(s,"buffer behind okay:","presentationTime="+t,"bufferedBehind="+o,"bufferBehind="+n,"evictionGoal="+c,"underflow="+Math.abs(f));return}p.v1(s,"buffer behind too large:","presentationTime="+t,"bufferedBehind="+o,"bufferBehind="+n,"evictionGoal="+c,"overflow="+f),await this.playerInterface_.mediaSourceEngine.remove(e.type,a,a+f,r),this.destroyer_.ensureNotDestroyed(),p.v1(s,"evicted "+f+" seconds"),this.lastTextMediaStateBeforeUnload_&&(await this.evict_(this.lastTextMediaStateBeforeUnload_,t),this.destroyer_.ensureNotDestroyed())}static isEmbeddedText_(e){let t=N.CEA608_CLOSED_CAPTION_MIMETYPE,i=N.CEA708_CLOSED_CAPTION_MIMETYPE;return e&&e.type==R.ContentType.TEXT&&(e.stream.mimeType==t||e.stream.mimeType==i)}async fetch_(e,t,i){let r=t.getSegmentData();if(r)return r;let s=null;e.segmentPrefetch&&(s=e.segmentPrefetch.getPrefetchedSegment(t,i)),s||(s=this.dispatchFetch_(t,e.stream,i));let n=0;e.segmentIterator&&(n=e.segmentIterator.currentPosition()),e.operation=s;let a=await s.promise;e.operation=null;let o=a.data;return t.aesKey&&(o=await vt.aesDecrypt(o,t.aesKey,n)),o}dispatchFetch_(e,t,i,r=!1){return v.assert(this.playerInterface_.netEngine,"Must have net engine"),Be.dispatchFetch(e,t,i||null,this.config_.retryParameters,this.playerInterface_.netEngine)}static dispatchFetch(e,t,i,r,s,n=!1){let a=K.RequestType.SEGMENT,o=e instanceof Se?e:void 0,c=o?K.AdvancedRequestType.MEDIA_SEGMENT:K.AdvancedRequestType.INIT_SEGMENT,d=ct.createSegmentRequest(e.getUris(),e.startByte,e.endByte,r,i);return d.contentType=t.type,p.v2("fetching: reference=",e),s.request(a,d,{type:c,stream:t,segment:o,isPreload:n})}async clearBuffer_(e,t,i){let r=Be.logPrefix_(e);if(v.assert(!e.performingUpdate&&e.updateTimer==null,r+" unexpected call to clearBuffer_()"),e.waitingToClearBuffer=!1,e.waitingToFlushBuffer=!1,e.clearBufferSafeMargin=0,e.clearingBuffer=!0,e.lastSegmentReference=null,e.segmentIterator=null,p.debug(r,"clearing buffer"),e.segmentPrefetch&&!this.audioPrefetchMap_.has(e.stream)&&e.segmentPrefetch.clearAll(),i){let s=this.playerInterface_.getPresentationTime(),n=this.playerInterface_.mediaSourceEngine.getDuration();await this.playerInterface_.mediaSourceEngine.remove(e.type,s+i,n)}else await this.playerInterface_.mediaSourceEngine.clear(e.type),this.destroyer_.ensureNotDestroyed(),t&&await this.playerInterface_.mediaSourceEngine.flush(e.type);this.destroyer_.ensureNotDestroyed(),p.debug(r,"cleared buffer"),e.clearingBuffer=!1,e.endOfStream=!1,!e.performingUpdate&&!e.updateTimer&&this.scheduleUpdate_(e,0)}scheduleUpdate_(e,t){let i=Be.logPrefix_(e),r=e.type;if(r==R.ContentType.TEXT&&!this.mediaStates_.has(r)){p.v1(i,"Text stream is unloaded. No update is needed.");return}p.v2(i,"updating in "+t+" seconds"),v.assert(e.updateTimer==null,i+" did not expect update to be scheduled"),e.updateTimer=new ae(async()=>{try{await this.onUpdate_(e)}catch(s){this.playerInterface_&&this.playerInterface_.onError(s)}}).tickAfter(t)}cancelUpdate_(e){e.updateTimer!=null&&(e.updateTimer.stop(),e.updateTimer=null)}async abortOperations_(e){e.operation&&await e.operation.abort()}async handleStreamingError_(e,t){let i=Be.logPrefix_(e);if(t.code==h.Code.STREAMING_NOT_ALLOWED){e.performingUpdate=!1,this.cancelUpdate_(e),this.scheduleUpdate_(e,0);return}if(await this.failureCallbackBackoff_.attempt(),this.destroyer_.ensureNotDestroyed(),t.code==h.Code.MEDIA_SOURCE_OPERATION_THREW||t.code==h.Code.MEDIA_SOURCE_OPERATION_FAILED||t.category===h.Category.NETWORK&&t.code!=h.Code.TIMEOUT){if(e.restoreStreamAfterTrickPlay){this.setTrickPlay(!1);return}if(t.code==h.Code.MEDIA_SOURCE_OPERATION_THREW||t.code==h.Code.MEDIA_SOURCE_OPERATION_FAILED){t.handled=await this.resetMediaSource(!0);for(let s of this.mediaStates_.values())this.cancelUpdate_(s);this.destroyer_.ensureNotDestroyed()}let r=this.getDisabledTime_(t);r&&p.debug(i,"Disabling stream due to error",t),t.handled=this.playerInterface_.disableStream(e.stream,r)||t.handled,t.handled&&(t.severity=h.Severity.RECOVERABLE)}if(!t.handled&&t.code==h.Code.SEGMENT_MISSING){let r=this.playerInterface_.getPresentationTime(),s=this.playerInterface_.mediaSourceEngine.bufferEnd(e.type),n=this.getSegmentReferenceNeeded_(e,r,s);for(;(n==null?void 0:n.getStatus())===Se.Status.MISSING;)e.lastSegmentReference=n,n=this.getSegmentReferenceNeeded_(e,r,s);if(n){await this.playerInterface_.mediaSourceEngine.resync(e.type,n.startTime),e.performingUpdate=!1,e.hasError=!1,this.cancelUpdate_(e),this.scheduleUpdate_(e,0);return}}(!t.handled||t.code!=h.Code.SEGMENT_MISSING)&&this.playerInterface_.onError(t),t.handled||this.config_.failureCallback(t)}getDisabledTime_(e){return this.config_.maxDisabledTime===0&&e.code==h.Code.SEGMENT_MISSING?1:e.code==h.Code.MEDIA_SOURCE_OPERATION_FAILED||e.code==h.Code.MEDIA_SOURCE_OPERATION_THREW?1/0:this.config_.maxDisabledTime}async resetMediaSource(e=!1,t=!0){let i=Date.now()/1e3,r=this.config_.minTimeBetweenRecoveries;if(!e&&(!this.config_.allowMediaSourceRecoveries||i-this.lastMediaSourceReset_<r))return!1;this.lastMediaSourceReset_=i;let s=R.ContentType,n=this.mediaStates_.get(s.AUDIO);n&&(this.cancelUpdate_(n),n.operation&&(n.operation.abort(),n.operation=null),n.lastInitSegmentReference=null,n.lastAppendWindowStart=null,n.lastAppendWindowEnd=null,n.lastInitSegmentReference=null,n.lastAppendWindowStart=null,n.lastAppendWindowEnd=null,n.performingUpdate=!1,n.waitingToClearBuffer=!1,n.clearBufferSafeMargin=0,n.waitingToFlushBuffer=!1,n.clearingBuffer=!1,n.segmentIterator&&n.segmentIterator.resetToLastIndependent());let a=this.mediaStates_.get(s.VIDEO);a&&(this.cancelUpdate_(a),a.operation&&(a.operation.abort(),a.operation=null),a.lastInitSegmentReference=null,a.lastAppendWindowStart=null,a.lastAppendWindowEnd=null,a.performingUpdate=!1,a.waitingToClearBuffer=!1,a.clearBufferSafeMargin=0,a.waitingToFlushBuffer=!1,a.clearingBuffer=!1,a.segmentIterator&&a.segmentIterator.resetToLastIndependent());let o=this.playerInterface_.video.paused;return await this.playerInterface_.mediaSourceEngine.reset(this.getStreamsByType_()),a&&!a.clearingBuffer&&!a.performingUpdate&&!a.updateTimer&&this.scheduleUpdate_(a,0),n&&!n.clearingBuffer&&!n.performingUpdate&&!n.updateTimer&&this.scheduleUpdate_(n,0),o||this.playerInterface_.video.play(),!0}updateSpatialVideoInfo_(e){if(this.spatialVideoInfo_.projection!=e.projection||this.spatialVideoInfo_.hfov!=e.hfov){let t=U.EventName,i;if(e.projection!=null||e.hfov!=null){let r=t.SpatialVideoInfoEvent,s=new Map().set("detail",e);i=new U(r,s)}else{let r=t.NoSpatialVideoInfoEvent;i=new U(r)}i.cancelable=!0,this.playerInterface_.onEvent(i),this.spatialVideoInfo_=e}}updateSegmentIteratorReverse_(){let e=this.playerInterface_.getPlaybackRate()<0;for(let t of this.mediaStates_.values())t.segmentIterator&&t.segmentIterator.setReverse(e),t.segmentPrefetch&&t.segmentPrefetch.setReverse(e),e&&(t.segmentIterator=null,t.endOfStream=!1,!t.performingUpdate&&!t.updateTimer&&!t.clearingBuffer&&!t.waitingToClearBuffer&&this.scheduleUpdate_(t,0));for(let t of this.audioPrefetchMap_.values())t.setReverse(e)}shouldUseCrossBoundaryLogic_(){if(this.config_.crossBoundaryStrategy!==Ti.KEEP)return!0;let e=j.getDevice(),t=this.playerInterface_.getKeySystem();if(e.supportsSmoothCodecSwitching(t)){if(!e.supportsContainerChangeType())for(let i of this.mediaStates_.keys()){let r=this.mediaStates_.get(i),s=R.ContentType;if(r.type===s.TEXT)continue;let n=r.stream;if(n&&n.fullMimeTypes&&n.fullMimeTypes.size>1){let a=new Set;for(let o of n.fullMimeTypes)a.add(N.getContainerType(o));return a.size>1}}}else for(let i of this.mediaStates_.keys()){let r=this.mediaStates_.get(i),s=R.ContentType;if(r.type===s.TEXT)continue;let n=r.stream;if(n&&n.fullMimeTypes&&n.fullMimeTypes.size>1)return!0}return!1}setupCrossBoundaryListeners_(){this.crossBoundaryEventManager_.removeAll(),this.shouldUseCrossBoundaryLogic_()&&this.crossBoundaryEventManager_.listenMulti(this.playerInterface_.video,["waiting","timeupdate"],()=>{this.forwardTimeForCrossBoundary_()})}forwardTimeForCrossBoundary_(){if(!this.shouldUseCrossBoundaryLogic_())return;this.crossBoundaryTimer_.stop();let e=this.playerInterface_.getPresentationTime(),t=R.ContentType,i=this.mediaStates_.get(t.VIDEO)||this.mediaStates_.get(t.AUDIO);if(!i)return;let r=i.lastInitSegmentReference;if(!r||r.boundaryEnd===null)return;let s=Be.CROSS_BOUNDARY_END_THRESHOLD_,n=r.boundaryEnd-e;n<0||n>s||(this.boundaryTime_=r.boundaryEnd+Be.APPEND_WINDOW_END_FUDGE_,this.crossBoundaryTimer_.tickAfter(n))}discardReferenceByBoundary_(e,t){let i=R.ContentType;if(e.type===i.TEXT)return!1;let r=e.lastInitSegmentReference;if(!r)return!1;let s=Be.logPrefix_(e),n=t.initSegmentReference,a=r.boundaryEnd!==n.boundaryEnd;if(this.config_.crossBoundaryStrategy===Ti.RESET_TO_ENCRYPTED&&(!r.encrypted&&!n.encrypted&&(a=!1),r.encrypted&&(p.debug(s,"stream is encrypted, discard crossBoundaryStrategy"),this.config_.crossBoundaryStrategy=Ti.KEEP)),this.config_.crossBoundaryStrategy===Ti.RESET_ON_ENCRYPTION_CHANGE&&r.encrypted==n.encrypted&&(a=!1),this.config_.crossBoundaryStrategy===Ti.KEEP&&r.mimeType&&n.mimeType){let c=N.getNormalizedCodec(N.getCodecs(r.mimeType)),d=N.getNormalizedCodec(N.getCodecs(n.mimeType));r.mimeType==n.mimeType&&c==d&&(a=!1)}return(this.mediaStates_.get(i.VIDEO)||this.mediaStates_.get(i.AUDIO))===e&&a&&(this.crossBoundarySeek_||e.seeked)&&(p.debug(s,"reset mediaSource","from=",e.lastInitSegmentReference,"to=",t.initSegmentReference),this.crossBoundarySeek_=!1,this.resetMediaSource(!0).then(()=>{let c=U.EventName.BoundaryCrossed,d=new Map().set("oldEncrypted",r.encrypted).set("newEncrypted",n.encrypted);this.playerInterface_.onEvent(new U(c,d))})),a}getStreamsByType_(e=!1){let t=R.ContentType,i=a=>{if(a.fullMimeTypes&&a.fullMimeTypes.size>1&&this.mediaStates_.has(a.type)){let o=this.mediaStates_.get(a.type),c=this.playerInterface_.mediaSourceEngine.bufferEnd(o.type),d=this.playerInterface_.getPresentationTime(),u=this.getSegmentReferenceNeeded_(o,d,c);u&&u.codecs&&u.mimeType&&(a.codecs=u.codecs,a.mimeType=u.mimeType)}},r=new Map,s=this.currentVariant_.audio;s&&(i(s),r.set(t.AUDIO,s));let n=this.currentVariant_.video;return n&&(i(n),r.set(t.VIDEO,n)),e&&this.currentTextStream_&&r.set(t.TEXT,this.currentTextStream_),r}static logPrefix_(e){return"("+e.type+":"+e.stream.id+")"}};l(Be,"APPEND_WINDOW_START_FUDGE_",.1),l(Be,"APPEND_WINDOW_END_FUDGE_",.1),l(Be,"MAX_RUN_AHEAD_SEGMENTS_",1),l(Be,"CROSS_BOUNDARY_END_THRESHOLD_",1),l(Be,"LOOKUP_TIME_DURATION_THRESHOLD_",1);var jr=Be;/*! @license
365
+ * Shaka Player
366
+ * Copyright 2016 Google LLC
367
+ * SPDX-License-Identifier: Apache-2.0
368
+ */var Pt=class y{static mergeConfigObjects(e,t,i,r,s){v.assert(e,"Destination config must not be null!");let n=s in r,a=new Set(["__proto__","constructor","prototype"]),o=!1;n?o=i.constructor==Object&&Object.keys(r).length==0:o=i.constructor==Object&&Object.keys(i).length==0;let c=n||o,d=!0;for(let u of Object.keys(t)){let m=s+"."+u,f=n?r[s]:i[u];if(a.has(u))p.alwaysError("Invalid config, dangerous key "+m),d=!1;else if(!c&&!(u in i))p.alwaysError("Invalid config, unrecognized key "+m),d=!1;else if(t[u]===void 0)f===void 0||c?delete e[u]:e[u]=Ne.cloneObject(f);else if(o)e[u]=t[u];else if(f.constructor==Object&&t[u]&&t[u].constructor==Object){e[u]||(e[u]=Ne.cloneObject(f));let g=y.mergeConfigObjects(e[u],t[u],f,r,m);d=d&&g}else typeof t[u]!=typeof f||t[u]==null||typeof t[u]!="function"&&t[u].constructor!=f.constructor?(p.alwaysError("Invalid config, wrong type for "+m),d=!1):typeof i[u]=="function"&&i[u].length!=t[u].length?(p.alwaysWarn("Unexpected number of arguments for "+m),e[u]=t[u]):Array.isArray(e[u])?e[u]=t[u].slice():e[u]=t[u]}return d}static convertToConfigObject(e,t){let i={},r=i,s=0,n=0;for(;;){let a=e.indexOf(".",s);if(a<0)break;if(a==0||e[a-1]!="\\"){let o=e.substring(n,a).replace(/\\\./g,".");r[o]={},r=r[o],n=a+1}s=a+1}return r[e.substring(n).replace(/\\\./g,".")]=t,i}static referenceParametersAndReturn(e,t){return e&&t}static getDifferenceFromConfigObjects(e,t){let i=a=>a&&typeof a=="object"&&!Array.isArray(a),r=(a,o)=>Object.keys(a).reduce((c,d)=>{let u=a[d];if(!o.hasOwnProperty(d))c[d]=u;else if(u instanceof HTMLElement&&o[d]instanceof HTMLElement)u.isEqualNode(o[d])||(c[d]=u);else if(i(u)&&i(o[d])){let m=r(u,o[d]);(Object.keys(m).length>0||!i(m))&&(c[d]=m)}else Array.isArray(u)&&Array.isArray(o[d])?ye.equal(u,o[d])||(c[d]=u):Number.isNaN(u)&&Number.isNaN(o[d])||u!==o[d]&&(c[d]=u);return c},{}),s=r(e,t),n=a=>{for(let o of Object.keys(a))a[o]instanceof HTMLElement||(i(a[o])&&Object.keys(a[o]).length===0||typeof a[o]=="function"?delete a[o]:i(a[o])&&(n(a[o]),Object.keys(a[o]).length===0&&delete a[o]))};return n(s),s}};/*! @license
369
+ * Shaka Player
370
+ * Copyright 2016 Google LLC
371
+ * SPDX-License-Identifier: Apache-2.0
372
+ */var er=class{constructor(e){l(this,"logHalf_");l(this,"alpha_");l(this,"estimate_");l(this,"totalWeight_");v.assert(e>0,"expected halfLife to be positive"),this.logHalf_=Math.log(.5),this.alpha_=Math.exp(this.logHalf_/e),this.estimate_=0,this.totalWeight_=0}updateAlpha(e){v.assert(e>0,"expected halfLife to be positive"),this.alpha_=Math.exp(this.logHalf_/e)}sample(e,t){let i=Math.pow(this.alpha_,e),r=t*(1-i)+i*this.estimate_;isNaN(r)||(this.estimate_=r,this.totalWeight_+=e)}getEstimate(){let e=1-Math.pow(this.alpha_,this.totalWeight_);return this.estimate_/e}};/*! @license
373
+ * Shaka Player
374
+ * Copyright 2016 Google LLC
375
+ * SPDX-License-Identifier: Apache-2.0
376
+ */var ws=class{constructor(){l(this,"fast_");l(this,"slow_");l(this,"bytesSampled_");l(this,"minTotalBytes_");l(this,"minBytes_");this.fast_=new er(2),this.slow_=new er(5),this.bytesSampled_=0,this.minTotalBytes_=128e3,this.minBytes_=16e3}configure(e){this.minTotalBytes_=e.minTotalBytes,this.minBytes_=e.minBytes,this.fast_.updateAlpha(e.fastHalfLife),this.slow_.updateAlpha(e.slowHalfLife)}sample(e,t){if(t<this.minBytes_)return;let i=8e3*t/e,r=e/1e3;this.bytesSampled_+=t,this.fast_.sample(r,i),this.slow_.sample(r,i)}getBandwidthEstimate(e){return this.bytesSampled_<this.minTotalBytes_?e:Math.min(this.fast_.getEstimate(),this.slow_.getEstimate())}hasGoodEstimate(){return this.bytesSampled_>=this.minTotalBytes_}};/*! @license
377
+ * Shaka Player
378
+ * Copyright 2016 Google LLC
379
+ * SPDX-License-Identifier: Apache-2.0
380
+ */var mn=class mn{constructor(){l(this,"switch_");l(this,"disableStreamCallback_");l(this,"enabled_");l(this,"bandwidthEstimator_");l(this,"eventManager_");l(this,"variants_");l(this,"playbackRate_");l(this,"startupComplete_");l(this,"lastTimeChosenMs_");l(this,"config_");l(this,"mediaElement_");l(this,"resizeObserver_");l(this,"resizeObserverTimer_");l(this,"windowToCheck_");l(this,"pictureInPictureWindow_");l(this,"cmsdManager_");l(this,"droppedFramePoller_");l(this,"lastDroppedFrames_");l(this,"lastTotalFrames_");this.switch_=null,this.disableStreamCallback_=null,this.enabled_=!1,this.bandwidthEstimator_=new ws,this.eventManager_=new ue,navigator.connection&&navigator.connection.addEventListener&&this.eventManager_.listen(navigator.connection,"change",()=>{this.config_.useNetworkInformation&&navigator.onLine&&(this.bandwidthEstimator_=new ws,this.config_&&this.bandwidthEstimator_.configure(this.config_.advanced),this.trySuggestStreams())}),this.variants_=[],this.playbackRate_=1,this.startupComplete_=!1,this.lastTimeChosenMs_=null,this.config_=null,this.mediaElement_=null,this.resizeObserver_=null,this.resizeObserverTimer_=new ae(()=>{if(this.enabled_&&(this.config_.restrictToElementSize||this.config_.restrictToScreenSize)){let e=this.chooseVariant();e&&this.switch_&&this.switch_(e,this.config_.clearBufferSwitch,this.config_.safeMarginSwitch)}}),this.windowToCheck_=window,"documentPictureInPicture"in window&&this.eventManager_.listen(window.documentPictureInPicture,"enter",()=>{this.windowToCheck_=window.documentPictureInPicture.window,this.resizeObserverTimer_&&this.resizeObserverTimer_.tickNow(),this.eventManager_.listenOnce(this.windowToCheck_,"pagehide",()=>{this.windowToCheck_=window,this.resizeObserverTimer_&&this.resizeObserverTimer_.tickNow()})}),this.pictureInPictureWindow_=null,this.cmsdManager_=null,this.droppedFramePoller_=null,this.lastDroppedFrames_=0,this.lastTotalFrames_=0}stop(){var e,t;this.switch_=null,this.enabled_=!1,this.variants_=[],this.playbackRate_=1,this.lastTimeChosenMs_=null,this.mediaElement_=null,(e=this.resizeObserver_)==null||e.disconnect(),this.resizeObserver_=null,(t=this.resizeObserverTimer_)==null||t.stop(),this.pictureInPictureWindow_=null,this.cmsdManager_=null,this.stopDroppedFramePoller_()}release(){this.stop(),this.eventManager_.release(),this.resizeObserverTimer_=null}init(e,t){this.switch_=e,this.disableStreamCallback_=t}chooseVariant(e=!1){let t=1/0,i=1/0;if(this.config_.restrictToScreenSize){let c=this.config_.ignoreDevicePixelRatio?1:this.windowToCheck_.devicePixelRatio;t=this.windowToCheck_.screen.height*c,i=this.windowToCheck_.screen.width*c}if(this.resizeObserver_&&this.config_.restrictToElementSize){let c=this.config_.ignoreDevicePixelRatio?1:this.windowToCheck_.devicePixelRatio,d=this.mediaElement_.clientHeight,u=this.mediaElement_.clientWidth;this.pictureInPictureWindow_&&document.pictureInPictureElement&&document.pictureInPictureElement==this.mediaElement_&&(d=this.pictureInPictureWindow_.height,u=this.pictureInPictureWindow_.width),t=Math.min(t,d*c),i=Math.min(i,u*c)}let r=this.variants_.filter(c=>c&&!se.isFastSwitching(c));r.length||(r=this.variants_);let s=r;e&&r.length!=this.variants_.length&&(s=this.variants_.filter(c=>c&&se.isFastSwitching(c)));let n=this.filterAndSortVariants_(this.config_.restrictions,s,1/0,1/0);if(t!=1/0||i!=1/0){let c=this.getResolutionList_(n);for(let d of c)if(d.height>=t&&d.width>=i){t=d.height,i=d.width;break}n=this.filterAndSortVariants_(this.config_.restrictions,s,t,i)}let a=this.getBandwidthEstimate();s.length&&!n.length&&(p.warning("No variants met the ABR restrictions. Choosing a variant by lowest bandwidth."),n=this.filterAndSortVariants_(null,s,1/0,1/0),n=[n[0]]);let o=n[0]||null;for(let c=0;c<n.length;c++){let d=n[c],u=isNaN(this.playbackRate_)?1:Math.abs(this.playbackRate_),m=u*d.bandwidth,f=m/this.config_.bandwidthDowngradeTarget,g={bandwidth:1/0};for(let S=c+1;S<n.length;S++)if(d.bandwidth!=n[S].bandwidth){g=n[S];break}let T=u*g.bandwidth/this.config_.bandwidthUpgradeTarget;p.v2("Bandwidth ranges:",(m/1e6).toFixed(3),(f/1e6).toFixed(3),(T/1e6).toFixed(3)),o&&d&&a>=f&&a<=T&&(o.bandwidth!=d.bandwidth||this.isSameBandwidthAndHigherResolution_(o,d))&&(o=d)}return this.lastTimeChosenMs_=Date.now(),o}enable(){this.enabled_=!0,this.updateFramesInfo_(),this.variants_.length&&this.trySuggestStreams()}disable(){this.enabled_=!1}segmentDownloaded(e,t,i,r,s){e>=this.config_.cacheLoadThreshold&&(p.v2("Segment downloaded:","contentType="+(r&&r.contentType),"deltaTimeMs="+e,"numBytes="+t,"lastTimeChosenMs="+this.lastTimeChosenMs_,"enabled="+this.enabled_),v.assert(e>=0,"expected a non-negative duration"),this.bandwidthEstimator_.sample(e,t)),i&&this.lastTimeChosenMs_!=null&&this.enabled_&&this.suggestStreams_()}trySuggestStreams(){this.enabled_&&(this.lastTimeChosenMs_=Date.now(),this.suggestStreams_(!0))}getBandwidthEstimate(){let e=this.getDefaultBandwidth_();if(navigator.connection&&navigator.connection.downlink&&this.config_.useNetworkInformation&&this.config_.preferNetworkInformationBandwidth)return e;let t=this.bandwidthEstimator_.getBandwidthEstimate(e);return this.cmsdManager_?this.cmsdManager_.getBandwidthEstimate(t):t}setVariants(e,t){return ye.hasSameElements(e,this.variants_)?!1:(this.variants_=e,!0)}playbackRateChanged(e){this.playbackRate_=e}setMediaElement(e){this.mediaElement_=e,this.resizeObserver_&&(this.resizeObserver_.disconnect(),this.resizeObserver_=null);let t=()=>{this.resizeObserverTimer_.tickAfter(mn.RESIZE_OBSERVER_BATCH_TIME)};this.mediaElement_&&"ResizeObserver"in window&&(this.resizeObserver_=new ResizeObserver(t),this.resizeObserver_.observe(this.mediaElement_)),this.eventManager_.listen(e,"enterpictureinpicture",i=>{let r=i;r.pictureInPictureWindow&&(this.pictureInPictureWindow_=r.pictureInPictureWindow,this.eventManager_.listen(this.pictureInPictureWindow_,"resize",t))}),this.eventManager_.listen(e,"leavepictureinpicture",()=>{this.pictureInPictureWindow_&&this.eventManager_.unlisten(this.pictureInPictureWindow_,"resize",t),this.pictureInPictureWindow_=null}),this.startDroppedFramePoller_()}setCmsdManager(e){this.cmsdManager_=e}configure(e){this.config_=e,this.bandwidthEstimator_&&this.config_&&this.bandwidthEstimator_.configure(this.config_.advanced),this.startDroppedFramePoller_()}suggestStreams_(e=!1){if(p.v2("Suggesting Streams..."),v.assert(this.lastTimeChosenMs_!=null,"lastTimeChosenMs_ should not be null"),!e){if(!this.startupComplete_){if(!this.bandwidthEstimator_.hasGoodEstimate()){p.v2("Still waiting for a good estimate...");return}this.startupComplete_=!0,this.lastTimeChosenMs_-=(this.config_.switchInterval-this.config_.minTimeToSwitch)*1e3}if(Date.now()-this.lastTimeChosenMs_<this.config_.switchInterval*1e3){p.v2("Still within switch interval...");return}}let t=this.chooseVariant(),i=this.getBandwidthEstimate(),r=Math.round(i/1e3);t&&this.switch_&&(p.debug("Calling switch_(), bandwidth="+r+" kbps"),this.switch_(t,this.config_.clearBufferSwitch,this.config_.safeMarginSwitch),this.updateFramesInfo_())}getDefaultBandwidth_(){let e=this.config_.defaultBandwidthEstimate;return navigator.connection&&navigator.connection.downlink&&this.config_.useNetworkInformation&&(e=navigator.connection.downlink*1e6),e}filterAndSortVariants_(e,t,i,r){if(this.cmsdManager_){let s=this.cmsdManager_.getMaxBitrate();s&&(t=t.filter(n=>!n.bandwidth||!s?!0:n.bandwidth<=s))}return e&&(t=t.filter(s=>(v.assert(e,"Restrictions should exist!"),se.meetsRestrictions(s,e,{width:r,height:i})))),t.sort((s,n)=>s.bandwidth-n.bandwidth)}getResolutionList_(e){let t=[];for(let i of e){if(!i)continue;let r=i.video;!r||!r.height||!r.width||t.push({height:r.height,width:r.width})}return t.sort((i,r)=>i.width-r.width)}isSameBandwidthAndHigherResolution_(e,t){return e.bandwidth!=t.bandwidth||!e.video||!t.video?!1:e.video.width<t.video.width||e.video.height<t.video.height}startDroppedFramePoller_(){this.stopDroppedFramePoller_();let e=this.mediaElement_;!this.config_.droppedFrames||!(e!=null&&e.getVideoPlaybackQuality)||(this.updateFramesInfo_(),this.startListeningToResize_(),this.droppedFramePoller_=new ae(()=>{this.checkDroppedFrames_()}).tickEvery(this.config_.advanced.droppedFramesInterval))}stopDroppedFramePoller_(){var e;this.stopListeningToResize_(),(e=this.droppedFramePoller_)==null||e.stop(),this.droppedFramePoller_=null}checkDroppedFrames_(){if(this.mediaElement_.paused||!this.enabled_||!this.config_.droppedFrames)return;let t=this.mediaElement_.getVideoPlaybackQuality(),i=t.droppedVideoFrames,r=t.totalVideoFrames;if((isNaN(this.playbackRate_)?1:Math.abs(this.playbackRate_))>1||!r){this.lastDroppedFrames_=i,this.lastTotalFrames_=r;return}let n=i-this.lastDroppedFrames_,a=r-this.lastTotalFrames_;this.lastDroppedFrames_=i,this.lastTotalFrames_=r;let o=n/a,c=this.config_.advanced.droppedFramesThreshold;o>=c&&this.disableStreamCallback_&&(p.warning("Dropped frame ratio exceeded threshold: "+o.toFixed(2)+" >= "+c+". Disabling current video stream."),this.disableStreamCallback_("video",this.config_.advanced.droppedFramesBanDuration))}updateFramesInfo_(){let e=this.mediaElement_;if(this.config_.droppedFrames&&(e!=null&&e.getVideoPlaybackQuality)){let t=e.getVideoPlaybackQuality();this.lastDroppedFrames_=t.droppedVideoFrames,this.lastTotalFrames_=t.totalVideoFrames}}startListeningToResize_(){let e=this.mediaElement_;this.eventManager_.listen(e,"resize",()=>{p.debug("video resolution changed to "+e.videoWidth+"x"+e.videoHeight+". Resetting frame counters."),this.updateFramesInfo_()}),p.v1("listening to resize started.")}stopListeningToResize_(){this.eventManager_.unlisten(this.mediaElement_,"resize"),p.v1("listening to resize stopped.")}};l(mn,"RESIZE_OBSERVER_BATCH_TIME",1);var Ms=mn;/*! @license
381
+ * Shaka Player
382
+ * Copyright 2016 Google LLC
383
+ * SPDX-License-Identifier: Apache-2.0
384
+ */var Ao={NONE:0,NEXT_GROUP_START:1,LARGEST_OBJECT:2,ABSOLUTE_START:3,ABSOLUTE_RANGE:4};/*! @license
385
+ * Shaka Player
386
+ * Copyright 2016 Google LLC
387
+ * SPDX-License-Identifier: Apache-2.0
388
+ */var Dr={AUTO:"auto",DRAFT_14:"draft-14",DRAFT_16:"draft-16"};/*! @license
389
+ * Shaka Player
390
+ * Copyright 2016 Google LLC
391
+ * SPDX-License-Identifier: Apache-2.0
392
+ */var Yt={DEFAULT:0,TOP_LEFT:1,TOP_CENTER:2,TOP_RIGHT:3,CENTER_LEFT:4,CENTER:5,CENTER_RIGHT:6,BOTTOM_LEFT:7,BOTTOM_CENTER:8,BOTTOM_RIGHT:9};/*! @license
393
+ * Shaka Player
394
+ * Copyright 2016 Google LLC
395
+ * SPDX-License-Identifier: Apache-2.0
396
+ */var Yr={OFF:0,ALL:1,SINGLE:2};/*! @license
397
+ * Shaka Player
398
+ * Copyright 2016 Google LLC
399
+ * SPDX-License-Identifier: Apache-2.0
400
+ */var hr=class y{static async isFairPlaySupported(){let e={initDataTypes:["cenc","sinf","skd"],videoCapabilities:[{contentType:'video/mp4; codecs="avc1.42E01E"'}]};try{return await navigator.requestMediaKeySystemAccess("com.apple.fps",[e]),!0}catch(t){return!1}}static defaultGetContentId(e){let t=q.fromBytesAutoDetect(e);return fe.getDomain(t)}static defaultGetKeyId(e){let i=fe.getDomain(e).replace(/-/g,"").toLowerCase();return i.length===32&&/^[0-9a-f]+$/.test(i)?i:null}static initDataTransform(e,t,i){if(!i||!i.byteLength)throw new h(h.Severity.CRITICAL,h.Category.DRM,h.Code.SERVER_CERTIFICATE_REQUIRED);let r;typeof t=="string"?r=q.toUTF16(t,!0):r=t;let s=q.fromBytesAutoDetect(e),n=q.toUTF16(s,!0),a=new Uint8Array(12+n.byteLength+r.byteLength+i.byteLength),o=0,c=u=>{a.set(D.toUint8(u),o),o+=u.byteLength},d=u=>{let m=D.toDataView(a),f=u.byteLength;m.setUint32(o,f,!0),o+=4,c(u)};return d(n),d(r),d(i),v.assert(o==a.length,"Inconsistent init data length"),a}static basicInitDataTransform_(e,t,i){if(t!=="skd")return e;let r=i.serverCertificate,n=q.fromBytesAutoDetect(e).split("skd://").pop();return y.initDataTransform(e,n,r)}static verimatrixInitDataTransform(e,t,i){return y.basicInitDataTransform_(e,t,i)}static ezdrmInitDataTransform(e,t,i){if(t!=="skd")return e;let r=i.serverCertificate,n=q.fromBytesAutoDetect(e).split(";").pop();return y.initDataTransform(e,n,r)}static conaxInitDataTransform(e,t,i){if(t!=="skd")return e;let r=i.serverCertificate,n=q.fromBytesAutoDetect(e).split("skd://").pop().split("?").shift(),o=(c=>{let d=new ArrayBuffer(c.length*2),u=D.toUint16(d);for(let m=0,f=c.length;m<f;m++)u[m]=c.charCodeAt(m);return u})(window.atob(n));return y.initDataTransform(e,o,r)}static expressplayInitDataTransform(e,t,i){return y.basicInitDataTransform_(e,t,i)}static muxInitDataTransform(e,t,i){return y.basicInitDataTransform_(e,t,i)}static verimatrixFairPlayRequest(e,t,i){if(e!==K.RequestType.LICENSE||t.attempt>0)return;let r=t.drmInfo;if(!r||!de.isFairPlayKeySystem(r.keySystem))return;let s=t.body,n=D.toUint8(s),a=ne.toBase64(n);t.headers["Content-Type"]="application/x-www-form-urlencoded",t.body=q.toUTF8("spc="+a)}static octetStreamFairPlayRequest_(e,t,i){if(e!==K.RequestType.LICENSE||t.attempt>0)return;let r=t.drmInfo;!r||!de.isFairPlayKeySystem(r.keySystem)||(t.headers["Content-Type"]="application/octet-stream")}static ezdrmFairPlayRequest(e,t,i){y.octetStreamFairPlayRequest_(e,t)}static conaxFairPlayRequest(e,t,i){y.octetStreamFairPlayRequest_(e,t)}static expressplayFairPlayRequest(e,t,i){y.octetStreamFairPlayRequest_(e,t)}static muxFairPlayRequest(e,t,i){y.octetStreamFairPlayRequest_(e,t)}static gumletFairPlayRequest(e,t,i){if(e!==K.RequestType.LICENSE||t.attempt>0)return;let r=t.drmInfo;if(!r||!de.isFairPlayKeySystem(r.keySystem)||!t.body)return;let s=D.toUint8(t.body),n=ne.toBase64(s);t.body=q.toUTF8(JSON.stringify({spc:n})),t.headers["Content-Type"]="application/json"}static commonFairPlayResponse(e,t,i){if(e!==K.RequestType.LICENSE)return;let r=t.originalRequest.drmInfo;if(!r||!de.isFairPlayKeySystem(r.keySystem))return;let s;try{s=q.fromUTF8(t.data)}catch(a){return}let n=!1;if(s=s.trim(),s.substr(0,5)==="<ckc>"&&s.substr(-6)==="</ckc>"&&(s=s.slice(5,-6),n=!0),!n)try{let a=JSON.parse(s);a.ckc&&(s=a.ckc,n=!0),a.CkcMessage&&(s=a.CkcMessage,n=!0),a.License&&(s=a.License,n=!0)}catch(a){}n&&(t.data=D.toArrayBuffer(ne.fromBase64(s)))}};/*! @license
401
+ * Shaka Player
402
+ * Copyright 2016 Google LLC
403
+ * SPDX-License-Identifier: Apache-2.0
404
+ */var pn=class y{constructor(e,t,i=!0){l(this,"root_");l(this,"variants_");this.root_=e,this.variants_=new Set([e]),t=t||[];for(let r of t)this.add(r,i)}add(e,t){return this.canInclude(e,t)?(this.variants_.add(e),!0):(p.warning("Rejecting variant - not compatible with root."),!1)}canInclude(e,t=!0){return y.areAdaptable(this.root_,e,t)}static areAdaptable(e,t,i){return!(!!e.audio!=!!t.audio||!!e.video!=!!t.video||e.language!=t.language||(v.assert(!!e.audio==!!t.audio,"Both should either have audio or not have audio."),e.audio&&t.audio&&!y.areAudiosCompatible_(e.audio,t.audio,i))||(v.assert(!!e.video==!!t.video,"Both should either have video or not have video."),e.video&&t.video&&!y.areVideosCompatible_(e.video,t.video,i)))}values(){return this.variants_.values()}static areAudiosCompatible_(e,t,i){return!((!e.channelsCount||!t.channelsCount||e.channelsCount>2||t.channelsCount>2)&&e.channelsCount!=t.channelsCount||e.spatialAudio!==t.spatialAudio||i&&!y.canTransitionBetween_(e,t)||!y.areRolesEqual_(e.roles,t.roles)||e.groupId!==t.groupId)}static areVideosCompatible_(e,t,i){return!(i&&!y.canTransitionBetween_(e,t)||!y.areRolesEqual_(e.roles,t.roles))}static canTransitionBetween_(e,t){if(e.mimeType!=t.mimeType)return!1;let i=N.splitCodecs(e.codecs).map(s=>N.getCodecBase(s)),r=N.splitCodecs(t.codecs).map(s=>N.getCodecBase(s));return ye.hasSameElements(i,r)}static areRolesEqual_(e,t){return ye.hasSameElements(e,t)}};/*! @license
405
+ * Shaka Player
406
+ * Copyright 2016 Google LLC
407
+ * SPDX-License-Identifier: Apache-2.0
408
+ */var Rs=class y{constructor(){l(this,"config_");l(this,"lastAdaptationSet_");this.config_=null,this.lastAdaptationSet_=null}configure(e){this.config_=e}getConfiguration(){return this.config_}create(e){let t=y,i=t.applyAudioPreferences_(e,this.config_.preferredAudio,this.config_.audioCodec,this.config_.activeAudioCodec);i=t.applyVideoPreferences_(i,this.config_.preferredVideo);let r=j.getDevice(),s=this.config_.keySystem,n=this.config_.codecSwitchingStrategy==Pr.SMOOTH&&r.supportsSmoothCodecSwitching(s);return this.lastAdaptationSet_=new pn(i[0],i,!n),this.lastAdaptationSet_}getLastAdaptationSet(){return this.lastAdaptationSet_}static applyAudioPreferences_(e,t,i,r){let s=y;for(let d of t){let u=e;if(d.language){let g=s.filterByLanguage_(u,d.language);if(g.length)u=g;else continue}if(d.role){let g=s.filterVariantsByAudioRole_(u,d.role);if(g.length)u=g;else continue}if(d.label){let g=s.filterVariantsByAudioLabel_(u,d.label);if(g.length)u=g;else continue}if(d.channelCount){let g=s.filterVariantsByAudioChannelCount_(u,d.channelCount);if(g.length)u=g;else continue}let m=[];d.codec&&m.push(d.codec),i&&m.push(i),r&&m.push(r);let f=m.filter((g,_)=>m.indexOf(g)===_);if(f.length){let g=!1;for(let _ of f){let T=s.filterVariantsByAudioCodec_(u,_);if(T.length){u=T,g=!0;break}}if(!g&&d.codec)continue}if(d.spatialAudio!==void 0){let g=s.filterVariantsBySpatialAudio_(u,d.spatialAudio);if(g.length)u=g;else continue}if(u.length)return u}let n=e,a=[];i&&a.push(i),r&&a.push(r);let o=a.filter((d,u)=>a.indexOf(d)===u);if(o.length)for(let d of o){let u=s.filterVariantsByAudioCodec_(n,d);if(u.length){n=u;break}}let c=n.filter(d=>d.primary);return c.length?c:n}static applyVideoPreferences_(e,t){let i=y;for(let r of t){let s=e;if(r.role){let n=i.filterVariantsByVideoRole_(s,r.role);if(n.length)s=n;else continue}if(r.language){let n=i.filterVariantsByVideoLanguage_(s,r.language);if(n.length)s=n;else continue}if(r.label){let n=i.filterVariantsByVideoLabel_(s,r.label);if(n.length)s=n;else continue}if(r.hdrLevel){let n=i.filterVariantsByHDRLevel_(s,r.hdrLevel);if(n.length)s=n;else continue}if(r.layout){let n=i.filterVariantsByVideoLayout_(s,r.layout);if(n.length)s=n;else continue}if(r.codec){let n=i.filterVariantsByVideoCodec_(s,r.codec);if(n.length)s=n;else continue}if(s.length)return s}return e}static filterByLanguage_(e,t){let i=ve.normalize(t),r=ve.findClosestLocale(i,e.map(s=>ve.getLocaleForVariant(s)));return r?e.filter(s=>r==ve.getLocaleForVariant(s)):[]}static filterVariantsByAudioRole_(e,t){return e.filter(i=>i.audio?t?i.audio.roles.includes(t):i.audio.roles.length==0:!1)}static filterVariantsByVideoRole_(e,t){return e.filter(i=>i.video?t?i.video.roles.includes(t):i.video.roles.length==0:!1)}static filterVariantsByVideoLanguage_(e,t){let i=ve.normalize(t);return e.filter(r=>!r.video||!r.video.language?!1:ve.normalize(r.video.language)==i)}static filterVariantsByAudioLabel_(e,t){return e.filter(i=>{if(!i.audio||!i.audio.label)return!1;let r=i.audio.label.toLowerCase(),s=t.toLowerCase();return r==s})}static filterVariantsByVideoLabel_(e,t){return e.filter(i=>{if(!i.video||!i.video.label)return!1;let r=i.video.label.toLowerCase(),s=t.toLowerCase();return r==s})}static filterVariantsByAudioChannelCount_(e,t){return e.filter(i=>!(i.audio&&i.audio.channelsCount&&i.audio.channelsCount>t)).sort((i,r)=>!i.audio&&!r.audio?0:i.audio?r.audio?(r.audio.channelsCount||0)-(i.audio.channelsCount||0):1:-1)}static filterVariantsByHDRLevel_(e,t){if(t=="AUTO"){let i=e.some(s=>!!(s.video&&s.video.hdr&&s.video.hdr=="HLG"));t=j.getDevice().getHdrLevel(i)}return e.filter(i=>!(i.video&&i.video.hdr&&i.video.hdr!=t))}static filterVariantsByVideoLayout_(e,t){return e.filter(i=>!(i.video&&i.video.videoLayout&&i.video.videoLayout!=t))}static filterVariantsBySpatialAudio_(e,t){return e.filter(i=>!(i.audio&&i.audio.spatialAudio!=t))}static filterVariantsByAudioCodec_(e,t){return e.filter(i=>!(i.audio&&i.audio.codecs!=t))}static filterVariantsByVideoCodec_(e,t){return e.filter(i=>!(i.video&&i.video.codecs!=t))}};/*! @license
409
+ * Shaka Player
410
+ * Copyright 2016 Google LLC
411
+ * SPDX-License-Identifier: Apache-2.0
412
+ */var st=class y{static createDefault(){let i=1/0,r=j.getDevice();navigator.connection&&navigator.connection.saveData&&(i=360);let s={retryParameters:K.defaultRetryParameters(),servers:{},clearKeys:{},advanced:{},delayLicenseRequestUntilPlayed:!1,persistentSessionOnlinePlayback:!1,persistentSessionsMetadata:[],initDataTransform:(A,w,M)=>{if(de.isMediaKeysPolyfilled("apple")&&w=="skd"){let x=M.serverCertificate,k=hr.defaultGetContentId(A);A=hr.initDataTransform(A,k,x)}return A},logLicenseExchange:!1,updateExpirationTime:1,preferredKeySystems:[],keySystemsMapping:{},parseInbandPsshEnabled:!1,minHdcpVersion:"",ignoreDuplicateInitData:!0,defaultAudioRobustnessForWidevine:"SW_SECURE_CRYPTO",defaultVideoRobustnessForWidevine:"SW_SECURE_DECODE",renewalIntervalSec:0,failureCallback:A=>Pt.referenceParametersAndReturn([A],void 0)},n=Pr.RELOAD;r.supportsSmoothCodecSwitching("")&&(n=Pr.SMOOTH);let a={retryParameters:K.defaultRetryParameters(),availabilityWindowOverride:NaN,disableAudio:!1,disableVideo:!1,disableText:!1,disableThumbnails:!1,disableIFrames:!1,disableChapters:!1,defaultPresentationDelay:0,segmentRelativeVttTiming:!1,raiseFatalErrorOnManifestUpdateRequestFailure:!1,continueLoadingWhenPaused:!0,ignoreSupplementalCodecs:!1,updatePeriod:-1,ignoreDrmInfo:!1,enableAudioGroups:!0,dash:{clockSyncUri:"",xlinkFailGracefully:!1,ignoreMinBufferTime:!1,autoCorrectDrift:!0,initialSegmentLimit:1e3,ignoreSuggestedPresentationDelay:!1,ignoreEmptyAdaptationSet:!1,ignoreMaxSegmentDuration:!1,keySystemsByURI:de.getUuidMap(!1,!0),manifestPreprocessorTXml:y.defaultManifestPreprocessorTXml,sequenceMode:!1,useStreamOnceInPeriodFlattening:!1,enableFastSwitching:!0},hls:{ignoreTextStreamFailures:!1,ignoreImageStreamFailures:!1,defaultAudioCodec:"mp4a.40.2",defaultVideoCodec:"avc1.42E01E",ignoreManifestProgramDateTime:!1,ignoreManifestProgramDateTimeForTypes:[],mediaPlaylistFullMimeType:'video/mp2t; codecs="avc1.42E01E, mp4a.40.2"',liveSegmentsDelay:3,sequenceMode:!1,ignoreManifestTimestampsInSegmentsMode:!1,disableCodecGuessing:!1,disableClosedCaptionsDetection:!1,allowLowLatencyByteRangeOptimization:!0,allowRangeRequestsToGuessMimeType:!1,chaptersUri:""},msf:{fingerprintUri:"",namespaces:[],authorizationToken:"",subscribeFilterType:Ao.LARGEST_OBJECT,useFetchCatalog:!1,version:Dr.AUTO,catalogPreprocessor:y.defaultCatalogPreprocessor}},o={retryParameters:K.defaultRetryParameters(),failureCallback:A=>(p.error("Unhandled streaming error",A),Pt.referenceParametersAndReturn([A],void 0)),rebufferingGoal:0,bufferingGoal:10,bufferBehind:30,evictionGoal:1,ignoreTextStreamFailures:!1,startAtSegmentBoundary:!1,gapDetectionThreshold:.5,gapPadding:0,gapJumpTimerTime:.25,durationBackoff:1,safeSeekOffset:5,safeSeekEndOffset:0,stallEnabled:!0,stallThreshold:1,stallSkip:.1,useNativeHlsForFairPlay:!0,inaccurateManifestTolerance:2,lowLatencyMode:!0,preferNativeDash:!1,preferNativeHls:!1,updateIntervalSeconds:1,observeQualityChanges:!1,maxDisabledTime:30,segmentPrefetchLimit:1,prefetchAudioLanguages:[],disableAudioPrefetch:!1,disableTextPrefetch:!1,disableVideoPrefetch:!1,liveSync:{enabled:!1,targetLatency:.5,targetLatencyTolerance:.5,maxPlaybackRate:1.1,minPlaybackRate:.95,panicMode:!1,panicThreshold:60,dynamicTargetLatency:{enabled:!1,stabilityThreshold:60,rebufferIncrement:.5,maxAttempts:10,maxLatency:4,minLatency:1}},allowMediaSourceRecoveries:!0,minTimeBetweenRecoveries:5,vodDynamicPlaybackRate:!1,vodDynamicPlaybackRateLowBufferRate:.95,vodDynamicPlaybackRateBufferRatio:.5,preloadNextUrlWindow:30,loadTimeout:30,clearDecodingCache:!1,dontChooseCodecs:!1,shouldFixTimestampOffset:!1,avoidEvictionOnQuotaExceededError:!1,crossBoundaryStrategy:Ti.KEEP,returnToEndOfLiveWindowWhenOutside:!1,stopFetchingOnPause:!1,clampAppendWindowToDuration:!1,processSrcEqualMetadata:!0},c={forceHTTP:!1,forceHTTPS:!1,minBytesForProgressEvents:16e3,commonAccessTokenHeaderName:"cta-common-access-token"},d={trackSelectionCallback:async A=>A,downloadSizeCallback:async A=>{if(navigator.storage&&navigator.storage.estimate){let w=await navigator.storage.estimate();return w.usage+A<w.quota*.95}else return!0},progressCallback:(A,w)=>Pt.referenceParametersAndReturn([A,w],void 0),usePersistentLicense:!0,numberOfParallelDownloads:5},u={enabled:!0,useNetworkInformation:!0,defaultBandwidthEstimate:1e6,switchInterval:8,bandwidthUpgradeTarget:.85,bandwidthDowngradeTarget:.95,restrictions:{minWidth:0,maxWidth:1/0,minHeight:0,maxHeight:i,minPixels:0,maxPixels:1/0,minFrameRate:0,maxFrameRate:1/0,minBandwidth:0,maxBandwidth:1/0,minChannelsCount:0,maxChannelsCount:1/0},advanced:{minTotalBytes:128e3,minBytes:16e3,fastHalfLife:2,slowHalfLife:5,droppedFramesThreshold:.15,droppedFramesInterval:2,droppedFramesBanDuration:30},restrictToElementSize:!1,restrictToScreenSize:!1,ignoreDevicePixelRatio:!1,clearBufferSwitch:!1,safeMarginSwitch:0,cacheLoadThreshold:5,minTimeToSwitch:0,preferNetworkInformationBandwidth:!1,droppedFrames:!0},m={enabled:!1,sessionId:"",contentId:"",rtpSafetyFactor:5,useHeaders:!1,includeKeys:[],version:1,eventTargets:[]},f={enabled:!0,applyMaximumSuggestedBitrate:!0,estimatedThroughputWeightRatio:.5},g={enabled:!1,dynamicPerformanceScaling:!0,logLevel:0,drawLogo:!1,poster:!0},_={codecSwitchingStrategy:n,addExtraFeaturesToSourceBuffer:A=>Pt.referenceParametersAndReturn([A],""),forceTransmux:!1,insertFakeEncryptionInInit:!0,correctEc3Enca:!1,modifyCueCallback:(A,w,M)=>Pt.referenceParametersAndReturn([A,w,M],void 0),dispatchAllEmsgBoxes:!1,useSourceElements:!0,durationReductionEmitsUpdateEnd:!0,transmuxWorkerUrl:"",repairIFrames:!0},T={customPlayheadTracker:!1,skipPlayDetection:!1,supportsMultipleMediaElements:!0,disableHLSInterstitial:!1,disableDASHInterstitial:!1,allowPreloadOnDomElements:!0,allowStartInMiddleOfInterstitial:!0,disableTrackingEvents:!1,disableSnapback:!1,interstitialPreloadAheadTime:10,disablePlayedLinearAdSkip:!1,disableTrackingForPlayedLinearAds:!1},S={fontScaleFactor:1,positionArea:Yt.DEFAULT,subtitleDelay:0,suspendRenderingWhenHidden:!0},b={preloadNextUrlWindow:1/0,preloadPrevItem:!0,repeatMode:Yr.OFF},C={drm:s,manifest:a,streaming:o,networking:c,mediaSource:_,offline:d,abrFactory:()=>new Ms,adaptationSetCriteriaFactory:(...A)=>new Rs(...A),abr:u,preferredAudio:[{language:"",role:"",label:"",channelCount:2,codec:""}],preferredText:[],preferredVideo:[{label:"",role:"",language:"",codec:"",hdrLevel:"AUTO",layout:""}],preferredDecodingAttributes:[],restrictions:{minWidth:0,maxWidth:1/0,minHeight:0,maxHeight:1/0,minPixels:0,maxPixels:1/0,minFrameRate:0,maxFrameRate:1/0,minBandwidth:0,maxBandwidth:1/0,minChannelsCount:0,maxChannelsCount:1/0},playRangeStart:0,playRangeEnd:1/0,textDisplayer:S,textDisplayFactory:A=>null,cmcd:m,cmsd:f,lcevc:g,ads:T,ignoreHardwareResolution:!1,queue:b,accessibility:{handleForcedSubtitlesAutomatically:!0,speechToText:{enabled:!1,maxTextLength:140,processLocally:!1,languagesToTranslate:[]}}};return d.trackSelectionCallback=async A=>{let w=C.preferredAudio.map(x=>x.language).filter(Boolean),M=C.preferredVideo[0]&&C.preferredVideo[0].hdrLevel||"";return y.defaultTrackSelect(A,w,M)},r.adjustConfig(C)}static createDefaultForLL(){return{streaming:{inaccurateManifestTolerance:0,segmentPrefetchLimit:2,updateIntervalSeconds:.1,maxDisabledTime:1,retryParameters:{baseDelay:100}},manifest:{dash:{autoCorrectDrift:!1},retryParameters:{baseDelay:100}},drm:{retryParameters:{baseDelay:100}}}}static mergeConfigObjects(e,t,i){let r={".drm.keySystemsMapping":"",".drm.servers":"",".drm.clearKeys":"",".drm.advanced":{distinctiveIdentifierRequired:!1,persistentStateRequired:!1,videoRobustness:[],audioRobustness:[],sessionType:"",serverCertificate:new Uint8Array(0),serverCertificateUri:"",individualizationServer:"",headers:{}}};return Pt.mergeConfigObjects(e,t,i||y.createDefault(),r,"")}static addDeprecatedConfigFields(e){var r,s,n,a,o,c,d,u,m,f;let t=e.preferredAudio[0],i=e.preferredVideo[0];e.language=(r=t==null?void 0:t.language)!=null?r:"",e.role=(s=t==null?void 0:t.role)!=null?s:"",e.channelCount=(n=t==null?void 0:t.channelCount)!=null?n:2,e.spatialAudio=(a=t==null?void 0:t.spatialAudio)!=null?a:!1,e.audioLabel=(o=t==null?void 0:t.label)!=null?o:"",e.videoRole=(c=i==null?void 0:i.role)!=null?c:"",e.hdrLevel=(d=i==null?void 0:i.hdrLevel)!=null?d:"",e.videoLayout=(u=i==null?void 0:i.layout)!=null?u:"",e.videoLabel=(m=i==null?void 0:i.label)!=null?m:"",e.preferredAudioCodecs=e.preferredAudio.map(g=>g.codec).filter(Boolean),e.preferredAudioChannelCount=(f=t==null?void 0:t.channelCount)!=null?f:2}static defaultTrackSelect(e,t,i){let r=R.ContentType,s=i;if(s=="AUTO"){let m=e.some(g=>!!(g.hdr&&g.hdr=="HLG"));s=j.getDevice().getHdrLevel(m)}let n=e.filter(m=>!(m.type!="variant"||m.hdr&&m.hdr!=s)),a=[],o=n.map(m=>m.language),c=null;for(let m of t)if(c=ve.findClosestLocale(m,o),c)break;c&&(a=n.filter(m=>ve.normalize(m.language)==c)),a.length==0&&(a=n.filter(m=>m.primary)),a.length==0&&(new Set(n.map(f=>f.language)).size>1&&p.warning("Could not choose a good audio track based on language preferences or primary tracks. An arbitrary language will be stored!"),a=n);let d=a.filter(m=>m.height&&m.height<=480);d.length&&(d.sort((m,f)=>(v.assert(m.height!=null,"Null height"),v.assert(f.height!=null,"Null height"),f.height-m.height)),a=d.filter(m=>m.height==d[0].height));let u=[];if(a.length){let m=Math.floor(a.length/2);a.sort((f,g)=>f.bandwidth-g.bandwidth),u.push(a[m])}for(let m of e)(m.type==r.TEXT||m.type==r.IMAGE||m.type==r.CHAPTER)&&u.push(m);return u}static defaultManifestPreprocessorTXml(e){return Pt.referenceParametersAndReturn([e],e)}static defaultCatalogPreprocessor(e){return Pt.referenceParametersAndReturn([e],e)}};/*! @license
413
+ * Shaka Player
414
+ * Copyright 2016 Google LLC
415
+ * SPDX-License-Identifier: Apache-2.0
416
+ */var fn=class{constructor(){l(this,"open_");l(this,"closed_");this.open_=null,this.closed_=[]}update(e){return this.open_==null?(this.start_(e),!0):this.update_(e)}getTimeSpentIn(e){let t=0;this.open_&&this.open_.state==e&&(t+=this.open_.duration);for(let i of this.closed_)t+=i.state==e?i.duration:0;return t}getCopy(){let e=i=>({timestamp:i.timestamp,state:i.state,duration:i.duration}),t=[];for(let i of this.closed_)t.push(e(i));return this.open_&&t.push(e(this.open_)),t}start_(e){v.assert(this.open_==null,"There must be no open entry in order when we start"),p.v1("Changing Player state to",e),this.open_={timestamp:this.getNowInSeconds_(),state:e,duration:0}}update_(e){v.assert(this.open_,"There must be an open entry in order to update it");let t=this.getNowInSeconds_();return this.open_.duration=t-this.open_.timestamp,this.open_.state==e?!1:(p.v1("Changing Player state to",e),this.closed_.push(this.open_),this.open_={timestamp:t,state:e,duration:0},!0)}getNowInSeconds_(){return Date.now()/1e3}};/*! @license
417
+ * Shaka Player
418
+ * Copyright 2016 Google LLC
419
+ * SPDX-License-Identifier: Apache-2.0
420
+ */var gn=class{constructor(){l(this,"currentVariant_");l(this,"currentText_");l(this,"history_");this.currentVariant_=null,this.currentText_=null,this.history_=[]}updateCurrentVariant(e,t){this.currentVariant_!=e&&(this.currentVariant_=e,this.history_.push({timestamp:this.getNowInSeconds_(),id:e.id,type:"variant",fromAdaptation:t,bandwidth:e.bandwidth}))}updateCurrentText(e,t){this.currentText_!=e&&(this.currentText_=e,this.history_.push({timestamp:this.getNowInSeconds_(),id:e.id,type:"text",fromAdaptation:t,bandwidth:null}))}getCopy(){let e=[];for(let t of this.history_)e.push(this.clone_(t));return e}getNowInSeconds_(){return Date.now()/1e3}clone_(e){return{timestamp:e.timestamp,id:e.id,type:e.type,fromAdaptation:e.fromAdaptation,bandwidth:e.bandwidth}}};/*! @license
421
+ * Shaka Player
422
+ * Copyright 2016 Google LLC
423
+ * SPDX-License-Identifier: Apache-2.0
424
+ */var tr=class{constructor(){l(this,"width_");l(this,"height_");l(this,"currentCodecs_");l(this,"totalDroppedFrames_");l(this,"totalDecodedFrames_");l(this,"totalCorruptedFrames_");l(this,"totalStallsDetected_");l(this,"totalGapsJumped_");l(this,"completionPercent_");l(this,"loadLatencySeconds_");l(this,"timeToFirstFrameSeconds_");l(this,"manifestTimeSeconds_");l(this,"drmTimeSeconds_");l(this,"licenseTimeSeconds_");l(this,"liveLatencySeconds_");l(this,"maxSegmentDurationSeconds_");l(this,"currentStreamBandwidth_");l(this,"bandwidthEstimate_");l(this,"manifestSizeBytes_");l(this,"bytesDownloaded_");l(this,"nonFatalErrorCount_");l(this,"manifestPeriodCount_");l(this,"manifestGapCount_");l(this,"stateHistory_");l(this,"switchHistory_");this.width_=NaN,this.height_=NaN,this.currentCodecs_="",this.totalDroppedFrames_=NaN,this.totalDecodedFrames_=NaN,this.totalCorruptedFrames_=NaN,this.totalStallsDetected_=NaN,this.totalGapsJumped_=NaN,this.completionPercent_=NaN,this.loadLatencySeconds_=NaN,this.timeToFirstFrameSeconds_=NaN,this.manifestTimeSeconds_=NaN,this.drmTimeSeconds_=NaN,this.licenseTimeSeconds_=NaN,this.liveLatencySeconds_=NaN,this.maxSegmentDurationSeconds_=NaN,this.currentStreamBandwidth_=NaN,this.bandwidthEstimate_=NaN,this.manifestSizeBytes_=NaN,this.bytesDownloaded_=NaN,this.nonFatalErrorCount_=0,this.manifestPeriodCount_=NaN,this.manifestGapCount_=NaN,this.stateHistory_=new fn,this.switchHistory_=new gn}setDroppedFrames(e,t){this.totalDroppedFrames_=e,this.totalDecodedFrames_=t}setCorruptedFrames(e){this.totalCorruptedFrames_=e}setStallsDetected(e){this.totalStallsDetected_=e}setGapsJumped(e){this.totalGapsJumped_=e}setResolution(e,t){this.width_=e,this.height_=t}setCodecs(e){this.currentCodecs_=e}setLoadLatency(e){e>=0&&(this.loadLatencySeconds_=e)}setTimeToFirstFrame(e){e>=0&&(this.timeToFirstFrameSeconds_=e)}setManifestTime(e){e>=0&&(this.manifestTimeSeconds_=e)}setCompletionPercent(e){isNaN(this.completionPercent_)?this.completionPercent_=e:this.completionPercent_=Math.max(this.completionPercent_,e)}setDrmTime(e){e>=0&&(this.drmTimeSeconds_=e)}setLicenseTime(e){e>=0&&(this.licenseTimeSeconds_=e)}setLiveLatency(e){e>=0&&(this.liveLatencySeconds_=e)}setMaxSegmentDuration(e){e>=0&&(this.maxSegmentDurationSeconds_=e)}setCurrentStreamBandwidth(e){this.currentStreamBandwidth_=e}setBandwidthEstimate(e){this.bandwidthEstimate_=e}setManifestSize(e){this.manifestSizeBytes_=e}addBytesDownloaded(e){isNaN(this.bytesDownloaded_)?this.bytesDownloaded_=e:this.bytesDownloaded_+=e}addNonFatalError(){this.nonFatalErrorCount_++}setManifestPeriodCount(e){this.manifestPeriodCount_=e}setManifestGapCount(e){this.manifestGapCount_=e}getStateHistory(){return this.stateHistory_}getSwitchHistory(){return this.switchHistory_}getBlob(){return{width:this.width_,height:this.height_,currentCodecs:this.currentCodecs_,streamBandwidth:this.currentStreamBandwidth_,decodedFrames:this.totalDecodedFrames_,droppedFrames:this.totalDroppedFrames_,corruptedFrames:this.totalCorruptedFrames_,stallsDetected:this.totalStallsDetected_,gapsJumped:this.totalGapsJumped_,estimatedBandwidth:this.bandwidthEstimate_,completionPercent:this.completionPercent_,loadLatency:this.loadLatencySeconds_,timeToFirstFrame:this.timeToFirstFrameSeconds_,manifestTimeSeconds:this.manifestTimeSeconds_,drmTimeSeconds:this.drmTimeSeconds_,playTime:this.stateHistory_.getTimeSpentIn("playing"),pauseTime:this.stateHistory_.getTimeSpentIn("paused"),bufferingTime:this.stateHistory_.getTimeSpentIn("buffering"),licenseTime:this.licenseTimeSeconds_,liveLatency:this.liveLatencySeconds_,maxSegmentDuration:this.maxSegmentDurationSeconds_,manifestSizeBytes:this.manifestSizeBytes_,bytesDownloaded:this.bytesDownloaded_,nonFatalErrorCount:this.nonFatalErrorCount_,manifestPeriodCount:this.manifestPeriodCount_,manifestGapCount:this.manifestGapCount_,stateHistory:this.stateHistory_.getCopy(),switchHistory:this.switchHistory_.getCopy()}}static getEmptyBlob(){return{width:NaN,height:NaN,currentCodecs:"",streamBandwidth:NaN,decodedFrames:NaN,droppedFrames:NaN,corruptedFrames:NaN,stallsDetected:NaN,gapsJumped:NaN,estimatedBandwidth:NaN,completionPercent:NaN,loadLatency:NaN,timeToFirstFrame:NaN,manifestTimeSeconds:NaN,drmTimeSeconds:NaN,playTime:NaN,pauseTime:NaN,bufferingTime:NaN,licenseTime:NaN,liveLatency:NaN,maxSegmentDuration:NaN,manifestSizeBytes:NaN,bytesDownloaded:NaN,nonFatalErrorCount:NaN,manifestPeriodCount:NaN,manifestGapCount:NaN,switchHistory:[],stateHistory:[]}}};/*! @license
425
+ * Shaka Player
426
+ * Copyright 2016 Google LLC
427
+ * SPDX-License-Identifier: Apache-2.0
428
+ */var Ps=class y extends Le{constructor(t,i,r,s){super();l(this,"assetUri_");l(this,"mimeType_");l(this,"networkingEngine_");l(this,"startTime_");l(this,"currentAdaptationSetCriteria_");l(this,"startTimeOfDrm_");l(this,"createDrmEngine_");l(this,"manifestFilterer_");l(this,"manifestPlayerInterface_");l(this,"config_");l(this,"manifest_");l(this,"parserFactory_");l(this,"parser_");l(this,"parserEntrusted_");l(this,"regionTimeline_");l(this,"regionTimelineEntrusted_");l(this,"drmEngine_");l(this,"drmEngineEntrusted_");l(this,"abrManager_");l(this,"segmentPrefetchById_");l(this,"segmentPrefetchEntrusted_");l(this,"qualityObserver_");l(this,"stats_");l(this,"manifestPromise_");l(this,"successPromise_");l(this,"eventHandoffTarget_");l(this,"destroyed_");l(this,"allowPrefetch_");l(this,"prefetchedVariant_");l(this,"prefetchedTextStream_");l(this,"hasBeenAttached_");l(this,"queuedOperations_");l(this,"latePhaseQueuedOperations_");l(this,"isPreload_");let n=s;this.assetUri_=t,this.mimeType_=i,this.networkingEngine_=n.networkingEngine,this.startTime_=r,this.currentAdaptationSetCriteria_=null,this.startTimeOfDrm_=0,this.createDrmEngine_=n.createDrmEngine,this.manifestFilterer_=n.manifestFilterer,this.manifestPlayerInterface_=n.manifestPlayerInterface,this.config_=n.config,this.manifest_=null,this.parserFactory_=null,this.parser_=null,this.parserEntrusted_=!1,this.regionTimeline_=n.regionTimeline,this.regionTimelineEntrusted_=!1,this.drmEngine_=null,this.drmEngineEntrusted_=!1,this.abrManager_=null,this.segmentPrefetchById_=new Map,this.segmentPrefetchEntrusted_=!1,this.qualityObserver_=n.qualityObserver,this.stats_=new tr,this.manifestPromise_=Promise.withResolvers(),this.successPromise_=Promise.withResolvers(),this.eventHandoffTarget_=null,this.destroyed_=!1,this.allowPrefetch_=n.allowPrefetch,this.prefetchedVariant_=null,this.prefetchedTextStream_=null,this.hasBeenAttached_=!1,this.queuedOperations_=[],this.latePhaseQueuedOperations_=[],this.isPreload_=!0}markIsLoad(){this.isPreload_=!1}addQueuedOperation(t,i){let r=t?this.latePhaseQueuedOperations_:this.queuedOperations_;r?r.push(i):i()}stopQueuingLatePhaseQueuedOperations(){if(this.latePhaseQueuedOperations_)for(let t of this.latePhaseQueuedOperations_)t();this.latePhaseQueuedOperations_=null}setEventHandoffTarget(t){if(this.eventHandoffTarget_=t,this.hasBeenAttached_=!0,this.queuedOperations_)for(let i of this.queuedOperations_)i();this.queuedOperations_=null}setOffsetToStartTime(t){this.startTime_&&t&&(typeof this.startTime_=="number"?this.startTime_+=t:this.startTime_.setTime(this.startTime_.getTime()+t*1e3))}getStartTime(){return this.startTime_}getStartTimeOfDRM(){return this.startTimeOfDrm_}getMimeType(){return this.mimeType_}getAssetUri(){return this.assetUri_}getManifest(){return this.manifest_}getParserFactory(){return this.parserFactory_}getCurrentAdaptationSetCriteria(){return this.currentAdaptationSetCriteria_}receiveParser(){return this.parserEntrusted_=!0,this.parser_}getParser(){return this.parser_}receiveRegionTimeline(){return this.regionTimelineEntrusted_=!0,this.regionTimeline_}getRegionTimeline(){return this.regionTimeline_}getQualityObserver(){return this.qualityObserver_}getStats(){return this.stats_}getManifestFilterer(){return this.manifestFilterer_}receiveDrmEngine(){return this.drmEngineEntrusted_=!0,this.drmEngine_}getDrmEngine(){return this.drmEngine_}setPrefetchVariant(t){this.prefetchedVariant_=t}getPrefetchedVariant(){return this.prefetchedVariant_}getPrefetchedVariantTrack(){return this.prefetchedVariant_?se.variantToTrack(this.prefetchedVariant_):null}getPrefetchedTextTrack(){return this.prefetchedTextStream_?se.textStreamToTrack(this.prefetchedTextStream_):null}receiveSegmentPrefetchesById(){return this.segmentPrefetchEntrusted_=!0,this.segmentPrefetchById_}attachAdaptationSetCriteria(t){this.currentAdaptationSetCriteria_=t}attachManifest(t,i,r){this.manifest_=t,this.parser_=i,this.parserFactory_=r}start(){(async()=>{await Promise.resolve();try{await this.parseManifestInner_(),this.throwIfDestroyed_(),de.isMediaKeysPolyfilled("webkit")||(await this.initializeDrm(),this.throwIfDestroyed_()),await this.validatePrefetchedVariant_(),this.throwIfDestroyed_(),this.allowPrefetch_&&(await this.prefetchInner_(),this.throwIfDestroyed_()),this.allowPrefetch_&&this.drmEngine_&&(await this.drmEngine_.waitForActiveRequests(),this.throwIfDestroyed_()),this.successPromise_.resolve()}catch(t){(!(t instanceof h)||t.code!=h.Code.OPERATION_ABORTED&&t.code!=h.Code.OBJECT_DESTROYED)&&this.successPromise_.reject(t)}})()}dispatchEvent(t){return this.eventHandoffTarget_?this.eventHandoffTarget_.dispatchEvent(t):super.dispatchEvent(t)}onError(t){t.severity===h.Severity.CRITICAL&&(this.successPromise_.reject(t),this.destroy());let i=U.EventName.Error,r=this.makeEvent_(i,new Map().set("detail",t));this.dispatchEvent(r),r.defaultPrevented&&(t.handled=!0)}throwIfDestroyed_(){if(this.isDestroyed())throw new h(h.Severity.CRITICAL,h.Category.PLAYER,h.Code.OBJECT_DESTROYED)}makeStateChangeEvent_(t){this.dispatchEvent(new U(U.EventName.OnStateChange,new Map().set("state",t)))}makeEvent_(t,i){return new U(t,i)}async parseManifestInner_(){this.makeStateChangeEvent_("manifest-parser"),this.parser_||(this.parserFactory_=me.getFactory(this.assetUri_,this.mimeType_),v.assert(this.parserFactory_,"Must have manifest parser"),this.parser_=this.parserFactory_(),this.parser_.configure(this.config_.manifest,()=>this.isPreload_));let t=Date.now()/1e3;this.makeStateChangeEvent_("manifest"),this.manifest_||(this.manifest_=await this.parser_.start(this.assetUri_,this.manifestPlayerInterface_),y.filterForAVVariants_(this.manifest_),await this.chooseInitialVariant_()),this.manifestPromise_.resolve();let i=this.makeEvent_(U.EventName.ManifestParsed);if(await Promise.resolve(),this.dispatchEvent(i),this.manifest_.variants.length==0)throw new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.NO_VARIANTS);if(y.filterForAVVariants_(this.manifest_),this.manifestFilterer_.applyRestrictions(this.manifest_)){let a=this.makeEvent_(U.EventName.TracksChanged);await Promise.resolve(),this.throwIfDestroyed_(),this.dispatchEvent(a)}let n=Date.now()/1e3-t;this.stats_.setManifestTime(n)}async initializeDrm(t){if(!this.manifest_||this.drmEngine_)return;this.makeStateChangeEvent_("drm-engine"),this.startTimeOfDrm_=Date.now()/1e3,this.drmEngine_=this.createDrmEngine_(),this.manifestFilterer_.setDrmEngine(this.drmEngine_),this.drmEngine_.configure(this.config_.drm,()=>this.isPreload_);let i=se.getPlayableVariants(this.manifest_.variants),r=!0;if(this.manifest_&&this.manifest_.presentationTimeline&&(r=this.manifest_.presentationTimeline.isDynamic()),await this.drmEngine_.initForPlayback(i,this.manifest_.offlineSessionIds,r),this.throwIfDestroyed_(),t&&(await this.drmEngine_.attach(t),this.throwIfDestroyed_()),this.currentAdaptationSetCriteria_){let n=this.currentAdaptationSetCriteria_.getConfiguration();n.keySystem=this.keySystem_(),this.currentAdaptationSetCriteria_.configure(n)}if(await this.manifestFilterer_.filterManifest(this.manifest_)){let n=this.makeEvent_(U.EventName.TracksChanged);await Promise.resolve(),this.dispatchEvent(n)}}reconfigure(t){this.config_=t}configure(t,i){let r=Pt.convertToConfigObject(t,i);st.mergeConfigObjects(this.config_,r),this.reconfigurePrefetched_()}getConfiguration(){return Ne.cloneObject(this.config_)}async chooseInitialVariant_(){if(!this.currentAdaptationSetCriteria_){this.currentAdaptationSetCriteria_=this.config_.adaptationSetCriteriaFactory();let t={preferredAudio:this.config_.preferredAudio,preferredVideo:this.config_.preferredVideo,language:"",role:"",videoRole:"",channelCount:0,hdrLevel:"",spatialAudio:!1,videoLayout:"",audioLabel:"",videoLabel:"",preferredAudioCodecs:[],preferredAudioChannelCount:0,codecSwitchingStrategy:this.config_.mediaSource.codecSwitchingStrategy,audioCodec:"",activeAudioCodec:"",activeAudioChannelCount:0,keySystem:this.keySystem_()};st.addDeprecatedConfigFields(t),this.currentAdaptationSetCriteria_.configure(t)}this.shouldCreateSegmentIndexBeforeDrmEngineInitialization_()&&(this.prefetchedVariant_=this.configureAbrManagerAndChooseVariant_(),this.prefetchedVariant_&&await this.createSegmentIndexFromVariant_(this.prefetchedVariant_))}shouldCreateSegmentIndexBeforeDrmEngineInitialization_(){return this.prefetchedVariant_||(v.assert(this.manifest_,"The manifest should already be parsed."),!this.manifest_.variants.length)?!1:this.manifest_.variants.length==1||this.manifest_.type==me.HLS}async validatePrefetchedVariant_(){this.prefetchedVariant_&&!this.manifest_.variants.includes(this.prefetchedVariant_)&&(await this.closeSegmentIndexFromVariant_(this.prefetchedVariant_),this.prefetchedVariant_=this.configureAbrManagerAndChooseVariant_(),this.prefetchedVariant_&&await this.createSegmentIndexFromVariant_(this.prefetchedVariant_))}async prefetchInner_(){if(!this.prefetchedVariant_){let t=this.configureAbrManagerAndChooseVariant_();t&&(this.prefetchedVariant_=t)}if(this.prefetchedVariant_){let t=this.manifest_.presentationTimeline.isLive(),i=[],r=this.prefetchedVariant_;r.video&&i.push(this.prefetchStream_(r.video,t)),r.audio&&i.push(this.prefetchStream_(r.audio,t));let s=this.chooseTextStream_(r);s&&(i.push(this.prefetchStream_(s,t)),this.prefetchedTextStream_=s),await Promise.all(i)}}configureAbrManagerAndChooseVariant_(){if(v.assert(this.currentAdaptationSetCriteria_,"Must have an AdaptationSetCriteria"),!this.abrManager_){let s=this.config_.abrFactory;this.abrManager_=s(),this.abrManager_.configure(this.config_.abr)}let t=this.manifest_.isLowLatency&&this.config_.streaming.lowLatencyMode,i=se.getPlayableVariants(this.manifest_.variants),r=this.currentAdaptationSetCriteria_.create(i);return this.abrManager_.setVariants(Array.from(r.values()),t),this.abrManager_.chooseVariant(!0)}chooseTextStream_(t){let i=null,r=this.config_.preferredText;for(let s of r){if(!s.language)continue;let n=se.filterStreamsByLanguageAndRole(this.manifest_.textStreams,s.language,s.role,s.forced);if(n.length){i=n[0];break}}if(!i&&(t!=null&&t.audio)&&this.config_.accessibility.handleForcedSubtitlesAutomatically){let s=se.filterStreamsByLanguageAndRole(this.manifest_.textStreams,t.audio.language,"",!0);s.length&&(i=s[0])}return i}async prefetchStream_(t,i){let r=this.config_.streaming.segmentPrefetchLimit||2,s=new Xr(r,t,(c,d,u)=>jr.dispatchFetch(c,d,u||null,this.config_.streaming.retryParameters,this.networkingEngine_,this.isPreload_),!1);this.segmentPrefetchById_.set(t.id,s),t.segmentIndex||await t.createSegmentIndex();let n=typeof this.startTime_=="number"?this.startTime_:0,a=t.segmentIndex.getIteratorForTime(n),o=null;a&&(o=a.current(),o||(o=a.next().value)),o||(o=t.segmentIndex.earliestReference()),o&&(i?o.initSegmentReference&&await s.prefetchInitSegment(o.initSegmentReference):await s.prefetchSegmentsByTime(o.startTime))}async reconfigurePrefetched_(){if(!this.prefetchedVariant_)return;let t=this.manifest_.presentationTimeline.isLive(),i=[],r=d=>{d&&(this.segmentPrefetchById_.has(d.id)&&(this.segmentPrefetchById_.get(d.id).clearAll(),this.segmentPrefetchById_.delete(d.id)),d.segmentIndex&&d.closeSegmentIndex&&i.push(d.closeSegmentIndex()))},s=()=>{let d=this.prefetchedVariant_;for(let u of[d.video,d.audio])r(u);this.prefetchedTextStream_=null},n=()=>{r(this.prefetchedTextStream_),this.prefetchedTextStream_=null},a=this.currentAdaptationSetCriteria_.getConfiguration(),o={preferredAudio:this.config_.preferredAudio,preferredVideo:this.config_.preferredVideo,language:"",role:"",videoRole:"",channelCount:0,hdrLevel:"",spatialAudio:!1,videoLayout:"",audioLabel:"",videoLabel:"",preferredAudioCodecs:[],preferredAudioChannelCount:0,codecSwitchingStrategy:this.config_.mediaSource.codecSwitchingStrategy,audioCodec:"",activeAudioCodec:"",activeAudioChannelCount:0,keySystem:this.keySystem_()};if(st.addDeprecatedConfigFields(o),Ne.alphabeticalKeyOrderStringify(a)!=Ne.alphabeticalKeyOrderStringify(o)&&(this.currentAdaptationSetCriteria_.configure(o),s(),this.prefetchedVariant_=this.configureAbrManagerAndChooseVariant_()),this.prefetchedVariant_){let d=this.chooseTextStream_(this.prefetchedVariant_);d?d!=this.prefetchedTextStream_&&(n(),this.prefetchedTextStream_=d):n()}else n();await Promise.all(i);let c=[];if(this.prefetchedVariant_){let d=this.prefetchedVariant_;for(let u of[d.video,d.audio])c.push(this.prefetchStream_(u,t));this.prefetchedTextStream_&&c.push(this.prefetchStream_(this.prefetchedTextStream_,t))}await Promise.all(c)}async createSegmentIndexFromVariant_(t){let i=[];for(let r of[t.video,t.audio])r&&!r.segmentIndex&&i.push(r.createSegmentIndex());i.length>0&&await Promise.all(i)}async closeSegmentIndexFromVariant_(t){let i=[];for(let r of[t.video,t.audio])r&&r.segmentIndex&&r.closeSegmentIndex&&i.push(r.closeSegmentIndex());i.length>0&&await Promise.all(i)}waitForFinish(){return this.successPromise_.promise}waitForManifest(){let t=[this.manifestPromise_.promise,this.successPromise_.promise];return Promise.race(t)}async destroy(){if(this.destroyed_=!0,this.parser_&&!this.parserEntrusted_&&await this.parser_.stop(),this.abrManager_&&this.abrManager_.release(),this.regionTimeline_&&!this.regionTimelineEntrusted_&&this.regionTimeline_.release(),this.drmEngine_&&!this.drmEngineEntrusted_&&await this.drmEngine_.destroy(),this.segmentPrefetchById_.size>0&&!this.segmentPrefetchEntrusted_)for(let t of this.segmentPrefetchById_.values())t.clearAll()}isDestroyed(){return this.destroyed_}hasBeenAttached(){return this.hasBeenAttached_}keySystem_(){return de.keySystem(this.drmEngine_?this.drmEngine_.getDrmInfo():null)}static filterForAVVariants_(t){let i=r=>r.video&&r.audio||r.video&&r.video.codecs.includes(",");t.variants.some(i)&&(p.debug("Found variant with audio and video content, so filtering out audio-only content."),t.variants=t.variants.filter(i))}};/*! @license
429
+ * Shaka Player
430
+ * Copyright 2016 Google LLC
431
+ * SPDX-License-Identifier: Apache-2.0
432
+ */var _n=class extends Le{constructor(t){super();l(this,"timeline_");l(this,"previousBase_");this.timeline_=t,this.previousBase_=null}release(){this.timeline_=null,super.release()}poll(t,i){if(!this.timeline_)return;let r=this.timeline_.getProgramDateTimeRegionForTime(t);if(!r)return;let s=r.pdt-r.start;if(this.previousBase_==null){this.previousBase_=s;return}Math.abs(s-this.previousBase_)>.5&&this.dispatchEvent(new U("change",new Map([["programDateTime",new Date(r.pdt*1e3)],["timestamp",r.start]]))),this.previousBase_=s}};/*! @license
433
+ * Shaka Player
434
+ * Copyright 2016 Google LLC
435
+ * SPDX-License-Identifier: Apache-2.0
436
+ */var $r=class $r extends Le{constructor(t,i){super();l(this,"timeline_");l(this,"startsPastZero_");l(this,"oldPosition_");l(this,"rules_");l(this,"eventManager_");this.timeline_=t,this.startsPastZero_=i,this.oldPosition_=new Map;let r=$r.RelativePosition_,s=r.BEFORE_THE_REGION,n=r.IN_THE_REGION,a=r.AFTER_THE_REGION;this.rules_=[{weWere:null,weAre:n,invoke:(o,c)=>this.onEvent_("enter",o,c)},{weWere:s,weAre:n,invoke:(o,c)=>this.onEvent_("enter",o,c)},{weWere:a,weAre:n,invoke:(o,c)=>this.onEvent_("enter",o,c)},{weWere:n,weAre:s,invoke:(o,c)=>this.onEvent_("exit",o,c)},{weWere:n,weAre:a,invoke:(o,c)=>this.onEvent_("exit",o,c)},{weWere:s,weAre:a,invoke:(o,c)=>{c?this.onEvent_("skip",o,c):(this.onEvent_("enter",o,c),this.onEvent_("exit",o,c))}},{weWere:a,weAre:s,invoke:(o,c)=>this.onEvent_("skip",o,c)}],this.eventManager_=new ue,this.eventManager_.listen(this.timeline_,"regionremove",o=>{let c=o.region;this.oldPosition_.delete(c)})}release(){this.timeline_=null,this.oldPosition_.clear(),this.eventManager_.release(),this.eventManager_=null,super.release()}poll(t,i){if(!(this.startsPastZero_&&t==0)){this.startsPastZero_=!1;for(let r of this.timeline_.regions()){let s=this.oldPosition_.get(r),n=$r.determinePositionRelativeTo_(r,t);this.oldPosition_.set(r,n);for(let a of this.rules_)a.weWere==s&&a.weAre==n&&a.invoke(r,i)}}}onEvent_(t,i,r){let s=new U(t,new Map([["region",i],["seeking",r]]));this.dispatchEvent(s)}static determinePositionRelativeTo_(t,i){let r=$r.RelativePosition_;return i<t.startTime?r.BEFORE_THE_REGION:i>t.endTime?r.AFTER_THE_REGION:r.IN_THE_REGION}};l($r,"RelativePosition_",{BEFORE_THE_REGION:1,IN_THE_REGION:2,AFTER_THE_REGION:3});var Ur=$r;/*! @license
437
+ * Shaka Player
438
+ * Copyright 2016 Google LLC
439
+ * SPDX-License-Identifier: Apache-2.0
440
+ */var Lr={ach:"Lwo",ady:"\u0410\u0434\u044B\u0433\u044D\u0431\u0437\u044D",af:"Afrikaans","af-NA":"Afrikaans (Namibia)","af-ZA":"Afrikaans (South Africa)",ak:"T\u0255\u0265i",ar:"\u0627\u0644\u0639\u0631\u0628\u064A\u0629","ar-AR":"\u0627\u0644\u0639\u0631\u0628\u064A\u0629","ar-MA":"\u0627\u0644\u0639\u0631\u0628\u064A\u0629","ar-SA":"\u0627\u0644\u0639\u0631\u0628\u064A\u0629 (\u0627\u0644\u0633\u0639\u0648\u062F\u064A\u0629)","ay-BO":"Aymar aru",az:"Az\u0259rbaycan dili","az-AZ":"Az\u0259rbaycan dili","be-BY":"\u0411\u0435\u043B\u0430\u0440\u0443\u0441\u043A\u0430\u044F",bg:"\u0411\u044A\u043B\u0433\u0430\u0440\u0441\u043A\u0438","bg-BG":"\u0411\u044A\u043B\u0433\u0430\u0440\u0441\u043A\u0438",bn:"\u09AC\u09BE\u0982\u09B2\u09BE","bn-IN":"\u09AC\u09BE\u0982\u09B2\u09BE (\u09AD\u09BE\u09B0\u09A4)","bn-BD":"\u09AC\u09BE\u0982\u09B2\u09BE(\u09AC\u09BE\u0982\u09B2\u09BE\u09A6\u09C7\u09B6)","bs-BA":"Bosanski",ca:"Catal\xE0","ca-ES":"Catal\xE0",cak:"Maya Kaqchikel","ck-US":"\u13E3\u13B3\u13A9 (tsalagi)",cs:"\u010Ce\u0161tina","cs-CZ":"\u010Ce\u0161tina",cy:"Cymraeg","cy-GB":"Cymraeg",da:"Dansk","da-DK":"Dansk",de:"Deutsch","de-AT":"Deutsch (\xD6sterreich)","de-DE":"Deutsch (Deutschland)","de-CH":"Deutsch (Schweiz)",dsb:"Dolnoserb\u0161\u0107ina",el:"\u0395\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC","el-GR":"\u0395\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",en:"English","en-GB":"English (UK)","en-AU":"English (Australia)","en-CA":"English (Canada)","en-IE":"English (Ireland)","en-IN":"English (India)","en-PI":"English (Pirate)","en-UD":"English (Upside Down)","en-US":"English (US)","en-ZA":"English (South Africa)","en@pirate":"English (Pirate)",eo:"Esperanto","eo-EO":"Esperanto",es:"Espa\xF1ol","es-AR":"Espa\xF1ol (Argentine)","es-419":"Espa\xF1ol (Latinoam\xE9rica)","es-CL":"Espa\xF1ol (Chile)","es-CO":"Espa\xF1ol (Colombia)","es-EC":"Espa\xF1ol (Ecuador)","es-ES":"Espa\xF1ol (Espa\xF1a)","es-LA":"Espa\xF1ol (Latinoam\xE9rica)","es-NI":"Espa\xF1ol (Nicaragua)","es-MX":"Espa\xF1ol (M\xE9xico)","es-US":"Espa\xF1ol (Estados Unidos)","es-VE":"Espa\xF1ol (Venezuela)",et:"eesti keel","et-EE":"Eesti (Estonia)",eu:"Euskara","eu-ES":"Euskara",fa:"\u0641\u0627\u0631\u0633\u06CC","fa-IR":"\u0641\u0627\u0631\u0633\u06CC","fb-LT":"Leet Speak",ff:"Fulah",fi:"Suomi","fi-FI":"Suomi","fo-FO":"F\xF8royskt",fr:"Fran\xE7ais","fr-CA":"Fran\xE7ais (Canada)","fr-FR":"Fran\xE7ais (France)","fr-BE":"Fran\xE7ais (Belgique)","fr-CH":"Fran\xE7ais (Suisse)","fy-NL":"Frysk",ga:"Gaeilge","ga-IE":"Gaeilge (Gaelic)",gl:"Galego","gl-ES":"Galego","gn-PY":"Ava\xF1e'\u1EBD","gu-IN":"\u0A97\u0AC1\u0A9C\u0AB0\u0ABE\u0AA4\u0AC0","gx-GR":"\u1F19\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AE \u1F00\u03C1\u03C7\u03B1\u03AF\u03B1",he:"\u05E2\u05D1\u05E8\u05D9\u05EA\u200F","he-IL":"\u05E2\u05D1\u05E8\u05D9\u05EA\u200F",hi:"\u0939\u093F\u0928\u094D\u0926\u0940","hi-IN":"\u0939\u093F\u0928\u094D\u0926\u0940",hr:"Hrvatski","hr-HR":"Hrvatski",hsb:"Hornjoserb\u0161\u0107ina",ht:"Krey\xF2l",hu:"Magyar","hu-HU":"Magyar","hy-AM":"\u0540\u0561\u0575\u0565\u0580\u0565\u0576",id:"Bahasa Indonesia","id-ID":"Bahasa Indonesia",is:"\xCDslenska","is-IS":"\xCDslenska (Iceland)",it:"Italiano","it-IT":"Italiano",ja:"\u65E5\u672C\u8A9E","ja-JP":"\u65E5\u672C\u8A9E","jv-ID":"Basa Jawa","ka-GE":"\u10E5\u10D0\u10E0\u10D7\u10E3\u10DA\u10D8","kk-KZ":"\u049A\u0430\u0437\u0430\u049B\u0448\u0430",km:"\u1797\u17B6\u179F\u17B6\u1781\u17D2\u1798\u17C2\u179A","km-KH":"\u1797\u17B6\u179F\u17B6\u1781\u17D2\u1798\u17C2\u179A",kab:"Taqbaylit",kn:"\u0C95\u0CA8\u0CCD\u0CA8\u0CA1","kn-IN":"\u0C95\u0CA8\u0CCD\u0CA8\u0CA1 (India)",ko:"\uD55C\uAD6D\uC5B4","ko-KR":"\uD55C\uAD6D\uC5B4 (\u97E9\u56FD)",ku:"Kurd\xEE","ku-TR":"Kurd\xEE",la:"Latin","la-VA":"Latin",lb:"L\xEBtzebuergesch","li-NL":"L\xE8mb\xF6rgs",lt:"Lietuvi\u0173","lt-LT":"Lietuvi\u0173",lv:"Latvie\u0161u","lv-LV":"Latvie\u0161u",mai:"\u092E\u0948\u0925\u093F\u0932\u0940, \u09AE\u09C8\u09A5\u09BF\u09B2\u09C0","mg-MG":"Malagasy",mk:"\u041C\u0430\u043A\u0435\u0434\u043E\u043D\u0441\u043A\u0438","mk-MK":"\u041C\u0430\u043A\u0435\u0434\u043E\u043D\u0441\u043A\u0438 (\u041C\u0430\u043A\u0435\u0434\u043E\u043D\u0441\u043A\u0438)",ml:"\u0D2E\u0D32\u0D2F\u0D3E\u0D33\u0D02","ml-IN":"\u0D2E\u0D32\u0D2F\u0D3E\u0D33\u0D02","mn-MN":"\u041C\u043E\u043D\u0433\u043E\u043B",mr:"\u092E\u0930\u093E\u0920\u0940","mr-IN":"\u092E\u0930\u093E\u0920\u0940",ms:"Bahasa Melayu","ms-MY":"Bahasa Melayu",mt:"Malti","mt-MT":"Malti",my:"\u1017\u1019\u102C\u1005\u1000\u102C",nb:"Norsk (bokm\xE5l)","nb-NO":"Norsk (bokm\xE5l)",ne:"\u0928\u0947\u092A\u093E\u0932\u0940","ne-NP":"\u0928\u0947\u092A\u093E\u0932\u0940",nl:"Nederlands","nl-BE":"Nederlands (Belgi\xEB)","nl-NL":"Nederlands (Nederland)","nn-NO":"Norsk (nynorsk)",no:"Norsk",oc:"Occitan","or-IN":"\u0B13\u0B21\u0B3C\u0B3F\u0B06",pa:"\u0A2A\u0A70\u0A1C\u0A3E\u0A2C\u0A40","pa-IN":"\u0A2A\u0A70\u0A1C\u0A3E\u0A2C\u0A40 (\u0A2D\u0A3E\u0A30\u0A24 \u0A28\u0A42\u0A70)",pl:"Polski","pl-PL":"Polski","ps-AF":"\u067E\u069A\u062A\u0648",pt:"Portugu\xEAs","pt-BR":"Portugu\xEAs (Brasil)","pt-PT":"Portugu\xEAs (Portugal)","qu-PE":"Qhichwa","rm-CH":"Rumantsch",ro:"Rom\xE2n\u0103","ro-RO":"Rom\xE2n\u0103",ru:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439","ru-RU":"\u0420\u0443\u0441\u0441\u043A\u0438\u0439","sa-IN":"\u0938\u0902\u0938\u094D\u0915\u0943\u0924\u092E\u094D","se-NO":"Davvis\xE1megiella","si-LK":"\u0DB4\u0DC5\u0DCF\u0DAD",sk:"Sloven\u010Dina","sk-SK":"Sloven\u010Dina (Slovakia)",sl:"Sloven\u0161\u010Dina","sl-SI":"Sloven\u0161\u010Dina","so-SO":"Soomaaliga",sq:"Shqip","sq-AL":"Shqip",sr:"\u0421\u0440\u043F\u0441\u043A\u0438","sr-RS":"\u0421\u0440\u043F\u0441\u043A\u0438 (Serbia)",su:"Basa Sunda",sv:"Svenska","sv-SE":"Svenska",sw:"Kiswahili","sw-KE":"Kiswahili",ta:"\u0BA4\u0BAE\u0BBF\u0BB4\u0BCD","ta-IN":"\u0BA4\u0BAE\u0BBF\u0BB4\u0BCD",te:"\u0C24\u0C46\u0C32\u0C41\u0C17\u0C41","te-IN":"\u0C24\u0C46\u0C32\u0C41\u0C17\u0C41",tg:"\u0437\u0430\u0431\u043E\u0301\u043D\u0438 \u0442\u043E\u04B7\u0438\u043A\u04E3\u0301","tg-TJ":"\u0442\u043E\u04B7\u0438\u043A\u04E3",th:"\u0E20\u0E32\u0E29\u0E32\u0E44\u0E17\u0E22","th-TH":"\u0E20\u0E32\u0E29\u0E32\u0E44\u0E17\u0E22 (\u0E1B\u0E23\u0E30\u0E40\u0E17\u0E28\u0E44\u0E17\u0E22)",tl:"Filipino","tl-PH":"Filipino",tlh:"tlhIngan-Hol",tr:"T\xFCrk\xE7e","tr-TR":"T\xFCrk\xE7e","tt-RU":"\u0442\u0430\u0442\u0430\u0440\u0447\u0430",uk:"\u0423\u043A\u0440\u0430\u0457\u043D\u0441\u044C\u043A\u0430","uk-UA":"\u0423\u043A\u0440\u0430\u0457\u043D\u0441\u044C\u043A\u0430",ur:"\u0627\u0631\u062F\u0648","ur-PK":"\u0627\u0631\u062F\u0648",uz:"O'zbek","uz-UZ":"O'zbek",vi:"Ti\u1EBFng Vi\u1EC7t","vi-VN":"Ti\u1EBFng Vi\u1EC7t","xh-ZA":"isiXhosa",yi:"\u05D9\u05D9\u05B4\u05D3\u05D9\u05E9","yi-DE":"\u05D9\u05D9\u05B4\u05D3\u05D9\u05E9 (German)",zh:"\u4E2D\u6587","zh-HANS":"\u4E2D\u6587\u7B80\u4F53","zh-HANT":"\u4E2D\u6587\u7E41\u9AD4","zh-CN":"\u4E2D\u6587\uFF08\u4E2D\u56FD\uFF09","zh-HK":"\u4E2D\u6587\uFF08\u9999\u6E2F\uFF09","zh-SG":"\u4E2D\u6587\uFF08\u65B0\u52A0\u5761\uFF09","zh-TW":"\u4E2D\u6587\uFF08\u53F0\u7063\uFF09","zu-ZA":"isiZulu",ase:"American Sign Language",bfi:"British Sign Language",bzs:"Brazilian Sign Language",csn:"Colombian Sign Language",dse:"Dutch Sign Language",dsl:"Danish Sign Language",fsl:"French Sign Language",gsg:"German Sign Language",gss:"Greek Sign Language",isg:"Irish Sign Language",ise:"Italian Sign Language",jsl:"Japanese Sign Language",mfs:"Mexican Sign Language",ncs:"Nicaraguan Sign Language",nsl:"Norwegian Sign Language",psr:"Portuguese Sign Language",sfb:"French Belgian Sign Language",sfs:"South African Sign Language",sgg:"Swiss German Sign Language",ssp:"Spanish Sign Language",swl:"Swedish Sign Language",vgt:"Flemish Sign Language"};for(let y of Object.keys(Lr))Lr[y.toLowerCase()]=Lr[y];/*! @license
441
+ * Shaka Player
442
+ * Copyright 2016 Google LLC
443
+ * SPDX-License-Identifier: Apache-2.0
444
+ */var si=class y{static flattenPayload_(e,t){if(e.lineBreak)return`
445
+ `;if(e.nestedCues.length)return e.nestedCues.map(m=>y.flattenPayload_(m,e)).join("");if(!e.payload)return e.payload;let i=[],r=e.fontWeight>=B.fontWeight.BOLD,s=e.fontStyle==B.fontStyle.ITALIC,n=e.textDecoration.includes(B.textDecoration.UNDERLINE);r&&i.push(["b"]),s&&i.push(["i"]),n&&i.push(["u"]);let a=e.color;a==""&&t&&(a=t.color);let o="",c=y.getColorName(a);c&&(o+=`.${c}`);let d=e.backgroundColor;d==""&&t&&(d=t.backgroundColor);let u=y.getColorName(d);return u&&(o+=`.bg_${u}`),o&&i.push(["c",o]),i.reduceRight((m,[f,g=""])=>`<${f}${g}>${m}</${f}>`,e.payload)}static getColorName(e){let t=e.toLowerCase(),i=t.replace(/\s/g,"").match(/^rgba?\((\d+),(\d+),(\d+),?([^,\s)]+)?/i);switch(i?t="#"+(parseInt(i[1],10)|256).toString(16).slice(1)+(parseInt(i[2],10)|256).toString(16).slice(1)+(parseInt(i[3],10)|256).toString(16).slice(1):t.startsWith("#")&&t.length>7&&(t=t.slice(0,7)),t){case"white":case"#fff":case"#ffffff":return"white";case"lime":case"#0f0":case"#00ff00":return"lime";case"cyan":case"#0ff":case"#00ffff":return"cyan";case"red":case"#f00":case"#ff0000":return"red";case"yellow":case"#ff0":case"#ffff00":return"yellow";case"magenta":case"#f0f":case"#ff00ff":return"magenta";case"blue":case"#00f":case"#0000ff":return"blue";case"black":case"#000":case"#000000":return"black"}return null}static getCuesToFlatten(e,t){let i=[];for(let r of y.removeDuplicates(e))if(r.isContainer)i.push(...y.getCuesToFlatten(r.nestedCues,r));else{let s=r.clone();s.nestedCues=[],s.payload=y.flattenPayload_(r,t),i.push(s)}return i}static removeDuplicates(e){let t=[];for(let i of e)!t.some(s=>B.equal(i,s))&&t.push(i);return t}static mapShakaCueToNativeCue(e){if(e.startTime>=e.endTime)return p.warning("Invalid cue times: "+e.startTime+" - "+e.endTime),null;let t=new VTTCue(e.startTime,e.endTime,e.payload),i=r=>{let s=5381,n=r.length;for(;n;)s=s*33^r.charCodeAt(--n);return(s>>>0).toString()};t.id=i(e.startTime.toString())+i(e.endTime.toString())+i(e.payload),t.lineAlign=e.lineAlign,t.positionAlign=e.positionAlign,e.size&&(t.size=e.size);try{t.align=e.textAlign}catch(r){}return e.textAlign=="center"&&t.align!="center"&&(t.align="middle"),e.writingMode==B.writingMode.VERTICAL_LEFT_TO_RIGHT?t.vertical="lr":e.writingMode==B.writingMode.VERTICAL_RIGHT_TO_LEFT&&(t.vertical="rl"),e.lineInterpretation==B.lineInterpretation.PERCENTAGE&&(t.snapToLines=!1),e.line!=null&&(t.line=e.line),e.position!=null&&(t.position=e.position),t}static mapNativeCueToShakaCue(e){if(e.endTime===1/0||e.endTime<e.startTime)return null;let t=new B(e.startTime,e.endTime,e.text);return t.line=typeof e.line=="number"?e.line:null,e.lineAlign&&(t.lineAlign=e.lineAlign),t.lineInterpretation=e.snapToLines?B.lineInterpretation.LINE_NUMBER:B.lineInterpretation.PERCENTAGE,t.position=typeof e.position=="number"?e.position:null,e.positionAlign&&(t.positionAlign=e.positionAlign),t.size=e.size,t.textAlign=e.align,e.vertical==="lr"?t.writingMode=B.writingMode.VERTICAL_LEFT_TO_RIGHT:e.vertical==="rl"&&(t.writingMode=B.writingMode.VERTICAL_RIGHT_TO_LEFT),e.region&&(t.region.id=e.region.id,t.region.height=e.region.lines,t.region.heightUnits=He.units.LINES,t.region.regionAnchorX=e.region.regionAnchorX,t.region.regionAnchorY=e.region.regionAnchorY,t.region.scroll=e.region.scroll,t.region.viewportAnchorX=e.region.viewportAnchorX,t.region.viewportAnchorY=e.region.viewportAnchorY,t.region.viewportAnchorUnits=He.units.PERCENTAGE,t.region.width=e.region.width,t.region.widthUnits=He.units.PERCENTAGE),B.parseCuePayload(t),t}static appendCuesToTextTrack(e,t){let i=y.getCuesToFlatten(t),r=[],s=e.cues?Array.from(e.cues):[];for(let a of i)if(!s.some(c=>c.startTime==a.startTime&&c.endTime==a.endTime&&c.text==a.payload)&&a.payload){let c=y.mapShakaCueToNativeCue(a);c&&r.push(c)}let n=r.slice().sort((a,o)=>a.startTime!=o.startTime?a.startTime-o.startTime:a.endTime!=o.endTime?a.endTime-o.startTime:"line"in VTTCue.prototype?r.indexOf(o)-r.indexOf(a):r.indexOf(a)-r.indexOf(o));for(let a of n)e.addCue(a)}static removeCuesFromTextTrack(e,t){let i=!1;e.mode==="disabled"&&(i=!0,e.mode="hidden",v.assert(e.cues,'Cues should be accessible when mode is set to "hidden".'));let r=0;for(;r<e.cues.length;){let s=e.cues[r];t(s)?e.removeCue(s):r++}i&&(e.mode="disabled")}static resetCuePositioning(e){let t=new B(0,0,""),i=r=>{r.line=t.line,r.lineAlign=t.lineAlign,r.position=t.position,r.positionAlign=t.positionAlign,r.size=t.size,r.displayAlign=t.displayAlign,r.region=t.region;for(let s of r.nestedCues)i(s)};i(e)}};/*! @license
446
+ * Shaka Player
447
+ * Copyright 2016 Google LLC
448
+ * SPDX-License-Identifier: Apache-2.0
449
+ */var ks=class ks{constructor(e){l(this,"player_");l(this,"eventManager_");l(this,"loadEventManager_");l(this,"config_");l(this,"video_");l(this,"trackNodes_");l(this,"trackId_");l(this,"visible_");l(this,"timer_");this.player_=e,this.eventManager_=new ue,this.loadEventManager_=new ue,this.config_=null,this.video_=null,this.trackNodes_=new Map,this.trackId_=-1,this.visible_=!1,this.timer_=null,this.eventManager_.listen(e,U.EventName.Loaded,()=>this.checkMsePlayback_()),this.checkMsePlayback_()}configure(e){this.config_=e}remove(e,t){if(!this.player_)return!1;let i=this.getActiveTrack_();return i&&si.removeCuesFromTextTrack(i,r=>r.startTime<t&&r.endTime>e),!0}append(e){var s,n;let t=this.getActiveTrack_();if(!t)return;let i=(n=(s=this.config_)==null?void 0:s.subtitleDelay)!=null?n:0,r=i!==0?e.map(a=>{let o=a.clone();return o.startTime=Math.max(0,o.startTime+i),o.endTime=Math.max(0,o.endTime+i),o}):e;si.appendCuesToTextTrack(t,r)}destroy(){var e,t,i;return this.player_&&(this.video_&&this.onUnloading_(),this.player_=null),(e=this.timer_)==null||e.stop(),this.timer_=null,(t=this.eventManager_)==null||t.release(),this.eventManager_=null,(i=this.loadEventManager_)==null||i.release(),this.loadEventManager_=null,Promise.resolve()}isTextVisible(){return this.visible_}setTextVisibility(e){this.visible_=e;let t=this.getActiveTrack_();if(t){this.applyVisibilityToTrack_(t,e);return}this.isSrcEqualsMode_()&&this.applyVisibilityToSrcEqualsTracks_(e)}setTextLanguage(e){}onUnloading_(){var e,t;(e=this.timer_)==null||e.stop(),this.timer_=null,(t=this.loadEventManager_)==null||t.removeAll();for(let i of this.trackNodes_.values())i.remove();this.trackNodes_.clear(),this.trackId_=-1,this.video_=null}onTextChanged_(){let e=new Map,t=this.player_.getTextTracks();for(let i of t){let r=this.trackNodes_.has(i.id)?this.reuseTrackNode_(i):this.createTrackNode_(i);e.set(i.id,r),i.active&&(this.trackId_=i.id)}for(let i of this.trackNodes_.values())i.remove();this.trackNodes_=e,this.activateCurrentTrack_()}onChange_(){if(this.timer_)return;let e=this.video_;this.timer_=new ae(()=>{if(this.timer_=null,this.video_!==e)return;let t=this.resolveActiveTrackId_();this.disableAllTracksExcept_(t),this.trackId_!==t&&(this.trackId_=t,this.syncTrackSelectionWithPlayer_(t))}).tickAfter(0)}getActiveTrack_(){return this.trackNodes_.has(this.trackId_)?this.trackNodes_.get(this.trackId_).track:null}applyVisibilityToTrack_(e,t){if(e.mode==="disabled")return;let i=t?"showing":"hidden";e.mode!==i&&(e.mode=i)}isSrcEqualsMode_(){if(!this.player_)return!1;let e=ks.LoadMode;return this.player_.getLoadMode()===e.SRC_EQUALS}applyVisibilityToSrcEqualsTracks_(e){let t=Array.from(this.player_.getMediaElement().textTracks).filter(i=>["captions","subtitles","forced"].includes(i.kind));if(e){if(!t.some(r=>r.mode==="showing")){let r=t.find(s=>s.mode==="hidden");r&&(r.mode="showing")}}else for(let i of t)i.mode==="showing"&&(i.mode="hidden")}reuseTrackNode_(e){let t=this.trackNodes_.get(e.id);return!e.active&&t.track.mode!=="disabled"&&(t.track.mode="disabled"),this.trackNodes_.delete(e.id),t}createTrackNode_(e){let t=this.video_.ownerDocument.createElement("track");return t.kind=this.getTrackKind_(e),t.label=this.getTrackLabel_(e),t.srclang=this.resolveTrackLanguage_(e),t.src="data:,WEBVTT",t.track.mode="disabled",this.video_.appendChild(t),t}resolveTrackLanguage_(e){var t;return e.language?e.language in Lr?e.language:(t=ve.getBase(e.language))!=null?t:"und":"und"}activateCurrentTrack_(){if(this.trackId_<=-1)return;if(!this.trackNodes_.has(this.trackId_)){this.trackId_=-1;return}let e=this.trackNodes_.get(this.trackId_).track;e.mode==="disabled"&&(e.mode=this.visible_?"showing":"hidden")}resolveActiveTrackId_(){let e=-1;if(this.trackNodes_.has(this.trackId_)){let t=this.trackNodes_.get(this.trackId_).track.mode;if(t==="showing")return this.trackId_;t==="hidden"&&(e=this.trackId_)}for(let t of this.trackNodes_.keys()){let i=this.trackNodes_.get(t);if(i.track.mode==="showing")return t;e<0&&i.track.mode==="hidden"&&(e=t)}return e}disableAllTracksExcept_(e){let t=this.trackNodes_.get(e);for(let i of this.trackNodes_.values())i!==t&&i.track.mode!=="disabled"&&(i.track.mode="disabled")}syncTrackSelectionWithPlayer_(e){if(e>-1){let t=this.player_.getTextTracks().find(i=>i.id===e);if(t){this.player_.selectTextTrack(t);return}}this.player_.selectTextTrack(null)}checkMsePlayback_(){if(this.video_||!this.player_)return;let e=ks.LoadMode;if(this.player_.getLoadMode()!==e.MEDIA_SOURCE)return;this.video_=this.player_.getMediaElement();let t=U.EventName;this.eventManager_.listenOnce(this.player_,t.Unloading,()=>this.onUnloading_()),this.loadEventManager_.listen(this.player_,t.TextChanged,()=>this.onTextChanged_()),this.loadEventManager_.listen(this.video_.textTracks,"change",()=>this.onChange_()),this.onTextChanged_()}getTrackKind_(e){let t=j.getDevice();return e.forced&&t.getBrowserEngine()===ie.BrowserEngine.WEBKIT?"forced":e.kind===R.TextStreamKind.CLOSED_CAPTION?"captions":"subtitles"}getTrackLabel_(e){var i;if(e.label)return e.label;if(e.language){let r=ve.getBase(e.language);if(window.Intl&&"DisplayNames"in Intl)try{let o=new Intl.DisplayNames(e.language,{type:"language",languageDisplay:"standard"}).of(e.language);if(o&&o.toLowerCase()!=e.language.toLowerCase())return o.charAt(0).toUpperCase()+o.slice(1)}catch(a){}let s=Lr[e.language];if(s)return s;let n=r&&Lr[r];if(n)return r===e.language?n:`${n} (${e.language})`}let t=String((i=e.originalTextId)!=null?i:"");return e.language&&e.language!==e.originalTextId?`${t} (${e.language})`:t}};l(ks,"LoadMode",{MEDIA_SOURCE:2,SRC_EQUALS:3});var mr=ks;/*! @license
450
+ * Shaka Player
451
+ * Copyright 2016 Google LLC
452
+ * SPDX-License-Identifier: Apache-2.0
453
+ */var Ds=class Ds{constructor(e){l(this,"player_");l(this,"config_");l(this,"eventManager_");l(this,"supported_");l(this,"textContainer_");l(this,"enabled_");l(this,"translatorController_");l(this,"recognitionTimer_");l(this,"nextTextTrackId_");l(this,"basicTextTrack_");l(this,"textTracks_");l(this,"activeTrackId_");l(this,"renderer_");l(this,"lastSourceLanguage_");l(this,"lastTargetLanguage_");l(this,"recognitionController_");this.player_=e,this.config_=null,this.eventManager_=new ue,this.supported_=Ds.isMediaStreamTrackSupported.value(),this.textContainer_=null,this.enabled_=!1,this.translatorController_=new to,this.recognitionTimer_=new ae(()=>{this.initRecognition_()}),this.nextTextTrackId_=1e15,this.basicTextTrack_=this.createTextTrack_(),this.textTracks_=[this.basicTextTrack_],this.activeTrackId_=null,this.renderer_=null,this.lastSourceLanguage_=null,this.lastTargetLanguage_=null,this.recognitionController_=new eo(this.translatorController_,this.recognitionTimer_,t=>{var r;if(!this.enabled_||!this.textContainer_)return;let i=this.truncateLastWords_(t,this.config_.maxTextLength);(r=this.renderer_)==null||r.render(i)},()=>{var t;(t=this.renderer_)==null||t.clear()})}configure(e){this.config_=e,this.checkTextTrackChanges_()}release(){var e;this.activeTrackId_=null,this.eventManager_.removeAll(),this.stopRecognition_(),this.player_=null,this.eventManager_.release(),(e=this.renderer_)==null||e.release(),this.textContainer_&&this.textContainer_.parentElement&&(this.textContainer_.remove(),this.textContainer_=null)}enable(e){if(!this.supported_||(this.textContainer_||(this.textContainer_=this.getTextContainer_()),!this.textContainer_)||(this.renderer_||(this.renderer_=new Za(this.textContainer_)),this.enabled_&&e.id==this.activeTrackId_))return;this.enabled_=!0,this.activeTrackId_=e.id,this.eventManager_.listen(this.player_,"audiotrackschanged",()=>{this.initRecognition_()});let t=this.player_.getMediaElement();this.eventManager_.listen(t,"seeking",()=>{this.initRecognition_()}),this.eventManager_.listen(t,"pause",()=>{this.stopRecognition_(!1)}),this.eventManager_.listen(t,"play",()=>{this.initRecognition_()}),t.paused||this.initRecognition_()}disable(){var e;this.enabled_&&(this.enabled_=!1,this.activeTrackId_=null,this.eventManager_.removeAll(),this.stopRecognition_(),(e=this.renderer_)==null||e.release(),this.renderer_=null,this.translatorController_.release(),this.recognitionController_.release())}isEnabled(){return this.enabled_}isSupported(){return!(!this.supported_||(this.textContainer_||(this.textContainer_=this.getTextContainer_()),!this.textContainer_))}getTextTracks(){if(!this.isSupported())return[];for(let e of this.textTracks_)e.active=e.id==this.activeTrackId_;return this.textTracks_}async initRecognition_(){var a;v.assert(this.config_,"Config must not be null!"),(a=this.renderer_)==null||a.clear();let e=this.player_.getAudioTracks();if(!e.length)return;let t=this.getAudioTrackFromMediaElement_();if(!t)return;let i=e.find(o=>o.active),r="en";i&&i.language&&i.language!="und"&&(r=i.language);let s=this.textTracks_.find(o=>o.id==this.activeTrackId_),n="";if(s&&s.language&&s.language!="und"&&(n=s.language),this.recognitionController_.isActive()&&this.lastSourceLanguage_===r&&this.lastTargetLanguage_!==n){this.lastTargetLanguage_=n,await this.translatorController_.setup(r,n);return}this.stopRecognition_();try{await this.translatorController_.setup(r,n)}catch(o){if(o.name=="NotSupportedError")return}await this.recognitionController_.start(t,r,this.config_.processLocally),this.lastSourceLanguage_=r,this.lastTargetLanguage_=n}stopRecognition_(e=!0){this.recognitionController_.stop(e)}truncateLastWords_(e,t){if(e.length<=t)return e;let i=e.length-t;for(;i>0&&e[i-1]!==" ";)i--;return"..."+e.slice(i).trimStart()}getAudioTrackFromMediaElement_(){let e=this.player_.getMediaElement();return e?Ds.audioObjectMap_.getOrInsertComputed(e,()=>{let i=window.AudioContext||window.webkitAudioContext,r=new i;v.assert(e,"MediaElement should be null");let s=r.createMediaElementSource(e),n=r.createMediaStreamDestination();s.connect(n),s.connect(r.destination);let a=n.stream.getAudioTracks()[0];return{audioContext:r,sourceNode:s,destinationNode:n,audioTrack:a}}).audioTrack:null}getTextContainer_(){let e=this.player_.getVideoContainer();if(!e)return null;let t=Ge.createHTMLElement("div");return t.classList.add("shaka-speech-to-text-container"),t.style.textAlign="center",t.style.display="flex",t.style.flexDirection="column",t.style.alignItems="center",t.style.justifyContent="flex-end",e.appendChild(t),t}checkTextTrackChanges_(){v.assert(this.config_,"Config must not be null!");let e=this.textTracks_.map(i=>i.language).filter(i=>i);if(!ye.hasSameElements(this.config_.languagesToTranslate,e)&&"Translator"in window){this.textTracks_=this.textTracks_.filter(r=>r.id==this.basicTextTrack_.id||this.config_.languagesToTranslate.includes(r.language)?!0:(r.id==this.activeTrackId_&&this.disable(),!1));for(let r of this.config_.languagesToTranslate){let s=this.textTracks_.find(n=>n.language==r);s||(s=this.createTextTrack_(),s.language=r,this.textTracks_.push(s))}let i=new U(U.EventName.TextChanged);this.player_.dispatchEvent(i)}}createTextTrack_(){return{id:this.nextTextTrackId_++,active:!1,type:R.ContentType.TEXT,bandwidth:0,language:"",label:null,kind:null,mimeType:null,codecs:null,primary:!1,roles:[],accessibilityPurpose:null,forced:!1,originalTextId:null,originalLanguage:"speech-to-text"}}};l(Ds,"audioObjectMap_",new Map);var Qr=Ds;Qr.isMediaStreamTrackSupported=new _e(()=>{let y=Ge.asHTMLIFrameElement(document.body.appendChild(document.createElement("iframe"))),e=y.contentWindow,t=e.SpeechRecognition||e.webkitSpeechRecognition;if(!t)return y.remove(),!1;let i=new t;y.remove();try{return i.start(0),i.stop(),!1}catch(r){return r.name=="TypeError"}});var Za=class{constructor(e){l(this,"container_");l(this,"span_");this.container_=e,this.span_=null}render(e){this.container_&&(this.span_||(this.span_=Ge.createHTMLElement("span"),this.span_.setAttribute("translate","no"),this.span_.style.backgroundColor="rgba(0,0,0,0.8)",this.span_.style.padding="0px 5px",this.span_.style.margin="2.5% 5%",this.container_.appendChild(this.span_)),this.span_.textContent=e)}clear(){this.span_&&(this.span_.textContent="")}release(){this.container_&&Ge.removeAllChildren(this.container_),this.span_=null}},eo=class{constructor(e,t,i,r){l(this,"translatorController_");l(this,"timer_");l(this,"onText_");l(this,"onClear_");l(this,"eventManager_");l(this,"recognition_");l(this,"version_");l(this,"active_");this.translatorController_=e,this.timer_=t,this.onText_=i,this.onClear_=r,this.eventManager_=new ue,this.recognition_=null,this.version_=0,this.active_=!1}async start(e,t,i){this.stop(),this.version_++;let r=this.version_;this.active_=!0;let s=window.SpeechRecognition||window.webkitSpeechRecognition,n=new s;if(this.recognition_=n,n.lang=t,n.continuous=!0,n.interimResults=!0,i&&"install"in s&&"available"in s)try{switch(await s.available({langs:[t],processLocally:!0})){case"available":n.processLocally=!0;break;case"downloading":case"downloadable":await s.install({langs:[t],processLocally:!0}),n.processLocally=!0;break;default:return}}catch(o){p.error("SpeechRecognition processLocally error",o)}if(r!==this.version_)return;let a=!1;this.eventManager_.listen(n,"start",()=>{r===this.version_&&this.timer_.tickAfter(5)}),this.eventManager_.listen(n,"result",async o=>{if(r!==this.version_)return;let c=o,d="";for(let m=c.resultIndex;m<c.results.length;m++)d+=c.results[m][0].transcript;let u=await this.translatorController_.translate(d);u===null||r!==this.version_||(this.onText_(u),this.timer_.tickAfter(.75))}),this.eventManager_.listen(n,"error",o=>{if(r!==this.version_)return;a=!0,this.onClear_(),o.error=="network"&&this.timer_.tickAfter(30)}),this.eventManager_.listen(n,"end",()=>{!this.active_||r!==this.version_||a||this.start(e,t,i)}),n.start(e)}stop(e=!0){this.version_++,this.active_=!1,this.eventManager_.removeAll(),this.timer_.stop(),this.recognition_&&(this.recognition_.stop(),this.recognition_=null),e&&this.onClear_()}release(){this.stop(),this.translatorController_.release()}isActive(){return this.active_}},to=class{constructor(){l(this,"translator_");l(this,"abortController_");l(this,"setupVersion_");l(this,"translationVersion_");l(this,"lastSource_");l(this,"lastTarget_");this.translator_=null,this.abortController_=null,this.setupVersion_=0,this.translationVersion_=0,this.lastSource_=null,this.lastTarget_=null}async setup(e,t){if(this.lastSource_===e&&this.lastTarget_===t&&this.translator_)return;this.release(),this.setupVersion_++;let i=this.setupVersion_;if(!(!t||e==t||!("Translator"in window))){this.abortController_=new AbortController;try{let r=await Translator.create({sourceLanguage:e,targetLanguage:t,signal:this.abortController_.signal});if(i!==this.setupVersion_){r.destroy();return}this.translator_=r,this.lastSource_=e,this.lastTarget_=t}catch(r){if(r.name=="NotSupportedError")throw r}}}async translate(e){if(!this.translator_)return e;this.translationVersion_++;let t=this.translationVersion_;try{let i=await this.translator_.translate(e);return t!==this.translationVersion_?null:i}catch(i){return null}}release(){var e,t;(e=this.abortController_)==null||e.abort(),this.abortController_=null,(t=this.translator_)==null||t.destroy(),this.translator_=null,this.lastSource_=null,this.lastTarget_=null}};/*! @license
454
+ * Shaka Player
455
+ * Copyright 2016 Google LLC
456
+ * SPDX-License-Identifier: Apache-2.0
457
+ */var yn=class{configure(e){}remove(e,t){}append(e){}destroy(){}isTextVisible(){return!1}setTextVisibility(e){}setTextLanguage(e){}};/*! @license
458
+ * Shaka Player
459
+ * Copyright 2016 Google LLC
460
+ * SPDX-License-Identifier: Apache-2.0
461
+ */var Dt=class Dt{constructor(e){l(this,"isTextVisible_");l(this,"cues_");l(this,"player_");l(this,"video_");l(this,"videoContainer_");l(this,"aspectRatio_");l(this,"renderSuspended_");l(this,"isContainerActuallyVisible_");l(this,"config_");l(this,"previewConfig_");l(this,"previewCue_");l(this,"showingPreviewCue_");l(this,"textContainer_");l(this,"captionsTimer_");l(this,"applyVisibilityTimer_");l(this,"currentCuesMap_");l(this,"eventManager_");l(this,"pendingResize_");l(this,"resizeObserver_");l(this,"regionElements_");l(this,"visibilityObserver_");if(this.isTextVisible_=!1,this.cues_=[],this.player_=e,this.video_=e.getMediaElement(),this.videoContainer_=e.getVideoContainer(),this.aspectRatio_=null,this.renderSuspended_=!1,this.isContainerActuallyVisible_=!0,this.config_=null,this.previewConfig_=null,this.previewCue_=null,this.showingPreviewCue_=!1,this.textContainer_=Ge.createHTMLElement("div"),this.textContainer_.classList.add("shaka-text-container"),this.textContainer_.style.textAlign="center",this.textContainer_.style.display="flex",this.textContainer_.style.flexDirection="column",this.textContainer_.style.alignItems="center",this.textContainer_.style.justifyContent="flex-end",this.captionsTimer_=new ae(()=>{this.updateCaptions_(),this.configureCaptionsTimer_()}),this.configureCaptionsTimer_(),this.applyVisibilityTimer_=new ae(()=>{this.applyVisibility_()}),this.currentCuesMap_=new Map,this.eventManager_=new ue,this.eventManager_.listen(document,"fullscreenchange",()=>{this.updateCaptions_(!0)}),this.eventManager_.listen(this.video_,"seeking",()=>{this.updateCaptions_(!0),this.configureCaptionsTimer_()}),this.eventManager_.listenMulti(this.video_,["play","playing","pause","waiting"],()=>{this.configureCaptionsTimer_()}),this.eventManager_.listen(this.player_,"ratechange",()=>{this.configureCaptionsTimer_()}),this.eventManager_.listen(this.video_,"resize",()=>{let i=this.video_,r=i.videoWidth,s=i.videoHeight;r&&s?this.aspectRatio_=r/s:this.aspectRatio_=null}),this.pendingResize_=!1,this.resizeObserver_=null,"ResizeObserver"in window&&(this.resizeObserver_=new ResizeObserver(()=>{this.pendingResize_||(this.pendingResize_=!0,requestAnimationFrame(()=>{this.pendingResize_=!1,this.textContainer_&&this.textContainer_.parentElement&&this.isTextVisible_&&this.updateCaptions_(!0)}))}),v.assert(this.videoContainer_,"this.videoContainer_ must be non-null"),this.resizeObserver_.observe(this.videoContainer_)),this.regionElements_=new Map,this.visibilityObserver_=null,"IntersectionObserver"in window){let i={root:null,threshold:[.01]};this.visibilityObserver_=new IntersectionObserver(r=>{if(r.length){let s=r[r.length-1];this.isContainerActuallyVisible_=s.isIntersecting&&s.intersectionRatio>0,this.applyVisibilityTimer_.tickAfter(Dt.VISIBILITY_DEBOUNCE_)}},i),v.assert(this.videoContainer_,"this.videoContainer_ must be non-null"),this.visibilityObserver_.observe(this.videoContainer_)}this.eventManager_.listen(document,"visibilitychange",i=>{this.applyVisibilityTimer_.tickNow()}),this.eventManager_.listen(document,"fullscreenchange",()=>{this.applyVisibilityTimer_.tickNow()}),this.eventManager_.listenMulti(this.video_,["enterpictureinpicture","leavepictureinpicture"],()=>{this.applyVisibilityTimer_.tickNow()}),"documentPictureInPicture"in window&&this.eventManager_.listen(window.documentPictureInPicture,"enter",i=>{this.applyVisibilityTimer_.tickNow();let s=i.window;this.eventManager_.listenOnce(s,"pagehide",()=>{this.applyVisibilityTimer_.tickNow()})});let t=this.video_;(t.webkitPresentationMode||t.webkitSupportsFullscreen)&&this.eventManager_.listen(t,"webkitpresentationmodechanged",()=>{this.applyVisibilityTimer_.tickNow()}),this.applyVisibility_()}configure(e){this.config_=e,this.configureCaptionsTimer_(),this.applyVisibility_(),this.updateCaptions_(!0)}setTextStylePreview(e,t){this.previewConfig_=Object.assign({},e),this.previewCue_=new B(Number.NEGATIVE_INFINITY,Number.POSITIVE_INFINITY,t),this.updateCaptions_(!0)}clearTextStylePreview(){!this.previewConfig_&&!this.previewCue_||(this.previewConfig_=null,this.previewCue_=null,this.showingPreviewCue_=!1,this.updateCaptions_(!0))}append(e){let t=[...this.cues_];for(let i of si.removeDuplicates(e))t.some(s=>B.equal(s,i))||this.cues_.push(i);this.cues_.length&&this.configureCaptionsTimer_(),this.updateCaptions_()}destroy(){var e,t,i,r,s;return this.textContainer_&&(this.textContainer_.parentElement&&this.videoContainer_.removeChild(this.textContainer_),this.textContainer_=null,this.isTextVisible_=!1,this.cues_=[],this.previewConfig_=null,this.previewCue_=null,this.showingPreviewCue_=!1,(e=this.captionsTimer_)==null||e.stop(),this.captionsTimer_=null,(t=this.applyVisibilityTimer_)==null||t.stop(),this.applyVisibilityTimer_=null,this.currentCuesMap_.clear(),(i=this.eventManager_)==null||i.release(),this.eventManager_=null,(r=this.resizeObserver_)==null||r.disconnect(),this.resizeObserver_=null,(s=this.visibilityObserver_)==null||s.disconnect(),this.visibilityObserver_=null),Promise.resolve()}remove(e,t){if(!this.textContainer_)return!1;let i=this.cues_.length;this.cues_=this.cues_.filter(s=>s.startTime<e||s.endTime>=t);let r=i>this.cues_.length;return this.updateCaptions_(r),this.cues_.length||this.configureCaptionsTimer_(),!0}isTextVisible(){return this.isTextVisible_}setTextVisibility(e){this.isTextVisible_=e,this.isTextVisible_?(this.textContainer_.parentElement||this.videoContainer_.appendChild(this.textContainer_),this.updateCaptions_(!0)):this.textContainer_.parentElement&&this.videoContainer_.removeChild(this.textContainer_)}setTextLanguage(e){e&&e!="und"?this.textContainer_.setAttribute("lang",e):this.textContainer_.setAttribute("lang","")}configureCaptionsTimer_(){var a,o;if(!this.captionsTimer_)return;if(!this.cues_.length||this.renderSuspended_||this.video_.paused){this.captionsTimer_.stop();return}let e=(o=(a=this.getActiveConfig_())==null?void 0:a.subtitleDelay)!=null?o:0,t=this.video_.currentTime-e,i=Dt.SAFETY_REFRESH_PERIOD_,r=this.getNextBoundary_(this.cues_,t);r!=null&&this.video_.readyState>=HTMLMediaElement.HAVE_FUTURE_DATA&&(i=Math.min(i,Math.max(0,r-t)));let s=Math.abs(this.player_.getPlaybackRate())||1,n=Math.max(Dt.MIN_REFRESH_PERIOD_,i/s);this.captionsTimer_.tickAfter(n)}getNextBoundary_(e,t){let i=null,r=s=>{s>t&&(i==null||s<i)&&(i=s)};for(let s of e)if(r(s.startTime),r(s.endTime),s.nestedCues.length){let n=this.getNextBoundary_(s.nestedCues,t);n!=null&&r(n)}return i}getActiveConfig_(){return this.previewConfig_||this.config_}applyVisibility_(){var a,o;let e=this.video_,t=!1;(window.documentPictureInPicture&&window.documentPictureInPicture.window||document.pictureInPictureElement===e)&&(t=!0);let i=!1;document.fullscreenEnabled&&document.fullscreenElement===this.videoContainer_?i=!0:e.webkitSupportsFullscreen&&(i=e.webkitDisplayingFullscreen);let r=document.visibilityState==="visible";!((o=(a=this.config_)==null?void 0:a.suspendRenderingWhenHidden)!=null?o:!0)||t||i||r&&this.isContainerActuallyVisible_?this.renderSuspended_&&(this.renderSuspended_=!1,this.configureCaptionsTimer_(),requestAnimationFrame(()=>{this.textContainer_&&this.textContainer_.parentElement&&this.isTextVisible_&&this.updateCaptions_()})):this.renderSuspended_||(this.renderSuspended_=!0,this.captionsTimer_&&this.captionsTimer_.stop())}isElementUnderTextContainer_(e){for(;e!=null;){if(e==this.textContainer_)return!0;e=e.parentElement}return!1}findCueRegistry_(e,t){let i=e,r=this.currentCuesMap_.get(e)||null;if(!r&&t&&t.positionArea!=Yt.DEFAULT)for(let s of this.currentCuesMap_.keys())B.equal(e,s)&&(i=s,r=this.currentCuesMap_.get(s));return{key:i,registry:r}}updateCuesRecursive_(e,t,i,r){let s=this.getActiveConfig_(),n=!1,a=[],o=[];for(let c of e){r.push(c);let d=this.findCueRegistry_(c,s),u=d.key,m=d.registry,f=c.startTime<=i&&c.endTime>i,g=m?m.wrapper:null;m&&(a.push(m.cueElement),m.regionElement&&a.push(m.regionElement),f||(n=!0,this.currentCuesMap_.delete(u),m=null)),f&&(o.push(c),m?this.isElementUnderTextContainer_(g)||(n=!0):(this.createCue_(c,r),m=this.currentCuesMap_.get(u),g=m.wrapper,n=!0)),c.nestedCues.length>0&&g&&this.updateCuesRecursive_(c.nestedCues,g,i,r);let _=r.pop();v.assert(_==c,"Parent cues should be kept in order")}if(n){for(let c of a)c.parentElement&&c.parentElement.removeChild(c);o.sort((c,d)=>c.startTime!=d.startTime?c.startTime-d.startTime:c.endTime-d.endTime);for(let c of o){let d=this.findCueRegistry_(c,s).registry;v.assert(d,"cueRegistry should exist."),d.regionElement?(d.regionElement.contains(t)&&d.regionElement.removeChild(t),t.appendChild(d.regionElement),d.regionElement.appendChild(d.cueElement)):t.appendChild(d.cueElement)}}}hasCueAtTime_(e,t){return e.some(i=>i.startTime<=t&&i.endTime>t&&this.hasCueContent_(i))}hasCueContent_(e){return!!e.payload.replace(/[\u00a0\u200B]/g," ").trim()||!!e.backgroundImage||e.nestedCues.some(i=>this.hasCueContent_(i))}updateCaptions_(e=!1){var a;if(!this.textContainer_||this.renderSuspended_)return;let t=this.getActiveConfig_(),i=(a=t==null?void 0:t.subtitleDelay)!=null?a:0,r=this.video_.currentTime-i,s=!!this.previewCue_&&!this.hasCueAtTime_(this.cues_,r);s!=this.showingPreviewCue_&&(e=!0,this.showingPreviewCue_=s),s&&(e=!0);let n=this.isTextVisible_||s;if(n?this.textContainer_.parentElement||this.videoContainer_.appendChild(this.textContainer_):this.textContainer_.parentElement&&this.videoContainer_.removeChild(this.textContainer_),!n||e){for(let o of this.regionElements_.values())Ge.removeAllChildren(o);Ge.removeAllChildren(this.textContainer_),this.currentCuesMap_.clear(),this.regionElements_.clear()}if(n){let o=new Map;if(Fe)for(let d of this.currentCuesMap_.keys())o.set(d,this.currentCuesMap_.get(d));let c=s&&this.previewCue_?[this.previewCue_]:this.cues_;if(t&&t.positionArea!=Yt.DEFAULT&&(c=c.map(d=>this.processCueStyle_(d))),this.updateCuesRecursive_(c,this.textContainer_,r,[]),Fe){for(let d of o.keys())if(!this.currentCuesMap_.has(d)){let u=o.get(d).cueElement;v.assert(!u.parentNode,"Cue was not properly removed!")}}}}processCueStyle_(e){let t=this.getActiveConfig_();v.assert(t.positionArea!==Yt.DEFAULT,"processCueStyle_ is intended to use on non default positioning");let i=e.clone();switch(si.resetCuePositioning(i),i.region=Dt.CustomRegion_.value(),t.positionArea){case Yt.TOP_LEFT:i.textAlign=B.textAlign.LEFT,i.displayAlign=B.displayAlign.BEFORE;break;case Yt.TOP_CENTER:i.textAlign=B.textAlign.CENTER,i.displayAlign=B.displayAlign.BEFORE;break;case Yt.TOP_RIGHT:i.textAlign=B.textAlign.RIGHT,i.displayAlign=B.displayAlign.BEFORE;break;case Yt.CENTER_LEFT:i.textAlign=B.textAlign.LEFT,i.displayAlign=B.displayAlign.CENTER;break;case Yt.CENTER:i.textAlign=B.textAlign.CENTER,i.displayAlign=B.displayAlign.CENTER;break;case Yt.CENTER_RIGHT:i.textAlign=B.textAlign.RIGHT,i.displayAlign=B.displayAlign.CENTER;break;case Yt.BOTTOM_LEFT:i.textAlign=B.textAlign.LEFT,i.displayAlign=B.displayAlign.AFTER;break;case Yt.BOTTOM_CENTER:i.textAlign=B.textAlign.CENTER,i.displayAlign=B.displayAlign.AFTER;break;case Yt.BOTTOM_RIGHT:i.textAlign=B.textAlign.RIGHT,i.displayAlign=B.displayAlign.AFTER;break}return i}generateRegionId_(e){let t=He.units.PERCENTAGE,i=e.heightUnits==t?"%":"px",r=e.viewportAnchorUnits==t?"%":"px";return`${e.id}_${e.width}x${e.height}${i}-${e.viewportAnchorX}x${e.viewportAnchorY}${r}-${e.regionAnchorX}x${e.regionAnchorY}`}getRegionElement_(e){let t=e.region,i=this.aspectRatio_===4/3?2.5:1.9,r=5.33,s=this.generateRegionId_(t);if(this.regionElements_.has(s))return this.regionElements_.get(s);let n=Ge.createHTMLElement("span"),a=He.units.LINES,o=He.units.PERCENTAGE,c=He.units.PX,d=t.heightUnits==o?"%":"px",u=t.widthUnits==o?"%":"px",m=t.viewportAnchorUnits==o?"%":"px";n.id="shaka-text-region---"+s,n.classList.add("shaka-text-region"),n.style.position="absolute";let f=t.height,g=t.width;if(t.heightUnits===a&&(f=t.height*r,d="%"),t.widthUnits===a&&(g=t.width*i,u="%"),n.style.height=f+d,n.style.width=g+u,t.viewportAnchorUnits===a){let _=t.viewportAnchorY/75*100,T=this.aspectRatio_===4/3?160:210,S=t.viewportAnchorX/T*100;_-=t.regionAnchorY*f/100,S-=t.regionAnchorX*g/100,n.style.top=_+"%",n.style.left=S+"%"}else n.style.top=t.viewportAnchorY-t.regionAnchorY*f/100+m,n.style.left=t.viewportAnchorX-t.regionAnchorX*g/100+m;if(t.heightUnits!==c&&t.widthUnits!==c&&t.viewportAnchorUnits!==c){let _=parseInt(n.style.top.slice(0,-1),10)||0,T=parseInt(n.style.left.slice(0,-1),10)||0,S=parseInt(n.style.height.slice(0,-1),10)||0,b=parseInt(n.style.width.slice(0,-1),10)||0,E=Math.max(0,Math.min(100-S,_)),C=Math.max(0,Math.min(100-b,T));n.style.top=E+"%",n.style.left=C+"%"}return n.style.display="flex",n.style.flexDirection="column",n.style.alignItems="center",n.style.justifyContent=Dt.displayAlignToJustifyContent_(e.displayAlign),this.regionElements_.set(s,n),n}createCue_(e,t){let i=t.length>1,r=i?"span":"div";e.lineBreak&&(r="br"),e.rubyTag&&(r=e.rubyTag);let s=!i&&e.nestedCues.length>0,n=Ge.createHTMLElement(r);r!="br"&&this.setCaptionStyles_(n,e,t,s);let a=null;e.region&&e.region.id&&(a=this.getRegionElement_(e));let o=n;s&&(o=Ge.createHTMLElement("span"),o.classList.add("shaka-text-wrapper"),o.style.backgroundColor=e.backgroundColor,o.style.lineHeight="normal",n.appendChild(o)),this.currentCuesMap_.set(e,{cueElement:n,wrapper:o,regionElement:a})}computeCuePositionAlignment_(e){let{direction:t,positionAlign:i,textAlign:r}=e;return i!==B.positionAlign.AUTO?i:r===B.textAlign.LEFT||r===B.textAlign.START&&t===B.direction.HORIZONTAL_LEFT_TO_RIGHT||r===B.textAlign.END&&t===B.direction.HORIZONTAL_RIGHT_TO_LEFT?B.positionAlign.LEFT:r===B.textAlign.RIGHT||r===B.textAlign.START&&t===B.direction.HORIZONTAL_RIGHT_TO_LEFT||r===B.textAlign.END&&t===B.direction.HORIZONTAL_LEFT_TO_RIGHT?B.positionAlign.RIGHT:B.positionAlign.CENTER}setCaptionStyles_(e,t,i,r){let s=g=>Dt.inheritProperty_(i,g),n=e.style,a=t.nestedCues.length==0,o=i.length>1;n.whiteSpace="pre-wrap";let c=t.payload.replace(/\s+$/g,g=>"\xA0".repeat(g.length));if(n.webkitTextStrokeColor=t.textStrokeColor,n.webkitTextStrokeWidth=t.textStrokeWidth,n.color=t.color,n.direction=t.direction,n.opacity=t.opacity,n.paddingLeft=Dt.convertLengthValue_(t.linePadding,t,this.videoContainer_),n.paddingRight=Dt.convertLengthValue_(t.linePadding,t,this.videoContainer_),n.textCombineUpright=t.textCombineUpright,n.textShadow=t.textShadow,t.backgroundImage){let g=t.backgroundImage.replace(/['"()\\]/g,"");n.backgroundImage="url('"+g+"')",n.backgroundRepeat="no-repeat",n.backgroundSize="contain",n.backgroundPosition="center",t.backgroundColor&&(n.backgroundColor=t.backgroundColor),n.width="100%",n.height="100%"}else{let g;if(t.nestedCues.length?g=e:(g=Ge.createHTMLElement("span"),e.appendChild(g)),t.border&&(g.style.border=t.border),!r){let _=s(T=>T.backgroundColor);_?g.style.backgroundColor=_:c&&(g.style.backgroundColor="rgba(0, 0, 0, 0.8)")}c&&(g.setAttribute("translate","no"),g.textContent=c)}o&&!i[i.length-1].isContainer?n.display="inline":(n.display="flex",n.flexDirection="column",n.alignItems="center",t.textAlign==B.textAlign.LEFT||t.textAlign==B.textAlign.START?(n.width="100%",n.alignItems="flex-start"):(t.textAlign==B.textAlign.RIGHT||t.textAlign==B.textAlign.END)&&(n.width="100%",n.alignItems="flex-end"),n.justifyContent=Dt.displayAlignToJustifyContent_(t.displayAlign)),a||(n.margin="0"),n.fontFamily=t.fontFamily,n.fontWeight=t.fontWeight.toString(),n.fontStyle=t.fontStyle,n.letterSpacing=t.letterSpacing;let d=this.getActiveConfig_(),u=d?d.fontScaleFactor:1;if(u!==1||t.fontSize){let g=t.fontSize||"1em";n.fontSize=Dt.convertLengthValue_(g,t,this.videoContainer_,u)}let m=t.line;if(m!=null){let g=t.lineInterpretation;if(g==B.lineInterpretation.LINE_NUMBER){g=B.lineInterpretation.PERCENTAGE;let _=16;this.aspectRatio_&&this.aspectRatio_<1&&(_=32),m<0?m=100+m/_*100:m=m/_*100}g==B.lineInterpretation.PERCENTAGE&&(n.position="absolute",t.writingMode==B.writingMode.HORIZONTAL_TOP_TO_BOTTOM?(n.width="100%",t.lineAlign==B.lineAlign.START?n.top=m+"%":t.lineAlign==B.lineAlign.END&&(n.bottom=100-m+"%")):t.writingMode==B.writingMode.VERTICAL_LEFT_TO_RIGHT?(n.height="100%",t.lineAlign==B.lineAlign.START?n.left=m+"%":t.lineAlign==B.lineAlign.END&&(n.right=100-m+"%")):(n.height="100%",t.lineAlign==B.lineAlign.START?n.right=m+"%":t.lineAlign==B.lineAlign.END&&(n.left=100-m+"%")))}n.lineHeight=t.lineHeight;let f=this.computeCuePositionAlignment_(t);f==B.positionAlign.LEFT?(n.cssFloat="left",t.position!==null&&(n.position="absolute",t.writingMode==B.writingMode.HORIZONTAL_TOP_TO_BOTTOM?(n.left=t.position+"%",n.width="auto"):n.top=t.position+"%")):f==B.positionAlign.RIGHT?(n.cssFloat="right",t.position!==null&&(n.position="absolute",t.writingMode==B.writingMode.HORIZONTAL_TOP_TO_BOTTOM?(n.right=100-t.position+"%",n.width="auto"):n.bottom=t.position+"%")):t.position!==null&&t.position!=50&&(n.position="absolute",t.writingMode==B.writingMode.HORIZONTAL_TOP_TO_BOTTOM?(n.left=t.position+"%",n.width="auto"):n.top=t.position+"%",t.size&&(n.transform="translateX(-50%)")),n.textAlign=t.textAlign,n.textDecoration=t.textDecoration.join(" "),n.writingMode=t.writingMode,(!("writingMode"in document.documentElement.style)||n.writingMode!=t.writingMode)&&(n.webkitWritingMode=t.writingMode),t.size&&(t.writingMode==B.writingMode.HORIZONTAL_TOP_TO_BOTTOM?n.width=t.size+"%":n.height=t.size+"%")}static getLengthValueInfo_(e){let t=new RegExp(/(\d*\.?\d+)([a-z]+|%+)/).exec(e);return t?{value:Number(t[1]),unit:t[2]}:null}static convertLengthValue_(e,t,i,r=1){let s=Dt.getLengthValueInfo_(e);if(!s)return e;let{unit:n,value:a}=s,o=a*r;switch(n){case"%":return Dt.getAbsoluteLengthInPixels_(o/100,t,i);case"c":return Dt.getAbsoluteLengthInPixels_(o,t,i);default:return o+n}}static getAbsoluteLengthInPixels_(e,t,i){return i.clientHeight*e/t.cellResolution.rows+"px"}static inheritProperty_(e,t){for(let i=e.length-1;i>=0;i--){let r=t(e[i]);if(r||r===0)return r}return null}static displayAlignToJustifyContent_(e){switch(e){case B.displayAlign.BEFORE:return"flex-start";case B.displayAlign.CENTER:return"center";default:return"flex-end"}}};l(Dt,"SAFETY_REFRESH_PERIOD_",1),l(Dt,"VISIBILITY_DEBOUNCE_",.25);var Jr=Dt;Jr.MIN_REFRESH_PERIOD_=1/60;Jr.CustomRegion_=new _e(()=>{let y=new He;return y.id="shaka-custom-region",y.height=90,y.width=90,y.viewportAnchorX=5,y.viewportAnchorY=5,y});/*! @license
462
+ * Shaka Player
463
+ * Copyright 2016 Google LLC
464
+ * SPDX-License-Identifier: Apache-2.0
465
+ */var Us=class{static convert(e,t){let i=a=>{let o=a;for(let f of t)if(f.end&&f.start<a){let g=f.end-f.start;o+=g}let c=Math.floor(o/3600),d=Math.floor(o/60%60),u=Math.floor(o%60),m=Math.floor(o*1e3%1e3);return(c<10?"0":"")+c+":"+(d<10?"0":"")+d+":"+(u<10?"0":"")+u+"."+(m<100?m<10?"00":"0":"")+m},r=a=>{let o=[];switch(a.textAlign){case B.textAlign.LEFT:o.push("align:left");break;case B.textAlign.RIGHT:o.push("align:right");break;case B.textAlign.CENTER:o.push("align:middle");break;case B.textAlign.START:o.push("align:start");break;case B.textAlign.END:o.push("align:end");break}switch(a.writingMode){case B.writingMode.VERTICAL_LEFT_TO_RIGHT:o.push("vertical:lr");break;case B.writingMode.VERTICAL_RIGHT_TO_LEFT:o.push("vertical:rl");break}return o.length?" "+o.join(" "):""},s=si.getCuesToFlatten(e),n=`WEBVTT
466
+
467
+ `;for(let a of s)n+=i(a.startTime)+" --> "+i(a.endTime)+r(a)+`
468
+ `,n+=a.payload+`
469
+
470
+ `;return n}};/*! @license
471
+ * Shaka Player
472
+ * Copyright 2016 Google LLC
473
+ * SPDX-License-Identifier: Apache-2.0
474
+ */var Nr=class{constructor(e,t){l(this,"player_");l(this,"config_");l(this,"video_");l(this,"reporter_");l(this,"lastPlayerState_");l(this,"sf_");l(this,"requestTimestampMap_");l(this,"eventManager_");l(this,"startTimeOfLoad_");this.player_=e,this.config_=t,this.video_=null,this.reporter_=null,this.lastPlayerState_=null,this.sf_=void 0,this.requestTimestampMap_=new Map,this.eventManager_=new ue,this.startTimeOfLoad_=0}setMediaElement(e){this.video_=e,this.maybeStartReporter_(),this.reporter_&&this.setupEventListeners_()}configure(e){let t=this.config_;if(this.config_=e,this.reporter_){let i=t&&t.enabled&&!e.enabled,r=t&&e.enabled&&(t.sessionId!==e.sessionId||t.contentId!==e.contentId||t.version!==e.version||t.useHeaders!==e.useHeaders||t.eventTargets!==e.eventTargets);(i||r)&&(this.reporter_.stop(!0),this.reporter_=null,this.lastPlayerState_=null)}!this.reporter_&&this.video_&&(this.maybeStartReporter_(),this.reporter_&&this.setupEventListeners_())}reset(){this.reporter_&&(this.reporter_.stop(!0),this.reporter_=null),this.lastPlayerState_=null,this.sf_=void 0,this.requestTimestampMap_.clear(),this.startTimeOfLoad_=0,this.eventManager_.removeAll()}setBuffering(e){this.setPlayerState_(e?cml.cmcd.CmcdPlayerState.REBUFFERING:cml.cmcd.CmcdPlayerState.PLAYING)}setLowLatency(e){}setStartTimeOfLoad(e){if(this.reporter_&&(this.startTimeOfLoad_=e,this.video_&&this.video_.autoplay)){let t=this.video_.play();t&&t.catch(()=>{this.startTimeOfLoad_=0})}}applyRequestData(e,t,i={}){if(!this.reporter_)return;let r=K.RequestType,s=cml.cmcd.CmcdObjectType;if(t.method==="HEAD"){this.applyToRequest_(t,{});return}switch(e){case r.MANIFEST:{if(i.type){let n=this.getStreamFormat_(i.type);n&&n!==this.sf_&&(this.sf_=n,this.reporter_.update({sf:n,st:this.getStreamType_()}))}this.applyToRequest_(t,{ot:s.MANIFEST,su:this.lastPlayerState_===null});break}case r.SEGMENT:{let n=this.getDataForSegment_(i,t.uris[0]);this.requestTimestampMap_.has(t)&&this.requestTimestampMap_.delete(t),this.requestTimestampMap_.set(t,Date.now()),this.applyToRequest_(t,n);break}case r.LICENSE:case r.SERVER_CERTIFICATE:case r.KEY:this.applyToRequest_(t,{ot:s.KEY});break;case r.TIMING:this.applyToRequest_(t,{ot:s.OTHER});break}}applyResponseData(e,t,i={}){if(!this.reporter_)return;let r=K.RequestType;if(e!==r.SEGMENT)return;let s=this.requestTimestampMap_.get(t.originalRequest);if(this.requestTimestampMap_.delete(t.originalRequest),!!this.responseModeEnabled_())try{let n=this.removeCmcdQueryFromUri_(t.originalUri||t.uri),a={url:n};t.status!=null&&(a.rc=t.status),t.originalRequest&&t.originalRequest.timeToFirstByte!=null&&(a.ttfb=t.originalRequest.timeToFirstByte),t.timeMs!=null&&(a.ttlb=t.timeMs),s!=null&&(a.ts=s),t.headers&&t.headers["CMSD-Static"]&&(a.cmsds=btoa(t.headers["CMSD-Static"])),t.headers&&t.headers["CMSD-Dynamic"]&&(a.cmsdd=btoa(t.headers["CMSD-Dynamic"])),this.reporter_.recordResponseReceived({request:{url:n},status:t.status||0},a)}catch(n){p.warnOnce("CMCD_RESPONSE_ERROR","Could not apply CMCD data to response.",n)}}applyTextData(e){this.reporter_&&this.applyToRequest_(e,{ot:cml.cmcd.CmcdObjectType.CAPTION,su:!0})}appendSrcData(e,t){if(!this.reporter_)return e;try{let i=this.buildExternalUriData_();return i.ot=this.getObjectTypeFromMimeType_(t),i.su=!0,cml.cmcd.appendCmcdQuery(e,i,this.encodeOptionsForUri_(e))}catch(i){return p.warnOnce("CMCD_SRC_ERROR","Could not generate src CMCD data.",i),e}}appendTextTrackData(e){if(!this.reporter_)return e;try{let t=this.buildExternalUriData_();return t.ot=cml.cmcd.CmcdObjectType.CAPTION,t.su=!0,cml.cmcd.appendCmcdQuery(e,t,this.encodeOptionsForUri_(e))}catch(t){return p.warnOnce("CMCD_TEXT_TRACK_ERROR","Could not generate text track CMCD data.",t),e}}maybeStartReporter_(){if(this.reporter_||!this.config_||!this.config_.enabled||!this.video_)return;let e=this.toReporterConfig_(this.config_);this.reporter_=new cml.cmcd.CmcdReporter(e,this.makeRequester_()),this.reporter_.start()}toReporterConfig_(e){e.sessionId||(e.sessionId=window.crypto.randomUUID());let t=e.includeKeys&&e.includeKeys.length?e.includeKeys:this.allKeysForVersion_(e.version),i={sid:e.sessionId,cid:e.contentId,transmissionMode:e.useHeaders?cml.cmcd.CMCD_HEADERS:cml.cmcd.CMCD_QUERY,enabledKeys:t,version:e.version===2?cml.cmcd.CMCD_V2:cml.cmcd.CMCD_V1},r=e.eventTargets;return r&&r.length&&(i.eventTargets=r.filter(s=>s.enabled!==!1&&s.url&&s.events&&s.events.length).map(s=>{let n=s.includeKeys&&s.includeKeys.length?s.includeKeys:this.allKeysForVersion_(s.version||e.version);return{url:s.url,events:s.events,interval:s.interval,batchSize:s.batchSize,enabledKeys:n,version:cml.cmcd.CMCD_V2}})),i}allKeysForVersion_(e){return e===2||e===cml.cmcd.CMCD_V2?Array.from(new Set([].concat(cml.cmcd.CMCD_REQUEST_KEYS,cml.cmcd.CMCD_RESPONSE_KEYS,cml.cmcd.CMCD_EVENT_KEYS))):[].concat(cml.cmcd.CMCD_V1_KEYS)}makeRequester_(){return async e=>{let t=K.RequestType,i=K.defaultRetryParameters(),r=e.url,s=K.makeRequest([r],i);s.method=e.method||"POST",s.headers=e.headers||{},s.body=q.toUTF8(e.body);try{let n=this.player_.getNetworkingEngine();return v.assert(n,"Must have net engine"),await n.request(t.CMCD,s).promise,{status:200}}catch(n){return{status:n&&n.status?n.status:0}}}}setPlayerState_(e){!this.reporter_||this.lastPlayerState_===e||(this.lastPlayerState_=e,this.reporter_.update({sta:e}))}applyToRequest_(e,t){try{let i={url:e.uris[0],headers:Object.assign({},e.headers||{}),customData:{}},r=this.reporter_.createRequestReport(i,t),s=r.headers||{},n=Object.keys(i.headers).length;if(Object.keys(s).length>n){e.headers||(e.headers={});for(let c of Object.keys(s))c in i.headers||(e.headers[c]=s[c])}let o=r.url;if(o&&o!==i.url)if(e.uris.length===1)e.uris=[o];else{let c=null;try{c=new URL(o).searchParams.get("CMCD")}catch(d){}if(c!=null){let d=c;e.uris=e.uris.map(u=>{if(u.includes("offline:"))return u;try{let m=new URL(u);return m.searchParams.set("CMCD",d),m.toString()}catch(m){return u}})}}}catch(i){p.warnOnce("CMCD_REQUEST_ERROR","Could not apply CMCD data to request.",i)}}responseModeEnabled_(){let e=this.config_.eventTargets;return e?e.some(t=>t.enabled!==!1&&t.events&&t.events.includes(cml.cmcd.CmcdEventType.RESPONSE_RECEIVED)):!1}buildExternalUriData_(){return{v:this.config_.version,sid:this.config_.sessionId,cid:this.config_.contentId,sf:this.sf_,mtp:this.player_.getBandwidthEstimate()/1e3}}encodeOptionsForUri_(e){let t={};if(e&&!e.includes("offline:"))try{t.baseUrl=new URL(e).origin}catch(i){}return this.config_.version!=null&&(t.version=this.config_.version),t.reportingMode=cml.cmcd.CMCD_REQUEST_MODE,t}setupEventListeners_(){let e=cml.cmcd.CmcdPlayerState,t=cml.cmcd.CmcdEventType;this.eventManager_.listen(this.video_,"pause",()=>{this.setPlayerState_(e.PAUSED)}),this.eventManager_.listen(this.video_,"playing",()=>{this.setPlayerState_(e.PLAYING),this.reporter_&&this.startTimeOfLoad_&&(this.reporter_.update({msd:Date.now()-this.startTimeOfLoad_}),this.startTimeOfLoad_=0)}),this.eventManager_.listen(this.video_,"seeking",()=>{this.setPlayerState_(e.SEEKING)}),this.eventManager_.listen(this.video_,"ended",()=>{this.setPlayerState_(e.ENDED)}),this.eventManager_.listen(this.video_,"volumechange",()=>{if(!this.reporter_||!this.video_)return;let r=this.video_.muted;this.reporter_.recordEvent(r?t.MUTE:t.UNMUTE)}),this.eventManager_.listen(this.player_,"buffering",r=>{let s=r.buffering;this.setPlayerState_(s?e.REBUFFERING:e.PLAYING)}),this.eventManager_.listen(this.player_,"adaptation",()=>{if(!this.reporter_||!this.player_)return;let s=this.player_.getVariantTracks().find(n=>n.active);s&&s.bandwidth&&this.reporter_.update({br:[s.bandwidth/1e3]})}),this.eventManager_.listen(this.player_,"error",()=>{this.setPlayerState_(e.FATAL_ERROR),this.reporter_&&this.reporter_.recordEvent(t.ERROR)}),this.eventManager_.listen(document,"fullscreenchange",()=>{if(!this.reporter_)return;let r=!!document.fullscreenElement;this.reporter_.recordEvent(r?t.PLAYER_EXPAND:t.PLAYER_COLLAPSE)});let i=this.video_;(i.webkitPresentationMode||i.webkitSupportsFullscreen)&&this.eventManager_.listen(i,"webkitpresentationmodechanged",()=>{this.reporter_&&(i.webkitPresentationMode?this.reporter_.recordEvent(i.webkitPresentationMode!=="inline"?t.PLAYER_EXPAND:t.PLAYER_COLLAPSE):i.webkitSupportsFullscreen&&this.reporter_.recordEvent(i.webkitDisplayingFullscreen?t.PLAYER_EXPAND:t.PLAYER_COLLAPSE))}),this.eventManager_.listen(this.video_,"enterpictureinpicture",()=>{this.reporter_&&this.reporter_.recordEvent(t.PLAYER_EXPAND)}),this.eventManager_.listen(this.video_,"leavepictureinpicture",()=>{this.reporter_&&this.reporter_.recordEvent(t.PLAYER_COLLAPSE)}),"documentPictureInPicture"in window&&this.eventManager_.listen(window.documentPictureInPicture,"enter",r=>{if(!this.reporter_)return;this.reporter_.recordEvent(t.PLAYER_EXPAND);let n=r.window;this.eventManager_.listenOnce(n,"pagehide",()=>{this.reporter_&&this.reporter_.recordEvent(t.PLAYER_COLLAPSE)})}),this.eventManager_.listen(document,"visibilitychange",()=>{if(!this.reporter_)return;let r=document.hidden;this.reporter_.update({bg:r})}),this.eventManager_.listen(this.player_,"complete",()=>{this.setPlayerState_(e.ENDED)})}removeCmcdQueryFromUri_(e){if(!e.includes("CMCD="))return e;try{let t=new URL(e);return t.searchParams.delete("CMCD"),t.toString()}catch(t){return p.error("Failed to parse URI for CMCD removal:",e,t),e}}getObjectType_(e){if(e.type===K.AdvancedRequestType.INIT_SEGMENT)return cml.cmcd.CmcdObjectType.INIT;let t=e.stream;if(!t)return;let i=t.type;if(i=="video")return t.codecs&&t.codecs.includes(",")?cml.cmcd.CmcdObjectType.MUXED:cml.cmcd.CmcdObjectType.VIDEO;if(i=="audio")return cml.cmcd.CmcdObjectType.AUDIO;if(i=="text")return t.mimeType==="application/mp4"?cml.cmcd.CmcdObjectType.TIMED_TEXT:cml.cmcd.CmcdObjectType.CAPTION}getObjectTypeFromMimeType_(e){switch(e.toLowerCase()){case"audio/mp4":case"audio/webm":case"audio/ogg":case"audio/mpeg":case"audio/aac":case"audio/flac":case"audio/wav":return cml.cmcd.CmcdObjectType.AUDIO;case"video/webm":case"video/mp4":case"video/mpeg":case"video/mp2t":return cml.cmcd.CmcdObjectType.MUXED;case"application/x-mpegurl":case"application/vnd.apple.mpegurl":case"audio/x-mpegurl":case"application/dash+xml":case"video/vnd.mpeg.dash.mpd":case"application/vnd.ms-sstr+xml":return cml.cmcd.CmcdObjectType.MANIFEST;default:return}}getBufferLength_(e){let t=this.player_.getBufferedInfo()[e];if(!t.length)return NaN;let i=this.getCurrentTime_(),r=t.find(s=>s.start<=i&&s.end>=i);return r?(r.end-i)*1e3:NaN}getRemainingBufferLength_(e){let t=this.player_.getBufferedInfo()[e];if(!t.length)return 0;let i=this.getCurrentTime_(),r=t.find(s=>s.start<=i&&s.end>=i);return r?(r.end-i)*1e3:0}calculateRtp_(e,t){let i=this.player_.getPlaybackRate()||1,r=this.getRemainingBufferLength_(e.type)||500,s=e.bandwidth;if(!s)return NaN;let n=t.endTime-t.startTime,a=s*n/1e3,o=r/i/1e3;return a/o*this.config_.rtpSafetyFactor}getStreamFormat_(e){let t=K.AdvancedRequestType;switch(e){case t.MPD:return cml.cmcd.CmcdStreamingFormat.DASH;case t.MASTER_PLAYLIST:case t.MEDIA_PLAYLIST:return cml.cmcd.CmcdStreamingFormat.HLS}}getStreamType_(){return this.player_.isLive()?cml.cmcd.CmcdStreamType.LIVE:cml.cmcd.CmcdStreamType.VOD}getTopBandwidth_(e){let t=this.player_.getVariantTracks();if(!t.length)return NaN;let i=t[0];for(let s of t)s.type==="variant"&&s.bandwidth>i.bandwidth&&(i=s);let r=cml.cmcd.CmcdObjectType;switch(e){case r.VIDEO:return i.videoBandwidth||NaN;case r.AUDIO:return i.audioBandwidth||NaN;default:return i.bandwidth}}getDataForSegment_(e,t){let i=e.segment,r=0;i&&(r=i.endTime-i.startTime);let s={d:r*1e3,st:this.getStreamType_()};s.ot=this.getObjectType_(e);let n=cml.cmcd.CmcdObjectType,a=s.ot===n.VIDEO||s.ot===n.AUDIO||s.ot===n.MUXED||s.ot===n.TIMED_TEXT,o=e.stream;if(o){let c=this.player_.getPlaybackRate();if(a){let d=this.getBufferLength_(o.type);if(Number.isFinite(d)&&(s.bl=d),s.ot!==n.TIMED_TEXT){let u=this.getRemainingBufferLength_(o.type);c?s.dl=u/Math.abs(c):s.dl=u}}if(o.bandwidth&&(s.br=o.bandwidth/1e3),o.segmentIndex&&i){let d=c<0,u=o.segmentIndex.getIteratorForTime(i.endTime,!0,d);if(u){let f=u.next().value;if(f&&f!=i&&(t&&!ye.equal(i.getUris(),f.getUris())&&(s.nor=f.getUris()[0]),(f.startByte||f.endByte)&&(i.startByte!=f.startByte||i.endByte!=f.endByte))){let g=f.startByte+"-";f.endByte&&(g+=f.endByte),s.nrr=g}}let m=this.calculateRtp_(o,i);Number.isFinite(m)&&(s.rtp=m)}}if(a&&s.ot!==n.TIMED_TEXT){let c=this.getTopBandwidth_(s.ot)/1e3;Number.isFinite(c)&&(s.tb=c)}if(this.player_.isLive()){let c=this.player_.getLiveLatency();c&&(s.ltc=c)}return s.su=this.lastPlayerState_===null||this.lastPlayerState_===cml.cmcd.CmcdPlayerState.REBUFFERING,s}getCurrentTime_(){return this.video_?this.video_.currentTime:0}};l(Nr,"StreamingFormat",{DASH:"d",HLS:"h",SMOOTH:"s",OTHER:"o"}),l(Nr,"EventType",{BITRATE_CHANGE:"bc",PLAY_STATE:"ps",PLAYBACK_RATE:"pr",ERROR:"e",TIME_INTERVAL:"t",CONTENT_ID:"c",BACKGROUNDED_MODE:"b",MUTE:"m",UNMUTE:"um",PLAYER_EXPAND:"pe",PLAYER_COLLAPSE:"pc",RESPONSE_RECEIVED:"rr",AD_START:"as",AD_END:"ae",AD_BREAK_START:"abs",AD_BREAK_END:"abe",SKIP:"sk",CUSTOM_EVENT:"ce"}),l(Nr,"PlayerState",{STARTING:"s",PLAYING:"p",SEEKING:"k",REBUFFERING:"r",PAUSED:"a",WAITING:"w",ENDED:"e",FATAL_ERROR:"f",QUIT:"q",PRELOADING:"d"});/*! @license
475
+ * Shaka Player
476
+ * Copyright 2016 Google LLC
477
+ * SPDX-License-Identifier: Apache-2.0
478
+ */var Pi=class Pi{constructor(e){l(this,"config_");l(this,"staticParams_");l(this,"dynamicParams_");this.config_=e,this.staticParams_=null,this.dynamicParams_=null}configure(e){this.config_=e}reset(){this.staticParams_=null,this.dynamicParams_=null}processHeaders(e){if(!this.config_.enabled)return;let t=e[Pi.CMSD_STATIC_HEADER_NAME_];if(t){let r=this.parseCMSDStatic_(t);r&&(this.staticParams_=r)}let i=e[Pi.CMSD_DYNAMIC_HEADER_NAME_];if(i){let r=this.parseCMSDDynamic_(i);r&&(this.dynamicParams_=r)}}getMaxBitrate(){let e=Pi.KEYS_.MAX_SUGGESTED_BITRATE;return!this.config_.enabled||!this.config_.applyMaximumSuggestedBitrate||!this.dynamicParams_||!this.dynamicParams_.has(e)?null:this.dynamicParams_.get(e)*1e3}getEstimatedThroughput(){let e=Pi.KEYS_.ESTIMATED_THROUGHPUT;return!this.config_.enabled||!this.dynamicParams_||!this.dynamicParams_.has(e)?null:this.dynamicParams_.get(e)*1e3}getResponseDelay(){let e=Pi.KEYS_.RESPONSE_DELAY;return!this.config_.enabled||!this.dynamicParams_||!this.dynamicParams_.has(e)?null:this.dynamicParams_.get(e)}getRoundTripTime(){let e=Pi.KEYS_.ROUND_TRIP_TIME;return!this.config_.enabled||!this.dynamicParams_||!this.dynamicParams_.has(e)?null:this.dynamicParams_.get(e)}getBandwidthEstimate(e){let t=this.getEstimatedThroughput();if(!t)return e;let i=this.config_.estimatedThroughputWeightRatio;return i>0&&i<=1?e*(1-i)+t*i:e}parseCMSDStatic_(e){try{let t=new Map,i=e.split(",");for(let r=0;r<i.length;r++){let s=i[r].split("="),n=s[0],a=this.parseParameterValue_(s[1]);t.set(n,a)}return t}catch(t){return p.warning("Failed to parse CMSD-Static response header value:",t),null}}parseCMSDDynamic_(e){try{let t=new Map,i=e.split(";");for(let r=1;r<i.length;r++){let s=i[r].split("="),n=s[0],a=this.parseParameterValue_(s[1]);t.set(n,a)}return t}catch(t){return p.warning("Failed to parse CMSD-Dynamic response header value:",t),null}}parseParameterValue_(e){return e?e.toLowerCase()==="false"?!1:/^[-0-9]/.test(e)?parseInt(e,10):e.replace(/["]+/g,""):!0}};l(Pi,"CMSD_STATIC_HEADER_NAME_","cmsd-static"),l(Pi,"CMSD_DYNAMIC_HEADER_NAME_","cmsd-dynamic"),l(Pi,"KEYS_",{AVAILABILITY_TIME:"at",DURESS:"du",ENCODED_BITRATE:"br",ESTIMATED_THROUGHPUT:"etp",HELD_TIME:"ht",INTERMEDIARY_IDENTIFIER:"n",MAX_SUGGESTED_BITRATE:"mb",NEXT_OBJECT_RESPONSE:"nor",NEXT_RANGE_RESPONSE:"nrr",OBJECT_DURATION:"d",OBJECT_TYPE:"ot",RESPONSE_DELAY:"rd",ROUND_TRIP_TIME:"rtt",STARTUP:"su",STREAM_TYPE:"st",STREAMING_FORMAT:"sf",VERSION:"v"});var Tn=Pi;/*! @license
479
+ * Shaka Player
480
+ * Copyright 2016 Google LLC
481
+ * SPDX-License-Identifier: Apache-2.0
482
+ */var Zr=class{constructor(){l(this,"acquiredIdentifier");l(this,"unlockQueue");this.acquiredIdentifier=null,this.unlockQueue=[]}async acquire(e){p.v2(e+" has requested mutex"),this.acquiredIdentifier&&await new Promise(t=>this.unlockQueue.push(t)),this.acquiredIdentifier=e,p.v2(e+" has acquired mutex")}release(){p.v2(this.acquiredIdentifier+" has released mutex"),this.unlockQueue.length>0?this.unlockQueue.shift()():this.acquiredIdentifier=null}releaseAll(){for(;this.acquiredIdentifier;)this.release()}};/*! @license
483
+ * Shaka Player
484
+ * Copyright 2016 Google LLC
485
+ * SPDX-License-Identifier: Apache-2.0
486
+ */var es=class{constructor(e){l(this,"video_");l(this,"callbackHandle_");l(this,"boundCallback_");this.video_=e,this.callbackHandle_=null,this.boundCallback_=null}start(e,t=!1){if(this.cancelPending_(),!this.video_||!("requestVideoFrameCallback"in this.video_))return!1;let i=(r,s)=>{this.video_&&this.boundCallback_===i&&e(r,s),this.video_&&this.boundCallback_===i&&!t&&(this.callbackHandle_=this.video_.requestVideoFrameCallback(i))};return this.boundCallback_=i,this.callbackHandle_=this.video_.requestVideoFrameCallback(i),!0}release(){this.cancelPending_(),this.video_=null}cancelPending_(){var e,t;this.callbackHandle_!==null&&((t=(e=this.video_)==null?void 0:e.cancelVideoFrameCallback)==null||t.call(e,this.callbackHandle_),this.callbackHandle_=null),this.boundCallback_=null}};/*! @license
487
+ * Shaka Player
488
+ * Copyright 2016 Google LLC
489
+ * SPDX-License-Identifier: Apache-2.0
490
+ */var Q=class Q extends Le{constructor(t,i=null,r){var n,a,o;super();l(this,"loadMode_");l(this,"video_");l(this,"videoContainer_");l(this,"isTextVisible_");l(this,"globalEventManager_");l(this,"attachEventManager_");l(this,"loadEventManager_");l(this,"trickPlayEventManager_");l(this,"adManagerEventManager_");l(this,"networkingEngine_");l(this,"drmEngine_");l(this,"mediaSourceEngine_");l(this,"playhead_");l(this,"operationId_");l(this,"mutex_");l(this,"playheadObservers_");l(this,"playRateController_");l(this,"bufferPoller_");l(this,"bufferObserver_");l(this,"regionTimeline_");l(this,"metadataRegionTimeline_");l(this,"emsgRegionTimeline_");l(this,"cmcdManager_");l(this,"cmsdManager_");l(this,"lcevcCanvas_");l(this,"lcevcDec_");l(this,"qualityObserver_");l(this,"streamingEngine_");l(this,"parser_");l(this,"parserFactory_");l(this,"manifest_");l(this,"assetUri_");l(this,"mimeType_");l(this,"startTime_");l(this,"fullyLoaded_");l(this,"abrManager_");l(this,"abrManagerFactory_");l(this,"nextExternalStreamId_");l(this,"externalSrcEqualsThumbnailsStreams_");l(this,"deferredCloseSegmentIndex_");l(this,"externalSrcEqualsChapterStreams_");l(this,"completionPercent_");l(this,"config_");l(this,"lowLatencyConfig_");l(this,"currentTargetLatency_");l(this,"rebufferingCount_");l(this,"targetLatencyReached_");l(this,"maxHwRes_");l(this,"manifestFilterer_");l(this,"createdPreloadManagers_");l(this,"stats_");l(this,"currentAdaptationSetCriteria_");l(this,"currentTextLanguage_");l(this,"currentTextRole_");l(this,"currentTextForced_");l(this,"cleanupOnUnload_");l(this,"adManager_");l(this,"queueManager_");l(this,"preloadDueAdManager_");l(this,"preloadDueAdManagerVideo_");l(this,"preloadDueAdManagerVideoEnded_");l(this,"externalSrcEqualsTextTracks_");l(this,"preloadDueAdManagerTimer_");l(this,"checkVariantsTimer_");l(this,"preloadNextUrl_");l(this,"textDisplayer_");l(this,"speechToText_");l(this,"pendingExtraTrackPromises_");l(this,"frameHandler_");l(this,"operationManager_");l(this,"playbackObjectUrl_");l(this,"lastTextFactory_");this.loadMode_=Q.LoadMode.NOT_LOADED,this.video_=null,this.videoContainer_=i,this.isTextVisible_=!1,this.globalEventManager_=new ue,this.attachEventManager_=new ue,this.loadEventManager_=new ue,this.trickPlayEventManager_=new ue,this.adManagerEventManager_=new ue,this.networkingEngine_=null,this.drmEngine_=null,this.mediaSourceEngine_=null,this.playhead_=null,this.operationId_=0,this.mutex_=new Zr,this.playheadObservers_=null,this.playRateController_=null,this.bufferPoller_=null,this.bufferObserver_=null,this.regionTimeline_=null,this.metadataRegionTimeline_=null,this.emsgRegionTimeline_=null,this.cmcdManager_=null,this.cmsdManager_=null,this.lcevcCanvas_=null,this.lcevcDec_=null,this.qualityObserver_=null,this.streamingEngine_=null,this.parser_=null,this.parserFactory_=null,this.manifest_=null,this.assetUri_=null,this.mimeType_=null,this.startTime_=null,this.fullyLoaded_=!1,this.abrManager_=null,this.abrManagerFactory_=null,this.nextExternalStreamId_=1e9,this.externalSrcEqualsThumbnailsStreams_=[],this.deferredCloseSegmentIndex_=new Map,this.externalSrcEqualsChapterStreams_=[],this.completionPercent_=-1,this.config_=this.defaultConfig_(),this.lowLatencyConfig_=st.createDefaultForLL(),this.currentTargetLatency_=null,this.rebufferingCount_=-1,this.targetLatencyReached_=null,this.lastTextFactory_,this.maxHwRes_={width:1/0,height:1/0},this.manifestFilterer_=new Rr(this.config_,this.maxHwRes_,null),this.createdPreloadManagers_=[],this.stats_=null,this.currentAdaptationSetCriteria_=this.config_.adaptationSetCriteriaFactory();let s={preferredAudio:this.config_.preferredAudio,preferredVideo:this.config_.preferredVideo,language:"",role:"",videoRole:"",channelCount:0,hdrLevel:"",spatialAudio:!1,videoLayout:"",audioLabel:"",videoLabel:"",preferredAudioCodecs:[],preferredAudioChannelCount:0,codecSwitchingStrategy:this.config_.mediaSource.codecSwitchingStrategy,audioCodec:"",activeAudioCodec:"",activeAudioChannelCount:0,keySystem:this.keySystem()};st.addDeprecatedConfigFields(s),this.currentAdaptationSetCriteria_.configure(s),this.currentTextLanguage_=((n=this.config_.preferredText[0])==null?void 0:n.language)||"",this.currentTextRole_=((a=this.config_.preferredText[0])==null?void 0:a.role)||"",this.currentTextForced_=((o=this.config_.preferredText[0])==null?void 0:o.forced)||!1,this.cleanupOnUnload_=[],r&&r(this),this.cmcdManager_=this.createCmcd_(),this.cmsdManager_=this.createCmsd_(),this.networkingEngine_=this.createNetworkingEngine(),this.adManager_=null,this.queueManager_=null,this.preloadDueAdManager_=null,this.preloadDueAdManagerVideo_=null,this.preloadDueAdManagerVideoEnded_=!1,this.externalSrcEqualsTextTracks_=[],this.preloadDueAdManagerTimer_=new ae(async()=>{this.preloadDueAdManager_&&(v.assert(this.preloadDueAdManagerVideo_,"Must have video"),await this.attach(this.preloadDueAdManagerVideo_,!0),await this.load(this.preloadDueAdManager_),this.preloadDueAdManagerVideoEnded_?this.preloadDueAdManagerVideo_.pause():this.preloadDueAdManagerVideo_.play(),this.preloadDueAdManager_=null,this.preloadDueAdManagerVideoEnded_=!1)}),Q.adManagerFactory_&&(this.adManager_=Q.adManagerFactory_(this),this.adManager_.configure(this.config_.ads),this.adManagerEventManager_.listen(this.adManager_,"ad-content-pause-requested",async c=>{if(this.preloadDueAdManagerTimer_.stop(),!this.preloadDueAdManager_){this.preloadDueAdManagerVideo_=this.video_,this.preloadDueAdManagerVideoEnded_=this.isEnded();let d=c.saveLivePosition||!1,u=!0;this.isLive()&&(u=d),this.preloadDueAdManager_=await this.detachAndSavePreload(!0,u)}}),this.adManagerEventManager_.listen(this.adManager_,"ad-content-resume-requested",c=>{let d=c.offset||0;this.preloadDueAdManager_&&this.preloadDueAdManager_.setOffsetToStartTime(d),this.preloadDueAdManagerTimer_.tickAfter(.1)}),this.adManagerEventManager_.listen(this.adManager_,"ad-content-attach-requested",async c=>{!this.video_&&this.preloadDueAdManagerVideo_&&(await this.attach(this.preloadDueAdManagerVideo_,!0),this.preloadDueAdManagerVideo_=null)})),Q.queueManagerFactory_&&(this.queueManager_=Q.queueManagerFactory_(this),this.queueManager_.configure(this.config_.queue)),this.globalEventManager_.listen(window,"online",()=>{this.restoreDisabledVariants_(),this.retryStreaming()}),this.checkVariantsTimer_=new ae(()=>this.checkVariants_()),this.preloadNextUrl_=null,this.textDisplayer_=null,this.speechToText_=null,this.pendingExtraTrackPromises_=new Set,this.frameHandler_=null,this.operationManager_=new gi,this.playbackObjectUrl_=null,t&&(p.alwaysWarn("Please migrate from initializing Player with a mediaElement; use the attach method instead."),this.attach(t,!0))}createLcevcDec_(t,i){this.lcevcDec_==null&&(this.lcevcDec_=new wr(this.video_,this.lcevcCanvas_,t,i),this.mediaSourceEngine_&&this.mediaSourceEngine_.updateLcevcDec(this.lcevcDec_))}closeLcevcDec_(){this.lcevcDec_!=null&&(this.lcevcDec_.hideCanvas(),this.lcevcDec_.release(),this.lcevcDec_=null)}setupLcevc_(t,i){i||t.lcevc.enabled?(this.closeLcevcDec_(),this.createLcevcDec_(t.lcevc,i)):this.closeLcevcDec_()}static makeEvent_(t,i){return new U(t,i)}async destroy(){if(this.loadMode_==Q.LoadMode.DESTROYED)return;this.closeLcevcDec_();let t=this.detach();this.loadMode_=Q.LoadMode.DESTROYED,await t,await this.destroyAllPreloads(),this.globalEventManager_&&(this.globalEventManager_.release(),this.globalEventManager_=null),this.attachEventManager_&&(this.attachEventManager_.release(),this.attachEventManager_=null),this.loadEventManager_&&(this.loadEventManager_.release(),this.loadEventManager_=null),this.trickPlayEventManager_&&(this.trickPlayEventManager_.release(),this.trickPlayEventManager_=null),this.adManagerEventManager_&&(this.adManagerEventManager_.release(),this.adManagerEventManager_=null),this.abrManagerFactory_=null,this.config_=null,this.stats_=null,this.videoContainer_=null,this.cmcdManager_=null,this.cmsdManager_=null,this.networkingEngine_&&(await this.networkingEngine_.destroy(),this.networkingEngine_=null),this.abrManager_&&(this.abrManager_.release(),this.abrManager_=null),this.queueManager_&&(this.queueManager_.destroy(),this.queueManager_=null),this.speechToText_&&(this.speechToText_.release(),this.speechToText_=null),this.frameHandler_&&(this.frameHandler_.release(),this.frameHandler_=null),super.release()}static registerSupportPlugin(t,i){Q.supportPlugins_.set(t,i)}static setAdManagerFactory(t){Q.adManagerFactory_=t}static setQueueManagerFactory(t){Q.queueManagerFactory_=t}static isBrowserSupported(){if(window.Promise||p.alwaysWarn("A Promise implementation or polyfill is required"),!(!!window.Promise&&!!window.Uint8Array&&!!Array.prototype.forEach)||(navigator.userAgent||"").includes("Trident/"))return!1;let r=j.getDevice();return r.supportsMediaSource()?!0:r.supportsMediaType("application/x-mpegurl")}static async probeSupport(t=!0){v.assert(Q.isBrowserSupported(),"Must have basic support");let i={};t&&(i=await Bi.probeSupport());let r=me.probeSupport(),s=dr.probeSupport(),n=j.getDevice();v.assert(n,"device must be non-null");let a=await n.detectMaxHardwareResolution(),o={manifest:r,media:s,drm:i,hardwareResolution:a};return Q.supportPlugins_.forEach((d,u)=>{o[u]=d()}),o}makeStateChangeEvent_(t){this.dispatchEvent(Q.makeEvent_(U.EventName.OnStateChange,new Map().set("state",t)))}async attach(t,i=!0){if(this.loadMode_==Q.LoadMode.DESTROYED)throw this.createAbortLoadError_();let r=this.video_&&this.video_==t;if(this.video_&&this.video_!=t&&await this.detach(),!await this.atomicOperationAcquireMutex_("attach"))try{if(!r){this.makeStateChangeEvent_("attach");let n=a=>this.onVideoError_(a);this.attachEventManager_.listen(t,"error",n),this.video_=t,this.cmcdManager_&&this.cmcdManager_.setMediaElement(t)}let s=j.getDevice();i&&s.supportsMediaSource()&&!this.mediaSourceEngine_&&await this.initializeMediaSourceEngineInner_()}catch(s){throw await this.detach(),s}finally{this.mutex_.release()}}attachCanvas(t){this.lcevcCanvas_=t}async detach(t=!1,i=!1){if(this.loadMode_==Q.LoadMode.DESTROYED)throw this.createAbortLoadError_();if(await this.unload(!1,t,i),!await this.atomicOperationAcquireMutex_("detach"))try{this.video_&&(this.attachEventManager_.removeAll(),this.video_=null),this.makeStateChangeEvent_("detach"),this.adManager_&&!t&&this.adManager_.release()}finally{this.mutex_.release()}}async atomicOperationAcquireMutex_(t){let i=++this.operationId_;return await this.mutex_.acquire(t),i!=this.operationId_?(this.mutex_.release(),!0):!1}async unload(t=!0,i=!1,r=!1){if(this.loadMode_!=Q.LoadMode.DESTROYED&&(this.loadMode_=Q.LoadMode.NOT_LOADED),await this.atomicOperationAcquireMutex_("unload"))return;try{this.fullyLoaded_=!1,this.makeStateChangeEvent_("unload"),this.closeLcevcDec_();let n=this.cleanupOnUnload_.map(o=>o());this.cleanupOnUnload_=[],await Promise.all(n);let a=new Map().set("isSwitchingContent",r);if(this.dispatchEvent(Q.makeEvent_(U.EventName.Unloading,a)),this.regionTimeline_&&(this.regionTimeline_.release(),this.regionTimeline_=null),this.metadataRegionTimeline_&&(this.metadataRegionTimeline_.release(),this.metadataRegionTimeline_=null),this.emsgRegionTimeline_&&(this.emsgRegionTimeline_.release(),this.emsgRegionTimeline_=null),this.video_&&(this.loadEventManager_.removeAll(),this.trickPlayEventManager_.removeAll()),this.checkVariantsTimer_.stop(),this.playheadObservers_&&(this.playheadObservers_.release(),this.playheadObservers_=null),this.bufferPoller_&&(this.bufferPoller_.stop(),this.bufferPoller_=null),this.parser_&&(await this.parser_.stop(),this.parser_=null,this.parserFactory_=null),this.abrManager_&&this.abrManager_.stop(),this.streamingEngine_&&(await this.streamingEngine_.destroy(),this.streamingEngine_=null),this.playRateController_&&(this.playRateController_.release(),this.playRateController_=null),this.playhead_&&(this.playhead_.release(),this.playhead_=null),de.isMediaKeysPolyfilled("webkit")&&this.drmEngine_&&(await this.drmEngine_.destroy(),this.drmEngine_=null),this.mediaSourceEngine_&&(await this.mediaSourceEngine_.destroy(),this.mediaSourceEngine_=null),this.adManager_&&!i&&this.adManager_.onAssetUnload(),this.preloadDueAdManager_&&!i&&(this.preloadDueAdManager_.destroy(),this.preloadDueAdManager_=null),i||this.preloadDueAdManagerTimer_.stop(),this.cmcdManager_&&this.cmcdManager_.reset(),this.cmsdManager_&&this.cmsdManager_.reset(),this.textDisplayer_&&(await this.textDisplayer_.destroy(),this.textDisplayer_=null),this.isTextVisible_=!1,this.speechToText_&&this.speechToText_.disable(),this.pendingExtraTrackPromises_.clear(),this.frameHandler_&&(this.frameHandler_.release(),this.frameHandler_=null),await this.operationManager_.destroy(),this.video_){for(let o of this.externalSrcEqualsTextTracks_)o.src.startsWith("blob:")&&URL.revokeObjectURL(o.src),o.remove();this.externalSrcEqualsTextTracks_=[],Ge.clearSourceFromVideo(this.video_)&&this.video_.load()}if(this.drmEngine_&&(await this.drmEngine_.destroy(),this.drmEngine_=null),this.preloadNextUrl_&&this.assetUri_!=this.preloadNextUrl_.getAssetUri()&&(this.preloadNextUrl_.isDestroyed()||this.preloadNextUrl_.destroy(),this.preloadNextUrl_=null),this.assetUri_=null,this.mimeType_=null,this.bufferObserver_=null,this.manifest_){for(let o of this.manifest_.variants)for(let c of[o.audio,o.video])c&&c.segmentIndex&&c.segmentIndex.release();for(let o of this.manifest_.textStreams)o.segmentIndex&&o.segmentIndex.release()}this.config_&&this.config_.streaming.clearDecodingCache&&(se.clearDecodingConfigCache(),de.clearMediaKeySystemAccessMap()),this.manifest_=null,this.stats_=new tr,this.lastTextFactory_=null,this.targetLatencyReached_=null,this.currentTargetLatency_=null,this.rebufferingCount_=-1,this.externalSrcEqualsThumbnailsStreams_=[];for(let o of this.deferredCloseSegmentIndex_.values())o.stop();this.deferredCloseSegmentIndex_.clear(),this.externalSrcEqualsChapterStreams_=[],this.completionPercent_=-1,this.networkingEngine_&&this.networkingEngine_.clearCommonAccessTokenMap(),this.playbackObjectUrl_&&(URL.revokeObjectURL(this.playbackObjectUrl_),this.playbackObjectUrl_=null),this.updateBufferState_()}finally{this.mutex_.release()}let s=j.getDevice();t&&s.supportsMediaSource()&&!this.mediaSourceEngine_&&this.video_&&await this.initializeMediaSourceEngineInner_()}updateStartTime(t){this.startTime_=t}async load(t,i=null,r){if(this.loadMode_==Q.LoadMode.DESTROYED)throw this.createAbortLoadError_();!this.video_&&this.preloadDueAdManagerVideo_&&(await this.attach(this.preloadDueAdManagerVideo_,!0),this.preloadDueAdManagerVideo_=null);let s=null,n="";if(r=r==null?void 0:r.toLowerCase(),t instanceof Ps){if(t.isDestroyed())throw new h(h.Severity.CRITICAL,h.Category.PLAYER,h.Code.PRELOAD_DESTROYED);s=t,n=s.getAssetUri()||""}else n=t||"";if(await this.mutex_.acquire("load"),this.mutex_.release(),!this.video_)throw new h(h.Severity.CRITICAL,h.Category.PLAYER,h.Code.NO_VIDEO_ELEMENT);this.assetUri_&&(this.assetUri_=n,await this.unload(!1,!1,!0));let a=++this.operationId_,o=async()=>{if(this.operationId_!=a)throw s&&await s.destroy(),this.createAbortLoadError_()},c=async(d,u)=>{try{await this.mutex_.acquire(u),await o(),await d(),await o(),s&&this.config_&&s.reconfigure(this.config_)}finally{this.mutex_.release()}};try{i==null&&s&&(i=s.getStartTime()),this.startTime_=i,this.fullyLoaded_=!1,this.dispatchEvent(Q.makeEvent_(U.EventName.Loading)),s?r=s.getMimeType():r||await c(async()=>{r=await this.guessMimeType_(n)},"guessMimeType_");let d=!!s;s?(s.setEventHandoffTarget(this),this.stats_=s.getStats()):(s=await this.preloadInner_(n,i,r,!0,this.config_),s?(s.markIsLoad(),s.setEventHandoffTarget(this),this.stats_=s.getStats(),s.start(),s.waitForFinish().catch(()=>{})):this.stats_=new tr);let u=!s,m=Date.now()/1e3;this.stats_=s?s.getStats():new tr,this.assetUri_=n,this.mimeType_=r||null,this.updateBufferState_();let f=()=>{let g=this.video_?this.video_.buffered:null;return{start:Je.bufferStart(g)||0,end:Je.bufferEnd(g)||0}};if(this.metadataRegionTimeline_=new zr(f),this.metadataRegionTimeline_.addEventListener("regionadd",g=>{let _=g.region;this.dispatchMetadataEvent_(_,U.EventName.MetadataAdded)}),u)await c(async()=>{v.assert(r,"We should know the mimeType by now!"),await this.initializeSrcEqualsDrmInner_(r)},"initializeSrcEqualsDrmInner_"),await c(async()=>{v.assert(r,"We should know the mimeType by now!"),await this.srcEqualsInner_(m,r)},"srcEqualsInner_");else{this.emsgRegionTimeline_=new zr(f),await c(async()=>{await s.waitForManifest(),this.parserFactory_=s.getParserFactory(),this.parser_=s.receiveParser(),this.manifest_=s.getManifest()},"waitForFinish"),this.mediaSourceEngine_||await c(async()=>{await this.initializeMediaSourceEngineInner_()},"initializeMediaSourceEngineInner_"),await c(async()=>{await s.waitForFinish()},"waitForFinish"),this.config_=s.getConfiguration(),this.manifestFilterer_=s.getManifestFilterer(),this.parser_&&this.parser_.setMediaElement&&this.video_&&this.parser_.setMediaElement(this.video_),this.regionTimeline_=s.receiveRegionTimeline(),this.qualityObserver_=s.getQualityObserver();let g=s.getCurrentAdaptationSetCriteria();if(g&&(this.currentAdaptationSetCriteria_=g),d&&this.video_&&this.video_.nodeName==="AUDIO"&&(this.makeManifestAudioOnly_(),this.configure("manifest.disableVideo",!0)),s.getDrmEngine()||await c(async()=>{await s.initializeDrm(this.video_)},"drmEngine_.init"),this.drmEngine_=s.receiveDrmEngine(),await c(async()=>{await this.drmEngine_.attach(this.video_)},"drmEngine_.attach"),this.currentAdaptationSetCriteria_){let b=this.currentAdaptationSetCriteria_.getConfiguration();b.keySystem=this.keySystem(),this.currentAdaptationSetCriteria_.configure(b)}let _=this.config_.abrFactory;(!this.abrManager_||this.abrManagerFactory_!=_)&&(this.abrManagerFactory_=_,this.abrManager_&&this.abrManager_.release(),this.abrManager_=_(),this.abrManager_.configure(this.config_.abr));let T=s.receiveSegmentPrefetchesById(),S=s.getPrefetchedVariant();await c(async()=>{await this.loadInner_(m,S,T)},"loadInner_"),s.stopQueuingLatePhaseQueuedOperations(),this.mimeType_&&j.getDevice().supportsAirPlay()&&N.isHlsType(this.mimeType_)&&this.mediaSourceEngine_.addSecondarySource(this.assetUri_,this.mimeType_)}this.dispatchEvent(Q.makeEvent_(U.EventName.Loaded))}catch(d){throw d&&d.code!=h.Code.LOAD_INTERRUPTED&&await this.unload(!1),d}finally{s&&await s.destroy(),this.preloadNextUrl_=null}}makeManifestAudioOnly_(){for(let t of this.manifest_.variants)t.video&&(t.video.closeSegmentIndex(),t.video=null),t.audio&&t.audio.bandwidth?t.bandwidth=t.audio.bandwidth:t.bandwidth=0;this.manifest_.variants=this.manifest_.variants.filter(t=>t.audio)}async unloadAndSavePreload(t=!0,i=!1,r=!1,s=!1){let n=await this.savePreload_(r);return await this.unload(t,i,s),n}async detachAndSavePreload(t=!1,i=!1,r=!1){let s=await this.savePreload_(i);return await this.detach(t,r),s}async savePreload_(t=!1){let i=null;if(this.manifest_&&this.parser_&&this.parserFactory_&&this.assetUri_&&this.config_){let r=this.video_.currentTime;t||(r=null),i=await this.makePreloadManager_(this.assetUri_,r,this.mimeType_,this.config_,!0,!1),this.createdPreloadManagers_.push(i),this.parser_&&this.parser_.setMediaElement&&this.parser_.setMediaElement(null);let s=this.streamingEngine_?this.streamingEngine_.getCurrentVariant():null;s&&i.setPrefetchVariant(s),i.attachManifest(this.manifest_,this.parser_,this.parserFactory_),i.attachAdaptationSetCriteria(this.currentAdaptationSetCriteria_),i.start(),this.manifest_=null,this.parser_=null,this.parserFactory_=null,this.abrManager_=null,this.abrManagerFactory_=null}return i}async preload(t,i=null,r,s,n=!1){v.assert(this.config_,"Config must not be null!"),r=r==null?void 0:r.toLowerCase();let a=this.defaultConfig_();st.mergeConfigObjects(a,s||this.config_,this.defaultConfig_());let o=await this.preloadInner_(t,i,r,!1,a);if(o)o.start();else{let c=new h(h.Severity.CRITICAL,h.Category.PLAYER,h.Code.SRC_EQUALS_PRELOAD_NOT_SUPPORTED);if(n)throw c;this.onError_(c)}return o}async destroyAllPreloads(){let t=[];for(let i of this.createdPreloadManagers_)i.isDestroyed()||t.push(i.destroy());this.createdPreloadManagers_=[],await Promise.all(t)}async preloadInner_(t,i,r,s=!1,n){if(v.assert(this.networkingEngine_,"Should have a net engine!"),v.assert(this.config_,"Config must not be null!"),r||(r=await this.guessMimeType_(t)),this.shouldUseSrcEquals_(r))return null;let o=n||this.config_,c=!1;s&&this.video_&&this.video_.nodeName==="AUDIO"&&(c=!0);let d=this.makePreloadManager_(t,i,r||null,o,!s,c);return s?d=d.then(u=>(u.markIsLoad(),u)):d=d.then(u=>(this.createdPreloadManagers_.push(u),u)),d}async makePreloadManager_(t,i,r,s,n=!0,a=!1){v.assert(this.networkingEngine_,"Must have net engine");let o=null,c=Ne.cloneObject(s);a&&(c.manifest.disableVideo=!0);let d=()=>(v.assert(o,"Must have preload manager"),o.hasBeenAttached()&&o.isDestroyed()?null:o),u=()=>d()?d().getConfiguration():this.config_;if(this.maxHwRes_.width==1/0&&this.maxHwRes_.height==1/0&&!this.config_.ignoreHardwareResolution){let A=j.getDevice();v.assert(A,"device must be non-null");let w=await A.detectMaxHardwareResolution();this.maxHwRes_.width=w.width,this.maxHwRes_.height=w.height}let m=new Rr(c,this.maxHwRes_,null),f={networkingEngine:this.networkingEngine_,filter:async A=>{if(await m.filterManifest(A)){let M=Q.makeEvent_(U.EventName.TracksChanged);await Promise.resolve(),o.dispatchEvent(M)}},makeTextStreamsForClosedCaptions:A=>this.makeTextStreamsForClosedCaptions_(A),onTimelineRegionAdded:A=>{o.getRegionTimeline().addRegion(A)},onEvent:A=>o.dispatchEvent(A),onError:A=>o.onError(A),isLowLatencyMode:()=>u().streaming.lowLatencyMode,updateDuration:()=>{this.streamingEngine_&&o.hasBeenAttached()&&this.streamingEngine_.updateDuration()},newDrmInfo:A=>{let w=o.getDrmEngine(),M=w?w.getDrmInfo():null;M&&w.getMediaKeys()&&m.processDrmInfos(M.keySystem,A)},onManifestUpdated:()=>{let A=U.EventName.ManifestUpdated,w=new Map().set("isLive",this.isLive()).set("isInProgress",this.isInProgress());o.dispatchEvent(Q.makeEvent_(A,w)),o.addQueuedOperation(!1,()=>{this.adManager_&&this.adManager_.onManifestUpdated(this.isDynamic())})},getBandwidthEstimate:()=>this.abrManager_.getBandwidthEstimate(),onMetadata:(A,w,M,x)=>{let k=A;(A=="com.apple.hls.interstitial"||A=="com.apple.hls.overlay")&&(k="com.apple.quicktime.HLS");let L={type:k,startTime:w,endTime:M,values:x},V=new Promise(ee=>{o.addQueuedOperation(!1,async()=>{if(this.adManager_){if(this.video_)try{await this.adManager_.onHLSMetadata(L)}catch(oe){}ee()}})});for(let ee of x)ee.name!="ID"&&o.addQueuedOperation(!1,()=>{this.addMetadataToRegionTimeline_(w,M,k,ee)});return V},disableStream:A=>this.disableStream(A,this.config_.streaming.maxDisabledTime),addFont:(A,w)=>this.addFont(A,w),getStreamingRetryParameters:()=>this.config_.streaming.retryParameters,onSegmentReceived:(A,w)=>{o.addQueuedOperation(!1,()=>{var M;(M=this.abrManager_)==null||M.segmentDownloaded(A,w,!0)})}},g=new zr(()=>this.seekRange());g.addEventListener("regionadd",A=>{let w=A.region;this.onRegionEvent_(U.EventName.TimelineRegionAdded,w,o),o.addQueuedOperation(!1,()=>{this.adManager_&&this.adManager_.onDASHMetadata(w)})});let _=null;c.streaming.observeQualityChanges&&(_=new ur(()=>this.getBufferedInfo()),_.addEventListener("qualitychange",A=>{let w=A.quality,M=A.position;this.onMediaQualityChange_(w,M)}),_.addEventListener("audiotrackchange",A=>{let w=A.quality,M=A.position;this.onMediaQualityChange_(w,M,!0)}));let T=!0,S={netEngine:this.networkingEngine_,onError:A=>o.onError(A),onKeyStatus:A=>{o.addQueuedOperation(!0,()=>{this.drmEngine_&&this.onKeyStatus_(A)})},onExpirationUpdated:(A,w)=>{let M=Q.makeEvent_(U.EventName.ExpirationUpdated);o.dispatchEvent(M);let x=o.getParser();x&&x.onExpirationUpdated&&x.onExpirationUpdated(A,w)},onEvent:A=>{if(o.dispatchEvent(A),A.type==U.EventName.DrmSessionUpdate&&T){T=!1;let M=Date.now()/1e3-o.getStartTimeOfDRM();(this.stats_||o.getStats()).setDrmTime(M),this.lcevcDec_&&this.lcevcDec_.hideCanvas()}}},b=this.createNetworkingEngine(d);this.networkingEngine_.copyFiltersInto(b);let C={config:c,manifestPlayerInterface:f,regionTimeline:g,qualityObserver:_,createDrmEngine:()=>this.createDrmEngine(S),manifestFilterer:m,networkingEngine:b,allowPrefetch:n};return o=new Ps(t,r,i,C),o}async guessMimeType_(t){v.assert(this.networkingEngine_,"Should have a net engine!");let i=this.config_.manifest.retryParameters,r=await ct.getMimeType(t,this.networkingEngine_,i);return N.isHlsType(r)?j.getDevice().getBrowserEngine()===ie.BrowserEngine.WEBKIT&&(r="application/vnd.apple.mpegurl"):r==="video/quicktime"&&j.getDevice().getBrowserEngine()===ie.BrowserEngine.CHROMIUM&&(r="video/mp4"),r}shouldUseSrcEquals_(t){if(!j.getDevice().supportsMediaSource())return!0;if(t){let s=(this.video_||Ge.anyMediaElement()).canPlayType(t)!="";if(!s)return!1;let n=me.isSupported(t);return n?(v.assert(s&&n,"Both native and MSE playback should be possible!"),N.isHlsType(t)?j.getDevice().getBrowserEngine()===ie.BrowserEngine.WEBKIT&&(this.config_.drm.servers["com.apple.fps"]||this.config_.drm.servers["com.apple.fps.1_0"])?this.config_.streaming.useNativeHlsForFairPlay:this.config_.streaming.preferNativeHls:N.isDashType(t)?this.config_.streaming.preferNativeDash:!1):!0}return!1}createAndConfigureTextDisplayer_(t=!1){let i=this.config_.textDisplayFactory;if(this.lastTextFactory_!==i||t){let r=this.textDisplayer_;this.textDisplayer_=i(this),this.textDisplayer_.configure(this.config_.textDisplayer),r?(this.textDisplayer_.setTextVisibility(r.isTextVisible()),r.destroy().catch(()=>{})):this.textDisplayer_.setTextVisibility(this.isTextVisible_),this.mediaSourceEngine_&&this.mediaSourceEngine_.setTextDisplayer(this.textDisplayer_),this.lastTextFactory_=i,this.streamingEngine_&&this.streamingEngine_.reloadTextStream()}else this.textDisplayer_&&this.textDisplayer_.configure(this.config_.textDisplayer)}async initializeMediaSourceEngineInner_(){let t=j.getDevice();v.assert(t.supportsMediaSource(),"We should not be initializing media source on a platform that does not support media source."),v.assert(this.video_,"We should have a media element when initializing media source."),v.assert(this.mediaSourceEngine_==null,"We should not have a media source engine yet."),this.makeStateChangeEvent_("media-source"),this.config_.mediaSource.useSourceElements&&Ge.clearSourceFromVideo(this.video_),this.createAndConfigureTextDisplayer_(),v.assert(this.textDisplayer_,"Text displayer should be created already");let i=this.createMediaSourceEngine(this.video_,this.textDisplayer_,{getKeySystem:()=>this.keySystem(),onMetadata:(s,n,a)=>{this.processTimedMetadataMediaSrc_(s,n,a)},onEmsg:s=>{this.addEmsgToRegionTimeline_(s)},onEvent:s=>this.dispatchEvent(s),onManifestUpdate:()=>this.onManifestUpdate_(),getDrmInfo:()=>this.drmInfo()},this.lcevcDec_,this.config_.mediaSource),{segmentRelativeVttTiming:r}=this.config_.manifest;i.setSegmentRelativeVttTiming(r),await i.open(),this.mediaSourceEngine_=i}setupPlayRateController_(t){this.playRateController_=new dn({getRate:()=>t.playbackRate,getDefaultRate:()=>t.defaultPlaybackRate,setRate:i=>{t.playbackRate=i},movePlayhead:i=>{let r=t.currentTime;if(!Je.isBuffered(t.buffered,r)||t.readyState<=HTMLMediaElement.HAVE_CURRENT_DATA)return;let s=r+i,n=this.seekRange();if(s<n.start)r!==n.start&&(t.currentTime=n.start);else if(s>n.end)r!==n.end&&(t.currentTime=n.end);else{if(i<0){let o=Je.getBufferedInfo(t.buffered);for(let c=o.length-1;c>=0;c--)if(s>=o[c].start){s>o[c].end&&(s=Math.max(o[c].start,o[c].end-.5));break}}t.currentTime=s}},isPaused:()=>t.paused})}addBasicMediaListeners_(t,i){this.loadEventManager_.listenMulti(t,[Kt.PLAYING,Kt.PAUSE,Kt.ENDED],()=>{this.updateStateHistory_()}),this.loadEventManager_.listen(t,"ratechange",()=>{this.onRateChange_()});let s=j.getDevice().getRemote(t);s&&(this.loadEventManager_.listen(s,"connect",()=>{this.streamingEngine_&&s.state=="connected"&&this.onTextChanged_(),this.onTracksChanged_()}),this.loadEventManager_.listen(s,"connecting",()=>this.onTracksChanged_()),this.loadEventManager_.listen(s,"disconnect",async()=>{this.streamingEngine_&&s.state=="disconnected"&&(await this.streamingEngine_.resetMediaSource(),this.onTextChanged_()),this.onTracksChanged_()})),t.audioTracks&&this.loadEventManager_.listenMulti(t.audioTracks,["addtrack","removetrack","change"],()=>{this.onTracksChanged_()}),t.videoTracks&&this.loadEventManager_.listenMulti(t.videoTracks,["addtrack","removetrack","change"],()=>{this.onTracksChanged_()});let n=t;if((n.webkitPresentationMode||n.webkitSupportsFullscreen)&&this.loadEventManager_.listen(n,"webkitpresentationmodechanged",()=>{this.videoContainer_&&this.createAndConfigureTextDisplayer_(!0)}),t.textTracks){let a=()=>{this.loadMode_===Q.LoadMode.SRC_EQUALS&&this.textDisplayer_ instanceof mr&&this.onTextChanged_(),this.onTracksChanged_()};this.loadEventManager_.listen(t.textTracks,"addtrack",o=>{let c=o;if(c.track){let d=c.track;switch(v.assert(d instanceof TextTrack,"Wrong track type!"),d.kind){case"metadata":this.processTimedMetadata_(d);break;case"chapters":this.activateChaptersTrack_(d);break;default:a();break}}}),this.loadEventManager_.listenMulti(t.textTracks,["removetrack","change"],a)}t.preload!="none"&&(this.loadEventManager_.listenOnce(t,"loadedmetadata",()=>{let o=Date.now()/1e3-i;this.stats_.setLoadLatency(o)}),this.isAudioOnly()||(this.frameHandler_=new es(t),this.frameHandler_.start(()=>{this.frameHandler_.release(),this.frameHandler_=null;let c=Date.now()/1e3-i;this.stats_.setTimeToFirstFrame(c)},!0)||this.loadEventManager_.listenOnce(t,"loadeddata",()=>{let c=Date.now()/1e3-i;this.stats_.setTimeToFirstFrame(c)})))}async loadInner_(t,i,r){var g;v.assert(this.video_,"We should have a media element by now."),v.assert(this.manifest_,"The manifest should already be parsed."),v.assert(this.assetUri_,"We should have an asset uri by now."),v.assert(this.abrManager_,"We should have an abr manager by now."),this.makeStateChangeEvent_("load");let s=this.video_;this.setupPlayRateController_(s),this.addBasicMediaListeners_(s,t),"onchange"in window.screen&&this.loadEventManager_.listen(window.screen,"change",()=>{if(this.currentAdaptationSetCriteria_.getConfiguration){let _=this.currentAdaptationSetCriteria_.getConfiguration();_.preferredVideo.some(S=>S.hdrLevel=="AUTO")?this.updateAbrManagerVariants_():this.config_.preferredVideo.some(b=>b.hdrLevel=="AUTO")&&this.config_.abr.enabled&&(_.preferredVideo=this.config_.preferredVideo,st.addDeprecatedConfigFields(_),this.currentAdaptationSetCriteria_.configure(_),this.updateAbrManagerVariants_())}});let n=!1;for(let _ of this.manifest_.variants){let T=_.video&&_.video.dependencyStream;T&&(n=wr.isStreamSupported(T))}this.setupLcevc_(this.config_,n),this.currentTextLanguage_=this.config_.preferredText[0]&&this.config_.preferredText[0].language||"",this.currentTextRole_=this.config_.preferredText[0]&&this.config_.preferredText[0].role||"",this.currentTextForced_=((g=this.config_.preferredText[0])==null?void 0:g.forced)||!1,Q.applyPlayRange_(this.manifest_.presentationTimeline,this.config_.playRangeStart,this.config_.playRangeEnd),this.abrManager_.init((_,T,S)=>this.switch_(_,T,S),(_,T)=>{var E;let S=(E=this.streamingEngine_)==null?void 0:E.getCurrentVariant(),b=S&&S[_];b&&this.disableStream(b,T)}),this.abrManager_.setMediaElement(s),this.abrManager_.setCmsdManager(this.cmsdManager_),this.streamingEngine_=this.createStreamingEngine(),this.streamingEngine_.configure(this.config_.streaming),this.loadMode_=Q.LoadMode.MEDIA_SOURCE,this.dispatchEvent(Q.makeEvent_(U.EventName.Streaming));let a=i,o,c;do{if(c=this.streamingEngine_.getCurrentVariant(),!c){let T=this.chooseVariant_(!0);i||(a=T),v.assert(a,"Must choose an initial variant!")}let _=[];o=c||a;for(let T of[o.video,o.audio])T&&!T.segmentIndex&&(_.push(T.createSegmentIndex()),T.dependencyStream&&_.push(T.dependencyStream.createSegmentIndex()));_.length>0&&await Promise.all(_)}while(!o||o.disabledUntilTime!=0);this.updateAbrManagerVariants_(),this.parser_&&this.parser_.onInitialVariantChosen&&this.parser_.onInitialVariantChosen(o),this.manifest_.isLowLatency&&(this.config_.streaming.lowLatencyMode?this.configure(this.lowLatencyConfig_):p.alwaysWarn("Low-latency live stream detected, but low-latency streaming mode is not enabled in Shaka Player. Set streaming.lowLatencyMode configuration to true, and see https://bit.ly/3clctcj for details.")),this.cmcdManager_&&(this.cmcdManager_.setLowLatency(this.manifest_.isLowLatency&&this.config_.streaming.lowLatencyMode),this.cmcdManager_.setStartTimeOfLoad(t*1e3)),Q.applyPlayRange_(this.manifest_.presentationTimeline,this.config_.playRangeStart,this.config_.playRangeEnd),this.streamingEngine_.applyPlayRange(this.config_.playRangeStart,this.config_.playRangeEnd),await this.waitForPendingExtraTrackPromises_(),this.fullyLoaded_=!0,this.dispatchEvent(Q.makeEvent_(U.EventName.CanUpdateStartTime));let d=_=>{this.playhead_=this.createPlayhead(_),this.playheadObservers_=this.createPlayheadObserversForMSE_(_),this.startBufferManagement_(s,!1)};if(!this.config_.streaming.startAtSegmentBoundary){let _=this.startTime_;_==null&&this.manifest_.startTime&&(_=this.manifest_.startTime),d(_)}if(!c){if(v.assert(a,"Must have chosen an initial variant!"),this.config_.streaming.startAtSegmentBoundary){let _=this.manifest_.presentationTimeline,T;if(this.startTime_ instanceof Date){let C=_.getInitialProgramDateTime()||_.getPresentationStartTime();v.assert(C!=null,"Presentation start time should not be null!");let A=this.startTime_.getTime()/1e3-C;A!=null&&(T=A)}T==null&&(T=typeof this.startTime_=="number"?this.startTime_:this.isLive()?1/0:this.video_.currentTime),this.startTime_==null&&this.manifest_.startTime&&(T=this.manifest_.startTime);let S=_.getSeekRangeStart(),b=_.getSeekRangeEnd();T<S?T=S:T>b&&(T=b);let E=await this.adjustStartTime_(a,T);d(E)}this.switchVariant_(a,!0,!1,0)}if(this.playhead_.ready(),!this.getTextTracks().find(_=>_.active)){v.assert(a,"Must have chosen an initial variant!");let _=this.chooseTextStream_(a);_&&(this.addTextStreamToSwitchHistory_(_,!0),this.setInitialTextState_(_)),_&&this.isTextVisible_&&(this.streamingEngine_.switchTextStream(_),this.setTextDisplayerLanguage_())}await this.streamingEngine_.start(r),this.config_.abr.enabled&&(this.abrManager_.enable(),this.onAbrStatusChanged_()),this.onTracksChanged_();let m=this.manifest_.variants.some(_=>_.primary);!this.config_.preferredAudio.length&&!m&&p.warning("No preferred audio language set. We have chosen an arbitrary language initially");let f=this.isDynamic();if(f&&(this.config_.streaming.liveSync&&this.config_.streaming.liveSync.enabled||this.manifest_.serviceDescription||this.config_.streaming.liveSync.panicMode)||this.config_.streaming.vodDynamicPlaybackRate){let _=()=>this.onTimeUpdate_();this.loadEventManager_.listen(s,"timeupdate",_)}if(!f){let _=()=>this.onVideoProgress_();if(this.loadEventManager_.listen(s,"timeupdate",_),this.onVideoProgress_(),this.manifest_.nextUrl){if(this.config_.streaming.preloadNextUrlWindow>0){let T=async()=>{let S=this.seekRange().end-this.video_.currentTime;isNaN(S)||S<=this.config_.streaming.preloadNextUrlWindow&&(this.loadEventManager_.unlisten(s,"timeupdate",T),v.assert(this.manifest_.nextUrl,"this.manifest_.nextUrl should be valid."),this.preloadNextUrl_=await this.preload(this.manifest_.nextUrl))};this.loadEventManager_.listen(s,"timeupdate",T)}this.loadEventManager_.listen(s,"ended",()=>{this.load(this.preloadNextUrl_||this.manifest_.nextUrl)})}}this.adManager_&&this.adManager_.onManifestUpdated(f)}async initializeSrcEqualsDrmInner_(t){v.assert(this.networkingEngine_,"|onInitializeSrcEqualsDrm_| should never be called after |destroy|"),v.assert(this.config_,"|onInitializeSrcEqualsDrm_| should never be called after |destroy|");let i=Date.now()/1e3,r=!0;this.drmEngine_=this.createDrmEngine({netEngine:this.networkingEngine_,onError:n=>{this.onError_(n)},onKeyStatus:n=>{},onExpirationUpdated:(n,a)=>{let o=Q.makeEvent_(U.EventName.ExpirationUpdated);this.dispatchEvent(o)},onEvent:n=>{if(this.dispatchEvent(n),n.type==U.EventName.DrmSessionUpdate&&r){r=!1;let o=Date.now()/1e3-i;this.stats_.setDrmTime(o)}}}),this.drmEngine_.configure(this.config_.drm);let s=se.createEmptyVariant([t]);this.drmEngine_.setSrcEquals(!0),await this.drmEngine_.initForPlayback([s],[]),await this.drmEngine_.attach(this.video_)}async srcEqualsInner_(t,i){this.makeStateChangeEvent_("src-equals"),v.assert(this.video_,"We should have a media element when loading."),v.assert(this.assetUri_,"We should have a valid uri when loading.");let r=this.video_;this.playhead_=new ln(r);let s=!1;if(this.cleanupOnUnload_.push(()=>{s=!0}),this.dispatchEvent(Q.makeEvent_(U.EventName.CanUpdateStartTime)),this.startTime_!=null&&this.playhead_.setStartTime(this.startTime_),this.playheadObservers_=this.createPlayheadObserversForSrcEquals_(this.startTime_||0),this.setupPlayRateController_(r),this.startBufferManagement_(r,!0),r.textTracks){this.createAndConfigureTextDisplayer_();let m=T=>{if(!(this.textDisplayer_ instanceof mr)){let S=this.getFilteredTextTracks_().find(b=>b.mode!=="disabled");S&&(S.mode=T?"showing":"hidden")}};this.loadEventManager_.listen(r,"enterpictureinpicture",()=>m(!0)),this.loadEventManager_.listen(r,"leavepictureinpicture",()=>m(!1));let g=j.getDevice().getRemote(r);g?this.loadEventManager_.listenMulti(g,["connect","connecting","disconnect"],()=>{m(!1)}):"webkitCurrentPlaybackTargetIsWireless"in r&&this.loadEventManager_.listen(r,"webkitcurrentplaybacktargetiswirelesschanged",()=>m(!1));let _=r;(_.webkitPresentationMode||_.webkitSupportsFullscreen)&&this.loadEventManager_.listen(_,"webkitpresentationmodechanged",()=>{_.webkitPresentationMode?m(_.webkitPresentationMode!=="inline"):_.webkitSupportsFullscreen&&m(_.webkitDisplayingFullscreen)})}this.addBasicMediaListeners_(r,t);let n=this.cmcdManager_.appendSrcData(this.assetUri_,i),a;if(this.mimeType_&&this.config_.streaming.processSrcEqualMetadata&&kt.supports(this.mimeType_)){let m=!1,f=K.RequestType.MANIFEST,g=this.config_.streaming.retryParameters,_=K.makeRequest([n],g),T=this.networkingEngine_.request(f,_);this.operationManager_.manage(T);let S=b=>{if(b.request===_){let E=b.headers;E["content-length"]&&!E["icy-br"]&&!E["icy-description"]&&!E["icy-genre"]&&!E["icy-name"]&&!E["icy-url"]||(m=!0,T.abort())}};this.addEventListener(U.EventName.DownloadHeadersReceived,S);try{let b=await T.promise;a=D.toUint8(b.data);let E=new Blob([b.data],{type:this.mimeType_});n=URL.createObjectURL(E),this.playbackObjectUrl_=n}catch(b){if(!m)throw b}finally{this.removeEventListener(U.EventName.DownloadHeadersReceived,S)}}!n.includes("#t=")&&(this.config_.playRangeStart>0||isFinite(this.config_.playRangeEnd))&&(n+="#t=",this.config_.playRangeStart>0&&(n+=this.config_.playRangeStart),isFinite(this.config_.playRangeEnd)&&(n+=","+this.config_.playRangeEnd)),this.mediaSourceEngine_&&(await this.mediaSourceEngine_.destroy(),this.mediaSourceEngine_=null),Ge.clearSourceFromVideo(r),r.src=n;let o=j.getDevice();o.getDeviceType()==ie.DeviceType.TV&&r.load(),r.preload!="none"&&!r.autoplay&&N.isHlsType(i)&&o.getBrowserEngine()===ie.BrowserEngine.WEBKIT&&r.load(),this.loadMode_=Q.LoadMode.SRC_EQUALS,this.dispatchEvent(Q.makeEvent_(U.EventName.Streaming));let c=()=>new Promise(m=>{let g=new ae(m);this.loadEventManager_.listen(r.textTracks,"change",()=>g.tickAfter(.5)),g.tickAfter(.5)}),d=Promise.withResolvers();ui.waitForReadyState(r,HTMLMediaElement.HAVE_METADATA,this.loadEventManager_,async()=>{this.playhead_.ready(),!this.mimeType_||!N.isHlsType(this.mimeType_)||await c(),d.resolve()}),ui.waitForReadyState(r,HTMLMediaElement.HAVE_CURRENT_DATA,this.loadEventManager_,async()=>{if(await c(),s)return;this.setupPreferredAudioOnSrc_();let m=this.getFilteredTextTracks_();if(m.some(f=>f.mode==="showing")&&(this.isTextVisible_=!0,this.textDisplayer_.setTextVisibility(!0)),!(this.textDisplayer_ instanceof mr)){let f=!1;for(let g of m)g.mode!=="disabled"&&(f?(g.mode="disabled",p.alwaysWarn("Found more than one enabled text track, disabling it",g)):(this.enableNativeTrack_(g),f=!0))}this.setupPreferredTextOnSrc_()}),r.error?d.reject(this.videoErrorToShakaError_()):r.preload=="none"&&(p.alwaysWarn('With <video preload="none">, the browser will not load anything until play() is called. We are unable to measure load latency in a meaningful way, and we cannot provide track info yet. Please do not use preload="none" with Shaka Player.'),d.resolve()),this.loadEventManager_.listenOnce(r,"error",()=>{d.reject(this.videoErrorToShakaError_())}),await it.promiseWithTimeout(this.config_.streaming.loadTimeout,d.promise);let u=this.isDynamic();if(u&&(this.config_.streaming.liveSync&&this.config_.streaming.liveSync.enabled||this.config_.streaming.liveSync.panicMode)||this.config_.streaming.vodDynamicPlaybackRate){let m=()=>this.onTimeUpdate_();this.loadEventManager_.listen(r,"timeupdate",m)}if(!u){let m=()=>this.onVideoProgress_();this.loadEventManager_.listen(r,"timeupdate",m),this.onVideoProgress_()}if(this.adManager_&&(this.adManager_.onManifestUpdated(u),u)){let m=this.seekRange().end;this.loadEventManager_.listen(r,"progress",()=>{let f=this.seekRange().end;m!=f&&(this.adManager_.onManifestUpdated(this.isDynamic()),m=f)})}if(this.mimeType_&&a){let m=kt.getMetadataFrames(a,this.mimeType_);if(m.length){let g=this.video_.duration,_="org.id3";for(let T of m)this.addMetadataToRegionTimeline_(0,g,_,T)}}await this.waitForPendingExtraTrackPromises_(),this.fullyLoaded_=!0}setupPreferredAudioOnSrc_(){let t=this.config_.preferredAudio;if(t.length&&this.video_&&this.video_.audioTracks){let i=this.getVariantTracks();for(let r of t){if(!r.language)continue;let s=se.filterStreamsByLanguageAndRole(i,r.language,r.role,!1)[0];if(s){this.selectVariantTrack(s);return}}}}setupPreferredTextOnSrc_(){let t=this.getTextTracks();if(t.some(r=>r.active))return;let i=this.config_.preferredText;for(let r of i){if(!r.language)continue;let s=se.filterStreamsByLanguageAndRole(t,r.language,r.role,r.forced);if(s.length){this.selectTextTrack(s[0]);return}}if(this.video_&&this.video_.audioTracks&&this.config_.accessibility.handleForcedSubtitlesAutomatically){let s=Array.from(this.video_.audioTracks).find(n=>n.enabled);if(s){let n=se.filterStreamsByLanguageAndRole(t,s.language,"",!0);if(n.length){this.selectTextTrack(n[0]);return}}}this.selectTextTrack(null)}processTimedMetadata_(t){if(t.kind!="metadata")return;t.mode="hidden";let i=()=>{if(t.cues){let s=[];for(let n of t.cues)if(n.startTime!=null&&"type"in n){let a=s.find(o=>o.startTime==n.startTime&&o.endTime==n.endTime);a||(a={type:n.type,startTime:n.startTime,endTime:n.endTime,values:[]},s.push(a)),n.value&&n.value.key=="X-AD-CREATIVE-SIGNALING"&&(a.type="urn:svta:advertising-wg:ad-creative-signaling"),a.values.push(n.value)}for(let n of s)if(this.adManager_){if(n.values.some(o=>o.key=="X-ASSET-URI"||o.key=="X-ASSET-LIST")){let o=n.startTime==0&&!this.isDynamic();n.values.push({key:"CUE",description:"",data:o?"ONCE,PRE":"ONCE",mimeType:null,pictureType:null})}this.adManager_.onHLSMetadata(n)}}};this.loadEventManager_.listen(t,"cuechange",s=>{if(t.activeCues)for(let n of t.activeCues)this.addMetadataToRegionTimeline_(n.startTime,n.endTime,n.type,n.value),this.adManager_&&this.adManager_.onCueMetadataChange(n.value);i()}),i();let r=new ae(()=>{let s=this.getMetadataTracks_();for(let n of s)n.mode="hidden"}).tickNow().tickAfter(.5);this.cleanupOnUnload_.push(()=>{r.stop()})}processTimedMetadataMediaSrc_(t,i,r){for(let s of t)if(s.data&&typeof s.cueTime=="number"&&s.frames){let n=s.cueTime+i,a=r;a&&n>a&&(a=n);let o="org.id3";for(let c of s.frames){let d=c;this.addMetadataToRegionTimeline_(n,a,o,d)}this.adManager_&&this.adManager_.onHlsTimedMetadata(s,n)}}dispatchMetadataEvent_(t,i){let r=new Map().set("startTime",t.startTime).set("endTime",t.endTime).set("metadataType",t.schemeIdUri).set("payload",t.payload);this.dispatchEvent(Q.makeEvent_(i,r))}addMetadataToRegionTimeline_(t,i,r,s){if(!this.metadataRegionTimeline_)return;v.assert(!i||t<=i,"Metadata start time should be less or equal to the end time!");let n={schemeIdUri:r,startTime:t,endTime:i||1/0,id:"",payload:s};n.id=JSON.stringify(n),this.metadataRegionTimeline_.addRegion(n)}dispatchEmsgEvent_(t){let i=U.EventName.Emsg,r=t.emsg,s=new Map().set("detail",r);this.dispatchEvent(Q.makeEvent_(i,s))}addEmsgToRegionTimeline_(t){if(!this.emsgRegionTimeline_)return;let i={schemeIdUri:t.schemeIdUri,startTime:t.startTime,endTime:t.endTime,id:String(t.id),emsg:t};this.emsgRegionTimeline_.addRegion(i)}activateChaptersTrack_(t){if(!t||t.kind!="chapters")return;t.mode="hidden";let i=new ae(()=>{t.mode="hidden"}).tickNow().tickAfter(.5);this.cleanupOnUnload_.push(()=>{i.stop()})}releaseAllMutexes(){this.mutex_.releaseAll()}createDrmEngine(t){return new Bi(t)}createNetworkingEngine(t){t||(t=()=>null);let i=()=>t()?t().getParser():this.parser_,r=_=>{t()?t().addQueuedOperation(!0,_):_()},s=_=>{t()?t().dispatchEvent(_):this.dispatchEvent(_)},n=()=>t()?t().getStats():this.stats_,a=(_,T,S,b,E)=>{r(()=>{this.abrManager_&&this.abrManager_.segmentDownloaded(_,T,S,b,E)})},o=(_,T,S)=>{let b=U.EventName.DownloadHeadersReceived,E=new Map().set("headers",_).set("request",T).set("requestType",S);s(Q.makeEvent_(b,E)),r(()=>{this.cmsdManager_&&this.cmsdManager_.processHeaders(_)})},c=(_,T,S,b)=>{let E=U.EventName.DownloadCompleted,C=new Map().set("requestType",_).set("request",T).set("context",S).set("response",b);s(Q.makeEvent_(E,C))},d=(_,T,S,b,E,C)=>{let A=U.EventName.DownloadFailed,w=new Map().set("requestType",_).set("request",T).set("context",S).set("error",b).set("httpResponseCode",E).set("aborted",C);s(Q.makeEvent_(A,w))},u=(_,T,S)=>{r(()=>{this.cmcdManager_&&this.cmcdManager_.applyRequestData(_,T,S)})},m=(_,T,S,b)=>{let E=i();E&&E.banLocation&&E.banLocation(b)},f=(_,T,S)=>{if(T.data){let b=T.data.byteLength,E=n();E&&(E.addBytesDownloaded(b),_===K.RequestType.MANIFEST&&E.setManifestSize(b)),this.cmcdManager_.applyResponseData(_,T,S)}},g=new K(a,o,c,d,u,m,f);return g.configure(this.config_.networking),g}createPlayhead(t){return v.assert(this.manifest_,"Must have manifest"),v.assert(this.video_,"Must have video"),new cn(this.video_,this.manifest_,this.config_.streaming,t,()=>this.onSeek_(),i=>this.dispatchEvent(i),()=>this.getPlaybackRate())}createPlayheadObserversForMSE_(t){v.assert(this.manifest_,"Must have manifest"),v.assert(this.regionTimeline_,"Must have region timeline"),v.assert(this.metadataRegionTimeline_,"Must have metadata region timeline"),v.assert(this.emsgRegionTimeline_,"Must have emsg region timeline"),v.assert(this.video_,"Must have video element");let i=this.isDynamic()||typeof t=="number"&&t>0,r=new Ur(this.regionTimeline_,i);r.addEventListener("enter",c=>{let d=c.region;this.onRegionEvent_(U.EventName.TimelineRegionEnter,d),this.sendEventStreamCallback_(d)}),r.addEventListener("exit",c=>{let d=c.region;this.onRegionEvent_(U.EventName.TimelineRegionExit,d)}),r.addEventListener("skip",c=>{let d=c.region;c.seeking||(this.onRegionEvent_(U.EventName.TimelineRegionEnter,d),this.onRegionEvent_(U.EventName.TimelineRegionExit,d))});let s=new Ur(this.metadataRegionTimeline_,i);s.addEventListener("enter",c=>{let d=c.region;this.dispatchMetadataEvent_(d,U.EventName.Metadata)});let n=new Ur(this.emsgRegionTimeline_,i);n.addEventListener("enter",c=>{let d=c.region;this.dispatchEmsgEvent_(d)});let a=new _n(this.manifest_.presentationTimeline);a.addEventListener("change",c=>{this.dispatchEvent(Q.makeEvent_(U.EventName.TimelineChanged,new Map([["programDateTime",c.programDateTime],["timestamp",c.timestamp]])))});let o=new xs(this.video_);return o.manage(r),o.manage(s),o.manage(n),o.manage(a),this.qualityObserver_&&o.manage(this.qualityObserver_),o}createPlayheadObserversForSrcEquals_(t){v.assert(this.metadataRegionTimeline_,"Must have metadata region timeline"),v.assert(this.video_,"Must have video element");let i=t instanceof Date||t>0,r=new Ur(this.metadataRegionTimeline_,i);r.addEventListener("enter",n=>{let a=n.region;this.dispatchMetadataEvent_(a,U.EventName.Metadata)});let s=new xs(this.video_);return s.manage(r),s}startBufferManagement_(t,i){let r=Kt;v.assert(!this.bufferObserver_,"No buffering observer should exist before initialization."),v.assert(!this.bufferPoller_,"No buffer timer should exist before initialization."),this.bufferObserver_=new Mr(1,2),this.bufferObserver_.setState(Mr.State.STARVING),this.updateBufferingSettings_(),this.updateBufferState_(),this.bufferPoller_=new ae(()=>{this.pollBufferState_()}),this.config_.streaming.rebufferingGoal&&this.bufferPoller_.tickEvery(.25),this.loadEventManager_.listen(t,r.WAITING,s=>this.pollBufferState_(r.WAITING)),this.loadEventManager_.listen(t,r.CAN_PLAY_THROUGH,s=>this.pollBufferState_(r.CAN_PLAY_THROUGH)),this.loadEventManager_.listen(t,r.PLAYING,s=>this.pollBufferState_(r.PLAYING)),this.loadEventManager_.listen(t,r.SEEKED,s=>this.pollBufferState_(r.SEEKED)),this.loadEventManager_.listen(t,r.TIME_UPDATE,s=>this.pollBufferState_(r.TIME_UPDATE)),i&&(this.loadEventManager_.listen(t,r.PROGRESS,s=>this.pollBufferState_(r.PROGRESS)),this.loadEventManager_.listen(t,r.STALLED,s=>this.pollBufferState_(r.STALLED)))}updateBufferingSettings_(){let t=this.config_.streaming.rebufferingGoal,i=t,r=Math.min(Q.TYPICAL_BUFFERING_THRESHOLD_,t/2);this.bufferObserver_.setThresholds(i,r)}pollBufferState_(t){if(v.assert(this.video_,"Need a media element to update the buffering observer"),v.assert(this.bufferObserver_,"Need a buffering observer to update"),!this.config_.streaming.rebufferingGoal){t&&this.bufferObserver_.reportEvent(t,this.video_.currentTime)&&this.updateBufferState_();return}let i=this.mediaSourceEngine_?this.mediaSourceEngine_.ended():!1,r=this.isEnded()||i||this.playhead_.isBufferedToEnd(),s=this.getPlaybackRate()<0?Je.bufferedBehindOf(this.video_.buffered,this.video_.currentTime):Je.bufferedAheadOf(this.video_.buffered,this.video_.currentTime);this.bufferObserver_.update(s,r)&&this.updateBufferState_()}createMediaSourceEngine(t,i,r,s,n){return new dr(t,i,r,n,s)}createCmcd_(){return new Nr(this,this.config_.cmcd)}createCmsd_(){return new Tn(this.config_.cmsd)}createStreamingEngine(){v.assert(this.abrManager_&&this.mediaSourceEngine_&&this.manifest_&&this.video_,"Must not be destroyed");let t={getPresentationTime:()=>this.playhead_?this.playhead_.getTime():0,getBandwidthEstimate:()=>this.abrManager_.getBandwidthEstimate(),getPlaybackRate:()=>this.getPlaybackRate(),video:this.video_,mediaSourceEngine:this.mediaSourceEngine_,netEngine:this.networkingEngine_,onError:i=>this.onError_(i),onEvent:i=>this.dispatchEvent(i),onSegmentAppended:(i,r,s,n,a)=>{this.onSegmentAppended_(i.startTime,i.endTime,r.type,s,n,a),this.abrManager_&&r.fastSwitching&&i.isPartial()&&i.isLastPartial()&&this.abrManager_.trySuggestStreams()},onInitSegmentAppended:(i,r)=>{let s=r.getMediaQuality();s&&this.qualityObserver_&&this.qualityObserver_.addMediaQualityChange(s,i)},beforeAppendSegment:(i,r)=>this.drmEngine_.parseInbandPssh(i,r),disableStream:(i,r)=>this.disableStream(i,r),shouldPrefetchNextSegment:(i,r)=>!this.config_.abr.enabled||!r.fastSwitching||!i.isPartial()||!i.isLastPartial(),getKeySystem:()=>this.keySystem()};return new jr(this.manifest_,t)}configure(t,i){v.assert(this.config_,"Config must not be null!"),v.assert(typeof t=="object"||arguments.length==2,"String configs should have values!");let r=this.getConfiguration();arguments.length==2&&typeof t=="string"&&(t=Pt.convertToConfigObject(t,i)),v.assert(typeof t=="object","Should be an object!"),t.manifest&&t.manifest.dash&&"disableXlinkProcessing"in t.manifest.dash&&(Cr.deprecateFeature(6,"manifest.dash.disableXlinkProcessing configuration","It is now automatically detected if the manifest has Xlink."),delete t.manifest.dash.disableXlinkProcessing),t.textDisplayer&&"captionsUpdatePeriod"in t.textDisplayer&&(Cr.deprecateFeature(6,"textDisplayer.captionsUpdatePeriod configuration","Captions are now updated based on the cue timings, so this configuration is no longer needed."),delete t.textDisplayer.captionsUpdatePeriod),Q.convertLegacyPreferences_(t);let s=st.mergeConfigObjects(this.config_,t,this.defaultConfig_());return this.applyConfig_(r),s}configurationForLowLatency(t){this.lowLatencyConfig_=t}applyConfig_(t){if(this.manifestFilterer_=new Rr(this.config_,this.maxHwRes_,this.drmEngine_),this.parser_){let s=Ne.cloneObject(this.config_.manifest);this.video_&&this.video_.nodeName==="AUDIO"&&(s.disableVideo=!0),this.parser_.configure(s)}if(this.drmEngine_&&this.drmEngine_.configure(this.config_.drm),this.streamingEngine_){this.streamingEngine_.configure(this.config_.streaming);try{this.loadMode_!=Q.LoadMode.DESTROYED&&this.manifestFilterer_.filterManifestWithRestrictions(this.manifest_)&&this.onTracksChanged_()}catch(n){this.onError_(n)}this.abrManager_&&this.updateAbrManagerVariants_();let s=this.streamingEngine_.getCurrentVariant();s&&(!s.allowedByApplication||!s.allowedByKeySystem)&&(p.debug("Choosing new variant after changing configuration"),this.chooseVariantAndSwitch_())}if(this.networkingEngine_&&this.networkingEngine_.configure(this.config_.networking),this.mediaSourceEngine_){this.mediaSourceEngine_.configure(this.config_.mediaSource);let{segmentRelativeVttTiming:s}=this.config_.manifest;this.mediaSourceEngine_.setSegmentRelativeVttTiming(s)}this.textDisplayer_&&this.createAndConfigureTextDisplayer_(),this.abrManager_&&(this.abrManager_.configure(this.config_.abr),this.config_.abr.enabled?this.abrManager_.enable():this.abrManager_.disable(),this.onAbrStatusChanged_()),this.bufferObserver_&&this.updateBufferingSettings_(),this.bufferPoller_&&(this.config_.streaming.rebufferingGoal?this.bufferPoller_.tickEvery(.25):this.bufferPoller_.stop()),this.manifest_&&Q.applyPlayRange_(this.manifest_.presentationTimeline,this.config_.playRangeStart,this.config_.playRangeEnd),this.adManager_&&this.adManager_.configure(this.config_.ads),this.cmcdManager_&&this.cmcdManager_.configure(this.config_.cmcd),this.cmsdManager_&&this.cmsdManager_.configure(this.config_.cmsd),this.queueManager_&&this.queueManager_.configure(this.config_.queue);let i=this.loadMode_==Q.LoadMode.MEDIA_SOURCE||this.loadMode_==Q.LoadMode.SRC_EQUALS;this.config_.accessibility.speechToText.enabled?this.speechToText_?this.speechToText_.configure(this.config_.accessibility.speechToText):(this.speechToText_=new Qr(this),this.speechToText_.configure(this.config_.accessibility.speechToText),i&&this.onTextChanged_()):this.speechToText_&&(this.speechToText_.release(),this.speechToText_=null,i&&this.onTextChanged_()),this.applyCriteriaConfigChanges_(t);let r=Q.makeEvent_(U.EventName.ConfigurationChanged);this.dispatchEvent(r)}applyCriteriaConfigChanges_(t){if(this.loadMode_!=Q.LoadMode.MEDIA_SOURCE||!this.currentAdaptationSetCriteria_.getConfiguration)return;let i=this.currentAdaptationSetCriteria_.getConfiguration();v.assert(i,"criteriaConfig must not be null!");let r=!1,s=n=>Ne.alphabeticalKeyOrderStringify(n);s(t.preferredVideo)!=s(this.config_.preferredVideo)&&(i.preferredVideo=this.config_.preferredVideo,r=!0),s(t.preferredAudio)!=s(this.config_.preferredAudio)&&(i.preferredAudio=this.config_.preferredAudio,r=!0),r&&(st.addDeprecatedConfigFields(i),this.currentAdaptationSetCriteria_.configure(i),this.chooseVariantAndSwitch_())}getConfiguration(){v.assert(this.config_,"Config must not be null!");let t=this.defaultConfig_();return st.mergeConfigObjects(t,this.config_,this.defaultConfig_()),t}getConfigurationForLowLatency(){return this.lowLatencyConfig_}getNonDefaultConfiguration(){v.assert(this.config_,"Config must not be null!");let t=this.defaultConfig_();return st.mergeConfigObjects(t,this.config_,this.defaultConfig_()),Pt.getDifferenceFromConfigObjects(this.config_,this.defaultConfig_())}getSharedConfiguration(){return v.assert(this.config_,"Cannot call getSharedConfiguration after call destroy!"),this.config_}getBufferFullness(){if(this.video_){let t=this.video_.buffered.length,i=t?this.video_.buffered.end(t-1):0,r=this.config_.streaming.bufferingGoal,s=Math.min(this.video_.currentTime+r,this.seekRange().end);if(i>=s)return 1;if(i<=this.video_.currentTime)return 0;if(i<s)return(i-this.video_.currentTime)/(s-this.video_.currentTime)}return 0}resetConfiguration(){v.assert(this.config_,"Cannot be destroyed");let t=this.getConfiguration();for(let i in this.config_)delete this.config_[i];st.mergeConfigObjects(this.config_,this.defaultConfig_(),this.defaultConfig_()),this.applyConfig_(t)}getLoadMode(){return this.loadMode_}getManifestType(){return this.manifest_?this.manifest_.type:null}getMediaElement(){return this.video_}getNetworkingEngine(){return this.networkingEngine_}getAssetUri(){return this.assetUri_}getMimeType(){return this.mimeType_}getAllMetadataRegions(){var t;return Array.from(((t=this.metadataRegionTimeline_)==null?void 0:t.regions())||[])}getAllEmsgRegions(){var t;return Array.from(((t=this.emsgRegionTimeline_)==null?void 0:t.regions())||[])}getAllTimelineRegions(){var t;return Array.from(((t=this.regionTimeline_)==null?void 0:t.regions())||[])}getAdManager(){return this.adManager_?this.adManager_:null}getQueueManager(){return this.queueManager_?this.queueManager_:null}isLive(){return this.manifest_&&!this.isRemotePlayback()?this.manifest_.presentationTimeline.isLive():this.video_&&(this.video_.src||this.isRemotePlayback())?this.video_.duration==1/0:!1}isInProgress(){return this.manifest_?this.manifest_.presentationTimeline.isInProgress():!1}isDynamic(){return this.isLive()||this.isInProgress()}isAudioOnly(){if(this.manifest_&&!this.isRemotePlayback()){let t=this.manifest_.variants;return t.length?!t[0].video:!1}else return this.video_&&(this.video_.src||this.isRemotePlayback())?this.video_.videoTracks?this.video_.videoTracks.length==0:this.video_.videoHeight==0:!1}isVideoOnly(){if(this.manifest_&&!this.isRemotePlayback()){let t=this.manifest_.variants;if(!t.length)return!1;let i=t[0];return i.audio||!i.video?!1:!i.video.codecs.includes(",")}else if(this.video_&&(this.video_.src||this.isRemotePlayback())&&this.video_.audioTracks)return this.video_.audioTracks.length==0;return!1}seekRange(){if(this.manifest_&&!this.isRemotePlayback()){if(!this.fullyLoaded_&&this.manifest_.type==me.HLS)return{start:0,end:0};let t=this.manifest_.presentationTimeline;return{start:t.getSeekRangeStart(),end:t.getSeekRangeEnd()}}if(this.video_&&(this.video_.src||this.isRemotePlayback())){let t=this.video_.seekable;if(t&&t.length){let i=this.config_?this.config_.playRangeStart:0,r=Math.max(t.start(0),i),s=this.config_?this.config_.playRangeEnd:1/0,n=Math.min(t.end(t.length-1),s);return{start:r,end:n}}}return{start:0,end:0}}goToLive(){this.isDynamic()?this.video_.currentTime=this.seekRange().end:p.warning("goToLive is for live streams!")}isFullyLoaded(){return this.fullyLoaded_}keySystem(){return de.keySystem(this.drmInfo())}drmInfo(){return this.drmEngine_?this.drmEngine_.getDrmInfo():null}getDrmEngine(){return this.drmEngine_}getExpiration(){return this.drmEngine_?this.drmEngine_.getExpiration():1/0}getActiveSessionsMetadata(){return this.drmEngine_?this.drmEngine_.getActiveSessionsMetadata():[]}renewLicense(t){this.drmEngine_&&this.drmEngine_.renewLicense(t)}async retryLicensing(t,i){return this.drmEngine_?await this.drmEngine_.retryLicensing(t,i):!1}getKeyStatuses(){return this.drmEngine_?this.drmEngine_.getKeyStatuses():{}}isBuffering(){let t=Mr.State;return this.bufferObserver_?this.bufferObserver_.getState()==t.STARVING:!!this.assetUri_}getPlaybackRate(){return this.video_?this.playRateController_?this.playRateController_.getRealRate():1:0}useTrickPlayTrackIfAvailable(t){this.loadMode_==Q.LoadMode.MEDIA_SOURCE&&this.streamingEngine_&&this.streamingEngine_.setTrickPlay(t)}trickPlay(t,i=!0){if(v.assert(t!=0,"Should never set a trick play rate of 0!"),t==0){p.alwaysWarn("A trick play rate of 0 is unsupported!");return}let r=this.video_.playbackRate,s=this.playRateController_.getRealRate();this.playRateController_.set(t),this.loadMode_==Q.LoadMode.MEDIA_SOURCE&&(this.abrManager_.playbackRateChanged(t),this.useTrickPlayTrackIfAvailable(i&&t!=1)),this.setupTrickPlayEventListeners_(t),r===0&&this.video_.playbackRate===0&&t!=s&&this.onRateChange_()}cancelTrickPlay(){let t=this.playRateController_.getDefaultRate();this.loadMode_==Q.LoadMode.SRC_EQUALS&&this.playRateController_.set(t),this.loadMode_==Q.LoadMode.MEDIA_SOURCE&&(this.playRateController_.set(t),this.abrManager_.playbackRateChanged(t),this.useTrickPlayTrackIfAvailable(!1)),this.trickPlayEventManager_.removeAll()}getVariantTracks(){if(this.manifest_&&!this.isRemotePlayback()){let t=this.streamingEngine_?this.streamingEngine_.getCurrentVariant():null,i=[],r=0;for(let s of this.manifest_.variants){if(!se.isPlayable(s))continue;let n=se.variantToTrack(s);n.active=s==t,!n.active&&r!=1&&t!=null&&s.video==t.video&&s.audio==t.audio&&(n.active=!0),n.active&&r++,i.push(n)}return v.assert(r<=1,"It should only have one active track"),i}else if(this.video_&&this.video_.audioTracks){let t=this.getActiveHtml5VideoTrack_(),i=Array.from(this.video_.audioTracks);return i.length?i.map(r=>se.html5TrackToShakaTrack(r,t)):t?[se.html5TrackToShakaTrack(null,t)]:[]}else return[]}getTextTracks(){if(this.manifest_){if(this.isRemotePlayback())return[];{let t=this.streamingEngine_?this.streamingEngine_.getCurrentTextStream():null,i=[];for(let r of this.manifest_.textStreams){let s=se.textStreamToTrack(r);s.active=r==t,i.push(s)}return this.speechToText_&&i.push(...this.speechToText_.getTextTracks()),i}}else if(this.video_&&this.video_.src&&this.video_.textTracks){let t=this.getFilteredTextTracks_(),i=this.textDisplayer_.isTextVisible(),r=t.map(s=>se.html5TextTrackToTrack(s,i));return this.speechToText_&&r.push(...this.speechToText_.getTextTracks()),r}else return[]}getImageTracks(){let t=this.externalSrcEqualsThumbnailsStreams_;return this.manifest_&&(t=this.manifest_.imageStreams),t.map(i=>se.imageStreamToTrack(i))}async getAllThumbnails(t){let i=await this.getBestImageStream_(t);if(!i)return null;let r=[];return i.segmentIndex.forEachTopLevelReference(s=>{let n=this.parseTilesLayout_(s.getTilesLayout()||i.tilesLayout);if(n){let a=n.rows*n.columns,c=(s.trueEndTime-s.startTime)/a;for(let d=0;d<a;d++){let u=s.startTime+d*c,m=this.getThumbnailByReference_(s,i,u,n);if(!m)break;r.push(m)}}}),r}parseTilesLayout_(t){if(!t)return null;let i=/(\d+)x(\d+)/.exec(t);if(!i)return p.warning("Tiles layout does not contain a valid format (columns x rows)"),null;let r=parseInt(i[1],10),s=parseInt(i[2],10);return{columns:r,rows:s}}async getThumbnails(t,i){let r=await this.getBestImageStream_(t);if(!r)return null;let s=r.segmentIndex.find(i);if(s==null)return null;let n=r.segmentIndex.get(s),a=this.parseTilesLayout_(n.getTilesLayout()||r.tilesLayout);return a?this.getThumbnailByReference_(n,r,i,a):null}async getBestImageStream_(t){if(this.loadMode_!=Q.LoadMode.MEDIA_SOURCE&&this.loadMode_!=Q.LoadMode.SRC_EQUALS)return null;let i=this.externalSrcEqualsThumbnailsStreams_;this.manifest_&&(i=this.manifest_.imageStreams);let r=i[0];if(!r||(t!=null&&(r=i.find(s=>s.id==t)),!r))return null;if(r.segmentIndex||await r.createSegmentIndex(),r.closeSegmentIndex){if(!this.deferredCloseSegmentIndex_.has(r)){let s=new ae(()=>{r&&(r.closeSegmentIndex(),this.deferredCloseSegmentIndex_.delete(r))});this.deferredCloseSegmentIndex_.set(r,s)}this.deferredCloseSegmentIndex_.get(r).tickAfter(5)}return r}getThumbnailByReference_(t,i,r,s){let n=t.getUris();if(!n.length)return null;let a=1e-4,o=i.width||0,c=i.height||0,d=o/s.columns,u=c/s.rows,m=s.columns*s.rows,f=t.trueEndTime-t.startTime,g=t.getTileDuration()||f/m,_=t.startTime,T=0,S=0;if(m>1){let C=(r-t.startTime)/g,A=Math.floor(C+a);_=t.startTime+A*g,T=A%s.columns*d,S=Math.floor(A/s.columns)*u}if(_>=t.endTime||jt.isFloatEqual(_,t.endTime,a))return null;let b=!1,E=t.getThumbnailSprite();return E&&(b=!0,u=E.height,T=E.positionX,S=E.positionY,d=E.width),{segment:t,imageHeight:c,imageWidth:o,height:u,positionX:T,positionY:S,startTime:_,duration:g,uris:n,startByte:t.getStartByte(),endByte:t.getEndByte(),width:d,sprite:b,mimeType:t.mimeType||i.mimeType,codecs:t.codecs||i.codecs}}selectTextTrack(t){let i=!1;if(this.speechToText_&&t&&(i=this.speechToText_.getTextTracks().includes(t)),this.speechToText_&&!i&&this.speechToText_.disable(),!t||i){this.speechToText_&&i&&t&&this.speechToText_.enable(t),this.onTextChanged_(),this.setTextTrackVisibility_(!1);return}let r=()=>{let n=this.manifest_.textStreams.find(a=>a.id==t.id);if(!n){this.isRemotePlayback()||p.error("No stream with id",t.id);return}if(n==this.streamingEngine_.getCurrentTextStream()){p.debug("Text track already selected.");return}this.addTextStreamToSwitchHistory_(n,!1),this.streamingEngine_.switchTextStream(n),this.onTextChanged_(),this.setTextDisplayerLanguage_(),this.currentTextLanguage_=n.language,this.setTextTrackVisibility_(!0)},s=()=>{if(this.video_&&this.video_.textTracks){let n=this.getFilteredTextTracks_(),a=n.find(o=>se.html5TrackId(o)===t.id);if(!a){p.error("No track with id",t.id);return}if(this.textDisplayer_ instanceof mr)for(let o of n){let c=o===a?this.isTextVisible_?"showing":"hidden":"disabled";o.mode!==c&&(o.mode=c)}else{let o=n.find(c=>c.mode!=="disabled");o!==a&&(o&&(o.mode="disabled",this.loadEventManager_.unlisten(o,"cuechange"),this.textDisplayer_.remove(0,1/0)),a&&this.enableNativeTrack_(a))}this.onTextChanged_(),this.setTextDisplayerLanguage_(),this.setTextTrackVisibility_(!0)}};this.manifest_&&this.playhead_&&(r(),!this.isRemotePlayback())||s()}enableNativeTrack_(t){this.loadEventManager_.listen(t,"cuechange",()=>{let i=Math.max(0,this.video_.currentTime-this.config_.streaming.bufferBehind);this.textDisplayer_.remove(0,i);let r={periodStart:0,segmentStart:0,segmentEnd:this.video_.duration,vttOffset:0,isMpegTs:!1},s=[],n=Array.from(t.activeCues||[]);for(let a of n){let o=si.mapNativeCueToShakaCue(a);if(o){let c=this.config_.mediaSource.modifyCueCallback;c&&c(o,null,r),s.push(o)}}this.textDisplayer_.append(s)}),t.mode=document.pictureInPictureElement?"showing":"hidden"}selectVariantTrack(t,i=!1,r=0){let s=()=>{let a=this.manifest_.variants.find(m=>m.id==t.id);if(!a){this.isRemotePlayback()||p.error("No variant with id",t.id);return}if(!se.isPlayable(a)){p.error("Unable to switch to restricted track",t.id);return}let o=this.streamingEngine_.getCurrentVariant();this.config_.abr.enabled&&(o.video!=a.video||o.audio&&a.audio&&o.audio.language==a.audio.language&&o.audio.channelsCount==a.audio.channelsCount&&o.audio.label==a.audio.label)&&p.alwaysWarn("Changing tracks while abr manager is enabled will likely result in the selected track being overridden. Consider disabling abr before calling selectVariantTrack()."),this.isRemotePlayback()?this.switchVariant_(a,!1,!1,0):this.switchVariant_(a,!1,i||!1,r||0);let c={language:a.language||"",role:a.audio&&a.audio.roles&&a.audio.roles[0]||"",label:a.audio&&a.audio.label||"",channelCount:a.audio&&a.audio.channelsCount||0,codec:a.audio&&a.audio.codecs||"",spatialAudio:a.audio&&a.audio.spatialAudio?a.audio.spatialAudio:!1},d={label:a.video&&a.video.label||"",role:a.video&&a.video.roles&&a.video.roles[0]||"",language:a.video&&a.video.language||"",codec:a.video&&a.video.codecs||"",hdrLevel:a.video&&a.video.hdr||"",layout:a.video&&a.video.videoLayout||""},u={preferredAudio:[c],preferredVideo:[d],language:"",role:"",videoRole:"",channelCount:0,hdrLevel:"",spatialAudio:!1,videoLayout:"",audioLabel:"",videoLabel:"",preferredAudioCodecs:[],preferredAudioChannelCount:0,codecSwitchingStrategy:this.config_.mediaSource.codecSwitchingStrategy,audioCodec:a.audio&&a.audio.codecs?a.audio.codecs:"",activeAudioCodec:o.audio&&o.audio.codecs?o.audio.codecs:"",activeAudioChannelCount:o.audio&&o.audio.channelsCount?o.audio.channelsCount:0,keySystem:this.keySystem()};st.addDeprecatedConfigFields(u),this.currentAdaptationSetCriteria_.configure(u),this.updateAbrManagerVariants_()},n=()=>{if(t.originalAudioId&&this.video_&&this.video_.audioTracks){let a=Array.from(this.video_.audioTracks);for(let o of a)if(se.html5TrackId(o)==t.id){this.switchHtml5Track_(o);return}}};this.manifest_&&this.playhead_&&(s(),!this.isRemotePlayback())||n()}selectAudioTrack(t,i=0){let r=(a,o)=>{if(a==o||!this.config_.accessibility.handleForcedSubtitlesAutomatically)return;let c=this.getTextTracks(),d=c.find(g=>g.active),u=d?ve.normalize(d.language):null,m=ve.normalize(a),f=ve.normalize(o);if(!d||u==m&&u!=f&&d.forced){let g=se.filterStreamsByLanguageAndRole(c,f,"",!0);g.length&&this.selectTextTrack(g[0])}},s=()=>{let a=this.currentAdaptationSetCriteria_.getConfiguration();a.audioCodec=t.codecs||"",a.preferredAudio=[{language:t.language,role:t.roles[0]||"",label:t.label||"",channelCount:t.channelsCount||0,codec:"",spatialAudio:t.spatialAudio}];let o=this.streamingEngine_.getCurrentVariant(),c=o&&o.audio;c&&(a.activeAudioCodec=c.codecs||"",a.activeAudioChannelCount=c.channelsCount||0,r(c.language,t.language)),st.addDeprecatedConfigFields(a),this.currentAdaptationSetCriteria_.configure(a),this.chooseVariantAndSwitch_(!0,i,!1,!1)},n=()=>{if(this.video_&&this.video_.audioTracks){let a=ve.normalize(t.language),o=Array.from(this.video_.audioTracks),c=null,d=null;for(let u of o){let m=u.language||"und";!c&&u.label==t.label&&ve.normalize(m)==a&&u.kind==t.roles[0]&&(c=u),u.enabled&&(d=u)}c&&(d&&r(d.language,c.language),this.switchHtml5Track_(c))}};this.manifest_&&this.playhead_&&(s(),!this.isRemotePlayback())||n()}getAudioTracks(){if(this.manifest_&&!this.isRemotePlayback()){let t=this.getVariantTracks();if(!t.length)return[];let i=t.find(n=>n.active);if(!i)return[];let r=t;if(this.loadMode_==Q.LoadMode.MEDIA_SOURCE&&!this.isRemotePlayback()&&(r=t.filter(n=>n.originalVideoId===i.originalVideoId&&(n.audioCodec||N.RAW_FORMATS.includes(n.audioMimeType||"")))),!r.length)return[];let s=new Map;for(let n of r){let a=[n.language,n.originalLanguage,n.label||"",(n.audioRoles||[]).join(","),n.channelsCount,n.spatialAudio,n.audioCodec||"",n.accessibilityPurpose||""].join("_"),o={active:n.active,language:n.language,label:n.label,mimeType:n.audioMimeType,codecs:n.audioCodec,primary:n.primary,roles:n.audioRoles||[],accessibilityPurpose:n.accessibilityPurpose,channelsCount:n.channelsCount,audioSamplingRate:n.audioSamplingRate,spatialAudio:n.spatialAudio,originalLanguage:n.originalLanguage};s.has(a)?!s.get(a).active&&o.active&&s.set(a,o):s.set(a,o)}return Array.from(s.values())}else return this.video_&&this.video_.audioTracks?Array.from(this.video_.audioTracks).map(t=>se.html5AudioTrackToTrack(t)):[]}selectVideoTrack(t,i=!1,r=0){let s=this.getVariantTracks();if(!s.length)return;let n=s.find(c=>c.active);if(!n)return;let a=s.filter(c=>(c.videoBandwidth||c.bandwidth)==t.bandwidth&&c.width==t.width&&c.height==t.height&&c.frameRate==t.frameRate&&c.pixelAspectRatio==t.pixelAspectRatio&&c.hdr==t.hdr&&c.colorGamut==t.colorGamut&&c.videoLayout==t.videoLayout&&c.videoMimeType==t.mimeType&&c.videoCodec==t.codecs&&ye.equal(c.videoRoles,t.roles)&&(c.videoLanguage||"und")==(t.language||"und")&&c.videoLabel==t.label),o;a.length==1?o=a[0]:o=a.find(c=>c.audioId===n.audioId),o||(o=a.find(c=>c.language==n.language&&c.label===n.label&&c.channelsCount===n.channelsCount&&c.spatialAudio===n.spatialAudio&&c.audioMimeType===n.audioMimeType&&N.getNormalizedCodec(c.audioCodec||"")===N.getNormalizedCodec(n.audioCodec||"")&&ye.equal(c.audioRoles,n.audioRoles))),o&&!o.active&&this.selectVariantTrack(o,i,r)}getVideoTracks(){if(this.loadMode_==Q.LoadMode.SRC_EQUALS||this.isRemotePlayback())return[];let t=this.getVariantTracks();if(!t.length)return[];let i=t.find(n=>n.active);if(!i)return[];let r=t;if(this.isVideoOnly()||(r=t.filter(n=>!n.videoCodec||n.audioGroupId!==i.audioGroupId||n.originalAudioId!==i.originalAudioId?!1:n.audioId===i.audioId?!0:n.language===i.language&&n.label===i.label&&n.channelsCount===i.channelsCount&&n.spatialAudio===i.spatialAudio&&n.audioMimeType===i.audioMimeType&&N.getNormalizedCodec(n.audioCodec||"")===N.getNormalizedCodec(i.audioCodec||"")&&ye.equal(n.audioRoles,i.audioRoles))),!r.length)return[];let s=new Map;for(let n of r){let a=n.originalVideoId;if(!a&&n.videoId!=null&&(a=String(n.videoId)),!a)continue;let o={active:n.active,language:n.videoLanguage||"und",bandwidth:n.videoBandwidth||n.bandwidth,width:n.width,height:n.height,frameRate:n.frameRate,pixelAspectRatio:n.pixelAspectRatio,hdr:n.hdr,colorGamut:n.colorGamut,videoLayout:n.videoLayout,mimeType:n.videoMimeType,codecs:n.videoCodec,roles:n.videoRoles||[],label:n.videoLabel};s.set(a,o)}return Array.from(s.values())}getChaptersTracks(){let t=this.externalSrcEqualsChapterStreams_;this.manifest_&&(t=this.manifest_.chapterStreams);let i=t.map(s=>se.chapterStreamToTrack(s)),r=this.getChaptersTracks_();return r.length&&i.push(...r.map(s=>se.html5TextTrackToChapterTrack(s))),i}async getChaptersAsync(t){var c,d;let i=this.getNativeChapters_(t);if(i.length)return i;let r=this.externalSrcEqualsChapterStreams_;if(this.manifest_&&(r=this.manifest_.chapterStreams),!r.length)return[];let s=ve.normalize(t),n=r.filter(u=>ve.normalize(u.language)==s);if(!n.length)return[];let a=[],o=new Set;for(let u of n){u.segmentIndex||await u.createSegmentIndex();let m=0;if(this.isLive()&&((c=this.manifest_)==null?void 0:c.type)===me.HLS){let f=this.manifest_.presentationTimeline;m=Math.max(0,(d=f.getInitialProgramDateTime())!=null?d:f.getPresentationStartTime())}u.segmentIndex.forEachTopLevelReference(f=>{let g=f.getMetadata();if(!g)return;let _=g.title,T=f.startTime+"-"+f.endTime+"-"+_;m>0&&f.endTime-m<0&&(m=0);let S={id:T,title:_,startTime:Math.max(0,f.startTime-m),endTime:Math.max(0,f.endTime-m),images:g.images};o.has(T)||(a.push(S),o.add(T))})}return a}getNativeChapters_(t){let i=this.getChaptersTracks_();if(!i.length)return[];let r=ve.normalize(t),s=i.filter(o=>ve.normalize(o.language)==r);if(!s||!s.length)return[];let n=[],a=new Set;for(let o of s)if(o&&o.cues)for(let c of o.cues){let d=c.id;(!d||d=="")&&(d=c.startTime+"-"+c.endTime+"-"+c.text);let u={id:d,title:c.text,startTime:c.startTime,endTime:c.endTime,images:[]};a.has(d)||(n.push(u),a.add(d))}return n}getFilteredTextTracks_(){return v.assert(this.video_.textTracks,"TextTracks should be valid."),Array.from(this.video_.textTracks).filter(t=>t.kind!="metadata"&&t.kind!="chapters"&&t.label!=Q.TextTrackLabel)}getGeneratedTextTrack_(){return v.assert(this.video_.textTracks,"TextTracks should be valid."),Array.from(this.video_.textTracks).find(t=>t.label==Q.TextTrackLabel)}getMetadataTracks_(){return v.assert(this.video_.textTracks,"TextTracks should be valid."),Array.from(this.video_.textTracks).filter(t=>t.kind=="metadata")}getChaptersTracks_(){return!this.video_||!this.video_.textTracks?[]:Array.from(this.video_.textTracks).filter(t=>t.kind=="chapters")}setTextTrackVisibility_(t){let i=this.isTextVisible_,r=!!t;if(i!=r)if(this.isTextVisible_=r,this.loadMode_==Q.LoadMode.MEDIA_SOURCE)if(this.textDisplayer_.setTextVisibility(r),r){if(!this.streamingEngine_.getCurrentTextStream()){let s=se.filterStreamsByLanguageAndRole(this.manifest_.textStreams,this.currentTextLanguage_,this.currentTextRole_,this.currentTextForced_);s.length>0&&(this.streamingEngine_.switchTextStream(s[0]),this.onTextChanged_(),this.setTextDisplayerLanguage_())}}else this.streamingEngine_.unloadTextStream();else this.video_&&this.video_.src&&this.video_.textTracks&&this.textDisplayer_.setTextVisibility(r)}getPlayheadTimeAsDate(){let t=0;if(this.playhead_)t=this.playhead_.getTime();else{if(this.startTime_==null)return new Date;if(this.startTime_ instanceof Date)return this.startTime_;t=this.startTime_}if(this.manifest_&&!this.isRemotePlayback()){let i=this.manifest_.presentationTimeline,r=i.getProgramDateTimeForTime(t);if(r!=null)return new Date(r*1e3);let s=i.getPresentationStartTime();return new Date((s+t)*1e3)}else if(this.video_&&this.video_.getStartDate){let i=this.video_.getStartDate();return!(i instanceof Date)||isNaN(i.getTime())?(p.warning("EXT-X-PROGRAM-DATETIME required to get playhead time as Date!"),null):new Date(i.getTime()+t*1e3)}else return p.warning("No way to get playhead time as Date!"),null}getPresentationStartTimeAsDate(){if(this.manifest_&&!this.isRemotePlayback()){let t=this.manifest_.presentationTimeline,i=t.getInitialProgramDateTime()||t.getPresentationStartTime();return i===null?(p.info("Manifest appears to have no PDT or PST"),null):new Date(i*1e3)}else if(this.video_&&this.video_.getStartDate){let t=this.video_.getStartDate();return!(t instanceof Date)||isNaN(t.getTime())?(p.warning("EXT-X-PROGRAM-DATETIME required to get presentation start time as Date!"),null):t}else return p.warning("No way to get presentation start time as Date!"),null}getSegmentAvailabilityDuration(){return this.isLive()?this.manifest_?this.manifest_.presentationTimeline.getSegmentAvailabilityDuration():(p.warning("No way to get segment segment availability duration!"),null):(p.warning("getSegmentAvailabilityDuration is for live streams!"),null)}getBufferedInfo(){if(this.loadMode_==Q.LoadMode.MEDIA_SOURCE)return this.mediaSourceEngine_.getBufferedInfo();let t={total:[],audio:[],video:[],text:[]};return this.loadMode_==Q.LoadMode.SRC_EQUALS&&(t.total=Je.getBufferedInfo(this.video_.buffered)),t}getLiveLatency(){if(!this.video_||!this.video_.currentTime)return null;let t=this.getPresentationStartTimeAsDate();if(!t)return null;let i=t.getTime()+this.video_.currentTime*1e3;return Math.floor(Date.now()-i)}getBandwidthEstimate(){return this.abrManager_?this.abrManager_.getBandwidthEstimate():NaN}getStats(){if(!(this.loadMode_==Q.LoadMode.MEDIA_SOURCE||this.loadMode_==Q.LoadMode.SRC_EQUALS))return tr.getEmptyBlob();this.updateStateHistory_(),v.assert(this.video_,"If we have stats, we should have video_");let i=this.video_,r=i.currentTime/i.duration;if(!isNaN(r)&&!this.isDynamic()&&this.stats_.setCompletionPercent(Math.round(100*r)),this.playhead_&&(this.stats_.setGapsJumped(this.playhead_.getGapsJumped()),this.stats_.setStallsDetected(this.playhead_.getStallsDetected())),i.getVideoPlaybackQuality){let d=i.getVideoPlaybackQuality();this.stats_.setDroppedFrames(Number(d.droppedVideoFrames),Number(d.totalVideoFrames)),this.stats_.setCorruptedFrames(Number(d.corruptedVideoFrames))}let s=this.drmEngine_?this.drmEngine_.getLicenseTime():NaN;if(this.stats_.setLicenseTime(s),this.stats_.setResolution(i.videoWidth||NaN,i.videoHeight||NaN),this.stats_.setCodecs(""),this.isDynamic()){let d=this.getLiveLatency();d!=null&&this.stats_.setLiveLatency(d/1e3)}let a=this.getVariantTracks().find(d=>d.active),c=this.getTextTracks().find(d=>d.active);if(a){if(a.bandwidth){let u=this.playRateController_?this.playRateController_.getRealRate():1,f=u*a.bandwidth;c&&c.bandwidth&&(f+=u*c.bandwidth),this.stats_.setCurrentStreamBandwidth(f)}a.width&&a.height&&this.stats_.setResolution(a.width||NaN,a.height||NaN);let d=a.codecs;c&&(d+=","+(c.codecs||c.mimeType)),d&&this.stats_.setCodecs(d)}if(this.loadMode_==Q.LoadMode.MEDIA_SOURCE&&!this.isRemotePlayback()){if(this.manifest_&&(this.stats_.setManifestPeriodCount(this.manifest_.periodCount),this.stats_.setManifestGapCount(this.manifest_.gapCount),this.manifest_.presentationTimeline)){let u=this.manifest_.presentationTimeline.getMaxSegmentDuration();this.stats_.setMaxSegmentDuration(u)}let d=this.abrManager_.getBandwidthEstimate();this.stats_.setBandwidthEstimate(d)}return this.loadMode_==Q.LoadMode.SRC_EQUALS&&this.stats_.addBytesDownloaded(NaN),this.stats_.getBlob()}addTextTrackAsync(t,i,r,s,n,a,o=!1){let c=(async()=>{if(this.loadMode_!=Q.LoadMode.MEDIA_SOURCE&&this.loadMode_!=Q.LoadMode.SRC_EQUALS)throw p.error("Must call load() and wait for it to resolve before adding text tracks."),new h(h.Severity.RECOVERABLE,h.Category.PLAYER,h.Code.CONTENT_NOT_LOADED);r!="subtitles"&&r!="captions"&&p.alwaysWarn("Using a kind value different of `subtitles` or `captions` can cause unwanted issues."),s||(s=await this.getTextMimetype_(t));let d=[];if(this.adManager_&&(d=this.adManager_.getCuePoints()),this.loadMode_==Q.LoadMode.SRC_EQUALS){let S=j.getDevice();o&&S.getBrowserEngine()===ie.BrowserEngine.WEBKIT&&(r="forced");let b=await this.addSrcTrackElement_(t,i,r,s,a||"",d);if(b.track)return this.onTracksChanged_(),this.onTextChanged_(),se.html5TextTrackToTrack(b.track,this.textDisplayer_.isTextVisible());throw p.error("Cannot add this text when loaded with src="),new h(h.Severity.RECOVERABLE,h.Category.TEXT,h.Code.CANNOT_ADD_EXTERNAL_TEXT_TO_SRC_EQUALS)}let u=R.ContentType,m=this.seekRange(),f=m.end-m.start;if(this.manifest_&&(f=this.manifest_.presentationTimeline.getDuration()),f==1/0)throw new h(h.Severity.RECOVERABLE,h.Category.MANIFEST,h.Code.CANNOT_ADD_EXTERNAL_TEXT_TO_LIVE_STREAM);if(d.length){let S=await this.getTextData_(t),b=this.convertToWebVTT_(S,s,d),E=new Blob([b],{type:"text/vtt"});t=dr.createObjectURL(E),s="text/vtt"}let g=se.createStream({id:this.nextExternalStreamId_++,segmentIndex:Ze.forSingleSegment(0,f,[t]),mimeType:s||"",codecs:n||"",kind:r,language:i,originalLanguage:i,label:a||null,type:u.TEXT,forced:!!o,external:!0}),_=N.getFullType(g.mimeType,g.codecs);if(!Ue.isTypeSupported(_))throw new h(h.Severity.CRITICAL,h.Category.TEXT,h.Code.MISSING_TEXT_PLUGIN,s);return this.manifest_.textStreams.push(g),this.onTracksChanged_(),this.onTextChanged_(),se.textStreamToTrack(g)})();return this.fullyLoaded_||this.registerExtraTrackPromise_(c),c}addThumbnailsTrack(t,i){let r=(async()=>{if(this.loadMode_!=Q.LoadMode.MEDIA_SOURCE&&this.loadMode_!=Q.LoadMode.SRC_EQUALS)throw p.error("Must call load() and wait for it to resolve before adding image tracks."),new h(h.Severity.RECOVERABLE,h.Category.PLAYER,h.Code.CONTENT_NOT_LOADED);if(i||(i=await this.getTextMimetype_(t)),i!="text/vtt")throw new h(h.Severity.RECOVERABLE,h.Category.TEXT,h.Code.UNSUPPORTED_EXTERNAL_THUMBNAILS_URI,t);let s=R.ContentType,n=this.seekRange(),a=n.end-n.start;if(this.manifest_&&(a=this.manifest_.presentationTimeline.getDuration()),a==1/0)throw new h(h.Severity.RECOVERABLE,h.Category.MANIFEST,h.Code.CANNOT_ADD_EXTERNAL_THUMBNAILS_TO_LIVE_STREAM);let o=await this.getTextData_(t),c=Ue.findParser(i);if(!c)throw new h(h.Severity.CRITICAL,h.Category.TEXT,h.Code.MISSING_TEXT_PLUGIN,i);let d=c(),u={periodStart:0,segmentStart:0,segmentEnd:a,vttOffset:0,isMpegTs:!1},m=D.toUint8(o),f=d.parseMedia(m,u,t,[]),g=[];for(let S of f){let b=null,E=()=>(b==null&&(b=fe.resolveUris([t],[S.payload])),b||[]),C=new Se(S.startTime,S.endTime,E,0,null,null,0,0,1/0);if(S.payload.includes("#xywh")){let A=S.payload.split("#xywh=")[1].split(",");A.length===4&&C.setThumbnailSprite({height:parseInt(A[3],10),positionX:parseInt(A[0],10),positionY:parseInt(A[1],10),width:parseInt(A[2],10)})}g.push(C)}let _=i;g.length&&(_=await this.getTextMimetype_(g[0].getUris()[0]));let T=se.createStream({id:this.nextExternalStreamId_++,segmentIndex:new Ze(g),mimeType:_||"",kind:"",language:"und",type:s.IMAGE,tilesLayout:"1x1",external:!0});return this.loadMode_==Q.LoadMode.SRC_EQUALS?this.externalSrcEqualsThumbnailsStreams_.push(T):this.manifest_.imageStreams.push(T),this.onTracksChanged_(),se.imageStreamToTrack(T)})();return this.fullyLoaded_||this.registerExtraTrackPromise_(r),r}addChaptersTrack(t,i,r){let s=(async()=>{if(this.loadMode_!=Q.LoadMode.MEDIA_SOURCE&&this.loadMode_!=Q.LoadMode.SRC_EQUALS)throw p.error("Must call load() and wait for it to resolve before adding chapters tracks."),new h(h.Severity.RECOVERABLE,h.Category.PLAYER,h.Code.CONTENT_NOT_LOADED);r||(r=await this.getTextMimetype_(t));let n=R.ContentType,a=this.seekRange(),o=a.end-a.start;if(this.manifest_&&(o=this.manifest_.presentationTimeline.getDuration()),o==1/0)throw new h(h.Severity.RECOVERABLE,h.Category.MANIFEST,h.Code.CANNOT_ADD_EXTERNAL_CHAPTERS_TO_LIVE_STREAM);let c=Ue.findParser(r);if(!c)throw new h(h.Severity.CRITICAL,h.Category.TEXT,h.Code.MISSING_TEXT_PLUGIN,r);let d=await this.getTextData_(t),u=c(),m={periodStart:0,segmentStart:0,segmentEnd:o,vttOffset:0,isMpegTs:!1},f=D.toUint8(d),g=u.parseMedia(f,m,t,[]),_=[];for(let b of g){let E=new Se(b.startTime,b.endTime,()=>[],0,null,null,0,0,1/0),C={title:b.payload,images:[]};E.setMetadata(C),_.push(E)}let S=se.createStream({id:this.nextExternalStreamId_++,segmentIndex:new Ze(_),mimeType:"text/plain",kind:"",language:i,originalLanguage:i,type:n.CHAPTER,external:!0});return this.loadMode_==Q.LoadMode.MEDIA_SOURCE?this.manifest_.chapterStreams.push(S):this.externalSrcEqualsChapterStreams_.push(S),this.onTracksChanged_(),se.chapterStreamToTrack(S)})();return this.fullyLoaded_||this.registerExtraTrackPromise_(s),s}async getTextMimetype_(t){let i;try{v.assert(this.networkingEngine_,"Need networking engine."),i=await ct.getMimeType(t,this.networkingEngine_,this.config_.streaming.retryParameters)}catch(r){}if(i)return i;throw p.error("The mimeType has not been provided and it could not be deduced from its uri."),new h(h.Severity.RECOVERABLE,h.Category.TEXT,h.Code.TEXT_COULD_NOT_GUESS_MIME_TYPE,t)}async addSrcTrackElement_(t,i,r,s,n,a){if(s!="text/vtt"||a.length){let c=await this.getTextData_(t),d=this.convertToWebVTT_(c,s,a),u=new Blob([d],{type:"text/vtt"});t=dr.createObjectURL(u),s="text/vtt"}let o=document.createElement("track");return o.src=this.cmcdManager_.appendTextTrackData(t),o.label=n,o.kind=r,o.srclang=i,this.video_.getAttribute("crossorigin")||this.video_.setAttribute("crossorigin","anonymous"),this.video_.appendChild(o),this.externalSrcEqualsTextTracks_.push(o),o}async getTextData_(t){v.assert(this.networkingEngine_,"Need networking engine.");let i=K.RequestType.SEGMENT,r=this.config_.streaming.retryParameters,s=K.makeRequest([t],r);return s.method="GET",this.cmcdManager_.applyTextData(s),(await this.networkingEngine_.request(i,s).promise).data}convertToWebVTT_(t,i,r){let s=Ue.findParser(i);if(s){let n=s(),a={periodStart:0,segmentStart:0,segmentEnd:this.video_.duration,vttOffset:0,isMpegTs:!1},o=D.toUint8(t),c=n.parseMedia(o,a,null,[]);return Us.convert(c,r)}throw new h(h.Severity.CRITICAL,h.Category.TEXT,h.Code.MISSING_TEXT_PLUGIN,i)}setMaxHardwareResolution(t,i){this.maxHwRes_.width=t,this.maxHwRes_.height=i}retryStreaming(t=.1){return this.loadMode_==Q.LoadMode.MEDIA_SOURCE?this.streamingEngine_.retry(t):!1}getManifest(){return p.alwaysWarn("Shaka Player's internal Manifest structure is NOT covered by semantic versioning compatibility guarantees. It may change at any time! Please consider filing a feature request for whatever you use getManifest() for."),this.manifest_}getManifestParserFactory(){return this.parserFactory_}getFetchedPlaybackInfo(){var a,o,c;let t={video:null,audio:null,text:null};if(this.loadMode_!=Q.LoadMode.MEDIA_SOURCE)return t;let i=R.ContentType,r=this.streamingEngine_.getCurrentVariant(),s=this.streamingEngine_.getCurrentTextStream(),n=this.video_.currentTime;for(let d of[r.video,r.audio,s]){if(!d||!d.segmentIndex)continue;let u=d.segmentIndex.find(n),m=d.segmentIndex.get(u),f={codecs:(a=m==null?void 0:m.codecs)!=null?a:d.codecs,mimeType:(o=m==null?void 0:m.mimeType)!=null?o:d.mimeType,bandwidth:(c=m==null?void 0:m.bandwidth)!=null?c:d.bandwidth};d.type==i.VIDEO?(f.width=d.width,f.height=d.height,t.video=f):d.type==i.AUDIO?t.audio=f:d.type==i.TEXT&&(t.text=f)}return t}addVariantToSwitchHistory_(t,i){this.stats_.getSwitchHistory().updateCurrentVariant(t,i)}addTextStreamToSwitchHistory_(t,i){this.stats_.getSwitchHistory().updateCurrentText(t,i)}defaultConfig_(){let t=st.createDefault();return t.streaming.failureCallback=i=>{this.defaultStreamingFailureCallback_(i)},t.textDisplayFactory=i=>(()=>{if(!this.videoContainer_)return!1;let s=this.video_;return!(s.webkitDisplayingFullscreen||s.webkitPresentationMode&&s.webkitPresentationMode!="inline")})()?new Jr(i):"track"in document.createElement("track")?new mr(i):(p.warning("Text tracks are not supported by the browser, disabling."),new yn),t}setVideoContainer(t){this.videoContainer_=t}getVideoContainer(){return this.videoContainer_}getTextDisplayer(){return this.textDisplayer_}defaultStreamingFailureCallback_(t){if(!this.isDynamic())return;let i=null;t.code==h.Code.BAD_HTTP_STATUS||t.code==h.Code.HTTP_ERROR?(i=1,this.config_.streaming.lowLatencyMode&&(i=.1)):t.code==h.Code.TIMEOUT&&(i=.1),i!=null&&(t.severity=h.Severity.RECOVERABLE,p.warning("Live streaming error. Retrying automatically..."),this.retryStreaming(i))}makeTextStreamsForClosedCaptions_(t){let i=R.ContentType,r=R.TextStreamKind,s=N.CEA608_CLOSED_CAPTION_MIMETYPE,n=N.CEA708_CLOSED_CAPTION_MIMETYPE,a=new Set;for(let o of t.textStreams)(o.mimeType==s||o.mimeType==n)&&a.add(o.originalId);for(let o of t.variants){let c=o.video;if(c&&c.closedCaptions){for(let d of c.closedCaptions.keys())if(!a.has(d)){let u=d.startsWith("CC")?s:n,m=new Mi,f=c.closedCaptions.get(d),g=se.createStream({id:this.nextExternalStreamId_++,originalId:d,segmentIndex:m,mimeType:u,kind:r.CLOSED_CAPTION,language:f,originalLanguage:f,type:i.TEXT,roles:c.roles});t.textStreams.push(g),a.add(d)}}}}async adjustStartTime_(t,i){let r=t.audio,s=t.video,n=async(c,d)=>{if(!c)return null;c.segmentIndex||await c.createSegmentIndex();let u=c.segmentIndex.getIteratorForTime(d),m=u?u.next().value:null;if(!m)return null;let f=m.startTime;return v.assert(f<=d,"Segment should start before target time!"),f},a=await n(r,i),o=await n(s,i);return o!=null&&a!=null?Math.max(o,a):o!=null?o:a!=null?a:i}updateBufferState_(){let t=this.isBuffering();if(p.v2("Player changing buffering state to",t),this.stats_&&this.bufferObserver_&&this.playhead_){this.config_.streaming.rebufferingGoal==0?this.playRateController_.setBuffering(!1):this.playRateController_.setBuffering(t),this.cmcdManager_&&this.cmcdManager_.setBuffering(t),this.updateStateHistory_();let n=this.config_.streaming.liveSync.dynamicTargetLatency.enabled,a=this.config_.streaming.liveSync.dynamicTargetLatency.maxAttempts;if(n&&t&&this.rebufferingCount_<a){let o=this.config_.streaming.liveSync.dynamicTargetLatency.maxLatency,c=this.config_.streaming.liveSync.targetLatencyTolerance,d=this.config_.streaming.liveSync.dynamicTargetLatency.rebufferIncrement;this.currentTargetLatency_&&(this.currentTargetLatency_=Math.min(this.currentTargetLatency_+ ++this.rebufferingCount_*d,o-c))}}let r=U.EventName.Buffering,s=new Map().set("buffering",t);this.dispatchEvent(Q.makeEvent_(r,s))}onRateChange_(){let t=this.video_.playbackRate;if(t==0){let r=this.getPlaybackRate();if(r!==0&&r!==1){let s=Q.makeEvent_(U.EventName.RateChange);this.dispatchEvent(s)}return}this.playRateController_&&(this.playRateController_.set(t),this.loadMode_==Q.LoadMode.MEDIA_SOURCE&&this.abrManager_.playbackRateChanged(t),this.setupTrickPlayEventListeners_(t));let i=Q.makeEvent_(U.EventName.RateChange);this.dispatchEvent(i)}setupTrickPlayEventListeners_(t){this.trickPlayEventManager_.removeAll(),this.trickPlayEventManager_.listen(this.video_,"timeupdate",()=>{let i=this.video_.currentTime,r=this.seekRange(),s=this.isDynamic(),n=s?this.config_.streaming.safeSeekOffset:0;t>0?s&&t>1&&Math.floor(i)>=Math.floor(r.end)&&this.cancelTrickPlay():Math.floor(i)<=Math.floor(r.start+n)&&this.cancelTrickPlay()})}updateStateHistory_(){if(!this.stats_||!this.bufferObserver_)return;let t=Mr.State,i=this.stats_.getStateHistory(),r="playing";if(this.bufferObserver_.getState()==t.STARVING?r="buffering":this.isEnded()?r="ended":this.video_.paused&&(r="paused"),i.update(r)){let n=U.EventName.StateChanged,a=new Map().set("newstate",r);this.dispatchEvent(Q.makeEvent_(n,a))}}onTimeUpdate_(){let t=this.video_.playbackRate,i=this.isDynamic();if(this.config_.streaming.vodDynamicPlaybackRate&&!i){let C=this.config_.streaming.vodDynamicPlaybackRateLowBufferRate,A=this.getBufferFullness(),w=this.config_.streaming.vodDynamicPlaybackRateBufferRatio;A<=w?t!=C&&(p.debug("Buffer fullness ratio ("+A+") is less than the vodDynamicPlaybackRateBufferRatio ("+w+"). Updating playbackRate to "+C),this.trickPlay(C,!1)):A==1&&t!==this.playRateController_.getDefaultRate()&&(p.debug("Buffer is full. Cancel trick play."),this.cancelTrickPlay())}if(!i)return;let r=this.seekRange();if(!Number.isFinite(r.end)||this.video_.currentTime<r.start||this.video_.paused)return;let n,a,o,c,d,u=this.config_.streaming.liveSync.targetLatencyTolerance,m=this.config_.streaming.liveSync.dynamicTargetLatency.enabled,f=this.config_.streaming.liveSync.dynamicTargetLatency.stabilityThreshold;this.config_.streaming.liveSync&&this.config_.streaming.liveSync.enabled?(n=this.config_.streaming.liveSync.targetLatency,a=n+u,c=Math.max(0,n-u),o=this.config_.streaming.liveSync.maxPlaybackRate,d=this.config_.streaming.liveSync.minPlaybackRate):this.manifest_&&this.manifest_.serviceDescription&&(n=this.manifest_.serviceDescription.targetLatency,this.manifest_.serviceDescription.targetLatency!=null?a=this.manifest_.serviceDescription.targetLatency+u:this.manifest_.serviceDescription.maxLatency!=null&&(a=this.manifest_.serviceDescription.maxLatency),this.manifest_.serviceDescription.targetLatency!=null?c=Math.max(0,this.manifest_.serviceDescription.targetLatency-u):this.manifest_.serviceDescription.minLatency!=null&&(c=this.manifest_.serviceDescription.minLatency),o=this.manifest_.serviceDescription.maxPlaybackRate||this.config_.streaming.liveSync.maxPlaybackRate,d=this.manifest_.serviceDescription.minPlaybackRate||this.config_.streaming.liveSync.minPlaybackRate),!this.currentTargetLatency_&&typeof n=="number"&&(this.currentTargetLatency_=n);let g=this.config_.streaming.liveSync.dynamicTargetLatency.maxAttempts;if(m&&this.targetLatencyReached_&&this.currentTargetLatency_!==null&&typeof n=="number"&&this.rebufferingCount_<g&&Date.now()-this.targetLatencyReached_>f*1e3){let C=this.config_.streaming.liveSync.dynamicTargetLatency.minLatency,A=(n-C)/2;this.currentTargetLatency_=Math.max(this.currentTargetLatency_-A,C+u),this.targetLatencyReached_=Date.now()}m&&this.currentTargetLatency_!==null&&(a=this.currentTargetLatency_+u,c=this.currentTargetLatency_-u);let _=r.end-this.video_.currentTime,T=0;if(this.loadMode_==Q.LoadMode.SRC_EQUALS){let C=this.video_.buffered;if(C.length>0){let A=C.end(C.length-1);T=Math.max(o,A-r.end)}}let S=this.config_.streaming.liveSync.panicMode,b=this.config_.streaming.liveSync.panicThreshold*1e3,E=Date.now()-this.bufferObserver_.getLastRebufferTime();S&&!d&&(d=this.config_.streaming.liveSync.minPlaybackRate),S&&d&&E<=b?t!=d&&(p.debug("Time since last rebuffer ("+E+"s) is less than the live sync panicThreshold ("+b+"s). Updating playbackRate to "+d),this.trickPlay(d,!1)):a!=null&&o&&_-T>a?(t!=o&&(p.debug("Latency ("+_+"s) is greater than live sync maxLatency ("+a+"s). Updating playbackRate to "+o),this.trickPlay(o,!1)),this.targetLatencyReached_=null):c!=null&&d&&_-T<c?(t!=d&&(p.debug("Latency ("+_+"s) is smaller than live sync minLatency ("+c+"s). Updating playbackRate to "+d),this.trickPlay(d,!1)),this.targetLatencyReached_=null):t!==this.playRateController_.getDefaultRate()&&(this.cancelTrickPlay(),this.targetLatencyReached_=Date.now())}isQuartile_(t,i){return(jt.isFloatEqual(t,i,.01)||i>t)&&this.completionPercent_<t?(this.completionPercent_=t,!0):!1}checkEnded_(){this.config_&&this.config_.playRangeEnd!=1/0&&this.isEnded()&&this.video_.pause()}onVideoProgress_(){if(!this.video_)return;let t=this.seekRange(),i=t.end-t.start,r=i>0?this.video_.currentTime/i:0;if(isNaN(r))return;let s=r*100,n;this.isQuartile_(0,s)?n=Q.makeEvent_(U.EventName.Started):this.isQuartile_(25,s)?n=Q.makeEvent_(U.EventName.FirstQuartile):this.isQuartile_(50,s)?n=Q.makeEvent_(U.EventName.Midpoint):this.isQuartile_(75,s)?n=Q.makeEvent_(U.EventName.ThirdQuartile):this.isQuartile_(100,s)||s>100?(n=Q.makeEvent_(U.EventName.Complete),this.checkEnded_()):this.checkEnded_(),n&&this.dispatchEvent(n)}onSeek_(){this.playheadObservers_&&this.playheadObservers_.notifyOfSeek(!this.playhead_.getIsJumpingGap()),this.streamingEngine_&&this.streamingEngine_.seeked(),this.bufferObserver_&&this.pollBufferState_(Kt.SEEKING)}updateAbrManagerVariants_(){try{v.assert(this.manifest_,"Manifest should exist by now!"),this.manifestFilterer_.checkRestrictedVariants(this.manifest_)}catch(n){return this.onError_(n),!1}let t=this.manifest_.isLowLatency&&this.config_.streaming.lowLatencyMode,i=se.getPlayableVariants(this.manifest_.variants),r=this.currentAdaptationSetCriteria_.create(i),s=this.abrManager_.setVariants(Array.from(r.values()),t);return typeof s=="boolean"?s:!0}chooseVariant_(t=!1){if(this.updateAbrManagerVariants_()){if(this.config_.abr.enabled)return this.abrManager_.chooseVariant(t);{let r=this.currentAdaptationSetCriteria_.getLastAdaptationSet();if(r){let s=Array.from(r.values());if(s.length){let n=this.streamingEngine_.getCurrentVariant();if(n&&n.video){let a=s.find(o=>o.video==n.video);if(a)return a}}}return this.abrManager_.chooseVariant(t)}}else return null}checkVariants_(){v.assert(this.manifest_,"Should have manifest!");let t=Date.now()/1e3,i=!1,r=n=>{let a="";return n.video&&(a+="video:"+n.video.id),n.audio&&(a+=a?"&":"",a+="audio:"+n.audio.id),a},s=!0;for(let n of this.manifest_.variants)n.disabledUntilTime>0&&n.disabledUntilTime<=t&&(n.disabledUntilTime=0,i=!0,p.v2("Re-enabled variant with "+r(n))),n.disabledUntilTime>0&&(s=!1);s&&this.checkVariantsTimer_.stop(),i&&this.chooseVariantAndSwitch_(!1,void 0,!1,!1)}chooseTextStream_(t){let i=null,r=se.filterStreamsByLanguageAndRole(this.manifest_.textStreams,this.currentTextLanguage_,this.currentTextRole_,this.currentTextForced_);return r.length&&(i=r[0]),!i&&t.audio&&this.config_.accessibility.handleForcedSubtitlesAutomatically&&(r=se.filterStreamsByLanguageAndRole(this.manifest_.textStreams,t.audio.language,"",!0),r.length&&(i=r[0])),i}chooseVariantAndSwitch_(t=!0,i=0,r=!1,s=!0){v.assert(this.config_,"Must not be destroyed");let n=this.chooseVariant_();n&&this.switchVariant_(n,s,t,i,r)}switchVariant_(t,i,r,s,n=!1){let a=this.streamingEngine_.getCurrentVariant();if(t==a){p.debug("Variant already selected."),r&&this.streamingEngine_.switchVariant(t,r,s,!0);return}this.addVariantToSwitchHistory_(t,i),this.streamingEngine_.switchVariant(t,r,s,n,i);let o=null;a&&(o=se.variantToTrack(a));let c=se.variantToTrack(t);c.active=!0,this.lcevcDec_&&this.lcevcDec_.updateVariant(t,this.getManifestType()),i?this.onAdaptation_(o,c):this.onVariantChanged_(o,c),this.checkAudioTracksChanged_(o,c)}switchHtml5Track_(t){v.assert(this.video_&&this.video_.audioTracks,"Video and video.audioTracks should not be null!");let r=Array.from(this.video_.audioTracks).find(o=>o.enabled);if(t.enabled=!0,!r)return;t.id!==r.id&&(r.enabled=!1);let s=this.getActiveHtml5VideoTrack_(),n=se.html5TrackToShakaTrack(r,s),a=se.html5TrackToShakaTrack(t,s);this.onVariantChanged_(n,a),this.checkAudioTracksChanged_(n,a)}getActiveHtml5VideoTrack_(){return this.video_&&this.video_.videoTracks?Array.from(this.video_.videoTracks).find(i=>i.selected):null}setInitialTextState_(t){t?(this.isTextVisible_=!0,this.textDisplayer_.setTextVisibility(!0)):(this.isTextVisible_=!1,this.textDisplayer_.setTextVisibility(!1))}onManifestUpdate_(){this.parser_&&this.parser_.update&&this.parser_.update()}onSegmentAppended_(t,i,r,s,n,a){let o=R.ContentType;if(r!=o.TEXT){if(this.playhead_){this.playhead_.notifyOfBufferingChange();let d=this.mediaSourceEngine_.bufferStart(r);!this.isDynamic()&&this.video_.paused&&!this.video_.seeking&&!this.mediaSourceEngine_.isReloadingMediaSource()&&d!=null&&d>0&&this.playhead_.getTime()<d&&!jt.isFloatEqual(this.playhead_.getTime(),d,.001)&&this.playhead_.setStartTime(d)}this.pollBufferState_()}let c=new Map().set("start",t).set("end",i).set("contentType",r).set("isMuxed",s).set("isDependency",n).set("mediaTimestamp",a);this.dispatchEvent(Q.makeEvent_(U.EventName.SegmentAppended,c))}switch_(t,i=!1,r=0){p.debug("switch_"),v.assert(this.config_.abr.enabled,"AbrManager should not call switch while disabled!"),this.manifest_&&this.streamingEngine_&&t!=this.streamingEngine_.getCurrentVariant()&&this.switchVariant_(t,!0,i,r)}onAdaptation_(t,i){let r=new Map().set("oldTrack",t).set("newTrack",i),s=Q.makeEvent_(U.EventName.Adaptation,r);this.delayDispatchEvent_(s)}onTracksChanged_(){let t=Q.makeEvent_(U.EventName.TracksChanged);this.delayDispatchEvent_(t),this.onAudioTracksChanged_()}onVariantChanged_(t,i){let r=new Map().set("oldTrack",t).set("newTrack",i),s=Q.makeEvent_(U.EventName.VariantChanged,r);this.delayDispatchEvent_(s)}checkAudioTracksChanged_(t,i){let r=!1;(!t||t.audioId!=i.audioId||t.audioGroupId!=i.audioGroupId)&&(r=!0),r&&this.onAudioTracksChanged_()}onAudioTracksChanged_(){let t=Q.makeEvent_(U.EventName.AudioTracksChanged);this.delayDispatchEvent_(t)}onTextChanged_(){let t=Q.makeEvent_(U.EventName.TextChanged);this.delayDispatchEvent_(t)}onAbrStatusChanged_(){this.config_.abr.enabled||this.restoreDisabledVariants_();let t=new Map().set("newStatus",this.config_.abr.enabled);this.delayDispatchEvent_(Q.makeEvent_(U.EventName.AbrStatusChanged,t))}setTextDisplayerLanguage_(){let t=this.getTextTracks().find(i=>i.active);t&&this.textDisplayer_&&this.textDisplayer_.setTextLanguage(t.language)}restoreDisabledVariants_(t=!0){if(this.loadMode_==Q.LoadMode.MEDIA_SOURCE){v.assert(this.manifest_,"Should have manifest!"),p.v2("Restoring all disabled streams..."),this.checkVariantsTimer_.stop();for(let i of this.manifest_.variants)isFinite(i.disabledUntilTime)&&(i.disabledUntilTime=0);t&&this.updateAbrManagerVariants_()}}disableStream(t,i){if(!this.config_.abr.enabled||this.loadMode_===Q.LoadMode.DESTROYED||!navigator.onLine||i==0||!this.manifest_)return!1;if(this.manifest_.variants.some(s=>{let n=s[t.type];return n&&n.id!==t.id&&!s.disabledUntilTime?se.isAudio(t)?t.language===n.language:!0:!1})){let s=!1,n=!1;for(let c of this.manifest_.variants){let d=c[t.type];d&&(d.id===t.id?(c.disabledUntilTime=Date.now()/1e3+i,s=!0,p.v2("Disabled stream "+t.type+":"+t.id+" for "+i+" seconds...")):d.trickModeVideo&&d.trickModeVideo.id==t.id&&(n=!0))}if(!s&&n)return!1;v.assert(s,"Must have disabled stream"),this.checkVariantsTimer_.tickEvery(1);let{video:a}=this.getBufferedInfo(),o=a.reduce((c,{start:d,end:u})=>c+u-d,0);return this.chooseVariantAndSwitch_(!1,o,!0,!1),!0}return p.warning("No alternate stream found for active "+t.type+" stream. Will ignore request to disable stream..."),!1}async onError_(t){if(v.assert(t instanceof h,"Wrong error type!"),this.loadMode_==Q.LoadMode.DESTROYED)return;if(t.severity===h.Severity.RECOVERABLE&&this.stats_.addNonFatalError(),this.manifest_&&this.streamingEngine_&&!t.handled&&(t.code==h.Code.VIDEO_ERROR||t.code==h.Code.MEDIA_SOURCE_OPERATION_FAILED||t.code==h.Code.MEDIA_SOURCE_OPERATION_THREW||t.code==h.Code.STREAMING_NOT_ALLOWED||t.code==h.Code.TRANSMUXING_FAILED)&&(se.getPlayableVariants(this.manifest_.variants).length>1||this.fullyLoaded_)){if(j.getDevice().getBrowserEngine()===ie.BrowserEngine.WEBKIT&&t.code==h.Code.VIDEO_ERROR)return;try{if(await this.streamingEngine_.resetMediaSource()){let o=Q.makeEvent_(U.EventName.MediaSourceRecovered);this.dispatchEvent(o);return}}catch(a){}}t.severity===h.Severity.CRITICAL&&this.restoreDisabledVariants_(!1);let i=U.EventName.Error,r=Q.makeEvent_(i,new Map().set("detail",t));this.dispatchEvent(r),r.defaultPrevented&&(t.handled=!0)}addFont(t,i){return Ge.addFont(t,i)}onRegionEvent_(t,i,r=this){let s={schemeIdUri:i.schemeIdUri,value:i.value,startTime:i.startTime,endTime:i.endTime,id:i.id,timescale:i.timescale,eventNode:i.eventNode,urlParams:i.urlParams,values:i.values},n=new Map().set("detail",s);r.dispatchEvent(Q.makeEvent_(t,n))}sendEventStreamCallback_(t){if(t.schemeIdUri!=="urn:mpeg:dash:event:callback:2015"||!t.eventNode)return;let i=I.getTextContents(t.eventNode);if(!i)return;let r=i.trim();if(!r)return;r=fe.applyUrlParams(r,t.urlParams);let s=K.RequestType.EVENT_CALLBACK,n=K.makeRequest([r],K.defaultRetryParameters());this.networkingEngine_.request(s,n).promise.catch(()=>{})}onMediaQualityChange_(t,i,r=!1){let s={bandwidth:t.bandwidth,audioSamplingRate:t.audioSamplingRate,codecs:t.codecs,contentType:t.contentType,frameRate:t.frameRate,height:t.height,mimeType:t.mimeType,channelsCount:t.channelsCount,pixelAspectRatio:t.pixelAspectRatio,width:t.width,label:t.label,roles:t.roles,language:t.language},n=new Map().set("mediaQuality",s).set("position",i);this.dispatchEvent(Q.makeEvent_(r?U.EventName.AudioTrackChanged:U.EventName.MediaQualityChanged,n))}videoErrorToShakaError_(t=!0){if(v.assert(this.video_.error,"Video error expected, but missing!"),!this.video_.error)return t?new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.VIDEO_ERROR):null;let{code:i,extended:r,message:s}=h.getMediaElementErrorDetails(this.video_.error);return!t&&i===MediaError.MEDIA_ERR_ABORTED?null:new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.VIDEO_ERROR,i,r,s)}onVideoError_(t){let i=this.videoErrorToShakaError_(!1);i&&this.onError_(i)}onKeyStatus_(t){if(!this.streamingEngine_)return;let i=Q.makeEvent_(U.EventName.KeyStatusChanged);this.dispatchEvent(i);let r=Object.keys(t);r.length==0&&p.warning("Got a key status event without any key statuses, so we don't know the real key statuses. If we don't have all the keys, you'll need to set restrictions so we don't select those tracks."),r.length==1&&r[0]==""&&(r=["00"],t={"00":t[""]});let s=r.length==1&&r[0]=="00";s&&p.warning("Got a synthetic key status event, so we don't know the real key statuses. If we don't have all the keys, you'll need to set restrictions so we don't select those tracks.");let n=Rr.restrictedStatuses,a=!1;if(v.assert(this.drmEngine_,"drmEngine should be non-null here."),r.length){let o=this.keySystem(),c=Zt.asMap(this.config_.drm.clearKeys),d=(u,m)=>{u.allowedByKeySystem=!0;for(let f of m){let g=t[s?"00":f];(g||this.drmEngine_.hasManifestInitData())&&(u.allowedByKeySystem=u.allowedByKeySystem&&!!g&&!n.includes(g))}};for(let u of this.manifest_.variants){let m=se.getVariantStreams(u);for(let f of m){let g=u.allowedByKeySystem;if(f.keyIds.size)if(f.drmInfos.length&&!c.size&&this.manifest_.type==me.HLS)for(let _ of f.drmInfos)_.keySystem==o&&(_.keyIds.size?d(u,_.keyIds):d(u,f.keyIds));else d(u,f.keyIds);g!=u.allowedByKeySystem&&(a=!0)}}}if(a){this.onTracksChanged_();let o=this.streamingEngine_.getCurrentVariant();o&&!o.allowedByKeySystem?(p.debug("Choosing new streams after key status changed"),this.chooseVariantAndSwitch_()):this.updateAbrManagerVariants_()}}static applyPlayRange_(t,i,r){i>0&&(t.isDynamic()?p.warning("|playRangeStart| has been configured for live content. Ignoring the setting."):t.setUserSeekStart(i));let s=t.getDuration();r<s&&(t.isDynamic()?p.warning("|playRangeEnd| has been configured for live content. Ignoring the setting."):t.setDuration(r))}async delayDispatchEvent_(t){await Promise.resolve(),this.loadMode_!=Q.LoadMode.DESTROYED&&this.dispatchEvent(t)}createAbortLoadError_(){return new h(h.Severity.CRITICAL,h.Category.PLAYER,h.Code.LOAD_INTERRUPTED)}isRemotePlayback(){if(!this.video_)return!1;let i=j.getDevice().getRemote(this.video_);return i?i.state!="disconnected":!1}isEnded(){return!this.video_||this.video_.ended?!0:this.fullyLoaded_&&!this.isDynamic()&&this.video_.currentTime>=this.seekRange().end}static convertLegacyPreferences_(t){let i=(d,u)=>{p.alwaysWarn(d,"has been deprecated. Please use",u,"instead.")},r={preferredAudioLanguage:"language",preferredAudioRole:"role",preferredAudioLabel:"label",preferredAudioChannelCount:"channelCount",preferSpatialAudio:"spatialAudio"};if(Object.keys(r).some(d=>d in t)){let d={language:"",role:"",label:"",channelCount:0,codec:""};for(let[u,m]of Object.entries(r))u in t&&(i(u,"preferredAudio"),d[m]=t[u],delete t[u]);t.preferredAudio||(t.preferredAudio=[d])}if("preferredAudioCodecs"in t){i("preferredAudioCodecs","preferredAudio");let d=t.preferredAudioCodecs;Array.isArray(d)&&d.length&&(t.preferredAudio||(t.preferredAudio=d.map(u=>({language:"",role:"",label:"",channelCount:0,codec:u})))),delete t.preferredAudioCodecs}let n={preferredTextLanguage:"language",preferredTextRole:"role",preferForcedSubs:"forced"};if(Object.keys(n).some(d=>d in t)){let d={language:"",role:"",format:""};for(let[u,m]of Object.entries(n))u in t&&(i(u,"preferredText"),d[m]=t[u],delete t[u]);t.preferredText||(t.preferredText=[d])}if("preferredTextFormats"in t){i("preferredTextFormats","preferredText");let d=t.preferredTextFormats;Array.isArray(d)&&d.length&&(t.preferredText||(t.preferredText=d.map(u=>({language:"",role:"",format:u})))),delete t.preferredTextFormats}let o={preferredVideoLabel:"label",preferredVideoRole:"role",preferredVideoHdrLevel:"hdrLevel",preferredVideoLayout:"layout"};if(Object.keys(o).some(d=>d in t)){let d={label:"",role:"",language:"",codec:"",hdrLevel:"",layout:""};for(let[u,m]of Object.entries(o))u in t&&(i(u,"preferredVideo"),d[m]=t[u],delete t[u]);t.preferredVideo||(t.preferredVideo=[d])}if("preferredVideoCodecs"in t){i("preferredVideoCodecs","preferredVideo");let d=t.preferredVideoCodecs;Array.isArray(d)&&d.length&&(t.preferredVideo||(t.preferredVideo=d.map(u=>({label:"",role:"",language:"",codec:u,hdrLevel:"",layout:""})))),delete t.preferredVideoCodecs}}registerExtraTrackPromise_(t){this.pendingExtraTrackPromises_.add(t),t.finally(()=>this.pendingExtraTrackPromises_.delete(t))}async waitForPendingExtraTrackPromises_(){this.pendingExtraTrackPromises_.size&&await Promise.all([...this.pendingExtraTrackPromises_])}};l(Q,"LoadMode",{DESTROYED:0,NOT_LOADED:1,MEDIA_SOURCE:2,SRC_EQUALS:3}),l(Q,"TYPICAL_BUFFERING_THRESHOLD_",.5),l(Q,"supportPlugins_",new Map),l(Q,"adManagerFactory_",null),l(Q,"queueManagerFactory_",null),l(Q,"TextTrackLabel","Shaka Player TextTrack");var dt=Q;dt.version="v5.2.4-uncompiled";Cr.init(dt.version);/*! @license
491
+ * Shaka Player
492
+ * Copyright 2016 Google LLC
493
+ * SPDX-License-Identifier: Apache-2.0
494
+ */var Ls=class{constructor(){l(this,"loadTimes_");l(this,"started_");l(this,"overlayAds_");l(this,"playedCompletely_");l(this,"skipped_");l(this,"errors_");this.loadTimes_=[],this.started_=0,this.overlayAds_=0,this.playedCompletely_=0,this.skipped_=0,this.errors_=0}addLoadTime(e){this.loadTimes_.push(e)}incrementStarted(){this.started_++}incrementOverlayAds(){this.overlayAds_++}incrementPlayedCompletely(){this.playedCompletely_++}incrementSkipped(){this.skipped_++}incrementErrors(){this.errors_++}getAverageLoadTime_(){return this.loadTimes_.length?this.loadTimes_.reduce((t,i)=>t+i,0)/this.loadTimes_.length:0}getBlob(){return{loadTimes:this.loadTimes_,averageLoadTime:this.getAverageLoadTime_(),started:this.started_,overlayAds:this.overlayAds_,playedCompletely:this.playedCompletely_,skipped:this.skipped_,errors:this.errors_}}};/*! @license
495
+ * Shaka Player
496
+ * Copyright 2016 Google LLC
497
+ * SPDX-License-Identifier: Apache-2.0
498
+ */var Wt=class{constructor(e=null){l(this,"video");this.video=e}needsSkipUI(){return!0}isClientRendering(){return!0}hasCustomClick(){return!1}isUsingAnotherMediaElement(){return!1}getDuration(){return-1}getMinSuggestedDuration(){return this.getDuration()}getRemainingTime(){return-1}isPaused(){return this.video?this.video.paused:!1}isSkippable(){return!1}getTimeUntilSkippable(){return 0}canSkipNow(){return!1}skip(){}pause(){this.video&&this.video.pause()}play(){this.video&&this.video.play()}getVolume(){return this.video?this.video.volume:1}setVolume(e){this.video&&(this.video.volume=e)}isMuted(){return this.video?this.video.muted:!1}isLinear(){return!0}resize(e,t){}setMuted(e){this.video&&(this.video.muted=e)}getSequenceLength(){return 1}getPositionInSequence(){return 1}getTitle(){return""}getDescription(){return""}getVastMediaBitrate(){return 0}getVastMediaHeight(){return 0}getVastMediaWidth(){return 0}getVastAdId(){return""}getAdId(){return""}getCreativeAdId(){return""}getAdvertiserName(){return""}getMediaUrl(){return null}getTimeOffset(){return 0}getPodIndex(){return 0}release(){this.video=null}};/*! @license
499
+ * Shaka Player
500
+ * Copyright 2016 Google LLC
501
+ * SPDX-License-Identifier: Apache-2.0
502
+ */var vn=class extends Wt{constructor(t,i,r){super(r);l(this,"ad_");l(this,"manager_");l(this,"isPaused_");l(this,"volume_");l(this,"eventManager_");this.ad_=t,this.manager_=i,this.isPaused_=!1,this.volume_=this.manager_.getVolume(),this.eventManager_=new ue,this.eventManager_.listen(this.manager_,google.ima.AdEvent.Type.PAUSED,()=>{this.isPaused_=!0}),this.eventManager_.listen(this.manager_,google.ima.AdEvent.Type.RESUMED,()=>{this.isPaused_=!1})}needsSkipUI(){return!1}hasCustomClick(){return!0}isUsingAnotherMediaElement(){return!0}getDuration(){return this.ad_.getDuration()}getMinSuggestedDuration(){return this.ad_.getMinSuggestedDuration()}getRemainingTime(){return this.manager_.getRemainingTime()}isPaused(){return this.isPaused_}isSkippable(){return this.ad_.getSkipTimeOffset()>=0}getTimeUntilSkippable(){let t=this.ad_.getSkipTimeOffset(),i=this.getRemainingTime()-t;return Math.max(i,0)}canSkipNow(){return this.manager_.getAdSkippableState()}skip(){return this.manager_.skip()}setPaused(t){this.isPaused_=t}pause(){return this.manager_.pause()}play(){return this.manager_.resume()}getVolume(){return this.manager_.getVolume()}setVolume(t){return this.video.volume=t,this.manager_.setVolume(t)}isMuted(){return this.manager_.getVolume()==0}isLinear(){return this.ad_.isLinear()}resize(t,i){this.manager_.resize(t,i)}setMuted(t){this.video.muted=t,t?(this.volume_=this.getVolume(),this.manager_.setVolume(0)):this.manager_.setVolume(this.volume_)}setInitialMuted(t){this.volume_=t,this.manager_.setVolume(0)}getSequenceLength(){let t=this.ad_.getAdPodInfo();return t==null?1:t.getTotalAds()}getPositionInSequence(){let t=this.ad_.getAdPodInfo();return t==null?1:t.getAdPosition()}getTitle(){return this.ad_.getTitle()}getDescription(){return this.ad_.getDescription()}getVastMediaBitrate(){return this.ad_.getVastMediaBitrate()}getVastMediaHeight(){return this.ad_.getVastMediaHeight()}getVastMediaWidth(){return this.ad_.getVastMediaWidth()}getAdId(){return this.ad_.getAdId()}getCreativeAdId(){return this.ad_.getCreativeAdId()}getAdvertiserName(){return this.ad_.getAdvertiserName()}getMediaUrl(){return this.ad_.getMediaUrl()}getTimeOffset(){let t=this.ad_.getAdPodInfo();return t==null?0:t.getTimeOffset()}getPodIndex(){let t=this.ad_.getAdPodInfo();return t==null?0:t.getPodIndex()}release(){this.ad_=null,this.manager_=null}};/*! @license
503
+ * Shaka Player
504
+ * Copyright 2016 Google LLC
505
+ * SPDX-License-Identifier: Apache-2.0
506
+ */var Te=class Te{static createTracking(){return{impression:null,clickTracking:null,start:null,firstQuartile:null,midpoint:null,thirdQuartile:null,complete:null,skip:null,error:null,resume:null,pause:null,mute:null,unmute:null}}static createTrackingFromInline(e){let t=Te.createTracking();for(let i of I.findChildren(e,"Error")){let r=I.getTextContents(i);r&&(t.error||(t.error=[]),t.error.push(r))}for(let i of I.findChildren(e,"Impression")){let r=I.getTextContents(i);r&&(t.impression||(t.impression=[]),t.impression.push(r))}return t}static createTrackingFromEvents(e){let t=Te.createTracking();for(let i of e)i.type in t&&(t[i.type]?t[i.type].push(...i.urls):t[i.type]=i.urls);return t}static processTrackingEvents(e,t){for(let i of e){let r=i.attributes.event;if(r in t){let s=I.getTextContents(i);s&&(t[r]||(t[r]=[]),t[r].push(s))}}}static fireTrackingEvents(e,t,i){if(!e)return;let r;switch(t){case Te.AD_IMPRESSION:r=e.impression;break;case Te.AD_CLICKED:r=e.clickTracking;break;case Te.AD_STARTED:r=e.start;break;case Te.AD_FIRST_QUARTILE:r=e.firstQuartile;break;case Te.AD_MIDPOINT:r=e.midpoint;break;case Te.AD_THIRD_QUARTILE:r=e.thirdQuartile;break;case Te.AD_COMPLETE:r=e.complete;break;case Te.AD_SKIPPED:r=e.skip;break;case Te.AD_ERROR:r=e.error;break;case Te.AD_RESUMED:r=e.resume;break;case Te.AD_PAUSED:r=e.pause;break;case Te.AD_MUTED:r=e.mute;break;case Te.AD_VOLUME_CHANGED:r=e.unmute;break}if(!r)return;let s={type:K.AdvancedRequestType.TRACKING_EVENT},n=K.RequestType.ADS;for(let a of r){let o=K.makeRequest([a],K.defaultRetryParameters());o.method="POST",i.request(n,o,s)}}};l(Te,"ADS_LOADED","ads-loaded"),l(Te,"AD_STARTED","ad-started"),l(Te,"AD_PLAYING","ad-playing"),l(Te,"AD_FIRST_QUARTILE","ad-first-quartile"),l(Te,"AD_MIDPOINT","ad-midpoint"),l(Te,"AD_THIRD_QUARTILE","ad-third-quartile"),l(Te,"AD_COMPLETE","ad-complete"),l(Te,"AD_STOPPED","ad-stopped"),l(Te,"AD_SKIPPED","ad-skipped"),l(Te,"AD_VOLUME_CHANGED","ad-volume-changed"),l(Te,"AD_MUTED","ad-muted"),l(Te,"AD_PAUSED","ad-paused"),l(Te,"AD_RESUMED","ad-resumed"),l(Te,"AD_SKIP_STATE_CHANGED","ad-skip-state-changed"),l(Te,"CUEPOINTS_CHANGED","ad-cue-points-changed"),l(Te,"IMA_AD_MANAGER_LOADED","ima-ad-manager-loaded"),l(Te,"IMA_STREAM_MANAGER_LOADED","ima-stream-manager-loaded"),l(Te,"AD_CLICKED","ad-clicked"),l(Te,"AD_PROGRESS","ad-progress"),l(Te,"AD_BUFFERING","ad-buffering"),l(Te,"AD_IMPRESSION","ad-impression"),l(Te,"AD_DURATION_CHANGED","ad-duration-changed"),l(Te,"AD_CLOSED","ad-closed"),l(Te,"AD_LOADED","ad-loaded"),l(Te,"ALL_ADS_COMPLETED","all-ads-completed"),l(Te,"AD_LINEAR_CHANGED","ad-linear-changed"),l(Te,"AD_METADATA","ad-metadata"),l(Te,"AD_RECOVERABLE_ERROR","ad-recoverable-error"),l(Te,"AD_ERROR","ad-error"),l(Te,"AD_BREAK_READY","ad-break-ready"),l(Te,"AD_BREAK_STARTED","ad-break-started"),l(Te,"AD_BREAK_ENDED","ad-break-ended"),l(Te,"AD_INTERSTITIAL_PRELOAD","ad-interstitial-preload"),l(Te,"AD_INTERSTITIAL_PRELOADED","ad-interstitial-preloaded"),l(Te,"AD_INTERACTION","ad-interaction"),l(Te,"AD_CONTENT_PAUSE_REQUESTED","ad-content-pause-requested"),l(Te,"AD_CONTENT_RESUME_REQUESTED","ad-content-resume-requested"),l(Te,"AD_CONTENT_ATTACH_REQUESTED","ad-content-attach-requested");var G=Te;/*! @license
507
+ * Shaka Player
508
+ * Copyright 2016 Google LLC
509
+ * SPDX-License-Identifier: Apache-2.0
510
+ */var Sn=class{constructor(e,t,i,r,s){l(this,"adContainer_");l(this,"video_");l(this,"videoPlayed_");l(this,"config_");l(this,"resizeObserver_");l(this,"requestAdsStartTime_");l(this,"onEvent_");l(this,"ad_");l(this,"eventManager_");l(this,"adDisplayContainer_");l(this,"adsLoader_");l(this,"imaAdsManager_");l(this,"adsRenderingSettings_");this.adContainer_=e,this.video_=t,this.videoPlayed_=!1,this.config_=null,this.resizeObserver_=null,this.requestAdsStartTime_=NaN,this.onEvent_=s,this.ad_=null,this.eventManager_=new ue,google.ima.settings.setLocale(i),google.ima.settings.setDisableCustomPlaybackForIOS10Plus(!0),this.adDisplayContainer_=new google.ima.AdDisplayContainer(this.adContainer_,this.video_),this.adDisplayContainer_.initialize(),this.adsLoader_=new google.ima.AdsLoader(this.adDisplayContainer_),this.adsLoader_.getSettings().setPlayerType("shaka-player"),this.adsLoader_.getSettings().setPlayerVersion(dt.version),this.imaAdsManager_=null,this.adsRenderingSettings_=r||new google.ima.AdsRenderingSettings,this.eventManager_.listen(this.adsLoader_,google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED,n=>{this.onAdsManagerLoaded_(n)}),this.eventManager_.listen(this.adsLoader_,google.ima.AdErrorEvent.Type.AD_ERROR,n=>{this.onAdError_(n)}),this.eventManager_.listen(this.video_,"ended",()=>{this.adsLoader_.contentComplete()}),this.eventManager_.listenOnce(this.video_,"play",()=>{this.videoPlayed_=!0})}configure(e){this.config_=e}requestAds(e){v.assert(e.adTagUrl||e.adsResponse,"The ad tag needs to be set up before requesting ads, or adsResponse must be filled."),this.imaAdsManager_&&this.imaAdsManager_.destroy(),this.adsLoader_&&this.adsLoader_.contentComplete(),this.requestAdsStartTime_=Date.now()/1e3,this.adsLoader_.requestAds(e)}updateAdsRenderingSettings(e){this.adsRenderingSettings_=e,this.imaAdsManager_&&this.imaAdsManager_.updateAdsRenderingSettings(this.adsRenderingSettings_)}stop(){this.imaAdsManager_&&this.imaAdsManager_.stop(),this.adContainer_&&Ge.removeAllChildren(this.adContainer_)}release(){this.stop(),this.resizeObserver_&&this.resizeObserver_.disconnect(),this.eventManager_&&this.eventManager_.release(),this.imaAdsManager_&&this.imaAdsManager_.destroy(),this.adsLoader_.destroy(),this.adDisplayContainer_.destroy()}onAdError_(e){p.warning("There was an ad error from the IMA SDK: "+e.getError()),p.warning("Resuming playback.");let t=new Map().set("originalEvent",e);this.onEvent_(new U(G.AD_ERROR,t)),this.onAdComplete_(null),this.onEvent_(new U(G.CUEPOINTS_CHANGED,new Map().set("cuepoints",[])))}onAdsManagerLoaded_(e){v.assert(this.video_!=null,"Video should not be null!");let i=Date.now()/1e3-this.requestAdsStartTime_;if(this.onEvent_(new U(G.ADS_LOADED,new Map().set("loadTime",i))),!this.config_.customPlayheadTracker)this.imaAdsManager_=e.getAdsManager(this.video_,this.adsRenderingSettings_);else{let s={currentTime:this.video_.currentTime};this.imaAdsManager_=e.getAdsManager(s,this.adsRenderingSettings_),this.video_.muted?this.imaAdsManager_.setVolume(0):this.imaAdsManager_.setVolume(this.video_.volume),this.eventManager_.listen(this.video_,"timeupdate",()=>{this.video_.duration&&(s.currentTime=this.video_.currentTime)}),this.eventManager_.listen(this.video_,"volumechange",()=>{this.ad_&&(this.ad_.setVolume(this.video_.volume),this.video_.muted&&this.ad_.setMuted(!0))})}this.onEvent_(new U(G.IMA_AD_MANAGER_LOADED,new Map().set("imaAdManager",this.imaAdsManager_)));let r=this.imaAdsManager_.getCuePoints();if(r.length){let s=[];for(let n of r){let a={start:n,end:null};s.push(a)}this.onEvent_(new U(G.CUEPOINTS_CHANGED,new Map().set("cuepoints",s)))}this.addImaEventListeners_();try{this.imaAdsManager_.init(this.video_.offsetWidth,this.video_.offsetHeight),this.eventManager_.listen(this.video_,"loadeddata",()=>{this.imaAdsManager_.resize(this.video_.offsetWidth,this.video_.offsetHeight)}),"ResizeObserver"in window?(this.resizeObserver_=new ResizeObserver(()=>{this.imaAdsManager_.resize(this.video_.offsetWidth,this.video_.offsetHeight)}),this.resizeObserver_.observe(this.video_)):this.eventManager_.listen(document,"fullscreenchange",()=>{this.imaAdsManager_.resize(this.video_.offsetWidth,this.video_.offsetHeight)}),this.videoPlayed_||this.config_.skipPlayDetection?this.imaAdsManager_.start():this.eventManager_.listenOnce(this.video_,"play",()=>{this.videoPlayed_=!0,this.imaAdsManager_.start()})}catch(s){this.onAdComplete_(null)}}addImaEventListeners_(){let e=(t,i)=>{let r=new Map().set("originalEvent",t);this.onEvent_(new U(i,r))};this.eventManager_.listen(this.imaAdsManager_,google.ima.AdErrorEvent.Type.AD_ERROR,t=>{this.onAdError_(t)}),this.eventManager_.listenMulti(this.imaAdsManager_,[google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED,google.ima.AdEvent.Type.STARTED],t=>{this.onAdStart_(t)}),this.eventManager_.listen(this.imaAdsManager_,google.ima.AdEvent.Type.FIRST_QUARTILE,t=>{e(t,G.AD_FIRST_QUARTILE)}),this.eventManager_.listen(this.imaAdsManager_,google.ima.AdEvent.Type.MIDPOINT,t=>{e(t,G.AD_MIDPOINT)}),this.eventManager_.listen(this.imaAdsManager_,google.ima.AdEvent.Type.THIRD_QUARTILE,t=>{e(t,G.AD_THIRD_QUARTILE)}),this.eventManager_.listen(this.imaAdsManager_,google.ima.AdEvent.Type.COMPLETE,t=>{e(t,G.AD_COMPLETE)}),this.eventManager_.listen(this.imaAdsManager_,google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED,t=>{this.onAdComplete_(t)}),this.eventManager_.listen(this.imaAdsManager_,google.ima.AdEvent.Type.ALL_ADS_COMPLETED,t=>{e(t,G.ALL_ADS_COMPLETED),this.onAdComplete_(t)}),this.eventManager_.listen(this.imaAdsManager_,google.ima.AdEvent.Type.SKIPPED,t=>{e(t,G.AD_SKIPPED)}),this.eventManager_.listen(this.imaAdsManager_,google.ima.AdEvent.Type.VOLUME_CHANGED,t=>{e(t,G.AD_VOLUME_CHANGED)}),this.eventManager_.listen(this.imaAdsManager_,google.ima.AdEvent.Type.VOLUME_MUTED,t=>{e(t,G.AD_MUTED)}),this.eventManager_.listen(this.imaAdsManager_,google.ima.AdEvent.Type.PAUSED,t=>{this.ad_&&(this.ad_.setPaused(!0),e(t,G.AD_PAUSED))}),this.eventManager_.listen(this.imaAdsManager_,google.ima.AdEvent.Type.RESUMED,t=>{this.ad_&&(this.ad_.setPaused(!1),e(t,G.AD_RESUMED))}),this.eventManager_.listen(this.imaAdsManager_,google.ima.AdEvent.Type.SKIPPABLE_STATE_CHANGED,t=>{this.ad_&&e(t,G.AD_SKIP_STATE_CHANGED)}),this.eventManager_.listen(this.imaAdsManager_,google.ima.AdEvent.Type.CLICK,t=>{e(t,G.AD_CLICKED)}),this.eventManager_.listen(this.imaAdsManager_,google.ima.AdEvent.Type.AD_PROGRESS,t=>{e(t,G.AD_PROGRESS)}),this.eventManager_.listen(this.imaAdsManager_,google.ima.AdEvent.Type.AD_BUFFERING,t=>{e(t,G.AD_BUFFERING)}),this.eventManager_.listen(this.imaAdsManager_,google.ima.AdEvent.Type.IMPRESSION,t=>{e(t,G.AD_IMPRESSION)}),this.eventManager_.listen(this.imaAdsManager_,google.ima.AdEvent.Type.DURATION_CHANGE,t=>{e(t,G.AD_DURATION_CHANGED)}),this.eventManager_.listen(this.imaAdsManager_,google.ima.AdEvent.Type.USER_CLOSE,t=>{e(t,G.AD_CLOSED)}),this.eventManager_.listen(this.imaAdsManager_,google.ima.AdEvent.Type.LOADED,t=>{e(t,G.AD_LOADED)}),this.eventManager_.listen(this.imaAdsManager_,google.ima.AdEvent.Type.LINEAR_CHANGED,t=>{e(t,G.AD_LINEAR_CHANGED)}),this.eventManager_.listen(this.imaAdsManager_,google.ima.AdEvent.Type.AD_METADATA,t=>{e(t,G.AD_METADATA)}),this.eventManager_.listen(this.imaAdsManager_,google.ima.AdEvent.Type.LOG,t=>{e(t,G.AD_RECOVERABLE_ERROR)}),this.eventManager_.listen(this.imaAdsManager_,google.ima.AdEvent.Type.AD_BREAK_READY,t=>{e(t,G.AD_BREAK_READY)}),this.eventManager_.listen(this.imaAdsManager_,google.ima.AdEvent.Type.INTERACTION,t=>{e(t,G.AD_INTERACTION)})}onAdStart_(e){v.assert(this.imaAdsManager_,"Should have an ads manager at this point!");let t=e.getAd();if(!t){p.alwaysWarn("The IMA SDK fired a "+e.type+" event with no associated ad. Unable to play ad!");return}this.ad_=new vn(t,this.imaAdsManager_,this.video_),e.type==google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED&&!this.config_.supportsMultipleMediaElements&&this.onEvent_(new U(G.AD_CONTENT_PAUSE_REQUESTED));let i=new Map().set("ad",this.ad_).set("sdkAdObject",t).set("originalEvent",e);this.onEvent_(new U(G.AD_STARTED,i)),this.ad_.isLinear()&&(this.adContainer_.setAttribute("ad-active","true"),this.config_.customPlayheadTracker||this.video_.pause(),this.video_.muted?this.ad_.setInitialMuted(this.video_.volume):this.ad_.setVolume(this.video_.volume))}onAdComplete_(e){e&&e.type==google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED&&!this.config_.supportsMultipleMediaElements&&this.onEvent_(new U(G.AD_CONTENT_RESUME_REQUESTED)),this.onEvent_(new U(G.AD_STOPPED,new Map().set("originalEvent",e))),this.ad_&&this.ad_.isLinear()&&(this.adContainer_.removeAttribute("ad-active"),!this.config_.customPlayheadTracker&&!this.video_.ended&&this.video_.play())}};/*! @license
511
+ * Shaka Player
512
+ * Copyright 2016 Google LLC
513
+ * SPDX-License-Identifier: Apache-2.0
514
+ */var Ns=class y{static isInterstitialRegion(e){if(y.isAlternativeMpd_(e))return!0;let t=e.schemeIdUri;return(t=="urn:mpeg:dash:event:2012"||t=="urn:scte:dash:scte214-events")&&!!e.eventNode&&!!I.findChild(e.eventNode,"OverlayEvent")}static parseRegion(e){return y.isAlternativeMpd_(e)?y.parseAlternativeMpd_(e):y.parseOverlay_(e)}static isAlternativeMpd_(e){return e.schemeIdUri=="urn:mpeg:dash:event:alternativeMPD:insert:2025"||e.schemeIdUri=="urn:mpeg:dash:event:alternativeMPD:replace:2025"}static parseAlternativeMpd_(e){let t=e.schemeIdUri=="urn:mpeg:dash:event:alternativeMPD:replace:2025",i=e.schemeIdUri=="urn:mpeg:dash:event:alternativeMPD:insert:2025";if(!t&&!i)return p.warning("Unsupported alternative media presentation",e),null;let r=e.startTime,s=e.endTime,n=null,a=0,o,c=!0,d=null,u=null;for(let f of e.eventNode.children)if(f.tagName=="AlternativeMPD"){let g=f.attributes.uri;if(g){o=g;break}}else if(f.tagName=="InsertPresentation"||f.tagName=="ReplacePresentation"){let g=f.attributes.uri||f.attributes.url;if(g){o=q.htmlUnescape(g);let _=I.parseAttr(f,"maxDuration",I.parseInt);_&&(n=_/e.timescale);let T=I.parseAttr(f,"returnOffset",I.parseInt);T&&(a=T/e.timescale),t&&a&&(s=r+a),I.parseAttr(f,"noJump",I.parseInt)&&(c=!1);let b=I.parseAttr(f,"skipAfter",I.parseDuration);typeof b=="number"&&(d=b);let E=I.parseAttr(f,"earliestResolutionTimeOffset",I.parseFloat);E&&(u=E/e.timescale);break}}if(!o)return p.warning("Unsupported alternative media presentation",e),null;o=fe.applyUrlParams(o,e.urlParams);let m={id:e.id,groupId:null,startTime:r,endTime:s,uri:o,mimeType:null,isSkippable:d!=null,skipOffset:d,skipFor:null,canJump:c,resumeOffset:i?a:null,playoutLimit:n,once:!1,pre:!1,post:!1,timelineRange:t&&!i,loop:!1,overlay:null,displayOnBackground:!1,currentVideo:null,background:null,clickThroughUrl:null,tracking:null};return u!=null&&(m.resolutionTimeOffset=u),m}static parseOverlay_(e){v.assert(e.eventNode,"Need a region eventNode");let t=I.findChild(e.eventNode,"OverlayEvent"),i=t.attributes.uri,r=t.attributes.mimeType,s=t.attributes.loop=="true",n=I.parseAttr(t,"z",I.parseInt);if(!i||n==0)return p.warning("Unsupported OverlayEvent",e),null;let a=null,o=I.findChild(t,"Background");if(o){let T=o.attributes.uri;T?a=`center / contain no-repeat url('${T}')`:a=I.getContents(o)}let c={x:1920,y:1080},d=I.findChild(t,"Viewport");if(d){let T=I.parseAttr(d,"x",I.parseInt);if(T==null)return p.warning("Unsupported OverlayEvent",e),null;let S=I.parseAttr(d,"y",I.parseInt);if(S==null)return p.warning("Unsupported OverlayEvent",e),null;c.x=T,c.y=S}let u={viewport:{x:c.x,y:c.y},topLeft:{x:0,y:0},size:{x:c.x,y:c.y}},m=I.findChild(t,"Overlay");if(d&&m){let T=I.findChild(m,"TopLeft"),S=I.findChild(m,"Size");if(T&&S){let b=y.parseTopLeftSize_(T,S);if(!b)return p.warning("Unsupported OverlayEvent",e),null;u.topLeft=b.topLeft,u.size=b.size}}let f=null,g=I.findChild(t,"Squeeze");if(d&&g){let T=I.findChild(g,"TopLeft"),S=I.findChild(g,"Size");if(T&&S){let b=y.parseTopLeftSize_(T,S);if(!b)return p.warning("Unsupported OverlayEvent",e),null;f={viewport:{x:c.x,y:c.y},topLeft:b.topLeft,size:b.size}}}return{id:e.id,groupId:null,startTime:e.startTime,endTime:e.endTime,uri:i,mimeType:r,isSkippable:!1,skipOffset:null,skipFor:null,canJump:!0,resumeOffset:null,playoutLimit:null,once:!1,pre:!1,post:!1,timelineRange:!0,loop:s,overlay:u,displayOnBackground:n==-1,currentVideo:f,background:a,clickThroughUrl:null,tracking:null}}static parseTopLeftSize_(e,t){let i=I.parseAttr(e,"x",I.parseInt),r=I.parseAttr(e,"y",I.parseInt),s=I.parseAttr(t,"x",I.parseInt),n=I.parseAttr(t,"y",I.parseInt);return i==null||r==null||s==null||n==null?null:{topLeft:{x:i,y:r},size:{x:s,y:n}}}};/*! @license
515
+ * Shaka Player
516
+ * Copyright 2016 Google LLC
517
+ * SPDX-License-Identifier: Apache-2.0
518
+ */var bn=class extends Wt{constructor(t,i,r,s,n,a){super(t);l(this,"interstitial_");l(this,"isSkippable_");l(this,"skipOffset_");l(this,"skipFor_");l(this,"onSkip_");l(this,"sequenceLength_");l(this,"adPosition_");l(this,"isUsingAnotherMediaElement_");l(this,"overlay_");this.interstitial_=i,this.isSkippable_=i.isSkippable,this.skipOffset_=i.isSkippable?i.skipOffset||0:i.skipOffset,this.skipFor_=i.skipFor,this.onSkip_=r,this.sequenceLength_=s,this.adPosition_=n,this.isUsingAnotherMediaElement_=a,this.overlay_=i.overlay}hasCustomClick(){return this.interstitial_.clickThroughUrl!=null}isUsingAnotherMediaElement(){return this.isUsingAnotherMediaElement_}getDuration(){let t=this.video.duration;return isNaN(t)?-1:t}getRemainingTime(){let t=this.video.duration;return isNaN(t)?-1:t-this.video.currentTime}isSkippable(){if(this.isSkippable_&&this.skipFor_!=null){let t=this.getDuration()-this.getRemainingTime(),i=this.skipOffset_+this.skipFor_;return t<i}return this.isSkippable_}getTimeUntilSkippable(){if(this.isSkippable()){let t=this.getRemainingTime()+this.skipOffset_-this.getDuration();return Math.max(t,0)}return Math.max(this.getRemainingTime(),0)}canSkipNow(){return this.isSkippable_&&this.getTimeUntilSkippable()==0}skip(){this.canSkipNow()&&this.onSkip_()}isLinear(){return this.overlay_==null}getSequenceLength(){return this.sequenceLength_}getPositionInSequence(){return this.adPosition_}getAdId(){return this.interstitial_.id||""}getMediaUrl(){return this.interstitial_.uri}getTimeOffset(){return this.interstitial_.pre?0:this.interstitial_.post?-1:this.interstitial_.startTime}};/*! @license
519
+ * Shaka Player
520
+ * Copyright 2016 Google LLC
521
+ * SPDX-License-Identifier: Apache-2.0
522
+ */var En=class extends Wt{constructor(t,i,r){super();l(this,"interstitial_");l(this,"sequenceLength_");l(this,"adPosition_");l(this,"isLinear_");this.interstitial_=t,this.sequenceLength_=i,this.adPosition_=r,this.isLinear_=t.overlay==null}hasCustomClick(){return this.interstitial_.clickThroughUrl!=null}isLinear(){return this.isLinear_}getSequenceLength(){return this.sequenceLength_}getPositionInSequence(){return this.adPosition_}getAdId(){return this.interstitial_.id||""}getMediaUrl(){return this.interstitial_.uri}getTimeOffset(){return this.interstitial_.pre?0:this.interstitial_.post?-1:this.interstitial_.startTime}};/*! @license
523
+ * Shaka Player
524
+ * Copyright 2016 Google LLC
525
+ * SPDX-License-Identifier: Apache-2.0
526
+ */var ts=class y{static parseVastToInterstitials(e,t){let i=[];for(let r of I.findChildren(e,"Ad")){let s=r.attributes.id||null,n=I.findChild(r,"InLine");if(!n)continue;let a=I.findChild(n,"Creatives");if(a)for(let o of I.findChildren(a,"Creative")){let c=I.findChild(o,"Linear");if(c){let u=G.createTrackingFromInline(n);y.processLinearAd_(i,t,c,u,s)}let d=I.findChild(o,"NonLinearAds");if(d){let u=I.findChildren(d,"NonLinear");for(let m of u){let f=G.createTrackingFromInline(n),g=I.findChild(d,"TrackingEvents");g&&G.processTrackingEvents(I.getChildNodes(g),f),y.processNonLinearAd_(i,t,m,f,s)}}}}return i}static processLinearAd_(e,t,i,r,s){let n=0;t!=null&&(n=t);let a=null;i.attributes.skipoffset&&(a=Gt.parseTime(i.attributes.skipoffset),isNaN(a)&&(a=null));let o=I.findChild(i,"MediaFiles");if(!o)return;let c=null,d=I.findChild(i,"VideoClicks");if(d){let T=I.findChild(d,"ClickThrough");if(T){let S=I.getContents(T);S&&(c=S)}for(let S of I.findChildren(d,"ClickTracking")){let b=I.getTextContents(S);b&&(r.clickTracking||(r.clickTracking=[]),r.clickTracking.push(b))}}let u=I.findChild(i,"TrackingEvents");u&&G.processTrackingEvents(I.getChildNodes(u),r);let m=I.findChildren(o,"MediaFile"),f=m,g=m.filter(T=>T.attributes.delivery=="streaming");g.length&&(f=g);let _=f.sort((T,S)=>{let b=parseInt(T.attributes.height,10)||0;return(parseInt(S.attributes.height,10)||0)-b});for(let T of _){if(T.attributes.apiFramework)continue;let S=I.getContents(T);if(S){e.push({id:s,groupId:null,startTime:n,endTime:null,uri:S,mimeType:T.attributes.type||null,isSkippable:a!=null,skipOffset:a,skipFor:null,canJump:!1,resumeOffset:0,playoutLimit:null,once:!0,pre:t==null,post:t==1/0,timelineRange:!1,loop:!1,overlay:null,displayOnBackground:!1,currentVideo:null,background:null,clickThroughUrl:c,tracking:r});break}}}static processNonLinearAd_(e,t,i,r,s){let n=null,a=I.findChild(i,"StaticResource");if(a)n=a.attributes.creativeType;else{if(a=I.findChild(i,"HTMLResource"),!a)return;n="text/html"}let o=I.getContents(a);if(!o)return;n==="text/html"&&(o="data:text/html;charset=UTF-8,"+encodeURIComponent(o));let c=I.parseAttr(i,"width",I.parseInt)||I.parseAttr(i,"expandedWidth",I.parseInt),d=I.parseAttr(i,"height",I.parseInt)||I.parseAttr(i,"expandedHeight",I.parseInt);if(!c&&!d)return;let u=null,m=I.findChild(i,"NonLinearClickThrough");if(m){let T=I.getContents(m);T&&(u=T)}for(let T of I.findChildren(i,"NonLinearClickTracking")){let S=I.getTextContents(T);S&&(r.clickTracking||(r.clickTracking=[]),r.clickTracking.push(S))}let f=null,g=i.attributes.minSuggestedDuration;g&&(f=Gt.parseTime(g));let _=0;t!=null&&(_=t),e.push({id:s,groupId:null,startTime:_,endTime:null,uri:o,mimeType:n,isSkippable:!1,skipOffset:null,skipFor:null,canJump:!1,resumeOffset:0,playoutLimit:f,once:!0,pre:t==null,post:t==1/0,timelineRange:!1,loop:!1,overlay:{viewport:{x:0,y:0},topLeft:{x:0,y:0},size:{x:c||0,y:d||0}},displayOnBackground:!1,currentVideo:null,background:null,clickThroughUrl:u,tracking:r})}static parseVMAP(e){let t=[];for(let i of I.findChildren(e,"vmap:AdBreak")){let r=i.attributes.timeOffset;if(!r)continue;let s=null;r=="start"?s=null:r=="end"?s=1/0:s=Gt.parseTime(r);let n=I.findChild(i,"vmap:AdSource");if(!n)continue;let a=I.findChild(n,"vmap:AdTagURI");if(!a)continue;let o=I.getTextContents(a);o&&t.push({time:s,uri:o})}return t}};/*! @license
527
+ * Shaka Player
528
+ * Copyright 2016 Google LLC
529
+ * SPDX-License-Identifier: Apache-2.0
530
+ */var An=class{constructor(e,t,i){l(this,"config_");l(this,"adContainer_");l(this,"basePlayer_");l(this,"baseVideo_");l(this,"adVideo_");l(this,"usingBaseVideo_");l(this,"video_");l(this,"onEvent_");l(this,"hlsMetadataIds_");l(this,"interstitialIds_");l(this,"interstitials_");l(this,"sortedInterstitials_");l(this,"unresolvedAssetLists_");l(this,"preloadOffsets_");l(this,"preloadTasks_");l(this,"preloadOnDomElements_");l(this,"player_");l(this,"eventManager_");l(this,"adEventManager_");l(this,"isEnded_");l(this,"playingAd_");l(this,"lastTime_");l(this,"lastPlayedAd_");l(this,"playingAdStartTime_");l(this,"playoutLimitTimer_");l(this,"lastOnSkip_");l(this,"usingListeners_");l(this,"videoCallbackId_");l(this,"videoFrameCallbackHandler_");l(this,"sessionId_");l(this,"assetStartOffsets_");l(this,"checkForInterstitials_");l(this,"onTimeUpdate_");l(this,"onSeeked_");l(this,"timeUpdateTimer_");l(this,"pollTimer_");this.config_=null,this.adContainer_=e,this.basePlayer_=t,this.baseVideo_=t.getMediaElement(),this.adVideo_=null,this.usingBaseVideo_=!0,this.video_=this.baseVideo_,this.onEvent_=i,this.hlsMetadataIds_=new Set,this.interstitialIds_=new Set,this.interstitials_=new Set,this.sortedInterstitials_=null,this.unresolvedAssetLists_=new Set,this.preloadOffsets_=new Map,this.preloadTasks_=new Map,this.preloadOnDomElements_=new Map,this.player_=new dt,this.updatePlayerConfig_(),this.eventManager_=new ue,this.adEventManager_=new ue,this.isEnded_=!1,this.playingAd_=!1,this.lastTime_=null,this.lastPlayedAd_=null,this.playingAdStartTime_=null,this.playoutLimitTimer_=null,this.lastOnSkip_=null,this.usingListeners_=!1,this.videoCallbackId_=-1,this.videoFrameCallbackHandler_=null,this.sessionId_=null,this.assetStartOffsets_=new Map;let r=s=>s?s.overlay?!0:this.isEnded_?s.post:!this.baseVideo_.paused:!1;this.checkForInterstitials_=()=>{if(this.playingAd_||!this.lastTime_||this.basePlayer_.isRemotePlayback())return;this.isEnded_=this.baseVideo_.ended,this.lastTime_=this.baseVideo_.currentTime;let s=this.getCurrentInterstitial_();s&&r(s)&&this.setupAd_(s,1,1,Date.now())},this.onTimeUpdate_=()=>{if(this.playingAd_||this.lastTime_||this.basePlayer_.isRemotePlayback())return;this.isEnded_=this.baseVideo_.ended,this.baseVideo_.paused||(this.lastTime_=this.baseVideo_.currentTime);let s;this.lastPlayedAd_||(s=this.getCurrentInterstitial_(!0)),s||(s=this.getCurrentInterstitial_()),s&&r(s)&&this.setupAd_(s,1,1,Date.now())},this.onSeeked_=()=>{if(this.playingAd_||!this.lastTime_||this.basePlayer_.isRemotePlayback())return;this.isEnded_=this.baseVideo_.ended;let s=this.baseVideo_.currentTime;this.lastPlayedAd_&&!this.lastPlayedAd_.pre&&!this.lastPlayedAd_.post&&s<this.lastPlayedAd_.startTime&&(this.lastPlayedAd_=null),this.maybeResetAssetListsOnSeek_(s)},this.timeUpdateTimer_=new ae(this.checkForInterstitials_),this.pollTimer_=new ae(()=>{if(!this.playingAd_&&this.lastTime_!=null&&(this.interstitials_.size||this.unresolvedAssetLists_.size)){let s=this.basePlayer_.getLoadMode();if(s==dt.LoadMode.DESTROYED||s==dt.LoadMode.NOT_LOADED)return;let n=!1,a=this.basePlayer_.seekRange();for(let c of Array.from(this.unresolvedAssetLists_)){let d=c.endTime||c.startTime;a.start-d>=1?(this.unresolvedAssetLists_.delete(c),this.removeEventListeners_(),n=!0):!c.resolving&&!c.resolved&&this.shouldResolveAssetListNow_(c)&&(c.resolving=!0,this.resolveAssetListDescriptor_(c))}let o=Array.from(this.interstitials_);for(let c of o){if(c==this.lastPlayedAd_)continue;let d=c.endTime||c.startTime;if(a.start-d>=1)this.removeInterstitial_(c),this.removeEventListeners_(),c.overlay||(n=!0);else if(this.isWithinPreloadWindow_(c)){if(!this.preloadTasks_.has(c)&&this.isPreloadAllowed_(c)){v.assert(this.player_,"Need a player");let u=new In(this.player_,c,(m,f)=>{this.sendEvent_(m,f)});this.preloadTasks_.set(c,u)}this.checkPreloadOnDomElements_(c)}}n&&this.cuepointsChanged_()}}),this.configure(this.basePlayer_.getConfiguration().ads)}configure(e){this.config_=e,this.playingAd_||this.determineIfUsingBaseVideo_()}addEventListeners_(){var t;if(this.usingListeners_||!this.interstitials_.size&&!this.unresolvedAssetLists_.size)return;this.eventManager_.listenMulti(this.baseVideo_,["playing","timeupdate"],this.onTimeUpdate_),this.eventManager_.listen(this.baseVideo_,"seeked",this.onSeeked_),this.eventManager_.listen(this.baseVideo_,"ended",this.checkForInterstitials_);let e=!0;if(!this.isSmartTV_()){(t=this.videoFrameCallbackHandler_)==null||t.release();let i=this.baseVideo_;this.videoFrameCallbackHandler_=new es(i),e=!this.videoFrameCallbackHandler_.start(()=>{this.checkForInterstitials_()})}e&&this.timeUpdateTimer_.tickEvery(.025),this.pollTimer_&&this.pollTimer_.tickEvery(1),this.usingListeners_=!0}removeEventListeners_(){var e,t,i;!this.usingListeners_||this.interstitials_.size||this.unresolvedAssetLists_.size||(this.eventManager_.unlisten(this.baseVideo_,"playing",this.onTimeUpdate_),this.eventManager_.unlisten(this.baseVideo_,"timeupdate",this.onTimeUpdate_),this.eventManager_.unlisten(this.baseVideo_,"seeked",this.onSeeked_),this.eventManager_.unlisten(this.baseVideo_,"ended",this.checkForInterstitials_),(e=this.videoFrameCallbackHandler_)==null||e.release(),this.videoFrameCallbackHandler_=null,(t=this.timeUpdateTimer_)==null||t.stop(),(i=this.pollTimer_)==null||i.stop(),this.usingListeners_=!1)}determineIfUsingBaseVideo_(e=!1){if(!this.adContainer_||!this.config_){this.usingBaseVideo_=!0;return}let t=this.config_.supportsMultipleMediaElements,i=this.baseVideo_;(i.controls||i.webkitPresentationMode&&i.webkitPresentationMode!=="inline"||i.webkitDisplayingFullscreen)&&(t=!1),!(!e&&this.usingBaseVideo_!=t)&&(this.usingBaseVideo_=!t,this.usingBaseVideo_?(this.video_=this.baseVideo_,this.adVideo_&&(this.adVideo_.parentElement&&this.adContainer_.removeChild(this.adVideo_),this.adVideo_=null)):(e&&this.adVideo_&&(this.adVideo_.parentElement&&this.adContainer_.removeChild(this.adVideo_),this.adVideo_=null),this.adVideo_||(this.adVideo_=this.createMediaElement_()),this.video_=this.adVideo_))}stop(){this.adEventManager_&&this.adEventManager_.removeAll(),this.hlsMetadataIds_.clear(),this.interstitialIds_.clear(),this.interstitials_.clear(),this.sortedInterstitials_=null,this.unresolvedAssetLists_.clear(),this.preloadOffsets_.clear(),this.player_.destroyAllPreloads();let e=Array.from(this.preloadTasks_.values());for(let t of e)t.release();if(this.preloadTasks_.clear(),this.preloadOnDomElements_.size){let t=Array.from(this.preloadOnDomElements_.keys());for(let i of t)this.removePreloadOnDomElements_(i)}this.preloadOnDomElements_.clear(),this.assetStartOffsets_.clear(),this.player_.detach(),this.isEnded_=!1,this.playingAd_=!1,this.lastTime_=null,this.lastPlayedAd_=null,this.playingAdStartTime_=null,this.usingBaseVideo_=!0,this.video_=this.baseVideo_,this.adVideo_=null,this.sessionId_=null,this.removeBaseStyles_(),this.removeEventListeners_(),this.adContainer_&&Ge.removeAllChildren(this.adContainer_),this.playoutLimitTimer_&&(this.playoutLimitTimer_.stop(),this.playoutLimitTimer_=null)}release(){this.stop(),this.eventManager_&&this.eventManager_.release(),this.adEventManager_&&this.adEventManager_.release(),this.timeUpdateTimer_&&(this.timeUpdateTimer_.stop(),this.timeUpdateTimer_=null),this.pollTimer_&&(this.pollTimer_.stop(),this.pollTimer_=null),this.player_.destroy()}getPlayer(){return this.player_}async addMetadata(e){let t=this.getMetadataValue_(e,"ID");if(t){if(this.hlsMetadataIds_.has(t)){this.updateInterstitials_(e,t);return}this.hlsMetadataIds_.add(t)}this.updatePlayerConfig_();let i=[];this.getMetadataValue_(e,"X-OVERLAY-ID")!=null?i=this.getOverlaysInfo_(e):i=await this.getInterstitialsInfo_(e),i.length&&await this.addInterstitials(i)}updateInterstitials_(e,t){let i=this.getMetadataValue_(e,"X-PLAYOUT-LIMIT");if(i==null)return;let r=parseFloat(i);if(!isNaN(r)){for(let s of this.interstitials_)(s.id===t||s.groupId===t)&&this.applyUpdatedPlayoutLimit_(s,r);for(let s of this.unresolvedAssetLists_)s.id===t&&s.playoutLimit==null&&(s.playoutLimit=r)}}applyUpdatedPlayoutLimit_(e,t){var a;if(e.playoutLimit!=null)return;e.playoutLimit=t;let i=this.playingAd_&&this.lastPlayedAd_!=null&&(this.lastPlayedAd_===e||e.groupId!=null&&this.lastPlayedAd_.groupId===e.groupId),r=!e.overlay&&!(e.mimeType&&(e.mimeType.startsWith("image/")||e.mimeType==="text/html"));if(!i||!r||this.playingAdStartTime_==null)return;let s=(Date.now()-this.playingAdStartTime_)/1e3,n=t-s;(a=this.playoutLimitTimer_)==null||a.stop(),this.playoutLimitTimer_=null,n<=0?this.lastOnSkip_&&this.lastOnSkip_():(this.playoutLimitTimer_=new ae(()=>{this.lastOnSkip_&&this.lastOnSkip_()}).tickAfter(n),this.player_.configure("playRangeEnd",t))}addPreloadMetadata(e){let t=this.getMetadataValue_(e,"ID");if(t){if(this.hlsMetadataIds_.has(t))return;this.hlsMetadataIds_.add(t)}let i=this.getMetadataValue_(e,"X-TARGET-ID");if(i){this.preloadOffsets_.set(i,e.startTime);for(let r of this.interstitials_)this.applyPreloadOffset_(r);for(let r of this.unresolvedAssetLists_)this.applyPreloadOffset_(r)}}applyPreloadOffset_(e){let t=null;e.id!=null&&this.preloadOffsets_.has(e.id)?t=this.preloadOffsets_.get(e.id):e.groupId!=null&&this.preloadOffsets_.has(e.groupId)&&(t=this.preloadOffsets_.get(e.groupId)),t!=null&&(e.resolutionTimeOffset=Math.max(0,e.startTime-t))}async addAdUrlInterstitial(e){let t={type:K.AdvancedRequestType.INTERSTITIAL_AD_URL},i=await this.makeAdRequest_(e,t).promise,r=I.parseXml(i.data,"VAST,vmap:VMAP");if(!r)throw new h(h.Severity.CRITICAL,h.Category.ADS,h.Code.VAST_INVALID_XML);let s=[];if(r.tagName=="VAST")s=ts.parseVastToInterstitials(r,this.lastTime_);else if(r.tagName=="vmap:VMAP"){let n=async o=>{let c=await this.makeAdRequest_(o.uri,t).promise,d=I.parseXml(c.data,"VAST");if(!d)throw new h(h.Severity.CRITICAL,h.Category.ADS,h.Code.VAST_INVALID_XML);s.push(...ts.parseVastToInterstitials(d,o.time))},a=[];for(let o of ts.parseVMAP(r))a.push(n(o));a.length&&await Promise.all(a)}this.addInterstitials(s)}async addInterstitials(e){let t=!1;for(let i of e){if(!i.uri){p.alwaysWarn("Missing URL in interstitial",i);continue}if(!i.mimeType)try{let s=this.player_.getNetworkingEngine();v.assert(s,"Need networking engine"),i.mimeType=await ct.getMimeType(i.uri,s,this.basePlayer_.getConfiguration().streaming.retryParameters)}catch(s){}let r=this.interstitialId_(i);if(!this.interstitialIds_.has(r)&&(i.loop&&!i.overlay&&p.alwaysWarn("Loop is only supported in overlay interstitials",i),i.overlay||(t=!0),this.interstitialIds_.add(r),this.interstitials_.add(i),this.sortedInterstitials_=null,this.applyPreloadOffset_(i),this.isWithinPreloadWindow_(i))){if(!this.preloadTasks_.has(i)&&this.isPreloadAllowed_(i)){v.assert(this.player_,"Need a player");let s=new In(this.player_,i,(n,a)=>{this.sendEvent_(n,a)});this.preloadTasks_.set(i,s)}this.checkPreloadOnDomElements_(i)}}t&&this.cuepointsChanged_(),this.addEventListeners_()}createMediaElement_(){let e=document.createElement(this.baseVideo_.tagName);return e.autoplay=!0,e.style.position="absolute",e.style.top="0",e.style.left="0",e.style.width="100%",e.style.height="100%",e.style.display="none",e.setAttribute("playsinline",""),e}getSortedInterstitials_(){return this.sortedInterstitials_||(this.sortedInterstitials_=Array.from(this.interstitials_).sort((e,t)=>t.startTime-e.startTime)),this.sortedInterstitials_}getCurrentInterstitial_(e=!1,t=null){let i=0,r=null;if(this.interstitials_.size&&this.lastTime_!=null){let s=this.getSortedInterstitials_(),n=o=>Math.round(o*1e3)/1e3,a=s;e?a=s.filter(o=>o.pre):this.isEnded_?a=s.filter(o=>o.post):a=s.filter(o=>!o.pre&&!o.post);for(let o of a){let c=!1;if(e)c=o.pre;else if(this.isEnded_)c=o.post;else if(!o.pre&&!o.post){let d=this.lastTime_-n(o.startTime),u=1;this.config_.allowStartInMiddleOfInterstitial&&o.endTime&&o.endTime!=1/0&&(u=o.endTime-o.startTime),(d>0||d==0&&this.lastTime_==0)&&(d<=u||!o.canJump)&&(t==null&&this.lastPlayedAd_&&!this.lastPlayedAd_.pre&&!this.lastPlayedAd_.post&&this.lastPlayedAd_.startTime>=o.startTime?c=!1:c=!0)}if(c&&(!this.lastPlayedAd_||o.startTime>=this.lastPlayedAd_.startTime)){if(i==(t||0))r=o;else if(r&&!o.canJump){let d=n(r.startTime);n(o.startTime)-d>.001&&(r=o,i=0)}i++}}}return r}setupAd_(e,t,i,r,s=0){if(p.info("Starting interstitial",e.startTime,"at",this.lastTime_),this.lastPlayedAd_=e,this.determineIfUsingBaseVideo_(),v.assert(this.video_,"Must have video"),!this.usingBaseVideo_&&this.adContainer_&&!this.video_.parentElement&&this.adContainer_.appendChild(this.video_),i==1&&t==1&&(t=Array.from(this.interstitials_).filter(n=>e.pre?n.pre==e.pre:e.post?n.post==e.post:Math.abs(n.startTime-e.startTime)<.001).length),e.once&&(s++,this.interstitials_.delete(e),this.sortedInterstitials_=null,this.removeEventListeners_(),e.overlay||this.cuepointsChanged_()),e.mimeType&&(e.mimeType.startsWith("image/")||e.mimeType==="text/html")){if(!e.overlay){p.alwaysWarn("Unsupported interstitial",e);return}p.info("Starting interstitial",e),this.setupStaticAd_(e,t,i,s);return}if(this.usingBaseVideo_&&e.overlay){p.alwaysWarn("Unsupported interstitial",e);return}p.info("Starting interstitial",e),this.setupVideoAd_(e,t,i,r,s)}setupStaticAd_(e,t,i,r){let s=this.getTimeOffset_(e);if(!this.playingAd_){this.playingAdStartTime_=Date.now();let m=new Map().set("timeOffset",s).set("startedAt",this.lastTime_);this.sendEvent_(G.AD_BREAK_STARTED,m)}this.playingAd_=!0;let n=e.overlay;v.assert(n,"Must have overlay");let a=e.mimeType=="text/html"?"iframe":"img",o=document.createElement(a);o.style.objectFit="contain",o.style.position="absolute",o.style.border="none",this.setBaseStyles_(e);let c=()=>{this.playoutLimitTimer_&&(this.playoutLimitTimer_.stop(),this.playoutLimitTimer_=null),this.adContainer_.removeChild(o),this.removeBaseStyles_(e),this.sendEvent_(G.AD_STOPPED),this.adEventManager_.removeAll();let m=this.getCurrentInterstitial_(e.pre,i-r);m?this.setupAd_(m,t,++i,Date.now(),r):this.playingAd_=!1,this.playingAd_||this.sendEvent_(G.AD_BREAK_ENDED,new Map().set("timeOffset",s))},d=new En(e,t,i);this.sendEvent_(G.AD_IMPRESSION),this.sendEvent_(G.AD_STARTED,new Map().set("ad",d)),a=="iframe"?o.src=e.uri:(o.src=e.uri,o.onerror=m=>{this.sendEvent_(G.AD_ERROR,new Map().set("originalEvent",m)),c()}),n.viewport.x==0&&n.viewport.y==0?(o.width=n.size.x,o.height=n.size.y,o.style.bottom="10%",o.style.left="0",o.style.right="0",o.style.width="100%",!n.size.y&&a=="iframe"&&(o.style.height="auto")):this.applyOverlayPosition_(o,n),this.adContainer_.appendChild(o);let u=Date.now();this.playoutLimitTimer_&&this.playoutLimitTimer_.stop(),this.playoutLimitTimer_=new ae(()=>{e.playoutLimit&&(Date.now()-u)/1e3>e.playoutLimit?(this.sendEvent_(G.AD_COMPLETE),c()):e.endTime&&this.baseVideo_.currentTime>e.endTime?(this.sendEvent_(G.AD_COMPLETE),c()):this.baseVideo_.currentTime<e.startTime&&(this.sendEvent_(G.AD_SKIPPED),c())}),e.playoutLimit&&!e.endTime?this.playoutLimitTimer_.tickAfter(e.playoutLimit):e.endTime&&this.playoutLimitTimer_.tickEvery(.025),this.adEventManager_.listen(this.baseVideo_,"seeked",()=>{let m=this.baseVideo_.currentTime;(m<e.startTime||e.endTime&&m>e.endTime)&&(this.playoutLimitTimer_&&this.playoutLimitTimer_.stop(),this.sendEvent_(G.AD_SKIPPED),c())}),e.clickThroughUrl&&this.adEventManager_.listen(o,"click",m=>{e.clickThroughUrl&&(this.sendEvent_(G.AD_CLICKED),window.open(e.clickThroughUrl,"_blank"))})}async setupVideoAd_(e,t,i,r,s){var T;v.assert(this.video_,"Must have video");let n=Date.now(),a=this.getTimeOffset_(e);if(!this.playingAd_){this.playingAdStartTime_=Date.now();let S=new Map().set("timeOffset",a).set("startedAt",this.lastTime_);this.sendEvent_(G.AD_BREAK_STARTED,S)}this.playingAd_=!0;let o=!1,c=()=>{if(!this.usingBaseVideo_&&!e.overlay&&e.resumeOffset==null)if(e.timelineRange&&e.endTime&&e.endTime!=1/0)this.baseVideo_.currentTime!=e.endTime&&(this.baseVideo_.currentTime=e.endTime);else{let S=Date.now();this.baseVideo_.currentTime+=(S-r)/1e3,r=S}},d=async(S,b)=>{var C;b||c();let E=this.getCurrentInterstitial_(e.pre,i-s);if(S&&e.groupId)for(;E&&E.groupId==e.groupId;)i++,E=this.getCurrentInterstitial_(e.pre,i-s);if(this.playoutLimitTimer_&&(!e.groupId||E&&E.groupId!=e.groupId)&&(this.playoutLimitTimer_.stop(),this.playoutLimitTimer_=null),this.removeBaseStyles_(e),!E||E.overlay){if(e.post&&(this.lastTime_=null,this.lastPlayedAd_=null),this.usingBaseVideo_?await this.player_.detach():await this.player_.unload(),this.usingBaseVideo_){let A=e.resumeOffset;A==null&&(e.timelineRange&&e.endTime&&e.endTime!=1/0?A=e.endTime-(this.lastTime_||0):A=(Date.now()-r)/1e3),this.sendEvent_(G.AD_CONTENT_RESUME_REQUESTED,new Map().set("offset",A))}else this.basePlayer_.isLive()&&e.resumeOffset!=null&&e.resumeOffset!=0&&(this.baseVideo_.currentTime+=e.resumeOffset);this.sendEvent_(G.AD_STOPPED),this.adEventManager_.removeAll(),this.playingAd_=!1,this.usingBaseVideo_?this.cuepointsChanged_():(this.video_.style.display="none",b||c(),this.isEnded_||this.baseVideo_.play())}E&&this.usingBaseVideo_&&this.isSmartTV_()?(await this.player_.detach(),this.determineIfUsingBaseVideo_(!0)):this.determineIfUsingBaseVideo_(),E&&(this.sendEvent_(G.AD_STOPPED),this.adEventManager_.removeAll(),this.setupAd_(E,t,++i,r,s)),this.playingAd_||(this.sendEvent_(G.AD_BREAK_ENDED,new Map().set("timeOffset",a)),(C=this.playoutLimitTimer_)==null||C.stop(),this.playoutLimitTimer_=null)},u=async(S,b)=>{if(o)return;o=!0;let E=b&&S.code===h.Code.BAD_HTTP_STATUS;this.sendEvent_(G.AD_ERROR,new Map().set("originalEvent",S)),await d(!1,E)},m=async()=>{o||(o=!0,await d(!1,!1),this.sendEvent_(G.AD_COMPLETE))};this.lastOnSkip_=async()=>{o||(o=!0,this.sendEvent_(G.AD_SKIPPED),await d(!0,!1))};let f=new bn(this.video_,e,this.lastOnSkip_,t,i,!this.usingBaseVideo_);this.usingBaseVideo_||(f.setMuted(this.baseVideo_.muted),f.setVolume(this.baseVideo_.volume)),this.sendEvent_(G.AD_IMPRESSION),this.sendEvent_(G.AD_STARTED,new Map().set("ad",f));let g=f.canSkipNow();if(g&&this.sendEvent_(G.AD_SKIP_STATE_CHANGED),this.preloadTasks_.has(e)){let b=this.preloadTasks_.get(e).getInitialError();if(b){this.preloadTasks_.delete(e),u(b,!0);return}}this.adEventManager_.listenOnce(this.player_,"error",S=>{u(S.detail,!1)}),this.adEventManager_.listen(this.video_,"timeupdate",()=>{if(!this.video_.duration)return;let b=f.canSkipNow();g!=b&&f.getRemainingTime()>0&&f.getDuration()>0&&this.sendEvent_(G.AD_SKIP_STATE_CHANGED),g=b,!this.usingBaseVideo_&&!e.overlay&&e.resumeOffset==null&&e.timelineRange&&e.endTime&&e.endTime!=1/0&&this.baseVideo_.currentTime!=e.endTime&&this.basePlayer_.seekRange().end>=e.endTime&&(this.baseVideo_.currentTime=e.endTime)}),this.adEventManager_.listenOnce(this.player_,"firstquartile",()=>{c(),this.sendEvent_(G.AD_FIRST_QUARTILE)}),this.adEventManager_.listenOnce(this.player_,"midpoint",()=>{c(),this.sendEvent_(G.AD_MIDPOINT)}),this.adEventManager_.listenOnce(this.player_,"thirdquartile",()=>{c(),this.sendEvent_(G.AD_THIRD_QUARTILE)}),this.adEventManager_.listenOnce(this.player_,"complete",m);let _=!1;if(this.adEventManager_.listen(this.video_,"play",()=>{_?this.sendEvent_(G.AD_RESUMED):(_=!0,this.sendEvent_(G.AD_PLAYING,new Map().set("ad",f)))}),this.adEventManager_.listen(this.video_,"pause",()=>{let S=this.player_.getConfiguration();if(this.video_.currentTime>=S.playRangeEnd){m();return}this.sendEvent_(G.AD_PAUSED)}),this.adEventManager_.listen(this.video_,"volumechange",()=>{this.video_.muted?this.sendEvent_(G.AD_MUTED):this.sendEvent_(G.AD_VOLUME_CHANGED),this.usingBaseVideo_||(this.baseVideo_.volume=this.video_.volume,this.baseVideo_.muted=this.video_.muted)}),e.clickThroughUrl){let S=this.adContainer_||this.video_;this.adEventManager_.listen(S,"click",b=>{e.clickThroughUrl&&(f.isPaused()||f.pause(),window.open(e.clickThroughUrl,"_blank"))})}if(this.usingBaseVideo_&&i==1){this.sendEvent_(G.AD_CONTENT_PAUSE_REQUESTED,new Map().set("saveLivePosition",!0));let S=Promise.withResolvers(),b=async E=>{E.state=="detach"&&(this.isSmartTV_()&&await it.delay(.1),S.resolve(),this.adEventManager_.unlisten(this.basePlayer_,"onstatechange",b))};this.adEventManager_.listen(this.basePlayer_,"onstatechange",b),await S.promise}this.setBaseStyles_(e),this.usingBaseVideo_||(this.video_.style.display="",e.overlay?(this.video_.loop=e.loop,this.applyOverlayPosition_(this.video_,e.overlay)):(this.baseVideo_.pause(),this.basePlayer_.isLive()||e.resumeOffset!=null&&e.resumeOffset!=0&&(this.baseVideo_.currentTime+=e.resumeOffset),this.video_.loop=!1,this.video_.style.height="100%",this.video_.style.left="0",this.video_.style.top="0",this.video_.style.width="100%"));try{if(this.updatePlayerConfig_(),e.startTime&&e.endTime&&e.endTime!=1/0&&e.startTime!=e.endTime){let C=e.endTime-e.startTime;C>0&&this.player_.configure("playRangeEnd",C)}let S=null;if(i==1&&!e.pre&&!e.post&&this.config_.allowStartInMiddleOfInterstitial&&this.lastTime_!=null&&e.startTime<=this.lastTime_&&(!e.endTime||e.endTime>this.lastTime_))if(e.id&&this.assetStartOffsets_.has(e.id)){let C=this.assetStartOffsets_.get(e.id);this.assetStartOffsets_.delete(e.id),Math.abs(C)>.25&&(S=C)}else{let C=this.lastTime_-e.startTime;Math.abs(C)>.25&&(S=C)}i==1&&((T=this.playoutLimitTimer_)==null||T.stop(),this.playoutLimitTimer_=null);let b=e.playoutLimit;if(b&&!this.playoutLimitTimer_&&(S&&(b-=S),this.playoutLimitTimer_=new ae(()=>{this.lastOnSkip_()}).tickAfter(b),this.player_.configure("playRangeEnd",b)),this.player_.getMediaElement()!==this.video_&&await this.player_.attach(this.video_),this.preloadTasks_.has(e)){let C=this.preloadTasks_.get(e);this.preloadTasks_.delete(e);let A=C.getInitialError();if(A)throw A;let w=C.getPreloadManager();w?await this.player_.load(w,S):await this.player_.load(e.uri,S,e.mimeType||void 0)}else await this.player_.load(e.uri,S,e.mimeType||void 0);!e.overlay||!this.baseVideo_.paused?this.video_.play():this.video_.pause();let E=(Date.now()-n)/1e3;if(this.sendEvent_(G.ADS_LOADED,new Map().set("loadTime",E)),this.usingBaseVideo_&&this.baseVideo_.play(),e.overlay){if(!e.pre&&!e.post&&(!this.basePlayer_.isLive()||e.startTime>0)){let C=()=>{let A=this.baseVideo_.currentTime-e.startTime;Math.abs(A-this.video_.currentTime)>.1&&(this.video_.currentTime=A)};this.adEventManager_.listenOnce(this.video_,"playing",C),this.adEventManager_.listen(this.baseVideo_,"seeking",C)}this.adEventManager_.listen(this.baseVideo_,"seeked",()=>{let C=this.baseVideo_.currentTime;(C<e.startTime||e.endTime&&C>e.endTime)&&this.lastOnSkip_()})}}catch(S){if(!this.playingAd_)return;u(S,!0)}}applyOverlayPosition_(e,t){let i=t.viewport,r=t.topLeft,s=t.size;e.style.height=s.y/i.y*100+"%",e.style.left=r.x/i.x*100+"%",e.style.top=r.y/i.y*100+"%",e.style.width=s.x/i.x*100+"%"}setBaseStyles_(e){if(e.displayOnBackground&&(this.baseVideo_.style.zIndex="1"),e.currentVideo!=null){let t=e.currentVideo;this.baseVideo_.style.transformOrigin="top left";let i=!0,r=[],s=t.topLeft.x/t.viewport.x*100;s>0&&s<=100&&(r.push(`translateX(${s}%)`),i=!1);let n=t.topLeft.y/t.viewport.y*100;n>0&&n<=100&&(r.push(`translateY(${n}%)`),i=!1);let a=t.size.x/t.viewport.x;a<1&&r.push(`scaleX(${a})`);let o=t.size.y/t.viewport.y;a<1&&r.push(`scaleY(${o})`),r.length&&(this.baseVideo_.style.transform=r.join(" ")),i&&(this.baseVideo_.style.transition="transform 250ms")}this.adContainer_&&(e.clickThroughUrl?(this.adContainer_.setAttribute("ad-active","true"),this.adContainer_.style.pointerEvents=""):this.adContainer_.style.pointerEvents="none",e.background&&(this.adContainer_.style.background=e.background)),this.adVideo_&&(e.overlay?this.adVideo_.style.background="":this.adVideo_.style.background="rgb(0, 0, 0)")}removeBaseStyles_(e){(!e||e.displayOnBackground)&&(this.baseVideo_.style.zIndex=""),(!e||e.currentVideo!=null)&&(this.baseVideo_.style.transformOrigin="",this.baseVideo_.style.transition="",this.baseVideo_.style.transform=""),this.adContainer_&&(this.adContainer_.removeAttribute("ad-active"),this.adContainer_.style.pointerEvents="",(!e||e.background)&&(this.adContainer_.style.background="")),this.adVideo_&&(this.adVideo_.style.background="")}async getInterstitialsInfo_(e){let t=[];if(!e)return t;let i=this.getMetadataValue_(e,"X-ASSET-URI"),r=this.getMetadataValue_(e,"X-ASSET-LIST");if(!i&&!r)return t;let s=this.getMetadataValue_(e,"ID"),{startTime:n,endTime:a}=this.getInterstitialTimes_(e,s),o=this.getMetadataValue_(e,"X-RESTRICT"),c=!0,d=!0;o!=null&&(c=!o.includes("SKIP"),d=!o.includes("JUMP"));let u=c?0:null,m=this.getMetadataValue_(e,"X-SKIP-CONTROL-OFFSET");m!=null&&(u=parseFloat(m),isNaN(u)&&(u=c?0:null));let f=null,g=this.getMetadataValue_(e,"X-SKIP-CONTROL-DURATION");g!=null&&(f=parseFloat(g),isNaN(u)&&(f=null));let _=null,T=this.getMetadataValue_(e,"X-RESUME-OFFSET");T!=null&&(_=parseFloat(T),isNaN(_)&&(_=null)),_!=null&&_!=0&&a&&a!=1/0&&jt.isFloatEqual(n+_,a)&&(_=null);let S=null,b=this.getMetadataValue_(e,"X-PLAYOUT-LIMIT");b!=null&&(S=parseFloat(b),isNaN(S)&&(S=null));let{once:E,pre:C,post:A}=this.parseCue_(e),w=!1,M=this.getMetadataValue_(e,"X-TIMELINE-OCCUPIES");if(M!=null?w=M.includes("RANGE"):T==null&&this.basePlayer_.isLive()&&(w=!C&&!A),i!=null){if(!i)return t;t.push({id:s,groupId:null,startTime:n,endTime:a,uri:this.getUriWithHlsParams_(i),mimeType:null,isSkippable:c,skipOffset:u,skipFor:f,canJump:d,resumeOffset:_,playoutLimit:S,once:E,pre:C,post:A,timelineRange:w,loop:!1,overlay:null,displayOnBackground:!1,currentVideo:null,background:null,clickThroughUrl:null,tracking:null})}else if(r!=null){if(!r)return t;let x={id:s,groupId:null,startTime:n,endTime:a,assetListUri:r,isSkippable:c,skipOffset:u,skipFor:f,canJump:d,resumeOffset:_,playoutLimit:S,once:E,pre:C,post:A,timelineRange:w,resolving:!1,resolved:!1};if(this.applyPreloadOffset_(x),this.shouldResolveAssetListNow_(x)){let k=await this.resolveAssetList_(x);return k.length&&this.maybeRetainResolvedAssetList_(x),k}this.addUnresolvedAssetList_(x)}return t}async resolveAssetList_(e){var s;let t=[],i=e.skipOffset,r=e.skipFor;try{let n={type:K.AdvancedRequestType.INTERSTITIAL_ASSET_LIST},a=0;!e.pre&&!e.post&&this.config_.allowStartInMiddleOfInterstitial&&this.basePlayer_.isLive()&&(a=((s=this.lastTime_)!=null?s:this.baseVideo_.currentTime)-e.startTime);let o=this.getUriWithHlsParams_(e.assetListUri,a),c=await this.makeAdRequest_(o,n).promise,d=q.fromUTF8(c.data),u=JSON.parse(d),m=u["SKIP-CONTROL"];if(m){let g=m.OFFSET;typeof g=="number"&&(i=parseFloat(g),isNaN(g)&&(i=e.isSkippable?0:null));let _=m.DURATION;typeof _=="number"&&(r=parseFloat(_),isNaN(r)&&(r=null))}let f=0;for(let g=0;g<u.ASSETS.length;g++){let _=u.ASSETS[g],T=_.URI,S=parseFloat(_.DURATION)||0;if(a>0&&S>0){let b=f+S;if(b<=a){f=b;continue}}if(T){let b=fe.resolve(c.uri,T),E={id:e.id+"_shaka_asset_"+g,groupId:e.id,startTime:e.startTime,endTime:e.endTime,uri:this.getUriWithHlsParams_(b),mimeType:null,isSkippable:e.isSkippable,skipOffset:i,skipFor:r,canJump:e.canJump,resumeOffset:e.resumeOffset,playoutLimit:e.playoutLimit,once:e.once,pre:e.pre,post:e.post,timelineRange:e.timelineRange,loop:!1,overlay:null,displayOnBackground:!1,currentVideo:null,background:null,clickThroughUrl:null,tracking:null},C=_["X-AD-CREATIVE-SIGNALING"];if(C){let A=C.payload&&C.payload[0];A&&(E.clickThroughUrl=A.clickThrough,A.tracking&&(E.tracking=G.createTrackingFromEvents(A.tracking)))}if(a>0&&f<a){let A=a-f;this.assetStartOffsets_.set(E.id,A)}t.push(E)}f+=S}}catch(n){p.warning("Failed to resolve interstitial asset list",e.assetListUri,n)}return t}addUnresolvedAssetList_(e){this.unresolvedAssetLists_.add(e),this.cuepointsChanged_(),this.addEventListeners_()}async resolveAssetListDescriptor_(e){let t=await this.resolveAssetList_(e);e.resolving=!1,t.length?(this.maybeRetainResolvedAssetList_(e),await this.addInterstitials(t)):(this.unresolvedAssetLists_.delete(e),this.cuepointsChanged_(),this.removeEventListeners_())}maybeRetainResolvedAssetList_(e){this.shouldRetainAssetList_()?(e.resolved=!0,this.unresolvedAssetLists_.add(e)):this.unresolvedAssetLists_.delete(e)}shouldRetainAssetList_(){return!!this.config_&&this.config_.allowStartInMiddleOfInterstitial&&this.basePlayer_.isLive()}maybeResetAssetListsOnSeek_(e){if(this.shouldRetainAssetList_())for(let t of this.unresolvedAssetLists_){if(!t.resolved)continue;let i=t.endTime;e>=t.startTime&&(i==null||i==1/0||e<i)&&(t.resolved=!1,this.removeResolvedAssetListGroup_(t.id))}}removeResolvedAssetListGroup_(e){if(e!=null)for(let t of Array.from(this.interstitials_))t.groupId===e&&this.removeInterstitial_(t)}removeInterstitial_(e){this.preloadTasks_.has(e)&&(this.preloadTasks_.get(e).release(),this.preloadTasks_.delete(e)),this.removePreloadOnDomElements_(e);let t=this.interstitialId_(e);this.interstitialIds_.delete(t),this.interstitials_.delete(e),this.sortedInterstitials_=null,this.lastPlayedAd_===e&&(this.lastPlayedAd_=null)}resolutionAheadTime_(e){return e.resolutionTimeOffset||this.config_.interstitialPreloadAheadTime}shouldResolveAssetListNow_(e){if(e.pre||e.post||e.startTime==0&&!e.canJump)return!0;let t=this.lastTime_!=null?this.lastTime_:this.baseVideo_.currentTime,i=1/0;if(!this.playingAd_&&this.baseVideo_.duration&&(i=this.baseVideo_.duration),Math.min(e.startTime,i)-t>this.resolutionAheadTime_(e))return!1;let s=e.endTime;return!(s!=null&&s!=1/0&&t>=s)}getOverlaysInfo_(e){let t=[];if(!e)return t;let i=this.getMetadataValue_(e,"X-ASSET-URI");if(!i)return t;let r=this.getMetadataValue_(e,"X-OVERLAY-ID"),{startTime:s,endTime:n}=this.getInterstitialTimes_(e,r),{once:a,pre:o,post:c}=this.parseCue_(e),d=this.getMetadataValue_(e,"X-ASSET-MIMETYPE"),u=this.getMetadataValue_(e,"X-LOOP")=="YES",m=1,f=this.getMetadataValue_(e,"X-DEPTH");f!=null&&(m=parseFloat(f),isNaN(m)&&(m=1));let g=this.getMetadataValue_(e,"X-BACKGROUND"),_={x:1920,y:1080},T=this.getMetadataValue_(e,"X-VIEWPORT");if(T!=null){let w=T.split("x");if(w.length!=2)return t;_.x=parseFloat(w[0]),_.y=parseFloat(w[1])}let S={viewport:{x:_.x,y:_.y},topLeft:{x:0,y:0},size:{x:_.x,y:_.y}},b=this.getMetadataValue_(e,"X-OVERLAY-POSITION");if(b!=null){let w=b.split("x");if(w.length!=2)return t;S.topLeft.x=parseFloat(w[0]),S.topLeft.y=parseFloat(w[1])}let E=this.getMetadataValue_(e,"X-OVERLAY-SIZE");if(E!=null){let w=E.split("x");if(w.length!=2)return t;S.size.x=parseFloat(w[0]),S.size.y=parseFloat(w[1])}let C=null,A=this.getMetadataValue_(e,"X-SQUEEZECURRENT");if(A!=null){let w=parseFloat(A);isNaN(w)&&(w=1),C={viewport:{x:1920,y:1080},topLeft:{x:0,y:0},size:{x:1920*w,y:1080*w}};let M=this.getMetadataValue_(e,"X-SQUEEZECURRENT-POSITION");if(M!=null){let x=M.split("x");if(x.length!=2)return t;C.topLeft.x=parseFloat(x[0]),C.topLeft.y=parseFloat(x[1])}}return t.push({id:r,groupId:null,startTime:s,endTime:n,uri:this.getUriWithHlsParams_(i),mimeType:d,isSkippable:!1,skipOffset:null,skipFor:null,canJump:!0,resumeOffset:null,playoutLimit:null,once:a,pre:o,post:c,timelineRange:!0,loop:u,overlay:S,displayOnBackground:m==-1,currentVideo:C,background:g,clickThroughUrl:null,tracking:null}),t}getUriWithHlsParams_(e,t=0){if(e.startsWith("data:"))return e;this.sessionId_||(this.sessionId_=window.crypto.randomUUID());let i=new Map;if(i.set("_HLS_primary_id",this.sessionId_),t>0){let r=Math.round(t*1e3)/1e3;i.set("_HLS_start_offset",String(r))}return fe.appendParams(e,i)}cuepointsChanged_(){let e=[],t=(i,r)=>{!e.find(n=>i==n.start&&r==n.end)&&e.push({start:i,end:r})};for(let i of this.interstitials_)i.overlay||(i.pre?t(0,null):i.post?t(-1,null):i.timelineRange?t(i.startTime,i.endTime):t(i.startTime,null));for(let i of this.unresolvedAssetLists_)i.pre?t(0,null):i.post?t(-1,null):i.timelineRange?t(i.startTime,i.endTime):t(i.startTime,null);this.sendEvent_(G.CUEPOINTS_CHANGED,new Map().set("cuepoints",e))}updatePlayerConfig_(){v.assert(this.player_,"Must have player"),v.assert(this.basePlayer_,"Must have base player"),this.player_.configure(this.basePlayer_.getNonDefaultConfiguration()),this.player_.configure("ads.disableHLSInterstitial",!0),this.player_.configure("ads.disableDASHInterstitial",!0),this.player_.configure("playRangeEnd",1/0);let e=this.player_.getNetworkingEngine();v.assert(e,"Need networking engine"),this.basePlayer_.getNetworkingEngine().copyFiltersInto(e)}makeAdRequest_(e,t){let i=K.RequestType.ADS,r=K.makeRequest([e],K.defaultRetryParameters());return this.basePlayer_.getNetworkingEngine().request(i,r,t)}getMetadataValue_(e,t){let i=e.values.find(r=>r.key==t);return i?i.data:null}getInterstitialTimes_(e,t){let i=t==null?Math.floor(e.startTime*10)/10:e.startTime,r=e.endTime;return e.endTime&&e.endTime!=1/0&&typeof e.endTime=="number"&&(r=t==null?Math.floor(e.endTime*10)/10:e.endTime),{startTime:i,endTime:r}}parseCue_(e){let t=this.getMetadataValue_(e,"CUE");return{once:t!=null&&t.includes("ONCE"),pre:t!=null&&t.includes("PRE"),post:t!=null&&t.includes("POST")}}interstitialId_(e){return e.id||JSON.stringify(e)}getTimeOffset_(e){return e.pre?0:e.post?-1:e.startTime}isPreloadAllowed_(e){let t=e.mimeType;return t?!t.startsWith("image/")&&t!=="text/html":!0}getInterstitials(){return Array.from(this.interstitials_)}isSmartTV_(){let t=j.getDevice().getDeviceType();return t==ie.DeviceType.TV||t==ie.DeviceType.CONSOLE||t==ie.DeviceType.CAST}checkPreloadOnDomElements_(e){if(this.preloadOnDomElements_.has(e)||this.config_&&!this.config_.allowPreloadOnDomElements)return;let t=r=>{let s=document.createElement("link");return s.rel="preload",s.href=r,s.as="image",document.head.appendChild(s),s},i=[];if(e.background){let r=/url\(('|")?([^'"()]+)('|")\)?/,s=e.background.match(r);s&&i.push(t(s[2]))}e.mimeType&&e.mimeType.startsWith("image/")&&i.push(t(e.uri)),this.preloadOnDomElements_.set(e,i)}removePreloadOnDomElements_(e){if(!this.preloadOnDomElements_.has(e))return;let t=this.preloadOnDomElements_.get(e);for(let i of t)i.parentNode.removeChild(i);this.preloadOnDomElements_.delete(e)}sendEvent_(e,t){p.info("Interstitial event",e,t),this.onEvent_(new U(e,t)),this.processTrackingEvent_(e)}processTrackingEvent_(e){if(this.config_.disableTrackingEvents)return;let t=this.lastPlayedAd_&&this.lastPlayedAd_.tracking;G.fireTrackingEvents(t,e,this.basePlayer_.getNetworkingEngine())}isWithinPreloadWindow_(e){if(e.pre&&this.lastTime_==null)return!0;if(e.startTime==0&&!e.canJump)return!0;if(this.lastTime_!=null){let t=1/0;!this.playingAd_&&this.baseVideo_.duration&&(t=this.baseVideo_.duration);let i=Math.min(e.startTime,t)-this.lastTime_;if(i>0&&i<=this.resolutionAheadTime_(e))return!0}return!1}},In=class{constructor(e,t,i=null){l(this,"player_");l(this,"preloadManager_");l(this,"initialError_");l(this,"released_");l(this,"sendEvent_");this.player_=e,this.preloadManager_=null,this.initialError_=null,this.released_=!1,this.sendEvent_=i,this.start_(t)}async start_(e){try{this.sendEvent_&&this.sendEvent_(G.AD_INTERSTITIAL_PRELOAD,new Map().set("interstitial",e));let t=await this.player_.preload(e.uri,null,e.mimeType||void 0);if(this.released_){if(t)try{await t.destroy()}catch(i){p.error("Error destroying preloadManager",i)}return}this.preloadManager_=t,t&&this.sendEvent_&&this.sendEvent_(G.AD_INTERSTITIAL_PRELOADED,new Map().set("interstitial",e))}catch(t){this.initialError_=t instanceof h?t:null}}getPreloadManager(){return this.preloadManager_}getInitialError(){return this.initialError_}release(){this.released_=!0,this.preloadManager_&&(this.preloadManager_.destroy(),this.preloadManager_=null)}};/*! @license
531
+ * Shaka Player
532
+ * Copyright 2016 Google LLC
533
+ * SPDX-License-Identifier: Apache-2.0
534
+ */var Os=class extends Wt{constructor(t,i,r,s,n){super(n);l(this,"ad_");l(this,"skipOffset_");l(this,"adPosition_");l(this,"totalAds_");l(this,"isLinear_");l(this,"isSkipped_");this.ad_=t,this.skipOffset_=Gt.parseTime(this.ad_.skipOffset),this.adPosition_=i,this.totalAds_=r,this.isLinear_=s,this.isSkipped_=!1}isClientRendering(){return!1}getDuration(){return this.ad_.durationInSeconds}getRemainingTime(){return this.ad_.startTimeInSeconds+this.ad_.durationInSeconds-this.video.currentTime}isSkippable(){return typeof this.skipOffset_=="number"}getTimeUntilSkippable(){if(typeof this.skipOffset_!="number")return this.getRemainingTime();let t=this.getRemainingTime()+this.skipOffset_-this.getDuration();return Math.max(t,0)}canSkipNow(){return this.getTimeUntilSkippable()==0}skip(){this.isSkipped_=!0,this.video.currentTime+=this.getRemainingTime()}isLinear(){return this.isLinear_}getSequenceLength(){return this.totalAds_?this.totalAds_:1}getPositionInSequence(){return this.adPosition_?this.adPosition_:1}getTitle(){return this.ad_.adTitle}getVastAdId(){return this.ad_.vastAdId||""}getAdId(){return this.ad_.adId}getCreativeAdId(){return this.ad_.creativeId}getTimeOffset(){return this.ad_.startTimeInSeconds}release(){this.ad_=null,this.adPosition_=null,this.totalAds_=null}isSkipped(){return this.isSkipped_}};/*! @license
535
+ * Shaka Player
536
+ * Copyright 2016 Google LLC
537
+ * SPDX-License-Identifier: Apache-2.0
538
+ */var be=class be{constructor(e,t,i,r){l(this,"adContainer_");l(this,"networkingEngine_");l(this,"config_");l(this,"video_");l(this,"streamPromise_");l(this,"streamRequestStartTime_");l(this,"onEvent_");l(this,"isLive_");l(this,"snapForwardTime_");l(this,"adBreaks_");l(this,"playedAds_");l(this,"ad_");l(this,"mediaTailorAd_");l(this,"mediaTailorAdBreak_");l(this,"staticResources_");l(this,"adListeners_");l(this,"eventsSent_");l(this,"trackingUrl_");l(this,"firstTrackingRequest_");l(this,"backupUrl_");l(this,"currentCuePoints_");l(this,"eventManager_");l(this,"adBreakListenersAttached_");this.adContainer_=e,this.networkingEngine_=t,this.config_=null,this.video_=i,this.streamPromise_=null,this.streamRequestStartTime_=NaN,this.onEvent_=r,this.isLive_=!1,this.snapForwardTime_=null,this.adBreaks_=[],this.playedAds_=new Set,this.ad_=null,this.mediaTailorAd_=null,this.mediaTailorAdBreak_=null,this.staticResources_=new Map,this.adListeners_=[],this.eventsSent_=new Set,this.trackingUrl_="",this.firstTrackingRequest_=!0,this.backupUrl_="",this.currentCuePoints_=[],this.eventManager_=new ue,this.adBreakListenersAttached_=!1}configure(e){this.config_=e}streamRequest(e,t,i){return this.streamPromise_?Promise.reject(new h(h.Severity.RECOVERABLE,h.Category.ADS,h.Code.CURRENT_DAI_REQUEST_NOT_FINISHED)):(this.streamPromise_=Promise.withResolvers(),this.requestSessionInfo_(e,t),this.backupUrl_=i||"",this.streamRequestStartTime_=Date.now()/1e3,this.streamPromise_.promise)}addTrackingUrl(e){this.trackingUrl_=e,this.onEvent_(new U(G.ADS_LOADED,new Map().set("loadTime",0)))}stop(){for(let e of this.adListeners_)this.eventManager_.unlisten(e.target,e.type,e.listener);this.onEnded_(),this.adListeners_=[],this.eventsSent_.clear(),this.trackingUrl_="",this.firstTrackingRequest_=!0,this.backupUrl_="",this.snapForwardTime_=null,this.adBreaks_=[],this.playedAds_.clear(),this.staticResources_.clear(),this.streamPromise_=null,this.adBreakListenersAttached_=!1}release(){this.stop(),this.eventManager_&&this.eventManager_.release()}onManifestUpdated(e){this.isLive_=e,this.trackingUrl_!=""&&(this.requestTrackingInfo_(this.trackingUrl_,this.firstTrackingRequest_),this.firstTrackingRequest_=!1)}getCuePoints(){let e=new Map;for(let t of this.adBreaks_)for(let i of t.ads){let r=i.startTimeInSeconds,s=r+i.durationInSeconds;if(!isFinite(r)||!isFinite(s)||s<=r)continue;let n=`${r.toFixed(1)}|${s.toFixed(1)}`;e.has(n)||e.set(n,{start:r,end:s})}return Array.from(e.values()).sort((t,i)=>t.start-i.start)}async requestSessionInfo_(e,t){let i=K.RequestType.ADS,r={type:K.AdvancedRequestType.MEDIATAILOR_SESSION_INFO},s=K.makeRequest([e],K.defaultRetryParameters());if(s.method="POST",t){let a=JSON.stringify(t);s.body=q.toUTF8(a)}let n=this.networkingEngine_.request(i,s,r);try{let a=await n.promise,o=q.fromUTF8(a.data),c=JSON.parse(o);if(c.manifestUrl&&c.trackingUrl){this.trackingUrl_=fe.resolve(e,c.trackingUrl);let u=Date.now()/1e3-this.streamRequestStartTime_;this.onEvent_(new U(G.ADS_LOADED,new Map().set("loadTime",u)));let m=fe.resolve(e,c.manifestUrl);this.streamPromise_.resolve(m),this.streamPromise_=null}else throw new Error("Insufficient data from MediaTailor.")}catch(a){if(!this.backupUrl_.length){this.streamPromise_.reject(new h(h.Severity.RECOVERABLE,h.Category.ADS,h.Code.MEDIATAILOR_REQUEST_FAILED)),this.streamPromise_=null;return}p.warning("MediaTailor request returned an error. Falling back to the backup asset uri."),this.streamPromise_.resolve(this.backupUrl_),this.streamPromise_=null}}async requestTrackingInfo_(e,t){let i=K.RequestType.ADS,r={type:K.AdvancedRequestType.MEDIATAILOR_TRACKING_INFO},s=K.makeRequest([e],K.defaultRetryParameters()),n=this.networkingEngine_.request(i,s,r);try{let a=await n.promise,o=[],c=q.fromUTF8(a.data),d=JSON.parse(c);if(d.avails.length>0){if(Ne.alphabeticalKeyOrderStringify(this.adBreaks_)!=Ne.alphabeticalKeyOrderStringify(d.avails)){this.adBreaks_=d.avails;for(let u of this.adBreaks_)for(let m of u.nonLinearAdsList)for(let f of m.nonLinearAdList)this.requestStaticResource_(f);o=this.getCuePoints(),this.onEvent_(new U(G.CUEPOINTS_CHANGED,new Map().set("cuepoints",o)))}}else this.adBreaks_.length&&this.onEvent_(new U(G.CUEPOINTS_CHANGED,new Map().set("cuepoints",o))),this.onEnded_(),this.adBreaks_=[];t&&(this.isLive_||o.length>0)&&this.setupAdBreakListeners_()}catch(a){p.warning("Error fetching tracking info",a)}}async requestStaticResource_(e){if(!e.staticResource)return;let t=this.getCacheKeyForNonLinear_(e);if(this.staticResources_.has(t))return;let i=K.RequestType.ADS,r={type:K.AdvancedRequestType.MEDIATAILOR_STATIC_RESOURCE},s=K.makeRequest([e.staticResource],K.defaultRetryParameters()),n=this.networkingEngine_.request(i,s,r);try{this.staticResources_.set(t,[]);let a=await n.promise,o=q.fromUTF8(a.data),d=JSON.parse(o).apps;this.staticResources_.set(t,d)}catch(a){this.staticResources_.delete(t)}}getCacheKeyForNonLinear_(e){return[e.adId,e.adParameters,e.adSystem,e.adTitle,e.creativeAdId,e.creativeId,e.creativeSequence,e.height,e.width,e.staticResource].join("|")}setupAdBreakListeners_(){this.adBreakListenersAttached_||(this.adBreakListenersAttached_=!0,this.onTimeupdate_(),this.isLive_||(this.checkForSnapback_(),this.eventManager_.listen(this.video_,"seeked",()=>{this.checkForSnapback_()}),this.eventManager_.listen(this.video_,"ended",()=>{this.onEnded_()})),this.eventManager_.listen(this.video_,"timeupdate",()=>{this.onTimeupdate_()}))}checkForSnapback_(){let e=this.video_.currentTime;if(this.config_&&this.config_.disableSnapback||e==0||this.snapForwardTime_!=null)return;let t,i;for(let r of this.adBreaks_)for(let s of r.ads)if(!i)s.startTimeInSeconds<e&&(i=s,t=r);else if(i.durationInSeconds>0&&s.startTimeInSeconds<e&&s.startTimeInSeconds>i.startTimeInSeconds+i.durationInSeconds){i=s,t=r;break}t&&i&&!this.playedAds_.has(i.adId)&&(p.info("Seeking back to the start of the ad break at "+t.startTimeInSeconds+" and will return to "+e),this.snapForwardTime_=e,this.video_.currentTime=t.startTimeInSeconds)}onAdBreakEnded_(){let e=this.video_.currentTime;this.snapForwardTime_&&this.snapForwardTime_>e&&(this.video_.currentTime=this.snapForwardTime_),this.snapForwardTime_=null}onTimeupdate_(){if(!this.video_.duration||!this.ad_&&!this.adBreaks_.length)return;let e=this.video_.currentTime,t=!1;if(this.ad_){t=!0,v.assert(this.mediaTailorAd_,"Ad should be defined"),this.sendInProgressEvents_(e,this.mediaTailorAd_);let i=this.ad_.getRemainingTime(),r=this.ad_.getDuration();this.ad_.canSkipNow()&&i>0&&r>0&&this.sendTrackingEvent_(be.SKIP_STATE_CHANGED_),r>0&&(i<=0||i>r)&&this.onEnded_()}(!this.ad_||!this.ad_.isLinear())&&(this.checkLinearAds_(e),!this.ad_&&this.adContainer_&&this.checkNonLinearAds_(e),t&&!this.ad_&&this.onAdBreakEnded_())}sendInProgressEvents_(e,t){let i=t.startTimeInSeconds+.25*t.durationInSeconds,r=t.startTimeInSeconds+.5*t.durationInSeconds,s=t.startTimeInSeconds+.75*t.durationInSeconds;e>=i&&!this.eventsSent_.has(be.FIRSTQUARTILE_)?(this.eventsSent_.add(be.FIRSTQUARTILE_),this.sendTrackingEvent_(be.FIRSTQUARTILE_)):e>=r&&!this.eventsSent_.has(be.MIDPOINT_)?(this.eventsSent_.add(be.MIDPOINT_),this.sendTrackingEvent_(be.MIDPOINT_)):e>=s&&!this.eventsSent_.has(be.THIRDQUARTILE_)&&(this.eventsSent_.add(be.THIRDQUARTILE_),this.sendTrackingEvent_(be.THIRDQUARTILE_))}checkLinearAds_(e){for(let t of this.adBreaks_){if(this.ad_&&this.ad_.isLinear())break;for(let i=0;i<t.ads.length;i++){let r=t.ads[i],s=r.startTimeInSeconds,n=r.startTimeInSeconds+r.durationInSeconds;if(s<=e&&n>e){if(!(this.config_&&this.config_.disablePlayedLinearAdSkip)&&this.playedAds_.has(r.adId)){if(this.video_.ended)continue;this.video_.currentTime=n;return}this.onEnded_(),this.mediaTailorAdBreak_=t,this.ad_=new Os(r,i+1,t.ads.length,!0,this.video_),this.mediaTailorAd_=r,i===0&&this.sendTrackingEvent_(be.BREAK_START_),this.setupCurrentAdListeners_();break}}}}checkNonLinearAds_(e){for(let t of this.adBreaks_){if(this.ad_)break;for(let i=0;i<t.nonLinearAdsList.length;i++){let r=t.nonLinearAdsList[i];if(!r.nonLinearAdList.length)continue;let s=t.startTimeInSeconds,n=this.getCacheKeyForNonLinear_(r.nonLinearAdList[0]),a=this.staticResources_.get(n);if(s<=e&&a&&a.length){this.onEnded_(),this.displayNonLinearAd_(a),this.mediaTailorAdBreak_=t,this.ad_=new Os(r,i+1,t.ads.length,!1,this.video_),this.mediaTailorAd_=r,i===0&&this.sendTrackingEvent_(be.BREAK_START_),this.setupCurrentAdListeners_();break}}}}displayNonLinearAd_(e){for(let t of e){if(!t.data.source.length)continue;let i=document.createElement("img");i.src=t.data.source[0].url,i.style.top=(t.placeholder.top||0)+"%",i.style.height=100-(t.placeholder.top||0)+"%",i.style.left=(t.placeholder.left||0)+"%",i.style.maxWidth=100-(t.placeholder.left||0)+"%",i.style.objectFit="contain",i.style.position="absolute",this.adContainer_.appendChild(i)}}onEnded_(){if(this.ad_&&this.mediaTailorAd_){this.adContainer_&&Ge.removeAllChildren(this.adContainer_),this.isLive_||this.playedAds_.add(this.mediaTailorAd_.adId),this.removeCurrentAdListeners_(this.ad_.isSkipped());let e=this.ad_.getPositionInSequence(),t=this.ad_.getSequenceLength();e===t&&this.sendTrackingEvent_(be.BREAK_END_),this.ad_=null,this.mediaTailorAd_=null,this.mediaTailorAdBreak_=null}}setupCurrentAdListeners_(){let e=!1;this.video_.paused?e=!0:(this.sendTrackingEvent_(be.IMPRESSION_),this.sendTrackingEvent_(be.START_)),this.adListeners_.push({target:this.video_,type:"volumechange",listener:()=>{this.sendTrackingEvent_(this.video_.muted?be.MUTE_:be.UNMUTE_)}}),this.adListeners_.push({target:this.video_,type:"play",listener:()=>{e?(this.sendTrackingEvent_(be.IMPRESSION_),this.sendTrackingEvent_(be.START_),e=!1):this.sendTrackingEvent_(be.RESUME_)}}),this.adListeners_.push({target:this.video_,type:"pause",listener:()=>{this.sendTrackingEvent_(be.PAUSE_)}});for(let t of this.adListeners_)this.eventManager_.listen(t.target,t.type,t.listener)}removeCurrentAdListeners_(e=!1){e?this.sendTrackingEvent_(be.SKIPPED_):this.sendTrackingEvent_(be.COMPLETE_);for(let t of this.adListeners_)this.eventManager_.unlisten(t.target,t.type,t.listener);this.adListeners_=[],this.eventsSent_.clear()}sendTrackingEvent_(e){if(!this.mediaTailorAd_||!this.mediaTailorAdBreak_)return;let t=this.mediaTailorAd_.trackingEvents.find(i=>i.eventType==e);if(t||(t=this.mediaTailorAdBreak_.adBreakTrackingEvents.find(i=>i.eventType==e)),t&&this.config_&&!this.config_.disableTrackingEvents&&!(this.config_.disableTrackingForPlayedLinearAds&&this.mediaTailorAd_&&this.playedAds_.has(this.mediaTailorAd_.adId))){let i=K.RequestType.ADS,r={type:K.AdvancedRequestType.MEDIATAILOR_TRACKING_EVENT};for(let s of t.beaconUrls){if(!s||s=="")continue;let n=K.makeRequest([s],K.defaultRetryParameters());n.method="POST",this.networkingEngine_.request(i,n,r)}}switch(e){case be.IMPRESSION_:this.onEvent_(new U(G.AD_IMPRESSION));break;case be.START_:this.onEvent_(new U(G.AD_STARTED,new Map().set("ad",this.ad_)));break;case be.MUTE_:this.onEvent_(new U(G.AD_MUTED));break;case be.UNMUTE_:this.onEvent_(new U(G.AD_VOLUME_CHANGED));break;case be.RESUME_:this.onEvent_(new U(G.AD_RESUMED));break;case be.PAUSE_:this.onEvent_(new U(G.AD_PAUSED));break;case be.FIRSTQUARTILE_:this.onEvent_(new U(G.AD_FIRST_QUARTILE));break;case be.MIDPOINT_:this.onEvent_(new U(G.AD_MIDPOINT));break;case be.THIRDQUARTILE_:this.onEvent_(new U(G.AD_THIRD_QUARTILE));break;case be.COMPLETE_:this.onEvent_(new U(G.AD_COMPLETE)),this.onEvent_(new U(G.AD_STOPPED));break;case be.SKIPPED_:this.onEvent_(new U(G.AD_SKIPPED)),this.onEvent_(new U(G.AD_STOPPED));break;case be.BREAK_START_:this.adContainer_&&this.adContainer_.setAttribute("ad-active","true");break;case be.BREAK_END_:this.adContainer_&&this.adContainer_.removeAttribute("ad-active");break;case be.SKIP_STATE_CHANGED_:this.onEvent_(new U(G.AD_SKIP_STATE_CHANGED));break}}};l(be,"IMPRESSION_","impression"),l(be,"START_","start"),l(be,"MUTE_","mute"),l(be,"UNMUTE_","unmute"),l(be,"RESUME_","resume"),l(be,"PAUSE_","pause"),l(be,"FIRSTQUARTILE_","firstQuartile"),l(be,"MIDPOINT_","midpoint"),l(be,"THIRDQUARTILE_","thirdQuartile"),l(be,"COMPLETE_","complete"),l(be,"SKIPPED_","skip"),l(be,"BREAK_START_","breakStart"),l(be,"BREAK_END_","breakEnd"),l(be,"SKIP_STATE_CHANGED_","skipStateChanged");var Cn=be;/*! @license
539
+ * Shaka Player
540
+ * Copyright 2016 Google LLC
541
+ * SPDX-License-Identifier: Apache-2.0
542
+ */var xn=class extends Wt{constructor(t,i){super(i);l(this,"ad_");l(this,"adProgressData_");this.ad_=t,this.adProgressData_=null}setProgressData(t){this.adProgressData_=t}isClientRendering(){return!1}hasCustomClick(){return!0}getDuration(){return this.adProgressData_?this.adProgressData_.duration:-1}getRemainingTime(){return this.adProgressData_?this.adProgressData_.duration-this.adProgressData_.currentTime:-1}isSkippable(){return this.ad_.isSkippable()}getTimeUntilSkippable(){let t=this.ad_.getSkipTimeOffset(),i=this.getRemainingTime()-t;return Math.max(i,0)}canSkipNow(){return this.getTimeUntilSkippable()==0}skip(){this.video.currentTime+=this.getRemainingTime()}getSequenceLength(){let t=this.ad_.getAdPodInfo();return t==null?1:t.getTotalAds()}getPositionInSequence(){let t=this.ad_.getAdPodInfo();return t==null?1:t.getAdPosition()}getTitle(){return this.ad_.getTitle()}getDescription(){return this.ad_.getDescription()}getVastMediaHeight(){return this.ad_.getVastMediaHeight()}getVastMediaWidth(){return this.ad_.getVastMediaWidth()}getAdId(){return this.ad_.getAdId()}getCreativeAdId(){return this.ad_.getCreativeAdId()}getAdvertiserName(){return this.ad_.getAdvertiserName()}getTimeOffset(){let t=this.ad_.getAdPodInfo();return t==null?0:t.getTimeOffset()}getPodIndex(){let t=this.ad_.getAdPodInfo();return t==null?0:t.getPodIndex()}release(){this.ad_=null,this.adProgressData_=null}};/*! @license
543
+ * Shaka Player
544
+ * Copyright 2016 Google LLC
545
+ * SPDX-License-Identifier: Apache-2.0
546
+ */var wn=class{constructor(e,t,i,r){l(this,"adContainer_");l(this,"video_");l(this,"config_");l(this,"streamPromise_");l(this,"streamRequestStartTime_");l(this,"onEvent_");l(this,"isLiveContent_");l(this,"snapForwardTime_");l(this,"ad_");l(this,"adProgressData_");l(this,"backupUrl_");l(this,"currentCuePoints_");l(this,"eventManager_");l(this,"streamManager_");this.adContainer_=e,this.video_=t,this.config_=null,this.streamPromise_=null,this.streamRequestStartTime_=NaN,this.onEvent_=r,this.isLiveContent_=!1,this.snapForwardTime_=null,this.ad_=null,this.adProgressData_=null,this.backupUrl_="",this.currentCuePoints_=[],this.eventManager_=new ue;let s=new google.ima.dai.api.UiSettings;s.setLocale(i),this.streamManager_=new google.ima.dai.api.StreamManager(this.video_,this.adContainer_,s),this.onEvent_(new U(G.IMA_STREAM_MANAGER_LOADED,new Map().set("imaStreamManager",this.streamManager_))),this.eventManager_.listen(this.streamManager_,google.ima.dai.api.StreamEvent.Type.LOADED,n=>{p.info("Ad SS Loaded"),this.onLoaded_(n)}),this.eventManager_.listen(this.streamManager_,google.ima.dai.api.StreamEvent.Type.ERROR,()=>{p.info("Ad SS Error"),this.onError_()}),this.eventManager_.listen(this.streamManager_,google.ima.dai.api.StreamEvent.Type.AD_BREAK_STARTED,()=>{p.info("Ad Break Started")}),this.eventManager_.listen(this.streamManager_,google.ima.dai.api.StreamEvent.Type.STARTED,n=>{p.info("Ad Started"),this.onAdStart_(n)}),this.eventManager_.listen(this.streamManager_,google.ima.dai.api.StreamEvent.Type.AD_BREAK_ENDED,()=>{p.info("Ad Break Ended"),this.onAdBreakEnded_()}),this.eventManager_.listen(this.streamManager_,google.ima.dai.api.StreamEvent.Type.AD_PROGRESS,n=>{this.onAdProgress_(n)}),this.eventManager_.listen(this.streamManager_,google.ima.dai.api.StreamEvent.Type.FIRST_QUARTILE,()=>{p.info("Ad event: First Quartile"),this.onEvent_(new U(G.AD_FIRST_QUARTILE))}),this.eventManager_.listen(this.streamManager_,google.ima.dai.api.StreamEvent.Type.MIDPOINT,()=>{p.info("Ad event: Midpoint"),this.onEvent_(new U(G.AD_MIDPOINT))}),this.eventManager_.listen(this.streamManager_,google.ima.dai.api.StreamEvent.Type.THIRD_QUARTILE,()=>{p.info("Ad event: Third Quartile"),this.onEvent_(new U(G.AD_THIRD_QUARTILE))}),this.eventManager_.listen(this.streamManager_,google.ima.dai.api.StreamEvent.Type.COMPLETE,()=>{p.info("Ad event: Complete"),this.onEvent_(new U(G.AD_COMPLETE)),this.onEvent_(new U(G.AD_STOPPED)),this.adContainer_.removeAttribute("ad-active"),this.ad_=null}),this.eventManager_.listen(this.streamManager_,google.ima.dai.api.StreamEvent.Type.SKIPPED,()=>{p.info("Ad event: Skipped"),this.onEvent_(new U(G.AD_SKIPPED)),this.onEvent_(new U(G.AD_STOPPED))}),this.eventManager_.listen(this.streamManager_,google.ima.dai.api.StreamEvent.Type.CUEPOINTS_CHANGED,n=>{p.info("Ad event: Cue points changed"),this.onCuePointsChanged_(n)})}configure(e){this.config_=e}streamRequest(e,t){return this.streamPromise_?Promise.reject(new h(h.Severity.RECOVERABLE,h.Category.ADS,h.Code.CURRENT_DAI_REQUEST_NOT_FINISHED)):(e instanceof google.ima.dai.api.LiveStreamRequest&&(this.isLiveContent_=!0),this.streamPromise_=Promise.withResolvers(),this.streamManager_.requestStream(e),this.backupUrl_=t||"",this.streamRequestStartTime_=Date.now()/1e3,this.streamPromise_.promise)}replaceAdTagParameters(e){this.streamManager_.replaceAdTagParameters(e)}stop(){this.streamManager_.reset(),this.backupUrl_="",this.snapForwardTime_=null,this.currentCuePoints_=[]}release(){this.stop(),this.eventManager_&&this.eventManager_.release()}onTimedMetadata(e,t,i){this.streamManager_.processMetadata(e,t,i)}onCueMetadataChange(e){if(e.key&&e.data){let t={};t[e.key]=e.data,this.streamManager_.onTimedMetadata(t)}}getCuePoints(){return this.currentCuePoints_}checkForSnapback_(){let e=this.video_.currentTime;if(this.config_&&this.config_.disableSnapback||e==0)return;this.streamManager_.streamTimeForContentTime(e);let t=this.streamManager_.previousCuePointForStreamTime(e);t&&!t.played&&(p.info("Seeking back to the start of the ad break at "+t.start+" and will return to "+e),this.snapForwardTime_=e,this.video_.currentTime=t.start)}onAdStart_(e){v.assert(this.streamManager_,"Should have a stream manager at this point!");let t=e.getAd();this.ad_=new xn(t,this.video_),this.adProgressData_&&this.ad_.setProgressData(this.adProgressData_),this.onEvent_(new U(G.AD_STARTED,new Map().set("ad",this.ad_))),this.adContainer_.setAttribute("ad-active","true")}onAdBreakEnded_(){this.adContainer_.removeAttribute("ad-active");let e=this.video_.currentTime;this.snapForwardTime_&&this.snapForwardTime_>e&&(this.video_.currentTime=this.snapForwardTime_,this.snapForwardTime_=null)}onLoaded_(e){let i=Date.now()/1e3-this.streamRequestStartTime_;this.onEvent_(new U(G.ADS_LOADED,new Map().set("loadTime",i)));let s=e.getStreamData().url;this.streamPromise_.resolve(s),this.streamPromise_=null,this.isLiveContent_||this.eventManager_.listen(this.video_,"seeked",()=>{this.checkForSnapback_()})}onError_(){if(!this.backupUrl_.length){this.streamPromise_.reject("IMA Stream request returned an error and there was no backup asset uri provided."),this.streamPromise_=null;return}p.warning("IMA stream request returned an error. Falling back to the backup asset uri."),this.streamPromise_.resolve(this.backupUrl_),this.streamPromise_=null}onAdProgress_(e){let i=e.getStreamData().adProgressData;this.adProgressData_=i,this.ad_&&this.ad_.setProgressData(this.adProgressData_)}onCuePointsChanged_(e){let t=e.getStreamData(),i=[];for(let r of t.cuepoints){let s={start:r.start,end:r.end};i.push(s)}this.currentCuePoints_=i,this.onEvent_(new U(G.CUEPOINTS_CHANGED,new Map().set("cuepoints",i)))}};/*! @license
547
+ * Shaka Player
548
+ * Copyright 2016 Google LLC
549
+ * SPDX-License-Identifier: Apache-2.0
550
+ */var Mn=class extends Wt{constructor(t,i){super(t);l(this,"info_");this.info_=i}isClientRendering(){return!1}getDuration(){return this.info_.endTime?this.info_.endTime-this.info_.startTime:-1}getRemainingTime(){return this.info_.endTime?this.info_.endTime-this.video.currentTime:-1}getSequenceLength(){return this.info_.sequenceLength}getPositionInSequence(){return this.info_.position}getTimeOffset(){return this.info_.startTime}};/*! @license
551
+ * Shaka Player
552
+ * Copyright 2016 Google LLC
553
+ * SPDX-License-Identifier: Apache-2.0
554
+ */var Or=class y{constructor(e,t){l(this,"config_");l(this,"player_");l(this,"onEvent_");l(this,"video_");l(this,"playbackStarted_");l(this,"trackings_");l(this,"currentTracking_");l(this,"eventManager_");l(this,"playbackEventManager_");l(this,"trackingEventManager_");l(this,"pollTimer_");this.config_=null,this.player_=e,this.onEvent_=t,this.video_=null,this.playbackStarted_=!1,this.trackings_=new Map,this.currentTracking_=null,this.eventManager_=new ue,this.playbackEventManager_=new ue,this.trackingEventManager_=new ue,this.eventManager_.listen(this.player_,"loading",()=>{this.playbackStart_()}),this.eventManager_.listen(this.player_,"unloading",()=>{this.playbackEnd_()}),this.pollTimer_=new ae(()=>{if(this.trackings_.size){let i=this.player_.getLoadMode();if(i==dt.LoadMode.DESTROYED||i==dt.LoadMode.NOT_LOADED)return;let r=!1,s=Array.from(this.trackings_.values()),n=this.player_.seekRange();for(let a of s){if(a==this.currentTracking_)continue;let o=a.endTime||a.startTime;if(n.start-o>=1){let c=JSON.stringify(a);this.trackings_.delete(c),r=!0}}r&&this.cuepointsChanged_()}}),this.player_.getAssetUri()&&this.playbackStart_()}configure(e){this.config_=e}stop(){this.playbackEnd_()}release(){this.stop(),this.player_=null,this.eventManager_&&this.eventManager_.release(),this.playbackEventManager_&&this.playbackEventManager_.release(),this.trackingEventManager_&&this.trackingEventManager_.release(),this.pollTimer_&&(this.pollTimer_.stop(),this.pollTimer_=null)}addMetadata(e){if(!this.playbackStarted_||!y.validSchemes_.has(e.type))return;let t=e.values.find(n=>n.key=="X-AD-CREATIVE-SIGNALING");if(!t)return;let i=t.data,r;try{r=JSON.parse(window.atob(i))}catch(n){return}if(!r.payload)return;let s=[];for(let n=0;n<r.payload.length;n++){let a=r.payload[n];v.assert(typeof e.startTime=="number","startTime must not be null!");let o=e.startTime+a.start||0,c=a.duration?e.startTime+a.duration:e.endTime;if(a&&a.tracking){let d={startTime:o,endTime:c,tracking:G.createTrackingFromEvents(a.tracking),position:n+1,sequenceLength:r.payload.length};s.push(d)}}this.addTracking_(s)}addRegion(e){if(!this.playbackStarted_||!y.validSchemes_.has(e.schemeIdUri)||!e.eventNode)return;let t=I.getTextContents(e.eventNode);if(!t)return;let i;try{i=JSON.parse(t)}catch(s){return}if(!i.payload)return;let r=[];for(let s=0;s<i.payload.length;s++){let n=i.payload[s],a=e.startTime+n.start||0,o=n.duration?e.startTime+n.duration:e.endTime;if(n&&n.tracking){let c={startTime:a,endTime:o,tracking:G.createTrackingFromEvents(n.tracking),position:s+1,sequenceLength:i.payload.length};r.push(c)}}this.addTracking_(r)}addTracking_(e){if(!this.playbackStarted_||!e.length)return;if(!this.player_.isFullyLoaded()){this.playbackEventManager_.listenOnce(this.player_,"loaded",()=>{this.addTracking_(e)});return}let t=!1;for(let i of e){let r=JSON.stringify(i);this.trackings_.getOrInsert(r,i)===i&&(t=!0)}t&&this.cuepointsChanged_(),this.setupCurrentTracking_(),this.playbackEventManager_.listen(this.video_,"timeupdate",()=>this.setupCurrentTracking_()),this.pollTimer_&&this.player_.isLive()&&this.pollTimer_.tickEvery(1)}playbackStart_(){this.playbackStarted_||(this.playbackStarted_=!0,this.video_=this.player_.getMediaElement())}playbackEnd_(){this.playbackStarted_&&(this.playbackStarted_=!1,this.video_=null,this.playbackEventManager_.removeAll(),this.trackings_.clear(),this.unSetupCurrentTracking_(),this.trackingEventManager_.removeAll(),this.pollTimer_&&this.pollTimer_.stop())}setupCurrentTracking_(){if(!this.trackings_.size||this.currentTracking_||!this.video_.duration)return;let e=this.video_.currentTime;for(let i of this.trackings_.values())if(i.startTime<=e&&i.endTime&&e<=i.endTime&&!this.player_.isEnded()){this.currentTracking_=i;break}if(!this.currentTracking_)return;p.info("Found tracking",this.currentTracking_);let t=!1;if(!this.player_.isLive()){let i=this.player_.seekRange();t=i.start===this.currentTracking_.startTime&&i.end===this.currentTracking_.endTime}this.createBaseSetupTracking_(),t?this.createSingleSetupTracking_():this.createSlidingSetupTracking_()}unSetupCurrentTracking_(e=!1){this.currentTracking_&&(e||(this.sendEvent_(G.AD_SKIPPED),this.sendEvent_(G.AD_STOPPED)),this.trackingEventManager_.removeAll(),this.currentTracking_=null)}createBaseSetupTracking_(){v.assert(this.currentTracking_,"AdTrackingInfo must not be null!");let e=new Mn(this.video_,this.currentTracking_);this.sendEvent_(G.AD_IMPRESSION),this.sendEvent_(G.AD_STARTED,new Map().set("ad",e)),this.trackingEventManager_.listen(this.player_,"error",t=>{this.sendEvent_(G.AD_ERROR,new Map().set("originalEvent",t))}),this.trackingEventManager_.listen(this.video_,"play",()=>{this.sendEvent_(G.AD_RESUMED)}),this.trackingEventManager_.listen(this.video_,"pause",()=>{this.sendEvent_(G.AD_PAUSED)}),this.trackingEventManager_.listen(this.video_,"volumechange",()=>{this.video_.muted?this.sendEvent_(G.AD_MUTED):this.sendEvent_(G.AD_VOLUME_CHANGED)})}createSingleSetupTracking_(){this.trackingEventManager_.listenOnce(this.player_,"firstquartile",()=>{this.sendEvent_(G.AD_FIRST_QUARTILE)}),this.trackingEventManager_.listenOnce(this.player_,"midpoint",()=>{this.sendEvent_(G.AD_MIDPOINT)}),this.trackingEventManager_.listenOnce(this.player_,"thirdquartile",()=>{this.sendEvent_(G.AD_THIRD_QUARTILE)}),this.trackingEventManager_.listenOnce(this.player_,"complete",()=>{this.sendEvent_(G.AD_STOPPED),this.sendEvent_(G.AD_COMPLETE),this.unSetupCurrentTracking_(!0)})}createSlidingSetupTracking_(){let e=this.currentTracking_.endTime;if(!this.player_.isLive()||!e){let s=this.player_.seekRange();e=Math.min(s.end,this.currentTracking_.endTime||1/0)}let t=e-this.currentTracking_.startTime,i=-1,r=(s,n)=>(jt.isFloatEqual(s,n)||n>s)&&i<s?(i=s,!0):!1;this.trackingEventManager_.listen(this.video_,"timeupdate",()=>{let n=(this.video_.currentTime-this.currentTracking_.startTime)/t;if(isNaN(n))return;let a=n*100;r(25,a)?this.sendEvent_(G.AD_FIRST_QUARTILE):r(50,a)?this.sendEvent_(G.AD_MIDPOINT):r(75,a)?this.sendEvent_(G.AD_THIRD_QUARTILE):(r(100,a)||a>100)&&(this.sendEvent_(G.AD_STOPPED),this.sendEvent_(G.AD_COMPLETE),this.unSetupCurrentTracking_(!0))})}sendEvent_(e,t){p.info("SVTA event",e),this.onEvent_(new U(e,t)),this.processTrackingEvent_(e)}processTrackingEvent_(e){if(this.config_.disableTrackingEvents)return;let t=this.currentTracking_&&this.currentTracking_.tracking;G.fireTrackingEvents(t,e,this.player_.getNetworkingEngine())}cuepointsChanged_(){let e=[];if(this.trackings_.size)for(let t of this.trackings_.values()){let i={start:t.startTime,end:t.endTime};!e.find(s=>i.start==s.start&&i.end==s.end)&&e.push(i)}this.sendEvent_(G.CUEPOINTS_CHANGED,new Map().set("cuepoints",e))}static isValidRegion(e){return!(!y.validSchemes_.has(e.schemeIdUri)||!e.eventNode)}static isValidMetadata(e){return!!y.validSchemes_.has(e.type)}};Or.validSchemes_=new Set().add("urn:svta:advertising-wg:ad-id-signaling").add("urn:svta:advertising-wg:ad-creative-signaling");/*! @license
555
+ * Shaka Player
556
+ * Copyright 2016 Google LLC
557
+ * SPDX-License-Identifier: Apache-2.0
558
+ */var Rn=class extends Le{constructor(t){super();l(this,"player_");l(this,"interstitialAdManager_");l(this,"csAdManager_");l(this,"mtAdManager_");l(this,"ssAdManager_");l(this,"svtaAdManager_");l(this,"stats_");l(this,"locale_");l(this,"config_");l(this,"currentAd_");l(this,"clientSideAdContainer_");l(this,"serverSideAdContainer_");this.player_=t,this.interstitialAdManager_=null,this.csAdManager_=null,this.mtAdManager_=null,this.ssAdManager_=null,this.svtaAdManager_=null,this.stats_=new Ls,this.locale_=navigator.language,this.config_=null,this.currentAd_=null,this.clientSideAdContainer_=null,this.serverSideAdContainer_=null}setLocale(t){this.locale_=t}setContainers(t,i){this.clientSideAdContainer_=t,this.serverSideAdContainer_=i}configure(t){this.config_=t,this.interstitialAdManager_&&this.interstitialAdManager_.configure(this.config_),this.csAdManager_&&this.csAdManager_.configure(this.config_),this.ssAdManager_&&this.ssAdManager_.configure(this.config_),this.svtaAdManager_&&this.svtaAdManager_.configure(this.config_),this.mtAdManager_&&this.mtAdManager_.configure(this.config_)}release(){this.csAdManager_&&(this.csAdManager_.release(),this.csAdManager_=null),this.ssAdManager_&&(this.ssAdManager_.release(),this.ssAdManager_=null),this.mtAdManager_&&(this.mtAdManager_.release(),this.mtAdManager_=null),this.interstitialAdManager_&&(this.interstitialAdManager_.release(),this.interstitialAdManager_=null),this.svtaAdManager_&&(this.svtaAdManager_.release(),this.svtaAdManager_=null),super.release()}onAssetUnload(){this.csAdManager_&&(this.csAdManager_.release(),this.csAdManager_=null),this.ssAdManager_&&this.ssAdManager_.stop(),this.mtAdManager_&&this.mtAdManager_.stop(),this.interstitialAdManager_&&this.interstitialAdManager_.stop(),this.svtaAdManager_&&this.svtaAdManager_.stop(),this.currentAd_&&(this.processAndDispatchEvent_(new U(G.AD_STOPPED)),this.processAndDispatchEvent_(new U(G.AD_CONTENT_ATTACH_REQUESTED))),this.stats_=new Ls}initClientSide_(t){if(!window.google||!google.ima||!google.ima.AdsLoader)throw new h(h.Severity.CRITICAL,h.Category.ADS,h.Code.CS_IMA_SDK_MISSING);if(this.csAdManager_&&this.csAdManager_.release(),!this.clientSideAdContainer_)throw new h(h.Severity.CRITICAL,h.Category.ADS,h.Code.CS_AD_CONTAINER_MISSING);let i=this.player_.getMediaElement();v.assert(i,"Video must not be null!"),this.csAdManager_=new Sn(this.clientSideAdContainer_,i,this.locale_,t,r=>this.processAndDispatchEvent_(r)),v.assert(this.config_,"Config must not be null!"),this.csAdManager_.configure(this.config_)}requestClientSideAds(t,i){this.csAdManager_||this.initClientSide_(i),this.csAdManager_.requestAds(t)}updateClientSideAdsRenderingSettings(t){this.csAdManager_||this.initClientSide_(t),this.csAdManager_.updateAdsRenderingSettings(t)}initServerSide_(){if(!window.google||!google.ima||!google.ima.dai)throw new h(h.Severity.CRITICAL,h.Category.ADS,h.Code.SS_IMA_SDK_MISSING);if(this.ssAdManager_&&this.ssAdManager_.release(),!this.serverSideAdContainer_)throw new h(h.Severity.CRITICAL,h.Category.ADS,h.Code.SS_AD_CONTAINER_MISSING);let t=this.player_.getMediaElement();v.assert(t,"Video must not be null!"),this.ssAdManager_=new wn(this.serverSideAdContainer_,t,this.locale_,i=>this.processAndDispatchEvent_(i)),v.assert(this.config_,"Config must not be null!"),this.ssAdManager_.configure(this.config_)}requestServerSideStream(t,i=""){this.ssAdManager_||this.initServerSide_(),t.adTagParameters||(t.adTagParameters={});let r=t.adTagParameters;return(r.mpt||r.mpv)&&p.alwaysWarn('You have attempted to set "mpt" and/or "mpv" parameters of the ad tag. Please note that those parameters are used for Shaka adoption tracking and will be overridden.'),t.adTagParameters.mpt="shaka-player",t.adTagParameters.mpv=dt.version,this.ssAdManager_.streamRequest(t,i)}replaceServerSideAdTagParameters(t){this.ssAdManager_||this.initServerSide_(),(t.mpt||t.mpv)&&p.alwaysWarn('You have attempted to set "mpt" and/or "mpv" parameters of the ad tag. Please note that those parameters are used for Shaka adoption tracking and will be overridden.'),t.mpt="Shaka Player",t.mpv=dt.version,this.ssAdManager_.replaceAdTagParameters(t)}initMediaTailor_(){this.mtAdManager_&&this.mtAdManager_.release();let t=this.serverSideAdContainer_;t||p.warning("Init Media Tailor without a container causes overlays to not be displayed.");let i=this.player_.getMediaElement();v.assert(i,"Video must not be null!");let r=this.player_.getNetworkingEngine();v.assert(r,"There should be a net engine."),this.mtAdManager_=new Cn(t,r,i,s=>this.processAndDispatchEvent_(s)),v.assert(this.config_,"Config must not be null!"),this.mtAdManager_.configure(this.config_)}requestMediaTailorStream(t,i,r=""){return this.mtAdManager_||this.initMediaTailor_(),this.mtAdManager_.streamRequest(t,i,r)}addMediaTailorTrackingUrl(t){this.mtAdManager_||this.initMediaTailor_(),this.mtAdManager_.addTrackingUrl(t)}initInterstitial_(){let t=this.clientSideAdContainer_;t||p.info("Initializing interstitials without ad container"),this.interstitialAdManager_&&this.interstitialAdManager_.release(),this.interstitialAdManager_=new An(t,this.player_,i=>this.processAndDispatchEvent_(i)),v.assert(this.config_,"Config must not be null!"),this.interstitialAdManager_.configure(this.config_)}addCustomInterstitial(t){this.interstitialAdManager_||this.initInterstitial_(),this.interstitialAdManager_.addInterstitials([t])}addAdUrlInterstitial(t){return this.interstitialAdManager_||this.initInterstitial_(),this.interstitialAdManager_.addAdUrlInterstitial(t)}getInterstitialPlayer(){return this.interstitialAdManager_||this.initInterstitial_(),this.interstitialAdManager_.getPlayer()}initSVTA_(){this.svtaAdManager_&&this.svtaAdManager_.release(),this.svtaAdManager_=new Or(this.player_,t=>this.processAndDispatchEvent_(t)),v.assert(this.config_,"Config must not be null!"),this.svtaAdManager_.configure(this.config_)}getCuePoints(){let t=[];return this.ssAdManager_&&(t=t.concat(this.ssAdManager_.getCuePoints())),this.mtAdManager_&&(t=t.concat(this.mtAdManager_.getCuePoints())),t}getStats(){return this.stats_.getBlob()}onManifestUpdated(t){this.mtAdManager_&&this.mtAdManager_.onManifestUpdated(t)}onHlsTimedMetadata(t,i){this.ssAdManager_&&this.ssAdManager_.onTimedMetadata("ID3",t.data,i)}onCueMetadataChange(t){this.ssAdManager_&&this.ssAdManager_.onCueMetadataChange(t)}async onHLSMetadata(t){if(t.type=="com.apple.quicktime.HLS"){if(this.config_&&this.config_.disableHLSInterstitial)return;this.interstitialAdManager_||this.initInterstitial_(),this.interstitialAdManager_&&await this.interstitialAdManager_.addMetadata(t)}else if(t.type=="com.apple.hls.preload"){if(this.config_&&this.config_.disableHLSInterstitial)return;this.interstitialAdManager_||this.initInterstitial_(),this.interstitialAdManager_&&this.interstitialAdManager_.addPreloadMetadata(t)}else Or.isValidMetadata(t)&&(this.svtaAdManager_||this.initSVTA_(),this.svtaAdManager_.addMetadata(t))}onDASHMetadata(t){if(t.schemeIdUri=="urn:google:dai:2018"){if(this.ssAdManager_){let r=t.schemeIdUri,s=t.eventNode?t.eventNode.attributes.messageData:null,n=t.startTime;this.ssAdManager_.onTimedMetadata(r,s,n)}}else if(Ns.isInterstitialRegion(t)){if(this.config_&&this.config_.disableDASHInterstitial)return;if(this.interstitialAdManager_||this.initInterstitial_(),this.interstitialAdManager_){let r=Ns.parseRegion(t);r&&this.interstitialAdManager_.addInterstitials([r])}}else Or.isValidRegion(t)&&(this.svtaAdManager_||this.initSVTA_(),this.svtaAdManager_.addRegion(t))}getCurrentAd(){return this.currentAd_}processAndDispatchEvent_(t){if(t&&t.type)switch(t.type){case G.ADS_LOADED:{let i=t.loadTime;this.stats_.addLoadTime(i);break}case G.AD_STARTED:{this.stats_.incrementStarted(),this.currentAd_=t.ad,this.currentAd_&&!this.currentAd_.isLinear()&&this.stats_.incrementOverlayAds();break}case G.AD_STOPPED:this.currentAd_=null;break;case G.AD_COMPLETE:this.stats_.incrementPlayedCompletely();break;case G.AD_SKIPPED:this.stats_.incrementSkipped();break;case G.AD_ERROR:this.stats_.incrementErrors();break}this.dispatchEvent(t)}};dt.setAdManagerFactory(y=>new Rn(y));/*! @license
559
+ * Shaka Player
560
+ * Copyright 2016 Google LLC
561
+ * SPDX-License-Identifier: Apache-2.0
562
+ */var gt=class gt{static serialize(e){return JSON.stringify(e,(t,i)=>{if(typeof i=="function")return;let r=i instanceof U;if(i instanceof Event||r){let s={};for(let n in i){let a=i[n];a&&typeof a=="object"?n=="detail"?s[n]=a:a instanceof Event||a instanceof U?s[n]=gt.unpackEvent_(a):r&&Array.isArray(a)&&(s[n]=a):n in Event||(s[n]=a)}return s}return i instanceof Error?gt.unpackError_(i):i instanceof TimeRanges?gt.unpackTimeRanges_(i):ArrayBuffer.isView(i)&&i.BYTES_PER_ELEMENT===1?gt.unpackUint8Array_(i):typeof i=="number"?isNaN(i)?"NaN":isFinite(i)?i:i<0?"-Infinity":"Infinity":i})}static deserialize(e){return JSON.parse(e,(t,i)=>i=="NaN"?NaN:i=="-Infinity"?-1/0:i=="Infinity"?1/0:i&&typeof i=="object"&&i.__type__=="TimeRanges"?gt.simulateTimeRanges_(i):i&&typeof i=="object"&&i.__type__=="Uint8Array"?gt.makeUint8Array_(i):i&&typeof i=="object"&&i.__type__=="Error"?gt.makeError_(i):i&&typeof i=="object"&&i.__type__=="Event"?gt.makeEvent_(i):i)}static unpackTimeRanges_(e){let t={__type__:"TimeRanges",length:e.length,start:[],end:[]};for(let{start:i,end:r}of Je.getBufferedInfo(e))t.start.push(i),t.end.push(r);return t}static simulateTimeRanges_(e){return{length:e.length,start:t=>e.start[t],end:t=>e.end[t]}}static unpackUint8Array_(e){return{__type__:"Uint8Array",entries:Array.from(e)}}static makeUint8Array_(e){return new Uint8Array(e.entries)}static unpackEvent_(e){return{__type__:"Event",event:gt.serialize(e)}}static makeEvent_(e){return gt.deserialize(e.event)}static unpackError_(e){let t=new Set(["name","message","stack"]);for(let r in e)t.add(r);for(let r of Object.getOwnPropertyNames(e))t.add(r);let i={};for(let r of t)i[r]=e[r];return{__type__:"Error",contents:i}}static makeError_(e){let t=e.contents,i=new Error(t.message);for(let r in t)i[r]=t[r];return i}};l(gt,"VideoEvents",["ended","play","playing","pause","pausing","ratechange","seeked","seeking","timeupdate","volumechange"]),l(gt,"VideoAttributes",["buffered","currentTime","duration","ended","loop","muted","paused","playbackRate","seeking","videoHeight","videoWidth","volume"]),l(gt,"VideoInitStateAttributes",["loop","playbackRate"]),l(gt,"VideoVoidMethods",["pause","play"]),l(gt,"PlayerInitState",[["getNonDefaultConfiguration","configure","getConfigurationForLowLatency","configurationForLowLatency"]]),l(gt,"PlayerVoidMethods",["cancelTrickPlay","configure","configurationForLowLatency","resetConfiguration","retryStreaming","selectAudioTrack","selectTextTrack","selectVariantTrack","selectVideoTrack","trickPlay","updateStartTime","goToLive","useTrickPlayTrackIfAvailable","setMaxHardwareResolution","renewLicense","retryLicensing"]),l(gt,"PlayerPromiseMethods",["addChaptersTrack","addTextTrackAsync","addThumbnailsTrack","getAllThumbnails","getChaptersAsync","getThumbnails","attach","attachCanvas","detach","load","unload"]),l(gt,"AdManagerVoidMethods",["setLocale","configure","requestClientSideAds","updateClientSideAdsRenderingSettings","addMediaTailorTrackingUrl","replaceServerSideAdTagParameters","addCustomInterstitial"]),l(gt,"AdManagerPromiseMethods",["requestMediaTailorStream","requestServerSideStream","addAdUrlInterstitial"]),l(gt,"CurrentAdVoidMethods",["skip","play","pause","setVolume","setMuted","resize"]),l(gt,"SHAKA_MESSAGE_NAMESPACE","urn:x-cast:com.google.shaka.v2"),l(gt,"GENERIC_MESSAGE_NAMESPACE","urn:x-cast:com.google.cast.media");var we=gt;we.PlayerGetterMethods=new Map().set("getAssetUri",2).set("getMimeType",2).set("getBufferFullness",1).set("getBufferedInfo",2).set("getExpiration",2).set("getKeyStatuses",2).set("getPlaybackRate",2).set("isAudioOnly",10).set("isBuffering",1).set("isInProgress",1).set("isLive",10).set("isDynamic",10).set("isVideoOnly",10).set("keySystem",10).set("seekRange",1).set("getLoadMode",10).set("getManifestType",10).set("isFullyLoaded",1).set("isEnded",1).set("getBandwidthEstimate",1).set("isRemotePlayback",1);we.LargePlayerGetterMethods=new Map().set("getConfiguration",4).set("getNonDefaultConfiguration",4).set("getConfigurationForLowLatency",4).set("getStats",5).set("getAudioTracks",2).set("getChaptersTracks",2).set("getImageTracks",2).set("getVideoTracks",2).set("getTextTracks",2).set("getVariantTracks",2).set("getFetchedPlaybackInfo",2).set("getAllMetadataRegions",1).set("getAllEmsgRegions",1).set("getAllTimelineRegions",1);we.PlayerGetterMethodsThatRequireLive=new Map().set("getPlayheadTimeAsDate",1).set("getPresentationStartTimeAsDate",20).set("getSegmentAvailabilityDuration",20).set("getLiveLatency",1);we.LargeAdManagerGetterMethods=new Map().set("getCuePoints",4).set("getStats",5);we.CurrentAdGetterMethods=new Map().set("needsSkipUI",20).set("isClientRendering",20).set("hasCustomClick",20).set("isUsingAnotherMediaElement",20).set("getDuration",1).set("getMinSuggestedDuration",1).set("getRemainingTime",1).set("getTimeUntilSkippable",1).set("isPaused",1).set("isSkippable",1).set("canSkipNow",1).set("getVolume",1).set("isMuted",1).set("isLinear",20).set("getSequenceLength",20).set("getPositionInSequence",20).set("getTitle",20).set("getDescription",20).set("getVastMediaBitrate",20).set("getVastMediaHeight",20).set("getVastMediaWidth",20).set("getVastAdId",20).set("getAdId",20).set("getCreativeAdId",20).set("getAdvertiserName",20).set("getMediaUrl",20).set("getTimeOffset",20).set("getPodIndex",20);/*! @license
563
+ * Shaka Player
564
+ * Copyright 2016 Google LLC
565
+ * SPDX-License-Identifier: Apache-2.0
566
+ */var De=class De{constructor(e,t,i,r,s,n,a){l(this,"receiverAppId_");l(this,"androidReceiverCompatible_");l(this,"statusChangeTimer_");l(this,"onFirstCastStateUpdate_");l(this,"hasJoinedExistingSession_");l(this,"onRemoteEvent_");l(this,"onResumeLocal_");l(this,"onInitStateRequired_");l(this,"apiReady_");l(this,"isCasting_");l(this,"receiverName_");l(this,"appData_");l(this,"onConnectionStatusChangedBound_");l(this,"onMessageReceivedBound_");l(this,"cachedProperties_");l(this,"nextAsyncCallId_");l(this,"asyncCallPromises_");l(this,"castPromise_");this.receiverAppId_=e,this.androidReceiverCompatible_=a,this.statusChangeTimer_=new ae(t),this.onFirstCastStateUpdate_=i,this.hasJoinedExistingSession_=!1,this.onRemoteEvent_=r,this.onResumeLocal_=s,this.onInitStateRequired_=n,this.apiReady_=!1,this.isCasting_=!1,this.receiverName_="",this.appData_=null,this.onConnectionStatusChangedBound_=()=>this.onConnectionStatusChanged_(),this.onMessageReceivedBound_=(o,c)=>this.onMessageReceived_(o,c),this.cachedProperties_={video:{},player:{},adManager:{},currentAd:{}},this.nextAsyncCallId_=0,this.asyncCallPromises_=new Map,this.castPromise_=null,De.instances_.add(this)}destroy(){return De.instances_.delete(this),this.rejectAllPromises_(),De.session_&&this.removeListeners_(),this.statusChangeTimer_&&(this.statusChangeTimer_.stop(),this.statusChangeTimer_=null),this.onRemoteEvent_=null,this.onResumeLocal_=null,this.apiReady_=!1,this.isCasting_=!1,this.appData_=null,this.cachedProperties_=null,this.asyncCallPromises_=null,this.castPromise_=null,this.onConnectionStatusChangedBound_=null,this.onMessageReceivedBound_=null,Promise.resolve()}apiReady(){return this.apiReady_}hasReceivers(){return De.hasReceivers_}isCasting(){return this.isCasting_}receiverName(){return this.receiverName_}hasRemoteProperties(){return Object.keys(this.cachedProperties_.video).length!=0}init(){if(!this.receiverAppId_.length)return;if(!window.chrome||!chrome.cast||!chrome.cast.isAvailable){window.__onGCastApiAvailable!==De.onGCastApiAvailable_&&(De.__onGCastApiAvailable_=window.__onGCastApiAvailable||null,window.__onGCastApiAvailable=De.onGCastApiAvailable_);return}this.apiReady_=!0,this.statusChangeTimer_.tickNow();let e=new chrome.cast.SessionRequest(this.receiverAppId_,[],null,this.androidReceiverCompatible_,null),t=new chrome.cast.ApiConfig(e,r=>De.onExistingSessionJoined_(r),r=>De.onReceiverStatusChanged_(r),"origin_scoped");chrome.cast.initialize(t,()=>{p.debug("CastSender: init")},r=>{p.error("CastSender: init error",r)}),De.hasReceivers_&&this.statusChangeTimer_.tickAfter(De.STATUS_DELAY);let i=De.session_;i&&i.status!=chrome.cast.SessionStatus.STOPPED?(p.debug("CastSender: re-using existing connection"),this.onExistingSessionJoined_(i)):De.session_=null}setAppData(e){this.appData_=e,this.isCasting_&&this.sendMessage_({type:"appData",appData:this.appData_})}async cast(){if(!this.apiReady_)throw new h(h.Severity.RECOVERABLE,h.Category.CAST,h.Code.CAST_API_UNAVAILABLE);if(!De.hasReceivers_)throw new h(h.Severity.RECOVERABLE,h.Category.CAST,h.Code.NO_CAST_RECEIVERS);if(this.isCasting_)throw new h(h.Severity.RECOVERABLE,h.Category.CAST,h.Code.ALREADY_CASTING);this.castPromise_=Promise.withResolvers(),chrome.cast.requestSession(e=>this.onSessionInitiated_(e),e=>this.onConnectionError_(e)),await this.castPromise_.promise}showDisconnectDialog(){this.isCasting_&&chrome.cast.requestSession(e=>this.onSessionInitiated_(e),e=>this.onConnectionError_(e))}forceDisconnect(){if(this.isCasting_){if(this.rejectAllPromises_(),De.session_){this.removeListeners_();try{De.session_.stop(()=>{},()=>{})}catch(e){}De.session_=null}this.onConnectionStatusChanged_()}}get(e,t){v.assert(e=="video"||e=="player"||e=="adManager"||e=="currentAd","Unexpected target name");let r={video:{voidMethods:we.VideoVoidMethods},player:{voidMethods:we.PlayerVoidMethods,promiseMethods:we.PlayerPromiseMethods,getterMethods:[we.PlayerGetterMethods,we.LargePlayerGetterMethods],requiresLiveMap:we.PlayerGetterMethodsThatRequireLive},adManager:{voidMethods:we.AdManagerVoidMethods,promiseMethods:we.AdManagerPromiseMethods,getterMethods:[we.LargeAdManagerGetterMethods]},currentAd:{voidMethods:we.CurrentAdVoidMethods,getterMethods:[we.CurrentAdGetterMethods]}}[e];if(r.requiresLiveMap&&r.requiresLiveMap.has(t)){let s=this.get("player","isLive")();if(v.assert(s,t+" should be called on a live stream!"),!s)return()=>{}}return r.voidMethods&&r.voidMethods.includes(t)?(...s)=>this.remoteCall_(e,t,...s):r.promiseMethods&&r.promiseMethods.includes(t)?(...s)=>this.remoteAsyncCall_(e,t,...s):r.getterMethods&&r.getterMethods.some(s=>s.has(t))?()=>this.propertyGetter_(e,t):this.propertyGetter_(e,t)}set(e,t,i){v.assert(e=="video"||e=="player"||e=="adManager"||e=="currentAd","Unexpected target name"),this.cachedProperties_[e][t]=i,this.sendMessage_({type:"set",targetName:e,property:t,value:i})}onSessionInitiated_(e){p.debug("CastSender: onSessionInitiated");let t=this.onInitStateRequired_();this.onSessionCreated_(e),this.sendMessage_({type:"init",initState:t,appData:this.appData_}),this.castPromise_.resolve()}onConnectionError_(e){let t=h.Code.UNEXPECTED_CAST_ERROR;switch(e.code){case"cancel":t=h.Code.CAST_CANCELED_BY_USER;break;case"timeout":t=h.Code.CAST_CONNECTION_TIMED_OUT;break;case"receiver_unavailable":t=h.Code.CAST_RECEIVER_APP_UNAVAILABLE;break}this.castPromise_.reject(new h(h.Severity.CRITICAL,h.Category.CAST,t,e))}propertyGetter_(e,t){return v.assert(e=="video"||e=="player"||e=="adManager"||e=="currentAd","Unexpected target name"),this.cachedProperties_[e][t]}remoteCall_(e,t,...i){v.assert(e=="video"||e=="player"||e=="adManager"||e=="currentAd","Unexpected target name"),this.sendMessage_({type:"call",targetName:e,methodName:t,args:i})}remoteAsyncCall_(e,t,...i){v.assert(e=="video"||e=="player"||e=="adManager"||e=="currentAd","Unexpected target name");let r=Promise.withResolvers(),s=this.nextAsyncCallId_.toString();this.nextAsyncCallId_++,this.asyncCallPromises_.set(s,r);try{this.sendMessage_({type:"asyncCall",targetName:e,methodName:t,args:i,id:s})}catch(n){r.reject(n)}return r.promise}static onExistingSessionJoined_(e){for(let t of De.instances_)t.onExistingSessionJoined_(e)}onExistingSessionJoined_(e){p.debug("CastSender: onExistingSessionJoined"),this.castPromise_=Promise.withResolvers(),this.hasJoinedExistingSession_=!0,this.onSessionInitiated_(e)}static onReceiverStatusChanged_(e){for(let t of De.instances_)t.onReceiverStatusChanged_(e)}onReceiverStatusChanged_(e){p.debug("CastSender: receiver status",e),De.hasReceivers_=e=="available",this.statusChangeTimer_.tickNow()}onSessionCreated_(e){De.session_=e,e.addUpdateListener(this.onConnectionStatusChangedBound_),e.addMessageListener(we.SHAKA_MESSAGE_NAMESPACE,this.onMessageReceivedBound_),this.onConnectionStatusChanged_()}removeListeners_(){let e=De.session_;e.removeUpdateListener(this.onConnectionStatusChangedBound_),e.removeMessageListener(we.SHAKA_MESSAGE_NAMESPACE,this.onMessageReceivedBound_)}onConnectionStatusChanged_(){let e=De.session_?De.session_.status=="connected":!1;if(p.info("CastSender: connection status",e),this.isCasting_&&!e){this.onResumeLocal_();for(let t in this.cachedProperties_)this.cachedProperties_[t]={};this.rejectAllPromises_()}this.isCasting_=e,this.receiverName_=e?De.session_.receiver.friendlyName:"",this.statusChangeTimer_.tickNow(),this.receiverName_&&p.info("CastSender: connected to",this.receiverName_)}rejectAllPromises_(){if(this.asyncCallPromises_)for(let e of this.asyncCallPromises_.keys()){let t=this.asyncCallPromises_.get(e);this.asyncCallPromises_.delete(e),t.reject(new h(h.Severity.RECOVERABLE,h.Category.PLAYER,h.Code.LOAD_INTERRUPTED))}}onMessageReceived_(e,t){let i=we.deserialize(t);switch(p.v2("CastSender: message",i),i.type){case"event":{let r=i.targetName,s=i.event,n=U.fromRealEvent(s);this.onRemoteEvent_(r,n);break}case"update":{let r=i.update;for(let s in r){let n=this.cachedProperties_[s]||{};for(let a in r[s])n[a]=r[s][a]}this.hasJoinedExistingSession_&&(this.onFirstCastStateUpdate_(),this.hasJoinedExistingSession_=!1);break}case"asyncComplete":{let r=i.id,s=i.error,n=i.res,a=this.asyncCallPromises_.get(r);if(this.asyncCallPromises_.delete(r),v.assert(a,"Unexpected async id"),!a)break;if(s){let o=new h(s.severity,s.category,s.code);for(let c in s)o[c]=s[c];a.reject(o)}else a.resolve(n);break}}}sendMessage_(e){let t=we.serialize(e),i=De.session_;try{i.sendMessage(we.SHAKA_MESSAGE_NAMESPACE,t,()=>{},p.error)}catch(r){p.error("Cast session sendMessage threw",r);let s=new h(h.Severity.CRITICAL,h.Category.CAST,h.Code.CAST_CONNECTION_TIMED_OUT,r),n=new U("error",new Map().set("detail",s));throw this.onRemoteEvent_("player",n),this.forceDisconnect(),s}}};l(De,"STATUS_DELAY",.02),l(De,"hasReceivers_",!1),l(De,"session_",null),l(De,"__onGCastApiAvailable_",null),l(De,"instances_",new Set),l(De,"onSdkLoaded_",e=>{if(e)for(let t of De.instances_)t.init()}),l(De,"onGCastApiAvailable_",e=>{De.__onGCastApiAvailable_?window.__onGCastApiAvailable=De.__onGCastApiAvailable_:delete window.__onGCastApiAvailable,De.__onGCastApiAvailable_=null,De.onSdkLoaded_(e),typeof window.__onGCastApiAvailable=="function"&&window.__onGCastApiAvailable(e)});var Bs=De;/*! @license
567
+ * Shaka Player
568
+ * Copyright 2016 Google LLC
569
+ * SPDX-License-Identifier: Apache-2.0
570
+ */var io=class extends Le{constructor(t,i,r,s=!1){super();l(this,"localVideo_");l(this,"localPlayer_");l(this,"localAdManager_");l(this,"videoProxy_");l(this,"playerProxy_");l(this,"adManagerProxy_");l(this,"currentAdProxy_");l(this,"videoEventTarget_");l(this,"playerEventTarget_");l(this,"adManagerEventTarget_");l(this,"eventManager_");l(this,"receiverAppId_");l(this,"androidReceiverCompatible_");l(this,"trackedCalls_");l(this,"playerCompiledToExternNames_");l(this,"adManagerCompiledToExternNames_");l(this,"sender_");this.localVideo_=t,this.localPlayer_=i,this.localAdManager_=this.localPlayer_.getAdManager(),this.videoProxy_=null,this.playerProxy_=null,this.adManagerProxy_=null,this.currentAdProxy_=null,this.videoEventTarget_=null,this.playerEventTarget_=null,this.adManagerEventTarget_=null,this.eventManager_=null,this.receiverAppId_=r,this.androidReceiverCompatible_=s,this.trackedCalls_={addThumbnailsTrack:[],addTextTrackAsync:[],addChaptersTrack:[]},this.playerCompiledToExternNames_=new Map,this.adManagerCompiledToExternNames_=new Map,this.sender_=null,this.shouldInitCastSender_()?(this.sender_=new Bs(r,()=>this.onCastStatusChanged_(),()=>this.onFirstCastStateUpdate_(),(n,a)=>this.onRemoteEvent_(n,a),()=>this.onResumeLocal_(),()=>this.getInitState_(),s),this.init_()):this.initWithoutSender_()}destroy(t=!1){this.sender_&&t&&this.sender_.forceDisconnect(),this.eventManager_&&(this.eventManager_.release(),this.eventManager_=null);let i=[];return this.localPlayer_&&(i.push(this.localPlayer_.destroy()),this.localPlayer_=null),this.sender_&&(i.push(this.sender_.destroy()),this.sender_=null),this.localVideo_=null,this.localAdManager_=null,this.videoProxy_=null,this.playerProxy_=null,this.adManagerProxy_=null,this.currentAdProxy_=null,super.release(),Promise.all(i)}getVideo(){return this.videoProxy_}getPlayer(){return this.playerProxy_}getAdManager(){return this.adManagerProxy_}canCast(){return this.sender_?this.sender_.apiReady()&&this.sender_.hasReceivers():!1}isCasting(){return this.sender_?this.sender_.isCasting():!1}receiverName(){return this.sender_?this.sender_.receiverName():""}async cast(){this.sender_&&(await this.sender_.cast(),this.localPlayer_&&await this.localPlayer_.unload())}setAppData(t){this.sender_&&this.sender_.setAppData(t)}suggestDisconnect(){this.sender_&&this.sender_.showDisconnectDialog()}forceDisconnect(){this.sender_&&this.sender_.forceDisconnect()}async changeReceiverId(t,i=!1){t==this.receiverAppId_&&i==this.androidReceiverCompatible_||(this.receiverAppId_=t,this.androidReceiverCompatible_=i,this.sender_&&(this.sender_.forceDisconnect(),await this.sender_.destroy(),this.sender_=null,this.sender_=new Bs(t,()=>this.onCastStatusChanged_(),()=>this.onFirstCastStateUpdate_(),(r,s)=>this.onRemoteEvent_(r,s),()=>this.onResumeLocal_(),()=>this.getInitState_(),i),this.sender_.init()))}initWithoutSender_(){this.videoProxy_=this.localVideo_,this.playerProxy_=this.localPlayer_,this.adManagerProxy_=this.localAdManager_}init_(){this.sender_.init(),this.eventManager_=new ue;for(let t of we.VideoEvents)this.eventManager_.listen(this.localVideo_,t,i=>this.videoProxyLocalEvent_(i));this.eventManager_.listen(this.localPlayer_,Le.ALL_EVENTS,t=>this.playerProxyLocalEvent_(t)),this.localAdManager_&&this.eventManager_.listen(this.localAdManager_,Le.ALL_EVENTS,t=>this.adManagerProxyLocalEvent_(t)),this.videoProxy_=new Proxy(this.localVideo_,{get:(t,i)=>typeof i!="string"?t[i]:this.videoProxyGet_(i),set:(t,i,r)=>typeof i!="string"?(t[i]=r,!0):(this.videoProxySet_(i,r),!0)}),this.playerProxy_=new Proxy(this.localPlayer_,{get:(t,i)=>typeof i!="string"?t[i]:this.playerProxyGet_(i)}),this.localAdManager_&&(this.adManagerProxy_=new Proxy(this.localAdManager_,{get:(t,i)=>typeof i!="string"?t[i]:this.adManagerProxyGet_(i)})),COMPILED&&(this.mapCompiledToUncompiledMethodNames_(t=>this.iterateOverPlayerMethods_(t),this.playerCompiledToExternNames_),this.mapCompiledToUncompiledMethodNames_(t=>this.iterateOverAdManagerMethods_(t),this.adManagerCompiledToExternNames_)),this.videoEventTarget_=new Le,this.videoEventTarget_.dispatchTarget=this.videoProxy_,this.playerEventTarget_=new Le,this.playerEventTarget_.dispatchTarget=this.playerProxy_,this.adManagerEventTarget_=new Le,this.adManagerEventTarget_.dispatchTarget=this.adManagerProxy_,this.eventManager_.listen(this.localPlayer_,U.EventName.Unloading,()=>{this.sender_&&this.sender_.isCasting()||this.resetExternalTracks()})}mapCompiledToUncompiledMethodNames_(t,i){let r=new Map;t((s,n)=>{if(r.has(n)){let a=r.get(n);s.length<a.length?i.set(s,a):i.set(a,s)}else r.set(n,s)})}iterateOverPlayerMethods_(t){v.assert(this.localPlayer_,"Must have player!");let i=this.localPlayer_;this.iterateOverClassMethods_(t,i)}iterateOverAdManagerMethods_(t){v.assert(this.localAdManager_,"Must have ad manager!");let i=this.localAdManager_;this.iterateOverClassMethods_(t,i)}iterateOverClassMethods_(t,i){let r=new Set;function s(o){return o=="constructor"||typeof i[o]!="function"?!1:!r.has(o)}for(let o in i)s(o)&&(r.add(o),t(o,i[o]));let n=Object.getPrototypeOf(i),a=Object.getPrototypeOf({});for(;n&&n!=a;){for(let o of Object.getOwnPropertyNames(n))s(o)&&(r.add(o),t(o,i[o]));n=Object.getPrototypeOf(n)}}getInitState_(){let t={video:{},player:{},manifest:this.localPlayer_.getAssetUri(),startTime:null,mimeType:this.localPlayer_.getMimeType(),addThumbnailsTrackCalls:this.trackedCalls_.addThumbnailsTrack,addTextTrackAsyncCalls:this.trackedCalls_.addTextTrackAsync,addChaptersTrackCalls:this.trackedCalls_.addChaptersTrack};this.localVideo_.pause();for(let i of we.VideoInitStateAttributes)t.video[i]=this.localVideo_[i];this.localVideo_.ended||(t.startTime=this.localVideo_.currentTime);for(let i of we.PlayerInitState){let r=i[0],s=i[1],n=this.localPlayer_[r]();t.player[s]=n}return t}onCastStatusChanged_(){let t=new U("caststatuschanged");this.dispatchEvent(t)}onFirstCastStateUpdate_(){let t=this.videoProxy_.paused?"pause":"play",i=new U(t);this.videoEventTarget_.dispatchEvent(i)}onResumeLocal_(){for(let f of we.PlayerInitState){let g=f[0],_=f[1],T=this.sender_.get("player",g)();this.localPlayer_[_](T)}let t=this.trackedCalls_.addThumbnailsTrack,i=this.trackedCalls_.addTextTrackAsync,r=this.trackedCalls_.addChaptersTrack;this.resetExternalTracks();let s=this.sender_.get("player","getAssetUri")(),n=this.sender_.get("video","ended"),a=Promise.resolve(),o=this.localVideo_.autoplay,c=null;n||(c=this.sender_.get("video","currentTime"));let d,u=this.sender_.get("player","getTextTracks")();u&&u.length&&(d=u.find(f=>f.active)),s&&(this.localVideo_.autoplay=!1,a=this.localPlayer_.load(s,c));let m={};for(let f of we.VideoInitStateAttributes)m[f]=this.sender_.get("video",f);a.then(()=>{if(this.localVideo_){for(let f of t)this.getPlayer().addThumbnailsTrack(...f);for(let f of i)this.getPlayer().addTextTrackAsync(...f);for(let f of r)this.getPlayer().addChaptersTrack(...f);for(let f of we.VideoInitStateAttributes)this.localVideo_[f]=m[f];if(d){let g=this.localPlayer_.getTextTracks().find(_=>_.language==d.language&&ye.equal(_.roles,d.roles)&&_.forced==d.forced);this.localPlayer_.selectTextTrack(g)}else this.localPlayer_.selectTextTrack();this.localVideo_.autoplay=o,s&&this.localVideo_.play()}},f=>{v.assert(f instanceof h,"Wrong error type!");let g=U.EventName.Error,_=new Map().set("detail",f),T=new U(g,_);this.localPlayer_.dispatchEvent(T)})}getLocalOrRemote_(t,i,r){if(!this.sender_.isCasting()){let s=t[r];return typeof s=="function"?s.bind(t):s}return r=="getCurrentAd"?()=>this.currentAdProxy_:this.sender_.get(i,r)}videoProxyGet_(t){if(t=="addEventListener")return(i,r,s)=>this.videoEventTarget_.addEventListener(i,r,s);if(t=="removeEventListener")return(i,r,s)=>this.videoEventTarget_.removeEventListener(i,r,s);if(this.sender_.isCasting()&&!this.sender_.hasRemoteProperties()){let i=this.localVideo_[t];if(typeof i!="function")return i}return this.getLocalOrRemote_(this.localVideo_,"video",t)}videoProxySet_(t,i){if(!this.sender_.isCasting()){this.localVideo_[t]=i;return}this.sender_.set("video",t,i)}videoProxyLocalEvent_(t){if(this.sender_.isCasting())return;let i=U.fromRealEvent(t);this.videoEventTarget_.dispatchEvent(i)}playerProxyGet_(t,i=!1){if(this.playerCompiledToExternNames_.has(t)&&(t=this.playerCompiledToExternNames_.get(t)),t=="addEventListener")return(r,s,n)=>this.playerEventTarget_.addEventListener(r,s,n);if(t=="removeEventListener")return(r,s,n)=>this.playerEventTarget_.removeEventListener(r,s,n);if(t=="getMediaElement")return()=>this.videoProxy_;if(t=="getSharedConfiguration")return p.warning("Can't share configuration across a network. Returning copy."),this.sender_.get("player","getConfiguration");if(t=="getNetworkingEngine")return this.sender_.isCasting()&&p.warning("NOTE: getNetworkingEngine() is always local!"),()=>this.localPlayer_.getNetworkingEngine();if(t=="getDrmEngine")return this.sender_.isCasting()&&p.warning("NOTE: getDrmEngine() is always local!"),()=>this.localPlayer_.getDrmEngine();if(t=="getAdManager")return()=>this.adManagerProxy_;if(t=="getQueueManager")return()=>this.localPlayer_.getQueueManager();if(t=="setVideoContainer")return this.sender_.isCasting()&&p.warning("NOTE: setVideoContainer() is always local!"),r=>this.localPlayer_.setVideoContainer(r);if(!i){if(t=="addThumbnailsTrack")return(...r)=>(this.trackedCalls_.addThumbnailsTrack.push(r),this.playerProxyGet_(t,!0)(...r));if(t=="addTextTrackAsync")return(...r)=>(this.trackedCalls_.addTextTrackAsync.push(r),this.playerProxyGet_(t,!0)(...r));if(t=="addChaptersTrack")return(...r)=>(this.trackedCalls_.addChaptersTrack.push(r),this.playerProxyGet_(t,!0)(...r))}if(this.sender_.isCasting()){if(t=="getManifest"||t=="drmInfo")return()=>(p.alwaysWarn(t+"() does not work while casting!"),null);if(t=="attach"||t=="detach")return()=>(p.alwaysWarn(t+"() does not work while casting!"),Promise.resolve())}if(this.sender_.isCasting()&&!this.sender_.hasRemoteProperties()&&(we.PlayerGetterMethods.has(t)||we.LargePlayerGetterMethods.has(t))){let r=this.localPlayer_[t];return typeof r!="function"?r:r.bind(this.localPlayer_)}return this.getLocalOrRemote_(this.localPlayer_,"player",t)}playerProxyLocalEvent_(t){this.sender_.isCasting()||this.playerEventTarget_.dispatchEvent(t)}adManagerProxyGet_(t){return this.adManagerCompiledToExternNames_.has(t)&&(t=this.adManagerCompiledToExternNames_.get(t)),t=="addEventListener"?(i,r,s)=>this.adManagerEventTarget_.addEventListener(i,r,s):t=="removeEventListener"?(i,r,s)=>this.adManagerEventTarget_.removeEventListener(i,r,s):this.getLocalOrRemote_(this.localAdManager_,"adManager",t)}adManagerProxyLocalEvent_(t){this.sender_.isCasting()||this.adManagerEventTarget_.dispatchEvent(t)}currentAdProxyGet_(t){return this.sender_.isCasting()?this.sender_.get("currentAd",t):null}onRemoteEvent_(t,i){v.assert(this.sender_.isCasting(),"Should only receive remote events while casting"),this.sender_.isCasting()&&(t=="video"?this.videoEventTarget_.dispatchEvent(i):t=="player"?(i.type==U.EventName.Unloading&&this.resetExternalTracks(),this.playerEventTarget_.dispatchEvent(i)):t=="adManager"&&(i.type=="ad-started"?this.currentAdProxy_=new Proxy(new ro,{get:(r,s)=>typeof s!="string"?r[s]:this.currentAdProxyGet_(s)}):i.type=="ad-stopped"&&(this.currentAdProxy_=null),this.adManagerEventTarget_.dispatchEvent(i)))}resetExternalTracks(){this.trackedCalls_.addThumbnailsTrack=[],this.trackedCalls_.addTextTrackAsync=[],this.trackedCalls_.addChaptersTrack=[]}shouldInitCastSender_(){return!(!window.chrome||typeof Proxy=="undefined"||j.getDevice().getDeviceType()==ie.DeviceType.CAST)}},ro=class extends Wt{};/*! @license
571
+ * Shaka Player
572
+ * Copyright 2016 Google LLC
573
+ * SPDX-License-Identifier: Apache-2.0
574
+ */var pr=class pr extends Le{constructor(t,i,r,s){super();l(this,"video_");l(this,"player_");l(this,"adManager_");l(this,"currentAd_");l(this,"eventManager_");l(this,"targets_");l(this,"appDataCallback_");l(this,"contentIdCallback_");l(this,"metadata_");l(this,"isConnected_");l(this,"isIdle_");l(this,"updateNumber_");l(this,"startUpdatingUpdateNumber_");l(this,"initialStatusUpdatePending_");l(this,"shakaBus_");l(this,"genericBus_");l(this,"pollTimer_");this.video_=t,this.player_=i,this.adManager_=i.getAdManager(),this.currentAd_=null,this.eventManager_=new ue,this.targets_={video:t,player:i,adManager:this.adManager_,currentAd:this.currentAd_},this.appDataCallback_=r||(()=>{}),this.contentIdCallback_=s||(n=>n),this.metadata_=null,this.isConnected_=!1,this.isIdle_=!0,this.updateNumber_=0,this.startUpdatingUpdateNumber_=!1,this.initialStatusUpdatePending_=!0,this.shakaBus_=null,this.genericBus_=null,this.pollTimer_=new ae(()=>{this.pollAttributes_()}),this.init_()}isConnected(){return this.isConnected_}isIdle(){return this.isIdle_}setContentMetadata(t){this.metadata_=t}clearContentMetadata(){this.metadata_=null}setContentTitle(t){this.ensureMetadata_(),this.metadata_.title=t}setContentImage(t){this.ensureMetadata_(),this.metadata_.images=[{url:t}]}setContentArtist(t){this.ensureMetadata_(),this.metadata_.artist=t,this.metadata_.metadataType=cast.receiver.media.MetadataType.MUSIC_TRACK}setContentAlbumName(t){this.ensureMetadata_(),this.metadata_.albumName=t,this.metadata_.metadataType=cast.receiver.media.MetadataType.MUSIC_TRACK}ensureMetadata_(){this.metadata_||(this.metadata_={metadataType:cast.receiver.media.MetadataType.GENERIC})}async destroy(){this.eventManager_&&(this.eventManager_.release(),this.eventManager_=null);let t=[];this.player_&&(t.push(this.player_.destroy()),this.player_=null),this.pollTimer_&&(this.pollTimer_.stop(),this.pollTimer_=null),this.video_=null,this.adManager_=null,this.targets_=null,this.appDataCallback_=null,this.isConnected_=!1,this.isIdle_=!0,this.shakaBus_=null,this.genericBus_=null,super.release(),await Promise.all(t),cast.receiver.CastReceiverManager.getInstance().stop()}init_(){let t=cast.receiver.CastReceiverManager.getInstance();t.onSenderConnected=()=>this.onSendersChanged_(),t.onSenderDisconnected=()=>this.onSendersChanged_(),t.onSystemVolumeChanged=()=>this.fakeVolumeChangeEvent_(),this.genericBus_=t.getCastMessageBus(we.GENERIC_MESSAGE_NAMESPACE),this.genericBus_.onMessage=i=>this.onGenericMessage_(i),this.shakaBus_=t.getCastMessageBus(we.SHAKA_MESSAGE_NAMESPACE),this.shakaBus_.onMessage=i=>this.onShakaMessage_(i),Fe?j.getDevice().getDeviceType()===ie.DeviceType.CAST&&t.start():t.start();for(let i of we.VideoEvents)this.eventManager_.listen(this.video_,i,r=>this.proxyEvent_("video",r));this.eventManager_.listen(this.player_,Le.ALL_EVENTS,i=>this.proxyEvent_("player",i)),this.adManager_&&this.eventManager_.listen(this.adManager_,Le.ALL_EVENTS,i=>{i.type=="ad-started"?(this.currentAd_=this.adManager_.getCurrentAd(),this.updateNumber_=0,this.targets_.currentAd=this.currentAd_):i.type=="ad-stopped"&&(this.currentAd_=null,this.targets_.currentAd=this.currentAd_),this.proxyEvent_("adManager",i)}),this.eventManager_.listen(this.video_,"loadeddata",()=>{this.startUpdatingUpdateNumber_=!0}),this.eventManager_.listen(this.player_,"loading",()=>{this.isIdle_=!1,this.onCastStatusChanged_()}),this.eventManager_.listen(this.video_,"playing",()=>{this.isIdle_=!1,this.onCastStatusChanged_()}),this.eventManager_.listen(this.video_,"pause",()=>{this.onCastStatusChanged_()}),this.eventManager_.listen(this.player_,"unloading",()=>{this.isIdle_=!0,this.onCastStatusChanged_()}),this.eventManager_.listen(this.video_,"ended",()=>{new ae(()=>{this.video_&&this.video_.ended&&(this.isIdle_=!0,this.onCastStatusChanged_())}).tickAfter(pr.IDLE_INTERVAL)})}onSendersChanged_(){this.updateNumber_=0,this.initialStatusUpdatePending_=!0;let t=cast.receiver.CastReceiverManager.getInstance();this.isConnected_=t.getSenders().length!=0,this.onCastStatusChanged_()}async onCastStatusChanged_(){if(await Promise.resolve(),!this.player_)return;let t=new U("caststatuschanged");this.dispatchEvent(t),this.maybeSendMediaInfoMessage_()||this.sendMediaStatus_()}async initState_(t,i){for(let s in t.player){let n=t.player[s];this.player_[s](n)}this.appDataCallback_(i);let r=this.video_.autoplay;if(t.manifest){this.video_.autoplay=!1;try{if(await this.player_.load(t.manifest,t.startTime,t.mimeType),t.addThumbnailsTrackCalls)for(let s of t.addThumbnailsTrackCalls)this.player_.addThumbnailsTrack(...s);if(t.addTextTrackAsyncCalls)for(let s of t.addTextTrackAsyncCalls)this.player_.addTextTrackAsync(...s);if(t.addChaptersTrackCalls)for(let s of t.addChaptersTrackCalls)this.player_.addChaptersTrack(...s)}catch(s){v.assert(s instanceof h,"Wrong error type! Error: "+s);let n=U.EventName.Error,a=new Map().set("detail",s),o=new U(n,a);this.player_&&this.player_.dispatchEvent(o);return}}else await Promise.resolve();if(this.player_){for(let s in t.video){let n=t.video[s];this.video_[s]=n}this.video_.autoplay=r,t.manifest&&(this.video_.play(),this.sendMediaStatus_())}}proxyEvent_(t,i){this.player_&&(this.pollAttributes_(),this.sendMessage_({type:"event",targetName:t,event:i},this.shakaBus_))}pollAttributes_(){this.pollTimer_.tickAfter(pr.POLL_INTERVAL);let t={video:{},player:{},currentAd:{}};for(let s of we.VideoAttributes)t.video[s]=this.video_[s];this.player_.isLive()&&we.PlayerGetterMethodsThatRequireLive.forEach((n,a)=>{this.updateNumber_%n==0&&(t.player[a]=this.player_[a]())}),we.PlayerGetterMethods.forEach((s,n)=>{this.updateNumber_%s==0&&(t.player[n]=this.player_[n]())}),this.currentAd_&&we.CurrentAdGetterMethods.forEach((s,n)=>{this.updateNumber_%s==0&&(t.currentAd[n]=this.currentAd_[n]())});let r=cast.receiver.CastReceiverManager.getInstance().getSystemVolume();r&&(t.video.volume=r.level,t.video.muted=r.muted),this.sendMessage_({type:"update",update:t},this.shakaBus_),we.LargePlayerGetterMethods.forEach((s,n)=>{if(this.updateNumber_%s==0){let a={player:{}};a.player[n]=this.player_[n](),this.sendMessage_({type:"update",update:a},this.shakaBus_)}}),this.adManager_&&we.LargeAdManagerGetterMethods.forEach((s,n)=>{if(this.updateNumber_%s==0){let a={adManager:{}};a.adManager[n]=this.adManager_[n](),this.sendMessage_({type:"update",update:a},this.shakaBus_)}}),this.startUpdatingUpdateNumber_&&(this.updateNumber_+=1),this.maybeSendMediaInfoMessage_()}maybeSendMediaInfoMessage_(){return this.initialStatusUpdatePending_&&(this.video_.duration||this.player_.isLive())?(this.sendMediaInfoMessage_(),this.initialStatusUpdatePending_=!1,!0):!1}sendMediaInfoMessage_(t=0){let i={contentId:this.player_.getAssetUri(),streamType:this.player_.isLive()?"LIVE":"BUFFERED",contentType:""};this.player_.isLive()||(i.duration=this.video_.duration),this.metadata_&&(i.metadata=this.metadata_),this.sendMediaStatus_(t,i)}fakeVolumeChangeEvent_(){let i=cast.receiver.CastReceiverManager.getInstance().getSystemVolume();v.assert(i,"System volume should not be null!"),i&&this.sendMessage_({type:"update",update:{video:{volume:i.level,muted:i.muted}}},this.shakaBus_),this.sendMessage_({type:"event",targetName:"video",event:{type:"volumechange"}},this.shakaBus_)}onShakaMessage_(t){let i=we.deserialize(t.data);switch(p.debug("CastReceiver: message",i),i.type){case"init":this.updateNumber_=0,this.startUpdatingUpdateNumber_=!1,this.initialStatusUpdatePending_=!0,this.initState_(i.initState,i.appData),this.pollAttributes_();break;case"appData":this.appDataCallback_(i.appData);break;case"set":{let r=i.targetName,s=i.property,n=i.value;if(r=="video"){let a=cast.receiver.CastReceiverManager.getInstance();if(s=="volume"){a.setSystemVolumeLevel(n);break}else if(s=="muted"){a.setSystemVolumeMuted(n);break}}this.targets_[r]&&(this.targets_[r][s]=n);break}case"call":{let r=i.targetName,s=i.methodName,n=i.args,a=this.targets_[r];a&&a[s].apply(a,n);break}case"asyncCall":{let r=i.targetName,s=i.methodName;r=="player"&&s=="load"&&(this.updateNumber_=0,this.startUpdatingUpdateNumber_=!1);let n=i.args,a=i.id,o=t.senderId,c=this.targets_[r],d=c[s].apply(c,n);r=="player"&&s=="load"&&(d=d.then(()=>{this.initialStatusUpdatePending_=!0})),d.then(u=>this.sendAsyncComplete_(o,a,null,u),u=>this.sendAsyncComplete_(o,a,u,null));break}}}onGenericMessage_(t){let i=we.deserialize(t.data);switch(p.debug("CastReceiver: message",i),i.type){case"PLAY":this.video_.play(),this.sendMediaStatus_();break;case"PAUSE":this.video_.pause(),this.sendMediaStatus_();break;case"SEEK":{let r=i.currentTime,s=i.resumeState;r!=null&&(this.video_.currentTime=Number(r)),s&&s=="PLAYBACK_START"?(this.video_.play(),this.sendMediaStatus_()):s&&s=="PLAYBACK_PAUSE"&&(this.video_.pause(),this.sendMediaStatus_());break}case"STOP":this.player_.unload().then(()=>{this.player_&&this.sendMediaStatus_()});break;case"GET_STATUS":this.sendMediaInfoMessage_(Number(i.requestId));break;case"VOLUME":{let r=i.volume,s=r.level,n=r.muted,a=this.video_.volume,o=this.video_.muted;s!=null&&(this.video_.volume=Number(s)),n!=null&&(this.video_.muted=n),(a!=this.video_.volume||o!=this.video_.muted)&&this.sendMediaStatus_();break}case"LOAD":{this.updateNumber_=0,this.startUpdatingUpdateNumber_=!1,this.initialStatusUpdatePending_=!1;let r=i.media,s=r.contentId,n=i.currentTime,a=this.contentIdCallback_(s),o=i.autoplay||!0,c=r.customData;this.appDataCallback_(c),o&&(this.video_.autoplay=!0),this.player_.load(a,n).then(()=>{this.player_&&this.sendMediaInfoMessage_()}).catch(d=>{v.assert(d instanceof h,"Wrong error type!");let u="LOAD_FAILED";d.category==h.Category.PLAYER&&d.code==h.Code.LOAD_INTERRUPTED&&(u="LOAD_CANCELLED"),this.sendMessage_({requestId:Number(i.requestId),type:u},this.genericBus_)});break}default:p.warning("Unrecognized message type from the generic Chromecast controller!",i.type),this.sendMessage_({requestId:Number(i.requestId),type:"INVALID_REQUEST",reason:"INVALID_COMMAND"},this.genericBus_);break}}sendAsyncComplete_(t,i,r,s){this.player_&&this.sendMessage_({type:"asyncComplete",id:i,error:r,res:s},this.shakaBus_,t)}sendMessage_(t,i,r){if(!this.isConnected_)return;let s=we.serialize(t);r?i.getCastChannel(r).send(s):i.broadcast(s)}getPlayState_(){let t=pr.PLAY_STATE;return this.isIdle_?t.IDLE:this.player_.isBuffering()?t.BUFFERING:this.video_.paused?t.PAUSED:t.PLAYING}sendMediaStatus_(t=0,i=null){let r={mediaSessionId:0,playbackRate:this.video_.playbackRate,playerState:this.getPlayState_(),currentTime:this.video_.currentTime,supportedMediaCommands:63,volume:{level:this.video_.volume,muted:this.video_.muted}};i&&(r.media=i);let s={requestId:t,type:"MEDIA_STATUS",status:[r]};this.sendMessage_(s,this.genericBus_)}};l(pr,"POLL_INTERVAL",.5),l(pr,"IDLE_INTERVAL",5),l(pr,"PLAY_STATE",{IDLE:"IDLE",PLAYING:"PLAYING",BUFFERING:"BUFFERING",PAUSED:"PAUSED"});var so=pr;/*! @license
575
+ * Shaka Player
576
+ * Copyright 2016 Google LLC
577
+ * SPDX-License-Identifier: Apache-2.0
578
+ */var at=class at{constructor(){l(this,"psshToInitData_");this.psshToInitData_=new Map}release(){this.psshToInitData_.clear()}parseFromAdaptationSet(e,t,i){let r=this.parseElements_(e),s=null,n=[],a=[],o=null,c=new Set(r.map(m=>m.keyId));c.delete(null);let d="cenc";if(c.size>1)throw new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.DASH_CONFLICTING_KEY_IDS);if(!t){let m=r.filter(g=>g.schemeUri==at.Aes128Protection_);if(m.length>1)throw new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.DASH_CONFLICTING_AES_128);m.length&&(o=at.parseAes128_(m[0]));let f=r.find(g=>g.schemeUri==at.MP4Protection_);f&&f.encryptionScheme&&(d=f.encryptionScheme),a=r.filter(g=>g.schemeUri==at.MP4Protection_?(v.assert(!g.init||g.init.length,"Init data must be null or non-empty."),s=g.init||s,!1):g.schemeUri!=at.Aes128Protection_),a.length&&(n=at.convertElements_(s,d,a,i,c),n.length==0&&(n=[R.createDrmInfo("",d,s)]))}if(r.length&&!o&&(t||!a.length)){n=[];for(let m of Object.values(i))if(!de.isClearKeySystem(m)){let f=R.createDrmInfo(m,d,s);n.push(f)}}let u=Array.from(c)[0]||null;if(u)for(let m of n)for(let f of m.initData)f.keyId=u;return{defaultKeyId:u,defaultInit:s,drmInfos:n,aes128Info:o,firstRepresentation:!0}}parseFromRepresentation(e,t,i,r){let s=this.parseFromAdaptationSet(e,i,r);if(t.firstRepresentation){let n=t.drmInfos.length==1&&!t.drmInfos[0].keySystem,a=t.drmInfos.length==0,o=s.drmInfos.length==0;(a||n&&!o)&&(t.drmInfos=s.drmInfos),t.firstRepresentation=!1}else if(s.drmInfos.length>0&&(t.drmInfos=t.drmInfos.filter(n=>s.drmInfos.some(a=>a.keySystem==n.keySystem)),t.drmInfos.length==0))throw new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.DASH_NO_COMMON_KEY_SYSTEM);return s.defaultKeyId||t.defaultKeyId}static getFairPlayLicenseUrl(e){if(de.isMediaKeysPolyfilled("apple"))throw new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.DASH_MSE_ENCRYPTED_LEGACY_APPLE_MEDIA_KEYS_NOT_SUPPORTED);let t=I.findChildNS(e.node,at.DashIfNamespaceUri_,"Laurl");if(t){let i=I.getTextContents(t);if(i)return i}return""}static getWidevineLicenseUrl(e){let t=I.findChildNS(e.node,at.DashIfNamespaceUri_,"Laurl");if(t){let r=I.getTextContents(t);if(r)return r}let i=I.findChildNS(e.node,"urn:microsoft","laurl");return i&&q.htmlUnescape(i.attributes.licenseUrl)||""}static getClearKeyLicenseUrl(e){let t=I.findChildNS(e.node,at.DashIfNamespaceUri_,"Laurl");if(t){let r=I.getTextContents(t);if(r)return r}let i=I.findChildNS(e.node,at.ClearKeyNamespaceUri_,"Laurl");if(i&&i.attributes.Lic_type==="EME-1.0"&&i){let r=I.getTextContents(i);if(r)return r}return""}static getPlayReadyLicenseUrl(e){let t=I.findChildNS(e.node,at.DashIfNamespaceUri_,"Laurl");if(t){let s=I.getTextContents(t);if(s)return s}let i=I.findChildNS(e.node,"urn:microsoft:playready","pro");if(i&&I.getTextContents(i))return Ri.getLicenseUrl(i);let r=I.findChildNS(e.node,at.CencNamespaceUri_,"pssh");if(r){let s=I.getTextContents(r);if(s){let n=ne.fromBase64(s);return Ri.getLicenseUrlFromPssh(n)}}return""}static getInitDataFromPro_(e){let t=I.findChildNS(e.node,"urn:microsoft:playready","pro");if(!t||!I.getTextContents(t))return null;let i=I.getTextContents(t),r=ne.fromBase64(i),s=new Uint8Array([154,4,240,121,152,64,66,134,171,146,230,91,224,136,95,149]),n=new Set;return[{initData:ei.createPssh(r,s,n,0),initDataType:"cenc",keyId:e.keyId}]}static getInitDataClearKey_(e,t){if(t.size==0)return null;let i=new Uint8Array([16,119,239,236,192,178,77,2,172,227,60,30,82,226,251,75]),r=new Uint8Array([]);return[{initData:ei.createPssh(r,i,t,1),initDataType:"cenc",keyId:e.keyId}]}static convertElements_(e,t,i,r,s){let n=at.licenseUrlParsers_,a=[];for(let o of i){let c=r[o.schemeUri];if(c){v.assert(!o.init||o.init.length,"Init data must be null or non-empty.");let d=at.getInitDataFromPro_(o),u=null;o.schemeUri===at.ClearKeySchemeUri_&&(u=at.getInitDataClearKey_(o,s));let m=o.init||e||d||u,f=R.createDrmInfo(c,t,m),g=n.get(c);g&&(f.licenseServerUri=g(o)),f.serverCertificateUri=at.getServerCertificateUri(o),a.push(f)}}return a}static getServerCertificateUri(e){let t=I.findChildNS(e.node,at.DashIfNamespaceUri_,"Certurl");if(t){let i=I.getTextContents(t);if(i)return i}return""}parseElements_(e){let t=[];for(let i of e){let r=this.parseElement_(i);r&&t.push(r)}return t}parseElement_(e){let t=at.CencNamespaceUri_,i=e.attributes.schemeIdUri,r=I.getAttributeNS(e,t,"default_KID"),s=I.findChildrenNS(e,t,"pssh").map(I.getContents),n=e.attributes.value;if(!i)return p.error("Missing required schemeIdUri attribute on","ContentProtection element",e),null;if(i=i.toLowerCase(),r&&(r=r.replace(/-/g,"").toLowerCase(),r.includes(" ")))throw new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.DASH_MULTIPLE_KEY_IDS_NOT_SUPPORTED);let a=[];try{a=s.map(o=>({initDataType:"cenc",initData:this.psshToInitData_.getOrInsertComputed(o,()=>ne.fromBase64(o)),keyId:null}))}catch(o){throw new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.DASH_PSSH_BAD_ENCODING)}return{node:e,schemeUri:i,keyId:r,init:a.length>0?a:null,encryptionScheme:n}}static parseAes128_(e){if(!window.crypto||!window.crypto.subtle)throw p.alwaysWarn("Web Crypto API is not available to decrypt AES-128. (Web Crypto only exists in secure origins like https)"),new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.NO_WEB_CRYPTO_API);let t="urn:mpeg:dash:schema:sea:2012",i=I.findChildNS(e.node,t,"SegmentEncryption");if(!i)throw new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.DASH_UNSUPPORTED_AES_128);if(i.attributes.schemeIdUri!="urn:mpeg:dash:sea:aes128-cbc:2013")throw new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.DASH_UNSUPPORTED_AES_128);let n=I.findChildNS(e.node,t,"CryptoPeriod");if(!n)throw new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.DASH_UNSUPPORTED_AES_128);let a=n.attributes.IV,o=q.htmlUnescape(n.attributes.keyUriTemplate);if(!a||!o)throw new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.DASH_UNSUPPORTED_AES_128);let c=ne.fromHex(a.substr(2));if(c.byteLength!=16)throw new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.AES_128_INVALID_IV_LENGTH);return{keyUri:o,iv:c}}};l(at,"MP4Protection_","urn:mpeg:dash:mp4protection:2011"),l(at,"Aes128Protection_","urn:mpeg:dash:sea:2012"),l(at,"CencNamespaceUri_","urn:mpeg:cenc:2013"),l(at,"ClearKeyNamespaceUri_","http://dashif.org/guidelines/clearKey"),l(at,"ClearKeySchemeUri_","urn:uuid:e2719d58-a985-b3c9-781a-b030af78d30e"),l(at,"DashIfNamespaceUri_","https://dashif.org/CPS");var vi=at;vi.licenseUrlParsers_=new Map().set("com.apple.fps",vi.getFairPlayLicenseUrl).set("com.widevine.alpha",vi.getWidevineLicenseUrl).set("com.microsoft.playready",vi.getPlayReadyLicenseUrl).set("com.microsoft.playready.recommendation",vi.getPlayReadyLicenseUrl).set("com.microsoft.playready.software",vi.getPlayReadyLicenseUrl).set("com.microsoft.playready.hardware",vi.getPlayReadyLicenseUrl).set("org.w3.clearkey",vi.getClearKeyLicenseUrl);/*! @license
579
+ * Shaka Player
580
+ * Copyright 2016 Google LLC
581
+ * SPDX-License-Identifier: Apache-2.0
582
+ */var ze=class ze{static fillUriTemplate(e,t,i,r,s,n){let a=new Map().set("RepresentationID",t).set("Number",i).set("SubNumber",r).set("Bandwidth",s).set("Time",n),o=/\$(RepresentationID|Number|SubNumber|Bandwidth|Time)?(?:%0([0-9]+)([diouxX]))?\$/g;return e.replace(o,(d,u,m,f)=>{if(d=="$$")return"$";let g=a.get(u);if(v.assert(g!==void 0,"Unrecognized identifier"),g==null)return p.warning("URL template does not have an available substitution for ",'identifier "'+u+'":',e),d;u=="RepresentationID"&&m&&(p.warning("URL template should not contain a width specifier for identifier",'"RepresentationID":',e),m=void 0),u=="Time"&&typeof g!="bigint"&&(v.assert(typeof g=="number","Time value should be a number or bigint!"),Math.abs(g-Math.round(g))>=.2&&p.alwaysWarn("Calculated $Time$ values must be close to integers"),g=Math.round(g));let _;switch(f){case void 0:case"d":case"i":case"u":_=g.toString();break;case"o":_=g.toString(8);break;case"x":_=g.toString(16);break;case"X":_=g.toString(16).toUpperCase();break;default:v.assert(!1,"Unhandled format specifier"),_=g.toString();break}let T=window.parseInt(m,10)||1,S=Math.max(0,T-_.length);return new Array(S+1).join("0")+_})}static createTimeline(e,t,i,r,s){v.assert(t>0&&t<1/0,"timescale must be a positive, finite integer"),v.assert(r>0,"period duration must be a positive integer");let n=[],a=-i;for(let o=0;o<e.length;++o){let c=e[o],d=e[o+1],u=I.parseAttr(c,"t",I.parseNonNegativeInt),m=I.parseAttr(c,"d",I.parseNonNegativeInt),f=I.parseAttr(c,"r",I.parseInt),_=I.parseAttr(c,"k",I.parseInt)||0;if(u!=null&&(u-=i),!m){p.warning('"S" element must have a duration: ignoring this element.',c);continue}let T=u!=null?u:a,S=f||0;if(S<0)if(d){let b=I.parseAttr(d,"t",I.parseNonNegativeInt);if(b==null)return p.warning('An "S" element cannot have a negative repeat','if the next "S" element does not have a valid start time:','ignoring the remaining "S" elements.',c),n;if(T>=b)return p.warning('An "S" element cannot have a negative repeat if its start ',`time exceeds the next "S" element's start time:`,'ignoring the remaining "S" elements.',c),n;S=Math.ceil((b-T)/m)-1}else{if(r==1/0)return p.warning('The last "S" element cannot have a negative repeat',"if the Period has an infinite duration:",'ignoring the last "S" element.',c),n;if(T/t>=r)return p.warning('The last "S" element cannot have a negative repeat',"if its start time exceeds the Period's duration:",'ignoring the last "S" element.',c),n;S=Math.ceil((r*t-T)/m)-1}if(n.length>0&&T!=a){let b=T-a;Math.abs(b/t)>=R.GAP_OVERLAP_TOLERANCE_SECONDS&&p.warning("SegmentTimeline contains a large gap/overlap:","the content may have errors in it.",c),n[n.length-1].end=T/t}for(let b=0;b<=S;++b){let E=T+m,C={start:T/t,unscaledStart:T,end:E/t,unscaledEnd:E,partialSegments:_,segmentPosition:n.length+s};n.push(C),T=E,a=E}}return n}static parseSegmentInfo(e,t){v.assert(t(e.representation),"There must be at least one element of the given type.");let i=ze.inheritAttribute(e,t,"timescale"),r=1;i&&(r=I.parsePositiveInt(i)||1);let s=ze.inheritAttribute(e,t,"duration"),n=I.parsePositiveInt(s||""),a=n?n/r:null,o=ze.inheritAttribute(e,t,"startNumber"),c=Number(ze.inheritAttribute(e,t,"presentationTimeOffset"))||0,d=I.parseNonNegativeInt(o||"");(o==null||d==null)&&(d=1);let u=null,m=ze.inheritChild(e,t,"SegmentTimeline");if(m){let g=[],_=ze.parsePatterns_(m),T=I.findChildren(m,"S");if(_.size)for(let S of T){let b=ze.expandSWithPattern_(S,_);g.push(...b)}else g=T;u=ze.createTimeline(g,r,c,e.periodInfo.duration||1/0,d)}let f=c/r||0;return{timescale:r,unscaledSegmentDuration:n,segmentDuration:a,startNumber:d,scaledPresentationTimeOffset:f,unscaledPresentationTimeOffset:c,timeline:u}}static parsePatterns_(e){let t=new Map,i=I.findChildren(e,"Pattern");for(let r of i){let s=r.attributes.id;s?t.set(s,r):p.warning("Ignoring Pattern without id.",r)}return t}static expandSWithPattern_(e,t){let i=e.attributes.p;if(!i)return[e];if(!t.has(i))return p.error("Referenced Pattern not found:",i),[];let r=t.get(i),s=I.findChildren(r,"P");if(!s.length)return[];let n=[];for(let _ of s){let T=Number(_.attributes.d),S=Number(_.attributes.r||0);if(!(!Number.isFinite(T)||T<=0))for(let b=0;b<=S;b++)n.push(T)}if(!n.length)return[];let a=Number(e.attributes.pE||0),c=Number(e.attributes.r||0)+1,d=Number(e.attributes.t||0),u=Number(e.attributes.k||1),m=[],f=d,g=n.length;for(let _=0;_<c;_++){let T=(a+_)%g,S=n[T],b={tagName:"S",attributes:{t:String(f),d:String(S)},children:[],parent:null};u>1&&(b.attributes.k=String(u)),m.push(b),f+=S}return m}static getNodes(e,t){return v.assert(t(e.representation),"There must be at least one element of the given type."),[t(e.representation),t(e.adaptationSet),t(e.period)].filter(it.isNotNull)}static inheritAttribute(e,t,i){let r=ze.getNodes(e,t),s=null;for(let n of r)if(s=n.attributes[i],s)break;return s}static inheritChild(e,t,i){let r=ze.getNodes(e,t),s=null;for(let n of r)if(s=I.findChild(n,i),s)break;return s}static hasLinkedPeriods(e){for(let t of I.findChildren(e,"Period"))if(I.findChild(t,"ImportedMPD"))return!0;return!1}static processLinkedPeriods(e,t,i,r){var a;let s=K.RequestType.MANIFEST,n=[];for(let o of I.findChildren(e,"Period")){let c=I.findChild(o,"ImportedMPD");if(!c)continue;let d=c,u=(a=I.getContents(d))==null?void 0:a.trim();if(!u){ze.fallbackLinkedPeriod_(e,o,d);continue}let m=fe.resolve(t,u),f=K.makeRequest([m],i),_=r.request(s,f).chain(T=>{let S=null;try{S=I.parseXml(T.data,"MPD")}catch(E){}let b=S?I.findChild(S,"Period"):null;return!S||!b||ze.importedMpdResolutionFails_(S)?ze.fallbackLinkedPeriod_(e,o,d):ze.mergeImportedPeriod_(o,S,b,T.uri),e},T=>(ze.fallbackLinkedPeriod_(e,o,d),e));n.push(_)}return n.length?je.all(n).chain(()=>e):je.completed(e)}static fallbackLinkedPeriod_(e,t,i){t.children=t.children.filter(r=>r!==i),ze.isValidRegularPeriod_(t)?p.warning("Failed to resolve a Linked Period (ImportedMPD); falling back to a regular Period."):(p.warning("Failed to resolve a Linked Period (ImportedMPD) and the Period has no valid content; removing it from the MPD."),e.children=e.children.filter(r=>r!==t))}static isValidRegularPeriod_(e){return I.findChildren(e,"AdaptationSet").length?!0:I.parseDuration(e.attributes.duration||"")===0}static importedMpdResolutionFails_(e){if((e.attributes.type||"static")!=="static"||I.findChildren(e,"Period").length!==1)return!0;let i=I.parseDate(e.attributes.availabilityEndTime||"");return i!=null&&i*1e3<Date.now()}static mergeImportedPeriod_(e,t,i,r){let s=new Set(["id","start","duration"]);for(let f of Object.keys(e.attributes))!s.has(f)&&!f.includes(":")&&delete e.attributes[f];let n=new Set(["ServiceDescription","SupplementalProperty","EssentialProperty","EventStream","RequestParam"]),a=I.getChildNodes(e).filter(f=>n.has(f.tagName)||f.tagName.includes(":")),o=I.getChildNodes(i).filter(f=>f.tagName!=="BaseURL").concat(I.findChildren(t,"SupplementalProperty"),I.findChildren(t,"EssentialProperty")),c=new Set;for(let f of o){let g=ze.linkedPeriodMergeKey_(f);g!=null&&c.add(g)}let d=a.filter(f=>{let g=ze.linkedPeriodMergeKey_(f);return g==null||!c.has(g)}),u=ze.resolveImportedBaseUrls_(t,i,r).map(f=>({tagName:"BaseURL",attributes:{},children:[f],parent:e}));for(let f of o)f.parent=e;e.children=u.concat(o,d);let m=i.attributes.duration;if(m){let f=e.attributes.duration;if(!f)e.attributes.duration=m;else{let g=I.parseDuration(f),_=I.parseDuration(m);g!=null&&_!=null&&_<g&&(e.attributes.duration=m)}}}static linkedPeriodMergeKey_(e){switch(e.tagName){case"ServiceDescription":return"ServiceDescription:"+(e.attributes.id||"");case"SupplementalProperty":case"EssentialProperty":case"EventStream":return e.tagName+":"+(e.attributes.schemeIdUri||"")+":"+(e.attributes.value||"");default:return null}}static resolveImportedBaseUrls_(e,t,i){let r=o=>{let c=[];for(let d of I.findChildren(o,"BaseURL")){let u=I.getContents(d);u&&c.push(u)}return c},s=[i],n=r(e);n.length&&(s=fe.resolveUris(s,n));let a=r(t);return a.length&&(s=fe.resolveUris(s,a)),s}static hasXlinks(e){let t=ze.XlinkNamespaceUri_;if(e.attributes["xmlns:xlink"]!==t)return!1;let i=new Set(["Period","AdaptationSet","SegmentList"]),r=new Set(["MPD","Period","AdaptationSet","Representation","SegmentList"]),s=[e];for(;s.length;){let n=s.pop();if(i.has(n.tagName)&&I.getAttributeNS(n,t,"href"))return!0;for(let a of I.getChildNodes(n))r.has(a.tagName)&&s.push(a)}return!1}static handleXlinkInElement_(e,t,i,r,s,n){let a=h,o=ze.XlinkNamespaceUri_,c=I.getAttributeNS(e,o,"href"),d=I.getAttributeNS(e,o,"actuate")||"onRequest";for(let T of Object.keys(e.attributes)){let S=T.split(":"),b=I.getKnownNameSpace(o);S[0]==b&&delete e.attributes[T]}if(n>=5)return je.failed(new a(a.Severity.CRITICAL,a.Category.MANIFEST,a.Code.DASH_XLINK_DEPTH_LIMIT));if(d!="onLoad")return je.failed(new a(a.Severity.CRITICAL,a.Category.MANIFEST,a.Code.DASH_UNSUPPORTED_XLINK_ACTUATE));let u=fe.resolveUris([r],[c]),m=K.RequestType.MANIFEST,f=K.makeRequest(u,t),g=s.request(m,f);return v.assert(g instanceof je,"Unexpected implementation of IAbortableOperation!"),g.chain(T=>{let S=I.parseXml(T.data,e.tagName);if(!S)return je.failed(new a(a.Severity.CRITICAL,a.Category.MANIFEST,a.Code.DASH_INVALID_XML,c));for(e.children=[];S.children.length;){let b=S.children.shift();e.children.push(b)}for(let b of Object.keys(S.attributes))e.attributes[b]=S.attributes[b];return ze.processXlinks(e,t,i,u[0],s,n+1)})}static processXlinks(e,t,i,r,s,n=0){let a=ze.XlinkNamespaceUri_,o=new Set(["MPD","Period","AdaptationSet","Representation","SegmentList"]);if(I.getAttributeNS(e,a,"href")){let d=ze.handleXlinkInElement_(e,t,i,r,s,n);return i&&(d=d.chain(void 0,u=>ze.processXlinks(e,t,i,r,s,n))),d}let c=[];for(let d of I.getChildNodes(e))I.getAttributeNS(d,a,"href")=="urn:mpeg:dash:resolve-to-zero:2013"?e.children=e.children.filter(m=>m!==d):o.has(d.tagName)&&c.push(ze.processXlinks(d,t,i,r,s,n));return je.all(c).chain(()=>e)}static parseEssentialProperties(e){return ze.parseDescriptorsByTag_(e,"EssentialProperty")}static parseSupplementalProperties(e){return ze.parseDescriptorsByTag_(e,"SupplementalProperty")}static parseDescriptorsByTag_(e,t){return I.findChildren(e,t).map(ze.normalizeDescriptor_)}static getDescriptor(e,t,i){return e.find(r=>r.schemeIdUri==t&&(i==null||r.value==i))||null}static hasDescriptor(e,t,i){return ze.getDescriptor(e,t,i)!=null}static normalizeDescriptor_(e){return{schemeIdUri:e.attributes.schemeIdUri,value:e.attributes.value,id:e.attributes.id,element:e}}};l(ze,"XlinkNamespaceUri_","http://www.w3.org/1999/xlink");var Me=ze;/*! @license
583
+ * Shaka Player
584
+ * Copyright 2016 Google LLC
585
+ * SPDX-License-Identifier: Apache-2.0
586
+ */var Pn=class y{static parse(e,t,i,r,s,n,a,o){let c,d=new F().fullBox("sidx",u=>{c=y.parseSIDX_(t,r,s,n,a,i,u,o)});if(e&&d.parse(e),c)return c;throw p.error('Invalid box type, expected "sidx".'),new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.MP4_SIDX_WRONG_BOX_TYPE)}static parseSIDX_(e,t,i,r,s,n,a,o=!1){v.assert(a.version!=null,"SIDX is a full box and should have a valid version.");let c=[];a.reader.skip(4);let d=a.reader.readUint32();if(d==0)throw p.error("Invalid timescale."),new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.MP4_SIDX_INVALID_TIMESCALE);let u,m;a.version==0?(u=a.reader.readUint32(),m=a.reader.readUint32()):(u=a.reader.readUint64(),m=a.reader.readUint64()),a.reader.skip(2);let f=a.reader.readUint16(),g=u,T=(o?-a.size:e)+a.size+m;for(let S=0;S<f;S++){let b=a.reader.readUint32(),E=(b&2147483648)>>>31,C=b&2147483647,A=a.reader.readUint32();if(a.reader.skip(4),E==1)throw p.error("Hierarchical SIDXs are not supported."),new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.MP4_SIDX_TYPE_NOT_SUPPORTED);let w=g/d,M=(g+A)/d;c.push(new Se(w+i,M+i,(()=>n),T,T+C-1,t,i,r,s)),g+=A,T+=C}return a.parser.stop(),c}};/*! @license
587
+ * Shaka Player
588
+ * Copyright 2016 Google LLC
589
+ * SPDX-License-Identifier: Apache-2.0
590
+ */var is=class is{constructor(e){l(this,"dataView_");l(this,"reader_");this.dataView_=D.toDataView(e),this.reader_=new Et(this.dataView_,Et.Endianness.BIG_ENDIAN)}hasMoreData(){return this.reader_.hasMoreData()}parseElement(){let e=this.parseId_(),t=this.parseVint_(),i;is.isDynamicSizeValue_(t)?i=this.dataView_.byteLength-this.reader_.getPosition():i=is.getVintValue_(t);let r=this.reader_.getPosition()+i<=this.dataView_.byteLength?i:this.dataView_.byteLength-this.reader_.getPosition(),s=D.toDataView(this.dataView_,this.reader_.getPosition(),r);return this.reader_.skip(r),new no(e,s)}parseId_(){let e=this.parseVint_();if(e.length>7)throw new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.EBML_OVERFLOW);let t=0;for(let i of e)t=256*t+i;return t}parseVint_(){let e=this.reader_.getPosition(),t=this.reader_.readUint8();if(t==0)throw new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.EBML_OVERFLOW);let r=8-Math.floor(Math.log2(t));return v.assert(r<=8&&r>=1,"Incorrect log2 value"),this.reader_.skip(r-1),D.toUint8(this.dataView_,e,r)}static getVintValue_(e){if(e.length==8&&e[1]&224)throw new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.JS_INTEGER_OVERFLOW);let t=0;for(let i=0;i<e.length;i++){let r=e[i];if(i==0){let s=1<<8-e.length;t=r&s-1}else t=256*t+r}return t}static isDynamicSizeValue_(e){for(let t of is.DYNAMIC_SIZES)if(D.equal(e,new Uint8Array(t)))return!0;return!1}};l(is,"DYNAMIC_SIZES",[[255],[127,255],[63,255,255],[31,255,255,255],[15,255,255,255,255],[7,255,255,255,255,255],[3,255,255,255,255,255,255],[1,255,255,255,255,255,255,255]]);var rs=is,no=class{constructor(e,t){l(this,"id");l(this,"dataView_");this.id=e,this.dataView_=t}getOffset(){return this.dataView_.byteOffset}createParser(){return new rs(this.dataView_)}getUint(){if(this.dataView_.byteLength>8)throw new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.EBML_OVERFLOW);if(this.dataView_.byteLength==8&&this.dataView_.getUint8(0)&224)throw new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.JS_INTEGER_OVERFLOW);let e=0;for(let t=0;t<this.dataView_.byteLength;t++){let i=this.dataView_.getUint8(t);e=256*e+i}return e}getFloat(){if(this.dataView_.byteLength==4)return this.dataView_.getFloat32(0);if(this.dataView_.byteLength==8)return this.dataView_.getFloat64(0);throw new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.EBML_BAD_FLOATING_POINT_SIZE)}};/*! @license
591
+ * Shaka Player
592
+ * Copyright 2016 Google LLC
593
+ * SPDX-License-Identifier: Apache-2.0
594
+ */var ot=class ot{static parse(e,t,i,r,s,n,a){let o=ot.parseWebmContainer_(t),d=new rs(e).parseElement();if(d.id!=ot.CUES_ID)throw p.error("Not a Cues element."),new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.WEBM_CUES_ELEMENT_MISSING);return ot.parseCues_(d,o.segmentOffset,o.timecodeScale,o.duration,i,r,s,n,a)}static parseWebmContainer_(e){let t=new rs(e);if(t.parseElement().id!=ot.EBML_ID)throw p.error("Not an EBML element."),new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.WEBM_EBML_HEADER_ELEMENT_MISSING);let r=t.parseElement();if(r.id!=ot.SEGMENT_ID)throw p.error("Not a Segment element."),new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.WEBM_SEGMENT_ELEMENT_MISSING);let s=r.getOffset(),n=ot.parseSegment_(r);return{segmentOffset:s,timecodeScale:n.timecodeScale,duration:n.duration}}static parseSegment_(e){let t=e.createParser(),i=null;for(;t.hasMoreData();){let r=t.parseElement();if(r.id==ot.INFO_ID){i=r;break}}if(!i)throw p.error("Not an Info element."),new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.WEBM_INFO_ELEMENT_MISSING);return ot.parseInfo_(i)}static parseInfo_(e){let t=e.createParser(),i=1e6,r=null;for(;t.hasMoreData();){let a=t.parseElement();a.id==ot.TIMECODE_SCALE_ID?i=a.getUint():a.id==ot.DURATION_ID&&(r=a.getFloat())}if(r==null)throw new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.WEBM_DURATION_ELEMENT_MISSING);let s=i/1e9,n=r*s;return{timecodeScale:s,duration:n}}static parseCues_(e,t,i,r,s,n,a,o,c){let d=[],u=()=>s,m=e.createParser(),f=null,g=null;for(;m.hasMoreData();){let _=m.parseElement();if(_.id!=ot.CUE_POINT_ID)continue;let T=ot.parseCuePoint_(_);if(!T)continue;let S=i*T.unscaledTime,b=t+T.relativeOffset;f!=null&&(v.assert(g!=null,"last offset cannot be null"),d.push(new Se(f+a,S+a,u,g,b-1,n,a,o,c))),f=S,g=b}return f!=null&&(v.assert(g!=null,"last offset cannot be null"),d.push(new Se(f+a,r+a,u,g,null,n,a,o,c))),d}static parseCuePoint_(e){let t=e.createParser(),i=t.parseElement();if(i.id!=ot.CUE_TIME_ID)throw p.warning("Not a CueTime element."),new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.WEBM_CUE_TIME_ELEMENT_MISSING);let r=i.getUint(),s=t.parseElement();if(s.id!=ot.CUE_TRACK_POSITIONS_ID)throw p.warning("Not a CueTrackPositions element."),new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.WEBM_CUE_TRACK_POSITIONS_ELEMENT_MISSING);let n=s.createParser(),a=0;for(;n.hasMoreData();){let o=n.parseElement();if(o.id==ot.CUE_CLUSTER_POSITION){a=o.getUint();break}}return{unscaledTime:r,relativeOffset:a}}};l(ot,"EBML_ID",440786851),l(ot,"SEGMENT_ID",408125543),l(ot,"INFO_ID",357149030),l(ot,"TIMECODE_SCALE_ID",2807729),l(ot,"DURATION_ID",17545),l(ot,"CUES_ID",475249515),l(ot,"CUE_POINT_ID",187),l(ot,"CUE_TIME_ID",179),l(ot,"CUE_TRACK_POSITIONS_ID",183),l(ot,"CUE_CLUSTER_POSITION",241);var kn=ot;/*! @license
595
+ * Shaka Player
596
+ * Copyright 2016 Google LLC
597
+ * SPDX-License-Identifier: Apache-2.0
598
+ */var Hi=class y{static createInitSegment(e,t,i){let r=Me.inheritChild(e,t,"Initialization");if(!r)return null;let s=e.representation.getBaseUris(),n=r.attributes.sourceURL;n&&(s=fe.resolveUris(s,[q.htmlUnescape(n)],e.urlParams()));let a=0,o=null,c=I.parseAttr(r,"range",I.parseRange);c&&(a=c.start,o=c.end);let d=()=>s,u=y.createQualityInfo(e),m=e.adaptationSet.encrypted,f=new Tt(d,a,o,u,null,null,i,m);return f.codecs=e.representation.codecs,f.mimeType=e.representation.mimeType,e.periodInfo&&!e.periodInfo.isLastPeriod&&(f.boundaryEnd=e.periodInfo.start+e.periodInfo.duration),f}static createStreamInfo(e,t,i){v.assert(e.representation.segmentBase,"Should only be called with SegmentBase");let r=Number(Me.inheritAttribute(e,y.fromInheritance_,"presentationTimeOffset"))||0,s=Me.inheritAttribute(e,y.fromInheritance_,"timescale"),n=1;s&&(n=I.parsePositiveInt(s)||1);let a=r/n||0,o=y.createInitSegment(e,y.fromInheritance_,i);y.checkSegmentIndexRangeSupport_(e,o);let c=Ne.shallowCloneObject(e);return{endTime:-1,timeline:-1,generateSegmentIndex:()=>y.generateSegmentIndex_(c,t,o,a),timescale:n}}static async generateSegmentIndexFromUris(e,t,i,r,s,n,a){let o=e.presentationTimeline,c=!e.dynamic||!e.periodInfo.isLastPeriod,d=e.periodInfo.start,u=e.periodInfo.duration,m=e.representation.mimeType.split("/")[1],f=t,g=null,_=[f(r,s,n,!1),m=="webm"?f(i.getUris(),i.startByte,i.endByte,!0):null];f=null;let T=await Promise.all(_),S=T[0],b=T[1]||null,E=null,C=d-a,A=d,w=u?d+u:1/0,M=e.representation.getBaseUris(),x=M.length!=r.length||M.some((k,L)=>k!=r[L]);m=="mp4"?E=Pn.parse(S,s,M,i,C,A,w,x):(v.assert(b,"WebM requires init data"),E=kn.parse(S,b,M,i,C,A,w));for(let k of E)k.codecs=e.representation.codecs,k.mimeType=e.representation.mimeType,k.bandwidth=e.bandwidth;return o.notifySegments(E),v.assert(!g,"Should not call generateSegmentIndex twice"),g=new Ze(E),c&&g.fit(A,w,!0),g}static fromInheritance_(e){return e.segmentBase}static computeIndexRange_(e){let t=Me.inheritChild(e,y.fromInheritance_,"RepresentationIndex"),i=Me.inheritAttribute(e,y.fromInheritance_,"indexRange"),r=I.parseRange(i||"");return t&&(r=I.parseAttr(t,"range",I.parseRange,r)),r}static computeIndexUris_(e){let t=Me.inheritChild(e,y.fromInheritance_,"RepresentationIndex"),i=e.representation.getBaseUris();if(t){let r=q.htmlUnescape(t.attributes.sourceURL);r&&(i=fe.resolveUris(i,[r],e.urlParams()))}return i}static checkSegmentIndexRangeSupport_(e,t){if(y.checkSegmentIndexSupport(e,t),!y.computeIndexRange_(e))throw p.error("SegmentBase does not contain sufficient segment information:","the SegmentBase does not contain @indexRange","or a RepresentationIndex element.",e.representation),new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.DASH_NO_SEGMENT_INFO)}static checkSegmentIndexSupport(e,t){let i=R.ContentType,r=e.representation.contentType,s=e.representation.mimeType.split("/")[1];if(r!=i.TEXT&&s!="mp4"&&s!="webm")throw p.error("SegmentBase specifies an unsupported container type.",e.representation),new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.DASH_UNSUPPORTED_CONTAINER);if(s=="webm"&&!t)throw p.error("SegmentBase does not contain sufficient segment information:","the SegmentBase uses a WebM container,","but does not contain an Initialization element.",e.representation),new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.DASH_WEBM_MISSING_INIT)}static generateSegmentIndex_(e,t,i,r){let s=y.computeIndexUris_(e),n=y.computeIndexRange_(e);return v.assert(n,"Index range should not be null!"),y.generateSegmentIndexFromUris(e,t,i,s,n.start,n.end,r)}static createQualityInfo(e){let t=e.representation;return{bandwidth:e.bandwidth,audioSamplingRate:t.audioSamplingRate,codecs:t.codecs,contentType:t.contentType,frameRate:t.frameRate||null,height:t.height||null,mimeType:t.mimeType,channelsCount:t.numChannels,pixelAspectRatio:t.pixelAspectRatio||null,width:t.width||null,label:e.adaptationSet.label||null,roles:e.roles||null,language:e.adaptationSet.language||null}}};/*! @license
599
+ * Shaka Player
600
+ * Copyright 2016 Google LLC
601
+ * SPDX-License-Identifier: Apache-2.0
602
+ */var Dn=class y{static createStreamInfo(e,t,i){v.assert(e.representation.segmentList,"Should only be called with SegmentList");let r=Hi.createInitSegment(e,y.fromInheritance_,i),s=y.parseSegmentListInfo_(e);y.checkSegmentListInfo_(e,s);let n=null,a=null;if(e.period.id&&e.representation.id){let d=e.period.id+","+e.representation.id;a=t.get(d),a&&(n=a.segmentIndex)}let o=y.createSegmentReferences_(e.periodInfo.start,e.periodInfo.duration,s.startNumber,e.representation.getBaseUris,s,r,i,e.representation.mimeType,e.representation.codecs,e.bandwidth,e.urlParams),c=!n;if(n){let d=e.presentationTimeline.getSegmentAvailabilityStart();n.mergeAndEvict(o,d)}else n=new Ze(o);if(e.presentationTimeline.notifySegments(o),!e.dynamic||!e.periodInfo.isLastPeriod){let d=e.periodInfo.start,u=e.periodInfo.duration?e.periodInfo.start+e.periodInfo.duration:1/0;n.fit(d,u,c)}return a&&(a.segmentIndex=n),{endTime:-1,timeline:-1,generateSegmentIndex:()=>((!n||n.isEmpty())&&n.merge(o),Promise.resolve(n)),timescale:s.timescale}}static fromInheritance_(e){return e.segmentList}static parseSegmentListInfo_(e){let t=y.parseMediaSegments_(e),i=Me.parseSegmentInfo(e,y.fromInheritance_),r=i.startNumber;r==0&&(p.warning("SegmentList@startNumber must be > 0"),r=1);let s=0;return i.segmentDuration?s=i.segmentDuration*(r-1):i.timeline&&i.timeline.length>0&&(s=i.timeline[0].start),{segmentDuration:i.segmentDuration,startTime:s,startNumber:r,scaledPresentationTimeOffset:i.scaledPresentationTimeOffset,timescale:i.timescale,timeline:i.timeline,mediaSegments:t}}static checkSegmentListInfo_(e,t){if(!t.segmentDuration&&!t.timeline&&t.mediaSegments.length>1)throw p.warning("SegmentList does not contain sufficient segment information:","the SegmentList specifies multiple segments,","but does not specify a segment duration or timeline.",e.representation),new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.DASH_NO_SEGMENT_INFO);if(!t.segmentDuration&&!e.periodInfo.duration&&!t.timeline&&t.mediaSegments.length==1)throw p.warning("SegmentList does not contain sufficient segment information:","the SegmentList specifies one segment,","but does not specify a segment duration, period duration,","or timeline.",e.representation),new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.DASH_NO_SEGMENT_INFO);if(t.timeline&&t.timeline.length==0)throw p.warning("SegmentList does not contain sufficient segment information:","the SegmentList has an empty timeline.",e.representation),new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.DASH_NO_SEGMENT_INFO)}static createSegmentReferences_(e,t,i,r,s,n,a,o,c,d,u){let m=s.mediaSegments.length;s.timeline&&s.timeline.length!=s.mediaSegments.length&&(m=Math.min(s.timeline.length,s.mediaSegments.length),p.warning("The number of items in the segment timeline and the number of ","segment URLs do not match, truncating",s.mediaSegments.length,"to",m));let f=e-s.scaledPresentationTimeOffset,g=e,_=t?e+t:1/0,T=[],S=s.startTime;for(let b=0;b<m;b++){let E=s.mediaSegments[b],C=S,A;s.segmentDuration!=null?A=C+s.segmentDuration:s.timeline?A=s.timeline[b].end:(v.assert(s.mediaSegments.length==1&&t,"There should be exactly one segment with a Period duration."),A=C+t);let w=null,M=()=>(w==null&&(w=fe.resolveUris(r(),[E.mediaUri],u())),w),x=new Se(e+C,e+A,M,E.start,E.end,n,f,g,_,[],"",null,null,Se.Status.AVAILABLE,a);x.codecs=c,x.mimeType=o,x.bandwidth=d,T.push(x),S=A}return T}static parseMediaSegments_(e){return[e.representation.segmentList,e.adaptationSet.segmentList,e.period.segmentList].filter(it.isNotNull).map(i=>I.findChildren(i,"SegmentURL")).reduce((i,r)=>i.length>0?i:r).map(i=>{i.attributes.indexRange&&!e.indexRangeWarningGiven&&(e.indexRangeWarningGiven=!0,p.warning("We do not support the SegmentURL@indexRange attribute on SegmentList. We only use the SegmentList@duration attribute or SegmentTimeline, which must be accurate."));let r=q.htmlUnescape(i.attributes.media),s=I.parseAttr(i,"mediaRange",I.parseRange,{start:0,end:null});return{mediaUri:r,start:s.start,end:s.end}})}};/*! @license
603
+ * Shaka Player
604
+ * Copyright 2016 Google LLC
605
+ * SPDX-License-Identifier: Apache-2.0
606
+ */var fr=class y{static createStreamInfo(e,t,i,r,s,n,a,o,c,d){v.assert(e.representation.segmentTemplate,"Should only be called with SegmentTemplate or segment info defined"),!c&&!e.representation.initialization&&(e.representation.initialization=Me.inheritAttribute(e,y.fromInheritance_,"initialization"));let u=e.representation.initialization?y.createInitSegment_(e,a):null,m=y.parseSegmentTemplateInfo_(e);y.checkSegmentTemplateInfo_(e,m);let f=Ne.shallowCloneObject(e);if(m.indexTemplate)return Hi.checkSegmentIndexSupport(e,u),{endTime:-1,timeline:-1,generateSegmentIndex:()=>y.generateSegmentIndexFromIndexTemplate_(f,t,u,m),timescale:m.timescale};if(m.segmentDuration){if(!r&&e.adaptationSet.contentType!=="image"&&e.adaptationSet.contentType!=="text"){let g=e.periodInfo.start,_=e.period.id,T=e.periodInfo.duration,S=_!=null&&n.get(_)||T,b=S?g+S:1/0;e.presentationTimeline.notifyMaxSegmentDuration(m.segmentDuration),e.presentationTimeline.notifyPeriodDuration(g,b)}return{endTime:-1,timeline:-1,generateSegmentIndex:()=>y.generateSegmentIndexFromDuration_(f,m,s,u,n,a,o,e.representation.segmentSequenceCadence),timescale:m.timescale}}else{let g=null,_=null,T=null;e.period.id&&e.representation.id&&(_=e.period.id+","+e.representation.id,T=i.get(_),T&&(g=T.segmentIndex));let S=e.periodInfo.start,b=e.periodInfo.duration?S+e.periodInfo.duration:1/0;if(p.debug(`New manifest ${S} - ${b}`),g){let M=g;M.appendTemplateInfo(m,S,b,u,e.dynamic);let x=e.presentationTimeline.getSegmentAvailabilityStart();M.evict(x)}else{let M=0,x=-1;if(e.period.id!=null&&e.representation.id!=null){let k=d.get(e.period.id);if(k)x=k.timeline;else for(let L of d.values()){let V=R.GAP_OVERLAP_TOLERANCE_SECONDS;if(Math.abs(m.scaledPresentationTimeOffset-L.endTime)<=V&&L.reps.includes(e.representation.id)){x=L.timeline;break}else L.timeline>=M&&(M=L.timeline+1)}}x==-1&&(x=M),p.debug(`Creating TSI with end ${b}`),g=new Fs(e.dynamic,m,e.representation.originalId,e.bandwidth,e.representation.getBaseUris,e.urlParams,S,b,u,a,e.representation.segmentSequenceCadence,x)}if(m.timeline&&e.adaptationSet.contentType!=="image"&&e.adaptationSet.contentType!=="text"){let x=g.getTimeline();e.presentationTimeline.notifyTimeRange(x,S)}T&&e.dynamic&&(T.segmentIndex=g);let E=m.timeline,C=E&&E[E.length-1],A=C?C.end+m.scaledPresentationTimeOffset:-1,w=-1;return g instanceof Fs&&(w=g.continuityTimeline()),{endTime:A,timeline:w,generateSegmentIndex:()=>(g instanceof Fs&&g.isEmpty()&&g.appendTemplateInfo(m,S,b,u,e.dynamic),Promise.resolve(g)),timescale:m.timescale}}}static modifyTimepoints(e,t){let i=Me.inheritChild(e,y.fromInheritance_,"SegmentTimeline");v.assert(i,"timeline node not found");let r=I.findChildren(i,"S");v.assert(r,"timepoints should exist"),I.modifyNodes(r,t),i.children=r}static removeTimepoints(e){let t=Me.inheritChild(e,y.fromInheritance_,"SegmentTimeline");v.assert(t,"timeline node not found"),t.children=[]}static fromInheritance_(e){return e.segmentTemplate}static parseSegmentTemplateInfo_(e){let t=Me.parseSegmentInfo(e,y.fromInheritance_),i=Me.inheritAttribute(e,y.fromInheritance_,"media"),r=Me.inheritAttribute(e,y.fromInheritance_,"index"),s=Me.inheritAttribute(e,y.fromInheritance_,"k"),n=0;return s&&(n=parseInt(s,10)),{unscaledSegmentDuration:t.unscaledSegmentDuration,segmentDuration:t.segmentDuration,timescale:t.timescale,startNumber:t.startNumber,scaledPresentationTimeOffset:t.scaledPresentationTimeOffset,unscaledPresentationTimeOffset:t.unscaledPresentationTimeOffset,timeline:t.timeline,mediaTemplate:i&&q.htmlUnescape(i),indexTemplate:r,mimeType:e.representation.mimeType,codecs:e.representation.codecs,bandwidth:e.bandwidth,numChunks:n}}static checkSegmentTemplateInfo_(e,t){let i=0;if(i+=t.indexTemplate?1:0,i+=t.timeline?1:0,i+=t.segmentDuration?1:0,i==0)throw p.error("SegmentTemplate does not contain any segment information:","the SegmentTemplate must contain either an index URL template","a SegmentTimeline, or a segment duration.",e.representation),new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.DASH_NO_SEGMENT_INFO);if(i!=1&&(p.warning("SegmentTemplate contains multiple segment information sources:","the SegmentTemplate should only contain an index URL template,","a SegmentTimeline or a segment duration.",e.representation),t.indexTemplate?(p.info("Using the index URL template by default."),t.timeline=null,t.unscaledSegmentDuration=null,t.segmentDuration=null):(v.assert(t.timeline,"There should be a timeline"),p.info("Using the SegmentTimeline by default."),t.unscaledSegmentDuration=null,t.segmentDuration=null)),!t.indexTemplate&&!t.mediaTemplate)throw p.error("SegmentTemplate does not contain sufficient segment information:","the SegmentTemplate's media URL template is missing.",e.representation),new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.DASH_NO_SEGMENT_INFO)}static generateSegmentIndexFromIndexTemplate_(e,t,i,r){v.assert(r.indexTemplate,"must be using index template");let s=Me.fillUriTemplate(r.indexTemplate,e.representation.originalId,null,null,e.bandwidth||null,null),n=fe.resolveUris(e.representation.getBaseUris(),[s]);return Hi.generateSegmentIndexFromUris(e,t,i,n,0,null,r.scaledPresentationTimeOffset)}static generateSegmentIndexFromDuration_(e,t,i,r,s,n,a,o){v.assert(t.mediaTemplate,"There should be a media template with duration");let c=e.presentationTimeline,d=e.periodInfo.start,u=e.period.id,m=e.periodInfo.duration,f=()=>{let H=u!=null&&s.get(u)||m;return H?d+H:1/0},g=t.segmentDuration;v.assert(g!=null,"Segment duration must not be null!");let _=t.startNumber,T=t.mediaTemplate,S=e.bandwidth||null,b=e.representation.originalId,E=e.representation.getBaseUris,C=e.urlParams,A=d-t.scaledPresentationTimeOffset,w=()=>[Math.max(c.getSegmentAvailabilityStart(),d),Math.min(c.getSegmentAvailabilityEnd(),f())],M=()=>{let H=w();v.assert(H.every(isFinite),"Available presentation times must be finite!"),v.assert(H.every(W=>W>=0),"Available presentation times must be positive!"),v.assert(g!=null,"Segment duration must not be null!");let J=H.map(W=>W-d),Z=[Math.ceil(J[0]/g),Math.ceil(J[1]/g)-1];return e.representation.availabilityTimeOffset&&Z[1]++,Z.map(W=>W+_)},x=M(),k=e.dynamic?Math.max(x[0],x[1]-i+1):x[0],L=a||x[1],V=H=>{v.assert(g!=null,"Segment duration must not be null!");let J=H-_,Z=J*g,ce=t.unscaledSegmentDuration;v.assert(ce!=null,"Segment duration must not be null!");let W=J*ce;"BigInt"in window&&W>Number.MAX_SAFE_INTEGER&&(W=BigInt(J)*BigInt(ce));let z=Z+d,ge=z+g,Y=Math.min(ge,f());v.assert(z<Y,"Generated a segment outside of the period!");let X=[],O=t.numChunks;if(O){let tt=(Y-z)/O;for(let _t=0;_t<O;_t++){let bt=z+tt*_t,yt=bt+tt,xt=_t,mt=()=>{let Ft=Me.fillUriTemplate(T,b,H,xt,S,W);return fe.resolveUris(E(),[Ft],C())},Qe=new Se(bt,yt,mt,0,null,r,A,d,f(),[],"",null,null,Se.Status.AVAILABLE,n);Qe.codecs=e.representation.codecs,Qe.mimeType=e.representation.mimeType,o==0?_t>0&&Qe.markAsNonIndependent():_t%o!=0&&Qe.markAsNonIndependent(),X.push(Qe)}}let $=()=>{if(O)return[];let tt=Me.fillUriTemplate(T,b,H,null,S,W);return fe.resolveUris(E(),[tt],C())},Ie=new Se(z,Y,$,0,null,r,A,d,f(),X,"",null,null,Se.Status.AVAILABLE,n,X.length>0);return Ie.codecs=e.representation.codecs,Ie.mimeType=e.representation.mimeType,Ie.bandwidth=e.bandwidth,Ie.trueEndTime=ge,Ie},ee=new y.FixedDurationSegmentIndex_(k,L,_,d,g,V),oe=c.getSegmentAvailabilityEnd()<f(),le=c.isLive();if(oe||le){let H=Math.max(k,L+1),J=g;e.representation.availabilityTimeOffset&&(J=.1),ee.updateEvery(J,()=>{let Z=c.getSegmentAvailabilityStart();ee.evict(Z);let[ce,W]=M(),z=[];for(;H<=W;){let ge=V(H);z.push(ge),H++}return Z>f()&&!z.length?null:z})}return Promise.resolve(ee)}static createInitSegment_(e,t){let i=e.representation.initialization;if(i||(i=Me.inheritAttribute(e,y.fromInheritance_,"initialization")),!i)return null;i=q.htmlUnescape(i);let r=e.representation.originalId,s=e.bandwidth||null,n=e.representation.getBaseUris,a=e.urlParams,o=()=>{v.assert(i,"Should have returned earlier");let m=Me.fillUriTemplate(i,r,null,null,s,null);return fe.resolveUris(n(),[m],a())},c=Hi.createQualityInfo(e),d=e.adaptationSet.encrypted,u=new Tt(o,0,null,c,null,null,t,d);return u.codecs=e.representation.codecs,u.mimeType=e.representation.mimeType,e.periodInfo&&!e.periodInfo.isLastPeriod&&(u.boundaryEnd=e.periodInfo.start+e.periodInfo.duration),u}};fr.FixedDurationSegmentIndex_=class extends Ze{constructor(y,e,t,i,r,s){let n=Math.max(0,e-y+1);super(new Array(n)),this.minPosition_=y,this.startNumber_=t,this.periodStart_=i,this.segmentDuration_=r,this.createReference_=s}find(y){let e=this.references.length-1;if(e<0)return null;let t=this.get(this.numEvicted_);if(!t)return null;if(y<t.startTime)return this.numEvicted_;let r=Math.floor((y-this.periodStart_)/this.segmentDuration_)+this.startNumber_-this.minPosition_;if(r<this.numEvicted_)return null;let s=this.get(r);if(!s)return null;let a=r-this.numEvicted_<e?this.get(r+1):null,o=a?a.startTime:s.endTime;return y>=s.startTime&&y<o?r:null}get(y){let e=y-this.numEvicted_;if(e<0||e>=this.references.length)return null;let t=this.references[e];return t||(t=this.createReference_(this.minPosition_+y),this.references[e]=t),t}earliestReference(){return this.get(this.numEvicted_)}forEachTopLevelReference(y){for(let e=0;e<this.references.length;e++){let t=this.get(e+this.numEvicted_);t&&y(t)}}evict(y){if(this.getIsImmutable())return;let e=this.references.length-1;if(e<0)return;let t=this.get(this.numEvicted_);if(!t||t.endTime>y)return;let i=this.numEvicted_+e,r=this.get(i),s=r&&r.endTime<=y?this.references.length:Math.max(0,Math.min(this.references.length,Math.floor((y-this.periodStart_)/this.segmentDuration_+this.startNumber_-1)-(this.minPosition_+this.numEvicted_)+1));s>0&&(this.numEvicted_+=s,this.references=this.references.slice(s))}};var Fs=class y extends Ze{constructor(t,i,r,s,n,a,o,c,d,u,m,f){super([]);l(this,"dynamic_");l(this,"templateInfo_");l(this,"representationId_");l(this,"bandwidth_");l(this,"getBaseUris_");l(this,"urlParams_");l(this,"periodStart_");l(this,"periodEnd_");l(this,"initSegmentReference_");l(this,"aesKey_");l(this,"segmentSequenceCadence_");l(this,"timeline_");l(this,"references");this.dynamic_=t,this.templateInfo_=i,this.representationId_=r,this.bandwidth_=s,this.getBaseUris_=n,this.urlParams_=a,this.periodStart_=o,this.periodEnd_=c,this.initSegmentReference_=d,this.aesKey_=u,this.segmentSequenceCadence_=m,this.timeline_=f,this.fitTimeline()}getNumReferences(){return this.templateInfo_?this.templateInfo_.timeline.length:0}release(){super.release(),this.templateInfo_=null}evict(t){if(!this.templateInfo_)return;p.debug(`${this.representationId_} Evicting at ${t}`);let i=this.templateInfo_.timeline;if(!i)return;let r=0;for(;r<i.length&&i[r].end+this.periodStart_<=t;)r++;r>0&&(this.templateInfo_.timeline=i.slice(r),this.references.length>=r&&(this.references=this.references.slice(r)),this.numEvicted_+=r,this.getNumReferences()===0&&this.release())}appendTemplateInfo(t,i,r,s,n){if(this.updateInitSegmentReference(s),this.dynamic_=n,!this.templateInfo_)this.templateInfo_=t,this.periodStart_=i,this.periodEnd_=r;else{if(this.templateInfo_.unscaledPresentationTimeOffset!==t.unscaledPresentationTimeOffset){let c=t.unscaledPresentationTimeOffset-this.templateInfo_.unscaledPresentationTimeOffset;p.error("Possibly suboptimal manifest detected!","presentationTimeOffset is "+t.unscaledPresentationTimeOffset,"which differs "+c+" from the cache template.");for(let d=0;d<t.timeline.length;d++){let u=t.timeline[d];u.unscaledStart+=c,u.unscaledEnd+=c,u.start=(u.unscaledStart+c)/t.timescale,u.end=(u.unscaledEnd+c)/t.timescale}}this.templateInfo_.mediaTemplate!==t.mediaTemplate&&(this.templateInfo_.mediaTemplate=t.mediaTemplate);let a=this.templateInfo_.timeline,o;if(a.length){let c=a[a.length-1];o=t.timeline.filter(d=>d.end>c.end)}else o=t.timeline.slice();o.length>0&&(p.debug(`Appending ${o.length} entries`),this.templateInfo_.timeline.push(...o)),this.periodEnd_!==r&&(this.periodEnd_=r)}this.fitTimeline()}updateInitSegmentReference(t){if(this.initSegmentReference_!==t){this.initSegmentReference_=t;for(let i of this.references)i&&i.updateInitSegmentReference(t)}}isBeforeFirstEntry(t){if(this.templateInfo_&&this.templateInfo_.timeline&&this.templateInfo_.timeline.length){let r=this.templateInfo_.timeline;return t<r[0].start+this.periodStart_}else return!1}fitTimeline(){if(!this.templateInfo_||this.getIsImmutable())return;let t=this.templateInfo_.timeline;v.assert(t,"Timeline should be non-null!");let i=[];for(let r of t)r.start>=this.periodEnd_||r.end<=0||i.push(r);this.templateInfo_.timeline=i,this.evict(this.periodStart_)}getTimeline(){if(!this.templateInfo_)return[];let t=this.templateInfo_.timeline;return v.assert(t,"Timeline should be non-null!"),t}find(t){if(p.debug(`Find ${t}`),this.isBeforeFirstEntry(t))return this.numEvicted_;if(!this.templateInfo_)return null;let i=this.templateInfo_.timeline;if(t<this.periodStart_||t>=this.periodEnd_)return null;let r=i.length-1,s=ye.binarySearch(i,c=>c.start+this.periodStart_<=t)-1;if(s<0)return null;let n=i[s],a=n.start+this.periodStart_,o;return s<r?o=i[s+1].start+this.periodStart_:this.periodEnd_===1/0?o=n.end+this.periodStart_:o=this.periodEnd_,t>=a&&t<o?s+this.numEvicted_:null}get(t){let i=t-this.numEvicted_;if(i<0||i>=this.getNumReferences()||!this.templateInfo_)return null;let r=this.references[i];if(!r){let s=this.templateInfo_.timeline[i],n=s.segmentPosition,a=s.unscaledStart+this.templateInfo_.unscaledPresentationTimeOffset,o=this.periodStart_-this.templateInfo_.scaledPresentationTimeOffset,c=this.periodStart_+s.end,d=c;i===this.getNumReferences()-1&&this.periodEnd_!==1/0&&(this.dynamic_&&Math.abs(d-this.periodEnd_)>.1?d=Math.min(d,this.periodEnd_):d=this.periodEnd_);let u=this.templateInfo_.codecs,m=this.templateInfo_.mimeType,f=this.templateInfo_.bandwidth,g=[],_=!1;if(s.partialSegments&&this.templateInfo_&&this.templateInfo_.mediaTemplate&&(_=this.templateInfo_.mediaTemplate.includes("$SubNumber$")),_){let S=(s.end-s.start)/s.partialSegments;for(let b=0;b<s.partialSegments;b++){let E=s.start+S*b,C=E+S,A=b,w=null,M=()=>this.templateInfo_?(w==null&&(w=y.createUris_(this.templateInfo_.mediaTemplate,this.representationId_,n,this.bandwidth_,a,A,this.getBaseUris_,this.urlParams_)),w):[],x=new Se(this.periodStart_+E,this.periodStart_+C,M,0,null,this.initSegmentReference_,o,this.periodStart_,this.periodEnd_,[],"",null,null,Se.Status.AVAILABLE,this.aesKey_);x.codecs=u,x.mimeType=m,x.bandwidth=f,this.segmentSequenceCadence_==0?b>0&&x.markAsNonIndependent():b%this.segmentSequenceCadence_!=0&&x.markAsNonIndependent(),g.push(x)}}let T=()=>g.length>0||!this.templateInfo_?[]:y.createUris_(this.templateInfo_.mediaTemplate,this.representationId_,n,this.bandwidth_,a,null,this.getBaseUris_,this.urlParams_);r=new Se(this.periodStart_+s.start,d,T,0,null,this.initSegmentReference_,o,this.periodStart_,this.periodEnd_,g,"",null,null,Se.Status.AVAILABLE,this.aesKey_,g.length>0),r.codecs=u,r.mimeType=m,r.trueEndTime=c,r.bandwidth=f,this.references[i]=r}return r}forEachTopLevelReference(t){this.fitTimeline();for(let i=0;i<this.getNumReferences();i++){let r=this.get(i+this.numEvicted_);r&&t(r)}}static createUris_(t,i,r,s,n,a,o,c){let d=Me.fillUriTemplate(t,i,r,a,s||null,n);return fe.resolveUris(o(),[d],c())}continuityTimeline(){return this.timeline_}};/*! @license
607
+ * Shaka Player
608
+ * Copyright 2016 Google LLC
609
+ * SPDX-License-Identifier: Apache-2.0
610
+ */var ss=class{constructor(e){l(this,"config_");l(this,"playerInterface_");l(this,"operationManager_");l(this,"baseUris_");l(this,"defaultPathwayId_");l(this,"pathwayPriority_");l(this,"lastPathwayUsed_");l(this,"pathwayClones_");l(this,"lastTTL_");l(this,"locations_");l(this,"bannedLocations_");l(this,"updateTimer_");l(this,"manifestType_");this.config_=null,this.playerInterface_=e,this.operationManager_=new gi,this.baseUris_=[],this.defaultPathwayId_=null,this.pathwayPriority_=[],this.lastPathwayUsed_=null,this.pathwayClones_=[],this.lastTTL_=300,this.locations_=new Map,this.bannedLocations_=new Map,this.updateTimer_=null,this.manifestType_=me.UNKNOWN}configure(e){this.config_=e}destroy(){return this.config_=null,this.playerInterface_=null,this.baseUris_=[],this.defaultPathwayId_=null,this.pathwayPriority_=[],this.pathwayClones_=[],this.locations_.clear(),this.updateTimer_!=null&&(this.updateTimer_.stop(),this.updateTimer_=null),this.operationManager_.destroy()}setManifestType(e){this.manifestType_=e}setBaseUris(e){this.baseUris_=e}setDefaultPathwayId(e){this.defaultPathwayId_=e}async requestInfo(e){let t=fe.resolveUris(this.baseUris_,[this.addQueryParams_(e)]),i=K.RequestType.CONTENT_STEERING,r=K.makeRequest(t,this.config_.retryParameters),s=this.playerInterface_.networkingEngine.request(i,r);this.operationManager_.manage(s);try{let n=await s.promise,a=q.fromUTF8(n.data),o=JSON.parse(a);o.VERSION==1&&this.processManifest_(o,n.uri)}catch(n){if(n&&n.code==h.Code.OPERATION_ABORTED)return;this.updateTimer_!=null&&(this.updateTimer_.stop(),this.updateTimer_=null),this.updateTimer_=new ae(()=>{this.requestInfo(e)}),this.updateTimer_.tickAfter(this.lastTTL_)}}addQueryParams_(e){if(!this.pathwayPriority_.length)return e;let t=new Map,i=this.lastPathwayUsed_||this.pathwayPriority_[0],r=Math.round(this.playerInterface_.getBandwidthEstimate());return this.manifestType_==me.DASH?(t.set("_DASH_pathway",i),t.set("_DASH_throughput",String(r))):this.manifestType_==me.HLS&&(t.set("_HLS_pathway",i),t.set("_HLS_throughput",String(r))),fe.appendParams(e,t)}processManifest_(e,t){this.updateTimer_!=null&&(this.updateTimer_.stop(),this.updateTimer_=null);let i=e["RELOAD-URI"]||t;this.updateTimer_=new ae(()=>{this.requestInfo(i)});let r=e.TTL;r&&(this.lastTTL_=r),this.updateTimer_.tickAfter(this.lastTTL_),this.pathwayPriority_=e["PATHWAY-PRIORITY"]||[],this.pathwayClones_=e["PATHWAY-CLONES"]||[]}clearPreviousLocations(){this.locations_.clear()}addLocation(e,t,i){let r=this.locations_.get(e);r||(r=new Map),r.set(t,i),this.locations_.set(e,r)}banLocation(e){let t=Date.now()+6e4;this.bannedLocations_.set(e,t)}getLocations(e,t=!1){let i=this.locations_.get(e)||new Map,r=[];for(let a of this.pathwayPriority_){let o=i.get(a);if(o)r.push({pathwayId:a,location:o});else{let c=this.pathwayClones_.find(d=>d.ID==a);if(c){let d=i.get(c["BASE-ID"]);if(d)if(c["URI-REPLACEMENT"].HOST){let u=fe.setDomain(d,c["URI-REPLACEMENT"].HOST);r.push({pathwayId:a,location:u})}else r.push({pathwayId:a,location:d})}}}let s=Date.now();for(let a of this.bannedLocations_.keys()){let o=this.bannedLocations_.get(a);s>o&&this.bannedLocations_.delete(a)}r=r.filter(a=>{let o=fe.getDomain(a.location);for(let c of this.bannedLocations_.keys())if(c.includes(o))return!1;return!0}),r.length&&(this.lastPathwayUsed_=r[0].pathwayId);let n=r.map(a=>a.location);if(!n.length&&this.defaultPathwayId_)for(let a of this.defaultPathwayId_.split(",")){let o=i.get(a);o&&(this.lastPathwayUsed_=this.defaultPathwayId_,n.push(o))}if(!n.length)for(let a of i.values())n.push(a);return t?n:fe.resolveUris(this.baseUris_,n)}};/*! @license
611
+ * Shaka Player
612
+ * Copyright 2016 Google LLC
613
+ * SPDX-License-Identifier: Apache-2.0
614
+ */var re=class re{constructor(){l(this,"variants_");l(this,"audioStreams_");l(this,"videoStreams_");l(this,"textStreams_");l(this,"imageStreams_");l(this,"useStreamOnce_");l(this,"usedPeriodIds_");l(this,"streamCollections_");this.variants_=[],this.audioStreams_=[],this.videoStreams_=[],this.textStreams_=[],this.imageStreams_=[],this.useStreamOnce_=!1,this.usedPeriodIds_=new Set;let e=R.ContentType;this.streamCollections_=new Map().set(e.AUDIO,this.audioStreams_).set(e.VIDEO,this.videoStreams_).set(e.TEXT,this.textStreams_).set(e.IMAGE,this.imageStreams_)}release(){let e=this.audioStreams_.concat(this.videoStreams_,this.textStreams_,this.imageStreams_);for(let t of e)t.segmentIndex&&t.segmentIndex.release();this.audioStreams_=[],this.videoStreams_=[],this.textStreams_=[],this.imageStreams_=[],this.variants_=[],this.useStreamOnce_=!1,this.usedPeriodIds_.clear(),this.streamCollections_.clear()}getVariants(){return this.variants_}getTextStreams(){return this.textStreams_.slice()}getImageStreams(){return this.imageStreams_}deleteStream(e,t){if(!e)return;let i=this.streamCollections_.get(e.type)||[];for(let r of i){re.removeFromMatchedStreams_(r,e);let s=re.getOptionalStreams(r);for(let n of s)re.removeFromMatchedStreams_(n,e)}e.segmentIndex&&e.closeSegmentIndex(),this.usedPeriodIds_.delete(t)}static removeFromMatchedStreams_(e,t){var i;e.matchedStreams=(i=e.matchedStreams)==null?void 0:i.filter(r=>r!==t)}static toStreamMap_(e,t){return new Map(e.map(i=>[t(i),i]))}getStreamsPerPeriod_(e,t){let i=R.ContentType,r=[],s=[],n=[],a=[];for(let o of e){let c=re.toStreamMap_(o.audioStreams,re.generateAudioKey_),d=re.toStreamMap_(o.videoStreams,re.generateVideoKey_),u=re.toStreamMap_(o.textStreams,re.generateTextKey_),m=re.toStreamMap_(o.imageStreams,re.generateImageKey_);if(t){let f=re.dummyStream_(i.TEXT);u.set(re.generateTextKey_(f),f);let g=re.dummyStream_(i.IMAGE);m.set(re.generateImageKey_(g),g)}r.push(c),s.push(d),n.push(u),a.push(m)}return{audioStreamsPerPeriod:r,videoStreamsPerPeriod:s,textStreamsPerPeriod:n,imageStreamsPerPeriod:a}}async combinePeriods(e,t,i=!1){let r=R.ContentType;if(!t&&e.length==1){let{audioStreamsPerPeriod:a,videoStreamsPerPeriod:o,textStreamsPerPeriod:c,imageStreamsPerPeriod:d}=this.getStreamsPerPeriod_(e,!1);this.audioStreams_=Array.from(a[0].values()),this.videoStreams_=Array.from(o[0].values()),this.textStreams_=Array.from(c[0].values()),this.imageStreams_=Array.from(d[0].values())}else{let a=i?this.usedPeriodIds_.size:0,o=-1;for(let f=0;f<e.length;f++){let g=e[f];this.usedPeriodIds_.has(g.id)||(this.usedPeriodIds_.add(g.id),o==-1&&(o=f))}if(o==-1)return;let{audioStreamsPerPeriod:c,videoStreamsPerPeriod:d,textStreamsPerPeriod:u,imageStreamsPerPeriod:m}=this.getStreamsPerPeriod_(e,!0);await Promise.all([this.combine_(this.audioStreams_,c,o,re.cloneStream_,re.concatenateStreams_,a),this.combine_(this.videoStreams_,d,o,re.cloneStream_,re.concatenateStreams_,a),this.combine_(this.textStreams_,u,o,re.cloneStream_,re.concatenateStreams_,a),this.combine_(this.imageStreams_,m,o,re.cloneStream_,re.concatenateStreams_,a)])}let s=0,n=[];if(!this.videoStreams_.length||!this.audioStreams_.length){let a=this.videoStreams_.length?this.videoStreams_:this.audioStreams_;for(let o of a){let c=s++,d=o.bandwidth||0;o.dependencyStream&&(d+=o.dependencyStream.bandwidth||0),n.push({id:c,language:o.language,disabledUntilTime:0,primary:o.primary,audio:o.type==r.AUDIO?o:null,video:o.type==r.VIDEO?o:null,bandwidth:d,drmInfos:o.drmInfos,allowedByApplication:!0,allowedByKeySystem:!0,decodingInfos:[]})}}else for(let a of this.audioStreams_)for(let o of this.videoStreams_){let c=de.getCommonDrmInfos(a.drmInfos,o.drmInfos);if(a.drmInfos.length&&o.drmInfos.length&&!c.length){p.warning("Incompatible DRM in audio & video, skipping variant creation.",a,o);continue}let d=(a.bandwidth||0)+(o.bandwidth||0);a.dependencyStream&&(d+=a.dependencyStream.bandwidth||0),o.dependencyStream&&(d+=o.dependencyStream.bandwidth||0);let u=s++;n.push({id:u,language:a.language,disabledUntilTime:0,primary:a.primary,audio:a,video:o,bandwidth:d,drmInfos:c,allowedByApplication:!0,allowedByKeySystem:!0,decodingInfos:[]})}this.variants_=n}static async combineDbStreams(e){let t=R.ContentType;if(e.length==1)return e[0];let i=e.map(f=>new Map(f.filter(g=>g.type===t.AUDIO).map(g=>[re.generateAudioKey_(g),g]))),r=e.map(f=>new Map(f.filter(g=>g.type===t.VIDEO).map(g=>[re.generateVideoKey_(g),g]))),s=e.map(f=>new Map(f.filter(g=>g.type===t.TEXT).map(g=>[re.generateTextKey_(g),g]))),n=e.map(f=>new Map(f.filter(g=>g.type===t.IMAGE).map(g=>[re.generateImageKey_(g),g])));for(let f of s){let g=re.dummyStreamDB_(t.TEXT);f.set(re.generateTextKey_(g),g)}for(let f of n){let g=re.dummyStreamDB_(t.IMAGE);f.set(re.generateImageKey_(g),g)}let a=new re,[o,c,d,u]=await Promise.all([i,r,s,n].map(f=>a.combine_([],f,0,re.cloneStreamDB_,re.concatenateStreamDBs_,0))),m=0;if(!c.length||!o.length){let f=c.concat(o);for(let g of f)g.variantIds=[m++]}else for(let f of o)for(let g of c){let _=m++;g.variantIds.push(_),f.variantIds.push(_)}return c.concat(o).concat(d).concat(u)}async combine_(e,t,i,r,s,n){let a=[];for(let o=0;o<t.length;o++)o>=i?a.push(new Set(t[o].values())):a.push(new Set);for(let o of e)if(!await this.extendExistingOutputStream_(o,t,i,s,a,n))throw new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.PERIOD_FLATTENING_FAILED);for(let o of a)for(let c of o){let d=this.createNewOutputStream_(e,c,t,r,s,a);d&&e.push(d)}for(let o of a)for(let c of o)if(!(re.isDummy_(c)||!e.some(u=>this.areAVStreamsCompatible_(c,u))))throw p.error("Unused stream in period-flattening!",c,e),new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.PERIOD_FLATTENING_FAILED);return e}async extendExistingOutputStream_(e,t,i,r,s,n){return this.findMatchesInAllPeriods_(t,e,n>0),v.assert(e.createSegmentIndex,"outputStream should be a Stream type!"),e.matchedStreams?(e.segmentIndex&&await re.extendOutputSegmentIndex_(e,i+n),re.extendOutputStream_(e,i,r,s,n),!0):(p.error("No matches extending output stream!",e,t),!1)}static async extendOutputSegmentIndex_(e,t){let i=[],r=e.matchedStreams;v.assert(r,"matched streams should be valid");for(let s=t;s<r.length;s++){let n=r[s];i.push(n.createSegmentIndex());let a=re.getOptionalStreams(n);for(let o of a)o.segmentIndex||i.push(o.createSegmentIndex())}if(await Promise.all(i),e.segmentIndex instanceof Mi)for(let s=t;s<r.length;s++){let n=r[s];v.assert(n.segmentIndex,"stream should have a segmentIndex."),n.segmentIndex&&e.segmentIndex.appendSegmentIndex(n.segmentIndex)}}createNewOutputStream_(e,t,i,r,s,n){if(re.isDummy_(t))return null;let a=r(t);return this.findMatchesInAllPeriods_(i,a),a.createSegmentIndex&&(a.createSegmentIndex=async()=>{a.segmentIndex||(a.segmentIndex=new Mi,await re.extendOutputSegmentIndex_(a,0))},a.closeSegmentIndex=()=>{if(a.segmentIndex&&(a.segmentIndex.release(),a.segmentIndex=null),a.matchedStreams)for(let o of a.matchedStreams)o.segmentIndex&&!re.isStreamActivelyUsed_(o,a,e)&&(o.segmentIndex.release(),o.segmentIndex=null)}),!a.matchedStreams||!a.matchedStreams.length?null:(re.extendOutputStream_(a,0,s,n,0),a)}static extendOutputStream_(e,t,i,r,s){let n=R.ContentType,a=e.matchedStreams;v.assert(e.matchedStreams,"matchedStreams should be non-null");let o=t+s;for(let c=o;c<a.length;c++){let d=a[c];i(e,d);let u=!0;if(e.type==n.AUDIO&&ve.relatedness(e.language,d.language)==0&&(u=!1),u){let m=r[c-s];if(m&&m.delete(d),d.fullMimeTypes)for(let f of d.fullMimeTypes.values())e.fullMimeTypes.add(f)}}}static cloneStream_(e){let t=Object.assign({},e);return t.originalId=null,t.createSegmentIndex=()=>Promise.resolve(),t.closeSegmentIndex=()=>{},t.roles=t.roles.slice(),t.segmentIndex=null,t.emsgSchemeIdUris=[],t.keyIds=new Set(e.keyIds),t.closedCaptions=e.closedCaptions?new Map(e.closedCaptions):null,t.trickModeVideo=null,t.dependencyStream=null,t}static cloneStreamDB_(e){let t=Object.assign({},e);return t.roles=t.roles.slice(),t.keyIds=new Set(e.keyIds),t.segments=[],t.variantIds=[],t.closedCaptions=e.closedCaptions?new Map(e.closedCaptions):null,t}static combineArrays_(e,t){e||(e=[]);for(let i of t)e.includes(i)||e.push(i);return e}static concatenateStreams_(e,t){e.roles=re.combineArrays_(e.roles,t.roles),t.emsgSchemeIdUris&&(e.emsgSchemeIdUris=re.combineArrays_(e.emsgSchemeIdUris,t.emsgSchemeIdUris));for(let r of t.keyIds)e.keyIds.add(r);if(e.originalId==null)e.originalId=t.originalId;else{let r=t.originalId||"";r&&!e.originalId.endsWith(r)&&(e.originalId+=","+r)}let i=de.getCommonDrmInfos(e.drmInfos,t.drmInfos);if(t.drmInfos.length&&e.drmInfos.length&&!i.length)throw new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.INCONSISTENT_DRM_ACROSS_PERIODS);if(e.drmInfos=i,e.encrypted=e.encrypted||t.encrypted,t.closedCaptions){e.closedCaptions||(e.closedCaptions=new Map);for(let[r,s]of t.closedCaptions)e.closedCaptions.set(r,s)}e.bandwidth&&t.bandwidth&&(e.bandwidth=Math.max(e.bandwidth,t.bandwidth));for(let r of re.OptionalStreamTypes_)re.combineOptionalStream_(e,t,r)}static combineOptionalStream_(e,t,i){let r=t[i]||null,s=e[i]||null;r?(s||(s=re.cloneStream_(r),s.matchedStreams=[],s.createSegmentIndex=async()=>{if(s.segmentIndex)return;let n=new Mi;v.assert(s.matchedStreams,`${i} matched streams should exist`);for(let a of s.matchedStreams)a.segmentIndex||await a.createSegmentIndex(),v.assert(a.segmentIndex,`${i} segment index should exist`),n.appendSegmentIndex(a.segmentIndex);s.segmentIndex=n},e[i]=s),s.matchedStreams.push(r),re.concatenateStreams_(s,r)):s&&(s.matchedStreams.push(t),re.concatenateStreams_(s,t))}static concatenateStreamDBs_(e,t){e.roles=re.combineArrays_(e.roles,t.roles);for(let i of t.keyIds)e.keyIds.add(i);if(e.encrypted=e.encrypted&&t.encrypted,e.segments.push(...t.segments),t.closedCaptions){e.closedCaptions||(e.closedCaptions=new Map);for(let[i,r]of t.closedCaptions)e.closedCaptions.set(i,r)}}findMatchesInAllPeriods_(e,t,i=!1){let r=i?t.matchedStreams:[];for(let s of e){let n=this.findBestMatchInPeriod_(s,t);if(!n)return;r.push(n)}t.matchedStreams=r}findBestMatchInPeriod_(e,t){let i={audio:re.generateAudioKey_,video:re.generateVideoKey_,text:re.generateTextKey_,image:re.generateImageKey_}[t.type],r=null,s=i(t);if(e.has(s))r=e.get(s);else{let n={audio:(o,c)=>this.areAVStreamsCompatible_(o,c),video:(o,c)=>this.areAVStreamsCompatible_(o,c),text:re.areTextStreamsCompatible_,image:re.areImageStreamsCompatible_}[t.type],a={audio:re.isAudioStreamBetterMatch_,video:re.isVideoStreamBetterMatch_,text:re.isTextStreamBetterMatch_,image:re.isImageStreamBetterMatch_}[t.type];for(let o of e.values())n(t,o)&&t.fastSwitching==o.fastSwitching&&(!r||a(t,r,o))&&(r=o)}return this.useStreamOnce_&&!re.isDummy_(r)&&e.delete(i(r)),r}static areAVStreamsExactMatch_(e,t){return e.mimeType===t.mimeType&&e.codecs===t.codecs}static areAVStreamsCodecsCompatible_(e,t){return e.mimeType!=t.mimeType?!1:re.getCodec_(e.codecs)===re.getCodec_(t.codecs)}setUseStreamOnce(e){this.useStreamOnce_=e}areAVStreamsCompatible_(e,t){return!(e.drmInfos&&!de.areDrmCompatible(e.drmInfos,t.drmInfos))}static areTextStreamsCompatible_(e,t){return t.language?!(e.forced!==t.forced||ve.relatedness(e.language,t.language)==0||t.kind!=e.kind):!0}static areImageStreamsCompatible_(e,t){return!0}static isAudioStreamBetterMatch_(e,t,i){let{BETTER:r,EQUAL:s,WORSE:n}=re.BetterOrWorse,a=re.compareCodecs_(e,t,i);if(a===r)return!0;if(a===n)return!1;let o=ve.relatedness(e.language,t.language),c=ve.relatedness(e.language,i.language);if(c>o)return!0;if(c<o)return!1;if(t.label!==i.label){if(e.label===t.label)return!1;if(e.label===i.label)return!0}if(e.roles.length){let m=t.roles.filter(g=>e.roles.includes(g)),f=i.roles.filter(g=>e.roles.includes(g));if(f.length>m.length)return!0;if(f.length<m.length)return!1;if(i.roles.length!==t.roles.length)return i.roles.length<t.roles.length}else{if(!i.roles.length&&t.roles.length)return!0;if(i.roles.length&&!t.roles.length)return!1}if(!t.primary&&i.primary)return!0;if(t.primary&&!i.primary)return!1;let d=re.compareClosestPreferLower(e.channelsCount,t.channelsCount,i.channelsCount);if(d==r)return!0;if(d==n)return!1;let u=re.compareClosestPreferLower(e.audioSamplingRate,t.audioSamplingRate,i.audioSamplingRate);if(u==r)return!0;if(u==n)return!1;if(e.bandwidth){let m=re.compareClosestPreferMinimalAbsDiff_(e.bandwidth,t.bandwidth,i.bandwidth);if(m==r)return!0;if(m==n)return!1}return!1}static isVideoStreamBetterMatch_(e,t,i){let{BETTER:r,EQUAL:s,WORSE:n}=re.BetterOrWorse,a=re.compareCodecs_(e,t,i);if(a===r)return!0;if(a===n)return!1;let o=re.compareClosestPreferLower(e.width*e.height,t.width*t.height,i.width*i.height);if(o==r)return!0;if(o==n)return!1;if(e.frameRate){let c=re.compareClosestPreferLower(e.frameRate,t.frameRate,i.frameRate);if(c==r)return!0;if(c==n)return!1}if(e.bandwidth){let c=re.compareClosestPreferMinimalAbsDiff_(e.bandwidth,t.bandwidth,i.bandwidth);if(c==r)return!0;if(c==n)return!1}return!1}static isTextStreamBetterMatch_(e,t,i){let r=ve.relatedness(e.language,t.language),s=ve.relatedness(e.language,i.language);if(s>r)return!0;if(s<r)return!1;if(!t.primary&&i.primary)return!0;if(t.primary&&!i.primary)return!1;if(t.label!==i.label){if(e.label===t.label)return!1;if(e.label===i.label)return!0}if(e.roles.length){let n=t.roles.filter(o=>e.roles.includes(o)),a=i.roles.filter(o=>e.roles.includes(o));if(a.length>n.length)return!0;if(a.length<n.length)return!1}else{if(!i.roles.length&&t.roles.length)return!0;if(i.roles.length&&!t.roles.length)return!1}return i.mimeType==e.mimeType&&i.codecs==e.codecs&&(t.mimeType!=e.mimeType||t.codecs!=e.codecs)}static isImageStreamBetterMatch_(e,t,i){let{BETTER:r,EQUAL:s,WORSE:n}=re.BetterOrWorse,a=re.compareClosestPreferLower(e.width*e.height,t.width*t.height,i.width*i.height);return a==r?!0:(a==n,!1)}static dummyStreamDB_(e){return{id:0,originalId:"",groupId:null,primary:!1,type:e,mimeType:"",codecs:"",supplementalCodecs:"",language:"",originalLanguage:null,label:null,width:null,height:null,encrypted:!1,keyIds:new Set,segments:[],variantIds:[],roles:[],forced:!1,channelsCount:null,audioSamplingRate:null,spatialAudio:!1,closedCaptions:null,external:!1,fastSwitching:!1,isAudioMuxedInVideo:!1,baseOriginalId:null,isIframe:!1}}static dummyStream_(e){return se.createStream({originalId:"",segmentIndex:new Ze([]),type:e})}static compareClosestPreferLower(e,t,i){let{BETTER:r,EQUAL:s,WORSE:n}=re.BetterOrWorse;if(t==e&&e!=i)return n;if(i==e&&e!=t)return r;if(t>e){if(i<=e||i-e<t-e)return r;if(i-e>t-e)return n}else{if(i>e)return n;if(e-i<e-t)return r;if(e-i>e-t)return n}return s}static compareCodecs_(e,t,i){let{BETTER:r,EQUAL:s,WORSE:n}=re.BetterOrWorse,a=re.areAVStreamsExactMatch_(e,t),o=re.areAVStreamsExactMatch_(e,i);if(a&&!o)return n;if(!a&&o)return r;let c=re.areAVStreamsCodecsCompatible_(e,t),d=re.areAVStreamsCodecsCompatible_(e,i);return c&&!d?n:!c&&d?r:s}static compareClosestPreferMinimalAbsDiff_(e,t,i){let{BETTER:r,EQUAL:s,WORSE:n}=re.BetterOrWorse,a=Math.abs(e-t),o=Math.abs(e-i);return o<a?r:a<o?n:s}static isDummy_(e){let t=R.ContentType;switch(e.type){case t.TEXT:return!e.language;case t.IMAGE:return!e.tilesLayout;default:return!1}}static generateVideoKey_(e){var t,i;return re.generateKey_([e.fastSwitching,e.width,e.frameRate,e.codecs,e.mimeType,e.label,e.roles,e.closedCaptions?Array.from(e.closedCaptions.entries()):null,e.bandwidth,(i=(t=e.dependencyStream)==null?void 0:t.baseOriginalId)!=null?i:e.baseOriginalId,Array.from(e.keyIds)])}static generateAudioKey_(e){var t,i;return re.generateKey_([e.fastSwitching,e.channelsCount,e.language,e.bandwidth,e.label,e.codecs,e.mimeType,e.roles,e.audioSamplingRate,e.primary,(i=(t=e.dependencyStream)==null?void 0:t.baseOriginalId)!=null?i:e.baseOriginalId,Array.from(e.keyIds)])}static generateTextKey_(e){return re.generateKey_([e.language,e.label,e.codecs,e.mimeType,e.bandwidth,e.roles])}static generateImageKey_(e){return re.generateKey_([e.width,e.codecs,e.mimeType])}static generateKey_(e){return JSON.stringify(e)}static getCodec_(e){return re.memoizedCodecs.getOrInsertComputed(e,()=>N.getNormalizedCodec(e))}static isStreamActivelyUsed_(e,t,i){for(let r of i)if(r!==t&&r.segmentIndex&&r.matchedStreams&&r.matchedStreams.includes(e))return p.v2(`Stream ${e.id} is already used in output stream ${r.id}, cannot close it now.`),!0;return p.v2(`Stream ${e.id} not used anywhere else besides ${t.id}, good to close.`),!1}static getOptionalStreams(e){let t=[];for(let i of re.OptionalStreamTypes_){let r=e[i];r&&t.push(r)}return t}};l(re,"OptionalStreamTypes_",["trickModeVideo","dependencyStream"]),l(re,"BetterOrWorse",{BETTER:1,EQUAL:0,WORSE:-1}),l(re,"memoizedCodecs",new Map);var gr=re;/*! @license
615
+ * Shaka Player
616
+ * Copyright 2016 Google LLC
617
+ * SPDX-License-Identifier: Apache-2.0
618
+ */var ft=class ft{constructor(){l(this,"config_");l(this,"playerInterface_");l(this,"manifestUris_");l(this,"manifest_");l(this,"globalId_");l(this,"patchLocationNodes_");l(this,"manifestPatchContext_");l(this,"contextCache_");l(this,"continuityCache_");l(this,"parsedPeriodCache_");l(this,"streamMap_");l(this,"indexStreamMap_");l(this,"periodDurations_");l(this,"periodCombiner_");l(this,"updatePeriod_");l(this,"averageUpdateDuration_");l(this,"updateTimer_");l(this,"operationManager_");l(this,"largestPeriodStartTime_");l(this,"lastManifestUpdatePeriodIds_");l(this,"minTotalAvailabilityTimeOffset_");l(this,"lowLatencyMode_");l(this,"contentSteeringManager_");l(this,"gapCount_");l(this,"isLowLatency_");l(this,"eventManager_");l(this,"mediaElement_");l(this,"isTransitionFromDynamicToStatic_");l(this,"lastManifestQueryParams_");l(this,"mpdpatchUrlParamsFn_");l(this,"mpdUrlParamsFn_");l(this,"isPreloadFn_");l(this,"lastCalculatedBaseUris_");l(this,"parsedPrftNodes_");l(this,"contentProtection_");this.config_=null,this.playerInterface_=null,this.manifestUris_=[],this.manifest_=null,this.globalId_=1,this.patchLocationNodes_=[],this.manifestPatchContext_={mpdId:"",type:"",profiles:[],mediaPresentationDuration:null,availabilityTimeOffset:0,getBaseUris:null,publishTime:0},this.contextCache_=new Map,this.continuityCache_=new Map,this.parsedPeriodCache_=new Map,this.streamMap_=new Map,this.indexStreamMap_=new Map,this.periodDurations_=new Map,this.periodCombiner_=new gr,this.updatePeriod_=0,this.averageUpdateDuration_=new er(5),this.updateTimer_=new ae(()=>{if(this.mediaElement_&&!this.config_.continueLoadingWhenPaused&&(this.eventManager_.unlisten(this.mediaElement_,"timeupdate"),this.mediaElement_.paused)){this.eventManager_.listenOnce(this.mediaElement_,"timeupdate",()=>this.onUpdate_());return}this.onUpdate_()}),this.operationManager_=new gi,this.largestPeriodStartTime_=null,this.lastManifestUpdatePeriodIds_=[],this.minTotalAvailabilityTimeOffset_=1/0,this.lowLatencyMode_=!1,this.contentSteeringManager_=null,this.gapCount_=0,this.isLowLatency_=!1,this.eventManager_=new ue,this.mediaElement_=null,this.isTransitionFromDynamicToStatic_=!1,this.lastManifestQueryParams_="",this.mpdpatchUrlParamsFn_=null,this.mpdUrlParamsFn_=null,this.isPreloadFn_=()=>!1,this.lastCalculatedBaseUris_=[],this.parsedPrftNodes_=new Set,this.contentProtection_=new vi}configure(e,t){v.assert(e.dash!=null,"DashManifestConfiguration should not be null!");let i=this.playerInterface_&&e.updatePeriod!=this.config_.updatePeriod&&e.updatePeriod>=0;this.config_=e,t&&(this.isPreloadFn_=t),i&&this.manifest_&&this.manifest_.presentationTimeline.isLive()&&this.updateNow_(),this.contentSteeringManager_&&this.contentSteeringManager_.configure(this.config_),this.periodCombiner_&&this.periodCombiner_.setUseStreamOnce(this.config_.dash.useStreamOnceInPeriodFlattening)}async start(e,t){v.assert(this.config_,"Must call configure() before start()!"),this.lowLatencyMode_=t.isLowLatencyMode(),this.manifestUris_=[e],this.playerInterface_=t;let i=await this.requestManifest_();if(this.playerInterface_&&this.setUpdateTimer_(i),!this.playerInterface_)throw new h(h.Severity.CRITICAL,h.Category.PLAYER,h.Code.OPERATION_ABORTED);return v.assert(this.manifest_,"Manifest should be non-null!"),this.manifest_}stop(){for(let e of this.streamMap_.values())e.segmentIndex&&e.segmentIndex.release();return this.periodCombiner_&&this.periodCombiner_.release(),this.playerInterface_=null,this.config_=null,this.manifestUris_=[],this.manifest_=null,this.streamMap_.clear(),this.indexStreamMap_.clear(),this.contextCache_.clear(),this.continuityCache_.clear(),this.parsedPeriodCache_.clear(),this.manifestPatchContext_={mpdId:"",type:"",profiles:[],mediaPresentationDuration:null,availabilityTimeOffset:0,getBaseUris:null,publishTime:0},this.periodCombiner_=null,this.updateTimer_!=null&&(this.updateTimer_.stop(),this.updateTimer_=null),this.contentSteeringManager_&&this.contentSteeringManager_.destroy(),this.eventManager_&&(this.eventManager_.release(),this.eventManager_=null),this.parsedPrftNodes_.clear(),this.contentProtection_.release(),this.operationManager_.destroy()}async update(){try{await this.requestManifest_()}catch(e){if(!this.playerInterface_||!e)return;v.assert(e instanceof h,"Bad error type"),this.playerInterface_.onError(e)}}onExpirationUpdated(e,t){}onInitialVariantChosen(e){if(this.manifest_&&this.manifest_.presentationTimeline.isLive()){let t=e.video||e.audio;if(t&&t.segmentIndex){let i=this.manifest_.presentationTimeline.getSegmentAvailabilityEnd(),r=t.segmentIndex.find(i);if(r==null)return;let s=t.segmentIndex.get(r);if(!s)return;this.updatePeriod_=s.endTime-i,this.setUpdateTimer_(0)}}}banLocation(e){this.contentSteeringManager_&&this.contentSteeringManager_.banLocation(e)}setMediaElement(e){this.mediaElement_=e}async requestManifest_(){let e=K.RequestType.MANIFEST,t=K.AdvancedRequestType.MPD,i="MPD",r=this.getPatchLocationUris_(),s=this.manifestUris_;if(r.length)s=r.map(m=>fe.applyUrlParams(m,this.mpdpatchUrlParamsFn_)),i="Patch",t=K.AdvancedRequestType.MPD_PATCH;else{if(this.manifestUris_.length>1&&this.contentSteeringManager_){let m=this.contentSteeringManager_.getLocations("Location",!0);m.length&&(s=m)}this.mpdUrlParamsFn_&&(s=s.map(m=>fe.applyUrlParams(m,this.mpdUrlParamsFn_)))}let n=K.makeRequest(s,this.config_.retryParameters),a=Date.now(),o=await this.makeNetworkRequest_(n,e,{type:t});if(!this.playerInterface_)return 0;o.uri&&o.uri!=o.originalUri&&!this.manifestUris_.includes(o.uri)&&this.manifestUris_.unshift(o.uri);let c=new URL(o.uri);this.lastManifestQueryParams_=c.searchParams.toString(),await this.parseManifest(o.data,o.uri,i);let u=(Date.now()-a)/1e3;return this.averageUpdateDuration_.sample(1,u),this.parsedPrftNodes_.clear(),u}parseManifest(e,t,i){let r=I.parseXml(e,i);return this.processParsedMpd(r,t,i)}async processParsedMpd(e,t,i){if(!e)throw new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.DASH_INVALID_XML,t);let r=this.config_.dash.manifestPreprocessorTXml,s=st.defaultManifestPreprocessorTXml;if(r!=s&&r(e),i==="Patch")return this.processPatchManifest_(e);let n=e;if(Me.hasLinkedPeriods(n)){let d=Me.processLinkedPeriods(n,t,this.config_.retryParameters,this.playerInterface_.networkingEngine);this.operationManager_.manage(d),n=await d.promise}if(!Me.hasXlinks(n))return this.processManifest_(n,t);let a=this.config_.dash.xlinkFailGracefully,o=Me.processXlinks(n,this.config_.retryParameters,a,t,this.playerInterface_.networkingEngine);this.operationManager_.manage(o);let c=await o.promise;return this.processManifest_(c,t)}async processManifest_(e,t){v.assert(this.config_,"Must call configure() before processManifest_()!"),this.contentSteeringManager_&&this.contentSteeringManager_.clearPreviousLocations(),this.checkMpdEssentialProperties_(e);let i=[t],r=[],s=new Map,n=I.findChildren(e,"Location");for(let z of n){let ge=z.attributes.serviceLocation,Y=I.getContents(z);if(!Y)continue;let X=fe.resolveUris(i,[Y])[0];ge&&(this.contentSteeringManager_?this.contentSteeringManager_.addLocation("Location",ge,X):s.set(ge,X)),r.push(X)}if(this.contentSteeringManager_){let z=this.contentSteeringManager_.getLocations("Location",!0);z.length>0&&(this.manifestUris_=z,i=z)}else r.length&&(this.manifestUris_=r,i=r);this.manifestPatchContext_.mpdId=e.attributes.id||"",this.manifestPatchContext_.publishTime=I.parseAttr(e,"publishTime",I.parseDate)||0,this.patchLocationNodes_=I.findChildren(e,"PatchLocation"),this.mpdpatchUrlParamsFn_=this.findRequestParamFn_(e,"mpdpatch")||null,this.mpdUrlParamsFn_=this.findRequestParamFn_(e,"mpd")||null;let a=Promise.resolve(),o=I.findChild(e,"ContentSteering");if(o&&this.playerInterface_){let z=o.attributes.defaultServiceLocation;if(this.contentSteeringManager_)this.contentSteeringManager_.setBaseUris(i),this.contentSteeringManager_.setDefaultPathwayId(z);else{this.contentSteeringManager_=new ss(this.playerInterface_),this.contentSteeringManager_.configure(this.config_),this.contentSteeringManager_.setManifestType(me.DASH),this.contentSteeringManager_.setBaseUris(i),this.contentSteeringManager_.setDefaultPathwayId(z);let ge=I.getContents(o);ge&&(ge=fe.applyUrlParams(ge,this.findRequestParamFn_(e,"steering")),I.parseAttr(o,"queryBeforeStart",I.parseBoolean,!1)?a=this.contentSteeringManager_.requestInfo(ge):this.contentSteeringManager_.requestInfo(ge))}for(let ge of s.keys()){let Y=s.get(ge);this.contentSteeringManager_.addLocation("Location",ge,Y)}}let c=I.findChildren(e,"BaseURL"),d=!1;if(this.contentSteeringManager_)for(let z of c){let ge=z.attributes.serviceLocation,Y=I.getContents(z);ge&&Y&&(this.contentSteeringManager_.addLocation("BaseURL",ge,Y),d=!0)}if(this.lastCalculatedBaseUris_.splice(0),!d||!this.contentSteeringManager_){let z=c.map(I.getContents);this.lastCalculatedBaseUris_.push(...fe.resolveUris(i,z))}let u=this.contentSteeringManager_,m=this.lastCalculatedBaseUris_,g=ft.makeBaseUriGetter_.call(ft,u,d,m);this.manifestPatchContext_.getBaseUris=g;let _=0;c&&c.length&&(_=I.parseAttr(c[0],"availabilityTimeOffset",I.parseFloat)||0),this.manifestPatchContext_.availabilityTimeOffset=_,this.updatePeriod_=I.parseAttr(e,"minimumUpdatePeriod",I.parseDuration,-1);let T=I.parseAttr(e,"availabilityStartTime",I.parseDate),S=I.parseAttr(e,"timeShiftBufferDepth",I.parseDuration),b=this.config_.dash.ignoreSuggestedPresentationDelay,E=null;b||(E=I.parseAttr(e,"suggestedPresentationDelay",I.parseDuration));let C=this.config_.dash.ignoreMaxSegmentDuration,A=null;C||(A=I.parseAttr(e,"maxSegmentDuration",I.parseDuration));let w=e.attributes.type||"static",M=w=="static"||w=="list";this.manifest_&&this.manifest_.presentationTimeline&&(this.isTransitionFromDynamicToStatic_=this.manifest_.presentationTimeline.isLive()&&M),this.manifestPatchContext_.type=w;let x;if(this.manifest_){x=this.manifest_.presentationTimeline;let z=x.getSegmentAvailabilityStart();for(let ge of this.streamMap_.values())ge.segmentIndex&&ge.segmentIndex.evict(z)}else{let z=this.config_.dash.ignoreMinBufferTime,ge=0;z||(ge=I.parseAttr(e,"minBufferTime",I.parseDuration)||0);let Y=0;E!=null?Y=Math.min(E,S||1/0):this.config_.defaultPresentationDelay>0?Y=this.config_.defaultPresentationDelay:Y=Math.min(ge*1.5,S||1/0),x=new wi(T,Y,this.config_.dash.autoCorrectDrift)}x.setStatic(M),x.isLive()&&!isNaN(this.config_.availabilityWindowOverride)&&(S=this.config_.availabilityWindowOverride),S==null&&(S=1/0),x.setSegmentAvailabilityDuration(S);let L=e.attributes.profiles||"";this.manifestPatchContext_.profiles=L.split(",");let V={dynamic:!M,presentationTimeline:x,period:null,periodInfo:null,adaptationSet:null,representation:null,bandwidth:0,indexRangeWarningGiven:!1,availabilityTimeOffset:_,mediaPresentationDuration:null,profiles:L.split(","),roles:null,urlParams:ft.defaultUrlParams_,name:""};await a;let ee=Me.parseEssentialProperties(e),oe=Me.parseSupplementalProperties(e),le=z=>ft.URL_PARAM_DESCRIPTOR_SCHEMES_.has(z.schemeIdUri),H=ee.find(le)||oe.find(le);if(H){let z=this.getURLParametersFunction_(H.element);z&&(V.urlParams=z)}let J=this.findRequestParamFn_(e,"segment");J&&(V.urlParams=J),this.gapCount_=0;let Z=this.parsePeriods_(V,g,e,!1),ce=Z.duration,W=Z.periods;if((M&&!this.isTransitionFromDynamicToStatic_||!Z.durationDerivedFromPeriods)&&x.setDuration(ce||1/0),this.isLowLatency_&&this.lowLatencyMode_&&x.setAvailabilityTimeOffset(this.minTotalAvailabilityTimeOffset_),x.notifyMaxSegmentDuration(A||1),Fe&&!this.isTransitionFromDynamicToStatic_&&x.assertIsValid(),this.isLowLatency_&&this.lowLatencyMode_){let z=E!=null?E:this.config_.defaultPresentationDelay;x.setDelay(z)}if(this.manifest_)this.manifest_.periodCount=W.length,this.manifest_.gapCount=this.gapCount_,await this.postPeriodProcessing_(W,!1);else{if(await this.periodCombiner_.combinePeriods(W,V.dynamic),this.manifest_={presentationTimeline:x,variants:this.periodCombiner_.getVariants(),textStreams:this.periodCombiner_.getTextStreams(),imageStreams:this.periodCombiner_.getImageStreams(),chapterStreams:[],offlineSessionIds:[],sequenceMode:this.config_.dash.sequenceMode,ignoreManifestTimestampsInSegmentsMode:!1,type:me.DASH,serviceDescription:this.parseServiceDescription_(e),nextUrl:this.parseMpdChaining_(e),periodCount:W.length,gapCount:this.gapCount_,isLowLatency:this.isLowLatency_,startTime:null},x.usingPresentationStartTime()){let ge=I.findChildren(e,"UTCTiming"),Y=await this.parseUtcTiming_(g,ge);if(!this.playerInterface_)return;x.setClockOffset(Y)}x.lockStartTime(),this.periodCombiner_&&!this.manifest_.presentationTimeline.isLive()&&this.periodCombiner_.release();let z=I.findChild(e,"ProgramInformation");if(z){let ge=U.EventName.ProgramInformation,Y=new Map().set("detail",z),X=new U(ge,Y);this.playerInterface_.onEvent(X)}}this.playerInterface_.makeTextStreamsForClosedCaptions(this.manifest_),this.cleanStreamMap_(),this.cleanContinuityCache_(W)}async postPeriodProcessing_(e,t){await this.periodCombiner_.combinePeriods(e,!0,t),this.manifest_.variants=this.periodCombiner_.getVariants();let i=this.periodCombiner_.getTextStreams();i.length>0&&(this.manifest_.textStreams=i),this.manifest_.imageStreams=this.periodCombiner_.getImageStreams(),this.playerInterface_.filter(this.manifest_)}async processPatchManifest_(e){let t=e.attributes.mpdId,i=I.parseAttr(e,"originalPublishTime",I.parseDate);if(!t||t!==this.manifestPatchContext_.mpdId||i!==this.manifestPatchContext_.publishTime)throw this.patchLocationNodes_=[],new h(h.Severity.RECOVERABLE,h.Category.MANIFEST,h.Code.DASH_INVALID_PATCH);let r=[],s=[],n=new Set;for(let a of I.getChildNodes(e)){let o=!0,c=I.parseXpath(a.attributes.sel||""),d=c[c.length-1],u=I.getContents(a)||"";if(d.name==="MPD")if(d.attribute==="mediaPresentationDuration"){let m=I.getContents(a)||"";this.parsePatchMediaPresentationDurationChange_(m)}else d.attribute==="type"?this.parsePatchMpdTypeChange_(u):d.attribute==="publishTime"?this.manifestPatchContext_.publishTime=I.parseDate(u)||0:d.attribute===null&&a.tagName==="add"?s.push(a):o=!1;else if(d.name==="PatchLocation")this.updatePatchLocationNodes_(a);else if(d.name==="Period")a.tagName==="add"?s.push(a):a.tagName==="remove"&&d.id&&this.removePatchPeriod_(d.id);else if(d.name==="SegmentTemplate"){let m=this.modifySegmentTemplate_(a);for(let f of m)n.add(f)}else if(d.name==="SegmentTimeline"||d.name==="S"){let m=this.modifyTimepoints_(a);for(let f of m)n.add(f)}else o=!1;o||p.warning("Unhandled "+a.tagName+" operation",a.attributes.sel)}for(let a of n)this.parsePatchSegment_(a);for(let a of s)r.push(...this.parsePatchPeriod_(a));if(r.length&&(this.manifest_.periodCount+=r.length,this.manifest_.gapCount=this.gapCount_,await this.postPeriodProcessing_(r,!0)),this.manifestPatchContext_.type=="static"){let a=this.manifestPatchContext_.mediaPresentationDuration;this.manifest_.presentationTimeline.setDuration(a||1/0)}}parsePatchMpdTypeChange_(e){this.manifest_.presentationTimeline.setStatic(e=="static"),this.manifestPatchContext_.type=e;for(let t of this.contextCache_.values())t.dynamic=e=="dynamic";e=="static"&&(this.updatePeriod_=-1)}parsePatchMediaPresentationDurationChange_(e){let t=I.parseDuration(e);if(t!=null){this.manifestPatchContext_.mediaPresentationDuration=t;for(let i of this.contextCache_.values())i.mediaPresentationDuration=t}}parsePatchPeriod_(e){v.assert(this.manifestPatchContext_.getBaseUris,"Must provide getBaseUris on manifestPatchContext_");let t={dynamic:this.manifestPatchContext_.type=="dynamic",presentationTimeline:this.manifest_.presentationTimeline,period:null,periodInfo:null,adaptationSet:null,representation:null,bandwidth:0,indexRangeWarningGiven:!1,availabilityTimeOffset:this.manifestPatchContext_.availabilityTimeOffset,profiles:this.manifestPatchContext_.profiles,mediaPresentationDuration:this.manifestPatchContext_.mediaPresentationDuration,roles:null,urlParams:ft.defaultUrlParams_,name:""};return this.parsePeriods_(t,this.manifestPatchContext_.getBaseUris,e,!0).periods}removePatchPeriod_(e){this.manifest_.periodCount--;for(let i of this.contextCache_.keys())if(i.startsWith(e)){let r=this.contextCache_.get(i);fr.removeTimepoints(r),this.parsePatchSegment_(i),this.contextCache_.delete(i)}let t=this.lastManifestUpdatePeriodIds_.filter(i=>i!==e);this.lastManifestUpdatePeriodIds_=t,this.parsedPeriodCache_.delete(e)}getContextIdsFromPath_(e){let t="",i="",r=-1,s="";for(let a of e)a.name==="Period"?t=a.id:a.name==="AdaptationSet"?(i=a.id,a.position!==null&&(r=a.position)):a.name==="Representation"&&(s=a.id);let n=[];if(s)n.push(t+","+s);else if(i)for(let a of this.contextCache_.values())a.period.id===t&&a.adaptationSet.id===i&&a.representation.id&&n.push(t+","+a.representation.id);else if(r>-1)for(let a of this.contextCache_.values())a.period.id===t&&a.adaptationSet.position===r&&a.representation.id&&n.push(t+","+a.representation.id);return n}modifySegmentTemplate_(e){let t=I.parseXpath(e.attributes.sel||""),i=t[t.length-1];if(!i.attribute)return[];let r=this.getContextIdsFromPath_(t),s=I.getContents(e)||"";for(let n of r){let a=this.contextCache_.get(n);v.assert(a&&a.representation.segmentTemplate,"cannot modify segment template"),I.modifyNodeAttribute(a.representation.segmentTemplate,e.tagName,i.attribute,s)}return r}modifyTimepoints_(e){let t=I.parseXpath(e.attributes.sel||""),i=this.getContextIdsFromPath_(t);for(let r of i){let s=this.contextCache_.get(r);fr.modifyTimepoints(s,e)}return i}parsePatchSegment_(e){let t=this.contextCache_.get(e),i=this.streamMap_.get(e);v.assert(i,"stream should exist"),i.segmentIndex&&i.segmentIndex.evict(this.manifest_.presentationTimeline.getSegmentAvailabilityStart());try{let r=(n,a,o,c)=>this.requestSegment_(n,a,o,c),s=fr.createStreamInfo(t,r,this.streamMap_,!0,this.config_.dash.initialSegmentLimit,this.periodDurations_,t.representation.aesKey,null,!0,this.continuityCache_);i.createSegmentIndex=async()=>{i.segmentIndex||(i.segmentIndex=await s.generateSegmentIndex())}}catch(r){let s=R.ContentType,n=t.representation.contentType,a=n==s.TEXT||n==s.APPLICATION,o=n==s.IMAGE;if(!(a||o)||r.code!=h.Code.DASH_NO_SEGMENT_INFO)throw r}}parseServiceDescription_(e){let t=I.findChild(e,"ServiceDescription");if(!t)return null;let i=I.findChild(t,"Latency"),r=I.findChild(t,"PlaybackRate");if(!i&&!r)return null;let s={};return i&&("target"in i.attributes&&(s.targetLatency=parseInt(i.attributes.target,10)/1e3),"max"in i.attributes&&(s.maxLatency=parseInt(i.attributes.max,10)/1e3),"min"in i.attributes&&(s.minLatency=parseInt(i.attributes.min,10)/1e3)),r&&("max"in r.attributes&&(s.maxPlaybackRate=parseFloat(r.attributes.max)),"min"in r.attributes&&(s.minPlaybackRate=parseFloat(r.attributes.min))),s}checkMpdEssentialProperties_(e){let t=ft.SUPPORTED_ESSENTIAL_PROPERTIES_,i=Me.parseEssentialProperties(e);if(!i.length)return;let r=new Map,s=0;for(let n of i){let a=n.id!=null?"id:"+n.id:"no-id:"+s++;r.getOrInsert(a,[]).push(n)}for(let n of r.values())if(!n.some(o=>t.has(o.schemeIdUri)))throw new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.DASH_UNSUPPORTED_ESSENTIAL_PROPERTY,n.map(o=>o.schemeIdUri))}parseMpdChaining_(e){let t=Me.parseSupplementalProperties(e),i=Me.getDescriptor(t,"urn:mpeg:dash:chaining:2016");return!i||!i.value?null:fe.applyUrlParams(i.value,this.findRequestParamFn_(e,"chaining"))}parsePeriods_(e,t,i,r){let s=e.mediaPresentationDuration;s||(s=I.parseAttr(i,"mediaPresentationDuration",I.parseDuration),this.manifestPatchContext_.mediaPresentationDuration=s);let n=0;this.manifest_&&this.manifest_.presentationTimeline&&this.isTransitionFromDynamicToStatic_&&(n=this.manifest_.presentationTimeline.getSeekRangeStart());let a=[],o=n,c=I.findChildren(i,"Period"),d=e.dynamic;d||this.parsedPeriodCache_.clear();let u=d&&!r?new Set(this.lastManifestUpdatePeriodIds_.slice(1,-1)):null;for(let m=0;m<c.length;m++){let f=c[m],g=c[m+1],_=I.parseAttr(f,"start",I.parseDuration,o),T=f.attributes.id,S=I.parseAttr(f,"duration",I.parseDuration);_=m==0&&_==0&&this.isTransitionFromDynamicToStatic_?n:_;let b=null;if(g){let M=I.parseAttr(g,"start",I.parseDuration);M!=null&&(b=M-_+n)}else s!=null&&(b=s-_+n);let E=R.GAP_OVERLAP_TOLERANCE_SECONDS;if(b&&S&&Math.abs(b-S)>E&&(p.warning("There is a gap/overlap between Periods",f),b>S&&this.gapCount_++),b==null&&(b=S),this.largestPeriodStartTime_!==null&&T!=null&&_!==null&&_<this.largestPeriodStartTime_&&!this.lastManifestUpdatePeriodIds_.includes(T)&&m+1!=c.length){p.debug(`Skipping Period with ID ${T} as its start time is smaller than the largest period start time that has been seen, and ID is unseen before`);continue}_!==null&&(this.largestPeriodStartTime_===null||_>this.largestPeriodStartTime_)&&(this.largestPeriodStartTime_=_);let C={start:_,duration:b,node:f,isLastPeriod:b==null||!g},A=null,w=m>0&&m<c.length-1;if(d&&u&&w&&!r&&(T!=null||(T=this.periodIdFallback_(_)),u.has(T))){let M=this.parsedPeriodCache_.get(T);M&&(A=M)}if(A||(A=this.parsePeriod_(e,t,C),d&&A.id&&this.parsedPeriodCache_.set(A.id,A)),a.push(A),A.id&&b&&this.periodDurations_.set(A.id,b),b==null){g&&p.warning("Skipping Period",m+1,"and any subsequent Periods:","Period",m+1,"does not have a valid start time.",g),o=null;break}o=_+b}if(d&&!r&&this.prunePeriodCache_(a),r)for(let m of a){let f=m.id;this.lastManifestUpdatePeriodIds_.includes(f)||this.lastManifestUpdatePeriodIds_.push(f)}else this.lastManifestUpdatePeriodIds_=a.map(m=>m.id);if(s!=null){if(o!=null){let m=R.GAP_OVERLAP_TOLERANCE_SECONDS,f=o-n-s;Math.abs(f)>m&&p.warning("@mediaPresentationDuration does not match the total duration ","of all Periods.")}return{periods:a,duration:s+n,durationDerivedFromPeriods:!1}}else return{periods:a,duration:o,durationDerivedFromPeriods:!0}}prunePeriodCache_(e){let t=new Set(e.map(i=>i.id));for(let i of Array.from(this.parsedPeriodCache_.keys()))t.has(i)||this.parsedPeriodCache_.delete(i)}periodIdFallback_(e){return"__shaka_period_"+e}cleanStreamMap_(){let t=Array.from(this.indexStreamMap_.keys()).filter(i=>!this.lastManifestUpdatePeriodIds_.includes(i));for(let i of t){let r=!0;for(let s of this.indexStreamMap_.get(i)){let n=this.streamMap_.get(s);if(n){if(n.segmentIndex&&!n.segmentIndex.isEmpty()){r=!1;continue}this.periodCombiner_&&this.periodCombiner_.deleteStream(n,i),this.streamMap_.delete(s)}}r&&this.indexStreamMap_.delete(i)}}cleanContinuityCache_(e){let t=new Set(e.map(i=>i.id));for(let i of this.continuityCache_.keys())t.has(i)||this.continuityCache_.delete(i)}parsePeriod_(e,t,i){let r=R.ContentType;v.assert(i.node,"periodInfo.node should exist"),e.period=this.createFrame_(i.node,null,t),e.periodInfo=i,e.period.availabilityTimeOffset=e.availabilityTimeOffset,e.period.id||(p.info("No Period ID given for Period with start time "+i.start+", Assigning a default"),e.period.id=this.periodIdFallback_(i.start));let s=I.findChildren(i.node,"EventStream"),n=e.presentationTimeline.getSegmentAvailabilityStart();for(let S of s)this.parseEventStream_(i.start,i.duration,S,n);let a=Me.parseSupplementalProperties(i.node);for(let S of a)if(ft.URL_PARAM_DESCRIPTOR_SCHEMES_.has(S.schemeIdUri)){let b=this.getURLParametersFunction_(S.element);b&&(e.urlParams=b)}let o=this.findRequestParamFn_(i.node,"segment");o&&(e.urlParams=o);let c=I.findChildren(i.node,"AdaptationSet").map((S,b)=>this.parseAdaptationSet_(e,b,S)).filter(it.isNotNull);if(e.dynamic){let S=new Set,b=0;for(let E=0;E<c.length;E++){let C=c[E].representationIds;for(let A=0;A<C.length;A++)S.add(C[A]),b++}if(b!=S.size)throw new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.DASH_DUPLICATE_REPRESENTATION_ID)}let d=new Map;for(let S of c)for(let[b,E]of S.dependencyStreamMap)d.set(b,E);if(d.size){let S=new Map;for(let b=0;b<c.length;b++){let E=c[b].streams;for(let C=0;C<E.length;C++)d.has(E[C].originalId)&&(S.has(b)||S.set(b,[]),S.get(b).push(E[C].originalId))}if(S.size){let b=I.findChildren(i.node,"AdaptationSet"),E=e.name;e.name="dependencyStream",S.forEach((C,A)=>{let w=b[A];if(!w)return;let M=this.parseAdaptationSet_(e,A,w);if(!M)return;let x=[];for(let k=0;k<C.length;k++){let L=C[k],V=M.streams.find(ee=>ee.originalId==L);if(V){let ee=d.get(V.originalId||"");V.dependencyStream=ee,V.originalId+=ee.originalId,V.baseOriginalId=ee.baseOriginalId,x.push(V)}}x.length&&c[A].streams.push(...x)}),e.name=E}}let[u,m]=ye.partition(c,S=>!!S.trickModeFor);for(let S of u)for(let b of S.streams)b.isIframe=!0;if(!this.config_.disableIFrames)for(let S of u){let b=S.trickModeFor.split(" ");for(let E of m)if(b.includes(E.id))for(let C of E.streams)se.setBetterIFrameStream(C,S.streams)}let f=this.getStreamsFromSets_(this.config_.disableAudio,m,r.AUDIO),g=this.getStreamsFromSets_(this.config_.disableVideo,m,r.VIDEO),_=this.getStreamsFromSets_(this.config_.disableText,m,r.TEXT),T=this.getStreamsFromSets_(this.config_.disableThumbnails,m,r.IMAGE);if(g.length===0&&f.length===0)throw new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.DASH_EMPTY_PERIOD);return{id:e.period.id,audioStreams:f,videoStreams:g,textStreams:_,imageStreams:T}}getStreamsFromSets_(e,t,i){return e||!t.length?[]:t.reduce((r,s)=>(s.contentType!=i||r.push(...s.streams),r),[])}parseAdaptationSet_(e,t,i){let r=R.ContentType;e.adaptationSet=this.createFrame_(i,e.period,null),e.adaptationSet.position=t;let s=!1,n=I.findChildren(i,"Role"),a=n.map(Y=>Y.attributes.value).filter(it.isNotNull),o,c=e.adaptationSet.contentType==r.TEXT;c&&(o=R.TextStreamKind.SUBTITLE);for(let Y of n){let X=Y.attributes.schemeIdUri;if(X==null||X=="urn:mpeg:dash:role:2011"){let O=Y.attributes.value;switch(O){case"main":s=!0;break;case"caption":case"subtitle":o=O;break}}}let d,u,m="urn:mpeg:mpegB:cicp",f=`${m}:TransferCharacteristics`,g=`${m}:ColourPrimaries`,_=Y=>{switch(Y){case 1:case 6:case 13:case 14:case 15:return"SDR";case 16:return"PQ";case 18:return"HLG"}},T=Y=>{switch(Y){case 1:case 5:case 6:case 7:return"srgb";case 9:return"rec2020";case 11:case 12:return"p3"}},S=Y=>{let X=Y.attributes["dvb:fontFamily"],O=Y.attributes["dvb:url"];if(X&&O){let $=fe.resolveUris(e.adaptationSet.getBaseUris(),[O],e.urlParams());this.playerInterface_.addFont(X,$[0])}},b=Me.parseEssentialProperties(i),E=Me.parseSupplementalProperties(i),C=null,A=!1,w=null,M=!1;for(let Y of b){let X=Y.schemeIdUri;if(!ft.SUPPORTED_ESSENTIAL_PROPERTIES_.has(X)){M=!0;continue}X=="http://dashif.org/guidelines/trickmode"?C=Y.value:X==f?d=_(parseInt(Y.value,10)):X==g?u=T(parseInt(Y.value,10)):X=="urn:mpeg:dash:ssr:2023"?this.config_.dash.enableFastSwitching?A=!0:M=!0:X=="urn:dvb:dash:fontdownload:2014"?S(Y.element):ft.URL_PARAM_DESCRIPTOR_SCHEMES_.has(X)&&(w=this.getURLParametersFunction_(Y.element),w||(M=!0))}if(M)return null;let x=null;for(let Y of E){let X=Y.schemeIdUri;X=="http://dashif.org/guidelines/last-segment-number"?x=parseInt(Y.value,10)-1:X==f?d=_(parseInt(Y.value,10)):X==g?u=T(parseInt(Y.value,10)):X=="urn:dvb:dash:fontdownload:2014"?S(Y.element):ft.URL_PARAM_DESCRIPTOR_SCHEMES_.has(X)&&(w=this.getURLParametersFunction_(Y.element))}let k=this.findRequestParamFn_(i,"segment");k&&(w=k),w&&(e.urlParams=w);let L=I.findChildren(i,"Accessibility"),V=new Map,ee;for(let Y of L){let X=Y.attributes.schemeIdUri,O=Y.attributes.value;X=="urn:scte:dash:cc:cea-608:2015"&&!this.config_.disableText?R.parseCEA608Captions(O,V):X=="urn:scte:dash:cc:cea-708:2015"&&!this.config_.disableText?R.parseCEA708Captions(O,V):X=="urn:mpeg:dash:role:2011"?O!=null&&(a.push(O),O=="captions"&&(o=R.TextStreamKind.CLOSED_CAPTION)):X=="urn:tva:metadata:cs:AudioPurposeCS:2007"&&(O=="1"?ee=me.AccessibilityPurpose.VISUALLY_IMPAIRED:O=="2"?ee=me.AccessibilityPurpose.HARD_OF_HEARING:O=="9"&&(ee=me.AccessibilityPurpose.SPOKEN_SUBTITLES))}let oe=I.findChildren(i,"ContentProtection"),le=this.contentProtection_.parseFromAdaptationSet(oe,this.config_.ignoreDrmInfo,this.config_.dash.keySystemsByURI);e.adaptationSet.encrypted=oe.length>0;let H=ve.normalize(e.adaptationSet.language||"und"),J=e.adaptationSet.label,Z=new Map,ce=I.findChildren(i,"Representation");if(!this.config_.ignoreSupplementalCodecs){let Y=[];for(let X of ce){let O=I.getAttributeNS(X,ft.SCTE214_,"supplementalCodecs");if(O){let $=Ne.cloneObject(X);$.attributes.codecs=O.split(" ").join(","),$.attributes.id&&($.attributes.supplementalId=$.attributes.id+"_supplementalCodecs"),Y.push($)}}ce.push(...Y)}let W=ce.map(Y=>{let X=this.parseRepresentation_(e,le,o,H,J,s,a,V,Y,ee,x);if(X){X.hdr=X.hdr||d,X.colorGamut=X.colorGamut||u,X.fastSwitching=A;let O=Y.attributes.dependencyId;if(O)return X.baseOriginalId=O,Z.set(O,X),null}return X}).filter(Y=>!!Y);if(W.length==0&&Z.size==0){let Y=e.adaptationSet.contentType==r.IMAGE;if(this.config_.dash.ignoreEmptyAdaptationSet||c||Y)return null;throw new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.DASH_EMPTY_ADAPTATION_SET)}if(!e.adaptationSet.contentType||e.adaptationSet.contentType==r.APPLICATION){let Y=W[0].mimeType,X=W[0].codecs;e.adaptationSet.contentType=ft.guessContentType_(Y,X);for(let O of W)O.type=e.adaptationSet.contentType}let z=e.adaptationSet.id||"__fake__"+this.globalId_++;for(let Y of W){for(let X of le.drmInfos)X.keyIds=X.keyIds&&Y.keyIds?new Set([...X.keyIds,...Y.keyIds]):X.keyIds||Y.keyIds;this.config_.enableAudioGroups&&(Y.groupId=z)}let ge=ce.map(Y=>Y.attributes.supplementalId||Y.attributes.id).filter(it.isNotNull);return{id:z,contentType:e.adaptationSet.contentType,language:H,main:s,streams:W,drmInfos:le.drmInfos,trickModeFor:C,representationIds:ge,dependencyStreamMap:Z}}getURLParametersFunction_(e){let t=I.findChildNS(e,ft.UP_NAMESPACE_2014_,"UrlQueryInfo")||I.findChildNS(e,ft.UP_NAMESPACE_2016_,"ExtUrlQueryInfo");return t?this.buildUrlQueryFn_(t):null}findRequestParamFn_(e,t){let i;for(let r of I.findChildren(e,"RequestParam")){let s=(r.attributes.includeInRequests||"segment").split(/\s+/);if(s.includes(t)||s.includes("*")){let n=this.buildUrlQueryFn_(r);n&&(i=n)}}return i}buildUrlQueryFn_(e){let t=I.parseAttr(e,"useMPDUrlQuery",I.parseBoolean,!1),i=q.htmlUnescape(e.attributes.queryString||""),r=q.htmlUnescape(e.attributes.queryTemplate||"");return!r||!t&&!i?null:()=>{let s=[];t&&this.lastManifestQueryParams_&&s.push(this.lastManifestQueryParams_),i&&s.push(i);let n=s.join("&");if(r=="$querypart$")return n;let a;return r.split("&").map(c=>{if(c=="$querypart$")return n;let d=/\$query:(.*?)\$/.exec(c);if(d){let u=d[1];a||(a=new URLSearchParams(n));let m=a.get(u);return m?`${u}=${m}`:""}return c.replace(/\$\$|\$[^$]+\$/g,u=>u==="$$"?"$":"")}).filter(Boolean).join("&")}}parseRepresentation_(e,t,i,r,s,n,a,o,c,d,u){let m=R.ContentType,f=e.period.id;e.representation=this.createFrame_(c,e.adaptationSet,null);let g=e.representation.id;if(this.minTotalAvailabilityTimeOffset_=Math.min(this.minTotalAvailabilityTimeOffset_,e.representation.availabilityTimeOffset),this.isLowLatency_=this.minTotalAvailabilityTimeOffset_>0,!this.verifyRepresentation_(e.representation))return p.warning("Skipping Representation",e.representation),null;let _=e.periodInfo.start;e.bandwidth=I.parseAttr(c,"bandwidth",I.parsePositiveInt)||0,e.roles=a;let T=Me.parseEssentialProperties(c),S=Me.parseSupplementalProperties(c),b=I.findChildren(c,"ContentProtection"),E=O=>ft.URL_PARAM_DESCRIPTOR_SCHEMES_.has(O.schemeIdUri),C=null,A=T.find(E)||S.find(E);A&&(C=this.getURLParametersFunction_(A.element));let w=this.findRequestParamFn_(c,"segment");w&&(C=w),C&&(e.urlParams=C);let M,x=e.representation.contentType,k=x==m.TEXT||x==m.APPLICATION,L=x==m.IMAGE;b.length&&(e.adaptationSet.encrypted=!0);try{let O;if(t.aes128Info){let Ie=e.representation.getBaseUris,tt=e.urlParams,_t=fe.resolveUris(Ie(),[t.aes128Info.keyUri],tt()),bt=K.RequestType.KEY,yt=K.makeRequest(_t,this.config_.retryParameters);O={bitsKey:128,blockCipherMode:"CBC",iv:t.aes128Info.iv,firstMediaSequenceNumber:0},O.fetchKey=async()=>{let xt=await this.makeNetworkRequest_(yt,bt);if(!xt.data||xt.data.byteLength!=16)throw new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.AES_128_INVALID_KEY_LENGTH);let mt={name:"AES-CBC"};O.cryptoKey=await window.crypto.subtle.importKey("raw",xt.data,mt,!0,["decrypt"]),O.fetchKey=void 0}}e.representation.aesKey=O;let $=(Ie,tt,_t,bt)=>this.requestSegment_(Ie,tt,_t,bt);if(e.representation.segmentBase)M=Hi.createStreamInfo(e,$,O);else if(e.representation.segmentList)M=Dn.createStreamInfo(e,this.streamMap_,O);else if(e.representation.segmentTemplate){let Ie=!!this.manifest_;M=fr.createStreamInfo(e,$,this.streamMap_,Ie,this.config_.dash.initialSegmentLimit,this.periodDurations_,O,u,!1,this.continuityCache_)}else{v.assert(k,"Must have Segment* with non-text streams.");let Ie=e.periodInfo.duration||0,tt=e.representation.getBaseUris,_t=e.representation.mimeType,bt=e.representation.codecs;M={endTime:-1,timeline:-1,generateSegmentIndex:()=>{let yt=Ze.forSingleSegment(_,Ie,tt());return yt.forEachTopLevelReference(xt=>{xt.mimeType=_t,xt.codecs=bt}),Promise.resolve(yt)},timescale:1}}}catch(O){if((k||L)&&O.code==h.Code.DASH_NO_SEGMENT_INFO)return null;throw O}let V=this.contentProtection_.parseFromRepresentation(b,t,this.config_.ignoreDrmInfo,this.config_.dash.keySystemsByURI),ee=new Set(V?[V]:[]),oe=Me.hasDescriptor(S,"tag:dolby.com,2018:dash:EC3_ExtensionType:2018","JOC"),le=Me.hasDescriptor(S,"tag:dolby.com,2016:dash:virtualized_content:2016","1"),H=oe||le,J=!1;k&&(J=a.includes("forced_subtitle")||a.includes("forced-subtitle"));let Z;if(L){let O=["http://dashif.org/thumbnail_tile","http://dashif.org/guidelines/thumbnail_tile"],$=T.find(Ie=>O.includes(Ie.schemeIdUri));if($&&(Z=$.value),!Z)return null}let ce,W=e.profiles,z=e.representation.codecs;W.includes("http://dashif.org/guidelines/dash-if-uhd#hevc-hdr-pq10")&&(z.includes("hvc1.2.4.L153.B0")||z.includes("hev1.2.4.L153.B0"))&&(ce="PQ");let Y=g?f+","+g:"";if(Y&&e.name&&(Y+=e.name),this.patchLocationNodes_.length&&Y&&this.contextCache_.set(Y,this.cloneContext_(e)),e.representation.producerReferenceTime&&this.parseProducerReferenceTime_(e.representation.producerReferenceTime,M,e.presentationTimeline),M.endTime!=-1&&f!=null&&g!=null){let O=this.continuityCache_.get(f);if(O)O.endTime=M.endTime,O.reps.includes(g)||O.reps.push(g),this.continuityCache_.set(f,O);else{let $={endTime:M.endTime,timeline:M.timeline,reps:[g]};this.continuityCache_.set(f,$)}}let X;return Y&&this.streamMap_.has(Y)?X=this.streamMap_.get(Y):X={id:this.globalId_++,originalId:g,groupId:null,createSegmentIndex:()=>Promise.resolve(),closeSegmentIndex:()=>{X.segmentIndex&&(X.segmentIndex.release(),X.segmentIndex=null)},segmentIndex:null,mimeType:e.representation.mimeType,codecs:z,supplementalCodecs:e.representation.supplementalCodecs,frameRate:e.representation.frameRate,pixelAspectRatio:e.representation.pixelAspectRatio,bandwidth:e.bandwidth,width:e.representation.width,height:e.representation.height,kind:i,encrypted:t.drmInfos.length>0,drmInfos:t.drmInfos,keyIds:ee,language:r,originalLanguage:e.adaptationSet.language,label:s,type:e.adaptationSet.contentType,primary:n,trickModeVideo:null,dependencyStream:null,emsgSchemeIdUris:e.representation.emsgSchemeIdUris,roles:a,forced:J,channelsCount:e.representation.numChannels,audioSamplingRate:e.representation.audioSamplingRate,spatialAudio:H,closedCaptions:o,hdr:ce,colorGamut:void 0,videoLayout:void 0,tilesLayout:Z,accessibilityPurpose:d,external:!1,fastSwitching:!1,fullMimeTypes:new Set([N.getFullType(e.representation.mimeType,e.representation.codecs)]),isAudioMuxedInVideo:!1,baseOriginalId:null,isIframe:!1},X.createSegmentIndex=async()=>{X.segmentIndex||(X.segmentIndex=await M.generateSegmentIndex())},Y&&e.dynamic&&!this.streamMap_.has(Y)&&(this.streamMap_.set(Y,X),this.indexStreamMap_.getOrInsertComputed(f||"",()=>[]).push(Y)),X}parseProducerReferenceTime_(e,t,i){if(this.parsedPrftNodes_.has(e))return;this.parsedPrftNodes_.add(e);let r=I.parseAttr(e,"presentationTime",I.parseNonNegativeInt)||0,s=I.findChild(e,"UTCTiming"),n;if(!s||!s.attributes.schemeIdUri||ft.isNtpScheme_(s.attributes.schemeIdUri)){let d=I.parseAttr(e,"wallClockTime",I.parseNonNegativeInt)||0;n=Wr.convertNtp(d)}else n=(I.parseAttr(e,"wallClockTime",I.parseDate)||0)*1e3;let o=new Date(n-r/t.timescale*1e3),c=o.getTime()/1e3;if(!isNaN(c)){i.isStartTimeLocked()||i.setInitialProgramDateTime(c);let d={wallClockTime:n,programStartDate:o},u=U.EventName.Prft,m=new Map().set("detail",d),f=new U(u,m);this.playerInterface_.onEvent(f)}}cloneContext_(e){let t=r=>{if(!r)return null;let s=Ne.shallowCloneObject(r);return s.segmentBase=null,s.segmentList=null,s.segmentTemplate=I.cloneNode(s.segmentTemplate),s.producerReferenceTime=null,s},i=Ne.shallowCloneObject(e);return i.period=t(i.period),i.adaptationSet=t(i.adaptationSet),i.representation=t(i.representation),i.periodInfo&&(i.periodInfo=Ne.shallowCloneObject(i.periodInfo),i.periodInfo.node=null),i}async onUpdate_(){v.assert(this.updatePeriod_>=0,"There should be an update period"),p.info("Updating manifest...");let e=0;try{e=await this.requestManifest_()}catch(t){if(v.assert(t instanceof h,"Should only receive a Shaka error"),this.playerInterface_){if(this.config_.raiseFatalErrorOnManifestUpdateRequestFailure){this.playerInterface_.onError(t);return}t.severity=h.Severity.RECOVERABLE,this.playerInterface_.onError(t)}}this.playerInterface_&&(this.playerInterface_.onManifestUpdated(),this.setUpdateTimer_(e))}updateNow_(){this.updateTimer_.tickNow()}setUpdateTimer_(e){if(this.updatePeriod_<0)return;let t=this.updatePeriod_;this.config_.updatePeriod>=0&&(t=this.config_.updatePeriod);let i=Math.max(t-e,this.averageUpdateDuration_.getEstimate());this.updateTimer_.tickAfter(i)}createFrame_(e,t,i){v.assert(t||i,"Must provide either parent or getBaseUris"),t=t||{contentType:"",mimeType:"",codecs:"",supplementalCodecs:"",emsgSchemeIdUris:[],frameRate:void 0,pixelAspectRatio:void 0,numChannels:null,audioSamplingRate:null,availabilityTimeOffset:0,segmentSequenceCadence:1,encrypted:!1},i=i||t.getBaseUris;let r=I.parseNonNegativeInt,s=I.evalDivision,n=e.attributes.id,a=e.attributes.supplementalId,o=I.findChildren(e,"BaseURL"),c,d=!1;if(this.contentSteeringManager_)for(let W of o){let z=W.attributes.serviceLocation,ge=I.getContents(W);z&&ge&&(this.contentSteeringManager_.addLocation(n,z,ge),d=!0)}(!d||!this.contentSteeringManager_)&&(c=o.map(I.getContents));let u=this.contentSteeringManager_,m=()=>o.length?u&&d?u.getLocations(n):c||[]:[],f=e.attributes.contentType||t.contentType,g=e.attributes.mimeType||t.mimeType,_=[e.attributes.codecs||t.codecs],T=vt.codecsFiltering(_).join(","),S=[I.getAttributeNS(e,ft.SCTE214_,"supplementalCodecs")||t.supplementalCodecs],b=vt.codecsFiltering(S).join(","),E=I.parseAttr(e,"frameRate",s)||t.frameRate,C=e.attributes.sar||t.pixelAspectRatio,A=this.emsgSchemeIdUris_(I.findChildren(e,"InbandEventStream"),t.emsgSchemeIdUris),w=I.findChildren(e,"AudioChannelConfiguration"),M=this.parseAudioChannels_(w)||t.numChannels,x=I.parseAttr(e,"audioSamplingRate",r)||t.audioSamplingRate;f||(f=ft.guessContentType_(g,T));let k=I.findChild(e,"SegmentBase"),L=I.findChild(e,"SegmentTemplate"),V=k&&I.parseAttr(k,"availabilityTimeOffset",I.parseFloat)||0,ee=L&&I.parseAttr(L,"availabilityTimeOffset",I.parseFloat)||0,oe=o&&o.length&&I.parseAttr(o[0],"availabilityTimeOffset",I.parseFloat)||0,le=t.availabilityTimeOffset+oe+V+ee,H=null,J=I.findChild(e,"SegmentSequenceProperties");if(J){let W=I.parseAttr(J,"cadence",I.parsePositiveInt);W&&(H=W)}let Z=e.attributes.label,ce=I.findChildren(e,"Label");if(ce&&ce.length){let W=ce[0];I.getTextContents(W)&&(Z=I.getTextContents(W))}return{getBaseUris:()=>fe.resolveUris(i(),m()),segmentBase:k||t.segmentBase,segmentList:I.findChild(e,"SegmentList")||t.segmentList,segmentTemplate:L||t.segmentTemplate,producerReferenceTime:I.findChild(e,"ProducerReferenceTime")||t.producerReferenceTime,width:I.parseAttr(e,"width",r)||t.width,height:I.parseAttr(e,"height",r)||t.height,contentType:f,mimeType:g,codecs:T,supplementalCodecs:b.split(" ").join(","),frameRate:E,pixelAspectRatio:C,emsgSchemeIdUris:A,id:a||n,originalId:n,language:e.attributes.lang,numChannels:M,audioSamplingRate:x,availabilityTimeOffset:le,initialization:null,segmentSequenceCadence:H||t.segmentSequenceCadence,label:Z||null,encrypted:!1}}emsgSchemeIdUris_(e,t){let i=t.slice();for(let r of e){let s=r.attributes.schemeIdUri;i.includes(s)||i.push(s)}return i}parseAudioChannels_(e){for(let t of e){let i=t.attributes.schemeIdUri;if(!i)continue;let r=t.attributes.value;if(r)switch(i){case"urn:mpeg:dash:outputChannelPositionList:2012":return r.trim().split(/ +/).length;case"urn:mpeg:dash:23003:3:audio_channel_configuration:2011":case"urn:dts:dash:audio_channel_configuration:2012":{let s=parseInt(r,10);if(!s){p.warning("Channel parsing failure! Ignoring scheme and value",i,r);continue}return s}case"tag:dolby.com,2015:dash:audio_channel_configuration:2015":{let s=[2,1,2,2,2,2,1,2,2,1,1,1,1,2,1,1,2,2],n=parseInt(r,16);if(!n){p.warning("Channel parsing failure! Ignoring scheme and value",i,r);continue}let a=0;for(let o=0;o<s.length;o++)n&1<<o&&(a+=s[o]);if(a)return a;continue}case"tag:dolby.com,2014:dash:audio_channel_configuration:2011":case"urn:dolby:dash:audio_channel_configuration:2011":{let s=[1,1,1,1,1,2,2,1,1,2,2,2,1,2,1,1].reverse(),n=parseInt(r,16);if(!n){p.warning("Channel parsing failure! Ignoring scheme and value",i,r);continue}let a=0;for(let o=0;o<s.length;o++)n&1<<o&&(a+=s[o]);if(a)return a;continue}case"urn:mpeg:mpegB:cicp:ChannelConfiguration":{let n=[0,1,2,3,4,5,6,8,2,3,4,7,8,24,8,12,10,12,14,12,14],a=parseInt(r,10);if(!a){p.warning("Channel parsing failure! Ignoring scheme and value",i,r);continue}if(a>0&&a<n.length)return n[a];continue}default:p.warning("Unrecognized audio channel scheme:",i,r);continue}}return null}verifyRepresentation_(e){let t=R.ContentType,i=0;return i+=e.segmentBase?1:0,i+=e.segmentList?1:0,i+=e.segmentTemplate?1:0,i==0?e.contentType==t.TEXT||e.contentType==t.APPLICATION?!0:(p.warning("Representation does not contain a segment information source:","the Representation must contain one of SegmentBase, SegmentList,",'SegmentTemplate, or explicitly indicate that it is "text".',e),!1):(i!=1&&(p.warning("Representation contains multiple segment information sources:","the Representation should only contain one of SegmentBase,","SegmentList, or SegmentTemplate.",e),e.segmentBase?(p.info("Using SegmentBase by default."),e.segmentList=null,e.segmentTemplate=null):(v.assert(e.segmentList,"There should be a SegmentList"),p.info("Using SegmentList by default."),e.segmentTemplate=null)),!0)}async requestForTiming_(e,t,i){let r=[q.htmlUnescape(t)],s=fe.resolveUris(e(),r),n=K.makeRequest(s,this.config_.retryParameters);n.method=i;let a=K.RequestType.TIMING,o=this.playerInterface_.networkingEngine.request(a,n,{isPreload:this.isPreloadFn_()});this.operationManager_.manage(o);let c=await o.promise,d;if(i=="HEAD"){if(!c.headers||!c.headers.date)return p.warning("UTC timing response is missing","expected date header"),0;d=c.headers.date}else d=q.fromUTF8(c.data);let u=Date.parse(d);return isNaN(u)?(p.warning("Unable to parse date from UTC timing response"),0):u-Date.now()}async parseUtcTiming_(e,t){let i=t.map(s=>({scheme:s.attributes.schemeIdUri,value:s.attributes.value})),r=this.config_.dash.clockSyncUri;!i.length&&r&&i.push({scheme:"urn:mpeg:dash:utc:http-head:2014",value:r});for(let s of i)try{let n=s.scheme,a=s.value;switch(n){case"urn:mpeg:dash:utc:http-head:2014":case"urn:mpeg:dash:utc:http-head:2012":return await this.requestForTiming_(e,a,"HEAD");case"urn:mpeg:dash:utc:http-xsdate:2014":case"urn:mpeg:dash:utc:http-iso:2014":case"urn:mpeg:dash:utc:http-xsdate:2012":case"urn:mpeg:dash:utc:http-iso:2012":return await this.requestForTiming_(e,a,"GET");case"urn:mpeg:dash:utc:direct:2014":case"urn:mpeg:dash:utc:direct:2012":{let o=Date.parse(a);return isNaN(o)?0:o-Date.now()}case"urn:mpeg:dash:utc:http-ntp:2014":case"urn:mpeg:dash:utc:ntp:2014":case"urn:mpeg:dash:utc:sntp:2014":p.alwaysWarn("NTP UTCTiming scheme is not supported");break;default:p.alwaysWarn("Unrecognized scheme in UTCTiming element",n);break}}catch(n){p.warning("Error fetching time from UTCTiming elem",n.message)}return p.alwaysWarn("A UTCTiming element should always be given in live manifests! This content may not play on clients with bad clocks!"),0}parseEventStream_(e,t,i,r){let s=I.parseNonNegativeInt,n=i.attributes.schemeIdUri||"",a=i.attributes.value||"",o=I.parseAttr(i,"timescale",s)||1,c=I.parseAttr(i,"presentationTimeOffset",s)||0,d;n==="urn:mpeg:dash:event:alternativeMPD:insert:2025"||n==="urn:mpeg:dash:event:alternativeMPD:replace:2025"?d="altmpd":n==="urn:mpeg:dash:event:callback:2015"&&(d="callback");let u=d?this.findRequestParamFn_(i,d):void 0;for(let m of I.findChildren(i,"Event")){let f=I.parseAttr(m,"presentationTime",s)||0,g=I.parseAttr(m,"duration",s)||0,_=Math.max((f-c)/o+e,e),T=_+g/o;if(t!=null&&(_=Math.min(_,e+t),T=Math.min(T,e+t)),T<r)continue;let S={schemeIdUri:n,value:a,startTime:_,endTime:T,id:m.attributes.id||"",timescale:o,eventNode:I.cloneNode(m),urlParams:u};this.playerInterface_.onTimelineRegionAdded(S)}}async requestSegment_(e,t,i,r){let s=K.RequestType.SEGMENT,n=r?K.AdvancedRequestType.INIT_SEGMENT:K.AdvancedRequestType.MEDIA_SEGMENT,a=ct.createSegmentRequest(e,t,i,this.playerInterface_.getStreamingRetryParameters());return(await this.makeNetworkRequest_(a,s,{type:n})).data}static guessContentType_(e,t){let i=N.getFullType(e,t);return Ue.isTypeSupported(i)?R.ContentType.TEXT:e.split("/")[0]}makeNetworkRequest_(e,t,i){i||(i={}),i.isPreload=this.isPreloadFn_();let r=this.playerInterface_.networkingEngine.request(t,e,i);return this.operationManager_.manage(r),r.promise}updatePatchLocationNodes_(e){I.modifyNodes(this.patchLocationNodes_,e)}getPatchLocationUris_(){let e=this.manifestPatchContext_.mpdId,t=this.manifestPatchContext_.publishTime;if(!e||!t||!this.patchLocationNodes_.length)return[];let i=Date.now()/1e3,r=this.patchLocationNodes_.filter(s=>{let n=I.parseNonNegativeInt(s.attributes.ttl);return!n||t+n>i}).map(I.getContents).filter(it.isNotNull);return r.length?fe.resolveUris(this.manifestUris_,r):[]}static isNtpScheme_(e){return e==="urn:mpeg:dash:utc:http-ntp:2014"||e==="urn:mpeg:dash:utc:ntp:2014"||e==="urn:mpeg:dash:utc:sntp:2014"}static defaultUrlParams_(){return""}static makeBaseUriGetter_(e,t,i){return()=>e&&t?e.getLocations("BaseURL"):i.slice()}};l(ft,"SCTE214_","urn:scte:dash:scte214-extensions"),l(ft,"UP_NAMESPACE_2014_","urn:mpeg:dash:schema:urlparam:2014"),l(ft,"UP_NAMESPACE_2016_","urn:mpeg:dash:schema:urlparam:2016"),l(ft,"URL_PARAM_DESCRIPTOR_SCHEMES_",new Set(["urn:mpeg:dash:urlparam:2014","urn:mpeg:dash:urlparam:2016"])),l(ft,"SUPPORTED_ESSENTIAL_PROPERTIES_",new Set(["http://dashif.org/guidelines/trickmode","http://dashif.org/thumbnail_tile","http://dashif.org/guidelines/thumbnail_tile","urn:mpeg:mpegB:cicp:TransferCharacteristics","urn:mpeg:mpegB:cicp:ColourPrimaries","urn:mpeg:mpegB:cicp:MatrixCoefficients","urn:mpeg:dash:ssr:2023","urn:dvb:dash:fontdownload:2014","urn:mpeg:dash:urlparam:2014","urn:mpeg:dash:urlparam:2016","urn:mpeg:dash:urlparam:2025","urn:mpeg:dash:pattern:2024"]));var Br=ft;me.registerParserByMime("application/dash+xml",()=>new Br);me.registerParserByMime("video/vnd.mpeg.dash.mpd",()=>new Br);/*! @license
619
+ * Shaka Player
620
+ * Copyright 2016 Google LLC
621
+ * SPDX-License-Identifier: Apache-2.0
622
+ */var Un=class{static jsonToMpd(e){let t="urn:mpeg:dash:schema:mpd:2011";function i(c){return String(c).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}function r(c,d,u){let m="<"+c;for(let[f,g]of Object.entries(d))m+=` ${f}="${i(g)}"`;return u===""?m+"/>":m+">"+u+`</${c}>`}function s(c,d,u){if(d==null)return r(c,{},"");if(typeof d!="object")return r(c,{},i(String(d)));let m={},f="",g=[],_=d;for(let[T,S]of Object.entries(_)){if(T==="$value"||T==="$ns")continue;if(u[T]!==void 0&&typeof S=="object"&&S!=null){let A=T,w=S;for(let[M,x]of Object.entries(w))if(Array.isArray(x))for(let k of x){let L=`${A}:${M}`;g.push(s(L,k,u))}else if(typeof x=="object"){let k=`${A}:${M}`;g.push(s(k,x,u))}else m[`${A}:${M}`]=x;continue}let E=S;if(!(typeof E=="object"&&E!=null))m[T]=E;else if(Array.isArray(E))for(let A of E)g.push(s(T,A,u));else g.push(s(T,E,u))}return d.$value!==void 0&&d.$value!==null&&(f=i(d.$value)),r(c,m,f+g.join(""))}let n={};if(e.$ns&&typeof e.$ns=="object")for(let[c,d]of Object.entries(e.$ns)){let u=d.prefix;n[u]=c}let a={xmlns:t};for(let[c,d]of Object.entries(n))a[`xmlns:${c}`]=d;for(let[c,d]of Object.entries(e))c!=="$ns"&&(typeof d!="object"||d===null)&&(a[c]=d);let o="";for(let[c,d]of Object.entries(e))if(c!=="$ns"){if(c in n){let u=d;for(let[m,f]of Object.entries(u))if(Array.isArray(f))for(let g of f){let _=`${c}:${m}`;o+=s(_,g,n)}else if(typeof f=="object"){let g=`${c}:${m}`;o+=s(g,f,n)}else a[`${c}:${m}`]=f;continue}if(typeof d=="object"&&d!==null)if(Array.isArray(d))for(let u of d)o+=s(c,u,n);else o+=s(c,d,n)}return r("MPD",a,o)}};/*! @license
623
+ * Shaka Player
624
+ * Copyright 2016 Google LLC
625
+ * SPDX-License-Identifier: Apache-2.0
626
+ */var Ln=class extends Br{parseManifest(e,t,i){let r=q.fromBytesAutoDetect(e),s;try{let n=JSON.parse(r),a=Un.jsonToMpd(n);s=I.parseXmlString(a,i)}catch(n){throw new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.DASH_INVALID_JSON,t)}return this.processParsedMpd(s,t,i)}};me.registerParserByMime("application/dash+json",()=>new Ln);/*! @license
627
+ * Shaka Player
628
+ * Copyright 2016 Google LLC
629
+ * SPDX-License-Identifier: Apache-2.0
630
+ */var ut=class{constructor(){l(this,"abstractDeviceType_");l(this,"browserEngine_");this.abstractDeviceType_=new _e(()=>{var s;let e=navigator.userAgent.toLowerCase(),t=[{type:ie.DeviceType.VR,regex:/oculus|quest/},{type:ie.DeviceType.TV,regex:/smart[ _]?tv|android ?tv/},{type:ie.DeviceType.MOBILE,regex:/iphone|ipad|ipod|android/}];for(let n of t)if(n.regex.test(e))return n.type;let i=navigator.userAgentData,r=((s=i==null?void 0:i.platform)==null?void 0:s.toLowerCase())||"";return i?i.mobile?ie.DeviceType.MOBILE:r.includes("android")?ie.DeviceType.TV:ie.DeviceType.DESKTOP:ie.DeviceType.DESKTOP}),this.browserEngine_=new _e(()=>{let e=navigator.userAgent;return navigator.vendor.includes("Apple")&&(e.includes("Version/")||e.includes("OS/"))?ie.BrowserEngine.WEBKIT:e.includes("Edge/")?ie.BrowserEngine.EDGE:e.includes("Chrome/")?ie.BrowserEngine.CHROMIUM:e.includes("Firefox/")?ie.BrowserEngine.GECKO:ie.BrowserEngine.UNKNOWN})}supportsMediaSource(){let e=window.ManagedMediaSource||window.MediaSource;return!(!e||!e.isTypeSupported)}supportsMediaType(e){return Ge.anyMediaElement().canPlayType(e)!=""}supportsMediaCapabilities(){return!!navigator.mediaCapabilities}getDeviceType(){return this.abstractDeviceType_.value()}getBrowserEngine(){return this.browserEngine_.value()}requiresEncryptionInfoInAllInitSegments(e,t){return!1}requiresClearAndEncryptedInitSegments(e){return!1}insertEncryptionDataBeforeClear(e){return!1}requiresTfhdFix(e){return!1}requiresEC3InitSegments(){return!1}getChromeVersion_(){let e=null,t=navigator.userAgent.match(/Chrome\/(\d+)/);return t&&(e=parseInt(t[1],10)),e}requiresDvvcWorkaround(e){if(this.getBrowserEngine()!=ie.BrowserEngine.CHROMIUM)return!1;let i=this.getChromeVersion_();return e.type==="video"&&i!=null&&i<94&&e.supplementalCodecs!=e.codecs&&/dvh1|dvhe/.test(e.supplementalCodecs)}supportsSequenceMode(){return!0}supportsSmoothCodecSwitching(e){let t=window.ManagedSourceBuffer||window.SourceBuffer;return!!t&&!!t.prototype&&!!t.prototype.changeType}supportsServerCertificate(){return!0}seekDelay(){return 0}detectMaxHardwareResolution(){return Promise.resolve({width:1/0,height:1/0})}shouldOverrideDolbyVisionCodecs(){return!1}shouldAvoidUseTextDecoderEncoder(){return!1}adjustConfig(e){let t=this.getDeviceType();return(t===ie.DeviceType.TV||t===ie.DeviceType.CONSOLE||t===ie.DeviceType.CAST)&&(e.ads.customPlayheadTracker=!0,e.ads.skipPlayDetection=!0,e.ads.supportsMultipleMediaElements=!1),t===ie.DeviceType.TV&&(e.textDisplayer.suspendRenderingWhenHidden=!1),e}supportsOfflineStorage(){return!!window.indexedDB}rejectCodecs(){return[]}getHdrLevel(e){return window.matchMedia!==void 0&&(window.matchMedia("(color-gamut: p3)").matches||window.matchMedia("(dynamic-range: high)").matches)?e?"HLG":"PQ":"SDR"}supportsAirPlay(){return!1}misreportAC3UsingDrm(){return!1}returnLittleEndianUsingPlayReady(){return!1}supportsEncryptionSchemePolyfill(){return!0}misreportsSupportForPersistentLicenses(){return!1}supportStandardVP9Checking(){return!0}createMediaKeysWhenCheckingSupport(){return!0}disableHEVCSupport(){return!1}supportsCbcsWithoutEncryptionSchemeSupport(){return!1}needWaitForEncryptedEvent(e){return e==="com.apple.fps"}supportsContainerChangeType(){return!0}getRemote(e){let t=this.getDeviceType();return[ie.DeviceType.DESKTOP,ie.DeviceType.MOBILE,ie.DeviceType.VR,ie.DeviceType.APPLE_VR].includes(t)?e.remote:null}supportsWorkerTransmux(){return typeof Worker!="undefined"}hasWorkingClearKeySupport(){return!0}toString(){return`Device: ${this.getDeviceName()} v${this.getVersion()}; Type: ${this.getDeviceType()}`}};/*! @license
631
+ * Shaka Player
632
+ * Copyright 2016 Google LLC
633
+ * SPDX-License-Identifier: Apache-2.0
634
+ */var Nn=class extends ut{constructor(){super();l(this,"version_");l(this,"deviceType_");this.version_=new _e(()=>{let t=navigator.userAgent.match(/Version\/(\d+)(?:\.(\d+))?/);return t||(t=navigator.userAgent.match(/OS (\d+)(?:_(\d+))?/)),t?[parseInt(t[1],10),parseInt(t[2]||"0",10)]:[0,0]}),this.deviceType_=new _e(()=>/(?:iPhone|iPad|iPod)/.test(navigator.userAgent)||navigator.maxTouchPoints>1?"xr"in navigator?ie.DeviceType.APPLE_VR:ie.DeviceType.MOBILE:"xr"in navigator?ie.DeviceType.APPLE_VR:ie.DeviceType.DESKTOP)}getVersion(){return this.version_.value()[0]}getDeviceName(){return"Apple Browser"}getDeviceType(){return this.deviceType_.value()}getBrowserEngine(){return ie.BrowserEngine.WEBKIT}supportsMediaCapabilities(){return!1}requiresEncryptionInfoInAllInitSegments(t,i){return!this.supportsMixedClearEncryptedContent_()&&i==="audio"}insertEncryptionDataBeforeClear(){return!this.supportsMixedClearEncryptedContent_()}requiresTfhdFix(t){return!this.supportsMixedClearEncryptedContent_()&&t==="audio"}adjustConfig(t){return super.adjustConfig(t),t.abr.minTimeToSwitch=.5,t}supportsAirPlay(){return!0}supportsContainerChangeType(){return!1}hasWorkingClearKeySupport(){return!1}supportsMixedClearEncryptedContent_(){let t=this.version_.value();return t[0]>=27?!0:t[0]===26&&t[1]>=4}static isAppleBrowser_(){return(navigator.vendor||"").includes("Apple")?/(?:iPhone|iPad|iPod)/.test(navigator.userAgent)||navigator.maxTouchPoints>1||navigator.userAgentData&&navigator.userAgentData.platform&&navigator.userAgentData.platform.toLowerCase()=="macos"?!0:!!(navigator.platform&&navigator.platform.toLowerCase().includes("mac")):!1}};Nn.isAppleBrowser_()&&j.registerDeviceFactory(()=>new Nn);/*! @license
635
+ * Shaka Player
636
+ * Copyright 2016 Google LLC
637
+ * SPDX-License-Identifier: Apache-2.0
638
+ */var ki=class ki extends ut{constructor(){if(!ki.isChromecast_())throw new Error("Not a Chromecast device!");super();l(this,"version_");l(this,"osType_");this.version_=new _e(()=>{let t=navigator.userAgent.match(/Chrome\/(\d+)/);return t?parseInt(t[1],10):null}),this.osType_=new _e(()=>{let t=navigator.userAgentData&&navigator.userAgentData.platform||navigator.userAgent;return t=t.toLowerCase(),t.includes("android")?ki.OsType_.ANDROID:t.includes("fuchsia")?ki.OsType_.FUCHSIA:ki.OsType_.LINUX})}getVersion(){return this.version_.value()}getDeviceName(){return"Chromecast with "+this.osType_.value()}getDeviceType(){return ie.DeviceType.CAST}getBrowserEngine(){return ie.BrowserEngine.CHROMIUM}supportsMediaCapabilities(){return super.supportsMediaCapabilities()&&this.osType_.value()!==ki.OsType_.LINUX}supportsSmoothCodecSwitching(t){return super.supportsSmoothCodecSwitching(t)&&this.osType_.value()!==ki.OsType_.LINUX}seekDelay(){switch(this.osType_.value()){case ki.OsType_.ANDROID:return 0;case ki.OsType_.FUCHSIA:return 3;default:return 1}}async detectMaxHardwareResolution(){let t=window.cast&&cast.__platform__&&cast.__platform__.canDisplayType,i={width:1280,height:720};try{t&&await cast.__platform__.canDisplayType('video/mp4; codecs="avc1.640028"; width=3840; height=2160')?(i.width=3840,i.height=2160):t&&await cast.__platform__.canDisplayType('video/mp4; codecs="avc1.640028"; width=1920; height=1080')&&(i.width=1920,i.height=1080)}catch(r){p.alwaysError("Failed to check canDisplayType:",r)}return i}adjustConfig(t){return super.adjustConfig(t),t.streaming.stallSkip=0,t}supportsOfflineStorage(){return!1}supportsCbcsWithoutEncryptionSchemeSupport(){return!0}static isChromecast_(){return navigator.userAgent.includes("CrKey")&&!navigator.userAgent.includes("VIZIO SmartCast")}};l(ki,"OsType_",{ANDROID:"Android",FUCHSIA:"Fuchsia",LINUX:"Linux"});var On=ki;On.isChromecast_()&&j.registerDeviceFactory(()=>new On);/*! @license
639
+ * Shaka Player
640
+ * Copyright 2016 Google LLC
641
+ * SPDX-License-Identifier: Apache-2.0
642
+ *//*! @license
643
+ * Shaka Player
644
+ * Copyright 2016 Google LLC
645
+ * SPDX-License-Identifier: Apache-2.0
646
+ */var ao=class extends ut{constructor(){super();l(this,"version_");l(this,"deviceName_");l(this,"isWindows_");l(this,"isSonyTV_");l(this,"isAndroid_");this.version_=new _e(()=>{let t=navigator.userAgent.match(/(Chrome|Firefox)\/(\d+)/);return t?parseInt(t[2],10):null}),this.deviceName_=new _e(()=>navigator.userAgent.match(/Edge?\//)?"Edge":navigator.userAgent.includes("Chrome")?"Chrome":navigator.userAgent.includes("Firefox")?"Firefox":"Unknown"),this.isWindows_=new _e(()=>navigator.userAgentData&&navigator.userAgentData.platform?navigator.userAgentData.platform.toLowerCase()=="windows":navigator.platform?navigator.platform.toLowerCase().includes("win32"):!1),this.isSonyTV_=new _e(()=>navigator.userAgent.includes("sony.hbbtv.tv")),this.isAndroid_=new _e(()=>navigator.userAgentData&&navigator.userAgentData.platform?navigator.userAgentData.platform.toLowerCase()=="android":!!navigator.userAgent.includes("Android"))}getVersion(){return this.version_.value()}getDeviceName(){return this.deviceName_.value()}requiresEncryptionInfoInAllInitSegments(t){return de.isPlayReadyKeySystem(t)?this.isWindows_.value():!1}requiresClearAndEncryptedInitSegments(t){return de.isPlayReadyKeySystem(t)||this.deviceName_.value()==="Edge"?this.isWindows_.value():!1}insertEncryptionDataBeforeClear(t){return de.isPlayReadyKeySystem(t)||this.deviceName_.value()==="Edge"?this.isWindows_.value():!1}supportsSmoothCodecSwitching(t){return this.isWindows_.value()&&de.isPlayReadyKeySystem(t)?!1:super.supportsSmoothCodecSwitching(t)}adjustConfig(t){if(super.adjustConfig(t),this.isWindows_.value())switch(this.deviceName_.value()){case"Firefox":t.drm.keySystemsMapping={"com.microsoft.playready":"com.microsoft.playready.recommendation"};break;case"Chrome":t.drm.keySystemsMapping={"com.microsoft.playready":"com.microsoft.playready.recommendation.3000","com.microsoft.playready.recommendation":"com.microsoft.playready.recommendation.3000"};break}return this.isAndroid_.value()&&(t.drm.defaultAudioRobustnessForWidevine="SW_SECURE_CRYPTO",t.drm.defaultVideoRobustnessForWidevine="SW_SECURE_CRYPTO"),t}returnLittleEndianUsingPlayReady(){return this.deviceName_.value()==="Edge"||this.isSonyTV_.value()}createMediaKeysWhenCheckingSupport(){return!(Fe&&!1&&this.isWindows_.value()&&this.getBrowserEngine()===ie.BrowserEngine.GECKO)}disableHEVCSupport(){return this.isWindows_.value()&&this.getBrowserEngine()===ie.BrowserEngine.GECKO}supportsCbcsWithoutEncryptionSchemeSupport(){if(this.getBrowserEngine()===ie.BrowserEngine.GECKO){let t=this.getVersion();return t!==null?t>=100:super.supportsCbcsWithoutEncryptionSchemeSupport()}return super.supportsCbcsWithoutEncryptionSchemeSupport()}needWaitForEncryptedEvent(t){return this.getBrowserEngine()===ie.BrowserEngine.GECKO?de.isPlayReadyKeySystem(t):super.needWaitForEncryptedEvent(t)}};j.registerDefaultDeviceFactory(()=>new ao);/*! @license
647
+ * Shaka Player
648
+ * Copyright 2016 Google LLC
649
+ * SPDX-License-Identifier: Apache-2.0
650
+ */var Bn=class extends ut{getVersion(){return null}getDeviceName(){return"Hisense"}getDeviceType(){return ie.DeviceType.TV}supportsMediaCapabilities(){return!1}supportsSmoothCodecSwitching(){return!1}detectMaxHardwareResolution(){let e={width:1920,height:1080},t=null;if(window.Hisense_Get4KSupportState)try{t=window.Hisense_Get4KSupportState()}catch(i){p.debug("Hisense: Failed to get 4K support state",i)}return t==null&&(t=navigator.userAgent.includes("UHD")),t&&(e.width=3840,e.height=2160),Promise.resolve(e)}adjustConfig(e){return super.adjustConfig(e),e.streaming.stallSkip=0,e}supportsWorkerTransmux(){return!1}static isHisense_(){return navigator.userAgent.includes("Hisense")||navigator.userAgent.includes("VIDAA")}};Bn.isHisense_()&&j.registerDeviceFactory(()=>new Bn);/*! @license
651
+ * Shaka Player
652
+ * Copyright 2016 Google LLC
653
+ * SPDX-License-Identifier: Apache-2.0
654
+ */var Fn=class extends ut{constructor(){super();l(this,"version_");this.version_=new _e(()=>{let t=navigator.userAgent.match(/PlayStation (\d+)/);return t?parseInt(t[1],10):null})}getDeviceName(){return"PlayStation"}getDeviceType(){return ie.DeviceType.CONSOLE}getBrowserEngine(){return ie.BrowserEngine.WEBKIT}getVersion(){return this.version_.value()}supportsMediaCapabilities(){return!1}supportsSequenceMode(){return!1}supportsSmoothCodecSwitching(t){return!1}shouldAvoidUseTextDecoderEncoder(){return this.getVersion()===4}async detectMaxHardwareResolution(){let t={width:1920,height:1080},i=!1;try{i=(await window.msdk.device.getDisplayInfo()).resolution==="4K"}catch(r){try{i=(await window.msdk.device.getDisplayInfoImmediate()).resolution==="4K"}catch(s){p.alwaysWarn("PlayStation: Failed to get the display info:",s)}}return i&&(t.width=3840,t.height=2160),t}adjustConfig(t){return super.adjustConfig(t),this.getVersion()===4&&t.drm.preferredKeySystems.push("com.microsoft.playready"),t.streaming.clearDecodingCache=!0,t}returnLittleEndianUsingPlayReady(){return this.getVersion()===4}supportsEncryptionSchemePolyfill(){return this.getVersion()!==4}static isPlayStation_(){return navigator.userAgent.includes("PlayStation")}};Fn.isPlayStation_()&&j.registerDeviceFactory(()=>new Fn);/*! @license
655
+ * Shaka Player
656
+ * Copyright 2016 Google LLC
657
+ * SPDX-License-Identifier: Apache-2.0
658
+ */var Vn=class extends ut{getVersion(){return null}getDeviceName(){return"TitanOS"}getDeviceType(){return ie.DeviceType.TV}detectMaxHardwareResolution(){let e={width:1920,height:1080};try{SmartTvA_API.hasCapability("UHD")?(e.width=3840,e.height=2160):SmartTvA_API.hasCapability("FHD")?(e.width=1920,e.height=1080):(e.width=1280,e.height=720)}catch(t){p.alwaysWarn("Titan OS: Error detecting screen size, default screen size 1920x1080.",t)}return Promise.resolve(e)}getHdrLevel(e){try{if(SmartTvA_API.hasCapability("HDR","HDR10")||SmartTvA_API.hasCapability("HDR","DV"))return e?"HLG":"PQ"}catch(t){return p.alwaysWarn("Titan OS: Error checking HDR support",t),super.getHdrLevel(e)}return"SDR"}static isTitanOS_(){return navigator.userAgent.includes("TitanOS")}};Vn.isTitanOS_()&&j.registerDeviceFactory(()=>new Vn);/*! @license
659
+ * Shaka Player
660
+ * Copyright 2016 Google LLC
661
+ * SPDX-License-Identifier: Apache-2.0
662
+ */var Hn=class extends ut{getVersion(){return null}getDeviceName(){return"TiVoOS"}getDeviceType(){return ie.DeviceType.TV}getBrowserEngine(){return ie.BrowserEngine.CHROMIUM}supportsSmoothCodecSwitching(e){return!1}static isTiVoOS_(){return navigator.userAgent.includes("TiVoOS")}};Hn.isTiVoOS_()&&j.registerDeviceFactory(()=>new Hn);/*! @license
663
+ * Shaka Player
664
+ * Copyright 2016 Google LLC
665
+ * SPDX-License-Identifier: Apache-2.0
666
+ */var Gn=class extends ut{constructor(){super();l(this,"osMajorVersion_");l(this,"osMinorVersion_");let t=navigator.userAgent.match(/Tizen (\d+).(\d+)/);this.osMajorVersion_=t?parseInt(t[1],10):null,this.osMinorVersion_=t?parseInt(t[2],10):null}getVersion(){return this.osMajorVersion_}getDeviceName(){return"Tizen"}getBrowserEngine(){return ie.BrowserEngine.CHROMIUM}getDeviceType(){return ie.DeviceType.TV}requiresEncryptionInfoInAllInitSegments(t){return!0}requiresEC3InitSegments(){return this.getVersion()===3}supportsMediaCapabilities(){return!1}supportsSequenceMode(){let t=this.getVersion();return t!==null?t>=4:super.supportsSequenceMode()}supportsSmoothCodecSwitching(t){return!1}supportsServerCertificate(){return!this.osMajorVersion_||!this.osMinorVersion_?super.supportsServerCertificate():this.osMajorVersion_===5?this.osMinorVersion_>=5:this.osMajorVersion_>5}detectMaxHardwareResolution(){let t=window.devicePixelRatio,i={width:window.screen.width*t>1920?3840:1920,height:window.screen.height*t>1080?2160:1080};try{if(webapis.systeminfo&&webapis.systeminfo.getMaxVideoResolution){let r=webapis.systeminfo.getMaxVideoResolution();i.width=r.width,i.height=r.height}else webapis.productinfo.is8KPanelSupported&&webapis.productinfo.is8KPanelSupported()?(i.width=7680,i.height=4320):webapis.productinfo.isUdPanelSupported&&webapis.productinfo.isUdPanelSupported()&&(i.width=3840,i.height=2160)}catch(r){p.alwaysWarn("Tizen: Error detecting screen size, default screen size 1920x1080.")}return Promise.resolve(i)}adjustConfig(t){return super.adjustConfig(t),t.drm.ignoreDuplicateInitData=this.getVersion()!==2,this.getVersion()===3&&(t.streaming.crossBoundaryStrategy=Ti.RESET_TO_ENCRYPTED),t.streaming.shouldFixTimestampOffset=!0,t.streaming.stallSkip=0,t.streaming.gapPadding=2,t}rejectCodecs(){let t=[];return this.osMajorVersion_!==null&&this.osMajorVersion_<5&&t.push("opus"),t}getHdrLevel(t){try{if(webapis.avinfo.isHdrTvSupport())return t?"HLG":"PQ"}catch(i){return super.getHdrLevel(t)}return"SDR"}misreportAC3UsingDrm(){return!0}misreportsSupportForPersistentLicenses(){return this.getVersion()===3}supportsWorkerTransmux(){let t=this.getVersion();return t!==null&&t<3?!1:super.supportsWorkerTransmux()}static isTizen_(){return navigator.userAgent.includes("Tizen")}};Gn.isTizen_()&&j.registerDeviceFactory(()=>new Gn);/*! @license
667
+ * Shaka Player
668
+ * Copyright 2016 Google LLC
669
+ * SPDX-License-Identifier: Apache-2.0
670
+ */var Kn=class extends ut{getVersion(){return null}getDeviceName(){return"Vizio"}getDeviceType(){return ie.DeviceType.TV}supportsMediaCapabilities(){return!1}static isVizio_(){return navigator.userAgent.includes("VIZIO SmartCast")}};Kn.isVizio_()&&j.registerDeviceFactory(()=>new Kn);/*! @license
671
+ * Shaka Player
672
+ * Copyright 2016 Google LLC
673
+ * SPDX-License-Identifier: Apache-2.0
674
+ */var qn=class extends ut{constructor(){super();l(this,"isSkyQ_");l(this,"isOrange_");l(this,"version_");this.isSkyQ_=new _e(()=>navigator.userAgent.includes("DT_STB_BCM")||navigator.userAgent.includes("Sky_STB")),this.isOrange_=new _e(()=>navigator.userAgent.includes("SOPOpenBrowser")),this.version_=new _e(()=>{if(navigator.userAgent.includes("DT_STB_BCM"))return 11;let t=navigator.userAgent.match(/Version\/(\d+)/);return t||(t=navigator.userAgent.match(/OS (\d+)(?:_\d+)?/),t)?parseInt(t[1],10):null})}getVersion(){return this.version_.value()}getDeviceName(){return"WebKit STB"}getDeviceType(){return ie.DeviceType.TV}getBrowserEngine(){return ie.BrowserEngine.WEBKIT}supportsMediaCapabilities(){return!1}supportsSequenceMode(){let t=this.version_.value();return t!==null?t>=15:!0}requiresEncryptionInfoInAllInitSegments(t){return this.isOrange_.value()}detectMaxHardwareResolution(){let t={width:window.screen.width*window.devicePixelRatio,height:window.screen.height*window.devicePixelRatio};return Promise.resolve(t)}supportsEncryptionSchemePolyfill(){return!this.isSkyQ_.value()}supportsContainerChangeType(){return!1}static isWebkitSTB_(){return navigator.userAgent.includes("PlayStation")?!1:navigator.userAgent.includes("SOPOpenBrowser")||navigator.userAgent.includes("DT_STB_BCM")||navigator.userAgent.includes("Sky_STB")?!0:!(navigator.vendor||"").includes("Apple")||/(?:iPhone|iPad|iPod)/.test(navigator.userAgent)||navigator.maxTouchPoints>1||navigator.userAgentData&&navigator.userAgentData.platform&&navigator.userAgentData.platform.toLowerCase()=="macos"?!1:!(navigator.platform&&navigator.platform.toLowerCase().includes("mac"))}};qn.isWebkitSTB_()&&j.registerDeviceFactory(()=>new qn);/*! @license
675
+ * Shaka Player
676
+ * Copyright 2016 Google LLC
677
+ * SPDX-License-Identifier: Apache-2.0
678
+ */var Wn=class extends ut{constructor(){super();l(this,"osVersion_");l(this,"supportHdr_");this.osVersion_=this.guessWebOSVersion_(),this.supportHdr_=null;try{let t=new PalmServiceBridge;t.onservicecallback=r=>{var n,a,o,c;p.info("WebOS: config support",r);let s=JSON.parse(r);this.supportHdr_=(c=(o=(n=s.configs)==null?void 0:n["tv.model.supportHDR"])!=null?o:(a=s.configs)==null?void 0:a["tv.config.supportDolbyHDRContents"])!=null?c:!1};let i={configNames:["tv.model.supportHDR","tv.config.supportDolbyHDRContents"]};t.call("luna://com.webos.service.config/getConfigs",JSON.stringify(i))}catch(t){p.alwaysWarn("WebOS: getConfigs call failed",t)}}getVersion(){return this.osVersion_}getDeviceName(){return"WebOS"}getDeviceType(){return ie.DeviceType.TV}getBrowserEngine(){return ie.BrowserEngine.CHROMIUM}supportsMediaCapabilities(){return!1}supportsSequenceMode(){let t=this.getVersion();return t!==null?t>3:super.supportsSequenceMode()}supportsSmoothCodecSwitching(t){return!1}supportsServerCertificate(){let t=this.getVersion();return t!==null?t>3:super.supportsServerCertificate()}detectMaxHardwareResolution(){let t={width:1920,height:1080};try{let i=JSON.parse(window.PalmSystem.deviceInfo);t.width=Math.max(1920,i.screenWidth),t.height=Math.max(1080,i.screenHeight)}catch(i){p.alwaysWarn("WebOS: Error detecting screen size, default screen size 1920x1080.")}return Promise.resolve(t)}adjustConfig(t){return super.adjustConfig(t),this.getVersion()===3&&(t.streaming.crossBoundaryStrategy=Ti.RESET),t.streaming.shouldFixTimestampOffset=!0,t.streaming.stallSkip=0,t}getHdrLevel(t){return this.supportHdr_==null?(p.alwaysWarn("WebOS: getConfigs call haven't finished"),super.getHdrLevel(t)):this.supportHdr_?t?"HLG":"PQ":"SDR"}guessWebOSVersion_(){let t=null,i=navigator.userAgent.match(/Chrome\/(\d+)/);switch(i&&(t=parseInt(i[1],10)),t){case 38:return 3;case 53:return 4;case 68:return 5;case 79:return 6;case 87:return 22;case 94:return 23;case 108:return 24;case 120:return 25;case 132:return 26;default:return null}}supportStandardVP9Checking(){return!1}supportsCbcsWithoutEncryptionSchemeSupport(){let t=this.getVersion();return t!==null?t>=6:super.supportsCbcsWithoutEncryptionSchemeSupport()}supportsWorkerTransmux(){let t=this.getVersion();return t!==null&&t<4?!1:super.supportsWorkerTransmux()}static isWebOS_(){return navigator.userAgent.includes("Web0S")}};if(Wn.isWebOS_()){let y=new Wn;j.registerDeviceFactory(()=>y)}/*! @license
679
+ * Shaka Player
680
+ * Copyright 2016 Google LLC
681
+ * SPDX-License-Identifier: Apache-2.0
682
+ */var zn=class y extends ut{constructor(){super();l(this,"isLegacyEdge_");l(this,"version_");this.isLegacyEdge_=navigator.userAgent.includes("Edge/");let t=navigator.userAgent.match(/Edge?\/(\d+)/);this.version_=t?parseInt(t[1],10):null}getVersion(){return this.version_}getDeviceName(){return"Xbox"}getDeviceType(){return ie.DeviceType.CONSOLE}getBrowserEngine(){return this.isLegacyEdge_?ie.BrowserEngine.EDGE:ie.BrowserEngine.CHROMIUM}requiresEncryptionInfoInAllInitSegments(t){return!0}requiresClearAndEncryptedInitSegments(){return!0}insertEncryptionDataBeforeClear(){return!0}shouldOverrideDolbyVisionCodecs(){return this.isLegacyEdge_}detectMaxHardwareResolution(){let t={width:1920,height:1080},i=y.getWinRT_();if(i)try{let r=new i.Media.Protection.ProtectionCapabilities,s=i.Media.Protection.ProtectionCapabilityResult,n=null,a='video/mp4;codecs="hvc1,mp4a";features="decode-res-x=3840,decode-res-y=2160,decode-bitrate=20000,decode-fps=30,decode-bpc=10,display-res-x=3840,display-res-y=2160,display-bpc=8"',o="com.microsoft.playready.recommendation";do n=r.isTypeSupported(a,o);while(n===s.maybe);n===s.probably&&(t.width=3840,t.height=2160)}catch(r){p.alwaysWarn("Xbox: Error detecting screen size, default screen size 1920x1080.")}return Promise.resolve(t)}adjustConfig(t){return super.adjustConfig(t),t.drm.parseInbandPsshEnabled=this.isLegacyEdge_,t.drm.preferredKeySystems.push("com.microsoft.playready"),this.isLegacyEdge_&&(t.streaming.gapPadding=.01),t}returnLittleEndianUsingPlayReady(){return!0}supportsOfflineStorage(){return!1}static getWinRT_(){let t=null;try{typeof Windows!="undefined"?t=Windows:t=chrome.webview.hostObjects.sync.Windows}catch(i){}return t}static isXbox_(){return navigator.userAgent.includes("Xbox One")||y.getWinRT_()!==null}};zn.isXbox_()&&j.registerDeviceFactory(()=>new zn);/*! @license
683
+ * Shaka Player
684
+ * Copyright 2016 Google LLC
685
+ * SPDX-License-Identifier: Apache-2.0
686
+ *//*! @license
687
+ * Shaka Player
688
+ * Copyright 2016 Google LLC
689
+ * SPDX-License-Identifier: Apache-2.0
690
+ */var Vs=class{constructor(e,t,i){l(this,"type");l(this,"tags");l(this,"segments");this.type=e,this.tags=t,this.segments=i||null}},Gi={MASTER:0,MEDIA:1},_r=class{constructor(e,t,i,r=null){l(this,"id");l(this,"name");l(this,"attributes");l(this,"value");this.id=e,this.name=t,this.attributes=i,this.value=r}toString(e){let t=s=>{let a=!isNaN(Number(s.value))?s.value:'"'+s.value+'"';return s.name+"="+a},i="#"+this.name,r=this.attributes?this.attributes.filter(s=>e?!e.has(s.name):!0).map(t):[];return this.value&&r.unshift(this.value),r.length>0&&(i+=":"+r.join(",")),i}getTagKey(e){if(e)return this.toString();let t=new Set().add("AUDIO").add("VIDEO").add("SUBTITLES").add("PATHWAY-ID").add("GROUP-ID").add("URI");return this.toString(t)}addAttribute(e){this.attributes.push(e)}getAttribute(e){return this.attributes.find(t=>t.name===e)||null}getAttributeValue(e,t){let i=this.getAttribute(e);return i?i.value:t||null}getRequiredAttrValue(e){let t=this.getAttribute(e);if(!t)throw new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.HLS_REQUIRED_ATTRIBUTE_MISSING,e);return t.value}setName(e){this.name=e}},Hs=class{constructor(e,t,i=[]){l(this,"tags");l(this,"verbatimSegmentUri");l(this,"partialSegments");this.tags=t,this.verbatimSegmentUri=e,this.partialSegments=i}},Fr=class{constructor(e,t){l(this,"name");l(this,"value");this.name=e,this.value=t}};/*! @license
691
+ * Shaka Player
692
+ * Copyright 2016 Google LLC
693
+ * SPDX-License-Identifier: Apache-2.0
694
+ */var he=class y{static filterTagsByName(e,t){return e.filter(i=>i.name==t)}static filterTagsByType(e,t){return e.filter(i=>i.getRequiredAttrValue("TYPE")==t)}static getFirstTagWithName(e,t){for(let i of e)if(i.name===t)return i;return null}static getFirstTagWithNameAsNumber(e,t,i=0){let r=y.getFirstTagWithName(e,t);return r?Number(r.value):i}static constructSegmentUris(e,t,i){return t?y.constructUris(e,[t],i):[]}static constructUris(e,t,i){if(!t.length)return[];let r=t;return i&&i.size&&(r=t.map(s=>y.variableSubstitution(s,i))),fe.resolveUris(e,r)}static variableSubstitution(e,t){if(!t||!t.size)return e;let i=String(e).replace(/%7B/g,"{").replace(/%7D/g,"}"),r=i.match(/{\$\w*}/g);if(r)for(let s of r){let n=s.slice(2,s.length-1),a=t.get(n);if(a)i=i.replace(s,a);else throw p.error("A variable has been found that is not declared",n),new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.HLS_VARIABLE_NOT_FOUND,n)}return i}static getExtinfDuration(e){let t=e.value,i=t.indexOf(",");return Number(i===-1?t:t.substring(0,i))}static isComment(e){return e.startsWith("#")&&!e.startsWith("#EXT")}static getSupplementalCodecs(e){let t=e.getAttributeValue("SUPPLEMENTAL-CODECS");return t?t.split(/\s*,\s*/).map(r=>r.split("/")[0]).join(","):""}};/*! @license
695
+ * Shaka Player
696
+ * Copyright 2016 Google LLC
697
+ * SPDX-License-Identifier: Apache-2.0
698
+ */var Di=class Di{constructor(){l(this,"globalId_");this.globalId_=0}parsePlaylist(e){let i=q.fromUTF8(e).trim().split(/[\r\n]+/);if(!i[0].startsWith("#EXTM3U"))throw new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.HLS_PLAYLIST_HEADER_MISSING);let r=Gi.MASTER,s=!1,n=[],a=!0;for(let o=0;o<i.length;o++){let c=i[o],d=i[o+1];if(he.isComment(c)||a){a=!1;continue}let u=this.parseTag_(c);if(s||(Di.MEDIA_PLAYLIST_TAGS.has(u.name)?(r=Gi.MEDIA,s=!0):u.name=="EXT-X-STREAM-INF"||u.name=="EXT-X-MEDIA"?s=!0:Di.SEGMENT_TAGS.has(u.name)&&(r=Gi.MEDIA,s=!0)),Di.SEGMENT_TAGS.has(u.name)){if(r!=Gi.MEDIA)throw new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.HLS_INVALID_PLAYLIST_HIERARCHY);let m=this.parseSegments_(i,o,n);return new Vs(r,n,m)}if(n.push(u),u.name=="EXT-X-STREAM-INF"){let m=new Fr("URI",d);u.addAttribute(m),a=!0}}return new Vs(r,n)}parseSegments_(e,t,i){let r=e.length-t,s=Math.max(100,Math.floor(r/2)),n=new Array(s),a=0,o=[],c=[],d=null;for(let u=t;u<e.length;u++){let m=e[u];if(m.startsWith("#EXT")){let f=this.parseTag_(m);Di.MEDIA_PLAYLIST_TAGS.has(f.name)?i.push(f):f.name=="EXT-X-MAP"?d=f:f.name=="EXT-X-PART"?c.push(f):f.name=="EXT-X-PRELOAD-HINT"?f.getAttributeValue("TYPE")=="PART"?c.push(f):f.getAttributeValue("TYPE")=="MAP"&&(f.setName("EXT-X-MAP"),d=f):o.push(f)}else if(!he.isComment(m)){let f=m.trim();d&&o.push(d);let g=new Hs(f,o,c);a<n.length?n[a++]=g:(n.push(g),a++),o=[],c=[]}}if(c.length){d&&o.push(d);let u=new Hs("",o,c);a<n.length?n[a++]=u:(n.push(u),a++)}return a<n.length?n.slice(0,a):n}parseTag_(e){return Di.parseTag(this.globalId_++,e)}static parseTag(e,t){let{name:i,data:r}=Di.splitTag_(t);if(r===null)return new _r(e,i,[]);if(r.indexOf("=")===-1)return new _r(e,i,[],r);let s=Di.parseAttributes_(r);return new _r(e,i,s.list,s.value)}static splitTag_(e){let t=e.indexOf(":"),i=t===-1?e.substring(1):e.substring(1,t);if(!i.startsWith("EXT"))throw new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.INVALID_HLS_TAG,e);let r=t===-1?null:e.substring(t+1);return{name:i,data:r}}static parseAttributes_(e){let t=[],i=null,r=0,s=e.indexOf(","),n=e.indexOf("=");for(s!==-1&&s<n&&(i=e.substring(0,s),r=s+1);r<e.length;){for(;e[r]===" ";)r++;let a=e.indexOf("=",r);if(a===-1)break;let o=e.substring(r,a);r=a+1;let c;if(e[r]==='"'){r++;let d=e.indexOf('"',r);c=d===-1?e.substring(r):e.substring(r,d),r=d===-1?e.length:d+1}else{let d=e.indexOf(",",r);c=d===-1?e.substring(r):e.substring(r,d),r=d===-1?e.length:d}r<e.length&&e[r]===","&&r++,t.push(new Fr(o,c))}return{value:i,list:t}}};l(Di,"MEDIA_PLAYLIST_TAGS",new Set(["EXT-X-TARGETDURATION","EXT-X-MEDIA-SEQUENCE","EXT-X-DISCONTINUITY-SEQUENCE","EXT-X-PLAYLIST-TYPE","EXT-X-I-FRAMES-ONLY","EXT-X-ENDLIST","EXT-X-SERVER-CONTROL","EXT-X-SKIP","EXT-X-PART-INF","EXT-X-DATERANGE"])),l(Di,"SEGMENT_TAGS",new Set(["EXTINF","EXT-X-BYTERANGE","EXT-X-DISCONTINUITY","EXT-X-PROGRAM-DATE-TIME","EXT-X-KEY","EXT-X-DATERANGE","EXT-X-MAP","EXT-X-GAP","EXT-X-TILES"]));var Xn=Di;/*! @license
699
+ * Shaka Player
700
+ * Copyright 2016 Google LLC
701
+ * SPDX-License-Identifier: Apache-2.0
702
+ */var yr=class y{static parse(e,t,i,r){try{let s=y.parseRaw(e),n={uri:e,originalUri:e,data:s.data,headers:{"content-type":s.contentType},originalRequest:t};return je.completed(n)}catch(s){return je.failed(s)}}static parseRaw(e){if(!e.startsWith("data:"))throw p.error("Bad data URI, failed to parse scheme"),new h(h.Severity.CRITICAL,h.Category.NETWORK,h.Code.MALFORMED_DATA_URI,e);let t=e.substring(5),i=t.indexOf(",");if(i<0)throw p.error("Bad data URI, failed to extract encoding and MIME type"),new h(h.Severity.CRITICAL,h.Category.NETWORK,h.Code.MALFORMED_DATA_URI,e);let r=t.substring(0,i),s=t.substring(i+1),n=decodeURIComponent(s),a=r.split(";"),o=a[0],c=!1;a.length>1&&a[a.length-1].toLowerCase()=="base64"&&(c=!0,a.pop());let d;return c?d=ne.fromBase64(n):d=q.toUTF8(n),{data:d,contentType:o,typeInfoList:a}}};K.registerScheme("data",yr.parse);/*! @license
703
+ * Shaka Player
704
+ * Copyright 2016 Google LLC
705
+ * SPDX-License-Identifier: Apache-2.0
706
+ */var St=class St{constructor(){l(this,"playerInterface_");l(this,"config_");l(this,"globalId_");l(this,"globalVariables_");l(this,"groupIdToStreamInfosMap_");l(this,"mediaSequenceToStartTimeByType_");l(this,"keyFormatsToDrmParsers_");l(this,"variantUriSet_");l(this,"uriToStreamInfosMap_");l(this,"presentationTimeline_");l(this,"masterPlaylistUri_");l(this,"manifestTextParser_");l(this,"minSequenceNumber_");l(this,"lowestSyncTime_");l(this,"realProgramDateTimeByReference_");l(this,"usesProgramDateTime_");l(this,"streamsFinalized_");l(this,"codecInfoInManifest_");l(this,"updatePlaylistTimer_");l(this,"presentationType_");l(this,"manifest_");l(this,"maxTargetDuration_");l(this,"lastTargetDuration_");l(this,"partialTargetDuration_");l(this,"presentationDelay_");l(this,"lowLatencyPresentationDelay_");l(this,"operationManager_");l(this,"groupIdToClosedCaptionsMap_");l(this,"groupIdToCodecsMap_");l(this,"mapTagToInitSegmentRefMap_");l(this,"aesKeyInfoMap_");l(this,"aesKeyMap_");l(this,"identityKeyMap_");l(this,"initSegmentToKidMap_");l(this,"lowLatencyMode_");l(this,"lowLatencyByterangeOptimization_");l(this,"averageUpdateDuration_");l(this,"contentSteeringManager_");l(this,"needsClosedCaptionsDetection_");l(this,"eventManager_");l(this,"mediaElement_");l(this,"startTime_");l(this,"isPreloadFn_");l(this,"psshToInitData_");l(this,"chapterUris_");l(this,"chapterStreamsMap_");this.playerInterface_=null,this.config_=null,this.globalId_=1,this.globalVariables_=new Map,this.groupIdToStreamInfosMap_=new Map,this.mediaSequenceToStartTimeByType_=new Map;let e=R.ContentType;this.mediaSequenceToStartTimeByType_.set(e.VIDEO,new Map),this.mediaSequenceToStartTimeByType_.set(e.AUDIO,new Map),this.mediaSequenceToStartTimeByType_.set(e.TEXT,new Map),this.mediaSequenceToStartTimeByType_.set(e.IMAGE,new Map),this.keyFormatsToDrmParsers_=new Map().set("com.apple.streamingkeydelivery",(t,i,r)=>this.fairplayDrmParser_(t,i,r)).set("urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed",(t,i,r)=>this.widevineDrmParser_(t,i,r)).set("com.microsoft.playready",(t,i,r)=>this.playreadyDrmParser_(t,i,r)).set("urn:uuid:3d5e6d35-9b9a-41e8-b843-dd3c6e72c42c",(t,i,r)=>this.wiseplayDrmParser_(t,i,r)),this.variantUriSet_=new Set,this.uriToStreamInfosMap_=new Map,this.presentationTimeline_=null,this.masterPlaylistUri_="",this.manifestTextParser_=new Xn,this.minSequenceNumber_=-1,this.lowestSyncTime_=1/0,this.realProgramDateTimeByReference_=new WeakMap,this.usesProgramDateTime_=!1,this.streamsFinalized_=!1,this.codecInfoInManifest_=!1,this.updatePlaylistTimer_=new ae(()=>{if(this.mediaElement_&&!this.config_.continueLoadingWhenPaused&&(this.eventManager_.unlisten(this.mediaElement_,"timeupdate"),this.mediaElement_.paused)){this.eventManager_.listenOnce(this.mediaElement_,"timeupdate",()=>this.onUpdate_());return}this.onUpdate_()}),this.presentationType_=St.PresentationType_.VOD,this.manifest_=null,this.maxTargetDuration_=0,this.lastTargetDuration_=1/0,this.partialTargetDuration_=0,this.presentationDelay_=0,this.lowLatencyPresentationDelay_=0,this.operationManager_=new gi,this.groupIdToClosedCaptionsMap_=new Map,this.groupIdToCodecsMap_=new Map,this.mapTagToInitSegmentRefMap_=new Map,this.aesKeyInfoMap_=new Map,this.aesKeyMap_=new Map,this.identityKeyMap_=new Map,this.initSegmentToKidMap_=new Map,this.lowLatencyMode_=!1,this.lowLatencyByterangeOptimization_=!1,this.averageUpdateDuration_=new er(5),this.contentSteeringManager_=null,this.needsClosedCaptionsDetection_=!0,this.eventManager_=new ue,this.mediaElement_=null,this.startTime_=null,this.isPreloadFn_=()=>!1,this.psshToInitData_=new Map,this.chapterUris_=[],this.chapterStreamsMap_=new Map}configure(e,t){let i=this.playerInterface_&&e.updatePeriod!=this.config_.updatePeriod&&e.updatePeriod>=0;this.config_=e,t&&(this.isPreloadFn_=t),this.contentSteeringManager_&&this.contentSteeringManager_.configure(this.config_),i&&this.manifest_&&this.manifest_.presentationTimeline.isDynamic()&&this.updatePlaylistTimer_.tickNow()}async start(e,t){v.assert(this.config_,"Must call configure() before start()!"),this.playerInterface_=t,this.lowLatencyMode_=t.isLowLatencyMode();let i=await this.requestManifest_([e]).promise;return this.masterPlaylistUri_=i.uri,v.assert(i.data,"Response data should be non-null!"),await this.parseManifest_(i.data),v.assert(this.manifest_,"Manifest should be non-null"),this.manifest_}stop(){this.updatePlaylistTimer_&&(this.updatePlaylistTimer_.stop(),this.updatePlaylistTimer_=null);let e=[];return this.operationManager_&&(e.push(this.operationManager_.destroy()),this.operationManager_=null),this.playerInterface_=null,this.config_=null,this.variantUriSet_.clear(),this.manifest_=null,this.uriToStreamInfosMap_.clear(),this.groupIdToStreamInfosMap_.clear(),this.groupIdToCodecsMap_.clear(),this.globalVariables_.clear(),this.mapTagToInitSegmentRefMap_.clear(),this.aesKeyInfoMap_.clear(),this.aesKeyMap_.clear(),this.identityKeyMap_.clear(),this.initSegmentToKidMap_.clear(),this.psshToInitData_.clear(),this.contentSteeringManager_&&this.contentSteeringManager_.destroy(),this.eventManager_&&(this.eventManager_.release(),this.eventManager_=null),Promise.all(e)}async update(){if(!this.isDynamic_())return;let e=[],i=Array.from(this.uriToStreamInfosMap_.values()).filter(n=>!n.stream.isAudioMuxedInVideo&&n.stream.segmentIndex);if(i.length===0){p.warning("No active streams found during update");return}this.lastTargetDuration_=1/0,this.manifest_.gapCount=0;for(let n of i)e.push(this.updateStream_(n));e.push(this.parseChapters_()),await Promise.all(e);let r=Array.from(this.chapterStreamsMap_.values());for(let n of r)this.manifest_.chapterStreams.includes(n)||this.manifest_.chapterStreams.push(n);this.notifySegmentsForStreams_(i.map(n=>n.stream));let s=i.some(n=>n.hasEndList==!1);i.length&&!s&&(this.setPresentationType_(St.PresentationType_.VOD),this.determineDuration_()),s&&this.determineDuration_();for(let n of i)!n.stream.isAudioMuxedInVideo&&n.stream.segmentIndex&&!n.stream.segmentIndex.earliestReference()&&this.playerInterface_.disableStream(n.stream)}getMediaSequenceToStartTimeFor_(e){return this.isLive_()?this.mediaSequenceToStartTimeByType_.get(e.type):e.mediaSequenceToStartTime}async updateStream_(e){if(e.stream.isAudioMuxedInVideo)return;let t=[];for(let w of e.getUris()){let M=new Map;e.canBlockReload&&(e.nextMediaSequence>=0&&M.set("_HLS_msn",String(e.nextMediaSequence)),e.nextPart>=0&&M.set("_HLS_part",String(e.nextPart))),e.canSkipDateRanges?M.set("_HLS_skip","v2"):e.canSkipSegments&&M.set("_HLS_skip","YES"),t.push(fe.appendParams(w,M))}let i;try{i=await this.requestManifest_(t,!0).promise}catch(w){throw this.playerInterface_&&this.playerInterface_.disableStream(e.stream),w}if(!e.stream.segmentIndex)return;let r=this.manifestTextParser_.parsePlaylist(i.data);if(r.type!=Gi.MEDIA)throw new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.HLS_INVALID_PLAYLIST_HIERARCHY);let s=i.uri;s!=i.originalUri&&!e.getUris().includes(s)&&e.redirectUris.push(s);let n=he.filterTagsByName(r.tags,"EXT-X-DEFINE"),a=this.parseMediaVariables_(n,s),o=e.stream,c=this.getMediaSequenceToStartTimeFor_(e),{keyIds:d,drmInfos:u,encrypted:m,aesEncrypted:f}=await this.parseDrmInfo_(r,o.mimeType,e.getUris,a);!o.encrypted&&m&&!f&&(o.encrypted=!0),((w,M)=>w.size===M.size&&[...w].every(x=>M.has(x)))(o.keyIds,d)||(o.keyIds=d,o.drmInfos=u,this.playerInterface_.newDrmInfo(o));let _=i.uri!==i.originalUri,{segments:T,totalCount:S,bandwidth:b}=this.createSegments_(r,c,a,e.getUris,e.type,_,o.segmentIndex);b&&(o.bandwidth=b);let E=ur.createQualityInfo(o);for(let w of T)w.initSegmentReference&&(w.initSegmentReference.mediaQuality=E);if(T.length&&o.segmentIndex.mergeAndEvict(T,this.presentationTimeline_.getSegmentAvailabilityStart()),S){let w=he.getFirstTagWithNameAsNumber(r.tags,"EXT-X-MEDIA-SEQUENCE",0),M=he.getFirstTagWithName(r.tags,"EXT-X-SKIP"),x=M?Number(M.getAttributeValue("SKIPPED-SEGMENTS")):0,{nextMediaSequence:k,nextPart:L}=this.getNextMediaSequenceAndPart_(w,T,S);e.nextMediaSequence=k+x,e.nextPart=L;let V=c.get(w);o.segmentIndex.evict(V)}this.setProgramDateTimeRegionsFromIndex_(o,e.type);let C=o.segmentIndex.earliestReference();C&&(e.minTimestamp=C.startTime,T.length&&(e.maxTimestamp=T[T.length-1].endTime)),he.getFirstTagWithName(r.tags,"EXT-X-ENDLIST")&&(e.hasEndList=!0),this.determineLastTargetDuration_(r),this.processDateRangeTags_(r.tags,o.type,a,e.getUris)}onExpirationUpdated(e,t){}onInitialVariantChosen(e){}banLocation(e){this.contentSteeringManager_&&this.contentSteeringManager_.banLocation(e)}setMediaElement(e){this.mediaElement_=e}syncStreamsWithSequenceNumber_(e,t=!1){let i=this.minSequenceNumber_==-1;for(let r of e){let s=r.stream.segmentIndex;v.assert(s,"Only loaded streams should be synced");let n=this.getMediaSequenceToStartTimeFor_(r),a=s.earliestReference();if(a){Fe&&n.values().next().value!=a.startTime&&p.warning("Sequence number map is not ordered as expected!");for(let[o,c]of n)if(c==a.startTime){i&&(this.minSequenceNumber_=Math.max(this.minSequenceNumber_,o)),r.firstSequenceNumber=o;break}}}if(!(this.minSequenceNumber_<0)){p.debug("Syncing HLS streams against base sequence number:",this.minSequenceNumber_);for(let r of e){if(!this.ignoreManifestProgramDateTimeFor_(r.type)&&!t)continue;let s=r.stream.segmentIndex;if(s){let n=this.minSequenceNumber_-r.firstSequenceNumber;if(n>0){s.dropFirstReferences(n);let a=s.earliestReference();if(a){let o=-a.startTime;r.stream.segmentIndex.offset(o),this.offsetStreamInfo_(r,o)}}}}}}syncStreamsWithProgramDateTime_(e){if(this.lowestSyncTime_==1/0)for(let i of e){let r=i.stream.segmentIndex;v.assert(r,"Only loaded streams should be synced");let s=r.earliestReference();s!=null&&s.syncTime!=null&&(this.lowestSyncTime_=Math.min(this.lowestSyncTime_,s.syncTime))}let t=this.lowestSyncTime_;if(t!=1/0){p.debug("Syncing HLS streams against base time:",t);for(let i of this.uriToStreamInfosMap_.values()){if(this.ignoreManifestProgramDateTimeFor_(i.type))continue;let r=i.stream.segmentIndex;if(r!=null){let s=r.earliestReference();if(!s)continue;if(s.syncTime==null)p.alwaysError("Missing EXT-X-PROGRAM-DATE-TIME for stream",i.getUris(),"Expect AV sync issues!");else{let a=s.syncTime-t-s.startTime;this.offsetStreamInfo_(i,a);for(let o of r)o.syncAgainst(t)}}}}}offsetStreamInfo_(e,t){if(Math.abs(t)<.001)return;e.minTimestamp+=t,e.maxTimestamp+=t,v.assert(e.maxTimestamp>=0,"Negative maxTimestamp after adjustment!");let i=this.getMediaSequenceToStartTimeFor_(e);for(let[r,s]of i)i.set(r,s+t);p.debug("Offset",t,"applied to",e.getUris())}async parseManifest_(e){let t=R.ContentType;v.assert(this.masterPlaylistUri_,"Master playlist URI must be set before calling parseManifest_!");let i=this.manifestTextParser_.parsePlaylist(e),r=he.filterTagsByName(i.tags,"EXT-X-DEFINE"),s=[],n=[],a=[];v.assert(this.presentationTimeline_==null,"Presentation timeline created early!"),this.presentationTimeline_=new wi(null,0),this.presentationTimeline_.setStatic(!0);let o=()=>[this.masterPlaylistUri_],c=null,d=new Map;if(this.manifest_={presentationTimeline:this.presentationTimeline_,variants:s,textStreams:n,imageStreams:a,chapterStreams:[],offlineSessionIds:[],sequenceMode:this.config_.hls.sequenceMode,ignoreManifestTimestampsInSegmentsMode:this.config_.hls.ignoreManifestTimestampsInSegmentsMode,type:me.HLS,serviceDescription:null,nextUrl:null,periodCount:1,gapCount:0,isLowLatency:!1,startTime:this.startTime_},i.type==Gi.MEDIA){this.needsClosedCaptionsDetection_=!1;let u=he.filterTagsByName(i.tags,"EXT-X-DEFINE");d=this.parseMediaVariables_(u,this.masterPlaylistUri_),c=t.VIDEO;let m="",f="",g="",_=null,T=null,S=new Map,b=!1,E=null,C=!1,A=!0,w="Media Playlist",M=this.masterPlaylistUri_,x=await this.convertParsedPlaylistIntoStreamInfo_(this.globalId_++,d,i,o,m,c,g,A,w,_,S,E,C,T,b,f,M);if(this.uriToStreamInfosMap_.set(this.masterPlaylistUri_,x),x.stream){let L=ur.createQualityInfo(x.stream);x.stream.segmentIndex.forEachTopLevelReference(V=>{V.initSegmentReference&&(V.initSegmentReference.mediaQuality=L)})}c=x.stream.type;let k=!0;(this.config_.disableAudio&&x.type=="audio"||this.config_.disableVideo&&x.type=="video"&&!x.stream.codecs.includes(","))&&(k=!1),k&&s.push({id:0,language:this.getLanguage_(g),disabledUntilTime:0,primary:!0,audio:x.type=="audio"?x.stream:null,video:x.type=="video"?x.stream:null,bandwidth:x.stream.bandwidth||0,allowedByApplication:!0,allowedByKeySystem:!0,decodingInfos:[]}),this.config_.hls.chaptersUri&&!this.chapterUris_.includes(this.config_.hls.chaptersUri)&&this.chapterUris_.push(this.config_.hls.chaptersUri),await this.parseChapters_()}else{this.parseMasterVariables_(r);let u=he.filterTagsByName(i.tags,"EXT-X-MEDIA"),m=he.filterTagsByName(i.tags,"EXT-X-STREAM-INF"),f=he.filterTagsByName(i.tags,"EXT-X-IMAGE-STREAM-INF"),g=he.filterTagsByName(i.tags,"EXT-X-I-FRAME-STREAM-INF"),_=he.filterTagsByName(i.tags,"EXT-X-SESSION-KEY"),T=he.filterTagsByName(i.tags,"EXT-X-SESSION-DATA"),S=he.filterTagsByName(i.tags,"EXT-X-CONTENT-STEERING");this.chapterUris_=this.processSessionData_(T),this.config_.hls.chaptersUri&&!this.chapterUris_.includes(this.config_.hls.chaptersUri)&&this.chapterUris_.push(this.config_.hls.chaptersUri),await this.processContentSteering_(S),this.config_.ignoreSupplementalCodecs||(m.push(...this.createTagsWithSupplementalCodecs_(m,!0)),g.push(...this.createTagsWithSupplementalCodecs_(g,!1))),this.parseCodecs_(m),this.parseClosedCaptions_(u);let b=this.parseIFrames_(g);s=await this.createVariantsForTags_(m,_,u,o,this.globalVariables_,b),n=this.parseTexts_(u),[a]=await Promise.all([this.parseImages_(f,g),this.parseChapters_()])}if(!this.playerInterface_)throw new h(h.Severity.CRITICAL,h.Category.PLAYER,h.Code.OPERATION_ABORTED);if(this.determineStartTime_(i),i.type==Gi.MEDIA){if(this.isDynamic_()){this.changePresentationTimelineToLive_(i);let m=this.getUpdatePlaylistDelay_();this.updatePlaylistTimer_.tickAfter(m)}let u=Array.from(this.uriToStreamInfosMap_.values());this.finalizeStreams_(u),this.determineDuration_(),v.assert(c,"mediaPlaylistType should be non-null"),await this.processDateRangeTags_(i.tags,c,d,o)}if(this.manifest_.variants=s,this.manifest_.textStreams=n,this.manifest_.imageStreams=a,this.manifest_.chapterStreams=Array.from(this.chapterStreamsMap_.values()),this.manifest_.startTime=this.startTime_,!this.codecInfoInManifest_&&this.config_.hls.disableCodecGuessing){let u=[];for(let m of this.manifest_.variants)m.audio&&m.audio.codecs===""&&u.push(m.audio.createSegmentIndex()),m.video&&m.video.codecs===""&&u.push(m.video.createSegmentIndex());await Promise.all(u)}this.playerInterface_.makeTextStreamsForClosedCaptions(this.manifest_)}async getBasicInfoFromSegments_(e){let t=vt.getBasicInfoFromMimeType(this.config_.hls.mediaPlaylistFullMimeType);if(!e.length)return t;let{segment:i,segmentIndex:r}=this.getAvailableSegment_(e),s=i.getUris(),n=ct.getExtension(s[0]);if(n){let g=St.RAW_FORMATS_TO_MIME_TYPES_.get(n);if(g)return vt.getBasicInfoFromMimeType(g)}let a=await Promise.all([this.getInfoFromSegment_(i.initSegmentReference,0),this.getInfoFromSegment_(i,r)]),o=a[1].mimeType,c=a[0].data,d=a[1].data,u=["mp4","mp4a","m4s","m4i","m4a","m4f","cmfa","mp4v","m4v","cmfv","fmp4"],m=["audio/mp4","video/mp4","video/iso.segment"],f=i.initSegmentReference||m.includes(o);if(!f&&pt.probe(D.toUint8(d))){let g=vt.getBasicInfoFromTs(d,this.config_.disableAudio,this.config_.disableVideo,this.config_.disableText);if(g)return g}else if(f||u.includes(n)){let g=vt.getBasicInfoFromMp4(c,d,this.config_.disableText);if(g)return g}return o?vt.getBasicInfoFromMimeType(o):t}async getInfoFromSegment_(e,t){if(!e)return{mimeType:null,data:null};let i=K.RequestType.SEGMENT,r=ct.createSegmentRequest(e.getUris(),e.getStartByte(),e.getEndByte(),this.playerInterface_.getStreamingRetryParameters()),s=e instanceof Se?K.AdvancedRequestType.MEDIA_SEGMENT:K.AdvancedRequestType.INIT_SEGMENT,n=await this.makeNetworkRequest_(r,i,{type:s}).promise,a=n.data;e.aesKey&&(a=await vt.aesDecrypt(a,e.aesKey,t)),e instanceof Se?e.setSegmentData(a,!0):e.setSegmentData(a);let o=n.headers["content-type"];return o&&(o=o.split(";")[0].toLowerCase()),{mimeType:o,data:a}}determineDuration_(){if(v.assert(this.presentationTimeline_,"Presentation timeline not created!"),this.isLive_()){let e=this.getLiveDuration_()||0;isNaN(this.config_.availabilityWindowOverride)||(e=this.config_.availabilityWindowOverride),this.presentationTimeline_.setSegmentAvailabilityDuration(e)}else this.presentationTimeline_.setDuration(this.getMinDuration_());if(!this.presentationTimeline_.isStartTimeLocked())for(let e of this.uriToStreamInfosMap_.values()){if(!e.stream.segmentIndex||e.type!="audio"&&e.type!="video")continue;let t=e.stream.segmentIndex.earliestReference();if(t&&t.syncTime!=null){let i=t.syncTime;this.presentationTimeline_.setInitialProgramDateTime(i)}}this.presentationTimeline_.lockStartTime(),v.assert(!this.presentationTimeline_.usingPresentationStartTime(),"We should not be using the presentation start time in HLS!")}parseMasterVariables_(e){this.parseVariablesFromTags_(e,this.globalVariables_,this.masterPlaylistUri_)}parseMediaVariables_(e,t){let i=new Map;return this.parseVariablesFromTags_(e,i,t,!0),i}parseVariablesFromTags_(e,t,i,r=!1){let s;for(let n of e){let a=n.getAttributeValue("NAME"),o=n.getAttributeValue("VALUE"),c=n.getAttributeValue("QUERYPARAM");if(a&&o&&t.getOrInsert(a,o),c){s||(s=new URL(i).searchParams);let d=s.get(c);d&&!t.has(d)&&t.set(c,d)}if(r){let d=n.getAttributeValue("IMPORT");if(d){let u=this.globalVariables_.get(d);u&&t.set(d,u)}}}}groupTagsByKey_(e){let t={};for(let i of e){let r=i.getTagKey(!this.contentSteeringManager_);t[r]?t[r].push(i):t[r]=[i]}return t}createTagsWithSupplementalCodecs_(e,t){let i=[];for(let r of e){let s=he.getSupplementalCodecs(r);if(!s)continue;let n=r.attributes.map(a=>{let o=a.name,c=a.value;if(o=="CODECS"&&(c=s,t)){let d=a.value.split(",");if(d.length>1){let u=R.guessCodecsSafe(R.ContentType.AUDIO,d);u&&(c+=","+u)}}return new Fr(o,c)});i.push(new _r(r.id,r.name,n,null))}return i}parseCodecs_(e){let t=R.ContentType;for(let i of e){let r=i.getAttributeValue("AUDIO"),s=i.getAttributeValue("VIDEO"),n=i.getAttributeValue("SUBTITLES"),a=this.getCodecsForVariantTag_(i);if(n){let o=R.guessCodecsSafe(t.TEXT,a);v.assert(o!=null,"Text codecs should be valid."),this.groupIdToCodecsMap_.set(n,o),ye.remove(a,o)}if(r){let o=R.guessCodecsSafe(t.AUDIO,a);o||(o=this.config_.hls.defaultAudioCodec),this.groupIdToCodecsMap_.set(r,o)}if(s){let o=R.guessCodecsSafe(t.VIDEO,a);o||(o=this.config_.hls.defaultVideoCodec),this.groupIdToCodecsMap_.set(s,o)}}}processSessionData_(e){let t=[];for(let i of e){let r=i.getAttributeValue("DATA-ID"),s=i.getAttributeValue("URI"),n=i.getAttributeValue("LANGUAGE"),a=i.getAttributeValue("VALUE"),o=new Map().set("id",r);s&&o.set("uri",he.constructSegmentUris([this.masterPlaylistUri_],s,this.globalVariables_)[0]),n&&o.set("language",n),a&&o.set("value",a),r=="com.apple.hls.chapters"&&s&&t.push(o.get("uri"));let c=new U("sessiondata",o);this.playerInterface_&&this.playerInterface_.onEvent(c)}return t}async processContentSteering_(e){if(!this.playerInterface_||!this.config_)return;let t;for(let i of e){let r=i.getAttributeValue("PATHWAY-ID"),s=i.getAttributeValue("SERVER-URI");if(!(!r||!s)){this.contentSteeringManager_=new ss(this.playerInterface_),this.contentSteeringManager_.configure(this.config_),this.contentSteeringManager_.setBaseUris([this.masterPlaylistUri_]),this.contentSteeringManager_.setManifestType(me.HLS),this.contentSteeringManager_.setDefaultPathwayId(r),t=this.contentSteeringManager_.requestInfo(s);break}}await t}parseTexts_(e){let t=he.filterTagsByType(e,"SUBTITLES"),i=this.groupTagsByKey_(t),r=[];if(!this.config_.disableText)for(let n in i)try{r.push(this.createStreamInfoFromMediaTags_(i[n],new Map).stream)}catch(a){if(this.config_.hls.ignoreTextStreamFailures)continue;throw a}let s=R.ContentType.TEXT;for(let n of t){let a=n.getRequiredAttrValue("GROUP-ID"),o=this.groupIdToCodecsMap_.get(a);if(o){let c=this.groupIdToStreamInfosMap_.get(a);if(c)for(let d of c)d.stream.codecs=o,d.stream.mimeType=this.guessMimeTypeBeforeLoading_(s,o)||this.guessMimeTypeFallback_(s),this.setFullTypeForStream_(d.stream)}}return r.filter(n=>n)}setFullTypeForStream_(e){let t=new Set([N.getFullType(e.mimeType,e.codecs)]);e.segmentIndex&&e.segmentIndex.forEachTopLevelReference(i=>{i.mimeType&&t.add(N.getFullType(i.mimeType,e.codecs))}),e.fullMimeTypes=t}async parseImages_(e,t){let i=e.map(async s=>{if(this.config_.disableThumbnails)return null;try{return(await this.createStreamInfoFromImageTag_(s)).stream}catch(a){if(this.config_.hls.ignoreImageStreamFailures)return null;throw a}}).concat(t.map(s=>{if(this.config_.disableThumbnails)return null;try{let a=this.createStreamInfoFromIframeTag_(s),o=R.ContentType;return a.stream.type!==o.IMAGE?null:a.stream}catch(a){if(this.config_.hls.ignoreImageStreamFailures)return null;throw a}}));return(await Promise.all(i)).filter(s=>s)}async parseChapters_(){if(this.config_.disableChapters)return;let e=[];for(let t of this.chapterUris_)e.push(this.processChapters_(t));await Promise.all(e)}async processChapters_(e){let t=K.RequestType.SESSION_DATA,i=K.makeRequest([e],this.config_.retryParameters),r=await this.makeNetworkRequest_(i,t).promise,s=q.fromUTF8(r.data),n=JSON.parse(s),a=new Map;for(let o=0;o<n.length;o++){let c=n[o];if(!c.titles)continue;let d=[];if(c.images){for(let u of c.images)if(u.url){let m=he.constructSegmentUris([r.uri],u.url);for(let f of m){let g={type:u["image-category"],width:u["pixel-width"],height:u["pixel-height"],url:f};d.push(g)}}}for(let u of c.titles){let m={id:"",title:u.title,startTime:c["start-time"],endTime:c["start-time"],images:d};c.duration?m.endTime+=c.duration:o+1<n.length&&(m.endTime=n[o+1]["start-time"]),a.getOrInsertComputed(u.language,()=>[]).push(m)}}a.forEach((o,c)=>{let d=[];for(let f of o){let g=new Se(f.startTime,f.endTime,()=>[],0,null,null,0,0,1/0),_={title:f.title,images:f.images};g.setMetadata(_),d.push(g)}let u="text/plain",m=this.chapterStreamsMap_.getOrInsertComputed(c,()=>se.createStream({id:this.globalId_++,mimeType:u,kind:"",language:c,originalLanguage:c,type:R.ContentType.CHAPTER,external:!0}));m.segmentIndex?m.segmentIndex.mergeAndEvict(d,this.presentationTimeline_.getSegmentAvailabilityStart()):m.segmentIndex=new Ze(d)})}createStreamInfosFromMediaTags_(e,t){e=e.filter(r=>{let s=r.getAttributeValue("URI")||"",n=r.getAttributeValue("TYPE");return n!="SUBTITLES"&&(s!=""||n=="AUDIO"||n=="VIDEO")});let i=this.groupTagsByKey_(e);for(let r in i)this.createStreamInfoFromMediaTags_(i[r],t,!1)}parseIFrames_(e){return e.map(i=>{let r=this.createStreamInfoFromIframeTag_(i),s=R.ContentType;return r.stream.type!==s.VIDEO?null:r.stream}).filter(i=>i)}async createVariantsForTags_(e,t,i,r,s,n){let a=[],o=new Set;if(!this.config_.ignoreDrmInfo&&t.length>0)for(let u of t){let m=u.getRequiredAttrValue("METHOD"),f=u.getAttributeValue("KEYFORMAT")||"identity",g=null;if(m!="NONE"){if(this.isAesMethod_(m)){let _=he.constructSegmentUris(r(),u.getRequiredAttrValue("URI"),s),T=_.sort().join("");this.aesKeyMap_.getOrInsertComputed(T,()=>{let S=K.RequestType.KEY,b=K.makeRequest(_,this.config_.retryParameters);return this.makeNetworkRequest_(b,S).promise});continue}else if(f=="identity")g=await this.identityDrmParser_(u,"",r,null,s);else{let _=this.keyFormatsToDrmParsers_.get(f);g=_?await _(u,"",null):null}if(g){if(g.keyIds)for(let _ of g.keyIds)o.add(_);a.push(g)}else p.warning("Unsupported HLS KEYFORMAT",f)}}let c=this.groupTagsByKey_(e),d=[];for(let u in c){let m=c[u],f=m[0],g=this.getFrameRate_(f),_=Number(f.getRequiredAttrValue("BANDWIDTH"))||Number(f.getAttributeValue("AVERAGE-BANDWIDTH")),T=f.getAttributeValue("RESOLUTION"),[S,b]=T?T.split("x"):[null,null],E=f.getAttributeValue("VIDEO-RANGE"),C=f.getAttributeValue("REQ-VIDEO-LAYOUT");C&&C.includes(",")&&(C=C.split(",").filter(M=>M=="CH-STEREO"||M=="CH-MONO")[0]),C=C||"CH-MONO";let A=this.createStreamInfosForVariantTags_(m,i,T);v.assert(A.audio.length||A.video.length,"We should have created a stream!"),d.push(...this.createVariants_(A.audio,A.video,_,S,b,g,E,C,a,o,n))}return d.filter(u=>u!=null)}createStreamInfosForVariantTags_(e,t,i){let r=R.ContentType,s={audio:[],video:[]},n=new Map,a=new Set,o=new Set;for(let E of e){let C=E.getAttributeValue("AUDIO"),A=E.getAttributeValue("VIDEO");if(!C&&!A)continue;let w=E.getAttributeValue("PATHWAY-ID");C&&!a.has(C)&&(a.add(C),w&&n.set(C,w)),A&&!o.has(A)&&(o.add(A),w&&n.set(A,w)),p.debug("Guessing stream type for",E.toString())}let c=[...a,...o];if(c.length&&t.length){let E=t.filter(C=>c.includes(C.getRequiredAttrValue("GROUP-ID")));this.createStreamInfosFromMediaTags_(E,n)}s.audio.push(...this.getGroupStreamInfos_(a)),s.video.push(...this.getGroupStreamInfos_(o));let d=s.video.find(E=>E.stream.isAudioMuxedInVideo),u,m=!1,f=e.map(E=>E.getRequiredAttrValue("URI")),g=s.audio.find(E=>E&&E.getUris().find(C=>f.includes(C))),_=this.getCodecsForVariantTag_(e[0]),T=R.guessCodecsSafe(r.VIDEO,_),S=R.guessCodecsSafe(r.AUDIO,_),b=he.getSupplementalCodecs(e[0]);if(d?(p.debug("Guessing video (URI-less VIDEO Rendition)."),u=r.VIDEO,S&&T&&!s.audio.length&&(_=[[T,S].join(",")])):S&&!T?(u=r.AUDIO,p.debug("Guessing audio-only."),m=s.audio.length>0&&!s.audio.some(E=>E.stream.isAudioMuxedInVideo)):!s.audio.length&&!s.video.length&&S&&T?(p.debug("Guessing multiplexed audio+video."),u=r.VIDEO,_=[[T,S].join(",")]):s.audio.length&&g?(p.debug("Guessing audio-only."),u=r.AUDIO,m=!0):s.video.length&&!s.audio.length?(p.debug("Guessing audio-only."),u=r.AUDIO):(p.debug("Guessing video-only."),u=r.VIDEO),!m){let E=this.createStreamInfoFromVariantTags_(e,_,u,b),C=E.stream,A=u==r.AUDIO?s.audio:s.video,w=A.find(M=>M.stream.isAudioMuxedInVideo);if(C.type==u&&w){let M=w.stream;C.language=M.language,C.originalLanguage=M.originalLanguage,C.label=M.label,C.channelsCount=M.channelsCount,C.audioSamplingRate=M.audioSamplingRate,C.originalId=M.originalId,C.primary=M.primary,C.roles=M.roles,A.splice(A.indexOf(w),1,E)}else(C.type==r.AUDIO?s.audio:s.video).push(E)}return s.video=s.video.filter(E=>!E.stream.isAudioMuxedInVideo),s}getGroupStreamInfos_(e){if(!e.size)return[];let t=[...e].sort().join(",");return this.groupIdToStreamInfosMap_.get(t)||[]}getCodecsForVariantTag_(e){let t=e.getAttributeValue("CODECS")||"";if(this.codecInfoInManifest_=t.length>0,!this.codecInfoInManifest_&&!this.config_.hls.disableCodecGuessing){let r=[];this.config_.disableVideo||r.push(this.config_.hls.defaultVideoCodec),this.config_.disableAudio||r.push(this.config_.hls.defaultAudioCodec),t=r.join(",")}let i=t.split(/\s*,\s*/);return vt.codecsFiltering(i)}getChannelsCount_(e){let t=e.getAttributeValue("CHANNELS");if(!t)return null;let i=t.split("/")[0];return parseInt(i,10)}getSampleRate_(e){let t=e.getAttributeValue("SAMPLE-RATE");return t?parseInt(t,10):null}getFrameRate_(e){let t=e.getAttributeValue("FRAME-RATE");return t?parseFloat(t):null}isSpatialAudio_(e){let t=e.getAttributeValue("CHANNELS");if(!t)return!1;let i=t.split("/");return i.length!=2?!1:i[1]==="JOC"||i[1].includes("ATMOS")||i[1].includes("IMSA")}getClosedCaptions_(e,t){let i=R.ContentType,r=e.getAttributeValue("CLOSED-CAPTIONS");if(t==i.VIDEO){if(this.config_.disableText)return this.needsClosedCaptionsDetection_=!1,null;if(r){if(r!="NONE")return this.groupIdToClosedCaptionsMap_.get(r);this.needsClosedCaptionsDetection_=!1}else if(!r&&this.groupIdToClosedCaptionsMap_.size)for(let s of this.groupIdToClosedCaptionsMap_.keys())return this.groupIdToClosedCaptionsMap_.get(s)}return null}getLanguage_(e){return ve.normalize(e||"und")}getType_(e){let t=e.getRequiredAttrValue("TYPE").toLowerCase();return t=="subtitles"&&(t=R.ContentType.TEXT),t}createVariants_(e,t,i,r,s,n,a,o,c,d,u){let m=R.ContentType;for(let T of t)this.addVideoAttributes_(T.stream,r,s,n,a,o,null);let f=this.config_.disableVideo;(!t.length||f)&&(t=[null]),f&&(e=e.filter(T=>!T.stream.isAudioMuxedInVideo));let g=this.config_.disableAudio;(!e.length||g)&&(e=[null]);let _=[];for(let T of e)for(let S of t){let b=T?T.stream:null;b&&(b.drmInfos=c,b.keyIds=d);let E=S?S.stream:null;E&&(E.drmInfos=c,E.keyIds=d,this.config_.disableIFrames||se.setBetterIFrameStream(E,u)),E&&!b&&(E.bandwidth=i),!E&&b&&(b.bandwidth=i);let C=T?T.stream.drmInfos:null,A=S?S.stream.drmInfos:null,w=S?S.getUris().sort().join(","):"",M=T?T.getUris().sort().join(","):"",x=[];b&&b.codecs&&x.push(b.codecs),E&&E.codecs&&x.push(E.codecs);let k=[w,M,x.sort()].join("-");if(b&&E&&!de.areDrmCompatible(C,A)){p.warning("Incompatible DRM info in HLS variant. Skipping.");continue}if(this.variantUriSet_.has(k)){p.debug("Skipping variant which only differs in text streams.");continue}v.assert(!b||b.type==m.AUDIO,"Audio parameter mismatch!"),v.assert(!E||E.type==m.VIDEO,"Video parameter mismatch!");let L={id:this.globalId_++,language:b?b.language:"und",disabledUntilTime:0,primary:!!b&&b.primary||!!E&&E.primary,audio:b,video:E,bandwidth:i,allowedByApplication:!0,allowedByKeySystem:!0,decodingInfos:[]};_.push(L),this.variantUriSet_.add(k)}return _}parseClosedCaptions_(e){let t=he.filterTagsByType(e,"CLOSED-CAPTIONS");this.needsClosedCaptionsDetection_=t.length==0;for(let i of t){v.assert(i.name=="EXT-X-MEDIA","Should only be called on media tags!");let r=i.getAttributeValue("LANGUAGE"),s=this.getLanguage_(r);if(!r){let o=i.getAttributeValue("NAME");o&&(s=o)}let n=i.getRequiredAttrValue("GROUP-ID"),a=i.getRequiredAttrValue("INSTREAM-ID").replace("SERVICE","svc");this.groupIdToClosedCaptionsMap_.get(n)||this.groupIdToClosedCaptionsMap_.set(n,new Map),this.groupIdToClosedCaptionsMap_.get(n).set(a,s)}}createStreamInfoFromMediaTags_(e,t,i=!0){let r=[],s=[],n=new Map;for(let L of e){v.assert(L.name=="EXT-X-MEDIA","Should only be called on media tags!");let V=++this.globalId_,ee=()=>St.FAKE_MUXED_URL_+V,oe=i?L.getRequiredAttrValue("URI"):L.getAttributeValue("URI")||ee(),le=L.getRequiredAttrValue("GROUP-ID");r.push(oe),s.push(le),n.set(le,oe);let H=L.getAttributeValue("PATHWAY-ID");H&&t.set(le,H)}let a=s.sort().join(","),o=e[0],c="",d=this.getType_(o);if(d==R.ContentType.TEXT&&(c=o.getAttributeValue("CODECS")||""),!c){for(let L of s)if(this.groupIdToCodecsMap_.has(L)){c=this.groupIdToCodecsMap_.get(L);break}}let u=he.getSupplementalCodecs(o),m=r.sort().join(","),f=m;if(d=="audio"&&a&&(f+=a),this.uriToStreamInfosMap_.has(f))return this.uriToStreamInfosMap_.get(f);let g=this.globalId_++;if(this.contentSteeringManager_)for(let[L,V]of n){let ee=t.get(L);ee&&this.contentSteeringManager_.addLocation(g,ee,V)}let _=o.getAttributeValue("LANGUAGE"),T=o.getAttributeValue("NAME"),b=o.getAttributeValue("DEFAULT")=="YES",E=d=="audio"?this.getChannelsCount_(o):null,C=d=="audio"?this.isSpatialAudio_(o):!1,A=o.getAttributeValue("CHARACTERISTICS"),M=o.getAttributeValue("FORCED")=="YES",x=d=="audio"?this.getSampleRate_(o):null,k=this.createStreamInfo_(g,r,c,d,_,b,T,E,null,A,M,x,C,u,m);return this.groupIdToStreamInfosMap_.has(a)?this.groupIdToStreamInfosMap_.get(a).push(k):this.groupIdToStreamInfosMap_.set(a,[k]),this.uriToStreamInfosMap_.set(f,k),k}async createStreamInfoFromImageTag_(e){v.assert(e.name=="EXT-X-IMAGE-STREAM-INF","Should only be called on image tags!");let t=R.ContentType.IMAGE,i=e.getRequiredAttrValue("URI"),r=e.getAttributeValue("CODECS","jpeg")||"",s=he.getSupplementalCodecs(e);if(this.uriToStreamInfosMap_.has(i))return this.uriToStreamInfosMap_.get(i);let n=e.getAttributeValue("LANGUAGE"),a=e.getAttributeValue("NAME"),o=e.getAttributeValue("CHARACTERISTICS"),c=i,d=this.createStreamInfo_(this.globalId_++,[i],r,t,n,!1,a,null,null,o,!1,null,!1,s,c),u=e.getAttributeValue("RESOLUTION");if(u){await d.stream.createSegmentIndex();let g=d.stream.segmentIndex.earliestReference().getTilesLayout();g&&(d.stream.width=Number(u.split("x")[0])*Number(g.split("x")[0]),d.stream.height=Number(u.split("x")[1])*Number(g.split("x")[1])),d.stream.closeSegmentIndex()}let m=e.getAttributeValue("BANDWIDTH");return m&&(d.stream.bandwidth=Number(m)),this.uriToStreamInfosMap_.set(i,d),d}createStreamInfoFromIframeTag_(e){v.assert(e.name=="EXT-X-I-FRAME-STREAM-INF","Should only be called on iframe tags!");let t=R.ContentType.VIDEO,i=e.getRequiredAttrValue("URI"),r=e.getAttributeValue("CODECS")||"",s=he.getSupplementalCodecs(e);if(r=="mjpg"&&(t=R.ContentType.IMAGE),this.uriToStreamInfosMap_.has(i))return this.uriToStreamInfosMap_.get(i);let n=e.getAttributeValue("LANGUAGE"),a=e.getAttributeValue("NAME"),o=e.getAttributeValue("CHARACTERISTICS"),c=i,d=this.createStreamInfo_(this.globalId_++,[i],r,t,n,!1,a,null,null,o,!1,null,!1,s,c);d.stream.isIframe=!0;let u=e.getAttributeValue("RESOLUTION"),[m,f]=u?u.split("x"):[null,null];d.stream.width=Number(m)||void 0,d.stream.height=Number(f)||void 0;let g=e.getAttributeValue("BANDWIDTH");return g&&(d.stream.bandwidth=Number(g)),this.uriToStreamInfosMap_.set(i,d),d}createStreamInfoFromVariantTags_(e,t,i,r){let s=this.globalId_++,n=[];for(let m of e){v.assert(m.name=="EXT-X-STREAM-INF","Should only be called on variant tags!");let f=m.getRequiredAttrValue("URI"),g=m.getAttributeValue("PATHWAY-ID");this.contentSteeringManager_&&g&&this.contentSteeringManager_.addLocation(s,g,f),n.push(f)}let a=n.sort().join(",")+t.sort().join(",");if(this.uriToStreamInfosMap_.has(a))return this.uriToStreamInfosMap_.get(a);let o=n.join(","),c=this.getClosedCaptions_(e[0],i),d=R.guessCodecs(i,t),u=this.createStreamInfo_(s,n,d,i,null,!1,null,null,c,null,!1,null,!1,r,o);return this.uriToStreamInfosMap_.set(a,u),u}createStreamInfo_(e,t,i,r,s,n,a,o,c,d,u,m,f,g,_){let T=this.makeStreamObject_(e,i,r,s,n,a,o,c,d,u,m,f,g,_);t.some(x=>x.startsWith(St.FAKE_MUXED_URL_))&&(T.isAudioMuxedInVideo=!0,r==R.ContentType.AUDIO&&(T.mimeType="video/mp2t",this.setFullTypeForStream_(T)));let b={stream:T,type:r,redirectUris:[],getUris:()=>{},minTimestamp:0,maxTimestamp:0,mediaSequenceToStartTime:new Map,canSkipSegments:!1,canSkipDateRanges:!1,canBlockReload:!1,hasEndList:!1,firstSequenceNumber:-1,nextMediaSequence:-1,nextPart:-1},E=()=>this.contentSteeringManager_&&t.length>1?this.contentSteeringManager_.getLocations(e):b.redirectUris.concat(he.constructUris([this.masterPlaylistUri_],t,this.globalVariables_));b.getUris=E;let C=async x=>{let k=R.ContentType;try{let L=await x.promise;if(x.aborted)return;let V=L.uri;V!=L.originalUri&&(b.getUris().includes(V)||b.redirectUris.push(V));let ee=this.manifestTextParser_.parsePlaylist(L.data);if(ee.type!=Gi.MEDIA)throw new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.HLS_INVALID_PLAYLIST_HIERARCHY);let oe=he.filterTagsByName(ee.tags,"EXT-X-DEFINE"),le=this.parseMediaVariables_(oe,V),H=void 0,J=!1;(!this.codecInfoInManifest_&&this.config_.hls.disableCodecGuessing||this.needsClosedCaptionsDetection_&&r==k.VIDEO&&!this.config_.hls.disableClosedCaptionsDetection)&&ee.segments.length>0&&(this.needsClosedCaptionsDetection_=!1,J=!0);let Z=!this.codecInfoInManifest_&&this.config_.hls.disableCodecGuessing,ce=this.isDynamic_(),W=await this.convertParsedPlaylistIntoStreamInfo_(e,le,ee,E,i,r,s,n,a,o,c,d,u,m,f,g,_,H,J,Z);if(x.aborted)return;let z=W.stream;this.determineStartTime_(ee),this.isDynamic_()&&!ce&&this.changePresentationTimelineToLive_(ee),b.minTimestamp=W.minTimestamp,b.maxTimestamp=W.maxTimestamp,b.canSkipSegments=W.canSkipSegments,b.canSkipDateRanges=W.canSkipDateRanges,b.canBlockReload=W.canBlockReload,b.hasEndList=W.hasEndList,b.mediaSequenceToStartTime=W.mediaSequenceToStartTime,b.nextMediaSequence=W.nextMediaSequence,b.nextPart=W.nextPart,T.segmentIndex=z.segmentIndex,T.encrypted=z.encrypted,T.drmInfos=z.drmInfos,T.keyIds=z.keyIds,T.mimeType=z.mimeType,T.bandwidth=T.bandwidth||z.bandwidth,T.codecs=T.codecs||z.codecs,T.closedCaptions=T.closedCaptions||z.closedCaptions,T.width=T.width||z.width,T.height=T.height||z.height,T.hdr=T.hdr||z.hdr,T.colorGamut=T.colorGamut||z.colorGamut,T.frameRate=T.frameRate||z.frameRate,T.language=="und"&&z.language!="und"&&(T.language=z.language),T.language=T.language||z.language,T.channelsCount=T.channelsCount||z.channelsCount,T.audioSamplingRate=T.audioSamplingRate||z.audioSamplingRate,this.setFullTypeForStream_(T),b.type==k.VIDEO&&W.type==k.AUDIO&&(!this.codecInfoInManifest_||N.RAW_FORMATS.includes(T.mimeType))&&this.reclassifyStreamInfo_(b,z),T.drmInfos.length&&this.playerInterface_.newDrmInfo(T);let ge=!1;if((!c&&T.closedCaptions||c&&T.closedCaptions&&c.size!=T.closedCaptions.size)&&(ge=!0),this.manifest_&&ge&&this.playerInterface_.makeTextStreamsForClosedCaptions(this.manifest_),r==k.TEXT){let X=z.segmentIndex.earliestReference();X&&X.initSegmentReference&&(T.mimeType="application/mp4",this.setFullTypeForStream_(T))}let Y=ur.createQualityInfo(T);if(T.segmentIndex.forEachTopLevelReference(X=>{X.initSegmentReference&&(X.initSegmentReference.mediaQuality=Y)}),this.hasEnoughInfoToFinalizeStreams_())if(this.streamsFinalized_)this.finalizeStreams_([b]);else{this.streamsFinalized_=!0;let O=Array.from(this.uriToStreamInfosMap_.values()).filter(Ie=>Ie.stream.segmentIndex);this.finalizeStreams_(O),this.determineDuration_();let $=this.getUpdatePlaylistDelay_();$>0&&this.updatePlaylistTimer_.tickAfter($)}this.manifest_&&(this.manifest_.startTime=this.startTime_),await this.processDateRangeTags_(ee.tags,T.type,le,E)}catch(L){if(T.closeSegmentIndex(),L.code===h.Code.OPERATION_ABORTED)return;if(!this.playerInterface_.disableStream(T))throw L}},A=null,w,M=()=>{if(A)return A;if(T.isAudioMuxedInVideo){let x=new Ze([]);return T.segmentIndex=x,Promise.resolve()}return w=this.requestManifest_(b.getUris(),!0),A=new Promise(x=>{x(C(w))}),A};return T.createSegmentIndex=M,T.closeSegmentIndex=()=>{A&&!T.segmentIndex&&w.abort(),T.segmentIndex&&(T.segmentIndex.release(),T.segmentIndex=null),A=null},b}reclassifyStreamInfo_(e,t){let i=R.ContentType,r=e.stream,s=t.type,n=e.type;if(p.debug("Reclassifying HLS stream",r.id,"from",r.type,"to",s),this.isLive_()&&(this.mediaSequenceToStartTimeByType_.set(s,this.mediaSequenceToStartTimeByType_.get(n)),this.mediaSequenceToStartTimeByType_.set(n,new Map)),e.type=s,r.type=s,r.codecs=R.guessCodecsSafe(s,t.codecs.split(/\s*,\s*/))||"",this.setFullTypeForStream_(r),!!this.manifest_){for(let a of this.manifest_.variants)s==i.AUDIO&&a.video==r&&(a.video=null,a.audio||(a.audio=r,a.language=r.language));this.manifest_.variants=this.manifest_.variants.filter(a=>a.audio||a.video)}}getMinDuration_(){let e=1/0;for(let t of this.uriToStreamInfosMap_.values())t.stream.segmentIndex&&t.stream.type!="text"&&!t.stream.isAudioMuxedInVideo&&(e=Math.min(e,t.maxTimestamp));return e}getLiveDuration_(){let e=1/0,t=1/0;for(let i of this.uriToStreamInfosMap_.values())i.stream.segmentIndex&&i.stream.type!="text"&&!i.stream.isAudioMuxedInVideo&&(e=Math.min(e,i.maxTimestamp),t=Math.min(t,i.minTimestamp));return e-t}notifySegmentsForStreams_(e){let t=[];for(let i of e)i.segmentIndex&&i.segmentIndex.forEachTopLevelReference(r=>{t.push(r)});this.presentationTimeline_.notifySegments(t)}finalizeStreams_(e){if(!this.isDynamic_()){let o=this.getMinDuration_();for(let c of e)c.stream.segmentIndex.fit(0,o)}this.notifySegmentsForStreams_(e.map(o=>o.stream));let t=Array.from(this.uriToStreamInfosMap_.values()).filter(o=>o.stream.segmentIndex),i=R.ContentType,r=t.some(o=>o.stream.type==i.AUDIO),s=t.some(o=>o.stream.type==i.VIDEO),n=this.isLive_()&&!this.usesProgramDateTime_,a=!this.isDynamic_()&&this.usesProgramDateTime_&&!(r&&s);this.config_.hls.ignoreManifestProgramDateTime||n||a?this.syncStreamsWithSequenceNumber_(e,n):(this.syncStreamsWithProgramDateTime_(e),this.config_.hls.ignoreManifestProgramDateTimeForTypes.length>0&&this.syncStreamsWithSequenceNumber_(e))}ignoreManifestProgramDateTimeFor_(e){return this.config_.hls.ignoreManifestProgramDateTime?!0:this.config_.hls.ignoreManifestProgramDateTimeForTypes.includes(e)}hasEnoughInfoToFinalizeStreams_(){if(!this.manifest_||!this.manifest_.variants.length)return!1;let e=[],t=[];for(let i of this.manifest_.variants)i.video&&e.push(i.video),i.audio&&t.push(i.audio);return!(e.length>0&&!e.some(i=>i.segmentIndex)||t.length>0&&!t.some(i=>i.segmentIndex))}async convertParsedPlaylistIntoStreamInfo_(e,t,i,r,s,n,a,o,c,d,u,m,f,g,_,T,S,b=void 0,E=!0,C=!0){let A=n,w=i.segments||[],M=w.every(mt=>!!he.getFirstTagWithName(mt.tags,"EXT-X-GAP"));if(!w.length||M)throw new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.HLS_EMPTY_MEDIA_PLAYLIST);this.determinePresentationType_(i),this.isDynamic_()&&this.determineLastTargetDuration_(i);let x=this.isLive_()?this.mediaSequenceToStartTimeByType_.get(n):new Map,{segments:k,bandwidth:L}=this.createSegments_(i,x,t,r,n,!0,null);!b&&n==R.ContentType.TEXT&&(b=await this.guessMimeType_(n,s,k),!s&&b=="application/mp4"&&k[0]&&!k[0].initSegmentReference&&(b="text/vtt"),!s&&b=="application/mp4"&&(E=!0,C=!0));let V=null,ee=null,oe=null,le=null,H=null;if(k.length>0&&E){let mt=await this.getBasicInfoFromSegments_(k);n!=mt.type&&this.isLive_()&&(this.mediaSequenceToStartTimeByType_.set(mt.type,this.mediaSequenceToStartTimeByType_.get(n)),this.mediaSequenceToStartTimeByType_.set(n,new Map)),n=mt.type,mt.type!=R.ContentType.VIDEO&&(a=mt.language),d=mt.channelCount,g=mt.sampleRate,this.config_.disableText||(u=mt.closedCaptions),ee=mt.height,V=mt.width,oe=mt.videoRange,le=mt.colorGamut,H=mt.frameRate,C&&(b=mt.mimeType,s=mt.codecs)}b||(b=await this.guessMimeType_(n,s,k)),A==R.ContentType.VIDEO&&N.RAW_FORMATS.includes(b)&&(p.debug("Raw format",b,"is audio-only, not video."),n=R.ContentType.AUDIO);let{drmInfos:J,keyIds:Z,encrypted:ce,aesEncrypted:W}=await this.parseDrmInfo_(i,b,r,t);if(ce&&!J.length&&!W)throw new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.HLS_KEYFORMATS_NOT_SUPPORTED);let z=this.makeStreamObject_(e,s,n,a,o,c,d,u,m,f,g,_,T,S);z.encrypted=ce&&!W,z.drmInfos=J,z.keyIds=Z,z.mimeType=b,L&&(z.bandwidth=L),he.getFirstTagWithName(i.tags,"EXT-X-I-FRAMES-ONLY")&&(z.isIframe=!0),this.setFullTypeForStream_(z),n==R.ContentType.VIDEO&&(V||ee||oe||le)&&this.addVideoAttributes_(z,V,ee,H,oe,null,le),this.isDynamic_()&&this.determineLastTargetDuration_(i);let ge=k[0].startTime,X=k[k.length-1].endTime,O=new Ze(k);z.segmentIndex=O,this.setProgramDateTimeRegionsFromIndex_(z,n);let $=he.getFirstTagWithName(i.tags,"EXT-X-SERVER-CONTROL"),Ie=$?$.getAttribute("CAN-SKIP-UNTIL")!=null:!1,tt=!1;Ie&&(tt=$?$.getAttribute("CAN-SKIP-DATERANGES")!=null:!1);let _t=$?$.getAttribute("CAN-BLOCK-RELOAD")!=null:!1,bt=he.getFirstTagWithNameAsNumber(i.tags,"EXT-X-MEDIA-SEQUENCE",0),{nextMediaSequence:yt,nextPart:xt}=this.getNextMediaSequenceAndPart_(bt,k);return{stream:z,type:n,redirectUris:[],getUris:r,minTimestamp:ge,maxTimestamp:X,canSkipSegments:Ie,canSkipDateRanges:tt,canBlockReload:_t,hasEndList:!1,firstSequenceNumber:-1,nextMediaSequence:yt,nextPart:xt,mediaSequenceToStartTime:x}}getNextMediaSequenceAndPart_(e,t,i=t.length){let s=e+i-1,n=-1;if(!t.length)return s++,{nextMediaSequence:s,nextPart:n};let a=t[t.length-1],o=a.partialReferences;return a.partialReferences.length?(n=o.length-1,o[o.length-1].isPreload()||(s++,n=0),{nextMediaSequence:s,nextPart:n}):(s++,a.hasByterangeOptimization()&&(n=0),{nextMediaSequence:s,nextPart:n})}getReferenceForMediaSequence_(e,t,i){if(!e||!t.has(i))return null;let r=t.get(i),s=e.find(r);if(s==null)return null;let n=e.get(s);return n&&n.startTime==r?n:null}makeStreamObject_(e,t,i,r,s,n,a,o,c,d,u,m,f,g){let _=this.guessMimeTypeBeforeLoading_(i,t)||this.guessMimeTypeFallback_(i),T=[];if(c)for(let C of c.split(","))T.push(C);let S,b=null;i==R.ContentType.TEXT?T.includes("public.accessibility.transcribes-spoken-dialog")&&T.includes("public.accessibility.describes-music-and-sound")?S=R.TextStreamKind.CLOSED_CAPTION:S=R.TextStreamKind.SUBTITLE:T.includes("public.accessibility.describes-video")&&(b=me.AccessibilityPurpose.VISUALLY_IMPAIRED),!T.length&&S===R.TextStreamKind.SUBTITLE&&T.push(R.TextStreamKind.SUBTITLE);let E={id:this.globalId_++,originalId:g,groupId:null,createSegmentIndex:()=>Promise.resolve(),segmentIndex:null,mimeType:_,codecs:t,supplementalCodecs:f,kind:i==R.ContentType.TEXT?R.TextStreamKind.SUBTITLE:void 0,encrypted:!1,drmInfos:[],keyIds:new Set,language:this.getLanguage_(r),originalLanguage:r,label:n,type:i,primary:s,trickModeVideo:null,dependencyStream:null,emsgSchemeIdUris:null,frameRate:void 0,pixelAspectRatio:void 0,width:void 0,height:void 0,bandwidth:void 0,roles:T,forced:d,channelsCount:a,audioSamplingRate:u,spatialAudio:m,closedCaptions:o,hdr:void 0,colorGamut:void 0,videoLayout:void 0,tilesLayout:void 0,accessibilityPurpose:b,external:!1,fastSwitching:!1,fullMimeTypes:new Set,isAudioMuxedInVideo:!1,baseOriginalId:null,isIframe:!1};return this.setFullTypeForStream_(E),E}async parseDrmInfo_(e,t,i,r){let s=new Map;if(!this.config_.ignoreDrmInfo&&e.segments)for(let d of e.segments){let u=he.filterTagsByName(d.tags,"EXT-X-KEY"),m=null;if(u.length){m=this.getInitSegmentReference_(e,d.tags,i,r);for(let f of u)s.set(f,m)}}let n=!1,a=!1,o=[],c=new Set;for(let[d,u]of s){let m=d,f=u,g=m.getRequiredAttrValue("METHOD");if(g!="NONE"){n=!0;let _=m.getAttributeValue("KEYFORMAT")||"identity",T=null;if(this.isAesMethod_(g)){a=!0;continue}else if(_=="identity")T=await this.identityDrmParser_(m,t,i,f,r);else{let S=this.keyFormatsToDrmParsers_.get(_);T=S?await S(m,t,f):null}if(T){if(T.keyIds)for(let S of T.keyIds)c.add(S);o.push(T)}else p.warning("Unsupported HLS KEYFORMAT",_)}}return{drmInfos:o,keyIds:c,encrypted:n,aesEncrypted:a}}parseAESDrmTag_(e,t,i,r){if(!window.crypto||!window.crypto.subtle)throw p.alwaysWarn("Web Crypto API is not available to decrypt AES. (Web Crypto only exists in secure origins like https)"),new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.NO_WEB_CRYPTO_API);let s=e.getRequiredAttrValue("METHOD"),n=0,a,o=e.getAttributeValue("IV","");if(s==="AES-256-GCM"){if(o)throw new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.HLS_INVALID_KEY_IV_FOR_GCM)}else if(!o)n=he.getFirstTagWithNameAsNumber(t.tags,"EXT-X-MEDIA-SEQUENCE",0);else if(a=ne.fromHex(o.substr(2)),a.byteLength!=16)throw new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.AES_128_INVALID_IV_LENGTH);let c=he.constructSegmentUris(i(),e.getRequiredAttrValue("URI"),r),d=c.sort().join(""),u=`${e.toString()}-${n}-${d}`;return this.aesKeyInfoMap_.getOrInsertComputed(u,()=>{let m={bitsKey:128,blockCipherMode:"CBC",iv:a,firstMediaSequenceNumber:n};switch(s){case"AES-256":m.bitsKey=256;break;case"AES-256-CTR":m.bitsKey=256,m.blockCipherMode="CTR";break;case"AES-256-GCM":m.bitsKey=256,m.blockCipherMode="GCM";break}return m.fetchKey=async()=>{let f=await this.aesKeyMap_.getOrInsertComputed(d,()=>{let _=K.RequestType.KEY,T=K.makeRequest(c,this.config_.retryParameters);return this.makeNetworkRequest_(T,_).promise});if(!f.data||f.data.byteLength!=m.bitsKey/8)throw new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.AES_128_INVALID_KEY_LENGTH);let g={name:m.blockCipherMode==="CBC"?"AES-CBC":m.blockCipherMode==="GCM"?"AES-GCM":"AES-CTR",length:m.bitsKey};m.cryptoKey=await window.crypto.subtle.importKey("raw",f.data,g,!0,["decrypt"]),m.fetchKey=void 0},m})}determineStartTime_(e){if(this.startTime_!=null)return;let t=he.getFirstTagWithName(e.tags,"EXT-X-START");t&&(this.startTime_=Number(t.getRequiredAttrValue("TIME-OFFSET")))}determinePresentationType_(e){let t=St.PresentationType_,i=he.getFirstTagWithName(e.tags,"EXT-X-PLAYLIST-TYPE"),r=he.getFirstTagWithName(e.tags,"EXT-X-ENDLIST"),s=i&&i.value=="VOD"||r,n=i&&i.value=="EVENT"&&!s;s?this.setPresentationType_(t.VOD):!s&&!n?this.setPresentationType_(t.LIVE):this.setPresentationType_(t.EVENT)}determineLastTargetDuration_(e){let t=1/0,i=e.segments;if(i.length){let o=i.length-1;for(;o>=0;){let c=i[o],d=he.getFirstTagWithName(c.tags,"EXTINF");if(d){t=he.getExtinfDuration(d);break}o--}}let r=this.getRequiredTag_(e.tags,"EXT-X-TARGETDURATION"),s=Number(r.value),n=he.getFirstTagWithName(e.tags,"EXT-X-PART-INF");n&&(this.partialTargetDuration_=Number(n.getRequiredAttrValue("PART-TARGET")));let a=he.getFirstTagWithName(e.tags,"EXT-X-SERVER-CONTROL");if(this.lowLatencyMode_&&this.partialTargetDuration_)this.lowLatencyByterangeOptimization_?this.partialTargetDuration_*5<=t?this.lastTargetDuration_=Math.min(this.partialTargetDuration_,this.lastTargetDuration_):this.lastTargetDuration_=Math.min(t,this.lastTargetDuration_):this.lastTargetDuration_=Math.min(this.partialTargetDuration_,this.lastTargetDuration_),this.lowLatencyPresentationDelay_=a?Number(a.getRequiredAttrValue("PART-HOLD-BACK")):0;else{this.lastTargetDuration_=Math.min(t,this.lastTargetDuration_);let o=a?a.getAttribute("HOLD-BACK"):null;this.presentationDelay_=o?Number(o.value):0}this.maxTargetDuration_=Math.max(s,this.maxTargetDuration_)}changePresentationTimelineToLive_(e){let t=0;if(this.config_.defaultPresentationDelay)t=this.config_.defaultPresentationDelay;else if(this.lowLatencyPresentationDelay_)t=this.lowLatencyPresentationDelay_;else if(this.presentationDelay_)t=this.presentationDelay_;else{let i=e.segments.length,r=Math.min(i,this.config_.hls.liveSegmentsDelay);for(let s=i-r;s<i;s++){let n=he.getFirstTagWithName(e.segments[s].tags,"EXTINF");n?t+=he.getExtinfDuration(n):t+=this.maxTargetDuration_}}this.startTime_&&this.startTime_<0&&(t=Math.min(-this.startTime_,t),this.startTime_+=t),this.presentationTimeline_.setPresentationStartTime(0),this.presentationTimeline_.setDelay(t),this.presentationTimeline_.setStatic(!1)}getInitSegmentReference_(e,t,i,r){let s=he.getFirstTagWithName(t,"EXT-X-MAP");if(!s)return null;let n=s.getRequiredAttrValue("URI"),a=he.constructSegmentUris(i(),n,r),o=[a.toString(),s.getAttributeValue("BYTERANGE","")].join("-");return this.mapTagToInitSegmentRefMap_.getOrInsertComputed(o,()=>{v.assert(s,"mapTag should be non-null");let c,d,u=!1;for(let m of t)if(m.name=="EXT-X-KEY"){let f=m.getRequiredAttrValue("METHOD");this.isAesMethod_(f)&&m.id<s.id?(u=!1,c=this.parseAESDrmTag_(m,e,i,r)):u=f!="NONE"}else m.name=="EXT-X-BYTERANGE"&&m.id<s.id&&(d=m);return this.createInitSegmentReference_(a,s,d,c,u)})}createInitSegmentReference_(e,t,i,r,s){let n=0,a=null,o=t.getAttributeValue("BYTERANGE");if(!o&&i&&(o=i.value),o){let d=o.split("@"),u=Number(d[0]);if(n=Number(d[1]),a=n+u-1,r){let m=a+1-n;m%16&&(a+=16-m%16)}}return new Tt(()=>e,n,a,null,null,null,r,s)}createSegmentReference_(e,t,i,r,s,n,a,o,c,d){let u=i.tags,m=he.getFirstTagWithName(u,"EXTINF"),f=0,g=0,_=null;i.partialSegments.length&&(this.manifest_.isLowLatency=!0);let T=null;if(!this.config_.hls.ignoreManifestProgramDateTime){let le=he.getFirstTagWithName(u,"EXT-X-PROGRAM-DATE-TIME");le&&le.value&&(T=I.parseDate(le.value),v.assert(T!=null,"EXT-X-PROGRAM-DATE-TIME format not valid"),this.usesProgramDateTime_=!0)}let S=Se.Status.AVAILABLE;if(he.getFirstTagWithName(u,"EXT-X-GAP")&&(this.manifest_.gapCount++,S=Se.Status.MISSING),!m){if(i.partialSegments.length==0)throw new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.HLS_REQUIRED_TAG_MISSING,"EXTINF");if(!this.lowLatencyMode_)return null}let b=[],E=!1,C=null,A=!1,w=!1;if(this.lowLatencyMode_&&i.partialSegments.length){let le=e&&window.ReadableStream&&this.config_.hls.allowLowLatencyByteRangeOptimization,H=T;for(let J=0;J<i.partialSegments.length;J++){let Z=i.partialSegments[J],ce=J==0?t:b[b.length-1],W=J==0?r:ce.endTime,z=Number(Z.getAttributeValue("DURATION"))||this.partialTargetDuration_;if(!z)continue;let ge=W+z,Y=0,X=null;if(Z.name=="EXT-X-PRELOAD-HINT"){let yt=Z.getAttributeValue("BYTERANGE-START");Y=yt?Number(yt):0;let xt=Z.getAttributeValue("BYTERANGE-LENGTH");xt?X=Y+Number(xt)-1:Y&&(X=Number.MAX_SAFE_INTEGER)}else{let yt=Z.getAttributeValue("BYTERANGE");[Y,X]=this.parseByteRange_(ce,yt)}let O=Z.getAttributeValue("URI");if(!O)continue;let $=Se.Status.AVAILABLE;Z.getAttributeValue("GAP")=="YES"&&(this.manifest_.gapCount++,$=Se.Status.MISSING,A=!0);let Ie=null,tt=()=>(Ie==null&&(v.assert(O,"Partial uri should be defined!"),Ie=he.constructSegmentUris(o(),O,s)),Ie);le&&Y>=0&&X!=null&&(C=tt,E=!0);let _t=new Se(W,ge,tt,Y,X,e,0,0,1/0,[],"",null,H,$,d);Z.name=="EXT-X-PRELOAD-HINT"&&(_t.markAsPreload(),w=!0),Z.getAttributeValue("INDEPENDENT")!="YES"&&J>0&&_t.markAsNonIndependent();let bt=c;if(!bt){if(b.length&&b[0].mimeType)bt=b[0].mimeType;else if(O){let yt=ct.getExtension(O);bt=St.EXTENSION_MAP_BY_CONTENT_TYPE_.get(a).get(yt)||null}}bt&&(_t.mimeType=bt,St.MIME_TYPES_WITHOUT_INIT_SEGMENT_.has(bt)&&(_t.initSegmentReference=null)),b.push(_t),H&&(H+=z)}}if(m){let le=he.getExtinfDuration(m);if(le==0)return null;f=r+le}else if(b.length)f=b[b.length-1].endTime;else return null;E&&(A||b[0].startByte!=0?(E=!1,C=null):b=[]);let M=he.getFirstTagWithName(u,"EXT-X-BYTERANGE");M?[g,_]=this.parseByteRange_(t,M.value):b.length&&(g=b[0].startByte,_=b[b.length-1].endByte);let x="",k=null;if(a==R.ContentType.IMAGE){x="1x1";let le=he.getFirstTagWithName(u,"EXT-X-TILES");if(le){x=le.getRequiredAttrValue("LAYOUT");let H=le.getAttributeValue("DURATION");H&&(k=Number(H))}}let L=null,V=()=>C?C():(L==null&&(L=he.constructSegmentUris(o(),i.verbatimSegmentUri,s)),L||[]),ee=b.length>0&&!!i.verbatimSegmentUri,oe=new Se(r,f,V,g,_,e,0,0,1/0,b,x,k,T,S,d,ee);return c&&(oe.mimeType=c,St.MIME_TYPES_WITHOUT_INIT_SEGMENT_.has(c)&&(oe.initSegmentReference=null)),E&&(this.lowLatencyByterangeOptimization_=!0,oe.markAsByterangeOptimization(),w&&oe.markAsPreload()),oe}parseByteRange_(e,t){let i=0,r=null;if(t){let s=t.split("@"),n=Number(s[0]);s[1]?i=Number(s[1]):(v.assert(e,"Cannot refer back to previous HLS segment!"),i=e.endByte+1),r=i+n-1}return[i,r]}async processDateRangeTags_(e,t,i,r){let s=R.ContentType;if(t!=s.VIDEO&&t!=s.AUDIO)return;let n=this.presentationTimeline_.getInitialProgramDateTime();if(n==null||this.ignoreManifestProgramDateTimeFor_(t))return;let a=he.filterTagsByName(e,"EXT-X-DATERANGE");a=a.filter(c=>c.getAttribute("START-DATE")!=null).sort((c,d)=>{let u=c.getRequiredAttrValue("START-DATE"),m=d.getRequiredAttrValue("START-DATE");return u<m?-1:u>m?1:0});let o=[];for(let c=0;c<a.length;c++){let d=a[c];try{let u=d.getRequiredAttrValue("START-DATE"),m=I.parseDate(u);if(isNaN(m))continue;v.assert(m!=null,"Start date should not be null!");let f=Math.max(0,m-n),g=null,_=d.getAttributeValue("END-DATE");if(_){let A=I.parseDate(_);if(!isNaN(A)&&(v.assert(A!=null,"End date should not be null!"),g=A-n,g<0))continue}if(g==null){let A=d.getAttributeValue("DURATION")||d.getAttributeValue("PLANNED-DURATION");if(A){let w=parseFloat(A);if(isNaN(w)||(g=f+w),m-n+w<0)continue}}let T=d.getAttributeValue("CLASS")||"com.apple.quicktime.HLS",S=d.getAttributeValue("END-ON-NEXT")=="YES";if(g==null&&S){for(let A=c+1;A<a.length;A++){let w=a[A].getAttributeValue("CLASS")||"com.apple.quicktime.HLS";if(T!=w)continue;let M=a[A].getRequiredAttrValue("START-DATE"),x=I.parseDate(M);if(!isNaN(x)&&x&&x>m){g=Math.max(0,x-n);break}}if(g==null)continue}let b=["CLASS","START-DATE","END-DATE","DURATION","END-ON-NEXT"],E=[];for(let A of d.attributes){if(b.includes(A.name))continue;let w=he.variableSubstitution(A.value,i);(A.name=="X-ASSET-URI"||A.name=="X-ASSET-LIST")&&(w=he.constructSegmentUris(r(),A.value,i)[0]);let M={key:A.name,description:"",data:w,mimeType:null,pictureType:null};E.push(M)}let C={schemeIdUri:T,value:"",startTime:f,endTime:g!=null?g:1/0,id:d.getRequiredAttrValue("ID"),timescale:1,eventNode:null,urlParams:void 0,values:E};if(this.playerInterface_.onTimelineRegionAdded(C),E.length>1){let A=this.playerInterface_.onMetadata(T,f,g,E),w=!1,M=E.find(x=>x.key=="CUE");if(M&&M.data.includes("PRE")&&(w=!0),g!=null&&!w){let x;this.manifest_.startTime!=null?x=this.manifest_.startTime:this.isDynamic_()?x=this.manifest_.presentationTimeline.getSeekRangeEnd():x=this.manifest_.presentationTimeline.getSeekRangeStart(),w=f<=x&&g>=x}w&&o.push(A)}}catch(u){p.warning("Ignoring DATERANGE with errors",d.toString())}}o.length&&await Promise.all(o)}createSegments_(e,t,i,r,s,n,a){let o=e.segments;v.assert(o.length,"Playlist should have segments!");let c=null,d=null,u=null,m=null,f,g=he.getFirstTagWithNameAsNumber(e.tags,"EXT-X-DISCONTINUITY-SEQUENCE",-1),_=he.getFirstTagWithNameAsNumber(e.tags,"EXT-X-MEDIA-SEQUENCE",0),T=he.getFirstTagWithName(e.tags,"EXT-X-SKIP"),S=T?Number(T.getAttributeValue("SKIPPED-SEGMENTS")):0,b=_+S,E=0;this.isLive_()&&t.has(b)&&(E=t.get(b)),E===0&&this.isLive_()&&t.size>0&&!t.has(b)&&this.presentationTimeline_.getPresentationStartTime()!=null&&(E=this.presentationTimeline_.getSegmentAvailabilityStart());let C=[],A=[],w=null,M=null,x=[],k=0;if(!n&&a){k=o.length;for(let H=0;H<o.length;H++){let J=_+S+H;if(!t.has(J)){k=H;break}if(o[H].partialSegments.length){k=H;break}if(this.lowLatencyMode_){let Z=he.getFirstTagWithName(o[H].tags,"EXTINF");if(Z){let ce=he.getExtinfDuration(Z),W=this.getReferenceForMediaSequence_(a,t,J);if(W&&Math.abs(W.endTime-W.startTime-ce)>.001){k=H;break}}}}if(k>0){let H=_+S+k-1;w=this.getReferenceForMediaSequence_(a,t,H),w?(M=w,p.debug("HLS live update: reusing",k,"known segment references and building only the new tail.")):(p.debug("HLS live update: full playlist rebuild selected for overlap recovery."),k=0)}}let L=M;!L&&a&&(L=this.getReferenceForMediaSequence_(a,t,_+S)||a.get(a.getNumEvicted()+a.getNumReferences()-1));let V=H=>{let J=ct.getExtension(H);if(!J)return null;let ce=St.EXTENSION_MAP_BY_CONTENT_TYPE_.get(s).get(J);return ce||(ce=St.RAW_FORMATS_TO_MIME_TYPES_.get(J)),ce};for(let H=0;H<o.length;H++){let J=o[H],Z=he.getFirstTagWithName(J.tags,"EXT-X-MAP");Z&&Z.id!==d&&(c=this.getInitSegmentReference_(e,J.tags,r,i),d=Z.id);let ce=J.verbatimSegmentUri,W="";ce&&(W=ct.getExtension(ce)),W!==m&&(u=V(ce),m=W);let z=H==0?E:w.endTime;b=_+S+H,he.getFirstTagWithName(J.tags,"EXT-X-DISCONTINUITY")&&(g++,H>=k&&w&&w.initSegmentReference&&(w.initSegmentReference.boundaryEnd=z));for(let O of J.tags)O.name=="EXT-X-KEY"&&(this.isAesMethod_(O.getRequiredAttrValue("METHOD"))?f=this.parseAESDrmTag_(O,e,r,i):f=void 0);if(H<k)continue;let Y=n||!t.has(b);t.set(b,z);let X=this.createSegmentReference_(c,w,J,z,i,e,s,r,u,f);if(X){let O=he.getFirstTagWithNameAsNumber(J.tags,"EXT-X-BITRATE");if(O)x.push({bitrate:O,duration:X.endTime-X.startTime}),X.bandwidth=O;else if(X.endByte){let $=X.getSize();if($){let Ie=X.endTime-X.startTime,tt=$*8/Ie/1e3;x.push({bitrate:tt,duration:Ie}),X.bandwidth=tt}}else if(x.length){let $=x[x.length-1];$.duration+=X.endTime-X.startTime,X.bandwidth=$.bitrate}if(X.bandwidth)for(let $ of X.partialReferences)$.bandwidth=X.bandwidth;w=X,X.discontinuitySequence=g,this.ignoreManifestProgramDateTimeFor_(s)&&this.minSequenceNumber_!=null&&b<this.minSequenceNumber_||(C.push(X),(Y||!n)&&A.push(X))}}let ee;if(x.length){let H=x.reduce((J,Z)=>J+Z.duration,0);ee=Math.round(x.reduce((J,Z)=>J+Z.bitrate*Z.duration,0)/H*1e3)}let oe=!!(M!=null&&M.syncTime)||C.some(H=>H.syncTime!=null);if(oe)for(let H=0;H<C.length;H++){let J=C[H];if(J.syncTime!=null)continue;let Z=0,ce=H,W=()=>{let X=C[ce];if(X){if(X.syncTime!=null)return X.syncTime+Z;Z-=X.endTime-X.startTime,ce+=1}return null},z=0,ge=H,Y=()=>{let X=C[ge];if(X){if(X!=J&&(z+=X.endTime-X.startTime),X.syncTime!=null)return X.syncTime+z;ge-=1}else if(M&&M.syncTime!=null)return M.syncTime+(M.endTime-M.startTime)+z;return null};for(;J.syncTime==null;)J.syncTime=Y(),J.syncTime==null&&(J.syncTime=W())}if(oe){let H=0,J=M;if(L&&L.syncTime!=null){let Z=this.realProgramDateTimeByReference_.get(L);Z!=null&&(H=Z-L.syncTime)}for(let Z of C){if(Z.syncTime!=null){if(this.realProgramDateTimeByReference_.set(Z,Z.syncTime),J&&J.syncTime!=null&&J.discontinuitySequence!=Z.discontinuitySequence){let W=J.syncTime+(J.endTime-J.startTime),ge=Z.syncTime-W-H;Math.abs(ge)>1&&(H+=ge)}Z.syncTime-=H}let ce=Z.syncTime;for(let W of Z.partialReferences)W.syncTime=ce,ce+=W.endTime-W.startTime;J=Z}}let le=this.lowestSyncTime_;if(oe&&le!=1/0&&!this.ignoreManifestProgramDateTimeFor_(s))for(let H of C)H.syncAgainst(le);return{segments:n?C:A,totalCount:k+C.length,bandwidth:ee}}setProgramDateTimeRegionsFromIndex_(e,t){if(t!=R.ContentType.VIDEO||this.ignoreManifestProgramDateTimeFor_(t)||!e.segmentIndex)return;let i=[],r=null;for(let s of e.segmentIndex){if(!s||s.syncTime==null)continue;let n=this.realProgramDateTimeByReference_.get(s);if(n==null)continue;let a=n-s.syncTime;(r==null||Math.abs(a-r)>.001)&&i.push({start:s.startTime,pdt:n}),r=a}this.presentationTimeline_.setProgramDateTimeRegions(i)}guessMimeTypeBeforeLoading_(e,t){if(e==R.ContentType.TEXT){if(t=="vtt"||t=="wvtt")return"text/vtt";if(t&&t!=="")return"application/mp4"}return e==R.ContentType.IMAGE&&(!t||t=="jpeg")?"image/jpeg":e==R.ContentType.AUDIO&&t=="mp4a.40.34"?"audio/mpeg":t=="mjpg"?"application/mp4":null}guessMimeTypeFallback_(e){return e==R.ContentType.TEXT?"text/vtt":St.EXTENSION_MAP_BY_CONTENT_TYPE_.get(e).get("mp4")}getAvailableSegment_(e){v.assert(e.length,"Should have segments!");let t=this.isLive_()?Math.trunc((e.length-1)/2):0,i=e[t];for(;i.getStatus()==Se.Status.MISSING&&t+1<e.length;)t++,i=e[t];return{segment:i,segmentIndex:t}}async guessMimeType_(e,t,i){let r=K.RequestType.SEGMENT,{segment:s}=this.getAvailableSegment_(i);if(s.status==Se.Status.MISSING)return this.guessMimeTypeFallback_(e);let n,a=s.getUris(),o=ct.getExtension(a[0]);if(o){let g=St.EXTENSION_MAP_BY_CONTENT_TYPE_.get(e).get(o);if(g||(g=St.RAW_FORMATS_TO_MIME_TYPES_.get(o),g))return g}if(n=this.guessMimeTypeBeforeLoading_(e,t),n)return n;let c,d=K.AdvancedRequestType.MEDIA_SEGMENT,u=K.makeRequest(a,this.playerInterface_.getStreamingRetryParameters()),m;try{u.method="HEAD",m=await this.makeNetworkRequest_(u,r,{type:d}).promise,c=m.headers["content-type"]}catch(f){f&&(f.code==h.Code.HTTP_ERROR||f.code==h.Code.BAD_HTTP_STATUS)&&(u.method="GET",this.config_.hls.allowRangeRequestsToGuessMimeType&&(u.headers.Range="bytes=0-0"),m=await this.makeNetworkRequest_(u,r,{type:d}).promise,c=m.headers["content-type"])}return c&&(n=c.toLowerCase().split(";")[0],this.isGenericBinaryMimeType_(n)&&(m.data.byteLength||(u.method="GET",m=await this.makeNetworkRequest_(u,r,{type:d}).promise),pt.probe(D.toUint8(m.data))&&(n="video/mp2t")),!this.isGenericBinaryMimeType_(n))?n:this.guessMimeTypeFallback_(e)}isGenericBinaryMimeType_(e){return St.GENERIC_BINARY_MIME_TYPES_.includes(e)}getRequiredTag_(e,t){let i=he.getFirstTagWithName(e,t);if(!i)throw new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.HLS_REQUIRED_TAG_MISSING,t);return i}addVideoAttributes_(e,t,i,r,s,n,a){e&&(e.width=Number(t)||void 0,e.height=Number(i)||void 0,e.frameRate=r||void 0,e.hdr=s||void 0,e.videoLayout=n||void 0,e.colorGamut=a||void 0)}requestManifest_(e,t){let i=K.RequestType.MANIFEST,r=K.makeRequest(e,this.config_.retryParameters),s=t?K.AdvancedRequestType.MEDIA_PLAYLIST:K.AdvancedRequestType.MASTER_PLAYLIST;return this.makeNetworkRequest_(r,i,{type:s})}async onUpdate_(){if(p.info("Updating manifest..."),v.assert(this.getUpdatePlaylistDelay_()>0,"We should only call |onUpdate_| when we are suppose to be updating."),!!this.playerInterface_){try{let e=Date.now();await this.update();let t=Date.now();if(this.isDynamic_()){let i=(t-e)/1e3;this.averageUpdateDuration_.sample(1,i);let r=this.config_.updatePeriod>0?this.config_.updatePeriod:this.getUpdatePlaylistDelay_(),s=Math.max(0,r-this.averageUpdateDuration_.getEstimate());isFinite(s)?this.updatePlaylistTimer_.tickAfter(s):this.updatePlaylistTimer_.tickAfter(1)}}catch(e){if(!this.playerInterface_)return;if(v.assert(e instanceof h,"Should only receive a Shaka error"),this.config_.raiseFatalErrorOnManifestUpdateRequestFailure){this.playerInterface_.onError(e);return}e.severity=h.Severity.RECOVERABLE,this.playerInterface_.onError(e),this.updatePlaylistTimer_.tickAfter(.1)}this.playerInterface_&&this.playerInterface_.onManifestUpdated()}}isDynamic_(){let e=St.PresentationType_;return this.presentationType_!=e.VOD}isLive_(){let e=St.PresentationType_;return this.presentationType_==e.LIVE}getUpdatePlaylistDelay_(){return this.lastTargetDuration_}setPresentationType_(e){this.presentationType_=e,this.presentationTimeline_&&this.presentationTimeline_.setStatic(!this.isDynamic_()),this.isDynamic_()||this.updatePlaylistTimer_.stop()}makeNetworkRequest_(e,t,i){if(!this.operationManager_)throw new h(h.Severity.CRITICAL,h.Category.PLAYER,h.Code.OPERATION_ABORTED);i||(i={}),i.isPreload=this.isPreloadFn_();let r=this.playerInterface_.networkingEngine.request(t,e,i);return this.operationManager_.manage(r),r}isAesMethod_(e){return e=="AES-128"||e=="AES-256"||e=="AES-256-CTR"||e=="AES-256-GCM"}async fairplayDrmParser_(e,t,i){if(t=="video/mp2t")throw new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.HLS_MSE_ENCRYPTED_MP2T_NOT_SUPPORTED);if(de.isMediaKeysPolyfilled("apple"))throw new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.HLS_MSE_ENCRYPTED_LEGACY_APPLE_MEDIA_KEYS_NOT_SUPPORTED);let r=e.getRequiredAttrValue("METHOD"),s=["SAMPLE-AES","SAMPLE-AES-CTR"];if(!s.includes(r))return p.error("FairPlay in HLS is only supported with [",s.join(", "),"], not",r),null;let n="cenc";r=="SAMPLE-AES"&&(n="cbcs");let a=e.getRequiredAttrValue("URI"),o=R.createDrmInfo("com.apple.fps",n,null,a),c=hr.defaultGetKeyId(a);return!c&&i&&(c=await this.getKeyIdFromInitSegment_(i)),c&&o.keyIds.add(c),o}widevineDrmParser_(e,t,i){let r=e.getRequiredAttrValue("METHOD"),s=["SAMPLE-AES","SAMPLE-AES-CTR"];if(!s.includes(r))return p.error("Widevine in HLS is only supported with [",s.join(", "),"], not",r),Promise.resolve(null);let n="cenc";r=="SAMPLE-AES"&&(n="cbcs");let a=e.getRequiredAttrValue("URI"),o=yr.parseRaw(a.split("?")[0]),c=a.split("?")[0],d=this.psshToInitData_.getOrInsertComputed(c,()=>D.toUint8(o.data)),u=R.createDrmInfo("com.widevine.alpha",n,[{initDataType:"cenc",initData:d}],void 0,o.typeInfoList),m=e.getAttributeValue("KEYID");if(m){let f=m.toLowerCase();v.assert(f.startsWith("0x"),"Incorrect KEYID format!"),u.keyIds.add(f.substr(2))}return Promise.resolve(u)}playreadyDrmParser_(e,t,i){let r=e.getRequiredAttrValue("METHOD"),s=["SAMPLE-AES","SAMPLE-AES-CTR"];if(!s.includes(r))return p.error("PlayReady in HLS is only supported with [",s.join(", "),"], not",r),Promise.resolve(null);let n="cenc";r=="SAMPLE-AES"&&(n="cbcs");let a=e.getRequiredAttrValue("URI"),o=yr.parseRaw(a.split("?")[0]),c=D.toUint8(o.data),d=new Uint8Array([154,4,240,121,152,64,66,134,171,146,230,91,224,136,95,149]),u=new Set,f=ei.createPssh(c,d,u,0),g=R.createDrmInfo("com.microsoft.playready",n,[{initDataType:"cenc",initData:f}],void 0,o.typeInfoList),_=I.parseXmlString(["<PLAYREADY>",ne.toBase64(c),"</PLAYREADY>"].join(`
707
+ `));return _&&(g.licenseServerUri=Ri.getLicenseUrl(_)),Promise.resolve(g)}wiseplayDrmParser_(e,t,i){let r=e.getRequiredAttrValue("METHOD"),s=["SAMPLE-AES","SAMPLE-AES-CTR"];if(!s.includes(r))return p.error("WisePlay in HLS is only supported with [",s.join(", "),"], not",r),Promise.resolve(null);let n="cenc";r=="SAMPLE-AES"&&(n="cbcs");let a=e.getRequiredAttrValue("URI"),o=yr.parseRaw(a.split("?")[0]),c=a.split("?")[0],d=this.psshToInitData_.getOrInsertComputed(c,()=>D.toUint8(o.data)),u=R.createDrmInfo("com.huawei.wiseplay",n,[{initDataType:"cenc",initData:d}],void 0,o.typeInfoList),m=e.getAttributeValue("KEYID");if(m){let f=m.toLowerCase();v.assert(f.startsWith("0x"),"Incorrect KEYID format!"),u.keyIds.add(f.substr(2))}return Promise.resolve(u)}async identityDrmParser_(e,t,i,r,s){if(t=="video/mp2t")throw new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.HLS_MSE_ENCRYPTED_MP2T_NOT_SUPPORTED);let n=e.getRequiredAttrValue("METHOD"),a=["SAMPLE-AES","SAMPLE-AES-CTR"];if(!a.includes(n))return p.error("Identity (ClearKey) in HLS is only supported with [",a.join(", "),"], not",n),null;let o=he.constructSegmentUris(i(),e.getRequiredAttrValue("URI"),s),c;if(o[0].startsWith("data:text/plain;base64,"))c=ne.toHex(ne.fromBase64(o[0].split("data:text/plain;base64,").pop()));else{let f=o.sort().join(""),g=await this.identityKeyMap_.getOrInsertComputed(f,()=>{let _=K.RequestType.KEY,T=K.makeRequest(o,this.config_.retryParameters);return this.makeNetworkRequest_(T,_).promise});c=ne.toHex(g.data)}let d="00000000000000000000000000000000";if(r){let f=await this.getKeyIdFromInitSegment_(r);f&&(d=f)}let u=new Map;u.set(d,c);let m="cenc";return n=="SAMPLE-AES"&&(m="cbcs"),R.createDrmInfoFromClearKeys(u,m)}async getKeyIdFromInitSegment_(e){let t=null;if(this.initSegmentToKidMap_.has(e))t=this.initSegmentToKidMap_.get(e);else{let i=ct.createSegmentRequest(e.getUris(),e.getStartByte(),e.getEndByte(),this.playerInterface_.getStreamingRetryParameters()),r=K.RequestType.SEGMENT,s=K.AdvancedRequestType.INIT_SEGMENT,n=await this.makeNetworkRequest_(i,r,{type:s}).promise;e.setSegmentData(n.data),t=vt.getDefaultKID(n.data),this.initSegmentToKidMap_.set(e,t)}return t}};l(St,"GENERIC_BINARY_MIME_TYPES_",["application/octet-stream","binary/octet-stream"]),l(St,"PresentationType_",{VOD:"VOD",EVENT:"EVENT",LIVE:"LIVE"}),l(St,"FAKE_MUXED_URL_","shaka://hls-muxed");var Ut=St;Ut.RAW_FORMATS_TO_MIME_TYPES_=new Map().set("aac","audio/aac").set("ac3","audio/ac3").set("ec3","audio/ec3").set("mp3","audio/mpeg");Ut.AUDIO_EXTENSIONS_TO_MIME_TYPES_=new Map().set("mp4","audio/mp4").set("mp4a","audio/mp4").set("m4s","audio/mp4").set("m4i","audio/mp4").set("m4a","audio/mp4").set("m4f","audio/mp4").set("cmfa","audio/mp4").set("ts","video/mp2t").set("tsa","video/mp2t");Ut.VIDEO_EXTENSIONS_TO_MIME_TYPES_=new Map().set("mp4","video/mp4").set("mp4v","video/mp4").set("m4s","video/mp4").set("m4i","video/mp4").set("m4v","video/mp4").set("m4f","video/mp4").set("cmfv","video/mp4").set("ts","video/mp2t").set("tsv","video/mp2t");Ut.TEXT_EXTENSIONS_TO_MIME_TYPES_=new Map().set("mp4","application/mp4").set("m4s","application/mp4").set("m4i","application/mp4").set("m4f","application/mp4").set("cmft","application/mp4").set("vtt","text/vtt").set("webvtt","text/vtt").set("ttml","application/ttml+xml");Ut.IMAGE_EXTENSIONS_TO_MIME_TYPES_=new Map().set("jpg","image/jpeg").set("png","image/png").set("svg","image/svg+xml").set("webp","image/webp").set("avif","image/avif");Ut.EXTENSION_MAP_BY_CONTENT_TYPE_=new Map().set("audio",Ut.AUDIO_EXTENSIONS_TO_MIME_TYPES_).set("video",Ut.VIDEO_EXTENSIONS_TO_MIME_TYPES_).set("text",Ut.TEXT_EXTENSIONS_TO_MIME_TYPES_).set("image",Ut.IMAGE_EXTENSIONS_TO_MIME_TYPES_);Ut.MIME_TYPES_WITHOUT_INIT_SEGMENT_=new Set(["video/mp2t",...N.RAW_FORMATS]);me.registerParserByMime("application/x-mpegurl",()=>new Ut);me.registerParserByMime("application/vnd.apple.mpegurl",()=>new Ut);me.registerParserByMime("audio/x-mpegurl",()=>new Ut);/*! @license
708
+ * Shaka Player
709
+ * Copyright 2016 Google LLC
710
+ * SPDX-License-Identifier: Apache-2.0
711
+ */var jn=class{parse(e){let t=[],i=e.length-128;if(i<0||e[i]!==84||e[i+1]!==65||e[i+2]!==71)return t;let r=(o,c)=>q.fromUTF8(e.subarray(i+o,i+o+c)).replace(/\0/g,"").trim(),s=(o,c)=>{c&&t.push({key:o,description:"",data:c,mimeType:null,pictureType:null})};s("TIT2",r(3,30)),s("TPE1",r(33,30)),s("TALB",r(63,30)),s("TYER",r(93,4));let n="",a=null;return e[i+125]===0?(n=r(97,28),a=e[i+126]):n=r(97,30),s("COMM",n),a!==null&&s("TRCK",String(a)),s("TCON",String(e[i+127])),t}};for(let y of N.RAW_FORMATS)kt.registerParserByMime(y,()=>new jn);/*! @license
712
+ * Shaka Player
713
+ * Copyright 2016 Google LLC
714
+ * SPDX-License-Identifier: Apache-2.0
715
+ */var Gs=class y{parse(e){let t=[];return new F().boxes(["moov","udta"],F.children).fullBox("meta",F.children).box("ilst",i=>{for(;i.reader.hasMoreData()&&!(i.reader.getLength()-i.reader.getPosition()<8);){let r=i.reader.readUint32(),s=F.typeToString(i.reader.readUint32());if(r<8)break;let n=i.reader.getLength()-i.reader.getPosition(),a=Math.min(r-8,n),o=i.reader.readBytes(a,!1),c=s==="----"?this.parseFreeform_(o):this.parseStandard_(s,o);c&&t.push(c)}}).parse(e),t}parseFreeform_(e){let t="",i="",r=null;return new F().fullBox("mean",s=>{let n=s.reader.getLength()-s.reader.getPosition();t=q.fromUTF8(s.reader.readBytes(n,!1))}).fullBox("name",s=>{let n=s.reader.getLength()-s.reader.getPosition();i=q.fromUTF8(s.reader.readBytes(n,!1))}).fullBox("data",s=>{r=this.parseDataBox_(s)}).parse(e),!r||!i?null:{key:i,data:r.data,description:t?`Domain: ${t}`:"",mimeType:r.mimeType,pictureType:r.pictureType}}parseStandard_(e,t){let i=y.ILST_TO_ID3_.get(e)||e,r=null;return new F().fullBox("data",s=>{let n=this.parseDataBox_(s,e);r={key:i,data:n.data,description:"",mimeType:n.mimeType,pictureType:n.pictureType}}).parse(t),r}parseDataBox_(e,t=""){e.reader.skip(4);let i=e.reader.readBytes(e.reader.getLength()-e.reader.getPosition(),!1);if((t==="trkn"||t==="disk")&&i.length>=6){let r=D.toDataView(i),s=r.getUint16(2,!1),n=r.getUint16(4,!1);return{data:n>0?`${s}/${n}`:`${s}`,mimeType:null,pictureType:null}}switch(e.flags){case 13:return{data:D.toArrayBuffer(i),mimeType:"image/jpeg",pictureType:3};case 14:return{data:D.toArrayBuffer(i),mimeType:"image/png",pictureType:3};case 21:{let r=D.toDataView(i),s=0;switch(i.length){case 1:s=r.getInt8(0);break;case 2:s=r.getInt16(0,!1);break;case 3:s=i[0]<<16|i[1]<<8|i[2],s&8388608&&(s|=-16777216);break;case 4:s=r.getInt32(0,!1);break;default:s=0;for(let n of i)s=s<<8|n}return{data:s,mimeType:null,pictureType:null}}default:return{data:q.fromUTF8(i).replace(/\0/g,""),mimeType:null,pictureType:null}}}};Gs.ILST_TO_ID3_=new Map().set("\xA9nam","TIT2").set("\xA9ART","TPE1").set("aART","TPE2").set("\xA9alb","TALB").set("\xA9gen","TCON").set("\xA9day","TDRC").set("\xA9wrt","TEXT").set("trkn","TRCK").set("disk","TPOS").set("\xA9cmt","COMM").set("covr","APIC").set("cprt","TCOP").set("\xA9too","TENC").set("tmpo","TBPM").set("cpil","TCMP");kt.registerParserByMime("audio/mp4",()=>new Gs);/*! @license
716
+ * Shaka Player
717
+ * Copyright 2016 Google LLC
718
+ * SPDX-License-Identifier: Apache-2.0
719
+ */var Yn=class Yn{parse(e){if(e.length>=4&&e[0]==102&&e[1]==76&&e[2]==97&&e[3]==67){let r=[],s=4;for(;s+4<=e.length;){let n=e[s],a=!!(n&128),o=n&127,c=e[s+1]<<16|e[s+2]<<8|e[s+3];if(s+=4,s+c>e.length)break;let d=e.subarray(s,s+c);if(o==4&&r.push(...this.parseVorbisCommentBlock_(d)),o==6){let u=this.parseFlacPicture_(d);u&&r.push(u)}if(s+=c,a)break}return r}if(e.length>=4&&e[0]==79&&e[1]==103&&e[2]==103&&e[3]==83){let r=q.fromUTF8(e),s=r.indexOf("OpusTags");if(s<0&&(s=r.indexOf("vorbis")),s>=0)return this.parseVorbisCommentBlock_(e.subarray(s+8))}return[]}parseVorbisCommentBlock_(e){let t=[];try{let i=new Et(e,Et.Endianness.LITTLE_ENDIAN),r=i.readUint32();i.skip(r);let s=i.readUint32();for(let n=0;n<s;n++){let a=i.readUint32(),o=q.fromUTF8(i.readBytes(a,!1)),c=o.indexOf("=");if(c<0)continue;let d=o.substring(0,c).toUpperCase(),u=o.substring(c+1),m=Yn.VORBIS_TO_ID3_MAP_[d]||d;t.push({key:m,data:u,description:"",mimeType:null,pictureType:null})}}catch(i){}return t}parseFlacPicture_(e){try{let t=new Et(e,Et.Endianness.BIG_ENDIAN),i=t.readUint32(),r=t.readUint32(),s=q.fromUTF8(t.readBytes(r,!0)),n=t.readUint32(),a=q.fromUTF8(t.readBytes(n,!0));t.skip(16);let o=t.readUint32(),c=t.readBytes(o,!0);return{key:"APIC",data:D.toArrayBuffer(c),description:a,mimeType:s,pictureType:i}}catch(t){return null}}};l(Yn,"VORBIS_TO_ID3_MAP_",{TITLE:"TIT2",ARTIST:"TPE1",ALBUM:"TALB",ALBUMARTIST:"TPE2",TRACKNUMBER:"TRCK",DISCNUMBER:"TPOS",DATE:"TDRC",GENRE:"TCON",COMMENT:"COMM",DESCRIPTION:"TIT3",COPYRIGHT:"TCOP",COMPOSER:"TCOM",LYRICS:"USLT",ISRC:"TSRC"});var Vr=Yn;kt.registerParserByMime("audio/flac",()=>new Vr);kt.registerParserByMime("audio/ogg",()=>new Vr);kt.registerParserByMime("audio/vorbis",()=>new Vr);kt.registerParserByMime("audio/opus",()=>new Vr);/*! @license
720
+ * Shaka Player
721
+ * Copyright 2016 Google LLC
722
+ * SPDX-License-Identifier: Apache-2.0
723
+ */var Ks=class{constructor(e){l(this,"frameDuration_");this.frameDuration_=e}parse(e){let t=BigInt(6),i=BigInt(8),{props:r,payloadOffset:s}=this.parsePrivateProperties_(e.data),n=D.toUint8(e.data,s);if(e.extensions&&e.extensions.byteLength>0){let o=this.parseExtensions_(e.extensions),c=o.get(t);if(typeof c=="bigint"){let d=o.get(i);return{startTime:this.timestampToSeconds_(c,typeof d=="bigint"?d:void 0),duration:this.frameDuration_,payload:n}}}let a=r.get(t);if(typeof a=="bigint"){let o=r.get(i);return{startTime:this.timestampToSeconds_(a,typeof o=="bigint"?o:void 0),duration:this.frameDuration_,payload:n}}return{startTime:Number(e.location.group)*this.frameDuration_,duration:this.frameDuration_,payload:n}}timestampToSeconds_(e,t){let i=t!==void 0?Number(t):1e6;return Number(e)/i}parseExtensions_(e){let t=new Map;if(e.byteLength===0)return t;try{let i=0;for(;i<e.byteLength;){let r=this.readVi64At_(e,i);i+=r.bytesRead;let s=r.value;if(s%BigInt(2)===BigInt(0)){let n=this.readVi64At_(e,i);i+=n.bytesRead,t.set(s,n.value)}else{let n=this.readVi64At_(e,i);i+=n.bytesRead;let a=Number(n.value);t.set(s,D.toUint8(e,i,a)),i+=a}}}catch(i){p.v2("LOCParser: failed to parse extension headers, returning partial map",i)}return t}parsePrivateProperties_(e){let t=new Map;if(e.byteLength===0)return{props:t,payloadOffset:0};try{let i=0,r=this.readVi64At_(e,i);i+=r.bytesRead;let s=Number(r.value);if(s===0||s>64)return{props:t,payloadOffset:0};for(let n=0;n<s;n++){let a=this.readVi64At_(e,i);i+=a.bytesRead;let o=a.value;if(o%BigInt(2)===BigInt(0)){let c=this.readVi64At_(e,i);i+=c.bytesRead,t.set(o,c.value)}else{let c=this.readVi64At_(e,i);i+=c.bytesRead;let d=Number(c.value);t.set(o,D.toUint8(e,i,d)),i+=d}}return{props:t,payloadOffset:i}}catch(i){return p.v2("LOCParser: failed to parse private properties prefix, using full buffer as payload",i),{props:t,payloadOffset:0}}}readVi64At_(e,t){if(t>=e.length)throw new Error(`LOCParser.readVi64At: underflow at offset ${t}`);let i=(e[t]&192)>>6;if(i===0)return{value:BigInt(e[t]&63),bytesRead:1};if(i===1){if(t+2>e.length)throw new Error("LOCParser.readVi64At: need 2 bytes");let s=D.toDataView(e,t,2);return{value:BigInt(s.getUint16(0))&BigInt("0x3fff"),bytesRead:2}}if(i===2){if(t+4>e.length)throw new Error("LOCParser.readVi64At: need 4 bytes");let s=D.toDataView(e,t,4);return{value:BigInt(s.getUint32(0))&BigInt("0x3fffffff"),bytesRead:4}}if(t+8>e.length)throw new Error("LOCParser.readVi64At: need 8 bytes");return{value:D.toDataView(e,t,8).getBigUint64(0)&BigInt("0x3fffffffffffffff"),bytesRead:8}}static frameDurationFromTrack(e){let t=(e.codec||"").toLowerCase();return e.framerate?1/e.framerate:e.samplerate?t.startsWith("mp4a.40")?1024/e.samplerate:t==="opus"?960/e.samplerate:(p.warning(`LOCParser.frameDurationFromTrack: unrecognised codec "${e.codec}" for track "${e.name}"`),null):(p.warning(`LOCParser.frameDurationFromTrack: track "${e.name}" has no samplerate`),null)}};/*! @license
724
+ * Shaka Player
725
+ * Copyright 2016 Google LLC
726
+ * SPDX-License-Identifier: Apache-2.0
727
+ */var Ki=class Ki{static isDraft16(e){return e>=Ki.Version.DRAFT_16}};l(Ki,"MessageTypeId",{CLIENT_SETUP:32,SERVER_SETUP:33,GOAWAY:16,MAX_REQUEST_ID:21,REQUESTS_BLOCKED:26,SUBSCRIBE:3,SUBSCRIBE_OK:4,SUBSCRIBE_ERROR:5,SUBSCRIBE_UPDATE:2,UNSUBSCRIBE:10,PUBLISH_DONE:11,PUBLISH:29,PUBLISH_OK:30,PUBLISH_ERROR:31,FETCH:22,FETCH_OK:24,FETCH_ERROR:25,FETCH_CANCEL:23,TRACK_STATUS:13,TRACK_STATUS_OK:14,TRACK_STATUS_ERROR:15,PUBLISH_NAMESPACE:6,PUBLISH_NAMESPACE_OK:7,PUBLISH_NAMESPACE_ERROR:8,PUBLISH_NAMESPACE_DONE:9,PUBLISH_NAMESPACE_CANCEL:12,SUBSCRIBE_NAMESPACE:17,SUBSCRIBE_NAMESPACE_OK:18,SUBSCRIBE_NAMESPACE_ERROR:19,UNSUBSCRIBE_NAMESPACE:20}),l(Ki,"MessageType",{GOAWAY:"goaway",MAX_REQUEST_ID:"max_request_id",REQUESTS_BLOCKED:"requests_blocked",SUBSCRIBE:"subscribe",SUBSCRIBE_OK:"subscribe_ok",SUBSCRIBE_ERROR:"subscribe_error",SUBSCRIBE_UPDATE:"subscribe_update",UNSUBSCRIBE:"unsubscribe",PUBLISH_DONE:"publish_done",PUBLISH:"publish",PUBLISH_OK:"publish_ok",PUBLISH_ERROR:"publish_error",FETCH:"fetch",FETCH_OK:"fetch_ok",FETCH_ERROR:"fetch_error",FETCH_CANCEL:"fetch_cancel",TRACK_STATUS:"track_status",TRACK_STATUS_OK:"track_status_ok",TRACK_STATUS_ERROR:"track_status_error",PUBLISH_NAMESPACE:"publish_namespace",PUBLISH_NAMESPACE_OK:"publish_namespace_ok",PUBLISH_NAMESPACE_ERROR:"publish_namespace_error",PUBLISH_NAMESPACE_DONE:"publish_namespace_done",PUBLISH_NAMESPACE_CANCEL:"publish_namespace_cancel",SUBSCRIBE_NAMESPACE:"subscribe_namespace",SUBSCRIBE_NAMESPACE_OK:"subscribe_namespace_ok",SUBSCRIBE_NAMESPACE_ERROR:"subscribe_namespace_error",UNSUBSCRIBE_NAMESPACE:"unsubscribe_namespace"}),l(Ki,"SetupOption",{MAX_REQUEST_ID:2,AUTHORIZATION_TOKEN:3,MAX_AUTH_TOKEN_CACHE_SIZE:4,IMPLEMENTATION:7}),l(Ki,"GroupOrder",{PUBLISHER:0,ASCENDING:1,DESCENDING:2}),l(Ki,"FilterType",{NONE:0,NEXT_GROUP_START:1,LARGEST_OBJECT:2,ABSOLUTE_START:3,ABSOLUTE_RANGE:4}),l(Ki,"Version",{DRAFT_14:4278190094,DRAFT_16:4278190096}),l(Ki,"FetchType",{STANDALONE:1,RELATIVE:2,ABSOLUTE:3});var P=Ki;/*! @license
728
+ * Shaka Player
729
+ * Copyright 2016 Google LLC
730
+ * SPDX-License-Identifier: Apache-2.0
731
+ */var $n=class $n{constructor(e,t){l(this,"buffer_");l(this,"dataView_");l(this,"littleEndian_");l(this,"position_");this.buffer_=new Uint8Array(e),this.dataView_=D.toDataView(this.buffer_),this.littleEndian_=t==$n.Endianness.LITTLE_ENDIAN,this.position_=0}getPosition(){return this.position_}getLength(){return this.position_}getBytes(){return D.toUint8(this.buffer_,0,this.position_)}reset(){this.position_=0}ensureSpace_(e){let t=this.position_+e;if(t<=this.buffer_.length)return;let i=Math.max(this.buffer_.length*2,t),r=new Uint8Array(i);r.set(this.buffer_),this.buffer_=r,this.dataView_=D.toDataView(this.buffer_)}writeUint8(e){this.ensureSpace_(1),this.dataView_.setUint8(this.position_,e&255),this.position_+=1}writeUint16(e){this.ensureSpace_(2),this.dataView_.setUint16(this.position_,e&65535,this.littleEndian_),this.position_+=2}writeUint32(e){this.ensureSpace_(4),this.dataView_.setUint32(this.position_,e>>>0,this.littleEndian_),this.position_+=4}writeUint64(e){if(e<0||e>Number.MAX_SAFE_INTEGER)throw new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.JS_INTEGER_OVERFLOW);this.ensureSpace_(8);let t=Math.floor(e/4294967296),i=e>>>0;this.littleEndian_?(this.dataView_.setUint32(this.position_,i,!0),this.dataView_.setUint32(this.position_+4,t,!0)):(this.dataView_.setUint32(this.position_,t,!1),this.dataView_.setUint32(this.position_+4,i,!1)),this.position_+=8}writeBytes(e){v.assert(e,"Bad call to writeBytes"),this.ensureSpace_(e.byteLength),D.toUint8(this.buffer_,this.position_,e.byteLength).set(e),this.position_+=e.byteLength}writeString(e){let t=D.toUint8(q.toUTF8(e));this.writeUint32(t.length),this.writeBytes(t)}writeVarInt53(e){if(e<0)throw new Error(`Underflow: ${e}`);let t=63,i=16383,r=(1<<30)-1,s=Number.MAX_SAFE_INTEGER;if(e<=t)this.writeUint8(e);else if(e<=i)this.writeUint8(e>>8&63|64),this.writeUint8(e&255);else if(e<=r)this.writeUint8(e>>24&31|128),this.writeUint8(e>>16&255),this.writeUint8(e>>8&255),this.writeUint8(e&255);else if(e<=s){let n=Math.floor(e/4294967296),a=e%4294967296;this.writeUint8(n>>24&15|192),this.writeUint8(n>>16&255),this.writeUint8(n>>8&255),this.writeUint8(n&255),this.writeUint8(a>>24&255),this.writeUint8(a>>16&255),this.writeUint8(a>>8&255),this.writeUint8(a&255)}else throw new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.JS_INTEGER_OVERFLOW)}writeVarInt62(e){if(e<BigInt(0))throw new Error(`Underflow: ${e}`);if(e<=BigInt(Number.MAX_SAFE_INTEGER)){this.writeVarInt53(Number(e));return}let t=BigInt(255),i=BigInt(15),r=BigInt(192);this.ensureSpace_(8),this.writeUint8(Number(e>>BigInt(56)&i|r)),this.writeUint8(Number(e>>BigInt(48)&t)),this.writeUint8(Number(e>>BigInt(40)&t)),this.writeUint8(Number(e>>BigInt(32)&t)),this.writeUint8(Number(e>>BigInt(24)&t)),this.writeUint8(Number(e>>BigInt(16)&t)),this.writeUint8(Number(e>>BigInt(8)&t)),this.writeUint8(Number(e&t))}writeStringVarInt(e){let t=D.toUint8(q.toUTF8(e));this.writeVarInt53(t.length),this.writeBytes(t)}seek(e){if(v.assert(e>=0,"Bad seek"),e>this.buffer_.length)throw this.outOfBounds_();this.position_=e}skip(e){v.assert(e>=0,"Bad skip"),this.ensureSpace_(e),this.position_+=e}reserveUint16(){let e=this.position_;return this.skip(2),e}patchUint16(e,t){let i=this.position_;this.position_=e,this.writeUint16(t),this.position_=i}outOfBounds_(){return new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.BUFFER_WRITE_OUT_OF_BOUNDS)}};l($n,"Endianness",{BIG_ENDIAN:0,LITTLE_ENDIAN:1});var qi=$n;/*! @license
732
+ * Shaka Player
733
+ * Copyright 2016 Google LLC
734
+ * SPDX-License-Identifier: Apache-2.0
735
+ */var ns=class{constructor(e,t=1024){l(this,"version_");l(this,"writer_");this.version_=e,this.writer_=new qi(t,qi.Endianness.BIG_ENDIAN)}getBytes(){return this.writer_.getBytes()}reset(){this.writer_.reset()}writeBoolAsUint8_(e){this.writer_.writeUint8(e?1:0)}writeArray_(e,t){this.writer_.writeVarInt53(e.length);for(let i of e)t(i)}writeString_(e){this.writer_.writeStringVarInt(e)}writeTuple_(e){this.writeArray_(e||[],t=>{this.writeString_(t)})}writeLocation_(e){this.writer_.writeVarInt62(e.group),this.writer_.writeVarInt62(e.object)}writeKeyValuePair_(e){if(this.writer_.writeVarInt62(e.type),e.type%BigInt(2)===BigInt(0)){if(typeof e.value!="bigint")throw new Error("Invalid value type for even key "+e.type+": expected bigint, got "+typeof e.value);this.writer_.writeVarInt62(e.value)}else{if(!ArrayBuffer.isView(e.value))throw new Error("Invalid value type for odd key "+e.type+": expected Uint8Array or ArrayBuffer view, got "+typeof e.value);let t=e.value;this.writer_.writeVarInt53(t.byteLength),this.writer_.writeBytes(t)}}writeKeyValuePairs_(e){let t=e?e.length:0;if(this.writer_.writeVarInt53(t),!(!e||!e.length))for(let i of e)this.writeKeyValuePair_(i)}writeDeltaKeyValuePairs_(e){let t=e?e.length:0;if(this.writer_.writeVarInt53(t),!e||!e.length)return;let i=[...e].sort((s,n)=>s.type<n.type?-1:s.type>n.type?1:0),r=BigInt(0);for(let s of i){let n=s.type-r;if(this.writer_.writeVarInt62(n),r=s.type,s.type%BigInt(2)===BigInt(0)){if(typeof s.value!="bigint")throw new Error("Invalid value type for even key "+s.type+": expected bigint, got "+typeof s.value);this.writer_.writeVarInt62(s.value)}else{if(!ArrayBuffer.isView(s.value))throw new Error("Invalid value type for odd key "+s.type+": expected Uint8Array");let a=s.value;this.writer_.writeVarInt53(a.byteLength),this.writer_.writeBytes(a)}}}writeParams_(e){P.isDraft16(this.version_)?this.writeDeltaKeyValuePairs_(e):this.writeKeyValuePairs_(e)}encodeFilterBytes_(e,t,i){let r=new qi(32,qi.Endianness.BIG_ENDIAN);if(r.writeVarInt53(e),e===P.FilterType.ABSOLUTE_START||e===P.FilterType.ABSOLUTE_RANGE){if(!t)throw new Error("Missing startLocation for absolute filter");r.writeVarInt62(t.group),r.writeVarInt62(t.object)}if(e===P.FilterType.ABSOLUTE_START){if(i===void 0)throw new Error("Missing endGroup for absolute range filter");r.writeVarInt62(i)}return r.getBytes()}marshalWithLength(e,t){this.writer_.writeUint8(e);let i=this.writer_.getPosition();this.writer_.writeUint16(0);let r=this.writer_.getPosition();t();let s=this.writer_.getPosition()-r;this.writer_.patchUint16(i,s)}marshal_(e,t){return this.marshalWithLength(e,t),this}marshalGoaway(e){let t=P.MessageTypeId;return this.marshal_(t.GOAWAY,()=>{this.writeString_(e.newSessionUri)})}marshalMaxRequestId(e){let t=P.MessageTypeId;return this.marshal_(t.MAX_REQUEST_ID,()=>{this.writer_.writeVarInt62(e.requestId)})}marshalRequestsBlocked(e){let t=P.MessageTypeId;return this.marshal_(t.REQUESTS_BLOCKED,()=>{this.writer_.writeVarInt62(e.maximumRequestId)})}marshalSubscribe(e){return P.isDraft16(this.version_)?this.marshalSubscribeDraft16_(e):this.marshalSubscribeDraft14_(e)}marshalSubscribeDraft14_(e){let t=P.MessageTypeId;return this.marshal_(t.SUBSCRIBE,()=>{if(this.writer_.writeVarInt62(e.requestId),this.writeTuple_(e.namespace),this.writeString_(e.name),this.writer_.writeUint8(e.subscriberPriority),this.writer_.writeUint8(e.groupOrder),this.writeBoolAsUint8_(e.forward),this.writer_.writeUint8(e.filterType),e.filterType===P.FilterType.ABSOLUTE_START||e.filterType===P.FilterType.ABSOLUTE_RANGE){if(!e.startLocation)throw new Error("Missing startLocation for absolute filter");this.writeLocation_(e.startLocation)}if(e.filterType===P.FilterType.ABSOLUTE_RANGE){if(!e.endGroup)throw new Error("Missing endGroup for absolute range filter");this.writer_.writeVarInt62(e.endGroup)}this.writeKeyValuePairs_(e.params)})}marshalSubscribeDraft16_(e){let t=P.MessageTypeId;return this.marshal_(t.SUBSCRIBE,()=>{this.writer_.writeVarInt62(e.requestId),this.writeTuple_(e.namespace),this.writeString_(e.name);let i=e.params||[],r=BigInt(16),s=BigInt(32),n=BigInt(33),a=BigInt(34);i.push({type:r,value:BigInt(e.forward?1:0)}),i.push({type:s,value:BigInt(e.subscriberPriority)});let o=e.filterType;i.push({type:n,value:this.encodeFilterBytes_(o,e.startLocation,e.endGroup)}),i.push({type:a,value:BigInt(e.groupOrder)}),this.writeDeltaKeyValuePairs_(i)})}marshalSubscribeOk(e){let t=P.MessageTypeId;return this.marshal_(t.SUBSCRIBE_OK,()=>{if(this.writer_.writeVarInt62(e.requestId),this.writer_.writeVarInt62(e.expires),this.writer_.writeUint8(e.groupOrder),this.writeBoolAsUint8_(e.contentExists),e.contentExists){if(!e.largest)throw new Error("Missing largest for contentExists");this.writeLocation_(e.largest)}this.writeParams_(e.params)})}marshalSubscribeError(e){let t=P.MessageTypeId;return this.marshal_(t.SUBSCRIBE_ERROR,()=>{var i;this.writer_.writeVarInt62(e.requestId),this.writer_.writeVarInt62(e.code),P.isDraft16(this.version_)&&this.writer_.writeVarInt62((i=e.retryInterval)!=null?i:BigInt(0)),this.writeString_(e.reason)})}marshalSubscribeUpdate(e){return P.isDraft16(this.version_)?this.marshalSubscribeUpdateDraft16_(e):this.marshalSubscribeUpdateDraft14_(e)}marshalSubscribeUpdateDraft14_(e){let t=P.MessageTypeId;return this.marshal_(t.SUBSCRIBE_UPDATE,()=>{this.writer_.writeVarInt62(e.requestId),this.writeLocation_(e.startLocation),this.writer_.writeVarInt62(e.endGroup),this.writer_.writeUint8(e.subscriberPriority),this.writeBoolAsUint8_(e.forward),this.writeKeyValuePairs_(e.params)})}marshalSubscribeUpdateDraft16_(e){let t=P.MessageTypeId;return this.marshal_(t.SUBSCRIBE_UPDATE,()=>{this.writer_.writeVarInt62(e.requestId);let i=e.params||[],r=BigInt(16),s=BigInt(32),n=BigInt(33);i.push({type:r,value:BigInt(e.forward?1:0)}),i.push({type:s,value:BigInt(e.subscriberPriority)});let a=e.endGroup>BigInt(0)?P.FilterType.ABSOLUTE_RANGE:P.FilterType.ABSOLUTE_START;i.push({type:n,value:this.encodeFilterBytes_(a,e.startLocation,e.endGroup)}),this.writeDeltaKeyValuePairs_(i)})}marshalUnsubscribe(e){let t=P.MessageTypeId;return this.marshal_(t.UNSUBSCRIBE,()=>{this.writer_.writeVarInt62(e.requestId)})}marshalPublishDone(e){let t=P.MessageTypeId;return this.marshal_(t.PUBLISH_DONE,()=>{this.writer_.writeVarInt62(e.requestId),this.writer_.writeVarInt62(e.code),this.writeString_(e.reason),this.writer_.writeVarInt53(e.streamCount)})}marshalPublish(e){let t=P.MessageTypeId;return this.marshal_(t.PUBLISH,()=>{if(this.writer_.writeVarInt62(e.requestId),this.writeTuple_(e.namespace),this.writeString_(e.name),this.writer_.writeVarInt62(e.trackAlias),this.writer_.writeUint8(e.groupOrder),this.writeBoolAsUint8_(e.contentExists),e.contentExists){if(!e.largestLocation)throw new Error("Missing largestLocation for contentExists");this.writeLocation_(e.largestLocation)}this.writeBoolAsUint8_(e.forward),this.writeParams_(e.params)})}marshalPublishOk(e){let t=P.MessageTypeId;return this.marshal_(t.PUBLISH_OK,()=>{if(this.writer_.writeVarInt62(e.requestId),this.writeBoolAsUint8_(e.forward),this.writer_.writeUint8(e.subscriberPriority),this.writer_.writeUint8(e.groupOrder),this.writer_.writeUint8(e.filterType),e.filterType===P.FilterType.ABSOLUTE_START||e.filterType===P.FilterType.ABSOLUTE_RANGE){if(!e.startLocation)throw new Error("Missing startLocation for absolute filter");this.writeLocation_(e.startLocation)}if(e.filterType===P.FilterType.ABSOLUTE_RANGE){if(!e.endGroup)throw new Error("Missing endGroup for absolute range filter");this.writer_.writeVarInt62(e.endGroup)}this.writeParams_(e.params)})}marshalPublishError(e){let t=P.MessageTypeId;return this.marshal_(t.PUBLISH_ERROR,()=>{this.writer_.writeVarInt62(e.requestId),this.writer_.writeVarInt62(e.code),this.writeString_(e.reason)})}marshalFetch(e){let t=P.MessageTypeId;return this.marshal_(t.FETCH,()=>{this.writer_.writeVarInt62(e.requestId),this.writer_.writeUint8(e.subscriberPriority),this.writer_.writeUint8(e.groupOrder),this.writer_.writeVarInt62(BigInt(e.fetchType)),this.writeTuple_(e.namespace),this.writeString_(e.trackName),this.writer_.writeVarInt62(e.startGroup),this.writer_.writeVarInt62(e.startObject),this.writer_.writeVarInt62(e.endGroup),this.writer_.writeVarInt62(e.endObject),this.writeParams_(e.params)})}marshalFetchOk(e){let t=P.MessageTypeId;return this.marshal_(t.FETCH,()=>{this.writer_.writeVarInt62(e.requestId),this.writer_.writeUint8(e.groupOrder),this.writer_.writeVarInt62(BigInt(e.endOfTrack)),this.writer_.writeVarInt62(e.endGroup),this.writer_.writeVarInt62(e.endObject),this.writeParams_(e.params)})}marshalFetchError(e){let t=P.MessageTypeId;return this.marshal_(t.FETCH_ERROR,()=>{this.writer_.writeVarInt62(e.requestId),this.writer_.writeVarInt62(e.code),this.writeString_(e.reason)})}marshalFetchCancel(e){let t=P.MessageTypeId;return this.marshal_(t.FETCH_CANCEL,()=>{this.writer_.writeVarInt62(e.requestId)})}marshalPublishNamespace(e){let t=P.MessageTypeId;return this.marshal_(t.PUBLISH_NAMESPACE,()=>{this.writer_.writeVarInt62(e.requestId),this.writeTuple_(e.namespace),this.writeParams_(e.params)})}marshalPublishNamespaceOk(e){let t=P.MessageTypeId;return this.marshal_(t.PUBLISH_NAMESPACE_OK,()=>{this.writer_.writeVarInt62(e.requestId),P.isDraft16(this.version_)&&this.writeDeltaKeyValuePairs_([])})}marshalPublishNamespaceError(e){let t=P.MessageTypeId;return this.marshal_(t.PUBLISH_NAMESPACE_ERROR,()=>{this.writer_.writeVarInt62(e.requestId),this.writer_.writeVarInt62(e.code),this.writeString_(e.reason)})}marshalPublishNamespaceDone(e){let t=P.MessageTypeId;return this.marshal_(t.PUBLISH_NAMESPACE_DONE,()=>{this.writeTuple_(e.namespace)})}marshalPublishNamespaceCancel(e){let t=P.MessageTypeId;return this.marshal_(t.PUBLISH_NAMESPACE_CANCEL,()=>{this.writeTuple_(e.namespace),this.writer_.writeVarInt62(e.code),this.writeString_(e.reason)})}marshalSubscribeNamespace(e){let t=P.MessageTypeId;return this.marshal_(t.SUBSCRIBE_NAMESPACE,()=>{this.writer_.writeVarInt62(e.requestId),this.writeTuple_(e.namespace),this.writeParams_(e.params)})}marshalSubscribeNamespaceOk(e){let t=P.MessageTypeId;return this.marshal_(t.SUBSCRIBE_NAMESPACE_OK,()=>{this.writer_.writeVarInt62(e.requestId)})}marshalSubscribeNamespaceError(e){let t=P.MessageTypeId;return this.marshal_(t.SUBSCRIBE_NAMESPACE_ERROR,()=>{this.writer_.writeVarInt62(e.requestId),this.writer_.writeVarInt62(e.code),this.writeString_(e.reason)})}marshalUnsubscribeNamespace(e){let t=P.MessageTypeId;return this.marshal_(t.UNSUBSCRIBE_NAMESPACE,()=>{this.writeTuple_(e.namespace)})}marshalClientSetup(e){let t=P.MessageTypeId;return this.marshal_(t.CLIENT_SETUP,()=>{P.isDraft16(this.version_)||this.writeArray_(e.versions||[],i=>this.writer_.writeVarInt53(i)),this.writeParams_(e.params)})}marshalServerSetup(e){let t=P.MessageTypeId;return this.marshal_(t.SERVER_SETUP,()=>{P.isDraft16(this.version_)||this.writer_.writeVarInt53(e.version),this.writeParams_(e.params)})}};/*! @license
736
+ * Shaka Player
737
+ * Copyright 2016 Google LLC
738
+ * SPDX-License-Identifier: Apache-2.0
739
+ */var Qn=class{constructor(e,t,i){l(this,"decoder_");l(this,"encoder_");l(this,"mutex_");this.decoder_=new oo(e,i),this.encoder_=new lo(t,i),this.mutex_=new Zr}async receive(){return await this.decoder_.message()}async send(e){await this.mutex_.acquire("ControlStream.send");try{p.debug("Sending control message:",e),await this.encoder_.message(e)}finally{this.mutex_.release()}}},oo=class{constructor(e,t){l(this,"reader_");l(this,"version_");this.reader_=e,this.version_=t}async messageType_(){let e=await this.reader_.u53(),t=await this.reader_.read(2),i=t[0]<<8|t[1];p.v1(`Raw message type: 0x${e.toString(16)}`,`Message length (16-bit MSB): ${i} bytes,
740
+ actual length: ${this.reader_.getByteLength()}`);let r;switch(e){case P.MessageTypeId.GOAWAY:r=P.MessageType.GOAWAY;break;case P.MessageTypeId.MAX_REQUEST_ID:r=P.MessageType.MAX_REQUEST_ID;break;case P.MessageTypeId.REQUESTS_BLOCKED:r=P.MessageType.REQUESTS_BLOCKED;break;case P.MessageTypeId.SUBSCRIBE:r=P.MessageType.SUBSCRIBE;break;case P.MessageTypeId.SUBSCRIBE_OK:r=P.MessageType.SUBSCRIBE_OK;break;case P.MessageTypeId.SUBSCRIBE_ERROR:r=P.MessageType.SUBSCRIBE_ERROR;break;case P.MessageTypeId.SUBSCRIBE_UPDATE:r=P.MessageType.SUBSCRIBE_UPDATE;break;case P.MessageTypeId.UNSUBSCRIBE:r=P.MessageType.UNSUBSCRIBE;break;case P.MessageTypeId.PUBLISH_DONE:r=P.MessageType.PUBLISH_DONE;break;case P.MessageTypeId.PUBLISH:r=P.MessageType.PUBLISH;break;case P.MessageTypeId.PUBLISH_OK:r=P.MessageType.PUBLISH_OK;break;case P.MessageTypeId.PUBLISH_ERROR:r=P.MessageType.PUBLISH_ERROR;break;case P.MessageTypeId.FETCH:r=P.MessageType.FETCH;break;case P.MessageTypeId.FETCH_OK:r=P.MessageType.FETCH_OK;break;case P.MessageTypeId.FETCH_ERROR:r=P.MessageType.FETCH_ERROR;break;case P.MessageTypeId.FETCH_CANCEL:r=P.MessageType.FETCH_CANCEL;break;case P.MessageTypeId.TRACK_STATUS:r=P.MessageType.TRACK_STATUS;break;case P.MessageTypeId.TRACK_STATUS_OK:r=P.MessageType.TRACK_STATUS_OK;break;case P.MessageTypeId.TRACK_STATUS_ERROR:r=P.MessageType.TRACK_STATUS_ERROR;break;case P.MessageTypeId.PUBLISH_NAMESPACE:r=P.MessageType.PUBLISH_NAMESPACE;break;case P.MessageTypeId.PUBLISH_NAMESPACE_OK:r=P.MessageType.PUBLISH_NAMESPACE_OK;break;case P.MessageTypeId.PUBLISH_NAMESPACE_ERROR:r=P.MessageType.PUBLISH_NAMESPACE_ERROR;break;case P.MessageTypeId.PUBLISH_NAMESPACE_DONE:r=P.MessageType.PUBLISH_NAMESPACE_DONE;break;case P.MessageTypeId.PUBLISH_NAMESPACE_CANCEL:r=P.MessageType.PUBLISH_NAMESPACE_CANCEL;break;case P.MessageTypeId.SUBSCRIBE_NAMESPACE:r=P.MessageType.SUBSCRIBE_NAMESPACE;break;case P.MessageTypeId.SUBSCRIBE_NAMESPACE_OK:r=P.MessageType.SUBSCRIBE_NAMESPACE_OK;break;case P.MessageTypeId.SUBSCRIBE_NAMESPACE_ERROR:r=P.MessageType.SUBSCRIBE_NAMESPACE_ERROR;break;case P.MessageTypeId.UNSUBSCRIBE_NAMESPACE:r=P.MessageType.UNSUBSCRIBE_NAMESPACE;break;default:throw new Error(`Unknown message type: 0x${e.toString(16)}`)}return p.v1(`Parsed message type: ${r} (0x${e.toString(16)})`),r}async message(){let e=await this.messageType_(),t;switch(e){case P.MessageType.GOAWAY:t=await this.goaway_();break;case P.MessageType.MAX_REQUEST_ID:t=await this.maxRequestId_();break;case P.MessageType.REQUESTS_BLOCKED:t=await this.requestsBlocked_();break;case P.MessageType.SUBSCRIBE:t=await this.subscribe_();break;case P.MessageType.SUBSCRIBE_OK:t=await this.subscribeOk_();break;case P.MessageType.SUBSCRIBE_ERROR:t=await this.subscribeError_();break;case P.MessageType.SUBSCRIBE_UPDATE:t=await this.subscribeUpdate_();break;case P.MessageType.UNSUBSCRIBE:t=await this.unsubscribe_();break;case P.MessageType.PUBLISH_DONE:t=await this.publishDone_();break;case P.MessageType.PUBLISH:t=await this.publish_();break;case P.MessageType.PUBLISH_OK:t=await this.publishOk_();break;case P.MessageType.PUBLISH_ERROR:t=await this.publishError_();break;case P.MessageType.FETCH:throw new Error(`Unsupported message type: ${e}`);case P.MessageType.FETCH_OK:t=await this.fetchOk_();break;case P.MessageType.FETCH_ERROR:t=await this.fetchError_();break;case P.MessageType.FETCH_CANCEL:case P.MessageType.TRACK_STATUS:case P.MessageType.TRACK_STATUS_OK:case P.MessageType.TRACK_STATUS_ERROR:throw new Error(`Unsupported message type: ${e}`);case P.MessageType.PUBLISH_NAMESPACE:t=await this.publishNamespace_();break;case P.MessageType.PUBLISH_NAMESPACE_OK:t=await this.publishNamespaceOk_();break;case P.MessageType.PUBLISH_NAMESPACE_ERROR:t=await this.publishNamespaceError_();break;case P.MessageType.PUBLISH_NAMESPACE_DONE:t=await this.publishNamespaceDone_();break;case P.MessageType.PUBLISH_NAMESPACE_CANCEL:t=await this.publishNamespaceCancel_();break;case P.MessageType.SUBSCRIBE_NAMESPACE:t=await this.subscribeNamespace_();break;case P.MessageType.SUBSCRIBE_NAMESPACE_OK:t=await this.subscribeNamespaceOk_();break;case P.MessageType.SUBSCRIBE_NAMESPACE_ERROR:t=await this.subscribeNamespaceError_();break;case P.MessageType.UNSUBSCRIBE_NAMESPACE:t=await this.unsubscribeNamespace_();break;default:throw new Error(`Unsupported message type: ${e}`)}return p.debug(`Successfully parsed ${e} message:`,t),t}readParams_(){return P.isDraft16(this.version_)?this.reader_.deltaKeyValuePairs():this.reader_.keyValuePairs()}findParamVarInt_(e,t,i){let r=e.find(s=>s.type===t);return r&&typeof r.value=="bigint"?r.value:i}findParamBytes_(e,t){let i=e.find(r=>r.type===t);return i&&ArrayBuffer.isView(i.value)?i.value:null}parseGroupOrder_(e){switch(e){case 0:return P.GroupOrder.PUBLISHER;case 1:return P.GroupOrder.ASCENDING;case 2:return P.GroupOrder.DESCENDING;default:throw new Error(`Invalid GroupOrder value: ${e}`)}}parseLocationFromBytes_(e){let t=0,{value:i,bytesRead:r}=this.decodeVarIntFromBytes_(e,t);t+=r;let{value:s}=this.decodeVarIntFromBytes_(e,t);return{group:i,object:s}}decodeVarIntFromBytes_(e,t){let i=e[t],r=i>>6,s;switch(r){case 0:s=1;break;case 1:s=2;break;case 2:s=4;break;case 3:s=8;break;default:throw new Error(`Invalid var int prefix: ${r}`)}let n=BigInt(i&63);for(let a=1;a<s;a++)n=n<<BigInt(8)|BigInt(e[t+a]);return{value:n,bytesRead:s}}async decodeGroupOrder_(){let e=await this.reader_.u8();switch(p.debug(`Raw group order code: ${e}`),e){case 0:return P.GroupOrder.PUBLISHER;case 1:return P.GroupOrder.ASCENDING;case 2:return P.GroupOrder.DESCENDING;default:throw new Error(`Invalid GroupOrder value: ${e}`)}}async location_(){return{group:await this.reader_.u62(),object:await this.reader_.u62()}}async goaway_(){let e=await this.reader_.string();return{kind:P.MessageType.GOAWAY,newSessionUri:e}}async maxRequestId_(){let e=await this.reader_.u62();return{kind:P.MessageType.MAX_REQUEST_ID,requestId:e}}async requestsBlocked_(){let e=await this.reader_.u62();return{kind:P.MessageType.REQUESTS_BLOCKED,maximumRequestId:e}}async subscribe_(){let e=await this.reader_.u62(),t=await this.reader_.tuple(),i=await this.reader_.string(),r=await this.reader_.u8(),s=await this.decodeGroupOrder_(),n=await this.reader_.u8Bool(),a=await this.reader_.u8(),o;(a===P.FilterType.ABSOLUTE_START||a===P.FilterType.ABSOLUTE_RANGE)&&(o=await this.location_());let c;a===P.FilterType.ABSOLUTE_RANGE&&(c=await this.reader_.u62());let d=await this.reader_.keyValuePairs();return{kind:P.MessageType.SUBSCRIBE,requestId:e,namespace:t,name:i,subscriberPriority:r,groupOrder:s,forward:n,filterType:a,startLocation:o,endGroup:c,params:d}}subscribeOk_(){return P.isDraft16(this.version_)?this.subscribeOkDraft16_():this.subscribeOkDraft14_()}async subscribeOkDraft14_(){let e=await this.reader_.u62(),t=await this.reader_.u62(),i=await this.reader_.u62(),r=await this.decodeGroupOrder_(),s=await this.reader_.u8Bool(),n;s&&(n=await this.location_());let a=await this.reader_.keyValuePairs();return{kind:P.MessageType.SUBSCRIBE_OK,requestId:e,trackAlias:t,expires:i,groupOrder:r,contentExists:s,largest:n,params:a}}async subscribeOkDraft16_(){let e=await this.reader_.u62(),t=await this.reader_.u62(),i=await this.reader_.deltaKeyValuePairs(),r=BigInt(8),s=BigInt(9),n=BigInt(34),a=this.findParamVarInt_(i,r,BigInt(0)),o=this.findParamVarInt_(i,n,BigInt(0)),c=this.parseGroupOrder_(Number(o)),d=this.findParamBytes_(i,s),u=!1,m;return d&&d.length>0&&(u=!0,m=this.parseLocationFromBytes_(d)),{kind:P.MessageType.SUBSCRIBE_OK,requestId:e,trackAlias:t,expires:a,groupOrder:c,contentExists:u,largest:m,params:i}}async subscribeError_(){let e=await this.reader_.u62(),t=await this.reader_.u62(),i;P.isDraft16(this.version_)&&(i=await this.reader_.u62());let r=await this.reader_.string();return{kind:P.MessageType.SUBSCRIBE_ERROR,requestId:e,code:t,retryInterval:i,reason:r}}async subscribeUpdate_(){let e=await this.reader_.u62(),t=await this.reader_.u62(),i=await this.location_(),r=await this.reader_.u62(),s=await this.reader_.u8(),n=await this.reader_.u8Bool(),a=await this.reader_.keyValuePairs();return{kind:P.MessageType.SUBSCRIBE_UPDATE,requestId:e,subscriptionRequestId:t,startLocation:i,endGroup:r,subscriberPriority:s,forward:n,params:a}}async unsubscribe_(){let e=await this.reader_.u62();return{kind:P.MessageType.UNSUBSCRIBE,requestId:e}}async publishDone_(){let e=await this.reader_.u62(),t=await this.reader_.u62(),i=await this.reader_.u53(),r=await this.reader_.string();return{kind:P.MessageType.PUBLISH_DONE,requestId:e,code:t,streamCount:i,reason:r}}async publish_(){let e=await this.reader_.u62(),t=await this.reader_.tuple(),i=await this.reader_.string(),r=await this.reader_.u62(),s=await this.decodeGroupOrder_(),n=await this.reader_.u8Bool(),a;n&&(a=await this.location_());let o=await this.reader_.u8Bool(),c=await this.reader_.keyValuePairs();return{kind:P.MessageType.PUBLISH,requestId:e,namespace:t,name:i,trackAlias:r,groupOrder:s,contentExists:n,largestLocation:a,forward:o,params:c}}async publishOk_(){let e=await this.reader_.u62(),t=await this.reader_.u8Bool(),i=await this.reader_.u8(),r=await this.decodeGroupOrder_(),s=await this.reader_.u8(),n;(s===P.FilterType.ABSOLUTE_START||s===P.FilterType.ABSOLUTE_RANGE)&&(n=await this.location_());let a;s===P.FilterType.ABSOLUTE_RANGE&&(a=await this.reader_.u62());let o=await this.reader_.keyValuePairs();return{kind:P.MessageType.PUBLISH_OK,requestId:e,forward:t,subscriberPriority:i,groupOrder:r,filterType:s,startLocation:n,endGroup:a,params:o}}async publishError_(){let e=await this.reader_.u62(),t=await this.reader_.u62(),i;P.isDraft16(this.version_)&&(i=await this.reader_.u62());let r=await this.reader_.string();return{kind:P.MessageType.PUBLISH_ERROR,requestId:e,code:t,retryInterval:i,reason:r}}async fetchOk_(){let e=await this.reader_.u62(),t=await this.decodeGroupOrder_(),i=await this.reader_.u8(),r=await this.reader_.u62(),s=await this.reader_.u62(),n=await this.reader_.keyValuePairs();return{kind:P.MessageType.FETCH_OK,requestId:e,groupOrder:t,endOfTrack:i,endGroup:r,endObject:s,params:n}}async fetchError_(){let e=await this.reader_.u62(),t=await this.reader_.u62(),i;P.isDraft16(this.version_)&&(i=await this.reader_.u62());let r=await this.reader_.string();return{kind:P.MessageType.FETCH_ERROR,requestId:e,code:t,retryInterval:i,reason:r}}async publishNamespace_(){let e=await this.reader_.u62(),t=await this.reader_.tuple(),i=await this.readParams_();return{kind:P.MessageType.PUBLISH_NAMESPACE,requestId:e,namespace:t,params:i}}async publishNamespaceOk_(){let e=await this.reader_.u62();return{kind:P.MessageType.PUBLISH_NAMESPACE_OK,requestId:e}}async publishNamespaceError_(){let e=await this.reader_.u62(),t=await this.reader_.u62(),i;P.isDraft16(this.version_)&&(i=await this.reader_.u62());let r=await this.reader_.string();return{kind:P.MessageType.PUBLISH_NAMESPACE_ERROR,requestId:e,code:t,retryInterval:i,reason:r}}async publishNamespaceDone_(){let e=await this.reader_.tuple();return{kind:P.MessageType.PUBLISH_NAMESPACE_DONE,namespace:e}}async publishNamespaceCancel_(){let e=await this.reader_.tuple(),t=await this.reader_.u62(),i=await this.reader_.string();return{kind:P.MessageType.PUBLISH_NAMESPACE_CANCEL,namespace:e,code:t,reason:i}}async subscribeNamespace_(){let e=await this.reader_.u62(),t=await this.reader_.tuple(),i=await this.reader_.keyValuePairs();return{kind:P.MessageType.SUBSCRIBE_NAMESPACE,requestId:e,namespace:t,params:i}}async subscribeNamespaceOk_(){let e=await this.reader_.u62();return{kind:P.MessageType.SUBSCRIBE_NAMESPACE_OK,requestId:e}}async subscribeNamespaceError_(){let e=await this.reader_.u62(),t=await this.reader_.u62(),i;P.isDraft16(this.version_)&&(i=await this.reader_.u62());let r=await this.reader_.string();return{kind:P.MessageType.SUBSCRIBE_NAMESPACE_ERROR,requestId:e,code:t,retryInterval:i,reason:r}}async unsubscribeNamespace_(){let e=await this.reader_.tuple();return{kind:P.MessageType.UNSUBSCRIBE_NAMESPACE,namespace:e}}},lo=class{constructor(e,t){l(this,"writer_");l(this,"version_");this.writer_=e,this.version_=t}async message(e){p.debug(`Encoding message of type: ${e.kind}`);let t=new ns(this.version_);switch(e.kind){case P.MessageType.GOAWAY:t.marshalGoaway(e);break;case P.MessageType.MAX_REQUEST_ID:t.marshalMaxRequestId(e);break;case P.MessageType.REQUESTS_BLOCKED:t.marshalRequestsBlocked(e);break;case P.MessageType.SUBSCRIBE:t.marshalSubscribe(e);break;case P.MessageType.SUBSCRIBE_OK:t.marshalSubscribeOk(e);break;case P.MessageType.SUBSCRIBE_ERROR:t.marshalSubscribeError(e);break;case P.MessageType.SUBSCRIBE_UPDATE:t.marshalSubscribeUpdate(e);break;case P.MessageType.UNSUBSCRIBE:t.marshalUnsubscribe(e);break;case P.MessageType.PUBLISH_DONE:t.marshalPublishDone(e);break;case P.MessageType.PUBLISH:t.marshalPublish(e);break;case P.MessageType.PUBLISH_OK:t.marshalPublishOk(e);break;case P.MessageType.PUBLISH_ERROR:t.marshalPublishError(e);break;case P.MessageType.FETCH:t.marshalFetch(e);break;case P.MessageType.FETCH_OK:t.marshalFetchOk(e);break;case P.MessageType.FETCH_ERROR:t.marshalFetchError(e);break;case P.MessageType.FETCH_CANCEL:t.marshalFetchCancel(e);break;case P.MessageType.TRACK_STATUS:case P.MessageType.TRACK_STATUS_OK:case P.MessageType.TRACK_STATUS_ERROR:throw new Error(`Unsupported message type for encoding: ${e.kind}`);case P.MessageType.PUBLISH_NAMESPACE:t.marshalPublishNamespace(e);break;case P.MessageType.PUBLISH_NAMESPACE_OK:t.marshalPublishNamespaceOk(e);break;case P.MessageType.PUBLISH_NAMESPACE_ERROR:t.marshalPublishNamespaceError(e);break;case P.MessageType.PUBLISH_NAMESPACE_DONE:t.marshalPublishNamespaceDone(e);break;case P.MessageType.PUBLISH_NAMESPACE_CANCEL:t.marshalPublishNamespaceCancel(e);break;case P.MessageType.SUBSCRIBE_NAMESPACE:t.marshalSubscribeNamespace(e);break;case P.MessageType.SUBSCRIBE_NAMESPACE_OK:t.marshalSubscribeNamespaceOk(e);break;case P.MessageType.SUBSCRIBE_NAMESPACE_ERROR:t.marshalSubscribeNamespaceError(e);break;case P.MessageType.UNSUBSCRIBE_NAMESPACE:t.marshalUnsubscribeNamespace(e);break;default:throw new Error(`Unsupported message type for encoding: ${e.kind}`)}let i=t.getBytes();p.v1(`Marshaled ${i.length} bytes for message type: ${e.kind}`),await this.writer_.write(i)}};/*! @license
741
+ * Shaka Player
742
+ * Copyright 2016 Google LLC
743
+ * SPDX-License-Identifier: Apache-2.0
744
+ */var as=class{constructor(e,t){l(this,"buffer_");l(this,"stream_");l(this,"reader_");this.buffer_=e,this.stream_=t,this.reader_=t.getReader()}getByteLength(){return this.buffer_.byteLength}getBuffer(){return D.toUint8(this.buffer_)}async fill_(){let e=await this.reader_.read();if(e.done)return!1;let t=D.toUint8(e.value);if(this.buffer_.byteLength===0)this.buffer_=t;else{let i=new Uint8Array(this.buffer_.byteLength+t.byteLength);i.set(this.buffer_),i.set(t,this.buffer_.byteLength),this.buffer_=i}return!0}async fillTo_(e){for(;this.buffer_.byteLength<e;)if(!await this.fill_())throw new Error("unexpected end of stream")}slice_(e){let t=D.toUint8(this.buffer_,0,e);return this.buffer_=D.toUint8(this.buffer_,e),t}async read(e){return e===0?new Uint8Array([]):(await this.fillTo_(e),this.slice_(e))}async readAll(){for(;await this.fill_(););return this.slice_(this.buffer_.byteLength)}async tuple(){let e=await this.u53(),t=[];for(let i=0;i<e;i++){let r=await this.u53(),s=await this.read(r),n=q.fromUTF8(s);t.push(n)}return t}async string(e){let t=await this.u53();if(e!==void 0&&t>e)throw new Error(`string length ${t} exceeds max length ${e}`);let i=await this.read(t);return q.fromUTF8(i)}async u8(){return await this.fillTo_(1),this.slice_(1)[0]}async u8Bool(){return await this.u8()!==0}async u53(){return(await this.u53WithSize()).value}async u53WithSize(){let e=await this.u62WithSize(),t=e.value;if(t>Number.MAX_SAFE_INTEGER)throw new Error("value larger than 53-bits; use v62 instead");return{value:Number(t),bytesRead:e.bytesRead}}async u62(){return(await this.u62WithSize()).value}async u62WithSize(){await this.fillTo_(1);let e=(this.buffer_[0]&192)>>6,t,i;if(e===0){i=1;let r=this.slice_(1)[0];t=BigInt(r)&BigInt("0x3f")}else if(e===1){i=2,await this.fillTo_(2);let r=this.slice_(2),s=D.toDataView(r);t=BigInt(s.getInt16(0))&BigInt("0x3fff")}else if(e===2){i=4,await this.fillTo_(4);let r=this.slice_(4),s=D.toDataView(r);t=BigInt(s.getUint32(0))&BigInt("0x3fffffff")}else if(e===3){i=8,await this.fillTo_(8);let r=this.slice_(8),s=D.toDataView(r);t=BigInt(s.getBigUint64(0))&BigInt("0x3fffffffffffffff")}else throw new Error(`invalid size: ${e}`);return{value:t,bytesRead:i}}async keyValuePairs(){let e=await this.u53(),t=[];for(let i=0;i<e;i++){let r=await this.u62();if(r%BigInt(2)===BigInt(0)){let s=await this.u62();t.push({type:r,value:s})}else{let s=await this.u53(),n=await this.read(s);t.push({type:r,value:n})}}return t}async deltaKeyValuePairs(){let e=await this.u53(),t=[],i=BigInt(0);for(let r=0;r<e;r++){let s=await this.u62(),n=i+s;if(i=n,n%BigInt(2)===BigInt(0)){let a=await this.u62();t.push({type:n,value:a})}else{let a=await this.u53(),o=await this.read(a);t.push({type:n,value:o})}}return t}async done(){return this.buffer_.byteLength>0?!1:!await this.fill_()}async close(){this.reader_.releaseLock(),await this.stream_.cancel("Reader closed")}release(){this.reader_.releaseLock()}},Jn=class{constructor(e){l(this,"stream_");l(this,"writer_");this.stream_=e,this.writer_=e.getWriter()}async write(e){await this.writer_.write(e)}};/*! @license
745
+ * Shaka Player
746
+ * Copyright 2016 Google LLC
747
+ * SPDX-License-Identifier: Apache-2.0
748
+ */var Zn=class{constructor(e,t){l(this,"reader_");l(this,"version_");this.reader_=e,this.version_=t}async server(){let e=P.MessageTypeId.SERVER_SETUP;p.v1("Decoding server setup message...");let t=await this.reader_.u53();if(p.v1(`Setup message type: 0x${t.toString(16)}
749
+ (expected 0x${e.toString(16)})`),t!==e){let u=`Server SETUP type must be ${e}, got ${t}`;throw p.error(u),new Error(u)}let i=await this.reader_.read(2),r=i[0]<<8|i[1];p.v1(`Message length (16-bit MSB): ${r} bytes`);let s=this.reader_.getByteLength(),n;P.isDraft16(this.version_)?(n=this.version_,p.v1(`Using protocol-negotiated version 0x${n.toString(16)}`)):(n=await this.reader_.u53(),p.v1(`Server selected version: 0x${n.toString(16)}`));let a=P.isDraft16(this.version_)?await this.deltaParameters():await this.parameters();if(p.v1(`Parameters: ${a?`${a.length} parameters`:"none"}`),a&&a.length>0)for(let u of a)typeof u.value=="bigint"?p.v1(`Parameter ID: ${u.type}, value: ${u.value} (bigint)`):p.v1(`Parameter ID: ${u.type}, length:
750
+ ${u.value.byteLength} bytes, value:
751
+ ${this.formatBytes_(u.value)}`);let o=this.reader_.getByteLength(),c=s-o;if(c!==r){let u=`Message length mismatch: expected ${r}
752
+ bytes, read ${c} bytes`;p.warning(u)}let d={version:n,params:a};return p.debug("Server setup message decoded:",d),d}formatBytes_(e){if(e.length<=16)return Array.from(e).map(t=>t.toString(16).padStart(2,"0")).join(" ");{let t=Array.from(e.slice(0,8)).map(r=>r.toString(16).padStart(2,"0")).join(" "),i=Array.from(e.slice(-8)).map(r=>r.toString(16).padStart(2,"0")).join(" ");return`${t} ... ${i} (${e.length} bytes total)`}}async parameters(){let e=await this.reader_.u53WithSize(),t=e.value;if(p.v1(`Parameter count: ${t}, count field:
753
+ ${e.bytesRead} bytes`),t===0)return;let i=[];for(let r=0;r<t;r++){let n=(await this.reader_.u62WithSize()).value;if(n%BigInt(2)===BigInt(0)){let o=await this.reader_.u62WithSize(),c=o.value;p.v1(`Parameter ${r+1}/${t}: Type ${n} (even),
754
+ Value: ${c} (${o.bytesRead} bytes)`);let d=i.findIndex(u=>u.type===n);d!==-1&&(p.warning(`Duplicate parameter type: ${n},
755
+ overwriting previous value`),i.splice(d,1)),i.push({type:n,value:c})}else{let c=(await this.reader_.u53WithSize()).value;if(c>65535){let m=`Parameter value length exceeds maximum: ${c} > 65535`;throw p.error(m),new Error(m)}let d=await this.reader_.read(c);p.v1(`Parameter ${r+1}/${t}: Type ${n} (odd),
756
+ Length: ${c}, Value: ${this.formatBytes_(d)}`);let u=i.findIndex(m=>m.type===n);u!==-1&&(p.warning(`Duplicate parameter type: ${n},
757
+ overwriting previous value`),i.splice(u,1)),i.push({type:n,value:d})}}return i}async deltaParameters(){let e=await this.reader_.u53WithSize(),t=e.value;if(p.v1(`Delta Parameter count: ${t}, count field:
758
+ ${e.bytesRead} bytes`),t===0)return;let i=[],r=BigInt(0);for(let s=0;s<t;s++){let n=await this.reader_.u62(),a=r+n;if(r=a,a%BigInt(2)===BigInt(0)){let c=await this.reader_.u62();p.v1(`Delta parameter ${s+1}/${t}: Type ${a}
759
+ (delta ${n}, even), Value: ${c}`),i.push({type:a,value:c})}else{let c=await this.reader_.u53();if(c>65535){let u=`Parameter value length exceeds maximum: ${c} > 65535`;throw p.error(u),new Error(u)}let d=await this.reader_.read(c);p.v1(`Delta parameter ${s+1}/${t}: Type ${a}
760
+ (delta ${n}, odd), Length: ${c}`),i.push({type:a,value:d})}}return i}};/*! @license
761
+ * Shaka Player
762
+ * Copyright 2016 Google LLC
763
+ * SPDX-License-Identifier: Apache-2.0
764
+ */var ea=class{constructor(e,t){l(this,"writer_");l(this,"version_");this.writer_=e,this.version_=t}async client(e){p.debug("Encoding client setup message:",e);let t=new ns(this.version_);t.marshalClientSetup({versions:e.versions,params:e.params});let i=t.getBytes();p.v1(`Client setup message created: ${i.length} bytes`),await this.writer_.write(i),p.v1("Client setup message sent successfully")}};/*! @license
765
+ * Shaka Player
766
+ * Copyright 2016 Google LLC
767
+ * SPDX-License-Identifier: Apache-2.0
768
+ */var ta=class{constructor(e,t,i){l(this,"webTransport_");l(this,"controlStream_");l(this,"msfTransport_");l(this,"trackRegistry_");l(this,"nextRequestId_");l(this,"timersSet_");l(this,"isClosing_");l(this,"fetchCallbacks_");this.webTransport_=e,this.controlStream_=t,this.msfTransport_=i,this.trackRegistry_=new co,this.nextRequestId_=BigInt(0),this.timersSet_=new Set,this.isClosing_=!1,this.fetchCallbacks_=new Map,this.startListeningForStreams_()}getNextRequestId(){let e=this.nextRequestId_;return this.nextRequestId_+=BigInt(2),e}async startListeningForStreams_(){p.debug("Starting to listen for incoming unidirectional streams");try{let e=this.webTransport_.incomingUnidirectionalStreams.getReader();for(;;){let{value:t,done:i}=await e.read();if(i){p.debug("Incoming stream reader is done");break}this.handleIncomingStream_(t).catch(r=>{p.error("Error handling incoming stream:",r)})}}catch(e){p.error("Error listening for incoming streams:",e)}}isSubgroupStreamType_(e){let t=e&BigInt(31);return t>=BigInt(8)&&t<=BigInt(13)||t>=BigInt(16)&&t<=BigInt(21)||t>=BigInt(24)&&t<=BigInt(29)}hasDefaultPriority_(e){return(e&BigInt(32))!==BigInt(0)}async handleIncomingStream_(e){p.v1("Received new incoming unidirectional stream");let t=new as(new Uint8Array([]),e);try{let i=await t.u62();p.v1(`Incoming Unidirectional Stream. Type: ${i}`);let r=BigInt(5);this.isSubgroupStreamType_(i)?await this.handleSubgroupStream_(t,i):i===r?await this.handleFetchStream_(t):p.warning(`Unknown stream type: ${i}`)}catch(i){this.isClosing_?p.debug("Stream processing ended during shutdown"):p.error("Error processing incoming stream:",i)}finally{t.close()}}async handleSubgroupStream_(e,t){try{let i=await e.u62(),r=await e.u62();p.v1(`Track alias: ${i} Group ID: ${r}`);let s=null,n=t&BigInt(31),a=(n&BigInt(1))===BigInt(1),o=n&BigInt(7);if(o===BigInt(0)||o===BigInt(1))s=BigInt(0),p.v1(`Subgroup ID: ${s} (implicit zero)`);else if(o===BigInt(2)||o===BigInt(3))p.v1("Subgroup ID will be set to the first Object ID");else if(o===BigInt(4)||o===BigInt(5))s=await e.u62(),p.v1(`Subgroup ID: ${s} (explicit)`);else throw new Error(`Reserved SID mode: ${t}`);let c=0;this.hasDefaultPriority_(t)?p.v1("Publisher Priority: default (omitted, DEFAULT_PRIORITY bit set)"):(c=await e.u8(),p.v1(`Publisher Priority: ${c}`));let d=[],u=.1,m=5,f=50,g=!0;for(;!await e.done();){let _=Date.now(),T=await e.u62();p.v1(`Object ID: ${T}`),g&&s===null&&(s=T,p.v1(`Subgroup ID set to first Object ID: ${s}`)),g=!1;let S=null;if(a){let x=await e.u62();if(x>BigInt(0)){let k=Number(x);S=await e.read(k),p.v1(`Read ${k} bytes of extension headers`)}}let b=await e.u62();p.v1(`Object payload length: ${b}`);let E=null;b===BigInt(0)&&(E=await e.u62(),p.v1(`Object status: ${E}`));let C=b>BigInt(0)?await e.read(Number(b)):new Uint8Array([]);b>BigInt(0)&&p.v1(`Read ${C.byteLength} bytes of object data`);let A={trackAlias:i,location:{group:r,object:T,subgroup:s},data:C,extensions:S,status:E,payloadReadStartMs:_,receiveTimestampMs:Date.now()},w=!1,M=0;for(;!w&&M<m;){if(this.isClosing_){p.debug(`Track ${i} data discarded during shutdown
769
+ (buffered ${d.length} objects)`);return}let x=this.trackRegistry_.getTrackInfoFromAlias(i);if(x!=null&&x.closed){p.debug(`Ignoring object for closed track ${i}`);return}if(x&&x.callbacks.length>0){if(d.length>0){p.info(`Track ${i} now registered, delivering
770
+ ${d.length} buffered objects`);for(let k of d)for(let L of x.callbacks)L(k);d.length=0}for(let k of x.callbacks)k(A);w=!0}else if(M===0&&(p.debug(`Track ${i} not registered yet, buffering
771
+ object (group=${r}, obj=${T})`),d.push(A),d.length>f&&(p.warning(`Buffer overflow for track ${i},
772
+ dropping oldest object
773
+ (buffered: ${d.length})`),d.shift())),M++,M<m){if(p.debug(`Retry ${M}/${m} for track
774
+ ${i} (buffered: ${d.length})`),await it.delay(u),this.isClosing_){p.debug(`Track ${i} data discarded during
775
+ shutdown (buffered ${d.length} objects)`);return}}else if(this.isClosing_){p.debug(`Track ${i} data discarded during
776
+ shutdown (buffered ${d.length} objects)`);return}else{let k=`Track ${i} not registered after
777
+ ${m*u}s. SUBSCRIBE_OK not received in
778
+ time. Connection may be broken. (buffered
779
+ ${d.length} objects that will be discarded)`;throw new Error(k)}}}p.v1(`Finished processing SUBGROUP_HEADER stream for track
780
+ ${i}`)}catch(i){if(this.isClosing_)p.debug("SUBGROUP_HEADER stream processing ended during shutdown");else throw p.error("Error processing SUBGROUP_HEADER stream:",i),i}}async handleFetchStream_(e){let t=await e.u62();p.debug(`Received FETCH_HEADER stream, requestId=${t}`);let i=this.fetchCallbacks_.get(t);if(!i){p.warning(`No callback registered for fetch requestId=${t}`);return}for(;!await e.done();){let r=Date.now(),s=await e.u62(),n=await e.u62(),a=await e.u62();await e.u8();let o=null,c=await e.u62();if(c>BigInt(0)){let f=Number(c);o=await e.read(f)}let d=await e.u62(),u=d>BigInt(0)?await e.read(Number(d)):new Uint8Array(0);p.v1(`Fetch object: group=${s}, subgroup=${n},
781
+ obj=${a}, len=${u.length}`);let m={trackAlias:BigInt(0),location:{group:s,object:a,subgroup:null},data:u,extensions:o,status:null,payloadReadStartMs:r,receiveTimestampMs:Date.now()};i(m)}this.fetchCallbacks_.delete(t)}notifyCallbacks_(e,t){let i=e.toString();p.debug(`Notifying callbacks for track ${e} (key: ${i}),
782
+ object ID: ${t.location.object}`);let r=this.trackRegistry_.getTrackInfoFromAlias(e);if(r&&r.callbacks.length>0){p.debug(`Found ${r.callbacks.length} callbacks in
783
+ registry for track ${e}`);for(let s=0;s<r.callbacks.length;s++)try{p.debug(`Executing registry callback #${s+1} for track
784
+ ${e}`),r.callbacks[s](t),p.debug(`Successfully executed registry callback #${s+1}
785
+ for track ${e}`)}catch(n){p.error(`Error in registry object callback #${s+1} for
786
+ track ${e}:`,n)}}}release(){p.debug("Release tracks manager"),this.isClosing_=!0,this.trackRegistry_.clear();for(let e of this.timersSet_)e.stop();this.timersSet_.clear()}async fetchTrack(e,t,i){let r=e.join("/");p.debug(`Fetching track ${r}:${t}`);let s=this.getNextRequestId(),n={kind:P.MessageType.FETCH,requestId:s,subscriberPriority:0,groupOrder:P.GroupOrder.PUBLISHER,fetchType:P.FetchType.STANDALONE,namespace:e,trackName:t,startGroup:BigInt(0),startObject:BigInt(0),endGroup:BigInt(0),endObject:BigInt(0),params:[]};this.fetchCallbacks_.set(s,i);let a=this.msfTransport_,o=new Promise((c,d)=>{let u=a.registerMessageHandler(P.MessageType.FETCH_OK,s,()=>{p.debug(`Received FetchOk for
787
+ ${r}:${t} with requestId ${s}`),m(),c()}),m=a.registerMessageHandler(P.MessageType.FETCH_ERROR,s,f=>{p.error(`Fetch error for
788
+ ${r}:${t}:`,f),u(),this.fetchCallbacks_.delete(s),d(f)})});p.debug(`Sending FETCH for ${r}:${t}
789
+ with requestId ${s}`),await this.controlStream_.send(n),await o}async subscribeTrack(e,t,i){let r=e.join("/");p.debug(`Subscribing to track ${r}:${t}`);let s=this.getNextRequestId(),n={kind:P.MessageType.SUBSCRIBE,requestId:s,namespace:e,name:t,subscriberPriority:0,groupOrder:P.GroupOrder.PUBLISHER,forward:!0,filterType:this.msfTransport_.getConfiguration().subscribeFilterType,params:[]};p.debug(`Sending subscribe message for
790
+ ${r}:${t} with requestId ${s}`);try{let a=this.msfTransport_,o=new Promise((d,u)=>{let m=a.registerMessageHandler(P.MessageType.SUBSCRIBE_OK,s,_=>{let T=_;p.debug(`Received SubscribeOk for
791
+ ${r}:${t} with requestId ${s},
792
+ trackAlias ${T.trackAlias}`),d(T.trackAlias)}),f=a.registerMessageHandler(P.MessageType.SUBSCRIBE_ERROR,s,_=>{m(),p.error(`Received SubscribeError for
793
+ ${r}:${t}:`,_),u(_)});new ae(()=>{m(),f(),u(new Error(`Subscribe timeout (2000ms) for
794
+ ${r}:${t} with requestId ${s}`))}).tickAfter(2)});await this.controlStream_.send(n);let c=await o;return this.trackRegistry_.registerTrackWithAlias(e,t,s,c),this.trackRegistry_.registerCallback(c,i),p.debug(`Successfully subscribed to
795
+ ${r}:${t} with trackAlias ${c}`),c}catch(a){throw p.error(`Error subscribing to track ${r}:${t}:`,a),a}}async unsubscribeTrack(e){p.debug(`Unsubscribing from track with alias ${e}`);let t=this.trackRegistry_.getTrackInfoFromAlias(e);if(!t)throw new Error(`Cannot unsubscribe: No track info found for alias
796
+ ${e}`);let r=`${t.namespace.join("/")}:${t.trackName}`,s=t.requestId,n={kind:P.MessageType.UNSUBSCRIBE,requestId:s};p.debug(`Sending unsubscribe message for track ${r}
797
+ with original requestId ${s}`);try{let a=it.delay(.5);await this.controlStream_.send(n),await a,this.trackRegistry_.unregisterAllCallbacks(e),p.debug(`Successfully unsubscribed from track ${r}`)}catch(a){throw p.error(`Error unsubscribing from track ${r}:`,a),a}}handlePublishDone(e){p.debug(`PublishDone received for requestId ${e}`);let t=this.trackRegistry_.getTrackInfoFromRequestId(e);if(!t){p.warning(`PublishDone received for unknown requestId ${e}`);return}let i=t.trackAlias;p.debug(`Marking track ${i} as closed`),t.closed=!0,this.trackRegistry_.unregisterAllCallbacks(i)}},co=class{constructor(){l(this,"trackNameToInfo_");l(this,"trackAliasToInfo_");this.trackNameToInfo_=new Map,this.trackAliasToInfo_=new Map}getNamespaceTrackKey_(e,t){return`${e.join("/")}:${t}`}registerTrackWithAlias(e,t,i,r){let s=this.getNamespaceTrackKey_(e,t);this.trackNameToInfo_.has(s)&&p.warning(`Track ${e}:${t} already registered,
798
+ updating with new alias ${r}`);let n={namespace:e,trackName:t,trackAlias:r,requestId:i,callbacks:[],closed:!1};this.trackNameToInfo_.set(s,n),this.trackAliasToInfo_.set(r.toString(),n),p.debug(`Registered track ${e}:${t} with
799
+ server-assigned alias ${r} and request ID ${i}`)}getTrackInfoFromName(e,t){let i=this.getNamespaceTrackKey_(e,t);return this.trackNameToInfo_.get(i)}getTrackInfoFromAlias(e){return this.trackAliasToInfo_.get(e.toString())}registerCallback(e,t){let i=this.trackAliasToInfo_.get(e.toString());if(!i){p.warning(`Attempted to register callback for unknown track
800
+ alias ${e}`);return}i.callbacks.push(t),p.debug(`Registered callback for track
801
+ ${i.namespace}:${i.trackName} (alias: ${e}),
802
+ total callbacks: ${i.callbacks.length}`)}unregisterCallback(e,t){let i=this.trackAliasToInfo_.get(e.toString());if(!i){p.warning(`Attempted to unregister callback for unknown track
803
+ alias ${e}`);return}let r=i.callbacks.indexOf(t);r!==-1&&(i.callbacks.splice(r,1),p.debug(`Unregistered callback for track
804
+ ${i.namespace}:${i.trackName} (alias: ${e}),
805
+ remaining callbacks: ${i.callbacks.length}`))}unregisterAllCallbacks(e){let t=this.trackAliasToInfo_.get(e.toString());if(!t){p.warning(`Attempted to unregister callback for unknown track
806
+ alias ${e}`);return}let i=t.callbacks.length;t.callbacks=[],p.debug(`Unregistered all ${i} callbacks for track
807
+ ${t.namespace}:${t.trackName} (alias: ${e})`)}getCallbacks(e){let t=this.trackAliasToInfo_.get(e.toString());return t?[...t.callbacks]:[]}getTrackInfoFromRequestId(e){for(let t of this.trackAliasToInfo_.values())if(t.requestId===e)return t;return null}clear(){this.trackNameToInfo_.clear(),this.trackAliasToInfo_.clear(),p.debug("Cleared all track registrations")}};/*! @license
808
+ * Shaka Player
809
+ * Copyright 2016 Google LLC
810
+ * SPDX-License-Identifier: Apache-2.0
811
+ */var ia=class{constructor(e){l(this,"webTransport_");l(this,"negotiatedVersion_");l(this,"config_");l(this,"nextRequestId_");l(this,"publishNamespaceCallbacks_");l(this,"messageHandlers_");l(this,"tracksManager_");this.webTransport_=null,this.negotiatedVersion_=null,this.config_=e,this.nextRequestId_=BigInt(0),this.publishNamespaceCallbacks_=new Set,this.messageHandlers_=new Map,this.tracksManager_=null}configure(e){this.config_=e}getConfiguration(){return this.config_}async connect(e,t,i){if(!window.WebTransport)throw new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.WEBTRANSPORT_NOT_AVAILABLE);let r={allowPooling:!1,congestionControl:"low-latency"};t&&(r.serverCertificateHashes=[{algorithm:"sha-256",value:t}]);let s="moq-00",n="moqt-16";switch(this.config_.version){case Dr.AUTO:r.protocols=[n,s];break;case Dr.DRAFT_16:r.protocols=[n];break}switch(this.webTransport_=new WebTransport(e,r),this.webTransport_.closed.catch(()=>{}),await this.webTransport_.ready,p.v1("WebTransport connection established"),this.config_.version){case Dr.DRAFT_14:this.negotiatedVersion_=P.Version.DRAFT_14;break;case Dr.DRAFT_16:this.negotiatedVersion_=P.Version.DRAFT_16;break;default:this.webTransport_.protocol===s?this.negotiatedVersion_=P.Version.DRAFT_14:this.negotiatedVersion_=P.Version.DRAFT_16;break}v.assert(this.negotiatedVersion_!=null,"this.negotiatedVersion_ must be non-null.");let a=await this.webTransport_.createBidirectionalStream();p.v1("Bidirectional stream created",a);let o=new Jn(a.writable),c=new as(new Uint8Array([]),a.readable),d=new ea(o,this.negotiatedVersion_);p.v1("Sending client setup message");let u=P.isDraft16(this.negotiatedVersion_)?[]:[P.Version.DRAFT_14],m="ShakaPlayer/"+dt.version,f=[{type:BigInt(P.SetupOption.MAX_REQUEST_ID),value:BigInt(42069)},{type:BigInt(P.SetupOption.IMPLEMENTATION),value:D.toUint8(q.toUTF8(m))}];i&&f.push({type:BigInt(P.SetupOption.AUTHORIZATION_TOKEN),value:this.buildAuthToken_(i)}),await d.client({versions:u,params:f});let g=new Zn(c,this.negotiatedVersion_);p.v1("Waiting for server setup message");let _=await g.server();if(p.v1("Received server setup:",_),!P.isDraft16(this.negotiatedVersion_)&&!u.includes(_.version))throw new Error(`Unsupported server version: ${_.version}`);let T=new Qn(c,o,this.negotiatedVersion_);if(p.v1(`Control stream established (${this.negotiatedVersion_})`),Fe)switch(this.negotiatedVersion_){case P.Version.DRAFT_14:p.info("Connection established with draft-14");break;case P.Version.DRAFT_16:p.info("Connection established with draft-16");break}this.tracksManager_=new ta(this.webTransport_,T,this),p.v1("Tracks manager created with control stream and client reference");let S=new uo(this.webTransport_,T,this);return this.listenForControlMessages_(T),S}release(){var e;p.v1("Closing client connection"),this.publishNamespaceCallbacks_.clear(),(e=this.tracksManager_)==null||e.release(),this.tracksManager_=null}getNextRequestId(){let e=this.nextRequestId_;return this.nextRequestId_+=BigInt(2),p.v1(`Generated new request ID: ${e}`),e}async listenForControlMessages_(e){var t;p.v1("Starting to listen for control messages");try{for(;;){let i=await e.receive();if(i.kind===P.MessageType.PUBLISH_NAMESPACE){let r=i;p.info(`Received PublishNamespace message with namespace:
812
+ ${r.namespace.join("/")}`);try{let s={kind:P.MessageType.PUBLISH_NAMESPACE_OK,requestId:r.requestId,namespace:r.namespace};await e.send(s),p.debug("Sent PublishNamespaceOk for requestId",r.requestId)}catch(s){p.error(`Error sending PublishNamespaceOk: ${s instanceof Error?s.message:String(s)}`)}for(let s of this.publishNamespaceCallbacks_)try{s(r.namespace)}catch(n){p.error(`Error in PublishNamespace callback: ${n instanceof Error?n.message:String(n)}`)}}else if(i.kind===P.MessageType.PUBLISH_DONE){let r=i;p.debug(`Received PublishDone for requestId ${r.requestId}`),(t=this.tracksManager_)==null||t.handlePublishDone(r.requestId)}else if("requestId"in i){let r=i.requestId,s=this.messageHandlers_.get(i.kind);if(s&&s.has(r)){p.debug(`Found handler for message kind ${i.kind} with
813
+ requestId ${r}`);try{let n=s.get(r);n?n(i):p.warning(`Handler for message kind ${i.kind} with
814
+ requestId ${r} was null`),s.delete(r)}catch(n){p.error(`Error in message handler for kind ${i.kind}
815
+ with requestId ${r}: ${n instanceof Error?n.message:String(n)}`)}}else p.debug(`No handler found for message kind ${i.kind}
816
+ with requestId ${r}`)}else p.debug(`Received message of kind ${i.kind} without a request ID`)}}catch(i){i instanceof Error&&i.message.includes("session is closed")?p.debug("Control message listener stopped: connection closed"):p.error("Error while listening for control messages:",i)}}registerMessageHandler(e,t,i){p.v1(`Registering handler for message kind ${e} with
817
+ requestId ${t}`),this.messageHandlers_.has(e)||this.messageHandlers_.set(e,new Map);let r=this.messageHandlers_.get(e);if(!r)throw new Error(`Handler map for message kind ${e} not found`);return r.set(t,i),()=>{p.v1(`Unregistering handler for message kind ${e} with
818
+ requestId ${t}`);let s=this.messageHandlers_.get(e);s&&s.delete(t)}}subscribeTrack(e,t,i){if(!this.tracksManager_)throw new Error("Cannot subscribe: Tracks manager not initialized");return p.v1(`Client subscribing to track ${e.join("/")}:${t}`),this.tracksManager_.subscribeTrack(e,t,i)}async unsubscribeTrack(e){if(!this.tracksManager_)throw new Error("Cannot unsubscribe: Tracks manager not initialized");p.v1(`Client unsubscribing from track with alias ${e}`),await this.tracksManager_.unsubscribeTrack(e)}async fetchTrack(e,t,i){if(!this.tracksManager_)throw new Error("Cannot fetch: Tracks manager not initialized");p.v1(`Client fetching track ${e.join("/")}:${t}`),await this.tracksManager_.fetchTrack(e,t,i)}registerPublishNamespaceCallback(e){return p.v1("Registering PublishNamespace callback"),this.publishNamespaceCallbacks_.add(e),()=>{p.v1("Unregistering PublishNamespace callback"),this.publishNamespaceCallbacks_.delete(e)}}buildAuthToken_(e){let t=D.toUint8(q.toUTF8(e)),i=new qi(2+t.length,qi.Endianness.BIG_ENDIAN);return i.writeVarInt53(3),i.writeVarInt53(0),i.writeBytes(t),i.getBytes()}},uo=class{constructor(e,t,i){l(this,"webTransport_");l(this,"controlStream_");l(this,"msfTransport_");this.webTransport_=e,this.controlStream_=t,this.msfTransport_=i}control(){return this.controlStream_}getNextRequestId(){return this.msfTransport_.getNextRequestId()}async close(e=0,t=""){p.v1(`Closing connection with code ${e}: ${t}`),this.webTransport_.close({closeCode:e,reason:t}),await this.webTransport_.closed}};/*! @license
819
+ * Shaka Player
820
+ * Copyright 2016 Google LLC
821
+ * SPDX-License-Identifier: Apache-2.0
822
+ */var ra=class extends wi{constructor(){super(null,0,!1,0)}getSegmentAvailabilityEnd(){if(!this.isDynamic())return super.getSegmentAvailabilityEnd();let e=this.getMaxSegmentEndTime();return e!=null?e:0}getSegmentAvailabilityStart(){return this.isDynamic()?Math.max(0,this.getSegmentAvailabilityEnd()-this.getMaxSegmentDuration()):super.getSegmentAvailabilityStart()}};/*! @license
823
+ * Shaka Player
824
+ * Copyright 2016 Google LLC
825
+ * SPDX-License-Identifier: Apache-2.0
826
+ */var sa=class{constructor(){l(this,"playerInterface_");l(this,"config_");l(this,"isPreloadFn_");l(this,"manifest_");l(this,"msfTransport_");l(this,"connection_");l(this,"publishNamespaces_");l(this,"unregisterPublishNamespaceCallback_");l(this,"unregisterCatalogCallback_");l(this,"catalogPromise_");l(this,"globalId_");l(this,"bandwidthSamples_");l(this,"presentationTimeline_");l(this,"variants_");l(this,"audioStreams_");l(this,"videoStreams_");l(this,"textStreams_");l(this,"unregisterTracksCallback_");l(this,"isFirstVideoSegment_");l(this,"receivedFirstSegment_");this.playerInterface_=null,this.config_=null,this.isPreloadFn_=()=>!1,this.manifest_=null,this.msfTransport_=null,this.connection_=null,this.publishNamespaces_=[],this.unregisterPublishNamespaceCallback_=null,this.unregisterCatalogCallback_=null,this.catalogPromise_=Promise.withResolvers(),this.globalId_=1,this.bandwidthSamples_=new Map,this.presentationTimeline_=null,this.variants_=[],this.audioStreams_=[],this.videoStreams_=[],this.textStreams_=[],this.unregisterTracksCallback_=new Map,this.isFirstVideoSegment_=!0,this.receivedFirstSegment_=new Set}configure(e,t){this.config_=e,t&&(this.isPreloadFn_=t),this.msfTransport_&&this.msfTransport_.configure(this.config_.msf)}async start(e,t){v.assert(this.config_,"Must call configure() before start()!"),this.playerInterface_=t,this.msfTransport_=new ia(this.config_.msf);let i=null;if(this.config_.msf.fingerprintUri){let s=K.RequestType.FINGERPRINT,n=K.makeRequest([this.config_.msf.fingerprintUri],this.config_.retryParameters),a=await this.playerInterface_.networkingEngine.request(s,n).promise;if(!this.playerInterface_)throw new h(h.Severity.CRITICAL,h.Category.PLAYER,h.Code.OPERATION_ABORTED);let o=q.fromUTF8(a.data).trim(),c=new Uint8Array(o.length/2);for(let d=0;d<c.length;d+=1)c[d]=parseInt(o.slice(2*d,2*d+2),16);i=c}try{this.connection_=await this.msfTransport_.connect(e,i,this.config_.msf.authorizationToken)}catch(s){throw s instanceof h?s:new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.WEBTRANSPORT_INITIALIZATION_FAILED,s)}this.config_.msf.namespaces.length?this.getCatalog_(this.config_.msf.namespaces):this.listenForAnnouncements_(),this.presentationTimeline_=new ra,this.presentationTimeline_.setStatic(!0),this.manifest_={presentationTimeline:this.presentationTimeline_,variants:[],textStreams:[],imageStreams:[],chapterStreams:[],offlineSessionIds:[],sequenceMode:!1,ignoreManifestTimestampsInSegmentsMode:!1,type:me.MSF,serviceDescription:null,nextUrl:null,periodCount:1,gapCount:0,isLowLatency:!1,startTime:null};let r;try{r=await it.promiseWithTimeout(10,this.catalogPromise_.promise)}catch(s){throw s instanceof h?s:new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.MSF_CATALOG_TIMEOUT)}if(await this.processCatalog_(r),!this.presentationTimeline_.isLive())throw new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.MSF_VOD_CONTENT_NOT_SUPPORTED);return this.createVariants_(),this.manifest_.isLowLatency=this.presentationTimeline_.isDynamic(),this.manifest_.variants=this.variants_,this.manifest_.textStreams=this.textStreams_,this.playerInterface_.makeTextStreamsForClosedCaptions(this.manifest_),this.manifest_}async stop(){var e,t,i;if((e=this.unregisterCatalogCallback_)==null||e.call(this),this.unregisterCatalogCallback_=null,(t=this.unregisterPublishNamespaceCallback_)==null||t.call(this),this.unregisterPublishNamespaceCallback_=null,this.unregisterTracksCallback_.forEach((r,s)=>{r()}),this.unregisterTracksCallback_.clear(),this.connection_)try{await it.delay(1),await this.connection_.close(),this.connection_=null}catch(r){}(i=this.msfTransport_)==null||i.release(),this.msfTransport_=null,this.playerInterface_=null,this.config_=null,this.manifest_=null}update(){}onExpirationUpdated(e,t){}onInitialVariantChosen(e){}banLocation(e){}setMediaElement(e){}listenForAnnouncements_(){try{p.debug("Listening for announcements...");let e=this.msfTransport_.registerPublishNamespaceCallback(t=>{let i=t.join("/");if(p.debug(`Received publish namespace callback with namespace:
827
+ ${i}`),this.publishNamespaces_.some(s=>s.join("/")===i)){p.debug(`Already processed namespace: ${i}`);return}this.publishNamespaces_.push(t),this.getCatalog_(t)});this.unregisterPublishNamespaceCallback_=e,p.debug("Announcement listener registered successfully")}catch(e){p.error(`Error listening for announcements:
828
+ ${e instanceof Error?e.message:String(e)}`)}}getCatalog_(e){return this.config_.msf.useFetchCatalog?this.fetchCatalog_(e):this.subscribeToCatalog_(e)}async fetchCatalog_(e){try{let t=e.join("/");p.debug(`Fetching catalog in namespace: ${t}`),await this.msfTransport_.fetchTrack(e,"catalog",i=>{if(i.data.byteLength)try{let r=q.fromUTF8(i.data),s=JSON.parse(r);this.catalogPromise_.resolve(s)}catch(r){p.error(`Failed to decode catalog data:
829
+ ${r instanceof Error?r.message:String(r)}`)}}),p.debug(`Successfully fetched catalog in namespace: ${t}`)}catch(t){p.error("Error fetching catalog:",t),t&&t.kind==P.MessageType.FETCH_ERROR?this.catalogPromise_.reject(new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.MSF_NO_CATALOG,t.code,t.reason)):this.catalogPromise_.reject(t)}}async subscribeToCatalog_(e){try{let t=e.join("/");p.debug(`Subscribing to catalog in namespace: ${t}`);let i=await this.msfTransport_.subscribeTrack(e,"catalog",s=>{if(s.data.byteLength)try{let n=q.fromUTF8(s.data),a=JSON.parse(n);this.catalogPromise_.resolve(a)}catch(n){p.error(`Failed to decode catalog data:
830
+ ${n instanceof Error?n.message:String(n)}`)}}),r=()=>{if(!this.playerInterface_){p.debug("Skipping catalog unsubscribe during disconnect");return}p.debug(`Unsubscribing from catalog track with alias
831
+ ${i}`),this.msfTransport_.unsubscribeTrack(i).catch(s=>{p.error(`Failed to unsubscribe from catalog: ${s}`)})};this.unregisterCatalogCallback_&&(p.debug("Unregistering previous catalog callback"),this.unregisterCatalogCallback_()),this.unregisterCatalogCallback_=r,p.debug(`Successfully subscribed to catalog in namespace:
832
+ ${t} with track alias: ${i}`)}catch(t){p.error("Error subscribing to catalog:",t),t&&t.kind==P.MessageType.SUBSCRIBE_ERROR?this.catalogPromise_.reject(new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.MSF_NO_CATALOG,t.code,t.reason)):this.catalogPromise_.reject(t)}}recordBandwidthSample_(e,t,i,r){let s=this.bandwidthSamples_.getOrInsert(e,{bytes:0,readMs:0,group:t.group});t.group!==s.group&&(s.bytes>0&&this.playerInterface_.onSegmentReceived(Math.max(s.readMs,1),s.bytes),s.bytes=0,s.readMs=0,s.group=t.group),s.bytes+=i,s.readMs+=r}async subscribeToTrack(e,t,i){try{let r=[];e.namespace&&r.push(e.namespace),r.length||(this.config_.msf.namespaces.length?r=this.config_.msf.namespaces:this.publishNamespaces_.length?r=this.publishNamespaces_[0]:r=[]);let s=e.name;p.debug(`Subscribing to track: ${t}`);let n=await this.msfTransport_.subscribeTrack(r,s,o=>{p.v1(`Received object for track ${t} with`,o),i(o)}),a=()=>{if(!this.playerInterface_){p.debug("Skipping catalog unsubscribe during disconnect");return}p.debug(`Unsubscribing from catalog track with alias
833
+ ${n}`),this.msfTransport_.unsubscribeTrack(n).catch(o=>{p.error(`Failed to unsubscribe from catalog: ${o}`)})};this.unregisterTracksCallback_.set(t,a),p.debug(`Subscribed to track ${t} with alias ${n}`)}catch(r){p.debug(`Error subscribing to track:
834
+ ${r instanceof Error?r.message:String(r)}`)}}processCatalog_(e){p.info("MSF Catalog:",e);let t=this.config_.msf.catalogPreprocessor,i=st.defaultCatalogPreprocessor;t!=i&&(t(e),p.info("MSF Catalog after preprocessor:",e));let r=[],s=!0,n=1/0,a=0,o=this.getContentProtections_(e),c=new Map;for(let d of e.initDataList||[])c.set(d.id,d.data);for(let d of e.tracks)"isLive"in d&&(s=d.isLive),d.targetLatency&&(a=Math.max(a,d.targetLatency)),d.trackDuration&&(n=Math.min(n,d.trackDuration)),r.push(this.processTrack_(d,o,c));if(a){let d={maxLatency:null,maxPlaybackRate:null,minLatency:null,minPlaybackRate:null,targetLatency:a/1e3};this.manifest_.serviceDescription=d}return s&&this.presentationTimeline_.setStatic(!1),this.presentationTimeline_.setDuration(n),Promise.all(r)}getContentProtections_(e){var s,n;let t=de.getUuidMap(),i=new Map,r=e.contentProtections||[];for(let a of r){let o=a.refID,c=a.drmSystem;if(!c)continue;let d=t[c.systemID.toLowerCase()];if(!d)continue;let u=a.scheme||"cenc",m=null;c.pssh&&(m=[{initDataType:"cenc",initData:ne.fromBase64(c.pssh)}]);let f=R.createDrmInfo(d,u,m);if((s=c.laURL)!=null&&s.url?f.licenseServerUri=c.laURL.url:m&&de.isPlayReadyKeySystem(d)&&(f.licenseServerUri=Ri.getLicenseUrlFromPssh(m[0].initData)),(n=c.certURL)!=null&&n.url&&(f.serverCertificateUri=c.certURL.url),c.robustness&&(f.videoRobustness=c.robustness,f.audioRobustness=c.robustness),a.defaultKID)for(let g of a.defaultKID){let _=g.replace(/-/g,"").toLowerCase();f.keyIds.add(_)}i.set(o,f)}return i}processTrack_(e,t,i){let r=R.ContentType,s=new Uint8Array([]);e.initData?s=ne.fromBase64(e.initData):e.initRef&&i.has(e.initRef)&&(s=ne.fromBase64(i.get(e.initRef)));let n=e.codec&&e.packaging==="loc",a=null;if(["cmaf","chunk-per-object"].includes(e.packaging))a=vt.getBasicInfoFromMp4(s,s,!1);else if(n){let H=`moq/loc; codecs="${e.codec}"`;a=vt.getBasicInfoFromMimeType(H)}if(!a){p.info("Skipping incompatible track",e);return}let c=a.timescale||e.timescale;if(!c&&!n){p.info("Skipping incompatible track due missing timescale",e);return}let d=a.mimeType||e.mimeType||"",u=a.codecs,m=e.lang;(!e.lang||e.lang=="und")&&(m=a.language||e.lang);let f=Number(a.frameRate)||e.framerate,g=Number(a.width)||e.width,_=Number(a.height)||e.height,T=a.channelCount;!T&&e.channelConfig&&(T=parseInt(e.channelConfig,10));let S=a.sampleRate||e.samplerate||null,b=a.videoRange||void 0,E=a.colorGamut||void 0,C=r.TEXT;for(let H of R.VIDEO_CODEC_REGEXPS)H.test(u.trim())&&(C=r.VIDEO);if(C==r.TEXT)for(let H of R.AUDIO_CODEC_REGEXPS)H.test(u.trim())&&(C=r.AUDIO);let A,w=null,M=[];if(e.role)switch(M.push(e.role),e.role){case"audiodescription":C==r.AUDIO&&(w=me.AccessibilityPurpose.VISUALLY_IMPAIRED);break;case"caption":C==r.TEXT&&(A=R.TextStreamKind.CLOSED_CAPTION);break;case"subtitle":C==r.TEXT&&(A=R.TextStreamKind.SUBTITLE);break}let x=[],k=e.contentProtectionRefIDs;if(k)for(let H of k){let J=t.get(H);if(J)x.push(J);else{p.alwaysWarn("Unrecognized contentProtectionRefID",H);return}}else x=a.drmInfos;let L=new Map;if(!this.config_.disableText)for(let H of e.accessibility||[]){let J=H.schemeId,Z=H.value;J=="urn:scte:dash:cc:cea-608:2015"?R.parseCEA608Captions(Z,L):J=="urn:scte:dash:cc:cea-708:2015"&&R.parseCEA708Captions(Z,L)}let V={id:this.globalId_++,originalId:e.name,groupId:null,createSegmentIndex:()=>Promise.resolve(),segmentIndex:null,mimeType:d,codecs:u,supplementalCodecs:"",kind:A,encrypted:!1,drmInfos:x,keyIds:new Set,language:ve.normalize(m||"und"),originalLanguage:m||null,label:e.label||null,type:C,primary:!1,trickModeVideo:null,dependencyStream:null,emsgSchemeIdUris:null,frameRate:f,pixelAspectRatio:void 0,width:g,height:_,bandwidth:e.bitrate,roles:M,forced:!1,channelsCount:T,audioSamplingRate:S,spatialAudio:!1,closedCaptions:L,hdr:b,colorGamut:E,videoLayout:void 0,tilesLayout:void 0,accessibilityPurpose:w,external:!1,fastSwitching:!1,fullMimeTypes:new Set([N.getFullType(d,u)]),isAudioMuxedInVideo:!1,baseOriginalId:null,isIframe:!1},ee=`${e.namespace||""}/${e.name}`,oe=null;c&&(oe=new Tt(()=>[],0,null,null,c,s));let le=null;if(n){let H=Ks.frameDurationFromTrack(e);if(H===null){p.warning(`LOC track "${e.name}" has no usable frame duration; skipping.`);return}le=new Ks(H)}switch(V.createSegmentIndex=()=>{let H=Promise.withResolvers();return this.subscribeToTrack(e,ee,J=>{let Z=J.data;if(!V.segmentIndex||!Z.byteLength)return;this.recordBandwidthSample_(ee,J.location,Z.byteLength,J.receiveTimestampMs-J.payloadReadStartMs);let ce,W;if(n){v.assert(le,"locParser must be non-null");let Y=le.parse(J);W=Y.duration,ce=Y.startTime,Z=Y.payload}else{v.assert(typeof c=="number","Timescale should be a number!");let Y=vt.getStartTimeAndDurationFromMp4(Z,c);ce=Y.startTime,W=Y.duration}if(!W||!Z.byteLength)return;let z=new Se(ce,ce+W,()=>[],0,null,oe,0,0,1/0);z.setSegmentData(Z),this.receivedFirstSegment_.add(C);let ge=this.presentationTimeline_.isStartTimeLocked();if(ge){let Y=Math.min(z.startTime-2,this.presentationTimeline_.getSegmentAvailabilityStart());V.segmentIndex.mergeAndEvict([z],Y)}else V.segmentIndex.merge([z]);if(this.presentationTimeline_.notifySegments([z]),this.presentationTimeline_.notifyMaxSegmentDuration(W),this.presentationTimeline_.isDynamic()){let Y=this.presentationTimeline_.getMaxSegmentDuration();Y>0&&this.presentationTimeline_.setSegmentAvailabilityDuration(Y)}!ge&&(!this.audioStreams_.length||this.receivedFirstSegment_.has(r.AUDIO))&&(!this.videoStreams_.length||this.receivedFirstSegment_.has(r.VIDEO))&&this.presentationTimeline_.lockStartTime(),H==null||H.resolve(),H=null}),V.segmentIndex=new Ze([]),H==null?void 0:H.promise},V.closeSegmentIndex=()=>{var H;this.unregisterTracksCallback_.has(ee)&&(this.unregisterTracksCallback_.get(ee)(),this.unregisterTracksCallback_.delete(ee)),this.bandwidthSamples_.delete(ee),(H=V.segmentIndex)==null||H.release(),V.segmentIndex=null},C){case r.AUDIO:this.config_.disableAudio||this.audioStreams_.push(V);break;case r.VIDEO:this.config_.disableVideo||this.videoStreams_.push(V);break;case r.TEXT:this.config_.disableText||this.textStreams_.push(V);break}}createVariants_(){let e=R.ContentType,t=0,i=[];if(!this.videoStreams_.length||!this.audioStreams_.length){let r=this.videoStreams_.length?this.videoStreams_:this.audioStreams_;for(let s of r){let n=t++,a=s.bandwidth||0;s.dependencyStream&&(a+=s.dependencyStream.bandwidth||0),i.push({id:n,language:s.language,disabledUntilTime:0,primary:s.primary,audio:s.type==e.AUDIO?s:null,video:s.type==e.VIDEO?s:null,bandwidth:a,drmInfos:s.drmInfos,allowedByApplication:!0,allowedByKeySystem:!0,decodingInfos:[]})}}else for(let r of this.audioStreams_)for(let s of this.videoStreams_){let n=de.getCommonDrmInfos(r.drmInfos,s.drmInfos);if(r.drmInfos.length&&s.drmInfos.length&&!n.length){p.warning("Incompatible DRM in audio & video, skipping variant creation.",r,s);continue}let a=(r.bandwidth||0)+(s.bandwidth||0);r.dependencyStream&&(a+=r.dependencyStream.bandwidth||0),s.dependencyStream&&(a+=s.dependencyStream.bandwidth||0);let o=t++;i.push({id:o,language:r.language,disabledUntilTime:0,primary:r.primary,audio:r,video:s,bandwidth:a,drmInfos:n,allowedByApplication:!0,allowedByKeySystem:!0,decodingInfos:[]})}this.variants_=i}};me.registerParserByMime("application/msf",()=>new sa);/*! @license
835
+ * Shaka Player
836
+ * Copyright 2016 Google LLC
837
+ * SPDX-License-Identifier: Apache-2.0
838
+ */var os=class{static makeResponse(e,t,i,r,s,n,a){if(v.assert(t,"Data should be non-null!"),i>=200&&i<=299&&i!=202||i==304)return{uri:s||r,originalUri:r,data:t,status:i,headers:e,fromCache:!!e["x-shaka-from-cache"],originalRequest:n};{let o=null;try{o=q.fromBytesAutoDetect(t)}catch(c){}throw p.debug("HTTP error text:",o),new h(h.Severity.RECOVERABLE,h.Category.NETWORK,h.Code.BAD_HTTP_STATUS,r,i,o,e,a,s||r)}}};/*! @license
839
+ * Shaka Player
840
+ * Copyright 2016 Google LLC
841
+ * SPDX-License-Identifier: Apache-2.0
842
+ */var Ui=class y{static parse(e,t,i,r,s,n){let a=new y.Headers_;try{Zt.asMap(t.headers).forEach((_,T)=>{a.append(T,_)})}catch(_){return p.debug("Failed to create headers:",_),je.failed(new h(h.Severity.RECOVERABLE,h.Category.NETWORK,h.Code.HTTP_ERROR,e,_,i))}let o=new y.AbortController_,c={body:t.body||void 0,headers:a,method:t.method,signal:o.signal,credentials:t.allowCrossSiteCredentials?"include":void 0},d={canceled:!1,timedOut:!1},u=n.minBytesForProgressEvents||0,m=y.request_(e,t,i,c,d,r,s,t.streamDataCallback,u),f=new je(m,()=>(d.canceled=!0,o.abort(),Promise.resolve())),g=t.retryParameters.timeout;if(g){let _=new ae(()=>{d.timedOut=!0,o.abort()});_.tickAfter(g/1e3),f.finally(()=>{_.stop()})}return f}static async request_(e,t,i,r,s,n,a,o,c){let d=y.fetch_,u=y.ReadableStream_,m,f=new ArrayBuffer(0),g=0,_=0,T={},S=Date.now();try{if(m=await d(e,r),T=y.headersToGenericObject_(m.headers),a(T),r.method!="HEAD"){v.assert(m.body,"non-HEAD responses should have a body");let b=m.headers.get("Content-Length"),E=b?parseInt(b,10):0;if(m.body){let C=m.clone().body.getReader(),A=w=>{let M=async()=>{let x;try{x=await C.read()}catch(V){p.v1("error reading from stream",V.message);return}x.done||(g+=x.value.byteLength,o&&await o(x.value));let k=Date.now(),L=g-_;if(k-S>100&&L>=c||x.done){let V=x.done?0:E-g;n(k-S,L,V),_=g,S=k}x.done?(v.assert(!x.value,'readObj should be unset when "done" is true.'),w.close()):(w.enqueue(x.value),M())};M()};new u({start:A}),f=await m.arrayBuffer()}else{f=await m.arrayBuffer();let C=Date.now();n(C-S,f.byteLength,0)}}if(t.headers.Range){let b=t.headers.Range.replace("bytes=","").split("-").filter(E=>E).map(E=>parseInt(E,10));b.length==2&&f.byteLength!=b[1]-b[0]+1&&p.alwaysWarn("Payload length does not match range requested bytes",t,m)}}catch(b){throw s.canceled?new h(h.Severity.RECOVERABLE,h.Category.NETWORK,h.Code.OPERATION_ABORTED,e,i):s.timedOut?new h(h.Severity.RECOVERABLE,h.Category.NETWORK,h.Code.TIMEOUT,e,i):new h(h.Severity.RECOVERABLE,h.Category.NETWORK,h.Code.HTTP_ERROR,e,b,i)}return os.makeResponse(T,f,m.status,e,m.url,t,i)}static headersToGenericObject_(e){let t={};return e.forEach((i,r)=>{t[r.trim()]=i}),t}static isSupported(){if(window.ReadableStream)try{new ReadableStream({})}catch(e){return!1}else return!1;if(window.Response){if(!new Response("").body)return!1}else return!1;return!!(window.fetch&&!("polyfill"in window.fetch)&&window.AbortController)}};Ui.fetch_=window.fetch;Ui.AbortController_=window.AbortController;Ui.ReadableStream_=window.ReadableStream;Ui.Headers_=window.Headers;Ui.isSupported()&&(K.registerScheme("http",Ui.parse,K.PluginPriority.PREFERRED,!0),K.registerScheme("https",Ui.parse,K.PluginPriority.PREFERRED,!0),K.registerScheme("blob",Ui.parse,K.PluginPriority.PREFERRED,!0));/*! @license
843
+ * Shaka Player
844
+ * Copyright 2016 Google LLC
845
+ * SPDX-License-Identifier: Apache-2.0
846
+ */var Hr=class y{static parse(e,t,i,r,s,n){let a=new y.Xhr_,o=Date.now(),c=0,d=new Promise(((u,m)=>{a.open(t.method,e,!0),a.responseType="arraybuffer",a.timeout=t.retryParameters.timeout,a.withCredentials=t.allowCrossSiteCredentials;let f={};a.onabort=()=>{m(new h(h.Severity.RECOVERABLE,h.Category.NETWORK,h.Code.OPERATION_ABORTED,e,i))},a.onreadystatechange=g=>{a.readyState===XMLHttpRequest.HEADERS_RECEIVED&&(f=y.headersToGenericObject_(a),s(f))},a.onload=g=>{v.assert(a.response instanceof ArrayBuffer,"XHR should have a response by now!");let _=a.response;try{let T=os.makeResponse(f,_,a.status,e,a.responseURL,t,i);u(T)}catch(T){v.assert(T instanceof h,"Wrong error type!"),m(T)}},a.onerror=g=>{m(new h(h.Severity.RECOVERABLE,h.Category.NETWORK,h.Code.HTTP_ERROR,e,g,i))},a.ontimeout=g=>{m(new h(h.Severity.RECOVERABLE,h.Category.NETWORK,h.Code.TIMEOUT,e,i))},a.onprogress=g=>{let _=Date.now(),T=n.minBytesForProgressEvents||0,S=g.loaded-c;if(_-o>100&&S>=T||g.lengthComputable&&g.loaded==g.total){let b=a.readyState==4?0:g.total-g.loaded;r(_-o,S,b),c=g.loaded,o=_}};for(let g in t.headers)try{let _=g.toLowerCase();a.setRequestHeader(_,t.headers[g])}catch(_){throw new h(h.Severity.RECOVERABLE,h.Category.NETWORK,h.Code.HTTP_ERROR,e,_,i)}a.send(t.body)}));return new je(d,()=>(a.abort(),Promise.resolve()))}static headersToGenericObject_(e){let t=e.getAllResponseHeaders().trim().split(`\r
847
+ `),i={};for(let r of t){let s=r.indexOf(": ");s!==-1&&(i[r.slice(0,s).toLowerCase()]=r.slice(s+2))}return i}};Hr.Xhr_=window.XMLHttpRequest;K.registerScheme("http",Hr.parse,K.PluginPriority.FALLBACK,!0);K.registerScheme("https",Hr.parse,K.PluginPriority.FALLBACK,!0);K.registerScheme("blob",Hr.parse,K.PluginPriority.FALLBACK,!0);/*! @license
848
+ * Shaka Player
849
+ * Copyright 2016 Google LLC
850
+ * SPDX-License-Identifier: Apache-2.0
851
+ */var na=class y extends Le{constructor(t){super();l(this,"player_");l(this,"config_");l(this,"items_");l(this,"currentItemIndex_");l(this,"preloadNext_");l(this,"preloadPrev_");l(this,"eventManager_");l(this,"repeatTimer_");this.player_=t,this.config_=null,this.items_=[],this.currentItemIndex_=-1,this.preloadNext_=null,this.preloadPrev_=null,this.eventManager_=new ue,this.repeatTimer_=null}async destroy(){await this.removeAllItems(),this.player_=null,this.eventManager_&&(this.eventManager_.release(),this.eventManager_=null),this.repeatTimer_&&(this.repeatTimer_.stop(),this.repeatTimer_=null),super.release()}configure(t){this.config_=t}getConfiguration(){return this.config_}setCustomPlayer(t){this.player_=t}getCurrentItem(){return this.items_.length&&this.currentItemIndex_>=0&&this.currentItemIndex_<this.items_.length?this.items_[this.currentItemIndex_]:null}getCurrentItemIndex(){return this.currentItemIndex_}getItems(){return this.items_.slice()}insertItems(t){this.items_.push(...t),this.dispatchEvent(new U(U.EventName.ItemsInserted))}async removeAllItems(){var i,r;if(this.eventManager_.removeAll(),this.player_&&this.items_.length&&this.currentItemIndex_>=0)try{await this.player_.unload()}catch(s){}let t=[];(i=this.preloadPrev_)!=null&&i.preloadManager&&!this.preloadPrev_.preloadManager.isDestroyed()&&t.push(this.preloadPrev_.preloadManager.destroy()),this.preloadPrev_=null,(r=this.preloadNext_)!=null&&r.preloadManager&&!this.preloadNext_.preloadManager.isDestroyed()&&t.push(this.preloadNext_.preloadManager.destroy()),this.preloadNext_=null;for(let s of this.items_)s.preloadManager&&!s.preloadManager.isDestroyed()&&t.push(s.preloadManager.destroy());t.length&&await Promise.all(t),this.items_=[],this.currentItemIndex_=-1,this.dispatchEvent(new U(U.EventName.ItemsRemoved))}async playItem(t){var a,o,c;if(v.assert(this.player_,"We should have player"),this.eventManager_.removeAll(),this.repeatTimer_&&(this.repeatTimer_.stop(),this.repeatTimer_=null),!this.items_.length||t<0||t>=this.items_.length)throw new h(h.Severity.CRITICAL,h.Category.PLAYER,h.Code.QUEUE_INDEX_OUT_OF_BOUNDS);let i=this.getCurrentItem(),r=this.items_[t];this.currentItemIndex_!==t&&(this.currentItemIndex_=t,this.dispatchEvent(new U(U.EventName.CurrentItemChanged)));let s=this.player_.getMediaElement();this.setupPreloadNext_(s),this.setupRepeatOnComplete_(s);let n=this.getAssetOrPreloader_(r);await this.cleanupPreloadPrev_(r,i),r.config&&(this.player_.resetConfiguration(),this.player_.configure(r.config)),((a=r.extraText)!=null&&a.length||(o=r.extraThumbnail)!=null&&o.length||(c=r.extraChapter)!=null&&c.length)&&this.eventManager_.listenOnce(this.player_,"streaming",async()=>{await this.addExtraTracks_(r)}),await this.player_.load(n,r.startTime,r.mimeType),this.preloadNext_=null}setupPreloadNext_(t){if(!this.config_||this.config_.preloadNextUrlWindow<=0)return;let i=!1,r=async()=>{if(this.preloadNext_||this.items_.length<=1||i||this.player_.isDynamic()||!t.duration)return;let s=this.player_.seekRange().end-t.currentTime;if(isNaN(s)||s>this.config_.preloadNextUrlWindow)return;i=!0;let n=null,a=this.config_.repeatMode,o=this.currentItemIndex_+1;if(o<this.items_.length?n=this.items_[o]:a===Yr.ALL&&(n=this.items_[0]),n&&(!n.preloadManager||n.preloadManager.isDestroyed())){try{let c=await this.player_.preload(n.manifestUri,n.startTime,n.mimeType,n.config,!0);this.preloadNext_={item:n,preloadManager:c}}catch(c){this.preloadNext_={item:n,preloadManager:null}}this.eventManager_.unlisten(t,"timeupdate",r)}i=!1};this.eventManager_.listen(t,"timeupdate",r)}playCurrentItemAfterPause_(t){t.paused?(t.currentTime=this.player_.seekRange().start,t.play()):this.eventManager_.listenOnce(t,"paused",()=>{t.currentTime=this.player_.seekRange().start,t.play()})}setupRepeatOnComplete_(t){this.eventManager_.listen(this.player_,"complete",()=>{var n;let i=(n=this.config_)==null?void 0:n.repeatMode;if(i===Yr.SINGLE){this.playCurrentItemAfterPause_(t);return}let r=this.currentItemIndex_+1,s=null;r<this.items_.length?s=r:i===Yr.ALL&&(s=this.items_.length>1?0:this.currentItemIndex_),s!==null&&(s===this.currentItemIndex_?this.playCurrentItemAfterPause_(t):(this.repeatTimer_&&(this.repeatTimer_.stop(),this.repeatTimer_=null),this.repeatTimer_=new ae(()=>{v.assert(s!=null,"targetIndex should not be null"),this.playItem(s).catch(()=>{})}).tickAfter(0)))})}getAssetOrPreloader_(t){var r,s;let i=t.manifestUri;return t.preloadManager&&!t.preloadManager.isDestroyed()?i=t.preloadManager:((r=this.preloadNext_)==null?void 0:r.item)===t&&this.preloadNext_.preloadManager?i=this.preloadNext_.preloadManager:((s=this.preloadPrev_)==null?void 0:s.item)===t&&this.preloadPrev_.preloadManager&&(i=this.preloadPrev_.preloadManager),i}async cleanupPreloadPrev_(t,i){var s,n;let r=((s=this.preloadPrev_)==null?void 0:s.item)===t;if(this.preloadPrev_&&!r&&this.preloadPrev_.preloadManager&&!this.preloadPrev_.preloadManager.isDestroyed()&&await this.preloadPrev_.preloadManager.destroy(),this.preloadPrev_=null,(n=this.config_)!=null&&n.preloadPrevItem&&i&&this.player_.getLoadMode()===dt.LoadMode.MEDIA_SOURCE)try{let a=await this.player_.unloadAndSavePreload(!1,!1,!1,!0);this.preloadPrev_={item:i,preloadManager:a}}catch(a){this.preloadPrev_={item:i,preloadManager:null}}}async addExtraTracks_(t){var n,a,o;let i=((n=t.extraText)==null?void 0:n.map(async c=>{c.mime?await this.player_.addTextTrackAsync(c.uri,c.language,c.kind,c.mime,c.codecs):await this.player_.addTextTrackAsync(c.uri,c.language,c.kind)}))||[],r=((a=t.extraThumbnail)==null?void 0:a.map(async c=>{await this.player_.addThumbnailsTrack(c)}))||[],s=((o=t.extraChapter)==null?void 0:o.map(async c=>{await this.player_.addChaptersTrack(c.uri,c.language,c.mime)}))||[];await Promise.all([...i,...r,...s])}async loadFromM3uPlaylist(t,i=!1){v.assert(this.player_,"We should have player");let r=this.player_.getNetworkingEngine();v.assert(r,"We should have networking engine");let s=this.player_.getConfiguration().manifest.retryParameters,n=K.makeRequest([t],s),a=await r.request(K.RequestType.PLAYLIST,n).promise,o=q.fromUTF8(a.data),c=y.parseM3uPlaylist_(o,t);if(c.length===0){p.warning("QueueManager: No playable entries found in the M3U playlist.",t);return}this.insertItems(c),i&&await this.playItem(0)}static parseM3uPlaylist_(t,i){var o;let r=t.split(/\r?\n/);(o=r[0])!=null&&o.trim().startsWith("#EXTM3U")||p.warning("QueueManager: Playlist does not start with #EXTM3U; attempting to parse anyway.");let s=[],n=new Set,a=null;for(let c of r){let d=c.trim();if(!d||d==="#EXTM3U")continue;if(d.startsWith("#EXTINF:")){a=y.parseExtInf_(d);continue}if(d.startsWith("#"))continue;let u=fe.resolve(i,d),m=a==null?void 0:a["tvg-id"];if(m&&n.has(m)){p.debug("QueueManager: Skipping duplicated channel:",m,u);continue}let f={manifestUri:u,preloadManager:null,startTime:null,mimeType:null,config:null,extraText:null,extraThumbnail:null,extraChapter:null,metadata:a};s.push(f),m&&n.add(m),a=null}return s}static parseExtInf_(t){let i=t.lastIndexOf(","),r=i>=0?t.substring(0,i):t,s=i>=0?t.substring(i+1).trim():"",n=/([\w-]+)="([^"]*)"/g,a={},o;for(;(o=n.exec(r))!==null;)a[o[1]]=o[2];let c=vo(To({},a),{title:a["tvg-name"]||s||void 0,poster:a["tvg-logo"]||void 0});return s&&(c.displayTitle=s),c}};dt.setQueueManagerFactory(y=>new na(y));/*! @license
852
+ * Shaka Player
853
+ * Copyright 2016 Google LLC
854
+ * SPDX-License-Identifier: Apache-2.0
855
+ */var ni=class y{constructor(e,t,i,r){l(this,"type_");l(this,"mechanism_");l(this,"cell_");l(this,"key_");l(this,"asString_");this.type_=e,this.mechanism_=t,this.cell_=i,this.key_=r,this.asString_=["offline:",e,"/",t,"/",i,"/",r].join("")}isManifest(){return this.type_=="manifest"}isSegment(){return this.type_=="segment"}mechanism(){return this.mechanism_}cell(){return this.cell_}key(){return this.key_}toString(){return this.asString_}static parse(e){let t=/^offline:([a-z]+)\/([^/]+)\/([^/]+)\/([0-9]+)$/.exec(e);if(t==null)return null;let i=t[1];if(i!="manifest"&&i!="segment")return null;let r=t[2];if(!r)return null;let s=t[3];if(!s)return null;let n=Number(t[4]);return i==null?null:new y(i,r,s,n)}static manifest(e,t,i){return new y("manifest",e,t,i)}static segment(e,t,i){return new y("segment",e,t,i)}};/*! @license
856
+ * Shaka Player
857
+ * Copyright 2016 Google LLC
858
+ * SPDX-License-Identifier: Apache-2.0
859
+ */var ls=class{constructor(e,t){l(this,"mechanism_");l(this,"cell_");this.mechanism_=e,this.cell_=t}fromManifestDB(e){let t=new wi(null,0);t.setDuration(e.duration);let i=e.streams.filter(d=>this.isAudio_(d)),r=e.streams.filter(d=>this.isVideo_(d)),s=this.createVariants(i,r,t),n=e.streams.filter(d=>this.isText_(d)).map(d=>this.fromStreamDB_(d,t)),a=e.streams.filter(d=>this.isImage_(d)).map(d=>this.fromStreamDB_(d,t)),o=e.streams.filter(d=>this.isChapter_(d)).map(d=>this.fromStreamDB_(d,t)),c=e.drmInfo?[e.drmInfo]:[];if(e.drmInfo)for(let d of s.values())d.audio&&d.audio.encrypted&&(d.audio.drmInfos=c),d.video&&d.video.encrypted&&(d.video.drmInfos=c);return{presentationTimeline:t,offlineSessionIds:e.sessionIds,variants:Array.from(s.values()),textStreams:n,imageStreams:a,chapterStreams:o,sequenceMode:e.sequenceMode||!1,ignoreManifestTimestampsInSegmentsMode:!1,type:e.type||me.UNKNOWN,serviceDescription:null,nextUrl:null,periodCount:1,gapCount:0,isLowLatency:!1,startTime:null}}createVariants(e,t,i){let r=new Set;for(let n of e)for(let a of n.variantIds)r.add(a);for(let n of t)for(let a of n.variantIds)r.add(a);let s=new Map;for(let n of r)s.set(n,this.createEmptyVariant_(n));for(let n of e){let a=this.fromStreamDB_(n,i);for(let o of n.variantIds){let c=s.get(o);v.assert(!c.audio,"A variant should only have one audio stream"),c.language=a.language,c.primary=c.primary||a.primary,c.audio=a}}for(let n of t){let a=this.fromStreamDB_(n,i);for(let o of n.variantIds){let c=s.get(o);v.assert(!c.video,"A variant should only have one video stream"),c.primary=c.primary||a.primary,c.video=a}}return s}fromStreamDB_(e,t){let i=e.segments.map((n,a)=>this.fromSegmentDB_(a,n,e));t.notifySegments(i);let r=new Ze(i);return{id:e.id,originalId:e.originalId,groupId:e.groupId,createSegmentIndex:()=>Promise.resolve(),segmentIndex:r,mimeType:e.mimeType,codecs:e.codecs,supplementalCodecs:"",width:e.width||void 0,height:e.height||void 0,frameRate:e.frameRate,pixelAspectRatio:e.pixelAspectRatio,hdr:e.hdr,colorGamut:e.colorGamut,videoLayout:e.videoLayout,kind:e.kind,encrypted:e.encrypted,drmInfos:[],keyIds:e.keyIds,language:e.language,originalLanguage:e.originalLanguage||null,label:e.label,type:e.type,primary:e.primary,trickModeVideo:null,dependencyStream:null,emsgSchemeIdUris:null,roles:e.roles,forced:e.forced,channelsCount:e.channelsCount,audioSamplingRate:e.audioSamplingRate,spatialAudio:e.spatialAudio,closedCaptions:e.closedCaptions,tilesLayout:e.tilesLayout,accessibilityPurpose:null,external:e.external,fastSwitching:e.fastSwitching,fullMimeTypes:new Set([N.getFullType(e.mimeType,e.codecs)]),isAudioMuxedInVideo:e.isAudioMuxedInVideo||!1,baseOriginalId:null,isIframe:e.isIframe||!1}}fromSegmentDB_(e,t,i){let r=this.isChapter_(i)?"":ni.segment(this.mechanism_,this.cell_,t.dataKey),s=t.initSegmentKey!=null?this.fromInitSegmentDB_(t.initSegmentKey):null,n=new Se(t.startTime,t.endTime,()=>[r.toString()],0,null,s,t.timestampOffset,t.appendWindowStart,t.appendWindowEnd,[],t.tilesLayout||"");if(n.mimeType=t.mimeType||i.mimeType||"",n.codecs=t.codecs||i.codecs||"",t.thumbnailSprite&&n.setThumbnailSprite(t.thumbnailSprite),t.chapterTitle){let a={title:t.chapterTitle,images:[]};n.setMetadata(a)}return n}fromInitSegmentDB_(e){let t=ni.segment(this.mechanism_,this.cell_,e);return new Tt(()=>[t.toString()],0,null)}isAudio_(e){let t=R.ContentType;return e.type==t.AUDIO}isVideo_(e){let t=R.ContentType;return e.type==t.VIDEO}isText_(e){let t=R.ContentType;return e.type==t.TEXT}isImage_(e){let t=R.ContentType;return e.type==t.IMAGE}isChapter_(e){let t=R.ContentType;return e.type==t.CHAPTER}createEmptyVariant_(e){return{id:e,language:"",disabledUntilTime:0,primary:!1,audio:null,video:null,bandwidth:0,allowedByApplication:!0,allowedByKeySystem:!0,decodingInfos:[]}}};/*! @license
860
+ * Shaka Player
861
+ * Copyright 2016 Google LLC
862
+ * SPDX-License-Identifier: Apache-2.0
863
+ */var hi=class hi{constructor(){l(this,"mechanisms_");this.mechanisms_=new Map}destroy(){let e=[];for(let t of this.mechanisms_.values())e.push(t.destroy());return this.mechanisms_.clear(),Promise.all(e)}init(){hi.getRegistry_().forEach((i,r)=>{let s=i();s?this.mechanisms_.set(r,s):p.info("Skipping "+r+" as it is not supported on this platform")});let t=[];for(let i of this.mechanisms_.values())t.push(i.init());return Promise.all(t)}getActive(){let e=null;if(this.mechanisms_.forEach((t,i)=>{t.getCells().forEach((r,s)=>{if(r.hasFixedKeySpace()||e)return;e={path:{mechanism:i,cell:s},cell:r}})}),e)return e;throw new h(h.Severity.CRITICAL,h.Category.STORAGE,h.Code.MISSING_STORAGE_CELL,"Could not find a cell that supports add-operations")}forEachCell(e){this.mechanisms_.forEach((t,i)=>{t.getCells().forEach((r,s)=>{e({mechanism:i,cell:s},r)})})}getCell(e,t){let i=this.mechanisms_.get(e);if(!i)throw new h(h.Severity.CRITICAL,h.Category.STORAGE,h.Code.MISSING_STORAGE_CELL,"Could not find mechanism with name "+e);let r=i.getCells().get(t);if(!r)throw new h(h.Severity.CRITICAL,h.Category.STORAGE,h.Code.MISSING_STORAGE_CELL,"Could not find cell with name "+t);return r}forEachEmeSessionCell(e){this.mechanisms_.forEach((t,i)=>{e(t.getEmeSessionCell())})}getEmeSessionCell(){let e=Array.from(this.mechanisms_.keys());if(!e.length)throw new h(h.Severity.CRITICAL,h.Category.STORAGE,h.Code.STORAGE_NOT_SUPPORTED,"No supported storage mechanisms found");return this.mechanisms_.get(e[0]).getEmeSessionCell()}resolvePath(e){let t=this.mechanisms_.get(e.mechanism);return t?t.getCells().get(e.cell):null}async erase(){let e=Array.from(this.mechanisms_.values()),t=e.length>0;t||hi.getRegistry_().forEach((r,s)=>{let n=r();n&&e.push(n)}),await Promise.all(e.map(i=>i.erase())),t||await Promise.all(e.map(i=>i.destroy()))}static register(e,t){hi.registry_.set(e,t)}static unregister(e){hi.registry_.delete(e)}static support(){let e=hi.getRegistry_();for(let t of e.values()){let i=t();if(i)return i.destroy(),!0}return!1}static overrideSupport(e){hi.override_=e}static clearOverride(){hi.override_=null}static getRegistry_(){let e=hi.override_,t=hi.registry_;return COMPILED?t:e||t}};l(hi,"override_",null),l(hi,"registry_",new Map);var Lt=hi;/*! @license
864
+ * Shaka Player
865
+ * Copyright 2016 Google LLC
866
+ * SPDX-License-Identifier: Apache-2.0
867
+ */var aa=class{constructor(){l(this,"uri_");this.uri_=null}configure(e){}async start(e,t){let i=ni.parse(e);if(this.uri_=i,i==null||!i.isManifest())throw new h(h.Severity.CRITICAL,h.Category.NETWORK,h.Code.MALFORMED_OFFLINE_URI,e);let r=new Lt;try{await r.init();let a=(await(await r.getCell(i.mechanism(),i.cell())).getManifests([i.key()]))[0],c=new ls(i.mechanism(),i.cell()).fromManifestDB(a);return t.makeTextStreamsForClosedCaptions(c),c}finally{await r.destroy()}}stop(){return Promise.resolve()}update(){}async onExpirationUpdated(e,t){v.assert(this.uri_,"Should not get update event before start has been called");let i=this.uri_,r=new Lt;try{await r.init();let s=await r.getCell(i.mechanism(),i.cell()),a=(await s.getManifests([i.key()]))[0],o=a.sessionIds.includes(e),c=a.expiration==null||a.expiration>t;o&&c&&(p.debug("Updating expiration for stored content"),await s.updateManifestExpiration(i.key(),t))}catch(s){p.error("There was an error updating",i,s)}finally{await r.destroy()}}onInitialVariantChosen(e){}banLocation(e){}setMediaElement(e){}};me.registerParserByMime("application/x-offline-manifest",()=>new aa);/*! @license
868
+ * Shaka Player
869
+ * Copyright 2016 Google LLC
870
+ * SPDX-License-Identifier: Apache-2.0
871
+ */var oa=class y{static plugin(e,t,i,r){let s=ni.parse(e);return s&&s.isManifest()?y.getManifest_(e,t):s&&s.isSegment()?y.getSegment_(s.key(),s,t):je.failed(new h(h.Severity.CRITICAL,h.Category.NETWORK,h.Code.MALFORMED_OFFLINE_URI,e))}static getManifest_(e,t){let i={uri:e,originalUri:e,data:new ArrayBuffer(0),headers:{"content-type":"application/x-offline-manifest"},originalRequest:t};return je.completed(i)}static getSegment_(e,t,i){v.assert(t.isSegment(),"Only segment uri's should be given to getSegment");let r=new Lt;return je.completed(void 0).chain(()=>r.init()).chain(()=>r.getCell(t.mechanism(),t.cell())).chain(s=>s.getSegments([t.key()])).chain(s=>{let n=s[0];return{uri:t,data:n.data,headers:{},originalRequest:i}}).finally(()=>r.destroy())}};K.registerScheme("offline",oa.plugin);/*! @license
872
+ * Shaka Player
873
+ * Copyright 2016 Google LLC
874
+ * SPDX-License-Identifier: Apache-2.0
875
+ */var Tr=class y{constructor(e,t,i,r,s){l(this,"ref");l(this,"estimateId");l(this,"groupId");l(this,"isInitSegment");l(this,"refPosition");this.ref=e,this.estimateId=t,this.groupId=i,this.isInitSegment=r,this.refPosition=s}static idForSegmentRef(e){let t=e.getSegmentData(!1);if(t)return ne.toBase64(t);let i=r=>r.split("#xywh=")[0];return e.getUris().map(r=>"{"+encodeURI(i(r))+"}").join("")+":"+e.startByte+":"+e.endByte}getRefId(){return y.idForSegmentRef(this.ref)}makeSegmentRequest(e){return ct.createSegmentRequest(this.ref.getUris(),this.ref.startByte,this.ref.endByte,e.streaming.retryParameters)}};/*! @license
876
+ * Shaka Player
877
+ * Copyright 2016 Google LLC
878
+ * SPDX-License-Identifier: Apache-2.0
879
+ */var la=class{constructor(){l(this,"estimatedTotal_");l(this,"estimatedDownloaded_");l(this,"actualDownloaded_");l(this,"pending_");l(this,"nextId_");this.estimatedTotal_=0,this.estimatedDownloaded_=0,this.actualDownloaded_=0,this.pending_=new Map,this.nextId_=0}open(e){this.estimatedTotal_+=e;let t=this.nextId_;return this.nextId_++,this.pending_.set(t,e),t}close(e,t){if(!this.pending_.has(e))return;let i=this.pending_.get(e);this.pending_.delete(e),this.estimatedDownloaded_+=i,this.actualDownloaded_+=t}getEstimatedProgress(){return this.estimatedTotal_==0?0:this.estimatedDownloaded_/this.estimatedTotal_}getTotalDownloaded(){return this.actualDownloaded_}};/*! @license
880
+ * Shaka Player
881
+ * Copyright 2016 Google LLC
882
+ * SPDX-License-Identifier: Apache-2.0
883
+ */var ca=class{constructor(e){l(this,"networkingEngine_");l(this,"groups_");l(this,"destroyer_");l(this,"abortCallbacks_");l(this,"onProgress_");l(this,"onInitData_");l(this,"estimator_");l(this,"aborted_");this.networkingEngine_=e,this.groups_=new Map,this.destroyer_=new ci(()=>this.abortAll().catch(()=>{})),this.abortCallbacks_=[],this.onProgress_=(t,i)=>{},this.onInitData_=(t,i)=>{},this.estimator_=new la,this.aborted_=!1}destroy(){return this.destroyer_.destroy()}setCallbacks(e,t){this.onProgress_=e,this.onInitData_=t}abortAll(){this.aborted_=!0;let e=this.abortCallbacks_.map(t=>t());return this.abortCallbacks_=[],Promise.all(e)}isAborted(){return this.aborted_}addDownloadEstimate(e){return this.estimator_.open(e)}queue(e,t,i,r,s){this.destroyer_.ensureNotDestroyed();let a=(this.groups_.get(e)||Promise.resolve()).then(async()=>{let o=await this.fetchSegment_(t);if(this.destroyer_.destroyed())throw new h(h.Severity.CRITICAL,h.Category.STORAGE,h.Code.OPERATION_ABORTED);if(r){let c=D.toUint8(o),d=new ei(c);for(let u in d.data){let m=Number(u),f=d.data[m],g=d.systemIds[m];this.onInitData_(f,g)}}return this.estimator_.close(i,o.byteLength),this.onProgress_(this.estimator_.getEstimatedProgress(),this.estimator_.getTotalDownloaded()),s(o)});return this.groups_.set(e,a),a}queueData(e,t,i,r,s){this.destroyer_.ensureNotDestroyed();let a=(this.groups_.get(e)||Promise.resolve()).then(()=>{if(this.destroyer_.destroyed())throw new h(h.Severity.CRITICAL,h.Category.STORAGE,h.Code.OPERATION_ABORTED);if(r){let o=D.toUint8(t),c=new ei(o);for(let d in c.data){let u=Number(d),m=c.data[u],f=c.systemIds[u];this.onInitData_(m,f)}}return this.estimator_.close(i,t.byteLength),this.onProgress_(this.estimator_.getEstimatedProgress(),this.estimator_.getTotalDownloaded()),s(t)});return this.groups_.set(e,a),a}queueWork(e,t){this.destroyer_.ensureNotDestroyed();let r=(this.groups_.get(e)||Promise.resolve()).then(async()=>{await t()});return this.groups_.set(e,r),r}async waitToFinish(){return await Promise.all(this.groups_.values()),this.estimator_.getTotalDownloaded()}async fetchSegment_(e){let t=K.RequestType.SEGMENT,i=this.networkingEngine_.request(t,e),r=()=>i.abort();this.abortCallbacks_.push(r);let s=await i.promise;return ye.remove(this.abortCallbacks_,r),s.data}};/*! @license
884
+ * Shaka Player
885
+ * Copyright 2016 Google LLC
886
+ * SPDX-License-Identifier: Apache-2.0
887
+ */var qs=class y{async delete(e,t,i){let r=[];for(let s of y.createBuckets_(i)){let a=await this.doDelete_(e,t,s);r=r.concat(a)}return r}async doDelete_(e,t,i){let r=new Bi({netEngine:t,onError:()=>{},onKeyStatus:()=>{},onExpirationUpdated:()=>{},onEvent:()=>{}});try{r.configure(e),await r.initForRemoval(i.info.keySystem,i.info.licenseUri,i.info.serverCertificate,i.info.audioCapabilities,i.info.videoCapabilities)}catch(n){return p.warning("Error initializing EME",n),await r.destroy(),[]}let s=[];return await Promise.all(i.sessionIds.map(async n=>{try{await r.removeSession(n),s.push(n)}catch(a){p.warning("Error deleting offline session",a)}})),await r.destroy(),s}static createBuckets_(e){let t=[];for(let i of e){let r=!1;for(let s of t)if(y.isCompatible_(s.info,i)){s.sessionIds.push(i.sessionId),r=!0;break}r||t.push({info:i,sessionIds:[i.sessionId]})}return t}static isCompatible_(e,t){let i=(r,s)=>r.robustness==s.robustness&&r.contentType==s.contentType;return e.keySystem==t.keySystem&&e.licenseUri==t.licenseUri&&ye.hasSameElements(e.audioCapabilities,t.audioCapabilities,i)&&ye.hasSameElements(e.videoCapabilities,t.videoCapabilities,i)}};/*! @license
888
+ * Shaka Player
889
+ * Copyright 2016 Google LLC
890
+ * SPDX-License-Identifier: Apache-2.0
891
+ */var Gr=class y{static fromManifest(e,t,i,r){v.assert(t.variants.length,"Cannot create stored content from manifest with no variants.");let s=t.presentationTimeline.getDuration(),n=y.getTracks_(t);return{offlineUri:null,originalManifestUri:e,duration:s,size:i,expiration:1/0,tracks:n,appMetadata:r,isIncomplete:!1}}static fromManifestDB(e,t){v.assert(t.streams.length,"Cannot create stored content from manifestDB with no streams.");let r=new ls(e.mechanism(),e.cell()).fromManifestDB(t),s=t.appMetadata||{},n=y.getTracks_(r);return v.assert(t.expiration!=null,"Manifest expiration must be set by now!"),{offlineUri:e.toString(),originalManifestUri:t.originalManifestUri,duration:t.duration,size:t.size,expiration:t.expiration,tracks:n,appMetadata:s,isIncomplete:t.isIncomplete||!1}}static getTracks_(e){let t=[],i=se.getPlayableVariants(e.variants);for(let s of i)t.push(se.variantToTrack(s));let r=e.textStreams;for(let s of r)t.push(se.textStreamToTrack(s));return t}};/*! @license
892
+ * Shaka Player
893
+ * Copyright 2016 Google LLC
894
+ * SPDX-License-Identifier: Apache-2.0
895
+ */var vr=class vr{constructor(){l(this,"estimateByStreamId_");this.estimateByStreamId_=new Map}addVariant(e){let t=e.audio,i=e.video;if(t&&!i){let r=t.bandwidth||e.bandwidth;this.setBitrate_(t.id,r)}if(!t&&i){let r=i.bandwidth||e.bandwidth;this.setBitrate_(i.id,r)}if(t&&i){let r=t.bandwidth||vr.DEFAULT_AUDIO_BITRATE_,s=i.bandwidth||e.bandwidth-r;s<=0&&(p.warning("Audio bit rate consumes variants bandwidth. Setting video bandwidth to match variant's bandwidth."),s=e.bandwidth),this.setBitrate_(t.id,r),this.setBitrate_(i.id,s)}}setBitrate_(e,t){this.estimateByStreamId_.set(e,t)}addText(e){this.estimateByStreamId_.set(e.id,vr.DEFAULT_TEXT_BITRATE_)}addImage(e){this.estimateByStreamId_.set(e.id,e.bandwidth||vr.DEFAULT_IMAGE_BITRATE_)}getSegmentEstimate(e,t){let i=t.endTime-t.startTime;return this.getEstimate_(e)*i}getInitSegmentEstimate(e){return this.getEstimate_(e)*.5}getEstimate_(e){let t=this.estimateByStreamId_.get(e);return t==null&&(t=0,p.error("Asking for bitrate of stream not given to the estimator")),t==0&&p.warning("Using bitrate of 0, this stream won't affect progress"),t}};l(vr,"DEFAULT_AUDIO_BITRATE_",393216),l(vr,"DEFAULT_TEXT_BITRATE_",52),l(vr,"DEFAULT_IMAGE_BITRATE_",2048);var da=vr;/*! @license
896
+ * Shaka Player
897
+ * Copyright 2016 Google LLC
898
+ * SPDX-License-Identifier: Apache-2.0
899
+ */var Ws=class y{constructor(e){l(this,"config_");l(this,"networkingEngine_");l(this,"openOperations_");l(this,"openDownloadManagers_");l(this,"destroyer_");l(this,"nextExternalStreamId_");if(e&&e.constructor!=dt)throw new h(h.Severity.CRITICAL,h.Category.STORAGE,h.Code.LOCAL_PLAYER_INSTANCE_REQUIRED);this.config_=null,this.networkingEngine_=null,e?(this.config_=e.getSharedConfiguration(),this.networkingEngine_=e.getNetworkingEngine(),v.assert(this.networkingEngine_,"Storage should not be initialized with a player that had |destroy| called on it.")):(this.config_=st.createDefault(),this.networkingEngine_=new K,this.networkingEngine_.configure(this.config_.networking)),this.openOperations_=[],this.openDownloadManagers_=[];let t=!e;this.destroyer_=new ci(async()=>{await Promise.all(this.openDownloadManagers_.map(s=>s.abortAll()));let i=()=>{},r=[];for(let s of this.openOperations_)r.push(s.then(i,i));await Promise.all(r),t&&await this.networkingEngine_.destroy(),this.config_=null,this.networkingEngine_=null}),this.nextExternalStreamId_=1e9}static support(){return j.getDevice().supportsMediaSource()?Lt.support():!1}destroy(){return this.destroyer_.destroy()}configure(e,t){return v.assert(typeof e=="object"||arguments.length==2,"String configs should have values!"),arguments.length==2&&typeof e=="string"&&(e=Pt.convertToConfigObject(e,t)),v.assert(typeof e=="object","Should be an object!"),v.assert(this.config_,"Cannot reconfigure storage after calling destroy."),st.mergeConfigObjects(this.config_,e)}getConfiguration(){v.assert(this.config_,"Config must not be null!");let e=st.createDefault();return st.mergeConfigObjects(e,this.config_,st.createDefault()),e}getNetworkingEngine(){return this.networkingEngine_}store(e,t,i,r,s){v.assert(this.networkingEngine_,"Cannot call |store| after calling |destroy|.");let n=this.getConfiguration(),a=async()=>(v.assert(this.networkingEngine_,"Should not call |store| after |destroy|"),i||(i=await ct.getMimeType(e,this.networkingEngine_,n.manifest.retryParameters)),me.getFactory(e,i||null)()),o=new ca(this.networkingEngine_);this.openDownloadManagers_.push(o);let c=this.store_(e,t||{},r||[],s||[],a,n,o),d=new je(c,()=>o.abortAll());return d.finally(()=>{ye.remove(this.openDownloadManagers_,o)}),this.startAbortableOperation_(d)}async store_(e,t,i,r,s,n,a){this.requireSupport_();let o=null,c=null,d=new Lt,u=null,m=null,f=null;try{o=await s();let g=await this.parseManifest(e,o,n);if(this.ensureNotDestroyed_(),!!g.presentationTimeline.isDynamic())throw new h(h.Severity.CRITICAL,h.Category.STORAGE,h.Code.CANNOT_STORE_LIVE_OFFLINE,e);for(let w of i){let M=await this.createExternalImageStream_(w,g);g.imageStreams.push(M),this.ensureNotDestroyed_()}for(let w of r){let M=await this.createExternalTextStream_(g,w.uri,w.language,w.kind,w.mime,w.codecs);g.textStreams.push(M),this.ensureNotDestroyed_()}Bi.configureClearKey(n.drm.clearKeys,g.variants);let T=g.variants.some(w=>{if(w.audio){for(let M of w.audio.drmInfos)if(M.licenseServerUri.startsWith("data:"))return!0}if(w.video){for(let M of w.video.drmInfos)if(M.licenseServerUri.startsWith("data:"))return!0}return!1}),S=n.offline.usePersistentLicense;if(T&&(S=!1),c=await this.createDrmEngine(g,w=>{f=f||w},n,S),this.ensureNotDestroyed_(),f)throw f;await this.filterManifest_(g,c,n,S),await d.init(),this.ensureNotDestroyed_(),u=await d.getActive(),this.ensureNotDestroyed_(),v.assert(c,"drmEngine should be non-null here.");let{manifestDB:b,toDownload:E}=this.makeManifestDB_(c,g,e,t,n,a,S),C=await u.cell.addManifests([b]);if(this.ensureNotDestroyed_(),m=C[0],v.assert(c,"drmEngine should be non-null here."),this.ensureNotDestroyed_(),f)throw f;await this.downloadSegments_(E,m,b,a,n,u.cell,g,c,S),this.ensureNotDestroyed_(),this.setManifestDrmFields_(g,b,c,S),await u.cell.updateManifest(m,b),this.ensureNotDestroyed_();let A=ni.manifest(u.path.mechanism,u.path.cell,m);return Gr.fromManifestDB(A,b)}catch(g){throw m!=null&&await y.cleanStoredManifest(m),f||g}finally{await d.destroy(),o&&await o.stop(),c&&await c.destroy()}}async downloadSegments_(e,t,i,r,s,n,a,o,c){let d={},u=0,m=()=>{if(this.destroyer_.destroyed()||r.isAborted())throw new h(h.Severity.CRITICAL,h.Category.STORAGE,h.Code.OPERATION_ABORTED)},f=async(_,T)=>{for(let S of _){m();let b=S.makeSegmentRequest(s),E=S.estimateId,C=S.isInitSegment,A=async x=>{let k=S.ref,L=k.getSegmentData(!1);k.aesKey&&!L&&(x=await vt.aesDecrypt(x,k.aesKey,S.refPosition));let V=Tr.idForSegmentRef(k),ee=await n.addSegments([{data:x}]);m(),d[V]=ee[0],u+=x.byteLength},M=S.ref.getSegmentData(!1);M?r.queueData(S.groupId,M,E,C,A):r.queue(S.groupId,b,E,C,A)}await r.waitToFinish(),m(),T&&!r.isAborted()&&(this.setManifestDrmFields_(a,i,o,c),await n.updateManifest(t,i))},g=!1;try{if(this.getManifestIsEncrypted_(a)&&g&&!this.getManifestIncludesInitData_(a)){await f(e.filter(S=>S.isInitSegment),!0),m(),e=e.filter(S=>!S.isInitSegment);let _=d,T=u;d={},u=0,await y.assignSegmentsToManifest(n,t,i,_,T,()=>this.ensureNotDestroyed_()),m()}if(!g){await f(e,!1),m();let _=d,T=u;d={},u=0,await y.assignSegmentsToManifest(n,t,i,_,T,()=>m()),m(),v.assert(!i.isIncomplete,"The manifest should be complete by now")}}catch(_){let T=Object.values(d);throw await n.removeSegments(T,S=>{}),_}}static async cleanStoredManifest(e){let t=new Lt;await t.init();let i=await t.getActive(),r=ni.manifest(i.path.mechanism,i.path.cell,e);await t.destroy(),await new y().remove(r.toString())}static async assignSegmentsToManifest(e,t,i,r,s,n){let a=!1;try{let o=!0;for(let c of i.streams)if(c.type!=R.ContentType.CHAPTER)for(let d of c.segments){let u=d.pendingSegmentRefId?r[d.pendingSegmentRefId]:null;u!=null&&(d.dataKey=u,d.pendingSegmentRefId=void 0),u=d.pendingInitSegmentRefId?r[d.pendingInitSegmentRefId]:null,u!=null&&(d.initSegmentKey=u,d.pendingInitSegmentRefId=void 0),d.pendingSegmentRefId&&(o=!1),d.pendingInitSegmentRefId&&(o=!1)}i.size+=s,o&&(i.isIncomplete=!1),await e.updateManifest(t,i),a=!0,n()}catch(o){if(await y.cleanStoredManifest(t),!a){let c=Object.values(r);await e.removeSegments(c,d=>{})}throw o}}async filterManifest_(e,t,i,r){let s={width:1/0,height:1/0};se.filterByRestrictions(e,i.restrictions,s),await se.filterManifestByMediaCapabilities(t,e,r,i.drm.preferredKeySystems,i.drm.keySystemsMapping);let n=[],a=i.preferredDecodingAttributes,o=i.preferredVideo.map(b=>b.codec).filter(Boolean),c=i.preferredAudio.map(b=>b.codec).filter(Boolean),d=i.preferredText.map(b=>b.format).filter(Boolean);se.chooseCodecsAndFilterManifest(e,o,c,a,d);for(let b of e.variants)v.assert(se.isPlayable(b),'We should have already filtered by "is playable"'),n.push(se.variantToTrack(b));for(let b of e.textStreams)n.push(se.textStreamToTrack(b));for(let b of e.imageStreams)n.push(se.imageStreamToTrack(b));for(let b of e.chapterStreams)n.push(se.chapterStreamToTrack(b));let u=await i.offline.trackSelectionCallback(n),m=e.presentationTimeline.getDuration(),f=0;for(let b of u){let E=b.bandwidth*m/8;f+=E}try{if(!await i.offline.downloadSizeCallback(f))throw new h(h.Severity.CRITICAL,h.Category.STORAGE,h.Code.STORAGE_LIMIT_REACHED)}catch(b){throw b instanceof h?b:(p.warning("downloadSizeCallback has produced an unexpected error",b),new h(h.Severity.CRITICAL,h.Category.STORAGE,h.Code.DOWNLOAD_SIZE_CALLBACK_ERROR))}let g=new Set,_=new Set,T=new Set,S=new Set;for(let b of u)b.type=="variant"&&g.add(b.id),b.type=="text"&&_.add(b.id),b.type=="image"&&T.add(b.id),b.type=="chapter"&&S.add(b.id);e.variants=e.variants.filter(b=>g.has(b.id)),e.textStreams=e.textStreams.filter(b=>_.has(b.id)),e.imageStreams=e.imageStreams.filter(b=>T.has(b.id)),e.chapterStreams=e.chapterStreams.filter(b=>S.has(b.id)),y.validateManifest_(e)}makeManifestDB_(e,t,i,r,s,n,a){let o=Gr.fromManifest(i,t,0,r),c=s.offline.progressCallback,d=(E,C)=>{o.size=C,c(o,E)},u=(E,C)=>{m&&a&&f==C&&e.newInitData("cenc",E)};n.setCallbacks(d,u);let m=this.getManifestIsEncrypted_(t)&&!this.getManifestIncludesInitData_(t),f=null;if(m){let E=e.getDrmInfo();f=y.defaultSystemIds_.get(E.keySystem)}let g=new da;for(let E of t.textStreams)g.addText(E);for(let E of t.imageStreams)g.addImage(E);for(let E of t.chapterStreams)g.addImage(E);for(let E of t.variants)g.addVariant(E);let{streams:_,toDownload:T}=this.createStreams_(n,g,e,t,s),S=e.getDrmInfo();return S&&a&&(S.initData=[]),{manifestDB:{creationTime:Date.now(),originalManifestUri:i,duration:t.presentationTimeline.getDuration(),size:0,expiration:e.getExpiration(),streams:_,sessionIds:a?e.getSessionIds():[],drmInfo:S,appMetadata:r,isIncomplete:!0,sequenceMode:t.sequenceMode,type:t.type},toDownload:T}}getManifestIsEncrypted_(e){return e.variants.some(t=>{let i=t.video&&t.video.encrypted,r=t.audio&&t.audio.encrypted;return i||r})}getManifestIncludesInitData_(e){return e.variants.some(t=>{let i=t.video?t.video.drmInfos:[],r=t.audio?t.audio.drmInfos:[];return i.concat(r).some(n=>n.initData&&n.initData.length)})}setManifestDrmFields_(e,t,i,r){t.expiration=i.getExpiration();let s=i.getSessionIds();if(t.sessionIds=r?s:[],this.getManifestIsEncrypted_(e)&&r&&!s.length)throw new h(h.Severity.CRITICAL,h.Category.STORAGE,h.Code.NO_INIT_DATA_FOR_OFFLINE)}remove(e){return this.startOperation_(this.remove_(e))}async remove_(e){this.requireSupport_();let t=ni.parse(e);if(t==null||!t.isManifest())throw new h(h.Severity.CRITICAL,h.Category.STORAGE,h.Code.MALFORMED_OFFLINE_URI,e);let i=t,r=new Lt;try{await r.init();let s=await r.getCell(i.mechanism(),i.cell()),a=(await s.getManifests([i.key()]))[0];await Promise.all([this.removeFromDRM_(i,a,r),this.removeFromStorage_(s,i,a)])}finally{await r.destroy()}}static getCapabilities_(e,t){let i=[];for(let r of e.streams)t&&r.type=="video"?i.push({contentType:N.getFullType(r.mimeType,r.codecs),robustness:e.drmInfo.videoRobustness}):!t&&r.type=="audio"&&i.push({contentType:N.getFullType(r.mimeType,r.codecs),robustness:e.drmInfo.audioRobustness});return i}async removeFromDRM_(e,t,i){v.assert(this.networkingEngine_,"Cannot be destroyed"),await y.deleteLicenseFor_(this.networkingEngine_,this.config_.drm,i,t)}removeFromStorage_(e,t,i){let r=y.getAllSegmentIds_(i),s=r.length+1,n=0,a=Gr.fromManifestDB(t,i),o=c=>{n+=1,this.config_.offline.progressCallback(a,n/s)};return Promise.all([e.removeSegments(r,o),e.removeManifests([t.key()],o)])}removeEmeSessions(){return this.startOperation_(this.removeEmeSessions_())}async removeEmeSessions_(){this.requireSupport_(),v.assert(this.networkingEngine_,"Cannot be destroyed");let e=this.networkingEngine_,t=this.config_.drm,i=new Lt,r=new qs,s=!1;try{await i.init();let n=[];i.forEachEmeSessionCell(a=>n.push(a));for(let a of n){let o=await a.getAll(),c=await r.delete(t,e,o);await a.remove(c),c.length!=o.length&&(s=!0)}}finally{await i.destroy()}return!s}list(){return this.startOperation_(this.list_())}async list_(){this.requireSupport_();let e=[],t=new Lt;try{await t.init();let i=Promise.resolve();t.forEachCell((r,s)=>{i=i.then(async()=>{(await s.getAllManifests()).forEach((a,o)=>{let c=ni.manifest(r.mechanism,r.cell,o),d=Gr.fromManifestDB(c,a);e.push(d)})})}),await i}finally{await t.destroy()}return e}async parseManifest(e,t,i){let r=null,s=this.networkingEngine_;v.assert(s,"Should be initialized!");let n={networkingEngine:s,filter:()=>Promise.resolve(),makeTextStreamsForClosedCaptions:c=>{},onTimelineRegionAdded:()=>{},onEvent:()=>{},onError:c=>{r=c},isLowLatencyMode:()=>!1,updateDuration:()=>{},newDrmInfo:c=>{},onManifestUpdated:()=>{},getBandwidthEstimate:()=>i.abr.defaultBandwidthEstimate,onMetadata:()=>Promise.resolve(),disableStream:c=>{},addFont:(c,d)=>{},getStreamingRetryParameters:()=>i.streaming.retryParameters,onSegmentReceived:(c,d)=>{}};t.configure(i.manifest),this.ensureNotDestroyed_();let a=await t.start(e,n);this.ensureNotDestroyed_();let o=y.getAllStreamsFromManifest_(a);if(await Promise.all(Qi.map(o,c=>c.createSegmentIndex())),this.ensureNotDestroyed_(),r)throw r;return a}async createExternalImageStream_(e,t){let i=await this.getTextMimetype_(e);if(i!="text/vtt")throw new h(h.Severity.RECOVERABLE,h.Category.TEXT,h.Code.UNSUPPORTED_EXTERNAL_THUMBNAILS_URI,e);v.assert(this.networkingEngine_,"Need networking engine.");let r=await this.getTextData_(e,this.networkingEngine_,this.config_.streaming.retryParameters),s=Ue.findParser(i);if(!s)throw new h(h.Severity.CRITICAL,h.Category.TEXT,h.Code.MISSING_TEXT_PLUGIN,i);let n=s(),a={periodStart:0,segmentStart:0,segmentEnd:t.presentationTimeline.getDuration(),vttOffset:0,isMpegTs:!1},o=D.toUint8(r),c=n.parseMedia(o,a,e,[]),d=[];for(let m of c){let f=null,g=()=>(f==null&&(f=fe.resolveUris([e],[m.payload])),f||[]),_=new Se(m.startTime,m.endTime,g,0,null,null,0,0,1/0);if(m.payload.includes("#xywh")){let T=m.payload.split("#xywh=")[1].split(",");T.length===4&&_.setThumbnailSprite({height:parseInt(T[3],10),positionX:parseInt(T[0],10),positionY:parseInt(T[1],10),width:parseInt(T[2],10)})}d.push(_)}let u=i;return d.length&&(u=await ct.getMimeType(d[0].getUris()[0],this.networkingEngine_,this.config_.manifest.retryParameters)),se.createStream({id:this.nextExternalStreamId_++,segmentIndex:new Ze(d),mimeType:u||"",kind:"",language:"und",type:R.ContentType.IMAGE,tilesLayout:"1x1",external:!0})}async createExternalTextStream_(e,t,i,r,s,n){s||(s=await this.getTextMimetype_(t));let a=se.createStream({id:this.nextExternalStreamId_++,segmentIndex:Ze.forSingleSegment(0,e.presentationTimeline.getDuration(),[t]),mimeType:s||"",codecs:n||"",kind:r,language:i,originalLanguage:i,type:R.ContentType.TEXT,external:!0}),o=N.getFullType(a.mimeType,a.codecs);if(!Ue.isTypeSupported(o))throw new h(h.Severity.CRITICAL,h.Category.TEXT,h.Code.MISSING_TEXT_PLUGIN,s);return a}async getTextMimetype_(e){let t;try{v.assert(this.networkingEngine_,"Need networking engine."),t=await ct.getMimeType(e,this.networkingEngine_,this.config_.streaming.retryParameters)}catch(i){}if(t)return t;throw p.error("The mimeType has not been provided and it could not be deduced from its uri."),new h(h.Severity.RECOVERABLE,h.Category.TEXT,h.Code.TEXT_COULD_NOT_GUESS_MIME_TYPE,e)}async getTextData_(e,t,i){let r=K.RequestType.SEGMENT,s=K.makeRequest([e],i);return s.method="GET",(await t.request(r,s).promise).data}async createDrmEngine(e,t,i,r){v.assert(this.networkingEngine_,"Cannot call |createDrmEngine| after |destroy|");let s=new Bi({netEngine:this.networkingEngine_,onError:t,onKeyStatus:()=>{},onExpirationUpdated:()=>{},onEvent:()=>{}});return s.configure(i.drm),await s.initForStorage(e.variants,r),r&&await s.createOrLoad(),s}createStreams_(e,t,i,r,s){let n=new Map,a=y.getAllStreamsFromManifest_(r),o=new Map;for(let c of a){let d=this.createStream_(e,t,r,c,s,n);o.set(c.id,d)}for(let c of r.variants)c.audio&&o.get(c.audio.id).variantIds.push(c.id),c.video&&o.get(c.video.id).variantIds.push(c.id);return{streams:Array.from(o.values()),toDownload:Array.from(n.values())}}createStream_(e,t,i,r,s,n){let a={id:r.id,originalId:r.originalId,groupId:r.groupId,primary:r.primary,type:r.type,mimeType:r.mimeType,codecs:r.codecs,supplementalCodecs:"",frameRate:r.frameRate,pixelAspectRatio:r.pixelAspectRatio,hdr:r.hdr,colorGamut:r.colorGamut,videoLayout:r.videoLayout,kind:r.kind,language:r.language,originalLanguage:r.originalLanguage,label:r.label,width:r.width||null,height:r.height||null,encrypted:r.encrypted,keyIds:r.keyIds,segments:[],variantIds:[],roles:r.roles,forced:r.forced,channelsCount:r.channelsCount,audioSamplingRate:r.audioSamplingRate,spatialAudio:r.spatialAudio,closedCaptions:r.closedCaptions,tilesLayout:r.tilesLayout,external:r.external,fastSwitching:r.fastSwitching,isAudioMuxedInVideo:r.isAudioMuxedInVideo,isIframe:r.isIframe},o=i.presentationTimeline.getSegmentAvailabilityStart(),c=s.offline.numberOfParallelDownloads,d=c===0?r.id:0;return y.forEachSegment_(r,o,(u,m)=>{let f=Tr.idForSegmentRef(u),g,_=null;if(r.type==R.ContentType.CHAPTER){let S=u.getMetadata();S&&(_=S.title)}if(!_&&!n.has(f)){let S=e.addDownloadEstimate(t.getSegmentEstimate(r.id,u)),b=new Tr(u,S,d,!1,m);n.set(f,b)}if(u.initSegmentReference&&(g=Tr.idForSegmentRef(u.initSegmentReference),!n.has(g))){let S=e.addDownloadEstimate(t.getInitSegmentEstimate(r.id)),b=new Tr(u.initSegmentReference,S,d,!0,m);n.set(g,b)}let T={pendingInitSegmentRefId:g,initSegmentKey:g?0:null,startTime:u.startTime,endTime:u.endTime,appendWindowStart:u.appendWindowStart,appendWindowEnd:u.appendWindowEnd,timestampOffset:u.timestampOffset,tilesLayout:u.tilesLayout,pendingSegmentRefId:f,dataKey:0,mimeType:u.mimeType,codecs:u.codecs,thumbnailSprite:u.thumbnailSprite,chapterTitle:_};a.segments.push(T),c!==0&&(d=(d+1)%c)}),a}static forEachSegment_(e,t,i){let r=e.segmentIndex.find(t);if(r==null)return;let s=e.segmentIndex.get(r);for(;s;)i(s,r),s=e.segmentIndex.get(++r)}ensureNotDestroyed_(){if(this.destroyer_.destroyed())throw new h(h.Severity.CRITICAL,h.Category.STORAGE,h.Code.OPERATION_ABORTED)}requireSupport_(){if(!y.support())throw new h(h.Severity.CRITICAL,h.Category.STORAGE,h.Code.STORAGE_NOT_SUPPORTED)}async startOperation_(e){this.openOperations_.push(e);try{return await e}finally{ye.remove(this.openOperations_,e)}}startAbortableOperation_(e){let t=e.promise;return this.openOperations_.push(t),e.finally(()=>{ye.remove(this.openOperations_,t)})}static getAllSegmentIds_(e){let t=new Set;for(let i of e.streams)for(let r of i.segments)r.initSegmentKey!=null&&t.add(r.initSegmentKey),t.add(r.dataKey);return Array.from(t)}static async deleteAll(){let e=new Lt;try{await e.erase()}finally{await e.destroy()}}static async deleteLicenseFor_(e,t,i,r){if(!r.drmInfo)return;let s=i.getEmeSessionCell(),n=r.sessionIds.map(c=>({sessionId:c,keySystem:r.drmInfo.keySystem,licenseUri:r.drmInfo.licenseServerUri,serverCertificate:r.drmInfo.serverCertificate,audioCapabilities:y.getCapabilities_(r,!1),videoCapabilities:y.getCapabilities_(r,!0)})),o=await new qs().delete(t,e,n);await s.remove(o),await s.add(n.filter(c=>!o.includes(c.sessionId)))}static getAllStreamsFromManifest_(e){let t=new Set;for(let i of e.variants)i.audio&&t.add(i.audio),i.video&&t.add(i.video);for(let i of e.textStreams)t.add(i);for(let i of e.imageStreams)t.add(i);for(let i of e.chapterStreams)t.add(i);return t}static validateManifest_(e){let t=new Set(e.variants.map(s=>s.video)),i=new Set(e.variants.map(s=>s.audio)),r=e.textStreams;t.size>1&&p.warning("Multiple video tracks selected to be stored");for(let s of i)for(let n of i)s!=n&&s.language==n.language&&p.warning("Similar audio tracks were selected to be stored",s.id,n.id);for(let s of r)for(let n of r)s!=n&&s.language==n.language&&p.warning("Similar text tracks were selected to be stored",s.id,n.id)}};Ws.defaultSystemIds_=new Map().set("org.w3.clearkey","1077efecc0b24d02ace33c1e52e2fb4b").set("com.widevine.alpha","edef8ba979d64acea3c827dcd51d21ed").set("com.microsoft.playready","9a04f07998404286ab92e65be0885f95").set("com.microsoft.playready.recommendation","9a04f07998404286ab92e65be0885f95").set("com.microsoft.playready.software","9a04f07998404286ab92e65be0885f95").set("com.microsoft.playready.hardware","9a04f07998404286ab92e65be0885f95").set("com.huawei.wiseplay","3d5e6d359b9a41e8b843dd3c6e72c42c");dt.registerSupportPlugin("offline",Ws.support);/*! @license
900
+ * Shaka Player
901
+ * Copyright 2016 Google LLC
902
+ * SPDX-License-Identifier: Apache-2.0
903
+ */var ua=class{constructor(e,t){l(this,"transaction_");l(this,"store_");l(this,"promise_");this.transaction_=e,this.store_=e.objectStore(t),this.promise_=Promise.withResolvers(),e.onabort=i=>{i.preventDefault(),this.promise_.reject()},e.onerror=i=>{i.preventDefault(),this.promise_.reject()},e.oncomplete=i=>{this.promise_.resolve()}}async abort(){try{this.transaction_.abort()}catch(e){}try{await this.promise_.promise}catch(e){}}forEachEntry(e){return new Promise((t,i)=>{let r=this.store_.openCursor();r.onerror=i,r.onsuccess=async s=>{if(r.result==null){t();return}let n=r.result;await e(n.key,n.value,n),n.continue()}})}store(){return this.store_}promise(){return this.promise_.promise}};/*! @license
904
+ * Shaka Player
905
+ * Copyright 2016 Google LLC
906
+ * SPDX-License-Identifier: Apache-2.0
907
+ */var cs=class{constructor(e){l(this,"connection_");l(this,"pending_");this.connection_=e,this.pending_=[]}destroy(){return Promise.all(this.pending_.map(e=>e.abort()))}startReadOnlyOperation(e){return this.startOperation_(e,"readonly")}startReadWriteOperation(e){return this.startOperation_(e,"readwrite")}startOperation_(e,t){let i=this.connection_.transaction([e],t),r=new ua(i,e);return this.pending_.push(r),r.promise().then(()=>this.stopTracking_(r),()=>this.stopTracking_(r)),r}stopTracking_(e){ye.remove(this.pending_,e)}};/*! @license
908
+ * Shaka Player
909
+ * Copyright 2016 Google LLC
910
+ * SPDX-License-Identifier: Apache-2.0
911
+ */var ha=class{constructor(e,t){l(this,"connection_");l(this,"store_");this.connection_=new cs(e),this.store_=t}destroy(){return this.connection_.destroy()}async getAll(){let e=this.connection_.startReadOnlyOperation(this.store_),t=[];return await e.forEachEntry((i,r)=>{t.push(r)}),await e.promise(),t}add(e){let t=this.connection_.startReadWriteOperation(this.store_),i=t.store();for(let r of e)i.add(r);return t.promise()}async remove(e){let t=this.connection_.startReadWriteOperation(this.store_);await t.forEachEntry((i,r,s)=>{e.includes(r.sessionId)&&s.delete()}),await t.promise()}};/*! @license
912
+ * Shaka Player
913
+ * Copyright 2016 Google LLC
914
+ * SPDX-License-Identifier: Apache-2.0
915
+ */var Sr=class{constructor(e,t,i){l(this,"connection_");l(this,"segmentStore_");l(this,"manifestStore_");this.connection_=new cs(e),this.segmentStore_=t,this.manifestStore_=i}destroy(){return this.connection_.destroy()}hasFixedKeySpace(){return!0}addSegments(e){return this.rejectAdd(this.segmentStore_)}removeSegments(e,t){return this.remove_(this.segmentStore_,e,t)}async getSegments(e){return(await this.get_(this.segmentStore_,e)).map(i=>this.convertSegmentData(i))}addManifests(e){return this.rejectAdd(this.manifestStore_)}updateManifest(e,t){return this.rejectUpdate(this.manifestStore_)}updateManifestImplementation(e,t){let i=this.connection_.startReadWriteOperation(this.manifestStore_),r=i.store();return r.get(e).onsuccess=s=>{r.put(t,e)},i.promise()}updateManifestExpiration(e,t){let i=this.connection_.startReadWriteOperation(this.manifestStore_),r=i.store();return r.get(e).onsuccess=s=>{let n=s.target.result;n&&(n.expiration=t,r.put(n,e))},i.promise()}removeManifests(e,t){return this.remove_(this.manifestStore_,e,t)}async getManifests(e){let t=await this.get_(this.manifestStore_,e);return Promise.all(t.map(i=>this.convertManifest(i)))}async getAllManifests(){let e=this.connection_.startReadOnlyOperation(this.manifestStore_),t=new Map;return await e.forEachEntry(async(i,r)=>{let s=await this.convertManifest(r);t.set(i,s)}),await e.promise(),t}convertSegmentData(e){return e}convertManifest(e){return Promise.resolve(e)}rejectAdd(e){return Promise.reject(new h(h.Severity.CRITICAL,h.Category.STORAGE,h.Code.NEW_KEY_OPERATION_NOT_SUPPORTED,"Cannot add new value to "+e))}rejectUpdate(e){return Promise.reject(new h(h.Severity.CRITICAL,h.Category.STORAGE,h.Code.MODIFY_OPERATION_NOT_SUPPORTED,"Cannot modify values in "+e))}async add(e,t){let i=this.connection_.startReadWriteOperation(e),r=i.store(),s=[];for(let n of t){let a=r.add(n);a.onsuccess=o=>{let c=a.result;s.push(c)}}return await i.promise(),s}remove_(e,t,i){let r=this.connection_.startReadWriteOperation(e),s=r.store();for(let n of t)s.delete(n).onsuccess=()=>i(n);return r.promise()}async get_(e,t){let i=this.connection_.startReadOnlyOperation(e),r=i.store(),s={},n=[];for(let a of t){let o=r.get(a);o.onsuccess=()=>{o.result==null&&n.push(a),s[a]=o.result}}if(await i.promise(),n.length)throw new h(h.Severity.CRITICAL,h.Category.STORAGE,h.Code.KEY_NOT_FOUND,"Could not find values for "+n);return t.map(a=>s[a])}};/*! @license
916
+ * Shaka Player
917
+ * Copyright 2016 Google LLC
918
+ * SPDX-License-Identifier: Apache-2.0
919
+ */var ma=class y extends Sr{async updateManifestExpiration(e,t){let i=this.connection_.startReadWriteOperation(this.manifestStore_),r=i.store(),s=Promise.withResolvers();r.get(e).onsuccess=n=>{let a=n.target.result;a?(v.assert(a.key==e,"With in-line keys, the keys should match"),a.expiration=t,r.put(a),s.resolve()):s.reject(new h(h.Severity.CRITICAL,h.Category.STORAGE,h.Code.KEY_NOT_FOUND,"Could not find values for "+e))},await Promise.all([i.promise(),s.promise])}async convertManifest(e){let t=[];for(let r=0;r<e.periods.length;++r){let n=(r==e.periods.length-1?e.duration:e.periods[r+1].startTime)-e.periods[r].startTime,a=y.convertPeriod_(e.periods[r],n);t.push(a)}let i=await gr.combineDbStreams(t);return{creationTime:0,originalManifestUri:e.originalManifestUri,duration:e.duration,size:e.size,expiration:e.expiration==null?1/0:e.expiration,streams:i,sessionIds:e.sessionIds,drmInfo:e.drmInfo,appMetadata:e.appMetadata,sequenceMode:!1}}static convertPeriod_(e,t){y.fillMissingVariants_(e);for(let i of e.streams)v.assert(i.variantIds,"After filling in missing variants, each stream should have variant ids");return e.streams.map(i=>y.convertStream_(i,e.startTime,t))}static convertStream_(e,t,i){let r=e.initSegmentUri?y.getKeyFromSegmentUri_(e.initSegmentUri):null,s=t+e.presentationTimeOffset,n=t,a=t+i;return{id:e.id,originalId:null,groupId:null,primary:e.primary,type:e.contentType,mimeType:e.mimeType,codecs:e.codecs,frameRate:e.frameRate,pixelAspectRatio:void 0,hdr:void 0,colorGamut:void 0,videoLayout:void 0,kind:e.kind,language:e.language,originalLanguage:e.language||null,label:e.label,width:e.width,height:e.height,initSegmentKey:r,encrypted:e.encrypted,keyIds:new Set([e.keyId]),segments:e.segments.map(o=>y.convertSegment_(o,r,n,a,s)),variantIds:e.variantIds,roles:[],forced:!1,audioSamplingRate:null,channelsCount:null,spatialAudio:!1,closedCaptions:null,tilesLayout:void 0,external:!1,fastSwitching:!1,isAudioMuxedInVideo:!1,isIframe:!1}}static convertSegment_(e,t,i,r,s){let n=y.getKeyFromSegmentUri_(e.uri);return{startTime:i+e.startTime,endTime:i+e.endTime,dataKey:n,initSegmentKey:t,appendWindowStart:i,appendWindowEnd:r,timestampOffset:s,tilesLayout:"",mimeType:null,codecs:null,thumbnailSprite:null,chapterTitle:null}}convertSegmentData(e){return{data:e.data}}static getKeyFromSegmentUri_(e){let t=null;if(t=/^offline:[0-9]+\/[0-9]+\/([0-9]+)$/.exec(e),t||(t=/^offline:segment\/([0-9]+)$/.exec(e),t))return Number(t[1]);throw new h(h.Severity.CRITICAL,h.Category.STORAGE,h.Code.MALFORMED_OFFLINE_URI,"Could not parse uri "+e)}static fillMissingVariants_(e){let t=R.ContentType.AUDIO,i=R.ContentType.VIDEO,r=e.streams.filter(a=>a.contentType==t),s=e.streams.filter(a=>a.contentType==i);if(r.every(a=>a.variantIds)&&s.every(a=>a.variantIds))return;v.assert(r.every(a=>!a.variantIds),"Some audio streams have variant ids and some do not."),v.assert(s.every(a=>!a.variantIds),"Some video streams have variant ids and some do not.");for(let a of r)a.variantIds=[];for(let a of s)a.variantIds=[];let n=0;if(s.length&&!r.length){p.debug("Found video-only content. Creating variants for video.");let a=n++;for(let o of s)o.variantIds.push(a)}if(!s.length&&r.length){p.debug("Found audio-only content. Creating variants for audio.");let a=n++;for(let o of r)o.variantIds.push(a)}if(s.length&&r.length){p.debug("Found audio-video content. Creating variants.");for(let a of r)for(let o of s){let c=n++;a.variantIds.push(c),o.variantIds.push(c)}}}};/*! @license
920
+ * Shaka Player
921
+ * Copyright 2016 Google LLC
922
+ * SPDX-License-Identifier: Apache-2.0
923
+ */var zs=class extends Sr{async convertManifest(e){let t=[];for(let r=0;r<e.periods.length;++r){let n=(r==e.periods.length-1?e.duration:e.periods[r+1].startTime)-e.periods[r].startTime,a=this.convertPeriod_(e.periods[r],n);t.push(a)}let i=await gr.combineDbStreams(t);return{appMetadata:e.appMetadata,creationTime:0,drmInfo:e.drmInfo,duration:e.duration,expiration:e.expiration==null?1/0:e.expiration,originalManifestUri:e.originalManifestUri,sessionIds:e.sessionIds,size:e.size,streams:i,sequenceMode:!1}}convertPeriod_(e,t){let i=[];for(let r of e.streams)r.variantIds.length!=0&&i.push(this.convertStream_(r,e.startTime,e.startTime+t));return i}convertStream_(e,t,i){return{id:e.id,originalId:e.originalId,groupId:null,primary:e.primary,type:e.contentType,mimeType:e.mimeType,codecs:e.codecs,frameRate:e.frameRate,pixelAspectRatio:e.pixelAspectRatio,hdr:void 0,colorGamut:void 0,videoLayout:void 0,kind:e.kind,language:e.language,originalLanguage:e.language||null,label:e.label,width:e.width,height:e.height,encrypted:e.encrypted,keyIds:new Set([e.keyId]),segments:e.segments.map(r=>this.convertSegment_(r,e.initSegmentKey,t,i,e.presentationTimeOffset)),variantIds:e.variantIds,roles:[],forced:!1,audioSamplingRate:null,channelsCount:null,spatialAudio:!1,closedCaptions:null,tilesLayout:void 0,external:!1,fastSwitching:!1,isAudioMuxedInVideo:!1,isIframe:!1}}convertSegment_(e,t,i,r,s){let n=i-s;return{startTime:i+e.startTime,endTime:i+e.endTime,initSegmentKey:t,appendWindowStart:i,appendWindowEnd:r,timestampOffset:n,dataKey:e.dataKey,tilesLayout:"",mimeType:null,codecs:null,thumbnailSprite:null,chapterTitle:null}}};/*! @license
924
+ * Shaka Player
925
+ * Copyright 2016 Google LLC
926
+ * SPDX-License-Identifier: Apache-2.0
927
+ */var pa=class extends Sr{hasFixedKeySpace(){return!1}addSegments(e){return this.add(this.segmentStore_,e)}addManifests(e){return this.add(this.manifestStore_,e)}updateManifest(e,t){return this.updateManifestImplementation(e,t)}convertManifest(e){return e.expiration==null&&(e.expiration=1/0),Promise.resolve(e)}};/*! @license
928
+ * Shaka Player
929
+ * Copyright 2016 Google LLC
930
+ * SPDX-License-Identifier: Apache-2.0
931
+ */var qe=class qe{constructor(){l(this,"db_");l(this,"v1_");l(this,"v2_");l(this,"v3_");l(this,"v5_");l(this,"sessions_");this.db_=null,this.v1_=null,this.v2_=null,this.v3_=null,this.v5_=null,this.sessions_=null}init(){let e=qe.DB_NAME,t=qe.VERSION,i=Promise.withResolvers(),r=!1,s=new ae(()=>{r=!0,i.reject(new h(h.Severity.CRITICAL,h.Category.STORAGE,h.Code.INDEXED_DB_INIT_TIMED_OUT))}),n=Po;typeof n=="number"&&n>0&&s.tickAfter(n);let a=window.indexedDB.open(e,t);return a.onsuccess=o=>{if(r)return;s.stop();let c=a.result;this.db_=c,this.v1_=qe.createV1_(c),this.v2_=qe.createV2_(c),this.v3_=qe.createV3_(c),this.v5_=qe.createV5_(c),this.sessions_=qe.createEmeSessionCell_(c),i.resolve()},a.onupgradeneeded=o=>{this.createStores_(a.result)},a.onerror=o=>{r||(s.stop(),i.reject(new h(h.Severity.CRITICAL,h.Category.STORAGE,h.Code.INDEXED_DB_ERROR,a.error)),o.preventDefault())},i.promise}async destroy(){this.v1_&&await this.v1_.destroy(),this.v2_&&await this.v2_.destroy(),this.v3_&&await this.v3_.destroy(),this.v5_&&await this.v5_.destroy(),this.sessions_&&await this.sessions_.destroy(),this.db_&&this.db_.close()}getCells(){let e=new Map;return this.v1_&&e.set("v1",this.v1_),this.v2_&&e.set("v2",this.v2_),this.v3_&&e.set("v3",this.v3_),this.v5_&&e.set("v5",this.v5_),e}getEmeSessionCell(){return v.assert(this.sessions_,"Cannot be destroyed."),this.sessions_}async erase(){this.v1_&&await this.v1_.destroy(),this.v2_&&await this.v2_.destroy(),this.v3_&&await this.v3_.destroy(),this.v5_&&await this.v5_.destroy(),this.db_&&this.db_.close(),await qe.deleteAll_(),this.db_=null,this.v1_=null,this.v2_=null,this.v3_=null,this.v5_=null,await this.init()}static createV1_(e){let t=qe.V1_SEGMENT_STORE,i=qe.V1_MANIFEST_STORE,r=e.objectStoreNames;return r.contains(i)&&r.contains(t)?(p.debug("Mounting v1 idb storage cell"),new ma(e,t,i)):null}static createV2_(e){let t=qe.V2_SEGMENT_STORE,i=qe.V2_MANIFEST_STORE,r=e.objectStoreNames;return r.contains(i)&&r.contains(t)?(p.debug("Mounting v2 idb storage cell"),new zs(e,t,i)):null}static createV3_(e){let t=qe.V3_SEGMENT_STORE,i=qe.V3_MANIFEST_STORE,r=e.objectStoreNames;return r.contains(i)&&r.contains(t)?(p.debug("Mounting v3 idb storage cell"),new zs(e,t,i)):null}static createV5_(e){let t=qe.V5_SEGMENT_STORE,i=qe.V5_MANIFEST_STORE,r=e.objectStoreNames;return r.contains(i)&&r.contains(t)?(p.debug("Mounting v5 idb storage cell"),new pa(e,t,i)):null}static createEmeSessionCell_(e){let t=qe.SESSION_ID_STORE;return e.objectStoreNames.contains(t)?(p.debug("Mounting session ID idb storage cell"),new ha(e,t)):null}createStores_(e){let t=[qe.V5_SEGMENT_STORE,qe.V5_MANIFEST_STORE,qe.SESSION_ID_STORE];for(let i of t)e.objectStoreNames.contains(i)||e.createObjectStore(i,{autoIncrement:!0})}static deleteAll_(){let e=qe.DB_NAME,t=Promise.withResolvers(),i=window.indexedDB.deleteDatabase(e);return i.onblocked=r=>{p.warning("Deleting",e,"is being blocked",r)},i.onsuccess=r=>{t.resolve()},i.onerror=r=>{t.reject(new h(h.Severity.CRITICAL,h.Category.STORAGE,h.Code.INDEXED_DB_ERROR,i.error)),r.preventDefault()},t.promise}};l(qe,"DB_NAME","shaka_offline_db"),l(qe,"VERSION",5),l(qe,"V1_SEGMENT_STORE","segment"),l(qe,"V2_SEGMENT_STORE","segment-v2"),l(qe,"V3_SEGMENT_STORE","segment-v3"),l(qe,"V5_SEGMENT_STORE","segment-v5"),l(qe,"V1_MANIFEST_STORE","manifest"),l(qe,"V2_MANIFEST_STORE","manifest-v2"),l(qe,"V3_MANIFEST_STORE","manifest-v3"),l(qe,"V5_MANIFEST_STORE","manifest-v5"),l(qe,"SESSION_ID_STORE","session-ids");var fa=qe,Po=5;Lt.register("idb",()=>j.getDevice().supportsOfflineStorage()?new fa:null);/*! @license
932
+ * Shaka Player
933
+ * Copyright 2016 Google LLC
934
+ * SPDX-License-Identifier: Apache-2.0
935
+ */var br=class br{static installAll(){for(let e of br.polyfills_)try{e.callback()}catch(t){p.alwaysWarn("Error installing polyfill!",t)}}static register(e,t){let i={priority:t||0,callback:e};for(let r=0;r<br.polyfills_.length;r++)if(br.polyfills_[r].priority<i.priority){br.polyfills_.splice(r,0,i);return}br.polyfills_.push(i)}};l(br,"polyfills_",[]);var Re=br;/*! @license
936
+ * Shaka Player
937
+ * Copyright 2016 Google LLC
938
+ * SPDX-License-Identifier: Apache-2.0
939
+ */var ga=class y{static install(){if(Object.getOwnPropertyDescriptor(Element.prototype,"ariaHidden")){p.info("Using native ARIAMixin interface.");return}p.info("ARIAMixin interface not detected. Installing polyfill.");let e=["ariaHidden","ariaLabel","ariaPressed","ariaSelected"];for(let t of e)y.addARIAMixinAttribute_(t)}static addARIAMixinAttribute_(e){let i=`aria-${e.toLowerCase().replace(/^aria/,"")}`;Object.defineProperty(Element.prototype,e,{get(){return this.getAttribute(i)},set(r){let s=this;r==null||r==null?s.removeAttribute(i):s.setAttribute(i,r)}})}};Re.register(ga.install);/*! @license
940
+ * Shaka Player
941
+ * Copyright 2016 Google LLC
942
+ * SPDX-License-Identifier: Apache-2.0
943
+ */var ds=class{constructor(e,t,i){l(this,"mksa_");l(this,"videoScheme_");l(this,"audioScheme_");l(this,"keySystem");this.mksa_=e,this.videoScheme_=t||null,this.audioScheme_=i||null,this.keySystem=e.keySystem}getConfiguration(){let e=this.mksa_.getConfiguration();if(e.videoCapabilities)for(let t of e.videoCapabilities)t.encryptionScheme=this.videoScheme_;if(e.audioCapabilities)for(let t of e.audioCapabilities)t.encryptionScheme=this.audioScheme_;return e}createMediaKeys(){return this.mksa_.createMediaKeys()}};/*! @license
944
+ * Shaka Player
945
+ * Copyright 2016 Google LLC
946
+ * SPDX-License-Identifier: Apache-2.0
947
+ */var Li=class{static guessSupportedScheme(e){return de.isFairPlayKeySystem(e)?"cbcs":de.isWidevineKeySystem(e)||de.isPlayReadyKeySystem(e)||de.isClearKeySystem(e)||de.isWisePlayKeySystem(e)?"cenc":(p.alwaysWarn("EmeEncryptionSchemePolyfill: Unknown key system:",e,"Please contribute!"),null)}static hasEncryptionScheme(e){if(!e)return!1;let t=e.getConfiguration(),i=t.videoCapabilities&&t.videoCapabilities[0],r=t.audioCapabilities&&t.audioCapabilities[0],s=i||r;return!!(s&&s.encryptionScheme!==void 0)}static checkSupportedScheme(e,t){return!!(!e||e==t||(e=="cbcs"||e=="cbcs-1-9")&&j.getDevice().supportsCbcsWithoutEncryptionSchemeSupport())}};/*! @license
948
+ * Shaka Player
949
+ * Copyright 2016 Google LLC
950
+ * SPDX-License-Identifier: Apache-2.0
951
+ */var _a=class y{static install(){if(!j.getDevice().supportsEncryptionSchemePolyfill())return;let t="EmeEncryptionSchemePolyfill:";if(y.originalRMKSA_||navigator.emeEncryptionSchemePolyfilled){p.debug(t,"Already installed.");return}if(!navigator.requestMediaKeySystemAccess||!MediaKeySystemAccess.prototype.getConfiguration){p.debug(t,"EME not found");return}y.originalRMKSA_=navigator.requestMediaKeySystemAccess,p.debug(t,"Waiting to detect encryptionScheme support."),navigator.requestMediaKeySystemAccess=y.probeRMKSA_,navigator.emeEncryptionSchemePolyfilled=!0}static async probeRMKSA_(e,t){let i="EmeEncryptionSchemePolyfill:";v.assert(this==navigator,'bad "this" for requestMediaKeySystemAccess');let r=await y.originalRMKSA_.call(this,e,t);return Li.hasEncryptionScheme(r)?(p.debug(i,"Native encryptionScheme support found."),navigator.requestMediaKeySystemAccess=y.originalRMKSA_,r):(p.debug(i,"No native encryptionScheme support found. Patching encryptionScheme support."),navigator.requestMediaKeySystemAccess=y.polyfillRMKSA_,y.polyfillRMKSA_.call(this,e,t))}static async polyfillRMKSA_(e,t){v.assert(this==navigator,'bad "this" for requestMediaKeySystemAccess');let i=Li.guessSupportedScheme(e),r=[];for(let o of t){let c=y.filterCapabilities_(o.videoCapabilities,i),d=y.filterCapabilities_(o.audioCapabilities,i);if(!(o.videoCapabilities&&o.videoCapabilities.length&&!c.length)){if(!(o.audioCapabilities&&o.audioCapabilities.length&&!d.length)){let u=Object.assign({},o);u.videoCapabilities=c,u.audioCapabilities=d,r.push(u)}}}if(!r.length){let o=new Error("Unsupported keySystem or supportedConfigurations.");throw o.name="NotSupportedError",o.code=DOMException.NOT_SUPPORTED_ERR,o}let s=await y.originalRMKSA_.call(this,e,r),n=null,a=null;return r[0]&&(r[0].videoCapabilities&&(n=r[0].videoCapabilities[0].encryptionScheme),r[0].audioCapabilities&&(a=r[0].audioCapabilities[0].encryptionScheme)),new ds(s,n,a)}static filterCapabilities_(e,t){return e&&e.filter(i=>Li.checkSupportedScheme(i.encryptionScheme,t))}};Re.register(_a.install);/*! @license
952
+ * Shaka Player
953
+ * Copyright 2016 Google LLC
954
+ * SPDX-License-Identifier: Apache-2.0
955
+ */var ya=class y{static install(){if(!window.Document)return;let e=Element.prototype;e.requestFullscreen=e.requestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,e=Document.prototype,e.exitFullscreen=e.exitFullscreen||e.mozCancelFullScreen||e.webkitCancelFullScreen,"fullscreenElement"in document||(Object.defineProperty(document,"fullscreenElement",{get:()=>document.mozFullScreenElement||document.webkitCurrentFullScreenElement||document.webkitFullscreenElement}),Object.defineProperty(document,"fullscreenEnabled",{get:()=>document.mozFullScreenEnabled||document.webkitFullscreenEnabled}));let t=y.proxyEvent_;document.addEventListener("webkitfullscreenchange",t),document.addEventListener("webkitfullscreenerror",t),document.addEventListener("mozfullscreenchange",t),document.addEventListener("mozfullscreenerror",t)}static proxyEvent_(e){let t=e.type.replace(/^(webkit|moz)/,"").toLowerCase(),i=document.createEvent("Event");i.initEvent(t,e.bubbles,e.cancelable),e.target.dispatchEvent(i)}};Re.register(ya.install);/*! @license
956
+ * Shaka Player
957
+ * Copyright 2016 Google LLC
958
+ * SPDX-License-Identifier: Apache-2.0
959
+ */var Ta=class y{static install(){p.debug("Map.install"),"getOrInsert"in Map.prototype||(p.debug("Map: Installing getOrInsert polyfill."),Map.prototype.getOrInsert=y.mapGetOrInsert_),"getOrInsertComputed"in Map.prototype||(p.debug("Map: Installing getOrInsertComputed polyfill."),Map.prototype.getOrInsertComputed=y.mapGetOrInsertComputed_),p.debug("WeakMap.install"),"getOrInsert"in WeakMap.prototype||(p.debug("WeakMap: Installing getOrInsert polyfill."),WeakMap.prototype.getOrInsert=y.mapGetOrInsert_),"getOrInsertComputed"in WeakMap.prototype||(p.debug("WeakMap: Installing getOrInsertComputed polyfill."),WeakMap.prototype.getOrInsertComputed=y.mapGetOrInsertComputed_)}static mapGetOrInsert_(e,t){return this.has(e)||this.set(e,t),this.get(e)}static mapGetOrInsertComputed_(e,t){return this.has(e)||this.set(e,t(e)),this.get(e)}};Re.register(Ta.install);/*! @license
960
+ * Shaka Player
961
+ * Copyright 2016 Google LLC
962
+ * SPDX-License-Identifier: Apache-2.0
963
+ */var va=class y{static install(){if(!j.getDevice().supportsEncryptionSchemePolyfill())return;let t="McEncryptionSchemePolyfill:";if(y.originalDecodingInfo_||navigator.mediaCapabilitiesEncryptionSchemePolyfilled){p.debug(t,"Already installed.");return}if(!navigator.mediaCapabilities){p.debug(t,"MediaCapabilities not found");return}y.originalDecodingInfo_=navigator.mediaCapabilities.decodingInfo,p.debug(t,"Waiting to detect encryptionScheme support."),navigator.mediaCapabilities.decodingInfo=y.probeDecodingInfo_,navigator.mediaCapabilitiesEncryptionSchemePolyfilled=!0}static async probeDecodingInfo_(e){let t="McEncryptionSchemePolyfill:";v.assert(this==navigator.mediaCapabilities,'bad "this" for decodingInfo');let i=await y.originalDecodingInfo_.call(this,e);if(!i.supported||!e.keySystemConfiguration)return i;let r=i.keySystemAccess;return Li.hasEncryptionScheme(r)?(p.debug(t,"Native encryptionScheme support found."),navigator.mediaCapabilities.decodingInfo=y.originalDecodingInfo_,i):(p.debug(t,"No native encryptionScheme support found. Patching encryptionScheme support."),navigator.mediaCapabilities.decodingInfo=y.polyfillDecodingInfo_,r?y.polyfillDecodingInfo_.call(this,e):(i.keySystemAccess=await y.getMediaKeySystemAccess_(e),i))}static async polyfillDecodingInfo_(e){v.assert(this==navigator.mediaCapabilities,'bad "this" for decodingInfo');let t=null,i=null;if(e.keySystemConfiguration){let s=e.keySystemConfiguration,n=s.keySystem;i=s.audio&&s.audio.encryptionScheme,t=s.video&&s.video.encryptionScheme;let a=Li.guessSupportedScheme(n),o={powerEfficient:!1,smooth:!1,supported:!1,keySystemAccess:null,configuration:e};if(!Li.checkSupportedScheme(i,a)||!Li.checkSupportedScheme(t,a))return o}let r=await y.originalDecodingInfo_.call(this,e);return r.keySystemAccess?r.keySystemAccess=new ds(r.keySystemAccess,t,i):e.keySystemConfiguration&&(r.keySystemAccess=await y.getMediaKeySystemAccess_(e)),r}static async getMediaKeySystemAccess_(e){let t=y.convertToMediaKeySystemConfig_(e);return await navigator.requestMediaKeySystemAccess(e.keySystemConfiguration.keySystem,[t])}static convertToMediaKeySystemConfig_(e){let t=e.keySystemConfiguration,i=[],r=[];if(t.audio){let a={robustness:t.audio.robustness||"",contentType:e.audio.contentType,encryptionScheme:t.audio.encryptionScheme};i.push(a)}if(t.video){let a={robustness:t.video.robustness||"",contentType:e.video.contentType,encryptionScheme:t.video.encryptionScheme};r.push(a)}let n={initDataTypes:t.initDataType?[t.initDataType]:[],distinctiveIdentifier:t.distinctiveIdentifier,persistentState:t.persistentState,sessionTypes:t.sessionTypes};return i.length&&(n.audioCapabilities=i),r.length&&(n.videoCapabilities=r),n}};Re.register(va.install,-2);/*! @license
964
+ * Shaka Player
965
+ * Copyright 2016 Google LLC
966
+ * SPDX-License-Identifier: Apache-2.0
967
+ */var Sa=class y{static install(){p.debug("MediaSource.install");let e=ie.BrowserEngine,t=j.getDevice(),i=t.getBrowserEngine()===e.WEBKIT?t.getVersion():null;!window.MediaSource&&!window.ManagedMediaSource?p.info("No MSE implementation available."):i&&window.MediaSource?i<=12?(p.info("Patching Safari 8-12 MSE bugs."),y.stubAbort_(),y.patchRemovalRange_()):i<=15&&(p.info("Patching Safari 13 & 14 & 15 MSE bugs."),y.stubAbort_()):p.info("Using native MSE as-is.");for(let r of t.rejectCodecs())p.info(`Rejecting ${r}.`),y.rejectCodec_(r);(window.MediaSource||window.ManagedMediaSource)&&y.rejectContainer_("mp2t"),window.MediaSource&&y.isTypeSupported('video/webm; codecs="vp9"')&&!y.isTypeSupported('video/webm; codecs="vp09.00.10.08"')&&(p.info("Patching vp09 support queries."),y.patchVp09_())}static stubAbort_(){let e=y.prototype.addSourceBuffer;y.prototype.addSourceBuffer=function(...t){let i=e.apply(this,t);return i.abort=function(){},i}}static patchRemovalRange_(){let e=SourceBuffer.prototype.remove;SourceBuffer.prototype.remove=function(t,i){return e.call(this,t,i-.001)}}static rejectContainer_(e){if(window.MediaSource){let t=y.isTypeSupported.bind(y);y.isTypeSupported=i=>N.getContainerType(i)!=e&&t(i)}if(window.ManagedMediaSource){let t=ManagedMediaSource.isTypeSupported.bind(ManagedMediaSource);window.ManagedMediaSource.isTypeSupported=i=>N.getContainerType(i)!=e&&t(i)}}static rejectCodec_(e){let t=y.isTypeSupported.bind(y);if(y.isTypeSupported=i=>N.getCodecBase(i)!=e&&t(i),window.ManagedMediaSource){let i=ManagedMediaSource.isTypeSupported.bind(ManagedMediaSource);window.ManagedMediaSource.isTypeSupported=r=>N.getCodecBase(r)!=e&&i(r)}}static patchVp09_(){let e=y.isTypeSupported;j.getDevice().supportStandardVP9Checking()&&(y.isTypeSupported=t=>{let i=t.split(/ *; */),r=i.findIndex(o=>o.startsWith("codecs="));if(r<0)return e(t);let n=i[r].replace("codecs=","").replace(/"/g,"").split(/\s*,\s*/),a=n.findIndex(o=>o.startsWith("vp09"));return a>=0&&(n[a]="vp9",i[r]='codecs="'+n.join(",")+'"',t=i.join("; ")),e(t)})}};Re.register(Sa.install);/*! @license
968
+ * Shaka Player
969
+ * Copyright 2016 Google LLC
970
+ * SPDX-License-Identifier: Apache-2.0
971
+ */var Si=class Si{static install(){if(j.getDevice().supportsMediaCapabilities()){p.info("MediaCapabilities: Native mediaCapabilities support found.");return}p.info("MediaCapabilities: install"),navigator.mediaCapabilities||(navigator.mediaCapabilities={}),Si.originalMcap=navigator.mediaCapabilities,navigator.mediaCapabilities.decodingInfo=Si.decodingInfo_}static async decodingInfo_(e){let t={supported:!1,powerEfficient:!0,smooth:!0,keySystemAccess:null,configuration:e},i=j.getDevice(),r=e.video,s=e.audio;if(e.type=="media-source"){if(!i.supportsMediaSource()||r&&!await Si.checkVideoSupport_(r)||s&&!await Si.checkAudioSupport_(s))return t}else if(e.type=="file"){if(r){let n=r.contentType;if(!i.supportsMediaType(n))return t}if(s){let n=s.contentType;if(!i.supportsMediaType(n))return t}}else return t;if(e.keySystemConfiguration){let n=e.keySystemConfiguration,a=await Si.checkDrmSupport_(r,s,n);a&&(t.supported=!0,t.keySystemAccess=a)}else return t.supported=!0,t;return t}static async checkVideoSupport_(e){return j.getDevice().getDeviceType()===ie.DeviceType.CAST?await Si.canCastDisplayType_(e):Ke.isTypeSupported(e.contentType)}static async checkAudioSupport_(e){let i=j.getDevice().getDeviceType(),r=e.contentType;if(i===ie.DeviceType.CAST&&e.spatialRendering&&(r+="; spatialRendering=true",window.cast&&cast.__platform__&&cast.__platform__.canDisplayType)){let s=!1,n=Si.memoizedCanDisplayTypeRequests_;return n.has(r)?s=n.get(r):(s=await cast.__platform__.canDisplayType(r),n.set(r,s)),s}return Ke.isTypeSupported(r)}static async checkDrmSupport_(e,t,i){let r=[],s=[],n=[];if(i.audio){let g={robustness:i.audio.robustness||"",contentType:t.contentType};j.getDevice().misreportAC3UsingDrm()&&t.contentType.includes('codecs="ac-3"')&&(g.contentType='audio/mp4; codecs="ec-3"'),i.audio.encryptionScheme&&(g.encryptionScheme=i.audio.encryptionScheme,n.push(i.audio.encryptionScheme)),r.push(g)}if(i.video){let g={robustness:i.video.robustness||"",contentType:e.contentType};i.video.encryptionScheme&&(g.encryptionScheme=i.video.encryptionScheme,n.push(i.video.encryptionScheme)),s.push(g)}let a={initDataTypes:[i.initDataType],distinctiveIdentifier:i.distinctiveIdentifier,persistentState:i.persistentState,sessionTypes:i.sessionTypes};r.length&&(a.audioCapabilities=r),s.length&&(a.videoCapabilities=s);let o=e?e.contentType:"",c=t?t.contentType:"",d=N.getBasicType(o)+";"+N.getCodecBase(o),u=N.getBasicType(c)+";"+N.getCodecBase(c),m=i.keySystem,f=null;try{de.hasMediaKeySystemAccess(d,u,m,n)?f=de.getMediaKeySystemAccess(d,u,m,n):(f=await navigator.requestMediaKeySystemAccess(i.keySystem,[a]),de.setMediaKeySystemAccess(d,u,m,n,f))}catch(g){p.info("navigator.requestMediaKeySystemAccess failed.")}return f}static async canCastDisplayType_(e){if(!(window.cast&&cast.__platform__&&cast.__platform__.canDisplayType))return p.warning("Expected cast APIs to be available! Falling back to shaka.media.Capabilities.isTypeSupported() for type support."),Ke.isTypeSupported(e.contentType);let t=e.contentType;if(e.width&&e.height&&e.width>1280&&e.height>720&&(t+=`; width=${e.width}; height=${e.height}`),e.framerate){let n=Math.round(e.framerate);(n<24||n>30)&&(t+=`; framerate=${e.framerate}`)}switch(e.transferFunction||""){case"":case"srgb":break;case"pq":t+="; eotf=smpte2084";break;case"hlg":t+="; eotf=arib-std-b67";break;default:return!1}let r=!1,s=Si.memoizedCanDisplayTypeRequests_;return s.has(t)?r=s.get(t):(r=await cast.__platform__.canDisplayType(t),s.set(t,r)),r}};l(Si,"originalMcap",null),l(Si,"memoizedCanDisplayTypeRequests_",new Map);var ba=Si;Re.register(ba.install,-1);/*! @license
972
+ * Shaka Player
973
+ * Copyright 2016 Google LLC
974
+ * SPDX-License-Identifier: Apache-2.0
975
+ */var Xs=class y{static install(){if(screen.orientation&&screen.orientation.unlock){p.info("Using native screen.orientation");return}screen.orientation!=null?y.installBasedOnScreenMethods_():window.orientation!=null&&y.installBasedOnWindowMethods_()}static installBasedOnScreenMethods_(){let e=Object.getPrototypeOf(screen.orientation);screen.orientation.lock===void 0&&(e.lock=t=>(p.info("screen.orientation.lock is a no-op"),Promise.resolve())),screen.orientation.unlock===void 0&&(e.unlock=()=>{p.info("screen.orientation.unlock is a no-op")})}static installBasedOnWindowMethods_(){let e=new y.FakeOrientation;screen.orientation=e;let t=()=>{switch(window.orientation){case-90:e.type="landscape-secondary",e.angle=270;break;case 0:e.type="portrait-primary",e.angle=0;break;case 90:e.type="landscape-primary",e.angle=90;break;case 180:e.type="portrait-secondary",e.angle=180;break}};t(),window.addEventListener("orientationchange",()=>{t(),e.dispatchChangeEvent()})}};Xs.FakeOrientation=class extends Le{constructor(){super(),this.type="",this.angle=0}dispatchChangeEvent(){let y=new U("change");this.dispatchEvent(y)}lock(y){let e=r=>screen.lockOrientation?screen.lockOrientation(r):screen.mozLockOrientation?screen.mozLockOrientation(r):!1,t=!1;switch(y){case"natural":t=e("default");break;case"any":t=!0,this.unlock();break;default:t=e(y);break}if(t)return Promise.resolve();let i=new Error("screen.orientation.lock() is not available on this device");return i.name="NotSupportedError",i.code=DOMException.NOT_SUPPORTED_ERR,Promise.reject(i)}unlock(){screen.unlockOrientation?screen.unlockOrientation():screen.mozUnlockOrientation&&screen.mozUnlockOrientation()}};Re.register(Xs.install);/*! @license
976
+ * Shaka Player
977
+ * Copyright 2016 Google LLC
978
+ * SPDX-License-Identifier: Apache-2.0
979
+ */var us=class{constructor(){l(this,"size");l(this,"status_");this.size=0,this.status_=void 0}setStatus(e){this.size=e==null?0:1,this.status_=e}getStatus(){return this.status_}forEach(e){this.status_&&e(this.status_,de.DUMMY_KEY_ID.value())}get(e){if(this.has(e))return this.status_}has(e){let t=de.DUMMY_KEY_ID.value();return!!(this.status_&&D.equal(e,t))}entries(){v.assert(!1,"Not used! Provided only for the compiler.")}keys(){v.assert(!1,"Not used! Provided only for the compiler.")}values(){v.assert(!1,"Not used! Provided only for the compiler.")}};/*! @license
980
+ * Shaka Player
981
+ * Copyright 2016 Google LLC
982
+ * SPDX-License-Identifier: Apache-2.0
983
+ */var Xe=class Xe{static defaultInstall(){!window.HTMLVideoElement||!window.WebKitMediaKeys||navigator.requestMediaKeySystemAccess&&MediaKeySystemAccess.prototype.getConfiguration||Xe.install()}static install(e=!1){!window.HTMLVideoElement||!window.WebKitMediaKeys||window.shakaMediaKeysPolyfill!=Xe.apiName_&&(e&&(Xe.enableUninstall=!0,Xe.originalHTMLMediaElementPrototypeMediaKeys=Object.getOwnPropertyDescriptor(HTMLMediaElement.prototype,"mediaKeys"),Xe.originalHTMLMediaElementPrototypeSetMediaKeys=HTMLMediaElement.prototype.setMediaKeys,Xe.originalWindowMediaKeys=window.MediaKeys,Xe.originalWindowMediaKeySystemAccess=window.MediaKeySystemAccess,Xe.originalNavigatorRequestMediaKeySystemAccess=navigator.requestMediaKeySystemAccess),p.info("Using Apple-prefixed EME"),delete HTMLMediaElement.prototype.mediaKeys,HTMLMediaElement.prototype.mediaKeys=null,HTMLMediaElement.prototype.setMediaKeys=Xe.setMediaKeys,window.MediaKeys=Xe.MediaKeys,window.MediaKeySystemAccess=Xe.MediaKeySystemAccess,navigator.requestMediaKeySystemAccess=Xe.requestMediaKeySystemAccess,window.shakaMediaKeysPolyfill=Xe.apiName_,se.clearDecodingConfigCache(),de.clearMediaKeySystemAccessMap())}static uninstall(){window.shakaMediaKeysPolyfill==Xe.apiName_&&Xe.enableUninstall&&(p.info("Un-installing Apple-prefixed EME"),Xe.enableUninstall=!1,Object.defineProperty(HTMLMediaElement.prototype,"mediaKeys",Xe.originalHTMLMediaElementPrototypeMediaKeys),HTMLMediaElement.prototype.setMediaKeys=Xe.originalHTMLMediaElementPrototypeSetMediaKeys,window.MediaKeys=Xe.originalWindowMediaKeys,window.MediaKeySystemAccess=Xe.originalWindowMediaKeySystemAccess,navigator.requestMediaKeySystemAccess=Xe.originalNavigatorRequestMediaKeySystemAccess,Xe.originalWindowMediaKeys=null,Xe.originalWindowMediaKeySystemAccess=null,Xe.originalHTMLMediaElementPrototypeSetMediaKeys=null,Xe.originalNavigatorRequestMediaKeySystemAccess=null,Xe.originalHTMLMediaElementPrototypeMediaKeys=null,window.shakaMediaKeysPolyfill="",se.clearDecodingConfigCache(),de.clearMediaKeySystemAccessMap())}static requestMediaKeySystemAccess(e,t){p.debug("PatchedMediaKeysApple.requestMediaKeySystemAccess"),v.assert(this==navigator,'bad "this" for requestMediaKeySystemAccess');try{let i=new Xe.MediaKeySystemAccess(e,t);return Promise.resolve(i)}catch(i){return Promise.reject(i)}}static setMediaKeys(e){p.debug("PatchedMediaKeysApple.setMediaKeys"),v.assert(this instanceof HTMLMediaElement,'bad "this" for setMediaKeys');let t=e,i=this.mediaKeys;return i&&i!=t&&(v.assert(i instanceof Xe.MediaKeys,"non-polyfill instance of oldMediaKeys"),i.setMedia(null)),delete this.mediaKeys,this.mediaKeys=e,t?(v.assert(t instanceof Xe.MediaKeys,"non-polyfill instance of newMediaKeys"),t.setMedia(this)):Promise.resolve()}static onWebkitNeedKey_(e){p.debug("PatchedMediaKeysApple.onWebkitNeedKey_",e);let t=this.mediaKeys;v.assert(t instanceof Xe.MediaKeys,"non-polyfill instance of newMediaKeys"),v.assert(e.initData!=null,"missing init data!");let i=D.toUint8(e.initData);if(D.toDataView(i).getUint32(0,!0)+4!=i.byteLength)throw new RangeError("Malformed FairPlay init data");let n=q.fromUTF16(i.subarray(4),!0),a=q.toUTF8(n),o=new Event("encrypted"),c=o;c.initDataType="skd",c.initData=D.toArrayBuffer(a),this.dispatchEvent(o)}};l(Xe,"apiName_","apple");var Wi=Xe;Wi.MediaKeySystemAccess=class{constructor(y,e){if(p.debug("PatchedMediaKeysApple.MediaKeySystemAccess"),this.keySystem=y,this.configuration_,y.startsWith("com.apple.fps"))for(let i of e){let r=this.checkConfig_(i);if(r){this.configuration_=r;return}}let t=new Error("Unsupported keySystem");throw t.name="NotSupportedError",t.code=DOMException.NOT_SUPPORTED_ERR,t}checkConfig_(y){if(y.persistentState=="required")return null;let e={audioCapabilities:[],videoCapabilities:[],persistentState:"optional",distinctiveIdentifier:"optional",initDataTypes:y.initDataTypes,sessionTypes:["temporary"],label:y.label},t=!1,i=!1;if(y.audioCapabilities){for(let r of y.audioCapabilities)if(r.contentType){t=!0;let s=r.contentType.split(";")[0];WebKitMediaKeys.isTypeSupported(this.keySystem,s)&&(e.audioCapabilities.push(r),i=!0)}}if(y.videoCapabilities){for(let r of y.videoCapabilities)if(r.contentType){t=!0;let s=r.contentType.split(";")[0];WebKitMediaKeys.isTypeSupported(this.keySystem,s)&&(e.videoCapabilities.push(r),i=!0)}}return t||(i=WebKitMediaKeys.isTypeSupported(this.keySystem,"video/mp4")),i?e:null}createMediaKeys(){p.debug("PatchedMediaKeysApple.MediaKeySystemAccess.createMediaKeys");let y=new Wi.MediaKeys(this.keySystem);return Promise.resolve(y)}getConfiguration(){return p.debug("PatchedMediaKeysApple.MediaKeySystemAccess.getConfiguration"),this.configuration_}};Wi.MediaKeys=class{constructor(y){p.debug("PatchedMediaKeysApple.MediaKeys"),this.nativeMediaKeys_=new WebKitMediaKeys(y),this.eventManager_=new ue}createSession(y){if(p.debug("PatchedMediaKeysApple.MediaKeys.createSession"),y=y||"temporary",y!="temporary")throw new TypeError("Session type "+y+" is unsupported on this platform.");return new Wi.MediaKeySession(this.nativeMediaKeys_,y)}setServerCertificate(y){return p.debug("PatchedMediaKeysApple.MediaKeys.setServerCertificate"),Promise.resolve(!1)}setMedia(y){if(this.eventManager_.removeAll(),!y)return Promise.resolve();this.eventManager_.listen(y,"webkitneedkey",Wi.onWebkitNeedKey_);try{return ui.waitForReadyState(y,HTMLMediaElement.HAVE_METADATA,this.eventManager_,()=>{y.webkitSetMediaKeys(this.nativeMediaKeys_)}),Promise.resolve()}catch(e){return Promise.reject(e)}}getStatusForPolicy(y){return Promise.resolve("usable")}};Wi.MediaKeySession=class extends Le{constructor(y,e){p.debug("PatchedMediaKeysApple.MediaKeySession"),super(),this.nativeMediaKeySession_=null,this.nativeMediaKeys_=y,this.generateRequestPromise_=null,this.updatePromise_=null,this.eventManager_=new ue,this.closed_=Promise.withResolvers(),this.sessionId="",this.expiration=NaN,this.keyStatuses=new us,this.onkeystatuseschange=null}get closed(){return this.closed_.promise}generateRequest(y,e){p.debug("PatchedMediaKeysApple.MediaKeySession.generateRequest"),this.generateRequestPromise_=Promise.withResolvers();try{let t=this.nativeMediaKeys_.createSession("video/mp4",D.toUint8(e));this.nativeMediaKeySession_=t,this.sessionId=t.sessionId||"",this.eventManager_.listen(this.nativeMediaKeySession_,"webkitkeymessage",(i=>this.onWebkitKeyMessage_(i))),this.eventManager_.listen(t,"webkitkeyadded",(i=>this.onWebkitKeyAdded_(i))),this.eventManager_.listen(t,"webkitkeyerror",(i=>this.onWebkitKeyError_(i))),this.updateKeyStatus_("status-pending")}catch(t){this.generateRequestPromise_.reject(t)}return this.generateRequestPromise_.promise}load(){return p.debug("PatchedMediaKeysApple.MediaKeySession.load"),Promise.reject(new Error("MediaKeySession.load not yet supported"))}update(y){p.debug("PatchedMediaKeysApple.MediaKeySession.update"),this.updatePromise_=Promise.withResolvers();try{this.nativeMediaKeySession_.update(D.toUint8(y))}catch(e){this.updatePromise_.reject(e)}return this.updatePromise_.promise}close(){p.debug("PatchedMediaKeysApple.MediaKeySession.close");try{this.nativeMediaKeySession_.close(),this.closed_.resolve(),this.eventManager_.removeAll()}catch(y){this.closed_.reject(y)}return this.closed}remove(){return p.debug("PatchedMediaKeysApple.MediaKeySession.remove"),Promise.reject(new Error("MediaKeySession.remove is only applicable for persistent licenses, which are not supported on this platform"))}onWebkitKeyMessage_(y){p.debug("PatchedMediaKeysApple.onWebkitKeyMessage_",y),v.assert(this.generateRequestPromise_,"generateRequestPromise_ should be set before now!"),this.generateRequestPromise_&&(this.generateRequestPromise_.resolve(),this.generateRequestPromise_=null);let e=this.keyStatuses.getStatus()==null,t=new Map().set("messageType",e?"license-request":"license-renewal").set("message",D.toArrayBuffer(y.message)),i=new U("message",t);this.dispatchEvent(i)}onWebkitKeyAdded_(y){p.debug("PatchedMediaKeysApple.onWebkitKeyAdded_",y),v.assert(!this.generateRequestPromise_,"Key added during generate!"),v.assert(this.updatePromise_,"updatePromise_ should be set before now!"),this.updatePromise_&&(this.updateKeyStatus_("usable"),this.updatePromise_.resolve(),this.updatePromise_=null)}onWebkitKeyError_(y){p.debug("PatchedMediaKeysApple.onWebkitKeyError_",y);let e=new Error("EME PatchedMediaKeysApple key error");if(e.errorCode=this.nativeMediaKeySession_.error,this.generateRequestPromise_!=null)this.generateRequestPromise_.reject(e),this.generateRequestPromise_=null;else if(this.updatePromise_!=null)this.updatePromise_.reject(e),this.updatePromise_=null;else switch(this.nativeMediaKeySession_.error.code){case WebKitMediaKeyError.MEDIA_KEYERR_OUTPUT:case WebKitMediaKeyError.MEDIA_KEYERR_HARDWARECHANGE:this.updateKeyStatus_("output-not-allowed");break;default:this.updateKeyStatus_("internal-error");break}}updateKeyStatus_(y){this.keyStatuses.setStatus(y);let e=new U("keystatuseschange");this.dispatchEvent(e),this.onkeystatuseschange&&this.onkeystatuseschange(e)}};Re.register(Wi.defaultInstall);/*! @license
984
+ * Shaka Player
985
+ * Copyright 2016 Google LLC
986
+ * SPDX-License-Identifier: Apache-2.0
987
+ */var $t=class $t{static install(){if(!(!window.HTMLVideoElement||navigator.requestMediaKeySystemAccess&&MediaKeySystemAccess.prototype.getConfiguration)){if(HTMLMediaElement.prototype.webkitGenerateKeyRequest)p.info("Using webkit-prefixed EME v0.1b"),$t.prefix_="webkit";else if(HTMLMediaElement.prototype.generateKeyRequest)p.info("Using nonprefixed EME v0.1b");else return;v.assert(HTMLMediaElement.prototype[$t.prefixApi_("generateKeyRequest")],"PatchedMediaKeysWebkit APIs not available!"),navigator.requestMediaKeySystemAccess=$t.requestMediaKeySystemAccess,delete HTMLMediaElement.prototype.mediaKeys,HTMLMediaElement.prototype.mediaKeys=null,HTMLMediaElement.prototype.setMediaKeys=$t.setMediaKeys,window.MediaKeys=$t.MediaKeys,window.MediaKeySystemAccess=$t.MediaKeySystemAccess,window.shakaMediaKeysPolyfill=$t.apiName_}}static prefixApi_(e){let t=$t.prefix_;return t?t+e.charAt(0).toUpperCase()+e.slice(1):e}static requestMediaKeySystemAccess(e,t){p.debug("PatchedMediaKeysWebkit.requestMediaKeySystemAccess"),v.assert(this==navigator,'bad "this" for requestMediaKeySystemAccess');try{let i=new $t.MediaKeySystemAccess(e,t);return Promise.resolve(i)}catch(i){return Promise.reject(i)}}static setMediaKeys(e){p.debug("PatchedMediaKeysWebkit.setMediaKeys"),v.assert(this instanceof HTMLMediaElement,'bad "this" for setMediaKeys');let t=e,i=this.mediaKeys;return i&&i!=t&&(v.assert(i instanceof $t.MediaKeys,"non-polyfill instance of oldMediaKeys"),i.setMedia(null)),delete this.mediaKeys,this.mediaKeys=e,t&&(v.assert(t instanceof $t.MediaKeys,"non-polyfill instance of newMediaKeys"),t.setMedia(this)),Promise.resolve()}static getVideoElement_(){let e=document.getElementsByTagName("video");return e.length?e[0]:document.createElement("video")}};l($t,"prefix_",""),l($t,"apiName_","webkit");var ai=$t;ai.MediaKeySystemAccess=class{constructor(y,e){p.debug("PatchedMediaKeysWebkit.MediaKeySystemAccess"),this.keySystem=y,this.internalKeySystem_=y,this.configuration_;let t=!1;y=="org.w3.clearkey"&&(this.internalKeySystem_="webkit-org.w3.clearkey",t=!1);let i=!1,r=ai.getVideoElement_();for(let a of e){let o={audioCapabilities:[],videoCapabilities:[],persistentState:"optional",distinctiveIdentifier:"optional",initDataTypes:a.initDataTypes,sessionTypes:["temporary"],label:a.label},c=!1;if(a.audioCapabilities){for(let d of a.audioCapabilities)if(d.contentType){c=!0;let u=d.contentType.split(";")[0];r.canPlayType(u,this.internalKeySystem_)&&(o.audioCapabilities.push(d),i=!0)}}if(a.videoCapabilities)for(let d of a.videoCapabilities)d.contentType&&(c=!0,r.canPlayType(d.contentType,this.internalKeySystem_)&&(o.videoCapabilities.push(d),i=!0));if(c||(i=r.canPlayType("video/mp4",this.internalKeySystem_)||r.canPlayType("video/webm",this.internalKeySystem_)),a.persistentState=="required"&&(t?(o.persistentState="required",o.sessionTypes=["persistent-license"]):i=!1),i){this.configuration_=o;return}}let s="Unsupported keySystem";(y=="org.w3.clearkey"||y=="com.widevine.alpha")&&(s="None of the requested configurations were supported.");let n=new Error(s);throw n.name="NotSupportedError",n.code=DOMException.NOT_SUPPORTED_ERR,n}createMediaKeys(){p.debug("PatchedMediaKeysWebkit.MediaKeySystemAccess.createMediaKeys");let y=new ai.MediaKeys(this.internalKeySystem_);return Promise.resolve(y)}getConfiguration(){return p.debug("PatchedMediaKeysWebkit.MediaKeySystemAccess.getConfiguration"),this.configuration_}};ai.MediaKeys=class{constructor(y){p.debug("PatchedMediaKeysWebkit.MediaKeys"),this.keySystem_=y,this.media_=null,this.eventManager_=new ue,this.newSessions_=[],this.sessionMap_=new Map}setMedia(y){this.media_=y,this.eventManager_.removeAll();let e=ai.prefix_;y&&(this.eventManager_.listen(y,e+"needkey",(t=>this.onWebkitNeedKey_(t))),this.eventManager_.listen(y,e+"keymessage",(t=>this.onWebkitKeyMessage_(t))),this.eventManager_.listen(y,e+"keyadded",(t=>this.onWebkitKeyAdded_(t))),this.eventManager_.listen(y,e+"keyerror",(t=>this.onWebkitKeyError_(t))))}createSession(y){if(p.debug("PatchedMediaKeysWebkit.MediaKeys.createSession"),y=y||"temporary",y!="temporary"&&y!="persistent-license")throw new TypeError("Session type "+y+" is unsupported on this platform.");let e=this.media_||document.createElement("video");e.src||(e.src="about:blank");let t=new ai.MediaKeySession(e,this.keySystem_,y);return this.newSessions_.push(t),t}setServerCertificate(y){return p.debug("PatchedMediaKeysWebkit.MediaKeys.setServerCertificate"),Promise.resolve(!1)}getStatusForPolicy(y){return Promise.resolve("usable")}onWebkitNeedKey_(y){p.debug("PatchedMediaKeysWebkit.onWebkitNeedKey_",y),v.assert(this.media_,"media_ not set in onWebkitNeedKey_");let e=new CustomEvent("encrypted"),t=e;t.initDataType="cenc",t.initData=D.toArrayBuffer(y.initData),this.media_.dispatchEvent(e)}onWebkitKeyMessage_(y){p.debug("PatchedMediaKeysWebkit.onWebkitKeyMessage_",y);let e=this.findSession_(y.sessionId);if(!e){p.error("Session not found",y.sessionId);return}let t=e.keyStatuses.getStatus()==null,i=new Map().set("messageType",t?"licenserequest":"licenserenewal").set("message",y.message),r=new U("message",i);e.generated(),e.dispatchEvent(r)}onWebkitKeyAdded_(y){p.debug("PatchedMediaKeysWebkit.onWebkitKeyAdded_",y);let e=this.findSession_(y.sessionId);v.assert(e,"unable to find session in onWebkitKeyAdded_"),e&&e.ready()}onWebkitKeyError_(y){p.debug("PatchedMediaKeysWebkit.onWebkitKeyError_",y);let e=this.findSession_(y.sessionId);v.assert(e,"unable to find session in onWebkitKeyError_"),e&&e.handleError(y)}findSession_(y){let e=this.sessionMap_.get(y);return e?(p.debug("PatchedMediaKeysWebkit.MediaKeys.findSession_",e),e):(e=this.newSessions_.shift(),e?(e.sessionId=y,this.sessionMap_.set(y,e),p.debug("PatchedMediaKeysWebkit.MediaKeys.findSession_",e),e):null)}};ai.MediaKeySession=class extends Le{constructor(y,e,t){p.debug("PatchedMediaKeysWebkit.MediaKeySession"),super(),this.media_=y,this.initialized_=!1,this.generatePromise_=null,this.updatePromise_=null,this.keySystem_=e,this.type_=t,this.closed_=Promise.withResolvers(),this.sessionId="",this.expiration=NaN,this.keyStatuses=new us,this.onkeystatuseschange=null}get closed(){return this.closed_.promise}generated(){p.debug("PatchedMediaKeysWebkit.MediaKeySession.generated"),this.generatePromise_&&(this.generatePromise_.resolve(),this.generatePromise_=null)}ready(){p.debug("PatchedMediaKeysWebkit.MediaKeySession.ready"),this.updateKeyStatus_("usable"),this.updatePromise_&&this.updatePromise_.resolve(),this.updatePromise_=null}handleError(y){p.debug("PatchedMediaKeysWebkit.MediaKeySession.handleError",y);let e=new Error("EME v0.1b key error"),t=y.errorCode;if(t.systemCode=y.systemCode,e.errorCode=t,!y.sessionId&&this.generatePromise_)y.systemCode==45&&(e.message="Unsupported session type."),this.generatePromise_.reject(e),this.generatePromise_=null;else if(y.sessionId&&this.updatePromise_)this.updatePromise_.reject(e),this.updatePromise_=null;else{let i=y.errorCode.code,r=y.systemCode;i==MediaKeyError.MEDIA_KEYERR_OUTPUT?this.updateKeyStatus_("output-restricted"):r==1?this.updateKeyStatus_("expired"):this.updateKeyStatus_("internal-error")}}generate_(y,e){if(this.initialized_){let r=new Error("The session is already initialized.");return Promise.reject(r)}this.initialized_=!0;let t;try{if(this.type_=="persistent-license")if(e)t=D.toUint8(q.toUTF8("LOAD_SESSION|"+e));else{v.assert(y,"expecting init data");let r=q.toUTF8("PERSISTENT|");t=ne.concat(r,y)}else v.assert(this.type_=="temporary","expected temporary session"),v.assert(!e,"unexpected offline session ID"),v.assert(y,"expecting init data"),t=D.toUint8(y);v.assert(t,"init data not set!")}catch(r){return Promise.reject(r)}v.assert(this.generatePromise_==null,"generatePromise_ should be null"),this.generatePromise_=Promise.withResolvers();let i=ai.prefixApi_("generateKeyRequest");try{this.media_[i](this.keySystem_,t)}catch(r){if(r.name!="InvalidStateError")return this.generatePromise_=null,Promise.reject(r);new ae(()=>{try{this.media_[i](this.keySystem_,t)}catch(n){this.generatePromise_.reject(n),this.generatePromise_=null}}).tickAfter(.01)}return this.generatePromise_.promise}update_(y,e){if(this.updatePromise_){this.updatePromise_.promise.then(()=>this.update_(y,e)).catch(()=>this.update_(y,e));return}this.updatePromise_=y;let t,i;if(this.keySystem_=="webkit-org.w3.clearkey"){let s=q.fromUTF8(e),n=JSON.parse(s);n.keys[0].kty!="oct"&&(this.updatePromise_.reject(new Error("Response is not a valid JSON Web Key Set.")),this.updatePromise_=null),t=ne.fromBase64(n.keys[0].k),i=ne.fromBase64(n.keys[0].kid)}else t=D.toUint8(e),i=null;let r=ai.prefixApi_("addKey");try{this.media_[r](this.keySystem_,t,i,this.sessionId)}catch(s){this.updatePromise_.reject(s),this.updatePromise_=null}}updateKeyStatus_(y){this.keyStatuses.setStatus(y);let e=new U("keystatuseschange");this.dispatchEvent(e),this.onkeystatuseschange&&this.onkeystatuseschange(e)}generateRequest(y,e){return p.debug("PatchedMediaKeysWebkit.MediaKeySession.generateRequest"),this.generate_(e,null)}load(y){return p.debug("PatchedMediaKeysWebkit.MediaKeySession.load"),this.type_=="persistent-license"?this.generate_(null,y):Promise.reject(new Error("Not a persistent session."))}update(y){p.debug("PatchedMediaKeysWebkit.MediaKeySession.update",y),v.assert(this.sessionId,"update without session ID");let e=Promise.withResolvers();return this.update_(e,y),e.promise}close(){if(p.debug("PatchedMediaKeysWebkit.MediaKeySession.close"),this.type_!="persistent-license"){if(!this.sessionId)return this.closed_.reject(new Error("The session is not callable.")),this.closed_.promise;let y=ai.prefixApi_("cancelKeyRequest");try{this.media_[y](this.keySystem_,this.sessionId)}catch(e){p.debug(`${y} exception`,e)}}return this.closed_.resolve(),this.closed_.promise}remove(){return p.debug("PatchedMediaKeysWebkit.MediaKeySession.remove"),this.type_!="persistent-license"?Promise.reject(new Error("Not a persistent session.")):this.close()}};Re.register(ai.install);/*! @license
988
+ * Shaka Player
989
+ * Copyright 2016 Google LLC
990
+ * SPDX-License-Identifier: Apache-2.0
991
+ */var oi=class oi{static install(){if(!window.HTMLVideoElement)return;let e=HTMLVideoElement.prototype;e.requestPictureInPicture&&document.exitPictureInPicture||e.webkitSupportsPresentationMode&&(p.debug("PiPWebkit.install"),document.pictureInPictureEnabled=!0,document.pictureInPictureElement=null,e.requestPictureInPicture=oi.requestPictureInPicture_,Object.defineProperty(e,"disablePictureInPicture",{get:oi.getDisablePictureInPicture_,set:oi.setDisablePictureInPicture_,enumerable:!0,configurable:!0}),document.exitPictureInPicture=oi.exitPictureInPicture_,document.addEventListener("webkitpresentationmodechanged",oi.proxyEvent_,!0))}static proxyEvent_(e){let t=e.target;if(t.webkitPresentationMode==oi.PIP_MODE_){document.pictureInPictureElement=t;let i=new Event("enterpictureinpicture");t.dispatchEvent(i)}else{document.pictureInPictureElement==t&&(document.pictureInPictureElement=null);let i=new Event("leavepictureinpicture");t.dispatchEvent(i)}}static requestPictureInPicture_(){if(this.webkitSupportsPresentationMode(oi.PIP_MODE_))return this.webkitSetPresentationMode(oi.PIP_MODE_),document.pictureInPictureElement=this,Promise.resolve();{let e=new Error("PiP not allowed by video element");return Promise.reject(e)}}static exitPictureInPicture_(){let e=document.pictureInPictureElement;if(e)return e.webkitSetPresentationMode(oi.INLINE_MODE_),document.pictureInPictureElement=null,Promise.resolve();{let t=new Error("No picture in picture element found");return Promise.reject(t)}}static getDisablePictureInPicture_(){return this.hasAttribute("disablePictureInPicture")?!0:!this.webkitSupportsPresentationMode(oi.PIP_MODE_)}static setDisablePictureInPicture_(e){e?this.setAttribute("disablePictureInPicture",""):this.removeAttribute("disablePictureInPicture")}};l(oi,"PIP_MODE_","picture-in-picture"),l(oi,"INLINE_MODE_","inline");var Ea=oi;Re.register(Ea.install);/*! @license
992
+ * Shaka Player
993
+ * Copyright 2016 Google LLC
994
+ * SPDX-License-Identifier: Apache-2.0
995
+ */var Aa=class y{static install(){if(p.debug("randomUUID.install"),!window.crypto){p.debug("window.crypto must be available to install randomUUID polyfill.");return}if("randomUUID"in window.crypto){p.debug("RandomUUID: Native window.crypto.randomUUID() support found.");return}window.crypto.randomUUID=y.randomUUID_}static randomUUID_(){let e=URL.createObjectURL(new Blob),t=e.toString();return URL.revokeObjectURL(e),t.substr(t.lastIndexOf("/")+1)}};Re.register(Aa.install);/*! @license
996
+ * Shaka Player
997
+ * Copyright 2016 Google LLC
998
+ * SPDX-License-Identifier: Apache-2.0
999
+ */var Ia=class y{static install(){p.debug("Symbol.install");let e=Symbol.prototype;"description"in e||Object.defineProperty(e,"description",{get:y.getSymbolDescription_})}static getSymbolDescription_(){let e=/\((.*)\)/.exec(this.toString());return e?e[1]:void 0}};Re.register(Ia.install);/*! @license
1000
+ * Shaka Player
1001
+ * Copyright 2016 Google LLC
1002
+ * SPDX-License-Identifier: Apache-2.0
1003
+ */var Ca=class{static install(){var t,i,r,s,n,a;let e=[Uint8Array,Uint8ClampedArray,Uint16Array,Uint32Array,Int8Array,Int16Array,Int32Array,Float32Array,Float64Array];for(let o of e)(i=(t=o.prototype).indexOf)!=null||(t.indexOf=Array.prototype.indexOf),(s=(r=o.prototype).lastIndexOf)!=null||(r.lastIndexOf=Array.prototype.lastIndexOf),(a=(n=o.prototype).includes)!=null||(n.includes=Array.prototype.includes)}};Re.register(Ca.install);/*! @license
1004
+ * Shaka Player
1005
+ * Copyright 2016 Google LLC
1006
+ * SPDX-License-Identifier: Apache-2.0
1007
+ */var Kr=class Kr{static install(){let e=!1;if(window.URLSearchParams||(window.URLSearchParams=Kr.URLSearchParams_,e=!0),window.URL&&window.URL.prototype&&!("searchParams"in window.URL.prototype)){let t=window.URL.prototype;Object.defineProperty(t,"searchParams",{get:Kr.getSearchParams_,enumerable:!0,configurable:!0}),e=!0}e&&p.debug("UrlSearchParams.install")}static getSearchParams_(){let e=this,t=Kr.searchParamsMap_.get(e);if(!t){t=new window.URLSearchParams(e.search);let i=()=>{let a=t.toString();e.search=a?"?"+a:""},r=t.append;t.append=function(a,o){r.call(this,a,o),i()};let s=t.delete;t.delete=function(a){s.call(this,a),i()};let n=t.set;t.set=function(a,o){n.call(this,a,o),i()},Kr.searchParamsMap_.set(e,t)}return t}};l(Kr,"searchParamsMap_",new WeakMap);var js=Kr;js.URLSearchParams_=class{constructor(y){if(this.params_=[],typeof y=="string"){if(y.startsWith("?")&&(y=y.substring(1)),y){let e=y.split("&");for(let t of e){let i=t.split("="),r=decodeURIComponent(i[0].replace(/\+/g," ")),s=i.length>1?decodeURIComponent(i[1].replace(/\+/g," ")):"";this.append(r,s)}}}else if(Array.isArray(y))for(let e of y)this.append(e[0],e[1]);else if(y)for(let e in y)this.append(e,y[e])}append(y,e){this.params_.push([String(y),String(e)])}delete(y){let e=String(y);this.params_=this.params_.filter(t=>t[0]!==e)}get(y){let e=String(y);for(let t of this.params_)if(t[0]===e)return t[1];return null}getAll(y){let e=String(y);return this.params_.filter(t=>t[0]===e).map(t=>t[1])}has(y){let e=String(y);return this.params_.some(t=>t[0]===e)}set(y,e){let t=String(y),i=String(e),r=!1;for(let s=0;s<this.params_.length;s++)this.params_[s][0]===t&&(r?(this.params_.splice(s,1),s--):(this.params_[s][1]=i,r=!0));r||this.append(t,i)}toString(){return this.params_.map(y=>encodeURIComponent(y[0]).replace(/%20/g,"+")+"="+encodeURIComponent(y[1]).replace(/%20/g,"+")).join("&")}entries(){let y=0,e=this.params_.map(i=>[i[0],i[1]]),t={next:()=>y<e.length?{value:e[y++],done:!1}:{value:void 0,done:!0}};return t[Symbol.iterator]=()=>t,t}keys(){let y=0,e=this.params_,t={next:()=>y<e.length?{value:e[y++][0],done:!1}:{value:void 0,done:!0}};return t[Symbol.iterator]=()=>t,t}values(){let y=0,e=this.params_,t={next:()=>y<e.length?{value:e[y++][1],done:!1}:{value:void 0,done:!0}};return t[Symbol.iterator]=()=>t,t}forEach(y){for(let e of this.params_)y(e[1],e[0],this)}[Symbol.iterator](){return this.entries()}};Re.register(js.install);/*! @license
1008
+ * Shaka Player
1009
+ * Copyright 2016 Google LLC
1010
+ * SPDX-License-Identifier: Apache-2.0
1011
+ */var xa=class y{static install(){if(window.VTTCue){p.info("Using native VTTCue.");return}if(!window.TextTrackCue){p.error("VTTCue not available.");return}let e=null,t=TextTrackCue.length;if(t==3?(p.info("Using VTTCue polyfill from 3 argument TextTrackCue."),e=y.from3ArgsTextTrackCue_):t==6?(p.info("Using VTTCue polyfill from 6 argument TextTrackCue."),e=y.from6ArgsTextTrackCue_):y.canUse3ArgsTextTrackCue_()&&(p.info("Using VTTCue polyfill from 3 argument TextTrackCue."),e=y.from3ArgsTextTrackCue_),!e){p.error("No recognized signature for TextTrackCue found!");return}window.VTTCue=function(i,r,s){return e(i,r,s)}}static from3ArgsTextTrackCue_(e,t,i){return new window.TextTrackCue(e,t,i)}static from6ArgsTextTrackCue_(e,t,i){let r=e+"-"+t+"-"+i;return new window.TextTrackCue(r,e,t,i)}static canUse3ArgsTextTrackCue_(){try{return!!y.from3ArgsTextTrackCue_(1,2,"")}catch(e){return!1}}};Re.register(xa.install);/*! @license
1012
+ * Shaka Player
1013
+ * Copyright 2016 Google LLC
1014
+ * SPDX-License-Identifier: Apache-2.0
1015
+ */var ir=class ir{static install(){if(!window.HTMLVideoElement)return;let e=HTMLVideoElement.prototype;e.requestVideoFrameCallback||window.requestAnimationFrame&&e.getVideoPlaybackQuality&&(e.requestVideoFrameCallback=ir.requestVideoFrameCallback_,e.cancelVideoFrameCallback=ir.cancelVideoFrameCallback_)}static getData_(e){let t=ir.callbackMap_.get(e);return t||(t={nextHandle:1,callbackHandlesToRafIds:new Map,presentedFrames:0},ir.callbackMap_.set(e,t)),t}static requestVideoFrameCallback_(e){let t=this,i=ir.getData_(t),r=i.nextHandle++,s=a=>{if(!i.callbackHandlesToRafIds.has(r))return;let c=t.getVideoPlaybackQuality().totalVideoFrames||0;if(c!==i.presentedFrames){i.presentedFrames=c;let u={presentationTime:a,expectedDisplayTime:a,mediaTime:t.currentTime,presentedFrames:c,width:t.videoWidth,height:t.videoHeight,processingDuration:0};i.callbackHandlesToRafIds.delete(r),e(a,u);return}let d=window.requestAnimationFrame(s);i.callbackHandlesToRafIds.set(r,d)},n=window.requestAnimationFrame(s);return i.callbackHandlesToRafIds.set(r,n),r}static cancelVideoFrameCallback_(e){let t=this,i=ir.callbackMap_.get(t);if(!i)return;let r=i.callbackHandlesToRafIds.get(e);r!=null&&(window.cancelAnimationFrame(r),i.callbackHandlesToRafIds.delete(e))}};l(ir,"callbackMap_",new WeakMap);var wa=ir;Re.register(wa.install,-2);/*! @license
1016
+ * Shaka Player
1017
+ * Copyright 2016 Google LLC
1018
+ * SPDX-License-Identifier: Apache-2.0
1019
+ */var Ma=class{static install(){if(p.debug("VideoPlayPromise.install"),window.HTMLMediaElement){let e=HTMLMediaElement.prototype.play;HTMLMediaElement.prototype.play=function(){let t=e.apply(this);return t&&t.catch(()=>{}),t}}}};Re.register(Ma.install);/*! @license
1020
+ * Shaka Player
1021
+ * Copyright 2016 Google LLC
1022
+ * SPDX-License-Identifier: Apache-2.0
1023
+ */var Ra=class y{static install(){if(!window.HTMLVideoElement)return;let e=HTMLVideoElement.prototype;e.getVideoPlaybackQuality||("webkitDroppedFrameCount"in e||typeof Ge.anyMediaElement().webkitDroppedFrameCount=="number")&&(e.getVideoPlaybackQuality=y.webkit_)}static webkit_(){return{droppedVideoFrames:this.webkitDroppedFrameCount,totalVideoFrames:this.webkitDecodedFrameCount,corruptedVideoFrames:0,creationTime:NaN,totalFrameDelay:0}}};Re.register(Ra.install);/*! @license
1024
+ * Shaka Player
1025
+ * Copyright 2016 Google LLC
1026
+ * SPDX-License-Identifier: Apache-2.0
1027
+ */var Ae=class Ae{constructor(){l(this,"manifestType_");this.manifestType_=me.UNKNOWN}parseInit(e){v.assert(!1,"TTML does not have init segments")}setManifestType(e){this.manifestType_=e}parseMedia(e,t,i,r){let s=Ae.parameterNs_,n=Ae.styleNs_,a=q.fromUTF8(e),o=[];if(a=="")return o;let c=I.parseXmlString(a,"tt",!0);if(!c)throw new h(h.Severity.CRITICAL,h.Category.TEXT,h.Code.INVALID_XML,"Failed to parse TTML.");let d=I.getElementsByTagName(c,"body")[0];if(!d)return[];let u=I.getAttributeNSList(c,s,"frameRate"),m=I.getAttributeNSList(c,s,"subFrameRate"),f=I.getAttributeNSList(c,s,"frameRateMultiplier"),g=I.getAttributeNSList(c,s,"tickRate"),_=I.getAttributeNSList(c,s,"cellResolution"),T=c.attributes["xml:space"]||"default",S=I.getAttributeNSList(c,n,"extent");if(T!="default"&&T!="preserve")throw new h(h.Severity.CRITICAL,h.Category.TEXT,h.Code.INVALID_XML,"Invalid xml:space value: "+T);let b=T=="default",E=new Ae.RateInfo_(u,m,f,g),C=this.getCellResolution_(_),A=I.getElementsByTagName(c,"metadata")[0],w=(A?A.children:[]).filter(V=>V!=`
1028
+ `),M=I.getElementsByTagName(c,"style"),x=I.getElementsByTagName(c,"region"),k=[];for(let V of x){let ee=this.parseCueRegion_(V,M,S);ee&&k.push(ee)}if(I.findChildren(d,"p").length)throw new h(h.Severity.CRITICAL,h.Category.TEXT,h.Code.INVALID_TEXT_CUE,"<p> can only be inside <div> in TTML");for(let V of I.findChildren(d,"div"))if(I.findChildren(V,"span").length)throw new h(h.Severity.CRITICAL,h.Category.TEXT,h.Code.INVALID_TEXT_CUE,"<span> can only be inside <p> in TTML");let L=this.parseCue_(d,t,E,w,M,x,k,b,C,null,!1,i,r);return L&&(L.backgroundColor||(L.backgroundColor="transparent"),o.push(L)),o}parseCue_(e,t,i,r,s,n,a,o,c,d,u,m,f){let g,_=d;if(I.isText(e)){if(!u)return null;g={tagName:"span",children:[I.getTextContents(e)],attributes:{},parent:null}}else g=e;v.assert(g,"cueElement should be non-null!");let T=null;for(let W of Ae.smpteNsList_)if(T=this.getElementsFromCollection_(g,"backgroundImage",r,"#",W)[0],T)break;let S=null,b=I.getAttributeNSList(g,Ae.smpteNsList_,"backgroundImage");if(b&&/^(urn:)(mpeg:[a-z0-9][a-z0-9-]{0,31}:)(subs:)([0-9]+)$/.test(b)){let W=parseInt(b.split(":").pop(),10)-1;if(W>=f.length)return null;S=f[W]}else if(m&&b&&!b.startsWith("#")){let W=fe.resolve(m,b);W&&(S=W)}(e.tagName=="p"||T||S)&&(u=!0);let C=u,w=(g.attributes["xml:space"]||(o?"default":"preserve"))=="default",M=g.children.every(I.isText),x=[];if(!M)for(let W of g.children){let z=this.parseCue_(W,t,i,r,s,n,a,w,c,g,u,m,f);z&&x.push(z)}let k=d!=null,L=I.getTextContents(g),V=g.children.length&&L&&/\S/.test(L),ee=g.attributes.begin||g.attributes.end||g.attributes.dur;if(!ee&&!V&&g.tagName!="br"&&x.length==0)if(k){if(w)return null}else return null;let{start:oe,end:le}=this.parseTime_(g,i);for(;_&&I.isNode(_)&&_.tagName!="tt";)({start:oe,end:le}=this.resolveTime_(_,i,oe,le)),_=_.parent;if(oe==null&&(oe=0),oe+=t.periodStart,le==null?le=1/0:le+=t.periodStart,this.manifestType_!==me.HLS&&(oe=Math.max(oe,t.segmentStart),le=Math.min(le,t.segmentEnd)),!ee&&x.length>0){oe=1/0,le=0;for(let W of x)oe=Math.min(oe,W.startTime),le=Math.max(le,W.endTime)}if(g.tagName=="br"){let W=new B(oe,le,"");return W.lineBreak=!0,W}let H="";M&&(H=q.htmlUnescape(I.getTextContents(g)||""),w&&(H=H.replace(/\s+/g," ")));let J=new B(oe,le,H);J.nestedCues=x,u||(J.isContainer=!0),c&&(J.cellResolution=c);let Z=this.getElementsFromCollection_(g,"region",n,"")[0];if(g.attributes.region&&Z&&Z.attributes["xml:id"]){let W=Z.attributes["xml:id"];J.region=a.filter(z=>z.id==W)[0]}let ce=Z;return d&&k&&!g.attributes.region&&!g.attributes.style&&(ce=this.getElementsFromCollection_(d,"region",n,"")[0]),this.addStyle_(J,g,ce,T,S,s,C,x.length==0),J}parseCueRegion_(e,t,i){let r=new He,s=e.attributes["xml:id"];if(!s)return p.warning("TtmlTextParser parser encountered a region with no id. Region will be ignored."),null;r.id=s;let n=null;i&&(n=Ae.percentValues_.exec(i)||Ae.pixelValues_.exec(i));let a=n?Number(n[1]):null,o=n?Number(n[2]):null,c=null,d=null,u=this.getStyleAttributeFromRegion_(e,t,"extent");u&&(d=Ae.percentValues_.exec(u),c=d||Ae.pixelValues_.exec(u),c!=null&&(r.width=Number(c[1]),r.height=Number(c[2]),d||(a!=null&&(r.width=r.width*100/a),o!=null&&(r.height=r.height*100/o)),r.widthUnits=d||a!=null?He.units.PERCENTAGE:He.units.PX,r.heightUnits=d||o!=null?He.units.PERCENTAGE:He.units.PX));let m=this.getStyleAttributeFromRegion_(e,t,"origin");return m&&(d=Ae.percentValues_.exec(m),c=d||Ae.pixelValues_.exec(m),c!=null&&(r.viewportAnchorX=Number(c[1]),r.viewportAnchorY=Number(c[2]),d?u||(r.width=100-r.viewportAnchorX,r.widthUnits=He.units.PERCENTAGE,r.height=100-r.viewportAnchorY,r.heightUnits=He.units.PERCENTAGE):(o!=null&&(r.viewportAnchorY=r.viewportAnchorY*100/o),a!=null&&(r.viewportAnchorX=r.viewportAnchorX*100/a)),r.viewportAnchorUnits=d||a!=null?He.units.PERCENTAGE:He.units.PX)),r}convertTTMLrgbaToHTMLrgba_(e){let t=e.match(/rgba\(([^)]+)\)/);if(t){let i=t[1].split(",");if(i.length==4)return i[3]=String(Number(i[3])/255),"rgba("+i.join(",")+")"}return e}addStyle_(e,t,i,r,s,n,a,o){let c=a||o;this.getStyleAttribute_(t,i,n,"direction",c)=="rtl"&&(e.direction=B.direction.HORIZONTAL_RIGHT_TO_LEFT);let u=this.getStyleAttribute_(t,i,n,"writingMode",c);u=="tb"||u=="tblr"?e.writingMode=B.writingMode.VERTICAL_LEFT_TO_RIGHT:u=="tbrl"?e.writingMode=B.writingMode.VERTICAL_RIGHT_TO_LEFT:u=="rltb"||u=="rl"?e.direction=B.direction.HORIZONTAL_RIGHT_TO_LEFT:u&&(e.direction=B.direction.HORIZONTAL_LEFT_TO_RIGHT);let m=this.getStyleAttribute_(t,i,n,"textAlign",!0);m?(e.positionAlign=Ae.textAlignToPositionAlign_.get(m),e.lineAlign=Ae.textAlignToLineAlign_.get(m),v.assert(m.toUpperCase()in B.textAlign,m.toUpperCase()+" Should be in Cue.textAlign values!"),e.textAlign=B.textAlign[m.toUpperCase()]):e.textAlign=B.textAlign.CENTER;let f=this.getStyleAttribute_(t,i,n,"displayAlign",!0);f&&(v.assert(f.toUpperCase()in B.displayAlign,f.toUpperCase()+" Should be in Cue.displayAlign values!"),e.displayAlign=B.displayAlign[f.toUpperCase()]);let g=this.getStyleAttribute_(t,i,n,"color",c);g&&(e.color=this.convertTTMLrgbaToHTMLrgba_(g));let _=this.getStyleAttribute_(t,i,n,"backgroundColor",c);_&&(e.backgroundColor=this.convertTTMLrgbaToHTMLrgba_(_));let T=this.getStyleAttribute_(t,i,n,"border",c);T&&(e.border=T);let S=this.getStyleAttribute_(t,i,n,"fontFamily",c);if(S)switch(S){case"monospaceSerif":e.fontFamily="Courier New,Liberation Mono,Courier,monospace";break;case"proportionalSansSerif":e.fontFamily="Arial,Helvetica,Liberation Sans,sans-serif";break;case"sansSerif":e.fontFamily="sans-serif";break;case"monospaceSansSerif":e.fontFamily="Consolas,monospace";break;case"proportionalSerif":e.fontFamily="serif";break;default:e.fontFamily=S.split(",").filter(H=>H!="default").join(",");break}let b=this.getStyleAttribute_(t,i,n,"fontWeight",c);b&&b=="bold"&&(e.fontWeight=B.fontWeight.BOLD);let E=this.getStyleAttribute_(t,i,n,"wrapOption",c);E&&E=="noWrap"?e.wrapLine=!1:e.wrapLine=!0;let C=this.getStyleAttribute_(t,i,n,"lineHeight",c);C&&C.match(Ae.unitValues_)&&(e.lineHeight=C);let A=this.getStyleAttribute_(t,i,n,"fontSize",c);A&&(A.match(Ae.unitValues_)||A.match(Ae.percentValue_))&&(e.fontSize=A);let w=this.getStyleAttribute_(t,i,n,"fontStyle",c);if(w&&(v.assert(w.toUpperCase()in B.fontStyle,w.toUpperCase()+" Should be in Cue.fontStyle values!"),e.fontStyle=B.fontStyle[w.toUpperCase()]),r){let H=r.attributes.imageType||r.attributes.imagetype,J=r.attributes.encoding,Z=I.getTextContents(r).trim();H=="PNG"&&J=="Base64"&&Z&&(e.backgroundImage="data:image/png;base64,"+Z)}else s&&(e.backgroundImage=s);let M=this.getStyleAttribute_(t,i,n,"textOutline",c);if(M){let H=M.split(" ");H[0].match(Ae.unitValues_)?e.textStrokeColor=e.color:(e.textStrokeColor=this.convertTTMLrgbaToHTMLrgba_(H[0]),H.shift()),H[0]&&H[0].match(Ae.unitValues_)?e.textStrokeWidth=H[0]:e.textStrokeColor=""}let x=this.getStyleAttribute_(t,i,n,"letterSpacing",c);x&&x.match(Ae.unitValues_)&&(e.letterSpacing=x);let k=this.getStyleAttribute_(t,i,n,"linePadding",c);k&&k.match(Ae.unitValues_)&&(e.linePadding=k);let L=this.getStyleAttribute_(t,i,n,"opacity",c);L&&(e.opacity=parseFloat(L));let V=this.getStyleAttributeFromRegion_(i,n,"textDecoration");V&&this.addTextDecoration_(e,V);let ee=this.getStyleAttributeFromElement_(t,n,"textDecoration");ee&&this.addTextDecoration_(e,ee);let oe=this.getStyleAttribute_(t,i,n,"textCombine",c);switch(oe&&(e.textCombineUpright=oe),this.getStyleAttribute_(t,i,n,"ruby",c)){case"container":e.rubyTag="ruby";break;case"text":e.rubyTag="rt";break}}addTextDecoration_(e,t){let i=(r,s)=>{let n=e.textDecoration.includes(r);s&&!n?e.textDecoration.push(r):!s&&n&&ye.remove(e.textDecoration,r)};for(let r of t.split(" "))switch(r){case"underline":i(B.textDecoration.UNDERLINE,!0);break;case"noUnderline":i(B.textDecoration.UNDERLINE,!1);break;case"lineThrough":i(B.textDecoration.LINE_THROUGH,!0);break;case"noLineThrough":i(B.textDecoration.LINE_THROUGH,!1);break;case"overline":i(B.textDecoration.OVERLINE,!0);break;case"noOverline":i(B.textDecoration.OVERLINE,!1);break}}getStyleAttribute_(e,t,i,r,s=!0){let n=this.getStyleAttributeFromElement_(e,i,r);return n||(s?this.getStyleAttributeFromRegion_(t,i,r):null)}getStyleAttributeFromRegion_(e,t,i){let r=Ae.styleNs_;if(!e)return null;let s=I.getAttributeNSList(e,r,i);return s||this.getInheritedStyleAttribute_(e,t,i)}getStyleAttributeFromElement_(e,t,i){let r=Ae.styleNs_,s=I.getAttributeNSList(e,r,i);return s||this.getInheritedStyleAttribute_(e,t,i)}getInheritedStyleAttribute_(e,t,i){let r=Ae.styleNs_,s=Ae.styleEbuttsNs_,n=this.getElementsFromCollection_(e,"style",t,""),a=null;for(let o=0;o<n.length;o++){let c=I.getAttributeNS(n[o],s,i);c||(c=I.getAttributeNSList(n[o],r,i)),c||(c=this.getStyleAttributeFromElement_(n[o],t,i)),c&&(a=c)}return a}getElementsFromCollection_(e,t,i,r,s){let n=[];if(!e||i.length<1)return n;let a=this.getInheritedAttribute_(e,t,s);if(a){let o=a.split(" ");for(let c of o)for(let d of i)if(r+d.attributes["xml:id"]==c){n.push(d);break}}return n}getInheritedAttribute_(e,t,i){let r=null;for(;!r&&(r=i?I.getAttributeNS(e,i,t):e.attributes[t],!r);){let s=e.parent;if(s)e=s;else break}return r}resolveTime_(e,t,i,r){let s=this.parseTime_(e,t);return i==null?i=s.start:s.start!=null&&(i+=s.start),r==null?r=s.end:s.start!=null&&(r+=s.start),{start:i,end:r}}parseTime_(e,t){let i=this.parseTimeAttribute_(e.attributes.begin,t),r=this.parseTimeAttribute_(e.attributes.end,t),s=this.parseTimeAttribute_(e.attributes.dur,t);return r==null&&s!=null&&(r=i+s),{start:i,end:r}}parseTimeAttribute_(e,t){let i=null;if(Ae.timeColonFormatFrames_.test(e))i=this.parseColonTimeWithFrames_(t,e);else if(Ae.timeColonFormat_.test(e))i=this.parseTimeFromRegex_(Ae.timeColonFormat_,e);else if(Ae.timeColonFormatMilliseconds_.test(e))i=this.parseTimeFromRegex_(Ae.timeColonFormatMilliseconds_,e);else if(Ae.timeFramesFormat_.test(e))i=this.parseFramesTime_(t,e);else if(Ae.timeTickFormat_.test(e))i=this.parseTickTime_(t,e);else if(Ae.timeHMSFormat_.test(e))i=this.parseTimeFromRegex_(Ae.timeHMSFormat_,e);else if(e)throw new h(h.Severity.CRITICAL,h.Category.TEXT,h.Code.INVALID_TEXT_CUE,"Could not parse cue time range in TTML");return i}parseFramesTime_(e,t){let i=Ae.timeFramesFormat_.exec(t);return Number(i[1])/e.frameRate}parseTickTime_(e,t){let i=Ae.timeTickFormat_.exec(t);return Number(i[1])/e.tickRate}parseColonTimeWithFrames_(e,t){let i=Ae.timeColonFormatFrames_.exec(t),r=Number(i[1]),s=Number(i[2]),n=Number(i[3]),a=Number(i[4]),o=Number(i[5])||0;return a+=o/e.subFrameRate,n+=a/e.frameRate,n+s*60+r*3600}parseTimeFromRegex_(e,t){let i=e.exec(t);if(i==null||i[0]=="")return null;let r=Number(i[1])||0,s=Number(i[2])||0,n=Number(i[3])||0;return(Number(i[4])||0)/1e3+n+s*60+r*3600}getCellResolution_(e){if(!e)return null;let t=/^(\d+) (\d+)$/.exec(e);if(!t)return null;let i=parseInt(t[1],10),r=parseInt(t[2],10);return{columns:i,rows:r}}};l(Ae,"percentValues_",/^(\d{1,2}(?:\.\d+)?|100(?:\.0+)?)% (\d{1,2}(?:\.\d+)?|100(?:\.0+)?)%$/),l(Ae,"percentValue_",/^(\d{1,4}(?:\.\d+)?|100)%$/),l(Ae,"unitValues_",/^(\d+px|\d+em|\d*\.?\d+c)$/),l(Ae,"pixelValues_",/^(\d+)px (\d+)px$/),l(Ae,"timeColonFormatFrames_",/^(\d{2,}):(\d{2}):(\d{2}):(\d{2})\.?(\d+)?$/),l(Ae,"timeColonFormat_",/^(?:(\d{2,}):)?(\d{2}):(\d{2})$/),l(Ae,"timeColonFormatMilliseconds_",/^(?:(\d{2,}):)?(\d{2}):(\d{2}\.\d+)$/),l(Ae,"timeFramesFormat_",/^(\d*(?:\.\d*)?)f$/),l(Ae,"timeTickFormat_",/^(\d*(?:\.\d*)?)t$/),l(Ae,"parameterNs_",["http://www.w3.org/ns/ttml#parameter","http://www.w3.org/2006/10/ttaf1#parameter"]),l(Ae,"styleNs_",["http://www.w3.org/ns/ttml#styling","http://www.w3.org/2006/10/ttaf1#styling"]),l(Ae,"styleEbuttsNs_","urn:ebu:tt:style"),l(Ae,"smpteNsList_",["http://www.smpte-ra.org/schemas/2052-1/2010/smpte-tt","http://www.smpte-ra.org/schemas/2052-1/2013/smpte-tt"]);var zi=Ae;zi.RateInfo_=class{constructor(y,e,t,i){if(this.frameRate=Number(y)||30,this.subFrameRate=Number(e)||1,this.tickRate=Number(i),this.tickRate==0&&(y?this.tickRate=this.frameRate*this.subFrameRate:this.tickRate=1),t){let r=/^(\d+) (\d+)$/g.exec(t);if(r){let s=Number(r[1]),n=Number(r[2]),a=s/n;this.frameRate*=a}}}};zi.timeHMSFormat_=new RegExp(["^(?:(\\d*(?:\\.\\d*)?)h)?","(?:(\\d*(?:\\.\\d*)?)m)?","(?:(\\d*(?:\\.\\d*)?)s)?","(?:(\\d*(?:\\.\\d*)?)ms)?$"].join(""));zi.textAlignToLineAlign_=new Map().set("left",B.lineAlign.START).set("center",B.lineAlign.CENTER).set("right",B.lineAlign.END).set("start",B.lineAlign.START).set("end",B.lineAlign.END);zi.textAlignToPositionAlign_=new Map().set("left",B.positionAlign.LEFT).set("center",B.positionAlign.CENTER).set("right",B.positionAlign.RIGHT).set("start",B.positionAlign.LEFT).set("end",B.positionAlign.RIGHT);Ue.registerParser("application/ttml+xml",()=>new zi);/*! @license
1029
+ * Shaka Player
1030
+ * Copyright 2016 Google LLC
1031
+ * SPDX-License-Identifier: Apache-2.0
1032
+ */var mi=class{constructor(){l(this,"parser_");this.parser_=new zi}parseInit(e){let t=!1;if(new F().boxes(F.SAMPLE_TABLE_PATH,F.children).fullBox("stsd",F.sampleDescription).box("stpp",i=>{t=!0,i.parser.stop()}).parse(e),!t)throw new h(h.Severity.CRITICAL,h.Category.TEXT,h.Code.INVALID_MP4_TTML)}setManifestType(e){this.parser_.setManifestType(e)}parseMedia(e,t,i,r){let s=[],n=null,a=[],o=new Map,c=[];if(new F().boxes(F.FRAGMENT_PATH,F.children).fullBox("tfhd",f=>{v.assert(f.flags!=null,"A TFHD box should have a valid flags value"),n=pe.parseTFHD(f.reader,f.flags).defaultSampleSize}).fullBox("trun",f=>{v.assert(f.version!=null,"A TRUN box should have a valid version value"),v.assert(f.flags!=null,"A TRUN box should have a valid flags value");let g=pe.parseTRUN(f.reader,f.version,f.flags);for(let _ of g.sampleData){let T=_.sampleSize||n||0;c.push(T)}}).fullBox("subs",f=>{let g=f.reader,_=g.readUint32(),T=-1;for(let S=0;S<_;S++){let b=g.readUint32();T+=b;let E=g.readUint16(),C=[];for(let A=0;A<E;A++)f.version==1?C.push(g.readUint32()):C.push(g.readUint16()),g.readUint8(),g.readUint8(),g.readUint32();o.set(T,C)}}).box("mdat",F.allData(f=>{a.push(f)},!1)).parse(e,!1),a.length==0)throw new h(h.Severity.CRITICAL,h.Category.TEXT,h.Code.INVALID_MP4_TTML);let u=ne.concat(...a),m=0;for(let f=0;f<c.length;f++){let g=D.toUint8(u,m,c[f]);m+=c[f];let _=o.get(f),T=[];if(_&&_.length){let S=D.toUint8(g,0,_[0]),b=_[0];for(let E=1;E<_.length;E++){let C=D.toUint8(g,b,_[E]),A=ne.toStandardBase64(C);T.push("data:image/png;base64,"+A),b+=_[E]}g=S}s=s.concat(this.parser_.parseMedia(g,t,i,T))}return s}};Ue.registerParser('application/mp4; codecs="stpp"',()=>new mi);Ue.registerParser('application/mp4; codecs="stpp.ttml"',()=>new mi);Ue.registerParser('application/mp4; codecs="stpp.ttml.im1i"',()=>new mi);Ue.registerParser('application/mp4; codecs="stpp.ttml.im1t"',()=>new mi);Ue.registerParser('application/mp4; codecs="stpp.ttml.im2i"',()=>new mi);Ue.registerParser('application/mp4; codecs="stpp.ttml.im2t"',()=>new mi);Ue.registerParser('application/mp4; codecs="stpp.ttml.etd1"',()=>new mi);Ue.registerParser('application/mp4; codecs="stpp.ttml.etd1|im1t"',()=>new mi);Ue.registerParser('application/mp4; codecs="stpp.ttml.im1t|etd1"',()=>new mi);Ue.registerParser('application/mp4; codecs="stpp.TTML.im1t"',()=>new mi);/*! @license
1033
+ * Shaka Player
1034
+ * Copyright 2016 Google LLC
1035
+ * SPDX-License-Identifier: Apache-2.0
1036
+ */var We=class We{constructor(){l(this,"manifestType_");this.manifestType_=me.UNKNOWN}parseInit(e){v.assert(!1,"VTT does not have init segments")}setManifestType(e){this.manifestType_=e}parseMedia(e,t,i,r){let s=q.fromUTF8(e);s=s.replace(/\r\n|\r(?=[^\n]|$)/gm,`
1037
+ `);let n=s.split(/\n{2,}/m);if(!/^WEBVTT($|[ \t\n])/m.test(n[0]))throw new h(h.Severity.CRITICAL,h.Category.TEXT,h.Code.INVALID_TEXT_HEADER);let a=t.vttOffset;this.manifestType_==me.HLS&&n[0].includes("X-TIMESTAMP-MAP")&&(a=this.computeHlsOffset_(n[0],t));let o=[];for(let u of n[0].split(`
1038
+ `))if(/^Region:/.test(u)){let m=We.parseRegion_(u);o.push(m)}let c=new Map;B.addDefaultTextColor(c);let d=[];for(let u of n.slice(1)){let m=u.split(`
1039
+ `);We.parseStyle_(m,c);let f=We.parseCue_(m,a,o,c);f&&d.push(f)}return d}computeHlsOffset_(e,t){let i=e.match(/LOCAL:((?:(\d{1,}):)?(\d{2}):(\d{2})\.(\d{3}))/m),r=e.match(/MPEGTS:(\d+)/m);if(!i||!r)throw new h(h.Severity.CRITICAL,h.Category.TEXT,h.Code.INVALID_TEXT_HEADER);let s=Gt.parseTime(i[1]);if(s==null)throw new h(h.Severity.CRITICAL,h.Category.TEXT,h.Code.INVALID_TEXT_HEADER);let n=Number(r[1]),a=We.MPEG_TIMESCALE_,o=We.TS_ROLLOVER_/a;if(t.isMpegTs){let c=t.segmentStart-t.periodStart;for(;c>=o;)c-=o,n+=We.TS_ROLLOVER_}return t.periodStart+n/a-s}static parseRegion_(e){let t=new Gt(e),i=new He;return t.readWord(),t.skipWhitespace(),t.forEachWord(r=>{We.parseRegionSetting_(i,r)||p.warning("VTT parser encountered an invalid VTTRegion setting: ",r," The setting will be ignored.")}),i}static parseStyle_(e,t){if(e.length==1&&!e[0]||We.REGEX_NOTE_.test(e[0])||e[0]!="STYLE")return;let i=[],r=-1;for(let s=1;s<e.length;s++)e[s].includes("::cue")&&(i.push([]),r=i.length-1),r!=-1&&(i[r].push(e[s]),e[s].includes("}")&&(r=-1));for(let s of i){let n="global",a=s[0].match(/\((.*)\)/);a&&(n=a.pop());let o=s.slice(1,-1);if(s[0].includes("}")){let u=/\{(.*?)\}/.exec(s[0]);u&&(o=u[1].split(";"))}let c=t.get(n);c||(c=new B(0,0,""));let d=!1;for(let u=0;u<o.length;u++){let m=/^\s*([^:]+):\s*(.*)/.exec(o[u]);if(m){let f=m[1].trim(),g=m[2].trim().replace(";","");switch(f){case"background-color":case"background":d=!0,c.backgroundColor=g;break;case"color":d=!0,c.color=g;break;case"font-family":d=!0,c.fontFamily=g;break;case"font-size":d=!0,c.fontSize=g;break;case"font-weight":(parseInt(g,10)>=700||g=="bold")&&(d=!0,c.fontWeight=B.fontWeight.BOLD);break;case"font-style":switch(g){case"normal":d=!0,c.fontStyle=B.fontStyle.NORMAL;break;case"italic":d=!0,c.fontStyle=B.fontStyle.ITALIC;break;case"oblique":d=!0,c.fontStyle=B.fontStyle.OBLIQUE;break}break;case"opacity":d=!0,c.opacity=parseFloat(g);break;case"text-combine-upright":d=!0,c.textCombineUpright=g;break;case"text-shadow":d=!0,c.textShadow=g;break;case"white-space":d=!0,c.wrapLine=g!="noWrap";break;default:p.warning("VTT parser encountered an unsupported style: ",m);break}}}d&&t.set(n,c)}}static parseCue_(e,t,i,r){if(e.length==1&&!e[0]||We.REGEX_NOTE_.test(e[0])||e[0]=="STYLE"||e[0]=="REGION")return null;let s=null,n=0;e[0].includes("-->")||(s=e[0],n=1);let a=new Gt(e[n]),o=a.parseTime(),c=a.readRegex(/[ \t]+-->[ \t]+/g),d=a.parseTime();if(o==null||c==null||d==null)return p.alwaysWarn("Failed to parse VTT time code. Cue skipped:",s,e),null;o+=t,d+=t,o<0&&(o=0);let u="";for(let f=n+1;f<e.length;f++)f>n+1&&(u+=`
1040
+ `),u+=e[f];u=u.trim();let m;return r.has("global")?(m=r.get("global").clone(),m.startTime=o,m.endTime=d,m.payload=u):m=new B(o,d,u),a.skipWhitespace(),a.forEachWord(f=>{We.parseCueSetting(m,f,i)||p.warning("VTT parser encountered an invalid VTT setting: ",f," The setting will be ignored.")}),B.parseCuePayload(m,r),s!=null&&(m.id=s),m}static parseCueSetting(e,t,i){let r=null;if(r=We.REGEX_ALIGN_.exec(t))We.setTextAlign_(e,r[1]);else if(r=We.REGEX_VERTICAL_.exec(t))We.setVerticalWritingMode_(e,r[1]);else if(r=We.REGEX_SIZE_.exec(t))e.size=Number(r[1]);else if(r=We.REGEX_POSITION_.exec(t))e.position=Number(r[1]),r[2]&&We.setPositionAlign_(e,r[2]);else if(r=We.REGEX_REGION_.exec(t)){let s=We.getRegionById_(i,r[1]);s&&(e.region=s)}else return We.parsedLineValueAndInterpretation_(e,t);return!0}static getRegionById_(e,t){let i=e.find(r=>r.id==t);return i||(p.warning("VTT parser could not find a region with id: ",t," The region will be ignored."),null)}static parseRegionSetting_(e,t){let i=null;if(i=/^id=(.*)$/.exec(t))e.id=i[1];else if(i=/^width=(\d{1,2}|100)%$/.exec(t))e.width=Number(i[1]);else if(i=/^lines=(\d+)$/.exec(t))e.height=Number(i[1]),e.heightUnits=He.units.LINES;else if(i=/^regionanchor=(\d{1,2}|100)%,(\d{1,2}|100)%$/.exec(t))e.regionAnchorX=Number(i[1]),e.regionAnchorY=Number(i[2]);else if(i=/^viewportanchor=(\d{1,2}|100)%,(\d{1,2}|100)%$/.exec(t))e.viewportAnchorX=Number(i[1]),e.viewportAnchorY=Number(i[2]);else if(i=/^scroll=up$/.exec(t))e.scroll=He.scrollMode.UP;else return!1;return!0}static setTextAlign_(e,t){t=="middle"?e.textAlign=B.textAlign.CENTER:(v.assert(t.toUpperCase()in B.textAlign,t.toUpperCase()+" Should be in Cue.textAlign values!"),e.textAlign=B.textAlign[t.toUpperCase()])}static setPositionAlign_(e,t){t=="line-left"||t=="start"?e.positionAlign=B.positionAlign.LEFT:t=="line-right"||t=="end"?e.positionAlign=B.positionAlign.RIGHT:t=="center"||t=="middle"?e.positionAlign=B.positionAlign.CENTER:e.positionAlign=B.positionAlign.AUTO}static setVerticalWritingMode_(e,t){t=="lr"?e.writingMode=B.writingMode.VERTICAL_LEFT_TO_RIGHT:e.writingMode=B.writingMode.VERTICAL_RIGHT_TO_LEFT}static parsedLineValueAndInterpretation_(e,t){let i=null;if(i=We.REGEX_LINE_PCT_.exec(t))e.lineInterpretation=B.lineInterpretation.PERCENTAGE;else if(i=We.REGEX_LINE_NUM_.exec(t))e.lineInterpretation=B.lineInterpretation.LINE_NUMBER;else return!1;return e.line=Number(i[1]),i[2]&&(v.assert(i[2].toUpperCase()in B.lineAlign,i[2].toUpperCase()+" Should be in Cue.lineAlign values!"),e.lineAlign=B.lineAlign[i[2].toUpperCase()]),!0}};l(We,"MPEG_TIMESCALE_",9e4),l(We,"TS_ROLLOVER_",8589934592),l(We,"REGEX_NOTE_",/^NOTE($|[ \t])/),l(We,"REGEX_ALIGN_",/^align:(start|middle|center|end|left|right)$/),l(We,"REGEX_VERTICAL_",/^vertical:(lr|rl)$/),l(We,"REGEX_SIZE_",/^size:([\d.]+)%$/),l(We,"REGEX_POSITION_",/^position:([\d.]+)%(?:,(line-left|line-right|middle|center|start|end|auto))?$/),l(We,"REGEX_REGION_",/^region:(.*)$/),l(We,"REGEX_LINE_PCT_",/^line:([\d.]+)%(?:,(start|end|center))?$/),l(We,"REGEX_LINE_NUM_",/^line:(-?\d+)(?:,(start|end|center))?$/);var Xi=We;Ue.registerParser("text/vtt",()=>new Xi);Ue.registerParser('text/vtt; codecs="vtt"',()=>new Xi);Ue.registerParser('text/vtt; codecs="wvtt"',()=>new Xi);/*! @license
1041
+ * Shaka Player
1042
+ * Copyright 2016 Google LLC
1043
+ * SPDX-License-Identifier: Apache-2.0
1044
+ */var Pa=class y{constructor(){l(this,"timescale_");this.timescale_=null}parseInit(e){let t=!1;if(new F().boxes(F.SAMPLE_TABLE_PATH,F.children).fullBox("mdhd",i=>{v.assert(i.version==0||i.version==1,"MDHD version can only be 0 or 1");let r=pe.parseMDHD(i.reader,i.version);this.timescale_=r.timescale}).fullBox("stsd",F.sampleDescription).box("wvtt",i=>{t=!0}).parse(e),!this.timescale_)throw new h(h.Severity.CRITICAL,h.Category.TEXT,h.Code.INVALID_MP4_VTT);if(!t)throw new h(h.Severity.CRITICAL,h.Category.TEXT,h.Code.INVALID_MP4_VTT)}setManifestType(e){}parseMedia(e,t,i,r){if(!e.length)return[];if(!this.timescale_)throw p.error("No init segment for MP4+VTT!"),new h(h.Severity.CRITICAL,h.Category.TEXT,h.Code.INVALID_MP4_VTT);let s=0,n=[],a,o=[],c=!1,d=!1,u=!1,m=null;if(new F().boxes(F.FRAGMENT_PATH,F.children).fullBox("tfdt",T=>{c=!0,v.assert(T.version==0||T.version==1,"TFDT version can only be 0 or 1"),s=pe.parseTFDTInaccurate(T.reader,T.version).baseMediaDecodeTime}).fullBox("tfhd",T=>{v.assert(T.flags!=null,"A TFHD box should have a valid flags value"),m=pe.parseTFHD(T.reader,T.flags).defaultSampleDuration}).fullBox("trun",T=>{d=!0,v.assert(T.version!=null,"A TRUN box should have a valid version value"),v.assert(T.flags!=null,"A TRUN box should have a valid flags value"),n=pe.parseTRUN(T.reader,T.version,T.flags).sampleData}).box("mdat",F.allData(T=>{v.assert(!u,"VTT cues in mp4 with multiple MDAT are not currently supported"),u=!0,a=T},!1)).parse(e,!1),!u&&!c&&!d)throw new h(h.Severity.CRITICAL,h.Category.TEXT,h.Code.INVALID_MP4_VTT);let g=s,_=new Et(a,Et.Endianness.BIG_ENDIAN);for(let T of n){let S=T.sampleDuration||m,b=T.sampleCompositionTimeOffset?s+T.sampleCompositionTimeOffset:g;g=b+(S||0);let E=0;do{let C=_.readUint32();E+=C;let A=_.readUint32(),w=F.typeToString(A),M=null;if(w=="vttc"?C>8&&(M=_.readBytes(C-8,!1)):(w=="vtte"||p.error("Unknown box "+w+"! Skipping!"),_.skip(C-8)),S){if(M){v.assert(this.timescale_!=null,"Timescale should not be null!");let x=y.parseVTTC_(M,t.periodStart+b/this.timescale_,t.periodStart+g/this.timescale_);o.push(x)}}else p.error("WVTT sample duration unknown, and no default found!");v.assert(!T.sampleSize||E<=T.sampleSize,"The samples do not fit evenly into the sample sizes given in the TRUN box!")}while(T.sampleSize&&E<T.sampleSize)}return v.assert(!_.hasMoreData(),"MDAT which contain VTT cues and non-VTT data are not currently supported!"),o.filter(it.isNotNull)}static parseVTTC_(e,t,i){let r,s,n;return new F().box("payl",F.allData(a=>{r=q.fromUTF8(a)},!1)).box("iden",F.allData(a=>{s=q.fromUTF8(a)},!1)).box("sttg",F.allData(a=>{n=q.fromUTF8(a)},!1)).parse(e),r?y.assembleCue_(r,s,n,t,i):null}static assembleCue_(e,t,i,r,s){let n=new B(r,s,e);return B.parseCuePayload(n),t&&(n.id=t),i&&new Gt(i).forEachWord(o=>{Xi.parseCueSetting(n,o,[])||p.warning("VTT parser encountered an invalid VTT setting: ",o," The setting will be ignored.")}),n}};Ue.registerParser('application/mp4; codecs="wvtt"',()=>new Pa);/*! @license
1045
+ * Shaka Player
1046
+ * Copyright 2016 Google LLC
1047
+ * SPDX-License-Identifier: Apache-2.0
1048
+ */var ka=class extends Xi{parseMedia(e,t,i,r){let s=q.fromUTF8(e),n=this.srt2webvtt_(s),a=D.toUint8(q.toUTF8(n));return super.parseMedia(a,t,i,r)}srt2webvtt_(e){let t=`WEBVTT
1049
+
1050
+ `;if(e=="")return t;let i=e.replace(/\r+/g,"");i=i.trim();let r=i.split(`
1051
+
1052
+ `);for(let s of r)t+=this.convertSrtCue_(s);return t}convertSrtCue_(e){let t=e.split(`
1053
+ `).map(u=>u.trim()).filter(Boolean);if(t.length<2||(/^\d+$/.test(t[0])&&t.shift(),t.length<2))return"";let i=/^([\d:,]+)\s*-->\s*([\d:,]+)(.*)?$/,r=t[0].match(i);if(!r)return"";let s=this.normalizeTime_(r[1]),n=this.normalizeTime_(r[2]),a="",o=t.slice(1).join(`
1054
+ `),c=o.match(/{\\an(\d)}/);if(c){let u={1:"line:-1 align:left",2:"line:-1 align:center",3:"line:-1 align:right",7:"line:0 align:left",8:"line:0 align:center",9:"line:0 align:right"};a+=u[c[1]]?` ${u[c[1]]}`:""}let d=o.match(/{\\pos\((\d+),(\d+)\)}/);if(d){let u=Math.min(100,Math.round(parseFloat(d[1])/19.2)),m=Math.min(100,Math.round(parseFloat(d[2])/10.8));a+=` position:${u}% line:${m}%`}return o=o.replace(/{\\.*?}/g,""),o=o.replace(/{b}/gi,"<b>").replace(/{\/b}/gi,"</b>").replace(/{i}/gi,"<i>").replace(/{\/i}/gi,"</i>").replace(/{u}/gi,"<u>").replace(/{\/u}/gi,"</u>"),o=this.convertColors_(o),`${s} --> ${n}${a}
1055
+ ${o}
1056
+
1057
+ `}normalizeTime_(e){return/^\d{2}:\d{2},\d{3}$/.test(e)?"00:"+e.replace(",","."):e.replace(",",".")}convertColors_(e){let t=[];return e=e.replace(/<font color=["']?([^"'>]+)["']?>/gi,(i,r)=>{let s=r.toLowerCase(),n=si.getColorName(s);return n?(t.push(n),`<c.${n}>`):""}),e=e.replace(/<\/font>/gi,()=>t.length?(t.pop(),"</c>"):""),e}};Ue.registerParser("text/srt",()=>new ka);/*! @license
1058
+ * Shaka Player
1059
+ * Copyright 2016 Google LLC
1060
+ * SPDX-License-Identifier: Apache-2.0
1061
+ */var ht=class ht{static getParsedCaption(e,t,i,r,s,n=!1){if(r>=s)return null;let a=-1,o=-1;for(let _=0;_<i.length;_++)i[_].some(T=>T!=null&&T.getChar().trim()!="")&&(a===-1&&(a=_),o=_);if(a===-1||o===-1)return null;let c=!1,d=!1,u=ht.DEFAULT_TXT_COLOR,m=ht.DEFAULT_BG_COLOR,f=r,g=ht.createStyledCue(r,s,c,d,u,m);for(let _=a;_<=o;_++){let T=i[_],S=-1,b=-1;for(let E=0;E<T.length;E++)T[E]!=null&&T[E].getChar().trim()!==""&&(S===-1&&(S=E),b=E);if(S===-1||b===-1){let E=ht.createLineBreakCue(r,s);e.nestedCues.push(E);continue}for(let E=S;E<=b;E++){let C=T[E];if(!C){g.payload+=" ";continue}let A=C.isUnderlined(),w=C.isItalicized(),M=C.getTextColor(),x=C.getBackgroundColor(),k=C.getTime(),L=n&&k!=null&&k>r?k:r;(A!=c||w!=d||M!=u||x!=m||L!=f)&&(g.payload&&e.nestedCues.push(g),g=ht.createStyledCue(L,s,A,w,M,x),c=A,d=w,u=M,m=x,f=L),g.payload+=C.getChar()}if(g.payload&&e.nestedCues.push(g),_!==o){let E=ht.createLineBreakCue(r,s);e.nestedCues.push(E)}f=r,g=ht.createStyledCue(r,s,c,d,u,m)}return e.nestedCues.length?{cue:e,stream:t}:null}static createStyledCue(e,t,i,r,s,n){let a=new B(e,t,"");return i&&a.textDecoration.push(B.textDecoration.UNDERLINE),r&&(a.fontStyle=B.fontStyle.ITALIC),a.color=s,a.backgroundColor=n,a}static createLineBreakCue(e,t){let i=new B(e,t,"");return i.lineBreak=!0,i}static getCea608StreamName(e,t){return`CC${(e<<1|t)+1}`}static isSeiNaluType(e,t){switch(e){case ht.CodecFamily.H264:return t==ht.H264_NALU_TYPE_SEI;case ht.CodecFamily.H265:return t==ht.H265_PREFIX_NALU_TYPE_SEI||t==ht.H265_SUFFIX_NALU_TYPE_SEI;case ht.CodecFamily.H266:return t==ht.H266_PREFIX_NALU_TYPE_SEI||t==ht.H266_SUFFIX_NALU_TYPE_SEI;default:return!1}}};l(ht,"CodecFamily",{H264:0,H265:1,H266:2}),l(ht,"DEFAULT_BG_COLOR","black"),l(ht,"DEFAULT_TXT_COLOR","white"),l(ht,"H264_NALU_TYPE_SEI",6),l(ht,"H265_PREFIX_NALU_TYPE_SEI",39),l(ht,"H265_SUFFIX_NALU_TYPE_SEI",40),l(ht,"H266_PREFIX_NALU_TYPE_SEI",23),l(ht,"H266_SUFFIX_NALU_TYPE_SEI",24),l(ht,"DEFAULT_TIMESCALE_VALUE",9e4);var Ye=ht,Da=class{constructor(e,t,i,r,s,n=null){l(this,"character_");l(this,"underline_");l(this,"italics_");l(this,"backgroundColor_");l(this,"textColor_");l(this,"time_");this.character_=e,this.underline_=t,this.italics_=i,this.backgroundColor_=r,this.textColor_=s,this.time_=n}getChar(){return this.character_}getTime(){return this.time_}isUnderlined(){return this.underline_}isItalicized(){return this.italics_}getBackgroundColor(){return this.backgroundColor_}getTextColor(){return this.textColor_}};/*! @license
1062
+ * Shaka Player
1063
+ * Copyright 2016 Google LLC
1064
+ * SPDX-License-Identifier: Apache-2.0
1065
+ */var zt=class zt{constructor(e,t){l(this,"rows_");l(this,"row_");l(this,"scrollRows_");l(this,"fieldNum_");l(this,"channelNum_");l(this,"underline_");l(this,"italics_");l(this,"textColor_");l(this,"backgroundColor_");l(this,"offset_");l(this,"indent_");this.rows_=[],this.row_=1,this.scrollRows_=0,this.fieldNum_=e,this.channelNum_=t,this.underline_=!1,this.italics_=!1,this.textColor_=Ye.DEFAULT_TXT_COLOR,this.backgroundColor_=Ye.DEFAULT_BG_COLOR,this.offset_=null,this.indent_=null,this.reset()}forceEmit(e,t,i=!1){let r=Ye.getCea608StreamName(this.fieldNum_,this.channelNum_),s=new B(e,t,"");s.lineInterpretation=B.lineInterpretation.PERCENTAGE;let n=this.rows_.findIndex(o=>o.some(c=>c.getChar().trim()!="")),a=zt.ROW_TO_LINE_CONVERSION_.get(n);return a&&(s.line=a),this.indent_!=null&&this.offset_!=null&&(s.position=10+Math.min(70,this.indent_*10)+this.offset_*2.5),Ye.getParsedCaption(s,r,this.rows_,e,t,i)}reset(){this.resetAllRows(),this.row_=1,this.offset_=null,this.indent_=null}getRow(){return this.row_}setRow(e){this.row_=e}getScrollSize(){return this.scrollRows_}setScrollSize(e){this.scrollRows_=e}addChar(e,t,i=null){if(t<32||t>127)return;let r="";switch(e){case zt.CharSet.BASIC_NORTH_AMERICAN:zt.CharSet.BasicNorthAmericanChars.has(t)?r=zt.CharSet.BasicNorthAmericanChars.get(t):r=String.fromCharCode(t);break;case zt.CharSet.SPECIAL_NORTH_AMERICAN:r=zt.CharSet.SpecialNorthAmericanChars.get(t);break;case zt.CharSet.SPANISH_FRENCH:this.eraseChar(),r=zt.CharSet.ExtendedSpanishFrench.get(t);break;case zt.CharSet.PORTUGUESE_GERMAN:this.eraseChar(),r=zt.CharSet.ExtendedPortugueseGerman.get(t);break}if(r){let s=new Ye.StyledChar(r,this.underline_,this.italics_,this.backgroundColor_,this.textColor_,i);this.rows_[this.row_].push(s)}}eraseChar(){this.rows_[this.row_].pop()}moveRows(e,t,i){if(!(t<0||e<0))if(e>=t)for(let r=i-1;r>=0;r--)this.rows_[e+r]=this.rows_[t+r].map(s=>s);else for(let r=0;r<i;r++)this.rows_[e+r]=this.rows_[t+r].map(s=>s)}resetRows(e,t){for(let i=0;i<=t;i++)this.rows_[e+i]=[]}resetAllRows(){this.resetRows(0,zt.CC_ROWS)}eraseBuffer(){this.row_=this.scrollRows_>0?this.scrollRows_:0,this.resetAllRows()}setUnderline(e){this.underline_=e}setItalics(e){this.italics_=e}setTextColor(e){this.textColor_=e}setBackgroundColor(e){this.backgroundColor_=e}setOffset(e){this.offset_=e}setIndent(e){this.indent_=e}};l(zt,"CC_ROWS",15),l(zt,"CharSet",{BASIC_NORTH_AMERICAN:0,SPECIAL_NORTH_AMERICAN:1,SPANISH_FRENCH:2,PORTUGUESE_GERMAN:3}),l(zt,"ROW_TO_LINE_CONVERSION_",new Map([[1,10],[2,15.33],[3,20.66],[4,26],[5,31.33],[6,36.66],[7,42],[8,47.33],[9,52.66],[10,58],[11,63.33],[12,68.66],[13,74],[14,79.33],[15,84.66]]));var wt=zt;wt.CharSet.BasicNorthAmericanChars=new Map([[39,"\u2019"],[42,"\xE1"],[92,"\xE9"],[94,"\xED"],[95,"\xF3"],[96,"\xFA"],[123,"\xE7"],[124,"\xF7"],[125,"\xD1"],[126,"\xF1"],[127,"\u2588"]]);wt.CharSet.SpecialNorthAmericanChars=new Map([[48,"\xAE"],[49,"\xB0"],[50,"\xBD"],[51,"\xBF"],[52,"\u2122"],[53,"\xA2"],[54,"\xA3"],[55,"\u266A"],[56,"\xE0"],[57," "],[58,"\xE8"],[59,"\xE2"],[60,"\xEA"],[61,"\xEE"],[62,"\xF4"],[63,"\xFB"]]);wt.CharSet.ExtendedSpanishFrench=new Map([[32,"\xC1"],[33,"\xC9"],[34,"\xD3"],[35,"\xDA"],[36,"\xDC"],[37,"\xFC"],[38,"\u2018"],[39,"\xA1"],[40,"*"],[41,"'"],[42,"\u2500"],[43,"\xA9"],[44,"\u2120"],[45,"\xB7"],[46,"\u201C"],[47,"\u201D"],[48,"\xC0"],[49,"\xC2"],[50,"\xC7"],[51,"\xC8"],[52,"\xCA"],[53,"\xCB"],[54,"\xEB"],[55,"\xCE"],[56,"\xCF"],[57,"\xEF"],[58,"\xD4"],[59,"\xD9"],[60,"\xF9"],[61,"\xDB"],[62,"\xAB"],[63,"\xBB"]]);wt.CharSet.ExtendedPortugueseGerman=new Map([[32,"\xC3"],[33,"\xE3"],[34,"\xCD"],[35,"\xCC"],[36,"\xEC"],[37,"\xD2"],[38,"\xF2"],[39,"\xD5"],[40,"\xF5"],[41,"{"],[42,"}"],[43,"\\"],[44,"^"],[45,"_"],[46,"|"],[47,"~"],[48,"\xC4"],[49,"\xE4"],[50,"\xD6"],[51,"\xF6"],[52,"\xDF"],[53,"\xA5"],[54,"\xA4"],[55,"\u2502"],[56,"\xC5"],[57,"\xE5"],[58,"\xD8"],[59,"\xF8"],[60,"\u250C"],[61,"\u2510"],[62,"\u2514"],[63,"\u2518"]]);/*! @license
1066
+ * Shaka Player
1067
+ * Copyright 2016 Google LLC
1068
+ * SPDX-License-Identifier: Apache-2.0
1069
+ */var nt=class nt{constructor(e,t){l(this,"type_");l(this,"text_");l(this,"displayedMemory_");l(this,"nonDisplayedMemory_");l(this,"curBuf_");l(this,"prevEndTime_");l(this,"lastCp_");this.type_=nt.CaptionType.NONE,this.text_=new wt(e,t),this.displayedMemory_=new wt(e,t),this.nonDisplayedMemory_=new wt(e,t),this.curBuf_=this.nonDisplayedMemory_,this.prevEndTime_=0,this.lastCp_=null}reset(){this.type_=nt.CaptionType.NONE,this.curBuf_=this.nonDisplayedMemory_,this.lastCp_=null,this.displayedMemory_.reset(),this.nonDisplayedMemory_.reset(),this.text_.reset()}firstPts(e){this.prevEndTime_=e}pacToRow_(e,t){return[11,11,1,2,3,4,12,13,14,15,5,6,7,8,9,10][(e&7)<<1|t>>5&1]}controlPac_(e,t){let i=this.pacToRow_(e,t),r=Ye.DEFAULT_TXT_COLOR,s=!1,n=null,a;if(t>95?a=t-96:a=t-64,a<=13){let d=Math.floor(a/2);r=nt.TEXT_COLORS[d]}else a<=15?s=!0:n=Math.floor((a-16)/2);let o=(t&1)===1;if(this.type_===nt.CaptionType.TEXT)return;let c=this.curBuf_;if(this.type_===nt.CaptionType.ROLLUP&&i!==c.getRow()){let d=1+c.getRow()-c.getScrollSize(),u=1+i-c.getScrollSize();c.moveRows(u,d,c.getScrollSize()),c.resetRows(0,u-1),c.resetRows(i+1,wt.CC_ROWS-i)}c.setRow(i),c.setUnderline(o),c.setItalics(s),c.setTextColor(r),c.setIndent(n),c.setOffset(null),c.setBackgroundColor(Ye.DEFAULT_BG_COLOR)}controlMidrow_(e,t){this.curBuf_.setUnderline(!1),this.curBuf_.setItalics(!1),this.curBuf_.setTextColor(Ye.DEFAULT_TXT_COLOR),this.curBuf_.addChar(wt.CharSet.BASIC_NORTH_AMERICAN,32,t);let i=!1,r=(e&1)===1,s=nt.TEXT_COLORS[(e&14)>>1];s==="white_italics"&&(s="white",i=!0),this.curBuf_.setUnderline(r),this.curBuf_.setItalics(i),this.curBuf_.setTextColor(s)}controlBackgroundAttribute_(e,t){let i=Ye.DEFAULT_BG_COLOR;(e&7)===0&&(i=nt.BG_COLORS[(t&14)>>1]),this.curBuf_.setBackgroundColor(i)}controlMiscellaneous_(e){let t=nt.MiscCmd_,i=e.ccData2,r=e.pts,s=null;switch(i){case t.RCL:this.controlRcl_();break;case t.BS:this.controlBs_();break;case t.AOD:case t.AON:break;case t.DER:break;case t.RU2:s=this.controlRu_(2,r);break;case t.RU3:s=this.controlRu_(3,r);break;case t.RU4:s=this.controlRu_(4,r);break;case t.FON:this.controlFon_(r);break;case t.RDC:this.controlRdc_(r);break;case t.TR:this.controlTr_();break;case t.RTD:this.controlRtd_();break;case t.EDM:s=this.controlEdm_(r);break;case t.CR:s=this.controlCr_(r);break;case t.ENM:this.controlEnm_();break;case t.EOC:s=this.controlEoc_(r);break}return s}controlCr_(e){let t=this.curBuf_;if(this.type_!==nt.CaptionType.ROLLUP)return null;let i=t.forceEmit(this.prevEndTime_,e,!0),r=t.getRow()-t.getScrollSize()+1;return t.moveRows(r-1,r,t.getScrollSize()),t.resetRows(0,r-1),t.resetRows(t.getRow(),wt.CC_ROWS-t.getRow()),this.prevEndTime_=e,i}controlRu_(e,t){this.curBuf_=this.displayedMemory_;let i=this.curBuf_,r=null;if(this.type_!==nt.CaptionType.ROLLUP&&this.type_!==nt.CaptionType.TEXT){let s=this.type_===nt.CaptionType.PAINTON;r=i.forceEmit(this.prevEndTime_,t,s),this.displayedMemory_.eraseBuffer(),this.nonDisplayedMemory_.eraseBuffer(),i.setRow(wt.CC_ROWS)}return this.type_=nt.CaptionType.ROLLUP,i.setScrollSize(e),r}controlFon_(e){this.curBuf_.addChar(wt.CharSet.BASIC_NORTH_AMERICAN,32,e)}controlEdm_(e){let t=this.displayedMemory_,i=null;if(this.type_!==nt.CaptionType.TEXT){let r=this.type_===nt.CaptionType.PAINTON||this.type_===nt.CaptionType.ROLLUP;i=t.forceEmit(this.prevEndTime_,e,r)}return t.resetAllRows(),i}controlRdc_(e){this.type_=nt.CaptionType.PAINTON,this.curBuf_=this.displayedMemory_,this.curBuf_.setScrollSize(0),this.prevEndTime_=e}controlEnm_(){this.nonDisplayedMemory_.resetAllRows()}controlEoc_(e){let t=null;if(this.type_!==nt.CaptionType.TEXT){let r=this.type_===nt.CaptionType.PAINTON||this.type_===nt.CaptionType.ROLLUP;t=this.displayedMemory_.forceEmit(this.prevEndTime_,e,r)}let i=this.nonDisplayedMemory_;return this.nonDisplayedMemory_=this.displayedMemory_,this.displayedMemory_=i,this.controlRcl_(),this.prevEndTime_=e,t}controlRcl_(){this.type_=nt.CaptionType.POPON,this.curBuf_=this.nonDisplayedMemory_,this.curBuf_.setScrollSize(0)}controlBs_(){this.curBuf_.eraseChar()}controlTr_(){this.text_.reset(),this.controlRtd_()}controlRtd_(){p.warnOnce("Cea608DataChannel","CEA-608 text mode entered, but is unsupported"),this.curBuf_=this.text_,this.type_=nt.CaptionType.TEXT}handleBasicNorthAmericanChar(e,t,i){this.curBuf_.addChar(wt.CharSet.BASIC_NORTH_AMERICAN,e,i),this.curBuf_.addChar(wt.CharSet.BASIC_NORTH_AMERICAN,t,i)}handleExtendedWesternEuropeanChar_(e,t,i){let r=e&1?wt.CharSet.PORTUGUESE_GERMAN:wt.CharSet.SPANISH_FRENCH;this.curBuf_.addChar(r,t,i)}handleOffset_(e){this.curBuf_.setOffset(e)}handleControlCode(e){let t=e.ccData1,i=e.ccData2,r=e.pts;if(this.lastCp_===(t<<8|i))return this.lastCp_=null,null;if(this.lastCp_=t<<8|i,this.isPAC_(t,i))this.controlPac_(t,i);else if(this.isMidrowStyleChange_(t,i))this.controlMidrow_(i,r);else if(this.isBackgroundAttribute_(t,i))this.controlBackgroundAttribute_(t,i);else if(this.isSpecialNorthAmericanChar_(t,i))this.curBuf_.addChar(wt.CharSet.SPECIAL_NORTH_AMERICAN,i,r);else if(this.isExtendedWesternEuropeanChar_(t,i))this.handleExtendedWesternEuropeanChar_(t,i,r);else{if(this.isMiscellaneous_(t,i))return this.controlMiscellaneous_(e);if(this.isOffset_(t,i)){let s=i-32;this.handleOffset_(s)}}return null}isMiscellaneous_(e,t){return(e&246)===20&&(t&240)===32}isOffset_(e,t){return(e==23||e==31)&&t>=33&&t<=35}isPAC_(e,t){return(e&240)===16&&(t&192)===64}isMidrowStyleChange_(e,t){return(e&247)===17&&(t&240)===32}isBackgroundAttribute_(e,t){return(e&247)===16&&(t&240)===32||(e&247)===23&&(t&255)===45}isSpecialNorthAmericanChar_(e,t){return(e&247)===17&&(t&240)===48}isExtendedWesternEuropeanChar_(e,t){return(e&246)===18&&(t&224)===32}static isControlCode(e){return(e&112)===16}static isXdsControlCode(e){return e>=1&&e<=15}};l(nt,"MiscCmd_",{RCL:32,BS:33,AOD:34,AON:35,DER:36,RU2:37,RU3:38,RU4:39,FON:40,RDC:41,TR:42,RTD:43,EDM:44,CR:45,ENM:46,EOC:47}),l(nt,"CaptionType",{NONE:0,POPON:1,PAINTON:2,ROLLUP:3,TEXT:4}),l(nt,"BG_COLORS",["black","green","blue","cyan","red","yellow","magenta","black"]),l(nt,"TEXT_COLORS",["white","green","blue","cyan","red","yellow","magenta","white_italics"]);var ji=nt;/*! @license
1070
+ * Shaka Player
1071
+ * Copyright 2016 Google LLC
1072
+ * SPDX-License-Identifier: Apache-2.0
1073
+ */var bi=class bi{constructor(e,t){l(this,"parentService_");l(this,"windowNum_");l(this,"visible_");l(this,"relativeToggle_");l(this,"horizontalAnchor_");l(this,"verticalAnchor_");l(this,"anchorId_");l(this,"rowCount_");l(this,"colCount_");l(this,"justification_");l(this,"memory_");l(this,"startTime_");l(this,"row_");l(this,"col_");l(this,"italics_");l(this,"underline_");l(this,"textColor_");l(this,"backgroundColor_");this.parentService_=t,this.windowNum_=e,this.visible_=!1,this.relativeToggle_=!1,this.horizontalAnchor_=0,this.verticalAnchor_=0,this.anchorId_=0,this.rowCount_=0,this.colCount_=0,this.justification_=bi.TextJustification.CENTER,this.memory_=[],this.startTime_=0,this.row_=0,this.col_=0,this.italics_=!1,this.underline_=!1,this.textColor_=Ye.DEFAULT_TXT_COLOR,this.backgroundColor_=Ye.DEFAULT_BG_COLOR,this.resetMemory()}defineWindow(e,t,i,r,s,n,a){this.visible_=e,this.verticalAnchor_=t,this.horizontalAnchor_=i,this.anchorId_=r,this.relativeToggle_=s,this.rowCount_=n,this.colCount_=a}resetMemory(){this.memory_=[];for(let e=0;e<bi.MAX_ROWS;e++)this.memory_.push(this.createNewRow_())}createNewRow_(){let e=[];for(let t=0;t<bi.MAX_COLS;t++)e.push(null);return e}setCharacter(e){if(!this.isPenInBounds_())return;let t=new Da(e,this.underline_,this.italics_,this.backgroundColor_,this.textColor_);this.memory_[this.row_][this.col_]=t,this.col_++}backspace(){this.isPenInBounds_()&&(this.col_<=0&&this.row_<=0||(this.col_<=0?(this.col_=this.colCount_-1,this.row_--):this.col_--,this.memory_[this.row_][this.col_]=null))}isPenInBounds_(){let e=this.row_<this.rowCount_&&this.row_>=0,t=this.col_<this.colCount_&&this.col_>=0;return e&&t}isVisible(){return this.visible_}moveUpRows_(e){let t=0;for(let i=e;i<bi.MAX_ROWS;i++,t++)this.memory_[t]=this.memory_[i];for(let i=0;i<e;i++,t++)this.memory_[t]=this.createNewRow_()}carriageReturn(){if(this.row_+1>=this.rowCount_){this.moveUpRows_(1),this.col_=0;return}this.row_++,this.col_=0}horizontalCarriageReturn(){this.memory_[this.row_]=this.createNewRow_(),this.col_=0}forceEmit(e,t){let i=`svc${t}`,r=bi.TextJustification,s=new B(this.startTime_,e,"");this.justification_===r.LEFT?s.textAlign=B.textAlign.LEFT:this.justification_===r.RIGHT?s.textAlign=B.textAlign.RIGHT:s.textAlign=B.textAlign.CENTER,this.adjustRegion_(s.region);let n=Ye.getParsedCaption(s,i,this.memory_,this.startTime_,e);return n&&this.setStartTime(e),n}setPenLocation(e,t){this.row_=e,this.col_=t}setPenBackgroundColor(e){this.backgroundColor_=e}setPenTextColor(e){this.textColor_=e}setPenUnderline(e){this.underline_=e}setPenItalics(e){this.italics_=e}resetPen(){this.row_=0,this.col_=0,this.underline_=!1,this.italics_=!1,this.textColor_=Ye.DEFAULT_TXT_COLOR,this.backgroundColor_=Ye.DEFAULT_BG_COLOR}setJustification(e){this.justification_=e}display(){this.visible_=!0}hide(){this.visible_=!1}toggle(){this.visible_=!this.visible_}setStartTime(e){this.startTime_=e}adjustRegion_(e){this.parentService_&&(e.id+="svc"+this.parentService_),e.id+="win"+this.windowNum_,e.height=this.rowCount_,e.width=this.colCount_,e.heightUnits=He.units.LINES,e.widthUnits=He.units.LINES,e.viewportAnchorX=this.horizontalAnchor_,e.viewportAnchorY=this.verticalAnchor_,e.viewportAnchorUnits=this.relativeToggle_?He.units.PERCENTAGE:He.units.LINES;let t=bi.AnchorId;switch(this.anchorId_){case t.UPPER_LEFT:e.regionAnchorX=0,e.regionAnchorY=0;break;case t.UPPER_CENTER:e.regionAnchorX=50,e.regionAnchorY=0;break;case t.UPPER_RIGHT:e.regionAnchorX=100,e.regionAnchorY=0;break;case t.MIDDLE_LEFT:e.regionAnchorX=0,e.regionAnchorY=50;break;case t.MIDDLE_CENTER:e.regionAnchorX=50,e.regionAnchorY=50;break;case t.MIDDLE_RIGHT:e.regionAnchorX=100,e.regionAnchorY=50;break;case t.LOWER_LEFT:e.regionAnchorX=0,e.regionAnchorY=100;break;case t.LOWER_CENTER:e.regionAnchorX=50,e.regionAnchorY=100;break;case t.LOWER_RIGHT:e.regionAnchorX=100,e.regionAnchorY=100;break}}};l(bi,"TextJustification",{LEFT:0,RIGHT:1,CENTER:2,FULL:3}),l(bi,"AnchorId",{UPPER_LEFT:0,UPPER_CENTER:1,UPPER_RIGHT:2,MIDDLE_LEFT:3,MIDDLE_CENTER:4,MIDDLE_RIGHT:5,LOWER_LEFT:6,LOWER_CENTER:7,LOWER_RIGHT:8}),l(bi,"MAX_COLS",42),l(bi,"MAX_ROWS",16);var Ua=bi;/*! @license
1074
+ * Shaka Player
1075
+ * Copyright 2016 Google LLC
1076
+ * SPDX-License-Identifier: Apache-2.0
1077
+ */var Ys=class Ys{constructor(){l(this,"builtPackets_");l(this,"currentPacketBeingBuilt_");l(this,"bytesLeftToAddInCurrentPacket_");this.builtPackets_=[],this.currentPacketBeingBuilt_=null,this.bytesLeftToAddInCurrentPacket_=0}addByte(e){if(e.type===Ys.DTVCC_PACKET_START){let t=e.value&63;this.bytesLeftToAddInCurrentPacket_=t*2-1,this.currentPacketBeingBuilt_=[];return}if(this.currentPacketBeingBuilt_&&(this.bytesLeftToAddInCurrentPacket_>0&&(this.currentPacketBeingBuilt_.push(e),this.bytesLeftToAddInCurrentPacket_--),this.bytesLeftToAddInCurrentPacket_===0)){let t=new ho(this.currentPacketBeingBuilt_);this.builtPackets_.push(t),this.currentPacketBeingBuilt_=null,this.bytesLeftToAddInCurrentPacket_=0}}getBuiltPackets(){return this.builtPackets_}clearBuiltPackets(){this.builtPackets_=[]}clear(){this.builtPackets_=[],this.currentPacketBeingBuilt_=null,this.bytesLeftToAddInCurrentPacket_=0}};l(Ys,"DTVCC_PACKET_DATA",2),l(Ys,"DTVCC_PACKET_START",3);var $s=Ys,ho=class{constructor(e){l(this,"pos_");l(this,"packetData_");this.pos_=0,this.packetData_=e}hasMoreData(){return this.pos_<this.packetData_.length}getPosition(){return this.pos_}readByte(){if(!this.hasMoreData())throw this.outOfBoundsError_();return this.packetData_[this.pos_++]}skip(e){if(this.pos_+e>this.packetData_.length)throw this.outOfBoundsError_();this.pos_+=e}rewind(e){if(this.pos_-e<0)throw this.outOfBoundsError_();this.pos_-=e}outOfBoundsError_(){return new h(h.Severity.CRITICAL,h.Category.TEXT,h.Code.BUFFER_READ_OUT_OF_BOUNDS)}};/*! @license
1078
+ * Shaka Player
1079
+ * Copyright 2016 Google LLC
1080
+ * SPDX-License-Identifier: Apache-2.0
1081
+ */var Nt=class Nt{constructor(e){l(this,"serviceNumber_");l(this,"windows_");l(this,"currentWindow_");this.serviceNumber_=e,this.windows_=[null,null,null,null,null,null,null,null],this.currentWindow_=null}handleCea708ControlCode(e){let t=e.readByte(),i=t.value,r=t.pts;if(i===Nt.EXT_CEA708_CTRL_CODE_BYTE1){let s=e.readByte();i=i<<16|s.value}return i>=0&&i<=31?this.handleC0_(e,i,r):i>=128&&i<=159?this.handleC1_(e,i,r):(i>=4096&&i<=4127?this.handleC2_(e,i&255):i>=4224&&i<=4255?this.handleC3_(e,i&255):i>=32&&i<=127?this.handleG0_(i):i>=160&&i<=255?this.handleG1_(i):i>=4128&&i<=4223?this.handleG2_(i&255):i>=4256&&i<=4351&&this.handleG3_(i&255),[])}handleG0_(e){if(this.currentWindow_){if(e===127){this.currentWindow_.setCharacter("\u266A");return}this.currentWindow_.setCharacter(String.fromCharCode(e))}}handleG1_(e){this.currentWindow_&&this.currentWindow_.setCharacter(String.fromCharCode(e))}handleG2_(e){if(!this.currentWindow_)return;if(!Nt.G2Charset.has(e)){this.currentWindow_.setCharacter("_");return}let t=Nt.G2Charset.get(e);this.currentWindow_.setCharacter(t)}handleG3_(e){if(this.currentWindow_){if(e!=160){this.currentWindow_.setCharacter("_");return}this.currentWindow_.setCharacter("[CC]")}}handleC0_(e,t,i){if(t==24){let n=e.readByte().value,a=e.readByte().value;if(!this.currentWindow_)return[];let o=String.fromCharCode(n<<8|a);return this.currentWindow_.setCharacter(o),[]}if(!this.currentWindow_)return[];let r=this.currentWindow_,s=null;switch(t){case Nt.ASCII_BACKSPACE:r.backspace();break;case Nt.ASCII_CARRIAGE_RETURN:r.isVisible()&&(s=r.forceEmit(i,this.serviceNumber_)),r.carriageReturn();break;case Nt.ASCII_HOR_CARRIAGE_RETURN:r.isVisible()&&(s=r.forceEmit(i,this.serviceNumber_)),r.horizontalCarriageReturn();break;case Nt.ASCII_FORM_FEED:r.isVisible()&&(s=r.forceEmit(i,this.serviceNumber_)),r.resetMemory(),r.setPenLocation(0,0);break}return s?[s]:[]}handleC1_(e,t,i){if(t>=128&&t<=135){let r=t&7;this.setCurrentWindow_(r)}else if(t===136){let r=e.readByte().value;return this.clearWindows_(r,i)}else if(t===137){let r=e.readByte().value;this.displayWindows_(r,i)}else if(t===138){let r=e.readByte().value;return this.hideWindows_(r,i)}else if(t===139){let r=e.readByte().value;return this.toggleWindows_(r,i)}else if(t===140){let r=e.readByte().value;return this.deleteWindows_(r,i)}else{if(t===143)return this.reset_(i);if(t===144)this.setPenAttributes_(e);else if(t===145)this.setPenColor_(e);else if(t===146)this.setPenLocation_(e);else if(t===151)this.setWindowAttributes_(e);else if(t>=152&&t<=159){let r=(t&15)-8;this.defineWindow_(e,r,i)}}return[]}handleC2_(e,t){t>=8&&t<=15?e.skip(1):t>=16&&t<=23?e.skip(2):t>=24&&t<=31&&e.skip(3)}handleC3_(e,t){t>=128&&t<=135?e.skip(4):t>=136&&t<=143&&e.skip(5)}setCurrentWindow_(e){this.windows_[e]&&(this.currentWindow_=this.windows_[e])}getSpecifiedWindowIds_(e){let t=[];for(let i=0;i<8;i++)(e&1)===1&&this.windows_[i]&&t.push(i),e>>=1;return t}clearWindows_(e,t){let i=[];for(let r of this.getSpecifiedWindowIds_(e)){let s=this.windows_[r];if(s.isVisible()){let n=s.forceEmit(t,this.serviceNumber_);n&&i.push(n)}s.resetMemory()}return i}displayWindows_(e,t){for(let i of this.getSpecifiedWindowIds_(e)){let r=this.windows_[i];r.isVisible()||r.setStartTime(t),r.display()}}hideWindows_(e,t){let i=null;for(let r of this.getSpecifiedWindowIds_(e)){let s=this.windows_[r];s.isVisible()&&(i=s.forceEmit(t,this.serviceNumber_)),s.hide()}return i?[i]:[]}toggleWindows_(e,t){let i=null;for(let r of this.getSpecifiedWindowIds_(e)){let s=this.windows_[r];s.isVisible()?i=s.forceEmit(t,this.serviceNumber_):s.setStartTime(t),s.toggle()}return i?[i]:[]}deleteWindows_(e,t){let i=[];for(let r of this.getSpecifiedWindowIds_(e)){let s=this.windows_[r];if(s.isVisible()){let n=s.forceEmit(t,this.serviceNumber_);n&&i.push(n)}this.windows_[r]=null}return i}reset_(e){let i=this.deleteWindows_(255,e);return this.clear(),i}clear(){this.currentWindow_=null,this.windows_=[null,null,null,null,null,null,null,null]}setPenAttributes_(e){e.skip(1);let t=e.readByte().value;if(!this.currentWindow_)return;let i=(t&128)>0,r=(t&64)>0;this.currentWindow_.setPenItalics(i),this.currentWindow_.setPenUnderline(r)}setPenColor_(e){let t=e.readByte().value,i=e.readByte().value;if(e.skip(1),!this.currentWindow_)return;let r=t&3,s=(t&12)>>2,n=(t&48)>>4,a=i&3,o=(i&12)>>2,c=(i&48)>>4,d=this.rgbColorToCssColor_(n,s,r),u=this.rgbColorToCssColor_(c,o,a);this.currentWindow_.setPenTextColor(d),this.currentWindow_.setPenBackgroundColor(u)}setPenLocation_(e){let t=e.readByte().value,i=e.readByte().value;if(!this.currentWindow_)return;let r=t&15,s=i&63;this.currentWindow_.setPenLocation(r,s)}setWindowAttributes_(e){e.skip(1),e.skip(1);let t=e.readByte().value;if(e.skip(1),!this.currentWindow_)return;let i=t&3;this.currentWindow_.setJustification(i)}defineWindow_(e,t,i){let r=this.windows_[t]!==null;if(!r){let E=new Ua(t,this.serviceNumber_);E.setStartTime(i),this.windows_[t]=E}let s=e.readByte().value,n=e.readByte().value,a=e.readByte().value,o=e.readByte().value,c=e.readByte().value,d=e.readByte().value,u=(s&32)>0,m=n&127,f=(n&128)>0,g=a,_=(o&15)+1,T=(o&240)>>4,S=(c&63)+1,b=d&7;(!r||b!==0)&&this.windows_[t].resetPen(),this.windows_[t].defineWindow(u,m,g,T,f,_,S),this.currentWindow_=this.windows_[t]}rgbColorToCssColor_(e,t,i){let r=e>>1<<2|t>>1<<1|i>>1;return Nt.Colors[r]}};l(Nt,"ASCII_BACKSPACE",8),l(Nt,"ASCII_FORM_FEED",12),l(Nt,"ASCII_CARRIAGE_RETURN",13),l(Nt,"ASCII_HOR_CARRIAGE_RETURN",14),l(Nt,"EXT_CEA708_CTRL_CODE_BYTE1",16),l(Nt,"G2Charset",new Map([[32," "],[33,"\xA0"],[37,"\u2026"],[42,"\u0160"],[44,"\u0152"],[48,"\u2588"],[49,"\u2018"],[50,"\u2019"],[51,"\u201C"],[52,"\u201D"],[53,"\u2022"],[57,"\u2122"],[58,"\u0161"],[60,"\u0153"],[61,"\u2120"],[63,"\u0178"],[118,"\u215B"],[119,"\u215C"],[120,"\u215D"],[121,"\u215E"],[122,"\u2502"],[123,"\u2510"],[124,"\u2514"],[125,"\u2500"],[126,"\u2518"],[127,"\u250C"]])),l(Nt,"Colors",["black","blue","green","cyan","red","magenta","yellow","white"]);var La=Nt;/*! @license
1082
+ * Shaka Player
1083
+ * Copyright 2016 Google LLC
1084
+ * SPDX-License-Identifier: Apache-2.0
1085
+ */var Qt=class Qt{constructor(){l(this,"cea608DataArray_");l(this,"cea708DataArray_");l(this,"dtvccPacketBuilder_");l(this,"badFrames_");l(this,"cea608ModeToStream_");l(this,"currentField1Channel_");l(this,"currentField2Channel_");l(this,"serviceNumberToService_");l(this,"waitingForFirstPacket_");l(this,"streams_");this.cea608DataArray_=[],this.cea708DataArray_=[],this.dtvccPacketBuilder_=new $s,this.badFrames_=0,this.cea608ModeToStream_=new Map([["CC1",new ji(0,0)],["CC2",new ji(0,1)],["CC3",new ji(1,0)],["CC4",new ji(1,1)]]),this.currentField1Channel_=0,this.currentField2Channel_=0,this.serviceNumberToService_=new Map,this.waitingForFirstPacket_=!0,this.streams_=new Set,this.reset()}clear(){p.debug("Clearing CEA decoder"),this.badFrames_=0,this.cea608DataArray_=[],this.cea708DataArray_=[],this.dtvccPacketBuilder_.clear(),this.reset();for(let e of this.serviceNumberToService_.values())e.clear()}reset(){p.debug("Resetting CEA decoder"),this.currentField1Channel_=0,this.currentField2Channel_=0;for(let e of this.cea608ModeToStream_.values())e.reset();this.waitingForFirstPacket_=!0}extract(e,t){if(this.waitingForFirstPacket_){p.debug("Setting first pts value to",t);for(let n of this.cea608ModeToStream_.values())n.firstPts(t);this.waitingForFirstPacket_=!1}let i=new Et(e,Et.Endianness.BIG_ENDIAN);if(i.getLength()<Qt.MIN_LENGTH||i.readUint8()!==Qt.USA_COUNTRY_CODE||i.readUint16()!==Qt.ATSC_PROVIDER_CODE||i.readUint32()!==Qt.ATSC1_USER_IDENTIFIER||i.readUint8()!==3)return;let r=i.readUint8();if((r&64)===0)return;let s=r&31;i.skip(1);for(let n=0;n<s;n++){let a=i.readUint8(),o=(a&4)>>2,c=i.readUint8(),d=i.readUint8();if(o){let u=a&3;u===Qt.NTSC_CC_FIELD_1||u===Qt.NTSC_CC_FIELD_2?this.cea608DataArray_.push({pts:t,type:u,ccData1:c,ccData2:d,order:this.cea608DataArray_.length}):(this.cea708DataArray_.push({pts:t,type:u,value:c,order:this.cea708DataArray_.length}),this.cea708DataArray_.push({pts:t,type:$s.DTVCC_PACKET_DATA,value:d,order:this.cea708DataArray_.length}))}}}extractRaw608(e,t){for(let i=0;i+1<e.length;i+=2){let r=e[i],s=e[i+1];this.cea608DataArray_.push({pts:t,type:Qt.NTSC_CC_FIELD_1,ccData1:r,ccData2:s,order:this.cea608DataArray_.length})}}decode(){let e=[],t=(r,s)=>r.pts-s.pts||r.order-s.order;this.cea608DataArray_.sort(t),this.cea708DataArray_.sort(t);for(let r of this.cea608DataArray_){let s=this.decodeCea608_(r);s&&e.push(s)}for(let r of this.cea708DataArray_)this.dtvccPacketBuilder_.addByte(r);let i=this.dtvccPacketBuilder_.getBuiltPackets();for(let r of i){let s=this.decodeCea708_(r);e.push(...s)}return this.dtvccPacketBuilder_.clearBuiltPackets(),this.cea608DataArray_=[],this.cea708DataArray_=[],e}decodeCea608_(e){let t=e.type;if(ji.isControlCode(e.ccData1)){let a=e.ccData1>>3&1;t===0?this.currentField1Channel_=a:this.currentField2Channel_=a}let i=t?this.currentField2Channel_:this.currentField1Channel_,r=Ye.getCea608StreamName(t,i),s=this.cea608ModeToStream_.get(r);if(e.ccData1===255&&e.ccData2===255||!e.ccData1&&!e.ccData2||!this.isOddParity_(e.ccData1)||!this.isOddParity_(e.ccData2))return++this.badFrames_>=45&&this.reset(),null;if(this.badFrames_=0,e.ccData1&=127,e.ccData2&=127,ji.isXdsControlCode(e.ccData1)||!e.ccData1&&!e.ccData2)return null;let n=null;return ji.isControlCode(e.ccData1)?(this.streams_.add(r),n=s.handleControlCode(e)):s.handleBasicNorthAmericanChar(e.ccData1,e.ccData2,e.pts),n}decodeCea708_(e){let t=[];try{for(;e.hasMoreData();){let i=e.readByte().value,r=(i&224)>>5,s=i&31;if(r===7&&s!=0&&(r=e.readByte().value&63),r!=0){this.streams_.add("svc"+r);let n=this.serviceNumberToService_.getOrInsertComputed(r,o=>new La(o)),a=e.getPosition();for(;e.getPosition()-a<s;){let o=n.handleCea708ControlCode(e);t.push(...o)}}}}catch(i){if(i instanceof h&&i.code===h.Code.BUFFER_READ_OUT_OF_BOUNDS)p.warnOnce("CEA708_INVALID_DATA","Buffer read out of bounds / invalid CEA-708 Data.");else throw i}return t}isOddParity_(e){let t=0;for(;e;)t^=e&1,e>>=1;return t===1}getStreams(){return Array.from(this.streams_)}};l(Qt,"ATSC_PROVIDER_CODE",49),l(Qt,"ATSC1_USER_IDENTIFIER",1195456820),l(Qt,"NTSC_CC_FIELD_1",0),l(Qt,"NTSC_CC_FIELD_2",1),l(Qt,"USA_COUNTRY_CODE",181),l(Qt,"MIN_LENGTH",8);var Na=Qt;Rt.registerDecoder(()=>new Na);/*! @license
1086
+ * Shaka Player
1087
+ * Copyright 2016 Google LLC
1088
+ * SPDX-License-Identifier: Apache-2.0
1089
+ */var hs=class{process(e){let t=[],i=ne.removeEmulationPreventionBytes(e),r=0;for(;r<i.length;){let s=0;for(;i[r]==255;)s+=255,r++;s+=i[r++];let n=0;for(;i[r]==255;)n+=255,r++;n+=i[r++],s==4&&t.push(i.subarray(r,r+n)),r+=n}return t}};/*! @license
1090
+ * Shaka Player
1091
+ * Copyright 2016 Google LLC
1092
+ * SPDX-License-Identifier: Apache-2.0
1093
+ */var Yi=class Yi{constructor(){l(this,"seiProcessor_");l(this,"trackIdToTimescale_");l(this,"defaultSampleDuration_");l(this,"defaultSampleSize_");l(this,"c608TrackId_");l(this,"bitstreamFormat_");this.seiProcessor_=new hs,this.trackIdToTimescale_=new Map,this.defaultSampleDuration_=0,this.defaultSampleSize_=0,this.c608TrackId_=null,this.bitstreamFormat_=Yi.BitstreamFormat.UNKNOWN}init(e){let t=Yi.BitstreamFormat,i=[],r=[],s=null,n=a=>this.setBitstreamFormat_(a.name);if(new F().boxes([...F.SAMPLE_TABLE_PATH,"mvex"],F.children).fullBox("trex",a=>{let o=pe.parseTREX(a.reader);this.defaultSampleDuration_=o.defaultSampleDuration,this.defaultSampleSize_=o.defaultSampleSize}).fullBox("tkhd",a=>{v.assert(a.version!=null,"TKHD is a full box and should have a valid version.");let o=pe.parseTKHD(a.reader,a.version);s=o.trackId,i.push(o.trackId)}).fullBox("mdhd",a=>{v.assert(a.version!=null,"MDHD is a full box and should have a valid version.");let o=pe.parseMDHD(a.reader,a.version);r.push(o.timescale)}).fullBox("stsd",F.sampleDescription).boxes(F.AVC_HEVC_VVC_DV,n).box("encv",F.visualSampleEntry).box("sinf",F.children).box("frma",a=>{let{codec:o}=pe.parseFRMA(a.reader);this.setBitstreamFormat_(o)}).box("c608",a=>{this.bitstreamFormat_=Yi.BitstreamFormat.C608_TRACK,this.c608TrackId_=s}).parse(e,!0,!0),!i.length||!r.length||i.length!=r.length)throw new h(h.Severity.CRITICAL,h.Category.TEXT,h.Code.INVALID_MP4_CEA);this.bitstreamFormat_==t.UNKNOWN&&p.alwaysWarn("Unable to determine bitstream format for CEA parsing!"),i.forEach((a,o)=>{this.trackIdToTimescale_.set(a,r[o])})}parse(e){let t=Yi.BitstreamFormat;if(this.bitstreamFormat_==t.UNKNOWN)return[];let i=[],r=0,s=[];return new F().box("moof",n=>{r=n.start,s=[],F.children(n)}).box("traf",n=>{s.push({trackId:null,baseMediaDecodeTime:null,defaultSampleDuration:this.defaultSampleDuration_,defaultSampleSize:this.defaultSampleSize_,parsedTRUNs:[],timescale:Ye.DEFAULT_TIMESCALE_VALUE}),F.children(n)}).fullBox("trun",n=>{v.assert(n.version!=null&&n.flags!=null,"TRUN is a full box and should have a valid version & flags.");let a=s[s.length-1],o=pe.parseTRUN(n.reader,n.version,n.flags);a.parsedTRUNs.push(o)}).fullBox("tfhd",n=>{v.assert(n.flags!=null,"TFHD is a full box and should have valid flags.");let a=s[s.length-1],o=pe.parseTFHD(n.reader,n.flags);a.trackId=o.trackId,a.defaultSampleDuration=o.defaultSampleDuration||this.defaultSampleDuration_,a.defaultSampleSize=o.defaultSampleSize||this.defaultSampleSize_;let c=o.trackId;this.trackIdToTimescale_.has(c)&&(a.timescale=this.trackIdToTimescale_.get(c))}).fullBox("tfdt",n=>{v.assert(n.version!=null,"TFDT is a full box and should have a valid version.");let a=s[s.length-1],o=pe.parseTFDTInaccurate(n.reader,n.version);a.baseMediaDecodeTime=o.baseMediaDecodeTime}).box("mdat",n=>{let a=r-n.start-8,o=n.reader.getPosition();for(let c of s)if(!(this.bitstreamFormat_==t.C608_TRACK&&c.trackId!==this.c608TrackId_)){if(c.baseMediaDecodeTime===null){p.alwaysWarn("Unable to find base media decode time for CEA captions!");continue}n.reader.seek(o),this.bitstreamFormat_===t.C608_TRACK?this.parseC608Mdat_(n.reader,c.baseMediaDecodeTime,c.timescale,c.defaultSampleDuration,c.defaultSampleSize,a,c.parsedTRUNs,i):this.parseMdat_(n.reader,c.baseMediaDecodeTime,c.timescale,c.defaultSampleDuration,c.defaultSampleSize,a,c.parsedTRUNs,i)}}).parse(e,!1,!0),i}parseMdat_(e,t,i,r,s,n,a,o){let c=Yi.BitstreamFormat;v.assert(this.bitstreamFormat_!=c.UNKNOWN,"Bitstream format should have been checked before now!");let d=t;for(let u of a){u.dataOffset!=null&&e.seek(n+u.dataOffset);for(let m of u.sampleData){let f=m.sampleCompositionTimeOffset||0,g=(d+f)/i,_=m.sampleSize||s;for(;_>0&&e.hasMoreData();){let T=e.readUint32(),S=e.readUint8(),b=null,E=!1,C=1;switch(this.bitstreamFormat_){case c.H264:b=S&31,E=Ye.isSeiNaluType(Ye.CodecFamily.H264,b);break;case c.H265:case c.H266:{C=2,e.skip(1),b=S>>1&63;let A=this.bitstreamFormat_===c.H265?Ye.CodecFamily.H265:Ye.CodecFamily.H266;E=Ye.isSeiNaluType(A,b);break}default:return}if(E){let A=e.readBytes(T-C,!1);for(let w of this.seiProcessor_.process(A))o.push({packet:w,pts:g,format:Rt.CaptionPacketFormat.SEI})}else try{e.skip(T-C)}catch(A){return}_-=T+4}d+=m.sampleDuration||r}}}parseC608Mdat_(e,t,i,r,s,n,a,o){let c=t;for(let d of a){d.dataOffset!=null&&e.seek(n+d.dataOffset);for(let u of d.sampleData){let m=u.sampleSize||s,f=c/i,g=e.readBytes(m,!1);o.push({packet:g,pts:f,format:Rt.CaptionPacketFormat.RAW608}),c+=u.sampleDuration||r}}}setBitstreamFormat_(e){Yi.CodecBitstreamMap_.has(e)&&(this.bitstreamFormat_=Yi.CodecBitstreamMap_.get(e))}};l(Yi,"BitstreamFormat",{UNKNOWN:0,H264:1,H265:2,H266:3,C608_TRACK:4});var Ot=Yi;Ot.CodecBitstreamMap_=new Map().set("avc1",Ot.BitstreamFormat.H264).set("avc3",Ot.BitstreamFormat.H264).set("dvav",Ot.BitstreamFormat.H264).set("dva1",Ot.BitstreamFormat.H264).set("hev1",Ot.BitstreamFormat.H265).set("hvc1",Ot.BitstreamFormat.H265).set("dvh1",Ot.BitstreamFormat.H265).set("dvhe",Ot.BitstreamFormat.H265).set("vvc1",Ot.BitstreamFormat.H266).set("vvi1",Ot.BitstreamFormat.H266).set("dvc1",Ot.BitstreamFormat.H266).set("dvi1",Ot.BitstreamFormat.H266);Rt.registerParser("video/mp4",()=>new Ot);/*! @license
1094
+ * Shaka Player
1095
+ * Copyright 2016 Google LLC
1096
+ * SPDX-License-Identifier: Apache-2.0
1097
+ */var Oa=class{constructor(){l(this,"seiProcessor_");l(this,"tsParser_");this.seiProcessor_=new hs,this.tsParser_=null}init(e){}parse(e){this.tsParser_?this.tsParser_.clearData():this.tsParser_=new pt;let t=[],i=D.toUint8(e);if(!pt.probe(i))return t;let r=this.tsParser_.parse(i),s=r.getCodecs(),n=r.getVideoNalus(),a=null;switch(s.video){case"avc":a=Ye.CodecFamily.H264;break;case"hvc":a=Ye.CodecFamily.H265;break}if(a==null)return t;for(let o of n)if(o.time!=null&&Ye.isSeiNaluType(a,o.type))for(let c of this.seiProcessor_.process(o.data))t.push({packet:c,pts:o.time,format:Rt.CaptionPacketFormat.SEI});return t}};Rt.registerParser("video/mp2t",()=>new Oa);/*! @license
1098
+ * Shaka Player
1099
+ * Copyright 2016 Google LLC
1100
+ * SPDX-License-Identifier: Apache-2.0
1101
+ */var Ni=class Ni{static parseHeader(e,t){let i=Ni.getHeaderLength(e,t);if(t+i<=e.length){let r=Ni.getFullFrameLength(e,t)-i;if(r>0)return{headerLength:i,frameLength:r}}return null}static parseInfo(e,t){let i=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],r=(e[t+2]&60)>>>2;if(r>i.length-1)return null;let s=((e[t+2]&192)>>>6)+1,n=(e[t+2]&1)<<2;return n|=(e[t+3]&192)>>>6,{sampleRate:i[r],channelCount:n,codec:"mp4a.40."+s}}static isHeaderPattern(e,t){return e[t]===255&&(e[t+1]&246)===240}static getHeaderLength(e,t){return e[t+1]&1?7:9}static getFullFrameLength(e,t){return(e[t+3]&3)<<11|e[t+4]<<3|(e[t+5]&224)>>>5}static isHeader(e,t){return t+1<e.length&&Ni.isHeaderPattern(e,t)}static probe(e,t){if(Ni.isHeader(e,t)){let i=Ni.getHeaderLength(e,t);if(t+i>=e.length)return!1;let r=Ni.getFullFrameLength(e,t);if(r<=i)return!1;let s=t+r;return s===e.length||Ni.isHeader(e,s)}return!1}static getFrameDuration(e){return Ni.AAC_SAMPLES_PER_FRAME*9e4/e}static getSilentFrame(e,t){switch(e){case"mp4a.40.2":if(t===1)return new Uint8Array([0,200,0,128,35,128]);if(t===2)return new Uint8Array([33,0,73,144,2,25,0,35,128]);if(t===3)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,142]);if(t===4)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,128,44,128,8,2,56]);if(t===5)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,56]);if(t===6)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,0,178,0,32,8,224]);break;default:if(t===1)return new Uint8Array([1,64,34,128,163,78,230,128,186,8,0,0,0,28,6,241,193,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(t===2)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(t===3)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);break}return null}};l(Ni,"AAC_SAMPLES_PER_FRAME",1024);var Bt=Ni;/*! @license
1102
+ * Shaka Player
1103
+ * Copyright 2016 Google LLC
1104
+ * SPDX-License-Identifier: Apache-2.0
1105
+ */var li=class{constructor(e){l(this,"originalMimeType_");l(this,"frameIndex");l(this,"initSegments");l(this,"lastInitSegment_");this.originalMimeType_=e,this.frameIndex=0,this.initSegments=new Map,this.lastInitSegment_=null}destroy(){this.initSegments.clear()}getOriginalMimeType(){return this.originalMimeType_}getId3Timestamp(e,t){let i=It.getID3Frames(e);if(i.length){let r=i.find(s=>s.description==="com.apple.streaming.transportStreamTimestamp");if(r)return r.data}return t}packageSegment(e,t,i){let r=t.id+"_"+i.discontinuitySequence,s=this.initSegments.getOrInsertComputed(r,()=>e.initSegment()),n=this.lastInitSegment_!==s,a=e.segmentData();return this.lastInitSegment_=s,this.frameIndex++,{data:a,init:n?s:null}}};/*! @license
1106
+ * Shaka Player
1107
+ * Copyright 2016 Google LLC
1108
+ * SPDX-License-Identifier: Apache-2.0
1109
+ */var $e=class{};$e.AUDIO_SAMPLE_FLAGS=Object.freeze({isLeading:0,isDependedOn:0,hasRedundancy:0,degradPrio:0,dependsOn:2,isNonSync:0});$e.VIDEO_KEYFRAME_FLAGS=Object.freeze({isLeading:0,isDependedOn:0,hasRedundancy:0,degradPrio:0,dependsOn:2,isNonSync:0});$e.VIDEO_NON_KEYFRAME_FLAGS=Object.freeze({isLeading:0,isDependedOn:0,hasRedundancy:0,degradPrio:0,dependsOn:1,isNonSync:1});/*! @license
1110
+ * Shaka Player
1111
+ * Copyright 2016 Google LLC
1112
+ * SPDX-License-Identifier: Apache-2.0
1113
+ */var ms=class extends li{isSupported(e,t){if(!this.isAacContainer_(e))return!1;let i=R.ContentType;return Ke.isTypeSupported(this.convertCodecs(i.AUDIO,e))}isAacContainer_(e){return e.toLowerCase().split(";")[0]=="audio/aac"}convertCodecs(e,t){return this.isAacContainer_(t)?`audio/mp4; codecs="${N.getCodecs(t)||"mp4a.40.2"}"`:t}transmux(e,t,i,r){let s=D.toUint8(e),n=It.getID3Data(s),a=n.length;for(;a<s.length&&!Bt.probe(s,a);a++);let o=this.getId3Timestamp(n,i.endTime*1e3),c=Bt.parseInfo(s,a);if(!c)return Promise.reject(new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.TRANSMUXING_FAILED,i?i.getUris()[0]:null));t.audioSamplingRate=c.sampleRate,t.channelsCount=c.channelCount;let d=[];for(;a<s.length;){let _=Bt.parseHeader(s,a);if(!_)return Promise.reject(new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.TRANSMUXING_FAILED,i?i.getUris()[0]:null));let T=_.headerLength+_.frameLength;if(a+T<=s.length){let S=s.subarray(a+_.headerLength,a+T);d.push({data:S,size:_.frameLength,duration:Bt.AAC_SAMPLES_PER_FRAME,cts:0,flags:$e.AUDIO_SAMPLE_FLAGS})}a+=T}let u=c.sampleRate,m=Math.floor(o*u/1e3),f={id:t.id,type:R.ContentType.AUDIO,codecs:c.codec,timescale:u,duration:r,mediaConfig:new Uint8Array([]),data:{sequenceNumber:this.frameIndex,baseMediaDecodeTime:m,samples:d},stream:t},g=new xe([f]);return Promise.resolve(this.packageSegment(g,t,i))}};Oe.registerTransmuxer("audio/aac",()=>new ms("audio/aac"),Oe.PluginPriority.FALLBACK);/*! @license
1114
+ * Shaka Player
1115
+ * Copyright 2016 Google LLC
1116
+ * SPDX-License-Identifier: Apache-2.0
1117
+ */var Oi=class{static parseFrame(e,t,i){if(t+8>e.length||e[t]!==11||e[t+1]!==119)return!1;let r=e[t+4]>>6;if(r>=3)return!1;let s=[48e3,44100,32e3],n=e[t+4]&63,o=[64,69,96,64,70,96,80,87,120,80,88,120,96,104,144,96,105,144,112,121,168,112,122,168,128,139,192,128,140,192,160,174,240,160,175,240,192,208,288,192,209,288,224,243,336,224,244,336,256,278,384,256,279,384,320,348,480,320,349,480,384,417,576,384,418,576,448,487,672,448,488,672,512,557,768,512,558,768,640,696,960,640,697,960,768,835,1152,768,836,1152,896,975,1344,896,976,1344,1024,1114,1536,1024,1115,1536,1152,1253,1728,1152,1254,1728,1280,1393,1920,1280,1394,1920][n*3+r]*2;if(t+o>e.length)return!1;let c=e[t+6]>>5,d=0;c===2?d+=2:(c&1&&c!==1&&(d+=2),c&4&&(d+=2));let u=(e[t+6]<<8|e[t+7])>>12-d&1,m=[2,1,2,3,3,4,4,5],f=e[t+5]>>3,g=e[t+5]&7,_=new Uint8Array([r<<6|f<<1|g>>2,(g&3)<<6|c<<3|u<<2|n>>4,n<<4&224]);return i.sampleRate=s[r],i.channelCount=m[c]+u,i.audioConfig=_,i.frameLength=o,!0}static probe(e,t){if(e[t]===11&&e[t+1]===119){let i=0,r=5;t+=r;let s=null,n=null,a=null;for(;r>0;){a=e[t];let o=Math.min(r,8),c=8-o;n=4278190080>>>24+c<<c,s=(a&n)>>c,i=i?i<<o|s:s,t+=1,r-=o}if(i<16)return!0}return!1}};l(Oi,"AC3_SAMPLES_PER_FRAME",1536);/*! @license
1118
+ * Shaka Player
1119
+ * Copyright 2016 Google LLC
1120
+ * SPDX-License-Identifier: Apache-2.0
1121
+ */var Ba=class extends li{isSupported(e,t){if(!this.isAc3Container_(e))return!1;let i=R.ContentType;return Ke.isTypeSupported(this.convertCodecs(i.AUDIO,e))}isAc3Container_(e){return e.toLowerCase().split(";")[0]=="audio/ac3"}convertCodecs(e,t){return this.isAc3Container_(t)?j.getDevice().requiresEC3InitSegments()?'audio/mp4; codecs="ec-3"':'audio/mp4; codecs="ac-3"':t}transmux(e,t,i,r){let s=D.toUint8(e),n=It.getID3Data(s),a=n.length;for(;a<s.length&&!Oi.probe(s,a);a++);let o=this.getId3Timestamp(n,i.endTime*1e3),c=0,d=new Uint8Array([]),u=[],m={sampleRate:0,channelCount:0,audioConfig:new Uint8Array(0),frameLength:0};for(;a<s.length;){if(!Oi.parseFrame(s,a,m))return Promise.reject(new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.TRANSMUXING_FAILED,i?i.getUris()[0]:null));t.audioSamplingRate=m.sampleRate,t.channelsCount=m.channelCount,c=m.sampleRate,d=m.audioConfig;let S=s.subarray(a,a+m.frameLength);u.push({data:S,size:m.frameLength,duration:Oi.AC3_SAMPLES_PER_FRAME,cts:0,flags:$e.AUDIO_SAMPLE_FLAGS}),a+=m.frameLength}let f=Math.floor(o*c/1e3),g={id:t.id,type:R.ContentType.AUDIO,codecs:"ac-3",timescale:c,duration:r,mediaConfig:d,data:{sequenceNumber:this.frameIndex,baseMediaDecodeTime:f,samples:u},stream:t},_=new xe([g]);return Promise.resolve(this.packageSegment(_,t,i))}};Oe.registerTransmuxer("audio/ac3",()=>new Ba("audio/ac3"),Oe.PluginPriority.FALLBACK);/*! @license
1122
+ * Shaka Player
1123
+ * Copyright 2016 Google LLC
1124
+ * SPDX-License-Identifier: Apache-2.0
1125
+ */var Fa=class Fa{static parseFrame(e,t,i){if(t+8>e.length||!Fa.probe(e,t))return!1;let r=new ii(e.subarray(t+2));r.skipBits(2),r.skipBits(3);let s=r.readBits(11)+1<<1,n=r.readBits(2),a=null,o=null;n==3?(n=r.readBits(2),a=[24e3,22060,16e3][n],o=3):(a=[48e3,44100,32e3][n],o=r.readBits(2));let c=r.readBits(3),d=r.readBits(1),u=r.readBits(5);if(t+s>e.byteLength)return!1;let m=[2,1,2,3,3,4,4,5],g=[1,2,3,6][o],_=Math.floor(s*a/(g*16)),T=new Uint8Array([(_&8160)>>5,(_&31)<<3,a<<6|u<<1|0,0|c<<1|d<<0,0]);return i.sampleRate=a,i.channelCount=m[c]+d,i.audioConfig=T,i.frameLength=s,!0}static probe(e,t){return(e[t]<<8|e[t+1]<<0)===2935}};l(Fa,"EC3_SAMPLES_PER_FRAME",1536);var $i=Fa;/*! @license
1126
+ * Shaka Player
1127
+ * Copyright 2016 Google LLC
1128
+ * SPDX-License-Identifier: Apache-2.0
1129
+ */var Va=class extends li{isSupported(e,t){if(!this.isEc3Container_(e))return!1;let i=R.ContentType;return Ke.isTypeSupported(this.convertCodecs(i.AUDIO,e))}isEc3Container_(e){return e.toLowerCase().split(";")[0]=="audio/ec3"}convertCodecs(e,t){return this.isEc3Container_(t)?'audio/mp4; codecs="ec-3"':t}transmux(e,t,i,r){let s=D.toUint8(e),n=It.getID3Data(s),a=n.length;for(;a<s.length&&!$i.probe(s,a);a++);let o=this.getId3Timestamp(n,i.endTime*1e3),c=0,d=new Uint8Array([]),u=[],m={sampleRate:0,channelCount:0,audioConfig:new Uint8Array(0),frameLength:0};for(;a<s.length;){if(!$i.parseFrame(s,a,m))return Promise.reject(new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.TRANSMUXING_FAILED,i?i.getUris()[0]:null));t.audioSamplingRate=m.sampleRate,t.channelsCount=m.channelCount,c=m.sampleRate,d=m.audioConfig;let S=s.subarray(a,a+m.frameLength);u.push({data:S,size:m.frameLength,duration:$i.EC3_SAMPLES_PER_FRAME,cts:0,flags:$e.AUDIO_SAMPLE_FLAGS}),a+=m.frameLength}let f=Math.floor(o*c/1e3),g={id:t.id,type:R.ContentType.AUDIO,codecs:"ec-3",timescale:c,duration:r,mediaConfig:d,data:{sequenceNumber:this.frameIndex,baseMediaDecodeTime:f,samples:u},stream:t},_=new xe([g]);return Promise.resolve(this.packageSegment(_,t,i))}};Oe.registerTransmuxer("audio/ec3",()=>new Va("audio/ec3"),Oe.PluginPriority.FALLBACK);/*! @license
1130
+ * Shaka Player
1131
+ * Copyright 2016 Google LLC
1132
+ * SPDX-License-Identifier: Apache-2.0
1133
+ */var Ct=class Ct{static parseInfo(e){if(!e.length)return null;let t=e.find(x=>x.type==Ct.NALU_TYPE_SPS_),i=e.find(x=>x.type==Ct.NALU_TYPE_PPS_);if(!t||!i)return null;let r=new ii(t.data),s=r.readUnsignedByte();if(r.readUnsignedByte(),r.readUnsignedByte(),r.skipExpGolomb(),Ct.PROFILES_WITH_OPTIONAL_SPS_DATA_.includes(s)){let x=r.readUnsignedExpGolomb();if(x===3&&r.skipBits(1),r.skipExpGolomb(),r.skipExpGolomb(),r.skipBits(1),r.readBoolean()){let k=x!==3?8:12;for(let L=0;L<k;L++)r.readBoolean()&&(L<6?r.skipScalingList(16):r.skipScalingList(64))}}r.skipExpGolomb();let n=r.readUnsignedExpGolomb();if(n===0)r.readUnsignedExpGolomb();else if(n===1){r.skipBits(1),r.skipExpGolomb(),r.skipExpGolomb();let x=r.readUnsignedExpGolomb();for(let k=0;k<x;k++)r.skipExpGolomb()}r.skipExpGolomb(),r.skipBits(1);let a=r.readUnsignedExpGolomb(),o=r.readUnsignedExpGolomb(),c=r.readBits(1);c===0&&r.skipBits(1),r.skipBits(1);let d=0,u=0,m=0,f=0;r.readBoolean()&&(d=r.readUnsignedExpGolomb(),u=r.readUnsignedExpGolomb(),m=r.readUnsignedExpGolomb(),f=r.readUnsignedExpGolomb());let g=1,_=1;if(r.readBoolean()&&r.readBoolean()){let x=r.readUnsignedByte(),k=[1,12,10,16,40,24,20,32,80,18,15,64,160,4,3,2],L=[1,11,11,11,33,11,11,11,33,11,11,33,99,3,2,1];x>0&&x<=16?(g=k[x-1],_=L[x-1]):x===255&&(g=r.readBits(16),_=r.readBits(16))}let T=(2-c)*(o+1)*16-m*2-f*2,S=(a+1)*16-d*2-u*2,b=t.fullData,E=b.byteLength,C=i.fullData,A=C.byteLength,w=0,M=new Uint8Array(11+E+A);return M[w++]=1,M[w++]=b[1],M[w++]=b[2],M[w++]=b[3],M[w++]=255,M[w++]=225,M[w++]=E>>>8&255,M[w++]=E&255,M.set(b,w),w+=E,M[w++]=1,M[w++]=A>>>8&255,M[w++]=A&255,M.set(C,w),{height:T,width:S,videoConfig:M,hSpacing:g,vSpacing:_}}static getVideoSamples(e){let t=[],i=null,r=!1,s=()=>{if(!i||!i.nalus.length||!i.frame)return;let o=i.nalus.length*4;for(let u of i.nalus)o+=u.fullData.byteLength;let c=new Uint8Array(o),d=0;for(let u of i.nalus){let m=u.fullData.byteLength;c[d]=m>>24&255,c[d+1]=m>>16&255,c[d+2]=m>>8&255,c[d+3]=m&255,c.set(u.fullData,d+4),d+=4+m}i.data=c,t.push(i)},n=new Uint8Array(0),a=o=>{i={data:n,frame:!1,isKeyframe:!1,pts:o.pts,dts:o.dts,nalus:[]}};for(let o=0;o<e.length;o++){let c=e[o],d=c.nalus,u=!1;i&&d.length&&!r&&(s(),a(c));for(let m of c.nalus){let f=!1;switch(m.type){case Ct.NALU_TYPE_NDR_:{let g=!1;f=!0;let _=m.data;if(u&&_.length>4){let T=new ii(_).readSliceType();(T===2||T===4||T===7||T===9)&&(g=!0)}g&&i&&i.frame&&!i.isKeyframe&&(s(),i=null),i||a(c),i.frame=!0,i.isKeyframe=g;break}case Ct.NALU_TYPE_IDR_:{f=!0,i&&i.frame&&!i.isKeyframe&&(s(),i=null),i||a(c),i.frame=!0,i.isKeyframe=!0;break}case Ct.NALU_TYPE_SEI_:f=!0;break;case Ct.NALU_TYPE_SPS_:f=!0,u=!0;break;case Ct.NALU_TYPE_PPS_:f=!0;break;case Ct.NALU_TYPE_AUD_:f=!0,r=!0,i&&i.frame&&(s(),i=null),i||a(c);break;case Ct.NALU_TYPE_FILLER_DATA_:f=!0;break;default:f=!1;break}i&&f&&i.nalus.push(m)}}return s(),t}static isKeyframe(e){return e.some(t=>t.type===Ct.NALU_TYPE_IDR_)}};l(Ct,"NALU_TYPE_NDR_",1),l(Ct,"NALU_TYPE_IDR_",5),l(Ct,"NALU_TYPE_SEI_",6),l(Ct,"NALU_TYPE_SPS_",7),l(Ct,"NALU_TYPE_PPS_",8),l(Ct,"NALU_TYPE_AUD_",9),l(Ct,"NALU_TYPE_FILLER_DATA_",12),l(Ct,"PROFILES_WITH_OPTIONAL_SPS_DATA_",[100,110,122,244,44,83,86,118,128,138,139,134]);var rr=Ct;/*! @license
1134
+ * Shaka Player
1135
+ * Copyright 2016 Google LLC
1136
+ * SPDX-License-Identifier: Apache-2.0
1137
+ */var et=class et{static parseInfo(e){if(!e.length)return null;let t=e.find(d=>d.type==et.NALU_TYPE_VPS_),i=e.find(d=>d.type==et.NALU_TYPE_SPS_),r=e.find(d=>d.type==et.NALU_TYPE_PPS_);if(!t||!i||!r)return null;let s=et.parseVPS_(t.fullData),n=et.parseSPS_(i.fullData),a=et.parsePPS_(r.fullData),o={numTemporalLayers:s.numTemporalLayers,temporalIdNested:s.temporalIdNested,generalProfileSpace:n.generalProfileSpace,generalTierFlag:n.generalTierFlag,generalLevelIdc:n.generalLevelIdc,generalProfileIdc:n.generalProfileIdc,generalProfileCompatibilityFlags1:n.generalProfileCompatibilityFlags1,generalProfileCompatibilityFlags2:n.generalProfileCompatibilityFlags2,generalProfileCompatibilityFlags3:n.generalProfileCompatibilityFlags3,generalProfileCompatibilityFlags4:n.generalProfileCompatibilityFlags4,generalConstraintIndicatorFlags1:n.generalConstraintIndicatorFlags1,generalConstraintIndicatorFlags2:n.generalConstraintIndicatorFlags2,generalConstraintIndicatorFlags3:n.generalConstraintIndicatorFlags3,generalConstraintIndicatorFlags4:n.generalConstraintIndicatorFlags4,generalConstraintIndicatorFlags5:n.generalConstraintIndicatorFlags5,generalConstraintIndicatorFlags6:n.generalConstraintIndicatorFlags6,minSpatialSegmentationIdc:n.minSpatialSegmentationIdc,chromaFormatIdc:n.chromaFormatIdc,bitDepthLumaMinus8:n.bitDepthLumaMinus8,bitDepthChromaMinus8:n.bitDepthChromaMinus8,parallelismType:a.parallelismType,frameRateFps:n.frameRateFps,frameRateFixed:n.frameRateFixed},c=et.getVideoConfiguration_(t.fullData,i.fullData,r.fullData,o);return{height:n.height,width:n.width,videoConfig:c,hSpacing:n.sarWidth,vSpacing:n.sarHeight}}static parseVPS_(e){let t=new ii(e,!0);t.readUnsignedByte(),t.readUnsignedByte(),t.readBits(4),t.readBits(2),t.readBits(6);let i=t.readBits(3),r=t.readBoolean();return{numTemporalLayers:i+1,temporalIdNested:r}}static parseSPS_(e){let t=new ii(e,!0);t.readUnsignedByte(),t.readUnsignedByte();let i=0,r=0,s=0,n=0;t.readBits(4);let a=t.readBits(3);t.readBoolean();let o=t.readBits(2),c=t.readBits(1),d=t.readBits(5),u=t.readUnsignedByte(),m=t.readUnsignedByte(),f=t.readUnsignedByte(),g=t.readUnsignedByte(),_=t.readUnsignedByte(),T=t.readUnsignedByte(),S=t.readUnsignedByte(),b=t.readUnsignedByte(),E=t.readUnsignedByte(),C=t.readUnsignedByte(),A=t.readUnsignedByte(),w=[],M=[];for(let Qe=0;Qe<a;Qe++)w.push(t.readBoolean()),M.push(t.readBoolean());if(a>0)for(let Qe=a;Qe<8;Qe++)t.readBits(2);for(let Qe=0;Qe<a;Qe++)w[Qe]&&t.readBits(88),M[Qe]&&t.readUnsignedByte();t.readUnsignedExpGolomb();let x=t.readUnsignedExpGolomb();x==3&&t.readBits(1);let k=t.readUnsignedExpGolomb(),L=t.readUnsignedExpGolomb();t.readBoolean()&&(i+=t.readUnsignedExpGolomb(),r+=t.readUnsignedExpGolomb(),s+=t.readUnsignedExpGolomb(),n+=t.readUnsignedExpGolomb());let ee=t.readUnsignedExpGolomb(),oe=t.readUnsignedExpGolomb(),le=t.readUnsignedExpGolomb();if(t.readBoolean())for(let Qe=0;Qe<=a;Qe++)t.readUnsignedExpGolomb(),t.readUnsignedExpGolomb(),t.readUnsignedExpGolomb();else t.readUnsignedExpGolomb(),t.readUnsignedExpGolomb(),t.readUnsignedExpGolomb();if(t.readUnsignedExpGolomb(),t.readUnsignedExpGolomb(),t.readUnsignedExpGolomb(),t.readUnsignedExpGolomb(),t.readUnsignedExpGolomb(),t.readUnsignedExpGolomb(),t.readBoolean()&&t.readBoolean())for(let Ft=0;Ft<4;Ft++)for(let fi=0;fi<(Ft===3?2:6);fi++)if(!t.readBoolean())t.readUnsignedExpGolomb();else{let Ei=Math.min(64,1<<4+(Ft<<1));Ft>1&&t.readExpGolomb();for(let qr=0;qr<Ei;qr++)t.readExpGolomb()}t.readBoolean(),t.readBoolean(),t.readBoolean()&&(t.readUnsignedByte(),t.readUnsignedExpGolomb(),t.readUnsignedExpGolomb(),t.readBoolean());let ce=t.readUnsignedExpGolomb(),W=0;for(let Qe=0;Qe<ce;Qe++){let Ft=!1;if(Qe!==0&&(Ft=t.readBoolean()),Ft){Qe===ce&&t.readUnsignedExpGolomb(),t.readBoolean(),t.readUnsignedExpGolomb();let fi=0;for(let Ar=0;Ar<=W;Ar++){let Ei=t.readBoolean(),qr=!1;Ei||(qr=t.readBoolean()),(Ei||qr)&&fi++}W=fi}else{let fi=t.readUnsignedExpGolomb(),Ar=t.readUnsignedExpGolomb();W=fi+Ar;for(let Ei=0;Ei<fi;Ei++)t.readUnsignedExpGolomb(),t.readBoolean();for(let Ei=0;Ei<Ar;Ei++)t.readUnsignedExpGolomb(),t.readBoolean()}}if(t.readBoolean()){let Qe=t.readUnsignedExpGolomb();for(let Ft=0;Ft<Qe;Ft++){for(let fi=0;fi<le+4;fi++)t.readBits(1);t.readBits(1)}}let ge=!1,Y=1,X=1,O=!0,$=1,Ie=0,tt=0;if(t.readBoolean(),t.readBoolean(),t.readBoolean()){if(t.readBoolean()){let Ir=t.readUnsignedByte(),mo=[1,12,10,16,40,24,20,32,80,18,15,64,160,4,3,2],po=[1,11,11,11,33,11,11,11,33,11,11,33,99,3,2,1];Ir>0&&Ir<=16?(Y=mo[Ir-1],X=po[Ir-1]):Ir===255&&(Y=t.readBits(16),X=t.readBits(16))}if(t.readBoolean()&&t.readBoolean(),t.readBoolean()&&(t.readBits(3),t.readBoolean(),t.readBoolean()&&(t.readUnsignedByte(),t.readUnsignedByte(),t.readUnsignedByte())),t.readBoolean()&&(t.readUnsignedExpGolomb(),t.readUnsignedExpGolomb()),t.readBoolean(),t.readBoolean(),t.readBoolean(),ge=t.readBoolean(),ge&&(t.skipExpGolomb(),t.skipExpGolomb(),t.skipExpGolomb(),t.skipExpGolomb()),t.readBoolean()&&($=t.readBits(32),Ie=t.readBits(32),t.readBoolean()&&t.readUnsignedExpGolomb(),t.readBoolean())){let Wa=!1,za=!1,gs=!1;Wa=t.readBoolean(),za=t.readBoolean(),(Wa||za)&&(gs=t.readBoolean(),gs&&(t.readUnsignedByte(),t.readBits(5),t.readBoolean(),t.readBits(5)),t.readBits(4),t.readBits(4),gs&&t.readBits(4),t.readBits(5),t.readBits(5),t.readBits(5));for(let fo=0;fo<=a;fo++){O=t.readBoolean();let go=!0,Xa=1;O||(go=t.readBoolean());let _o=!1;if(go?t.readUnsignedExpGolomb():_o=t.readBoolean(),_o||(Xa=t.readUnsignedExpGolomb()+1),Wa){for(let _s=0;_s<Xa;_s++)t.readUnsignedExpGolomb(),t.readUnsignedExpGolomb(),gs&&(t.readUnsignedExpGolomb(),t.readUnsignedExpGolomb());t.readBoolean()}if(za){for(let _s=0;_s<Xa;_s++)t.readUnsignedExpGolomb(),t.readUnsignedExpGolomb(),gs&&(t.readUnsignedExpGolomb(),t.readUnsignedExpGolomb());t.readBoolean()}}}t.readBoolean()&&(t.readBoolean(),t.readBoolean(),t.readBoolean(),tt=t.readUnsignedExpGolomb(),t.readUnsignedExpGolomb(),t.readUnsignedExpGolomb(),t.readUnsignedExpGolomb(),t.readUnsignedExpGolomb())}let bt=x===1||x===2?2:1,yt=x===1?2:1,xt=k-(i+r)*bt,mt=L-(s+n)*yt;return{generalLevelIdc:A,generalProfileSpace:o,generalTierFlag:c,generalProfileIdc:d,generalProfileCompatibilityFlags1:u,generalProfileCompatibilityFlags2:m,generalProfileCompatibilityFlags3:f,generalProfileCompatibilityFlags4:g,generalConstraintIndicatorFlags1:_,generalConstraintIndicatorFlags2:T,generalConstraintIndicatorFlags3:S,generalConstraintIndicatorFlags4:b,generalConstraintIndicatorFlags5:E,generalConstraintIndicatorFlags6:C,minSpatialSegmentationIdc:tt,chromaFormatIdc:x,bitDepthLumaMinus8:ee,bitDepthChromaMinus8:oe,width:xt,height:mt,sarWidth:Y,sarHeight:X,frameRateFps:Ie/$,frameRateFixed:O}}static parsePPS_(e){let t=new ii(e,!0);t.readUnsignedByte(),t.readUnsignedByte(),t.readUnsignedExpGolomb(),t.readUnsignedExpGolomb(),t.readBoolean(),t.readBoolean(),t.readBits(3),t.readBoolean(),t.readBoolean(),t.readUnsignedExpGolomb(),t.readUnsignedExpGolomb(),t.readExpGolomb(),t.readBoolean(),t.readBoolean(),t.readBoolean()&&t.readUnsignedExpGolomb(),t.readExpGolomb(),t.readExpGolomb(),t.readBoolean(),t.readBoolean(),t.readBoolean(),t.readBoolean();let r=t.readBoolean(),s=t.readBoolean(),n=1;return s&&r?n=0:s?n=3:r&&(n=2),{parallelismType:n}}static getVideoConfiguration_(e,t,i,r){let s=23+(5+e.byteLength)+(5+t.byteLength)+(5+i.byteLength),n=new Uint8Array(s);n[0]=1,n[1]=(r.generalProfileSpace&3)<<6|(r.generalTierFlag?1:0)<<5|r.generalProfileIdc&31,n[2]=r.generalProfileCompatibilityFlags1,n[3]=r.generalProfileCompatibilityFlags2,n[4]=r.generalProfileCompatibilityFlags3,n[5]=r.generalProfileCompatibilityFlags4,n[6]=r.generalConstraintIndicatorFlags1,n[7]=r.generalConstraintIndicatorFlags2,n[8]=r.generalConstraintIndicatorFlags3,n[9]=r.generalConstraintIndicatorFlags4,n[10]=r.generalConstraintIndicatorFlags5,n[11]=r.generalConstraintIndicatorFlags6,n[12]=r.generalLevelIdc,n[13]=240|(r.minSpatialSegmentationIdc&3840)>>8,n[14]=r.minSpatialSegmentationIdc&255,n[15]=252|r.parallelismType&3,n[16]=252|r.chromaFormatIdc&3,n[17]=248|r.bitDepthLumaMinus8&7,n[18]=248|r.bitDepthChromaMinus8&7,n[19]=0,n[20]=parseInt(r.frameRateFps,10),n[21]=((r.frameRateFixed?1:0)&3)<<6|(r.numTemporalLayers&7)<<3|(r.temporalIdNested?1:0)<<2|3,n[22]=3;let a=[e,t,i],o=23,c=a.length-1;for(let d=0;d<a.length;d+=1)n.set(new Uint8Array([32+d|(d===c?128:0),0,1,a[d].byteLength>>8,a[d].byteLength&255]),o),o+=5,n.set(a[d],o),o+=a[d].byteLength;return n}static parseFrame(e,t){let i=!1,r=[],s=0,n=!1;for(let c of e){let d=!1;switch(c.type){case et.NALU_TYPE_TRAIL_N_:case et.NALU_TYPE_TRAIL_R_:{n=!0,d=!0;break}case et.NALU_TYPE_IDR_W_RADL_:case et.NALU_TYPE_IDR_N_LP_:case et.NALU_TYPE_CRA_NUT_:n=!0,d=!0,i=!0;break;case et.NALU_TYPE_VPS_:case et.NALU_TYPE_SPS_:case et.NALU_TYPE_PPS_:d=!0;break;case et.NALU_TYPE_AUD_:d=!0,n=!0;break;case et.NALU_TYPE_SEI_PREFIX_:case et.NALU_TYPE_SEI_SUFFIX_:d=!0;break;default:d=!1;break}n&&d&&(r.push(c.fullData),s+=c.fullData.byteLength)}if(!r.length)return!1;s+=4*r.length;let a=new Uint8Array(s),o=0;for(let c of r){let d=c.byteLength;a[o]=d>>24&255,a[o+1]=d>>16&255,a[o+2]=d>>8&255,a[o+3]=d&255,a.set(c,o+4),o+=d+4}return t.data=a,t.isKeyframe=i,!0}};l(et,"NALU_TYPE_TRAIL_N_",1),l(et,"NALU_TYPE_TRAIL_R_",0),l(et,"NALU_TYPE_IDR_W_RADL_",19),l(et,"NALU_TYPE_IDR_N_LP_",20),l(et,"NALU_TYPE_CRA_NUT_",21),l(et,"NALU_TYPE_VPS_",32),l(et,"NALU_TYPE_SPS_",33),l(et,"NALU_TYPE_PPS_",34),l(et,"NALU_TYPE_AUD_",35),l(et,"NALU_TYPE_SEI_PREFIX_",39),l(et,"NALU_TYPE_SEI_SUFFIX_",40);var sr=et;/*! @license
1138
+ * Shaka Player
1139
+ * Copyright 2016 Google LLC
1140
+ * SPDX-License-Identifier: Apache-2.0
1141
+ */var ps=class ps{static getAudioConfig(e){let t=[];switch(e.channelConfigCode){case 1:case 2:t=[0];break;case 0:t=[255,1,1,0,1];break;case 128:t=[255,2,0,0,1];break;case 3:t=[1,2,1,0,2,1];break;case 4:t=[1,2,2,0,1,2,3];break;case 5:t=[1,3,2,0,4,1,2,3];break;case 6:t=[1,4,2,0,4,1,2,3,5];break;case 7:t=[1,4,2,0,4,1,2,3,5,6];break;case 8:t=[1,5,3,0,6,1,2,3,4,5,7];break;case 130:t=[1,1,2,0,1];break;case 131:t=[1,1,3,0,1,2];break;case 132:t=[1,1,4,0,1,2,3];break;case 133:t=[1,1,5,0,1,2,3,4];break;case 134:t=[1,1,6,0,1,2,3,4,5];break;case 135:t=[1,1,7,0,1,2,3,4,5,6];break;case 136:t=[1,1,8,0,1,2,3,4,5,6,7];break}return new Uint8Array([0,e.channelCount,0,0,e.sampleRate>>>24&255,e.sampleRate>>>17&255,e.sampleRate>>>8&255,e.sampleRate>>>0&255,0,0,...t])}static getPacketSampleCount(e){if(e.length<1)return ps.OPUS_AUDIO_SAMPLE_PER_FRAME;let t=e[0],i=t>>3&31,r=t&3,s=ps.SAMPLES_PER_FRAME_BY_CONFIG_[i],n;if(r===0)n=1;else if(r===1||r===2)n=2;else if(e.length<2||(n=e[1]&63,n===0))return s;return s*n}};l(ps,"SAMPLES_PER_FRAME_BY_CONFIG_",[480,960,1920,2880,480,960,1920,2880,480,960,1920,2880,480,960,480,960,120,240,480,960,120,240,480,960,120,240,480,960,120,240,480,960]),l(ps,"OPUS_AUDIO_SAMPLE_PER_FRAME",960);var Er=ps;/*! @license
1142
+ * Shaka Player
1143
+ * Copyright 2016 Google LLC
1144
+ * SPDX-License-Identifier: Apache-2.0
1145
+ */var nr=class nr extends li{constructor(t){super(t);l(this,"avcInfo_");l(this,"hvcInfo_");this.avcInfo_=null,this.hvcInfo_=null}destroy(){super.destroy(),this.avcInfo_=null,this.hvcInfo_=null}isSupported(t,i){if(!this.isLocContainer_(t))return!1;let r=R.ContentType,s=t;i&&(s=this.convertCodecs(i,t));let n=N.getCodecs(s),a=N.splitCodecs(n),o=R.guessCodecsSafe(r.AUDIO,a),c=R.guessCodecsSafe(r.VIDEO,a);if(o){let m=N.getNormalizedCodec(o);if(!nr.SUPPORTED_AUDIO_CODECS_.includes(m))return!1}if(c){let m=N.getNormalizedCodec(c);if(!nr.SUPPORTED_VIDEO_CODECS_.includes(m))return!1}if(i)return Ke.isTypeSupported(this.convertCodecs(i,t));let d=this.convertCodecs(r.AUDIO,t),u=this.convertCodecs(r.VIDEO,t);return Ke.isTypeSupported(d)||Ke.isTypeSupported(u)}isLocContainer_(t){return t.toLowerCase().split(";")[0]=="moq/loc"}convertCodecs(t,i){if(this.isLocContainer_(i)){let r=R.ContentType,s=N.getCodecs(i).split(",").map(n=>N.getCorrectAudioCodecs(n,"audio/mp4")).map(N.getCorrectVideoCodecs).join(",");return t==r.AUDIO?`audio/mp4; codecs="${s}"`:`video/mp4; codecs="${s}"`}return i}transmux(t,i,r,s,n){let a=R.ContentType,o=D.toUint8(t),c=[];try{let u=N.getNormalizedCodec(i.codecs),m;if(n==a.VIDEO){switch(u){case"avc":m=this.getAvcStreamInfo_(o,i,r,s);break;case"hevc":m=this.getHvcStreamInfo_(o,i,s,r);break}m&&c.push(m)}if(n==a.AUDIO){switch(u){case"aac":m=this.getAacStreamInfo_(o,i,s,r);break;case"opus":m=this.getOpusStreamInfo_(o,i,s,r);break}m&&c.push(m)}}catch(u){return Promise.reject(u)}if(!c.length)return Promise.resolve({data:new Uint8Array([]),init:null});let d=new xe(c);return Promise.resolve(this.packageSegment(d,i,r))}extractNalus_(t,i){let r=[],s=i==="hvc",n=s?2:1,a=0;for(;a+4<=t.byteLength;){let o=(t[a]<<24|t[a+1]<<16|t[a+2]<<8|t[a+3])>>>0;a+=4;let c;if(o===1){c=t.byteLength;for(let f=a;f+2<t.byteLength;f++)if(t[f]===0&&t[f+1]===0){if(t[f+2]===1){c=f;break}if(f+3<t.byteLength&&t[f+2]===0&&t[f+3]===1){c=f;break}}}else if(c=a+o,c>t.byteLength)break;if(c<=a)break;let d=t.subarray(a,c),u=s?(d[0]&126)>>1:d[0]&31,m=d.length>n?d.subarray(n):new Uint8Array([]);r.push({type:u,data:m,fullData:d}),a=c}return r}getAvcStreamInfo_(t,i,r,s){let n=nr.VIDEO_TIMESCALE_,a=this.extractNalus_(t,"avc"),o=rr.parseInfo(a);if(o&&(this.avcInfo_=o,i.height=o.height,i.width=o.width),!this.avcInfo_)return null;let c=rr.isKeyframe(a),d=Math.floor(r.startTime*n),u=Math.floor((r.endTime-r.startTime)*n),m=[{data:t,size:t.byteLength,duration:u,cts:0,flags:c?$e.VIDEO_KEYFRAME_FLAGS:$e.VIDEO_NON_KEYFRAME_FLAGS}];return{id:i.id,type:R.ContentType.VIDEO,codecs:"avc1",timescale:n,duration:s,mediaConfig:this.avcInfo_.videoConfig,hSpacing:this.avcInfo_.hSpacing,vSpacing:this.avcInfo_.vSpacing,data:{sequenceNumber:this.frameIndex,baseMediaDecodeTime:d,samples:m},stream:i}}getHvcStreamInfo_(t,i,r,s){let n=nr.VIDEO_TIMESCALE_,a=this.extractNalus_(t,"hvc"),o=sr.parseInfo(a);if(o&&(this.hvcInfo_=o,i.height=o.height,i.width=o.width),!this.hvcInfo_)return null;let c=Math.floor(s.startTime*n),d=Math.floor((s.endTime-s.startTime)*n),u={data:new Uint8Array(0),isKeyframe:!1};if(!sr.parseFrame(a,u))return null;let f=[{data:u.data,size:u.data.byteLength,duration:d,cts:0,flags:u.isKeyframe?$e.VIDEO_KEYFRAME_FLAGS:$e.VIDEO_NON_KEYFRAME_FLAGS}];return{id:i.id,type:R.ContentType.VIDEO,codecs:"hvc1",timescale:n,duration:r,mediaConfig:this.hvcInfo_.videoConfig,hSpacing:this.hvcInfo_.hSpacing,vSpacing:this.hvcInfo_.vSpacing,data:{sequenceNumber:this.frameIndex,baseMediaDecodeTime:c,samples:f},stream:i}}getAacStreamInfo_(t,i,r,s){v.assert(i.audioSamplingRate,"Must have audioSamplingRate");let n=i.audioSamplingRate,a=Math.floor(s.startTime*n),o=[{data:t,size:t.length,duration:1024,cts:0,flags:$e.AUDIO_SAMPLE_FLAGS}];return{id:i.id,type:R.ContentType.AUDIO,codecs:i.codecs,timescale:n,duration:r,mediaConfig:new Uint8Array([]),data:{sequenceNumber:this.frameIndex,baseMediaDecodeTime:a,samples:o},stream:i}}getOpusStreamInfo_(t,i,r,s){v.assert(i.audioSamplingRate,"Must have audioSamplingRate");let n=i.audioSamplingRate,a=Math.floor(s.startTime*n),o=[{data:t,size:t.length,duration:Er.getPacketSampleCount(t),cts:0,flags:$e.AUDIO_SAMPLE_FLAGS}],c=new Uint8Array([0,i.channelsCount,0,0,i.audioSamplingRate>>>24&255,i.audioSamplingRate>>>17&255,i.audioSamplingRate>>>8&255,i.audioSamplingRate>>>0&255,0,0,0]);return{id:i.id,type:R.ContentType.AUDIO,codecs:i.codecs,timescale:n,duration:r,mediaConfig:c,data:{sequenceNumber:this.frameIndex,baseMediaDecodeTime:a,samples:o},stream:i}}};l(nr,"VIDEO_TIMESCALE_",9e4),l(nr,"SUPPORTED_AUDIO_CODECS_",["aac","opus"]),l(nr,"SUPPORTED_VIDEO_CODECS_",["avc","hevc"]);var Ha=nr;Oe.registerTransmuxer("moq/loc",()=>new Ha("moq/loc"),Oe.PluginPriority.FALLBACK);/*! @license
1146
+ * Shaka Player
1147
+ * Copyright 2016 Google LLC
1148
+ * SPDX-License-Identifier: Apache-2.0
1149
+ */var Jt=class Jt{static parseHeader(e,t){let i=e[t+1]>>3&3,r=e[t+1]>>1&3,s=e[t+2]>>4&15,n=e[t+2]>>2&3;if(i!==1&&s!==0&&s!==15&&n!==3){let a=e[t+2]>>1&1,o=e[t+3]>>6,c=0;i===3?c=3-r:c=r===3?3:4;let d=Jt.BITRATES_MAP_[c*14+s-1]*1e3,u=i===3?0:i===2?1:2,m=Jt.SAMPLING_RATE_MAP_[u*3+n],f=o===3?1:2,g=Jt.SAMPLES_COEFFICIENTS_[i][r],_=Jt.BYTES_IN_SLOT_[r],T=g*8*_,S=Math.floor(g*d/m+a)*_,E=(navigator.userAgent||"").match(/Chrome\/(\d+)/i),C=E?parseInt(E[1],10):0;return C&&C<=87&&r===2&&d>=224e3&&o===0&&(e[t+3]=e[t+3]|128),{sampleRate:m,channelCount:f,frameLength:S,samplesPerFrame:T}}return null}static isHeaderPattern(e,t){return e[t]===255&&(e[t+1]&224)===224&&(e[t+1]&6)!==0}static isHeader(e,t){return t+1<e.length&&Jt.isHeaderPattern(e,t)}static probe(e,t){if(t+1<e.length&&Jt.isHeaderPattern(e,t)){let r=Jt.parseHeader(e,t),s=4;r&&r.frameLength&&(s=r.frameLength);let n=t+s;return n===e.length||Jt.isHeader(e,n)}return!1}};l(Jt,"BITRATES_MAP_",[32,64,96,128,160,192,224,256,288,320,352,384,416,448,32,48,56,64,80,96,112,128,160,192,224,256,320,384,32,40,48,56,64,80,96,112,128,160,192,224,256,320,32,48,56,64,80,96,112,128,144,160,176,192,224,256,8,16,24,32,40,48,56,64,80,96,112,128,144,160]),l(Jt,"SAMPLING_RATE_MAP_",[44100,48e3,32e3,22050,24e3,16e3,11025,12e3,8e3]),l(Jt,"SAMPLES_COEFFICIENTS_",[[0,72,144,12],[0,0,0,0],[0,72,144,12],[0,144,144,12]]),l(Jt,"BYTES_IN_SLOT_",[0,1,1,4]),l(Jt,"MPEG_AUDIO_SAMPLE_PER_FRAME",1152);var pi=Jt;/*! @license
1150
+ * Shaka Player
1151
+ * Copyright 2016 Google LLC
1152
+ * SPDX-License-Identifier: Apache-2.0
1153
+ */var Ga=class extends li{isSupported(e,t){if(!this.isMpegContainer_(e))return!1;let i=R.ContentType;return Ke.isTypeSupported(this.convertCodecs(i.AUDIO,e))}isMpegContainer_(e){return e.toLowerCase().split(";")[0]=="audio/mpeg"}convertCodecs(e,t){return this.isMpegContainer_(t)?'audio/mp4; codecs="mp3"':t}transmux(e,t,i,r){let s=D.toUint8(e),a=It.getID3Data(s).length;for(;a<s.length&&!pi.probe(s,a);a++);let o=9e4,c,d=[];for(;a<s.length;){let T=pi.parseHeader(s,a);if(!T)return Promise.reject(new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.TRANSMUXING_FAILED,i?i.getUris()[0]:null));c||(c=T),a+T.frameLength<=s.length&&d.push({data:s.subarray(a,a+T.frameLength),size:T.frameLength,duration:pi.MPEG_AUDIO_SAMPLE_PER_FRAME,cts:0,flags:$e.AUDIO_SAMPLE_FLAGS}),a+=T.frameLength}if(!c)return Promise.reject(new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.TRANSMUXING_FAILED,i?i.getUris()[0]:null));let u=c.sampleRate,m=c.samplesPerFrame*o/c.sampleRate,f=this.frameIndex*m,g={id:t.id,type:R.ContentType.AUDIO,codecs:"mp3",timescale:u,duration:r,mediaConfig:new Uint8Array([]),data:{sequenceNumber:this.frameIndex,baseMediaDecodeTime:f,samples:d},stream:t},_=new xe([g]);return Promise.resolve(this.packageSegment(_,t,i))}};Oe.registerTransmuxer("audio/mpeg",()=>new Ga("audio/mpeg"),Oe.PluginPriority.FALLBACK);/*! @license
1154
+ * Shaka Player
1155
+ * Copyright 2016 Google LLC
1156
+ * SPDX-License-Identifier: Apache-2.0
1157
+ */var Ka=class{constructor(e){l(this,"originalMimeType_");l(this,"tsParser_");this.originalMimeType_=e,this.tsParser_=null}destroy(){}isSupported(e,t){if(!this.isTsContainer_(e))return!1;let i=R.ContentType,r=N.getCodecs(e),s=N.splitCodecs(r),n=R.guessCodecsSafe(i.AUDIO,s),a=R.guessCodecsSafe(i.VIDEO,s);return!n||a||N.getNormalizedCodec(n)!="mp3"?!1:Ke.isTypeSupported(this.convertCodecs(i.AUDIO,e))}isTsContainer_(e){return e.toLowerCase().split(";")[0]=="video/mp2t"}convertCodecs(e,t){return this.isTsContainer_(t)?"audio/mpeg":t}getOriginalMimeType(){return this.originalMimeType_}transmux(e,t,i,r,s){let n=R.ContentType;this.tsParser_?this.tsParser_.clearData():this.tsParser_=new pt,this.tsParser_.setDiscontinuitySequence(i.discontinuitySequence);let a=D.toUint8(e),o=this.tsParser_.parse(a);if(o.getCodecs().audio!="mp3"||s!=n.AUDIO)return Promise.reject(new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.TRANSMUXING_FAILED,i?i.getUris()[0]:null));let d=new Uint8Array([]);for(let u of o.getAudioData()){let m=u.data;if(!m)continue;let f=0;for(;f<m.length;){let g=pi.parseHeader(m,f);if(!g){f++;continue}f+g.frameLength<=m.length&&(d=ne.concat(d,m.subarray(f,f+g.frameLength))),f+=g.frameLength}}return Promise.resolve(d)}};Oe.registerTransmuxer("video/mp2t",()=>new Ka("video/mp2t"),Oe.PluginPriority.PREFERRED_SECONDARY);/*! @license
1158
+ * Shaka Player
1159
+ * Copyright 2016 Google LLC
1160
+ * SPDX-License-Identifier: Apache-2.0
1161
+ */var fs=class fs extends li{constructor(t){super(t);l(this,"tsParser_");l(this,"aacTransmuxer_");this.tsParser_=null,this.aacTransmuxer_=null}destroy(){super.destroy(),this.aacTransmuxer_&&this.aacTransmuxer_.destroy()}isSupported(t,i){if(!this.isTsContainer_(t))return!1;let r=R.ContentType,s=t;i&&(s=this.convertCodecs(i,t));let n=N.getCodecs(s),a=N.splitCodecs(n),o=R.guessCodecsSafe(r.AUDIO,a),c=R.guessCodecsSafe(r.VIDEO,a);if(o){let m=N.getNormalizedCodec(o);if(!fs.SUPPORTED_AUDIO_CODECS_.includes(m))return!1}if(c){let m=N.getNormalizedCodec(c);if(!fs.SUPPORTED_VIDEO_CODECS_.includes(m))return!1}if(i)return Ke.isTypeSupported(this.convertCodecs(i,t));let d=this.convertCodecs(r.AUDIO,t),u=this.convertCodecs(r.VIDEO,t);return Ke.isTypeSupported(d)||Ke.isTypeSupported(u)}isTsContainer_(t){return t.toLowerCase().split(";")[0]=="video/mp2t"}convertCodecs(t,i){if(this.isTsContainer_(i)){let r=R.ContentType,s=N.getCodecs(i).replace("mp4a.40.34","mp3").split(",").map(n=>N.getCorrectAudioCodecs(n,"audio/mp4")).map(N.getCorrectVideoCodecs).join(",");return t==r.AUDIO?`audio/mp4; codecs="${s}"`:`video/mp4; codecs="${s}"`}return i}transmux(t,i,r,s,n){let a=R.ContentType,o=D.toUint8(t);if(n==a.AUDIO&&!pt.probe(o)){let f=It.getID3Data(o),g=f.length;for(;g<o.length;g++)if(pi.probe(o,g))return Promise.reject(new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.TRANSMUXING_FAILED,r?r.getUris()[0]:null));for(g=f.length;g<o.length;g++)if(Bt.probe(o,g))return this.aacTransmuxer_||(this.aacTransmuxer_=new ms("audio/aac")),this.aacTransmuxer_.transmux(t,i,r,s,n);return Promise.reject(new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.TRANSMUXING_FAILED,r?r.getUris()[0]:null))}this.tsParser_?this.tsParser_.clearData():this.tsParser_=new pt,this.tsParser_.setDiscontinuitySequence(r.discontinuitySequence);let c=this.tsParser_.parse(o),d=[],u=c.getCodecs();try{let f=null;if(n==a.VIDEO){switch(u.video){case"avc":f=this.getAvcStreamInfo_(c,i,s,r);break;case"hvc":f=this.getHvcStreamInfo_(c,i,s,r);break}f&&(d.push(f),f=null)}if(n==a.AUDIO){switch(u.audio){case"aac":f=this.getAacStreamInfo_(c,i,s,r);break;case"ac3":f=this.getAc3StreamInfo_(c,i,s,r);break;case"ec3":f=this.getEc3StreamInfo_(c,i,s,r);break;case"mp3":f=this.getMp3StreamInfo_(c,i,s,r);break;case"opus":f=this.getOpusStreamInfo_(c,i,s,r);break}f&&(d.push(f),f=null)}}catch(f){return f&&f.code==h.Code.TRANSMUXING_NO_VIDEO_DATA?Promise.resolve(new Uint8Array([])):Promise.reject(f)}if(!d.length)return Promise.reject(new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.TRANSMUXING_FAILED,r?r.getUris()[0]:null));let m=new xe(d);return Promise.resolve(this.packageSegment(m,i,r))}getAacStreamInfo_(t,i,r,s){let n=pt.Timescale,a=[],o,c=null,d=null,u=null;for(let g of t.getAudioData()){let _=g.data;if(!_)continue;let T=0;if(d==-1&&u)_=ne.concat(u,g.data),d=null;else if(d!=null&&u){T=Math.max(0,d);let S=ne.concat(u,_.subarray(0,T));a.push({data:S,size:S.byteLength,duration:Bt.AAC_SAMPLES_PER_FRAME,cts:0,flags:$e.AUDIO_SAMPLE_FLAGS}),u=null,d=null}if(o=Bt.parseInfo(_,T),!o)throw new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.TRANSMUXING_FAILED,s?s.getUris()[0]:null);for(i.audioSamplingRate=o.sampleRate,i.channelsCount=o.channelCount,c==null&&g.pts!==null&&(c=g.pts);T<_.length;){let S=Bt.parseHeader(_,T);if(!S){u=_.subarray(T,_.length),d=-1;break}let b=S.headerLength+S.frameLength;if(d=Math.max(0,T+b-_.length),d!=0)u=_.subarray(T+S.headerLength,T+b);else if(T+b<=_.length){let E=_.subarray(T+S.headerLength,T+b);a.push({data:E,size:S.frameLength,duration:Bt.AAC_SAMPLES_PER_FRAME,cts:0,flags:$e.AUDIO_SAMPLE_FLAGS})}T+=b}}if(!o||c==null){c=s.startTime*n;let g=N.splitCodecs(i.codecs),_=R.guessCodecsSafe(R.ContentType.AUDIO,g);if(!_||!i.channelsCount||!i.audioSamplingRate)throw new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.TRANSMUXING_FAILED,s?s.getUris()[0]:null);o={sampleRate:i.audioSamplingRate,channelCount:i.channelsCount,codec:_};let T=Bt.getSilentFrame(_,i.channelsCount);if(!T)throw new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.TRANSMUXING_FAILED,s?s.getUris()[0]:null);let S=(s.endTime-s.startTime)*n,b=c+S,E=c;for(;E<b;)a.push({data:T,size:T.byteLength,duration:Bt.AAC_SAMPLES_PER_FRAME,cts:0,flags:$e.AUDIO_SAMPLE_FLAGS}),E+=Bt.AAC_SAMPLES_PER_FRAME/o.sampleRate*n}let m=o.sampleRate,f=c/n*m;return{id:i.id,type:R.ContentType.AUDIO,codecs:o.codec,timescale:m,duration:r,mediaConfig:new Uint8Array([]),data:{sequenceNumber:this.frameIndex,baseMediaDecodeTime:f,samples:a},stream:i}}getAc3StreamInfo_(t,i,r,s){let n=pt.Timescale,a=[],o=0,c=new Uint8Array([]),d=null,u={sampleRate:0,channelCount:0,audioConfig:new Uint8Array(0),frameLength:0};for(let f of t.getAudioData()){let g=f.data;d==null&&f.pts!==null&&(d=f.pts);let _=0;for(;_<g.length;){if(!Oi.parseFrame(g,_,u)){_++;continue}i.audioSamplingRate=u.sampleRate,i.channelsCount=u.channelCount,o=u.sampleRate,c=u.audioConfig;let S=g.subarray(_,_+u.frameLength);a.push({data:S,size:u.frameLength,duration:Oi.AC3_SAMPLES_PER_FRAME,cts:0,flags:$e.AUDIO_SAMPLE_FLAGS}),_+=u.frameLength}}if(o==0||c.byteLength==0||d==null)throw new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.TRANSMUXING_FAILED,s?s.getUris()[0]:null);let m=d/n*o;return{id:i.id,type:R.ContentType.AUDIO,codecs:"ac-3",timescale:o,duration:r,mediaConfig:c,data:{sequenceNumber:this.frameIndex,baseMediaDecodeTime:m,samples:a},stream:i}}getEc3StreamInfo_(t,i,r,s){let n=pt.Timescale,a=[],o=0,c=new Uint8Array([]),d=null,u={sampleRate:0,channelCount:0,audioConfig:new Uint8Array(0),frameLength:0};for(let f of t.getAudioData()){let g=f.data;d==null&&f.pts!==null&&(d=f.pts);let _=0;for(;_<g.length;){if(!$i.parseFrame(g,_,u)){_++;continue}i.audioSamplingRate=u.sampleRate,i.channelsCount=u.channelCount,o=u.sampleRate,c=u.audioConfig;let S=g.subarray(_,_+u.frameLength);a.push({data:S,size:u.frameLength,duration:$i.EC3_SAMPLES_PER_FRAME,cts:0,flags:$e.AUDIO_SAMPLE_FLAGS}),_+=u.frameLength}}if(o==0||c.byteLength==0||d==null)throw new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.TRANSMUXING_FAILED,s?s.getUris()[0]:null);let m=d/n*o;return{id:i.id,type:R.ContentType.AUDIO,codecs:"ec-3",timescale:o,duration:r,mediaConfig:c,data:{sequenceNumber:this.frameIndex,baseMediaDecodeTime:m,samples:a},stream:i}}getMp3StreamInfo_(t,i,r,s){let n=pt.Timescale,a=[],o,c=null;for(let m of t.getAudioData()){let f=m.data;if(!f)continue;c==null&&m.pts!==null&&(c=m.pts);let g=0;for(;g<f.length;){let _=pi.parseHeader(f,g);if(!_){g++;continue}o||(o=_),g+_.frameLength<=f.length&&a.push({data:f.subarray(g,g+_.frameLength),size:_.frameLength,duration:pi.MPEG_AUDIO_SAMPLE_PER_FRAME,cts:0,flags:$e.AUDIO_SAMPLE_FLAGS}),g+=_.frameLength}}if(!o||c==null)throw new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.TRANSMUXING_FAILED,s?s.getUris()[0]:null);let d=o.sampleRate,u=c/n*d;return{id:i.id,type:R.ContentType.AUDIO,codecs:"mp3",timescale:d,duration:r,mediaConfig:new Uint8Array([]),data:{sequenceNumber:this.frameIndex,baseMediaDecodeTime:u,samples:a},stream:i}}getOpusStreamInfo_(t,i,r,s){let n=pt.Timescale,a=[],o=null,c=t.getOpusMetadata();if(!c)throw new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.TRANSMUXING_FAILED,s?s.getUris()[0]:null);let d=Er.getAudioConfig(c),u=c.sampleRate;for(let f of t.getAudioData()){let g=f.data;o==null&&f.pts!==null&&(o=f.pts);let _=0;for(;_<g.length;){let T=(g[_+1]&16)!==0,S=(g[_+1]&8)!==0,b=_+2,E=0;for(;g[b]===255;)E+=255,b+=1;E+=g[b],b+=1,b+=T?2:0,b+=S?2:0;let C=g.slice(b,b+E);a.push({data:C,size:C.byteLength,duration:Er.getPacketSampleCount(C),cts:0,flags:$e.AUDIO_SAMPLE_FLAGS}),_=b+E}}if(d.byteLength==0||o==null)throw new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.TRANSMUXING_FAILED,s?s.getUris()[0]:null);i.audioSamplingRate=c.sampleRate,i.channelsCount=c.channelCount;let m=o/n*u;return{id:i.id,type:R.ContentType.AUDIO,codecs:"opus",timescale:u,duration:r,mediaConfig:d,data:{sequenceNumber:this.frameIndex,baseMediaDecodeTime:m,samples:a},stream:i}}getAvcStreamInfo_(t,i,r,s){let n=pt.Timescale,a=[],o=null,c=t.getVideoData(),d=rr.getVideoSamples(c);if(!d.length)throw new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.TRANSMUXING_NO_VIDEO_DATA,s?s.getUris()[0]:null);for(let f=0;f<d.length;f++){let g=d[f];o==null&&(o=g.dts);let _;f+1<d.length?_=(d[f+1].dts||0)-(g.dts||0):d.length>1?_=(g.dts||0)-(d[f-1].dts||0):_=(s.endTime-s.startTime)*n,a.push({data:g.data,size:g.data.byteLength,duration:_,cts:Math.round((g.pts||0)-(g.dts||0)),flags:g.isKeyframe?$e.VIDEO_KEYFRAME_FLAGS:$e.VIDEO_NON_KEYFRAME_FLAGS})}let u=[];for(let f of c)u.push(...f.nalus);let m=rr.parseInfo(u);if(!m||o==null)throw new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.TRANSMUXING_FAILED,s?s.getUris()[0]:null);return i.height=i.height||m.height,i.width=i.width||m.width,{id:i.id,type:R.ContentType.VIDEO,codecs:"avc1",timescale:n,duration:r,mediaConfig:m.videoConfig,hSpacing:m.hSpacing,vSpacing:m.vSpacing,data:{sequenceNumber:this.frameIndex,baseMediaDecodeTime:o,samples:a},stream:i}}getHvcStreamInfo_(t,i,r,s){let n=pt.Timescale,a=[],o=null,c=[],d=t.getVideoData(),u={data:new Uint8Array(0),isKeyframe:!1};if(!d.length)throw new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.TRANSMUXING_NO_VIDEO_DATA,s?s.getUris()[0]:null);for(let f=0;f<d.length;f++){let g=d[f],_=g.nalus;if(c.push(..._),!sr.parseFrame(_,u))continue;o==null&&g.dts!=null&&(o=g.dts);let S;f+1<d.length?S=(d[f+1].dts||0)-(g.dts||0):d.length>1?S=(g.dts||0)-(d[f-1].dts||0):S=(s.endTime-s.startTime)*n,a.push({data:u.data,size:u.data.byteLength,duration:S,cts:Math.round((g.pts||0)-(g.dts||0)),flags:u.isKeyframe?$e.VIDEO_KEYFRAME_FLAGS:$e.VIDEO_NON_KEYFRAME_FLAGS})}let m=sr.parseInfo(c);if(!m||o==null)throw new h(h.Severity.CRITICAL,h.Category.MEDIA,h.Code.TRANSMUXING_FAILED,s?s.getUris()[0]:null);return i.height=i.height||m.height,i.width=i.width||m.width,{id:i.id,type:R.ContentType.VIDEO,codecs:"hvc1",timescale:n,duration:r,mediaConfig:m.videoConfig,hSpacing:m.hSpacing,vSpacing:m.vSpacing,data:{sequenceNumber:this.frameIndex,baseMediaDecodeTime:o,samples:a},stream:i}}};l(fs,"SUPPORTED_AUDIO_CODECS_",["aac","ac-3","ec-3","mp3","opus"]),l(fs,"SUPPORTED_VIDEO_CODECS_",["avc","hevc"]);var qa=fs;Oe.registerTransmuxer("video/mp2t",()=>new qa("video/mp2t"),Oe.PluginPriority.PREFERRED);var export_AllDevices=void 0;export{Bt as ADTS,ms as AacTransmuxer,Oi as Ac3,Ba as Ac3Transmuxer,Rn as AdManager,export_AllDevices as AllDevices,ga as Aria,io as CastProxy,so as CastReceiver,Na as CeaDecoder,B as Cue,Ln as DashJsonParser,Br as DashParser,yr as DataUriPlugin,Cr as Deprecate,Ge as Dom,$i as Ec3,Va as Ec3Transmuxer,_a as EmeEncryptionScheme,hr as FairPlay,ya as Fullscreen,rr as H264,sr as H265,Ut as HlsParser,Ui as HttpFetchPlugin,Hr as HttpXHRPlugin,It as Id3Utils,jn as Id3V1Utils,Gs as IlstUtils,Tt as InitSegmentReference,Qi as Iterables,Ha as LocTransmuxer,va as MCapEncryptionScheme,sa as MSFParser,me as ManifestParser,ba as MediaCapabilities,Sa as MediaSource,kt as Metadata,Ga as Mp3Transmuxer,Ot as Mp4CeaParser,mi as Mp4TtmlParser,Pa as Mp4VttParser,pi as MpegAudio,Ka as MpegTsTransmuxer,aa as OfflineManifestParser,oa as OfflineScheme,Er as Opus,Xs as Orientation,Wi as PatchedMediaKeysApple,ai as PatchedMediaKeysWebkit,Ea as PiPWebkit,dt as Player,Ta as PolyfillMap,Ia as PolyfillSymbol,Rs as PreferenceBasedCriteria,wi as PresentationTimeline,na as QueueManager,Aa as RandomUUID,Ze as SegmentIndex,Se as SegmentReference,Ms as SimpleAbrManager,Qr as SpeechToText,ka as SrtTextParser,Ws as Storage,fa as StorageMechanism,Ue as TextEngine,Oe as TransmuxerEngine,Oa as TsCeaParser,qa as TsTransmuxer,zi as TtmlTextParser,Ca as TypedArray,js as URLSearchParams,h as UtilError,xa as VTTCue,wa as VideoFrameCallback,Ma as VideoPlayPromise,Ra as VideoPlaybackQuality,Vr as VorbisUtils,Xi as VttTextParser,Us as WebVttGenerator,p as log,Re as polyfill};