@castlabs/prestoplay 6.27.0 → 6.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/cjs/cl.adobe.js +3 -3
  3. package/cjs/cl.airplay.js +3 -3
  4. package/cjs/cl.broadpeak.js +7 -7
  5. package/cjs/cl.cast.js +125 -114
  6. package/cjs/cl.conviva.js +32 -32
  7. package/cjs/cl.core.js +632 -624
  8. package/cjs/cl.crypto.js +9 -9
  9. package/cjs/cl.dash.js +89 -89
  10. package/cjs/cl.externs.js +201 -100
  11. package/cjs/cl.freewheel.js +25 -25
  12. package/cjs/cl.hls.js +78 -78
  13. package/cjs/cl.hlssmpte.js +6 -6
  14. package/cjs/cl.htmlcue.js +30 -30
  15. package/cjs/cl.ima.js +24 -24
  16. package/cjs/cl.mediatailor.js +3 -3
  17. package/cjs/cl.mse.js +351 -351
  18. package/cjs/cl.muxdata.js +14 -15
  19. package/cjs/cl.onboard.js +4 -3
  20. package/cjs/cl.persistent.js +14 -14
  21. package/cjs/cl.playlist.js +6 -6
  22. package/cjs/cl.simid.js +16 -17
  23. package/cjs/cl.smooth.js +71 -72
  24. package/cjs/cl.thumbnails.js +26 -26
  25. package/cjs/cl.tizen.js +72 -72
  26. package/cjs/cl.ttml.js +29 -29
  27. package/cjs/cl.verimatrix.js +5 -5
  28. package/cjs/cl.vimond.js +12 -12
  29. package/cjs/cl.vr.js +19 -19
  30. package/cjs/cl.vtt.js +14 -14
  31. package/cjs/cl.yospace.js +4 -4
  32. package/cjs/cl.youbora.js +39 -39
  33. package/cl.adobe.js +3 -3
  34. package/cl.airplay.js +3 -3
  35. package/cl.broadpeak.js +6 -5
  36. package/cl.cast.js +98 -90
  37. package/cl.conviva.js +27 -27
  38. package/cl.core.js +509 -501
  39. package/cl.crypto.js +8 -8
  40. package/cl.dash.js +83 -82
  41. package/cl.externs.js +197 -100
  42. package/cl.freewheel.js +19 -19
  43. package/cl.hls.js +82 -80
  44. package/cl.hlssmpte.js +5 -5
  45. package/cl.htmlcue.js +26 -26
  46. package/cl.ima.js +18 -17
  47. package/cl.mediatailor.js +2 -3
  48. package/cl.mse.js +303 -305
  49. package/cl.muxdata.js +13 -13
  50. package/cl.onboard.js +4 -4
  51. package/cl.persistent.js +10 -10
  52. package/cl.playlist.js +5 -5
  53. package/cl.simid.js +14 -14
  54. package/cl.smooth.js +60 -60
  55. package/cl.thumbnails.js +19 -19
  56. package/cl.tizen.js +57 -57
  57. package/cl.ttml.js +22 -22
  58. package/cl.verimatrix.js +4 -4
  59. package/cl.vimond.js +8 -8
  60. package/cl.vr.js +15 -15
  61. package/cl.vtt.js +12 -12
  62. package/cl.yospace.js +3 -3
  63. package/cl.youbora.js +31 -29
  64. package/package.json +1 -1
  65. package/typings.d.ts +221 -152
  66. package/cjs/cl.sessions.js +0 -21
  67. package/cl.sessions.js +0 -10
package/cl.hls.js CHANGED
@@ -1,80 +1,82 @@
1
- import {clpp} from "./cl.core.js";import './cl.mse.js';let g={};const _ = clpp._;var f=function(window){'use strict';var JJ="CLOSED-CAPTIONS",KJ="Could not parse MP4 segment start time.",LJ="DURATION",MJ="EXT-X-DATERANGE",NJ="EXT-X-DISCONTINUITY",OJ="EXT-X-KEY",PJ="EXT-X-MAP",QJ="EXT-X-MEDIA",RJ="EXT-X-MEDIA-SEQUENCE",SJ="EXT-X-PROGRAM-DATE-TIME",TJ="EXT-X-STREAM-INF",UJ="Failed to infer discontinuity number",VJ="Guessing audio-only",WJ="METHOD",XJ="SAMPLE-AES-CTR",YJ="SUBTITLES",ZJ="_HLS_part",$J="application/vnd.apple.mpegurl",aK="manifestloaded",bK="sample",cK=function(a,b){return _.J(a,b,void 0,
2
- {required:!0})},dK=function(a){if(1>a.a)throw _.xm();--a.a},eK=function(a,b){for(const c in a){if(!(c in b))return!1;const d=a[c],e=b[c];if(d&&typeof d===_.Fe&&e&&typeof e===_.Fe){if(!eK(d,e))return!1}else if(void 0!==d&&void 0!==e&&d!==e)return!1}return!0},fK=function(a,b){if(!eK(a,b))return!1;for(const c in b){if(!(c in a))return!0;const d=a[c],e=b[c];if(!d&&e||d&&typeof d===_.Fe&&e&&typeof e===_.Fe&&fK(d,e))return!0}return!1},gK=function*(a){let b=-1,c=void 0,d=void 0;for(const e of a)0<=b&&(yield{Wf:b,
3
- item:d,Zh:c,next:e}),b++,c=d,d=e;-1!==b&&(yield{Wf:b,Zh:c,item:d,next:void 0})},hK=function(a){if(null!==a&&void 0!==a)return Number(a)},iK=function(a,b){return a.filter(c=>c.name===b)},jK=function(a){const b=/^[a-zA-Z0-9_-]+$/,c=new Set;a.forEach(d=>{const e=_.J(d,"VALUE"),f=_.J(d,_.Ta),g=_.J(d,"IMPORT"),h=_.J(d,"QUERYPARAM");if(1!==[f,g,h].filter(Boolean).length||f&&null==e)throw new _.I(_.F,4,4044,{message:"Invalid tag.",text:d.toString()});d=f||g||h;if(c.has(d))throw new _.I(_.F,4,4044,`EXT-X-DEFINE redefined variable "${d}".`);
4
- if(!b.test(d))throw new _.I(_.F,4,4044,`EXT-X-DEFINE invalid variable name "${d}".`);c.add(d)})},kK=function(a,b){const c=Array.isArray(b)?b:[b];return a.filter(d=>{d=cK(d,_.sb);return c.includes(d)})},lK=function(a,b){return a.some(c=>c.name===b)},mK=function(a,b,c){c=void 0===c?{}:c;a=a.find(d=>d.name===b)||null;if(!a&&c.required)throw new _.I(_.F,4,4024,{missingTag:b});return a},nK=function(a){var b=mK(a,"EXT-X-TILES");if(!b)return{fd:1,Bd:1,durationPerTile:null};a=_.J(b,"LAYOUT")||"1x1";b=_.J(b,
5
- LJ);a=_.nC(a);return{fd:a.fd,Bd:a.Bd,durationPerTile:b?Number(b):null}},oK=function(a){const b=new Set;a.variants.forEach(c=>{c.audio&&b.add(c.audio);c.video&&b.add(c.video)});a.textStreams.forEach(c=>b.add(c));a.thumbStreams.forEach(c=>b.add(c));return Array.from(b)},pK=function(a,b){Array.isArray(a)||(a=[a]);a.forEach(c=>{for(const d of oK(c))b(d,c)})},qK=function(a){return a.some(b=>lK(b.ba,"EXT-X-ENDLIST"))},rK=function(a){return a.type===_.q||a.type===_.t},sK=function(a){if(mK(a,"EXT-X-ENDLIST"))return _.Db;
6
- a=mK(a,"EXT-X-PLAYLIST-TYPE");if(!a)return"LIVE";if(a.value===_.Db)return _.Db;if("EVENT"===a.value)return"EVENT";throw new _.I(_.F,4,4044,`Invalid EXT-X-PLAYLIST-TYPE value: ${a.value}`);},tK=function(a){a={AUDIO:_.q,VIDEO:_.t,SUBTITLES:_.H,"CLOSED-CAPTIONS":_.H}[a.toUpperCase()];if(!a)throw new _.I(_.F,4,4044,"EXT-X-MEDIA tag has an invalid TYPE attribute.");return a},uK=function(a,b,c){c=void 0===c?!1:c;var d=0;let e=null;if(a){d=a.split("@");a=Number(d[0]);if(0>=a)throw new _.I(_.F,4,4044,"Byte range length must be positive.");
7
- if(d[1]){if(d=Number(d[1]),0>d)throw new _.I(_.F,4,4044,"Byte range start byte must not be negative.");}else{if(c)throw new _.I(_.F,4,4044,"Invalid byte range, offset is required but missing.");if(null==b)throw new _.I(_.F,4,4044,"Invalid byte range, cannot calculate offset based on previous byte ranges.");d=b+1}e=d+a-1}return{ma:d,ja:e}},vK=function(a,b){a=mK(a,"EXT-X-BYTERANGE");return uK(a?a.value:null,b)},wK=function(a){a=mK(a,"EXTINF",{required:!0}).value.split(",");const b=Number(a[0]);if(isNaN(b))throw new _.I(_.F,
8
- 4,4044,"#EXTINF must be a number.");return{duration:b,title:a[1]||null}},xK=function(a,b){b=void 0===b?{}:b;const c={Af:!1,Yg:!1,Zg:null,Ch:null,lg:null};a=mK(a,"EXT-X-SERVER-CONTROL",{required:b.rg});if(!a)return c;const d=e=>null==e?null:Number(e);c.Af="YES"===_.J(a,"CAN-BLOCK-RELOAD");c.Yg="YES"===_.J(a,"CAN-SKIP-DATERANGES");c.Zg=d(_.J(a,"CAN-SKIP-UNTIL"));c.Ch=d(_.J(a,"HOLD-BACK"));c.lg=d(_.J(a,"PART-HOLD-BACK",void 0,{required:b.rg}));return c},yK=function(a,b,c){c=void 0===c?!1:c;a=_.J(a,"BYTERANGE");
9
- return uK(a,b,c)},zK=function(a){const b=iK(a,QJ),c=iK(a,TJ);a=iK(a,"EXT-X-IMAGE-STREAM-INF");return{wc:{vf:kK(b,[_.kB,_.Cb]),closedCaptions:kK(b,JJ),yi:kK(b,YJ)},Cd:c,ze:a}},BK=function(a,b){const c=vK(a.ba,null);return new AK(0,0,0,()=>[a.a],c.ma,c.ja,0,b)},CK=function(a){let b=Infinity,c=Infinity;oK(a).filter(rK).forEach(d=>{{d=d.S;var e=d[0].startTime;const f=d[d.length-1].endTime;d=e;e=f-e}b=Math.min(b,d);c=Math.min(c,e)});return{Oc:b,duration:c}},DK=function(a){return a.map(b=>{({duration:b}=
10
- CK(b));return b}).reduce((b,c)=>b+c,0)},EK=function(a){return(a.video?a.video.Ca:"")+" - "+(a.audio?a.audio.Ca:"")},FK=function(a,b,c,d,e){if(b===_.Db)return{delay:0,zd:0};b=mK(a,"EXT-X-PART-INF");if(c&&b){e=Number(cK(b,"PART-TARGET"));if(null!=d)return{delay:d,zd:e};({lg:d}=xK(a,{rg:!0}));return{delay:d,zd:e}}a=mK(a,"EXT-X-TARGETDURATION",{required:!0});a=Number(a.value);e=e||a;return null!=d?{delay:d,zd:e}:{delay:3*a,zd:e}},HK=function(a){const b=new Map;a.forEach(c=>{var d=`${GK(c).type}:${GK(c).groupId}`;
11
- b.has(d)?(d=b.get(d),d.includes(c)||d.push(c)):b.set(d,[c])});return b},IK=function(a){const b=new Map;for(const c of a){a=_.J(c,_.La);a=_.$i(a||_.hg);const d=cK(c,_.Fa),e=cK(c,"INSTREAM-ID");b.has(d)||b.set(d,new Map);b.get(d).set(e,a)}return b},JK=function(a){return a.filter(b=>"mp4a.40.34"!==b)},KK=function(a,b){if(!a)return null;const c=a.Ca;return b.find(d=>GK(d).Ca===c)||null},LK=function(a){return(a=_.J(a,"CHANNELS"))?parseInt(a.split("/")[0],10):null},MK=function(a){return a.some(b=>b.startsWith("#EXT-X-TARGETDURATION"))?
12
- 1:0},NK=function(a,b){const c=new Map,d=new URL(b);a.forEach(e=>{var f=_.J(e,_.Ta),g=_.J(e,"QUERYPARAM");if(f)g=cK(e,"VALUE"),c.set(f,g);else if(g){f=d.searchParams.get(g);if(null==f)throw new _.I(_.F,4,4044,`Query param '${g}' missing in playlist URI.`);if(!f)throw new _.I(_.F,4,4044,`Query param '${g}' has no associated value`+" in playlist URI.");c.set(g,decodeURIComponent(f))}});return c},OK=function(a,b){return a.replace(/\{\$([a-zA-Z0-9_-]+)\}/g,(c,d)=>{c=b.get(d);if(null==c)throw new _.I(_.F,
13
- 4,4044,`Undefined variable '${d}'`);return c})},PK=function(a,b){a.forEach(c=>{c.attributes.forEach(d=>{d.value=OK(d.value,b)})})},SK=function(a,b,c){const d=[];for(let e=0;e<b.length;e++){const f=QK(a,b[e]);d.push(f);if(f.name===TJ){const g=b[e+1];if(!g)throw new _.I(_.F,4,4044,"EXT-X-STREAM-INF is not followed by a URI.");f.attributes.push(new _.ej(_.ub,g));e++}}b=iK(d,"EXT-X-DEFINE");jK(b);b=NK(b,c);a.a=b;PK(d,a.a);return new RK(c,0,d)},WK=function(a,b,c){const {ji:d,Bh:e,Hi:f}=TK(b),g=UK(a,f,
14
- c);b=e.map(k=>QK(a,k,g));const h=VK(a,c,d,g);return new RK(c,1,b,h)},XK=function(a,b,c){b=b.trim().split(/\n+/m).map(d=>d.trim()).filter(d=>d.length&&!/^#(?!EXT)/m.test(d));if(!/^#EXTM3U($|[ \t\n])/m.test(b[0]))throw new _.I(_.F,4,4015);b=b.slice(1);return 0===MK(b)?SK(a,b,c):WK(a,b,c)},TK=function(a){const b=[],c=[],d=[];for(const e of a)YK.test(e)?d.push(e):ZK.test(e)?c.push(e):b.push(e);return{ji:b,Bh:c,Hi:d}},UK=function(a,b,c){b=b.map(e=>QK(a,e));jK(b);const d=NK(b,c);b.map(e=>_.J(e,"IMPORT")).filter(Boolean).forEach(e=>
15
- {const f=a.a.get(e);if(null==f)throw new _.I(_.F,4,4044,`Cannot import variable '${e}' as it is not defined `+"in the master playlist");d.set(e,f)});return d},QK=function(a,b,c){a=_.gj(a.h++,b);c&&PK([a],c);return a},VK=function(a,b,c,d){const e=[];let f=[],g=[];c.forEach(h=>{/^(#EXT)/.test(h)?(h=QK(a,h,d),"EXT-X-PART"===h.name||"EXT-X-PRELOAD-HINT"===h.name&&"PART"===_.J(h,_.sb)?g.push(h):f.push(h)):(lK(f,"EXT-X-GAP")||(h=OK(h,d),h=_.Ti(h,b),e.push(new $K(h,f,g))),f=[],g=[])});0<g.length&&e.push(new $K(null,
16
- f,g));return e},aL=function(a,b,c){const d=[],e=[];e.push(new _.ej(_.ma,"0"));e.push(new _.ej(_.ub,b));c.length&&e.push(new _.ej(_.pa,c));d.push(new _.fj(a.h++,TJ,e));return new RK(b,0,d)},bL=function(a){return 0>a?[]:Array.from({length:a},(b,c)=>c)},cL=function(a){return new Uint8Array([a>>24&255,a>>16&255,a>>8&255,a&255])},dL=function(a,b=0){return b+10<=a.length&&73===a[b]&&68===a[b+1]&&51===a[b+2]&&255>a[b+3]&&255>a[b+4]&&128>a[b+6]&&128>a[b+7]&&128>a[b+8]&&128>a[b+9]?!0:!1},eL=function(a){function b(h,
17
- k,l){let m="";for(;k<l;k++)m+="%"+("00"+h[k].toString(16)).slice(-2);return m}function c(h){return h[0]<<21|h[1]<<14|h[2]<<7|h[3]}function d(){throw new _.I(_.F,4,4030);}dL(a)||d();let e=10;a[5]&64&&(e=e+4+c(a.subarray(10,14)));do{var f=c(a.subarray(e+4,e+8));1>f&&d();var g=String.fromCharCode(a[e],a[e+1],a[e+2],a[e+3]);if("PRIV"===g){g=a.subarray(e+10,e+f+10);for(let h=0;h<g.byteLength;h++)if(0===g[h]){if("com.apple.streaming.transportStreamTimestamp"===unescape(b(g,0,h)))return a=g.subarray(h+1),
18
- f=(a[3]&1)<<30|a[4]<<22|a[5]<<14|a[6]<<6|a[7]>>>2,f*=4,f+=a[7]&3,Math.round(f/9E4);break}}dL(a,e)||d();e+=10;e+=f}while(e<a.byteLength);return d()},fL=function(a,b){let c=null,d=0;try{(new _.Nm).N(_.Be,_.Gm).N(_.eg,_.Gm).N(_.te,_.Gm).fa("mdhd",g=>{g.reader.skip(0===g.version?8:16);d=_.O(g.reader);g.parser.stop()}).parse(b,!0)}catch(g){c=g}if(c||!d)throw _.Cv.error("Unable to find timescale in init segment!"),new _.I(_.F,4,4030,KJ,c);let e=0,f=!1;try{(new _.Nm).N("moof",_.Gm).N("traf",_.Gm).fa("tfdt",
19
- g=>{var h=d;if(0===g.version)h=_.O(g.reader)/h;else{{const k=_.O(g.reader),l=_.O(g.reader);if(!(2097151>=k||h>=Math.pow(2,12)))throw Error("Cannot accurately parse MP4 timestamp, base time is too high and timescale is \x3c\x3d 2^12");h=k/h*Math.pow(2,32)+l/h}}e=h;f=!0;g.parser.stop()}).parse(a,!0)}catch(g){c=g}if(c||!f)throw new _.I(_.F,4,4030,KJ,c);return e},gL=function(a){for(;a.getPosition()<a.Ma()-1;){const b=a.getPosition();if(71===_.ym(a))return dK(a),b}return-1},hL=function(a){function b(){d.seek(e+
20
- 188);f=_.ym(d);71!==f&&(d.seek(e+192),f=_.ym(d));71!==f&&(d.seek(e+204),f=_.ym(d));71!==f&&c();dK(d)}function c(){throw new _.I(_.F,4,4030);}const d=new _.Jn(new DataView(a),!1);let e=0,f=0;e=gL(d);0>e&&(_.Cv.error("Unable to find sync byte in TS after scanning."),c());for(;;){e=d.getPosition();f=_.ym(d);71!==f&&c();a=_.zm(d);if(8191===(a&8191)){b();continue}if(!(a&16384)){b();continue}a=(_.ym(d)&48)>>4;0!==a&&2!==a||c();3===a&&(a=_.ym(d),d.skip(a));if(1!==_.O(d)>>8){b();continue}d.skip(3);a=_.ym(d)>>
21
- 6;0!==a&&1!==a||c();0===_.ym(d)&&c();a=_.ym(d);const g=_.zm(d),h=_.zm(d);return(1073741824*((a&14)>>1)+((g&65534)<<14|(h&65534)>>1))/9E4}},kL=function(a){const b=iL(a),c=jL(a);a.forEach(d=>{const e=d.S,f=e.findIndex(h=>h.ra===b);let g=e.findIndex(h=>h.ra===c+1);-1===g&&(g=e.length);d.S=e.slice(f,g)})},jL=function(a){a=a.map(b=>b.S[b.S.length-1].ra);return Math.min(...a)},iL=function(a){a=a.map(b=>b.S[0].ra);return Math.max(...a)},nL=function(a){var b=cK(a,WJ);if(!lL.includes(b))return mL.error("PlayReady in HLS is only supported with [",
22
- lL.join(", "),"], not",b),null;a=cK(a,_.ub);b=_.Gk(a);a=null;b=_.G(b.data);try{a=_.XB(_.Qn(b))}catch(c){a=b}return _.jC(_.sd,[{initDataType:_.Uc,initData:a}],"")},pL=function(a){if(0===a.length)return oL();if(a.some(c=>"whole-segment"===c.type)||a.every(c=>c.type===_.Ee))return a[0];a=a.filter(c=>c.type===bK);const b=_.hi(a.flatMap(c=>c.drmInfos));return{keyId:a[a.length-1].keyId,type:bK,drmInfos:b}},sL=function(a,b){return qL(a).map(c=>rL(c.ba,b)).filter(Boolean)},qL=function(a){return a.filter(b=>
23
- lK(b.ba,OJ))},rL=function(a,b){a=iK(a,OJ).filter(d=>"AES-128"!==cK(d,WJ));if(0===a.length)return null;var c=cK(a[0],WJ);if(1===a.length&&"NONE"===c)return oL();c=a.map(d=>cK(d,WJ));if(!c.every(d=>"SAMPLE-AES"===d)&&!c.every(d=>d===XJ))throw tL.warn(`EXT-X-KEY methods ${c.join(", ")} are incompatible.`),new _.I(_.F,4,4044,"Multiple EXT-X-KEY tags with incompatible METHOD values.");a=a.map(d=>{const e=_.J(d,"KEYFORMAT","identity");{const f=uL[e]||null;d=f?f(d,b):null}d||tL.warn("Unsupported HLS KEYFORMAT",
24
- e);return d}).filter(Boolean);if(0===a.length)throw new _.I(_.F,4,4026);return{keyId:a.map(d=>d.keyIds).reduce((d,e)=>d.concat(e),[]).reverse()[0]||null,type:bK,drmInfos:a}},oL=function(){return{type:_.Ee,drmInfos:[],keyId:null}},vL=function(a,b,c){a=iK(a,OJ)[0];if(!a||"AES-128"!==cK(a,WJ))return null;var d=_.J(a,"IV","");d?c={iv:_.Ck((d||"0x").slice(2)),generatedIv:!1}:(d=_.J(a,"KEYFORMAT"),c=null==d||"identity"===d?{iv:_.Fk(new Uint8Array(12),cL(c)),generatedIv:!0}:{iv:null,generatedIv:!1});const {iv:e,
25
- generatedIv:f}=c;return{method:"AES-128",url:_.Ti(cK(a,_.ub),b),iv:e,generatedIv:f}},wL=function(a,b,c){return _.w(function*(){const d=b.f(),e=_.UC(b.Da(),b.ma,b.ma+2048-1,a.a.attemptParameters);e.type=2;const f=_.UC(b.Da(),b.ma,b.ja,a.a.attemptParameters);f.type=2;d&&(f.keyInfo=d);try{return yield a.f(c?f:e)}catch(g){if(7001===g.code||c)throw g;a.g.warn("Unable to fetch a partial HLS segment! Falling back to a full segment request, which is expensive! Your server should support Range requests and CORS pre-flights.",
26
- e.uris[0]);try{return yield a.f(f)}catch(h){throw a.g.error("Failed to fetch media segment to parse its start timestamp.",f.uris[0],h),new _.I(_.F,4,4030,"Failed to fetch the media segment.");}}})},xL=function(a,b,c,d,e,f){return _.w(function*(){a.g.debug("Fetching segment to find start time");if("audio/mpeg"===d||d===_.Fc||d===_.Ec)return 0;if(d===_.Dc){var g=yield wL(a,c,f);g=_.G(g.data);if(!dL(g))throw new _.I(_.F,4,4030,"AAC segment does not contain an ID3 tag.");return eL(g)}if(d===_.tg||d===
27
- _.Gc)return g=[wL(a,c,f)],b&&g.push(wL(a,b,!0)),g=yield Promise.all(g),fL(g[0].data,(g[1]||g[0]).data);if(d===_.sg)return g=yield wL(a,c,f),hL(g.data);if(!_.dt(`${d.split("/")[0]||""}/mp4;codecs="${e}"`))return 0;throw new _.I(_.F,4,4030);})},yL=function(a,b){a=a.map(c=>c.streams[b]);return a.some(c=>null==c)?null:a},zL=function(a,b){a=a.streams.find(c=>{c=c.S;return c[0].position<=b&&b<=c[c.length-1].position});return null==a?null:a.S.find(c=>c.position===b)||null},GK=function(a){return a.streams[0]},
28
- AL=function(a,b){a.streams.forEach(c=>{c.ke=b})},BL=function(a,b){a.streams.forEach(c=>{c.width=b})},CL=function(a,b){a.streams.forEach(c=>{c.height=b})},DL=function(a,b){a.streams.forEach(c=>{c.frameRate=b})},EL=function(a,b){a.streams.forEach(c=>{c.bandwidth=b})},FL=function(a,b){a=a.map(c=>c.a[b]);return a.some(c=>null==c)?null:a},GL=function(a,b){const c=new Set(a.map(d=>d.ra));return b.filter(d=>!c.has(d.ra))},IL=function(a,b){for(;a[0].ra<b[0].ra;)a.splice(0,1);var c=a[0];let d=b[0];c.startTime===
29
- d.startTime&&c.endTime===d.endTime||HL(c,d);const e=a.length-1;c=a[e];d=b[e];0<e&&(c.startTime!==d.startTime||c.endTime!==d.endTime)&&HL(c,d);for(c=e+1;c<b.length;)a.push(b[c]),c++},NL=function(a,b,c,d,e){var f=b[0].length();f=bL(f).map(g=>{var h=FL(b,g)||[];const k=yL(c,g)||[];g=yL(d,g)||[];{const l=[...JL(h),...k,...g].filter(Boolean);KL(l);const {ra:m,duration:n}=l[0];h={configurationId:a,variants:h,textStreams:k,thumbStreams:g,startTime:0,id:`P${m}`,endTime:n,duration:n,ra:m}}return h});e&&LL(f[0]);
30
- ML(f);return f},JL=function(a){a=new Set(a.flatMap(b=>[b.video,b.audio]).filter(Boolean));return Array.from(a)},LL=function(a){const b=JL(a.variants)[0].S[0].Ba;a.startTime+=b;a.endTime+=b},ML=function(a){for(let b=0;b<a.length;b++){const c=a[b],d=a[b-1];c.startTime=d?d.endTime:c.startTime;c.endTime=c.startTime+c.duration}},HL=function(a,b){a.startTime=b.startTime;a.endTime=b.endTime;a.duration=b.duration;OL(a.variants,b.variants);PL(oK(a),oK(b))},OL=function(a,b){const c=new Map(a.map(d=>[EK(d),
31
- d]));b.forEach(d=>{c.get(EK(d)).drmInfos=d.drmInfos})},PL=function(a,b){const c=new Map(a.map(d=>[d.Ca,d]));b.forEach(d=>{const e=c.get(d.Ca);e.S=d.S;d.S.forEach(f=>{f.initSegment=e.initSegmentReference});e.segmentIndex.replace(d.S);e.Oc=d.Oc;e.Ce=d.Ce;e.duration=d.duration;e.Jf=d.Jf;e.encrypted=d.encrypted;e.drmInfos=d.drmInfos;e.keyId=d.keyId})},KL=function(a){const b=QL(a);a.forEach(c=>{_.QC(c.segmentIndex,b);c.duration=b;c.Ce=c.Oc+b})},QL=function(a){let b=Infinity;a.filter(rK).forEach(c=>{b=
32
- Math.min(b,c.duration)});return b},UL=function(a){if(!(2>a.length)&&RL(a)){a=a.map(e=>({playlist:e,Ff:SL(e.S[0])}));var b=a.map(e=>e.Ff),c=Math.max(...b);b=Math.min(...b);if(!(1E3>c-b)){a.forEach(e=>{const f=e.playlist;for(e=e.Ff;0<f.S.length&&1E3<c-e;){var g=f.S.shift(),h=f.S[0];if(!h)break;TL(g,h);h=SL(h);null!=h?e=h:({duration:h}=wK(g.ba),e+=1E3*h)}});a=a.map(e=>e.playlist);if(a.some(e=>0===e.S.length))throw new _.I(_.F,4,4048,"Media playlists are completely out of sync.");var d=Math.min(...a.map(e=>
33
- e.S.length));a.forEach(e=>{for(;e.S.length>d;)e.S.pop()})}}},RL=function(a){return a.every(b=>!!SL(b.S[0]))},TL=function(a,b){a&&b&&[PJ,OJ].forEach(c=>{if(!lK(b.ba,c)){var d=a.ba.filter(e=>e.name===c);0!==d.length&&d.forEach(e=>{b.ba.push(e)})}})},VL=function(a,b){pK(b,(c,d)=>{_.cD(a,c.S,d.startTime)});_.VC(a.a,b[0].startTime,b[b.length-1].endTime)},WL=function(a){return null===a.o?[]:[a.o.audio,a.o.video].filter(b=>b).map(b=>b.Ca)},XL=function(a,b){return _.w(function*(){var c=_.mj([b],a.a.attemptParameters);
34
- c.type=1;c=yield a.H(c);let d="";try{d=_.Bi(c.data)}catch(e){throw new _.I(_.F,4,4042);}d=d.replace(/\r\n|\r(?=[^\n]|$)/gm,"\n");d=d.trim();return{text:d,response:c}})},hM=function(a,b){return _.w(function*(){var c=YL(a,b,a.w,"");if(1===c.type){var d=c.S[0].a;c=ZL(d);if(!c)throw new _.I(_.F,4,4021,`Unknown file extension ${d}`);d="";c===_.t?d="avc1.42E01E":c===_.q&&(d="mp4a.40.2");c=aL(a.R,a.w,a.a.hlsDefaultCodecs||d)}d=zK(c.ba);c=$L(d.wc.vf);c.forEach(m=>{a.J.add(m.groupId)});var e=yield aM(a,d);
35
- var f=e.Mh;const g=e.periods;var h=e.ai;const k=e.Ai;d=e.alternativeVariants;const l=e.alternativeTextStreams;e=e.alternativeImageStreams;if(!a.D)throw new _.I(_.F,7,7001);bM(a,g);h=cM(a,f.delay,g,h);dM(a)||(a.G=f.zd,eM(a));fM(a,h,g);f=gM(a,k);c={presentationTimeline:h,periods:g,minBufferTime:0,cues:f,muxedAudioTracks:c};d&&(c.alternativeVariants=d);l&&(c.alternativeTextStreams=l);e&&(c.alternativeImageStreams=e);a.g.debug("HLS playlist parsed",c);return c})},jM=function(a,b){return Promise.all(b.map(c=>
36
- iM(a,c)))},lM=function(a,b){b.forEach(c=>{a:{var d=a.j.get(c.verbatimUri),e=!dM(a),f=mK(c.ba,"EXT-X-DISCONTINUITY-SEQUENCE");if(f)var g=Number(f.value);else{d?(f=d.streams[d.streams.length-1].S,f=f[f.length-1].ra):f=0;if(e&&0<f)try{{const k=mK(c.ba,RJ);if(!k)throw kM.error("Failed to infer discontinuity number, because EXT-X-MEDIA-SEQUENCE tag is missing."),Error(UJ);const l=Number(k.value),m=zL(d,l);if(!m)throw kM.error("Failed to infer discontinuity number, could not find the appropriate segment in the previous playlist"+
37
- ` (segment position = ${l})`),Error(UJ);var h=m.ra}g=h;break a}catch(k){throw new _.I(_.F,4,4024,"EXT-X-DISCONTINUITY-SEQUENCE tag is required for discontinuous HLS live streams.");}g=0}}c=c.S||[];for(const k of c)lK(k.ba,NJ)&&g++,k.ra=g});kL(b)},oM=function(a,b){return _.w(function*(){const {textStreams:c,thumbStreams:d,Tg:e}=yield mM(a,b);var f=a.f.periods[0].variants;a.a.lowLatencyMode&&null!==a.o&&(f=f.filter(g=>g.id===a.o.id));f=f.map(g=>{const h=KK(g.audio,e),k=KK(g.video,e);g=nM(a,h,k,g.bandwidth);
38
- if(!g)throw new _.I(_.F,4,4047,{message:"Video and audio are encrypted in an incompatible way.",jj:k?GK(k).Ca:void 0,audio:h?GK(h).Ca:void 0});return g});return NL(a.D.configurationId,f,c,d,!0)})},bM=function(a,b){dM(a)||2!==a.a.timeline.version||(a.I||(a.I=b[0].startTime),_.lE(b,-a.I))},pM=function(a,b){b=b.flatMap(d=>d.S[0].ba);b=mK(b,SJ);if(!b)return null;const c=(new Date(b.value)).getTime();return isNaN(c)?(a.g.warn("Failed to parse EXT-X-PROGRAM-DATE-TIME tag "+`value (value: ${b.value}).`),
39
- null):c/1E3},qM=function(a,b,c){b=b.find(d=>null!==mK(d.ba,MJ));if(!b)return[];if(null===c)throw new _.I(_.F,4,4024,"EXT-X-PROGRAM-DATE-TIME tag is required when EXT-X-DATERANGE tags are present");return b.ba.filter(d=>d.name===MJ).map(d=>{a:{var e=a.C,f=!dM(a),g=_.J(d,"ID"),h=_.J(d,"START-DATE");if(null===g||null===h)_.du.warn("Invalid EXT-X-DATERANGE missing mandatory ID or START-DATE attribute, ignoring the EXT-X-DATERANGE tag.",d),d=null;else{e=f?e-c:-c;var k=new Date(h);f=k.getTime()/1E3+e;
40
- g={id:g,startTime:f,startDate:k,ge:h};h=hK(_.J(d,LJ));void 0!==h&&0<=h&&(g.duration=h);var l=hK(_.J(d,"PLANNED-DURATION"));void 0!==l&&0<=l&&(g.plannedDuration=l);var m=_.J(d,"CLASS");null!==m&&(g.schemeIdUri=m);var n=_.J(d,"END-DATE");n=n?new Date(n):null;null!==n&&n.getTime()>=k.getTime()&&(g.endDate=n);{const v=d.attributes;if(null==v)var p=null;else{k={};for(p of v)p.name.trim().startsWith("X-")&&(k[p.name]=p.value);p=_.ch(k)?k:null}}p=p||{};(k=_.J(d,"CUE"))&&(p.CUE=k.split(","));if(_.Yi(m)){k=
41
- d.attributes;if(null==k)var u=null;else{m={};for(u of k)switch(u.name){case _.Lb:m[_.Lb]=u.value;break;case _.Kb:m[_.Kb]=u.value;break;case _.Ob:m[_.Ob]=hK(u.value);break;case _.Mb:m[_.Mb]=hK(u.value);break;case "X-SNAP":m["X-SNAP"]=u.value.split(",");break;case _.Nb:m[_.Nb]=u.value.split(",")}m[_.Lb]&&m[_.Kb]||!m[_.Lb]&&!m[_.Kb]?(_.du.warn("Invalid EXT-X-DATERANGE Interstitial attributes X-ASSET-URI, X-ASSET-LIST"),u=null):u=_.ch(m)?m:null}if(null===u){_.du.warn("Invalid interstitial attributes, ignoring the EXT-X-DATERANGE tag.",
42
- d);d=null;break a}p=Object.assign(p,u)}_.ch(p)&&(g.customAttributes=p);g.endTime=n?n.getTime()/1E3+e:h?f+h:l?f+l:f;g.type=_.Uh;d=g}}return d}).filter(Boolean)},gM=function(a,b){const c=new Set(b.map(d=>d.id));a.B.forEach((d,e)=>{c.has(e)||a.B.delete(e)});for(const d of b){if((b=a.B.get(d.id))&&b.ge!==d.ge)a.D.onError(new _.I(1,4,4044,"EXT-X-DATERANGE START-DATE has changed for"+` ID=${d.id}`));const e={configurationId:a.D.configurationId,schemeIdUri:d.schemeIdUri,customAttributes:d.customAttributes,
43
- value:"",startTime:d.startTime,ge:d.ge,endTime:d.endTime,id:d.id,type:_.Uh,eventElement:null};b&&!fK(b,e)||a.B.set(d.id,e)}return Array.from(a.B.values())},rM=function(a,b,c){a.A=_.Db;_.ZC(b,!0);b.f=c[c.length-1].endTime},YL=function(a,b,c,d){a=XK(a.R,b,c);a.verbatimUri=d;return a},$L=function(a){return a.filter(b=>b.name===QJ&&_.J(b,_.sb)===_.kB&&!_.J(b,_.ub)).map(b=>{const c=LK(b),d=_.J(b,_.La)||_.hg;return{groupId:cK(b,_.Fa),id:_.tJ++,label:cK(b,_.Ta),language:d,channelsCount:c,primary:"YES"===
44
- _.J(b,"DEFAULT")}})},aM=function(a,b){return _.w(function*(){var c=IK(b.wc.closedCaptions),d=sM(a,b.Cd),e=yield tM(a,b),f=Object.values(e).flat().map(k=>k.playlist),g=f[0];const h=sK(g.ba);a.A=h;lM(a,f);!dM(a)&&UL(f);a.K=xK(g.ba);f=FK(g.ba,h,a.a.lowLatencyMode||!1,a.a.suggestedPresentationDelay,a.a.liveRefreshPeriod);g=yield uM(a,e.wf,d);c=yield vM(a,e.Cd,g,c);d=yield wM(a,e.xi,d);g=yield xM(a,e.ze);d=NL(a.D.configurationId,c,d,g,!dM(a));a.D.filterAllPeriods(d);c=[...e.Cd,...e.wf].map(k=>k.playlist);
45
- e=pM(a,c);c=qM(a,c,e);return{periods:d,ai:e,Ai:c,Mh:f}})},cM=function(a,b,c,d){let e=!0,f=null,g=0;dM(a)||(e=!1,f=0,g=b);b=a.a.timeline||{};b.type=void 0;a=new _.wJ(b,f,g,!0,void 0,!!a.a.lowLatencyMode);_.ZC(a,e);VL(a,c);d&&_.YC(a,d);return a},eM=function(a){var b=0;for(var c of a.j.values())b=Math.max(b,c.streams[0].Oc);for(c=0;95443.7176888889<=b;)c+=95443.7176888889,b-=95443.7176888889;if(c){a.g.debug("Offsetting live streams by",c,"to compensate for rollover");for(const d of a.j.values())b=d.streams[0],
46
- 95443.7176888889>b.Oc?(a.g.debug("Offset applied to",b.type),b.segmentIndex.offset(c)):a.g.debug("Offset NOT applied to",b.type)}},fM=function(a,b,c){c=DK(c);"LIVE"===a.A||"EVENT"===a.A?(c=Math.max(c,b.J),isNaN(a.a.availabilityWindowOverride)||(c=a.a.availabilityWindowOverride),b.A=c):a.A===_.Db&&(b.f=c)},mM=function(a,b){return _.w(function*(){const c=g=>GK(g.stream).type===_.t||GK(g.stream).type===_.q;var d=b.filter(c),e=b.filter(g=>!c(g)),f=g=>{g=g.map(h=>{var k=GK(h.stream);k={language:k.language,
47
- channelsCount:k.channelsCount,spatialAudio:k.spatialAudio,closedCaptions:k.closedCaptions,primary:k.primary,kind:k.kind||null,groupId:k.groupId,type:k.type,codecs:k.codecs,name:k.originalId,uri:k.Ca,Dd:{width:k.width,height:k.height,frameRate:k.frameRate}};h=Object.assign({},{playlist:h.playlist},k);return yM(a,h)});return Promise.all(g)};d=yield f(d);f=yield f(e);zM(a,d.concat(f));e=f.filter(g=>GK(g).type===_.QB);f=f.filter(g=>GK(g).type===_.ee);return{textStreams:e,thumbStreams:f,Tg:d}})},nM=function(a,
48
- b,c,d,e){const f=[],g=(c||b).length();for(let n=0;n<g;n++){var h=b?b.streams[n]||null:null,k=c?c.streams[n]||null:null,l=h,m=k;l=l&&m?_.pC(l.drmInfos,m.drmInfos)?_.oC(l.drmInfos,m.drmInfos):null:l?l.drmInfos:m?m.drmInfos:null;if(!l)return null;m=d;h={id:e?e:a.h++,language:h?h.language:_.hg,primary:!!h&&h.primary||!!k&&k.primary,audio:h,video:k,bandwidth:m,drmInfos:l,allowedByApplication:!0,allowedByKeySystem:!0};f.push(h)}return new AM(f)},yM=function(a,b){return _.w(function*(){const c=b.playlist,
49
- d=b.codecs,e=b.type,f=b.Mc,g=b.dc,h=b.groupId,k=b.muxedAudioId,l=b.primary;var m=b.kind;const n=b.name,p=b.channelsCount,u=b.spatialAudio,v=b.closedCaptions,y=b.Dd,A=_.$i(f||_.hg);if(1!==c.type)throw new _.I(_.F,4,4017);const D=yield BM(a,c,e,d),E=a.a.lowLatencyMode?_.HB:_.GB;let ha=m;e!==_.H||m||(ha=_.QB);const ad=sK(c.ba);m=D.map(hc=>{const Qb=hc.S,Xd=hc.eh,Rb=hc.mimeType,ic=hc.ra,jc=Qb[0].startTime,Fb=Qb[Qb.length-1].endTime,hb=Fb-jc,va=new _.xJ(Qb),yb=Qb[0].initSegment||null;return{id:null===
50
- g?_.tJ++:g,originalId:n,createSegmentIndex:Promise.resolve.bind(Promise),findSegmentPosition:va.f.bind(va),getSegmentReference:va.get.bind(va),adjustSegmentDurations:va.h.bind(va),getDuration:va.getDuration.bind(va),segmentIndex:va,segmentLookupStrategy:E,initSegmentReference:yb,mimeType:Rb,codecs:d,kind:ha,Jf:Xd.type,encrypted:Xd.type===bK,aesEncrypted:hc.aesEncrypted,keyId:Xd.keyId,language:A,originalLanguage:f||_.hg,label:n,type:e,primary:l,trickModeVideo:null,emsgSchemeIdUris:null,frameRate:y?
51
- y.frameRate:void 0,width:y?y.width:void 0,height:y?y.height:void 0,bandwidth:void 0,roles:[],channelsCount:p,spatialAudio:u,closedCaptions:v,S:Qb,drmInfos:Xd.drmInfos,ra:ic,Ca:c.verbatimUri,ke:c.a,Oc:jc,Ce:Fb,duration:hb,groupId:h,aj:ad,muxedAudioId:k}});return new CM(m)})},zM=function(a,b){b.forEach(c=>{a.j.a.set(GK(c).Ca,c)})},sM=function(a,b){const c=new Map;for(const f of b){var d=_.J(f,_.kB);b=_.J(f,_.Cb);var e=_.J(f,YJ);const g=DM(a,f);if(e){const h=_.jl(_.H,g);c.set(`${_.H}:${e}`,h);e=g.indexOf(h);
52
- -1<e&&g.splice(e,1)}d&&(e=EM(_.q,g),c.set(`${"audio"}:${d}`,e));b&&(d=EM(_.t,g),c.set(`${"video"}:${b}`,d))}return c},tM=function(a,b){return _.w(function*(){const c=yield Promise.all([FM(a,b.wc.vf),FM(a,b.wc.yi),FM(a,b.Cd),FM(a,b.ze)]),[d,e,f,g]=c;return{wf:d,xi:e,Cd:f,ze:g}})},uM=function(a,b,c){return _.w(function*(){if(0===b.length)return new Map;var d=[GM(a,b[0],c)];yield d[0];d=d.concat(b.slice(1).map(e=>GM(a,e,c)));d=yield Promise.all(d);return HK(d)})},vM=function(a,b,c,d){return _.w(function*(){const e=
53
- new Set;var f=[...b];let g=0;var h=Infinity;for(let k=0;k<f.length;++k){const l=Number(cK(f[k].tag,_.ma));l<h&&(h=l,g=k)}h=f.splice(g,1).pop();h=yield HM(a,h,c,d,e);f=f.map(k=>HM(a,k,c,d,e));f=yield Promise.all(f);f.splice(g,0,h);return f.reduce(_.fC,[])})},wM=function(a,b,c){return Promise.all(b.map(d=>GM(a,d,c)))},xM=function(a,b){return Promise.all(b.map(c=>IM(a,c)))},JM=function(a,b){return _.w(function*(){const c=_.Ti(b.verbatimUri,a.w),{response:d,text:e}=yield XL(a,c);return YL(a,e,d.uri,b.verbatimUri)})},
54
- KM=function(a,b,c){return _.w(function*(){const d=yield yM(a,{playlist:c,codecs:b.codecs,type:b.type,Mc:b.originalLanguage,dc:b.id,groupId:b.groupId,primary:b.primary,kind:b.kind||null,name:b.label,channelsCount:b.channelsCount,spatialAudio:b.spatialAudio||!1,closedCaptions:b.closedCaptions,Dd:{width:b.width,height:b.height,frameRate:b.frameRate}});b.bandwidth&&EL(d,b.bandwidth);return d})},dM=function(a){return a.A===_.Db},FM=function(a,b){return _.w(function*(){return(yield Promise.all(b.map(c=>
55
- _.w(function*(){const d=yield LM(a,c);return d?{tag:c,playlist:d}:null})))).filter(Boolean)})},iM=function(a,b){return _.w(function*(){var c=new URL(GK(b).ke);if(a.a.lowLatencyMode&&a.K&&a.K.Af){var d=b.streams[b.streams.length-1].segmentIndex;if(d=d.a[d.a.length-1]){var e=d.a,f=e.length-1;d={Nh:d.position,Uh:e&&0<e.length?f:null}}else d=null;if(e=d)d=c.searchParams,f=e.Uh,d.set("_HLS_msn",e.Nh.toString()),null===f&&d.get(ZJ)&&d.delete(ZJ),null!==f&&d.set(ZJ,f.toString())}const {response:g,text:h}=
56
- yield XL(a,c.toString());c=GK(b).Ca;d=GK(b).ke;e=g.uri;d!==e&&(d=e,AL(b,d));c=YL(a,h,d,c);return{stream:b,playlist:c}})},DM=function(a,b){var c=_.J(b,_.pa,a.a.hlsDefaultCodecs||"avc1.42E01E,mp4a.40.2").split(/\s*,\s*/);c=JK(c);b=new Set;const d=[];for(const e of c)c=_.uC(e),b.has(c)?a.g.debug("Ignoring duplicate codec"):(d.push(e),b.add(c));return d},EM=function(a,b){if(1===b.length)return b[0];a=_.jl(a,b);if(null!=a)return a;throw new _.I(_.F,4,4025,{codecList:b});},GM=function(a,b,c){return _.w(function*(){const d=
57
- b.tag,e=b.playlist;return MM(a,e.verbatimUri,()=>_.w(function*(){const f=cK(d,_.Fa),g=tK(cK(d,_.sb));var h=cK(d,_.sb).toUpperCase();if(tK(h)!==_.H)h=null;else{var k=d.getAttribute("FORCED");k=!(!k||!k.value||"YES"!==k.value.toUpperCase());var l=_.QB;h===JJ&&(l=_.BB);k&&(l=_.Wd);h=l}k=c.get(`${g}:${f}`)||"";l=_.J(d,_.La);const m=_.J(d,_.Ta),n=_.J(d,"DEFAULT"),p=g===_.q?LK(d):null;var u=g===_.q?(u=_.J(d,"CHANNELS"))?u.includes("/JOC"):!1:!1;return yield yM(a,{playlist:e,codecs:k,type:g,Mc:l,primary:"YES"===
58
- n,name:m,channelsCount:p,spatialAudio:u,groupId:f,kind:h,dc:null,closedCaptions:null,Dd:null})}))})},IM=function(a,b){return _.w(function*(){const c=b.tag,d=b.playlist;return MM(a,d.verbatimUri,()=>_.w(function*(){var e=_.J(c,_.pa)||"jpg",f=_.J(c,_.La);const g=_.J(c,_.Ta);e=yield yM(a,{playlist:d,codecs:e,type:_.ee,Mc:f,name:g,primary:!1,kind:null,channelsCount:null,spatialAudio:!1,closedCaptions:null,dc:null,groupId:null,Dd:null});(f=_.J(c,_.ma))&&EL(e,Number(f));return e}))})},HM=function(a,b,c,
59
- d,e){return _.w(function*(){var f=b.tag,g=Number(cK(f,_.ma));if(f.hasAttribute("FRAME-RATE")||f.hasAttribute(_.lb)){var h=_.J(f,"FRAME-RATE");f=_.J(f,_.lb);var [k,l]=f?f.split("x"):[null,null];h={frameRate:hK(h),width:hK(k),height:hK(l)}}else h=null;if(f=yield NM(a,b,h,c,d)){h=f.video;f=f.audio;var m=0<f.length?f:[null];h=0<h.length?h:[null];f=[];for(const n of m)for(const p of h){m=(p?GK(p).Ca:"")+" - "+(n?GK(n).Ca:"");if(e.has(m)){a.g.debug("Skipping variant which only differs in text streams.");
60
- continue}const u=nM(a,n,p,g);null==u?a.g.warn("Incompatible DRM info in HLS variant. Skipping."):(f.push(u),e.add(m))}g=f}else g=[];return g})},OM=function(a,b,c,d,e,f){let g=DM(a,b);a.g.debug("Guessing stream type for",b.toString());b=!1;const h=_.jl(_.t,g),k=d+e;1!==g.length||c||h?!k&&1<g.length?(a.g.debug("Guessing multiplexed audio+video"),c=_.t,g=[g.join(",")]):d&&f?(a.g.debug(VJ),c=_.q,b=!0):e?(a.g.debug(VJ),c=_.q):(a.g.debug("Guessing video-only"),c=_.t):(c=_.q,a.g.debug(VJ));return{type:c,
61
- Rg:g,Dh:b}},MM=function(a,b,c){if(a.j.has(b))return a=a.j.get(b),Promise.resolve(a);if(a.j.f.has(b))return a.j.f.get(b)||null;c=c();a.j.set(b,c);return c},NM=function(a,b,c,d,e){return _.w(function*(){var f=b.tag,g=b.playlist,h=_.J(f,_.kB),k=_.J(f,_.Cb);h=h?d.get(`${"audio"}:${h}`)||[]:[];k=k?d.get(`${"video"}:${k}`)||[]:[];k={audio:h,video:k};const l=g.verbatimUri;g=k.audio.find(u=>GK(u).Ca===l);const {type:m,Rg:n,Dh:p}=OM(a,f,c,k.audio.length,k.video.length,g);f=null;p||(f=yield PM(a,b,n,m,e,c));
62
- if(null==f)return null;k[m]=[f];m===_.q&&c&&k.video.forEach(u=>{BL(u,c.width);CL(u,c.height);DL(u,c.frameRate)});return k})},PM=function(a,b,c,d,e,f){return _.w(function*(){const g=b.tag,h=b.playlist;return MM(a,h.verbatimUri,()=>_.w(function*(){var k=_.J(g,JJ);let l=null;d===_.t&&k&&"NONE"!==k&&(l=e.get(k));k=(k=_.J(g,_.kB)||void 0)&&a.J.has(k)?k:void 0;var m=EM(d,c);if(k){const n=EM(_.q,c);m+=`,${n}`}return yield yM(a,{playlist:h,codecs:m,type:d,closedCaptions:l,primary:!1,kind:null,Mc:null,name:null,
63
- channelsCount:null,spatialAudio:!1,dc:null,groupId:null,muxedAudioId:k,Dd:f})}))})},BM=function(a,b,c,d){return _.w(function*(){var e=b.verbatimUri,f=b.S;var g=void 0===g?0:g;var h=(h=mK(b.ba,RJ))?Number(h.value):g;g=[];e=yield QM(a,b.a,e,f,h,c,d);if(0===f.length)f=[];else{var k=[],l=[];for(var m of f)lK(m.ba,NJ)&&0<l.length&&(k.push(l),l=[]),l.push(m);k.push(l);f=k}for(m=0;m<f.length;m++)k=f[m],l=yield RM(a,b.a,k,h,e,c,d,g[g.length-1]||null),g.push(l),h+=k.length;SM(g);return g})},LM=function(a,
64
- b){return _.w(function*(){var c=b.name!==QJ?!0:_.J(b,_.sb)===YJ;c=_.J(b,_.ub,void 0,{required:c});if(!c)return null;const d=_.Ti(c,a.w),e=Date.now(),{response:f,text:g}=yield XL(a,d);a.D.onEvent(new _.C(aK,{detail:{duration:Date.now()-e,type:"media"}}));return YL(a,g,f.uri,c)})},SM=function(a){if(1<(new Set(a.map(b=>b.mimeType))).size)throw new _.I(_.F,4,4045,"Media playlist contains discontinuities with different MIME types. This is valid, but not yet supported.");},TM=function(a,b,c){a=iK(a.ba,
65
- PJ);if(1<a.length)throw new _.I(_.F,4,4020);a=a[0];if(!a)return null;const d=cK(a,_.ub),e=_.Ti(d,b);b=yK(a,null,!0);return new _.sJ(()=>[e],b.ma,b.ja,c)},UM=function(a,b,c,d,e,f,g){const h=[];for(const p of gK(b.f)){b=p.Wf;const u=p.item;{var k=0===b,l=k?a:h[h.length-1],m=k?d:l.endTime,n=Number(_.J(u,LJ));n=m+n;k=yK(u,k?null:l.ja,k);l=_.J(u,_.ub);const v=(l=_.Ti(l,g))?[l]:[];m=new AK(c,m,n,()=>v,k.ma,k.ja,e,f,!1,null,null,null,null);if("YES"===_.J(u,"INDEPENDENT")||0===b)m.h=!0;h.push(m)}}return h},
66
- VM=function(a,b,c,d,e,f,g,h,k,l,m){const n=c.ba;var p=c.a;0<iK(n,PJ).length&&(m=TM(c,k,g));const u=null!=p,v=p?[p]:[];if(!u&&!a.a.lowLatencyMode)return null;a=0;p={ma:0,ja:null};let y=null;u?({duration:c}=wK(n),a=e+c,p=vK(n,b?b.ja:null)):(b=UM(b,c,d,e,f,g,k),a=b[b.length-1].endTime,y=b);h=h===_.ee?nK(n):null;d=new AK(d,e,a,()=>v,p.ma,p.ja,f,g,!1,null,h?h.fd:null,h?h.Bd:null,h?h.durationPerTile:null,y,m);d.ra=l;return d},QM=function(a,b,c,d,e,f,g){return _.w(function*(){var h=d[0];if(null!=a.C)return a.C;
67
- if(!dM(a)&&a.f)try{var k=a.j.get(c);var l=k?zL(k,e)||null:null;if(!l)throw new _.I(_.F,4,4030,"Segment not found in pervious playlist update.");var m=l.startTime+l.Ba;a.g.debug(`Setting playlist start time to ${m}.`);return a.C=m}catch(n){if(h=a.j.get(c))m=h.streams[h.streams.length-1].S,m=m[m.length-1],a.g.warn(`Last #EXT-X-MEDIA-SEQUENCE values ${h.streams[0].S[0].position} - ${m.position}`+`, new values ${e} - ${e+d.length-1}.`,b,h);throw new _.I(_.F,4,4047,{message:"The updated playlist does not share any segments with the previous one.",
68
- uri:c});}m=yield WM(a,f,g,h);l=vL(h.ba,a.w,e);k=TM(h,b,l);h=yield XM(a,k,h,l,m,g);a.g.debug(`Setting playlist start time to ${h}.`);return a.C=h})},RM=function(a,b,c,d,e,f,g,h){return _.w(function*(){var k=c[0],l=null==h;const m=yield WM(a,f,g,k);var n=h?h.Kh:null;if(lK(c[0].ba,OJ)||null===n)n=sL(c,m),n=0===n.length?[oL()]:n;else{var p=sL(c,m);n=[n,...p]}p=n;n=p[p.length-1];p=pL(p);let u=h?h.Lh:null;var v=YM(u,k.ba,a.w,d);let y=TM(k,b,v)||(h?h.Eh:null);const A=k.ra;k=l?e:yield ZM(a,A,y,k,d,v,m,g);
69
- l=[];v=!1;for(let E=0;E<c.length;E++){var D=c[E];const ha=l[l.length-1]||null,ad=0===E?0:ha.endTime,hc=d+E,Qb=YM(u,D.ba,a.w,hc);(u=Qb)&&(v=!0);if(D=VM(a,ha,D,hc,ad,k,Qb,f,b,A,y))y=D.initSegment,l.push(D)}return{S:l,eh:p,Kh:n,aesEncrypted:v,mimeType:m,endTime:l[l.length-1].endTime,ra:A,Eh:y,Lh:u}})},WM=function(a,b,c,d){return _.w(function*(){const e=d.a;var f=mK(d.ba,PJ);f=f?cK(f,_.ub):null;return $M(a,b,c,e,f)})},XM=function(a,b,c,d,e,f){return _.w(function*(){if(null==c.a)return 0;const g=BK(c,
70
- d);return xL(a.T,b,g,e,f,null!=d)})},YM=function(a,b,c,d){return b.some(e=>e.name===OJ&&"NONE"===_.J(e,WJ))?null:(b=vL(b,c,d))?b:a&&a.generatedIv?Object.assign({},a,{iv:_.Fk(new Uint8Array(12),cL(d))}):a},ZM=function(a,b,c,d,e,f,g,h){return _.w(function*(){if(a.L.has(b))return a.L.get(b);const k=yield XM(a,c,d,f,g,h);a.g.debug(`Segment #${e} has raw media timestamp `+`${k} s.`);a.L.set(b,k);return k})},$M=function(a,b,c,d,e){return _.w(function*(){const f=[d,e].filter(Boolean);var g=_.ml(f,b,c);if(g)return g;
71
- g=_.mj([d],a.a.attemptParameters);g.method="HEAD";g.type=2;g=(yield a.H(g)).headers["content-type"];if(!g)throw new _.I(_.F,4,4021,"Unknown MIME type of: "+f.join(", "));return g.toLowerCase().split(";")[0]})},ZL=a=>{a=_.Vi(a)||"";return null!=_.cu.video[a]?_.t:null!=_.cu.audio[a]?_.q:null},RK=class{constructor(a,b,c,d){if(1===b){if(!d||0===d.length)throw new _.I(_.F,4,4043,"Media playlist must have at least one segment!");if(null==d[0].a)throw new _.I(_.F,4,4043,"Media playlist must have at least one full segment!");
72
- }this.a=a;this.verbatimUri="";this.type=b;this.ba=c;this.S=1===b?d:null}},$K=class{constructor(a,b,c){c=void 0===c?[]:c;this.ba=b;this.a=a;this.f=c;this.ra=-1}},AK=class extends _.pD{constructor(a,b,c,d,e,f,g,h,k,l,m,n,p,u,v){u=void 0===u?[]:u;super(a,b,c,d,e,f,g,void 0===h?null:h,void 0===k?!1:k,void 0===l?null:l,void 0===m?null:m,void 0===n?null:n,void 0===p?null:p,u,void 0===v?null:v);this.ra=0}},YK=/^#EXT-X-DEFINE/,ZK=/^#(EXT-X-DISCONTINUITY-SEQUENCE|EXT-X-ENDLIST|EXT-X-I-FRAMES-ONLY|EXT-X-MEDIA-SEQUENCE|EXT-X-PART-INF|EXT-X-PLAYLIST-TYPE|EXT-X-SERVER-CONTROL|EXT-X-TARGETDURATION|EXT-X-DATERANGE|EXT-X-VERSION)/,
73
- aN=class{constructor(){this.h=0;this.a=new Map}},bN=class{constructor(){this.a=new Map;this.f=new Map}set(a,b){this.f.set(a,b);return b.then(c=>this.a.set(a,c)).catch(()=>{}).then(()=>this.f.delete(a))}has(a){return this.a.has(a)}get(a){return this.a.get(a)||null}values(){return Array.from(this.a.values())}clear(){this.f.clear();this.a.clear()}},kM=new _.S("clpp.hls.DiscontinuityUtils");var uL={"com.apple.streamingkeydelivery":function(a,b){if(b===_.sg)throw new _.I(_.F,4,4041);if(cK(a,WJ)===XJ)throw new _.I(_.F,4,4044,"EXT-X-KEY:METHOD SAMPLE-AES-CTR is not supported in FairPlay.");return _.jC(_.qd,[{initDataType:_.Jf,initData:new Uint8Array(0)}],"")},"com.microsoft.playready":nL,"urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95":nL,"urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed":function(a){var b=cK(a,WJ);if(!lL.includes(b))return mL.error("Widevine in HLS is only supported with [",
74
- lL.join(", "),"], not",b),null;b=cK(a,_.ub);b=_.Gk(b);b=_.G(b.data);b=_.jC(_.ud,[{initDataType:_.Uc,initData:b}],"");if(a=_.J(a,"KEYID"))b.keyIds=[a.substr(2).toLowerCase()];return b}},lL=["SAMPLE-AES",XJ],mL=new _.S("clpp.hls.DrmParser");var tL=new _.S("clpp.hls.EncryptionUtils");var cN=class{constructor(a){this.g=new _.S("clpp.hls.MediaReader");this.f=a;this.a={attemptParameters:_.ij()}}};var CM=class{constructor(a){this.streams=a}length(){return this.streams.length}};var AM=class{constructor(a){this.a=a}length(){return this.a.length}};var SL=a=>{if(!a)return null;a=mK(a.ba,SJ);if(!a)return null;a=Date.parse(a.value);return isNaN(a)?null:a};var dN=class{constructor(){this.a=this.D=null;this.h=1;this.j=new bN;this.w="";this.R=new aN;this.G=0;this.o=null;this.l=new _.Mj(()=>{this.Rb()});this.A=_.Db;this.f=null;this.F=new _.eu;this.K=this.C=null;this.g=new _.S("clpp.hls.HlsParser");this.L=new Map;this.T=new cN(this.H.bind(this));this.P=!1;this.I=null;this.M=!1;this.B=new Map;this.J=new Set}configure(a){this.a=a;this.T.a=a}setCurrentVariant(a){this.o=a}start(a,b){const c=this;return _.w(function*(){if(c.P)throw Error("start() may be called only once!");
75
- c.P=!0;c.D=b;var d=Date.now();const {response:e,text:f}=yield XL(c,a);c.D.onEvent(new _.C(aK,{detail:{duration:Date.now()-d,type:"master"}}));c.w=e.uri;d=yield hM(c,f);c.f=d;const g=c.G;c.l&&0<g&&c.l.la(g);return d})}requestStop(){this.M=!0}stop(){this.l&&(this.l.stop(),this.l=null);const a=[];this.F&&(a.push(this.F.destroy()),this.F=null);this.j.clear();this.f=this.a=this.D=this.o=null;this.B.clear();this.J.clear();return Promise.all(a)}update(){const a=this;return _.w(function*(){const b=a.f;if(!dM(a)&&
76
- b){var c=b.presentationTimeline;"LIVE"===a.A&&(a.C=null);var d=Array.from(a.j.values());if(a.a.lowLatencyMode&&null!==a.o){const g=WL(a);d=d.filter(h=>g.includes(GK(h).Ca))}var e=yield jM(a,d);d=e.map(g=>g.playlist);lM(a,d);e=yield oM(a,e);GL(b.periods,e).forEach(g=>{a.D.filterNewPeriod(g)});bM(a,e);var f=pM(a,d);f=qM(a,d,f);b.cues=gM(a,f);IL(b.periods,e);VL(c,e);if(d=qK(d))!0!==a.a.keepTimelineLive&&rM(a,c,e),a.l.stop(),a.l=null;if(a.D.onUpdate)a.D.onUpdate(b);if(d&&a.D.onTurnedStatic)a.D.onTurnedStatic();
77
- a.M&&(yield a.stop());return b}})}loadVariant(a,b){const c=this;return _.w(function*(){const d=a.id;var e=c.f.periods.find(k=>k.id===b);if(e&&(e=e.variants.find(k=>k.id===d)))return e;e=c.f.alternativeVariants.find(k=>k.id===d);if(!e)throw new _.ni(`No alternative variant with id: ${d}`);var f=null,g=null;if(e.audio){const k=e.audio;f=MM(c,k.verbatimUri,()=>_.w(function*(){const l=yield JM(c,k);return KM(c,k,l)}))}if(e.video){const k=e.video;g=MM(c,k.verbatimUri,()=>_.w(function*(){const l=yield JM(c,
78
- k);return KM(c,k,l)}))}f=yield f;g=yield g;e=nM(c,f,g,e.bandwidth,e.id);let h;e&&(e=NL(c.D.configurationId,[e],[],[],!dM(c)),c.D.filterAllPeriods(e),e.forEach((k,l)=>{c.f.periods[l].variants.push(k.variants[0]);b===c.f.periods[l].id&&(h=k.variants[0])}));if(!h)throw new _.ni(`Could load variant with id: ${d}`);return h})}loadTextStream(a,b){const c=this;return _.w(function*(){let d;var e=c.f.periods.find(f=>f.id===b);e&&(e=e.textStreams.find(f=>f.id===a)||null)&&(d=e);if(!d&&c.f.alternativeTextStreams){const f=
79
- c.f.alternativeTextStreams.find(h=>h.id===a)||null;if(!f)throw new _.ni(`Could not load text stream with id: ${a}`);const g=yield MM(c,f.verbatimUri,()=>_.w(function*(){const h=yield JM(c,f);return KM(c,f,h)}));g&&c.f.periods.forEach((h,k)=>{h=g.streams[k];c.f.periods[k].textStreams.push(h);h.id===a&&(d=h)})}if(!d)throw new _.ni(`Could not load text stream with id: ${a}`);return d})}Rb(){const a=this;return _.w(function*(){a.g.debug(_.wB);if(a.D)try{yield a.update(),a.l&&0<a.G&&a.l.la(a.G)}catch(b){if(!(b instanceof
80
- _.I))throw b;a.D&&(a.D.onError(b),1===b.severity&&a.l&&a.l.la(.1))}})}H(a){if(!this.F)throw new _.I(_.F,7,7001);a=this.D.networkingEngine.fetch(a);_.vj(this.F,a);return a.U}};_.x("clpp.hls.HlsComponent",class extends _.uv{f(){_.st.m3u8=dN;_.rt[_.Ql]=dN;_.rt[$J]=dN}a(){_.ND("m3u8");_.OD(_.Ql);_.OD($J)}id(){return"hls"}});};f.call(g, window);
1
+ import {clpp} from "./cl.core.js";import './cl.mse.js';let g={};const _ = clpp._;var f=function(window){'use strict';var OI="CLOSED-CAPTIONS",PI="Could not parse MP4 segment start time.",QI="DURATION",RI="EXT-X-DATERANGE",SI="EXT-X-DISCONTINUITY",TI="EXT-X-KEY",UI="EXT-X-MAP",VI="EXT-X-MEDIA",WI="EXT-X-MEDIA-SEQUENCE",XI="EXT-X-PROGRAM-DATE-TIME",YI="EXT-X-STREAM-INF",ZI="Failed to infer discontinuity number",$I="Guessing audio-only",aJ="METHOD",bJ="SAMPLE-AES-CTR",cJ="SUBTITLES",dJ="_HLS_part",eJ="application/vnd.apple.mpegurl",fJ="manifestloaded",gJ="sample",hJ=function(a,b){return _.K(a,b,void 0,
2
+ {required:!0})},iJ=function(a){if(1>a.a)throw _.Zo();--a.a},jJ=function(a,b){for(const c in a){if(!(c in b))return!1;const d=a[c],e=b[c];if(d&&typeof d===_.He&&e&&typeof e===_.He){if(!jJ(d,e))return!1}else if(void 0!==d&&void 0!==e&&d!==e)return!1}return!0},kJ=function(a,b){if(!jJ(a,b))return!1;for(const c in b){if(!(c in a))return!0;const d=a[c],e=b[c];if(!d&&e||d&&typeof d===_.He&&e&&typeof e===_.He&&kJ(d,e))return!0}return!1},lJ=function(a,b){if(a===b||_.z(a)||_.z(b))return!1;const c=Object.keys(a);
3
+ for(let e=0;e<c.length;e++){var d=c[e];if(!(d in b))continue;const f=a[d];d=b[d];if(f instanceof Date&&d instanceof Date&&f.getTime()!==d.getTime())return!0;if(typeof f===_.He&&typeof d===_.He){if(lJ(f,d))return!0}else{if(f instanceof Array&&d instanceof Array){if(f.length!==d.length)return!0;for(let g=0;g<f.length;g++)if(f[g]!==d[g])return!0}if(f!==d)return!0}}return!1},mJ=function*(a){let b=-1,c=void 0,d=void 0;for(const e of a)0<=b&&(yield{kg:b,item:d,yi:c,next:e}),b++,c=d,d=e;-1!==b&&(yield{kg:b,
4
+ yi:c,item:d,next:void 0})},nJ=function(a){if(null!==a&&void 0!==a)return Number(a)},oJ=function(a){return 0>a?[]:Array.from({length:a},(b,c)=>c)},pJ=function(a){return new Uint8Array([a>>24&255,a>>16&255,a>>8&255,a&255])},qJ=function(a,b=0){return b+10<=a.length&&73===a[b]&&68===a[b+1]&&51===a[b+2]&&255>a[b+3]&&255>a[b+4]&&128>a[b+6]&&128>a[b+7]&&128>a[b+8]&&128>a[b+9]?!0:!1},rJ=function(a,b){return a.filter(c=>c.name===b)},sJ=function(a){const b=/^[a-zA-Z0-9_-]+$/,c=new Set;a.forEach(d=>{const e=
5
+ _.K(d,"VALUE"),f=_.K(d,_.Sa),g=_.K(d,"IMPORT"),h=_.K(d,"QUERYPARAM");if(1!==[f,g,h].filter(Boolean).length||f&&null==e)throw new _.H(_.C,4,4044,{message:"Invalid tag.",text:d.toString()});d=f||g||h;if(c.has(d))throw new _.H(_.C,4,4044,`EXT-X-DEFINE redefined variable "${d}".`);if(!b.test(d))throw new _.H(_.C,4,4044,`EXT-X-DEFINE invalid variable name "${d}".`);c.add(d)})},tJ=function(a,b){const c=Array.isArray(b)?b:[b];return a.filter(d=>{d=hJ(d,_.sb);return c.includes(d)})},uJ=function(a,b){return a.some(c=>
6
+ c.name===b)},vJ=function(a,b,c){c=void 0===c?{}:c;a=a.find(d=>d.name===b)||null;if(!a&&c.required)throw new _.H(_.C,4,4024,{missingTag:b});return a},wJ=function(a){var b=vJ(a,"EXT-X-TILES");if(!b)return{od:1,Ld:1,durationPerTile:null};a=_.K(b,"LAYOUT")||"1x1";b=_.K(b,QI);a=_.GB(a);return{od:a.od,Ld:a.Ld,durationPerTile:b?Number(b):null}},xJ=function(a){const b=new Set;a.variants.forEach(c=>{c.audio&&b.add(c.audio);c.video&&b.add(c.video)});a.textStreams.forEach(c=>b.add(c));a.thumbStreams.forEach(c=>
7
+ b.add(c));return Array.from(b)},yJ=function(a,b){Array.isArray(a)||(a=[a]);a.forEach(c=>{for(const d of xJ(c))b(d,c)})},zJ=function(a){return a.some(b=>uJ(b.aa,"EXT-X-ENDLIST"))},AJ=function(a){return a.type===_.q||a.type===_.t},BJ=function(a){if(vJ(a,"EXT-X-ENDLIST"))return _.Db;a=vJ(a,"EXT-X-PLAYLIST-TYPE");if(!a)return"LIVE";if(a.value===_.Db)return _.Db;if("EVENT"===a.value)return"EVENT";throw new _.H(_.C,4,4044,`Invalid EXT-X-PLAYLIST-TYPE value: ${a.value}`);},CJ=function(a){a={AUDIO:_.q,VIDEO:_.t,
8
+ SUBTITLES:_.J,"CLOSED-CAPTIONS":_.J}[a.toUpperCase()];if(!a)throw new _.H(_.C,4,4044,"EXT-X-MEDIA tag has an invalid TYPE attribute.");return a},DJ=function(a,b,c){c=void 0===c?!1:c;var d=0;let e=null;if(a){d=a.split("@");a=Number(d[0]);if(0>=a)throw new _.H(_.C,4,4044,"Byte range length must be positive.");if(d[1]){if(d=Number(d[1]),0>d)throw new _.H(_.C,4,4044,"Byte range start byte must not be negative.");}else{if(c)throw new _.H(_.C,4,4044,"Invalid byte range, offset is required but missing.");
9
+ if(null==b)throw new _.H(_.C,4,4044,"Invalid byte range, cannot calculate offset based on previous byte ranges.");d=b+1}e=d+a-1}return{ma:d,ja:e}},EJ=function(a,b){a=vJ(a,"EXT-X-BYTERANGE");return DJ(a?a.value:null,b)},FJ=function(a){a=vJ(a,"EXTINF",{required:!0}).value.split(",");const b=Number(a[0]);if(isNaN(b))throw new _.H(_.C,4,4044,"#EXTINF must be a number.");return{duration:b,title:a[1]||null}},GJ=function(a,b){b=void 0===b?{}:b;const c={Of:!1,th:!1,uh:null,Xh:null,Cg:null};a=vJ(a,"EXT-X-SERVER-CONTROL",
10
+ {required:b.Lg});if(!a)return c;const d=e=>null==e?null:Number(e);c.Of="YES"===_.K(a,"CAN-BLOCK-RELOAD");c.th="YES"===_.K(a,"CAN-SKIP-DATERANGES");c.uh=d(_.K(a,"CAN-SKIP-UNTIL"));c.Xh=d(_.K(a,"HOLD-BACK"));c.Cg=d(_.K(a,"PART-HOLD-BACK",void 0,{required:b.Lg}));return c},HJ=function(a,b,c){c=void 0===c?!1:c;a=_.K(a,"BYTERANGE");return DJ(a,b,c)},IJ=function(a){const b=rJ(a,VI),c=rJ(a,YI);a=rJ(a,"EXT-X-IMAGE-STREAM-INF");return{Bc:{If:tJ(b,[_.sA,_.Cb]),closedCaptions:tJ(b,OI),Si:tJ(b,cJ)},Md:c,Ke:a}},
11
+ KJ=function(a,b){const c=EJ(a.aa,null);return new JJ(0,0,0,()=>[a.a],c.ma,c.ja,0,b)},LJ=function(a){let b=Infinity,c=Infinity;xJ(a).filter(AJ).forEach(d=>{{d=d.S;var e=d[0].startTime;const f=d[d.length-1].endTime;d=e;e=f-e}b=Math.min(b,d);c=Math.min(c,e)});return{Tc:b,duration:c}},MJ=function(a){return a.map(b=>{({duration:b}=LJ(b));return b}).reduce((b,c)=>b+c,0)},NJ=function(a){return(a.video?a.video.Da:"")+" - "+(a.audio?a.audio.Da:"")},OJ=function(a,b,c,d,e){if(b===_.Db)return{delay:0,Kd:0};b=
12
+ vJ(a,"EXT-X-PART-INF");if(c&&b){e=Number(hJ(b,"PART-TARGET"));if(null!=d)return{delay:d,Kd:e};({Cg:d}=GJ(a,{Lg:!0}));return{delay:d,Kd:e}}a=vJ(a,"EXT-X-TARGETDURATION",{required:!0});a=Number(a.value);e=e||a;return null!=d?{delay:d,Kd:e}:{delay:3*a,Kd:e}},QJ=function(a){const b=new Map;a.forEach(c=>{var d=`${PJ(c).type}:${PJ(c).groupId}`;b.has(d)?(d=b.get(d),d.includes(c)||d.push(c)):b.set(d,[c])});return b},RJ=function(a){const b=new Map;for(const c of a){a=_.K(c,_.Ka);a=_.Nn(a||_.kg);const d=hJ(c,
13
+ _.Ea),e=hJ(c,"INSTREAM-ID");b.has(d)||b.set(d,new Map);b.get(d).set(e,a)}return b},SJ=function(a){return a.filter(b=>"mp4a.40.34"!==b)},TJ=function(a,b,c,d,e){var f=e&&e.Hd,g=e&&e.schemeIdUri,h=_.K(a,"ID");f=_.K(a,"START-DATE")||f;if(null===h||!f)return _.mv.warn("Invalid EXT-X-DATERANGE missing mandatory ID or required START-DATE attribute, ignoring the EXT-X-DATERANGE tag.",a),null;b=d?c-b:-b;d=new Date(f);c=d.getTime()/1E3+b;h={id:h,startTime:c,startDate:d,Hd:f};f=nJ(_.K(a,QI));void 0!==f&&0<=
14
+ f&&(h.duration=f);f=nJ(_.K(a,"PLANNED-DURATION"));void 0!==f&&0<=f&&(h.plannedDuration=f);g=_.K(a,"CLASS")||g||null;null!==g&&(h.schemeIdUri=g);f=(f=_.K(a,"END-DATE"))?new Date(f):null;null!==f&&f.getTime()>=d.getTime()&&(h.endDate=f);f=a.attributes;if(null==f)var k=null;else{d={};for(k of f)k.name.trim().startsWith("X-")&&(d[k.name]=k.value);k=_.fh(d)?d:null}k=k||{};(d=_.K(a,"CUE"))&&(k.CUE=d.split(","));if(_.ik(g)){f=a.attributes;if(null==f)var l=null;else{d={};for(l of f)switch(l.name){case _.Kb:d[_.Kb]=
15
+ l.value;break;case _.Jb:d[_.Jb]=l.value;break;case _.Qb:d[_.Qb]=nJ(l.value);break;case _.Ob:d[_.Ob]=nJ(l.value);break;case "X-SNAP":d["X-SNAP"]=l.value.split(",");break;case _.Pb:d[_.Pb]=l.value.split(",")}l=_.fh(d)?d:null}l&&(k=Object.assign(k,l))}_.fh(k)&&(h.customAttributes=k);if(lJ(e,h))return _.mv.warn("EXT-X-DATERANGE augmented and previous values differ.Ignoring the EXT-X-DATERANGE tag.",a),null;h=_.ch(e,h);if(_.ik(g)&&!_.jk(h.customAttributes))return _.mv.warn("Invalid EXT-X-DATERANGE Interstitial attributes X-ASSET-URI, X-ASSET-LIST"),
16
+ null;let m;h.endDate?m=h.endDate.getTime()/1E3+b:h.duration?m=c+h.duration:h.plannedDuration?m=c+h.plannedDuration:m=c;h.endTime=m;h.type=_.de;return h},UJ=function(a,b){if(!a)return null;const c=a.Da;return b.find(d=>PJ(d).Da===c)||null},VJ=function(a){return(a=_.K(a,"CHANNELS"))?parseInt(a.split("/")[0],10):null},WJ=function(a){return a.some(b=>b.startsWith("#EXT-X-TARGETDURATION"))?1:0},XJ=function(a,b){const c=new Map,d=new URL(b);a.forEach(e=>{var f=_.K(e,_.Sa),g=_.K(e,"QUERYPARAM");if(f)g=hJ(e,
17
+ "VALUE"),c.set(f,g);else if(g){f=d.searchParams.get(g);if(null==f)throw new _.H(_.C,4,4044,`Query param '${g}' missing in playlist URI.`);if(!f)throw new _.H(_.C,4,4044,`Query param '${g}' has no associated value`+" in playlist URI.");c.set(g,decodeURIComponent(f))}});return c},YJ=function(a,b){return a.replace(/\{\$([a-zA-Z0-9_-]+)\}/g,(c,d)=>{c=b.get(d);if(null==c)throw new _.H(_.C,4,4044,`Undefined variable '${d}'`);return c})},ZJ=function(a,b){a.forEach(c=>{c.attributes.forEach(d=>{d.value=YJ(d.value,
18
+ b)})})},bK=function(a,b,c){const d=[];for(let e=0;e<b.length;e++){const f=$J(a,b[e]);d.push(f);if(f.name===YI){const g=b[e+1];if(!g)throw new _.H(_.C,4,4044,"EXT-X-STREAM-INF is not followed by a URI.");f.attributes.push(new _.rr(_.ub,g));e++}}b=rJ(d,"EXT-X-DEFINE");sJ(b);b=XJ(b,c);a.a=b;ZJ(d,a.a);return new aK(c,0,d)},fK=function(a,b,c){const {Fi:d,Wh:e,bj:f}=cK(b),g=dK(a,f,c);b=e.map(k=>$J(a,k,g));const h=eK(a,c,d,g);return new aK(c,1,b,h)},gK=function(a,b,c){b=b.trim().split(/\n+/m).map(d=>d.trim()).filter(d=>
19
+ d.length&&!/^#(?!EXT)/m.test(d));if(!/^#EXTM3U($|[ \t\n])/m.test(b[0]))throw new _.H(_.C,4,4015);b=b.slice(1);return 0===WJ(b)?bK(a,b,c):fK(a,b,c)},cK=function(a){const b=[],c=[],d=[];for(const e of a)hK.test(e)?d.push(e):iK.test(e)?c.push(e):b.push(e);return{Fi:b,Wh:c,bj:d}},dK=function(a,b,c){b=b.map(e=>$J(a,e));sJ(b);const d=XJ(b,c);b.map(e=>_.K(e,"IMPORT")).filter(Boolean).forEach(e=>{const f=a.a.get(e);if(null==f)throw new _.H(_.C,4,4044,`Cannot import variable '${e}' as it is not defined `+
20
+ "in the master playlist");d.set(e,f)});return d},$J=function(a,b,c){a=_.tr(a.h++,b);c&&ZJ([a],c);return a},eK=function(a,b,c,d){const e=[];let f=[],g=[];c.forEach(h=>{/^(#EXT)/.test(h)?(h=$J(a,h,d),"EXT-X-PART"===h.name||"EXT-X-PRELOAD-HINT"===h.name&&"PART"===_.K(h,_.sb)?g.push(h):f.push(h)):(uJ(f,"EXT-X-GAP")||(h=YJ(h,d),h=_.Wm(h,b),e.push(new jK(h,f,g))),f=[],g=[])});0<g.length&&e.push(new jK(null,f,g));return e},kK=function(a,b,c){const d=[],e=[];e.push(new _.rr(_.ma,"0"));e.push(new _.rr(_.ub,
21
+ b));c.length&&e.push(new _.rr(_.pa,c));d.push(new _.sr(a.h++,YI,e));return new aK(b,0,d)},lK=function(a){function b(h,k,l){let m="";for(;k<l;k++)m+="%"+("00"+h[k].toString(16)).slice(-2);return m}function c(h){return h[0]<<21|h[1]<<14|h[2]<<7|h[3]}function d(){throw new _.H(_.C,4,4030);}qJ(a)||d();let e=10;a[5]&64&&(e=e+4+c(a.subarray(10,14)));do{var f=c(a.subarray(e+4,e+8));1>f&&d();var g=String.fromCharCode(a[e],a[e+1],a[e+2],a[e+3]);if("PRIV"===g){g=a.subarray(e+10,e+f+10);for(let h=0;h<g.byteLength;h++)if(0===
22
+ g[h]){if("com.apple.streaming.transportStreamTimestamp"===unescape(b(g,0,h)))return a=g.subarray(h+1),f=(a[3]&1)<<30|a[4]<<22|a[5]<<14|a[6]<<6|a[7]>>>2,f*=4,f+=a[7]&3,Math.round(f/9E4);break}}qJ(a,e)||d();e+=10;e+=f}while(e<a.byteLength);return d()},mK=function(a,b){let c=null,d=0;try{(new _.op).N(_.De,_.hp).N(_.hg,_.hp).N(_.ye,_.hp).ea("mdhd",g=>{g.reader.skip(0===g.version?8:16);d=_.M(g.reader);g.parser.stop()}).parse(b,!0)}catch(g){c=g}if(c||!d)throw _.Sv.error("Unable to find timescale in init segment!"),
23
+ new _.H(_.C,4,4030,PI,c);let e=0,f=!1;try{(new _.op).N("moof",_.hp).N("traf",_.hp).ea("tfdt",g=>{var h=d;if(0===g.version)h=_.M(g.reader)/h;else{{const k=_.M(g.reader),l=_.M(g.reader);if(!(2097151>=k||h>=Math.pow(2,12)))throw Error("Cannot accurately parse MP4 timestamp, base time is too high and timescale is \x3c\x3d 2^12");h=k/h*Math.pow(2,32)+l/h}}e=h;f=!0;g.parser.stop()}).parse(a,!0)}catch(g){c=g}if(c||!f)throw new _.H(_.C,4,4030,PI,c);return e},nK=function(a){for(;a.getPosition()<a.Na()-1;){const b=
24
+ a.getPosition();if(71===_.$o(a))return iJ(a),b}return-1},oK=function(a){function b(){d.seek(e+188);f=_.$o(d);71!==f&&(d.seek(e+192),f=_.$o(d));71!==f&&(d.seek(e+204),f=_.$o(d));71!==f&&c();iJ(d)}function c(){throw new _.H(_.C,4,4030);}const d=new _.gq(new DataView(a),!1);let e=0,f=0;e=nK(d);0>e&&(_.Sv.error("Unable to find sync byte in TS after scanning."),c());for(;;){e=d.getPosition();f=_.$o(d);71!==f&&c();a=_.ap(d);if(8191===(a&8191)){b();continue}if(!(a&16384)){b();continue}a=(_.$o(d)&48)>>4;
25
+ 0!==a&&2!==a||c();3===a&&(a=_.$o(d),d.skip(a));if(1!==_.M(d)>>8){b();continue}d.skip(3);a=_.$o(d)>>6;0!==a&&1!==a||c();0===_.$o(d)&&c();a=_.$o(d);const g=_.ap(d),h=_.ap(d);return(1073741824*((a&14)>>1)+((g&65534)<<14|(h&65534)>>1))/9E4}},rK=function(a){const b=pK(a),c=qK(a);a.forEach(d=>{const e=d.S,f=e.findIndex(h=>h.sa===b);let g=e.findIndex(h=>h.sa===c+1);-1===g&&(g=e.length);d.S=e.slice(f,g)})},qK=function(a){a=a.map(b=>b.S[b.S.length-1].sa);return Math.min(...a)},pK=function(a){a=a.map(b=>b.S[0].sa);
26
+ return Math.max(...a)},uK=function(a){var b=hJ(a,aJ);if(!sK.includes(b))return tK.error("PlayReady in HLS is only supported with [",sK.join(", "),"], not",b),null;a=hJ(a,_.ub);b=_.mm(a);a=null;b=_.F(b.data);try{a=_.gB(_.nq(b))}catch(c){a=b}return _.uB(_.td,[{initDataType:_.Uc,initData:a}],"")},wK=function(a){if(0===a.length)return vK();if(a.some(c=>"whole-segment"===c.type)||a.every(c=>c.type===_.Ge))return a[0];a=a.filter(c=>c.type===gJ);const b=_.ci(a.flatMap(c=>c.drmInfos));return{keyId:a[a.length-
27
+ 1].keyId,type:gJ,drmInfos:b}},zK=function(a,b){return xK(a).map(c=>yK(c.aa,b)).filter(Boolean)},xK=function(a){return a.filter(b=>uJ(b.aa,TI))},yK=function(a,b){a=rJ(a,TI).filter(d=>"AES-128"!==hJ(d,aJ));if(0===a.length)return null;var c=hJ(a[0],aJ);if(1===a.length&&"NONE"===c)return vK();c=a.map(d=>hJ(d,aJ));if(!c.every(d=>"SAMPLE-AES"===d)&&!c.every(d=>d===bJ))throw AK.warn(`EXT-X-KEY methods ${c.join(", ")} are incompatible.`),new _.H(_.C,4,4044,"Multiple EXT-X-KEY tags with incompatible METHOD values.");
28
+ a=a.map(d=>{const e=_.K(d,"KEYFORMAT","identity");{const f=BK[e]||null;d=f?f(d,b):null}d||AK.warn("Unsupported HLS KEYFORMAT",e);return d}).filter(Boolean);if(0===a.length)throw new _.H(_.C,4,4026);return{keyId:a.map(d=>d.keyIds).reduce((d,e)=>d.concat(e),[]).reverse()[0]||null,type:gJ,drmInfos:a}},vK=function(){return{type:_.Ge,drmInfos:[],keyId:null}},CK=function(a,b,c){a=rJ(a,TI)[0];if(!a||"AES-128"!==hJ(a,aJ))return null;var d=_.K(a,"IV","");d?c={iv:_.im((d||"0x").slice(2)),generatedIv:!1}:(d=
29
+ _.K(a,"KEYFORMAT"),c=null==d||"identity"===d?{iv:_.lm(new Uint8Array(12),pJ(c)),generatedIv:!0}:{iv:null,generatedIv:!1});const {iv:e,generatedIv:f}=c;return{method:"AES-128",url:_.Wm(hJ(a,_.ub),b),iv:e,generatedIv:f}},DK=function(a,b,c){return _.w(function*(){const d=b.f(),e=_.bC(b.Ea(),b.ma,b.ma+2048-1,a.a.attemptParameters);e.type=2;const f=_.bC(b.Ea(),b.ma,b.ja,a.a.attemptParameters);f.type=2;d&&(f.keyInfo=d);try{return yield a.f(c?f:e)}catch(g){if(7001===g.code||c)throw g;a.g.warn("Unable to fetch a partial HLS segment! Falling back to a full segment request, which is expensive! Your server should support Range requests and CORS pre-flights.",
30
+ e.uris[0]);try{return yield a.f(f)}catch(h){throw a.g.error("Failed to fetch media segment to parse its start timestamp.",f.uris[0],h),new _.H(_.C,4,4030,"Failed to fetch the media segment.");}}})},EK=function(a,b,c,d,e,f){return _.w(function*(){a.g.debug("Fetching segment to find start time");if("audio/mpeg"===d||d===_.Fc||d===_.Ec)return 0;if(d===_.Dc){var g=yield DK(a,c,f);g=_.F(g.data);if(!qJ(g))throw new _.H(_.C,4,4030,"AAC segment does not contain an ID3 tag.");return lK(g)}if(d===_.zg||d===
31
+ _.Gc)return g=[DK(a,c,f)],b&&g.push(DK(a,b,!0)),g=yield Promise.all(g),mK(g[0].data,(g[1]||g[0]).data);if(d===_.yg)return g=yield DK(a,c,f),oK(g.data);if(!_.mt(`${d.split("/")[0]||""}/mp4;codecs="${e}"`))return 0;throw new _.H(_.C,4,4030);})},FK=function(a,b){a=a.map(c=>c.streams[b]);return a.some(c=>null==c)?null:a},GK=function(a,b){a=a.streams.find(c=>{c=c.S;return c[0].position<=b&&b<=c[c.length-1].position});return null==a?null:a.S.find(c=>c.position===b)||null},PJ=function(a){return a.streams[0]},
32
+ HK=function(a,b){a.streams.forEach(c=>{c.xe=b})},IK=function(a,b){a.streams.forEach(c=>{c.width=b})},JK=function(a,b){a.streams.forEach(c=>{c.height=b})},KK=function(a,b){a.streams.forEach(c=>{c.frameRate=b})},LK=function(a,b){a.streams.forEach(c=>{c.bandwidth=b})},MK=function(a,b){a=a.map(c=>c.a[b]);return a.some(c=>null==c)?null:a},NK=function(a,b){const c=new Set(a.map(d=>d.sa));return b.filter(d=>!c.has(d.sa))},PK=function(a,b){for(;a[0].sa<b[0].sa;)a.splice(0,1);var c=a[0];let d=b[0];c.startTime===
33
+ d.startTime&&c.endTime===d.endTime||OK(c,d);const e=a.length-1;c=a[e];d=b[e];0<e&&(c.startTime!==d.startTime||c.endTime!==d.endTime)&&OK(c,d);for(c=e+1;c<b.length;)a.push(b[c]),c++},UK=function(a,b,c,d,e){var f=b[0].length();f=oJ(f).map(g=>{var h=MK(b,g)||[];const k=FK(c,g)||[];g=FK(d,g)||[];{const l=[...QK(h),...k,...g].filter(Boolean);RK(l);const {sa:m,duration:n}=l[0];h={configurationId:a,variants:h,textStreams:k,thumbStreams:g,startTime:0,id:`P${m}`,endTime:n,duration:n,sa:m}}return h});e&&SK(f[0]);
34
+ TK(f);return f},QK=function(a){a=new Set(a.flatMap(b=>[b.video,b.audio]).filter(Boolean));return Array.from(a)},SK=function(a){const b=QK(a.variants)[0].S[0].Ca;a.startTime+=b;a.endTime+=b},TK=function(a){for(let b=0;b<a.length;b++){const c=a[b],d=a[b-1];c.startTime=d?d.endTime:c.startTime;c.endTime=c.startTime+c.duration}},OK=function(a,b){a.startTime=b.startTime;a.endTime=b.endTime;a.duration=b.duration;VK(a.variants,b.variants);WK(xJ(a),xJ(b))},VK=function(a,b){const c=new Map(a.map(d=>[NJ(d),
35
+ d]));b.forEach(d=>{c.get(NJ(d)).drmInfos=d.drmInfos})},WK=function(a,b){const c=new Map(a.map(d=>[d.Da,d]));b.forEach(d=>{const e=c.get(d.Da);e.S=d.S;d.S.forEach(f=>{f.initSegment=e.initSegmentReference});e.segmentIndex.replace(d.S);e.Tc=d.Tc;e.Ne=d.Ne;e.duration=d.duration;e.Xf=d.Xf;e.encrypted=d.encrypted;e.drmInfos=d.drmInfos;e.keyId=d.keyId})},RK=function(a){const b=XK(a);a.forEach(c=>{_.YB(c.segmentIndex,b);c.duration=b;c.Ne=c.Tc+b})},XK=function(a){let b=Infinity;a.filter(AJ).forEach(c=>{b=
36
+ Math.min(b,c.duration)});return b},aL=function(a){if(!(2>a.length)&&YK(a)){a=a.map(e=>({playlist:e,Tf:ZK(e.S[0])}));var b=a.map(e=>e.Tf),c=Math.max(...b);b=Math.min(...b);if(!(1E3>c-b)){a.forEach(e=>{const f=e.playlist;for(e=e.Tf;0<f.S.length&&1E3<c-e;){var g=f.S.shift(),h=f.S[0];if(!h)break;$K(g,h);h=ZK(h);null!=h?e=h:({duration:h}=FJ(g.aa),e+=1E3*h)}});a=a.map(e=>e.playlist);if(a.some(e=>0===e.S.length))throw new _.H(_.C,4,4048,"Media playlists are completely out of sync.");var d=Math.min(...a.map(e=>
37
+ e.S.length));a.forEach(e=>{for(;e.S.length>d;)e.S.pop()})}}},YK=function(a){return a.every(b=>!!ZK(b.S[0]))},$K=function(a,b){a&&b&&[UI,TI].forEach(c=>{if(!uJ(b.aa,c)){var d=a.aa.filter(e=>e.name===c);0!==d.length&&d.forEach(e=>{b.aa.push(e)})}})},bL=function(a,b){yJ(b,(c,d)=>{_.oC(a,c.S,d.startTime)});_.gC(a.a,b[0].startTime,b[b.length-1].endTime)},cL=function(a){return null===a.o?[]:[a.o.audio,a.o.video].filter(b=>b).map(b=>b.Da)},dL=function(a,b){return _.w(function*(){var c=_.yk([b],a.a.attemptParameters);
38
+ c.type=1;c=yield a.H(c);let d="";try{d=_.pi(c.data)}catch(e){throw new _.H(_.C,4,4042);}d=d.replace(/\r\n|\r(?=[^\n]|$)/gm,"\n");d=d.trim();return{text:d,response:c}})},oL=function(a,b){return _.w(function*(){var c=eL(a,b,a.w,"");if(1===c.type){var d=c.S[0].a;c=fL(d);if(!c)throw new _.H(_.C,4,4021,`Unknown file extension ${d}`);d="";c===_.t?d="avc1.42E01E":c===_.q&&(d="mp4a.40.2");c=kK(a.R,a.w,a.a.hlsDefaultCodecs||d)}d=IJ(c.aa);c=gL(d.Bc.If);c.forEach(m=>{a.J.add(m.groupId)});var e=yield hL(a,d);
39
+ var f=e.fi;const g=e.periods;var h=e.zi;const k=e.Ui;d=e.alternativeVariants;const l=e.alternativeTextStreams;e=e.alternativeImageStreams;if(!a.D)throw new _.H(_.C,7,7001);iL(a,g);h=jL(a,f.delay,g,h);kL(a)||(a.G=f.Kd,lL(a));mL(a,h,g);f=nL(a,k);c={presentationTimeline:h,periods:g,minBufferTime:0,cues:f,muxedAudioTracks:c};d&&(c.alternativeVariants=d);l&&(c.alternativeTextStreams=l);e&&(c.alternativeImageStreams=e);a.g.debug("HLS playlist parsed",c);return c})},qL=function(a,b){return Promise.all(b.map(c=>
40
+ pL(a,c)))},sL=function(a,b){b.forEach(c=>{a:{var d=a.j.get(c.verbatimUri),e=!kL(a),f=vJ(c.aa,"EXT-X-DISCONTINUITY-SEQUENCE");if(f)var g=Number(f.value);else{d?(f=d.streams[d.streams.length-1].S,f=f[f.length-1].sa):f=0;if(e&&0<f)try{{const k=vJ(c.aa,WI);if(!k)throw rL.error("Failed to infer discontinuity number, because EXT-X-MEDIA-SEQUENCE tag is missing."),Error(ZI);const l=Number(k.value),m=GK(d,l);if(!m)throw rL.error("Failed to infer discontinuity number, could not find the appropriate segment in the previous playlist"+
41
+ ` (segment position = ${l})`),Error(ZI);var h=m.sa}g=h;break a}catch(k){throw new _.H(_.C,4,4024,"EXT-X-DISCONTINUITY-SEQUENCE tag is required for discontinuous HLS live streams.");}g=0}}c=c.S||[];for(const k of c)uJ(k.aa,SI)&&g++,k.sa=g});rK(b)},vL=function(a,b){return _.w(function*(){const {textStreams:c,thumbStreams:d,oh:e}=yield tL(a,b);var f=a.f.periods[0].variants;a.a.lowLatencyMode&&null!==a.o&&(f=f.filter(g=>g.id===a.o.id));f=f.map(g=>{const h=UJ(g.audio,e),k=UJ(g.video,e);g=uL(a,h,k,g.bandwidth);
42
+ if(!g)throw new _.H(_.C,4,4047,{message:"Video and audio are encrypted in an incompatible way.",Ej:k?PJ(k).Da:void 0,audio:h?PJ(h).Da:void 0});return g});return UK(a.D.configurationId,f,c,d,!0)})},iL=function(a,b){kL(a)||2!==a.a.timeline.version||(a.I||(a.I=b[0].startTime),_.oD(b,-a.I))},wL=function(a,b){b=b.flatMap(d=>d.S[0].aa);b=vJ(b,XI);if(!b)return null;const c=(new Date(b.value)).getTime();return isNaN(c)?(a.g.warn("Failed to parse EXT-X-PROGRAM-DATE-TIME tag "+`value (value: ${b.value}).`),
43
+ null):c/1E3},xL=function(a,b,c){b=b.find(e=>null!==vJ(e.aa,RI));if(!b)return[];if(null===c)throw new _.H(_.C,4,4024,"EXT-X-PROGRAM-DATE-TIME tag is required when EXT-X-DATERANGE tags are present");var d=b.aa.filter(e=>e.name===RI);b=new Map;for(const e of d)d=(d=_.K(e,"ID"))?b.get(d):void 0,(d=TJ(e,c,a.C,!kL(a),d))&&b.set(d.id,d);return Array.from(b.values())},nL=function(a,b){const c=new Set(b.map(d=>d.id));a.B.forEach((d,e)=>{c.has(e)||a.B.delete(e)});for(const d of b){if((b=a.B.get(d.id))&&b.Hd!==
44
+ d.Hd)a.D.onError(new _.H(1,4,4044,"EXT-X-DATERANGE START-DATE has changed for"+` ID=${d.id}`));const e={configurationId:a.D.configurationId,schemeIdUri:d.schemeIdUri,customAttributes:d.customAttributes,value:"",startTime:d.startTime,Hd:d.Hd,endTime:d.endTime,id:d.id,type:_.de,eventElement:null};b&&!kJ(b,e)||a.B.set(d.id,e)}return Array.from(a.B.values())},yL=function(a,b,c){a.A=_.Db;_.kC(b,!0);b.f=c[c.length-1].endTime},eL=function(a,b,c,d){a=gK(a.R,b,c);a.verbatimUri=d;return a},gL=function(a){return a.filter(b=>
45
+ b.name===VI&&_.K(b,_.sb)===_.sA&&!_.K(b,_.ub)).map(b=>{const c=VJ(b),d=_.K(b,_.Ka)||_.kg;return{groupId:hJ(b,_.Ea),id:_.vI++,label:hJ(b,_.Sa),language:d,channelsCount:c,primary:"YES"===_.K(b,"DEFAULT")}})},hL=function(a,b){return _.w(function*(){var c=RJ(b.Bc.closedCaptions),d=zL(a,b.Md),e=yield AL(a,b),f=Object.values(e).flat().map(k=>k.playlist),g=f[0];const h=BJ(g.aa);a.A=h;sL(a,f);!kL(a)&&aL(f);a.K=GJ(g.aa);f=OJ(g.aa,h,a.a.lowLatencyMode||!1,a.a.suggestedPresentationDelay,a.a.liveRefreshPeriod);
46
+ g=yield BL(a,e.Jf,d);c=yield CL(a,e.Md,g,c);d=yield DL(a,e.Ri,d);g=yield EL(a,e.Ke);d=UK(a.D.configurationId,c,d,g,!kL(a));a.D.filterAllPeriods(d);c=[...e.Md,...e.Jf].map(k=>k.playlist);e=wL(a,c);c=xL(a,c,e);return{periods:d,zi:e,Ui:c,fi:f}})},jL=function(a,b,c,d){let e=!0,f=null,g=0;kL(a)||(e=!1,f=0,g=b);b=a.a.timeline||{};b.type=void 0;a=new _.zI(b,f,g,!0,void 0,!!a.a.lowLatencyMode);_.kC(a,e);bL(a,c);d&&_.jC(a,d);return a},lL=function(a){var b=0;for(var c of a.j.values())b=Math.max(b,c.streams[0].Tc);
47
+ for(c=0;95443.7176888889<=b;)c+=95443.7176888889,b-=95443.7176888889;if(c){a.g.debug("Offsetting live streams by",c,"to compensate for rollover");for(const d of a.j.values())b=d.streams[0],95443.7176888889>b.Tc?(a.g.debug("Offset applied to",b.type),b.segmentIndex.offset(c)):a.g.debug("Offset NOT applied to",b.type)}},mL=function(a,b,c){c=MJ(c);"LIVE"===a.A||"EVENT"===a.A?(c=Math.max(c,b.J),isNaN(a.a.availabilityWindowOverride)||(c=a.a.availabilityWindowOverride),b.A=c):a.A===_.Db&&(b.f=c)},tL=function(a,
48
+ b){return _.w(function*(){const c=g=>PJ(g.stream).type===_.t||PJ(g.stream).type===_.q;var d=b.filter(c),e=b.filter(g=>!c(g)),f=g=>{g=g.map(h=>{var k=PJ(h.stream);k={language:k.language,channelsCount:k.channelsCount,spatialAudio:k.spatialAudio,closedCaptions:k.closedCaptions,primary:k.primary,kind:k.kind||null,groupId:k.groupId,type:k.type,codecs:k.codecs,name:k.originalId,uri:k.Da,Nd:{width:k.width,height:k.height,frameRate:k.frameRate}};h=Object.assign({},{playlist:h.playlist},k);return FL(a,h)});
49
+ return Promise.all(g)};d=yield f(d);f=yield f(e);GL(a,d.concat(f));e=f.filter(g=>PJ(g).type===_.YA);f=f.filter(g=>PJ(g).type===_.ge);return{textStreams:e,thumbStreams:f,oh:d}})},uL=function(a,b,c,d,e){const f=[],g=(c||b).length();for(let n=0;n<g;n++){var h=b?b.streams[n]||null:null,k=c?c.streams[n]||null:null,l=h,m=k;l=l&&m?_.NB(l.drmInfos,m.drmInfos)?_.MB(l.drmInfos,m.drmInfos):null:l?l.drmInfos:m?m.drmInfos:null;if(!l)return null;m=d;h={id:e?e:a.h++,language:h?h.language:_.kg,primary:!!h&&h.primary||
50
+ !!k&&k.primary,audio:h,video:k,bandwidth:m,drmInfos:l,allowedByApplication:!0,allowedByKeySystem:!0};f.push(h)}return new HL(f)},FL=function(a,b){return _.w(function*(){const c=b.playlist,d=b.codecs,e=b.type,f=b.Rc,g=b.hc,h=b.groupId,k=b.muxedAudioId,l=b.primary;var m=b.kind;const n=b.name,p=b.channelsCount,u=b.spatialAudio,v=b.closedCaptions,y=b.Nd,A=_.Nn(f||_.kg);if(1!==c.type)throw new _.H(_.C,4,4017);const D=yield IL(a,c,e,d),E=a.a.lowLatencyMode?_.PA:_.OA;let fa=m;e!==_.J||m||(fa=_.YA);const Vc=
51
+ BJ(c.aa);m=D.map(ac=>{const Lb=ac.S,Od=ac.zh,Mb=ac.mimeType,bc=ac.sa,cc=Lb[0].startTime,Bb=Lb[Lb.length-1].endTime,fb=Bb-cc,ua=new _.AI(Lb),rb=Lb[0].initSegment||null;return{id:null===g?_.vI++:g,originalId:n,createSegmentIndex:Promise.resolve.bind(Promise),findSegmentPosition:ua.f.bind(ua),getSegmentReference:ua.get.bind(ua),adjustSegmentDurations:ua.h.bind(ua),getDuration:ua.getDuration.bind(ua),segmentIndex:ua,segmentLookupStrategy:E,initSegmentReference:rb,mimeType:Mb,codecs:d,kind:fa,Xf:Od.type,
52
+ encrypted:Od.type===gJ,aesEncrypted:ac.aesEncrypted,keyId:Od.keyId,language:A,originalLanguage:f||_.kg,label:n,type:e,primary:l,trickModeVideo:null,emsgSchemeIdUris:null,frameRate:y?y.frameRate:void 0,width:y?y.width:void 0,height:y?y.height:void 0,bandwidth:void 0,roles:[],channelsCount:p,spatialAudio:u,closedCaptions:v,S:Lb,drmInfos:Od.drmInfos,sa:bc,Da:c.verbatimUri,xe:c.a,Tc:cc,Ne:Bb,duration:fb,groupId:h,vj:Vc,muxedAudioId:k}});return new JL(m)})},GL=function(a,b){b.forEach(c=>{a.j.a.set(PJ(c).Da,
53
+ c)})},zL=function(a,b){const c=new Map;for(const f of b){var d=_.K(f,_.sA);b=_.K(f,_.Cb);var e=_.K(f,cJ);const g=KL(a,f);if(e){const h=_.Lr(_.J,g);c.set(`${_.J}:${e}`,h);e=g.indexOf(h);-1<e&&g.splice(e,1)}d&&(e=LL(_.q,g),c.set(`${"audio"}:${d}`,e));b&&(d=LL(_.t,g),c.set(`${"video"}:${b}`,d))}return c},AL=function(a,b){return _.w(function*(){const c=yield Promise.all([ML(a,b.Bc.If),ML(a,b.Bc.Si),ML(a,b.Md),ML(a,b.Ke)]),[d,e,f,g]=c;return{Jf:d,Ri:e,Md:f,Ke:g}})},BL=function(a,b,c){return _.w(function*(){if(0===
54
+ b.length)return new Map;var d=[NL(a,b[0],c)];yield d[0];d=d.concat(b.slice(1).map(e=>NL(a,e,c)));d=yield Promise.all(d);return QJ(d)})},CL=function(a,b,c,d){return _.w(function*(){const e=new Set;var f=[...b];let g=0;var h=Infinity;for(let k=0;k<f.length;++k){const l=Number(hJ(f[k].tag,_.ma));l<h&&(h=l,g=k)}h=f.splice(g,1).pop();h=yield OL(a,h,c,d,e);f=f.map(k=>OL(a,k,c,d,e));f=yield Promise.all(f);f.splice(g,0,h);return f.reduce(_.rB,[])})},DL=function(a,b,c){return Promise.all(b.map(d=>NL(a,d,c)))},
55
+ EL=function(a,b){return Promise.all(b.map(c=>PL(a,c)))},QL=function(a,b){return _.w(function*(){const c=_.Wm(b.verbatimUri,a.w),{response:d,text:e}=yield dL(a,c);return eL(a,e,d.uri,b.verbatimUri)})},RL=function(a,b,c){return _.w(function*(){const d=yield FL(a,{playlist:c,codecs:b.codecs,type:b.type,Rc:b.originalLanguage,hc:b.id,groupId:b.groupId,primary:b.primary,kind:b.kind||null,name:b.label,channelsCount:b.channelsCount,spatialAudio:b.spatialAudio||!1,closedCaptions:b.closedCaptions,Nd:{width:b.width,
56
+ height:b.height,frameRate:b.frameRate}});b.bandwidth&&LK(d,b.bandwidth);return d})},kL=function(a){return a.A===_.Db},ML=function(a,b){return _.w(function*(){return(yield Promise.all(b.map(c=>_.w(function*(){const d=yield SL(a,c);return d?{tag:c,playlist:d}:null})))).filter(Boolean)})},pL=function(a,b){return _.w(function*(){var c=new URL(PJ(b).xe);if(a.a.lowLatencyMode&&a.K&&a.K.Of){var d=b.streams[b.streams.length-1].segmentIndex;if(d=d.a[d.a.length-1]){var e=d.a,f=e.length-1;d={gi:d.position,ri:e&&
57
+ 0<e.length?f:null}}else d=null;if(e=d)d=c.searchParams,f=e.ri,d.set("_HLS_msn",e.gi.toString()),null===f&&d.get(dJ)&&d.delete(dJ),null!==f&&d.set(dJ,f.toString())}const {response:g,text:h}=yield dL(a,c.toString());c=PJ(b).Da;d=PJ(b).xe;e=g.uri;d!==e&&(d=e,HK(b,d));c=eL(a,h,d,c);return{stream:b,playlist:c}})},KL=function(a,b){var c=_.K(b,_.pa,a.a.hlsDefaultCodecs||"avc1.42E01E,mp4a.40.2").split(/\s*,\s*/);c=SJ(c);b=new Set;const d=[];for(const e of c)c=_.xB(e),b.has(c)?a.g.debug("Ignoring duplicate codec"):
58
+ (d.push(e),b.add(c));return d},LL=function(a,b){if(1===b.length)return b[0];a=_.Lr(a,b);if(null!=a)return a;throw new _.H(_.C,4,4025,{codecList:b});},NL=function(a,b,c){return _.w(function*(){const d=b.tag,e=b.playlist;return TL(a,e.verbatimUri,()=>_.w(function*(){const f=hJ(d,_.Ea),g=CJ(hJ(d,_.sb));var h=hJ(d,_.sb).toUpperCase();if(CJ(h)!==_.J)h=null;else{var k=d.getAttribute("FORCED");k=!(!k||!k.value||"YES"!==k.value.toUpperCase());var l=_.YA;h===OI&&(l=_.JA);k&&(l=_.Zd);h=l}k=c.get(`${g}:${f}`)||
59
+ "";l=_.K(d,_.Ka);const m=_.K(d,_.Sa),n=_.K(d,"DEFAULT"),p=g===_.q?VJ(d):null;var u=g===_.q?(u=_.K(d,"CHANNELS"))?u.includes("/JOC"):!1:!1;return yield FL(a,{playlist:e,codecs:k,type:g,Rc:l,primary:"YES"===n,name:m,channelsCount:p,spatialAudio:u,groupId:f,kind:h,hc:null,closedCaptions:null,Nd:null})}))})},PL=function(a,b){return _.w(function*(){const c=b.tag,d=b.playlist;return TL(a,d.verbatimUri,()=>_.w(function*(){var e=_.K(c,_.pa)||"jpg",f=_.K(c,_.Ka);const g=_.K(c,_.Sa);e=yield FL(a,{playlist:d,
60
+ codecs:e,type:_.ge,Rc:f,name:g,primary:!1,kind:null,channelsCount:null,spatialAudio:!1,closedCaptions:null,hc:null,groupId:null,Nd:null});(f=_.K(c,_.ma))&&LK(e,Number(f));return e}))})},OL=function(a,b,c,d,e){return _.w(function*(){var f=b.tag,g=Number(hJ(f,_.ma));if(f.hasAttribute("FRAME-RATE")||f.hasAttribute(_.kb)){var h=_.K(f,"FRAME-RATE");f=_.K(f,_.kb);var [k,l]=f?f.split("x"):[null,null];h={frameRate:nJ(h),width:nJ(k),height:nJ(l)}}else h=null;if(f=yield UL(a,b,h,c,d)){h=f.video;f=f.audio;var m=
61
+ 0<f.length?f:[null];h=0<h.length?h:[null];f=[];for(const n of m)for(const p of h){m=(p?PJ(p).Da:"")+" - "+(n?PJ(n).Da:"");if(e.has(m)){a.g.debug("Skipping variant which only differs in text streams.");continue}const u=uL(a,n,p,g);null==u?a.g.warn("Incompatible DRM info in HLS variant. Skipping."):(f.push(u),e.add(m))}g=f}else g=[];return g})},VL=function(a,b,c,d,e,f){let g=KL(a,b);a.g.debug("Guessing stream type for",b.toString());b=!1;const h=_.Lr(_.t,g),k=d+e;1!==g.length||c||h?!k&&1<g.length?(a.g.debug("Guessing multiplexed audio+video"),
62
+ c=_.t,g=[g.join(",")]):d&&f?(a.g.debug($I),c=_.q,b=!0):e?(a.g.debug($I),c=_.q):(a.g.debug("Guessing video-only"),c=_.t):(c=_.q,a.g.debug($I));return{type:c,mh:g,Yh:b}},TL=function(a,b,c){if(a.j.has(b))return a=a.j.get(b),Promise.resolve(a);if(a.j.f.has(b))return a.j.f.get(b)||null;c=c();a.j.set(b,c);return c},UL=function(a,b,c,d,e){return _.w(function*(){var f=b.tag,g=b.playlist,h=_.K(f,_.sA),k=_.K(f,_.Cb);h=h?d.get(`${"audio"}:${h}`)||[]:[];k=k?d.get(`${"video"}:${k}`)||[]:[];k={audio:h,video:k};
63
+ const l=g.verbatimUri;g=k.audio.find(u=>PJ(u).Da===l);const {type:m,mh:n,Yh:p}=VL(a,f,c,k.audio.length,k.video.length,g);f=null;p||(f=yield WL(a,b,n,m,e,c));if(null==f)return null;k[m]=[f];m===_.q&&c&&k.video.forEach(u=>{IK(u,c.width);JK(u,c.height);KK(u,c.frameRate)});return k})},WL=function(a,b,c,d,e,f){return _.w(function*(){const g=b.tag,h=b.playlist;return TL(a,h.verbatimUri,()=>_.w(function*(){var k=_.K(g,OI);let l=null;d===_.t&&k&&"NONE"!==k&&(l=e.get(k));k=(k=_.K(g,_.sA)||void 0)&&a.J.has(k)?
64
+ k:void 0;var m=LL(d,c);if(k){const n=LL(_.q,c);m+=`,${n}`}return yield FL(a,{playlist:h,codecs:m,type:d,closedCaptions:l,primary:!1,kind:null,Rc:null,name:null,channelsCount:null,spatialAudio:!1,hc:null,groupId:null,muxedAudioId:k,Nd:f})}))})},IL=function(a,b,c,d){return _.w(function*(){var e=b.verbatimUri,f=b.S;var g=void 0===g?0:g;var h=(h=vJ(b.aa,WI))?Number(h.value):g;g=[];e=yield XL(a,b.a,e,f,h,c,d);if(0===f.length)f=[];else{var k=[],l=[];for(var m of f)uJ(m.aa,SI)&&0<l.length&&(k.push(l),l=
65
+ []),l.push(m);k.push(l);f=k}for(m=0;m<f.length;m++)k=f[m],l=yield YL(a,b.a,k,h,e,c,d,g[g.length-1]||null),g.push(l),h+=k.length;ZL(g);return g})},SL=function(a,b){return _.w(function*(){var c=b.name!==VI?!0:_.K(b,_.sb)===cJ;c=_.K(b,_.ub,void 0,{required:c});if(!c)return null;const d=_.Wm(c,a.w),e=Date.now(),{response:f,text:g}=yield dL(a,d);a.D.onEvent(new _.G(fJ,{detail:{duration:Date.now()-e,type:"media"}}));return eL(a,g,f.uri,c)})},ZL=function(a){if(1<(new Set(a.map(b=>b.mimeType))).size)throw new _.H(_.C,
66
+ 4,4045,"Media playlist contains discontinuities with different MIME types. This is valid, but not yet supported.");},$L=function(a,b,c){a=rJ(a.aa,UI);if(1<a.length)throw new _.H(_.C,4,4020);a=a[0];if(!a)return null;const d=hJ(a,_.ub),e=_.Wm(d,b);b=HJ(a,null,!0);return new _.wI(()=>[e],b.ma,b.ja,c)},aM=function(a,b,c,d,e,f,g){const h=[];for(const p of mJ(b.f)){b=p.kg;const u=p.item;{var k=0===b,l=k?a:h[h.length-1],m=k?d:l.endTime,n=Number(_.K(u,QI));n=m+n;k=HJ(u,k?null:l.ja,k);l=_.K(u,_.ub);const v=
67
+ (l=_.Wm(l,g))?[l]:[];m=new JJ(c,m,n,()=>v,k.ma,k.ja,e,f,!1,null,null,null,null);if("YES"===_.K(u,"INDEPENDENT")||0===b)m.h=!0;h.push(m)}}return h},bM=function(a,b,c,d,e,f,g,h,k,l,m){const n=c.aa;var p=c.a;0<rJ(n,UI).length&&(m=$L(c,k,g));const u=null!=p,v=p?[p]:[];if(!u&&!a.a.lowLatencyMode)return null;a=0;p={ma:0,ja:null};let y=null;u?({duration:c}=FJ(n),a=e+c,p=EJ(n,b?b.ja:null)):(b=aM(b,c,d,e,f,g,k),a=b[b.length-1].endTime,y=b);h=h===_.ge?wJ(n):null;d=new JJ(d,e,a,()=>v,p.ma,p.ja,f,g,!1,null,h?
68
+ h.od:null,h?h.Ld:null,h?h.durationPerTile:null,y,m);d.sa=l;return d},XL=function(a,b,c,d,e,f,g){return _.w(function*(){var h=d[0];if(null!=a.C)return a.C;if(!kL(a)&&a.f)try{var k=a.j.get(c);var l=k?GK(k,e)||null:null;if(!l)throw new _.H(_.C,4,4030,"Segment not found in pervious playlist update.");var m=l.startTime+l.Ca;a.g.debug(`Setting playlist start time to ${m}.`);return a.C=m}catch(n){if(h=a.j.get(c))m=h.streams[h.streams.length-1].S,m=m[m.length-1],a.g.warn(`Last #EXT-X-MEDIA-SEQUENCE values ${h.streams[0].S[0].position} - ${m.position}`+
69
+ `, new values ${e} - ${e+d.length-1}.`,b,h);throw new _.H(_.C,4,4047,{message:"The updated playlist does not share any segments with the previous one.",uri:c});}m=yield cM(a,f,g,h);l=CK(h.aa,a.w,e);k=$L(h,b,l);h=yield dM(a,k,h,l,m,g);a.g.debug(`Setting playlist start time to ${h}.`);return a.C=h})},YL=function(a,b,c,d,e,f,g,h){return _.w(function*(){var k=c[0],l=null==h;const m=yield cM(a,f,g,k);var n=h?h.di:null;if(uJ(c[0].aa,TI)||null===n)n=zK(c,m),n=0===n.length?[vK()]:n;else{var p=zK(c,m);n=[n,
70
+ ...p]}p=n;n=p[p.length-1];p=wK(p);let u=h?h.ei:null;var v=eM(u,k.aa,a.w,d);let y=$L(k,b,v)||(h?h.Zh:null);const A=k.sa;k=l?e:yield fM(a,A,y,k,d,v,m,g);l=[];v=!1;for(let E=0;E<c.length;E++){var D=c[E];const fa=l[l.length-1]||null,Vc=0===E?0:fa.endTime,ac=d+E,Lb=eM(u,D.aa,a.w,ac);(u=Lb)&&(v=!0);if(D=bM(a,fa,D,ac,Vc,k,Lb,f,b,A,y))y=D.initSegment,l.push(D)}return{S:l,zh:p,di:n,aesEncrypted:v,mimeType:m,endTime:l[l.length-1].endTime,sa:A,Zh:y,ei:u}})},cM=function(a,b,c,d){return _.w(function*(){const e=
71
+ d.a;var f=vJ(d.aa,UI);f=f?hJ(f,_.ub):null;return gM(a,b,c,e,f)})},dM=function(a,b,c,d,e,f){return _.w(function*(){if(null==c.a)return 0;const g=KJ(c,d);return EK(a.T,b,g,e,f,null!=d)})},eM=function(a,b,c,d){return b.some(e=>e.name===TI&&"NONE"===_.K(e,aJ))?null:(b=CK(b,c,d))?b:a&&a.generatedIv?Object.assign({},a,{iv:_.lm(new Uint8Array(12),pJ(d))}):a},fM=function(a,b,c,d,e,f,g,h){return _.w(function*(){if(a.L.has(b))return a.L.get(b);const k=yield dM(a,c,d,f,g,h);a.g.debug(`Segment #${e} has raw media timestamp `+
72
+ `${k} s.`);a.L.set(b,k);return k})},gM=function(a,b,c,d,e){return _.w(function*(){const f=[d,e].filter(Boolean);var g=_.Or(f,b,c);if(g)return g;g=_.yk([d],a.a.attemptParameters);g.method="HEAD";g.type=2;g=(yield a.H(g)).headers["content-type"];if(!g)throw new _.H(_.C,4,4021,"Unknown MIME type of: "+f.join(", "));return g.toLowerCase().split(";")[0]})},fL=a=>{a=_.Xm(a)||"";return null!=_.Du.video[a]?_.t:null!=_.Du.audio[a]?_.q:null},aK=class{constructor(a,b,c,d){if(1===b){if(!d||0===d.length)throw new _.H(_.C,
73
+ 4,4043,"Media playlist must have at least one segment!");if(null==d[0].a)throw new _.H(_.C,4,4043,"Media playlist must have at least one full segment!");}this.a=a;this.verbatimUri="";this.type=b;this.aa=c;this.S=1===b?d:null}},jK=class{constructor(a,b,c){c=void 0===c?[]:c;this.aa=b;this.a=a;this.f=c;this.sa=-1}},JJ=class extends _.BC{constructor(a,b,c,d,e,f,g,h,k,l,m,n,p,u,v){u=void 0===u?[]:u;super(a,b,c,d,e,f,g,void 0===h?null:h,void 0===k?!1:k,void 0===l?null:l,void 0===m?null:m,void 0===n?null:
74
+ n,void 0===p?null:p,u,void 0===v?null:v);this.sa=0}},hK=/^#EXT-X-DEFINE/,iK=/^#(EXT-X-DISCONTINUITY-SEQUENCE|EXT-X-ENDLIST|EXT-X-I-FRAMES-ONLY|EXT-X-MEDIA-SEQUENCE|EXT-X-PART-INF|EXT-X-PLAYLIST-TYPE|EXT-X-SERVER-CONTROL|EXT-X-TARGETDURATION|EXT-X-DATERANGE|EXT-X-VERSION)/,hM=class{constructor(){this.h=0;this.a=new Map}},iM=class{constructor(){this.a=new Map;this.f=new Map}set(a,b){this.f.set(a,b);return b.then(c=>this.a.set(a,c)).catch(()=>{}).then(()=>this.f.delete(a))}has(a){return this.a.has(a)}get(a){return this.a.get(a)||
75
+ null}values(){return Array.from(this.a.values())}clear(){this.f.clear();this.a.clear()}},rL=new _.S("clpp.hls.DiscontinuityUtils");var BK={"com.apple.streamingkeydelivery":function(a,b){if(b===_.yg)throw new _.H(_.C,4,4041);if(hJ(a,aJ)===bJ)throw new _.H(_.C,4,4044,"EXT-X-KEY:METHOD SAMPLE-AES-CTR is not supported in FairPlay.");return _.uB(_.rd,[{initDataType:_.Mf,initData:new Uint8Array(0)}],"")},"com.microsoft.playready":uK,"urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95":uK,"urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed":function(a){var b=hJ(a,aJ);if(!sK.includes(b))return tK.error("Widevine in HLS is only supported with [",
76
+ sK.join(", "),"], not",b),null;b=hJ(a,_.ub);b=_.mm(b);b=_.F(b.data);b=_.uB(_.vd,[{initDataType:_.Uc,initData:b}],"");if(a=_.K(a,"KEYID"))b.keyIds=[a.substr(2).toLowerCase()];return b}},sK=["SAMPLE-AES",bJ],tK=new _.S("clpp.hls.DrmParser");var AK=new _.S("clpp.hls.EncryptionUtils");var jM=class{constructor(a){this.g=new _.S("clpp.hls.MediaReader");this.f=a;this.a={attemptParameters:_.uk()}}};var JL=class{constructor(a){this.streams=a}length(){return this.streams.length}};var HL=class{constructor(a){this.a=a}length(){return this.a.length}};var ZK=a=>{if(!a)return null;a=vJ(a.aa,XI);if(!a)return null;a=Date.parse(a.value);return isNaN(a)?null:a};var kM=class{constructor(){this.a=this.D=null;this.h=1;this.j=new iM;this.w="";this.R=new hM;this.G=0;this.o=null;this.l=new _.Ni(()=>{this.Tb()});this.A=_.Db;this.f=null;this.F=new _.eu;this.K=this.C=null;this.g=new _.S("clpp.hls.HlsParser");this.L=new Map;this.T=new jM(this.H.bind(this));this.P=!1;this.I=null;this.M=!1;this.B=new Map;this.J=new Set}configure(a){this.a=a;this.T.a=a}setCurrentVariant(a){this.o=a}start(a,b){const c=this;return _.w(function*(){if(c.P)throw Error("start() may be called only once!");
77
+ c.P=!0;c.D=b;var d=Date.now();const {response:e,text:f}=yield dL(c,a);c.D.onEvent(new _.G(fJ,{detail:{duration:Date.now()-d,type:"master"}}));c.w=e.uri;d=yield oL(c,f);c.f=d;const g=c.G;c.l&&0<g&&c.l.la(g);return d})}requestStop(){this.M=!0}stop(){this.l&&(this.l.stop(),this.l=null);const a=[];this.F&&(a.push(this.F.destroy()),this.F=null);this.j.clear();this.f=this.a=this.D=this.o=null;this.B.clear();this.J.clear();return Promise.all(a)}update(){const a=this;return _.w(function*(){const b=a.f;if(!kL(a)&&
78
+ b){var c=b.presentationTimeline;"LIVE"===a.A&&(a.C=null);var d=Array.from(a.j.values());if(a.a.lowLatencyMode&&null!==a.o){const g=cL(a);d=d.filter(h=>g.includes(PJ(h).Da))}var e=yield qL(a,d);d=e.map(g=>g.playlist);sL(a,d);e=yield vL(a,e);NK(b.periods,e).forEach(g=>{a.D.filterNewPeriod(g)});iL(a,e);var f=wL(a,d);f=xL(a,d,f);b.cues=nL(a,f);PK(b.periods,e);bL(c,e);if(d=zJ(d))!0!==a.a.keepTimelineLive&&yL(a,c,e),a.l.stop(),a.l=null;if(a.D.onUpdate)a.D.onUpdate(b);if(d&&a.D.onTurnedStatic)a.D.onTurnedStatic();
79
+ a.M&&(yield a.stop());return b}})}loadVariant(a,b){const c=this;return _.w(function*(){const d=a.id;var e=c.f.periods.find(k=>k.id===b);if(e&&(e=e.variants.find(k=>k.id===d)))return e;e=c.f.alternativeVariants.find(k=>k.id===d);if(!e)throw new _.sl(`No alternative variant with id: ${d}`);var f=null,g=null;if(e.audio){const k=e.audio;f=TL(c,k.verbatimUri,()=>_.w(function*(){const l=yield QL(c,k);return RL(c,k,l)}))}if(e.video){const k=e.video;g=TL(c,k.verbatimUri,()=>_.w(function*(){const l=yield QL(c,
80
+ k);return RL(c,k,l)}))}f=yield f;g=yield g;e=uL(c,f,g,e.bandwidth,e.id);let h;e&&(e=UK(c.D.configurationId,[e],[],[],!kL(c)),c.D.filterAllPeriods(e),e.forEach((k,l)=>{c.f.periods[l].variants.push(k.variants[0]);b===c.f.periods[l].id&&(h=k.variants[0])}));if(!h)throw new _.sl(`Could load variant with id: ${d}`);return h})}loadTextStream(a,b){const c=this;return _.w(function*(){let d;var e=c.f.periods.find(f=>f.id===b);e&&(e=e.textStreams.find(f=>f.id===a)||null)&&(d=e);if(!d&&c.f.alternativeTextStreams){const f=
81
+ c.f.alternativeTextStreams.find(h=>h.id===a)||null;if(!f)throw new _.sl(`Could not load text stream with id: ${a}`);const g=yield TL(c,f.verbatimUri,()=>_.w(function*(){const h=yield QL(c,f);return RL(c,f,h)}));g&&c.f.periods.forEach((h,k)=>{h=g.streams[k];c.f.periods[k].textStreams.push(h);h.id===a&&(d=h)})}if(!d)throw new _.sl(`Could not load text stream with id: ${a}`);return d})}Tb(){const a=this;return _.w(function*(){a.g.debug(_.EA);if(a.D)try{yield a.update(),a.l&&0<a.G&&a.l.la(a.G)}catch(b){if(!(b instanceof
82
+ _.H))throw b;a.D&&(a.D.onError(b),1===b.severity&&a.l&&a.l.la(.1))}})}H(a){if(!this.F)throw new _.H(_.C,7,7001);a=this.D.networkingEngine.fetch(a);_.Il(this.F,a);return a.U}};_.x("clpp.hls.HlsComponent",class extends _.Ev{install(){_.Kt.m3u8=kM;_.Jt[_.wl]=kM;_.Jt[eJ]=kM}uninstall(){_.XC("m3u8");_.YC(_.wl);_.YC(eJ)}id(){return"hls"}});};f.call(g, window);
package/cl.hlssmpte.js CHANGED
@@ -1,5 +1,5 @@
1
- import {clpp} from "./cl.core.js";let g={};const _ = clpp._;var f=function(window){'use strict';var TU=function(a){a.a.one(a.m,_.oe,()=>SU(a))},SU=function(a){const b=a.m.getSurface().getMedia();if(b)if(a.h){a.a.on(b.textTracks,_.oc,d=>UU(a,d));var c=Array.from(b.textTracks);c.filter(d=>d.kind===_.ye).forEach(d=>{UU(a,{track:d})});!VU(c)&&a.l&&(a.g.warn("The metadata track is not present. Changing an audio track in order to enforce the creation of the metadata track."),WU(a,b))}else a.g.warn("The clpp.ttml.TextParser class is not available. Please register the ttml component first.");
2
- else a.g.warn("A video element is not available. Skipping.")},UU=function(a,b){b=b.track;b.kind===_.ye&&(a.g.info("The metadata track has been added."),b.mode=_.be,a.a.on(b,_.zd,c=>XU(a,c)))},VU=function(a){return a.some(b=>b.kind===_.ye)},WU=function(a,b){const c=a.m.getTrackManager(),d=c.oa(),e=c.getAudioTracks().find(g=>g!==d);if(e){var f=()=>c.xa(d);a.a.on(b.textTracks,_.oc,g=>{g.track.kind===_.ye&&(a.a.off(b.textTracks,_.oc,f),c.xa(d))});c.xa(e)}else a.g.warn("Can't enforce the creation of the metadata track if single audio track. Skipping.")},
3
- XU=function(a,b){const c=YU(a);c&&Array.from(b.target.activeCues||[]).forEach(d=>{if(d!==a.f&&Number.isFinite(d.startTime)&&Number.isFinite(d.endTime)&&"org.id3"===d.type&&d.value&&"TXXX"===d.value.key){var e=new ZU(d);if(e.f===c&&null!==e.a){a.f=d;d=a.h.parseMedia(_.Fi(e.a),{periodStart:a.j,segmentStart:e.startTime,segmentEnd:e.endTime});const f=a.m.getTextDisplayer();f.remove(0,e.startTime);f.append(d.cues,d.styles)}}})},YU=function(a){return(a=a.m.getTrackManager().ta())&&a.language&&a.language.toLowerCase()},
4
- ZU=class{constructor(a){this.startTime=a.startTime;this.endTime=a.endTime;this.a=this.f=null;a=a.value;if(!_.z(a)){a:{var b=a.info;if(_.gh(b)&&(b=b.toLowerCase().match(/lang:(\w+)/))&&b[1]){b=b[1].toLowerCase();break a}b=null}this.f=b;a=a.data;this.a=a=_.gh(a)?a:null}}};var $U=class{constructor(a,b,c){this.m=a;this.l=b;this.j=c;this.a=new _.Kt;this.h=(a=_.wt(_.yc))?new a(this.m.getConfiguration()):null;this.g=new _.S("clpp.hlssmpte.ImageCueHandler");this.f=null;TU(this)}destroy(){this.a.release();this.f=null;return Promise.resolve()}};var aV=class extends _.Iv{constructor(){super();this.a=null;this.f=!1}onPlayerCreated(){}onContentWillLoad(a){if(this.f=_.ak()){var b=a.getConfiguration();b=_.ah(b.hlssmpte||{});typeof b.patchMetadataTrack!==_.Mc&&(b.patchMetadataTrack=!1);_.hh(b.timestampOffset)||(b.timestampOffset=0);this.a=new $U(a,b.patchMetadataTrack,b.timestampOffset)}}onPlayerWillDestroy(){const a=this;return _.w(function*(){a.a&&(yield a.a.destroy(),a.a=null)})}id(){return"hlssmpte"}};_.x("clpp.hlssmpte.HlsSmptePlugin",aV);
5
- aV.Id="hlssmpte";_.fs(new class{create(){return new aV}});};f.call(g, window);
1
+ import {clpp} from "./cl.core.js";let g={};const _ = clpp._;var f=function(window){'use strict';var RT=function(a){a.a.one(a.m,_.te,()=>QT(a))},QT=function(a){const b=a.m.getSurface().getMedia();if(b)if(a.h){a.a.on(b.textTracks,_.oc,d=>ST(a,d));var c=Array.from(b.textTracks);c.filter(d=>d.kind===_.Ae).forEach(d=>{ST(a,{track:d})});!TT(c)&&a.l&&(a.g.warn("The metadata track is not present. Changing an audio track in order to enforce the creation of the metadata track."),UT(a,b))}else a.g.warn("The clpp.ttml.TextParser class is not available. Please register the ttml component first.");
2
+ else a.g.warn("A video element is not available. Skipping.")},ST=function(a,b){b=b.track;b.kind===_.Ae&&(a.g.info("The metadata track has been added."),b.mode=_.ce,a.a.on(b,_.Ad,c=>VT(a,c)))},TT=function(a){return a.some(b=>b.kind===_.Ae)},UT=function(a,b){const c=a.m.getTrackManager(),d=c.pa(),e=c.getAudioTracks().find(g=>g!==d);if(e){var f=()=>c.ya(d);a.a.on(b.textTracks,_.oc,g=>{g.track.kind===_.Ae&&(a.a.off(b.textTracks,_.oc,f),c.ya(d))});c.ya(e)}else a.g.warn("Can't enforce the creation of the metadata track if single audio track. Skipping.")},
3
+ VT=function(a,b){const c=WT(a);c&&Array.from(b.target.activeCues||[]).forEach(d=>{if(d!==a.f&&Number.isFinite(d.startTime)&&Number.isFinite(d.endTime)&&"org.id3"===d.type&&d.value&&"TXXX"===d.value.key){var e=new XT(d);if(e.f===c&&null!==e.a){a.f=d;d=a.h.parseMedia(_.ti(e.a),{periodStart:a.j,segmentStart:e.startTime,segmentEnd:e.endTime});const f=a.m.getTextDisplayer();f.remove(0,e.startTime);f.append(d.cues,d.styles)}}})},WT=function(a){return(a=a.m.getTrackManager().ua())&&a.language&&a.language.toLowerCase()},
4
+ XT=class{constructor(a){this.startTime=a.startTime;this.endTime=a.endTime;this.a=this.f=null;a=a.value;if(!_.z(a)){a:{var b=a.info;if(_.jh(b)&&(b=b.toLowerCase().match(/lang:(\w+)/))&&b[1]){b=b[1].toLowerCase();break a}b=null}this.f=b;a=a.data;this.a=a=_.jh(a)?a:null}}};var YT=class{constructor(a,b,c){this.m=a;this.l=b;this.j=c;this.a=new _.Qt;this.h=(a=_.At(_.Ac))?new a(this.m.getConfiguration()):null;this.g=new _.S("clpp.hlssmpte.ImageCueHandler");this.f=null;RT(this)}destroy(){this.a.release();this.f=null;return Promise.resolve()}};var ZT=class extends _.Uv{constructor(){super();this.a=null;this.f=!1}onPlayerCreated(){}onContentWillLoad(a){if(this.f=_.aj()){var b=a.getConfiguration();b=_.dh(b.hlssmpte||{});typeof b.patchMetadataTrack!==_.Mc&&(b.patchMetadataTrack=!1);_.kh(b.timestampOffset)||(b.timestampOffset=0);this.a=new YT(a,b.patchMetadataTrack,b.timestampOffset)}}onPlayerWillDestroy(){const a=this;return _.w(function*(){a.a&&(yield a.a.destroy(),a.a=null)})}id(){return"hlssmpte"}};_.x("clpp.hlssmpte.HlsSmptePlugin",ZT);
5
+ ZT.Id="hlssmpte";_.Wn(new class{create(){return new ZT}});};f.call(g, window);