UNPKG

shaka-player

Version:
108 lines (104 loc) 114 kB
(function(){var g={}; (function(window){var k,aa=this;function p(a,b){var c=a.split("."),d=aa;c[0]in d||!d.execScript||d.execScript("var "+c[0]);for(var e;c.length&&(e=c.shift());)c.length||void 0===b?d[e]?d=d[e]:d=d[e]={}:d[e]=b}function q(a,b){function c(){}c.prototype=b.prototype;a.Yb=b.prototype;a.prototype=new c;a.prototype.constructor=a;a.Xb=function(a,c,f){return b.prototype[c].apply(a,Array.prototype.slice.call(arguments,2))}};/* Copyright 2015 Google Inc. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ function ba(){};function ca(a){var b=console[a];b?b.bind||(console[a]=function(){b.apply(console,arguments)}):console[a]=function(){}}ca("error");ca("warn");ca("info");ca("log");ca("debug");function da(a){ea[a]={na:fa(),end:NaN}}function ga(a){if(a=ea[a])a.end=fa()}function ha(a){return(a=ea[a])&&a.end?a.end-a.na:NaN}var fa=window.performance&&window.performance.now?window.performance.now.bind(window.performance):Date.now,ea={};function ia(a,b,c){this.id=a;this.bandwidth=b||0;this.lang=c||"unknown";this.active=!1}p("shaka.player.AudioTrack.compare",function(a,b){return a.lang<b.lang?-1:a.lang>b.lang?1:a.bandwidth<b.bandwidth?-1:a.bandwidth>b.bandwidth?1:0});function ja(){this.minBandwidth=this.maxBandwidth=this.maxWidth=this.minHeight=this.maxHeight=null}ja.prototype.clone=function(){var a=new ja;a.maxHeight=this.maxHeight;a.minHeight=this.minHeight;a.maxWidth=this.maxWidth;a.maxBandwidth=this.maxBandwidth;a.minBandwidth=this.minBandwidth;return a};function r(){this.fontSize="100%";this.fontColor=ka;this.fontOpacity=la;this.backgroundColor=ma;this.backgroundOpacity=la;this.fontEdge=na}p("shaka.player.TextStyle",r);r.prototype.a=function(){var a=window.localStorage.getItem("ShakaPlayerTextStyle");if(a){var b;try{b=JSON.parse(a)}catch(c){return}if(b&&"object"==typeof b){var a=b,d;for(d in a)d in this&&(this[d]=a[d])}}};r.prototype.load=r.prototype.a;r.prototype.b=function(){window.localStorage.setItem("ShakaPlayerTextStyle",JSON.stringify(this))}; r.prototype.store=r.prototype.b;function oa(a){var b=[];b.push("font-size: "+a.fontSize);b.push("color: "+pa(a.fontColor,a.fontOpacity));b.push("background-color: "+pa(a.backgroundColor,a.backgroundOpacity));for(var c=[],d=0;d<a.fontEdge.length;++d){var e=a.fontEdge[d].slice(3,6);c.push(pa(a.fontEdge[d].slice(0,3),a.fontOpacity)+" "+e.join("px ")+"px")}b.push("text-shadow: "+c.join(","));return b.join("; ")}function pa(a,b){return"rgba("+a.concat(b).join(",")+")"}var ka=[255,255,255],ma=[0,0,0]; r.StandardColors={WHITE:ka,BLACK:ma,RED:[255,0,0],GREEN:[0,255,0],BLUE:[0,0,255],YELLOW:[255,255,0],MAGENTA:[255,0,255],CYAN:[0,255,255]};var la=1;r.StandardOpacities={OPAQUE:la,SEMI_HIGH:.75,SEMI_LOW:.25,TRANSPARENT:0};var na=[]; r.EdgeStyles={NONE:na,RAISED:[[34,34,34,1,1,0],[34,34,34,2,2,0],[34,34,34,3,3,0]],DEPRESSED:[[204,204,204,1,1,0],[204,204,204,0,1,0],[34,34,34,-1,-1,0],[34,34,34,0,-1,0]],UNIFORM:[[34,34,34,0,0,4],[34,34,34,0,0,4],[34,34,34,0,0,4],[34,34,34,0,0,4]],DROP:[[34,34,34,2,2,3],[34,34,34,2,2,4],[34,34,34,2,2,5]]};function qa(a,b){this.id=a;this.lang=b||"unknown";this.enabled=this.active=!1}p("shaka.player.TextTrack.compare",function(a,b){return a.lang<b.lang?-1:a.lang>b.lang?1:0});function ra(a,b,c,d){this.id=a;this.bandwidth=b||0;this.width=c||0;this.height=d||0;this.active=!1}function sa(a,b){var c=a.width*a.height,d=b.width*b.height;return c<d?-1:c>d?1:a.bandwidth<b.bandwidth?-1:a.bandwidth>b.bandwidth?1:0}p("shaka.player.VideoTrack.compare",sa);function ta(){var a="CustomEvent"in window;if(a)try{new CustomEvent("")}catch(b){a=!1}a||(window.CustomEvent=ua)}p("shaka.polyfill.CustomEvent.install",ta);function ua(a,b){var c=document.createEvent("CustomEvent"),d=b||{bubbles:!1,cancelable:!1,detail:null};c.initCustomEvent(a,!!d.bubbles,!!d.cancelable,d.detail);return c};function va(){var a=Element.prototype;a.requestFullscreen=a.requestFullscreen||a.mozRequestFullScreen||a.msRequestFullscreen||a.webkitRequestFullscreen;a=Document.prototype;a.exitFullscreen=a.exitFullscreen||a.mozCancelFullScreen||a.msExitFullscreen||a.webkitExitFullscreen;"fullscreenElement"in document||Object.defineProperty(document,"fullscreenElement",{get:function(){return document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement}});document.addEventListener("webkitfullscreenchange", xa);document.addEventListener("webkitfullscreenerror",xa);document.addEventListener("mozfullscreenchange",xa);document.addEventListener("mozfullscreenerror",xa);document.addEventListener("MSFullscreenChange",xa);document.addEventListener("MSFullscreenError",xa)}p("shaka.polyfill.Fullscreen.install",va);function xa(a){var b=a.type.replace(/^(webkit|moz|MS)/,"").toLowerCase(),b=new Event(b,a);a.target.dispatchEvent(b)};function ya(){return Promise.reject(Error("The key system specified is not supported."))}function za(a){return null==a?Promise.resolve():Promise.reject(Error("MediaKeys not supported."))}function Aa(){throw new TypeError("Illegal constructor.");}Aa.prototype.createSession=function(){};Aa.prototype.setServerCertificate=function(){};function Ba(){throw new TypeError("Illegal constructor.");}Ba.prototype.getConfiguration=function(){};Ba.prototype.createMediaKeys=function(){};function u(a){this.c=[];this.b=[];this.ba=Ca;if(a)try{a(this.W.bind(this),this.a.bind(this))}catch(b){this.a(b)}}var Ca=0;function Da(){window.Promise||(window.Promise=u,window.Promise.resolve=Ea,window.Promise.reject=Fa,window.Promise.all=Ga,window.Promise.race=Ha,window.setImmediate?(Ja=function(a){return window.setImmediate(a)},Ka=function(a){return window.clearImmediate(a)}):(Ja=function(a){return window.setTimeout(a,0)},Ka=function(a){return window.clearTimeout(a)}))} p("shaka.polyfill.Promise.install",Da);function Ea(a){var b=new u;b.W(a);return b}function Fa(a){var b=new u;b.a(a);return b}function Ga(a){function b(a,b,c){a.ba==Ca&&(e[b]=c,d++,d==e.length&&a.W(e))}var c=new u;if(!a.length)return c.W([]),c;for(var d=0,e=Array(a.length),f=c.a.bind(c),g=0;g<a.length;++g)a[g]&&a[g].then?a[g].then(b.bind(null,c,g),f):b(c,g,a[g]);return c}function Ha(a){for(var b=new u,c=b.W.bind(b),d=b.a.bind(b),e=0;e<a.length;++e)a[e]&&a[e].then?a[e].then(c,d):c(a[e]);return b} u.prototype.then=function(a,b){var c=new u;switch(this.ba){case 1:La(this,c,a);break;case 2:La(this,c,b);break;case Ca:this.c.push({Ia:c,Ba:a}),this.b.push({Ia:c,Ba:b})}return c};u.prototype.then=u.prototype.then;u.prototype.catch=function(a){return this.then(void 0,a)};u.prototype["catch"]=u.prototype.catch;u.prototype.W=function(a){if(this.ba==Ca){this.wa=a;this.ba=1;for(a=0;a<this.c.length;++a)La(this,this.c[a].Ia,this.c[a].Ba);this.c=[];this.b=[]}}; u.prototype.a=function(a){if(this.ba==Ca){this.wa=a;this.ba=2;for(a=0;a<this.b.length;++a)La(this,this.b[a].Ia,this.b[a].Ba);this.c=[];this.b=[]}};function La(a,b,c){Ma.push(function(){if(c&&"function"==typeof c){try{var a=c(this.wa)}catch(e){b.a(e);return}a instanceof u?a==b?b.a(new TypeError("Chaining cycle detected")):a.then(b.W.bind(b),b.a.bind(b)):b.W(a)}else 1==this.ba?b.W(this.wa):b.a(this.wa)}.bind(a));null==Na&&(Na=Ja(Oa))} function Oa(){for(;Ma.length;){null!=Na&&(Ka(Na),Na=null);var a=Ma;Ma=[];for(var b=0;b<a.length;++b)a[b]()}}function Ja(){return 0}function Ka(){}var Na=null,Ma=[];function Pa(){var a=HTMLVideoElement.prototype;!a.getVideoPlaybackQuality&&"webkitDroppedFrameCount"in a&&(a.getVideoPlaybackQuality=Qa)}p("shaka.polyfill.VideoPlaybackQuality.install",Pa);function Qa(){return{droppedVideoFrames:this.webkitDroppedFrameCount,totalVideoFrames:this.webkitDecodedFrameCount,corruptedVideoFrames:0,creationTime:NaN,totalFrameDelay:0}};function Ra(a,b){for(var c=[],d=0;d<a.length;++d){for(var e=!1,f=0;f<c.length&&!(e=b?b(a[d],c[f]):a[d]===c[f]);++f);e||c.push(a[d])}return c};function v(){return Date.now()+Sa}var Sa=0;function Ta(a){this.b=a;this.c=0==Ua;this.a=0}var Ua=1;function Va(a){return a.a<a.b.byteLength}function Wa(a){var b=a.b.getUint8(a.a);a.a+=1;return b}function w(a){var b=a.b.getUint32(a.a,a.c);a.a+=4;return b}function Xa(a){var b,c;a.c?(b=a.b.getUint32(a.a,!0),c=a.b.getUint32(a.a+4,!0)):(c=a.b.getUint32(a.a,!1),b=a.b.getUint32(a.a+4,!1));if(2097151<c)throw new RangeError("DataViewReader: Overflow reading 64-bit value.");a.a+=8;return c*Math.pow(2,32)+b} function Ya(a){if(a.a+16>a.b.byteLength)throw new RangeError("DataViewReader: Read past end of DataView.");var b=new Uint8Array(a.b.buffer,a.a,16);a.a+=16;return b}function Za(a,b){if(a.a+b>a.b.byteLength)throw new RangeError("DataViewReader: Skip past end of DataView.");a.a+=b};function $a(a){this.b=a;this.a=new Ta(a);ab||(ab=[new Uint8Array([255]),new Uint8Array([127,255]),new Uint8Array([63,255,255]),new Uint8Array([31,255,255,255]),new Uint8Array([15,255,255,255,255]),new Uint8Array([7,255,255,255,255,255]),new Uint8Array([3,255,255,255,255,255,255]),new Uint8Array([1,255,255,255,255,255,255,255])])}var ab; function bb(a){var b;b=cb(a);if(7<b.length)throw new RangeError("EbmlParser: EBML ID must be at most 7 bytes.");for(var c=0,d=0;d<b.length;d++)c=256*c+b[d];b=c;c=cb(a);a:{for(d=0;d<ab.length;d++)if(db(c,ab[d])){d=!0;break a}d=!1}if(d)c=a.b.byteLength-a.a.a;else{if(8==c.length&&c[1]&224)throw new RangeError("EbmlParser: Variable sized integer value must be at most 53 bits.");for(var d=c[0]&(1<<8-c.length)-1,e=1;e<c.length;e++)d=256*d+c[e];c=d}c=a.a.a+c<=a.b.byteLength?c:a.b.byteLength-a.a.a;d=new DataView(a.b.buffer, a.b.byteOffset+a.a.a,c);Za(a.a,c);return new eb(b,d)}function cb(a){var b=Wa(a.a),c;for(c=1;8>=c&&!(b&1<<8-c);c++);if(8<c)throw new RangeError("EbmlParser: Variable sized integer must fit within 8 bytes.");var d=new Uint8Array(c);d[0]=b;for(b=1;b<c;b++)d[b]=Wa(a.a);return d}function eb(a,b){this.id=a;this.a=b} function fb(a){if(8<a.a.byteLength)throw new RangeError("EbmlElement: Unsigned integer has too many bytes.");if(8==a.a.byteLength&&a.a.getUint8(0)&224)throw new RangeError("EbmlParser: Unsigned integer must be at most 53 bits.");for(var b=0,c=0;c<a.a.byteLength;c++)var d=a.a.getUint8(c),b=256*b+d;return b};var gb={"output-restricted":"The required output protection is not available.","output-not-allowed":"The required output protection is not available.",expired:"The decryption key has expired.","internal-error":"The key system has encountered an unspecified error."};function hb(a){this.c=Math.exp(Math.log(.5)/a);this.a=this.b=0}hb.prototype.sample=function(a,b){var c=Math.pow(this.c,a);this.b=b*(1-c)+c*this.b;this.a+=a};function ib(a){return a.b/(1-Math.pow(a.c,a.a))};function x(a){var b=new CustomEvent(a.type,{detail:a.detail,bubbles:!!a.bubbles}),c;for(c in a)c in b||(b[c]=a[c]);return b}function y(a){return new CustomEvent("error",{detail:a,bubbles:!0})};function jb(a,b,c){kb(b);kb(c);return c==b||a>=lb&&c==b.split("-")[0]||a>=mb&&c.split("-")[0]==b.split("-")[0]?!0:!1}var lb=1,mb=2;function kb(a){a=a.toLowerCase().split("-");var b=nb[a[0]];b&&(a[0]=b);return a.join("-")} var nb={aar:"aa",abk:"ab",afr:"af",aka:"ak",alb:"sq",amh:"am",ara:"ar",arg:"an",arm:"hy",asm:"as",ava:"av",ave:"ae",aym:"ay",aze:"az",bak:"ba",bam:"bm",baq:"eu",bel:"be",ben:"bn",bih:"bh",bis:"bi",bod:"bo",bos:"bs",bre:"br",bul:"bg",bur:"my",cat:"ca",ces:"cs",cha:"ch",che:"ce",chi:"zh",chu:"cu",chv:"cv",cor:"kw",cos:"co",cre:"cr",cym:"cy",cze:"cs",dan:"da",deu:"de",div:"dv",dut:"nl",dzo:"dz",ell:"el",eng:"en",epo:"eo",est:"et",eus:"eu",ewe:"ee",fao:"fo",fas:"fa",fij:"fj",fin:"fi",fra:"fr",fre:"fr", fry:"fy",ful:"ff",geo:"ka",ger:"de",gla:"gd",gle:"ga",glg:"gl",glv:"gv",gre:"el",grn:"gn",guj:"gu",hat:"ht",hau:"ha",heb:"he",her:"hz",hin:"hi",hmo:"ho",hrv:"hr",hun:"hu",hye:"hy",ibo:"ig",ice:"is",ido:"io",iii:"ii",iku:"iu",ile:"ie",ina:"ia",ind:"id",ipk:"ik",isl:"is",ita:"it",jav:"jv",jpn:"ja",kal:"kl",kan:"kn",kas:"ks",kat:"ka",kau:"kr",kaz:"kk",khm:"km",kik:"ki",kin:"rw",kir:"ky",kom:"kv",kon:"kg",kor:"ko",kua:"kj",kur:"ku",lao:"lo",lat:"la",lav:"lv",lim:"li",lin:"ln",lit:"lt",ltz:"lb",lub:"lu", lug:"lg",mac:"mk",mah:"mh",mal:"ml",mao:"mi",mar:"mr",may:"ms",mkd:"mk",mlg:"mg",mlt:"mt",mon:"mn",mri:"mi",msa:"ms",mya:"my",nau:"na",nav:"nv",nbl:"nr",nde:"nd",ndo:"ng",nep:"ne",nld:"nl",nno:"nn",nob:"nb",nor:"no",nya:"ny",oci:"oc",oji:"oj",ori:"or",orm:"om",oss:"os",pan:"pa",per:"fa",pli:"pi",pol:"pl",por:"pt",pus:"ps",que:"qu",roh:"rm",ron:"ro",rum:"ro",run:"rn",rus:"ru",sag:"sg",san:"sa",sin:"si",slk:"sk",slo:"sk",slv:"sl",sme:"se",smo:"sm",sna:"sn",snd:"sd",som:"so",sot:"st",spa:"es",sqi:"sq", srd:"sc",srp:"sr",ssw:"ss",sun:"su",swa:"sw",swe:"sv",tah:"ty",tam:"ta",tat:"tt",tel:"te",tgk:"tg",tgl:"tl",tha:"th",tib:"bo",tir:"ti",ton:"to",tsn:"tn",tso:"ts",tuk:"tk",tur:"tr",twi:"tw",uig:"ug",ukr:"uk",urd:"ur",uzb:"uz",ven:"ve",vie:"vi",vol:"vo",wel:"cy",wln:"wa",wol:"wo",xho:"xh",yid:"yi",yor:"yo",zha:"za",zho:"zh",zul:"zu"};function ob(a){return Object.keys(a).map(function(b){return a[b]})}function pb(a,b){return qb(a,b,"boolean")}function rb(a,b){var c=qb(a,b,"number");if(null==c)return null;if(isNaN(c)||c==Number.NEGATIVE_INFINITY||c==Number.POSITIVE_INFINITY)throw new RangeError("'"+b+"' must be finite.");if(0>c)throw new RangeError("'"+b+"' must be >= 0");return c}function sb(a,b){return qb(a,b,"string")} function qb(a,b,c){a=a[b];if(null==a)return null;if(typeof a!=c)throw new TypeError("'"+b+"' must be a "+c+".");return a}function tb(a,b,c){a=a[b];if(null==a)return null;if(!(a instanceof c))throw new TypeError("'"+b+"' must be an instance of "+c.name+".");return a};function z(){this.a={}}z.prototype.push=function(a,b){this.a.hasOwnProperty(a)?this.a[a].push(b):this.a[a]=[b]};z.prototype.set=function(a,b){this.a[a]=b};z.prototype.get=function(a){return(a=this.a[a])?a.slice():null};function ub(a){var b=[],c;for(c in a.a)b.push.apply(b,a.a[c]);return b}function vb(a,b,c){if(a=a.a[b])for(b=0;b<a.length;++b)a[b]==c&&(a.splice(b,1),--b)}function wb(a){var b=[],c;for(c in a.a)b.push(c);return b};function B(){this.a=new z}B.prototype.destroy=function(){xb(this);this.a=null};function C(a,b,c,d){b=new yb(b,c,d);a.a.push(c,b)}B.prototype.sa=function(a,b){for(var c=this.a.get(b)||[],d=0;d<c.length;++d){var e=c[d];e.target==a&&(e.sa(),vb(this.a,b,e))}};function xb(a){for(var b=ub(a.a),c=0;c<b.length;++c)b[c].sa();a.a.a={}}function yb(a,b,c){this.target=a;this.type=b;this.a=c;this.target.addEventListener(b,c,!1)} yb.prototype.sa=function(){this.target&&(this.target.removeEventListener(this.type,this.a,!1),this.a=this.target=null)};function D(a){this.ya=new z;this.v=a}p("shaka.util.FakeEventTarget",D);D.prototype.addEventListener=function(a,b,c){c||this.ya.push(a,b)};D.prototype.removeEventListener=function(a,b,c){c||vb(this.ya,a,b)}; D.prototype.dispatchEvent=function(a){a.hasOwnProperty("srcElement")||(delete a.srcElement,Object.defineProperty(a,"srcElement",{get:function(){return null}}));if(a.hasOwnProperty("target"))a.target=this;else{delete a.target;var b=this;Object.defineProperty(a,"target",{get:function(){return b},set:function(a){b=a}})}if(a.hasOwnProperty("currentTarget"))a.currentTarget=null;else{delete a.currentTarget;var c=null;Object.defineProperty(a,"currentTarget",{get:function(){return c},set:function(a){c=a}})}return zb(this, a)};function zb(a,b){b.currentTarget=a;for(var c=a.ya.get(b.type)||[],d=0;d<c.length;++d){var e=c[d];try{e.handleEvent?e.handleEvent(b):e.call(a,b)}catch(f){}}a.v&&b.bubbles&&zb(a.v,b);return b.defaultPrevented};function Ab(){D.call(this,null);this.a=new hb(3);this.c=new hb(10);this.b=0}q(Ab,D);p("shaka.util.EWMABandwidthEstimator",Ab);Ab.prototype.sample=function(a,b){if(!(65536>b)){a=Math.max(a,50);var c=8E3*b/a,d=a/1E3;this.a.sample(d,c);this.c.sample(d,c);this.dispatchEvent(x({type:"bandwidth"}));this.b=Date.now()}};Ab.prototype.getBandwidth=function(){return.5>this.a.a?5E5:Math.min(ib(this.a),ib(this.c))};Ab.prototype.getDataAge=function(){return(Date.now()-this.b)/1E3}; Ab.prototype.supportsCaching=function(){return!1};function E(){var a,b,c=new Promise(function(c,e){a=c;b=e});c.resolve=a;c.reject=b;c.destroy=E.prototype.destroy;return c}E.prototype.destroy=function(){this.catch(function(){});var a=Error("Destroyed!");a.type="destroy";this.reject(a)};function Bb(a){return a.split("").reduce(function(a,c,d){return a+(d&&0==d%4?" "+c:c)})};function Cb(){this.g=new E;this.f=!1;this.a=null;this.b=[];this.c=null}function Db(a,b){if(a.f)throw Error("Cannot append to a running task!");a.b.push(b)}Cb.prototype.start=function(){if(this.f)throw Error("Task already started!");this.f=!0;this.b.unshift(function(){});Eb(this,void 0)};Cb.prototype.end=function(){this.b.splice(1)}; function Eb(a,b){var c=a.b[0](b),d;c?(d=c[0],a.c=c[1]):(d=Promise.resolve(),a.c=null);d.then(F(a,function(a){this.a?(this.b=[],this.c=null,Fb(this)):(this.b.shift(),this.b.length?Eb(this,a):(this.g.resolve(a),this.c=null))})).catch(F(a,function(a){this.b=[];this.c=null;this.a?Fb(this):this.g.reject(a)}))}function Fb(a){var b=Error("Task aborted.");b.type="aborted";a.g.reject(b);window.setTimeout(function(){this.a.resolve();this.a=null}.bind(a),5)};function F(a,b){return b.bind(a)};function Gb(a,b){D.call(this,b);this.a=null;this.h=a}q(Gb,D); function Hb(a){if(!window.indexedDB)return a=Error("Persistant storage requires IndexedDB support."),a.type="storage",Promise.reject(a);if(a.a)return a=Error("A database connection is already open."),a.type="storage",Promise.reject(a);var b=new E,c=window.indexedDB.open("content_database",1);c.onupgradeneeded=F(a,function(a){this.a=a.target.result;Ib(this,"group_store",{keyPath:"group_id"});Ib(this,"stream_index_store",{keyPath:"stream_id"});a=Ib(this,"content_store",{autoIncrement:"true"});a.createIndex("segment", ["stream_id","segment_id"],{unique:!0});a.createIndex("stream","stream_id",{unique:!1})});c.onsuccess=F(a,function(a){this.a=a.target.result;b.resolve()});c.onerror=function(){b.reject(c.error)};return b}function Jb(a){a.a&&(a.a.close(),a.a=null)}function Ib(a,b,c){a.a.objectStoreNames.contains(b)&&a.a.deleteObjectStore(b);return a.a.createObjectStore(b,c)}function Kb(a){return Lb(a,"content_store")}function Mb(a){return Lb(a,"stream_index_store")}function Ob(a){return Lb(a,"group_store")} function Lb(a,b){return a.a.transaction([b],a.h).objectStore(b)}function Pb(a,b){var c=new E,d=a.get(b);d.onerror=function(){c.reject(d.error)};d.onsuccess=function(){if(d.result)c.resolve(d.result);else{var a=Error("Item not found.");a.type="storage";c.reject(a)}};return c};function Qb(){Gb.call(this,"readonly",null)}q(Qb,Gb);function Rb(a){var b=new E,c=[],d=Ob(a).openCursor();d.onerror=function(){b.reject(d.error)};d.onsuccess=function(a){(a=a.target.result)?(c.push(a.key),a.continue()):b.resolve(c)};return b} function Sb(a,b){return Pb(Ob(a),b).then(F(a,function(a){a.session_ids=Ra(a.session_ids);return a.hasOwnProperty("duration")||a.hasOwnProperty("key_system")?Promise.resolve(a):Tb(this,a.stream_ids[0]).then(function(b){a.duration=b.duration;a.key_system=b.key_system;a.license_server=b.license_server;a.with_credentials=b.with_credentials;a.distinctive_identifier=b.distinctive_identifier;a.audio_robustness=b.audio_robustness;a.video_robustness=b.video_robustness;return Promise.resolve(a)})}))} function Tb(a,b){return Pb(Mb(a),b)}function Ub(a,b,c){return Pb(Kb(a).index("segment"),[b,c]).then(function(a){return Promise.resolve(a.content)})};function Vb(a,b,c){MediaSource.isTypeSupported(b);b=a.addSourceBuffer(b);this.i=a;this.c=b;this.l=c;this.j=new B;this.g=null;this.b=[];this.w=0;this.f=this.a=null;this.s=0;C(this.j,this.c,"updateend",this.B.bind(this))}var Wb=1/60;Vb.prototype.destroy=function(){Xb(this).catch(function(){});this.f&&this.f.destroy();this.a=this.f=null;this.g&&(Jb(this.g),this.g=null);this.b=null;this.j.destroy();this.i=this.c=this.j=null}; function Yb(a,b){for(var c=a.c.buffered,d=0;d<c.length;++d){var e=c.start(d)-Wb,f=c.end(d)+Wb;if(b>=e&&b<=f)return c.end(d)-b}return 0} function Zb(a,b,c,d){if(a.a)return a=Error("Cannot fetch ("+a.v+"): previous operation not complete."),a.type="stream",Promise.reject(a);a.a=new Cb;c!=a.c.timestampOffset&&(a.c.timestampOffset=c);"idb"!=b.url.b[0].P||a.g||(a.g=new Qb,Db(a.a,function(){return[Hb(this.g)]}.bind(a)));d&&Db(a.a,function(){return[$b(this,d),this.h.bind(this)]}.bind(a));Db(a.a,function(){var a=b.a?b.a-b.b:1,c=new ac;c.a=3;c.h=1E3*a;c.c=1E3*this.s;c.i=this.g;return[bc(b.url,c,this.l),G.prototype.g.bind(b.url)]}.bind(a)); Db(a.a,F(a,function(a){this.l.getBandwidth();return[$b(this,a),this.h.bind(this)]}));var e=0==a.c.buffered.length&&0==a.b.length,f=null;Db(a.a,function(){if(0==this.c.buffered.length){var a=Error("Failed to buffer segment ("+this.v+").");a.type="stream";return[Promise.reject(a)]}e&&(a=b.b,f=this.c.buffered.start(0)-a);a=cc(this.b,b.b);0<=a?this.b.splice(a+1,0,b):this.b.push(b)}.bind(a));return dc(a).then(function(){return Promise.resolve(f)}.bind(a))} function ec(a){if(a.a)return a=Error("Cannot clear ("+a.v+"): previous operation not complete."),a.type="stream",Promise.reject(a);a.a=new Cb;Db(a.a,function(){var a;a:if(0==this.c.buffered.length)a=Promise.resolve();else{try{this.c.remove(0,this.i.duration)}catch(c){a=Promise.reject(c);break a}this.b=[];a=this.f=new E}return[a,this.h.bind(this)]}.bind(a));return dc(a)} function fc(a,b){if(a.a){var c=Error("Cannot clearAfter ("+a.v+"): previous operation not complete.");c.type="stream";return Promise.reject(c)}a.a=new Cb;Db(a.a,function(){return[gc(this,b),this.h.bind(this)]}.bind(a));return dc(a)}function Xb(a){a.a?(a=a.a,a.a?a=a.a:a.f?(a.c&&a.c(),a.a=new E,a=a.a):(a.f=!0,a=Promise.resolve())):a=Promise.resolve();return a}function dc(a){a.a.start();return a.a.g.then(F(a,function(){this.a=null})).catch(F(a,function(a){this.a=null;return Promise.reject(a)}))} function $b(a,b){try{a.c.appendBuffer(b)}catch(c){return Promise.reject(c)}a.f=new E;return a.f}function gc(a,b){if(0==a.c.buffered.length)return Promise.resolve();var c=cc(a.b,b);if(-1==c||c==a.b.length-1)return Promise.resolve();try{a.c.remove(a.b[c+1].b,a.i.duration)}catch(d){return Promise.reject(d)}a.b=a.b.slice(0,c+1);a.f=new E;return a.f}Vb.prototype.h=function(){this.f&&"open"==this.i.readyState&&this.c.abort()};Vb.prototype.B=function(){this.f&&(this.f.resolve(),this.f=null)};function hc(a){return String.fromCharCode.apply(null,a)}p("shaka.util.Uint8ArrayUtils.toString",hc);function ic(a){for(var b=new Uint8Array(a.length),c=0;c<a.length;++c)b[c]=a.charCodeAt(c);return b}p("shaka.util.Uint8ArrayUtils.fromString",ic);p("shaka.util.Uint8ArrayUtils.toBase64",function(a,b){var c=void 0==b?!0:b,d=window.btoa(hc(a)).replace(/\+/g,"-").replace(/\//g,"_");return c?d:d.replace(/=*$/,"")});function jc(a){return ic(window.atob(a.replace(/-/g,"+").replace(/_/g,"/")))} p("shaka.util.Uint8ArrayUtils.fromBase64",jc);p("shaka.util.Uint8ArrayUtils.fromHex",function(a){for(var b=new Uint8Array(a.length/2),c=0;c<a.length;c+=2)b[c/2]=window.parseInt(a.substr(c,2),16);return b});function kc(a){for(var b="",c=0;c<a.length;++c){var d=a[c].toString(16);1==d.length&&(d="0"+d);b+=d}return b}p("shaka.util.Uint8ArrayUtils.toHex",kc);function db(a,b){if(!a&&!b)return!0;if(!a||!b||a.length!=b.length)return!1;for(var c=0;c<a.length;++c)if(a[c]!=b[c])return!1;return!0};function lc(){this.h=this.a="";this.i=!1;this.s=this.l=null;this.v=this.g=!1;this.j=this.f="";this.c=null;this.b=[]} function mc(a){var b=new lc;if(!a)return b;var c=sb(a,"keySystem");if(null!=c)b.a=c;else throw Error("'keySystem' cannot be null.");var d=sb(a,"licenseServerUrl");if(null!=d)b.h=d;else if(c)throw Error("For encrypted streaming content, 'licenseServerUrl' cannot be null or empty.");c=pb(a,"withCredentials");null!=c&&(b.i=c);c=tb(a,"licensePostProcessor",Function);null!=c&&(b.l=c);c=tb(a,"licensePreProcessor",Function);null!=c&&(b.s=c);c=pb(a,"distinctiveIdentifierRequired");null!=c&&(b.g=c);c=pb(a, "persistentStateRequired");null!=c&&(b.v=c);c=sb(a,"audioRobustness");null!=c&&(b.f=c);c=sb(a,"videoRobustness");null!=c&&(b.j=c);c=tb(a,"serverCertificate",Uint8Array);null!=c&&(b.c=c);if(c=tb(a,"initData",Object)){a=tb(c,"initData",Uint8Array);if(null==a)throw Error("'initData.initData' cannot be null.");c=sb(c,"initDataType");if(null==c)throw Error("'initData.initDataType' cannot be null.");b.b.push({initData:new Uint8Array(a.buffer),initDataType:c})}return b} function nc(a,b){var c=new lc;c.a=a.a;c.h=a.h;c.i=a.i;c.l=a.l;c.s=a.s;c.g=a.g;c.v=a.v;c.f=a.f;c.j=a.j;c.c=a.c?new Uint8Array(a.c.buffer):null;oc(c,a.b);oc(c,b.b);return c}function oc(a,b){var c=a.b.concat(b.map(function(a){return{initData:new Uint8Array(a.initData.buffer),initDataType:a.initDataType}}));a.b=Ra(c,pc)}function pc(a,b){return a.initDataType==b.initDataType&&db(a.initData,b.initData)};function qc(a,b){try{var c=new rc(a,b);return Promise.resolve(c)}catch(d){return Promise.reject(d)}}function sc(a){var b=this.mediaKeys;b&&b!=a&&tc(b,null);delete this.mediaKeys;(this.mediaKeys=a)&&tc(a,this);return Promise.resolve()} function rc(a,b){this.a=this.keySystem=a;var c=!0;"org.w3.clearkey"==a&&(this.a="webkit-org.w3.clearkey",c=!1);var d=!1,e;e=document.getElementsByTagName("video");e=e.length?e[0]:document.createElement("video");for(var f=0;f<b.length;++f){var g=b[f],h={audioCapabilities:[],videoCapabilities:[],persistentState:"optional",distinctiveIdentifier:"optional",initDataTypes:g.initDataTypes,sessionTypes:["temporary"]},l=!1;if(g.audioCapabilities)for(var m=0;m<g.audioCapabilities.length;++m){var n=g.audioCapabilities[m]; n.contentType&&(l=!0,e.canPlayType(n.contentType.split(";")[0],this.a)&&(h.audioCapabilities.push(n),d=!0))}if(g.videoCapabilities)for(m=0;m<g.videoCapabilities.length;++m)n=g.videoCapabilities[m],n.contentType&&(l=!0,e.canPlayType(n.contentType,this.a)&&(h.videoCapabilities.push(n),d=!0));l||(d=e.canPlayType("video/mp4",this.a)||e.canPlayType("video/webm",this.a));"required"==g.persistentState&&(c?(h.persistentState="required",h.sessionTypes=["persistent-license"]):d=!1);if(d){this.b=h;return}}c= "Unsupported keySystem";if("org.w3.clearkey"==a||"com.widevine.alpha"==a)c="None of the requested configurations were supported.";c=Error(c);c.name="NotSupportedError";c.code=DOMException.NOT_SUPPORTED_ERR;throw c;}rc.prototype.createMediaKeys=function(){var a=new uc(this.a);return Promise.resolve(a)};rc.prototype.getConfiguration=function(){return this.b};function uc(a){this.g=a;this.b=null;this.a=new B;this.c=[];this.f={}} function tc(a,b){a.b=b;xb(a.a);b&&(C(a.a,b,"webkitneedkey",a.Ob.bind(a)),C(a.a,b,"webkitkeymessage",a.Nb.bind(a)),C(a.a,b,"webkitkeyadded",a.Lb.bind(a)),C(a.a,b,"webkitkeyerror",a.Mb.bind(a)))}k=uc.prototype;k.createSession=function(a){var b=a||"temporary";if("temporary"!=b&&"persistent-license"!=b)throw new TypeError("Session type "+a+" is unsupported on this platform.");a=this.b||document.createElement("video");a.src||(a.src="about:blank");b=new vc(a,this.g,b);this.c.push(b);return b}; k.setServerCertificate=function(){return Promise.reject(Error("setServerCertificate not supported on this platform."))};k.Ob=function(a){a=x({type:"encrypted",initDataType:"webm",initData:a.initData});this.b.dispatchEvent(a)};k.Nb=function(a){var b=wc(this,a.sessionId);b&&(a=x({type:"message",messageType:void 0==b.keyStatuses.Fa()?"licenserequest":"licenserenewal",message:a.message}),b.b&&(b.b.resolve(),b.b=null),b.dispatchEvent(a))}; k.Lb=function(a){if(a=wc(this,a.sessionId))xc(a,"usable"),a.a&&a.a.resolve(),a.a=null}; k.Mb=function(a){var b=wc(this,a.sessionId);if(b){var c=Error("EME v0.1b key error");c.errorCode=a.errorCode;c.errorCode.systemCode=a.systemCode;!a.sessionId&&b.b?(c.method="generateRequest",45==a.systemCode&&(c.message="Unsupported session type."),b.b.reject(c),b.b=null):a.sessionId&&b.a?(c.method="update",b.a.reject(c),b.a=null):(c=a.systemCode,a.errorCode.code==MediaKeyError.MEDIA_KEYERR_OUTPUT?xc(b,"output-restricted"):1==c?xc(b,"expired"):xc(b,"internal-error"))}}; function wc(a,b){var c=a.f[b];return c?c:(c=a.c.shift())?(c.sessionId=b,a.f[b]=c):null}function vc(a,b,c){D.call(this,null);this.f=a;this.h=!1;this.a=this.b=null;this.c=b;this.g=c;this.sessionId="";this.expiration=NaN;this.closed=new E;this.keyStatuses=new yc}q(vc,D); function zc(a,b,c){if(a.h)return Promise.reject(Error("The session is already initialized."));a.h=!0;var d;try{if("persistent-license"==a.g)if(c)d=ic("LOAD_SESSION|"+c);else{var e=new Uint8Array(b);d=ic("PERSISTENT|"+hc(e))}else d=new Uint8Array(b)}catch(f){return Promise.reject(f)}a.b=new E;try{a.f.webkitGenerateKeyRequest(a.c,d)}catch(g){if("InvalidStateError"!=g.name)return a.b=null,Promise.reject(g);setTimeout(function(){try{this.f.webkitGenerateKeyRequest(this.c,d)}catch(a){this.b.reject(a), this.b=null}}.bind(a),10)}return a.b}k=vc.prototype;k.Qa=function(a,b){if(this.a)this.a.then(this.Qa.bind(this,a,b)).catch(this.Qa.bind(this,a,b));else{this.a=a;var c,d;"webkit-org.w3.clearkey"==this.c?(c=hc(new Uint8Array(b)),d=JSON.parse(c),"oct"!=d.keys[0].kty&&(this.a.reject(Error("Response is not a valid JSON Web Key Set.")),this.a=null),c=jc(d.keys[0].k),d=jc(d.keys[0].kid)):(c=new Uint8Array(b),d=null);try{this.f.webkitAddKey(this.c,c,d,this.sessionId)}catch(e){this.a.reject(e),this.a=null}}}; function xc(a,b){a.keyStatuses.Ma(b);var c=x({type:"keystatuseschange"});a.dispatchEvent(c)}k.generateRequest=function(a,b){return zc(this,b,null)};k.load=function(a){return"persistent-license"==this.g?zc(this,null,a):Promise.reject(Error("Not a persistent session."))};k.update=function(a){var b=new E;this.Qa(b,a);return b}; k.close=function(){if("persistent-license"!=this.g){if(!this.sessionId)return this.closed.reject(Error("The session is not callable.")),this.closed;this.f.webkitCancelKeyRequest(this.c,this.sessionId)}this.closed.resolve();return this.closed};k.remove=function(){return"persistent-license"!=this.g?Promise.reject(Error("Not a persistent session.")):this.close()};function yc(){this.size=0;this.a=void 0}var Ac;k=yc.prototype;k.Ma=function(a){this.size=void 0==a?0:1;this.a=a};k.Fa=function(){return this.a}; k.forEach=function(a){this.a&&a(Ac,this.a)};k.get=function(a){if(this.has(a))return this.a};k.has=function(a){var b=Ac;return this.a&&db(new Uint8Array(a),new Uint8Array(b))?!0:!1};function Bc(a){this.systemIds=[];this.cencKeyIds=[];this.a=[];a=new Ta(new DataView(a.buffer));try{for(;Va(a);){var b=a.a,c=w(a),d=w(a);1==c?c=Xa(a):0==c&&(c=a.b.byteLength-b);if(1886614376!=d)Za(a,c-(a.a-b));else{var e=Wa(a);if(1<e)Za(a,c-(a.a-b));else{Za(a,3);var f=kc(Ya(a)),g=[];if(0<e)for(var h=w(a),l=0;l<h;++l){var m=kc(Ya(a));g.push(m)}var n=w(a);Za(a,n);this.cencKeyIds.push.apply(this.cencKeyIds,g);this.systemIds.push(f);this.a.push({start:b,end:a.a-1});a.a!=b+c&&Za(a,c-(a.a-b))}}}}catch(t){}} ;function Cc(a,b){try{var c=new Dc(a,b);return Promise.resolve(c)}catch(d){return Promise.reject(d)}} function Dc(a,b){this.keySystem=a;for(var c=!1,d=0;d<b.length;++d){var e=b[d],f={audioCapabilities:[],videoCapabilities:[],persistentState:"optional",distinctiveIdentifier:"optional",initDataTypes:e.initDataTypes,sessionTypes:["temporary"]},g=!1;if(e.audioCapabilities)for(var h=0;h<e.audioCapabilities.length;++h){var l=e.audioCapabilities[h];if(l.contentType){var g=!0,m=l.contentType.split(";")[0];MSMediaKeys.isTypeSupported(this.keySystem,m)&&(f.audioCapabilities.push(l),c=!0)}}if(e.videoCapabilities)for(h= 0;h<e.videoCapabilities.length;++h)l=e.videoCapabilities[h],l.contentType&&(g=!0,m=l.contentType.split(";")[0],MSMediaKeys.isTypeSupported(this.keySystem,m)&&(f.videoCapabilities.push(l),c=!0));g||(c=MSMediaKeys.isTypeSupported(this.keySystem,"video/mp4"));"required"==e.persistentState&&(f.persistentState="required",f.sessionTypes=["persistent-license"]);if(c){this.a=f;return}}c=Error("Unsupported keySystem");c.name="NotSupportedError";c.code=DOMException.NOT_SUPPORTED_ERR;throw c;} Dc.prototype.createMediaKeys=function(){var a=new Ec(this.keySystem);return Promise.resolve(a)};Dc.prototype.getConfiguration=function(){return this.a};function Fc(a){var b=this.mediaKeys;b&&b!=a&&Gc(b,null);delete this.mediaKeys;return(this.mediaKeys=a)?Gc(a,this):Promise.resolve()}function Ec(a){this.a=new MSMediaKeys(a);this.b=new B}Ec.prototype.createSession=function(a){if("temporary"!=(a||"temporary"))throw new TypeError("Session type "+a+" is unsupported on this platform.");return new Hc(this.a)}; Ec.prototype.setServerCertificate=function(){return Promise.reject(Error("setServerCertificate not supported on this platform."))};function Gc(a,b){function c(){b.msSetMediaKeys(d.a);b.removeEventListener("loadedmetadata",c)}xb(a.b);if(!b)return Promise.resolve();C(a.b,b,"msneedkey",Ic);var d=a;try{return 1<=b.readyState?b.msSetMediaKeys(a.a):b.addEventListener("loadedmetadata",c),Promise.resolve()}catch(e){return Promise.reject(e)}} function Hc(a){D.call(this,null);this.c=null;this.g=a;this.b=this.a=null;this.f=new B;this.sessionId="";this.expiration=NaN;this.closed=new E;this.keyStatuses=new Jc}q(Hc,D);k=Hc.prototype;k.generateRequest=function(a,b){this.a=new E;try{this.c=this.g.createSession("video/mp4",new Uint8Array(b),null),C(this.f,this.c,"mskeymessage",this.Bb.bind(this)),C(this.f,this.c,"mskeyadded",this.zb.bind(this)),C(this.f,this.c,"mskeyerror",this.Ab.bind(this)),Kc(this,"status-pending")}catch(c){this.a.reject(c)}return this.a}; k.load=function(){return Promise.reject(Error("MediaKeySession.load not yet supported"))};k.update=function(a){this.b=new E;try{this.c.update(new Uint8Array(a))}catch(b){this.b.reject(b)}return this.b};k.close=function(){try{this.c.close(),this.closed.resolve(),xb(this.f)}catch(a){this.closed.reject(a)}return this.closed};k.remove=function(){return Promise.reject(Error("MediaKeySession.remove is only applicable for persistent licenses, which are not supported on this platform"))}; function Ic(a){var b=a.initData;if(b){var c=new Bc(b);if(1>=c.a.length)a=b;else{var d=[];for(a=0;a<c.a.length;a++)d.push(b.subarray(c.a[a].start,c.a[a].end+1));b=Ra(d,Lc);for(a=c=0;a<b.length;a++)c+=b[a].length;c=new Uint8Array(c);for(a=d=0;a<b.length;a++)c.set(b[a],d),d+=b[a].length;a=c}}else a=b;a=x({type:"encrypted",initDataType:"cenc",initData:a});this.dispatchEvent(a)}function Lc(a,b){return db(a,b)} k.Bb=function(a){this.a&&(this.a.resolve(),this.a=null);a=x({type:"message",messageType:void 0==this.keyStatuses.Fa()?"licenserequest":"licenserenewal",message:a.message.buffer});this.dispatchEvent(a)};k.zb=function(){this.a?(this.a.resolve(),this.a=null):this.b&&(Kc(this,"usable"),this.b.resolve(),this.b=null)}; k.Ab=function(){var a=Error("EME v20140218 key error");a.errorCode=this.c.error;if(null!=this.a)this.a.reject(a),this.a=null;else if(null!=this.b)this.b.reject(a),this.b=null;else switch(this.c.error.code){case MSMediaKeyError.MS_MEDIA_KEYERR_OUTPUT:case MSMediaKeyError.MS_MEDIA_KEYERR_HARDWARECHANGE:Kc(this,"output-not-allowed");default:Kc(this,"internal-error")}};function Kc(a,b){a.keyStatuses.Ma(b);var c=x({type:"keystatuseschange"});a.dispatchEvent(c)}function Jc(){this.size=0;this.a=void 0}var Mc; k=Jc.prototype;k.Ma=function(a){this.size=void 0==a?0:1;this.a=a};k.Fa=function(){return this.a};k.forEach=function(a){this.a&&a(Mc,this.a)};k.get=function(a){if(this.has(a))return this.a};k.has=function(a){var b=Mc;return this.a&&db(new Uint8Array(a),new Uint8Array(b))?!0:!1};function Nc(){Navigator.prototype.requestMediaKeySystemAccess&&MediaKeySystemAccess.prototype.getConfiguration||(HTMLMediaElement.prototype.webkitGenerateKeyRequest?(Ac=(new Uint8Array([0])).buffer,Navigator.prototype.requestMediaKeySystemAccess=qc,delete HTMLMediaElement.prototype.mediaKeys,HTMLMediaElement.prototype.mediaKeys=null,HTMLMediaElement.prototype.setMediaKeys=sc,window.MediaKeys=uc,window.MediaKeySystemAccess=rc):window.MSMediaKeys?(Mc=(new Uint8Array([0])).buffer,delete HTMLMediaElement.prototype.mediaKeys, HTMLMediaElement.prototype.mediaKeys=null,HTMLMediaElement.prototype.setMediaKeys=Fc,window.MediaKeys=Ec,window.MediaKeySystemAccess=Dc,Navigator.prototype.requestMediaKeySystemAccess=Cc):(Navigator.prototype.requestMediaKeySystemAccess=ya,delete HTMLMediaElement.prototype.mediaKeys,HTMLMediaElement.prototype.mediaKeys=null,HTMLMediaElement.prototype.setMediaKeys=za,window.MediaKeys=Aa,window.MediaKeySystemAccess=Ba))}p("shaka.polyfill.MediaKeys.install",Nc);p("shaka.polyfill.installAll",function(){ta();va();Pa();Da();Nc()});var Oc=/^(?:([^:/?#.]+):)?(?:\/\/(?:([^/?#]*)@)?([^/#?]*?)(?::([0-9]+))?(?=[/#?]|$))?([^?#]+)?(?:\?([^#]*))?(?:#(.*))?$/;function H(a){var b;a instanceof H?(Pc(this,a.P),this.ca=a.ca,this.S=a.S,Qc(this,a.ia),this.O=a.O,Rc(this,a.a.clone()),this.aa=a.aa):a&&(b=String(a).match(Oc))?(Pc(this,b[1]||"",!0),this.ca=Sc(b[2]||""),this.S=Sc(b[3]||"",!0),Qc(this,b[4]),this.O=Sc(b[5]||"",!0),Rc(this,b[6]||"",!0),this.aa=Sc(b[7]||"")):this.a=new Tc(null)}k=H.prototype;k.P="";k.ca="";k.S="";k.ia=null;k.O="";k.aa=""; k.toString=function(){var a=[],b=this.P;b&&a.push(Vc(b,Wc,!0),":");if(b=this.S){a.push("//");var c=this.ca;c&&a.push(Vc(c,Wc,!0),"@");a.push(encodeURIComponent(b).replace(/%25([0-9a-fA-F]{2})/g,"%$1"));b=this.ia;null!=b&&a.push(":",String(b))}if(b=this.O)this.S&&"/"!=b.charAt(0)&&a.push("/"),a.push(Vc(b,"/"==b.charAt(0)?Xc:Yc,!0));(b=this.a.toString())&&a.push("?",b);(b=this.aa)&&a.push("#",Vc(b,Zc));return a.join("")}; k.resolve=function(a){var b=this.clone();"data"===b.P&&(b=new H);var c=!!a.P;c?Pc(b,a.P):c=!!a.ca;c?b.ca=a.ca:c=!!a.S;c?b.S=a.S:c=null!=a.ia;var d=a.O;if(c)Qc(b,a.ia);else if(c=!!a.O){if("/"!=d.charAt(0))if(this.S&&!this.O)d="/"+d;else{var e=b.O.lastIndexOf("/");-1!=e&&(d=b.O.substr(0,e+1)+d)}if(".."==d||"."==d)d="";else if(-1!=d.indexOf("./")||-1!=d.indexOf("/.")){for(var e=0==d.lastIndexOf("/",0),d=d.split("/"),f=[],g=0;g<d.length;){var h=d[g++];"."==h?e&&g==d.length&&f.push(""):".."==h?((1<f.length|| 1==f.length&&""!=f[0])&&f.pop(),e&&g==d.length&&f.push("")):(f.push(h),e=!0)}d=f.join("/")}}c?b.O=d:c=""!==a.a.toString();c?Rc(b,a.a.clone()):c=!!a.aa;c&&(b.aa=a.aa);return b};k.clone=function(){return new H(this)};function Pc(a,b,c){a.P=c?Sc(b,!0):b;a.P&&(a.P=a.P.replace(/:$/,""))}function Qc(a,b){if(b){b=Number(b);if(isNaN(b)||0>b)throw Error("Bad port number "+b);a.ia=b}else a.ia=null}function Rc(a,b,c){b instanceof Tc?a.a=b:(c||(b=Vc(b,$c)),a.a=new Tc(b))} function Sc(a,b){return a?b?decodeURI(a):decodeURIComponent(a):""}function Vc(a,b,c){return"string"==typeof a?(a=encodeURI(a).replace(b,ad),c&&(a=a.replace(/%25([0-9a-fA-F]{2})/g,"%$1")),a):null}function ad(a){a=a.charCodeAt(0);return"%"+(a>>4&15).toString(16)+(a&15).toString(16)}var Wc=/[#\/\?@]/g,Yc=/[\#\?:]/g,Xc=/[\#\?]/g,$c=/[\#\?@]/g,Zc=/#/g;function Tc(a){this.b=a||null}Tc.prototype.a=null;Tc.prototype.c=null; function bd(a,b,c){if(!a.a&&(a.a={},a.c=0,a.b))for(var d=a.b.split("&"),e=0;e<d.length;e++){var f=d[e].indexOf("="),g=null,h=null;0<=f?(g=d[e].substring(0,f),h=d[e].substring(f+1)):g=d[e];g=decodeURIComponent(g.replace(/\+/g," "));h=h||"";bd(a,g,decodeURIComponent(h.replace(/\+/g," ")))}a.b=null;(d=a.a.hasOwnProperty(b)&&a.a[b])||(a.a[b]=d=[]);d.push(c);a.c++} Tc.prototype.toString=function(){if(this.b)return this.b;if(!this.a)return"";var a=[],b;for(b in this.a)for(var c=encodeURIComponent(b),d=this.a[b],e=0;e<d.length;e++){var f=c;""!==d[e]&&(f+="="+encodeURIComponent(d[e]));a.push(f)}return this.b=a.join("&")};Tc.prototype.clone=function(){var a=new Tc;a.b=this.b;if(this.a){var b={},c;for(c in this.a)b[c]=this.a[c].concat();a.a=b;a.c=this.c}return a};function cd(){this.id=this.url=null;this.type="static";this.b=this.j=this.u=this.hb=null;this.h=5;this.f=this.c=this.g=null;this.i=1;this.a=[]}function dd(){this.g=this.f=this.c=this.u=this.a=this.start=this.id=null;this.b=[]}function ed(){this.i=this.b=this.height=this.width=this.contentType=this.lang=this.group=this.id=null;this.c=!1;this.h=this.g=this.f=this.u=null;this.j=[];this.a=[]}function fd(){this.value=null}function gd(){this.contentType=this.lang=this.id=null} function hd(){this.a=this.b=this.g=this.u=this.h=this.f=this.height=this.width=this.bandwidth=this.lang=this.id=null;this.c=[]}function id(){this.b=this.a=this.c=this.f=null}function jd(){this.parsedPssh=this.psshBox=null}function kd(){this.url=null}function ld(){this.url=null}function md(){this.u=null;this.g=1;this.c=this.b=this.a=this.f=null}md.prototype.clone=function(){var a=new md;a.u=nd(this.u);a.g=this.g;a.f=this.f;a.a=J(this.a);a.b=J(this.b);a.c=J(this.c);return a}; function od(){this.a=this.url=null}od.prototype.clone=function(){var a=new od;a.url=nd(this.url);a.a=J(this.a);return a};function pd(){this.a=this.url=null}pd.prototype.clone=function(){var a=new pd;a.url=nd(this.url);a.a=J(this.a);return a};function qd(){this.u=null;this.f=1;this.b=this.g=null;this.i=1;this.h=null;this.a=[];this.c=null}qd.prototype.clone=function(){var a=new qd;a.u=nd(this.u);a.f=this.f;a.g=this.g;a.b=this.b;a.i=this.i;a.h=J(this.h);a.a=nd(this.a)||[];a.c=J(this.c);return a}; function rd(){this.a=this.b=null}rd.prototype.clone=function(){var a=new rd;a.b=nd(this.b);a.a=J(this.a);return a};function sd(){this.a=1;this.b=this.i=null;this.j=1;this.c=this.g=this.f=this.h=null}sd.prototype.clone=function(){var a=new sd;a.a=this.a;a.i=this.i;a.b=this.b;a.j=this.j;a.h=this.h;a.f=this.f;a.g=this.g;a.c=J(this.c);return a};function td(){this.a=[]}td.prototype.clone=function(){var a=new td;a.a=nd(this.a)||[];return a};function ud(){this.c=this.a=this.b=null} ud.prototype.clone=function(){var a=new ud;a.b=this.b;a.a=this.a;a.c=this.c;return a};function vd(a,b){this.na=a;this.end=b}vd.prototype.clone=function(){return new vd(this.na,this.end)};cd.TAG_NAME="MPD";dd.TAG_NAME="Period";ed.TAG_NAME="AdaptationSet";fd.TAG_NAME="Role";gd.TAG_NAME="ContentComponent";hd.TAG_NAME="Representation";id.TAG_NAME="ContentProtection";jd.TAG_NAME="cenc:pssh";kd.TAG_NAME="BaseURL";ld.TAG_NAME="Location";md.TAG_NAME="SegmentBase";od.TAG_NAME="RepresentationIndex"; pd.TAG_NAME="Initialization";qd.TAG_NAME="SegmentList";rd.TAG_NAME="SegmentURL";sd.TAG_NAME="SegmentTemplate";td.TAG_NAME="SegmentTimeline";ud.TAG_NAME="S"; cd.prototype.parse=function(a,b){this.url=a.hb;this.id=K(b,"id",L);this.type=K(b,"type",L)||"static";this.b=K(b,"mediaPresentationDuration",wd);this.h=K(b,"minBufferTime",wd,this.h);this.g=K(b,"minimumUpdatePeriod",wd,this.g);this.c=K(b,"availabilityStartTime",xd,this.c);this.f=K(b,"timeShiftBufferDepth",wd,this.f);this.i=K(b,"suggestedPresentationDelay",wd,this.i);var c=a.u,d=M(this,b,kd);this.u=yd(c,d);if(d=O(this,b,ld))this.j=zd(c,d.url);this.a=M(this,b,dd)}; dd.prototype.parse=function(a,b){this.id=K(b,"id",L);this.start=K(b,"start",wd);this.a=K(b,"duration",wd);var c=M(this,b,kd);this.u=yd(a.u,c);this.c=O(this,b,md);this.f=O(this,b,qd);this.g=O(this,b,sd);this.b=M(this,b,ed);Ad(this)};function Ad(a){for(var b=[],c=0;c<a.b.length;++c){var d=a.b[c];null!=d.group&&(b[d.group]=!0)}for(c=0;c<a.b.length;++c)if(d=a.b[c],null==d.group){for(var e=1;1==b[e];)++e;b[e]=!0;d.group=e}} ed.prototype.parse=function(a,b){var c=O(this,b,gd)||{},d=O(this,b,fd);this.id=K(b,"id",L);this.group=K(b,"group",P);this.lang=K(b,"lang",L,c.lang);this.contentType=K(b,"contentType",L,c.contentType);this.width=K(b,"width",Q);this.height=K(b,"height",Q);this.b=K(b,"mimeType",L);this.i=K(b,"codecs",L);this.c=d&&"main"==d.value;this.lang&&(this.lang=kb(this.lang));c=M(this,b,kd);this.u=yd(a.u,c);this.j=M(this,b,id);!this.contentType&&this.b&&(this.contentType=this.b.split("/")[0]);this.f=a.c?Bd(this, b,a.c):O(this,b,md);this.g=a.f?Bd(this,b,a.f):O(this,b,qd);this.h=a.g?Bd(this,b,a.g):O(this,b,sd);this.a=M(this,b,hd);!this.b&&this.a.length&&(this.b=this.a[0].f,!this.contentType&&this.b&&(this.contentType=this.b.split("/")[0]))};fd.prototype.parse=function(a,b){this.value=K(b,"value",L)};gd.prototype.parse=function(a,b){this.id=K(b,"id",L);this.lang=K(b,"lang",L);this.contentType=K(b,"contentType",L);this.lang&&(this.lang=kb(this.lang))}; hd.prototype.parse=function(a,b){this.id=K(b,"id",L);this.bandwidth=K(b,"bandwidth",Q);this.width=K(b,"width",Q,a.width);this.height=K(b,"height",Q,a.height);this.f=K(b,"mimeType",L,a.b);this.h=K(b,"codecs",L,a.i);this.lang=a.lang;var c=M(this,b,kd);this.u=yd(a.u,c);this.c=M(this,b,id);this.g=a.f?Bd(this,b,a.f):O(this,b,md);this.b=a.g?Bd(this,b,a.g):O(this,b,qd);this.a=a.h?Bd(this,b,a.h):O(this,b,sd);this.c=this.c.concat(a.j)}; id.prototype.parse=function(a,b){this.f=b;this.c=K(b,"schemeIdUri",L);var c=K(b,"cenc:default_KID",L);c&&(this.b=c.replace(/[-]/g,""));this.a=O(this,b,jd)};jd.prototype.parse=function(a,b){var c=Cd(b);if(c){this.psshBox=jc(c);try{this.parsedPssh=new Bc(this.psshBox)}catch(d){if(!(d instanceof RangeError))throw d;}}};kd.prototype.parse=function(a,b){this.url=Cd(b)};ld.prototype.parse=function(a,b){this.url=Cd(b)}; md.prototype.parse=function(a,b){this.u=a.u||this.u;this.g=K(b,"timescale",Q,this.g);this.f=K(b,"presentationTimeOffset",P,this.f);this.a=K(b,"indexRange",Dd,this.a);this.b=O(this,b,od)||this.b;this.c=O(this,b,pd)||this.c};od.prototype.parse=function(a,b){var c=K(b,"sourceURL",L);this.url=zd(a.u,c);this.a=K(b,"range",Dd,J(a.a))};pd.prototype.parse=function(a,b){var c=K(b,"sourceURL",L);this.url=zd(a.u,c);this.a=K(b,"range",Dd)}; qd.prototype.parse=function(a,b){this.u=a.u||this.u;this.f=K(b,"timescale",Q,this.f);this.g=K(b,"presentationTimeOffset",P,this.g);this.b=K(b,"duration",Q,this.b);var c=K(b,"startNumber",Q);null!=c&&(this.i=c);this.h=O(this,b,pd)||this.h;this.a=(c=M(this,b,rd))&&0<c.length?c:this.a;this.c=O(this,b,td)||this.c};rd.prototype.parse=function(a,b){var c=K(b,"media",L);this.b=zd(a.u,c);this.a=K(b,"mediaRange",Dd)}; sd.prototype.parse=function(a,b){this.a=K(b,"timescale",Q,this.a);this.i=K(b,"presentationTimeOffset",P,this.i);this.b=K(b,"duration",Q,this.b);var c=K(b,"startNumber",P);null!=c&&(this.j=c);this.h=K(b,"media",L,this.h);this.f=K(b,"index",L,this.f);this.g=K(b,"initialization",L,this.g);this.c=O(this,b,td)||this.c};td.prototype.parse=function(a,b){this.a=M(this,b,ud)};ud.prototype.parse=function(a,b){this.b=K(b,"t",P);this.a=K(b,"d",P);this.c=K(b,"r",Ed)}; function yd(a,b){if(!b||0===b.length)return a;for(var c=[],d=0;d<b.length;d++){var e=b[d].url;null==a||0===a.length?c.push(new H(e)):(e=zd(a.slice(0,1),e),c.push(e[0]))}return c}function zd(a,b){if(!b)return a;var c=new H(b);return a?a.map(function(a){return a.resolve(c)}):[c]}function Bd(a,b,c){var d=J(c);(b=Fd(b,c.constructor.TAG_NAME))&&d.parse(a,b);return d}function O(a,b,c){var d=null;if(b=Fd(b,c.TAG_NAME))d=new c,d.parse(a,b);return d} function Fd(a,b){for(var c=null,d=0;d<a.childNodes.length;d++)if(a.childNodes[d].tagName==b){if(c)return null;c=a.childNodes[d]}return c}function M(a,b,c){for(var d=[],e=0;e<b.childNodes.length;e++)if(b.childNodes[e].tagName==c.TAG_NAME){var f=new c;f.parse.call(f,a,b.childNodes[e]);d.push(f)}return d}function Cd(a){a=a.firstChild;return a.nodeType!=Node.TEXT_NODE?null:a.nodeValue}function nd(a){return a?a.map(function(a){return a.clone()}):null}function J(a){return a?a.clone():null} function K(a,b,c,d){a=c(a.getAttribute(b));return null!=a?a:void 0!==d?d:null}function xd(a){if(!a)return null;a=Date.parse(a);return isNaN(a)?null:Math.floor(a/1E3)} function wd(a){if(!a)return null;var b=/^P(?:([0-9]*)Y)?(?:([0-9]*)M)?(?:([0-9]*)D)?(?:T(?:([0-9]*)H)?(?:([0-9]*)M)?(?:([0-9.]*)S)?)?$/.exec(a);if(!b)return null;a=0;var c=P(b[1]);c&&(a+=31536E3*c);(c=P(b[2]))&&(a+=2592E3*c);(c=P(b[3]))&&(a+=86400*c);(c=P(b[4]))&&(a+=3600*c);(c=P(b[5]))&&(a+=60*c);b=window.parseFloat(b[6]);(b=isNaN(b)?null:b)&&(a+=b);return a} function Dd(a){var b=/([0-9]+)-([0-9]+)/.exec(a);if(!b)return null;a=P(b[1]);if(null==a)return null;b=P(b[2]);return null==b?null:new vd(a,b)}function Ed(a){a=window.parseInt(a,10);return isNaN(a)?null:a}function Q(a){a=window.parseInt(a,10);return 0<a?a:null}function P(a){a=window.parseInt(a,10);return 0<=a?a:null}function L(a){return a};function Gd(a,b){this.url=a;this.b=b||new ac;this.g=this.i=this.h=0;this.a=null;this.c=new E;this.f=null}function ac(){this.body=null;this.a=1;this.h=1E3;this.c=0;this.method="GET";this.f="arraybuffer";this.b={};this.g=this.j=!1;this.i=null}var Hd=!0;function Id(a){Jd(a);a.b.body=null;a.c.destroy();a.c=null;a.f=null}function Jd(a){a.a&&(a.a.onload=null,a.a.onreadystatechange=null,a.a.onerror=null,a.a.ontimeout=null);a.a=null}k=Gd.prototype; k.rb=function(){if(this.a)return this.c;if(0==this.url.lastIndexOf("data:",0)){var a=this.url.split(":")[1].split(";").pop().split(","),b=a.pop(),b="base64"==a.pop()?window.atob(b.replace(/-/g,"+").replace(/_/g,"/")):window.decodeURIComponent(b);"arraybuffer"==this.b.f&&(b=ic(b).buffer);a=JSON.parse(JSON.stringify(new XMLHttpRequest));a.response=b;a.responseText=b.toString();b=this.c;b.resolve(a);Id(this);return b}if(0==this.url.lastIndexOf("idb:",0))return Kd(this);this.h++;this.i=Date.now();this.g|| (this.g=this.b.h);this.a=new XMLHttpRequest;a=this.url;Hd&&(this.f&&!this.f.supportsCaching()||this.b.g)&&(a=new H(a),bd(a.a,"_",Date.now()),a=a.toString());this.a.open(this.b.method,a,!0);this.a.responseType=this.b.f;this.a.timeout=this.b.c;this.a.withCredentials=this.b.j;this.a.onload=this.xb.bind(this);this.b.g&&(this.a.onreadystatechange=this.Eb.bind(this));this.a.onerror=this.Tb.bind(this);this.a.ontimeout=this.Ib.bind(this);for(b in this.b.b)this.a.setRequestHeader(b,this.b.b[b]);this.a.send(this.b.body); return this.c};function Kd(a){var b=a.url.split("/");return Ub(a.b.i,parseInt(b[2],10),parseInt(b[3],10)).then(F(a,function(a){var b=JSON.parse(JSON.stringify(new XMLHttpRequest));b.response=a;a=this.c;a.resolve(b);Id(this);return a})).catch(F(a,function(a){Id(this);return Promise.reject(a)}))}function Ld(a,b,c){b=Error(b);b.type=c;b.status=a.a.status;b.url=a.u